==> Building on aurorus ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/qtile ./ .SRCINFO 3,196 100% 0.00kB/s 0:00:00 3,196 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=14/16) .nvchecker.toml 39 100% 38.09kB/s 0:00:00 39 100% 38.09kB/s 0:00:00 (xfr#2, to-chk=13/16) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=12/16) PKGBUILD 4,245 100% 4.05MB/s 0:00:00 4,245 100% 4.05MB/s 0:00:00 (xfr#4, to-chk=11/16) REUSE.toml 416 100% 406.25kB/s 0:00:00 416 100% 406.25kB/s 0:00:00 (xfr#5, to-chk=10/16) qtile-0.37.0-1.log 735 100% 717.77kB/s 0:00:00 735 100% 717.77kB/s 0:00:00 (xfr#6, to-chk=9/16) qtile-0.37.0-user-unit-exec.patch 430 100% 419.92kB/s 0:00:00 430 100% 419.92kB/s 0:00:00 (xfr#7, to-chk=8/16) qtile.install 400 100% 390.62kB/s 0:00:00 400 100% 390.62kB/s 0:00:00 (xfr#8, to-chk=7/16) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE keys/ keys/pgp/ keys/pgp/35D92E7CC7357A81173EA1C974F9FDD20984FBEC.asc 6,896 100% 1.32MB/s 0:00:00 6,896 100% 1.32MB/s 0:00:00 (xfr#9, to-chk=2/16) keys/pgp/3CCAB226289DE0160C61BDB418D18F1BC464DCA3.asc 900 100% 175.78kB/s 0:00:00 900 100% 175.78kB/s 0:00:00 (xfr#10, to-chk=1/16) keys/pgp/A6BAA1E17D2664ADB97B2C6F58A9AA7C86727DF7.asc 3,139 100% 613.09kB/s 0:00:00 3,139 100% 613.09kB/s 0:00:00 (xfr#11, to-chk=0/16) sent 14,107 bytes received 284 bytes 9,594.00 bytes/sec total size is 20,511 speedup is 1.43 ==> Ensuring required PGP keys are present...  -> Checking for 3CCAB226289DE0160C61BDB418D18F1BC464DCA3...  -> Importing key from local...  -> Checking for 35D92E7CC7357A81173EA1C974F9FDD20984FBEC...  -> Importing key from local...  -> Checking for A6BAA1E17D2664ADB97B2C6F58A9AA7C86727DF7...  -> Importing key from local... ==> Applying RISC-V patches... sending incremental file list ./ sent 61 bytes received 19 bytes 53.33 bytes/sec total size is 0 speedup is 0.00 ==> Patching arch to riscv64... ==> Running pkgctl build --arch riscv64 on remote host... ==> WARNING: invalid architecture: riscv64 ==> Updating pacman database cache [?25l:: Synchronizing package databases... core downloading... extra downloading... multilib downloading... [?25h==> Building qtile  -> repo: extra  -> arch: riscv64  -> worker: felix-0 ==> Building qtile for [extra] (riscv64) ]3008;start=6ad034d164374208a0e803baf86ddfc5;user=felix;hostname=aurorus.felixc.at;machineid=01ca1404c26b4b3a80152fb4f25f4ca7;bootid=62bf108769c34cbbb3b3844801966040;pid=2827669;comm=sudo;targetuser=root;type=session\Note: in a future version of systemd-nspawn the default set of permitted socket address families will be restricted to AF_INET, AF_INET6 and AF_UNIX. Use --restrict-address-families= to configure the set of permitted socket address families, or set RestrictAddressFamilies= in a .nspawn file. ]3008;start=568694fbcf2e43c8878183bc44f73965;user=root;hostname=aurorus.felixc.at;machineid=01ca1404c26b4b3a80152fb4f25f4ca7;bootid=62bf108769c34cbbb3b3844801966040;pid=2827721;comm=systemd-nspawn;container=arch-nspawn-2827721;type=container\]11;?\]2;🔵 Container arch-nspawn-2827721 on aurorus.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h[!p]104\[?7h]3008;end=568694fbcf2e43c8878183bc44f73965\==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...done ]3008;start=2c53a36743db4c71a5b975bf20089d91;user=root;hostname=aurorus.felixc.at;machineid=01ca1404c26b4b3a80152fb4f25f4ca7;bootid=62bf108769c34cbbb3b3844801966040;pid=2828324;comm=sudo;targetuser=felix;type=session\==> Making package: qtile 0.37.0-1 (Wed Sep 9 21:14:49 2026) ==> Retrieving sources...  -> Cloning qtile git repo... Cloning into bare repository '/home/felix/packages/qtile/qtile'... remote: Enumerating objects: 72645, done. remote: Counting objects: 0% (1/1072) remote: Counting objects: 1% (11/1072) remote: Counting objects: 2% (22/1072) remote: Counting objects: 3% (33/1072) remote: Counting objects: 4% (43/1072) remote: Counting objects: 5% (54/1072) remote: Counting objects: 6% (65/1072) remote: Counting objects: 7% (76/1072) remote: Counting objects: 8% (86/1072) remote: Counting objects: 9% (97/1072) remote: Counting objects: 10% (108/1072) remote: Counting objects: 11% (118/1072) remote: Counting objects: 12% (129/1072) remote: Counting objects: 13% (140/1072) remote: Counting objects: 14% (151/1072) remote: Counting objects: 15% (161/1072) remote: Counting objects: 16% (172/1072) remote: Counting objects: 17% (183/1072) remote: Counting objects: 18% (193/1072) remote: Counting objects: 19% (204/1072) remote: Counting objects: 20% (215/1072) remote: Counting objects: 21% (226/1072) remote: Counting objects: 22% (236/1072) remote: Counting objects: 23% (247/1072) remote: Counting objects: 24% (258/1072) remote: Counting objects: 25% (268/1072) remote: Counting objects: 26% (279/1072) remote: Counting objects: 27% (290/1072) remote: Counting objects: 28% (301/1072) remote: Counting objects: 29% (311/1072) remote: Counting objects: 30% (322/1072) remote: Counting objects: 31% (333/1072) remote: Counting objects: 32% (344/1072) remote: Counting objects: 33% (354/1072) remote: Counting objects: 34% (365/1072) remote: Counting objects: 35% (376/1072) remote: Counting objects: 36% (386/1072) remote: Counting objects: 37% (397/1072) remote: Counting objects: 38% (408/1072) remote: Counting objects: 39% (419/1072) remote: Counting objects: 40% (429/1072) remote: Counting objects: 41% (440/1072) remote: Counting objects: 42% (451/1072) remote: Counting objects: 43% (461/1072) remote: Counting objects: 44% (472/1072) remote: Counting objects: 45% (483/1072) remote: Counting objects: 46% (494/1072) remote: Counting objects: 47% (504/1072) remote: Counting objects: 48% (515/1072) remote: Counting objects: 49% (526/1072) remote: Counting objects: 50% (536/1072) remote: Counting objects: 51% (547/1072) remote: Counting objects: 52% (558/1072) remote: Counting objects: 53% (569/1072) remote: Counting objects: 54% (579/1072) remote: Counting objects: 55% (590/1072) remote: Counting objects: 56% (601/1072) remote: Counting objects: 57% (612/1072) remote: Counting objects: 58% (622/1072) remote: Counting objects: 59% (633/1072) remote: Counting objects: 60% (644/1072) remote: Counting objects: 61% (654/1072) remote: Counting objects: 62% (665/1072) remote: Counting objects: 63% (676/1072) remote: Counting objects: 64% (687/1072) remote: Counting objects: 65% (697/1072) remote: Counting objects: 66% (708/1072) remote: Counting objects: 67% (719/1072) remote: Counting objects: 68% (729/1072) remote: Counting objects: 69% (740/1072) remote: Counting objects: 70% (751/1072) remote: Counting objects: 71% (762/1072) remote: Counting objects: 72% (772/1072) remote: Counting objects: 73% (783/1072) remote: Counting objects: 74% (794/1072) remote: Counting objects: 75% (804/1072) remote: Counting objects: 76% (815/1072) remote: Counting objects: 77% (826/1072) remote: Counting objects: 78% (837/1072) remote: Counting objects: 79% (847/1072) remote: Counting objects: 80% (858/1072) remote: Counting objects: 81% (869/1072) remote: Counting objects: 82% (880/1072) remote: Counting objects: 83% (890/1072) remote: Counting objects: 84% (901/1072) remote: Counting objects: 85% (912/1072) remote: Counting objects: 86% (922/1072) remote: Counting objects: 87% (933/1072) remote: Counting objects: 88% (944/1072) remote: Counting objects: 89% (955/1072) remote: Counting objects: 90% (965/1072) remote: Counting objects: 91% (976/1072) remote: Counting objects: 92% (987/1072) remote: Counting objects: 93% (997/1072) remote: Counting objects: 94% (1008/1072) remote: Counting objects: 95% (1019/1072) remote: Counting objects: 96% (1030/1072) remote: Counting objects: 97% (1040/1072) remote: Counting objects: 98% (1051/1072) remote: Counting objects: 99% (1062/1072) remote: Counting objects: 100% (1072/1072) remote: Counting objects: 100% (1072/1072), done. remote: Compressing objects: 0% (1/467) remote: Compressing objects: 1% (5/467) remote: Compressing objects: 2% (10/467) remote: Compressing objects: 3% (15/467) remote: Compressing objects: 4% (19/467) remote: Compressing objects: 5% (24/467) remote: Compressing objects: 6% (29/467) remote: Compressing objects: 7% (33/467) remote: Compressing objects: 8% (38/467) remote: Compressing objects: 9% (43/467) remote: Compressing objects: 10% (47/467) remote: Compressing objects: 11% (52/467) remote: Compressing objects: 12% (57/467) remote: Compressing objects: 13% (61/467) remote: Compressing objects: 14% (66/467) remote: Compressing objects: 15% (71/467) remote: Compressing objects: 16% (75/467) remote: Compressing objects: 17% (80/467) remote: Compressing objects: 18% (85/467) remote: Compressing objects: 19% (89/467) remote: Compressing objects: 20% (94/467) remote: Compressing objects: 21% (99/467) remote: Compressing objects: 22% (103/467) remote: Compressing objects: 23% (108/467) remote: Compressing objects: 24% (113/467) remote: Compressing objects: 25% (117/467) remote: Compressing objects: 26% (122/467) remote: Compressing objects: 27% (127/467) remote: Compressing objects: 28% (131/467) remote: Compressing objects: 29% (136/467) remote: Compressing objects: 30% (141/467) remote: Compressing objects: 31% (145/467) remote: Compressing objects: 32% (150/467) remote: Compressing objects: 33% (155/467) remote: Compressing objects: 34% (159/467) remote: Compressing objects: 35% (164/467) remote: Compressing objects: 36% (169/467) remote: Compressing objects: 37% (173/467) remote: Compressing objects: 38% (178/467) remote: Compressing objects: 39% (183/467) remote: Compressing objects: 40% (187/467) remote: Compressing objects: 41% (192/467) remote: Compressing objects: 42% (197/467) remote: Compressing objects: 43% (201/467) remote: Compressing objects: 44% (206/467) remote: Compressing objects: 45% (211/467) remote: Compressing objects: 46% (215/467) remote: Compressing objects: 47% (220/467) remote: Compressing objects: 48% (225/467) remote: Compressing objects: 49% (229/467) remote: Compressing objects: 50% (234/467) remote: Compressing objects: 51% (239/467) remote: Compressing objects: 52% (243/467) remote: Compressing objects: 53% (248/467) remote: Compressing objects: 54% (253/467) remote: Compressing objects: 55% (257/467) remote: Compressing objects: 56% (262/467) remote: Compressing objects: 57% (267/467) remote: Compressing objects: 58% (271/467) remote: Compressing objects: 59% (276/467) remote: Compressing objects: 60% (281/467) remote: Compressing objects: 61% (285/467) remote: Compressing objects: 62% (290/467) remote: Compressing objects: 63% (295/467) remote: Compressing objects: 64% (299/467) remote: Compressing objects: 65% (304/467) remote: Compressing objects: 66% (309/467) remote: Compressing objects: 67% (313/467) remote: Compressing objects: 68% (318/467) remote: Compressing objects: 69% (323/467) remote: Compressing objects: 70% (327/467) remote: Compressing objects: 71% (332/467) remote: Compressing objects: 72% (337/467) remote: Compressing objects: 73% (341/467) remote: Compressing objects: 74% (346/467) remote: Compressing objects: 75% (351/467) remote: Compressing objects: 76% (355/467) remote: Compressing objects: 77% (360/467) remote: Compressing objects: 78% (365/467) remote: Compressing objects: 79% (369/467) remote: Compressing objects: 80% (374/467) remote: Compressing objects: 81% (379/467) remote: Compressing objects: 82% (383/467) remote: Compressing objects: 83% (388/467) remote: Compressing objects: 84% (393/467) remote: Compressing objects: 85% (397/467) remote: Compressing objects: 86% (402/467) remote: Compressing objects: 87% (407/467) remote: Compressing objects: 88% (411/467) remote: Compressing objects: 89% (416/467) remote: Compressing objects: 90% (421/467) remote: Compressing objects: 91% (425/467) remote: Compressing objects: 92% (430/467) remote: Compressing objects: 93% (435/467) remote: Compressing objects: 94% (439/467) remote: Compressing objects: 95% (444/467) remote: Compressing objects: 96% (449/467) remote: Compressing objects: 97% (453/467) remote: Compressing objects: 98% (458/467) remote: Compressing objects: 99% (463/467) remote: Compressing objects: 100% (467/467) remote: Compressing objects: 100% (467/467), done. Receiving objects: 0% (1/72645) Receiving objects: 1% (727/72645) Receiving objects: 2% (1453/72645), 312.01 KiB | 496.00 KiB/s Receiving objects: 2% (1516/72645), 312.01 KiB | 496.00 KiB/s Receiving objects: 3% (2180/72645), 640.01 KiB | 573.00 KiB/s Receiving objects: 4% (2906/72645), 936.01 KiB | 539.00 KiB/s Receiving objects: 4% (2919/72645), 936.01 KiB | 539.00 KiB/s Receiving objects: 5% (3633/72645), 936.01 KiB | 539.00 KiB/s Receiving objects: 6% (4359/72645), 1.27 MiB | 551.00 KiB/s Receiving objects: 7% (5086/72645), 1.27 MiB | 551.00 KiB/s Receiving objects: 8% (5812/72645), 1.27 MiB | 551.00 KiB/s Receiving objects: 8% (5936/72645), 1.66 MiB | 572.00 KiB/s Receiving objects: 9% (6539/72645), 1.66 MiB | 572.00 KiB/s Receiving objects: 9% (6868/72645), 2.50 MiB | 627.00 KiB/s Receiving objects: 10% (7265/72645), 2.50 MiB | 627.00 KiB/s Receiving objects: 11% (7991/72645), 2.98 MiB | 664.00 KiB/s Receiving objects: 11% (8064/72645), 2.98 MiB | 664.00 KiB/s Receiving objects: 12% (8718/72645), 3.48 MiB | 700.00 KiB/s Receiving objects: 13% (9444/72645), 3.93 MiB | 743.00 KiB/s Receiving objects: 13% (9588/72645), 3.93 MiB | 743.00 KiB/s Receiving objects: 14% (10171/72645), 4.36 MiB | 759.00 KiB/s Receiving objects: 15% (10897/72645), 4.36 MiB | 759.00 KiB/s Receiving objects: 16% (11624/72645), 4.36 MiB | 759.00 KiB/s Receiving objects: 17% (12350/72645), 4.36 MiB | 759.00 KiB/s Receiving objects: 17% (12449/72645), 4.97 MiB | 667.00 KiB/s Receiving objects: 18% (13077/72645), 5.07 MiB | 637.00 KiB/s Receiving objects: 19% (13803/72645), 5.07 MiB | 637.00 KiB/s Receiving objects: 19% (13873/72645), 5.07 MiB | 637.00 KiB/s Receiving objects: 20% (14529/72645), 5.36 MiB | 632.00 KiB/s Receiving objects: 21% (15256/72645), 5.74 MiB | 626.00 KiB/s Receiving objects: 22% (15982/72645), 5.74 MiB | 626.00 KiB/s Receiving objects: 22% (16097/72645), 6.23 MiB | 636.00 KiB/s Receiving objects: 23% (16709/72645), 6.23 MiB | 636.00 KiB/s Receiving objects: 24% (17435/72645), 6.23 MiB | 636.00 KiB/s Receiving objects: 25% (18162/72645), 6.23 MiB | 636.00 KiB/s Receiving objects: 26% (18888/72645), 6.23 MiB | 636.00 KiB/s Receiving objects: 27% (19615/72645), 6.79 MiB | 637.00 KiB/s Receiving objects: 27% (20328/72645), 6.79 MiB | 637.00 KiB/s Receiving objects: 28% (20341/72645), 6.79 MiB | 637.00 KiB/s Receiving objects: 29% (21068/72645), 7.36 MiB | 634.00 KiB/s Receiving objects: 29% (21663/72645), 7.94 MiB | 654.00 KiB/s Receiving objects: 30% (21794/72645), 7.94 MiB | 654.00 KiB/s Receiving objects: 31% (22520/72645), 8.28 MiB | 644.00 KiB/s Receiving objects: 32% (23247/72645), 8.28 MiB | 644.00 KiB/s Receiving objects: 33% (23973/72645), 8.28 MiB | 644.00 KiB/s Receiving objects: 33% (24281/72645), 8.65 MiB | 734.00 KiB/s Receiving objects: 34% (24700/72645), 8.65 MiB | 734.00 KiB/s Receiving objects: 35% (25426/72645), 8.65 MiB | 734.00 KiB/s Receiving objects: 36% (26153/72645), 8.65 MiB | 734.00 KiB/s Receiving objects: 37% (26879/72645), 8.65 MiB | 734.00 KiB/s Receiving objects: 38% (27606/72645), 8.65 MiB | 734.00 KiB/s Receiving objects: 39% (28332/72645), 9.26 MiB | 835.00 KiB/s Receiving objects: 40% (29058/72645), 9.26 MiB | 835.00 KiB/s Receiving objects: 40% (29402/72645), 9.26 MiB | 835.00 KiB/s Receiving objects: 41% (29785/72645), 9.26 MiB | 835.00 KiB/s Receiving objects: 42% (30511/72645), 9.26 MiB | 835.00 KiB/s Receiving objects: 43% (31238/72645), 9.72 MiB | 869.00 KiB/s Receiving objects: 44% (31964/72645), 9.72 MiB | 869.00 KiB/s Receiving objects: 45% (32691/72645), 10.02 MiB | 857.00 KiB/s Receiving objects: 45% (33238/72645), 10.02 MiB | 857.00 KiB/s Receiving objects: 46% (33417/72645), 10.02 MiB | 857.00 KiB/s Receiving objects: 47% (34144/72645), 10.53 MiB | 854.00 KiB/s Receiving objects: 48% (34870/72645), 10.53 MiB | 854.00 KiB/s Receiving objects: 49% (35597/72645), 10.53 MiB | 854.00 KiB/s Receiving objects: 49% (36007/72645), 11.04 MiB | 832.00 KiB/s Receiving objects: 50% (36323/72645), 11.04 MiB | 832.00 KiB/s Receiving objects: 51% (37049/72645), 11.04 MiB | 832.00 KiB/s Receiving objects: 51% (37183/72645), 11.59 MiB | 826.00 KiB/s Receiving objects: 52% (37776/72645), 12.11 MiB | 795.00 KiB/s Receiving objects: 52% (38014/72645), 12.38 MiB | 779.00 KiB/s Receiving objects: 53% (38502/72645), 12.38 MiB | 779.00 KiB/s Receiving objects: 54% (39229/72645), 12.38 MiB | 779.00 KiB/s Receiving objects: 55% (39955/72645), 12.87 MiB | 814.00 KiB/s Receiving objects: 56% (40682/72645), 12.87 MiB | 814.00 KiB/s Receiving objects: 57% (41408/72645), 12.87 MiB | 814.00 KiB/s Receiving objects: 57% (41713/72645), 13.25 MiB | 770.00 KiB/s Receiving objects: 58% (42135/72645), 13.25 MiB | 770.00 KiB/s Receiving objects: 59% (42861/72645), 13.65 MiB | 758.00 KiB/s Receiving objects: 60% (43587/72645), 13.65 MiB | 758.00 KiB/s Receiving objects: 60% (43847/72645), 14.11 MiB | 780.00 KiB/s Receiving objects: 61% (44314/72645), 14.11 MiB | 780.00 KiB/s Receiving objects: 62% (45040/72645), 14.61 MiB | 788.00 KiB/s Receiving objects: 62% (45326/72645), 14.61 MiB | 788.00 KiB/s Receiving objects: 63% (45767/72645), 15.11 MiB | 803.00 KiB/s Receiving objects: 63% (46485/72645), 15.61 MiB | 800.00 KiB/s Receiving objects: 64% (46493/72645), 15.61 MiB | 800.00 KiB/s Receiving objects: 65% (47220/72645), 15.61 MiB | 800.00 KiB/s Receiving objects: 66% (47946/72645), 16.17 MiB | 806.00 KiB/s Receiving objects: 67% (48673/72645), 16.17 MiB | 806.00 KiB/s Receiving objects: 68% (49399/72645), 16.17 MiB | 806.00 KiB/s Receiving objects: 68% (49688/72645), 16.67 MiB | 832.00 KiB/s Receiving objects: 69% (50126/72645), 16.67 MiB | 832.00 KiB/s Receiving objects: 70% (50852/72645), 16.67 MiB | 832.00 KiB/s Receiving objects: 71% (51578/72645), 16.67 MiB | 832.00 KiB/s Receiving objects: 72% (52305/72645), 16.67 MiB | 832.00 KiB/s Receiving objects: 73% (53031/72645), 17.22 MiB | 835.00 KiB/s Receiving objects: 74% (53758/72645), 17.22 MiB | 835.00 KiB/s Receiving objects: 75% (54484/72645), 17.22 MiB | 835.00 KiB/s Receiving objects: 75% (55079/72645), 17.22 MiB | 835.00 KiB/s Receiving objects: 76% (55211/72645), 17.22 MiB | 835.00 KiB/s Receiving objects: 77% (55937/72645), 17.22 MiB | 835.00 KiB/s Receiving objects: 78% (56664/72645), 17.76 MiB | 836.00 KiB/s Receiving objects: 79% (57390/72645), 17.76 MiB | 836.00 KiB/s Receiving objects: 79% (58004/72645), 18.06 MiB | 801.00 KiB/s Receiving objects: 80% (58116/72645), 18.06 MiB | 801.00 KiB/s Receiving objects: 81% (58843/72645), 18.06 MiB | 801.00 KiB/s Receiving objects: 82% (59569/72645), 18.06 MiB | 801.00 KiB/s Receiving objects: 83% (60296/72645), 18.06 MiB | 801.00 KiB/s Receiving objects: 84% (61022/72645), 18.52 MiB | 808.00 KiB/s Receiving objects: 85% (61749/72645), 18.52 MiB | 808.00 KiB/s Receiving objects: 85% (62340/72645), 18.52 MiB | 808.00 KiB/s Receiving objects: 86% (62475/72645), 18.88 MiB | 785.00 KiB/s Receiving objects: 87% (63202/72645), 18.88 MiB | 785.00 KiB/s Receiving objects: 88% (63928/72645), 18.88 MiB | 785.00 KiB/s Receiving objects: 89% (64655/72645), 18.88 MiB | 785.00 KiB/s Receiving objects: 90% (65381/72645), 19.42 MiB | 785.00 KiB/s Receiving objects: 91% (66107/72645), 19.42 MiB | 785.00 KiB/s Receiving objects: 91% (66248/72645), 19.42 MiB | 785.00 KiB/s Receiving objects: 92% (66834/72645), 19.42 MiB | 785.00 KiB/s Receiving objects: 93% (67560/72645), 19.42 MiB | 785.00 KiB/s Receiving objects: 94% (68287/72645), 19.42 MiB | 785.00 KiB/s Receiving objects: 95% (69013/72645), 19.98 MiB | 796.00 KiB/s Receiving objects: 96% (69740/72645), 19.98 MiB | 796.00 KiB/s Receiving objects: 97% (70466/72645), 20.31 MiB | 771.00 KiB/s Receiving objects: 97% (70584/72645), 20.31 MiB | 771.00 KiB/s Receiving objects: 98% (71193/72645), 20.84 MiB | 798.00 KiB/s Receiving objects: 98% (71593/72645), 21.21 MiB | 772.00 KiB/s Receiving objects: 99% (71919/72645), 21.21 MiB | 772.00 KiB/s remote: Total 72645 (delta 873), reused 611 (delta 605), pack-reused 71573 (from 4) Receiving objects: 100% (72645/72645), 21.21 MiB | 772.00 KiB/s Receiving objects: 100% (72645/72645), 21.59 MiB | 751.00 KiB/s, done. Resolving deltas: 0% (0/53310) Resolving deltas: 1% (534/53310) Resolving deltas: 2% (1067/53310) Resolving deltas: 3% (1600/53310) Resolving deltas: 4% (2133/53310) Resolving deltas: 5% (2666/53310) Resolving deltas: 6% (3199/53310) Resolving deltas: 7% (3733/53310) Resolving deltas: 8% (4265/53310) Resolving deltas: 9% (4799/53310) Resolving deltas: 10% (5331/53310) Resolving deltas: 11% (5865/53310) Resolving deltas: 12% (6398/53310) Resolving deltas: 13% (6931/53310) Resolving deltas: 14% (7464/53310) Resolving deltas: 15% (7997/53310) Resolving deltas: 16% (8538/53310) Resolving deltas: 17% (9063/53310) Resolving deltas: 18% (9596/53310) Resolving deltas: 19% (10129/53310) Resolving deltas: 20% (10662/53310) Resolving deltas: 21% (11196/53310) Resolving deltas: 22% (11729/53310) Resolving deltas: 22% (11971/53310) Resolving deltas: 23% (12262/53310) Resolving deltas: 24% (12795/53310) Resolving deltas: 25% (13328/53310) Resolving deltas: 26% (13861/53310) Resolving deltas: 27% (14394/53310) Resolving deltas: 28% (14927/53310) Resolving deltas: 29% (15460/53310) Resolving deltas: 30% (15993/53310) Resolving deltas: 31% (16527/53310) Resolving deltas: 32% (17060/53310) Resolving deltas: 33% (17593/53310) Resolving deltas: 34% (18126/53310) Resolving deltas: 35% (18659/53310) Resolving deltas: 36% (19192/53310) Resolving deltas: 37% (19725/53310) Resolving deltas: 38% (20258/53310) Resolving deltas: 39% (20791/53310) Resolving deltas: 39% (21258/53310) Resolving deltas: 40% (21324/53310) Resolving deltas: 41% (21858/53310) Resolving deltas: 42% (22391/53310) Resolving deltas: 43% (22924/53310) Resolving deltas: 44% (23457/53310) Resolving deltas: 45% (23990/53310) Resolving deltas: 46% (24523/53310) Resolving deltas: 47% (25056/53310) Resolving deltas: 48% (25589/53310) Resolving deltas: 49% (26122/53310) Resolving deltas: 50% (26655/53310) Resolving deltas: 51% (27189/53310) Resolving deltas: 52% (27722/53310) Resolving deltas: 53% (28255/53310) Resolving deltas: 53% (28264/53310) Resolving deltas: 54% (28788/53310) Resolving deltas: 55% (29321/53310) Resolving deltas: 56% (29854/53310) Resolving deltas: 57% (30387/53310) Resolving deltas: 58% (30920/53310) Resolving deltas: 59% (31453/53310) Resolving deltas: 60% (31986/53310) Resolving deltas: 60% (32247/53310) Resolving deltas: 61% (32520/53310) Resolving deltas: 62% (33053/53310) Resolving deltas: 63% (33586/53310) Resolving deltas: 64% (34119/53310) Resolving deltas: 65% (34652/53310) Resolving deltas: 66% (35185/53310) Resolving deltas: 67% (35718/53310) Resolving deltas: 68% (36251/53310) Resolving deltas: 68% (36555/53310) Resolving deltas: 69% (36784/53310) Resolving deltas: 70% (37317/53310) Resolving deltas: 71% (37851/53310) Resolving deltas: 72% (38384/53310) Resolving deltas: 73% (38917/53310) Resolving deltas: 74% (39450/53310) Resolving deltas: 75% (39983/53310) Resolving deltas: 76% (40516/53310) Resolving deltas: 77% (41049/53310) Resolving deltas: 77% (41227/53310) Resolving deltas: 78% (41582/53310) Resolving deltas: 79% (42115/53310) Resolving deltas: 80% (42648/53310) Resolving deltas: 81% (43182/53310) Resolving deltas: 82% (43715/53310) Resolving deltas: 83% (44248/53310) Resolving deltas: 83% (44544/53310) Resolving deltas: 84% (44781/53310) Resolving deltas: 85% (45314/53310) Resolving deltas: 86% (45847/53310) Resolving deltas: 87% (46380/53310) Resolving deltas: 88% (46916/53310) Resolving deltas: 89% (47446/53310) Resolving deltas: 90% (47979/53310) Resolving deltas: 91% (48513/53310) Resolving deltas: 92% (49046/53310) Resolving deltas: 93% (49579/53310) Resolving deltas: 94% (50112/53310) Resolving deltas: 95% (50645/53310) Resolving deltas: 95% (50807/53310) Resolving deltas: 96% (51178/53310) Resolving deltas: 97% (51711/53310) Resolving deltas: 98% (52244/53310) Resolving deltas: 99% (52777/53310) Resolving deltas: 100% (53310/53310) Resolving deltas: 100% (53310/53310), done.  -> Found qtile-0.37.0-user-unit-exec.patch ==> Validating source files with sha512sums... qtile ... Passed qtile-0.37.0-user-unit-exec.patch ... Passed ==> Validating source files with b2sums... qtile ... Passed qtile-0.37.0-user-unit-exec.patch ... Passed ==> Verifying source file signatures with gpg... qtile git repo ... Passed ]3008;end=2c53a36743db4c71a5b975bf20089d91\Note: in a future version of systemd-nspawn the default set of permitted socket address families will be restricted to AF_INET, AF_INET6 and AF_UNIX. Use --restrict-address-families= to configure the set of permitted socket address families, or set RestrictAddressFamilies= in a .nspawn file. ]3008;start=df176fac08ca44d6a33531c3c760ca7a;user=root;hostname=aurorus.felixc.at;machineid=01ca1404c26b4b3a80152fb4f25f4ca7;bootid=62bf108769c34cbbb3b3844801966040;pid=2831393;comm=systemd-nspawn;container=makechrootpkg-qtile.build.2827698;type=container\]11;?\]2;🔵 Container makechrootpkg-qtile.build.2827698 on aurorus.felixc.at\]3008;start=99f044c77a8d40a68b552c47db67eb08;user=root;hostname=makechrootpkg-qtile.build.2827698;machineid=0d405df5a1cc4a8aa1ca96c60fd93bc2;bootid=330db1d91f414a4fb1a150554b1da22a;pid=14;comm=sudo;targetuser=builduser;type=session\==> Making package: qtile 0.37.0-1 (Wed Sep 9 21:16:36 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... ]3008;start=98f1661fd3a6457780ae1ae2b31bc4d8;user=builduser;hostname=makechrootpkg-qtile.build.2827698;machineid=0d405df5a1cc4a8aa1ca96c60fd93bc2;bootid=330db1d91f414a4fb1a150554b1da22a;pid=1420;comm=sudo;targetuser=root;type=session\[?25lresolving dependencies... looking for conflicting packages... Package (76) New Version Net Change Download Size extra/bubblewrap 0.12.0-1 0.09 MiB extra/dav1d 1.5.4-1 0.71 MiB extra/default-cursors 3-1 0.00 MiB extra/fontconfig 2:2.18.3-2 1.28 MiB extra/freetype2 2.14.3-1 1.61 MiB extra/fribidi 1.0.16-2 0.24 MiB extra/giflib 6.1.3-2 0.30 MiB extra/glycin 2.1.5-2 20.41 MiB extra/gobject-introspection-runtime 1.86.0-2 0.15 MiB extra/gperftools 2.18.1-1 1.99 MiB extra/graphite 1:1.3.15-1 0.18 MiB extra/gtest 1.18.0-1 1.57 MiB extra/harfbuzz 14.4.0-1 4.70 MiB extra/highway 1.4.0-1 4.57 MiB extra/jbigkit 2.1-8 0.13 MiB extra/lcms2 2.19.1-1 0.66 MiB extra/libdatrie 0.2.14-1 0.48 MiB extra/libdeflate 1.26-1 0.10 MiB extra/libdisplay-info 0.3.0-1 0.39 MiB extra/libdrm 2.4.134-1 1.23 MiB core/libedit 20260512_3.1-1 0.26 MiB extra/libevdev 1.13.7-1 0.24 MiB extra/libgirepository 1.86.0-2 1.51 MiB extra/libglvnd 1.7.0-3 3.99 MiB extra/libgudev 238-3 0.38 MiB extra/libjpeg-turbo 3.2.0-2 2.24 MiB extra/libjxl 0.12.0-1 9.72 MiB extra/libliftoff 0.5.0-1 0.04 MiB extra/libpciaccess 0.19-1 0.05 MiB extra/libpng 1.6.58-2 0.54 MiB extra/libthai 0.1.30-1 1.24 MiB extra/libtiff 4.7.2-1 1.18 MiB extra/libunwind 1.8.3-1 0.26 MiB extra/libwacom 2.20.0-1 1.60 MiB extra/libwebp 1.6.0-2 0.64 MiB extra/libx11 1.8.13-1 9.75 MiB extra/libxau 1.0.12-1 0.02 MiB extra/libxcb 1.17.0-1 3.69 MiB extra/libxdmcp 1.1.5-2 0.13 MiB extra/libxext 1.3.7-1 0.30 MiB extra/libxft 2.3.9-1 0.12 MiB extra/libxkbcommon 1.13.2-1 0.98 MiB extra/libxrender 0.9.12-1 0.09 MiB extra/libxshmfence 1.3.3-1 0.01 MiB extra/libxxf86vm 1.1.7-1 0.03 MiB extra/llvm-libs 22.1.8-2 154.50 MiB extra/lm_sensors 1:3.6.2-1 0.43 MiB extra/lua54 5.4.9-1 1.46 MiB core/lzo 2.10-5 0.34 MiB extra/mesa 1:26.2.2-1 51.41 MiB extra/mtdev 1.1.7-1 0.05 MiB extra/pixman 0.46.4-1 0.48 MiB extra/python-pycparser 3.00-1 0.71 MiB extra/seatd 0.9.3-1 0.09 MiB extra/shared-mime-info 2.5.1-2 5.81 MiB extra/spirv-tools 1:1.4.357.0-1 7.12 MiB extra/vulkan-icd-loader 1.4.357.0-1 0.54 MiB extra/wayland-protocols 1.49-1 0.98 MiB extra/xcb-proto 1.17.0-4 1.03 MiB extra/xcb-util-errors 1.0.1-2 0.04 MiB extra/xcb-util-renderutil 0.3.10-2 0.02 MiB extra/xcb-util-wm 0.4.2-2 0.21 MiB extra/xkeyboard-config 2.48-1 10.24 MiB extra/xorgproto 2025.1-1 1.47 MiB extra/cairo 1.18.4-1 1.44 MiB extra/gdk-pixbuf2 2.44.7-1 2.98 MiB extra/libinput 1.31.3-1 0.72 MiB extra/libnotify 0.8.8-1 0.16 MiB extra/librsvg 2:2.62.3-1 10.04 MiB extra/pango 1:1.58.2-1 2.37 MiB extra/python-cairocffi 1.7.1-2 1.03 MiB 0.13 MiB extra/python-cffi 2.1.1-1 1.41 MiB extra/python-gobject 3.56.3-1 1.51 MiB extra/python-xcffib 1.6.2-1 4.01 MiB 0.28 MiB extra/wayland 1.26.0-1 0.84 MiB extra/wlroots0.20 0.20.2-1 1.73 MiB Total Download Size: 0.41 MiB Total Installed Size: 344.99 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-xcffib-1.6.2-1-any downloading... python-cairocffi-1.7.1-2-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing libpng... installing freetype2... Optional dependencies for freetype2 harfbuzz: Improved autohinting [pending] installing fontconfig... Creating fontconfig configuration... Rebuilding fontconfig cache... installing xcb-proto... installing xorgproto... installing libxdmcp... installing libxau... installing libxcb... installing libx11... installing libxext... installing libxrender... installing lzo... installing pixman... installing cairo... installing bubblewrap... installing libjpeg-turbo... installing jbigkit... installing libdeflate... installing libwebp... Optional dependencies for libwebp libwebp-utils: WebP conversion and inspection tools installing libtiff... Optional dependencies for libtiff freeglut: for using tiffgt installing lcms2... installing giflib... installing libunwind... installing gperftools... installing gtest... Optional dependencies for gtest python: gmock generator [installed] installing highway... installing libjxl... Optional dependencies for libjxl java-runtime: for JNI bindings installing dav1d... Optional dependencies for dav1d dav1d-doc: HTML documentation installing graphite... Optional dependencies for graphite graphite-docs: Documentation installing harfbuzz... Optional dependencies for harfbuzz harfbuzz-utils: utilities installing fribidi... installing libdatrie... installing libthai... installing libxft... installing pango... installing librsvg... installing glycin... Optional dependencies for glycin libheif: Load .avif, .heic and .heif installing shared-mime-info... installing gdk-pixbuf2... Optional dependencies for gdk-pixbuf2 libheif: Load .avif, .heic and .heif libopenraw: Load .arw, .cr2, .crw, .dng, .erf, .mrw, .nef, .orf, .pef and .raf libwmf: Load .apm and .wmf installing libevdev... installing libgudev... installing libwacom... Optional dependencies for libwacom python-libevdev: for libwacom-show-stylus python-pyudev: for libwacom-show-stylus installing lua54... installing mtdev... installing libinput... Optional dependencies for libinput libinput-tools: debug utilities installing libnotify... installing python-pycparser... installing python-cffi... Optional dependencies for python-cffi python-setuptools: "limited api" version checking in cffi.setuptools_ext installing python-cairocffi... Optional dependencies for python-cairocffi gdk-pixbuf2: for cairocffi.pixbuf [installed] python-xcffib: for cairo xcb support [pending] installing libgirepository... installing gobject-introspection-runtime... installing python-gobject... Optional dependencies for python-gobject python-cairo: Cairo bindings installing python-xcffib... installing default-cursors... Optional dependencies for default-cursors adwaita-cursors: default cursor theme installing wayland... installing libdisplay-info... installing libpciaccess... installing libdrm... Optional dependencies for libdrm cairo: needed for modetest tool [installed] installing libxshmfence... installing libxxf86vm... installing libedit... installing llvm-libs... installing lm_sensors... Optional dependencies for lm_sensors rrdtool: for logging with sensord perl: for sensor detection and configuration convert [installed] installing spirv-tools... installing mesa... Optional dependencies for mesa opengl-man-pages: for the OpenGL API man pages installing libglvnd... installing libliftoff... installing seatd... installing vulkan-icd-loader... Optional dependencies for vulkan-icd-loader vulkan-driver: packaged vulkan driver installing xkeyboard-config... installing libxkbcommon... Optional dependencies for libxkbcommon libxkbcommon-x11: xkbcli interactive-x11 wayland: xkbcli interactive-wayland [installed] installing wayland-protocols... installing xcb-util-errors... installing xcb-util-renderutil... installing xcb-util-wm... installing wlroots0.20... Optional dependencies for wlroots0.20 xorg-xwayland: Xwayland support vulkan-validation-layers: validation layers for the experimental vulkan renderer backend :: Running post-transaction hooks... (1/8) Creating system user accounts... Creating group 'seat' with GID 968. (2/8) Updating udev hardware database... (3/8) Reloading system manager configuration... Skipped: Current root is not booted. (4/8) Updating the MIME type database... (5/8) Reloading device manager configuration... Skipped: Current root is not booted. (6/8) Arming ConditionNeedsUpdate... (7/8) Updating fontconfig configuration... (8/8) Updating fontconfig cache... [?25h]3008;end=98f1661fd3a6457780ae1ae2b31bc4d8\==> Checking buildtime dependencies... ==> Installing missing dependencies... ]3008;start=faabb5ac1eb145d6b384c73dc33136b6;user=builduser;hostname=makechrootpkg-qtile.build.2827698;machineid=0d405df5a1cc4a8aa1ca96c60fd93bc2;bootid=330db1d91f414a4fb1a150554b1da22a;pid=1804;comm=sudo;targetuser=root;type=session\[?25lresolving dependencies... looking for conflicting packages... Package (183) New Version Net Change Download Size extra/adwaita-cursors 50.0-1 11.41 MiB extra/adwaita-fonts 51.0-2 7.27 MiB extra/adwaita-icon-theme 50.0-1 1.19 MiB extra/adwaita-icon-theme-legacy 46.2-3 2.23 MiB extra/alsa-lib 1.2.16.1-1 1.78 MiB extra/alsa-topology-conf 1.2.5.1-4 0.33 MiB extra/alsa-ucm-conf 1.2.16.1-1 0.68 MiB extra/aom 3.15.0-1 4.98 MiB extra/at-spi2-core 2.60.6-1 4.08 MiB extra/avahi 1:0.9rc5-1 1.94 MiB extra/blas 3.12.1-2 0.43 MiB extra/cblas 3.12.1-2 0.31 MiB extra/cython 3.2.9-1 18.37 MiB extra/dconf 0.49.0-1 0.43 MiB extra/desktop-file-utils 0.28-1 0.19 MiB extra/duktape 2.7.0-7 0.78 MiB extra/fftw 3.3.11-1.1 4.24 MiB extra/flac 1.5.0-1 1.06 MiB extra/gd 2.3.3-9 0.57 MiB extra/ghostscript 10.07.1-1 43.65 MiB extra/glib-networking 1:2.80.1-1 0.63 MiB extra/gsettings-desktop-schemas 50.1-1 6.08 MiB extra/gsettings-system-schemas 50.1-1 0.02 MiB extra/gsfonts 20200910-6 3.11 MiB extra/gtk-update-icon-cache 1:4.22.4-1 0.03 MiB extra/gts 0.7.6.121130-5 0.61 MiB extra/hicolor-icon-theme 0.18-1 0.05 MiB extra/httpbin 0.10.4-1 0.35 MiB extra/ijs 0.35-7 0.11 MiB extra/ipython 9.17.0-1 6.57 MiB extra/iso-codes 4.20.1-1 22.30 MiB extra/jbig2dec 0.20-2 0.14 MiB extra/json-glib 1.10.8-1 1.01 MiB extra/l-smash 2.14.5-4 1.00 MiB extra/lame 4.0-1 1.04 MiB extra/lapack 3.12.1-2 9.09 MiB extra/libasyncns 1:0.8+r3+g68cd5af-3 0.04 MiB extra/libavif 1.4.2-1 0.77 MiB extra/libcloudproviders 0.4.1-1 0.32 MiB extra/libcolord 1.4.8-1 1.24 MiB extra/libcups 2:2.4.19-1 0.83 MiB extra/libdaemon 0.14-6 0.05 MiB extra/libde265 1.1.2-1 0.74 MiB extra/libdecor 0.2.5-1 0.15 MiB extra/libei 1.6.0-1 0.40 MiB extra/libepoxy 1.5.10-3 2.76 MiB extra/libfontenc 1.1.9-1 0.03 MiB extra/libheif 1.23.4-1 2.46 MiB extra/libice 1.1.2-1 0.35 MiB extra/libidn 1.44-1 0.85 MiB extra/liblqr 0.4.3-1 0.08 MiB extra/libogg 1.3.6-1 0.43 MiB extra/libpaper 2.2.8-1 0.13 MiB extra/libproxy 0.5.12-1 0.08 MiB extra/libraqm 0.11.0-1 0.19 MiB extra/libsm 1.2.6-1 0.26 MiB extra/libsndfile 1.2.2-4 0.85 MiB extra/libsoup3 3.6.6-2 1.99 MiB extra/libstemmer 3.1.1-1 0.92 MiB extra/libutempter 1.2.3-1 0.02 MiB extra/libvorbis 1.3.7-4 0.84 MiB extra/libxaw 1.0.16-2 1.64 MiB extra/libxcomposite 0.4.7-1 0.02 MiB extra/libxcursor 1.2.3-1 0.06 MiB extra/libxcvt 0.1.3-1 0.02 MiB extra/libxdamage 1.1.7-1 0.01 MiB extra/libxfixes 6.0.2-1 0.03 MiB extra/libxfont2 2.0.9-1 0.17 MiB extra/libxi 1.8.3-1 0.48 MiB extra/libxinerama 1.1.6-1 0.02 MiB extra/libxkbfile 1.2.0-1 0.18 MiB extra/libxmu 1.3.1-1 0.33 MiB extra/libxpm 3.5.19-1 0.14 MiB extra/libxrandr 1.5.5-1 0.07 MiB extra/libxt 1.3.1-1 1.99 MiB extra/libxtst 1.2.5-1 0.11 MiB extra/libyaml 0.2.5-3 0.16 MiB extra/libyuv r2921+644251f25-1 1.16 MiB extra/llhttp 9.3.1-1 0.11 MiB extra/mpg123 1.33.7-1 1.06 MiB extra/netpbm 10.86.50-2 9.68 MiB extra/openh264 2.6.0-2 1.67 MiB extra/openjpeg2 2.5.4-1 13.30 MiB extra/opus 1.6.1-1 4.03 MiB extra/perl-error 0.17030-3 0.04 MiB extra/perl-mailtools 2.22-3 0.10 MiB extra/perl-timedate 2.35-1 0.15 MiB extra/poppler-data 0.4.12-2 12.34 MiB extra/python-aiohappyeyeballs 2.7.1-1 0.09 MiB extra/python-aiosignal 1.4.0-3 0.03 MiB extra/python-appdirs 1.4.4-12 0.09 MiB extra/python-argcomplete 3.7.2-1 0.33 MiB extra/python-asttokens 3.0.2-1 0.24 MiB extra/python-attrs 26.1.0-1 0.63 MiB extra/python-autocommand 2.2.2-9 0.08 MiB extra/python-blinker 1.9.0-4 0.08 MiB extra/python-brotlicffi 1.2.0.2-1 0.13 MiB extra/python-click 8.3.3-1 1.38 MiB extra/python-colorama 0.4.6-6 0.25 MiB extra/python-decorator 5.3.1-1 0.07 MiB extra/python-executing 2.2.1-3.1 0.29 MiB extra/python-fissix 24.4.24-2 2.37 MiB 0.37 MiB extra/python-flask 3.1.3-1 1.13 MiB extra/python-frozenlist 1.8.0-2 0.14 MiB extra/python-greenlet 3.5.1-1 0.46 MiB extra/python-idna 3.19-1 0.66 MiB extra/python-iniconfig 2.3.0-1 0.07 MiB extra/python-ipython-pygments-lexers 1.1.1-3.1 0.05 MiB extra/python-itsdangerous 2.2.0-2 0.15 MiB extra/python-jaraco.collections 5.1.0-3 0.11 MiB extra/python-jaraco.context 6.1.2-1 0.06 MiB extra/python-jaraco.functools 4.1.0-3 0.07 MiB extra/python-jaraco.text 4.0.0-4 0.08 MiB extra/python-jedi 0.20.0-1 16.09 MiB extra/python-jinja 1:3.1.6-3.1 2.04 MiB extra/python-markupsafe 3.0.3-1 0.09 MiB extra/python-matplotlib-inline 0.2.2-1.1 0.06 MiB extra/python-more-itertools 11.1.0-1 0.77 MiB extra/python-moreorless 0.6.0-1 0.09 MiB 0.02 MiB extra/python-multidict 6.7.1-1 0.33 MiB extra/python-numpy 2.5.3-1 42.54 MiB extra/python-packaging 26.3-1 1.58 MiB extra/python-parso 1:0.8.7-1 1.03 MiB extra/python-pexpect 4.9.0-7.1 0.61 MiB extra/python-platformdirs 4.11.7-1 0.47 MiB extra/python-pluggy 1.6.0-3.1 0.23 MiB extra/python-prompt_toolkit 3.0.53-1 5.10 MiB extra/python-propcache 0.4.1-2 0.12 MiB extra/python-psutil 7.2.2-1 1.14 MiB extra/python-ptyprocess 0.7.0-9 0.12 MiB extra/python-pure-eval 0.2.3-3 0.11 MiB extra/python-pygments 2.21.0-1 15.59 MiB extra/python-pyproject-hooks 1.2.0-6 0.11 MiB extra/python-setuptools 1:84.0.0-1 4.92 MiB extra/python-stack-data 0.6.3-5 0.24 MiB extra/python-traitlets 5.16.1-1 1.14 MiB extra/python-typing_extensions 4.16.0-1 0.53 MiB extra/python-vcs-versioning 2.3.4-1 1.18 MiB extra/python-volatile 2.1.0-8 0.02 MiB extra/python-wcwidth 0.8.3-1 6.64 MiB extra/python-werkzeug 3.1.8-1 2.75 MiB extra/python-yaml 6.0.3-2 0.93 MiB extra/python-yarl 1.23.0-1 0.48 MiB extra/rav1e 0.8.1-3 4.85 MiB extra/svt-av1 4.2.0-1 2.16 MiB extra/tinysparql 3.11.1-1 3.88 MiB extra/x264 3:0.165.r3222.b35605a-2 2.32 MiB extra/x265 4.3-1 6.65 MiB extra/xcb-util 0.4.1-2 0.03 MiB extra/xcb-util-image 0.4.1-3 0.05 MiB extra/xcb-util-keysyms 0.4.1-5 0.01 MiB extra/xorg-fonts-encodings 1.1.0-2 0.61 MiB extra/xorg-server-common 21.1.24-1 0.12 MiB extra/xorg-setxkbmap 1.3.5-1 0.02 MiB extra/xorg-xauth 1.1.5-1 0.06 MiB extra/xorg-xkbcomp 1.5.0-1 0.20 MiB extra/xorg-xprop 1.2.8-1 0.05 MiB extra/zlib-ng 2.3.3-1 0.23 MiB extra/git 2.55.0-1 29.92 MiB extra/graphviz 16.0.0-1 10.40 MiB extra/gtk3 1:3.24.52-1 53.25 MiB extra/imagemagick 7.1.2.31-1 21.39 MiB extra/libpulse 17.0+r98+gb096704c0-1 1.42 MiB core/procps-ng 4.0.7-1 2.56 MiB extra/python-aiohttp 3.13.5-1 4.15 MiB extra/python-anyio 4.15.1-1 2.24 MiB extra/python-bowler 0.9.0-10 0.48 MiB 0.09 MiB extra/python-build 1.6.0-1 0.33 MiB extra/python-dbus-fast 5.0.22-1 2.66 MiB 0.72 MiB extra/python-installer 1.0.1-1 0.21 MiB extra/python-isort 9.0.0b2-1 1.13 MiB extra/python-libcst 1.8.6-1 11.90 MiB extra/python-pytest 1:9.1.1-1 4.95 MiB extra/python-pytest-asyncio 1.4.0-1 0.17 MiB extra/python-pytest-httpbin 2.1.0-2 0.04 MiB extra/python-pyxdg 0.28-7 0.58 MiB extra/python-setuptools-scm 10.2.3-1 0.23 MiB extra/python-wheel 0.48.0-1 0.34 MiB extra/xorg-server-xephyr 21.1.24-1 2.22 MiB 1.04 MiB extra/xorg-server-xvfb 21.1.24-1 1.88 MiB extra/xorg-xrandr 1.5.4-1 0.06 MiB 0.04 MiB extra/xorg-xwayland 24.1.13-1 2.29 MiB extra/xterm 411-1 1.09 MiB 0.49 MiB Total Download Size: 2.76 MiB Total Installed Size: 517.18 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... xorg-server-xephyr-21.1.24-1-riscv64 downloading... python-dbus-fast-5.0.22-1-riscv64 downloading... xterm-411-1-riscv64 downloading... python-fissix-24.4.24-2-any downloading... python-bowler-0.9.0-10-any downloading... xorg-xrandr-1.5.4-1-riscv64 downloading... python-moreorless-0.6.0-1-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing zlib-ng... installing git... Optional dependencies for git git-zsh-completion: upstream zsh completion tk: gitk and git gui openssh: ssh transport and crypto man: show help with `git command --help` perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] less: the default pager for git installing libasyncns... installing libogg... installing flac... installing alsa-topology-conf... installing alsa-ucm-conf... installing alsa-lib... installing mpg123... Optional dependencies for mpg123 sdl2-compat: for sdl audio support jack: for jack audio support libpulse: for pulse audio support [pending] perl: for conplay [installed] installing lame... installing libvorbis... installing opus... installing libsndfile... Optional dependencies for libsndfile alsa-lib: for sndfile-play [installed] installing libpulse... Optional dependencies for libpulse pulse-native-provider: PulseAudio backend installing python-packaging... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-installer... installing python-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing python-jaraco.text... Optional dependencies for python-jaraco.text python-inflect: for show-newlines script installing python-jaraco.collections... installing python-platformdirs... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures [pending] python-setuptools: for legacy bdist_wheel subcommand [pending] installing python-setuptools... installing python-vcs-versioning... Optional dependencies for python-vcs-versioning python-rich: formatting of log messages installing python-setuptools-scm... Optional dependencies for python-setuptools-scm python-rich: use rich as console log handler installing libice... installing libsm... installing libxt... installing libxpm... installing aom... installing libyuv... installing rav1e... installing svt-av1... installing libavif... installing libde265... Optional dependencies for libde265 sdl2-compat: for the decoder tool installing openh264... installing l-smash... installing x264... installing x265... installing libheif... Optional dependencies for libheif libjpeg-turbo: for heif-dec and heif-enc [installed] libpng: for heif-dec and heif-enc [installed] libtiff: for heif-dec and heif-enc [installed] dav1d: dav1d encoder [installed] ffmpeg: hardware decode openjpeg2: JPEG2000 decoder [pending] rav1e: rav1e encoder [installed] svt-av1: svt-av1 encoder [installed] installing gd... Optional dependencies for gd perl: bdftogd script [installed] installing libdaemon... installing avahi... Optional dependencies for avahi gtk3: avahi-discover, avahi-discover-standalone, bshell, bssh, bvnc [pending] libevent: libevent bindings [installed] nss-mdns: NSS support for mDNS python-dbus: avahi-bookmarks, avahi-discover python-gobject: avahi-bookmarks, avahi-discover [installed] python-twisted: avahi-bookmarks installing libcups... installing jbig2dec... installing libpaper... installing ijs... installing openjpeg2... installing libidn... installing poppler-data... installing ghostscript... Optional dependencies for ghostscript gtk3: needed for gsx [pending] installing netpbm... installing gts... installing gsfonts... installing graphviz... Optional dependencies for graphviz guile: guile bindings [installed] lua: lua bindings perl: perl bindings [installed] python: python bindings [installed] r: r bindings tcl: tcl bindings qt6-base: gvedit xterm: vimdot [pending] installing adwaita-fonts... installing hicolor-icon-theme... installing adwaita-icon-theme-legacy... installing adwaita-cursors... installing adwaita-icon-theme... installing dconf... installing gsettings-system-schemas... installing gsettings-desktop-schemas... installing libxfixes... installing libxi... installing libxtst... installing xorg-xprop... installing at-spi2-core... installing desktop-file-utils... installing iso-codes... installing libcloudproviders... installing libcolord... installing libepoxy... installing libxcomposite... installing libxcursor... installing libxdamage... installing libxinerama... installing libxrandr... installing json-glib... installing duktape... installing libproxy... installing glib-networking... installing libsoup3... Optional dependencies for libsoup3 samba: Windows Domain SSO installing libstemmer... installing tinysparql... installing gtk-update-icon-cache... installing gtk3... Optional dependencies for gtk3 evince: Default print preview command installing fftw... Optional dependencies for fftw fftw-openmpi: for OpenMPI integration installing liblqr... installing libraqm... installing imagemagick... Optional dependencies for imagemagick ghostscript: PS/PDF support [installed] jbigkit: JBIG support [installed] libheif: HEIF support [installed] libjpeg-turbo: JPEG support [installed] libjxl: JPEG XL support [installed] libraw: DNG support librsvg: SVG support [installed] libtiff: TIFF support [installed] libultrahdr: UHDR support libwebp: WEBP support [installed] libwmf: WMF support libzip: OpenRaster support ocl-icd: OpenCL support openexr: OpenEXR support openjpeg2: JPEG2000 support [installed] djvulibre: DJVU support pango: Text rendering [installed] installing procps-ng... installing llhttp... installing python-aiohappyeyeballs... installing python-frozenlist... installing python-aiosignal... installing python-attrs... installing python-multidict... installing python-propcache... installing python-idna... installing python-yarl... installing python-aiohttp... Optional dependencies for python-aiohttp gunicorn: to deploy using Gunicorn python-aiodns: for fast DNS resolving python-brotli: for Brotli transfer-encodings support installing python-anyio... Optional dependencies for python-anyio python-trio: trio backend python-outcome: trio backend python-uvloop: use uvloop for asyncio backend python-pytest: pytest plugin [pending] installing python-decorator... installing python-pygments... installing python-ipython-pygments-lexers... installing python-parso... installing python-jedi... installing python-argcomplete... installing python-typing_extensions... installing python-traitlets... installing python-matplotlib-inline... Optional dependencies for python-matplotlib-inline python-matplotlib installing python-ptyprocess... installing python-pexpect... installing python-wcwidth... installing python-prompt_toolkit... Optional dependencies for python-prompt_toolkit python-pygments: for color schemes and lexers [installed] installing python-psutil... installing python-asttokens... installing python-executing... installing python-pure-eval... installing python-stack-data... installing ipython... Optional dependencies for ipython python-black: to auto format with Black python-pickleshare: for the ip.db database yapf: to auto format with YAPF installing python-click... installing python-appdirs... installing python-fissix... installing python-moreorless... installing python-volatile... installing python-bowler... installing blas... installing cblas... installing lapack... installing python-numpy... Optional dependencies for python-numpy blas-openblas: faster linear algebra installing cython... installing python-dbus-fast... installing python-colorama... installing python-isort... installing libyaml... installing python-yaml... installing python-libcst... installing python-iniconfig... installing python-pluggy... installing python-pytest... installing python-pytest-asyncio... installing python-blinker... installing python-itsdangerous... installing python-markupsafe... installing python-jinja... Optional dependencies for python-jinja python-babel: for i18n support installing python-werkzeug... Optional dependencies for python-werkzeug python-watchdog: faster and more advanced reloader installing python-flask... Optional dependencies for python-flask python-asgiref: async functions and views python-cryptography: using ad-hoc certificates python-dotenv: loading env vars from files installing python-brotlicffi... installing python-greenlet... installing httpbin... installing python-pytest-httpbin... installing python-pyxdg... installing xorg-fonts-encodings... installing libfontenc... installing libxfont2... installing libxkbfile... installing xorg-xkbcomp... installing xorg-setxkbmap... installing xorg-server-common... installing xcb-util... installing xcb-util-image... installing xcb-util-keysyms... installing xorg-server-xephyr... installing libxmu... installing xorg-xauth... installing xorg-server-xvfb... installing xorg-xrandr... installing libxcvt... installing libei... installing libdecor... Optional dependencies for libdecor gtk3: gtk3 support [installed] installing xorg-xwayland... installing libutempter... installing libxaw... installing xterm... Optional dependencies for xterm luit: locale converter for -lc option xorg-mkfontscale: font scaling :: Running post-transaction hooks... ( 1/15) Creating system user accounts... Creating group 'avahi' with GID 967. Creating user 'avahi' (Avahi mDNS/DNS-SD daemon) with UID 967 and GID 967. Creating group 'git' with GID 966. Creating user 'git' (git daemon user) with UID 966 and GID 966. ( 2/15) Creating temporary files... ( 3/15) Reloading system manager configuration... Skipped: Current root is not booted. ( 4/15) Reloading user manager configuration... Skipped: Current root is not booted. ( 5/15) Arming ConditionNeedsUpdate... ( 6/15) Updating fontconfig configuration... ( 7/15) Reloading system bus configuration... Skipped: Current root is not booted. ( 8/15) Checking for old perl modules... ( 9/15) Updating fontconfig cache... (10/15) Updating GIO module cache... (11/15) Compiling GSettings XML schema files... (12/15) Probing GTK3 input method modules... (13/15) Updating icon theme caches... (14/15) Updating the info directory file... (15/15) Updating the desktop file MIME type cache... [?25h]3008;end=faabb5ac1eb145d6b384c73dc33136b6\==> Retrieving sources...  -> Found qtile-0.37.0-user-unit-exec.patch ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Creating working copy of qtile git repo... Cloning into 'qtile'... done. Switched to a new branch 'makepkg' ==> Starting prepare()... patching file resources/qtile.service ==> Starting build()... * Getting build dependencies for wheel... running egg_info creating qtile.egg-info writing qtile.egg-info/PKG-INFO writing dependency_links to qtile.egg-info/dependency_links.txt writing entry points to qtile.egg-info/entry_points.txt writing requirements to qtile.egg-info/requires.txt writing top-level names to qtile.egg-info/top_level.txt writing manifest file 'qtile.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '.pylintrc' warning: no previously-included files found matching 'uv.lock' warning: no previously-included files found matching 'libqtile/_ffi*.py' warning: no previously-included files found matching 'libqtile/backend/x11/_ffi*.py' warning: no previously-included files found matching 'libqtile/backend/wayland/_libinput*.*' warning: no previously-included files found matching 'libqtile/backend/wayland/qw/build/*.o' no previously-included directories found matching 'bin' no previously-included directories found matching 'rpm' warning: no previously-included files matching '__pycache__' found under directory '*' warning: no previously-included files matching '*.py[co]' found under directory '*' adding license file 'LICENSE' writing manifest file 'qtile.egg-info/SOURCES.txt' * Building wheel... running bdist_wheel running build running build_py creating build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/utils.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/group.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/_build_config.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/log_utils.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/confreader.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/bar.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/dgroups.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/lazy.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/images.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/scratchpad.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/pangocffi.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/config.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/pango_ffi.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/notify.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/popup.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/ipc.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/configurable.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/sh.py -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/hook.py -> build/lib.linux-riscv64-cpython-314/libqtile creating build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/migrate.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/main.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/x11_identify_output.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/repl.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/launch.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/start.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/shell.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/run_cmd.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/check.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/top.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts copying libqtile/scripts/cmd_obj.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts creating build/lib.linux-riscv64-cpython-314/libqtile/backend copying libqtile/backend/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend creating build/lib.linux-riscv64-cpython-314/libqtile/interactive copying libqtile/interactive/repl.py -> build/lib.linux-riscv64-cpython-314/libqtile/interactive copying libqtile/interactive/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/interactive copying libqtile/interactive/iqshell_install.py -> build/lib.linux-riscv64-cpython-314/libqtile/interactive copying libqtile/interactive/iqshell_kernel.py -> build/lib.linux-riscv64-cpython-314/libqtile/interactive creating build/lib.linux-riscv64-cpython-314/libqtile/command copying libqtile/command/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/command copying libqtile/command/interface.py -> build/lib.linux-riscv64-cpython-314/libqtile/command copying libqtile/command/client.py -> build/lib.linux-riscv64-cpython-314/libqtile/command copying libqtile/command/base.py -> build/lib.linux-riscv64-cpython-314/libqtile/command copying libqtile/command/graph.py -> build/lib.linux-riscv64-cpython-314/libqtile/command creating build/lib.linux-riscv64-cpython-314/libqtile/core copying libqtile/core/manager.py -> build/lib.linux-riscv64-cpython-314/libqtile/core copying libqtile/core/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/core copying libqtile/core/lifecycle.py -> build/lib.linux-riscv64-cpython-314/libqtile/core copying libqtile/core/state.py -> build/lib.linux-riscv64-cpython-314/libqtile/core copying libqtile/core/loop.py -> build/lib.linux-riscv64-cpython-314/libqtile/core creating build/lib.linux-riscv64-cpython-314/libqtile/extension copying libqtile/extension/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/extension copying libqtile/extension/dmenu.py -> build/lib.linux-riscv64-cpython-314/libqtile/extension copying libqtile/extension/base.py -> build/lib.linux-riscv64-cpython-314/libqtile/extension copying libqtile/extension/window_list.py -> build/lib.linux-riscv64-cpython-314/libqtile/extension copying libqtile/extension/command_set.py -> build/lib.linux-riscv64-cpython-314/libqtile/extension creating build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/floating.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/spiral.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/bsp.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/ratiotile.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/tile.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/base.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/tree.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/columns.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/screensplit.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/max.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/xmonad.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/verticaltile.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/stack.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/matrix.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/plasma.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/slice.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout copying libqtile/layout/zoomy.py -> build/lib.linux-riscv64-cpython-314/libqtile/layout creating build/lib.linux-riscv64-cpython-314/libqtile/resources copying libqtile/resources/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/resources copying libqtile/resources/default_config.py -> build/lib.linux-riscv64-cpython-314/libqtile/resources copying libqtile/resources/sleep.py -> build/lib.linux-riscv64-cpython-314/libqtile/resources creating build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/she.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/sensors.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/backlight.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/check_updates.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/bluetooth.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/tuned_manager.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/cpu.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/systray.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/mpris2widget.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/keyboardkbdd.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/textbox.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/config_error.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/spacer.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/pulse_volume.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/thermal_zone.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/clipboard.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/widgetbox.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/currentscreen.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/swaync.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/image.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/nvidia_sensors.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/windowtabs.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/khal_calendar.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/imapwidget.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/windowname.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/stock_ticker.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/generic_poll_text.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/crashme.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/memory.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/statusnotifier.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/open_weather.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/tasklist.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/wallpaper.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/pomodoro.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/net.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/hdd.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/netup.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/prompt.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/wlaniw.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/crypto_ticker.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/base.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/gmail_checker.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/do_not_disturb.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/redshift.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/wlan.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/screensplit.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/canto.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/clock.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/notify.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/maildir.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/import_error.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/quick_exit.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/sep.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/vertical_clock.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/wttr.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/caps_num_lock_indicator.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/keyboardlayout.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/load.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/countdown.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/window_count.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/volume.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/chord.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/df.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/launchbar.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/mpd2widget.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/currentlayout.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/graph.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/plasma.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/gen_poll_url.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/battery.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/groupbox.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget copying libqtile/widget/idlerpg.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget creating build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations copying libqtile/scripts/migrations/_base.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations copying libqtile/scripts/migrations/remove_cmd_prefix.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations copying libqtile/scripts/migrations/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations copying libqtile/scripts/migrations/migrate_thread_pool_text.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations copying libqtile/scripts/migrations/change_bluetooth_args.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations copying libqtile/scripts/migrations/match_list_regex.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations copying libqtile/scripts/migrations/rename_currentlayouticon.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations copying libqtile/scripts/migrations/change_wlan_args.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations copying libqtile/scripts/migrations/rename_unspecified.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations copying libqtile/scripts/migrations/change_stockticker_args.py -> build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations creating build/lib.linux-riscv64-cpython-314/libqtile/backend/base copying libqtile/backend/base/idle_inhibit.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/base copying libqtile/backend/base/idle_notify.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/base copying libqtile/backend/base/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/base copying libqtile/backend/base/drawer.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/base copying libqtile/backend/base/core.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/base copying libqtile/backend/base/window.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/base copying libqtile/backend/base/float_states.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/base creating build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland copying libqtile/backend/wayland/ffi_stub.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland copying libqtile/backend/wayland/idle_inhibit.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland copying libqtile/backend/wayland/idle_notify.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland copying libqtile/backend/wayland/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland copying libqtile/backend/wayland/drawer.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland copying libqtile/backend/wayland/inputs.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland copying libqtile/backend/wayland/core.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland copying libqtile/backend/wayland/window.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland creating build/lib.linux-riscv64-cpython-314/libqtile/backend/x11 copying libqtile/backend/x11/xcbq.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/x11 copying libqtile/backend/x11/idle_notify.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/x11 copying libqtile/backend/x11/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/x11 copying libqtile/backend/x11/drawer.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/x11 copying libqtile/backend/x11/core.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/x11 copying libqtile/backend/x11/window.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/x11 copying libqtile/backend/x11/xcursors_ffi.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/x11 copying libqtile/backend/x11/xkeysyms.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/x11 copying libqtile/backend/x11/xcursors.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/x11 creating build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/cffi copying libqtile/backend/wayland/cffi/build.py -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/cffi creating build/lib.linux-riscv64-cpython-314/libqtile/widget/helpers/status_notifier copying libqtile/widget/helpers/status_notifier/__init__.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget/helpers/status_notifier copying libqtile/widget/helpers/status_notifier/statusnotifier.py -> build/lib.linux-riscv64-cpython-314/libqtile/widget/helpers/status_notifier running egg_info writing qtile.egg-info/PKG-INFO writing dependency_links to qtile.egg-info/dependency_links.txt writing entry points to qtile.egg-info/entry_points.txt writing requirements to qtile.egg-info/requires.txt writing top-level names to qtile.egg-info/top_level.txt reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '.pylintrc' warning: no previously-included files found matching 'uv.lock' warning: no previously-included files found matching 'libqtile/_ffi*.py' warning: no previously-included files found matching 'libqtile/backend/x11/_ffi*.py' warning: no previously-included files found matching 'libqtile/backend/wayland/_libinput*.*' warning: no previously-included files found matching 'libqtile/backend/wayland/qw/build/*.o' no previously-included directories found matching 'bin' no previously-included directories found matching 'rpm' warning: no previously-included files matching '__pycache__' found under directory '*' warning: no previously-included files matching '*.py[co]' found under directory '*' adding license file 'LICENSE' writing manifest file 'qtile.egg-info/SOURCES.txt' copying libqtile/py.typed -> build/lib.linux-riscv64-cpython-314/libqtile copying libqtile/resources/logo.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources copying libqtile/backend/wayland/_ffi.cpython-314-riscv64-linux-gnu.so -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland creating build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/cairo-buffer.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/cairo-buffer.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/cursor.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/cursor.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/input-device.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/input-device.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/internal-view.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/internal-view.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/keyboard.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/keyboard.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/layer-view.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/layer-view.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/log.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/log.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/output.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/output.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/server.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/server.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/session-lock.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/session-lock.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/util.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/util.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/view.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/view.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/xdg-view.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/xdg-view.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/xwayland-view.c -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw copying libqtile/backend/wayland/qw/xwayland-view.h -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw creating build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/proto copying libqtile/backend/wayland/proto/wlr-foreign-toplevel-management-unstable-v1.xml -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/proto copying libqtile/backend/wayland/proto/wlr-layer-shell-unstable-v1.xml -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/proto copying libqtile/backend/wayland/proto/wlr-output-power-management-unstable-v1.xml -> build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/proto creating build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-caution-charging.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-caution.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-empty.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-full-charged.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-full-charging.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-full.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-good-charging.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-good.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-low-charging.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-low.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-missing.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons creating build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-bsp.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-columns.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-floating.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-matrix.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-max.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-monadtall.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-monadthreecol.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-monadwide.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-plasma.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-ratiotile.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-screensplit.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-slice.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-spiral.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-stack.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-tile.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-treetab.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-unknown.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-verticaltile.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-wmii.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-zoomy.png -> build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons copying libqtile/widget/helpers/status_notifier/fallback_icon.png -> build/lib.linux-riscv64-cpython-314/libqtile/widget/helpers/status_notifier running build_ext installing to build/bdist.linux-riscv64/wheel running install running install_lib creating build/bdist.linux-riscv64/wheel creating build/bdist.linux-riscv64/wheel/libqtile creating build/bdist.linux-riscv64/wheel/libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrate.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/main.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/x11_identify_output.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/repl.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/launch.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/start.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/shell.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/run_cmd.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts creating build/bdist.linux-riscv64/wheel/libqtile/scripts/migrations copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations/_base.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts/migrations copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations/remove_cmd_prefix.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts/migrations copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts/migrations copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations/migrate_thread_pool_text.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts/migrations copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations/change_bluetooth_args.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts/migrations copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations/match_list_regex.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts/migrations copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations/rename_currentlayouticon.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts/migrations copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations/change_wlan_args.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts/migrations copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations/rename_unspecified.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts/migrations copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/migrations/change_stockticker_args.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts/migrations copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/check.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/top.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/scripts/cmd_obj.py -> build/bdist.linux-riscv64/wheel/./libqtile/scripts copying build/lib.linux-riscv64-cpython-314/libqtile/utils.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/group.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/_build_config.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/log_utils.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/confreader.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/bar.py -> build/bdist.linux-riscv64/wheel/./libqtile creating build/bdist.linux-riscv64/wheel/libqtile/backend copying build/lib.linux-riscv64-cpython-314/libqtile/backend/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend creating build/bdist.linux-riscv64/wheel/libqtile/backend/base copying build/lib.linux-riscv64-cpython-314/libqtile/backend/base/idle_inhibit.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/base copying build/lib.linux-riscv64-cpython-314/libqtile/backend/base/idle_notify.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/base copying build/lib.linux-riscv64-cpython-314/libqtile/backend/base/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/base copying build/lib.linux-riscv64-cpython-314/libqtile/backend/base/drawer.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/base copying build/lib.linux-riscv64-cpython-314/libqtile/backend/base/core.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/base copying build/lib.linux-riscv64-cpython-314/libqtile/backend/base/window.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/base copying build/lib.linux-riscv64-cpython-314/libqtile/backend/base/float_states.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/base creating build/bdist.linux-riscv64/wheel/libqtile/backend/wayland creating build/bdist.linux-riscv64/wheel/libqtile/backend/wayland/cffi copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/cffi/build.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/cffi copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/ffi_stub.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/idle_inhibit.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/idle_notify.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/_ffi.cpython-314-riscv64-linux-gnu.so -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland creating build/bdist.linux-riscv64/wheel/libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/server.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/xwayland-view.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/keyboard.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/server.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/layer-view.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/layer-view.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/cursor.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/cairo-buffer.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/xdg-view.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/input-device.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/keyboard.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/view.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/internal-view.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/util.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/session-lock.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/output.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/xwayland-view.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/cairo-buffer.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/log.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/view.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/util.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/log.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/internal-view.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/input-device.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/output.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/session-lock.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/cursor.c -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/qw/xdg-view.h -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/qw copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/drawer.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/inputs.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/core.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/window.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland creating build/bdist.linux-riscv64/wheel/libqtile/backend/wayland/proto copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/proto/wlr-layer-shell-unstable-v1.xml -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/proto copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/proto/wlr-output-power-management-unstable-v1.xml -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/proto copying build/lib.linux-riscv64-cpython-314/libqtile/backend/wayland/proto/wlr-foreign-toplevel-management-unstable-v1.xml -> build/bdist.linux-riscv64/wheel/./libqtile/backend/wayland/proto creating build/bdist.linux-riscv64/wheel/libqtile/backend/x11 copying build/lib.linux-riscv64-cpython-314/libqtile/backend/x11/xcbq.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/x11 copying build/lib.linux-riscv64-cpython-314/libqtile/backend/x11/idle_notify.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/x11 copying build/lib.linux-riscv64-cpython-314/libqtile/backend/x11/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/x11 copying build/lib.linux-riscv64-cpython-314/libqtile/backend/x11/drawer.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/x11 copying build/lib.linux-riscv64-cpython-314/libqtile/backend/x11/core.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/x11 copying build/lib.linux-riscv64-cpython-314/libqtile/backend/x11/window.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/x11 copying build/lib.linux-riscv64-cpython-314/libqtile/backend/x11/xcursors_ffi.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/x11 copying build/lib.linux-riscv64-cpython-314/libqtile/backend/x11/xkeysyms.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/x11 copying build/lib.linux-riscv64-cpython-314/libqtile/backend/x11/xcursors.py -> build/bdist.linux-riscv64/wheel/./libqtile/backend/x11 creating build/bdist.linux-riscv64/wheel/libqtile/interactive copying build/lib.linux-riscv64-cpython-314/libqtile/interactive/repl.py -> build/bdist.linux-riscv64/wheel/./libqtile/interactive copying build/lib.linux-riscv64-cpython-314/libqtile/interactive/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/interactive copying build/lib.linux-riscv64-cpython-314/libqtile/interactive/iqshell_install.py -> build/bdist.linux-riscv64/wheel/./libqtile/interactive copying build/lib.linux-riscv64-cpython-314/libqtile/interactive/iqshell_kernel.py -> build/bdist.linux-riscv64/wheel/./libqtile/interactive copying build/lib.linux-riscv64-cpython-314/libqtile/dgroups.py -> build/bdist.linux-riscv64/wheel/./libqtile creating build/bdist.linux-riscv64/wheel/libqtile/command copying build/lib.linux-riscv64-cpython-314/libqtile/command/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/command copying build/lib.linux-riscv64-cpython-314/libqtile/command/interface.py -> build/bdist.linux-riscv64/wheel/./libqtile/command copying build/lib.linux-riscv64-cpython-314/libqtile/command/client.py -> build/bdist.linux-riscv64/wheel/./libqtile/command copying build/lib.linux-riscv64-cpython-314/libqtile/command/base.py -> build/bdist.linux-riscv64/wheel/./libqtile/command copying build/lib.linux-riscv64-cpython-314/libqtile/command/graph.py -> build/bdist.linux-riscv64/wheel/./libqtile/command copying build/lib.linux-riscv64-cpython-314/libqtile/lazy.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/images.py -> build/bdist.linux-riscv64/wheel/./libqtile creating build/bdist.linux-riscv64/wheel/libqtile/core copying build/lib.linux-riscv64-cpython-314/libqtile/core/manager.py -> build/bdist.linux-riscv64/wheel/./libqtile/core copying build/lib.linux-riscv64-cpython-314/libqtile/core/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/core copying build/lib.linux-riscv64-cpython-314/libqtile/core/lifecycle.py -> build/bdist.linux-riscv64/wheel/./libqtile/core copying build/lib.linux-riscv64-cpython-314/libqtile/core/state.py -> build/bdist.linux-riscv64/wheel/./libqtile/core copying build/lib.linux-riscv64-cpython-314/libqtile/core/loop.py -> build/bdist.linux-riscv64/wheel/./libqtile/core creating build/bdist.linux-riscv64/wheel/libqtile/extension copying build/lib.linux-riscv64-cpython-314/libqtile/extension/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/extension copying build/lib.linux-riscv64-cpython-314/libqtile/extension/dmenu.py -> build/bdist.linux-riscv64/wheel/./libqtile/extension copying build/lib.linux-riscv64-cpython-314/libqtile/extension/base.py -> build/bdist.linux-riscv64/wheel/./libqtile/extension copying build/lib.linux-riscv64-cpython-314/libqtile/extension/window_list.py -> build/bdist.linux-riscv64/wheel/./libqtile/extension copying build/lib.linux-riscv64-cpython-314/libqtile/extension/command_set.py -> build/bdist.linux-riscv64/wheel/./libqtile/extension copying build/lib.linux-riscv64-cpython-314/libqtile/scratchpad.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/pangocffi.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/py.typed -> build/bdist.linux-riscv64/wheel/./libqtile creating build/bdist.linux-riscv64/wheel/libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/floating.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/spiral.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/bsp.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/ratiotile.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/tile.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/base.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/tree.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/columns.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/screensplit.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/max.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/xmonad.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/verticaltile.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/stack.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/matrix.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/plasma.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/slice.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/layout/zoomy.py -> build/bdist.linux-riscv64/wheel/./libqtile/layout copying build/lib.linux-riscv64-cpython-314/libqtile/config.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/pango_ffi.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/notify.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/popup.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/ipc.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/configurable.py -> build/bdist.linux-riscv64/wheel/./libqtile creating build/bdist.linux-riscv64/wheel/libqtile/resources creating build/bdist.linux-riscv64/wheel/libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons/battery-low-charging.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons/battery-caution-charging.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons/battery-low.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons/battery-caution.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons/battery-full-charging.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons/battery-good-charging.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons/battery-full-charged.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons/battery-good.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons/battery-empty.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons/battery-missing.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/battery-icons/battery-full.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/battery-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/resources creating build/bdist.linux-riscv64/wheel/libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-tile.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-floating.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-verticaltile.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-monadtall.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-treetab.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-columns.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-slice.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-max.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-bsp.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-zoomy.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-stack.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-wmii.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-screensplit.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-ratiotile.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-plasma.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-monadwide.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-monadthreecol.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-matrix.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-unknown.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/layout-icons/layout-spiral.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources/layout-icons copying build/lib.linux-riscv64-cpython-314/libqtile/resources/default_config.py -> build/bdist.linux-riscv64/wheel/./libqtile/resources copying build/lib.linux-riscv64-cpython-314/libqtile/resources/sleep.py -> build/bdist.linux-riscv64/wheel/./libqtile/resources copying build/lib.linux-riscv64-cpython-314/libqtile/resources/logo.png -> build/bdist.linux-riscv64/wheel/./libqtile/resources creating build/bdist.linux-riscv64/wheel/libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/she.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/sensors.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/backlight.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/check_updates.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/bluetooth.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/tuned_manager.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/cpu.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/systray.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/mpris2widget.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/keyboardkbdd.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/textbox.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/config_error.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/spacer.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/pulse_volume.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/thermal_zone.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/clipboard.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/widgetbox.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/currentscreen.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/swaync.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/image.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/nvidia_sensors.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/windowtabs.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/khal_calendar.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/imapwidget.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/windowname.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/stock_ticker.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/generic_poll_text.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/crashme.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/memory.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/statusnotifier.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/open_weather.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget creating build/bdist.linux-riscv64/wheel/libqtile/widget/helpers creating build/bdist.linux-riscv64/wheel/libqtile/widget/helpers/status_notifier copying build/lib.linux-riscv64-cpython-314/libqtile/widget/helpers/status_notifier/__init__.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget/helpers/status_notifier copying build/lib.linux-riscv64-cpython-314/libqtile/widget/helpers/status_notifier/fallback_icon.png -> build/bdist.linux-riscv64/wheel/./libqtile/widget/helpers/status_notifier copying build/lib.linux-riscv64-cpython-314/libqtile/widget/helpers/status_notifier/statusnotifier.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget/helpers/status_notifier copying build/lib.linux-riscv64-cpython-314/libqtile/widget/tasklist.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/wallpaper.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/pomodoro.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/net.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/hdd.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/netup.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/prompt.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/wlaniw.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/crypto_ticker.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/base.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/gmail_checker.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/do_not_disturb.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/redshift.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/wlan.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/screensplit.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/canto.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/clock.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/notify.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/maildir.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/import_error.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/quick_exit.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/sep.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/vertical_clock.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/wttr.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/caps_num_lock_indicator.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/keyboardlayout.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/load.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/countdown.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/window_count.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/volume.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/chord.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/df.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/launchbar.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/mpd2widget.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/currentlayout.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/graph.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/plasma.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/gen_poll_url.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/battery.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/groupbox.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/widget/idlerpg.py -> build/bdist.linux-riscv64/wheel/./libqtile/widget copying build/lib.linux-riscv64-cpython-314/libqtile/sh.py -> build/bdist.linux-riscv64/wheel/./libqtile copying build/lib.linux-riscv64-cpython-314/libqtile/hook.py -> build/bdist.linux-riscv64/wheel/./libqtile running install_egg_info Copying qtile.egg-info to build/bdist.linux-riscv64/wheel/./qtile-0.37.0-py3.14.egg-info running install_scripts adding license file "LICENSE" (matched pattern "LICEN[CS]E*") creating build/bdist.linux-riscv64/wheel/qtile-0.37.0.dist-info/WHEEL creating '/build/qtile/src/qtile/dist/.tmp-kc3gaqze/qtile-0.37.0-cp314-cp314-linux_riscv64.whl' and adding 'build/bdist.linux-riscv64/wheel' to it adding 'libqtile/__init__.py' adding 'libqtile/_build_config.py' adding 'libqtile/bar.py' adding 'libqtile/config.py' adding 'libqtile/configurable.py' adding 'libqtile/confreader.py' adding 'libqtile/dgroups.py' adding 'libqtile/group.py' adding 'libqtile/hook.py' adding 'libqtile/images.py' adding 'libqtile/ipc.py' adding 'libqtile/lazy.py' adding 'libqtile/log_utils.py' adding 'libqtile/notify.py' adding 'libqtile/pango_ffi.py' adding 'libqtile/pangocffi.py' adding 'libqtile/popup.py' adding 'libqtile/py.typed' adding 'libqtile/scratchpad.py' adding 'libqtile/sh.py' adding 'libqtile/utils.py' adding 'libqtile/backend/__init__.py' adding 'libqtile/backend/base/__init__.py' adding 'libqtile/backend/base/core.py' adding 'libqtile/backend/base/drawer.py' adding 'libqtile/backend/base/float_states.py' adding 'libqtile/backend/base/idle_inhibit.py' adding 'libqtile/backend/base/idle_notify.py' adding 'libqtile/backend/base/window.py' adding 'libqtile/backend/wayland/__init__.py' adding 'libqtile/backend/wayland/_ffi.cpython-314-riscv64-linux-gnu.so' adding 'libqtile/backend/wayland/core.py' adding 'libqtile/backend/wayland/drawer.py' adding 'libqtile/backend/wayland/ffi_stub.py' adding 'libqtile/backend/wayland/idle_inhibit.py' adding 'libqtile/backend/wayland/idle_notify.py' adding 'libqtile/backend/wayland/inputs.py' adding 'libqtile/backend/wayland/window.py' adding 'libqtile/backend/wayland/cffi/build.py' adding 'libqtile/backend/wayland/proto/wlr-foreign-toplevel-management-unstable-v1.xml' adding 'libqtile/backend/wayland/proto/wlr-layer-shell-unstable-v1.xml' adding 'libqtile/backend/wayland/proto/wlr-output-power-management-unstable-v1.xml' adding 'libqtile/backend/wayland/qw/cairo-buffer.c' adding 'libqtile/backend/wayland/qw/cairo-buffer.h' adding 'libqtile/backend/wayland/qw/cursor.c' adding 'libqtile/backend/wayland/qw/cursor.h' adding 'libqtile/backend/wayland/qw/input-device.c' adding 'libqtile/backend/wayland/qw/input-device.h' adding 'libqtile/backend/wayland/qw/internal-view.c' adding 'libqtile/backend/wayland/qw/internal-view.h' adding 'libqtile/backend/wayland/qw/keyboard.c' adding 'libqtile/backend/wayland/qw/keyboard.h' adding 'libqtile/backend/wayland/qw/layer-view.c' adding 'libqtile/backend/wayland/qw/layer-view.h' adding 'libqtile/backend/wayland/qw/log.c' adding 'libqtile/backend/wayland/qw/log.h' adding 'libqtile/backend/wayland/qw/output.c' adding 'libqtile/backend/wayland/qw/output.h' adding 'libqtile/backend/wayland/qw/server.c' adding 'libqtile/backend/wayland/qw/server.h' adding 'libqtile/backend/wayland/qw/session-lock.c' adding 'libqtile/backend/wayland/qw/session-lock.h' adding 'libqtile/backend/wayland/qw/util.c' adding 'libqtile/backend/wayland/qw/util.h' adding 'libqtile/backend/wayland/qw/view.c' adding 'libqtile/backend/wayland/qw/view.h' adding 'libqtile/backend/wayland/qw/xdg-view.c' adding 'libqtile/backend/wayland/qw/xdg-view.h' adding 'libqtile/backend/wayland/qw/xwayland-view.c' adding 'libqtile/backend/wayland/qw/xwayland-view.h' adding 'libqtile/backend/x11/__init__.py' adding 'libqtile/backend/x11/core.py' adding 'libqtile/backend/x11/drawer.py' adding 'libqtile/backend/x11/idle_notify.py' adding 'libqtile/backend/x11/window.py' adding 'libqtile/backend/x11/xcbq.py' adding 'libqtile/backend/x11/xcursors.py' adding 'libqtile/backend/x11/xcursors_ffi.py' adding 'libqtile/backend/x11/xkeysyms.py' adding 'libqtile/command/__init__.py' adding 'libqtile/command/base.py' adding 'libqtile/command/client.py' adding 'libqtile/command/graph.py' adding 'libqtile/command/interface.py' adding 'libqtile/core/__init__.py' adding 'libqtile/core/lifecycle.py' adding 'libqtile/core/loop.py' adding 'libqtile/core/manager.py' adding 'libqtile/core/state.py' adding 'libqtile/extension/__init__.py' adding 'libqtile/extension/base.py' adding 'libqtile/extension/command_set.py' adding 'libqtile/extension/dmenu.py' adding 'libqtile/extension/window_list.py' adding 'libqtile/interactive/__init__.py' adding 'libqtile/interactive/iqshell_install.py' adding 'libqtile/interactive/iqshell_kernel.py' adding 'libqtile/interactive/repl.py' adding 'libqtile/layout/__init__.py' adding 'libqtile/layout/base.py' adding 'libqtile/layout/bsp.py' adding 'libqtile/layout/columns.py' adding 'libqtile/layout/floating.py' adding 'libqtile/layout/matrix.py' adding 'libqtile/layout/max.py' adding 'libqtile/layout/plasma.py' adding 'libqtile/layout/ratiotile.py' adding 'libqtile/layout/screensplit.py' adding 'libqtile/layout/slice.py' adding 'libqtile/layout/spiral.py' adding 'libqtile/layout/stack.py' adding 'libqtile/layout/tile.py' adding 'libqtile/layout/tree.py' adding 'libqtile/layout/verticaltile.py' adding 'libqtile/layout/xmonad.py' adding 'libqtile/layout/zoomy.py' adding 'libqtile/resources/__init__.py' adding 'libqtile/resources/default_config.py' adding 'libqtile/resources/logo.png' adding 'libqtile/resources/sleep.py' adding 'libqtile/resources/battery-icons/battery-caution-charging.png' adding 'libqtile/resources/battery-icons/battery-caution.png' adding 'libqtile/resources/battery-icons/battery-empty.png' adding 'libqtile/resources/battery-icons/battery-full-charged.png' adding 'libqtile/resources/battery-icons/battery-full-charging.png' adding 'libqtile/resources/battery-icons/battery-full.png' adding 'libqtile/resources/battery-icons/battery-good-charging.png' adding 'libqtile/resources/battery-icons/battery-good.png' adding 'libqtile/resources/battery-icons/battery-low-charging.png' adding 'libqtile/resources/battery-icons/battery-low.png' adding 'libqtile/resources/battery-icons/battery-missing.png' adding 'libqtile/resources/layout-icons/layout-bsp.png' adding 'libqtile/resources/layout-icons/layout-columns.png' adding 'libqtile/resources/layout-icons/layout-floating.png' adding 'libqtile/resources/layout-icons/layout-matrix.png' adding 'libqtile/resources/layout-icons/layout-max.png' adding 'libqtile/resources/layout-icons/layout-monadtall.png' adding 'libqtile/resources/layout-icons/layout-monadthreecol.png' adding 'libqtile/resources/layout-icons/layout-monadwide.png' adding 'libqtile/resources/layout-icons/layout-plasma.png' adding 'libqtile/resources/layout-icons/layout-ratiotile.png' adding 'libqtile/resources/layout-icons/layout-screensplit.png' adding 'libqtile/resources/layout-icons/layout-slice.png' adding 'libqtile/resources/layout-icons/layout-spiral.png' adding 'libqtile/resources/layout-icons/layout-stack.png' adding 'libqtile/resources/layout-icons/layout-tile.png' adding 'libqtile/resources/layout-icons/layout-treetab.png' adding 'libqtile/resources/layout-icons/layout-unknown.png' adding 'libqtile/resources/layout-icons/layout-verticaltile.png' adding 'libqtile/resources/layout-icons/layout-wmii.png' adding 'libqtile/resources/layout-icons/layout-zoomy.png' adding 'libqtile/scripts/__init__.py' adding 'libqtile/scripts/check.py' adding 'libqtile/scripts/cmd_obj.py' adding 'libqtile/scripts/launch.py' adding 'libqtile/scripts/main.py' adding 'libqtile/scripts/migrate.py' adding 'libqtile/scripts/repl.py' adding 'libqtile/scripts/run_cmd.py' adding 'libqtile/scripts/shell.py' adding 'libqtile/scripts/start.py' adding 'libqtile/scripts/top.py' adding 'libqtile/scripts/x11_identify_output.py' adding 'libqtile/scripts/migrations/__init__.py' adding 'libqtile/scripts/migrations/_base.py' adding 'libqtile/scripts/migrations/change_bluetooth_args.py' adding 'libqtile/scripts/migrations/change_stockticker_args.py' adding 'libqtile/scripts/migrations/change_wlan_args.py' adding 'libqtile/scripts/migrations/match_list_regex.py' adding 'libqtile/scripts/migrations/migrate_thread_pool_text.py' adding 'libqtile/scripts/migrations/remove_cmd_prefix.py' adding 'libqtile/scripts/migrations/rename_currentlayouticon.py' adding 'libqtile/scripts/migrations/rename_unspecified.py' adding 'libqtile/widget/__init__.py' adding 'libqtile/widget/backlight.py' adding 'libqtile/widget/base.py' adding 'libqtile/widget/battery.py' adding 'libqtile/widget/bluetooth.py' adding 'libqtile/widget/canto.py' adding 'libqtile/widget/caps_num_lock_indicator.py' adding 'libqtile/widget/check_updates.py' adding 'libqtile/widget/chord.py' adding 'libqtile/widget/clipboard.py' adding 'libqtile/widget/clock.py' adding 'libqtile/widget/config_error.py' adding 'libqtile/widget/countdown.py' adding 'libqtile/widget/cpu.py' adding 'libqtile/widget/crashme.py' adding 'libqtile/widget/crypto_ticker.py' adding 'libqtile/widget/currentlayout.py' adding 'libqtile/widget/currentscreen.py' adding 'libqtile/widget/df.py' adding 'libqtile/widget/do_not_disturb.py' adding 'libqtile/widget/gen_poll_url.py' adding 'libqtile/widget/generic_poll_text.py' adding 'libqtile/widget/gmail_checker.py' adding 'libqtile/widget/graph.py' adding 'libqtile/widget/groupbox.py' adding 'libqtile/widget/hdd.py' adding 'libqtile/widget/idlerpg.py' adding 'libqtile/widget/image.py' adding 'libqtile/widget/imapwidget.py' adding 'libqtile/widget/import_error.py' adding 'libqtile/widget/keyboardkbdd.py' adding 'libqtile/widget/keyboardlayout.py' adding 'libqtile/widget/khal_calendar.py' adding 'libqtile/widget/launchbar.py' adding 'libqtile/widget/load.py' adding 'libqtile/widget/maildir.py' adding 'libqtile/widget/memory.py' adding 'libqtile/widget/mpd2widget.py' adding 'libqtile/widget/mpris2widget.py' adding 'libqtile/widget/net.py' adding 'libqtile/widget/netup.py' adding 'libqtile/widget/notify.py' adding 'libqtile/widget/nvidia_sensors.py' adding 'libqtile/widget/open_weather.py' adding 'libqtile/widget/plasma.py' adding 'libqtile/widget/pomodoro.py' adding 'libqtile/widget/prompt.py' adding 'libqtile/widget/pulse_volume.py' adding 'libqtile/widget/quick_exit.py' adding 'libqtile/widget/redshift.py' adding 'libqtile/widget/screensplit.py' adding 'libqtile/widget/sensors.py' adding 'libqtile/widget/sep.py' adding 'libqtile/widget/she.py' adding 'libqtile/widget/spacer.py' adding 'libqtile/widget/statusnotifier.py' adding 'libqtile/widget/stock_ticker.py' adding 'libqtile/widget/swaync.py' adding 'libqtile/widget/systray.py' adding 'libqtile/widget/tasklist.py' adding 'libqtile/widget/textbox.py' adding 'libqtile/widget/thermal_zone.py' adding 'libqtile/widget/tuned_manager.py' adding 'libqtile/widget/vertical_clock.py' adding 'libqtile/widget/volume.py' adding 'libqtile/widget/wallpaper.py' adding 'libqtile/widget/widgetbox.py' adding 'libqtile/widget/window_count.py' adding 'libqtile/widget/windowname.py' adding 'libqtile/widget/windowtabs.py' adding 'libqtile/widget/wlan.py' adding 'libqtile/widget/wlaniw.py' adding 'libqtile/widget/wttr.py' adding 'libqtile/widget/helpers/status_notifier/__init__.py' adding 'libqtile/widget/helpers/status_notifier/fallback_icon.png' adding 'libqtile/widget/helpers/status_notifier/statusnotifier.py' adding 'qtile-0.37.0.dist-info/licenses/LICENSE' adding 'qtile-0.37.0.dist-info/METADATA' adding 'qtile-0.37.0.dist-info/WHEEL' adding 'qtile-0.37.0.dist-info/entry_points.txt' adding 'qtile-0.37.0.dist-info/top_level.txt' adding 'qtile-0.37.0.dist-info/RECORD' removing build/bdist.linux-riscv64/wheel Successfully built qtile-0.37.0-cp314-cp314-linux_riscv64.whl ==> Starting check()... [2026-09-09 21:26:57,780] WARNING in core: flasgger is not installed; serving the static landing page at / and skipping the Swagger UI and /spec.json. ============================= test session starts ============================== platform linux -- Python 3.14.7, pytest-9.1.1, pluggy-1.6.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /build/qtile/src/qtile configfile: pyproject.toml testpaths: test plugins: anyio-4.15.1, httpbin-2.1.0, asyncio-1.4.0 asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function collecting ... collected 2390 items test/backend/test_backend.py::test_get_core_bad PASSED [ 0%] test/backend/test_backend.py::test_detect_backend[env0-wayland] PASSED [ 0%] test/backend/test_backend.py::test_detect_backend[env1-x11] PASSED [ 0%] test/backend/test_backend.py::test_detect_backend[env2-wayland] PASSED [ 0%] test/backend/test_backend.py::test_detect_backend[env3-x11] PASSED [ 0%] test/backend/test_backend.py::test_detect_backend[env4-x11] PASSED [ 0%] test/backend/test_backend.py::test_detect_backend[env5-wayland] PASSED [ 0%] test/backend/test_backend.py::test_detect_backend[env6-wayland] PASSED [ 0%] test/backend/test_idle_inhibit.py::test_inhibitor_manager PASSED [ 0%] test/backend/test_idle_inhibit.py::test_inhibitor_open[1-x11-InhibitorConfig] PASSED [ 0%] test/backend/test_idle_inhibit.py::test_inhibitor_open[1-wayland-InhibitorConfig] PASSED [ 0%] test/backend/test_idle_inhibit.py::test_inhibitor_visible[1-x11-InhibitorConfig] ERROR [ 0%] test/backend/test_idle_inhibit.py::test_inhibitor_visible[1-wayland-InhibitorConfig] ERROR [ 0%] test/backend/test_idle_inhibit.py::test_inhibitor_focus[1-x11-InhibitorConfig] ERROR [ 0%] test/backend/test_idle_inhibit.py::test_inhibitor_focus[1-wayland-InhibitorConfig] PASSED [ 0%] test/backend/test_idle_inhibit.py::test_inhibitor_fullscreen[1-x11-InhibitorConfig] ERROR [ 0%] test/backend/test_idle_inhibit.py::test_inhibitor_fullscreen[1-wayland-InhibitorConfig] PASSED [ 0%] test/backend/test_idle_inhibit.py::test_inhibitor_global[1-x11-InhibitorConfig] ERROR [ 0%] test/backend/test_idle_inhibit.py::test_inhibitor_global[1-wayland-InhibitorConfig] PASSED [ 0%] test/backend/test_idle_notify.py::test_idle_timer[1-x11-IdleConfig] PASSED [ 0%] test/backend/test_idle_notify.py::test_idle_timer[1-wayland-IdleConfig] PASSED [ 0%] test/backend/test_idle_notify.py::test_idle_timer_inhibited[1-x11-IdleConfig] PASSED [ 0%] test/backend/test_idle_notify.py::test_idle_timer_inhibited[1-wayland-IdleConfig] PASSED [ 0%] test/backend/wayland/test_bar_pointer.py::test_bar_widget_pointer_events[1-HoverConfig] PASSED [ 1%] test/backend/wayland/test_cursor_shape.py::test_cursor_shape_protocol[1-crosshair-cursor-shape] PASSED [ 1%] test/backend/wayland/test_cursor_shape.py::test_cursor_shape_protocol[1-text-cursor-shape] PASSED [ 1%] test/backend/wayland/test_cursor_shape.py::test_cursor_shape_protocol[1-wait-cursor-shape] PASSED [ 1%] test/backend/wayland/test_cursor_shape.py::test_cursor_shape_protocol[1-help-cursor-shape] PASSED [ 1%] test/backend/wayland/test_cursor_shape.py::test_cursor_shape_protocol[1-grab-cursor-shape] PASSED [ 1%] test/backend/wayland/test_foreign_toplevel_management.py::test_ftl_state[1-ftl-manager] PASSED [ 1%] test/backend/wayland/test_foreign_toplevel_management.py::test_focus_state[1-ftl-manager] PASSED [ 1%] test/backend/wayland/test_foreign_toplevel_management.py::test_client_set_state[1-ftl-manager] PASSED [ 1%] test/backend/wayland/test_foreign_toplevel_management.py::test_client_focus[1-ftl-manager] PASSED [ 1%] test/backend/wayland/test_foreign_toplevel_management.py::test_output_enter_leave[2-ftl-manager] PASSED [ 1%] test/backend/wayland/test_idle.py::test_idle_notify[1-idle-client] PASSED [ 1%] test/backend/wayland/test_idle.py::test_idle_inhibit_client[1-idle-client] PASSED [ 1%] test/backend/wayland/test_idle.py::test_idle_inhibit_qtile[1-idle-client] PASSED [ 1%] test/backend/wayland/test_idle.py::test_idle_inhibit_hooks[1-IdleConfig-idle-client] PASSED [ 1%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_window[1-anchors0-diffs0-layer-shell] PASSED [ 1%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_window[1-anchors1-diffs1-layer-shell] PASSED [ 1%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_window[1-anchors2-diffs2-layer-shell] PASSED [ 1%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_window[1-anchors3-diffs3-layer-shell] PASSED [ 1%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_window[1-anchors4-diffs4-layer-shell] PASSED [ 1%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_window[1-anchors5-diffs5-layer-shell] PASSED [ 1%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_window[1-anchors6-diffs6-layer-shell] PASSED [ 1%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_window[1-anchors7-diffs7-layer-shell] PASSED [ 1%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_window[1-anchors8-diffs8-layer-shell] PASSED [ 1%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_window[1-anchors9-diffs9-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_window[1-anchors10-diffs10-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_bar[1-LSConfigTop-top-TLR-offsets0-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_bar[1-LSConfigBottom-bottom-BLR-offsets1-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_bar[1-LSConfigLeft-left-LTB-offsets2-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_shell_exclusive_space_bar[1-LSConfigRight-right-RTB-offsets3-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_shell_layer[1-top-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_shell_layer[1-overlay-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_shell_layer[1-background-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_shell_layer[1-bottom-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_shell_keyboard_interactivity[1-none-False-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_shell_keyboard_interactivity[1-exclusive-True-layer-shell] PASSED [ 2%] test/backend/wayland/test_layer_shell.py::test_layer_surface_commit_after_output_destroy[2-layer-shell] PASSED [ 2%] test/backend/wayland/test_output_power.py::test_opm[1-output-power-management] PASSED [ 2%] test/backend/wayland/test_output_power.py::test_opm_window_persistence[1-output-power-management] PASSED [ 2%] test/backend/wayland/test_output_power.py::test_opm_dual_monitor[2-output-power-management] PASSED [ 2%] test/backend/wayland/test_session_lock.py::test_session_lock_server[1-True-session-lock] PASSED [ 2%] test/backend/wayland/test_session_lock.py::test_session_lock_client[1-session-lock] PASSED [ 2%] test/backend/wayland/test_session_lock.py::test_ipc_disabled[1-session-lock] PASSED [ 2%] test/backend/wayland/test_session_lock.py::test_crashed[1-True-session-lock] PASSED [ 2%] test/backend/wayland/test_session_lock.py::test_crashed_ipc_disabled[1-session-lock] PASSED [ 2%] test/backend/wayland/test_session_lock.py::test_multiple_lock_requests[1-True-session-lock] PASSED [ 2%] test/backend/wayland/test_session_lock.py::test_lock_surface_single[1-True-session-lock] PASSED [ 2%] test/backend/wayland/test_session_lock.py::test_lock_surface_dualmonito[True-2-session-lock] PASSED [ 2%] test/backend/wayland/test_window.py::test_info[1-BareConfig] SKIPPED [ 3%] test/backend/wayland/test_window.py::test_layer_floats_kept_above[1-LayersConfig-False] PASSED [ 3%] test/backend/wayland/test_window.py::test_layer_floats_kept_above[1-FloatsKeptAboveConfig-True] PASSED [ 3%] test/backend/wayland/test_window.py::test_layer_bring_to_front[1-LayersConfig] PASSED [ 3%] test/backend/wayland/test_window.py::test_window_opacity[1-BareConfig] PASSED [ 3%] test/backend/wayland/test_window.py::test_window_opacity_commands[1-BareConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_kill_via_message[1-ManagerConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_change_state_via_message[1-ManagerConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_urgent_hook_fire[2] PASSED [ 3%] test/backend/x11/test_window.py::test_default_float_hints[1-ManagerConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_user_position[1-ManagerConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_only_one_focus[1-ManagerConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_only_wm_protocols_focus[1-ManagerConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_only_input_hint_focus[1-ManagerConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_no_focus[1-ManagerConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_hints_setting_unsetting[1-ManagerConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_strut_handling[ManagerConfig-2] PASSED [ 3%] test/backend/x11/test_window.py::test_cursor_warp[CursorWarpConfig-2] PASSED [ 3%] test/backend/x11/test_window.py::test_click_focus_screen[2] PASSED [ 3%] test/backend/x11/test_window.py::test_min_size_hint[1-BareConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_min_size_hint_no_flag[1-BareConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_max_size_hint[1-BareConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_max_size_hint_no_flag[1-BareConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_both_size_hints[1-BareConfig] PASSED [ 3%] test/backend/x11/test_window.py::test_inspect_window[1-ManagerConfig] PASSED [ 4%] test/backend/x11/test_window.py::test_multiple_borders[1-MultipleBordersConfig] PASSED [ 4%] test/backend/x11/test_window.py::test_net_frame_extents[1-NetFrameExtentsConfig] PASSED [ 4%] test/backend/x11/test_window.py::test_net_wm_state_focused[1] PASSED [ 4%] test/backend/x11/test_window.py::test_floats_kept_above_cleared_on_toggle[1-ManagerConfig] PASSED [ 4%] test/backend/x11/test_window.py::test_multiple_wm_types[1] PASSED [ 4%] test/backend/x11/test_x11_identify_output.py::test_identify_output[1] PASSED [ 4%] test/backend/x11/test_xcbq.py::test_new_window[1] PASSED [ 4%] test/backend/x11/test_xcore.py::test_no_two_qtiles[1] PASSED [ 4%] test/backend/x11/test_xcore.py::test_color_pixel[1] PASSED [ 4%] test/backend/x11/test_xcore.py::test_net_client_list[1-ManagerConfig] PASSED [ 4%] test/backend/x11/test_xcore.py::test_clear_focus_empty_group[1-ManagerConfig] PASSED [ 4%] test/core/test_exitcode.py::test_exitcode_default[1-x11] PASSED [ 4%] test/core/test_exitcode.py::test_exitcode_default[1-wayland] PASSED [ 4%] test/core/test_exitcode.py::test_exitcode_explicit[1-x11] PASSED [ 4%] test/core/test_exitcode.py::test_exitcode_explicit[1-wayland] PASSED [ 4%] test/extension/test_window_list.py::test_window_list[1-x11] PASSED [ 4%] test/extension/test_window_list.py::test_window_list[1-wayland] PASSED [ 4%] test/layouts/test_base.py::test_base_client_position_bottom[1-x11-BaseLayoutConfigBottom] PASSED [ 4%] test/layouts/test_base.py::test_base_client_position_bottom[1-wayland-BaseLayoutConfigBottom] PASSED [ 4%] test/layouts/test_base.py::test_base_client_position_top[1-x11-BaseLayoutConfigTop] PASSED [ 4%] test/layouts/test_base.py::test_base_client_position_top[1-wayland-BaseLayoutConfigTop] PASSED [ 4%] test/layouts/test_bsp.py::test_bsp_window_focus_cycle[1-x11-BspConfig] PASSED [ 4%] test/layouts/test_bsp.py::test_bsp_window_focus_cycle[1-wayland-BspConfig] PASSED [ 4%] test/layouts/test_bsp.py::test_bsp_margin_on_single[1-x11-BspConfig] PASSED [ 5%] test/layouts/test_bsp.py::test_bsp_margin_on_single[1-wayland-BspConfig] PASSED [ 5%] test/layouts/test_bsp.py::test_bsp_wrap_clients[1-x11-BspConfig] PASSED [ 5%] test/layouts/test_bsp.py::test_bsp_wrap_clients[1-wayland-BspConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_window_focus_cycle[1-x11-ColumnsConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_window_focus_cycle[1-wayland-ColumnsConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_swap_column_left[1-x11-ColumnsConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_swap_column_left[1-wayland-ColumnsConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_swap_column_right[1-x11-ColumnsConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_swap_column_right[1-wayland-ColumnsConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_margins_single[1-x11-ColumnsConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_margins_single[1-wayland-ColumnsConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_single_border_disabled[1-x11-ColumnsSingleBorderDisabledConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_single_border_disabled[1-wayland-ColumnsSingleBorderDisabledConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_single_border_enabled[1-x11-ColumnsSingleBorderEnabledConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_single_border_enabled[1-wayland-ColumnsSingleBorderEnabledConfig] PASSED [ 5%] test/layouts/test_columns.py::test_columns_left_align[1-x11-ColumnsLeftAlign] PASSED [ 5%] test/layouts/test_columns.py::test_columns_left_align[1-wayland-ColumnsLeftAlign] PASSED [ 5%] test/layouts/test_columns.py::test_columns_initial_ratio_right[1-x11-ColumnsInitialRatio] PASSED [ 5%] test/layouts/test_columns.py::test_columns_initial_ratio_right[1-wayland-ColumnsInitialRatio] PASSED [ 5%] test/layouts/test_columns.py::test_columns_initial_ratio_left[1-x11-ColumnsInitialRatio] PASSED [ 5%] test/layouts/test_columns.py::test_columns_initial_ratio_left[1-wayland-ColumnsInitialRatio] PASSED [ 5%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Bsp] PASSED [ 5%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Columns] PASSED [ 5%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Floating] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Matrix] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Max] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-MonadTall] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-MonadThreeCol] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-MonadWide] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Plasma] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-RatioTile] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-ScreenSplit] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Spiral] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Stack] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Tile] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-TreeTab] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-VerticalTile] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Zoomy] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Bsp] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Columns] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Floating] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Matrix] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Max] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-MonadTall] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-MonadThreeCol] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-MonadWide] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Plasma] PASSED [ 6%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-RatioTile] PASSED [ 7%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-ScreenSplit] PASSED [ 7%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Spiral] PASSED [ 7%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Stack] PASSED [ 7%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Tile] PASSED [ 7%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-TreeTab] PASSED [ 7%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-VerticalTile] PASSED [ 7%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Zoomy] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-Bsp] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-Columns] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-Floating] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-Matrix] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-Max] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-MonadTall] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-MonadThreeCol] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-MonadWide] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-Plasma] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-RatioTile] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-ScreenSplit] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-Spiral] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-Stack] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-Tile] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-TreeTab] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-VerticalTile] PASSED [ 7%] test/layouts/test_common.py::test_window_types[1-x11-Zoomy] PASSED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-Bsp] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-Columns] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-Floating] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-Matrix] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-Max] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-MonadTall] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-MonadThreeCol] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-MonadWide] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-Plasma] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-RatioTile] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-ScreenSplit] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-Spiral] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-Stack] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-Tile] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-TreeTab] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-VerticalTile] SKIPPED [ 8%] test/layouts/test_common.py::test_window_types[1-wayland-Zoomy] SKIPPED [ 8%] test/layouts/test_common.py::test_next_previous[1-x11-Bsp] PASSED [ 8%] test/layouts/test_common.py::test_next_previous[1-x11-Columns] PASSED [ 8%] test/layouts/test_common.py::test_next_previous[1-x11-Floating] SKIPPED [ 8%] test/layouts/test_common.py::test_next_previous[1-x11-Matrix] PASSED [ 8%] test/layouts/test_common.py::test_next_previous[1-x11-Max] PASSED [ 8%] test/layouts/test_common.py::test_next_previous[1-x11-MonadTall] PASSED [ 8%] test/layouts/test_common.py::test_next_previous[1-x11-MonadThreeCol] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-x11-MonadWide] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-x11-Plasma] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-x11-RatioTile] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-x11-ScreenSplit] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-x11-Spiral] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-x11-Stack] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-x11-Tile] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-x11-TreeTab] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-x11-VerticalTile] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-x11-Zoomy] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-Bsp] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-Columns] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-Floating] SKIPPED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-Matrix] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-Max] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-MonadTall] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-MonadThreeCol] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-MonadWide] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-Plasma] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-RatioTile] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-ScreenSplit] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-Spiral] PASSED [ 9%] test/layouts/test_common.py::test_next_previous[1-wayland-Stack] PASSED [ 10%] test/layouts/test_common.py::test_next_previous[1-wayland-Tile] PASSED [ 10%] test/layouts/test_common.py::test_next_previous[1-wayland-TreeTab] PASSED [ 10%] test/layouts/test_common.py::test_next_previous[1-wayland-VerticalTile] PASSED [ 10%] test/layouts/test_common.py::test_next_previous[1-wayland-Zoomy] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-Bsp] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-Columns] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-Floating] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-Matrix] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-Max] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-MonadTall] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-MonadThreeCol] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-MonadWide] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-Plasma] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-RatioTile] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-ScreenSplit] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-Spiral] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-Stack] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-Tile] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-TreeTab] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-VerticalTile] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-x11-Zoomy] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Bsp] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Columns] PASSED [ 10%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Floating] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Matrix] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Max] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-MonadTall] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-MonadThreeCol] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-MonadWide] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Plasma] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-RatioTile] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-ScreenSplit] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Spiral] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Stack] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Tile] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-TreeTab] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-VerticalTile] PASSED [ 11%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Zoomy] PASSED [ 11%] test/layouts/test_common.py::test_swap_window_order[1-x11-Bsp] PASSED [ 11%] test/layouts/test_common.py::test_swap_window_order[1-x11-Columns] PASSED [ 11%] test/layouts/test_common.py::test_swap_window_order[1-x11-Floating] PASSED [ 11%] test/layouts/test_common.py::test_swap_window_order[1-x11-Matrix] PASSED [ 11%] test/layouts/test_common.py::test_swap_window_order[1-x11-Max] PASSED [ 11%] test/layouts/test_common.py::test_swap_window_order[1-x11-MonadTall] PASSED [ 11%] test/layouts/test_common.py::test_swap_window_order[1-x11-MonadThreeCol] PASSED [ 11%] test/layouts/test_common.py::test_swap_window_order[1-x11-MonadWide] PASSED [ 11%] test/layouts/test_common.py::test_swap_window_order[1-x11-Plasma] PASSED [ 11%] test/layouts/test_common.py::test_swap_window_order[1-x11-RatioTile] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-x11-ScreenSplit] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-x11-Spiral] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-x11-Stack] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-x11-Tile] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-x11-TreeTab] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-x11-VerticalTile] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-x11-Zoomy] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-Bsp] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-Columns] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-Floating] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-Matrix] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-Max] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-MonadTall] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-MonadThreeCol] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-MonadWide] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-Plasma] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-RatioTile] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-ScreenSplit] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-Spiral] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-Stack] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-Tile] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-TreeTab] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-VerticalTile] PASSED [ 12%] test/layouts/test_common.py::test_swap_window_order[1-wayland-Zoomy] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-Bsp] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-Columns] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-Floating] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-Matrix] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-Max] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-MonadTall] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-MonadThreeCol] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-MonadWide] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-Plasma] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-RatioTile] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-ScreenSplit] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-Spiral] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-Stack] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-Tile] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-TreeTab] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-VerticalTile] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-x11-Zoomy] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-wayland-Bsp] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-wayland-Columns] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-wayland-Floating] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-wayland-Matrix] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-wayland-Max] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-wayland-MonadTall] PASSED [ 13%] test/layouts/test_common.py::test_focus_back[1-wayland-MonadThreeCol] PASSED [ 14%] test/layouts/test_common.py::test_focus_back[1-wayland-MonadWide] PASSED [ 14%] test/layouts/test_common.py::test_focus_back[1-wayland-Plasma] PASSED [ 14%] test/layouts/test_common.py::test_focus_back[1-wayland-RatioTile] PASSED [ 14%] test/layouts/test_common.py::test_focus_back[1-wayland-ScreenSplit] PASSED [ 14%] test/layouts/test_common.py::test_focus_back[1-wayland-Spiral] PASSED [ 14%] test/layouts/test_common.py::test_focus_back[1-wayland-Stack] PASSED [ 14%] test/layouts/test_common.py::test_focus_back[1-wayland-Tile] PASSED [ 14%] test/layouts/test_common.py::test_focus_back[1-wayland-TreeTab] PASSED [ 14%] test/layouts/test_common.py::test_focus_back[1-wayland-VerticalTile] PASSED [ 14%] test/layouts/test_common.py::test_focus_back[1-wayland-Zoomy] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-Bsp] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-Columns] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-Floating] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-Matrix] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-Max] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-MonadTall] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-MonadThreeCol] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-MonadWide] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-Plasma] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-RatioTile] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-ScreenSplit] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-Spiral] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-Stack] PASSED [ 14%] test/layouts/test_common.py::test_focus_change_event[1-x11-Tile] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-x11-TreeTab] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-x11-VerticalTile] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-x11-Zoomy] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Bsp] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Columns] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Floating] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Matrix] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Max] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-MonadTall] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-MonadThreeCol] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-MonadWide] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Plasma] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-RatioTile] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-ScreenSplit] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Spiral] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Stack] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Tile] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-TreeTab] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-VerticalTile] PASSED [ 15%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Zoomy] PASSED [ 15%] test/layouts/test_common.py::test_remove[1-x11-Bsp] PASSED [ 15%] test/layouts/test_common.py::test_remove[1-x11-Columns] PASSED [ 15%] test/layouts/test_common.py::test_remove[1-x11-Floating] PASSED [ 15%] test/layouts/test_common.py::test_remove[1-x11-Matrix] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-Max] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-MonadTall] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-MonadThreeCol] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-MonadWide] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-Plasma] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-RatioTile] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-ScreenSplit] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-Spiral] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-Stack] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-Tile] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-TreeTab] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-VerticalTile] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-x11-Zoomy] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-wayland-Bsp] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-wayland-Columns] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-wayland-Floating] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-wayland-Matrix] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-wayland-Max] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-wayland-MonadTall] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-wayland-MonadThreeCol] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-wayland-MonadWide] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-wayland-Plasma] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-wayland-RatioTile] PASSED [ 16%] test/layouts/test_common.py::test_remove[1-wayland-ScreenSplit] PASSED [ 17%] test/layouts/test_common.py::test_remove[1-wayland-Spiral] PASSED [ 17%] test/layouts/test_common.py::test_remove[1-wayland-Stack] PASSED [ 17%] test/layouts/test_common.py::test_remove[1-wayland-Tile] PASSED [ 17%] test/layouts/test_common.py::test_remove[1-wayland-TreeTab] PASSED [ 17%] test/layouts/test_common.py::test_remove[1-wayland-VerticalTile] PASSED [ 17%] test/layouts/test_common.py::test_remove[1-wayland-Zoomy] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-Bsp] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-Columns] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-Floating] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-Matrix] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-Max] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-MonadTall] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-MonadThreeCol] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-MonadWide] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-Plasma] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-RatioTile] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-ScreenSplit] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-Spiral] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-Stack] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-Tile] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-TreeTab] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-VerticalTile] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-x11-Zoomy] PASSED [ 17%] test/layouts/test_common.py::test_remove_floating[1-wayland-Bsp] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-Columns] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-Floating] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-Matrix] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-Max] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-MonadTall] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-MonadThreeCol] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-MonadWide] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-Plasma] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-RatioTile] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-ScreenSplit] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-Spiral] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-Stack] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-Tile] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-TreeTab] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-VerticalTile] PASSED [ 18%] test/layouts/test_common.py::test_remove_floating[1-wayland-Zoomy] PASSED [ 18%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Bsp] PASSED [ 18%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Columns] PASSED [ 18%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Floating] PASSED [ 18%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Matrix] PASSED [ 18%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Max] PASSED [ 18%] test/layouts/test_common.py::test_desktop_notifications[1-x11-MonadTall] PASSED [ 18%] test/layouts/test_common.py::test_desktop_notifications[1-x11-MonadThreeCol] PASSED [ 18%] test/layouts/test_common.py::test_desktop_notifications[1-x11-MonadWide] PASSED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Plasma] PASSED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-x11-RatioTile] PASSED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-x11-ScreenSplit] PASSED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Spiral] PASSED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Stack] PASSED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Tile] PASSED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-x11-TreeTab] PASSED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-x11-VerticalTile] PASSED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Zoomy] PASSED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Bsp] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Columns] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Floating] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Matrix] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Max] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-MonadTall] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-MonadThreeCol] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-MonadWide] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Plasma] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-RatioTile] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-ScreenSplit] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Spiral] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Stack] SKIPPED [ 19%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Tile] SKIPPED [ 20%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-TreeTab] SKIPPED [ 20%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-VerticalTile] SKIPPED [ 20%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Zoomy] SKIPPED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Bsp] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Columns] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Floating] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Matrix] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Max] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-MonadTall] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-MonadThreeCol] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-MonadWide] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Plasma] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-RatioTile] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-ScreenSplit] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Spiral] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Stack] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Tile] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-TreeTab] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-VerticalTile] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Zoomy] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Bsp] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Columns] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Floating] PASSED [ 20%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Matrix] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Max] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-MonadTall] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-MonadThreeCol] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-MonadWide] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Plasma] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-RatioTile] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-ScreenSplit] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Spiral] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Stack] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Tile] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-TreeTab] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-VerticalTile] PASSED [ 21%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Zoomy] PASSED [ 21%] test/layouts/test_common.py::test_cycle_layouts[1-x11-AllLayouts] PASSED [ 21%] test/layouts/test_common.py::test_cycle_layouts[1-wayland-AllLayouts] PASSED [ 21%] test/layouts/test_common.py::test_multiple_borders[1-x11-AllLayoutsMultipleBorders] PASSED [ 21%] test/layouts/test_common.py::test_multiple_borders[1-wayland-AllLayoutsMultipleBorders] PASSED [ 21%] test/layouts/test_floating.py::test_float_next_prev_window[1-x11-FloatingConfig] PASSED [ 21%] test/layouts/test_floating.py::test_float_next_prev_window[1-wayland-FloatingConfig] PASSED [ 21%] test/layouts/test_floating.py::test_border_widths[1-x11-FloatingConfig] PASSED [ 21%] test/layouts/test_floating.py::test_border_widths[1-wayland-FloatingConfig] PASSED [ 21%] test/layouts/test_matrix.py::test_matrix_simple[1-x11-MatrixConfig] PASSED [ 21%] test/layouts/test_matrix.py::test_matrix_simple[1-wayland-MatrixConfig] PASSED [ 21%] test/layouts/test_matrix.py::test_matrix_navigation[1-x11-MatrixConfig] PASSED [ 22%] test/layouts/test_matrix.py::test_matrix_navigation[1-wayland-MatrixConfig] PASSED [ 22%] test/layouts/test_matrix.py::test_matrix_add_remove_columns[1-x11-MatrixConfig] PASSED [ 22%] test/layouts/test_matrix.py::test_matrix_add_remove_columns[1-wayland-MatrixConfig] PASSED [ 22%] test/layouts/test_matrix.py::test_matrix_window_focus_cycle[1-x11-MatrixConfig] PASSED [ 22%] test/layouts/test_matrix.py::test_matrix_window_focus_cycle[1-wayland-MatrixConfig] PASSED [ 22%] test/layouts/test_matrix.py::test_matrix_next_no_clients[1-x11-MatrixConfig] PASSED [ 22%] test/layouts/test_matrix.py::test_matrix_next_no_clients[1-wayland-MatrixConfig] PASSED [ 22%] test/layouts/test_matrix.py::test_matrix_previous_no_clients[1-x11-MatrixConfig] PASSED [ 22%] test/layouts/test_matrix.py::test_matrix_previous_no_clients[1-wayland-MatrixConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_simple[1-x11-MaxConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_simple[1-wayland-MaxConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_layered[1-x11-MaxLayeredConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_layered[1-wayland-MaxLayeredConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_updown[1-x11-MaxConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_updown[1-wayland-MaxConfig] PASSED [ 22%] test/layouts/test_max.py::test_layered_max_updown[1-x11-MaxLayeredConfig] PASSED [ 22%] test/layouts/test_max.py::test_layered_max_updown[1-wayland-MaxLayeredConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_remove[1-x11-MaxConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_remove[1-x11-MaxLayeredConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_remove[1-wayland-MaxConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_remove[1-wayland-MaxLayeredConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_window_focus_cycle[1-x11-MaxConfig] PASSED [ 22%] test/layouts/test_max.py::test_max_window_focus_cycle[1-wayland-MaxConfig] PASSED [ 22%] test/layouts/test_max.py::test_layered_max_window_focus_cycle[1-x11-MaxLayeredConfig] PASSED [ 23%] test/layouts/test_max.py::test_layered_max_window_focus_cycle[1-wayland-MaxLayeredConfig] PASSED [ 23%] test/layouts/test_max.py::test_max_window_margins_and_borders[1-x11-MaxConfig] PASSED [ 23%] test/layouts/test_max.py::test_max_window_margins_and_borders[1-wayland-MaxConfig] PASSED [ 23%] test/layouts/test_plasma.py::test_info[1-x11] PASSED [ 23%] test/layouts/test_plasma.py::test_info[1-wayland] PASSED [ 23%] test/layouts/test_plasma.py::test_windows[1-x11] PASSED [ 23%] test/layouts/test_plasma.py::test_windows[1-wayland] PASSED [ 23%] test/layouts/test_plasma.py::test_split_directions[1-x11] PASSED [ 23%] test/layouts/test_plasma.py::test_split_directions[1-wayland] PASSED [ 23%] test/layouts/test_plasma.py::test_layout_directions[1-x11-True] PASSED [ 23%] test/layouts/test_plasma.py::test_layout_directions[1-wayland-True] PASSED [ 23%] test/layouts/test_plasma.py::test_move[1-x11-True] PASSED [ 23%] test/layouts/test_plasma.py::test_move[1-wayland-True] PASSED [ 23%] test/layouts/test_plasma.py::test_client_integrate[1-x11-True] PASSED [ 23%] test/layouts/test_plasma.py::test_client_integrate[1-wayland-True] PASSED [ 23%] test/layouts/test_plasma.py::test_sizes[1-x11] PASSED [ 23%] test/layouts/test_plasma.py::test_sizes[1-wayland] PASSED [ 23%] test/layouts/test_plasma.py::test_remove[1-x11] PASSED [ 23%] test/layouts/test_plasma.py::test_remove[1-wayland] PASSED [ 23%] test/layouts/test_plasma.py::test_split_mode[1-x11] PASSED [ 23%] test/layouts/test_plasma.py::test_split_mode[1-wayland] PASSED [ 23%] test/layouts/test_plasma.py::test_recent[1-x11] PASSED [ 23%] test/layouts/test_plasma.py::test_recent[1-wayland] PASSED [ 23%] test/layouts/test_ratiotile.py::test_ratiotile_add_windows[1-x11-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_ratiotile_add_windows[1-wayland-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_ratiotile_add_windows_golden_ratio[1-x11-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_ratiotile_add_windows_golden_ratio[1-wayland-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_ratiotile_basic[1-x11-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_ratiotile_basic[1-wayland-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_ratiotile_window_focus_cycle[1-x11-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_ratiotile_window_focus_cycle[1-wayland-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_ratiotile_alternative_calculation[1-x11-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_ratiotile_alternative_calculation[1-wayland-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_shuffling[1-x11-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_shuffling[1-wayland-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_resizing[1-x11-RatioTileConfig] PASSED [ 24%] test/layouts/test_ratiotile.py::test_resizing[1-wayland-RatioTileConfig] PASSED [ 24%] test/layouts/test_screensplit.py::test_screensplit[1-x11-ss_manager0] PASSED [ 24%] test/layouts/test_screensplit.py::test_screensplit[1-wayland-ss_manager0] PASSED [ 24%] test/layouts/test_screensplit.py::test_commands_passthrough[1-x11-ss_manager0] PASSED [ 24%] test/layouts/test_screensplit.py::test_commands_passthrough[1-wayland-ss_manager0] PASSED [ 24%] test/layouts/test_screensplit.py::test_move_window_to_split[1-x11-ss_manager0] PASSED [ 24%] test/layouts/test_screensplit.py::test_move_window_to_split[1-wayland-ss_manager0] PASSED [ 24%] test/layouts/test_screensplit.py::test_match_window[1-x11-ss_manager0] PASSED [ 24%] test/layouts/test_screensplit.py::test_match_window[1-wayland-ss_manager0] PASSED [ 24%] test/layouts/test_slice.py::test_no_slice[1-x11-SliceConfig] PASSED [ 24%] test/layouts/test_slice.py::test_no_slice[1-wayland-SliceConfig] PASSED [ 24%] test/layouts/test_slice.py::test_slice_first[1-x11-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_slice_first[1-wayland-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_slice_last[1-x11-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_slice_last[1-wayland-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_slice_focus[1-x11-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_slice_focus[1-wayland-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_all_slices[1-x11-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_all_slices[1-wayland-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_command_propagation[1-x11-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_command_propagation[1-wayland-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_command_propagation_direct_call[1-x11-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_command_propagation_direct_call[1-wayland-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_move_to_slice[1-x11-SliceConfig] PASSED [ 25%] test/layouts/test_slice.py::test_move_to_slice[1-wayland-SliceConfig] PASSED [ 25%] test/layouts/test_spiral.py::test_spiral_left[1-x11-SpiralConfig] PASSED [ 25%] test/layouts/test_spiral.py::test_spiral_left[1-wayland-SpiralConfig] PASSED [ 25%] test/layouts/test_spiral.py::test_spiral_top[1-x11-SpiralConfig] PASSED [ 25%] test/layouts/test_spiral.py::test_spiral_top[1-wayland-SpiralConfig] PASSED [ 25%] test/layouts/test_spiral.py::test_spiral_right[1-x11-SpiralConfig] PASSED [ 25%] test/layouts/test_spiral.py::test_spiral_right[1-wayland-SpiralConfig] PASSED [ 25%] test/layouts/test_spiral.py::test_spiral_bottom[1-x11-SpiralConfig] PASSED [ 25%] test/layouts/test_spiral.py::test_spiral_bottom[1-wayland-SpiralConfig] PASSED [ 25%] test/layouts/test_spiral.py::test_spiral_left_anticlockwise[1-x11-AnticlockwiseConfig] PASSED [ 25%] test/layouts/test_spiral.py::test_spiral_left_anticlockwise[1-wayland-AnticlockwiseConfig] PASSED [ 25%] test/layouts/test_spiral.py::test_spiral_top_anticlockwise[1-x11-AnticlockwiseConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_top_anticlockwise[1-wayland-AnticlockwiseConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_right_anticlockwise[1-x11-AnticlockwiseConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_right_anticlockwise[1-wayland-AnticlockwiseConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_bottom_anticlockwise[1-x11-AnticlockwiseConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_bottom_anticlockwise[1-wayland-AnticlockwiseConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_shuffle_up[1-x11-SpiralConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_shuffle_up[1-wayland-SpiralConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_shuffle_down[1-x11-SpiralConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_shuffle_down[1-wayland-SpiralConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_shuffle_no_wrap_down[1-x11-SpiralConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_shuffle_no_wrap_down[1-wayland-SpiralConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_shuffle_no_wrap_up[1-x11-SpiralConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_shuffle_no_wrap_up[1-wayland-SpiralConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_singleborder_disable[1-x11-SingleborderDisabledConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_singleborder_disable[1-wayland-SingleborderDisabledConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_adjust_master_ratios[1-x11-SpiralConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_adjust_master_ratios[1-wayland-SpiralConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_adjust_ratios[1-x11-SpiralConfig] PASSED [ 26%] test/layouts/test_spiral.py::test_spiral_adjust_ratios[1-wayland-SpiralConfig] PASSED [ 26%] test/layouts/test_stack.py::test_stack_commands[1-x11-StackConfig] PASSED [ 26%] test/layouts/test_stack.py::test_stack_commands[1-wayland-StackConfig] PASSED [ 26%] test/layouts/test_stack.py::test_stack_down[1-x11-StackConfig] PASSED [ 26%] test/layouts/test_stack.py::test_stack_down[1-wayland-StackConfig] PASSED [ 26%] test/layouts/test_stack.py::test_stack_addremove[1-x11-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_addremove[1-wayland-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_rotation[1-x11-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_rotation[1-wayland-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_nextprev[1-x11-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_nextprev[1-wayland-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_window_removal[1-x11-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_window_removal[1-wayland-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_split[1-x11-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_split[1-wayland-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_shuffle[1-x11-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_shuffle[1-wayland-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_client_to[1-x11-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_client_to[1-wayland-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_info[1-x11-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_info[1-wayland-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_window_focus_cycle[1-x11-StackConfig] PASSED [ 27%] test/layouts/test_stack.py::test_stack_window_focus_cycle[1-wayland-StackConfig] PASSED [ 27%] test/layouts/test_tile.py::test_tile_updown[1-x11-TileConfig] PASSED [ 27%] test/layouts/test_tile.py::test_tile_updown[1-wayland-TileConfig] PASSED [ 27%] test/layouts/test_tile.py::test_tile_nextprev[1-x11-TileConfig] PASSED [ 27%] test/layouts/test_tile.py::test_tile_nextprev[1-wayland-TileConfig] PASSED [ 27%] test/layouts/test_tile.py::test_tile_master_and_slave[1-x11-TileConfig] PASSED [ 27%] test/layouts/test_tile.py::test_tile_master_and_slave[1-wayland-TileConfig] PASSED [ 27%] test/layouts/test_tile.py::test_tile_remove[1-x11-TileConfig] PASSED [ 28%] test/layouts/test_tile.py::test_tile_remove[1-wayland-TileConfig] PASSED [ 28%] test/layouts/test_tile.py::test_tile_window_focus_cycle[1-x11-TileConfig] PASSED [ 28%] test/layouts/test_tile.py::test_tile_window_focus_cycle[1-wayland-TileConfig] PASSED [ 28%] test/layouts/test_tile.py::test_tile_add_on_top[1-x11-TileConfig] PASSED [ 28%] test/layouts/test_tile.py::test_tile_add_on_top[1-wayland-TileConfig] PASSED [ 28%] test/layouts/test_tile.py::test_tile_min_max_ratios[1-x11-TileConfig] PASSED [ 28%] test/layouts/test_tile.py::test_tile_min_max_ratios[1-wayland-TileConfig] PASSED [ 28%] test/layouts/test_treetab.py::test_window[1-x11-TreeTabConfig] ERROR [ 28%] test/layouts/test_treetab.py::test_window[1-wayland-TreeTabConfig] PASSED [ 28%] test/layouts/test_treetab.py::test_sort_windows[1-x11-TreeTabConfig] ERROR [ 28%] test/layouts/test_treetab.py::test_sort_windows[1-wayland-TreeTabConfig] PASSED [ 28%] test/layouts/test_verticaltile.py::test_verticaltile_simple[1-x11-VerticalTileConfig] PASSED [ 28%] test/layouts/test_verticaltile.py::test_verticaltile_simple[1-wayland-VerticalTileConfig] PASSED [ 28%] test/layouts/test_verticaltile.py::test_verticaltile_maximize[1-x11-VerticalTileConfig] PASSED [ 28%] test/layouts/test_verticaltile.py::test_verticaltile_maximize[1-wayland-VerticalTileConfig] PASSED [ 28%] test/layouts/test_verticaltile.py::test_verticaltile_window_focus_cycle[1-x11-VerticalTileConfig] PASSED [ 28%] test/layouts/test_verticaltile.py::test_verticaltile_window_focus_cycle[1-wayland-VerticalTileConfig] PASSED [ 28%] test/layouts/test_verticaltile.py::test_verticaltile_single_border[1-x11-VerticalTileSingleBorderConfig] PASSED [ 28%] test/layouts/test_verticaltile.py::test_verticaltile_single_border[1-wayland-VerticalTileSingleBorderConfig] PASSED [ 28%] test/layouts/test_verticaltile.py::test_verticaltile_single_margin[1-x11-VerticalTileSingleMarginConfig] PASSED [ 28%] test/layouts/test_verticaltile.py::test_verticaltile_single_margin[1-wayland-VerticalTileSingleMarginConfig] PASSED [ 28%] test/layouts/test_xmonad.py::test_tall_add_clients[1-x11-MonadTallConfig] PASSED [ 28%] test/layouts/test_xmonad.py::test_tall_add_clients[1-wayland-MonadTallConfig] PASSED [ 28%] test/layouts/test_xmonad.py::test_tall_add_clients_before_current[1-x11-MonadTallNCPBeforeCurrentConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_add_clients_before_current[1-wayland-MonadTallNCPBeforeCurrentConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_add_clients_after_current[1-x11-MonadTallNCPAfterCurrentConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_add_clients_after_current[1-wayland-MonadTallNCPAfterCurrentConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_add_clients_at_bottom[1-x11-MonadTallNewCLientPositionBottomConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_add_clients_at_bottom[1-wayland-MonadTallNewCLientPositionBottomConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_wide_add_clients[1-x11-MonadWideConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_wide_add_clients[1-wayland-MonadWideConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_wide_add_clients_new_client_postion_top[1-x11-MonadWideNewClientPositionTopConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_wide_add_clients_new_client_postion_top[1-wayland-MonadWideNewClientPositionTopConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_margins[1-x11-MonadTallMarginsConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_margins[1-wayland-MonadTallMarginsConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_wide_margins[1-x11-MonadWideMarginsConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_wide_margins[1-wayland-MonadWideMarginsConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_growmain_solosecondary[1-x11-MonadTallConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_growmain_solosecondary[1-wayland-MonadTallConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_wide_growmain_solosecondary[1-x11-MonadWideConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_wide_growmain_solosecondary[1-wayland-MonadWideConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_growmain_multiplesecondary[1-x11-MonadTallConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_growmain_multiplesecondary[1-wayland-MonadTallConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_wide_growmain_multiplesecondary[1-x11-MonadWideConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_wide_growmain_multiplesecondary[1-wayland-MonadWideConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_growsecondary_solosecondary[1-x11-MonadTallConfig] PASSED [ 29%] test/layouts/test_xmonad.py::test_tall_growsecondary_solosecondary[1-wayland-MonadTallConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_wide_growsecondary_solosecondary[1-x11-MonadWideConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_wide_growsecondary_solosecondary[1-wayland-MonadWideConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_growsecondary_multiplesecondary[1-x11-MonadTallConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_growsecondary_multiplesecondary[1-wayland-MonadTallConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_wide_growsecondary_multiplesecondary[1-x11-MonadWideConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_wide_growsecondary_multiplesecondary[1-wayland-MonadWideConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_flip[1-x11-MonadTallConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_flip[1-wayland-MonadTallConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_wide_flip[1-x11-MonadWideConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_wide_flip[1-wayland-MonadWideConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_set_and_reset[1-x11-MonadTallConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_set_and_reset[1-wayland-MonadTallConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_stacked_add_two_clients[1-x11-MonadTallStackedConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_stacked_add_two_clients[1-wayland-MonadTallStackedConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_stacked_toggle_auto_maximize[1-x11-MonadTallStackedConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_stacked_toggle_auto_maximize[1-wayland-MonadTallStackedConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_stacked_window_kill[1-x11-MonadTallStackedConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_stacked_window_kill[1-wayland-MonadTallStackedConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_wide_set_and_reset[1-x11-MonadWideConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_wide_set_and_reset[1-wayland-MonadWideConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_shuffle[1-x11-MonadTallConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_tall_shuffle[1-wayland-MonadTallConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_wide_shuffle[1-x11-MonadWideConfig] PASSED [ 30%] test/layouts/test_xmonad.py::test_wide_shuffle[1-wayland-MonadWideConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_tall_swap[1-x11-MonadTallConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_tall_swap[1-wayland-MonadTallConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_wide_swap[1-x11-MonadWideConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_wide_swap[1-wayland-MonadWideConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_tall_window_focus_cycle[1-x11-MonadTallConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_tall_window_focus_cycle[1-wayland-MonadTallConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_wide_window_focus_cycle[1-x11-MonadWideConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_wide_window_focus_cycle[1-wayland-MonadWideConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_tall_window_directional_focus[1-x11-MonadTallConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_tall_window_directional_focus[1-wayland-MonadTallConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_wide_window_directional_focus[1-x11-MonadWideConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_wide_window_directional_focus[1-wayland-MonadWideConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_three_col_add_clients[1-x11-MonadThreeColConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_three_col_add_clients[1-wayland-MonadThreeColConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_three_col_shuffle[1-x11-MonadThreeColConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_three_col_shuffle[1-wayland-MonadThreeColConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_three_col_swap_main[1-x11-MonadThreeColConfig] PASSED [ 31%] test/layouts/test_xmonad.py::test_three_col_swap_main[1-wayland-MonadThreeColConfig] PASSED [ 31%] test/layouts/test_zoomy.py::test_zoomy_one[1-x11-ZoomyConfig] PASSED [ 31%] test/layouts/test_zoomy.py::test_zoomy_one[1-wayland-ZoomyConfig] PASSED [ 31%] test/layouts/test_zoomy.py::test_zoomy_window_focus_cycle[1-x11-ZoomyConfig] PASSED [ 31%] test/layouts/test_zoomy.py::test_zoomy_window_focus_cycle[1-wayland-ZoomyConfig] PASSED [ 31%] test/test_bar.py::test_draw[1-x11-GBConfig] PASSED [ 31%] test/test_bar.py::test_draw[1-wayland-GBConfig] PASSED [ 32%] test/test_bar.py::test_prompt[1-x11-GBConfig] PASSED [ 32%] test/test_bar.py::test_prompt[1-wayland-GBConfig] PASSED [ 32%] test/test_bar.py::test_event[1-x11-GBConfig] ERROR [ 32%] test/test_bar.py::test_event[1-wayland-GBConfig] PASSED [ 32%] test/test_bar.py::test_textbox[1-x11-GBConfig] PASSED [ 32%] test/test_bar.py::test_textbox[1-wayland-GBConfig] PASSED [ 32%] test/test_bar.py::test_textbox_errors[1-x11-GBConfig] PASSED [ 32%] test/test_bar.py::test_textbox_errors[1-wayland-GBConfig] PASSED [ 32%] test/test_bar.py::test_groupbox_button_press[1-x11-GBConfig] PASSED [ 32%] test/test_bar.py::test_groupbox_button_press[1-wayland-GBConfig] PASSED [ 32%] test/test_bar.py::test_geometry[1-x11-GeomConf] PASSED [ 32%] test/test_bar.py::test_geometry[1-wayland-GeomConf] PASSED [ 32%] test/test_bar.py::test_resize[1-x11-GeomConf] PASSED [ 32%] test/test_bar.py::test_resize[1-wayland-GeomConf] PASSED [ 32%] test/test_bar.py::test_basic[1-x11] PASSED [ 32%] test/test_bar.py::test_basic[1-wayland] PASSED [ 32%] test/test_bar.py::test_singlespacer[1-x11] PASSED [ 32%] test/test_bar.py::test_singlespacer[1-wayland] PASSED [ 32%] test/test_bar.py::test_nospacer[1-x11] PASSED [ 32%] test/test_bar.py::test_nospacer[1-wayland] PASSED [ 32%] test/test_bar.py::test_consecutive_spacer[1-x11] PASSED [ 32%] test/test_bar.py::test_consecutive_spacer[1-wayland] PASSED [ 32%] test/test_bar.py::test_configure_broken_widgets[1-x11] PASSED [ 32%] test/test_bar.py::test_configure_broken_widgets[1-wayland] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_with_margin[1-x11] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_with_margin[1-wayland] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_single_screen[1-x11-all-dimensions0] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_single_screen[1-x11-top-dimensions1] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_single_screen[1-x11-bottom-dimensions2] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_single_screen[1-x11-left-dimensions3] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_single_screen[1-x11-right-dimensions4] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_single_screen[1-wayland-all-dimensions0] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_single_screen[1-wayland-top-dimensions1] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_single_screen[1-wayland-bottom-dimensions2] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_single_screen[1-wayland-left-dimensions3] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_single_screen[1-wayland-right-dimensions4] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_dual_screen[x11-all-dimensions0-2] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_dual_screen[x11-top-dimensions1-2] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_dual_screen[x11-bottom-dimensions2-2] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_dual_screen[x11-left-dimensions3-2] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_dual_screen[x11-right-dimensions4-2] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_dual_screen[wayland-all-dimensions0-2] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_dual_screen[wayland-top-dimensions1-2] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_dual_screen[wayland-bottom-dimensions2-2] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_dual_screen[wayland-left-dimensions3-2] PASSED [ 33%] test/test_bar.py::test_bar_hide_show_dual_screen[wayland-right-dimensions4-2] PASSED [ 33%] test/test_bar.py::test_bar_border_horizontal[1-x11] PASSED [ 33%] test/test_bar.py::test_bar_border_horizontal[1-wayland] PASSED [ 34%] test/test_bar.py::test_bar_border_vertical[1-x11] PASSED [ 34%] test/test_bar.py::test_bar_border_vertical[1-wayland] PASSED [ 34%] test/test_bar.py::test_unsupported_widget[1-x11] PASSED [ 34%] test/test_bar.py::test_unsupported_widget[1-wayland] PASSED [ 34%] test/test_bar.py::test_dont_reserve_bar[1-x11-top-0-0-800-50] PASSED [ 34%] test/test_bar.py::test_dont_reserve_bar[1-x11-bottom-0-550-800-50] PASSED [ 34%] test/test_bar.py::test_dont_reserve_bar[1-x11-left-0-0-50-600] PASSED [ 34%] test/test_bar.py::test_dont_reserve_bar[1-x11-right-750-0-50-600] PASSED [ 34%] test/test_bar.py::test_dont_reserve_bar[1-wayland-top-0-0-800-50] PASSED [ 34%] test/test_bar.py::test_dont_reserve_bar[1-wayland-bottom-0-550-800-50] PASSED [ 34%] test/test_bar.py::test_dont_reserve_bar[1-wayland-left-0-0-50-600] PASSED [ 34%] test/test_bar.py::test_dont_reserve_bar[1-wayland-right-750-0-50-600] PASSED [ 34%] test/test_command.py::test_layout_filter[1-x11-CallConfig] PASSED [ 34%] test/test_command.py::test_layout_filter[1-wayland-CallConfig] PASSED [ 34%] test/test_command.py::test_param_hoisting[1-x11-CallConfig] PASSED [ 34%] test/test_command.py::test_param_hoisting[1-wayland-CallConfig] PASSED [ 34%] test/test_command.py::test_cmd_commands[1-x11-ServerConfig] PASSED [ 34%] test/test_command.py::test_cmd_commands[1-wayland-ServerConfig] PASSED [ 34%] test/test_command.py::test_cmd_eval_namespace[1-x11-ServerConfig] PASSED [ 34%] test/test_command.py::test_cmd_eval_namespace[1-wayland-ServerConfig] PASSED [ 34%] test/test_command.py::test_call_unknown[1-x11-ServerConfig] PASSED [ 34%] test/test_command.py::test_call_unknown[1-wayland-ServerConfig] PASSED [ 34%] test/test_command.py::test_items_qtile[x11-ServerConfig-2] PASSED [ 34%] test/test_command.py::test_items_qtile[wayland-ServerConfig-2] PASSED [ 35%] test/test_command.py::test_select_qtile[x11-ServerConfig-2] PASSED [ 35%] test/test_command.py::test_select_qtile[wayland-ServerConfig-2] PASSED [ 35%] test/test_command.py::test_items_group[1-x11-ServerConfig] PASSED [ 35%] test/test_command.py::test_items_group[1-wayland-ServerConfig] PASSED [ 35%] test/test_command.py::test_select_group[x11-ServerConfig-2] PASSED [ 35%] test/test_command.py::test_select_group[wayland-ServerConfig-2] PASSED [ 35%] test/test_command.py::test_items_screen[1-x11-ServerConfig] PASSED [ 35%] test/test_command.py::test_items_screen[1-wayland-ServerConfig] PASSED [ 35%] test/test_command.py::test_select_screen[1-x11-ServerConfig] PASSED [ 35%] test/test_command.py::test_select_screen[1-wayland-ServerConfig] PASSED [ 35%] test/test_command.py::test_items_bar[1-x11-ServerConfig] PASSED [ 35%] test/test_command.py::test_items_bar[1-wayland-ServerConfig] PASSED [ 35%] test/test_command.py::test_select_bar[x11-ServerConfig-2] PASSED [ 35%] test/test_command.py::test_select_bar[wayland-ServerConfig-2] PASSED [ 35%] test/test_command.py::test_items_layout[1-x11-ServerConfig] PASSED [ 35%] test/test_command.py::test_items_layout[1-wayland-ServerConfig] PASSED [ 35%] test/test_command.py::test_select_layout[1-x11-ServerConfig] PASSED [ 35%] test/test_command.py::test_select_layout[1-wayland-ServerConfig] PASSED [ 35%] test/test_command.py::test_items_window[x11-ServerConfig-2] PASSED [ 35%] test/test_command.py::test_items_window[wayland-ServerConfig-2] PASSED [ 35%] test/test_command.py::test_select_window[x11-ServerConfig-2] PASSED [ 35%] test/test_command.py::test_select_window[wayland-ServerConfig-2] PASSED [ 35%] test/test_command.py::test_items_widget[1-x11-ServerConfig] PASSED [ 35%] test/test_command.py::test_items_widget[1-wayland-ServerConfig] PASSED [ 36%] test/test_command.py::test_select_widget[1-x11-ServerConfig] PASSED [ 36%] test/test_command.py::test_select_widget[1-wayland-ServerConfig] PASSED [ 36%] test/test_command.py::test_core_node[1-x11] PASSED [ 36%] test/test_command.py::test_core_node[1-wayland] PASSED [ 36%] test/test_command.py::test_lazy_arguments[1-x11] PASSED [ 36%] test/test_command.py::test_lazy_arguments[1-wayland] PASSED [ 36%] test/test_command.py::test_lazy_function_coroutine[1-x11] PASSED [ 36%] test/test_command.py::test_lazy_function_coroutine[1-wayland] PASSED [ 36%] test/test_command.py::test_decorators_manager_call[x11-ServerConfig-2] PASSED [ 36%] test/test_command.py::test_decorators_manager_call[wayland-ServerConfig-2] PASSED [ 36%] test/test_command.py::test_eval_exception[1-x11] PASSED [ 36%] test/test_command.py::test_eval_exception[1-wayland] PASSED [ 36%] test/test_config.py::test_screen_serial_ordering_the_order[1-x11] PASSED [ 36%] test/test_config.py::test_screen_serial_ordering_the_order[1-wayland] PASSED [ 36%] test/test_config.py::test_generate_screens_too_few[1-x11] PASSED [ 36%] test/test_config.py::test_generate_screens_too_few[1-wayland] PASSED [ 36%] test/test_config.py::test_generate_screens_too_many[1-x11] PASSED [ 36%] test/test_config.py::test_generate_screens_too_many[1-wayland] PASSED [ 36%] test/test_config.py::test_generate_screens_serial_matching[1-x11] PASSED [ 36%] test/test_config.py::test_generate_screens_serial_matching[1-wayland] PASSED [ 36%] test/test_dgroups.py::test_dgroup_persist[1-x11-DGroupsConfig] PASSED [ 36%] test/test_dgroups.py::test_dgroup_persist[1-wayland-DGroupsConfig] PASSED [ 36%] test/test_dgroups.py::test_dgroup_nonpersist[1-x11-DGroupsConfig] PASSED [ 36%] test/test_dgroups.py::test_dgroup_nonpersist[1-wayland-DGroupsConfig] PASSED [ 37%] test/test_dgroups.py::test_dgroup_spawn_in_group[1-x11-DGroupsSpawnConfig] PASSED [ 37%] test/test_dgroups.py::test_dgroup_spawn_in_group[1-wayland-DGroupsSpawnConfig] ERROR [ 37%] test/test_fakescreen.py::test_basic[1-x11-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_basic[1-wayland-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_gaps[1-x11-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_gaps[1-wayland-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_maximize_with_move_to_screen[1-x11-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_maximize_with_move_to_screen[1-wayland-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_float_first_on_second_screen[1-x11-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_float_first_on_second_screen[1-wayland-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_float_change_screens[1-x11-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_float_change_screens[1-wayland-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_float_outside_edges[1-x11-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_float_outside_edges[1-wayland-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_hammer_tile[1-x11-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_hammer_tile[1-wayland-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_hammer_ratio_tile[1-x11-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_hammer_ratio_tile[1-wayland-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_ratio_to_fourth_screen[1-x11-FakeScreenConfig] PASSED [ 37%] test/test_fakescreen.py::test_ratio_to_fourth_screen[1-wayland-FakeScreenConfig] PASSED [ 37%] test/test_floating.py::test_maximize[1-x11-FakeScreenConfig] PASSED [ 37%] test/test_floating.py::test_maximize[1-wayland-FakeScreenConfig] PASSED [ 37%] test/test_floating.py::test_fullscreen[1-x11-FakeScreenConfig] PASSED [ 37%] test/test_floating.py::test_fullscreen[1-wayland-FakeScreenConfig] PASSED [ 38%] test/test_floating.py::test_fullscreen_restore_tiling[1-x11-FakeScreenConfig] PASSED [ 38%] test/test_floating.py::test_fullscreen_restore_tiling[1-wayland-FakeScreenConfig] PASSED [ 38%] test/test_floating.py::test_fullscreen_restore_floating[1-x11-FakeScreenConfig] PASSED [ 38%] test/test_floating.py::test_fullscreen_restore_floating[1-wayland-FakeScreenConfig] PASSED [ 38%] test/test_floating.py::test_maximize_restore_floating[1-x11-FakeScreenConfig] PASSED [ 38%] test/test_floating.py::test_maximize_restore_floating[1-wayland-FakeScreenConfig] PASSED [ 38%] test/test_group.py::test_window_order[1-x11-GroupConfig] PASSED [ 38%] test/test_group.py::test_window_order[1-wayland-GroupConfig] PASSED [ 38%] test/test_group.py::test_focus_by_index[1-x11-GroupConfig] PASSED [ 38%] test/test_group.py::test_focus_by_index[1-wayland-GroupConfig] PASSED [ 38%] test/test_group.py::test_toscreen_toggle[1-x11-GroupConfig] PASSED [ 38%] test/test_group.py::test_toscreen_toggle[1-wayland-GroupConfig] PASSED [ 38%] test/test_group.py::test_non_persistent_groups[1-x11-NoPersistGroupConfig] PASSED [ 38%] test/test_group.py::test_non_persistent_groups[1-wayland-NoPersistGroupConfig] PASSED [ 38%] test/test_hook.py::test_can_subscribe_to_startup_hooks[1-x11] PASSED [ 38%] test/test_hook.py::test_can_subscribe_to_startup_hooks[1-wayland] PASSED [ 38%] test/test_hook.py::test_can_update_by_selection_change[1-x11] PASSED [ 38%] test/test_hook.py::test_can_update_by_selection_change[1-wayland] PASSED [ 38%] test/test_hook.py::test_can_call_by_selection_notify[1-x11] PASSED [ 38%] test/test_hook.py::test_can_call_by_selection_notify[1-wayland] PASSED [ 38%] test/test_hook.py::test_resume_hook[1-x11] PASSED [ 38%] test/test_hook.py::test_resume_hook[1-wayland] PASSED [ 38%] test/test_hook.py::test_suspend_hook[1-x11] PASSED [ 38%] test/test_hook.py::test_suspend_hook[1-wayland] PASSED [ 39%] test/test_hook.py::test_user_hook[1-x11] PASSED [ 39%] test/test_hook.py::test_user_hook[1-wayland] PASSED [ 39%] test/test_hook.py::test_shutdown[1-x11] PASSED [ 39%] test/test_hook.py::test_shutdown[1-wayland] PASSED [ 39%] test/test_hook.py::test_setgroup[x11-2] PASSED [ 39%] test/test_hook.py::test_setgroup[wayland-2] PASSED [ 39%] test/test_hook.py::test_addgroup[1-x11] FAILED [ 39%] test/test_hook.py::test_addgroup[1-wayland] PASSED [ 39%] test/test_hook.py::test_delgroup[1-x11] PASSED [ 39%] test/test_hook.py::test_delgroup[1-wayland] PASSED [ 39%] test/test_hook.py::test_changegroup[1-x11] PASSED [ 39%] test/test_hook.py::test_changegroup[1-wayland] PASSED [ 39%] test/test_hook.py::test_focus_change[1-x11] PASSED [ 39%] test/test_hook.py::test_focus_change[1-wayland] PASSED [ 39%] test/test_hook.py::test_float_change[1-x11] PASSED [ 39%] test/test_hook.py::test_float_change[1-wayland] PASSED [ 39%] test/test_hook.py::test_group_window_add[1-x11] PASSED [ 39%] test/test_hook.py::test_group_window_add[1-wayland] PASSED [ 39%] test/test_hook.py::test_group_window_remove[1-x11] PASSED [ 39%] test/test_hook.py::test_group_window_remove[1-wayland] PASSED [ 39%] test/test_hook.py::test_client_new[1-x11] PASSED [ 39%] test/test_hook.py::test_client_new[1-wayland] PASSED [ 39%] test/test_hook.py::test_client_managed[1-x11] PASSED [ 40%] test/test_hook.py::test_client_managed[1-wayland] PASSED [ 40%] test/test_hook.py::test_client_killed[1-x11] PASSED [ 40%] test/test_hook.py::test_client_killed[1-wayland] FAILED [ 40%] test/test_hook.py::test_client_focus[1-x11] PASSED [ 40%] test/test_hook.py::test_client_focus[1-wayland] PASSED [ 40%] test/test_hook.py::test_client_mouse_enter[1-x11] PASSED [ 40%] test/test_hook.py::test_client_mouse_enter[1-wayland] PASSED [ 40%] test/test_hook.py::test_client_focus_by_click[1-x11] PASSED [ 40%] test/test_hook.py::test_client_focus_by_click[1-wayland] PASSED [ 40%] test/test_hook.py::test_client_name_updated[1-x11] PASSED [ 40%] test/test_hook.py::test_client_name_updated[1-wayland] PASSED [ 40%] test/test_hook.py::test_client_urgent_hint_changed[1-x11] PASSED [ 40%] test/test_hook.py::test_client_urgent_hint_changed[1-wayland] PASSED [ 40%] test/test_hook.py::test_layout_change[1-x11] PASSED [ 40%] test/test_hook.py::test_layout_change[1-wayland] PASSED [ 40%] test/test_hook.py::test_net_wm_icon_change[1-x11] PASSED [ 40%] test/test_hook.py::test_net_wm_icon_change[1-wayland] SKIPPED (X11 only.) [ 40%] test/test_hook.py::test_screen_change_debounce[1-x11] PASSED [ 40%] test/test_hook.py::test_screen_change_debounce[1-wayland] PASSED [ 40%] test/test_hook.py::test_screen_change[1-x11] PASSED [ 40%] test/test_hook.py::test_screen_change[1-wayland] PASSED [ 40%] test/test_hook.py::test_screens_reconfigured[1-x11] PASSED [ 40%] test/test_hook.py::test_screens_reconfigured[1-wayland] PASSED [ 40%] test/test_hook.py::test_current_screen_change[x11-2] PASSED [ 41%] test/test_hook.py::test_current_screen_change[wayland-2] PASSED [ 41%] test/test_manager.py::test_screen_dim[x11-ManagerConfig-2] PASSED [ 41%] test/test_manager.py::test_screen_dim[wayland-ManagerConfig-2] PASSED [ 41%] test/test_manager.py::test_clone_dim[1-x11-ManagerConfig-xephyr0] PASSED [ 41%] test/test_manager.py::test_clone_dim[1-wayland-ManagerConfig-xephyr0] PASSED [ 41%] test/test_manager.py::test_to_screen[x11-ManagerConfig-2] PASSED [ 41%] test/test_manager.py::test_to_screen[wayland-ManagerConfig-2] PASSED [ 41%] test/test_manager.py::test_togroup[x11-ManagerConfig-2] PASSED [ 41%] test/test_manager.py::test_togroup[wayland-ManagerConfig-2] PASSED [ 41%] test/test_manager.py::test_resize[1-x11-ManagerConfig] PASSED [ 41%] test/test_manager.py::test_resize[1-wayland-ManagerConfig] PASSED [ 41%] test/test_manager.py::test_minimal[1-x11] PASSED [ 41%] test/test_manager.py::test_minimal[1-wayland] PASSED [ 41%] test/test_manager.py::test_events[1-x11-ManagerConfig] PASSED [ 41%] test/test_manager.py::test_events[1-wayland-ManagerConfig] PASSED [ 41%] test/test_manager.py::test_keypress[1-x11-ManagerConfig] PASSED [ 41%] test/test_manager.py::test_keypress[1-wayland-ManagerConfig] PASSED [ 41%] test/test_manager.py::test_too_few_groups[x11-1-TooFewGroupsConfig] PASSED [ 41%] test/test_manager.py::test_too_few_groups[wayland-1-TooFewGroupsConfig] PASSED [ 41%] test/test_manager.py::test_immediate_chord[1-x11-_ChordsConfig] PASSED [ 41%] test/test_manager.py::test_immediate_chord[1-wayland-_ChordsConfig] PASSED [ 41%] test/test_manager.py::test_mode_chord[1-x11-_ChordsConfig] PASSED [ 41%] test/test_manager.py::test_mode_chord[1-wayland-_ChordsConfig] PASSED [ 41%] test/test_manager.py::test_chord_stack[1-x11-_ChordsConfig] PASSED [ 42%] test/test_manager.py::test_chord_stack[1-wayland-_ChordsConfig] PASSED [ 42%] test/test_manager.py::test_spawn[1-x11-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_spawn[1-wayland-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_spawn_list[1-x11-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_spawn_list[1-wayland-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_spawn_in_group[1-x11-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_spawn_in_group[1-wayland-ManagerConfig] SKIPPED [ 42%] test/test_manager.py::test_kill_window[1-x11-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_kill_window[1-wayland-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_kill_other[1-x11-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_kill_other[1-wayland-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_regression_groupswitch[1-x11-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_regression_groupswitch[1-wayland-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_next_layout[1-x11-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_next_layout[1-wayland-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_setlayout[1-x11-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_setlayout[1-wayland-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_to_layout_index[1-x11-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_to_layout_index[1-wayland-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_adddelgroup[1-x11-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_adddelgroup[1-wayland-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_addgroupat[1-x11-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_addgroupat[1-wayland-ManagerConfig] PASSED [ 42%] test/test_manager.py::test_delgroup[1-x11-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_delgroup[1-wayland-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_nextprevgroup[1-x11-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_nextprevgroup[1-wayland-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_nextprevgroup_reload[1-x11] PASSED [ 43%] test/test_manager.py::test_nextprevgroup_reload[1-wayland] PASSED [ 43%] test/test_manager.py::test_toggle_group[1-x11-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_toggle_group[1-wayland-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_static[1-x11-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_static[1-wayland-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_match[1-x11-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_match[1-wayland-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_default_float[1-x11-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_default_float[1-wayland-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_last_float_size[1-x11-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_last_float_size[1-wayland-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_float_max_min_combo[1-x11-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_float_max_min_combo[1-wayland-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_toggle_fullscreen[1-x11-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_toggle_fullscreen[1-wayland-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_toggle_max[1-x11-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_toggle_max[1-wayland-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_toggle_min[1-x11-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_toggle_min[1-wayland-ManagerConfig] PASSED [ 43%] test/test_manager.py::test_toggle_floating[1-x11-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_toggle_floating[1-wayland-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_floating_focus[1-x11-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_floating_focus[1-wayland-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_move_floating[1-x11-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_move_floating[1-wayland-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_one_screen[1-x11-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_one_screen[1-wayland-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_two_screens[x11-ManagerConfig-2] PASSED [ 44%] test/test_manager.py::test_two_screens[wayland-ManagerConfig-2] PASSED [ 44%] test/test_manager.py::test_focus_stays_on_layout_switch[1-x11-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_focus_stays_on_layout_switch[1-wayland-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_map_request[1-x11-BareConfig] PASSED [ 44%] test/test_manager.py::test_map_request[1-x11-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_map_request[1-wayland-BareConfig] PASSED [ 44%] test/test_manager.py::test_map_request[1-wayland-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_unmap[1-x11-BareConfig] PASSED [ 44%] test/test_manager.py::test_unmap[1-x11-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_unmap[1-wayland-BareConfig] PASSED [ 44%] test/test_manager.py::test_unmap[1-wayland-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_setgroup[x11-1-BareConfig] PASSED [ 44%] test/test_manager.py::test_setgroup[x11-1-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_setgroup[wayland-1-BareConfig] PASSED [ 44%] test/test_manager.py::test_setgroup[wayland-1-ManagerConfig] PASSED [ 44%] test/test_manager.py::test_unmap_noscreen[x11-1-BareConfig] PASSED [ 45%] test/test_manager.py::test_unmap_noscreen[x11-1-ManagerConfig] PASSED [ 45%] test/test_manager.py::test_unmap_noscreen[wayland-1-BareConfig] PASSED [ 45%] test/test_manager.py::test_unmap_noscreen[wayland-1-ManagerConfig] PASSED [ 45%] test/test_manager.py::test_labelgroup[1-x11-ManagerConfig] PASSED [ 45%] test/test_manager.py::test_labelgroup[1-wayland-ManagerConfig] PASSED [ 45%] test/test_manager.py::test_change_loglevel[1-x11-ManagerConfig] PASSED [ 45%] test/test_manager.py::test_change_loglevel[1-wayland-ManagerConfig] PASSED [ 45%] test/test_manager.py::test_switch_groups_cursor_warp[1-x11] PASSED [ 45%] test/test_manager.py::test_switch_groups_cursor_warp[1-wayland] PASSED [ 45%] test/test_manager.py::test_reload_config[1-x11] PASSED [ 45%] test/test_manager.py::test_reload_config[1-wayland] PASSED [ 45%] test/test_manager.py::test_windows_from_commands[1-x11-CommandsConfig] PASSED [ 45%] test/test_manager.py::test_windows_from_commands[1-wayland-CommandsConfig] PASSED [ 45%] test/test_manager.py::test_widget_duplicate_names[1-x11-DuplicateWidgetsConfig] PASSED [ 45%] test/test_manager.py::test_widget_duplicate_names[1-wayland-DuplicateWidgetsConfig] PASSED [ 45%] test/test_manager.py::test_widget_duplicate_warnings[1-x11-DuplicateWidgetsConfig] PASSED [ 45%] test/test_manager.py::test_widget_duplicate_warnings[1-wayland-DuplicateWidgetsConfig] PASSED [ 45%] test/test_match.py::test_single_rule[1-x11-normal-False-manager0] PASSED [ 45%] test/test_match.py::test_single_rule[1-x11-floatme-True-manager0] PASSED [ 45%] test/test_match.py::test_single_rule[1-x11-floatmetoo-False-manager0] PASSED [ 45%] test/test_match.py::test_single_rule[1-wayland-normal-False-manager0] PASSED [ 45%] test/test_match.py::test_single_rule[1-wayland-floatme-True-manager0] PASSED [ 45%] test/test_match.py::test_single_rule[1-wayland-floatmetoo-False-manager0] PASSED [ 45%] test/test_match.py::test_single_regex_rule[1-x11-normal-False-manager0] PASSED [ 46%] test/test_match.py::test_single_regex_rule[1-x11-floatme-True-manager0] PASSED [ 46%] test/test_match.py::test_single_regex_rule[1-x11-floatmetoo-True-manager0] PASSED [ 46%] test/test_match.py::test_single_regex_rule[1-wayland-normal-False-manager0] PASSED [ 46%] test/test_match.py::test_single_regex_rule[1-wayland-floatme-True-manager0] PASSED [ 46%] test/test_match.py::test_single_regex_rule[1-wayland-floatmetoo-True-manager0] PASSED [ 46%] test/test_match.py::test_not_rule[1-x11-normal-True-manager0] PASSED [ 46%] test/test_match.py::test_not_rule[1-x11-floatme-False-manager0] PASSED [ 46%] test/test_match.py::test_not_rule[1-x11-floatmetoo-True-manager0] PASSED [ 46%] test/test_match.py::test_not_rule[1-wayland-normal-True-manager0] PASSED [ 46%] test/test_match.py::test_not_rule[1-wayland-floatme-False-manager0] PASSED [ 46%] test/test_match.py::test_not_rule[1-wayland-floatmetoo-True-manager0] PASSED [ 46%] test/test_match.py::test_or_rule[1-x11-normal-False-manager0] PASSED [ 46%] test/test_match.py::test_or_rule[1-x11-floatme-True-manager0] PASSED [ 46%] test/test_match.py::test_or_rule[1-x11-floating-True-manager0] PASSED [ 46%] test/test_match.py::test_or_rule[1-x11-floatmetoo-False-manager0] PASSED [ 46%] test/test_match.py::test_or_rule[1-wayland-normal-False-manager0] PASSED [ 46%] test/test_match.py::test_or_rule[1-wayland-floatme-True-manager0] PASSED [ 46%] test/test_match.py::test_or_rule[1-wayland-floating-True-manager0] PASSED [ 46%] test/test_match.py::test_or_rule[1-wayland-floatmetoo-False-manager0] PASSED [ 46%] test/test_match.py::test_and_rule[1-x11-normal-False-manager0] PASSED [ 46%] test/test_match.py::test_and_rule[1-x11-floatme-False-manager0] PASSED [ 46%] test/test_match.py::test_and_rule[1-x11-floatmetoo-True-manager0] PASSED [ 46%] test/test_match.py::test_and_rule[1-wayland-normal-False-manager0] PASSED [ 46%] test/test_match.py::test_and_rule[1-wayland-floatme-False-manager0] PASSED [ 47%] test/test_match.py::test_and_rule[1-wayland-floatmetoo-True-manager0] PASSED [ 47%] test/test_match.py::test_xor_rule[1-x11-normal-False-manager0] PASSED [ 47%] test/test_match.py::test_xor_rule[1-x11-floatme-True-manager0] PASSED [ 47%] test/test_match.py::test_xor_rule[1-x11-floatmetoo-False-manager0] PASSED [ 47%] test/test_match.py::test_xor_rule[1-x11-thisfloatstoo-True-manager0] PASSED [ 47%] test/test_match.py::test_xor_rule[1-wayland-normal-False-manager0] PASSED [ 47%] test/test_match.py::test_xor_rule[1-wayland-floatme-True-manager0] PASSED [ 47%] test/test_match.py::test_xor_rule[1-wayland-floatmetoo-False-manager0] PASSED [ 47%] test/test_match.py::test_xor_rule[1-wayland-thisfloatstoo-True-manager0] PASSED [ 47%] test/test_popup.py::test_popup_focus[1-x11] PASSED [ 47%] test/test_popup.py::test_popup_focus[1-wayland] PASSED [ 47%] test/test_qtile_cmd.py::test_qtile_cmd[1-x11-ServerConfig] PASSED [ 47%] test/test_qtile_cmd.py::test_qtile_cmd[1-wayland-ServerConfig] PASSED [ 47%] test/test_qtile_cmd.py::test_display_kb[1-x11-ServerConfig] PASSED [ 47%] test/test_qtile_cmd.py::test_display_kb[1-wayland-ServerConfig] PASSED [ 47%] test/test_qtile_cmd.py::test_cmd_obj_root_node[1-x11-ServerConfig] PASSED [ 47%] test/test_qtile_cmd.py::test_cmd_obj_root_node[1-wayland-ServerConfig] PASSED [ 47%] test/test_qtile_cmd.py::test_cmd_obj_kwarg[1-x11-ServerConfig] PASSED [ 47%] test/test_qtile_cmd.py::test_cmd_obj_kwarg[1-wayland-ServerConfig] PASSED [ 47%] test/test_restart.py::test_restart_hook_and_state[1-x11] PASSED [ 47%] test/test_restart.py::test_restart_hook_and_state[1-wayland] SKIPPED [ 47%] test/test_scratchpad.py::test_sratchpad_with_matcher[1-x11-ScratchPadBaseConfig] PASSED [ 47%] test/test_scratchpad.py::test_sratchpad_with_matcher[1-wayland-ScratchPadBaseConfig] PASSED [ 47%] test/test_scratchpad.py::test_toggling_single[1-x11-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_toggling_single[1-wayland-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_toggling[1-x11-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_toggling[1-wayland-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_focus_cycle[1-x11-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_focus_cycle[1-wayland-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_focus_lost_hide[1-x11-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_focus_lost_hide[1-wayland-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_kill[1-x11-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_kill[1-wayland-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_floating_toggle[1-x11-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_floating_toggle[1-wayland-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_stepping_between_groups_should_skip_scratchpads[1-x11-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_stepping_between_groups_should_skip_scratchpads[1-wayland-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_skip_taskbar[1-x11-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_skip_taskbar[1-wayland-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_geometry[1-x11-ScratchPadBaseConfig] PASSED [ 48%] test/test_scratchpad.py::test_geometry[1-wayland-ScratchPadBaseConfig] PASSED [ 48%] test/test_sh.py::test_columnize[1-x11-ShConfig] PASSED [ 48%] test/test_sh.py::test_columnize[1-wayland-ShConfig] PASSED [ 48%] test/test_sh.py::test_ls[1-x11-ShConfig] PASSED [ 48%] test/test_sh.py::test_ls[1-wayland-ShConfig] PASSED [ 48%] test/test_sh.py::test_do_cd[1-x11-ShConfig] PASSED [ 48%] test/test_sh.py::test_do_cd[1-wayland-ShConfig] PASSED [ 48%] test/test_sh.py::test_call[1-x11-ShConfig] PASSED [ 49%] test/test_sh.py::test_call[1-wayland-ShConfig] PASSED [ 49%] test/test_sh.py::test_complete[1-x11-ShConfig] PASSED [ 49%] test/test_sh.py::test_complete[1-wayland-ShConfig] PASSED [ 49%] test/test_sh.py::test_help[1-x11-ShConfig] PASSED [ 49%] test/test_sh.py::test_help[1-wayland-ShConfig] PASSED [ 49%] test/test_sh.py::test_eval[1-x11-ShConfig] PASSED [ 49%] test/test_sh.py::test_eval[1-wayland-ShConfig] PASSED [ 49%] test/test_sh.py::test_comma_splitting[1-x11-ShConfig] PASSED [ 49%] test/test_sh.py::test_comma_splitting[1-wayland-ShConfig] PASSED [ 49%] test/test_swallow.py::test_swallow[1-x11-SwallowConfig] PASSED [ 49%] test/test_swallow.py::test_swallow[1-wayland-SwallowConfig] PASSED [ 49%] test/test_when.py::test_when[1-x11-WhenConfig] PASSED [ 49%] test/test_when.py::test_when[1-wayland-WhenConfig] PASSED [ 49%] test/test_window.py::test_info[1-x11-BareConfig] PASSED [ 49%] test/test_window.py::test_info[1-wayland-BareConfig] PASSED [ 49%] test/test_window.py::test_is_visible_hidden[1-x11-BareConfig] PASSED [ 49%] test/test_window.py::test_is_visible_hidden[1-wayland-BareConfig] PASSED [ 49%] test/test_window.py::test_is_visible_minimized[1-x11-BareConfig] PASSED [ 49%] test/test_window.py::test_is_visible_minimized[1-wayland-BareConfig] PASSED [ 49%] test/test_window.py::test_margin[1-x11-BareConfig] PASSED [ 49%] test/test_window.py::test_margin[1-wayland-BareConfig] PASSED [ 49%] test/test_window.py::test_no_size_hint[1-x11-BareConfig] PASSED [ 49%] test/test_window.py::test_no_size_hint[1-wayland-BareConfig] PASSED [ 50%] test/test_window.py::test_togroup_toggle[1-x11-BareConfig] PASSED [ 50%] test/test_window.py::test_togroup_toggle[1-wayland-BareConfig] PASSED [ 50%] test/test_window.py::test_bring_front_click[1-x11-ManagerConfig-False] PASSED [ 50%] test/test_window.py::test_bring_front_click[1-x11-BringFrontClickConfig-True] PASSED [ 50%] test/test_window.py::test_bring_front_click[1-x11-BringFrontClickFloatingOnlyConfig-floating_only] PASSED [ 50%] test/test_window.py::test_bring_front_click[1-wayland-ManagerConfig-False] SKIPPED [ 50%] test/test_window.py::test_bring_front_click[1-wayland-BringFrontClickConfig-True] SKIPPED [ 50%] test/test_window.py::test_bring_front_click[1-wayland-BringFrontClickFloatingOnlyConfig-floating_only] SKIPPED [ 50%] test/test_window.py::test_center_window[x11-BareConfig-2] PASSED [ 50%] test/test_window.py::test_center_window[wayland-BareConfig-2] PASSED [ 50%] test/test_window.py::test_set_position[1-x11-PositionConfig] PASSED [ 50%] test/test_window.py::test_set_position[1-wayland-PositionConfig] PASSED [ 50%] test/test_window.py::test_focus_switch[1-x11-WindowNameConfig] PASSED [ 50%] test/test_window.py::test_focus_switch[1-wayland-WindowNameConfig] PASSED [ 50%] test/test_window.py::test_can_steal_focus[1-x11] PASSED [ 50%] test/test_window.py::test_can_steal_focus[1-wayland] PASSED [ 50%] test/test_window.py::test_follow_mouse_focus[1-x11-FollowMuseFocus-True] PASSED [ 50%] test/test_window.py::test_follow_mouse_focus[1-x11-FollowMuseFocusFalse-False] PASSED [ 50%] test/test_window.py::test_follow_mouse_focus[1-x11-FollowMuseFocusClickOrDragOnly-click_or_drag_only] PASSED [ 50%] test/test_window.py::test_follow_mouse_focus[1-wayland-FollowMuseFocus-True] PASSED [ 50%] test/test_window.py::test_follow_mouse_focus[1-wayland-FollowMuseFocusFalse-False] PASSED [ 50%] test/test_window.py::test_follow_mouse_focus[1-wayland-FollowMuseFocusClickOrDragOnly-click_or_drag_only] PASSED [ 50%] test/test_window.py::test_window_stacking_order[1-x11-ManagerConfig] PASSED [ 50%] test/test_window.py::test_window_stacking_order[1-wayland-ManagerConfig] PASSED [ 51%] test/test_window.py::test_floats_kept_above[1-x11-ManagerConfig] PASSED [ 51%] test/test_window.py::test_floats_kept_above[1-wayland-ManagerConfig] PASSED [ 51%] test/test_window.py::test_fullscreen_on_top[1-x11-ManagerConfig] PASSED [ 51%] test/test_window.py::test_fullscreen_on_top[1-wayland-ManagerConfig] SKIPPED [ 51%] test/test_window.py::test_move_float_above_tiled[1-x11-ManagerConfig] PASSED [ 51%] test/test_window.py::test_move_float_above_tiled[1-x11-UnpinFloatsConfig] PASSED [ 51%] test/test_window.py::test_move_float_above_tiled[1-wayland-ManagerConfig] PASSED [ 51%] test/test_window.py::test_move_float_above_tiled[1-wayland-UnpinFloatsConfig] PASSED [ 51%] test/widgets/test_base.py::test_multiple_timers[1-x11] PASSED [ 51%] test/widgets/test_base.py::test_multiple_timers[1-wayland] PASSED [ 51%] test/widgets/test_base.py::test_mirrors_same_bar[1-x11] PASSED [ 51%] test/widgets/test_base.py::test_mirrors_same_bar[1-wayland] PASSED [ 51%] test/widgets/test_base.py::test_mirrors_different_bar[1-x11] PASSED [ 51%] test/widgets/test_base.py::test_mirrors_different_bar[1-wayland] PASSED [ 51%] test/widgets/test_base.py::test_mirrors_stretch[1-x11] PASSED [ 51%] test/widgets/test_base.py::test_mirrors_stretch[1-wayland] PASSED [ 51%] test/widgets/test_base.py::test_threadpolltext_force_update[1-x11] PASSED [ 51%] test/widgets/test_base.py::test_threadpolltext_force_update[1-wayland] PASSED [ 51%] test/widgets/test_base.py::test_threadpolltext_update_interval_none[1-x11] PASSED [ 51%] test/widgets/test_base.py::test_threadpolltext_update_interval_none[1-wayland] PASSED [ 51%] test/widgets/test_base.py::test_text_scroll_no_width[1-x11-ScrollingTextConfig] PASSED [ 51%] test/widgets/test_base.py::test_text_scroll_no_width[1-wayland-ScrollingTextConfig] PASSED [ 51%] test/widgets/test_base.py::test_text_scroll_short_text[1-x11-ScrollingTextConfig] PASSED [ 51%] test/widgets/test_base.py::test_text_scroll_short_text[1-wayland-ScrollingTextConfig] PASSED [ 52%] test/widgets/test_base.py::test_text_scroll_long_text[1-x11-ScrollingTextConfig] PASSED [ 52%] test/widgets/test_base.py::test_text_scroll_long_text[1-wayland-ScrollingTextConfig] PASSED [ 52%] test/widgets/test_base.py::test_scroll_fixed_width[1-x11-ScrollingTextConfig] PASSED [ 52%] test/widgets/test_base.py::test_scroll_fixed_width[1-wayland-ScrollingTextConfig] PASSED [ 52%] test/widgets/test_bluetooth.py::test_defaults[1-x11] PASSED [ 52%] test/widgets/test_bluetooth.py::test_defaults[1-wayland] PASSED [ 52%] test/widgets/test_bluetooth.py::test_device_actions[1-x11] PASSED [ 52%] test/widgets/test_bluetooth.py::test_device_actions[1-wayland] PASSED [ 52%] test/widgets/test_bluetooth.py::test_adapter_actions[1-x11] PASSED [ 52%] test/widgets/test_bluetooth.py::test_adapter_actions[1-wayland] PASSED [ 52%] test/widgets/test_bluetooth.py::test_custom_symbols[1-x11-bluetooth_manager0] ERROR [ 52%] test/widgets/test_bluetooth.py::test_custom_symbols[1-wayland-bluetooth_manager0] PASSED [ 52%] test/widgets/test_bluetooth.py::test_default_show_battery[1-x11-bluetooth_manager0] PASSED [ 52%] test/widgets/test_bluetooth.py::test_default_show_battery[1-wayland-bluetooth_manager0] PASSED [ 52%] test/widgets/test_bluetooth.py::test_missing_adapter[1-x11-bluetooth_manager0] PASSED [ 52%] test/widgets/test_bluetooth.py::test_missing_adapter[1-wayland-bluetooth_manager0] PASSED [ 52%] test/widgets/test_bluetooth.py::test_default_text[1-x11-bluetooth_manager0] PASSED [ 52%] test/widgets/test_bluetooth.py::test_default_text[1-wayland-bluetooth_manager0] PASSED [ 52%] test/widgets/test_bluetooth.py::test_default_device[1-x11-bluetooth_manager0] PASSED [ 52%] test/widgets/test_bluetooth.py::test_default_device[1-wayland-bluetooth_manager0] PASSED [ 52%] test/widgets/test_check_updates.py::test_update_available_with_execute[1-x11] PASSED [ 52%] test/widgets/test_check_updates.py::test_update_available_with_execute[1-wayland] PASSED [ 52%] test/widgets/test_chord.py::test_chord_persistence[1-x11-ChordConf] PASSED [ 52%] test/widgets/test_chord.py::test_chord_persistence[1-wayland-ChordConf] PASSED [ 53%] test/widgets/test_clipboard.py::test_clipboard_display[1-x11] PASSED [ 53%] test/widgets/test_clipboard.py::test_clipboard_display[1-wayland] SKIPPED [ 53%] test/widgets/test_clipboard.py::test_clipboard_display_full_text[1-x11-clipboard_manager0] PASSED [ 53%] test/widgets/test_clipboard.py::test_clipboard_display_full_text[1-wayland-clipboard_manager0] SKIPPED [ 53%] test/widgets/test_clipboard.py::test_clipboard_blacklist[1-x11-clipboard_manager0] ERROR [ 53%] test/widgets/test_clipboard.py::test_clipboard_blacklist[1-wayland-clipboard_manager0] SKIPPED [ 53%] test/widgets/test_clipboard.py::test_clipboard_ignore_different_selection[1-x11] PASSED [ 53%] test/widgets/test_clipboard.py::test_clipboard_ignore_different_selection[1-wayland] SKIPPED [ 53%] test/widgets/test_clipboard.py::test_clipboard_display_clear[1-x11-clipboard_manager0] PASSED [ 53%] test/widgets/test_clipboard.py::test_clipboard_display_clear[1-wayland-clipboard_manager0] SKIPPED [ 53%] test/widgets/test_clipboard.py::test_clipboard_display_multiple_changes[1-x11] PASSED [ 53%] test/widgets/test_clipboard.py::test_clipboard_display_multiple_changes[1-wayland] SKIPPED [ 53%] test/widgets/test_configerror.py::test_configerrorwidget[1-x11-top] PASSED [ 53%] test/widgets/test_configerror.py::test_configerrorwidget[1-x11-bottom] PASSED [ 53%] test/widgets/test_configerror.py::test_configerrorwidget[1-x11-left] PASSED [ 53%] test/widgets/test_configerror.py::test_configerrorwidget[1-x11-right] PASSED [ 53%] test/widgets/test_configerror.py::test_configerrorwidget[1-wayland-top] PASSED [ 53%] test/widgets/test_configerror.py::test_configerrorwidget[1-wayland-bottom] PASSED [ 53%] test/widgets/test_configerror.py::test_configerrorwidget[1-wayland-left] PASSED [ 53%] test/widgets/test_configerror.py::test_configerrorwidget[1-wayland-right] PASSED [ 53%] test/widgets/test_cpu.py::test_cpu[1-x11] PASSED [ 53%] test/widgets/test_cpu.py::test_cpu[1-wayland] PASSED [ 53%] test/widgets/test_crashme.py::test_crashme_init[1-x11] PASSED [ 53%] test/widgets/test_crashme.py::test_crashme_init[1-wayland] PASSED [ 54%] test/widgets/test_currentlayout.py::test_current_layout[1-x11] PASSED [ 54%] test/widgets/test_currentlayout.py::test_current_layout[1-wayland] PASSED [ 54%] test/widgets/test_currentlayout.py::test_current_layout_icon_mode[1-x11] FAILED [ 54%] test/widgets/test_currentlayout.py::test_current_layout_icon_mode[1-wayland] FAILED [ 54%] test/widgets/test_currentlayout.py::test_current_layout_text_mode[1-x11] FAILED [ 54%] test/widgets/test_currentlayout.py::test_current_layout_text_mode[1-wayland] FAILED [ 54%] test/widgets/test_currentlayout.py::test_current_layout_both_mode[1-x11] FAILED [ 54%] test/widgets/test_currentlayout.py::test_current_layout_both_mode[1-wayland] FAILED [ 54%] test/widgets/test_currentscreen.py::test_change_screen[x11-2] PASSED [ 54%] test/widgets/test_currentscreen.py::test_change_screen[wayland-2] PASSED [ 54%] test/widgets/test_do_not_disturb.py::test_dnd[1-x11] PASSED [ 54%] test/widgets/test_do_not_disturb.py::test_dnd[1-wayland] PASSED [ 54%] test/widgets/test_do_not_disturb.py::test_dnd_custom_func[1-x11-dnd_manager0] PASSED [ 54%] test/widgets/test_do_not_disturb.py::test_dnd_custom_func[1-wayland-dnd_manager0] PASSED [ 54%] test/widgets/test_do_not_disturb.py::test_dnd_custom_icons[1-x11-dnd_manager0] PASSED [ 54%] test/widgets/test_do_not_disturb.py::test_dnd_custom_icons[1-wayland-dnd_manager0] PASSED [ 54%] test/widgets/test_generic_poll_text.py::test_gen_poll_command[1-x11] PASSED [ 54%] test/widgets/test_generic_poll_text.py::test_gen_poll_command[1-wayland] PASSED [ 54%] test/widgets/test_groupbox.py::test_groupbox_markup[1-x11-GroupBoxConfig] PASSED [ 54%] test/widgets/test_groupbox.py::test_groupbox_markup[1-wayland-GroupBoxConfig] PASSED [ 54%] test/widgets/test_hdd.py::test_hdd[1-x11] PASSED [ 54%] test/widgets/test_hdd.py::test_hdd[1-wayland] PASSED [ 54%] test/widgets/test_hide_crash.py::test_hide_crashed_widget[1-x11-CrashConfig] ERROR [ 54%] test/widgets/test_hide_crash.py::test_hide_crashed_widget[1-wayland-CrashConfig] ERROR [ 55%] test/widgets/test_image.py::test_default_settings[1-x11-screen0-top-height] FAILED [ 55%] test/widgets/test_image.py::test_default_settings[1-x11-screen1-left-width] FAILED [ 55%] test/widgets/test_image.py::test_default_settings[1-wayland-screen0-top-height] FAILED [ 55%] test/widgets/test_image.py::test_default_settings[1-wayland-screen1-left-width] PASSED [ 55%] test/widgets/test_image.py::test_no_filename[1-x11-screen0-top-width] PASSED [ 55%] test/widgets/test_image.py::test_no_filename[1-x11-screen1-left-height] PASSED [ 55%] test/widgets/test_image.py::test_no_filename[1-wayland-screen0-top-width] PASSED [ 55%] test/widgets/test_image.py::test_no_filename[1-wayland-screen1-left-height] PASSED [ 55%] test/widgets/test_image.py::test_missing_file[1-x11] PASSED [ 55%] test/widgets/test_image.py::test_missing_file[1-wayland] PASSED [ 55%] test/widgets/test_image.py::test_no_scale[1-x11] FAILED [ 55%] test/widgets/test_image.py::test_no_scale[1-wayland] PASSED [ 55%] test/widgets/test_image.py::test_no_image[1-x11] PASSED [ 55%] test/widgets/test_image.py::test_no_image[1-wayland] PASSED [ 55%] test/widgets/test_image.py::test_invalid_path[1-x11] PASSED [ 55%] test/widgets/test_image.py::test_invalid_path[1-wayland] PASSED [ 55%] test/widgets/test_import_error.py::test_importerrorwidget[1-x11-top] PASSED [ 55%] test/widgets/test_import_error.py::test_importerrorwidget[1-x11-bottom] PASSED [ 55%] test/widgets/test_import_error.py::test_importerrorwidget[1-x11-left] PASSED [ 55%] test/widgets/test_import_error.py::test_importerrorwidget[1-x11-right] PASSED [ 55%] test/widgets/test_import_error.py::test_importerrorwidget[1-wayland-top] PASSED [ 55%] test/widgets/test_import_error.py::test_importerrorwidget[1-wayland-bottom] PASSED [ 55%] test/widgets/test_import_error.py::test_importerrorwidget[1-wayland-left] PASSED [ 55%] test/widgets/test_import_error.py::test_importerrorwidget[1-wayland-right] PASSED [ 56%] test/widgets/test_launchbar.py::test_tasklist_defaults[1-x11-top] ERROR [ 56%] test/widgets/test_launchbar.py::test_tasklist_defaults[1-x11-left] PASSED [ 56%] test/widgets/test_launchbar.py::test_tasklist_defaults[1-wayland-top] PASSED [ 56%] test/widgets/test_launchbar.py::test_tasklist_defaults[1-wayland-left] PASSED [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-x11-progs0-top-coords0-one] PASSED [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-x11-progs0-top-coords1-two] ERROR [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-x11-progs0-left-coords2-one] PASSED [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-x11-progs0-left-coords3-two] PASSED [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-x11-progs0-right-coords4-one] ERROR [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-x11-progs0-right-coords5-two] PASSED [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-wayland-progs0-top-coords0-one] ERROR [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-wayland-progs0-top-coords1-two] PASSED [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-wayland-progs0-left-coords2-one] ERROR [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-wayland-progs0-left-coords3-two] PASSED [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-wayland-progs0-right-coords4-one] ERROR [ 56%] test/widgets/test_launchbar.py::test_launchbar_click[1-wayland-progs0-right-coords5-two] PASSED [ 56%] test/widgets/test_load.py::test_load_times_button_click[1-x11] PASSED [ 56%] test/widgets/test_load.py::test_load_times_button_click[1-wayland] PASSED [ 56%] test/widgets/test_load.py::test_load_times_command[1-x11] PASSED [ 56%] test/widgets/test_load.py::test_load_times_command[1-wayland] PASSED [ 56%] test/widgets/test_load.py::test_load_times_formatting[1-x11-load_manager0] PASSED [ 56%] test/widgets/test_load.py::test_load_times_formatting[1-wayland-load_manager0] PASSED [ 56%] test/widgets/test_memory.py::test_memory_defaults[1-x11] PASSED [ 56%] test/widgets/test_memory.py::test_memory_defaults[1-wayland] PASSED [ 57%] test/widgets/test_memory.py::test_memory_units[1-x11-G- 2G/ 8G] PASSED [ 57%] test/widgets/test_memory.py::test_memory_units[1-x11-M- 2417M/ 7802M] PASSED [ 57%] test/widgets/test_memory.py::test_memory_units[1-x11-K- 2474864K/ 7988952K] PASSED [ 57%] test/widgets/test_memory.py::test_memory_units[1-x11-B- 2534260736B/ 8180686848B] PASSED [ 57%] test/widgets/test_memory.py::test_memory_units[1-wayland-G- 2G/ 8G] PASSED [ 57%] test/widgets/test_memory.py::test_memory_units[1-wayland-M- 2417M/ 7802M] PASSED [ 57%] test/widgets/test_memory.py::test_memory_units[1-wayland-K- 2474864K/ 7988952K] PASSED [ 57%] test/widgets/test_memory.py::test_memory_units[1-wayland-B- 2534260736B/ 8180686848B] PASSED [ 57%] test/widgets/test_misc.py::test_textbox_color_change[1-x11-WidgetTestConf] PASSED [ 57%] test/widgets/test_misc.py::test_textbox_color_change[1-wayland-WidgetTestConf] PASSED [ 57%] test/widgets/test_mouse_callback.py::test_lazy_callback[1-x11] PASSED [ 57%] test/widgets/test_mouse_callback.py::test_lazy_callback[1-wayland] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_display_and_actions[1-x11] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_display_and_actions[1-wayland] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_extra_info[1-x11] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_extra_info[1-wayland] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_idle_message[1-x11] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_idle_message[1-wayland] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_current_song[1-x11-mpd2_manager0] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_current_song[1-wayland-mpd2_manager0] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_custom_undefined_value[1-x11-mpd2_manager0] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_custom_undefined_value[1-wayland-mpd2_manager0] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_dynamic_artist_value[1-x11] PASSED [ 57%] test/widgets/test_mpd2widget.py::test_mpd2_widget_dynamic_artist_value[1-wayland] PASSED [ 58%] test/widgets/test_notify.py::test_notifications[1-x11] PASSED [ 58%] test/widgets/test_notify.py::test_notifications[1-wayland] PASSED [ 58%] test/widgets/test_notify.py::test_invoke_and_clear[1-x11] PASSED [ 58%] test/widgets/test_notify.py::test_invoke_and_clear[1-wayland] PASSED [ 58%] test/widgets/test_notify.py::test_parse_text[1-x11] PASSED [ 58%] test/widgets/test_notify.py::test_parse_text[1-wayland] PASSED [ 58%] test/widgets/test_notify.py::test_unregister[1-x11] PASSED [ 58%] test/widgets/test_notify.py::test_unregister[1-wayland] PASSED [ 58%] test/widgets/test_notify.py::test_notifications_default_timeouts[1-x11-0-15] PASSED [ 58%] test/widgets/test_notify.py::test_notifications_default_timeouts[1-x11-1-30] PASSED [ 58%] test/widgets/test_notify.py::test_notifications_default_timeouts[1-x11-2-45] PASSED [ 58%] test/widgets/test_notify.py::test_notifications_default_timeouts[1-wayland-0-15] PASSED [ 58%] test/widgets/test_notify.py::test_notifications_default_timeouts[1-wayland-1-30] PASSED [ 58%] test/widgets/test_notify.py::test_notifications_default_timeouts[1-wayland-2-45] FAILED [ 58%] test/widgets/test_plasma.py::test_plasma_defaults[1-x11] PASSED [ 58%] test/widgets/test_plasma.py::test_plasma_defaults[1-wayland] PASSED [ 58%] test/widgets/test_plasma.py::test_custom_text[1-x11-plasma_manager0] ERROR [ 58%] test/widgets/test_plasma.py::test_custom_text[1-wayland-plasma_manager0] PASSED [ 58%] test/widgets/test_plasma.py::test_window_focus_change[1-x11-plasma_manager0] PASSED [ 58%] test/widgets/test_plasma.py::test_window_focus_change[1-wayland-plasma_manager0] PASSED [ 58%] test/widgets/test_plasma.py::test_mode_change[1-x11-plasma_manager0] ERROR [ 58%] test/widgets/test_plasma.py::test_mode_change[1-wayland-plasma_manager0] PASSED [ 58%] test/widgets/test_prompt.py::test_prompt_focus[1-x11] FAILED [ 58%] test/widgets/test_prompt.py::test_prompt_focus[1-wayland] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_input[1-x11-line] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_input[1-x11-block] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_input[1-x11-bar] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_input[1-x11-none] FAILED [ 59%] test/widgets/test_prompt.py::test_prompt_input[1-wayland-line] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_input[1-wayland-block] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_input[1-wayland-bar] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_input[1-wayland-none] FAILED [ 59%] test/widgets/test_prompt.py::test_prompt_text_escape[1-x11-line] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_text_escape[1-x11-block] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_text_escape[1-x11-bar] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_text_escape[1-x11-none] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_text_escape[1-wayland-line] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_text_escape[1-wayland-block] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_text_escape[1-wayland-bar] PASSED [ 59%] test/widgets/test_prompt.py::test_prompt_text_escape[1-wayland-none] PASSED [ 59%] test/widgets/test_quickexit.py::test_trigger_and_cancel[1-x11] PASSED [ 59%] test/widgets/test_quickexit.py::test_trigger_and_cancel[1-wayland] PASSED [ 59%] test/widgets/test_quickexit.py::test_exit[1-x11] PASSED [ 59%] test/widgets/test_quickexit.py::test_exit[1-wayland] PASSED [ 59%] test/widgets/test_redshift.py::test_defaults[1-x11] PASSED [ 59%] test/widgets/test_redshift.py::test_defaults[1-wayland] SKIPPED [ 59%] test/widgets/test_redshift.py::test_changed_default_txt_non_fmted[1-x11-redshift_manager0] PASSED [ 60%] test/widgets/test_redshift.py::test_changed_default_txt_non_fmted[1-wayland-redshift_manager0] SKIPPED [ 60%] test/widgets/test_redshift.py::test_changed_default_txt_fmted[1-x11-redshift_manager0] PASSED [ 60%] test/widgets/test_redshift.py::test_changed_default_txt_fmted[1-wayland-redshift_manager0] SKIPPED [ 60%] test/widgets/test_redshift.py::test_increase_decrease_temp_brightness[1-x11-redshift_manager0] PASSED [ 60%] test/widgets/test_redshift.py::test_increase_decrease_temp_brightness[1-wayland-redshift_manager0] SKIPPED [ 60%] test/widgets/test_screensplit.py::test_screensplit_text[1-x11-ScreenSplitConfig] PASSED [ 60%] test/widgets/test_screensplit.py::test_screensplit_text[1-wayland-ScreenSplitConfig] PASSED [ 60%] test/widgets/test_screensplit.py::test_screensplit_scroll_actions[1-x11-ScreenSplitConfig] PASSED [ 60%] test/widgets/test_screensplit.py::test_screensplit_scroll_actions[1-wayland-ScreenSplitConfig] PASSED [ 60%] test/widgets/test_screensplit.py::test_screensplit_text_format[1-x11-ScreenSplitConfig] PASSED [ 60%] test/widgets/test_screensplit.py::test_screensplit_text_format[1-wayland-ScreenSplitConfig] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_metric[1-x11] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_metric[1-wayland] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_imperial[1-x11-sensors_manager0] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_imperial[1-wayland-sensors_manager0] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_tagged_sensor[1-x11-sensors_manager0] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_tagged_sensor[1-wayland-sensors_manager0] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_unknown_sensor[1-x11-sensors_manager0] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_unknown_sensor[1-wayland-sensors_manager0] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_format[1-x11-sensors_manager0] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_format[1-wayland-sensors_manager0] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_colour_normal[1-x11] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_colour_normal[1-wayland] PASSED [ 60%] test/widgets/test_sensors.py::test_thermal_sensor_colour_alert[1-x11-sensors_manager0] PASSED [ 61%] test/widgets/test_sensors.py::test_thermal_sensor_colour_alert[1-wayland-sensors_manager0] PASSED [ 61%] test/widgets/test_sensors.py::test_thermal_sensor_widget_defaults[1-x11-sensors_manager0] PASSED [ 61%] test/widgets/test_sensors.py::test_thermal_sensor_widget_defaults[1-wayland-sensors_manager0] PASSED [ 61%] test/widgets/test_sep.py::test_orientations[1-x11-screen0-top-width] PASSED [ 61%] test/widgets/test_sep.py::test_orientations[1-x11-screen1-left-height] PASSED [ 61%] test/widgets/test_sep.py::test_orientations[1-wayland-screen0-top-width] PASSED [ 61%] test/widgets/test_sep.py::test_orientations[1-wayland-screen1-left-height] PASSED [ 61%] test/widgets/test_sep.py::test_padding_and_width[1-x11] PASSED [ 61%] test/widgets/test_sep.py::test_padding_and_width[1-wayland] PASSED [ 61%] test/widgets/test_spacer.py::test_stretch[1-x11-screen0-top-width] PASSED [ 61%] test/widgets/test_spacer.py::test_stretch[1-x11-screen1-left-height] PASSED [ 61%] test/widgets/test_spacer.py::test_stretch[1-wayland-screen0-top-width] PASSED [ 61%] test/widgets/test_spacer.py::test_stretch[1-wayland-screen1-left-height] PASSED [ 61%] test/widgets/test_spacer.py::test_fixed_size[1-x11-screen0-top-width] PASSED [ 61%] test/widgets/test_spacer.py::test_fixed_size[1-x11-screen1-left-height] PASSED [ 61%] test/widgets/test_spacer.py::test_fixed_size[1-wayland-screen0-top-width] PASSED [ 61%] test/widgets/test_spacer.py::test_fixed_size[1-wayland-screen1-left-height] PASSED [ 61%] test/widgets/test_statusnotifier.py::test_statusnotifier_defaults[1-x11] PASSED [ 61%] test/widgets/test_statusnotifier.py::test_statusnotifier_defaults[1-wayland] PASSED [ 61%] test/widgets/test_statusnotifier.py::test_statusnotifier_defaults_vertical_bar[1-x11] PASSED [ 61%] test/widgets/test_statusnotifier.py::test_statusnotifier_defaults_vertical_bar[1-wayland] PASSED [ 61%] test/widgets/test_statusnotifier.py::test_statusnotifier_icon_size[1-x11-sni_config0] PASSED [ 61%] test/widgets/test_statusnotifier.py::test_statusnotifier_icon_size[1-wayland-sni_config0] PASSED [ 61%] test/widgets/test_statusnotifier.py::test_statusnotifier_left_click[1-x11] PASSED [ 62%] test/widgets/test_statusnotifier.py::test_statusnotifier_left_click[1-wayland] PASSED [ 62%] test/widgets/test_statusnotifier.py::test_statusnotifier_left_click_vertical_bar[1-x11] PASSED [ 62%] test/widgets/test_statusnotifier.py::test_statusnotifier_left_click_vertical_bar[1-wayland] PASSED [ 62%] test/widgets/test_systray.py::test_no_duplicates_multiple_instances[1-x11] PASSED [ 62%] test/widgets/test_systray.py::test_no_duplicates_multiple_instances[1-wayland] SKIPPED [ 62%] test/widgets/test_systray.py::test_no_duplicates_mirror[1-x11] PASSED [ 62%] test/widgets/test_systray.py::test_no_duplicates_mirror[1-wayland] SKIPPED [ 62%] test/widgets/test_systray.py::test_systray_reconfigure_screens[1-x11] PASSED [ 62%] test/widgets/test_systray.py::test_systray_reconfigure_screens[1-wayland] SKIPPED [ 62%] test/widgets/test_systray.py::test_systray_icons[1-x11] PASSED [ 62%] test/widgets/test_systray.py::test_systray_icons[1-wayland] SKIPPED [ 62%] test/widgets/test_tasklist.py::test_tasklist_defaults[1-x11-top] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_defaults[1-x11-left] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_defaults[1-wayland-top] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_defaults[1-wayland-left] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_skip_taskbar_defaults[1-x11] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_skip_taskbar_defaults[1-wayland] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_custom_text[1-x11-tasklist_manager0] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_custom_text[1-wayland-tasklist_manager0] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_custom_markup[1-x11-tasklist_manager0] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_custom_markup[1-wayland-tasklist_manager0] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_focused_and_floating[1-x11-tasklist_manager0] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_focused_and_floating[1-wayland-tasklist_manager0] PASSED [ 62%] test/widgets/test_tasklist.py::test_tasklist_click_task[1-x11-tasklist_manager0-top-coords0] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_click_task[1-x11-tasklist_manager0-right-coords1] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_click_task[1-x11-tasklist_manager0-left-coords2] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_click_task[1-wayland-tasklist_manager0-top-coords0] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_click_task[1-wayland-tasklist_manager0-right-coords1] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_click_task[1-wayland-tasklist_manager0-left-coords2] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_bad_theme_mode[1-x11-tasklist_manager0-True] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_bad_theme_mode[1-wayland-tasklist_manager0-True] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_no_xdg[1-x11-tasklist_manager0-False] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_no_xdg[1-wayland-tasklist_manager0-False] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_no_stretch[1-x11-tasklist_manager0-top] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_no_stretch[1-x11-tasklist_manager0-left] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_no_stretch[1-wayland-tasklist_manager0-top] PASSED [ 63%] test/widgets/test_tasklist.py::test_tasklist_no_stretch[1-wayland-tasklist_manager0-left] PASSED [ 63%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-x11-top] PASSED [ 63%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-x11-bottom] PASSED [ 63%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-x11-left] PASSED [ 63%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-x11-right] PASSED [ 63%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-wayland-top] PASSED [ 63%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-wayland-bottom] PASSED [ 63%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-wayland-left] PASSED [ 63%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-wayland-right] PASSED [ 63%] test/widgets/test_textbox.py::test_text_box_max_chars[1-x11] PASSED [ 63%] test/widgets/test_textbox.py::test_text_box_max_chars[1-wayland] PASSED [ 63%] test/widgets/test_vertical_clock.py::test_vclock_default[1-x11] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_default[1-wayland] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_extra_lines[1-x11-vclock_manager0] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_extra_lines[1-wayland-vclock_manager0] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-x11-vclock_manager0] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-x11-vclock_manager1] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-x11-vclock_manager2] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-x11-vclock_manager3] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-x11-vclock_manager4] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-x11-vclock_manager5] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-wayland-vclock_manager0] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-wayland-vclock_manager1] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-wayland-vclock_manager2] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-wayland-vclock_manager3] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-wayland-vclock_manager4] PASSED [ 64%] test/widgets/test_vertical_clock.py::test_vclock_invalid_configs[1-wayland-vclock_manager5] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-AGroupBox-kwargs0] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Backlight-kwargs1] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Battery-kwargs2] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-BatteryIcon-kwargs3] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Bluetooth-kwargs4] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CPU-kwargs5] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CPUGraph-kwargs6] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Canto-kwargs7] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CapsNumLockIndicator-kwargs8] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CheckUpdates-kwargs9] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Chord-kwargs10] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Clipboard-kwargs11] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Clock-kwargs12] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Countdown-kwargs13] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CryptoTicker-kwargs14] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CurrentLayout-kwargs15] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CurrentScreen-kwargs16] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-DF-kwargs17] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-DoNotDisturb-kwargs18] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-GenPollText-kwargs19] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-GenPollUrl-kwargs20] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-GenPollCommand-kwargs21] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-GmailChecker-kwargs22] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-GroupBox-kwargs23] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-HDD-kwargs24] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-HDDBusyGraph-kwargs25] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-HDDGraph-kwargs26] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-IdleRPG-kwargs27] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Image-kwargs28] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs29] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-KeyboardKbdd-kwargs30] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-KeyboardLayout-kwargs31] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs32] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-LaunchBar-kwargs33] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Load-kwargs34] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Maildir-kwargs35] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Memory-kwargs36] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-MemoryGraph-kwargs37] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs38] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Mpris2-kwargs39] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Net-kwargs40] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-NetGraph-kwargs41] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-NetUP-kwargs42] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Notify-kwargs43] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-NvidiaSensors-kwargs44] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-OpenWeather-kwargs45] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Plasma-kwargs46] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Pomodoro-kwargs47] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Prompt-kwargs48] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs49] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-QuickExit-kwargs50] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Redshift-kwargs51] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-ScreenSplit-kwargs52] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Sep-kwargs53] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-She-kwargs54] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Spacer-kwargs55] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-StatusNotifier-kwargs56] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-StockTicker-kwargs57] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-SwapGraph-kwargs58] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-SwayNC-kwargs59] SKIPPED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Systray-kwargs60] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-TaskList-kwargs61] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-TextBox-kwargs62] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-ThermalSensor-kwargs63] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-ThermalZone-kwargs64] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-TunedManager-kwargs65] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Volume-kwargs66] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Wallpaper-kwargs67] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-WidgetBox-kwargs68] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-WindowCount-kwargs69] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-WindowName-kwargs70] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-WindowTabs-kwargs71] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs72] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-WlanIw-kwargs73] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Wttr-kwargs74] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-_CrashMe-kwargs75] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-AGroupBox-kwargs0] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Backlight-kwargs1] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Battery-kwargs2] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-BatteryIcon-kwargs3] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Bluetooth-kwargs4] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CPU-kwargs5] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CPUGraph-kwargs6] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Canto-kwargs7] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CapsNumLockIndicator-kwargs8] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CheckUpdates-kwargs9] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Chord-kwargs10] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Clipboard-kwargs11] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Clock-kwargs12] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Countdown-kwargs13] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CryptoTicker-kwargs14] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CurrentLayout-kwargs15] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CurrentScreen-kwargs16] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-DF-kwargs17] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-DoNotDisturb-kwargs18] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-GenPollText-kwargs19] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-GenPollUrl-kwargs20] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-GenPollCommand-kwargs21] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-GmailChecker-kwargs22] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-GroupBox-kwargs23] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-HDD-kwargs24] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-HDDBusyGraph-kwargs25] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-HDDGraph-kwargs26] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-IdleRPG-kwargs27] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Image-kwargs28] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs29] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-KeyboardKbdd-kwargs30] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-KeyboardLayout-kwargs31] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs32] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-LaunchBar-kwargs33] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Load-kwargs34] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Maildir-kwargs35] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Memory-kwargs36] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-MemoryGraph-kwargs37] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs38] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Mpris2-kwargs39] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Net-kwargs40] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-NetGraph-kwargs41] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-NetUP-kwargs42] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Notify-kwargs43] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-NvidiaSensors-kwargs44] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-OpenWeather-kwargs45] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Plasma-kwargs46] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Pomodoro-kwargs47] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Prompt-kwargs48] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs49] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-QuickExit-kwargs50] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Redshift-kwargs51] SKIPPED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-ScreenSplit-kwargs52] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Sep-kwargs53] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-She-kwargs54] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Spacer-kwargs55] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-StatusNotifier-kwargs56] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-StockTicker-kwargs57] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-SwapGraph-kwargs58] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-SwayNC-kwargs59] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Systray-kwargs60] SKIPPED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-TaskList-kwargs61] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-TextBox-kwargs62] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-ThermalSensor-kwargs63] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-ThermalZone-kwargs64] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-TunedManager-kwargs65] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Volume-kwargs66] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Wallpaper-kwargs67] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-WidgetBox-kwargs68] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-WindowCount-kwargs69] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-WindowName-kwargs70] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-WindowTabs-kwargs71] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs72] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-WlanIw-kwargs73] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Wttr-kwargs74] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-_CrashMe-kwargs75] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Backlight-kwargs0] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Battery-kwargs1] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Bluetooth-kwargs2] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-CPU-kwargs3] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Canto-kwargs4] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-CapsNumLockIndicator-kwargs5] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-CheckUpdates-kwargs6] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Chord-kwargs7] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Clipboard-kwargs8] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Clock-kwargs9] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Countdown-kwargs10] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-CryptoTicker-kwargs11] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-CurrentLayout-kwargs12] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-CurrentScreen-kwargs13] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-DF-kwargs14] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-DoNotDisturb-kwargs15] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-GenPollText-kwargs16] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-GenPollUrl-kwargs17] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-GenPollCommand-kwargs18] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-GmailChecker-kwargs19] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-HDD-kwargs20] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-IdleRPG-kwargs21] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Image-kwargs22] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs23] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-KeyboardKbdd-kwargs24] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-KeyboardLayout-kwargs25] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs26] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-LaunchBar-kwargs27] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Load-kwargs28] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Maildir-kwargs29] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Memory-kwargs30] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs31] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Mpris2-kwargs32] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Net-kwargs33] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-NetUP-kwargs34] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Notify-kwargs35] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-NvidiaSensors-kwargs36] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-OpenWeather-kwargs37] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Plasma-kwargs38] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Pomodoro-kwargs39] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Prompt-kwargs40] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs41] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-QuickExit-kwargs42] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Redshift-kwargs43] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-ScreenSplit-kwargs44] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Sep-kwargs45] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-She-kwargs46] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Spacer-kwargs47] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-StatusNotifier-kwargs48] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-StockTicker-kwargs49] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-SwayNC-kwargs50] SKIPPED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Systray-kwargs51] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-TaskList-kwargs52] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-TextBox-kwargs53] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-ThermalSensor-kwargs54] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-VerticalClock-kwargs55] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Wallpaper-kwargs56] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-WindowCount-kwargs57] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-WindowName-kwargs58] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-WindowTabs-kwargs59] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs60] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-WlanIw-kwargs61] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Wttr-kwargs62] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-_CrashMe-kwargs63] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Backlight-kwargs0] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Battery-kwargs1] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Bluetooth-kwargs2] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-CPU-kwargs3] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Canto-kwargs4] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-CapsNumLockIndicator-kwargs5] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-CheckUpdates-kwargs6] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Chord-kwargs7] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Clipboard-kwargs8] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Clock-kwargs9] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Countdown-kwargs10] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-CryptoTicker-kwargs11] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-CurrentLayout-kwargs12] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-CurrentScreen-kwargs13] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-DF-kwargs14] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-DoNotDisturb-kwargs15] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-GenPollText-kwargs16] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-GenPollUrl-kwargs17] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-GenPollCommand-kwargs18] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-GmailChecker-kwargs19] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-HDD-kwargs20] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-IdleRPG-kwargs21] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Image-kwargs22] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs23] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-KeyboardKbdd-kwargs24] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-KeyboardLayout-kwargs25] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs26] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-LaunchBar-kwargs27] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Load-kwargs28] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Maildir-kwargs29] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Memory-kwargs30] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs31] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Mpris2-kwargs32] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Net-kwargs33] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-NetUP-kwargs34] FAILED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Notify-kwargs35] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-NvidiaSensors-kwargs36] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-OpenWeather-kwargs37] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Plasma-kwargs38] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Pomodoro-kwargs39] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Prompt-kwargs40] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs41] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-QuickExit-kwargs42] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Redshift-kwargs43] SKIPPED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-ScreenSplit-kwargs44] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Sep-kwargs45] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-She-kwargs46] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Spacer-kwargs47] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-StatusNotifier-kwargs48] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-StockTicker-kwargs49] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-SwayNC-kwargs50] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Systray-kwargs51] SKIPPED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-TaskList-kwargs52] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-TextBox-kwargs53] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-ThermalSensor-kwargs54] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-VerticalClock-kwargs55] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Wallpaper-kwargs56] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-WindowCount-kwargs57] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-WindowName-kwargs58] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-WindowTabs-kwargs59] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs60] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-WlanIw-kwargs61] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Wttr-kwargs62] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-_CrashMe-kwargs63] PASSED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_start_opened[1-x11] PASSED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_start_opened[1-wayland] PASSED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_mirror[1-x11] PASSED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_mirror[1-wayland] PASSED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_mouse_click[1-x11] PASSED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_mouse_click[1-wayland] PASSED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_with_systray_reconfigure_screens_box_open[1-x11] PASSED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_with_systray_reconfigure_screens_box_open[1-wayland] SKIPPED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_with_systray_reconfigure_screens_box_closed[1-x11] PASSED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_with_systray_reconfigure_screens_box_closed[1-wayland] SKIPPED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_open_close_commands[1-x11] PASSED [ 76%] test/widgets/test_widgetbox.py::test_widgetbox_open_close_commands[1-wayland] PASSED [ 76%] test/widgets/test_window_count.py::test_different_screens[1-x11-DifferentScreens] PASSED [ 76%] test/widgets/test_window_count.py::test_different_screens[1-wayland-DifferentScreens] PASSED [ 76%] test/widgets/test_window_count.py::test_window_count[1-x11] PASSED [ 76%] test/widgets/test_window_count.py::test_window_count[1-wayland] PASSED [ 77%] test/widgets/test_windowname.py::test_window_names[1-x11-WindowNameConfig] PASSED [ 77%] test/widgets/test_windowname.py::test_window_names[1-wayland-WindowNameConfig] PASSED [ 77%] test/widgets/test_windowtabs.py::test_single_window_states[1-x11-WindowTabsConfig] PASSED [ 77%] test/widgets/test_windowtabs.py::test_single_window_states[1-wayland-WindowTabsConfig] PASSED [ 77%] test/widgets/test_windowtabs.py::test_multiple_windows[1-x11-WindowTabsConfig] PASSED [ 77%] test/widgets/test_windowtabs.py::test_multiple_windows[1-wayland-WindowTabsConfig] PASSED [ 77%] test/widgets/test_windowtabs.py::test_selected[1-x11-WindowTabsConfig] PASSED [ 77%] test/widgets/test_windowtabs.py::test_selected[1-wayland-WindowTabsConfig] PASSED [ 77%] test/widgets/test_windowtabs.py::test_escaping_text[1-x11-WindowTabsConfig] PASSED [ 77%] test/widgets/test_windowtabs.py::test_escaping_text[1-wayland-WindowTabsConfig] PASSED [ 77%] test/widgets/test_windowtabs.py::test_custom_text_parser[1-x11-WindowTabsConfig] PASSED [ 77%] test/widgets/test_windowtabs.py::test_custom_text_parser[1-wayland-WindowTabsConfig] PASSED [ 77%] test/widgets/test_wlan.py::test_wlan_display[1-x11-kwargs0-QtileNet 49/70] PASSED [ 77%] test/widgets/test_wlan.py::test_wlan_display[1-x11-kwargs1-QtileNet 70%] PASSED [ 77%] test/widgets/test_wlan.py::test_wlan_display[1-x11-kwargs2-Disconnected] PASSED [ 77%] test/widgets/test_wlan.py::test_wlan_display[1-wayland-kwargs0-QtileNet 49/70] PASSED [ 77%] test/widgets/test_wlan.py::test_wlan_display[1-wayland-kwargs1-QtileNet 70%] PASSED [ 77%] test/widgets/test_wlan.py::test_wlan_display[1-wayland-kwargs2-Disconnected] PASSED [ 77%] test/widgets/test_wlan.py::test_wlan_display_escape_essid[1-x11] PASSED [ 77%] test/widgets/test_wlan.py::test_wlan_display_escape_essid[1-wayland] PASSED [ 77%] test/widgets/test_wlan.py::test_ethernet[1-x11-kwargs0-up-eth] PASSED [ 77%] test/widgets/test_wlan.py::test_ethernet[1-x11-kwargs1-down-Disconnected] PASSED [ 77%] test/widgets/test_wlan.py::test_ethernet[1-x11-kwargs2-up-Wired] PASSED [ 77%] test/widgets/test_wlan.py::test_ethernet[1-wayland-kwargs0-up-eth] PASSED [ 78%] test/widgets/test_wlan.py::test_ethernet[1-wayland-kwargs1-down-Disconnected] PASSED [ 78%] test/widgets/test_wlan.py::test_ethernet[1-wayland-kwargs2-up-Wired] PASSED [ 78%] test/backend/test_idle_notify.py::test_timer_sorting[timers0-expected_output0] PASSED [ 78%] test/backend/test_idle_notify.py::test_timer_sorting[timers1-expected_output1] PASSED [ 78%] test/backend/test_idle_notify.py::test_timer_sorting[timers2-expected_output2] PASSED [ 78%] test/backend/wayland/test_drawer.py::test_hidpi_svg_scaling PASSED [ 78%] test/backend/wayland/test_drawer.py::test_hidpi_png_scaling PASSED [ 78%] test/backend/wayland/test_drawer.py::test_hidpi_pixel_data_scaling PASSED [ 78%] test/backend/wayland/test_drawer.py::test_hidpi_img_paint_mask PASSED [ 78%] test/backend/wayland/test_drawer.py::test_hidpi_img_paste PASSED [ 78%] test/backend/wayland/test_drawer.py::test_draw_image_does_not_mutate_resources PASSED [ 78%] test/backend/x11/test_xcbq.py::test_masks PASSED [ 78%] test/backend/x11/test_xcbq.py::test_translate_masks PASSED [ 78%] test/backend/x11/test_xcbq.py::test_edid_decoding PASSED [ 78%] test/backend/x11/test_xcbq.py::test_edid_decoding_ev2460 PASSED [ 78%] test/backend/x11/test_xcore.py::test_get_core_x11 PASSED [ 78%] test/backend/x11/test_xcore.py::test_keys PASSED [ 78%] test/core/test_lifecycle.py::test_restart_behaviour PASSED [ 78%] test/core/test_lifecycle.py::test_terminate_behavior PASSED [ 78%] test/core/test_lifecycle.py::test_none_behavior PASSED [ 78%] test/extension/test_base.py::test_valid_colours[#000-#000] PASSED [ 78%] test/extension/test_base.py::test_valid_colours[#000000-#000000] PASSED [ 78%] test/extension/test_base.py::test_valid_colours[000-#000] PASSED [ 78%] test/extension/test_base.py::test_valid_colours[000000-#000000] PASSED [ 79%] test/extension/test_base.py::test_valid_colours[#0000-None] PASSED [ 79%] test/extension/test_base.py::test_valid_colours[0000-None] PASSED [ 79%] test/extension/test_base.py::test_valid_colours[0-None] PASSED [ 79%] test/extension/test_base.py::test_valid_colours_extension_defaults PASSED [ 79%] test/extension/test_base.py::test_base_methods PASSED [ 79%] test/extension/test_base.py::test_run_command PASSED [ 79%] test/extension/test_command_set.py::test_command_set_valid_command PASSED [ 79%] test/extension/test_command_set.py::test_command_set_invalid_command PASSED [ 79%] test/extension/test_command_set.py::test_command_set_inside_command_set_valid_command PASSED [ 79%] test/extension/test_command_set.py::test_command_set_inside_command_set_invalid_command PASSED [ 79%] test/extension/test_dmenu.py::test_dmenu_configuration_options PASSED [ 79%] test/extension/test_dmenu.py::test_dmenu_run PASSED [ 79%] test/extension/test_dmenu.py::test_dmenurun_extension PASSED [ 79%] test/extension/test_dmenu.py::test_j4dmenu_configuration_options PASSED [ 79%] test/layouts/test_bsp.py::test_bsp_swap PASSED [ 79%] test/layouts/test_columns.py::test_columns_swap PASSED [ 79%] test/layouts/test_matrix.py::test_unknown_client PASSED [ 79%] test/layouts/test_plasma.py::test_single_node PASSED [ 79%] test/layouts/test_plasma.py::test_add_child PASSED [ 79%] test/layouts/test_plasma.py::test_add_children PASSED [ 79%] test/layouts/test_plasma.py::test_add_child_after PASSED [ 79%] test/layouts/test_plasma.py::test_add_child_after_with_sizes PASSED [ 79%] test/layouts/test_plasma.py::test_remove_child PASSED [ 80%] test/layouts/test_plasma.py::test_nested PASSED [ 80%] test/layouts/test_plasma.py::test_leaves PASSED [ 80%] test/layouts/test_plasma.py::test_directions PASSED [ 80%] test/layouts/test_plasma.py::test_prev_next PASSED [ 80%] test/layouts/test_plasma.py::test_siblings PASSED [ 80%] test/layouts/test_plasma.py::test_root_siblings PASSED [ 80%] test/layouts/test_plasma.py::test_move_forward PASSED [ 80%] test/layouts/test_plasma.py::test_move_backward PASSED [ 80%] test/layouts/test_plasma.py::test_advanced_move PASSED [ 80%] test/layouts/test_plasma.py::test_advanced_move2 PASSED [ 80%] test/layouts/test_plasma.py::test_move_blocked PASSED [ 80%] test/layouts/test_plasma.py::test_move_root PASSED [ 80%] test/layouts/test_plasma.py::test_integrate PASSED [ 80%] test/layouts/test_plasma.py::test_integrate_nested PASSED [ 80%] test/layouts/test_plasma.py::test_move_and_integrate PASSED [ 80%] test/layouts/test_plasma.py::test_impossible_integrate PASSED [ 80%] test/layouts/test_plasma.py::test_impossible_integrate2 PASSED [ 80%] test/layouts/test_plasma.py::test_find_payload PASSED [ 80%] test/layouts/test_plasma.py::test_last_access PASSED [ 80%] test/layouts/test_plasma.py::test_root_without_dimensions PASSED [ 80%] test/layouts/test_plasma.py::test_root PASSED [ 80%] test/layouts/test_plasma.py::test_all PASSED [ 80%] test/layouts/test_plasma.py::test_close_neighbor PASSED [ 80%] test/layouts/test_plasma.py::test_close_neighbor2 PASSED [ 81%] test/layouts/test_plasma.py::test_close_neighbor_nested PASSED [ 81%] test/layouts/test_plasma.py::test_close_neighbor_approx PASSED [ 81%] test/layouts/test_plasma.py::test_points PASSED [ 81%] test/layouts/test_plasma.py::test_center PASSED [ 81%] test/layouts/test_plasma.py::test_recent_leaf PASSED [ 81%] test/layouts/test_plasma.py::test_recent_close_neighbor PASSED [ 81%] test/layouts/test_plasma.py::test_add_node PASSED [ 81%] test/layouts/test_plasma.py::test_contains PASSED [ 81%] test/layouts/test_plasma.py::test_size PASSED [ 81%] test/layouts/test_plasma.py::test_capacity PASSED [ 81%] test/layouts/test_plasma.py::test_capacity2 PASSED [ 81%] test/layouts/test_plasma.py::test_resize PASSED [ 81%] test/layouts/test_plasma.py::test_resize_absolute PASSED [ 81%] test/layouts/test_plasma.py::test_resize_absolute2 PASSED [ 81%] test/layouts/test_plasma.py::test_resize_absolute_and_relative PASSED [ 81%] test/layouts/test_plasma.py::test_resize_absolute_and_relative_balanced PASSED [ 81%] test/layouts/test_plasma.py::test_resize_absolute_and_relative2 PASSED [ 81%] test/layouts/test_plasma.py::test_resize_flat PASSED [ 81%] test/layouts/test_plasma.py::test_resize_minimum PASSED [ 81%] test/layouts/test_plasma.py::test_resize_all_absolute_underflow PASSED [ 81%] test/layouts/test_plasma.py::test_resize_all_absolute_overflow PASSED [ 81%] test/layouts/test_plasma.py::test_resize_overflow_with_relative PASSED [ 81%] test/layouts/test_plasma.py::test_resize_overflow_with_relative2 PASSED [ 81%] test/layouts/test_plasma.py::test_resize_only_absolute_remains PASSED [ 82%] test/layouts/test_plasma.py::test_reset_size PASSED [ 82%] test/layouts/test_plasma.py::test_size_after_split PASSED [ 82%] test/layouts/test_plasma.py::test_only_child_must_be_flexible PASSED [ 82%] test/layouts/test_plasma.py::test_deny_only_child_resize PASSED [ 82%] test/layouts/test_plasma.py::test_resize_parents PASSED [ 82%] test/layouts/test_plasma.py::test_pixelperfect PASSED [ 82%] test/layouts/test_plasma.py::test_pixelperfect_draw PASSED [ 82%] test/layouts/test_plasma.py::test_resize_root PASSED [ 82%] test/layouts/test_plasma.py::test_set_xy PASSED [ 82%] test/layouts/test_plasma.py::test_set_width_height PASSED [ 82%] test/layouts/test_plasma.py::test_min_size PASSED [ 82%] test/layouts/test_plasma.py::test_transitive_flexible PASSED [ 82%] test/layouts/test_plasma.py::test_resize_bubbles PASSED [ 82%] test/layouts/test_plasma.py::test_resize_bubbles2 PASSED [ 82%] test/layouts/test_plasma.py::test_resize_bubbles3 PASSED [ 82%] test/layouts/test_plasma.py::test_resize_nested PASSED [ 82%] test/layouts/test_plasma.py::test_resize_nested_balanced PASSED [ 82%] test/layouts/test_plasma.py::test_resize_max PASSED [ 82%] test/layouts/test_plasma.py::test_restore PASSED [ 82%] test/layouts/test_plasma.py::test_restore_same_payload PASSED [ 82%] test/layouts/test_plasma.py::test_restore_unknown PASSED [ 82%] test/layouts/test_plasma.py::test_restore_no_parent PASSED [ 82%] test/layouts/test_plasma.py::test_restore_bad_index PASSED [ 82%] test/layouts/test_plasma.py::test_restore_sizes PASSED [ 83%] test/layouts/test_plasma.py::test_restore_sizes_flip PASSED [ 83%] test/layouts/test_plasma.py::test_restore_root PASSED [ 83%] test/layouts/test_plasma.py::test_restore_root2 PASSED [ 83%] test/layouts/test_plasma.py::test_restore_keep_flexible PASSED [ 83%] test/layouts/test_plasma.py::test_resize_with_collapse_and_restore PASSED [ 83%] test/layouts/test_plasma.py::test_node_repr PASSED [ 83%] test/layouts/test_plasma.py::test_init PASSED [ 83%] test/layouts/test_plasma.py::test_focus PASSED [ 83%] test/layouts/test_plasma.py::test_access PASSED [ 83%] test/layouts/test_plasma.py::test_bug_10 PASSED [ 83%] test/layouts/test_screensplit.py::test_invalid_splits PASSED [ 83%] test/migrate/test_check_migrations.py::test_check_all_migrations[UpdateBluetoothArgs-0] SKIPPED [ 83%] test/migrate/test_check_migrations.py::test_check_all_migrations[UpdateStocktickerArgs-6] SKIPPED [ 83%] test/migrate/test_check_migrations.py::test_check_all_migrations[UpdateWlanArgs-0] SKIPPED [ 83%] test/migrate/test_check_migrations.py::test_check_all_migrations[MatchListRegex-0] SKIPPED [ 83%] test/migrate/test_check_migrations.py::test_check_all_migrations[MigrateThreadPoolText-0] SKIPPED [ 83%] test/migrate/test_check_migrations.py::test_check_all_migrations[MigrateThreadPoolText-1] SKIPPED [ 83%] test/migrate/test_check_migrations.py::test_check_all_migrations[RemoveCmdPrefix-7] SKIPPED [ 83%] test/migrate/test_check_migrations.py::test_check_all_migrations[RenameCurrentLayoutIcon-0] SKIPPED [ 83%] test/migrate/test_check_migrations.py::test_check_all_migrations[RenameUnspecified-0] SKIPPED [ 83%] test/migrate/test_migrations.py::test_all_migrations[UpdateBluetoothArgs-0] PASSED [ 83%] test/migrate/test_migrations.py::test_all_migrations[UpdateStocktickerArgs-0] PASSED [ 83%] test/migrate/test_migrations.py::test_all_migrations[UpdateStocktickerArgs-1] PASSED [ 83%] test/migrate/test_migrations.py::test_all_migrations[UpdateStocktickerArgs-2] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[UpdateStocktickerArgs-3] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[UpdateStocktickerArgs-4] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[UpdateStocktickerArgs-5] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[UpdateStocktickerArgs-6] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[UpdateWlanArgs-0] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[MatchListRegex-0] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[MigrateThreadPoolText-0] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[MigrateThreadPoolText-1] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[RemoveCmdPrefix-0] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[RemoveCmdPrefix-1] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[RemoveCmdPrefix-2] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[RemoveCmdPrefix-3] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[RemoveCmdPrefix-4] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[RemoveCmdPrefix-5] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[RemoveCmdPrefix-6] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[RemoveCmdPrefix-7] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[RenameCurrentLayoutIcon-0] PASSED [ 84%] test/migrate/test_migrations.py::test_all_migrations[RenameUnspecified-0] PASSED [ 84%] test/shell_scripts/test_repl_client.py::test_read_full_response_basic PASSED [ 84%] test/shell_scripts/test_repl_client.py::test_is_code_complete[SingleExpression] PASSED [ 84%] test/shell_scripts/test_repl_client.py::test_is_code_complete[IncompleteFunction] PASSED [ 84%] test/shell_scripts/test_repl_client.py::test_is_code_complete[MultilineIncomplete] PASSED [ 84%] test/shell_scripts/test_repl_client.py::test_is_code_complete[MultilineComplete] PASSED [ 84%] test/shell_scripts/test_repl_client.py::test_is_code_complete[MultiMultiline] PASSED [ 85%] test/shell_scripts/test_repl_client.py::test_is_code_complete[IncompleteContext] PASSED [ 85%] test/shell_scripts/test_repl_server.py::test_get_completions_top_level PASSED [ 85%] test/shell_scripts/test_repl_server.py::test_get_completions_attribute PASSED [ 85%] test/shell_scripts/test_repl_server.py::test_get_completions_invalid_expr PASSED [ 85%] test/shell_scripts/test_repl_server.py::test_repl_server_executes_code FAILED [ 85%] test/test_bar.py::test_completion PASSED [ 85%] test/test_check.py::test_check_default_config SKIPPED (needs mypy) [ 85%] test/test_check.py::test_check_bad_syntax SKIPPED (needs mypy) [ 85%] test/test_check.py::test_check_bad_key_arg SKIPPED (needs mypy) [ 85%] test/test_check.py::test_check_good_key_arg SKIPPED (needs mypy) [ 85%] test/test_check.py::test_check_bad_config_type SKIPPED (needs mypy) [ 85%] test/test_check.py::test_extra_vars_are_ok SKIPPED (needs mypy) [ 85%] test/test_check.py::test_extra_files_are_ok SKIPPED (needs mypy) [ 85%] test/test_command.py::test_doc PASSED [ 85%] test/test_command.py::test_commands PASSED [ 85%] test/test_command.py::test_command PASSED [ 85%] test/test_command.py::test_decorators_direct_call PASSED [ 85%] test/test_command_graph.py::test_root_path PASSED [ 85%] test/test_command_graph.py::test_resolve_nodes PASSED [ 85%] test/test_command_graph.py::test_resolve_selections PASSED [ 85%] test/test_command_graph.py::test_resolve_command PASSED [ 85%] test/test_config.py::test_validate PASSED [ 85%] test/test_config.py::test_basic PASSED [ 85%] test/test_config.py::test_syntaxerr PASSED [ 86%] test/test_config.py::test_falls_back PASSED [ 86%] test/test_config.py::test_ezkey PASSED [ 86%] test/test_config.py::test_ezclick_ezdrag PASSED [ 86%] test/test_config.py::test_screen_underbar_methods PASSED [ 86%] test/test_configurable.py::test_use_fallback PASSED [ 86%] test/test_configurable.py::test_use_fallback_if_set_to_none PASSED [ 86%] test/test_configurable.py::test_dont_use_fallback_if_set PASSED [ 86%] test/test_hook.py::test_cannot_fire_unknown_event PASSED [ 86%] test/test_hook.py::test_hook_calls_subscriber PASSED [ 86%] test/test_hook.py::test_hook_calls_subscriber_async PASSED [ 86%] test/test_hook.py::test_hook_calls_subscriber_async_co PASSED [ 86%] test/test_hook.py::test_hook_calls_subscriber_async_in_existing_loop PASSED [ 86%] test/test_hook.py::test_subscribers_can_be_added_removed PASSED [ 86%] test/test_hook.py::test_can_unsubscribe_from_hook PASSED [ 86%] test/test_hook.py::test_custom_hook_registry PASSED [ 86%] test/test_hook.py::test_transient_hooks_syncronous PASSED [ 86%] test/test_hook.py::test_transient_hooks_asyncronous PASSED [ 86%] test/test_hook.py::test_transient_hooks_coroutine PASSED [ 86%] test/test_images.py::test_get_cairo_surface[/build/qtile/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 86%] test/test_images.py::test_get_cairo_surface[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 86%] test/test_images.py::test_get_cairo_surface[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 86%] test/test_images.py::test_get_cairo_surface[/build/qtile/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 86%] test/test_images.py::test_get_cairo_surface[/build/qtile/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 86%] test/test_images.py::test_get_cairo_surface_bad_input PASSED [ 87%] test/test_images.py::TestImg::test_init[/build/qtile/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 87%] test/test_images.py::TestImg::test_init[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 87%] test/test_images.py::TestImg::test_init[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 87%] test/test_images.py::TestImg::test_init[/build/qtile/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 87%] test/test_images.py::TestImg::test_init[/build/qtile/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 87%] test/test_images.py::TestImg::test_from_path[/build/qtile/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 87%] test/test_images.py::TestImg::test_from_path[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 87%] test/test_images.py::TestImg::test_from_path[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 87%] test/test_images.py::TestImg::test_from_path[/build/qtile/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 87%] test/test_images.py::TestImg::test_from_path[/build/qtile/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 87%] test/test_images.py::TestImg::test_from_data PASSED [ 87%] test/test_images.py::TestImg::test_setting PASSED [ 87%] test/test_images.py::TestImg::test_equality PASSED [ 87%] test/test_images.py::TestImg::test_setting_negative_size PASSED [ 87%] test/test_images.py::TestImg::test_pattern[/build/qtile/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 87%] test/test_images.py::TestImg::test_pattern[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 87%] test/test_images.py::TestImg::test_pattern[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 87%] test/test_images.py::TestImg::test_pattern[/build/qtile/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 87%] test/test_images.py::TestImg::test_pattern[/build/qtile/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 87%] test/test_images.py::TestImg::test_surface_resize[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 87%] test/test_images.py::TestImg::test_surface_resize[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 87%] test/test_images.py::TestImg::test_surface_resize[/build/qtile/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 87%] test/test_images.py::TestImg::test_surface_resize[/build/qtile/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 87%] test/test_images.py::TestImg::test_pattern_rotate[/build/qtile/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 88%] test/test_images.py::TestImg::test_pattern_rotate[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 88%] test/test_images.py::TestImg::test_pattern_rotate[/build/qtile/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 88%] test/test_images.py::TestImg::test_pattern_rotate[/build/qtile/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 88%] test/test_images.py::TestImg::test_pattern_rotate[/build/qtile/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 88%] test/test_images.py::TestImg::test_resize_rasterization PASSED [ 88%] test/test_images.py::TestImg::test_img_paste PASSED [ 88%] test/test_images.py::TestImg::test_img_paint_mask PASSED [ 88%] test/test_images.py::TestImg::test_copy_operations_independent PASSED [ 88%] test/test_images.py::TestImg::test_copy_resources_independent PASSED [ 88%] test/test_images.py::TestImg::test_operations_applied_after_cache PASSED [ 88%] test/test_images.py::TestImgScale::test_scale PASSED [ 88%] test/test_images.py::TestImgScale::test_scale_rounding PASSED [ 88%] test/test_images.py::TestImgScale::test_scale_width_lock PASSED [ 88%] test/test_images.py::TestImgScale::test_scale_height_lock PASSED [ 88%] test/test_images.py::TestImgScale::test_scale_fail_lock PASSED [ 88%] test/test_images.py::TestImgScale::test_scale_fail PASSED [ 88%] test/test_images.py::TestImgScale::test_scale_less_than_one[0-0] PASSED [ 88%] test/test_images.py::TestImgScale::test_scale_less_than_one[-1--1] PASSED [ 88%] test/test_images.py::TestImgScale::test_scale_less_than_one_width[0] PASSED [ 88%] test/test_images.py::TestImgScale::test_scale_less_than_one_width[-1] PASSED [ 88%] test/test_images.py::TestImgScale::test_scale_less_than_one_height[0] PASSED [ 88%] test/test_images.py::TestImgScale::test_scale_less_than_one_height[-1] PASSED [ 88%] test/test_images.py::TestImgResize::test_resize PASSED [ 88%] test/test_images.py::TestImgResize::test_resize_width PASSED [ 89%] test/test_images.py::TestImgResize::test_resize_height PASSED [ 89%] test/test_images.py::TestImgResize::test_resize_fail PASSED [ 89%] test/test_images.py::TestImgResize::test_resize_less_than_one[0-0] PASSED [ 89%] test/test_images.py::TestImgResize::test_resize_less_than_one[-1--1] PASSED [ 89%] test/test_images.py::TestImgResize::test_resize_less_than_one_width[0] PASSED [ 89%] test/test_images.py::TestImgResize::test_resize_less_than_one_width[-1] PASSED [ 89%] test/test_images.py::TestImgResize::test_resize_less_than_one_height[0] PASSED [ 89%] test/test_images.py::TestImgResize::test_resize_less_than_one_height[-1] PASSED [ 89%] test/test_images.py::TestLoader::test_audio_volume_muted PASSED [ 89%] test/test_images.py::TestLoader::test_audio_volume_muted_png PASSED [ 89%] test/test_images.py::TestLoader::test_load_file_missing PASSED [ 89%] test/test_images2.py::test_svg_scaling[/build/qtile/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 89%] test/test_ipc.py::test_ipc_json_encoder_supports_sets PASSED [ 89%] test/test_ipc.py::test_ipc_json_throws_error_on_unsupported_field PASSED [ 89%] test/test_ipc.py::test_ipc_marshall_error_on_unsupported_field PASSED [ 89%] test/test_manager.py::test_too_few_groups[x11-2-TooFewGroupsConfig] PASSED [ 89%] test/test_manager.py::test_too_few_groups[wayland-2-TooFewGroupsConfig] PASSED [ 89%] test/test_manager.py::test_setgroup[x11-2-BareConfig] PASSED [ 89%] test/test_manager.py::test_setgroup[x11-2-ManagerConfig] PASSED [ 89%] test/test_manager.py::test_setgroup[wayland-2-BareConfig] PASSED [ 89%] test/test_manager.py::test_setgroup[wayland-2-ManagerConfig] PASSED [ 89%] test/test_manager.py::test_unmap_noscreen[x11-2-BareConfig] PASSED [ 89%] test/test_manager.py::test_unmap_noscreen[x11-2-ManagerConfig] ERROR [ 90%] test/test_manager.py::test_unmap_noscreen[wayland-2-BareConfig] PASSED [ 90%] test/test_manager.py::test_unmap_noscreen[wayland-2-ManagerConfig] PASSED [ 90%] test/test_manager.py::test_dx PASSED [ 90%] test/test_manager.py::test_dwidth PASSED [ 90%] test/test_manager.py::test_dy PASSED [ 90%] test/test_manager.py::test_dheight PASSED [ 90%] test/test_qtile_help.py::test_cmd_help_subcommand PASSED [ 90%] test/test_qtile_help.py::test_cmd_help_param PASSED [ 90%] test/test_sh.py::test_comma_split_regex[1, 2, 3-output0] PASSED [ 90%] test/test_sh.py::test_comma_split_regex[1, 2, 3, '4, 5, 6'-output1] PASSED [ 90%] test/test_sh.py::test_comma_split_regex[1, "2, 3, 4", 5, 6-output2] PASSED [ 90%] test/test_sh.py::test_args_splitting[1, 2, 3-args0-kwargs0] PASSED [ 90%] test/test_sh.py::test_args_splitting[1, 2, 3, '4, 5, 6'-args1-kwargs1] PASSED [ 90%] test/test_sh.py::test_args_splitting[1, 2, 3, 4=5-args2-kwargs2] PASSED [ 90%] test/test_sh.py::test_args_splitting[1, 2, 3, 4='5, 6'-args3-kwargs3] PASSED [ 90%] test/test_sh.py::test_args_splitting[1, 2, 3, 4 = '5, 6'-args4-kwargs4] PASSED [ 90%] test/test_sh.py::test_args_splitting[1, 2, 3, 4='5=6'-args5-kwargs5] PASSED [ 90%] test/test_utils.py::test_rgb_from_hex_number PASSED [ 90%] test/test_utils.py::test_rgb_from_hex_string PASSED [ 90%] test/test_utils.py::test_rgb_from_hex_number_with_alpha PASSED [ 90%] test/test_utils.py::test_rgb_from_hex_string_with_alpha PASSED [ 90%] test/test_utils.py::test_rgb_from_hex_number_with_hex_alpha PASSED [ 90%] test/test_utils.py::test_rgb_from_hex_string_with_hex_alpha PASSED [ 90%] test/test_utils.py::test_rgb_from_base10_tuple PASSED [ 91%] test/test_utils.py::test_rgb_from_base10_tuple_with_alpha PASSED [ 91%] test/test_utils.py::test_rgb_from_3_digit_hex_number PASSED [ 91%] test/test_utils.py::test_rgb_from_3_digit_hex_string PASSED [ 91%] test/test_utils.py::test_rgb_from_3_digit_hex_number_with_alpha PASSED [ 91%] test/test_utils.py::test_rgb_from_3_digit_hex_string_with_alpha PASSED [ 91%] test/test_utils.py::test_has_transparency PASSED [ 91%] test/test_utils.py::test_remove_transparency PASSED [ 91%] test/test_utils.py::test_scrub_to_utf8 PASSED [ 91%] test/test_utils.py::test_guess_terminal_accepts_a_preference PASSED [ 91%] test/test_utils.py::test_guess_terminal_accepts_a_list_of_preferences PASSED [ 91%] test/test_utils.py::test_guess_terminal_falls_back_to_defaults PASSED [ 91%] test/test_utils.py::TestScanFiles::test_audio_volume_muted PASSED [ 91%] test/test_utils.py::TestScanFiles::test_only_svg PASSED [ 91%] test/test_utils.py::TestScanFiles::test_multiple PASSED [ 91%] test/test_utils.py::test_acall_process_pid_tracking PASSED [ 91%] test/test_utils.py::test_acall_process_adds_removes_pid PASSED [ 91%] test/test_utils.py::test_concurrent_acall_processes PASSED [ 91%] test/widgets/test_battery.py::test_text_battery_charging PASSED [ 91%] test/widgets/test_battery.py::test_text_battery_discharging PASSED [ 91%] test/widgets/test_battery.py::test_text_battery_full PASSED [ 91%] test/widgets/test_battery.py::test_text_battery_empty PASSED [ 91%] test/widgets/test_battery.py::test_text_battery_not_charging PASSED [ 91%] test/widgets/test_battery.py::test_text_battery_unknown PASSED [ 91%] test/widgets/test_battery.py::test_text_battery_hidden PASSED [ 92%] test/widgets/test_battery.py::test_text_battery_error PASSED [ 92%] test/widgets/test_battery.py::test_images_fail PASSED [ 92%] test/widgets/test_battery.py::test_images_good PASSED [ 92%] test/widgets/test_battery.py::test_images_default PASSED [ 92%] test/widgets/test_battery.py::test_battery_background PASSED [ 92%] test/widgets/test_battery.py::test_charge_control PASSED [ 92%] test/widgets/test_battery.py::test_charge_control_disabled PASSED [ 92%] test/widgets/test_battery.py::test_charge_control_force_charge PASSED [ 92%] test/widgets/test_battery.py::test_charging_foreground PASSED [ 92%] test/widgets/test_battery.py::test_discharging_foreground PASSED [ 92%] test/widgets/test_battery.py::test_low_foreground PASSED [ 92%] test/widgets/test_battery.py::test_no_charging_foreground PASSED [ 92%] test/widgets/test_canto.py::test_one_tag PASSED [ 92%] test/widgets/test_canto.py::test_multiple_tags PASSED [ 92%] test/widgets/test_canto.py::test_wrong_tags PASSED [ 92%] test/widgets/test_canto.py::test_all_feeds PASSED [ 92%] test/widgets/test_caps_num_lock_indicator.py::test_cnli PASSED [ 92%] test/widgets/test_caps_num_lock_indicator.py::test_cnli_caps_on PASSED [ 92%] test/widgets/test_check_updates.py::test_unknown_distro PASSED [ 92%] test/widgets/test_check_updates.py::test_update_available PASSED [ 92%] test/widgets/test_check_updates.py::test_no_update_available_without_no_update_string PASSED [ 92%] test/widgets/test_check_updates.py::test_no_update_available_with_no_update_string_and_color_no_updates PASSED [ 92%] test/widgets/test_check_updates.py::test_update_available_with_restart_indicator PASSED [ 92%] test/widgets/test_check_updates.py::test_update_process_error PASSED [ 93%] test/widgets/test_check_updates.py::test_line_truncations PASSED [ 93%] test/widgets/test_chord.py::test_chord_widget PASSED [ 93%] test/widgets/test_chord.py::test_chord_mode_name_deprecation PASSED [ 93%] test/widgets/test_clock.py::test_clock_default PASSED [ 93%] test/widgets/test_clock.py::test_clock_invalid_timezone PASSED [ 93%] test/widgets/test_clock.py::test_clock_datetime_timezone PASSED [ 93%] test/widgets/test_clock.py::test_clock_string_timezone PASSED [ 93%] test/widgets/test_clock.py::test_clock_change_timezones PASSED [ 93%] test/widgets/test_countdown.py::test_countdown_formatting PASSED [ 93%] test/widgets/test_crypto_ticker.py::test_set_defaults PASSED [ 93%] test/widgets/test_crypto_ticker.py::test_parse PASSED [ 93%] test/widgets/test_df.py::test_df_no_warning PASSED [ 93%] test/widgets/test_df.py::test_df_always_visible PASSED [ 93%] test/widgets/test_df.py::test_df_warn_space PASSED [ 93%] test/widgets/test_generic_poll_text.py::test_gen_poll_text PASSED [ 93%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_not_configured PASSED [ 93%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_no_json PASSED [ 93%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_headers_and_json PASSED [ 93%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_text PASSED [ 93%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_json_with_data PASSED [ 93%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_xml_no_xmltodict PASSED [ 93%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_broken_parse PASSED [ 93%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_custom_headers PASSED [ 93%] test/widgets/test_gmail_checker.py::test_gmail_checker_valid_response PASSED [ 94%] test/widgets/test_gmail_checker.py::test_gmail_checker_invalid_response PASSED [ 94%] test/widgets/test_gmail_checker.py::test_gmail_checker_only_unseen PASSED [ 94%] test/widgets/test_idlerpg.py::test_idlerpg PASSED [ 94%] test/widgets/test_imapwidget.py::test_imapwidget PASSED [ 94%] test/widgets/test_imapwidget.py::test_imapwidget_with_password PASSED [ 94%] test/widgets/test_imapwidget.py::test_imapwidget_password_none PASSED [ 94%] test/widgets/test_keyboardkbdd.py::test_keyboardkbdd_process_running PASSED [ 94%] test/widgets/test_keyboardkbdd.py::test_keyboardkbdd_process_not_running PASSED [ 94%] test/widgets/test_keyboardkbdd.py::test_keyboard_kbdd_colours PASSED [ 94%] test/widgets/test_launchbar.py::test_deprecated_configuration PASSED [ 94%] test/widgets/test_mpris2widget.py::test_mpris2_signal_handling PASSED [ 94%] test/widgets/test_mpris2widget.py::test_mpris2_custom_stop_text PASSED [ 94%] test/widgets/test_mpris2widget.py::test_mpris2_no_metadata PASSED [ 94%] test/widgets/test_mpris2widget.py::test_mpris2_no_scroll PASSED [ 94%] test/widgets/test_mpris2widget.py::test_mpris2_deprecated_format PASSED [ 94%] test/widgets/test_net.py::test_net_defaults PASSED [ 94%] test/widgets/test_net.py::test_net_single_interface PASSED [ 94%] test/widgets/test_net.py::test_net_list_interface PASSED [ 94%] test/widgets/test_net.py::test_net_invalid_interface PASSED [ 94%] test/widgets/test_net.py::test_net_use_bits PASSED [ 94%] test/widgets/test_net.py::test_net_convert_zero_b PASSED [ 94%] test/widgets/test_net.py::test_net_use_prefix PASSED [ 94%] test/widgets/test_net.py::test_net_missing_interface PASSED [ 94%] test/widgets/test_netup.py::test_host_is_empty PASSED [ 95%] test/widgets/test_netup.py::test_invalid_method PASSED [ 95%] test/widgets/test_netup.py::test_invalid_port PASSED [ 95%] test/widgets/test_netup.py::test_ping_success PASSED [ 95%] test/widgets/test_netup.py::test_ping_fail PASSED [ 95%] test/widgets/test_netup.py::test_tcp_success PASSED [ 95%] test/widgets/test_netup.py::test_tcp_fail PASSED [ 95%] test/widgets/test_notify.py::test_capabilities PASSED [ 95%] test/widgets/test_nvidia_sensors.py::test_nvidia_sensors_input_regex PASSED [ 95%] test/widgets/test_nvidia_sensors.py::test_nvidia_sensors_foreground_colour PASSED [ 95%] test/widgets/test_openweather.py::test_openweather_parse[params0-London: 7.0 \xb0C 81% light intensity drizzle] PASSED [ 95%] test/widgets/test_openweather.py::test_openweather_parse[params1-London: 07:40 16:47] PASSED [ 95%] test/widgets/test_openweather.py::test_openweather_parse[params2-London: 4.1 80 E] PASSED [ 95%] test/widgets/test_openweather.py::test_openweather_parse[params3-London: \U0001f327\ufe0f] PASSED [ 95%] test/widgets/test_openweather.py::test_url[params0-vals0] PASSED [ 95%] test/widgets/test_openweather.py::test_url[params1-vals1] PASSED [ 95%] test/widgets/test_openweather.py::test_url[params2-vals2] PASSED [ 95%] test/widgets/test_openweather.py::test_url[params3-vals3] PASSED [ 95%] test/widgets/test_pomodoro.py::test_pomodoro PASSED [ 95%] test/widgets/test_sep.py::test_deprecated_config PASSED [ 95%] test/widgets/test_stock_ticker.py::test_stock_ticker_methods PASSED [ 95%] test/widgets/test_thermal_zone.py::test_thermal_zone_getting_value PASSED [ 95%] test/widgets/test_tuned_manager.py::test_find_mode PASSED [ 95%] test/widgets/test_tuned_manager.py::test_update_bar PASSED [ 95%] test/widgets/test_tuned_manager.py::test_next_mode PASSED [ 96%] test/widgets/test_tuned_manager.py::test_previous_mode PASSED [ 96%] test/widgets/test_volume.py::test_images_fail PASSED [ 96%] test/widgets/test_volume.py::test_images_good PASSED [ 96%] test/widgets/test_volume.py::test_emoji PASSED [ 96%] test/widgets/test_volume.py::test_text PASSED [ 96%] test/widgets/test_volume.py::test_formats PASSED [ 96%] test/widgets/test_volume.py::test_foregrounds PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[AGroupBox-kwargs0] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Backlight-kwargs1] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Battery-kwargs2] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[BatteryIcon-kwargs3] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Bluetooth-kwargs4] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CPU-kwargs5] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CPUGraph-kwargs6] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Canto-kwargs7] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CapsNumLockIndicator-kwargs8] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CheckUpdates-kwargs9] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Chord-kwargs10] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Clipboard-kwargs11] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Clock-kwargs12] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Countdown-kwargs13] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CryptoTicker-kwargs14] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CurrentLayout-kwargs15] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CurrentScreen-kwargs16] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[DF-kwargs17] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[DoNotDisturb-kwargs18] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[GenPollText-kwargs19] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[GenPollUrl-kwargs20] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[GenPollCommand-kwargs21] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[GmailChecker-kwargs22] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[GroupBox-kwargs23] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[HDD-kwargs24] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[HDDBusyGraph-kwargs25] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[HDDGraph-kwargs26] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[IdleRPG-kwargs27] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Image-kwargs28] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs29] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[KeyboardKbdd-kwargs30] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[KeyboardLayout-kwargs31] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs32] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[LaunchBar-kwargs33] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Load-kwargs34] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Maildir-kwargs35] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Memory-kwargs36] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[MemoryGraph-kwargs37] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs38] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Mpris2-kwargs39] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Net-kwargs40] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[NetGraph-kwargs41] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[NetUP-kwargs42] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Notify-kwargs43] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[NvidiaSensors-kwargs44] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[OpenWeather-kwargs45] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Plasma-kwargs46] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Pomodoro-kwargs47] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Prompt-kwargs48] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs49] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[QuickExit-kwargs50] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Redshift-kwargs51] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[ScreenSplit-kwargs52] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Sep-kwargs53] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[She-kwargs54] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Spacer-kwargs55] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[StatusNotifier-kwargs56] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[StockTicker-kwargs57] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[SwapGraph-kwargs58] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[SwayNC-kwargs59] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Systray-kwargs60] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[TaskList-kwargs61] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[TextBox-kwargs62] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[ThermalSensor-kwargs63] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[ThermalZone-kwargs64] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[TunedManager-kwargs65] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[VerticalClock-kwargs66] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Volume-kwargs67] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Wallpaper-kwargs68] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[WidgetBox-kwargs69] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[WindowCount-kwargs70] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[WindowName-kwargs71] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[WindowTabs-kwargs72] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs73] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[WlanIw-kwargs74] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Wttr-kwargs75] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[_CrashMe-kwargs76] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_incompatible_orientation PASSED [ 99%] test/widgets/test_widgetbox.py::test_widgetbox_widget PASSED [ 99%] test/widgets/test_widgetbox.py::test_deprecated_configuration PASSED [ 99%] test/widgets/test_window_count.py::test_attribute_errors PASSED [ 99%] test/widgets/test_wlaniw.py::test_wifi PASSED [ 99%] test/widgets/test_wlaniw.py::test_wifi_no_connection PASSED [ 99%] test/widgets/test_wlaniw.py::test_ethernet[kwargs0-up-eth] PASSED [ 99%] test/widgets/test_wlaniw.py::test_ethernet[kwargs1-down-Disconnected] PASSED [ 99%] test/widgets/test_wlaniw.py::test_ethernet[kwargs2-up-Wired] PASSED [ 99%] test/widgets/test_wttr.py::test_wttr_methods PASSED [ 99%] test/widgets/test_wttr.py::test_wttr_no_location PASSED [100%] ==================================== ERRORS ==================================== _______ ERROR at setup of test_inhibitor_visible[1-x11-InhibitorConfig] ________ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-09 21:27:44,965 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer _____ ERROR at setup of test_inhibitor_visible[1-wayland-InhibitorConfig] ______ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-09 21:27:50,756 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-09 21:27:50,765 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-09 21:27:50,767 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-09 21:27:50,768 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-09 21:27:50,773 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-09 21:27:50,781 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-09 21:27:50,866 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 ---------------------------- Captured stderr setup ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 ________ ERROR at setup of test_inhibitor_focus[1-x11-InhibitorConfig] _________ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-09 21:27:57,333 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-09 21:28:00,954 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. 2026-09-09 21:28:00,994 libqtile manager.py:reconfigure_screens():L523  Reconfiguring screens. ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. INFO - Reconfiguring screens. ______ ERROR at setup of test_inhibitor_fullscreen[1-x11-InhibitorConfig] ______ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-09 21:28:18,295 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-09 21:28:22,153 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. ________ ERROR at setup of test_inhibitor_global[1-x11-InhibitorConfig] ________ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-09 21:28:35,723 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer ______________ ERROR at setup of test_window[1-x11-TreeTabConfig] ______________ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-09 23:35:08,992 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer ___________ ERROR at setup of test_sort_windows[1-x11-TreeTabConfig] ___________ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-09 23:36:41,688 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer _________________ ERROR at setup of test_event[1-x11-GBConfig] _________________ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-09 23:54:37,240 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-09 23:54:41,129 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- Traceback (most recent call last): File "/build/qtile/src/qtile/test/scripts/window.py", line 178, in win = Gtk.Window(title=title) File "/usr/lib/python3.14/site-packages/gi/overrides/Gtk.py", line 571, in __init__ raise RuntimeError( ...<2 lines>... ) RuntimeError: Gtk couldn't be initialized. Use Gtk.init_check() if you want to handle this case. qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. __ ERROR at setup of test_dgroup_spawn_in_group[1-wayland-DGroupsSpawnConfig] __ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-10 00:06:28,737 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:06:28,740 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:06:28,741 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:06:28,742 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:06:28,745 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:06:28,752 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:06:28,804 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:06:32,508 libqtile core.py:log_cb():L98  [xwayland/server.c:108] Starting Xwayland on :0 ---------------------------- Captured stderr setup ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server Xwayland glamor: GBM Wayland interfaces not available Failed to initialize glamor, falling back to sw The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Unsupported maximum keycode 709, clipping. > X11 cannot support keycodes above 255. > Warning: Virtual modifier Hyper multiply defined > Using 0, ignoring 0 > Warning: Virtual modifier ScrollLock multiply defined > Using 0, ignoring 0 Errors from xkbcomp are not fatal to the X server xterm: cannot load font "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1" qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 INFO - [xwayland/server.c:108] Starting Xwayland on :0 _______ ERROR at setup of test_custom_symbols[1-x11-bluetooth_manager0] ________ request = > widget = , fake_dbus_daemon = None manager_nospawn = @pytest.fixture def bluetooth_manager(request, widget, fake_dbus_daemon, manager_nospawn): class BluetoothConfig(BareConfig): screens = [Screen(top=Bar([widget(**getattr(request, "param", dict()))], 20))] > manager_nospawn.start(BluetoothConfig) test/widgets/test_bluetooth.py:241: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .BluetoothConfig'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-10 00:34:26,959 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:34:30,171 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. _____ ERROR at setup of test_clipboard_blacklist[1-x11-clipboard_manager0] _____ request = > minimal_conf_noscreen = .MinimalConf'> manager_nospawn = @pytest.fixture def clipboard_manager(request, minimal_conf_noscreen, manager_nospawn): widget = libqtile.widget.Clipboard(**getattr(request, "param", dict())) config = minimal_conf_noscreen config.screens = [Screen(top=Bar([widget], 10))] > manager_nospawn.start(config) test/widgets/test_clipboard.py:22: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-10 00:35:23,499 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:35:26,172 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. ________ ERROR at setup of test_hide_crashed_widget[1-x11-CrashConfig] _________ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-10 00:38:19,066 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:38:21,178 libqtile bar.py:_configure_widget():L354  BadWidget widget crashed during _configure with error: Traceback (most recent call last): File "/build/qtile/src/qtile/libqtile/bar.py", line 345, in _configure_widget widget._configure(self.qtile, self) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/build/qtile/src/qtile/test/widgets/test_hide_crash.py", line 16, in _configure 1 / 0 ~~^~~ ZeroDivisionError: division by zero 2026-09-10 00:38:21,356 libqtile bar.py:_configure_widget():L354  BadWidget widget crashed during _configure with error: Traceback (most recent call last): File "/build/qtile/src/qtile/libqtile/bar.py", line 345, in _configure_widget widget._configure(self.qtile, self) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/build/qtile/src/qtile/test/widgets/test_hide_crash.py", line 16, in _configure 1 / 0 ~~^~~ ZeroDivisionError: division by zero 2026-09-10 00:38:23,629 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. 2026-09-10 00:38:23,735 libqtile manager.py:reconfigure_screens():L523  Reconfiguring screens. ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer ERROR - BadWidget widget crashed during _configure with error: Traceback (most recent call last): File "/build/qtile/src/qtile/libqtile/bar.py", line 345, in _configure_widget widget._configure(self.qtile, self) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/build/qtile/src/qtile/test/widgets/test_hide_crash.py", line 16, in _configure 1 / 0 ~~^~~ ZeroDivisionError: division by zero ERROR - BadWidget widget crashed during _configure with error: Traceback (most recent call last): File "/build/qtile/src/qtile/libqtile/bar.py", line 345, in _configure_widget widget._configure(self.qtile, self) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/build/qtile/src/qtile/test/widgets/test_hide_crash.py", line 16, in _configure 1 / 0 ~~^~~ ZeroDivisionError: division by zero ______ ERROR at setup of test_hide_crashed_widget[1-wayland-CrashConfig] _______ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-10 00:38:28,187 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:38:28,348 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:38:28,375 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:38:28,385 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:38:28,438 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:38:28,486 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:38:28,922 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:38:30,231 libqtile bar.py:_configure_widget():L354  BadWidget widget crashed during _configure with error: Traceback (most recent call last): File "/build/qtile/src/qtile/libqtile/bar.py", line 345, in _configure_widget widget._configure(self.qtile, self) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/build/qtile/src/qtile/test/widgets/test_hide_crash.py", line 16, in _configure 1 / 0 ~~^~~ ZeroDivisionError: division by zero 2026-09-10 00:38:30,485 libqtile bar.py:_configure_widget():L354  BadWidget widget crashed during _configure with error: Traceback (most recent call last): File "/build/qtile/src/qtile/libqtile/bar.py", line 345, in _configure_widget widget._configure(self.qtile, self) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/build/qtile/src/qtile/test/widgets/test_hide_crash.py", line 16, in _configure 1 / 0 ~~^~~ ZeroDivisionError: division by zero 2026-09-10 00:38:32,647 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 ERROR - BadWidget widget crashed during _configure with error: Traceback (most recent call last): File "/build/qtile/src/qtile/libqtile/bar.py", line 345, in _configure_widget widget._configure(self.qtile, self) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/build/qtile/src/qtile/test/widgets/test_hide_crash.py", line 16, in _configure 1 / 0 ~~^~~ ZeroDivisionError: division by zero ERROR - BadWidget widget crashed during _configure with error: Traceback (most recent call last): File "/build/qtile/src/qtile/libqtile/bar.py", line 345, in _configure_widget widget._configure(self.qtile, self) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/build/qtile/src/qtile/test/widgets/test_hide_crash.py", line 16, in _configure 1 / 0 ~~^~~ ZeroDivisionError: division by zero WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. _____________ ERROR at setup of test_tasklist_defaults[1-x11-top] ______________ request = > manager_nospawn = position = 'top', progs = [('test', 'test', '')] @pytest.fixture def launchbar_manager(request, manager_nospawn, position, progs): config = getattr(request, "param", dict()) class LaunchBarConfig(BareConfig): screens = [ Screen( **{ position: Bar( [LaunchBarTestWidget(progs=progs, name="launchbar", padding=0, **config)], 28, ) } ) ] > manager_nospawn.start(LaunchBarConfig) test/widgets/test_launchbar.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .LaunchBarConfig'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-10 00:40:39,066 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:40:42,325 libqtile launchbar.py:setup_images():L119  No icon found for application "test" (None) switch to text mode 2026-09-10 00:40:42,988 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - No icon found for application "test" (None) switch to text mode WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. _____ ERROR at setup of test_launchbar_click[1-x11-progs0-top-coords1-two] _____ request = > manager_nospawn = position = 'top' progs = [('one', 'qshell:None', ''), ('two', 'qshell:None', '')] @pytest.fixture def launchbar_manager(request, manager_nospawn, position, progs): config = getattr(request, "param", dict()) class LaunchBarConfig(BareConfig): screens = [ Screen( **{ position: Bar( [LaunchBarTestWidget(progs=progs, name="launchbar", padding=0, **config)], 28, ) } ) ] > manager_nospawn.start(LaunchBarConfig) test/widgets/test_launchbar.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .LaunchBarConfig'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- [('one', 'qshell:None', ''), ('two', 'qshell:None', '')] 2026-09-10 00:41:08,366 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:41:11,601 libqtile launchbar.py:setup_images():L119  No icon found for application "one" (None) switch to text mode 2026-09-10 00:41:11,988 libqtile launchbar.py:setup_images():L119  No icon found for application "two" (None) switch to text mode 2026-09-10 00:41:12,312 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - No icon found for application "one" (None) switch to text mode WARNING - No icon found for application "two" (None) switch to text mode WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. ____ ERROR at setup of test_launchbar_click[1-x11-progs0-right-coords4-one] ____ request = > manager_nospawn = position = 'right' progs = [('one', 'qshell:None', ''), ('two', 'qshell:None', '')] @pytest.fixture def launchbar_manager(request, manager_nospawn, position, progs): config = getattr(request, "param", dict()) class LaunchBarConfig(BareConfig): screens = [ Screen( **{ position: Bar( [LaunchBarTestWidget(progs=progs, name="launchbar", padding=0, **config)], 28, ) } ) ] > manager_nospawn.start(LaunchBarConfig) test/widgets/test_launchbar.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .LaunchBarConfig'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- [('one', 'qshell:None', ''), ('two', 'qshell:None', '')] 2026-09-10 00:41:25,736 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:41:28,924 libqtile launchbar.py:setup_images():L119  No icon found for application "one" (None) switch to text mode 2026-09-10 00:41:29,353 libqtile launchbar.py:setup_images():L119  No icon found for application "two" (None) switch to text mode 2026-09-10 00:41:29,791 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - No icon found for application "one" (None) switch to text mode WARNING - No icon found for application "two" (None) switch to text mode WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. ___ ERROR at setup of test_launchbar_click[1-wayland-progs0-top-coords0-one] ___ request = > manager_nospawn = position = 'top' progs = [('one', 'qshell:None', ''), ('two', 'qshell:None', '')] @pytest.fixture def launchbar_manager(request, manager_nospawn, position, progs): config = getattr(request, "param", dict()) class LaunchBarConfig(BareConfig): screens = [ Screen( **{ position: Bar( [LaunchBarTestWidget(progs=progs, name="launchbar", padding=0, **config)], 28, ) } ) ] > manager_nospawn.start(LaunchBarConfig) test/widgets/test_launchbar.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .LaunchBarConfig'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- [('one', 'qshell:None', ''), ('two', 'qshell:None', '')] 2026-09-10 00:41:38,618 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:41:38,633 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:41:38,639 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:41:38,644 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:41:38,662 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:41:38,702 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:41:38,975 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:41:41,772 libqtile launchbar.py:setup_images():L119  No icon found for application "one" (None) switch to text mode 2026-09-10 00:41:42,141 libqtile launchbar.py:setup_images():L119  No icon found for application "two" (None) switch to text mode 2026-09-10 00:41:42,591 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 WARNING - No icon found for application "one" (None) switch to text mode WARNING - No icon found for application "two" (None) switch to text mode WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. __ ERROR at setup of test_launchbar_click[1-wayland-progs0-left-coords2-one] ___ request = > manager_nospawn = position = 'left' progs = [('one', 'qshell:None', ''), ('two', 'qshell:None', '')] @pytest.fixture def launchbar_manager(request, manager_nospawn, position, progs): config = getattr(request, "param", dict()) class LaunchBarConfig(BareConfig): screens = [ Screen( **{ position: Bar( [LaunchBarTestWidget(progs=progs, name="launchbar", padding=0, **config)], 28, ) } ) ] > manager_nospawn.start(LaunchBarConfig) test/widgets/test_launchbar.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .LaunchBarConfig'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- [('one', 'qshell:None', ''), ('two', 'qshell:None', '')] 2026-09-10 00:41:52,414 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:41:52,428 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:41:52,434 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:41:52,439 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:41:52,461 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:41:52,500 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:41:52,803 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:41:55,506 libqtile launchbar.py:setup_images():L119  No icon found for application "one" (None) switch to text mode 2026-09-10 00:41:56,098 libqtile launchbar.py:setup_images():L119  No icon found for application "two" (None) switch to text mode 2026-09-10 00:41:56,699 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 WARNING - No icon found for application "one" (None) switch to text mode WARNING - No icon found for application "two" (None) switch to text mode WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. __ ERROR at setup of test_launchbar_click[1-wayland-progs0-right-coords4-one] __ request = > manager_nospawn = position = 'right' progs = [('one', 'qshell:None', ''), ('two', 'qshell:None', '')] @pytest.fixture def launchbar_manager(request, manager_nospawn, position, progs): config = getattr(request, "param", dict()) class LaunchBarConfig(BareConfig): screens = [ Screen( **{ position: Bar( [LaunchBarTestWidget(progs=progs, name="launchbar", padding=0, **config)], 28, ) } ) ] > manager_nospawn.start(LaunchBarConfig) test/widgets/test_launchbar.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .LaunchBarConfig'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- [('one', 'qshell:None', ''), ('two', 'qshell:None', '')] 2026-09-10 00:42:05,542 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:42:05,596 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:42:05,602 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:42:05,607 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:42:05,625 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:42:05,661 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:42:05,917 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:42:08,379 libqtile launchbar.py:setup_images():L119  No icon found for application "one" (None) switch to text mode 2026-09-10 00:42:08,929 libqtile launchbar.py:setup_images():L119  No icon found for application "two" (None) switch to text mode 2026-09-10 00:42:09,460 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 WARNING - No icon found for application "one" (None) switch to text mode WARNING - No icon found for application "two" (None) switch to text mode WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. __________ ERROR at setup of test_custom_text[1-x11-plasma_manager0] ___________ manager_nospawn = request = > @pytest.fixture(scope="function") def plasma_manager(manager_nospawn, request): class PlasmaConfig(Config): layouts = [layout.Plasma()] screens = [Screen(top=Bar([plasma.Plasma(**getattr(request, "param", dict()))], 30))] > manager_nospawn.start(PlasmaConfig) test/widgets/test_plasma.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .PlasmaConfig'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-10 00:46:20,385 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:46:24,013 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. 2026-09-10 00:46:24,052 libqtile manager.py:reconfigure_screens():L523  Reconfiguring screens. ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer __________ ERROR at setup of test_mode_change[1-x11-plasma_manager0] ___________ manager_nospawn = request = > @pytest.fixture(scope="function") def plasma_manager(manager_nospawn, request): class PlasmaConfig(Config): layouts = [layout.Plasma()] screens = [Screen(top=Bar([plasma.Plasma(**getattr(request, "param", dict()))], 30))] > manager_nospawn.start(PlasmaConfig) test/widgets/test_plasma.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .PlasmaConfig'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-10 00:47:36,411 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:47:40,177 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. 2026-09-10 00:47:40,294 libqtile manager.py:reconfigure_screens():L523  Reconfiguring screens. ---------------------------- Captured stderr setup ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. INFO - Reconfiguring screens. __________ ERROR at setup of test_unmap_noscreen[x11-2-ManagerConfig] __________ fixturedef = request = > @pytest.hookimpl(wrapper=True) def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None: if ( fixturedef.argname == "event_loop_policy" and fixturedef.func.__module__ != __name__ ): warnings.warn( PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING), ) asyncio_mode = _get_asyncio_mode(request.config) if not _is_asyncio_fixture_function(fixturedef.func): if asyncio_mode == Mode.STRICT: # Ignore async fixtures without explicit asyncio mark in strict mode # This applies to pytest_trio fixtures, for example > return (yield) ^^^^^ /usr/lib/python3.14/site-packages/pytest_asyncio/plugin.py:924: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/conftest.py:93: in manager manager_nospawn.start(config) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2026-09-10 01:11:17,858 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 01:11:19,338 libqtile xcbq.py:enable_screen_change_notifications():L570  no randr configured for this X server, screen change notifications disabled 2026-09-10 01:11:19,526 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ---------------------------- Captured stderr setup ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - no randr configured for this X server, screen change notifications disabled WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. =================================== FAILURES =================================== _____________________________ test_addgroup[1-x11] _____________________________ manager_nospawn = @pytest.mark.usefixtures("hook_fixture") def test_addgroup(manager_nospawn): class AddgroupConfig(BareConfig): test = CallGroupname() hook.subscribe.addgroup(test) > manager_nospawn.start(AddgroupConfig) test/test_hook.py:310: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .AddgroupConfig'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stderr setup ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:12:44,058 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:12:47,433 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:12:51,120 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate ________________________ test_client_killed[1-wayland] _________________________ manager_nospawn = @pytest.mark.usefixtures("hook_fixture") def test_client_killed(manager_nospawn): class ClientKilledConfig(BareConfig): test = CallWindow() hook.subscribe.client_killed(test) manager_nospawn.start(ClientKilledConfig) manager_nospawn.test_window("Test Client") manager_nospawn.c.window.kill() > assert_window(manager_nospawn, "Test Client") test/test_hook.py:535: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/helpers.py:75: in wrapper raise self.last_failure test/helpers.py:65: in wrapper return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ mgr_nospawn = window = 'Test Client' @Retry(ignore_exceptions=(AssertionError)) def assert_window(mgr_nospawn, window): > assert mgr_nospawn.c.eval("self.config.test.window") == window E AssertionError: assert '' == 'Test Client' E E - Test Client test/test_hook.py:496: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:13:45,080 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:13:45,083 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:13:45,084 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:13:45,085 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:13:45,088 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:13:45,095 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:13:45,146 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:13:45,356 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:13:55,408 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate _____________________ test_current_layout_icon_mode[1-x11] _____________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> def test_current_layout_icon_mode(manager_nospawn, minimal_conf_noscreen): config = get_widget_config(CurrentLayout(mode="icon"), minimal_conf_noscreen) > manager_nospawn.start(config) test/widgets/test_currentlayout.py:56: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:36:07,456 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:36:11,452 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:36:14,944 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate ___________________ test_current_layout_icon_mode[1-wayland] ___________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> def test_current_layout_icon_mode(manager_nospawn, minimal_conf_noscreen): config = get_widget_config(CurrentLayout(mode="icon"), minimal_conf_noscreen) > manager_nospawn.start(config) test/widgets/test_currentlayout.py:56: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stderr setup ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:36:15,976 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:36:15,992 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:36:15,998 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:36:16,002 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:36:16,019 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:36:16,044 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:36:16,288 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:36:20,947 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- Errors from xkbcomp are not fatal to the X server qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:36:23,130 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate _____________________ test_current_layout_text_mode[1-x11] _____________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> def test_current_layout_text_mode(manager_nospawn, minimal_conf_noscreen): config = get_widget_config(CurrentLayout(mode="text"), minimal_conf_noscreen) > manager_nospawn.start(config) test/widgets/test_currentlayout.py:76: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:36:25,098 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer ----------------------------- Captured stderr call ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:36:30,254 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. 2026-09-10 00:36:31,168 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate ___________________ test_current_layout_text_mode[1-wayland] ___________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> def test_current_layout_text_mode(manager_nospawn, minimal_conf_noscreen): config = get_widget_config(CurrentLayout(mode="text"), minimal_conf_noscreen) > manager_nospawn.start(config) test/widgets/test_currentlayout.py:76: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:36:31,942 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:36:31,955 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:36:31,962 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:36:31,967 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:36:31,983 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:36:32,017 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:36:32,280 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:36:36,550 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:36:39,040 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate _____________________ test_current_layout_both_mode[1-x11] _____________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> def test_current_layout_both_mode(manager_nospawn, minimal_conf_noscreen): config = get_widget_config(CurrentLayout(mode="both"), minimal_conf_noscreen) > manager_nospawn.start(config) test/widgets/test_currentlayout.py:96: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:36:40,085 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer ----------------------------- Captured stderr call ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:36:46,623 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. 2026-09-10 00:36:46,968 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate ___________________ test_current_layout_both_mode[1-wayland] ___________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> def test_current_layout_both_mode(manager_nospawn, minimal_conf_noscreen): config = get_widget_config(CurrentLayout(mode="both"), minimal_conf_noscreen) > manager_nospawn.start(config) test/widgets/test_currentlayout.py:96: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:36:47,742 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:36:47,754 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:36:47,762 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:36:47,766 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:36:47,782 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:36:47,814 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:36:48,060 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:36:52,005 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:36:54,903 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate _______________ test_default_settings[1-x11-screen0-top-height] ________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> screen = , location = 'top' attribute = 'height' @pytest.mark.parametrize("screen,location,attribute", parameters) def test_default_settings(manager_nospawn, minimal_conf_noscreen, screen, location, attribute): config = minimal_conf_noscreen config.screens = [screen] > manager_nospawn.start(config) test/widgets/test_image.py:27: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:38:37,247 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:38:41,056 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:38:44,074 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate _______________ test_default_settings[1-x11-screen1-left-width] ________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> screen = , location = 'left' attribute = 'width' @pytest.mark.parametrize("screen,location,attribute", parameters) def test_default_settings(manager_nospawn, minimal_conf_noscreen, screen, location, attribute): config = minimal_conf_noscreen config.screens = [screen] > manager_nospawn.start(config) test/widgets/test_image.py:27: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stderr setup ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:38:45,673 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer ----------------------------- Captured stderr call ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:38:51,057 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. 2026-09-10 00:38:52,338 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate _____________ test_default_settings[1-wayland-screen0-top-height] ______________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> screen = , location = 'top' attribute = 'height' @pytest.mark.parametrize("screen,location,attribute", parameters) def test_default_settings(manager_nospawn, minimal_conf_noscreen, screen, location, attribute): config = minimal_conf_noscreen config.screens = [screen] > manager_nospawn.start(config) test/widgets/test_image.py:27: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ---------------------------- Captured stderr setup ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:38:53,574 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:38:53,618 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:38:53,624 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:38:53,628 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:38:53,647 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:38:53,679 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:38:53,922 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:38:58,139 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:39:00,765 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate _____________________________ test_no_scale[1-x11] _____________________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> def test_no_scale(manager_nospawn, minimal_conf_noscreen): img2 = widget.Image(filename=IMAGE_FILE, scale=False) config = minimal_conf_noscreen config.screens = [libqtile.config.Screen(top=libqtile.bar.Bar([img2], 40))] > manager_nospawn.start(config) test/widgets/test_image.py:74: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:39:30,255 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:39:34,133 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:39:37,111 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate _____________ test_notifications_default_timeouts[1-wayland-2-45] ______________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> urgency = 2, timeout = 45 @pytest.mark.parametrize( "urgency,timeout", [(0, DEFAULT_TIMEOUT_LOW), (1, DEFAULT_TIMEOUT_NORMAL), (2, DEFAULT_TIMEOUT_URGENT)], ) @pytest.mark.skipif(shutil.which("notify-send") is None, reason="notify-send not installed.") @pytest.mark.usefixtures("dbus") def test_notifications_default_timeouts(manager_nospawn, minimal_conf_noscreen, urgency, timeout): notify.Notify.timeout_add = log_timeout widget = notify.Notify( default_timeout_low=DEFAULT_TIMEOUT_LOW, default_timeout=DEFAULT_TIMEOUT_NORMAL, default_timeout_urgent=DEFAULT_TIMEOUT_URGENT, ) config = minimal_conf_noscreen config.screens = [libqtile.config.Screen(top=Bar([widget], 10))] > manager_nospawn.start(config) test/widgets/test_notify.py:353: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:45:58,455 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:45:58,471 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:45:58,476 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:45:58,479 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:45:58,497 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:45:58,523 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:45:58,770 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:46:02,658 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:46:05,639 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate ___________________________ test_prompt_focus[1-x11] ___________________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> def test_prompt_focus(manager_nospawn, minimal_conf_noscreen): """Test if focusing the prompt works properly.""" prompt_widget = widget.Prompt() config = minimal_conf_noscreen config.screens = [libqtile.config.Screen(top=libqtile.bar.Bar([prompt_widget], 10))] > manager_nospawn.start(config) test/widgets/test_prompt.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:47:51,829 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:47:55,644 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:47:58,616 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate ________________________ test_prompt_input[1-x11-none] _________________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> cursor_type = 'none' @pytest.mark.parametrize("cursor_type", ["line", "block", "bar", "none"]) def test_prompt_input(manager_nospawn, minimal_conf_noscreen, cursor_type): """Test if input is working correctly.""" prompt_widget = widget.Prompt( cursor_color="#ff0000", cursor_type=cursor_type, cursorblink=False ) config = minimal_conf_noscreen config.screens = [libqtile.config.Screen(top=libqtile.bar.Bar([prompt_widget], 10))] > manager_nospawn.start(config) test/widgets/test_prompt.py:59: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:48:20,364 libqtile xcursors.py:_setup_xcursor_binding():L108  xcb-cursor not found, fallback to font pointer 2026-09-10 00:48:24,324 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Multiple symbols for level 1/group 1 on key > Using F23, ignoring XF86TouchpadOff > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Symbol map for key redefined > Using last definition for conflicting fields > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn > Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff > Warning: Could not resolve keysym XF86ActionOnSelection > Warning: Could not resolve keysym XF86ContextualInsert > Warning: Could not resolve keysym XF86ContextualQuery Errors from xkbcomp are not fatal to the X server qtile failed to start; captured std* output: INFO - xcb-cursor not found, fallback to font pointer WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:48:26,801 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate ______________________ test_prompt_input[1-wayland-none] _______________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> cursor_type = 'none' @pytest.mark.parametrize("cursor_type", ["line", "block", "bar", "none"]) def test_prompt_input(manager_nospawn, minimal_conf_noscreen, cursor_type): """Test if input is working correctly.""" prompt_widget = widget.Prompt( cursor_color="#ff0000", cursor_type=cursor_type, cursorblink=False ) config = minimal_conf_noscreen config.screens = [libqtile.config.Screen(top=libqtile.bar.Bar([prompt_widget], 10))] > manager_nospawn.start(config) test/widgets/test_prompt.py:59: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:48:43,158 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:48:43,189 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:48:43,195 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:48:43,199 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:48:43,224 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:48:43,255 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:48:43,476 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 2026-09-10 00:48:45,631 libqtile prompt.py:_configure():L445  Prompt widget only supports audible bell under X11 2026-09-10 00:48:46,405 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. ----------------------------- Captured stderr call ----------------------------- qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 WARNING - Prompt widget only supports audible bell under X11 WARNING - Could not find logind service. Suspend and resume hooks will be unavailable. --------------------------- Captured stdout teardown --------------------------- 2026-09-10 00:48:49,734 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate ________ test_widget_init_config_vertical_bar[1-wayland-NetUP-kwargs34] ________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> widget_class = kwargs = {'dummy_parameter': 1} @pytest.mark.parametrize( "widget_class,kwargs", [ param for param in parameters if param[0]().orientations in [ORIENTATION_BOTH, ORIENTATION_VERTICAL] ], ) def test_widget_init_config_vertical_bar( manager_nospawn, minimal_conf_noscreen, widget_class, kwargs ): if widget_class in exclusive_backend: if exclusive_backend[widget_class] != manager_nospawn.backend.name: pytest.skip("Unsupported backend") widget = widget_class(**kwargs) widget.draw = no_op # If widget inits ok then kwargs will now be attributes for k, v in kwargs.items(): assert getattr(widget, k) == v # Test configuration config = minimal_conf_noscreen config.screens = [libqtile.config.Screen(left=libqtile.bar.Bar([widget], 10))] > manager_nospawn.start(config) test/widgets/test_widget_init_configure.py:129: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .MinimalConf'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): # the x server emits a real ScreenChangeNotify shortly after startup; # debouncing it would fire the screen_change hook (and possibly # reconfigure_screens()) at an arbitrary point mid-test, so configs # that aren't explicitly testing the debounce opt out of it. if not hasattr(config_class, "screen_change_debounce_timeout"): config_class.screen_change_debounce_timeout = 0 multiprocessing.set_start_method("fork", force=True) readlogs, writelogs = os.pipe() rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: rpipe.close() os.close(readlogs) os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) init_log(self.log_level) formatter = logging.Formatter("%(levelname)s - %(message)s") handler = logging.StreamHandler(os.fdopen(writelogs, "w")) handler.setFormatter(formatter) logger.addHandler(handler) # Initialise fontconfig before starting qtile to prevent races pangocffi.init_fontconfig() kore = self.backend.create() os.environ.update(self.backend.env) from libqtile.core.lifecycle import lifecycle Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() lifecycle._atexit() except Exception: wpipe.send(traceback.format_exc()) finally: wpipe.close() self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() wpipe.close() os.close(writelogs) self.logspipe = readlogs # First, wait for socket to appear try: if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return self._dump_logs("qtile failed to start; captured std* output:") if rpipe.poll(0.1): error = rpipe.recv() raise AssertionError(f"Error launching qtile, traceback:\n{error}") > raise AssertionError("Error launching qtile") E AssertionError: Error launching qtile test/helpers.py:278: AssertionError ----------------------------- Captured stdout call ----------------------------- 2026-09-10 00:59:59,186 libqtile core.py:log_cb():L98  [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless 2026-09-10 00:59:59,188 libqtile core.py:log_cb():L98  [backend/headless/backend.c:60] Creating headless backend 2026-09-10 00:59:59,189 libqtile core.py:log_cb():L98  [util/env.c:25] Loading WLR_RENDERER option: pixman 2026-09-10 00:59:59,190 libqtile core.py:log_cb():L98  [render/pixman/renderer.c:328] Creating pixman renderer 2026-09-10 00:59:59,193 libqtile core.py:log_cb():L98  [backend/headless/backend.c:17] Starting headless backend 2026-09-10 00:59:59,200 libqtile core.py:log_cb():L98  [server.c:202] Updating: 0,0 (800x600) 2026-09-10 00:59:59,251 libqtile core.py:log_cb():L98  [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 ----------------------------- Captured stderr call ----------------------------- qtile failed to start; captured std* output: INFO - [backend/backend.c:342] Loading user-specified backends due to WLR_BACKENDS: headless INFO - [backend/headless/backend.c:60] Creating headless backend INFO - [util/env.c:25] Loading WLR_RENDERER option: pixman INFO - [render/pixman/renderer.c:328] Creating pixman renderer INFO - [backend/headless/backend.c:17] Starting headless backend INFO - [server.c:202] Updating: 0,0 (800x600) INFO - [server.c:128] Running Wayland compositor on WAYLAND_DISPLAY=wayland-0 --------------------------- Captured stdout teardown --------------------------- 2026-09-10 01:00:08,130 libqtile sleep.py:_start():L85  Could not find logind service. Suspend and resume hooks will be unavailable. 2026-09-10 01:00:08,148 libqtile netup.py:is_host_empty():L34  Host is not set 2026-09-10 01:00:09,955 libqtile lifecycle.py:_atexit():L38  Qtile will now terminate ________________________ test_repl_server_executes_code ________________________ pyfuncitem = @pytest.hookimpl(tryfirst=True) def pytest_pyfunc_call(pyfuncitem: Any) -> bool | None: def run_with_hypothesis(**kwargs: Any) -> None: with get_runner(backend_name, backend_options) as runner: runner.run_test(original_func, kwargs) backend = pyfuncitem.funcargs.get("anyio_backend") if backend: backend_name, backend_options = extract_backend_and_options(backend) if hasattr(pyfuncitem.obj, "hypothesis"): # Wrap the inner test function unless it's already wrapped original_func = pyfuncitem.obj.hypothesis.inner_test if original_func.__qualname__ != run_with_hypothesis.__qualname__: if iscoroutinefunction(original_func): pyfuncitem.obj.hypothesis.inner_test = run_with_hypothesis return None if iscoroutinefunction(pyfuncitem.obj): funcargs = pyfuncitem.funcargs testargs = {arg: funcargs[arg] for arg in pyfuncitem._fixtureinfo.argnames} with get_runner(backend_name, backend_options) as runner: try: > runner.run_test(pyfuncitem.obj, testargs) /usr/lib/python3.14/site-packages/anyio/pytest_plugin.py:292: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2494: in run_test self._raise_async_exceptions() /usr/lib/python3.14/site-packages/anyio/_backends/_asyncio.py:2380: in _raise_async_exceptions raise exceptions[0] libqtile/interactive/repl.py:161: in handle_client await send("", end=False) libqtile/interactive/repl.py:124: in send await writer.drain() /usr/lib/python3.14/asyncio/streams.py:389: in drain await self._protocol._drain_helper() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = async def _drain_helper(self): if self._connection_lost: > raise ConnectionResetError('Connection lost') E ConnectionResetError: Connection lost /usr/lib/python3.14/asyncio/streams.py:166: ConnectionResetError =============================== warnings summary =============================== ../../../../usr/lib/python3.14/site-packages/_pytest/config/__init__.py:1464 /usr/lib/python3.14/site-packages/_pytest/config/__init__.py:1464: PytestConfigWarning: Unknown config option: timeout self._warn_or_fail_if_strict(f"Unknown config option: {key}\n") test/backend/test_idle_inhibit.py: 10 warnings test/backend/test_idle_notify.py: 4 warnings test/backend/wayland/test_bar_pointer.py: 1 warning test/backend/wayland/test_cursor_shape.py: 5 warnings test/backend/wayland/test_foreign_toplevel_management.py: 5 warnings test/backend/wayland/test_idle.py: 4 warnings test/backend/wayland/test_layer_shell.py: 22 warnings test/backend/wayland/test_output_power.py: 3 warnings test/backend/wayland/test_session_lock.py: 8 warnings test/backend/wayland/test_window.py: 5 warnings test/backend/x11/test_window.py: 26 warnings test/backend/x11/test_xcbq.py: 1 warning test/backend/x11/test_xcore.py: 4 warnings test/core/test_exitcode.py: 4 warnings test/extension/test_window_list.py: 2 warnings test/layouts/test_base.py: 4 warnings test/layouts/test_bsp.py: 6 warnings test/layouts/test_columns.py: 18 warnings test/layouts/test_common.py: 378 warnings test/layouts/test_floating.py: 4 warnings test/layouts/test_matrix.py: 12 warnings test/layouts/test_max.py: 18 warnings test/layouts/test_plasma.py: 20 warnings test/layouts/test_ratiotile.py: 14 warnings test/layouts/test_screensplit.py: 8 warnings test/layouts/test_slice.py: 16 warnings test/layouts/test_spiral.py: 30 warnings test/layouts/test_stack.py: 22 warnings test/layouts/test_tile.py: 14 warnings test/layouts/test_treetab.py: 4 warnings test/layouts/test_verticaltile.py: 10 warnings test/layouts/test_xmonad.py: 68 warnings test/layouts/test_zoomy.py: 4 warnings test/test_bar.py: 62 warnings test/test_command.py: 48 warnings test/test_config.py: 8 warnings test/test_dgroups.py: 6 warnings test/test_fakescreen.py: 18 warnings test/test_floating.py: 10 warnings test/test_group.py: 8 warnings test/test_hook.py: 58 warnings test/test_manager.py: 122 warnings test/test_match.py: 40 warnings test/test_popup.py: 2 warnings test/test_qtile_cmd.py: 8 warnings test/test_restart.py: 2 warnings test/test_scratchpad.py: 20 warnings test/test_sh.py: 16 warnings test/test_swallow.py: 2 warnings test/test_when.py: 2 warnings test/test_window.py: 42 warnings test/widgets/test_base.py: 20 warnings test/widgets/test_bluetooth.py: 32 warnings test/widgets/test_check_updates.py: 2 warnings test/widgets/test_chord.py: 2 warnings test/widgets/test_clipboard.py: 12 warnings test/widgets/test_configerror.py: 8 warnings test/widgets/test_cpu.py: 2 warnings test/widgets/test_crashme.py: 2 warnings test/widgets/test_currentlayout.py: 8 warnings test/widgets/test_currentscreen.py: 2 warnings test/widgets/test_do_not_disturb.py: 6 warnings test/widgets/test_generic_poll_text.py: 2 warnings test/widgets/test_groupbox.py: 2 warnings test/widgets/test_hdd.py: 2 warnings test/widgets/test_hide_crash.py: 2 warnings test/widgets/test_image.py: 16 warnings test/widgets/test_import_error.py: 8 warnings test/widgets/test_launchbar.py: 16 warnings test/widgets/test_load.py: 6 warnings test/widgets/test_memory.py: 10 warnings test/widgets/test_misc.py: 2 warnings test/widgets/test_mouse_callback.py: 2 warnings test/widgets/test_mpd2widget.py: 12 warnings test/widgets/test_notify.py: 14 warnings test/widgets/test_plasma.py: 8 warnings test/widgets/test_prompt.py: 18 warnings test/widgets/test_quickexit.py: 4 warnings test/widgets/test_redshift.py: 4 warnings test/widgets/test_screensplit.py: 6 warnings test/widgets/test_sensors.py: 16 warnings test/widgets/test_sep.py: 6 warnings test/widgets/test_spacer.py: 8 warnings test/widgets/test_statusnotifier.py: 10 warnings test/widgets/test_systray.py: 4 warnings test/widgets/test_tasklist.py: 26 warnings test/widgets/test_textbox.py: 10 warnings test/widgets/test_vertical_clock.py: 16 warnings test/widgets/test_widget_init_configure.py: 274 warnings test/widgets/test_widgetbox.py: 10 warnings test/widgets/test_window_count.py: 4 warnings test/widgets/test_windowname.py: 2 warnings test/widgets/test_windowtabs.py: 10 warnings test/widgets/test_wlan.py: 6 warnings /usr/lib/python3.14/multiprocessing/popen_fork.py:76: DeprecationWarning: This process (pid=3047) is multi-threaded, use of fork() may lead to deadlocks in the child. self.pid = os.fork() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED test/test_hook.py::test_addgroup[1-x11] - AssertionError: Error launching qtile FAILED test/test_hook.py::test_client_killed[1-wayland] - AssertionError: assert '' == 'Test Client' - Test Client FAILED test/widgets/test_currentlayout.py::test_current_layout_icon_mode[1-x11] - AssertionError: Error launching qtile FAILED test/widgets/test_currentlayout.py::test_current_layout_icon_mode[1-wayland] - AssertionError: Error launching qtile FAILED test/widgets/test_currentlayout.py::test_current_layout_text_mode[1-x11] - AssertionError: Error launching qtile FAILED test/widgets/test_currentlayout.py::test_current_layout_text_mode[1-wayland] - AssertionError: Error launching qtile FAILED test/widgets/test_currentlayout.py::test_current_layout_both_mode[1-x11] - AssertionError: Error launching qtile FAILED test/widgets/test_currentlayout.py::test_current_layout_both_mode[1-wayland] - AssertionError: Error launching qtile FAILED test/widgets/test_image.py::test_default_settings[1-x11-screen0-top-height] - AssertionError: Error launching qtile FAILED test/widgets/test_image.py::test_default_settings[1-x11-screen1-left-width] - AssertionError: Error launching qtile FAILED test/widgets/test_image.py::test_default_settings[1-wayland-screen0-top-height] - AssertionError: Error launching qtile FAILED test/widgets/test_image.py::test_no_scale[1-x11] - AssertionError: Error launching qtile FAILED test/widgets/test_notify.py::test_notifications_default_timeouts[1-wayland-2-45] - AssertionError: Error launching qtile FAILED test/widgets/test_prompt.py::test_prompt_focus[1-x11] - AssertionError: Error launching qtile FAILED test/widgets/test_prompt.py::test_prompt_input[1-x11-none] - AssertionError: Error launching qtile FAILED test/widgets/test_prompt.py::test_prompt_input[1-wayland-none] - AssertionError: Error launching qtile FAILED test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-NetUP-kwargs34] - AssertionError: Error launching qtile FAILED test/shell_scripts/test_repl_server.py::test_repl_server_executes_code - ConnectionResetError: Connection lost ERROR test/backend/test_idle_inhibit.py::test_inhibitor_visible[1-x11-InhibitorConfig] - AssertionError: Error launching qtile ERROR test/backend/test_idle_inhibit.py::test_inhibitor_visible[1-wayland-InhibitorConfig] - AssertionError: Error launching qtile ERROR test/backend/test_idle_inhibit.py::test_inhibitor_focus[1-x11-InhibitorConfig] - AssertionError: Error launching qtile ERROR test/backend/test_idle_inhibit.py::test_inhibitor_fullscreen[1-x11-InhibitorConfig] - AssertionError: Error launching qtile ERROR test/backend/test_idle_inhibit.py::test_inhibitor_global[1-x11-InhibitorConfig] - AssertionError: Error launching qtile ERROR test/layouts/test_treetab.py::test_window[1-x11-TreeTabConfig] - AssertionError: Error launching qtile ERROR test/layouts/test_treetab.py::test_sort_windows[1-x11-TreeTabConfig] - AssertionError: Error launching qtile ERROR test/test_bar.py::test_event[1-x11-GBConfig] - AssertionError: Error launching qtile ERROR test/test_dgroups.py::test_dgroup_spawn_in_group[1-wayland-DGroupsSpawnConfig] - AssertionError: Error launching qtile ERROR test/widgets/test_bluetooth.py::test_custom_symbols[1-x11-bluetooth_manager0] - AssertionError: Error launching qtile ERROR test/widgets/test_clipboard.py::test_clipboard_blacklist[1-x11-clipboard_manager0] - AssertionError: Error launching qtile ERROR test/widgets/test_hide_crash.py::test_hide_crashed_widget[1-x11-CrashConfig] - AssertionError: Error launching qtile ERROR test/widgets/test_hide_crash.py::test_hide_crashed_widget[1-wayland-CrashConfig] - AssertionError: Error launching qtile ERROR test/widgets/test_launchbar.py::test_tasklist_defaults[1-x11-top] - AssertionError: Error launching qtile ERROR test/widgets/test_launchbar.py::test_launchbar_click[1-x11-progs0-top-coords1-two] - AssertionError: Error launching qtile ERROR test/widgets/test_launchbar.py::test_launchbar_click[1-x11-progs0-right-coords4-one] - AssertionError: Error launching qtile ERROR test/widgets/test_launchbar.py::test_launchbar_click[1-wayland-progs0-top-coords0-one] - AssertionError: Error launching qtile ERROR test/widgets/test_launchbar.py::test_launchbar_click[1-wayland-progs0-left-coords2-one] - AssertionError: Error launching qtile ERROR test/widgets/test_launchbar.py::test_launchbar_click[1-wayland-progs0-right-coords4-one] - AssertionError: Error launching qtile ERROR test/widgets/test_plasma.py::test_custom_text[1-x11-plasma_manager0] - AssertionError: Error launching qtile ERROR test/widgets/test_plasma.py::test_mode_change[1-x11-plasma_manager0] - AssertionError: Error launching qtile ERROR test/test_manager.py::test_unmap_noscreen[x11-2-ManagerConfig] - AssertionError: Error launching qtile = 18 failed, 2268 passed, 82 skipped, 1861 warnings, 22 errors in 13536.26s (3:45:36) = ==> ERROR: A failure occurred in check().  Aborting... ]3008;end=99f044c77a8d40a68b552c47db67eb08\[!p]104\[?7h]3008;end=df176fac08ca44d6a33531c3c760ca7a\==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build [?25h[?25h]3008;end=6ad034d164374208a0e803baf86ddfc5\[?25hreceiving incremental file list qtile-0.37.0-1-riscv64-build.log qtile-0.37.0-1-riscv64-check.log qtile-0.37.0-1-riscv64-prepare.log sent 81 bytes received 39,689 bytes 26,513.33 bytes/sec total size is 526,016 speedup is 13.23