511 Commits

Author SHA1 Message Date
Hadi 60fe3769e8 Release v2.4.0
Former-commit-id: 7ddff66f00
2024-09-04 10:11:28 +02:00
Hadi 641bf821d4 Update
Former-commit-id: e1f973cabf
2024-09-04 10:10:52 +02:00
Hadi 25aa619445 Update
Former-commit-id: e38895c4a5
2024-09-04 10:10:32 +02:00
Hadi 5a0d476de3 Update
Former-commit-id: c2e6fd7d32
2024-09-04 09:34:42 +02:00
Hadi 00db8d0ae6 Update
Former-commit-id: 3d8bcaeeb2
2024-09-04 02:02:57 +02:00
Hadi ef66b6f848 Add wofi clipman
Former-commit-id: 4135134261
2024-09-04 01:53:36 +02:00
Hadi 59caed5e69 Add wofi emoji
Former-commit-id: 027ef1c398
2024-09-04 01:44:37 +02:00
Hadi dad0865d06 Change to gammastep
Former-commit-id: 659509e613
2024-09-04 01:40:24 +02:00
Hadi c106c76cbc Update
Former-commit-id: e9a20f49e2
2024-09-02 18:30:30 +02:00
Hadi 4181544de8 Update
Former-commit-id: 75562adea8
2024-09-02 09:29:50 +02:00
Hadi 30c8414749 Update
Former-commit-id: 4afca71b91
2024-08-30 17:29:30 +02:00
Hadi 6bb9386773 Update
Former-commit-id: 4a8f1be75f
2024-08-30 17:02:38 +02:00
Hadi ae82cbcf67 Update
Former-commit-id: 4540b40dc4
2024-08-30 16:13:57 +02:00
Hadi 518ac107c6 Update
Former-commit-id: fcd5eca04f
2024-08-30 16:06:22 +02:00
Hadi 58f5f421e8 Update
Former-commit-id: da1b88305d
2024-08-30 15:47:17 +02:00
Hadi 999950afc9 Update
Former-commit-id: f0e9294982
2024-08-30 14:16:30 +02:00
Hadi 13a6249227 Update
Former-commit-id: b3f20e6aef
2024-08-30 09:33:57 +02:00
Hadi c68df370cc Update
Former-commit-id: 48a59c4c55
2024-08-29 22:46:04 +02:00
Hadi c08d551932 Update
Former-commit-id: c83e5b2213
2024-08-29 17:04:05 +02:00
Hadi fa63cf950a Update
Former-commit-id: 55a5c52c51
2024-08-29 14:29:05 +02:00
Hadi 31cb1fd0f2 Release v2.3.0
Former-commit-id: 90e8d5577e
2024-08-28 12:30:52 +02:00
Hadi 647236f7b0 Fetch the gtk flatcolor theme folder from github
Former-commit-id: 835a9e9da2
2024-08-28 12:30:04 +02:00
Hadi 43566fc4ae Update
Former-commit-id: 3c171c33be
2024-08-28 11:43:03 +02:00
Hadi 682c50793c Update
Former-commit-id: aa8fca0bed
2024-08-26 17:48:05 +02:00
Hadi 2958b5a03c Update
Former-commit-id: 1255919f41
2024-08-24 17:09:12 +02:00
Hadi 2b25d18bd5 update
Former-commit-id: 109f31151d
2024-08-23 11:42:33 +02:00
Hadi 248f9a5ba8 update
Former-commit-id: 3c3acd03b4
2024-08-23 11:28:15 +02:00
Hadi 89ff802e16 update
Former-commit-id: 65c95ac82a
2024-08-23 11:28:07 +02:00
Hadi 13643dc1bc update
Former-commit-id: 776095c817
2024-08-23 11:25:23 +02:00
Hadi 188ef240ae update
Former-commit-id: d36952e040
2024-08-23 11:23:16 +02:00
Hadi a8c1b6363d update
Former-commit-id: ae0480cab3
2024-08-23 10:59:21 +02:00
Hadi 8aaa6199f2 update
Former-commit-id: bd8e69fe44
2024-08-23 10:58:07 +02:00
Hadi 4cd544d59f update
Former-commit-id: ddeaf0170d
2024-08-23 10:56:42 +02:00
Hadi c9a4f2115d update
Former-commit-id: f27b66f878
2024-08-23 10:52:35 +02:00
Hadi 395efb8ef1 update
Former-commit-id: 574b0043ac
2024-08-23 10:52:11 +02:00
Hadi 1280370a0a update
Former-commit-id: fbd804939f
2024-08-23 10:51:31 +02:00
Hadi f9bcfb5b50 update
Former-commit-id: cfa4e187c5
2024-08-23 10:31:25 +02:00
Hadi 3244b2d7e0 update
Former-commit-id: b1d3094bcc
2024-08-23 10:25:43 +02:00
Hadi eff0846c0f update
Former-commit-id: 1f7ca17d94
2024-08-23 10:12:00 +02:00
Hadi e2a10d4067 update
Former-commit-id: d939bc6f53
2024-08-23 10:11:07 +02:00
Hadi 39a1d16701 update
Former-commit-id: 3419421098
2024-08-23 10:09:02 +02:00
Hadi adbe7f3295 Update
Former-commit-id: d816099985
2024-08-22 21:02:14 +02:00
Hadi d67f234b2b update
Former-commit-id: 28424b82ab
2024-08-22 16:28:08 +02:00
Hadi 14a3a77c9e update
Former-commit-id: 771dceeb06
2024-08-22 16:11:48 +02:00
Hadi 0a1f505dd1 update
Former-commit-id: a2d4d36289
2024-08-22 16:07:39 +02:00
Hadi c6b1af26ce update
Former-commit-id: e4fce0a17a
2024-08-22 16:06:44 +02:00
Hadi 4a42f1fc91 update
Former-commit-id: 88a8168ce2
2024-08-22 16:02:10 +02:00
Hadi 612a8f6d33 update
Former-commit-id: 58d809d860
2024-08-22 15:41:28 +02:00
Hadi e7b608ecc4 update
Former-commit-id: 4b3f43e402
2024-08-22 15:32:46 +02:00
Hadi bfe270b6e1 update
Former-commit-id: bbe0574051
2024-08-22 15:28:47 +02:00
Hadi e5f82cdb2d Update
Former-commit-id: 3ef71b9fa2
2024-08-22 15:25:32 +02:00
Hadi d705c8cecc Update
Former-commit-id: a240a76a8e
2024-08-20 15:27:18 +02:00
Hadi f2613218db Update
Former-commit-id: d254085e29
2024-08-20 00:17:10 +02:00
Hadi 2099c4636c Update
Former-commit-id: ac2223ad24
2024-08-19 22:50:30 +02:00
Hadi 8cf93bfbc8 Update
Former-commit-id: 8092a2d348
2024-08-19 22:28:49 +02:00
Hadi b2dca45c34 Update
Former-commit-id: c434816d83
2024-08-19 22:20:59 +02:00
Hadi 403e4e1967 Update
Former-commit-id: 9e8637e9a8
2024-08-19 21:09:21 +02:00
Hadi 7ef771f14e Update
Former-commit-id: d1896b626b
2024-08-19 20:40:29 +02:00
Hadi acb7db87df Release v2.2.0
Former-commit-id: e6f66110f0
2024-08-19 20:32:10 +02:00
Hadi 0f5b7f60b6 Update
Former-commit-id: caaa500232
2024-08-19 19:42:20 +02:00
Hadi d7264b0de1 Update
Former-commit-id: e27d43df71
2024-08-19 19:41:24 +02:00
Hadi 23b518381a Update
Former-commit-id: 79a69d245c
2024-08-19 19:36:21 +02:00
Hadi 8876aae16c Update
Former-commit-id: 849eb5dd11
2024-08-19 00:38:27 +02:00
Hadi 0ed5d1cf04 Update
Former-commit-id: 31ac58592e
2024-08-19 00:15:43 +02:00
Hadi 83decac5e9 Update
Former-commit-id: b9fda769bc
2024-08-18 23:57:00 +02:00
Hadi 9104494893 Update
Former-commit-id: 94c88e04f2
2024-08-18 23:56:48 +02:00
Hadi 10d1a73eeb Update
Former-commit-id: 9d74ac9d82
2024-08-18 23:52:21 +02:00
Hadi 307c0b5edd Update
Former-commit-id: a64c79ae22
2024-08-18 23:43:17 +02:00
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
Hadi a3ec52058e update
Former-commit-id: bbaf52b496
2024-06-17 20:47:28 +02:00
Hadi d78f213006 update
Former-commit-id: 5835d73997
2024-06-17 20:44:37 +02:00
Hadi 73b2015d02 Update
Former-commit-id: bbbf516812
2024-06-17 20:38:13 +02:00
Hadi cedad9a7a6 Update
Former-commit-id: c0894a20ca
2024-06-17 20:37:22 +02:00
Hadi 65d6c2f28f Update
Former-commit-id: 6f8698e345
2024-06-17 20:37:09 +02:00
Hadi 18c7618ebf Update
Former-commit-id: b49b2d2c60
2024-06-17 20:08:17 +02:00
Hadi e29a5c2517 update
Former-commit-id: a703d0816b
2024-06-17 19:50:35 +02:00
Hadi 6f3c922010 update
Former-commit-id: 4aba4116de
2024-06-17 19:45:21 +02:00
Hadi 2b902ef731 Update
Former-commit-id: 9db5b9231e
2024-06-17 19:23:43 +02:00
Hadi 7cb070b6b1 Update
Former-commit-id: dc5c227667
2024-06-17 19:20:34 +02:00
Hadi e788f5954e update
Former-commit-id: 912c0abc51
2024-06-17 19:20:01 +02:00
Hadi bfb370d8fe update
Former-commit-id: d8659825a2
2024-06-17 19:18:05 +02:00
Hadi 0332b6c56b Update README.md
Former-commit-id: 087dd4dfec
2024-06-17 17:10:04 +02:00
Hadi e5bdab5a24 update
Former-commit-id: a6207c07ab
2024-06-17 17:04:39 +02:00
Hadi a42ef3ff84 add hyprcursor
Former-commit-id: efc017e5bd
2024-06-17 16:55:42 +02:00
Hadi da33cf1fd3 moved gtk theme
Former-commit-id: 2982684252
2024-06-17 16:54:50 +02:00
Hadi 4290a5e814 update
Former-commit-id: 5e3a372259
2024-06-17 16:53:18 +02:00
Hadi 8e425d5d87 temp
Former-commit-id: 8d16aa86e0
2024-06-17 16:35:53 +02:00
Hadi 8aeff4bb9a temp
Former-commit-id: 3f613c9910
2024-06-17 16:33:34 +02:00
Hadi 6d23ca208e update
Former-commit-id: 8b2f8c08d3
2024-06-17 16:23:03 +02:00
Hadi 41ccb74258 update
Former-commit-id: f2c80d003c
2024-06-17 14:24:18 +02:00
Hadi 5f1b047221 Add themes folder
Former-commit-id: a6cc46cf93
2024-06-17 14:18:15 +02:00
Hadi a5b26b92de Update
Former-commit-id: 857c98e32a
2024-06-17 13:49:05 +02:00
Hadi 5e71ef48dd Update
Former-commit-id: d169306a68
2024-06-17 13:47:13 +02:00
Hadi 2fc51aa02e test hosts
Former-commit-id: b22d2f596f
2024-06-17 09:23:37 +02:00
Hadi 7dc90af1c8 test
Former-commit-id: 026be4852e
2024-06-17 09:22:31 +02:00
Hadi 7a564110a5 Update
Former-commit-id: 49cf0fc0e3
2024-06-14 21:18:42 +02:00
Hadi bb08cd494a Add animations speed in variables
Former-commit-id: 7267fa55fb
2024-06-14 21:13:50 +02:00
Hadi 3b5885e2c9 Update
Former-commit-id: c410d04e1a
2024-06-14 21:04:33 +02:00
Hadi d9810c3c1f Update
Former-commit-id: fad7c6e46d
2024-06-14 20:58:52 +02:00
Hadi 13f060d100 Update
Former-commit-id: 089c57802e
2024-06-14 15:28:30 +02:00
Hadi 40164e8cbd Update
Former-commit-id: 47701f3f49
2024-06-14 14:43:21 +02:00
Hadi f9187d3252 Update
Former-commit-id: 5af6219fff
2024-06-14 14:24:09 +02:00
Hadi b86fe8b3c7 Update
Former-commit-id: 9eb2dbf579
2024-06-14 14:21:27 +02:00
Hadi 9cdddb99c5 Refactor
Former-commit-id: ea15e4fa98
2024-06-14 14:20:06 +02:00
Hadi 35bb470eb1 Update
Former-commit-id: cf99fa5687
2024-06-14 14:03:35 +02:00
Hadi 1a1597ba49 Update
Former-commit-id: 98d8545186
2024-06-14 13:58:54 +02:00
Hadi 8c55eb48af Update
Former-commit-id: 60ee25a3fa
2024-06-14 13:56:43 +02:00
Hadi cd3dfb985c Update
Former-commit-id: 25e4b89053
2024-06-14 13:44:30 +02:00
Hadi 19bf7838c4 Fix
Former-commit-id: 758b594e39
2024-06-14 12:54:46 +02:00
Hadi 05da8fd990 Update
Former-commit-id: eb94f6b527
2024-06-14 10:03:29 +02:00
Hadi d28ad77974 test
Former-commit-id: aae1271cf0
2024-06-14 10:00:54 +02:00
Hadi 379424e228 Update
Former-commit-id: 70a3473916
2024-06-13 11:02:21 +02:00
Hadi 355336c9ff Update
Former-commit-id: 96b64e86e0
2024-06-13 10:52:06 +02:00
Hadi 46b213bbfa Temp
Former-commit-id: d117be2be9
2024-06-13 10:48:06 +02:00
Hadi 4fda4eda9e Update
Former-commit-id: a30df8d186
2024-06-11 23:41:38 +02:00
Hadi 3bffc0142c Stable
Former-commit-id: 3b52711351
2024-06-11 23:31:59 +02:00
Hadi 21f5d55569 Fix
Former-commit-id: 0e3989391e
2024-06-11 22:00:58 +02:00
Hadi 12d7254c83 Fix
Former-commit-id: e9310630bd
2024-06-11 21:58:04 +02:00
Hadi 35dd9bb964 Update
Former-commit-id: c2bb7f475b
2024-06-08 20:50:18 +02:00
Hadi e104aec12d Update
Former-commit-id: 14eeb7bd3a
2024-06-08 02:32:42 +02:00
Hadi e11dcecace Update
Former-commit-id: 08b9ef2677
2024-06-08 02:28:42 +02:00
Hadi 84d2f689ed Update
Former-commit-id: cbb276551c
2024-06-08 02:28:13 +02:00
Hadi 52c060c8be Update
Former-commit-id: 4556c5ea2f
2024-06-08 02:26:47 +02:00
Hadi 28dc3d1a94 Update
Former-commit-id: 6a017c8e70
2024-06-08 02:24:07 +02:00
Hadi ef2ee20495 Update
Former-commit-id: e33ab5a6e1
2024-06-08 02:22:10 +02:00
Hadi f4f253a218 Update
Former-commit-id: fbf3fe3255
2024-06-08 02:20:20 +02:00
Hadi 2f0f3c74f3 Update
Former-commit-id: 41a6de85b1
2024-06-08 02:19:25 +02:00
Hadi 2809615f7b Update
Former-commit-id: 6561d23db6
2024-06-08 02:18:53 +02:00
Hadi a617044695 Update
Former-commit-id: 562dad765b
2024-06-08 02:17:50 +02:00
Hadi 379cd9e98d Update
Former-commit-id: 2656132158
2024-06-08 02:17:04 +02:00
Hadi 60d880aac2 Update
Former-commit-id: 430d30e4ee
2024-06-08 02:05:37 +02:00
Hadi 89d736c311 Update
Former-commit-id: 3a1896894f
2024-06-08 01:57:55 +02:00
Hadi 96faa74cf0 Update
Former-commit-id: 88fb9d078b
2024-06-08 01:56:21 +02:00
Hadi 0f6a8af649 Update
Former-commit-id: 1ccb720f3b
2024-06-08 00:36:44 +02:00
Hadi 80b3607bc1 Update
Former-commit-id: d2c8461193
2024-06-08 00:35:45 +02:00
Hadi 9c1c2a21a4 Update
Former-commit-id: 92b467525d
2024-06-08 00:01:20 +02:00
Hadi ab13ead2a8 Update
Former-commit-id: 6c08c79a16
2024-06-07 23:54:10 +02:00
Hadi dea3f4f4fd Update
Former-commit-id: e52f52f4da
2024-06-07 23:46:40 +02:00
Hadi 4bf7d41ff1 Update
Former-commit-id: b855318c55
2024-06-07 23:35:59 +02:00
Hadi 54bb1e2064 Update
Former-commit-id: ca8abfde1c
2024-06-07 23:34:02 +02:00
Hadi 3e818073e0 Update
Former-commit-id: 24de104139
2024-06-07 22:53:04 +02:00
Hadi 9c8d27e687 Update
Former-commit-id: 2c0246c84a
2024-06-07 22:43:37 +02:00
Hadi ca138aa8af Update
Former-commit-id: 9177f93a96
2024-06-07 22:41:10 +02:00
Hadi 784df1e08f Update
Former-commit-id: 57867b1a22
2024-06-07 22:37:59 +02:00
Hadi a12846fddc Update
Former-commit-id: 7b9e579a4e
2024-06-07 22:34:48 +02:00
Hadi 820268a2a1 Update
Former-commit-id: 65ec024028
2024-06-07 22:25:21 +02:00
Hadi 7e19f9ee0d Update
Former-commit-id: 19af1ccdc2
2024-06-07 22:11:42 +02:00
Hadi 6558683822 Update
Former-commit-id: 7d80970e9d
2024-06-07 22:08:09 +02:00
Hadi 8401688019 Update
Former-commit-id: 755a2e8f2b
2024-06-07 22:05:49 +02:00
Hadi cfd999b373 Update
Former-commit-id: 160d302a74
2024-06-07 21:49:44 +02:00
Hadi 70b156b828 Add pub key
Former-commit-id: b674a8be1b
2024-06-07 21:46:15 +02:00
Hadi 6e056afe67 Fix
Former-commit-id: e2382abacc
2024-06-07 21:41:04 +02:00
Hadi caa93f691c Add hardware config for server
Former-commit-id: bf7dd645ba
2024-06-07 21:38:39 +02:00
Hadi 34776f0af1 Update
Former-commit-id: 7bb06e521f
2024-06-07 21:37:48 +02:00
Hadi 7f30239b2a Add heaven (my server)
Former-commit-id: 17f93ea60b
2024-06-07 21:21:03 +02:00
Hadi 6d744fab45 Update
Former-commit-id: d917ac9f6a
2024-06-07 10:55:45 +02:00
Hadi cf6ed4a265 Update
Former-commit-id: 98556f202e
2024-06-03 20:18:30 +02:00
Hadi 62e0472698 Update
Former-commit-id: 0f98d762a2
2024-05-25 10:53:38 +02:00
Hadi d477340177 Update
Former-commit-id: c074db2779
2024-05-20 19:44:45 +02:00
Hadi f9c910f5ac Add hyprland cachix
Former-commit-id: 98186715b1
2024-05-17 14:52:18 +02:00
Hadi 41a225ec83 Merge pull request #1 from anotherhadi/unstable
Update

Former-commit-id: 0087ca74be
2024-05-17 14:46:30 +02:00
Hadi 35c98d1b97 Update
Former-commit-id: 5fe726fd20
2024-05-17 14:44:56 +02:00
Hadi 1a477e26bc More variables
Former-commit-id: cc1efb2588
2024-05-17 10:28:02 +02:00
Hadi 8166950e74 Update
Former-commit-id: 0b32914be2
2024-05-16 17:59:50 +02:00
Hadi ea0d1cee92 Add nvim noice
Former-commit-id: bc9101e542
2024-05-11 00:37:16 +02:00
Hadi 8df0278272 Add table of contents
Former-commit-id: 42876ccac3
2024-05-09 16:58:42 +02:00
Hadi 6c471c33f7 Add compress/extract
Former-commit-id: 728797b8c5
2024-05-09 16:55:46 +02:00
Hadi 5182276d1e Update
Former-commit-id: dff9dcc8d5
2024-05-09 16:51:42 +02:00
Hadi d18e69ee75 Update
Former-commit-id: 31913ccdcc
2024-05-09 16:50:46 +02:00
Hadi f363249e41 Add lazygit
Former-commit-id: 8400e5fd4d
2024-05-09 16:46:30 +02:00
Hadi 342fbc2fcc Add lazygit
Former-commit-id: 8d0216e1fc
2024-05-09 16:44:39 +02:00
Hadi 150617ca7a Update
Former-commit-id: c4f8d05c0d
2024-05-09 16:33:24 +02:00
Hadi 7196117da7 Update
Former-commit-id: 6d4bc5a9e8
2024-05-09 13:33:51 +02:00
Hadi ba1feb92ec Add new theme
Former-commit-id: 6065afd390
2024-05-09 13:33:44 +02:00
Hadi 7452406a00 Fix spacing
Former-commit-id: abfe7ca839
2024-05-09 13:33:18 +02:00
Hadi 2c910092c8 Update
Former-commit-id: a26fbaa2c3
2024-05-09 10:54:19 +02:00
Hadi c3d9df2cb0 Rearrange folder struct
Former-commit-id: e58fda9896
2024-05-04 22:51:33 +02:00
Hadi b573560024 Fix renamed
Former-commit-id: d026643105
2024-05-04 22:46:46 +02:00
Hadi 1633e21d9b Delete /tmp dir on boot
Former-commit-id: 984a25c111
2024-05-04 22:45:51 +02:00
Hadi 406d7ae6e9 Update
Former-commit-id: 2c2b451d40
2024-05-04 22:36:06 +02:00
Hadi 2055d2da9a Waybar git to solve issue w/hyprland
Former-commit-id: 1af3617b32
2024-05-02 18:16:39 +02:00
Hadi ec4fc1864c Update
Former-commit-id: 6d1912703c
2024-05-02 15:46:16 +02:00
Hadi fa0aa29974 Update
Former-commit-id: 81ab14b256
2024-05-02 15:40:12 +02:00
Hadi 8e4d046365 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/572af610f6151fd41c212f897c71f7056e3fb518' (2024-04-23)
  → 'github:nixos/nixpkgs/58a1abdbae3217ca6b702f03d3b35125d88a2994' (2024-04-27)


Former-commit-id: 92ec6a5ea8
2024-05-02 12:44:43 +02:00
Hadi aec2c05778 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/6143fc5eeb9c4f00163267708e26191d1e918932' (2024-04-21)
  → 'github:nixos/nixpkgs/572af610f6151fd41c212f897c71f7056e3fb518' (2024-04-23)


Former-commit-id: 62029890cd
2024-04-25 22:44:44 +02:00
Hadi 5cd78b81d1 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5c24cf2f0a12ad855f444c30b2421d044120c66f' (2024-04-19)
  → 'github:nixos/nixpkgs/6143fc5eeb9c4f00163267708e26191d1e918932' (2024-04-21)


Former-commit-id: 6cec1f00f0
2024-04-22 17:39:48 +02:00
Hadi d906e2675d Update
Former-commit-id: 7dd8af5bf8
2024-04-20 11:50:19 +02:00
Hadi ac5949e2a0 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/66adc1e47f8784803f2deb6cacd5e07264ec2d5c' (2024-04-16)
  → 'github:nixos/nixpkgs/5c24cf2f0a12ad855f444c30b2421d044120c66f' (2024-04-19)


Former-commit-id: 86175a04e5
2024-04-20 11:31:07 +02:00
Hadi 72111e6c3a Fix typo
Former-commit-id: de607e2eea
2024-04-20 01:05:50 +02:00
Hadi dad7e92a41 Delete .sops.yaml
Former-commit-id: e8dd18e32c
2024-04-20 00:41:50 +02:00
Hadi 8cf07d7418 Fix
Former-commit-id: 3fe07d3ba5
2024-04-20 00:39:15 +02:00
Hadi 3ae887ef0e Add github search engine
Former-commit-id: 52ccccc2d9
2024-04-20 00:23:32 +02:00
Hadi ac34c94aad Fix 2 file explorer
Former-commit-id: 805917511e
2024-04-20 00:19:15 +02:00
Hadi dd54fa49f0 Fix
Former-commit-id: 950e1cfcf2
2024-04-20 00:16:05 +02:00
Hadi 4f1920ac35 Fix
Former-commit-id: 637accfc1c
2024-04-20 00:02:59 +02:00
Hadi 7693435eab Fix font
Former-commit-id: a37de9940f
2024-04-19 23:46:15 +02:00
Hadi 5451b4cfb4 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/cfd6b5fc90b15709b780a5a1619695a88505a176' (2024-04-12)
  → 'github:nixos/nixpkgs/66adc1e47f8784803f2deb6cacd5e07264ec2d5c' (2024-04-16)


Former-commit-id: 14bca81e37
2024-04-19 23:35:51 +02:00
Hadi 3677d8f6a1 Update
Former-commit-id: 767e9d182d
2024-04-14 21:59:30 +02:00
Hadi 8f3fd2e2a5 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/4cba8b53da471aea2ab2b0c1f30a81e7c451f4b6' (2024-04-08)
  → 'github:nixos/nixpkgs/1042fd8b148a9105f3c0aca3a6177fd1d9360ba5' (2024-04-10)


Former-commit-id: 21ce99bfe8
2024-04-14 17:01:34 +02:00
Hadi d7a1249a3f flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/ff0dbd94265ac470dda06a657d5fe49de93b4599' (2024-04-06)
  → 'github:nixos/nixpkgs/4cba8b53da471aea2ab2b0c1f30a81e7c451f4b6' (2024-04-08)


Former-commit-id: 3aeedf0ed7
2024-04-10 18:25:46 +02:00
Hadi 290cfca8b3 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/08b9151ed40350725eb40b1fe96b0b86304a654b' (2024-04-03)
  → 'github:nixos/nixpkgs/ff0dbd94265ac470dda06a657d5fe49de93b4599' (2024-04-06)


Former-commit-id: cd04bd89c0
2024-04-07 15:47:33 +02:00
Hadi 5717331eb6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d8fe5e6c92d0d190646fb9f1056741a229980089' (2024-03-29)
  → 'github:nixos/nixpkgs/08b9151ed40350725eb40b1fe96b0b86304a654b' (2024-04-03)


Former-commit-id: 331fc331df
2024-04-04 11:35:03 +02:00
Hadi 0bf5355641 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/20f77aa09916374aa3141cbc605c955626762c9a' (2024-03-21)
  → 'github:nixos/nixpkgs/d8fe5e6c92d0d190646fb9f1056741a229980089' (2024-03-29)


Former-commit-id: b9775975ea
2024-03-30 12:09:12 +01:00
Hadi b4c0b61815 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/b06025f1533a1e07b6db3e75151caa155d1c7eb3' (2024-03-19)
  → 'github:nixos/nixpkgs/20f77aa09916374aa3141cbc605c955626762c9a' (2024-03-21)


Former-commit-id: 7a8ebb778a
2024-03-22 14:16:16 +01:00
Hadi 011c084203 I hate wl clipboard
Former-commit-id: 24a8438694
2024-03-20 23:26:53 +01:00
Hadi 10215a086f Woopsi
Former-commit-id: ce2e0c2fa8
2024-03-20 22:44:32 +01:00
Hadi 882c3f0c76 Nerdfont icons finder, folder arch..
Former-commit-id: e97e2705b5
2024-03-20 22:38:49 +01:00
Hadi c3151cc1f5 Up
Former-commit-id: cb98842775
2024-03-20 21:47:50 +01:00
Hadi cb1b2c04c7 Up
Former-commit-id: 95562dce0e
2024-03-20 20:04:09 +01:00
Hadi 8ab6e708f6 keybindings
Former-commit-id: bb47c6a943
2024-03-20 18:58:16 +01:00
Hadi 06805d8d27 Themes
Former-commit-id: 5ad31e7602
2024-03-20 18:31:59 +01:00
Hadi 557b1d375e oops
Former-commit-id: 35de81a46d
2024-03-20 18:05:24 +01:00
Hadi b9cf6573bd up
Former-commit-id: 0fee3682d0
2024-03-20 18:01:15 +01:00
Hadi 2cd17956fa Fix powermenu management
Former-commit-id: aa25061ad7
2024-03-18 22:48:11 +01:00
Hadi 435d82cfba Fix neofetch on floating window
Former-commit-id: 69bd97e1bd
2024-03-18 22:40:15 +01:00
Hadi c1b7e8d56c Fix windows name & padding
Former-commit-id: 1dd92201d0
2024-03-18 22:37:03 +01:00
Hadi 2956e1599a Up
Former-commit-id: ef3489075f
2024-03-18 22:26:32 +01:00
Hadi 4545f906ef License
Former-commit-id: 6a562ff64c
2024-03-17 17:35:11 +01:00
Hadi ae7d092e1a Details README
Former-commit-id: 441b45846e
2024-03-17 17:17:03 +01:00
Hadi 7252a96939 Up
Former-commit-id: 381b3228dc
2024-03-17 17:11:49 +01:00
Hadi b24abc3831 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d691274a972b3165335d261cc4671335f5c67de9' (2024-03-14)
  → 'github:nixos/nixpkgs/c75037bbf9093a2acb617804ee46320d6d1fea5a' (2024-03-16)


Former-commit-id: bb869d6897
2024-03-17 16:47:28 +01:00
Hadi 22395725a3 Up
Former-commit-id: a230692b90
2024-03-17 01:14:16 +01:00
Hadi 9beb7bc157 Up
Former-commit-id: f86a0271b6
2024-03-16 22:26:30 +01:00
Hadi f0d8a6b811 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/0ad13a6833440b8e238947e47bea7f11071dc2b2' (2024-03-12)
  → 'github:nixos/nixpkgs/d691274a972b3165335d261cc4671335f5c67de9' (2024-03-14)


Former-commit-id: 3f2ba75a5e
2024-03-16 18:26:14 +01:00
Hadi 202ac3ca3b Secrets, scripts, clean..
Former-commit-id: 5e98256a82
2024-03-15 21:26:34 +01:00
Hadi 1f6075cae7 Up
Former-commit-id: 05fc3fbcd9
2024-03-14 18:42:15 +01:00
Hadi 0ab8844d04 Up
Former-commit-id: 77eba6e2c2
2024-03-14 01:30:17 +01:00
Hadi 1bb1112db2 Up
Former-commit-id: d5bd3270f7
2024-03-14 01:05:29 +01:00
Hadi 61804bcbe7 Add caffeine
Former-commit-id: 13ae5ad530
2024-03-14 00:10:13 +01:00
Hadi 31ace98f68 Up
Former-commit-id: 8bda501d16
2024-03-13 23:32:40 +01:00
Hadi e9480830d8 Up
Former-commit-id: 6ed623bd6f
2024-03-13 21:56:32 +01:00
Hadi 7490f1ef84 Up
Former-commit-id: 3fe2c8913f
2024-03-13 21:38:55 +01:00
Hadi f7e41e3653 Add wallpapers
Former-commit-id: a1f05792e4
2024-03-13 19:58:46 +01:00
334 changed files with 5720 additions and 9499 deletions
-1
View File
@@ -1 +0,0 @@
use flake
-15
View File
@@ -1,15 +0,0 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: anotherhadi
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

-36
View File
@@ -1,36 +0,0 @@
#!/usr/bin/env python3
import re
import subprocess
import sys
from pathlib import Path
PATTERN = re.compile(r"<!-- exec: (.+?) -->.*?<!-- endexec -->", re.DOTALL)
def replace(match):
cmd = match.group(1).strip()
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
output = result.stdout
if result.returncode != 0:
print(
f"[inject-exec] command failed ({result.returncode}): {cmd}",
file=sys.stderr,
)
print(result.stderr, file=sys.stderr)
sys.exit(1)
output = re.sub(r"<!-- exec: .+? -->\n?|<!-- endexec -->\n?", "", output)
if output and not output.endswith("\n"):
output += "\n"
return f"<!-- exec: {cmd} -->\n{output}<!-- endexec -->"
def process(path):
content = Path(path).read_text()
new_content = PATTERN.sub(replace, content)
if new_content != content:
Path(path).write_text(new_content)
print(f"[inject-exec] updated {path}")
for p in sys.argv[1:]:
process(p)
+1 -8
View File
@@ -1,8 +1 @@
.sops.yaml
.claude/
old/
docs/superpowers/
.superpowers/
result/
.pre-commit-config.yaml
.direnv/
todolist.md
+11
View File
@@ -0,0 +1,11 @@
keys:
- &primary age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334
creation_rules:
- path_regex: hosts/laptop/secrets/secrets.yaml$
key_groups:
- age:
- *primary
- path_regex: hosts/server/secrets/secrets.yaml$
key_groups:
- age:
- *primary
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2026 Hadi
Copyright (c) 2024 Hadi
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+51 -91
View File
@@ -1,5 +1,11 @@
[//]: # (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: 09/04/24)
[//]: # (Version: v2.3.0)
<div align="center">
<img alt="nixy logo" src="./.github/assets/logo.png" width="120px" />
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/docs/src/logo.png" width="100px" />
</div>
<br>
@@ -8,119 +14,80 @@
<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.3.0&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=A89AD1&labelColor=0b0b0b&style=for-the-badge&logo=starship&logoColor=A89AD1">
<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=A89AD1&labelColor=0b0b0b&style=for-the-badge&logo=github&logoColor=A89AD1">
<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=0b0b0b&logo=NixOS&logoColor=A89AD1&color=A89AD1">
<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=0b0b0b&colorB=A89AD1&logo=unlicense&logoColor=A89AD1"/>
<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 simplifies and unifies** the Hyprland ecosystem with a modular, minimalist & easily
customizable setup. It provides a structured way to manage your system
configuration and dotfiles with minimal effort. It includes _home-manager_,
_secrets_, and _custom theming_ all in one place.
**Features:**
- 💻 Hyprland & TUIs: Preconfigured Hyprland ecosystem with a lot of cool TUIs
- 🎨 Consistent Theming: Base16 & Stylix-powered themes
- ⌨️ Vim-like Everywhere: Unified keybindings (Hyprland, nvim, vimium, etc.)
**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
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Table of Content](#table-of-content)
- [Gallery](#gallery)
- [Architecture](#architecture)
- [🏠 `home`](#-home)
- [💻 `hosts`](#-hosts)
- [Installation](#installation)
- [Documentation](#documentation)
- [Screenshots](#screenshots)
- [Architecture](#architecture)
- [🏠 /home (User-level configuration)](#-home-user-level-configuration)
- [🐧 /nixos](#-nixos)
- [🎨 /themes](#-themes)
- [💻 /hosts](#-hosts)
- [🖥️ /server-modules](#-server-modules)
- [Installation](#installation)
- [Documentation](#documentation)
## Gallery
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Screenshots
![Home](.github/assets/screenshots/1.png)
![Neovim and spotify](.github/assets/screenshots/2.png)
![Browser and file explorer](.github/assets/screenshots/3.png)
![nixy1](docs/src/nixy/1.png)
![nixy2](docs/src/nixy/2.png)
![nixy3](docs/src/nixy/3.png)
## Architecture
### 🏠 /home (User-level configuration)
### 🏠 `home`
Contains **dotfiles and settings** that apply to your user environment.
Those are the dotfiles and configuration files for user-level configuration
**Subfolders:**
- `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" configuration
- `wallpapers` are... wallpapers
### 🐧 /nixos
### 💻 `hosts`
Those are the system-level configurations. (audio, bluetooth, gpu, bootloader,
...)
Those are the host-specific configurations
Each host contains a `configuration.nix` for system-level configuration, a `home.nix` for user-level configuration, and a `variables.nix` for config wide variables.
### 🎨 /themes
**Subfolders:**
This folder contains all system themes. Mainly
[stylix](https://stylix.danth.me/) configurations. Check out the available
themes and learn how to create your own in [THEMES.md](docs/THEMES.md)
### 💻 /hosts
This directory contains host-specific configurations. Each host includes:
- `configuration.nix` for system-wide settings
- `home.nix` for user-level configuration
- `variables.nix` for global variables
- `secrets/` for sensitive data
### 🖥️ /server-modules
This folder contains server-related nixos modules. (gitea, cloudflared, self-hosted apps, ...)
- 🎨 `themes` are the themes available *(see [THEMES.md](docs/THEMES.md))*
- 📦 `modules` are the nix modules that you can import
- `laptop` is my configuration for my laptop with Nvidia that you can copy
- `server` is for my homeserver (w/nextcloud, nginx, vaultwarden, ...)
## Installation
1. [Fork](https://github.com/anotherhadi/nixy/fork) this repo and clone it to
your system:
```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos
```
2. Copy the `hosts/laptop` folder, rename it to match your systems hostname,
and update `variables.nix` with your machines settings.
3. Copy your `hardware-configuration.nix` into your new host's folder to ensure
proper hardware support.
4. Register your new host in `flake.nix` by adding it under nixosConfigurations.
- 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')
> [!IMPORTANT]
> `# CHANGEME` comments are placed throughout the config to
> indicate necessary modifications. Use the following command to quickly locate
> them:
>
> ```sh
> rg "CHANGEME" ~/.config/nixos
> ```
> [!TIP]
> When you add new files, don't forget to run `git add .` to add them to the git
> repository
5. Build the system
> [!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
@@ -128,19 +95,12 @@ sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
## Documentation
- [SERVER](docs/SERVER.md): Check out the server documentation
- [THEMES](docs/THEMES.md): How themes work and how to create your own
- [WALLPAPERS](https://github.com/anotherhadi/awesome-wallpapers): An awesome
collection of wallpapers
- [NEOVIM](docs/NEOVIM.md): How to use the Neovim config in your own flake
- [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
- [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute
- [TODO.md](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING.md](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License
---
<div align="center">
<a href="https://github.com/anotherhadi/nixy">github</a> |
<a href="https://gitlab.com/anotherhadi_mirror/nixy">gitlab (mirror)</a> |
<a href="https://git.hadi.icu/anotherhadi/nixy">gitea (mirror)</a>
</div
+41
View File
@@ -0,0 +1,41 @@
# Apps and services
*non-exhaustive lists*
## 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 |
| | hyprcursor |
| | wlogout |
| Bar | hyprpanel |
| Terminal | kitty |
| Shell | zsh |
| | tmux |
| | starship |
| | bat |
| | eza |
| | zoxide |
| | fzf |
| Editor | neovim(nixvim) |
| File manager | thunar |
| Browser | qutebrowser |
| Music | spicetify |
| Launcher | wofi |
| DM | tuigreet |
| Secrets | sops-nix |
| 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, jellyfin, ...
I exposed some services to the internet using a reverse proxy (Nginx) and cloudflare-dyndns, others are accessed through a tailscale network
+8 -2
View File
@@ -1,13 +1,19 @@
# Contributing to Nixy
Everybody is invited and welcome to contribute to Nixy. There is a lot to do... Check the issues!
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, issues fix, ...).
- 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
+42
View File
@@ -0,0 +1,42 @@
# Keybindings
The list of the keybindings working on Hyprland:
| Description | Keybinding |
|--------------------------------------------|--------------------------|
| Switch Workspace | SUPER + {Number} |
| Move app to Workspace | SHIFT + SUPER + {Number} |
| Kitty | SUPER + RETURN |
| Thunar | SUPER + E |
| Qutebrowser | SUPER + B |
| Bitwarden | SUPER + K |
| Lock | SUPER + L |
| Powermenu | SUPER + X |
| Launcher | SUPER + SPACE |
| "\$shiftMod, SPACE, hyprexpo:expo, toggle" | |
| Close window | SUPER + Q |
| Toggle Floating | SUPER + T |
| Toggle Fullscreen | SUPER + F |
| Move focus left | SUPER + left |
| Move focus Right | SUPER + right |
| Move focus Up | SUPER + up |
| Move focus Down | SUPER + down |
| Add to master | SHIFT + SUPER + left |
| Remove from master | SHIFT + SUPER + right |
| Screenshot window | SUPER + PRINT |
| Screenshot monitor | PRINT |
| Screenshot region | SHIFT + SUPER + PRINT |
| Screenshot region then edit | ALT PRINT |
| Search on internet with wofi | SHIFT + SUPER + S |
| Clipboard picker with wofi | SHIFT + SUPER + C |
| Emoji picker with wofi | SHIFT + SUPER + E |
| Turn off night shift | SUPER + F2 |
| Turn on night shift | SUPER + F3 |
| Move Window (mouse) | SUPER + mouse:272 |
| Resize Window (mouse) | SUPER + R |
| Toggle Mute | XF86AudioMute |
| Lock when closing Lid | switch:Lid Switch |
| Sound Up | XF86AudioRaiseVolume |
| Sound Down | XF86AudioLowerVolume |
| Brightness Up | XF86MonBrightnessUp |
| Brightness Down | XF86MonBrightnessDown |
-40
View File
@@ -1,40 +0,0 @@
# Neovim
The Neovim configuration is built with [nvf](https://github.com/notashelf/nvf) and exposed as a standalone flake output.
It can be used in three ways: run it directly, import it into another flake's home-manager setup, or use it as part of this config.
## Run directly
No installation needed:
```sh
nix run github:anotherhadi/nixy#nvim
```
## Use in another flake
Add this repo as an input:
```nix
inputs.nixy.url = "github:anotherhadi/nixy";
```
Then import the home-manager module in your home configuration:
```nix
{ inputs, ... }: {
imports = [ inputs.nixy.homeManagerModules.nvim ];
}
```
## What's included
| File | Description |
| --------------- | ---------------------------------------------------------------------- |
| `options.nix` | Core settings: theme (catppuccin mocha), clipboard, indentation, folds |
| `languages.nix` | LSP, treesitter, formatters, diagnostics, and per-language config |
| `keymaps.nix` | All key mappings (leader: `space`) |
| `picker.nix` | Snacks picker + oil.nvim |
| `snacks.nix` | Snacks extras: image preview, zen mode, git signs, statuscolumn |
| `utils.nix` | Bufferline, lualine, copilot, lazygit, toggleterm, autocomplete |
| `mini.nix` | Mini.nvim suite: ai, clue, comment, diff, git, icons, indentscope, jump2d, pairs, starter, statusline, surround |
+55
View File
@@ -0,0 +1,55 @@
# Scripts
Scripts are located in the `home/scripts` folder. Home-manager add those in the user's path.
## Nix/NixOs shortcuts
> [!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
- `brightness-up`
- `brightness-down`
- `brightness-set [value]`
- `brightness-change [up/down] <increment>`
## Sound control
- `sound-up`
- `sound-down`
- `sound-toggle`
- `sound-set [value]`
- `sound-change [up/down/mute] <increment>`
## Caffeine
Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
- `caffeine` # Toggle caffeine
- `caffeine-status` # Return 1/0
- `caffeine-status-icon` # Return 󰅶/󰾪
## Night-Shift
Blue light filter, using wlsunset
- `night-shift` # Toggle night shift
- `night-shift-status` # Return 1/0
- `night-shift-status-icon` # Return 󰖕/󰖔
- `night-shift-on`
- `night-shift-off`
## Nerdfont FZF
Nerdfont fzf is a quick way to search for nerdfont icons locally.
It will copy the selected icon to the clipboard.
- `nerdfont-fzf`
-33
View File
@@ -1,33 +0,0 @@
# SERVER
## Overview
This document describes the architecture and setup of the self-hosted **NixOS server**, which is securely accessible via **a Cloudflare Tunnel**.
The server is designed for private, secure, and easily manageable self-hosting of various services.
![server dashboard](../.github/assets/screenshots/server_dashboard.png)
## **Why This Setup?**
- **Private & Secure**: Services are only accessible through Cloudflare's access control, preventing exposure to the "public internet".
- **Domain-based Access**: A custom domain maps to the server's tunnel, making service access simple and consistent.
- **Modular & Declarative**: Everything is managed through NixOS modules (except for access control), ensuring reproducibility and easy configuration.
## **Self-Hosted Services**
The server hosts several key applications:
- **AdGuard Home**: A self-hosted DNS ad blocker for network-wide ad and tracker filtering.
- **Glance**: An awesome dashboard! (See the screenshot above)
- **Arr Stack (Radarr, Sonarr, etc.)**: Automated media management tools for handling movies and TV shows. (legally ofc)
- **Mealie**: A self-hosted recipe manager and meal planner with a clean user interface.
- **Stirling-PDF**: A powerful, locally hosted web application for editing, merging, and converting PDF files.
- **CyberChef**: The "Cyber Swiss Army Knife" for data analysis, decoding, and encryption tasks.
- **Mazanoke**: A utility service for image processing, specialized in format conversion and downgrading/optimization.
- **Umami**: Privacy-focused web analytics.
- **Gitea**: Self-hosted git forge.
- **Blog**: Personal website/blog.
- **iknowyou**: Personal project hosted in two containers (prod + demo).
- **Awesome Wallpapers**: Wallpaper browser served via NGINX inside a container.
- **SSH**: Secure remote access configuration for server management. (via browser too)
- **Security related stuff**: Cloudflared, Fail2Ban, Firewall, Kernel Hardening
+15 -4
View File
@@ -1,9 +1,20 @@
# Themes
Themes are defined in `themes/`. They define the colors, fonts, icons, wallpaper, and other visual settings used by Hyprland and all apps/programs.
You can change the selected theme by changing the import statement in your host's `variables.nix` 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.
> [!TIP]
> To apply the theme to DuckDuckGo, follow the instructions in `$HOME/.duckduckgo-colorscheme.js`
## Create your theme
Create a copy of `themes/nixy.nix` and change the variables.
Wallpapers are loaded from my [awesome-wallpapers](https://github.com/anotherhadi/awesome-wallpapers) repo.
Create a copy of one of the existing themes and change the variables.
Wallpapers are loaded from the `home/wallpapers` folder.
## Gallery
### Nixy
![nixy1](src/nixy/1.png)
![nixy2](src/nixy/2.png)
![nixy3](src/nixy/3.png)
+33
View File
@@ -0,0 +1,33 @@
# Todolist {
feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md))
- [ ] Wofi config
- Calculator
- [ ] Test hyprshade (replacement for gammastep)
- [ ] Qutebrowser
- [ ] !!! Bitwarden integration (I need this.)
- [ ] Hyprland
- [ ] Fix screenshots (screenshot region's border shows up in the screenshot, hyprshot jq error?) and add in the scripts doc
- [ ] Nixvim
- [ ] Keymaps:
- Trouble
- Tagbar (actually not working)
- [ ] Change my keyboard backlight
- Issue on nixos-hardware ig
- [ ] Update docs
## Server
- [ ] Jackflix V2
- Backup Radarr, Prowlarr, Sonarr config
- Take a look into buildarr or build a custom solution with *arr apis
- [ ] Bitcoin-git: broken
- [ ] Secrets mode 0444: not secure
- [ ] Adguard config
+39
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) |
| sea2.png | ![sea2.png](../home/wallpapers/sea2.png) |
| sea.png | ![sea.png](../home/wallpapers/sea.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) |
+20
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
+24
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"
+27
View File
@@ -0,0 +1,27 @@
#!/usr/bin/env bash
# Create the README.md file from the docs/src/README_template.md file
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
README_FILE="./README.md"
header=$(cat "./docs/src/header.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#\"}"
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"
+61
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"
+26
View File
@@ -0,0 +1,26 @@
#!/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
read -rp "Do you want to compress the png files? [y/N]: " COMPRESS_PNG
if [[ "$COMPRESS_PNG" == "y" || "$COMPRESS_PNG" == "Y" ]]; then
echo "Compresing png files..."
bash ./docs/scripts/compress_png.sh
fi
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/keybindings_to_markdown.sh
git add .
git commit -m "Release $NEW_TAG"
git tag -a "$NEW_TAG" -m "Release $NEW_TAG"
git push origin "$NEW_TAG"
+42
View File
@@ -0,0 +1,42 @@
#!/usr/bin/env bash
[ "$1" = "" ] && echo "Usage: $0 <theme_name>" && exit 1
theme_name=$1
# Switch to workspace 1
sleep 2
# Step 1
kitty --class peaclock peaclock &
sleep 1
menu &
sleep 1
hyprshot -m "output" -m "active" -o "$HOME/.config/nixos/docs/src/$theme_name" -f "1.png" -d
sleep 2
pkill peaclock
menu
sleep 2
# Step 2
kitty cmatrix &
sleep 1
kitty &
sleep 1
qutebrowser &
sleep 3
hyprshot -m "output" -m "active" -o "$HOME/.config/nixos/docs/src/$theme_name" -f "2.png" -d
sleep 2
pkill cmatrix
pkill --newest qutebrowser ""
pkill --newest kitty
sleep 2
# Step 3
kitty cava &
sleep 1
spotify &
sleep 10
brightness-down
sleep 1
hyprshot -m "output" -m "active" -o "$HOME/.config/nixos/docs/src/$theme_name" -f "3.png" -d
sleep 2
+67
View File
@@ -0,0 +1,67 @@
**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
{md_table_of_content}
## Gallery
![nixy1](docs/src/nixy/1.png)
![nixy2](docs/src/nixy/2.png)
![nixy3](docs/src/nixy/3.png)
## Architecture
### 🏠 `home`
Those are the dotfiles and configuration files for user-level configuration
**Subfolders:**
- `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" configuration
- `wallpapers` are... wallpapers
### 💻 `hosts`
Those are the host-specific configurations
Each host contains a `configuration.nix` for system-level configuration, a `home.nix` for user-level configuration, and a `variables.nix` for config wide variables.
**Subfolders:**
- 🎨 `themes` are the themes available *(see [THEMES.md](docs/THEMES.md))*
- 📦 `modules` are the nix modules that you can import
- `laptop` is my configuration for my laptop with Nvidia that you can copy
- `server` is for my homeserver (w/nextcloud, nginx, vaultwarden, ...)
## 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
+33
View File
@@ -0,0 +1,33 @@
[//]: # (Title: Nixy)
[//]: # (Description: {description})
[//]: # (Author: Hadi)
[//]: # (Date: {date})
[//]: # (Version: {version})
<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={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={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={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={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={backgroundcolor}&colorB={primarycolor}&logo=unlicense&logoColor={primarycolor}"/>
</a>
</div>
<br>
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

+1
View File
@@ -0,0 +1 @@
8c00e379ddd7f89e4bbf9f381a5721d980c8026f
Binary file not shown.

After

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 811 KiB

Generated
+509 -899
View File
File diff suppressed because it is too large Load Diff
+43 -86
View File
@@ -1,106 +1,63 @@
{
# https://github.com/anotherhadi/nixy
description = ''
Nixy simplifies and unifies the Hyprland ecosystem with a modular, easily customizable setup.
It provides a structured way to manage your system configuration and dotfiles with minimal effort.
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.
'';
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware";
nvf.url = "github:notashelf/nvf";
nvf-config = {
url = "path:./home/programs/tui/nvf";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nvf.follows = "nvf";
};
nur = {
url = "github:nix-community/nur";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-index-database = {
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager/release-26.05";
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:nix-community/stylix/release-26.05";
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
spicetify-nix = {
url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
notashelf-tuigreet = {
url = "github:NotAShelf/tuigreet";
inputs.nixpkgs.follows = "nixpkgs";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
helium-browser = {
url = "github:oxcl/nix-flake-helium-browser";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
git-hooks = {
url = "github:cachix/git-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
# Server
nixarr.url = "github:rasmus-kirk/nixarr";
default-creds.url = "github:anotherhadi/default-creds";
blog.url = "github:anotherhadi/blog";
awesome-wallpapers.url = "github:anotherhadi/awesome-wallpapers";
iknowyou.url = "github:anotherhadi/iknowyou";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
};
outputs = inputs @ {
nixpkgs,
nixpkgs-unstable,
git-hooks,
...
}: let
system = "x86_64-linux";
pkgs-unstable = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
};
pkgs = nixpkgs.legacyPackages.${system};
args = {
inherit
inputs
nixpkgs
system
pkgs-unstable
pkgs
;
};
merge = nixpkgs.lib.foldl nixpkgs.lib.recursiveUpdate {};
supportedSystems = ["x86_64-linux" "aarch64-linux"];
outputs = inputs@{ nixpkgs, ... }: {
nixosConfigurations = {
nixy = nixpkgs.lib.nixosSystem { # CHANGEME
system = "x86_64-linux";
modules = [
{
nixpkgs.overlays = [ inputs.hyprpanel.overlay ];
_module.args = { inherit inputs; };
}
inputs.nixos-hardware.nixosModules.omen-16-n0005ne # CHANGEME
inputs.home-manager.nixosModules.home-manager
./hosts/laptop/configuration.nix # CHANGEME
];
};
forAllSystems = f:
nixpkgs.lib.genAttrs supportedSystems
(system: f system (import nixpkgs {inherit system;}));
in
merge [
(import ./home/programs/tui/nixy/flake.nix args)
{
formatter.${system} = pkgs.alejandra;
packages.${system}.nvim = inputs.nvf-config.packages.${system}.nvim;
apps.${system}.nvim = inputs.nvf-config.apps.${system}.nvim;
nixosConfigurations = {
h-laptop = import ./hosts/laptop/flake.nix args;
h-work = import ./hosts/work/flake.nix args;
jack = import ./hosts/server/flake.nix args;
};
devShells = forAllSystems (system: pkgs: {
default = import ./shell.nix {
inherit pkgs;
gitHooksLib = git-hooks.lib.${system};
};
});
}
];
jack = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
{ _module.args = { inherit inputs; }; }
inputs.sops-nix.nixosModules.sops
inputs.home-manager.nixosModules.home-manager
./hosts/server/configuration.nix
];
};
};
};
}
+9
View File
@@ -0,0 +1,9 @@
{
programs.btop = {
enable = true;
settings = {
color_theme = "Default";
theme_background = false;
};
};
}
+13
View File
@@ -0,0 +1,13 @@
{ config, ... }: {
programs.cava = {
enable = true;
settings = {
general.framerate = 60;
smoothing.noise_reduction = 88;
color = {
background = "'#${config.var.theme.colors.bg}'";
foreground = "'#${config.var.theme.colors.accent}'";
};
};
};
}
+1
View File
@@ -0,0 +1 @@
{ imports = [ ./neofetch ./nerdfetch ]; }
+150
View File
@@ -0,0 +1,150 @@
{ pkgs, config, ... }: {
home.packages = with pkgs; [ neofetch ];
xdg.configFile."neofetch/ascii.txt".text = ''
''${c6}
'';
xdg.configFile."neofetch/config.conf".text = ''
# From: https://github.com/Chick2D/neofetch-themes/
# Made by https://github.com/Dan1jel
print_info() {
prin "\n"
info "\n \n OS" distro
info "\n \n Host" model
info "\n \n Kernel" kernel
info "\n \n Uptime" uptime
info "\n \n Packages" packages
info "\n \n Shell" shell
info "\n \n Resolution" resolution
info "\n \n DE" de
info "\n \n WM" wm
info "\n \n WM Theme" wm_theme
info "\n \n Theme" theme
info "\n \n Icons" icons
info "\n \n Terminal" term
info "\n \n Terminal Font" term_font
info "\n \n CPU" cpu
info "\n \n GPU" gpu
info "\n \n Memory" memory
info "\n \n Disk" disk
info "\n \n Battery" battery
info "\n \n Font" font
info "\n \n Song" song
[[ "$player" ]] && prin "\n \n Music Player" "$player"
info "\n \n Local IP" local_ip
prin "\n"
# prin "\n \n ''${cl0}''${cl1}''${cl2}''${cl3}''${cl4}''${cl5}''${cl6}''${cl7}"
prin "\n \n \n \n \n \n ''${cl0} \n \n ''${cl1} \n \n ''${cl2} \n \n ''${cl3} \n \n ''${cl4} \n \n ''${cl5} \n \n ''${cl6} \n \n ''${cl7}"
}
reset="\033[0m"
gray="\033[1;90m"
red="\033[1;31m"
green="\033[1;32m"
yellow="\033[1;33m"
blue="\033[1;34m"
magenta="\033[1;35m"
cyan="\033[1;36m"
white="\033[1;37m"
cl0="''${gray}"
cl1="''${red}"
cl2="''${green}"
cl3="''${yellow}"
cl4="''${blue}"
cl5="''${magenta}"
cl6="''${cyan}"
cl7="''${white}"
title_fqdn="off"
kernel_shorthand="on"
distro_shorthand="off"
os_arch="off"
uptime_shorthand="on"
memory_percent="off"
memory_unit="mib"
package_managers="on"
shell_path="off"
shell_version="on"
speed_type="bios_limit"
speed_shorthand="off"
cpu_brand="on"
cpu_speed="on"
cpu_cores="logical"
cpu_temp="off"
gpu_brand="on"
gpu_type="all"
refresh_rate="off"
gtk_shorthand="off"
gtk2="on"
gtk3="on"
de_version="on"
disk_show=('/storage/emulated' '/' '/server')
disk_subtitle="none"
disk_percent="on"
music_player="auto"
song_format="%artist% - %album% - %title%"
song_shorthand="off"
mpc_args=()
colors=(${toString config.var.theme.colors.accentNumber} 1 ${
toString config.var.theme.colors.accentNumber
} ${toString config.var.theme.colors.accentNumber} 7)
bold="on"
underline_enabled="on"
underline_char="-"
separator=":"
block_range=(0 15)
color_blocks="on"
block_width=3
block_height=1
col_offset="auto"
bar_char_elapsed="-"
bar_char_total="="
bar_border="on"
bar_length=15
bar_color_elapsed="distro"
bar_color_total="distro"
cpu_display="off"
memory_display="off"
battery_display="off"
disk_display="off"
image_backend="ascii"
image_source="$HOME/.config/neofetch/ascii.txt"
ascii_distro="auto"
ascii_colors=(distro)
ascii_bold="on"
image_loop="off"
thumbnail_dir="''${XDG_CACHE_HOME:-''${HOME}/.cache}/thumbnails/neofetch"
crop_mode="normal"
crop_offset="center"
image_size="auto"
gap=2
yoffset=0
xoffset=0
background_color=
stdout="off"
'';
}
+369
View File
@@ -0,0 +1,369 @@
{ pkgs, config, ... }:
let
nerdfetch = pkgs.writeShellScriptBin "nerdfetch" ''
ostype="$(uname)"
version=8.1.1
font=nerd
distrotype=none
osi=""
ki=""
ri="󰍛"
pi="󰏔"
ui="󰅶"
ci=""
case $1 in
"-p")
font=phosphor
osi=""
ki=""
ri=""
pi=""
ui=""
ci=""
;;
"-c")
font=cozette
ki=""
ri=""
pi=""
ui=""
ci=""
;;
"-e")
font=emoji
osi="🐧"
ki="💓"
ri="🐐"
pi="📦"
ui=""
ci="🎨"
;;
"-v")
echo "NerdFetch $version"
exit
;;
"-h")
echo "Flags:
-c: Cozette font
-p: Phosphor font
-e: Emoji font
-v: Version"
exit
;;
esac
if command -v getprop 1>/dev/null; then
distrotype=android
fi
kernel="$(echo $(uname -r) | cut -d'-' -f1-1)"
case $ostype in
*"Linux"*)
if [ $distrotype = android ]; then
host="$(hostname)"
USER="$(whoami)"
os="Android $(getprop ro.build.version.release)"
case $font in
phosphor) osi="" ;;
emoji) osi="🤖" ;;
*) osi="󰀲" ;;
esac
else
host="$(cat /proc/sys/kernel/hostname)"
. /etc/os-release
if [ -f /bedrock/etc/bedrock-release ]; then
os="$(brl version)"
else
os="''${PRETTY_NAME}"
if [ $font = nerd ]; then
case $(echo $ID | sed 's/ .*//') in
debian) osi="" ;;
arch) osi="󰣇" ;;
endeavouros) osi="" ;;
fedora) osi="" ;;
gentoo) osi="" ;;
rhel) osi="" ;;
slackware) osi="" ;;
void) osi="" ;;
alpine) osi="" ;;
nixos) osi="󱄅" ;;
artix) osi="" ;;
exherbo) osi="󰆚" ;;
mageia) osi="" ;;
manjaro) osi="" ;;
opensuse) osi="" ;;
solus) osi="" ;;
ubuntu) osi="" ;;
mint) osi="󰣭" ;;
trisquel) osi="" ;;
puppy) osi="" ;;
coreos) osi="" ;;
mx) osi="" ;;
vanilla) osi="" ;;
pop_os) osi="" ;;
raspbian) osi="" ;;
deepin) osi="" ;;
almalinux) osi="" ;;
garuda) osi="" ;;
centos) osi="" ;;
rocky) osi="" ;;
esac
elif [ $font = cozette ]; then
case $(echo $ID | sed 's/ .*//') in
debian) osi="" ;;
arch) osi="" ;;
fedora) osi="" ;;
gentoo) osi="" ;;
slackware) osi="" ;;
void) osi="" ;;
alpine) osi="" ;;
nixos) osi="" ;;
mageia) osi="" ;;
manjaro) osi="" ;;
opensuse) osi="" ;;
ubuntu) osi="" ;;
mint) osi="" ;;
coreos) osi="" ;;
centos) osi="" ;;
esac
fi
fi
fi
shell=$(basename "$SHELL")
;;
*"Darwin"*)
host="$(hostname -f | sed -e 's/^[^.]*\.//')"
mac_product="$(/usr/libexec/PlistBuddy -c "Print:ProductName" /System/Library/CoreServices/SystemVersion.plist)"
mac_version="$(/usr/libexec/PlistBuddy -c "Print:ProductVersion" /System/Library/CoreServices/SystemVersion.plist)"
os="''${mac_product} ''${mac_version}"
case $font in
nerd) osi="" ;;
phosphor) osi="" ;;
cozette) osi="" ;;
emoji) osi="🍎" ;;
esac
;;
*"FreeBSD"*)
host="$(hostname)"
distrotype=bsd
os="FreeBSD $(freebsd-version | sed 's/-.*//')"
case $font in
nerd) osi="" ;;
phosphor) osi="" ;;
cozette) osi="" ;;
emoji) osi="😈" ;;
esac
;;
*"OpenBSD"*)
host="$(hostname)"
distrotype=bsd
os="OpenBSD $(uname -r)"
case $font in
nerd) osi="" ;;
phosphor) osi="" ;;
cozette) osi="" ;;
emoji) osi="🐡" ;;
esac
;;
*"NetBSD"*)
host="$(hostname)"
distrotype=netbsd
os="NetBSD $(uname -r)"
case $font in
nerd) osi="󰉀" ;;
phosphor) osi="" ;;
cozette) osi="" ;;
emoji) osi="🚩" ;;
esac
;;
*)
os="Unix-like"
host="host"
;;
esac
## PACKAGE MANAGER AND PACKAGES DETECTION
MANAGER=$(which nix-env pkg flatpak yum zypper dnf rpm dpkg-query brew port pacman xbps-query emerge cave apk kiss pmm /usr/sbin/slackpkg bulge birb yay paru pacstall cpm pmm eopkg getprop 2>/dev/null)
manager=$(basename "$MANAGER")
if [ $distrotype = netbsd ]; then
manager="pkg_info-netbsd"
fi
case $manager in
cpm) packages="$(cpm C)" ;;
flatpak) packages="$(flatpak list --app | wc -l)" ;;
brew) packages="$(printf '%s\n' "$(brew --cellar)/"* | wc -l)" ;;
port) packages="$(port installed | wc -l)" ;;
dpkg-query) packages="$(dpkg-query -f '${
"binary:Package"
}\n' -W | wc -l)" ;;
rpm) packages="$(rpm -qa --last | wc -l)" ;;
yum) packages="$(yum list installed | wc -l)" ;;
dnf) packages="$(dnf list installed | wc -l)" ;;
zypper) packages="$(zypper se | wc -l)" ;;
pacman) packages="$(pacman -Q | wc -l)" ;;
yay) packages="$(yay -Q | wc -l)" ;;
paru) packages="$(paru -Q | wc -l)" ;;
pacstall) packages="$(pacstall -L | wc -l)" ;;
kiss) packages="$(kiss list | wc -l)" ;;
emerge) packages="$(qlist -I | wc -l)" ;;
pkg) packages="$(pkg info | wc -l | tr -d ' ')" ;;
cave) packages="$(cave show installed-slots | wc -l)" ;;
xbps-query) packages="$(xbps-query -l | wc -l)" ;;
nix-env) packages="$(nix-store -q --requisites /run/current-system/sw | wc -l)" ;;
apk) packages="$(apk list --installed | wc -l)" ;;
pmm) packages="$(/bedrock/libexec/pmm pacman pmm -Q 2>/dev/null | wc -l)" ;;
eopkg) packages="$(eopkg li | wc -l)" ;;
/usr/sbin/slackpkg) packages="$(ls /var/log/packages | wc -l)" ;;
bulge) packages="$(bulge list | wc -l)" ;;
birb) packages="$(birb --list-installed | wc -l)" ;;
pkg_info)
packages="$(pkg_info -A | wc -l)"
manager="pkg"
;;
pkg_info-netbsd)
packages="$(pkg_info -a | wc -l)"
manager="pkg"
;;
*)
if [ $distrotype = android ]; then
packages="$(dpkg-query -f '${"binary:Package"}\n' -W | wc -l)"
manager="dpkg"
else
packages="$(ls /usr/bin | wc -l)"
manager="bin"
fi
;;
esac
packages="''${packages#"''${packages%%[![:space:]]*}"}"
manager=$(echo $manager | sed "s/-query//; s/\/usr\/.*\///")
## UPTIME DETECTION
if [ $distrotype = android ]; then
uptime="$(echo $(uptime -p) | cut -c 4-)"
elif [ $distrotype = bsd ] || [ $distrotype = netbsd ]; then
uptime="$(uptime | sed -e 's/.* up //; s/, [0-9]* user.*//')"
else
case $ostype in
*"Linux"*)
IFS=. read -r s _ </proc/uptime
;;
*)
s=$(sysctl -n kern.boottime)
s=''${s#*=}
s=''${s%,*}
s=$(($(date +%s) - s))
;;
esac
d="$((s / 60 / 60 / 24))"
h="$((s / 60 / 60 % 24))"
m="$((s / 60 % 60))"
# Plurals
[ "$d" -gt 1 ] && dp=s
[ "$h" -gt 1 ] && hp=s
[ "$m" -gt 1 ] && mp=s
[ "$s" -gt 1 ] && sp=s
# Hide empty fields.
[ "$d" = 0 ] && d=
[ "$h" = 0 ] && h=
[ "$m" = 0 ] && m=
[ "$m" != "" ] && s=
# Make the output of uptime smaller.
[ "$d" ] && uptime="$d day$dp, "
[ "$h" ] && uptime="$uptime$h hour$hp, "
[ "$m" ] && uptime="$uptime$m min$mp"
[ "$s" ] && uptime="$uptime$s sec$sp"
uptime=''${uptime%, }
fi
## RAM DETECTION
case $ostype in
*"Linux"*)
while IFS=':k ' read -r key val _; do
case $key in
MemTotal)
mem_used=$((mem_used + val))
mem_full=$val
;;
Shmem) mem_used=$((mem_used + val)) ;;
MemFree | Buffers | Cached | SReclaimable) mem_used=$((mem_used - val)) ;;
esac
done </proc/meminfo
mem_used=$((mem_used / 1024))
mem_full=$((mem_full / 1024))
;;
*"Darwin"*)
mem_full=$(($(sysctl -n hw.memsize) / 1024 / 1024))
while IFS=:. read -r key val; do
case $key in
*' wired'* | *' active'* | *' occupied'*)
mem_used=$((mem_used + ${"val:-0"}))
;;
esac
done <-EOF
$(vm_stat)
EOF
mem_used=$((mem_used * 4 / 1024))
;;
*"BSD"*)
mem_full=$(($(sysctl -n hw.physmem) / 1024 / 1024))
if [ $distrotype = netbsd ]; then
mem_free=$(($(vmstat | awk 'NR==3 {print $4}') / 1024))
else
mem_free=$(($(sysctl -n vm.stats.vm.v_free_count) * $(sysctl -n vm.stats.vm.v_page_size) / 1024 / 1024))
fi
mem_used=$((mem_full - mem_free))
;;
*)
mem_full=1
mem_used=0
;;
esac
memstat="''${mem_used}/''${mem_full} MiB"
if which expr >/dev/null 2>&1; then
mempercent="($(expr $(expr ''${mem_used} \* 100 / ''${mem_full}))%)"
fi
## DEFINE COLORS
bold=''
black=''
red=''
green=''
yellow=''
blue=''
magenta=''
cyan=''
white=''
grey=''
reset=''
## USER VARIABLES -- YOU CAN CHANGE THESE
lc="$reset$bold''$${config.var.theme.colors.accentName}" # labels
nc="$reset$bold''$${config.var.theme.colors.accentName}" # labels
hn="$reset$bold''$${config.var.theme.colors.accentName}" # labels
ic="$reset$white" # info
c0="$reset$grey" # first color
c1="$reset$white" # second color
c2="$reset$yellow" # third color
## OUTPUT
echo """
''${c0} ___ ''${nc}''${USER}''${grey}@''${reset}''${hn}''${host}''${reset}
''${c0} (''${c1}.. ''${c0}\ ''${lc}''${osi} ''${ic}''${os}''${reset}
''${c0} (''${c2}<> ''${c0}| ''${lc}''${ki} ''${ic}''${kernel}''${reset}
''${c0} /''${c1}/ \\ ''${c0}\\ ''${lc}''${ri} ''${ic}''${RAM}''${memstat} ''${mempercent}
''${c0} ( ''${c1}| | ''${c0}/| ''${lc}''${pi} ''${ic}''${packages} (''${manager})''${reset}
''${c2} _''${c0}/\\ ''${c1}__)''${c0}/''${c2}_''${c0}) ''${lc}''${ui} ''${ic}''${uptime}''${reset}
''${c2} \/''${c0}-____''${c2}\/''${reset} ''${lc}''${ci} ''${red}''${green}''${yellow}''${blue}''${magenta}''${cyan}''${reset}
"""
'';
in { home.packages = [ nerdfetch ]; }
+50
View File
@@ -0,0 +1,50 @@
{ config, ... }: {
programs.git = {
enable = true;
userName = config.var.git.username;
userEmail = config.var.git.email;
ignores = [
".cache/"
".DS_Store"
".idea/"
"*.swp"
"*.elc"
"auto-save-list"
".direnv/"
"node_modules"
"result"
"result-*"
];
extraConfig = {
init.defaultBranch = "main";
push.autoSetupRemote = true;
};
aliases = {
essa = "push --force";
co = "checkout";
fuck = "commit --amend -m";
c = "commit -m";
ca = "commit -am";
forgor = "commit --amend --no-edit";
graph = "log --all --decorate --graph --oneline";
oops = "checkout --";
l = "log";
r = "rebase";
s = "status --short";
ss = "status";
d = "diff";
ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)";
pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)";
af = "!git add $(git ls-files -m -o --exclude-standard | sk -m)";
st = "status";
br = "branch";
df = "!git hist | peco | awk '{print $2}' | xargs -I {} git diff {}^ {}";
hist = ''
log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all'';
llog = ''
log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative'';
edit-unmerged =
"!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; hx `f`";
};
};
}
@@ -1,40 +0,0 @@
{pkgs}: (with pkgs; [
# Web
dirb
ffuf
katana
whatweb
sqlmap
nosqli
# Hashes
hashcat
haiti
john
# Databases
mariadb
redis
# Network
inetutils
termshark # wireshark in TUI
whois
dig
nmap
samba
hydra
# Misc
metasploit
nuclei
openvpn
# Secrets
trufflehog
# Forensics
binwalk
pkgs.nur.repos.anotherhadi.spilltea
pkgs.nur.repos.anotherhadi.jwt-tui
])
-40
View File
@@ -1,40 +0,0 @@
{pkgs, ...}: {
home.packages = import ./cybersecurity-packages.nix {
inherit pkgs;
};
systemd.user.tmpfiles.rules = [
"d %h/Cyber/tmp 0755 - - -"
"d %h/Cyber/wordlists 0755 - - -"
"d %h/Cyber/wordlists/rules 0755 - - -"
];
home.file = {
"Cyber/wordlists/seclists".source = pkgs.fetchFromGitHub {
owner = "danielmiessler";
repo = "SecLists";
rev = "47aa98053fce8670c6489e4f6fb57dc34881d8bd";
hash = "sha256-ojXLB/TXap1Qi0MtV5/WJlJpjNIDYx/sLY2KHm0uFKI=";
};
"Cyber/wordlists/fuzz4bounty".source = pkgs.fetchFromGitHub {
owner = "0xPugal";
repo = "fuzz4bounty";
rev = "a805f6b434033f054312da0ddc2bc3021cc9a3b0";
hash = "sha256-wMhx1CcxIyw2E7gJXQxXAFc7m5nYt0FXNkoTZqFMQh4=";
};
# RULES
"Cyber/wordlists/rules/oneruletorulethemstill".source = pkgs.fetchFromGitHub {
owner = "stealthsploit";
repo = "oneruletorulethemstill";
rev = "4bfb7322e189305b5f35bb7fcd4e9cc233c3d3c6";
hash = "sha256-h7MeymIXS/6wlPRt4lzsIEqOOssP0lDx9nQip65cwZw=";
};
"Cyber/wordlists/rules/best64.rule".source = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/CarlosLannister/OwadeReborn/refs/heads/master/owade/fileAnalyze/hashcatLib/best64.rule%7E";
hash = "sha256-T0XkMHJZQiy63/j25nGTkaiDFjc+blmgEVGTAFgVylU=";
};
};
}
-20
View File
@@ -1,20 +0,0 @@
{
pkgs,
pkgs-unstable,
...
}: {
home.packages = with pkgs-unstable;
[
go
claude-code
]
++ (with pkgs; [
nodejs
air
duckdb
python3
jq
nix-prefetch-github
rsync
]);
}
@@ -1,459 +0,0 @@
{
config,
lib,
pkgs-unstable,
...
}: let
bookmarkList =
(import ./general.nix)
++ (import ./tools.nix)
++ (import ./entertainment.nix)
++ (import ./infosec.nix)
++ (import ./other.nix)
++ (import ./jack.nix);
c = config.lib.stylix.colors;
stripProtocol = url: lib.removePrefix "https://" (lib.removePrefix "http://" url);
stripDomain = url: builtins.head (lib.splitString "/" (stripProtocol url));
mkCard = item: let
domain = stripDomain item.url;
initial = builtins.substring 0 1 item.name;
in ''
<a href="${item.url}" class="card">
<div class="favicon-wrapper">
<img class="favicon" src="https://icons.duckduckgo.com/ip3/${domain}.ico" alt="" aria-hidden="true" loading="lazy" onerror="this.style.display='none';this.nextElementSibling.style.display='flex'">
<span class="favicon-fallback" style="display:none">${initial}</span>
</div>
<div class="card-info">
<span class="card-name">${item.name}</span>
<span class="card-url">${stripProtocol item.url}</span>
</div>
</a>'';
mkFolderContent = items: let
step = acc: item:
if item ? url
then acc // {pending = acc.pending ++ [item];}
else {
chunks =
acc.chunks
++ lib.optional (acc.pending != []) {
isCards = true;
items = acc.pending;
}
++ [
{
isCards = false;
folder = item;
}
];
pending = [];
};
result =
lib.foldl' step {
chunks = [];
pending = [];
}
items;
chunks =
result.chunks
++ lib.optional (result.pending != []) {
isCards = true;
items = result.pending;
};
in
lib.concatMapStrings (
chunk:
if chunk.isCards
then ''
<div class="cards">
${lib.concatMapStrings mkCard chunk.items}
</div>''
else mkFolder chunk.folder
)
chunks;
mkFolder = folder: let
iconHtml =
if folder ? icon
then ''<span class="material-symbols-outlined folder-icon" aria-hidden="true">${folder.icon}</span>''
else "";
in ''
<details class="folder-section" open>
<summary class="folder-title">
${iconHtml}<span class="folder-name">${folder.name}</span>
<svg class="chevron" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
</summary>
<div class="folder-content">
${mkFolderContent folder.bookmarks}
</div>
</details>'';
grouped = let
step = acc: item:
if item ? url
then acc // {pending = acc.pending ++ [item];}
else {
groups =
acc.groups
++ lib.optional (acc.pending != []) {
isRoot = true;
items = acc.pending;
}
++ [
{
isRoot = false;
inherit item;
}
];
pending = [];
};
result =
lib.foldl' step {
groups = [];
pending = [];
}
bookmarkList;
in
result.groups
++ lib.optional (result.pending != []) {
isRoot = true;
items = result.pending;
};
mkSection = group:
if group.isRoot
then ''
<div class="root-section">
<div class="cards">
${lib.concatMapStrings mkCard group.items}
</div>
</div>''
else mkFolder group.item;
in {
home.file.".local/share/helium-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>Bookmarks</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20,300,0,0">
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
background-color: #${c.base00};
color: #${c.base05};
font-family: 'Source Sans Pro', sans-serif;
font-size: 14px;
min-height: 100vh;
padding: 2.5rem 2rem;
}
.header {
max-width: 1100px;
margin: 0 auto 2rem;
display: flex;
align-items: center;
gap: 1.5rem;
}
.page-title {
font-size: 1.3rem;
font-weight: 700;
color: #${c.base0D};
letter-spacing: -0.01em;
flex-shrink: 0;
}
.search-bar {
flex: 1;
background-color: #${c.base01};
border: 1px solid #${c.base02};
border-radius: 8px;
color: #${c.base05};
font-family: 'Source Sans Pro', sans-serif;
font-size: 0.9rem;
padding: 0.5rem 0.9rem;
outline: none;
transition: border-color 0.15s ease;
}
.search-bar::placeholder { color: #${c.base03}; }
.search-bar:focus { border-color: #${c.base0D}; }
.collapse-btn {
flex-shrink: 0;
background: none;
border: 1px solid #${c.base02};
border-radius: 8px;
color: #${c.base03};
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
padding: 0.47rem;
transition: color 0.15s ease, border-color 0.15s ease;
}
.collapse-btn:hover {
color: #${c.base0D};
border-color: #${c.base0D};
}
.collapse-btn svg { width: 16px; height: 16px; }
.bookmarks-container {
max-width: 1100px;
margin: 0 auto;
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.root-section { margin-bottom: 1rem; }
details.folder-section { border-radius: 8px; }
details.folder-section > summary {
list-style: none;
cursor: pointer;
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.45rem 0.5rem;
border-radius: 8px;
user-select: none;
transition: background-color 0.12s ease;
}
details.folder-section > summary::-webkit-details-marker { display: none; }
details.folder-section > summary:hover {
background-color: #${c.base01};
color: #${c.base0D};
}
details.folder-section > summary:hover .folder-name { color: #${c.base0D}; }
details.folder-section > summary:hover .folder-icon { color: #${c.base0D}; }
.folder-icon {
font-size: 14px;
line-height: 1;
flex-shrink: 0;
color: #${c.base04};
user-select: none;
}
.folder-name {
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: #${c.base03};
flex: 1;
}
.chevron {
width: 13px;
height: 13px;
color: #${c.base03};
transition: transform 0.2s ease;
flex-shrink: 0;
}
details[open] > summary > .chevron { transform: rotate(180deg); }
.folder-content {
padding: 0.4rem 0 0.5rem 0;
display: flex;
flex-direction: column;
gap: 0.25rem;
}
.folder-content > details.folder-section > summary { padding-left: 1.2rem; }
.folder-content > details.folder-section > .folder-content { padding-left: 1rem; }
.cards {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 0.4rem;
}
.card {
display: flex;
align-items: center;
gap: 0.7rem;
padding: 0.6rem 0.8rem;
background-color: #${c.base01};
border: 1px solid #${c.base02};
border-radius: 10px;
text-decoration: none;
transition: background-color 0.12s ease, border-color 0.12s ease;
overflow: hidden;
}
.card:hover {
background-color: #${c.base02};
border-color: #${c.base0D};
}
.favicon-wrapper { position: relative; width: 18px; height: 18px; flex-shrink: 0; }
.favicon {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 3px;
}
.favicon-fallback {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
background-color: #${c.base02};
border-radius: 4px;
color: #${c.base04};
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
user-select: none;
}
.card-info {
display: flex;
flex-direction: column;
gap: 0.05rem;
overflow: hidden;
flex: 1;
}
.card-name {
color: #${c.base05};
font-size: 0.86rem;
font-weight: 500;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
transition: color 0.12s ease;
}
.card:hover .card-name { color: #${c.base0D}; }
.card-url {
color: #${c.base03};
font-family: 'Maple Mono NF', monospace;
font-size: 0.7rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.no-results {
color: #${c.base03};
font-size: 0.9rem;
padding: 0.5rem 0.2rem;
display: none;
}
</style>
</head>
<body>
<div class="header">
<h1 class="page-title">Bookmarks</h1>
<input id="search" class="search-bar" type="text" placeholder="Search" autocomplete="off" spellcheck="false">
<button id="collapse-btn" class="collapse-btn" title="Collapse all folders" aria-label="Collapse all folders">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="4 14 10 14 10 20"/><polyline points="20 10 14 10 14 4"/><line x1="10" y1="14" x2="3" y2="21"/><line x1="21" y1="3" x2="14" y2="10"/>
</svg>
</button>
</div>
<div class="bookmarks-container">
<p id="no-results" class="no-results">No results</p>
${lib.concatMapStrings mkSection grouped}
</div>
<script>
window.addEventListener('DOMContentLoaded', function () {
const input = document.getElementById('search');
const noResults = document.getElementById('no-results');
const collapseBtn = document.getElementById('collapse-btn');
input.focus();
collapseBtn.addEventListener('click', function () {
document.querySelectorAll('details.folder-section').forEach(function (d) {
d.open = false;
});
});
input.addEventListener('input', function () {
const query = this.value.toLowerCase().trim();
let anyVisible = false;
if (query) {
document.querySelectorAll('details.folder-section').forEach(function (d) {
d.open = true;
});
}
document.querySelectorAll('.folder-section, .root-section').forEach(function (section) {
let sectionVisible = false;
section.querySelectorAll('.card').forEach(function (card) {
const name = card.querySelector('.card-name').textContent.toLowerCase();
const url = card.querySelector('.card-url').textContent.toLowerCase();
const match = !query || name.includes(query) || url.includes(query);
card.style.display = match ? ''' : 'none';
if (match) { sectionVisible = true; anyVisible = true; }
});
section.style.display = sectionVisible ? ''' : 'none';
});
noResults.style.display = anyVisible || !query ? 'none' : 'block';
});
input.addEventListener('keydown', function (e) {
if (e.key === 'Enter') {
const val = this.value.trim();
const isUrl = /^https?:\/\//i.test(val) || /^[a-zA-Z0-9-]+(\.[a-zA-Z]{2,})(\/.*)?$/.test(val);
if (isUrl) {
location.href = /^https?:\/\//i.test(val) ? val : 'https://' + val;
} else {
const first = document.querySelector('.card:not([style*="none"])');
if (first) {
location.href = first.href;
} else {
const q = encodeURIComponent(val);
if (q) location.href = 'https://duckduckgo.com/?q=' + q;
}
}
}
if (e.key === 'Escape') {
this.value = ''';
this.dispatchEvent(new Event('input'));
}
});
});
</script>
</body>
</html>
'';
systemd.user.services.helium-startpage = {
Unit = {
Description = "Helium startpage HTTP server";
After = ["network.target"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs-unstable.darkhttpd}/bin/darkhttpd %h/.local/share/helium-startpage --port 8888 --addr 127.0.0.1 --no-listing";
Restart = "on-failure";
};
Install.WantedBy = ["default.target"];
};
}
@@ -1,50 +0,0 @@
[
{
name = "Entertainment";
icon = "movie";
bookmarks = [
{
name = "Youtube";
url = "https://youtube.com";
}
{
name = "Jellyfin";
url = "https://media.hadi.icu";
}
{
name = "Seerr";
url = "https://demandemedia.hadi.icu";
}
{
name = "Social Media";
icon = "group";
bookmarks = [
{
name = "Medium";
url = "https://medium.com";
}
{
name = "Bluesky";
url = "https://bsky.app";
}
{
name = "Reddit";
url = "https://reddit.com";
}
{
name = "Instagram";
url = "https://instagram.com";
}
{
name = "Discord";
url = "https://discord.com/channels/@me/";
}
{
name = "Gitlab";
url = "https://gitlab.com/";
}
];
}
];
}
]
@@ -1,14 +0,0 @@
[
{
name = "Proton Mail";
url = "https://mail.proton.me";
}
{
name = "Proton Drive";
url = "https://drive.proton.me";
}
{
name = "Github";
url = "https://github.com";
}
]
@@ -1,56 +0,0 @@
[
{
name = "Infosec";
icon = "terminal";
bookmarks = [
{
name = "Nix 4 Cyber";
url = "https://n4c.hadi.icu";
}
{
name = "Infosec Notes - Anotherhadi";
url = "https://hadi.icu/notes";
}
{
name = "Cyberchef";
url = "https://cyberchef.hadi.icu";
}
{
name = "TryHackMe";
url = "https://tryhackme.com";
}
{
name = "Root-Me";
url = "https://root-me.org";
}
{
name = "Hack The Box";
url = "https://hackthebox.com";
}
{
name = "Iknowyou";
url = "https://iknowyou-prod.hadi.icu";
}
{
name = "Exploit-DB";
url = "https://exploit-db.com";
}
{
name = "Reverse Shell Generator";
url = "https://revshells.com";
}
{
name = "GTFOBins";
url = "https://gtfobins.org/";
}
{
name = "Crack Station";
url = "https://crackstation.net";
}
{
name = "Osint Tracker";
url = "https://app.osintracker.com";
}
];
}
]
@@ -1,80 +0,0 @@
[
{
name = "Jack";
icon = "dns";
bookmarks = [
{
name = "Glance";
url = "https://home.hadi.icu";
}
{
name = "Blog";
url = "https://hadi.icu";
}
{
name = "Gitea";
url = "https://git.hadi.icu";
}
{
name = "Mealie";
url = "https://mealie.hadi.icu";
}
{
name = "Wallpapers";
url = "https://wallpapers.hadi.icu";
}
{
name = "Default Creds";
url = "https://default-creds.hadi.icu";
}
{
name = "Media";
icon = "subscriptions";
bookmarks = [
{
name = "Radarr";
url = "https://radarr.hadi.icu";
}
{
name = "Sonarr";
url = "https://sonarr.hadi.icu";
}
{
name = "Bazarr";
url = "https://bazarr.hadi.icu";
}
{
name = "Prowlarr";
url = "https://prowlarr.hadi.icu";
}
{
name = "Transmission";
url = "https://transmission.hadi.icu";
}
];
}
{
name = "Infrastructure";
icon = "construction";
bookmarks = [
{
name = "AdGuard";
url = "https://adguard.hadi.icu";
}
{
name = "Umami";
url = "https://umami.hadi.icu";
}
{
name = "Cloudflare";
url = "https://dash.cloudflare.com";
}
{
name = "Cloudflare Zero Trust";
url = "https://one.dash.cloudflare.com";
}
];
}
];
}
]
@@ -1,58 +0,0 @@
[
{
name = "Other";
icon = "category";
bookmarks = [
{
name = "Documentation";
icon = "menu_book";
bookmarks = [
{
name = "Hyprland Wiki";
url = "https://wiki.hypr.land";
}
{
name = "Nerdfont Cheatsheet";
url = "https://www.nerdfonts.com/cheat-sheet";
}
{
name = "Helium Bangs";
url = "https://helium.computer/bangs";
}
{
name = "NVF Options";
url = "https://nvf.notashelf.dev/";
}
{
name = "Stylix Wiki";
url = "https://nix-community.github.io/stylix/";
}
{
name = "Nixpkgs";
url = "https://github.com/NixOS/nixpkgs";
}
{
name = "tldr";
url = "https://tldr.inbrowser.app/";
}
];
}
{
name = "Startpage Config";
url = "https://www.startpage.com/do/mypage.pl?prfe=45d331deb05471d659dba933e7400df51d952bb103da6f6125c0e769a6be1d65610456a479f495ceeee7e97311cf227d7c1bb198de0ceeb193d8cddf9c455c19a409cc35c3e3f542ee27bd7cecd3";
}
{
name = "Feedly";
url = "https://feedly.com";
}
{
name = "MyNixOS";
url = "https://mynixos.com";
}
{
name = "Amazon";
url = "https://amazon.fr";
}
];
}
]
@@ -1,52 +0,0 @@
[
{
name = "Tools";
icon = "handyman";
bookmarks = [
{
name = "Maps";
url = "https://maps.apple.com";
}
{
name = "Excalidraw";
url = "https://excalidraw.com";
}
{
name = "Cobalt (downloader)";
url = "https://cobalt.meowing.de";
}
{
name = "Mazanoke (image)";
url = "https://mazanoke.hadi.icu";
}
{
name = "Vert";
url = "https://vert.sh";
}
{
name = "Markdown to PDF";
url = "https://md2file.com";
}
{
name = "Image to Vector";
url = "https://www.vectorcascade.com/";
}
{
name = "PrivateBin";
url = "https://privatebin.net";
}
{
name = "Claude";
url = "https://claude.ai";
}
{
name = "Gemini";
url = "https://gemini.google.com";
}
{
name = "Lumo";
url = "https://lumo.proton.me";
}
];
}
]
-139
View File
@@ -1,139 +0,0 @@
{
inputs,
config,
pkgs-unstable,
lib,
...
}: let
c = config.lib.stylix.colors;
rgb = base: map lib.strings.toInt [c."${base}-rgb-r" c."${base}-rgb-g" c."${base}-rgb-b"];
themeId = "abcadngacjlikcpkhleafekcdjmddegk";
themeKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6t46VoE3mdV1QNMgybpmQLi5PtYHejnNrSj4DkBZyiTzMzs7Yyvg64f78w3QubZA5cTXSQ7FVhVHvv30I8ym/jNzsSN6reh1t4PtKsFjFRugAty8bfKJGD404HZLOFN2z3G9UPVLBBgzDH3DWbb/kcOq60Mlo/QDCIjsieZg0G3EYMl4efoThzYPWoyv0UEoiliwrE/AChxbgipQetUZ48bFhTCsmnYzCze7clssfTobzWtJJG0qFx76LauHKymRS5OTFfgsovKqHUSFJ202Q53vFdUPP/j8PjSPr1kZeg1NYc7Ba3MoA49EwtJf5ol9oYu05EEnSQ5+1AoYVmdE8QIDAQAB";
themeManifest = builtins.toJSON {
manifest_version = 2;
name = "Stylix Theme";
version = "1.0";
key = themeKey;
theme.colors = {
frame = rgb "base00";
frame_inactive = rgb "base00";
frame_incognito = rgb "base00";
frame_incognito_inactive = rgb "base00";
toolbar = rgb "base00";
toolbar_button_icon = rgb "base05";
control_background = rgb "base00";
tab_text = rgb "base0D";
background_tab = rgb "base00";
tab_background_text = rgb "base04";
tab_background_text_inactive = rgb "base04";
ntp_background = rgb "base00";
ntp_text = rgb "base05";
};
};
heliumFlags = [
"--ozone-platform=wayland"
"--enable-features=UseOzonePlatform,VaapiVideoDecoder,VaapiVideoEncoder,CanvasOopRasterization"
"--disable-features=UseChromeOSDirectVideoDecoder,WaylandWpColorManagerV1"
"--enable-accelerated-video-decode"
"--enable-gpu-rasterization"
"--use-gl=egl"
"--no-default-browser-check"
"--show-avatar-button=never"
];
originalPkg = (inputs.helium-browser.packages.${pkgs-unstable.stdenv.hostPlatform.system}.helium).override {
flags = heliumFlags;
};
patchScript = pkgs-unstable.writeShellScript "helium-patch-prefs" ''
PROFILE="$HOME/.config/net.imput.helium/Default"
THEME_DIR="$PROFILE/Extensions/${themeId}/1.0_0"
PREFS="$PROFILE/Preferences"
mkdir -p "$THEME_DIR"
rm -f "$THEME_DIR/Cached Theme.pak"
printf '%s' '${themeManifest}' > "$THEME_DIR/manifest.json"
if [ -f "$PREFS" ]; then
tmp=$(mktemp)
${lib.getExe pkgs-unstable.jq} \
--arg id "${themeId}" \
--slurpfile manifest "$THEME_DIR/manifest.json" \
'
.helium.browser.layout = 3 |
.helium.browser.minimal_location_bar = true |
.helium.browser.show_dynamic_new_tab_button = false |
.helium.browser.rounded_frame = false |
.bookmark_bar.show_tab_groups = false |
.extensions.settings[$id] = {
"active_permissions": {"api": [], "explicit_host": [], "manifest_permissions": [], "scriptable_host": []},
"creation_flags": 0,
"from_webstore": false,
"install_time": "13300000000000000",
"location": 1,
"manifest": $manifest[0],
"path": ($id + "/1.0_0"),
"state": 1,
"was_installed_by_default": false,
"was_installed_by_oem": false
} |
.extensions.theme = {"id": $id, "use_system": false}
' "$PREFS" > "$tmp" && mv "$tmp" "$PREFS"
fi
'';
baseWrapped = pkgs-unstable.symlinkJoin {
name = "helium-wrapped";
paths = [originalPkg];
nativeBuildInputs = [pkgs-unstable.makeWrapper];
postBuild = ''
wrapProgram $out/bin/helium \
--set-default GTK_USE_PORTAL 1 \
--run ${lib.escapeShellArg (toString patchScript)}
'';
};
wrappedPkg = baseWrapped // {override = _: baseWrapped;};
in {
imports = [
inputs.helium-browser.homeModules.default
./bookmarks
];
programs.helium = {
enable = true;
package = lib.mkForce wrappedPkg;
};
home.sessionVariables.BROWSER = "${config.programs.helium.package}/bin/helium";
xdg.desktopEntries.helium = {
name = "Helium";
genericName = "Web Browser";
exec = "${config.programs.helium.package}/bin/helium %U";
icon = "${config.programs.helium.package}/share/icons/hicolor/256x256/apps/helium.png";
terminal = false;
categories = ["Network" "WebBrowser"];
mimeType = [
"text/html"
"text/xml"
"application/xhtml+xml"
"x-scheme-handler/http"
"x-scheme-handler/https"
"x-scheme-handler/ftp"
];
};
xdg.desktopEntries.helium-private = {
name = "Helium (Private window)";
genericName = "Web Browser";
exec = "${config.programs.helium.package}/bin/helium --incognito %U";
icon = "${config.programs.helium.package}/share/icons/hicolor/256x256/apps/helium.png";
terminal = false;
categories = ["Network" "WebBrowser"];
mimeType = ["text/html" "text/xml" "application/xhtml+xml"];
};
}
-70
View File
@@ -1,70 +0,0 @@
{...}: let
bookmarkList =
(import ./bookmarks/general.nix)
++ (import ./bookmarks/tools.nix)
++ (import ./bookmarks/entertainment.nix)
++ (import ./bookmarks/infosec.nix)
++ (import ./bookmarks/other.nix)
++ (import ./bookmarks/jack.nix);
toChromium = items:
map (item:
if item ? url
then {inherit (item) name url;}
else {
name = item.name;
children = toChromium item.bookmarks;
})
items;
in {
stylix.targets.chromium.enable = false;
programs.helium = {
enable = true;
policies = {
BrowserSignin = 0;
SyncDisabled = true;
SigninAllowed = false;
PasswordManagerEnabled = false;
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
SafeBrowsingEnabled = false;
MetricsReportingEnabled = false;
SpellCheckServiceEnabled = false;
DefaultCookiesSetting = 1;
DefaultGeolocationSetting = 2;
DefaultNotificationsSetting = 2;
DefaultPopupsSetting = 2;
DefaultBrowserSettingEnabled = false;
DeveloperToolsAvailability = 1;
DnsOverHttpsMode = "automatic";
DnsOverHttpsTemplates = "https://dns.quad9.net/dns-query";
DefaultSearchProviderEnabled = true;
DefaultSearchProviderName = "Startpage";
DefaultSearchProviderSearchURL = "https://www.startpage.com/do/search?q={searchTerms}";
DefaultSearchProviderSuggestURL = "https://www.startpage.com/do/suggest?q={searchTerms}";
NewTabPageLocation = "http://127.0.0.1:8888";
HomepageIsNewTabPage = false;
HomepageLocation = "http://127.0.0.1:8888";
ShowHomeButton = false;
RestoreOnStartup = 4;
BookmarkBarEnabled = false;
ManagedBookmarks = toChromium bookmarkList;
ExtensionInstallForcelist = [
"dbepggeogbaibhgnhhndojpepiihcmeb" # Vimiu
"gcknhkkoolaabfmlnjonogaaifnjlfnp" # FoxyProxy
"ghmbeldphafepmbegfdlkpapadhbakde" # Proton Pass
"mdjildafknihdffpkfmmpnpoiajfjnjd" # Consent-O-Matic
"pkehgijcmpdhfbdbbnkijodmdjhbjlgp" # Privacy Badger
];
};
};
}
-17
View File
@@ -1,17 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
vlc # Video player
obsidian # Note taking app
textpieces # Manipulate texts
resources # Resource monitor
gnome-clocks # Clocks app
gnome-text-editor # Basic graphic text editor
ticktick # Todo app
pinta # Image editor
switcheroo # Convert images between different formats
onlyoffice-desktopeditors # Office suite
blanket # Listen to different sounds
signal-desktop # Messaging app
thunar # File explorer
];
}
-39
View File
@@ -1,39 +0,0 @@
{
pkgs,
config,
...
}: {
home.packages = with pkgs; [
proton-vpn
proton-pass
proton-authenticator
];
# Fix Proton Authenticator desktop entry
xdg.desktopEntries = {
"Proton Authenticator" = {
name = "Proton Authenticator";
exec = "env WEBKIT_DISABLE_COMPOSITING_MODE=1 ${pkgs.proton-authenticator}/bin/proton-authenticator";
icon = "proton-authenticator";
type = "Application";
categories = ["Utility"];
terminal = false;
};
"Proton Calendar" = {
name = "Proton Calendar";
exec = ''${config.programs.helium.package}/bin/helium "https://calendar.proton.me"'';
icon = "proton-calendar";
type = "Application";
categories = ["Utility"];
terminal = false;
};
"Proton Mail" = {
name = "Proton Mail";
exec = ''${config.programs.helium.package}/bin/helium "https://mail.proton.me/"'';
icon = "proton-mail";
type = "Application";
categories = ["Utility"];
terminal = false;
};
};
}
+48
View File
@@ -0,0 +1,48 @@
{ config, pkgs, ... }: {
programs.kitty = {
enable = true;
settings = {
scrollback_lines = 10000;
initial_window_width = 1200;
initial_window_height = 600;
update_check_interval = 0;
enable_audio_bell = false;
confirm_os_window_close = "0";
remember_window_size = "no";
disable_ligatures = "never";
shell = "${pkgs.tmux}/bin/tmux";
url_style = "curly";
cursor_shape = "Underline";
cursor_underline_thickness = config.var.theme.border-size;
window_padding_width = config.var.theme.gaps-in;
# Font
font_family = config.var.theme.font-mono;
font_size = config.var.theme.font-size;
# Colors
background = "#" + config.var.theme.colors.bg;
url_color = "#" + config.var.theme.colors.accent;
color0 = "#" + config.var.theme.colors.c0;
color8 = "#" + config.var.theme.colors.c8;
color1 = "#" + config.var.theme.colors.c1;
color9 = "#" + config.var.theme.colors.c9;
color2 = "#" + config.var.theme.colors.c2;
color10 = "#" + config.var.theme.colors.c10;
color3 = "#" + config.var.theme.colors.c3;
color11 = "#" + config.var.theme.colors.c11;
color4 = "#" + config.var.theme.colors.c4;
color12 = "#" + config.var.theme.colors.c12;
color5 = "#" + config.var.theme.colors.c5;
color13 = "#" + config.var.theme.colors.c13;
color6 = "#" + config.var.theme.colors.c6;
color14 = "#" + config.var.theme.colors.c14;
color7 = "#" + config.var.theme.colors.c7;
color15 = "#" + config.var.theme.colors.c15;
cursor = "#" + config.var.theme.colors.fg;
cursor_text_color = "#" + config.var.theme.colors.bg;
selection_foreground = "#" + config.var.theme.colors.accentFg;
selection_background = "#" + config.var.theme.colors.accent;
};
};
}
+6
View File
@@ -0,0 +1,6 @@
{
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
}
+12
View File
@@ -0,0 +1,12 @@
{
programs.nixvim = {
enable = true;
colorschemes.catppuccin = {
enable = true;
settings = {
transparent_background = true;
flavour = "mocha";
};
};
};
}
+17
View File
@@ -0,0 +1,17 @@
{ inputs, ... }: {
imports = [
inputs.nixvim.homeManagerModules.nixvim
./plugins/cmp.nix
./plugins/dashboard.nix
./plugins/lsp.nix
./plugins/markdown.nix
./plugins/tree.nix
./plugins/ui.nix
./plugins/utils.nix
./plugins/zen-mode.nix
./options.nix
./colorscheme.nix
./keymaps.nix
];
}
+24
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";
}
];
}
+37
View File
@@ -0,0 +1,37 @@
{
programs.nixvim.globals.mapleader = " ";
programs.nixvim.opts = {
updatetime = 50; # Faster completion
number = true;
relativenumber = true;
autoindent = true;
clipboard = "unnamed,unnamedplus";
expandtab = true;
tabstop = 2;
softtabstop = 2;
shiftwidth = 2;
smartindent = true;
breakindent = true;
ignorecase = true;
incsearch = true;
hlsearch = true;
smartcase = true;
wildmode = "list:longest";
completeopt = [ "menuone" "noselect" ];
signcolumn = "yes";
cursorline = false;
scrolloff = 8;
mouse = "a";
wrap = false;
swapfile = false;
undofile = true;
conceallevel = 3;
};
}
+113
View File
@@ -0,0 +1,113 @@
{
programs.nixvim.plugins = {
luasnip.enable = true;
cmp-buffer = { enable = true; };
cmp-emoji = { enable = true; };
cmp-nvim-lsp = { enable = true; };
cmp-path = { enable = true; };
cmp_luasnip = { enable = true; };
cmp = {
enable = true;
settings = {
snippet.expand =
"function(args) require('luasnip').lsp_expand(args.body) end";
sources = [
{ name = "nvim_lsp"; }
{ name = "luasnip"; }
{ name = "buffer"; }
{ name = "nvim_lua"; }
{ name = "path"; }
];
formatting = {
fields = [ "abbr" "kind" "menu" ];
format =
# lua
''
function(_, item)
local icons = {
Namespace = "󰌗",
Text = "󰉿",
Method = "󰆧",
Function = "󰆧",
Constructor = "",
Field = "󰜢",
Variable = "󰀫",
Class = "󰠱",
Interface = "",
Module = "",
Property = "󰜢",
Unit = "󰑭",
Value = "󰎠",
Enum = "",
Keyword = "󰌋",
Snippet = "",
Color = "󰏘",
File = "󰈚",
Reference = "󰈇",
Folder = "󰉋",
EnumMember = "",
Constant = "󰏿",
Struct = "󰙅",
Event = "",
Operator = "󰆕",
TypeParameter = "󰊄",
Table = "",
Object = "󰅩",
Tag = "",
Array = "[]",
Boolean = "",
Number = "",
Null = "󰟢",
String = "󰉿",
Calendar = "",
Watch = "󰥔",
Package = "",
Copilot = "",
Codeium = "",
TabNine = "",
}
local icon = icons[item.kind] or ""
item.kind = string.format("%s %s", icon, item.kind or "")
return item
end
'';
};
window = {
completion = {
winhighlight =
"FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel";
scrollbar = true;
sidePadding = 0;
border = [ "" "" "" "" "" "" "" "" ];
};
documentation = {
border = [ "" "" "" "" "" "" "" "" ];
winhighlight =
"FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel";
};
};
mapping = {
"<C-n>" = "cmp.mapping.select_next_item()";
"<C-p>" = "cmp.mapping.select_prev_item()";
"<Down>" = "cmp.mapping.select_next_item()";
"<Up>" = "cmp.mapping.select_prev_item()";
"<C-j>" = "cmp.mapping.select_next_item()";
"<C-k>" = "cmp.mapping.select_prev_item()";
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<C-Space>" = "cmp.mapping.complete()";
"<C-e>" = "cmp.mapping.close()";
"<CR>" =
"cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true })";
};
};
};
};
}
+148
View File
@@ -0,0 +1,148 @@
{ config, ... }: {
programs.nixvim.highlight = {
AlphaHeaderColor.fg = "#${config.var.theme.colors.accent}";
AlphaTextColor.fg = "#${config.var.theme.colors.fg}";
AlphaShortcutColor.fg = "#${config.var.theme.colors.fgalt}";
};
programs.nixvim.plugins.alpha = {
enable = true;
layout = [
{
type = "padding";
val = 4;
}
{
type = "text";
opts = {
position = "center";
hl = "AlphaHeaderColor";
};
val = [
" "
" "
" "
" "
" "
" "
" "
" "
" "
];
}
{
type = "padding";
val = 4;
}
{
type = "group";
val = [
{
type = "button";
val = "󰭎 Find file";
on_press.__raw = "function() vim.cmd[[Telescope find_files]] end";
opts = {
shortcut = "nf";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = " New file";
on_press.__raw = "function() vim.cmd[[ene]] end";
opts = {
shortcut = "nn";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = " NixOs Config";
on_press.__raw =
"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";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = " Recently used";
on_press.__raw = "function() vim.cmd[[Telescope oldfiles]] end";
opts = {
shortcut = "no";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = "󰱽 Find text";
on_press.__raw = "function() vim.cmd[[Telescope live_grep]] end";
opts = {
shortcut = "nt";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = "󰩈 Quit Neovim";
on_press.__raw = "function() vim.cmd[[qa]] end";
opts = {
shortcut = "nq";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
];
}
];
};
}
+50
View File
@@ -0,0 +1,50 @@
{
programs.nixvim.plugins = {
lsp-format.enable = true;
lsp = {
enable = true;
servers = {
bashls.enable = true;
clangd.enable = true;
gopls.enable = true;
nixd.enable = true;
tailwindcss.enable = true;
# html.enable = true; # FIXME: broken for some reason
svelte.enable = true;
marksman.enable = true;
ltex = {
enable = false;
settings = {
enabled = false;
language = "en";
};
};
};
keymaps.lspBuf = {
"gd" = "definition";
"gD" = "references";
"gt" = "type_definition";
"gi" = "implementation";
"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;
};
};
};
};
}
+133
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";
};
};
};
};
}
+61
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";
}
];
};
}
+43
View File
@@ -0,0 +1,43 @@
{ pkgs, config, ... }: {
home.packages = with pkgs; [ ctags ];
programs.nixvim = {
highlight = {
Headline.bg = "#${config.var.theme.colors.bgalt}";
Headline.bold = true;
Headline1.bg = "#${config.var.theme.colors.c0}";
Headline1.bold = true;
};
plugins = {
lualine.enable = true;
noice.enable = true;
gitsigns = {
enable = true;
settings.current_line_blame = false;
};
bufferline.enable = true;
trouble.enable = true;
indent-blankline.enable = true;
which-key.enable = true;
headlines = {
enable = true;
settings = {
markdown = {
headline_highlights = [ "Headline1" "Headline" ];
fat_headlines = false;
bullets = [ "" "" "" "" ];
dash_string = "";
codeblock_highlight = "Headline";
};
};
};
nvim-colorizer.enable = true;
tagbar.enable = true; # FIXME: Tagbar is not working
};
keymaps = [{
key = "<leader>t";
action = "<cmd>TroubleToggle<cr>";
options.desc = "Trouble";
}];
};
}
+51
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>";
}
];
};
}
+31
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;
};
};
};
}
+339
View File
@@ -0,0 +1,339 @@
{ 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": "󰊻"}
]
}
]
}
}
'';
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 ];
programs.qutebrowser = {
enable = true;
searchEngines = {
"DEFAULT" = "https://duckduckgo.com/?q={}&ia=web";
"d" = "https://duckduckgo.com/?q={}&ia=web";
"g" = "https://google.com/search?q={}";
"y" = "https://youtube.com/results?search_query={}";
"ya" = "https://yandex.com/search/?text={}";
"n" = "https://mynixos.com/search?q={}";
"nixo" = "https://search.nixos.org/options?channel=unstable&query={}";
"nixp" = "https://search.nixos.org/packages?channel=unstable&query={}";
"gt" = "https://github.com/search?q={}&type=repositories";
};
quickmarks = {
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/";
office = "https://www.office.com/?auth=2";
teams = "https://teams.microsoft.com/_";
casa = "http://192.168.2.16:8081/#/";
proton = "https://mail.proton.me/u/0/inbox";
cloudflare-one = "https://one.dash.cloudflare.com/";
chatgpt = "https://chat.openai.com/";
nixvim = "https://nix-community.github.io/nixvim/";
hyprland = "https://wiki.hyprland.org/";
nerdfont = "https://www.nerdfonts.com/cheat-sheet";
youtube = "https://youtube.com/";
cloudflare = "https://dash.cloudflare.com/";
};
settings = {
url = {
default_page = "${homepage}/build/index.html";
start_pages = [ "${homepage}/build/index.html" ];
};
colors = {
tabs = {
odd.bg = "#${config.var.theme.colors.bg}";
odd.fg = "#${config.var.theme.colors.fg}";
even.bg = "#${config.var.theme.colors.bg}";
even.fg = "#${config.var.theme.colors.fg}";
selected = {
odd = {
bg = "#${config.var.theme.colors.accent}";
fg = "#${config.var.theme.colors.accentFg}";
};
even = {
bg = "#${config.var.theme.colors.accent}";
fg = "#${config.var.theme.colors.accentFg}";
};
};
indicator = {
error = "#${config.var.theme.colors.c1}";
start = "#${config.var.theme.colors.bgalt}";
stop = "#${config.var.theme.colors.bgalt}";
};
};
hints = {
bg = "#${config.var.theme.colors.bgalt}";
fg = "#${config.var.theme.colors.fgalt}";
match.fg = "#${config.var.theme.colors.bg}";
};
completion = {
category = {
bg = "#${config.var.theme.colors.bg}";
fg = "#${config.var.theme.colors.fg}";
border = {
top = "#${config.var.theme.colors.bg}";
bottom = "#${config.var.theme.colors.bg}";
};
};
odd.bg = "#${config.var.theme.colors.bg}";
even.bg = "#${config.var.theme.colors.bg}";
fg = [ "#FFFFFF" "#FFFFFF" "#FFFFFF" ];
match.fg = "#${config.var.theme.colors.accent}";
item.selected = {
bg = "#${config.var.theme.colors.accent}";
border.top = "#${config.var.theme.colors.accent}";
border.bottom = "#${config.var.theme.colors.accent}";
fg = "#${config.var.theme.colors.accentFg}";
match.fg = "#${config.var.theme.colors.accentFg}";
};
};
statusbar = {
normal.bg = "#${config.var.theme.colors.bg}";
normal.fg = "#${config.var.theme.colors.fg}";
private.bg = "#${config.var.theme.colors.bg}";
private.fg = "#${config.var.theme.colors.fg}";
insert.bg = "#${config.var.theme.colors.accent}";
insert.fg = "#${config.var.theme.colors.accentFg}";
command = {
bg = "#${config.var.theme.colors.bgalt}";
fg = "#${config.var.theme.colors.fgalt}";
private.bg = "#${config.var.theme.colors.bgalt}";
private.fg = "#${config.var.theme.colors.fgalt}";
};
};
messages = {
info = {
bg = "#${config.var.theme.colors.bgalt}";
fg = "#${config.var.theme.colors.fgalt}";
border = "#${config.var.theme.colors.bgalt}";
};
error = {
bg = "#${config.var.theme.colors.c1}";
fg = "#${config.var.theme.colors.fgalt}";
border = "#${config.var.theme.colors.c1}";
};
};
#webpage.darkmode.enabled = true; # Enable dark mode for all websites (Weird on images)
webpage.preferred_color_scheme =
"dark"; # Enable dark mode for websites that support it
};
statusbar.show = "in-mode";
fonts = { default_family = "${config.var.theme.font}"; };
completion = {
height = "30%";
open_categories = [ "history" ];
scrollbar = {
padding = 0;
width = 0;
};
show = "always";
shrink = true;
timestamp_format = "";
web_history.max_items = 7;
};
content = {
autoplay = false;
javascript.clipboard = "access";
javascript.enabled = true;
webgl = true;
pdfjs = true;
};
downloads = {
position = "bottom";
remove_finished = 0;
};
hints = {
border = "none";
radius = 1;
};
scrolling = {
bar = "never";
smooth = true;
};
tabs = {
show = "multiple";
last_close = "close";
mode_on_change = "restore";
close_mouse_button = "right";
};
zoom.default = "100%";
qt.force_software_rendering = "chromium";
};
keyBindings = {
normal = {
"gh" = "open ${homepage}/build/index.html";
"gs" = "open https://home.anotherhadi.com";
" p" = "tab-move -";
" n" = "tab-move +";
" w" = "tab-close";
" 1" = "tab-focus 1";
" 2" = "tab-focus 2";
" 3" = "tab-focus 3";
" 4" = "tab-focus 4";
" 5" = "tab-focus 5";
" 6" = "tab-focus 6";
" 7" = "tab-focus 7";
" 8" = "tab-focus 8";
" 9" = "tab-focus 9";
" 0" = "tab-focus 10";
"<Ctrl-w>" = "tab-close";
"<Ctrl-n>" = "open -w";
"<Ctrl-1>" = "tab-focus 1";
"<Ctrl-2>" = "tab-focus 2";
"<Ctrl-3>" = "tab-focus 3";
"<Ctrl-4>" = "tab-focus 4";
"<Ctrl-5>" = "tab-focus 5";
"<Ctrl-6>" = "tab-focus 6";
"<Ctrl-7>" = "tab-focus 7";
"<Ctrl-8>" = "tab-focus 8";
"<Ctrl-9>" = "tab-focus 9";
"<Ctrl-0>" = "tab-focus 10";
};
command = {
"<Ctrl-w>" = "tab-close";
"<Ctrl-n>" = "open -w";
"<Ctrl-1>" = "tab-focus 1";
"<Ctrl-2>" = "tab-focus 2";
"<Ctrl-3>" = "tab-focus 3";
"<Ctrl-4>" = "tab-focus 4";
"<Ctrl-5>" = "tab-focus 5";
"<Ctrl-6>" = "tab-focus 6";
"<Ctrl-7>" = "tab-focus 7";
"<Ctrl-8>" = "tab-focus 8";
"<Ctrl-9>" = "tab-focus 9";
"<Ctrl-0>" = "tab-focus 10";
};
insert = {
"<Ctrl-w>" = "tab-close";
"<Ctrl-n>" = "open -w";
"<Ctrl-1>" = "tab-focus 1";
"<Ctrl-2>" = "tab-focus 2";
"<Ctrl-3>" = "tab-focus 3";
"<Ctrl-4>" = "tab-focus 4";
"<Ctrl-5>" = "tab-focus 5";
"<Ctrl-6>" = "tab-focus 6";
"<Ctrl-7>" = "tab-focus 7";
"<Ctrl-8>" = "tab-focus 8";
"<Ctrl-9>" = "tab-focus 9";
"<Ctrl-0>" = "tab-focus 10";
};
};
extraConfig = ''
config.unbind("gm")
config.unbind("gd")
config.unbind("gb")
config.unbind("tl")
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)
'';
};
}
@@ -0,0 +1,36 @@
{ config, ... }: {
home.file.".duckduckgo-colorscheme.js".text = ''
// Go to DuckDuckGo settings page, open the console, paste the code and hit enter.
// based on https://ddg.codingcodax.dev/
// Cookies string for your theme
const cookie = '7=${config.var.theme.colors.bg}; j=${config.var.theme.colors.bg}; 9=${config.var.theme.colors.fg}; aa=${config.var.theme.colors.fgalt}; 8=${config.var.theme.colors.c7}; x=${config.var.theme.colors.accent}; 21=${config.var.theme.colors.bgalt};';
// Converts cookie string into formatted JSON
const cookieToJSON = (cookieRaw) => {
const cookieJson = {};
const items = cookieRaw.split(/[ ,]+/);
items.forEach((item) => {
const parts = item.split('=');
cookieJson[parts[0]] = parts[1];
});
return cookieJson;
};
// Iterates over JSON, and adds to browser cookie store
const setCookies = (cookieJson) => {
Object.keys(cookieJson).forEach((key) => {
document.cookie = `''${key}=''${cookieJson [ key ]}`;
});
};
alert('The Nixy theme will be applied.');
// Call set cookies, passing in formated cookie data
setCookies(cookieToJSON(cookie));
// All done, reload page for changes to take effect :)
location.reload();
'';
}
@@ -1,11 +1,11 @@
# Import all shell configurations
{
imports = [
./fzf.nix
./zsh.nix
./starship.nix
./zoxide.nix
./tmux.nix
./lazygit.nix
./eza.nix
./direnv.nix
];
}
@@ -1,15 +1,12 @@
# Eza is a ls replacement
{
programs.zsh.initContent = ''
compdef eza=ls
'';
programs.eza = {
enable = true;
icons = "auto";
icons = true;
extraOptions = [
"--group-directories-first"
"--no-quotes"
"--git-ignore"
"--icons=always"
];
};
+24
View File
@@ -0,0 +1,24 @@
{ config, ... }: {
programs.fzf = {
enable = true;
enableZshIntegration = true;
colors = {
"fg+" = config.var.theme.colors.accentName;
"bg+" = "-1";
"fg" = "white";
"bg" = "-1";
"prompt" = "grey";
"pointer" = config.var.theme.colors.accentName;
};
defaultOptions = [
"--margin=1"
"--layout=reverse"
"--border=rounded"
"--info='hidden'"
"--header=''"
"--prompt='/ '"
"-i"
"--no-bold"
];
};
}
+13
View File
@@ -0,0 +1,13 @@
{ config, ... }: {
programs.lazygit = {
enable = true;
settings = {
gui.theme = {
ligthTheme = false;
activeBorderColor = [ "${config.var.theme.colors.accentName}" "bold" ];
inactiveBorderColor = [ "black" ];
selectedLineBgColor = [ "default" ];
};
};
};
}
+42
View File
@@ -0,0 +1,42 @@
{ config, lib, ... }: {
programs.starship = {
enable = true;
settings = {
add_newline = true;
format = lib.concatStrings [
"$directory"
"$git_branch"
"$git_state"
"$git_status"
"$character"
];
directory = { style = "#${config.var.theme.colors.accent}"; };
character = {
success_symbol = "[](#${config.var.theme.colors.accent})";
error_symbol = "[](red)";
vimcmd_symbol = "[](cyan)";
};
git_branch = {
format = "[$branch]($style)";
style = "bright-black";
};
git_status = {
format =
"[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)";
style = "cyan";
conflicted = "";
renamed = "";
deleted = "";
stashed = "";
};
git_state = {
format = "([$state( $progress_current/$progress_total)]($style)) ";
style = "bright-black";
};
};
};
}
+48
View File
@@ -0,0 +1,48 @@
{ pkgs, ... }: {
programs.tmux = {
enable = true;
mouse = true;
shell = "${pkgs.zsh}/bin/zsh";
prefix = "C-s";
terminal = "kitty";
keyMode = "vi";
extraConfig = ''
bind-key h select-pane -L
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; [
tmuxPlugins.vim-tmux-navigator
{
plugin = tmuxPlugins.catppuccin;
extraConfig = ''
set-option -g status-position top
set -g @catppuccin_window_left_separator ""
set -g @catppuccin_window_right_separator " "
set -g @catppuccin_window_middle_separator " "
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_default_fill "number"
set -g @catppuccin_window_default_text "#W"
set -g @catppuccin_window_current_fill "number"
set -g @catppuccin_window_current_text "#W"
set -g @catppuccin_status_modules_right ""
set -g @catppuccin_status_left_separator " "
set -g @catppuccin_status_right_separator ""
set -g @catppuccin_status_fill "icon"
set -g @catppuccin_status_connect_separator "no"
set -g @catppuccin_directory_text "#{pane_current_path}"
set -g @catppuccin_status_background "default"
set-option -g default-terminal "screen-256color"
'';
}
];
};
}
+6
View File
@@ -0,0 +1,6 @@
{
programs.zoxide = {
enable= true;
enableZshIntegration = true;
};
}
+73
View File
@@ -0,0 +1,73 @@
{ pkgs, lib, config, ... }: {
home.packages = with pkgs; [ bat ripgrep tldr ];
home.sessionPath = [ "$HOME/go/bin" ];
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
historySubstringSearch.enable = true;
initExtraFirst = ''
bindkey -e
${if config.var.theme.fetch == "neofetch" then
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
""}
'';
history = {
ignoreDups = true;
save = 1000000;
size = 1000000;
};
profileExtra = lib.optionalString (config.home.sessionPath != [ ]) ''
export PATH="$PATH''${PATH:+:}${
lib.concatStringsSep ":" config.home.sessionPath
}"
'';
shellAliases = {
vim = "nvim";
vi = "nvim";
v = "nvim";
c = "clear";
clera = "clear";
celar = "clear";
e = "exit";
cd = "z";
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";
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";
gc = "git commit";
gcm = "git commit -m";
gcu = "git add . && git commit -m 'Update'";
gp = "git push";
gpl = "git pull";
gs = "git status";
gd = "git diff";
gco = "git checkout";
gcb = "git checkout -b";
gbr = "git branch";
};
};
}
+41
View File
@@ -0,0 +1,41 @@
{ pkgs, config, lib, inputs, ... }:
let spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in {
imports = [ inputs.spicetify-nix.homeManagerModules.default ];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ "spotify" ];
programs.spicetify = {
enable = true;
theme = spicePkgs.themes.text;
colorScheme = "custom";
customColorScheme = {
text = "${config.var.theme.colors.fg}";
subtext = "${config.var.theme.colors.fgalt}";
sidebar-text = "${config.var.theme.colors.fgalt}";
main = "${config.var.theme.colors.bg}";
sidebar = "${config.var.theme.colors.bg}";
background = "${config.var.theme.colors.bg}";
player = "${config.var.theme.colors.bg}";
card = "${config.var.theme.colors.bg}";
shadow = "000000";
selected-row = "${config.var.theme.colors.bgalt}";
button = "${config.var.theme.colors.accent}";
button-active = "${config.var.theme.colors.accent}";
button-disabled = "${config.var.theme.colors.bgalt}";
tab-active = "${config.var.theme.colors.accent}";
misc = "${config.var.theme.colors.fgalt}";
};
enabledExtensions = with spicePkgs.extensions; [
playlistIcons
lastfm
historyShortcut
hidePodcasts
adblock
fullAppDisplay
shuffle
];
};
}
-119
View File
@@ -1,119 +0,0 @@
{
pkgs,
config,
...
}: let
c = config.lib.stylix.colors;
# TODO: Waiting for a version in nixpkgs
version = "1.11.2";
sources = {
"x86_64-linux" = {
url = "https://github.com/elio-fm/elio/releases/download/v${version}/elio-${version}-x86_64-unknown-linux-gnu.tar.gz";
hash = "sha256-9cW/xUA9p0LEYI3/j4MGPVZvcyJpV1JYKYBuHur4sTM=";
};
"aarch64-linux" = {
url = "https://github.com/elio-fm/elio/releases/download/v${version}/elio-${version}-aarch64-unknown-linux-gnu.tar.gz";
hash = "sha256-zg141Dp+jHwAqzoaCNvOoC7ZFeAX+cO8HZF5W7wz1Qs=";
};
};
source =
sources.${pkgs.stdenv.hostPlatform.system}
or (throw "elio: unsupported platform ${pkgs.stdenv.hostPlatform.system}");
elio = pkgs.stdenv.mkDerivation {
pname = "elio";
inherit version;
src = pkgs.fetchurl {inherit (source) url hash;};
nativeBuildInputs = [pkgs.autoPatchelfHook];
buildInputs = [pkgs.stdenv.cc.cc.lib];
installPhase = ''
runHook preInstall
install -Dm755 elio -t $out/bin
for size in 48 128 256 512; do
install -Dm644 \
"packaging/linux/icons/hicolor/''${size}x''${size}/apps/elio.png" \
"$out/share/icons/hicolor/''${size}x''${size}/apps/elio.png"
done
install -Dm644 packaging/linux/elio.desktop -t $out/share/applications
runHook postInstall
'';
meta = {
description = "Terminal file manager";
homepage = "https://github.com/elio-fm/elio";
license = pkgs.lib.licenses.mit;
mainProgram = "elio";
platforms = builtins.attrNames sources;
sourceProvenance = [pkgs.lib.sourceTypes.binaryNativeCode];
};
};
in {
home.packages = [elio];
xdg.desktopEntries.elio = {
name = "elio";
exec = "${pkgs.ghostty}/bin/ghostty +new-window -e ${elio}/bin/elio %f";
terminal = false;
icon = "elio";
mimeType = ["inode/directory"];
categories = ["System" "FileManager" "FileTools" "ConsoleOnly"];
};
xdg.configFile."elio/theme.toml".text = ''
[palette]
bg = "#${c.base00}"
chrome = "#${c.base01}"
chrome_alt = "#${c.base01}"
chip_text = "#${c.base00}"
panel = "#${c.base00}"
panel_alt = "#${c.base00}"
surface = "#${c.base02}"
elevated = "#${c.base02}"
border = "#${c.base03}"
text = "#${c.base05}"
muted = "#${c.base04}"
accent = "#${c.base0D}"
accent_soft = "#${c.base02}"
accent_text = "#${c.base06}"
selected_bg = "#${c.base02}"
selected_border = "#${c.base0D}"
selection_bar = "#${c.base09}"
yank_bar = "#${c.base0B}"
cut_bar = "#${c.base08}"
progress_bar = "#${c.base0D}"
grid_selection_band = "#${c.base02}"
grid_yank_band = "#${c.base01}"
grid_cut_band = "#${c.base01}"
sidebar_active = "#${c.base02}"
button_bg = "#${c.base01}"
button_disabled_bg = "#${c.base01}"
path_bg = "#${c.base00}"
[preview.code]
fg = "#${c.base05}"
bg = "#${c.base01}"
selection_bg = "#${c.base02}"
selection_fg = "#${c.base06}"
caret = "#${c.base0C}"
line_highlight = "#${c.base01}"
line_number = "#${c.base03}"
comment = "#${c.base03}"
string = "#${c.base0B}"
constant = "#${c.base09}"
keyword = "#${c.base0E}"
function = "#${c.base0D}"
type = "#${c.base0A}"
parameter = "#${c.base08}"
tag = "#${c.base0C}"
operator = "#${c.base0C}"
macro = "#${c.base0F}"
invalid = "#${c.base08}"
'';
}
-40
View File
@@ -1,40 +0,0 @@
# Ghostty is a terminal emulator
{
pkgs,
config,
...
}: let
cursorShaders = pkgs.fetchFromGitHub {
owner = "sahaj-b";
repo = "ghostty-cursor-shaders";
rev = "06d4e90fb5410e9c4d0b3131584060adddf89406";
hash = "sha256-G/UIr1bKnxn1AcHl/4FL/jou6b7M2VeREslYVELxdmw=";
};
c = config.lib.stylix.colors;
in {
home.sessionVariables = {
TERMINAL = "ghostty";
TERM = "ghostty";
};
programs.ghostty = {
enable = true;
installVimSyntax = true;
enableZshIntegration = true;
settings = {
window-padding-x = 10;
confirm-close-surface = false;
window-padding-y = 10;
gtk-single-instance = true;
clipboard-read = "allow";
clipboard-write = "allow";
copy-on-select = "clipboard";
app-notifications = false;
custom-shader = "${cursorShaders}/cursor_warp.glsl";
custom-shader-animation = "always";
keybind = [
"shift+ctrl+tab=new_tab"
];
};
};
}
-53
View File
@@ -1,53 +0,0 @@
# Git configuration
{config, ...}: let
username = config.var.git.username;
email = config.var.git.email;
in {
programs.git = {
enable = true;
ignores = [
".cache/"
".DS_Store"
".idea/"
"*.swp"
"*.elc"
"auto-save-list"
".direnv/"
"node_modules"
"result"
"result-*"
".superpowers/"
".claude/"
"docs/superpowers/"
];
settings = {
user.name = username;
user.email = email;
init.defaultBranch = "main";
pull.rebase = "false";
push.autoSetupRemote = true;
color.ui = "1";
alias = {
essa = "push --force";
co = "checkout";
fuck = "commit --amend -m";
c = "commit -m";
ca = "commit -am";
forgor = "commit --amend --no-edit";
graph = "log --all --decorate --graph --oneline";
oops = "checkout --";
l = "log";
r = "rebase";
s = "status --short";
ss = "status";
d = "diff";
ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)";
pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)";
st = "status";
br = "branch";
hist = ''log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all'';
llog = ''log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative'';
};
};
};
}
-38
View File
@@ -1,38 +0,0 @@
# Lazygit is a simple terminal UI for git commands.
{
config,
lib,
...
}: let
accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}";
in {
programs.lazygit = {
enable = true;
settings = lib.mkForce {
disableStartupPopups = true;
notARepository = "skip";
promptToReturnFromSubprocess = false;
update.method = "never";
git = {
commit.signOff = true;
overrideGpg = true;
parseEmoji = true;
};
gui = {
theme = {
activeBorderColor = [
accent
"bold"
];
inactiveBorderColor = [muted];
};
showListFooter = false;
showRandomTip = false;
showCommandLog = false;
showBottomLine = false;
nerdFontsVersion = "3";
};
};
};
}
-15
View File
@@ -1,15 +0,0 @@
# This file is used to sign git commits using an SSH key.
{
# CHANGEME: change this to your own SSH key.
home.file.".ssh/allowed_signers".text = "* ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIINhWby7lUUXQNKbRu9/UOrGjWDf3fvoAwGHomWv/+lL";
programs.git = {
signing.format = "openpgp";
settings = {
commit.gpgsign = true;
gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers";
gpg.format = "ssh";
user.signingkey = "~/.ssh/key.pub";
};
};
}
-23
View File
@@ -1,23 +0,0 @@
{config, ...}: let
c = config.lib.stylix.colors;
in {
home.file.".config/ilovetui/config.yaml".text = ''
colors:
base00: "#${c.base00}" # Background
base01: "#${c.base01}" # Lighter Background / Status Bars
base02: "#${c.base02}" # Selection Background
base03: "#${c.base03}" # Comments / Invisibles
base04: "#${c.base04}" # Dark Foreground / Status Bars
base05: "#${c.base05}" # Default Foreground
base06: "#${c.base06}" # Light Foreground
base07: "#${c.base07}" # Light Background
base08: "#${c.base08}" # Variables / Errors / Diff Deleted
base09: "#${c.base09}" # Integers / Constants / Booleans
base0a: "#${c.base0A}" # Classes / Warnings / Search Background
base0b: "#${c.base0B}" # Strings / Success / Diff Inserted
base0c: "#${c.base0C}" # Support / Regex / Escape Characters
base0d: "#${c.base0D}" # Functions / Methods / Headings / Accent
base0e: "#${c.base0E}" # Keywords / Storage / Diff Changed
base0f: "#${c.base0F}" # Embedded / Misc
'';
}
-5
View File
@@ -1,5 +0,0 @@
{inputs, ...}: {
imports = [inputs.nix-index-database.homeModules.default];
programs.nix-index.enable = true;
programs.nix-index-database.comma.enable = true;
}
-31
View File
@@ -1,31 +0,0 @@
# - ## Nixy
#-
#- Nixy is a simple script that I use to manage my NixOS system. It's a simple script that provides a menu to rebuild, test, update, collect garbage, clean boot menu, etc.
#-
#- - `nixy` - UI wizard to manage the system.
#- - `nixy rebuild` - Rebuild the system.
#- - `nixy ...` - ... see the script for more commands.
{
config,
lib,
pkgs,
...
}: {
options.programs.nixy = {
enable = lib.mkEnableOption "nixy";
configDirectory = lib.mkOption {
type = lib.types.str;
default = "$HOME/.config/nixos";
description = "Path to the NixOS configuration directory";
};
};
config = lib.mkIf config.programs.nixy.enable {
home.packages = [
(import ./package.nix {
inherit pkgs;
inherit (config.programs.nixy) configDirectory;
})
];
};
}
-14
View File
@@ -1,14 +0,0 @@
{
pkgs,
system,
...
}: {
packages.${system}.nixy = import ./package.nix {
inherit pkgs;
configDirectory = "$HOME/.config/nixos";
};
homeManagerModules.nixy = {
imports = [./default.nix];
};
}
-69
View File
@@ -1,69 +0,0 @@
{
pkgs,
configDirectory,
}:
pkgs.writeShellScriptBin "nixy"
# bash
''
EXTRA_ARGS="''${@:2}"
function exec() {
$@
}
function ui(){
DEFAULT_ICON="󰘳"
# "icon;name;command"[]
apps=(
"󰑓;Rebuild;nixy rebuild"
"󰐊;Test;nixy test"
"󰚰;Update;nixy update"
";Collect Garbage;nixy gc"
"󰍜;Clean Boot Menu;nixy cb"
";List generation;nixy listgen"
)
# 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 $?
}
[[ $1 == "" ]] && ui
if [[ $1 == "rebuild" ]];then
cd ${configDirectory} && git add . && sudo nixos-rebuild switch --flake . $EXTRA_ARGS
elif [[ $1 == "test" ]];then
cd ${configDirectory} && git add . && sudo nixos-rebuild test --flake . $EXTRA_ARGS
elif [[ $1 == "update" ]];then
cd ${configDirectory} && nix flake update $EXTRA_ARGS
elif [[ $1 == "gc" ]];then
echo "Starting Nix garbage collection..."
cd ${configDirectory} && \
echo "Cleaning up system garbage..." && \
sudo nix-collect-garbage -d && \
echo "Cleaning up user garbage..." && \
nix-collect-garbage -d && \
echo "Collecting garbage from Nix store..." && \
nix-store --gc && \
echo "Optimizing Nix store..." && \
nix-store --optimise
echo "Nix garbage collection complete."
elif [[ $1 == "cb" ]];then
sudo /run/current-system/bin/switch-to-configuration boot
elif [[ $1 == "listgen" ]];then
sudo nix-env -p /nix/var/nix/profiles/system --list-generations
else
echo "Unknown argument"
fi
''
-38
View File
@@ -1,38 +0,0 @@
{
config,
lib,
...
}: {
home.sessionVariables = {
EDITOR = "nvim";
VISUAL = "nvim";
};
programs.nvf = {
enable = true;
settings = {
vim.luaConfigRC = lib.mkIf (config ? stylix && config.stylix.enable) {
hl-overrides = let
c = config.lib.stylix.colors;
in ''
local function apply_hl()
vim.api.nvim_set_hl(0, "MiniStarterHeader", { fg = "#${c.base0D}", bold = true })
vim.api.nvim_set_hl(0, "SnacksPickerBorder", { fg = "#${c.base0D}" })
vim.api.nvim_set_hl(0, "SnacksPickerTitle", { fg = "#${c.base0D}", bold = true })
end
apply_hl()
vim.api.nvim_create_autocmd("ColorScheme", { pattern = "*", callback = apply_hl })
'';
};
imports = [
./options.nix
./languages.nix
./picker.nix
./snacks.nix
./keymaps.nix
./utils.nix
./mini.nix
];
};
};
}
-133
View File
@@ -1,133 +0,0 @@
{
"nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1777699697,
"narHash": "sha256-Eg9b/rq/ECYwNwEXs5i9wHyhxNI0JrYx2srdI2uZMaQ=",
"ref": "refs/heads/main",
"rev": "382052b74656a369c5408822af3f2501e9b1af81",
"revCount": 94,
"type": "git",
"url": "https://git.lix.systems/lix-project/flake-compat.git"
},
"original": {
"type": "git",
"url": "https://git.lix.systems/lix-project/flake-compat.git"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nvf",
"nixpkgs"
]
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"mnw": {
"locked": {
"lastModified": 1780772958,
"narHash": "sha256-VKKe8r4pwCGWZ3Yr9CPN129R4S3CKLSrlYqdYz3vKpM=",
"owner": "Gerg-L",
"repo": "mnw",
"rev": "0871dbf63a53610c95db04439ed8ea4d6ec9c160",
"type": "github"
},
"original": {
"owner": "Gerg-L",
"repo": "mnw",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1785133411,
"narHash": "sha256-Yjv0WEg39KRYS0rBdTbu6Fc/or/ihAKk13W9sQ6VWd0=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2f5a153c270b70cb0f8c11f46d96d6d3bc39f4e3",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1781216227,
"narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nvf": {
"inputs": {
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"mnw": "mnw",
"nixpkgs": "nixpkgs_2",
"systems": "systems"
},
"locked": {
"lastModified": 1781997110,
"narHash": "sha256-6D6xtYN5t1kZGNd69eMZsRBkgX5Df1roErn/kFR1C+A=",
"owner": "notashelf",
"repo": "nvf",
"rev": "320f60b97075a58d38b90fc5e39f478421dbd38a",
"type": "github"
},
"original": {
"owner": "notashelf",
"repo": "nvf",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"nvf": "nvf"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
-57
View File
@@ -1,57 +0,0 @@
{
description = "Hadi's NVF Neovim configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
nvf.url = "github:notashelf/nvf";
};
outputs = {
self,
nixpkgs,
nvf,
...
}: let
systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin"];
forAllSystems = f: nixpkgs.lib.genAttrs systems f;
modules = [
./options.nix
./languages.nix
./picker.nix
./snacks.nix
./keymaps.nix
./utils.nix
./mini.nix
];
in {
packages = forAllSystems (system: let
pkgs = nixpkgs.legacyPackages.${system};
nvim = (nvf.lib.neovimConfiguration {inherit pkgs modules;}).neovim;
in {
inherit nvim;
default = nvim;
});
apps = forAllSystems (system: let
nvim = {
type = "app";
program = "${self.packages.${system}.nvim}/bin/nvim";
};
in {
inherit nvim;
default = nvim;
});
homeManagerModules = rec {
nvim = {
imports = [
nvf.homeManagerModules.default
./default.nix
];
};
default = nvim;
};
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
};
}
-327
View File
@@ -1,327 +0,0 @@
{
vim = {
globals.mapleader = " ";
keymaps = [
{
key = "s";
mode = "n";
silent = true;
action = "<cmd>lua MiniJump2d.start(MiniJump2d.builtin_opts.single_character)<cr>";
desc = "Jump2d";
}
{
key = "K";
mode = "n";
silent = true;
action = "<cmd>lua vim.lsp.buf.hover()<cr>";
desc = "LSP Hover";
}
{
key = "<C-tab>";
mode = "n";
silent = true;
action = "<cmd>bnext<cr>";
desc = "Next Buffer";
}
# Format
{
key = "<leader>lf";
mode = "n";
silent = true;
action = "<cmd>lua require('conform').format({ async = true, lsp_format = 'fallback' })<cr>";
desc = "Format file";
}
# Terminal
{
key = "<leader>tt";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.terminal.toggle()<cr>";
desc = "Toggle terminal";
}
{
key = "<leader>tf";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.terminal.toggle(nil, { style = 'float' })<cr>";
desc = "Toggle terminal (float)";
}
{
key = "<leader>tg";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.lazygit()<cr>";
desc = "Lazygit";
}
{
key = "<leader>ts";
mode = "v";
silent = true;
action = ":<C-u>SttrTransform<CR>";
desc = "String Transform";
}
{
key = "<leader>tj";
mode = "n";
silent = true;
action = ":JwtTui<CR>";
desc = "JWT TUI";
}
{
key = "<leader>tj";
mode = "v";
silent = true;
action = ":<C-u>JwtTuiOpen<CR>";
desc = "JWT TUI";
}
# UI
{
key = "<leader>uw";
mode = "n";
silent = true;
action = "<cmd>set wrap!<cr>";
desc = "Toggle word wrapping";
}
{
key = "<leader>ul";
mode = "n";
silent = true;
action = "<cmd>set linebreak!<cr>";
desc = "Toggle linebreak";
}
{
key = "<leader>us";
mode = "n";
silent = true;
action = "<cmd>set spell!<cr>";
desc = "Toggle spell check";
}
{
key = "<leader>uc";
mode = "n";
silent = true;
action = "<cmd>set cursorline!<cr>";
desc = "Toggle cursorline";
}
{
key = "<leader>un";
mode = "n";
silent = true;
action = "<cmd>set number!<cr>";
desc = "Toggle line numbers";
}
{
key = "<leader>ur";
mode = "n";
silent = true;
action = "<cmd>set relativenumber!<cr>";
desc = "Toggle relative line numbers";
}
{
key = "<leader>ut";
mode = "n";
silent = true;
action = "<cmd>set showtabline=2<cr>";
desc = "Show tabline";
}
{
key = "<leader>uT";
mode = "n";
silent = true;
action = "<cmd>set showtabline=0<cr>";
desc = "Hide tabline";
}
# Todos
{
key = "<leader>xt";
mode = "n";
silent = true;
action = "<cmd>TodoTrouble<cr>";
desc = "Todo (Trouble)";
}
# Shell
{
key = "<leader>!";
mode = "n";
silent = true;
lua = true;
desc = "Insert command output";
action = ''
function()
local cmd = vim.fn.input("Command: ")
if cmd == "" then return end
local lines = vim.fn.systemlist(cmd)
while #lines > 0 and lines[#lines] == "" do
table.remove(lines)
end
if #lines == 0 then return end
vim.api.nvim_put(lines, "l", true, true)
end
'';
}
{
key = "<leader>!";
mode = "v";
silent = true;
lua = true;
desc = "Run command with selection";
action = ''
function()
local start_line = vim.fn.line("'<")
local end_line = vim.fn.line("'>")
local lines = vim.api.nvim_buf_get_lines(0, start_line - 1, end_line, false)
local input_text = table.concat(lines, "\n")
local cmd = vim.fn.input("$ ")
if cmd == "" then return end
local result = vim.fn.system({"bash", "-c", cmd}, input_text)
local output = vim.split(result, "\n", { plain = true })
if output[#output] == "" then table.remove(output) end
if #output == 0 then return end
vim.api.nvim_buf_set_lines(0, start_line - 1, end_line, false, output)
end
'';
}
# QOL
{
key = ">";
mode = "v";
silent = true;
action = ">gv";
desc = "Indent and keep selection";
}
{
key = "<";
mode = "v";
silent = true;
action = "<gv";
desc = "Dedent and keep selection";
}
# Move
{
key = "<C-h>";
mode = "n";
silent = true;
action = "<C-w>h";
desc = "Move to left window";
}
{
key = "<C-j>";
mode = "n";
silent = true;
action = "<C-w>j";
desc = "Move to bottom window";
}
{
key = "<C-k>";
mode = "n";
silent = true;
action = "<C-w>k";
desc = "Move to top window";
}
{
key = "<C-l>";
mode = "n";
silent = true;
action = "<C-w>l";
desc = "Move to right window";
}
# Save
{
key = "<C-s>";
mode = [
"n"
"i"
"v"
];
silent = true;
action = "<cmd>w<cr>";
desc = "Save file";
}
# Deactivate "esc"
{
key = "<Esc>";
mode = [
"n"
"i"
"v"
];
silent = true;
action = "<Nop>";
desc = "Disable Escape";
}
# Disable Arrow Keys in Normal Mode and Middle click
{
key = "<Up>";
mode = "n";
silent = true;
action = "<Nop>";
desc = "Disable Up Arrow";
}
{
key = "<Down>";
mode = "n";
silent = true;
action = "<Nop>";
desc = "Disable Down Arrow";
}
{
key = "<Left>";
mode = "n";
silent = true;
action = "<Nop>";
desc = "Disable Left Arrow";
}
{
key = "<Right>";
mode = "n";
silent = true;
action = "<Nop>";
desc = "Disable Right Arrow";
}
{
key = "<MiddleMouse>";
mode = [
"n"
"i"
"v"
];
action = "<nop>";
silent = true;
}
{
key = "<2-MiddleMouse>";
mode = [
"n"
"i"
"v"
];
action = "<nop>";
silent = true;
}
{
key = "<3-MiddleMouse>";
mode = [
"n"
"i"
"v"
];
action = "<nop>";
silent = true;
}
];
};
}
-117
View File
@@ -1,117 +0,0 @@
{pkgs, ...}: {
vim = {
diagnostics = {
enable = true;
config = {
signs = {
text = {
"vim.diagnostic.severity.Error" = " ";
"vim.diagnostic.severity.Warn" = " ";
"vim.diagnostic.severity.Hint" = " ";
"vim.diagnostic.severity.Info" = " ";
};
};
underline = true;
update_in_insert = true;
virtual_text = true;
};
nvim-lint = {
enable = true;
};
};
treesitter = {
enable = true;
autotagHtml = true;
context.enable = true;
highlight.enable = true;
textobjects.enable = true;
grammars = [pkgs.vimPlugins.nvim-treesitter.grammarPlugins.http];
};
lsp = {
enable = true;
presets = {
tailwindcss-language-server = {
enable = true;
};
};
trouble.enable = true;
lspSignature.enable = true;
lspconfig.enable = true;
formatOnSave = false;
mappings.format = null;
inlayHints.enable = true;
servers.nil.settings.nix.autoArchive = true;
otter-nvim = {
enable = true;
setupOpts = {
buffers.set_filetype = true;
lsp = {
diagnostic_update_event = [
"BufWritePost"
"InsertLeave"
];
};
};
};
lspkind.enable = true;
lspsaga = {
enable = true;
setupOpts = {
ui = {
code_action = "";
};
lightbulb = {
sign = false;
virtual_text = true;
};
symbol_in_winbar.enable = false;
};
};
};
languages = {
enableExtraDiagnostics = true;
enableFormat = true;
enableTreesitter = true;
python = {
enable = true;
lsp = {
enable = true;
servers = ["pyright"];
};
};
astro.enable = true;
go.enable = true;
markdown = {
enable = true;
format.type = ["prettierd"];
extensions = {
markview-nvim = {
enable = true;
setupOpts = {
preview = {
hybrid_modes = ["n"];
};
};
};
};
extraDiagnostics.enable = true;
};
typescript.enable = true;
css.enable = true;
svelte.enable = true;
html.enable = true;
bash.enable = true;
nix.enable = true;
lua.enable = true;
};
formatter = {
conform-nvim = {
enable = true;
setupOpts.format_on_save = {
lsp_format = "fallback";
};
};
};
};
}
-99
View File
@@ -1,99 +0,0 @@
{lib, ...}: {
vim.luaConfigRC.mini-clue = ''
local miniclue = require('mini.clue')
miniclue.setup({
triggers = {
{ mode = 'n', keys = '<Leader>' },
{ mode = 'x', keys = '<Leader>' },
{ mode = 'n', keys = 'g' },
{ mode = 'x', keys = 'g' },
{ mode = 'n', keys = "'" },
{ mode = 'n', keys = '`' },
{ mode = 'n', keys = '"' },
{ mode = 'i', keys = '<C-r>' },
{ mode = 'c', keys = '<C-r>' },
{ mode = 'n', keys = '<C-w>' },
{ mode = 'n', keys = 'z' },
},
clues = {
miniclue.gen_clues.g(),
miniclue.gen_clues.marks(),
miniclue.gen_clues.registers(),
miniclue.gen_clues.windows({ submode_resize = true }),
miniclue.gen_clues.z(),
{ mode = 'n', keys = '<Leader>f', desc = '+find' },
{ mode = 'n', keys = '<Leader>s', desc = '+search' },
{ mode = 'n', keys = '<Leader>t', desc = '+tools' },
{ mode = 'n', keys = '<Leader>u', desc = '+ui' },
{ mode = 'n', keys = '<Leader>l', desc = '+lsp' },
{ mode = 'n', keys = '<Leader>x', desc = '+trouble' },
{ mode = 'n', keys = '<Leader>!', desc = 'shell' },
{ mode = 'v', keys = '<Leader>!', desc = 'shell' },
},
window = { delay = 300 },
})
'';
vim.mini = {
ai.enable = true;
starter = {
enable = true;
setupOpts = {
header = ''
'';
footer = "";
items = [
{
name = "files";
action = lib.mkLuaInline "function() Snacks.picker.files() end";
section = "";
}
{
name = "directories";
action = lib.mkLuaInline "function() Snacks.explorer() end";
section = "";
}
{
name = "tmp";
action = lib.mkLuaInline ''
function()
local uuid = vim.fn.system("uuidgen"):match("(%S+)")
vim.cmd("edit /tmp/" .. uuid .. ".md")
end
'';
section = "";
}
{
name = "recent";
action = lib.mkLuaInline "function() Snacks.picker.recent() end";
section = "";
}
];
};
};
comment.enable = true;
icons.enable = true;
indentscope.enable = true;
pairs.enable = true;
diff.enable = true;
git.enable = true;
jump2d.enable = true;
statusline.enable = true;
clue.enable = true;
surround.enable = true;
};
}
-45
View File
@@ -1,45 +0,0 @@
{lib, ...}: {
vim = {
viAlias = false;
vimAlias = true;
withNodeJs = true;
options = {
autoindent = true;
smartindent = true;
shiftwidth = 2;
foldlevel = 99;
foldcolumn = "auto:1";
mousescroll = "ver:1,hor:1";
mousemoveevent = true;
fillchars = "eob:,fold: ,foldopen:,foldsep:,foldclose:";
signcolumn = "yes";
tabstop = 2;
softtabstop = 2;
wrap = false;
};
globals.navic_silence = true;
clipboard = {
enable = true;
registers = "unnamedplus";
};
luaConfigRC.osc52-clipboard = ''
vim.g.clipboard = {
name = 'OSC 52',
copy = {
['+'] = require('vim.ui.clipboard.osc52').copy '+',
['*'] = require('vim.ui.clipboard.osc52').copy '*',
},
paste = {
['+'] = require('vim.ui.clipboard.osc52').paste '+',
['*'] = require('vim.ui.clipboard.osc52').paste '*',
},
}
'';
theme = {
enable = true;
name = lib.mkForce "catppuccin";
style = lib.mkForce "mocha";
transparent = lib.mkForce true;
};
};
}
-162
View File
@@ -1,162 +0,0 @@
{
vim = {
utility = {
snacks-nvim = {
setupOpts = {
picker.enabled = true;
explorer.enabled = true;
};
};
};
keymaps = [
# Top Pickers & Explorer
{
key = "<leader> ";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.smart()<cr>";
desc = "Smart Find Files";
}
{
key = "<leader>e";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.explorer()<cr>";
desc = "File Explorer";
}
{
key = "<leader>/";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.lines()<cr>";
desc = "Buffer Lines";
}
# Find
{
key = "<leader>fb";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.buffers()<cr>";
desc = "Buffers";
}
{
key = "<leader>ff";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.files()<cr>";
desc = "Find Files";
}
{
key = "<leader>fp";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.projects()<cr>";
desc = "Projects";
}
{
key = "<leader>fr";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.recent()<cr>";
desc = "Recent";
}
{
key = "<leader>f:";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.command_history()<cr>";
desc = "Command History";
}
{
key = "<leader>fn";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.notifications()<cr>";
desc = "Notification History";
}
# Grep
{
key = "<leader>sg";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.grep()<cr>";
desc = "Grep";
}
{
key = "<leader>st";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.todo_comments()<cr>";
desc = "Todos";
}
{
key = "<leader>sw";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.grep_word()<cr>";
desc = "Visual selection or word";
}
{
key = "<leader>sr";
mode = "n";
silent = true;
action = "<cmd>nohlsearch<cr>";
desc = "Reset search";
}
# LSP
{
key = "gd";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.lsp_definitions()<cr>";
desc = "Goto Definition";
}
{
key = "gD";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.lsp_declarations()<cr>";
desc = "Goto Declaration";
}
{
key = "gr";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.lsp_references()<cr>";
desc = "References";
nowait = true;
}
{
key = "gI";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.lsp_implementations()<cr>";
desc = "Goto Implementation";
}
{
key = "gy";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.lsp_type_definitions()<cr>";
desc = "Goto Type Definition";
}
{
key = "<leader>ss";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.lsp_symbols()<cr>";
desc = "LSP Symbols";
}
{
key = "<leader>sS";
mode = "n";
silent = true;
action = "<cmd>lua Snacks.picker.lsp_workspace_symbols()<cr>";
desc = "LSP Workspace Symbols";
}
];
};
}

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