279 Commits

Author SHA1 Message Date
Hadi
321914861f Release v2.1.0
Former-commit-id: a134abdea3
2024-08-18 23:40:47 +02:00
Hadi
b851c527af Update
Former-commit-id: 957b148656
2024-08-18 23:29:31 +02:00
Hadi
69f1aa3072 Update
Former-commit-id: 7fab715859
2024-08-18 23:29:08 +02:00
Hadi
aeaee053c4 Update
Former-commit-id: 246b5b6c8e
2024-08-11 12:02:11 +02:00
Hadi
7632e82867 Update
Former-commit-id: a318562aa7
2024-08-10 13:28:07 +02:00
Hadi
ffbb5eb322 Update
Former-commit-id: 4ec671e6b4
2024-08-02 20:53:58 +02:00
Hadi
fe6288d42c Update
Former-commit-id: e3f4493865
2024-07-29 19:34:43 +02:00
Hadi
f54ec0a5ab Update
Former-commit-id: 5c5a2796f6
2024-07-25 23:23:11 +02:00
Hadi
768b475183 Update
Former-commit-id: a7bd5ad28b
2024-07-24 23:38:16 +02:00
Hadi
0643968e77 Update
Former-commit-id: 830dc909e2
2024-07-22 22:32:10 +02:00
Hadi
18a17abad4 Update
Former-commit-id: 351dc0ebb3
2024-07-22 21:49:19 +02:00
Hadi
c4b19710ef Update
Former-commit-id: aff363f37d
2024-07-21 22:20:55 +02:00
Hadi
1beb1be29c Update
Former-commit-id: fdd41cf848
2024-07-19 13:03:34 +02:00
Hadi
621520e9e8 Update
Former-commit-id: 308cbfcb19
2024-07-13 12:04:41 +02:00
Hadi
f030f9b6ed Update
Former-commit-id: 1dc5190c43
2024-07-11 16:07:04 +02:00
Hadi
f6c5f90a75 Update
Former-commit-id: 8412b4dd93
2024-07-09 16:20:53 +02:00
Hadi
3ad6f353b6 Update
Former-commit-id: 04d2e91dd5
2024-07-09 15:01:41 +02:00
Hadi
debc426717 Update
Former-commit-id: 70459117ed
2024-07-09 14:16:50 +02:00
Hadi
0e6f7110e4 Update
Former-commit-id: 87ee1c7738
2024-07-09 14:00:14 +02:00
Hadi
af3b9fcd6e Update
Former-commit-id: 0509eba07f
2024-07-09 13:41:42 +02:00
Hadi
8e5df9ff90 Update
Former-commit-id: 9142814f8f
2024-07-09 12:05:04 +02:00
Hadi
7e1eaf33af Update
Former-commit-id: 33a9386356
2024-07-09 11:44:32 +02:00
Hadi
6a12e7cde9 Update
Former-commit-id: fb73cce28a
2024-07-09 11:12:41 +02:00
Hadi
9a4fb9fd61 Update
Former-commit-id: e0c24bf068
2024-07-09 09:47:29 +02:00
Hadi
c77dd39a98 Update
Former-commit-id: 8e63ef0b46
2024-07-09 09:38:51 +02:00
Hadi
a0a7d5755a Merge branch 'main' of github.com:anotherhadi/nixy
Update


Former-commit-id: e107b25a2f
2024-07-09 09:33:49 +02:00
Hadi
5efa224a57 Update
Former-commit-id: 841f9625e9
2024-07-09 09:33:21 +02:00
Hadi
61e195d134 update
Former-commit-id: ddddd3b4a4
2024-07-08 07:45:56 +00:00
Hadi
5b2c6db769 Update
Former-commit-id: a73a50aa1f
2024-07-06 00:37:24 +02:00
Hadi
c6fee1ccd6 Update
Former-commit-id: cd7db37ccd
2024-07-06 00:35:41 +02:00
Hadi
60652a60df Update
Former-commit-id: 9931071846
2024-07-05 14:56:19 +02:00
Hadi
b41f3576c9 Update
Former-commit-id: de4347765c
2024-07-05 10:16:16 +02:00
Hadi
edacf85795 Update
Former-commit-id: 5bee2d6931
2024-07-05 09:20:58 +02:00
Hadi
7dd9f021f0 Update
Former-commit-id: 7dc7cfcaba
2024-07-05 09:09:43 +02:00
Hadi
ce4da71c70 Update
Former-commit-id: a8d37c3fcd
2024-07-05 08:49:18 +02:00
Hadi
0380714faa Update
Former-commit-id: fa6d5d50bd
2024-07-02 12:18:49 +02:00
Hadi
2b7d962b27 update
Former-commit-id: fdff88cc9d
2024-07-01 13:15:24 +00:00
Hadi
11f73f74ff nixvim refactor
Former-commit-id: 55caf123df
2024-07-01 13:07:12 +00:00
Hadi
8cc101b169 Update
Former-commit-id: 88ae1d29a5
2024-07-01 13:04:32 +02:00
Hadi
0bd30d921b update todos
Former-commit-id: 51739ac610
2024-07-01 08:41:07 +00:00
Hadi
fe238ca49a update
Former-commit-id: 76a6f6cd6e
2024-07-01 08:34:04 +00:00
Hadi
527a22c37b update
Former-commit-id: 7ef2c71725
2024-07-01 08:32:49 +00:00
Hadi
e1ad72405f update
Former-commit-id: 81574fd7bc
2024-07-01 08:31:12 +00:00
Hadi
985a8b063d Add wallpapers
Former-commit-id: ba9dde2c1a
2024-07-01 10:13:17 +02:00
Hadi
66677bc08e update
Former-commit-id: 93837b6bea
2024-06-30 18:01:52 +02:00
Hadi
f3434352d2 Update
Former-commit-id: 8b76bf48a6
2024-06-30 17:59:39 +02:00
Hadi
65b82b3609 update
Former-commit-id: c80ddff8eb
2024-06-30 17:46:32 +02:00
Hadi
c3e544248f update
Former-commit-id: c4d436b434
2024-06-30 17:42:09 +02:00
Hadi
6a33d7ac72 update
Former-commit-id: dae8755b59
2024-06-30 17:35:58 +02:00
Hadi
9b8c5b9b19 Update
Former-commit-id: 7c0216b1fb
2024-06-30 17:32:42 +02:00
Hadi
130415e809 Update
Former-commit-id: 40ffce6605
2024-06-29 00:18:07 +02:00
Hadi
52a029e998 Update
Former-commit-id: 56c2c41b68
2024-06-28 16:35:49 +02:00
Hadi
d1a8286a21 Update
Former-commit-id: 06f5e03e66
2024-06-28 16:32:52 +02:00
Hadi
78bccf2c7e Update
Former-commit-id: 921c359693
2024-06-28 15:02:53 +02:00
Hadi
4290cc3c35 update
Former-commit-id: 1f35859f2c
2024-06-28 14:35:35 +02:00
Hadi
8f70b0d26b Update
Former-commit-id: 71f405e633
2024-06-28 01:24:27 +02:00
Hadi
d9580c1dff update
Former-commit-id: 84b645e181
2024-06-28 01:11:49 +02:00
Hadi
763fa5e549 update
Former-commit-id: 5857299c20
2024-06-28 01:10:09 +02:00
Hadi
0c68ac35b5 update
Former-commit-id: ec24cde14f
2024-06-28 01:07:53 +02:00
Hadi
3ed7128cc4 update
Former-commit-id: 3f79044a2a
2024-06-28 01:07:24 +02:00
Hadi
d7f34d9f0e Update
Former-commit-id: cf6ea202e1
2024-06-28 00:58:12 +02:00
Hadi
826fd6aaaf Update
Former-commit-id: 84f87f9833
2024-06-27 19:42:08 +02:00
Hadi
1fba2d19b3 Update
Former-commit-id: ae6818ed65
2024-06-27 18:32:17 +02:00
Hadi
d92bbe59a6 update
Former-commit-id: cd7b35389e
2024-06-27 09:49:24 +00:00
Hadi
edc0243200 update
Former-commit-id: c8c81e20ae
2024-06-27 09:20:44 +00:00
Hadi
27ac4008f8 golang bin to $PATH
Former-commit-id: 2972b4238c
2024-06-27 08:45:21 +00:00
Hadi
9dc7b851f5 update
Former-commit-id: b35d35f3d5
2024-06-27 08:42:42 +00:00
Hadi
4a2d941991 update
Former-commit-id: bde31a4934
2024-06-27 08:32:24 +00:00
Hadi
a62c549e8f update
Former-commit-id: 170287e948
2024-06-27 08:31:28 +00:00
Hadi
7232c54382 create keybindings doc
Former-commit-id: 5d14ec00b5
2024-06-27 08:24:13 +00:00
Hadi
25067c9d06 Merge branch 'main' of https://github.com/anotherhadi/nixy
Former-commit-id: f6209d0754
2024-06-27 07:50:31 +00:00
Hadi
be8b1b696c update todo
Former-commit-id: 9e906c161a
2024-06-27 07:46:24 +00:00
Hadi
885f18806e Update
Former-commit-id: 071ce93f11
2024-06-27 00:11:54 +02:00
Hadi
b9ebf59fea Update
Former-commit-id: a9939a0f54
2024-06-27 00:10:09 +02:00
Hadi
ba007b4710 Update
Former-commit-id: 9cf68648eb
2024-06-26 22:18:39 +02:00
Hadi
1d8bc979c3 Update
Former-commit-id: 652377bd9b
2024-06-26 22:17:03 +02:00
Hadi
a7197e360e Update
Former-commit-id: dd9c61b9ff
2024-06-26 22:13:14 +02:00
Hadi
878754ad8b update
Former-commit-id: c00458c02a
2024-06-26 21:30:04 +02:00
Hadi
4a08e654e0 Update
Former-commit-id: 1df0f31dbc
2024-06-26 21:19:04 +02:00
Hadi
5d94699990 add md-table-of-contents source
Former-commit-id: 6a8382c79e
2024-06-26 14:46:22 +00:00
Hadi
d98468a34d update
Former-commit-id: 1ed7675095
2024-06-26 14:44:08 +00:00
Hadi
5f73e46e73 Update
Former-commit-id: 57cab5fa52
2024-06-26 12:31:58 +02:00
Hadi
674ef50ac9 update
Former-commit-id: 3cfb9e733a
2024-06-26 10:32:58 +02:00
Hadi
d276202288 Update
Former-commit-id: bb4617160c
2024-06-25 22:22:26 +02:00
Hadi
9b31f3be8d update
Former-commit-id: 80f8ca3e9a
2024-06-25 22:20:17 +02:00
Hadi
24d0f22f8e Update
Former-commit-id: c618feced4
2024-06-25 21:57:24 +02:00
Hadi
13cf7cd494 Update
Former-commit-id: 6f6c8bebf7
2024-06-25 18:10:20 +02:00
Hadi
65c430318f Update
Former-commit-id: 6d0855ce44
2024-06-25 18:02:38 +02:00
Hadi
b4e6f9d48c update
Former-commit-id: 32af0cf534
2024-06-25 11:57:53 +02:00
Hadi
a024023c43 init keybindings.md
Former-commit-id: 0b4f2d6970
2024-06-25 11:47:15 +02:00
Hadi
6edf2cd0b9 install script test
Former-commit-id: b4947a61c5
2024-06-25 11:39:34 +02:00
Hadi
d2b3e6b430 up
Former-commit-id: 4e5cdbbac5
2024-06-25 09:49:11 +02:00
Hadi
b5476da7ef version pull
Former-commit-id: c0a0afd077
2024-06-25 09:26:10 +02:00
Hadi
9c1afd279c Update TODO.md
Former-commit-id: e047f99306
2024-06-24 22:31:49 +02:00
Hadi
f998316b9e rearrange folders
Former-commit-id: fbb6fe70ff
2024-06-24 21:18:20 +02:00
Hadi
fea1eade7f Change notification system
Former-commit-id: 3b84f735ee
2024-06-24 21:13:22 +02:00
Hadi
2517219f4c Fix
Former-commit-id: 1cdfe8e278
2024-06-24 20:44:09 +02:00
Hadi
c5d95b14ea Update TODO.md
Former-commit-id: 1eb830a97c
2024-06-24 16:37:59 +02:00
Hadi
0a7befb23b todo update
Former-commit-id: ec924af562
2024-06-24 14:35:46 +02:00
Hadi
41116fb2b5 update
Former-commit-id: 5d47643320
2024-06-24 11:05:38 +02:00
Hadi
cf2f5f2f9b Update
Former-commit-id: 282c04af67
2024-06-24 00:40:05 +02:00
Hadi
35ba84724f Update
Former-commit-id: 7397237149
2024-06-24 00:33:36 +02:00
Hadi
2151fc6f90 Update
Former-commit-id: 1a4ff5e542
2024-06-24 00:17:07 +02:00
Hadi
45ed8258ca Update
Former-commit-id: 0cec3f04d2
2024-06-24 00:12:53 +02:00
Hadi
ffc95dcd1b Update
Former-commit-id: 87ae5dd36f
2024-06-24 00:10:35 +02:00
Hadi
2c68166067 update
Former-commit-id: 2e31e74d92
2024-06-23 23:51:07 +02:00
Hadi
ae83c7497a update
Former-commit-id: 0922357af2
2024-06-23 23:47:31 +02:00
Hadi
03c675cf62 update
Former-commit-id: 1d298c60d5
2024-06-23 23:43:47 +02:00
Hadi
a4d8670563 update
Former-commit-id: d5aa5b1a49
2024-06-23 23:32:18 +02:00
Hadi
0114b629e6 update
Former-commit-id: 469f903657
2024-06-23 20:11:35 +02:00
Hadi
7f4280af72 update
Former-commit-id: ae95a1b457
2024-06-23 20:10:15 +02:00
Hadi
e7b4080c2a update
Former-commit-id: 101712c8bb
2024-06-23 19:59:53 +02:00
Hadi
c541832066 update
Former-commit-id: 5dce9af547
2024-06-23 19:54:21 +02:00
Hadi
8b57bffcd6 update
Former-commit-id: d215570fea
2024-06-23 18:35:16 +02:00
Hadi
7a4e3ad1a3 update
Former-commit-id: aa7801b04f
2024-06-23 18:32:04 +02:00
Hadi
7a2c2c6201 update
Former-commit-id: d1789906a2
2024-06-23 18:28:15 +02:00
Hadi
a8c0fdb670 update
Former-commit-id: a4f74f5fe7
2024-06-23 18:26:25 +02:00
Hadi
5ce310fe6d update
Former-commit-id: afd56d878e
2024-06-23 18:24:30 +02:00
Hadi
89818e9ee2 update
Former-commit-id: 12ebcadd71
2024-06-23 17:53:09 +02:00
Hadi
d943b85cc9 update
Former-commit-id: c5420f8d3a
2024-06-23 17:52:19 +02:00
Hadi
8eaa78bf4b Update
Former-commit-id: f8786dd24f
2024-06-23 17:32:18 +02:00
Hadi
82d6c29f21 Update
Former-commit-id: caee38f568
2024-06-23 15:48:52 +02:00
Hadi
72a8aa16bb Update
Former-commit-id: 487d81ff86
2024-06-23 15:14:29 +02:00
Hadi
5c9b799afe Update
Former-commit-id: 4046038cf2
2024-06-23 14:53:23 +02:00
Hadi
eb584dac56 Update
Former-commit-id: e9a5a9e574
2024-06-23 14:52:35 +02:00
Hadi
2fd610a09c Update
Former-commit-id: 98f708d693
2024-06-23 14:50:06 +02:00
Hadi
8eb88f474a Update
Former-commit-id: 66cd92d740
2024-06-23 14:47:22 +02:00
Hadi
f73291c269 Update
Former-commit-id: 2b5813057c
2024-06-23 14:46:11 +02:00
Hadi
e93e5807f9 Update
Former-commit-id: bbb35737c2
2024-06-23 14:45:51 +02:00
Hadi
6d0a2e186b Update
Former-commit-id: 1efdadbdad
2024-06-23 14:23:36 +02:00
Hadi
c2a700ef3a Update
Former-commit-id: 9f98ec2a52
2024-06-23 14:22:01 +02:00
Hadi
7b0deaf9c1 Update
Former-commit-id: 6f8c9d7836
2024-06-23 14:19:45 +02:00
Hadi
98d1ccb2c0 Add remote rebuild (server)
Former-commit-id: d1f5aa6dfa
2024-06-23 13:53:01 +02:00
Hadi
e6f46e1788 Update
Former-commit-id: 54eb13bc40
2024-06-23 13:46:07 +02:00
Hadi
e6c2becccb Update
Former-commit-id: f29e68ef63
2024-06-23 13:36:37 +02:00
Hadi
cfc9f99c83 Update
Former-commit-id: 8260c9d554
2024-06-21 15:49:16 +02:00
Hadi
3c43b277b7 Update
Former-commit-id: ec5b132e17
2024-06-21 15:48:37 +02:00
Hadi
64f789e52a Update
Former-commit-id: 45c0175d72
2024-06-21 15:25:14 +02:00
Hadi
9ab4dae87b Update
Former-commit-id: 154c21859d
2024-06-21 13:58:14 +02:00
Hadi
f2b742e470 Update
Former-commit-id: d100690333
2024-06-21 13:45:59 +02:00
Hadi
a3f44fa53c Update
Former-commit-id: 9fd64e9f04
2024-06-21 13:44:56 +02:00
Hadi
91d06ef6a4 Update
Former-commit-id: 909c32fef8
2024-06-21 13:42:14 +02:00
Hadi
b9df9861fc Update
Former-commit-id: feea4f5ad9
2024-06-21 13:14:54 +02:00
Hadi
049e2a9214 Update
Former-commit-id: 1ce9d2e46f
2024-06-20 18:04:50 +02:00
Hadi
78bb7ff465 Update
Former-commit-id: ae48fb8605
2024-06-20 17:43:20 +02:00
Hadi
8e04a559b9 Update
Former-commit-id: 636d921341
2024-06-20 17:34:56 +02:00
Hadi
aa3f3e2269 Update
Former-commit-id: fa7ec583b6
2024-06-20 17:33:40 +02:00
Hadi
bcc505f5dd Update
Former-commit-id: a723bd6087
2024-06-20 17:30:14 +02:00
Hadi
f0617924b0 Update
Former-commit-id: 3950c68160
2024-06-20 17:08:25 +02:00
Hadi
14c33a8191 Update
Former-commit-id: 4653a9e86f
2024-06-20 16:39:59 +02:00
Hadi
fcd92d0155 Update
Former-commit-id: 9e191c76eb
2024-06-20 16:32:27 +02:00
Hadi
9d73c644a7 Update
Former-commit-id: 2996ca0d12
2024-06-20 15:43:04 +02:00
Hadi
c5c0fdc7cc Update
Former-commit-id: c7beef1880
2024-06-20 15:41:54 +02:00
Hadi
42d7b8b820 Update
Former-commit-id: 1a3c28f69a
2024-06-20 15:35:06 +02:00
Hadi
2983dd6270 Update
Former-commit-id: 597f88adab
2024-06-20 15:33:42 +02:00
Hadi
7d684153a9 Update
Former-commit-id: 85a4a4ad2a
2024-06-20 15:31:01 +02:00
Hadi
bc26eb05a7 Update
Former-commit-id: e078d81b51
2024-06-20 15:29:25 +02:00
Hadi
ec38767570 Update
Former-commit-id: b676e1bdbb
2024-06-20 15:27:32 +02:00
Hadi
5340cfeb84 Update
Former-commit-id: 83252b0da5
2024-06-20 15:16:28 +02:00
Hadi
734e310f28 Update
Former-commit-id: 56b09db387
2024-06-20 15:13:02 +02:00
Hadi
e388cc7556 Update
Former-commit-id: 6f998c79ab
2024-06-20 15:07:15 +02:00
Hadi
0263e08415 Update
Former-commit-id: 4bec772eb2
2024-06-20 12:10:00 +02:00
Hadi
65f8fcc926 Update
Former-commit-id: 5bdbfb3a5f
2024-06-20 12:09:20 +02:00
Hadi
59a3c1d4de Update
Former-commit-id: 0cc6e18f3d
2024-06-20 11:45:19 +02:00
Hadi
206d4d7433 Update
Former-commit-id: f9bd98bc58
2024-06-20 11:42:57 +02:00
Hadi
8c8833b26e Update
Former-commit-id: 81e72e574d
2024-06-20 11:41:28 +02:00
Hadi
392a3e4998 Update
Former-commit-id: fe393e3c2a
2024-06-20 11:38:53 +02:00
Hadi
76a423a964 Update
Former-commit-id: e0803c6bd5
2024-06-20 11:31:02 +02:00
Hadi
63c19a0c61 Update
Former-commit-id: f761b8c66a
2024-06-20 11:27:41 +02:00
Hadi
f3f4689cc8 Update
Former-commit-id: 01b056d4cb
2024-06-20 11:25:35 +02:00
Hadi
2050efbfbf Update
Former-commit-id: 73ac8d8188
2024-06-20 11:24:41 +02:00
Hadi
8d5734b739 Update TODO.md
Former-commit-id: b90999d5b6
2024-06-20 09:39:02 +02:00
Hadi
f23897d7d8 Update TODO.md
Former-commit-id: 365fab9659
2024-06-20 02:47:27 +02:00
Hadi
22b00bf301 Update
Former-commit-id: a0c5bd962b
2024-06-20 02:45:24 +02:00
Hadi
76355d3ca1 Fix
Former-commit-id: b796117725
2024-06-20 01:55:49 +02:00
Hadi
14b29a6588 Update
Former-commit-id: 1b4cd64024
2024-06-20 01:31:30 +02:00
Hadi
5eafcf5b76 Update
Former-commit-id: 8ec1744969
2024-06-20 01:23:20 +02:00
Hadi
9c43d22eb1 Update
Former-commit-id: b44a2e17f9
2024-06-20 00:25:10 +02:00
Hadi
06428958dd Update
Former-commit-id: de9b1de37c
2024-06-20 00:17:59 +02:00
Hadi
0d84783032 Update
Former-commit-id: e94276c144
2024-06-20 00:15:18 +02:00
Hadi
25af8d6213 Update
Former-commit-id: 0114f7281b
2024-06-20 00:14:15 +02:00
Hadi
e3549ce9e5 Update
Former-commit-id: 5db186ba9b
2024-06-20 00:07:23 +02:00
Hadi
1d859e5c13 Update
Former-commit-id: eec2b56fcd
2024-06-20 00:06:06 +02:00
Hadi
4ef84d1f8d Update
Former-commit-id: 265651c931
2024-06-19 23:59:20 +02:00
Hadi
ed791eb748 Update
Former-commit-id: 7e5c45d406
2024-06-19 23:53:17 +02:00
Hadi
5c6acc2028 Update
Former-commit-id: ae9ffdf2a8
2024-06-19 23:52:10 +02:00
Hadi
a9dc177a34 Update
Former-commit-id: 325f8e9d15
2024-06-19 23:51:36 +02:00
Hadi
ef32063715 Update
Former-commit-id: 29905a460b
2024-06-19 23:49:03 +02:00
Hadi
bdaa52dedc Update
Former-commit-id: 92e8eb8983
2024-06-19 23:48:36 +02:00
Hadi
c5d7ba76c7 Update
Former-commit-id: cafce8e7c9
2024-06-19 23:47:35 +02:00
Hadi
358e8c9158 Update
Former-commit-id: 21482d4a44
2024-06-19 23:45:03 +02:00
Hadi
d1dd841da8 Update
Former-commit-id: 1b3cc99197
2024-06-19 23:42:42 +02:00
Hadi
8137ebfd99 Update
Former-commit-id: adecf1bc29
2024-06-19 23:39:30 +02:00
Hadi
cc45eda3ef Update
Former-commit-id: a272a038f1
2024-06-19 23:38:04 +02:00
Hadi
8415d92264 Update
Former-commit-id: a6d3e17135
2024-06-19 23:32:31 +02:00
Hadi
17d95716b6 Update
Former-commit-id: 0e291d3388
2024-06-19 23:28:50 +02:00
Hadi
6db2fc373d Update
Former-commit-id: c852176e0d
2024-06-19 23:28:13 +02:00
Hadi
ebbf404c68 Update
Former-commit-id: ad339a19a6
2024-06-19 23:23:29 +02:00
Hadi
9fc328f675 Update
Former-commit-id: aad8b9d8e6
2024-06-19 23:21:24 +02:00
Hadi
ba489aaea3 Update
Former-commit-id: debb139aeb
2024-06-19 23:20:49 +02:00
Hadi
67ec1dd41f Update
Former-commit-id: 939597dd90
2024-06-19 23:15:52 +02:00
Hadi
ae50fc36d6 Update
Former-commit-id: 7a89711897
2024-06-19 23:11:37 +02:00
Hadi
f401067dd9 Update
Former-commit-id: e51b20e4ab
2024-06-19 23:07:47 +02:00
Hadi
a02bee95de Update
Former-commit-id: 9dbc87c010
2024-06-19 23:02:56 +02:00
Hadi
ec7b2a2fe9 Update
Former-commit-id: 137dd150fd
2024-06-19 22:59:06 +02:00
Hadi
2a40427cd6 Update
Former-commit-id: 6e66f200a3
2024-06-19 22:57:14 +02:00
Hadi
eb42d3e4d1 Update
Former-commit-id: 28dcb1f574
2024-06-19 22:50:58 +02:00
Hadi
03f4715693 Update
Former-commit-id: 536de64d5c
2024-06-19 22:48:21 +02:00
Hadi
c35dfb8017 Update
Former-commit-id: ac1c7da665
2024-06-19 22:47:37 +02:00
Hadi
7bdacd9ed5 Update
Former-commit-id: d3604fa6cf
2024-06-19 22:47:13 +02:00
Hadi
c8ca22f308 Update
Former-commit-id: 241a91487c
2024-06-19 22:46:33 +02:00
Hadi
13b147932e Update
Former-commit-id: 2f2aad2b91
2024-06-19 22:45:37 +02:00
Hadi
29b6dc17c0 Update
Former-commit-id: ce756d2f78
2024-06-19 22:44:55 +02:00
Hadi
8ff1df4333 Update
Former-commit-id: 94cb2758e6
2024-06-19 22:40:01 +02:00
Hadi
af0241f1eb Update
Former-commit-id: 50ee6b2dbf
2024-06-19 22:39:12 +02:00
Hadi
3719cc90be Update
Former-commit-id: 0949607442
2024-06-19 22:37:52 +02:00
Hadi
396297d6f7 Update
Former-commit-id: 12e8e9e870
2024-06-19 22:36:42 +02:00
Hadi
cb4b5741d7 Update
Former-commit-id: aa519ba3ee
2024-06-19 22:36:18 +02:00
Hadi
da000e60bd Update
Former-commit-id: 2cd6b6be58
2024-06-19 22:33:48 +02:00
Hadi
c4a38e7691 Update
Former-commit-id: 3939348e1b
2024-06-19 22:32:03 +02:00
Hadi
8972cd081b Update
Former-commit-id: 26767f861c
2024-06-19 21:53:34 +02:00
Hadi
b930a7e9f7 Update
Former-commit-id: adbbcec22c
2024-06-19 21:52:46 +02:00
Hadi
85a7fc8ca7 Update
Former-commit-id: f868a937d5
2024-06-19 21:50:36 +02:00
Hadi
869a442843 Update
Former-commit-id: c9ba9b30fe
2024-06-19 21:47:33 +02:00
Hadi
49b6d81216 Update
Former-commit-id: f2b659add1
2024-06-19 21:43:28 +02:00
Hadi
21d84fd39d Update
Former-commit-id: c18fffcb3d
2024-06-19 21:42:12 +02:00
Hadi
2a12db0133 test
Former-commit-id: b5fe18ab2f
2024-06-19 21:41:04 +02:00
Hadi
9c5118264c add hardware config
Former-commit-id: 115c6345c3
2024-06-19 21:31:18 +02:00
Hadi
3a8df54936 Update
Former-commit-id: 884abe9e6c
2024-06-19 21:22:41 +02:00
Hadi
a3c8ad5efb Update
Former-commit-id: d877b40d0b
2024-06-19 21:18:28 +02:00
Hadi
b38a1ccef8 test
Former-commit-id: 530e9d8bea
2024-06-19 21:17:54 +02:00
Hadi
321bb0bd16 Update
Former-commit-id: d9e4bd4cd1
2024-06-19 21:16:15 +02:00
Hadi
6c96796584 Update
Former-commit-id: 4cba1f2acf
2024-06-19 21:12:30 +02:00
Hadi
c6bc2ba192 Update
Former-commit-id: 8c0c636ec8
2024-06-19 21:05:03 +02:00
Hadi
c5f8e0f7a2 Update
Former-commit-id: 39a4b5cc00
2024-06-19 21:03:58 +02:00
Hadi
9ff0e4cbe4 Update
Former-commit-id: a5e4015cf3
2024-06-19 21:01:08 +02:00
Hadi
4c0a61ccad Update
Former-commit-id: 5414f49671
2024-06-19 21:01:01 +02:00
Hadi
8ddabcee34 Update
Former-commit-id: 10f3754b0a
2024-06-19 09:55:58 +02:00
Hadi
ccef91e0ed Update
Former-commit-id: 063534079d
2024-06-18 19:15:19 +02:00
Hadi
f9057b2983 Update
Former-commit-id: d4abd221c0
2024-06-18 19:14:18 +02:00
Hadi
5e276e88f8 Update
Former-commit-id: 77696506bc
2024-06-18 19:13:15 +02:00
Hadi
6c4428b4ef Update
Former-commit-id: 05932e597c
2024-06-18 19:05:40 +02:00
Hadi
fd32e06cd2 Update README.md
Former-commit-id: 6606762bca
2024-06-18 15:49:32 +02:00
Hadi
1a4615a781 change image
Former-commit-id: e0bae26b5d
2024-06-18 15:44:27 +02:00
Hadi
3823561a0a Update README.md
Former-commit-id: cd91c40f7d
2024-06-18 15:43:27 +02:00
Hadi
b667a65f31 Add files via upload
Former-commit-id: 07e81831fa
2024-06-18 15:42:24 +02:00
Hadi
88df4c8d42 Add files via upload
Former-commit-id: a900a2a121
2024-06-18 15:34:25 +02:00
Hadi
8082c06548 update readme colors
Former-commit-id: d2916aa984
2024-06-18 15:25:59 +02:00
Hadi
21bf90efc0 edit
Former-commit-id: f79b67c04e
2024-06-18 14:39:51 +02:00
Hadi
6d22f2d409 move nextcloud to home manager
Former-commit-id: 6c936a12f1
2024-06-18 14:32:35 +02:00
Hadi
ffa788dd4e update todo
Former-commit-id: b5ae490899
2024-06-18 14:26:49 +02:00
Hadi
79a045e3bb todo update
Former-commit-id: fd9b7ea141
2024-06-18 14:20:23 +02:00
Hadi
2fb8a97b71 update
Former-commit-id: c11a21a34a
2024-06-18 14:09:55 +02:00
Hadi
26065f3699 fix
Former-commit-id: ba09c5cfe3
2024-06-18 14:07:48 +02:00
Hadi
4f2ba52404 add tailscale
Former-commit-id: 8ec108927c
2024-06-18 14:05:14 +02:00
Hadi
be23ff67aa fix
Former-commit-id: d311675fe9
2024-06-18 13:41:33 +02:00
Hadi
ff79cbf502 update
Former-commit-id: 63fd084dcf
2024-06-18 13:41:07 +02:00
Hadi
8b8f3fa54b Update
Former-commit-id: 759f7e715a
2024-06-18 12:36:26 +02:00
Hadi
1f2bb4c33a Update
Former-commit-id: c0e0609ef4
2024-06-18 12:35:13 +02:00
Hadi
9d458b7e04 Update
Former-commit-id: fb2f1824a3
2024-06-18 12:32:45 +02:00
Hadi
dedf840131 Update
Former-commit-id: bfed924f0f
2024-06-18 12:30:56 +02:00
Hadi
7dc2c69292 Update
Former-commit-id: 1ad4233def
2024-06-18 12:21:57 +02:00
Hadi
def86d31a4 Update
Former-commit-id: b536a87854
2024-06-18 12:10:45 +02:00
Hadi
3038f62405 update
Former-commit-id: c3b54c538f
2024-06-18 11:42:22 +02:00
Hadi
fe01b971cf temp
Former-commit-id: 40648d4041
2024-06-18 11:26:35 +02:00
Hadi
918c865202 temp
Former-commit-id: cb4a8f024f
2024-06-18 11:11:08 +02:00
Hadi
6e30f6cd4e temp
Former-commit-id: f4aa262e74
2024-06-18 10:29:37 +02:00
Hadi
ff73c05ba6 temp
Former-commit-id: ac6a0f59c4
2024-06-18 10:23:07 +02:00
Hadi
dbf520b556 temp
Former-commit-id: 93b7145e70
2024-06-18 10:10:21 +02:00
Hadi
fc046db74b temp
Former-commit-id: dc4f3160cc
2024-06-18 09:54:18 +02:00
Hadi
96bae83dd1 rename shared to modules
Former-commit-id: 2ccd17867f
2024-06-18 09:21:14 +02:00
Hadi
aae802193c Update
Former-commit-id: d3e6730df0
2024-06-18 00:01:23 +02:00
Hadi
8dc316d6a4 Update
Former-commit-id: 57eb1c9459
2024-06-17 23:57:26 +02:00
Hadi
ad86356f9a update
Former-commit-id: 880ed3d0e9
2024-06-17 23:47:58 +02:00
Hadi
007ef7304b add server
Former-commit-id: 93ba190cbf
2024-06-17 23:41:41 +02:00
Hadi
019a6deaf4 Update
Former-commit-id: 251f535146
2024-06-17 23:32:56 +02:00
Hadi
7da96ad2c7 Update
Former-commit-id: 8e0691ca6a
2024-06-17 23:32:52 +02:00
Hadi
7ebc1ba322 add server
Former-commit-id: 25d4dc93f1
2024-06-17 23:29:47 +02:00
Hadi
c5e9cb9c32 add pfetch
Former-commit-id: d1b581fd58
2024-06-17 21:34:54 +02:00
451 changed files with 3123 additions and 1254 deletions

View File

@@ -1,7 +1,11 @@
keys:
- &primary age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334
creation_rules:
- path_regex: secrets/laptop.yaml$
- path_regex: hosts/laptop/secrets/laptop.yaml$
key_groups:
- age:
- *primary
- path_regex: hosts/server/secrets/server.yaml$
key_groups:
- age:
- *primary

171
README.md
View File

@@ -1,87 +1,92 @@
[//]: # (Title: Nixy)
[//]: # (Description: Nixy is a NixOS configuration with home-manager, secrets and custom theming all in one place. It's a simple way to manage your system configuration and dotfiles.)
[//]: # (Author: Hadi)
[//]: # (Date: 06/17/24)
<div align="center">
<img src="https://image.nostr.build/70ebe2b5183879d8c0ffa682cd0089e030ad01909678b242ed86449517eac3a5.png" width="100px" />
</div>
<br><br>
<div align="center">
<a href="https://github.com/anotherhadi/nixy">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=Version&message=2.0.0&colorA=040409&colorB=a158ff&logo=githubactions&logoColor=a158ff&"/>
</a>
<a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=a158ff&labelColor=040409&style=for-the-badge&logo=starship&logoColor=a158ff">
</a>
<a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color=a158ff&labelColor=040409&style=for-the-badge&logo=github&logoColor=a158ff">
</a>
<a href="https://nixos.org">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor=040409&logo=NixOS&logoColor=a158ff&color=a158ff">
</a>
<a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA=040409&colorB=a158ff&logo=unlicense&logoColor=a158ff&"/>
</a>
</div>
<br><br>
<div align="center">
<img src="https://image.nostr.build/aaf8cf0f3b9784c817f8cf328f19222db2e1886dfb89ae97de83ffa101d437b4.png" width="600px" />
</div>
# Nixy
**Nixy** is a NixOS configuration with home-manager, secrets and custom theming all in one place.
It's a simple way to manage your system configuration and dotfiles.
## Table of Content
- [Nixy](#nixy)
[//]: # (Title: Nixy)
[//]: # (Description: Nixy is a Hyprland NixOS configuration with home-manager, secrets and custom theming all in one place. It's a simple way to manage your system configuration and dotfiles.)
[//]: # (Author: Hadi)
[//]: # (Date: 08/18/24)
[//]: # (Version: v2.0.1)
<div align="center">
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/docs/src/logo.png" width="100px" />
</div>
<br>
# Nixy
<br>
<div align="center">
<a href="https://github.com/anotherhadi/nixy">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=Version&message=v2.0.1&colorA=181825&colorB=89b4fa&logo=githubactions&logoColor=89b4fa"/>
</a>
<a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=89b4fa&labelColor=181825&style=for-the-badge&logo=starship&logoColor=89b4fa">
</a>
<a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color=89b4fa&labelColor=181825&style=for-the-badge&logo=github&logoColor=89b4fa">
</a>
<a href="https://nixos.org">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor=181825&logo=NixOS&logoColor=89b4fa&color=89b4fa">
</a>
<a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA=181825&colorB=89b4fa&logo=unlicense&logoColor=89b4fa"/>
</a>
</div>
<br>
**Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place.
It's a simple way to manage your system configuration and dotfiles.
## Table of Content
- [Table of Content](#table-of-content)
- [Gallery](#gallery)
- [Architecture](#architecture)
- [Installation](#installation)
- [Documentation](#documentation)
## Gallery
![nixy1](docs/src/nixy/1.png)
![nixy2](docs/src/nixy/2.png)
![nixy3](docs/src/nixy/3.png)
## Architecture
- 🏠 `home` are the dotfiles and configuration files for the user
- 💻 `hosts` are the system configuration files
- `laptop` is mine
- `guest` is a template that you can copy and modify for your own system
- `themes` contains all the themes available (see [THEMES.md](docs/THEMES.md))
- `shared` are some nix files that you can import (nvidia, prime, fonts, ...)
- 🤫 `secrets` are the secrets files encrypted with sops
## Installation
```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos
```
- Change the username in the flake.nix file
- import the guest configuration instead of the `hosts/laptop` one
- import your hardware-configuration.nix into the `hosts/guest` folder
```sh
sudo nixos-rebuild switch --flake ~/.config/nixos#nixy
```
## Documentation
- [THEMES.md](docs/THEMES.md): How themes work and how to create your own
- [APPS.md](docs/APPS.md): Which apps are installed
- [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available
- [TODO.md](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING.md](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License
- [Documentation](#documentation)
## Gallery
![catppuccin1](docs/src/catppuccin/1.png)
![catppuccin2](docs/src/catppuccin/2.png)
![catppuccin3](docs/src/catppuccin/3.png)
## Architecture
- 🏠 `home` are the dotfiles and configuration files for the users
- 'programs' is a collection of apps configured with home-manager
- 'scripts' is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
- 'system' is some desktop environment like configuration
- 'wallpapers' are... wallpapers
- 💻 `hosts` are the system configuration files
- 'laptop' is my configuration for my laptop with Nvidia that you can copy
- 'server' is for my homeserver (w/nextcloud, nginx, vaultwarden, ... look `hosts/server`)
- 'themes' contains all the *themes* available *(see [THEMES.md](docs/THEMES.md))*
- 'modules' are some nix modules that you can import (Nvidia, prime, fonts, ...)
## Installation
```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos
```
- Copy the `hosts/laptop` folder, rename it to your system name, and change the variables inside the `variables.nix` file
- Add your `hardware-configuration.nix` to your new host's folder
- Add your 'nixosConfigurations' inside `flake.nix` (You can edit your hostname one and change the lines containing '# CHANGEME')
> [!NOTE]
> When you add new files, don't forget to run `git add .` to add them to the git repository
```sh
sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
```
## Documentation
- [THEMES.md](docs/THEMES.md): How themes work and how to create your own
- [APPS.md](docs/APPS.md): Which apps are installed
- [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available
- [KEYBINDINGS.md](docs/KEYBINDINGS.md): Keybindings available in Hyprland
- [WALLPAPERS.md](docs/WALLPAPERS.md): Preview of every wallpapers available
- [TODO.md](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING.md](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License

View File

@@ -1,33 +1,56 @@
# APPS
# Apps and services
*non-exhaustive list*
*non-exhaustive lists*
| Category | Software |
|----------------|---------------|
| WM | Hyprland |
| | hyprlock |
| | hyprpaper |
| | hypridle |
| | wlogout |
| Bar | waybar |
| Terminal | kitty |
| Shell | zsh |
| | tmux |
| | starship |
| | bat |
| | eza |
| | zoxide |
| | fzf |
| Editor | neovim(nixvim)|
| File manager | lf |
| | thunar |
| Browser | qutebrowser |
| Music | spicetify |
| Notifications | dunst |
| Launcher | wofi |
| DM | tuigreet |
| Secrets | sops-nix |
| Misc | lazygit |
| | neofetch |
| | cava |
| | ... |
## Laptop
The laptop configuration is used by an Omen 16 laptop w/ nvidia and an amd gpu running NixOS.
The configurations files can be found in the `hosts/laptop` directory.
| Category | Name |
|-----------------------------------------|----------------|
| WM | Hyprland |
| | hyprlock |
| | hyprpaper |
| | hypridle |
| | wlogout |
| Bar | waybar |
| Terminal | kitty |
| Shell | zsh |
| | tmux |
| | starship |
| | bat |
| | eza |
| | zoxide |
| | fzf |
| Editor | neovim(nixvim) |
| File manager | lf |
| | thunar |
| Browser | qutebrowser |
| Music | spicetify |
| Notifications | dunst |
| Launcher | wofi |
| DM | tuigreet |
| Secrets | sops-nix |
| Misc | lazygit |
| | neofetch |
| | cava |
| See [hosts/laptop](../hosts/laptop/)... | |
## Server
The server configuration is used by a home server running NixOS.
The configurations files can be found in the `hosts/server` directory.
I mainly use it for self-hosting websites and services such as Nextcloud, Vaultwarden, ...
I exposed some services to the internet using a reverse proxy (Nginx) and cloudflare-dyndns, others are accessed through a tailscale network
### Apps
- Nextcloud
- Vaultwarden
- Adguard Home
- Unifi Controler
- Uptime Kuma
- "Jackflix"
- Jellyfin, Transmission, *arr
- See [hosts/server](../hosts/server/)...

View File

@@ -1,10 +1,19 @@
# Contributing to Nixy
Everybody is invited and welcome to contribute to Nixy. There is a lot to do... Check the `docs/TODO.md` file!
Everybody is invited and welcome to contribute to Nixy. There is a lot to do... Check the [TODO.md](./TODO.md) file!
The process is straight-forward.
- Read [How to get faster PR reviews](https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md#best-practices-for-faster-reviews) by Kubernetes (but skip step 0 and 1)
- Fork Nixy [git repository](https://github.com/anotherhadi/nixy).
- Write your changes (new theme, bug fixes, ...).
- Write your changes (new theme, bug fixes, task in to-do, ...).
- Create a Pull Request against the main branch of Nixy.
> [!TIP]
> When wallpapers are added, run `./docs/scripts/compress_png.sh` and `./docs/scripts/create_preview_wallpapers.sh`
> [!TIP]
> To update the README, change the `./docs/src/README_template.md` and run `./docs/scripts/create_readme.sh`
> [!IMPORTANT]
> Don't push your host's folder

38
docs/KEYBINDINGS.md Normal file
View File

@@ -0,0 +1,38 @@
# Keybindings
The list of the keybindings working on Hyprland:
| Description | Keybinding | Command |
| --------------------------- | ---------------------- | ------------------------------------------------------------------ |
| Switch Workspace | SUPER + {Number} | workspace {Number} |
| Move app to Workspace | SUPER SHIFT + {Number} | movetoworkspace {Number} |
| Kitty | SUPER + RETURN | exec \${pkgs.kitty}/bin/kitty |
| Thunar | SUPER + E | exec \${pkgs.xfce.thunar}/bin/thunar |
| Qutebrowser | SUPER + B | exec \${pkgs.qutebrowser}/bin/qutebrowser |
| Bitwarden | SUPER + K | exec \${pkgs.bitwarden}/bin/bitwarden |
| Peaclock | SUPER + C | exec \${pkgs.kitty}/bin/kitty --class peaclock peaclock |
| Lock | SUPER + L | exec \${pkgs.hyprlock}/bin/hyprlock |
| Powermenu | SUPER + X | exec powermenu |
| Launcher | SUPER + SPACE | exec menu |
| Close window | SUPER + Q | killactive |
| Toggle Floating | SUPER + T | togglefloating |
| Toggle Fullscreen | SUPER + F | fullscreen |
| Move focus left | SUPER + left | movefocus l |
| Move focus Right | SUPER + right | movefocus r |
| Move focus Up | SUPER + up | movefocus u |
| Move focus Down | SUPER + down | movefocus d |
| Screenshot window | SUPER + PRINT | exec screenshot window |
| Screenshot monitor | PRINT | exec screenshot monitor |
| Screenshot region | SUPER SHIFT + PRINT | exec screenshot region |
| Screenshot region then edit | ALT PRINT | exec screenshot region swappy |
| Turn off night shift | SUPER + F2 | exec night-shift-off |
| Turn on night shift | SUPER + F3 | exec night-shift-on |
| Choose sound output | SUPER + F5 | exec \${pkgs.kitty}/bin/kitty --class floating zsh -c sound-output |
| Move Window (mouse) | SUPER + mouse:272 | movewindow |
| Resize Window (mouse) | SUPER + R | resizewindow |
| Toggle Mute | XF86AudioMute | exec sound-toggle |
| Lock when closing Lid | switch:Lid Switch | exec \${pkgs.hyprlock}/bin/hyprlock |
| Sound Up | XF86AudioRaiseVolume | exec sound-up |
| Sound Down | XF86AudioLowerVolume | exec sound-down |
| Brightness Up | XF86MonBrightnessUp | exec brightness-up |
| Brightness Down | XF86MonBrightnessDown | exec brightness-down |

View File

@@ -1,12 +1,18 @@
# Scripts
Scripts are located in the `home/scripts` folder. Home-manager add those in the path.
## Nix/NixOs shortcuts
- `nixy-edit`
- `nixy-rebuild`
- `nixy-update`
- `nixy-gc` # garbage collection
- `nixy-cb` # clean boot menu
> [!TIP]
> The `hostname` variable in `hosts/yourhost/variables.nix` should be also the name of the `nixosConfiguration` in `flake.nix` file.
- `nixy` # UI
- `nixy rebuild`
- `nixy update`
- `nixy upgrade`
- `nixy gc` # garbage collection
- `nixy cb` # clean boot menu
## Brightness control
@@ -20,7 +26,7 @@
- `sound-down`
- `sound-toggle`
- `sound-output`
- `sound-change <up/down/mute> <increment>`
- `sound-change [up/down/mute] <increment>`
## Caffeine
@@ -33,6 +39,8 @@ Caffeine is a simple script that toggles hypridle (disable suspend & screenlock)
Blue light filter, using wlsunset
- `night-shift` # Toggle night shift
- `night-shift-status` # Return active/inactive
- `night-shift-on`
- `night-shift-off`
@@ -45,7 +53,7 @@ It will copy the selected icon to the clipboard.
## Compress/Extract
Some shortcut to compress and extract files.
Some shortcuts to compress and extract files.
- `compress` ...
- `extract` ...

View File

@@ -1,13 +1,14 @@
# Themes
Themes are defined in `hosts/themes`. Those themes define the colors, fonts, icons, etc, used by Hyprland and the apps installed.
You can change the selected theme by changing the import statement at the top of your host's variables file.
Themes are defined in `hosts/themes`. Those themes define the colors, fonts, icons, etc, used by Hyprland and the apps/programs installed.
You can change the selected theme by changing the import statement of your host's variables.nix file.
*To apply the theme to duckduckgo, follow the instructions in `$HOME/.duckduckgo-colorscheme.js`.*
> [!TIP]
> To apply the theme to DuckDuckGo, follow the instructions in `$HOME/.duckduckgo-colorscheme.js`
## Create your own theme
## Create your theme
Create a copy of one of the existing theme and change the variables.
Create a copy of one of the existing themes and change the variables.
Wallpapers are loaded from the `home/wallpapers` folder.
## Gallery

View File

@@ -1,10 +1,44 @@
# Todolist
- [ ] Installation script
- [ ] Themes
- [ ] MacOS theme
- [ ] Make hyprcursor work
- [ ] Nixvim
- [ ] Telescope shortcut for file content
- [ ] Markdown snippets
- [ ] Make whichkey better
# Todolist
feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md))
- [ ] Jackflix V2
- Backup Radarr, Prowlarr, Sonarr config
- [ ] Nixy
- [~] Installation script ([install.sh](./scripts/install.sh) to test on a fresh install)
- [~] Variables-template with defaults
- [ ] Themes
- [ ] macOS theme
- [ ] Tofi (Wofi, but terminal based)
- [ ] Qutebrowser
- [ ] !!! Bitwarden integration (I need this.)
- [ ] Hyprland
- [-] Implement Hyprcursor (see home/system/hyprland/hyprcursor.nix: Not working, small cursor on some apps, big one on others)
- [ ] Animations based on app name
- [ ] Wofi: popin
- [ ] Wlogout: fade in
- [ ] Fix screenshots
- [ ] Fix hyprlock
- [ ] Hyprlock tty theme
- [ ] Nixvim
- [ ] Keymaps:
- Trouble
- Tagbar
- [ ] Disable background color for headlines.nvim for titles
- [ ] Backup system for some folders ($home/dev, $home/pictures, ...)
- [ ] Exclude file pattern (nodes modules, ...)
- [ ] Auto backup when a specific usb key is plugged
- [ ] Pika backup?
- [ ] Markdown to pdf tool
- [ ] Server
- [ ] Bitcoin-git
- [ ] ServerFetch: Neofetch like, but for server: CPU, RAM, Disk, Network, Uptime, status (check with uptime kuma API)
- [ ] Ntfy auth file
- [ ] Launch transmission-openvpn on boot (see hosts/server/modules/jackflix/transmission.nix)

39
docs/WALLPAPERS.md Normal file
View File

@@ -0,0 +1,39 @@
# Wallpapers
Wallpapers can be found in the `/home/wallpapers` folder.
| Name | Preview |
|---------------------|----------------------------------------------------------------|
| astronaut.png | ![astronaut.png](../home/wallpapers/astronaut.png) |
| aurore.png | ![aurore.png](../home/wallpapers/aurore.png) |
| barcode.png | ![barcode.png](../home/wallpapers/barcode.png) |
| cat-leaves.png | ![cat-leaves.png](../home/wallpapers/cat-leaves.png) |
| city.png | ![city.png](../home/wallpapers/city.png) |
| cloud.png | ![cloud.png](../home/wallpapers/cloud.png) |
| clouds2.png | ![clouds2.png](../home/wallpapers/clouds2.png) |
| clouds.png | ![clouds.png](../home/wallpapers/clouds.png) |
| coffee.png | ![coffee.png](../home/wallpapers/coffee.png) |
| dark_cloud.png | ![dark_cloud.png](../home/wallpapers/dark_cloud.png) |
| dark.png | ![dark.png](../home/wallpapers/dark.png) |
| fuji-dark.png | ![fuji-dark.png](../home/wallpapers/fuji-dark.png) |
| fuji-light.png | ![fuji-light.png](../home/wallpapers/fuji-light.png) |
| galaxy.png | ![galaxy.png](../home/wallpapers/galaxy.png) |
| house-cloud.png | ![house-cloud.png](../home/wallpapers/house-cloud.png) |
| key.png | ![key.png](../home/wallpapers/key.png) |
| lavender-cat.png | ![lavender-cat.png](../home/wallpapers/lavender-cat.png) |
| lofi-computer.png | ![lofi-computer.png](../home/wallpapers/lofi-computer.png) |
| lofi-urban.png | ![lofi-urban.png](../home/wallpapers/lofi-urban.png) |
| magma.png | ![magma.png](../home/wallpapers/magma.png) |
| mountains-black.png | ![mountains-black.png](../home/wallpapers/mountains-black.png) |
| mountains.png | ![mountains.png](../home/wallpapers/mountains.png) |
| nix.png | ![nix.png](../home/wallpapers/nix.png) |
| problems.png | ![problems.png](../home/wallpapers/problems.png) |
| sea.png | ![sea.png](../home/wallpapers/sea.png) |
| see.png | ![see.png](../home/wallpapers/see.png) |
| space2.png | ![space2.png](../home/wallpapers/space2.png) |
| space.png | ![space.png](../home/wallpapers/space.png) |
| street.png | ![street.png](../home/wallpapers/street.png) |
| sun.png | ![sun.png](../home/wallpapers/sun.png) |
| tokyo.png | ![tokyo.png](../home/wallpapers/tokyo.png) |
| train.png | ![train.png](../home/wallpapers/train.png) |
| windows.png | ![windows.png](../home/wallpapers/windows.png) |

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# Compress png files in ./docs/src and ./home/wallpapers
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
# Main images
for file in ./docs/src/*.png; do
optipng "$file"
done
# Theme's images
for file in ./docs/src/*/*.png; do
optipng "$file"
done
# Wallpapers
for file in ./home/wallpapers/*.png; do
optipng "$file"
done

View File

@@ -1,9 +0,0 @@
#!/usr/bin/env bash
# Compress png files in ./docs/src
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
for file in ./docs/src/*/*.png; do
optipng "$file"
done

View File

@@ -1,29 +0,0 @@
#!/usr/bin/env bash
# This script is used to copy my own configuration to the `./hosts/guest` one, and changing some settings
[[ -d "./hosts" ]] || (
echo "Folder ./hosts not found"
exit 1
)
LAPTOP_CONFIG="./hosts/laptop"
GUEST_CONFIG="./hosts/guest"
cp "$LAPTOP_CONFIG/configuration.nix" "$GUEST_CONFIG/configuration.nix"
cp "$LAPTOP_CONFIG/variables.nix" "$GUEST_CONFIG/variables.nix"
# Remove the NVIDIA driver import
config=$(cat "$LAPTOP_CONFIG/configuration.nix")
config=$(echo "$config" | sed 's/..\/shared\/nvidia/# ..\/shared\/nvidia/')
config=$(echo "$config" | sed 's/..\/shared\/prime/# ..\/shared\/prime/')
echo "$config" >"$GUEST_CONFIG/configuration.nix"
variables=$(cat "$LAPTOP_CONFIG/variables.nix")
variables=$(echo "$variables" | sed 's/112569860+anotherhadi@users.noreply.github.com/your_email/')
variables=$(echo "$variables" | sed 's/hadi/your_username/')
variables=$(echo "$variables" | sed 's/Hadi/your_username/')
variables=$(echo "$variables" | sed 's/sops = true/sops = false/')
variables=$(echo "$variables" | sed 's/nextcloud = true/nextcloud = false/')
variables=$(echo "$variables" | sed 's/obsidian = true/obsidian = false/')
echo "$variables" >"$GUEST_CONFIG/variables.nix"

View File

@@ -0,0 +1,24 @@
#!/usr/bin/env bash
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
# Create WALLPAPERS.md to preview wallpapers in ./home/wallpapers
WALLPAPERS_FOLDER="./home/wallpapers"
WALLPAPERS_MD="./docs/WALLPAPERS.md"
[[ -d "$WALLPAPERS_FOLDER" ]] || (echo "Wallpapers folder not found" && exit 1)
echo "# Wallpapers" >"$WALLPAPERS_MD"
echo "" >>"$WALLPAPERS_MD"
echo "Wallpapers can be found in the \`/home/wallpapers\` folder." >>"$WALLPAPERS_MD"
echo "" >>"$WALLPAPERS_MD"
echo "| Name | Preview |" >>"$WALLPAPERS_MD"
echo "| -- | -- |" >>"$WALLPAPERS_MD"
for file in "$WALLPAPERS_FOLDER"/*.png; do
filename=$(basename "$file")
echo "| $filename | ![$filename](../home/wallpapers/$filename) |" >>"$WALLPAPERS_MD"
done
pandoc -t commonmark_x "$WALLPAPERS_MD" -o "/tmp/wallpapers.md"
mv "/tmp/wallpapers.md" "$WALLPAPERS_MD"

View File

@@ -7,8 +7,21 @@
README_FILE="./README.md"
header=$(cat "./docs/src/header.md")
table_of_content=$(~/go/bin/md-table-of-contents ./docs/src/README_template.md)
table_of_content=$(md-table-of-contents ./docs/src/README_template.md) # https://github.com/anotherhadi/md-table-of-contents
version=$(git describe --tags --abbrev=0)
readme_content=$(cat "./docs/src/README_template.md")
description=$(curl -s https://api.github.com/repos/anotherhadi/nixy | jq .description)
description="${description%\"}"
description="${description#\"}"
echo "${header//\{date\}/$(date '+%D')}" >"$README_FILE"
echo "${readme_content//\{md_table_of_content\}/$table_of_content}" >>"$README_FILE"
header=${header//\{date\}/$(date '+%D')}
header=${header//\{primarycolor\}/89b4fa}
header=${header//\{backgroundcolor\}/181825}
header=${header//\{version\}/$version}
header=${header//\{description\}/$description}
readme_content=${readme_content//\{md_table_of_content\}/$table_of_content}
echo "$header" >"$README_FILE"
echo "$readme_content" >>"$README_FILE"
sed 's/\r//' "$README_FILE" >"/tmp/readme.md"
mv "/tmp/readme.md" "$README_FILE"

View File

@@ -1,10 +0,0 @@
# installation script...
# check if on nixos
# check if ./hosts exist
# check if gum is installed (dependencie)
# save path
# remove .git
# git init and initial commit
# create custom configuration
# save it to ./hosts

View File

@@ -0,0 +1,61 @@
#!/usr/bin/env bash
# A script to parse the Hyprland configuration to store keybindings in a table
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
KEYBINDINGS_FILE="./docs/KEYBINDINGS.md"
function getList() {
content=$1
name=$2
list_start=$(echo "$content" | sed "/$name = \[/!d;=;Q")
list=$(echo "$content" | tail +"$list_start")
list_end=$(echo "$list" | sed '/\]/!d;=;Q')
list=$(echo "$list" | head -n"$list_end")
echo "$list"
}
[[ -f "./home/system/hyprland/default.nix" ]] || (echo "File ./home/system/hyprland/default.nix not found" && exit 1)
config=$(cat "./home/system/hyprland/default.nix")
# Bind
bind=$(getList "$config" "bind")
# Bindm (mouse)
bindm=$(getList "$config" "bindm")
# Bindl (lock)
bindl=$(getList "$config" "bindl")
# Bindle (lock, repetition)
bindle=$(getList "$config" "bindle")
# Join the lists:
keybindings=$(echo -e "$bind\n$bindm\n$bindl\n$bindle" | grep '"')
echo "# Keybindings" >"$KEYBINDINGS_FILE"
echo "" >>"$KEYBINDINGS_FILE"
echo "The list of the keybindings working on Hyprland:" >>"$KEYBINDINGS_FILE"
echo "" >>"$KEYBINDINGS_FILE"
echo "| Description | Keybinding |" >>"$KEYBINDINGS_FILE"
echo "| -- | -- |" >>"$KEYBINDINGS_FILE"
echo "| Switch Workspace | SUPER + {Number} |" >>"$KEYBINDINGS_FILE"
echo "| Move app to Workspace | SHIFT + SUPER + {Number} |" >>"$KEYBINDINGS_FILE"
echo "$keybindings" | while read line; do
comment=$(echo "$line" | cut -d\# -f2)
line=$(echo "$line" | cut -d\# -f1)
line=${line:1:${#line}-3}
mod=$(echo "$line" | cut -d, -f1)
key=$(echo "$line" | cut -d, -f2)
dispatcher=$(echo "$line" | cut -d, -f3)
params=$(echo "$line" | cut -d, -f4)
[[ $mod == '$mod' ]] && mod="SUPER + "
[[ $mod == '$shiftMod' ]] && mod="SHIFT + SUPER + "
echo "| $comment | $mod$key |" >>"$KEYBINDINGS_FILE"
done
pandoc -t commonmark_x "$KEYBINDINGS_FILE" -o "/tmp/keybindings.md"
mv "/tmp/keybindings.md" "$KEYBINDINGS_FILE"

22
docs/scripts/new_tag.sh Normal file
View File

@@ -0,0 +1,22 @@
#!/usr/bin/env bash
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
TAG=$(git describe --tags --abbrev=0)
echo "Current tag: $TAG"
read -rp "Enter the new tag name: " NEW_TAG
echo "Compresing png files..."
bash ./docs/scripts/compress_png.sh
echo "Creating wallpapers preview..."
bash ./docs/scripts/create_preview_wallpapers.sh
echo "Creating README.md..."
bash ./docs/scripts/create_readme.sh
echo "Creating keybindings.md..."
bash ./docs/scripts/create_keybindings.sh
git add .
git commit -m "Release $NEW_TAG"
git tag -a "$NEW_TAG" -m "Release $NEW_TAG"
git push origin "$NEW_TAG"

View File

@@ -1,7 +1,5 @@
# Nixy
**Nixy** is a NixOS configuration with home-manager, secrets and custom theming all in one place.
**Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place.
It's a simple way to manage your system configuration and dotfiles.
## Table of Content
@@ -10,19 +8,22 @@ It's a simple way to manage your system configuration and dotfiles.
## Gallery
![nixy1](docs/src/nixy/1.png)
![nixy2](docs/src/nixy/2.png)
![nixy3](docs/src/nixy/3.png)
![catppuccin1](docs/src/catppuccin/1.png)
![catppuccin2](docs/src/catppuccin/2.png)
![catppuccin3](docs/src/catppuccin/3.png)
## Architecture
- 🏠 `home` are the dotfiles and configuration files for the user
- 🏠 `home` are the dotfiles and configuration files for the users
- 'programs' is a collection of apps configured with home-manager
- 'scripts' is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
- 'system' is some desktop environment like configuration
- 'wallpapers' are... wallpapers
- 💻 `hosts` are the system configuration files
- `laptop` is mine
- `guest` is a template that you can copy and modify for your own system
- `themes` contains all the themes available (see [THEMES.md](docs/THEMES.md))
- `shared` are some nix files that you can import (nvidia, prime, fonts, ...)
- 🤫 `secrets` are the secrets files encrypted with sops
- 'laptop' is my configuration for my laptop with Nvidia that you can copy
- 'server' is for my homeserver (w/nextcloud, nginx, vaultwarden, ... look `hosts/server`)
- 'themes' contains all the *themes* available *(see [THEMES.md](docs/THEMES.md))*
- 'modules' are some nix modules that you can import (Nvidia, prime, fonts, ...)
## Installation
@@ -30,12 +31,15 @@ It's a simple way to manage your system configuration and dotfiles.
git clone https://github.com/anotherhadi/nixy ~/.config/nixos
```
- Change the username in the flake.nix file
- import the guest configuration instead of the `hosts/laptop` one
- import your hardware-configuration.nix into the `hosts/guest` folder
- Copy the `hosts/laptop` folder, rename it to your system name, and change the variables inside the `variables.nix` file
- Add your `hardware-configuration.nix` to your new host's folder
- Add your 'nixosConfigurations' inside `flake.nix` (You can edit your hostname one and change the lines containing '# CHANGEME')
> [!NOTE]
> When you add new files, don't forget to run `git add .` to add them to the git repository
```sh
sudo nixos-rebuild switch --flake ~/.config/nixos#nixy
sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
```
## Documentation
@@ -43,6 +47,9 @@ sudo nixos-rebuild switch --flake ~/.config/nixos#nixy
- [THEMES.md](docs/THEMES.md): How themes work and how to create your own
- [APPS.md](docs/APPS.md): Which apps are installed
- [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available
- [KEYBINDINGS.md](docs/KEYBINDINGS.md): Keybindings available in Hyprland
- [WALLPAPERS.md](docs/WALLPAPERS.md): Preview of every wallpapers available
- [TODO.md](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING.md](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License

View File

@@ -1,34 +1,33 @@
[//]: # (Title: Nixy)
[//]: # (Description: Nixy is a NixOS configuration with home-manager, secrets and custom theming all in one place. It's a simple way to manage your system configuration and dotfiles.)
[//]: # (Description: {description})
[//]: # (Author: Hadi)
[//]: # (Date: {date})
[//]: # (Version: {version})
<div align="center">
<img src="https://image.nostr.build/70ebe2b5183879d8c0ffa682cd0089e030ad01909678b242ed86449517eac3a5.png" width="100px" />
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/docs/src/logo.png" width="100px" />
</div>
<br><br>
<br>
# Nixy
<br>
<div align="center">
<a href="https://github.com/anotherhadi/nixy">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=Version&message=2.0.0&colorA=040409&colorB=a158ff&logo=githubactions&logoColor=a158ff&"/>
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=Version&message={version}&colorA={backgroundcolor}&colorB={primarycolor}&logo=githubactions&logoColor={primarycolor}"/>
</a>
<a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=a158ff&labelColor=040409&style=for-the-badge&logo=starship&logoColor=a158ff">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color={primarycolor}&labelColor={backgroundcolor}&style=for-the-badge&logo=starship&logoColor={primarycolor}">
</a>
<a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color=a158ff&labelColor=040409&style=for-the-badge&logo=github&logoColor=a158ff">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color={primarycolor}&labelColor={backgroundcolor}&style=for-the-badge&logo=github&logoColor={primarycolor}">
</a>
<a href="https://nixos.org">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor=040409&logo=NixOS&logoColor=a158ff&color=a158ff">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor={backgroundcolor}&logo=NixOS&logoColor={primarycolor}&color={primarycolor}">
</a>
<a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA=040409&colorB=a158ff&logo=unlicense&logoColor=a158ff&"/>
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA={backgroundcolor}&colorB={primarycolor}&logo=unlicense&logoColor={primarycolor}"/>
</a>
</div>
<br><br>
<div align="center">
<img src="https://image.nostr.build/aaf8cf0f3b9784c817f8cf328f19222db2e1886dfb89ae97de83ffa101d437b4.png" width="600px" />
</div>
<br>

BIN
docs/src/large.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
docs/src/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

236
flake.lock generated
View File

@@ -11,11 +11,11 @@
"sf-pro": "sf-pro"
},
"locked": {
"lastModified": 1718062482,
"narHash": "sha256-bGWs6XRVgzm1Uagx/EAnz9wnMQVImR1ZlVpAy+SDXCw=",
"lastModified": 1719591391,
"narHash": "sha256-sVTFewitXIYe5vBihbCFQGdBPdnT26kES1T05umBBnE=",
"owner": "Lyndeno",
"repo": "apple-fonts.nix",
"rev": "eeb3521706bfe21206b1301ff8e0876defa1b6dd",
"rev": "0e21619dad5b0d9ca2e050155e32448380547b06",
"type": "github"
},
"original": {
@@ -24,20 +24,52 @@
"type": "github"
}
},
"aquamarine": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1723920171,
"narHash": "sha256-dVCMrAe+D/5S91erhwQj2DSzHOVzAanWqoy+vPWB9DY=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "71d49670fe246cdaff4860b0effba0ab9f163b72",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"devshell": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1717408969,
"narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=",
"lastModified": 1722113426,
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
"owner": "numtide",
"repo": "devshell",
"rev": "1ebbe68d57457c8cae98145410b164b5477761f4",
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
"type": "github"
},
"original": {
@@ -60,22 +92,6 @@
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@@ -84,11 +100,11 @@
]
},
"locked": {
"lastModified": 1717285511,
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
"lastModified": 1722555600,
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
"type": "github"
},
"original": {
@@ -120,11 +136,11 @@
"systems": "systems_3"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
@@ -153,7 +169,10 @@
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-compat": [
"nixvim",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
@@ -165,11 +184,11 @@
]
},
"locked": {
"lastModified": 1717664902,
"narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=",
"lastModified": 1723202784,
"narHash": "sha256-qbhjc/NEGaDbyy0ucycubq4N3//gDFFH3DOmp1D3u1Q=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1",
"rev": "c7012d0c18567c889b948781bc74a501e92275d1",
"type": "github"
},
"original": {
@@ -207,11 +226,11 @@
]
},
"locked": {
"lastModified": 1718243258,
"narHash": "sha256-abBpj2VU8p6qlRzTU8o22q68MmOaZ4v8zZ4UlYl5YRU=",
"lastModified": 1723986931,
"narHash": "sha256-Fy+KEvDQ+Hc8lJAV3t6leXhZJ2ncU5/esxkgt3b8DEY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "8d5e27b4807d25308dfe369d5a923d87e7dbfda3",
"rev": "2598861031b78aadb4da7269df7ca9ddfc3e1671",
"type": "github"
},
"original": {
@@ -228,11 +247,11 @@
]
},
"locked": {
"lastModified": 1718141734,
"narHash": "sha256-cA+6l8ZCZ7MXGijVuY/1f55+wF/RT4PlTR9+g4bx86w=",
"lastModified": 1723399884,
"narHash": "sha256-97wn0ihhGqfMb8WcUgzzkM/TuAxce2Gd20A8oiruju4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "892f76bd0aa09a0f7f73eb41834b8a904b6d0fad",
"rev": "086f619dd991a4d355c07837448244029fc2d9ab",
"type": "github"
},
"original": {
@@ -257,11 +276,11 @@
]
},
"locked": {
"lastModified": 1717181720,
"narHash": "sha256-yv+QZWsusu/NWjydkxixHC2g+tIJ9v+xkE2EiVpJj6g=",
"lastModified": 1722623071,
"narHash": "sha256-sLADpVgebpCBFXkA1FlCXtvEPu1tdEsTfqK1hfeHySE=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "9e27a2c2ceb1e0b85bd55b0afefad196056fe87c",
"rev": "912d56025f03d41b1ad29510c423757b4379eb1c",
"type": "github"
},
"original": {
@@ -272,6 +291,7 @@
},
"hyprland": {
"inputs": {
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
@@ -281,11 +301,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1718359900,
"narHash": "sha256-eVf70Ps7O8R3DEEfSMW54V07kxkRv5IaWMxSa77hMu4=",
"lastModified": 1724014641,
"narHash": "sha256-ub/HCvrxuvvqmnWpNdcyi/mp0G9+rNjtKHrA7cwyuis=",
"ref": "refs/heads/main",
"rev": "b2590b58c51094424a9651d8df37dfab838b5bbb",
"revCount": 4824,
"rev": "f4045ab8d032186b7c5409cd9f05eeaa813320ba",
"revCount": 5109,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
@@ -310,11 +330,11 @@
]
},
"locked": {
"lastModified": 1691753796,
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
"lastModified": 1721326555,
"narHash": "sha256-zCu4R0CSHEactW9JqYki26gy8h9f6rHmSwj4XJmlHgg=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
"rev": "5a11232266bf1a1f5952d5b179c3f4b2facaaa84",
"type": "github"
},
"original": {
@@ -339,11 +359,11 @@
]
},
"locked": {
"lastModified": 1717881852,
"narHash": "sha256-XeeVoKHQgfKuXoP6q90sUqKyl7EYy3ol2dVZGM+Jj94=",
"lastModified": 1721324361,
"narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "ec6938c66253429192274d612912649a0cfe4d28",
"rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086",
"type": "github"
},
"original": {
@@ -364,11 +384,11 @@
]
},
"locked": {
"lastModified": 1717881334,
"narHash": "sha256-a0inRgJhPL6v9v7RPM/rx1kbXdfe3xJA1c9z0ZkYnh4=",
"lastModified": 1722869141,
"narHash": "sha256-0KU4qhyMp441qfwbirNg3+wbm489KnEjXOz2I/RbeFs=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "0693f9398ab693d89c9a0aa3b3d062dd61b7a60e",
"rev": "0252fd13e78e60fb0da512a212e56007515a49f7",
"type": "github"
},
"original": {
@@ -389,11 +409,11 @@
]
},
"locked": {
"lastModified": 1717784906,
"narHash": "sha256-YxmfxHfWed1fosaa7fC1u7XoKp1anEZU+7Lh/ojRKoM=",
"lastModified": 1721324119,
"narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "0f30f9eca6e404130988554accbb64d1c9ec877d",
"rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30",
"type": "github"
},
"original": {
@@ -410,11 +430,11 @@
]
},
"locked": {
"lastModified": 1717976995,
"narHash": "sha256-u3HBinyIyUvL1+N816bODpJmSQdgn0Mbb8BprFw7kqo=",
"lastModified": 1722924007,
"narHash": "sha256-+CQDamNwqO33REJLft8c26NbUi2Td083hq6SvAm2xkU=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "315aa649ba307704db0b16c92f097a08a65ec955",
"rev": "91010a5613ffd7ee23ee9263213157a1c422b705",
"type": "github"
},
"original": {
@@ -425,11 +445,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1718349360,
"narHash": "sha256-SuPne4BMqh9/IkKIAG47Cu5qfmntAaqlHdX1yuFoDO0=",
"lastModified": 1723310128,
"narHash": "sha256-IiH8jG6PpR4h9TxSGMYh+2/gQiJW9MwehFvheSb5rPc=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "ae5c8dcc4d0182d07d75df2dc97112de822cb9d6",
"rev": "c54cf53e022b0b3c1d3b8207aa0f9b194c24f0cf",
"type": "github"
},
"original": {
@@ -457,27 +477,27 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1717880976,
"narHash": "sha256-BRvSCsKtDUr83NEtbGfHLUOdDK0Cgbezj2PtcHnz+sQ=",
"lastModified": 1721524707,
"narHash": "sha256-5NctRsoE54N86nWd0psae70YSLfrOek3Kv1e8KoXe/0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4913a7c3d8b8d00cb9476a6bd730ff57777f740c",
"rev": "556533a23879fc7e5f98dd2e0b31a6911a213171",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-23.11",
"ref": "release-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1717974879,
"narHash": "sha256-GTO3C88+5DX171F/gVS3Qga/hOs/eRMxPFpiHq2t+D8=",
"lastModified": 1723637854,
"narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c7b821ba2e1e635ba5a76d299af62821cbcb09f3",
"rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9",
"type": "github"
},
"original": {
@@ -489,11 +509,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1718160348,
"narHash": "sha256-9YrUjdztqi4Gz8n3mBuqvCkMo4ojrA6nASwyIKWMpus=",
"lastModified": 1723637854,
"narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "57d6973abba7ea108bac64ae7629e7431e0199b6",
"rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9",
"type": "github"
},
"original": {
@@ -530,14 +550,15 @@
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1718358971,
"narHash": "sha256-8REGUp3RB2/3Q3Ibu00onhj1HyLh/Z8oRU6D3/EQ08w=",
"lastModified": 1724010176,
"narHash": "sha256-26fas5WqF8w1PMrMuJNde4bH6WSXFfRbh+L4krgPOzY=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "e51b8b9b5c91aa49981d78c4aa1ac08a50150103",
"rev": "c52ba6785661f095221aa1e1eb24f57e89d7b2de",
"type": "github"
},
"original": {
@@ -546,27 +567,13 @@
"type": "github"
}
},
"nur": {
"locked": {
"lastModified": 1718354773,
"narHash": "sha256-p0pjm5l6LOYoEzSMLZv0QSE4vgGwfhkCz7VN58IUjzc=",
"owner": "nix-community",
"repo": "NUR",
"rev": "2fe75ecfd4dd1d2063fcc31ccb5db6d9f2b6b33c",
"type": "github"
},
"original": {
"id": "nur",
"type": "indirect"
}
},
"nurpkgs": {
"locked": {
"lastModified": 1718354773,
"narHash": "sha256-p0pjm5l6LOYoEzSMLZv0QSE4vgGwfhkCz7VN58IUjzc=",
"lastModified": 1724012881,
"narHash": "sha256-lqn4UX+tvtwOmBZ2Dxh6euXKNcXGEYqPolEdjtONDVY=",
"owner": "nix-community",
"repo": "NUR",
"rev": "2fe75ecfd4dd1d2063fcc31ccb5db6d9f2b6b33c",
"rev": "8c7136cb22fd96cde881225863b450df75876ebc",
"type": "github"
},
"original": {
@@ -575,6 +582,28 @@
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1723367906,
"narHash": "sha256-v1qA4WBGDI2uH/TVqRwuXSBP341W681psbzYJ8zrjog=",
"owner": "NuschtOS",
"repo": "search",
"rev": "6ca2c3ae05a915c160512bd41f6810f456c9b30d",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"ny": {
"flake": false,
"locked": {
@@ -595,7 +624,6 @@
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_3",
"nixvim": "nixvim",
"nur": "nur",
"nurpkgs": "nurpkgs",
"sops-nix": "sops-nix",
"spicetify-nix": "spicetify-nix"
@@ -657,11 +685,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1718137936,
"narHash": "sha256-psA+1Q5fPaK6yI3vzlLINNtb6EeXj111zQWnZYyJS9c=",
"lastModified": 1723501126,
"narHash": "sha256-N9IcHgj/p1+2Pvk8P4Zc1bfrMwld5PcosVA0nL6IGdE=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "c279dec105dd53df13a5e57525da97905cc0f0d6",
"rev": "be0eec2d27563590194a9206f551a6f73d52fa34",
"type": "github"
},
"original": {
@@ -757,11 +785,11 @@
]
},
"locked": {
"lastModified": 1718139168,
"narHash": "sha256-1TZQcdETNdJMcfwwoshVeCjwWfrPtkSQ8y8wFX3it7k=",
"lastModified": 1723454642,
"narHash": "sha256-S0Gvsenh0II7EAaoc9158ZB4vYyuycvMGKGxIbERNAM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "1cb529bffa880746a1d0ec4e0f5076876af931f1",
"rev": "349de7bc435bdff37785c2466f054ed1766173be",
"type": "github"
},
"original": {
@@ -787,11 +815,11 @@
]
},
"locked": {
"lastModified": 1717918856,
"narHash": "sha256-I38bmPLqamvOfVSArd1hhZtkVRAYBK38fOHZCU1P9Qg=",
"lastModified": 1722365976,
"narHash": "sha256-Khdm+mDzYA//XaU0M+hftod+rKr5q9SSHSEuiQ0/9ow=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "72907822c19afc0983c69d59d299204381623725",
"rev": "7f2a77ddf60390248e2a3de2261d7102a13e5341",
"type": "github"
},
"original": {

View File

@@ -26,22 +26,41 @@
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
};
outputs = inputs@{ nixpkgs, nur, ... }: {
outputs = inputs@{ nixpkgs, ... }: {
nixosConfigurations = {
nixy = nixpkgs.lib.nixosSystem {
nixy = nixpkgs.lib.nixosSystem { # CHANGE ME
system = "x86_64-linux";
modules = [
./hosts/laptop/configuration.nix
inputs.nixos-hardware.nixosModules.omen-16-n0005ne
./hosts/laptop/configuration.nix # CHANGE ME
inputs.nixos-hardware.nixosModules.omen-16-n0005ne # CHANGE ME
inputs.home-manager.nixosModules.home-manager
{
nixpkgs.overlays = [ nur.overlay ];
nixpkgs.overlays = [ inputs.nurpkgs.overlay ];
_module.args = { inherit inputs; };
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users."hadi" = import ./home/laptop.nix; # CHANGE ME
users."hadi" = import ./hosts/laptop/home.nix; # CHANGE ME
extraSpecialArgs = { inherit inputs; };
};
}
];
};
jack = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
inputs.sops-nix.nixosModules.sops
./hosts/server/configuration.nix
inputs.home-manager.nixosModules.home-manager
{
nixpkgs.overlays = [ inputs.nurpkgs.overlay ];
_module.args = { inherit inputs; };
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users."hadi" = import ./hosts/server/home.nix;
extraSpecialArgs = { inherit inputs; };
};
}

View File

@@ -1,90 +0,0 @@
{ pkgs, config, ... }: {
imports = [
../hosts/laptop/variables.nix
# Programs
./programs/btop
./programs/cava
./programs/kitty
./programs/nvim
./programs/qutebrowser
./programs/spicetify
# Scripts
./scripts # All scripts
# System
./system/dunst
./system/git
./system/gtk
./system/hyprland
./system/shell
./system/sops/laptop.nix
./system/waybar
./system/wlogout
./system/wofi
];
home = {
inherit (config.var) username;
inherit (config.var) homeDirectory;
packages = with pkgs; [
swappy
imv
discord
obsidian
xfce.thunar
bitwarden
vlc
# Dev
go
cargo
nodejs
python3
jq
# Utils
fd
bc
gcc
blueman
zip
unzip
xdg_utils
wget
curl
wf-recorder
glow
nwg-displays
wireguard-tools
bitwarden-cli
optipng
# Just cool
peaclock
cbonsai
pipes
cmatrix
# Backup
vscode
tor-browser
firefox
neovide
];
# Import wallpapers into $HOME/wallpapers
file."wallpapers" = {
recursive = true;
source = ./wallpapers;
};
stateVersion = "24.05";
};
programs.home-manager.enable = true;
}

View File

@@ -0,0 +1,6 @@
{
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
}

View File

@@ -3,7 +3,10 @@
enable = true;
colorschemes.catppuccin = {
enable = true;
settings = { transparent_background = true; };
settings = {
transparent_background = true;
flavour = "mocha";
};
};
};
}

View File

@@ -1,30 +1,17 @@
{ inputs, ... }: {
imports = [
inputs.nixvim.homeManagerModules.nixvim
./plugins/auto-pairs.nix
./plugins/bufferline.nix
./plugins/lazygit.nix
./plugins/telescope.nix
./plugins/nvim-tree.nix
./plugins/lightline.nix
./plugins/git.nix
./plugins/cmp.nix
./plugins/none-ls.nix
./plugins/wilder.nix
./plugins/dashboard.nix
./plugins/lsp.nix
./plugins/treesitter.nix
./plugins/toggleterm.nix
./plugins/copilot.nix
./plugins/whichkey.nix
./plugins/alpha.nix
./plugins/keymaps.nix
./plugins/comment.nix
./plugins/oil.nix
./plugins/trouble.nix
./plugins/tmux-navigator.nix
./plugins/noice.nix
./plugins/obsidian.nix
./plugins/markdown.nix
./plugins/tree.nix
./plugins/ui.nix
./plugins/utils.nix
./plugins/zen-mode.nix
./options.nix
./colorscheme.nix
./keymaps.nix
];
}

View File

@@ -0,0 +1,24 @@
{
programs.nixvim.keymaps = [
{
key = "<leader>fm";
action = "<cmd>lua vim.lsp.buf.format()<cr>";
options.desc = "LSP Format";
}
{
key = "<leader>w";
action = "<cmd>set wrap!<cr>";
options.desc = "Toggle word wrapping";
}
{
key = "<leader>W";
action = "<cmd>set linebreak!<cr>";
options.desc = "Toggle linebreak";
}
{
key = "<leader>z";
action = "<cmd>ZenMode<cr>";
options.desc = "ZenMode";
}
];
}

View File

@@ -24,7 +24,7 @@
wildmode = "list:longest";
completeopt = [ "menuone" "noselect" ];
signcolumn = "yes";
cursorline = true;
cursorline = false;
scrolloff = 8;
mouse = "a";
@@ -32,6 +32,6 @@
swapfile = false;
undofile = true;
conceallevel = 2;
conceallevel = 3;
};
}

View File

@@ -1 +0,0 @@
{ programs.nixvim.plugins.nvim-autopairs = { enable = true; }; }

View File

@@ -1 +0,0 @@
{ programs.nixvim.plugins.bufferline = { enable = true; }; }

View File

@@ -1 +0,0 @@
{ programs.nixvim.plugins.comment = { enable = true; }; }

View File

@@ -1,5 +0,0 @@
{
programs.nixvim.plugins.copilot-vim = {
enable = true;
};
}

View File

@@ -71,7 +71,22 @@
type = "button";
val = " NixOs Config";
on_press.__raw =
"function() vim.cmd[[e ${config.var.configDirectory}]] end";
"function() vim.cmd[[Neotree ${config.var.configDirectory}]] end";
opts = {
shortcut = "nc";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = " Keybindings";
on_press.__raw =
"function() vim.cmd[[e ${config.var.configDirectory}/docs/KEYBINDINGS.md]] end";
opts = {
shortcut = "nc";
position = "center";

View File

@@ -1,6 +0,0 @@
{
programs.nixvim.plugins.gitsigns = {
enable = true;
settings = { current_line_blame = false; };
};
}

View File

@@ -1,71 +0,0 @@
{
programs.nixvim.keymaps = [
{
key = "<leader>e";
action = "<CMD>Neotree toggle<CR>";
}
{
key = "<space>fm";
action = "<CMD>lua vim.lsp.buf.format()<CR>";
}
{
key = "<leader>ot";
action = "<cmd>lua require('obsidian').util.toggle_checkbox()<cr>";
}
{
key = "<leader>oo";
action = "<cmd>ObsidianQuickSwitch<cr>";
}
{
key = "<leader>on";
action = "<cmd>ObsidianNew<cr>";
}
{
key = "<leader>of";
action = "<cmd>ObsidianSearch<cr>";
}
{
key = "<leader>oi";
action = "<cmd>ObsidianPasteImg<cr>";
}
{
key = "<leader>E";
action = "<cmd>Oil<cr>";
}
{
key = "<leader>t";
action = "<cmd>TroubleToggle<cr>";
}
{
key = "<C-h>";
action = "<cmd>TmuxNavigateLeft<cr>";
}
{
key = "<C-j>";
action = "<cmd>TmuxNavigateDown<cr>";
}
{
key = "<C-k>";
action = "<cmd>TmuxNavigateUp<cr>";
}
{
key = "<C-l>";
action = "<cmd>TmuxNavigateRight<cr>";
}
# Terminal Mappings
{
mode = "t";
key = "<esc>";
action = "<C-\\><C-n>";
}
];
}

View File

@@ -1 +0,0 @@
{ programs.nixvim.plugins.lazygit = { enable = true; }; }

View File

@@ -1 +0,0 @@
{ programs.nixvim.plugins.lualine = { enable = true; }; }

View File

@@ -11,6 +11,14 @@
tailwindcss.enable = true;
html.enable = true;
svelte.enable = true;
marksman.enable = true;
ltex = {
enable = false;
settings = {
enabled = false;
language = "en";
};
};
};
keymaps.lspBuf = {
"gd" = "definition";
@@ -20,5 +28,23 @@
"K" = "hover";
};
};
none-ls = {
enable = true;
sources = {
diagnostics = {
golangci_lint.enable = true;
statix.enable = true;
};
formatting = {
gofmt.enable = true;
goimports.enable = true;
nixfmt.enable = true;
markdownlint.enable = true;
tidy.enable = true;
shellharden.enable = true;
shfmt.enable = true;
};
};
};
};
}

View File

@@ -0,0 +1,133 @@
{
programs.nixvim.plugins = {
mkdnflow = {
enable = true;
mappings = {
# Main
MkdnEnter = {
key = "<CR>";
modes = [ "n" "v" "i" ];
};
# Links
MkdnCreateLink = false;
MkdnCreateLinkFromClipboard = {
key = "<leader>lc";
modes = [ "n" "v" ];
};
MkdnDestroyLink = {
key = "<leader>dl";
modes = "n";
};
MkdnFollowLink = false;
MkdnNextLink = {
key = "<Tab>";
modes = "n";
};
MkdnYankAnchorLink = {
key = "ya";
modes = "n";
};
MkdnYankFileAnchorLink = {
key = "yfa";
modes = "n";
};
MkdnPrevLink = {
key = "<S-Tab>";
modes = "n";
};
MkdnDecreaseHeading = {
key = "-";
modes = "n";
};
MkdnExtendList = false;
MkdnFoldSection = {
key = "<leader>ff";
modes = "n";
};
MkdnUnfoldSection = {
key = "<leader>fu";
modes = "n";
};
MkdnGoBack = {
key = "<BS>";
modes = "n";
};
MkdnGoForward = {
key = "<Del>";
modes = "n";
};
MkdnIncreaseHeading = {
key = "+";
modes = "n";
};
MkdnMoveSource = {
key = "<F2>";
modes = "n";
};
MkdnNewListItem = false;
MkdnNewListItemAboveInsert = {
key = "O";
modes = "n";
};
MkdnNewListItemBelowInsert = {
key = "o";
modes = "n";
};
MkdnNextHeading = {
key = "]]";
modes = "n";
};
MkdnPrevHeading = {
key = "[[";
modes = "n";
};
MkdnSTab = false;
MkdnTab = false;
MkdnTableFormat = {
key = "<leader>ft";
modes = "n";
};
MkdnTableNewColAfter = {
key = "<leader>ic";
modes = "n";
};
MkdnTableNewColBefore = {
key = "<leader>iC";
modes = "n";
};
MkdnTableNewRowAbove = {
key = "<leader>iR";
modes = "n";
};
MkdnTableNewRowBelow = {
key = "<leader>ir";
modes = "n";
};
MkdnTableNextCell = {
key = "<S-Tab>";
modes = "i";
};
MkdnTableNextRow = false;
MkdnTablePrevCell = {
key = "<M-Tab>";
modes = "i";
};
MkdnTablePrevRow = {
key = "<M-CR>";
modes = "i";
};
MkdnToggleToDo = {
key = "<C-Space>";
modes = [ "n" "v" ];
};
MkdnUpdateNumbering = {
key = "<leader>nn";
modes = "n";
};
};
};
};
}

View File

@@ -1 +0,0 @@
{ programs.nixvim.plugins.noice = { enable = true; }; }

View File

@@ -1,20 +0,0 @@
{
programs.nixvim.plugins.none-ls = {
enable = true;
sources = {
diagnostics = {
golangci_lint.enable = true;
statix.enable = true;
};
formatting = {
gofmt.enable = true;
goimports.enable = true;
nixfmt.enable = true;
markdownlint.enable = true;
tidy.enable = true;
shellharden.enable = true;
shfmt.enable = true;
};
};
};
}

View File

@@ -1,5 +0,0 @@
{
programs.nixvim.plugins.neo-tree = {
enable = true;
};
}

View File

@@ -1,9 +0,0 @@
{ config, ... }: {
programs.nixvim.plugins.obsidian = {
enable = config.var.obsidian;
settings = {
dir = "~/nextcloud/Notes";
disable_frontmatter = true;
};
};
}

View File

@@ -1,6 +0,0 @@
{
programs.nixvim.plugins.oil = {
enable = true;
settings = { default_file_explorer = false; };
};
}

View File

@@ -1,13 +0,0 @@
{
programs.nixvim.plugins.telescope = {
enable = true;
keymaps = {
"<leader>fg" = "live_grep";
#"<C-p>" = {
# action = "git_files";
# desc = "Telescope Git Files";
#};
};
extensions.fzf-native = { enable = true; };
};
}

View File

@@ -1 +0,0 @@
{ programs.nixvim.plugins.tmux-navigator = { enable = true; }; }

View File

@@ -1,9 +0,0 @@
{
programs.nixvim.plugins.toggleterm = {
enable = true;
settings = {
open_mapping = "[[<c-t>]]";
direction = "horizontal";
};
};
}

View File

@@ -0,0 +1,61 @@
{
programs.nixvim = {
plugins = {
neo-tree.enable = true;
oil = {
enable = true;
settings = {
default_file_explorer = false;
skip_confirm_for_simple_edits = true;
win_options = {
concealcursor = "ncv";
conceallevel = 3;
cursorcolumn = false;
foldcolumn = "0";
list = false;
signcolumn = "no";
spell = false;
wrap = false;
};
float = { padding = 5; };
keymaps = {
"-" = "actions.parent";
"b" = "actions.parent";
"<C-c>" = "actions.close";
"<C-h>" = "actions.select_split";
"<C-l>" = "actions.refresh";
"<C-p>" = "actions.preview";
"<C-s>" = "actions.select_vsplit";
"<C-t>" = "actions.select_tab";
"<CR>" = "actions.select";
_ = "actions.open_cwd";
"`" = "actions.cd";
"g." = "actions.toggle_hidden";
"g?" = "actions.show_help";
"g\\" = "actions.toggle_trash";
gs = "actions.change_sort";
gx = "actions.open_external";
"~" = "actions.tcd";
};
};
};
};
keymaps = [
{
key = "-";
action = "<cmd>Oil<cr>";
options.desc = "Oil";
}
{
key = "<leader>e";
action = "<cmd>Oil --float<cr>";
options.desc = "Oil";
}
{
key = "<leader>E";
action = "<cmd>Neotree toggle<cr>";
options.desc = "Neotree";
}
];
};
}

View File

@@ -1,10 +0,0 @@
{
programs.nixvim.plugins = {
treesitter = {
enable = true;
nixGrammars = true;
indent = true;
};
treesitter-context.enable = true;
};
}

View File

@@ -1 +0,0 @@
{ programs.nixvim.plugins.trouble = { enable = true; }; }

View File

@@ -0,0 +1,31 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ ctags ];
programs.nixvim = {
plugins = {
lualine.enable = true;
noice.enable = true;
gitsigns = {
enable = true;
settings.current_line_blame = false;
};
bufferline.enable = true;
trouble.enable = true;
which-key.enable = true;
headlines = {
enable = true;
settings = {
markdown = {
codeblock_highlight = false;
};
};
};
nvim-colorizer.enable = true;
# tagbar.enable = true;
};
keymaps = [{
key = "<leader>t";
action = "<cmd>TroubleToggle<cr>";
options.desc = "Trouble";
}];
};
}

View File

@@ -0,0 +1,51 @@
{ config, ... }: {
programs.nixvim = {
highlightOverride = {
FloatBorder.fg = "#${config.var.theme.colors.accent}";
};
plugins = {
copilot-vim.enable = true;
flash.enable = true;
# image.enable = true;
tmux-navigator.enable = true;
comment.enable = true;
nvim-autopairs.enable = true;
friendly-snippets.enable = true;
telescope = {
enable = true;
keymaps = {
"<leader>fg" = "live_grep";
"<leader> " = "find_files";
};
extensions.fzf-native = { enable = true; };
};
treesitter = {
enable = true;
nixGrammars = true;
settings = {
indent.enable = true;
highlight.enable = true;
};
};
treesitter-context.enable = true;
};
keymaps = [
{
key = "<C-h>";
action = "<cmd>TmuxNavigateLeft<cr>";
}
{
key = "<C-j>";
action = "<cmd>TmuxNavigateDown<cr>";
}
{
key = "<C-k>";
action = "<cmd>TmuxNavigateUp<cr>";
}
{
key = "<C-l>";
action = "<cmd>TmuxNavigateRight<cr>";
}
];
};
}

View File

@@ -1,3 +0,0 @@
{
programs.nixvim.plugins.which-key.enable=true;
}

View File

@@ -1,6 +0,0 @@
{
programs.nixvim.plugins.wilder = {
enable = true;
modes = [ ":" "/" "?" ];
};
}

View File

@@ -0,0 +1,31 @@
{
programs.nixvim.plugins.zen-mode = {
enable = true;
settings = {
on_open = ''
function()
require("gitsigns.actions").toggle_current_line_blame()
vim.opt.relativenumber = false
vim.opt.signcolumn = "no"
vim.opt.wrap = true
vim.opt.linebreak = true
end
'';
plugins = {
gitsigns = { enabled = true; };
options = {
enabled = true;
ruler = false;
showcmd = false;
};
tmux = { enabled = true; };
};
window = {
backdrop = 0.95;
height = 1;
options = { signcolumn = "no"; };
width = 0.9;
};
};
};
}

View File

@@ -1,6 +1,82 @@
{ config, ... }: {
{ pkgs, config, ... }:
let
settings = ''
{
"config": {
"title" : "Welcome Home",
"openLinksInNewTab": false,
"locale": "fr-FR",
"colors": {
"primary": "#${config.var.theme.colors.accent}",
"background": "#${config.var.theme.colors.bg}",
"foreground": "#${config.var.theme.colors.fg}",
"muted": "#${config.var.theme.colors.c8}"
},
"folders": [
{
"name": "Bookmarks",
"links": [
{"title": "MyNixOs", "url": "https://mynixos.com", "icon": "󱄅"},
{"title": "Github", "url": "https://github.com", "icon": ""},
{"title": "Proton", "url": "https://mail.proton.me/u/0/inbox", "icon": ""},
{"title": "Cloudflare One", "url": "https://one.dash.cloudflare.com/", "icon": ""},
{"title": "Chat GPT", "url": "https://chat.openai.com/", "icon": "󰭹"},
{"title": "Nixvim", "url": "https://nix-community.github.io/nixvim/", "icon": ""},
{"title": "Hyprland Wiki", "url": "https://wiki.hyprland.org/", "icon": "󰖬"},
{"title": "Youtube", "url": "https://youtube.com", "icon": "󰗃"},
{"title": "Figma", "url": "https://figma.com", "icon": ""},
{"title": "Server", "url": "https://home.anotherhadi.com", "icon": ""}
]
},
{
"name": "Work",
"links": [
{"title": "Outlook", "url": "https://outlook.office.com/mail/", "icon": "󰴢"},
{"title": "Office", "url": "https://www.office.com/?auth=2", "icon": "󰏆"},
{"title": "Teams", "url": "https://teams.microsoft.com/_", "icon": "󰊻"}
]
}
]
}
}
'';
imports = [ ./duckduckgo-colorscheme.nix ./homepage ];
homepage = pkgs.buildNpmPackage {
pname = "homepage";
version = "0.0.0";
src = pkgs.fetchFromGitHub {
owner = "anotherhadi";
repo = "homepage";
rev = "b77d35ed3596eb451bd2ec78063d7cc6e73c773d";
hash = "sha256-j/40922kfAh6zqJ4IRYpr66YXNNYsxuXwZ0aiJFJea0=";
};
# npmDepsHash = lib.fakeHash;
npmDepsHash = "sha256-bG+CHTq2Rst3JMxsjAC81KhK+G7WwsTVD1eyP87g0z4=";
buildPhase = ''
npm install
cp ${
pkgs.writeText "src/routes/config.json" settings
} src/routes/config.json
npm run build
mkdir $out
mv build $out
'';
meta = {
description = "homepage";
homepage = "https://github.com/anotherhadi/homepage";
};
};
in {
imports = [
./duckduckgo-colorscheme.nix
# ./userscripts.nix
];
programs.qutebrowser = {
enable = true;
@@ -18,8 +94,9 @@
};
quickmarks = {
home = "${config.var.homeDirectory}/.config/startpage/index.html";
server = "${config.var.homeDirectory}/.config/serverpage/index.html";
home = "${homepage}/build/index.html";
server = "https://home.anotherhadi.com";
jack = "https://home.anotherhadi.com";
mynixos = "https://mynixos.com";
github = "https://github.com";
outlook = "https://outlook.office.com/mail/";
@@ -38,10 +115,8 @@
settings = {
url = {
default_page =
"${config.var.homeDirectory}/.config/startpage/index.html";
start_pages =
[ "${config.var.homeDirectory}/.config/startpage/index.html" ];
default_page = "${homepage}/build/index.html";
start_pages = [ "${homepage}/build/index.html" ];
};
colors = {
@@ -133,6 +208,8 @@
"dark"; # Enable dark mode for websites that support it
};
statusbar.show = "in-mode";
fonts = { default_family = "${config.var.theme.font}"; };
completion = {
@@ -152,6 +229,7 @@
autoplay = false;
javascript.clipboard = "access";
javascript.enabled = true;
webgl = true;
pdfjs = true;
};
@@ -184,8 +262,8 @@
keyBindings = {
normal = {
"gh" = "open ${config.var.homeDirectory}/.config/startpage/index.html";
"gs" = "open ${config.var.homeDirectory}/.config/serverpage/index.html";
"gh" = "open ${homepage}/build/index.html";
"gs" = "open https://home.anotherhadi.com";
" p" = "tab-move -";
" n" = "tab-move +";
@@ -256,6 +334,7 @@
config.unbind("gt")
c.tabs.padding = {"bottom": 6, "left": 7, "right": 7, "top": 6}
c.statusbar.padding = {"bottom": 6, "left": 7, "right": 7, "top": 6}
config.load_autoconfig(True)
'';

View File

@@ -1,297 +0,0 @@
{ config, ... }:
let
bookmarks = ''
Bookmarks: [
{text: "MyNixOs", url: "https://mynixos.com", icon: "󱄅"},
{text: "Github", url: "https://github.com", icon: ""},
{text: "Proton", url: "https://mail.proton.me/u/0/inbox", icon: ""},
{text: "Cloudflare One", url: "https://one.dash.cloudflare.com/", icon: ""},
{text: "Chat GPT", url: "https://chat.openai.com/", icon: "󰭹"},
{text: "Nixvim", url: "https://nix-community.github.io/nixvim/", icon: ""},
{text: "Hyprland Wiki", url: "https://wiki.hyprland.org/", icon: "󰖬"},
{text: "Nerdfont", url: "https://www.nerdfonts.com/cheat-sheet", icon: ""},
{text: "Youtube", url: "https://youtube.com", icon: "󰗃"},
],
Home: [
{text: "Casa", url: "http://192.168.2.16:8081/#/", icon: "󰋜"},
{text: "Plex", url: "http://192.168.2.16:32400", icon: "󰚺"},
{text: "Nextcloud", url: "http://192.168.2.16:10081", icon: ""},
],
Work: [
{text: "Outlook", url: "https://outlook.office.com/mail/", icon: "󰴢"},
{text: "Office", url: "https://www.office.com/?auth=2", icon: "󰏆"},
{text: "Teams", url: "https://teams.microsoft.com/_", icon: "󰊻"},
],
'';
in {
xdg.configFile."startpage/index.html".text = ''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Homepage</title>
<style>
h1,
h2,
h3,
p {
margin: 0;
padding: 0;
font-family: '${config.var.theme.font}', sans-serif;
}
.w-screen {
width: 100vw;
}
.overflow-hidden {
overflow: hidden;
}
.max-w-7xl {
max-width: 80rem;
}
.mx-auto {
margin-left: auto;
margin-right: auto;
}
.justify-between {
justify-content: space-between;
}
.items-center {
align-items: center;
}
.py-12 {
padding-top: 3rem;
padding-bottom: 3rem;
}
.px-2 {
padding-left: 0.5rem;
padding-right: 0.5rem;
}
.text-5xl {
font-size: 3rem;
line-height: 1;
}
.font-bold {
font-weight: 700;
}
.mb-4 {
margin-bottom: 1rem;
}
.flex {
display: flex;
}
.flex-wrap {
flex-wrap: wrap;
}
.flex-col {
flex-direction: column;
}
.flex-grow {
flex-grow: 1;
}
.gap-5 {
gap: 1.25rem;
}
.gap-05 {
gap: 0.125rem;
}
.justify-start {
justify-content: flex-start;
}
.items-start {
align-items: flex-start;
}
.hover\:opacity-60:hover {
opacity: 0.6;
}
.pb-10 {
padding-bottom: 2.5rem;
}
.p-10 {
padding: 2.5rem;
}
.text-xl {
font-size: 1.25rem;
line-height: 1.75rem;
}
.text-lg {
font-size: 1.125rem;
line-height: 1.75rem;
}
.text-sm {
font-size: 0.875rem;
line-height: 1.25rem;
}
.text-4xl {
font-size: 2.25rem;
line-height: 2.5rem;
}
.px-5 {
padding-left: 1.25rem;
padding-right: 1.25rem;
}
.py-2 {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
}
a {
text-decoration: none;
}
a, a:visited, a:hover, a:active {
color: inherit;
}
</style>
</head>
<body class="w-screen" style="background-color: #${config.var.theme.colors.bg}; color: #${config.var.theme.colors.fg};">
<div class="max-w-7xl mx-auto p-10">
<div class="w-full flex justify-between" id="date-time">
<p class="text-xl"></p>
<p class="text-xl"></p>
</div>
<div class="w-full py-12 px-2" id="greeting">
<h1 class="text-5xl font-bold mb-4" style="color: #${config.var.theme.colors.accent};"></h1>
</div>
<div id="link-list" class="flex gap-5 flex-col justify-start items-start"></div>
</div>
<script defer>
const linkLists = {
${bookmarks}
};
function getDomainFromUrl(url) {
let domain = url.replace(/(^\w+:|^)\/\//, "");
domain = domain.split('/')[0];
return domain;
}
const linkListContainer = document.getElementById('link-list');
for (const key in linkLists) {
if (Object.hasOwnProperty.call(linkLists, key)) {
const linkList = linkLists[key];
const title = document.createElement('h2');
title.textContent = key.charAt(0).toUpperCase() + key.slice(1);
title.className = "text-3xl font-bold"
linkListContainer.appendChild(title);
const list = document.createElement('div');
list.className = 'flex flex-wrap gap-5 justify-start';
linkList.forEach(link => {
const anchor = document.createElement('a');
anchor.href = link.url;
anchor.className = "px-5 py-2 hover:opacity-60 flex-grow"
const div = document.createElement('div');
div.className = 'flex flex-row gap-5 items-center';
let icon = document.createElement('p');
icon.textContent = link.icon || "";
icon.className = "text-4xl";
div.appendChild(icon);
const divNameUrl = document.createElement('div');
divNameUrl.className = 'flex flex-col gap-05';
const name = document.createElement('p');
name.textContent = link.text;
name.className = 'text-lg font-medium';
const url = document.createElement('p');
url.textContent = link.url;
url.className = 'text-sm';
url.style = "color: #${config.var.theme.colors.fgalt};"
divNameUrl.appendChild(name);
divNameUrl.appendChild(url);
div.appendChild(divNameUrl);
anchor.appendChild(div);
list.appendChild(anchor);
});
linkListContainer.appendChild(list);
const spacer = document.createElement('div');
spacer.className = "pb-10"
linkListContainer.appendChild(spacer);
}
}
function updateDateTime() {
const dateTimeContainer = document.getElementById('date-time');
const currentDate = new Date();
const dateOptions = {weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'};
const timeOptions = {hour: '2-digit', minute: '2-digit'};
const formattedDate = currentDate.toLocaleDateString('en-US', dateOptions);
const formattedTime = currentDate.toLocaleTimeString('en-US', timeOptions);
const dateParagraph = dateTimeContainer.querySelector('p:nth-child(1)');
const timeParagraph = dateTimeContainer.querySelector('p:nth-child(2)');
dateParagraph.textContent = formattedDate;
timeParagraph.textContent = formattedTime;
}
updateDateTime();
setInterval(updateDateTime, 60000);
function updateGreeting() {
const greetingContainer = document.getElementById('greeting');
const currentDate = new Date();
const currentHour = currentDate.getHours();
let greetingText;
if (currentHour < 2) {
greetingText = "Good night! ";
} else if (currentHour < 5) {
greetingText = "Hello, night owl! 󰏒";
} else if (currentHour < 12) {
greetingText = "Good morning! ";
} else if (currentHour < 17) {
greetingText = "Good afternoon! ";
} else if (currentHour < 20) {
greetingText = "Good evening! ";
} else {
greetingText = "Good night! ";
}
const greetingHeader = greetingContainer.querySelector('h1');
greetingHeader.textContent = greetingText;
}
updateGreeting();
</script>
</body>
</html>
'';
}

View File

@@ -0,0 +1,14 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
keyutils
python3
python311Packages.pyperclip
python312Packages.tldextract
];
xdg.configFile."qutebrowser/userscripts/bitwarden" = {
source = ./userscripts/qute-bitwarden.py;
executable = true;
};
}

View File

@@ -0,0 +1,291 @@
#!/usr/bin/env python3
# SPDX-FileCopyrightText: Chris Braun (cryzed) <cryzed@googlemail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
"""
Insert login information using Bitwarden CLI and a dmenu-compatible application
(e.g. dmenu, rofi -dmenu, ...).
"""
USAGE = """The domain of the site has to be in the name of the Bitwarden entry, for example: "github.com/cryzed" or
"websites/github.com". The login information is inserted by emulating key events using qutebrowser's fake-key command in this manner:
[USERNAME]<Tab>[PASSWORD], which is compatible with almost all login forms.
If enabled, with the `--totp` flag, it will also move the TOTP code to the
clipboard, much like the Firefox add-on.
You must log into Bitwarden CLI using `bw login` prior to use of this script.
The session key will be stored using keyctl for the number of seconds passed to
the --auto-lock option.
To use in qutebrowser, run: `spawn --userscript qute-bitwarden`
"""
EPILOG = """Dependencies: tldextract (Python 3 module), pyperclip (optional
Python module, used for TOTP codes), Bitwarden CLI (1.7.4 is known to work
but older versions may well also work)
WARNING: The login details are viewable as plaintext in qutebrowser's debug log
(qute://log) and might be shared if you decide to submit a crash report!"""
import argparse
import enum
import functools
import os
import shlex
import subprocess
import sys
import json
import tldextract
argument_parser = argparse.ArgumentParser(
description=__doc__,
usage=USAGE,
epilog=EPILOG,
)
argument_parser.add_argument('url', nargs='?', default=os.getenv('QUTE_URL'))
argument_parser.add_argument('--dmenu-invocation', '-d', default='wofi --dmenu -i',
help='Invocation used to execute a dmenu-provider')
argument_parser.add_argument('--password-prompt-invocation', '-p', default='rofi -dmenu -p "Master Password" -password -lines 0',
help='Invocation used to prompt the user for their Bitwarden password')
argument_parser.add_argument('--no-insert-mode', '-n', dest='insert_mode', action='store_false',
help="Don't automatically enter insert mode")
argument_parser.add_argument('--totp', '-t', action='store_true',
help="Copy TOTP key to clipboard")
argument_parser.add_argument('--io-encoding', '-i', default='UTF-8',
help='Encoding used to communicate with subprocesses')
argument_parser.add_argument('--merge-candidates', '-m', action='store_true',
help='Merge pass candidates for fully-qualified and registered domain name')
argument_parser.add_argument('--auto-lock', type=int, default=900,
help='Automatically lock the vault after this many seconds')
group = argument_parser.add_mutually_exclusive_group()
group.add_argument('--username-only', '-e',
action='store_true', help='Only insert username')
group.add_argument('--password-only', '-w',
action='store_true', help='Only insert password')
group.add_argument('--totp-only', '-T',
action='store_true', help='Only insert totp code')
stderr = functools.partial(print, file=sys.stderr)
class ExitCodes(enum.IntEnum):
SUCCESS = 0
FAILURE = 1
# 1 is automatically used if Python throws an exception
NO_PASS_CANDIDATES = 2
COULD_NOT_MATCH_USERNAME = 3
COULD_NOT_MATCH_PASSWORD = 4
def qute_command(command):
with open(os.environ['QUTE_FIFO'], 'w') as fifo:
fifo.write(command + '\n')
fifo.flush()
def ask_password(password_prompt_invocation):
process = subprocess.run(
shlex.split(password_prompt_invocation),
text=True,
stdout=subprocess.PIPE,
)
if process.returncode > 0:
raise Exception('Could not unlock vault')
master_pass = process.stdout.strip()
return subprocess.check_output(
['bw', 'unlock', '--raw', master_pass],
text=True,
).strip()
def get_session_key(auto_lock, password_prompt_invocation):
if auto_lock == 0:
subprocess.call(['keyctl', 'purge', 'user', 'bw_session'])
return ask_password(password_prompt_invocation)
else:
process = subprocess.run(
['keyctl', 'request', 'user', 'bw_session'],
text=True,
stdout=subprocess.PIPE,
)
key_id = process.stdout.strip()
if process.returncode > 0:
session = ask_password(password_prompt_invocation)
if not session:
raise Exception('Could not unlock vault')
key_id = subprocess.check_output(
['keyctl', 'add', 'user', 'bw_session', session, '@u'],
text=True,
).strip()
if auto_lock > 0:
subprocess.call(['keyctl', 'timeout', str(key_id), str(auto_lock)])
return subprocess.check_output(
['keyctl', 'pipe', str(key_id)],
text=True,
).strip()
def pass_(domain, encoding, auto_lock, password_prompt_invocation):
session_key = get_session_key(auto_lock, password_prompt_invocation)
process = subprocess.run(
['bw', 'list', 'items', '--session', session_key, '--url', domain],
capture_output=True,
)
err = process.stderr.decode(encoding).strip()
if err:
msg = 'Bitwarden CLI returned for {:s} - {:s}'.format(domain, err)
stderr(msg)
if process.returncode:
return '[]'
out = process.stdout.decode(encoding).strip()
return out
def get_totp_code(selection_id, domain_name, encoding, auto_lock, password_prompt_invocation):
session_key = get_session_key(auto_lock, password_prompt_invocation)
process = subprocess.run(
['bw', 'get', 'totp', '--session', session_key, selection_id],
capture_output=True,
)
err = process.stderr.decode(encoding).strip()
if err:
# domain_name instead of selection_id to make it more user-friendly
msg = 'Bitwarden CLI returned for {:s} - {:s}'.format(domain_name, err)
stderr(msg)
if process.returncode:
return '[]'
out = process.stdout.decode(encoding).strip()
return out
def dmenu(items, invocation, encoding):
command = shlex.split(invocation)
process = subprocess.run(command, input='\n'.join(
items).encode(encoding), stdout=subprocess.PIPE)
return process.stdout.decode(encoding).strip()
def fake_key_raw(text):
for character in text:
# Escape all characters by default, space requires special handling
sequence = '" "' if character == ' ' else r'\{}'.format(character)
qute_command('fake-key {}'.format(sequence))
def main(arguments):
if not arguments.url:
argument_parser.print_help()
return ExitCodes.FAILURE
extract_result = tldextract.extract(arguments.url)
# Try to find candidates using targets in the following order: fully-qualified domain name (includes subdomains),
# the registered domain name and finally: the IPv4 address if that's what
# the URL represents
candidates = []
for target in filter(None, [
extract_result.fqdn,
extract_result.registered_domain,
extract_result.subdomain + '.' + extract_result.domain,
extract_result.domain,
extract_result.ipv4]):
target_candidates = json.loads(
pass_(
target,
arguments.io_encoding,
arguments.auto_lock,
arguments.password_prompt_invocation,
)
)
if not target_candidates:
continue
candidates = candidates + target_candidates
if not arguments.merge_candidates:
break
else:
if not candidates:
stderr('No pass candidates for URL {!r} found!'.format(
arguments.url))
return ExitCodes.NO_PASS_CANDIDATES
if len(candidates) == 1:
selection = candidates.pop()
else:
choices = ['{:s} | {:s}'.format(c['name'], c['login']['username']) for c in candidates]
choice = dmenu(choices, arguments.dmenu_invocation, arguments.io_encoding)
choice_tokens = choice.split('|')
choice_name = choice_tokens[0].strip()
choice_username = choice_tokens[1].strip()
selection = next((c for (i, c) in enumerate(candidates)
if c['name'] == choice_name
and c['login']['username'] == choice_username),
None)
# Nothing was selected, simply return
if not selection:
return ExitCodes.SUCCESS
username = selection['login']['username']
password = selection['login']['password']
totp = selection['login']['totp']
if arguments.username_only:
fake_key_raw(username)
elif arguments.password_only:
fake_key_raw(password)
elif arguments.totp_only:
# No point in moving it to the clipboard in this case
fake_key_raw(
get_totp_code(
selection['id'],
selection['name'],
arguments.io_encoding,
arguments.auto_lock,
arguments.password_prompt_invocation,
)
)
else:
# Enter username and password using fake-key and <Tab> (which seems to work almost universally), then switch
# back into insert-mode, so the form can be directly submitted by
# hitting enter afterwards
fake_key_raw(username)
qute_command('fake-key <Tab>')
fake_key_raw(password)
if arguments.insert_mode:
qute_command('mode-enter insert')
# If it finds a TOTP code, it copies it to the clipboard,
# which is the same behavior as the Firefox add-on.
if not arguments.totp_only and totp and arguments.totp:
# The import is done here, to make pyperclip an optional dependency
import pyperclip
pyperclip.copy(
get_totp_code(
selection['id'],
selection['name'],
arguments.io_encoding,
arguments.auto_lock,
arguments.password_prompt_invocation,
)
)
return ExitCodes.SUCCESS
if __name__ == '__main__':
arguments = argument_parser.parse_args()
sys.exit(main(arguments))

View File

@@ -6,7 +6,6 @@
./zoxide.nix
./tmux.nix
./lazygit.nix
./fetch
./lf
./eza.nix
];
}

View File

@@ -0,0 +1,13 @@
{
programs.eza = {
enable = true;
icons = true;
extraOptions = [
"--group-directories-first"
"--no-quotes"
"--git-ignore"
"--icons=always"
];
};
}

View File

@@ -12,6 +12,7 @@
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R
set -gq allow-passthrough on
'';
plugins = with pkgs; [
@@ -39,6 +40,7 @@
set -g @catppuccin_directory_text "#{pane_current_path}"
set -g @catppuccin_status_background "default"
set-option -g default-terminal "screen-256color"
'';
}
];

View File

@@ -1,6 +1,8 @@
{ pkgs, lib, config, ... }: {
home.packages = with pkgs; [ eza bat ripgrep tldr ];
home.packages = with pkgs; [ bat ripgrep tldr ];
home.sessionPath = [ "$HOME/go/bin" ];
programs.zsh = {
enable = true;
@@ -15,6 +17,8 @@
pkgs.neofetch + "/bin/neofetch"
else if config.var.theme.fetch == "nerdfetch" then
"nerdfetch"
else if config.var.theme.fetch == "pfetch" then
"echo; ${pkgs.pfetch}/bin/pfetch"
else
""}
'';
@@ -33,19 +37,24 @@
shellAliases = {
vim = "nvim";
vi = "nvim";
v = "nvim";
c = "clear";
clera = "clear";
celar = "clear";
e = "exit";
cd = "z";
ls = "${pkgs.eza}/bin/eza --icons=always";
tree = "${pkgs.eza}/bin/eza --icons=always --tree";
ls = "eza --icons=always --no-quotes";
tree = "eza --icons=always --tree --no-quotes";
sl = "ls";
open = "${pkgs.xdg_utils}/bin/xdg-open";
icat = "${pkgs.kitty}/bin/kitty +kitten icat";
note = "vim ~/Nextcloud/obsidian";
obs = "vim ~/Nextcloud/obsidian";
wireguard-import = "nmcli connection import type wireguard file";
neorg =
"cd ~/nextcloud/neorg && vim -c ':ZenMode' -c ':Telescope find_files' index.norg";
notes =
"cd ~/nextcloud/Notes && vim -c ':ZenMode' -c ':Telescope find_files' index.md";
note = "notes";
# git
ga = "git add";

View File

@@ -0,0 +1,39 @@
{
programs.yazi = {
enable = true;
enableZshIntegration = true;
settings = {
log = { enabled = false; };
manager = {
show_hidden = false;
sort_by = "modified";
sort_dir_first = true;
sort_reverse = true;
};
};
theme = {
filetype = {
rules = [
{
fg = "#7AD9E5";
mime = "image/*";
}
{
fg = "#F3D398";
mime = "video/*";
}
{
fg = "#F3D398";
mime = "audio/*";
}
{
fg = "#CD9EFC";
mime = "application/x-bzip";
}
];
};
};
};
}

View File

@@ -0,0 +1,17 @@
# PDF viewer
{
programs.zathura = {
enable = true;
options = {
guioptions = "v";
adjust-open = "width";
statusbar-basename = true;
render-loading = false;
scroll-step = 120;
# highlight-color = ");
# highlight-active-color = mkForce (rgba "base0D");
};
};
}

View File

@@ -1,16 +1,11 @@
{ pkgs, ... }:
let
notify-system = pkgs.writeShellScriptBin "notify-system" ''
function minute() {
while true;do
battery-plugged &
battery-level &
sleep 60
done
}
minute
battery-watch = pkgs.writeShellScriptBin "battery-watch" ''
while true;do
battery-plugged &
battery-level &
sleep 60
done
'';
battery-plugged = pkgs.writeShellScriptBin "battery-plugged" ''
@@ -18,9 +13,9 @@ let
OLD_BATTERY_STATUS=$(cat /tmp/old_battery_status 2>/dev/null || echo "Unknown")
if [[ $BATTERY_STATUS != $OLD_BATTERY_STATUS && $OLD_BATTERY_STATUS != "Unknown" ]]; then
if [[ $BATTERY_STATUS == "Discharging" ]]; then
${pkgs.libnotify}/bin/notify-send "󰚦 " "Battery is unplugged"
notif "battery" "󰚦 Battery is unplugged"
else
${pkgs.libnotify}/bin/notify-send "󰚥 " "Battery is plugged in"
notif "battery" "󰚥 Battery is plugged in"
fi
fi
echo $BATTERY_STATUS > /tmp/old_battery_status
@@ -30,14 +25,12 @@ let
BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity | head -n1)
BATTERY_STATUS=$(cat /sys/class/power_supply/BAT*/status | head -n1)
if [[ $BATTERY_LEVEL -le 20 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then
${pkgs.libnotify}/bin/notify-send "󰁻 Low battery" "Battery level is $BATTERY_LEVEL%"
notif "battery" "󰁻 Low battery" "Battery level is $BATTERY_LEVEL%"
elif [[ $BATTERY_LEVEL -le 10 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then
${pkgs.libnotify}/bin/notify-send --urgency=critical "󰁺 Very low battery" "Battery level is $BATTERY_LEVEL%"
elif [[ $BATTERY_LEVEL -eq 100 ]] && [[ $BATTERY_STATUS -ne "Discharging" ]]; then
${pkgs.libnotify}/bin/notify-send "󰁹 Fully charged"
notif "battery" "󰁺 Very low battery" "Battery level is $BATTERY_LEVEL%"
# elif [[ $BATTERY_LEVEL -eq 100 ]] && [[ $BATTERY_STATUS -ne "Discharging" ]]; then
# notif "battery" "󰁹 Fully charged"
fi
'';
in {
home.packages = with pkgs; [ notify-system battery-plugged battery-level ];
}
in { home.packages = [ battery-watch battery-plugged battery-level ]; }

View File

@@ -13,9 +13,7 @@ let
message="󰃠 Brightness: $brightness_level%"
${pkgs.libnotify}/bin/notify-send "$message" \
-h int:value:"$brightness_level" \
--replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification"
notif "brightness" "$message" "extraargs=-h int:value:$brightness_level"
'';
brightness-up = pkgs.writeShellScriptBin "brightness-up" ''
@@ -26,10 +24,4 @@ let
brightness-change down ${increments}
'';
in {
home.packages = with pkgs; [
brightness-change
brightness-up
brightness-down
];
}
in { home.packages = [ brightness-change brightness-up brightness-down ]; }

View File

@@ -1,9 +1,7 @@
{ pkgs, config, ... }:
{ pkgs, ... }:
let
homedir = config.home.homeDirectory;
caffeine-status = pkgs.writeShellScriptBin "caffeine-status" ''
[[ -f /tmp/caffeine ]] && echo "active" || echo "inactive"
[[ -f /tmp/caffeine ]] && echo "1" || echo "0"
'';
caffeine = pkgs.writeShellScriptBin "caffeine" ''
@@ -16,8 +14,16 @@ let
pkill hypridle
message="󰅶 Caffeine Activated"
fi
${pkgs.libnotify}/bin/notify-send "$message" \
--replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification"
notif "caffeine" "$message"
'';
in { home.packages = with pkgs; [ caffeine-status caffeine ]; }
caffeine-status-icon = pkgs.writeShellScriptBin "caffeine-status-icon" ''
status=$(caffeine-status)
if [[ $status == "1" ]]; then
echo "󰅶"
else
echo "󰾪"
fi
'';
in { home.packages = [ caffeine-status caffeine caffeine-status-icon ]; }

View File

@@ -11,6 +11,7 @@ let
echo "Wrong number of arguments..."
fi
'';
extract = pkgs.writeShellScriptBin "extract" ''
for i in "$@" ; do
tar -xvzf $i
@@ -18,4 +19,4 @@ let
done
'';
in { home.packages = with pkgs; [ compress extract ]; }
in { home.packages = [ compress extract ]; }

View File

@@ -8,8 +8,10 @@
./screenshot
./startup
./nerdfont_fzf
./system
./notification
./battery
./compress
./misc
./tofi
];
}

View File

@@ -1,8 +1,6 @@
{ pkgs, config, ... }:
{ pkgs, ... }:
let
homedir = config.home.homeDirectory;
menu = pkgs.writeShellScriptBin "menu" ''
if pgrep wofi; then
pkill wofi
@@ -19,12 +17,8 @@ let
fi
'';
wireguard-import = pkgs.writeShellScriptBin "wireguard-import" ''
nmcli connection import type wireguard file "$1"
lock = pkgs.writeShellScriptBin "lock" ''
${pkgs.hyprlock}/bin/hyprlock
'';
vault = pkgs.writeShellScriptBin "vault" ''
nvim $HOME/Nextcloud/obsidian
'';
in { home.packages = with pkgs; [ menu wireguard-import powermenu vault ]; }
in { home.packages = [ menu powermenu lock ]; }

View File

@@ -26,10 +26,9 @@ let
'';
in {
home.packages = with pkgs; [ nerdfont-fzf nerdfont-fzf-fetch nerdfont-popup ];
home.packages = [ nerdfont-fzf nerdfont-fzf-fetch nerdfont-popup ];
xdg.configFile."nerdfont_glyphnames.json" = {
source = ./nerdfont_glyphnames.json;
};
}

View File

@@ -1,20 +1,50 @@
{ pkgs, config, ... }:
{ pkgs, ... }:
let
homedir = config.home.homeDirectory;
default = "4000";
night-shift-on = pkgs.writeShellScriptBin "night-shift-on" ''
${pkgs.hyprland}/bin/hyprctl dispatch exec "${pkgs.wlsunset}/bin/wlsunset -t ${default}"
message="󰖔 Night-Shift Activated"
${pkgs.libnotify}/bin/notify-send "$message" \
--replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification"
notif "night-shift" "$message"
'';
night-shift-off = pkgs.writeShellScriptBin "night-shift-off" ''
pkill wlsunset
message="󰖔 Night-Shift Deactivated"
${pkgs.libnotify}/bin/notify-send "$message" \
--replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification"
notif "night-shift" "$message"
'';
in { home.packages = with pkgs; [ night-shift-on night-shift-off ]; }
night-shift = pkgs.writeShellScriptBin "night-shift" ''
if pgrep wlsunset; then
night-shift-off
else
night-shift-on
fi
'';
night-shift-status = pkgs.writeShellScriptBin "night-shift-status" ''
if [[ $(pgrep wlsunset) ]]; then
echo "1"
else
echo "0"
fi
'';
night-shift-status-icon =
pkgs.writeShellScriptBin "night-shift-status-icon" ''
if [[ $(pgrep wlsunset) ]]; then
echo "󰖔"
else
echo "󰖕"
fi
'';
in {
home.packages = [
night-shift-on
night-shift-off
night-shift
night-shift-status
night-shift-status-icon
];
}

View File

@@ -1,32 +1,57 @@
{ pkgs, config, ... }:
let
nixy-rebuild = pkgs.writeShellScriptBin "nixy-rebuild" ''
sudo nixos-rebuild switch --flake ${config.var.configDirectory}#nixy
nixy = pkgs.writeShellScriptBin "nixy" ''
function exec() {
$@
}
function ui(){
DEFAULT_ICON="󰘳"
# "icon;name;command"[]
apps=(
";Rebuild;nixy rebuild"
";Upgrade;nixy upgrade"
";Update;nixy update"
";Collect Garbage;nixy gc"
";Clean Boot Menu;nixy cb"
)
# Apply default icons if empty:
for i in "''${!apps[@]}"; do
apps[i]=$(echo "''${apps[i]}" | sed 's/^;/'$DEFAULT_ICON';/')
done
fzf_result=$(printf "%s\n" "''${apps[@]}" | awk -F ';' '{print $1" "$2}' | fzf)
[[ -z $fzf_result ]] && exit 0
fzf_result=''${fzf_result/ /;}
line=$(printf "%s\n" "''${apps[@]}" | grep "$fzf_result")
command=$(echo "$line" | sed 's/^[^;]*;//;s/^[^;]*;//')
exec "$command"
exit 0
}
[[ $1 == "" ]] && ui
if [[ $1 == "rebuild" ]];then
sudo nixos-rebuild switch --flake ${config.var.configDirectory}#${config.var.hostname}
elif [[ $1 == "upgrade" ]];then
sudo nixos-rebuild switch --upgrade --flake ${config.var.configDirectory}#${config.var.hostname}
elif [[ $1 == "update" ]];then
cd ${config.var.configDirectory} && sudo nix flake update
elif [[ $1 == "gc" ]];then
cd ${config.var.configDirectory} && sudo nix-collect-garbage -d
elif [[ $1 == "cb" ]];then
sudo /run/current-system/bin/switch-to-configuration boot
elif [[ $1 == "remote" ]];then
cd ~/.config/nixos && git add . && git commit -m "update" && git push
ssh jack -S -C "cd /home/hadi/.config/nixos && git pull && sudo -S nixos-rebuild switch --flake ~/.config/nixos#jack"
else
echo "Unknown argument"
fi
'';
nixy-upgrade = pkgs.writeShellScriptBin "nixy-upgrade" ''
sudo nixos-rebuild switch --upgrade --flake ${config.var.configDirectory}#nixy
'';
nixy-update = pkgs.writeShellScriptBin "nixy-update" ''
cd ${config.var.configDirectory} && sudo nix flake update
'';
nixy-gc = pkgs.writeShellScriptBin "nixy-gc" ''
cd ${config.var.configDirectory} && sudo nix-collect-garbage -d
'';
nixy-cb = pkgs.writeShellScriptBin "nixy-cb" ''
sudo /run/current-system/bin/switch-to-configuration boot
'';
in {
home.packages = with pkgs; [
nixy-rebuild
nixy-upgrade
nixy-update
nixy-gc
nixy-cb
];
}
in { home.packages = [ nixy ]; }

View File

@@ -0,0 +1,27 @@
{ pkgs, ... }:
let
notif = pkgs.writeShellScriptBin "notif" ''
# Shell script to send custom notifications
NOTIF_FOLDER="/tmp/notif"
sender_id=$1 # To overwrite existing notifications
message=$2
extraargs=""
description=""
if [[ $3 == "extraargs="* ]]; then
extraargs=$(echo "$3" | sed 's/extraargs=//g')
else
description="$3"
extraargs="$4"
fi
[[ -d "$NOTIF_FOLDER" ]] || mkdir $NOTIF_FOLDER
[[ -f "$NOTIF_FOLDER/$sender_id" ]] || echo "0" > "$NOTIF_FOLDER/$sender_id"
old_notification_id=$(cat "$NOTIF_FOLDER/$sender_id")
${pkgs.libnotify}/bin/notify-send "$message" \
$extraargs \
--replace-id="$old_notification_id" --print-id > "$NOTIF_FOLDER/$sender_id"
'';
in { home.packages = [ notif ]; }

View File

@@ -30,4 +30,4 @@ let
--icon="$folder/$filename" \
--replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification"
'';
in { home.packages = with pkgs; [ hyprshot screenshot ]; }
in { home.packages = [ pkgs.hyprshot screenshot ]; }

View File

@@ -26,9 +26,7 @@ let
message="󰕾 Volume: $volume%"
fi
${pkgs.libnotify}/bin/notify-send "$message" \
-h int:value:"$volume" \
--replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification"
notif "sound" "$message" "extraargs=-h int:value:$volume"
'';
sound-up = pkgs.writeShellScriptBin "sound-up" ''
@@ -83,11 +81,6 @@ let
'';
in {
home.packages = with pkgs; [
sound-output
sound-change
sound-up
sound-down
sound-toggle
];
home.packages =
[ sound-output sound-change sound-up sound-down sound-toggle ];
}

View File

@@ -1,43 +1,17 @@
# File runned at startup by Hyprland
{ pkgs, config, ... }:
let
nextcloud-watch = pkgs.writeShellScriptBin "nextcloud-watch" ''
# Start nextcloud if I'm on my local network
while true;do
sleep 120
ssid=$(nmcli -t -f name connection show --active | head -n1)
nextcloud_status=$(ps -aux | grep -E "/bin/nextcloud --background$")
if [[ $nextcloud_status == "" ]]; then
service_status="inactive"
else
service_status="active"
fi
if [[ $ssid == "inthecloud" || $ssid == "Wired connection 2" ]]; then
if [[ $service_status == "inactive" ]]; then
${pkgs.nextcloud-client}/bin/nextcloud --background
fi
else
if [[ $service_status == "active" ]]; then
nextcloud_pid=$(pgrep -n nextcloud)
kill $nextcloud_pid
fi
fi
done
'';
startup = pkgs.writeShellScriptBin "startup" ''
# Startup is a script called by Hyprland on startup
# Because HM enabling services suck.
[[ ${toString config.var.sops} == "1" ]] && systemctl --user start sops-nix
[[ ${toString config.var.nextcloud} == "1" ]] && nextcloud-watch &
notify-system &
battery-watch &
${pkgs.waybar}/bin/waybar &
wlr-randr --output "Unknown-1" --off # REMOVE WEIRD GHOST MONITOR
wlr-randr --output "Unknown-1" --off # FIX: REMOVE WEIRD GHOST MONITOR
'';
in { home.packages = with pkgs; [ startup nextcloud-watch nextcloud-client ]; }
in { home.packages = [ startup ]; }

View File

@@ -0,0 +1,62 @@
{ pkgs, config, ... }:
let
tofi = pkgs.writeShellScriptBin "tofi" ''
hyprexec="hyprctl dispatch exec"
function exec() {
$@
}
function ui(){
DEFAULT_ICON="󰘳"
# "icon;name;command"[]
apps=(
";Nixy;nixy"
";Nerdfont FZF;nerdfont-fzf"
";Brightness Up;brightness-up"
";Brightness Down;brightness-down"
";Sound Up;sound-up"
";Sound Down;sound-down"
";Sound Toggle Mute;sound-toggle"
";Sound Change Output;sound-output"
";Caffeine;caffeine"
";Night Shift Toggle;night-shift-toggle"
";Firefox;$hyprexec firefox"
";Qutebrowser;$hyprexec qutebrowser"
";Kitty;$hyprexec kitty"
";Thunar;$hyprexec thunar"
";Powermenu;powermenu"
";Wofi;menu"
";Lock;lock"
";Bitwarden;$hyprexec bitwarden"
";Clock; peaclock"
";Nextcloud;$hyprexec nextcloud"
";Spotify;$hyprexec spotify"
";Btop;btop"
";Cava;cava"
";Discord;$hyprexec discord"
";Vlc;$hyprexec vlc"
";Obsidian;$hyprexec obsidian"
)
# Apply default icons if empty:
for i in "''${!apps[@]}"; do
apps[i]=$(echo "''${apps[i]}" | sed 's/^;/'$DEFAULT_ICON';/')
done
fzf_result=$(printf "%s\n" "''${apps[@]}" | awk -F ';' '{print $1" "$2}' | fzf)
[[ -z $fzf_result ]] && exit 0
fzf_result=''${fzf_result/ /;}
line=$(printf "%s\n" "''${apps[@]}" | grep "$fzf_result")
command=$(echo "$line" | sed 's/^[^;]*;//;s/^[^;]*;//')
exec "$command"
exit 0
}
ui
'';
in { home.packages = [ tofi ]; }

View File

@@ -5,8 +5,8 @@
services.dunst = {
enable = true;
iconTheme = {
name = "Adwaita-Dark";
package = pkgs.gnome.adwaita-icon-theme;
name = "Moka";
package = pkgs.moka-icon-theme;
};
settings = {
global = {

View File

@@ -32,7 +32,7 @@
home.file = {
".local/share/themes/FlatColor" = {
recursive = true;
source = ./gtk;
source = ./theme;
};
".local/share/themes/FlatColor/colors2".text = ''

View File

Before

Width:  |  Height:  |  Size: 184 B

After

Width:  |  Height:  |  Size: 184 B

View File

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 286 B

View File

Before

Width:  |  Height:  |  Size: 152 B

After

Width:  |  Height:  |  Size: 152 B

View File

Before

Width:  |  Height:  |  Size: 152 B

After

Width:  |  Height:  |  Size: 152 B

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Some files were not shown because too many files have changed in this diff Show More