358 Commits

Author SHA1 Message Date
Hadi 446e610c59 update
Former-commit-id: 80f8ca3e9a
2024-06-25 22:20:17 +02:00
Hadi 894e9872c3 Update
Former-commit-id: c618feced4
2024-06-25 21:57:24 +02:00
Hadi f00d34f38b Update
Former-commit-id: 6f6c8bebf7
2024-06-25 18:10:20 +02:00
Hadi 93395308a0 Update
Former-commit-id: 6d0855ce44
2024-06-25 18:02:38 +02:00
Hadi 3fcd3c316f update
Former-commit-id: 32af0cf534
2024-06-25 11:57:53 +02:00
Hadi 07a2b77f84 init keybindings.md
Former-commit-id: 0b4f2d6970
2024-06-25 11:47:15 +02:00
Hadi 1a28823b3b install script test
Former-commit-id: b4947a61c5
2024-06-25 11:39:34 +02:00
Hadi 597afc0b39 up
Former-commit-id: 4e5cdbbac5
2024-06-25 09:49:11 +02:00
Hadi 540636df16 version pull
Former-commit-id: c0a0afd077
2024-06-25 09:26:10 +02:00
Hadi 1c8b68182a Update TODO.md
Former-commit-id: e047f99306
2024-06-24 22:31:49 +02:00
Hadi dee40034cd rearrange folders
Former-commit-id: fbb6fe70ff
2024-06-24 21:18:20 +02:00
Hadi cb347c715b Change notification system
Former-commit-id: 3b84f735ee
2024-06-24 21:13:22 +02:00
Hadi 0e683e111f Fix
Former-commit-id: 1cdfe8e278
2024-06-24 20:44:09 +02:00
Hadi ceb8e98fbf Update TODO.md
Former-commit-id: 1eb830a97c
2024-06-24 16:37:59 +02:00
Hadi da50226d9f todo update
Former-commit-id: ec924af562
2024-06-24 14:35:46 +02:00
Hadi 3ba87d750f update
Former-commit-id: 5d47643320
2024-06-24 11:05:38 +02:00
Hadi 2cab0e6903 Update
Former-commit-id: 282c04af67
2024-06-24 00:40:05 +02:00
Hadi 846e83545f Update
Former-commit-id: 7397237149
2024-06-24 00:33:36 +02:00
Hadi 14b568ae7d Update
Former-commit-id: 1a4ff5e542
2024-06-24 00:17:07 +02:00
Hadi 1fc8bce262 Update
Former-commit-id: 0cec3f04d2
2024-06-24 00:12:53 +02:00
Hadi 16f8d6d8b3 Update
Former-commit-id: 87ae5dd36f
2024-06-24 00:10:35 +02:00
Hadi ae337d1631 update
Former-commit-id: 2e31e74d92
2024-06-23 23:51:07 +02:00
Hadi c9959e4715 update
Former-commit-id: 0922357af2
2024-06-23 23:47:31 +02:00
Hadi 26fd7e8775 update
Former-commit-id: 1d298c60d5
2024-06-23 23:43:47 +02:00
Hadi 1819e78c0b update
Former-commit-id: d5aa5b1a49
2024-06-23 23:32:18 +02:00
Hadi e26a6eb442 update
Former-commit-id: 469f903657
2024-06-23 20:11:35 +02:00
Hadi 4cc072fa14 update
Former-commit-id: ae95a1b457
2024-06-23 20:10:15 +02:00
Hadi 46436db4a5 update
Former-commit-id: 101712c8bb
2024-06-23 19:59:53 +02:00
Hadi 1e0f379981 update
Former-commit-id: 5dce9af547
2024-06-23 19:54:21 +02:00
Hadi 2027dd0cd1 update
Former-commit-id: d215570fea
2024-06-23 18:35:16 +02:00
Hadi 59be989faa update
Former-commit-id: aa7801b04f
2024-06-23 18:32:04 +02:00
Hadi fadb6fcfd8 update
Former-commit-id: d1789906a2
2024-06-23 18:28:15 +02:00
Hadi 988f7a68db update
Former-commit-id: a4f74f5fe7
2024-06-23 18:26:25 +02:00
Hadi 60ef1c61f2 update
Former-commit-id: afd56d878e
2024-06-23 18:24:30 +02:00
Hadi a70bb23316 update
Former-commit-id: 12ebcadd71
2024-06-23 17:53:09 +02:00
Hadi 186d1c69de update
Former-commit-id: c5420f8d3a
2024-06-23 17:52:19 +02:00
Hadi 90f0adb29e Update
Former-commit-id: f8786dd24f
2024-06-23 17:32:18 +02:00
Hadi 11a12e6ca6 Update
Former-commit-id: caee38f568
2024-06-23 15:48:52 +02:00
Hadi ec1c7f1dc6 Update
Former-commit-id: 487d81ff86
2024-06-23 15:14:29 +02:00
Hadi e8f3660561 Update
Former-commit-id: 4046038cf2
2024-06-23 14:53:23 +02:00
Hadi 173c2f89fc Update
Former-commit-id: e9a5a9e574
2024-06-23 14:52:35 +02:00
Hadi 577d33bdd1 Update
Former-commit-id: 98f708d693
2024-06-23 14:50:06 +02:00
Hadi 5d09cd1097 Update
Former-commit-id: 66cd92d740
2024-06-23 14:47:22 +02:00
Hadi ade814e4af Update
Former-commit-id: 2b5813057c
2024-06-23 14:46:11 +02:00
Hadi 4c39b0044d Update
Former-commit-id: bbb35737c2
2024-06-23 14:45:51 +02:00
Hadi 08c43f4771 Update
Former-commit-id: 1efdadbdad
2024-06-23 14:23:36 +02:00
Hadi def4d2a994 Update
Former-commit-id: 9f98ec2a52
2024-06-23 14:22:01 +02:00
Hadi 7256d94c49 Update
Former-commit-id: 6f8c9d7836
2024-06-23 14:19:45 +02:00
Hadi 52345c06cd Add remote rebuild (server)
Former-commit-id: d1f5aa6dfa
2024-06-23 13:53:01 +02:00
Hadi 26f6c935af Update
Former-commit-id: 54eb13bc40
2024-06-23 13:46:07 +02:00
Hadi 7aa0413931 Update
Former-commit-id: f29e68ef63
2024-06-23 13:36:37 +02:00
Hadi 04b54566b1 Update
Former-commit-id: 8260c9d554
2024-06-21 15:49:16 +02:00
Hadi ff0e41c73f Update
Former-commit-id: ec5b132e17
2024-06-21 15:48:37 +02:00
Hadi b070d20ef4 Update
Former-commit-id: 45c0175d72
2024-06-21 15:25:14 +02:00
Hadi 5849179d0b Update
Former-commit-id: 154c21859d
2024-06-21 13:58:14 +02:00
Hadi 9aa13777c5 Update
Former-commit-id: d100690333
2024-06-21 13:45:59 +02:00
Hadi 79ca8b68a8 Update
Former-commit-id: 9fd64e9f04
2024-06-21 13:44:56 +02:00
Hadi 99038231a8 Update
Former-commit-id: 909c32fef8
2024-06-21 13:42:14 +02:00
Hadi 5c877f5f76 Update
Former-commit-id: feea4f5ad9
2024-06-21 13:14:54 +02:00
Hadi 2beda6180b Update
Former-commit-id: 1ce9d2e46f
2024-06-20 18:04:50 +02:00
Hadi 3921780961 Update
Former-commit-id: ae48fb8605
2024-06-20 17:43:20 +02:00
Hadi 6d856f0bfa Update
Former-commit-id: 636d921341
2024-06-20 17:34:56 +02:00
Hadi 7ef5dac5cb Update
Former-commit-id: fa7ec583b6
2024-06-20 17:33:40 +02:00
Hadi ada5bebfe0 Update
Former-commit-id: a723bd6087
2024-06-20 17:30:14 +02:00
Hadi fd472e7abc Update
Former-commit-id: 3950c68160
2024-06-20 17:08:25 +02:00
Hadi 67c02f59de Update
Former-commit-id: 4653a9e86f
2024-06-20 16:39:59 +02:00
Hadi 34a090cb13 Update
Former-commit-id: 9e191c76eb
2024-06-20 16:32:27 +02:00
Hadi 6c66562c77 Update
Former-commit-id: 2996ca0d12
2024-06-20 15:43:04 +02:00
Hadi 44474f2cbb Update
Former-commit-id: c7beef1880
2024-06-20 15:41:54 +02:00
Hadi 0c34497671 Update
Former-commit-id: 1a3c28f69a
2024-06-20 15:35:06 +02:00
Hadi 957d749df5 Update
Former-commit-id: 597f88adab
2024-06-20 15:33:42 +02:00
Hadi 23e45b3679 Update
Former-commit-id: 85a4a4ad2a
2024-06-20 15:31:01 +02:00
Hadi 58f45a48b4 Update
Former-commit-id: e078d81b51
2024-06-20 15:29:25 +02:00
Hadi 64884b1367 Update
Former-commit-id: b676e1bdbb
2024-06-20 15:27:32 +02:00
Hadi 41808ad011 Update
Former-commit-id: 83252b0da5
2024-06-20 15:16:28 +02:00
Hadi f1f9ee57f0 Update
Former-commit-id: 56b09db387
2024-06-20 15:13:02 +02:00
Hadi 2fa2d20c8b Update
Former-commit-id: 6f998c79ab
2024-06-20 15:07:15 +02:00
Hadi d1047e2abf Update
Former-commit-id: 4bec772eb2
2024-06-20 12:10:00 +02:00
Hadi eb75f6e451 Update
Former-commit-id: 5bdbfb3a5f
2024-06-20 12:09:20 +02:00
Hadi 95329e82fb Update
Former-commit-id: 0cc6e18f3d
2024-06-20 11:45:19 +02:00
Hadi c139f1c12a Update
Former-commit-id: f9bd98bc58
2024-06-20 11:42:57 +02:00
Hadi 4ead1d07ae Update
Former-commit-id: 81e72e574d
2024-06-20 11:41:28 +02:00
Hadi 81d9c22cbc Update
Former-commit-id: fe393e3c2a
2024-06-20 11:38:53 +02:00
Hadi 5da1dcccba Update
Former-commit-id: e0803c6bd5
2024-06-20 11:31:02 +02:00
Hadi 6a950d4bcc Update
Former-commit-id: f761b8c66a
2024-06-20 11:27:41 +02:00
Hadi 26263eee48 Update
Former-commit-id: 01b056d4cb
2024-06-20 11:25:35 +02:00
Hadi ba0a151f1e Update
Former-commit-id: 73ac8d8188
2024-06-20 11:24:41 +02:00
Hadi 2c5be469f0 Update TODO.md
Former-commit-id: b90999d5b6
2024-06-20 09:39:02 +02:00
Hadi 9728b2ed6b Update TODO.md
Former-commit-id: 365fab9659
2024-06-20 02:47:27 +02:00
Hadi 2255bd8d7c Update
Former-commit-id: a0c5bd962b
2024-06-20 02:45:24 +02:00
Hadi 7617488f52 Fix
Former-commit-id: b796117725
2024-06-20 01:55:49 +02:00
Hadi c0b0ed81c8 Update
Former-commit-id: 1b4cd64024
2024-06-20 01:31:30 +02:00
Hadi 4ab75fb583 Update
Former-commit-id: 8ec1744969
2024-06-20 01:23:20 +02:00
Hadi 339eb8877c Update
Former-commit-id: b44a2e17f9
2024-06-20 00:25:10 +02:00
Hadi 2e92ce971e Update
Former-commit-id: de9b1de37c
2024-06-20 00:17:59 +02:00
Hadi 51e58883fa Update
Former-commit-id: e94276c144
2024-06-20 00:15:18 +02:00
Hadi 59fe18dcd6 Update
Former-commit-id: 0114f7281b
2024-06-20 00:14:15 +02:00
Hadi d543f308b3 Update
Former-commit-id: 5db186ba9b
2024-06-20 00:07:23 +02:00
Hadi 0881baf082 Update
Former-commit-id: eec2b56fcd
2024-06-20 00:06:06 +02:00
Hadi 3f4590bda4 Update
Former-commit-id: 265651c931
2024-06-19 23:59:20 +02:00
Hadi c692d33216 Update
Former-commit-id: 7e5c45d406
2024-06-19 23:53:17 +02:00
Hadi 33de46de17 Update
Former-commit-id: ae9ffdf2a8
2024-06-19 23:52:10 +02:00
Hadi ff55504616 Update
Former-commit-id: 325f8e9d15
2024-06-19 23:51:36 +02:00
Hadi 627435b452 Update
Former-commit-id: 29905a460b
2024-06-19 23:49:03 +02:00
Hadi 64f057b1b1 Update
Former-commit-id: 92e8eb8983
2024-06-19 23:48:36 +02:00
Hadi f6f4acf2b6 Update
Former-commit-id: cafce8e7c9
2024-06-19 23:47:35 +02:00
Hadi 44b79b0ff0 Update
Former-commit-id: 21482d4a44
2024-06-19 23:45:03 +02:00
Hadi f5887c9f24 Update
Former-commit-id: 1b3cc99197
2024-06-19 23:42:42 +02:00
Hadi 178aeb2aac Update
Former-commit-id: adecf1bc29
2024-06-19 23:39:30 +02:00
Hadi 8e8caed609 Update
Former-commit-id: a272a038f1
2024-06-19 23:38:04 +02:00
Hadi 92c1b38ca5 Update
Former-commit-id: a6d3e17135
2024-06-19 23:32:31 +02:00
Hadi 9f196b8fb8 Update
Former-commit-id: 0e291d3388
2024-06-19 23:28:50 +02:00
Hadi a8ad3a28fb Update
Former-commit-id: c852176e0d
2024-06-19 23:28:13 +02:00
Hadi 19f5613c74 Update
Former-commit-id: ad339a19a6
2024-06-19 23:23:29 +02:00
Hadi 35848dfd62 Update
Former-commit-id: aad8b9d8e6
2024-06-19 23:21:24 +02:00
Hadi a37fda47ea Update
Former-commit-id: debb139aeb
2024-06-19 23:20:49 +02:00
Hadi 60f5d20cbe Update
Former-commit-id: 939597dd90
2024-06-19 23:15:52 +02:00
Hadi 6a808cbc89 Update
Former-commit-id: 7a89711897
2024-06-19 23:11:37 +02:00
Hadi 75f9e08d7b Update
Former-commit-id: e51b20e4ab
2024-06-19 23:07:47 +02:00
Hadi 1d7d1e1c89 Update
Former-commit-id: 9dbc87c010
2024-06-19 23:02:56 +02:00
Hadi b8356528ba Update
Former-commit-id: 137dd150fd
2024-06-19 22:59:06 +02:00
Hadi 602423d9ae Update
Former-commit-id: 6e66f200a3
2024-06-19 22:57:14 +02:00
Hadi 295085c7e9 Update
Former-commit-id: 28dcb1f574
2024-06-19 22:50:58 +02:00
Hadi 872735897c Update
Former-commit-id: 536de64d5c
2024-06-19 22:48:21 +02:00
Hadi b064228958 Update
Former-commit-id: ac1c7da665
2024-06-19 22:47:37 +02:00
Hadi 156ca28cbf Update
Former-commit-id: d3604fa6cf
2024-06-19 22:47:13 +02:00
Hadi cd08d5ad46 Update
Former-commit-id: 241a91487c
2024-06-19 22:46:33 +02:00
Hadi 109cd5075b Update
Former-commit-id: 2f2aad2b91
2024-06-19 22:45:37 +02:00
Hadi bbdf394dda Update
Former-commit-id: ce756d2f78
2024-06-19 22:44:55 +02:00
Hadi c1ace49f38 Update
Former-commit-id: 94cb2758e6
2024-06-19 22:40:01 +02:00
Hadi 05c1fe6313 Update
Former-commit-id: 50ee6b2dbf
2024-06-19 22:39:12 +02:00
Hadi a94489d52d Update
Former-commit-id: 0949607442
2024-06-19 22:37:52 +02:00
Hadi 2db08a1a06 Update
Former-commit-id: 12e8e9e870
2024-06-19 22:36:42 +02:00
Hadi abf9f53eee Update
Former-commit-id: aa519ba3ee
2024-06-19 22:36:18 +02:00
Hadi 33e9ca6021 Update
Former-commit-id: 2cd6b6be58
2024-06-19 22:33:48 +02:00
Hadi 601306033d Update
Former-commit-id: 3939348e1b
2024-06-19 22:32:03 +02:00
Hadi a67177bbb3 Update
Former-commit-id: 26767f861c
2024-06-19 21:53:34 +02:00
Hadi 13cecc6f19 Update
Former-commit-id: adbbcec22c
2024-06-19 21:52:46 +02:00
Hadi 83ee267214 Update
Former-commit-id: f868a937d5
2024-06-19 21:50:36 +02:00
Hadi 7322f50f14 Update
Former-commit-id: c9ba9b30fe
2024-06-19 21:47:33 +02:00
Hadi e91e838528 Update
Former-commit-id: f2b659add1
2024-06-19 21:43:28 +02:00
Hadi 332caad470 Update
Former-commit-id: c18fffcb3d
2024-06-19 21:42:12 +02:00
Hadi de1ef7f45e test
Former-commit-id: b5fe18ab2f
2024-06-19 21:41:04 +02:00
Hadi 6375bcaf34 add hardware config
Former-commit-id: 115c6345c3
2024-06-19 21:31:18 +02:00
Hadi 12394f2945 Update
Former-commit-id: 884abe9e6c
2024-06-19 21:22:41 +02:00
Hadi 4e7ae503f8 Update
Former-commit-id: d877b40d0b
2024-06-19 21:18:28 +02:00
Hadi 53ae7625af test
Former-commit-id: 530e9d8bea
2024-06-19 21:17:54 +02:00
Hadi ba48ce3942 Update
Former-commit-id: d9e4bd4cd1
2024-06-19 21:16:15 +02:00
Hadi 9a236765ed Update
Former-commit-id: 4cba1f2acf
2024-06-19 21:12:30 +02:00
Hadi 355c13c8f0 Update
Former-commit-id: 8c0c636ec8
2024-06-19 21:05:03 +02:00
Hadi 0810128ee4 Update
Former-commit-id: 39a4b5cc00
2024-06-19 21:03:58 +02:00
Hadi be7548e10a Update
Former-commit-id: a5e4015cf3
2024-06-19 21:01:08 +02:00
Hadi b3df107c36 Update
Former-commit-id: 5414f49671
2024-06-19 21:01:01 +02:00
Hadi 56df3723d2 Update
Former-commit-id: 10f3754b0a
2024-06-19 09:55:58 +02:00
Hadi 27abeac6db Update
Former-commit-id: 063534079d
2024-06-18 19:15:19 +02:00
Hadi da81e80716 Update
Former-commit-id: d4abd221c0
2024-06-18 19:14:18 +02:00
Hadi d70cf4ebe7 Update
Former-commit-id: 77696506bc
2024-06-18 19:13:15 +02:00
Hadi ab11bf5b91 Update
Former-commit-id: 05932e597c
2024-06-18 19:05:40 +02:00
Hadi 88ff53dc29 Update README.md
Former-commit-id: 6606762bca
2024-06-18 15:49:32 +02:00
Hadi d93dda3f6d change image
Former-commit-id: e0bae26b5d
2024-06-18 15:44:27 +02:00
Hadi fed0845912 Update README.md
Former-commit-id: cd91c40f7d
2024-06-18 15:43:27 +02:00
Hadi f18c96bcea Add files via upload
Former-commit-id: 07e81831fa
2024-06-18 15:42:24 +02:00
Hadi dd81dc8e54 Add files via upload
Former-commit-id: a900a2a121
2024-06-18 15:34:25 +02:00
Hadi 67dae73157 update readme colors
Former-commit-id: d2916aa984
2024-06-18 15:25:59 +02:00
Hadi 27cffd8917 edit
Former-commit-id: f79b67c04e
2024-06-18 14:39:51 +02:00
Hadi 5338fa3c93 move nextcloud to home manager
Former-commit-id: 6c936a12f1
2024-06-18 14:32:35 +02:00
Hadi 9ab398c6d2 update todo
Former-commit-id: b5ae490899
2024-06-18 14:26:49 +02:00
Hadi 1a1ec40517 todo update
Former-commit-id: fd9b7ea141
2024-06-18 14:20:23 +02:00
Hadi ab6813996d update
Former-commit-id: c11a21a34a
2024-06-18 14:09:55 +02:00
Hadi d84912df76 fix
Former-commit-id: ba09c5cfe3
2024-06-18 14:07:48 +02:00
Hadi cfb4904976 add tailscale
Former-commit-id: 8ec108927c
2024-06-18 14:05:14 +02:00
Hadi 9ac6e92dc5 fix
Former-commit-id: d311675fe9
2024-06-18 13:41:33 +02:00
Hadi a5e1ee5285 update
Former-commit-id: 63fd084dcf
2024-06-18 13:41:07 +02:00
Hadi d34eafd868 Update
Former-commit-id: 759f7e715a
2024-06-18 12:36:26 +02:00
Hadi 402a1a512a Update
Former-commit-id: c0e0609ef4
2024-06-18 12:35:13 +02:00
Hadi f26f8ad0e1 Update
Former-commit-id: fb2f1824a3
2024-06-18 12:32:45 +02:00
Hadi 8cc97c5cc7 Update
Former-commit-id: bfed924f0f
2024-06-18 12:30:56 +02:00
Hadi 242298923e Update
Former-commit-id: 1ad4233def
2024-06-18 12:21:57 +02:00
Hadi 85011e69d3 Update
Former-commit-id: b536a87854
2024-06-18 12:10:45 +02:00
Hadi b4ad55a8c2 update
Former-commit-id: c3b54c538f
2024-06-18 11:42:22 +02:00
Hadi 8935e3e520 temp
Former-commit-id: 40648d4041
2024-06-18 11:26:35 +02:00
Hadi 883d95ca39 temp
Former-commit-id: cb4a8f024f
2024-06-18 11:11:08 +02:00
Hadi 91055f207f temp
Former-commit-id: f4aa262e74
2024-06-18 10:29:37 +02:00
Hadi 299222f9fd temp
Former-commit-id: ac6a0f59c4
2024-06-18 10:23:07 +02:00
Hadi a2485b18b3 temp
Former-commit-id: 93b7145e70
2024-06-18 10:10:21 +02:00
Hadi 75bc825770 temp
Former-commit-id: dc4f3160cc
2024-06-18 09:54:18 +02:00
Hadi b6c4c0e00a rename shared to modules
Former-commit-id: 2ccd17867f
2024-06-18 09:21:14 +02:00
Hadi 6797cb1107 Update
Former-commit-id: d3e6730df0
2024-06-18 00:01:23 +02:00
Hadi 1bd451a8bb Update
Former-commit-id: 57eb1c9459
2024-06-17 23:57:26 +02:00
Hadi 63f101763d update
Former-commit-id: 880ed3d0e9
2024-06-17 23:47:58 +02:00
Hadi 01e890081a add server
Former-commit-id: 93ba190cbf
2024-06-17 23:41:41 +02:00
Hadi 147e0715cf Update
Former-commit-id: 251f535146
2024-06-17 23:32:56 +02:00
Hadi 2922ef04a4 Update
Former-commit-id: 8e0691ca6a
2024-06-17 23:32:52 +02:00
Hadi 9f2afd0f8a add server
Former-commit-id: 25d4dc93f1
2024-06-17 23:29:47 +02:00
Hadi ba31976fcf add pfetch
Former-commit-id: d1b581fd58
2024-06-17 21:34:54 +02:00
Hadi ce2dcf66a4 update
Former-commit-id: bbaf52b496
2024-06-17 20:47:28 +02:00
Hadi 0d9b79c73e update
Former-commit-id: 5835d73997
2024-06-17 20:44:37 +02:00
Hadi a17e3583e6 Update
Former-commit-id: bbbf516812
2024-06-17 20:38:13 +02:00
Hadi 1885087e56 Update
Former-commit-id: 6f8698e345
2024-06-17 20:37:09 +02:00
Hadi b79d37ad06 Update
Former-commit-id: b49b2d2c60
2024-06-17 20:08:17 +02:00
Hadi 8952cbaade update
Former-commit-id: a703d0816b
2024-06-17 19:50:35 +02:00
Hadi cbda10510d update
Former-commit-id: 4aba4116de
2024-06-17 19:45:21 +02:00
Hadi e09cae9c44 Update
Former-commit-id: 9db5b9231e
2024-06-17 19:23:43 +02:00
Hadi 187bdb0a32 Update
Former-commit-id: dc5c227667
2024-06-17 19:20:34 +02:00
Hadi 5ba463757e update
Former-commit-id: 912c0abc51
2024-06-17 19:20:01 +02:00
Hadi 7763a854af update
Former-commit-id: d8659825a2
2024-06-17 19:18:05 +02:00
Hadi 6cd8da4bf1 Update README.md
Former-commit-id: 087dd4dfec
2024-06-17 17:10:04 +02:00
Hadi a397f5e82b update
Former-commit-id: a6207c07ab
2024-06-17 17:04:39 +02:00
Hadi 31ba52c9ac add hyprcursor
Former-commit-id: efc017e5bd
2024-06-17 16:55:42 +02:00
Hadi bd5998521b moved gtk theme
Former-commit-id: 2982684252
2024-06-17 16:54:50 +02:00
Hadi 5d043297d3 update
Former-commit-id: 5e3a372259
2024-06-17 16:53:18 +02:00
Hadi 07dd6c09a5 temp
Former-commit-id: 8d16aa86e0
2024-06-17 16:35:53 +02:00
Hadi 28513feea4 temp
Former-commit-id: 3f613c9910
2024-06-17 16:33:34 +02:00
Hadi 982c4b2f80 update
Former-commit-id: 8b2f8c08d3
2024-06-17 16:23:03 +02:00
Hadi cd3ac7cfbc update
Former-commit-id: f2c80d003c
2024-06-17 14:24:18 +02:00
Hadi 58bbb5532a Add themes folder
Former-commit-id: a6cc46cf93
2024-06-17 14:18:15 +02:00
Hadi 6b115d6d28 Update
Former-commit-id: 857c98e32a
2024-06-17 13:49:05 +02:00
Hadi 7d97cc9148 Update
Former-commit-id: d169306a68
2024-06-17 13:47:13 +02:00
Hadi 992929e13a test hosts
Former-commit-id: b22d2f596f
2024-06-17 09:23:37 +02:00
Hadi 65b80a7d8d test
Former-commit-id: 026be4852e
2024-06-17 09:22:31 +02:00
Hadi 396a4dcf84 Update
Former-commit-id: 49cf0fc0e3
2024-06-14 21:18:42 +02:00
Hadi dae5881128 Add animations speed in variables
Former-commit-id: 7267fa55fb
2024-06-14 21:13:50 +02:00
Hadi c00de1af0e Update
Former-commit-id: c410d04e1a
2024-06-14 21:04:33 +02:00
Hadi 5c760f5bfc Update
Former-commit-id: fad7c6e46d
2024-06-14 20:58:52 +02:00
Hadi d3881d0897 Update
Former-commit-id: 089c57802e
2024-06-14 15:28:30 +02:00
Hadi 64771ae931 Update
Former-commit-id: 47701f3f49
2024-06-14 14:43:21 +02:00
Hadi 516b7eaed4 Update
Former-commit-id: 5af6219fff
2024-06-14 14:24:09 +02:00
Hadi dc11045158 Update
Former-commit-id: 9eb2dbf579
2024-06-14 14:21:27 +02:00
Hadi c462a44130 Refactor
Former-commit-id: ea15e4fa98
2024-06-14 14:20:06 +02:00
Hadi 9130b97e13 Update
Former-commit-id: cf99fa5687
2024-06-14 14:03:35 +02:00
Hadi c1291fa9e7 Update
Former-commit-id: 98d8545186
2024-06-14 13:58:54 +02:00
Hadi 282031208e Update
Former-commit-id: 60ee25a3fa
2024-06-14 13:56:43 +02:00
Hadi 2ee7347334 Update
Former-commit-id: 25e4b89053
2024-06-14 13:44:30 +02:00
Hadi d3d4c5c7e6 Fix
Former-commit-id: 758b594e39
2024-06-14 12:54:46 +02:00
Hadi 47b46bdbf1 Update
Former-commit-id: eb94f6b527
2024-06-14 10:03:29 +02:00
Hadi a5750d59be test
Former-commit-id: aae1271cf0
2024-06-14 10:00:54 +02:00
Hadi e7324aa80d Update
Former-commit-id: 70a3473916
2024-06-13 11:02:21 +02:00
Hadi 61728dd166 Update
Former-commit-id: 96b64e86e0
2024-06-13 10:52:06 +02:00
Hadi f405b40518 Temp
Former-commit-id: d117be2be9
2024-06-13 10:48:06 +02:00
Hadi 4fbcff7320 Update
Former-commit-id: a30df8d186
2024-06-11 23:41:38 +02:00
Hadi 9e77650fa6 Stable
Former-commit-id: 3b52711351
2024-06-11 23:31:59 +02:00
Hadi 2e3a459e5c Fix
Former-commit-id: 0e3989391e
2024-06-11 22:00:58 +02:00
Hadi 3e0a36a9d9 Fix
Former-commit-id: e9310630bd
2024-06-11 21:58:04 +02:00
Hadi 84463917f5 Update
Former-commit-id: c2bb7f475b
2024-06-08 20:50:18 +02:00
Hadi b23b815696 Update
Former-commit-id: 14eeb7bd3a
2024-06-08 02:32:42 +02:00
Hadi d2858a640b Update
Former-commit-id: 08b9ef2677
2024-06-08 02:28:42 +02:00
Hadi 8cd055be59 Update
Former-commit-id: cbb276551c
2024-06-08 02:28:13 +02:00
Hadi 7a3787d62d Update
Former-commit-id: 4556c5ea2f
2024-06-08 02:26:47 +02:00
Hadi 985dd82c6f Update
Former-commit-id: 6a017c8e70
2024-06-08 02:24:07 +02:00
Hadi b828545a42 Update
Former-commit-id: e33ab5a6e1
2024-06-08 02:22:10 +02:00
Hadi c1a311e021 Update
Former-commit-id: fbf3fe3255
2024-06-08 02:20:20 +02:00
Hadi 98fc1e131b Update
Former-commit-id: 41a6de85b1
2024-06-08 02:19:25 +02:00
Hadi f19b74c2e9 Update
Former-commit-id: 6561d23db6
2024-06-08 02:18:53 +02:00
Hadi 0aae361973 Update
Former-commit-id: 562dad765b
2024-06-08 02:17:50 +02:00
Hadi e925d6712c Update
Former-commit-id: 2656132158
2024-06-08 02:17:04 +02:00
Hadi 553455474b Update
Former-commit-id: 430d30e4ee
2024-06-08 02:05:37 +02:00
Hadi b53c5bb5b1 Update
Former-commit-id: 3a1896894f
2024-06-08 01:57:55 +02:00
Hadi f76419c158 Update
Former-commit-id: 88fb9d078b
2024-06-08 01:56:21 +02:00
Hadi fb44fb3fab Update
Former-commit-id: 1ccb720f3b
2024-06-08 00:36:44 +02:00
Hadi d19182608d Update
Former-commit-id: d2c8461193
2024-06-08 00:35:45 +02:00
Hadi ebbb2dd780 Update
Former-commit-id: 92b467525d
2024-06-08 00:01:20 +02:00
Hadi ce24afcea0 Update
Former-commit-id: 6c08c79a16
2024-06-07 23:54:10 +02:00
Hadi 4b1c84319b Update
Former-commit-id: e52f52f4da
2024-06-07 23:46:40 +02:00
Hadi 7d46fa680f Update
Former-commit-id: b855318c55
2024-06-07 23:35:59 +02:00
Hadi 73961f5caf Update
Former-commit-id: ca8abfde1c
2024-06-07 23:34:02 +02:00
Hadi 89c194d604 Update
Former-commit-id: 24de104139
2024-06-07 22:53:04 +02:00
Hadi fc50d282ca Update
Former-commit-id: 2c0246c84a
2024-06-07 22:43:37 +02:00
Hadi 101cbd0761 Update
Former-commit-id: 9177f93a96
2024-06-07 22:41:10 +02:00
Hadi 48f7c42a21 Update
Former-commit-id: 57867b1a22
2024-06-07 22:37:59 +02:00
Hadi a6d00d0823 Update
Former-commit-id: 7b9e579a4e
2024-06-07 22:34:48 +02:00
Hadi e02c11e258 Update
Former-commit-id: 65ec024028
2024-06-07 22:25:21 +02:00
Hadi 3554bf257e Update
Former-commit-id: 19af1ccdc2
2024-06-07 22:11:42 +02:00
Hadi ec0e54e4b2 Update
Former-commit-id: 7d80970e9d
2024-06-07 22:08:09 +02:00
Hadi 8d60d1d914 Update
Former-commit-id: 755a2e8f2b
2024-06-07 22:05:49 +02:00
Hadi 2555bc641b Update
Former-commit-id: 160d302a74
2024-06-07 21:49:44 +02:00
Hadi dfc48d1525 Add pub key
Former-commit-id: b674a8be1b
2024-06-07 21:46:15 +02:00
Hadi 80a61f86dc Fix
Former-commit-id: e2382abacc
2024-06-07 21:41:04 +02:00
Hadi 1cde20d8bc Add hardware config for server
Former-commit-id: bf7dd645ba
2024-06-07 21:38:39 +02:00
Hadi 378bdade49 Update
Former-commit-id: 7bb06e521f
2024-06-07 21:37:48 +02:00
Hadi b87610007a Add heaven (my server)
Former-commit-id: 17f93ea60b
2024-06-07 21:21:03 +02:00
Hadi c216a5e997 Update
Former-commit-id: d917ac9f6a
2024-06-07 10:55:45 +02:00
Hadi ccf0ee95c6 Update
Former-commit-id: 98556f202e
2024-06-03 20:18:30 +02:00
Hadi 0a2644f5d4 Update
Former-commit-id: 0f98d762a2
2024-05-25 10:53:38 +02:00
Hadi 7f31c039e8 Update
Former-commit-id: c074db2779
2024-05-20 19:44:45 +02:00
Hadi cfbf65a7f5 Add hyprland cachix
Former-commit-id: 98186715b1
2024-05-17 14:52:18 +02:00
Hadi 1f67c4a752 Merge pull request #1 from anotherhadi/unstable
Update

Former-commit-id: 0087ca74be
2024-05-17 14:46:30 +02:00
Hadi b9dbcac931 Update
Former-commit-id: 5fe726fd20
2024-05-17 14:44:56 +02:00
Hadi 0b713dfa4e More variables
Former-commit-id: cc1efb2588
2024-05-17 10:28:02 +02:00
Hadi 140bd5c510 Update
Former-commit-id: 0b32914be2
2024-05-16 17:59:50 +02:00
Hadi ae68f811f2 Add nvim noice
Former-commit-id: bc9101e542
2024-05-11 00:37:16 +02:00
Hadi 1c25f3421d Add table of contents
Former-commit-id: 42876ccac3
2024-05-09 16:58:42 +02:00
Hadi 3f4477d938 Add compress/extract
Former-commit-id: 728797b8c5
2024-05-09 16:55:46 +02:00
Hadi 7d0afea3bf Update
Former-commit-id: dff9dcc8d5
2024-05-09 16:51:42 +02:00
Hadi 4eab3730be Update
Former-commit-id: 31913ccdcc
2024-05-09 16:50:46 +02:00
Hadi 07d95c5255 Add lazygit
Former-commit-id: 8400e5fd4d
2024-05-09 16:46:30 +02:00
Hadi ddb412cdea Add lazygit
Former-commit-id: 8d0216e1fc
2024-05-09 16:44:39 +02:00
Hadi 5c29aeffc5 Update
Former-commit-id: c4f8d05c0d
2024-05-09 16:33:24 +02:00
Hadi f9dfd7ae1a Update
Former-commit-id: 6d4bc5a9e8
2024-05-09 13:33:51 +02:00
Hadi 34a8b4ffed Add new theme
Former-commit-id: 6065afd390
2024-05-09 13:33:44 +02:00
Hadi 93480fdf86 Fix spacing
Former-commit-id: abfe7ca839
2024-05-09 13:33:18 +02:00
Hadi f5605570e0 Update
Former-commit-id: a26fbaa2c3
2024-05-09 10:54:19 +02:00
Hadi 9d9e3570df Rearrange folder struct
Former-commit-id: e58fda9896
2024-05-04 22:51:33 +02:00
Hadi 8be54bb19b Fix renamed
Former-commit-id: d026643105
2024-05-04 22:46:46 +02:00
Hadi b533415ab7 Delete /tmp dir on boot
Former-commit-id: 984a25c111
2024-05-04 22:45:51 +02:00
Hadi 3b2fd0b3f4 Update
Former-commit-id: 2c2b451d40
2024-05-04 22:36:06 +02:00
Hadi ef90d16de8 Waybar git to solve issue w/hyprland
Former-commit-id: 1af3617b32
2024-05-02 18:16:39 +02:00
Hadi 5222447894 Update
Former-commit-id: 6d1912703c
2024-05-02 15:46:16 +02:00
Hadi 8d9d8d4ca2 Update
Former-commit-id: 81ab14b256
2024-05-02 15:40:12 +02:00
Hadi f32ad388b2 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 e1ff3e4624 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 1187753bb7 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 dde5b26215 Update
Former-commit-id: 7dd8af5bf8
2024-04-20 11:50:19 +02:00
Hadi 1db52368f7 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 9e9970f517 Fix typo
Former-commit-id: de607e2eea
2024-04-20 01:05:50 +02:00
Hadi 00df88dc0e Delete .sops.yaml
Former-commit-id: e8dd18e32c
2024-04-20 00:41:50 +02:00
Hadi de09bd0179 Fix
Former-commit-id: 3fe07d3ba5
2024-04-20 00:39:15 +02:00
Hadi 2180d78dfc Add github search engine
Former-commit-id: 52ccccc2d9
2024-04-20 00:23:32 +02:00
Hadi 1cb0490c03 Fix 2 file explorer
Former-commit-id: 805917511e
2024-04-20 00:19:15 +02:00
Hadi 424dd06e18 Fix
Former-commit-id: 950e1cfcf2
2024-04-20 00:16:05 +02:00
Hadi 17b23c8497 Fix
Former-commit-id: 637accfc1c
2024-04-20 00:02:59 +02:00
Hadi ba6bb433b6 Fix font
Former-commit-id: a37de9940f
2024-04-19 23:46:15 +02:00
Hadi c3120b819e 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 edcb1af2d9 Update
Former-commit-id: 767e9d182d
2024-04-14 21:59:30 +02:00
Hadi 0cc43ddbb5 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 3f4096dfe5 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 2b27db1bff 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 f9aafdc772 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 0568b5d256 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 76ed5e3b0a 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 61a70a7c37 I hate wl clipboard
Former-commit-id: 24a8438694
2024-03-20 23:26:53 +01:00
Hadi cebb8d311d Woopsi
Former-commit-id: ce2e0c2fa8
2024-03-20 22:44:32 +01:00
Hadi 42d7bb5c6e Nerdfont icons finder, folder arch..
Former-commit-id: e97e2705b5
2024-03-20 22:38:49 +01:00
Hadi 0eb1751e41 Up
Former-commit-id: cb98842775
2024-03-20 21:47:50 +01:00
Hadi c995295397 Up
Former-commit-id: 95562dce0e
2024-03-20 20:04:09 +01:00
Hadi 448a482497 keybindings
Former-commit-id: bb47c6a943
2024-03-20 18:58:16 +01:00
Hadi 9bd0c2f190 Themes
Former-commit-id: 5ad31e7602
2024-03-20 18:31:59 +01:00
Hadi 283d757327 oops
Former-commit-id: 35de81a46d
2024-03-20 18:05:24 +01:00
Hadi 32c9cd7504 up
Former-commit-id: 0fee3682d0
2024-03-20 18:01:15 +01:00
Hadi fac419453e Fix powermenu management
Former-commit-id: aa25061ad7
2024-03-18 22:48:11 +01:00
Hadi b043028ec7 Fix neofetch on floating window
Former-commit-id: 69bd97e1bd
2024-03-18 22:40:15 +01:00
Hadi 900eb52b17 Fix windows name & padding
Former-commit-id: 1dd92201d0
2024-03-18 22:37:03 +01:00
Hadi 89d705f414 Up
Former-commit-id: ef3489075f
2024-03-18 22:26:32 +01:00
Hadi 34e5fbb417 License
Former-commit-id: 6a562ff64c
2024-03-17 17:35:11 +01:00
Hadi 0aa6df37cd Details README
Former-commit-id: 441b45846e
2024-03-17 17:17:03 +01:00
Hadi a185bd740d Up
Former-commit-id: 381b3228dc
2024-03-17 17:11:49 +01:00
Hadi bd81378c22 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 96c6f25c3c Up
Former-commit-id: a230692b90
2024-03-17 01:14:16 +01:00
Hadi 61a67cd51d Up
Former-commit-id: f86a0271b6
2024-03-16 22:26:30 +01:00
Hadi fe6ef8762e 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 c6c053585c Secrets, scripts, clean..
Former-commit-id: 5e98256a82
2024-03-15 21:26:34 +01:00
Hadi f3dcd108db Up
Former-commit-id: 05fc3fbcd9
2024-03-14 18:42:15 +01:00
Hadi 8e8bb981e1 Up
Former-commit-id: 77eba6e2c2
2024-03-14 01:30:17 +01:00
Hadi 5000562333 Up
Former-commit-id: d5bd3270f7
2024-03-14 01:05:29 +01:00
Hadi e2aad1b524 Add caffeine
Former-commit-id: 13ae5ad530
2024-03-14 00:10:13 +01:00
Hadi bb383dcddb Up
Former-commit-id: 8bda501d16
2024-03-13 23:32:40 +01:00
Hadi d59434285a Up
Former-commit-id: 6ed623bd6f
2024-03-13 21:56:32 +01:00
Hadi e55f66e4fb Up
Former-commit-id: 3fe2c8913f
2024-03-13 21:38:55 +01:00
Hadi 7c3ff59a0f Add wallpapers
Former-commit-id: a1f05792e4
2024-03-13 19:58:46 +01:00
506 changed files with 20541 additions and 8841 deletions
-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']
-134
View File
@@ -1,134 +0,0 @@
<div align="center">
<img alt="nixy logo" src="./.github/assets/logo.png" width="120px" />
</div>
<br>
# Nixy
<br>
<div align="center">
<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>
**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. It includes _home-manager_,
_secrets_, and _custom theming_ all in one place.
**Features:**
- 💻 Hyprland & Caelestia: Preconfigured Hyprland ecosystem with Caelestia-shell (Ty to both projects!)
- 🎨 Consistent Theming: Base16 & Stylix-powered themes
- ⌨️ Vim-like Everywhere: Unified keybindings (Hyprland, nvim, vimium, etc.)
## Table of Content
{md_table_of_content}
## Screenshots
![Home](.github/assets/rose-pine/home.png)
![Flake & Spotify](.github/assets/rose-pine/flake-spotify.png)
![Browser and notification center](.github/assets/rose-pine/browser-and-notifications.png)
## Architecture
### 🏠 /home (User-level configuration)
Contains **dotfiles and settings** that apply to your user environment.
**Subfolders:**
- `programs` is a collection of apps configured with home-manager
- `system` is some "desktop environment" configuration
### 🐧 /nixos
Those are the system-level configurations. (audio, bluetooth, gpu, bootloader,
...)
### 🎨 /themes
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. (bitwarden, nextcloud, ...)
## 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.
> [!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
```sh
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
- [GROUPS](docs/GROUPS.md): Reusable package groups (dev, cybersecurity)
- [CONTRIBUTING](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
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: 837 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 738 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

-20
View File
@@ -1,20 +0,0 @@
#!/usr/bin/env bash
# Create the README.md file from the .github/assets/README_template.md file
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
README_FILE="./README.md"
table_of_content=$(markdown-table-of-contents --start-by 2 ./.github/assets/README_template.md) # https://github.com/anotherhadi/markdown-table-of-contents
readme_content=$(cat "./.github/assets/README_template.md")
# Replace variables
readme_content=${readme_content//\{primarycolor\}/A89AD1}
readme_content=${readme_content//\{backgroundcolor\}/0b0b0b}
readme_content=${readme_content//\{md_table_of_content\}/$table_of_content}
echo "[//]: # (This file is autogenerated)" >"$README_FILE"
echo "$readme_content" >>"$README_FILE"
sed 's/\r//' "$README_FILE" >"/tmp/readme.md"
mv "/tmp/readme.md" "$README_FILE"
-31
View File
@@ -1,31 +0,0 @@
on:
push:
paths:
- '.github/assets/README_template.md'
permissions:
contents: write
jobs:
update-readme:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '^1.23'
- name: Install required dependencies
run: |
go install github.com/anotherhadi/markdown-table-of-contents@latest
- name: Run a script
run: |
chmod +x ./.github/scripts/create_readme.sh
./.github/scripts/create_readme.sh
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Update README.md (auto)" && git push
exit 0
+1 -3
View File
@@ -1,3 +1 @@
.sops.yaml
.claude/
old/
todolist.md
+11
View File
@@ -0,0 +1,11 @@
keys:
- &primary age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334
creation_rules:
- path_regex: secrets/laptop.yaml$
key_groups:
- age:
- *primary
- path_regex: secrets/server.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
+44 -101
View File
@@ -1,6 +1,11 @@
[//]: # (This file is autogenerated)
[//]: # (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: 06/25/24)
[//]: # (Version: v2.0.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>
@@ -9,115 +14,64 @@
<br>
<div align="center">
<a href="https://github.com/anotherhadi/nixy">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=Version&message=v2.0.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, 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 & Caelestia: Preconfigured Hyprland ecosystem with Caelestia-shell (Ty to both projects!)
- 🎨 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
- [Table of Content](#table-of-content)
- [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)
- [Table of Content](#table-of-content)
- [Gallery](#gallery)
- [Architecture](#architecture)
- [Installation](#installation)
- [Documentation](#documentation)
## Screenshots
## Gallery
![Home](.github/assets/rose-pine/home.png)
![Flake & Spotify](.github/assets/rose-pine/flake-spotify.png)
![Browser and notification center](.github/assets/rose-pine/browser-and-notifications.png)
![catppuccin1](docs/src/catppuccin/1.png)
![catppuccin2](docs/src/catppuccin/2.png)
![catppuccin3](docs/src/catppuccin/3.png)
## Architecture
### 🏠 /home (User-level configuration)
Contains **dotfiles and settings** that apply to your user environment.
**Subfolders:**
- `programs` is a collection of apps configured with home-manager
- `system` is some "desktop environment" configuration
### 🐧 /nixos
Those are the system-level configurations. (audio, bluetooth, gpu, bootloader,
...)
### 🎨 /themes
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. (bitwarden, nextcloud, ...)
- 🏠 `home` are the dotfiles and configuration files for the user
- 💻 `hosts` are the system configuration files
- 'laptop' is my configuration for my laptop with Nvidia
- 'server' is for my Nixos server (w/nextcloud, nginx, vaultwarden, ... look `hosts/server`)
- 'guest' is a *template* that you can copy and modify for *your own system*
- 'themes' contains all the *themes* available *(see [THEMES.md](docs/THEMES.md))*
- 'modules' are some nix modules that you can import (Nvidia, prime, fonts, ...)
- 🤫 `secrets` are the secrets files encrypted with sops-nix
## 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/guest` 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 the "yourhostname" 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
@@ -125,20 +79,9 @@ 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
- [GROUPS](docs/GROUPS.md): Reusable package groups (dev, cybersecurity)
- [CONTRIBUTING](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
- [THEMES.md](docs/THEMES.md): How themes work and how to create your own
- [APPS.md](docs/APPS.md): Which apps are installed
- [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available
- [TODO.md](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING.md](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT Licensey
+57
View File
@@ -0,0 +1,57 @@
# Apps and services
*non-exhaustive lists*
## Laptop
The laptop configuration is used by a Omen 16 laptop w/ nvidia and an amd gpu running NixOS.
The configurations files can be found in the `hosts/laptop` directory.
| Category | Name |
|----------------|---------------|
| WM | Hyprland |
| | hyprlock |
| | hyprpaper |
| | hypridle |
| | wlogout |
| Bar | waybar |
| Terminal | kitty |
| Shell | zsh |
| | tmux |
| | starship |
| | bat |
| | eza |
| | zoxide |
| | fzf |
| Editor | neovim(nixvim)|
| File manager | lf |
| | thunar |
| Browser | qutebrowser |
| Music | spicetify |
| Notifications | dunst |
| Launcher | wofi |
| DM | tuigreet |
| Secrets | sops-nix |
| Misc | lazygit |
| | neofetch |
| | cava |
| See [hosts/laptop](../hosts/laptop/)... | |
## Server
The server configuration is used by a home server running NixOS.
The configurations files can be found in the `hosts/server` directory.
I mainly use it for self hosting websites and services such as Nextcloud, Vaultwarden, ...
I exposed some services to the internet using a reverse proxy (Nginx) and cloudflare-dyndns, others are accessed through a tailscale network
### Apps
- Nextcloud
- Vaultwarden
- Adguard Home
- Unifi Controler
- Uptime Kuma
- "Jackflix"
- Jellyfin, Transmission, *arr
- See [hosts/server](../hosts/server/)...
+4 -7
View File
@@ -1,16 +1,13 @@
# 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 `docs/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 todo, ...).
- Create a Pull Request against the main branch of Nixy.
> [!TIP]
> To update the README, change the `./.github/assets/README_template.md`
> [!IMPORTANT]
> Don't push your host's folder
> [!WARNING]
> Don't push your host's files, secrets, or home configuration
-44
View File
@@ -1,44 +0,0 @@
# Groups
Groups are curated sets of packages exposed as flake outputs. Each group has two forms:
- **`homeManagerModules.<group>`** — full home-manager module (packages + files + systemd units)
- **`packages.<group>`** — standalone environment for `nix shell` (packages only)
## Available groups
- dev (go, bun, air, ...)
- cybersecurity (nmap, john, dirb, ffuf, ...)
For the Cybersecurity group, the home-manager module also sets up:
- `~/Cyber/wordlists/` with SecLists, fuzz4bounty, and hashcat rules
- `~/Cyber/tmp/` as a temporary workspace
## Use in another flake
Add this repo as an input:
```nix
inputs.nixy.url = "github:anotherhadi/nixy";
```
Import the home-manager module in your home configuration:
```nix
{ inputs, ... }: {
imports = [
inputs.nixy.homeManagerModules.cybersecurity
# inputs.nixy.homeManagerModules.dev
];
}
```
## Quick shell without installing
```sh
nix shell github:anotherhadi/nixy#cybersecurity
nix shell github:anotherhadi/nixy#dev
```
This drops you into a shell with all tools in `PATH`. No home-manager required, no wordlists or systemd units.
-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: pairs, comment, icons, indentscope, diff, git |
+57
View File
@@ -0,0 +1,57 @@
# Scripts
Scripts are located in the `home/scripts` folder. Home-manager add those in the 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-change <up/down> <increment>`
## Sound control
- `sound-up`
- `sound-down`
- `sound-toggle`
- `sound-output`
- `sound-change [up/down/mute] <increment>`
## Caffeine
Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
- `caffeine` # Toggle caffeine
- `caffeine-status` # Return active/inactive
## Night-Shift
Blue light filter, using wlsunset
- `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`
## Compress/Extract
Some shortcuts to compress and extract files.
- `compress` ...
- `extract` ...
-29
View File
@@ -1,29 +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/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:
- **NGINX**: Reverse proxy for routing traffic to services via my domain name.
- **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. (legaly 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.
- **SSH**: Secure remote access configuration for server management. (via browser too)
- **Security related stuff**: Cloudflared, Fail2Ban, Firewall
+21 -6
View File
@@ -1,17 +1,32 @@
# Themes
Themes are defined in `themes`. Those themes define the colors, fonts, icons, etc, used by Hyprland and the apps/programs installed.
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 one of the existing themes and change the variables.
Wallpapers are loaded from the [hadi's awesome-wallpapers](https://github.com/anotherhadi/awesome-wallpapers) repo.
Wallpapers are loaded from the `home/wallpapers` folder.
## Gallery
### Rose-pine
### Nixy
![Home](../.github/assets/rose-pine/home.png)
![Flake & Spotify](../.github/assets/rose-pine/flake-spotify.png)
![Browser and notification center](../.github/assets/rose-pine/browser-and-notifications.png)
![nixy1](src/nixy/1.png)
![nixy2](src/nixy/2.png)
![nixy3](src/nixy/3.png)
### Catppuccin
![catppuccin1](src/catppuccin/1.png)
![catppuccin2](src/catppuccin/2.png)
![catppuccin3](src/catppuccin/3.png)
### Windows
![windows1](src/windows/1.png)
![windows2](src/windows/2.png)
![windows3](src/windows/3.png)
+42
View File
@@ -0,0 +1,42 @@
# Todolist
feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md))
- [ ] Nixy
- [ ] Installation script ([install.sh](./scripts/install.sh) to test on a fresh install)
- [ ] Variables-template with defaults
- [ ] Themes
- [ ] Upload new wallpapers
- [ ] MacOS theme
- [ ] GithubFetch: Neofetch like, github calendar in the terminal
- [ ] Write a hyprland shortcuts markdown file (Parse the hyprland settings conf)
- [ ] Tofi (Wofi but terminal based)
- [ ] Waybar
- [ ] Caffeine status
- [ ] Night-shift status
- [ ] Hyprland
- [ ] Make hyprcursor work
- [ ] Animations based on app name
- [ ] Wofi: popin
- [ ] Wlogout: fade in
- [ ] Fix screenshots
- [ ] Nixvim
- [ ] Telescope: find with file content
- [ ] Markdown snippets
- [ ] Whichkey: Description for keybindings
- [ ] Spelling
- [ ] Backup system for some folders ($home/dev, $home/pictures, ...)
- [ ] Exclude file pattern (nodes modules, ...)
- [ ] Auto backup when a specific usb key is plugged
- [ ] Usb security for laptop & server, variable in variables.nix, disable for guest
- [ ] Server
- [ ] Bitcoin-git
- [ ] ServerFetch: Neofetch like, but for server: CPU, RAM, Disk, Network, Uptime, status (check with uptime kuma API)
- [ ] Ntfy auth file
- [ ] Launch transmission-openvpn on boot (see hosts/server/modules/jackflix/transmission.nix)
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/env bash
# Compress png files in ./docs/src
[[ -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
for file in ./home/wallpapers/*.png; do
optipng "$file"
done
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env bash
# This script is used to copy my own configuration to the `./hosts/guest` one, and changing some settings
[[ -d "./hosts" ]] || (
echo "Folder ./hosts not found"
exit 1
)
LAPTOP_CONFIG="./hosts/laptop"
GUEST_CONFIG="./hosts/guest"
cp "$LAPTOP_CONFIG/configuration.nix" "$GUEST_CONFIG/configuration.nix"
cp "$LAPTOP_CONFIG/variables.nix" "$GUEST_CONFIG/variables.nix"
# Remove the NVIDIA driver import
config=$(cat "$LAPTOP_CONFIG/configuration.nix")
config=$(echo "$config" | sed 's/..\/shared\/nvidia/# ..\/shared\/nvidia/')
config=$(echo "$config" | sed 's/..\/shared\/prime/# ..\/shared\/prime/')
echo "$config" >"$GUEST_CONFIG/configuration.nix"
variables=$(cat "$LAPTOP_CONFIG/variables.nix")
variables=$(echo "$variables" | sed 's/112569860+anotherhadi@users.noreply.github.com/your_email/')
variables=$(echo "$variables" | sed 's/hadi/your_username/')
variables=$(echo "$variables" | sed 's/Hadi/your_username/')
variables=$(echo "$variables" | sed 's/sops = true/sops = false/')
variables=$(echo "$variables" | sed 's/obsidian = true/obsidian = false/')
variables=$(echo "$variables" | sed 's/tailscale = true/tailscale = false/')
echo "$variables" >"$GUEST_CONFIG/variables.nix"
+23
View File
@@ -0,0 +1,23 @@
#!/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=$(~/go/bin/md-table-of-contents ./docs/src/README_template.md)
version=$(git describe --tags --abbrev=0)
readme_content=$(cat "./docs/src/README_template.md")
header=${header//\{date\}/$(date '+%D')}
header=${header//\{primarycolor\}/89b4fa}
header=${header//\{backgroundcolor\}/181825}
header=${header//\{version\}/$version}
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"
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env bash
[[ -f "./home/system/hyprland/default.nix" ]] || (echo "File ./home/system/hyprland/default.nix not found" && exit 1)
config=$( cat "./home/system/hyprland/default.nix")
# get text between
# bind = [
# and next ]
# Example:
# "$mod, E, exec, ${pkgs.xfce.thunar}/bin/thunar" # Description
# Steps:
# We should remove the ""
# $mod replace by Super key
# $shiftMod replace by "Super Shift"
# Concat with key
# Remove , exec,
# Remove variables and /bin/ if present
# Create a markdown table with everything
+78
View File
@@ -0,0 +1,78 @@
#!/usr/bin/env bash
# https://github.com/anotherhadi/nixy
# Installation script: Should be run on fresh nixos install.
printf "\n\e[0;92m- \e[0m\e[1;77mNixy's Installation Script\e[0;96m [anotherhadi/nixy]\e[0m"
# Check if we're on the good directory
[[ -f "./docs/scripts/install.sh" ]] || (
printf "\n\e[0;91mx \e[0m\e[1;77mNot in the project root directory\e[0m"
exit 1
)
DIR=$PWD
# Create a new configuration
read -rp $'\n\e[0;92m+\e[0m\e[1;77m Username: \e[0;96m' username
read -rp $'\n\e[0;92m+\e[0m\e[1;77m Hostname: \e[0;96m' hostname
HOST_DIR="./hosts/$hostname"
mkdir "$HOST_DIR"
nixos-generate-config --show-hardware-config >"$HOST_DIR/hardware-configuration.nix"
printf "\n\e[0;92m? \e[0m\e[1;77mInstall Nvidia drivers?\e[0;96m [y/N]\e[0m"
read -r yn
yn=$(echo "$yn" | tr '[:upper:]' '[:lower:]')
if [[ $yn == "y" || $yn == "yes" ]]; then
nvidia=true
else
nvidia=false
fi
printf "\n\e[0;92m? \e[0m\e[1;77mInstall prime?\e[0;96m [y/N]\e[0m"
read -r yn
yn=$(echo "$yn" | tr '[:upper:]' '[:lower:]')
if [[ $yn == "y" || $yn == "yes" ]]; then
prime=true
else
prime=false
fi
cp "$LAPTOP_CONFIG/configuration.nix" "$HOST_DIR/configuration.nix"
cp "$LAPTOP_CONFIG/variables.nix" "$HOST_DIR/variables.nix"
config=$(cat "$LAPTOP_CONFIG/configuration.nix")
if [[ $nvidia == false ]]; then
config=$(echo "$config" | sed 's/..\/shared\/nvidia/# ..\/shared\/nvidia/')
fi
if [[ $prime == false ]]; then
config=$(echo "$config" | sed 's/..\/shared\/prime/# ..\/shared\/prime/')
fi
echo "$config" >"$HOST_DIR/configuration.nix"
variables=$(cat "$LAPTOP_CONFIG/variables.nix")
variables=$(echo "$variables" | sed 's/112569860+anotherhadi@users.noreply.github.com/your_email/')
variables=$(echo "$variables" | sed "s/hadi/$username/")
variables=$(echo "$variables" | sed "s/nixy/$hostname/") # FIXME: Host name can be mixed with themes
variables=$(echo "$variables" | sed "s/Hadi/$username/")
variables=$(echo "$variables" | sed 's/sops = true/sops = false/')
variables=$(echo "$variables" | sed 's/obsidian = true/obsidian = false/')
variables=$(echo "$variables" | sed 's/tailscale = true/tailscale = false/')
echo "$variables" >"$HOST_DIR/variables.nix"
# Add it to the git index
git add .
printf "\n\e[0;92m+ \e[0m\e[1;77mHost added!\e[0m"
# REBUILD
printf "\n\e[0;92m? \e[0m\e[1;77mDo you want to rebuild?\e[0;96m [y/N]\e[0m"
read -r yn
yn=$(echo "$yn" | tr '[:upper:]' '[:lower:]')
if [[ $yn == "y" || $yn == "yes" ]]; then
sudo nixos-rebuild switch --flake "$DIR"#"$hostname"
fi
printf "\n\e[0;92m✓ \e[0m\e[1;77mDone!\e[0m"
+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
+50
View File
@@ -0,0 +1,50 @@
**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
![catppuccin1](docs/src/catppuccin/1.png)
![catppuccin2](docs/src/catppuccin/2.png)
![catppuccin3](docs/src/catppuccin/3.png)
## Architecture
- 🏠 `home` are the dotfiles and configuration files for the user
- 💻 `hosts` are the system configuration files
- 'laptop' is my configuration for my laptop with Nvidia
- 'server' is for my homeserver (w/nextcloud, nginx, vaultwarden, ... look `hosts/server`)
- 'guest' is a *template* that you can copy and modify for *your own system*
- 'themes' contains all the *themes* available *(see [THEMES.md](docs/THEMES.md))*
- 'modules' are some nix modules that you can import (Nvidia, prime, fonts, ...)
- 🤫 `secrets` are the secrets files encrypted with sops-nix
## Installation
```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos
```
- Copy the `hosts/guest` 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 the "yourhostname" 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
- [TODO.md](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING.md](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT Licensey
+33
View File
@@ -0,0 +1,33 @@
[//]: # (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: {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
+1
View File
@@ -0,0 +1 @@
62b52ad02a886c19a8cfe1ea17e8aaad50f23632
Generated
+326 -1451
View File
File diff suppressed because it is too large Load Diff
+72 -58
View File
@@ -1,77 +1,91 @@
{
# 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-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.11";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
stylix.url = "github:danth/stylix";
sops-nix.url = "github:Mic92/sops-nix";
nvf.url = "github:notashelf/nvf";
notashelf-tuigreet.url = "github:NotAShelf/tuigreet";
helium-browser.url = "github:oxcl/nix-flake-helium-browser";
nur-anotherhadi.url = "github:anotherhadi/nur-packages";
nix-index-database = {
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
caelestia-shell = {
url = "github:caelestia-dots/shell";
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
caelestia-cli = {
url = "github:caelestia-dots/cli";
apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
spicetify-nix.url = "github:the-argus/spicetify-nix";
sops-nix = {
url = "github:Mic92/sops-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";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
nurpkgs.url = "github:nix-community/NUR";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
};
outputs = inputs @ {
nixpkgs,
nixpkgs-stable,
...
}: let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
args = {
inherit
inputs
nixpkgs
system
pkgs
;
pkgs-stable = nixpkgs-stable.legacyPackages.${system};
pkgs-nur-hadi = inputs.nur-anotherhadi.packages.${system};
outputs = inputs@{ nixpkgs, nur, ... }: {
nixosConfigurations = {
nixy = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/laptop/configuration.nix
inputs.nixos-hardware.nixosModules.omen-16-n0005ne
inputs.home-manager.nixosModules.home-manager
{
nixpkgs.overlays = [ nur.overlay ];
_module.args = { inherit inputs; };
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users."hadi" = import ./home/laptop.nix;
extraSpecialArgs = { inherit inputs; };
};
}
];
};
jack = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
inputs.sops-nix.nixosModules.sops
./hosts/server/configuration.nix
inputs.home-manager.nixosModules.home-manager
{
nixpkgs.overlays = [ nur.overlay ];
_module.args = { inherit inputs; };
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users."hadi" = import ./home/server.nix;
extraSpecialArgs = { inherit inputs; };
};
}
];
};
yourhostname = nixpkgs.lib.nixosSystem { # CHANGEME
system = "x86_64-linux";
modules = [
./hosts/yourhostname/configuration.nix # CHANGEME
inputs.home-manager.nixosModules.home-manager
{
nixpkgs.overlays = [ nur.overlay ];
_module.args = { inherit inputs; };
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users."yourusername" = import # CHANGEME
./home/laptop.nix; # you can also create a new ./home/yourhostname.nix
extraSpecialArgs = { inherit inputs; };
};
}
];
};
};
merge = nixpkgs.lib.foldl nixpkgs.lib.recursiveUpdate {};
in
merge [
(import ./home/programs/nvf/flake.nix args)
(import ./home/programs/group/flake.nix args)
(import ./home/programs/nixy/flake.nix args)
{
formatter.${system} = pkgs.alejandra;
nixosConfigurations = {
h-laptop = import ./hosts/laptop/flake.nix args;
h-work = import ./hosts/work/flake.nix args;
jack = import ./hosts/server/flake.nix args;
};
}
];
};
}
+103
View File
@@ -0,0 +1,103 @@
{ pkgs, config, ... }: {
imports = [
../hosts/laptop/variables.nix # CHANGEME, replace with your host
# Programs
./programs/btop
./programs/cava
./programs/kitty
./programs/nextcloud
./programs/nvim
./programs/qutebrowser
./programs/spicetify
./programs/zathura
./programs/shell
./programs/git
# Scripts
./scripts # All scripts
# System (Desktop environment like stuff)
./system/dunst
./system/gtk
./system/hyprland
./system/waybar
./system/wlogout
./system/wofi
./system/mime
./system/udiskie
./system/sops/laptop.nix # You should probably remove this line
];
home = {
inherit (config.var) username;
inherit (config.var) homeDirectory;
packages = with pkgs; [
swappy
imv
discord
obsidian
xfce.thunar
bitwarden
vlc
nextcloud-client
tailscale
# Dev
go
cargo
nodejs
python3
jq
git-ignore
nurl
prefetch-npm-deps
figlet
# Utils
fd
bc
gcc
blueman
zip
unzip
xdg_utils
wget
curl
wf-recorder
glow
nwg-displays
wireguard-tools
bitwarden-cli
optipng
pfetch
usbutils
# Just cool
peaclock
cbonsai
pipes
cmatrix
# Backup
vscode
tor-browser
firefox
neovide
];
# Import wallpapers into $HOME/wallpapers
file."wallpapers" = {
recursive = true;
source = ./wallpapers;
};
stateVersion = "24.05";
};
programs.home-manager.enable = true;
}
+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}'";
};
};
};
}
-66
View File
@@ -1,66 +0,0 @@
{
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;
clipboard-read = "allow";
clipboard-write = "allow";
copy-on-select = "clipboard";
app-notifications = false;
custom-shader = "${cursorShaders}/cursor_warp.glsl";
custom-shader-animation = "always";
keybind = [
# "ctrl+j=goto_split:left"
# "ctrl+i=goto_split:up"
# "ctrl+k=goto_split:down"
# "ctrl+l=goto_split:right"
# "shift+ctrl+h=new_split:left"
# "shift+ctrl+j=new_split:down"
# "shift+ctrl+k=new_split:up"
# "shift+ctrl+l=new_split:right"
"shift+ctrl+tab=new_tab"
];
};
};
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
'';
}
+31 -34
View File
@@ -1,10 +1,8 @@
# Git configuration
{config, ...}: let
username = config.var.git.username;
email = config.var.git.email;
in {
{ config, ... }: {
programs.git = {
enable = true;
userName = config.var.git.username;
userEmail = config.var.git.email;
ignores = [
".cache/"
".DS_Store"
@@ -17,37 +15,36 @@ in {
"result"
"result-*"
];
settings = {
user.name = username;
user.email = email;
extraConfig = {
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)";
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`";
};
};
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`";
};
};
}
-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";
};
};
}
-45
View File
@@ -1,45 +0,0 @@
{
pkgs,
pkgs-stable,
pkgs-nur-hadi,
...
}: {
home.packages = with pkgs-stable; [
vlc # Video player
obsidian # Note taking app
textpieces # Manipulate texts
resources # Ressource 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
librewolf # Backup browser
# I love TUIs
caligula # User-friendly, lightweight TUI for disk imaging (ISO, USB BOOT)
browsh # A modern text-based browser that renders anything that a modern browser can. It runs in a terminal and can be used remotely over SSH
dysk # A terminal-based disk usage analyzer
wikiman # Offline search engine for manual pages (arch wiki, tldr)
tealdeer # Fast tldr client
sttr # Minimalist "cyberchef" like. Cross-platform, cli app to perform various operations on string
wiremix # Simple TUI mixer for PipeWire
slides # A terminal-based presentation tool that allows you to create and deliver presentations directly from the command line
pom # Pomodoro timer in your terminal
pkgs.wifitui # TUI for managing wifi
pkgs-nur-hadi.usbguard-tui # TUI for managing USBGuard rules
pkgs-nur-hadi.sheets # Terminal based spreadsheet tool
# I love CLIs
httpie # Command-line HTTP client, a user-friendly cURL replacement
gh # GitHub
gh-dash # A terminal dashboard for GitHub
figlet # Transform text into ASCII art
pastel # Command-line tool to generate, analyze, convert and manipulate colors
imagemagick # Image manipulation tool
chafa # Image to ANSI/Unicode converter and more.
];
}
@@ -1,48 +0,0 @@
{
pkgs,
pkgs-stable,
pkgs-nur-hadi,
}:
(with pkgs-stable; [
# Web
dirb
ffuf
katana
whatweb
# Hashes
hashcat
haiti
hydra
john
# Databases
mariadb
redis
sqlmap
nosqli
# Network
inetutils
termshark # wireshark in TUI
dnsrecon
whois
dig
nmap
samba
# Misc
metasploit
nuclei
openvpn
# Secrets
trufflehog
# Forensics
binwalk
])
++ (with pkgs-nur-hadi; [
spilltea
jwt-tui
])
-45
View File
@@ -1,45 +0,0 @@
{
pkgs,
pkgs-stable,
pkgs-nur-hadi,
...
}: {
home.packages = import ./cybersecurity-packages.nix {
inherit pkgs pkgs-stable pkgs-nur-hadi;
};
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=";
};
};
}
-17
View File
@@ -1,17 +0,0 @@
{
pkgs,
pkgs-stable,
}:
(with pkgs; [
go
claude-code
])
++ (with pkgs-stable; [
nodejs
air
duckdb
python3
jq
nix-prefetch-github
rsync
])
-7
View File
@@ -1,7 +0,0 @@
{
pkgs,
pkgs-stable,
...
}: {
home.packages = import ./dev-packages.nix {inherit pkgs pkgs-stable;};
}
-22
View File
@@ -1,22 +0,0 @@
{
inputs,
pkgs,
pkgs-stable,
pkgs-nur-hadi,
system,
...
}: let
devPackages = import ./dev-packages.nix {inherit pkgs pkgs-stable;};
cyberPackages = import ./cybersecurity-packages.nix {inherit pkgs pkgs-stable pkgs-nur-hadi;};
in {
packages.${system} = {
dev = pkgs.buildEnv {
name = "dev-tools";
paths = devPackages;
};
cybersecurity = pkgs.buildEnv {
name = "cybersecurity-tools";
paths = cyberPackages;
};
};
}
-16
View File
@@ -1,16 +0,0 @@
{
pkgs-stable,
pkgs-nur-hadi,
inputs,
...
}: {
home.packages = with pkgs-stable; [
tty-solitaire
bastet
peaclock
cbonsai
pipes
cmatrix
fastfetch
];
}
-459
View File
@@ -1,459 +0,0 @@
{
config,
lib,
pkgs,
...
}: 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.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";
}
];
}
]
-80
View File
@@ -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";
}
];
}
];
}
]
-50
View File
@@ -1,50 +0,0 @@
[
{
name = "Other";
icon = "category";
bookmarks = [
{
name = "Documentation";
icon = "menu_book";
bookmarks = [
{
name = "Hyprland Wiki";
url = "https://wiki.hypr.land";
}
{
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";
}
];
}
]
-48
View File
@@ -1,48 +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";
}
];
}
]
-138
View File
@@ -1,138 +0,0 @@
{
inputs,
config,
pkgs,
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.stdenv.hostPlatform.system}.helium).override {
flags = heliumFlags;
};
patchScript = pkgs.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.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.symlinkJoin {
name = "helium-wrapped";
paths = [originalPkg];
nativeBuildInputs = [pkgs.makeWrapper];
postBuild = ''
wrapProgram $out/bin/helium \
--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 = "Navigateur Web";
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 = "Navigateur Web";
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 = "secure";
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
];
};
};
}
+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;
};
}
-19
View File
@@ -1,19 +0,0 @@
{pkgs, ...}: let
nightshift-toggle =
pkgs.writeShellScriptBin "nightshift-toggle"
# bash
''
if pidof "hyprsunset"; then
pkill hyprsunset
${pkgs.libnotify}/bin/notify-send "Night Shift Disabled" "Returning to full spectrum light. Filter disabled."
else
${pkgs.hyprsunset}/bin/hyprsunset -t 4500 &
${pkgs.libnotify}/bin/notify-send "Night Shift Activated" "Welcome to the warm side. Blue light filtering is now active."
fi
'';
in {
home.packages = with pkgs; [
hyprsunset
nightshift-toggle
];
}
-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
''
-33
View File
@@ -1,33 +0,0 @@
{
inputs,
pkgs,
config,
...
}: let
c = config.lib.stylix.colors;
in {
imports = [inputs.nvf.homeManagerModules.default];
programs.nvf = {
enable = true;
settings = {
vim.luaConfigRC.hl-overrides = ''
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
];
};
};
}
-37
View File
@@ -1,37 +0,0 @@
{
inputs,
pkgs,
system,
...
}: let
nvimConfig = inputs.nvf.lib.neovimConfiguration {
inherit pkgs;
modules = [
./options.nix
./languages.nix
./picker.nix
./snacks.nix
./keymaps.nix
./utils.nix
./mini.nix
];
};
in {
packages.${system}.nvim = nvimConfig.neovim;
apps.${system}.nvim = {
type = "app";
program = "${nvimConfig.neovim}/bin/nvim";
};
defaultApp.${system} = {
type = "app";
program = "${nvimConfig.neovim}/bin/nvim";
};
homeManagerModules.nvim = {
imports = [
inputs.nvf.homeManagerModules.default
./default.nix
];
};
}
-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 spellLazyGitcheck";
}
{
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;
}
];
};
}
-116
View File
@@ -1,116 +0,0 @@
{...}: {
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;
};
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";
};
};
};
};
}
-100
View File
@@ -1,100 +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 = '+terminal' },
{ 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' },
{ mode = 'n', keys = '<Leader>e', desc = 'yazi' },
},
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";
}
];
};
}
-18
View File
@@ -1,18 +0,0 @@
{
vim.utility.snacks-nvim = {
enable = true;
setupOpts = {
quickfile.enabled = true;
statuscolumn.enabled = true;
zen.enabled = true;
bufdelete.enabled = true;
gitsigns.enabled = true;
animate.enabled = true;
lazygit = {
enabled = true;
configure = false;
};
terminal.enabled = true;
};
};
}
-72
View File
@@ -1,72 +0,0 @@
{pkgs, ...}: {
vim = {
luaConfigRC.remove-todo-keymaps = ''
vim.keymap.del("n", "<leader>tdq")
vim.keymap.del("n", "<leader>tdt")
'';
undoFile.enable = true;
utility.yazi-nvim = {
enable = true;
mappings.openYazi = "<leader>e";
};
notes.todo-comments.enable = true;
assistant.copilot = {
enable = true;
cmp.enable = true;
};
autocomplete = {
nvim-cmp = {
enable = true;
sources = {
buffer = "[Buffer]";
path = "[Path]";
};
sourcePlugins = [
pkgs.vimPlugins.cmp-cmdline
];
};
};
snippets.luasnip.enable = true;
ui = {
noice.enable = true;
colorizer.enable = true;
};
visuals = {
rainbow-delimiters.enable = true;
};
extraPlugins = {
sttr-nvim = {
package = pkgs.vimUtils.buildVimPlugin {
name = "sttr-nvim";
src = pkgs.fetchFromGitHub {
owner = "anotherhadi";
repo = "sttr.nvim";
rev = "b41f2f51372222e23efbe5df9d72391cd933d4d1";
hash = "sha256-JPv0NNNUUNPNJM5LHYjcmTvilbOKB3OxI2Q6wxVbTks=";
};
};
setup = ''
require("sttr").setup()
'';
};
jwt-tui-nvim = {
package = pkgs.vimUtils.buildVimPlugin {
name = "jwt-tui-nvim";
src = pkgs.fetchFromGitHub {
owner = "anotherhadi";
repo = "jwt-tui.nvim";
rev = "c5100cb2cdfaf333014076a1a5c4c6a778bf3983";
hash = "sha256-qnQYZuQwyWkezhuyOorM67KBtatUboubofuT9A6McJI=";
};
};
setup = ''
require("jwt-tui").setup()
'';
};
};
};
}
+9
View File
@@ -0,0 +1,9 @@
{
programs.nixvim = {
enable = true;
colorschemes.catppuccin = {
enable = true;
settings = { transparent_background = true; };
};
};
}
+31
View File
@@ -0,0 +1,31 @@
{ inputs, ... }: {
imports = [
inputs.nixvim.homeManagerModules.nixvim
./plugins/auto-pairs.nix
./plugins/bufferline.nix
./plugins/lazygit.nix
./plugins/telescope.nix
./plugins/nvim-tree.nix
./plugins/lightline.nix
./plugins/git.nix
./plugins/cmp.nix
./plugins/none-ls.nix
./plugins/wilder.nix
./plugins/lsp.nix
./plugins/treesitter.nix
./plugins/toggleterm.nix
./plugins/copilot.nix
./plugins/whichkey.nix
./plugins/alpha.nix
./plugins/keymaps.nix
./plugins/comment.nix
./plugins/oil.nix
./plugins/trouble.nix
./plugins/tmux-navigator.nix
./plugins/noice.nix
./plugins/obsidian.nix
./plugins/image.nix
./options.nix
./colorscheme.nix
];
}
+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 = true;
scrolloff = 8;
mouse = "a";
wrap = false;
swapfile = false;
undofile = true;
conceallevel = 2;
};
}
+133
View File
@@ -0,0 +1,133 @@
{ 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[[e ${config.var.configDirectory}]] 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";
};
}
];
}
];
};
}
@@ -0,0 +1 @@
{ programs.nixvim.plugins.nvim-autopairs = { enable = true; }; }
@@ -0,0 +1 @@
{ programs.nixvim.plugins.bufferline = { enable = true; }; }
+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 })";
};
};
};
};
}
+1
View File
@@ -0,0 +1 @@
{ programs.nixvim.plugins.comment = { enable = true; }; }
+5
View File
@@ -0,0 +1,5 @@
{
programs.nixvim.plugins.copilot-vim = {
enable = true;
};
}
+6
View File
@@ -0,0 +1,6 @@
{
programs.nixvim.plugins.gitsigns = {
enable = true;
settings = { current_line_blame = false; };
};
}
+1
View File
@@ -0,0 +1 @@
{ programs.nixvim.plugins.image = { enable = true; }; }
+71
View File
@@ -0,0 +1,71 @@
{
programs.nixvim.keymaps = [
{
key = "<leader>e";
action = "<CMD>Neotree toggle<CR>";
}
{
key = "<space>fm";
action = "<CMD>lua vim.lsp.buf.format()<CR>";
}
{
key = "<leader>ot";
action = "<cmd>lua require('obsidian').util.toggle_checkbox()<cr>";
}
{
key = "<leader>oo";
action = "<cmd>ObsidianQuickSwitch<cr>";
}
{
key = "<leader>on";
action = "<cmd>ObsidianNew<cr>";
}
{
key = "<leader>of";
action = "<cmd>ObsidianSearch<cr>";
}
{
key = "<leader>oi";
action = "<cmd>ObsidianPasteImg<cr>";
}
{
key = "<leader>E";
action = "<cmd>Oil<cr>";
}
{
key = "<leader>t";
action = "<cmd>TroubleToggle<cr>";
}
{
key = "<C-h>";
action = "<cmd>TmuxNavigateLeft<cr>";
}
{
key = "<C-j>";
action = "<cmd>TmuxNavigateDown<cr>";
}
{
key = "<C-k>";
action = "<cmd>TmuxNavigateUp<cr>";
}
{
key = "<C-l>";
action = "<cmd>TmuxNavigateRight<cr>";
}
# Terminal Mappings
{
mode = "t";
key = "<esc>";
action = "<C-\\><C-n>";
}
];
}
+1
View File
@@ -0,0 +1 @@
{ programs.nixvim.plugins.lazygit = { enable = true; }; }
+1
View File
@@ -0,0 +1 @@
{ programs.nixvim.plugins.lualine = { enable = true; }; }
+24
View File
@@ -0,0 +1,24 @@
{
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;
svelte.enable = true;
};
keymaps.lspBuf = {
"gd" = "definition";
"gD" = "references";
"gt" = "type_definition";
"gi" = "implementation";
"K" = "hover";
};
};
};
}
+1
View File
@@ -0,0 +1 @@
{ programs.nixvim.plugins.noice = { enable = true; }; }
+20
View File
@@ -0,0 +1,20 @@
{
programs.nixvim.plugins.none-ls = {
enable = true;
sources = {
diagnostics = {
golangci_lint.enable = true;
statix.enable = true;
};
formatting = {
gofmt.enable = true;
goimports.enable = true;
nixfmt.enable = true;
markdownlint.enable = true;
tidy.enable = true;
shellharden.enable = true;
shfmt.enable = true;
};
};
};
}
+5
View File
@@ -0,0 +1,5 @@
{
programs.nixvim.plugins.neo-tree = {
enable = true;
};
}
+9
View File
@@ -0,0 +1,9 @@
{ config, ... }: {
programs.nixvim.plugins.obsidian = {
enable = config.var.obsidian;
settings = {
dir = "~/nextcloud/Notes";
disable_frontmatter = true;
};
};
}
+6
View File
@@ -0,0 +1,6 @@
{
programs.nixvim.plugins.oil = {
enable = true;
settings = { default_file_explorer = false; };
};
}
+13
View File
@@ -0,0 +1,13 @@
{
programs.nixvim.plugins.telescope = {
enable = true;
keymaps = {
"<leader>fg" = "live_grep";
#"<C-p>" = {
# action = "git_files";
# desc = "Telescope Git Files";
#};
};
extensions.fzf-native = { enable = true; };
};
}
@@ -0,0 +1 @@
{ programs.nixvim.plugins.tmux-navigator = { enable = true; }; }
@@ -0,0 +1,9 @@
{
programs.nixvim.plugins.toggleterm = {
enable = true;
settings = {
open_mapping = "[[<c-t>]]";
direction = "horizontal";
};
};
}
+10
View File
@@ -0,0 +1,10 @@
{
programs.nixvim.plugins = {
treesitter = {
enable = true;
nixGrammars = true;
indent = true;
};
treesitter-context.enable = true;
};
}
+1
View File
@@ -0,0 +1 @@
{ programs.nixvim.plugins.trouble = { enable = true; }; }

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