397 Commits

Author SHA1 Message Date
Hadi
a056244dd8 fix package panel
Former-commit-id: 6ce19fb663
2025-04-18 14:58:38 +02:00
Hadi
d7e1dd20d9 start services on hyprland exec
Former-commit-id: 4530d9063c
2025-04-18 14:34:54 +02:00
Hadi
f1a7ba0f77 change mime
Former-commit-id: 04bf9cad16
2025-04-18 14:09:34 +02:00
Hadi
0540ee700d add apps
Former-commit-id: 9a4ddf29ac
2025-04-18 14:09:28 +02:00
Hadi
24d77739b9 UWSM Hyprland
Former-commit-id: 5bfd891d39
2025-04-18 14:09:24 +02:00
Hadi
6d4a886acb change $BROWSER var
Former-commit-id: 4cb131cd97
2025-04-18 11:57:42 +02:00
Hadi
af0c00d1d0 theme change
Former-commit-id: 3a51928e3f
2025-04-18 11:51:55 +02:00
Hadi
23c3d86c73 zen desktop file change
Former-commit-id: 27b8f8dbe1
2025-04-18 11:51:33 +02:00
Hadi
64d63b8f52 remove curline on markdown
Former-commit-id: cc0898f848
2025-04-18 11:51:20 +02:00
Hadi
6b43b76880 change my keyboard backlight depending on the battery lvl
Former-commit-id: 2cfc92bca1
2025-04-18 10:18:21 +02:00
Hadi
31e03a7fb8 Init hp-omen-linux-module to controle the keyboard backlight on omen laptop
Former-commit-id: d69b8c39e3
2025-04-18 10:18:05 +02:00
Hadi
c6d4c3f14b not working as expected
Former-commit-id: 59b8ade974
2025-04-18 09:12:22 +02:00
Hadi
9f3521a716 change backup browser
Former-commit-id: 6ea33fc39b
2025-04-17 09:37:35 +02:00
Hadi
767d687674 update flakes
Former-commit-id: c2d25d0f7d
2025-04-17 09:32:46 +02:00
Hadi
13312a62a1 edit monitors configuration, now working with my dock!!
Former-commit-id: d76e83c09c
2025-04-16 19:45:38 +02:00
Hadi
a12fe9a81a add Aerial (tags)
Former-commit-id: 44686a7b38
2025-04-16 19:45:24 +02:00
Hadi
c5e85ae57d add reset search
Former-commit-id: 05b022f664
2025-04-16 19:45:17 +02:00
Hadi
0d8bfd7749 add alias to force obsidian launch
Former-commit-id: c641bc645b
2025-04-15 18:39:37 +02:00
Hadi
d8993672c1 add portal from inputs
Former-commit-id: e442622024
2025-04-15 18:38:52 +02:00
Hadi
fedd6a72ea edit nvidia config
Former-commit-id: a30fa6288f
2025-04-15 18:38:42 +02:00
Hadi
36bd8b84e1 remove getty config
Former-commit-id: 6a6e8acff4
2025-04-15 18:38:31 +02:00
Hadi
c43ae9578b edit function
Former-commit-id: 2e36e3da64
2025-04-15 17:57:16 +02:00
Hadi
911845949e anyrun flake
Former-commit-id: 8fcb27d514
2025-04-15 17:10:26 +02:00
Hadi
76c47913ea add n4c alias
Former-commit-id: a77128b56d
2025-04-14 13:07:02 +02:00
Hadi
fe1f7245b0 remove anyrun
Former-commit-id: f49afa5f5d
2025-04-14 09:50:17 +02:00
Hadi
ceadb80791 update flake
Former-commit-id: f4829e758e
2025-04-14 09:49:40 +02:00
Hadi
cc27decf7a add nixshell to zsh & starship
Former-commit-id: 7b04553470
2025-04-11 16:32:23 +02:00
Hadi
cbd2d465e9 hide desktop navigation
Former-commit-id: 63e4cee9b0
2025-04-09 09:20:26 +02:00
Hadi
de2a311f84 test
Former-commit-id: 366b3afc37
2025-04-08 15:19:59 +02:00
Hadi
afedf85534 edit colors
Former-commit-id: 17da2378d7
2025-04-08 15:03:12 +02:00
Hadi
5af43b4194 update flake
Former-commit-id: 1d0c26f760
2025-04-05 22:20:11 +02:00
Hadi
10e01b3270 update flake
Former-commit-id: e0a837a434
2025-04-05 21:56:33 +02:00
Hadi
7c6aaf80c3 edit glance dashboard
Former-commit-id: b4878ea48a
2025-04-05 20:49:58 +02:00
Hadi
0fcc535f53 update
Former-commit-id: f86839d03e
2025-04-05 14:22:12 +02:00
Hadi
6fe18fb699 init anyrun config
Former-commit-id: 67bdbb09a3
2025-04-05 14:22:06 +02:00
Hadi
5ee6829136 update hyprpanel config
Former-commit-id: 36248551d9
2025-04-05 14:21:55 +02:00
Hadi
01c55c2428 fix search-nix-api
Former-commit-id: 0398d077e5
2025-04-05 14:04:06 +02:00
Hadi
a21e14e5e6 Merge branch 'main' of github.com:anotherhadi/nixy
Former-commit-id: bc52572df5
2025-04-04 20:32:54 +02:00
Hadi
b4ecbdb587 add nixos-search-api
Former-commit-id: b8955cc31a
2025-04-04 20:32:50 +02:00
Hadi
299f017b06 update
Former-commit-id: ee4508203b
2025-04-04 15:42:53 +02:00
Hadi
3e1c32ff6c multiple conf edit
Former-commit-id: 40f5fbc6b1
2025-04-04 15:42:46 +02:00
Hadi
7a72b4229d add tailscale conf to use exit node
Former-commit-id: f1482b5c18
2025-04-04 15:42:39 +02:00
Hadi
5a9dc62173 add priority to cache.nixos.org
Former-commit-id: c364afa343
2025-04-04 15:42:20 +02:00
Hadi
d146aa6af1 add clock
Former-commit-id: 286e47e3a9
2025-04-04 15:41:47 +02:00
Hadi
068f8722f0 zen wan't this
Former-commit-id: 4be613c256
2025-04-04 15:41:19 +02:00
Hadi
f2cf006a02 add window2rules (ty fufuxan)
Former-commit-id: 3c8a07b9c4
2025-04-04 15:41:00 +02:00
Hadi
c268e920c4 edit kitty confi (Url, copy)
Former-commit-id: aa9ce824c4
2025-04-04 15:40:37 +02:00
Hadi
e9eed8212a Merge branch 'main' of github.com:anotherhadi/nixy
Former-commit-id: 6ccbbc78f1
2025-04-03 17:40:05 +02:00
Hadi
8753ac2d0b fix meali
Former-commit-id: cd395e5987
2025-04-03 17:40:01 +02:00
Hadi
13578f0f2f init nixos search api
Former-commit-id: 0770bedfdb
2025-04-03 17:39:42 +02:00
Hadi
b8ceb39db9 fix issue
Former-commit-id: c110983dcf
2025-04-01 20:43:03 +02:00
Hadi
b22bd95f9f lsp edit config
Former-commit-id: ee38dd75dc
2025-04-01 20:42:58 +02:00
Hadi
b25ce91ca0 lsp config
Former-commit-id: 10dffe8d92
2025-04-01 20:22:27 +02:00
Hadi
dac3b34e64 new function for copying text to chatgpt
Former-commit-id: eb1f6b2e8b
2025-04-01 20:22:23 +02:00
Hadi
ae9427b508 fix temp bug
Former-commit-id: 757224a73f
2025-04-01 11:25:47 +02:00
Hadi
cd3715664f remove copilot temp
Former-commit-id: 09698790b9
2025-03-31 20:23:40 +02:00
Hadi
8136b19187 add 'git add .'
Former-commit-id: 8dc339f0cc
2025-03-31 13:46:44 +02:00
Hadi
a90a77a29d add air
Former-commit-id: 21d9ddd0fc
2025-03-31 13:46:39 +02:00
Hadi
1006680dea edit theme
Former-commit-id: f97a9f397c
2025-03-31 13:19:15 +02:00
Hadi
d0ad3c6e6e add jpeg optimisation bin
Former-commit-id: 684c11ecda
2025-03-31 13:18:56 +02:00
Hadi
2e6e17f224 remove cursor highlighter
Former-commit-id: 87eedfc74a
2025-03-31 13:18:41 +02:00
Hadi
61830ffe71 edit config
Former-commit-id: 67d14dbb44
2025-03-27 15:40:04 +01:00
Hadi
1cb855c181 hyprspace config update
Former-commit-id: 676eed1fdf
2025-03-27 15:39:33 +01:00
Hadi
c1eee689fd remove batsignal
Former-commit-id: 2d76df1b85
2025-03-27 15:39:26 +01:00
Hadi
d6c080930d nixy script update
Former-commit-id: 4fd31d6de8
2025-03-27 15:39:21 +01:00
Hadi
67b70c3e5c zen config update
Former-commit-id: d6d7bb9b9b
2025-03-27 15:39:14 +01:00
Hadi
07f7654c69 thunar new icons
Former-commit-id: dd311b1292
2025-03-27 15:39:10 +01:00
Hadi
2f5e5683e9 zsh config update
Former-commit-id: ffa3817383
2025-03-27 15:39:06 +01:00
Hadi
1f2a665ef0 edit git rebase
Former-commit-id: c96034e3ad
2025-03-27 14:59:54 +01:00
Hadi
58e16598b1 Merge branch 'main' of github.com:anotherhadi/nixy
Former-commit-id: d827e751ab
2025-03-27 14:59:46 +01:00
Hadi
16896d0b37 add awesome wallpapers
Former-commit-id: 3fbc9691b5
2025-03-27 14:57:19 +01:00
github-actions
3f2a7346c5 Update README.md (auto)
Former-commit-id: b9819c5c4d
2025-03-27 12:21:05 +00:00
Hadi
3e1255349b change wallpapers repo
Former-commit-id: 5d0625de2a
2025-03-27 13:20:37 +01:00
github-actions
7f3757e530 Update SCRIPTS.md (auto)
Former-commit-id: 59830dc9ff
2025-03-26 18:45:15 +00:00
Hadi
d39656ad66 Edit pickers
Former-commit-id: 088d50c9b3
2025-03-26 17:24:34 +01:00
Hadi
3d25e1799b Change notification opacity
Former-commit-id: f07a41a7d1
2025-03-26 17:01:59 +01:00
Hadi
c937ee3afc Change theme
Former-commit-id: 3f1421b491
2025-03-26 17:00:25 +01:00
Hadi
43b8be4931 Send exit code of the command
Former-commit-id: 6994b95d78
2025-03-26 16:59:51 +01:00
Hadi
31879f6186 Sleep if failed
Former-commit-id: 3c4c639552
2025-03-26 16:59:41 +01:00
Hadi
0c34239fab improve documentation
Former-commit-id: 0409a4db26
2025-03-26 16:01:34 +01:00
github-actions
104c816612 Update README.md (auto)
Former-commit-id: 29bebce5cd
2025-03-26 14:39:13 +00:00
Hadi
60d177ba39 Init text color on wallpaper
Former-commit-id: c0dfbe8249
2025-03-26 15:38:53 +01:00
Hadi
b6cad25714 edit readme
Former-commit-id: 0f27406bb4
2025-03-26 10:57:37 +01:00
Hadi
542f811107 fix copilot on markdown files
Former-commit-id: 2ac4321f7b
2025-03-26 10:30:04 +01:00
Hadi
4b80d21c00 Edit hardware conf
Former-commit-id: b6bd84fc3b
2025-03-25 13:32:50 +01:00
Hadi
ab80268f61 no password for rebuild
Former-commit-id: f31c271d7b
2025-03-24 15:58:45 +01:00
Hadi
30cd88a6b0 floaterm init: Quick nixy inside nvim
Former-commit-id: 5d3399ebc3
2025-03-24 15:13:58 +01:00
Hadi
28d59ed58e remove border on fzf
Former-commit-id: 96fb0bd8f0
2025-03-24 15:13:38 +01:00
Hadi
eb81d94717 change the inactive border
Former-commit-id: 58a9056c90
2025-03-24 15:13:32 +01:00
Hadi
f1c4eff2d6 let's try the one from hyprpanel
Former-commit-id: bb9a6b743c
2025-03-24 14:07:04 +01:00
Hadi
d044e3dd2e change notifications theme
Former-commit-id: a26542e0ba
2025-03-24 14:06:55 +01:00
Hadi
6851655e0a run tailscale without password
Former-commit-id: d495ce1d57
2025-03-24 13:18:55 +01:00
Hadi
c7e6aba945 add what's next
Former-commit-id: c52657df22
2025-03-24 13:18:32 +01:00
Hadi
669249bdaa default virtualHost
Former-commit-id: edeedda316
2025-03-24 13:15:37 +01:00
Hadi
31488b2534 add mealie to glance
Former-commit-id: f14fa50742
2025-03-24 13:15:30 +01:00
Hadi
638e37a4b4 mealie init
Former-commit-id: bb02792bf4
2025-03-24 13:15:10 +01:00
Hadi
422e3ffaf5 edit secrets
Former-commit-id: 2493fb0dfe
2025-03-24 13:15:02 +01:00
Hadi
8e26c50b92 good one
Former-commit-id: 9ba8a67c69
2025-03-24 10:17:51 +01:00
Hadi
0ff65b95b5 new secret
Former-commit-id: e3c711da58
2025-03-24 10:13:55 +01:00
Hadi
0f6d9c16b5 edit description
Former-commit-id: e0ddc9786e
2025-03-22 17:55:12 +01:00
Hadi
a26a80596a change font
Former-commit-id: f75dfd8456
2025-03-22 17:47:03 +01:00
Hadi
1a1b5e9d07 update mimeapps
Former-commit-id: 8c43e65000
2025-03-22 17:46:47 +01:00
Hadi
ad194bb96d Thunar bookmarks
Former-commit-id: e6244ea98d
2025-03-22 17:25:17 +01:00
Hadi
f8b20c8f20 change nixvim config
Former-commit-id: 30009bcafb
2025-03-22 13:21:33 +01:00
Hadi
6971afb3af change zen browser flake
Former-commit-id: 1bd70e403f
2025-03-22 13:21:20 +01:00
Hadi
50c3a83d84 add trusted nix caches
Former-commit-id: d438abe210
2025-03-22 13:20:42 +01:00
Hadi
33810fc79e Spotify theme update
Former-commit-id: f54e69719b
2025-03-21 21:40:35 +01:00
github-actions
cd8cbe7d65 Update README.md (auto)
Former-commit-id: 12cf7e7592
2025-03-21 20:18:45 +00:00
Hadi
e1bec5a053 update documentation
Former-commit-id: 82d8d6e1a7
2025-03-21 21:18:25 +01:00
github-actions
1a53b35a1f Update README.md (auto)
Former-commit-id: a9d9f24228
2025-03-21 20:01:56 +00:00
Hadi
968c7a922e update documentation
Former-commit-id: 9c7ca1adcb
2025-03-21 21:01:38 +01:00
Hadi
aac1a100d8 old todolist
Former-commit-id: 07d1fb6c49
2025-03-21 21:00:26 +01:00
Hadi
38c9906ada add resources dashboard
Former-commit-id: 12912aec57
2025-03-21 14:56:06 +01:00
Hadi
14744197ac Nixvim config update: +Snacks, -telescope
Former-commit-id: 9cc35a7039
2025-03-21 14:55:38 +01:00
Hadi
f374f6de9b change wofi size
Former-commit-id: ea3b343523
2025-03-21 14:55:08 +01:00
Hadi
e7ccac616d change theme
Former-commit-id: 97ee9b6033
2025-03-21 14:55:00 +01:00
Hadi
f76aee3783 edit secrets
Former-commit-id: 0e057dd54d
2025-03-20 17:50:53 +01:00
Hadi
4dd98a5554 edit secrets
Former-commit-id: 0d96b89c7e
2025-03-20 15:15:29 +01:00
Hadi
c70507cebd secrets edit
Former-commit-id: 42bb5612ab
2025-03-20 15:05:43 +01:00
Hadi
dbc55aaa6f secrets edit
Former-commit-id: 2519a9ec70
2025-03-20 14:47:44 +01:00
Hadi
62a1a19d9d Merge branch 'main' of github.com:anotherhadi/nixy
Former-commit-id: dfd985f3c0
2025-03-20 14:16:13 +01:00
Hadi
1ad395000d update
Former-commit-id: 00b406b56a
2025-03-20 14:15:56 +01:00
Hadi
e54127637e arr
Former-commit-id: a4874d18d2
2025-03-19 22:53:29 +01:00
Hadi
2fc1d31961 add recyclarr
Former-commit-id: 9a2f22a571
2025-03-19 22:07:56 +01:00
Hadi
9e53d48c68 y
Former-commit-id: 9863bdbdd0
2025-03-19 22:05:17 +01:00
Hadi
0b1f3996cf add wg conf
Former-commit-id: 82c51c85d9
2025-03-19 21:57:09 +01:00
Hadi
b2688973f1 init hoarder
Former-commit-id: 1f4205a1d1
2025-03-19 19:41:41 +01:00
Hadi
75fcb1c2be add secret for hoarder
Former-commit-id: d2b3819779
2025-03-19 19:27:22 +01:00
Hadi
c587c47b79 update modules
Former-commit-id: ae06546eb7
2025-03-19 19:25:37 +01:00
Hadi
d63ce02e5e woops
Former-commit-id: 78245dc92b
2025-03-19 18:25:38 +01:00
Hadi
2e371da2e5 add adguard
Former-commit-id: 2db05d7d2e
2025-03-19 18:18:34 +01:00
Hadi
c52a7766c2 test
Former-commit-id: 5c70995da5
2025-03-19 18:17:04 +01:00
Hadi
d9337db684 adguard + glance
Former-commit-id: bb0f6279fd
2025-03-19 18:15:42 +01:00
Hadi
e5f2161604 updates
Former-commit-id: d2d113fab5
2025-03-19 15:46:23 +01:00
Hadi
9151dc75d8 add nextcloud root password
Former-commit-id: 36ecdde469
2025-03-19 15:05:01 +01:00
Hadi
3ce26e6b88 add dns challenge token
Former-commit-id: b150bbef08
2025-03-19 14:09:35 +01:00
Hadi
84026e498e ui
Former-commit-id: 7db62269d4
2025-03-19 14:00:09 +01:00
Hadi
29ff0aa3dd add modules
Former-commit-id: d199f35824
2025-03-19 13:55:03 +01:00
Hadi
fa76704fb5 edit secrets
Former-commit-id: bfbb4b54c3
2025-03-19 10:20:51 +01:00
Hadi
5c59bfa474 testing
Former-commit-id: 8242da9bcb
2025-03-19 10:11:56 +01:00
Hadi
b5a5efde90 add secrets to configuration
Former-commit-id: 4f415df0ce
2025-03-19 09:52:39 +01:00
Hadi
7c1f56d6a3 change secrets
Former-commit-id: 9bf66b26cf
2025-03-19 09:51:46 +01:00
Hadi
b20bf2fbce add hostname
Former-commit-id: 151a4ee7a0
2025-03-19 09:35:06 +01:00
Hadi
dbcddb6115 add hardware-config
Former-commit-id: cd5c015c7a
2025-03-19 09:27:46 +01:00
Hadi
56ef64700f add tailscale
Former-commit-id: 40de9b5f5b
2025-03-18 23:45:39 +01:00
Hadi
458fe29a91 update
Former-commit-id: dbcc0a096a
2025-03-18 23:36:54 +01:00
Hadi
8785a2bd04 add jack flake
Former-commit-id: bb2cc5adf6
2025-03-18 23:11:20 +01:00
Hadi
16c9d54a30 init server modules
Former-commit-id: 98cf8e99b0
2025-03-18 23:09:42 +01:00
Hadi
e26b4d0285 flake update
Former-commit-id: 05c46a39c0
2025-03-18 22:23:55 +01:00
Hadi
95d3326857 change blur size
Former-commit-id: 58654d5cbd
2025-03-18 21:53:35 +01:00
Hadi
c5175cdaeb change theme
Former-commit-id: 4df9852b7e
2025-03-18 21:53:01 +01:00
Hadi
bb084f66e9 add env var
Former-commit-id: 9fe06a0cfb
2025-03-18 21:52:43 +01:00
Hadi
0960892340 grub theme
Former-commit-id: 73bca2fbfb
2025-03-18 21:52:39 +01:00
Hadi
34ef6d39f9 go back to systemd-boot
Former-commit-id: 5a8bdffc2a
2025-03-18 21:52:32 +01:00
Hadi
444340c880 I'm trying things
Former-commit-id: f24415e320
2025-03-18 21:52:12 +01:00
Hadi
acbc487772 add render-markdown to cmp
Former-commit-id: 7c54507f0f
2025-03-18 21:52:03 +01:00
Hadi
305c11dc6d switch to grub
Former-commit-id: 57fa8d152a
2025-03-13 17:03:05 +01:00
Hadi
8a7a76297a add grub config
Former-commit-id: 2183824c34
2025-03-13 17:02:58 +01:00
Hadi
f9c5e63136 attempt to hide tty getty login
Former-commit-id: 545c66ebc3
2025-03-13 13:52:54 +01:00
Hadi
1b70d8c5cf darker color for hyprlock
Former-commit-id: 967879b3f4
2025-03-13 13:39:33 +01:00
Hadi
9f5a1ca09e change background image
Former-commit-id: 1da1d91787
2025-03-13 13:05:46 +01:00
Hadi
1612dca680 change to sddm
Former-commit-id: c89304c621
2025-03-13 13:05:40 +01:00
Hadi
f78389127a handled by stylix now
Former-commit-id: 93ce3e73c0
2025-03-13 13:05:26 +01:00
Hadi
52c2187734 change colors
Former-commit-id: 3ed69ab1a5
2025-03-11 13:42:00 +01:00
Hadi
d1fadd9059 hyprland config update
Former-commit-id: 0d442f1702
2025-03-11 09:48:33 +01:00
Hadi
2ccd7409ca remove protonmail desktop
Former-commit-id: aa95347035
2025-03-11 09:48:21 +01:00
Hadi
9e35e81a69 add reverseSync cap
Former-commit-id: 3ec054d661
2025-03-11 09:48:14 +01:00
Hadi
8a596d9d86 update flakes
Former-commit-id: 92ae9a2f41
2025-03-11 09:46:32 +01:00
Hadi
d8e807633c remove old gtk theme
Former-commit-id: 483d0efa60
2025-03-06 09:49:20 +01:00
Hadi
81ca5204bb add avatar to panel
Former-commit-id: 9f3fd551b9
2025-03-05 16:57:56 +01:00
Hadi
ca54d98acf add env var & cache
Former-commit-id: 1675e96793
2025-03-05 16:52:40 +01:00
Hadi
62b2ff0090 hardwareclock confi
Former-commit-id: 2146ce8360
2025-03-05 14:19:00 +01:00
Hadi
ee976873ce add close wofi when loose focus
Former-commit-id: 87c6166bf7
2025-03-05 13:28:01 +01:00
Hadi
411b951332 change hardware-configuration
Former-commit-id: 2ec4583391
2025-03-05 11:53:51 +01:00
Hadi
71ec7d1390 remove the hyprspace shortcut
Former-commit-id: 093a6397b9
2025-03-04 21:42:49 +01:00
Hadi
3571c9da85 change theme name
Former-commit-id: ed4d27a4ac
2025-03-04 21:32:46 +01:00
Hadi
dee8dcddf8 add todo-comments
Former-commit-id: ff97615cae
2025-03-04 21:32:39 +01:00
Hadi
85fa2c5f11 disable lsp notifications
Former-commit-id: f3aaa759ce
2025-03-04 21:32:33 +01:00
github-actions
d3881d19af Update README.md (auto)
Former-commit-id: 615596085a
2025-03-04 19:58:56 +00:00
Hadi
d16d6906b8 doc update
Former-commit-id: 936e8b0ffd
2025-03-04 20:58:35 +01:00
Hadi
449ad7997e flake update
Former-commit-id: b90821adff
2025-03-04 20:58:29 +01:00
Hadi
4d80db7ccb refactor variables & theme
Former-commit-id: 276756d998
2025-03-04 20:58:20 +01:00
Hadi
b314c9648f remove tofi
Former-commit-id: c9aada8203
2025-03-04 20:57:58 +01:00
Hadi
77ff7edce5 hyprpolkitagent from flake to pkgs
Former-commit-id: b1eb468327
2025-03-04 20:57:53 +01:00
Hadi
5ee186ca15 remove superfile
Former-commit-id: 9bec8574e6
2025-03-04 20:57:42 +01:00
Hadi
92c34e0c28 remove nvf
Former-commit-id: 5851e00adf
2025-03-04 20:57:37 +01:00
Hadi
a38304d73b add nixcord
Former-commit-id: 41dacd47a5
2025-03-04 20:57:33 +01:00
Hadi
5fd0da5327 add superfile input
Former-commit-id: f86fd5bf02
2025-03-04 14:37:41 +01:00
Hadi
9ae7a67a40 change yoru theme
Former-commit-id: b8ef571b50
2025-03-02 15:04:16 +01:00
Hadi
48cb6d9065 disable mini.animate (bug with scroll wheel)
Former-commit-id: e6dfa4bd52
2025-03-02 13:04:51 +01:00
Hadi
62bc08a436 Nvim config update
Former-commit-id: b801f55276
2025-03-01 02:58:48 +01:00
Hadi
e0e933132b add nvf
Former-commit-id: be161771f4
2025-03-01 02:28:21 +01:00
Hadi
eba2fc481e update todo
Former-commit-id: 631525c978
2025-03-01 02:27:31 +01:00
Hadi
15fa1daa8f update flake
Former-commit-id: a7f8c6cd84
2025-03-01 02:27:10 +01:00
Hadi
de6a1f4529 init nvf
Former-commit-id: 027b2dcd24
2025-03-01 02:27:02 +01:00
Hadi
04e34161b1 edit theme
Former-commit-id: 7ffef6d2cf
2025-03-01 02:25:51 +01:00
Hadi
575e2d246b edit xdg portals
Former-commit-id: 14d8e50100
2025-02-23 11:48:03 +01:00
Hadi
88ee45885b add hyprland qutils
Former-commit-id: 8026cb5e88
2025-02-23 11:47:56 +01:00
Hadi
b48a197157 edit hyprland conf
Former-commit-id: e9af1dac68
2025-02-23 11:47:46 +01:00
Hadi
59c2ee28e1 add cursor trail animations
Former-commit-id: 4b32eaa91e
2025-02-23 11:47:31 +01:00
Hadi
4c32612a43 update flake
Former-commit-id: 61d4f0c4bf
2025-02-21 20:14:36 +01:00
Hadi
72e2184e0b change wallpaper
Former-commit-id: 226752d763
2025-02-21 20:12:56 +01:00
Hadi
a221b2d5c1 edit
Former-commit-id: d616d5e4fe
2025-02-21 16:29:25 +01:00
Hadi
de60ad7c84 change blur, opacity & background
Former-commit-id: bd8a936a1d
2025-02-21 16:25:04 +01:00
Hadi
30293a616b change the way workflow works
Former-commit-id: de125e21a7
2025-02-21 15:55:13 +01:00
Hadi
16c76c92b3 change to kofi
Former-commit-id: 58bae6e2c0
2025-02-21 15:54:02 +01:00
Hadi
d22a30be53 change process name
Former-commit-id: 074dc5864b
2025-02-21 15:49:49 +01:00
Hadi
92e165396d woops mb
Former-commit-id: 9312ef84a2
2025-02-21 15:49:17 +01:00
Hadi
b0899442ab only show cava when media is playing
Former-commit-id: a4bd708f24
2025-02-21 15:44:04 +01:00
Hadi
991b456713 add cava to hyprpanel
Former-commit-id: 3383fe5af7
2025-02-21 15:42:50 +01:00
Hadi
53dc030c22 special workspace for ProtonMail
Former-commit-id: d64e096e8c
2025-02-21 15:29:03 +01:00
Hadi
afd27f2a92 Fix alpha-nvim keybindings
Former-commit-id: 4eb6d59909
2025-02-21 14:07:44 +01:00
Hadi
6a5c430830 Create FUNDING.yml
Former-commit-id: 56b4a77d1f
2025-02-19 18:01:04 +01:00
Hadi
f04821fffe Planify in fullscreen by default
Former-commit-id: e63b86345b
2025-02-19 17:56:38 +01:00
github-actions
eeeaf1a7c4 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: 0f6f40ab23
2025-02-19 16:47:15 +00:00
Hadi
2c42201b15 Add key binding for Planify
Former-commit-id: b5147a52ba
2025-02-19 17:46:56 +01:00
Hadi
e3e7714f4c open planify in special workspace
Former-commit-id: ef189b3b62
2025-02-19 16:54:55 +01:00
Hadi
28ff9b7e6a update flake
Former-commit-id: 813dca5d40
2025-02-19 14:55:11 +01:00
Hadi
c92d1ac1ad increase opacity for inactive windows
Former-commit-id: bac6ec2f82
2025-02-19 14:55:08 +01:00
Hadi
3d214c7c2d Make no sense in offload mode ?
Former-commit-id: a0ffe24e7d
2025-02-19 14:54:55 +01:00
Hadi
bfd689beab let's try proton mail desktop
Former-commit-id: 052fd7cada
2025-02-19 14:54:41 +01:00
Hadi
8879e0c222 screenshot now save & copy
Former-commit-id: 0eca13a163
2025-02-19 10:44:18 +01:00
Hadi
794932ee3b cleaner solution
Former-commit-id: a91c0e37c0
2025-02-19 10:44:05 +01:00
Hadi
d5e56f4092 disable the hyprpanel shadow
Former-commit-id: 480e2bf2da
2025-02-19 10:43:53 +01:00
Hadi
ad0cc491f8 reenable hyprspace & static workspace for some apps
Former-commit-id: fa3d207375
2025-02-19 10:43:40 +01:00
Hadi
a90dfeac07 batsignal now locks on very low battery
Former-commit-id: 3b200caed9
2025-02-19 10:43:08 +01:00
Hadi
61ae19567a wallpaper change for yoru theme
Former-commit-id: 19a48aee14
2025-02-19 10:42:58 +01:00
Hadi
2ffa0a3abf update todo
Former-commit-id: d56f39275c
2025-02-18 23:40:07 +01:00
Hadi
651de22342 change apps
Former-commit-id: 7aa07cde8e
2025-02-11 20:59:24 +01:00
Hadi
3d5516e20c Merge branch 'main' of github.com:anotherhadi/nixy
Former-commit-id: 4e438e9f78
2025-02-11 20:58:45 +01:00
Hadi
2270fe77b6 update flakes
Former-commit-id: ca73bf3af3
2025-02-11 20:58:40 +01:00
Hadi
6514624612 remove resurrect
Former-commit-id: af79d8031d
2025-02-11 20:58:30 +01:00
github-actions
4d4db27d49 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: c5f99341d5
2025-02-04 19:42:52 +00:00
Hadi
9ff48eb543 update flake
Former-commit-id: 1f4be60931
2025-02-04 20:42:09 +01:00
Hadi
519de26e6a edit
Former-commit-id: 43f27ff383
2025-02-04 20:41:21 +01:00
Hadi
e1915e1741 change bindings
Former-commit-id: 2433d287f8
2025-02-04 20:41:13 +01:00
Hadi
de177e0003 screenshot to clipboard
Former-commit-id: e4f6f611d6
2025-02-04 20:41:10 +01:00
Hadi
c054d85b1c markdown writting
Former-commit-id: 6f1bcbf4dc
2025-02-04 20:40:54 +01:00
Hadi
47e9b45cfa update flakes
Former-commit-id: 0e5fbb9ea5
2025-01-27 09:53:06 +01:00
Hadi
f1f8d50c2e add mimes for zen
Former-commit-id: 7906679e9a
2025-01-27 08:36:23 +01:00
Hadi
e514c9ca09 change homepage path
Former-commit-id: d694a57ae6
2025-01-27 08:36:12 +01:00
Hadi
336574206c edit nextcloud notes path
Former-commit-id: 2ebed4ab9c
2025-01-27 08:35:50 +01:00
Hadi
dcd302bf5b update flakes
Former-commit-id: 406889a019
2025-01-23 17:49:40 +01:00
Hadi
5aad861057 update my nvim config
Former-commit-id: cd54511aa0
2025-01-23 17:36:26 +01:00
Hadi
1098005af6 delete old modules
Former-commit-id: 5cc7a65ea1
2025-01-23 17:36:13 +01:00
github-actions
223b91e075 Update SCRIPTS.md (auto)
Former-commit-id: 726bb896dd
2025-01-22 19:16:05 +00:00
Hadi
ee80453e77 update flakes
Former-commit-id: 57f9723b87
2025-01-22 20:15:49 +01:00
Hadi
a49bc73bbd disable hyprspace, broken
Former-commit-id: d8a45d947b
2025-01-22 20:15:45 +01:00
Hadi
818dfda0e3 temp fix for nvidia drivers
Former-commit-id: b26a7b9dd0
2025-01-22 20:15:38 +01:00
Hadi
33f62390c5 remove desktop & pia
Former-commit-id: fd8f7de9b1
2025-01-22 19:41:19 +01:00
Hadi
fe143348a4 edit theme
Former-commit-id: 44a8ac06ec
2025-01-22 19:41:09 +01:00
Hadi
937c0a70d9 app test
Former-commit-id: 722efcf03a
2025-01-22 19:41:03 +01:00
Hadi
11c88abded delete desktop
Former-commit-id: a030370542
2025-01-22 19:40:41 +01:00
Hadi
9c43f16027 open vpn scripts
Former-commit-id: f83370b4fa
2025-01-22 19:40:23 +01:00
github-actions
ffc3b1baed Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: dbe30d164e
2025-01-21 19:55:49 +00:00
Hadi
73c349918f remove systemd.enable
Former-commit-id: 8c92529ef2
2025-01-21 20:55:36 +01:00
Hadi
662009000d add keybind to toggle the bar
Former-commit-id: 141f6d8fc1
2025-01-21 20:55:27 +01:00
Hadi
d4ffdae2f4 open webpage to display wallpapers
Former-commit-id: 2fb93eaff5
2025-01-21 20:55:17 +01:00
Hadi
1a69437e3f fix hyprpanel toggleWindow call
Former-commit-id: 943ea80ac2
2025-01-21 20:54:47 +01:00
Hadi
a2210756c5 fix
Former-commit-id: 4d63588ddc
2025-01-21 20:54:37 +01:00
Hadi
76dabd905e copilot nvim broken on unstable
Former-commit-id: 2962bd8503
2025-01-21 20:54:28 +01:00
Hadi
3c1be077b9 add duckduckgo colorscheme
Former-commit-id: ed605769b0
2025-01-21 20:54:16 +01:00
Hadi
5aef2f7d40 update flake
Former-commit-id: c828520da1
2025-01-21 20:54:03 +01:00
Hadi
7342a52609 update theme
Former-commit-id: 5fab44846d
2025-01-21 20:53:59 +01:00
Hadi
8f1949c3fb flake update
Former-commit-id: f10612b1d1
2025-01-12 20:00:10 +01:00
Hadi
09352dbcbc fix hyprpanel hide & show
Former-commit-id: 3a34579f35
2025-01-07 21:34:54 +01:00
Hadi
b32cc2ade5 flake update
Former-commit-id: 05aa21e311
2025-01-07 21:34:46 +01:00
Hadi
eb457f8069 edit theme
Former-commit-id: 5b4670d6e2
2025-01-07 20:23:59 +01:00
Hadi
bba6f699bd config edit
Former-commit-id: 972490513f
2025-01-07 20:22:54 +01:00
Hadi
532b2e4e0a change theme & update flake
Former-commit-id: 868c3b4e4f
2025-01-07 00:27:57 +01:00
Hadi
21beb27859 update flake & fix nixpkgs error
Former-commit-id: 8f3645996a
2025-01-06 23:35:06 +01:00
Hadi
029655cb72 enable the hyprpanel overlay
Former-commit-id: b1702060f2
2025-01-06 20:58:55 +01:00
Hadi
ec8f733408 treesitter ensure installed
Former-commit-id: d158c6160f
2025-01-06 20:58:41 +01:00
Hadi
47449eb534 migrate config to hyprpanel v2
Former-commit-id: d7dbea9437
2025-01-02 19:42:41 +01:00
Hadi
8d585f941d new theme!
Former-commit-id: ada0a0761c
2025-01-02 19:42:26 +01:00
Hadi
35e8d0a6a6 flakes update
Former-commit-id: 3941e15c5c
2025-01-02 19:01:55 +01:00
Hadi
5662804337 update flake
Former-commit-id: f6f203f848
2025-01-02 18:31:06 +01:00
Hadi
523a3819d1 add a configuration limit in boot menu
Former-commit-id: ce32ac84fa
2025-01-02 18:31:02 +01:00
Hadi
4532330c0c enable auto gc
Former-commit-id: 70baebf547
2025-01-02 18:30:54 +01:00
Hadi
0362bbec14 update flakes
Former-commit-id: 87cf8f6bfa
2024-12-30 20:41:31 +01:00
Hadi
fcdd2dc92c remove GTK theming
Former-commit-id: 8ceabe0a8a
2024-12-30 20:41:27 +01:00
Hadi
e7b81f510c hyprpanel v2 migration
Former-commit-id: d4db565e46
2024-12-30 20:41:20 +01:00
Hadi
c3517e5f56 removed some imports
Former-commit-id: 4551530344
2024-12-30 20:41:12 +01:00
Hadi
9af2f9f691 toolbar-items
Former-commit-id: a957fe856c
2024-12-30 20:40:38 +01:00
Hadi
9ca1a031b5 Merge pull request #11 from hcw9iu/fix-btop-gpu
Former-commit-id: 50b01f235d
2024-12-22 23:47:53 +01:00
william1209
640f815782 fix btop not show gpu
Former-commit-id: 2a50a895ef
2024-12-23 02:38:42 +08:00
Hadi
5885d6e400 update flakes
Former-commit-id: b6014cc3a1
2024-12-20 21:49:52 +01:00
Hadi
897dcfb7e3 update flakes
Former-commit-id: dbfc4887f0
2024-12-17 13:55:08 +01:00
Hadi
17589f5697 update flake
Former-commit-id: 277bafd297
2024-12-16 15:47:02 +01:00
Hadi
914f8bfa7e update flake
Former-commit-id: d1a14bb22c
2024-12-15 22:01:15 +01:00
Hadi
65f98fd3ec update flakes
Former-commit-id: 0d1ff6074f
2024-12-12 21:38:50 +01:00
Hadi
f65f5a28e8 Add typescript LSP
Former-commit-id: 1577960c51
2024-12-12 21:37:18 +01:00
Hadi
c9ca8c21f3 Fixed!!
Former-commit-id: 46bf6c9cb3
2024-12-12 21:37:05 +01:00
Hadi
b0e4113b3b update flakes
Former-commit-id: 65acc4d2da
2024-12-09 10:08:01 +01:00
Hadi
2a200b0e75 new theme!
Former-commit-id: 89db4101fd
2024-12-06 17:02:23 +01:00
Hadi
f1b6044ed1 update flakes
Former-commit-id: dbe720e366
2024-12-06 16:49:51 +01:00
Hadi
8891834ae1 remove old temp packages
Former-commit-id: 275178807d
2024-12-06 16:34:02 +01:00
Hadi
4356ad0e2f add desktop to .sops.yaml
Former-commit-id: e928fcf59a
2024-12-05 23:16:46 +01:00
Hadi
3cbf606230 add secrets
Former-commit-id: b94c673084
2024-12-05 23:04:30 +01:00
Hadi
fb75ecc61d add desktop host
Former-commit-id: e3e5be7b73
2024-12-05 23:03:57 +01:00
Hadi
792970dc7f Change zen input
Former-commit-id: c79a153478
2024-12-05 22:22:01 +01:00
Hadi
30220aba6c Merge pull request #9 from underscoregeb/patch-1
new zen url

Former-commit-id: 88c1d7f6e0
2024-12-05 19:23:36 +01:00
geb
6f0e14a560 new zen url
Former-commit-id: ad8a0ccf53
2024-12-05 08:54:14 -06:00
Hadi
fb297a1016 wallpaper change
Former-commit-id: 30bd93f973
2024-12-04 17:24:13 +01:00
Hadi
ea3baad219 flake update
Former-commit-id: a16a9acd49
2024-12-04 17:24:09 +01:00
Hadi
f12c527cdc Update flake
Former-commit-id: b3b191831f
2024-12-04 09:19:18 +01:00
github-actions
f16312b953 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: 8309831a6e
2024-12-03 21:46:55 +00:00
Hadi
de8abc2c4f change cursor
Former-commit-id: 4107af5343
2024-12-03 22:46:42 +01:00
Hadi
3308c7424a change browser binding
Former-commit-id: 4a42049faf
2024-12-03 22:46:38 +01:00
Hadi
12ca3743a1 update
Former-commit-id: b8920ade11
2024-12-03 20:08:04 +01:00
Hadi
fc7fbfe0ee oops
Former-commit-id: c8c8738bfd
2024-12-03 20:07:49 +01:00
Hadi
916a9ed923 Switch from Firefox to Zen, ...
Former-commit-id: 7add142ab1
2024-12-03 19:36:15 +01:00
Hadi
bd98e149f9 update flake
Former-commit-id: 52213697ea
2024-11-29 22:03:36 +01:00
Hadi
a66048b432 fix nixd encoding
Former-commit-id: ea3d436c6e
2024-11-25 10:24:53 +01:00
Hadi
d8d8d7e990 put bindings to hyprspace file
Former-commit-id: b991c66c2e
2024-11-25 10:01:58 +01:00
Hadi
8c5ce4880e move hyprspace to file
Former-commit-id: de8de47de4
2024-11-25 09:59:45 +01:00
Hadi
14ef376f03 Firefox homepage
Former-commit-id: cb041ad452
2024-11-25 09:34:08 +01:00
Hadi
ff5a75f687 Firefox config
Former-commit-id: c8aff9ee96
2024-11-25 09:33:56 +01:00
Hadi
bbfd3a5de2 update flakes
Former-commit-id: a6cc144770
2024-11-19 18:16:55 +01:00
Hadi
a980904382 try transparentBackground config
Former-commit-id: fd4535f566
2024-11-17 19:53:03 +01:00
Hadi
25d6f672a4 switch to firefox
Former-commit-id: 8a692431e4
2024-11-17 19:52:52 +01:00
Hadi
1922a9550b doesn't build on unstable
Former-commit-id: 69c0605202
2024-11-17 19:52:22 +01:00
Hadi
79b3cec6fb add backupFileExtension in HM
Former-commit-id: 887668d962
2024-11-17 19:52:10 +01:00
Hadi
e9f8555d37 update flakes
Former-commit-id: d7a03d4a80
2024-11-17 19:51:53 +01:00
Hadi
0875217932 fix colors for the workspace modules
Former-commit-id: 619b0d3724
2024-11-16 12:06:44 +01:00
Hadi
7dc0964759 update flakes & fix
Former-commit-id: 9f1b464ce4
2024-11-16 11:57:00 +01:00
Hadi
d7553fbce8 Fix ssh kitty
Former-commit-id: 8b6f98d153
2024-11-14 20:53:26 +01:00
Hadi
458e61b19c update flakes
Former-commit-id: 65a9e23d90
2024-11-08 14:19:32 +01:00
Hadi
d20693de9a change theme
Former-commit-id: 48c334cb5e
2024-11-08 14:19:25 +01:00
Hadi
ea770a10ec regroup calls
Former-commit-id: 3b45228e47
2024-11-08 14:19:14 +01:00
Hadi
970aa3133b new theme
Former-commit-id: d2aa568fff
2024-11-08 14:18:55 +01:00
Hadi
fe323511a4 Hyprland breaking changes. (Stylix fix, waiting for upstream)
Former-commit-id: f4f9f889ed
2024-11-08 13:32:25 +01:00
Hadi
ea806f21d4 update flakes
Former-commit-id: 61a4d11ca4
2024-11-08 11:37:33 +01:00
Hadi
a6a6cc3c09 update flakes
Former-commit-id: a43e3e36cf
2024-11-05 15:39:17 +01:00
Hadi
c334ff2851 private internet access (vpn)
Former-commit-id: 53efbb88d6
2024-11-05 15:39:11 +01:00
Hadi
40c8ca00db update todos
Former-commit-id: 67f96bde02
2024-11-05 11:36:03 +01:00
Hadi
a25c5fd551 Add colored output for git
Former-commit-id: d721e1bc1c
2024-11-05 11:07:21 +01:00
github-actions
b6d0f00b34 Update SCRIPTS.md (auto)
Former-commit-id: 868cf5d3b3
2024-11-05 10:01:56 +00:00
Hadi
c020deea69 update docs
Former-commit-id: b6f9d2b570
2024-11-05 11:01:41 +01:00
Hadi
01e6c36348 hyprshade -> hyprsunset
Former-commit-id: 8d5eefced0
2024-11-05 10:59:34 +01:00
Hadi
1c9454a1cd broken on unstable
Former-commit-id: f343ef25d2
2024-11-05 10:59:01 +01:00
Hadi
0b65935549 update flakes
Former-commit-id: f2b11b84a2
2024-11-05 10:58:49 +01:00
Hadi
b48b9d1ef2 rename underscore
Former-commit-id: c0cdd3fcde
2024-11-05 10:47:07 +01:00
Hadi
c52a218305 update github actions
Former-commit-id: b0bb2016bc
2024-11-05 10:46:24 +01:00
Hadi
b5638ad2c8 rename underscore
Former-commit-id: 63d38846d8
2024-11-05 10:42:32 +01:00
Hadi
ca94ff3e9b update flake
Former-commit-id: 9fc781c7da
2024-11-01 20:01:30 +01:00
Hadi
a306013288 add nh informations
Former-commit-id: 999b3abda5
2024-10-29 11:19:37 +01:00
Hadi
90a73be013 init nh
Former-commit-id: 9ffeb42e14
2024-10-29 11:17:40 +01:00
Hadi
4aa1b4eb50 switch to nh
Former-commit-id: 1ae412cf5b
2024-10-29 11:12:35 +01:00
Hadi
c2c92cf19c update todos
Former-commit-id: 46b7f8d1b7
2024-10-29 10:44:49 +01:00
Hadi
d767f47422 update flake
Former-commit-id: 2551b8c9ec
2024-10-29 09:23:55 +01:00
Hadi
442a0ad2b8 init docker
Former-commit-id: 4657ca3d75
2024-10-28 12:56:55 +01:00
Hadi
8b4fae6767 disable channels
Former-commit-id: 863253bc74
2024-10-25 18:10:08 +02:00
Hadi
886e10612b update flake
Former-commit-id: 34e71c0efd
2024-10-25 18:10:01 +02:00
Hadi
5734351eca Init hyprsunset
Former-commit-id: 9a41310dd7
2024-10-23 20:21:49 +02:00
Hadi
c52894ecf0 update todos
Former-commit-id: be5b996255
2024-10-23 20:21:33 +02:00
Hadi
72dd09aca1 fix mistake
Former-commit-id: 0c169156bb
2024-10-23 20:20:26 +02:00
Hadi
4bd0343a63 Init hyprpolkitagent
Former-commit-id: 965ef9e76e
2024-10-23 20:15:46 +02:00
Hadi
961bb66e39 add nix path to nixd config
Former-commit-id: d7831f4115
2024-10-23 20:00:11 +02:00
Hadi
3e2f341bdb add nixpkgs path
Former-commit-id: a74e365403
2024-10-23 19:59:57 +02:00
Hadi
e0dcde257a update flake
Former-commit-id: f38ee3051c
2024-10-22 20:34:24 +02:00
github-actions
e2ce1c442c Update README.md (auto)
Former-commit-id: a1fcbd51d8
2024-10-21 15:08:56 +00:00
Hadi
d3a25298d8 update readme theme section
Former-commit-id: 4e69c6702f
2024-10-21 17:08:34 +02:00
Hadi
b4edee45c2 add the theme variables inside the theme dir
Former-commit-id: ba911dc627
2024-10-21 17:06:15 +02:00
Hadi
c830e627b0 add just to dev packages
Former-commit-id: c36755f90e
2024-10-21 16:54:39 +02:00
Hadi
fcec5fff43 add position option for hyprpanel
Former-commit-id: 1ac07c3ace
2024-10-21 13:16:27 +02:00
Hadi
8a81c97ef3 Merge branch 'main' of github.com:anotherhadi/nixy
Former-commit-id: 7af05cf3b3
2024-10-21 13:04:00 +02:00
Hadi
6d46bb179c update todos
Former-commit-id: b1a5af1257
2024-10-21 13:03:51 +02:00
github-actions
a38eb82a2d Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: 893260f073
2024-10-20 18:38:06 +00:00
Hadi
2c01fd4182 tofi rules & dbus activation
Former-commit-id: f42dc43810
2024-10-20 20:37:53 +02:00
Hadi
ad01749b10 playerctl shortcuts
Former-commit-id: bb06cc673a
2024-10-20 20:37:10 +02:00
Hadi
201e9141a9 launch drun through tofi
Former-commit-id: d4761c8c51
2024-10-20 20:36:54 +02:00
Hadi
dfbabf721d Add gpu & disable ghost monitors
Former-commit-id: 6744550bf6
2024-10-17 20:29:08 +02:00
Hadi
24553acae4 add hints for changeme comments
Former-commit-id: b8b9d16f8c
2024-10-16 18:56:56 +02:00
Hadi
ace16b05dd remove kde connect
Former-commit-id: 4c5963dcaa
2024-10-16 18:56:41 +02:00
Hadi
9222b90b24 add aliases for git reset
Former-commit-id: 968ca31d18
2024-10-16 16:19:20 +02:00
Hadi
ac7da3935e update todos
Former-commit-id: c283b9cb9c
2024-10-16 16:17:55 +02:00
Hadi
c08d1bd231 sort by lines
Former-commit-id: 339349661a
2024-10-16 16:16:49 +02:00
github-actions
9635c7c8d5 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: c904a81267
2024-10-15 23:59:19 +00:00
Hadi
51c00c532f init quickmenu
Former-commit-id: c9663e1da6
2024-10-16 01:59:04 +02:00
Hadi
e386a42a43 update todos
Former-commit-id: 37c6ba8d1b
2024-10-16 01:29:47 +02:00
Hadi
26f5c4d041 disable autoDrag (overview)
Former-commit-id: 6f052316e9
2024-10-16 01:29:36 +02:00
github-actions
c3c4d5a027 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: 01a5992be0
2024-10-15 23:22:27 +00:00
Hadi
c416c53ec3 Init Hyprspace (overview)
Former-commit-id: e0e09df208
2024-10-16 01:22:12 +02:00
Hadi
51c1e94c15 fix prompts
Former-commit-id: 0d50980a8d
2024-10-16 00:43:59 +02:00
Hadi
12657964c0 add tofi commandw
Former-commit-id: fdec6ed81c
2024-10-16 00:40:40 +02:00
Hadi
b4a41673ed change markdown title highlight
Former-commit-id: f878719b3d
2024-10-15 21:20:43 +02:00
Hadi
a0c9d2570d disable treesitter context
Former-commit-id: 491e29a8fc
2024-10-15 20:15:22 +02:00
Hadi
abca34497f buttons background color fix if transparent bar
Former-commit-id: e513c2cb44
2024-10-15 19:53:20 +02:00
Hadi
3a66e81390 nixy loop prompt fix
Former-commit-id: f36410f05f
2024-10-15 19:53:08 +02:00
Hadi
9c8ff97621 init nixy loop
Former-commit-id: 51c64ace97
2024-10-15 17:42:52 +02:00
Hadi
fd3b272e31 Delete .sops.yaml
Former-commit-id: a88496af4f
2024-10-15 17:37:01 +02:00
Hadi
b14941d499 remove .sops.yaml from github
Former-commit-id: 3c72f875ed
2024-10-15 17:36:37 +02:00
Hadi
b503ef1dec remove .sops.yaml from github
Former-commit-id: 159e4aad23
2024-10-15 17:36:01 +02:00
Hadi
f600f4903f tmux shortcuts for config
Former-commit-id: 3dee75c5d5
2024-10-15 17:30:47 +02:00
Hadi
023bf6d570 update flake
Former-commit-id: e5c39e4f2c
2024-10-15 16:54:19 +02:00
Hadi
3e23890e43 update github actions
Former-commit-id: 05fb0f494a
2024-10-15 15:08:08 +02:00
128 changed files with 3717 additions and 2017 deletions

15
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: anotherhadi
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

View File

@@ -23,18 +23,14 @@
</div> </div>
<br> <br>
**Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place. **Nixy simplifies and unifies** the Hyprland ecosystem with a modular, easily customizable setup. It provides a structured way to manage your system configuration and dotfiles with minimal effort.
It's a simple way to manage your system configuration and dotfiles. It includes *home-manager*, *secrets*, and *custom theming* all in one place.
I'm Hadi, a french developer, student in infosec, enthusiastic about nix, golang & blockchains. **Features:**
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:** - 💻 Hyprland-centric: Preconfigured Hyprland ecosystem (Hyprlock, Hyprpanel, etc.)
- 🎨 Consistent Theming: Base16 & Stylix-powered themes
- Hypr-ecosystem first (hyprland, hyprlock, hyprpanel, hypridle, ...) - ⌨️ Vim-like Everywhere: Unified keybindings (Hyprland, nvim, vimium, etc.)
- Stylix/base16 themes
- Vim-like keybindings everywhere (hyprland, qutebrowser, nvim, ...)
## Table of Content ## Table of Content
@@ -49,9 +45,9 @@ I enable vim-like keybindings everywhere I can, and I use a lot of custom script
## Architecture ## Architecture
### 🏠 home ### 🏠 /home (User-level configuration)
Those are the dotfiles and configuration files for user-level configuration Contains **dotfiles and settings** that apply to your user environment.
**Subfolders:** **Subfolders:**
@@ -59,36 +55,44 @@ Those are the dotfiles and configuration files for user-level configuration
- `scripts` is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md)) - `scripts` is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
- `system` is some "desktop environment" configuration - `system` is some "desktop environment" configuration
### 🐧 nixos ### 🐧 /nixos
Those are the system-level configurations. (audio, bluetooth, gpu, bootloader, ...) Those are the system-level configurations. (audio, bluetooth, gpu, bootloader, ...)
### 🎨 themes ### 🎨 /themes
Those are the themes used in the system configuration. This folder contains all system themes. Mainly [stylix](https://stylix.danth.me/) configurations.
Those themes are based on [stylix](https://github.com/danth/stylix). Check out the available themes and learn how to create your own in [THEMES.md](docs/THEMES.md)
See avaiable themes in [THEMES.md](docs/THEMES.md)
### 💻 hosts ### 💻 /hosts
Those are the host-specific configurations. This directory contains 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. Each host includes:
- `configuration.nix` for system-wide settings
- `home.nix` for user-level configuration
- `variables.nix` for global variables
- `secrets/` for sensitive data
## Installation ## Installation
1. Clone the repo 1. [Fork](https://github.com/anotherhadi/nixy/fork) this repo and clone it to your system:
```sh ```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos 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 2. Copy the `hosts/laptop` folder, rename it to match your systems hostname, and update `variables.nix` with your machines settings.
3. Add your `hardware-configuration.nix` to your new host's folder 3. Copy your `hardware-configuration.nix` into your new host's folder to ensure proper hardware support.
4. Add your 'nixosConfigurations' inside `flake.nix` 4. Register your new host in `flake.nix` by adding it under nixosConfigurations.
> [!Important] > [!Important]
> I added few `# CHANGEME` comments in the files to help you find what to change. Be sure to check them up. > `# CHANGEME` comments are placed throughout the config to indicate necessary modifications.
> You can use `rg "CHANGEME"` to find them all with ripgrep. > Use the following command to quickly locate them:
>
> ```sh
> rg "CHANGEME" ~/.config/nixos
> ```
> [!TIP] > [!TIP]
> When you add new files, don't forget to run `git add .` to add them to the git repository > When you add new files, don't forget to run `git add .` to add them to the git repository
@@ -101,11 +105,11 @@ sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
## Documentation ## Documentation
- [SERVER](docs/SERVER.md): Check out the server documentation
- [THEMES](docs/THEMES.md): How themes work and how to create your own - [THEMES](docs/THEMES.md): How themes work and how to create your own
- [SCRIPTS](docs/SCRIPTS.md): Scripts that are available - [SCRIPTS](docs/SCRIPTS.md): A list of available scripts and their usage
- [KEYBINDINGS-HYPRLAND](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland - [KEYBINDINGS-HYPRLAND](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland
- [WALLPAPERS](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy. - [WALLPAPERS](https://github.com/anotherhadi/awesome-wallpapers): An awesome collection of wallpapers
- [TODO](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute - [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License - [LICENSE](LICENSE): MIT License

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

0
.github/scripts/create_scripts_docs.sh vendored Normal file → Executable file
View File

View File

@@ -16,9 +16,9 @@ jobs:
- name: Run a script - name: Run a script
run: | run: |
chmod +x ./.github/scripts/keybindings_to_markdown.sh chmod +x ./.github/scripts/keybindings_to_markdown.sh
./docs/.github/keybindings_to_markdown.sh ./.github/scripts/keybindings_to_markdown.sh
git config user.name github-actions git config user.name github-actions
git config user.email github-actions@github.com git config user.email github-actions@github.com
git add . git add .
git commit -m "Update KEYBINDINGS-HYPRLAND.md (auto)" git commit -m "Update KEYBINDINGS-HYPRLAND.md (auto)" && git push
git push exit 0

View File

@@ -27,5 +27,5 @@ jobs:
git config user.name github-actions git config user.name github-actions
git config user.email github-actions@github.com git config user.email github-actions@github.com
git add . git add .
git commit -m "Update README.md (auto)" git commit -m "Update README.md (auto)" && git push
git push exit 0

View File

@@ -1,7 +1,7 @@
on: on:
push: push:
paths: paths:
- 'home/scripts' - 'home/scripts/**'
permissions: permissions:
contents: write contents: write
jobs: jobs:
@@ -20,5 +20,5 @@ jobs:
git config user.name github-actions git config user.name github-actions
git config user.email github-actions@github.com git config user.email github-actions@github.com
git add . git add .
git commit -m "Update SCRIPTS.md (auto)" git commit -m "Update SCRIPTS.md (auto)" && git push
git push exit 0

2
.gitignore vendored
View File

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

View File

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

View File

@@ -24,28 +24,24 @@
</div> </div>
<br> <br>
**Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place. **Nixy simplifies and unifies** the Hyprland ecosystem with a modular, easily customizable setup. It provides a structured way to manage your system configuration and dotfiles with minimal effort.
It's a simple way to manage your system configuration and dotfiles. It includes *home-manager*, *secrets*, and *custom theming* all in one place.
I'm Hadi, a french developer, student in infosec, enthusiastic about nix, golang & blockchains. **Features:**
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:** - 💻 Hyprland-centric: Preconfigured Hyprland ecosystem (Hyprlock, Hyprpanel, etc.)
- 🎨 Consistent Theming: Base16 & Stylix-powered themes
- Hypr-ecosystem first (hyprland, hyprlock, hyprpanel, hypridle, ...) - ⌨️ Vim-like Everywhere: Unified keybindings (Hyprland, nvim, vimium, etc.)
- Stylix/base16 themes
- Vim-like keybindings everywhere (hyprland, qutebrowser, nvim, ...)
## Table of Content ## Table of Content
- [Table of Content](#table-of-content) - [Table of Content](#table-of-content)
- [Gallery](#gallery) - [Gallery](#gallery)
- [Architecture](#architecture) - [Architecture](#architecture)
- [🏠 home](#-home) - [🏠 /home (User-level configuration)](#-home-user-level-configuration)
- [🐧 nixos](#-nixos) - [🐧 /nixos](#-nixos)
- [🎨 themes](#-themes) - [🎨 /themes](#-themes)
- [💻 hosts](#-hosts) - [💻 /hosts](#-hosts)
- [Installation](#installation) - [Installation](#installation)
- [Documentation](#documentation) - [Documentation](#documentation)
@@ -58,9 +54,9 @@ I enable vim-like keybindings everywhere I can, and I use a lot of custom script
## Architecture ## Architecture
### 🏠 home ### 🏠 /home (User-level configuration)
Those are the dotfiles and configuration files for user-level configuration Contains **dotfiles and settings** that apply to your user environment.
**Subfolders:** **Subfolders:**
@@ -68,36 +64,44 @@ Those are the dotfiles and configuration files for user-level configuration
- `scripts` is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md)) - `scripts` is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
- `system` is some "desktop environment" configuration - `system` is some "desktop environment" configuration
### 🐧 nixos ### 🐧 /nixos
Those are the system-level configurations. (audio, bluetooth, gpu, bootloader, ...) Those are the system-level configurations. (audio, bluetooth, gpu, bootloader, ...)
### 🎨 themes ### 🎨 /themes
Those are the themes used in the system configuration. This folder contains all system themes. Mainly [stylix](https://stylix.danth.me/) configurations.
Those themes are based on [stylix](https://github.com/danth/stylix). Check out the available themes and learn how to create your own in [THEMES.md](docs/THEMES.md)
See avaiable themes in [THEMES.md](docs/THEMES.md)
### 💻 hosts ### 💻 /hosts
Those are the host-specific configurations. This directory contains 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. Each host includes:
- `configuration.nix` for system-wide settings
- `home.nix` for user-level configuration
- `variables.nix` for global variables
- `secrets/` for sensitive data
## Installation ## Installation
1. Clone the repo 1. [Fork](https://github.com/anotherhadi/nixy/fork) this repo and clone it to your system:
```sh ```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos 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 2. Copy the `hosts/laptop` folder, rename it to match your systems hostname, and update `variables.nix` with your machines settings.
3. Add your `hardware-configuration.nix` to your new host's folder 3. Copy your `hardware-configuration.nix` into your new host's folder to ensure proper hardware support.
4. Add your 'nixosConfigurations' inside `flake.nix` 4. Register your new host in `flake.nix` by adding it under nixosConfigurations.
> [!Important] > [!Important]
> I added few `# CHANGEME` comments in the files to help you find what to change. Be sure to check them up. > `# CHANGEME` comments are placed throughout the config to indicate necessary modifications.
> You can use `rg "CHANGEME"` to find them all with ripgrep. > Use the following command to quickly locate them:
>
> ```sh
> rg "CHANGEME" ~/.config/nixos
> ```
> [!TIP] > [!TIP]
> When you add new files, don't forget to run `git add .` to add them to the git repository > When you add new files, don't forget to run `git add .` to add them to the git repository
@@ -110,11 +114,11 @@ sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
## Documentation ## Documentation
- [SERVER](docs/SERVER.md): Check out the server documentation
- [THEMES](docs/THEMES.md): How themes work and how to create your own - [THEMES](docs/THEMES.md): How themes work and how to create your own
- [SCRIPTS](docs/SCRIPTS.md): Scripts that are available - [SCRIPTS](docs/SCRIPTS.md): A list of available scripts and their usage
- [KEYBINDINGS-HYPRLAND](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland - [KEYBINDINGS-HYPRLAND](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland
- [WALLPAPERS](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy. - [WALLPAPERS](https://github.com/anotherhadi/awesome-wallpapers): An awesome collection of wallpapers
- [TODO](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute - [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License - [LICENSE](LICENSE): MIT License

View File

@@ -1,16 +1,16 @@
# Contributing to Nixy # 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! Everybody is invited and welcome to contribute to Nixy. There is a lot to do... Check the issues!
The process is straight-forward. 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) - 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). - Fork Nixy [git repository](https://github.com/anotherhadi/nixy).
- Write your changes (new theme, bug fixes, task in to-do, ...). - Write your changes (new theme, bug fixes, issues fix, ...).
- Create a Pull Request against the main branch of Nixy. - Create a Pull Request against the main branch of Nixy.
> [!TIP] > [!TIP]
> To update the README, change the `./docs/src/README_template.md` and run `./docs/scripts/create_readme.sh` > To update the README, change the `./.github/assets/README_template.md`
> [!IMPORTANT] > [!IMPORTANT]
> Don't push your host's folder > Don't push your host's folder

View File

@@ -10,12 +10,14 @@
| Move app to Workspace | SHIFT + SUPER + {Number} | | Move app to Workspace | SHIFT + SUPER + {Number} |
| Kitty | SUPER + RETURN | | Kitty | SUPER + RETURN |
| Thunar | SUPER + E | | Thunar | SUPER + E |
| Qutebrowser | SUPER + B | | Zen Browser | SUPER + B |
| Bitwarden | SUPER + K | | Bitwarden | SUPER + K |
| Lock | SUPER + L | | Lock | SUPER + L |
| Powermenu | SUPER + X | | Powermenu | SUPER + X |
| Launcher | SUPER + SPACE | | Launcher | SUPER + SPACE |
| Quickmenu | SUPER + C |
| Toggle HyprFocus | SHIFT + SUPER + SPACE | | Toggle HyprFocus | SHIFT + SUPER + SPACE |
| Planify | SUPER + P |
| Close window | SUPER + Q | | Close window | SUPER + Q |
| Toggle Floating | SUPER + T | | Toggle Floating | SUPER + T |
| Toggle Fullscreen | SUPER + F | | Toggle Fullscreen | SUPER + F |
@@ -27,11 +29,11 @@
| Focus next monitor | SHIFT + SUPER + down | | Focus next monitor | SHIFT + SUPER + down |
| Add to master | SHIFT + SUPER + left | | Add to master | SHIFT + SUPER + left |
| Remove from master | SHIFT + SUPER + right | | Remove from master | SHIFT + SUPER + right |
| Screenshot window | SUPER + PRINT | | Screenshot region | SUPER + PRINT |
| Screenshot monitor | PRINT | | Screenshot monitor | PRINT |
| Screenshot region | SHIFT + SUPER + PRINT | | Screenshot window | SHIFT + SUPER + PRINT |
| Screenshot region then edit | ALTPRINT | | Screenshot region then edit | ALTPRINT |
| Search on internet with wofi | SHIFT + SUPER + S | | Toggle hyprpanel | SHIFT + SUPER + T |
| Clipboard picker with wofi | SHIFT + SUPER + C | | Clipboard picker with wofi | SHIFT + SUPER + C |
| Emoji picker with wofi | SHIFT + SUPER + E | | Emoji picker with wofi | SHIFT + SUPER + E |
| Toggle night shift | SUPER + F2 | | Toggle night shift | SUPER + F2 |
@@ -39,6 +41,9 @@
| Move Window (mouse) | SUPER + mouse:272 | | Move Window (mouse) | SUPER + mouse:272 |
| Resize Window (mouse) | SUPER + R | | Resize Window (mouse) | SUPER + R |
| Toggle Mute | XF86AudioMute | | Toggle Mute | XF86AudioMute |
| Play/Pause Song | XF86AudioPlay |
| Next Song | XF86AudioNext |
| Previous Song | XF86AudioPrev |
| Lock when closing Lid | switch:Lid Switch | | Lock when closing Lid | switch:Lid Switch |
| Sound Up | XF86AudioRaiseVolume | | Sound Up | XF86AudioRaiseVolume |
| Sound Down | XF86AudioLowerVolume | | Sound Down | XF86AudioLowerVolume |

View File

@@ -31,11 +31,12 @@ A simple script to toggle focus on few windows in Hyprland.
## Hyprpanel ## Hyprpanel
Quick scripts to toggle, reload and kill hyprpanel. Quick scripts to toggle, reload, hide & show hyprpanel.
- `hyprpanel-toggle` - Toggle hyprpanel. - `hyprpanel-toggle` - Toggle hyprpanel (hide/show).
- `hyprpanel-show` - Show hyprpanel.
- `hyprpanel-hide` - Hide hyprpanel.
- `hyprpanel-reload` - Reload hyprpanel. - `hyprpanel-reload` - Reload hyprpanel.
- `hyprpanel-kill` - Kill hyprpanel.
## Nerdfont FZF ## Nerdfont FZF
@@ -46,6 +47,7 @@ This module provides a script to search for Nerd Fonts icons using fzf.
## Night-Shift ## 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 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.
It use hyprsunset to control the screen temperature.
- `night-shift-on` activates Night-Shift. - `night-shift-on` activates Night-Shift.
- `night-shift-off` deactivates Night-Shift. - `night-shift-off` deactivates Night-Shift.
@@ -63,9 +65,17 @@ Nixy is a simple script that I use to manage my NixOS system. It's a simple scri
## OpenVPN
OpenVPN allows you to connect/disconnect quickly to a openVPN server
- `openvpn-up` turn on the vpn
- `openvpn-down` turn down the vpn
- `openvpn-toggle` toggle the vpn
## Screenshot ## Screenshot
This module provides a script to take screenshots using `hyprshot` and `swappy`. This module provides a script to take screenshots using `grimblast` 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. - `screenshot [region|window|monitor] [swappy]` - Take a screenshot of the region, window, or monitor. Optionally, use `swappy` to copy the screenshot to the clipboard.
@@ -82,7 +92,8 @@ This module provides a set of scripts to control the volume of the default audio
Usefull quick scripts Usefull quick scripts
- `menu` - Open wofi with drun mode. - `menu` - Open wofi with drun mode. (wofi)
- `powermenu` - Open power dropdown menu. - `powermenu` - Open power dropdown menu. (wofi)
- `lock` - Lock the screen. - `quickmenu` - Open a dropdown menu with shortcuts and scripts. (wofi)
- `lock` - Lock the screen. (hyprlock)

62
docs/SERVER.md Normal file
View File

@@ -0,0 +1,62 @@
# SERVER
## Overview
This document describes the architecture and setup of the self-hosted **NixOS server**, which is securely accessible via **Tailscale**. The server is designed for private, secure, and easily manageable self-hosting of various services.
![server dashboard](../.github/assets/server_dashboard.png)
## **Why This Setup?**
- **Private & Secure**: Services are only accessible through Tailscale, preventing exposure to the public internet.
- **Domain-based Access**: A custom domain (`example.org`) maps to the server's Tailscale IP, making service access simple and consistent.
- **Automatic SSL Certificates**: Using DNS-01 challenges, valid SSL certificates are generated even though the services are not publicly exposed.
- **Modular & Declarative**: Everything is managed through NixOS modules, ensuring reproducibility and easy configuration.
## **Self-Hosted Services**
The server hosts several key applications:
### **Core Infrastructure**
- **NGINX**: Reverse proxy for routing traffic to services via `example.org`.
- **Bitwarden**: A self-hosted password manager for secure credential storage.
- **Nextcloud**: A private cloud solution for file synchronization and collaboration.
### **Networking & Security**
- **AdGuard Home**: A self-hosted DNS ad blocker for network-wide ad and tracker filtering.
### **Monitoring & Storage**
- **Glance**: An awesome dashboard! (See the screenshot above)
- **Hoarder**: A self-hostable bookmark-everything app (links, notes and images)
### **Media & Content Management**
- **Arr Stack (Radarr, Sonarr, etc.)**: Automated media management tools for handling movies and TV shows. (legaly ofc)
## **How It Works**
1. **Domain Configuration**
- `example.org` is pointed to the Tailscale IP of the server. (cloudflare A record, not proxied)
- This allows for easy access without exposing services to the internet.
2. **SSL Certificate Generation**
- Certificates are obtained using a **DNS-01 challenge**, verifying domain ownership without requiring public access.
3. **NGINX Reverse Proxy**
- Routes incoming requests from `*.example.org` to the correct internal service.
- Ensures SSL termination and secure connections.
4. **Access Control**
- Only devices within the Tailscale network can reach the services.
- Firewall rules restrict access further based on necessity.
## What's Next?
I want to self-host:
- **A great todolist app**: One that is compatible with markdown & IOS
- **Cyberchef**
- **Maybe**: An app to manage finances

View File

@@ -1,7 +1,7 @@
# Themes # Themes
Themes are defined in `themes`. Those themes define the colors, fonts, icons, etc, used by Hyprland and the apps/programs installed. Themes are defined in `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. You can change the selected theme by changing the import statement of your host's variables.nix file.
> [!TIP] > [!TIP]
> To apply the theme to DuckDuckGo, follow the instructions in `$HOME/.duckduckgo-colorscheme.js` > To apply the theme to DuckDuckGo, follow the instructions in `$HOME/.duckduckgo-colorscheme.js`

View File

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

1014
flake.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,43 +1,46 @@
{ {
# https://github.com/anotherhadi/nixy # https://github.com/anotherhadi/nixy
description = '' description = ''
Nixy is a NixOS configuration with home-manager, secrets and custom theming all in one place. Nixy simplifies and unifies the Hyprland ecosystem with a modular, easily customizable setup.
It's a simple way to manage your system configuration and dotfiles. It provides a structured way to manage your system configuration and dotfiles with minimal effort.
''; '';
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
stylix.url = "github:danth/stylix";
apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
zen-browser.url = "github:0xc000022070/zen-browser-flake";
nixcord.url = "github:kaylorben/nixcord";
sops-nix.url = "github:Mic92/sops-nix";
nixarr.url = "github:rasmus-kirk/nixarr";
anyrun.url = "github:fufexan/anyrun/launch-prefix";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url =
"github:nix-community/nixvim/d81f37256d0a8691b837b74979d27bf89be8ecdd";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
spicetify-nix = { spicetify-nix = {
url = "github:Gerg-L/spicetify-nix"; url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
sops-nix = { hyprspace = {
url = "github:Mic92/sops-nix"; url = "github:KZDKM/Hyprspace";
inputs.nixpkgs.follows = "nixpkgs"; inputs.hyprland.follows = "hyprland";
}; };
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; search-nixos-api.url = "github:anotherhadi/search-nixos-api";
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, ... }: { outputs = inputs@{ nixpkgs, ... }: {
nixosConfigurations = { nixosConfigurations = {
nixy = # CHANGEME nixy =
# CHANGEME: This should match the 'hostname' in your variables.nix file
nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
@@ -45,10 +48,23 @@
nixpkgs.overlays = [ inputs.hyprpanel.overlay ]; nixpkgs.overlays = [ inputs.hyprpanel.overlay ];
_module.args = { inherit inputs; }; _module.args = { inherit inputs; };
} }
inputs.nixos-hardware.nixosModules.omen-16-n0005ne # CHANGEME inputs.nixos-hardware.nixosModules.omen-16-n0005ne # CHANGEME: check https://github.com/NixOS/nixos-hardware
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hosts/laptop/configuration.nix # CHANGEME ./hosts/laptop/configuration.nix # CHANGEME: change the path to match your host folder
];
};
# Jack is my server
jack = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
{ _module.args = { inherit inputs; }; }
inputs.home-manager.nixosModules.home-manager
inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops
inputs.nixarr.nixosModules.default
inputs.search-nixos-api.nixosModules.search-nixos-api
./hosts/server/configuration.nix
]; ];
}; };
}; };

View File

@@ -0,0 +1,87 @@
{ pkgs, inputs, ... }: {
programs.anyrun = {
enable = true;
config = {
plugins = with inputs.anyrun.packages.${pkgs.system}; [
applications
shell
randr
rink
symbols
translate
];
width.fraction = 0.25;
y.fraction = 0.3;
hidePluginInfo = true;
closeOnClick = true;
};
extraCss = ''
* {
all: unset;
font-size: 1.2rem;
}
#window,
#match,
#entry,
#plugin,
#main {
background: transparent;
}
#match.activatable {
border-radius: 8px;
margin: 4px 0;
padding: 4px;
/* transition: 100ms ease-out; */
}
#match.activatable:first-child {
margin-top: 12px;
}
#match.activatable:last-child {
margin-bottom: 0;
}
#match:hover {
background: rgba(255, 255, 255, 0.05);
}
#match:selected {
background: rgba(255, 255, 255, 0.1);
}
#entry {
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 8px;
padding: 4px 8px;
}
box#main {
background: rgba(0, 0, 0, 0.5);
box-shadow:
inset 0 0 0 1px rgba(255, 255, 255, 0.1),
0 30px 30px 15px rgba(0, 0, 0, 0.5);
border-radius: 20px;
padding: 12px;
}
'';
extraConfigFiles = {
"applications.ron".text = ''
Config(
desktop_actions: false,
max_entries: 5,
terminal: Some("foot"),
)
'';
"shell.ron".text = ''
Config(
prefix: ">"
)
'';
};
};
}

View File

@@ -0,0 +1,9 @@
# Discord is a popular chat application.
{ inputs, ... }: {
imports = [ inputs.nixcord.homeManagerModules.nixcord ];
programs.nixcord = {
enable = true;
config = { frameless = true; };
};
}

View File

@@ -1,3 +1,4 @@
# Legacy
{ pkgs, ... }: { { pkgs, ... }: {
home.packages = with pkgs; [ neofetch ]; home.packages = with pkgs; [ neofetch ];

View File

@@ -1,3 +1,5 @@
# Nerdfetch, a simple system info script written in bash
# Source: https://github.com/ThatOneCalculator/NerdFetch
{ pkgs, ... }: { pkgs, ... }:
let let
nerdfetch = pkgs.writeShellScriptBin "nerdfetch" '' nerdfetch = pkgs.writeShellScriptBin "nerdfetch" ''

View File

@@ -1,3 +1,4 @@
# Git configuration
{ config, ... }: { config, ... }:
let let
username = config.var.git.username; username = config.var.git.username;
@@ -21,7 +22,9 @@ in {
]; ];
extraConfig = { extraConfig = {
init.defaultBranch = "main"; init.defaultBranch = "main";
pull.rebase = "false";
push.autoSetupRemote = true; push.autoSetupRemote = true;
color.ui = "1";
}; };
aliases = { aliases = {
essa = "push --force"; essa = "push --force";

View File

@@ -1,3 +1,4 @@
# Kitty is a fast, featureful, GPU based terminal emulator
{ {
programs.kitty = { programs.kitty = {
enable = true; enable = true;
@@ -20,9 +21,13 @@
remember_window_size = "no"; remember_window_size = "no";
disable_ligatures = "never"; disable_ligatures = "never";
url_style = "curly"; url_style = "curly";
copy_on_select = "clipboard";
cursor_shape = "Underline"; cursor_shape = "Underline";
cursor_underline_thickness = 3; cursor_underline_thickness = 3;
cursor_trail = 3;
cursor_trail_decay = "0.1 0.4";
window_padding_width = 10; window_padding_width = 10;
open_url_with = "default";
}; };
}; };
} }

View File

@@ -1,3 +1,4 @@
# Lazygit is a simple terminal UI for git commands.
{ config, lib, ... }: { config, lib, ... }:
let let
accent = "#${config.lib.stylix.colors.base0D}"; accent = "#${config.lib.stylix.colors.base0D}";

View File

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

View File

@@ -0,0 +1,46 @@
{
programs.nixvim = {
autoGroups = {
highlightyank.clear = true;
q_close_windows.clear = true;
};
autoCmd = [
# highlightyank
# https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_autocmds.lua#L206-L211
{
desc = "Highlight yanked text";
event = "TextYankPost";
group = "highlightyank";
pattern = "*";
callback.__raw = ''
function()
vim.highlight.on_yank()
end
'';
}
# q_close_windows
# https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_autocmds.lua#L242-L255
{
desc = "Make q close help, man, quickfix, dap floats";
event = "BufWinEnter";
group = "q_close_windows";
callback.__raw = ''
function(event)
if vim.tbl_contains({ "help", "nofile", "quickfix" }, vim.bo[event.buf].buftype) then
vim.keymap.set("n", "q", "<Cmd>close<CR>", {
desc = "Close window",
buffer = event.buf,
silent = true,
nowait = true,
})
end
end
'';
}
];
};
}

View File

@@ -3,18 +3,19 @@
imports = [ imports = [
inputs.nixvim.homeManagerModules.nixvim inputs.nixvim.homeManagerModules.nixvim
./plugins/cmp.nix ./plugins/cmp.nix
./plugins/dashboard.nix ./plugins/floaterm.nix
./plugins/git.nix
./plugins/lsp.nix ./plugins/lsp.nix
./plugins/markdown.nix ./plugins/markdown.nix
./plugins/tree.nix ./plugins/mini.nix
./plugins/ui.nix ./plugins/picker.nix
./plugins/snacks.nix
./plugins/trouble.nix
./plugins/utils.nix ./plugins/utils.nix
./plugins/dap.nix
./plugins/telescope.nix
./plugins/zenmode.nix
./options.nix ./options.nix
./keymaps.nix ./keymaps.nix
./autocmds.nix
]; ];
programs.nixvim.enable = true; programs.nixvim.enable = true;

View File

@@ -12,31 +12,6 @@
}; };
spec = [ spec = [
# General Mappings # 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"; __unkeyed-1 = "<leader>u";
mode = "n"; mode = "n";
@@ -48,9 +23,9 @@
group = "+windows"; group = "+windows";
} }
{ {
__unkeyed-1 = "<leader>h"; __unkeyed-1 = "<leader>c";
mode = "n"; mode = "n";
group = "+harpoon"; group = "+code";
} }
]; ];
win = { win = {
@@ -62,22 +37,6 @@
keymaps = [ keymaps = [
# General Mappings # 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"; key = "s";
action = "<cmd>lua require('flash').jump()<cr>"; action = "<cmd>lua require('flash').jump()<cr>";
@@ -88,7 +47,13 @@
action = "<cmd>lua vim.lsp.buf.hover()<cr>"; action = "<cmd>lua vim.lsp.buf.hover()<cr>";
options.desc = "LSP Hover"; options.desc = "LSP Hover";
} }
{
key = "<C-tab>";
action = "<cmd>bnext<cr>";
options.desc = "Next Buffer";
}
# Tmux
{ {
key = "<C-h>"; key = "<C-h>";
action = "<cmd>TmuxNavigateLeft<cr>"; action = "<cmd>TmuxNavigateLeft<cr>";
@@ -106,12 +71,29 @@
action = "<cmd>TmuxNavigateRight<cr>"; action = "<cmd>TmuxNavigateRight<cr>";
} }
# UI # Disable Arrow Keys in Normal Mode
{ {
key = "<leader>uz"; key = "<Up>";
action = "<cmd>ZenMode<cr>"; action = "<Nop>";
options.desc = "Toggle ZenMode"; options.desc = "Disable Up Arrow";
} }
{
key = "<Down>";
action = "<Nop>";
options.desc = "Disable Down Arrow";
}
{
key = "<Left>";
action = "<Nop>";
options.desc = "Disable Left Arrow";
}
{
key = "<Right>";
action = "<Nop>";
options.desc = "Disable Right Arrow";
}
# UI
{ {
key = "<leader>uw"; key = "<leader>uw";
action = "<cmd>set wrap!<cr>"; action = "<cmd>set wrap!<cr>";
@@ -125,7 +107,7 @@
{ {
key = "<leader>us"; key = "<leader>us";
action = "<cmd>set spell!<cr>"; action = "<cmd>set spell!<cr>";
options.desc = "Toggle spellcheck"; options.desc = "Toggle spellLazyGitcheck";
} }
{ {
key = "<leader>uc"; key = "<leader>uc";
@@ -153,95 +135,6 @@
options.desc = "Hide tabline"; 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 # Windows
{ {
key = "<leader>ws"; key = "<leader>ws";
@@ -258,53 +151,6 @@
action = "<cmd>close<cr>"; action = "<cmd>close<cr>";
options.desc = "Close"; 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,38 +1,141 @@
{ {
programs.nixvim.globals.mapleader = " "; programs.nixvim = {
programs.nixvim.opts = { globals.mapleader = " ";
updatetime = 50; # Faster completion diagnostics = {
virtual_text = true;
number = true; virtual_improved = { current_line = "only"; };
relativenumber = true; };
opts = {
autoindent = true; autoindent = true;
clipboard = "unnamed,unnamedplus";
expandtab = true;
tabstop = 2;
softtabstop = 2;
shiftwidth = 2;
smartindent = true; smartindent = true;
breakindent = true;
ignorecase = true;
incsearch = true; incsearch = true;
hlsearch = true; hlsearch = true;
smartcase = true;
wildmode = "list:longest"; wildmode = "list:longest";
completeopt = [ "menuone" "noselect" "noinsert" ];
signcolumn = "yes";
cursorline = false;
scrolloff = 8; scrolloff = 8;
mouse = "a";
termguicolors = true;
showmode = false;
wrap = false;
swapfile = false; swapfile = false;
undofile = true;
conceallevel = 3; conceallevel = 3;
clipboard = "unnamed,unnamedplus";
# Don't stop backspace at insert
backspace.__raw = ''
vim.list_extend(vim.opt.backspace:get(), { "nostop" })
'';
# Keep visual indentation on wrapped lines
breakindent = true;
# Hide command line unless needed
cmdheight = 0;
# Insert mode completion options
completeopt = [ "menu" "menuone" "noselect" ];
# Raise a dialog asking if you wish to save the current file(s)
confirm = true;
# Copy previous indentation on autoindenting
copyindent = true;
# Highlight current line
cursorline = true;
# Expand <Tab> to spaces
expandtab = true;
# Disable `~` on nonexistent lines
fillchars = { eob = " "; };
# Enable fold with all code unfolded
foldcolumn = "1";
foldenable = true;
foldlevel = 99;
foldlevelstart = 99;
# Ignore case in search patterns
ignorecase = true;
# Show substitution preview in split window
inccommand = "split";
# Infer casing on word completion
infercase = true;
# Global statusline
laststatus = 3;
# Wrap lines at 'breakat'
linebreak = true;
# Enable mouse support
mouse = "a";
# Show line numbers
number = true;
# Preserve indentation as much as possible
preserveindent = true;
# Height of the popup menu
pumheight = 10;
# Display line numbers relative to current line
relativenumber = true;
# Minimal number of lines to keep around the cursor
# This has the effect to move the view along with current line
#scrolloff = 999;
# Number of spaces to use for indentation
shiftwidth = 2;
# Disable showing modes in command line
showmode = false;
# Always show tabline
showtabline = 2;
# Show signs column
signcolumn = "yes";
# Override ignorecase if search pattern contains uppercase characters
smartcase = true;
# Number of spaces input on <Tab>
softtabstop = 2;
# Open horizontal split below (:split)
splitbelow = true;
# Open vertical split to the right (:vsplit)
splitright = true;
# Number of spaces to represent a <Tab>
tabstop = 2;
# Enables 24-bit RGB color
termguicolors = true;
# Shorter timeout duration
timeoutlen = 500;
# Set window title to the filename
title = true;
# Save undo history to undo file (in $XDG_STATE_HOME/nvim/undo)
undofile = true;
# Enable virtual edit in visual block mode
# This has the effect of selecting empty cells beyond lines boundaries
virtualedit = "block";
# Disable line wrapping
wrap = false;
# Disable making a backup before overwriting a file
writebackup = false;
};
}; };
} }

View File

@@ -21,6 +21,7 @@
} }
{ name = "nvim_lua"; } { name = "nvim_lua"; }
{ name = "mkdnflow"; } { name = "mkdnflow"; }
{ name = "render-markdown"; }
{ name = "path"; } { name = "path"; }
]; ];
@@ -112,6 +113,5 @@
}; };
}; };
}; };
}; };
} }

View File

@@ -1,28 +0,0 @@
{ 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,153 +0,0 @@
{ 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 = {
AlphaHeaderColor.fg = accent;
AlphaTextColor.fg = foreground;
AlphaShortcutColor.fg = muted;
};
programs.nixvim.plugins.alpha = {
enable = true;
layout = [
{
type = "padding";
val = 4;
}
{
type = "text";
opts = {
position = "center";
hl = "AlphaHeaderColor";
};
val = [
" "
" "
" "
" "
" "
" "
" "
" "
" "
];
}
{
type = "padding";
val = 4;
}
{
type = "group";
val = [
{
type = "button";
val = "󰭎 Find file";
on_press.__raw = "function() vim.cmd[[Telescope find_files]] end";
opts = {
shortcut = "nf";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = " New file";
on_press.__raw = "function() vim.cmd[[ene]] end";
opts = {
shortcut = "nn";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = " NixOs Config";
on_press.__raw = "function() vim.cmd[[Neotree ${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 = {
shortcut = "nc";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = " Recently used";
on_press.__raw = "function() vim.cmd[[Telescope oldfiles]] end";
opts = {
shortcut = "no";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = "󰱽 Find text";
on_press.__raw = "function() vim.cmd[[Telescope live_grep]] end";
opts = {
shortcut = "nt";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
{
type = "button";
val = "󰩈 Quit Neovim";
on_press.__raw = "function() vim.cmd[[qa]] end";
opts = {
shortcut = "nq";
position = "center";
cursor = 3;
width = 50;
align_shortcut = "right";
hl_shortcut = "AlphaShortcutColor";
hl = "AlphaTextColor";
};
}
];
}
];
};
}

View File

@@ -0,0 +1,13 @@
{ config, ... }: {
programs.nixvim = {
plugins.floaterm.enable = true;
highlightOverride = {
FloatermBorder.fg = "#${config.lib.stylix.colors.base01}";
};
keymaps = [{
key = "<leader>cn";
action = "<cmd>FloatermNew --title=nixy nixy || sleep 10<cr>";
options.desc = "Nixy";
}];
};
}

View File

@@ -0,0 +1,13 @@
{
programs.nixvim = {
plugins = {
gitsigns.enable = true;
snacks.settings = { lazygit.enable = true; };
};
keymaps = [{
key = "<leader>gl";
action = "<cmd>lua Snacks.lazygit()<cr>";
options.desc = "LazyGit";
}];
};
}

View File

@@ -3,27 +3,21 @@
lsp-format.enable = true; lsp-format.enable = true;
lsp = { lsp = {
enable = true; enable = true;
inlayHints = true;
servers = { servers = {
bashls.enable = true; bashls.enable = true;
clangd.enable = true;
gopls.enable = true; gopls.enable = true;
ts_ls.enable = true;
nixd.enable = true; nixd.enable = true;
tailwindcss.enable = true; tailwindcss.enable = true;
html.enable = true; html.enable = true;
svelte.enable = true; svelte.enable = true;
marksman.enable = true;
};
keymaps.lspBuf = {
"gd" = "definition";
"gD" = "references";
"gt" = "type_definition";
"gi" = "implementation";
"K" = "hover";
}; };
}; };
none-ls = { none-ls = {
enable = true; enable = true;
sources = { sources = {
completion = { luasnip.enable = true; };
diagnostics = { diagnostics = {
golangci_lint.enable = true; golangci_lint.enable = true;
statix.enable = true; statix.enable = true;

View File

@@ -1,170 +1,32 @@
# The render-markdown.nvim plugin is a plugin that renders markdown files in a neovim in a more readable way.
{ config, ... }: { config, ... }:
let let
accent = "#${config.lib.stylix.colors.base0D}"; accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}"; muted = "#${config.lib.stylix.colors.base03}";
background = "#${config.lib.stylix.colors.base00}";
in { in {
programs.nixvim = { programs.nixvim = {
plugins.mkdnflow = { extraFiles."after/ftplugin/markdown.lua".text = ''
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.tabstop = 2
vim.bo.shiftwidth = 2 vim.bo.shiftwidth = 2
vim.bo.expandtab = true vim.bo.expandtab = true
vim.wo.cursorline = false
''; '';
};
highlight = { # Plugins
RenderMarkdownBg.bg = background; plugins = {
RenderMarkdownH1.fg = accent; # Render UI elements
RenderMarkdownH2.fg = muted; render-markdown = {
RenderMarkdownH3.fg = muted;
RenderMarkdownH4.fg = muted;
RenderMarkdownH5.fg = muted;
RenderMarkdownH6.fg = muted;
RenderMarkdownTodo.fg = muted;
RenderMarkdownWarning.fg = accent;
};
plugins.render-markdown = {
enable = true; enable = true;
settings = { settings = { completions.lsp.enabled = true; };
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";
}; };
mkdnflow = {
enable = true;
mappings = {
MkdnTableNextCell = {
key = "<S-Tab>";
modes = "i";
}; };
MkdnTablePrevCell = false;
}; };
}; };
}; };

View File

@@ -0,0 +1,22 @@
{ config, ... }: {
programs.nixvim = {
plugins.mini = {
enable = true;
mockDevIcons = true;
modules = {
icons = { };
# TODO: Learn how to use this
bracketed = { };
git = { };
diff = { };
starter = { };
pairs = { };
notify = { lsp_progress.enable = false; };
indentscope = { };
cursorword = { };
comment = { };
starter = { };
};
};
};
}

View File

@@ -0,0 +1,222 @@
{ config, ... }: {
programs.nixvim = {
highlightOverride = {
SnacksPicker = {
bg = "none";
nocombine = true;
};
SnacksPickerBorder = {
bg = "none";
fg = "#${config.lib.stylix.colors.base0D}";
};
SnacksPickerTree = { bg = "#${config.lib.stylix.colors.base00}"; };
FloatBorder = {
bg = "#${config.lib.stylix.colors.base00}";
fg = "#${config.lib.stylix.colors.base0D}";
};
NormalFloat = { bg = "#${config.lib.stylix.colors.base00}"; };
};
plugins = {
snacks.settings = {
picker.enable = true;
explorer.enable = true;
};
oil.enable = true;
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>f";
mode = "n";
group = "+find";
}
{
__unkeyed-1 = "<leader>g";
mode = "n";
group = "+git";
}
{
__unkeyed-1 = "<leader>s";
mode = "n";
group = "+search";
}
];
};
keymaps = [
# Top Pickers & Explorer
{
key = "<leader> ";
action = "<cmd>lua Snacks.picker.smart()<cr>";
options.desc = "Smart Find Files";
}
{
key = "<leader>,";
action = "<cmd>lua Snacks.picker.buffers()<cr>";
options.desc = "Buffers";
}
{
key = "<leader>/";
action = "<cmd>lua Snacks.picker.grep()<cr>";
options.desc = "Grep";
}
{
key = "<leader>:";
action = "<cmd>lua Snacks.picker.command_history()<cr>";
options.desc = "Command History";
}
{
key = "<leader>e";
action = "<cmd>lua Snacks.explorer()<cr>";
options.desc = "File Explorer";
}
{
key = "-";
action = "<cmd>Oil<cr>";
options.desc = "Oil";
}
# Find
{
key = "<leader>fb";
action = "<cmd>lua Snacks.picker.buffers()<cr>";
options.desc = "Buffers";
}
{
key = "<leader>fc";
action = ''
<cmd>lua Snacks.picker.files({ cwd = vim.fn.stdpath("config") })<cr>'';
options.desc = "Find Config File";
}
{
key = "<leader>ff";
action = "<cmd>lua Snacks.picker.files()<cr>";
options.desc = "Find Files";
}
{
key = "<leader>fg";
action = "<cmd>lua Snacks.picker.git_files()<cr>";
options.desc = "Find Git Files";
}
{
key = "<leader>fp";
action = "<cmd>lua Snacks.picker.projects()<cr>";
options.desc = "Projects";
}
{
key = "<leader>fr";
action = "<cmd>lua Snacks.picker.recent()<cr>";
options.desc = "Recent";
}
{
key = "<leader>fn";
action = "<cmd>lua Snacks.picker.notifications()<cr>";
options.desc = "Notification History";
}
{
key = "<leader>fe";
action = "<cmd>lua Snacks.picker.icons()<cr>";
options.desc = "Emoji";
}
# Git
{
key = "<leader>gb";
action = "<cmd>lua Snacks.picker.git_branches()<cr>";
options.desc = "Git Branches";
}
{
key = "<leader>gL";
action = "<cmd>lua Snacks.picker.git_log()<cr>";
options.desc = "Git Log Line";
}
{
key = "<leader>gs";
action = "<cmd>lua Snacks.picker.git_status()<cr>";
options.desc = "Git Status";
}
{
key = "<leader>gS";
action = "<cmd>lua Snacks.picker.git_stash()<cr>";
options.desc = "Git Stash";
}
{
key = "<leader>gd";
action = "<cmd>lua Snacks.picker.git_diff()<cr>";
options.desc = "Git Diff (Hunks)";
}
{
key = "<leader>gf";
action = "<cmd>lua Snacks.picker.git_log_file()<cr>";
options.desc = "Git Log File";
}
# Grep
{
key = "<leader>sb";
action = "<cmd>lua Snacks.picker.lines()<cr>";
options.desc = "Buffer Lines";
}
{
key = "<leader>st";
action = "<cmd>lua Snacks.picker.todo_comments()<cr>";
options.desc = "Todos";
}
{
key = "<leader>sB";
action = "<cmd>lua Snacks.picker.grep_buffers()<cr>";
options.desc = "Grep Open Buffers";
}
{
key = "<leader>sg";
action = "<cmd>lua Snacks.picker.grep()<cr>";
options.desc = "Grep";
}
{
key = "<leader>sw";
action = "<cmd>lua Snacks.picker.grep_word()<cr>";
options.desc = "Visual selection or word";
}
{
key = "<leader>sr";
action = "<cmd>nohlsearch<cr>";
options.desc = "Reset search";
}
# LSP
{
key = "gd";
action = "<cmd>lua Snacks.picker.lsp_definitions()<cr>";
options.desc = "Goto Definition";
}
{
key = "gD";
action = "<cmd>lua Snacks.picker.lsp_declarations()<cr>";
options.desc = "Goto Declaration";
}
{
key = "gr";
action = "<cmd>lua Snacks.picker.lsp_references()<cr>";
options.desc = "References";
options.nowait = true;
}
{
key = "gI";
action = "<cmd>lua Snacks.picker.lsp_implementations()<cr>";
options.desc = "Goto Implementation";
}
{
key = "gy";
action = "<cmd>lua Snacks.picker.lsp_type_definitions()<cr>";
options.desc = "Goto Type Definition";
}
{
key = "<leader>ss";
action = "<cmd>lua Snacks.picker.lsp_symbols()<cr>";
options.desc = "LSP Symbols";
}
{
key = "<leader>sS";
action = "<cmd>lua Snacks.picker.lsp_workspace_symbols()<cr>";
options.desc = "LSP Workspace Symbols";
}
];
};
}

View File

@@ -0,0 +1,40 @@
{
programs.nixvim = {
plugins.snacks = {
enable = true;
settings = {
image = {
enable = true;
doc = { inline = false; };
};
quickfile.enable = true;
statuscolumn.enable = true;
zen.enable = true;
bufdelete.enable = true;
};
};
keymaps = [
{
key = "<leader>uz";
action = "<cmd>lua Snacks.zen()<cr>";
options.desc = "Zen";
}
{
key = "<leader>ud";
action = "<cmd>lua Snacks.dim.enable()<cr>";
options.desc = "Dim";
}
{
key = "<leader>uD";
action = "<cmd>lua Snacks.dim.disable()<cr>";
options.desc = "Undim";
}
{
key = "<leader>wc";
action = "<cmd>lua Snacks.bufdelete.all()<cr>";
options.desc = "Close all buffers";
}
];
};
}

View File

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

@@ -1,44 +0,0 @@
{
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,46 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ ctags ];
programs.nixvim = {
plugins = {
trouble.enable = true;
which-key.settings.spec = [{
__unkeyed-1 = "<leader>t";
mode = "n";
group = "+trouble";
}];
};
keymaps = [
{
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)";
}
];
};
}

View File

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

@@ -1,49 +1,37 @@
{ config, ... }: { { config, lib, pkgs, ... }: {
programs.nixvim = { programs.nixvim = {
nixpkgs.config.allowUnfree = true; # For copilot
highlightOverride = { highlightOverride = {
FloatBorder.fg = "#${config.lib.stylix.colors.base0D}"; WhichKeySeparator.bg = "#${config.lib.stylix.colors.base00}";
}; };
plugins = { plugins = {
copilot-vim.enable = true; bufferline.enable = true;
flash.enable = true; copilot-vim = {
image = {
enable = true; enable = true;
integrations.markdown = { # FIXME: Temp issue solving
clearInInsertMode = true; settings.node_command = lib.getExe pkgs.nodejs_20;
onlyRenderImageAtCursor = true;
};
}; };
flash.enable = true;
tmux-navigator.enable = true; tmux-navigator.enable = true;
comment.enable = true;
nvim-autopairs.enable = true;
friendly-snippets.enable = true;
todo-comments.enable = true; todo-comments.enable = true;
lualine = { enable = true; };
aerial.enable = true;
treesitter = { treesitter = {
enable = true; enable = true;
nixGrammars = true; nixGrammars = true;
settings = { settings = {
ensure_installed = "all";
indent.enable = true; indent.enable = true;
highlight.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;
}; };
keymaps = [
{
key = "<leader>ct";
action = "<cmd>AerialToggle<cr>";
options.desc = "Aerial (tags)";
}
];
}; };
} }

View File

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

@@ -2,7 +2,6 @@
# My homepage is generated using https://github.com/anotherhadi/homepage # My homepage is generated using https://github.com/anotherhadi/homepage
{ pkgs, config, ... }: { pkgs, config, ... }:
let let
accent = "#${config.lib.stylix.colors.base0D}"; accent = "#${config.lib.stylix.colors.base0D}";
background = "#${config.lib.stylix.colors.base00}"; background = "#${config.lib.stylix.colors.base00}";
foreground = "#${config.lib.stylix.colors.base05}"; foreground = "#${config.lib.stylix.colors.base05}";
@@ -81,7 +80,7 @@ let
in { in {
imports = [ ./duckduckgo-colorscheme.nix ]; imports = [ ../duckduckgo-colorscheme ];
programs.qutebrowser = { programs.qutebrowser = {
enable = true; enable = true;

View File

@@ -2,7 +2,7 @@
{ {
programs.eza = { programs.eza = {
enable = true; enable = true;
icons = true; icons = "auto";
extraOptions = [ extraOptions = [
"--group-directories-first" "--group-directories-first"

View File

@@ -19,7 +19,7 @@ in {
defaultOptions = [ defaultOptions = [
"--margin=1" "--margin=1"
"--layout=reverse" "--layout=reverse"
"--border=rounded" "--border=none"
"--info='hidden'" "--info='hidden'"
"--header=''" "--header=''"
"--prompt='/ '" "--prompt='/ '"

View File

@@ -9,6 +9,8 @@ in {
settings = { settings = {
add_newline = true; add_newline = true;
format = lib.concatStrings [ format = lib.concatStrings [
"$nix_shell"
"$hostname"
"$directory" "$directory"
"$git_branch" "$git_branch"
"$git_state" "$git_state"

View File

@@ -1,5 +1,30 @@
# Tmux is a terminal multiplexer that allows you to run multiple terminal sessions in a single window. # Tmux is a terminal multiplexer that allows you to run multiple terminal sessions in a single window.
{ pkgs, ... }: { { pkgs, ... }:
let
Config = pkgs.writeShellScriptBin "Config" ''
SESSION="Nixy Config"
tmux has-session -t "$SESSION" 2>/dev/null
if [ $? == 0 ]; then
tmux attach -t "$SESSION"
exit 0
fi
tmux new-session -d -s "$SESSION"
tmux send-keys -t "$SESSION" "sleep 0.2 && clear && cd ~/.config/nixos/ && vim" C-m
tmux new-window -t "$SESSION" -n "nixy"
tmux send-keys -t "$SESSION":1 "sleep 0.2 && clear && cd ~/.config/nixos/ && nixy loop" C-m
tmux new-window -t "$SESSION" -n "lazygit"
tmux send-keys -t "$SESSION":2 "sleep 0.2 && clear && cd ~/.config/nixos/ && lazygit" C-m
tmux select-window -t "$SESSION":0
tmux select-pane -t 0
tmux attach -t "$SESSION"
'';
in {
programs.tmux = { programs.tmux = {
enable = true; enable = true;
mouse = true; mouse = true;
@@ -16,7 +41,6 @@
set -gq allow-passthrough on set -gq allow-passthrough on
bind-key x kill-pane # skip "kill-pane 1? (y/n)" prompt 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-Tab next-window
bind-key -n C-S-Tab previous-window bind-key -n C-S-Tab previous-window
@@ -25,9 +49,10 @@
plugins = with pkgs; [ plugins = with pkgs; [
tmuxPlugins.vim-tmux-navigator tmuxPlugins.vim-tmux-navigator
tmuxPlugins.resurrect # tmuxPlugins.resurrect
tmuxPlugins.sensible tmuxPlugins.sensible
tmuxPlugins.tokyo-night-tmux tmuxPlugins.tokyo-night-tmux
]; ];
}; };
home.packages = [ Config ];
} }

View File

@@ -1,6 +1,6 @@
# My shell configuration # My shell configuration
{ pkgs, lib, config, ... }: { pkgs, lib, config, ... }:
let fetch = config.var.theme.fetch; # neofetch, nerdfetch, pfetch let fetch = config.theme.fetch; # neofetch, nerdfetch, pfetch
in { in {
home.packages = with pkgs; [ bat ripgrep tldr sesh ]; home.packages = with pkgs; [ bat ripgrep tldr sesh ];
@@ -11,10 +11,15 @@ in {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
autosuggestion.enable = true; autosuggestion.enable = true;
syntaxHighlighting.enable = true; syntaxHighlighting = {
enable = true;
highlighters = [ "main" "brackets" "pattern" "regexp" "root" "line" ];
};
historySubstringSearch.enable = true; historySubstringSearch.enable = true;
initExtraFirst = '' initExtraFirst =
#bash
''
bindkey -e bindkey -e
${if fetch == "neofetch" then ${if fetch == "neofetch" then
pkgs.neofetch + "/bin/neofetch" pkgs.neofetch + "/bin/neofetch"
@@ -31,6 +36,21 @@ in {
sesh connect $session sesh connect $session
} }
function chatgptlist(){
for arg in "$@"; do
echo "$arg:"
echo "\`\`\`"
cat "$arg"
echo "\`\`\`"
echo
done
}
function n4c() {
nix develop --no-write-lock-file --refresh "github:anotherhadi/nix4cyber#''${1:-all}"
}
zle -N sesh-sessions zle -N sesh-sessions
bindkey -M emacs '\es' sesh-sessions bindkey -M emacs '\es' sesh-sessions
bindkey -M vicmd '\es' sesh-sessions bindkey -M vicmd '\es' sesh-sessions
@@ -49,6 +69,18 @@ in {
}" }"
''; '';
#NOTE- for btop to show gpu usage
#may want to check the driver version with:
#nix path-info -r /run/current-system | grep nvidia-x11
#and
#nix search nixpkgs nvidia_x11
sessionVariables = {
LD_LIBRARY_PATH = lib.concatStringsSep ":" [
"${pkgs.linuxPackages_latest.nvidia_x11_beta}/lib" # change the package name according to nix search result
"$LD_LIBRARY_PATH"
];
};
shellAliases = { shellAliases = {
vim = "nvim"; vim = "nvim";
vi = "nvim"; vi = "nvim";
@@ -61,15 +93,22 @@ in {
ls = "eza --icons=always --no-quotes"; ls = "eza --icons=always --no-quotes";
tree = "eza --icons=always --tree --no-quotes"; tree = "eza --icons=always --tree --no-quotes";
sl = "ls"; sl = "ls";
open = "${pkgs.xdg_utils}/bin/xdg-open"; open = "${pkgs.xdg-utils}/bin/xdg-open";
icat = "${pkgs.kitty}/bin/kitty +kitten icat"; icat = "${pkgs.kitty}/bin/kitty +kitten icat";
ssh = "kitty +kitten ssh";
cat =
"bat --theme=base16 --color=always --paging=never --tabs=2 --wrap=never --plain";
obsidian-no-gpu =
"env ELECTRON_OZONE_PLATFORM_HINT=auto obsidian --ozone-platform=x11";
wireguard-import = "nmcli connection import type wireguard file"; wireguard-import = "nmcli connection import type wireguard file";
notes = notes =
"nvim ~/nextcloud/Notes/index.md --cmd 'cd ~/nextcloud/Notes' -c ':Telescope find_files'"; "nvim ~/nextcloud/notes/index.md --cmd 'cd ~/nextcloud/notes' -c ':Telescope find_files'";
note = "notes"; note = "notes";
nix-shell = "nix-shell --command zsh";
# git # git
g = "lazygit"; g = "lazygit";
ga = "git add"; ga = "git add";
@@ -82,9 +121,84 @@ in {
gco = "git checkout"; gco = "git checkout";
gcb = "git checkout -b"; gcb = "git checkout -b";
gbr = "git branch"; gbr = "git branch";
grs = "git reset HEAD~1";
grh = "git reset --hard HEAD~1";
gaa = "git add ."; gaa = "git add .";
gcm = "git commit -m"; gcm = "git commit -m";
}; };
initExtra = ''
# search history based on what's typed in the prompt
autoload -U history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^[OA" history-beginning-search-backward-end
bindkey "^[OB" history-beginning-search-forward-end
# General completion behavior
zstyle ':completion:*' completer _extensions _complete _approximate
# Use cache
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/.zcompcache"
# Complete the alias
zstyle ':completion:*' complete true
# Autocomplete options
zstyle ':completion:*' complete-options true
# Completion matching control
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
zstyle ':completion:*' keep-prefix true
# Group matches and describe
zstyle ':completion:*' menu select
zstyle ':completion:*' list-grouped false
zstyle ':completion:*' list-separator '''
zstyle ':completion:*' group-name '''
zstyle ':completion:*' verbose yes
zstyle ':completion:*:matches' group 'yes'
zstyle ':completion:*:warnings' format '%F{red}%B-- No match for: %d --%b%f'
zstyle ':completion:*:messages' format '%d'
zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b'
zstyle ':completion:*:descriptions' format '[%d]'
# Colors
zstyle ':completion:*' list-colors ''${(s.:.)LS_COLORS}
# case insensitive tab completion
zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'
zstyle ':completion:*:*:-command-:*:*' group-order aliases builtins functions commands
zstyle ':completion:*' special-dirs true
zstyle ':completion:*' squeeze-slashes true
# Sort
zstyle ':completion:*' sort false
zstyle ":completion:*:git-checkout:*" sort false
zstyle ':completion:*' file-sort modification
zstyle ':completion:*:eza' sort false
zstyle ':completion:complete:*:options' sort false
zstyle ':completion:files' sort false
${lib.optionalString config.services.gpg-agent.enable ''
gnupg_path=$(ls $XDG_RUNTIME_DIR/gnupg)
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/$gnupg_path/S.gpg-agent.ssh"
''}
# Allow foot to pipe command output
function precmd {
if ! builtin zle; then
print -n "\e]133;D\e\\"
fi
}
function preexec {
print -n "\e]133;C\e\\"
}
'';
}; };
} }

View File

@@ -3,17 +3,15 @@
let let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
accent = "${config.lib.stylix.colors.base0D}"; accent = "${config.lib.stylix.colors.base0D}";
background = "${config.lib.stylix.colors.base00}";
in { in {
imports = [ inputs.spicetify-nix.homeManagerModules.default ]; imports = [ inputs.spicetify-nix.homeManagerModules.default ];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ "spotify" ];
stylix.targets.spicetify.enable = false; stylix.targets.spicetify.enable = false;
programs.spicetify = { programs.spicetify = {
enable = true; enable = true;
theme = lib.mkForce spicePkgs.themes.text; theme = lib.mkForce spicePkgs.themes.dribbblish;
colorScheme = "custom"; colorScheme = "custom";
@@ -21,6 +19,9 @@ in {
button = accent; button = accent;
button-active = accent; button-active = accent;
tab-active = accent; tab-active = accent;
player = background;
main = background;
sidebar = background;
}; };
enabledExtensions = with spicePkgs.extensions; [ enabledExtensions = with spicePkgs.extensions; [
@@ -30,7 +31,7 @@ in {
hidePodcasts hidePodcasts
adblock adblock
fullAppDisplay fullAppDisplay
shuffle keyboardShortcut
]; ];
}; };
} }

View File

@@ -0,0 +1,8 @@
# Tailscale is a VPN service that works on top of WireGuard.
# It allows me to access my servers and devices from anywhere.
{ pkgs, ... }: {
home.packages = with pkgs; [ tailscale tailscale-systray ];
wayland.windowManager.hyprland.settings.exec-once =
[ "${pkgs.tailscale-systray}/bin/tailscale-systray" ];
}

View File

@@ -1,12 +1,40 @@
# Thunar is a file explorer # Thunar is a file explorer
{ pkgs, ... }: { { pkgs, config, ... }:
let user = config.var.username;
in {
# ctrl + m to toggle the menubar # ctrl + m to toggle the menubar
home.packages = with pkgs.xfce; [ home.packages = with pkgs; [
thunar xfce.thunar
xfconf xfce.xfconf
tumbler xfce.tumbler
thunar-archive-plugin xfce.thunar-archive-plugin
thunar-volman xfce.thunar-volman
xfce.thunar-media-tags-plugin
p7zip
unar
];
gtk = {
iconTheme = {
name = "WhiteSur";
package = pkgs.whitesur-icon-theme.override {
boldPanelIcons = true;
alternativeIcons = true;
};
};
};
home.sessionVariables = {
XDG_ICON_DIR = "${pkgs.whitesur-icon-theme}/share/icons/WhiteSur";
};
# bookmarks for the side pane
gtk.gtk3.bookmarks = [
"file:///home/${user}/Downloads Downloads"
"file:///home/${user}/Pictures Pictures"
"file:///home/${user}/nextcloud Nextcloud"
"file:///home/${user}/.config/nixos NixOS"
"file:///home/${user}/dev Development"
]; ];
home.file.".config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml".text = '' home.file.".config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml".text = ''
@@ -41,6 +69,7 @@
<property name="last-show-hidden" type="bool" value="false"/> <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-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"/> <property name="last-details-view-column-widths" type="string" value="50,50,127,50,50,50,50,50,751,50,50,75,50,145"/>
<property name="last-toolbar-items" type="string" value="menu:1,back:1,forward:0,open-parent:0,open-home:0,undo:0,redo:0,zoom-in:0,zoom-out:0,zoom-reset:0,view-as-icons:0,view-as-detailed-list:0,view-as-compact-list:0,toggle-split-view:0,location-bar:1,reload:0,search:1,uca-action-1710183590071525-1:0,new-tab:0,new-window:0,view-switcher:0"/>
</channel> </channel>
''; '';
} }

View File

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

@@ -0,0 +1,14 @@
# Zen is a minimalistic web browser.
{ pkgs, inputs, ... }:
let
# Create a wrapper script for zen-browser with Wayland enabled
zenWithWayland = pkgs.symlinkJoin {
name = "zen-browser-wayland";
paths = [ inputs.zen-browser.packages."${pkgs.system}".default ];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/zen \
--set MOZ_ENABLE_WAYLAND 1
'';
};
in { home.packages = [ zenWithWayland ]; }

View File

@@ -8,8 +8,9 @@
./hyprfocus ./hyprfocus
./night-shift ./night-shift
./screenshot ./screenshot
./nerdfont_fzf ./nerdfont-fzf
./notification ./notification
./system ./system
./openvpn
]; ];
} }

View File

@@ -11,14 +11,19 @@ let
hyprfocus-on = pkgs.writeShellScriptBin "hyprfocus-on" hyprfocus-on = pkgs.writeShellScriptBin "hyprfocus-on"
# bash # bash
'' ''
hyprctl keyword "general:gaps_in" 0
hyprctl keyword "general:gaps_out" 0
hyprpanel-hide hyprpanel-hide
hyprctl keyword "general:border_size" 1
hyprctl keyword "decoration:rounding" 0 hyprctl --batch "\
hyprctl keyword "decoration:drop_shadow" false keyword animations:enabled 0;\
hyprctl keyword "decoration:inactive_opacity" 0.98 keyword decoration:shadow:enabled 0;\
hyprctl keyword "decoration:active_opacity" 1 keyword decoration:blur:enabled 0;\
keyword general:gaps_in 0;\
keyword general:gaps_out 0;\
keyword general:border_size 1;\
keyword decoration:rounding 0;\
keyword decoration:inactive_opacity 1;\
keyword decoration:active_opacity 1"
echo "1" > /tmp/hyprfocus echo "1" > /tmp/hyprfocus
''; '';

View File

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

View File

@@ -1,6 +1,7 @@
# - ## Night-Shift # - ## 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 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.
#- It use hyprsunset to control the screen temperature.
#- #-
#- - `night-shift-on` activates Night-Shift. #- - `night-shift-on` activates Night-Shift.
#- - `night-shift-off` deactivates Night-Shift. #- - `night-shift-off` deactivates Night-Shift.
@@ -9,42 +10,52 @@
#- - `night-shift-status-icon` checks if Night-Shift is active. (icon) #- - `night-shift-status-icon` checks if Night-Shift is active. (icon)
{ pkgs, ... }: { pkgs, ... }:
let let
value = "4500"; # Default value for night-shift temperature
night-shift-on = pkgs.writeShellScriptBin "night-shift-on" '' night-shift-on = pkgs.writeShellScriptBin "night-shift-on"
${pkgs.hyprshade}/bin/hyprshade on blue-light-filter # bash
''
${pkgs.hyprsunset}/bin/hyprsunset -t ${value} &
title="󰖔 Night-Shift Activated" title="󰖔 Night-Shift Activated"
description="Night-Shift is now activated! Your screen will be warmer and easier on the eyes." description="Night-Shift is now activated! Your screen will be warmer and easier on the eyes."
notif "night-shift" "$title" "$description" notif "night-shift" "$title" "$description"
''; '';
night-shift-off = pkgs.writeShellScriptBin "night-shift-off" '' night-shift-off = pkgs.writeShellScriptBin "night-shift-off"
${pkgs.hyprshade}/bin/hyprshade off # bash
''
pkill hyprsunset
title="󰖕 Night-Shift Deactivated" title="󰖕 Night-Shift Deactivated"
description="Night-Shift is now deactivated! Your screen will return to normal." description="Night-Shift is now deactivated! Your screen will return to normal."
notif "night-shift" "$title" "$description" notif "night-shift" "$title" "$description"
''; '';
night-shift = pkgs.writeShellScriptBin "night-shift" '' night-shift = pkgs.writeShellScriptBin "night-shift"
if [[ $(${pkgs.hyprshade}/bin/hyprshade current) ]]; then # bash
''
if pidof "hyprsunset"; then
night-shift-off night-shift-off
else else
night-shift-on night-shift-on
fi fi
''; '';
night-shift-status = pkgs.writeShellScriptBin "night-shift-status" '' night-shift-status = pkgs.writeShellScriptBin "night-shift-status"
if [[ $(${pkgs.hyprshade}/bin/hyprshade current) ]]; then # bash
''
if pidof "hyprsunset"; then
echo "1" echo "1"
else else
echo "0" echo "0"
fi fi
''; '';
night-shift-status-icon = night-shift-status-icon = pkgs.writeShellScriptBin "night-shift-status-icon"
pkgs.writeShellScriptBin "night-shift-status-icon" '' # bash
if [[ $(hyprshade current) ]]; then ''
if pidof "hyprsunset"; then
echo "󰖔" echo "󰖔"
else else
echo "󰖕" echo "󰖕"
@@ -52,6 +63,7 @@ let
''; '';
in { in {
home.packages = [ home.packages = [
pkgs.hyprsunset
night-shift-on night-shift-on
night-shift-off night-shift-off
night-shift night-shift

View File

@@ -28,8 +28,9 @@ let
"󰚰;Update;nixy update" "󰚰;Update;nixy update"
";Collect Garbage;nixy gc" ";Collect Garbage;nixy gc"
"󰍜;Clean Boot Menu;nixy cb" "󰍜;Clean Boot Menu;nixy cb"
";List generation;nixy listgen"
"󰌌;Hyprland Keybindings;nvim ${configDirectory}/docs/KEYBINDINGS-HYPRLAND.md" "󰌌;Hyprland Keybindings;nvim ${configDirectory}/docs/KEYBINDINGS-HYPRLAND.md"
"󰋩;Wallpapers;nvim ${inputs.nixy-wallpapers}/docs/MOBILE-VIEW.md" "󰋩;Wallpapers;zen https://github.com/anotherhadi/nixy-wallpapers"
) )
# Apply default icons if empty: # Apply default icons if empty:
@@ -44,24 +45,24 @@ let
command=$(echo "$line" | sed 's/^[^;]*;//;s/^[^;]*;//') command=$(echo "$line" | sed 's/^[^;]*;//;s/^[^;]*;//')
exec "$command" exec "$command"
exit 0 exit $?
} }
[[ $1 == "" ]] && ui [[ $1 == "" ]] && ui
if [[ $1 == "rebuild" ]];then if [[ $1 == "rebuild" ]];then
cd ${configDirectory} && git add .
sudo nixos-rebuild switch --flake ${configDirectory}#${hostname} sudo nixos-rebuild switch --flake ${configDirectory}#${hostname}
elif [[ $1 == "upgrade" ]];then elif [[ $1 == "upgrade" ]];then
sudo nixos-rebuild switch --upgrade --flake ${configDirectory}#${hostname} sudo nixos-rebuild switch --upgrade --flake '${configDirectory}#${hostname}'
elif [[ $1 == "update" ]];then elif [[ $1 == "update" ]];then
cd ${configDirectory} && nix flake update cd ${configDirectory} && nix flake update
elif [[ $1 == "gc" ]];then elif [[ $1 == "gc" ]];then
cd ${configDirectory} && sudo nix-collect-garbage -d cd ${configDirectory} && sudo nix-collect-garbage -d
elif [[ $1 == "cb" ]];then elif [[ $1 == "cb" ]];then
sudo /run/current-system/bin/switch-to-configuration boot sudo /run/current-system/bin/switch-to-configuration boot
elif [[ $1 == "remote" ]];then elif [[ $1 == "listgen" ]];then
cd ~/.config/nixos && git add . && git commit -m "update" && git push sudo nix-env -p /nix/var/nix/profiles/system --list-generations
ssh jack -S -C "cd /home/hadi/.config/nixos && git pull && sudo -S nixos-rebuild switch --flake ~/.config/nixos#jack"
else else
echo "Unknown argument" echo "Unknown argument"
fi fi

View File

@@ -0,0 +1,37 @@
# - ## OpenVPN
#-
#- OpenVPN allows you to connect/disconnect quickly to a openVPN server
#-
#- - `openvpn-up` turn on the vpn
#- - `openvpn-down` turn down the vpn
#- - `openvpn-toggle` toggle the vpn
{ pkgs, ... }:
let
id = "home"; # ID of the connection
password-file = "/home/hadi/.config/vpn-password";
openvpn-up = pkgs.writeShellScriptBin "openvpn-up"
# bash
''
nmcli con up id ${id} passwd-file ${password-file}
notif "VPN" "VPN activated" "The OpenVPN connection to ${id} has been activated"
'';
openvpn-down = pkgs.writeShellScriptBin "openvpn-down"
# bash
''
nmcli con down id ${id}
notif "VPN" "VPN deactivated" "The OpenVPN connection to ${id} has been deactivated"
'';
openvpn-toggle = pkgs.writeShellScriptBin "openvpn-toggle"
# bash
''
if nmcli connection show --active | grep -q "${id}"; then
openvpn-down
else
openvpn-up
fi
'';
in { home.packages = [ openvpn-up openvpn-down openvpn-toggle ]; }

View File

@@ -21,7 +21,7 @@ let
mode="output" mode="output"
fi fi
${pkgs.grimblast}/bin/grimblast --notify --freeze save $mode "$folder/$filename" || exit 1 ${pkgs.grimblast}/bin/grimblast --notify --freeze copysave $mode "$folder/$filename" || exit 1
if [[ $2 == "swappy" ]];then if [[ $2 == "swappy" ]];then
${pkgs.swappy}/bin/swappy -f "$folder/$filename" -o "$HOME/Pictures/$filename" ${pkgs.swappy}/bin/swappy -f "$folder/$filename" -o "$HOME/Pictures/$filename"

View File

@@ -4,6 +4,7 @@
#- #-
#- - `menu` - Open wofi with drun mode. (wofi) #- - `menu` - Open wofi with drun mode. (wofi)
#- - `powermenu` - Open power dropdown menu. (wofi) #- - `powermenu` - Open power dropdown menu. (wofi)
#- - `quickmenu` - Open a dropdown menu with shortcuts and scripts. (wofi)
#- - `lock` - Lock the screen. (hyprlock) #- - `lock` - Lock the screen. (hyprlock)
{ pkgs, ... }: { pkgs, ... }:
@@ -14,7 +15,17 @@ let
if pgrep wofi; then if pgrep wofi; then
pkill wofi pkill wofi
else else
wofi --show drun wofi -p " Apps" --show drun &
# Quit when not focused anymore
sleep 0.2
while true; do
window=$(hyprctl activewindow | grep "wofi")
if [[ ! $window ]]; then
pkill wofi
break
fi
sleep 0.2
done
fi fi
''; '';
@@ -23,6 +34,8 @@ let
'' ''
if pgrep wofi; then if pgrep wofi; then
pkill wofi pkill wofi
# if pgrep tofi; then
# pkill tofi
else else
options=( options=(
"󰌾 Lock" "󰌾 Lock"
@@ -32,7 +45,8 @@ let
"󰿅 Shutdown" "󰿅 Shutdown"
) )
selected=$(printf '%s\n' "''${options[@]}" | wofi --dmenu) selected=$(printf '%s\n' "''${options[@]}" | wofi -p " Powermenu" --dmenu)
# selected=$(printf '%s\n' "''${options[@]}" | tofi --prompt-text "> ")
selected=''${selected:2} selected=''${selected:2}
case $selected in case $selected in
@@ -55,10 +69,50 @@ let
fi fi
''; '';
quickmenu = pkgs.writeShellScriptBin "quickmenu"
# bash
''
if pgrep wofi; then
pkill wofi
# if pgrep tofi; then
# pkill tofi
else
options=(
"󰅶 Caffeine"
"󰖔 Night-shift"
" Nixy"
"󰈊 Hyprpicker"
"󰖂 Toggle VPN"
)
selected=$(printf '%s\n' "''${options[@]}" | wofi -p " Quickmenu" --dmenu)
# selected=$(printf '%s\n' "''${options[@]}" | tofi --prompt-text "> ")
selected=''${selected:2}
case $selected in
"Caffeine")
caffeine
;;
"Night-shift")
night-shift
;;
"Nixy")
kitty zsh -c nixy
;;
"Hyprpicker")
sleep 0.2 && ${pkgs.hyprpicker}/bin/hyprpicker -a
;;
"Toggle VPN")
openvpn-toggle
;;
esac
fi
'';
lock = pkgs.writeShellScriptBin "lock" lock = pkgs.writeShellScriptBin "lock"
# bash # bash
'' ''
${pkgs.hyprlock}/bin/hyprlock ${pkgs.hyprlock}/bin/hyprlock
''; '';
in { home.packages = [ menu powermenu lock ]; } in { home.packages = [ menu powermenu lock quickmenu ]; }

View File

@@ -1,7 +0,0 @@
# Batsignal is a simple utility to send battery notifications.
{
services.batsignal = {
enable = true;
extraArgs = [ "-c 10" "-w 30" "-f disabled" ];
};
}

View File

@@ -1,142 +0,0 @@
# GTK & QT theme configuration
{ config, pkgs, lib, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
foreground = "#${config.lib.stylix.colors.base05}";
background = "#${config.lib.stylix.colors.base00}";
background-alt = "#${config.lib.stylix.colors.base01}";
c0 = "#${config.lib.stylix.colors.base00}";
c1 = "#${config.lib.stylix.colors.base08}";
c2 = "#${config.lib.stylix.colors.base0B}";
c3 = "#${config.lib.stylix.colors.base0A}";
c4 = "#${config.lib.stylix.colors.base0D}";
c5 = "#${config.lib.stylix.colors.base0E}";
c6 = "#${config.lib.stylix.colors.base0C}";
c7 = "#${config.lib.stylix.colors.base05}";
c8 = "#${config.lib.stylix.colors.base03}";
c9 = "#${config.lib.stylix.colors.base08}";
c10 = "#${config.lib.stylix.colors.base0B}";
c11 = "#${config.lib.stylix.colors.base0A}";
c12 = "#${config.lib.stylix.colors.base0D}";
c13 = "#${config.lib.stylix.colors.base0E}";
c14 = "#${config.lib.stylix.colors.base0C}";
c15 = "#${config.lib.stylix.colors.base07}";
in {
qt = {
enable = true;
platformTheme.name = "gtk2";
style.name = "gtk2";
};
gtk = {
enable = true;
theme = lib.mkForce { name = "FlatColor"; };
iconTheme = {
package = pkgs.kora-icon-theme;
name = "Kora";
};
font = { name = config.stylix.fonts.serif.name; };
gtk3.extraConfig = { gtk-application-prefer-dark-theme = 1; };
gtk4.extraConfig = { gtk-application-prefer-dark-theme = 1; };
};
home.file = {
".local/share/themes/FlatColor" = {
recursive = true;
source = pkgs.stdenv.mkDerivation {
name = "FlatColor";
src = pkgs.fetchFromGitHub {
owner = "jasperro";
repo = "FlatColor";
rev = "0a56c50e8c5e2ad35f6174c19a00e01b30874074";
hash = "sha256-P8RnYTk9Z1rCBEEMLTVRrNr5tUM/Pc9dsdMtpHd1Y18=";
};
buildPhase = ''
mkdir -p $out
# delete the default gtk-color-scheme:
file="./gtk-2.0/gtkrc"
sed -i '3,29d' $file
sed -i '3i include "../colors2"' $file
file="./gtk-3.0/gtk.css"
sed -i '2,10d' $file
sed -i '2i @import url("../colors3");' $file
file="./gtk-3.20/gtk.css"
sed -i '2,26d' $file
sed -i '2i @import url("../colors3");' $file
cp -r . $out
'';
};
};
".local/share/themes/FlatColor/colors2".text = ''
bg_color:${background}
color0:${c0}
color1:${c1}
color2:${c2}
color3:${c3}
color4:${c4}
color5:${c5}
color6:${c6}
color7:${c7}
color8:${c8}
color9:${c9}
color10:${c10}
color11:${c11}
color12:${c12}
color13:${c13}
color14:${c14}
color15:${c15}
text_color:${foreground}
selected_bg_color:${accent}
selected_fg_color:${foreground}
tooltip_bg_color:${background-alt}
tooltip_fg_color:${foreground}
titlebar_bg_color:${background}
titlebar_fg_color:${foreground}
menu_bg_color:${background-alt}
menu_fg_color:${foreground}
link_color:${accent}
'';
".local/share/themes/FlatColor/colors3".text = ''
@define-color color0 ${c0};
@define-color color1 ${c1};
@define-color color2 ${c2};
@define-color color3 ${c3};
@define-color color4 ${c4};
@define-color color5 ${c5};
@define-color color6 ${c6};
@define-color color7 ${c7};
@define-color color8 ${c8};
@define-color color9 ${c9};
@define-color color10 ${c10};
@define-color color11 ${c11};
@define-color color12 ${c12};
@define-color color13 ${c13};
@define-color color14 ${c14};
@define-color color15 ${c15};
@define-color selected_bg_color ${accent};
@define-color selected_fg_color ${foreground};
@define-color bg_color ${background};
@define-color fg_color ${foreground};
@define-color base_color @bg_color;
@define-color text_color @fg_color;
@define-color text_color_disabled mix(@text_color, @base_color, 0.4);
@define-color tooltip_bg_color ${background-alt};
@define-color tooltip_fg_color ${foreground};
'';
};
}

View File

@@ -1,5 +1,5 @@
# Hypridle is a daemon that listens for user activity and runs commands when the user is idle. # Hypridle is a daemon that listens for user activity and runs commands when the user is idle.
{ pkgs, ... }: { { pkgs, lib, ... }: {
services.hypridle = { services.hypridle = {
enable = true; enable = true;
settings = { settings = {
@@ -24,4 +24,6 @@
]; ];
}; };
}; };
systemd.user.services.hypridle.Unit.After =
lib.mkForce "graphical-session.target";
} }

View File

@@ -1,6 +1,6 @@
{ config, ... }: { config, ... }:
let let
animationSpeed = config.var.theme.animation-speed; animationSpeed = config.theme.animation-speed;
animationDuration = if animationSpeed == "slow" then animationDuration = if animationSpeed == "slow" then
"4" "4"

View File

@@ -1,14 +1,16 @@
{ pkgs, ... }: { { pkgs, ... }: {
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
bind = [ bind = [
"$mod,RETURN, exec, ${pkgs.kitty}/bin/kitty" # Kitty "$mod,RETURN, exec, uwsm app -- ${pkgs.kitty}/bin/kitty" # Kitty
"$mod,E, exec, ${pkgs.xfce.thunar}/bin/thunar" # Thunar "$mod,E, exec, uwsm app -- ${pkgs.xfce.thunar}/bin/thunar" # Thunar
"$mod,B, exec, ${pkgs.qutebrowser}/bin/qutebrowser" # Qutebrowser "$mod,B, exec, uwsm app -- zen-beta" # Zen Browser
"$mod,K, exec, ${pkgs.bitwarden}/bin/bitwarden" # Bitwarden "$mod,K, exec, uwsm app -- ${pkgs.bitwarden}/bin/bitwarden" # Bitwarden
"$mod,L, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock "$mod,L, exec, uwsm app -- ${pkgs.hyprlock}/bin/hyprlock" # Lock
"$mod,X, exec, powermenu" # Powermenu "$mod,X, exec, powermenu" # Powermenu
"$mod,SPACE, exec, menu" # Launcher "$mod,SPACE, exec, menu" # Launcher
"$mod,C, exec, quickmenu" # Quickmenu
"$shiftMod,SPACE, exec, hyprfocus-toggle" # Toggle HyprFocus "$shiftMod,SPACE, exec, hyprfocus-toggle" # Toggle HyprFocus
"$mod,P, exec, uwsm app -- ${pkgs.planify}/bin/io.github.alainm23.planify" # Planify
"$mod,Q, killactive," # Close window "$mod,Q, killactive," # Close window
"$mod,T, togglefloating," # Toggle Floating "$mod,T, togglefloating," # Toggle Floating
@@ -22,12 +24,12 @@
"$shiftMod,left, layoutmsg, addmaster" # Add to master "$shiftMod,left, layoutmsg, addmaster" # Add to master
"$shiftMod,right, layoutmsg, removemaster" # Remove from master "$shiftMod,right, layoutmsg, removemaster" # Remove from master
"$mod,PRINT, exec, screenshot window" # Screenshot window "$mod,PRINT, exec, screenshot region" # Screenshot region
",PRINT, exec, screenshot monitor" # Screenshot monitor ",PRINT, exec, screenshot monitor" # Screenshot monitor
"$shiftMod,PRINT, exec, screenshot region" # Screenshot region "$shiftMod,PRINT, exec, screenshot window" # Screenshot window
"ALT,PRINT, exec, screenshot region swappy" # Screenshot region then edit "ALT,PRINT, exec, screenshot region swappy" # Screenshot region then edit
"$shiftMod,S, exec, ${pkgs.qutebrowser}/bin/qutebrowser :open $(wofi --show dmenu -L 1 -p ' Search on internet')" # Search on internet with wofi "$shiftMod,T, exec, hyprpanel-toggle" # Toggle hyprpanel
"$shiftMod,C, exec, clipboard" # Clipboard picker with wofi "$shiftMod,C, exec, clipboard" # Clipboard picker with wofi
"$shiftMod,E, exec, ${pkgs.wofi-emoji}/bin/wofi-emoji" # Emoji picker with wofi "$shiftMod,E, exec, ${pkgs.wofi-emoji}/bin/wofi-emoji" # Emoji picker with wofi
"$mod,F2, exec, night-shift" # Toggle night shift "$mod,F2, exec, night-shift" # Toggle night shift
@@ -46,6 +48,9 @@
bindl = [ bindl = [
",XF86AudioMute, exec, sound-toggle" # Toggle Mute ",XF86AudioMute, exec, sound-toggle" # Toggle Mute
",XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause" # Play/Pause Song
",XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next" # Next Song
",XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous" # Previous Song
",switch:Lid Switch, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock when closing Lid ",switch:Lid Switch, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock when closing Lid
]; ];

View File

@@ -1,22 +1,30 @@
# So best window tiling manager # So best window tiling manager
{ pkgs, config, inputs, ... }: { pkgs, config, inputs, lib, ... }:
let let
border-size = config.var.theme.border-size; border-size = config.theme.border-size;
gaps-in = config.var.theme.gaps-in; gaps-in = config.theme.gaps-in;
gaps-out = config.var.theme.gaps-out; gaps-out = config.theme.gaps-out;
active-opacity = config.var.theme.active-opacity; active-opacity = config.theme.active-opacity;
inactive-opacity = config.var.theme.inactive-opacity; inactive-opacity = config.theme.inactive-opacity;
rounding = config.var.theme.rounding; rounding = config.theme.rounding;
blur = config.var.theme.blur; blur = config.theme.blur;
keyboardLayout = config.var.keyboardLayout; keyboardLayout = config.var.keyboardLayout;
background = "rgb(" + config.lib.stylix.colors.base00 + ")";
in { in {
imports = [ ./animations.nix ./bindings.nix ]; imports = [
./animations.nix
./bindings.nix
./polkitagent.nix
./keyboard-backlight.nix # CHANGEME: This is for my laptop only
# FIXME: Broken on unstable
# ./hyprspace.nix
];
home.packages = with pkgs; [ home.packages = with pkgs; [
qt5.qtwayland qt5.qtwayland
qt6.qtwayland qt6.qtwayland
qt5ct libsForQt5.qt5ct
qt6ct qt6ct
hyprshot hyprshot
hyprpicker hyprpicker
@@ -39,23 +47,34 @@ in {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
xwayland.enable = true; xwayland.enable = true;
systemd.enable = true; systemd = {
package = inputs.hyprland.packages."${pkgs.system}".hyprland; enable = false;
variables = [
"--all"
]; # https://wiki.hyprland.org/Nix/Hyprland-on-Home-Manager/#programs-dont-work-in-systemd-services-but-do-on-the-terminal
};
package = null;
portalPackage = null;
settings = { settings = {
"$mod" = "SUPER"; "$mod" = "SUPER";
"$shiftMod" = "SUPER_SHIFT"; "$shiftMod" = "SUPER_SHIFT";
exec-once = [ "${pkgs.bitwarden}/bin/bitwarden" ]; exec-once = [
"dbus-update-activation-environment --systemd --all &"
"systemctl --user enable --now hyprpaper.service &"
"systemctl --user enable --now hypridle.service &"
"systemctl --user enable --now nextcloud-client.service &"
];
monitor = [ monitor = [
"eDP-2,highres,0x0,1" "eDP-2,highres,0x0,1" # My internal laptop screen
"HDMI-A-1,3440x1440@99.98,auto,1" "desc:AOC U34G2G1 0x00000E06,3440x1440@99.98,auto,1" # My external monitor
",prefered,auto,1" "desc:United Microelectr Corporation UMC SHARP,3840x2160,auto,2" # TV
",prefered,auto,1" # default
]; ];
env = [ env = [
"XDG_SESSION_TYPE,wayland"
"XDG_CURRENT_DESKTOP,Hyprland" "XDG_CURRENT_DESKTOP,Hyprland"
"MOZ_ENABLE_WAYLAND,1" "MOZ_ENABLE_WAYLAND,1"
"ANKI_WAYLAND,1" "ANKI_WAYLAND,1"
@@ -67,8 +86,6 @@ in {
"QT_QPA_PLATFORM=wayland,xcb" "QT_QPA_PLATFORM=wayland,xcb"
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1" "QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
"ELECTRON_OZONE_PLATFORM_HINT,auto" "ELECTRON_OZONE_PLATFORM_HINT,auto"
"GTK_THEME,FlatColor:dark"
"GTK2_RC_FILES,/home/hadi/.local/share/themes/FlatColor/gtk-2.0/gtkrc"
"__GL_GSYNC_ALLOWED,0" "__GL_GSYNC_ALLOWED,0"
"__GL_VRR_ALLOWED,0" "__GL_VRR_ALLOWED,0"
"DISABLE_QT5_COMPAT,0" "DISABLE_QT5_COMPAT,0"
@@ -77,10 +94,9 @@ in {
"WLR_BACKEND,vulkan" "WLR_BACKEND,vulkan"
"WLR_RENDERER,vulkan" "WLR_RENDERER,vulkan"
"WLR_NO_HARDWARE_CURSORS,1" "WLR_NO_HARDWARE_CURSORS,1"
"XDG_SESSION_TYPE,wayland"
"SDL_VIDEODRIVER,wayland" "SDL_VIDEODRIVER,wayland"
"CLUTTER_BACKEND,wayland" "CLUTTER_BACKEND,wayland"
"AQ_DRM_DEVICES,/dev/dri/card2" # CHANGEME: Related to the GPU "AQ_DRM_DEVICES,/dev/dri/card2:/dev/dri/card1" # CHANGEME: Related to the GPU
]; ];
cursor = { cursor = {
@@ -93,18 +109,23 @@ in {
gaps_in = gaps-in; gaps_in = gaps-in;
gaps_out = gaps-out; gaps_out = gaps-out;
border_size = border-size; border_size = border-size;
border_part_of_window = true;
layout = "master"; layout = "master";
"col.inactive_border" = lib.mkForce background;
}; };
decoration = { decoration = {
active_opacity = active-opacity; active_opacity = active-opacity;
inactive_opacity = inactive-opacity; inactive_opacity = inactive-opacity;
rounding = rounding; rounding = rounding;
drop_shadow = true; shadow = {
shadow_range = 20; enabled = true;
shadow_render_power = 3; range = 20;
blur = { enabled = if blur then "true" else "false"; }; render_power = 3;
};
blur = {
enabled = if blur then "true" else "false";
size = 18;
};
}; };
master = { master = {
@@ -124,6 +145,42 @@ in {
new_window_takes_over_fullscreen = 2; new_window_takes_over_fullscreen = 2;
}; };
windowrulev2 = [
"float, tag:modal"
"pin, tag:modal"
"center, tag:modal"
# telegram media viewer
"float, title:^(Media viewer)$"
# Bitwarden extension
"float, title:^(.*Bitwarden Password Manager.*)$"
# gnome calculator
"float, class:^(org.gnome.Calculator)$"
"size 360 490, class:^(org.gnome.Calculator)$"
# make Firefox/Zen PiP window floating and sticky
"float, title:^(Picture-in-Picture)$"
"pin, title:^(Picture-in-Picture)$"
# idle inhibit while watching videos
"idleinhibit focus, class:^(mpv|.+exe|celluloid)$"
"idleinhibit focus, class:^(zen)$, title:^(.*YouTube.*)$"
"idleinhibit fullscreen, class:^(zen)$"
"dimaround, class:^(gcr-prompter)$"
"dimaround, class:^(xdg-desktop-portal-gtk)$"
"dimaround, class:^(polkit-gnome-authentication-agent-1)$"
"dimaround, class:^(zen)$, title:^(File Upload)$"
# fix xwayland apps
"rounding 0, xwayland:1"
"center, class:^(.*jetbrains.*)$, title:^(Confirm Exit|Open Project|win424|win201|splash)$"
"size 640 400, class:^(.*jetbrains.*)$, title:^(splash)$"
];
layerrule = [ "noanim, launcher" "noanim, ^ags-.*" ];
input = { input = {
kb_layout = keyboardLayout; kb_layout = keyboardLayout;
@@ -142,6 +199,4 @@ in {
}; };
}; };
systemd.user.targets.hyprland-session.Unit.Wants =
[ "xdg-desktop-autostart.target" ];
} }

View File

@@ -0,0 +1,20 @@
# Hyprspace is a hyprland plugin that provides a workspaces overview (three-finger swipe up) and a workspace switcher (three-finger down).
{ inputs, pkgs, ... }: {
wayland.windowManager.hyprland = {
plugins = [ inputs.hyprspace.packages.${pkgs.system}.Hyprspace ];
settings = {
plugin = {
overview = {
centerAligned = true;
hideTopLayers = true;
hideOverlayLayers = true;
showNewWorkspace = true;
exitOnClick = true;
exitOnSwitch = true;
drawActiveWorkspace = true;
autoDrag = false;
};
};
};
};
}

View File

@@ -0,0 +1,32 @@
# Turn the keyboard red/off when the battery is low
{ pkgs, config, ... }:
let
keyboard-backlight = pkgs.writeShellScriptBin "keyboard-backlight" ''
function set_keyboard_backlight {
local color=$1
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone00
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone01
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone02
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone03
}
state="white"
while true; do
BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity)
if [[ $BATTERY_LEVEL -le 10 ]]; then
if [[ $state == "red" ]];then
state="white"
set_keyboard_backlight "000000"
else
state="red"
set_keyboard_backlight "FF0000"
fi
else
state="white"
set_keyboard_backlight ${config.lib.stylix.colors.base0D}
fi
sleep 2
done
'';
in {
wayland.windowManager.hyprland.settings.exec-once = [ keyboard-backlight ];
}

View File

@@ -0,0 +1,7 @@
# HyprPolkitAgent is a simple polkit agent for wayland compositors
{ pkgs, ... }: {
home.packages = with pkgs; [ hyprpolkitagent ];
wayland.windowManager.hyprland.settings.exec-once =
[ "systemctl --user start hyprpolkitagent" ];
}

View File

@@ -1,8 +1,7 @@
# Hyprlock is a lockscreen for Hyprland # Hyprlock is a lockscreen for Hyprland
{ config, ... }: { config, lib, ... }:
let let
foreground = "rgba(216, 222, 233, 0.70)"; foreground = "rgba(${config.theme.textColorOnWallpaper}ee)";
imageStr = toString config.stylix.image;
font = config.stylix.fonts.serif.name; font = config.stylix.fonts.serif.name;
in { in {
programs.hyprlock = { programs.hyprlock = {
@@ -17,7 +16,6 @@ in {
# BACKGROUND # BACKGROUND
background = { background = {
monitor = ""; monitor = "";
path = imageStr;
blur_passes = 0; blur_passes = 0;
contrast = 0.8916; contrast = 0.8916;
brightness = 0.7172; brightness = 0.7172;
@@ -66,15 +64,15 @@ in {
]; ];
# INPUT FIELD # INPUT FIELD
input-field = [{ input-field = lib.mkForce {
monitor = ""; monitor = "";
size = "300, 60"; size = "300, 60";
outline_thickness = 2; outline_thickness = 2;
dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8 dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0 dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true; dots_center = true;
outer_color = "rgba(255, 255, 255, 0)"; outer_color = "rgba(25, 25, 25, 0)";
inner_color = "rgba(255, 255, 255, 0.1)"; inner_color = "rgba(25, 25, 25, 0.1)";
font_color = foreground; font_color = foreground;
fade_on_empty = false; fade_on_empty = false;
font_family = font + " Bold"; font_family = font + " Bold";
@@ -83,7 +81,7 @@ in {
position = "0, -250"; position = "0, -250";
halign = "center"; halign = "center";
valign = "center"; valign = "center";
}]; };
}; };
}; };
} }

View File

@@ -1,238 +1,206 @@
# Hyprpanel is the bar on top of the screen # Hyprpanel is the bar on top of the screen
# Display informations like workspaces, battery, wifi, ... # Display informations like workspaces, battery, wifi, ...
{ pkgs, config, ... }: { inputs, config, ... }:
let let
transparentButtons = config.var.theme.bar.transparentButtons; transparentButtons = config.theme.bar.transparentButtons;
accent = "#${config.lib.stylix.colors.base0D}"; accent = "#${config.lib.stylix.colors.base0D}";
accent-alt = "#${config.lib.stylix.colors.base03}"; accent-alt = "#${config.lib.stylix.colors.base03}";
background = "#${config.lib.stylix.colors.base00}"; background = "#${config.lib.stylix.colors.base00}";
background-alt = "#${config.lib.stylix.colors.base01}"; background-alt = "#${config.lib.stylix.colors.base01}";
foreground = "#${config.lib.stylix.colors.base05}"; foreground = "#${config.lib.stylix.colors.base05}";
foregroundOnWallpaper = "#${config.theme.textColorOnWallpaper}";
font = "${config.stylix.fonts.serif.name}"; font = "${config.stylix.fonts.serif.name}";
fontSize = "${toString config.stylix.fonts.sizes.desktop}"; fontSize = "${toString config.stylix.fonts.sizes.desktop}";
rounding = config.var.theme.rounding; rounding = config.theme.rounding;
border-size = config.var.theme.border-size; border-size = config.theme.border-size;
gaps-out = config.var.theme.gaps-out; gaps-out = config.theme.gaps-out;
gaps-in = config.var.theme.gaps-in; gaps-in = config.theme.gaps-in;
floating = config.var.theme.bar.floating; floating = config.theme.bar.floating;
transparent = config.var.theme.bar.transparent; transparent = config.theme.bar.transparent;
position = config.theme.bar.position;
notificationOpacity = 90;
location = config.var.location; location = config.var.location;
username = config.var.username;
in { in {
wayland.windowManager.hyprland.settings.exec-once =
[ "${pkgs.hyprpanel}/bin/hyprpanel" ];
home.packages = with pkgs; [ hyprpanel libnotify ]; imports = [ inputs.hyprpanel.homeManagerModules.hyprpanel ];
home.file.".cache/ags/hyprpanel/options.json" = { programs.hyprpanel = {
text = # json enable = true;
'' hyprland.enable = true;
{ overwrite.enable = true;
"bar.layouts": { overlay.enable = true;
"0": { settings = {
"left": [ layout = {
"dashboard", "bar.layouts" = {
"workspaces", "*" = {
"windowtitle" "left" = [ "dashboard" "workspaces" "windowtitle" ];
], "middle" = [ "media" "cava" ];
"middle": [ "right" = [
"media" "systray"
], "volume"
"right": [ "bluetooth"
"systray", "battery"
"volume", "network"
"bluetooth", "clock"
"battery",
"network",
"clock",
"notifications" "notifications"
] ];
}, };
"1": { };
"left": [ };
"dashboard", };
"workspaces",
"windowtitle" override = {
], "theme.font.name" = "${font}";
"middle": [ "theme.font.size" = "${fontSize}px";
"media" "theme.bar.outer_spacing" =
], "${if floating && transparent then "0" else "8"}px";
"right": [ "theme.bar.buttons.y_margins" =
"systray", "${if floating && transparent then "0" else "8"}px";
"volume", "theme.bar.buttons.spacing" = "0.3em";
"bluetooth", "theme.bar.buttons.radius" = "${
"battery",
"network",
"clock",
"notifications"
]
},
"2": {
"left": [
"dashboard",
"workspaces",
"windowtitle"
],
"middle": [
"media"
],
"right": [
"systray",
"volume",
"bluetooth",
"battery",
"network",
"clock",
"notifications"
]
}
},
"theme.font.name": "${font}",
"theme.font.size": "${fontSize}px",
"theme.bar.outer_spacing": "${
if floating && transparent then "0" else "8"
}px",
"theme.bar.buttons.y_margins": "${
if floating && transparent then "0" else "8"
}px",
"theme.bar.buttons.spacing": "0.3em",
"theme.bar.buttons.radius": "${
if transparent then toString rounding else toString (rounding - 8) if transparent then toString rounding else toString (rounding - 8)
}px", }px";
"theme.bar.floating": ${if floating then "true" else "false"}, "theme.bar.floating" = "${if floating then "true" else "false"}";
"theme.bar.buttons.padding_x": "0.8rem", "theme.bar.buttons.padding_x" = "0.8rem";
"theme.bar.buttons.padding_y": "0.4rem", "theme.bar.buttons.padding_y" = "0.4rem";
"theme.bar.buttons.workspaces.hover" = "${accent-alt}";
"theme.bar.buttons.workspaces.active" = "${accent}";
"theme.bar.buttons.workspaces.available" = "${accent-alt}";
"theme.bar.buttons.workspaces.occupied" = "${accent-alt}";
"theme.bar.margin_top" =
"${if position == "top" then toString (gaps-in * 2) else "0"}px";
"theme.bar.margin_bottom" =
"${if position == "top" then "0" else toString (gaps-in * 2)}px";
"theme.bar.margin_sides" = "${toString gaps-out}px";
"theme.bar.border_radius" = "${toString rounding}px";
"bar.launcher.icon" = "";
"theme.bar.transparent" = "${if transparent then "true" else "false"}";
"bar.workspaces.show_numbered" = false;
"bar.workspaces.workspaces" = 5;
"bar.workspaces.hideUnoccupied" = false;
"bar.windowtitle.label" = true;
"bar.volume.label" = false;
"bar.network.truncation_size" = 12;
"bar.bluetooth.label" = false;
"bar.clock.format" = "%a %b %d %I:%M %p";
"bar.notifications.show_total" = true;
"theme.notification.border_radius" = "${toString rounding}px";
"theme.osd.enable" = true;
"theme.osd.orientation" = "vertical";
"theme.osd.location" = "left";
"theme.osd.radius" = "${toString rounding}px";
"theme.osd.margins" = "0px 0px 0px 10px";
"theme.osd.muted_zero" = true;
"menus.clock.weather.location" = "${location}";
"menus.clock.weather.unit" = "metric";
"menus.dashboard.powermenu.confirmation" = false;
"menus.dashboard.powermenu.avatar.image" = "~/.face.icon";
"theme.bar.buttons.workspaces.hover": "${accent-alt}", "menus.dashboard.shortcuts.left.shortcut1.icon" = "";
"theme.bar.buttons.workspaces.active": "${accent}", "menus.dashboard.shortcuts.left.shortcut1.command" = "zen";
"theme.bar.buttons.workspaces.available": "${background}", "menus.dashboard.shortcuts.left.shortcut1.tooltip" = "Zen";
"menus.dashboard.shortcuts.left.shortcut2.icon" = "󰅶";
"menus.dashboard.shortcuts.left.shortcut2.command" = "caffeine";
"menus.dashboard.shortcuts.left.shortcut2.tooltip" = "Caffeine";
"menus.dashboard.shortcuts.left.shortcut3.icon" = "󰖔";
"menus.dashboard.shortcuts.left.shortcut3.command" = "night-shift";
"menus.dashboard.shortcuts.left.shortcut3.tooltip" = "Night-shift";
"menus.dashboard.shortcuts.left.shortcut4.icon" = "";
"menus.dashboard.shortcuts.left.shortcut4.command" = "menu";
"menus.dashboard.shortcuts.left.shortcut4.tooltip" = "Search Apps";
"menus.dashboard.shortcuts.right.shortcut1.icon" = "";
"menus.dashboard.shortcuts.right.shortcut1.command" = "hyprpicker -a";
"menus.dashboard.shortcuts.right.shortcut1.tooltip" = "Color Picker";
"menus.dashboard.shortcuts.right.shortcut3.icon" = "󰄀";
"menus.dashboard.shortcuts.right.shortcut3.command" =
"screenshot region swappy";
"menus.dashboard.shortcuts.right.shortcut3.tooltip" = "Screenshot";
"theme.bar.margin_top": "${toString (gaps-in * 2)}px", "theme.bar.menus.monochrome" = true;
"theme.bar.margin_sides": "${toString gaps-out}px", "wallpaper.enable" = false;
"theme.bar.margin_bottom": "0px", "theme.bar.menus.background" = "${background}";
"theme.bar.border_radius": "${toString rounding}px", "theme.bar.menus.cards" = "${background-alt}";
"theme.bar.menus.card_radius" = "${toString rounding}px";
"bar.launcher.icon": "", "theme.bar.menus.label" = "${foreground}";
"theme.bar.transparent": ${if transparent then "true" else "false"}, "theme.bar.menus.text" = "${foreground}";
"bar.workspaces.show_numbered": false, "theme.bar.menus.border.size" = "${toString border-size}px";
"bar.workspaces.workspaces": 5, "theme.bar.menus.border.color" = "${accent}";
"bar.workspaces.monitorSpecific": true, "theme.bar.menus.border.radius" = "${toString rounding}px";
"bar.workspaces.hideUnoccupied": false, "theme.bar.menus.popover.text" = "${foreground}";
"bar.windowtitle.label": true, "theme.bar.menus.popover.background" = "${background-alt}";
"bar.volume.label": false, "theme.bar.menus.listitems.active" = "${accent}";
"bar.network.truncation_size": 12, "theme.bar.menus.icons.active" = "${accent}";
"bar.bluetooth.label": false, "theme.bar.menus.switch.enabled" = "${accent}";
"bar.clock.format": "%a %b %d %I:%M %p", "theme.bar.menus.check_radio_button.active" = "${accent}";
"bar.notifications.show_total": true, "theme.bar.menus.buttons.default" = "${accent}";
"theme.notification.border_radius": "${toString rounding}px", "theme.bar.menus.buttons.active" = "${accent}";
"theme.osd.enable": true, "theme.bar.menus.iconbuttons.active" = "${accent}";
"theme.osd.orientation": "vertical", "theme.bar.menus.progressbar.foreground" = "${accent}";
"theme.osd.location": "left", "theme.bar.menus.slider.primary" = "${accent}";
"theme.osd.radius": "${toString rounding}px", "theme.bar.menus.tooltip.background" = "${background-alt}";
"theme.osd.margins": "0px 0px 0px 10px", "theme.bar.menus.tooltip.text" = "${foreground}";
"theme.osd.muted_zero": true, "theme.bar.menus.dropdownmenu.background" = "${background-alt}";
"menus.clock.weather.location": "${location}", "theme.bar.menus.dropdownmenu.text" = "${foreground}";
"menus.clock.weather.key": "myapikey", "theme.bar.background" = "${background
"menus.clock.weather.unit": "metric", + (if transparentButtons && transparent then "00" else "")}";
"menus.dashboard.powermenu.avatar.image": "/home/${username}/.profile_picture.png", "theme.bar.buttons.style" = "default";
"menus.dashboard.powermenu.confirmation": false, "theme.bar.buttons.monochrome" = true;
"theme.bar.buttons.text" = if transparent && transparentButtons then
"menus.dashboard.shortcuts.left.shortcut1.icon": "", "${foregroundOnWallpaper}"
"menus.dashboard.shortcuts.left.shortcut1.command": "qutebrowser", else
"menus.dashboard.shortcuts.left.shortcut1.tooltip": "Qutebrowser", "${foreground}";
"menus.dashboard.shortcuts.left.shortcut2.icon": "󰅶", "theme.bar.buttons.background" =
"menus.dashboard.shortcuts.left.shortcut2.command": "caffeine", "${(if transparent then background else background-alt)
"menus.dashboard.shortcuts.left.shortcut2.tooltip": "Caffeine", + (if transparentButtons then "00" else "")}";
"menus.dashboard.shortcuts.left.shortcut3.icon": "󰖔", "theme.bar.buttons.icon" = "${accent}";
"menus.dashboard.shortcuts.left.shortcut3.command": "night-shift", "theme.bar.buttons.notifications.background" = "${background-alt}";
"menus.dashboard.shortcuts.left.shortcut3.tooltip": "Night-shift", "theme.bar.buttons.hover" = "${background}";
"menus.dashboard.shortcuts.left.shortcut4.icon": "", "theme.bar.buttons.notifications.hover" = "${background}";
"menus.dashboard.shortcuts.left.shortcut4.command": "menu", "theme.bar.buttons.notifications.total" = "${accent}";
"menus.dashboard.shortcuts.left.shortcut4.tooltip": "Search Apps", "theme.bar.buttons.notifications.icon" = "${accent}";
"menus.dashboard.shortcuts.right.shortcut1.icon": "", "theme.osd.bar_color" = "${accent}";
"menus.dashboard.shortcuts.right.shortcut1.command": "hyprpicker -a", "theme.osd.bar_overflow_color" = "${accent-alt}";
"menus.dashboard.shortcuts.right.shortcut1.tooltip": "Color Picker", "theme.osd.icon" = "${background}";
"menus.dashboard.shortcuts.right.shortcut3.icon": "󰄀", "theme.osd.icon_container" = "${accent}";
"menus.dashboard.shortcuts.right.shortcut3.command": "screenshot region swappy", "theme.osd.label" = "${accent}";
"menus.dashboard.shortcuts.right.shortcut3.tooltip": "Screenshot", "theme.osd.bar_container" = "${background-alt}";
"theme.bar.menus.menu.media.background.color" = "${background-alt}";
"menus.dashboard.directories.left.directory1.label": "󰉍 Downloads", "theme.bar.menus.menu.media.card.color" = "${background-alt}";
"menus.dashboard.directories.left.directory1.command": "bash -c \"thunar $HOME/Downloads/\"", "theme.bar.menus.menu.media.card.tint" = 90;
"menus.dashboard.directories.left.directory2.label": "󰉏 Pictures", "bar.customModules.updates.pollingInterval" = 1440000;
"menus.dashboard.directories.left.directory2.command": "bash -c \"thunar $HOME/Pictures/\"", "bar.media.show_active_only" = true;
"menus.dashboard.directories.left.directory3.label": "󱧶 Documents", "theme.bar.location" = "${position}";
"menus.dashboard.directories.left.directory3.command": "bash -c \"thunar $HOME/Documents/\"", "bar.workspaces.numbered_active_indicator" = "color";
"menus.dashboard.directories.right.directory1.label": "󱂵 Home", "bar.workspaces.monitorSpecific" = false;
"menus.dashboard.directories.right.directory1.command": "bash -c \"thunar $HOME/\"", "bar.workspaces.applicationIconEmptyWorkspace" = "";
"menus.dashboard.directories.right.directory2.label": "󰚝 Projects", "bar.workspaces.showApplicationIcons" = true;
"menus.dashboard.directories.right.directory2.command": "bash -c \"thunar $HOME/dev/\"", "bar.workspaces.showWsIcons" = true;
"menus.dashboard.directories.right.directory3.label": " Config", "theme.bar.dropdownGap" = "4.5em";
"menus.dashboard.directories.right.directory3.command": "bash -c \"thunar $HOME/.config/\"", "theme.bar.menus.shadow" =
"${if transparent then "0 0 0 0" else "0px 0px 3px 1px #16161e"}";
"theme.bar.menus.monochrome": true, "bar.customModules.cava.showIcon" = false;
"wallpaper.enable": false, "bar.customModules.cava.stereo" = true;
"theme.bar.menus.background": "${background}", "bar.customModules.cava.showActiveOnly" = true;
"theme.bar.menus.cards": "${background-alt}", "menus.power.lowBatteryNotification" = true;
"theme.bar.menus.card_radius": "${toString rounding}px", "notifications.position" = "top right";
"theme.bar.menus.label": "${foreground}", "notifications.showActionsOnHover" = true;
"theme.bar.menus.text": "${foreground}", "theme.notification.enableShadow" = true;
"theme.bar.menus.border.size": "${toString border-size}px", "theme.notification.opacity" = notificationOpacity;
"theme.bar.menus.border.color": "${accent}", "theme.notification.background" = "${background-alt}";
"theme.bar.menus.border.radius": "${toString rounding}px", "theme.notification.actions.background" = "${accent}";
"theme.bar.menus.popover.text": "${foreground}", "theme.notification.actions.text" = "${foreground}";
"theme.bar.menus.popover.background": "${background-alt}", "theme.notification.label" = "${accent}";
"theme.bar.menus.listitems.active": "${accent}", "theme.notification.border" = "${background-alt}";
"theme.bar.menus.icons.active": "${accent}", "theme.notification.text" = "${foreground}";
"theme.bar.menus.switch.enabled":"${accent}", "theme.notification.labelicon" = "${accent}";
"theme.bar.menus.check_radio_button.active": "${accent}", "theme.notification.close_button.background" = "${background-alt}";
"theme.bar.menus.buttons.default": "${accent}", "theme.notification.close_button.label" = "#f38ba8";
"theme.bar.menus.buttons.active": "${accent}", };
"theme.bar.menus.iconbuttons.active": "${accent}",
"theme.bar.menus.progressbar.foreground": "${accent}",
"theme.bar.menus.slider.primary": "${accent}",
"theme.bar.menus.tooltip.background": "${background-alt}",
"theme.bar.menus.tooltip.text": "${foreground}",
"theme.bar.menus.dropdownmenu.background":"${background-alt}",
"theme.bar.menus.dropdownmenu.text": "${foreground}",
"theme.bar.background": "${
background + (if transparentButtons then "00" else "")
}",
"theme.bar.buttons.style": "default",
"theme.bar.buttons.monochrome": true,
"theme.bar.buttons.text": "${foreground}",
"theme.bar.buttons.background": "${
background-alt + (if transparentButtons then "00" else "")
}",
"theme.bar.buttons.icon": "${accent}",
"theme.bar.buttons.notifications.background": "${background-alt}",
"theme.bar.buttons.hover": "${background}",
"theme.bar.buttons.notifications.hover": "${background}",
"theme.bar.buttons.notifications.total": "${accent}",
"theme.bar.buttons.notifications.icon": "${accent}",
"theme.notification.background": "${background-alt}",
"theme.notification.actions.background": "${accent}",
"theme.notification.actions.text": "${foreground}",
"theme.notification.label": "${accent}",
"theme.notification.border": "${background-alt}",
"theme.notification.text": "${foreground}",
"theme.notification.labelicon": "${accent}",
"theme.osd.bar_color": "${accent}",
"theme.osd.bar_overflow_color": "${accent-alt}",
"theme.osd.icon": "${background}",
"theme.osd.icon_container": "${accent}",
"theme.osd.label": "${accent}",
"theme.osd.bar_container": "${background-alt}",
"theme.bar.menus.menu.media.background.color": "${background-alt}",
"theme.bar.menus.menu.media.card.color": "${background-alt}",
"theme.bar.menus.menu.media.card.tint": 90,
"bar.customModules.updates.pollingInterval": 1440000,
"bar.media.show_active_only": true
}
'';
}; };
} }

View File

@@ -1,5 +1,5 @@
# Hyprpaper is used to set the wallpaper on the system # Hyprpaper is used to set the wallpaper on the system
{ { lib, ... }: {
# The wallpaper is set by stylix # The wallpaper is set by stylix
services.hyprpaper = { services.hyprpaper = {
enable = true; enable = true;
@@ -9,4 +9,6 @@
splash_offset = 2.0; splash_offset = 2.0;
}; };
}; };
systemd.user.services.hyprpaper.Unit.After =
lib.mkForce "graphical-session.target";
} }

View File

@@ -1,7 +0,0 @@
# KDE Connect is a project that enables all your devices to communicate with each other. (laptop/phone)
{
services.kdeconnect = {
enable = true;
indicator = true;
};
}

View File

@@ -1,33 +1,93 @@
# Mime allows us to configure the default applications for each file type { pkgs, lib, ... }:
{ with lib;
xdg.mimeApps = { let
defaultApps = {
browser = [ "zen-beta.desktop" ];
text = [ "org.gnome.TextEditor.desktop" ];
image = [ "imv-dir.desktop" ];
audio = [ "mpv.desktop" ];
video = [ "mpv.desktop" ];
directory = [ "thunar.desktop" ];
office = [ "libreoffice.desktop" ];
pdf = [ "zathura.desktop" ];
terminal = [ "kitty.desktop" ];
discord = [ "discord.desktop" ];
};
mimeMap = {
text = [ "text/plain" ];
image = [
"image/bmp"
"image/gif"
"image/jpeg"
"image/jpg"
"image/png"
"image/svg+xml"
"image/tiff"
"image/vnd.microsoft.icon"
"image/webp"
];
audio = [
"audio/aac"
"audio/mpeg"
"audio/ogg"
"audio/opus"
"audio/wav"
"audio/webm"
"audio/x-matroska"
];
video = [
"video/mp2t"
"video/mp4"
"video/mpeg"
"video/ogg"
"video/webm"
"video/x-flv"
"video/x-matroska"
"video/x-msvideo"
];
directory = [ "inode/directory" ];
browser = [
"text/html"
"x-scheme-handler/about"
"x-scheme-handler/http"
"x-scheme-handler/https"
"x-scheme-handler/unknown"
];
office = [
"application/vnd.oasis.opendocument.text"
"application/vnd.oasis.opendocument.spreadsheet"
"application/vnd.oasis.opendocument.presentation"
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
"application/msword"
"application/vnd.ms-excel"
"application/vnd.ms-powerpoint"
"application/rtf"
];
pdf = [ "application/pdf" ];
terminal = [ "terminal" ];
# archive = [
# "application/zip"
# "application/rar"
# "application/7z"
# "application/*tar"
# ];
discord = [ "x-scheme-handler/discord" ];
};
associations = with lists;
listToAttrs (flatten (mapAttrsToList
(key: map (type: attrsets.nameValuePair type defaultApps."${key}"))
mimeMap));
in {
xdg = {
configFile."mimeapps.list".force = true;
mimeApps = {
enable = true; enable = true;
defaultApplications = { associations.added = associations;
"text/markdown" = "nvim.desktop"; defaultApplications = associations;
"text/plain" = "nvim.desktop";
"text/x-shellscript" = "nvim.desktop";
"text/x-python" = "nvim.desktop";
"text/x-go" = "nvim.desktop";
"text/css" = "nvim.desktop";
"text/javascript" = "nvim.desktop";
"text/x-c" = "nvim.desktop";
"text/x-c++" = "nvim.desktop";
"text/x-java" = "nvim.desktop";
"text/x-rust" = "nvim.desktop";
"text/x-yaml" = "nvim.desktop";
"text/x-toml" = "nvim.desktop";
"text/x-dockerfile" = "nvim.desktop";
"text/x-xml" = "nvim.desktop";
"text/x-php" = "nvim.desktop";
"image/png" = "imv.desktop";
"image/jpeg" = "imv.desktop";
"image/jpg" = "imv.desktop";
"image/webp" = "imv.desktop";
"image/gif" = "org.qutebrowser.qutebrowser.desktop";
"x-scheme-handler/http" = "org.qutebrowser.qutebrowser.desktop";
"x-scheme-handler/https" = "org.qutebrowser.qutebrowser.desktop";
"text/html" = "org.qutebrowser.qutebrowser.desktop";
"application/pdf" = "zathura.desktop";
}; };
}; };
} }

View File

@@ -1,23 +0,0 @@
# Tofi is a dmeny-like application launcher
{ config, lib, ... }:
let
background = "#${config.lib.stylix.colors.base00}70";
accent = "#${config.lib.stylix.colors.base0D}";
in {
programs.tofi = lib.mkForce {
enable = true;
settings = {
border-width = 0;
background-color = background;
prompt-color = accent;
selection-color = accent;
height = "100%";
num-results = 5;
outline-width = 0;
padding-left = "35%";
padding-top = "35%";
result-spacing = 25;
width = "100%";
};
};
}

View File

@@ -6,7 +6,7 @@ let
background-alt = "#${config.lib.stylix.colors.base01}"; background-alt = "#${config.lib.stylix.colors.base01}";
foreground = "#${config.lib.stylix.colors.base05}"; foreground = "#${config.lib.stylix.colors.base05}";
font = config.stylix.fonts.serif.name; font = config.stylix.fonts.serif.name;
rounding = config.var.theme.rounding; rounding = config.theme.rounding;
font-size = config.stylix.fonts.sizes.popups; font-size = config.stylix.fonts.sizes.popups;
in { in {
@@ -17,13 +17,12 @@ in {
settings = { settings = {
allow_markup = true; allow_markup = true;
width = 450; width = 650;
show = "drun"; show = "drun";
prompt = "Apps"; prompt = "Apps";
normal_window = true; normal_window = true;
layer = "top"; layer = "top";
term = "foot"; height = "325px";
height = "305px";
orientation = "vertical"; orientation = "vertical";
halign = "fill"; halign = "fill";
line_wrap = "off"; line_wrap = "off";
@@ -48,7 +47,7 @@ in {
'' ''
* { * {
font-family: "${font}"; font-family: "${font}";
font-weight: 500; font-weight: 600;
font-size: ${toString font-size}px; font-size: ${toString font-size}px;
} }

View File

@@ -1,40 +1,28 @@
{ config, ... }: { { config, ... }: {
imports = [ imports = [
# Mostly system related configuration
../../nixos/nvidia.nix # CHANGEME: Remove this line if you don't have an Nvidia GPU ../../nixos/nvidia.nix # CHANGEME: Remove this line if you don't have an Nvidia GPU
../../nixos/prime.nix # CHANGEME: Remove this line if you don't have an Nvidia GPU
../../nixos/audio.nix ../../nixos/audio.nix
../../nixos/auto-upgrade.nix
../../nixos/bluetooth.nix ../../nixos/bluetooth.nix
../../nixos/fonts.nix ../../nixos/fonts.nix
../../nixos/home-manager.nix ../../nixos/home-manager.nix
../../nixos/network-manager.nix
../../nixos/nix.nix ../../nixos/nix.nix
../../nixos/systemd-boot.nix ../../nixos/systemd-boot.nix
../../nixos/timezone.nix ../../nixos/sddm.nix
../../nixos/tuigreet.nix
../../nixos/users.nix ../../nixos/users.nix
../../nixos/utils.nix ../../nixos/utils.nix
../../nixos/xdg-portal.nix ../../nixos/tailscale.nix
../../nixos/variables-config.nix ../../nixos/hyprland.nix
../../themes/nixy.nix ../../nixos/omen.nix # For my laptop only
# You should let those lines as is
./hardware-configuration.nix ./hardware-configuration.nix
./variables.nix ./variables.nix
]; ];
home-manager.users."${config.var.username}" = import ./home.nix; home-manager.users."${config.var.username}" = import ./home.nix;
# For KDEConnect (Remove this if not needed)
networking.firewall = rec {
allowedTCPPortRanges = [{
from = 1714;
to = 1764;
}];
allowedUDPPortRanges = allowedTCPPortRanges;
};
# Don't touch this # Don't touch this
system.stateVersion = "24.05"; system.stateVersion = "24.05";
} }

View File

@@ -1,25 +1,27 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { { config, lib, pkgs, modulesPath, ... }:
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot = { {
initrd.availableKernelModules = imports =
[ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; [ (modulesPath + "/installer/scan/not-detected.nix")
initrd.kernelModules = [ ]; ];
kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ];
};
fileSystems."/" = { boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "uas" "usbhid" "sd_mod" ];
device = "/dev/disk/by-uuid/6c2487ec-20ff-4ce3-9396-281c2094aba1"; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/6320d3c6-0231-45ec-817a-c6f0e39aab73";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = { fileSystems."/boot" =
device = "/dev/disk/by-uuid/B4EA-C54F"; { device = "/dev/disk/by-uuid/5251-9B85";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
}; };
swapDevices = [ ]; swapDevices = [ ];
@@ -30,9 +32,9 @@
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true; # networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.enp7s0f4u1u4.useDHCP = lib.mkDefault true;
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true; # networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@@ -1,21 +1,24 @@
{ pkgs, config, ... }: { { pkgs, config, ... }: {
imports = [ imports = [
# Mostly user-specific configuration
./variables.nix ./variables.nix
# Programs # Programs
../../home/programs/kitty ../../home/programs/kitty
../../home/programs/nvim ../../home/programs/nvim
../../home/programs/qutebrowser
../../home/programs/shell ../../home/programs/shell
../../home/programs/fetch ../../home/programs/fetch
../../home/programs/git ../../home/programs/git
../../home/programs/spicetify ../../home/programs/spicetify
../../home/programs/nextcloud ../../home/programs/nextcloud
../../home/programs/yazi
../../home/programs/markdown
../../home/programs/thunar ../../home/programs/thunar
../../home/programs/lazygit ../../home/programs/lazygit
../../home/programs/zen
../../home/programs/duckduckgo-colorscheme
../../home/programs/discord
../../home/programs/tailscale
../../home/programs/anyrun
# Scripts # Scripts
../../home/scripts # All scripts ../../home/scripts # All scripts
@@ -26,15 +29,11 @@
../../home/system/hyprlock ../../home/system/hyprlock
../../home/system/hyprpanel ../../home/system/hyprpanel
../../home/system/hyprpaper ../../home/system/hyprpaper
../../home/system/gtk
../../home/system/wofi ../../home/system/wofi
../../home/system/batsignal
../../home/system/zathura ../../home/system/zathura
../../home/system/mime ../../home/system/mime
../../home/system/udiskie ../../home/system/udiskie
../../home/system/clipman ../../home/system/clipman
../../home/system/kdeconnect
../../home/system/tofi
./secrets # CHANGEME: You should probably remove this line, this is where I store my secrets ./secrets # CHANGEME: You should probably remove this line, this is where I store my secrets
]; ];
@@ -45,41 +44,51 @@
packages = with pkgs; [ packages = with pkgs; [
# Apps # Apps
discord # Chat
bitwarden # Password manager bitwarden # Password manager
vlc # Video player vlc # Video player
blanket # White-noise app blanket # White-noise app
obsidian # Note taking app
planify # Todolists
gnome-calendar # Calendar
textpieces # Manipulate texts
curtail # Compress images
resources
gnome-clocks
gnome-text-editor
mpv # Video player
figma-linux
# Dev # Dev
go go
nodejs nodejs
python3 python3
jq jq
figlet just
pnpm
air
# Utils # Utils
zip zip
unzip unzip
optipng optipng
jpegoptim
pfetch pfetch
pandoc
btop btop
fastfetch
# Just cool # Just cool
peaclock peaclock
cbonsai cbonsai
pipes pipes
cmatrix cmatrix
cava
# Backup # Backup
brave
vscode vscode
firefox
neovide
]; ];
# Import my profile picture, used by the hyprpanel dashboard # Import my profile picture, used by the hyprpanel dashboard
file.".profile_picture.png" = { source = ./profile_picture.png; }; file.".face.icon" = { source = ./profile_picture.png; };
# Don't touch this # Don't touch this
stateVersion = "24.05"; stateVersion = "24.05";

View File

@@ -11,10 +11,24 @@
github-key = { path = "/home/hadi/.ssh/github"; }; github-key = { path = "/home/hadi/.ssh/github"; };
gitlab-key = { path = "/home/hadi/.ssh/gitlab"; }; gitlab-key = { path = "/home/hadi/.ssh/gitlab"; };
jack-key = { path = "/home/hadi/.ssh/jack"; }; jack-key = { path = "/home/hadi/.ssh/jack"; };
ovpn = { path = "/home/hadi/.ovpn.ovpn"; }; pia = { path = "/home/hadi/.config/pia/pia.ovpn"; };
}; };
}; };
home.file.".config/nixos/.sops.yaml".text = ''
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
'';
systemd.user.services.mbsync.Unit.After = [ "sops-nix.service" ]; systemd.user.services.mbsync.Unit.After = [ "sops-nix.service" ];
home.packages = with pkgs; [ sops age ]; home.packages = with pkgs; [ sops age ];

View File

@@ -1,8 +1,8 @@
sshconfig: ENC[AES256_GCM,data:/sDTGVeYRjxF5Epp5kmVS0ScSYOqOs2grX0+Ap8HJc8CQftpNOYXNYdEyqLDMc5g5ualaO4iKg4sQ76J4j9ZPugt4iprIvOo2Uxmu7KRU47Z8SNwrrMNpv6x/XA2P6r261e/e/pOHyrmiFfV/I5Km9IwGqY5TWbEhvjx8qyRO2bQDIdffI1L1ZWJGC9ZOZ4o5RJCr2xB+qxLLI2pl8qHZhvfZlGHnyHw5ne0RfAFubIrW4nQJTamoaGHZqWro4tVSfXAEb+9IsYCc1aj3MehVdV8PUQ38/LxL2MAQTt9bs7sHLf9DmxZ6rGPWmpJ+IRoQbP1PA65tobFOd+Kf13XvWymNUcQpQFHDj0vpvDONxIikO+vj2T7SteRRPy+38UPdB8jrHfQ1JrGbxUQIrWOWeD3S44lINmquIMclJQ26zf6nvklXR7xCuzNAvmjublsnYK+CGDkt/ap/kDD7nCuQYYY,iv:VX55dyt2N80LJPDYoUES7ZWJjlqVyQrUQWvOQ/yItBc=,tag:6NlHwy0SqJ40+ltQHzmX7g==,type:str] pia: ENC[AES256_GCM,data:0bnhHeVqKSLHVimd78a94ShHlO3+LUoZ4oiKD3cnBYkaZsw=,iv:S+/IChlFlqdI+PyFF+Ti4AJUkch2MS0qKiqHL1Q3RMk=,tag:+v2kV70ou84eIc01dKnAhA==,type:str]
sshconfig: ENC[AES256_GCM,data:wktwwpHsd6u/A5ti0RmWZB5qGO5Ok0ly0SucjBIUxIfMEF2b8Cbmyg6nBqqELEDo7GQ8Hlvpxa1Pu7ajgXy35HNupb33KSXMLofvxCoyfC9UbzT85nHgGpE5kGv9iTpiuBsaDTAL9UCBcEaJED8xbUIUG3RME1m1Qqi07081mtqY7xR53QgaUc2w8ATCQ1ymiW7xZ0IbZw8G7RWzV7AXMpC1VOgr1NFgvUfLs4L/1PdG40fYwFaF1BcGtzUnkeZCdeAnMWj55GI5+6OX80HYuIgPApHfjlgRVaQ2c6Utsdc2wqekkPut996nm6bGCpld3JlKL/VXnsnhJoKgfdulL2o8uDYypcacYwTXonKsHqXX4tkhniDsyB6PA0Ty/eXrzwbsjD/yTcDHDJX2Xy594nRgLDM+VvyVosH7WhIDcMrk/RpSbBB2T7mNORI0VlLQFdMX2Rc6b6X/kBbd78ZoIthiaiZdgRpX++OGbwr9Fky8ml88,iv:x8aekarsRkyMmU1GjZt9El8dS1B51M6Htv+68yfVB/o=,tag:y3TkpEVf9TSIi3iK5JqilQ==,type:str]
github-key: ENC[AES256_GCM,data:xUgFMlBo8e+3eXqNscxbby1dWug3SgUagDiNUe/IGVbU6cczkaJ3uOaB0OuRBQ8AYhOLkzXj0pIKjUrElHwmYrhURtS1aF4SFEGJsjhhobNA//j3E2/5/nLVjfco+lRzyHdwmsNhEUCqEhsXrrodJMb39H4b5oip3z0rjc729YveiWUKQxXVZVPurp3nq9yNnix9R4CA6XYFRW6T6MNqgPD5qhbcDlhxLb/SN+uI5h+5eZIS24VDWlKaTaCLL5KLhZmfuA37SquOQ+edi9Yg8MnfrZkMrp/3qmAjP2rSQLMOc4QdQCLQBQSf0/snpydgLwY+FoJmMSztwtkqUdIZWOfDUJbJxegEOrAR68jLTNbp+GYiDn3thtOZDiK5p/M1amjCT+A9qeFMed5WS+aZHNTRbR9UcfiP6+48MGZFt1mr7q+/CoL04/DTp0w6tUf6/SZD31NvTJDqngkhpc0ZH9Dh5+2JcnBWpq25AM36kZTn1hIQCLNTr/oGWZXSLA2tksAhQCaUcFj4IIh6Bl96,iv:GEJsAs5NriwENYTV/VShgJF6iMmrtTwNiXOvfXyEP8E=,tag:nfZgsFqaet075GjQAoVZxQ==,type:str] github-key: ENC[AES256_GCM,data:xUgFMlBo8e+3eXqNscxbby1dWug3SgUagDiNUe/IGVbU6cczkaJ3uOaB0OuRBQ8AYhOLkzXj0pIKjUrElHwmYrhURtS1aF4SFEGJsjhhobNA//j3E2/5/nLVjfco+lRzyHdwmsNhEUCqEhsXrrodJMb39H4b5oip3z0rjc729YveiWUKQxXVZVPurp3nq9yNnix9R4CA6XYFRW6T6MNqgPD5qhbcDlhxLb/SN+uI5h+5eZIS24VDWlKaTaCLL5KLhZmfuA37SquOQ+edi9Yg8MnfrZkMrp/3qmAjP2rSQLMOc4QdQCLQBQSf0/snpydgLwY+FoJmMSztwtkqUdIZWOfDUJbJxegEOrAR68jLTNbp+GYiDn3thtOZDiK5p/M1amjCT+A9qeFMed5WS+aZHNTRbR9UcfiP6+48MGZFt1mr7q+/CoL04/DTp0w6tUf6/SZD31NvTJDqngkhpc0ZH9Dh5+2JcnBWpq25AM36kZTn1hIQCLNTr/oGWZXSLA2tksAhQCaUcFj4IIh6Bl96,iv:GEJsAs5NriwENYTV/VShgJF6iMmrtTwNiXOvfXyEP8E=,tag:nfZgsFqaet075GjQAoVZxQ==,type:str]
gitlab-key: ENC[AES256_GCM,data:6271Tg7LIJsXAw7Co32vva+iUWv+eRAfVfXaGkoirHxiPTAgZfq8yDpGJwti2D/aFnLvbURcUgp3B5zy1aURu9puXi6QMu3orJOE2Zx0dX3lyeHyIhOZ1hAWsQxwBDkJYODuMZbIKHNrF26Mkk6smFF9SrGoADZGxY7XSou/iopw6yrLvQAXP6lN55PQvoP5/ek/QzKNwjJAbAjp7FjjtPqPUbUdj7bfIfr9avs6gpRYnRzb2H3auyhb5qvyuRWnKu4+FeZUofC7HnfRU1eSI8UzG49Rg4f2b1Xqr0JtsjvEmuRx7lbptINXEAjW7zaSZ2B9NgotWPIzkNZRNZkuTEaOulBf5iH3wJ9GM1FcbUu2gpCt6y+CMIk5QkVvETYtKuALLbcPx9/sc90doiH1411LeKQCs5l88BBILG9KPkKmXiGGUVNxzFtjbRYQIUEmmyl95kPPEdCkkzGzHXNfE3F9HRu4MCGKPK2yZPZtCXd3Jp1b21wKSIRNYqLqxru+J8eLSljd3czO0SuTG/Vx,iv:E+y3aVLaiStlPLTQBqyfJuEXtAQyOvDUYS+XfuOHuA0=,tag:6d1IAsGcmcpgL1pE9dDcbw==,type:str] gitlab-key: ENC[AES256_GCM,data:6271Tg7LIJsXAw7Co32vva+iUWv+eRAfVfXaGkoirHxiPTAgZfq8yDpGJwti2D/aFnLvbURcUgp3B5zy1aURu9puXi6QMu3orJOE2Zx0dX3lyeHyIhOZ1hAWsQxwBDkJYODuMZbIKHNrF26Mkk6smFF9SrGoADZGxY7XSou/iopw6yrLvQAXP6lN55PQvoP5/ek/QzKNwjJAbAjp7FjjtPqPUbUdj7bfIfr9avs6gpRYnRzb2H3auyhb5qvyuRWnKu4+FeZUofC7HnfRU1eSI8UzG49Rg4f2b1Xqr0JtsjvEmuRx7lbptINXEAjW7zaSZ2B9NgotWPIzkNZRNZkuTEaOulBf5iH3wJ9GM1FcbUu2gpCt6y+CMIk5QkVvETYtKuALLbcPx9/sc90doiH1411LeKQCs5l88BBILG9KPkKmXiGGUVNxzFtjbRYQIUEmmyl95kPPEdCkkzGzHXNfE3F9HRu4MCGKPK2yZPZtCXd3Jp1b21wKSIRNYqLqxru+J8eLSljd3czO0SuTG/Vx,iv:E+y3aVLaiStlPLTQBqyfJuEXtAQyOvDUYS+XfuOHuA0=,tag:6d1IAsGcmcpgL1pE9dDcbw==,type:str]
jack-key: ENC[AES256_GCM,data:VfCl3wH0MMBc8QDyjLDFeSvzSEsf7uGpfJvRjFrmjW+bPRUXBpZhJV8a9VQIAz7z7zZXvzARMfCeI0ydyC57CW81GH5/H5pneJ4b+xreINjVfdLbL1nC1thelo/O64jda/L+xVKhgE+QQi8/zt4JmXGghkP+74nYcTTaMpmcbgWw354J1ybXqyCEY+88nsJ1d2s+M7M2bplx4fGb7sLUs6sqdsad3sENzhH/0HQCFXreHTtgsLbIs8ccmdRgFNKM8/wD0OoW76rOQsJoA9JY4yOTQNVoX5M8+Olj6+wVlt6QBrWrYRuEztGnHrHvzxiHXtmEkMwVNfoPpEflQyRYRa0rVp/66REOkMckGx6/LbxKFgrxnifRlsK3kWd28v2bRGVQOghUluYUtVkaJ+eh6o6ik0NQKx8/H6BznBSDE6MjDwbLv434LHBfDtAqhWN1eMbOlunFivsl5Hb/6rl9kydHlcCS6FY8cUHoKQ90gDaUuDrvUifwmdO5hU0GH5tgvGi1ReK9ndcpQsrHptG6,iv:oC1xU5Tu3The105VYRmxIw4kEwDoqe8T/EH6mmqpqwQ=,tag:Pu8c536u6W7ALrqjRsvXDw==,type:str] jack-key: ENC[AES256_GCM,data:VfCl3wH0MMBc8QDyjLDFeSvzSEsf7uGpfJvRjFrmjW+bPRUXBpZhJV8a9VQIAz7z7zZXvzARMfCeI0ydyC57CW81GH5/H5pneJ4b+xreINjVfdLbL1nC1thelo/O64jda/L+xVKhgE+QQi8/zt4JmXGghkP+74nYcTTaMpmcbgWw354J1ybXqyCEY+88nsJ1d2s+M7M2bplx4fGb7sLUs6sqdsad3sENzhH/0HQCFXreHTtgsLbIs8ccmdRgFNKM8/wD0OoW76rOQsJoA9JY4yOTQNVoX5M8+Olj6+wVlt6QBrWrYRuEztGnHrHvzxiHXtmEkMwVNfoPpEflQyRYRa0rVp/66REOkMckGx6/LbxKFgrxnifRlsK3kWd28v2bRGVQOghUluYUtVkaJ+eh6o6ik0NQKx8/H6BznBSDE6MjDwbLv434LHBfDtAqhWN1eMbOlunFivsl5Hb/6rl9kydHlcCS6FY8cUHoKQ90gDaUuDrvUifwmdO5hU0GH5tgvGi1ReK9ndcpQsrHptG6,iv:oC1xU5Tu3The105VYRmxIw4kEwDoqe8T/EH6mmqpqwQ=,tag:Pu8c536u6W7ALrqjRsvXDw==,type:str]
ovpn: ENC[AES256_GCM,data:dz42g5IQ9FvXkE/yDfnPFUgZGfuboko3oTLtFHHB3T1+dLSbkhSLEpNM6l0FTJwef9cP2fn98JjeoiNkhnCAyOJvdnmA6KPJhz1RQH3j+lt4IPgYry3uThZvxPCDWTSbS0JwnQua/iNGeeX90bAMalqLJtP25LrW9dp+Tu7TXgqc+qs7/owBAdxu2r96ehVGu63x+JB5nDWRxUOmOjqmkaX0B37PNQRhfAyWKGN3ELSuI2LhxuRHRee+pXKutr2wuQNyCsUT2Zv+kdjOCR2S50sWZqdYV7t1Vw/QzIUyaV/giMp07u/tCJxyz4axZpIc0WuZJGV+Bbbh8hbJchkrkqXbkyt2RsL7v+ylrnABLgjJAn7cZK6rR4/yn3WaZ58vicLYqgdUVwxWm2C6L2v4LqkW2ouuL1ibiYPLGrFchdPWnAQklBG7QMO9OhbKRu2ibt7+Ltu4hlWQIr6NFVxraNihzWYVuUZHHv5yByxM9qSNVm9GwozxXA3g/SR61akIK7iclV/A9fec+BInvh1FWBcW2AoYr7UfcwnKSSWtBZh+6Lj4/ZfORVWuEggj++14jhEr5pc1Qx4GRNeCAr7/FzxW4z6P29iTgCmRZ/KE2WdYrid0eVj2fC/P9XP+Ou/9NbJFp7cHYWM9SNIRNAS9h7vkhpsyp+3t+2q5NDrBTZFVAgmQNX7eu2TegE6YTExmnMFf4HCfwpre9ardwDNWdFjVqkqynYotGK+jg80YnlxnnMwhn2xYYGCebL/N19dhAdAHW853NftIkYR+rBbfBGhtj4RPWGqRFzRhOCVuLmexniHjtjJrJJCz0Eh7Md9PM7jYxUpVcpdC3W+Hg7oVOooc67hX8hiwZf8I7evxNxWmTC2tPN32fTUZexvwQCl1SSdg5vJGhhtdu1VkIZ5n9rdhBmeMQHRTa+woRAIVxZ6Y0dt41WbHN6WcVkHEuOZvDLy4+iZP5DOQFUZ9jEr8gDCTFS920Pguv2cZOFAN3bfSr4vRq72vrZuYAuMShTgPaMruNaOHSWOLhEdg2VQm0ce1cfcR0Dj9wyAMuxBzo7a0+N9ipmD6aUrjh6dTE+rtyClyLsVDGCLA9N2cqAVghdXIauvzpDq9OGwAQeL4+BtXlkiRihTzrc8oNydEYwO1ZTFiUhZEOgrpL1/pCr+jf1QHTXeV07XswySUSOerE2RIerp9FMxvf5O1Wwhw0eowBlgLTTG4RtafBTQGQ19JSTOTJQcBhpycFzRgwxrXGRBXNrhUqGr/bkWGaktEDtOQ0PzNmc1X8Cgn6+Z9mPSfMUrTuhak9MjGVqtBYc/Kg2kSfLoFiIxaX5yd64hlznZBAQ7jinPVAKeAPtIt13S/6gKQyXPePn11lsox/PY/L4HkryrAnbT5nnl7ISfouQzenLh+zTxNxihabviS9FXwyDgzFvJb3VkBroX2w6YaWs75254qZ2txzrNTX93LgnKwkD6cWLdeU6FNW2DB82R2c6oxh9ewape5QmFzhvjc584S3Uztbwr/dPMwDdmyO5vP+llDRfQdxXJ7ax0Z01L4PhtBMe+qwU709XKkVQCeno+g3/4tDFhfp4tCKhCHRj+8x9lYSQPpTm3GozChpG0QFbo+y3rjeF4CVHqA80EJKBkc8ikykhDcQrMwnL4rVcDAPLycOzI4aF8HPdcUA8lGSzahil1MrExUUaexIua6f4By2tRCuAJ2ScnF6IikW3z5gRNKo9o+1Tptg1t+iVj7kj7PWgGJIJRpOaw57t0goeCfSUE+9NPnjiWcAOUTzeV0/j5MX8sArTaXaKsBh7HgrPlbL9w1yC7Ai+zHUT1ajIH/5U91v2mOM8stUifrYZnG7/KKNt90eFgYQPcsM3UZlTR/2nQpHPmPkw9Ar2QY3t/4w9/qAyBdtiN/B9n2adtr4pPf88bTLLPS+7yiV4/7yHqrzKgXQ124fQDNCY5nNY5o/KmjHj+YCgHlkfTF9tgaF6rDjAJXuXgfVIBRuFtXttL1AHWXY4WYJX17PX8gMHt/JugqKE6BF/N01XDKH1nAMPHDlc7zCJvgtGrI7P0+vNJIE/M37014Qw/xk/KeDj/HzXNUQL8tisf4pc1PbKOIJpHd7Ab8lR1h0TPSyntl6zNgAtfXDL031/tUr61VknkPDsWAVMiVY2UUvAxP8cdeiCUl+qjiYGrB8jHrFyVifSks0atjmWBH0QbFDHr2GEi0kh881Do7IwebJpAEEDMk+p4WqqKY/I+TpiHm0hAZTDsqtsRcVWXlot4n4OH+Z+Wjqdos6K8XtCWNz0VhgYNQeGOmroN6ruk0+3+lpikDUaCMl9UfQhm6Ba4KPZWLnGuD4OOqLbRj1itUWAvU9Xounp8yqr7u60VjuL0Wge1C/Ynf51Nhe1dZWWESCbutZu65NNnnyj29UDDYzbnwpqRnbOAb6OV9b85jhHaoWy7XTSw8CW0o9OtH++0f8+6g8o+XutZdqc+ihP4O+TvT3Ly/ohaatphzjz2MNuZ03LcnGOr2Q3zOzunf0kXy2cXyxfWvEuvLfhEWpN7GD1kRVyL7NVutzkWR09TLZaZDst1RxJiKaxQC6GNjOUMTF6oBHTWc7VAmOoxTlyhaABt+ZHInd9KX41d+wo+vg8UAI8+H56Sy4fva/FSwxlJyMgM2GuXk312uGfM/HOFUzUHDOq7MwbxekVH71LBPetBxZ1PdIoAXiZLl3GC0FOTEukzqFEipKJuWknBqeuYKmNxQa1VwrmC0575mofV1AG71AK4vz/SHWQ4giaws29+HYXQCT3GWg54g9PHX++vaJtWZd6/jOTeehMbqhqNi8gfk24lWCBSzxCzVVWQifLxVaYoitMkhhQXSgg+ZWS5w4mG9S5T3ZJImEy+ClXxfkbdatpEFWulChWO3ROgPxX+2OtvAjx7hS66MvNirLC2h9YtV/Ki35SLaSQ6QGRtrmNRDd+hBO1bObTYmZYolzpJAnwym2/qPsdGZHYCJISF1zC7n1jKjf60aI1k8sfx80wivMgpFYlS22ktaqqyK23a1I+FzZro5EhpIGidFmg4of+YcMqzhhYQFcT60JThFoW5lzxmGZbC3xj4sZvFZHcMoZJWJhBJJFWovK5CKqJ+HrMkp3ubVDMnUU+A3n8eqvhtFlqBx9gvWjF5szs0FASX4L9P1/TNXwlJtlXSAw2Any8YpF5fqU/IpFnpPEquTCF8UfWwbswqA1tyeurcnIw+UUa222iNTCa0d1//zTmiQr+Qo5OJAEwSU35Y/RZGhDWZiOmpOrLM27vflYcbefrDR7AJBtLZCYlxD23QQ1zgfT9Z9f2O/XnWk7yistPVoMx47itPZyqVH5pttlNxHE94XwVjtp6W3hvRYPEQfAKOrZAXgOZmMqA6ykdbOPyZT5y6/xTo6Z8uJHvJe40XDPQgkm/7A3kimPTKXgXtsGT+bmpHubU5kUFKz+fMTRceZLGuPRbW+krWtQVqJD5wTn26OznYALEfLfSYGqSc9nfBGro0wJOEuIEnudSNZQxIOt0ZOR0VDCCOeZnyOwZUPV1o6+3a7v/JLse3y5DUhzo2vRL61bOrjaM45wYgSEiUAJK8tZ2NWUUi64Zqg0ipKWOp+mDtAVor+jCA8PrK0g5ReAXN5vwStAwXSQCwlDV9KD4fP5XkHZ0tESBWtpOvgYAy+Hw7LpfWTWiNSOo9WAj5LFKeYkVtoginSv+1FsYroNM82vCU3x+1X1C1HkjLXuskNiRJx1IjrKzqkPOIEw2CxypwmHKrP49OBiZsYdFf5zqc1TbkaoEx67Jqy+49iXXBUHg+hOOIL/PfGk2/pgiMIm/VrvYs7/592OPxzzQUZlmWc3tC2wLhWpCbxnraDvQbMibLVAiqyltvstR60XirRbXLdNXEVvhQ+wa9k4tI4yoQkBnejpuFxgG1/9cbU+GyR+T8t0DWcpdkj3f2movp0ZiJXmkCB+lx7QrWThcrU81gGm3MKspckvMwsFyFRt54oQIiL7wLt6zlbyN5f2tHGbfjua0UPKFRXkrO9al/BjVoNvzO+WogmS6SNMTEPDWTEv+MXY5AK53doPTMLHxM6ISy5C3SkojUczXVZf+YymFGZLXw6BtS4x28Oc1Jak5+Er81rY09CbRS2/SvwToatjY6SviVEuOYVBwln3UtDF385shlhsHtks89nvdccwUvznFhqg/9vZlvJQuSN4HEPxQ2bWg==,iv:24+CrCdb5f04Uv5aM8k616hyeikbFJzptERlb9tl+U4=,tag:mPOcv3EfaJrEHxBwYRXRHA==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@@ -18,8 +18,8 @@ sops:
cmVxVC8rVDlWMUdZaGw3bmdOaWZGS1EKYahBlc8XpB5UdKZQkvxbLcKQ/xkFJjWo cmVxVC8rVDlWMUdZaGw3bmdOaWZGS1EKYahBlc8XpB5UdKZQkvxbLcKQ/xkFJjWo
FSfQWnjhe/a7BJtJEcKZkjOQU0mYqlSu+uT2RA9diCQeRUJPRF+nAw== FSfQWnjhe/a7BJtJEcKZkjOQU0mYqlSu+uT2RA9diCQeRUJPRF+nAw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-09-04T20:00:20Z" lastmodified: "2025-03-19T08:38:27Z"
mac: ENC[AES256_GCM,data:xKGnwLEpwzFrG7Xl5gaGTNL/0/z3pOfPBpEZ0rUqgMplc4UZ/LuBgc/2/ccaqoaJcou1IYYGFJGKqpAVEyLuSSWuvn4H63spbkt8LgZIToN3lxWa3EFB/4Xc2cCwUj9c6vAYaFQbnZ9Mm+ZsITluPAuLBHD1AWPPBlWOQbHbn4M=,iv:tE0WEj0YwsY2Tab8+AKNvIjU3dXLN5Bz/jYtG69x/Ow=,tag:a5kp6VqPa0hNfWK4T3SEZg==,type:str] mac: ENC[AES256_GCM,data:ZLljLyyibu9KMdJIwf9DsdKr4aVNWIKOneU05iPEOM9paLw/cSXVYqbfmj0i7xwvpZEin6QtUrUmIPepDIRMtIK8chmk7U5Lqxzp7XA0/IbXw0fkGg3+NmauHUGdeb1BJBLTT4AD+W0aqSayT9AvE40JOXMDzOW50WdUPzI5Ou0=,iv:6KdKZK0RoCkfTeO4oAUS1jRxcGZFrlTIXwXothQwsYE=,tag:VFL+TEjLZEue/hT1nl9f0g==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.0 version: 3.9.4

View File

@@ -1,5 +1,8 @@
{ config, ... }: { { config, lib, ... }: {
imports = [ ../../nixos/variables-config.nix ]; imports = [
# Choose your theme here:
../../themes/nixy.nix
];
config.var = { config.var = {
hostname = "nixy"; hostname = "nixy";
@@ -20,24 +23,14 @@
}; };
autoUpgrade = false; autoUpgrade = false;
autoGarbageCollector = false; autoGarbageCollector = true;
theme = {
rounding = 15;
gaps-in = 10;
gaps-out = 10 * 2;
active-opacity = 1;
inactive-opacity = 0.89;
blur = true;
border-size = 3;
animation-speed = "medium"; # "fast" | "medium" | "slow"
fetch = "nerdfetch"; # "nerdfetch" | "neofetch" | "pfetch" | "none"
bar = {
transparent = true;
transparentButtons = false;
floating = true;
}; };
# Let this here
options = {
var = lib.mkOption {
type = lib.types.attrs;
default = { };
}; };
}; };
} }

View File

@@ -0,0 +1,35 @@
{ config, ... }: {
imports = [
../../nixos/home-manager.nix
../../nixos/nix.nix
../../nixos/systemd-boot.nix
../../nixos/users.nix
../../nixos/utils.nix
../../nixos/docker.nix
../../nixos/tailscale.nix
../../server-modules/ssh.nix
../../server-modules/bitwarden.nix
../../server-modules/firewall.nix
../../server-modules/nginx.nix
../../server-modules/nextcloud.nix
../../server-modules/glance.nix
../../server-modules/adguardhome.nix
../../server-modules/hoarder.nix
../../server-modules/arr.nix
../../server-modules/mealie.nix
../../server-modules/meilisearch.nix
../../server-modules/search-nixos-api.nix
# You should let those lines as is
./hardware-configuration.nix
./variables.nix
./secrets
];
home-manager.users."${config.var.username}" = import ./home.nix;
# Don't touch this
system.stateVersion = "24.05";
}

View File

@@ -0,0 +1,30 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules =
[ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/350cf109-5380-4982-8a9e-279a9275ee18";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/DD15-1125";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
}

47
hosts/server/home.nix Normal file
View File

@@ -0,0 +1,47 @@
{ pkgs, config, ... }: {
imports = [
# Mostly user-specific configuration
./variables.nix
# Programs
../../home/programs/nvim
../../home/programs/shell
../../home/programs/fetch
../../home/programs/git
../../home/programs/lazygit
# Scripts
../../home/scripts # All scripts
];
home = {
inherit (config.var) username;
homeDirectory = "/home/" + config.var.username;
packages = with pkgs; [
# Dev
go
nodejs
python3
jq
just
pnpm
wireguard-tools
# Utils
zip
unzip
optipng
pfetch
btop
fastfetch
tailscale
];
# Don't touch this
stateVersion = "24.05";
};
programs.home-manager.enable = true;
}

View File

@@ -0,0 +1,29 @@
{ pkgs, ... }: {
sops = {
age.keyFile = "/home/hadi/.config/sops/age/keys.txt";
defaultSopsFile = ./secrets.yaml;
secrets = {
sshconfig = {
owner = "hadi";
path = "/home/hadi/.ssh/config";
mode = "0600";
};
github-key = {
owner = "hadi";
path = "/home/hadi/.ssh/github";
mode = "0600";
};
cloudflare-dns-token = { path = "/etc/cloudflare/dnskey.txt"; };
nextcloud-pwd = { path = "/etc/nextcloud/pwd.txt"; };
adguard-pwd = { };
hoarder = { };
recyclarr = {
owner = "recyclarr";
mode = "0777";
};
wireguard-pia = { };
};
};
environment.systemPackages = with pkgs; [ sops age ];
}

View File

@@ -0,0 +1,28 @@
sshconfig: ENC[AES256_GCM,data:R54HVxqAyj9yGO/AYL8p6cnXgYxkQKW9XveHlBMTnDXBJ7r/4HgnefdymprnXmdlbNWcWrRqmaLEuzJs/0BfixXfMvmGTUrmJ0ASVuDrz9k6rOLADAKFikQh0dib7NU4JmPgmUzMncXc2WuCd3BCG3kwBQ==,iv:Ro9FA+MzTAp+ERQMT88z8ioCox/dTj2vWcqCDOSLag4=,tag:5XiXIyz5/pjGFOB5ZjdOVg==,type:str]
github-key: ENC[AES256_GCM,data:NRYhcBIwGJEV13+YECLR+2IErsn/7clbnkx0Mltr7dQajSb5WHZ3QDH0KQPylEHhplE5IVS0h4I0z+Pb1B0UteCxFmJ5wZq+2BKZkvE7G3dojqBpgHcVqJV2GLEJkRjlHfRgsbq/OBe8xcsPh20P1KUyP0WIwVbpt+9dFWGxEGYkp2uSyuBIJ98kElt0zuVgl7WcYoDO7v5WmGzZfla+yZwURvMk8zcM3gopo+4KL6YnYUs+UA3VlBBn6VK4Nvbqy6X0R0+ZA5HHAXg+OFgGmfWnENZmsyQJHXEchGGgEldzThkQ4r8yMkgN/ax+AGouLyzbITapGE4sE11FFgL6Hmp4pSXxl3UAGF+cvV5pIujbb28CXmSPRMyYpoNxI93PSYz/txAzE6Cr2dgwxR4zpMelv4i6IaGnY8NgpY8jp2Y6C0uuJxJCN0RtnjQw1rM2uRnm7vMGyU7XXz9DEVfGnYpTWnykXsEjHE5DVGy80ejYQlc6dtmf3vdTWpt+YYdCPw8/cd0PIx2D6geh1c28,iv:wl+RG24mXYMklD8CBGXVD36DMhlWT/7zh8ZMvr7vgOk=,tag:OJhqF8PoXotr7IsyFW6q1g==,type:str]
cloudflare-dns-token: ENC[AES256_GCM,data:JIXUtVDpYS9B74W0ooj50kd4v2+PX+FdF218gvgaS04rYATu4N6w9KEFPfdQqLjUmVihzV6s/IR1fg==,iv:AlbQ86kvFQbetvmFwt/hEyUcqKTI+XzL/NvSMXW9wm4=,tag:1JQeK4KrTDa6Kz+JhWxkxQ==,type:str]
nextcloud-pwd: ENC[AES256_GCM,data:2oqsNceKuwGscBN2VxAK,iv:FoSfHItgeB91fG38zqtuQzayvNjNPFQyZjZlpUq/eic=,tag:MoEpAmTj+zqVu6OLasD4kQ==,type:str]
adguard-pwd: ENC[AES256_GCM,data:QavwLWENAURnRrFwiLntkiM=,iv:bxdQfBxNL5rwUr7CEKbwXtv5mUUXZHhvyqQL2KoPwEY=,tag:T+cSyzbGeo7E5smSsuFlHw==,type:str]
hoarder: ENC[AES256_GCM,data:8A3eGqIlHJ2XpC2OdMNBXPm+5BdfMlOfTSgiibPtM+SFyiPtGhjWQNmVCD9REf0P2C4pikZ3R7vtwyKpjrraaoSAY7ztAk9eqqikorIzD8hn8wbHz/y+Eko=,iv:ngoVgF348IxokWGQVpbpTGhdIwjOOA6T8qLb1wX6GEU=,tag:+v9HLUksQJ1e2vRR/5fzEg==,type:str]
recyclarr: ENC[AES256_GCM,data:XgQ5ZQHY/OKucvJGb6NQND9/zzi2E+W3y9gtQJEUL9uIUWbiZdEt9XHB7dMXl9MIjOjAlCNKIzUMXkgccKA3PbVgbaKUMh3oXmTVHVqmRHrFwCwZMAUTQeOvwgeYYHkw,iv:Fyb16m+E6ToRzC5JGKTxhPzFwhdqaZ9liWUtMGpQ9O8=,tag:fdlpq40dAU2UzOJTVNuHSg==,type:str]
wireguard-pia: ENC[AES256_GCM,data:TBbhTqKvnjSQu8Tc2QieLrIeP36JEcKMeJ2xMzsTrGSgKnyrnm4CUjSsluYpD5TXpt5z2BSQVG0K5XqT0c5q7N16jk6KyDAjZEHm9gMCWlywh2oQWxpjw8G3jFiiHkH055Me8jVtTUF4d+gpMu/LMA4TZlaCMjVEkcYoHsdhWRpKZWDs98D35oSVX7BEUgc8WIWtyDc1QjJ0Chi6Mw1+C9h3njLoLe/esdS/KV9nJSBB9OsSt11V5Dl5NQDnr+cV0CytC9vHDoYX9+s6ZASom13MBjs8SHQBsteQcboSB/WglO93NIA1VQ/hwDZnCQ25u89Z7oMVMR+NNQ==,iv:1AGrXUDY55wc60t489Vf+YUreiFeo77aAtj29EBnPi4=,tag:djY1xJqSCoIth7++ZokwhA==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5Z3MzZmoyVDRtRmd3amFJ
MWVvWlA1c3RFeVMrbHJQQmNTcG9ZN2tXSWxjClJ0L1psd1RFM1EreG1yNHdOYzZF
aXphL0lvcGNFTFFMbkNocGNXY00xdW8KLS0tIFh2YjN0aTlRazBXSktnQWx0L3BY
TEc5d01RaVFGNXc3dlljM0FTTHpENjQKOqwI+pl8UxVIVl43glnOYvW660/PsDGY
yefODJGVtHrOm3yeXC2xlTi3sFW+c5wUl2yPqddbvcBt5Ud/yd4iXQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-03-24T12:14:53Z"
mac: ENC[AES256_GCM,data:iIQADIb6T/D7Zmq+3egSQKqsEuCP66E9EO98IMgxLBc7trR8VFjHX6vZWkcOVQYUXaOq/LyYMtgwdQ+zfxmiu1/sfflRFDeYpvSjC2pxXARSTfsYq18BwJo8rnQmMm7A8NyQjzmpAjo8bCTgFlNXhQd54vJCIeJGmsZKeXDGHg0=,iv:XBtl+1ssfkuR3P1pQ6Q7k+neuzam9UdTAS+UJcvQqB4=,tag:5YITncXhThWIOMK7NLsv0Q==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4

View File

@@ -0,0 +1,36 @@
{ config, lib, ... }: {
imports = [
# Choose your theme here:
../../themes/nixy.nix
];
config.var = {
hostname = "jack";
username = "hadi";
configDirectory = "/home/" + config.var.username
+ "/.config/nixos"; # The path of the nixos configuration directory
keyboardLayout = "fr";
location = "Paris";
timeZone = "Europe/Paris";
defaultLocale = "en_US.UTF-8";
extraLocale = "fr_FR.UTF-8";
git = {
username = "Hadi";
email = "112569860+anotherhadi@users.noreply.github.com";
};
autoUpgrade = false;
autoGarbageCollector = true;
};
# Let this here
options = {
var = lib.mkOption {
type = lib.types.attrs;
default = { };
};
};
}

View File

@@ -1,6 +1,6 @@
{ {
security.rtkit.enable = true; security.rtkit.enable = true;
hardware.pulseaudio.enable = false; services.pulseaudio.enable = false;
services.pipewire = { services.pipewire = {
enable = true; enable = true;

View File

@@ -1,11 +0,0 @@
{ config, ... }:
let configDir = config.var.configDirectory;
in {
system.autoUpgrade = {
enable = config.var.autoUpgrade;
dates = "04:00";
flake = "${configDir}";
flags = [ "--update-input" "nixpkgs" "--commit-lock-file" ];
allowReboot = false;
};
}

View File

@@ -4,6 +4,5 @@
enable = true; enable = true;
powerOnBoot = true; powerOnBoot = true;
}; };
services.blueman.enable = true; services.blueman.enable = true;
} }

4
nixos/docker.nix Normal file
View File

@@ -0,0 +1,4 @@
{ config, ... }: {
virtualisation.docker.enable = true;
users.users."${config.var.username}".extraGroups = [ "docker" ];
}

View File

@@ -1,4 +1,4 @@
{ pkgs, inputs, ... }: { { pkgs, ... }: {
fonts = { fonts = {
packages = with pkgs; [ packages = with pkgs; [
@@ -13,23 +13,14 @@
jost jost
dejavu_fonts dejavu_fonts
noto-fonts noto-fonts
noto-fonts-cjk noto-fonts-cjk-sans
noto-fonts-emoji noto-fonts-emoji
(nerdfonts.override { fonts = [ "FiraCode" "Meslo" ]; }) nerd-fonts.fira-code
nerd-fonts.meslo-lg
openmoji-color openmoji-color
twemoji-color-font twemoji-color-font
inputs.apple-fonts.packages.${pkgs.system}.sf-pro-nerd
]; ];
enableDefaultPackages = false; enableDefaultPackages = false;
fontconfig = {
defaultFonts = {
monospace = [ "FiraCode Nerd Font Mono" "Noto Color Emoji" ];
sansSerif = [ "SFProDisplay Nerd Font" "Noto Color Emoji" ];
serif = [ "SFProDisplay Nerd Font" "Noto Color Emoji" ];
emoji = [ "Noto Color Emoji" ];
};
};
}; };
} }

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