569 Commits

Author SHA1 Message Date
Hadi
fc4dba9a75 update todos
Former-commit-id: f760d9b564
2024-10-15 15:03:50 +02:00
Hadi
2b56da08c6 change tab size for markdown
Former-commit-id: 80e52cc5c6
2024-10-15 15:02:39 +02:00
Hadi
f95f539cad Add comments to explain each file
Former-commit-id: 915a767283
2024-10-15 15:02:07 +02:00
Hadi
d8b626139a update markdown tab size
Former-commit-id: 4733414bb3
2024-10-15 14:24:58 +02:00
Hadi
477679c0a7 hyprshot -> grimblast
Former-commit-id: 3910bef1bf
2024-10-15 14:14:12 +02:00
Hadi
109ce61bbe add glib
Former-commit-id: 92dded9cc6
2024-10-15 14:05:20 +02:00
Hadi
0c50468ec2 update flake
Former-commit-id: 5e94040f34
2024-10-15 13:42:42 +02:00
Hadi
71f03bde80 update todo
Former-commit-id: 178cb469ab
2024-10-15 13:42:12 +02:00
Hadi
b568faa7f2 From flake to nixvim plugin
Former-commit-id: 59202f132e
2024-10-15 03:47:58 +02:00
Hadi
31a84fd6ff update todo
Former-commit-id: 9f98570ef4
2024-10-15 03:47:43 +02:00
Hadi
30d497fef2 update todo
Former-commit-id: bcd3bd19f0
2024-10-15 03:28:56 +02:00
github-actions
6e41aed96f Update README.md (auto)
Former-commit-id: ad13d77413
2024-10-15 01:22:40 +00:00
Hadi
9256aabe91 edit readme
Former-commit-id: 98d8e2c87d
2024-10-15 03:22:09 +02:00
github-actions
7d54322e8c Update README.md (auto)
Former-commit-id: fd87e06e20
2024-10-15 01:20:20 +00:00
Hadi
364945be45 Edit readme
Former-commit-id: 6c9e632ab8
2024-10-15 03:19:53 +02:00
Hadi
7932ba1f44 Edit github actions
Former-commit-id: 66160d6ae2
2024-10-15 03:18:22 +02:00
Hadi
4eef13d9ba Changes config screenshots
Former-commit-id: 480ae1761d
2024-10-15 03:17:17 +02:00
Hadi
80ea020322 Edit aliases
Former-commit-id: 1b41b58e68
2024-10-15 03:16:57 +02:00
Hadi
31d025a1b8 Update todolist
Former-commit-id: bbbf23b3b0
2024-10-15 02:47:32 +02:00
Hadi
b41644c69d Config lazygit
Former-commit-id: ff2d397191
2024-10-15 02:45:32 +02:00
Hadi
0ec95f82d2 Merge branch 'main' of github.com:anotherhadi/nixy
Former-commit-id: afe8e81bf6
2024-10-15 02:34:33 +02:00
Hadi
0df71d76df Init lazygit hm module
Former-commit-id: d097caf401
2024-10-15 02:34:18 +02:00
Hadi
d3f39e88dc Add git aliases
Former-commit-id: 4b6814ae28
2024-10-15 02:34:00 +02:00
github-actions
a8db853539 Update README.md (auto)
Former-commit-id: c76675c145
2024-10-15 00:29:21 +00:00
Hadi
ba4af473f4 Move files to .github
Former-commit-id: ff86acc8c8
2024-10-15 02:28:55 +02:00
Hadi
c272a4a8f9 Edit github actions
Former-commit-id: 7bb5c3b36c
2024-10-15 02:28:24 +02:00
Hadi
16f1aba0c1 Add transparentButtons option in hyprpanel
Former-commit-id: 1c477bacc3
2024-10-15 02:23:14 +02:00
Hadi
9be215cdea Update todo
Former-commit-id: 391d3dd58b
2024-10-15 02:18:54 +02:00
Hadi
f125369e88 Add lazygit
Former-commit-id: e6dd29dac7
2024-10-15 02:17:45 +02:00
Hadi
73d9867b9a Add info
Former-commit-id: 67bed2c355
2024-10-14 22:29:08 +02:00
Hadi
04b3882399 Update github actions
Former-commit-id: 5ec16c82c4
2024-10-14 22:27:33 +02:00
github-actions
ad0c8828cf Update README.md (auto)
Former-commit-id: 277faa310d
2024-10-14 20:21:09 +00:00
Hadi
89252b80bf Init tofi
Former-commit-id: 059acab3f9
2024-10-14 22:20:39 +02:00
Hadi
ab6ae9e7fb Update todolist
Former-commit-id: 95248322f7
2024-10-14 22:20:30 +02:00
Hadi
c84eb4e185 Update readme
Former-commit-id: 0ea82dbf32
2024-10-14 22:20:16 +02:00
Hadi
00236ad9b1 Update github actions
Former-commit-id: 65b9ab0b7e
2024-10-14 22:19:25 +02:00
Hadi
3e9f37ea04 Update readme
Former-commit-id: 4fd7e39c4e
2024-10-14 22:14:49 +02:00
Hadi
0019097d38 Update github actions
Former-commit-id: de477fd3dd
2024-10-14 22:14:30 +02:00
Hadi
90284912bc Update readme
Former-commit-id: 62e6928036
2024-10-14 22:13:13 +02:00
Hadi
f9f63657fb Update github actions
Former-commit-id: 4cfdd8f461
2024-10-14 22:12:52 +02:00
Hadi
319da87024 Update readme
Former-commit-id: 2909de8e3a
2024-10-14 22:11:18 +02:00
Hadi
b5cad0e00c Fix github action
Former-commit-id: e2f6c5e1ff
2024-10-14 22:09:29 +02:00
Hadi
892666e946 Update readme
Former-commit-id: 206de96fa2
2024-10-14 22:08:31 +02:00
Hadi
d1f5b0ea4f Update github actions
Former-commit-id: ff7f46aa5d
2024-10-14 22:07:10 +02:00
Hadi
a8980eb4dd Add white-noise app
Former-commit-id: 34cc630789
2024-10-14 21:23:59 +02:00
Hadi
8482de47b2 Update todolist
Former-commit-id: eb4cb4f4f4
2024-10-14 21:23:45 +02:00
Hadi
7faec62f69 Init KDE Connect
Former-commit-id: 52d7a9f2f0
2024-10-14 21:10:16 +02:00
Hadi
69f2ccceca Fix gtk settings key
Former-commit-id: a8dca6d1c1
2024-10-14 20:57:56 +02:00
Hadi
476d89a651 Flake update
Former-commit-id: d06355d5b7
2024-10-14 20:51:31 +02:00
Hadi
690ae53780 Add documentation per modules
Former-commit-id: 39f74ee63c
2024-10-14 16:35:57 +02:00
Hadi
58ed393097 Edit network placement
Former-commit-id: bd57c19a2b
2024-10-14 14:22:14 +02:00
Hadi
4367c39873 Edit popup font size
Former-commit-id: b9e3f09e7f
2024-10-11 22:33:29 +02:00
Hadi
f32062d541 Fix copilot completion key overlap
Former-commit-id: f5388f478b
2024-10-11 13:02:43 +02:00
Hadi
eb57aa062e Edit todo
Former-commit-id: a24167d107
2024-10-10 22:42:02 +02:00
Hadi
fce3056d8f Init zenmode
Former-commit-id: 53703c0db0
2024-10-10 22:41:39 +02:00
Hadi
42bb93093c merge gh actions updates
Former-commit-id: 6adc0d7c3c
2024-10-10 21:43:33 +02:00
Hadi
e785e84bf2 Init hyprswitch
Former-commit-id: 4969b5aa8f
2024-10-10 21:43:24 +02:00
github-actions
e2af0156c8 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: f595e67528
2024-10-10 14:33:34 +00:00
Hadi
b071daad02 Update
Former-commit-id: b5071b889b
2024-10-10 16:33:21 +02:00
Hadi
4e7a020fc4 Update
Former-commit-id: fa59c4d8c2
2024-10-10 16:31:30 +02:00
github-actions
ac53f1a812 Update README.md (auto)
Former-commit-id: 568306aade
2024-10-10 14:29:41 +00:00
Hadi
5ed0ec12ea Update
Former-commit-id: 159ce3c1c2
2024-10-10 16:29:14 +02:00
Hadi
fc0c2b0d13 Update
Former-commit-id: df52538c42
2024-10-10 15:35:23 +02:00
Hadi
aa1f99e8f4 Update
Former-commit-id: ee894aaea7
2024-10-10 15:28:25 +02:00
Hadi
2b947bd5b1 Update
Former-commit-id: bd7ff1cc20
2024-10-10 15:09:59 +02:00
Hadi
c0efbbd734 Update
Former-commit-id: 3c2157260d
2024-10-09 18:34:02 +02:00
Hadi
6379ff551d Update
Former-commit-id: 36e9281397
2024-10-09 17:09:33 +02:00
Hadi
492d257fa5 Put every variables in top of the file for easy copy to another config
Former-commit-id: 0bd55fdc10
2024-10-09 15:12:50 +02:00
Hadi
3bebb475d7 Update
Former-commit-id: 55c7c7068a
2024-10-08 21:56:44 +02:00
Hadi
4a832f376f Update
Former-commit-id: 5603871ef1
2024-10-08 20:46:56 +02:00
Hadi
a5bd556df9 Update
Former-commit-id: a554505de2
2024-10-08 20:07:56 +02:00
Hadi
c6710b1d64 Update
Former-commit-id: 3f0a694b5f
2024-10-08 20:02:45 +02:00
Hadi
731aa270b6 Update
Former-commit-id: a781a227ac
2024-10-08 13:00:40 +02:00
Hadi
8c74fa0fc8 Remove duckduckgo theme changing alert
Former-commit-id: 5e8139963f
2024-10-08 12:37:56 +02:00
Hadi
0bb41bb6dd Update the readme
Former-commit-id: 85b8874094
2024-10-08 12:35:38 +02:00
Hadi
92e9e59f02 Update the readme
Former-commit-id: d7184174cd
2024-10-08 12:34:50 +02:00
Hadi
7a177e4bb2 Update
Former-commit-id: 8d7fbd74b5
2024-10-08 12:33:38 +02:00
Hadi
e8625f81e9 Update
Former-commit-id: 36527362a7
2024-10-08 11:43:12 +02:00
Hadi
b14c343f14 Update
Former-commit-id: e83de257ad
2024-10-08 11:29:59 +02:00
Hadi
c364668759 Update
Former-commit-id: c401b9bd7f
2024-10-08 10:39:10 +02:00
Hadi
3381fe405b Update
Former-commit-id: 741a6f97ae
2024-10-08 10:17:01 +02:00
Hadi
b738189d0c Update
Former-commit-id: 52e267a436
2024-10-07 20:41:30 +02:00
Hadi
ac914caf6a Update
Former-commit-id: d11cf580f9
2024-10-07 20:27:07 +02:00
Hadi
97e2c915cd Update
Former-commit-id: d37504de7c
2024-10-07 18:34:06 +02:00
Hadi
21ed46cd7c Update
Former-commit-id: 8a41ffad2f
2024-10-07 13:13:23 +02:00
Hadi
7eb4e5ade9 Update
Former-commit-id: 3aa0fb8a22
2024-10-07 12:02:26 +02:00
Hadi
dae95bc5be Update
Former-commit-id: 75f2c2c7c6
2024-10-07 11:17:59 +02:00
Hadi
a33cf73ff1 Update
Former-commit-id: ab65fe342b
2024-10-07 10:13:21 +02:00
Hadi
18c30e5931 Update
Former-commit-id: 905cc9a885
2024-10-06 18:49:52 +02:00
Hadi
13c8f27411 Testing
Former-commit-id: 23dcfd5290
2024-10-05 11:48:16 +02:00
Hadi
a640670baa Update
Former-commit-id: 270c1b959e
2024-10-04 21:12:13 +02:00
Hadi
ae77733c71 Update
Former-commit-id: 58fa41a210
2024-10-04 21:03:01 +02:00
Hadi
6827360045 Update
Former-commit-id: 8f6b049129
2024-10-04 10:58:53 +02:00
Hadi
359e9745d6 Update
Former-commit-id: 7047ffe785
2024-10-03 10:18:49 +02:00
Hadi
56bcd3d56a Update
Former-commit-id: fe657984fe
2024-10-01 17:16:24 +02:00
Hadi
8a81c546de Update
Former-commit-id: 660c99d5ed
2024-10-01 15:05:02 +02:00
Hadi
23f0682eac Update
Former-commit-id: 7f1c7446f8
2024-10-01 14:57:15 +02:00
Hadi
418bc45bd2 Update
Former-commit-id: 804e6b255e
2024-10-01 13:58:05 +02:00
Hadi
1c4fece944 Update
Former-commit-id: 381e839dfa
2024-10-01 13:21:25 +02:00
Hadi
3716ba6b4f Update
Former-commit-id: 57c0df5d48
2024-09-30 21:15:21 +02:00
Hadi
0e56be3428 Update
Former-commit-id: c1609eefff
2024-09-23 15:12:05 +02:00
Hadi
7beef9441e Update
Former-commit-id: 22c67467c0
2024-09-20 13:35:40 +02:00
Hadi
176e3ba305 Update
Former-commit-id: f49ac89514
2024-09-18 23:54:02 +02:00
Hadi
ed045316ff Update
Former-commit-id: e47edc0c1f
2024-09-18 23:53:39 +02:00
Hadi
cfec304bbb Update
Former-commit-id: 2721d11575
2024-09-18 00:52:23 +02:00
Hadi
575bb58bfc Update
Former-commit-id: c97e51a9d2
2024-09-16 17:28:52 +02:00
Hadi
9ce3df4884 Update
Former-commit-id: ac293a378c
2024-09-16 17:24:47 +02:00
Hadi
3c9875a110 Update
Former-commit-id: 615028dcca
2024-09-15 20:58:24 +02:00
Hadi
8c69c549db update
Former-commit-id: feeb938f5e
2024-09-13 22:07:19 +02:00
Hadi
f1f919fe49 Update
Former-commit-id: b6ec38b1a1
2024-09-13 20:04:14 +02:00
Hadi
12cc080fc3 Update
Former-commit-id: 86d990f157
2024-09-12 01:36:59 +02:00
Hadi
6b4b9a9aa7 Update
Former-commit-id: a16ea9af7d
2024-09-12 00:25:37 +02:00
Hadi
6207e48d84 Update
Former-commit-id: 7904e497bd
2024-09-11 17:53:25 +02:00
Hadi
b41dfdf664 Update
Former-commit-id: 7f5e4a8e6d
2024-09-10 09:50:27 +02:00
Hadi
8155f65fb9 Update
Former-commit-id: 1a7e84a8dd
2024-09-09 13:56:45 +02:00
Hadi
b0ca6aa757 Update
Former-commit-id: 381f88cf0d
2024-09-07 17:25:21 +02:00
Hadi
fd0251afbc Update
Former-commit-id: 166c9f3139
2024-09-06 20:19:21 +02:00
Hadi
5e16ae7463 Update
Former-commit-id: 316e0cd2d3
2024-09-04 22:37:24 +02:00
Hadi
2a2f4e4b9d Update
Former-commit-id: 8fe7237409
2024-09-04 22:36:17 +02:00
Hadi
eef1d9531f Update
Former-commit-id: 2ffa7e9518
2024-09-04 22:01:48 +02:00
Hadi
b92243118d Update
Former-commit-id: cc8d0ddca3
2024-09-04 21:24:51 +02:00
Hadi
01f9894fc6 update
Former-commit-id: da2aab6f76
2024-09-04 21:07:53 +02:00
Hadi
03d202250b update
Former-commit-id: 79403b916d
2024-09-04 21:06:59 +02:00
Hadi
9cb8036b73 Update
Former-commit-id: 0489f7eaa7
2024-09-04 21:04:53 +02:00
Hadi
60fe3769e8 Release v2.4.0
Former-commit-id: 7ddff66f00
2024-09-04 10:11:28 +02:00
Hadi
641bf821d4 Update
Former-commit-id: e1f973cabf
2024-09-04 10:10:52 +02:00
Hadi
25aa619445 Update
Former-commit-id: e38895c4a5
2024-09-04 10:10:32 +02:00
Hadi
5a0d476de3 Update
Former-commit-id: c2e6fd7d32
2024-09-04 09:34:42 +02:00
Hadi
00db8d0ae6 Update
Former-commit-id: 3d8bcaeeb2
2024-09-04 02:02:57 +02:00
Hadi
ef66b6f848 Add wofi clipman
Former-commit-id: 4135134261
2024-09-04 01:53:36 +02:00
Hadi
59caed5e69 Add wofi emoji
Former-commit-id: 027ef1c398
2024-09-04 01:44:37 +02:00
Hadi
dad0865d06 Change to gammastep
Former-commit-id: 659509e613
2024-09-04 01:40:24 +02:00
Hadi
c106c76cbc Update
Former-commit-id: e9a20f49e2
2024-09-02 18:30:30 +02:00
Hadi
4181544de8 Update
Former-commit-id: 75562adea8
2024-09-02 09:29:50 +02:00
Hadi
30c8414749 Update
Former-commit-id: 4afca71b91
2024-08-30 17:29:30 +02:00
Hadi
6bb9386773 Update
Former-commit-id: 4a8f1be75f
2024-08-30 17:02:38 +02:00
Hadi
ae82cbcf67 Update
Former-commit-id: 4540b40dc4
2024-08-30 16:13:57 +02:00
Hadi
518ac107c6 Update
Former-commit-id: fcd5eca04f
2024-08-30 16:06:22 +02:00
Hadi
58f5f421e8 Update
Former-commit-id: da1b88305d
2024-08-30 15:47:17 +02:00
Hadi
999950afc9 Update
Former-commit-id: f0e9294982
2024-08-30 14:16:30 +02:00
Hadi
13a6249227 Update
Former-commit-id: b3f20e6aef
2024-08-30 09:33:57 +02:00
Hadi
c68df370cc Update
Former-commit-id: 48a59c4c55
2024-08-29 22:46:04 +02:00
Hadi
c08d551932 Update
Former-commit-id: c83e5b2213
2024-08-29 17:04:05 +02:00
Hadi
fa63cf950a Update
Former-commit-id: 55a5c52c51
2024-08-29 14:29:05 +02:00
Hadi
31cb1fd0f2 Release v2.3.0
Former-commit-id: 90e8d5577e
2024-08-28 12:30:52 +02:00
Hadi
647236f7b0 Fetch the gtk flatcolor theme folder from github
Former-commit-id: 835a9e9da2
2024-08-28 12:30:04 +02:00
Hadi
43566fc4ae Update
Former-commit-id: 3c171c33be
2024-08-28 11:43:03 +02:00
Hadi
682c50793c Update
Former-commit-id: aa8fca0bed
2024-08-26 17:48:05 +02:00
Hadi
2958b5a03c Update
Former-commit-id: 1255919f41
2024-08-24 17:09:12 +02:00
Hadi
2b25d18bd5 update
Former-commit-id: 109f31151d
2024-08-23 11:42:33 +02:00
Hadi
248f9a5ba8 update
Former-commit-id: 3c3acd03b4
2024-08-23 11:28:15 +02:00
Hadi
89ff802e16 update
Former-commit-id: 65c95ac82a
2024-08-23 11:28:07 +02:00
Hadi
13643dc1bc update
Former-commit-id: 776095c817
2024-08-23 11:25:23 +02:00
Hadi
188ef240ae update
Former-commit-id: d36952e040
2024-08-23 11:23:16 +02:00
Hadi
a8c1b6363d update
Former-commit-id: ae0480cab3
2024-08-23 10:59:21 +02:00
Hadi
8aaa6199f2 update
Former-commit-id: bd8e69fe44
2024-08-23 10:58:07 +02:00
Hadi
4cd544d59f update
Former-commit-id: ddeaf0170d
2024-08-23 10:56:42 +02:00
Hadi
c9a4f2115d update
Former-commit-id: f27b66f878
2024-08-23 10:52:35 +02:00
Hadi
395efb8ef1 update
Former-commit-id: 574b0043ac
2024-08-23 10:52:11 +02:00
Hadi
1280370a0a update
Former-commit-id: fbd804939f
2024-08-23 10:51:31 +02:00
Hadi
f9bcfb5b50 update
Former-commit-id: cfa4e187c5
2024-08-23 10:31:25 +02:00
Hadi
3244b2d7e0 update
Former-commit-id: b1d3094bcc
2024-08-23 10:25:43 +02:00
Hadi
eff0846c0f update
Former-commit-id: 1f7ca17d94
2024-08-23 10:12:00 +02:00
Hadi
e2a10d4067 update
Former-commit-id: d939bc6f53
2024-08-23 10:11:07 +02:00
Hadi
39a1d16701 update
Former-commit-id: 3419421098
2024-08-23 10:09:02 +02:00
Hadi
adbe7f3295 Update
Former-commit-id: d816099985
2024-08-22 21:02:14 +02:00
Hadi
d67f234b2b update
Former-commit-id: 28424b82ab
2024-08-22 16:28:08 +02:00
Hadi
14a3a77c9e update
Former-commit-id: 771dceeb06
2024-08-22 16:11:48 +02:00
Hadi
0a1f505dd1 update
Former-commit-id: a2d4d36289
2024-08-22 16:07:39 +02:00
Hadi
c6b1af26ce update
Former-commit-id: e4fce0a17a
2024-08-22 16:06:44 +02:00
Hadi
4a42f1fc91 update
Former-commit-id: 88a8168ce2
2024-08-22 16:02:10 +02:00
Hadi
612a8f6d33 update
Former-commit-id: 58d809d860
2024-08-22 15:41:28 +02:00
Hadi
e7b608ecc4 update
Former-commit-id: 4b3f43e402
2024-08-22 15:32:46 +02:00
Hadi
bfe270b6e1 update
Former-commit-id: bbe0574051
2024-08-22 15:28:47 +02:00
Hadi
e5f82cdb2d Update
Former-commit-id: 3ef71b9fa2
2024-08-22 15:25:32 +02:00
Hadi
d705c8cecc Update
Former-commit-id: a240a76a8e
2024-08-20 15:27:18 +02:00
Hadi
f2613218db Update
Former-commit-id: d254085e29
2024-08-20 00:17:10 +02:00
Hadi
2099c4636c Update
Former-commit-id: ac2223ad24
2024-08-19 22:50:30 +02:00
Hadi
8cf93bfbc8 Update
Former-commit-id: 8092a2d348
2024-08-19 22:28:49 +02:00
Hadi
b2dca45c34 Update
Former-commit-id: c434816d83
2024-08-19 22:20:59 +02:00
Hadi
403e4e1967 Update
Former-commit-id: 9e8637e9a8
2024-08-19 21:09:21 +02:00
Hadi
7ef771f14e Update
Former-commit-id: d1896b626b
2024-08-19 20:40:29 +02:00
Hadi
acb7db87df Release v2.2.0
Former-commit-id: e6f66110f0
2024-08-19 20:32:10 +02:00
Hadi
0f5b7f60b6 Update
Former-commit-id: caaa500232
2024-08-19 19:42:20 +02:00
Hadi
d7264b0de1 Update
Former-commit-id: e27d43df71
2024-08-19 19:41:24 +02:00
Hadi
23b518381a Update
Former-commit-id: 79a69d245c
2024-08-19 19:36:21 +02:00
Hadi
8876aae16c Update
Former-commit-id: 849eb5dd11
2024-08-19 00:38:27 +02:00
Hadi
0ed5d1cf04 Update
Former-commit-id: 31ac58592e
2024-08-19 00:15:43 +02:00
Hadi
83decac5e9 Update
Former-commit-id: b9fda769bc
2024-08-18 23:57:00 +02:00
Hadi
9104494893 Update
Former-commit-id: 94c88e04f2
2024-08-18 23:56:48 +02:00
Hadi
10d1a73eeb Update
Former-commit-id: 9d74ac9d82
2024-08-18 23:52:21 +02:00
Hadi
307c0b5edd Update
Former-commit-id: a64c79ae22
2024-08-18 23:43:17 +02:00
Hadi
321914861f Release v2.1.0
Former-commit-id: a134abdea3
2024-08-18 23:40:47 +02:00
Hadi
b851c527af Update
Former-commit-id: 957b148656
2024-08-18 23:29:31 +02:00
Hadi
69f1aa3072 Update
Former-commit-id: 7fab715859
2024-08-18 23:29:08 +02:00
Hadi
aeaee053c4 Update
Former-commit-id: 246b5b6c8e
2024-08-11 12:02:11 +02:00
Hadi
7632e82867 Update
Former-commit-id: a318562aa7
2024-08-10 13:28:07 +02:00
Hadi
ffbb5eb322 Update
Former-commit-id: 4ec671e6b4
2024-08-02 20:53:58 +02:00
Hadi
fe6288d42c Update
Former-commit-id: e3f4493865
2024-07-29 19:34:43 +02:00
Hadi
f54ec0a5ab Update
Former-commit-id: 5c5a2796f6
2024-07-25 23:23:11 +02:00
Hadi
768b475183 Update
Former-commit-id: a7bd5ad28b
2024-07-24 23:38:16 +02:00
Hadi
0643968e77 Update
Former-commit-id: 830dc909e2
2024-07-22 22:32:10 +02:00
Hadi
18a17abad4 Update
Former-commit-id: 351dc0ebb3
2024-07-22 21:49:19 +02:00
Hadi
c4b19710ef Update
Former-commit-id: aff363f37d
2024-07-21 22:20:55 +02:00
Hadi
1beb1be29c Update
Former-commit-id: fdd41cf848
2024-07-19 13:03:34 +02:00
Hadi
621520e9e8 Update
Former-commit-id: 308cbfcb19
2024-07-13 12:04:41 +02:00
Hadi
f030f9b6ed Update
Former-commit-id: 1dc5190c43
2024-07-11 16:07:04 +02:00
Hadi
f6c5f90a75 Update
Former-commit-id: 8412b4dd93
2024-07-09 16:20:53 +02:00
Hadi
3ad6f353b6 Update
Former-commit-id: 04d2e91dd5
2024-07-09 15:01:41 +02:00
Hadi
debc426717 Update
Former-commit-id: 70459117ed
2024-07-09 14:16:50 +02:00
Hadi
0e6f7110e4 Update
Former-commit-id: 87ee1c7738
2024-07-09 14:00:14 +02:00
Hadi
af3b9fcd6e Update
Former-commit-id: 0509eba07f
2024-07-09 13:41:42 +02:00
Hadi
8e5df9ff90 Update
Former-commit-id: 9142814f8f
2024-07-09 12:05:04 +02:00
Hadi
7e1eaf33af Update
Former-commit-id: 33a9386356
2024-07-09 11:44:32 +02:00
Hadi
6a12e7cde9 Update
Former-commit-id: fb73cce28a
2024-07-09 11:12:41 +02:00
Hadi
9a4fb9fd61 Update
Former-commit-id: e0c24bf068
2024-07-09 09:47:29 +02:00
Hadi
c77dd39a98 Update
Former-commit-id: 8e63ef0b46
2024-07-09 09:38:51 +02:00
Hadi
a0a7d5755a Merge branch 'main' of github.com:anotherhadi/nixy
Update


Former-commit-id: e107b25a2f
2024-07-09 09:33:49 +02:00
Hadi
5efa224a57 Update
Former-commit-id: 841f9625e9
2024-07-09 09:33:21 +02:00
Hadi
61e195d134 update
Former-commit-id: ddddd3b4a4
2024-07-08 07:45:56 +00:00
Hadi
5b2c6db769 Update
Former-commit-id: a73a50aa1f
2024-07-06 00:37:24 +02:00
Hadi
c6fee1ccd6 Update
Former-commit-id: cd7db37ccd
2024-07-06 00:35:41 +02:00
Hadi
60652a60df Update
Former-commit-id: 9931071846
2024-07-05 14:56:19 +02:00
Hadi
b41f3576c9 Update
Former-commit-id: de4347765c
2024-07-05 10:16:16 +02:00
Hadi
edacf85795 Update
Former-commit-id: 5bee2d6931
2024-07-05 09:20:58 +02:00
Hadi
7dd9f021f0 Update
Former-commit-id: 7dc7cfcaba
2024-07-05 09:09:43 +02:00
Hadi
ce4da71c70 Update
Former-commit-id: a8d37c3fcd
2024-07-05 08:49:18 +02:00
Hadi
0380714faa Update
Former-commit-id: fa6d5d50bd
2024-07-02 12:18:49 +02:00
Hadi
2b7d962b27 update
Former-commit-id: fdff88cc9d
2024-07-01 13:15:24 +00:00
Hadi
11f73f74ff nixvim refactor
Former-commit-id: 55caf123df
2024-07-01 13:07:12 +00:00
Hadi
8cc101b169 Update
Former-commit-id: 88ae1d29a5
2024-07-01 13:04:32 +02:00
Hadi
0bd30d921b update todos
Former-commit-id: 51739ac610
2024-07-01 08:41:07 +00:00
Hadi
fe238ca49a update
Former-commit-id: 76a6f6cd6e
2024-07-01 08:34:04 +00:00
Hadi
527a22c37b update
Former-commit-id: 7ef2c71725
2024-07-01 08:32:49 +00:00
Hadi
e1ad72405f update
Former-commit-id: 81574fd7bc
2024-07-01 08:31:12 +00:00
Hadi
985a8b063d Add wallpapers
Former-commit-id: ba9dde2c1a
2024-07-01 10:13:17 +02:00
Hadi
66677bc08e update
Former-commit-id: 93837b6bea
2024-06-30 18:01:52 +02:00
Hadi
f3434352d2 Update
Former-commit-id: 8b76bf48a6
2024-06-30 17:59:39 +02:00
Hadi
65b82b3609 update
Former-commit-id: c80ddff8eb
2024-06-30 17:46:32 +02:00
Hadi
c3e544248f update
Former-commit-id: c4d436b434
2024-06-30 17:42:09 +02:00
Hadi
6a33d7ac72 update
Former-commit-id: dae8755b59
2024-06-30 17:35:58 +02:00
Hadi
9b8c5b9b19 Update
Former-commit-id: 7c0216b1fb
2024-06-30 17:32:42 +02:00
Hadi
130415e809 Update
Former-commit-id: 40ffce6605
2024-06-29 00:18:07 +02:00
Hadi
52a029e998 Update
Former-commit-id: 56c2c41b68
2024-06-28 16:35:49 +02:00
Hadi
d1a8286a21 Update
Former-commit-id: 06f5e03e66
2024-06-28 16:32:52 +02:00
Hadi
78bccf2c7e Update
Former-commit-id: 921c359693
2024-06-28 15:02:53 +02:00
Hadi
4290cc3c35 update
Former-commit-id: 1f35859f2c
2024-06-28 14:35:35 +02:00
Hadi
8f70b0d26b Update
Former-commit-id: 71f405e633
2024-06-28 01:24:27 +02:00
Hadi
d9580c1dff update
Former-commit-id: 84b645e181
2024-06-28 01:11:49 +02:00
Hadi
763fa5e549 update
Former-commit-id: 5857299c20
2024-06-28 01:10:09 +02:00
Hadi
0c68ac35b5 update
Former-commit-id: ec24cde14f
2024-06-28 01:07:53 +02:00
Hadi
3ed7128cc4 update
Former-commit-id: 3f79044a2a
2024-06-28 01:07:24 +02:00
Hadi
d7f34d9f0e Update
Former-commit-id: cf6ea202e1
2024-06-28 00:58:12 +02:00
Hadi
826fd6aaaf Update
Former-commit-id: 84f87f9833
2024-06-27 19:42:08 +02:00
Hadi
1fba2d19b3 Update
Former-commit-id: ae6818ed65
2024-06-27 18:32:17 +02:00
Hadi
d92bbe59a6 update
Former-commit-id: cd7b35389e
2024-06-27 09:49:24 +00:00
Hadi
edc0243200 update
Former-commit-id: c8c81e20ae
2024-06-27 09:20:44 +00:00
Hadi
27ac4008f8 golang bin to $PATH
Former-commit-id: 2972b4238c
2024-06-27 08:45:21 +00:00
Hadi
9dc7b851f5 update
Former-commit-id: b35d35f3d5
2024-06-27 08:42:42 +00:00
Hadi
4a2d941991 update
Former-commit-id: bde31a4934
2024-06-27 08:32:24 +00:00
Hadi
a62c549e8f update
Former-commit-id: 170287e948
2024-06-27 08:31:28 +00:00
Hadi
7232c54382 create keybindings doc
Former-commit-id: 5d14ec00b5
2024-06-27 08:24:13 +00:00
Hadi
25067c9d06 Merge branch 'main' of https://github.com/anotherhadi/nixy
Former-commit-id: f6209d0754
2024-06-27 07:50:31 +00:00
Hadi
be8b1b696c update todo
Former-commit-id: 9e906c161a
2024-06-27 07:46:24 +00:00
Hadi
885f18806e Update
Former-commit-id: 071ce93f11
2024-06-27 00:11:54 +02:00
Hadi
b9ebf59fea Update
Former-commit-id: a9939a0f54
2024-06-27 00:10:09 +02:00
Hadi
ba007b4710 Update
Former-commit-id: 9cf68648eb
2024-06-26 22:18:39 +02:00
Hadi
1d8bc979c3 Update
Former-commit-id: 652377bd9b
2024-06-26 22:17:03 +02:00
Hadi
a7197e360e Update
Former-commit-id: dd9c61b9ff
2024-06-26 22:13:14 +02:00
Hadi
878754ad8b update
Former-commit-id: c00458c02a
2024-06-26 21:30:04 +02:00
Hadi
4a08e654e0 Update
Former-commit-id: 1df0f31dbc
2024-06-26 21:19:04 +02:00
Hadi
5d94699990 add md-table-of-contents source
Former-commit-id: 6a8382c79e
2024-06-26 14:46:22 +00:00
Hadi
d98468a34d update
Former-commit-id: 1ed7675095
2024-06-26 14:44:08 +00:00
Hadi
5f73e46e73 Update
Former-commit-id: 57cab5fa52
2024-06-26 12:31:58 +02:00
Hadi
674ef50ac9 update
Former-commit-id: 3cfb9e733a
2024-06-26 10:32:58 +02:00
Hadi
d276202288 Update
Former-commit-id: bb4617160c
2024-06-25 22:22:26 +02:00
Hadi
9b31f3be8d update
Former-commit-id: 80f8ca3e9a
2024-06-25 22:20:17 +02:00
Hadi
24d0f22f8e Update
Former-commit-id: c618feced4
2024-06-25 21:57:24 +02:00
Hadi
13cf7cd494 Update
Former-commit-id: 6f6c8bebf7
2024-06-25 18:10:20 +02:00
Hadi
65c430318f Update
Former-commit-id: 6d0855ce44
2024-06-25 18:02:38 +02:00
Hadi
b4e6f9d48c update
Former-commit-id: 32af0cf534
2024-06-25 11:57:53 +02:00
Hadi
a024023c43 init keybindings.md
Former-commit-id: 0b4f2d6970
2024-06-25 11:47:15 +02:00
Hadi
6edf2cd0b9 install script test
Former-commit-id: b4947a61c5
2024-06-25 11:39:34 +02:00
Hadi
d2b3e6b430 up
Former-commit-id: 4e5cdbbac5
2024-06-25 09:49:11 +02:00
Hadi
b5476da7ef version pull
Former-commit-id: c0a0afd077
2024-06-25 09:26:10 +02:00
Hadi
9c1afd279c Update TODO.md
Former-commit-id: e047f99306
2024-06-24 22:31:49 +02:00
Hadi
f998316b9e rearrange folders
Former-commit-id: fbb6fe70ff
2024-06-24 21:18:20 +02:00
Hadi
fea1eade7f Change notification system
Former-commit-id: 3b84f735ee
2024-06-24 21:13:22 +02:00
Hadi
2517219f4c Fix
Former-commit-id: 1cdfe8e278
2024-06-24 20:44:09 +02:00
Hadi
c5d95b14ea Update TODO.md
Former-commit-id: 1eb830a97c
2024-06-24 16:37:59 +02:00
Hadi
0a7befb23b todo update
Former-commit-id: ec924af562
2024-06-24 14:35:46 +02:00
Hadi
41116fb2b5 update
Former-commit-id: 5d47643320
2024-06-24 11:05:38 +02:00
Hadi
cf2f5f2f9b Update
Former-commit-id: 282c04af67
2024-06-24 00:40:05 +02:00
Hadi
35ba84724f Update
Former-commit-id: 7397237149
2024-06-24 00:33:36 +02:00
Hadi
2151fc6f90 Update
Former-commit-id: 1a4ff5e542
2024-06-24 00:17:07 +02:00
Hadi
45ed8258ca Update
Former-commit-id: 0cec3f04d2
2024-06-24 00:12:53 +02:00
Hadi
ffc95dcd1b Update
Former-commit-id: 87ae5dd36f
2024-06-24 00:10:35 +02:00
Hadi
2c68166067 update
Former-commit-id: 2e31e74d92
2024-06-23 23:51:07 +02:00
Hadi
ae83c7497a update
Former-commit-id: 0922357af2
2024-06-23 23:47:31 +02:00
Hadi
03c675cf62 update
Former-commit-id: 1d298c60d5
2024-06-23 23:43:47 +02:00
Hadi
a4d8670563 update
Former-commit-id: d5aa5b1a49
2024-06-23 23:32:18 +02:00
Hadi
0114b629e6 update
Former-commit-id: 469f903657
2024-06-23 20:11:35 +02:00
Hadi
7f4280af72 update
Former-commit-id: ae95a1b457
2024-06-23 20:10:15 +02:00
Hadi
e7b4080c2a update
Former-commit-id: 101712c8bb
2024-06-23 19:59:53 +02:00
Hadi
c541832066 update
Former-commit-id: 5dce9af547
2024-06-23 19:54:21 +02:00
Hadi
8b57bffcd6 update
Former-commit-id: d215570fea
2024-06-23 18:35:16 +02:00
Hadi
7a4e3ad1a3 update
Former-commit-id: aa7801b04f
2024-06-23 18:32:04 +02:00
Hadi
7a2c2c6201 update
Former-commit-id: d1789906a2
2024-06-23 18:28:15 +02:00
Hadi
a8c0fdb670 update
Former-commit-id: a4f74f5fe7
2024-06-23 18:26:25 +02:00
Hadi
5ce310fe6d update
Former-commit-id: afd56d878e
2024-06-23 18:24:30 +02:00
Hadi
89818e9ee2 update
Former-commit-id: 12ebcadd71
2024-06-23 17:53:09 +02:00
Hadi
d943b85cc9 update
Former-commit-id: c5420f8d3a
2024-06-23 17:52:19 +02:00
Hadi
8eaa78bf4b Update
Former-commit-id: f8786dd24f
2024-06-23 17:32:18 +02:00
Hadi
82d6c29f21 Update
Former-commit-id: caee38f568
2024-06-23 15:48:52 +02:00
Hadi
72a8aa16bb Update
Former-commit-id: 487d81ff86
2024-06-23 15:14:29 +02:00
Hadi
5c9b799afe Update
Former-commit-id: 4046038cf2
2024-06-23 14:53:23 +02:00
Hadi
eb584dac56 Update
Former-commit-id: e9a5a9e574
2024-06-23 14:52:35 +02:00
Hadi
2fd610a09c Update
Former-commit-id: 98f708d693
2024-06-23 14:50:06 +02:00
Hadi
8eb88f474a Update
Former-commit-id: 66cd92d740
2024-06-23 14:47:22 +02:00
Hadi
f73291c269 Update
Former-commit-id: 2b5813057c
2024-06-23 14:46:11 +02:00
Hadi
e93e5807f9 Update
Former-commit-id: bbb35737c2
2024-06-23 14:45:51 +02:00
Hadi
6d0a2e186b Update
Former-commit-id: 1efdadbdad
2024-06-23 14:23:36 +02:00
Hadi
c2a700ef3a Update
Former-commit-id: 9f98ec2a52
2024-06-23 14:22:01 +02:00
Hadi
7b0deaf9c1 Update
Former-commit-id: 6f8c9d7836
2024-06-23 14:19:45 +02:00
Hadi
98d1ccb2c0 Add remote rebuild (server)
Former-commit-id: d1f5aa6dfa
2024-06-23 13:53:01 +02:00
Hadi
e6f46e1788 Update
Former-commit-id: 54eb13bc40
2024-06-23 13:46:07 +02:00
Hadi
e6c2becccb Update
Former-commit-id: f29e68ef63
2024-06-23 13:36:37 +02:00
Hadi
cfc9f99c83 Update
Former-commit-id: 8260c9d554
2024-06-21 15:49:16 +02:00
Hadi
3c43b277b7 Update
Former-commit-id: ec5b132e17
2024-06-21 15:48:37 +02:00
Hadi
64f789e52a Update
Former-commit-id: 45c0175d72
2024-06-21 15:25:14 +02:00
Hadi
9ab4dae87b Update
Former-commit-id: 154c21859d
2024-06-21 13:58:14 +02:00
Hadi
f2b742e470 Update
Former-commit-id: d100690333
2024-06-21 13:45:59 +02:00
Hadi
a3f44fa53c Update
Former-commit-id: 9fd64e9f04
2024-06-21 13:44:56 +02:00
Hadi
91d06ef6a4 Update
Former-commit-id: 909c32fef8
2024-06-21 13:42:14 +02:00
Hadi
b9df9861fc Update
Former-commit-id: feea4f5ad9
2024-06-21 13:14:54 +02:00
Hadi
049e2a9214 Update
Former-commit-id: 1ce9d2e46f
2024-06-20 18:04:50 +02:00
Hadi
78bb7ff465 Update
Former-commit-id: ae48fb8605
2024-06-20 17:43:20 +02:00
Hadi
8e04a559b9 Update
Former-commit-id: 636d921341
2024-06-20 17:34:56 +02:00
Hadi
aa3f3e2269 Update
Former-commit-id: fa7ec583b6
2024-06-20 17:33:40 +02:00
Hadi
bcc505f5dd Update
Former-commit-id: a723bd6087
2024-06-20 17:30:14 +02:00
Hadi
f0617924b0 Update
Former-commit-id: 3950c68160
2024-06-20 17:08:25 +02:00
Hadi
14c33a8191 Update
Former-commit-id: 4653a9e86f
2024-06-20 16:39:59 +02:00
Hadi
fcd92d0155 Update
Former-commit-id: 9e191c76eb
2024-06-20 16:32:27 +02:00
Hadi
9d73c644a7 Update
Former-commit-id: 2996ca0d12
2024-06-20 15:43:04 +02:00
Hadi
c5c0fdc7cc Update
Former-commit-id: c7beef1880
2024-06-20 15:41:54 +02:00
Hadi
42d7b8b820 Update
Former-commit-id: 1a3c28f69a
2024-06-20 15:35:06 +02:00
Hadi
2983dd6270 Update
Former-commit-id: 597f88adab
2024-06-20 15:33:42 +02:00
Hadi
7d684153a9 Update
Former-commit-id: 85a4a4ad2a
2024-06-20 15:31:01 +02:00
Hadi
bc26eb05a7 Update
Former-commit-id: e078d81b51
2024-06-20 15:29:25 +02:00
Hadi
ec38767570 Update
Former-commit-id: b676e1bdbb
2024-06-20 15:27:32 +02:00
Hadi
5340cfeb84 Update
Former-commit-id: 83252b0da5
2024-06-20 15:16:28 +02:00
Hadi
734e310f28 Update
Former-commit-id: 56b09db387
2024-06-20 15:13:02 +02:00
Hadi
e388cc7556 Update
Former-commit-id: 6f998c79ab
2024-06-20 15:07:15 +02:00
Hadi
0263e08415 Update
Former-commit-id: 4bec772eb2
2024-06-20 12:10:00 +02:00
Hadi
65f8fcc926 Update
Former-commit-id: 5bdbfb3a5f
2024-06-20 12:09:20 +02:00
Hadi
59a3c1d4de Update
Former-commit-id: 0cc6e18f3d
2024-06-20 11:45:19 +02:00
Hadi
206d4d7433 Update
Former-commit-id: f9bd98bc58
2024-06-20 11:42:57 +02:00
Hadi
8c8833b26e Update
Former-commit-id: 81e72e574d
2024-06-20 11:41:28 +02:00
Hadi
392a3e4998 Update
Former-commit-id: fe393e3c2a
2024-06-20 11:38:53 +02:00
Hadi
76a423a964 Update
Former-commit-id: e0803c6bd5
2024-06-20 11:31:02 +02:00
Hadi
63c19a0c61 Update
Former-commit-id: f761b8c66a
2024-06-20 11:27:41 +02:00
Hadi
f3f4689cc8 Update
Former-commit-id: 01b056d4cb
2024-06-20 11:25:35 +02:00
Hadi
2050efbfbf Update
Former-commit-id: 73ac8d8188
2024-06-20 11:24:41 +02:00
Hadi
8d5734b739 Update TODO.md
Former-commit-id: b90999d5b6
2024-06-20 09:39:02 +02:00
Hadi
f23897d7d8 Update TODO.md
Former-commit-id: 365fab9659
2024-06-20 02:47:27 +02:00
Hadi
22b00bf301 Update
Former-commit-id: a0c5bd962b
2024-06-20 02:45:24 +02:00
Hadi
76355d3ca1 Fix
Former-commit-id: b796117725
2024-06-20 01:55:49 +02:00
Hadi
14b29a6588 Update
Former-commit-id: 1b4cd64024
2024-06-20 01:31:30 +02:00
Hadi
5eafcf5b76 Update
Former-commit-id: 8ec1744969
2024-06-20 01:23:20 +02:00
Hadi
9c43d22eb1 Update
Former-commit-id: b44a2e17f9
2024-06-20 00:25:10 +02:00
Hadi
06428958dd Update
Former-commit-id: de9b1de37c
2024-06-20 00:17:59 +02:00
Hadi
0d84783032 Update
Former-commit-id: e94276c144
2024-06-20 00:15:18 +02:00
Hadi
25af8d6213 Update
Former-commit-id: 0114f7281b
2024-06-20 00:14:15 +02:00
Hadi
e3549ce9e5 Update
Former-commit-id: 5db186ba9b
2024-06-20 00:07:23 +02:00
Hadi
1d859e5c13 Update
Former-commit-id: eec2b56fcd
2024-06-20 00:06:06 +02:00
Hadi
4ef84d1f8d Update
Former-commit-id: 265651c931
2024-06-19 23:59:20 +02:00
Hadi
ed791eb748 Update
Former-commit-id: 7e5c45d406
2024-06-19 23:53:17 +02:00
Hadi
5c6acc2028 Update
Former-commit-id: ae9ffdf2a8
2024-06-19 23:52:10 +02:00
Hadi
a9dc177a34 Update
Former-commit-id: 325f8e9d15
2024-06-19 23:51:36 +02:00
Hadi
ef32063715 Update
Former-commit-id: 29905a460b
2024-06-19 23:49:03 +02:00
Hadi
bdaa52dedc Update
Former-commit-id: 92e8eb8983
2024-06-19 23:48:36 +02:00
Hadi
c5d7ba76c7 Update
Former-commit-id: cafce8e7c9
2024-06-19 23:47:35 +02:00
Hadi
358e8c9158 Update
Former-commit-id: 21482d4a44
2024-06-19 23:45:03 +02:00
Hadi
d1dd841da8 Update
Former-commit-id: 1b3cc99197
2024-06-19 23:42:42 +02:00
Hadi
8137ebfd99 Update
Former-commit-id: adecf1bc29
2024-06-19 23:39:30 +02:00
Hadi
cc45eda3ef Update
Former-commit-id: a272a038f1
2024-06-19 23:38:04 +02:00
Hadi
8415d92264 Update
Former-commit-id: a6d3e17135
2024-06-19 23:32:31 +02:00
Hadi
17d95716b6 Update
Former-commit-id: 0e291d3388
2024-06-19 23:28:50 +02:00
Hadi
6db2fc373d Update
Former-commit-id: c852176e0d
2024-06-19 23:28:13 +02:00
Hadi
ebbf404c68 Update
Former-commit-id: ad339a19a6
2024-06-19 23:23:29 +02:00
Hadi
9fc328f675 Update
Former-commit-id: aad8b9d8e6
2024-06-19 23:21:24 +02:00
Hadi
ba489aaea3 Update
Former-commit-id: debb139aeb
2024-06-19 23:20:49 +02:00
Hadi
67ec1dd41f Update
Former-commit-id: 939597dd90
2024-06-19 23:15:52 +02:00
Hadi
ae50fc36d6 Update
Former-commit-id: 7a89711897
2024-06-19 23:11:37 +02:00
Hadi
f401067dd9 Update
Former-commit-id: e51b20e4ab
2024-06-19 23:07:47 +02:00
Hadi
a02bee95de Update
Former-commit-id: 9dbc87c010
2024-06-19 23:02:56 +02:00
Hadi
ec7b2a2fe9 Update
Former-commit-id: 137dd150fd
2024-06-19 22:59:06 +02:00
Hadi
2a40427cd6 Update
Former-commit-id: 6e66f200a3
2024-06-19 22:57:14 +02:00
Hadi
eb42d3e4d1 Update
Former-commit-id: 28dcb1f574
2024-06-19 22:50:58 +02:00
Hadi
03f4715693 Update
Former-commit-id: 536de64d5c
2024-06-19 22:48:21 +02:00
Hadi
c35dfb8017 Update
Former-commit-id: ac1c7da665
2024-06-19 22:47:37 +02:00
Hadi
7bdacd9ed5 Update
Former-commit-id: d3604fa6cf
2024-06-19 22:47:13 +02:00
Hadi
c8ca22f308 Update
Former-commit-id: 241a91487c
2024-06-19 22:46:33 +02:00
Hadi
13b147932e Update
Former-commit-id: 2f2aad2b91
2024-06-19 22:45:37 +02:00
Hadi
29b6dc17c0 Update
Former-commit-id: ce756d2f78
2024-06-19 22:44:55 +02:00
Hadi
8ff1df4333 Update
Former-commit-id: 94cb2758e6
2024-06-19 22:40:01 +02:00
Hadi
af0241f1eb Update
Former-commit-id: 50ee6b2dbf
2024-06-19 22:39:12 +02:00
Hadi
3719cc90be Update
Former-commit-id: 0949607442
2024-06-19 22:37:52 +02:00
Hadi
396297d6f7 Update
Former-commit-id: 12e8e9e870
2024-06-19 22:36:42 +02:00
Hadi
cb4b5741d7 Update
Former-commit-id: aa519ba3ee
2024-06-19 22:36:18 +02:00
Hadi
da000e60bd Update
Former-commit-id: 2cd6b6be58
2024-06-19 22:33:48 +02:00
Hadi
c4a38e7691 Update
Former-commit-id: 3939348e1b
2024-06-19 22:32:03 +02:00
Hadi
8972cd081b Update
Former-commit-id: 26767f861c
2024-06-19 21:53:34 +02:00
Hadi
b930a7e9f7 Update
Former-commit-id: adbbcec22c
2024-06-19 21:52:46 +02:00
Hadi
85a7fc8ca7 Update
Former-commit-id: f868a937d5
2024-06-19 21:50:36 +02:00
Hadi
869a442843 Update
Former-commit-id: c9ba9b30fe
2024-06-19 21:47:33 +02:00
Hadi
49b6d81216 Update
Former-commit-id: f2b659add1
2024-06-19 21:43:28 +02:00
Hadi
21d84fd39d Update
Former-commit-id: c18fffcb3d
2024-06-19 21:42:12 +02:00
Hadi
2a12db0133 test
Former-commit-id: b5fe18ab2f
2024-06-19 21:41:04 +02:00
Hadi
9c5118264c add hardware config
Former-commit-id: 115c6345c3
2024-06-19 21:31:18 +02:00
Hadi
3a8df54936 Update
Former-commit-id: 884abe9e6c
2024-06-19 21:22:41 +02:00
Hadi
a3c8ad5efb Update
Former-commit-id: d877b40d0b
2024-06-19 21:18:28 +02:00
Hadi
b38a1ccef8 test
Former-commit-id: 530e9d8bea
2024-06-19 21:17:54 +02:00
Hadi
321bb0bd16 Update
Former-commit-id: d9e4bd4cd1
2024-06-19 21:16:15 +02:00
Hadi
6c96796584 Update
Former-commit-id: 4cba1f2acf
2024-06-19 21:12:30 +02:00
Hadi
c6bc2ba192 Update
Former-commit-id: 8c0c636ec8
2024-06-19 21:05:03 +02:00
Hadi
c5f8e0f7a2 Update
Former-commit-id: 39a4b5cc00
2024-06-19 21:03:58 +02:00
Hadi
9ff0e4cbe4 Update
Former-commit-id: a5e4015cf3
2024-06-19 21:01:08 +02:00
Hadi
4c0a61ccad Update
Former-commit-id: 5414f49671
2024-06-19 21:01:01 +02:00
Hadi
8ddabcee34 Update
Former-commit-id: 10f3754b0a
2024-06-19 09:55:58 +02:00
Hadi
ccef91e0ed Update
Former-commit-id: 063534079d
2024-06-18 19:15:19 +02:00
Hadi
f9057b2983 Update
Former-commit-id: d4abd221c0
2024-06-18 19:14:18 +02:00
Hadi
5e276e88f8 Update
Former-commit-id: 77696506bc
2024-06-18 19:13:15 +02:00
Hadi
6c4428b4ef Update
Former-commit-id: 05932e597c
2024-06-18 19:05:40 +02:00
Hadi
fd32e06cd2 Update README.md
Former-commit-id: 6606762bca
2024-06-18 15:49:32 +02:00
Hadi
1a4615a781 change image
Former-commit-id: e0bae26b5d
2024-06-18 15:44:27 +02:00
Hadi
3823561a0a Update README.md
Former-commit-id: cd91c40f7d
2024-06-18 15:43:27 +02:00
Hadi
b667a65f31 Add files via upload
Former-commit-id: 07e81831fa
2024-06-18 15:42:24 +02:00
Hadi
88df4c8d42 Add files via upload
Former-commit-id: a900a2a121
2024-06-18 15:34:25 +02:00
Hadi
8082c06548 update readme colors
Former-commit-id: d2916aa984
2024-06-18 15:25:59 +02:00
Hadi
21bf90efc0 edit
Former-commit-id: f79b67c04e
2024-06-18 14:39:51 +02:00
Hadi
6d22f2d409 move nextcloud to home manager
Former-commit-id: 6c936a12f1
2024-06-18 14:32:35 +02:00
Hadi
ffa788dd4e update todo
Former-commit-id: b5ae490899
2024-06-18 14:26:49 +02:00
Hadi
79a045e3bb todo update
Former-commit-id: fd9b7ea141
2024-06-18 14:20:23 +02:00
Hadi
2fb8a97b71 update
Former-commit-id: c11a21a34a
2024-06-18 14:09:55 +02:00
Hadi
26065f3699 fix
Former-commit-id: ba09c5cfe3
2024-06-18 14:07:48 +02:00
Hadi
4f2ba52404 add tailscale
Former-commit-id: 8ec108927c
2024-06-18 14:05:14 +02:00
Hadi
be23ff67aa fix
Former-commit-id: d311675fe9
2024-06-18 13:41:33 +02:00
Hadi
ff79cbf502 update
Former-commit-id: 63fd084dcf
2024-06-18 13:41:07 +02:00
Hadi
8b8f3fa54b Update
Former-commit-id: 759f7e715a
2024-06-18 12:36:26 +02:00
Hadi
1f2bb4c33a Update
Former-commit-id: c0e0609ef4
2024-06-18 12:35:13 +02:00
Hadi
9d458b7e04 Update
Former-commit-id: fb2f1824a3
2024-06-18 12:32:45 +02:00
Hadi
dedf840131 Update
Former-commit-id: bfed924f0f
2024-06-18 12:30:56 +02:00
Hadi
7dc2c69292 Update
Former-commit-id: 1ad4233def
2024-06-18 12:21:57 +02:00
Hadi
def86d31a4 Update
Former-commit-id: b536a87854
2024-06-18 12:10:45 +02:00
Hadi
3038f62405 update
Former-commit-id: c3b54c538f
2024-06-18 11:42:22 +02:00
Hadi
fe01b971cf temp
Former-commit-id: 40648d4041
2024-06-18 11:26:35 +02:00
Hadi
918c865202 temp
Former-commit-id: cb4a8f024f
2024-06-18 11:11:08 +02:00
Hadi
6e30f6cd4e temp
Former-commit-id: f4aa262e74
2024-06-18 10:29:37 +02:00
Hadi
ff73c05ba6 temp
Former-commit-id: ac6a0f59c4
2024-06-18 10:23:07 +02:00
Hadi
dbf520b556 temp
Former-commit-id: 93b7145e70
2024-06-18 10:10:21 +02:00
Hadi
fc046db74b temp
Former-commit-id: dc4f3160cc
2024-06-18 09:54:18 +02:00
Hadi
96bae83dd1 rename shared to modules
Former-commit-id: 2ccd17867f
2024-06-18 09:21:14 +02:00
Hadi
aae802193c Update
Former-commit-id: d3e6730df0
2024-06-18 00:01:23 +02:00
Hadi
8dc316d6a4 Update
Former-commit-id: 57eb1c9459
2024-06-17 23:57:26 +02:00
Hadi
ad86356f9a update
Former-commit-id: 880ed3d0e9
2024-06-17 23:47:58 +02:00
Hadi
007ef7304b add server
Former-commit-id: 93ba190cbf
2024-06-17 23:41:41 +02:00
Hadi
019a6deaf4 Update
Former-commit-id: 251f535146
2024-06-17 23:32:56 +02:00
Hadi
7da96ad2c7 Update
Former-commit-id: 8e0691ca6a
2024-06-17 23:32:52 +02:00
Hadi
7ebc1ba322 add server
Former-commit-id: 25d4dc93f1
2024-06-17 23:29:47 +02:00
Hadi
c5e9cb9c32 add pfetch
Former-commit-id: d1b581fd58
2024-06-17 21:34:54 +02:00
Hadi
a3ec52058e update
Former-commit-id: bbaf52b496
2024-06-17 20:47:28 +02:00
Hadi
d78f213006 update
Former-commit-id: 5835d73997
2024-06-17 20:44:37 +02:00
Hadi
73b2015d02 Update
Former-commit-id: bbbf516812
2024-06-17 20:38:13 +02:00
Hadi
cedad9a7a6 Update
Former-commit-id: c0894a20ca
2024-06-17 20:37:22 +02:00
Hadi
65d6c2f28f Update
Former-commit-id: 6f8698e345
2024-06-17 20:37:09 +02:00
Hadi
18c7618ebf Update
Former-commit-id: b49b2d2c60
2024-06-17 20:08:17 +02:00
Hadi
e29a5c2517 update
Former-commit-id: a703d0816b
2024-06-17 19:50:35 +02:00
Hadi
6f3c922010 update
Former-commit-id: 4aba4116de
2024-06-17 19:45:21 +02:00
Hadi
2b902ef731 Update
Former-commit-id: 9db5b9231e
2024-06-17 19:23:43 +02:00
Hadi
7cb070b6b1 Update
Former-commit-id: dc5c227667
2024-06-17 19:20:34 +02:00
Hadi
e788f5954e update
Former-commit-id: 912c0abc51
2024-06-17 19:20:01 +02:00
Hadi
bfb370d8fe update
Former-commit-id: d8659825a2
2024-06-17 19:18:05 +02:00
Hadi
0332b6c56b Update README.md
Former-commit-id: 087dd4dfec
2024-06-17 17:10:04 +02:00
Hadi
e5bdab5a24 update
Former-commit-id: a6207c07ab
2024-06-17 17:04:39 +02:00
Hadi
a42ef3ff84 add hyprcursor
Former-commit-id: efc017e5bd
2024-06-17 16:55:42 +02:00
Hadi
da33cf1fd3 moved gtk theme
Former-commit-id: 2982684252
2024-06-17 16:54:50 +02:00
Hadi
4290a5e814 update
Former-commit-id: 5e3a372259
2024-06-17 16:53:18 +02:00
Hadi
8e425d5d87 temp
Former-commit-id: 8d16aa86e0
2024-06-17 16:35:53 +02:00
Hadi
8aeff4bb9a temp
Former-commit-id: 3f613c9910
2024-06-17 16:33:34 +02:00
Hadi
6d23ca208e update
Former-commit-id: 8b2f8c08d3
2024-06-17 16:23:03 +02:00
Hadi
41ccb74258 update
Former-commit-id: f2c80d003c
2024-06-17 14:24:18 +02:00
Hadi
5f1b047221 Add themes folder
Former-commit-id: a6cc46cf93
2024-06-17 14:18:15 +02:00
Hadi
a5b26b92de Update
Former-commit-id: 857c98e32a
2024-06-17 13:49:05 +02:00
Hadi
5e71ef48dd Update
Former-commit-id: d169306a68
2024-06-17 13:47:13 +02:00
Hadi
2fc51aa02e test hosts
Former-commit-id: b22d2f596f
2024-06-17 09:23:37 +02:00
Hadi
7dc90af1c8 test
Former-commit-id: 026be4852e
2024-06-17 09:22:31 +02:00
Hadi
7a564110a5 Update
Former-commit-id: 49cf0fc0e3
2024-06-14 21:18:42 +02:00
Hadi
bb08cd494a Add animations speed in variables
Former-commit-id: 7267fa55fb
2024-06-14 21:13:50 +02:00
Hadi
3b5885e2c9 Update
Former-commit-id: c410d04e1a
2024-06-14 21:04:33 +02:00
Hadi
d9810c3c1f Update
Former-commit-id: fad7c6e46d
2024-06-14 20:58:52 +02:00
Hadi
13f060d100 Update
Former-commit-id: 089c57802e
2024-06-14 15:28:30 +02:00
Hadi
40164e8cbd Update
Former-commit-id: 47701f3f49
2024-06-14 14:43:21 +02:00
Hadi
f9187d3252 Update
Former-commit-id: 5af6219fff
2024-06-14 14:24:09 +02:00
Hadi
b86fe8b3c7 Update
Former-commit-id: 9eb2dbf579
2024-06-14 14:21:27 +02:00
Hadi
9cdddb99c5 Refactor
Former-commit-id: ea15e4fa98
2024-06-14 14:20:06 +02:00
Hadi
35bb470eb1 Update
Former-commit-id: cf99fa5687
2024-06-14 14:03:35 +02:00
Hadi
1a1597ba49 Update
Former-commit-id: 98d8545186
2024-06-14 13:58:54 +02:00
Hadi
8c55eb48af Update
Former-commit-id: 60ee25a3fa
2024-06-14 13:56:43 +02:00
Hadi
cd3dfb985c Update
Former-commit-id: 25e4b89053
2024-06-14 13:44:30 +02:00
Hadi
19bf7838c4 Fix
Former-commit-id: 758b594e39
2024-06-14 12:54:46 +02:00
Hadi
05da8fd990 Update
Former-commit-id: eb94f6b527
2024-06-14 10:03:29 +02:00
Hadi
d28ad77974 test
Former-commit-id: aae1271cf0
2024-06-14 10:00:54 +02:00
Hadi
379424e228 Update
Former-commit-id: 70a3473916
2024-06-13 11:02:21 +02:00
Hadi
355336c9ff Update
Former-commit-id: 96b64e86e0
2024-06-13 10:52:06 +02:00
Hadi
46b213bbfa Temp
Former-commit-id: d117be2be9
2024-06-13 10:48:06 +02:00
Hadi
4fda4eda9e Update
Former-commit-id: a30df8d186
2024-06-11 23:41:38 +02:00
Hadi
3bffc0142c Stable
Former-commit-id: 3b52711351
2024-06-11 23:31:59 +02:00
Hadi
21f5d55569 Fix
Former-commit-id: 0e3989391e
2024-06-11 22:00:58 +02:00
Hadi
12d7254c83 Fix
Former-commit-id: e9310630bd
2024-06-11 21:58:04 +02:00
Hadi
35dd9bb964 Update
Former-commit-id: c2bb7f475b
2024-06-08 20:50:18 +02:00
Hadi
e104aec12d Update
Former-commit-id: 14eeb7bd3a
2024-06-08 02:32:42 +02:00
Hadi
e11dcecace Update
Former-commit-id: 08b9ef2677
2024-06-08 02:28:42 +02:00
Hadi
84d2f689ed Update
Former-commit-id: cbb276551c
2024-06-08 02:28:13 +02:00
Hadi
52c060c8be Update
Former-commit-id: 4556c5ea2f
2024-06-08 02:26:47 +02:00
Hadi
28dc3d1a94 Update
Former-commit-id: 6a017c8e70
2024-06-08 02:24:07 +02:00
Hadi
ef2ee20495 Update
Former-commit-id: e33ab5a6e1
2024-06-08 02:22:10 +02:00
Hadi
f4f253a218 Update
Former-commit-id: fbf3fe3255
2024-06-08 02:20:20 +02:00
Hadi
2f0f3c74f3 Update
Former-commit-id: 41a6de85b1
2024-06-08 02:19:25 +02:00
Hadi
2809615f7b Update
Former-commit-id: 6561d23db6
2024-06-08 02:18:53 +02:00
Hadi
a617044695 Update
Former-commit-id: 562dad765b
2024-06-08 02:17:50 +02:00
Hadi
379cd9e98d Update
Former-commit-id: 2656132158
2024-06-08 02:17:04 +02:00
Hadi
60d880aac2 Update
Former-commit-id: 430d30e4ee
2024-06-08 02:05:37 +02:00
Hadi
89d736c311 Update
Former-commit-id: 3a1896894f
2024-06-08 01:57:55 +02:00
Hadi
96faa74cf0 Update
Former-commit-id: 88fb9d078b
2024-06-08 01:56:21 +02:00
Hadi
0f6a8af649 Update
Former-commit-id: 1ccb720f3b
2024-06-08 00:36:44 +02:00
Hadi
80b3607bc1 Update
Former-commit-id: d2c8461193
2024-06-08 00:35:45 +02:00
Hadi
9c1c2a21a4 Update
Former-commit-id: 92b467525d
2024-06-08 00:01:20 +02:00
Hadi
ab13ead2a8 Update
Former-commit-id: 6c08c79a16
2024-06-07 23:54:10 +02:00
Hadi
dea3f4f4fd Update
Former-commit-id: e52f52f4da
2024-06-07 23:46:40 +02:00
Hadi
4bf7d41ff1 Update
Former-commit-id: b855318c55
2024-06-07 23:35:59 +02:00
Hadi
54bb1e2064 Update
Former-commit-id: ca8abfde1c
2024-06-07 23:34:02 +02:00
Hadi
3e818073e0 Update
Former-commit-id: 24de104139
2024-06-07 22:53:04 +02:00
Hadi
9c8d27e687 Update
Former-commit-id: 2c0246c84a
2024-06-07 22:43:37 +02:00
Hadi
ca138aa8af Update
Former-commit-id: 9177f93a96
2024-06-07 22:41:10 +02:00
Hadi
784df1e08f Update
Former-commit-id: 57867b1a22
2024-06-07 22:37:59 +02:00
Hadi
a12846fddc Update
Former-commit-id: 7b9e579a4e
2024-06-07 22:34:48 +02:00
Hadi
820268a2a1 Update
Former-commit-id: 65ec024028
2024-06-07 22:25:21 +02:00
Hadi
7e19f9ee0d Update
Former-commit-id: 19af1ccdc2
2024-06-07 22:11:42 +02:00
Hadi
6558683822 Update
Former-commit-id: 7d80970e9d
2024-06-07 22:08:09 +02:00
Hadi
8401688019 Update
Former-commit-id: 755a2e8f2b
2024-06-07 22:05:49 +02:00
Hadi
cfd999b373 Update
Former-commit-id: 160d302a74
2024-06-07 21:49:44 +02:00
Hadi
70b156b828 Add pub key
Former-commit-id: b674a8be1b
2024-06-07 21:46:15 +02:00
Hadi
6e056afe67 Fix
Former-commit-id: e2382abacc
2024-06-07 21:41:04 +02:00
Hadi
caa93f691c Add hardware config for server
Former-commit-id: bf7dd645ba
2024-06-07 21:38:39 +02:00
Hadi
34776f0af1 Update
Former-commit-id: 7bb06e521f
2024-06-07 21:37:48 +02:00
Hadi
7f30239b2a Add heaven (my server)
Former-commit-id: 17f93ea60b
2024-06-07 21:21:03 +02:00
Hadi
6d744fab45 Update
Former-commit-id: d917ac9f6a
2024-06-07 10:55:45 +02:00
Hadi
cf6ed4a265 Update
Former-commit-id: 98556f202e
2024-06-03 20:18:30 +02:00
Hadi
62e0472698 Update
Former-commit-id: 0f98d762a2
2024-05-25 10:53:38 +02:00
Hadi
d477340177 Update
Former-commit-id: c074db2779
2024-05-20 19:44:45 +02:00
Hadi
f9c910f5ac Add hyprland cachix
Former-commit-id: 98186715b1
2024-05-17 14:52:18 +02:00
Hadi
41a225ec83 Merge pull request #1 from anotherhadi/unstable
Update

Former-commit-id: 0087ca74be
2024-05-17 14:46:30 +02:00
Hadi
35c98d1b97 Update
Former-commit-id: 5fe726fd20
2024-05-17 14:44:56 +02:00
Hadi
1a477e26bc More variables
Former-commit-id: cc1efb2588
2024-05-17 10:28:02 +02:00
Hadi
8166950e74 Update
Former-commit-id: 0b32914be2
2024-05-16 17:59:50 +02:00
Hadi
ea0d1cee92 Add nvim noice
Former-commit-id: bc9101e542
2024-05-11 00:37:16 +02:00
Hadi
8df0278272 Add table of contents
Former-commit-id: 42876ccac3
2024-05-09 16:58:42 +02:00
Hadi
6c471c33f7 Add compress/extract
Former-commit-id: 728797b8c5
2024-05-09 16:55:46 +02:00
183 changed files with 4519 additions and 41036 deletions

111
.github/assets/README_template.md vendored Normal file
View File

@@ -0,0 +1,111 @@
<div align="center">
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/.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** 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.
I'm Hadi, a french developer, student in infosec, enthusiastic about nix, golang & blockchains.
This is my own, **keyboard-centric**, and **minimalistic** NixOS configuration.
I enable vim-like keybindings everywhere I can, and I use a lot of custom scripts to make my life easier.
**Nixy key points:**
- Hypr-ecosystem first (hyprland, hyprlock, hyprpanel, hypridle, ...)
- Stylix/base16 themes
- Vim-like keybindings everywhere (hyprland, qutebrowser, nvim, ...)
## Table of Content
{md_table_of_content}
## Gallery
![Nixy helper, peaclock](.github/assets/nixy/1.png)
![Qutebrowser, pipes, shell](.github/assets/nixy/2.png)
![nvim, lazygit](.github/assets/nixy/3.png)
![spotify, cava](.github/assets/nixy/4.png)
## Architecture
### 🏠 home
Those are the dotfiles and configuration files for user-level configuration
**Subfolders:**
- `programs` is a collection of apps configured with home-manager
- `scripts` is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
- `system` is some "desktop environment" configuration
### 🐧 nixos
Those are the system-level configurations. (audio, bluetooth, gpu, bootloader, ...)
### 🎨 themes
Those are the themes used in the system configuration.
Those themes are based on [stylix](https://github.com/danth/stylix).
See avaiable themes in [THEMES.md](docs/THEMES.md)
### 💻 hosts
Those are the host-specific configurations.
Each host contains a `configuration.nix` for system-level configuration, a `home.nix` for user-level configuration, and a `variables.nix` for config wide variables.
## Installation
1. Clone the repo
```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos
```
2. Copy the `hosts/laptop` folder, rename it to your system name, and change the variables inside the `variables.nix` file
3. Add your `hardware-configuration.nix` to your new host's folder
4. Add your 'nixosConfigurations' inside `flake.nix`
> [!Important]
> I added few `# CHANGEME` comments in the files to help you find what to change. Be sure to check them up.
> You can use `rg "CHANGEME"` to find them all with ripgrep.
> [!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
- [THEMES](docs/THEMES.md): How themes work and how to create your own
- [SCRIPTS](docs/SCRIPTS.md): Scripts that are available
- [KEYBINDINGS-HYPRLAND](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland
- [WALLPAPERS](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy.
- [TODO](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License

BIN
.github/assets/large.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
.github/assets/logo.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
.github/assets/nixy/1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 KiB

BIN
.github/assets/nixy/2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 KiB

BIN
.github/assets/nixy/3.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 KiB

BIN
.github/assets/nixy/4.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1001 KiB

20
.github/scripts/create_readme.sh vendored Executable file
View File

@@ -0,0 +1,20 @@
#!/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\}/A594FD}
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"

26
.github/scripts/create_scripts_docs.sh vendored Normal file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
DOCS_FILE="./docs/SCRIPTS.md"
SCRIPTS_FOLDER="./home/scripts"
# search for every directory in the scripts folder:
# The docs for each scripts are in the beginning of the file prefixed by "#-" or "# -" for the title
# Inside the folders, the scripts are stored in default.nix files
echo "[//]: # (This file is autogenerated)" >"$DOCS_FILE"
echo "# Scripts" >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
echo "Scripts are located in the 'home/scripts' folder. Home-manager add those in the user's path." >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
for folder in "$SCRIPTS_FOLDER"/*; do
script="$folder/default.nix"
[[ -f "$script" ]] || continue
content=$(cat "$script")
content=$(echo "$content" | grep -E "^#-|^# -" | sed 's/^#- //;s/^# - //;s/#-//')
echo "$content" >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
done

60
.github/scripts/keybindings_to_markdown.sh vendored Executable file
View File

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

View File

@@ -0,0 +1,24 @@
on:
push:
paths:
- 'home/system/hyprland/bindings.nix'
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: Run a script
run: |
chmod +x ./.github/scripts/keybindings_to_markdown.sh
./docs/.github/keybindings_to_markdown.sh
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Update KEYBINDINGS-HYPRLAND.md (auto)"
git push

31
.github/workflows/update-readme.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
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

View File

@@ -0,0 +1,24 @@
on:
push:
paths:
- 'home/scripts'
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: Run a script
run: |
chmod +x ./.github/scripts/create_scripts_docs.sh
./.github/scripts/create_scripts_docs.sh
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Update SCRIPTS.md (auto)"
git push

1
.gitignore vendored
View File

@@ -1,2 +1 @@
.sops.yaml
todolist.md todolist.md

11
.sops.yaml Normal file
View File

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

237
README.md
View File

@@ -1,169 +1,120 @@
<h1 align="center"> [//]: # (This file is autogenerated)
<img src="https://image.nostr.build/70ebe2b5183879d8c0ffa682cd0089e030ad01909678b242ed86449517eac3a5.png" width="100px" /> <div align="center">
<br> <img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/.github/assets/logo.png" width="120px" />
Nixy </div>
<br>
<img src="https://image.nostr.build/aaf8cf0f3b9784c817f8cf328f19222db2e1886dfb89ae97de83ffa101d437b4.png" width="600px" /> <br>
<div align="center">
<div align="center"> <br>
<p></p>
<div align="center">
<a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=a158ff&labelColor=040409&style=for-the-badge&logo=starship&logoColor=a158ff">
</a>
<a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color=a158ff&labelColor=040409&style=for-the-badge&logo=github&logoColor=a158ff">
</a>
<a href="https://nixos.org">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor=040409&logo=NixOS&logoColor=a158ff&color=a158ff">
</a>
<a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA=040409&colorB=a158ff&logo=unlicense&logoColor=a158ff&"/>
</a>
</div>
<br>
</div>
</h1>
Hello there! This is my **NixOs (w/home-manager) dotfiles** repo. It's still a *work in progress*, and I'm still learning how to use nix. # Nixy
<br>
<div align="center">
<a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=A594FD&labelColor=0b0b0b&style=for-the-badge&logo=starship&logoColor=A594FD">
</a>
<a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color=A594FD&labelColor=0b0b0b&style=for-the-badge&logo=github&logoColor=A594FD">
</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=A594FD&color=A594FD">
</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=A594FD&logo=unlicense&logoColor=A594FD"/>
</a>
</div>
<br>
**Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place.
It's a simple way to manage your system configuration and dotfiles.
I'm Hadi, a french developer, student in infosec, enthusiastic about nix, golang & blockchains.
This is my own, **keyboard-centric**, and **minimalistic** NixOS configuration.
I enable vim-like keybindings everywhere I can, and I use a lot of custom scripts to make my life easier.
**Nixy key points:**
- Hypr-ecosystem first (hyprland, hyprlock, hyprpanel, hypridle, ...)
- Stylix/base16 themes
- Vim-like keybindings everywhere (hyprland, qutebrowser, nvim, ...)
## Table of Content
- [Table of Content](#table-of-content)
- [Gallery](#gallery)
- [Architecture](#architecture)
- [🏠 home](#-home)
- [🐧 nixos](#-nixos)
- [🎨 themes](#-themes)
- [💻 hosts](#-hosts)
- [Installation](#installation)
- [Documentation](#documentation)
## Gallery ## Gallery
![neofetch](https://image.nostr.build/c208c164ae04e4c58e01adb9fab584b163a565155865833851275f89c9270b7a.jpg) ![Nixy helper, peaclock](.github/assets/nixy/1.png)
![qutebrowser](https://image.nostr.build/8cc32d981e6be256bdc37a2571c31bb76d7c3335ce7c76fa6eca89a03019bfc9.jpg) ![Qutebrowser, pipes, shell](.github/assets/nixy/2.png)
![spotify](https://image.nostr.build/76b18bcbcdf1d911a2dbdff7bfac6652044d45602a3dce9d9c53feb295d13245.jpg) ![nvim, lazygit](.github/assets/nixy/3.png)
![wofi](https://image.nostr.build/90d69ffe6251c17e25b0fb44abadaeb0dfe6db8210d935fca14bf8b00be49fa6.jpg) ![spotify, cava](.github/assets/nixy/4.png)
## Apps ## Architecture
<details> ### 🏠 home
<summary>Click to expand</summary>
| Category | Software | Those are the dotfiles and configuration files for user-level configuration
|----------------|---------------|
| WM | Hyprland |
| | hyprlock |
| | hyprpaper |
| | hypridle |
| | wlogout |
| Bar | waybar |
| Terminal | kitty |
| Shell | zsh |
| | tmux |
| | starship |
| | bat |
| | eza |
| | zoxide |
| | fzf |
| Editor | nixvim |
| File manager | lf |
| | thunar |
| Browser | qutebrowser |
| Music | spicetify |
| Notifications | dunst |
| Launcher | wofi |
| DM | tuigreet |
| Secrets | sops-nix |
| Misc | lazygit |
| | neofetch |
| | cava |
| | ... |
</details> **Subfolders:**
## Themes & Colors - `programs` is a collection of apps configured with home-manager
- `scripts` is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
- `system` is some "desktop environment" configuration
Themes and colors are managed by the `home/themes` folder. You can copy the default `nixy.nix` theme and make your own. ### 🐧 nixos
To apply the theme to duckduckgo, follow the instructions in `$HOME/.config/duckduckgo-colorscheme.js`. Those are the system-level configurations. (audio, bluetooth, gpu, bootloader, ...)
## Scripts ### 🎨 themes
### Nix/NixOs shortcuts Those are the themes used in the system configuration.
Those themes are based on [stylix](https://github.com/danth/stylix).
See avaiable themes in [THEMES.md](docs/THEMES.md)
<details> ### 💻 hosts
<summary>Click to expand</summary>
- `nixy-edit` Those are the host-specific configurations.
- `nixy-rebuild` Each host contains a `configuration.nix` for system-level configuration, a `home.nix` for user-level configuration, and a `variables.nix` for config wide variables.
- `nixy-update`
- `nixy-gc` # garbage collection
- `nixy-cb` # clean boot menu
</details>
### Brightness control
<details>
<summary>Click to expand</summary>
- `brightness-up`
- `brightness-down`
- `brightness-change <up/down> <increment>`
</details>
### Sound control
<details>
<summary>Click to expand</summary>
- `sound-up`
- `sound-down`
- `sound-toggle`
- `sound-output`
- `sound-change <up/down/mute> <increment>`
</details>
### Caffeine
<details>
<summary>Click to expand</summary>
Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
- `caffeine` # Toggle caffeine
- `caffeine-status` # Return active/inactive
</details>
### Night-Shift
<details>
<summary>Click to expand</summary>
Blue light filter, using wlsunset
- `night-shift-on`
- `night-shift-off`
</details>
### Nerdfont FZF
<details>
<summary>Click to expand</summary>
Nerdfont fzf is a quick way to search for nerdfont icons locally.
It will copy the selected icon to the clipboard.
- `nerdfont-fzf`
</details>
## Installation ## Installation
1. Clone the repo
```sh ```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos git clone https://github.com/anotherhadi/nixy ~/.config/nixos
``` ```
- Change the `variables.nix` file to match your configuration 2. Copy the `hosts/laptop` folder, rename it to your system name, and change the variables inside the `variables.nix` file
- Remove the hardware module in flake.nix line 30 3. Add your `hardware-configuration.nix` to your new host's folder
- Change the `nixos/configuration.nix` file to match your system 4. Add your 'nixosConfigurations' inside `flake.nix`
- Copy your `hardware-configuration.nix` file to the `nixos` folder
> [!Important]
> I added few `# CHANGEME` comments in the files to help you find what to change. Be sure to check them up.
> You can use `rg "CHANGEME"` to find them all with ripgrep.
> [!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 ```sh
sudo nixos-rebuild switch --flake ~/.config/nixos#nixy sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
``` ```
## Documentation
- [THEMES](docs/THEMES.md): How themes work and how to create your own
- [SCRIPTS](docs/SCRIPTS.md): Scripts that are available
- [KEYBINDINGS-HYPRLAND](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland
- [WALLPAPERS](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy.
- [TODO](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License

16
docs/CONTRIBUTING.md Normal file
View File

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

View File

@@ -0,0 +1,46 @@
[//]: # (This file is autogenerated)
# Keybindings for Hyprland
> [!NOTE]
> SUPER is the windows key by default
| Description | Keybinding |
| -- | -- |
| Switch Workspace | SUPER + {Number} |
| Move app to Workspace | SHIFT + SUPER + {Number} |
| Kitty | SUPER + RETURN |
| Thunar | SUPER + E |
| Qutebrowser | SUPER + B |
| Bitwarden | SUPER + K |
| Lock | SUPER + L |
| Powermenu | SUPER + X |
| Launcher | SUPER + SPACE |
| Toggle HyprFocus | SHIFT + SUPER + SPACE |
| Close window | SUPER + Q |
| Toggle Floating | SUPER + T |
| Toggle Fullscreen | SUPER + F |
| Move focus left | SUPER + left |
| Move focus Right | SUPER + right |
| Move focus Up | SUPER + up |
| Move focus Down | SUPER + down |
| Focus previous monitor | SHIFT + SUPER + up |
| Focus next monitor | SHIFT + SUPER + down |
| Add to master | SHIFT + SUPER + left |
| Remove from master | SHIFT + SUPER + right |
| Screenshot window | SUPER + PRINT |
| Screenshot monitor | PRINT |
| Screenshot region | SHIFT + SUPER + PRINT |
| Screenshot region then edit | ALTPRINT |
| Search on internet with wofi | SHIFT + SUPER + S |
| Clipboard picker with wofi | SHIFT + SUPER + C |
| Emoji picker with wofi | SHIFT + SUPER + E |
| Toggle night shift | SUPER + F2 |
| Toggle night shift | SUPER + F3 |
| Move Window (mouse) | SUPER + mouse:272 |
| Resize Window (mouse) | SUPER + R |
| Toggle Mute | XF86AudioMute |
| Lock when closing Lid | switch:Lid Switch |
| Sound Up | XF86AudioRaiseVolume |
| Sound Down | XF86AudioLowerVolume |
| Brightness Up | XF86MonBrightnessUp |
| Brightness Down | XF86MonBrightnessDown |

88
docs/SCRIPTS.md Normal file
View File

@@ -0,0 +1,88 @@
[//]: # (This file is autogenerated)
# Scripts
Scripts are located in the 'home/scripts' folder. Home-manager add those in the user's path.
## Brightness
This module provides a set of scripts to control the brightness of the screen.
- `brightness-up` increases the brightness by 5%.
- `brightness-down` decreases the brightness by 5%.
- `brightness-set [value]` sets the brightness to the given value.
- `brightness-change [up|down] [value]` increases or decreases the brightness by the given value.
## Caffeine
Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
- `caffeine-status` - Check if hypridle is running. (0/1)
- `caffeine-status-icon` - Check if hypridle is running. (icon)
- `caffeine` - Toggle hypridle.
## Hyprfocus
A simple script to toggle focus on few windows in Hyprland.
(disable gaps, border, shadow, opacity, etc.)
- `hyprfocus-on` - Enable hyprfocus.
- `hyprfocus-off` - Disable hyprfocus.
- `hyprfocus-toggle` - Toggle hyprfocus.
## Hyprpanel
Quick scripts to toggle, reload and kill hyprpanel.
- `hyprpanel-toggle` - Toggle hyprpanel.
- `hyprpanel-reload` - Reload hyprpanel.
- `hyprpanel-kill` - Kill hyprpanel.
## Nerdfont FZF
This module provides a script to search for Nerd Fonts icons using fzf.
- `nerdfont-fzf` - Search for Nerd Fonts icons using fzf.
## Night-Shift
Night-Shift is a feature that reduces the amount of blue light emitted by your screen, which can help reduce eye strain and improve sleep quality. This module provides a set of scripts to control Night-Shift on your system.
- `night-shift-on` activates Night-Shift.
- `night-shift-off` deactivates Night-Shift.
- `night-shift` toggles Night-Shift.
- `night-shift-status` checks if Night-Shift is active. (0/1)
- `night-shift-status-icon` checks if Night-Shift is active. (icon)
## 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, upgrade, 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.
## Screenshot
This module provides a script to take screenshots using `hyprshot` and `swappy`.
- `screenshot [region|window|monitor] [swappy]` - Take a screenshot of the region, window, or monitor. Optionally, use `swappy` to copy the screenshot to the clipboard.
## Sound
This module provides a set of scripts to control the volume of the default audio sink using `wpctl`.
- `sound-up` increases the volume by 5%.
- `sound-down` decreases the volume by 5%.
- `sound-set [value]` sets the volume to the given value.
- `sound-toggle` toggles the mute state of the default audio sink.
## System
Usefull quick scripts
- `menu` - Open wofi with drun mode.
- `powermenu` - Open power dropdown menu.
- `lock` - Lock the screen.

21
docs/THEMES.md Normal file
View File

@@ -0,0 +1,21 @@
# Themes
Themes are defined in `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 configuration.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 [nixy-wallpapers](https://github.com/anotherhadi/nixy-wallpapers) repo.
## Gallery
### Nixy
![nixy1](../.github/assets/nixy/1.png)
![nixy2](../.github/assets/nixy/2.png)
![nixy3](../.github/assets/nixy/3.png)
![nixy4](../.github/assets/nixy/4.png)

13
docs/TODO.md Normal file
View File

@@ -0,0 +1,13 @@
# Todolist
feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md))
- [!] Qutebrowser Bitwarden integration (I need this.)
- [ ] Nixvim
- [ ] Change headings foreground
- [ ] neotest golang
- [ ] nvim dap
- [ ] Tofi configuration
- [ ] OS Hardening with nix-mineral

875
flake.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,13 @@
{ {
description = "Nixy - Hadi's NixOS configuration"; # https://github.com/anotherhadi/nixy
description = ''
Nixy is a NixOS configuration with home-manager, secrets and custom theming all in one place.
It's a simple way to manage your system configuration and dotfiles.
'';
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -11,44 +16,41 @@
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
apple-fonts.url = "github:Lyndeno/apple-fonts.nix"; spicetify-nix = {
spicetify-nix.url = "github:the-argus/spicetify-nix"; url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = { sops-nix = {
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
rose-pine-hyprcursor.url = "github:ndom91/rose-pine-hyprcursor"; hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
nixy-wallpapers = {
url = "github:anotherhadi/nixy-wallpapers";
flake = false;
};
stylix.url = "github:danth/stylix";
apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
hyprswitch.url = "github:h3rmt/hyprswitch/release";
}; };
outputs = inputs@{ nixpkgs, home-manager, sops-nix, hyprland, spicetify-nix outputs = inputs@{ nixpkgs, ... }: {
, nixos-hardware, ... }: { nixosConfigurations = {
nixosConfigurations = { nixy = # CHANGEME
nixy = nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
nixos-hardware.nixosModules.omen-16-n0005ne # REMOVE
./nixos/configuration.nix
./nixos/fonts.nix
./nixos/tuigreet.nix
{ _module.args = { inherit inputs; }; }
home-manager.nixosModules.home-manager
{ {
home-manager = { nixpkgs.overlays = [ inputs.hyprpanel.overlay ];
useGlobalPkgs = true; _module.args = { inherit inputs; };
useUserPackages = true;
users."hadi" = import ./home/home.nix;
extraSpecialArgs = {
inherit inputs;
inherit spicetify-nix;
inherit sops-nix;
inherit hyprland;
};
};
} }
inputs.nixos-hardware.nixosModules.omen-16-n0005ne # CHANGEME
inputs.home-manager.nixosModules.home-manager
inputs.stylix.nixosModules.stylix
./hosts/laptop/configuration.nix # CHANGEME
]; ];
}; };
};
}; };
};
} }

View File

@@ -1,13 +0,0 @@
{ config, ... }: {
programs.cava = {
enable = true;
settings = {
general.framerate = 60;
smoothing.noise_reduction = 88;
color = {
background = "'#${config.theme.colors.bg}'";
foreground = "'#${config.theme.colors.primary-bg}'";
};
};
};
}

View File

@@ -1,14 +0,0 @@
{
imports = [
./kitty
./lf
./neofetch
./nvim
./qutebrowser
./spicetify
./wofi
./cava
./tmux
./lazygit
];
}

View File

@@ -1,50 +0,0 @@
{ config, pkgs, ... }: {
programs.kitty = {
enable = true;
settings = {
scrollback_lines = 10000;
enable_audio_bell = false;
update_check_interval = 0;
font_family = config.theme.font-mono;
font_size = 13;
cursor_shape = "Underline";
cursor_underline_thickness = 1;
window_padding_width = 10;
url_style = "curly";
confirm_os_window_close = "0";
remember_window_size = "no";
disable_ligatures = "never";
shell = "${pkgs.tmux}/bin/tmux";
initial_window_width = 1200;
initial_window_height = 600;
background = "#" + config.theme.colors.bg;
url_color = "#" + config.theme.colors.primary-fg;
color0 = "#" + config.theme.colors.color0;
color8 = "#" + config.theme.colors.color8;
color1 = "#" + config.theme.colors.color1;
color9 = "#" + config.theme.colors.color9;
color2 = "#" + config.theme.colors.color2;
color10 = "#" + config.theme.colors.color10;
color3 = "#" + config.theme.colors.color3;
color11 = "#" + config.theme.colors.color11;
color4 = "#" + config.theme.colors.color4;
color12 = "#" + config.theme.colors.color12;
color5 = "#" + config.theme.colors.color5;
color13 = "#" + config.theme.colors.color13;
color6 = "#" + config.theme.colors.color6;
color14 = "#" + config.theme.colors.color14;
color7 = "#" + config.theme.colors.color7;
color15 = "#" + config.theme.colors.color15;
cursor = "#" + config.theme.colors.fg;
cursor_text_color = "#" + config.theme.colors.bg;
selection_foreground = "#" + config.theme.colors.primary-fg;
selection_background = "#" + config.theme.colors.primary-bg;
};
};
}

View File

@@ -1,13 +0,0 @@
{ config, ... }: {
programs.lazygit = {
enable = true;
settings = {
gui.theme = {
ligthTheme = false;
activeBorderColor = [ "${config.theme.colors.primary-ansi-16}" "bold" ];
inactiveBorderColor = [ "black" ];
selectedLineBgColor = [ "default" ];
};
};
};
}

View File

@@ -1,174 +0,0 @@
# vim:ft=dircolors
# (This is not a dircolors file but it helps to highlight colors and comments)
# default values from dircolors
# (entries with a leading # are not implemented in lf)
# #no 00 # NORMAL
# fi 00 # FILE
# #rs 0 # RESET
# di 01;34 # DIR
# ln 01;36 # LINK
# #mh 00 # MULTIHARDLINK
# pi 40;33 # FIFO
# so 01;35 # SOCK
# #do 01;35 # DOOR
# bd 40;33;01 # BLK
# cd 40;33;01 # CHR
# or 40;31;01 # ORPHAN
# #mi 00 # MISSING
# su 37;41 # SETUID
# sg 30;43 # SETGID
# #ca 30;41 # CAPABILITY
# tw 30;42 # STICKY_OTHER_WRITABLE
# ow 34;42 # OTHER_WRITABLE
# st 37;44 # STICKY
# ex 01;32 # EXEC
# default values from lf (with matching order)
# ln 01;36 # LINK
# or 31;01 # ORPHAN
# tw 01;34 # STICKY_OTHER_WRITABLE
# ow 01;34 # OTHER_WRITABLE
# st 01;34 # STICKY
# di 01;34 # DIR
# pi 33 # FIFO
# so 01;35 # SOCK
# bd 33;01 # BLK
# cd 33;01 # CHR
# su 01;32 # SETUID
# sg 01;32 # SETGID
# ex 01;32 # EXEC
# fi 00 # FILE
# file types (with matching order)
ln 01;36 # LINK
or 31;01 # ORPHAN
tw 34 # STICKY_OTHER_WRITABLE
ow 34 # OTHER_WRITABLE
st 01;34 # STICKY
di 01;34 # DIR
pi 33 # FIFO
so 01;35 # SOCK
bd 33;01 # BLK
cd 33;01 # CHR
su 01;32 # SETUID
sg 01;32 # SETGID
ex 01;32 # EXEC
fi 00 # FILE
# archives or compressed (dircolors defaults)
*.tar 01;31
*.tgz 01;31
*.arc 01;31
*.arj 01;31
*.taz 01;31
*.lha 01;31
*.lz4 01;31
*.lzh 01;31
*.lzma 01;31
*.tlz 01;31
*.txz 01;31
*.tzo 01;31
*.t7z 01;31
*.zip 01;31
*.z 01;31
*.dz 01;31
*.gz 01;31
*.lrz 01;31
*.lz 01;31
*.lzo 01;31
*.xz 01;31
*.zst 01;31
*.tzst 01;31
*.bz2 01;31
*.bz 01;31
*.tbz 01;31
*.tbz2 01;31
*.tz 01;31
*.deb 01;31
*.rpm 01;31
*.jar 01;31
*.war 01;31
*.ear 01;31
*.sar 01;31
*.rar 01;31
*.alz 01;31
*.ace 01;31
*.zoo 01;31
*.cpio 01;31
*.7z 01;31
*.rz 01;31
*.cab 01;31
*.wim 01;31
*.swm 01;31
*.dwm 01;31
*.esd 01;31
# image formats (dircolors defaults)
*.jpg 01;35
*.jpeg 01;35
*.mjpg 01;35
*.mjpeg 01;35
*.gif 01;35
*.bmp 01;35
*.pbm 01;35
*.pgm 01;35
*.ppm 01;35
*.tga 01;35
*.xbm 01;35
*.xpm 01;35
*.tif 01;35
*.tiff 01;35
*.png 01;35
*.svg 01;35
*.svgz 01;35
*.mng 01;35
*.pcx 01;35
*.mov 01;35
*.mpg 01;35
*.mpeg 01;35
*.m2v 01;35
*.mkv 01;35
*.webm 01;35
*.ogm 01;35
*.mp4 01;35
*.m4v 01;35
*.mp4v 01;35
*.vob 01;35
*.qt 01;35
*.nuv 01;35
*.wmv 01;35
*.asf 01;35
*.rm 01;35
*.rmvb 01;35
*.flc 01;35
*.avi 01;35
*.fli 01;35
*.flv 01;35
*.gl 01;35
*.dl 01;35
*.xcf 01;35
*.xwd 01;35
*.yuv 01;35
*.cgm 01;35
*.emf 01;35
*.ogv 01;35
*.ogx 01;35
# audio formats (dircolors defaults)
*.aac 00;36
*.au 00;36
*.flac 00;36
*.m4a 00;36
*.mid 00;36
*.midi 00;36
*.mka 00;36
*.mp3 00;36
*.mpc 00;36
*.ogg 00;36
*.ra 00;36
*.wav 00;36
*.oga 00;36
*.opus 00;36
*.spx 00;36
*.xspf 00;36

View File

@@ -1,361 +0,0 @@
# vim:ft=conf
# These examples require Nerd Fonts or a compatible font to be used.
# See https://www.nerdfonts.com for more information.
# default values from lf (with matching order)
# ln l # LINK
# or l # ORPHAN
# tw t # STICKY_OTHER_WRITABLE
# ow d # OTHER_WRITABLE
# st t # STICKY
# di d # DIR
# pi p # FIFO
# so s # SOCK
# bd b # BLK
# cd c # CHR
# su u # SETUID
# sg g # SETGID
# ex x # EXEC
# fi - # FILE
# file types (with matching order)
ln  # LINK
or  # ORPHAN
tw t # STICKY_OTHER_WRITABLE
ow  # OTHER_WRITABLE
st t # STICKY
di  # DIR
pi p # FIFO
so s # SOCK
bd b # BLK
cd c # CHR
su u # SETUID
sg g # SETGID
ex  # EXEC
fi  # FILE
# file extensions (vim-devicons)
*.styl 
*.sass 
*.scss 
*.htm 
*.html 
*.slim 
*.haml 
*.ejs 
*.css 
*.less 
*.md 
*.mdx 
*.markdown 
*.rmd 
*.json 
*.webmanifest 
*.js 
*.mjs 
*.jsx 
*.rb 
*.gemspec 
*.rake 
*.php 
*.py 
*.pyc 
*.pyo 
*.pyd 
*.coffee 
*.mustache 
*.hbs 
*.conf 
*.ini 
*.yml 
*.yaml 
*.toml 
*.bat 
*.mk 
*.jpg 
*.jpeg 
*.bmp 
*.png 
*.webp 
*.gif 
*.ico 
*.twig 
*.cpp 
*.c++ 
*.cxx 
*.cc 
*.cp 
*.c 
*.cs 󰌛
*.h 
*.hh 
*.hpp 
*.hxx 
*.hs 
*.lhs 
*.nix 
*.lua 
*.java 
*.sh 
*.fish 
*.bash 
*.zsh 
*.ksh 
*.csh 
*.awk 
*.ps1 
*.ml λ
*.mli λ
*.diff 
*.db 
*.sql 
*.dump 
*.clj 
*.cljc 
*.cljs 
*.edn 
*.scala 
*.go 
*.dart 
*.xul 
*.sln 
*.suo 
*.pl 
*.pm 
*.t 
*.rss 
'*.f#' 
*.fsscript 
*.fsx 
*.fs 
*.fsi 
*.rs 
*.rlib 
*.d 
*.erl 
*.hrl 
*.ex 
*.exs 
*.eex 
*.leex 
*.heex 
*.vim 
*.ai 
*.psd 
*.psb 
*.ts 
*.tsx 
*.jl 
*.pp 
*.vue 
*.elm 
*.swift 
*.xcplayground 
*.tex 󰙩
*.r 󰟔
*.rproj 󰗆
*.sol 󰡪
*.pem 
# file names (vim-devicons) (case-insensitive not supported in lf)
*gruntfile.coffee 
*gruntfile.js 
*gruntfile.ls 
*gulpfile.coffee 
*gulpfile.js 
*gulpfile.ls 
*mix.lock 
*dropbox 
*.ds_store 
*.gitconfig 
*.gitignore 
*.gitattributes 
*.gitlab-ci.yml 
*.bashrc 
*.zshrc 
*.zshenv 
*.zprofile 
*.vimrc 
*.gvimrc 
*_vimrc 
*_gvimrc 
*.bashprofile 
*favicon.ico 
*license 
*node_modules 
*react.jsx 
*procfile 
*dockerfile 
*docker-compose.yml 
*docker-compose.yaml 
*compose.yml 
*compose.yaml 
*rakefile 
*config.ru 
*gemfile 
*makefile 
*cmakelists.txt 
*robots.txt 󰚩
# file names (case-sensitive adaptations)
*Gruntfile.coffee 
*Gruntfile.js 
*Gruntfile.ls 
*Gulpfile.coffee 
*Gulpfile.js 
*Gulpfile.ls 
*Dropbox 
*.DS_Store 
*LICENSE 
*React.jsx 
*Procfile 
*Dockerfile 
*Docker-compose.yml 
*Docker-compose.yaml 
*Rakefile 
*Gemfile 
*Makefile 
*CMakeLists.txt 
# file patterns (vim-devicons) (patterns not supported in lf)
# .*jquery.*\.js$ 
# .*angular.*\.js$ 
# .*backbone.*\.js$ 
# .*require.*\.js$ 
# .*materialize.*\.js$ 
# .*materialize.*\.css$ 
# .*mootools.*\.js$ 
# .*vimrc.* 
# Vagrantfile$ 
# file patterns (file name adaptations)
*jquery.min.js 
*angular.min.js 
*backbone.min.js 
*require.min.js 
*materialize.min.js 
*materialize.min.css 
*mootools.min.js 
*vimrc 
Vagrantfile 
# archives or compressed (extensions from dircolors defaults)
*.tar 
*.tgz 
*.arc 
*.arj 
*.taz 
*.lha 
*.lz4 
*.lzh 
*.lzma 
*.tlz 
*.txz 
*.tzo 
*.t7z 
*.zip 
*.z 
*.dz 
*.gz 
*.lrz 
*.lz 
*.lzo 
*.xz 
*.zst 
*.tzst 
*.bz2 
*.bz 
*.tbz 
*.tbz2 
*.tz 
*.deb 
*.rpm 
*.jar 
*.war 
*.ear 
*.sar 
*.rar 
*.alz 
*.ace 
*.zoo 
*.cpio 
*.7z 
*.rz 
*.cab 
*.wim 
*.swm 
*.dwm 
*.esd 
# image formats (extensions from dircolors defaults)
*.jpg 
*.jpeg 
*.mjpg 
*.mjpeg 
*.gif 
*.bmp 
*.pbm 
*.pgm 
*.ppm 
*.tga 
*.xbm 
*.xpm 
*.tif 
*.tiff 
*.png 
*.svg 
*.svgz 
*.mng 
*.pcx 
*.mov 
*.mpg 
*.mpeg 
*.m2v 
*.mkv 
*.webm 
*.ogm 
*.mp4 
*.m4v 
*.mp4v 
*.vob 
*.qt 
*.nuv 
*.wmv 
*.asf 
*.rm 
*.rmvb 
*.flc 
*.avi 
*.fli 
*.flv 
*.gl 
*.dl 
*.xcf 
*.xwd 
*.yuv 
*.cgm 
*.emf 
*.ogv 
*.ogx 
# audio formats (extensions from dircolors defaults)
*.aac 
*.au 
*.flac 
*.m4a 
*.mid 
*.midi 
*.mka 
*.mp3 
*.mpc 
*.ogg 
*.ra 
*.wav 
*.oga 
*.opus 
*.spx 
*.xspf 
# other formats
*.pdf 

View File

@@ -1,80 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ pistol ];
programs.lf = {
enable = true;
commands = {
dragon-out = ''%${pkgs.xdragon}/bin/xdragon -a -x "$fx"'';
editor-open = "$$EDITOR $f";
mkdir = ''
''${{
printf "Directory Name: "
read DIR
mkdir $DIR
}}
'';
};
keybindings = {
d = "delete";
x = "cut";
"<enter>" = "open";
"<c-g>" = "quit";
"<esc>" = "quit";
"H" = "set hidden!";
"\\\"" = "";
o = "";
c = "mkdir";
"." = "set hidden!";
"`" = "mark-load";
"\\'" = "mark-load";
"g~" = "cd";
do = "dragon-out";
gh = "cd";
"g/" = "/";
ee = "editor-open";
V = ''$''${pkgs.bat}/bin/bat --paging=always "$f"'';
};
settings = {
ratios = [ 1 1 2 ];
preview = true;
hidden = true;
drawbox = true;
icons = true;
ignorecase = true;
incsearch = true;
};
previewer.source = "${pkgs.pistol}/bin/pistol";
extraConfig = let
previewer = pkgs.writeShellScriptBin "pv.sh" ''
file=$1
w=$2
h=$3
x=$4
y=$5
if [[ "$( ${pkgs.file}/bin/file -Lb --mime-type "$file")" =~ ^image ]]; then
${pkgs.kitty}/bin/kitty +kitten icat --silent --stdin no --transfer-mode file --place "''${w}x''${h}@''${x}x''${y}" "$file" < /dev/null > /dev/tty
exit 1
fi
${pkgs.pistol}/bin/pistol "$file"
'';
cleaner = pkgs.writeShellScriptBin "clean.sh" ''
${pkgs.kitty}/bin/kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty
'';
in ''
set cleaner ${cleaner}/bin/clean.sh
set previewer ${previewer}/bin/pv.sh
'';
};
xdg.configFile."lf" = {
recursive = true;
source = ./config;
};
}

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,37 +0,0 @@
{ inputs, ... }: {
imports = [
inputs.nixvim.homeManagerModules.nixvim
./auto-pairs.nix
./options.nix
./bufferline.nix
./lazygit.nix
./telescope.nix
./nvim-tree.nix
./lightline.nix
./git.nix
./cmp.nix
./none-ls.nix
./wilder.nix
./lsp.nix
./treesitter.nix
./toggleterm.nix
./copilot.nix
./obsidian.nix
./whichkey.nix
./alpha.nix
./keymaps.nix
./comment.nix
./oil.nix
./trouble.nix
./tmux-navigator.nix
];
programs.nixvim = {
enable = true;
colorschemes.catppuccin = {
enable = true;
settings = { transparent_background = true; };
};
};
}

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,24 +0,0 @@
{
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";
};
};
};
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,37 +0,0 @@
{ config, ... }: {
xdg.configFile."duckduckgo-colorscheme.js".text = ''
// Go to DuckDuckGo settings page, open the console, paste the code and hit enter.
// based on https://ddg.codingcodax.dev/
// Cookies string for your theme
const cookie = '7=${config.theme.colors.bg}; j=${config.theme.colors.bg}; 9=${config.theme.colors.fg}; aa=${config.theme.colors.alt-fg}; 8=${config.theme.colors.color7}; x=${config.theme.colors.primary-bg}; 21=${config.theme.colors.alt-bg};';
// Converts cookie string into formatted JSON
const cookieToJSON = (cookieRaw) => {
const cookieJson = {};
const items = cookieRaw.split(/[ ,]+/);
items.forEach((item) => {
const parts = item.split('=');
cookieJson[parts[0]] = parts[1];
});
return cookieJson;
};
// Iterates over JSON, and adds to browser cookie store
const setCookies = (cookieJson) => {
Object.keys(cookieJson).forEach((key) => {
document.cookie = `''${key}=''${cookieJson [ key ]}`;
});
};
alert('The Nixy theme will be applied.');
// Call set cookies, passing in formated cookie data
setCookies(cookieToJSON(cookie));
// All done, reload page for changes to take effect :)
location.reload();
'';
}

View File

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

View File

@@ -1,40 +0,0 @@
{ pkgs, config, lib, spicetify-nix, ... }:
let spicePkgs = spicetify-nix.packages.${pkgs.system}.default;
in {
imports = [ spicetify-nix.homeManagerModules.default ];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ "spotify" ];
programs.spicetify = {
enable = true;
theme = spicePkgs.themes.text;
colorScheme = "custom";
customColorScheme = {
text = "${config.theme.colors.fg}";
subtext = "${config.theme.colors.alt-fg}";
sidebar-text = "${config.theme.colors.alt-fg}";
main = "${config.theme.colors.bg}";
sidebar = "${config.theme.colors.bg}";
background = "${config.theme.colors.bg}";
player = "${config.theme.colors.bg}";
card = "${config.theme.colors.bg}";
shadow = "000000";
selected-row = "${config.theme.colors.alt-bg}";
button = "${config.theme.colors.primary-bg}";
button-active = "${config.theme.colors.primary-bg}";
button-disabled = "${config.theme.colors.alt-bg}";
tab-active = "${config.theme.colors.primary-bg}";
misc = "${config.theme.colors.alt-fg}";
};
enabledExtensions = with spicePkgs.extensions; [
playlistIcons
lastfm
historyShortcut
hidePodcasts
fullAppDisplay
shuffle
];
};
}

View File

@@ -1,46 +0,0 @@
{ pkgs, ... }: {
programs.tmux = {
enable = true;
mouse = true;
shell = "${pkgs.zsh}/bin/zsh";
prefix = "C-s";
terminal = "kitty";
keyMode = "vi";
extraConfig = ''
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R
'';
plugins = with pkgs; [
tmuxPlugins.vim-tmux-navigator
{
plugin = tmuxPlugins.catppuccin;
extraConfig = ''
set-option -g status-position top
set -g @catppuccin_window_left_separator ""
set -g @catppuccin_window_right_separator " "
set -g @catppuccin_window_middle_separator " "
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_default_fill "number"
set -g @catppuccin_window_default_text "#W"
set -g @catppuccin_window_current_fill "number"
set -g @catppuccin_window_current_text "#W"
set -g @catppuccin_status_modules_right "directory session"
set -g @catppuccin_status_left_separator " "
set -g @catppuccin_status_right_separator ""
set -g @catppuccin_status_fill "icon"
set -g @catppuccin_status_connect_separator "no"
set -g @catppuccin_directory_text "#{pane_current_path}"
set -g @catppuccin_status_background "default"
'';
}
];
};
}

View File

@@ -1,96 +0,0 @@
{ config, ... }: {
programs.wofi = {
enable = true;
settings = {
allow_markup = true;
width = 450;
show = "drun";
prompt = "Apps";
normal_window = true;
layer = "top";
term = "foot";
height = "305px";
orientation = "vertical";
halign = "fill";
line_wrap = "off";
dynamic_lines = false;
allow_images = true;
image_size = 24;
exec_search = false;
hide_search = false;
parse_search = false;
insensitive = true;
hide_scroll = true;
no_actions = true;
sort_order = "default";
gtk_dark = true;
filter_rate = 100;
key_expand = "Tab";
key_exit = "Escape";
};
style = ''
/** ********** Fonts ********** **/
* {
font-family: "${config.theme.font}";
font-weight: 500;
font-size: 12px;
}
#window {
background-color: #${config.theme.colors.alt-bg};
color: #${config.theme.colors.alt-fg};
border-radius: ${toString config.theme.rounding}px;
}
#outer-box {
padding: 20px;
}
#input {
background-color: #${config.theme.colors.bg};
border: 0px solid #${config.theme.colors.primary-bg};
padding: 8px 12px;
}
#scroll {
margin-top: 20px;
}
#inner-box {}
#img {
padding-right: 8px;
}
#text {
color: #${config.theme.colors.color7};
}
#text:selected {
color: #${config.theme.colors.fg};
}
#entry {
padding: 6px;
}
#entry:selected {
background-color: #${config.theme.colors.primary-bg};
color: #${config.theme.colors.primary-fg};
}
#unselected {}
#selected {}
#input,
#entry:selected {
border-radius: ${toString (config.theme.rounding - 10)}px;
}
'';
};
}

View File

@@ -1,61 +0,0 @@
{ pkgs, ... }:
let variable = import ../variables.nix;
in {
imports = [ ./themes ./system ./scripts ./apps ];
home = {
username = variable.username;
homeDirectory = variable.homeDirectory;
packages = with pkgs; [
swappy
imv
discord
obsidian
btop
xfce.thunar
bitwarden
vlc
# Dev
go
cargo
nodejs
python3
jq
# Utils
sops # Secrets
age # Secrets
fd
bc
gcc
blueman
zip
unzip
xdg_utils
tldr
wget
curl
ripgrep
neovide
wf-recorder
tree # temp
# Just cool
peaclock
cbonsai
pipes
cmatrix
# Backup
vscode
firefox
tor-browser
];
stateVersion = variable.stateVersion;
};
programs.home-manager.enable = true;
}

View File

@@ -0,0 +1 @@
{ imports = [ ./neofetch ./nerdfetch ]; }

View File

@@ -1,4 +1,4 @@
{ pkgs, config, ... }: { { pkgs, ... }: {
home.packages = with pkgs; [ neofetch ]; home.packages = with pkgs; [ neofetch ];
xdg.configFile."neofetch/ascii.txt".text = '' xdg.configFile."neofetch/ascii.txt".text = ''
@@ -109,9 +109,6 @@
song_format="%artist% - %album% - %title%" song_format="%artist% - %album% - %title%"
song_shorthand="off" song_shorthand="off"
mpc_args=() mpc_args=()
colors=(${toString config.theme.colors.primary-ansi-16-number} 1 ${
toString config.theme.colors.primary-ansi-16-number
} ${toString config.theme.colors.primary-ansi-16-number} 7)
bold="on" bold="on"
underline_enabled="on" underline_enabled="on"
underline_char="-" underline_char="-"

View File

@@ -1,5 +1,4 @@
# Nerdfetch: https://github.com/ThatOneCalculator/NerdFetch { pkgs, ... }:
{ pkgs, config, ... }:
let let
nerdfetch = pkgs.writeShellScriptBin "nerdfetch" '' nerdfetch = pkgs.writeShellScriptBin "nerdfetch" ''
ostype="$(uname)" ostype="$(uname)"
@@ -346,9 +345,9 @@ let
## USER VARIABLES -- YOU CAN CHANGE THESE ## USER VARIABLES -- YOU CAN CHANGE THESE
lc="$reset$bold''$${config.theme.colors.primary-ansi-16}" # labels lc="$reset$bold$magenta" # labels
nc="$reset$bold''$${config.theme.colors.primary-ansi-16}" # labels nc="$reset$bold$magenta" # labels
hn="$reset$bold''$${config.theme.colors.primary-ansi-16}" # labels hn="$reset$bold$magenta" # labels
ic="$reset$white" # info ic="$reset$white" # info
c0="$reset$grey" # first color c0="$reset$grey" # first color
c1="$reset$white" # second color c1="$reset$white" # second color
@@ -367,4 +366,4 @@ let
""" """
''; '';
in { home.packages = with pkgs; [ nerdfetch ]; } in { home.packages = [ nerdfetch ]; }

View File

@@ -0,0 +1,54 @@
{ config, ... }:
let
username = config.var.git.username;
email = config.var.git.email;
in {
programs.git = {
enable = true;
userName = username;
userEmail = email;
ignores = [
".cache/"
".DS_Store"
".idea/"
"*.swp"
"*.elc"
"auto-save-list"
".direnv/"
"node_modules"
"result"
"result-*"
];
extraConfig = {
init.defaultBranch = "main";
push.autoSetupRemote = true;
};
aliases = {
essa = "push --force";
co = "checkout";
fuck = "commit --amend -m";
c = "commit -m";
ca = "commit -am";
forgor = "commit --amend --no-edit";
graph = "log --all --decorate --graph --oneline";
oops = "checkout --";
l = "log";
r = "rebase";
s = "status --short";
ss = "status";
d = "diff";
ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)";
pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)";
af = "!git add $(git ls-files -m -o --exclude-standard | sk -m)";
st = "status";
br = "branch";
df = "!git hist | peco | awk '{print $2}' | xargs -I {} git diff {}^ {}";
hist = ''
log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all'';
llog = ''
log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative'';
edit-unmerged =
"!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; hx `f`";
};
};
}

View File

@@ -0,0 +1,28 @@
{
programs.kitty = {
enable = true;
keybindings = {
# Reset existing mappings
"ctrl+alt+tab" = "next_tab";
"ctrl+alt+shift+tab" = "previous_tab";
# Send Ctrl Tab and Ctrl + Shift + Tab for Tmux navigation
"ctrl+tab" = "send_text all \\x1b[27;5;9~";
"ctrl+shift+tab" = "send_text all \\x1b[27;6;9~";
"alt+tab" = "send_text all \\x1b[27;3;9~";
};
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";
url_style = "curly";
cursor_shape = "Underline";
cursor_underline_thickness = 3;
window_padding_width = 10;
};
};
}

View File

@@ -0,0 +1,22 @@
{ config, lib, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}";
in {
programs.lazygit = {
enable = true;
settings = lib.mkForce {
gui = {
theme = {
activeBorderColor = [ accent "bold" ];
inactiveBorderColor = [ muted ];
};
showListFooter = false;
showRandomTip = false;
showCommandLog = false;
showBottomLine = false;
nerdFontsVersion = "3";
};
};
};
}

View File

@@ -0,0 +1,4 @@
# Work in progress on another repo
{ pkgs, ... }: {
home.packages = with pkgs; [ wkhtmltopdf ];
}

View File

@@ -0,0 +1,7 @@
# Nextcloud is a suite of client-server software for creating file hosting services and using them. It is functionally similar to Dropbox, although Nextcloud is free and open-source, allowing anyone to install and operate it on a private server. In contrast to proprietary services, Nextcloud can be hosted on a private server, without additional cost.
{
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
}

View File

@@ -0,0 +1,21 @@
# Nixvim is a NixOS module that installs and configures Neovim
{ inputs, ... }: {
imports = [
inputs.nixvim.homeManagerModules.nixvim
./plugins/cmp.nix
./plugins/dashboard.nix
./plugins/lsp.nix
./plugins/markdown.nix
./plugins/tree.nix
./plugins/ui.nix
./plugins/utils.nix
./plugins/dap.nix
./plugins/telescope.nix
./plugins/zenmode.nix
./options.nix
./keymaps.nix
];
programs.nixvim.enable = true;
}

View File

@@ -0,0 +1,310 @@
{
programs.nixvim = {
plugins.which-key = {
enable = true;
settings = {
delay = 600;
icons = {
breadcrumb = "»";
group = "+";
separator = ""; # ➜
mappings = false;
};
spec = [
# General Mappings
{
__unkeyed-1 = "<leader>c";
mode = [ "n" "v" ];
group = "+code";
}
{
__unkeyed-1 = "<leader>d";
mode = [ "n" "v" ];
group = "+debug";
}
{
__unkeyed-1 = "<leader>s";
mode = "n";
group = "+search";
}
{
__unkeyed-1 = "<leader>m";
mode = "n";
group = "+markdown";
}
{
__unkeyed-1 = "<leader>t";
mode = "n";
group = "+trouble";
}
{
__unkeyed-1 = "<leader>u";
mode = "n";
group = "+ui";
}
{
__unkeyed-1 = "<leader>w";
mode = "n";
group = "+windows";
}
{
__unkeyed-1 = "<leader>h";
mode = "n";
group = "+harpoon";
}
];
win = {
border = "rounded";
wo.winblend = 0;
};
};
};
keymaps = [
# General Mappings
{
key = "<leader>e";
action = "<cmd>Oil --float<cr>";
options.desc = "Oil";
}
{
key = "-";
action = "<cmd>Oil<cr>";
options.desc = "Oil";
}
{
key = "<leader>E";
action = "<cmd>Neotree toggle<cr>";
options.desc = "Neotree";
}
{
key = "s";
action = "<cmd>lua require('flash').jump()<cr>";
options.desc = "Flash";
}
{
key = "K";
action = "<cmd>lua vim.lsp.buf.hover()<cr>";
options.desc = "LSP Hover";
}
{
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>";
}
# UI
{
key = "<leader>uz";
action = "<cmd>ZenMode<cr>";
options.desc = "Toggle ZenMode";
}
{
key = "<leader>uw";
action = "<cmd>set wrap!<cr>";
options.desc = "Toggle word wrapping";
}
{
key = "<leader>ul";
action = "<cmd>set linebreak!<cr>";
options.desc = "Toggle linebreak";
}
{
key = "<leader>us";
action = "<cmd>set spell!<cr>";
options.desc = "Toggle spellcheck";
}
{
key = "<leader>uc";
action = "<cmd>set cursorline!<cr>";
options.desc = "Toggle cursorline";
}
{
key = "<leader>un";
action = "<cmd>set number!<cr>";
options.desc = "Toggle line numbers";
}
{
key = "<leader>ur";
action = "<cmd>set relativenumber!<cr>";
options.desc = "Toggle relative line numbers";
}
{
key = "<leader>ut";
action = "<cmd>set showtabline=2<cr>";
options.desc = "Show tabline";
}
{
key = "<leader>uT";
action = "<cmd>set showtabline=0<cr>";
options.desc = "Hide tabline";
}
# Search
{
key = "<leader> ";
action = "<cmd>lua require('telescope.builtin').find_files()<cr>";
options.desc = "Telescope";
}
{
key = "<leader>sg";
action = "<cmd>lua require('telescope.builtin').live_grep()<cr>";
options.desc = "Livegrep";
}
{
key = "<leader>sf";
action = "<cmd>lua require('telescope.builtin').find_files()<cr>";
options.desc = "Find Files";
}
{
key = "<leader>sb";
action = "<cmd>lua require('telescope.builtin').buffers()<cr>";
options.desc = "Buffers";
}
{
key = "<leader>sh";
action = "<cmd>lua require('telescope.builtin').help_tags()<cr>";
options.desc = "Help Tags";
}
{
key = "<leader>sc";
action = "<cmd>lua require('telescope.builtin').commands()<cr>";
options.desc = "Commands";
}
{
key = "<leader>sm";
action = "<cmd>lua require('telescope.builtin').marks()<cr>";
options.desc = "Marks";
}
{
key = "<leader>so";
action = "<cmd>lua require('telescope.builtin').oldfiles()<cr>";
options.desc = "Oldfiles";
}
{
key = "<leader>ss";
action = "<cmd>lua require('telescope.builtin').spell_suggest()<cr>";
options.desc = "Spell Suggest";
}
{
key = "<leader>sr";
action = "<cmd>:noh<return><esc>";
options.desc = "Reset search";
}
{
key = "<leader>st";
action = "<cmd>TodoTelescope<cr>";
options.desc = "Todos";
}
# Trouble
{
key = "<leader>tx";
action = "<cmd>Trouble diagnostics toggle<cr>";
options.desc = "Diagnostics (Trouble)";
}
{
key = "<leader>tX";
action = "<cmd>Trouble diagnostics toggle filter.buf=0<cr>";
options.desc = "Buffer Diagnostics (Trouble)";
}
{
key = "<leader>ts";
action = "<cmd>Trouble symbols toggle focus=false<cr>";
options.desc = "Symbols (Trouble)";
}
{
key = "<leader>tl";
action = "<cmd>Trouble lsp toggle focus=false win.position=right<cr>";
options.desc = "LSP Definitions / references / ... (Trouble)";
}
{
key = "<leader>tL";
action = "<cmd>Trouble loclist toggle<cr>";
options.desc = "Location List (Trouble)";
}
{
key = "<leader>tQ";
action = "<cmd>Trouble qflist toggle<cr>";
options.desc = "Quickfix List (Trouble)";
}
# Windows
{
key = "<leader>ws";
action = "<cmd>split<cr>";
options.desc = "Split";
}
{
key = "<leader>wv";
action = "<cmd>vsplit<cr>";
options.desc = "VSplit";
}
{
key = "<leader>wd";
action = "<cmd>close<cr>";
options.desc = "Close";
}
# Code
{
key = "<leader>cd";
action = "<cmd>lua vim.lsp.buf.definition()<cr>";
options.desc = "LSP Definition";
}
{
key = "<leader>cr";
action = "<cmd>lua vim.lsp.buf.references()<cr>";
options.desc = "LSP References";
}
{
key = "<leader>ct";
action = "<cmd>lua vim.lsp.buf.type_definition()<cr>";
options.desc = "LSP Type Definition";
}
{
key = "<leader>ca";
action = "<cmd>lua vim.lsp.buf.code_action()<cr>";
options.desc = "LSP Code Action";
}
{
key = "<leader>cf";
action = "<cmd>lua vim.lsp.buf.formatting()<cr>";
options.desc = "LSP Formatting";
}
{
key = "<leader>cn";
action = "<cmd>lua vim.lsp.diagnostic.goto_next()<cr>";
options.desc = "LSP Next Diagnostic";
}
{
key = "<leader>cp";
action = "<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>";
options.desc = "LSP Previous Diagnostic";
}
{
key = "<leader>cu";
action = "<cmd>lua require('dapui').toggle()<CR>";
options.desc = "Toggle Dapui";
}
{
key = "<leader>cb";
action = "<cmd>lua require('dap').toggle_breakpoint()<CR>";
options.desc = "Toggle breakpoint";
}
];
};
}

View File

@@ -1,5 +1,4 @@
{ {
programs.nixvim.globals.mapleader = " "; programs.nixvim.globals.mapleader = " ";
programs.nixvim.opts = { programs.nixvim.opts = {
updatetime = 50; # Faster completion updatetime = 50; # Faster completion
@@ -22,16 +21,18 @@
hlsearch = true; hlsearch = true;
smartcase = true; smartcase = true;
wildmode = "list:longest"; wildmode = "list:longest";
completeopt = [ "menuone" "noselect" ]; completeopt = [ "menuone" "noselect" "noinsert" ];
signcolumn = "yes"; signcolumn = "yes";
cursorline = true; cursorline = false;
scrolloff = 8; scrolloff = 8;
mouse = "a"; mouse = "a";
termguicolors = true;
showmode = false;
wrap = false; wrap = false;
swapfile = false; swapfile = false;
undofile = true; undofile = true;
conceallevel = 2; conceallevel = 3;
}; };
} }

View File

@@ -15,8 +15,12 @@
sources = [ sources = [
{ name = "nvim_lsp"; } { name = "nvim_lsp"; }
{ name = "luasnip"; } { name = "luasnip"; }
{ name = "buffer"; } {
name = "buffer";
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
}
{ name = "nvim_lua"; } { name = "nvim_lua"; }
{ name = "mkdnflow"; }
{ name = "path"; } { name = "path"; }
]; ];
@@ -80,7 +84,7 @@
completion = { completion = {
winhighlight = winhighlight =
"FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel"; "FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel";
scrollbar = true; scrollbar = false;
sidePadding = 0; sidePadding = 0;
border = [ "" "" "" "" "" "" "" "" ]; border = [ "" "" "" "" "" "" "" "" ];
}; };

View File

@@ -0,0 +1,28 @@
{ pkgs, ... }: {
programs.nixvim.plugins.dap = {
enable = true;
adapters = { };
signs = {
dapBreakpoint = {
text = "";
texthl = "DapBreakpoint";
};
dapBreakpointCondition = {
text = "";
texthl = "DapBreakpointCondition";
};
dapLogPoint = {
text = "";
texthl = "DapLogPoint";
};
};
extensions = {
dap-go = {
enable = true;
delve.path = "${pkgs.delve}/bin/dlv";
};
dap-ui = { enable = true; };
dap-virtual-text = { enable = true; };
};
};
}

View File

@@ -1,9 +1,15 @@
{ config, ... }: { { config, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}";
foreground = "#${config.lib.stylix.colors.base05}";
configDir = config.var.configDirectory;
in {
programs.nixvim.highlight = { programs.nixvim.highlight = {
AlphaHeaderColor.fg = "#${config.theme.colors.primary-bg}"; AlphaHeaderColor.fg = accent;
AlphaTextColor.fg = "#${config.theme.colors.fg}"; AlphaTextColor.fg = foreground;
AlphaShortcutColor.fg = "#${config.theme.colors.alt-fg}"; AlphaShortcutColor.fg = muted;
}; };
programs.nixvim.plugins.alpha = { programs.nixvim.plugins.alpha = {
@@ -70,7 +76,22 @@
{ {
type = "button"; type = "button";
val = " NixOs Config"; val = " NixOs Config";
on_press.__raw = "function() vim.cmd[[e ~/.config/nixos]] end"; on_press.__raw = "function() vim.cmd[[Neotree ${configDir}]] end";
opts = {
shortcut = "nc";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = " Keybindings";
on_press.__raw =
"function() vim.cmd[[e ${configDir}/docs/KEYBINDINGS.md]] end";
opts = { opts = {
shortcut = "nc"; shortcut = "nc";
position = "center"; position = "center";

View File

@@ -0,0 +1,45 @@
{
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;
marksman.enable = true;
};
keymaps.lspBuf = {
"gd" = "definition";
"gD" = "references";
"gt" = "type_definition";
"gi" = "implementation";
"K" = "hover";
};
};
none-ls = {
enable = true;
sources = {
diagnostics = {
golangci_lint.enable = true;
statix.enable = true;
};
formatting = {
gofmt.enable = true;
goimports.enable = true;
nixfmt.enable = true;
markdownlint.enable = true;
tidy.enable = true;
shellharden.enable = true;
shfmt.enable = true;
golines.enable = true;
gofumpt.enable = true;
};
};
};
};
}

View File

@@ -0,0 +1,172 @@
# The render-markdown.nvim plugin is a plugin that renders markdown files in a neovim in a more readable way.
{ config, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}";
background = "#${config.lib.stylix.colors.base00}";
in {
programs.nixvim = {
plugins.mkdnflow = {
enable = true;
modules = { conceal = false; };
toDo.symbols = [ " " "-" "x" "!" "/" ];
mappings = {
MkdnCreateLink = false;
MkdnCreateLinkFromClipboard = {
key = "<leader>ml";
modes = [ "n" "v" ];
};
MkdnDecreaseHeading = {
key = "<leader>m-";
modes = "n";
};
MkdnDestroyLink = false;
MkdnEnter = {
key = "<CR>";
modes = [ "v" ];
};
MkdnExtendList = false;
MkdnFoldSection = {
key = "<leader>mf";
modes = "n";
};
MkdnUnfoldSection = {
key = "<leader>mF";
modes = "n";
};
MkdnFollowLink = {
key = "gd";
modes = "n";
};
MkdnGoBack = false;
MkdnGoForward = false;
MkdnIncreaseHeading = {
key = "<leader>m+";
modes = "n";
};
MkdnMoveSource = false;
MkdnNewListItem = false;
MkdnNewListItemAboveInsert = {
key = "O";
modes = "n";
};
MkdnNewListItemBelowInsert = {
key = "o";
modes = "n";
};
MkdnNextHeading = {
key = "<leader>m#";
modes = "n";
};
MkdnNextLink = false;
MkdnPrevLink = false;
MkdnPrevHeading = {
key = "<leader>m*";
modes = "n";
};
MkdnSTab = false;
MkdnTab = false;
MkdnTableNewColAfter = {
key = "<leader>mc";
modes = "n";
};
MkdnTableNewColBefore = {
key = "<leader>mC";
modes = "n";
};
MkdnTableNewRowAbove = {
key = "<leader>mR";
modes = "n";
};
MkdnTableNewRowBelow = {
key = "<leader>mr";
modes = "n";
};
MkdnTableNextCell = {
key = "<S-Tab>";
modes = "n";
};
MkdnTableNextRow = false;
MkdnTablePrevCell = {
key = "<S-Tab>";
modes = "n";
};
MkdnTablePrevRow = false;
MkdnToggleToDo = {
key = "<C-Space>";
modes = [ "n" "v" ];
};
MkdnUpdateNumbering = {
key = "<leader>mn";
modes = "n";
};
MkdnYankAnchorLink = {
key = "ya";
modes = "n";
};
MkdnYankFileAnchorLink = {
key = "yfa";
modes = "n";
};
};
};
extraFiles = {
"after/ftplugin/markdown.lua".text = ''
vim.bo.tabstop = 2
vim.bo.shiftwidth = 2
vim.bo.expandtab = true
'';
};
highlight = {
RenderMarkdownBg.bg = background;
RenderMarkdownH1.fg = accent;
RenderMarkdownH2.fg = muted;
RenderMarkdownH3.fg = muted;
RenderMarkdownH4.fg = muted;
RenderMarkdownH5.fg = muted;
RenderMarkdownH6.fg = muted;
RenderMarkdownTodo.fg = muted;
RenderMarkdownWarning.fg = accent;
};
plugins.render-markdown = {
enable = true;
settings = {
heading = {
icons = [ "# " "󰲣 " "󰲥 " "󰲧 " "󰲩 " "󰲫 " ];
backgrounds = [ "RenderMarkdownBg" ];
foregrounds = [
"RenderMarkdownH1"
"RenderMarkdownH2"
"RenderMarkdownH3"
"RenderMarkdownH4"
"RenderMarkdownH5"
"RenderMarkdownH6"
];
};
checkbox = {
unchecked = { highlight = "RenderMarkdownTodo"; };
checked = { highlight = "RenderMarkdownTodo"; };
custom = {
pending = {
raw = "[-]";
rendered = "󰥔 ";
highlight = "RenderMarkdownTodo";
};
important = {
raw = "[!]";
rendered = " ";
highlight = "RenderMarkdownWarning";
};
cancel = {
raw = "[/]";
rendered = "󱋬 ";
highlight = "RenderMarkdownTodo";
};
};
};
};
};
};
}

View File

@@ -0,0 +1,31 @@
{ config, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
background = "#${config.lib.stylix.colors.base00}";
background-alt = "#${config.lib.stylix.colors.base01}";
in {
programs.nixvim = {
highlight = {
TelescopePromptPrefix.fg = accent;
TelescopeSelectionCaret = {
fg = accent;
bg = background-alt;
};
TelescopeSelection.bg = background-alt;
TelescopePromptTitle = {
bg = background;
fg = accent;
};
TelescopePromptNormal.bg = background;
TelescopePromptBorder = {
bg = background;
fg = accent;
};
};
plugins.telescope = {
enable = true;
extensions.fzf-native = { enable = true; };
settings.defaults = { selection_caret = " "; };
};
};
}

View File

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

View File

@@ -0,0 +1,54 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ ctags ];
programs.nixvim = {
plugins = {
lualine = {
enable = true;
settings = {
options.disabled_filetypes.statusline =
[ "dashboard" "alpha" "neo-tree" ];
alwaysDivideMiddle = true;
globalstatus = true;
ignoreFocus = [ "neo-tree" ];
extensions = [ "fzf" ];
theme = "auto";
componentSeparators = {
left = "|";
right = "|";
};
sectionSeparators = {
left = ""; # 
right = ""; # 
};
sections = {
lualine_a = [ "mode" ];
lualine_b = [ "branch" "diff" "diagnostics" ];
lualine_c = [ "filename" ];
lualine_x = [ "filetype" ];
lualine_y = [ "progress" ];
lualine_z = [ ''" " .. os.date("%R")'' ];
};
};
};
web-devicons.enable = true;
noice.enable = true;
notify = {
enable = true;
level = "warn";
};
gitsigns = {
enable = true;
settings.current_line_blame = false;
};
trouble.enable = true;
indent-blankline.enable = true;
nvim-colorizer.enable = true;
tagbar = {
enable = true;
tagsPackage = pkgs.universal-ctags;
};
};
};
}

View File

@@ -0,0 +1,49 @@
{ config, ... }: {
programs.nixvim = {
highlightOverride = {
FloatBorder.fg = "#${config.lib.stylix.colors.base0D}";
};
plugins = {
copilot-vim.enable = true;
flash.enable = true;
image = {
enable = true;
integrations.markdown = {
clearInInsertMode = true;
onlyRenderImageAtCursor = true;
};
};
tmux-navigator.enable = true;
comment.enable = true;
nvim-autopairs.enable = true;
friendly-snippets.enable = true;
todo-comments.enable = true;
treesitter = {
enable = true;
nixGrammars = true;
settings = {
indent.enable = true;
highlight.enable = true;
};
};
harpoon = {
enable = true;
enableTelescope = true;
keymapsSilent = true;
keymaps = {
addFile = "<leader>ha";
toggleQuickMenu = "<leader>hu";
navNext = "<leader>hl";
navPrev = "<leader>hh";
navFile = {
"1" = "<leader>h1";
"2" = "<leader>h2";
"3" = "<leader>h3";
"4" = "<leader>h4";
};
};
};
treesitter-context.enable = true;
};
};
}

View File

@@ -0,0 +1,46 @@
{
programs.nixvim.plugins = {
zen-mode = {
enable = true;
settings = {
on_close = ''
function()
require("gitsigns.actions").toggle_current_line_blame()
vim.cmd('IBLEnable')
vim.opt.signcolumn = "yes:2"
vim.wo.wrap = false
vim.wo.linebreak = false
require("gitsigns.actions").refresh()
end
'';
on_open = ''
function()
require("gitsigns.actions").toggle_current_line_blame()
vim.cmd('IBLDisable')
vim.opt.relativenumber = false
vim.opt.signcolumn = "no"
vim.wo.wrap = true
vim.wo.linebreak = true
require("gitsigns.actions").refresh()
end
'';
window = {
backdrop = 1;
height = 1;
options = {
signcolumn = "no";
number = false;
relativenumber = false;
cursorline = false;
cursorcolumn = false;
foldcolumn = "0";
list = false;
};
width = 0.8;
};
};
};
};
}

View File

@@ -1,6 +1,87 @@
{ config, ... }: { # Qutebrowser is a keyboard-focused browser with a minimal GUI.
# My homepage is generated using https://github.com/anotherhadi/homepage
{ pkgs, config, ... }:
let
imports = [ ./duckduckgo-colorscheme.nix ./homepage/default.nix ]; accent = "#${config.lib.stylix.colors.base0D}";
background = "#${config.lib.stylix.colors.base00}";
foreground = "#${config.lib.stylix.colors.base05}";
muted = "#${config.lib.stylix.colors.base03}";
settings = ''
{
"config": {
"title" : "Welcome Home",
"openLinksInNewTab": false,
"locale": "fr-FR",
"colors": {
"primary": "${accent}",
"background": "${background}",
"foreground": "${foreground}",
"muted": "#${muted}"
},
"folders": [
{
"name": "Bookmarks",
"links": [
{"title": "MyNixOs", "url": "https://mynixos.com", "icon": "󱄅"},
{"title": "Github", "url": "https://github.com", "icon": ""},
{"title": "Proton", "url": "https://mail.proton.me/u/0/inbox", "icon": ""},
{"title": "Cloudflare One", "url": "https://one.dash.cloudflare.com/", "icon": ""},
{"title": "Chat GPT", "url": "https://chat.openai.com/", "icon": "󰭹"},
{"title": "Nixvim", "url": "https://nix-community.github.io/nixvim/", "icon": ""},
{"title": "Hyprland Wiki", "url": "https://wiki.hyprland.org/", "icon": "󰖬"},
{"title": "Youtube", "url": "https://youtube.com", "icon": "󰗃"},
{"title": "Figma", "url": "https://figma.com", "icon": ""},
{"title": "Server", "url": "https://home.anotherhadi.com", "icon": ""}
]
},
{
"name": "Work",
"links": [
{"title": "Outlook", "url": "https://outlook.office.com/mail/", "icon": "󰴢"},
{"title": "Office", "url": "https://www.office.com/?auth=2", "icon": "󰏆"},
{"title": "Teams", "url": "https://teams.microsoft.com/_", "icon": "󰊻"}
]
}
]
}
}
'';
homepage = pkgs.buildNpmPackage {
pname = "homepage";
version = "0.0.0";
src = pkgs.fetchFromGitHub {
owner = "anotherhadi";
repo = "homepage";
rev = "b77d35ed3596eb451bd2ec78063d7cc6e73c773d";
hash = "sha256-j/40922kfAh6zqJ4IRYpr66YXNNYsxuXwZ0aiJFJea0=";
};
# npmDepsHash = lib.fakeHash;
npmDepsHash = "sha256-bG+CHTq2Rst3JMxsjAC81KhK+G7WwsTVD1eyP87g0z4=";
buildPhase = ''
npm install
cp ${
pkgs.writeText "src/routes/config.json" settings
} src/routes/config.json
npm run build
mkdir $out
mv build $out
'';
meta = {
description = "homepage";
homepage = "https://github.com/anotherhadi/homepage";
};
};
in {
imports = [ ./duckduckgo-colorscheme.nix ];
programs.qutebrowser = { programs.qutebrowser = {
enable = true; enable = true;
@@ -18,7 +99,9 @@
}; };
quickmarks = { quickmarks = {
home = "${config.home.homeDirectory}/.config/startpage/index.html"; home = "${homepage}/build/index.html";
server = "https://home.anotherhadi.com";
jack = "https://home.anotherhadi.com";
mynixos = "https://mynixos.com"; mynixos = "https://mynixos.com";
github = "https://github.com"; github = "https://github.com";
outlook = "https://outlook.office.com/mail/"; outlook = "https://outlook.office.com/mail/";
@@ -37,102 +120,16 @@
settings = { settings = {
url = { url = {
default_page = default_page = "${homepage}/build/index.html";
"${config.home.homeDirectory}/.config/startpage/index.html"; start_pages = [ "${homepage}/build/index.html" ];
start_pages =
[ "${config.home.homeDirectory}/.config/startpage/index.html" ];
}; };
colors = { colors = {
tabs = {
odd.bg = "#${config.theme.colors.bg}";
odd.fg = "#${config.theme.colors.fg}";
even.bg = "#${config.theme.colors.bg}";
even.fg = "#${config.theme.colors.fg}";
selected = {
odd = {
bg = "#${config.theme.colors.primary-bg}";
fg = "#${config.theme.colors.primary-fg}";
};
even = {
bg = "#${config.theme.colors.primary-bg}";
fg = "#${config.theme.colors.primary-fg}";
};
};
indicator = {
error = "#${config.theme.colors.color1}";
start = "#${config.theme.colors.alt-bg}";
stop = "#${config.theme.colors.alt-bg}";
};
};
hints = {
bg = "#${config.theme.colors.alt-bg}";
fg = "#${config.theme.colors.alt-fg}";
match.fg = "#${config.theme.colors.bg}";
};
completion = {
category = {
bg = "#${config.theme.colors.bg}";
fg = "#${config.theme.colors.fg}";
border = {
top = "#${config.theme.colors.bg}";
bottom = "#${config.theme.colors.bg}";
};
};
odd.bg = "#${config.theme.colors.bg}";
even.bg = "#${config.theme.colors.bg}";
fg = [ "#FFFFFF" "#FFFFFF" "#FFFFFF" ];
match.fg = "#${config.theme.colors.primary-bg}";
item.selected = {
bg = "#${config.theme.colors.primary-bg}";
border.top = "#${config.theme.colors.primary-bg}";
border.bottom = "#${config.theme.colors.primary-bg}";
fg = "#${config.theme.colors.primary-fg}";
match.fg = "#${config.theme.colors.primary-fg}";
};
};
statusbar = {
normal.bg = "#${config.theme.colors.bg}";
normal.fg = "#${config.theme.colors.fg}";
private.bg = "#${config.theme.colors.bg}";
private.fg = "#${config.theme.colors.fg}";
insert.bg = "#${config.theme.colors.primary-bg}";
insert.fg = "#${config.theme.colors.primary-fg}";
command = {
bg = "#${config.theme.colors.alt-bg}";
fg = "#${config.theme.colors.alt-fg}";
private.bg = "#${config.theme.colors.alt-bg}";
private.fg = "#${config.theme.colors.alt-fg}";
};
};
messages = {
info = {
bg = "#${config.theme.colors.alt-bg}";
fg = "#${config.theme.colors.alt-fg}";
border = "#${config.theme.colors.alt-bg}";
};
error = {
bg = "#${config.theme.colors.color1}";
fg = "#${config.theme.colors.alt-fg}";
border = "#${config.theme.colors.color1}";
};
};
#webpage.darkmode.enabled = true; # Enable dark mode for all websites (Weird on images)
webpage.preferred_color_scheme = webpage.preferred_color_scheme =
"dark"; # Enable dark mode for websites that support it "dark"; # Enable dark mode for websites that support it
}; };
fonts = { default_family = "${config.theme.font}"; }; statusbar.show = "in-mode";
completion = { completion = {
height = "30%"; height = "30%";
@@ -151,6 +148,7 @@
autoplay = false; autoplay = false;
javascript.clipboard = "access"; javascript.clipboard = "access";
javascript.enabled = true; javascript.enabled = true;
webgl = true;
pdfjs = true; pdfjs = true;
}; };
@@ -159,10 +157,7 @@
remove_finished = 0; remove_finished = 0;
}; };
hints = { hints = { radius = 1; };
border = "none";
radius = 1;
};
scrolling = { scrolling = {
bar = "never"; bar = "never";
@@ -183,7 +178,8 @@
keyBindings = { keyBindings = {
normal = { normal = {
"gh" = "open ${config.home.homeDirectory}/.config/startpage/index.html"; "gh" = "open ${homepage}/build/index.html";
"gs" = "open https://home.anotherhadi.com";
" p" = "tab-move -"; " p" = "tab-move -";
" n" = "tab-move +"; " n" = "tab-move +";
@@ -254,6 +250,7 @@
config.unbind("gt") config.unbind("gt")
c.tabs.padding = {"bottom": 6, "left": 7, "right": 7, "top": 6} c.tabs.padding = {"bottom": 6, "left": 7, "right": 7, "top": 6}
c.statusbar.padding = {"bottom": 6, "left": 7, "right": 7, "top": 6}
config.load_autoconfig(True) config.load_autoconfig(True)
''; '';

View File

@@ -0,0 +1,44 @@
# A duckduckgo colorscheme generated for the Stylix theme used.
{ config, ... }:
let
accent = config.lib.stylix.colors.base0D;
background = config.lib.stylix.colors.base00;
foreground = config.lib.stylix.colors.base05;
background-alt = config.lib.stylix.colors.base01;
foreground-alt = config.lib.stylix.colors.base06;
in {
home.file.".duckduckgo-colorscheme.js".text =
# js
''
// Go to DuckDuckGo settings page, open the console, paste the code and hit enter.
// based on https://ddg.codingcodax.dev/
// Cookies string for your theme
const cookie = '7=${background}; j=${background}; 9=${foreground}; aa=${foreground-alt}; 8=${foreground}; x=${accent}; 21=${background-alt};';
// Converts cookie string into formatted JSON
const cookieToJSON = (cookieRaw) => {
const cookieJson = {};
const items = cookieRaw.split(/[ ,]+/);
items.forEach((item) => {
const parts = item.split('=');
cookieJson[parts[0]] = parts[1];
});
return cookieJson;
};
// Iterates over JSON, and adds to browser cookie store
const setCookies = (cookieJson) => {
Object.keys(cookieJson).forEach((key) => {
document.cookie = `''${key}=''${cookieJson [ key ]}`;
});
};
// Call set cookies, passing in formated cookie data
setCookies(cookieToJSON(cookie));
// All done, reload page for changes to take effect :)
location.reload();
'';
}

View File

@@ -0,0 +1,4 @@
{
imports =
[ ./fzf.nix ./zsh.nix ./starship.nix ./zoxide.nix ./tmux.nix ./eza.nix ];
}

View File

@@ -0,0 +1,14 @@
# Eza is a ls replacement
{
programs.eza = {
enable = true;
icons = true;
extraOptions = [
"--group-directories-first"
"--no-quotes"
"--git-ignore"
"--icons=always"
];
};
}

View File

@@ -0,0 +1,30 @@
# Fzf is a general-purpose command-line fuzzy finder.
{ config, lib, ... }:
let
accent = "#" + config.lib.stylix.colors.base0D;
foreground = "#" + config.lib.stylix.colors.base05;
muted = "#" + config.lib.stylix.colors.base03;
in {
programs.fzf = {
enable = true;
enableZshIntegration = true;
colors = lib.mkForce {
"fg+" = accent;
"bg+" = "-1";
"fg" = foreground;
"bg" = "-1";
"prompt" = muted;
"pointer" = accent;
};
defaultOptions = [
"--margin=1"
"--layout=reverse"
"--border=rounded"
"--info='hidden'"
"--header=''"
"--prompt='/ '"
"-i"
"--no-bold"
];
};
}

View File

@@ -1,4 +1,9 @@
{ config, lib, ... }: { # starship is a minimal, fast, and extremely customizable prompt for any shell!
{ config, lib, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
background-alt = "#${config.lib.stylix.colors.base01}";
in {
programs.starship = { programs.starship = {
enable = true; enable = true;
settings = { settings = {
@@ -10,22 +15,23 @@
"$git_status" "$git_status"
"$character" "$character"
]; ];
directory = { style = "#${config.theme.colors.primary-bg}"; }; directory = { style = accent; };
character = { character = {
success_symbol = "[](#${config.theme.colors.primary-bg})"; success_symbol = "[](${accent})";
error_symbol = "[](red)"; error_symbol = "[](red)";
vimcmd_symbol = "[](cyan)"; vimcmd_symbol = "[](cyan)";
}; };
git_branch = { git_branch = {
format = "[$branch]($style)"; symbol = "[](${background-alt}) ";
style = "bright-black"; style = "fg:${accent} bg:${background-alt}";
format = "on [$symbol$branch]($style)[](${background-alt}) ";
}; };
git_status = { git_status = {
format = format =
"[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)"; "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)";
style = "cyan"; style = "cyan";
conflicted = ""; conflicted = "";
renamed = ""; renamed = "";

View File

@@ -0,0 +1,33 @@
# Tmux is a terminal multiplexer that allows you to run multiple terminal sessions in a single window.
{ pkgs, ... }: {
programs.tmux = {
enable = true;
mouse = true;
shell = "${pkgs.zsh}/bin/zsh";
prefix = "C-s";
terminal = "kitty";
keyMode = "vi";
extraConfig = ''
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R
set -gq allow-passthrough on
bind-key x kill-pane # skip "kill-pane 1? (y/n)" prompt
set -g detach-on-destroy off # don't exit from tmux when closing a session
bind-key -n C-Tab next-window
bind-key -n C-S-Tab previous-window
bind-key -n M-Tab new-window
'';
plugins = with pkgs; [
tmuxPlugins.vim-tmux-navigator
tmuxPlugins.resurrect
tmuxPlugins.sensible
tmuxPlugins.tokyo-night-tmux
];
};
}

View File

@@ -0,0 +1,7 @@
# Zoxide is a cd replacement
{
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
}

View File

@@ -0,0 +1,90 @@
# My shell configuration
{ pkgs, lib, config, ... }:
let fetch = config.var.theme.fetch; # neofetch, nerdfetch, pfetch
in {
home.packages = with pkgs; [ bat ripgrep tldr sesh ];
home.sessionPath = [ "$HOME/go/bin" ];
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
historySubstringSearch.enable = true;
initExtraFirst = ''
bindkey -e
${if fetch == "neofetch" then
pkgs.neofetch + "/bin/neofetch"
else if fetch == "nerdfetch" then
"nerdfetch"
else if fetch == "pfetch" then
"echo; ${pkgs.pfetch}/bin/pfetch"
else
""}
function sesh-sessions() {
session=$(sesh list -t -c | fzf --height 70% --reverse)
[[ -z "$session" ]] && return
sesh connect $session
}
zle -N sesh-sessions
bindkey -M emacs '\es' sesh-sessions
bindkey -M vicmd '\es' sesh-sessions
bindkey -M viins '\es' sesh-sessions
'';
history = {
ignoreDups = true;
save = 10000;
size = 10000;
};
profileExtra = lib.optionalString (config.home.sessionPath != [ ]) ''
export PATH="$PATH''${PATH:+:}${
lib.concatStringsSep ":" config.home.sessionPath
}"
'';
shellAliases = {
vim = "nvim";
vi = "nvim";
v = "nvim";
c = "clear";
clera = "clear";
celar = "clear";
e = "exit";
cd = "z";
ls = "eza --icons=always --no-quotes";
tree = "eza --icons=always --tree --no-quotes";
sl = "ls";
open = "${pkgs.xdg_utils}/bin/xdg-open";
icat = "${pkgs.kitty}/bin/kitty +kitten icat";
wireguard-import = "nmcli connection import type wireguard file";
notes =
"nvim ~/nextcloud/Notes/index.md --cmd 'cd ~/nextcloud/Notes' -c ':Telescope find_files'";
note = "notes";
# git
g = "lazygit";
ga = "git add";
gc = "git commit";
gcu = "git add . && git commit -m 'Update'";
gp = "git push";
gpl = "git pull";
gs = "git status";
gd = "git diff";
gco = "git checkout";
gcb = "git checkout -b";
gbr = "git branch";
gaa = "git add .";
gcm = "git commit -m";
};
};
}

View File

@@ -0,0 +1,36 @@
# Spicetify is a spotify client customizer
{ pkgs, config, lib, inputs, ... }:
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
accent = "${config.lib.stylix.colors.base0D}";
in {
imports = [ inputs.spicetify-nix.homeManagerModules.default ];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ "spotify" ];
stylix.targets.spicetify.enable = false;
programs.spicetify = {
enable = true;
theme = lib.mkForce spicePkgs.themes.text;
colorScheme = "custom";
customColorScheme = {
button = accent;
button-active = accent;
tab-active = accent;
};
enabledExtensions = with spicePkgs.extensions; [
playlistIcons
lastfm
historyShortcut
hidePodcasts
adblock
fullAppDisplay
shuffle
];
};
}

View File

@@ -0,0 +1,46 @@
# Thunar is a file explorer
{ pkgs, ... }: {
# ctrl + m to toggle the menubar
home.packages = with pkgs.xfce; [
thunar
xfconf
tumbler
thunar-archive-plugin
thunar-volman
];
home.file.".config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml".text = ''
<?xml version="1.0" encoding="UTF-8"?>
<channel name="thunar" version="1.0">
<property name="last-view" type="string" value="ThunarIconView"/>
<property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_100_PERCENT"/>
<property name="last-window-maximized" type="bool" value="true"/>
<property name="last-separator-position" type="int" value="170"/>
<property name="last-statusbar-visible" type="bool" value="false"/>
<property name="last-menubar-visible" type="bool" value="false"/>
<property name="misc-single-click" type="bool" value="false"/>
<property name="shortcuts-icon-emblems" type="bool" value="true"/>
<property name="tree-icon-emblems" type="bool" value="true"/>
<property name="misc-file-size-binary" type="bool" value="true"/>
<property name="misc-thumbnail-draw-frames" type="bool" value="false"/>
<property name="misc-text-beside-icons" type="bool" value="true"/>
<property name="misc-change-window-icon" type="bool" value="true"/>
<property name="hidden-bookmarks" type="array">
<value type="string" value="computer:///"/>
<value type="string" value="recent:///"/>
<value type="string" value="file:///"/>
<value type="string" value="network:///"/>
</property>
<property name="hidden-devices" type="array">
<value type="string" value="52FEA905FEA8E309"/>
</property>
<property name="last-toolbar-item-order" type="string" value="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17"/>
<property name="last-toolbar-visible-buttons" type="string" value="0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0"/>
<property name="last-location-bar" type="string" value="ThunarLocationButtons"/>
<property name="last-show-hidden" type="bool" value="false"/>
<property name="last-details-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_38_PERCENT"/>
<property name="last-details-view-column-widths" type="string" value="50,50,127,50,50,50,50,50,751,50,50,75,50,145"/>
</channel>
'';
}

View File

@@ -0,0 +1,17 @@
# Yazi is a TUI file explorer
{
programs.yazi = {
enable = true;
enableZshIntegration = true;
settings = {
log = { enabled = false; };
manager = {
show_hidden = false;
sort_by = "modified";
sort_dir_first = true;
sort_reverse = true;
};
};
};
}

View File

@@ -1,21 +1,24 @@
{ pkgs, config, ... }: # - ## Brightness
#-
#- This module provides a set of scripts to control the brightness of the screen.
#-
#- - `brightness-up` increases the brightness by 5%.
#- - `brightness-down` decreases the brightness by 5%.
#- - `brightness-set [value]` sets the brightness to the given value.
#- - `brightness-change [up|down] [value]` increases or decreases the brightness by the given value.
{ pkgs, ... }:
let let
increments = "5"; increments = "5";
brightness-change = pkgs.writeShellScriptBin "brightness-change" '' brightness-change = pkgs.writeShellScriptBin "brightness-change" ''
sleep 0.05 [[ $1 == "up" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%+
[[ $1 == "down" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%-
'';
[[ $1 == "up" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ${increments}%+ brightness-set = pkgs.writeShellScriptBin "brightness-set" ''
[[ $1 == "down" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ${increments}%- ${pkgs.brightnessctl}/bin/brightnessctl set ''${1-100}%
brightness_level=$(${pkgs.brightnessctl}/bin/brightnessctl get)
message="󰃠 Brightness: $brightness_level%"
${pkgs.libnotify}/bin/notify-send "$message" \
-h int:value:"$brightness_level" \
--replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification"
''; '';
brightness-up = pkgs.writeShellScriptBin "brightness-up" '' brightness-up = pkgs.writeShellScriptBin "brightness-up" ''
@@ -27,9 +30,11 @@ let
''; '';
in { in {
home.packages = with pkgs; [ home.packages = [
pkgs.brightnessctl
brightness-change brightness-change
brightness-up brightness-up
brightness-down brightness-down
brightness-set
]; ];
} }

View File

@@ -1,23 +1,33 @@
{ pkgs, config, ... }: # - ## Caffeine
let #-
homedir = config.home.homeDirectory; #- Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
#-
#- - `caffeine-status` - Check if hypridle is running. (0/1)
#- - `caffeine-status-icon` - Check if hypridle is running. (icon)
#- - `caffeine` - Toggle hypridle.
{ pkgs, ... }:
let
caffeine-status = pkgs.writeShellScriptBin "caffeine-status" '' caffeine-status = pkgs.writeShellScriptBin "caffeine-status" ''
[[ -f /tmp/caffeine ]] && echo "active" || echo "inactive" [[ $(pidof "hypridle") ]] && echo "0" || echo "1"
'';
caffeine-status-icon = pkgs.writeShellScriptBin "caffeine-status-icon" ''
[[ $(pidof "hypridle") ]] && echo "󰾪" || echo "󰅶"
''; '';
caffeine = pkgs.writeShellScriptBin "caffeine" '' caffeine = pkgs.writeShellScriptBin "caffeine" ''
if [[ -f /tmp/caffeine ]]; then if [[ $(pidof "hypridle") ]]; then
rm /tmp/caffeine systemctl --user stop hypridle.service
${pkgs.hyprland}/bin/hyprctl dispatch exec ${pkgs.hypridle}/bin/hypridle title="󰅶 Caffeine Activated"
message="󰾪 Caffeine Deactivated" description="Caffeine is now active! Your screen will not turn off automatically."
else else
touch /tmp/caffeine systemctl --user start hypridle.service
pkill hypridle title="󰾪 Caffeine Deactivated"
message="󰅶 Caffeine Activated" description="Caffeine is now deactivated! Your screen will turn off automatically."
fi fi
${pkgs.libnotify}/bin/notify-send "$message" \
--replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification" notif "caffeine" "$title" "$description"
''; '';
in { home.packages = with pkgs; [ caffeine-status caffeine ]; } in { home.packages = [ caffeine-status caffeine caffeine-status-icon ]; }

View File

@@ -1,17 +1,15 @@
{ {
imports = [ imports = [
./nixy ./nixy
./nerdfetch
./sounds ./sounds
./brightness ./brightness
./caffeine ./caffeine
./hyprpanel
./hyprfocus
./night-shift ./night-shift
./screenshot ./screenshot
./startup
./nerdfont_fzf ./nerdfont_fzf
./notification
./system ./system
./zip
./misc.nix
]; ];
} }

View File

@@ -0,0 +1,42 @@
# - ## Hyprfocus
#-
#- A simple script to toggle focus on few windows in Hyprland.
#- (disable gaps, border, shadow, opacity, etc.)
#-
#- - `hyprfocus-on` - Enable hyprfocus.
#- - `hyprfocus-off` - Disable hyprfocus.
#- - `hyprfocus-toggle` - Toggle hyprfocus.
{ pkgs, ... }:
let
hyprfocus-on = pkgs.writeShellScriptBin "hyprfocus-on"
# bash
''
hyprctl keyword "general:gaps_in" 0
hyprctl keyword "general:gaps_out" 0
hyprpanel-hide
hyprctl keyword "general:border_size" 1
hyprctl keyword "decoration:rounding" 0
hyprctl keyword "decoration:drop_shadow" false
hyprctl keyword "decoration:inactive_opacity" 0.98
hyprctl keyword "decoration:active_opacity" 1
echo "1" > /tmp/hyprfocus
'';
hyprfocus-off = pkgs.writeShellScriptBin "hyprfocus-off"
# bash
''
hyprctl reload
hyprpanel-show
rm /tmp/hyprfocus
'';
hyprfocus-toggle = pkgs.writeShellScriptBin "hyprfocus-toggle"
# bash
''
if [ -f /tmp/hyprfocus ]; then
hyprfocus-off
else
hyprfocus-on
fi
'';
in { home.packages = [ hyprfocus-on hyprfocus-off hyprfocus-toggle ]; }

View File

@@ -0,0 +1,46 @@
# - ## Hyprpanel
#-
#- Quick scripts to toggle, reload and kill hyprpanel.
#-
#- - `hyprpanel-toggle` - Toggle hyprpanel.
#- - `hyprpanel-reload` - Reload hyprpanel.
#- - `hyprpanel-kill` - Kill hyprpanel.
{ pkgs, ... }:
let
hyprpanel-toggle = pkgs.writeShellScriptBin "hyprpanel-toggle" ''
hyprpanel -t bar-0
hyprpanel -t bar-1
hyprpanel -t bar-2
hyprpanel -t bar-3
'';
hyprpanel-hide = pkgs.writeShellScriptBin "hyprpanel-hide" ''
status=$(hyprpanel -r "isWindowVisible('bar-0')")
if [[ $status == "true" ]]; then
hyprpanel -t bar-0
fi
status=$(hyprpanel -r "isWindowVisible('bar-1')")
if [[ $status == "true" ]]; then
hyprpanel -t bar-1
fi
'';
hyprpanel-show = pkgs.writeShellScriptBin "hyprpanel-show" ''
status=$(hyprpanel -r "isWindowVisible('bar-0')")
if [[ $status == "false" ]]; then
hyprpanel -t bar-0
fi
status=$(hyprpanel -r "isWindowVisible('bar-1')")
if [[ $status == "false" ]]; then
hyprpanel -t bar-1
fi
'';
hyprpanel-reload = pkgs.writeShellScriptBin "hyprpanel-reload" ''
[ $(pgrep "ags") ] && pkill ags
hyprctl dispatch exec hyprpanel
'';
in {
home.packages =
[ hyprpanel-toggle hyprpanel-reload hyprpanel-hide hyprpanel-show ];
}

View File

@@ -1,30 +0,0 @@
{ pkgs, config, ... }:
let
homedir = config.home.homeDirectory;
menu = pkgs.writeShellScriptBin "menu" ''
if pgrep wofi; then
pkill wofi
else
wofi --show drun
fi
'';
powermenu = pkgs.writeShellScriptBin "powermenu" ''
if pgrep wlogout; then
pkill wlogout
else
${pkgs.wlogout}/bin/wlogout
fi
'';
wireguard-import = pkgs.writeShellScriptBin "wireguard-import" ''
nmcli connection import type wireguard file "$1"
'';
vault = pkgs.writeShellScriptBin "vault" ''
nvim $HOME/Nextcloud/obsidian
'';
in { home.packages = with pkgs; [ menu wireguard-import powermenu vault ]; }

View File

@@ -1,35 +1,29 @@
# - ## Nerdfont FZF
#-
#- This module provides a script to search for Nerd Fonts icons using fzf.
#-
#- - `nerdfont-fzf` - Search for Nerd Fonts icons using fzf.
{ pkgs, config, ... }: { pkgs, config, ... }:
let let
homedir = config.home.homeDirectory;
nerdfont-fzf = pkgs.writeShellScriptBin "nerdfont-fzf" '' nerdfont-fzf = pkgs.writeShellScriptBin "nerdfont-fzf" ''
# Dependencies: jq, fzf, wl-copy, wget icons=$(${pkgs.jq}/bin/jq -r 'to_entries[] | "\(.key):\(.value.char)"' "/home/${config.var.username}/.config/nerdfont_glyphnames.json" | awk -F: '{print "\033[95m "$2" \033[0m "$1}')
icons=$(jq -r 'to_entries[] | "\(.key):\(.value.char)"' "${homedir}/.config/nerdfont_glyphnames.json" | awk -F: '{print "\033[95m "$2" \033[0m "$1}') fzf_result=$(echo "$icons" | ${pkgs.fzf}/bin/fzf --ansi --border none | awk '{print $1}')
fzf_result=$(echo "$icons" | fzf --ansi --border none | awk '{print $1}')
if [ -z "$fzf_result" ]; then if [ -z "$fzf_result" ]; then
echo "No icon selected" echo "No icon selected"
exit 1 exit 1
fi fi
echo "Copied to clipboard: $fzf_result" echo "Copied to clipboard: $fzf_result"
echo "Paste it to close the window" ${pkgs.wl-clipboard}/bin/wl-copy "$fzf_result"
${pkgs.wl-clipboard}/bin/wl-copy -o "$fzf_result" # wait for paste before exiting.. not cool
''; '';
nerdfont-fzf-fetch = pkgs.writeShellScriptBin "nerdfont-fzf-fetch" ''
wget "https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/glyphnames.json" -O "glyphnames.json" || exit 1
jq 'del(.METADATA)' "glyphnames.json"
'';
nerdfont-popup = pkgs.writeShellScriptBin "nerdfont-popup" ''
${pkgs.kitty}/bin/kitty --class floating -o font_size=18 zsh -c nerdfont-fzf 2>/dev/null
'';
in { in {
home.packages = with pkgs; [ nerdfont-fzf nerdfont-fzf-fetch nerdfont-popup ]; home.packages = [ nerdfont-fzf ];
xdg.configFile."nerdfont_glyphnames.json" = { xdg.configFile."nerdfont_glyphnames.json" = {
source = ./nerdfont_glyphnames.json; source = pkgs.fetchurl {
url =
"https://raw.githubusercontent.com/ryanoasis/nerd-fonts/384b1825ea0037b0314f7f9c660a80c1ecdb219a/glyphnames.json";
hash = "sha256-Ps0dyFcMs51RMTthBOVSOf/lafPV/53JxuNSKlmZ7cc=";
};
}; };
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,20 +1,61 @@
{ pkgs, config, ... }: # - ## Night-Shift
#-
#- Night-Shift is a feature that reduces the amount of blue light emitted by your screen, which can help reduce eye strain and improve sleep quality. This module provides a set of scripts to control Night-Shift on your system.
#-
#- - `night-shift-on` activates Night-Shift.
#- - `night-shift-off` deactivates Night-Shift.
#- - `night-shift` toggles Night-Shift.
#- - `night-shift-status` checks if Night-Shift is active. (0/1)
#- - `night-shift-status-icon` checks if Night-Shift is active. (icon)
{ pkgs, ... }:
let let
homedir = config.home.homeDirectory;
default = "4000";
night-shift-on = pkgs.writeShellScriptBin "night-shift-on" '' night-shift-on = pkgs.writeShellScriptBin "night-shift-on" ''
${pkgs.hyprland}/bin/hyprctl dispatch exec "${pkgs.wlsunset}/bin/wlsunset -t ${default}" ${pkgs.hyprshade}/bin/hyprshade on blue-light-filter
message="󰖔 Night-Shift Activated" title="󰖔 Night-Shift Activated"
${pkgs.libnotify}/bin/notify-send "$message" \ description="Night-Shift is now activated! Your screen will be warmer and easier on the eyes."
--replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification"
''; notif "night-shift" "$title" "$description"
night-shift-off = pkgs.writeShellScriptBin "night-shift-off" ''
pkill wlsunset
message="󰖔 Night-Shift Deactivated"
${pkgs.libnotify}/bin/notify-send "$message" \
--replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification"
''; '';
in { home.packages = with pkgs; [ night-shift-on night-shift-off ]; } night-shift-off = pkgs.writeShellScriptBin "night-shift-off" ''
${pkgs.hyprshade}/bin/hyprshade off
title="󰖕 Night-Shift Deactivated"
description="Night-Shift is now deactivated! Your screen will return to normal."
notif "night-shift" "$title" "$description"
'';
night-shift = pkgs.writeShellScriptBin "night-shift" ''
if [[ $(${pkgs.hyprshade}/bin/hyprshade current) ]]; then
night-shift-off
else
night-shift-on
fi
'';
night-shift-status = pkgs.writeShellScriptBin "night-shift-status" ''
if [[ $(${pkgs.hyprshade}/bin/hyprshade current) ]]; then
echo "1"
else
echo "0"
fi
'';
night-shift-status-icon =
pkgs.writeShellScriptBin "night-shift-status-icon" ''
if [[ $(hyprshade current) ]]; then
echo "󰖔"
else
echo "󰖕"
fi
'';
in {
home.packages = [
night-shift-on
night-shift-off
night-shift
night-shift-status
night-shift-status-icon
];
}

View File

@@ -1,39 +1,70 @@
{ pkgs, config, ... }: # - ## 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, upgrade, 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.
{ pkgs, config, inputs, ... }:
let let
homedir = config.home.homeDirectory;
nixy-rebuild = pkgs.writeShellScriptBin "nixy-rebuild" '' configDirectory = config.var.configDirectory;
sudo nixos-rebuild switch --flake ${homedir}/.config/nixos#nixy hostname = config.var.hostname;
'';
nixy-edit = pkgs.writeShellScriptBin "nixy-edit" '' nixy = pkgs.writeShellScriptBin "nixy"
$EDITOR ${homedir}/.config/nixos/ # bash
''; ''
function exec() {
$@
}
nixy-upgrade = pkgs.writeShellScriptBin "nixy-upgrade" '' function ui(){
sudo nixos-rebuild switch --upgrade --flake ${homedir}/.config/nixos#nixy DEFAULT_ICON="󰘳"
'';
nixy-update = pkgs.writeShellScriptBin "nixy-update" '' # "icon;name;command"[]
cd ${homedir}/.config/nixos && sudo nix flake update apps=(
''; "󰑓;Rebuild;nixy rebuild"
"󰦗;Upgrade;nixy upgrade"
"󰚰;Update;nixy update"
";Collect Garbage;nixy gc"
"󰍜;Clean Boot Menu;nixy cb"
"󰌌;Hyprland Keybindings;nvim ${configDirectory}/docs/KEYBINDINGS-HYPRLAND.md"
"󰋩;Wallpapers;nvim ${inputs.nixy-wallpapers}/docs/MOBILE-VIEW.md"
)
nixy-gc = pkgs.writeShellScriptBin "nixy-gc" '' # Apply default icons if empty:
cd ${homedir}/.config/nixos && sudo nix-collect-garbage -d for i in "''${!apps[@]}"; do
''; apps[i]=$(echo "''${apps[i]}" | sed 's/^;/'$DEFAULT_ICON';/')
done
nixy-cb = pkgs.writeShellScriptBin "nixy-cb" '' fzf_result=$(printf "%s\n" "''${apps[@]}" | awk -F ';' '{print $1" "$2}' | fzf)
sudo /run/current-system/bin/switch-to-configuration boot [[ -z $fzf_result ]] && exit 0
''; fzf_result=''${fzf_result/ /;}
line=$(printf "%s\n" "''${apps[@]}" | grep "$fzf_result")
command=$(echo "$line" | sed 's/^[^;]*;//;s/^[^;]*;//')
in { exec "$command"
home.packages = with pkgs; [ exit 0
nixy-rebuild }
nixy-edit
nixy-upgrade [[ $1 == "" ]] && ui
nixy-update
nixy-gc if [[ $1 == "rebuild" ]];then
nixy-cb sudo nixos-rebuild switch --flake ${configDirectory}#${hostname}
]; elif [[ $1 == "upgrade" ]];then
} sudo nixos-rebuild switch --upgrade --flake ${configDirectory}#${hostname}
elif [[ $1 == "update" ]];then
cd ${configDirectory} && nix flake update
elif [[ $1 == "gc" ]];then
cd ${configDirectory} && sudo nix-collect-garbage -d
elif [[ $1 == "cb" ]];then
sudo /run/current-system/bin/switch-to-configuration boot
elif [[ $1 == "remote" ]];then
cd ~/.config/nixos && git add . && git commit -m "update" && git push
ssh jack -S -C "cd /home/hadi/.config/nixos && git pull && sudo -S nixos-rebuild switch --flake ~/.config/nixos#jack"
else
echo "Unknown argument"
fi
'';
in { home.packages = [ nixy ]; }

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