adbsshdeck 0.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1021 @@
1
+ _LIGHT_STYLESHEET = """
2
+ QWidget {
3
+ background: #f3f5f9;
4
+ color: #0f172a;
5
+ font-family: "Segoe UI", Arial;
6
+ font-size: 13px;
7
+ }
8
+ /* Terminal side panes are dark — global QWidget color would hide labels on dark chrome */
9
+ QWidget#MobaLeftPane,
10
+ QWidget#MobaRightPane {
11
+ color: #e6edf3;
12
+ }
13
+ QWidget#MobaLeftPane QLabel,
14
+ QWidget#MobaRightPane QLabel {
15
+ color: #e6edf3;
16
+ /* Global QWidget sets a light panel bg; without this, labels stay light-on-light (invisible). */
17
+ background-color: transparent;
18
+ }
19
+ QLabel#LogPanelLabel {
20
+ color: #0f172a;
21
+ font-weight: 600;
22
+ font-size: 13px;
23
+ }
24
+ QMainWindow {
25
+ background: #f3f5f9;
26
+ }
27
+ QMenuBar#AppMenuBar {
28
+ background: #f8fafc;
29
+ border-bottom: 1px solid #e2e8f0;
30
+ padding: 2px 4px;
31
+ spacing: 6px;
32
+ }
33
+ QMenuBar#AppMenuBar::item {
34
+ padding: 5px 12px;
35
+ background: transparent;
36
+ border-radius: 4px;
37
+ }
38
+ QMenuBar#AppMenuBar::item:selected {
39
+ background: #e2e8f0;
40
+ }
41
+ QMenuBar#AppMenuBar::item:pressed {
42
+ background: #cbd5e1;
43
+ }
44
+ QMenu {
45
+ background: #ffffff;
46
+ border: 1px solid #cbd5e1;
47
+ padding: 4px 0;
48
+ }
49
+ QMenu::item {
50
+ padding: 6px 28px 6px 16px;
51
+ }
52
+ QMenu::item:selected {
53
+ background: #e0edff;
54
+ }
55
+ QFrame#TopCard {
56
+ background: #fcfdff;
57
+ border: 1px solid #e2e8f0;
58
+ border-radius: 16px;
59
+ }
60
+ QLabel#appTitle {
61
+ font-size: 21px;
62
+ font-weight: 700;
63
+ color: #0b1324;
64
+ padding: 8px 2px 4px 2px;
65
+ }
66
+ QTabWidget::pane {
67
+ background: #ffffff;
68
+ border: 1px solid #e2e8f0;
69
+ border-radius: 14px;
70
+ margin-top: 10px;
71
+ }
72
+ QTabWidget#MainTabs::pane {
73
+ margin-top: 2px;
74
+ border-radius: 8px;
75
+ border: 1px solid #cbd5e1;
76
+ background: #ffffff;
77
+ }
78
+ QTabWidget#MainTabs QTabBar::tab {
79
+ background-color: #e2e8f0;
80
+ color: #0f172a;
81
+ border: 1px solid #cbd5e1;
82
+ border-bottom: none;
83
+ border-top-left-radius: 8px;
84
+ border-top-right-radius: 8px;
85
+ min-height: 18px;
86
+ min-width: 88px;
87
+ padding: 2px 10px;
88
+ margin-right: 4px;
89
+ font-weight: 600;
90
+ font-size: 11px;
91
+ }
92
+ QTabWidget#MainTabs QTabBar::tab:selected {
93
+ background-color: #ffffff;
94
+ color: #0f172a;
95
+ border-color: #94a3b8;
96
+ border-bottom: 2px solid #2563eb;
97
+ font-weight: 700;
98
+ }
99
+ QTabWidget#MainTabs QTabBar::tab:hover {
100
+ background-color: #f1f5f9;
101
+ color: #0f172a;
102
+ }
103
+ QTabWidget#ExplorerSessionTabs QTabBar::tab {
104
+ background-color: #e2e8f0;
105
+ color: #0f172a;
106
+ border: 1px solid #cbd5e1;
107
+ border-bottom: none;
108
+ border-top-left-radius: 6px;
109
+ border-top-right-radius: 6px;
110
+ min-height: 18px;
111
+ min-width: 88px;
112
+ padding: 2px 8px;
113
+ margin-right: 2px;
114
+ font-weight: 600;
115
+ font-size: 10px;
116
+ }
117
+ QTabWidget#ExplorerSessionTabs QTabBar::tab:selected {
118
+ background-color: #ffffff;
119
+ border-color: #94a3b8;
120
+ border-bottom: 2px solid #2563eb;
121
+ }
122
+ QTabWidget#ExplorerSessionTabs QTabBar::tab:hover {
123
+ background-color: #f1f5f9;
124
+ }
125
+ QTabWidget#ExplorerSessionTabs::pane {
126
+ background: #ffffff;
127
+ }
128
+ QTabWidget#ExplorerSessionTabs QStackedWidget {
129
+ background: #ffffff;
130
+ }
131
+ QTabWidget#MobaTabs QStackedWidget {
132
+ background: #0f131a;
133
+ }
134
+ QTabWidget#MainTabs QTabBar::close-button,
135
+ QTabWidget#ExplorerSessionTabs QTabBar::close-button {
136
+ subcontrol-position: right;
137
+ width: 18px;
138
+ height: 18px;
139
+ border-radius: 4px;
140
+ background: #64748b;
141
+ margin: 3px;
142
+ }
143
+ QTabWidget#MainTabs QTabBar::close-button:hover,
144
+ QTabWidget#ExplorerSessionTabs QTabBar::close-button:hover {
145
+ background: #dc2626;
146
+ }
147
+ /* Terminal session tabs: default close control reads as a normal red close button */
148
+ QTabWidget#MobaTabs QTabBar::close-button {
149
+ subcontrol-position: right;
150
+ width: 18px;
151
+ height: 18px;
152
+ border-radius: 4px;
153
+ background: #dc2626;
154
+ margin: 3px;
155
+ }
156
+ QTabWidget#MobaTabs QTabBar::close-button:hover {
157
+ background: #b91c1c;
158
+ }
159
+ QFrame#ExplorerTransferStrip {
160
+ background: #eef2ff;
161
+ border: 1px solid #c7d2fe;
162
+ border-radius: 10px;
163
+ min-width: 80px;
164
+ max-width: 110px;
165
+ }
166
+ QToolButton#ExplorerTransferBtn {
167
+ background: #ffffff;
168
+ border: 1px solid #cbd5e1;
169
+ border-radius: 8px;
170
+ padding: 7px 5px;
171
+ min-width: 78px;
172
+ font-size: 11px;
173
+ font-weight: 600;
174
+ color: #0f172a;
175
+ icon-size: 18px;
176
+ }
177
+ QToolButton#ExplorerTransferBtn:hover {
178
+ background: #e8f1ff;
179
+ border-color: #2563eb;
180
+ }
181
+ QToolButton#ExplorerNewFileBtn {
182
+ background: #ecfdf5;
183
+ border: 1px solid #6ee7b7;
184
+ color: #065f46;
185
+ }
186
+ QToolButton#ExplorerNewFileBtn:hover {
187
+ background: #d1fae5;
188
+ border-color: #10b981;
189
+ }
190
+ QToolButton#ExplorerEditBtn {
191
+ background: #eff6ff;
192
+ border: 1px solid #93c5fd;
193
+ color: #1e3a8a;
194
+ }
195
+ QToolButton#ExplorerEditBtn:hover {
196
+ background: #dbeafe;
197
+ border-color: #2563eb;
198
+ }
199
+ QTabBar::tab {
200
+ background: #e9eef7;
201
+ border: 1px solid transparent;
202
+ border-radius: 10px;
203
+ color: #334155;
204
+ padding: 9px 16px;
205
+ margin-right: 6px;
206
+ }
207
+ QTabBar::tab:selected {
208
+ background: #1f6feb;
209
+ color: #ffffff;
210
+ border-color: #1f6feb;
211
+ font-weight: 600;
212
+ }
213
+ QTabBar::tab:hover {
214
+ background: #dce6f8;
215
+ }
216
+ QGroupBox {
217
+ border: 1px solid #e2e8f0;
218
+ border-radius: 12px;
219
+ margin-top: 12px;
220
+ padding-top: 15px;
221
+ font-weight: 600;
222
+ background: #ffffff;
223
+ }
224
+ QGroupBox::title {
225
+ subcontrol-origin: margin;
226
+ left: 10px;
227
+ padding: 0 6px;
228
+ color: #475569;
229
+ }
230
+ QPushButton {
231
+ background: #eef2ff;
232
+ border: 1px solid #c7d2fe;
233
+ border-radius: 8px;
234
+ padding: 8px 12px;
235
+ color: #1e3a8a;
236
+ font-weight: 500;
237
+ }
238
+ QPushButton:hover {
239
+ background: #e0e7ff;
240
+ }
241
+ QPushButton:pressed {
242
+ background: #c7d2fe;
243
+ }
244
+ QLineEdit, QComboBox, QTreeWidget {
245
+ background: #ffffff;
246
+ border: 1px solid #d8e0ea;
247
+ border-radius: 8px;
248
+ padding: 8px;
249
+ color: #1f2937;
250
+ selection-background-color: #dbeafe;
251
+ }
252
+ QComboBox {
253
+ padding-right: 26px;
254
+ min-height: 24px;
255
+ border-top-right-radius: 8px;
256
+ border-bottom-right-radius: 8px;
257
+ }
258
+ QComboBox::drop-down {
259
+ subcontrol-origin: padding;
260
+ subcontrol-position: top right;
261
+ width: 22px;
262
+ border-left: 1px solid #d8e0ea;
263
+ background: #f8fafc;
264
+ }
265
+ QComboBox QAbstractItemView {
266
+ background: #ffffff;
267
+ color: #0f172a;
268
+ border: 1px solid #cbd5e1;
269
+ border-radius: 0px;
270
+ selection-background-color: #dbeafe;
271
+ selection-color: #0f172a;
272
+ margin: 0px;
273
+ padding: 0px;
274
+ outline: 0;
275
+ }
276
+ QComboBox QAbstractItemView::viewport {
277
+ background: #ffffff;
278
+ margin: 0px;
279
+ padding: 0px;
280
+ }
281
+ QComboBox QAbstractItemView::item {
282
+ min-height: 24px;
283
+ padding: 2px 6px;
284
+ border: 0px;
285
+ }
286
+ QComboBox QAbstractItemView::item:selected {
287
+ background: #cfe3ff;
288
+ color: #0b1728;
289
+ }
290
+ QPlainTextEdit {
291
+ background: #ffffff;
292
+ border: 1px solid #d8e0ea;
293
+ border-radius: 8px;
294
+ padding: 8px;
295
+ color: #1f2937;
296
+ selection-background-color: #dbeafe;
297
+ }
298
+ QLineEdit:focus, QComboBox:focus, QPlainTextEdit:focus, QTreeWidget:focus {
299
+ border: 1px solid #60a5fa;
300
+ }
301
+ QTreeWidget::item:selected {
302
+ background: #dbeafe;
303
+ color: #0b3a82;
304
+ }
305
+ QTreeWidget::item {
306
+ height: 26px;
307
+ }
308
+ QHeaderView::section {
309
+ background: #f8fafc;
310
+ color: #334155;
311
+ border: 1px solid #e2e8f0;
312
+ padding: 7px;
313
+ font-weight: 600;
314
+ }
315
+ QSplitter::handle {
316
+ background: #edf1f6;
317
+ width: 2px;
318
+ }
319
+ /* WinSCP-style file explorer tab */
320
+ QFrame#WinScpPane {
321
+ background: #ffffff;
322
+ border: 1px solid #c9d2de;
323
+ border-radius: 2px;
324
+ }
325
+ QLineEdit#WinScpAddress {
326
+ background: #ffffff;
327
+ border: 1px solid #b8c2cf;
328
+ border-radius: 1px;
329
+ padding: 4px 6px;
330
+ font-size: 12px;
331
+ }
332
+ QPushButton#WinScpToolBtn {
333
+ background: #f8fafc;
334
+ border: 1px solid #b7c2d2;
335
+ border-radius: 1px;
336
+ padding: 2px 8px;
337
+ color: #0f172a;
338
+ font-size: 11px;
339
+ min-height: 20px;
340
+ }
341
+ QPushButton#WinScpToolBtn:hover {
342
+ background: #e9eff7;
343
+ border-color: #8fa4c3;
344
+ }
345
+ QTableWidget#WinScpTable {
346
+ background: #ffffff;
347
+ border: 1px solid #bcc8d9;
348
+ gridline-color: #eef2f7;
349
+ font-size: 12px;
350
+ icon-size: 24px;
351
+ alternate-background-color: #f8fafc;
352
+ selection-background-color: #2563eb;
353
+ selection-color: #ffffff;
354
+ }
355
+ QTableWidget#WinScpTable QHeaderView::section {
356
+ background: #eef2f7;
357
+ color: #0f172a;
358
+ padding: 6px 10px;
359
+ min-height: 24px;
360
+ border: 1px solid #c5d0e0;
361
+ font-weight: 600;
362
+ font-size: 12px;
363
+ }
364
+ QTableWidget#WinScpTable::item:selected {
365
+ background: #2563eb;
366
+ color: #ffffff;
367
+ }
368
+ QTableWidget#WinScpTable::item:selected:active {
369
+ background: #1d4ed8;
370
+ color: #ffffff;
371
+ }
372
+ QTableWidget#WinScpTable::item:focus {
373
+ outline: none;
374
+ }
375
+ QFrame#WinScpStatusBar {
376
+ background: #eceff3;
377
+ border: 1px solid #c5d0e0;
378
+ border-radius: 0px;
379
+ min-height: 22px;
380
+ }
381
+ QLabel#WinScpStatusText {
382
+ color: #334155;
383
+ font-size: 11px;
384
+ }
385
+ QLabel#WinScpMenuText {
386
+ color: #0f172a;
387
+ font-size: 12px;
388
+ font-weight: 500;
389
+ }
390
+ QToolButton#WinScpIconBtn {
391
+ background: #ffffff;
392
+ border: 1px solid #bcc8d9;
393
+ border-radius: 4px;
394
+ padding: 1px;
395
+ min-width: 22px;
396
+ min-height: 22px;
397
+ icon-size: 16px;
398
+ }
399
+ QToolButton#WinScpIconBtn:hover {
400
+ background: #ebf2fa;
401
+ border-color: #8fa4c3;
402
+ }
403
+ QToolButton#WinScpIconBtn:disabled {
404
+ background: #e2e8f0;
405
+ border: 1px solid #cbd5e1;
406
+ color: #64748b;
407
+ }
408
+ QMenuBar#WinScpMenuBar {
409
+ background: #f5f7fa;
410
+ border-bottom: 1px solid #c5d0e0;
411
+ spacing: 4px;
412
+ padding: 2px 4px;
413
+ font-size: 12px;
414
+ }
415
+ QMenuBar#WinScpMenuBar::item {
416
+ padding: 4px 10px;
417
+ background: transparent;
418
+ }
419
+ QMenuBar#WinScpMenuBar::item:selected {
420
+ background: #e2ecf7;
421
+ border: 1px solid #b7c7db;
422
+ }
423
+ QToolButton#WinScpMainToolBtn {
424
+ background: transparent;
425
+ border: 1px solid transparent;
426
+ border-radius: 4px;
427
+ padding: 2px 6px;
428
+ color: #0f172a;
429
+ font-size: 11px;
430
+ icon-size: 16px;
431
+ }
432
+ QToolButton#WinScpMainToolBtn:hover {
433
+ background: #eef4fb;
434
+ border-color: #b7c7db;
435
+ }
436
+ QLabel#WinScpProtoBadge {
437
+ background: #eef4fb;
438
+ border: 1px solid #b7c7db;
439
+ padding: 2px 8px;
440
+ font-size: 11px;
441
+ color: #334155;
442
+ }
443
+ QLabel#WinScpSessionTab {
444
+ background: #e8f1ff;
445
+ border: 1px solid #9fbfe8;
446
+ border-bottom: none;
447
+ padding: 4px 12px;
448
+ font-size: 12px;
449
+ font-weight: 600;
450
+ color: #0b3a82;
451
+ }
452
+ QFrame#WinScpVSep {
453
+ min-width: 2px;
454
+ max-width: 2px;
455
+ background: #d5dde8;
456
+ }
457
+ /* MobaXterm-style terminal tab */
458
+ QFrame#MobaLeftPane, QWidget#MobaLeftPane {
459
+ background: #161b22;
460
+ border: 1px solid #30363d;
461
+ border-radius: 6px;
462
+ }
463
+ QWidget#MobaRightPane {
464
+ background: #0d1117;
465
+ border: 1px solid #30363d;
466
+ border-radius: 6px;
467
+ }
468
+ QTreeWidget#MobaSessionTree {
469
+ background: #252b38;
470
+ border: 1px solid #3b4355;
471
+ color: #dbe5f5;
472
+ font-size: 12px;
473
+ }
474
+ QTreeWidget#MobaSessionTree::item:selected {
475
+ background: #2f6fed;
476
+ color: white;
477
+ }
478
+ QTabWidget#MobaTabs::pane {
479
+ border: 1px solid #2f3848;
480
+ background: #0f131a;
481
+ border-radius: 2px;
482
+ margin-top: 4px;
483
+ }
484
+ QTabWidget#MobaTabs QTabBar::tab {
485
+ background: #21262d;
486
+ color: #f0f3f6;
487
+ border: 1px solid #30363d;
488
+ border-bottom: none;
489
+ border-top-left-radius: 6px;
490
+ border-top-right-radius: 6px;
491
+ padding: 2px 10px;
492
+ margin-right: 2px;
493
+ min-height: 18px;
494
+ min-width: 108px;
495
+ font-size: 11px;
496
+ font-weight: 600;
497
+ }
498
+ QTabWidget#MobaTabs QTabBar::tab:selected {
499
+ background: #0d1117;
500
+ color: #f0f3f6;
501
+ border-color: #58a6ff;
502
+ border-bottom: 2px solid #58a6ff;
503
+ font-weight: 700;
504
+ }
505
+ QTabWidget#MobaTabs QTabBar::tab:hover {
506
+ background: #30363d;
507
+ color: #f0f3f6;
508
+ }
509
+ QPushButton#MobaToolBtn {
510
+ background: #2a3040;
511
+ border: 1px solid #46526a;
512
+ border-radius: 3px;
513
+ color: #dbe5f5;
514
+ padding: 4px 8px;
515
+ min-height: 20px;
516
+ font-size: 12px;
517
+ }
518
+ QPushButton#MobaToolBtn:hover {
519
+ background: #34405a;
520
+ }
521
+ QPlainTextEdit#MobaTerminalOutput {
522
+ background-color: #0d1117;
523
+ color: #f0f3f6;
524
+ border: 1px solid #30363d;
525
+ border-radius: 4px;
526
+ padding: 10px 12px;
527
+ font-family: "Cascadia Mono", "Consolas", "Courier New", monospace;
528
+ font-size: 14px;
529
+ font-weight: normal;
530
+ selection-background-color: #1f6feb;
531
+ selection-color: #ffffff;
532
+ }
533
+ QPlainTextEdit#MobaTerminalOutput:focus {
534
+ border: 1px solid #58a6ff;
535
+ }
536
+ QLabel#TerminalSessionFooter {
537
+ background-color: #161b22;
538
+ color: #8b949e;
539
+ border: 1px solid #30363d;
540
+ border-top: none;
541
+ border-radius: 0 0 4px 4px;
542
+ padding: 6px 12px;
543
+ font-family: "Cascadia Mono", "Consolas", "Courier New", monospace;
544
+ font-size: 12px;
545
+ }
546
+ QListWidget#MobaBookmarkList {
547
+ background-color: #161b22;
548
+ border: 1px solid #30363d;
549
+ border-radius: 4px;
550
+ color: #e6edf3;
551
+ font-size: 13px;
552
+ padding: 6px;
553
+ outline: none;
554
+ }
555
+ QListWidget#SessionBookmarkList {
556
+ background-color: #161b22;
557
+ border: 1px solid #30363d;
558
+ border-radius: 4px;
559
+ color: #e6edf3;
560
+ font-size: 13px;
561
+ padding: 6px;
562
+ outline: none;
563
+ }
564
+ QListWidget#MobaBookmarkList::item, QListWidget#SessionBookmarkList::item {
565
+ padding: 8px 10px;
566
+ border-radius: 4px;
567
+ color: #e6edf3;
568
+ min-height: 22px;
569
+ }
570
+ QListWidget#MobaBookmarkList::item:selected, QListWidget#SessionBookmarkList::item:selected {
571
+ background-color: #21262d;
572
+ color: #f0f3f6;
573
+ border: 1px solid #388bfd;
574
+ }
575
+ QListWidget#MobaBookmarkList::item:hover, QListWidget#SessionBookmarkList::item:hover {
576
+ background-color: #21262d;
577
+ }
578
+ QLineEdit#MobaQuickConnect {
579
+ background: #252b38;
580
+ border: 1px solid #3b4355;
581
+ color: #dbe5f5;
582
+ border-radius: 2px;
583
+ padding: 4px 8px;
584
+ font-size: 12px;
585
+ }
586
+ QLabel#MobaStatus {
587
+ background: #1b2230;
588
+ border: 1px solid #2f3848;
589
+ color: #b9c5dd;
590
+ padding: 3px 8px;
591
+ font-size: 11px;
592
+ }
593
+ QLabel#MobaSidebarHeading {
594
+ color: #d0d7de;
595
+ font-size: 12px;
596
+ font-weight: 700;
597
+ letter-spacing: 0.3px;
598
+ }
599
+ QLabel#MobaMenuText {
600
+ color: #f0f3f6;
601
+ background-color: transparent;
602
+ font-size: 13px;
603
+ font-weight: 500;
604
+ }
605
+ QLabel#MobaTabCtrlLabel {
606
+ color: #8b949e;
607
+ font-size: 12px;
608
+ font-weight: 600;
609
+ }
610
+ QPushButton#MobaCloseTabBtn {
611
+ background: #dc2626;
612
+ border: 1px solid #b91c1c;
613
+ color: #ffffff;
614
+ padding: 4px 12px;
615
+ min-height: 22px;
616
+ font-weight: 700;
617
+ border-radius: 4px;
618
+ }
619
+ QPushButton#MobaCloseTabBtn:hover {
620
+ background: #b91c1c;
621
+ }
622
+ QTextEdit#AppLogView {
623
+ background: #0f1419;
624
+ color: #cbd5e1;
625
+ border: 1px solid #334155;
626
+ border-radius: 4px;
627
+ padding: 4px 6px;
628
+ font-size: 11px;
629
+ }
630
+ QPushButton#HeaderMiniBtn {
631
+ background: #f1f5f9;
632
+ border: 1px solid #cbd5e1;
633
+ border-radius: 4px;
634
+ padding: 2px 6px;
635
+ color: #334155;
636
+ font-weight: 600;
637
+ }
638
+ QPushButton#HeaderSaveBtn {
639
+ background: #2563eb;
640
+ border: 1px solid #1d4ed8;
641
+ color: #ffffff;
642
+ padding: 4px 14px;
643
+ border-radius: 4px;
644
+ font-weight: 600;
645
+ }
646
+ QPushButton#HeaderSaveBtn:hover {
647
+ background: #3b82f6;
648
+ }
649
+ QPushButton#ScrcpyStartBtn,
650
+ QPushButton#ScrcpyStopBtn {
651
+ icon-size: 16px;
652
+ min-height: 28px;
653
+ font-weight: 600;
654
+ }
655
+ QLabel#WinScpPaneTitle {
656
+ font-size: 11px;
657
+ font-weight: 600;
658
+ color: #475569;
659
+ padding: 0 2px;
660
+ }
661
+ QWidget#SessionStrip {
662
+ background: #f8fafc;
663
+ border: 1px solid #e2e8f0;
664
+ border-radius: 6px;
665
+ }
666
+ QFrame#SessionStripVSep {
667
+ color: #cbd5e1;
668
+ max-width: 1px;
669
+ }
670
+ QPushButton#SessionStripBtn {
671
+ background: #f1f5f9;
672
+ border: 1px solid #cbd5e1;
673
+ border-radius: 4px;
674
+ padding: 4px 12px;
675
+ color: #334155;
676
+ font-weight: 600;
677
+ }
678
+ QPushButton#SessionStripBtn:hover {
679
+ background: #e2e8f0;
680
+ }
681
+ QComboBox#SessionWorkspaceCombo, QComboBox#SessionDeviceCombo,
682
+ QComboBox#SessionProtocolCombo {
683
+ padding: 4px 8px;
684
+ min-height: 22px;
685
+ }
686
+ QLabel#SessionHint {
687
+ color: #64748b;
688
+ font-size: 12px;
689
+ }
690
+ QLabel#SessionConnStatus {
691
+ color: #475569;
692
+ font-weight: 600;
693
+ font-size: 12px;
694
+ }
695
+ QLineEdit#SessionHostEdit {
696
+ min-width: 180px;
697
+ }
698
+ QWidget#MainBody {
699
+ background: transparent;
700
+ }
701
+ QLabel#ScrcpyHintLabel {
702
+ color: #64748b;
703
+ font-size: 11px;
704
+ }
705
+ QWidget#ScrcpyLeftPanel {
706
+ background: transparent;
707
+ }
708
+ QWidget#ScrcpyEmbedHost {
709
+ background: #0f1419;
710
+ border: 1px solid #cbd5e1;
711
+ border-radius: 8px;
712
+ }
713
+ QSplitter#MainBodySplit::handle { background: #cbd5e1; height: 4px; }
714
+ QSplitter#ScrcpyMainSplit::handle { background: #cbd5e1; width: 4px; }
715
+ QWidget#ExplorerChrome {
716
+ background: #f1f5f9;
717
+ border: 1px solid #cbd5e1;
718
+ border-radius: 4px;
719
+ }
720
+ QLabel#ExplorerSessionHint {
721
+ font-size: 11px;
722
+ color: #64748b;
723
+ padding: 0px;
724
+ margin: 0px;
725
+ }
726
+ """
727
+
728
+ # Appended after light stylesheet when dark=True. No global QWidget rule (breaks layout & terminal panes).
729
+ _DARK_APPEND = """
730
+ QWidget { background: #0b1220; color: #e6edf3; }
731
+ QLabel { color: #e6edf3; background: transparent; }
732
+ QLabel#LogPanelLabel { color: #e6edf3; }
733
+ QMainWindow { background: #0b1220; }
734
+ QMenuBar#AppMenuBar { background: #161b22; border-bottom: 1px solid #30363d; color: #e6edf3; }
735
+ QMenuBar#AppMenuBar::item { color: #e6edf3; }
736
+ QMenuBar#AppMenuBar::item:selected { background: #21262d; }
737
+ QMenu { background: #161b22; border: 1px solid #30363d; color: #e6edf3; }
738
+ QMenu::item:selected { background: #21262d; color: #f0f6fc; }
739
+ QTabWidget::pane { background: #0d1117; border: 1px solid #30363d; }
740
+ QTabWidget#MainTabs::pane { background: #0d1117; border: 1px solid #30363d; }
741
+ QTabWidget#MainTabs QTabBar::tab {
742
+ background-color: #21262d;
743
+ color: #f0f6fc;
744
+ border: 1px solid #30363d;
745
+ min-height: 18px;
746
+ padding: 2px 10px;
747
+ font-size: 11px;
748
+ }
749
+ QTabWidget#MainTabs QTabBar::tab:selected {
750
+ background-color: #0d1117;
751
+ color: #f0f6fc;
752
+ border-color: #58a6ff;
753
+ border-bottom: 2px solid #58a6ff;
754
+ }
755
+ QTabWidget#MainTabs QTabBar::tab:hover { background-color: #30363d; color: #f0f6fc; }
756
+ QTabWidget#ExplorerSessionTabs QTabBar::tab {
757
+ background-color: #21262d;
758
+ color: #f0f6fc;
759
+ border: 1px solid #30363d;
760
+ min-height: 18px;
761
+ padding: 2px 8px;
762
+ font-size: 10px;
763
+ }
764
+ QTabWidget#ExplorerSessionTabs QTabBar::tab:selected {
765
+ background-color: #0d1117;
766
+ color: #f0f6fc;
767
+ border-color: #58a6ff;
768
+ border-bottom: 2px solid #58a6ff;
769
+ }
770
+ QTabWidget#ExplorerSessionTabs QTabBar::tab:hover { background-color: #30363d; color: #f0f6fc; }
771
+ QTabWidget#ExplorerSessionTabs::pane { background: #0f172a; border: 1px solid #334155; }
772
+ QTabWidget#ExplorerSessionTabs QStackedWidget { background: #0f172a; }
773
+ QTabWidget#MobaTabs QStackedWidget { background: #0f172a; }
774
+ QTabWidget#MainTabs QWidget { background: #0b1220; }
775
+ QTabWidget#ExplorerSessionTabs QWidget { background: #0f172a; }
776
+ QTabWidget#MobaTabs QWidget { background: #0f172a; }
777
+ QTabWidget#MainTabs QTabBar::close-button,
778
+ QTabWidget#ExplorerSessionTabs QTabBar::close-button {
779
+ subcontrol-position: right;
780
+ width: 18px;
781
+ height: 18px;
782
+ border-radius: 4px;
783
+ background: #484f58;
784
+ margin: 3px;
785
+ }
786
+ QTabWidget#MainTabs QTabBar::close-button:hover,
787
+ QTabWidget#ExplorerSessionTabs QTabBar::close-button:hover {
788
+ background: #da3633;
789
+ }
790
+ QTabWidget#MobaTabs QTabBar::close-button {
791
+ subcontrol-position: right;
792
+ width: 18px;
793
+ height: 18px;
794
+ border-radius: 4px;
795
+ background: #da3633;
796
+ margin: 3px;
797
+ }
798
+ QTabWidget#MobaTabs QTabBar::close-button:hover {
799
+ background: #f85149;
800
+ }
801
+ QTabWidget#MobaTabs QTabBar::tab {
802
+ min-height: 18px;
803
+ padding: 2px 10px;
804
+ font-size: 11px;
805
+ min-width: 108px;
806
+ }
807
+ QGroupBox { background: #111827; border: 1px solid #334155; color: #f1f5f9; }
808
+ QGroupBox::title { color: #8b949e; }
809
+ QPushButton { background: #1e293b; border: 1px solid #334155; color: #f1f5f9; }
810
+ QPushButton:hover { background: #334155; }
811
+ QPushButton:pressed { background: #475569; }
812
+ QLineEdit, QComboBox, QTreeWidget {
813
+ background: #0f172a;
814
+ border: 1px solid #334155;
815
+ color: #f1f5f9;
816
+ selection-background-color: #1d4ed8;
817
+ selection-color: #ffffff;
818
+ }
819
+ QComboBox {
820
+ padding-right: 26px;
821
+ min-height: 24px;
822
+ border-top-right-radius: 8px;
823
+ border-bottom-right-radius: 8px;
824
+ }
825
+ QComboBox::drop-down {
826
+ subcontrol-origin: padding;
827
+ subcontrol-position: top right;
828
+ width: 22px;
829
+ border-left: 1px solid #334155;
830
+ background: #111827;
831
+ }
832
+ QComboBox QAbstractItemView {
833
+ background: #0b1220;
834
+ color: #f8fafc;
835
+ border: 1px solid #475569;
836
+ border-radius: 0px;
837
+ selection-background-color: #2563eb;
838
+ selection-color: #ffffff;
839
+ margin: 0px;
840
+ padding: 0px;
841
+ outline: 0;
842
+ }
843
+ QComboBox QAbstractItemView::viewport {
844
+ background: #0b1220;
845
+ margin: 0px;
846
+ padding: 0px;
847
+ }
848
+ QComboBox QAbstractItemView::item {
849
+ min-height: 24px;
850
+ padding: 2px 6px;
851
+ border: 0px;
852
+ }
853
+ QComboBox QAbstractItemView::item:selected {
854
+ background: #2563eb;
855
+ color: #ffffff;
856
+ }
857
+ QPlainTextEdit {
858
+ background: #0f172a;
859
+ border: 1px solid #334155;
860
+ color: #f1f5f9;
861
+ selection-background-color: #1d4ed8;
862
+ }
863
+ QHeaderView::section { background: #334155; color: #e2e8f0; border: 1px solid #475569; }
864
+ QSplitter::handle { background: #475569; }
865
+ QFrame#WinScpPane { background: #111827; border: 1px solid #334155; }
866
+ QLineEdit#WinScpAddress { background: #0f172a; border: 1px solid #334155; color: #f8fafc; }
867
+ QTableWidget#WinScpTable {
868
+ background: #0f172a;
869
+ border: 1px solid #334155;
870
+ alternate-background-color: #111827;
871
+ color: #f8fafc;
872
+ gridline-color: #334155;
873
+ selection-background-color: #2563eb;
874
+ selection-color: #ffffff;
875
+ }
876
+ QTableWidget#WinScpTable QHeaderView::section {
877
+ background: #334155;
878
+ color: #e2e8f0;
879
+ border: 1px solid #475569;
880
+ }
881
+ QFrame#ExplorerTransferStrip {
882
+ background: #1e293b;
883
+ border: 1px solid #475569;
884
+ border-radius: 10px;
885
+ }
886
+ QToolButton#ExplorerTransferBtn {
887
+ background: #0f172a;
888
+ border: 1px solid #475569;
889
+ border-radius: 8px;
890
+ color: #f8fafc;
891
+ icon-size: 18px;
892
+ }
893
+ QToolButton#ExplorerTransferBtn:hover { background: #475569; border-color: #38bdf8; }
894
+ QToolButton#ExplorerNewFileBtn {
895
+ background: #064e3b;
896
+ border: 1px solid #34d399;
897
+ color: #d1fae5;
898
+ }
899
+ QToolButton#ExplorerNewFileBtn:hover { background: #065f46; border-color: #6ee7b7; }
900
+ QToolButton#ExplorerEditBtn {
901
+ background: #1e3a8a;
902
+ border: 1px solid #60a5fa;
903
+ color: #dbeafe;
904
+ }
905
+ QToolButton#ExplorerEditBtn:hover { background: #1d4ed8; border-color: #93c5fd; }
906
+ QToolButton#WinScpIconBtn {
907
+ background: #1e293b;
908
+ border: 1px solid #475569;
909
+ color: #f8fafc;
910
+ border-radius: 4px;
911
+ icon-size: 16px;
912
+ }
913
+ QToolButton#WinScpIconBtn:hover { background: #30363d; }
914
+ QToolButton#WinScpIconBtn:disabled {
915
+ background: #161b22;
916
+ border: 1px solid #21262d;
917
+ color: #8b949e;
918
+ }
919
+ QFrame#WinScpStatusBar { background: #252b3a; border: 1px solid #475569; }
920
+ QLabel#WinScpStatusText { color: #94a3b8; }
921
+ QLabel#WinScpStatusConn { color: #94a3b8; }
922
+ QTextEdit#AppLogView { background: #0f1419; color: #cbd5e1; border: 1px solid #334155; }
923
+ QPushButton#HeaderMiniBtn { background: #334155; border: 1px solid #475569; color: #e2e8f0; }
924
+ QWidget#MainBody { background: #0b1220; }
925
+ QWidget#ExplorerChrome { background: #111827; border: 1px solid #334155; }
926
+ QLabel#ExplorerSessionHint { color: #8b949e; }
927
+ QLabel#MobaTabCtrlLabel { color: #8b949e; }
928
+ QPushButton#MobaCloseTabBtn {
929
+ background: #da3633;
930
+ border: 1px solid #f85149;
931
+ color: #ffffff;
932
+ }
933
+ QPushButton#MobaCloseTabBtn:hover { background: #f85149; }
934
+ QPushButton#ScrcpyStartBtn,
935
+ QPushButton#ScrcpyStopBtn {
936
+ icon-size: 16px;
937
+ min-height: 28px;
938
+ font-weight: 600;
939
+ border: 1px solid #475569;
940
+ }
941
+ QLabel#ScrcpyConfigTitle { color: #e2e8f0; }
942
+ QLabel#ScrcpyStatusLabel { color: #c9d1d9; }
943
+ QLabel#ScrcpyHintLabel { color: #8b949e; font-size: 11px; }
944
+ QWidget#ScrcpyLeftPanel { background: #0d1117; }
945
+ QWidget#ScrcpyLeftInner { background: #0d1117; }
946
+ QWidget#ScrcpyEmbedHost {
947
+ background: #010409;
948
+ border: 1px solid #30363d;
949
+ border-radius: 8px;
950
+ }
951
+ QGroupBox#ScrcpyOptionsGroup QLabel, QGroupBox#ScrcpyAdbGroup QLabel { color: #e6edf3; }
952
+ QGroupBox#ScrcpyOptionsGroup QComboBox {
953
+ margin-bottom: 2px;
954
+ }
955
+ QGroupBox#ScrcpyOptionsGroup QComboBox::drop-down {
956
+ background: transparent;
957
+ }
958
+ QCheckBox { color: #e6edf3; }
959
+ QGroupBox#ScrcpyAdbGroup {
960
+ font-size: 12px;
961
+ font-weight: 600;
962
+ }
963
+ QGroupBox#ScrcpyAdbGroup QToolButton {
964
+ background: #1e293b;
965
+ border: 1px solid #475569;
966
+ border-radius: 6px;
967
+ color: #f8fafc;
968
+ padding: 6px 8px;
969
+ font-size: 11px;
970
+ icon-size: 16px;
971
+ }
972
+ QGroupBox#ScrcpyAdbGroup QToolButton:hover { background: #334155; border-color: #58a6ff; }
973
+ QComboBox QAbstractItemView {
974
+ background: #0f172a;
975
+ color: #f8fafc;
976
+ selection-background-color: #1d4ed8;
977
+ selection-color: #ffffff;
978
+ }
979
+ QToolTip { background: #161b22; color: #e6edf3; border: 1px solid #30363d; padding: 6px; }
980
+ QDialog QLabel { color: #e6edf3; }
981
+ QSplitter#MainBodySplit::handle { background: #30363d; height: 4px; }
982
+ QSplitter#ScrcpyMainSplit::handle { background: #30363d; width: 4px; }
983
+ QPushButton#SessionStripBtn { background: #334155; border: 1px solid #475569; color: #e2e8f0; }
984
+ QDialog { background: #111827; color: #f1f5f9; }
985
+ QDialog QWidget { background: #111827; color: #f1f5f9; }
986
+ QDialog QTableWidget#WinScpTable {
987
+ background: #1e293b;
988
+ color: #e2e8f0;
989
+ gridline-color: #334155;
990
+ }
991
+ QDialog QTableWidget#WinScpTable QHeaderView::section {
992
+ background: #334155;
993
+ color: #e2e8f0;
994
+ }
995
+ QDialog QListWidget::item:selected {
996
+ background: #1d4ed8;
997
+ color: #ffffff;
998
+ }
999
+ QCheckBox { spacing: 6px; color: #f8fafc; }
1000
+ QCheckBox::indicator {
1001
+ width: 18px;
1002
+ height: 18px;
1003
+ border: 1px solid #64748b;
1004
+ border-radius: 3px;
1005
+ background: #0f172a;
1006
+ }
1007
+ QCheckBox::indicator:checked {
1008
+ background: #2563eb;
1009
+ border: 1px solid #93c5fd;
1010
+ image: url(:/qt-project.org/styles/commonstyle/images/checkbox_checked.png);
1011
+ }
1012
+ QCheckBox::indicator:unchecked {
1013
+ image: url(:/qt-project.org/styles/commonstyle/images/checkbox_unchecked.png);
1014
+ }
1015
+ """
1016
+
1017
+
1018
+ def get_stylesheet(dark: bool = False) -> str:
1019
+ if dark:
1020
+ return _LIGHT_STYLESHEET + "\n" + _DARK_APPEND
1021
+ return _LIGHT_STYLESHEET