diff --git a/.local/state/noctalia/.setup-complete b/.local/state/noctalia/.setup-complete deleted file mode 100644 index e69de29..0000000 diff --git a/.local/state/noctalia/clipboard/entries/1793706968789-4.enc b/.local/state/noctalia/clipboard/entries/1793706968789-4.enc deleted file mode 100644 index 0c6c4da..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793706968789-4.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793707094699-5.enc b/.local/state/noctalia/clipboard/entries/1793707094699-5.enc deleted file mode 100644 index a966d48..0000000 --- a/.local/state/noctalia/clipboard/entries/1793707094699-5.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1‘WÓg8ˤ?š¬x‘T`:[#'9‘µ]u,Hj_£Šs`ƒ†Ûf°Êò~ú#·©¤I \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793708268710-6.enc b/.local/state/noctalia/clipboard/entries/1793708268710-6.enc deleted file mode 100644 index ae9c505..0000000 --- a/.local/state/noctalia/clipboard/entries/1793708268710-6.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1Ïœ÷MTÎ"7&ŸõL»È]ÞÄh«ÉZ¬Ù—N7�úbA쌖Ìä8FœéÈêö“™çÙ·cYÁ£å 0©5Í»;t \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793709780265-7.enc b/.local/state/noctalia/clipboard/entries/1793709780265-7.enc deleted file mode 100644 index 80d153b..0000000 --- a/.local/state/noctalia/clipboard/entries/1793709780265-7.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC17ðˆ`‚¿ÄöÂE+ûóÛöî _øüËÍJÒáÚjÐë¯ �Ëù„e‹“ª= \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793711974499-8.enc b/.local/state/noctalia/clipboard/entries/1793711974499-8.enc deleted file mode 100644 index 7e9a8fe..0000000 --- a/.local/state/noctalia/clipboard/entries/1793711974499-8.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1ýéºé˜yòÎMBf3€–ÿ»‘À¿×a"£ þ|!vÓÄGo¿lufÍó¸ i@Øä/éº�íDO \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793712947464-9.enc b/.local/state/noctalia/clipboard/entries/1793712947464-9.enc deleted file mode 100644 index 3f45928..0000000 --- a/.local/state/noctalia/clipboard/entries/1793712947464-9.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1¡â`×F‡ÚN�‡ó±z•”óL­Z…¹ºs—ºÀÝuâ·÷­7;ÉŠÎ<˜^Ý eyØ \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793713000010-10.enc b/.local/state/noctalia/clipboard/entries/1793713000010-10.enc deleted file mode 100644 index 568bc9a..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793713000010-10.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793713134413-12.enc b/.local/state/noctalia/clipboard/entries/1793713134413-12.enc deleted file mode 100644 index f8cf662..0000000 --- a/.local/state/noctalia/clipboard/entries/1793713134413-12.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1»\{Oˆìw|ü,ǨŽ�_¹ÕÌ×ÿBí45RS¬(rïæËg'ë=J9áß2• D„† \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793713200505-13.enc b/.local/state/noctalia/clipboard/entries/1793713200505-13.enc deleted file mode 100644 index 0f9d5f1..0000000 --- a/.local/state/noctalia/clipboard/entries/1793713200505-13.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1&Ø¿(· ¢Ó¹˜<«í+…R-˜S�E*ëQ¤#¼ôž,Ò#$NbqÚ<W ›²±‘ðcç7ØØeŽm \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793713948389-14.enc b/.local/state/noctalia/clipboard/entries/1793713948389-14.enc deleted file mode 100644 index 0391879..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793713948389-14.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793715131054-2.enc b/.local/state/noctalia/clipboard/entries/1793715131054-2.enc deleted file mode 100644 index 96524b5..0000000 --- a/.local/state/noctalia/clipboard/entries/1793715131054-2.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1F}_CÜõÏ’vj|Yo’)�†›³z†»�X#—×α§Ž|ÉÕÆÚǽðh骵 ‡67Ì&«s@¿ÕÐÂѨ­Sj[…&!àþ Žm4#ÏÙ¨þi» âÇh*ì \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793715139664-4.enc b/.local/state/noctalia/clipboard/entries/1793715139664-4.enc deleted file mode 100644 index 2cb4cc4..0000000 --- a/.local/state/noctalia/clipboard/entries/1793715139664-4.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1‹›¦�—›òÌê?ÎËÒâ3݉ʚXöœ½ÚñêˆèÓ„â¨îA§a¹xà˜“”Ù$1ÇóâÖïrÕxÏ#qZîr†_wh¸Ó{Îm�[)Pî \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793715167984-6.enc b/.local/state/noctalia/clipboard/entries/1793715167984-6.enc deleted file mode 100644 index e595d16..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793715167984-6.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793730709853-1.enc b/.local/state/noctalia/clipboard/entries/1793730709853-1.enc deleted file mode 100644 index 1f7b145..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793730709853-1.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793730957525-2.enc b/.local/state/noctalia/clipboard/entries/1793730957525-2.enc deleted file mode 100644 index 98adea1..0000000 --- a/.local/state/noctalia/clipboard/entries/1793730957525-2.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC12™»º[¬€¢êîô�¼Î’¥`Þƒ�½)Q5 h¥Œá R„€%xPGy°{6x¡‡o8Ûë·nö,¾°u¬Õ´¥,gÊ)‰‚¯Ô¾‹\M \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793731302858-3.enc b/.local/state/noctalia/clipboard/entries/1793731302858-3.enc deleted file mode 100644 index e885b44..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793731302858-3.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793731401117-4.enc b/.local/state/noctalia/clipboard/entries/1793731401117-4.enc deleted file mode 100644 index 31a39a0..0000000 --- a/.local/state/noctalia/clipboard/entries/1793731401117-4.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1¼µm\þ¸ÅjÅçNót¡Ã?’Üš ¬EývÉ `ø¸íKnBÆ]ͱ·¹¤¨vèpþ÷ÐÞSThsšô ò \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793731441227-5.enc b/.local/state/noctalia/clipboard/entries/1793731441227-5.enc deleted file mode 100644 index 898249f..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793731441227-5.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793731547805-6.enc b/.local/state/noctalia/clipboard/entries/1793731547805-6.enc deleted file mode 100644 index 8ac2c2d..0000000 --- a/.local/state/noctalia/clipboard/entries/1793731547805-6.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1Zï´éSú6‰•ŠTahµÌTW‹¹á«ü ™Ð+ë-ëB‰ëIŠÑ uw·p˜åo‡ÊÚ4ÓruãŽARÖ笳 \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793731607870-7.enc b/.local/state/noctalia/clipboard/entries/1793731607870-7.enc deleted file mode 100644 index 75cf76d..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793731607870-7.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793731856116-8.enc b/.local/state/noctalia/clipboard/entries/1793731856116-8.enc deleted file mode 100644 index ed94a3f..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793731856116-8.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793732081232-11.enc b/.local/state/noctalia/clipboard/entries/1793732081232-11.enc deleted file mode 100644 index 180d600..0000000 --- a/.local/state/noctalia/clipboard/entries/1793732081232-11.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1ª¼;“ží¾ª¿< Æp½5Ë.-Àñí×OTýµ×ý�LCÛªÖ;´Ñ­±žžŒvêãîü3*ÂpòC“è¹�¹êÀú௟}V•}]Ü`eµÆ}CfmL½&›_üõv \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793733239115-16.enc b/.local/state/noctalia/clipboard/entries/1793733239115-16.enc deleted file mode 100644 index 353684b..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793733239115-16.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793733278106-17.enc b/.local/state/noctalia/clipboard/entries/1793733278106-17.enc deleted file mode 100644 index 3cce2ce..0000000 --- a/.local/state/noctalia/clipboard/entries/1793733278106-17.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1†…®DQ¶ˆÒ|`í74<î«Ö15ÿ‡ñ1�oÕA7î^¤¬‹’zú‘'‡­åç¶°wû¨;† ±Ä¨Š, \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793733710720-18.enc b/.local/state/noctalia/clipboard/entries/1793733710720-18.enc deleted file mode 100644 index c93fda1..0000000 --- a/.local/state/noctalia/clipboard/entries/1793733710720-18.enc +++ /dev/null @@ -1,2 +0,0 @@ -NOCTALIAENC1<×N±qÉ -VTwÙ‘Él…��þ ´Ð‰d¿AÚ…UGèTbÀ5>ôyø²q­Úh·Zí[ïØÃÛ|ËEIÇ>bÌ \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793733840309-20.enc b/.local/state/noctalia/clipboard/entries/1793733840309-20.enc deleted file mode 100644 index 17cce9e..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793733840309-20.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793733993738-21.enc b/.local/state/noctalia/clipboard/entries/1793733993738-21.enc deleted file mode 100644 index 536a8b7..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793733993738-21.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793734080676-22.enc b/.local/state/noctalia/clipboard/entries/1793734080676-22.enc deleted file mode 100644 index 5d14bdf..0000000 --- a/.local/state/noctalia/clipboard/entries/1793734080676-22.enc +++ /dev/null @@ -1,3 +0,0 @@ -NOCTALIAENC1–è¦ö½ò²AÉC`YÿÕÜ]#«±Ü+T¶pŠg(!ñ"É+wû²Ñ¬t¹EãMg)KۗϰW¼isò -VAKÿ½XyÑ»Z~¶ª�Óãoc½5-A -®æ{ºŽ�8+¿\`ÜŽ´ZºÛ±UÑu0ÚY�úø!}½ÒÀK¼ÚL•ëô6·Uú`åR¡Ýtpè§Ñž…°±µåjÉu1:kòèr›LíI¯€ñ7ŠÜQ¥Y†b£Jkcìâ�‰I�¿ \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793734276550-24.enc b/.local/state/noctalia/clipboard/entries/1793734276550-24.enc deleted file mode 100644 index f0c3457..0000000 --- a/.local/state/noctalia/clipboard/entries/1793734276550-24.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1�s;Í8ðÑSnîX„2é�ˆè‰G4é,ú Ç´Ÿ3æ¡|†ØÃ¦Lß«ZÌ%§ \š‡Å¢®�HÃn&Ü…é5 \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793734629639-25.enc b/.local/state/noctalia/clipboard/entries/1793734629639-25.enc deleted file mode 100644 index a9ec6d7..0000000 --- a/.local/state/noctalia/clipboard/entries/1793734629639-25.enc +++ /dev/null @@ -1,2 +0,0 @@ -NOCTALIAENC1üã07a€…Ð~N/sG™ãˆ:ÃNá¸WHQÓÉ‹�:ªàYð> -Œ!,k§«ô÷�u¸�`ËÄ%ë \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793735766902-26.enc b/.local/state/noctalia/clipboard/entries/1793735766902-26.enc deleted file mode 100644 index da56e78..0000000 --- a/.local/state/noctalia/clipboard/entries/1793735766902-26.enc +++ /dev/null @@ -1,2 +0,0 @@ -NOCTALIAENC1¤þd/&£ó\SKÐŒS+ ÖÚ o›vykùS¤óâe�¦ªÐC9ïFª}Õ -§°;tMÚÙt=t÷`Â/‚ó© \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793735949985-27.enc b/.local/state/noctalia/clipboard/entries/1793735949985-27.enc deleted file mode 100644 index a6c5a3c..0000000 --- a/.local/state/noctalia/clipboard/entries/1793735949985-27.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1ꮕ×J¶!—;‘âi›ÂK§=bfù„¼:ùG5À×/ècó¯²ã\l~ïE }æïÖ!!5¯,ýLÈy¶põXOµÎ¥cõèÀ"è@èéaäŸåhe°Ð¨Ì¤˜üÀnG–¥Wl.ÆzCÎñcQÞXw/ÄÚ \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793736025946-28.enc b/.local/state/noctalia/clipboard/entries/1793736025946-28.enc deleted file mode 100644 index 0b87358..0000000 --- a/.local/state/noctalia/clipboard/entries/1793736025946-28.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1oq8ÂH7.&HÉtŸK h\¡_YÒA@í7yeKumL¢+íd@ŽˆÍinëþ±Xþ9‡xªþòpZ† \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793736792757-29.enc b/.local/state/noctalia/clipboard/entries/1793736792757-29.enc deleted file mode 100644 index e96b617..0000000 --- a/.local/state/noctalia/clipboard/entries/1793736792757-29.enc +++ /dev/null @@ -1,2 +0,0 @@ -NOCTALIAENC1´ -æÛkè«Ã÷Ç$°¥º’=é¨ �Î{è‘n™AOg,u~Û)_¹RÏ…®±îÉD™#™Q�ÝØjŒ¼·C \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793736901359-31.enc b/.local/state/noctalia/clipboard/entries/1793736901359-31.enc deleted file mode 100644 index 2b2a17c..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793736901359-31.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793736930913-32.enc b/.local/state/noctalia/clipboard/entries/1793736930913-32.enc deleted file mode 100644 index 883ac3b..0000000 --- a/.local/state/noctalia/clipboard/entries/1793736930913-32.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC188p鶇'a"‰Gëa¨Òº¹y2E €ÎÑZ/¥…—Ì'ÞÔJº¨ý \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793736961279-33.enc b/.local/state/noctalia/clipboard/entries/1793736961279-33.enc deleted file mode 100644 index afbba37..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793736961279-33.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793737340974-34.enc b/.local/state/noctalia/clipboard/entries/1793737340974-34.enc deleted file mode 100644 index 989368a..0000000 --- a/.local/state/noctalia/clipboard/entries/1793737340974-34.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1”-./ÀÔY.ƒé7­.—mj˜äwÿçÌ÷ÁY¡Û,̹”Þ{6ðò™ aþ0¨¸o•7Äìo/Š�ÈVÄue¿É®ÁÊÏIÀY‡A¨“O¸ „$!ŒjK+@ñTºâj \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793737374404-35.enc b/.local/state/noctalia/clipboard/entries/1793737374404-35.enc deleted file mode 100644 index d08a838..0000000 --- a/.local/state/noctalia/clipboard/entries/1793737374404-35.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1™nηu'¹aC¼VdQ�}*úŒÔɺ±¡ábVeœ7…ྔ×V!Ô#ØŒè­õJ*ŸGŽÎ,?J±VÁ´Ÿøì§*©èŸ+ŒÔP�\ò kÃC�þ;€â_Íí7¥A㙳 \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793737465531-36.enc b/.local/state/noctalia/clipboard/entries/1793737465531-36.enc deleted file mode 100644 index 3820ab7..0000000 --- a/.local/state/noctalia/clipboard/entries/1793737465531-36.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1¿ºÓàƒ5“DØx¢ñ^QÅu'TX!̬óZäÆÿÒœ·çZ¹ÇïÕÐ@ÿã‡øŽ0=ù5$ó$cÔ \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793737471716-37.enc b/.local/state/noctalia/clipboard/entries/1793737471716-37.enc deleted file mode 100644 index bd479ef..0000000 --- a/.local/state/noctalia/clipboard/entries/1793737471716-37.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC11–¡Ч˜o%Æ$ŸÄòTï[¾°¥ßŠxµkɵ9< €:çåÜ’]Ž|8ö•Ipè ½W) ��±ìe˜(Ux¹�j\¥êи>8fA&u�ï#5¶rÝOmšg†l3º!(«ÓªY_øëÌ‘`Ì7mÈùÖ¶'Ýõn \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793737567366-38.enc b/.local/state/noctalia/clipboard/entries/1793737567366-38.enc deleted file mode 100644 index 2dba867..0000000 --- a/.local/state/noctalia/clipboard/entries/1793737567366-38.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1�”‚ÀÌCÐ,ÓÔ©|wï�*@Õ†ŠÌ5ˆiÔòxaud§P¦M‘¹Â`ˆ­v ü*``g—P�ƒ€á«%ï;ÆBé¦jôñ?™Ûò:ðä×KÅ•N¥ ®„hŽ ú誨r ŒªgÇbê ä%ÓFý |/­ \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793738161216-39.enc b/.local/state/noctalia/clipboard/entries/1793738161216-39.enc deleted file mode 100644 index baf0efc..0000000 --- a/.local/state/noctalia/clipboard/entries/1793738161216-39.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1õÀL´vóXçw—T4ß1ÖÆJ/hM`Å4j÷·òobÕ[Nˆ«†ט5-©±]pS�Ë…‘°¿9 \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793738172959-40.enc b/.local/state/noctalia/clipboard/entries/1793738172959-40.enc deleted file mode 100644 index 8404226..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793738172959-40.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793738335816-41.enc b/.local/state/noctalia/clipboard/entries/1793738335816-41.enc deleted file mode 100644 index d20740c..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793738335816-41.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793738363805-42.enc b/.local/state/noctalia/clipboard/entries/1793738363805-42.enc deleted file mode 100644 index 215e52c..0000000 --- a/.local/state/noctalia/clipboard/entries/1793738363805-42.enc +++ /dev/null @@ -1,2 +0,0 @@ -NOCTALIAENC1`ç¯.I´DªpzÀßòÑ™8=éþ=~Ë�@)¸ú6x�‘Ï&³ÐÂRîXù³]„W7yüm³13F6%éáÔè\W x˜×Yx9ëî -�Ü(ØŽÇÀ°�dB†;WЋG¡Ç»î9<˜ªˆ±b’¯ \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793738462944-43.enc b/.local/state/noctalia/clipboard/entries/1793738462944-43.enc deleted file mode 100644 index eeb4487..0000000 --- a/.local/state/noctalia/clipboard/entries/1793738462944-43.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1âº6FËÖ=Ív‹Ú¸“$úЀäÈ3‘Ûè¶ÎrZ~Íø ö³Ñ.¨À®0¯áfî�-^«¸þ \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793738751465-48.enc b/.local/state/noctalia/clipboard/entries/1793738751465-48.enc deleted file mode 100644 index a55e2b0..0000000 --- a/.local/state/noctalia/clipboard/entries/1793738751465-48.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1Aæ>gŽîÒGRXðÈùdQ»bS ë܉(êã˘öâV‰†˜Q Q‹*FZ¾ )eư´î߉ȭ¾vrB3LöGªû+QXÁŠ#�ôûÎ3 \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793738762471-49.enc b/.local/state/noctalia/clipboard/entries/1793738762471-49.enc deleted file mode 100644 index f4f5aff..0000000 --- a/.local/state/noctalia/clipboard/entries/1793738762471-49.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1S퇛™7Ô8,�ùµjŸ$—‚…”©Ú}F'2üŸ‰_œïóÕ$£](� iÍ \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793738768409-51.enc b/.local/state/noctalia/clipboard/entries/1793738768409-51.enc deleted file mode 100644 index 982b64d..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793738768409-51.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793738829540-52.enc b/.local/state/noctalia/clipboard/entries/1793738829540-52.enc deleted file mode 100644 index e9e511e..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793738829540-52.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793738863876-53.enc b/.local/state/noctalia/clipboard/entries/1793738863876-53.enc deleted file mode 100644 index 903d482..0000000 --- a/.local/state/noctalia/clipboard/entries/1793738863876-53.enc +++ /dev/null @@ -1,2 +0,0 @@ -NOCTALIAENC1( ­˜°õu íPç©üC‰‡ã‡a¹þ–foì"#õuì—ÒÒü™¹Ò¬R£ÕZ‹á@“Û&g³{<-»·z;TzÜÞÿùÈ„»SÈÞ¯m… -7~Ì \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793738878004-54.enc b/.local/state/noctalia/clipboard/entries/1793738878004-54.enc deleted file mode 100644 index 7c6077a..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793738878004-54.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793738900754-55.enc b/.local/state/noctalia/clipboard/entries/1793738900754-55.enc deleted file mode 100644 index 35b9b70..0000000 --- a/.local/state/noctalia/clipboard/entries/1793738900754-55.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1@ ;Sáf޾6Fç°ø¬hNÎ þ G<�‚E8 þíñv%#VÌ»KÍo«uO|Ÿ·� \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793739016653-56.enc b/.local/state/noctalia/clipboard/entries/1793739016653-56.enc deleted file mode 100644 index e779828..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793739016653-56.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793739044434-57.enc b/.local/state/noctalia/clipboard/entries/1793739044434-57.enc deleted file mode 100644 index 8845098..0000000 --- a/.local/state/noctalia/clipboard/entries/1793739044434-57.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1&­Àõʵ®¿Z>L” ¶a›äÂ;„æDˆ3¸m”y©Æãت… \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793739050003-58.enc b/.local/state/noctalia/clipboard/entries/1793739050003-58.enc deleted file mode 100644 index ad5c7b6..0000000 --- a/.local/state/noctalia/clipboard/entries/1793739050003-58.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1^Di‚P^$rÓŠ¬:S²Kù3I�– ‘wÒMiJ!»Q¡d`Œ½Ñ¸|¨ê \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793739068108-59.enc b/.local/state/noctalia/clipboard/entries/1793739068108-59.enc deleted file mode 100644 index b362a08..0000000 --- a/.local/state/noctalia/clipboard/entries/1793739068108-59.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC10®®ÃpæbËø#‰Œ€0Q¬¡‹ 7Ýã[‘æSåfÑ$¶“RyñÛ/ŸÊç—l—«®_¡ á`é¦9† “–+‰Ô1T–·×Š9) Wôqª3{Jâe‘B‰K(x¯va긻ÜL \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793739081662-60.enc b/.local/state/noctalia/clipboard/entries/1793739081662-60.enc deleted file mode 100644 index 59ed0ac..0000000 --- a/.local/state/noctalia/clipboard/entries/1793739081662-60.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1ZìÀ?èu=;!ô½J9¬%€¬»dB–¿æƒ‘Pþi_ö^³ë®aÖ›H‹^¢< \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793739344436-61.enc b/.local/state/noctalia/clipboard/entries/1793739344436-61.enc deleted file mode 100644 index d541924..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793739344436-61.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793739355302-62.enc b/.local/state/noctalia/clipboard/entries/1793739355302-62.enc deleted file mode 100644 index 2ec03a3..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793739355302-62.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793739368455-63.enc b/.local/state/noctalia/clipboard/entries/1793739368455-63.enc deleted file mode 100644 index 7fd02bd..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793739368455-63.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793739373623-64.enc b/.local/state/noctalia/clipboard/entries/1793739373623-64.enc deleted file mode 100644 index 749c1ac..0000000 --- a/.local/state/noctalia/clipboard/entries/1793739373623-64.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1 .@jãá{Ñ#(Á>yàá»~¡`Ö‡Ídˆ5ß.w{Äœ_ùçH×ÝX \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793739410463-65.enc b/.local/state/noctalia/clipboard/entries/1793739410463-65.enc deleted file mode 100644 index 1b05b63..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793739410463-65.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793739475019-66.enc b/.local/state/noctalia/clipboard/entries/1793739475019-66.enc deleted file mode 100644 index babe4fe..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793739475019-66.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793739484513-67.enc b/.local/state/noctalia/clipboard/entries/1793739484513-67.enc deleted file mode 100644 index 073f274..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793739484513-67.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793739866487-68.enc b/.local/state/noctalia/clipboard/entries/1793739866487-68.enc deleted file mode 100644 index ad328d4..0000000 --- a/.local/state/noctalia/clipboard/entries/1793739866487-68.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1FrÊW€‡4ÔÙöQ°U�3òc…óDzò‡éÃUÏåMt†È‚n¥Þ jÁ:¾Áj Ü*ï’⩞¥îSfQYŠS{nKÌ j: \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793739876094-69.enc b/.local/state/noctalia/clipboard/entries/1793739876094-69.enc deleted file mode 100644 index b56c8d3..0000000 --- a/.local/state/noctalia/clipboard/entries/1793739876094-69.enc +++ /dev/null @@ -1,2 +0,0 @@ -NOCTALIAENC1��l˜k×J‚¼›��ø -€7Åýæ˜iµŸMëOÔóœ )E´ê§óÄ›;-“çÉc|ºï[¨Å‚ºV»[LŠêßJŽˆ=2•ºhžÇDOëòËü¯>àÀU#ðxLÄ™›Ÿ{¿È7Ý\Qitb•=dÞ¤£»F®‰LB \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793739891485-70.enc b/.local/state/noctalia/clipboard/entries/1793739891485-70.enc deleted file mode 100644 index 41fea4f..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793739891485-70.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793739923097-71.enc b/.local/state/noctalia/clipboard/entries/1793739923097-71.enc deleted file mode 100644 index 59b58b0..0000000 --- a/.local/state/noctalia/clipboard/entries/1793739923097-71.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1È$$†Lóô`ÑŸÌ̼Ys5&Ó„Hέp Œ›¶?d%?’¤pã¥I°/"zO)—Bq0eT7©ÌJ†´ ¼�8ùO†‹Ö`Hæ£Å�«Ø½î¯j’�¢ÿS.¨ú×öÏžxÕ׌—Øt ØÇ(BóiÂm𺛪e—h¹Ö†ÛßγÁ‡~>W«étÃw³„!ûî®ÁÒÚ¹^¶3ŠºÀºÖ9‘c jý­EÅ–‘äo¹eõô  uX$󃔧.­±0K=]GÚi’Í2x¹2°±Ï=qñÞü9%Öt;„lˆnÙ³ _o±É˜9È\÷2’BJwÐ7ó˜ÒQ”�]c1^‘¡•‹?º¦9$Ìèrü¢d-â Bá`þÔ<Ô»tB:ô¢¨Äî)&Ú³Cí<ö \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793739985265-72.enc b/.local/state/noctalia/clipboard/entries/1793739985265-72.enc deleted file mode 100644 index 9186bb0..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793739985265-72.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793740419026-73.enc b/.local/state/noctalia/clipboard/entries/1793740419026-73.enc deleted file mode 100644 index 0bcaf45..0000000 --- a/.local/state/noctalia/clipboard/entries/1793740419026-73.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1}è÷¹x~Φ&Ás:?÷ÒèQº/Îä•(y”4ðÇ’K¤êÄòÎŒ´‚9FZœ‘$º06Ä U €æIm,¥ž™ 2/= ö儉ZQ¼‹æ7¤› \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793741141205-76.enc b/.local/state/noctalia/clipboard/entries/1793741141205-76.enc deleted file mode 100644 index 0661510..0000000 --- a/.local/state/noctalia/clipboard/entries/1793741141205-76.enc +++ /dev/null @@ -1,3 +0,0 @@ -NOCTALIAENC1Eæ†Þ– -vÜ0?B>Ä2ÚŸJœ$B Í5«ª¥8VÃë¤[œ_:™´ç_«vÛøNo1Í‚»¡î“�Ë#@ò¬aeg‘�ªÜSs× Êdž^�0SÜ�Qí|É‚²Ê� -eÆ$T|HÕ±oó®•…ê èu \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793741637030-77.enc b/.local/state/noctalia/clipboard/entries/1793741637030-77.enc deleted file mode 100644 index 497dfa7..0000000 --- a/.local/state/noctalia/clipboard/entries/1793741637030-77.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1¢‘AñX(ê‡Ì¹§ë»òœa¿61"ÛdüÏÆjxÂ×d™ª&7»Žoé¿ÉÇ1 î|\V¹÷£„u \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793741667586-78.enc b/.local/state/noctalia/clipboard/entries/1793741667586-78.enc deleted file mode 100644 index 1f4943e..0000000 --- a/.local/state/noctalia/clipboard/entries/1793741667586-78.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1ÞcwüÈ0 5*;ûÌ9ÞmjS¥!‰œO–ï½ø¥�UÙmc}È;QÉ »±°7θ¯lyøÐ®9>ÊÏ \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793741695957-79.enc b/.local/state/noctalia/clipboard/entries/1793741695957-79.enc deleted file mode 100644 index 69a273d..0000000 --- a/.local/state/noctalia/clipboard/entries/1793741695957-79.enc +++ /dev/null @@ -1,2 +0,0 @@ -NOCTALIAENC1B|EE’‘ÃÉÞg£ü5a˜ñN& -GME78ô3h7½�ŒÎTJß,,"üq¤¶Âô¨¾þS¬ t¸‘¼~²¦–�ìÍVÕ¸Ö„³–öÄ¡¾Ÿ³©KyÖØ ÎEB²ãûÉ㲬â‰tEDß \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793741728358-80.enc b/.local/state/noctalia/clipboard/entries/1793741728358-80.enc deleted file mode 100644 index 7b48530..0000000 --- a/.local/state/noctalia/clipboard/entries/1793741728358-80.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1rðÕsSK0Î$˜þøð½0ç™%Õ0)u\_CO>áó¡¼:¡J±Ÿ¡-:øaÖ€»NQ•Xw¦°„>}¥ð>Y \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793741736593-81.enc b/.local/state/noctalia/clipboard/entries/1793741736593-81.enc deleted file mode 100644 index 5076c76..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793741736593-81.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793741750115-82.enc b/.local/state/noctalia/clipboard/entries/1793741750115-82.enc deleted file mode 100644 index e227f00..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793741750115-82.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793741767081-83.enc b/.local/state/noctalia/clipboard/entries/1793741767081-83.enc deleted file mode 100644 index 6ac3a28..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793741767081-83.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793741774641-84.enc b/.local/state/noctalia/clipboard/entries/1793741774641-84.enc deleted file mode 100644 index f5f86e5..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793741774641-84.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793741867091-85.enc b/.local/state/noctalia/clipboard/entries/1793741867091-85.enc deleted file mode 100644 index 80d490f..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793741867091-85.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793805551400-1.enc b/.local/state/noctalia/clipboard/entries/1793805551400-1.enc deleted file mode 100644 index e3d5eb5..0000000 --- a/.local/state/noctalia/clipboard/entries/1793805551400-1.enc +++ /dev/null @@ -1,3 +0,0 @@ -NOCTALIAENC1« -¯#C -²{]⌶˜Ç¿¼‹˜HL;,1Ï·~ÈuߺCÐÅË«6èÛ`ÓV ÷ã!³S½ \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793805574126-2.enc b/.local/state/noctalia/clipboard/entries/1793805574126-2.enc deleted file mode 100644 index b2b1496..0000000 --- a/.local/state/noctalia/clipboard/entries/1793805574126-2.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1èËÆØ†ëß@ç”)Nä‚ a™Û3ú=Ãòùfž?ç¿'š_‚~–‹RÚIßÖºðãÐËê \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/entries/1793807296984-3.enc b/.local/state/noctalia/clipboard/entries/1793807296984-3.enc deleted file mode 100644 index 3818e7a..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793807296984-3.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793807718682-4.enc b/.local/state/noctalia/clipboard/entries/1793807718682-4.enc deleted file mode 100644 index 7ff48e8..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793807718682-4.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793807747927-5.enc b/.local/state/noctalia/clipboard/entries/1793807747927-5.enc deleted file mode 100644 index a13463e..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793807747927-5.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793807759360-6.enc b/.local/state/noctalia/clipboard/entries/1793807759360-6.enc deleted file mode 100644 index a53a80e..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793807759360-6.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793807772141-7.enc b/.local/state/noctalia/clipboard/entries/1793807772141-7.enc deleted file mode 100644 index cf2bd7e..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793807772141-7.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793807787194-8.enc b/.local/state/noctalia/clipboard/entries/1793807787194-8.enc deleted file mode 100644 index ad7836b..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793807787194-8.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793807797561-9.enc b/.local/state/noctalia/clipboard/entries/1793807797561-9.enc deleted file mode 100644 index 1be6451..0000000 Binary files a/.local/state/noctalia/clipboard/entries/1793807797561-9.enc and /dev/null differ diff --git a/.local/state/noctalia/clipboard/entries/1793820885552-10.enc b/.local/state/noctalia/clipboard/entries/1793820885552-10.enc deleted file mode 100644 index bc35569..0000000 --- a/.local/state/noctalia/clipboard/entries/1793820885552-10.enc +++ /dev/null @@ -1 +0,0 @@ -NOCTALIAENC1¢*‡NH~Üù4¾t%ê—{lY'¼ÚÚ(;–¯Ø>?l/áàBaíÞá„¶ÀBä9ÎDÛgÀü£88 f \ No newline at end of file diff --git a/.local/state/noctalia/clipboard/index.enc b/.local/state/noctalia/clipboard/index.enc deleted file mode 100644 index 5649d43..0000000 Binary files a/.local/state/noctalia/clipboard/index.enc and /dev/null differ diff --git a/.local/state/noctalia/community-palettes/.catalog/palettes.json b/.local/state/noctalia/community-palettes/.catalog/palettes.json deleted file mode 100644 index 848fb5f..0000000 --- a/.local/state/noctalia/community-palettes/.catalog/palettes.json +++ /dev/null @@ -1 +0,0 @@ -[{"name":"ADW","md5":"a58720d7ce2a0ea5562757ffa304d93c","dark":{"primary":"#3584e4","secondary":"#1b467c","tertiary":"#ffffff","error":"#c01c28","surface":"#242424","surfaceVariant":"#1e1e1e"},"light":{"primary":"#3584e4","secondary":"#2e3436","tertiary":"#2ec27e","error":"#e01b24","surface":"#fafafa","surfaceVariant":"#ffffff"}},{"name":"ADW-green","md5":"c19412180f374ed43a0458183ccc25b4","dark":{"primary":"#3a944a","secondary":"#15772e","tertiary":"#ffffff","error":"#c01c28","surface":"#242424","surfaceVariant":"#1e1e1e"},"light":{"primary":"#3a944a","secondary":"#2e3436","tertiary":"#26a269","error":"#e01b24","surface":"#fafafa","surfaceVariant":"#ffffff"}},{"name":"Alpenglow","md5":"edfb6a2702393f69e5b97ab62ff081af","dark":{"primary":"#e8a87c","secondary":"#8fbf6a","tertiary":"#e8c87a","error":"#d96b6b","surface":"#1e1a24","surfaceVariant":"#3a3040"},"light":{"primary":"#c8703a","secondary":"#4a7a2a","tertiary":"#a88a3a","error":"#b84a4a","surface":"#fdf6ee","surfaceVariant":"#e8d8c8"}},{"name":"Atuel","md5":"58c7579577e24d11782cf216f4f4c6a2","dark":{"primary":"#99B6F2","secondary":"#5581D9","tertiary":"#4E6BA6","error":"#d98886","surface":"#0A1126","surfaceVariant":"#0F1B40"},"light":{"primary":"#1a3673","secondary":"#4E6BA6","tertiary":"#0F1B40","error":"#a63d37","surface":"#d9e2f7","surfaceVariant":"#bfcceb"}},{"name":"Aura","md5":"3c4853b16b5ac149374e35b620f23451","dark":{"primary":"#a277ff","secondary":"#61ffca","tertiary":"#ffca85","error":"#ff6767","surface":"#15141b","surfaceVariant":"#29263c"},"light":{"primary":"#6f4bb8","secondary":"#167a5e","tertiary":"#8a6200","error":"#b3261e","surface":"#f8f7fb","surfaceVariant":"#eeeaf5"}},{"name":"Ayu Blue","md5":"63f686ee7d232c8965966cff1b7b47af","dark":{"primary":"#39BAE6","secondary":"#AAD94C","tertiary":"#E6B450","error":"#D95757","surface":"#0B0E14","surfaceVariant":"#1E222A"},"light":{"primary":"#55B4D4","secondary":"#86B300","tertiary":"#FF8F40","error":"#E65050","surface":"#F8F9FA","surfaceVariant":"#E4E6E9"}},{"name":"Ayu Green","md5":"c06dc67dcbd7f2b2009b306047db1686","dark":{"primary":"#AAD94C","secondary":"#E6B450","tertiary":"#39BAE6","error":"#D95757","surface":"#0B0E14","surfaceVariant":"#1E222A"},"light":{"primary":"#86B300","secondary":"#FF8F40","tertiary":"#55B4D4","error":"#E65050","surface":"#F8F9FA","surfaceVariant":"#E4E6E9"}},{"name":"Ayu Red","md5":"40ba8891f08d4f5d65a681a36ca43055","dark":{"primary":"#D95757","secondary":"#E6B450","tertiary":"#39BAE6","error":"#AAD94C","surface":"#0B0E14","surfaceVariant":"#1E222A"},"light":{"primary":"#E65050","secondary":"#FF8F40","tertiary":"#55B4D4","error":"#86B300","surface":"#F8F9FA","surfaceVariant":"#E4E6E9"}},{"name":"Breeze","md5":"e435d04363c017defb7ea49125bc427a","dark":{"primary":"#3daee9","secondary":"#1d99f3","tertiary":"#9b59b6","error":"#da4453","surface":"#202224","surfaceVariant":"#292d32"},"light":{"primary":"#3daee9","secondary":"#2980b9","tertiary":"#9b59b6","error":"#da4453","surface":"#ffffff","surfaceVariant":"#eff0f1"}},{"name":"Catppuccin Frappe Blue","md5":"27e8aa3f6c52b84b02ed02d0b8745ae8","dark":{"primary":"#8caaee","secondary":"#babbf1","tertiary":"#ca9ee6","error":"#e78284","surface":"#303446","surfaceVariant":"#414559"},"light":{"primary":"#1e66f5","secondary":"#7287fd","tertiary":"#8839ef","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Frappe Green","md5":"a86ad89fc0201dbaff6996b82c1d0b72","dark":{"primary":"#a6d189","secondary":"#81c8be","tertiary":"#8caaee","error":"#e78284","surface":"#303446","surfaceVariant":"#414559"},"light":{"primary":"#40a02b","secondary":"#179299","tertiary":"#1e66f5","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Frappe Lavender","md5":"364bb9cfad63deba3c7c39322fa6da7c","dark":{"primary":"#babbf1","secondary":"#8caaee","tertiary":"#ca9ee6","error":"#e78284","surface":"#303446","surfaceVariant":"#414559"},"light":{"primary":"#7287fd","secondary":"#1e66f5","tertiary":"#8839ef","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Frappe Mauve","md5":"a3152bb0a68e65315ac7b25be06e4b4e","dark":{"primary":"#ca9ee6","secondary":"#babbf1","tertiary":"#99d1db","error":"#e78284","surface":"#303446","surfaceVariant":"#414559"},"light":{"primary":"#8839ef","secondary":"#7287fd","tertiary":"#04a5e5","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Frappe Peach","md5":"d85286b42c4d5de5249e9e1bb8a2f565","dark":{"primary":"#ef9f76","secondary":"#e5c890","tertiary":"#ea999c","error":"#e78284","surface":"#303446","surfaceVariant":"#414559"},"light":{"primary":"#fe640b","secondary":"#df8e1d","tertiary":"#e64553","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Frappe Pink","md5":"de4029f166040cddd091875ab4b9118b","dark":{"primary":"#f4b8e4","secondary":"#ef9f76","tertiary":"#81c8be","error":"#e78284","surface":"#303446","surfaceVariant":"#414559"},"light":{"primary":"#ea76cb","secondary":"#fe640b","tertiary":"#179299","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Frappe Rosewater","md5":"e1eca0f97f36c7a33dafbc83523cc186","dark":{"primary":"#f2d5cf","secondary":"#eebebe","tertiary":"#e5c890","error":"#e78284","surface":"#303446","surfaceVariant":"#414559"},"light":{"primary":"#dc8a78","secondary":"#dd7878","tertiary":"#df8e1d","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Frappe Sapphire","md5":"34701b38c2132fd5bef86f9c5f4559f8","dark":{"primary":"#85c1dc","secondary":"#8caaee","tertiary":"#99d1db","error":"#e78284","surface":"#303446","surfaceVariant":"#414559"},"light":{"primary":"#209fb5","secondary":"#1e66f5","tertiary":"#04a5e5","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Macchiato Blue","md5":"8466f2a2bd3592500dee22f2d059a884","dark":{"primary":"#8aadf4","secondary":"#b7bdf8","tertiary":"#c6a0f6","error":"#ed8796","surface":"#24273a","surfaceVariant":"#363a4f"},"light":{"primary":"#1e66f5","secondary":"#7287fd","tertiary":"#8839ef","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Macchiato Green","md5":"72eeee2576335d026e807af00017b8eb","dark":{"primary":"#a6da95","secondary":"#8bd5ca","tertiary":"#8aadf4","error":"#ed8796","surface":"#24273a","surfaceVariant":"#363a4f"},"light":{"primary":"#40a02b","secondary":"#179299","tertiary":"#1e66f5","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Macchiato Lavender","md5":"72501ab0f094ba37012d05352f4bb699","dark":{"primary":"#b7bdf8","secondary":"#f5bde6","tertiary":"#c6a0f6","error":"#ed8796","surface":"#24273a","surfaceVariant":"#363a4f"},"light":{"primary":"#7287fd","secondary":"#1e66f5","tertiary":"#8839ef","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Macchiato Mauve","md5":"12f67fa554bc05b490d410f04cddfb67","dark":{"primary":"#c6a0f6","secondary":"#b7bdf8","tertiary":"#91d7e3","error":"#ed8796","surface":"#24273a","surfaceVariant":"#363a4f"},"light":{"primary":"#8839ef","secondary":"#7287fd","tertiary":"#04a5e5","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Macchiato Peach","md5":"52148eadf3c07ae653fd704249f2e9e0","dark":{"primary":"#f5a97f","secondary":"#eed49f","tertiary":"#ee99a0","error":"#ed8796","surface":"#24273a","surfaceVariant":"#363a4f"},"light":{"primary":"#fe640b","secondary":"#df8e1d","tertiary":"#e64553","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Macchiato Pink","md5":"c16950b1a237016e774436c7c57ff132","dark":{"primary":"#f5bde6","secondary":"#f5a97f","tertiary":"#8bd5ca","error":"#ed8796","surface":"#24273a","surfaceVariant":"#363a4f"},"light":{"primary":"#ea76cb","secondary":"#fe640b","tertiary":"#179299","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Macchiato Rosewater","md5":"2b85b825706cae60eced276b8d5791d0","dark":{"primary":"#f4dbd6","secondary":"#f0c6c6","tertiary":"#eed49f","error":"#ed8796","surface":"#24273a","surfaceVariant":"#363a4f"},"light":{"primary":"#dc8a78","secondary":"#dd7878","tertiary":"#df8e1d","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Macchiato Sapphire","md5":"8435de949a7be95912e73fce738a81b6","dark":{"primary":"#7dc4e4","secondary":"#8aadf4","tertiary":"#91d7e3","error":"#ed8796","surface":"#24273a","surfaceVariant":"#363a4f"},"light":{"primary":"#209fb5","secondary":"#1e66f5","tertiary":"#04a5e5","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Mocha Blue","md5":"a7cb4b10f513097ea272027a55e1fbd0","dark":{"primary":"#89b4fa","secondary":"#b4befe","tertiary":"#cba6f7","error":"#f38ba8","surface":"#1e1e2e","surfaceVariant":"#313244"},"light":{"primary":"#1e66f5","secondary":"#7287fd","tertiary":"#8839ef","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Mocha Green","md5":"16db16d59659736cf6960c89f864afd9","dark":{"primary":"#a6e3a1","secondary":"#94e2d5","tertiary":"#89b4fa","error":"#f38ba8","surface":"#1e1e2e","surfaceVariant":"#313244"},"light":{"primary":"#40a02b","secondary":"#179299","tertiary":"#1e66f5","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Mocha Lavender","md5":"5a8bec9aace906cd03f9a0d2c64894f4","dark":{"primary":"#b4befe","secondary":"#f5c2e7","tertiary":"#cba6f7","error":"#f38ba8","surface":"#1e1e2e","surfaceVariant":"#313244"},"light":{"primary":"#7287fd","secondary":"#1e66f5","tertiary":"#8839ef","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Mocha Maroon","md5":"c3bcfe910369391db871fd129796b664","dark":{"primary":"#eba0ac","secondary":"#9399b2","tertiary":"#b4befe","error":"#f38ba8","surface":"#1e1e2e","surfaceVariant":"#313244"},"light":{"primary":"#e64553","secondary":"#7c7f93","tertiary":"#7287fd","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Mocha Mauve-Lavender","md5":"4813b4d8ef971062a7e2f5084ab55f33","dark":{"primary":"#cba6f7","secondary":"#b4befe","tertiary":"#89dceb","error":"#f38ba8","surface":"#1e1e2e","surfaceVariant":"#313244"},"light":{"primary":"#8839ef","secondary":"#7287fd","tertiary":"#04a5e5","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Mocha Peach","md5":"f78c83f9e9a71df50b3a42d0f8c12d67","dark":{"primary":"#fab387","secondary":"#f9e2af","tertiary":"#eba0ac","error":"#f38ba8","surface":"#1e1e2e","surfaceVariant":"#313244"},"light":{"primary":"#fe640b","secondary":"#df8e1d","tertiary":"#e64553","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Mocha Pink","md5":"9835ad599c1febd1e6814fafebee12de","dark":{"primary":"#f5c2e7","secondary":"#fab387","tertiary":"#94e2d5","error":"#f38ba8","surface":"#1e1e2e","surfaceVariant":"#313244"},"light":{"primary":"#ea76cb","secondary":"#fe640b","tertiary":"#179299","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Mocha Rosewater","md5":"c16de9b76fdb24bb790ab72c09e855e2","dark":{"primary":"#f5e0dc","secondary":"#f2cdcd","tertiary":"#f9e2af","error":"#f38ba8","surface":"#1e1e2e","surfaceVariant":"#313244"},"light":{"primary":"#dc8a78","secondary":"#dd7878","tertiary":"#df8e1d","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Catppuccin Mocha Sapphire","md5":"d2147a58a63da74151b45425d791e426","dark":{"primary":"#74c7ec","secondary":"#89b4fa","tertiary":"#89dceb","error":"#f38ba8","surface":"#1e1e2e","surfaceVariant":"#313244"},"light":{"primary":"#209fb5","secondary":"#1e66f5","tertiary":"#04a5e5","error":"#d20f39","surface":"#eff1f5","surfaceVariant":"#ccd0da"}},{"name":"Cherry Blossom","md5":"a3749a96d1505d97a29041c360a6a3f1","dark":{"primary":"#F2C1D4","secondary":"#FFD6E2","tertiary":"#D4A3BD","error":"#EC8A92","surface":"#2A1922","surfaceVariant":"#4D3745"},"light":{"primary":"#6F4E63","secondary":"#F2C1D4","tertiary":"#8F6A7C","error":"#E6687C","surface":"#F7E6EE","surfaceVariant":"#F9EDF3"}},{"name":"Coral and Sea","md5":"e1fcce7b054cdb196914825679abdff9","dark":{"primary":"#d1704f","secondary":"#0e639c","tertiary":"#c586c0","error":"#f44747","surface":"#1e1e1e","surfaceVariant":"#2d2d2d"},"light":{"primary":"#d1704f","secondary":"#0e639c","tertiary":"#c586c0","error":"#cd3131","surface":"#ffffff","surfaceVariant":"#f3f3f3"}},{"name":"Cream","md5":"2b267ca74cd14fad240a222b86ab1f7f","dark":{"primary":"#a2b574","secondary":"#dfb26c","tertiary":"#e09260","error":"#e37874","surface":"#161311","surfaceVariant":"#26211e"},"light":{"primary":"#4b5e37","secondary":"#8c6f39","tertiary":"#a86439","error":"#a6464b","surface":"#e5d8be","surfaceVariant":"#d1c5b2"}},{"name":"Cream Autumn","md5":"1b9305c49d981d9a3168c50716c47a2e","dark":{"primary":"#e5c799","secondary":"#cbaba0","tertiary":"#9aa887","error":"#cf767c","surface":"#161311","surfaceVariant":"#231e1a"},"light":{"primary":"#b56839","secondary":"#8f6830","tertiary":"#4e5c3e","error":"#a64248","surface":"#e5d8be","surfaceVariant":"#d6c8ad"}},{"name":"Creamy Forest","md5":"4b19e390eaaa97354400821c0ca133f4","dark":{"primary":"#a2b08d","secondary":"#948e74","tertiary":"#6e857b","error":"#ce7a71","surface":"#1c1e1a","surfaceVariant":"#252722"},"light":{"primary":"#4c573c","secondary":"#6e674b","tertiary":"#385249","error":"#a6423a","surface":"#f4f6eb","surfaceVariant":"#e5e9d6"}},{"name":"Cyberpunk","md5":"c4b8e87ada0ab34d355b0fa79358458c","dark":{"primary":"#C4A82E","secondary":"#D14358","tertiary":"#00A66C","error":"#B32D2D","surface":"#0C1017","surfaceVariant":"#11151D"},"light":{"primary":"#00B8B3","secondary":"#D957A0","tertiary":"#45D395","error":"#E63E5D","surface":"#DAE6E8","surfaceVariant":"#C8DEE6"}},{"name":"Doomed","md5":"78f14867125d1775e3e8a27432e50b24","dark":{"primary":"#51afef","secondary":"#f2c481","tertiary":"#98be65","error":"#ff6b5a","surface":"#1c1e1e","surfaceVariant":"#282c34"},"light":{"primary":"#4078f2","secondary":"#ea9558","tertiary":"#50a14f","error":"#e45649","surface":"#f0f0f0","surfaceVariant":"#fafafa"}},{"name":"Espresso Cream","md5":"49dfb2efc9d69dc5cc2aca2984ef47e8","dark":{"primary":"#e29578","secondary":"#ddb892","tertiary":"#a3b19b","error":"#c97a7a","surface":"#1a120b","surfaceVariant":"#2c1e13"},"light":{"primary":"#8e5a44","secondary":"#9c704c","tertiary":"#596153","error":"#9c4c4c","surface":"#dfd3c3","surfaceVariant":"#cfc2b2"}},{"name":"Everdeer","md5":"e7c4c216dd60623136ac718dca15cdd7","dark":{"primary":"#ffb4a3","secondary":"#ffb4a3","tertiary":"#e9c258","error":"#ffb4ab","surface":"#1c110e","surfaceVariant":"#291d1a"},"light":{"primary":"#a03218","secondary":"#8a4e40","tertiary":"#755b00","error":"#ba1a1a","surface":"#fff8f6","surfaceVariant":"#ffe9e4"}},{"name":"Everforest","md5":"b776d85c50219744bbb2af6c2c0cd26f","dark":{"primary":"#A7C080","secondary":"#D3C6AA","tertiary":"#9DA9A0","error":"#E67E80","surface":"#232A2E","surfaceVariant":"#2D353B"},"light":{"primary":"#434F55","secondary":"#232a2e","tertiary":"#333c43","error":"#E24B4B","surface":"#9DA9A0","surfaceVariant":"#BEC5B2"}},{"name":"Everforest Alt","md5":"ca37c6147fd327e8e10c6b10b983f30f","dark":{"primary":"#a7c080","secondary":"#7fbbb3","tertiary":"#e69875","error":"#e67e80","surface":"#2d353b","surfaceVariant":"#3d484d"},"light":{"primary":"#8da101","secondary":"#3a94c5","tertiary":"#f57d26","error":"#f85552","surface":"#fffbef","surfaceVariant":"#f2efdb"}},{"name":"Everforest Material","md5":"705401f5492e4385d45b8850963e50e8","dark":{"primary":"#A7C080","secondary":"#DBBC7F","tertiary":"#7FBBB3","error":"#E67E80","surface":"#161616","surfaceVariant":"#202020"},"light":{"primary":"#8DA101","secondary":"#3A94C5","tertiary":"#F57D26","error":"#F85552","surface":"#FFFBEF","surfaceVariant":"#F8F5E4"}},{"name":"Fen","md5":"0ce321b57f9820a1b401c15444327e6d","dark":{"primary":"#A8C86B","secondary":"#5A8F78","tertiary":"#D4B071","error":"#D36F5A","surface":"#0B1824","surfaceVariant":"#12282F"},"light":{"primary":"#526E2D","secondary":"#326A59","tertiary":"#8A5C2D","error":"#A74B40","surface":"#EFF1DE","surfaceVariant":"#DEE5CE"}},{"name":"Flexoki","md5":"d72c2d59a9cba680916bfbb1f1f60aba","dark":{"primary":"#879a39","secondary":"#4385be","tertiary":"#8b7ec8","error":"#d14d41","surface":"#100f0f","surfaceVariant":"#1c1b1a"},"light":{"primary":"#879a39","secondary":"#4385be","tertiary":"#8b7ec8","error":"#d14d41","surface":"#fffcf0","surfaceVariant":"#f2f0e5"}},{"name":"Garnet","md5":"90a9115abb09d3356e358719314ee99a","dark":{"primary":"#990000","secondary":"#c8962a","tertiary":"#7a0000","error":"#d64545","surface":"#121212","surfaceVariant":"#181616"},"light":{"primary":"#990000","secondary":"#b08040","tertiary":"#7a0000","error":"#c0392b","surface":"#f7f2f2","surfaceVariant":"#ece6e6"}},{"name":"GitHub Dark","md5":"a4fb46ca484f652638790d0176a8b859","dark":{"primary":"#58a6ff","secondary":"#bc8cff","tertiary":"#bc8cff","error":"#f85149","surface":"#010409","surfaceVariant":"#161b22"},"light":{"primary":"#0969da","secondary":"#1a7f37","tertiary":"#8250df","error":"#cf222e","surface":"#ffffff","surfaceVariant":"#f6f8fa"}},{"name":"Gruber Darker","md5":"a242ba27aeed098ccd0e487ac4604b61","dark":{"primary":"#ffdd33","secondary":"#96a6c8","tertiary":"#9e95c7","error":"#f43841","surface":"#181818","surfaceVariant":"#282828"},"light":{"primary":"#5f627f","secondary":"#4a8a14","tertiary":"#7a6ea8","error":"#c73c3f","surface":"#f5f5f5","surfaceVariant":"#e4e4ef"}},{"name":"Gruvbox Material","md5":"81a03395b5685fb25ea60a7f608e7045","dark":{"primary":"#a9b665","secondary":"#e78a4e","tertiary":"#89b482","error":"#ea6962","surface":"#32302f","surfaceVariant":"#3c3836"},"light":{"primary":"#6c782e","secondary":"#c35e0a","tertiary":"#4c7a5d","error":"#c14a4a","surface":"#f2e5bc","surfaceVariant":"#ebdbb2"}},{"name":"Gruvbox Material Hard","md5":"ced63ef9d6d5e8534b9d6e97dca931ea","dark":{"primary":"#a9b665","secondary":"#e78a4e","tertiary":"#89b482","error":"#ea6962","surface":"#1d2021","surfaceVariant":"#282828"},"light":{"primary":"#6c782e","secondary":"#c35e0a","tertiary":"#4c7a5d","error":"#c14a4a","surface":"#f9f5d7","surfaceVariant":"#f5edca"}},{"name":"Gruvbox Material Medium","md5":"c425a2d09296f42cfeea1438a61553a1","dark":{"primary":"#a9b665","secondary":"#d8a657","tertiary":"#7daea3","error":"#ea6962","surface":"#282828","surfaceVariant":"#32302f"},"light":{"primary":"#6c782e","secondary":"#b47109","tertiary":"#45707a","error":"#c14a4a","surface":"#fbf1c7","surfaceVariant":"#f4e8be"}},{"name":"GruvboxAlt","md5":"9163d8cd7d96979aa8ccb683c529604c","dark":{"primary":"#ebdbb2","secondary":"#8ec07c","tertiary":"#83a598","error":"#fb4934","surface":"#282828","surfaceVariant":"#3c3836"},"light":{"primary":"#3c3836","secondary":"#689d6a","tertiary":"#458588","error":"#cc241d","surface":"#fbf1c7","surfaceVariant":"#ebddb2"}},{"name":"Heartbox","md5":"ee2eb8777b3270e67a2d34b038c9a634","dark":{"primary":"#E02030","secondary":"#5EC8E8","tertiary":"#E86A9A","error":"#E02030","surface":"#1A1214","surfaceVariant":"#2C1F22"},"light":{"primary":"#E02030","secondary":"#5EC8E8","tertiary":"#E86A9A","error":"#E02030","surface":"#FFF8F0","surfaceVariant":"#F4EBE0"}},{"name":"Hexa34C","md5":"4a5d289f6c27219ce0b79dc5ef430e12","dark":{"primary":"#9ad4a1","secondary":"#b7ccb6","tertiary":"#a1ced8","error":"#ffb4ab","surface":"#101510","surfaceVariant":"#101510"},"light":{"primary":"#346940","secondary":"#506351","tertiary":"#39656d","error":"#ba1a1a","surface":"#d7dbd3","surfaceVariant":"#f6fbf2"}},{"name":"Horizon","md5":"05b2f4ed77076009c5870d49db59f3aa","dark":{"primary":"#25B2BC","secondary":"#B877DB","tertiary":"#FAB795","error":"#E95678","surface":"#1A1C23","surfaceVariant":"#232530"},"light":{"primary":"#1D8991","secondary":"#8931B9","tertiary":"#F77D26","error":"#DA103F","surface":"#FADAD1","surfaceVariant":"#F9CBBE"}},{"name":"Inabakumori","md5":"d31314869377a8da3bb5e92558166ed5","dark":{"primary":"#b2b2b2","secondary":"#777777","tertiary":"#dddddd","error":"#ff9999","surface":"#333333","surfaceVariant":"#222222"},"light":{"primary":"#333333","secondary":"#b2b2b2","tertiary":"#777777","error":"#ff9999","surface":"#dddddd","surfaceVariant":"#b2b2b2"}},{"name":"Jiva","md5":"ad3e66064953eedeec3dcfec01bff67c","dark":{"primary":"#EDDD8E","secondary":"#EDDD8E","tertiary":"#f7e99e","error":"#e56c6c","surface":"#2D2B33","surfaceVariant":"#3D3B43"},"light":{"primary":"#DB8484","secondary":"#CC7676","tertiary":"#e58c8c","error":"#7f6f6f","surface":"#FFF4E3","surfaceVariant":"#EDE3D3"}},{"name":"Jiva Lotus","md5":"334d2597a61900858bf269d26af294b4","dark":{"primary":"#debfbf","secondary":"#debfbf","tertiary":"#ebcece","error":"#bfc0de","surface":"#212226","surfaceVariant":"#2c2e33"},"light":{"primary":"#d18080","secondary":"#CC7676","tertiary":"#db8888","error":"#7f6f6f","surface":"#E6EBDD","surfaceVariant":"#D3D9CA"}},{"name":"Jiva Paper","md5":"eeae484f8268146794fb7a82634f3c4a","dark":{"primary":"#bfc0de","secondary":"#bfc0de","tertiary":"#cecfeb","error":"#debfbf","surface":"#212226","surfaceVariant":"#2c2e33"},"light":{"primary":"#666666","secondary":"#666666","tertiary":"#707070","error":"#736363","surface":"#EBE7DD","surfaceVariant":"#DBD7CC"}},{"name":"Kanagawa Dragon","md5":"f17dee74f44103ca7f8860dc192160b4","dark":{"primary":"#8a9a7b","secondary":"#8ea4a2","tertiary":"#c4746e","error":"#c4746e","surface":"#181616","surfaceVariant":"#282727"},"light":{"primary":"#606D54","secondary":"#6D8886","tertiary":"#AE4E47","error":"#B14F48","surface":"#c5c9c5","surfaceVariant":"#c8c093"}},{"name":"Kanagawa Kasumi","md5":"3b04aae7950ffb1b6b2939873baf6d1e","dark":{"primary":"#D9A78B","secondary":"#7794A6","tertiary":"#8BA37A","error":"#D96C6C","surface":"#1A2026","surfaceVariant":"#20272E"},"light":{"primary":"#936B53","secondary":"#4F6878","tertiary":"#667858","error":"#A64F4F","surface":"#D9D1BA","surfaceVariant":"#C7BFA6"}},{"name":"Kanagawa Paper","md5":"42aabcdcd73126e54c1d2e388342ce7a","dark":{"primary":"#c4b28a","secondary":"#8ea49e","tertiary":"#938AA9","error":"#c4746e","surface":"#1F1F28","surfaceVariant":"#2A2A37"},"light":{"primary":"#6b7f9f","secondary":"#6f8795","tertiary":"#8b6e86","error":"#c27672","surface":"#f2f1ec","surfaceVariant":"#e4e1d8"}},{"name":"Kemuri","md5":"b84afa50f9b9cae9ad5ed7f06310837c","dark":{"primary":"#cb9168","secondary":"#a69680","tertiary":"#8da388","error":"#c6685d","surface":"#242120","surfaceVariant":"#36312f"},"light":{"primary":"#864A2D","secondary":"#6b5f50","tertiary":"#596655","error":"#9c4940","surface":"#DDD7CA","surfaceVariant":"#CAC1AF"}},{"name":"Kemuri Koke","md5":"e6789768540ad170d4e311aa96063170","dark":{"primary":"#8ba37e","secondary":"#a69680","tertiary":"#cb9168","error":"#c6685d","surface":"#242120","surfaceVariant":"#36312f"},"light":{"primary":"#4f5e49","secondary":"#6b5f50","tertiary":"#864A2D","error":"#9c4940","surface":"#DDD7CA","surfaceVariant":"#CAC1AF"}},{"name":"Kemuri Susu","md5":"8ab8694a11d6272eff4c76de99a407e9","dark":{"primary":"#cabaaa","secondary":"#73685F","tertiary":"#594F46","error":"#cf7670","surface":"#1e1d1b","surfaceVariant":"#282624"},"light":{"primary":"#262524","secondary":"#736B5E","tertiary":"#A89682","error":"#B84242","surface":"#D4C1A8","surfaceVariant":"#C5B29A"}},{"name":"Kitten","md5":"e47670cf5a546bd0be5d33299baaf6a4","dark":{"primary":"#b7b7b7","secondary":"#939393","tertiary":"#999999","error":"#dddddd","surface":"#232323","surfaceVariant":"#292929"},"light":{"primary":"#5d5d5d","secondary":"#726f6f","tertiary":"#83827e","error":"#222222","surface":"#ded9ca","surfaceVariant":"#d6d0c1"}},{"name":"Koneko","md5":"9813137920322a44eb3126bd9f585018","dark":{"primary":"#cc7e8b","secondary":"#c9afba","tertiary":"#d4a2ac","error":"#a05b71","surface":"#232323","surfaceVariant":"#292929"},"light":{"primary":"#cc7e8b","secondary":"#745873","tertiary":"#4d758e","error":"#964860","surface":"#dac6c8","surfaceVariant":"#c8aeb9"}},{"name":"Lilac AMOLED","md5":"844f89888114b80685cef34cf612a14d","dark":{"primary":"#b58fff","secondary":"#c79aff","tertiary":"#d8b4ff","error":"#ff6f9b","surface":"#000000","surfaceVariant":"#110d1a"},"light":{"primary":"#8a56d4","secondary":"#a074ff","tertiary":"#B375FF","error":"#FF5286","surface":"#fbf8ff","surfaceVariant":"#e8e0f8"}},{"name":"Macaron","md5":"2593b6f990833f835ee1a7781b05559d","dark":{"primary":"#E5B4E2","secondary":"#B4E5E5","tertiary":"#E5D0B4","error":"#E59A9E","surface":"#18181A","surfaceVariant":"#242426"},"light":{"primary":"#B574B2","secondary":"#4F9696","tertiary":"#A08654","error":"#B5666A","surface":"#F2F2F2","surfaceVariant":"#E0E0E0"}},{"name":"Matecito","md5":"f8456b4b1162f783ceb5bbab44b2bd4d","dark":{"primary":"#8da383","secondary":"#cb9b7c","tertiary":"#7f9193","error":"#c27979","surface":"#1e2320","surfaceVariant":"#272e2a"},"light":{"primary":"#4a5944","secondary":"#85583b","tertiary":"#3b4d52","error":"#8a4444","surface":"#e3dccf","surfaceVariant":"#d1c9bb"}},{"name":"Miasma","md5":"abb7a179c2697e0e5148292c46a354a0","dark":{"primary":"#c9a554","secondary":"#b36d43","tertiary":"#bb7744","error":"#b36d43","surface":"#222222","surfaceVariant":"#2a2a2a"},"light":{"primary":"#AB8836","secondary":"#b36d43","tertiary":"#bb7744","error":"#b36d43","surface":"#fafaf5","surfaceVariant":"#e8e8e0"}},{"name":"Mine","md5":"2b2a76635b77bd4aceeede94be88f148","dark":{"primary":"#e1e2d5","secondary":"#2d2a2e","tertiary":"#2d2a2e","error":"#d94a59","surface":"#1d1b1d","surfaceVariant":"#262427"},"light":{"primary":"#3a3a34","secondary":"#e6e4e8","tertiary":"#f0eef2","error":"#d94a59","surface":"#ffffff","surfaceVariant":"#f3f2f5"}},{"name":"Mizuki-Akiyama","md5":"4f97a6461ad2b4dd845989b7d185d025","dark":{"primary":"#e6a6c8","secondary":"#afa2d8","tertiary":"#7fb6d6","error":"#f08a9b","surface":"#10111b","surfaceVariant":"#1d1a2a"},"light":{"primary":"#b72f78","secondary":"#6f4bbb","tertiary":"#006a90","error":"#ba1a1a","surface":"#fff7fb","surfaceVariant":"#f4ddea"}},{"name":"Monochrome","md5":"0dce43d423c2ff621c913898ec595d61","dark":{"primary":"#aaaaaa","secondary":"#a7a7a7","tertiary":"#cccccc","error":"#dddddd","surface":"#111111","surfaceVariant":"#121212"},"light":{"primary":"#555555","secondary":"#505058","tertiary":"#333333","error":"#222222","surface":"#d4d4d4","surfaceVariant":"#EDEDED"}},{"name":"Murasaki","md5":"2fe4901d1ed8a5093533420c39a0597e","dark":{"primary":"#e8bcfb","secondary":"#8e0cc6","tertiary":"#066f50","error":"#e80e4f","surface":"#300443","surfaceVariant":"#50066f"},"light":{"primary":"#8e0cc6","secondary":"#EBC5FC","tertiary":"#bcfbe8","error":"#f33971","surface":"#f7e7fe","surfaceVariant":"#e8bcfb"}},{"name":"Murata","md5":"d9a07a6b4bce1515d0811437d6d90ae3","dark":{"primary":"#db6d6d","secondary":"#d1b394","tertiary":"#8faeb1","error":"#db6d6d","surface":"#1a1b1c","surfaceVariant":"#252627"},"light":{"primary":"#bf5a5a","secondary":"#94765a","tertiary":"#5c8286","error":"#d95f5f","surface":"#fdf8f2","surfaceVariant":"#f2ebe4"}},{"name":"NaySayer","md5":"5758c85941b766d1f38656368b51e056","dark":{"primary":"#2ec09c","secondary":"#8cde94","tertiary":"#318C81","error":"#ff0000","surface":"#062329","surfaceVariant":"#0b3335"},"light":{"primary":"#28A485","secondary":"#8cde94","tertiary":"#7ad0c6","error":"#F92672","surface":"#ffffff","surfaceVariant":"#f0f0f0"}},{"name":"Neon Surf","md5":"e3e7de16e17d791a2df2f4768b2fa9e0","dark":{"primary":"#00a8f4","secondary":"#22d3ee","tertiary":"#0ea5e9","error":"#B74E90","surface":"#000000","surfaceVariant":"#06101A"},"light":{"primary":"#0284c7","secondary":"#0891b2","tertiary":"#0D9CDE","error":"#8A3068","surface":"#F0FAFF","surfaceVariant":"#D8EEF8"}},{"name":"Noctalia legacy","md5":"a979f0f3a32bf340bae29f391fff1bb3","dark":{"primary":"#c7a1d8","secondary":"#9F75BD","tertiary":"#e0b7c9","error":"#e9899d","surface":"#1c1822","surfaceVariant":"#262130"},"light":{"primary":"#9b59ba","secondary":"#784999","tertiary":"#c17093","error":"#e9899d","surface":"#f5f1fa","surfaceVariant":"#e7dfee"}},{"name":"Nord Aurora","md5":"eb0da67f1e968923b1d25607814e80c2","dark":{"primary":"#b48ead","secondary":"#a3be8c","tertiary":"#ebcb8b","error":"#bf616a","surface":"#2e3440","surfaceVariant":"#3b4252"},"light":{"primary":"#C87056","secondary":"#A77B9C","tertiary":"#4E7449","error":"#bf616a","surface":"#eceff4","surfaceVariant":"#e5e9f0"}},{"name":"Norman","md5":"eb8ade0ffdd1b4cbaaf17422f262a2f2","dark":{"primary":"#33CC99","secondary":"#F0DB75","tertiary":"#F0758A","error":"#F07575","surface":"#0D0D0D","surfaceVariant":"#333333"},"light":{"primary":"#33CC99","secondary":"#F0DB75","tertiary":"#F0758A","error":"#F07575","surface":"#F2F2F2","surfaceVariant":"#CCCCCC"}},{"name":"Norman Muted","md5":"71faa2de9579d4692ef6b7e85215077b","dark":{"primary":"#4DB391","secondary":"#D9CC8C","tertiary":"#D98C99","error":"#D98C8C","surface":"#262626","surfaceVariant":"#404040"},"light":{"primary":"#4DB391","secondary":"#D9CC8C","tertiary":"#D98C99","error":"#D98C8C","surface":"#CCCCCC","surfaceVariant":"#B3B3B3"}},{"name":"Oasis Abyss","md5":"fe162b05149e56c247720e0027b7c506","dark":{"primary":"#D06666","secondary":"#FFA247","tertiary":"#F0E68C","error":"#FFA0A0","surface":"#1A1A1A","surfaceVariant":"#080808"},"light":{"primary":"#7d2b2b","secondary":"#ab5807","tertiary":"#696223","error":"#b36d43","surface":"#e8e0d8","surfaceVariant":"#f3efeb"}},{"name":"Occult Umbral","md5":"d6dcf2f5382b911d0be6e7d4c793a35c","dark":{"primary":"#BB3535","secondary":"#8BAA82","tertiary":"#9A7398","error":"#C25B5B","surface":"#0A0A12","surfaceVariant":"#14141E"},"light":{"primary":"#8B2E2E","secondary":"#5A1F6F","tertiary":"#3F1C4A","error":"#C25B5B","surface":"#EFE6DA","surfaceVariant":"#D2B48C"}},{"name":"One","md5":"c2794b78d6d89874b7e2dff26a2be0b3","dark":{"primary":"#61afef","secondary":"#c678dd","tertiary":"#98c379","error":"#e06c75","surface":"#1e2127","surfaceVariant":"#282c34"},"light":{"primary":"#4078f2","secondary":"#a626a4","tertiary":"#4A9348","error":"#b64439","surface":"#e8e8e8","surfaceVariant":"#e5e5e6"}},{"name":"One Dark Two","md5":"0b6ef209bac2add8671e9b28a9668144","dark":{"primary":"#62BAC6","secondary":"#EAC786","tertiary":"#98C379","error":"#E27881","surface":"#21252B","surfaceVariant":"#282C34"},"light":{"primary":"#99C5CC","secondary":"#9A7D4C","tertiary":"#658255","error":"#B4656E","surface":"#E6E6E6","surfaceVariant":"#DDDEDF"}},{"name":"One Dark Warmer","md5":"352b43444249050b8839caaf62e7d59d","dark":{"primary":"#57a5e5","secondary":"#bb70d2","tertiary":"#8fb573","error":"#de5d68","surface":"#232326","surfaceVariant":"#2c2d31"},"light":{"primary":"#4078f2","secondary":"#a626a4","tertiary":"#50a14f","error":"#e45649","surface":"#fafafa","surfaceVariant":"#f0f0f0"}},{"name":"Osaka jade","md5":"10a9d67a65e3995ce0a466b4b03b0269","dark":{"primary":"#1A7F67","secondary":"#167A63","tertiary":"#166050","error":"#933636","surface":"#081512","surfaceVariant":"#0F251F"},"light":{"primary":"#3B7561","secondary":"#526E4A","tertiary":"#4A8069","error":"#854145","surface":"#AEC2B4","surfaceVariant":"#95AD9C"}},{"name":"Oxide","md5":"367e52630794be134c85d568e52a8ca0","dark":{"primary":"#B85A30","secondary":"#8B9A5A","tertiary":"#D8A657","error":"#C25D4E","surface":"#231D1B","surfaceVariant":"#2E2623"},"light":{"primary":"#B85A30","secondary":"#6B8050","tertiary":"#BD8838","error":"#AD4433","surface":"#F2E8D8","surfaceVariant":"#F7F0E5"}},{"name":"Oxocarbon","md5":"d98d1e12c7bb23e3f5a70b73c240febc","dark":{"primary":"#33b1ff","secondary":"#42be65","tertiary":"#be95ff","error":"#ee5396","surface":"#161616","surfaceVariant":"#262626"},"light":{"primary":"#0f62fe","secondary":"#37A054","tertiary":"#673ab7","error":"#ee5396","surface":"#f2f4f8","surfaceVariant":"#dde1e6"}},{"name":"Paradise","md5":"e0a7e01e0cfbfbd418e7fd04d4614714","dark":{"primary":"#8da3b9","secondary":"#8aa6a2","tertiary":"#a988b0","error":"#b66467","surface":"#151515","surfaceVariant":"#222222"},"light":{"primary":"#334b5f","secondary":"#3b7873","tertiary":"#a1548a","error":"#b66467","surface":"#f5f5f5","surfaceVariant":"#e0e0e0"}},{"name":"Peche","md5":"04e13a2286e4a27ce3b468a836cf31af","dark":{"primary":"#9DD2C0","secondary":"#FADDD2","tertiary":"#E8B8A8","error":"#A7CCE1","surface":"#0e1214","surfaceVariant":"#192024"},"light":{"primary":"#50957E","secondary":"#D36C50","tertiary":"#CA6F44","error":"#4C8DAE","surface":"#E8EFF2","surfaceVariant":"#CFD9DE"}},{"name":"Rose Pine Alt","md5":"acf88b30abba433da70d91d83e84af93","dark":{"primary":"#c4a7e7","secondary":"#f6c177","tertiary":"#9ccfd8","error":"#eb6f92","surface":"#191724","surfaceVariant":"#26233a"},"light":{"primary":"#907aa9","secondary":"#C67C15","tertiary":"#56949f","error":"#b4637a","surface":"#fffaf3","surfaceVariant":"#f2e9e1"}},{"name":"Rose Pine Moon","md5":"940f65802e16eb212b9213b764eb6ed1","dark":{"primary":"#ea9a97","secondary":"#9ccfd8","tertiary":"#32758F","error":"#eb6f92","surface":"#232136","surfaceVariant":"#393552"},"light":{"primary":"#D1706B","secondary":"#56949f","tertiary":"#286983","error":"#b4637a","surface":"#fffaf3","surfaceVariant":"#f2e9e1"}},{"name":"Rose Pine Moon Alt","md5":"9a8107abca3911fa178e0dc06a27411a","dark":{"primary":"#c4a7e7","secondary":"#f6c177","tertiary":"#9ccfd8","error":"#eb6f92","surface":"#232136","surfaceVariant":"#393552"},"light":{"primary":"#907aa9","secondary":"#C67C15","tertiary":"#56949f","error":"#b4637a","surface":"#fffaf3","surfaceVariant":"#f2e9e1"}},{"name":"Rosey AMOLED","md5":"500223da86c3b94e6ca446a90eda73e6","dark":{"primary":"#ff8cb3","secondary":"#ffb3cc","tertiary":"#ffcce0","error":"#ff99b8","surface":"#000000","surfaceVariant":"#1a0f16"},"light":{"primary":"#E3648E","secondary":"#ff0066","tertiary":"#FF528B","error":"#FF5789","surface":"#fff5fa","surfaceVariant":"#FAEAF1"}},{"name":"SeaBed","md5":"484364fee44ae311c71ddcd528241d23","dark":{"primary":"#87E1DC","secondary":"#7FB1D4","tertiary":"#A2BF8D","error":"#CFA372","surface":"#0E2231","surfaceVariant":"#2D273E"},"light":{"primary":"#427876","secondary":"#436781","tertiary":"#5E734E","error":"#8D613B","surface":"#CAE9E5","surfaceVariant":"#DBF1EC"}},{"name":"Seoul256","md5":"7372827cbbe39b8586843bc7bf9b44f0","dark":{"primary":"#d5a55f","secondary":"#88b0d5","tertiary":"#61afac","error":"#ba3c38","surface":"#3a3a3a","surfaceVariant":"#444444"},"light":{"primary":"#a9824b","secondary":"#88b0d5","tertiary":"#376361","error":"#ba3c38","surface":"#dadada","surfaceVariant":"#c6c6c6"}},{"name":"Seoul256 Hard","md5":"29fa48ec2dfb59e90065478577188e90","dark":{"primary":"#d5a55f","secondary":"#88b0d5","tertiary":"#61afac","error":"#ba3c38","surface":"#1c1c1c","surfaceVariant":"#262626"},"light":{"primary":"#a9824b","secondary":"#88b0d5","tertiary":"#376361","error":"#ba3c38","surface":"#eeeeee","surfaceVariant":"#dadada"}},{"name":"Seoul256 Soft","md5":"164b2e614293add4819b37a30763e02a","dark":{"primary":"#d5a55f","secondary":"#88b0d5","tertiary":"#61afac","error":"#ba3c38","surface":"#4e4e4e","surfaceVariant":"#585858"},"light":{"primary":"#a9824b","secondary":"#88b0d5","tertiary":"#376361","error":"#ba3c38","surface":"#d0d0d0","surfaceVariant":"#bcbcbc"}},{"name":"Shien","md5":"bf093971a501b58aa50a280524fa152f","dark":{"primary":"#9B8BC1","secondary":"#7866A3","tertiary":"#5D507C","error":"#B87A87","surface":"#15131B","surfaceVariant":"#24202C"},"light":{"primary":"#5D507C","secondary":"#7866A3","tertiary":"#15131B","error":"#944D5C","surface":"#EFEEF1","surfaceVariant":"#D4D1DB"}},{"name":"Shinonome","md5":"68dbfaf9154c08913586957b4a3c485f","dark":{"primary":"#D5ACA9","secondary":"#B38D97","tertiary":"#C5BAAF","error":"#B38D97","surface":"#1A1D20","surfaceVariant":"#2D3339"},"light":{"primary":"#424B54","secondary":"#8C4351","tertiary":"#8F623F","error":"#8C4351","surface":"#EBCFB2","surfaceVariant":"#C5BAAF"}},{"name":"Solarized","md5":"ebfc1af6ef1fe07e1116183b4a8e7b5c","dark":{"primary":"#b58900","secondary":"#d33682","tertiary":"#cb4b16","error":"#dc322f","surface":"#002b36","surfaceVariant":"#06313C"},"light":{"primary":"#A37A00","secondary":"#d33682","tertiary":"#cb4b16","error":"#dc322f","surface":"#fdf6e3","surfaceVariant":"#eee8d5"}},{"name":"Solarized Osaka","md5":"4d18bf49f4b20e5eeadbee21f1207670","dark":{"primary":"#29a298","secondary":"#db302d","tertiary":"#b28500","error":"#db302d","surface":"#001419","surfaceVariant":"#002c38"},"light":{"primary":"#29a298","secondary":"#db302d","tertiary":"#b28500","error":"#db302d","surface":"#fdf5e2","surfaceVariant":"#ede7d3"}},{"name":"Spiderman","md5":"7f089fba079549bb43fb8cc8b5bf8566","dark":{"primary":"#F5453F","secondary":"#3D7EFF","tertiary":"#F5453F","error":"#FF6B3D","surface":"#0B2454","surfaceVariant":"#102D63"},"light":{"primary":"#C9282E","secondary":"#5C8FEF","tertiary":"#C9282E","error":"#B33418","surface":"#24478A","surfaceVariant":"#1D3D75"}},{"name":"Sway Classic","md5":"44b9a5ab3ca875d4b0e25f5d8db3d5c3","dark":{"primary":"#4C7899","secondary":"#2E9EF4","tertiary":"#5F676A","error":"#900000","surface":"#222222","surfaceVariant":"#333333"},"light":{"primary":"#285577","secondary":"#1A6EA8","tertiary":"#5F676A","error":"#900000","surface":"#F5F5F5","surfaceVariant":"#DCDCDC"}},{"name":"Tokyo Night Moon","md5":"16a88616cc923345b6640b3e46169357","dark":{"primary":"#7a88cf","secondary":"#d7729f","tertiary":"#9cd58a","error":"#f7768e","surface":"#1f2335","surfaceVariant":"#2c314a"},"light":{"primary":"#4e70c2","secondary":"#85539c","tertiary":"#4c663b","error":"#e55561","surface":"#f0f2f7","surfaceVariant":"#dbdfea"}},{"name":"Tokyo Night Storm","md5":"e35adc29613edafd4bc6a86c456f7d3a","dark":{"primary":"#7aa2f7","secondary":"#bb9af7","tertiary":"#73daca","error":"#f7768e","surface":"#24283b","surfaceVariant":"#1f2335"},"light":{"primary":"#4e70c2","secondary":"#85539c","tertiary":"#4c663b","error":"#e55561","surface":"#f0f2f7","surfaceVariant":"#dbdfea"}},{"name":"Tomorrow","md5":"52230400d1bea044738841182f167ef4","dark":{"primary":"#81a2be","secondary":"#b294bb","tertiary":"#de935f","error":"#cc6666","surface":"#1d1f21","surfaceVariant":"#282a2e"},"light":{"primary":"#4271ae","secondary":"#8959a8","tertiary":"#E5740B","error":"#c82829","surface":"#ffffff","surfaceVariant":"#E8E8E8"}},{"name":"Vesper","md5":"fe94f92724fa3196622408141d5588c2","dark":{"primary":"#FFC799","secondary":"#99FFE4","tertiary":"#FBADFF","error":"#FF8080","surface":"#0C0C0C","surfaceVariant":"#1C1C1C"},"light":{"primary":"#FFB170","secondary":"#00CC99","tertiary":"#FBADFF","error":"#FF8080","surface":"#F2F2F2","surfaceVariant":"#E5E5E5"}},{"name":"Zenbones","md5":"b4c23bb1487314fc2ef55c2b00f2523b","dark":{"primary":"#b4bdc3","secondary":"#888f94","tertiary":"#9f948f","error":"#de6e7c","surface":"#1c1917","surfaceVariant":"#403833"},"light":{"primary":"#2C363C","secondary":"#CFC1BA","tertiary":"#8C7F78","error":"#A8334C","surface":"#F0EDEC","surfaceVariant":"#CFC1BA"}}] \ No newline at end of file diff --git a/.local/state/noctalia/community-templates/antigravity/.noctalia-cache.json b/.local/state/noctalia/community-templates/antigravity/.noctalia-cache.json deleted file mode 100644 index b6ffe6e..0000000 --- a/.local/state/noctalia/community-templates/antigravity/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "37e681728b2fec11796989fc48cc3d31" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/antigravity/template.toml b/.local/state/noctalia/community-templates/antigravity/template.toml deleted file mode 100644 index 06bd1b4..0000000 --- a/.local/state/noctalia/community-templates/antigravity/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.antigravity] -name = "Antigravity" -category = "ai" - -[templates.antigravity] -input_path = "antigravity.json" -output_path = "~/.gemini/config/theme.json" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/archetype-pokemmo/.noctalia-cache.json b/.local/state/noctalia/community-templates/archetype-pokemmo/.noctalia-cache.json deleted file mode 100644 index e1b20b3..0000000 --- a/.local/state/noctalia/community-templates/archetype-pokemmo/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "b2c456fb15853159cfcb213f38b91b97" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/archetype-pokemmo/template.toml b/.local/state/noctalia/community-templates/archetype-pokemmo/template.toml deleted file mode 100644 index 5474dd4..0000000 --- a/.local/state/noctalia/community-templates/archetype-pokemmo/template.toml +++ /dev/null @@ -1,9 +0,0 @@ -[catalog.archetype-pokemmo] -name = "Archetype (PokeMMO)" -category = "gaming" - -[templates.archetype-pokemmo] -input_path_modes = { dark = "archetype-colors-dark.json", light = "archetype-colors-light.json" } -output_path = "$XDG_CACHE_HOME/noctalia/archetype-pokemmo/colors.json" -post_hook = "python3 '{{ config_dir }}/apply.py'" -hook_async = false diff --git a/.local/state/noctalia/community-templates/bat/.noctalia-cache.json b/.local/state/noctalia/community-templates/bat/.noctalia-cache.json deleted file mode 100644 index 17dd810..0000000 --- a/.local/state/noctalia/community-templates/bat/.noctalia-cache.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "files": { - "README.md": "c971168a3f8d5a0c570c8a7813760655", - "apply.sh": "72fdf03821d232593cf85ea926253472", - "bat.tmTheme": "48ce50cbdc345e4a61d8a3dc95b4fce8", - "template.toml": "6ee484a55483e12300a00641ec38aecc" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/bat/README.md b/.local/state/noctalia/community-templates/bat/README.md deleted file mode 100644 index afbf8cf..0000000 --- a/.local/state/noctalia/community-templates/bat/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# bat - -Adds a Noctalia syntax-highlighting theme for bat. - -Enable **bat** in **Noctalia Settings -> Templates**. The template writes `$XDG_CONFIG_HOME/bat/themes/noctalia.tmTheme` (`~/.config/bat/themes/noctalia.tmTheme` by default). - -The Bash post-hook creates `$XDG_CONFIG_HOME/bat/config` if necessary and selects `--theme=noctalia`. Unless that exact line is already present, it removes existing lines beginning with `--theme=` before appending the new selection. Back up your config first; no backup is created. - -Install `bat` or `batcat`: the hook runs the available executable with `cache --build` after generation. If neither exists, it prints a warning; run `bat cache --build` (or `batcat cache --build`) yourself after installation. diff --git a/.local/state/noctalia/community-templates/bat/apply.sh b/.local/state/noctalia/community-templates/bat/apply.sh deleted file mode 100755 index 9e2f6e4..0000000 --- a/.local/state/noctalia/community-templates/bat/apply.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -bat_config_dir="${XDG_CONFIG_HOME:-$HOME/.config}/bat" -themes_dir="$bat_config_dir/themes" -config_file="$bat_config_dir/config" -theme_file="$themes_dir/noctalia.tmTheme" -theme_line="--theme=noctalia" - -mkdir -p "$themes_dir" -touch "$config_file" "$theme_file" - -write_if_changed() { - local target="$1" tmp="$2" - if ! cmp -s "$target" "$tmp"; then - cat "$tmp" >"$target" - fi - rm -f "$tmp" -} - -if ! grep -Fxq -- "$theme_line" "$config_file"; then - tmp_file="$(mktemp "${config_file}.tmp.XXXXXX")" - sed '/^--theme=/d' "$config_file" >"$tmp_file" - [ -s "$tmp_file" ] && [ -n "$(tail -c1 "$tmp_file")" ] && echo >>"$tmp_file" - printf '%s\n' "$theme_line" >>"$tmp_file" - write_if_changed "$config_file" "$tmp_file" -fi - -if command -v bat >/dev/null 2>&1; then - bat cache --build -elif command -v batcat >/dev/null 2>&1; then - batcat cache --build -else - echo "Warning: 'bat' executable not found. Please run 'bat cache --build' manually once it is installed." -fi diff --git a/.local/state/noctalia/community-templates/bat/bat.tmTheme b/.local/state/noctalia/community-templates/bat/bat.tmTheme deleted file mode 100644 index be4979f..0000000 --- a/.local/state/noctalia/community-templates/bat/bat.tmTheme +++ /dev/null @@ -1,2112 +0,0 @@ - - - - - name - Noctalia - semanticClass - theme.noctalia - uuid - 627ce890-fabb-4d39-9819-7be71f4bdca7 - author - Noctalia - colorSpaceName - sRGB - settings - - - settings - - background - {{colors.background.default.hex}} - foreground - {{colors.on_background.default.hex}} - caret - {{colors.terminal_cursor.default.hex}} - lineHighlight - {{colors.surface_variant.default.hex}} - misspelling - {{colors.error.default.hex}} - accent - {{colors.primary.default.hex}} - selection - {{colors.surface_container_highest.default.hex}}40 - activeGuide - {{colors.terminal_normal_black.default.hex}} - findHighlight - {{colors.secondary_container.default.hex}} - gutterForeground - {{colors.outline.default.hex}} - - - - name - Basic text & variable names (incl. leading punctuation) - scope - text, source, variable.other.readwrite, punctuation.definition.variable - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - Parentheses, Brackets, Braces - scope - punctuation - settings - - foreground - {{colors.on_surface_variant.default.hex}} - fontStyle - - - - - name - Comments - scope - comment, punctuation.definition.comment - settings - - foreground - {{colors.on_surface_variant.default.hex}} - fontStyle - italic - - - - scope - string, punctuation.definition.string - settings - - foreground - {{colors.terminal_normal_green.default.hex}} - - - - scope - constant.character.escape - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - Booleans, constants, numbers - scope - constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point - settings - - foreground - {{colors.secondary.default.hex}} - - - - scope - keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword - settings - - foreground - {{colors.primary.default.hex}} - fontStyle - - - - - scope - entity.name.tag.documentation - settings - - foreground - {{colors.primary.default.hex}} - - - - name - Punctuation - scope - keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value - settings - - foreground - {{colors.tertiary.default.hex}} - - - - scope - entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - fontStyle - italic - - - - name - Classes - scope - entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - fontStyle - italic - - - - name - Enum - scope - entity.name.enum - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - fontStyle - italic - - - - name - Enum member - scope - meta.enum variable.other.readwrite, variable.other.enummember - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - Object properties - scope - meta.property.object - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - Types - scope - meta.type, meta.type-alias, support.type, entity.name.type - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - fontStyle - italic - - - - name - Decorators - scope - meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator - settings - - foreground - {{colors.secondary.default.hex}} - - - - scope - variable.parameter, meta.function.parameters - settings - - foreground - {{colors.tertiary_fixed_dim.default.hex}} - fontStyle - italic - - - - name - Built-ins - scope - constant.language, support.function.builtin - settings - - foreground - {{colors.error.default.hex}} - - - - scope - entity.other.attribute-name.documentation - settings - - foreground - {{colors.error.default.hex}} - - - - name - Preprocessor directives - scope - keyword.control.directive, punctuation.definition.directive - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - name - Type parameters - scope - punctuation.definition.typeparameters - settings - - foreground - {{colors.terminal_normal_cyan.default.hex}} - - - - name - Namespaces - scope - entity.name.namespace - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - name - Property names (left hand assignments in json/yaml/css) - scope - support.type.property-name.css - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - fontStyle - - - - - name - This/Self keyword - scope - variable.language.this, variable.language.this punctuation.definition.variable - settings - - foreground - {{colors.error.default.hex}} - - - - name - Object properties - scope - variable.object.property - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - String template interpolation - scope - string.template variable, string variable - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - `new` as bold - scope - keyword.operator.new - settings - - fontStyle - bold - - - - name - C++ extern keyword - scope - storage.modifier.specifier.extern.cpp - settings - - foreground - {{colors.primary.default.hex}} - - - - name - C++ scope resolution - scope - entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - name - C++ doc keywords - scope - storage.type.class.doxygen - settings - - fontStyle - - - - - name - C++ operators - scope - storage.modifier.reference.cpp - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - C# Interpolated Strings - scope - meta.interpolation.cs - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - C# xml-style docs - scope - comment.block.documentation.cs - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - Classes, reflecting the className color in JSX - scope - source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - name - Operators - scope - punctuation.separator.operator.css - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - Pseudo classes - scope - source.css entity.other.attribute-name.pseudo-class - settings - - foreground - {{colors.tertiary.default.hex}} - - - - scope - source.css constant.other.unicode-range - settings - - foreground - {{colors.secondary.default.hex}} - - - - scope - source.css variable.parameter.url - settings - - foreground - {{colors.terminal_normal_green.default.hex}} - fontStyle - - - - - name - CSS vendored property names - scope - support.type.vendored.property-name - settings - - foreground - {{colors.terminal_normal_cyan.default.hex}} - - - - name - Less/SCSS right-hand variables (@/$-prefixed) - scope - source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss - settings - - foreground - {{colors.tertiary_fixed_dim.default.hex}} - - - - name - CSS variables (--prefixed) - scope - source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - name - CSS Percentage values, styled the same as numbers - scope - keyword.other.unit.percentage.css - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - CSS Attribute selectors, styled the same as strings - scope - source.css meta.attribute-selector - settings - - foreground - {{colors.terminal_normal_green.default.hex}} - - - - name - JSON/YAML keys, other left-hand assignments - scope - keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - fontStyle - - - - - name - JSON/YAML constants - scope - constant.language.json, constant.language.yaml - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - YAML anchors - scope - entity.name.type.anchor.yaml, variable.other.alias.yaml - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - fontStyle - - - - - name - TOML tables / ini groups - scope - support.type.property-name.table, entity.name.section.group-title.ini - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - name - TOML dates - scope - constant.other.time.datetime.offset.toml - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - YAML anchor puctuation - scope - punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - YAML triple dashes - scope - entity.other.document.begin.yaml - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - Markup Diff - scope - markup.changed.diff - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - Diff - scope - meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - name - Diff Inserted - scope - markup.inserted.diff - settings - - foreground - {{colors.terminal_normal_green.default.hex}} - - - - name - Diff Deleted - scope - markup.deleted.diff - settings - - foreground - {{colors.error.default.hex}} - - - - name - dotenv left-hand side assignments - scope - variable.other.env - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - name - dotenv reference to existing env variable - scope - string.quoted variable.other.env - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - GDScript functions - scope - support.function.builtin.gdscript - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - name - GDScript constants - scope - constant.language.gdscript - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - Comment keywords - scope - comment meta.annotation.go - settings - - foreground - {{colors.tertiary_fixed_dim.default.hex}} - - - - name - go:embed, go:build, etc. - scope - comment meta.annotation.parameters.go - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - Go constants (nil, true, false) - scope - constant.language.go - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - GraphQL variables - scope - variable.graphql - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - GraphQL aliases - scope - string.unquoted.alias.graphql - settings - - foreground - {{colors.on_tertiary_container.default.hex}} - - - - name - GraphQL enum members - scope - constant.character.enum.graphql - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - GraphQL field in types - scope - meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql - settings - - foreground - {{colors.on_tertiary_container.default.hex}} - - - - name - HTML/XML DOCTYPE as keyword - scope - keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag - settings - - foreground - {{colors.primary.default.hex}} - - - - name - HTML/XML-like <tags/> - scope - entity.name.tag - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - fontStyle - - - - - name - Special characters like &amp; - scope - text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation - settings - - foreground - {{colors.error.default.hex}} - - - - name - HTML/XML tag attribute values - scope - entity.other.attribute-name - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - name - Components - scope - support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - fontStyle - - - - - name - Annotations - scope - punctuation.definition.annotation, storage.type.annotation - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - Java enums - scope - constant.other.enum.java - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - Java imports - scope - storage.modifier.import.java - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - Javadoc - scope - comment.block.javadoc.java keyword.other.documentation.javadoc.java - settings - - fontStyle - - - - - name - Exported Variable - scope - meta.export variable.other.readwrite.js - settings - - foreground - {{colors.tertiary_fixed_dim.default.hex}} - - - - name - JS/TS constants & properties - scope - variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - JSDoc; these are mainly params, so styled as such - scope - variable.other.jsdoc, comment.block.documentation variable.other - settings - - foreground - {{colors.tertiary_fixed_dim.default.hex}} - fontStyle - - - - - name - JSDoc keywords - scope - storage.type.class.jsdoc - settings - - fontStyle - - - - - scope - support.type.object.console.js - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - Node constants as keywords (module, etc.) - scope - support.constant.node, support.type.object.module.js - settings - - foreground - {{colors.primary.default.hex}} - - - - name - implements as keyword - scope - storage.modifier.implements - settings - - foreground - {{colors.primary.default.hex}} - - - - name - Builtin types - scope - constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts - settings - - foreground - {{colors.primary.default.hex}} - - - - scope - variable.parameter.generic - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - name - Arrow functions - scope - keyword.declaration.function.arrow.js, storage.type.function.arrow.ts - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach) - scope - punctuation.decorator.ts - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - fontStyle - italic - - - - name - Extra JS/TS keywords - scope - keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts - settings - - foreground - {{colors.primary.default.hex}} - - - - name - Julia macros - scope - support.function.macro.julia - settings - - foreground - {{colors.tertiary.default.hex}} - fontStyle - italic - - - - name - Julia language constants (true, false) - scope - constant.language.julia - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - Julia other constants (these seem to be arguments inside arrays) - scope - constant.other.symbol.julia - settings - - foreground - {{colors.tertiary_fixed_dim.default.hex}} - - - - name - LaTeX preamble - scope - text.tex keyword.control.preamble - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - LaTeX be functions - scope - text.tex support.function.be - settings - - foreground - {{colors.terminal_normal_cyan.default.hex}} - - - - name - LaTeX math - scope - constant.other.general.math.tex - settings - - foreground - {{colors.on_tertiary_container.default.hex}} - - - - name - Liquid Builtin Objects & User Defined Variables - scope - variable.language.liquid - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - Lua docstring keywords - scope - comment.line.double-dash.documentation.lua storage.type.annotation.lua - settings - - foreground - {{colors.primary.default.hex}} - fontStyle - - - - - name - Lua docstring variables - scope - comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua - settings - - foreground - {{colors.on_background.default.hex}} - - - - scope - heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, heading.1.quarto punctuation.definition.heading.quarto, heading.1.quarto, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc - settings - - foreground - {{colors.error.default.hex}} - - - - scope - heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, heading.2.quarto punctuation.definition.heading.quarto, heading.2.quarto, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc - settings - - foreground - {{colors.secondary.default.hex}} - - - - scope - heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, heading.3.quarto punctuation.definition.heading.quarto, heading.3.quarto, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - scope - heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, heading.4.quarto punctuation.definition.heading.quarto, heading.4.quarto, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc - settings - - foreground - {{colors.terminal_normal_green.default.hex}} - - - - scope - heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, heading.5.quarto punctuation.definition.heading.quarto, heading.5.quarto, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - scope - heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, heading.6.quarto punctuation.definition.heading.quarto, heading.6.quarto, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc - settings - - foreground - {{colors.primary_fixed_dim.default.hex}} - - - - scope - markup.bold - settings - - foreground - {{colors.error.default.hex}} - fontStyle - bold - - - - scope - markup.italic - settings - - foreground - {{colors.error.default.hex}} - fontStyle - italic - - - - scope - markup.strikethrough - settings - - foreground - {{colors.outline_variant.default.hex}} - fontStyle - strikethrough - - - - name - Markdown auto links - scope - punctuation.definition.link, markup.underline.link - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - name - Markdown links - scope - text.html.markdown punctuation.definition.link.title, text.html.quarto punctuation.definition.link.title, string.other.link.title.markdown, string.other.link.title.quarto, markup.link, punctuation.definition.constant.markdown, punctuation.definition.constant.quarto, constant.other.reference.link.markdown, constant.other.reference.link.quarto, markup.substitution.attribute-reference - settings - - foreground - {{colors.primary_fixed_dim.default.hex}} - - - - name - Markdown code spans - scope - punctuation.definition.raw.markdown, punctuation.definition.raw.quarto, markup.inline.raw.string.markdown, markup.inline.raw.string.quarto, markup.raw.block.markdown, markup.raw.block.quarto - settings - - foreground - {{colors.terminal_normal_green.default.hex}} - - - - name - Markdown triple backtick language identifier - scope - fenced_code.block.language - settings - - foreground - {{colors.terminal_normal_cyan.default.hex}} - - - - name - Markdown triple backticks - scope - markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc - settings - - foreground - {{colors.on_surface_variant.default.hex}} - - - - name - Markdown quotes - scope - markup.quote, punctuation.definition.quote.begin - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - Markdown separators - scope - meta.separator.markdown - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - Markdown list bullets - scope - punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - Quarto headings - scope - markup.heading.quarto - settings - - fontStyle - bold - - - - name - Nix attribute names - scope - entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - name - Nix parameter names - scope - variable.parameter.name.nix - settings - - foreground - {{colors.on_background.default.hex}} - fontStyle - - - - - name - Nix interpolated parameter names - scope - meta.embedded variable.parameter.name.nix - settings - - foreground - {{colors.primary_fixed_dim.default.hex}} - fontStyle - - - - - name - Nix paths - scope - string.unquoted.path.nix - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - fontStyle - - - - - name - PHP Attributes - scope - support.attribute.builtin, meta.attribute.php - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - name - PHP Parameters (needed for the leading dollar sign) - scope - meta.function.parameters.php punctuation.definition.variable.php - settings - - foreground - {{colors.tertiary_fixed_dim.default.hex}} - - - - name - PHP Constants (null, __FILE__, etc.) - scope - constant.language.php - settings - - foreground - {{colors.primary.default.hex}} - - - - name - PHP functions - scope - text.html.php support.function - settings - - foreground - {{colors.terminal_normal_cyan.default.hex}} - - - - name - PHPdoc keywords - scope - keyword.other.phpdoc.php - settings - - fontStyle - - - - - name - Python argument functions reset to text, otherwise they inherit blue from function-call - scope - support.variable.magic.python, meta.function-call.arguments.python - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - Python double underscore functions - scope - support.function.magic.python - settings - - foreground - {{colors.terminal_normal_cyan.default.hex}} - fontStyle - italic - - - - name - Python `self` keyword - scope - variable.parameter.function.language.special.self.python, variable.language.special.self.python - settings - - foreground - {{colors.error.default.hex}} - fontStyle - italic - - - - name - python keyword flow/logical (for ... in) - scope - keyword.control.flow.python, keyword.operator.logical.python - settings - - foreground - {{colors.primary.default.hex}} - - - - name - python storage type - scope - storage.type.function.python - settings - - foreground - {{colors.primary.default.hex}} - - - - name - python function support - scope - support.token.decorator.python, meta.function.decorator.identifier.python - settings - - foreground - {{colors.terminal_normal_cyan.default.hex}} - - - - name - python function calls - scope - meta.function-call.python - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - name - python function decorators - scope - entity.name.function.decorator.python, punctuation.definition.decorator.python - settings - - foreground - {{colors.secondary.default.hex}} - fontStyle - italic - - - - name - python placeholder reset to normal string - scope - constant.character.format.placeholder.other.python - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - Python exception & builtins such as exit() - scope - support.type.exception.python, support.function.builtin.python - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - entity.name.type - scope - support.type.python - settings - - foreground - {{colors.primary.default.hex}} - - - - name - python constants (True/False) - scope - constant.language.python - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - Arguments accessed later in the function body - scope - meta.indexed-name.python, meta.item-access.python - settings - - foreground - {{colors.tertiary_fixed_dim.default.hex}} - fontStyle - italic - - - - name - Python f-strings/binary/unicode storage types - scope - storage.type.string.python - settings - - foreground - {{colors.terminal_normal_green.default.hex}} - fontStyle - italic - - - - name - Python type hints - scope - meta.function.parameters.python - settings - - fontStyle - - - - - name - Regex string begin/end in JS/TS - scope - string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - Regex anchors (^, $) - scope - keyword.control.anchor.regexp - settings - - foreground - {{colors.primary.default.hex}} - - - - name - Regex regular string match - scope - string.regexp.ts - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - Regex group parenthesis & backreference (\1, \2, \3, ...) - scope - punctuation.definition.group.regexp, keyword.other.back-reference.regexp - settings - - foreground - {{colors.terminal_normal_green.default.hex}} - - - - name - Regex character class [] - scope - punctuation.definition.character-class.regexp - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - name - Regex character classes (\d, \w, \s) - scope - constant.other.character-class.regexp - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - Regex range - scope - constant.other.character-class.range.regexp - settings - - foreground - {{colors.terminal_cursor.default.hex}} - - - - name - Regex quantifier - scope - keyword.operator.quantifier.regexp - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - Regex constant/numeric - scope - constant.character.numeric.regexp - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds - scope - punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - name - Rust attribute - scope - meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - fontStyle - italic - - - - name - Rust attribute strings - scope - meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust - settings - - fontStyle - - - - - name - Rust keyword - scope - entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust - settings - - foreground - {{colors.primary.default.hex}} - fontStyle - - - - - name - Rust u/i32, u/i64, etc. - scope - entity.name.type.numeric.rust - settings - - foreground - {{colors.primary.default.hex}} - fontStyle - - - - - name - Rust generic - scope - meta.generic.rust - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - Rust impl - scope - entity.name.impl.rust - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - fontStyle - italic - - - - name - Rust module - scope - entity.name.module.rust - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - Rust trait - scope - entity.name.trait.rust - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - fontStyle - italic - - - - name - Rust struct - scope - storage.type.source.rust - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - name - Rust union - scope - entity.name.union.rust - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - name - Rust enum member - scope - meta.enum.rust storage.type.source.rust - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - Rust macro - scope - support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - fontStyle - italic - - - - name - Rust lifetime - scope - storage.modifier.lifetime.rust, entity.name.type.lifetime - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - fontStyle - italic - - - - name - Rust string formatting - scope - string.quoted.double.rust constant.other.placeholder.rust - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - Rust return type generic - scope - meta.function.return-type.rust meta.generic.rust storage.type.rust - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - Rust functions - scope - meta.function.call.rust - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - name - Rust angle brackets - scope - punctuation.brackets.angle.rust - settings - - foreground - {{colors.terminal_normal_cyan.default.hex}} - - - - name - Rust constants - scope - constant.other.caps.rust - settings - - foreground - {{colors.secondary.default.hex}} - - - - name - Rust function parameters - scope - meta.function.definition.rust variable.other.rust - settings - - foreground - {{colors.tertiary_fixed_dim.default.hex}} - - - - name - Rust closure variables - scope - meta.function.call.rust variable.other.rust - settings - - foreground - {{colors.on_background.default.hex}} - - - - name - Rust self - scope - variable.language.self.rust - settings - - foreground - {{colors.error.default.hex}} - - - - name - Rust metavariable names - scope - variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - Shell shebang - scope - comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - fontStyle - italic - - - - name - Shell shebang command - scope - comment.line.shebang constant.language - settings - - foreground - {{colors.tertiary.default.hex}} - fontStyle - italic - - - - name - Shell interpolated command - scope - meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation - settings - - foreground - {{colors.error.default.hex}} - - - - name - Shell interpolated command variable - scope - meta.string meta.interpolation.parameter.shell variable.other.readwrite - settings - - foreground - {{colors.secondary.default.hex}} - fontStyle - italic - - - - scope - source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell - settings - - foreground - {{colors.tertiary.default.hex}} - - - - name - Shell EOF - scope - entity.name.tag.heredoc.shell - settings - - foreground - {{colors.primary.default.hex}} - - - - name - Shell quoted variable - scope - string.quoted.double.shell variable.other.normal.shell - settings - - foreground - {{colors.on_background.default.hex}} - - - - scope - markup.heading.typst - settings - - foreground - {{colors.error.default.hex}} - - - - name - JSON Keys - scope - source.json meta.mapping.key string - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - name - JSON key surrounding quotes - scope - source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end - settings - - foreground - {{colors.on_surface_variant.default.hex}} - - - - scope - markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man - settings - - foreground - {{colors.primary.default.hex}} - - - - scope - markup.heading.commands.man - settings - - foreground - {{colors.terminal_normal_blue.default.hex}} - - - - scope - markup.heading.env.man - settings - - foreground - {{colors.terminal_normal_magenta.default.hex}} - - - - name - Man page options - scope - entity.name - settings - - foreground - {{colors.tertiary.default.hex}} - - - - scope - markup.heading.1.markdown - settings - - foreground - {{colors.error.default.hex}} - - - - scope - markup.heading.2.markdown - settings - - foreground - {{colors.secondary.default.hex}} - - - - scope - markup.heading.markdown - settings - - foreground - {{colors.terminal_normal_yellow.default.hex}} - - - - - diff --git a/.local/state/noctalia/community-templates/bat/template.toml b/.local/state/noctalia/community-templates/bat/template.toml deleted file mode 100644 index c9f339c..0000000 --- a/.local/state/noctalia/community-templates/bat/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.bat] -name = "bat" -category = "terminal" - -[templates.bat] -input_path = "bat.tmTheme" -output_path = "$XDG_CONFIG_HOME/bat/themes/noctalia.tmTheme" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/blender/.noctalia-cache.json b/.local/state/noctalia/community-templates/blender/.noctalia-cache.json deleted file mode 100644 index dd4e754..0000000 --- a/.local/state/noctalia/community-templates/blender/.noctalia-cache.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "files": { - "README.md": "af0b5fd57df6929d6d1f629518541b08", - "blender_theme.py": "1a0cd158ac744d4887a832631d1c58b3", - "screenshot.png": "35fe418801156063765900cb85780f4e", - "template.toml": "2268722156753442c3797250df7f4222" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/blender/README.md b/.local/state/noctalia/community-templates/blender/README.md deleted file mode 100644 index a37a954..0000000 --- a/.local/state/noctalia/community-templates/blender/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Blender - -Blender's theme system isn't a CSS file, it's roughly 570 individual color properties on -`bpy.context.preferences.themes[0]`, saved into a binary `userpref.blend`, not a plain-text -config. So this template doesn't just render a file, `input_path` is a Python script (with -`{{colors.role.default.hex}}` placeholders substituted the normal way), and `post_hook` runs it -through Blender itself in headless mode, which applies the colors via the real `bpy` API and -saves preferences directly. No GUI window opens, `--background` mode is fully invisible. - -## What gets themed, and what deliberately doesn't - -Only structural chrome: panel backgrounds, headers, tab strips, widget fills/outlines/text, -editor borders, list backgrounds, metadata overlay boxes. Around 345 of the ~570 properties. - -The rest (about 225) are left at Blender's own defaults on purpose: mesh-editing selection -states (vertex/edge/face colors), node category colors, sequencer strip-type colors, syntax -highlighting, keyframe types, axis/gizmo colors. These are workflow conventions users rely on -for actual 3D work, not decoration, recoloring them to an arbitrary palette would hurt -usability rather than improve consistency. Same reasoning already applied to terminal ANSI -colors and Blender's own axis-color convention (X=red, Y=green, Z=blue) elsewhere. - -## Native install - -Runs `blender --background --python ...` directly. No setup beyond having `blender` on `PATH`. - -## Flatpak install (`org.blender.Blender`) - -Blender's Flatpak has `filesystems=host` (full host filesystem access), broader than most -sandboxed apps here. `$XDG_CONFIG_HOME` inside the sandbox is still remapped to -`~/.var/app/org.blender.Blender/config` regardless, same as every other Flatpak app, but that -doesn't matter for this template: the rendered script lives at a plain host path -(`~/.cache/noctalia/blender_theme_rendered.py`), and Blender's `host` grant means it can read -that path directly by its real location, no `flatpak override` or `.var/app`-local copy needed -at all. - -## Testing - -Tested against Blender 5.2.0 LTS (Flatpak). Verified via a full audit: captured Blender's true -factory-default theme values (`--factory-startup`) and diffed against the post-apply state -property by property, confirming exactly which of the ~570 were intentionally changed versus -intentionally left alone, not just spot-checked visually. diff --git a/.local/state/noctalia/community-templates/blender/blender_theme.py b/.local/state/noctalia/community-templates/blender/blender_theme.py deleted file mode 100644 index 9d7a32a..0000000 --- a/.local/state/noctalia/community-templates/blender/blender_theme.py +++ /dev/null @@ -1,192 +0,0 @@ -"""Applies Noctalia's palette to Blender's UI chrome, run headless via `blender --background --python`. - -Only structural chrome is themed: panel backgrounds, headers, widget fills/outlines/text. -Workflow-meaningful colors (mesh selection states, node categories, sequencer strip types, -syntax highlighting) are deliberately left at Blender's own defaults, since users rely on those -as functional conventions, not decoration. -""" - -import bpy - -COLORS = { - "surface": "{{colors.surface.default.hex}}", - "on_surface": "{{colors.on_surface.default.hex}}", - "surface_variant": "{{colors.surface_variant.default.hex}}", - "on_surface_variant": "{{colors.on_surface_variant.default.hex}}", - "surface_container": "{{colors.surface_container.default.hex}}", - "surface_container_low": "{{colors.surface_container_low.default.hex}}", - "surface_container_high": "{{colors.surface_container_high.default.hex}}", - "outline": "{{colors.outline.default.hex}}", - "outline_variant": "{{colors.outline_variant.default.hex}}", - "primary": "{{colors.primary.default.hex}}", - "on_primary": "{{colors.on_primary.default.hex}}", - "primary_container": "{{colors.primary_container.default.hex}}", - "on_primary_container": "{{colors.on_primary_container.default.hex}}", - "secondary": "{{colors.secondary.default.hex}}", - "secondary_container": "{{colors.secondary_container.default.hex}}", - "on_secondary_container": "{{colors.on_secondary_container.default.hex}}", - "tertiary": "{{colors.tertiary.default.hex}}", - "tertiary_container": "{{colors.tertiary_container.default.hex}}", - "on_tertiary_container": "{{colors.on_tertiary_container.default.hex}}", - "error": "{{colors.error.default.hex}}", - "on_error": "{{colors.on_error.default.hex}}", - "error_container": "{{colors.error_container.default.hex}}", -} - - -def hex_to_rgb(hex_str): - hex_str = hex_str.lstrip("#") - return tuple(int(hex_str[i : i + 2], 16) / 255.0 for i in (0, 2, 4)) - - -RGB = {name: hex_to_rgb(value) for name, value in COLORS.items()} - - -def classify(path): - if path.endswith(".space.back"): - return "surface" - if path.endswith(".space.header"): - return "surface_container" - if path.endswith(".space.header_text"): - return "on_surface" - if path.endswith(".space.header_text_hi"): - return "primary" - if path.endswith(".space.text"): - return "on_surface" - if path.endswith(".space.text_hi"): - return "primary" - if path.endswith(".space.title"): - return "on_surface_variant" - if path.endswith(".space.tab_active"): - return "surface_container_high" - if path.endswith(".space.tab_back"): - return "surface_container_low" - if path.endswith(".space.tab_outline"): - return "outline" - if path.endswith(".space.gradients.gradient"): - return "surface" - if path.endswith(".space.gradients.high_gradient"): - return "surface_container" - if path.endswith("row_alternate"): - return "surface_container_low" - - if ".wcol_" in path: - suffix = path.rsplit(".", 1)[-1] - wcol_map = { - "inner": "surface_container", - "inner_sel": "primary_container", - "inner_key": "tertiary_container", - "inner_key_sel": "tertiary_container", - "inner_anim": "secondary_container", - "inner_anim_sel": "secondary_container", - "inner_driven": "tertiary", - "inner_driven_sel": "tertiary", - "inner_changed": "primary", - "inner_changed_sel": "primary", - "inner_overridden": "error_container", - "inner_overridden_sel": "error_container", - "outline": "outline", - "outline_sel": "primary", - "item": "on_surface_variant", - "text": "on_surface", - "text_sel": "on_primary", - "error": "error", - "warning": "tertiary", - "success": "secondary", - "info": "primary", - } - if suffix in wcol_map: - return wcol_map[suffix] - - if path.startswith("regions."): - if path.endswith(".back") or path.endswith(".header_back"): - return "surface_container" - if path.endswith(".tab_back"): - return "surface_container_low" - if path.endswith(".text"): - return "on_surface" - if path.endswith(".text_selected"): - return "primary" - - direct = { - "text_editor.line_numbers": "on_surface_variant", - "text_editor.line_numbers_background": "surface_container_low", - "text_editor.cursor": "primary", - "text_editor.selected_text": "primary_container", - "image_editor.metadatabg": "surface_container", - "image_editor.metadatatext": "on_surface", - "sequence_editor.metadatabg": "surface_container", - "sequence_editor.metadatatext": "on_surface", - "sequence_editor.preview_back": "surface", - "clip_editor.metadatabg": "surface_container", - "clip_editor.metadatatext": "on_surface", - "node_editor.node_outline": "outline", - "user_interface.widget_text_cursor": "primary", - "user_interface.editor_border": "outline", - "user_interface.editor_outline": "outline_variant", - "user_interface.editor_outline_active": "primary", - "user_interface.panel_header": "surface_container", - "user_interface.panel_back": "surface_container_low", - "user_interface.panel_outline": "outline", - "user_interface.panel_title": "on_surface", - "user_interface.panel_text": "on_surface", - "user_interface.panel_active": "primary", - "outliner.selected_highlight": "primary_container", - "outliner.active": "primary", - "outliner.selected_object": "on_primary_container", - "outliner.active_object": "on_primary", - "outliner.match": "tertiary_container", - "info.info_error_text": "error", - "info.info_warning_text": "tertiary", - "info.info_info_text": "on_surface", - "info.info_property_text": "secondary", - "info.info_operator_text": "primary", - "info.info_debug_text": "outline", - "info.info_selected": "primary_container", - "info.info_selected_text": "on_primary_container", - "console.line_output": "on_surface", - "console.line_input": "primary", - "console.line_info": "secondary", - "console.line_error": "error", - "console.select": "primary_container", - "console.cursor": "primary", - "file_browser.selected_file": "primary_container", - "preferences.match": "tertiary_container", - "properties.match": "tertiary_container", - } - if path in direct: - return direct[path] - - return None - - -def walk_and_apply(obj, path="", depth=0): - if depth > 4: - return 0 - applied = 0 - for prop in obj.bl_rna.properties: - if prop.identifier == "rna_type": - continue - try: - val = getattr(obj, prop.identifier) - except Exception: - continue - full = f"{path}.{prop.identifier}" if path else prop.identifier - if prop.type == "POINTER" and val is not None: - applied += walk_and_apply(val, full, depth + 1) - elif prop.type == "FLOAT" and getattr(prop, "array_length", 0) in (3, 4): - role = classify(full) - if role is None: - continue - rgb = RGB[role] - current = list(val) - current[0], current[1], current[2] = rgb - setattr(obj, prop.identifier, current) - applied += 1 - return applied - - -theme = bpy.context.preferences.themes[0] -count = walk_and_apply(theme) -print(f"noctalia-theme: applied {count} properties") -bpy.ops.wm.save_userpref() diff --git a/.local/state/noctalia/community-templates/blender/screenshot.png b/.local/state/noctalia/community-templates/blender/screenshot.png deleted file mode 100644 index e9eb348..0000000 Binary files a/.local/state/noctalia/community-templates/blender/screenshot.png and /dev/null differ diff --git a/.local/state/noctalia/community-templates/blender/template.toml b/.local/state/noctalia/community-templates/blender/template.toml deleted file mode 100644 index ad41784..0000000 --- a/.local/state/noctalia/community-templates/blender/template.toml +++ /dev/null @@ -1,15 +0,0 @@ -[catalog.blender] -name = "Blender" -category = "editor" - -[templates.blender] -input_path = "blender_theme.py" -output_path = "~/.cache/noctalia/blender_theme_rendered.py" -post_hook = "blender --background --python ~/.cache/noctalia/blender_theme_rendered.py" -requires_path = "~/.config/blender" - -[templates.blender-flatpak] -input_path = "blender_theme.py" -output_path = "~/.cache/noctalia/blender_theme_rendered.py" -post_hook = "flatpak run org.blender.Blender --background --python ~/.cache/noctalia/blender_theme_rendered.py" -requires_path = "~/.var/app/org.blender.Blender" diff --git a/.local/state/noctalia/community-templates/brave-origin/.noctalia-cache.json b/.local/state/noctalia/community-templates/brave-origin/.noctalia-cache.json deleted file mode 100644 index 7b4b148..0000000 --- a/.local/state/noctalia/community-templates/brave-origin/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "b00582c206b5456ae8fd82882d0c8084" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/brave-origin/template.toml b/.local/state/noctalia/community-templates/brave-origin/template.toml deleted file mode 100644 index 0c5d8d0..0000000 --- a/.local/state/noctalia/community-templates/brave-origin/template.toml +++ /dev/null @@ -1,9 +0,0 @@ -[catalog.brave-origin] -name = "Brave Origin" -category = "browser" - -[templates.brave-origin] -input_path = "manifest.json" -output_path = "$XDG_CACHE_HOME/noctalia/brave-origin-theme/manifest.json" -post_hook = "bash '{{ config_dir }}/apply.sh' {{ mode }}" -requires_path = "~/.config/BraveSoftware/Brave-Origin" diff --git a/.local/state/noctalia/community-templates/brave/.noctalia-cache.json b/.local/state/noctalia/community-templates/brave/.noctalia-cache.json deleted file mode 100644 index 8dd766b..0000000 --- a/.local/state/noctalia/community-templates/brave/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "5824b129b9a884cf0a1d6ce1ac0c2c7a" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/brave/template.toml b/.local/state/noctalia/community-templates/brave/template.toml deleted file mode 100644 index b419c74..0000000 --- a/.local/state/noctalia/community-templates/brave/template.toml +++ /dev/null @@ -1,9 +0,0 @@ -[catalog.brave] -name = "Brave" -category = "browser" - -[templates.brave] -input_path = "manifest.json" -output_path = "$XDG_CACHE_HOME/noctalia/brave-theme/manifest.json" -post_hook = "bash '{{ config_dir }}/apply.sh' {{ mode }}" -requires_path = "~/.config/BraveSoftware/Brave-Browser" diff --git a/.local/state/noctalia/community-templates/catalog.json b/.local/state/noctalia/community-templates/catalog.json deleted file mode 100644 index a4eade7..0000000 --- a/.local/state/noctalia/community-templates/catalog.json +++ /dev/null @@ -1 +0,0 @@ -[{"name":"antigravity","category":"ai","files":[{"name":"antigravity.json","md5":"572d6e1c3c8bcd4d388aad5a84768701","mode":"0664"},{"name":"apply.sh","md5":"d2dd055a85cece800b63c18e8bcea902","mode":"0755"},{"name":"README.md","md5":"024305d3b1448b1c6cd11f903c802c77","mode":"0644"},{"name":"template.toml","md5":"37e681728b2fec11796989fc48cc3d31","mode":"0644"}]},{"name":"archetype-pokemmo","category":"gaming","files":[{"name":"apply.py","md5":"ebf6b42f55b2ffc7b0775687c9a81c64","mode":"0755"},{"name":"archetype-colors-dark.json","md5":"2b6f0743ebeca5c30daa46c6fd0a0991","mode":"0644"},{"name":"archetype-colors-light.json","md5":"818900d7e50c4857de8e3955c20b659b","mode":"0644"},{"name":"README.md","md5":"42c8a64168dc3c02622ea9b0dbf4de97","mode":"0644"},{"name":"template.toml","md5":"b2c456fb15853159cfcb213f38b91b97","mode":"0644"}]},{"name":"bat","category":"terminal","files":[{"name":"apply.sh","md5":"72fdf03821d232593cf85ea926253472","mode":"0755"},{"name":"bat.tmTheme","md5":"48ce50cbdc345e4a61d8a3dc95b4fce8","mode":"0644"},{"name":"README.md","md5":"c971168a3f8d5a0c570c8a7813760655","mode":"0644"},{"name":"template.toml","md5":"6ee484a55483e12300a00641ec38aecc","mode":"0644"}]},{"name":"blender","category":"editor","files":[{"name":"blender_theme.py","md5":"1a0cd158ac744d4887a832631d1c58b3","mode":"0644"},{"name":"README.md","md5":"af0b5fd57df6929d6d1f629518541b08","mode":"0644"},{"name":"screenshot.png","md5":"35fe418801156063765900cb85780f4e","mode":"0644"},{"name":"template.toml","md5":"2268722156753442c3797250df7f4222","mode":"0644"}]},{"name":"brave","category":"browser","files":[{"name":"apply.sh","md5":"bc2997a4863a97978124ffcd794faf44","mode":"0755"},{"name":"manifest.json","md5":"82131be10a750c12ed52569ff3c01ada","mode":"0644"},{"name":"README.md","md5":"7f96b468b08e8ae12f6a6918c18e70e9","mode":"0644"},{"name":"screenshot.png","md5":"95463b9ddc3ff313a3dca03e94847da9","mode":"0644"},{"name":"template.toml","md5":"5824b129b9a884cf0a1d6ce1ac0c2c7a","mode":"0644"}]},{"name":"brave-origin","category":"browser","files":[{"name":"apply.sh","md5":"d67ed7130510c16a0d0931b041cfa911","mode":"0755"},{"name":"manifest.json","md5":"82131be10a750c12ed52569ff3c01ada","mode":"0644"},{"name":"README.md","md5":"9aa42d211a96d947ebe00fb12f49af5b","mode":"0644"},{"name":"screenshot.png","md5":"740383dca9c153799664b4ced391c5a8","mode":"0644"},{"name":"template.toml","md5":"b00582c206b5456ae8fd82882d0c8084","mode":"0644"}]},{"name":"chromium-based","category":"browser","files":[{"name":"apply.sh","md5":"ecfc6386a3694adf5339807a4e0888c2","mode":"0644"},{"name":"color.json","md5":"1abefe038e9ec1806f7b021956024901","mode":"0644"},{"name":"privileged.sh","md5":"74a43cd05fd773826b7d470b87599ec2","mode":"0644"},{"name":"README.md","md5":"ad66e6f763aafb319d6d7cef7a746abd","mode":"0644"},{"name":"template.toml","md5":"630b15c67a7b75a02d88151b21b09a06","mode":"0644"},{"name":"test.sh","md5":"2c726c4ea7e74e2793a2edc16e4c7ddb","mode":"0644"}]},{"name":"claude-code","category":"ai","files":[{"name":"claude-code.json","md5":"dca299f5f0eeedfb137c77283e03d25b","mode":"0644"},{"name":"README.md","md5":"ceb356b05af5fec33cbfbaeafea8f2ee","mode":"0644"},{"name":"screenshot.png","md5":"565959a7ffa1ba026da1e04421509c12","mode":"0644"},{"name":"template.toml","md5":"47a5727698275d6e0a4dd457a0a93bc9","mode":"0644"}]},{"name":"codex","category":"ai","files":[{"name":"codex.tmTheme","md5":"747c1eef78b58d9574e698eaef4e3c3b","mode":"0644"},{"name":"README.md","md5":"5be43e5bf2acf04d4c17936a00d8563e","mode":"0644"},{"name":"screenshot.png","md5":"166008fd58eb75db901c249091b3918f","mode":"0644"},{"name":"template.toml","md5":"d3540eaa368262a0691d7f21f1c537f3","mode":"0644"}]},{"name":"cosmic","category":"system","files":[{"name":"apply.py","md5":"5fdde384e1fa0a21e245b6704b51edb5","mode":"0755"},{"name":"cosmic-colors","md5":"8b4099669de4c392838c69780a7b9d17","mode":"0644"},{"name":"light-screenshot.png","md5":"8799d8eab549c241d938cef51b81fd19","mode":"0644"},{"name":"README.md","md5":"0e04514661c52d7d07ec51f23f4dd63d","mode":"0644"},{"name":"screenshot-catppuccin.png","md5":"96fe8f8a18d928997a0a66bdc419201a","mode":"0644"},{"name":"screenshot-tokyo-night.png","md5":"7a962b01b01e29a2a93c422debd6b22c","mode":"0644"},{"name":"screenshot.png","md5":"25960dbef45167f184fede619bfbe168","mode":"0644"},{"name":"template.toml","md5":"695af0569a2f5d7067a8079466115416","mode":"0644"},{"name":"undo.sh","md5":"879a192853902be83b7930d66d1b51b8","mode":"0755"}]},{"name":"cressida","category":"chat","files":[{"name":"cressida.toml","md5":"82d253897ceac8263be8ac3b720b7381","mode":"0644"},{"name":"README.md","md5":"52d724bfbf457610fb77a7c8dbcc691f","mode":"0644"},{"name":"template.toml","md5":"20dd9a1cf1df1d87e3674062ed53df2b","mode":"0644"}]},{"name":"darktable","category":"editor","files":[{"name":"light-screenshot.png","md5":"76af71470f27bc0721749dc2e86e3963","mode":"0644"},{"name":"noctalia-flatpak.css","md5":"2444ac069fb47cb3b78d577ee44fda80","mode":"0644"},{"name":"noctalia.css","md5":"32b8b343c0e4a9466fccf2ad1cf6dfd9","mode":"0644"},{"name":"README.md","md5":"eefa759598e1b598268514a598399b0c","mode":"0644"},{"name":"screenshot.png","md5":"89f1b16378eb8bfd5a9423f462520e0e","mode":"0644"},{"name":"template.toml","md5":"6759a4e4a2ffde8fd624f67a73cefdeb","mode":"0644"}]},{"name":"discord","category":"chat","files":[{"name":"discord-material.css","md5":"618f77bf0a924876a8ffeef5dcfcf370","mode":"0664"},{"name":"discord-midnight.css","md5":"4864a34adb86d934b0fc939c0204c635","mode":"0664"},{"name":"discord-system24.css","md5":"5f24e4c7fe6215ed5a381565db51c91d","mode":"0664"},{"name":"README.md","md5":"dfa3fc20f81844412a44ac3b24ddd6b3","mode":"0644"},{"name":"screenshot.png","md5":"c56f9d09cb9245cd7553310a0d83bbd7","mode":"0644"},{"name":"template.toml","md5":"b7fcfda472b57734eb8259fa80bf2fd2","mode":"0644"}]},{"name":"driftwm","category":"compositor","files":[{"name":"apply.sh","md5":"11a233c455ebb99b01f8872fd0878808","mode":"0644"},{"name":"driftwm-colors","md5":"dfb84e97dbd821bed1abb90949a4ab4d","mode":"0644"},{"name":"README.md","md5":"78e7e40366982853b661b748ac2d12fb","mode":"0644"},{"name":"template.toml","md5":"2be6fd472586a5be0c40b4e2de4bdf4c","mode":"0644"}]},{"name":"fastfetch","category":"misc","files":[{"name":"apply.sh","md5":"c605011961d37be31b8c710c83303360","mode":"0755"},{"name":"fastfetch-colors.jsonc","md5":"3de977e47b4cc00e76866e680974700a","mode":"0644"},{"name":"README.md","md5":"eaa53d6ac50931e057bf030c678fd3d7","mode":"0644"},{"name":"screenshot.png","md5":"e5be2fe0b3041fd4342ccfce6877a169","mode":"0644"},{"name":"template.toml","md5":"f05501b07584db28af6d779612bb58cf","mode":"0644"}]},{"name":"fcitx5","category":"system","files":[{"name":"apply.sh","md5":"0232a9f611c5e6df93255c26e1786e6d","mode":"0755"},{"name":"README.md","md5":"3f77b234114c023b71f3379a6756dabe","mode":"0644"},{"name":"template.toml","md5":"56a010cefb7570319d53289c27a99513","mode":"0644"},{"name":"theme.conf","md5":"629eeeda2ec3f22bc329ff7d05f11f83","mode":"0644"}]},{"name":"feishin","category":"audio","files":[{"name":"custom.css","md5":"7194da8a28752b3d548167db5c47d9e5","mode":"0644"},{"name":"README.md","md5":"ba851f6cdab21339fc5e95671b6fdd26","mode":"0644"},{"name":"template.toml","md5":"5b838e0791ee65415c48ad1524f17435","mode":"0644"}]},{"name":"fuzzel","category":"launcher","files":[{"name":"apply.sh","md5":"2cdc7ebbd5d3798fa896b1191214468c","mode":"0755"},{"name":"fuzzel.conf","md5":"ada6c69528e9fd1f32f27a82ba24c9d3","mode":"0664"},{"name":"README.md","md5":"5273001c9d22560e14e9ab07c580c3e9","mode":"0644"},{"name":"template.toml","md5":"07c2e5d778a043872eadddea0a2edfa4","mode":"0664"}]},{"name":"fzf","category":"terminal","files":[{"name":"fzf.fish","md5":"fcb9aa253272557a855ab5a70caa6c38","mode":"0644"},{"name":"fzf.sh","md5":"610dcc523656db3a3f67529fc3036d52","mode":"0644"},{"name":"README.md","md5":"4e1386d87da50430818608fea5597590","mode":"0644"},{"name":"template.toml","md5":"49ef166bf4868c326404dcd1f35120ea","mode":"0644"}]},{"name":"gimp","category":"editor","files":[{"name":"gimp.css","md5":"782d352483659abf7382546573c9d167","mode":"0644"},{"name":"README.md","md5":"2776c8398f20a6a106c3cddb9b7e1171","mode":"0644"},{"name":"screenshot-preferences.png","md5":"d946d563f7bbebc75c6c202982c790dc","mode":"0644"},{"name":"screenshot.png","md5":"ea41bc5097843dac92792cbd902a3c3b","mode":"0644"},{"name":"template.toml","md5":"e612bf68941874992ce2120e4f0a6455","mode":"0644"}]},{"name":"glow","category":"terminal","files":[{"name":"glow.json","md5":"133cd76521c95ffa0f0147b8116549e6","mode":"0644"},{"name":"README.md","md5":"954c8c3ee797a73e869d642492de18e6","mode":"0644"},{"name":"screenshot.png","md5":"a051accc225bffdd6e7874482232ba29","mode":"0644"},{"name":"template.toml","md5":"03732f9df248ab5075647e694192479d","mode":"0644"}]},{"name":"gruvbox-plus-icons","category":"system","files":[{"name":"apply.sh","md5":"39c16b0400ed2f911685f6fd3fdae79d","mode":"0755"},{"name":"colors","md5":"635d8f18941635d4856d645e7c0fc598","mode":"0644"},{"name":"README.md","md5":"0edd1d23205f4823ddcf651651be0c03","mode":"0644"},{"name":"template.toml","md5":"bffcacd872da4661aba3a4be3759027d","mode":"0644"}]},{"name":"halloy","category":"chat","files":[{"name":"apply.sh","md5":"0cdbf4b62378c9ca5043da3614a0f707","mode":"0644"},{"name":"halloy.toml","md5":"0c2e88c7035dff3decbea9509d0cbabc","mode":"0644"},{"name":"README.md","md5":"9abde0ce78ffc4dc4f08161db6fed267","mode":"0644"},{"name":"template.toml","md5":"4f13dc5fc08a089dad1426a692b45bb4","mode":"0644"}]},{"name":"herdr","category":"terminal","files":[{"name":"apply.sh","md5":"66c30419398fb1fec17e3bb59ec11e89","mode":"0755"},{"name":"herdr-colors.toml","md5":"b0d6eccc29f293bcfe303b2f2646b238","mode":"0644"},{"name":"README.md","md5":"6f7f057696c476f739f4627255a2c4eb","mode":"0644"},{"name":"template.toml","md5":"fcdf331f3b03ce4d352930fbf6539e91","mode":"0644"}]},{"name":"heroiclauncher","category":"gaming","files":[{"name":"heroic.css","md5":"d9cc2ce706209a0a9128f32b6cf77aae","mode":"0664"},{"name":"README.md","md5":"99deae4236c0245f44ea458418649e20","mode":"0644"},{"name":"screenshot.png","md5":"5897d1da87a4d37017ff299fe432f815","mode":"0644"},{"name":"template.toml","md5":"0af766d5cbf7b20ef059d8f26c04afd4","mode":"0644"}]},{"name":"hyprtoolkit","category":"system","files":[{"name":"hyprtoolkit.conf","md5":"d6904da9d56cc6152e61863c1799e9cd","mode":"0664"},{"name":"README.md","md5":"57aa35ddfebf815a6eb9c2018d23da7d","mode":"0644"},{"name":"template.toml","md5":"99b9324b0bdc834bfe71fb85febea677","mode":"0664"}]},{"name":"inkscape","category":"editor","files":[{"name":"README.md","md5":"ee1647fd502e7278bb14e19fa075d832","mode":"0644"},{"name":"screenshot-preferences.png","md5":"ec5f597a2728216a4aba96d4e6685b69","mode":"0644"},{"name":"screenshot.png","md5":"08442460ed54fa2201cb57efb4fc8b62","mode":"0644"},{"name":"template.toml","md5":"4fe75090ad20b8fa348f9409deeb469e","mode":"0644"},{"name":"user.css","md5":"7ef5680dfaf0b9ca60de1f55e5fbab47","mode":"0644"}]},{"name":"jay","category":"compositor","files":[{"name":"apply.sh","md5":"8991154d9813cd2fe85f6c544edcd735","mode":"0755"},{"name":"jay.toml","md5":"9b2b5222accbc8598ebbc313b3bbd2b5","mode":"0644"},{"name":"README.md","md5":"625848333ae46f1b21d0e27dfd956754","mode":"0644"},{"name":"template.toml","md5":"e99b61279760be238ac83f299c5d5382","mode":"0644"}]},{"name":"karere","category":"chat","files":[{"name":"karere.css","md5":"126e79c533aef23450d4f356bad096a0","mode":"0644"},{"name":"README.md","md5":"02dd989228d98ad70c8b57f4aca2dd25","mode":"0644"},{"name":"template.toml","md5":"e2327271c97a1ab46a8ef7c16a0ef979","mode":"0644"}]},{"name":"konsole","category":"terminal","files":[{"name":"apply.sh","md5":"6fbbba87a3651c9167be5f5772d18c2b","mode":"0755"},{"name":"noctalia.colorscheme","md5":"5a564a6d55b7f022089f2f0cfbda2429","mode":"0644"},{"name":"pre-apply.sh","md5":"293eff21d0686e295d93899859505e58","mode":"0755"},{"name":"README.md","md5":"029a3cca526aff6dd7a620d995776ddd","mode":"0644"},{"name":"template.toml","md5":"787e3f76d9e2675a05eb6e1bd0bc4496","mode":"0644"}]},{"name":"lazygit","category":"terminal","files":[{"name":"apply.sh","md5":"7d75a4d70b56c52272fe1d0cdcef4ce1","mode":"0755"},{"name":"lazygit.yml","md5":"6c938e605408a3cad5fa9d6518afae8f","mode":"0644"},{"name":"README.md","md5":"4e0b0c5fd6b2211f3507a76394741377","mode":"0644"},{"name":"template.toml","md5":"0497bb389ed096b6d40238f68e8d9162","mode":"0644"}]},{"name":"lazyvim","category":"editor","files":[{"name":"apply.sh","md5":"9915688cc099840026ab4988f5c82afb","mode":"0755"},{"name":"noctalia.lua","md5":"8f157ddb974de093e65783b1cadee009","mode":"0644"},{"name":"README.md","md5":"dc0cde881fe602dbe394b6aeeb0efc7e","mode":"0644"},{"name":"template.toml","md5":"1f5ca395e7fe79bedb37b30bb74babac","mode":"0644"}]},{"name":"libreoffice","category":"editor","files":[{"name":"apply.sh","md5":"79b637c398e457e22e1975169c1f7f2f","mode":"0755"},{"name":"description.xml","md5":"810920710dcde3c1bfe9fb1ea671316c","mode":"0644"},{"name":"light-screenshot.png","md5":"ad688f5dc4feda44ed3da38827165497","mode":"0644"},{"name":"Paths.xcu","md5":"f0249a769fed68b4329baf57ac5c1bac","mode":"0644"},{"name":"pkg-description.en","md5":"50f53d956476e61f87005bf9399e36f4","mode":"0644"},{"name":"README.md","md5":"c36760d40cae238078e2c8ceae480730","mode":"0644"},{"name":"screenshot.png","md5":"8f29907e3b5fd8a6471914503a3c8b2b","mode":"0644"},{"name":"template.toml","md5":"e1da6de79923919b05291dddf6ff5fd0","mode":"0644"},{"name":"Theme_Colors.xcu","md5":"9e3918407865e787a1081059d19187fd","mode":"0644"}]},{"name":"lsd","category":"terminal","files":[{"name":"apply.sh","md5":"0b4d29433328702bebe5924264d14e83","mode":"0644"},{"name":"colors.yaml","md5":"2562644d22efb84b6ec29200221c623d","mode":"0644"},{"name":"README.md","md5":"7812a5ec284972565dfc1e4c296c260d","mode":"0644"},{"name":"screenshot.png","md5":"e716d2d75e9cd53c7290658e51802f8d","mode":"0644"},{"name":"template.toml","md5":"73d384d321a6f561082a439d8ef474ab","mode":"0644"}]},{"name":"mailspring","category":"misc","files":[{"name":"light-screenshot.png","md5":"8ca2a21139d7a0f7f143195883efeb77","mode":"0644"},{"name":"package.json","md5":"2cfc5eb274118680a2bae1db7112dd95","mode":"0644"},{"name":"README.md","md5":"9d2c454cc8c362b8a5dcf2e07a173452","mode":"0644"},{"name":"screenshot.png","md5":"58446cff3ef1b0eb5bc35bb3775b7fa4","mode":"0644"},{"name":"template.toml","md5":"56895211cebec2e1e698ed643c63c3df","mode":"0644"},{"name":"ui-variables.less","md5":"605bb9b661ea906509d064f522651d1c","mode":"0644"}]},{"name":"micro","category":"editor","files":[{"name":"apply.sh","md5":"253f72ccbf9dc28715a8bdb5b9726f0f","mode":"0644"},{"name":"noctalia.micro","md5":"32b1a1ff7b72e9454aaae16947a732e5","mode":"0644"},{"name":"README.md","md5":"3fdad86648da00c620c910d400555bcc","mode":"0644"},{"name":"template.toml","md5":"591537b12893aa852bb4eece1c461650","mode":"0644"}]},{"name":"musescore","category":"editor","files":[{"name":"apply.sh","md5":"25c680ed6cc347250a5fb42561141623","mode":"0755"},{"name":"MuseScore4.ini","md5":"1ed497e35a29b51a1652a8134029354b","mode":"0644"},{"name":"README.md","md5":"b7d1c0e4bb010abb627ca17ba11041a1","mode":"0644"},{"name":"template.toml","md5":"d5960c96cc4e23dec0ac16f31a77a901","mode":"0644"}]},{"name":"nchat","category":"chat","files":[{"name":"color.conf","md5":"24671251b88c6a02e64d05a51fd69c61","mode":"0664"},{"name":"README.md","md5":"42ddbf75ddf6161ddf66c86ba220a487","mode":"0644"},{"name":"template.toml","md5":"7317b6c3897240dafd6b4f2783d8ca58","mode":"0644"}]},{"name":"neovim","category":"editor","files":[{"name":"apply.sh","md5":"eccf7274901ec429698f9bd117a26e52","mode":"0775"},{"name":"matugen-template.lua","md5":"7740c6d2c6ec891358bc3d5f44023be5","mode":"0644"},{"name":"README.md","md5":"42e7669f896e806a7eb7080654df1467","mode":"0644"},{"name":"template.toml","md5":"61de73202597fbb61e2b91b8e93dbf3f","mode":"0664"}]},{"name":"obs","category":"misc","files":[{"name":"matugen.obt","md5":"1e75066175b1560f54e4f51cba624c5a","mode":"0664"},{"name":"README.md","md5":"69189fdf74aa583580c11fb8dfacb81b","mode":"0644"},{"name":"template.toml","md5":"ee493f5df7039a01ce3b55f494e18ec0","mode":"0664"}]},{"name":"obsidian","category":"editor","files":[{"name":"apply.sh","md5":"eb7d60658e8fa4543c6aef0c6e04dd46","mode":"0755"},{"name":"obsidian.css","md5":"954948473c66774481e1571a3554d1aa","mode":"0644"},{"name":"README.md","md5":"d2019dea2880c57b792e54cd1c72ff4e","mode":"0644"},{"name":"template.toml","md5":"036ac6fef7ee94e7699ae12579ec7fff","mode":"0664"}]},{"name":"oh-my-posh","category":"terminal","files":[{"name":"apply.py","md5":"d5e52b1635530c1fc92c3514ccde9e6d","mode":"0644"},{"name":"palette.json","md5":"e07a3ef253c7b6fd905b7db5e7845254","mode":"0644"},{"name":"README.md","md5":"415a904288b5947eb2bde0cbf0569fff","mode":"0644"},{"name":"template.toml","md5":"2032c2337a44eb2327242097644becb4","mode":"0644"},{"name":"test_apply.py","md5":"415d5533d4f5932883baf0f24f5b7808","mode":"0644"}]},{"name":"opencode","category":"ai","files":[{"name":"opencode.json","md5":"9219a9a5af07838b0a777e882696b8be","mode":"0664"},{"name":"README.md","md5":"d191ba8ff5d8bfefb2b3f6a0346bfb34","mode":"0644"},{"name":"template.toml","md5":"85ff47f596cfafc1cb547d9c5b96475f","mode":"0644"}]},{"name":"pandora-launcher","category":"gaming","files":[{"name":"pandora-launcher.json","md5":"29aa07e945681f646e3abf47757f56d8","mode":"0644"},{"name":"README.md","md5":"39dfb9da5043c584cf12fefb30e89260","mode":"0644"},{"name":"template.toml","md5":"0ae60fdee3ef7cb76c83038b61d4f597","mode":"0644"}]},{"name":"papirus-icons","category":"system","files":[{"name":"apply.sh","md5":"76cfb73040fe761bf730208bbbc19eaf","mode":"0755"},{"name":"colors","md5":"40efa9cda8310d1ab3567d93b4265789","mode":"0644"},{"name":"papirus-folders","md5":"bbd3c668282aea1dd26b7b044d9bd4d4","mode":"0775"},{"name":"README.md","md5":"ec6624854727034569dc45a01ba1c3fb","mode":"0664"},{"name":"template.toml","md5":"5d3d732600d5801a84f3c103d7ca2591","mode":"0644"}]},{"name":"pear-desktop","category":"audio","files":[{"name":"apply.sh","md5":"aad64f95a776ee1f73b95fda3bea16cd","mode":"0644"},{"name":"pearColors.css","md5":"e1057ef47b50ab1795f5480b0971e9d3","mode":"0664"},{"name":"README.md","md5":"802c45c994cd4172bbe54b50322916d4","mode":"0644"},{"name":"template.toml","md5":"53b4cb172f91e447b2ff34fecd195066","mode":"0664"}]},{"name":"pi-agent","category":"ai","files":[{"name":"apply.sh","md5":"fce5151ae4f00520467c820b4e3bc7b6","mode":"0755"},{"name":"pi-theme.json","md5":"98545359696662db9452145bdd7b7141","mode":"0664"},{"name":"README.md","md5":"6e6a602bf051829f5fe6053c0deb9e7c","mode":"0644"},{"name":"template.toml","md5":"85a4dddbd6e94c5f3f4191324f29f3b9","mode":"0644"}]},{"name":"prismlauncher","category":"gaming","files":[{"name":"prismlauncher.json","md5":"ad694e83718246da25f173e1bd354055","mode":"0664"},{"name":"README.md","md5":"774bddad5bdb44da175599ac6dc16473","mode":"0644"},{"name":"template.toml","md5":"135e604b7c3456c08797b8902bfdf2ec","mode":"0644"}]},{"name":"pywalfox","category":"browser","files":[{"name":"pywalfox.json","md5":"49504dc7de47c075ef44f834c30cce38","mode":"0664"},{"name":"README.md","md5":"8f475ab5b216ed2abb39f1b82a0f61c2","mode":"0644"},{"name":"template.toml","md5":"91c62b8f3f25ca84446be056f955aad8","mode":"0644"}]},{"name":"qutebrowser","category":"browser","files":[{"name":"README.md","md5":"361c07d15e6add63caffbdec1ea36ec3","mode":"0644"},{"name":"reload.sh","md5":"42a4f311d18287c6c5b8a50389ea3088","mode":"0644"},{"name":"template.py","md5":"68ce141c7b613d20ac81c3ec910a8875","mode":"0644"},{"name":"template.toml","md5":"f12e7a13cd7ae0aa014338f903c6cd5f","mode":"0644"}]},{"name":"ratune","category":"audio","files":[{"name":"apply.sh","md5":"b9d6d6c79eefcaa4a076a5b12abebfdc","mode":"0755"},{"name":"ratune.toml","md5":"201a2da4919c091b5d8c6fc59751d6a4","mode":"0644"},{"name":"README.md","md5":"ef0a9e4573d2107759a6e391940346b5","mode":"0644"},{"name":"template.toml","md5":"6a9a097ed8d30bfb4cb47f522b7b9c71","mode":"0644"}]},{"name":"rhun","category":"editor","files":[{"name":"README.md","md5":"0fba49da17a8ea6a18e6ee23c5b9c8eb","mode":"0644"},{"name":"rhun.theme","md5":"3ef0737445fdca807c6ade0ce2392ce8","mode":"0644"},{"name":"template.toml","md5":"49dbde3af43a711afc4f56f7702e4806","mode":"0644"}]},{"name":"rio","category":"terminal","files":[{"name":"apply.sh","md5":"1396e2abc4ba88fe7ca7bbcdca76361d","mode":"0644"},{"name":"README.md","md5":"cea5923ad9604f7b31cfbce3d097e374","mode":"0644"},{"name":"rio.toml","md5":"22873c56447005b38b40dae1c0f1adf7","mode":"0644"},{"name":"template.toml","md5":"ba4ac531ce91a1828c245419d5036795","mode":"0644"}]},{"name":"rofi","category":"launcher","files":[{"name":"README.md","md5":"cc878b3e78fd18419cbd4cac06949570","mode":"0644"},{"name":"rofi.rasi","md5":"be4dffc8135bebcad7101f63753bac20","mode":"0664"},{"name":"template.toml","md5":"3cdd78c5ade848020d2daa9a14ad4ea0","mode":"0664"}]},{"name":"senpai","category":"chat","files":[{"name":"apply.sh","md5":"17aa43bdd17262f70c7efc79f3c8d70c","mode":"0755"},{"name":"README.md","md5":"730a0799a39962e2a534ec88350f63e6","mode":"0644"},{"name":"screenshot.png","md5":"e059774e323bb95245028e5938ae43f3","mode":"0644"},{"name":"senpai-colors.scfg","md5":"2f2301aa5bf9025f760938a04ca8f365","mode":"0644"},{"name":"template.toml","md5":"fb82e2a2289746344d53901715116098","mode":"0644"}]},{"name":"sidra","category":"audio","files":[{"name":"README.md","md5":"dcc323546bbec6003563d61341b83276","mode":"0644"},{"name":"sidra-theme.json","md5":"d4d8c3cac914f544c9e07329f609ad28","mode":"0644"},{"name":"template.toml","md5":"88b010e2ca84bd572cde844e94613321","mode":"0644"}]},{"name":"sioyek","category":"misc","files":[{"name":"apply.sh","md5":"431d083295e6d1d44944a7e5dfa89c4e","mode":"0755"},{"name":"README.md","md5":"665a543887fc2d021293eed4e11d5f02","mode":"0644"},{"name":"sioyek.config","md5":"8e64aa8bdb1780608a6f50548d8ee5ee","mode":"0644"},{"name":"template.toml","md5":"9a7efffa3ac87df3a72a51272955e11a","mode":"0644"}]},{"name":"siyuan","category":"misc","files":[{"name":"README.md","md5":"99bddae2583b2884efc5a7b21c4ff4b6","mode":"0644"},{"name":"siyuan.css","md5":"e7044f6fb719be1278adb8ed9798d07f","mode":"0644"},{"name":"template.toml","md5":"03695092322498c68d7e52cef661a85c","mode":"0644"}]},{"name":"snappy-switcher","category":"system","files":[{"name":"apply.sh","md5":"1988b15caf88dd38b7a1ad14b84d0ee4","mode":"0755"},{"name":"noctalia.ini","md5":"ef76ac0c736d99ab322dc690f883b447","mode":"0664"},{"name":"README.md","md5":"84953d95c8389d5766babe5288cc07fd","mode":"0644"},{"name":"template.toml","md5":"bf68b5cd502b5ba7be7f43bdd51a281c","mode":"0664"}]},{"name":"sone","category":"audio","files":[{"name":"README.md","md5":"c9b1cdb2ad5f91665c171dd721a6b62d","mode":"0644"},{"name":"template.toml","md5":"0a4a492b42e74ebac4c1bbb4bfaa124a","mode":"0644"},{"name":"theme.json","md5":"e38cf922260121e133f7419af545e9b7","mode":"0644"}]},{"name":"sonora","category":"audio","files":[{"name":"apply.sh","md5":"5832d2d72920559f9e63b25023878c0f","mode":"0755"},{"name":"README.md","md5":"025bb8cbb20b3479c3bdc0760ee1f7b7","mode":"0644"},{"name":"sonora.json","md5":"d38c7591cf835beb9d3c53e5e5ae11f9","mode":"0644"},{"name":"template.toml","md5":"33ef07f70ee95766a3fd951bc265ae0e","mode":"0644"}]},{"name":"speedcrunch","category":"misc","files":[{"name":"README.md","md5":"67eeb20b45cc88bc3b278309b443934c","mode":"0644"},{"name":"speedcrunch.json","md5":"e8bd447acc2e6b2ed6e9b16b91d7f601","mode":"0644"},{"name":"template.toml","md5":"b38bf6c1502a6fd193b23f25a316bcd9","mode":"0644"}]},{"name":"spicetify","category":"audio","files":[{"name":"apply.sh","md5":"a733d5e58f126689698a510de638c939","mode":"0775"},{"name":"README.md","md5":"99b010175d0788420a433e5bf8f33884","mode":"0644"},{"name":"spicetify_colorful.ini","md5":"7901d0e2fec0ec72345d64685068f5e8","mode":"0644"},{"name":"spicetify.ini","md5":"701309d57cf182753f3778a249a5f96a","mode":"0664"},{"name":"template.toml","md5":"82a1de0917a16f89fa5a52f36703b684","mode":"0644"}]},{"name":"spotifast","category":"audio","files":[{"name":"README.md","md5":"2e6aa025869270e89b0b26b320368d5f","mode":"0644"},{"name":"spotifast-dark.json","md5":"f1e9ee2cc1fc00b794d6a5f6467069bd","mode":"0644"},{"name":"spotifast-light.json","md5":"b95a1c100cbee4672606196b2538925c","mode":"0644"},{"name":"template.toml","md5":"2c12fd99a8841ca624b6fbe21af7ca84","mode":"0644"}]},{"name":"starship","category":"terminal","files":[{"name":"apply.sh","md5":"387534ea8a51f9857e40d623726324fe","mode":"0755"},{"name":"README.md","md5":"daa77067e3d2e7cf2f8146df7d62f862","mode":"0644"},{"name":"starship.toml","md5":"284b960053dedc741245ef5d04148623","mode":"0644"},{"name":"template.toml","md5":"d4211687f5565b0726d723ee6c716aff","mode":"0644"},{"name":"undo.sh","md5":"619480c8d66c05bf3f3f254f3f6286a7","mode":"0644"}]},{"name":"steam","category":"gaming","files":[{"name":"millennium-configure.png","md5":"21013697b88fcfd8094aa1a84459cb5c","mode":"0644"},{"name":"millennium-installed.png","md5":"617d1a17684a502ffc9062bd3143d50b","mode":"0644"},{"name":"millennium-matugen.png","md5":"4dc6d2a257919a4fcec73e9d920e27be","mode":"0644"},{"name":"README.md","md5":"80782136b3cc5eace7667109ccf336c3","mode":"0644"},{"name":"steam.css","md5":"f498e75d3234f71cdd8b638dc7089226","mode":"0664"},{"name":"template.toml","md5":"27671a86a937038a235826963cd29ac7","mode":"0644"}]},{"name":"strata","category":"misc","files":[{"name":"README.md","md5":"d99e9ab73c84496f2d946c8d77dbcf73","mode":"0644"},{"name":"strata.toml","md5":"359d1592fd3bc39e165efde6c11e9d9e","mode":"0644"},{"name":"template.toml","md5":"52beabac688f2f01dbe1e6609d0b652b","mode":"0644"}]},{"name":"superfile","category":"terminal","files":[{"name":"apply.sh","md5":"bec7906eddc817b8cca33a84eaf86b40","mode":"0755"},{"name":"README.md","md5":"78e47227fbeca4f0dd58bd03bff9ebd7","mode":"0644"},{"name":"superfile.toml","md5":"2561a97cfef8f0fd06498a080e3f2c8d","mode":"0644"},{"name":"template.toml","md5":"227d8e0b87f1da6c6955694b9136b6d9","mode":"0644"}]},{"name":"supersonic","category":"audio","files":[{"name":"apply.sh","md5":"a00a9b43edcea6b9332ca9753a916afa","mode":"0755"},{"name":"noctalia.toml","md5":"6571f269affd1194c1c44402038c68ed","mode":"0644"},{"name":"README.md","md5":"95e86ce7848b4a1d234714870503f3d1","mode":"0644"},{"name":"template.toml","md5":"c1d2e80871768667edf0c0de4ccb77d8","mode":"0644"}]},{"name":"surgedm","category":"terminal","files":[{"name":"README.md","md5":"df08305c5771fff1536eff9abfd50ba8","mode":"0644"},{"name":"surgedm.toml","md5":"adf7976a742cb01313bbad6aa8be2db1","mode":"0644"},{"name":"template.toml","md5":"9abb192ce5410990eb8fc12b4a8eb1a6","mode":"0644"}]},{"name":"tauon","category":"audio","files":[{"name":"README.md","md5":"1759f146368a6f580fd4e6ce0c25b6df","mode":"0644"},{"name":"tauon.txt","md5":"3ca02800adfd956726d9853825be80c7","mode":"0664"},{"name":"template.toml","md5":"84c2f50517afc07dea2d5aee44caebd5","mode":"0664"}]},{"name":"telegram","category":"chat","files":[{"name":"README.md","md5":"4ce762f4b8a13b3e7fedd5d705a8212d","mode":"0644"},{"name":"telegram.tdesktop-theme","md5":"e4ff090a66eade13532c20b68928fe89","mode":"0644"},{"name":"template.toml","md5":"70b0497f39625f713c366070c0104c84","mode":"0644"}]},{"name":"thunar","category":"system","files":[{"name":"README.md","md5":"b476094ed230642812b21fa9c4b2f25a","mode":"0644"},{"name":"screenshot.png","md5":"76c9a6b51ddb6273e2efb70573e1054f","mode":"0644"},{"name":"template.toml","md5":"261016aff7a923f6380521cb6448dbe0","mode":"0644"},{"name":"thunar.css","md5":"d4b35fb7b1ba35a0c6686fdbdd26a991","mode":"0644"}]},{"name":"thunderbird","category":"misc","files":[{"name":"apply.sh","md5":"8d6b7ea34b4fd8f0d85b642a30e70710","mode":"0755"},{"name":"light-screenshot.png","md5":"b4edb91741a745c7b31f0ff755bd80e7","mode":"0644"},{"name":"noctalia.css","md5":"790fef3763ded7fdc7203a3f5acd13d4","mode":"0644"},{"name":"README.md","md5":"df273e7aca0bbaa97d7e56118eebadd0","mode":"0644"},{"name":"screenshot.png","md5":"3eba353f2da48fda4dd5d70ac6a1b567","mode":"0644"},{"name":"template.toml","md5":"04bb04f8c0762f744c42e4309940d90a","mode":"0644"}]},{"name":"tmux","category":"terminal","files":[{"name":"apply.sh","md5":"f607d9f4c15abaeb92d3a2c86d06ee1e","mode":"0644"},{"name":"README.md","md5":"09a86dc1f99f21dcf71378ddfe567b37","mode":"0644"},{"name":"screenshot.png","md5":"e090f83517528cbb36d663d34fb3c90c","mode":"0644"},{"name":"template.toml","md5":"1930789bfd26ac2a25c7baa943d35528","mode":"0644"},{"name":"test.sh","md5":"eaa1459a73ff510c1ac2a152f181b086","mode":"0755"},{"name":"tmux.conf","md5":"0a1275890001cff1f5e60b7e99feeb8e","mode":"0644"}]},{"name":"tuios","category":"terminal","files":[{"name":"README.md","md5":"457db85d259ed49fd2306c11bbaf1b04","mode":"0644"},{"name":"template.toml","md5":"3eb00d99b708d1061fd5cccf1e2fcf44","mode":"0644"},{"name":"tuios.json","md5":"b919b67b4ab1ccd9e50f58cbbfe91282","mode":"0644"}]},{"name":"ungoogled-chromium","category":"browser","files":[{"name":"apply.sh","md5":"11238e9282d7daf593fed2f1568b58e9","mode":"0755"},{"name":"manifest.json","md5":"7b51b1c35f12183f5b37786c83a90bac","mode":"0644"},{"name":"newtab-screenshot.png","md5":"8d72e1b9a084dd2c56bb53c2d5362fdf","mode":"0644"},{"name":"README.md","md5":"214f4dd8f35413c01ef7d2d5f6d43797","mode":"0644"},{"name":"screenshot.png","md5":"20c8f5e6ac3b4ebe32132f32431a8303","mode":"0644"},{"name":"template.toml","md5":"1cf4d25f3aa165af9977d5058729d316","mode":"0644"}]},{"name":"velo","category":"launcher","files":[{"name":"apply.sh","md5":"49f6c9bc8dcf1cd8351f6dd1cfb9d84c","mode":"0644"},{"name":"palette.json","md5":"3a913f8f4383f70e51d7c2883cfa6f1a","mode":"0664"},{"name":"README.md","md5":"2c0e46ed4372882e8f5bb568a46be66e","mode":"0644"},{"name":"template.toml","md5":"8ef4c35cecfaf07bdac1a4a106dc1c32","mode":"0664"}]},{"name":"vicinae","category":"launcher","files":[{"name":"apply.sh","md5":"efb7530372a34efadbb0b8fdf21d07a8","mode":"0775"},{"name":"README.md","md5":"b2a0d906be1c5b38fdecbb5ea8eb7787","mode":"0644"},{"name":"template.toml","md5":"9ecc5f81a927869e6bc16e3ae2d4e2ab","mode":"0664"},{"name":"vicinae.toml","md5":"f3d38f400ab1f1a9c86f13c1989cfec1","mode":"0664"}]},{"name":"vscode","category":"editor","files":[{"name":"README.md","md5":"003639a2e413c919c660856a59fe5af3","mode":"0644"},{"name":"template.toml","md5":"a8e3fd2d1aaec4c5fc5dff0fea5bf560","mode":"0644"},{"name":"vscode.json","md5":"13be5379c74af4cc359eddce98f32ab1","mode":"0644"}]},{"name":"walker","category":"launcher","files":[{"name":"apply.sh","md5":"def07386a9ebc2308a2eaccfe2884c78","mode":"0755"},{"name":"README.md","md5":"107ac76246508ea01a0bec804cc01f4d","mode":"0644"},{"name":"template.toml","md5":"f6c0794815592d1fa3effeb022f9cc86","mode":"0664"},{"name":"walker.css","md5":"012194a2feeace29de4546dfcafea4bb","mode":"0664"}]},{"name":"whitesur-icons","category":"system","files":[{"name":"apply.sh","md5":"4130c248e834929084610346750c6c89","mode":"0644"},{"name":"colors","md5":"fe37217d3880cf62109922d32b0aecd5","mode":"0644"},{"name":"README.md","md5":"7efd0f9f7c1716ee1c8b80f0879d6c8f","mode":"0644"},{"name":"template.toml","md5":"1e9480043059bbd1bb3e58469b346def","mode":"0644"},{"name":"whitesur-folders","md5":"548df65a6cd9872dc8f4dcaf9bd8c674","mode":"0755"}]},{"name":"yapfast","category":"chat","files":[{"name":"apply.py","md5":"0b799eb97d4921529d4c919bebf12c76","mode":"0644"},{"name":"README.md","md5":"d951adc610cb9d1c9a415bd6360e8f8e","mode":"0644"},{"name":"template.toml","md5":"44acf6d7a87993a44ee69c8d7e406efb","mode":"0644"},{"name":"yapfast-dark.json","md5":"f91d973ebc01d07378f61e2b5196e3cb","mode":"0644"},{"name":"yapfast-light.json","md5":"40da0574bfa20fa949d2b9a9258107ae","mode":"0644"}]},{"name":"yazi","category":"terminal","files":[{"name":"apply.sh","md5":"7de528bd0c1a3c69a9655983b0e9bbaf","mode":"0755"},{"name":"README.md","md5":"26be5b1b94e03686106c258cfc6edfd3","mode":"0644"},{"name":"template.toml","md5":"696bcafb99a13144d145e511201fc501","mode":"0644"},{"name":"yazi.tmTheme","md5":"48ce50cbdc345e4a61d8a3dc95b4fce8","mode":"0644"},{"name":"yazi.toml","md5":"8d836a793111ea1dab8c3f14fdf4f158","mode":"0644"}]},{"name":"yeet","category":"launcher","files":[{"name":"README.md","md5":"12998d14190d8e08412877d69970bc43","mode":"0644"},{"name":"template.toml","md5":"3d4c6bd711a9f93059bba5ad6027bd94","mode":"0644"},{"name":"yeet.css","md5":"f8b94f7fd82931214c368fd0add37ac1","mode":"0644"}]},{"name":"ytm-player","category":"audio","files":[{"name":"README.md","md5":"f8089560d03f7ccac3e5adba75dd5f7a","mode":"0644"},{"name":"screenshot.png","md5":"5558367ddf995219015159a3a1d064b1","mode":"0644"},{"name":"template.toml","md5":"39baee714aeeae9481add10d52691aca","mode":"0644"},{"name":"theme.toml","md5":"1877e7326a3ec00562335f145cd658d1","mode":"0644"}]},{"name":"zapfast","category":"chat","files":[{"name":"README.md","md5":"cf11682262e303004fd2a00c93bc3f50","mode":"0644"},{"name":"template.toml","md5":"2e4bc96d11741d6be23ea95733a48082","mode":"0644"},{"name":"zapfast-dark.json","md5":"f1e9ee2cc1fc00b794d6a5f6467069bd","mode":"0644"},{"name":"zapfast-light.json","md5":"b95a1c100cbee4672606196b2538925c","mode":"0644"}]},{"name":"zathura","category":"misc","files":[{"name":"apply.sh","md5":"48378da48070c91508e80ed6613c42f6","mode":"0775"},{"name":"README.md","md5":"c40263c48f84e400291bb0fa495bef55","mode":"0644"},{"name":"screenshot.png","md5":"b57890b4acca424c4ebb2ffac55fdcd8","mode":"0644"},{"name":"template.toml","md5":"72b251fa8fcc55b48253498d69b20b59","mode":"0644"},{"name":"zathurarc","md5":"37af7b6e3193aeb8f1978e7e0b235c87","mode":"0664"}]},{"name":"zed","category":"editor","files":[{"name":"README.md","md5":"303faea36da1633f1df2ceea3f58d85d","mode":"0644"},{"name":"template.toml","md5":"d2ba255cfee1fb8d338e8853fd332d5f","mode":"0664"},{"name":"zed.json","md5":"75abcd53e282026cfc277a57951eaf53","mode":"0644"}]},{"name":"zellij","category":"misc","files":[{"name":"README.md","md5":"18045bd1d84d3e6c5d9fcccef6f50014","mode":"0644"},{"name":"template.toml","md5":"2191caae03acee7b31f61150f051dba1","mode":"0644"},{"name":"zellij.kdl","md5":"28f3893beee8017fd0c4f127aa2aaac4","mode":"0644"}]},{"name":"zen-browser","category":"browser","files":[{"name":"apply.sh","md5":"dcec49394b32217cd862dcd6617ce6a8","mode":"0755"},{"name":"README.md","md5":"d588bb8169c88f00ceb907c10a777952","mode":"0644"},{"name":"template.toml","md5":"86e208d05228f153cd8b69d85b92dd6d","mode":"0644"},{"name":"zen-userChrome.css","md5":"4b31ac322046406da6a11e2a48b29071","mode":"0644"},{"name":"zen-userContent.css","md5":"0c4329edbaaed30fdaf128275776a93d","mode":"0644"}]}] \ No newline at end of file diff --git a/.local/state/noctalia/community-templates/chromium-based/.noctalia-cache.json b/.local/state/noctalia/community-templates/chromium-based/.noctalia-cache.json deleted file mode 100644 index 4cabf52..0000000 --- a/.local/state/noctalia/community-templates/chromium-based/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "630b15c67a7b75a02d88151b21b09a06" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/chromium-based/template.toml b/.local/state/noctalia/community-templates/chromium-based/template.toml deleted file mode 100644 index 3330c72..0000000 --- a/.local/state/noctalia/community-templates/chromium-based/template.toml +++ /dev/null @@ -1,9 +0,0 @@ -[catalog.chromium-based] -name = "Chromium based" -category = "browser" - -[templates.chromium-based] -input_path = "color.json" -output_path_dynamic = "bash '{{ config_dir }}/apply.sh' output" -post_hook = "bash '{{ config_dir }}/apply.sh' refresh" -undo_hook = "bash '{{ config_dir }}/apply.sh' undo" diff --git a/.local/state/noctalia/community-templates/claude-code/.noctalia-cache.json b/.local/state/noctalia/community-templates/claude-code/.noctalia-cache.json deleted file mode 100644 index 5d1f9e8..0000000 --- a/.local/state/noctalia/community-templates/claude-code/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "47a5727698275d6e0a4dd457a0a93bc9" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/claude-code/template.toml b/.local/state/noctalia/community-templates/claude-code/template.toml deleted file mode 100644 index d5fc7c1..0000000 --- a/.local/state/noctalia/community-templates/claude-code/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.claude-code] -name = "Claude Code" -category = "ai" - -[templates.claude-code] -input_path = "claude-code.json" -output_path = "~/.claude/themes/noctalia.json" diff --git a/.local/state/noctalia/community-templates/codex/.noctalia-cache.json b/.local/state/noctalia/community-templates/codex/.noctalia-cache.json deleted file mode 100644 index c26b163..0000000 --- a/.local/state/noctalia/community-templates/codex/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "d3540eaa368262a0691d7f21f1c537f3" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/codex/template.toml b/.local/state/noctalia/community-templates/codex/template.toml deleted file mode 100644 index 5267523..0000000 --- a/.local/state/noctalia/community-templates/codex/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.codex] -name = "Codex" -category = "ai" - -[templates.codex] -input_path = "codex.tmTheme" -output_path = "~/.codex/themes/noctalia.tmTheme" diff --git a/.local/state/noctalia/community-templates/cosmic/.noctalia-cache.json b/.local/state/noctalia/community-templates/cosmic/.noctalia-cache.json deleted file mode 100644 index 3c332a0..0000000 --- a/.local/state/noctalia/community-templates/cosmic/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "695af0569a2f5d7067a8079466115416" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/cosmic/template.toml b/.local/state/noctalia/community-templates/cosmic/template.toml deleted file mode 100644 index 4437b03..0000000 --- a/.local/state/noctalia/community-templates/cosmic/template.toml +++ /dev/null @@ -1,11 +0,0 @@ -[catalog.cosmic] -name = "COSMIC" -category = "system" - -[templates.cosmic] -input_path = "cosmic-colors" -output_path = "$XDG_CACHE_HOME/noctalia/cosmic-palette" -post_hook = "python3 '{{ config_dir }}/apply.py'" -undo_hook = "bash '{{ config_dir }}/undo.sh'" -hook_async = false -requires_path = "~/.config/cosmic" diff --git a/.local/state/noctalia/community-templates/cressida/.noctalia-cache.json b/.local/state/noctalia/community-templates/cressida/.noctalia-cache.json deleted file mode 100644 index 5579926..0000000 --- a/.local/state/noctalia/community-templates/cressida/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "20dd9a1cf1df1d87e3674062ed53df2b" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/cressida/template.toml b/.local/state/noctalia/community-templates/cressida/template.toml deleted file mode 100644 index 7489b00..0000000 --- a/.local/state/noctalia/community-templates/cressida/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.cressida] -name = "Cressida" -category = "chat" - -[templates.cressida] -input_path = "cressida.toml" -output_path = "$XDG_CONFIG_HOME/cressida/themes/noctalia.toml" diff --git a/.local/state/noctalia/community-templates/darktable/.noctalia-cache.json b/.local/state/noctalia/community-templates/darktable/.noctalia-cache.json deleted file mode 100644 index 23f558c..0000000 --- a/.local/state/noctalia/community-templates/darktable/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "6759a4e4a2ffde8fd624f67a73cefdeb" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/darktable/template.toml b/.local/state/noctalia/community-templates/darktable/template.toml deleted file mode 100644 index c2f2324..0000000 --- a/.local/state/noctalia/community-templates/darktable/template.toml +++ /dev/null @@ -1,13 +0,0 @@ -[catalog.darktable] -name = "darktable" -category = "editor" - -[templates.darktable] -input_path = "noctalia.css" -output_path = "~/.config/darktable/themes/noctalia.css" -requires_path = "~/.config/darktable" - -[templates.darktable-flatpak] -input_path = "noctalia-flatpak.css" -output_path = "~/.var/app/org.darktable.Darktable/config/darktable/themes/noctalia.css" -requires_path = "~/.var/app/org.darktable.Darktable" diff --git a/.local/state/noctalia/community-templates/discord/.noctalia-cache.json b/.local/state/noctalia/community-templates/discord/.noctalia-cache.json deleted file mode 100644 index d4a24c6..0000000 --- a/.local/state/noctalia/community-templates/discord/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "b7fcfda472b57734eb8259fa80bf2fd2" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/discord/template.toml b/.local/state/noctalia/community-templates/discord/template.toml deleted file mode 100644 index 35ae82d..0000000 --- a/.local/state/noctalia/community-templates/discord/template.toml +++ /dev/null @@ -1,135 +0,0 @@ -[catalog.discord] -name = "Discord" -category = "chat" - -[templates.discord_midnight_vesktop] -input_path = "discord-midnight.css" -output_path = "$XDG_CONFIG_HOME/vesktop/themes/noctalia.theme.css" - -[templates.discord_material_vesktop] -input_path = "discord-material.css" -output_path = "$XDG_CONFIG_HOME/vesktop/themes/noctalia-material.theme.css" - -[templates.discord_system24_vesktop] -input_path = "discord-system24.css" -output_path = "$XDG_CONFIG_HOME/vesktop/themes/discord-system24.css" - -[templates.discord_midnight_vesktop_flatpak] -input_path = "discord-midnight.css" -output_path = "~/.var/app/dev.vencord.Vesktop/config/vesktop/themes/noctalia.theme.css" - -[templates.discord_material_vesktop_flatpak] -input_path = "discord-material.css" -output_path = "~/.var/app/dev.vencord.Vesktop/config/vesktop/themes/noctalia-material.theme.css" - -[templates.discord_system24_vesktop_flatpak] -input_path = "discord-system24.css" -output_path = "~/.var/app/dev.vencord.Vesktop/config/vesktop/themes/discord-system24.css" - -[templates.discord_midnight_webcord] -input_path = "discord-midnight.css" -output_path = "$XDG_CONFIG_HOME/webcord/themes/noctalia.theme.css" - -[templates.discord_material_webcord] -input_path = "discord-material.css" -output_path = "$XDG_CONFIG_HOME/webcord/themes/noctalia-material.theme.css" - -[templates.discord_system24_webcord] -input_path = "discord-system24.css" -output_path = "$XDG_CONFIG_HOME/webcord/themes/discord-system24.css" - -[templates.discord_midnight_legcord] -input_path = "discord-midnight.css" -output_path = "$XDG_CONFIG_HOME/legcord/themes/noctalia.theme.css" - -[templates.discord_material_legcord] -input_path = "discord-material.css" -output_path = "$XDG_CONFIG_HOME/legcord/themes/noctalia-material.theme.css" - -[templates.discord_system24_legcord] -input_path = "discord-system24.css" -output_path = "$XDG_CONFIG_HOME/legcord/themes/discord-system24.css" - -[templates.discord_midnight_equibop] -input_path = "discord-midnight.css" -output_path = "$XDG_CONFIG_HOME/equibop/themes/noctalia.theme.css" - -[templates.discord_material_equibop] -input_path = "discord-material.css" -output_path = "$XDG_CONFIG_HOME/equibop/themes/noctalia-material.theme.css" - -[templates.discord_system24_equibop] -input_path = "discord-system24.css" -output_path = "$XDG_CONFIG_HOME/equibop/themes/discord-system24.css" - -[templates.discord_midnight_equicord] -input_path = "discord-midnight.css" -output_path = "$XDG_CONFIG_HOME/Equicord/themes/noctalia.theme.css" - -[templates.discord_material_equicord] -input_path = "discord-material.css" -output_path = "$XDG_CONFIG_HOME/Equicord/themes/noctalia-material.theme.css" - -[templates.discord_system24_equicord] -input_path = "discord-system24.css" -output_path = "$XDG_CONFIG_HOME/Equicord/themes/discord-system24.css" - -[templates.discord_midnight_lightcord] -input_path = "discord-midnight.css" -output_path = "$XDG_CONFIG_HOME/lightcord/themes/noctalia.theme.css" - -[templates.discord_material_lightcord] -input_path = "discord-material.css" -output_path = "$XDG_CONFIG_HOME/lightcord/themes/noctalia-material.theme.css" - -[templates.discord_system24_lightcord] -input_path = "discord-system24.css" -output_path = "$XDG_CONFIG_HOME/lightcord/themes/discord-system24.css" - -[templates.discord_midnight_dorion] -input_path = "discord-midnight.css" -output_path = "$XDG_CONFIG_HOME/dorion/themes/noctalia.theme.css" - -[templates.discord_material_dorion] -input_path = "discord-material.css" -output_path = "$XDG_CONFIG_HOME/dorion/themes/noctalia-material.theme.css" - -[templates.discord_system24_dorion] -input_path = "discord-system24.css" -output_path = "$XDG_CONFIG_HOME/dorion/themes/discord-system24.css" - -[templates.discord_midnight_vencord] -input_path = "discord-midnight.css" -output_path = "$XDG_CONFIG_HOME/Vencord/themes/noctalia.theme.css" - -[templates.discord_material_vencord] -input_path = "discord-material.css" -output_path = "$XDG_CONFIG_HOME/Vencord/themes/noctalia-material.theme.css" - -[templates.discord_system24_vencord] -input_path = "discord-system24.css" -output_path = "$XDG_CONFIG_HOME/Vencord/themes/discord-system24.css" - -[templates.discord_midnight_vencord_flatpak] -input_path = "discord-midnight.css" -output_path = "~/.var/app/com.discordapp.Discord/config/Vencord/themes/noctalia.theme.css" - -[templates.discord_material_vencord_flatpak] -input_path = "discord-material.css" -output_path = "~/.var/app/com.discordapp.Discord/config/Vencord/themes/noctalia-material.theme.css" - -[templates.discord_system24_vencord_flatpak] -input_path = "discord-system24.css" -output_path = "~/.var/app/com.discordapp.Discord/config/Vencord/themes/discord-system24.css" - -[templates.discord_midnight_betterdiscord] -input_path = "discord-midnight.css" -output_path = "$XDG_CONFIG_HOME/BetterDiscord/themes/noctalia.theme.css" - -[templates.discord_material_betterdiscord] -input_path = "discord-material.css" -output_path = "$XDG_CONFIG_HOME/BetterDiscord/themes/noctalia-material.theme.css" - -[templates.discord_system24_betterdiscord] -input_path = "discord-system24.css" -output_path = "$XDG_CONFIG_HOME/BetterDiscord/themes/discord-system24.css" diff --git a/.local/state/noctalia/community-templates/driftwm/.noctalia-cache.json b/.local/state/noctalia/community-templates/driftwm/.noctalia-cache.json deleted file mode 100644 index 4ea451e..0000000 --- a/.local/state/noctalia/community-templates/driftwm/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "2be6fd472586a5be0c40b4e2de4bdf4c" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/driftwm/template.toml b/.local/state/noctalia/community-templates/driftwm/template.toml deleted file mode 100644 index 69f24b6..0000000 --- a/.local/state/noctalia/community-templates/driftwm/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.driftwm] -name = "DriftWM" -category = "compositor" - -[templates.driftwm] -input_path = "driftwm-colors" -output_path = "$XDG_CACHE_HOME/noctalia-driftwm-colors" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/fastfetch/.noctalia-cache.json b/.local/state/noctalia/community-templates/fastfetch/.noctalia-cache.json deleted file mode 100644 index a816bc9..0000000 --- a/.local/state/noctalia/community-templates/fastfetch/.noctalia-cache.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "files": { - "README.md": "eaa53d6ac50931e057bf030c678fd3d7", - "apply.sh": "c605011961d37be31b8c710c83303360", - "fastfetch-colors.jsonc": "3de977e47b4cc00e76866e680974700a", - "screenshot.png": "e5be2fe0b3041fd4342ccfce6877a169", - "template.toml": "f05501b07584db28af6d779612bb58cf" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/fastfetch/README.md b/.local/state/noctalia/community-templates/fastfetch/README.md deleted file mode 100644 index 8c1566a..0000000 --- a/.local/state/noctalia/community-templates/fastfetch/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# fastfetch - -Themes [fastfetch](https://github.com/fastfetch-cli/fastfetch) — sets `display.color.keys`, -`display.color.title`, `display.percent.color.{green,yellow,red}` and `logo.color.{1,2}`. - -fastfetch's config (`~/.config/fastfetch/config.jsonc`) has no include/merge directive, so -`apply.sh` merges the rendered color object into the user's real config.jsonc directly (`jq -s -'.[0] * .[1]'`), preserving everything else in it (modules list, custom module config, etc.). - -**Known limitation: strict JSON only, not full JSONC.** `jq` (used for the merge) only parses -strict JSON — `//`/`/* */` comments and trailing commas, both valid JSONC, will make `apply.sh` -fail. It fails loudly with a clear message in that case rather than silently corrupting the file -or applying nothing with no explanation. If your `config.jsonc` uses comments, remove them to use -this template (fastfetch's own `--gen-config`/`--gen-config-force` output has none by default). -Also fails loudly (rather than auto-creating one) if `config.jsonc` doesn't exist at all yet — -run fastfetch once first to generate a default config. - -**Idempotency note**: the merge is guarded by comparing only the `logo`/`display` sub-objects -semantically (`jq -S`), not the whole file's raw bytes — a naive whole-file `cmp` after a `jq` -merge will never actually match hand-formatted JSON (`jq` re-serializes with its own canonical -formatting), which silently defeats the guard and rewrites the file on every apply regardless of -whether colors changed. Verified idempotent: running `apply.sh` twice with unchanged colors -leaves the file's mtime and content completely untouched. - -**Known upstream bug (worked around here): `logo.color` silently drops pastel/light colors.** -Confirmed live against fastfetch 2.66.0: a `logo.color.N` value is dropped with no error — the -logo falls back to its default palette — whenever its truecolor SGR string (`38;2;R;G;B`) is -exactly 16 characters, i.e. every one of R/G/B is a 3-digit number (`>=100`). That covers a large -share of real accent colors, including most pastel/light theme colors. `display.color.keys`/ -`title`/`percent` are unaffected — only `logo.color.N` goes through the broken code path. -Isolated by testing the exact byte-length trigger directly (both via `--logo-color-N` and via this -same JSON key) with fully saturated colors of the same hue (worked) vs. desaturated/light colors -producing a 16-char string (failed), including a control test with a non-pastel color that still -had all three channels `>=100` (also failed) — confirming it's the string length, not the hue or -lightness itself. - -`apply.sh` routes around it: whenever a `logo.color` value would trip the bug, the single -*smallest* RGB channel is nudged down to 99 — the minimal change that drops the SGR string below -16 characters, and since it's already the channel closest to the 100 boundary, it's the smallest -possible perceptual shift (e.g. `#fff59b` → `#fff563`). An earlier version of this fix quantized -to the nearest ANSI-256 cube color instead, but the 216-color cube only has 6 steps per channel, -so a near-white pastel like `#fff59b` snapped to `#ffffaf` — visually just white on a small ascii -logo. The channel-nudge keeps full 24-bit truecolor and stays close to the real color. - -Tested against fastfetch 2.66.0. diff --git a/.local/state/noctalia/community-templates/fastfetch/apply.sh b/.local/state/noctalia/community-templates/fastfetch/apply.sh deleted file mode 100755 index 28f431d..0000000 --- a/.local/state/noctalia/community-templates/fastfetch/apply.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -config_dir_xdg="${XDG_CONFIG_HOME:-$HOME/.config}/fastfetch" -config_file="$config_dir_xdg/config.jsonc" -theme_file="$config_dir_xdg/themes/noctalia.jsonc" - -if [ ! -f "$config_file" ]; then - echo "Error: fastfetch config not found at $config_file -- run fastfetch once to generate a default config first." >&2 - exit 1 -fi - -if [ ! -f "$theme_file" ]; then - echo "Warning: fastfetch theme file not found: $theme_file" >&2 - exit 0 -fi - -# jq only accepts strict JSON. config.jsonc is JSONC (comments/trailing commas allowed), so -# fail loudly with a clear message rather than let a bare jq parse error explain nothing, or -# silently skip and leave the user without any indication why colors never apply. -if ! jq empty "$config_file" 2>/dev/null; then - echo "Error: $config_file could not be parsed as strict JSON. Comments and trailing commas (valid JSONC, not valid JSON) are not currently supported by this hook -- remove them to use this template." >&2 - exit 1 -fi - -# fastfetch 2.66.0 has a confirmed real bug in its logo renderer: a -# logo.color value is dropped silently -- the logo falls back to its -# default palette with no error -- whenever its truecolor SGR string -# ("38;2;R;G;B") is exactly 16 characters, i.e. every one of R/G/B is a -# 3-digit number (>=100). That covers a large share of real accent colors -# (most pastel/light theme colors included). display.color.keys/title/ -# percent are unaffected -- only logo.color.N goes through the broken path. -# Verified live against 2.66.0 by isolating the exact byte-length trigger: -# any hex where all three channels are >=100 reproduces it, regardless of -# hue; anything with at least one channel <100 (a shorter SGR string) -# renders correctly. -# -# Route around it by nudging the single *smallest* channel down to 99 -# whenever all three are >=100 -- that's the minimal change that drops the -# SGR string below 16 chars, and it's always the channel closest to the -# 100 boundary already, so it's the smallest possible perceptual shift. -# (An earlier version of this fix quantized to the nearest ANSI-256 cube -# color instead, but the 216-color cube only has 6 steps per channel, so a -# near-white pastel like #fff59b snapped to #ffffaf -- visually just -# "white" on a small ascii logo. This keeps full 24-bit truecolor.) -nudge_channel() { - local hex="${1#\#}" - local r=$((16#${hex:0:2})) - local g=$((16#${hex:2:2})) - local b=$((16#${hex:4:2})) - if [ "$r" -ge 100 ] && [ "$g" -ge 100 ] && [ "$b" -ge 100 ]; then - if [ "$r" -le "$g" ] && [ "$r" -le "$b" ]; then - r=99 - elif [ "$g" -le "$r" ] && [ "$g" -le "$b" ]; then - g=99 - else - b=99 - fi - fi - printf '#%02x%02x%02x' "$r" "$g" "$b" -} - -tmp_theme="$(mktemp)" -tmp_file="" -trap 'rm -f "$tmp_theme" "${tmp_file:-}"' EXIT - -logo_1="$(jq -r '.logo.color."1" // empty' "$theme_file")" -logo_2="$(jq -r '.logo.color."2" // empty' "$theme_file")" - -jq \ - --arg c1 "$([ -n "$logo_1" ] && nudge_channel "$logo_1" || echo "")" \ - --arg c2 "$([ -n "$logo_2" ] && nudge_channel "$logo_2" || echo "")" \ - '(if $c1 != "" then .logo.color."1" = $c1 else . end) - | (if $c2 != "" then .logo.color."2" = $c2 else . end)' \ - "$theme_file" >"$tmp_theme" - -# Compare only the "logo"/"display" sub-objects semantically (jq -S, sorted+canonical), -# not the whole file's raw bytes -- jq's own re-serialization would never byte-match -# hand-formatted JSON, which made a naive cmp-the-whole-file guard fire on every single -# apply regardless of whether colors actually changed. -current_logo="$(jq -S '.logo // {}' "$config_file")" -current_display="$(jq -S '.display // {}' "$config_file")" -new_logo="$(jq -S '.logo // {}' "$tmp_theme")" -new_display="$(jq -S '.display // {}' "$tmp_theme")" - -if [ "$current_logo" != "$new_logo" ] || [ "$current_display" != "$new_display" ]; then - tmp_file="$(mktemp)" - jq -s '.[0] * .[1]' "$config_file" "$tmp_theme" >"$tmp_file" - cat "$tmp_file" >"$config_file" -fi diff --git a/.local/state/noctalia/community-templates/fastfetch/fastfetch-colors.jsonc b/.local/state/noctalia/community-templates/fastfetch/fastfetch-colors.jsonc deleted file mode 100644 index 65d837c..0000000 --- a/.local/state/noctalia/community-templates/fastfetch/fastfetch-colors.jsonc +++ /dev/null @@ -1,21 +0,0 @@ -{ - "logo": { - "color": { - "1": "{{colors.primary.default.hex}}", - "2": "{{colors.secondary.default.hex}}" - } - }, - "display": { - "color": { - "keys": "{{colors.primary.default.hex}}", - "title": "{{colors.secondary.default.hex}}" - }, - "percent": { - "color": { - "green": "{{colors.tertiary.default.hex}}", - "yellow": "{{colors.primary_fixed_dim.default.hex}}", - "red": "{{colors.error.default.hex}}" - } - } - } -} diff --git a/.local/state/noctalia/community-templates/fastfetch/screenshot.png b/.local/state/noctalia/community-templates/fastfetch/screenshot.png deleted file mode 100644 index 814e405..0000000 Binary files a/.local/state/noctalia/community-templates/fastfetch/screenshot.png and /dev/null differ diff --git a/.local/state/noctalia/community-templates/fastfetch/template.toml b/.local/state/noctalia/community-templates/fastfetch/template.toml deleted file mode 100644 index c90a793..0000000 --- a/.local/state/noctalia/community-templates/fastfetch/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.fastfetch] -name = "Fastfetch" -category = "misc" - -[templates.fastfetch] -input_path = "fastfetch-colors.jsonc" -output_path = "$XDG_CONFIG_HOME/fastfetch/themes/noctalia.jsonc" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/fcitx5/.noctalia-cache.json b/.local/state/noctalia/community-templates/fcitx5/.noctalia-cache.json deleted file mode 100644 index 7962fc6..0000000 --- a/.local/state/noctalia/community-templates/fcitx5/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "56a010cefb7570319d53289c27a99513" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/fcitx5/template.toml b/.local/state/noctalia/community-templates/fcitx5/template.toml deleted file mode 100644 index c93ab74..0000000 --- a/.local/state/noctalia/community-templates/fcitx5/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.fcitx5] -name = "Fcitx5" -category = "system" - -[templates.fcitx5] -input_path = "theme.conf" -output_path = "$XDG_DATA_HOME/fcitx5/themes/noctalia/theme.conf" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/feishin/.noctalia-cache.json b/.local/state/noctalia/community-templates/feishin/.noctalia-cache.json deleted file mode 100644 index e84b787..0000000 --- a/.local/state/noctalia/community-templates/feishin/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "5b838e0791ee65415c48ad1524f17435" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/feishin/template.toml b/.local/state/noctalia/community-templates/feishin/template.toml deleted file mode 100644 index 3f36d55..0000000 --- a/.local/state/noctalia/community-templates/feishin/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.feishin] -name = "Feishin" -category = "audio" - -[templates.feishin] -input_path = "custom.css" -output_path = "$XDG_CONFIG_HOME/feishin/custom.css" diff --git a/.local/state/noctalia/community-templates/fuzzel/.noctalia-cache.json b/.local/state/noctalia/community-templates/fuzzel/.noctalia-cache.json deleted file mode 100644 index 6cb0827..0000000 --- a/.local/state/noctalia/community-templates/fuzzel/.noctalia-cache.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "files": { - "README.md": "5273001c9d22560e14e9ab07c580c3e9", - "apply.sh": "2cdc7ebbd5d3798fa896b1191214468c", - "fuzzel.conf": "ada6c69528e9fd1f32f27a82ba24c9d3", - "template.toml": "07c2e5d778a043872eadddea0a2edfa4" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/fuzzel/README.md b/.local/state/noctalia/community-templates/fuzzel/README.md deleted file mode 100644 index 927983b..0000000 --- a/.local/state/noctalia/community-templates/fuzzel/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Fuzzel - -Generates Noctalia colors for the Fuzzel launcher, including translucent background and selection colors. - -Enable **Fuzzel** in **Noctalia Settings -> Templates**. The theme is written to `$XDG_CONFIG_HOME/fuzzel/themes/noctalia` (`~/.config/fuzzel/themes/noctalia` by default). - -The Bash post-hook creates or updates `$XDG_CONFIG_HOME/fuzzel/fuzzel.ini` to include the generated theme using an absolute `include=.../fuzzel/themes/noctalia` line. If the exact include is absent, existing lines beginning with `include=` and containing `themes` are replaced; otherwise the include is appended. Other settings are retained. - -Install Fuzzel and back up `fuzzel.ini` first: the hook changes it without creating a backup. No launcher reload command is included. diff --git a/.local/state/noctalia/community-templates/fuzzel/apply.sh b/.local/state/noctalia/community-templates/fuzzel/apply.sh deleted file mode 100755 index 7a61283..0000000 --- a/.local/state/noctalia/community-templates/fuzzel/apply.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -config_dir="${XDG_CONFIG_HOME:-$HOME/.config}" -config_file="$config_dir/fuzzel/fuzzel.ini" -include_line="include=$config_dir/fuzzel/themes/noctalia" - -mkdir -p "$(dirname "$config_file")" - -write_if_changed() { - local target="$1" tmp="$2" - if [ ! -e "$target" ] && [ ! -L "$target" ]; then - mv "$tmp" "$target" - return - fi - if ! cmp -s "$target" "$tmp"; then - cat "$tmp" >"$target" - fi - rm -f "$tmp" -} - -if [ ! -f "$config_file" ]; then - echo "$include_line" >"$config_file" -elif grep -q "^$include_line$" "$config_file"; then - : -elif grep -q '^include=.*themes' "$config_file"; then - tmp_file="$(mktemp "${config_file}.tmp.XXXXXX")" - sed 's|^include=.*themes.*|'"$include_line"'|' "$config_file" >"$tmp_file" - write_if_changed "$config_file" "$tmp_file" -else - [ -s "$config_file" ] && [ -n "$(tail -c1 "$config_file")" ] && echo >>"$config_file" - echo "$include_line" >>"$config_file" -fi diff --git a/.local/state/noctalia/community-templates/fuzzel/fuzzel.conf b/.local/state/noctalia/community-templates/fuzzel/fuzzel.conf deleted file mode 100644 index dc519a8..0000000 --- a/.local/state/noctalia/community-templates/fuzzel/fuzzel.conf +++ /dev/null @@ -1,15 +0,0 @@ -# Fuzzel Colors -# Generated by Noctalia's Template Processor - -[colors] -background={{colors.background.default.hex_stripped}}CC -text={{colors.on_surface.default.hex_stripped}}ff -prompt={{colors.secondary.default.hex_stripped}}ff -placeholder={{colors.tertiary.default.hex_stripped}}ff -input={{colors.primary.default.hex_stripped}}ff -match={{colors.tertiary.default.hex_stripped}}ff -selection={{colors.primary.default.hex_stripped}}80 -selection-text={{colors.on_surface.default.hex_stripped}}ff -selection-match={{colors.on_primary.default.hex_stripped}}ff -counter={{colors.secondary.default.hex_stripped}}ff -border={{colors.primary.default.hex_stripped}}ff diff --git a/.local/state/noctalia/community-templates/fuzzel/template.toml b/.local/state/noctalia/community-templates/fuzzel/template.toml deleted file mode 100644 index 0fd3efe..0000000 --- a/.local/state/noctalia/community-templates/fuzzel/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.fuzzel] -name = "Fuzzel" -category = "launcher" - -[templates.fuzzel] -input_path = "fuzzel.conf" -output_path = "$XDG_CONFIG_HOME/fuzzel/themes/noctalia" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/fzf/.noctalia-cache.json b/.local/state/noctalia/community-templates/fzf/.noctalia-cache.json deleted file mode 100644 index c930f9a..0000000 --- a/.local/state/noctalia/community-templates/fzf/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "49ef166bf4868c326404dcd1f35120ea" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/fzf/template.toml b/.local/state/noctalia/community-templates/fzf/template.toml deleted file mode 100644 index f7cefb7..0000000 --- a/.local/state/noctalia/community-templates/fzf/template.toml +++ /dev/null @@ -1,11 +0,0 @@ -[catalog.fzf] -name = "fzf" -category = "terminal" - -[templates.fzf_bash] -input_path = "fzf.sh" -output_path = "$XDG_CONFIG_HOME/fzf/themes/noctalia.sh" - -[templates.fzf_fish] -input_path = "fzf.fish" -output_path = "$XDG_CONFIG_HOME/fzf/themes/noctalia.fish" diff --git a/.local/state/noctalia/community-templates/gimp/.noctalia-cache.json b/.local/state/noctalia/community-templates/gimp/.noctalia-cache.json deleted file mode 100644 index f81e438..0000000 --- a/.local/state/noctalia/community-templates/gimp/.noctalia-cache.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "files": { - "README.md": "2776c8398f20a6a106c3cddb9b7e1171", - "gimp.css": "782d352483659abf7382546573c9d167", - "screenshot-preferences.png": "d946d563f7bbebc75c6c202982c790dc", - "screenshot.png": "ea41bc5097843dac92792cbd902a3c3b", - "template.toml": "e612bf68941874992ce2120e4f0a6455" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/gimp/README.md b/.local/state/noctalia/community-templates/gimp/README.md deleted file mode 100644 index 23517f4..0000000 --- a/.local/state/noctalia/community-templates/gimp/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# GIMP - -GIMP has its own personal-override CSS hook, separate from the auto-generated `theme.css` that -ships with the app (which is regenerated on every theme change and explicitly says not to edit -it by hand). This template writes to that personal file directly: `gimp.css`, imported -automatically if present, no extra setup needed once the template is enabled. - -## What gets themed, and the two things that needed extra care - -GIMP's own theme only defines 17 named colors (`fg-color`, `bg-color`, `selected-color`, and so -on), reused across `common.css`/`common-dark.css`. Most of the UI follows from setting those. -Two things needed more than a plain 1:1 color swap: - -- **Context menus and other `GtkPopoverMenu` content had no background rule at all** in GIMP's - own theme (only narrow button/list-row styling), so they fell through to GTK's stock light - default. Fixed with explicit `popover`/`popover contents` rules. -- **`selected-color`/`extreme-selected-color` are always paired with white text** in GIMP's own - CSS, with no dark-text variant the way Noctalia's other templates use `on_primary` on top of a - `primary`-colored background. Mapping them straight to Noctalia's yellow accent made text - unreadable everywhere that yellow shows up (menu hovers, selected list rows, the Preferences - sidebar). Fixed by keeping the yellow and adding an explicit dark-text override for every - selector GIMP's `common.css` actually uses those two variables as a background for (checked via - grep, not guessed). -- A few widgets, confirmed just the Preferences dialog's own page title bar, don't use GIMP's - custom variables at all. GIMP's own source comment on that exact element admits it "doesn't - have any more specific way to style it," meaning it falls back to standard GTK/Adwaita - variable names (`@theme_bg_color`, `@theme_selected_bg_color`, etc.) instead. Those are set - too, as a safety net, since the system `gtk.css` those would normally come from never loads - inside a Flatpak sandbox. - -## Requires GIMP's own "Default" base theme - -GIMP has two selectable base themes (Preferences > Interface > Theme): `Default` and `System`. -This template is built against `Default` (`themes/Default/gimp-dark.css`), the one this personal -override's own 17 variables and extra selectors are checked against. `System` imports a -different, much smaller CSS file with no guarantee it uses the same variable names, not tested -or supported here. If colors look wrong after enabling this template, check Preferences first. - -## Native install - -`gimp.css` lives at `~/.config/GIMP/3.2/gimp.css`. - -## Flatpak install (`org.gimp.GIMP`) - -Same file, inside the sandbox's own isolated config: `~/.var/app/org.gimp.GIMP/config/GIMP/3.2/ -gimp.css`. No `flatpak override` needed, GIMP reads its own config from inside its sandbox -regardless of any host `~/.config` access. - -## Testing - -Tested against GIMP 3.2.4 (Flatpak). Verified visually across three passes: main window and -toolbox (`screenshot.png`), right-click context menus, and the Preferences dialog specifically -(`screenshot-preferences.png`), the hardest case since it touches nearly every one of GIMP's 17 -variables plus the GTK fallback ones. diff --git a/.local/state/noctalia/community-templates/gimp/gimp.css b/.local/state/noctalia/community-templates/gimp/gimp.css deleted file mode 100644 index 527fa05..0000000 --- a/.local/state/noctalia/community-templates/gimp/gimp.css +++ /dev/null @@ -1,119 +0,0 @@ -@define-color fg-color {{colors.on_surface.default.hex}}; -@define-color bg-color {{colors.surface.default.hex}}; -@define-color border-color {{colors.outline.default.hex}}; -@define-color dimmed-fg-color {{colors.on_surface_variant.default.hex}}; -@define-color disabled-fg-color {{colors.outline_variant.default.hex}}; -@define-color disabled-button-color {{colors.surface_container_low.default.hex}}; -@define-color hover-color {{colors.surface_container_high.default.hex}}; -@define-color widget-bg-color {{colors.surface_container.default.hex}}; -@define-color selected-color {{colors.primary.default.hex}}; -@define-color extreme-bg-color {{colors.surface_container_low.default.hex}}; -@define-color extreme-selected-color {{colors.primary.default.hex}}; -@define-color strong-border-color {{colors.outline.default.hex}}; -@define-color stronger-border-color {{colors.outline.default.hex}}; -@define-color edge-border-color {{colors.outline_variant.default.hex}}; -@define-color scrollbar-slider-color {{colors.outline.default.hex}}; -@define-color scrollbar-trough-color {{colors.surface_container.default.hex}}; -@define-color ruler-color {{colors.outline_variant.default.rgba | set_alpha: 0.3}}; - -/* Standard GTK/Adwaita variable names, not GIMP's own. Some widgets - (confirmed: the Preferences page title bar, per GIMP's own source - comment admitting it "doesn't have any more specific way to style it") - fall back to these instead of GIMP's custom palette above. Without - this they'd stay unthemed since the system gtk.css never loads inside - a Flatpak sandbox. */ -@define-color theme_bg_color {{colors.surface.default.hex}}; -@define-color theme_fg_color {{colors.on_surface.default.hex}}; -@define-color theme_base_color {{colors.surface_container.default.hex}}; -@define-color theme_text_color {{colors.on_surface.default.hex}}; -@define-color theme_selected_bg_color {{colors.primary.default.hex}}; -@define-color theme_selected_fg_color {{colors.on_primary.default.hex}}; -@define-color borders {{colors.outline.default.hex}}; - -/* Most of GIMP's UI reuses selected-color/extreme-selected-color as a full - background fill for selection/hover/checked states. Left as bright - Noctalia yellow, that fill makes GIMP's own default (light) icon - rendering invisible on several widgets, confirmed live and not fixable - by recoloring the icon directly (tried extensively: direct color - targeting, wildcard inheritance, -gtk-icon-shadow; `filter` isn't even - a valid GTK3 CSS property at all, confirmed via a real parse error). - - Real prior art settles this cleanly: community GIMP dark+accent themes - (e.g. github.com/bunnywaffle/GIMP-3-Themes, "Black Green Glow") never - use a bright accent as a full selection fill either, only as a thin - border stripe on top of a still-dark background. Applying that same - pattern here: every selector below keeps a dark, subtle background - (hover-color) and gets the yellow as a left border accent instead. No - per-widget icon or text color override is needed this way, since GIMP's - own default text/icon rendering already works fine against a dark - background, that's the entire point. - - Uses box-shadow, not a real border: GIMP's own common.css already - renders a bottom accent bar this way in several places (e.g. `menubar > - menuitem:hover { box-shadow: inset 0 -3px @stronger-border-color; }`), - and stronger-border-color is mapped to Noctalia's outline role (a - blue-purple tone) elsewhere in this file, which is exactly the stray - blue bar seen live alongside an earlier version of this fix that used a - real `border` property instead: two separate indicators stacking, not - one. Matching GIMP's own mechanism here replaces that blue bar outright - instead of adding a second one next to it. - - One deliberate exception, kept as a full yellow fill instead (below): - toolbox tool selection. Confirmed working with a full fill plus a dark - icon override, and that's the preferred look there specifically. The - Preferences category sidebar is a GtkTreeView (confirmed by its expander - chevrons), matched by `.view:selected` below, not a GtkListBox `list - row`, so it stays with this box-shadow treatment; pulling it out into a - full-fill override was tried and also recolored the page's title-bar - header the same way (both fall back to the same GTK theme variables), - which looked wrong, so left as-is. */ -.view:selected, -.view row:selected, -menuitem *:hover, -popover list row:selected, -combobox button:hover, -notebook header button:hover, -notebook header tabs tab:checked, -GimpDeviceStatus widget:selected, -GimpDeviceStatus widget:selected box, -button:checked, -button.titlebutton:hover, -spinbutton button:hover { - background-color: {{colors.surface_container_high.default.hex}}; - background-image: none; - color: {{colors.on_surface.default.hex}}; - border-width: 0; - box-shadow: inset 0 -3px {{colors.primary.default.hex}}; -} - -/* Full yellow fill for the toolbox, matching selected-color's real value - (unchanged from GIMP's own base rule, no override needed for the - background itself). Text/icon color need the explicit dark override - GIMP's own CSS never provides. The small corner triangle marking a tool - group (e.g. on the Paintbrush/Pencil/Airbrush group) stays whatever - color GIMP draws it: confirmed no dedicated icon asset exists for it - anywhere in GIMP's own icon set, so it's a fixed-color overlay drawn - directly in GIMP's C code, not a themeable CSS node. */ -toolbutton button.flat:hover, -toolbutton button.flat:checked, -toolbutton button.flat:checked:hover { - color: {{colors.on_primary.default.hex}}; -} -toolbutton button.flat:checked image, -toolbutton button.flat:checked icon { - color: {{colors.on_primary.default.hex}}; -} - -/* GIMP's own theme has no general rule for GtkPopoverMenu backgrounds - (only narrow button/list-row styling), so context menus fall through - to GTK's stock light default without this. */ -popover, popover contents, popover.menu, popover.background { - background-color: @bg-color; - color: @fg-color; -} -popover modelbutton, popover menuitem { - color: @fg-color; -} -popover modelbutton:hover, popover menuitem:hover { - background-color: @extreme-bg-color; -} diff --git a/.local/state/noctalia/community-templates/gimp/screenshot-preferences.png b/.local/state/noctalia/community-templates/gimp/screenshot-preferences.png deleted file mode 100644 index d55495f..0000000 Binary files a/.local/state/noctalia/community-templates/gimp/screenshot-preferences.png and /dev/null differ diff --git a/.local/state/noctalia/community-templates/gimp/screenshot.png b/.local/state/noctalia/community-templates/gimp/screenshot.png deleted file mode 100644 index 443f196..0000000 Binary files a/.local/state/noctalia/community-templates/gimp/screenshot.png and /dev/null differ diff --git a/.local/state/noctalia/community-templates/gimp/template.toml b/.local/state/noctalia/community-templates/gimp/template.toml deleted file mode 100644 index 0108266..0000000 --- a/.local/state/noctalia/community-templates/gimp/template.toml +++ /dev/null @@ -1,13 +0,0 @@ -[catalog.gimp] -name = "GIMP" -category = "editor" - -[templates.gimp] -input_path = "gimp.css" -output_path = "~/.config/GIMP/3.2/gimp.css" -requires_path = "~/.config/GIMP" - -[templates.gimp-flatpak] -input_path = "gimp.css" -output_path = "~/.var/app/org.gimp.GIMP/config/GIMP/3.2/gimp.css" -requires_path = "~/.var/app/org.gimp.GIMP" diff --git a/.local/state/noctalia/community-templates/glow/.noctalia-cache.json b/.local/state/noctalia/community-templates/glow/.noctalia-cache.json deleted file mode 100644 index 9a05cfe..0000000 --- a/.local/state/noctalia/community-templates/glow/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "03732f9df248ab5075647e694192479d" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/glow/template.toml b/.local/state/noctalia/community-templates/glow/template.toml deleted file mode 100644 index 93eca63..0000000 --- a/.local/state/noctalia/community-templates/glow/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.glow] -name = "Glow" -category = "terminal" - -[templates.glow] -input_path = "glow.json" -output_path = "$XDG_CONFIG_HOME/glow/noctalia.json" diff --git a/.local/state/noctalia/community-templates/gruvbox-plus-icons/.noctalia-cache.json b/.local/state/noctalia/community-templates/gruvbox-plus-icons/.noctalia-cache.json deleted file mode 100644 index 635cc02..0000000 --- a/.local/state/noctalia/community-templates/gruvbox-plus-icons/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "bffcacd872da4661aba3a4be3759027d" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/gruvbox-plus-icons/template.toml b/.local/state/noctalia/community-templates/gruvbox-plus-icons/template.toml deleted file mode 100644 index 3fe7d5b..0000000 --- a/.local/state/noctalia/community-templates/gruvbox-plus-icons/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.gruvbox-plus-icons] -name = "Gruvbox Plus Icon Theme" -category = "system" - -[templates.gruvbox_plus_icons] -input_path = "colors" -output_path = "colors-final" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/halloy/.noctalia-cache.json b/.local/state/noctalia/community-templates/halloy/.noctalia-cache.json deleted file mode 100644 index 146f230..0000000 --- a/.local/state/noctalia/community-templates/halloy/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "4f13dc5fc08a089dad1426a692b45bb4" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/halloy/template.toml b/.local/state/noctalia/community-templates/halloy/template.toml deleted file mode 100644 index 3c6f8cb..0000000 --- a/.local/state/noctalia/community-templates/halloy/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.halloy] -name = "halloy" -category = "chat" - -[templates.halloy] -input_path = "halloy.toml" -output_path = "$XDG_CONFIG_HOME/halloy/themes/noctalia.toml" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/herdr/.noctalia-cache.json b/.local/state/noctalia/community-templates/herdr/.noctalia-cache.json deleted file mode 100644 index 82afb26..0000000 --- a/.local/state/noctalia/community-templates/herdr/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "fcdf331f3b03ce4d352930fbf6539e91" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/herdr/template.toml b/.local/state/noctalia/community-templates/herdr/template.toml deleted file mode 100644 index 70e9716..0000000 --- a/.local/state/noctalia/community-templates/herdr/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.herdr] -name = "herdr" -category = "terminal" - -[templates.herdr] -input_path = "herdr-colors.toml" -output_path = "$XDG_CONFIG_HOME/herdr/noctalia-colors.toml" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/heroiclauncher/.noctalia-cache.json b/.local/state/noctalia/community-templates/heroiclauncher/.noctalia-cache.json deleted file mode 100644 index c7674e9..0000000 --- a/.local/state/noctalia/community-templates/heroiclauncher/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "0af766d5cbf7b20ef059d8f26c04afd4" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/heroiclauncher/template.toml b/.local/state/noctalia/community-templates/heroiclauncher/template.toml deleted file mode 100644 index e2593fc..0000000 --- a/.local/state/noctalia/community-templates/heroiclauncher/template.toml +++ /dev/null @@ -1,13 +0,0 @@ -[catalog.heroiclauncher] -name = "Heroic Launcher" -category = "gaming" - -[templates.heroiclauncher] -input_path = 'heroic.css' -output_path = '$XDG_CONFIG_HOME/heroic/themes/matugen.css' -requires_path = '~/.config/heroic' - -[templates.heroiclauncher-flatpak] -input_path = 'heroic.css' -output_path = '~/.var/app/com.heroicgameslauncher.hgl/config/heroic/themes/matugen.css' -requires_path = '~/.var/app/com.heroicgameslauncher.hgl' diff --git a/.local/state/noctalia/community-templates/hyprtoolkit/.noctalia-cache.json b/.local/state/noctalia/community-templates/hyprtoolkit/.noctalia-cache.json deleted file mode 100644 index 56c07cb..0000000 --- a/.local/state/noctalia/community-templates/hyprtoolkit/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "99b9324b0bdc834bfe71fb85febea677" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/hyprtoolkit/template.toml b/.local/state/noctalia/community-templates/hyprtoolkit/template.toml deleted file mode 100644 index bec3b23..0000000 --- a/.local/state/noctalia/community-templates/hyprtoolkit/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.hyprtoolkit] -name = "Hyprtoolkit" -category = "system" - -[templates.hyprtoolkit] -input_path = "hyprtoolkit.conf" -output_path = "$XDG_CONFIG_HOME/hypr/hyprtoolkit.conf" diff --git a/.local/state/noctalia/community-templates/inkscape/.noctalia-cache.json b/.local/state/noctalia/community-templates/inkscape/.noctalia-cache.json deleted file mode 100644 index c7d19af..0000000 --- a/.local/state/noctalia/community-templates/inkscape/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "4fe75090ad20b8fa348f9409deeb469e" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/inkscape/template.toml b/.local/state/noctalia/community-templates/inkscape/template.toml deleted file mode 100644 index 1a2e8b6..0000000 --- a/.local/state/noctalia/community-templates/inkscape/template.toml +++ /dev/null @@ -1,13 +0,0 @@ -[catalog.inkscape] -name = "Inkscape" -category = "editor" - -[templates.inkscape] -input_path = "user.css" -output_path = "~/.config/inkscape/ui/user.css" -requires_path = "~/.config/inkscape" - -[templates.inkscape-flatpak] -input_path = "user.css" -output_path = "~/.var/app/org.inkscape.Inkscape/config/inkscape/ui/user.css" -requires_path = "~/.var/app/org.inkscape.Inkscape" diff --git a/.local/state/noctalia/community-templates/jay/.noctalia-cache.json b/.local/state/noctalia/community-templates/jay/.noctalia-cache.json deleted file mode 100644 index a560e22..0000000 --- a/.local/state/noctalia/community-templates/jay/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "e99b61279760be238ac83f299c5d5382" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/jay/template.toml b/.local/state/noctalia/community-templates/jay/template.toml deleted file mode 100644 index fcd5783..0000000 --- a/.local/state/noctalia/community-templates/jay/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.jay] -name = "Jay" -category = "compositor" - -[templates.jay] -input_path = "jay.toml" -output_path = "$XDG_CACHE_HOME/noctalia/templates/jay-theme.toml" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/karere/.noctalia-cache.json b/.local/state/noctalia/community-templates/karere/.noctalia-cache.json deleted file mode 100644 index d10463c..0000000 --- a/.local/state/noctalia/community-templates/karere/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "e2327271c97a1ab46a8ef7c16a0ef979" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/karere/template.toml b/.local/state/noctalia/community-templates/karere/template.toml deleted file mode 100644 index 58c9c37..0000000 --- a/.local/state/noctalia/community-templates/karere/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.karere] -name = "Karere Custom CSS" -category = "chat" - -[templates.karere] -input_path = "karere.css" -output_path = "$XDG_CONFIG_HOME/karere/custom.css" -requires_path = "$XDG_CONFIG_HOME/karere" diff --git a/.local/state/noctalia/community-templates/konsole/.noctalia-cache.json b/.local/state/noctalia/community-templates/konsole/.noctalia-cache.json deleted file mode 100644 index 315845b..0000000 --- a/.local/state/noctalia/community-templates/konsole/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "787e3f76d9e2675a05eb6e1bd0bc4496" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/konsole/template.toml b/.local/state/noctalia/community-templates/konsole/template.toml deleted file mode 100644 index 73fd891..0000000 --- a/.local/state/noctalia/community-templates/konsole/template.toml +++ /dev/null @@ -1,9 +0,0 @@ -[catalog.konsole] -name = "Konsole" -category = "terminal" - -[templates.konsole] -input_path = "noctalia.colorscheme" -output_path = "$XDG_DATA_HOME/konsole/noctalia.colorscheme" -pre_hook = "bash '{{ config_dir }}/pre-apply.sh'" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/lazygit/.noctalia-cache.json b/.local/state/noctalia/community-templates/lazygit/.noctalia-cache.json deleted file mode 100644 index efaba40..0000000 --- a/.local/state/noctalia/community-templates/lazygit/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "0497bb389ed096b6d40238f68e8d9162" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/lazygit/template.toml b/.local/state/noctalia/community-templates/lazygit/template.toml deleted file mode 100644 index 9dbccae..0000000 --- a/.local/state/noctalia/community-templates/lazygit/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.lazygit] -name = "lazygit" -category = "terminal" - -[templates.lazygit] -input_path = "lazygit.yml" -output_path = "$XDG_CONFIG_HOME/lazygit/themes/noctalia.yml" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/lazyvim/.noctalia-cache.json b/.local/state/noctalia/community-templates/lazyvim/.noctalia-cache.json deleted file mode 100644 index 4fa2b4d..0000000 --- a/.local/state/noctalia/community-templates/lazyvim/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "1f5ca395e7fe79bedb37b30bb74babac" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/lazyvim/template.toml b/.local/state/noctalia/community-templates/lazyvim/template.toml deleted file mode 100644 index 12b3a6a..0000000 --- a/.local/state/noctalia/community-templates/lazyvim/template.toml +++ /dev/null @@ -1,9 +0,0 @@ -[catalog.lazyvim] -name = "LazyVim" -category = "editor" - -[templates.lazyvim] -input_path = "noctalia.lua" -output_path = "$XDG_CONFIG_HOME/nvim/colors/noctalia.lua" -post_hook = "bash '{{ config_dir }}/apply.sh'" -requires_path = "$XDG_CONFIG_HOME/nvim/lazyvim.json" diff --git a/.local/state/noctalia/community-templates/libreoffice/.noctalia-cache.json b/.local/state/noctalia/community-templates/libreoffice/.noctalia-cache.json deleted file mode 100644 index 8f300ae..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/.noctalia-cache.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "files": { - "Paths.xcu": "f0249a769fed68b4329baf57ac5c1bac", - "README.md": "c36760d40cae238078e2c8ceae480730", - "Theme_Colors.xcu": "9e3918407865e787a1081059d19187fd", - "apply.sh": "79b637c398e457e22e1975169c1f7f2f", - "description.xml": "810920710dcde3c1bfe9fb1ea671316c", - "light-screenshot.png": "ad688f5dc4feda44ed3da38827165497", - "pkg-description.en": "50f53d956476e61f87005bf9399e36f4", - "screenshot.png": "8f29907e3b5fd8a6471914503a3c8b2b", - "template.toml": "e1da6de79923919b05291dddf6ff5fd0" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/libreoffice/Paths.xcu b/.local/state/noctalia/community-templates/libreoffice/Paths.xcu deleted file mode 100644 index e271283..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/Paths.xcu +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/.local/state/noctalia/community-templates/libreoffice/README.md b/.local/state/noctalia/community-templates/libreoffice/README.md deleted file mode 100644 index 57bef2b..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/README.md +++ /dev/null @@ -1,104 +0,0 @@ -# LibreOffice - -Tested against LibreOffice 26.2.4.2 (Flatpak, `org.libreoffice.LibreOffice`). - -## Why this ships as an extension, not a rendered config file - -LibreOffice's main window chrome (menus, toolbars, buttons, dialogs) is drawn by its own widget -framework, not read from `gtk.css`. Confirmed live: an unmistakable -`window { background-color: #ff0000; }` override in -`~/.var/app/org.libreoffice.LibreOffice/config/gtk-3.0/gtk.css` had zero effect, even with the -GTK3 VCL plugin explicitly forced (`SAL_USE_VCLPLUGIN=gtk3`). LibreOffice's real theming -mechanism is its own **ColorScheme** system (Tools > Options > LibreOffice > Application Colors), -distributed as an installable `.oxt` extension package, the same format real community themes -like [libre-nord](https://github.com/gomesluiz/libre-nord) use. - -## The property list is confirmed against LibreOffice's own source, not guessed - -Every `ColorScheme` property name and its real meaning is confirmed against -[`officecfg/registry/schema/org/openoffice/Office/UI.xcs`](https://github.com/LibreOffice/core/blob/master/officecfg/registry/schema/org/openoffice/Office/UI.xcs) -in the LibreOffice/core repository, not a partial third-party example. This mattered in practice: -`FieldColor`'s own schema description is "Allows to overwrite the system field color", it -controls input/dropdown widget backgrounds, not document-embedded field shading the way its name -first suggests. An earlier pass mapped it to a literal document-shading color by analogy with a -third-party reference theme, and dropdown boxes, the Options sidebar, and text fields stayed on -a stock dark color as a result, exactly the kind of "confirmed working" that only turns out to -be partially true once someone actually looks closely. Fixed by mapping `FieldColor` to a real -Noctalia surface role, then cross-checking the *entire* property list against the schema (several -other properties, `DisabledColor`, `ActiveTextColor`, `InactiveColor`, and their pairs, were -missing from the theme entirely and are now set too). - -Colors below are hex placeholders in the template source; `Theme_Colors.xcu` uses this schema's -own decimal-integer format, not hex, so `apply.sh` converts every value at render time (plain -`int(hex, 16)`, confirmed against the Document Foundation's own blog post examples). - -## Document canvas and BASIC editor colors stay literal, deliberately - -Same reasoning as darktable's neutral photo-viewing background: `DocColor`, `FontColor`, -`DocBoundaries`, `CalcGrid`, and the BASIC IDE syntax-highlighting colors are kept as sensible -literal light/dark values regardless of how dark the surrounding chrome is. A document is still -meant to look like a normal page (or be printed), and code syntax highlighting needs -distinguishable, conventional colors (keywords, strings, comments), not four or five UI accent -roles stretched over a dozen token types. These are functional, not chrome. - -## Real gotchas found building this, not theoretical - -- **The scheme has to be selected manually, once.** Installing the extension registers "Noctalia" - as an available option in the Scheme dropdown, it does not auto-select it. Confirmed live: same - behavior class as darktable's own theme dropdown. Go to Tools > Options > LibreOffice > - Application Colors, pick "Noctalia" from the Scheme dropdown, click Apply/OK. After that one - manual step, every later theme change re-renders and reinstalls the extension automatically - through Noctalia's own template pipeline, no further manual selection needed. -- **A restart is needed to see updated colors**, same as Heroic's own documented limitation. - Confirmed live: switching Noctalia's theme mode while LibreOffice was already open did not - change the running window at all; closing and reopening it did. This is not a bug in the - template, extensions are loaded at LibreOffice startup. -- **`unopkg add --force` alone is not reliable for reinstalling the same extension identifier.** - Confirmed live, the hard way: after several reinstalls it left the extension in a broken state, - `unopkg list` reported nothing installed at all, while a stale binary cache index - (`uno_packages/cache/uno_packages.pmap`) still pointed at a deleted temp directory, causing - every subsequent install attempt to fail with "file opening ... NOT_EXISTING" until the whole - cache directory was cleared by hand. `apply.sh` now explicitly `unopkg remove`s the extension - identifier before every `add`, ignoring failure since it may not be installed yet, rather than - relying on `--force` to handle that atomically. -- **`unopkg add` while LibreOffice is running can corrupt the install the same way.** `apply.sh` - checks for a running `soffice.bin` process first and skips the install step entirely if found, - rather than risk it, the `.oxt` is still rebuilt with the current colors either way, so the next - render (once LibreOffice is closed) or the next manual re-apply installs them, and a restart is - already required regardless. -- **`unopkg` is not on the sandbox's `PATH`** inside the Flatpak. Confirmed live: - `flatpak run --command=unopkg ...` fails with "No such file or directory", the full path - `/app/libreoffice/program/unopkg` is required. -- **If LibreOffice was open at the exact moment the theme changed, the install-skip above has no - automatic retry.** The `.oxt` still gets rebuilt with the current colors every render, but - since the install step is skipped while LibreOffice is running, closing LibreOffice alone is - not enough, nothing re-triggers the install afterward on its own. Confirmed live: after - changing the palette while LibreOffice was open, colors stayed stale even after closing and - reopening it, until `apply.sh` was run again by hand with LibreOffice closed. In practice this - means a color change made while LibreOffice happens to be open may need the theme re-applied - once more (`noctalia msg templates-apply`) after closing it, not just a restart. - -## Native install - -Same `unopkg` mechanism, invoked directly. `apply.sh` resolves `unopkg` from `PATH` first, then -falls back to the official TDF install layout (`/opt/libreoffice*/program/unopkg`, -`/usr/lib/libreoffice/program/unopkg`, `/usr/lib64/libreoffice/program/unopkg`) so the official -`.deb`/`.rpm` packages, which do **not** put `unopkg` on `PATH`, are detected too. If no native -`unopkg` is found it falls back to the Flatpak `flatpak run --command=` form. - -**Verified live** against LibreOffice 26.2.4.2 from the official TDF `.deb` packages on -Kali Linux (amd64), including a clean-PATH run where `command -v unopkg` returned nothing and -`/opt/libreoffice26.2/program/unopkg` was picked up by the fallback; the extension installed -and registered correctly. - -## Flatpak install (`org.libreoffice.LibreOffice`) - -Extension cache lives at -`~/.var/app/org.libreoffice.LibreOffice/config/libreoffice/4/user/uno_packages/`. No -`flatpak override` needed. - -## Status - -Verified live against LibreOffice 26.2.4.2 (Flatpak) through Noctalia's own real render pipeline, -`community_ids` + local `community-templates/libreoffice/`, both dark and light mode, confirmed -after a restart in each case. Native install path is implemented but not live-tested. diff --git a/.local/state/noctalia/community-templates/libreoffice/Theme_Colors.xcu b/.local/state/noctalia/community-templates/libreoffice/Theme_Colors.xcu deleted file mode 100644 index d5c3b22..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/Theme_Colors.xcu +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - {{colors.surface.default.hex_stripped}} - f7f7fa - 1a1a1a - cccccc - - {{colors.surface.default.hex_stripped}} - {{colors.on_surface.default.hex_stripped}} - {{colors.surface.default.hex_stripped}} - {{colors.surface_container_high.default.hex_stripped}} - {{colors.on_surface.default.hex_stripped}} - {{colors.primary.default.hex_stripped}} - {{colors.outline_variant.default.hex_stripped}} - {{colors.on_surface_variant.default.hex_stripped}} - 808080 - false - {{colors.outline_variant.default.hex_stripped}} - {{colors.surface_container.default.hex_stripped}} - {{colors.primary.default.hex_stripped}} - {{colors.on_primary.default.hex_stripped}} - {{colors.primary.default.hex_stripped}} - {{colors.surface_container_high.default.hex_stripped}} - {{colors.surface_container.default.hex_stripped}} - {{colors.on_surface.default.hex_stripped}} - {{colors.primary.default.hex_stripped}} - {{colors.on_primary.default.hex_stripped}} - {{colors.surface_container.default.hex_stripped}} - {{colors.on_surface.default.hex_stripped}} - {{colors.primary.default.hex_stripped}} - {{colors.on_primary.default.hex_stripped}} - {{colors.outline.default.hex_stripped}} - {{colors.surface_container.default.hex_stripped}} - {{colors.on_surface_variant.default.hex_stripped}} - {{colors.outline_variant.default.hex_stripped}} - - ffffff - d32f2f - 1a1a1a - 0b57d0 - d97706 - 444444 - 15803d - 6b7280 - - e8e8e8true - e8e8e8true - d9d9d9 - - - - diff --git a/.local/state/noctalia/community-templates/libreoffice/apply.sh b/.local/state/noctalia/community-templates/libreoffice/apply.sh deleted file mode 100755 index ee756c4..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/apply.sh +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/env bash -# Runs on every theme change (post_hook). Converts the rendered Theme_Colors.xcu's -# hex color values to the decimal integers LibreOffice's ColorScheme schema -# actually requires, assembles a fresh .oxt from this directory's static files -# plus the converted colors, and installs it via unopkg. -set -euo pipefail - -CONFIG_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -RENDERED="${XDG_STATE_HOME:-$HOME/.local/state}/noctalia/libreoffice-theme-staging/Theme_Colors.xcu" -BUILD_DIR="$CONFIG_DIR/build" -OXT_PATH="$BUILD_DIR/noctalia-theme.oxt" - -if [ ! -f "$RENDERED" ]; then - echo "noctalia libreoffice: rendered Theme_Colors.xcu not found at $RENDERED" >&2 - exit 1 -fi - -rm -rf "$BUILD_DIR/pkg" -mkdir -p "$BUILD_DIR/pkg/META-INF" - -# Convert every 6-hex-digit ... to its decimal equivalent. -# ColorScheme's schema stores colors as base-10 integers, not hex strings. -python3 - "$RENDERED" "$BUILD_DIR/pkg/Theme_Colors.xcu" << 'PYEOF' -import re -import sys - -src, dst = sys.argv[1], sys.argv[2] -with open(src) as f: - content = f.read() - - -def hex_to_dec(match): - return f"{int(match.group(1), 16)}" - - -converted = re.sub(r"([0-9a-fA-F]{6})", hex_to_dec, content) -with open(dst, "w") as f: - f.write(converted) -PYEOF - -cp "$CONFIG_DIR/Paths.xcu" "$BUILD_DIR/pkg/Paths.xcu" -cp "$CONFIG_DIR/description.xml" "$BUILD_DIR/pkg/description.xml" -cp "$CONFIG_DIR/pkg-description.en" "$BUILD_DIR/pkg/pkg-description.en" - -# Write the package manifest inline rather than copying it from the template directory. -# The template distribution pipeline only ships top-level files, so the -# META-INF/manifest.xml that used to live here was never delivered to users and -# the previous `cp` aborted under set -euo pipefail before the .oxt was built. -# The manifest is static and small, so generating it here keeps the template -# self-contained and removes the only subdirectory dependency. -cat > "$BUILD_DIR/pkg/META-INF/manifest.xml" <<'MANIFEST' - - - - - -MANIFEST - -rm -f "$OXT_PATH" -(cd "$BUILD_DIR/pkg" && zip -qr "$OXT_PATH" .) - -# unopkg add --force while LibreOffice is running has been confirmed live to -# silently corrupt the install (it can remove the old registration before -# failing to add the new one, leaving nothing installed at all). Skip the -# install step entirely rather than risk that -- the .oxt is still rebuilt -# above so the next run (once LibreOffice is closed) installs the current -# colors, and a restart is already required to see any change regardless. -if pgrep -x soffice.bin >/dev/null 2>&1; then - # The .oxt above is already rebuilt with the current colors, only the - # install step is skipped here. A restart alone does NOT pick up anything - # new, the previously-installed extension is still what's registered. - # Close LibreOffice, then re-run the theme apply (or wait for the next - # theme change) to actually install this build. - echo "noctalia libreoffice: LibreOffice is running, skipping extension install this run (installing while it's open has been confirmed to corrupt the existing install). Close LibreOffice, then re-apply the theme to actually install these colors, a restart alone will not pick them up." >&2 - exit 0 -fi - -EXT_ID="dev.noctalia.libreoffice.theme" -INSTALLED_ANY=0 - -# `add --force` alone has been confirmed live to leave the extension in a -# broken state (a stale cache index pointing at a deleted temp dir, `list` -# then reports nothing installed at all, and every later reinstall fails -# with "file opening ... NOT_EXISTING" until the cache is cleared by hand). -# Explicitly removing the old registration first, ignoring failure since it -# may not be installed yet, avoids relying on --force to do that atomically. - -# Install to every LibreOffice found, not just whichever `unopkg` a plain -# PATH lookup happens to resolve first. A machine with both a native -# LibreOffice (providing `unopkg` on PATH) and the Flatpak (the tested -# target) installed would otherwise only get themed on whichever one won -# that lookup, silently leaving the other one unthemed. -# -# Native detection here also covers the official TDF `.deb`/`.rpm` layout, -# which installs into /opt/libreoffice./ and does NOT place -# `unopkg` on PATH. `command -v unopkg` alone misses it, so fall back to the -# known install dirs before concluding there is no native install. -UNOPKG="$(command -v unopkg || true)" -if [ -z "$UNOPKG" ]; then - for candidate in /opt/libreoffice*/program/unopkg \ - /usr/lib/libreoffice/program/unopkg \ - /usr/lib64/libreoffice/program/unopkg; do - if [ -x "$candidate" ]; then - UNOPKG="$candidate" - break - fi - done -fi - -if [ -n "$UNOPKG" ]; then - "$UNOPKG" remove "$EXT_ID" >/dev/null 2>&1 || true - if "$UNOPKG" add --force "$OXT_PATH" 2>&1; then - INSTALLED_ANY=1 - else - echo "noctalia libreoffice: native unopkg install failed ($UNOPKG)" >&2 - fi -fi - -if flatpak info org.libreoffice.LibreOffice >/dev/null 2>&1; then - flatpak run --command=/app/libreoffice/program/unopkg org.libreoffice.LibreOffice remove "$EXT_ID" >/dev/null 2>&1 || true - if flatpak run --command=/app/libreoffice/program/unopkg org.libreoffice.LibreOffice add --force "$OXT_PATH" 2>&1; then - INSTALLED_ANY=1 - else - echo "noctalia libreoffice: Flatpak unopkg install failed" >&2 - fi -fi - -if [ "$INSTALLED_ANY" -eq 0 ]; then - echo "noctalia libreoffice: no LibreOffice installation found (neither native unopkg on PATH nor the org.libreoffice.LibreOffice Flatpak)" >&2 -fi diff --git a/.local/state/noctalia/community-templates/libreoffice/build/noctalia-theme.oxt b/.local/state/noctalia/community-templates/libreoffice/build/noctalia-theme.oxt deleted file mode 100644 index 014e55f..0000000 Binary files a/.local/state/noctalia/community-templates/libreoffice/build/noctalia-theme.oxt and /dev/null differ diff --git a/.local/state/noctalia/community-templates/libreoffice/build/pkg/META-INF/manifest.xml b/.local/state/noctalia/community-templates/libreoffice/build/pkg/META-INF/manifest.xml deleted file mode 100644 index ab0aa1f..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/build/pkg/META-INF/manifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/.local/state/noctalia/community-templates/libreoffice/build/pkg/Paths.xcu b/.local/state/noctalia/community-templates/libreoffice/build/pkg/Paths.xcu deleted file mode 100644 index e271283..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/build/pkg/Paths.xcu +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/.local/state/noctalia/community-templates/libreoffice/build/pkg/Theme_Colors.xcu b/.local/state/noctalia/community-templates/libreoffice/build/pkg/Theme_Colors.xcu deleted file mode 100644 index 4932909..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/build/pkg/Theme_Colors.xcu +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - 1250068 - 16250874 - 1710618 - 13421772 - - 1250068 - 15000290 - 1250068 - 2763306 - 15000290 - 12568530 - 4474699 - 12961483 - 8421504 - false - 4474699 - 2039584 - 12568530 - 2699577 - 12568530 - 2763306 - 2039584 - 15000290 - 12568530 - 2699577 - 2039584 - 15000290 - 12568530 - 2699577 - 9343381 - 2039584 - 12961483 - 4474699 - - 16777215 - 13840175 - 1710618 - 743376 - 14251782 - 4473924 - 1409085 - 7041664 - - 15263976true - 15263976true - 14277081 - - - - diff --git a/.local/state/noctalia/community-templates/libreoffice/build/pkg/description.xml b/.local/state/noctalia/community-templates/libreoffice/build/pkg/description.xml deleted file mode 100644 index a23f428..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/build/pkg/description.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - Noctalia - - - Noctalia Theme - - - - - diff --git a/.local/state/noctalia/community-templates/libreoffice/build/pkg/pkg-description.en b/.local/state/noctalia/community-templates/libreoffice/build/pkg/pkg-description.en deleted file mode 100644 index 32e00f3..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/build/pkg/pkg-description.en +++ /dev/null @@ -1,2 +0,0 @@ -Colors LibreOffice's application chrome (menus, toolbars, buttons, dialogs) to match the active -Noctalia palette. Installed and kept in sync automatically by Noctalia's own template pipeline. diff --git a/.local/state/noctalia/community-templates/libreoffice/description.xml b/.local/state/noctalia/community-templates/libreoffice/description.xml deleted file mode 100644 index a23f428..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/description.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - Noctalia - - - Noctalia Theme - - - - - diff --git a/.local/state/noctalia/community-templates/libreoffice/light-screenshot.png b/.local/state/noctalia/community-templates/libreoffice/light-screenshot.png deleted file mode 100644 index 36d8684..0000000 Binary files a/.local/state/noctalia/community-templates/libreoffice/light-screenshot.png and /dev/null differ diff --git a/.local/state/noctalia/community-templates/libreoffice/pkg-description.en b/.local/state/noctalia/community-templates/libreoffice/pkg-description.en deleted file mode 100644 index 32e00f3..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/pkg-description.en +++ /dev/null @@ -1,2 +0,0 @@ -Colors LibreOffice's application chrome (menus, toolbars, buttons, dialogs) to match the active -Noctalia palette. Installed and kept in sync automatically by Noctalia's own template pipeline. diff --git a/.local/state/noctalia/community-templates/libreoffice/screenshot.png b/.local/state/noctalia/community-templates/libreoffice/screenshot.png deleted file mode 100644 index 751a12c..0000000 Binary files a/.local/state/noctalia/community-templates/libreoffice/screenshot.png and /dev/null differ diff --git a/.local/state/noctalia/community-templates/libreoffice/template.toml b/.local/state/noctalia/community-templates/libreoffice/template.toml deleted file mode 100644 index 557b9f7..0000000 --- a/.local/state/noctalia/community-templates/libreoffice/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.libreoffice] -name = "LibreOffice" -category = "editor" - -[templates.libreoffice] -input_path = "Theme_Colors.xcu" -output_path = "$XDG_STATE_HOME/noctalia/libreoffice-theme-staging/Theme_Colors.xcu" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/lsd/.noctalia-cache.json b/.local/state/noctalia/community-templates/lsd/.noctalia-cache.json deleted file mode 100644 index f0a90cc..0000000 --- a/.local/state/noctalia/community-templates/lsd/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "73d384d321a6f561082a439d8ef474ab" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/lsd/template.toml b/.local/state/noctalia/community-templates/lsd/template.toml deleted file mode 100644 index c0cda30..0000000 --- a/.local/state/noctalia/community-templates/lsd/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.lsd] -name = "lsd" -category = "terminal" - -[templates.lsd] -input_path = "colors.yaml" -output_path = "$XDG_CONFIG_HOME/lsd/colors.yaml" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/mailspring/.noctalia-cache.json b/.local/state/noctalia/community-templates/mailspring/.noctalia-cache.json deleted file mode 100644 index e6a2a66..0000000 --- a/.local/state/noctalia/community-templates/mailspring/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "56895211cebec2e1e698ed643c63c3df" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/mailspring/template.toml b/.local/state/noctalia/community-templates/mailspring/template.toml deleted file mode 100644 index 50ddca9..0000000 --- a/.local/state/noctalia/community-templates/mailspring/template.toml +++ /dev/null @@ -1,26 +0,0 @@ -[catalog.mailspring] -name = "Mailspring" -category = "misc" - -# A Mailspring theme is a package directory: package.json plus styles/ui-variables.less. -# Both files are rendered straight into the package, so no hook is needed; the theme is -# selected once in Mailspring's Preferences -> Appearance. -[templates.mailspring_package] -input_path = "package.json" -output_path = "$XDG_CONFIG_HOME/Mailspring/packages/noctalia/package.json" -requires_path = "~/.config/Mailspring" - -[templates.mailspring_variables] -input_path = "ui-variables.less" -output_path = "$XDG_CONFIG_HOME/Mailspring/packages/noctalia/styles/ui-variables.less" -requires_path = "~/.config/Mailspring" - -[templates.mailspring_package_flatpak] -input_path = "package.json" -output_path = "~/.var/app/com.getmailspring.Mailspring/config/Mailspring/packages/noctalia/package.json" -requires_path = "~/.var/app/com.getmailspring.Mailspring" - -[templates.mailspring_variables_flatpak] -input_path = "ui-variables.less" -output_path = "~/.var/app/com.getmailspring.Mailspring/config/Mailspring/packages/noctalia/styles/ui-variables.less" -requires_path = "~/.var/app/com.getmailspring.Mailspring" diff --git a/.local/state/noctalia/community-templates/micro/.noctalia-cache.json b/.local/state/noctalia/community-templates/micro/.noctalia-cache.json deleted file mode 100644 index 1252a1c..0000000 --- a/.local/state/noctalia/community-templates/micro/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "591537b12893aa852bb4eece1c461650" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/micro/template.toml b/.local/state/noctalia/community-templates/micro/template.toml deleted file mode 100644 index aa66dcb..0000000 --- a/.local/state/noctalia/community-templates/micro/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.micro] -name = "micro" -category = "editor" - -[templates.micro] -input_path = "noctalia.micro" -output_path = "$XDG_CONFIG_HOME/micro/colorschemes/noctalia.micro" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/musescore/.noctalia-cache.json b/.local/state/noctalia/community-templates/musescore/.noctalia-cache.json deleted file mode 100644 index 02798ea..0000000 --- a/.local/state/noctalia/community-templates/musescore/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "d5960c96cc4e23dec0ac16f31a77a901" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/musescore/template.toml b/.local/state/noctalia/community-templates/musescore/template.toml deleted file mode 100644 index ad028af..0000000 --- a/.local/state/noctalia/community-templates/musescore/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.musescore] -name = "MuseScore4" -category = "editor" - -[templates.musescore] -input_path = "MuseScore4.ini" -output_path = "$XDG_CONFIG_HOME/MuseScore/noctalia.ini" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/nchat/.noctalia-cache.json b/.local/state/noctalia/community-templates/nchat/.noctalia-cache.json deleted file mode 100644 index 0d57956..0000000 --- a/.local/state/noctalia/community-templates/nchat/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "7317b6c3897240dafd6b4f2783d8ca58" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/nchat/template.toml b/.local/state/noctalia/community-templates/nchat/template.toml deleted file mode 100644 index 77996af..0000000 --- a/.local/state/noctalia/community-templates/nchat/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.nchat] -name = "nchat" -category = "chat" - -[templates.nchat] -input_path = "color.conf" -output_path = "$XDG_CONFIG_HOME/nchat/color.conf" diff --git a/.local/state/noctalia/community-templates/neovim/.noctalia-cache.json b/.local/state/noctalia/community-templates/neovim/.noctalia-cache.json deleted file mode 100644 index 35b953a..0000000 --- a/.local/state/noctalia/community-templates/neovim/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "61de73202597fbb61e2b91b8e93dbf3f" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/neovim/template.toml b/.local/state/noctalia/community-templates/neovim/template.toml deleted file mode 100644 index 2b4e6c0..0000000 --- a/.local/state/noctalia/community-templates/neovim/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.neovim] -name = "Neovim" -category = "editor" - -[templates.nvim-base16] -input_path = "matugen-template.lua" -output_path = "$XDG_CONFIG_HOME/nvim/lua/matugen.lua" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/obs/.noctalia-cache.json b/.local/state/noctalia/community-templates/obs/.noctalia-cache.json deleted file mode 100644 index da38437..0000000 --- a/.local/state/noctalia/community-templates/obs/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "ee493f5df7039a01ce3b55f494e18ec0" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/obs/template.toml b/.local/state/noctalia/community-templates/obs/template.toml deleted file mode 100644 index 4191022..0000000 --- a/.local/state/noctalia/community-templates/obs/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.obs] -name = "OBS" -category = "misc" - -[templates.obs] -input_path = 'matugen.obt' -output_path = '$XDG_CONFIG_HOME/obs-studio/themes/matugen.obt' diff --git a/.local/state/noctalia/community-templates/obsidian/.noctalia-cache.json b/.local/state/noctalia/community-templates/obsidian/.noctalia-cache.json deleted file mode 100644 index e756aba..0000000 --- a/.local/state/noctalia/community-templates/obsidian/.noctalia-cache.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "files": { - "README.md": "d2019dea2880c57b792e54cd1c72ff4e", - "apply.sh": "eb7d60658e8fa4543c6aef0c6e04dd46", - "obsidian.css": "954948473c66774481e1571a3554d1aa", - "template.toml": "036ac6fef7ee94e7699ae12579ec7fff" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/obsidian/README.md b/.local/state/noctalia/community-templates/obsidian/README.md deleted file mode 100644 index d604edf..0000000 --- a/.local/state/noctalia/community-templates/obsidian/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Obsidian — Noctalia Community Template - -Applies noctalia's generated color palette to [Obsidian](https://obsidian.md) as a CSS snippet. -Both dark and light mode variants are generated, and Obsidian will use whichever matches its -current appearance setting. - -## How it works - -This template renders a CSS snippet (`noctalia.css`) into each discovered Obsidian vault's -`snippets/` directory. The snippet overrides Obsidian's CSS custom properties to match -noctalia's active palette — backgrounds, text, accents, headings, links, tags, graph view, -and more. - -The apply script automatically enables the snippet in each vault's `appearance.json`. - -## Vault discovery - -The apply script searches `$HOME` (up to 4 directories deep) for `.obsidian/` folders. -If your vault lives deeper or on an external drive, you can add a user template override -in your noctalia config with an explicit `output_path`: - -```toml -[theme.templates.user.obsidian_extra] -input_path = "obsidian/obsidian.css" -output_path = "/mnt/data/MyVault/.obsidian/snippets/noctalia.css" -``` - -## Requirements - -- Obsidian (any recent version with CSS snippet support) -- `python3` (for enabling the snippet in `appearance.json`) - -## Setup - -1. Enable **Obsidian** in **Noctalia Settings -> Templates**. -2. In Obsidian, open **Settings → Appearance** and set **Base color scheme** to **Adapt to system**, so the - dark or light variant follows Noctalia's mode. -3. Check that the `noctalia` snippet is on under **Settings → Appearance → CSS Snippets**. - -## Notes - -- The snippet layers on top of any installed Obsidian theme — it overrides color - variables without removing your base theme. -- Obsidian hot-reloads CSS snippets from disk on most platforms. If colors don't - update after a wallpaper change, toggle the snippet off/on in - Settings → Appearance → CSS Snippets. diff --git a/.local/state/noctalia/community-templates/obsidian/apply.sh b/.local/state/noctalia/community-templates/obsidian/apply.sh deleted file mode 100755 index 0294bdf..0000000 --- a/.local/state/noctalia/community-templates/obsidian/apply.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/bash -set -euo pipefail - -# Discover Obsidian vaults by finding .obsidian directories. -# Creates the snippets/ folder if it doesn't exist and enables the snippet -# in each vault's appearance.json. - -snippet_name="noctalia" - -find_vaults() { - # Search common locations for Obsidian vaults (up to 4 levels deep) - local search_dirs=("$HOME") - for dir in "${search_dirs[@]}"; do - find "$dir" -maxdepth 4 -name ".obsidian" -type d 2>/dev/null || true - done | sort -u -} - -case "${1:-}" in - output) - # Called by noctalia to determine output paths. - # Print one path per line for each discovered vault. - find_vaults | while read -r obsidian_dir; do - snippets_dir="$obsidian_dir/snippets" - mkdir -p "$snippets_dir" - echo "$snippets_dir/$snippet_name.css" - done - ;; - apply) - # Called after rendering. Enable the snippet in each vault's appearance.json. - find_vaults | while read -r obsidian_dir; do - appearance_file="$obsidian_dir/appearance.json" - - if [ ! -f "$appearance_file" ]; then - printf '{\n "enabledCssSnippets": ["%s"]\n}\n' "$snippet_name" > "$appearance_file" - continue - fi - - # Add noctalia to enabledCssSnippets if not already present - python3 -c " -import json, sys - -with open('$appearance_file') as f: - data = json.load(f) - -snippets = data.get('enabledCssSnippets', []) -if '$snippet_name' not in snippets: - snippets.append('$snippet_name') - data['enabledCssSnippets'] = snippets - with open('$appearance_file', 'w') as f: - json.dump(data, f, indent=2) - f.write('\n') -" 2>/dev/null || true - done - ;; - *) - echo "Usage: $0 {output|apply}" >&2 - exit 1 - ;; -esac diff --git a/.local/state/noctalia/community-templates/obsidian/obsidian.css b/.local/state/noctalia/community-templates/obsidian/obsidian.css deleted file mode 100644 index 5a3760f..0000000 --- a/.local/state/noctalia/community-templates/obsidian/obsidian.css +++ /dev/null @@ -1,297 +0,0 @@ -/* Obsidian theme snippet generated by noctalia */ - -.theme-dark { - /* Background layers */ - --background-primary: {{colors.surface.default.hex}}; - --background-primary-alt: {{colors.surface_container_low.default.hex}}; - --background-secondary: {{colors.surface_container.default.hex}}; - --background-secondary-alt: {{colors.surface_container_high.default.hex}}; - --background-modifier-border: {{colors.outline_variant.default.hex}}; - --background-modifier-form-field: {{colors.surface_container_lowest.default.hex}}; - --background-modifier-form-field-highlighted: {{colors.surface_container_low.default.hex}}; - --background-modifier-box-shadow: {{colors.shadow.default.hex}}; - --background-modifier-success: {{colors.primary.default.rgba | set_alpha 0.15}}; - --background-modifier-error: {{colors.error.default.rgba | set_alpha 0.15}}; - --background-modifier-error-rgb: {{colors.error.default.rgb_csv}}; - --background-modifier-error-hover: {{colors.error.default.rgba | set_alpha 0.25}}; - --background-modifier-cover: {{colors.shadow.default.rgba | set_alpha 0.6}}; - - /* Text colors */ - --text-normal: {{colors.on_surface.default.hex}}; - --text-muted: {{colors.on_surface_variant.default.hex}}; - --text-faint: {{colors.outline.default.hex}}; - --text-on-accent: {{colors.on_primary.default.hex}}; - --text-on-accent-inverted: {{colors.primary.default.hex}}; - --text-error: {{colors.error.default.hex}}; - --text-success: {{colors.primary.default.hex}}; - --text-selection: {{colors.primary.default.rgba | set_alpha 0.2}}; - --text-accent: {{colors.primary.default.hex}}; - --text-highlight-bg: {{colors.tertiary.default.rgba | set_alpha 0.25}}; - - /* Interactive accent */ - --interactive-normal: {{colors.surface_container.default.hex}}; - --interactive-hover: {{colors.surface_container_high.default.hex}}; - --interactive-accent: {{colors.primary.default.hex}}; - --interactive-accent-hover: {{colors.primary.default.hex | lighten 1}}; - --interactive-accent-rgb: {{colors.primary.default.rgb_csv}}; - --interactive-success: {{colors.primary.default.hex}}; - - /* Scrollbar */ - --scrollbar-bg: {{colors.surface.default.hex}}; - --scrollbar-thumb-bg: {{colors.outline_variant.default.rgba | set_alpha 0.3}}; - --scrollbar-active-thumb-bg: {{colors.outline.default.rgba | set_alpha 0.5}}; - - /* Tab styling */ - --tab-text-color: {{colors.on_surface_variant.default.hex}}; - --tab-text-color-focused: {{colors.on_surface.default.hex}}; - --tab-text-color-focused-active: {{colors.primary.default.hex}}; - --tab-background-active: {{colors.surface.default.hex}}; - --tab-divider-color: {{colors.outline_variant.default.hex}}; - - /* Navigation */ - --nav-item-color: {{colors.on_surface_variant.default.hex}}; - --nav-item-color-hover: {{colors.on_surface.default.hex}}; - --nav-item-color-active: {{colors.on_primary.default.hex}}; - --nav-item-background-hover: {{colors.surface_container_high.default.hex}}; - --nav-item-background-active: {{colors.primary.default.rgba | set_alpha 0.12}}; - --nav-collapse-icon-color: {{colors.outline.default.hex}}; - - /* Titlebar */ - --titlebar-background: {{colors.surface_container.default.hex}}; - --titlebar-background-focused: {{colors.surface_container.default.hex}}; - --titlebar-text-color: {{colors.on_surface.default.hex}}; - --titlebar-text-color-focused: {{colors.on_surface.default.hex}}; - - /* Tags */ - --tag-color: {{colors.secondary.default.hex}}; - --tag-background: {{colors.secondary.default.rgba | set_alpha 0.12}}; - --tag-color-hover: {{colors.secondary.default.hex | lighten 1}}; - --tag-background-hover: {{colors.secondary.default.rgba | set_alpha 0.2}}; - - /* Headings */ - --h1-color: {{colors.primary.default.hex}}; - --h2-color: {{colors.primary.default.hex | darken 1}}; - --h3-color: {{colors.secondary.default.hex}}; - --h4-color: {{colors.secondary.default.hex | darken 1}}; - --h5-color: {{colors.tertiary.default.hex}}; - --h6-color: {{colors.tertiary.default.hex | darken 1}}; - - /* Links */ - --link-color: {{colors.primary.default.hex}}; - --link-color-hover: {{colors.primary.default.hex | lighten 1}}; - --link-decoration-color: {{colors.primary.default.rgba | set_alpha 0.4}}; - --link-external-color: {{colors.tertiary.default.hex}}; - --link-external-color-hover: {{colors.tertiary.default.hex | lighten 1}}; - --link-unresolved-color: {{colors.error.default.rgba | set_alpha 0.7}}; - - /* Code */ - --code-normal: {{colors.secondary.default.hex}}; - --code-background: {{colors.surface_container_highest.default.hex}}; - --code-comment: {{colors.outline.default.hex}}; - - /* Blockquotes */ - --blockquote-border-color: {{colors.primary.default.rgba | set_alpha 0.5}}; - - /* Checkbox */ - --checkbox-color: {{colors.primary.default.hex}}; - --checkbox-color-hover: {{colors.primary.default.hex | lighten 1}}; - --checkbox-border-color: {{colors.outline.default.hex}}; - - /* Graph view */ - --graph-line: {{colors.outline_variant.default.rgba | set_alpha 0.4}}; - --graph-node: {{colors.primary.default.hex}}; - --graph-node-focused: {{colors.tertiary.default.hex}}; - --graph-node-tag: {{colors.secondary.default.hex}}; - --graph-node-attachment: {{colors.tertiary.default.hex}}; - - /* Vault name */ - --vault-name-color: {{colors.on_surface.default.hex}}; - - /* Indentation guide */ - --indentation-guide-color: {{colors.outline_variant.default.rgba | set_alpha 0.3}}; - --indentation-guide-color-active: {{colors.outline_variant.default.rgba | set_alpha 0.6}}; - - /* Obsidian 1.0+ variables */ - --color-accent: {{colors.primary.default.hex}}; - --color-accent-1: {{colors.primary.default.rgba | set_alpha 0.12}}; - --color-accent-2: {{colors.primary.default.rgba | set_alpha 0.25}}; - - /* Icon colors */ - --icon-color: {{colors.on_surface_variant.default.hex}}; - --icon-color-hover: {{colors.on_surface.default.hex}}; - --icon-color-active: {{colors.primary.default.hex}}; - --icon-color-focused: {{colors.primary.default.hex}}; - - /* Divider */ - --divider-color: {{colors.outline_variant.default.hex}}; - --divider-color-hover: {{colors.outline.default.hex}}; - - /* Status bar */ - --status-bar-background: {{colors.surface_container.default.hex}}; - --status-bar-text-color: {{colors.on_surface_variant.default.hex}}; - - /* Modal */ - --modal-background: {{colors.surface_container.default.hex}}; - --modal-border-color: {{colors.outline_variant.default.hex}}; - - /* Prompt / suggestion */ - --prompt-border-color: {{colors.outline_variant.default.hex}}; - - /* Inline title */ - --inline-title-color: {{colors.on_surface.default.hex}}; - - /* Bold / italic */ - --bold-color: {{colors.on_surface.default.hex}}; - --italic-color: {{colors.on_surface.default.hex}}; - - /* List markers */ - --list-marker-color: {{colors.primary.default.rgba | set_alpha 0.7}}; -} - -.theme-light { - /* Background layers */ - --background-primary: {{colors.surface.light.hex}}; - --background-primary-alt: {{colors.surface_container_low.light.hex}}; - --background-secondary: {{colors.surface_container.light.hex}}; - --background-secondary-alt: {{colors.surface_container_high.light.hex}}; - --background-modifier-border: {{colors.outline_variant.light.hex}}; - --background-modifier-form-field: {{colors.surface_container_lowest.light.hex}}; - --background-modifier-form-field-highlighted: {{colors.surface_container_low.light.hex}}; - --background-modifier-box-shadow: {{colors.shadow.light.hex}}; - --background-modifier-success: {{colors.primary.light.rgba | set_alpha 0.1}}; - --background-modifier-error: {{colors.error.light.rgba | set_alpha 0.1}}; - --background-modifier-error-rgb: {{colors.error.light.rgb_csv}}; - --background-modifier-error-hover: {{colors.error.light.rgba | set_alpha 0.2}}; - --background-modifier-cover: {{colors.shadow.light.rgba | set_alpha 0.4}}; - - /* Text colors */ - --text-normal: {{colors.on_surface.light.hex}}; - --text-muted: {{colors.on_surface_variant.light.hex}}; - --text-faint: {{colors.outline.light.hex}}; - --text-on-accent: {{colors.on_primary.light.hex}}; - --text-on-accent-inverted: {{colors.primary.light.hex}}; - --text-error: {{colors.error.light.hex}}; - --text-success: {{colors.primary.light.hex}}; - --text-selection: {{colors.primary.light.rgba | set_alpha 0.15}}; - --text-accent: {{colors.primary.light.hex}}; - --text-highlight-bg: {{colors.tertiary.light.rgba | set_alpha 0.2}}; - - /* Interactive accent */ - --interactive-normal: {{colors.surface_container.light.hex}}; - --interactive-hover: {{colors.surface_container_high.light.hex}}; - --interactive-accent: {{colors.primary.light.hex}}; - --interactive-accent-hover: {{colors.primary.light.hex | darken 1}}; - --interactive-accent-rgb: {{colors.primary.light.rgb_csv}}; - --interactive-success: {{colors.primary.light.hex}}; - - /* Scrollbar */ - --scrollbar-bg: {{colors.surface.light.hex}}; - --scrollbar-thumb-bg: {{colors.outline_variant.light.rgba | set_alpha 0.3}}; - --scrollbar-active-thumb-bg: {{colors.outline.light.rgba | set_alpha 0.5}}; - - /* Tab styling */ - --tab-text-color: {{colors.on_surface_variant.light.hex}}; - --tab-text-color-focused: {{colors.on_surface.light.hex}}; - --tab-text-color-focused-active: {{colors.primary.light.hex}}; - --tab-background-active: {{colors.surface.light.hex}}; - --tab-divider-color: {{colors.outline_variant.light.hex}}; - - /* Navigation */ - --nav-item-color: {{colors.on_surface_variant.light.hex}}; - --nav-item-color-hover: {{colors.on_surface.light.hex}}; - --nav-item-color-active: {{colors.on_primary.light.hex}}; - --nav-item-background-hover: {{colors.surface_container_high.light.hex}}; - --nav-item-background-active: {{colors.primary.light.rgba | set_alpha 0.1}}; - --nav-collapse-icon-color: {{colors.outline.light.hex}}; - - /* Titlebar */ - --titlebar-background: {{colors.surface_container.light.hex}}; - --titlebar-background-focused: {{colors.surface_container.light.hex}}; - --titlebar-text-color: {{colors.on_surface.light.hex}}; - --titlebar-text-color-focused: {{colors.on_surface.light.hex}}; - - /* Tags */ - --tag-color: {{colors.secondary.light.hex}}; - --tag-background: {{colors.secondary.light.rgba | set_alpha 0.1}}; - --tag-color-hover: {{colors.secondary.light.hex | darken 1}}; - --tag-background-hover: {{colors.secondary.light.rgba | set_alpha 0.18}}; - - /* Headings */ - --h1-color: {{colors.primary.light.hex}}; - --h2-color: {{colors.primary.light.hex | lighten 1}}; - --h3-color: {{colors.secondary.light.hex}}; - --h4-color: {{colors.secondary.light.hex | lighten 1}}; - --h5-color: {{colors.tertiary.light.hex}}; - --h6-color: {{colors.tertiary.light.hex | lighten 1}}; - - /* Links */ - --link-color: {{colors.primary.light.hex}}; - --link-color-hover: {{colors.primary.light.hex | darken 1}}; - --link-decoration-color: {{colors.primary.light.rgba | set_alpha 0.4}}; - --link-external-color: {{colors.tertiary.light.hex}}; - --link-external-color-hover: {{colors.tertiary.light.hex | darken 1}}; - --link-unresolved-color: {{colors.error.light.rgba | set_alpha 0.7}}; - - /* Code */ - --code-normal: {{colors.secondary.light.hex}}; - --code-background: {{colors.surface_container_highest.light.hex}}; - --code-comment: {{colors.outline.light.hex}}; - - /* Blockquotes */ - --blockquote-border-color: {{colors.primary.light.rgba | set_alpha 0.5}}; - - /* Checkbox */ - --checkbox-color: {{colors.primary.light.hex}}; - --checkbox-color-hover: {{colors.primary.light.hex | darken 1}}; - --checkbox-border-color: {{colors.outline.light.hex}}; - - /* Graph view */ - --graph-line: {{colors.outline_variant.light.rgba | set_alpha 0.4}}; - --graph-node: {{colors.primary.light.hex}}; - --graph-node-focused: {{colors.tertiary.light.hex}}; - --graph-node-tag: {{colors.secondary.light.hex}}; - --graph-node-attachment: {{colors.tertiary.light.hex}}; - - /* Vault name */ - --vault-name-color: {{colors.on_surface.light.hex}}; - - /* Indentation guide */ - --indentation-guide-color: {{colors.outline_variant.light.rgba | set_alpha 0.3}}; - --indentation-guide-color-active: {{colors.outline_variant.light.rgba | set_alpha 0.6}}; - - /* Obsidian 1.0+ variables */ - --color-accent: {{colors.primary.light.hex}}; - --color-accent-1: {{colors.primary.light.rgba | set_alpha 0.1}}; - --color-accent-2: {{colors.primary.light.rgba | set_alpha 0.2}}; - - /* Icon colors */ - --icon-color: {{colors.on_surface_variant.light.hex}}; - --icon-color-hover: {{colors.on_surface.light.hex}}; - --icon-color-active: {{colors.primary.light.hex}}; - --icon-color-focused: {{colors.primary.light.hex}}; - - /* Divider */ - --divider-color: {{colors.outline_variant.light.hex}}; - --divider-color-hover: {{colors.outline.light.hex}}; - - /* Status bar */ - --status-bar-background: {{colors.surface_container.light.hex}}; - --status-bar-text-color: {{colors.on_surface_variant.light.hex}}; - - /* Modal */ - --modal-background: {{colors.surface_container.light.hex}}; - --modal-border-color: {{colors.outline_variant.light.hex}}; - - /* Prompt / suggestion */ - --prompt-border-color: {{colors.outline_variant.light.hex}}; - - /* Inline title */ - --inline-title-color: {{colors.on_surface.light.hex}}; - - /* Bold / italic */ - --bold-color: {{colors.on_surface.light.hex}}; - --italic-color: {{colors.on_surface.light.hex}}; - - /* List markers */ - --list-marker-color: {{colors.primary.light.rgba | set_alpha 0.7}}; -} diff --git a/.local/state/noctalia/community-templates/obsidian/template.toml b/.local/state/noctalia/community-templates/obsidian/template.toml deleted file mode 100644 index 829b38e..0000000 --- a/.local/state/noctalia/community-templates/obsidian/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.obsidian] -name = "Obsidian" -category = "editor" - -[templates.obsidian] -input_path = "obsidian.css" -output_path_dynamic = "bash '{{ config_dir }}/apply.sh' output" -post_hook = "bash '{{ config_dir }}/apply.sh' apply" diff --git a/.local/state/noctalia/community-templates/oh-my-posh/.noctalia-cache.json b/.local/state/noctalia/community-templates/oh-my-posh/.noctalia-cache.json deleted file mode 100644 index e041e24..0000000 --- a/.local/state/noctalia/community-templates/oh-my-posh/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "2032c2337a44eb2327242097644becb4" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/oh-my-posh/template.toml b/.local/state/noctalia/community-templates/oh-my-posh/template.toml deleted file mode 100644 index d0a9577..0000000 --- a/.local/state/noctalia/community-templates/oh-my-posh/template.toml +++ /dev/null @@ -1,9 +0,0 @@ -[catalog.oh-my-posh] -name = "Oh My Posh" -category = "terminal" - -[templates.oh-my-posh] -input_path = "palette.json" -output_path = "$XDG_CONFIG_HOME/oh-my-posh/noctalia-palette.json" -post_hook = "python3 '{{ config_dir }}/apply.py' apply" -hook_async = false diff --git a/.local/state/noctalia/community-templates/opencode/.noctalia-cache.json b/.local/state/noctalia/community-templates/opencode/.noctalia-cache.json deleted file mode 100644 index b5733cc..0000000 --- a/.local/state/noctalia/community-templates/opencode/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "85ff47f596cfafc1cb547d9c5b96475f" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/opencode/template.toml b/.local/state/noctalia/community-templates/opencode/template.toml deleted file mode 100644 index 8d68285..0000000 --- a/.local/state/noctalia/community-templates/opencode/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.opencode] -name = "Opencode" -category = "ai" - -[templates.opencode] -input_path = 'opencode.json' -output_path = '$XDG_CONFIG_HOME/opencode/themes/matugen.json' diff --git a/.local/state/noctalia/community-templates/pandora-launcher/.noctalia-cache.json b/.local/state/noctalia/community-templates/pandora-launcher/.noctalia-cache.json deleted file mode 100644 index 9b7ff6b..0000000 --- a/.local/state/noctalia/community-templates/pandora-launcher/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "0ae60fdee3ef7cb76c83038b61d4f597" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/pandora-launcher/template.toml b/.local/state/noctalia/community-templates/pandora-launcher/template.toml deleted file mode 100644 index 354d772..0000000 --- a/.local/state/noctalia/community-templates/pandora-launcher/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.pandora-launcher] -name = "Pandora Launcher" -category = "gaming" - -[templates.pandora-launcher] -input_path = "pandora-launcher.json" -output_path = "$XDG_DATA_HOME/PandoraLauncher/themes/noctalia.json" diff --git a/.local/state/noctalia/community-templates/papirus-icons/.noctalia-cache.json b/.local/state/noctalia/community-templates/papirus-icons/.noctalia-cache.json deleted file mode 100644 index f8d958a..0000000 --- a/.local/state/noctalia/community-templates/papirus-icons/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "5d3d732600d5801a84f3c103d7ca2591" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/papirus-icons/template.toml b/.local/state/noctalia/community-templates/papirus-icons/template.toml deleted file mode 100644 index 1f49511..0000000 --- a/.local/state/noctalia/community-templates/papirus-icons/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.papirus-icons] -name = "Papirus Icon Theme" -category = "system" - -[templates.papirus_icons] -input_path = "colors" -output_path = "colors-final" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/pear-desktop/.noctalia-cache.json b/.local/state/noctalia/community-templates/pear-desktop/.noctalia-cache.json deleted file mode 100644 index d358974..0000000 --- a/.local/state/noctalia/community-templates/pear-desktop/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "53b4cb172f91e447b2ff34fecd195066" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/pear-desktop/template.toml b/.local/state/noctalia/community-templates/pear-desktop/template.toml deleted file mode 100644 index ce1e4b4..0000000 --- a/.local/state/noctalia/community-templates/pear-desktop/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.pear-desktop] -name = "Pear Desktop" -category = "audio" - -[templates.pear-desktop] -input_path = "pearColors.css" -output_path = "$XDG_CONFIG_HOME/YouTube Music/noctalia.css" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/pi-agent/.noctalia-cache.json b/.local/state/noctalia/community-templates/pi-agent/.noctalia-cache.json deleted file mode 100644 index 9727309..0000000 --- a/.local/state/noctalia/community-templates/pi-agent/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "85a4dddbd6e94c5f3f4191324f29f3b9" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/pi-agent/template.toml b/.local/state/noctalia/community-templates/pi-agent/template.toml deleted file mode 100644 index 05a56e8..0000000 --- a/.local/state/noctalia/community-templates/pi-agent/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.pi-agent] -name = "Pi Agent" -category = "ai" - -[templates.pi-agent] -input_path = "pi-theme.json" -output_path = "~/.pi/agent/themes/noctalia.json" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/prismlauncher/.noctalia-cache.json b/.local/state/noctalia/community-templates/prismlauncher/.noctalia-cache.json deleted file mode 100644 index 34d89a8..0000000 --- a/.local/state/noctalia/community-templates/prismlauncher/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "135e604b7c3456c08797b8902bfdf2ec" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/prismlauncher/template.toml b/.local/state/noctalia/community-templates/prismlauncher/template.toml deleted file mode 100644 index 424634a..0000000 --- a/.local/state/noctalia/community-templates/prismlauncher/template.toml +++ /dev/null @@ -1,11 +0,0 @@ -[catalog.prismlauncher] -name = "Prism Launcher" -category = "gaming" - -[templates.prismlauncher] -input_path = 'prismlauncher.json' -output_path = '$XDG_DATA_HOME/PrismLauncher/themes/Matugen/theme.json' - -[templates.prismlauncher_flatpak] -input_path = 'prismlauncher.json' -output_path = '~/.var/app/org.prismlauncher.PrismLauncher/data/PrismLauncher/themes/Matugen/theme.json' diff --git a/.local/state/noctalia/community-templates/pywalfox/.noctalia-cache.json b/.local/state/noctalia/community-templates/pywalfox/.noctalia-cache.json deleted file mode 100644 index 2ddcf14..0000000 --- a/.local/state/noctalia/community-templates/pywalfox/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "91c62b8f3f25ca84446be056f955aad8" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/pywalfox/template.toml b/.local/state/noctalia/community-templates/pywalfox/template.toml deleted file mode 100644 index 3e349b9..0000000 --- a/.local/state/noctalia/community-templates/pywalfox/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.pywalfox] -name = "Pywalfox" -category = "browser" - -[templates.pywalfox] -input_path = "pywalfox.json" -output_path = "$XDG_CACHE_HOME/wal/colors.json" -post_action = "firefox-theme" diff --git a/.local/state/noctalia/community-templates/qutebrowser/.noctalia-cache.json b/.local/state/noctalia/community-templates/qutebrowser/.noctalia-cache.json deleted file mode 100644 index ab3a46f..0000000 --- a/.local/state/noctalia/community-templates/qutebrowser/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "f12e7a13cd7ae0aa014338f903c6cd5f" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/qutebrowser/template.toml b/.local/state/noctalia/community-templates/qutebrowser/template.toml deleted file mode 100644 index e392c3e..0000000 --- a/.local/state/noctalia/community-templates/qutebrowser/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.qutebrowser] -name = "qutebrowser" -category = "browser" - -[templates.qutebrowser] -input_path = "template.py" -output_path = "$XDG_CONFIG_HOME/qutebrowser/noctalia/colors.py" -post_hook = "sh \"${XDG_STATE_HOME:-$HOME/.local/state}/noctalia/community-templates/qutebrowser/reload.sh\"" diff --git a/.local/state/noctalia/community-templates/ratune/.noctalia-cache.json b/.local/state/noctalia/community-templates/ratune/.noctalia-cache.json deleted file mode 100644 index ef4c340..0000000 --- a/.local/state/noctalia/community-templates/ratune/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "6a9a097ed8d30bfb4cb47f522b7b9c71" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/ratune/template.toml b/.local/state/noctalia/community-templates/ratune/template.toml deleted file mode 100644 index 03a2a4a..0000000 --- a/.local/state/noctalia/community-templates/ratune/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.ratune] -name = "Ratune" -category = "audio" - -[templates.ratune] -input_path = "ratune.toml" -output_path = "$XDG_CONFIG_HOME/ratune/theme.generated.toml" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/rhun/.noctalia-cache.json b/.local/state/noctalia/community-templates/rhun/.noctalia-cache.json deleted file mode 100644 index d104933..0000000 --- a/.local/state/noctalia/community-templates/rhun/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "49dbde3af43a711afc4f56f7702e4806" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/rhun/template.toml b/.local/state/noctalia/community-templates/rhun/template.toml deleted file mode 100644 index f02950e..0000000 --- a/.local/state/noctalia/community-templates/rhun/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.rhun] -name = "rhun" -category = "editor" - -[templates.rhun] -input_path = "rhun.theme" -output_path = "$XDG_CONFIG_HOME/rhun/themes/noctalia.theme" diff --git a/.local/state/noctalia/community-templates/rio/.noctalia-cache.json b/.local/state/noctalia/community-templates/rio/.noctalia-cache.json deleted file mode 100644 index 86e9652..0000000 --- a/.local/state/noctalia/community-templates/rio/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "ba4ac531ce91a1828c245419d5036795" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/rio/template.toml b/.local/state/noctalia/community-templates/rio/template.toml deleted file mode 100644 index e09922f..0000000 --- a/.local/state/noctalia/community-templates/rio/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.rio] -name = "rio" -category = "terminal" - -[templates.rio] -input_path = "rio.toml" -output_path = "$XDG_CONFIG_HOME/rio/themes/noctalia.toml" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/rofi/.noctalia-cache.json b/.local/state/noctalia/community-templates/rofi/.noctalia-cache.json deleted file mode 100644 index 7d79eae..0000000 --- a/.local/state/noctalia/community-templates/rofi/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "3cdd78c5ade848020d2daa9a14ad4ea0" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/rofi/template.toml b/.local/state/noctalia/community-templates/rofi/template.toml deleted file mode 100644 index 55dc4a4..0000000 --- a/.local/state/noctalia/community-templates/rofi/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.rofi] -name = "Rofi" -category = "launcher" - -[templates.rofi] -input_path = "rofi.rasi" -output_path = "$XDG_CONFIG_HOME/rofi/noctalia.rasi" diff --git a/.local/state/noctalia/community-templates/senpai/.noctalia-cache.json b/.local/state/noctalia/community-templates/senpai/.noctalia-cache.json deleted file mode 100644 index 17d5905..0000000 --- a/.local/state/noctalia/community-templates/senpai/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "fb82e2a2289746344d53901715116098" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/senpai/template.toml b/.local/state/noctalia/community-templates/senpai/template.toml deleted file mode 100644 index b90c5c6..0000000 --- a/.local/state/noctalia/community-templates/senpai/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.senpai] -name = "senpai" -category = "chat" - -[templates.senpai] -input_path = "senpai-colors.scfg" -output_path = "$XDG_CONFIG_HOME/senpai/themes/noctalia.scfg" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/sidra/.noctalia-cache.json b/.local/state/noctalia/community-templates/sidra/.noctalia-cache.json deleted file mode 100644 index 05e548e..0000000 --- a/.local/state/noctalia/community-templates/sidra/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "88b010e2ca84bd572cde844e94613321" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/sidra/template.toml b/.local/state/noctalia/community-templates/sidra/template.toml deleted file mode 100644 index 31dd592..0000000 --- a/.local/state/noctalia/community-templates/sidra/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.sidra] -name = "Sidra" -category = "audio" - -[templates.sidra] -input_path = "sidra-theme.json" -output_path = "$XDG_CONFIG_HOME/Sidra/custom-theme.json" diff --git a/.local/state/noctalia/community-templates/sioyek/.noctalia-cache.json b/.local/state/noctalia/community-templates/sioyek/.noctalia-cache.json deleted file mode 100644 index 58166b8..0000000 --- a/.local/state/noctalia/community-templates/sioyek/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "9a7efffa3ac87df3a72a51272955e11a" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/sioyek/template.toml b/.local/state/noctalia/community-templates/sioyek/template.toml deleted file mode 100644 index 81ff89a..0000000 --- a/.local/state/noctalia/community-templates/sioyek/template.toml +++ /dev/null @@ -1,9 +0,0 @@ -[catalog.sioyek] -name = "sioyek" -category = "misc" - -[templates.sioyek] -input_path = "sioyek.config" -output_path = "$XDG_CONFIG_HOME/sioyek/themes/noctalia.config" -requires_path = "$XDG_CONFIG_HOME/sioyek" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/siyuan/.noctalia-cache.json b/.local/state/noctalia/community-templates/siyuan/.noctalia-cache.json deleted file mode 100644 index c75a9e2..0000000 --- a/.local/state/noctalia/community-templates/siyuan/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "03695092322498c68d7e52cef661a85c" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/siyuan/template.toml b/.local/state/noctalia/community-templates/siyuan/template.toml deleted file mode 100644 index 90e98d9..0000000 --- a/.local/state/noctalia/community-templates/siyuan/template.toml +++ /dev/null @@ -1,18 +0,0 @@ -[catalog.siyuan] -name = "Siyuan" -category = "misc" - -[templates.siyuan] -input_path = "siyuan.css" -output_path = "~/Documents/SiYuan/conf/appearance/themes/noctalia-siyuan/theme.css" -requires_path = "~/Documents/SiYuan/conf/appearance/themes/" - -[templates.siyuan-home] -input_path = "siyuan.css" -output_path = "~/SiYuan/conf/appearance/themes/noctalia-siyuan/theme.css" -requires_path = "~/SiYuan/conf/appearance/themes/" - -[templates.siyuan-dot] -input_path = "siyuan.css" -output_path = "~/.siyuan/conf/appearance/themes/noctalia-siyuan/theme.css" -requires_path = "~/.siyuan/conf/appearance/themes/" \ No newline at end of file diff --git a/.local/state/noctalia/community-templates/snappy-switcher/.noctalia-cache.json b/.local/state/noctalia/community-templates/snappy-switcher/.noctalia-cache.json deleted file mode 100644 index 5276fa6..0000000 --- a/.local/state/noctalia/community-templates/snappy-switcher/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "bf68b5cd502b5ba7be7f43bdd51a281c" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/snappy-switcher/template.toml b/.local/state/noctalia/community-templates/snappy-switcher/template.toml deleted file mode 100644 index 1136bb9..0000000 --- a/.local/state/noctalia/community-templates/snappy-switcher/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.snappy-switcher] -name = "snappy-switcher" -category = "system" - -[templates.snappy-switcher] -input_path = "noctalia.ini" -output_path = "$XDG_CONFIG_HOME/snappy-switcher/themes/noctalia.ini" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/sone/.noctalia-cache.json b/.local/state/noctalia/community-templates/sone/.noctalia-cache.json deleted file mode 100644 index 09a07f5..0000000 --- a/.local/state/noctalia/community-templates/sone/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "0a4a492b42e74ebac4c1bbb4bfaa124a" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/sone/template.toml b/.local/state/noctalia/community-templates/sone/template.toml deleted file mode 100644 index 68224c2..0000000 --- a/.local/state/noctalia/community-templates/sone/template.toml +++ /dev/null @@ -1,18 +0,0 @@ -[catalog.sone] -name = "Sone" -category = "audio" - -[templates.sone] -input_path = "theme.json" -output_path = "$XDG_CONFIG_HOME/sone/theme.json" -requires_path = "$XDG_CONFIG_HOME/sone" - -[templates.sone-flatpak] -input_path = "theme.json" -output_path = "~/.var/app/io.github.lullabyX.sone/config/sone/theme.json" -requires_path = "~/.var/app/io.github.lullabyX.sone/config/sone" - -[templates.sone-snap] -input_path = "theme.json" -output_path = "~/snap/sone/current/.config/sone/theme.json" -requires_path = "~/snap/sone/current/.config/sone" diff --git a/.local/state/noctalia/community-templates/sonora/.noctalia-cache.json b/.local/state/noctalia/community-templates/sonora/.noctalia-cache.json deleted file mode 100644 index 3b43ff4..0000000 --- a/.local/state/noctalia/community-templates/sonora/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "33ef07f70ee95766a3fd951bc265ae0e" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/sonora/template.toml b/.local/state/noctalia/community-templates/sonora/template.toml deleted file mode 100644 index e996aff..0000000 --- a/.local/state/noctalia/community-templates/sonora/template.toml +++ /dev/null @@ -1,15 +0,0 @@ -[catalog.sonora] -name = "Sonora" -category = "audio" - -[templates.sonora] -input_path = "sonora.json" -output_path = "$XDG_CONFIG_HOME/sonora/themes/noctalia.json" -post_hook = "bash '{{ config_dir }}/apply.sh' native" -requires_path = "$XDG_CONFIG_HOME/sonora" - -[templates.sonora-flatpak] -input_path = "sonora.json" -output_path = "~/.var/app/io.github.nolight132.sonora/config/sonora/themes/noctalia.json" -post_hook = "bash '{{ config_dir }}/apply.sh' flatpak" -requires_path = "~/.var/app/io.github.nolight132.sonora/config/sonora" diff --git a/.local/state/noctalia/community-templates/speedcrunch/.noctalia-cache.json b/.local/state/noctalia/community-templates/speedcrunch/.noctalia-cache.json deleted file mode 100644 index 5286fc6..0000000 --- a/.local/state/noctalia/community-templates/speedcrunch/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "b38bf6c1502a6fd193b23f25a316bcd9" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/speedcrunch/template.toml b/.local/state/noctalia/community-templates/speedcrunch/template.toml deleted file mode 100644 index 94160ac..0000000 --- a/.local/state/noctalia/community-templates/speedcrunch/template.toml +++ /dev/null @@ -1,9 +0,0 @@ -[catalog.speedcrunch] -name = "SpeedCrunch" -category = "misc" - -[templates.speedcrunch] -pre_hook = "mkdir -p ~/.local/share/SpeedCrunch/color-schemes" -input_path = "speedcrunch.json" -output_path = "~/.local/share/SpeedCrunch/color-schemes/Noctalia.json" - diff --git a/.local/state/noctalia/community-templates/spicetify/.noctalia-cache.json b/.local/state/noctalia/community-templates/spicetify/.noctalia-cache.json deleted file mode 100644 index b63acbb..0000000 --- a/.local/state/noctalia/community-templates/spicetify/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "82a1de0917a16f89fa5a52f36703b684" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/spicetify/template.toml b/.local/state/noctalia/community-templates/spicetify/template.toml deleted file mode 100644 index f7f68b2..0000000 --- a/.local/state/noctalia/community-templates/spicetify/template.toml +++ /dev/null @@ -1,17 +0,0 @@ -[catalog.spicetify] -name = "Spicetify" -category = "audio" - -# Both entries run the same apply.sh, and `spicetify apply` patches one Spotify install: -# concurrent runs corrupt the patched files. -[templates.spicetify] -input_path = "spicetify.ini" -output_path = "$XDG_CONFIG_HOME/spicetify/Themes/Comfy/color.ini" -post_hook = "bash '{{ config_dir }}/apply.sh'" -hook_async = false - -[templates.spicetify_colorful] -input_path = "spicetify_colorful.ini" -output_path = "$XDG_CONFIG_HOME/spicetify/Themes/Colorful/color.ini" -post_hook = "bash '{{ config_dir }}/apply.sh'" -hook_async = false diff --git a/.local/state/noctalia/community-templates/spotifast/.noctalia-cache.json b/.local/state/noctalia/community-templates/spotifast/.noctalia-cache.json deleted file mode 100644 index f61d27c..0000000 --- a/.local/state/noctalia/community-templates/spotifast/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "2c12fd99a8841ca624b6fbe21af7ca84" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/spotifast/template.toml b/.local/state/noctalia/community-templates/spotifast/template.toml deleted file mode 100644 index dc77718..0000000 --- a/.local/state/noctalia/community-templates/spotifast/template.toml +++ /dev/null @@ -1,15 +0,0 @@ -[catalog.spotifast] -name = "Spotifast" -category = "audio" - -[templates.spotifast] -input_path_modes = { dark = "spotifast-dark.json", light = "spotifast-light.json" } -output_path = "$XDG_CONFIG_HOME/spotifast/themes/noctalia.json" -post_hook = "spotifast reload-themes >/dev/null 2>&1 || true" -requires_path = "$XDG_CONFIG_HOME/spotifast" - -[templates.spotifast-flatpak] -input_path_modes = { dark = "spotifast-dark.json", light = "spotifast-light.json" } -output_path = "~/.var/app/rocks.spotifast.Spotifast/config/spotifast/themes/noctalia.json" -post_hook = "flatpak run rocks.spotifast.Spotifast reload-themes >/dev/null 2>&1 || true" -requires_path = "~/.var/app/rocks.spotifast.Spotifast" diff --git a/.local/state/noctalia/community-templates/starship/.noctalia-cache.json b/.local/state/noctalia/community-templates/starship/.noctalia-cache.json deleted file mode 100644 index 911f740..0000000 --- a/.local/state/noctalia/community-templates/starship/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "d4211687f5565b0726d723ee6c716aff" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/starship/template.toml b/.local/state/noctalia/community-templates/starship/template.toml deleted file mode 100644 index fe56333..0000000 --- a/.local/state/noctalia/community-templates/starship/template.toml +++ /dev/null @@ -1,9 +0,0 @@ -[catalog.starship] -name = "Starship" -category = "terminal" - -[templates.starship] -input_path = "starship.toml" -output_path = "$XDG_CACHE_HOME/noctalia/starship-palette.toml" -post_hook = "bash '{{ config_dir }}/apply.sh'" -undo_hook = "bash '{{ config_dir }}/undo.sh'" diff --git a/.local/state/noctalia/community-templates/steam/.noctalia-cache.json b/.local/state/noctalia/community-templates/steam/.noctalia-cache.json deleted file mode 100644 index 4c44660..0000000 --- a/.local/state/noctalia/community-templates/steam/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "27671a86a937038a235826963cd29ac7" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/steam/template.toml b/.local/state/noctalia/community-templates/steam/template.toml deleted file mode 100644 index 5db3dd7..0000000 --- a/.local/state/noctalia/community-templates/steam/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.steam] -name = "Steam" -category = "gaming" - -[templates.steam] -input_path = "steam.css" -output_path = "~/.steam/steam/steamui/skins/Material-Theme/css/main/colors/matugen.css" diff --git a/.local/state/noctalia/community-templates/strata/.noctalia-cache.json b/.local/state/noctalia/community-templates/strata/.noctalia-cache.json deleted file mode 100644 index e05e2c5..0000000 --- a/.local/state/noctalia/community-templates/strata/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "52beabac688f2f01dbe1e6609d0b652b" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/strata/template.toml b/.local/state/noctalia/community-templates/strata/template.toml deleted file mode 100644 index 8ed85a3..0000000 --- a/.local/state/noctalia/community-templates/strata/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.strata] -name = "Strata" -category = "misc" - -[templates.strata] -input_path = "strata.toml" -output_path = "$XDG_CONFIG_HOME/strata/themes/noctalia.toml" -pre_hook = "mkdir -p \"${XDG_CONFIG_HOME:-$HOME/.config}/strata/themes\"" diff --git a/.local/state/noctalia/community-templates/superfile/.noctalia-cache.json b/.local/state/noctalia/community-templates/superfile/.noctalia-cache.json deleted file mode 100644 index 19f07b2..0000000 --- a/.local/state/noctalia/community-templates/superfile/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "227d8e0b87f1da6c6955694b9136b6d9" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/superfile/template.toml b/.local/state/noctalia/community-templates/superfile/template.toml deleted file mode 100644 index 1fbc1dd..0000000 --- a/.local/state/noctalia/community-templates/superfile/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.superfile] -name = "superfile" -category = "terminal" - -[templates.superfile] -input_path = "superfile.toml" -output_path = "$XDG_CONFIG_HOME/superfile/theme/noctalia.toml" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/supersonic/.noctalia-cache.json b/.local/state/noctalia/community-templates/supersonic/.noctalia-cache.json deleted file mode 100644 index 7a4bc94..0000000 --- a/.local/state/noctalia/community-templates/supersonic/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "c1d2e80871768667edf0c0de4ccb77d8" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/supersonic/template.toml b/.local/state/noctalia/community-templates/supersonic/template.toml deleted file mode 100644 index fa689b4..0000000 --- a/.local/state/noctalia/community-templates/supersonic/template.toml +++ /dev/null @@ -1,15 +0,0 @@ -[catalog.supersonic] -name = "Supersonic" -category = "audio" - -[templates.supersonic] -input_path = "noctalia.toml" -output_path = "$XDG_CONFIG_HOME/supersonic/themes/noctalia.toml" -post_hook = "bash '{{ config_dir }}/apply.sh' native" -requires_path = "$XDG_CONFIG_HOME/supersonic" - -[templates.supersonic-flatpak] -input_path = "noctalia.toml" -output_path = "~/.var/app/io.github.dweymouth.supersonic/config/supersonic/themes/noctalia.toml" -post_hook = "bash '{{ config_dir }}/apply.sh' flatpak" -requires_path = "~/.var/app/io.github.dweymouth.supersonic" diff --git a/.local/state/noctalia/community-templates/surgedm/.noctalia-cache.json b/.local/state/noctalia/community-templates/surgedm/.noctalia-cache.json deleted file mode 100644 index 7758f0e..0000000 --- a/.local/state/noctalia/community-templates/surgedm/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "9abb192ce5410990eb8fc12b4a8eb1a6" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/surgedm/template.toml b/.local/state/noctalia/community-templates/surgedm/template.toml deleted file mode 100644 index 87c86c9..0000000 --- a/.local/state/noctalia/community-templates/surgedm/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.surgedm] -name = "surgedm" -category = "terminal" - -[templates.surgedm] -input_path = "surgedm.toml" -output_path = "$XDG_CONFIG_HOME/surge/themes/noctalia.toml" -post_hook = "" diff --git a/.local/state/noctalia/community-templates/tauon/.noctalia-cache.json b/.local/state/noctalia/community-templates/tauon/.noctalia-cache.json deleted file mode 100644 index bc82642..0000000 --- a/.local/state/noctalia/community-templates/tauon/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "84c2f50517afc07dea2d5aee44caebd5" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/tauon/template.toml b/.local/state/noctalia/community-templates/tauon/template.toml deleted file mode 100644 index 436ae3b..0000000 --- a/.local/state/noctalia/community-templates/tauon/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.tauon] -name = "Tauon" -category = "audio" - -[templates.tauon] -input_path = "tauon.txt" -output_path = "$XDG_DATA_HOME/TauonMusicBox/theme/Noctalia.ttheme" diff --git a/.local/state/noctalia/community-templates/telegram/.noctalia-cache.json b/.local/state/noctalia/community-templates/telegram/.noctalia-cache.json deleted file mode 100644 index 97d9128..0000000 --- a/.local/state/noctalia/community-templates/telegram/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "70b0497f39625f713c366070c0104c84" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/telegram/template.toml b/.local/state/noctalia/community-templates/telegram/template.toml deleted file mode 100644 index d94de27..0000000 --- a/.local/state/noctalia/community-templates/telegram/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.telegram] -name = "Telegram" -category = "chat" - -[templates.telegram] -input_path = "telegram.tdesktop-theme" -output_path = "$XDG_CONFIG_HOME/telegram-desktop/themes/noctalia.tdesktop-theme" diff --git a/.local/state/noctalia/community-templates/thunar/.noctalia-cache.json b/.local/state/noctalia/community-templates/thunar/.noctalia-cache.json deleted file mode 100644 index 2b40cb9..0000000 --- a/.local/state/noctalia/community-templates/thunar/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "261016aff7a923f6380521cb6448dbe0" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/thunar/template.toml b/.local/state/noctalia/community-templates/thunar/template.toml deleted file mode 100644 index b5704fc..0000000 --- a/.local/state/noctalia/community-templates/thunar/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.thunar] -name = "Thunar" -category = "system" - -[templates.thunar] -input_path = "thunar.css" -gtk_extension = "gtk3" diff --git a/.local/state/noctalia/community-templates/thunderbird/.noctalia-cache.json b/.local/state/noctalia/community-templates/thunderbird/.noctalia-cache.json deleted file mode 100644 index ed0885b..0000000 --- a/.local/state/noctalia/community-templates/thunderbird/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "04bb04f8c0762f744c42e4309940d90a" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/thunderbird/template.toml b/.local/state/noctalia/community-templates/thunderbird/template.toml deleted file mode 100644 index 1f5ec12..0000000 --- a/.local/state/noctalia/community-templates/thunderbird/template.toml +++ /dev/null @@ -1,11 +0,0 @@ -[catalog.thunderbird] -name = "Thunderbird" -category = "misc" - -# Noctalia renders the palette into Thunderbird's chrome via userChrome.css. -# apply.sh wires the rendered file into every profile and enables userChrome; -# see README.md for the read-only profile handling. -[templates.thunderbird] -input_path = "noctalia.css" -output_path = "$XDG_CACHE_HOME/noctalia/thunderbird/noctalia.css" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/tmux/.noctalia-cache.json b/.local/state/noctalia/community-templates/tmux/.noctalia-cache.json deleted file mode 100644 index d74117b..0000000 --- a/.local/state/noctalia/community-templates/tmux/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "1930789bfd26ac2a25c7baa943d35528" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/tmux/template.toml b/.local/state/noctalia/community-templates/tmux/template.toml deleted file mode 100644 index e082482..0000000 --- a/.local/state/noctalia/community-templates/tmux/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.tmux] -name = "tmux" -category = "terminal" - -[templates.tmux] -input_path = "tmux.conf" -output_path = "$XDG_CONFIG_HOME/tmux/themes/noctalia.conf" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/tuios/.noctalia-cache.json b/.local/state/noctalia/community-templates/tuios/.noctalia-cache.json deleted file mode 100644 index 8fa1c89..0000000 --- a/.local/state/noctalia/community-templates/tuios/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "3eb00d99b708d1061fd5cccf1e2fcf44" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/tuios/template.toml b/.local/state/noctalia/community-templates/tuios/template.toml deleted file mode 100644 index 85f7c09..0000000 --- a/.local/state/noctalia/community-templates/tuios/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.tuios] -name = "tuios" -category = "terminal" - -[templates.tuios] -input_path = "tuios.json" -output_path = "$XDG_CONFIG_HOME/tuios/themes/noctalia.json" -requires_path = "$XDG_CONFIG_HOME/tuios" diff --git a/.local/state/noctalia/community-templates/ungoogled-chromium/.noctalia-cache.json b/.local/state/noctalia/community-templates/ungoogled-chromium/.noctalia-cache.json deleted file mode 100644 index 983772e..0000000 --- a/.local/state/noctalia/community-templates/ungoogled-chromium/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "1cf4d25f3aa165af9977d5058729d316" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/ungoogled-chromium/template.toml b/.local/state/noctalia/community-templates/ungoogled-chromium/template.toml deleted file mode 100644 index a3bbc47..0000000 --- a/.local/state/noctalia/community-templates/ungoogled-chromium/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.ungoogled-chromium] -name = "Ungoogled Chromium" -category = "browser" - -[templates.ungoogled_chromium_theme] -input_path = "manifest.json" -output_path = "$XDG_CACHE_HOME/noctalia/ungoogled-chromium/theme/manifest.json" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/velo/.noctalia-cache.json b/.local/state/noctalia/community-templates/velo/.noctalia-cache.json deleted file mode 100644 index 054248f..0000000 --- a/.local/state/noctalia/community-templates/velo/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "8ef4c35cecfaf07bdac1a4a106dc1c32" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/velo/template.toml b/.local/state/noctalia/community-templates/velo/template.toml deleted file mode 100644 index eb83f9e..0000000 --- a/.local/state/noctalia/community-templates/velo/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.velo] -name = "velo" -category = "launcher" - -[templates.velo] -input_path = "palette.json" -output_path = "$XDG_CONFIG_HOME/velo/palettes/current-noctalia-override.json" -post_hook = "bash '{{ config_dir }}/apply.sh' {{ mode }}" diff --git a/.local/state/noctalia/community-templates/vicinae/.noctalia-cache.json b/.local/state/noctalia/community-templates/vicinae/.noctalia-cache.json deleted file mode 100644 index a0f55ee..0000000 --- a/.local/state/noctalia/community-templates/vicinae/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "9ecc5f81a927869e6bc16e3ae2d4e2ab" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/vicinae/template.toml b/.local/state/noctalia/community-templates/vicinae/template.toml deleted file mode 100644 index bc03476..0000000 --- a/.local/state/noctalia/community-templates/vicinae/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.vicinae] -name = "Vicinae" -category = "launcher" - -[templates.vicinae] -input_path = "vicinae.toml" -output_path = "$XDG_DATA_HOME/vicinae/themes/noctalia.toml" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/vscode/.noctalia-cache.json b/.local/state/noctalia/community-templates/vscode/.noctalia-cache.json deleted file mode 100644 index cb384f2..0000000 --- a/.local/state/noctalia/community-templates/vscode/.noctalia-cache.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "files": { - "README.md": "003639a2e413c919c660856a59fe5af3", - "template.toml": "a8e3fd2d1aaec4c5fc5dff0fea5bf560", - "vscode.json": "13be5379c74af4cc359eddce98f32ab1" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/vscode/README.md b/.local/state/noctalia/community-templates/vscode/README.md deleted file mode 100644 index 1bbf0b0..0000000 --- a/.local/state/noctalia/community-templates/vscode/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# VSCode - -Generates Noctalia editor, syntax and semantic-token colors for VS Code, VSCodium and Antigravity IDE by replacing the color-theme file inside the Noctalia theme extension. - -## Setup - -1. Install the Noctalia theme extension (`noctalia.noctaliatheme`) in each editor you use: open the Extensions view (**Ctrl+Shift+X**), search for **NoctaliaTheme**, and click **Install**. -2. Select the theme: open the Command Palette (**Ctrl+Shift+P**), run **Preferences: Color Theme**, and pick **NoctaliaTheme**. -3. Enable **VSCode** in **Noctalia Settings -> Templates**. - -The manifest targets extension version **0.0.5** at the exact paths below. It only checks for the editor's root directory, not whether the extension is installed. Generating the JSON alone does not install or register an extension. If your extension version or installation layout differs, adjust the template output path to match it. - -## Output paths - -- VS Code (requires `~/.vscode`): `~/.vscode/extensions/noctalia.noctaliatheme-0.0.5/themes/NoctaliaTheme-color-theme.json` -- VSCodium (requires `~/.vscode-oss`): - - `~/.vscode-oss/extensions/noctalia.noctaliatheme-0.0.5-universal/themes/NoctaliaTheme-color-theme.json` - - `~/.vscode-oss/extensions/noctalia.noctaliatheme-0.0.5/themes/NoctaliaTheme-color-theme.json` -- Antigravity IDE (requires `~/.antigravity-ide`): `~/.antigravity-ide/extensions/noctalia.noctaliatheme-0.0.5-universal/themes/NoctaliaTheme-color-theme.json` - -These files are overwritten without backups; save any manual theme edits elsewhere. Extension updates can replace the generated file or change its path. No hook modifies editor settings or requests a reload: if new colors do not show up, run **Developer: Reload Window** from the Command Palette, or switch to another theme and back. diff --git a/.local/state/noctalia/community-templates/vscode/template.toml b/.local/state/noctalia/community-templates/vscode/template.toml deleted file mode 100644 index 516c4ee..0000000 --- a/.local/state/noctalia/community-templates/vscode/template.toml +++ /dev/null @@ -1,21 +0,0 @@ -[catalog.vscode] -name = "VSCode" -category = "editor" - -[templates.vscode_code] -input_path = "vscode.json" -output_path = "~/.vscode/extensions/noctalia.noctaliatheme-0.0.5/themes/NoctaliaTheme-color-theme.json" -requires_path = "~/.vscode" - -[templates.vscode_codium] -input_path = "vscode.json" -output_path = [ - "~/.vscode-oss/extensions/noctalia.noctaliatheme-0.0.5-universal/themes/NoctaliaTheme-color-theme.json", - "~/.vscode-oss/extensions/noctalia.noctaliatheme-0.0.5/themes/NoctaliaTheme-color-theme.json", -] -requires_path = "~/.vscode-oss" - -[templates.antigravity_ide] -input_path = "vscode.json" -output_path = "~/.antigravity-ide/extensions/noctalia.noctaliatheme-0.0.5-universal/themes/NoctaliaTheme-color-theme.json" -requires_path = "~/.antigravity-ide" diff --git a/.local/state/noctalia/community-templates/vscode/vscode.json b/.local/state/noctalia/community-templates/vscode/vscode.json deleted file mode 100644 index cd14733..0000000 --- a/.local/state/noctalia/community-templates/vscode/vscode.json +++ /dev/null @@ -1,1987 +0,0 @@ -{ - "name": "NoctaliaTheme", - "type": "dark", - "semanticHighlighting": true, - "semanticTokenColors": { - "enumMember": { - "foreground": "{{colors.primary.default.hex}}" - }, - "variable.constant": { - "foreground": "{{colors.tertiary.default.hex}}" - }, - "variable.defaultLibrary": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - "tokenColors": [ - { - "name": "unison punctuation", - "scope": "punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "haskell variable generic-type", - "scope": "variable.other.generic-type.haskell", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "haskell storage type", - "scope": "storage.type.haskell", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "support.variable.magic.python", - "scope": "support.variable.magic.python", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "punctuation.separator.parameters.python", - "scope": "punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "variable.parameter.function.language.special.self.python", - "scope": "variable.parameter.function.language.special.self.python", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "storage.modifier.lifetime.rust", - "scope": "storage.modifier.lifetime.rust", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "support.function.std.rust", - "scope": "support.function.std.rust", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "entity.name.lifetime.rust", - "scope": "entity.name.lifetime.rust", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "variable.language.rust", - "scope": "variable.language.rust", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "support.constant.edge", - "scope": "support.constant.edge", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "regexp constant character-class", - "scope": "constant.other.character-class.regexp", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "regexp operator.quantifier", - "scope": "keyword.operator.quantifier.regexp", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "punctuation.definition", - "scope": "punctuation.definition.string.begin,punctuation.definition.string.end", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Text", - "scope": "variable.parameter.function", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Comment Markup Link", - "scope": "comment markup.link", - "settings": { - "foreground": "{{colors.outline.default.hex}}" - } - }, - { - "name": "markup diff", - "scope": "markup.changed.diff", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "diff", - "scope": "meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "inserted.diff", - "scope": "markup.inserted.diff", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "deleted.diff", - "scope": "markup.deleted.diff", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "c++ function", - "scope": "meta.function.c,meta.function.cpp", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "c++ block", - "scope": "punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "js/ts punctuation separator key-value", - "scope": "punctuation.separator.key-value", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "js/ts import keyword", - "scope": "keyword.operator.expression.import", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "math js/ts", - "scope": "support.constant.math", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "math property js/ts", - "scope": "support.constant.property.math", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "js/ts variable.other.constant", - "scope": "variable.other.constant", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "java type", - "scope": [ - "storage.type.annotation.java", - "storage.type.object.array.java" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "java source", - "scope": "source.java", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "java modifier.import", - "scope": "punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "java modifier.import", - "scope": "meta.method.java", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "java modifier.import", - "scope": "storage.modifier.import.java,storage.type.java,storage.type.generic.java", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "java instanceof", - "scope": "keyword.operator.instanceof.java", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "java variable.name", - "scope": "meta.definition.variable.name.java", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "operator logical", - "scope": "keyword.operator.logical", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "operator bitwise", - "scope": "keyword.operator.bitwise", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "operator channel", - "scope": "keyword.operator.channel", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "support.constant.property-value.scss", - "scope": "support.constant.property-value.scss,support.constant.property-value.css", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "CSS/SCSS/LESS Operators", - "scope": "keyword.operator.css,keyword.operator.scss,keyword.operator.less", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "keyword.operator", - "scope": "keyword.operator.arithmetic,keyword.operator.comparison,keyword.operator.decrement,keyword.operator.increment,keyword.operator.relational", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "C operator assignment", - "scope": "keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Punctuation", - "scope": "punctuation.separator.delimiter", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Other punctuation .c", - "scope": "punctuation.separator.c,punctuation.separator.cpp", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "C type posix-reserved", - "scope": "support.type.posix-reserved.c,support.type.posix-reserved.cpp", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "keyword.operator.sizeof.c", - "scope": "keyword.operator.sizeof.c,keyword.operator.sizeof.cpp", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "python parameter", - "scope": "variable.parameter.function.language.python", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "python type", - "scope": "support.type.python", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "python logical", - "scope": "keyword.operator.logical.python", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Meta tag", - "scope": "meta.tag", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Strings", - "scope": "string", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Inherited Class", - "scope": "entity.other.inherited-class", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Constant other symbol", - "scope": "constant.other.symbol", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Integers", - "scope": "constant.numeric", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "Constants", - "scope": "constant", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "Constants", - "scope": "punctuation.definition.constant", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "Tags", - "scope": "entity.name.tag", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Attributes", - "scope": "entity.other.attribute-name", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "Attribute IDs", - "scope": "entity.other.attribute-name.id", - "settings": { - "fontStyle": "normal", - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Attribute class", - "scope": "entity.other.attribute-name.class.css", - "settings": { - "fontStyle": "normal", - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "Selector", - "scope": "meta.selector", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Headings", - "scope": "markup.heading", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Headings", - "scope": "markup.heading punctuation.definition.heading, entity.name.section", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Units", - "scope": "keyword.other.unit", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Bold", - "scope": "markup.bold,todo.bold", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "Bold", - "scope": "punctuation.definition.bold", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "markup Italic", - "scope": "markup.italic, punctuation.definition.italic,todo.emphasis", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "emphasis md", - "scope": "emphasis md", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown headings", - "scope": "entity.name.section.markdown", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown heading Punctuation Definition", - "scope": "punctuation.definition.heading.markdown", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "punctuation.definition.list.begin.markdown", - "scope": "punctuation.definition.list.begin.markdown", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown heading setext", - "scope": "markup.heading.setext", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition Bold", - "scope": "punctuation.definition.bold.markdown", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Inline Raw", - "scope": "markup.inline.raw.markdown", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Inline Raw", - "scope": "markup.inline.raw.string.markdown", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition Italic", - "scope": "punctuation.definition.italic.markdown", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown List Punctuation Definition", - "scope": "beginning.punctuation.definition.list.markdown", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Quote", - "scope": "markup.quote.markdown", - "settings": { - "foreground": "{{colors.outline.default.hex}}", - "fontStyle": "italic" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition String", - "scope": [ - "punctuation.definition.string.begin.markdown", - "punctuation.definition.string.end.markdown", - "punctuation.definition.metadata.markdown" - ], - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition Link", - "scope": "punctuation.definition.metadata.markdown", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Underline Link/Image", - "scope": "markup.underline.link.markdown,markup.underline.link.image.markdown", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Link Title/Description", - "scope": "string.other.link.title.markdown,string.other.link.description.markdown", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Escape Characters", - "scope": "constant.character.escape", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Embedded", - "scope": "punctuation.section.embedded, variable.interpolation", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Embedded", - "scope": "punctuation.section.embedded.begin,punctuation.section.embedded.end", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "illegal", - "scope": "invalid.illegal", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "illegal", - "scope": "invalid.illegal.bad-ampersand.html", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Broken", - "scope": "invalid.broken", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Deprecated", - "scope": "invalid.deprecated", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Unimplemented", - "scope": "invalid.unimplemented", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Source Json Meta Structure Dictionary Json > String Quoted Json", - "scope": "source.json meta.structure.dictionary.json > string.quoted.json", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Source Json Meta Structure Dictionary Json > String Quoted Json > Punctuation String", - "scope": "source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Source Json Meta Structure Dictionary Json > Value Json > String Quoted Json,source Json Meta Structure Array Json > Value Json > String Quoted Json,source Json Meta Structure Dictionary Json > Value Json > String Quoted Json > Punctuation,source Json Meta Structure Array Json > Value Json > String Quoted Json > Punctuation", - "scope": "source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Source Json Meta Structure Dictionary Json > Constant Language Json,source Json Meta Structure Array Json > Constant Language Json", - "scope": "source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "ts primitive/builtin types", - "scope": "support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "block scope", - "scope": "block.scope.end,block.scope.begin", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "cs storage type", - "scope": "storage.type.cs", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "cs local variable", - "scope": "entity.name.variable.local.cs", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "scope": "token.info-token", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "scope": "token.warn-token", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "scope": "token.error-token", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "scope": "token.debug-token", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "String interpolation", - "scope": [ - "punctuation.definition.template-expression.begin", - "punctuation.definition.template-expression.end", - "punctuation.section.embedded" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Reset JavaScript string interpolation expression", - "scope": [ - "meta.template.expression" - ], - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Import module JS", - "scope": [ - "keyword.operator.module" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "js Flowtype", - "scope": [ - "support.type.type.flowtype" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "js Flow", - "scope": [ - "support.type.primitive" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "js class prop", - "scope": [ - "meta.property.object" - ], - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "js func parameter", - "scope": [ - "variable.parameter.function.js" - ], - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "js template literals begin", - "scope": [ - "keyword.other.template.begin" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "js template literals end", - "scope": [ - "keyword.other.template.end" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "js template literals variable braces begin", - "scope": [ - "keyword.other.substitution.begin" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "js template literals variable braces end", - "scope": [ - "keyword.other.substitution.end" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "js operator.assignment", - "scope": [ - "keyword.operator.assignment" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "go operator", - "scope": [ - "keyword.operator.assignment.go" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "go operator", - "scope": [ - "keyword.operator.arithmetic.go", - "keyword.operator.address.go" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "js/ts italic", - "scope": "entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super", - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "comment", - "scope": "comment.line.double-slash,comment.block.documentation", - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "Python Keyword Control", - "scope": "keyword.control.import.python,keyword.control.flow.python", - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "markup.italic.markdown", - "scope": "markup.italic.markdown", - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "css color standard name", - "scope": "support.constant.color.w3c-standard-color-name.css,support.constant.color.w3c-standard-color-name.scss", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "css comma", - "scope": "punctuation.separator.list.comma.css", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "css attribute-name.id", - "scope": "support.constant.color.w3c-standard-color-name.css", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "css property-name", - "scope": "support.type.vendored.property-name.css", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "js/ts module", - "scope": "support.module.node,support.type.object.module,support.module.node", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "entity.name.type.module", - "scope": "entity.name.type.module", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "js variable readwrite", - "scope": "variable.other.readwrite,meta.object-literal.key,support.variable.property,support.variable.object.process,support.variable.object.node", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "js/ts json", - "scope": "support.constant.json", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "js/ts Keyword", - "scope": [ - "keyword.operator.expression.instanceof", - "keyword.operator.new", - "keyword.operator.ternary", - "keyword.operator.optional", - "keyword.operator.expression.keyof" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "js/ts console", - "scope": "support.type.object.console", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "js/ts support.variable.property.process", - "scope": "support.variable.property.process", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "js console function", - "scope": "entity.name.function,support.function.console", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "keyword.operator.misc.rust", - "scope": "keyword.operator.misc.rust", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "keyword.operator.sigil.rust", - "scope": "keyword.operator.sigil.rust", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "operator", - "scope": "keyword.operator.delete", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "js dom", - "scope": "support.type.object.dom", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "js dom variable", - "scope": "support.variable.dom,support.variable.property.dom", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "python placeholder reset to normal string", - "scope": "constant.character.format.placeholder.other.python", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "Operators", - "scope": "keyword.operator", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Compound Assignment Operators", - "scope": "keyword.operator.assignment.compound", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Compound Assignment Operators js/ts", - "scope": "keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Keywords", - "scope": "keyword", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Namespaces", - "scope": "entity.name.namespace", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Variables", - "scope": "variable", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Variables", - "scope": "variable.c", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Language variables", - "scope": "variable.language", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Functions", - "scope": [ - "entity.name.function", - "meta.require", - "support.function.any-method", - "variable.function" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Classes", - "scope": "entity.name.type.namespace", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Classes", - "scope": "support.class, entity.name.type.class", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Class name", - "scope": "entity.name.class.identifier.namespace.type", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Class name", - "scope": [ - "entity.name.class", - "variable.other.class.js", - "variable.other.class.ts" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Storage", - "scope": "storage", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Storage JS TS", - "scope": "token.storage", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Source Js Keyword Operator Delete,source Js Keyword Operator In,source Js Keyword Operator Of,source Js Keyword Operator Instanceof,source Js Keyword Operator New,source Js Keyword Operator Typeof,source Js Keyword Operator Void", - "scope": "keyword.operator.expression.delete,keyword.operator.expression.in,keyword.operator.expression.of,keyword.operator.expression.instanceof,keyword.operator.new,keyword.operator.expression.typeof,keyword.operator.expression.void", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Support type", - "scope": "support.type.property-name", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Support type", - "scope": "support.constant.property-value", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Support type", - "scope": "support.constant.font-name", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "Regular Expressions", - "scope": "string.regexp", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Go package name", - "scope": [ - "entity.name.package.go" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "elm prelude", - "scope": [ - "support.type.prelude.elm" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "elm constant", - "scope": [ - "support.constant.elm" - ], - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "template literal", - "scope": [ - "punctuation.quasi.element" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "html/pug (jade) escaped characters and entities", - "scope": [ - "constant.character.entity" - ], - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "styling css pseudo-elements/classes to be able to differentiate from classes which are the same colour", - "scope": [ - "entity.other.attribute-name.pseudo-element", - "entity.other.attribute-name.pseudo-class" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] JSON Property Name", - "scope": "support.type.property-name.json", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "[VSCODE-CUSTOM] JSON Punctuation for Property Name", - "scope": "support.type.property-name.json punctuation", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Comments", - "scope": "comment, punctuation.definition.comment", - "settings": { - "fontStyle": "italic", - "foreground": "{{colors.outline.default.hex}}" - } - }, - { - "name": "punctuation.definition.block.sequence.item.yaml", - "scope": "punctuation.definition.block.sequence.item.yaml", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "scope": [ - "constant.language.symbol.elixir" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "python block", - "scope": "punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "python function-call.generic", - "scope": "meta.function-call.generic.python", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "pyCs", - "scope": "variable.parameter.function.python", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "python function decorator @", - "scope": "meta.function.decorator.python", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "python function support", - "scope": "support.token.decorator.python,meta.function.decorator.identifier.python", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "parameter function js/ts", - "scope": "function.parameter", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "brace function", - "scope": "function.brace", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "parameter function ruby cs", - "scope": "function.parameter.ruby, function.parameter.cs", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "constant.language.symbol.ruby", - "scope": "constant.language.symbol.ruby", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "rgb-value", - "scope": "rgb-value", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "rgb value", - "scope": "inline-color-decoration rgb-value", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "rgb value less", - "scope": "less rgb-value", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "Clojure globals", - "scope": [ - "entity.global.clojure" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Clojure symbols", - "scope": [ - "meta.symbol.clojure" - ], - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Clojure constants", - "scope": [ - "constant.keyword.clojure" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "CoffeeScript Function Argument", - "scope": [ - "meta.arguments.coffee", - "variable.parameter.function.coffee" - ], - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Ini Default Text", - "scope": [ - "source.ini" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Makefile prerequisities", - "scope": [ - "meta.scope.prerequisites.makefile" - ], - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Makefile text colour", - "scope": [ - "source.makefile" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Groovy import names", - "scope": [ - "storage.modifier.import.groovy" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Groovy Methods", - "scope": [ - "meta.method.groovy" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Groovy Variables", - "scope": [ - "meta.definition.variable.name.groovy" - ], - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "Groovy Inheritance", - "scope": [ - "meta.definition.class.inherited.classes.groovy" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "HLSL Semantic", - "scope": [ - "support.variable.semantic.hlsl" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "HLSL Types", - "scope": [ - "support.type.texture.hlsl", - "support.type.sampler.hlsl", - "support.type.object.hlsl", - "support.type.object.rw.hlsl", - "support.type.fx.hlsl", - "support.type.object.hlsl" - ], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "SQL Variables", - "scope": [ - "text.variable", - "text.bracketed" - ], - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "types", - "scope": [ - "support.type.swift", - "support.type.vb.asp" - ], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Java Variables", - "scope": "token.variable.parameter.java", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Java Imports", - "scope": "import.storage.java", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Packages", - "scope": "token.package.keyword", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Packages", - "scope": "token.package", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "Type Name", - "scope": "entity.name.type", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Keyword Control", - "scope": "keyword.control", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Control Elements", - "scope": "control.elements, keyword.operator.less", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "Methods", - "scope": "keyword.other.special-method", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Java Storage", - "scope": "token.storage.type.java", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "Support", - "scope": "support.function", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "Class name php", - "scope": "variable.other.class.php", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "laravel blade tag", - "scope": "text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "laravel blade @", - "scope": "text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "use statement for other classes", - "scope": "support.other.namespace.use.php,support.other.namespace.use-as.php,support.other.namespace.php,entity.other.alias.php,meta.interface.php", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "error suppression", - "scope": "keyword.operator.error-control.php", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "php instanceof", - "scope": "keyword.operator.type.php", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "style double quoted array index normal begin", - "scope": "punctuation.section.array.begin.php", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "style double quoted array index normal end", - "scope": "punctuation.section.array.end.php", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "php illegal.non-null-typehinted", - "scope": "invalid.illegal.non-null-typehinted.php", - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "name": "php types", - "scope": "storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php", - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "name": "php call-function", - "scope": "meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "php function-resets", - "scope": "punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php", - "settings": { - "foreground": "{{colors.on_background.default.hex}}" - } - }, - { - "name": "support php constants", - "scope": "support.constant.core.rust", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "support php constants", - "scope": "support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php", - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "name": "php goto", - "scope": "entity.name.goto-label.php,support.other.php", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "php logical/bitwise operator", - "scope": "keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "php regexp operator", - "scope": "keyword.operator.regexp.php", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "php comparison", - "scope": "keyword.operator.comparison.php", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "name": "php heredoc/nowdoc", - "scope": "keyword.operator.heredoc.php,keyword.operator.nowdoc.php", - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - } - ], - "colors": { - "activityBar.background": "{{colors.surface.default.hex}}", - "activityBar.foreground": "{{colors.on_surface.default.hex}}", - "activityBar.inactiveForeground": "{{colors.on_surface_variant.default.hex}}", - "activityBarBadge.background": "{{colors.primary.default.hex}}", - "activityBarBadge.foreground": "{{colors.on_primary.default.hex}}", - "badge.background": "{{colors.primary.default.hex}}", - "badge.foreground": "{{colors.on_primary.default.hex}}", - "breadcrumb.activeSelectionForeground": "{{colors.primary.default.hex}}", - "breadcrumb.background": "{{colors.background.default.hex}}", - "breadcrumb.focusForeground": "{{colors.on_surface.default.hex}}", - "breadcrumb.foreground": "{{colors.on_surface_variant.default.hex}}", - "breadcrumbPicker.background": "{{colors.surface.default.hex}}", - "button.background": "{{colors.primary.default.hex}}", - "button.foreground": "{{colors.on_primary.default.hex}}", - "button.hoverBackground": "{{colors.primary_container.default.hex}}", - "button.secondaryBackground": "{{colors.secondary.default.hex}}", - "button.secondaryForeground": "{{colors.on_secondary.default.hex}}", - "button.secondaryHoverBackground": "{{colors.secondary_container.default.hex}}", - "checkbox.background": "{{colors.primary_container.default.hex}}", - "checkbox.foreground": "{{colors.on_primary_container.default.hex}}", - "debugExceptionWidget.background": "{{colors.surface.default.hex}}", - "debugExceptionWidget.border": "{{colors.outline.default.hex}}", - "debugToolBar.background": "{{colors.surface.default.hex}}", - "debugToolBar.border": "{{colors.outline.default.hex}}", - "diffEditor.diagonalFill": "{{colors.outline.default.hex}}40", - "diffEditor.insertedTextBackground": "{{colors.secondary.default.hex}}20", - "diffEditor.removedTextBackground": "{{colors.error.default.hex}}20", - "dropdown.background": "{{colors.surface.default.hex}}", - "dropdown.foreground": "{{colors.on_surface.default.hex}}", - "editor.background": "{{colors.background.default.hex}}", - "editor.findMatchBackground": "{{colors.tertiary.default.hex}}80", - "editor.findMatchHighlightBackground": "{{colors.tertiary.default.hex}}60", - "editor.findRangeHighlightBackground": "{{colors.surface_variant.default.hex}}", - "editor.foldBackground": "{{colors.primary.default.hex}}4d", - "editor.foreground": "{{colors.on_background.default.hex}}", - "editor.hoverHighlightBackground": "{{colors.surface_variant.default.hex}}50", - "editor.inactiveSelectionBackground": "{{colors.surface_variant.default.hex}}", - "editor.lineHighlightBackground": "{{colors.surface_variant.default.hex}}50", - "editor.lineHighlightBorder": "{{colors.outline.default.hex}}00", - "editor.selectionBackground": "{{colors.primary.default.hex}}40", - "editor.selectionHighlightBackground": "{{colors.surface_variant.default.hex}}80", - "editor.wordHighlightBackground": "{{colors.surface_variant.default.hex}}", - "editor.wordHighlightStrongBackground": "{{colors.primary_container.default.hex}}80", - "editorBracketHighlight.foreground1": "{{colors.primary.default.hex}}", - "editorBracketHighlight.foreground2": "{{colors.secondary.default.hex}}", - "editorBracketHighlight.foreground3": "{{colors.tertiary.default.hex}}", - "editorBracketHighlight.foreground4": "{{colors.primary.default.hex}}", - "editorBracketHighlight.foreground5": "{{colors.secondary.default.hex}}", - "editorBracketHighlight.foreground6": "{{colors.tertiary.default.hex}}", - "editorBracketHighlight.unexpectedBracket.foreground": "{{colors.error.default.hex}}", - "editorBracketMatch.background": "{{colors.primary.default.hex}}4d", - "editorBracketMatch.border": "{{colors.primary.default.hex}}", - "editorCodeLens.foreground": "{{colors.outline.default.hex}}", - "editorCursor.background": "{{colors.background.default.hex}}", - "editorCursor.foreground": "{{colors.primary.default.hex}}", - "editorError.background": "{{colors.error_container.default.hex}}00", - "editorError.border": "{{colors.outline.default.hex}}00", - "editorError.foreground": "{{colors.error.default.hex}}", - "editorGroup.border": "{{colors.outline.default.hex}}", - "editorGroup.dropBackground": "{{colors.primary_container.default.hex}}40", - "editorGroup.emptyBackground": "{{colors.background.default.hex}}", - "editorGroupHeader.noTabsBackground": "{{colors.background.default.hex}}", - "editorGroupHeader.tabsBackground": "{{colors.surface.default.hex}}", - "editorGroupHeader.tabsBorder": "{{colors.outline.default.hex}}00", - "editorGutter.addedBackground": "{{colors.secondary.default.hex}}80", - "editorGutter.background": "{{colors.background.default.hex}}", - "editorGutter.commentRangeForeground": "{{colors.on_surface_variant.default.hex}}", - "editorGutter.deletedBackground": "{{colors.error.default.hex}}80", - "editorGutter.foldingControlForeground": "{{colors.on_surface_variant.default.hex}}", - "editorGutter.modifiedBackground": "{{colors.primary.default.hex}}80", - "editorHoverWidget.background": "{{colors.surface.default.hex}}", - "editorHoverWidget.border": "{{colors.outline.default.hex}}", - "editorHoverWidget.foreground": "{{colors.on_surface.default.hex}}", - "editorIndentGuide.activeBackground": "{{colors.outline.default.hex}}", - "editorIndentGuide.background": "{{colors.outline.default.hex}}20", - "editorInfo.background": "{{colors.tertiary_container.default.hex}}00", - "editorInfo.border": "{{colors.outline.default.hex}}00", - "editorInfo.foreground": "{{colors.tertiary.default.hex}}", - "editorLineNumber.activeForeground": "{{colors.primary.default.hex}}", - "editorLineNumber.foreground": "{{colors.outline.default.hex}}", - "editorLink.activeForeground": "{{colors.primary.default.hex}}", - "editorMarkerNavigation.background": "{{colors.surface.default.hex}}", - "editorMarkerNavigationError.background": "{{colors.error.default.hex}}40", - "editorMarkerNavigationInfo.background": "{{colors.tertiary.default.hex}}40", - "editorMarkerNavigationWarning.background": "{{colors.secondary.default.hex}}40", - "editorOverviewRuler.addedForeground": "{{colors.secondary.default.hex}}80", - "editorOverviewRuler.border": "{{colors.outline.default.hex}}", - "editorOverviewRuler.deletedForeground": "{{colors.error.default.hex}}80", - "editorOverviewRuler.errorForeground": "{{colors.error.default.hex}}", - "editorOverviewRuler.findMatchForeground": "{{colors.primary.default.hex}}", - "editorOverviewRuler.infoForeground": "{{colors.tertiary.default.hex}}", - "editorOverviewRuler.modifiedForeground": "{{colors.primary.default.hex}}80", - "editorOverviewRuler.rangeHighlightForeground": "{{colors.primary.default.hex}}", - "editorOverviewRuler.selectionHighlightForeground": "{{colors.primary.default.hex}}", - "editorOverviewRuler.warningForeground": "{{colors.secondary.default.hex}}", - "editorOverviewRuler.wordHighlightForeground": "{{colors.secondary.default.hex}}", - "editorOverviewRuler.wordHighlightStrongForeground": "{{colors.secondary.default.hex}}", - "editorRuler.foreground": "{{colors.outline_variant.default.hex}}", - "editorStickyScrollHover.background": "{{colors.surface_variant.default.hex}}", - "editorSuggestWidget.background": "{{colors.surface.default.hex}}", - "editorSuggestWidget.border": "{{colors.outline.default.hex}}", - "editorSuggestWidget.foreground": "{{colors.on_surface.default.hex}}", - "editorSuggestWidget.highlightForeground": "{{colors.primary.default.hex}}", - "editorSuggestWidget.selectedBackground": "{{colors.surface_variant.default.hex}}", - "editorWarning.background": "{{colors.secondary_container.default.hex}}00", - "editorWarning.border": "{{colors.outline.default.hex}}00", - "editorWarning.foreground": "{{colors.secondary.default.hex}}", - "editorWhitespace.foreground": "{{colors.outline.default.hex}}29", - "editorWidget.background": "{{colors.surface.default.hex}}", - "editorWidget.border": "{{colors.outline.default.hex}}", - "editorWidget.foreground": "{{colors.on_surface.default.hex}}", - "editorWidget.resizeBorder": "{{colors.outline.default.hex}}", - "extensionButton.prominentBackground": "{{colors.primary.default.hex}}", - "extensionButton.prominentForeground": "{{colors.on_primary.default.hex}}", - "extensionButton.prominentHoverBackground": "{{colors.primary_container.default.hex}}", - "focusBorder": "{{colors.primary.default.hex}}", - "foreground": "{{colors.on_background.default.hex}}", - "gitDecoration.conflictingResourceForeground": "{{colors.tertiary.default.hex}}c0", - "gitDecoration.deletedResourceForeground": "{{colors.error.default.hex}}c0", - "gitDecoration.ignoredResourceForeground": "{{colors.outline.default.hex}}80", - "gitDecoration.modifiedResourceForeground": "{{colors.primary.default.hex}}c0", - "gitDecoration.submoduleResourceForeground": "{{colors.on_surface_variant.default.hex}}c0", - "gitDecoration.untrackedResourceForeground": "{{colors.secondary.default.hex}}c0", - "icon.foreground": "{{colors.on_background.default.hex}}", - "input.background": "{{colors.surface_variant.default.hex}}", - "input.border": "{{colors.outline.default.hex}}00", - "input.foreground": "{{colors.on_surface_variant.default.hex}}", - "input.placeholderForeground": "{{colors.on_surface_variant.default.hex}}9e", - "inputOption.activeBackground": "{{colors.primary.default.hex}}30", - "inputOption.activeBorder": "{{colors.primary.default.hex}}30", - "inputOption.activeForeground": "{{colors.primary.default.hex}}", - "inputValidation.errorBackground": "{{colors.error_container.default.hex}}", - "inputValidation.errorBorder": "{{colors.error.default.hex}}", - "inputValidation.errorForeground": "{{colors.on_error_container.default.hex}}", - "inputValidation.infoBackground": "{{colors.tertiary_container.default.hex}}", - "inputValidation.infoBorder": "{{colors.tertiary.default.hex}}", - "inputValidation.infoForeground": "{{colors.on_tertiary_container.default.hex}}", - "inputValidation.warningBackground": "{{colors.secondary_container.default.hex}}", - "inputValidation.warningBorder": "{{colors.secondary.default.hex}}", - "inputValidation.warningForeground": "{{colors.on_secondary_container.default.hex}}", - "list.activeSelectionBackground": "{{colors.primary.default.hex}}40", - "list.activeSelectionForeground": "{{colors.on_surface.default.hex}}", - "list.dropBackground": "{{colors.primary_container.default.hex}}40", - "list.focusBackground": "{{colors.primary.default.hex}}30", - "list.focusForeground": "{{colors.on_surface.default.hex}}", - "list.highlightForeground": "{{colors.primary.default.hex}}", - "list.hoverBackground": "{{colors.surface_variant.default.hex}}40", - "list.hoverForeground": "{{colors.on_surface_variant.default.hex}}", - "list.inactiveSelectionBackground": "{{colors.surface_variant.default.hex}}", - "list.inactiveSelectionForeground": "{{colors.on_surface_variant.default.hex}}", - "listFilterWidget.background": "{{colors.tertiary_container.default.hex}}", - "listFilterWidget.noMatchesOutline": "{{colors.error.default.hex}}", - "listFilterWidget.outline": "{{colors.outline.default.hex}}00", - "menu.background": "{{colors.surface.default.hex}}", - "menu.border": "{{colors.outline.default.hex}}85", - "menu.foreground": "{{colors.on_surface.default.hex}}", - "menu.selectionBackground": "{{colors.primary_container.default.hex}}", - "menu.selectionBorder": "{{colors.outline.default.hex}}00", - "menu.selectionForeground": "{{colors.on_primary_container.default.hex}}", - "menu.separatorBackground": "{{colors.outline.default.hex}}", - "menubar.selectionBackground": "{{colors.surface_variant.default.hex}}1a", - "menubar.selectionForeground": "{{colors.on_surface.default.hex}}", - "merge.border": "{{colors.outline.default.hex}}00", - "merge.commonContentBackground": "{{colors.outline.default.hex}}20", - "merge.commonHeaderBackground": "{{colors.outline.default.hex}}30", - "merge.currentContentBackground": "{{colors.primary.default.hex}}20", - "merge.currentHeaderBackground": "{{colors.primary.default.hex}}30", - "merge.incomingContentBackground": "{{colors.tertiary.default.hex}}20", - "merge.incomingHeaderBackground": "{{colors.tertiary.default.hex}}30", - "minimap.background": "{{colors.background.default.hex}}", - "minimap.errorHighlight": "{{colors.error.default.hex}}80", - "minimap.findMatchHighlight": "{{colors.primary.default.hex}}80", - "minimap.selectionHighlight": "{{colors.primary.default.hex}}40", - "minimap.warningHighlight": "{{colors.secondary.default.hex}}80", - "minimapGutter.addedBackground": "{{colors.secondary.default.hex}}80", - "minimapGutter.deletedBackground": "{{colors.error.default.hex}}80", - "minimapGutter.modifiedBackground": "{{colors.primary.default.hex}}80", - "notificationCenter.border": "{{colors.outline.default.hex}}", - "notificationCenterHeader.background": "{{colors.surface_variant.default.hex}}", - "notificationCenterHeader.foreground": "{{colors.on_surface_variant.default.hex}}", - "notificationToast.border": "{{colors.outline.default.hex}}", - "notifications.background": "{{colors.surface.default.hex}}", - "notifications.border": "{{colors.outline.default.hex}}", - "notifications.foreground": "{{colors.on_surface.default.hex}}", - "notificationsErrorIcon.foreground": "{{colors.error.default.hex}}", - "notificationsInfoIcon.foreground": "{{colors.tertiary.default.hex}}", - "notificationsWarningIcon.foreground": "{{colors.secondary.default.hex}}", - "panel.background": "{{colors.surface.default.hex}}", - "panel.border": "{{colors.outline.default.hex}}", - "panel.dropBorder": "{{colors.primary.default.hex}}", - "panelSection.border": "{{colors.outline.default.hex}}", - "panelTitle.activeBorder": "{{colors.primary.default.hex}}", - "panelTitle.activeForeground": "{{colors.primary.default.hex}}", - "panelTitle.inactiveForeground": "{{colors.on_surface_variant.default.hex}}", - "peekView.border": "{{colors.primary.default.hex}}", - "peekViewEditor.background": "{{colors.surface.default.hex}}", - "peekViewEditor.matchHighlightBackground": "{{colors.tertiary.default.hex}}99", - "peekViewEditor.matchHighlightBorder": "{{colors.tertiary.default.hex}}", - "peekViewEditorGutter.background": "{{colors.surface.default.hex}}", - "peekViewResult.background": "{{colors.surface_variant.default.hex}}", - "peekViewResult.fileForeground": "{{colors.on_surface_variant.default.hex}}", - "peekViewResult.lineForeground": "{{colors.on_surface_variant.default.hex}}", - "peekViewResult.matchHighlightBackground": "{{colors.tertiary.default.hex}}40", - "peekViewResult.selectionBackground": "{{colors.primary.default.hex}}40", - "peekViewResult.selectionForeground": "{{colors.on_primary_container.default.hex}}", - "peekViewTitle.background": "{{colors.surface_variant.default.hex}}", - "peekViewTitleDescription.foreground": "{{colors.on_surface_variant.default.hex}}", - "peekViewTitleLabel.foreground": "{{colors.primary.default.hex}}", - "pickerGroup.border": "{{colors.outline.default.hex}}", - "pickerGroup.foreground": "{{colors.primary.default.hex}}", - "progressBar.background": "{{colors.primary.default.hex}}", - "scrollbar.shadow": "{{colors.background.default.hex}}00", - "scrollbarSlider.activeBackground": "{{colors.on_surface.default.hex}}80", - "scrollbarSlider.background": "{{colors.on_surface.default.hex}}30", - "scrollbarSlider.hoverBackground": "{{colors.on_surface.default.hex}}50", - "selection.background": "{{colors.primary.default.hex}}66", - "settings.checkboxBackground": "{{colors.surface_variant.default.hex}}", - "settings.checkboxBorder": "{{colors.outline.default.hex}}", - "settings.checkboxForeground": "{{colors.on_surface_variant.default.hex}}", - "settings.dropdownBackground": "{{colors.surface_variant.default.hex}}", - "settings.dropdownBorder": "{{colors.outline.default.hex}}", - "settings.dropdownForeground": "{{colors.on_surface_variant.default.hex}}", - "settings.focusedRowBackground": "{{colors.surface_variant.default.hex}}50", - "settings.headerForeground": "{{colors.on_background.default.hex}}", - "settings.modifiedItemIndicator": "{{colors.primary.default.hex}}", - "settings.numberInputBackground": "{{colors.surface_variant.default.hex}}", - "settings.numberInputBorder": "{{colors.outline.default.hex}}", - "settings.numberInputForeground": "{{colors.on_surface_variant.default.hex}}", - "settings.textInputBackground": "{{colors.surface_variant.default.hex}}", - "settings.textInputBorder": "{{colors.outline.default.hex}}", - "settings.textInputForeground": "{{colors.on_surface_variant.default.hex}}", - "sideBar.background": "{{colors.surface_container.default.hex}}", - "sideBar.dropBackground": "{{colors.surface_variant.default.hex}}40", - "sideBar.foreground": "{{colors.on_surface_variant.default.hex}}", - "sideBarSectionHeader.background": "{{colors.surface.default.hex}}", - "sideBarSectionHeader.foreground": "{{colors.on_surface.default.hex}}", - "sideBarTitle.foreground": "{{colors.primary.default.hex}}", - "statusBar.background": "{{colors.surface_variant.default.hex}}", - "statusBar.debuggingBackground": "{{colors.tertiary.default.hex}}", - "statusBar.debuggingForeground": "{{colors.on_tertiary.default.hex}}", - "statusBar.foreground": "{{colors.on_surface_variant.default.hex}}", - "statusBar.noFolderBackground": "{{colors.surface.default.hex}}", - "statusBar.noFolderForeground": "{{colors.on_surface.default.hex}}", - "statusBarItem.activeBackground": "{{colors.primary.default.hex}}25", - "statusBarItem.hoverBackground": "{{colors.primary.default.hex}}1f", - "statusBarItem.remoteBackground": "{{colors.primary.default.hex}}", - "statusBarItem.remoteForeground": "{{colors.on_primary.default.hex}}", - "tab.activeBackground": "{{colors.surface_variant.default.hex}}", - "tab.activeBorder": "{{colors.primary.default.hex}}", - "tab.activeForeground": "{{colors.on_surface_variant.default.hex}}", - "tab.activeModifiedBorder": "{{colors.tertiary.default.hex}}", - "tab.border": "{{colors.outline.default.hex}}00", - "tab.inactiveBackground": "{{colors.surface.default.hex}}", - "tab.inactiveForeground": "{{colors.on_surface.default.hex}}", - "tab.inactiveModifiedBorder": "{{colors.tertiary.default.hex}}80", - "tab.unfocusedActiveBackground": "{{colors.surface.default.hex}}99", - "tab.unfocusedActiveBorder": "{{colors.primary.default.hex}}80", - "tab.unfocusedActiveForeground": "{{colors.primary.default.hex}}99", - "tab.unfocusedActiveModifiedBorder": "{{colors.tertiary.default.hex}}40", - "tab.unfocusedInactiveBackground": "{{colors.surface_variant.default.hex}}99", - "tab.unfocusedInactiveForeground": "{{colors.on_surface_variant.default.hex}}99", - "tab.unfocusedInactiveModifiedBorder": "{{colors.tertiary.default.hex}}20", - "terminal.ansiBlack": "{{colors.terminal_normal_black.default.hex}}", - "terminal.ansiBlue": "{{colors.terminal_normal_blue.default.hex}}", - "terminal.ansiBrightBlack": "{{colors.terminal_bright_black.default.hex}}", - "terminal.ansiBrightBlue": "{{colors.terminal_bright_blue.default.hex}}", - "terminal.ansiBrightCyan": "{{colors.terminal_bright_cyan.default.hex}}", - "terminal.ansiBrightGreen": "{{colors.terminal_bright_green.default.hex}}", - "terminal.ansiBrightMagenta": "{{colors.terminal_bright_magenta.default.hex}}", - "terminal.ansiBrightRed": "{{colors.terminal_bright_red.default.hex}}", - "terminal.ansiBrightWhite": "{{colors.terminal_bright_white.default.hex}}", - "terminal.ansiBrightYellow": "{{colors.terminal_bright_yellow.default.hex}}", - "terminal.ansiCyan": "{{colors.terminal_normal_cyan.default.hex}}", - "terminal.ansiGreen": "{{colors.terminal_normal_green.default.hex}}", - "terminal.ansiMagenta": "{{colors.terminal_normal_magenta.default.hex}}", - "terminal.ansiRed": "{{colors.terminal_normal_red.default.hex}}", - "terminal.ansiWhite": "{{colors.terminal_normal_white.default.hex}}", - "terminal.ansiYellow": "{{colors.terminal_normal_yellow.default.hex}}", - "terminal.background": "{{colors.background.default.hex}}", - "terminal.foreground": "{{colors.on_background.default.hex}}", - "terminalCursor.background": "{{colors.background.default.hex}}", - "terminalCursor.foreground": "{{colors.primary.default.hex}}", - "textLink.activeForeground": "{{colors.primary_container.default.hex}}", - "textLink.foreground": "{{colors.primary.default.hex}}", - "titleBar.activeBackground": "{{colors.surface.default.hex}}", - "titleBar.activeForeground": "{{colors.on_surface.default.hex}}", - "titleBar.border": "{{colors.outline.default.hex}}00", - "titleBar.inactiveBackground": "{{colors.surface_variant.default.hex}}", - "titleBar.inactiveForeground": "{{colors.on_surface_variant.default.hex}}", - "tree.indentGuidesStroke": "{{colors.outline.default.hex}}", - "walkThrough.embeddedEditorBackground": "{{colors.surface.default.hex}}50", - "welcomePage.buttonBackground": "{{colors.surface_variant.default.hex}}", - "welcomePage.buttonHoverBackground": "{{colors.primary.default.hex}}20", - "widget.shadow": "{{colors.background.default.hex}}5c" - } -} diff --git a/.local/state/noctalia/community-templates/walker/.noctalia-cache.json b/.local/state/noctalia/community-templates/walker/.noctalia-cache.json deleted file mode 100644 index 3c8f87c..0000000 --- a/.local/state/noctalia/community-templates/walker/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "f6c0794815592d1fa3effeb022f9cc86" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/walker/template.toml b/.local/state/noctalia/community-templates/walker/template.toml deleted file mode 100644 index f369a16..0000000 --- a/.local/state/noctalia/community-templates/walker/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.walker] -name = "Walker" -category = "launcher" - -[templates.walker] -input_path = "walker.css" -output_path = "$XDG_CONFIG_HOME/walker/themes/noctalia/style.css" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/whitesur-icons/.noctalia-cache.json b/.local/state/noctalia/community-templates/whitesur-icons/.noctalia-cache.json deleted file mode 100644 index 71c5eb0..0000000 --- a/.local/state/noctalia/community-templates/whitesur-icons/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "1e9480043059bbd1bb3e58469b346def" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/whitesur-icons/template.toml b/.local/state/noctalia/community-templates/whitesur-icons/template.toml deleted file mode 100644 index 2b2f9be..0000000 --- a/.local/state/noctalia/community-templates/whitesur-icons/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.whitesur-icons] -name = "WhiteSur Icon Theme" -category = "system" - -[templates.whitesur_icons] -input_path = "colors" -output_path = "colors-final" -post_hook = "bash '{{ config_dir }}/apply.sh'" diff --git a/.local/state/noctalia/community-templates/yapfast/.noctalia-cache.json b/.local/state/noctalia/community-templates/yapfast/.noctalia-cache.json deleted file mode 100644 index 12e951a..0000000 --- a/.local/state/noctalia/community-templates/yapfast/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "44acf6d7a87993a44ee69c8d7e406efb" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/yapfast/template.toml b/.local/state/noctalia/community-templates/yapfast/template.toml deleted file mode 100644 index 1f003ef..0000000 --- a/.local/state/noctalia/community-templates/yapfast/template.toml +++ /dev/null @@ -1,10 +0,0 @@ -[catalog.yapfast] -name = "yapfast" -category = "chat" - -[templates.yapfast] -input_path_modes = { dark = "yapfast-dark.json", light = "yapfast-light.json" } -output_path = "$XDG_CACHE_HOME/noctalia/yapfast/theme.json" -post_hook = "python3 '{{ config_dir }}/apply.py'" -hook_async = false -requires_path = "$XDG_DATA_HOME/yapfast" diff --git a/.local/state/noctalia/community-templates/yazi/.noctalia-cache.json b/.local/state/noctalia/community-templates/yazi/.noctalia-cache.json deleted file mode 100644 index d9fc4f7..0000000 --- a/.local/state/noctalia/community-templates/yazi/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "696bcafb99a13144d145e511201fc501" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/yazi/template.toml b/.local/state/noctalia/community-templates/yazi/template.toml deleted file mode 100644 index 6a758b5..0000000 --- a/.local/state/noctalia/community-templates/yazi/template.toml +++ /dev/null @@ -1,12 +0,0 @@ -[catalog.yazi] -name = "Yazi" -category = "terminal" - -[templates.yazi] -input_path = "yazi.toml" -output_path = "$XDG_CONFIG_HOME/yazi/flavors/noctalia.yazi/flavor.toml" -post_hook = "bash '{{ config_dir }}/apply.sh'" - -[templates.yazi-syntax] -input_path = "yazi.tmTheme" -output_path = "$XDG_CONFIG_HOME/yazi/flavors/noctalia.yazi/tmtheme.xml" diff --git a/.local/state/noctalia/community-templates/yeet/.noctalia-cache.json b/.local/state/noctalia/community-templates/yeet/.noctalia-cache.json deleted file mode 100644 index 4037bec..0000000 --- a/.local/state/noctalia/community-templates/yeet/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "3d4c6bd711a9f93059bba5ad6027bd94" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/yeet/template.toml b/.local/state/noctalia/community-templates/yeet/template.toml deleted file mode 100644 index 0366544..0000000 --- a/.local/state/noctalia/community-templates/yeet/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.yeet] -name = "Yeet" -category = "launcher" - -[templates.yeet] -input_path = "yeet.css" -output_path = "$XDG_CONFIG_HOME/yeet/style.css" diff --git a/.local/state/noctalia/community-templates/ytm-player/.noctalia-cache.json b/.local/state/noctalia/community-templates/ytm-player/.noctalia-cache.json deleted file mode 100644 index da02d8b..0000000 --- a/.local/state/noctalia/community-templates/ytm-player/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "39baee714aeeae9481add10d52691aca" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/ytm-player/template.toml b/.local/state/noctalia/community-templates/ytm-player/template.toml deleted file mode 100644 index 55266f1..0000000 --- a/.local/state/noctalia/community-templates/ytm-player/template.toml +++ /dev/null @@ -1,7 +0,0 @@ -[catalog.ytm-player] -name = "YTM Player" -category = "audio" - -[templates.ytm-player] -input_path = "theme.toml" -output_path = "$XDG_CONFIG_HOME/ytm-player/theme.toml" diff --git a/.local/state/noctalia/community-templates/zapfast/.noctalia-cache.json b/.local/state/noctalia/community-templates/zapfast/.noctalia-cache.json deleted file mode 100644 index 14b4f6a..0000000 --- a/.local/state/noctalia/community-templates/zapfast/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "2e4bc96d11741d6be23ea95733a48082" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/zapfast/template.toml b/.local/state/noctalia/community-templates/zapfast/template.toml deleted file mode 100644 index b469c8b..0000000 --- a/.local/state/noctalia/community-templates/zapfast/template.toml +++ /dev/null @@ -1,9 +0,0 @@ -[catalog.zapfast] -name = "Zapfast" -category = "chat" - -[templates.zapfast] -input_path_modes = { dark = "zapfast-dark.json", light = "zapfast-light.json" } -output_path = "$XDG_CONFIG_HOME/zapfast/themes/noctalia.json" -post_hook = "zapfast reload-themes >/dev/null 2>&1 || true" -requires_path = "$XDG_CONFIG_HOME/zapfast" diff --git a/.local/state/noctalia/community-templates/zathura/.noctalia-cache.json b/.local/state/noctalia/community-templates/zathura/.noctalia-cache.json deleted file mode 100644 index 1b699cb..0000000 --- a/.local/state/noctalia/community-templates/zathura/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "72b251fa8fcc55b48253498d69b20b59" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/zathura/template.toml b/.local/state/noctalia/community-templates/zathura/template.toml deleted file mode 100644 index fe1bff3..0000000 --- a/.local/state/noctalia/community-templates/zathura/template.toml +++ /dev/null @@ -1,15 +0,0 @@ -[catalog.zathura] -name = "Zathura" -category = "misc" - -[templates.zathura] -input_path = "zathurarc" -output_path = "$XDG_CONFIG_HOME/zathura/noctaliarc" -post_hook = "bash '{{ config_dir }}/apply.sh'" -requires_path = "~/.config/zathura" - -[templates.zathura-flatpak] -input_path = "zathurarc" -output_path = "~/.var/app/org.pwmt.zathura/config/zathura/noctaliarc" -post_hook = "bash '{{ config_dir }}/apply.sh'" -requires_path = "~/.var/app/org.pwmt.zathura" diff --git a/.local/state/noctalia/community-templates/zed/.noctalia-cache.json b/.local/state/noctalia/community-templates/zed/.noctalia-cache.json deleted file mode 100644 index aac3669..0000000 --- a/.local/state/noctalia/community-templates/zed/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "d2ba255cfee1fb8d338e8853fd332d5f" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/zed/template.toml b/.local/state/noctalia/community-templates/zed/template.toml deleted file mode 100644 index b7a94c9..0000000 --- a/.local/state/noctalia/community-templates/zed/template.toml +++ /dev/null @@ -1,11 +0,0 @@ -[catalog.zed] -name = "Zed" -category = "editor" - -[templates.zed] -input_path = "zed.json" -output_path = "$XDG_CONFIG_HOME/zed/themes/noctalia.json" - -[templates.gram] -input_path = "zed.json" -output_path = "$XDG_CONFIG_HOME/gram/themes/noctalia.json" diff --git a/.local/state/noctalia/community-templates/zellij/.noctalia-cache.json b/.local/state/noctalia/community-templates/zellij/.noctalia-cache.json deleted file mode 100644 index 6036cad..0000000 --- a/.local/state/noctalia/community-templates/zellij/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "2191caae03acee7b31f61150f051dba1" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/zellij/template.toml b/.local/state/noctalia/community-templates/zellij/template.toml deleted file mode 100644 index dc1eb54..0000000 --- a/.local/state/noctalia/community-templates/zellij/template.toml +++ /dev/null @@ -1,8 +0,0 @@ -[catalog.zellij] -name = "Zellij" -category = "misc" - -[templates.zellij] -input_path = "zellij.kdl" -output_path = "$XDG_CONFIG_HOME/zellij/themes/noctalia.kdl" -# post_hook = "touch $XDG_CONFIG_HOME/zellij/config.kdl" # trigger config auto-reload diff --git a/.local/state/noctalia/community-templates/zen-browser/.noctalia-cache.json b/.local/state/noctalia/community-templates/zen-browser/.noctalia-cache.json deleted file mode 100644 index a978ea4..0000000 --- a/.local/state/noctalia/community-templates/zen-browser/.noctalia-cache.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "files": { - "template.toml": "86e208d05228f153cd8b69d85b92dd6d" - }, - "version": 1 -} diff --git a/.local/state/noctalia/community-templates/zen-browser/template.toml b/.local/state/noctalia/community-templates/zen-browser/template.toml deleted file mode 100644 index e66a689..0000000 --- a/.local/state/noctalia/community-templates/zen-browser/template.toml +++ /dev/null @@ -1,17 +0,0 @@ -[catalog.zen-browser] -name = "Zen Browser" -category = "browser" - -# Both entries run the same apply.sh, which rewrites userChrome.css, userContent.css and -# user.js in every Zen profile: concurrent runs would clobber each other's edits. -[templates.zen_browser_chrome] -input_path = "zen-userChrome.css" -output_path = "$XDG_CACHE_HOME/noctalia/zen-browser/zen-userChrome.css" -post_hook = "bash '{{ config_dir }}/apply.sh'" -hook_async = false - -[templates.zen_browser_content] -input_path = "zen-userContent.css" -output_path = "$XDG_CACHE_HOME/noctalia/zen-browser/zen-userContent.css" -post_hook = "bash '{{ config_dir }}/apply.sh'" -hook_async = false diff --git a/.local/state/noctalia/libreoffice-theme-staging/Theme_Colors.xcu b/.local/state/noctalia/libreoffice-theme-staging/Theme_Colors.xcu deleted file mode 100644 index 15e6a63..0000000 --- a/.local/state/noctalia/libreoffice-theme-staging/Theme_Colors.xcu +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - 131314 - f7f7fa - 1a1a1a - cccccc - - 131314 - e4e2e2 - 131314 - 2a2a2a - e4e2e2 - bfc7d2 - 44474b - c5c6cb - 808080 - false - 44474b - 1f1f20 - bfc7d2 - 293139 - bfc7d2 - 2a2a2a - 1f1f20 - e4e2e2 - bfc7d2 - 293139 - 1f1f20 - e4e2e2 - bfc7d2 - 293139 - 8e9195 - 1f1f20 - c5c6cb - 44474b - - ffffff - d32f2f - 1a1a1a - 0b57d0 - d97706 - 444444 - 15803d - 6b7280 - - e8e8e8true - e8e8e8true - d9d9d9 - - - - diff --git a/.local/state/noctalia/notification_history.enc b/.local/state/noctalia/notification_history.enc deleted file mode 100644 index dda1c25..0000000 Binary files a/.local/state/noctalia/notification_history.enc and /dev/null differ diff --git a/.local/state/noctalia/notification_history_assets/i_0189762e1b55d344fa76d011152c3940.webp.enc b/.local/state/noctalia/notification_history_assets/i_0189762e1b55d344fa76d011152c3940.webp.enc deleted file mode 100644 index f4779fa..0000000 Binary files a/.local/state/noctalia/notification_history_assets/i_0189762e1b55d344fa76d011152c3940.webp.enc and /dev/null differ diff --git a/.local/state/noctalia/notification_history_assets/i_5e8f4d60252fbd20d0fde4508fb79d8c.webp.enc b/.local/state/noctalia/notification_history_assets/i_5e8f4d60252fbd20d0fde4508fb79d8c.webp.enc deleted file mode 100644 index 6897fc5..0000000 --- a/.local/state/noctalia/notification_history_assets/i_5e8f4d60252fbd20d0fde4508fb79d8c.webp.enc +++ /dev/null @@ -1,11 +0,0 @@ -NOCTALIAENC1&ƒ€€Ê¾�g6ª§A1ÝII£-®.†óF§/V¿qìF¹`¸äY)C&ê ÆçÛ©ÿ�ÏÙOZ^”Ƀ[D ·Ÿ®æýèÐYm!Ç_t_=tg2hÍÝÃŧòÆY#*wWÅÒ ¡ÞÁßÔ1ýž‚Äå1Iåm³cæOÎXfÍ×’À%ÜW÷æ+€,ƒ°†8ðCæx‘aq—'Ü�šÍß}¢„Ò�0LšV€#Y�œ°®ÜœÈh 1² é5§ß-0³jì`ônQìý;Û·‡&Øâq½Ç÷=,tr;܉‡ñöLw• *¸ãÿ‚~z,'Šq£sM6‰´+—Ãë|†‹Y�Y¦•vµ6 -;'ÏXÑÒ%ç|V½‡ yƒpc� ÞÙcºû>!úMãõc Y¨Ïb‘A‚Íbã„ØÕ×C`¡î¿‹@ -; ÀÍS3J|N çâøFu‡ô•u–Iäh-ª+í+Ïê ª -˜ ³ze(%í“b  -@i—7+ŒÙhhýXôP -—\GâK}¿øFæºFZ�– 3Æ|å0ƒ°8P>Ä£·¤ Ä  -É1Ô^úöîþ¹3îæ†µhˆèÏ8hc$eã†�ìcD [5à×ún›É÷åù‹nï†*–;¨]w} -×Õņrlgíp˾-ÓðÖMF/5gA8Z1<ñV?ÕûÝ'uÈ@°¡þRòÇU¹ùåí˹Ä[ÞŽG®ÁÎ"jhÁãœsr‚w]-;K9I_¸›ôZ¨Àì¿Už ¹ú—ùL½Tœ0¢Êmf¦©�è=²”£‰‹f‡5ZôÛöH}“>ÍxL€¼£w¢¸±c¬^ðð´F{ - -yÅŒû7Wð”Þ‹ïfÈ«åG_õ­ž¿p-4wgÿ7>�b­!ç²ÄKùÏ>mÁr!Øh¨‹(„ —³„Ç�V¥þži# µœF ÜÚ¶-:߈팳ÎEèB3ïñ&­þâV¢ÚçUaãLPÉ!ÅCgvXßWoÜø-Óâþ’WeŽI&+ÔÆ§ˆß鉶2dÓá‚iÇ8¼Ï{q(8÷ä˜�—ð·ŠY†STÒžL1>Hœšµî ®g¯F‘5Ý9ÁBΰËöÓ·;n|/%MS(„K£”ô'~U!cÓãþ÷;U÷¯¿óºÏù.mx›S#Æ�µ½nÛd‰aZÇ 8ÇNköå…‚m…>=pÁϵ,wžeÚi PùÓ‡ ‰æ½Á[«:{‹¿Ð7Î1~‡äoª Ù‰¹ï *±â_œ¡ ÐPý«mMEB#ž ²—\‚åPvx×Fç ú©v솄٠g ßÊz±ÒjÉr Ջ¶¯é MS8žÓO![i/¿ìNÂôõk§òº±VDµøº•PªÊÔÍ…Ý]p$¸ç‚Lôb©zzêˆàºpøØ˜°0{wÃÞa‘yf½Œðü®bš‰ -�¿mfÅéæ< \ No newline at end of file diff --git a/.local/state/noctalia/notification_history_assets/i_6dee170cfbe01a68319de050212fdf86.webp.enc b/.local/state/noctalia/notification_history_assets/i_6dee170cfbe01a68319de050212fdf86.webp.enc deleted file mode 100644 index a4ee100..0000000 Binary files a/.local/state/noctalia/notification_history_assets/i_6dee170cfbe01a68319de050212fdf86.webp.enc and /dev/null differ diff --git a/.local/state/noctalia/notification_history_assets/i_8b233395737e6bc5acde10ecd32ecdcc.webp.enc b/.local/state/noctalia/notification_history_assets/i_8b233395737e6bc5acde10ecd32ecdcc.webp.enc deleted file mode 100644 index db706ad..0000000 Binary files a/.local/state/noctalia/notification_history_assets/i_8b233395737e6bc5acde10ecd32ecdcc.webp.enc and /dev/null differ diff --git a/.local/state/noctalia/plugins/data/strob3/dnf-updater/state.json b/.local/state/noctalia/plugins/data/strob3/dnf-updater/state.json deleted file mode 100644 index d03cf85..0000000 --- a/.local/state/noctalia/plugins/data/strob3/dnf-updater/state.json +++ /dev/null @@ -1 +0,0 @@ -{"dnf":{"count":13,"packages":[{"arch":"x86_64","download_bytes":150994773,"download_formatted":"144.0 MiB","evr":"157.0.8103.38-1","install_bytes":473654166,"install_formatted":"451.7 MiB","name":"google-chrome-stable","repo":"google-chrome"},{"arch":"x86_64","download_bytes":237159,"download_formatted":"231.6 KiB","evr":"710-2.fc44","install_bytes":500346,"install_formatted":"488.6 KiB","name":"less","repo":"updates"},{"arch":"x86_64","download_bytes":11154,"download_formatted":"10.9 KiB","evr":"710-2.fc44","install_bytes":2453,"install_formatted":"2.4 KiB","name":"less-color","repo":"updates"},{"arch":"x86_64","download_bytes":14509767,"download_formatted":"13.8 MiB","evr":"26.2.6-1.fc44","install_bytes":55835303,"install_formatted":"53.2 MiB","name":"mesa-dri-drivers","repo":"updates"},{"arch":"x86_64","download_bytes":9467,"download_formatted":"9.2 KiB","evr":"26.2.6-1.fc44","install_bytes":3682,"install_formatted":"3.6 KiB","name":"mesa-filesystem","repo":"updates"},{"arch":"x86_64","download_bytes":144525,"download_formatted":"141.1 KiB","evr":"26.2.6-1.fc44","install_bytes":407983,"install_formatted":"398.4 KiB","name":"mesa-libEGL","repo":"updates"},{"arch":"x86_64","download_bytes":142203,"download_formatted":"138.9 KiB","evr":"26.2.6-1.fc44","install_bytes":387286,"install_formatted":"378.2 KiB","name":"mesa-libGL","repo":"updates"},{"arch":"x86_64","download_bytes":15617,"download_formatted":"15.3 KiB","evr":"26.2.6-1.fc44","install_bytes":19996,"install_formatted":"19.5 KiB","name":"mesa-libgbm","repo":"updates"},{"arch":"x86_64","download_bytes":29137089,"download_formatted":"27.8 MiB","evr":"26.2.6-1.fc44","install_bytes":182459359,"install_formatted":"174.0 MiB","name":"mesa-vulkan-drivers","repo":"updates"},{"arch":"noarch","download_bytes":11984,"download_formatted":"11.7 KiB","evr":"3.14.10-1.fc44","install_bytes":23,"install_formatted":"23 B","name":"python-unversioned-command","repo":"updates"},{"arch":"x86_64","download_bytes":30236,"download_formatted":"29.5 KiB","evr":"3.14.10-1.fc44","install_bytes":29354,"install_formatted":"28.7 KiB","name":"python3","repo":"updates"},{"arch":"x86_64","download_bytes":10672326,"download_formatted":"10.2 MiB","evr":"3.14.10-1.fc44","install_bytes":46317997,"install_formatted":"44.2 MiB","name":"python3-libs","repo":"updates"},{"arch":"x86_64","download_bytes":643432,"download_formatted":"628.4 KiB","evr":"5.7-1.fc44","install_bytes":1437679,"install_formatted":"1.4 MiB","name":"swayimg","repo":"updates"}],"status":"done","total_download_bytes":206559732,"total_download_formatted":"197.0 MiB","total_install_bytes":761055627,"total_install_formatted":"725.8 MiB"},"flatpak":{"count":0,"packages":{},"status":"done","total_download_bytes":0,"total_download_formatted":"0 B","total_install_bytes":0,"total_install_formatted":"0 B"},"last_check":"04/11 20:23","last_check_timestamp":1793820226,"last_update_timestamp":1793730402,"reboot_required":false,"status":"IDLE","total_count":13,"total_download_bytes":206559732,"total_download_formatted":"197.0 MiB","total_install_bytes":761055627,"total_install_formatted":"725.8 MiB"} \ No newline at end of file diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/CHANGELOG.md b/.local/state/noctalia/plugins/materialized/community/dnf-updater/CHANGELOG.md deleted file mode 100644 index 7e8f03c..0000000 --- a/.local/state/noctalia/plugins/materialized/community/dnf-updater/CHANGELOG.md +++ /dev/null @@ -1,59 +0,0 @@ -## [1.1.0] - 2026-10-26 - -### Added -- **Reboot Required Detection**: Detects pending system restart via `dnf needs-restarting -r` with warning banner in panel and widget status indicator. -- **Package Search Filter**: Search bar to filter pending DNF and Flatpak packages by name, repository, or runtime. -- **Header Overview**: Relative last check and last full upgrade timestamps in panel header. -- **Weekly Check Interval**: Extended check interval limit up to 7 days (10080 min). -- **Terminal Confirmation**: Added `-y` flag to terminal updates for promptless execution. - -### Fixed -- **Badge Overflow**: Truncated COPR repo names, suppressed redundant native arch and official Fedora repo badges, and capped badge width. -- **State Persistence**: Cached check results in `pluginDataDir()` across restarts to prevent redundant checks on login. -- **Terminal Update Sync**: Triggered auto-recheck via IPC when terminal updates complete, and closed panel on launch. - -## [1.0.3] - 2026-10-06 - -### Added -- **Plugin Version in Header**: Display installed version next to panel title in `panel.luau`. -- **Flatpak Runtime Updates**: Added `include_flatpak_runtimes` setting and row badge in `panel.luau`. - -### Fixed -- Fixes noctalia-dev/community-plugins#922: **Flatpak Ghost Updates**: Added `--app` flag to `flatpak remote-ls --updates` to filter unmatched theme extensions and EOL runtimes. -- **Flatpak Selection Crash**: Defined `flatpakCount` scope in `updateFlatpak()` to fix nil comparison crash and infinite loading. -- **Background Upgrade Protection**: Raised background transaction timeout to 10m and wrapped helper with `systemd-inhibit` to prevent SIGKILL and mid-upgrade aborts. -- **Flatpak Parameter Limits**: Removed duplicate Flatpak refs, relaxed validation, and simplified full updates. -- **Timeout Error Reporting**: Added `result.timedOut` handling to DNF and Flatpak update errors advising terminal execution. - -## [1.0.2] - 2026-09-22 - -### Added -- **Installer Script for passwordless background updates**: Added `scripts/install.sh` for remote/local install, group checks (`wheel`/`sudo`), SELinux restore, and uninstallation. - -### Fixed -- **Check Retry**: Retried DNF/Flatpak checks once when they time out. -- **Stream Exclusions**: Fixed exclusions for RPM modules and epochs containing colons. -- **Polkit Compatibility**: Added support for both `wheel` and `sudo` groups. -- **Error Capture**: Captured DNF error output when `stderr` is empty. - -## [1.0.1] - 2026-09-21 - -### Security -- **Helper**: Restricted privileged DNF commands to supported operations. -- **Input Validation**: Added validation for DNF package names and Flatpak refs. -- **Shell Quoting**: Safely escaped dynamic terminal arguments. - -### Fixed -- **Terminal Updates**: Combined DNF and Flatpak updates into one terminal session. -- **Flatpak Updates**: Fixed full Flatpak updates to include runtimes. -- **Size Parsing**: Improved Flatpak update size parsing. -- **Package Keys**: Fixed inconsistent Flatpak package keys. - -## [1.0.0] - 2026-09-19 - -### Added -- Initial release of DNF Updater. -- DNF5 and Flatpak update monitoring and management. -- Flyout panel with package selection and size estimation. -- Terminal and passwordless Polkit background update modes. -- Status bar widget with update count badges and indicators. diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/LICENSE b/.local/state/noctalia/plugins/materialized/community/dnf-updater/LICENSE deleted file mode 100644 index 0540c65..0000000 --- a/.local/state/noctalia/plugins/materialized/community/dnf-updater/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2026 strob3 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/README.md b/.local/state/noctalia/plugins/materialized/community/dnf-updater/README.md deleted file mode 100644 index c0a3e82..0000000 --- a/.local/state/noctalia/plugins/materialized/community/dnf-updater/README.md +++ /dev/null @@ -1,119 +0,0 @@ -# DNF Updater -![dnf-updater thumbnail](thumbnail.webp) - -DNF Updater monitors and manages pending DNF5 and Flatpak updates directly from the Noctalia bar. It provides a lightweight update badge in the bar, per-package selection to skip or apply specific upgrades, package search filtering, reboot required detection, download size estimation, and safe execution through Polkit or an interactive terminal. - -## Plugin - -| Field | Value | -| --- | --- | -| ID | `strob3/dnf-updater` | -| Entries | Bar widget: `widget`; panel: `panel`; service: `service` | - -## Requirements - -The plugin expects the following dependencies on `$PATH`: - -- `dnf5` - required for DNF, COPR, and RPM package management. Fedora 41+ uses DNF5 by default. -- `flatpak` - optional, Flatpak application manager -- `pkexec` - (Polkit authentication for non-interactive privileged package installation) - -### Passwordless Background Upgrades (Optional) - -To enable background upgrades without a password prompt, install the included hardened helper script and Polkit rule with: - -```sh -curl -fsSL https://raw.githubusercontent.com/strob3/dnf-updater/main/scripts/install.sh | sudo bash -``` - -Alternatively, if you have cloned the repository locally: - -```sh -sudo ./scripts/install.sh -``` - -To remove the helper and Polkit rule later: - -```sh -curl -fsSL https://raw.githubusercontent.com/strob3/dnf-updater/main/scripts/install.sh | sudo bash -s -- --uninstall -# or: sudo ./scripts/install.sh --uninstall -``` - -## Usage - -Add the DNF Updater widget to the bar using Noctalia's bar widget picker. Left-click the widget to open the updates panel. You can also toggle the panel or bind it to a compositor shortcut: - -```sh -noctalia msg panel-toggle strob3/dnf-updater:panel -``` - -### Shortcuts & Keybindings - -You can also toggle the panel with a hotkey or shell alias: - -**Niri** (`~/.config/niri/config.kdl`): -```kdl -binds { - Mod+U { spawn "noctalia" "msg" "panel-toggle" "strob3/dnf-updater:panel"; } -} -``` - -**Hyprland** (`hyprland.conf`): -```conf -bind = $mainMod, U, exec, noctalia msg panel-toggle strob3/dnf-updater:panel -``` - -**Shell Alias** (`~/.bashrc` or `~/.zshrc`): -```sh -alias dnf-updater="noctalia msg panel-toggle strob3/dnf-updater:panel" -alias dnf-check="noctalia msg plugin strob3/dnf-updater:service service check" -``` - -### Controls - -| Action | Target | Description | -| --- | --- | --- | -| **Left Click** | Bar Widget | Open or close the updates panel | -| **Right Click** | Bar Widget | Refresh the updates | -| **Middle Click** | Bar Widget | Open plugin settings in *Settings → Plugins* | -| **Search Input** | Panel Top | Filter packages in real time by name, repo, or ref | -| **Click Row** | Package Row | Toggle package selection (include or exclude from update) | -| **Chevron Click** | Section Header | Collapse or expand DNF or Flatpak package section | -| **Check Click** | Section Header | Select all or deselect all packages in section | -| **Refresh Icon** | Panel Header | Re-check repositories for latest updates | -| **Update Button** | Panel Bottom | Apply updates for all selected packages | - -## Settings - -| Setting | Type | Default | Description | -| --- | --- | --- | --- | -| `check_interval` | `int` | `30` | Interval in minutes between automatic checks (`0` to `10080`, `0` disables). | -| `enable_dnf` | `bool` | `true` | Enable checking and upgrading DNF5 system packages. | -| `enable_flatpak` | `bool` | `true` | Enable checking and upgrading Flatpak applications. | -| `include_flatpak_runtimes` | `bool` | `false` | Include Flatpak runtime and extension updates alongside applications. | -| `show_widget_when_clean` | `bool` | `true` | Show the widget icon in the bar even when system is up to date. | -| `notify_on_updates` | `bool` | `true` | Send a desktop notification when new pending updates are found. | -| `update_in_terminal` | `bool` | `true` | Launch update commands inside your terminal emulator instead of background Polkit execution. | -| `glyph` | `glyph` | `package` | Widget icon glyph displayed in the bar. | - -## IPC - -Trigger background service operations using `noctalia msg`: - -```sh -# Check for updates immediately -noctalia msg plugin strob3/dnf-updater:service service check - -# Apply updates for all pending packages -noctalia msg plugin strob3/dnf-updater:service service update -``` - -## Notes - -- **Privilege Separation**: Noctalia never runs as root. System upgrades invoke hardened helper script with explicit arguments via Polkit, or launch inside the user's terminal emulator when configured. -- **Selective Upgrades**: When packages are deselected, DNF5 is invoked with `--exclude=` arguments and Flatpak is invoked with only selected application IDs. -- **Background Checks**: Update queries use non-blocking JSON queries (`dnf5 check-upgrade --json` and `flatpak remote-ls --updates -j`) to prevent freezing the shell. -- **Reboot Detection**: Checks `dnf needs-restarting -r` to detect when core packages (kernel, systemd, glibc) require a system restart. - -## License -[MIT](LICENSE) diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/panel.luau b/.local/state/noctalia/plugins/materialized/community/dnf-updater/panel.luau deleted file mode 100644 index 62b38da..0000000 --- a/.local/state/noctalia/plugins/materialized/community/dnf-updater/panel.luau +++ /dev/null @@ -1,1009 +0,0 @@ ---!nonstrict --- Panel entry: declarative pop-up panel for DNF Updater (DNF5 + Flatpak). --- Renders summary cards, categorized update lists, storage metrics, and execution triggers. - -local enableDnf = noctalia.getConfig("enable_dnf") ~= false -local enableFlatpak = noctalia.getConfig("enable_flatpak") ~= false - -local function getPluginVersion() - local text = noctalia.readFile("plugin.toml") - if type(text) ~= "string" then - return "" - end - return ("\n" .. text):match('\nversion%s*=%s*"([^"]+)"') or "" -end - -local updateState = noctalia.state.get("update_state") - -local excludedDnf = {} -local excludedFlatpak = {} - --- Native-arch packages are the norm; only an odd one (noarch, i686) is worth a badge. -local machineArch = (noctalia.readFile("/proc/sys/kernel/arch") or ""):match("%S+") or "" - --- Fedora's own repos: their name tells nothing ("updates"), only third-party origins are worth showing. -local officialRepos = { fedora = true, updates = true, ["updates-testing"] = true, ["updates-archive"] = true, ["fedora-cisco-openh264"] = true } - -local dnfCollapsed = false -local flatpakCollapsed = false -local searchQuery = "" - -local render -- forward declaration - -local function formatBytes(bytes) - if not bytes or bytes <= 0 then - return "0 B" - end - local units = { "B", "KiB", "MiB", "GiB", "TiB" } - local b = tonumber(bytes) or 0 - local uIndex = 1 - while b >= 1024 and uIndex < #units do - b = b / 1024 - uIndex = uIndex + 1 - end - if uIndex == 1 then - return string.format("%d %s", b, units[uIndex]) - else - return string.format("%.1f %s", b, units[uIndex]) - end -end - -local function parseSizeToBytes(sizeStr) - if not sizeStr or type(sizeStr) ~= "string" or sizeStr == "" then - return 0 - end - local s = sizeStr:gsub(",", ".") - local numStr, unit = s:match("([%d%.]+).-([%a]+)") - if not numStr or not unit then - return 0 - end - local num = tonumber(numStr) - if not num or num <= 0 then - return 0 - end - unit = string.upper(unit) - if unit == "B" or unit == "BYTES" then - return math.floor(num) - elseif unit == "KIB" then - return math.floor(num * 1024) - elseif unit == "KB" or unit == "K" then - return math.floor(num * 1000) - elseif unit == "MIB" then - return math.floor(num * 1024 * 1024) - elseif unit == "MB" or unit == "M" then - return math.floor(num * 1000 * 1000) - elseif unit == "GIB" then - return math.floor(num * 1024 * 1024 * 1024) - elseif unit == "GB" or unit == "G" then - return math.floor(num * 1000 * 1000 * 1000) - elseif unit == "TIB" then - return math.floor(num * 1024 * 1024 * 1024 * 1024) - elseif unit == "TB" or unit == "T" then - return math.floor(num * 1000 * 1000 * 1000 * 1000) - end - return math.floor(num) -end - -local function getPackageDownloadBytes(pkg) - if not pkg then return 0 end - if pkg.download_bytes and pkg.download_bytes > 0 then - return pkg.download_bytes - end - if pkg.download_formatted and pkg.download_formatted ~= "" then - local b = parseSizeToBytes(pkg.download_formatted) - if b > 0 then return b end - end - if pkg.install_bytes and pkg.install_bytes > 0 then - return pkg.install_bytes - end - if pkg.install_formatted and pkg.install_formatted ~= "" then - local b = parseSizeToBytes(pkg.install_formatted) - if b > 0 then return b end - end - return 0 -end - -local function getFlatpakKey(pkg) - if not pkg then return "" end - if pkg.ref and pkg.ref ~= "" then return pkg.ref end - if pkg.id and pkg.id ~= "" then return pkg.id end - return pkg.name or "" -end - -local function toggleExcludeDnf(name) - if excludedDnf[name] then - excludedDnf[name] = nil - else - excludedDnf[name] = true - end - if render then - render() - end -end - -local function toggleExcludeFlatpak(id) - if excludedFlatpak[id] then - excludedFlatpak[id] = nil - else - excludedFlatpak[id] = true - end - if render then - render() - end -end - -local function toggleAllDnf(packages) - local anyExcluded = false - for _, pkg in ipairs(packages) do - if excludedDnf[pkg.name] then - anyExcluded = true - break - end - end - if anyExcluded then - for _, pkg in ipairs(packages) do - excludedDnf[pkg.name] = nil - end - else - for _, pkg in ipairs(packages) do - excludedDnf[pkg.name] = true - end - end - if render then - render() - end -end - -local function toggleAllFlatpak(packages) - local anyExcluded = false - for _, pkg in ipairs(packages) do - local k = getFlatpakKey(pkg) - if excludedFlatpak[k] then - anyExcluded = true - break - end - end - if anyExcluded then - for _, pkg in ipairs(packages) do - excludedFlatpak[getFlatpakKey(pkg)] = nil - end - else - for _, pkg in ipairs(packages) do - excludedFlatpak[getFlatpakKey(pkg)] = true - end - end - if render then - render() - end -end - -local function tr(key, params) - local text = noctalia.tr(key) or key - if params and type(params) == "table" then - for k, v in pairs(params) do - text = text:gsub("{" .. k .. "}", tostring(v)) - end - end - return text -end - -local function formatAgo(timestamp) - local minutes = math.floor((os.time() - timestamp) / 60) - if minutes < 1 then - return tr("ago.now") - elseif minutes < 60 then - return tr("ago.minutes", { n = minutes }) - elseif minutes < 1440 then - return tr("ago.hours", { n = math.floor(minutes / 60) }) - end - return tr("ago.days", { n = math.floor(minutes / 1440) }) -end - -local function formatLastChecked(state) - if state and (state.last_check_timestamp or 0) > 0 then - return tr("status.last_checked", { time = formatAgo(state.last_check_timestamp) }) - end - return tr("status.never_checked") -end - -local function statusCard(state) - local status = state and state.status or "IDLE" - local total = state and state.total_count or 0 - - if status == "CHECKING" then - return ui.row({ - key = "status-card-checking", - padding = 12, - paddingH = 14, - fill = "surface", - radius = 8, - align = "center", - gap = 10, - }, { - ui.glyph({ name = "refresh", size = 18, color = "primary" }), - ui.label({ - text = tr("status.checking"), - fontSize = 13, - fontWeight = "semibold", - color = "on_surface", - flexGrow = 1, - }), - }) - elseif status == "UPDATING" then - local dnfStatus = state.dnf and state.dnf.status or "idle" - local flatpakStatus = state.flatpak and state.flatpak.status or "idle" - - local dnfText = tr("status.dnf_" .. dnfStatus) - local flatpakText = tr("status.flatpak_" .. flatpakStatus) - - return ui.column({ - key = "status-card-updating", - padding = 12, - paddingH = 14, - fill = "surface", - radius = 8, - gap = 6, - }, { - ui.row({ align = "center", gap = 10 }, { - ui.glyph({ name = "refresh", size = 18, color = "primary" }), - ui.label({ - text = tr("status.updating"), - fontSize = 13, - fontWeight = "semibold", - color = "on_surface", - flexGrow = 1, - }), - }), - ui.row({ align = "center", gap = 16, paddingH = 28 }, { - ui.label({ text = dnfText, fontSize = 11, color = "on_surface_variant" }), - ui.label({ text = flatpakText, fontSize = 11, color = "on_surface_variant" }), - }), - }) - elseif status == "ERROR" and total == 0 then - local errMsg = (state and state.error_message) or tr("status.dnf_error") - return ui.row({ - key = "status-card-error", - padding = 12, - paddingH = 14, - fill = "surface", - radius = 8, - align = "center", - gap = 10, - }, { - ui.glyph({ name = "alert-circle", size = 18, color = "error" }), - ui.column({ gap = 2, flexGrow = 1 }, { - ui.label({ - text = errMsg, - fontSize = 12, - color = "error", - maxLines = 2, - }), - }), - }) - elseif total == 0 then - -- Clean state: everything up to date - return ui.column({ - key = "status-card-clean", - padding = 20, - paddingH = 16, - fill = "surface", - radius = 8, - align = "center", - justify = "center", - gap = 8, - }, { - ui.glyph({ name = "check", size = 28, color = "secondary" }), - ui.label({ - text = tr("status.everything_up_to_date"), - fontSize = 14, - fontWeight = "semibold", - color = "on_surface", - }), - }) - else - -- Updates available: overview metrics (DNF, Flatpak, Total only) - local dnfCount = state and state.dnf and state.dnf.count or 0 - local flatpakCount = state and state.flatpak and state.flatpak.count or 0 - - return ui.row({ - key = "status-card-summary", - padding = 8, - paddingH = 10, - fill = "surface", - radius = 8, - align = "center", - gap = 8, - }, { - ui.row({ - key = "summary-dnf-chip", - flexGrow = 1, - padding = 6, - paddingH = 10, - fill = "surface_container", - radius = 6, - align = "center", - justify = "space_between", - }, { - ui.label({ text = tr("summary.dnf"), fontSize = 11, color = "on_surface_variant" }), - ui.label({ text = tostring(dnfCount), fontSize = 12, fontWeight = "bold", color = "primary" }), - }), - ui.row({ - key = "summary-flatpak-chip", - flexGrow = 1, - padding = 6, - paddingH = 10, - fill = "surface_container", - radius = 6, - align = "center", - justify = "space_between", - }, { - ui.label({ text = tr("summary.flatpak"), fontSize = 11, color = "on_surface_variant" }), - ui.label({ text = tostring(flatpakCount), fontSize = 12, fontWeight = "bold", color = "secondary" }), - }), - ui.row({ - key = "summary-total-chip", - flexGrow = 1, - padding = 6, - paddingH = 10, - fill = "surface_container", - radius = 6, - align = "center", - justify = "space_between", - }, { - ui.label({ text = tr("summary.total"), fontSize = 11, color = "on_surface_variant" }), - ui.label({ text = tostring(total), fontSize = 12, fontWeight = "bold", color = "on_surface" }), - }), - }) - end -end - -local function renderDnfSection(state) - local dnf = state and state.dnf - local packages = (dnf and dnf.packages) or {} - local isBusy = state and (state.status == "CHECKING" or state.status == "UPDATING") - - if not enableDnf then - return nil, 0, 0 - end - - local selectedCount = 0 - local selectedBytes = 0 - for _, pkg in ipairs(packages) do - if not excludedDnf[pkg.name] then - selectedCount += 1 - selectedBytes += getPackageDownloadBytes(pkg) - end - end - - local dnfTitle - if #packages == 0 then - dnfTitle = "DNF" - elseif selectedCount == #packages then - dnfTitle = tr("sections.dnf", { count = #packages }) - else - dnfTitle = tr("sections.dnf_selected", { selected = selectedCount, total = #packages }) - end - if selectedBytes > 0 then - dnfTitle = dnfTitle .. " (" .. formatBytes(selectedBytes) .. ")" - end - - local allSelected = #packages > 0 and selectedCount == #packages - - local headerChildren = { - ui.button({ - key = "btn-collapse-dnf", - glyph = dnfCollapsed and "chevron-right" or "chevron-down", - variant = "ghost", - controlSize = "sm", - tooltip = dnfCollapsed and tr("actions.expand") or tr("actions.collapse"), - onClick = function() - dnfCollapsed = not dnfCollapsed - render() - end, - }), - ui.label({ - text = dnfTitle, - fontSize = 12, - fontWeight = "bold", - color = "on_surface", - flexGrow = 1, - }), - } - - if #packages > 0 then - table.insert(headerChildren, ui.button({ - key = "btn-toggle-all-dnf", - glyph = allSelected and "square-check" or "square", - variant = "ghost", - controlSize = "sm", - tooltip = allSelected and tr("actions.deselect_all") or tr("actions.select_all"), - enabled = not isBusy, - onClick = function() - toggleAllDnf(packages) - end, - })) - end - - local items = {} - local header = ui.row({ key = "dnf-section-header", align = "center", gap = 8, paddingV = 4 }, headerChildren) - table.insert(items, header) - - local q = searchQuery:lower():match("^%s*(.-)%s*$") or "" - local visibleCount = 0 - - if not dnfCollapsed then - - for idx, pkg in ipairs(packages) do - local isMatch = (q == "") - or (pkg.name and pkg.name:lower():find(q, 1, true) ~= nil) - or (pkg.repo and pkg.repo:lower():find(q, 1, true) ~= nil) - - if isMatch then - visibleCount += 1 - local isExcluded = excludedDnf[pkg.name] == true - local arch = (pkg.arch ~= machineArch) and (pkg.arch or "") or "" - local repo = "" - if pkg.repo and pkg.repo ~= "" and not officialRepos[pkg.repo] then - -- COPR repo ids ("copr:copr.fedorainfracloud.org:codifryed:CoolerControl") pushed the row wider than the panel. - repo = pkg.repo:match("^copr%a*:[^:]+:[^:]+:(.+)$") or pkg.repo - end - local badgeColor = isExcluded and "on_surface_variant" or "primary" - local badgeChildren = {} - if arch ~= "" then - table.insert(badgeChildren, ui.label({ - text = repo ~= "" and (arch .. " ·") or arch, - fontSize = 10, - color = badgeColor .. "/0.6", - fontWeight = "semibold", - })) - end - if repo ~= "" then - table.insert(badgeChildren, ui.label({ - text = repo, - maxWidth = 160, - maxLines = 1, - fontSize = 10, - color = badgeColor, - fontWeight = "semibold", - })) - end - - local sizeLabel = (pkg.download_formatted and pkg.download_formatted ~= "") and pkg.download_formatted or "" - - local nameRowChildren = { - ui.label({ - text = pkg.name or "Unknown", - fontSize = 12, - fontWeight = "semibold", - color = isExcluded and "on_surface_variant" or "on_surface", - }), - } - if isExcluded then - table.insert(nameRowChildren, ui.label({ - text = "(" .. tr("status.skipped") .. ")", - fontSize = 10, - color = "on_surface_variant", - })) - end - - table.insert(items, ui.row({ - key = "dnf-pkg-" .. tostring(idx) .. "-" .. (pkg.name or "pkg"), - padding = 8, - paddingH = 12, - fill = isExcluded and "surface_container" or "surface", - radius = 6, - align = "center", - gap = 8, - onClick = function() - if not isBusy then - toggleExcludeDnf(pkg.name) - end - end, - }, { - ui.glyph({ - name = isExcluded and "square" or "square-check", - size = 18, - color = isExcluded and "on_surface_variant" or "primary", - }), - ui.column({ gap = 2, flexGrow = 1 }, { - ui.row({ align = "center", gap = 6 }, nameRowChildren), - ui.label({ - text = pkg.evr or "", - fontSize = 11, - color = "on_surface_variant", - }), - }), - ui.column({ align = "end", gap = 2 }, { - ui.label({ - text = sizeLabel, - fontSize = 11, - fontWeight = "bold", - color = isExcluded and "on_surface_variant" or "on_surface", - }), - ui.row({ align = "center", gap = 4 }, badgeChildren), - }), - })) - end - end - - if q ~= "" and visibleCount == 0 and #packages > 0 then - table.insert(items, ui.label({ - key = "dnf-no-match", - text = tr("search.no_matches", { query = searchQuery }), - fontSize = 11, - color = "on_surface_variant", - padding = 8, - })) - end - end - - return items, selectedCount, selectedBytes -end - -local function renderFlatpakSection(state) - local flatpak = state and state.flatpak - local packages = (flatpak and flatpak.packages) or {} - local isBusy = state and (state.status == "CHECKING" or state.status == "UPDATING") - - if not enableFlatpak then - return nil, 0, 0 - end - - local selectedCount = 0 - local selectedBytes = 0 - for _, pkg in ipairs(packages) do - local k = getFlatpakKey(pkg) - if not excludedFlatpak[k] then - selectedCount += 1 - selectedBytes += getPackageDownloadBytes(pkg) - end - end - - local flatpakTitle - if #packages == 0 then - flatpakTitle = "Flatpak" - elseif selectedCount == #packages then - flatpakTitle = tr("sections.flatpak", { count = #packages }) - else - flatpakTitle = tr("sections.flatpak_selected", { selected = selectedCount, total = #packages }) - end - if selectedBytes > 0 then - flatpakTitle = flatpakTitle .. " (" .. formatBytes(selectedBytes) .. ")" - end - - local allSelected = #packages > 0 and selectedCount == #packages - - local headerChildren = { - ui.button({ - key = "btn-collapse-flatpak", - glyph = flatpakCollapsed and "chevron-right" or "chevron-down", - variant = "ghost", - controlSize = "sm", - tooltip = flatpakCollapsed and tr("actions.expand") or tr("actions.collapse"), - onClick = function() - flatpakCollapsed = not flatpakCollapsed - render() - end, - }), - ui.label({ - text = flatpakTitle, - fontSize = 12, - fontWeight = "bold", - color = "on_surface", - flexGrow = 1, - }), - } - - if #packages > 0 then - table.insert(headerChildren, ui.button({ - key = "btn-toggle-all-flatpak", - glyph = allSelected and "square-check" or "square", - variant = "ghost", - controlSize = "sm", - tooltip = allSelected and tr("actions.deselect_all") or tr("actions.select_all"), - enabled = not isBusy, - onClick = function() - toggleAllFlatpak(packages) - end, - })) - end - - local items = {} - local header = ui.row({ key = "flatpak-section-header", align = "center", gap = 8, paddingV = 4 }, headerChildren) - table.insert(items, header) - - local q = searchQuery:lower():match("^%s*(.-)%s*$") or "" - local visibleCount = 0 - - if not flatpakCollapsed then - - for idx, pkg in ipairs(packages) do - local pkgKey = getFlatpakKey(pkg) - local isMatch = (q == "") - or (pkg.name and pkg.name:lower():find(q, 1, true) ~= nil) - or (pkg.id and pkg.id:lower():find(q, 1, true) ~= nil) - or (pkg.ref and pkg.ref:lower():find(q, 1, true) ~= nil) - - if isMatch then - visibleCount += 1 - local isExcluded = excludedFlatpak[pkgKey] == true - - local subtitle = pkg.id or pkg.branch or "" - if pkg.origin and pkg.origin ~= "" then - subtitle = subtitle ~= "" and (subtitle .. " · " .. pkg.origin) or pkg.origin - end - if pkg.is_runtime then - subtitle = (subtitle ~= "" and (subtitle .. " · ") or "") .. tr("sections.runtime") - end - - local sizeLabel = (pkg.download_formatted and pkg.download_formatted ~= "") and pkg.download_formatted or (pkg.install_formatted or "") - - local nameRowChildren = { - ui.label({ - text = pkg.name or "Unknown", - fontSize = 12, - fontWeight = "semibold", - color = isExcluded and "on_surface_variant" or "on_surface", - }), - } - if isExcluded then - table.insert(nameRowChildren, ui.label({ - text = "(" .. tr("status.skipped") .. ")", - fontSize = 10, - color = "on_surface_variant", - })) - end - - table.insert(items, ui.row({ - key = "flatpak-pkg-" .. tostring(idx) .. "-" .. pkgKey, - padding = 8, - paddingH = 12, - fill = isExcluded and "surface_container" or "surface", - radius = 6, - align = "center", - gap = 8, - onClick = function() - if not isBusy then - toggleExcludeFlatpak(pkgKey) - end - end, - }, { - ui.glyph({ - name = isExcluded and "square" or "square-check", - size = 18, - color = isExcluded and "on_surface_variant" or "secondary", - }), - ui.column({ gap = 2, flexGrow = 1 }, { - ui.row({ align = "center", gap = 6 }, nameRowChildren), - ui.label({ - text = subtitle, - fontSize = 11, - color = "on_surface_variant", - }), - }), - ui.column({ align = "end", gap = 2 }, { - ui.label({ - text = sizeLabel, - fontSize = 11, - fontWeight = "bold", - color = isExcluded and "on_surface_variant" or "secondary", - }), - ui.label({ - text = pkg.version or "", - fontSize = 10, - color = "on_surface_variant", - fontWeight = "semibold", - }), - }), - })) - end - end - - if q ~= "" and visibleCount == 0 and #packages > 0 then - table.insert(items, ui.label({ - key = "flatpak-no-match", - text = tr("search.no_matches", { query = searchQuery }), - fontSize = 11, - color = "on_surface_variant", - padding = 8, - })) - end - end - - return items, selectedCount, selectedBytes -end - -render = function() - enableDnf = noctalia.getConfig("enable_dnf") ~= false - enableFlatpak = noctalia.getConfig("enable_flatpak") ~= false - - local state = updateState - local isBusy = state and (state.status == "CHECKING" or state.status == "UPDATING") - local total = state and state.total_count or 0 - local pluginVersion = getPluginVersion() - - local header = ui.row({ align = "center", gap = 8 }, { - ui.glyph({ name = "package", size = 16, color = "primary" }), - ui.column({ key = "panel-title-block", gap = 0 }, { - ui.row({ align = "center", gap = 6 }, { - ui.label({ - key = "panel-title", - text = tr("title"), - fontSize = 15, - fontWeight = "bold", - color = "on_surface", - }), - ui.label({ - key = "panel-version", - text = pluginVersion ~= "" and ("v" .. pluginVersion) or "", - fontSize = 11, - color = "on_surface_variant", - }), - }), - ui.label({ - key = "panel-last-checked", - text = (state and (state.last_update_timestamp or 0) > 0) - and (formatLastChecked(state) .. " · " .. tr("status.last_update", { time = formatAgo(state.last_update_timestamp) })) - or formatLastChecked(state), - fontSize = 10, - color = "on_surface_variant", - }), - }), - ui.spacer({ key = "header-spacer", flexGrow = 1 }), - ui.button({ - key = "header-refresh", - glyph = "refresh", - variant = "ghost", - enabled = not isBusy, - tooltip = tr("actions.check_now"), - onClick = "onCheckNow", - }), - ui.button({ - key = "header-settings", - glyph = "settings", - variant = "ghost", - tooltip = tr("actions.open_settings"), - onClick = "onOpenSettings", - }), - ui.button({ - key = "header-close", - glyph = "close", - variant = "ghost", - tooltip = tr("actions.close"), - onClick = "onClosePanel", - }), - }) - - local rebootBanner = nil - if state and state.reboot_required then - rebootBanner = ui.row({ - key = "reboot-banner", - padding = 8, - paddingH = 12, - fill = "warning/0.15", - radius = 8, - align = "center", - gap = 8, - }, { - ui.glyph({ name = "rotate-cw", size = 16, color = "warning" }), - ui.label({ - text = tr("status.reboot_required"), - fontSize = 12, - fontWeight = "semibold", - color = "warning", - flexGrow = 1, - }), - }) - end - - local card = statusCard(state) - - local searchBar = nil - if total > 0 or searchQuery ~= "" then - local searchChildren = { - ui.input({ - key = "pkg-search-input", - value = searchQuery, - placeholder = tr("actions.search_placeholder"), - flexGrow = 1, - controlSize = "sm", - onChange = "onSearchChange", - }), - } - if searchQuery ~= "" then - table.insert(searchChildren, ui.button({ - key = "btn-clear-search", - glyph = "close", - variant = "ghost", - controlSize = "sm", - tooltip = tr("actions.clear_search"), - onClick = "onClearSearch", - })) - end - searchBar = ui.row({ key = "search-row", align = "center", gap = 6 }, searchChildren) - end - - -- Package list rows - local scrollItems = {} - local dnfItems, dnfSelCount, dnfSelBytes = renderDnfSection(state) - if dnfItems then - for _, item in ipairs(dnfItems) do - table.insert(scrollItems, item) - end - end - - local flatpakItems, fpSelCount, fpSelBytes = renderFlatpakSection(state) - if flatpakItems then - for _, item in ipairs(flatpakItems) do - table.insert(scrollItems, item) - end - end - - local listContainer - if #scrollItems > 0 then - listContainer = ui.scroll({ key = "packages-scroll", flexGrow = 1, gap = 6 }, scrollItems) - else - listContainer = ui.column({ key = "empty-filler", flexGrow = 1 }, {}) - end - - local totalSelected = (dnfSelCount or 0) + (fpSelCount or 0) - local totalSelectedBytes = (dnfSelBytes or 0) + (fpSelBytes or 0) - - local btnText - if totalSelected == total then - if totalSelectedBytes > 0 then - btnText = tr("actions.update_all_size", { count = total, size = formatBytes(totalSelectedBytes) }) - else - btnText = tr("actions.update_all") - end - else - if totalSelectedBytes > 0 then - btnText = tr("actions.update_selected_size", { count = totalSelected, size = formatBytes(totalSelectedBytes) }) - else - btnText = tr("actions.update_selected", { count = totalSelected }) - end - end - - local footer = ui.column({ gap = 8 }, { - ui.separator({ orientation = "horizontal" }), - ui.row({ align = "center", gap = 8 }, { - ui.button({ - key = "btn-update-all", - text = btnText, - glyph = "download", - variant = "primary", - flexGrow = 1, - enabled = (totalSelected > 0 and not isBusy), - onClick = "onUpdateAll", - }), - }), - }) - - local panelChildren = { - header, - } - if rebootBanner then - table.insert(panelChildren, rebootBanner) - end - table.insert(panelChildren, card) - if searchBar then - table.insert(panelChildren, searchBar) - end - table.insert(panelChildren, listContainer) - table.insert(panelChildren, footer) - - panel.render(ui.column({ flexGrow = 1, gap = 6, align = "stretch" }, panelChildren)) -end - -function onSearchChange(text) - searchQuery = text or "" - render() -end - -function onClearSearch() - searchQuery = "" - render() -end - -function onOpen(_context) - updateState = noctalia.state.get("update_state") - searchQuery = "" - render() -end - -function onClose() - -- Panel close hook -end - -function onCheckNow() - noctalia.state.set("service_command", { action = "check_now", ts = os.time() }) -end - --- The terminal takes over from here; the panel's own progress view only matters for pkexec runs. -local function closeIfTerminal() - if noctalia.getConfig("update_in_terminal") ~= false then - panel.close() - end -end - -function onUpdateAll() - local excludedDnfList = {} - if updateState and updateState.dnf and updateState.dnf.packages then - for _, pkg in ipairs(updateState.dnf.packages) do - if excludedDnf[pkg.name] then - table.insert(excludedDnfList, pkg.name) - end - end - end - - local selectedFlatpakList = {} - if updateState and updateState.flatpak and updateState.flatpak.packages then - for _, pkg in ipairs(updateState.flatpak.packages) do - local k = getFlatpakKey(pkg) - if not excludedFlatpak[k] then - table.insert(selectedFlatpakList, k) - end - end - end - - noctalia.state.set("service_command", { - action = "update_all", - excluded_dnf = excludedDnfList, - selected_flatpak = selectedFlatpakList, - ts = os.time(), - }) - closeIfTerminal() -end - -function onUpdateDnf() - local excludedDnfList = {} - if updateState and updateState.dnf and updateState.dnf.packages then - for _, pkg in ipairs(updateState.dnf.packages) do - if excludedDnf[pkg.name] then - table.insert(excludedDnfList, pkg.name) - end - end - end - - noctalia.state.set("service_command", { - action = "update_dnf", - excluded_dnf = excludedDnfList, - ts = os.time(), - }) - closeIfTerminal() -end - -function onUpdateFlatpak() - local selectedFlatpakList = {} - if updateState and updateState.flatpak and updateState.flatpak.packages then - for _, pkg in ipairs(updateState.flatpak.packages) do - local k = getFlatpakKey(pkg) - if not excludedFlatpak[k] then - table.insert(selectedFlatpakList, k) - end - end - end - - noctalia.state.set("service_command", { - action = "update_flatpak", - selected_flatpak = selectedFlatpakList, - ts = os.time(), - }) - closeIfTerminal() -end - -function onOpenSettings() - noctalia.openSettings() -end - -function onClosePanel() - panel.close() -end - --- Subscribe to state changes from background service -noctalia.state.watch("update_state", function(newState) - updateState = newState - render() -end) - -render() diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/plugin.toml b/.local/state/noctalia/plugins/materialized/community/dnf-updater/plugin.toml deleted file mode 100644 index b7b3a52..0000000 --- a/.local/state/noctalia/plugins/materialized/community/dnf-updater/plugin.toml +++ /dev/null @@ -1,84 +0,0 @@ -id = "strob3/dnf-updater" -name = "DNF Updater" -version = "1.1.0" -plugin_api = 43 -author = "strob3" -license = "MIT" -icon = "package" -description = "Manage DNF and Flatpak updates." -dependencies = ["dnf5", "flatpak", "pkexec"] -tags = ["bar", "panel", "service", "system", "fedora", "utility"] - -[[setting]] -key = "check_interval" -type = "int" -label_key = "settings.check_interval.label" -description_key = "settings.check_interval.description" -default = 30 -min = 0 -max = 10080 - -[[setting]] -key = "enable_dnf" -type = "bool" -label_key = "settings.enable_dnf.label" -description_key = "settings.enable_dnf.description" -default = true - -[[setting]] -key = "enable_flatpak" -type = "bool" -label_key = "settings.enable_flatpak.label" -description_key = "settings.enable_flatpak.description" -default = true - -[[setting]] -key = "include_flatpak_runtimes" -type = "bool" -label_key = "settings.include_flatpak_runtimes.label" -description_key = "settings.include_flatpak_runtimes.description" -default = false - -[[setting]] -key = "show_widget_when_clean" -type = "bool" -label_key = "settings.show_widget_when_clean.label" -description_key = "settings.show_widget_when_clean.description" -default = true - -[[setting]] -key = "notify_on_updates" -type = "bool" -label_key = "settings.notify_on_updates.label" -description_key = "settings.notify_on_updates.description" -default = true - -[[setting]] -key = "update_in_terminal" -type = "bool" -label_key = "settings.update_in_terminal.label" -description_key = "settings.update_in_terminal.description" -default = true - -[[service]] -id = "service" -entry = "service.luau" - -[[widget]] -id = "widget" -entry = "widget.luau" - - [[widget.setting]] - key = "glyph" - type = "glyph" - label_key = "settings.glyph.label" - description_key = "settings.glyph.description" - default = "package" - -[[panel]] -id = "panel" -entry = "panel.luau" -width = 420 -height = 500 -placement = "attached" -open_near_click = true diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/polkit/50-dnf-updater.rules b/.local/state/noctalia/plugins/materialized/community/dnf-updater/polkit/50-dnf-updater.rules deleted file mode 100644 index 7cea816..0000000 --- a/.local/state/noctalia/plugins/materialized/community/dnf-updater/polkit/50-dnf-updater.rules +++ /dev/null @@ -1,25 +0,0 @@ -/* Noctalia DNF Updater - Passwordless Update Policy - * - * Grants authorization for the dedicated dnf-updater-helper script - * to active local users in the wheel or sudo group. - * - * The helper strictly restricts operations to 'upgrade' with validated - * exclusions, preventing arbitrary command execution as root. - * - * Install: - * curl -fsSL https://raw.githubusercontent.com/strob3/dnf-updater/main/scripts/install.sh | sudo bash - * (or locally: sudo ./scripts/install.sh) - * - * Remove: - * sudo ./scripts/install.sh --uninstall - */ -polkit.addRule(function(action, subject) { - if (action.id == "org.freedesktop.policykit.exec" && - action.lookup("program") == "/usr/local/bin/dnf-updater-helper" && - subject.active == true && subject.local == true && - (subject.isInGroup("wheel") || subject.isInGroup("sudo"))) { - return polkit.Result.YES; - } - - return polkit.Result.NOT_HANDLED; -}); diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/scripts/dnf-updater-helper.sh b/.local/state/noctalia/plugins/materialized/community/dnf-updater/scripts/dnf-updater-helper.sh deleted file mode 100755 index 25e6c0c..0000000 --- a/.local/state/noctalia/plugins/materialized/community/dnf-updater/scripts/dnf-updater-helper.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -# -# DNF Updater - Privileged Update Helper -# -# Restricts privileged execution strictly to system package upgrades -# with validated exclusions. Prevents arbitrary command execution or -# malicious package installations. -# - -set -euo pipefail - -# Help / usage -if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then - echo "Usage: dnf-updater-helper upgrade [--exclude=]" - exit 0 -fi - -# Ensure standard, safe environment -export PATH="/usr/bin:/bin:/usr/sbin:/sbin" -unset IFS -unset LD_PRELOAD LD_LIBRARY_PATH PYTHONPATH PYTHONHOME DNF5_PLUGINS - -# Require root -if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then - echo "Error: dnf-updater-helper must be run as root." >&2 - exit 1 -fi - -ACTION="${1:-}" -if [[ "$ACTION" != "upgrade" ]]; then - echo "Error: unsupported action '${ACTION}'. Only 'upgrade' is allowed." >&2 - echo "Usage: dnf-updater-helper upgrade [--exclude=]" >&2 - exit 1 -fi -shift - -# Validate any remaining arguments. -VALID_ARGS=() -for arg in "$@"; do - if [[ "$arg" =~ ^--exclude=[a-zA-Z0-9._+*:-][a-zA-Z0-9._+*:,-]*$ ]]; then - VALID_ARGS+=("$arg") - else - echo "Error: invalid argument rejected: '$arg'" >&2 - exit 1 - fi -done - -# Resolve DNF binary -DNF_BIN="" -for bin in "/usr/bin/dnf5" "/usr/bin/dnf"; do - if [[ -x "$bin" ]]; then - DNF_BIN="$bin" - break - fi -done - -if [[ -z "$DNF_BIN" ]]; then - echo "Error: neither /usr/bin/dnf5 nor /usr/bin/dnf was found." >&2 - exit 1 -fi - -# Execute upgrade w/o interaction, inhibiting sleep/shutdown if systemd-inhibit is available -if command -v systemd-inhibit >/dev/null 2>&1; then - exec systemd-inhibit --what=shutdown:sleep:idle --who="dnf-updater" --why="Performing system package upgrade" "$DNF_BIN" upgrade -y "${VALID_ARGS[@]}" -else - exec "$DNF_BIN" upgrade -y "${VALID_ARGS[@]}" -fi diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/scripts/install.sh b/.local/state/noctalia/plugins/materialized/community/dnf-updater/scripts/install.sh deleted file mode 100755 index 88170ad..0000000 --- a/.local/state/noctalia/plugins/materialized/community/dnf-updater/scripts/install.sh +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/bash -# -# DNF Updater - Privileged Helper & Polkit Policy Installer -# -# Installs or uninstalls the privileged helper and Polkit rule. -# Supports both local repository invocation and remote execution via: -# curl -fsSL https://raw.githubusercontent.com/strob3/dnf-updater/main/scripts/install.sh | sudo bash -# - -set -euo pipefail - -DEST_BIN="/usr/local/bin/dnf-updater-helper" -DEST_POLKIT="/etc/polkit-1/rules.d/50-dnf-updater.rules" -REPO_RAW_URL="https://raw.githubusercontent.com/strob3/dnf-updater/main" - -# Help / usage -if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then - echo "Usage: $0 [install|--uninstall]" - echo "" - echo "Commands:" - echo " install Install helper to $DEST_BIN and rule to $DEST_POLKIT (default)" - echo " --uninstall Remove helper and Polkit rule from the system" - exit 0 -fi - -# Verify root privileges -if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then - echo "Error: Installation requires root privileges. Please run with sudo:" >&2 - echo " sudo $0 $@" >&2 - exit 1 -fi - -ACTION="${1:-install}" - -case "$ACTION" in - uninstall|--uninstall|-u) - echo "Removing DNF Updater privileged helper and Polkit rule..." - rm -f "$DEST_BIN" "$DEST_POLKIT" - echo "✓ Successfully removed:" - echo " - $DEST_BIN" - echo " - $DEST_POLKIT" - exit 0 - ;; - install|--install|-i) - ;; - *) - echo "Error: unknown argument '$ACTION'" >&2 - echo "Usage: $0 [install|--uninstall]" >&2 - exit 1 - ;; -esac - -echo "==> Installing DNF Updater privileged helper and Polkit rule..." - -# Determine script location if running locally -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd || true)" - -SRC_HELPER="" -SRC_POLKIT="" -CLEANUP_TMP=false -TMP_DIR="" - -if [[ -n "$SCRIPT_DIR" && -f "${SCRIPT_DIR}/dnf-updater-helper.sh" && -f "${SCRIPT_DIR}/../polkit/50-dnf-updater.rules" ]]; then - echo " → Using local repository files..." - SRC_HELPER="${SCRIPT_DIR}/dnf-updater-helper.sh" - SRC_POLKIT="${SCRIPT_DIR}/../polkit/50-dnf-updater.rules" -elif [[ -n "$SCRIPT_DIR" && -f "${SCRIPT_DIR}/scripts/dnf-updater-helper.sh" && -f "${SCRIPT_DIR}/polkit/50-dnf-updater.rules" ]]; then - echo " → Using local repository files..." - SRC_HELPER="${SCRIPT_DIR}/scripts/dnf-updater-helper.sh" - SRC_POLKIT="${SCRIPT_DIR}/polkit/50-dnf-updater.rules" -else - echo " → Fetching latest files from GitHub ($REPO_RAW_URL)..." - TMP_DIR="$(mktemp -d)" - CLEANUP_TMP=true - trap 'rm -rf "$TMP_DIR"' EXIT - - if command -v curl >/dev/null 2>&1; then - curl -fsSL "${REPO_RAW_URL}/scripts/dnf-updater-helper.sh" -o "${TMP_DIR}/dnf-updater-helper.sh" - curl -fsSL "${REPO_RAW_URL}/polkit/50-dnf-updater.rules" -o "${TMP_DIR}/50-dnf-updater.rules" - elif command -v wget >/dev/null 2>&1; then - wget -qO "${TMP_DIR}/dnf-updater-helper.sh" "${REPO_RAW_URL}/scripts/dnf-updater-helper.sh" - wget -qO "${TMP_DIR}/50-dnf-updater.rules" "${REPO_RAW_URL}/polkit/50-dnf-updater.rules" - else - echo "Error: neither curl nor wget was found to download required files." >&2 - exit 1 - fi - - SRC_HELPER="${TMP_DIR}/dnf-updater-helper.sh" - SRC_POLKIT="${TMP_DIR}/50-dnf-updater.rules" -fi - -# Install privileged helper -install -Dm755 "$SRC_HELPER" "$DEST_BIN" -echo " ✓ Installed privileged helper: $DEST_BIN (mode 0755)" - -# Install Polkit rule -install -Dm644 "$SRC_POLKIT" "$DEST_POLKIT" -echo " ✓ Installed Polkit policy: $DEST_POLKIT (mode 0644)" - -# Fix SELinux context if SELinux is available -if command -v restorecon >/dev/null 2>&1; then - restorecon -F "$DEST_BIN" "$DEST_POLKIT" 2>/dev/null || true -fi - -# Check if target user belongs to wheel or sudo -INVOKER="${SUDO_USER:-$USER}" -if [[ -n "$INVOKER" && "$INVOKER" != "root" ]]; then - if ! id -nG "$INVOKER" 2>/dev/null | grep -Ewq "wheel|sudo"; then - echo "" - echo " âš  Warning: User '$INVOKER' is not in the 'wheel' or 'sudo' group." - echo " Polkit requires administrative group membership for passwordless updates." - echo " Add your user with: sudo usermod -aG wheel $INVOKER" - fi -fi - -echo "" -echo "✓ Installation complete!" -echo "💡 Tip: To enable background updates without terminal popups, ensure 'Run Updates in Terminal'" -echo " is turned off in Noctalia Settings → Plugins → DNF Updater." diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/service.luau b/.local/state/noctalia/plugins/materialized/community/dnf-updater/service.luau deleted file mode 100644 index 85c89ee..0000000 --- a/.local/state/noctalia/plugins/materialized/community/dnf-updater/service.luau +++ /dev/null @@ -1,983 +0,0 @@ ---!nonstrict --- Headless [[service]] entry: monitors and manages DNF5 and Flatpak updates. --- Publishes state updates to noctalia.state so the bar widget and panel stay synchronized. - -local checkInterval = noctalia.getConfig("check_interval") or 30 -local enableDnf = noctalia.getConfig("enable_dnf") ~= false -local enableFlatpak = noctalia.getConfig("enable_flatpak") ~= false -local notifyOnUpdates = noctalia.getConfig("notify_on_updates") ~= false -local updateInTerminal = noctalia.getConfig("update_in_terminal") ~= false -local includeFlatpakRuntimes = noctalia.getConfig("include_flatpak_runtimes") == true - -local state = { - status = "IDLE", -- "IDLE" | "CHECKING" | "UPDATING" | "SUCCESS" | "ERROR" - total_count = 0, - total_download_bytes = 0, - total_install_bytes = 0, - total_download_formatted = "0 B", - total_install_formatted = "0 B", - dnf = { - count = 0, - packages = {}, - total_download_bytes = 0, - total_install_bytes = 0, - total_download_formatted = "0 B", - total_install_formatted = "0 B", - status = "idle", -- "idle" | "checking" | "updating" | "done" | "error" - error = nil, - }, - flatpak = { - count = 0, - packages = {}, - total_download_bytes = 0, - total_install_bytes = 0, - total_download_formatted = "0 B", - total_install_formatted = "0 B", - status = "idle", -- "idle" | "checking" | "updating" | "done" | "error" - error = nil, - }, - last_check = nil, - last_check_timestamp = 0, - last_update_timestamp = 0, - reboot_required = false, - error_message = nil, -} - -local previousCount = 0 -local isChecking = false -local isUpdating = false - -local function formatBytes(bytes) - if not bytes or bytes <= 0 then - return "0 B" - end - local units = { "B", "KiB", "MiB", "GiB", "TiB" } - local b = tonumber(bytes) or 0 - local uIndex = 1 - while b >= 1024 and uIndex < #units do - b = b / 1024 - uIndex = uIndex + 1 - end - if uIndex == 1 then - return string.format("%d %s", b, units[uIndex]) - else - return string.format("%.1f %s", b, units[uIndex]) - end -end - -local function parseSizeToBytes(sizeStr) - if not sizeStr or type(sizeStr) ~= "string" or sizeStr == "" then - return 0 - end - local s = sizeStr:gsub(",", ".") - local numStr, unit = s:match("([%d%.]+).-([%a]+)") - if not numStr or not unit then - return 0 - end - local num = tonumber(numStr) - if not num or num <= 0 then - return 0 - end - unit = string.upper(unit) - if unit == "B" or unit == "BYTES" then - return math.floor(num) - elseif unit == "KIB" then - return math.floor(num * 1024) - elseif unit == "KB" or unit == "K" then - return math.floor(num * 1000) - elseif unit == "MIB" then - return math.floor(num * 1024 * 1024) - elseif unit == "MB" or unit == "M" then - return math.floor(num * 1000 * 1000) - elseif unit == "GIB" then - return math.floor(num * 1024 * 1024 * 1024) - elseif unit == "GB" or unit == "G" then - return math.floor(num * 1000 * 1000 * 1000) - elseif unit == "TIB" then - return math.floor(num * 1024 * 1024 * 1024 * 1024) - elseif unit == "TB" or unit == "T" then - return math.floor(num * 1000 * 1000 * 1000 * 1000) - end - return math.floor(num) -end - --- Persisted so a shell restart shows the last result instead of re-checking: with a --- daily/weekly interval, checking on every login defeated the point. -local function stateFile() - local dir = noctalia.pluginDataDir() - return dir and (dir .. "/state.json") or nil -end - -local function saveState() - local path = stateFile() - local encoded = path and noctalia.json.encode(state) - if encoded then - noctalia.writeFile(path, encoded) - end -end - -local function loadState() - local path = stateFile() - if not path or not noctalia.fileExists(path) then - return false - end - local contents = noctalia.readFile(path) - local saved = contents and noctalia.json.decode(contents) - if type(saved) ~= "table" or type(saved.last_check_timestamp) ~= "number" then - return false - end - state = saved - state.status = state.error_message and "ERROR" or (state.total_count == 0 and "SUCCESS" or "IDLE") - state.reboot_required = saved.reboot_required == true - previousCount = state.total_count or 0 - return true -end - -local function checkDue() - return checkInterval > 0 and os.time() - (state.last_check_timestamp or 0) >= checkInterval * 60 -end - -local function publishState() - noctalia.state.set("update_state", state) -end - -local function getDnfBinary() - if noctalia.commandExists("dnf5") then - return "dnf5" - elseif noctalia.commandExists("dnf") then - return "dnf" - end - return nil -end - -local function isValidPackageName(name) - if type(name) ~= "string" or name == "" then - return false - end - if name:sub(1, 1) == "-" then - return false - end - return name:match("^[%w%._+%-]+$") ~= nil -end - -local function isValidFlatpakId(id) - if type(id) ~= "string" or id == "" then - return false - end - if id:sub(1, 1) == "-" then - return false - end - return id:match("^[%w%._%-%/]+$") ~= nil -end - -local function shellQuote(str) - return "'" .. string.gsub(str, "'", "'\\''") .. "'" -end - -local function checkDnf(onFinished, isRetry) - if not enableDnf then - state.dnf.count = 0 - state.dnf.packages = {} - state.dnf.total_download_bytes = 0 - state.dnf.total_install_bytes = 0 - state.dnf.total_download_formatted = "0 B" - state.dnf.total_install_formatted = "0 B" - state.dnf.status = "idle" - state.dnf.error = nil - onFinished(true) - return - end - - local dnfBin = getDnfBinary() - if not dnfBin then - state.dnf.count = 0 - state.dnf.packages = {} - state.dnf.total_download_bytes = 0 - state.dnf.total_install_bytes = 0 - state.dnf.total_download_formatted = "0 B" - state.dnf.total_install_formatted = "0 B" - state.dnf.status = "error" - state.dnf.error = "DNF package manager not found" - onFinished(false) - return - end - - state.dnf.status = "checking" - state.dnf.error = nil - - noctalia.runAsync({ dnfBin, "check-upgrade", "--json" }, function(result) - if result.timedOut then - if not isRetry then - print("[dnf-updater] DNF check timed out; retrying once...") - checkDnf(onFinished, true) - return - end - state.dnf.status = "error" - state.dnf.error = "DNF check timed out" - onFinished(false) - return - end - - local raw = noctalia.string.trim(result.stdout) - if raw == "" then - state.dnf.count = 0 - state.dnf.packages = {} - state.dnf.total_download_bytes = 0 - state.dnf.total_install_bytes = 0 - state.dnf.total_download_formatted = "0 B" - state.dnf.total_install_formatted = "0 B" - state.dnf.status = "done" - state.dnf.error = nil - onFinished(true) - return - end - - local decoded, err = noctalia.json.decode(raw) - if type(decoded) == "table" and type(decoded.upgrades) == "table" then - local packages = {} - for _, item in ipairs(decoded.upgrades) do - if type(item) == "table" and item.name then - table.insert(packages, { - name = item.name, - evr = item.evr or "", - arch = item.arch or "", - repo = item.repository or "", - download_bytes = 0, - install_bytes = 0, - download_formatted = "", - install_formatted = "", - }) - end - end - state.dnf.count = #packages - state.dnf.packages = packages - - if #packages > 0 then - -- Query individual package download and install sizes - noctalia.runAsync({ dnfBin, "repoquery", "--upgrades", "--queryformat", "%{name}\t%{downloadsize}\t%{installsize}\n" }, function(resSizes) - local dnfTotalDownload = 0 - local dnfTotalInstall = 0 - if resSizes.exitCode == 0 and resSizes.stdout and resSizes.stdout ~= "" then - local sizeMap = {} - for line in resSizes.stdout:gmatch("[^\r\n]+") do - local name, dl, inst = line:match("([^\t]+)\t([^\t]+)\t([^\t]+)") - if name then - sizeMap[name] = { - dl = tonumber(dl) or 0, - inst = tonumber(inst) or 0, - } - end - end - - for _, pkg in ipairs(packages) do - local s = sizeMap[pkg.name] - if s then - pkg.download_bytes = s.dl - pkg.install_bytes = s.inst - pkg.download_formatted = formatBytes(s.dl) - pkg.install_formatted = formatBytes(s.inst) - dnfTotalDownload += s.dl - dnfTotalInstall += s.inst - end - end - end - - state.dnf.total_download_bytes = dnfTotalDownload - state.dnf.total_install_bytes = dnfTotalInstall - state.dnf.total_download_formatted = formatBytes(dnfTotalDownload) - state.dnf.total_install_formatted = formatBytes(dnfTotalInstall) - state.dnf.status = "done" - state.dnf.error = nil - onFinished(true) - end, 30000) - else - state.dnf.total_download_bytes = 0 - state.dnf.total_install_bytes = 0 - state.dnf.total_download_formatted = "0 B" - state.dnf.total_install_formatted = "0 B" - state.dnf.status = "done" - state.dnf.error = nil - onFinished(true) - end - else - -- If JSON parsing failed or command returned non-standard error - if result.exitCode ~= 0 and result.exitCode ~= 100 then - state.dnf.status = "error" - state.dnf.error = result.stderr ~= "" and result.stderr or (err or "DNF check failed") - onFinished(false) - else - state.dnf.count = 0 - state.dnf.packages = {} - state.dnf.total_download_bytes = 0 - state.dnf.total_install_bytes = 0 - state.dnf.total_download_formatted = "0 B" - state.dnf.total_install_formatted = "0 B" - state.dnf.status = "done" - state.dnf.error = nil - onFinished(true) - end - end - end, 30000) -end - -local function checkFlatpak(onFinished, isRetry) - if not enableFlatpak then - state.flatpak.count = 0 - state.flatpak.packages = {} - state.flatpak.total_download_bytes = 0 - state.flatpak.total_install_bytes = 0 - state.flatpak.total_download_formatted = "0 B" - state.flatpak.total_install_formatted = "0 B" - state.flatpak.status = "idle" - state.flatpak.error = nil - onFinished(true) - return - end - - if not noctalia.commandExists("flatpak") then - state.flatpak.count = 0 - state.flatpak.packages = {} - state.flatpak.total_download_bytes = 0 - state.flatpak.total_install_bytes = 0 - state.flatpak.total_download_formatted = "0 B" - state.flatpak.total_install_formatted = "0 B" - state.flatpak.status = "error" - state.flatpak.error = "Flatpak not installed" - onFinished(false) - return - end - - state.flatpak.status = "checking" - state.flatpak.error = nil - - local flatpakArgs = { "flatpak", "remote-ls", "--updates", "--columns=name,application,version,branch,origin,installed-size,download-size,ref", "-j" } - if not includeFlatpakRuntimes then - table.insert(flatpakArgs, 4, "--app") - end - - noctalia.runAsync(flatpakArgs, function(result) - if result.timedOut then - if not isRetry then - print("[dnf-updater] Flatpak check timed out; retrying once...") - checkFlatpak(onFinished, true) - return - end - state.flatpak.status = "error" - state.flatpak.error = "Flatpak check timed out" - onFinished(false) - return - end - - local raw = noctalia.string.trim(result.stdout) - if raw == "" then - state.flatpak.count = 0 - state.flatpak.packages = {} - state.flatpak.total_download_bytes = 0 - state.flatpak.total_install_bytes = 0 - state.flatpak.total_download_formatted = "0 B" - state.flatpak.total_install_formatted = "0 B" - state.flatpak.status = "done" - state.flatpak.error = nil - onFinished(true) - return - end - - local decoded, err = noctalia.json.decode(raw) - if type(decoded) == "table" then - local packages = {} - local flatpakTotalDownload = 0 - local flatpakTotalInstall = 0 - for _, item in ipairs(decoded) do - if type(item) == "table" then - local dlBytes = parseSizeToBytes(item.download_size) - local instBytes = parseSizeToBytes(item.installed_size) - flatpakTotalDownload += dlBytes - flatpakTotalInstall += instBytes - - local isRuntime = (item.ref and item.ref:find("^runtime/") ~= nil) or false - table.insert(packages, { - name = item.name or (item.application_id or "Unknown"), - id = (item.application_id and item.application_id ~= "") and item.application_id or (item.ref or (item.name or "")), - ref = item.ref or "", - version = item.version or (item.branch or ""), - branch = item.branch or "", - origin = item.origin or "", - is_runtime = isRuntime, - download_bytes = dlBytes, - install_bytes = instBytes, - download_formatted = (item.download_size and item.download_size ~= "") and item.download_size or formatBytes(dlBytes), - install_formatted = (item.installed_size and item.installed_size ~= "") and item.installed_size or formatBytes(instBytes), - }) - end - end - state.flatpak.count = #packages - state.flatpak.packages = packages - state.flatpak.total_download_bytes = flatpakTotalDownload - state.flatpak.total_install_bytes = flatpakTotalInstall - state.flatpak.total_download_formatted = formatBytes(flatpakTotalDownload) - state.flatpak.total_install_formatted = formatBytes(flatpakTotalInstall) - state.flatpak.status = "done" - state.flatpak.error = nil - onFinished(true) - else - if result.exitCode ~= 0 then - state.flatpak.status = "error" - state.flatpak.error = result.stderr ~= "" and result.stderr or (err or "Flatpak check failed") - onFinished(false) - else - state.flatpak.count = 0 - state.flatpak.packages = {} - state.flatpak.total_download_bytes = 0 - state.flatpak.total_install_bytes = 0 - state.flatpak.total_download_formatted = "0 B" - state.flatpak.total_install_formatted = "0 B" - state.flatpak.status = "done" - state.flatpak.error = nil - onFinished(true) - end - end - end, 30000) -end - --- Read from dnf history rather than recorded on our own runs: terminal updates are --- fire-and-forget, and a manual `dnf upgrade` counts too. Only an upgrade with no --- package args is a full update; Flatpak keeps no history, so it is not tracked. -local function isFullUpgrade(commandLine) - local verbSeen = false - for word in (commandLine or ""):gmatch("%S+") do - if verbSeen then - if word:sub(1, 1) ~= "-" then - return false - end - elseif word == "upgrade" or word == "update" or word == "distro-sync" then - verbSeen = true - end - end - return verbSeen -end - -local function refreshLastUpdate() - local dnfBin = getDnfBinary() - if not dnfBin then - return - end - noctalia.runAsync({ dnfBin, "history", "list", "--json" }, function(result) - local transactions = result and result.exitCode == 0 and noctalia.json.decode(result.stdout or "") - if type(transactions) ~= "table" then - return - end - local latest = 0 - for _, t in ipairs(transactions) do - if t.status == "Ok" and (t.end_time or 0) > latest and isFullUpgrade(t.command_line) then - latest = t.end_time - end - end - if latest > 0 and latest ~= state.last_update_timestamp then - state.last_update_timestamp = latest - publishState() - end - end) -end - -local function checkReboot() - if noctalia.fileExists("/run/reboot-required") or noctalia.fileExists("/var/run/reboot-required") then - if not state.reboot_required then - state.reboot_required = true - publishState() - end - return - end - - local dnfBin = getDnfBinary() - if not dnfBin then - return - end - - noctalia.runAsync({ dnfBin, "--disablerepo=*", "needs-restarting", "-r", "--json" }, function(result) - local isReboot = false - if result then - if result.exitCode == 1 then - isReboot = true - elseif result.exitCode == 0 and result.stdout and result.stdout ~= "" then - local data = noctalia.json.decode(result.stdout) - if type(data) == "table" and data[1] and data[1].reboot_required == true then - isReboot = true - end - end - end - if isReboot ~= state.reboot_required then - state.reboot_required = isReboot - publishState() - end - end, 10000) -end - -local function checkAll(force) - if isChecking or isUpdating then - return - end - - isChecking = true - state.status = "CHECKING" - publishState() - refreshLastUpdate() - checkReboot() - - local dnfDone = false - local flatpakDone = false - local dnfSuccess = false - local flatpakSuccess = false - - local function finalize() - if not dnfDone or not flatpakDone then - return - end - - isChecking = false - state.total_count = state.dnf.count + state.flatpak.count - state.total_download_bytes = (state.dnf.total_download_bytes or 0) + (state.flatpak.total_download_bytes or 0) - state.total_install_bytes = (state.dnf.total_install_bytes or 0) + (state.flatpak.total_install_bytes or 0) - state.total_download_formatted = formatBytes(state.total_download_bytes) - state.total_install_formatted = formatBytes(state.total_install_bytes) - state.last_check = noctalia.formatTime("%d/%m %H:%M") - state.last_check_timestamp = os.time() - - if state.dnf.error and state.flatpak.error then - state.status = "ERROR" - state.error_message = state.dnf.error .. " | " .. state.flatpak.error - elseif state.dnf.error then - state.status = "ERROR" - state.error_message = state.dnf.error - elseif state.flatpak.error then - state.status = "ERROR" - state.error_message = state.flatpak.error - else - state.status = state.total_count == 0 and "SUCCESS" or "IDLE" - state.error_message = nil - end - - -- Send notification when new updates are detected - if notifyOnUpdates and state.total_count > previousCount and state.total_count > 0 then - noctalia.notify( - noctalia.tr("notifications.updates_available_title"), - noctalia.trp("notifications.updates_available_body", state.total_count, { count = state.total_count }) - ) - end - previousCount = state.total_count - - publishState() - saveState() - end - - checkDnf(function(ok) - dnfDone = true - dnfSuccess = ok - finalize() - end) - - checkFlatpak(function(ok) - flatpakDone = true - flatpakSuccess = ok - finalize() - end) -end - --- runInTerminal is fire-and-forget, so the terminal itself pings us back when done --- (`;`, not `&&`: a failed or partial run still changes what is pending). -local function runInTerminalThenRecheck(cmd) - noctalia.runInTerminal(cmd .. "; noctalia msg plugin strob3/dnf-updater:service all check") -end - -local function updateDnf(excludedList, onFinished) - local dnfBin = getDnfBinary() - if not dnfBin then - state.dnf.status = "error" - state.dnf.error = "DNF not found" - if onFinished then onFinished(false) end - return - end - - local validExcluded = {} - if excludedList and type(excludedList) == "table" then - for _, name in ipairs(excludedList) do - if isValidPackageName(name) then - table.insert(validExcluded, name) - else - print(string.format("[dnf-updater] Warning: invalid DNF package name skipped: %s", tostring(name))) - end - end - end - - local dnfCount = state.dnf.count or 0 - if excludedList and type(excludedList) == "table" and #validExcluded >= dnfCount and dnfCount > 0 then - state.dnf.status = "done" - publishState() - if onFinished then onFinished(true) end - return - end - - local excludeArg = nil - if #validExcluded > 0 then - excludeArg = "--exclude=" .. table.concat(validExcluded, ",") - end - - if updateInTerminal then - local sudoCmd = noctalia.commandExists("sudo") and "sudo" or "pkexec" - local cmd = sudoCmd .. " " .. dnfBin .. " upgrade -y" - if excludeArg then - cmd = cmd .. " " .. shellQuote(excludeArg) - end - runInTerminalThenRecheck(cmd) - state.dnf.status = "done" - publishState() - if onFinished then onFinished(true) end - return - end - - state.dnf.status = "updating" - state.status = "UPDATING" - publishState() - - local helperBin = "/usr/local/bin/dnf-updater-helper" - local args - if noctalia.fileExists(helperBin) then - args = { "pkexec", helperBin, "upgrade" } - else - args = { "pkexec", dnfBin, "upgrade", "-y" } - end - if excludeArg then - table.insert(args, excludeArg) - end - - noctalia.runAsync(args, function(result) - if result.exitCode == 0 then - state.dnf.status = "done" - state.dnf.error = nil - if onFinished then onFinished(true) end - else - state.dnf.status = "error" - local errMsg = "DNF upgrade failed" - if result.timedOut then - errMsg = "DNF upgrade timed out (consider running updates in terminal)" - elseif result.stderr and result.stderr ~= "" then - errMsg = result.stderr - elseif result.stdout and result.stdout ~= "" then - errMsg = result.stdout - end - state.dnf.error = errMsg - if onFinished then onFinished(false) end - end - publishState() - end, 600000) -end - -local function updateFlatpak(selectedList, onFinished) - if not noctalia.commandExists("flatpak") then - state.flatpak.status = "error" - state.flatpak.error = "Flatpak not found" - if onFinished then onFinished(false) end - return - end - - local validSelected = nil - if selectedList and type(selectedList) == "table" then - validSelected = {} - local seen = {} - for _, ref in ipairs(selectedList) do - if isValidFlatpakId(ref) and not seen[ref] then - seen[ref] = true - table.insert(validSelected, ref) - elseif not isValidFlatpakId(ref) then - print(string.format("[dnf-updater] Warning: invalid Flatpak ID skipped: %s", tostring(ref))) - end - end - end - - if selectedList and type(selectedList) == "table" and #selectedList == 0 and (state.flatpak.count or 0) > 0 then - state.flatpak.status = "done" - publishState() - if onFinished then onFinished(true) end - return - end - - if selectedList and type(selectedList) == "table" and #selectedList > 0 and validSelected and #validSelected == 0 then - print("[dnf-updater] Warning: all selected Flatpak IDs were invalid; skipping update") - state.flatpak.status = "done" - publishState() - if onFinished then onFinished(true) end - return - end - - local flatpakCount = (state.flatpak and state.flatpak.count) or 0 - local hasSubset = validSelected and #validSelected > 0 and #validSelected < flatpakCount - - if updateInTerminal then - local cmd = "flatpak update -y" - if hasSubset then - for _, ref in ipairs(validSelected) do - cmd = cmd .. " " .. shellQuote(ref) - end - end - runInTerminalThenRecheck(cmd) - state.flatpak.status = "done" - publishState() - if onFinished then onFinished(true) end - return - end - - state.flatpak.status = "updating" - state.status = "UPDATING" - publishState() - - local args = { "flatpak", "update", "-y", "--noninteractive" } - if hasSubset then - for _, ref in ipairs(validSelected) do - table.insert(args, ref) - end - end - - noctalia.runAsync(args, function(result) - if result.exitCode == 0 then - state.flatpak.status = "done" - state.flatpak.error = nil - if onFinished then onFinished(true) end - else - state.flatpak.status = "error" - local errMsg = "Flatpak update failed" - if result.timedOut then - errMsg = "Flatpak update timed out (consider running updates in terminal)" - elseif result.stderr and result.stderr ~= "" then - errMsg = result.stderr - elseif result.stdout and result.stdout ~= "" then - errMsg = result.stdout - end - state.flatpak.error = errMsg - if onFinished then onFinished(false) end - end - publishState() - end, 600000) -end - -local function updateAll(excludedDnf, selectedFlatpaks) - if isUpdating or isChecking then - return - end - - isUpdating = true - state.status = "UPDATING" - - local dnfCount = (state.dnf and state.dnf.count) or 0 - local flatpakCount = (state.flatpak and state.flatpak.count) or 0 - - local validExcluded = {} - if excludedDnf and type(excludedDnf) == "table" then - for _, name in ipairs(excludedDnf) do - if isValidPackageName(name) then - table.insert(validExcluded, name) - end - end - end - local dnfNeedsUpdate = enableDnf and dnfCount > 0 and (#validExcluded < dnfCount) - - local validSelected = nil - if selectedFlatpaks and type(selectedFlatpaks) == "table" then - validSelected = {} - local seen = {} - for _, ref in ipairs(selectedFlatpaks) do - if isValidFlatpakId(ref) and not seen[ref] then - seen[ref] = true - table.insert(validSelected, ref) - end - end - end - local flatpakNeedsUpdate = enableFlatpak and flatpakCount > 0 - if flatpakNeedsUpdate and selectedFlatpaks and type(selectedFlatpaks) == "table" and #validSelected == 0 then - flatpakNeedsUpdate = false - end - - if not dnfNeedsUpdate and not flatpakNeedsUpdate then - isUpdating = false - checkAll(true) - return - end - - if updateInTerminal then - local cmds = {} - local dnfBin = getDnfBinary() - - if dnfNeedsUpdate and dnfBin then - local sudoCmd = noctalia.commandExists("sudo") and "sudo" or "pkexec" - local dnfCmd = sudoCmd .. " " .. dnfBin .. " upgrade -y" - if #validExcluded > 0 then - dnfCmd = dnfCmd .. " " .. shellQuote("--exclude=" .. table.concat(validExcluded, ",")) - end - table.insert(cmds, dnfCmd) - end - - if flatpakNeedsUpdate then - local fpCmd = "flatpak update -y" - if validSelected and #validSelected > 0 and #validSelected < flatpakCount then - for _, ref in ipairs(validSelected) do - fpCmd = fpCmd .. " " .. shellQuote(ref) - end - end - table.insert(cmds, fpCmd) - end - - if #cmds > 0 then - local fullCmd = table.concat(cmds, " && ") - runInTerminalThenRecheck(fullCmd) - if dnfNeedsUpdate then state.dnf.status = "done" end - if flatpakNeedsUpdate then state.flatpak.status = "done" end - state.status = "SUCCESS" - publishState() - end - - isUpdating = false - return - end - - if dnfNeedsUpdate and flatpakNeedsUpdate then - state.dnf.status = "updating" - state.flatpak.status = "waiting" - publishState() - - updateDnf(excludedDnf, function(dnfOk) - state.flatpak.status = "updating" - publishState() - - updateFlatpak(selectedFlatpaks, function(flatpakOk) - isUpdating = false - if dnfOk and flatpakOk then - noctalia.notify( - noctalia.tr("notifications.update_complete_title"), - noctalia.tr("notifications.update_complete_body") - ) - else - noctalia.notifyError( - noctalia.tr("notifications.update_failed_title"), - noctalia.tr("notifications.update_failed_body") - ) - end - checkAll(true) - end) - end) - elseif dnfNeedsUpdate then - state.dnf.status = "updating" - publishState() - updateDnf(excludedDnf, function(ok) - isUpdating = false - if ok then - noctalia.notify( - noctalia.tr("notifications.update_complete_title"), - noctalia.tr("notifications.update_complete_body") - ) - else - noctalia.notifyError( - noctalia.tr("notifications.update_failed_title"), - noctalia.tr("notifications.update_failed_body") - ) - end - checkAll(true) - end) - elseif flatpakNeedsUpdate then - state.flatpak.status = "updating" - publishState() - updateFlatpak(selectedFlatpaks, function(ok) - isUpdating = false - if ok then - noctalia.notify( - noctalia.tr("notifications.update_complete_title"), - noctalia.tr("notifications.update_complete_body") - ) - else - noctalia.notifyError( - noctalia.tr("notifications.update_failed_title"), - noctalia.tr("notifications.update_failed_body") - ) - end - checkAll(true) - end) - end -end - --- Watch for commands from widget and panel -noctalia.state.watch("service_command", function(cmd) - if type(cmd) ~= "table" or not cmd.action then - return - end - - if cmd.action == "check_now" then - checkAll(true) - elseif cmd.action == "update_all" then - updateAll(cmd.excluded_dnf, cmd.selected_flatpak) - elseif cmd.action == "update_dnf" then - if not isUpdating and not isChecking then - isUpdating = true - updateDnf(cmd.excluded_dnf, function() - isUpdating = false - checkAll(true) - end) - end - elseif cmd.action == "update_flatpak" then - if not isUpdating and not isChecking then - isUpdating = true - updateFlatpak(cmd.selected_flatpak, function() - isUpdating = false - checkAll(true) - end) - end - end -end) - -function onConfigChanged() - checkInterval = noctalia.getConfig("check_interval") or 30 - enableDnf = noctalia.getConfig("enable_dnf") ~= false - enableFlatpak = noctalia.getConfig("enable_flatpak") ~= false - includeFlatpakRuntimes = noctalia.getConfig("include_flatpak_runtimes") == true - notifyOnUpdates = noctalia.getConfig("notify_on_updates") ~= false - updateInTerminal = noctalia.getConfig("update_in_terminal") ~= false - if checkDue() then - checkAll(true) - end -end - -function onIpc(event, payload) - local p = (type(payload) == "table") and payload or {} - if event == "check" or event == "check_now" then - checkAll(true) - elseif event == "update" or event == "update_all" then - updateAll(p.excluded_dnf, p.selected_flatpak) - elseif event == "update_dnf" then - if not isUpdating then - isUpdating = true - updateDnf(p.excluded_dnf, function() - isUpdating = false - checkAll(true) - end) - end - elseif event == "update_flatpak" then - if not isUpdating then - isUpdating = true - updateFlatpak(p.selected_flatpak, function() - isUpdating = false - checkAll(true) - end) - end - end -end - --- Timer tick: runs once every 60 seconds (60000ms) -noctalia.setUpdateInterval(60000) - -function update() - if checkDue() then - checkAll(false) - end -end - -local restored = loadState() -publishState() -if not restored or checkDue() then - checkAll(true) -end diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/thumbnail.webp b/.local/state/noctalia/plugins/materialized/community/dnf-updater/thumbnail.webp deleted file mode 100644 index ff6f057..0000000 Binary files a/.local/state/noctalia/plugins/materialized/community/dnf-updater/thumbnail.webp and /dev/null differ diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/translations/en.json b/.local/state/noctalia/plugins/materialized/community/dnf-updater/translations/en.json deleted file mode 100644 index 7327b30..0000000 --- a/.local/state/noctalia/plugins/materialized/community/dnf-updater/translations/en.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "actions": { - "check_now": "Check Now", - "clear_search": "Clear", - "close": "Close", - "collapse": "Collapse section", - "deselect_all": "Deselect all", - "exclude_pkg": "Exclude from update", - "expand": "Expand section", - "include_pkg": "Include in update", - "open_settings": "Settings", - "search_placeholder": "Search packages…", - "select_all": "Select all", - "update_all": "Update All", - "update_all_size": "Update All ({count} · {size})", - "update_dnf": "Update DNF", - "update_flatpak": "Update Flatpak", - "update_selected": "Update Selected ({count})", - "update_selected_size": "Update Selected ({count} · {size})" - }, - "notifications": { - "update_complete_body": "System updates have completed successfully.", - "update_complete_title": "Update Complete", - "update_failed_body": "An error occurred while installing updates.", - "update_failed_title": "Update Failed", - "updates_available_body": "{count} pending updates are ready to install.", - "updates_available_title": "Updates Available" - }, - "sections": { - "dnf": "DNF · {count} updates", - "dnf_selected": "DNF · {selected}/{total} updates", - "flatpak": "Flatpak · {count} updates", - "flatpak_selected": "Flatpak · {selected}/{total} updates", - "runtime": "Runtime" - }, - "settings": { - "check_interval": { - "description": "How often to automatically check for updates in minutes (0 to disable).", - "label": "Check Interval (Minutes)" - }, - "enable_dnf": { - "description": "Check for and manage DNF5 system package updates.", - "label": "Enable DNF" - }, - "enable_flatpak": { - "description": "Check for and manage Flatpak application updates.", - "label": "Enable Flatpak" - }, - "include_flatpak_runtimes": { - "description": "Include Flatpak runtime and extension updates alongside applications.", - "label": "Include Flatpak Runtimes" - }, - "glyph": { - "description": "Icon glyph to display in the Noctalia bar widget.", - "label": "Widget Icon" - }, - "notify_on_updates": { - "description": "Send a desktop notification when new pending updates are found.", - "label": "Notify on New Updates" - }, - "show_widget_when_clean": { - "description": "Show the bar widget even when there are no pending updates.", - "label": "Show Widget When Clean" - }, - "update_in_terminal": { - "description": "Launch update commands inside a terminal emulator instead of running in background with polkit.", - "label": "Run Updates in Terminal" - } - }, - "status": { - "checking": "Checking for updates…", - "dnf_checking": "Checking DNF…", - "dnf_done": "DNF up to date", - "dnf_error": "DNF error", - "dnf_idle": "DNF idle", - "dnf_updating": "Updating DNF…", - "everything_up_to_date": "Everything is up to date.", - "flatpak_checking": "Checking Flatpak…", - "flatpak_done": "Flatpak up to date", - "flatpak_error": "Flatpak error", - "flatpak_idle": "Flatpak idle", - "flatpak_updating": "Updating Flatpak…", - "flatpak_waiting": "Flatpak waiting…", - "last_checked": "Last check {time}", - "last_update": "last update {time}", - "never_checked": "Never checked", - "reboot_required": "Restart required to complete updates", - "skipped": "Skipped", - "updating": "Updating packages…" - }, - "search": { - "no_matches": "No packages match \"{query}\"" - }, - "ago": { - "days": "{n} d ago", - "hours": "{n} h ago", - "minutes": "{n} min ago", - "now": "just now" - }, - "summary": { - "disk_size": "Disk Size", - "dnf": "DNF", - "download": "Download", - "flatpak": "Flatpak", - "last_checked": "Last Checked", - "storage": "Storage", - "system": "System", - "total": "Total" - }, - "title": "DNF Updater", - "tooltip": { - "all_up_to_date": "All packages up to date", - "disk_size": "Disk size", - "download_size": "Download size", - "updates_available": "{count} updates available" - } -} diff --git a/.local/state/noctalia/plugins/materialized/community/dnf-updater/widget.luau b/.local/state/noctalia/plugins/materialized/community/dnf-updater/widget.luau deleted file mode 100644 index e104374..0000000 --- a/.local/state/noctalia/plugins/materialized/community/dnf-updater/widget.luau +++ /dev/null @@ -1,99 +0,0 @@ ---!nonstrict --- Bar widget entry: displays pending update badge and status in Noctalia bar. - -local glyph = noctalia.getConfig("glyph") or "package" -local showWhenClean = noctalia.getConfig("show_widget_when_clean") ~= false - -local updateState = noctalia.state.get("update_state") - -local function render() - glyph = noctalia.getConfig("glyph") or "package" - showWhenClean = noctalia.getConfig("show_widget_when_clean") ~= false - - if not updateState then - barWidget.setGlyph(glyph) - barWidget.setText("…") - barWidget.setTooltip(noctalia.tr("status.checking")) - barWidget.setVisible(true) - return - end - - local status = updateState.status or "IDLE" - local total = updateState.total_count or 0 - - if status == "CHECKING" and total == 0 then - barWidget.setGlyph(glyph) - barWidget.setText("…") - barWidget.setTooltip(noctalia.tr("status.checking")) - barWidget.setVisible(true) - elseif status == "UPDATING" then - barWidget.setGlyph("refresh") - barWidget.setText(total > 0 and tostring(total) or "…") - barWidget.setTooltip(noctalia.tr("status.updating")) - barWidget.setVisible(true) - elseif status == "ERROR" and total == 0 then - barWidget.setGlyph("alert-circle") - barWidget.setText("!") - barWidget.setTooltip(updateState.error_message or noctalia.tr("status.dnf_error")) - barWidget.setVisible(true) - elseif total > 0 then - barWidget.setGlyph(glyph) - barWidget.setText(tostring(total)) - local tooltipEntries = {} - if updateState.reboot_required then - table.insert(tooltipEntries, { key = noctalia.tr("summary.system"), value = noctalia.tr("status.reboot_required") }) - end - table.insert(tooltipEntries, { key = noctalia.tr("summary.dnf"), value = tostring(updateState.dnf and updateState.dnf.count or 0) }) - table.insert(tooltipEntries, { key = noctalia.tr("summary.flatpak"), value = tostring(updateState.flatpak and updateState.flatpak.count or 0) }) - table.insert(tooltipEntries, { key = noctalia.tr("summary.total"), value = tostring(total) }) - if updateState.total_download_formatted and updateState.total_download_formatted ~= "0 B" then - table.insert(tooltipEntries, { key = noctalia.tr("tooltip.download_size"), value = updateState.total_download_formatted }) - end - table.insert(tooltipEntries, { key = noctalia.tr("summary.last_checked"), value = updateState.last_check or "–" }) - barWidget.setTooltip(tooltipEntries) - barWidget.setVisible(true) - else - -- Total == 0 (all up to date) - if updateState.reboot_required then - barWidget.setVisible(true) - barWidget.setGlyph("rotate-cw") - barWidget.setText("") - barWidget.setTooltip(noctalia.tr("status.reboot_required")) - elseif showWhenClean then - barWidget.setVisible(true) - barWidget.setGlyph(glyph) - barWidget.setText("") - local tooltipText = noctalia.tr("tooltip.all_up_to_date") - if updateState.last_check then - tooltipText = tooltipText .. " (" .. updateState.last_check .. ")" - end - barWidget.setTooltip(tooltipText) - else - barWidget.setVisible(false) - end - end -end - --- Live updates from background service -noctalia.state.watch("update_state", function(newState) - updateState = newState - render() -end) - -function update() - render() -end - -function onClick() - noctalia.togglePanel("strob3/dnf-updater:panel") -end - -function onRightClick() - noctalia.state.set("service_command", { action = "check_now", ts = os.time() }) -end - -function onMiddleClick() - noctalia.openSettings() -end - -render() diff --git a/.local/state/noctalia/plugins/sources/community/repo b/.local/state/noctalia/plugins/sources/community/repo deleted file mode 160000 index 08bcf05..0000000 --- a/.local/state/noctalia/plugins/sources/community/repo +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 08bcf05199a115535bc80cd5f941b64c69b4f54e diff --git a/.local/state/noctalia/plugins/sources/official/repo b/.local/state/noctalia/plugins/sources/official/repo deleted file mode 160000 index 510773a..0000000 --- a/.local/state/noctalia/plugins/sources/official/repo +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 510773a6eb33e50051d7c213d0f8682fd748e9dc diff --git a/.local/state/noctalia/recently_used.json b/.local/state/noctalia/recently_used.json deleted file mode 100644 index 0967ef4..0000000 --- a/.local/state/noctalia/recently_used.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/.local/state/noctalia/settings.toml b/.local/state/noctalia/settings.toml deleted file mode 100644 index b4dcb06..0000000 --- a/.local/state/noctalia/settings.toml +++ /dev/null @@ -1,220 +0,0 @@ -config_version = 16 - -[bar.default] -center = [ "workspaces" ] -end = [ - "media", - "widget", - "tray", - "notifications", - "clipboard", - "network", - "bluetooth", - "volume", - "brightness", - "battery", - "control-center", - "session" -] -start = [ "launcher", "wallpaper", "clock" ] - -[battery.device."/org/freedesktop/UPower/devices/battery_hidpp_battery_0"] -warning_threshold = 10 - -[battery.device."/org/freedesktop/UPower/devices/keyboard_dev_D0_26_BC_84_70_FB"] -warning_threshold = 10 - -[calendar] -enabled = true - -[control_center.calendar] -show_events_location = true -show_week_numbers = true - -[location] -address = "Nieuw-Vennep, NL" - -[lockscreen_widgets] -enabled = false -schema_version = 2 -widget_order = [ "lockscreen-login-box@DP-1", "lockscreen-login-box@DP-2", "lockscreen-login-box@eDP-1" ] - - [lockscreen_widgets.grid] - cell_size = 16 - major_interval = 4 - visible = true - - [lockscreen_widgets.widget."lockscreen-login-box@DP-1"] - box_height = 196.0 - box_width = 810.0 - cx = 960.0 - cy = 1418.0 - output = "DP-1" - placement_height = 1600.0 - placement_width = 1920.0 - rotation = 0.0 - type = "login_box" - - [lockscreen_widgets.widget."lockscreen-login-box@DP-1".settings] - background_color = "surface_container" - background_opacity = 0.88 - background_radius = 12.0 - center_password_text = false - input_opacity = 1.0 - input_radius = 6.0 - layout = "regular" - show_caps_lock = true - show_keyboard_layout = true - show_login_button = true - show_media = true - show_session_buttons = true - show_unlock_hint = true - show_weather = true - - [lockscreen_widgets.widget."lockscreen-login-box@DP-2"] - box_height = 196.0 - box_width = 810.0 - cx = 960.0 - cy = 1418.0 - output = "DP-2" - placement_height = 1600.0 - placement_width = 1920.0 - rotation = 0.0 - type = "login_box" - - [lockscreen_widgets.widget."lockscreen-login-box@DP-2".settings] - background_color = "surface_container" - background_opacity = 0.88 - background_radius = 12.0 - center_password_text = false - input_opacity = 1.0 - input_radius = 6.0 - layout = "regular" - show_caps_lock = true - show_keyboard_layout = true - show_login_button = true - show_media = true - show_session_buttons = true - show_unlock_hint = true - show_weather = true - - [lockscreen_widgets.widget."lockscreen-login-box@eDP-1"] - box_height = 196.0 - box_width = 810.0 - cx = 960.0 - cy = 898.0 - output = "eDP-1" - placement_height = 1080.0 - placement_width = 1920.0 - rotation = 0.0 - type = "login_box" - - [lockscreen_widgets.widget."lockscreen-login-box@eDP-1".settings] - background_color = "surface_container" - background_opacity = 0.88 - background_radius = 12.0 - center_password_text = false - input_opacity = 1.0 - input_radius = 6.0 - layout = "regular" - show_caps_lock = true - show_keyboard_layout = true - show_login_button = true - show_media = true - show_session_buttons = true - show_unlock_hint = true - show_weather = true - -[plugins] -enabled = [ "strob3/dnf-updater" ] - -[shell] -app_icon_colorize = true -polkit_agent = true - - [shell.launcher] - default_view = "pinned" - pinned = [ - "org.mozilla.firefox", - "com.mitchellh.ghostty", - "google-chrome", - "com.nousresearch.hermes", - "com.vscodium.codium" - ] - track_usage = false - - [shell.panel] - open_near_click_launcher = true - open_near_click_session = true - session_placement = "floating" - session_position = "center" - - [shell.screenshot] - remember_last_region = true - - [shell.session] - grid_columns = 2 - show_shortcuts = false - - [[shell.session.actions]] - action = "lock" - countdown_seconds = 0.0 - enabled = true - shortcut = "1" - variant = "default" - - [[shell.session.actions]] - action = "lock_and_suspend" - countdown_seconds = 0.0 - enabled = true - shortcut = "3" - variant = "default" - - [[shell.session.actions]] - action = "logout" - countdown_seconds = 0.0 - enabled = true - shortcut = "2" - variant = "default" - - [[shell.session.actions]] - action = "reboot" - countdown_seconds = 0.0 - enabled = true - shortcut = "4" - variant = "default" - - [[shell.session.actions]] - action = "shutdown" - countdown_seconds = 0.0 - enabled = true - shortcut = "5" - variant = "destructive" - -[theme] -source = "wallpaper" - - [theme.templates] - builtin_ids = [ "alacritty", "btop", "foot", "gtk3", "gtk4", "ghostty", "kcolorscheme", "niri", "qt", "sway" ] - community_ids = [ "blender", "gimp", "libreoffice", "obsidian", "vscode", "fuzzel", "fastfetch", "bat" ] - -[wallpaper] -directory = "/mnt/DISK2/_ISO/wallpapers" - - [wallpaper.automation] - recursive = true - - [wallpaper.default] - path = "/mnt/DISK2/_ISO/wallpapers/28.jpg" - - [wallpaper.last] - path = "/mnt/DISK2/_ISO/wallpapers/28.jpg" - - [wallpaper.monitors.eDP-1] - path = "/mnt/DISK2/_ISO/wallpapers/28.jpg" - -[widget.media] -album_art_only = true - -[widget.widget] -type = "strob3/dnf-updater:widget" \ No newline at end of file diff --git a/.local/state/noctalia/state.toml b/.local/state/noctalia/state.toml deleted file mode 100644 index 7ac336c..0000000 --- a/.local/state/noctalia/state.toml +++ /dev/null @@ -1,6 +0,0 @@ -[security_migrations] -calendar_credentials_v1 = true - -[theme_templates] -applied_builtin_ids = "alacritty btop foot ghostty gtk3 gtk4 kcolorscheme niri qt sway" -applied_community_ids = "bat blender fastfetch fuzzel gimp libreoffice obsidian vscode" \ No newline at end of file diff --git a/.local/state/noctalia/usage_counts.json b/.local/state/noctalia/usage_counts.json deleted file mode 100644 index 0967ef4..0000000 --- a/.local/state/noctalia/usage_counts.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/.local/state/noctalia/wallpaper_shuffle.json b/.local/state/noctalia/wallpaper_shuffle.json deleted file mode 100644 index a6e09fe..0000000 --- a/.local/state/noctalia/wallpaper_shuffle.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "scopes": { - "global": { - "/mnt/DISK2/_ISO/wallpapers": [ - "/mnt/DISK2/_ISO/wallpapers/326 (4).jpg", - "/mnt/DISK2/_ISO/wallpapers/321 (18).jpg", - "/mnt/DISK2/_ISO/wallpapers/323 (47).jpg", - "/mnt/DISK2/_ISO/wallpapers/323 (9).jpg", - "/mnt/DISK2/_ISO/wallpapers/327 (6).jpg", - "/mnt/DISK2/_ISO/wallpapers/324 (57).jpg", - "/mnt/DISK2/_ISO/wallpapers/327 (41).jpg", - "/mnt/DISK2/_ISO/wallpapers/327 (65).jpg", - "/mnt/DISK2/_ISO/wallpapers/319 (50).jpg", - "/mnt/DISK2/_ISO/wallpapers/319 (53).jpg", - "/mnt/DISK2/_ISO/wallpapers/324 (63).jpg", - "/mnt/DISK2/_ISO/wallpapers/321 (6).jpg", - "/mnt/DISK2/_ISO/wallpapers/325 (11).jpg", - "/mnt/DISK2/_ISO/wallpapers/324 (14).jpg", - "/mnt/DISK2/_ISO/wallpapers/326 (38).jpg", - "/mnt/DISK2/_ISO/wallpapers/323 (41).jpg", - "/mnt/DISK2/_ISO/wallpapers/40.jpg", - "/mnt/DISK2/_ISO/wallpapers/324 (43).jpg", - "/mnt/DISK2/_ISO/wallpapers/7.jpg", - "/mnt/DISK2/_ISO/wallpapers/328 (2).jpg", - "/mnt/DISK2/_ISO/wallpapers/325 (12).jpg", - "/mnt/DISK2/_ISO/wallpapers/322 (32).jpg", - "/mnt/DISK2/_ISO/wallpapers/326 (7).jpg", - "/mnt/DISK2/_ISO/wallpapers/324 (26).jpg", - "/mnt/DISK2/_ISO/wallpapers/325 (4).jpg", - "/mnt/DISK2/_ISO/wallpapers/324 (34).jpg", - "/mnt/DISK2/_ISO/wallpapers/319 (18).jpg", - "/mnt/DISK2/_ISO/wallpapers/16.jpg", - "/mnt/DISK2/_ISO/wallpapers/319 (33).jpg", - "/mnt/DISK2/_ISO/wallpapers/319 (38).jpg", - "/mnt/DISK2/_ISO/wallpapers/323 (19).jpg", - "/mnt/DISK2/_ISO/wallpapers/5.jpg", - "/mnt/DISK2/_ISO/wallpapers/323 (30).jpg" - ] - } - }, - "version": 2 -}