445 Commits

Author SHA1 Message Date
Hadi 69a01839f9 change apps
Former-commit-id: 7aa07cde8e
2025-02-11 20:59:24 +01:00
Hadi 6f66b88206 Merge branch 'main' of github.com:anotherhadi/nixy
Former-commit-id: 4e438e9f78
2025-02-11 20:58:45 +01:00
Hadi 93e9a86212 update flakes
Former-commit-id: ca73bf3af3
2025-02-11 20:58:40 +01:00
Hadi 3283a0f705 remove resurrect
Former-commit-id: af79d8031d
2025-02-11 20:58:30 +01:00
github-actions 229faa0d10 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: c5f99341d5
2025-02-04 19:42:52 +00:00
Hadi 69f1612f06 update flake
Former-commit-id: 1f4be60931
2025-02-04 20:42:09 +01:00
Hadi 16a212afae edit
Former-commit-id: 43f27ff383
2025-02-04 20:41:21 +01:00
Hadi 38ff91f5fd change bindings
Former-commit-id: 2433d287f8
2025-02-04 20:41:13 +01:00
Hadi b750d6f30d screenshot to clipboard
Former-commit-id: e4f6f611d6
2025-02-04 20:41:10 +01:00
Hadi e394982570 markdown writting
Former-commit-id: 6f1bcbf4dc
2025-02-04 20:40:54 +01:00
Hadi 6f5c0f371e update flakes
Former-commit-id: 0e5fbb9ea5
2025-01-27 09:53:06 +01:00
Hadi 8079e378bc add mimes for zen
Former-commit-id: 7906679e9a
2025-01-27 08:36:23 +01:00
Hadi c05f40070b change homepage path
Former-commit-id: d694a57ae6
2025-01-27 08:36:12 +01:00
Hadi 3c5af99518 edit nextcloud notes path
Former-commit-id: 2ebed4ab9c
2025-01-27 08:35:50 +01:00
Hadi 180a6dedb1 update flakes
Former-commit-id: 406889a019
2025-01-23 17:49:40 +01:00
Hadi 3318bf045e update my nvim config
Former-commit-id: cd54511aa0
2025-01-23 17:36:26 +01:00
Hadi 43428e0c5d delete old modules
Former-commit-id: 5cc7a65ea1
2025-01-23 17:36:13 +01:00
github-actions 26b43a6201 Update SCRIPTS.md (auto)
Former-commit-id: 726bb896dd
2025-01-22 19:16:05 +00:00
Hadi 645c1c1338 update flakes
Former-commit-id: 57f9723b87
2025-01-22 20:15:49 +01:00
Hadi 36046e308d disable hyprspace, broken
Former-commit-id: d8a45d947b
2025-01-22 20:15:45 +01:00
Hadi bc8aa1eefd temp fix for nvidia drivers
Former-commit-id: b26a7b9dd0
2025-01-22 20:15:38 +01:00
Hadi a5980e584b remove desktop & pia
Former-commit-id: fd8f7de9b1
2025-01-22 19:41:19 +01:00
Hadi 4bbe1c1119 edit theme
Former-commit-id: 44a8ac06ec
2025-01-22 19:41:09 +01:00
Hadi 3799a28915 app test
Former-commit-id: 722efcf03a
2025-01-22 19:41:03 +01:00
Hadi 62c03d7d45 delete desktop
Former-commit-id: a030370542
2025-01-22 19:40:41 +01:00
Hadi 972ea412b1 open vpn scripts
Former-commit-id: f83370b4fa
2025-01-22 19:40:23 +01:00
github-actions b93d46004d Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: dbe30d164e
2025-01-21 19:55:49 +00:00
Hadi 2ea0a422dd remove systemd.enable
Former-commit-id: 8c92529ef2
2025-01-21 20:55:36 +01:00
Hadi e2954d2439 add keybind to toggle the bar
Former-commit-id: 141f6d8fc1
2025-01-21 20:55:27 +01:00
Hadi 3a87fa8cad open webpage to display wallpapers
Former-commit-id: 2fb93eaff5
2025-01-21 20:55:17 +01:00
Hadi ef639df3b5 fix hyprpanel toggleWindow call
Former-commit-id: 943ea80ac2
2025-01-21 20:54:47 +01:00
Hadi e7650132f3 fix
Former-commit-id: 4d63588ddc
2025-01-21 20:54:37 +01:00
Hadi c8ca262f2d copilot nvim broken on unstable
Former-commit-id: 2962bd8503
2025-01-21 20:54:28 +01:00
Hadi 8bc813900b add duckduckgo colorscheme
Former-commit-id: ed605769b0
2025-01-21 20:54:16 +01:00
Hadi fab8e510b6 update flake
Former-commit-id: c828520da1
2025-01-21 20:54:03 +01:00
Hadi 6a73211266 update theme
Former-commit-id: 5fab44846d
2025-01-21 20:53:59 +01:00
Hadi 67391b1714 flake update
Former-commit-id: f10612b1d1
2025-01-12 20:00:10 +01:00
Hadi 6d903c59f4 fix hyprpanel hide & show
Former-commit-id: 3a34579f35
2025-01-07 21:34:54 +01:00
Hadi cc9c9c9a57 flake update
Former-commit-id: 05aa21e311
2025-01-07 21:34:46 +01:00
Hadi 7c53a49383 edit theme
Former-commit-id: 5b4670d6e2
2025-01-07 20:23:59 +01:00
Hadi a177e123c5 config edit
Former-commit-id: 972490513f
2025-01-07 20:22:54 +01:00
Hadi 6a8fbf18c7 change theme & update flake
Former-commit-id: 868c3b4e4f
2025-01-07 00:27:57 +01:00
Hadi 9b32bd722a update flake & fix nixpkgs error
Former-commit-id: 8f3645996a
2025-01-06 23:35:06 +01:00
Hadi 785fc88903 enable the hyprpanel overlay
Former-commit-id: b1702060f2
2025-01-06 20:58:55 +01:00
Hadi 7bb1d4f48b treesitter ensure installed
Former-commit-id: d158c6160f
2025-01-06 20:58:41 +01:00
Hadi e3c89cdce9 migrate config to hyprpanel v2
Former-commit-id: d7dbea9437
2025-01-02 19:42:41 +01:00
Hadi 3387f719cf new theme!
Former-commit-id: ada0a0761c
2025-01-02 19:42:26 +01:00
Hadi 4c45e854de flakes update
Former-commit-id: 3941e15c5c
2025-01-02 19:01:55 +01:00
Hadi fce14f5b56 update flake
Former-commit-id: f6f203f848
2025-01-02 18:31:06 +01:00
Hadi 8988a6713c add a configuration limit in boot menu
Former-commit-id: ce32ac84fa
2025-01-02 18:31:02 +01:00
Hadi 0c3881a056 enable auto gc
Former-commit-id: 70baebf547
2025-01-02 18:30:54 +01:00
Hadi 1295ef51f2 update flakes
Former-commit-id: 87cf8f6bfa
2024-12-30 20:41:31 +01:00
Hadi 3dbdde790b remove GTK theming
Former-commit-id: 8ceabe0a8a
2024-12-30 20:41:27 +01:00
Hadi c50b2f6fb7 hyprpanel v2 migration
Former-commit-id: d4db565e46
2024-12-30 20:41:20 +01:00
Hadi c30894b82b removed some imports
Former-commit-id: 4551530344
2024-12-30 20:41:12 +01:00
Hadi cb703b7ac6 toolbar-items
Former-commit-id: a957fe856c
2024-12-30 20:40:38 +01:00
Hadi 2b5e649877 Merge pull request #11 from hcw9iu/fix-btop-gpu
Former-commit-id: 50b01f235d
2024-12-22 23:47:53 +01:00
william1209 8ef64ed165 fix btop not show gpu
Former-commit-id: 2a50a895ef
2024-12-23 02:38:42 +08:00
Hadi a52f208ed9 update flakes
Former-commit-id: b6014cc3a1
2024-12-20 21:49:52 +01:00
Hadi 7b3501d595 update flakes
Former-commit-id: dbfc4887f0
2024-12-17 13:55:08 +01:00
Hadi 5d98434404 update flake
Former-commit-id: 277bafd297
2024-12-16 15:47:02 +01:00
Hadi a6b54dab72 update flake
Former-commit-id: d1a14bb22c
2024-12-15 22:01:15 +01:00
Hadi 9a089a473d update flakes
Former-commit-id: 0d1ff6074f
2024-12-12 21:38:50 +01:00
Hadi 3a31822da9 Add typescript LSP
Former-commit-id: 1577960c51
2024-12-12 21:37:18 +01:00
Hadi b4cc023466 Fixed!!
Former-commit-id: 46bf6c9cb3
2024-12-12 21:37:05 +01:00
Hadi 949be45201 update flakes
Former-commit-id: 65acc4d2da
2024-12-09 10:08:01 +01:00
Hadi c1334bbcbf new theme!
Former-commit-id: 89db4101fd
2024-12-06 17:02:23 +01:00
Hadi 6ff7cfde7b update flakes
Former-commit-id: dbe720e366
2024-12-06 16:49:51 +01:00
Hadi 37425c8fb7 remove old temp packages
Former-commit-id: 275178807d
2024-12-06 16:34:02 +01:00
Hadi 6f8ec3d66f add desktop to .sops.yaml
Former-commit-id: e928fcf59a
2024-12-05 23:16:46 +01:00
Hadi 593fb748d5 add secrets
Former-commit-id: b94c673084
2024-12-05 23:04:30 +01:00
Hadi cab201daf6 add desktop host
Former-commit-id: e3e5be7b73
2024-12-05 23:03:57 +01:00
Hadi e16264a74b Change zen input
Former-commit-id: c79a153478
2024-12-05 22:22:01 +01:00
Hadi e706f743dc Merge pull request #9 from underscoregeb/patch-1
new zen url

Former-commit-id: 88c1d7f6e0
2024-12-05 19:23:36 +01:00
geb 2fed544807 new zen url
Former-commit-id: ad8a0ccf53
2024-12-05 08:54:14 -06:00
Hadi 463fc6b83b wallpaper change
Former-commit-id: 30bd93f973
2024-12-04 17:24:13 +01:00
Hadi ce4287b650 flake update
Former-commit-id: a16a9acd49
2024-12-04 17:24:09 +01:00
Hadi 815f76c51f Update flake
Former-commit-id: b3b191831f
2024-12-04 09:19:18 +01:00
github-actions 23161537de Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: 8309831a6e
2024-12-03 21:46:55 +00:00
Hadi 156826e625 change cursor
Former-commit-id: 4107af5343
2024-12-03 22:46:42 +01:00
Hadi 3ba6ba93cb change browser binding
Former-commit-id: 4a42049faf
2024-12-03 22:46:38 +01:00
Hadi 38d7a0a326 update
Former-commit-id: b8920ade11
2024-12-03 20:08:04 +01:00
Hadi 267b8f3ef0 oops
Former-commit-id: c8c8738bfd
2024-12-03 20:07:49 +01:00
Hadi a740adfbe1 Switch from Firefox to Zen, ...
Former-commit-id: 7add142ab1
2024-12-03 19:36:15 +01:00
Hadi f9e9d2e21b update flake
Former-commit-id: 52213697ea
2024-11-29 22:03:36 +01:00
Hadi e3896ef257 fix nixd encoding
Former-commit-id: ea3d436c6e
2024-11-25 10:24:53 +01:00
Hadi 2979638534 put bindings to hyprspace file
Former-commit-id: b991c66c2e
2024-11-25 10:01:58 +01:00
Hadi 4256b93eb9 move hyprspace to file
Former-commit-id: de8de47de4
2024-11-25 09:59:45 +01:00
Hadi 0144ae28ae Firefox homepage
Former-commit-id: cb041ad452
2024-11-25 09:34:08 +01:00
Hadi 4640a241e5 Firefox config
Former-commit-id: c8aff9ee96
2024-11-25 09:33:56 +01:00
Hadi 1377248513 update flakes
Former-commit-id: a6cc144770
2024-11-19 18:16:55 +01:00
Hadi 2ae2151c04 try transparentBackground config
Former-commit-id: fd4535f566
2024-11-17 19:53:03 +01:00
Hadi 00ef3b45b5 switch to firefox
Former-commit-id: 8a692431e4
2024-11-17 19:52:52 +01:00
Hadi 7ad11967af doesn't build on unstable
Former-commit-id: 69c0605202
2024-11-17 19:52:22 +01:00
Hadi b2031d4b9f add backupFileExtension in HM
Former-commit-id: 887668d962
2024-11-17 19:52:10 +01:00
Hadi 58789a4a3a update flakes
Former-commit-id: d7a03d4a80
2024-11-17 19:51:53 +01:00
Hadi 131b4ff4e9 fix colors for the workspace modules
Former-commit-id: 619b0d3724
2024-11-16 12:06:44 +01:00
Hadi 0153473d3c update flakes & fix
Former-commit-id: 9f1b464ce4
2024-11-16 11:57:00 +01:00
Hadi b34c5ca59e Fix ssh kitty
Former-commit-id: 8b6f98d153
2024-11-14 20:53:26 +01:00
Hadi ba412ce128 update flakes
Former-commit-id: 65a9e23d90
2024-11-08 14:19:32 +01:00
Hadi fe4e69375e change theme
Former-commit-id: 48c334cb5e
2024-11-08 14:19:25 +01:00
Hadi 42a2cc4343 regroup calls
Former-commit-id: 3b45228e47
2024-11-08 14:19:14 +01:00
Hadi b956ab0087 new theme
Former-commit-id: d2aa568fff
2024-11-08 14:18:55 +01:00
Hadi 1af7b9f9d3 Hyprland breaking changes. (Stylix fix, waiting for upstream)
Former-commit-id: f4f9f889ed
2024-11-08 13:32:25 +01:00
Hadi e18224c8b2 update flakes
Former-commit-id: 61a4d11ca4
2024-11-08 11:37:33 +01:00
Hadi 7ea671275c update flakes
Former-commit-id: a43e3e36cf
2024-11-05 15:39:17 +01:00
Hadi dd94c689fb private internet access (vpn)
Former-commit-id: 53efbb88d6
2024-11-05 15:39:11 +01:00
Hadi c09a2a4b7c update todos
Former-commit-id: 67f96bde02
2024-11-05 11:36:03 +01:00
Hadi 8440da49c2 Add colored output for git
Former-commit-id: d721e1bc1c
2024-11-05 11:07:21 +01:00
github-actions 625216c6cc Update SCRIPTS.md (auto)
Former-commit-id: 868cf5d3b3
2024-11-05 10:01:56 +00:00
Hadi 4784054a5b update docs
Former-commit-id: b6f9d2b570
2024-11-05 11:01:41 +01:00
Hadi 961055328c hyprshade -> hyprsunset
Former-commit-id: 8d5eefced0
2024-11-05 10:59:34 +01:00
Hadi 7761e4b44c broken on unstable
Former-commit-id: f343ef25d2
2024-11-05 10:59:01 +01:00
Hadi 351f8b478b update flakes
Former-commit-id: f2b11b84a2
2024-11-05 10:58:49 +01:00
Hadi 10550b1d65 rename underscore
Former-commit-id: c0cdd3fcde
2024-11-05 10:47:07 +01:00
Hadi d31584d9bc update github actions
Former-commit-id: b0bb2016bc
2024-11-05 10:46:24 +01:00
Hadi d1faa73c61 rename underscore
Former-commit-id: 63d38846d8
2024-11-05 10:42:32 +01:00
Hadi 03c2f66d2c update flake
Former-commit-id: 9fc781c7da
2024-11-01 20:01:30 +01:00
Hadi fc2c7550e3 add nh informations
Former-commit-id: 999b3abda5
2024-10-29 11:19:37 +01:00
Hadi 99e100334b init nh
Former-commit-id: 9ffeb42e14
2024-10-29 11:17:40 +01:00
Hadi 9dc676092e switch to nh
Former-commit-id: 1ae412cf5b
2024-10-29 11:12:35 +01:00
Hadi 6fc2b080a8 update todos
Former-commit-id: 46b7f8d1b7
2024-10-29 10:44:49 +01:00
Hadi da88abb7b1 update flake
Former-commit-id: 2551b8c9ec
2024-10-29 09:23:55 +01:00
Hadi e795b1893b init docker
Former-commit-id: 4657ca3d75
2024-10-28 12:56:55 +01:00
Hadi 813fd97d6b disable channels
Former-commit-id: 863253bc74
2024-10-25 18:10:08 +02:00
Hadi ae31cad367 update flake
Former-commit-id: 34e71c0efd
2024-10-25 18:10:01 +02:00
Hadi 2c09922445 Init hyprsunset
Former-commit-id: 9a41310dd7
2024-10-23 20:21:49 +02:00
Hadi 2a9cde726e update todos
Former-commit-id: be5b996255
2024-10-23 20:21:33 +02:00
Hadi 0ee029945b fix mistake
Former-commit-id: 0c169156bb
2024-10-23 20:20:26 +02:00
Hadi 3ea5482490 Init hyprpolkitagent
Former-commit-id: 965ef9e76e
2024-10-23 20:15:46 +02:00
Hadi da2be6568f add nix path to nixd config
Former-commit-id: d7831f4115
2024-10-23 20:00:11 +02:00
Hadi d5b65a09fe add nixpkgs path
Former-commit-id: a74e365403
2024-10-23 19:59:57 +02:00
Hadi a19b627987 update flake
Former-commit-id: f38ee3051c
2024-10-22 20:34:24 +02:00
github-actions a479159044 Update README.md (auto)
Former-commit-id: a1fcbd51d8
2024-10-21 15:08:56 +00:00
Hadi bd3cdbf9eb update readme theme section
Former-commit-id: 4e69c6702f
2024-10-21 17:08:34 +02:00
Hadi 9b2e372286 add the theme variables inside the theme dir
Former-commit-id: ba911dc627
2024-10-21 17:06:15 +02:00
Hadi 2bd844a12c add just to dev packages
Former-commit-id: c36755f90e
2024-10-21 16:54:39 +02:00
Hadi 341910b9fd add position option for hyprpanel
Former-commit-id: 1ac07c3ace
2024-10-21 13:16:27 +02:00
Hadi b350e0cbad Merge branch 'main' of github.com:anotherhadi/nixy
Former-commit-id: 7af05cf3b3
2024-10-21 13:04:00 +02:00
Hadi f9568d1a65 update todos
Former-commit-id: b1a5af1257
2024-10-21 13:03:51 +02:00
github-actions cda5be8ed1 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: 893260f073
2024-10-20 18:38:06 +00:00
Hadi 9f0767d932 tofi rules & dbus activation
Former-commit-id: f42dc43810
2024-10-20 20:37:53 +02:00
Hadi 48c04ce469 playerctl shortcuts
Former-commit-id: bb06cc673a
2024-10-20 20:37:10 +02:00
Hadi bb76d72dc8 launch drun through tofi
Former-commit-id: d4761c8c51
2024-10-20 20:36:54 +02:00
Hadi 66a8e8060c Add gpu & disable ghost monitors
Former-commit-id: 6744550bf6
2024-10-17 20:29:08 +02:00
Hadi c13ebbeaea add hints for changeme comments
Former-commit-id: b8b9d16f8c
2024-10-16 18:56:56 +02:00
Hadi aa2fec2609 remove kde connect
Former-commit-id: 4c5963dcaa
2024-10-16 18:56:41 +02:00
Hadi 6f553426e6 add aliases for git reset
Former-commit-id: 968ca31d18
2024-10-16 16:19:20 +02:00
Hadi 3b7ecf820b update todos
Former-commit-id: c283b9cb9c
2024-10-16 16:17:55 +02:00
Hadi 7945ce542a sort by lines
Former-commit-id: 339349661a
2024-10-16 16:16:49 +02:00
github-actions 966bb424f8 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: c904a81267
2024-10-15 23:59:19 +00:00
Hadi d515f74707 init quickmenu
Former-commit-id: c9663e1da6
2024-10-16 01:59:04 +02:00
Hadi e984148360 update todos
Former-commit-id: 37c6ba8d1b
2024-10-16 01:29:47 +02:00
Hadi 742d706539 disable autoDrag (overview)
Former-commit-id: 6f052316e9
2024-10-16 01:29:36 +02:00
github-actions 0407ec6844 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: 01a5992be0
2024-10-15 23:22:27 +00:00
Hadi 5b7b474925 Init Hyprspace (overview)
Former-commit-id: e0e09df208
2024-10-16 01:22:12 +02:00
Hadi 30eebcce84 fix prompts
Former-commit-id: 0d50980a8d
2024-10-16 00:43:59 +02:00
Hadi cbac917367 add tofi commandw
Former-commit-id: fdec6ed81c
2024-10-16 00:40:40 +02:00
Hadi 982491561e change markdown title highlight
Former-commit-id: f878719b3d
2024-10-15 21:20:43 +02:00
Hadi 427239c54d disable treesitter context
Former-commit-id: 491e29a8fc
2024-10-15 20:15:22 +02:00
Hadi 0675a17166 buttons background color fix if transparent bar
Former-commit-id: e513c2cb44
2024-10-15 19:53:20 +02:00
Hadi 0e468b1aa5 nixy loop prompt fix
Former-commit-id: f36410f05f
2024-10-15 19:53:08 +02:00
Hadi 6c1e0940ac init nixy loop
Former-commit-id: 51c64ace97
2024-10-15 17:42:52 +02:00
Hadi e4f099dea7 Delete .sops.yaml
Former-commit-id: a88496af4f
2024-10-15 17:37:01 +02:00
Hadi 6fcfa9bade remove .sops.yaml from github
Former-commit-id: 3c72f875ed
2024-10-15 17:36:37 +02:00
Hadi edbd970b73 remove .sops.yaml from github
Former-commit-id: 159e4aad23
2024-10-15 17:36:01 +02:00
Hadi 745a9baae9 tmux shortcuts for config
Former-commit-id: 3dee75c5d5
2024-10-15 17:30:47 +02:00
Hadi 43cbd98b22 update flake
Former-commit-id: e5c39e4f2c
2024-10-15 16:54:19 +02:00
Hadi ff11b6a768 update github actions
Former-commit-id: 05fb0f494a
2024-10-15 15:08:08 +02:00
Hadi 7b8774d81f update todos
Former-commit-id: f760d9b564
2024-10-15 15:03:50 +02:00
Hadi 017160cff1 change tab size for markdown
Former-commit-id: 80e52cc5c6
2024-10-15 15:02:39 +02:00
Hadi 949c6dacfd Add comments to explain each file
Former-commit-id: 915a767283
2024-10-15 15:02:07 +02:00
Hadi 7bd210ba3c update markdown tab size
Former-commit-id: 4733414bb3
2024-10-15 14:24:58 +02:00
Hadi 4e2c6cbce5 hyprshot -> grimblast
Former-commit-id: 3910bef1bf
2024-10-15 14:14:12 +02:00
Hadi 35f0fcbb1f add glib
Former-commit-id: 92dded9cc6
2024-10-15 14:05:20 +02:00
Hadi d4f2128b72 update flake
Former-commit-id: 5e94040f34
2024-10-15 13:42:42 +02:00
Hadi d5486d9b86 update todo
Former-commit-id: 178cb469ab
2024-10-15 13:42:12 +02:00
Hadi 044adea965 From flake to nixvim plugin
Former-commit-id: 59202f132e
2024-10-15 03:47:58 +02:00
Hadi b637233137 update todo
Former-commit-id: 9f98570ef4
2024-10-15 03:47:43 +02:00
Hadi 82b96a1900 update todo
Former-commit-id: bcd3bd19f0
2024-10-15 03:28:56 +02:00
github-actions bcec00e51c Update README.md (auto)
Former-commit-id: ad13d77413
2024-10-15 01:22:40 +00:00
Hadi f591bd6b2b edit readme
Former-commit-id: 98d8e2c87d
2024-10-15 03:22:09 +02:00
github-actions 87db8442ed Update README.md (auto)
Former-commit-id: fd87e06e20
2024-10-15 01:20:20 +00:00
Hadi d628b6a5a4 Edit readme
Former-commit-id: 6c9e632ab8
2024-10-15 03:19:53 +02:00
Hadi 95fbe68e96 Edit github actions
Former-commit-id: 66160d6ae2
2024-10-15 03:18:22 +02:00
Hadi 3acb5429cd Changes config screenshots
Former-commit-id: 480ae1761d
2024-10-15 03:17:17 +02:00
Hadi 50304e6fbe Edit aliases
Former-commit-id: 1b41b58e68
2024-10-15 03:16:57 +02:00
Hadi 241757518c Update todolist
Former-commit-id: bbbf23b3b0
2024-10-15 02:47:32 +02:00
Hadi adab419e03 Config lazygit
Former-commit-id: ff2d397191
2024-10-15 02:45:32 +02:00
Hadi 7103042597 Merge branch 'main' of github.com:anotherhadi/nixy
Former-commit-id: afe8e81bf6
2024-10-15 02:34:33 +02:00
Hadi 74dc346ea3 Init lazygit hm module
Former-commit-id: d097caf401
2024-10-15 02:34:18 +02:00
Hadi 47305b4f49 Add git aliases
Former-commit-id: 4b6814ae28
2024-10-15 02:34:00 +02:00
github-actions 05a795fb1f Update README.md (auto)
Former-commit-id: c76675c145
2024-10-15 00:29:21 +00:00
Hadi 0ec9ee4d51 Move files to .github
Former-commit-id: ff86acc8c8
2024-10-15 02:28:55 +02:00
Hadi ba8e07ed87 Edit github actions
Former-commit-id: 7bb5c3b36c
2024-10-15 02:28:24 +02:00
Hadi edc9615f6f Add transparentButtons option in hyprpanel
Former-commit-id: 1c477bacc3
2024-10-15 02:23:14 +02:00
Hadi fbef284ba2 Update todo
Former-commit-id: 391d3dd58b
2024-10-15 02:18:54 +02:00
Hadi 241fa97263 Add lazygit
Former-commit-id: e6dd29dac7
2024-10-15 02:17:45 +02:00
Hadi b155c35a9c Add info
Former-commit-id: 67bed2c355
2024-10-14 22:29:08 +02:00
Hadi df659a917c Update github actions
Former-commit-id: 5ec16c82c4
2024-10-14 22:27:33 +02:00
github-actions 85a0c3d118 Update README.md (auto)
Former-commit-id: 277faa310d
2024-10-14 20:21:09 +00:00
Hadi a08c6833e4 Init tofi
Former-commit-id: 059acab3f9
2024-10-14 22:20:39 +02:00
Hadi 9631d4ef4f Update todolist
Former-commit-id: 95248322f7
2024-10-14 22:20:30 +02:00
Hadi 703bb9ff79 Update readme
Former-commit-id: 0ea82dbf32
2024-10-14 22:20:16 +02:00
Hadi 7f6bf8e405 Update github actions
Former-commit-id: 65b9ab0b7e
2024-10-14 22:19:25 +02:00
Hadi 4ec04c372a Update readme
Former-commit-id: 4fd7e39c4e
2024-10-14 22:14:49 +02:00
Hadi cf12e5c310 Update github actions
Former-commit-id: de477fd3dd
2024-10-14 22:14:30 +02:00
Hadi bfb8cc8880 Update readme
Former-commit-id: 62e6928036
2024-10-14 22:13:13 +02:00
Hadi 35ea4e364b Update github actions
Former-commit-id: 4cfdd8f461
2024-10-14 22:12:52 +02:00
Hadi 5596b17feb Update readme
Former-commit-id: 2909de8e3a
2024-10-14 22:11:18 +02:00
Hadi 234d68d34b Fix github action
Former-commit-id: e2f6c5e1ff
2024-10-14 22:09:29 +02:00
Hadi 1b40ad6547 Update readme
Former-commit-id: 206de96fa2
2024-10-14 22:08:31 +02:00
Hadi d6ea51c5ad Update github actions
Former-commit-id: ff7f46aa5d
2024-10-14 22:07:10 +02:00
Hadi 10b4e2b826 Add white-noise app
Former-commit-id: 34cc630789
2024-10-14 21:23:59 +02:00
Hadi e5fd687524 Update todolist
Former-commit-id: eb4cb4f4f4
2024-10-14 21:23:45 +02:00
Hadi c872dfe1f5 Init KDE Connect
Former-commit-id: 52d7a9f2f0
2024-10-14 21:10:16 +02:00
Hadi 7a37403334 Fix gtk settings key
Former-commit-id: a8dca6d1c1
2024-10-14 20:57:56 +02:00
Hadi 5c8674f619 Flake update
Former-commit-id: d06355d5b7
2024-10-14 20:51:31 +02:00
Hadi 2fe6378221 Add documentation per modules
Former-commit-id: 39f74ee63c
2024-10-14 16:35:57 +02:00
Hadi 417e18f7dc Edit network placement
Former-commit-id: bd57c19a2b
2024-10-14 14:22:14 +02:00
Hadi 6bba61db34 Edit popup font size
Former-commit-id: b9e3f09e7f
2024-10-11 22:33:29 +02:00
Hadi 6525cc6a0b Fix copilot completion key overlap
Former-commit-id: f5388f478b
2024-10-11 13:02:43 +02:00
Hadi 8df6f3faac Edit todo
Former-commit-id: a24167d107
2024-10-10 22:42:02 +02:00
Hadi e6bf30682a Init zenmode
Former-commit-id: 53703c0db0
2024-10-10 22:41:39 +02:00
Hadi 68d78063af merge gh actions updates
Former-commit-id: 6adc0d7c3c
2024-10-10 21:43:33 +02:00
Hadi 623675965c Init hyprswitch
Former-commit-id: 4969b5aa8f
2024-10-10 21:43:24 +02:00
github-actions bf1c8e33a4 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: f595e67528
2024-10-10 14:33:34 +00:00
Hadi 28d03937a4 Update
Former-commit-id: b5071b889b
2024-10-10 16:33:21 +02:00
Hadi a53de1dc18 Update
Former-commit-id: fa59c4d8c2
2024-10-10 16:31:30 +02:00
github-actions c85f9f5add Update README.md (auto)
Former-commit-id: 568306aade
2024-10-10 14:29:41 +00:00
Hadi ab5bd64fa8 Update
Former-commit-id: 159ce3c1c2
2024-10-10 16:29:14 +02:00
Hadi 0f587c2d7a Update
Former-commit-id: df52538c42
2024-10-10 15:35:23 +02:00
Hadi 90917d269f Update
Former-commit-id: ee894aaea7
2024-10-10 15:28:25 +02:00
Hadi 4ae0793b12 Update
Former-commit-id: bd7ff1cc20
2024-10-10 15:09:59 +02:00
Hadi 6e50f7cb72 Update
Former-commit-id: 3c2157260d
2024-10-09 18:34:02 +02:00
Hadi 23d9aad7aa Update
Former-commit-id: 36e9281397
2024-10-09 17:09:33 +02:00
Hadi 70baccb96b Put every variables in top of the file for easy copy to another config
Former-commit-id: 0bd55fdc10
2024-10-09 15:12:50 +02:00
Hadi 06a41b3d6e Update
Former-commit-id: 55c7c7068a
2024-10-08 21:56:44 +02:00
Hadi c98f623bbf Update
Former-commit-id: 5603871ef1
2024-10-08 20:46:56 +02:00
Hadi cb2272746f Update
Former-commit-id: a554505de2
2024-10-08 20:07:56 +02:00
Hadi cd943828cc Update
Former-commit-id: 3f0a694b5f
2024-10-08 20:02:45 +02:00
Hadi 8a7a3354eb Update
Former-commit-id: a781a227ac
2024-10-08 13:00:40 +02:00
Hadi aa8f600bd1 Remove duckduckgo theme changing alert
Former-commit-id: 5e8139963f
2024-10-08 12:37:56 +02:00
Hadi 9159b34d59 Update the readme
Former-commit-id: 85b8874094
2024-10-08 12:35:38 +02:00
Hadi becdaf407e Update the readme
Former-commit-id: d7184174cd
2024-10-08 12:34:50 +02:00
Hadi 746f105209 Update
Former-commit-id: 8d7fbd74b5
2024-10-08 12:33:38 +02:00
Hadi 96932de4fa Update
Former-commit-id: 36527362a7
2024-10-08 11:43:12 +02:00
Hadi 69c12bf054 Update
Former-commit-id: e83de257ad
2024-10-08 11:29:59 +02:00
Hadi 16aa758975 Update
Former-commit-id: c401b9bd7f
2024-10-08 10:39:10 +02:00
Hadi 07b4b490ae Update
Former-commit-id: 741a6f97ae
2024-10-08 10:17:01 +02:00
Hadi ecf6ff0627 Update
Former-commit-id: 52e267a436
2024-10-07 20:41:30 +02:00
Hadi c5db47ab0e Update
Former-commit-id: d11cf580f9
2024-10-07 20:27:07 +02:00
Hadi 26bc2fef9a Update
Former-commit-id: d37504de7c
2024-10-07 18:34:06 +02:00
Hadi 27dcbaafa4 Update
Former-commit-id: 8a41ffad2f
2024-10-07 13:13:23 +02:00
Hadi 87695c4e21 Update
Former-commit-id: 3aa0fb8a22
2024-10-07 12:02:26 +02:00
Hadi 3b43b088ba Update
Former-commit-id: 75f2c2c7c6
2024-10-07 11:17:59 +02:00
Hadi 792466d8c6 Update
Former-commit-id: ab65fe342b
2024-10-07 10:13:21 +02:00
Hadi 25be368726 Update
Former-commit-id: 905cc9a885
2024-10-06 18:49:52 +02:00
Hadi 28d0da590c Testing
Former-commit-id: 23dcfd5290
2024-10-05 11:48:16 +02:00
Hadi 064407796e Update
Former-commit-id: 270c1b959e
2024-10-04 21:12:13 +02:00
Hadi 98f75ebf3c Update
Former-commit-id: 58fa41a210
2024-10-04 21:03:01 +02:00
Hadi f7ab27b629 Update
Former-commit-id: 8f6b049129
2024-10-04 10:58:53 +02:00
Hadi 049c0c5803 Update
Former-commit-id: 7047ffe785
2024-10-03 10:18:49 +02:00
Hadi 24e5badf06 Update
Former-commit-id: fe657984fe
2024-10-01 17:16:24 +02:00
Hadi 964c511052 Update
Former-commit-id: 660c99d5ed
2024-10-01 15:05:02 +02:00
Hadi c971073a28 Update
Former-commit-id: 7f1c7446f8
2024-10-01 14:57:15 +02:00
Hadi 6f5fa48009 Update
Former-commit-id: 804e6b255e
2024-10-01 13:58:05 +02:00
Hadi 2c8b7ef08a Update
Former-commit-id: 381e839dfa
2024-10-01 13:21:25 +02:00
Hadi c3f611af88 Update
Former-commit-id: 57c0df5d48
2024-09-30 21:15:21 +02:00
Hadi 4d3b0e5244 Update
Former-commit-id: c1609eefff
2024-09-23 15:12:05 +02:00
Hadi 121991682b Update
Former-commit-id: 22c67467c0
2024-09-20 13:35:40 +02:00
Hadi a80e52d0d0 Update
Former-commit-id: f49ac89514
2024-09-18 23:54:02 +02:00
Hadi 21845bef5f Update
Former-commit-id: e47edc0c1f
2024-09-18 23:53:39 +02:00
Hadi ebdbddf5c0 Update
Former-commit-id: 2721d11575
2024-09-18 00:52:23 +02:00
Hadi cceb96c26b Update
Former-commit-id: c97e51a9d2
2024-09-16 17:28:52 +02:00
Hadi 943eaf2116 Update
Former-commit-id: ac293a378c
2024-09-16 17:24:47 +02:00
Hadi 1d034481e9 Update
Former-commit-id: 615028dcca
2024-09-15 20:58:24 +02:00
Hadi 079e01f71e update
Former-commit-id: feeb938f5e
2024-09-13 22:07:19 +02:00
Hadi f9733872fd Update
Former-commit-id: b6ec38b1a1
2024-09-13 20:04:14 +02:00
Hadi 5a235ce597 Update
Former-commit-id: 86d990f157
2024-09-12 01:36:59 +02:00
Hadi a21e68fe5d Update
Former-commit-id: a16ea9af7d
2024-09-12 00:25:37 +02:00
Hadi f7616d564b Update
Former-commit-id: 7904e497bd
2024-09-11 17:53:25 +02:00
Hadi b1f7498303 Update
Former-commit-id: 7f5e4a8e6d
2024-09-10 09:50:27 +02:00
Hadi 1b6a2dd89e Update
Former-commit-id: 1a7e84a8dd
2024-09-09 13:56:45 +02:00
Hadi f985ded50a Update
Former-commit-id: 381f88cf0d
2024-09-07 17:25:21 +02:00
Hadi 7ecde5089e Update
Former-commit-id: 166c9f3139
2024-09-06 20:19:21 +02:00
Hadi c4415474c3 Update
Former-commit-id: 316e0cd2d3
2024-09-04 22:37:24 +02:00
Hadi a8e6060a92 Update
Former-commit-id: 8fe7237409
2024-09-04 22:36:17 +02:00
Hadi 28e7f5c0dc Update
Former-commit-id: 2ffa7e9518
2024-09-04 22:01:48 +02:00
Hadi 0968954de1 Update
Former-commit-id: cc8d0ddca3
2024-09-04 21:24:51 +02:00
Hadi e6b7406730 update
Former-commit-id: da2aab6f76
2024-09-04 21:07:53 +02:00
Hadi a3d38d8183 update
Former-commit-id: 79403b916d
2024-09-04 21:06:59 +02:00
Hadi 932f6b6dbb Update
Former-commit-id: 0489f7eaa7
2024-09-04 21:04:53 +02:00
Hadi c97948ba09 Release v2.4.0
Former-commit-id: 7ddff66f00
2024-09-04 10:11:28 +02:00
Hadi a4050c3422 Update
Former-commit-id: e1f973cabf
2024-09-04 10:10:52 +02:00
Hadi c025097810 Update
Former-commit-id: e38895c4a5
2024-09-04 10:10:32 +02:00
Hadi 769880a865 Update
Former-commit-id: c2e6fd7d32
2024-09-04 09:34:42 +02:00
Hadi f7d00d972f Update
Former-commit-id: 3d8bcaeeb2
2024-09-04 02:02:57 +02:00
Hadi 3a65e6b9a4 Add wofi clipman
Former-commit-id: 4135134261
2024-09-04 01:53:36 +02:00
Hadi 893417e316 Add wofi emoji
Former-commit-id: 027ef1c398
2024-09-04 01:44:37 +02:00
Hadi 5bf5e9dee3 Change to gammastep
Former-commit-id: 659509e613
2024-09-04 01:40:24 +02:00
Hadi 36d09253cf Update
Former-commit-id: e9a20f49e2
2024-09-02 18:30:30 +02:00
Hadi e69ebdd9d5 Update
Former-commit-id: 75562adea8
2024-09-02 09:29:50 +02:00
Hadi 697a5c3d63 Update
Former-commit-id: 4afca71b91
2024-08-30 17:29:30 +02:00
Hadi 4636723f7c Update
Former-commit-id: 4a8f1be75f
2024-08-30 17:02:38 +02:00
Hadi 7bdbc3fdde Update
Former-commit-id: 4540b40dc4
2024-08-30 16:13:57 +02:00
Hadi 66e52892ba Update
Former-commit-id: fcd5eca04f
2024-08-30 16:06:22 +02:00
Hadi 437fe822ed Update
Former-commit-id: da1b88305d
2024-08-30 15:47:17 +02:00
Hadi 48f7170f4f Update
Former-commit-id: f0e9294982
2024-08-30 14:16:30 +02:00
Hadi 9943a1dacf Update
Former-commit-id: b3f20e6aef
2024-08-30 09:33:57 +02:00
Hadi 6cc1d430a5 Update
Former-commit-id: 48a59c4c55
2024-08-29 22:46:04 +02:00
Hadi 8b5ff95ba3 Update
Former-commit-id: c83e5b2213
2024-08-29 17:04:05 +02:00
Hadi 678098460a Update
Former-commit-id: 55a5c52c51
2024-08-29 14:29:05 +02:00
Hadi 5eb34e05ab Release v2.3.0
Former-commit-id: 90e8d5577e
2024-08-28 12:30:52 +02:00
Hadi e94c09a5e2 Fetch the gtk flatcolor theme folder from github
Former-commit-id: 835a9e9da2
2024-08-28 12:30:04 +02:00
Hadi 0d00056d61 Update
Former-commit-id: 3c171c33be
2024-08-28 11:43:03 +02:00
Hadi 11909b2db3 Update
Former-commit-id: aa8fca0bed
2024-08-26 17:48:05 +02:00
Hadi 50ad65ec50 Update
Former-commit-id: 1255919f41
2024-08-24 17:09:12 +02:00
Hadi 128b9a79c3 update
Former-commit-id: 109f31151d
2024-08-23 11:42:33 +02:00
Hadi e17a7f6e5c update
Former-commit-id: 3c3acd03b4
2024-08-23 11:28:15 +02:00
Hadi 60c6ba9bd1 update
Former-commit-id: 65c95ac82a
2024-08-23 11:28:07 +02:00
Hadi 4362d3ada7 update
Former-commit-id: 776095c817
2024-08-23 11:25:23 +02:00
Hadi e73350a76b update
Former-commit-id: d36952e040
2024-08-23 11:23:16 +02:00
Hadi 71b6f444c2 update
Former-commit-id: ae0480cab3
2024-08-23 10:59:21 +02:00
Hadi 8cb73c1a34 update
Former-commit-id: bd8e69fe44
2024-08-23 10:58:07 +02:00
Hadi 70596d95fb update
Former-commit-id: ddeaf0170d
2024-08-23 10:56:42 +02:00
Hadi d937db8573 update
Former-commit-id: f27b66f878
2024-08-23 10:52:35 +02:00
Hadi 1c6a9f5caa update
Former-commit-id: 574b0043ac
2024-08-23 10:52:11 +02:00
Hadi 3470c61c5e update
Former-commit-id: fbd804939f
2024-08-23 10:51:31 +02:00
Hadi 005aaef5e1 update
Former-commit-id: cfa4e187c5
2024-08-23 10:31:25 +02:00
Hadi 03490447cb update
Former-commit-id: b1d3094bcc
2024-08-23 10:25:43 +02:00
Hadi 280b114e66 update
Former-commit-id: 1f7ca17d94
2024-08-23 10:12:00 +02:00
Hadi ed4eba3d14 update
Former-commit-id: d939bc6f53
2024-08-23 10:11:07 +02:00
Hadi b70aa6661b update
Former-commit-id: 3419421098
2024-08-23 10:09:02 +02:00
Hadi b0507d10ea Update
Former-commit-id: d816099985
2024-08-22 21:02:14 +02:00
Hadi c94a3b85d8 update
Former-commit-id: 28424b82ab
2024-08-22 16:28:08 +02:00
Hadi 04015018a4 update
Former-commit-id: 771dceeb06
2024-08-22 16:11:48 +02:00
Hadi fe1f3fce14 update
Former-commit-id: a2d4d36289
2024-08-22 16:07:39 +02:00
Hadi b1c379221e update
Former-commit-id: e4fce0a17a
2024-08-22 16:06:44 +02:00
Hadi 5812e60eb5 update
Former-commit-id: 88a8168ce2
2024-08-22 16:02:10 +02:00
Hadi e7f2c03502 update
Former-commit-id: 58d809d860
2024-08-22 15:41:28 +02:00
Hadi 9db064e331 update
Former-commit-id: 4b3f43e402
2024-08-22 15:32:46 +02:00
Hadi 7fce5419aa update
Former-commit-id: bbe0574051
2024-08-22 15:28:47 +02:00
Hadi 948542bbd8 Update
Former-commit-id: 3ef71b9fa2
2024-08-22 15:25:32 +02:00
Hadi 4ab85f4f1c Update
Former-commit-id: a240a76a8e
2024-08-20 15:27:18 +02:00
Hadi 7d2e868a03 Update
Former-commit-id: d254085e29
2024-08-20 00:17:10 +02:00
Hadi 5f794cfabd Update
Former-commit-id: ac2223ad24
2024-08-19 22:50:30 +02:00
Hadi f5f37f420d Update
Former-commit-id: 8092a2d348
2024-08-19 22:28:49 +02:00
Hadi b6a0ac38de Update
Former-commit-id: c434816d83
2024-08-19 22:20:59 +02:00
Hadi 56d0aac939 Update
Former-commit-id: 9e8637e9a8
2024-08-19 21:09:21 +02:00
Hadi 9e6dbb465b Update
Former-commit-id: d1896b626b
2024-08-19 20:40:29 +02:00
Hadi 4875fce088 Release v2.2.0
Former-commit-id: e6f66110f0
2024-08-19 20:32:10 +02:00
Hadi 6ff18b7d15 Update
Former-commit-id: caaa500232
2024-08-19 19:42:20 +02:00
Hadi a6526de2a4 Update
Former-commit-id: e27d43df71
2024-08-19 19:41:24 +02:00
Hadi bf04dce6d5 Update
Former-commit-id: 79a69d245c
2024-08-19 19:36:21 +02:00
Hadi fdabd7edf9 Update
Former-commit-id: 849eb5dd11
2024-08-19 00:38:27 +02:00
Hadi a13ea2b8da Update
Former-commit-id: 31ac58592e
2024-08-19 00:15:43 +02:00
Hadi 0473880942 Update
Former-commit-id: b9fda769bc
2024-08-18 23:57:00 +02:00
Hadi c2afa515ee Update
Former-commit-id: 94c88e04f2
2024-08-18 23:56:48 +02:00
Hadi ecee3e4daa Update
Former-commit-id: 9d74ac9d82
2024-08-18 23:52:21 +02:00
Hadi 39c70d2152 Update
Former-commit-id: a64c79ae22
2024-08-18 23:43:17 +02:00
Hadi c6cc2b3e2b Release v2.1.0
Former-commit-id: a134abdea3
2024-08-18 23:40:47 +02:00
Hadi 61eac2f021 Update
Former-commit-id: 957b148656
2024-08-18 23:29:31 +02:00
Hadi 55cfb67493 Update
Former-commit-id: 7fab715859
2024-08-18 23:29:08 +02:00
Hadi 082fbb2130 Update
Former-commit-id: 246b5b6c8e
2024-08-11 12:02:11 +02:00
Hadi 207caa7ba5 Update
Former-commit-id: a318562aa7
2024-08-10 13:28:07 +02:00
Hadi 9d03a16364 Update
Former-commit-id: 4ec671e6b4
2024-08-02 20:53:58 +02:00
Hadi 7832f5f750 Update
Former-commit-id: e3f4493865
2024-07-29 19:34:43 +02:00
Hadi c9775af4ea Update
Former-commit-id: 5c5a2796f6
2024-07-25 23:23:11 +02:00
Hadi 146afb1de5 Update
Former-commit-id: a7bd5ad28b
2024-07-24 23:38:16 +02:00
Hadi e9e7d4f06f Update
Former-commit-id: 830dc909e2
2024-07-22 22:32:10 +02:00
Hadi 273fd77b86 Update
Former-commit-id: 351dc0ebb3
2024-07-22 21:49:19 +02:00
Hadi cf04176b10 Update
Former-commit-id: aff363f37d
2024-07-21 22:20:55 +02:00
Hadi eb3083346f Update
Former-commit-id: fdd41cf848
2024-07-19 13:03:34 +02:00
Hadi 5078a34ee3 Update
Former-commit-id: 308cbfcb19
2024-07-13 12:04:41 +02:00
Hadi b5f27c6ed6 Update
Former-commit-id: 1dc5190c43
2024-07-11 16:07:04 +02:00
Hadi cb7c2f3c40 Update
Former-commit-id: 8412b4dd93
2024-07-09 16:20:53 +02:00
Hadi 3e6f8b856d Update
Former-commit-id: 04d2e91dd5
2024-07-09 15:01:41 +02:00
Hadi 38b516453a Update
Former-commit-id: 70459117ed
2024-07-09 14:16:50 +02:00
Hadi 2e9fd1710f Update
Former-commit-id: 87ee1c7738
2024-07-09 14:00:14 +02:00
Hadi 4b8593b097 Update
Former-commit-id: 0509eba07f
2024-07-09 13:41:42 +02:00
Hadi fd5dfea2c4 Update
Former-commit-id: 9142814f8f
2024-07-09 12:05:04 +02:00
Hadi b623474fc0 Update
Former-commit-id: 33a9386356
2024-07-09 11:44:32 +02:00
Hadi ffcd2c0c19 Update
Former-commit-id: fb73cce28a
2024-07-09 11:12:41 +02:00
Hadi aa1a9c25d7 Update
Former-commit-id: e0c24bf068
2024-07-09 09:47:29 +02:00
Hadi cd837e208e Update
Former-commit-id: 8e63ef0b46
2024-07-09 09:38:51 +02:00
Hadi eca9b216ba Merge branch 'main' of github.com:anotherhadi/nixy
Update


Former-commit-id: e107b25a2f
2024-07-09 09:33:49 +02:00
Hadi f1bff29cd9 Update
Former-commit-id: 841f9625e9
2024-07-09 09:33:21 +02:00
Hadi e452d79f0c update
Former-commit-id: ddddd3b4a4
2024-07-08 07:45:56 +00:00
Hadi 0fb184e8d3 Update
Former-commit-id: a73a50aa1f
2024-07-06 00:37:24 +02:00
Hadi 5b337e5e94 Update
Former-commit-id: cd7db37ccd
2024-07-06 00:35:41 +02:00
Hadi 498c03decc Update
Former-commit-id: 9931071846
2024-07-05 14:56:19 +02:00
Hadi 5f6fb011a2 Update
Former-commit-id: de4347765c
2024-07-05 10:16:16 +02:00
Hadi 46b913a7d3 Update
Former-commit-id: 5bee2d6931
2024-07-05 09:20:58 +02:00
Hadi 0ecb821342 Update
Former-commit-id: 7dc7cfcaba
2024-07-05 09:09:43 +02:00
Hadi f7d23ddee9 Update
Former-commit-id: a8d37c3fcd
2024-07-05 08:49:18 +02:00
Hadi fb63d4c0e9 Update
Former-commit-id: fa6d5d50bd
2024-07-02 12:18:49 +02:00
Hadi 9bddf6dab9 update
Former-commit-id: fdff88cc9d
2024-07-01 13:15:24 +00:00
Hadi 2f39827f03 nixvim refactor
Former-commit-id: 55caf123df
2024-07-01 13:07:12 +00:00
Hadi 41a6417a2d Update
Former-commit-id: 88ae1d29a5
2024-07-01 13:04:32 +02:00
Hadi 02331d9deb update todos
Former-commit-id: 51739ac610
2024-07-01 08:41:07 +00:00
Hadi 742aa325aa update
Former-commit-id: 76a6f6cd6e
2024-07-01 08:34:04 +00:00
Hadi 6d487ab9f0 update
Former-commit-id: 7ef2c71725
2024-07-01 08:32:49 +00:00
Hadi a0f7128a28 update
Former-commit-id: 81574fd7bc
2024-07-01 08:31:12 +00:00
Hadi fdd5d685d6 Add wallpapers
Former-commit-id: ba9dde2c1a
2024-07-01 10:13:17 +02:00
Hadi 62213109f7 update
Former-commit-id: 93837b6bea
2024-06-30 18:01:52 +02:00
Hadi 9c43c89a3f Update
Former-commit-id: 8b76bf48a6
2024-06-30 17:59:39 +02:00
Hadi 9c1fc992e2 update
Former-commit-id: c80ddff8eb
2024-06-30 17:46:32 +02:00
Hadi cc2b0989d3 update
Former-commit-id: c4d436b434
2024-06-30 17:42:09 +02:00
Hadi 3ee5f2097d update
Former-commit-id: dae8755b59
2024-06-30 17:35:58 +02:00
Hadi 5657e0b24c Update
Former-commit-id: 7c0216b1fb
2024-06-30 17:32:42 +02:00
Hadi b51725e7cd Update
Former-commit-id: 40ffce6605
2024-06-29 00:18:07 +02:00
Hadi 86f8c99554 Update
Former-commit-id: 56c2c41b68
2024-06-28 16:35:49 +02:00
Hadi c256b870aa Update
Former-commit-id: 06f5e03e66
2024-06-28 16:32:52 +02:00
Hadi 94103e9dfb Update
Former-commit-id: 921c359693
2024-06-28 15:02:53 +02:00
Hadi af6319c8ec update
Former-commit-id: 1f35859f2c
2024-06-28 14:35:35 +02:00
Hadi 6edda0e6e1 Update
Former-commit-id: 71f405e633
2024-06-28 01:24:27 +02:00
Hadi 3ba7648eb0 update
Former-commit-id: 84b645e181
2024-06-28 01:11:49 +02:00
Hadi 484d82a788 update
Former-commit-id: 5857299c20
2024-06-28 01:10:09 +02:00
Hadi be0d934622 update
Former-commit-id: ec24cde14f
2024-06-28 01:07:53 +02:00
Hadi abab0d1b96 update
Former-commit-id: 3f79044a2a
2024-06-28 01:07:24 +02:00
Hadi 9dd462b0b8 Update
Former-commit-id: cf6ea202e1
2024-06-28 00:58:12 +02:00
Hadi 28404f07cd Update
Former-commit-id: 84f87f9833
2024-06-27 19:42:08 +02:00
Hadi eb0e205e99 Update
Former-commit-id: ae6818ed65
2024-06-27 18:32:17 +02:00
Hadi 0c856fe2d2 update
Former-commit-id: cd7b35389e
2024-06-27 09:49:24 +00:00
Hadi 26452fbf23 update
Former-commit-id: c8c81e20ae
2024-06-27 09:20:44 +00:00
Hadi 6f2ad22139 golang bin to $PATH
Former-commit-id: 2972b4238c
2024-06-27 08:45:21 +00:00
Hadi e79b8ac14c update
Former-commit-id: b35d35f3d5
2024-06-27 08:42:42 +00:00
Hadi 9826faa7d0 update
Former-commit-id: bde31a4934
2024-06-27 08:32:24 +00:00
Hadi 68e5393f5d update
Former-commit-id: 170287e948
2024-06-27 08:31:28 +00:00
Hadi f3e7766229 create keybindings doc
Former-commit-id: 5d14ec00b5
2024-06-27 08:24:13 +00:00
Hadi 76f7b763cf Merge branch 'main' of https://github.com/anotherhadi/nixy
Former-commit-id: f6209d0754
2024-06-27 07:50:31 +00:00
Hadi 51191f82c7 update todo
Former-commit-id: 9e906c161a
2024-06-27 07:46:24 +00:00
Hadi e86c831653 Update
Former-commit-id: 071ce93f11
2024-06-27 00:11:54 +02:00
Hadi 91f8e392ef Update
Former-commit-id: a9939a0f54
2024-06-27 00:10:09 +02:00
Hadi 7ce04c1ae9 Update
Former-commit-id: 9cf68648eb
2024-06-26 22:18:39 +02:00
Hadi 1aff187d21 Update
Former-commit-id: 652377bd9b
2024-06-26 22:17:03 +02:00
Hadi 856c0c3212 Update
Former-commit-id: dd9c61b9ff
2024-06-26 22:13:14 +02:00
Hadi acfaa9d9e8 update
Former-commit-id: c00458c02a
2024-06-26 21:30:04 +02:00
Hadi 20307f9096 Update
Former-commit-id: 1df0f31dbc
2024-06-26 21:19:04 +02:00
Hadi ff1d70ba79 add md-table-of-contents source
Former-commit-id: 6a8382c79e
2024-06-26 14:46:22 +00:00
Hadi 188e34a575 update
Former-commit-id: 1ed7675095
2024-06-26 14:44:08 +00:00
Hadi 373c2d4546 Update
Former-commit-id: 57cab5fa52
2024-06-26 12:31:58 +02:00
Hadi ae1335d4d2 update
Former-commit-id: 3cfb9e733a
2024-06-26 10:32:58 +02:00
Hadi 70e9831d3a Update
Former-commit-id: bb4617160c
2024-06-25 22:22:26 +02:00
450 changed files with 5417 additions and 18925 deletions
+110
View File
@@ -0,0 +1,110 @@
<div align="center">
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/.github/assets/logo.png" width="120px" />
</div>
<br>
# Nixy
<br>
<div align="center">
<a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color={primarycolor}&labelColor={backgroundcolor}&style=for-the-badge&logo=starship&logoColor={primarycolor}">
</a>
<a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color={primarycolor}&labelColor={backgroundcolor}&style=for-the-badge&logo=github&logoColor={primarycolor}">
</a>
<a href="https://nixos.org">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor={backgroundcolor}&logo=NixOS&logoColor={primarycolor}&color={primarycolor}">
</a>
<a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA={backgroundcolor}&colorB={primarycolor}&logo=unlicense&logoColor={primarycolor}"/>
</a>
</div>
<br>
**Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place.
It's a simple way to manage your system configuration and dotfiles.
I'm Hadi, a french developer, student in infosec, enthusiastic about nix, golang & blockchains.
This is my own, **keyboard-centric**, and **minimalistic** NixOS configuration.
I enable vim-like keybindings everywhere I can, and I use a lot of custom scripts to make my life easier.
**Nixy key points:**
- Hypr-ecosystem first (hyprland, hyprlock, hyprpanel, hypridle, ...)
- Stylix/base16 themes
- Vim-like keybindings everywhere (hyprland, qutebrowser, nvim, ...)
## Table of Content
{md_table_of_content}
## Gallery
![Nixy helper, peaclock](.github/assets/nixy/1.png)
![Qutebrowser, pipes, shell](.github/assets/nixy/2.png)
![nvim, lazygit](.github/assets/nixy/3.png)
![spotify, cava](.github/assets/nixy/4.png)
## Architecture
### 🏠 home
Those are the dotfiles and configuration files for user-level configuration
**Subfolders:**
- `programs` is a collection of apps configured with home-manager
- `scripts` is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
- `system` is some "desktop environment" configuration
### 🐧 nixos
Those are the system-level configurations. (audio, bluetooth, gpu, bootloader, ...)
### 🎨 themes
Those are the themes used in the system configuration. The `stylix` folder contains the [stylix](https://github.com/danth/stylix) defined themes, the `var` folder contains the variables not handled by stylix.
See avaiable themes in [THEMES.md](docs/THEMES.md)
### 💻 hosts
Those are the host-specific configurations.
Each host contains a `configuration.nix` for system-level configuration, a `home.nix` for user-level configuration, and a `variables.nix` for config wide variables.
## Installation
1. Clone the repo
```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos
```
2. Copy the `hosts/laptop` folder, rename it to your system name, and change the variables inside the `variables.nix` file
3. Add your `hardware-configuration.nix` to your new host's folder
4. Add your 'nixosConfigurations' inside `flake.nix`
> [!Important]
> I added few `# CHANGEME` comments in the files to help you find what to change. Be sure to check them up.
> You can use `rg "CHANGEME"` to find them all with ripgrep.
> [!TIP]
> When you add new files, don't forget to run `git add .` to add them to the git repository
5. Build the system
```sh
sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
```
## Documentation
- [THEMES](docs/THEMES.md): How themes work and how to create your own
- [SCRIPTS](docs/SCRIPTS.md): Scripts that are available
- [KEYBINDINGS-HYPRLAND](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland
- [WALLPAPERS](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy.
- [TODO](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# Create the README.md file from the .github/assets/README_template.md file
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
README_FILE="./README.md"
table_of_content=$(markdown-table-of-contents --start-by 2 ./.github/assets/README_template.md) # https://github.com/anotherhadi/markdown-table-of-contents
readme_content=$(cat "./.github/assets/README_template.md")
# Replace variables
readme_content=${readme_content//\{primarycolor\}/A594FD}
readme_content=${readme_content//\{backgroundcolor\}/0b0b0b}
readme_content=${readme_content//\{md_table_of_content\}/$table_of_content}
echo "[//]: # (This file is autogenerated)" >"$README_FILE"
echo "$readme_content" >>"$README_FILE"
sed 's/\r//' "$README_FILE" >"/tmp/readme.md"
mv "/tmp/readme.md" "$README_FILE"
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env bash
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
DOCS_FILE="./docs/SCRIPTS.md"
SCRIPTS_FOLDER="./home/scripts"
# search for every directory in the scripts folder:
# The docs for each scripts are in the beginning of the file prefixed by "#-" or "# -" for the title
# Inside the folders, the scripts are stored in default.nix files
echo "[//]: # (This file is autogenerated)" >"$DOCS_FILE"
echo "# Scripts" >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
echo "Scripts are located in the 'home/scripts' folder. Home-manager add those in the user's path." >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
for folder in "$SCRIPTS_FOLDER"/*; do
script="$folder/default.nix"
[[ -f "$script" ]] || continue
content=$(cat "$script")
content=$(echo "$content" | grep -E "^#-|^# -" | sed 's/^#- //;s/^# - //;s/#-//')
echo "$content" >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
done
+60
View File
@@ -0,0 +1,60 @@
#!/usr/bin/env bash
# A script to parse the Hyprland configuration to store keybindings in a table
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
KEYBINDINGS_FILE="./docs/KEYBINDINGS-HYPRLAND.md"
function getList() {
content=$1
name=$2
list_start=$(echo "$content" | sed "/$name = \[/!d;=;Q")
list=$(echo "$content" | tail +"$list_start")
list_end=$(echo "$list" | sed '/\]/!d;=;Q')
list=$(echo "$list" | head -n"$list_end")
echo "$list"
}
[[ -f "./home/system/hyprland/bindings.nix" ]] || (echo "File ./home/system/hyprland/bindings.nix not found" && exit 1)
config=$(cat "./home/system/hyprland/bindings.nix")
# Bind
bind=$(getList "$config" "bind")
# Bindm (mouse)
bindm=$(getList "$config" "bindm")
# Bindl (lock)
bindl=$(getList "$config" "bindl")
# Bindle (lock, repetition)
bindle=$(getList "$config" "bindle")
# Join the lists:
keybindings=$(echo -e "$bind\n$bindm\n$bindl\n$bindle" | grep '"')
echo "[//]: # (This file is autogenerated)" >"$KEYBINDINGS_FILE"
echo "# Keybindings for Hyprland" >>"$KEYBINDINGS_FILE"
echo "" >>"$KEYBINDINGS_FILE"
echo "> [!NOTE]" >>"$KEYBINDINGS_FILE"
echo "> SUPER is the windows key by default" >>"$KEYBINDINGS_FILE"
echo "" >>"$KEYBINDINGS_FILE"
echo "| Description | Keybinding |" >>"$KEYBINDINGS_FILE"
echo "| -- | -- |" >>"$KEYBINDINGS_FILE"
echo "| Switch Workspace | SUPER + {Number} |" >>"$KEYBINDINGS_FILE"
echo "| Move app to Workspace | SHIFT + SUPER + {Number} |" >>"$KEYBINDINGS_FILE"
echo "$keybindings" | while read -r line; do
comment=$(echo "$line" | cut -d\# -f2)
line=$(echo "$line" | cut -d\# -f1)
line=${line:1:${#line}-3}
mod=$(echo "$line" | cut -d, -f1)
key=$(echo "$line" | cut -d, -f2)
# dispatcher=$(echo "$line" | cut -d, -f3)
# params=$(echo "$line" | cut -d, -f4)
[[ $mod == '$mod' ]] && mod="SUPER + "
[[ $mod == '$shiftMod' ]] && mod="SHIFT + SUPER + "
echo "| ${comment:1} | $mod$key |" >>"$KEYBINDINGS_FILE"
done
@@ -0,0 +1,24 @@
on:
push:
paths:
- 'home/system/hyprland/bindings.nix'
permissions:
contents: write
jobs:
update-readme:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Run a script
run: |
chmod +x ./.github/scripts/keybindings_to_markdown.sh
./.github/scripts/keybindings_to_markdown.sh
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Update KEYBINDINGS-HYPRLAND.md (auto)"
git push
+31
View File
@@ -0,0 +1,31 @@
on:
push:
paths:
- '.github/assets/README_template.md'
permissions:
contents: write
jobs:
update-readme:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '^1.23'
- name: Install required dependencies
run: |
go install github.com/anotherhadi/markdown-table-of-contents@latest
- name: Run a script
run: |
chmod +x ./.github/scripts/create_readme.sh
./.github/scripts/create_readme.sh
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Update README.md (auto)"
git push
+24
View File
@@ -0,0 +1,24 @@
on:
push:
paths:
- 'home/scripts/**'
permissions:
contents: write
jobs:
update-readme:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Run a script
run: |
chmod +x ./.github/scripts/create_scripts_docs.sh
./.github/scripts/create_scripts_docs.sh
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Update SCRIPTS.md (auto)"
git push
+1
View File
@@ -1 +1,2 @@
todolist.md todolist.md
.sops.yaml
-11
View File
@@ -1,11 +0,0 @@
keys:
- &primary age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334
creation_rules:
- path_regex: secrets/laptop.yaml$
key_groups:
- age:
- *primary
- path_regex: secrets/server.yaml$
key_groups:
- age:
- *primary
+72 -40
View File
@@ -1,11 +1,6 @@
[//]: # (Title: Nixy) [//]: # (This file is autogenerated)
[//]: # (Description: Nixy is a Hyprland NixOS configuration with home-manager, secrets and custom theming all in one place. It's a simple way to manage your system configuration and dotfiles.)
[//]: # (Author: Hadi)
[//]: # (Date: 06/25/24)
[//]: # (Version: v2.0.0)
<div align="center"> <div align="center">
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/docs/src/logo.png" width="100px" /> <img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/.github/assets/logo.png" width="120px" />
</div> </div>
<br> <br>
@@ -14,20 +9,17 @@
<br> <br>
<div align="center"> <div align="center">
<a href="https://github.com/anotherhadi/nixy">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=Version&message=v2.0.0&colorA=181825&colorB=89b4fa&logo=githubactions&logoColor=89b4fa"/>
</a>
<a href="https://github.com/anotherhadi/nixy/stargazers"> <a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=89b4fa&labelColor=181825&style=for-the-badge&logo=starship&logoColor=89b4fa"> <img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=A594FD&labelColor=0b0b0b&style=for-the-badge&logo=starship&logoColor=A594FD">
</a> </a>
<a href="https://github.com/anotherhadi/nixy/"> <a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color=89b4fa&labelColor=181825&style=for-the-badge&logo=github&logoColor=89b4fa"> <img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color=A594FD&labelColor=0b0b0b&style=for-the-badge&logo=github&logoColor=A594FD">
</a> </a>
<a href="https://nixos.org"> <a href="https://nixos.org">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor=181825&logo=NixOS&logoColor=89b4fa&color=89b4fa"> <img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor=0b0b0b&logo=NixOS&logoColor=A594FD&color=A594FD">
</a> </a>
<a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE"> <a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA=181825&colorB=89b4fa&logo=unlicense&logoColor=89b4fa"/> <img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA=0b0b0b&colorB=A594FD&logo=unlicense&logoColor=A594FD"/>
</a> </a>
</div> </div>
<br> <br>
@@ -35,53 +27,93 @@
**Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place. **Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place.
It's a simple way to manage your system configuration and dotfiles. It's a simple way to manage your system configuration and dotfiles.
I'm Hadi, a french developer, student in infosec, enthusiastic about nix, golang & blockchains.
This is my own, **keyboard-centric**, and **minimalistic** NixOS configuration.
I enable vim-like keybindings everywhere I can, and I use a lot of custom scripts to make my life easier.
**Nixy key points:**
- Hypr-ecosystem first (hyprland, hyprlock, hyprpanel, hypridle, ...)
- Stylix/base16 themes
- Vim-like keybindings everywhere (hyprland, qutebrowser, nvim, ...)
## Table of Content ## Table of Content
- [Table of Content](#table-of-content) - [Table of Content](#table-of-content)
- [Gallery](#gallery) - [Gallery](#gallery)
- [Architecture](#architecture) - [Architecture](#architecture)
- [Installation](#installation) - [🏠 home](#-home)
- [Documentation](#documentation) - [🐧 nixos](#-nixos)
- [🎨 themes](#-themes)
- [💻 hosts](#-hosts)
- [Installation](#installation)
- [Documentation](#documentation)
## Gallery ## Gallery
![catppuccin1](docs/src/catppuccin/1.png) ![Nixy helper, peaclock](.github/assets/nixy/1.png)
![catppuccin2](docs/src/catppuccin/2.png) ![Qutebrowser, pipes, shell](.github/assets/nixy/2.png)
![catppuccin3](docs/src/catppuccin/3.png) ![nvim, lazygit](.github/assets/nixy/3.png)
![spotify, cava](.github/assets/nixy/4.png)
## Architecture ## Architecture
- 🏠 `home` are the dotfiles and configuration files for the user ### 🏠 home
- 💻 `hosts` are the system configuration files
- 'laptop' is my configuration for my laptop with Nvidia Those are the dotfiles and configuration files for user-level configuration
- 'server' is for my Nixos server (w/nextcloud, nginx, vaultwarden, ... look `hosts/server`)
- 'guest' is a *template* that you can copy and modify for *your own system* **Subfolders:**
- 'themes' contains all the *themes* available *(see [THEMES.md](docs/THEMES.md))*
- 'modules' are some nix modules that you can import (Nvidia, prime, fonts, ...) - `programs` is a collection of apps configured with home-manager
- 🤫 `secrets` are the secrets files encrypted with sops-nix - `scripts` is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
- `system` is some "desktop environment" configuration
### 🐧 nixos
Those are the system-level configurations. (audio, bluetooth, gpu, bootloader, ...)
### 🎨 themes
Those are the themes used in the system configuration. The `stylix` folder contains the [stylix](https://github.com/danth/stylix) defined themes, the `var` folder contains the variables not handled by stylix.
See avaiable themes in [THEMES.md](docs/THEMES.md)
### 💻 hosts
Those are the host-specific configurations.
Each host contains a `configuration.nix` for system-level configuration, a `home.nix` for user-level configuration, and a `variables.nix` for config wide variables.
## Installation ## Installation
1. Clone the repo
```sh ```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos git clone https://github.com/anotherhadi/nixy ~/.config/nixos
``` ```
- Copy the `hosts/guest` 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 your system name, and change the variables inside the `variables.nix` file
- Add your `hardware-configuration.nix` to your new host's folder 3. Add your `hardware-configuration.nix` to your new host's folder
- Add your 'nixosConfigurations' inside `flake.nix` (You can edit the "yourhostname" one and change the lines containing '# CHANGEME') 4. Add your 'nixosConfigurations' inside `flake.nix`
> [!NOTE] > [!Important]
> I added few `# CHANGEME` comments in the files to help you find what to change. Be sure to check them up.
> You can use `rg "CHANGEME"` to find them all with ripgrep.
> [!TIP]
> When you add new files, don't forget to run `git add .` to add them to the git repository > When you add new files, don't forget to run `git add .` to add them to the git repository
5. Build the system
```sh ```sh
sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
``` ```
## Documentation ## Documentation
- [THEMES.md](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
- [APPS.md](docs/APPS.md): Which apps are installed - [SCRIPTS](docs/SCRIPTS.md): Scripts that are available
- [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available - [KEYBINDINGS-HYPRLAND](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland
- [TODO.md](docs/TODO.md): What's next (feel free to contribute) - [WALLPAPERS](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy.
- [CONTRIBUTING.md](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT Licensey - [TODO](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License
-57
View File
@@ -1,57 +0,0 @@
# Apps and services
*non-exhaustive lists*
## Laptop
The laptop configuration is used by a Omen 16 laptop w/ nvidia and an amd gpu running NixOS.
The configurations files can be found in the `hosts/laptop` directory.
| Category | Name |
|----------------|---------------|
| WM | Hyprland |
| | hyprlock |
| | hyprpaper |
| | hypridle |
| | wlogout |
| Bar | waybar |
| Terminal | kitty |
| Shell | zsh |
| | tmux |
| | starship |
| | bat |
| | eza |
| | zoxide |
| | fzf |
| Editor | neovim(nixvim)|
| File manager | lf |
| | thunar |
| Browser | qutebrowser |
| Music | spicetify |
| Notifications | dunst |
| Launcher | wofi |
| DM | tuigreet |
| Secrets | sops-nix |
| Misc | lazygit |
| | neofetch |
| | cava |
| See [hosts/laptop](../hosts/laptop/)... | |
## Server
The server configuration is used by a home server running NixOS.
The configurations files can be found in the `hosts/server` directory.
I mainly use it for self hosting websites and services such as Nextcloud, Vaultwarden, ...
I exposed some services to the internet using a reverse proxy (Nginx) and cloudflare-dyndns, others are accessed through a tailscale network
### Apps
- Nextcloud
- Vaultwarden
- Adguard Home
- Unifi Controler
- Uptime Kuma
- "Jackflix"
- Jellyfin, Transmission, *arr
- See [hosts/server](../hosts/server/)...
+7 -4
View File
@@ -1,13 +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 `docs/TODO.md` file! Everybody is invited and welcome to contribute to Nixy. There is a lot to do... Check the [TODO.md](./TODO.md) file!
The process is straight-forward. 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 todo, ...). - Write your changes (new theme, bug fixes, task in to-do, ...).
- Create a Pull Request against the main branch of Nixy. - Create a Pull Request against the main branch of Nixy.
> [!WARNING] > [!TIP]
> Don't push your host's files, secrets, or home configuration > To update the README, change the `./docs/src/README_template.md` and run `./docs/scripts/create_readme.sh`
> [!IMPORTANT]
> Don't push your host's folder
+52
View File
@@ -0,0 +1,52 @@
[//]: # (This file is autogenerated)
# Keybindings for Hyprland
> [!NOTE]
> SUPER is the windows key by default
| Description | Keybinding |
| -- | -- |
| Switch Workspace | SUPER + {Number} |
| Move app to Workspace | SHIFT + SUPER + {Number} |
| Kitty | SUPER + RETURN |
| Thunar | SUPER + E |
| Qutebrowser | SUPER + B |
| Bitwarden | SUPER + K |
| Lock | SUPER + L |
| Powermenu | SUPER + X |
| Launcher | SUPER + SPACE |
| Quickmenu | SUPER + C |
| Toggle HyprFocus | SHIFT + SUPER + SPACE |
| "$mod,TAB, overview:toggle" | |
| Close window | SUPER + Q |
| Toggle Floating | SUPER + T |
| Toggle Fullscreen | SUPER + F |
| Move focus left | SUPER + left |
| Move focus Right | SUPER + right |
| Move focus Up | SUPER + up |
| Move focus Down | SUPER + down |
| Focus previous monitor | SHIFT + SUPER + up |
| Focus next monitor | SHIFT + SUPER + down |
| Add to master | SHIFT + SUPER + left |
| Remove from master | SHIFT + SUPER + right |
| Screenshot region | SUPER + PRINT |
| Screenshot monitor | PRINT |
| Screenshot window | SHIFT + SUPER + PRINT |
| Screenshot region then edit | ALTPRINT |
| Toggle hyprpanel | SHIFT + SUPER + T |
| Search on internet with wofi | SHIFT + SUPER + S |
| Clipboard picker with wofi | SHIFT + SUPER + C |
| Emoji picker with wofi | SHIFT + SUPER + E |
| Toggle night shift | SUPER + F2 |
| Toggle night shift | SUPER + F3 |
| Move Window (mouse) | SUPER + mouse:272 |
| Resize Window (mouse) | SUPER + R |
| Toggle Mute | XF86AudioMute |
| Play/Pause Song | XF86AudioPlay |
| Next Song | XF86AudioNext |
| Previous Song | XF86AudioPrev |
| Lock when closing Lid | switch:Lid Switch |
| Sound Up | XF86AudioRaiseVolume |
| Sound Down | XF86AudioLowerVolume |
| Brightness Up | XF86MonBrightnessUp |
| Brightness Down | XF86MonBrightnessDown |
+78 -37
View File
@@ -1,57 +1,98 @@
[//]: # (This file is autogenerated)
# Scripts # Scripts
Scripts are located in the `home/scripts` folder. Home-manager add those in the path. Scripts are located in the 'home/scripts' folder. Home-manager add those in the user's path.
## Nix/NixOs shortcuts ## Brightness
> [!TIP] This module provides a set of scripts to control the brightness of the screen.
> The `hostname` variable in `hosts/yourhost/variables.nix` should be also the name of the `nixosConfiguration` in `flake.nix` file.
- `nixy` # UI - `brightness-up` increases the brightness by 5%.
- `nixy rebuild` - `brightness-down` decreases the brightness by 5%.
- `nixy update` - `brightness-set [value]` sets the brightness to the given value.
- `nixy upgrade` - `brightness-change [up|down] [value]` increases or decreases the brightness by the given value.
- `nixy gc` # garbage collection
- `nixy cb` # clean boot menu
## Brightness control
- `brightness-up`
- `brightness-down`
- `brightness-change <up/down> <increment>`
## Sound control
- `sound-up`
- `sound-down`
- `sound-toggle`
- `sound-output`
- `sound-change [up/down/mute] <increment>`
## Caffeine ## Caffeine
Caffeine is a simple script that toggles hypridle (disable suspend & screenlock). Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
- `caffeine` # Toggle caffeine - `caffeine-status` - Check if hypridle is running. (0/1)
- `caffeine-status` # Return active/inactive - `caffeine-status-icon` - Check if hypridle is running. (icon)
- `caffeine` - Toggle hypridle.
## Night-Shift ## Hyprfocus
Blue light filter, using wlsunset A simple script to toggle focus on few windows in Hyprland.
(disable gaps, border, shadow, opacity, etc.)
- `night-shift-on` - `hyprfocus-on` - Enable hyprfocus.
- `night-shift-off` - `hyprfocus-off` - Disable hyprfocus.
- `hyprfocus-toggle` - Toggle hyprfocus.
## Hyprpanel
Quick scripts to toggle, reload, hide & show hyprpanel.
- `hyprpanel-toggle` - Toggle hyprpanel (hide/show).
- `hyprpanel-show` - Show hyprpanel.
- `hyprpanel-hide` - Hide hyprpanel.
- `hyprpanel-reload` - Reload hyprpanel.
## Nerdfont FZF ## Nerdfont FZF
Nerdfont fzf is a quick way to search for nerdfont icons locally. This module provides a script to search for Nerd Fonts icons using fzf.
It will copy the selected icon to the clipboard.
- `nerdfont-fzf` - `nerdfont-fzf` - Search for Nerd Fonts icons using fzf.
## Compress/Extract ## Night-Shift
Some shortcuts to compress and extract files. 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-off` deactivates Night-Shift.
- `night-shift` toggles Night-Shift.
- `night-shift-status` checks if Night-Shift is active. (0/1)
- `night-shift-status-icon` checks if Night-Shift is active. (icon)
## Nixy
Nixy is a simple script that I use to manage my NixOS system. It's a simple script that provides a menu to rebuild, upgrade, update, collect garbage, clean boot menu, etc.
- `nixy` - UI wizard to manage the system.
- `nixy rebuild` - Rebuild the system.
- `nixy ...` - ... see the script for more commands.
## 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
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.
## Sound
This module provides a set of scripts to control the volume of the default audio sink using `wpctl`.
- `sound-up` increases the volume by 5%.
- `sound-down` decreases the volume by 5%.
- `sound-set [value]` sets the volume to the given value.
- `sound-toggle` toggles the mute state of the default audio sink.
## System
Usefull quick scripts
- `menu` - Open wofi with drun mode. (wofi)
- `powermenu` - Open power dropdown menu. (wofi)
- `lock` - Lock the screen. (hyprlock)
- `compress` ...
- `extract` ...
+8 -19
View File
@@ -1,32 +1,21 @@
# Themes # Themes
Themes are defined in `hosts/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 variables.nix file. You can change the selected theme by changing the import statement of your host's configuration.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`
## Create your theme ## Create your theme
Create a copy of one of the existing themes and change the variables. Create a copy of one of the existing themes and change the variables.
Wallpapers are loaded from the `home/wallpapers` folder. Wallpapers are loaded from the [nixy-wallpapers](https://github.com/anotherhadi/nixy-wallpapers) repo.
## Gallery ## Gallery
### Nixy ### Nixy
![nixy1](src/nixy/1.png) ![nixy1](../.github/assets/nixy/1.png)
![nixy2](src/nixy/2.png) ![nixy2](../.github/assets/nixy/2.png)
![nixy3](src/nixy/3.png) ![nixy3](../.github/assets/nixy/3.png)
![nixy4](../.github/assets/nixy/4.png)
### Catppuccin
![catppuccin1](src/catppuccin/1.png)
![catppuccin2](src/catppuccin/2.png)
![catppuccin3](src/catppuccin/3.png)
### Windows
![windows1](src/windows/1.png)
![windows2](src/windows/2.png)
![windows3](src/windows/3.png)
+6 -38
View File
@@ -2,41 +2,9 @@
feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md)) feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md))
- [ ] Nixy - [ ] ${config.users.users.${user}.home} instead of "/home/${username}"
- [ ] Installation script ([install.sh](./scripts/install.sh) to test on a fresh install) - [ ] Hyprpanel screenshot
- [ ] Variables-template with defaults - [ ] PIA Vpn (issue in progress)
- [ ] Themes - [ ] Webcord (system24 theme? Tui)
- [ ] Upload new wallpapers - [ ] check gvolpe/nix-config
- [ ] MacOS theme - [ ] <https://github.com/isabelroses/dotfiles/blob/main/home/comfy/system/xdg.nix>
- [ ] GithubFetch: Neofetch like, github calendar in the terminal
- [ ] Write a hyprland shortcuts markdown file (Parse the hyprland settings conf)
- [ ] Tofi (Wofi but terminal based)
- [ ] Waybar
- [ ] Caffeine status
- [ ] Night-shift status
- [ ] Hyprland
- [ ] Make hyprcursor work
- [ ] Animations based on app name
- [ ] Wofi: popin
- [ ] Wlogout: fade in
- [ ] Fix screenshots
- [ ] Nixvim
- [ ] Telescope: find with file content
- [ ] Markdown snippets
- [ ] Whichkey: Description for keybindings
- [ ] Spelling
- [ ] Backup system for some folders ($home/dev, $home/pictures, ...)
- [ ] Exclude file pattern (nodes modules, ...)
- [ ] Auto backup when a specific usb key is plugged
- [ ] Usb security for laptop & server, variable in variables.nix, disable for guest
- [ ] Server
- [ ] Bitcoin-git
- [ ] ServerFetch: Neofetch like, but for server: CPU, RAM, Disk, Network, Uptime, status (check with uptime kuma API)
- [ ] Ntfy auth file
- [ ] Launch transmission-openvpn on boot (see hosts/server/modules/jackflix/transmission.nix)
-19
View File
@@ -1,19 +0,0 @@
#!/usr/bin/env bash
# Compress png files in ./docs/src
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
# Main images
for file in ./docs/src/*.png; do
optipng "$file"
done
# Theme's images
for file in ./docs/src/*/*.png; do
optipng "$file"
done
for file in ./home/wallpapers/*.png; do
optipng "$file"
done
-29
View File
@@ -1,29 +0,0 @@
#!/usr/bin/env bash
# This script is used to copy my own configuration to the `./hosts/guest` one, and changing some settings
[[ -d "./hosts" ]] || (
echo "Folder ./hosts not found"
exit 1
)
LAPTOP_CONFIG="./hosts/laptop"
GUEST_CONFIG="./hosts/guest"
cp "$LAPTOP_CONFIG/configuration.nix" "$GUEST_CONFIG/configuration.nix"
cp "$LAPTOP_CONFIG/variables.nix" "$GUEST_CONFIG/variables.nix"
# Remove the NVIDIA driver import
config=$(cat "$LAPTOP_CONFIG/configuration.nix")
config=$(echo "$config" | sed 's/..\/shared\/nvidia/# ..\/shared\/nvidia/')
config=$(echo "$config" | sed 's/..\/shared\/prime/# ..\/shared\/prime/')
echo "$config" >"$GUEST_CONFIG/configuration.nix"
variables=$(cat "$LAPTOP_CONFIG/variables.nix")
variables=$(echo "$variables" | sed 's/112569860+anotherhadi@users.noreply.github.com/your_email/')
variables=$(echo "$variables" | sed 's/hadi/your_username/')
variables=$(echo "$variables" | sed 's/Hadi/your_username/')
variables=$(echo "$variables" | sed 's/sops = true/sops = false/')
variables=$(echo "$variables" | sed 's/obsidian = true/obsidian = false/')
variables=$(echo "$variables" | sed 's/tailscale = true/tailscale = false/')
echo "$variables" >"$GUEST_CONFIG/variables.nix"
-23
View File
@@ -1,23 +0,0 @@
#!/usr/bin/env bash
# Create the README.md file from the docs/src/README_template.md file
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
README_FILE="./README.md"
header=$(cat "./docs/src/header.md")
table_of_content=$(~/go/bin/md-table-of-contents ./docs/src/README_template.md)
version=$(git describe --tags --abbrev=0)
readme_content=$(cat "./docs/src/README_template.md")
header=${header//\{date\}/$(date '+%D')}
header=${header//\{primarycolor\}/89b4fa}
header=${header//\{backgroundcolor\}/181825}
header=${header//\{version\}/$version}
readme_content=${readme_content//\{md_table_of_content\}/$table_of_content}
echo "$header" >"$README_FILE"
echo "$readme_content" >>"$README_FILE"
sed 's/\r//' "$README_FILE" >"/tmp/readme.md"
mv "/tmp/readme.md" "$README_FILE"
-21
View File
@@ -1,21 +0,0 @@
#!/usr/bin/env bash
[[ -f "./home/system/hyprland/default.nix" ]] || (echo "File ./home/system/hyprland/default.nix not found" && exit 1)
config=$( cat "./home/system/hyprland/default.nix")
# get text between
# bind = [
# and next ]
# Example:
# "$mod, E, exec, ${pkgs.xfce.thunar}/bin/thunar" # Description
# Steps:
# We should remove the ""
# $mod replace by Super key
# $shiftMod replace by "Super Shift"
# Concat with key
# Remove , exec,
# Remove variables and /bin/ if present
# Create a markdown table with everything
-78
View File
@@ -1,78 +0,0 @@
#!/usr/bin/env bash
# https://github.com/anotherhadi/nixy
# Installation script: Should be run on fresh nixos install.
printf "\n\e[0;92m- \e[0m\e[1;77mNixy's Installation Script\e[0;96m [anotherhadi/nixy]\e[0m"
# Check if we're on the good directory
[[ -f "./docs/scripts/install.sh" ]] || (
printf "\n\e[0;91mx \e[0m\e[1;77mNot in the project root directory\e[0m"
exit 1
)
DIR=$PWD
# Create a new configuration
read -rp $'\n\e[0;92m+\e[0m\e[1;77m Username: \e[0;96m' username
read -rp $'\n\e[0;92m+\e[0m\e[1;77m Hostname: \e[0;96m' hostname
HOST_DIR="./hosts/$hostname"
mkdir "$HOST_DIR"
nixos-generate-config --show-hardware-config >"$HOST_DIR/hardware-configuration.nix"
printf "\n\e[0;92m? \e[0m\e[1;77mInstall Nvidia drivers?\e[0;96m [y/N]\e[0m"
read -r yn
yn=$(echo "$yn" | tr '[:upper:]' '[:lower:]')
if [[ $yn == "y" || $yn == "yes" ]]; then
nvidia=true
else
nvidia=false
fi
printf "\n\e[0;92m? \e[0m\e[1;77mInstall prime?\e[0;96m [y/N]\e[0m"
read -r yn
yn=$(echo "$yn" | tr '[:upper:]' '[:lower:]')
if [[ $yn == "y" || $yn == "yes" ]]; then
prime=true
else
prime=false
fi
cp "$LAPTOP_CONFIG/configuration.nix" "$HOST_DIR/configuration.nix"
cp "$LAPTOP_CONFIG/variables.nix" "$HOST_DIR/variables.nix"
config=$(cat "$LAPTOP_CONFIG/configuration.nix")
if [[ $nvidia == false ]]; then
config=$(echo "$config" | sed 's/..\/shared\/nvidia/# ..\/shared\/nvidia/')
fi
if [[ $prime == false ]]; then
config=$(echo "$config" | sed 's/..\/shared\/prime/# ..\/shared\/prime/')
fi
echo "$config" >"$HOST_DIR/configuration.nix"
variables=$(cat "$LAPTOP_CONFIG/variables.nix")
variables=$(echo "$variables" | sed 's/112569860+anotherhadi@users.noreply.github.com/your_email/')
variables=$(echo "$variables" | sed "s/hadi/$username/")
variables=$(echo "$variables" | sed "s/nixy/$hostname/") # FIXME: Host name can be mixed with themes
variables=$(echo "$variables" | sed "s/Hadi/$username/")
variables=$(echo "$variables" | sed 's/sops = true/sops = false/')
variables=$(echo "$variables" | sed 's/obsidian = true/obsidian = false/')
variables=$(echo "$variables" | sed 's/tailscale = true/tailscale = false/')
echo "$variables" >"$HOST_DIR/variables.nix"
# Add it to the git index
git add .
printf "\n\e[0;92m+ \e[0m\e[1;77mHost added!\e[0m"
# REBUILD
printf "\n\e[0;92m? \e[0m\e[1;77mDo you want to rebuild?\e[0;96m [y/N]\e[0m"
read -r yn
yn=$(echo "$yn" | tr '[:upper:]' '[:lower:]')
if [[ $yn == "y" || $yn == "yes" ]]; then
sudo nixos-rebuild switch --flake "$DIR"#"$hostname"
fi
printf "\n\e[0;92m✓ \e[0m\e[1;77mDone!\e[0m"
-42
View File
@@ -1,42 +0,0 @@
#!/usr/bin/env bash
[ "$1" = "" ] && echo "Usage: $0 <theme_name>" && exit 1
theme_name=$1
# Switch to workspace 1
sleep 2
# Step 1
kitty --class peaclock peaclock &
sleep 1
menu &
sleep 1
hyprshot -m "output" -m "active" -o "$HOME/.config/nixos/docs/src/$theme_name" -f "1.png" -d
sleep 2
pkill peaclock
menu
sleep 2
# Step 2
kitty cmatrix &
sleep 1
kitty &
sleep 1
qutebrowser &
sleep 3
hyprshot -m "output" -m "active" -o "$HOME/.config/nixos/docs/src/$theme_name" -f "2.png" -d
sleep 2
pkill cmatrix
pkill --newest qutebrowser ""
pkill --newest kitty
sleep 2
# Step 3
kitty cava &
sleep 1
spotify &
sleep 10
brightness-down
sleep 1
hyprshot -m "output" -m "active" -o "$HOME/.config/nixos/docs/src/$theme_name" -f "3.png" -d
sleep 2
-50
View File
@@ -1,50 +0,0 @@
**Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place.
It's a simple way to manage your system configuration and dotfiles.
## Table of Content
{md_table_of_content}
## Gallery
![catppuccin1](docs/src/catppuccin/1.png)
![catppuccin2](docs/src/catppuccin/2.png)
![catppuccin3](docs/src/catppuccin/3.png)
## Architecture
- 🏠 `home` are the dotfiles and configuration files for the user
- 💻 `hosts` are the system configuration files
- 'laptop' is my configuration for my laptop with Nvidia
- 'server' is for my homeserver (w/nextcloud, nginx, vaultwarden, ... look `hosts/server`)
- 'guest' is a *template* that you can copy and modify for *your own system*
- 'themes' contains all the *themes* available *(see [THEMES.md](docs/THEMES.md))*
- 'modules' are some nix modules that you can import (Nvidia, prime, fonts, ...)
- 🤫 `secrets` are the secrets files encrypted with sops-nix
## Installation
```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos
```
- Copy the `hosts/guest` folder, rename it to your system name, and change the variables inside the `variables.nix` file
- Add your `hardware-configuration.nix` to your new host's folder
- Add your 'nixosConfigurations' inside `flake.nix` (You can edit the "yourhostname" one and change the lines containing '# CHANGEME')
> [!NOTE]
> When you add new files, don't forget to run `git add .` to add them to the git repository
```sh
sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
```
## Documentation
- [THEMES.md](docs/THEMES.md): How themes work and how to create your own
- [APPS.md](docs/APPS.md): Which apps are installed
- [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available
- [TODO.md](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING.md](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT Licensey
-33
View File
@@ -1,33 +0,0 @@
[//]: # (Title: Nixy)
[//]: # (Description: Nixy is a Hyprland NixOS configuration with home-manager, secrets and custom theming all in one place. It's a simple way to manage your system configuration and dotfiles.)
[//]: # (Author: Hadi)
[//]: # (Date: {date})
[//]: # (Version: {version})
<div align="center">
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/docs/src/logo.png" width="100px" />
</div>
<br>
# Nixy
<br>
<div align="center">
<a href="https://github.com/anotherhadi/nixy">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=Version&message={version}&colorA={backgroundcolor}&colorB={primarycolor}&logo=githubactions&logoColor={primarycolor}"/>
</a>
<a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color={primarycolor}&labelColor={backgroundcolor}&style=for-the-badge&logo=starship&logoColor={primarycolor}">
</a>
<a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color={primarycolor}&labelColor={backgroundcolor}&style=for-the-badge&logo=github&logoColor={primarycolor}">
</a>
<a href="https://nixos.org">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor={backgroundcolor}&logo=NixOS&logoColor={primarycolor}&color={primarycolor}">
</a>
<a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA={backgroundcolor}&colorB={primarycolor}&logo=unlicense&logoColor={primarycolor}"/>
</a>
</div>
<br>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

-1
View File
@@ -1 +0,0 @@
8c00e379ddd7f89e4bbf9f381a5721d980c8026f
-1
View File
@@ -1 +0,0 @@
62b52ad02a886c19a8cfe1ea17e8aaad50f23632
Generated
+1370 -147
View File
File diff suppressed because it is too large Load Diff
+29 -62
View File
@@ -7,6 +7,7 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -15,76 +16,42 @@
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
apple-fonts.url = "github:Lyndeno/apple-fonts.nix"; spicetify-nix = {
spicetify-nix.url = "github:the-argus/spicetify-nix"; url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = { sops-nix = {
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprspace = { url = "github:KZDKM/Hyprspace"; };
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
nurpkgs.url = "github:nix-community/NUR"; hyprpolkitagent.url = "github:hyprwm/hyprpolkitagent";
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
stylix.url = "github:danth/stylix";
apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
nur.url = "github:nix-community/NUR";
zen-browser.url =
"git+https://git.sr.ht/~canasta/zen-browser-flake/"; # updated flake
}; };
outputs = inputs@{ nixpkgs, nur, ... }: { outputs = inputs@{ nixpkgs, ... }: {
nixosConfigurations = { nixosConfigurations = {
nixy = # CHANGEME: This should match the 'hostname' in your variables.nix file
nixy = nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
./hosts/laptop/configuration.nix {
inputs.nixos-hardware.nixosModules.omen-16-n0005ne nixpkgs.overlays =
inputs.home-manager.nixosModules.home-manager [ inputs.hyprpanel.overlay inputs.nur.overlays.default ];
{ _module.args = { inherit inputs; };
nixpkgs.overlays = [ nur.overlay ]; }
_module.args = { inherit inputs; }; inputs.nixos-hardware.nixosModules.omen-16-n0005ne # CHANGEME: check https://github.com/NixOS/nixos-hardware
home-manager = { inputs.home-manager.nixosModules.home-manager
useGlobalPkgs = true; inputs.stylix.nixosModules.stylix
useUserPackages = true; ./hosts/laptop/configuration.nix # CHANGEME: change the path to match your host folder
users."hadi" = import ./home/laptop.nix; ];
extraSpecialArgs = { inherit inputs; }; };
};
}
];
};
jack = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
inputs.sops-nix.nixosModules.sops
./hosts/server/configuration.nix
inputs.home-manager.nixosModules.home-manager
{
nixpkgs.overlays = [ nur.overlay ];
_module.args = { inherit inputs; };
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users."hadi" = import ./home/server.nix;
extraSpecialArgs = { inherit inputs; };
};
}
];
};
yourhostname = nixpkgs.lib.nixosSystem { # CHANGEME
system = "x86_64-linux";
modules = [
./hosts/yourhostname/configuration.nix # CHANGEME
inputs.home-manager.nixosModules.home-manager
{
nixpkgs.overlays = [ nur.overlay ];
_module.args = { inherit inputs; };
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users."yourusername" = import # CHANGEME
./home/laptop.nix; # you can also create a new ./home/yourhostname.nix
extraSpecialArgs = { inherit inputs; };
};
}
];
};
}; };
}; };
-103
View File
@@ -1,103 +0,0 @@
{ pkgs, config, ... }: {
imports = [
../hosts/laptop/variables.nix # CHANGEME, replace with your host
# Programs
./programs/btop
./programs/cava
./programs/kitty
./programs/nextcloud
./programs/nvim
./programs/qutebrowser
./programs/spicetify
./programs/zathura
./programs/shell
./programs/git
# Scripts
./scripts # All scripts
# System (Desktop environment like stuff)
./system/dunst
./system/gtk
./system/hyprland
./system/waybar
./system/wlogout
./system/wofi
./system/mime
./system/udiskie
./system/sops/laptop.nix # You should probably remove this line
];
home = {
inherit (config.var) username;
inherit (config.var) homeDirectory;
packages = with pkgs; [
swappy
imv
discord
obsidian
xfce.thunar
bitwarden
vlc
nextcloud-client
tailscale
# Dev
go
cargo
nodejs
python3
jq
git-ignore
nurl
prefetch-npm-deps
figlet
# Utils
fd
bc
gcc
blueman
zip
unzip
xdg_utils
wget
curl
wf-recorder
glow
nwg-displays
wireguard-tools
bitwarden-cli
optipng
pfetch
usbutils
# Just cool
peaclock
cbonsai
pipes
cmatrix
# Backup
vscode
tor-browser
firefox
neovide
];
# Import wallpapers into $HOME/wallpapers
file."wallpapers" = {
recursive = true;
source = ./wallpapers;
};
stateVersion = "24.05";
};
programs.home-manager.enable = true;
}
-9
View File
@@ -1,9 +0,0 @@
{
programs.btop = {
enable = true;
settings = {
color_theme = "Default";
theme_background = false;
};
};
}
-13
View File
@@ -1,13 +0,0 @@
{ config, ... }: {
programs.cava = {
enable = true;
settings = {
general.framerate = 60;
smoothing.noise_reduction = 88;
color = {
background = "'#${config.var.theme.colors.bg}'";
foreground = "'#${config.var.theme.colors.accent}'";
};
};
};
}
@@ -0,0 +1,44 @@
# A duckduckgo colorscheme generated for the Stylix theme used.
{ config, ... }:
let
accent = config.lib.stylix.colors.base0D;
background = config.lib.stylix.colors.base00;
foreground = config.lib.stylix.colors.base05;
background-alt = config.lib.stylix.colors.base01;
foreground-alt = config.lib.stylix.colors.base06;
in {
home.file.".duckduckgo-colorscheme.js".text =
# js
''
// Go to DuckDuckGo settings page, open the console, paste the code and hit enter.
// based on https://ddg.codingcodax.dev/
// Cookies string for your theme
const cookie = '7=${background}; j=${background}; 9=${foreground}; aa=${foreground-alt}; 8=${foreground}; x=${accent}; 21=${background-alt};';
// Converts cookie string into formatted JSON
const cookieToJSON = (cookieRaw) => {
const cookieJson = {};
const items = cookieRaw.split(/[ ,]+/);
items.forEach((item) => {
const parts = item.split('=');
cookieJson[parts[0]] = parts[1];
});
return cookieJson;
};
// Iterates over JSON, and adds to browser cookie store
const setCookies = (cookieJson) => {
Object.keys(cookieJson).forEach((key) => {
document.cookie = `''${key}=''${cookieJson [ key ]}`;
});
};
// Call set cookies, passing in formated cookie data
setCookies(cookieToJSON(cookie));
// All done, reload page for changes to take effect :)
location.reload();
'';
}
@@ -1,4 +1,4 @@
{ pkgs, config, ... }: { { pkgs, ... }: {
home.packages = with pkgs; [ neofetch ]; home.packages = with pkgs; [ neofetch ];
xdg.configFile."neofetch/ascii.txt".text = '' xdg.configFile."neofetch/ascii.txt".text = ''
@@ -109,9 +109,6 @@
song_format="%artist% - %album% - %title%" song_format="%artist% - %album% - %title%"
song_shorthand="off" song_shorthand="off"
mpc_args=() mpc_args=()
colors=(${toString config.var.theme.colors.accentNumber} 1 ${
toString config.var.theme.colors.accentNumber
} ${toString config.var.theme.colors.accentNumber} 7)
bold="on" bold="on"
underline_enabled="on" underline_enabled="on"
underline_char="-" underline_char="-"
@@ -1,4 +1,4 @@
{ pkgs, config, ... }: { pkgs, ... }:
let let
nerdfetch = pkgs.writeShellScriptBin "nerdfetch" '' nerdfetch = pkgs.writeShellScriptBin "nerdfetch" ''
ostype="$(uname)" ostype="$(uname)"
@@ -345,9 +345,9 @@ let
## USER VARIABLES -- YOU CAN CHANGE THESE ## USER VARIABLES -- YOU CAN CHANGE THESE
lc="$reset$bold''$${config.var.theme.colors.accentName}" # labels lc="$reset$bold$magenta" # labels
nc="$reset$bold''$${config.var.theme.colors.accentName}" # labels nc="$reset$bold$magenta" # labels
hn="$reset$bold''$${config.var.theme.colors.accentName}" # labels hn="$reset$bold$magenta" # labels
ic="$reset$white" # info ic="$reset$white" # info
c0="$reset$grey" # first color c0="$reset$grey" # first color
c1="$reset$white" # second color c1="$reset$white" # second color
+8 -3
View File
@@ -1,8 +1,12 @@
{ config, ... }: { { config, ... }:
let
username = config.var.git.username;
email = config.var.git.email;
in {
programs.git = { programs.git = {
enable = true; enable = true;
userName = config.var.git.username; userName = username;
userEmail = config.var.git.email; userEmail = email;
ignores = [ ignores = [
".cache/" ".cache/"
".DS_Store" ".DS_Store"
@@ -18,6 +22,7 @@
extraConfig = { extraConfig = {
init.defaultBranch = "main"; init.defaultBranch = "main";
push.autoSetupRemote = true; push.autoSetupRemote = true;
color.ui = "1";
}; };
aliases = { aliases = {
essa = "push --force"; essa = "push --force";
+12 -32
View File
@@ -1,6 +1,15 @@
{ config, pkgs, ... }: { {
programs.kitty = { programs.kitty = {
enable = true; enable = true;
keybindings = {
# Reset existing mappings
"ctrl+alt+tab" = "next_tab";
"ctrl+alt+shift+tab" = "previous_tab";
# Send Ctrl Tab and Ctrl + Shift + Tab for Tmux navigation
"ctrl+tab" = "send_text all \\x1b[27;5;9~";
"ctrl+shift+tab" = "send_text all \\x1b[27;6;9~";
"alt+tab" = "send_text all \\x1b[27;3;9~";
};
settings = { settings = {
scrollback_lines = 10000; scrollback_lines = 10000;
initial_window_width = 1200; initial_window_width = 1200;
@@ -10,39 +19,10 @@
confirm_os_window_close = "0"; confirm_os_window_close = "0";
remember_window_size = "no"; remember_window_size = "no";
disable_ligatures = "never"; disable_ligatures = "never";
shell = "${pkgs.tmux}/bin/tmux";
url_style = "curly"; url_style = "curly";
cursor_shape = "Underline"; cursor_shape = "Underline";
cursor_underline_thickness = config.var.theme.border-size; cursor_underline_thickness = 3;
window_padding_width = config.var.theme.gaps-in; window_padding_width = 10;
# Font
font_family = config.var.theme.font-mono;
font_size = config.var.theme.font-size;
# Colors
background = "#" + config.var.theme.colors.bg;
url_color = "#" + config.var.theme.colors.accent;
color0 = "#" + config.var.theme.colors.c0;
color8 = "#" + config.var.theme.colors.c8;
color1 = "#" + config.var.theme.colors.c1;
color9 = "#" + config.var.theme.colors.c9;
color2 = "#" + config.var.theme.colors.c2;
color10 = "#" + config.var.theme.colors.c10;
color3 = "#" + config.var.theme.colors.c3;
color11 = "#" + config.var.theme.colors.c11;
color4 = "#" + config.var.theme.colors.c4;
color12 = "#" + config.var.theme.colors.c12;
color5 = "#" + config.var.theme.colors.c5;
color13 = "#" + config.var.theme.colors.c13;
color6 = "#" + config.var.theme.colors.c6;
color14 = "#" + config.var.theme.colors.c14;
color7 = "#" + config.var.theme.colors.c7;
color15 = "#" + config.var.theme.colors.c15;
cursor = "#" + config.var.theme.colors.fg;
cursor_text_color = "#" + config.var.theme.colors.bg;
selection_foreground = "#" + config.var.theme.colors.accentFg;
selection_background = "#" + config.var.theme.colors.accent;
}; };
}; };
} }
+22
View File
@@ -0,0 +1,22 @@
{ config, lib, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}";
in {
programs.lazygit = {
enable = true;
settings = lib.mkForce {
gui = {
theme = {
activeBorderColor = [ accent "bold" ];
inactiveBorderColor = [ muted ];
};
showListFooter = false;
showRandomTip = false;
showCommandLog = false;
showBottomLine = false;
nerdFontsVersion = "3";
};
};
};
}
+5 -4
View File
@@ -1,6 +1,7 @@
# Nextcloud is a suite of client-server software for creating file hosting services and using them. It is functionally similar to Dropbox, although Nextcloud is free and open-source, allowing anyone to install and operate it on a private server. In contrast to proprietary services, Nextcloud can be hosted on a private server, without additional cost.
{ {
services.nextcloud-client = { services.nextcloud-client = {
enable = true; enable = true;
startInBackground = true; startInBackground = true;
}; };
} }
+187
View File
@@ -0,0 +1,187 @@
{
programs.nixvim = {
autoGroups = {
auto_quit.clear = true;
autoview.clear = true;
bufferline.clear = true;
checktime.clear = true;
create_dir.clear = true;
editorconfig_filetype.clear = true;
file_user_events.clear = true;
highlighturl.clear = true;
highlightyank.clear = true;
large_buf_settings.clear = true;
q_close_windows.clear = true;
terminal_settings.clear = true;
unlist_quickfix.clear = true;
};
autoCmd = [
# auto_quit
# https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_autocmds.lua#L18-L46
{
desc =
"Quit neovim if more than one window is open and only sidebar windows are list";
event = "BufEnter";
group = "auto_quit";
callback.__raw = ''
function()
local wins = vim.api.nvim_tabpage_list_wins(0)
-- Both neo-tree and aerial will auto-quit if there is only a single window left
if #wins <= 1 then return end
local sidebar_fts = { aerial = true, ["neo-tree"] = true }
for _, winid in ipairs(wins) do
if vim.api.nvim_win_is_valid(winid) then
local bufnr = vim.api.nvim_win_get_buf(winid)
local filetype = vim.bo[bufnr].filetype
-- If any visible windows are not sidebars, early return
if not sidebar_fts[filetype] then
return
-- If the visible window is a sidebar
else
-- only count filetypes once, so remove a found sidebar from the detection
sidebar_fts[filetype] = nil
end
end
end
if #vim.api.nvim_list_tabpages() > 1 then
vim.cmd.tabclose()
else
vim.cmd.qall()
end
end
'';
}
# autoview
# https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_autocmds.lua#L49-L70
{
desc = "Save view with mkview for real files";
event = [ "BufWinLeave" "BufWritePost" "WinLeave" ];
group = "autoview";
callback.__raw = ''
function(event)
if vim.b[event.buf].view_activated then vim.cmd.mkview { mods = { emsg_silent = true } } end
end
'';
}
{
desc =
"Try to load file view if available and enable view saving for real files";
event = "BufWinEnter";
group = "autoview";
callback.__raw = ''
function(event)
if not vim.b[event.buf].view_activated then
local filetype = vim.bo[event.buf].filetype
local buftype = vim.bo[event.buf].buftype
local ignore_filetypes = { "gitcommit", "gitrebase", "svg", "hgcommit" }
if buftype == "" and filetype and filetype ~= "" and not vim.tbl_contains(ignore_filetypes, filetype) then
vim.b[event.buf].view_activated = true
vim.cmd.loadview { mods = { emsg_silent = true } }
end
end
end
'';
}
# checktime
# https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_autocmds.lua#L118-L122
{
desc = "Check if buffers changed on editor focus";
event = [ "FocusGained" "TermClose" "TermLeave" ];
group = "checktime";
command = "checktime";
}
# editorconfig_filetype
# https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_autocmds.lua#L135-L144
{
desc =
"Configure editorconfig after filetype detection to override `ftplugin`s";
event = "FileType";
group = "editorconfig_filetype";
callback.__raw = ''
function(args)
if vim.F.if_nil(vim.b.editorconfig, vim.g.editorconfig, true) then
local editorconfig_avail, editorconfig = pcall(require, "editorconfig")
if editorconfig_avail then editorconfig.config(args.buf) end
end
end
'';
}
# 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
'';
}
# terminal_settings
# https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_autocmds.lua#L258-L266
{
desc = "Disable line number/fold column/sign column for terminals";
event = "TermOpen";
group = "terminal_settings";
callback.__raw = ''
function()
vim.opt_local.number = false
vim.opt_local.relativenumber = false
vim.opt_local.foldcolumn = "0"
vim.opt_local.signcolumn = "no"
end
'';
}
# unlist_quickfix
# https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_autocmds.lua#L270-L275
{
desc = "Unlist quickfix buffers";
event = "FileType";
group = "unlist_quickfix";
pattern = "qf";
callback.__raw = ''
function()
vim.opt_local.buflisted = false
end
'';
}
];
};
}
-9
View File
@@ -1,9 +0,0 @@
{
programs.nixvim = {
enable = true;
colorschemes.catppuccin = {
enable = true;
settings = { transparent_background = true; };
};
};
}
+14 -24
View File
@@ -1,31 +1,21 @@
# Nixvim is a NixOS module that installs and configures Neovim
{ inputs, ... }: { { inputs, ... }: {
imports = [ imports = [
inputs.nixvim.homeManagerModules.nixvim inputs.nixvim.homeManagerModules.nixvim
./plugins/auto-pairs.nix
./plugins/bufferline.nix
./plugins/lazygit.nix
./plugins/telescope.nix
./plugins/nvim-tree.nix
./plugins/lightline.nix
./plugins/git.nix
./plugins/cmp.nix
./plugins/none-ls.nix
./plugins/wilder.nix
./plugins/lsp.nix ./plugins/lsp.nix
./plugins/treesitter.nix ./plugins/tree.nix
./plugins/toggleterm.nix ./plugins/telescope.nix
./plugins/copilot.nix ./plugins/cmp.nix
./plugins/whichkey.nix ./plugins/ui.nix
./plugins/alpha.nix ./plugins/lualine.nix
./plugins/keymaps.nix ./plugins/utils.nix
./plugins/comment.nix ./plugins/dashboard.nix
./plugins/oil.nix ./plugins/markdown.nix
./plugins/trouble.nix
./plugins/tmux-navigator.nix
./plugins/noice.nix
./plugins/obsidian.nix
./plugins/image.nix
./options.nix ./options.nix
./colorscheme.nix ./keymaps.nix
./autocmds.nix
]; ];
programs.nixvim.enable = true;
} }
+310
View File
@@ -0,0 +1,310 @@
{
programs.nixvim = {
plugins.which-key = {
enable = true;
settings = {
delay = 600;
icons = {
breadcrumb = "»";
group = "+";
separator = ""; # ➜
mappings = false;
};
spec = [
# General Mappings
{
__unkeyed-1 = "<leader>c";
mode = [ "n" "v" ];
group = "+code";
}
{
__unkeyed-1 = "<leader>d";
mode = [ "n" "v" ];
group = "+debug";
}
{
__unkeyed-1 = "<leader>s";
mode = "n";
group = "+search";
}
{
__unkeyed-1 = "<leader>m";
mode = "n";
group = "+markdown";
}
{
__unkeyed-1 = "<leader>t";
mode = "n";
group = "+trouble";
}
{
__unkeyed-1 = "<leader>u";
mode = "n";
group = "+ui";
}
{
__unkeyed-1 = "<leader>w";
mode = "n";
group = "+windows";
}
{
__unkeyed-1 = "<leader>h";
mode = "n";
group = "+harpoon";
}
];
win = {
border = "rounded";
wo.winblend = 0;
};
};
};
keymaps = [
# General Mappings
{
key = "<leader>e";
action = "<cmd>Oil --float<cr>";
options.desc = "Oil";
}
{
key = "-";
action = "<cmd>Oil<cr>";
options.desc = "Oil";
}
{
key = "<leader>E";
action = "<cmd>Neotree toggle<cr>";
options.desc = "Neotree";
}
{
key = "s";
action = "<cmd>lua require('flash').jump()<cr>";
options.desc = "Flash";
}
{
key = "K";
action = "<cmd>lua vim.lsp.buf.hover()<cr>";
options.desc = "LSP Hover";
}
{
key = "<C-h>";
action = "<cmd>TmuxNavigateLeft<cr>";
}
{
key = "<C-j>";
action = "<cmd>TmuxNavigateDown<cr>";
}
{
key = "<C-k>";
action = "<cmd>TmuxNavigateUp<cr>";
}
{
key = "<C-l>";
action = "<cmd>TmuxNavigateRight<cr>";
}
# UI
{
key = "<leader>uz";
action = "<cmd>ZenMode<cr>";
options.desc = "Toggle ZenMode";
}
{
key = "<leader>uw";
action = "<cmd>set wrap!<cr>";
options.desc = "Toggle word wrapping";
}
{
key = "<leader>ul";
action = "<cmd>set linebreak!<cr>";
options.desc = "Toggle linebreak";
}
{
key = "<leader>us";
action = "<cmd>set spell!<cr>";
options.desc = "Toggle spellcheck";
}
{
key = "<leader>uc";
action = "<cmd>set cursorline!<cr>";
options.desc = "Toggle cursorline";
}
{
key = "<leader>un";
action = "<cmd>set number!<cr>";
options.desc = "Toggle line numbers";
}
{
key = "<leader>ur";
action = "<cmd>set relativenumber!<cr>";
options.desc = "Toggle relative line numbers";
}
{
key = "<leader>ut";
action = "<cmd>set showtabline=2<cr>";
options.desc = "Show tabline";
}
{
key = "<leader>uT";
action = "<cmd>set showtabline=0<cr>";
options.desc = "Hide tabline";
}
# Search
{
key = "<leader> ";
action = "<cmd>lua require('telescope.builtin').find_files()<cr>";
options.desc = "Telescope";
}
{
key = "<leader>sg";
action = "<cmd>lua require('telescope.builtin').live_grep()<cr>";
options.desc = "Livegrep";
}
{
key = "<leader>sf";
action = "<cmd>lua require('telescope.builtin').find_files()<cr>";
options.desc = "Find Files";
}
{
key = "<leader>sb";
action = "<cmd>lua require('telescope.builtin').buffers()<cr>";
options.desc = "Buffers";
}
{
key = "<leader>sh";
action = "<cmd>lua require('telescope.builtin').help_tags()<cr>";
options.desc = "Help Tags";
}
{
key = "<leader>sc";
action = "<cmd>lua require('telescope.builtin').commands()<cr>";
options.desc = "Commands";
}
{
key = "<leader>sm";
action = "<cmd>lua require('telescope.builtin').marks()<cr>";
options.desc = "Marks";
}
{
key = "<leader>so";
action = "<cmd>lua require('telescope.builtin').oldfiles()<cr>";
options.desc = "Oldfiles";
}
{
key = "<leader>ss";
action = "<cmd>lua require('telescope.builtin').spell_suggest()<cr>";
options.desc = "Spell Suggest";
}
{
key = "<leader>sr";
action = "<cmd>:noh<return><esc>";
options.desc = "Reset search";
}
{
key = "<leader>st";
action = "<cmd>TodoTelescope<cr>";
options.desc = "Todos";
}
# Trouble
{
key = "<leader>tx";
action = "<cmd>Trouble diagnostics toggle<cr>";
options.desc = "Diagnostics (Trouble)";
}
{
key = "<leader>tX";
action = "<cmd>Trouble diagnostics toggle filter.buf=0<cr>";
options.desc = "Buffer Diagnostics (Trouble)";
}
{
key = "<leader>ts";
action = "<cmd>Trouble symbols toggle focus=false<cr>";
options.desc = "Symbols (Trouble)";
}
{
key = "<leader>tl";
action = "<cmd>Trouble lsp toggle focus=false win.position=right<cr>";
options.desc = "LSP Definitions / references / ... (Trouble)";
}
{
key = "<leader>tL";
action = "<cmd>Trouble loclist toggle<cr>";
options.desc = "Location List (Trouble)";
}
{
key = "<leader>tQ";
action = "<cmd>Trouble qflist toggle<cr>";
options.desc = "Quickfix List (Trouble)";
}
# Windows
{
key = "<leader>ws";
action = "<cmd>split<cr>";
options.desc = "Split";
}
{
key = "<leader>wv";
action = "<cmd>vsplit<cr>";
options.desc = "VSplit";
}
{
key = "<leader>wd";
action = "<cmd>close<cr>";
options.desc = "Close";
}
# Code
{
key = "<leader>cd";
action = "<cmd>lua vim.lsp.buf.definition()<cr>";
options.desc = "LSP Definition";
}
{
key = "<leader>cr";
action = "<cmd>lua vim.lsp.buf.references()<cr>";
options.desc = "LSP References";
}
{
key = "<leader>ct";
action = "<cmd>lua vim.lsp.buf.type_definition()<cr>";
options.desc = "LSP Type Definition";
}
{
key = "<leader>ca";
action = "<cmd>lua vim.lsp.buf.code_action()<cr>";
options.desc = "LSP Code Action";
}
{
key = "<leader>cf";
action = "<cmd>lua vim.lsp.buf.formatting()<cr>";
options.desc = "LSP Formatting";
}
{
key = "<leader>cn";
action = "<cmd>lua vim.lsp.diagnostic.goto_next()<cr>";
options.desc = "LSP Next Diagnostic";
}
{
key = "<leader>cp";
action = "<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>";
options.desc = "LSP Previous Diagnostic";
}
{
key = "<leader>cu";
action = "<cmd>lua require('dapui').toggle()<CR>";
options.desc = "Toggle Dapui";
}
{
key = "<leader>cb";
action = "<cmd>lua require('dap').toggle_breakpoint()<CR>";
options.desc = "Toggle breakpoint";
}
];
};
}
+141 -27
View File
@@ -1,37 +1,151 @@
{ {
programs.nixvim = {
globals.mapleader = " ";
opts = {
autoindent = true;
programs.nixvim.globals.mapleader = " "; smartindent = true;
programs.nixvim.opts = {
updatetime = 50; # Faster completion
number = true; incsearch = true;
relativenumber = true; hlsearch = true;
wildmode = "list:longest";
scrolloff = 8;
autoindent = true; swapfile = false;
clipboard = "unnamed,unnamedplus"; conceallevel = 3;
clipboard = "unnamed,unnamedplus";
expandtab = true; # Don't stop backspace at insert
tabstop = 2; backspace.__raw = ''
softtabstop = 2; vim.list_extend(vim.opt.backspace:get(), { "nostop" })
shiftwidth = 2; '';
smartindent = true;
breakindent = true;
ignorecase = true; # Keep visual indentation on wrapped lines
incsearch = true; breakindent = true;
hlsearch = true;
smartcase = true;
wildmode = "list:longest";
completeopt = [ "menuone" "noselect" ];
signcolumn = "yes";
cursorline = true;
scrolloff = 8;
mouse = "a";
wrap = false; # Hide command line unless needed
cmdheight = 0;
swapfile = false; # Insert mode completion options
undofile = true; completeopt = [ "menu" "menuone" "noselect" ];
conceallevel = 2;
# 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;
# Enable linematch diff algorithm
diffopt.__raw = ''
vim.list_extend(vim.opt.diffopt:get(), { "algorithm:histogram", "linematch:60" })
'';
# 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 search count wrap and startup messages
shortmess.__raw = ''
vim.tbl_deep_extend("force", vim.opt.shortmess:get(), { s = true, I = true })
'';
# 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;
viewoptions.__raw = ''
vim.tbl_filter(function(val) return val ~= "curdir" end, vim.opt.viewoptions:get())
'';
# 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;
};
}; };
} }
@@ -1 +0,0 @@
{ programs.nixvim.plugins.nvim-autopairs = { enable = true; }; }
@@ -1 +0,0 @@
{ programs.nixvim.plugins.bufferline = { enable = true; }; }
+6 -3
View File
@@ -15,8 +15,12 @@
sources = [ sources = [
{ name = "nvim_lsp"; } { name = "nvim_lsp"; }
{ name = "luasnip"; } { name = "luasnip"; }
{ name = "buffer"; } {
name = "buffer";
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
}
{ name = "nvim_lua"; } { name = "nvim_lua"; }
{ name = "mkdnflow"; }
{ name = "path"; } { name = "path"; }
]; ];
@@ -80,7 +84,7 @@
completion = { completion = {
winhighlight = winhighlight =
"FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel"; "FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel";
scrollbar = true; scrollbar = false;
sidePadding = 0; sidePadding = 0;
border = [ "" "" "" "" "" "" "" "" ]; border = [ "" "" "" "" "" "" "" "" ];
}; };
@@ -108,6 +112,5 @@
}; };
}; };
}; };
}; };
} }
-1
View File
@@ -1 +0,0 @@
{ programs.nixvim.plugins.comment = { enable = true; }; }
-5
View File
@@ -1,5 +0,0 @@
{
programs.nixvim.plugins.copilot-vim = {
enable = true;
};
}
@@ -1,9 +1,15 @@
{ config, ... }: { { config, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}";
foreground = "#${config.lib.stylix.colors.base05}";
configDir = config.var.configDirectory;
in {
programs.nixvim.highlight = { programs.nixvim.highlight = {
AlphaHeaderColor.fg = "#${config.var.theme.colors.accent}"; AlphaHeaderColor.fg = accent;
AlphaTextColor.fg = "#${config.var.theme.colors.fg}"; AlphaTextColor.fg = foreground;
AlphaShortcutColor.fg = "#${config.var.theme.colors.fgalt}"; AlphaShortcutColor.fg = muted;
}; };
programs.nixvim.plugins.alpha = { programs.nixvim.plugins.alpha = {
@@ -70,8 +76,22 @@
{ {
type = "button"; type = "button";
val = " NixOs Config"; 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 = on_press.__raw =
"function() vim.cmd[[e ${config.var.configDirectory}]] end"; "function() vim.cmd[[e ${configDir}/docs/KEYBINDINGS.md]] end";
opts = { opts = {
shortcut = "nc"; shortcut = "nc";
position = "center"; position = "center";
-6
View File
@@ -1,6 +0,0 @@
{
programs.nixvim.plugins.gitsigns = {
enable = true;
settings = { current_line_blame = false; };
};
}
-1
View File
@@ -1 +0,0 @@
{ programs.nixvim.plugins.image = { enable = true; }; }
-71
View File
@@ -1,71 +0,0 @@
{
programs.nixvim.keymaps = [
{
key = "<leader>e";
action = "<CMD>Neotree toggle<CR>";
}
{
key = "<space>fm";
action = "<CMD>lua vim.lsp.buf.format()<CR>";
}
{
key = "<leader>ot";
action = "<cmd>lua require('obsidian').util.toggle_checkbox()<cr>";
}
{
key = "<leader>oo";
action = "<cmd>ObsidianQuickSwitch<cr>";
}
{
key = "<leader>on";
action = "<cmd>ObsidianNew<cr>";
}
{
key = "<leader>of";
action = "<cmd>ObsidianSearch<cr>";
}
{
key = "<leader>oi";
action = "<cmd>ObsidianPasteImg<cr>";
}
{
key = "<leader>E";
action = "<cmd>Oil<cr>";
}
{
key = "<leader>t";
action = "<cmd>TroubleToggle<cr>";
}
{
key = "<C-h>";
action = "<cmd>TmuxNavigateLeft<cr>";
}
{
key = "<C-j>";
action = "<cmd>TmuxNavigateDown<cr>";
}
{
key = "<C-k>";
action = "<cmd>TmuxNavigateUp<cr>";
}
{
key = "<C-l>";
action = "<cmd>TmuxNavigateRight<cr>";
}
# Terminal Mappings
{
mode = "t";
key = "<esc>";
action = "<C-\\><C-n>";
}
];
}
-1
View File
@@ -1 +0,0 @@
{ programs.nixvim.plugins.lazygit = { enable = true; }; }
-1
View File
@@ -1 +0,0 @@
{ programs.nixvim.plugins.lualine = { enable = true; }; }
+31 -1
View File
@@ -7,10 +7,20 @@
bashls.enable = true; bashls.enable = true;
clangd.enable = true; clangd.enable = true;
gopls.enable = true; gopls.enable = true;
nixd.enable = true; eslint.enable = true;
ts_ls.enable = true;
nixd = {
enable = true;
extraOptions = {
expr = "import <nixpkgs> {}";
# fix- encoding: https://github.com/nix-community/nixvim/issues/2390
offset_encoding = "utf-8";
};
};
tailwindcss.enable = true; tailwindcss.enable = true;
html.enable = true; html.enable = true;
svelte.enable = true; svelte.enable = true;
marksman.enable = true;
}; };
keymaps.lspBuf = { keymaps.lspBuf = {
"gd" = "definition"; "gd" = "definition";
@@ -20,5 +30,25 @@
"K" = "hover"; "K" = "hover";
}; };
}; };
none-ls = {
enable = true;
sources = {
diagnostics = {
golangci_lint.enable = true;
statix.enable = true;
};
formatting = {
gofmt.enable = true;
goimports.enable = true;
nixfmt.enable = true;
markdownlint.enable = true;
tidy.enable = true;
shellharden.enable = true;
shfmt.enable = true;
golines.enable = true;
gofumpt.enable = true;
};
};
};
}; };
} }
+30
View File
@@ -0,0 +1,30 @@
{
programs.nixvim.plugins.lualine = {
enable = true;
settings = {
options.disabled_filetypes.statusline =
[ "dashboard" "alpha" "neo-tree" ];
alwaysDivideMiddle = true;
globalstatus = true;
ignoreFocus = [ "neo-tree" ];
extensions = [ "fzf" ];
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")'' ];
};
};
};
}
+243
View File
@@ -0,0 +1,243 @@
{ config, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}";
in {
programs.nixvim = {
# Markdown settings
extraFiles."after/ftplugin/markdown.lua".text = ''
vim.bo.tabstop = 2
vim.bo.shiftwidth = 2
vim.bo.expandtab = true
'';
# Highlight colors
highlight = {
Headline1 = {
bg = "#4B4266";
fg = accent;
};
Headline2 = {
bg = "#3B575E";
fg = "#9FFEFE";
};
Headline3 = {
bg = "#3B5742";
fg = "#9FFE9F";
};
Headline4 = {
bg = "#574842";
fg = "#FECB9F";
};
RenderMarkdownTodo.fg = "#f78c6c";
RenderMarkdownWarning.fg = "#ff5370";
RenderMarkdownDone.fg = muted;
};
# Plugins
plugins = {
# Paste images from clipboard
clipboard-image = {
enable = true;
settings = { default.img_dir = [ "%:p:h" "img" ]; };
};
# Zen mode
zen-mode = {
enable = true;
settings = {
on_close = ''
function()
end
'';
on_open = ''
function()
end
'';
plugins = {
gitsigns = { enabled = false; };
options = {
enabled = true;
ruler = false;
showcmd = false;
laststatus = "0";
kitty = {
enabled = true;
font = "+4";
};
};
};
window = {
backdrop = 0.95;
height = 1;
options = {
signcolumn = "no";
number = false;
relativenumber = false;
};
width = 0.8;
};
};
};
# Display images in markdown
image = {
enable = true;
integrations.markdown = {
clearInInsertMode = true;
onlyRenderImageAtCursor = true;
};
};
# This one takes care of the markdown titles
headlines = {
enable = true;
settings = {
markdown = {
headline_highlights =
[ "Headline1" "Headline2" "Headline3" "Headline4" ];
};
};
};
# MkdnFlow is a plugin that helps you navigate markdown files
mkdnflow = {
enable = true;
modules = { conceal = false; };
toDo.symbols = [ " " "-" "x" "!" "/" ];
mappings = {
MkdnCreateLink = false;
MkdnCreateLinkFromClipboard = {
key = "<leader>ml";
modes = [ "n" "v" ];
};
MkdnDecreaseHeading = {
key = "<leader>m-";
modes = "n";
};
MkdnDestroyLink = false;
MkdnEnter = {
key = "<CR>";
modes = [ "v" ];
};
MkdnExtendList = false;
MkdnFoldSection = {
key = "<leader>mf";
modes = "n";
};
MkdnUnfoldSection = {
key = "<leader>mF";
modes = "n";
};
MkdnFollowLink = {
key = "gd";
modes = "n";
};
MkdnGoBack = false;
MkdnGoForward = false;
MkdnIncreaseHeading = {
key = "<leader>m+";
modes = "n";
};
MkdnMoveSource = false;
MkdnNewListItem = false;
MkdnNewListItemAboveInsert = {
key = "O";
modes = "n";
};
MkdnNewListItemBelowInsert = {
key = "o";
modes = "n";
};
MkdnNextHeading = {
key = "<leader>m#";
modes = "n";
};
MkdnNextLink = false;
MkdnPrevLink = false;
MkdnPrevHeading = {
key = "<leader>m*";
modes = "n";
};
MkdnSTab = false;
MkdnTab = false;
MkdnTableNewColAfter = {
key = "<leader>mc";
modes = "n";
};
MkdnTableNewColBefore = {
key = "<leader>mC";
modes = "n";
};
MkdnTableNewRowAbove = {
key = "<leader>mR";
modes = "n";
};
MkdnTableNewRowBelow = {
key = "<leader>mr";
modes = "n";
};
MkdnTableNextCell = {
key = "<S-Tab>";
modes = "n";
};
MkdnTableNextRow = false;
MkdnTablePrevCell = {
key = "<S-Tab>";
modes = "n";
};
MkdnTablePrevRow = false;
MkdnToggleToDo = {
key = "<C-Space>";
modes = [ "n" "v" ];
};
MkdnUpdateNumbering = {
key = "<leader>mn";
modes = "n";
};
MkdnYankAnchorLink = {
key = "ya";
modes = "n";
};
MkdnYankFileAnchorLink = {
key = "yfa";
modes = "n";
};
};
};
# Render UI elements
render-markdown = {
enable = true;
settings = {
heading = { enabled = false; };
checkbox = {
unchecked = { highlight = "RenderMarkdownTodo"; };
checked = { highlight = "RenderMarkdownDone"; };
custom = {
pending = {
raw = "[-]";
rendered = " ";
highlight = "RenderMarkdownTodo";
};
important = {
raw = "[!]";
rendered = "󰰱 ";
highlight = "RenderMarkdownWarning";
};
cancel = {
raw = "[/]";
rendered = "󱋬 ";
highlight = "RenderMarkdownWarning";
};
};
};
};
};
};
};
}
-1
View File
@@ -1 +0,0 @@
{ programs.nixvim.plugins.noice = { enable = true; }; }
-20
View File
@@ -1,20 +0,0 @@
{
programs.nixvim.plugins.none-ls = {
enable = true;
sources = {
diagnostics = {
golangci_lint.enable = true;
statix.enable = true;
};
formatting = {
gofmt.enable = true;
goimports.enable = true;
nixfmt.enable = true;
markdownlint.enable = true;
tidy.enable = true;
shellharden.enable = true;
shfmt.enable = true;
};
};
};
}
-5
View File
@@ -1,5 +0,0 @@
{
programs.nixvim.plugins.neo-tree = {
enable = true;
};
}
-9
View File
@@ -1,9 +0,0 @@
{ config, ... }: {
programs.nixvim.plugins.obsidian = {
enable = config.var.obsidian;
settings = {
dir = "~/nextcloud/Notes";
disable_frontmatter = true;
};
};
}
-6
View File
@@ -1,6 +0,0 @@
{
programs.nixvim.plugins.oil = {
enable = true;
settings = { default_file_explorer = false; };
};
}
+28 -10
View File
@@ -1,13 +1,31 @@
{ { config, ... }:
programs.nixvim.plugins.telescope = { let
enable = true; accent = "#${config.lib.stylix.colors.base0D}";
keymaps = { background = "#${config.lib.stylix.colors.base00}";
"<leader>fg" = "live_grep"; background-alt = "#${config.lib.stylix.colors.base01}";
#"<C-p>" = { in {
# action = "git_files"; programs.nixvim = {
# desc = "Telescope Git Files"; 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 = " "; };
}; };
extensions.fzf-native = { enable = true; };
}; };
} }
@@ -1 +0,0 @@
{ programs.nixvim.plugins.tmux-navigator = { enable = true; }; }
@@ -1,9 +0,0 @@
{
programs.nixvim.plugins.toggleterm = {
enable = true;
settings = {
open_mapping = "[[<c-t>]]";
direction = "horizontal";
};
};
}
+49
View File
@@ -0,0 +1,49 @@
{
programs.nixvim = {
plugins = {
neo-tree.enable = true;
oil = {
enable = true;
settings = {
default_file_explorer = false;
skip_confirm_for_simple_edits = true;
view_options.is_hidden_file = ''
function(name, bufnr)
return vim.startswith(name, ".") or name == "img"
end
'';
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";
};
};
};
};
};
}
-10
View File
@@ -1,10 +0,0 @@
{
programs.nixvim.plugins = {
treesitter = {
enable = true;
nixGrammars = true;
indent = true;
};
treesitter-context.enable = true;
};
}
-1
View File
@@ -1 +0,0 @@
{ programs.nixvim.plugins.trouble = { enable = true; }; }
+14
View File
@@ -0,0 +1,14 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ ctags ];
programs.nixvim.plugins = {
web-devicons.enable = true;
noice.enable = true;
gitsigns = {
enable = true;
settings.current_line_blame = false;
};
trouble.enable = true;
bufferline.enable = true;
};
}
+25
View File
@@ -0,0 +1,25 @@
{ config, ... }: {
programs.nixvim = {
highlightOverride = {
FloatBorder.fg = "#${config.lib.stylix.colors.base0D}";
};
nixpkgs.config = { allowUnfree = true; };
plugins = {
copilot-vim.enable = true;
flash.enable = true;
tmux-navigator.enable = true;
comment.enable = true;
nvim-autopairs.enable = true;
todo-comments.enable = true;
treesitter = {
enable = true;
nixGrammars = true;
settings = {
ensure_installed = "all";
indent.enable = true;
highlight.enable = true;
};
};
};
};
}
-3
View File
@@ -1,3 +0,0 @@
{
programs.nixvim.plugins.which-key.enable=true;
}
-6
View File
@@ -1,6 +0,0 @@
{
programs.nixvim.plugins.wilder = {
enable = true;
modes = [ ":" "/" "?" ];
};
}
+18 -96
View File
@@ -1,5 +1,12 @@
# Qutebrowser is a keyboard-focused browser with a minimal GUI.
# My homepage is generated using https://github.com/anotherhadi/homepage
{ pkgs, config, ... }: { pkgs, config, ... }:
let let
accent = "#${config.lib.stylix.colors.base0D}";
background = "#${config.lib.stylix.colors.base00}";
foreground = "#${config.lib.stylix.colors.base05}";
muted = "#${config.lib.stylix.colors.base03}";
settings = '' settings = ''
{ {
"config": { "config": {
@@ -7,10 +14,10 @@ let
"openLinksInNewTab": false, "openLinksInNewTab": false,
"locale": "fr-FR", "locale": "fr-FR",
"colors": { "colors": {
"primary": "#${config.var.theme.colors.accent}", "primary": "${accent}",
"background": "#${config.var.theme.colors.bg}", "background": "${background}",
"foreground": "#${config.var.theme.colors.fg}", "foreground": "${foreground}",
"muted": "#${config.var.theme.colors.c8}" "muted": "#${muted}"
}, },
"folders": [ "folders": [
{ {
@@ -23,8 +30,8 @@ let
{"title": "Chat GPT", "url": "https://chat.openai.com/", "icon": "󰭹"}, {"title": "Chat GPT", "url": "https://chat.openai.com/", "icon": "󰭹"},
{"title": "Nixvim", "url": "https://nix-community.github.io/nixvim/", "icon": ""}, {"title": "Nixvim", "url": "https://nix-community.github.io/nixvim/", "icon": ""},
{"title": "Hyprland Wiki", "url": "https://wiki.hyprland.org/", "icon": "󰖬"}, {"title": "Hyprland Wiki", "url": "https://wiki.hyprland.org/", "icon": "󰖬"},
{"title": "Nerdfont", "url": "https://www.nerdfonts.com/cheat-sheet", "icon": ""},
{"title": "Youtube", "url": "https://youtube.com", "icon": "󰗃"}, {"title": "Youtube", "url": "https://youtube.com", "icon": "󰗃"},
{"title": "Figma", "url": "https://figma.com", "icon": ""},
{"title": "Server", "url": "https://home.anotherhadi.com", "icon": ""} {"title": "Server", "url": "https://home.anotherhadi.com", "icon": ""}
] ]
}, },
@@ -48,8 +55,8 @@ let
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "anotherhadi"; owner = "anotherhadi";
repo = "homepage"; repo = "homepage";
rev = "40286c5e03bcfb9993cce354b4f12c00a1b4966d"; rev = "b77d35ed3596eb451bd2ec78063d7cc6e73c773d";
hash = "sha256-zlJ/bzFWE64HpUCxiRT5E9wrjVVwSTSgIOrifWKxphU="; hash = "sha256-j/40922kfAh6zqJ4IRYpr66YXNNYsxuXwZ0aiJFJea0=";
}; };
# npmDepsHash = lib.fakeHash; # npmDepsHash = lib.fakeHash;
@@ -117,95 +124,11 @@ in {
}; };
colors = { colors = {
tabs = {
odd.bg = "#${config.var.theme.colors.bg}";
odd.fg = "#${config.var.theme.colors.fg}";
even.bg = "#${config.var.theme.colors.bg}";
even.fg = "#${config.var.theme.colors.fg}";
selected = {
odd = {
bg = "#${config.var.theme.colors.accent}";
fg = "#${config.var.theme.colors.accentFg}";
};
even = {
bg = "#${config.var.theme.colors.accent}";
fg = "#${config.var.theme.colors.accentFg}";
};
};
indicator = {
error = "#${config.var.theme.colors.c1}";
start = "#${config.var.theme.colors.bgalt}";
stop = "#${config.var.theme.colors.bgalt}";
};
};
hints = {
bg = "#${config.var.theme.colors.bgalt}";
fg = "#${config.var.theme.colors.fgalt}";
match.fg = "#${config.var.theme.colors.bg}";
};
completion = {
category = {
bg = "#${config.var.theme.colors.bg}";
fg = "#${config.var.theme.colors.fg}";
border = {
top = "#${config.var.theme.colors.bg}";
bottom = "#${config.var.theme.colors.bg}";
};
};
odd.bg = "#${config.var.theme.colors.bg}";
even.bg = "#${config.var.theme.colors.bg}";
fg = [ "#FFFFFF" "#FFFFFF" "#FFFFFF" ];
match.fg = "#${config.var.theme.colors.accent}";
item.selected = {
bg = "#${config.var.theme.colors.accent}";
border.top = "#${config.var.theme.colors.accent}";
border.bottom = "#${config.var.theme.colors.accent}";
fg = "#${config.var.theme.colors.accentFg}";
match.fg = "#${config.var.theme.colors.accentFg}";
};
};
statusbar = {
normal.bg = "#${config.var.theme.colors.bg}";
normal.fg = "#${config.var.theme.colors.fg}";
private.bg = "#${config.var.theme.colors.bg}";
private.fg = "#${config.var.theme.colors.fg}";
insert.bg = "#${config.var.theme.colors.accent}";
insert.fg = "#${config.var.theme.colors.accentFg}";
command = {
bg = "#${config.var.theme.colors.bgalt}";
fg = "#${config.var.theme.colors.fgalt}";
private.bg = "#${config.var.theme.colors.bgalt}";
private.fg = "#${config.var.theme.colors.fgalt}";
};
};
messages = {
info = {
bg = "#${config.var.theme.colors.bgalt}";
fg = "#${config.var.theme.colors.fgalt}";
border = "#${config.var.theme.colors.bgalt}";
};
error = {
bg = "#${config.var.theme.colors.c1}";
fg = "#${config.var.theme.colors.fgalt}";
border = "#${config.var.theme.colors.c1}";
};
};
#webpage.darkmode.enabled = true; # Enable dark mode for all websites (Weird on images)
webpage.preferred_color_scheme = webpage.preferred_color_scheme =
"dark"; # Enable dark mode for websites that support it "dark"; # Enable dark mode for websites that support it
}; };
fonts = { default_family = "${config.var.theme.font}"; }; statusbar.show = "in-mode";
completion = { completion = {
height = "30%"; height = "30%";
@@ -224,6 +147,7 @@ in {
autoplay = false; autoplay = false;
javascript.clipboard = "access"; javascript.clipboard = "access";
javascript.enabled = true; javascript.enabled = true;
webgl = true;
pdfjs = true; pdfjs = true;
}; };
@@ -232,10 +156,7 @@ in {
remove_finished = 0; remove_finished = 0;
}; };
hints = { hints = { radius = 1; };
border = "none";
radius = 1;
};
scrolling = { scrolling = {
bar = "never"; bar = "never";
@@ -328,6 +249,7 @@ in {
config.unbind("gt") config.unbind("gt")
c.tabs.padding = {"bottom": 6, "left": 7, "right": 7, "top": 6} c.tabs.padding = {"bottom": 6, "left": 7, "right": 7, "top": 6}
c.statusbar.padding = {"bottom": 6, "left": 7, "right": 7, "top": 6}
config.load_autoconfig(True) config.load_autoconfig(True)
''; '';
@@ -1,36 +1,44 @@
{ config, ... }: { # A duckduckgo colorscheme generated for the Stylix theme used.
home.file.".duckduckgo-colorscheme.js".text = '' { config, ... }:
// Go to DuckDuckGo settings page, open the console, paste the code and hit enter. let
// based on https://ddg.codingcodax.dev/ accent = config.lib.stylix.colors.base0D;
// Cookies string for your theme background = config.lib.stylix.colors.base00;
const cookie = '7=${config.var.theme.colors.bg}; j=${config.var.theme.colors.bg}; 9=${config.var.theme.colors.fg}; aa=${config.var.theme.colors.fgalt}; 8=${config.var.theme.colors.c7}; x=${config.var.theme.colors.accent}; 21=${config.var.theme.colors.bgalt};'; foreground = config.lib.stylix.colors.base05;
background-alt = config.lib.stylix.colors.base01;
foreground-alt = config.lib.stylix.colors.base06;
in {
home.file.".duckduckgo-colorscheme.js".text =
# js
''
// Go to DuckDuckGo settings page, open the console, paste the code and hit enter.
// based on https://ddg.codingcodax.dev/
// Cookies string for your theme
const cookie = '7=${background}; j=${background}; 9=${foreground}; aa=${foreground-alt}; 8=${foreground}; x=${accent}; 21=${background-alt};';
// Converts cookie string into formatted JSON // Converts cookie string into formatted JSON
const cookieToJSON = (cookieRaw) => { const cookieToJSON = (cookieRaw) => {
const cookieJson = {}; const cookieJson = {};
const items = cookieRaw.split(/[ ,]+/); const items = cookieRaw.split(/[ ,]+/);
items.forEach((item) => { items.forEach((item) => {
const parts = item.split('='); const parts = item.split('=');
cookieJson[parts[0]] = parts[1]; cookieJson[parts[0]] = parts[1];
}); });
return cookieJson; return cookieJson;
}; };
// Iterates over JSON, and adds to browser cookie store // Iterates over JSON, and adds to browser cookie store
const setCookies = (cookieJson) => { const setCookies = (cookieJson) => {
Object.keys(cookieJson).forEach((key) => { Object.keys(cookieJson).forEach((key) => {
document.cookie = `''${key}=''${cookieJson [ key ]}`; document.cookie = `''${key}=''${cookieJson [ key ]}`;
}); });
}; };
alert('The Nixy theme will be applied.'); // Call set cookies, passing in formated cookie data
setCookies(cookieToJSON(cookie));
// Call set cookies, passing in formated cookie data // All done, reload page for changes to take effect :)
setCookies(cookieToJSON(cookie)); location.reload();
'';
// All done, reload page for changes to take effect :)
location.reload();
'';
} }
+2 -11
View File
@@ -1,13 +1,4 @@
{ {
imports = [ imports =
./fzf.nix [ ./fzf.nix ./zsh.nix ./starship.nix ./zoxide.nix ./tmux.nix ./eza.nix ];
./zsh.nix
./starship.nix
./zoxide.nix
./tmux.nix
./lazygit.nix
./eza.nix
./fetch
./lf
];
} }
+2 -1
View File
@@ -1,7 +1,8 @@
# Eza is a ls replacement
{ {
programs.eza = { programs.eza = {
enable = true; enable = true;
icons = true; icons = "auto";
extraOptions = [ extraOptions = [
"--group-directories-first" "--group-directories-first"
+12 -6
View File
@@ -1,14 +1,20 @@
{ config, ... }: { # Fzf is a general-purpose command-line fuzzy finder.
{ config, lib, ... }:
let
accent = "#" + config.lib.stylix.colors.base0D;
foreground = "#" + config.lib.stylix.colors.base05;
muted = "#" + config.lib.stylix.colors.base03;
in {
programs.fzf = { programs.fzf = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
colors = { colors = lib.mkForce {
"fg+" = config.var.theme.colors.accentName; "fg+" = accent;
"bg+" = "-1"; "bg+" = "-1";
"fg" = "white"; "fg" = foreground;
"bg" = "-1"; "bg" = "-1";
"prompt" = "grey"; "prompt" = muted;
"pointer" = config.var.theme.colors.accentName; "pointer" = accent;
}; };
defaultOptions = [ defaultOptions = [
"--margin=1" "--margin=1"
-13
View File
@@ -1,13 +0,0 @@
{ config, ... }: {
programs.lazygit = {
enable = true;
settings = {
gui.theme = {
ligthTheme = false;
activeBorderColor = [ "${config.var.theme.colors.accentName}" "bold" ];
inactiveBorderColor = [ "black" ];
selectedLineBgColor = [ "default" ];
};
};
};
}
-174
View File
@@ -1,174 +0,0 @@
# vim:ft=dircolors
# (This is not a dircolors file but it helps to highlight colors and comments)
# default values from dircolors
# (entries with a leading # are not implemented in lf)
# #no 00 # NORMAL
# fi 00 # FILE
# #rs 0 # RESET
# di 01;34 # DIR
# ln 01;36 # LINK
# #mh 00 # MULTIHARDLINK
# pi 40;33 # FIFO
# so 01;35 # SOCK
# #do 01;35 # DOOR
# bd 40;33;01 # BLK
# cd 40;33;01 # CHR
# or 40;31;01 # ORPHAN
# #mi 00 # MISSING
# su 37;41 # SETUID
# sg 30;43 # SETGID
# #ca 30;41 # CAPABILITY
# tw 30;42 # STICKY_OTHER_WRITABLE
# ow 34;42 # OTHER_WRITABLE
# st 37;44 # STICKY
# ex 01;32 # EXEC
# default values from lf (with matching order)
# ln 01;36 # LINK
# or 31;01 # ORPHAN
# tw 01;34 # STICKY_OTHER_WRITABLE
# ow 01;34 # OTHER_WRITABLE
# st 01;34 # STICKY
# di 01;34 # DIR
# pi 33 # FIFO
# so 01;35 # SOCK
# bd 33;01 # BLK
# cd 33;01 # CHR
# su 01;32 # SETUID
# sg 01;32 # SETGID
# ex 01;32 # EXEC
# fi 00 # FILE
# file types (with matching order)
ln 01;36 # LINK
or 31;01 # ORPHAN
tw 34 # STICKY_OTHER_WRITABLE
ow 34 # OTHER_WRITABLE
st 01;34 # STICKY
di 01;34 # DIR
pi 33 # FIFO
so 01;35 # SOCK
bd 33;01 # BLK
cd 33;01 # CHR
su 01;32 # SETUID
sg 01;32 # SETGID
ex 01;32 # EXEC
fi 00 # FILE
# archives or compressed (dircolors defaults)
*.tar 01;31
*.tgz 01;31
*.arc 01;31
*.arj 01;31
*.taz 01;31
*.lha 01;31
*.lz4 01;31
*.lzh 01;31
*.lzma 01;31
*.tlz 01;31
*.txz 01;31
*.tzo 01;31
*.t7z 01;31
*.zip 01;31
*.z 01;31
*.dz 01;31
*.gz 01;31
*.lrz 01;31
*.lz 01;31
*.lzo 01;31
*.xz 01;31
*.zst 01;31
*.tzst 01;31
*.bz2 01;31
*.bz 01;31
*.tbz 01;31
*.tbz2 01;31
*.tz 01;31
*.deb 01;31
*.rpm 01;31
*.jar 01;31
*.war 01;31
*.ear 01;31
*.sar 01;31
*.rar 01;31
*.alz 01;31
*.ace 01;31
*.zoo 01;31
*.cpio 01;31
*.7z 01;31
*.rz 01;31
*.cab 01;31
*.wim 01;31
*.swm 01;31
*.dwm 01;31
*.esd 01;31
# image formats (dircolors defaults)
*.jpg 01;35
*.jpeg 01;35
*.mjpg 01;35
*.mjpeg 01;35
*.gif 01;35
*.bmp 01;35
*.pbm 01;35
*.pgm 01;35
*.ppm 01;35
*.tga 01;35
*.xbm 01;35
*.xpm 01;35
*.tif 01;35
*.tiff 01;35
*.png 01;35
*.svg 01;35
*.svgz 01;35
*.mng 01;35
*.pcx 01;35
*.mov 01;35
*.mpg 01;35
*.mpeg 01;35
*.m2v 01;35
*.mkv 01;35
*.webm 01;35
*.ogm 01;35
*.mp4 01;35
*.m4v 01;35
*.mp4v 01;35
*.vob 01;35
*.qt 01;35
*.nuv 01;35
*.wmv 01;35
*.asf 01;35
*.rm 01;35
*.rmvb 01;35
*.flc 01;35
*.avi 01;35
*.fli 01;35
*.flv 01;35
*.gl 01;35
*.dl 01;35
*.xcf 01;35
*.xwd 01;35
*.yuv 01;35
*.cgm 01;35
*.emf 01;35
*.ogv 01;35
*.ogx 01;35
# audio formats (dircolors defaults)
*.aac 00;36
*.au 00;36
*.flac 00;36
*.m4a 00;36
*.mid 00;36
*.midi 00;36
*.mka 00;36
*.mp3 00;36
*.mpc 00;36
*.ogg 00;36
*.ra 00;36
*.wav 00;36
*.oga 00;36
*.opus 00;36
*.spx 00;36
*.xspf 00;36
-361
View File
@@ -1,361 +0,0 @@
# vim:ft=conf
# These examples require Nerd Fonts or a compatible font to be used.
# See https://www.nerdfonts.com for more information.
# default values from lf (with matching order)
# ln l # LINK
# or l # ORPHAN
# tw t # STICKY_OTHER_WRITABLE
# ow d # OTHER_WRITABLE
# st t # STICKY
# di d # DIR
# pi p # FIFO
# so s # SOCK
# bd b # BLK
# cd c # CHR
# su u # SETUID
# sg g # SETGID
# ex x # EXEC
# fi - # FILE
# file types (with matching order)
ln  # LINK
or  # ORPHAN
tw t # STICKY_OTHER_WRITABLE
ow  # OTHER_WRITABLE
st t # STICKY
di  # DIR
pi p # FIFO
so s # SOCK
bd b # BLK
cd c # CHR
su u # SETUID
sg g # SETGID
ex  # EXEC
fi  # FILE
# file extensions (vim-devicons)
*.styl 
*.sass 
*.scss 
*.htm 
*.html 
*.slim 
*.haml 
*.ejs 
*.css 
*.less 
*.md 
*.mdx 
*.markdown 
*.rmd 
*.json 
*.webmanifest 
*.js 
*.mjs 
*.jsx 
*.rb 
*.gemspec 
*.rake 
*.php 
*.py 
*.pyc 
*.pyo 
*.pyd 
*.coffee 
*.mustache 
*.hbs 
*.conf 
*.ini 
*.yml 
*.yaml 
*.toml 
*.bat 
*.mk 
*.jpg 
*.jpeg 
*.bmp 
*.png 
*.webp 
*.gif 
*.ico 
*.twig 
*.cpp 
*.c++ 
*.cxx 
*.cc 
*.cp 
*.c 
*.cs 󰌛
*.h 
*.hh 
*.hpp 
*.hxx 
*.hs 
*.lhs 
*.nix 
*.lua 
*.java 
*.sh 
*.fish 
*.bash 
*.zsh 
*.ksh 
*.csh 
*.awk 
*.ps1 
*.ml λ
*.mli λ
*.diff 
*.db 
*.sql 
*.dump 
*.clj 
*.cljc 
*.cljs 
*.edn 
*.scala 
*.go 
*.dart 
*.xul 
*.sln 
*.suo 
*.pl 
*.pm 
*.t 
*.rss 
'*.f#' 
*.fsscript 
*.fsx 
*.fs 
*.fsi 
*.rs 
*.rlib 
*.d 
*.erl 
*.hrl 
*.ex 
*.exs 
*.eex 
*.leex 
*.heex 
*.vim 
*.ai 
*.psd 
*.psb 
*.ts 
*.tsx 
*.jl 
*.pp 
*.vue 
*.elm 
*.swift 
*.xcplayground 
*.tex 󰙩
*.r 󰟔
*.rproj 󰗆
*.sol 󰡪
*.pem 
# file names (vim-devicons) (case-insensitive not supported in lf)
*gruntfile.coffee 
*gruntfile.js 
*gruntfile.ls 
*gulpfile.coffee 
*gulpfile.js 
*gulpfile.ls 
*mix.lock 
*dropbox 
*.ds_store 
*.gitconfig 
*.gitignore 
*.gitattributes 
*.gitlab-ci.yml 
*.bashrc 
*.zshrc 
*.zshenv 
*.zprofile 
*.vimrc 
*.gvimrc 
*_vimrc 
*_gvimrc 
*.bashprofile 
*favicon.ico 
*license 
*node_modules 
*react.jsx 
*procfile 
*dockerfile 
*docker-compose.yml 
*docker-compose.yaml 
*compose.yml 
*compose.yaml 
*rakefile 
*config.ru 
*gemfile 
*makefile 
*cmakelists.txt 
*robots.txt 󰚩
# file names (case-sensitive adaptations)
*Gruntfile.coffee 
*Gruntfile.js 
*Gruntfile.ls 
*Gulpfile.coffee 
*Gulpfile.js 
*Gulpfile.ls 
*Dropbox 
*.DS_Store 
*LICENSE 
*React.jsx 
*Procfile 
*Dockerfile 
*Docker-compose.yml 
*Docker-compose.yaml 
*Rakefile 
*Gemfile 
*Makefile 
*CMakeLists.txt 
# file patterns (vim-devicons) (patterns not supported in lf)
# .*jquery.*\.js$ 
# .*angular.*\.js$ 
# .*backbone.*\.js$ 
# .*require.*\.js$ 
# .*materialize.*\.js$ 
# .*materialize.*\.css$ 
# .*mootools.*\.js$ 
# .*vimrc.* 
# Vagrantfile$ 
# file patterns (file name adaptations)
*jquery.min.js 
*angular.min.js 
*backbone.min.js 
*require.min.js 
*materialize.min.js 
*materialize.min.css 
*mootools.min.js 
*vimrc 
Vagrantfile 
# archives or compressed (extensions from dircolors defaults)
*.tar 
*.tgz 
*.arc 
*.arj 
*.taz 
*.lha 
*.lz4 
*.lzh 
*.lzma 
*.tlz 
*.txz 
*.tzo 
*.t7z 
*.zip 
*.z 
*.dz 
*.gz 
*.lrz 
*.lz 
*.lzo 
*.xz 
*.zst 
*.tzst 
*.bz2 
*.bz 
*.tbz 
*.tbz2 
*.tz 
*.deb 
*.rpm 
*.jar 
*.war 
*.ear 
*.sar 
*.rar 
*.alz 
*.ace 
*.zoo 
*.cpio 
*.7z 
*.rz 
*.cab 
*.wim 
*.swm 
*.dwm 
*.esd 
# image formats (extensions from dircolors defaults)
*.jpg 
*.jpeg 
*.mjpg 
*.mjpeg 
*.gif 
*.bmp 
*.pbm 
*.pgm 
*.ppm 
*.tga 
*.xbm 
*.xpm 
*.tif 
*.tiff 
*.png 
*.svg 
*.svgz 
*.mng 
*.pcx 
*.mov 
*.mpg 
*.mpeg 
*.m2v 
*.mkv 
*.webm 
*.ogm 
*.mp4 
*.m4v 
*.mp4v 
*.vob 
*.qt 
*.nuv 
*.wmv 
*.asf 
*.rm 
*.rmvb 
*.flc 
*.avi 
*.fli 
*.flv 
*.gl 
*.dl 
*.xcf 
*.xwd 
*.yuv 
*.cgm 
*.emf 
*.ogv 
*.ogx 
# audio formats (extensions from dircolors defaults)
*.aac 
*.au 
*.flac 
*.m4a 
*.mid 
*.midi 
*.mka 
*.mp3 
*.mpc 
*.ogg 
*.ra 
*.wav 
*.oga 
*.opus 
*.spx 
*.xspf 
# other formats
*.pdf 
-80
View File
@@ -1,80 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ pistol ];
programs.lf = {
enable = true;
commands = {
dragon-out = ''%${pkgs.xdragon}/bin/xdragon -a -x "$fx"'';
editor-open = "$$EDITOR $f";
mkdir = ''
''${{
printf "Directory Name: "
read DIR
mkdir $DIR
}}
'';
};
keybindings = {
d = "delete";
x = "cut";
"<enter>" = "open";
"<c-g>" = "quit";
"<esc>" = "quit";
"H" = "set hidden!";
"\\\"" = "";
o = "";
c = "mkdir";
"." = "set hidden!";
"`" = "mark-load";
"\\'" = "mark-load";
"g~" = "cd";
do = "dragon-out";
gh = "cd";
"g/" = "/";
ee = "editor-open";
V = ''$''${pkgs.bat}/bin/bat --paging=always "$f"'';
};
settings = {
ratios = [ 1 1 2 ];
preview = true;
hidden = true;
drawbox = true;
icons = true;
ignorecase = true;
incsearch = true;
};
previewer.source = "${pkgs.pistol}/bin/pistol";
extraConfig = let
previewer = pkgs.writeShellScriptBin "pv.sh" ''
file=$1
w=$2
h=$3
x=$4
y=$5
if [[ "$( ${pkgs.file}/bin/file -Lb --mime-type "$file")" =~ ^image ]]; then
${pkgs.kitty}/bin/kitty +kitten icat --silent --stdin no --transfer-mode file --place "''${w}x''${h}@''${x}x''${y}" "$file" < /dev/null > /dev/tty
exit 1
fi
${pkgs.pistol}/bin/pistol "$file"
'';
cleaner = pkgs.writeShellScriptBin "clean.sh" ''
${pkgs.kitty}/bin/kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty
'';
in ''
set cleaner ${cleaner}/bin/clean.sh
set previewer ${previewer}/bin/pv.sh
'';
};
xdg.configFile."lf" = {
recursive = true;
source = ./config;
};
}
+12 -6
View File
@@ -1,4 +1,9 @@
{ config, lib, ... }: { # starship is a minimal, fast, and extremely customizable prompt for any shell!
{ config, lib, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
background-alt = "#${config.lib.stylix.colors.base01}";
in {
programs.starship = { programs.starship = {
enable = true; enable = true;
settings = { settings = {
@@ -10,22 +15,23 @@
"$git_status" "$git_status"
"$character" "$character"
]; ];
directory = { style = "#${config.var.theme.colors.accent}"; }; directory = { style = accent; };
character = { character = {
success_symbol = "[](#${config.var.theme.colors.accent})"; success_symbol = "[](${accent})";
error_symbol = "[](red)"; error_symbol = "[](red)";
vimcmd_symbol = "[](cyan)"; vimcmd_symbol = "[](cyan)";
}; };
git_branch = { git_branch = {
format = "[$branch]($style)"; symbol = "[](${background-alt}) ";
style = "bright-black"; style = "fg:${accent} bg:${background-alt}";
format = "on [$symbol$branch]($style)[](${background-alt}) ";
}; };
git_status = { git_status = {
format = format =
"[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)"; "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)";
style = "cyan"; style = "cyan";
conflicted = ""; conflicted = "";
renamed = ""; renamed = "";
+37 -26
View File
@@ -1,4 +1,30 @@
{ pkgs, ... }: { # Tmux is a terminal multiplexer that allows you to run multiple terminal sessions in a single window.
{ 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;
@@ -12,36 +38,21 @@
bind-key j select-pane -D bind-key j select-pane -D
bind-key k select-pane -U bind-key k select-pane -U
bind-key l select-pane -R bind-key l select-pane -R
set -gq allow-passthrough on set -gq allow-passthrough on
bind-key x kill-pane # skip "kill-pane 1? (y/n)" prompt
bind-key -n C-Tab next-window
bind-key -n C-S-Tab previous-window
bind-key -n M-Tab new-window
''; '';
plugins = with pkgs; [ plugins = with pkgs; [
tmuxPlugins.vim-tmux-navigator tmuxPlugins.vim-tmux-navigator
{ # tmuxPlugins.resurrect
plugin = tmuxPlugins.catppuccin; tmuxPlugins.sensible
extraConfig = '' tmuxPlugins.tokyo-night-tmux
set-option -g status-position top
set -g @catppuccin_window_left_separator ""
set -g @catppuccin_window_right_separator " "
set -g @catppuccin_window_middle_separator " "
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_default_fill "number"
set -g @catppuccin_window_default_text "#W"
set -g @catppuccin_window_current_fill "number"
set -g @catppuccin_window_current_text "#W"
set -g @catppuccin_status_modules_right ""
set -g @catppuccin_status_left_separator " "
set -g @catppuccin_status_right_separator ""
set -g @catppuccin_status_fill "icon"
set -g @catppuccin_status_connect_separator "no"
set -g @catppuccin_directory_text "#{pane_current_path}"
set -g @catppuccin_status_background "default"
'';
}
]; ];
}; };
home.packages = [ Config ];
} }
+3 -2
View File
@@ -1,6 +1,7 @@
# Zoxide is a cd replacement
{ {
programs.zoxide = { programs.zoxide = {
enable= true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
}; };
} }
+49 -13
View File
@@ -1,6 +1,11 @@
{ pkgs, lib, config, ... }: { # My shell configuration
{ pkgs, lib, config, ... }:
let fetch = config.var.theme.fetch; # neofetch, nerdfetch, pfetch
in {
home.packages = with pkgs; [ bat ripgrep tldr ]; home.packages = with pkgs; [ bat ripgrep tldr sesh ];
home.sessionPath = [ "$HOME/go/bin" ];
programs.zsh = { programs.zsh = {
enable = true; enable = true;
@@ -11,20 +16,31 @@
initExtraFirst = '' initExtraFirst = ''
bindkey -e bindkey -e
${if config.var.theme.fetch == "neofetch" then ${if fetch == "neofetch" then
pkgs.neofetch + "/bin/neofetch" pkgs.neofetch + "/bin/neofetch"
else if config.var.theme.fetch == "nerdfetch" then else if fetch == "nerdfetch" then
"nerdfetch" "nerdfetch"
else if config.var.theme.fetch == "pfetch" then else if fetch == "pfetch" then
"echo; ${pkgs.pfetch}/bin/pfetch" "echo; ${pkgs.pfetch}/bin/pfetch"
else else
""} ""}
function sesh-sessions() {
session=$(sesh list -t -c | fzf --height 70% --reverse)
[[ -z "$session" ]] && return
sesh connect $session
}
zle -N sesh-sessions
bindkey -M emacs '\es' sesh-sessions
bindkey -M vicmd '\es' sesh-sessions
bindkey -M viins '\es' sesh-sessions
''; '';
history = { history = {
ignoreDups = true; ignoreDups = true;
save = 1000000; save = 10000;
size = 1000000; size = 10000;
}; };
profileExtra = lib.optionalString (config.home.sessionPath != [ ]) '' profileExtra = lib.optionalString (config.home.sessionPath != [ ]) ''
@@ -33,6 +49,18 @@
}" }"
''; '';
#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";
@@ -45,18 +73,21 @@
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";
note = "vim ~/Nextcloud/obsidian"; ssh = "kitty +kitten ssh";
obs = "vim ~/Nextcloud/obsidian";
wireguard-import = "nmcli connection import type wireguard file"; wireguard-import = "nmcli connection import type wireguard file";
vault = "nvim $HOME/nextcloud/Notes/";
notes =
"nvim ~/nextcloud/notes/index.md --cmd 'cd ~/nextcloud/notes' -c ':Telescope find_files'";
note = "notes";
# git # git
g = "lazygit";
ga = "git add"; ga = "git add";
gc = "git commit"; gc = "git commit";
gcm = "git commit -m"; gcu = "git add . && git commit -m 'Update'";
gcu = "git commit -am 'Update'";
gp = "git push"; gp = "git push";
gpl = "git pull"; gpl = "git pull";
gs = "git status"; gs = "git status";
@@ -64,6 +95,11 @@
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 .";
gcm = "git commit -m";
}; };
}; };
} }
+13 -20
View File
@@ -1,31 +1,23 @@
# Spicetify is a spotify client customizer
{ pkgs, config, lib, inputs, ... }: { pkgs, config, lib, inputs, ... }:
let spicePkgs = inputs.spicetify-nix.packages.${pkgs.system}.default; let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
accent = "${config.lib.stylix.colors.base0D}";
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;
programs.spicetify = { programs.spicetify = {
enable = true; enable = true;
theme = spicePkgs.themes.text; theme = lib.mkForce spicePkgs.themes.text;
colorScheme = "custom"; colorScheme = "custom";
customColorScheme = { customColorScheme = {
text = "${config.var.theme.colors.fg}"; button = accent;
subtext = "${config.var.theme.colors.fgalt}"; button-active = accent;
sidebar-text = "${config.var.theme.colors.fgalt}"; tab-active = accent;
main = "${config.var.theme.colors.bg}";
sidebar = "${config.var.theme.colors.bg}";
background = "${config.var.theme.colors.bg}";
player = "${config.var.theme.colors.bg}";
card = "${config.var.theme.colors.bg}";
shadow = "000000";
selected-row = "${config.var.theme.colors.bgalt}";
button = "${config.var.theme.colors.accent}";
button-active = "${config.var.theme.colors.accent}";
button-disabled = "${config.var.theme.colors.bgalt}";
tab-active = "${config.var.theme.colors.accent}";
misc = "${config.var.theme.colors.fgalt}";
}; };
enabledExtensions = with spicePkgs.extensions; [ enabledExtensions = with spicePkgs.extensions; [
@@ -33,6 +25,7 @@ in {
lastfm lastfm
historyShortcut historyShortcut
hidePodcasts hidePodcasts
adblock
fullAppDisplay fullAppDisplay
shuffle shuffle
]; ];
+47
View File
@@ -0,0 +1,47 @@
# Thunar is a file explorer
{ pkgs, ... }: {
# ctrl + m to toggle the menubar
home.packages = with pkgs.xfce; [
thunar
xfconf
tumbler
thunar-archive-plugin
thunar-volman
];
home.file.".config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml".text = ''
<?xml version="1.0" encoding="UTF-8"?>
<channel name="thunar" version="1.0">
<property name="last-view" type="string" value="ThunarIconView"/>
<property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_100_PERCENT"/>
<property name="last-window-maximized" type="bool" value="true"/>
<property name="last-separator-position" type="int" value="170"/>
<property name="last-statusbar-visible" type="bool" value="false"/>
<property name="last-menubar-visible" type="bool" value="false"/>
<property name="misc-single-click" type="bool" value="false"/>
<property name="shortcuts-icon-emblems" type="bool" value="true"/>
<property name="tree-icon-emblems" type="bool" value="true"/>
<property name="misc-file-size-binary" type="bool" value="true"/>
<property name="misc-thumbnail-draw-frames" type="bool" value="false"/>
<property name="misc-text-beside-icons" type="bool" value="true"/>
<property name="misc-change-window-icon" type="bool" value="true"/>
<property name="hidden-bookmarks" type="array">
<value type="string" value="computer:///"/>
<value type="string" value="recent:///"/>
<value type="string" value="file:///"/>
<value type="string" value="network:///"/>
</property>
<property name="hidden-devices" type="array">
<value type="string" value="52FEA905FEA8E309"/>
</property>
<property name="last-toolbar-item-order" type="string" value="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17"/>
<property name="last-toolbar-visible-buttons" type="string" value="0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0"/>
<property name="last-location-bar" type="string" value="ThunarLocationButtons"/>
<property name="last-show-hidden" type="bool" value="false"/>
<property name="last-details-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_38_PERCENT"/>
<property name="last-details-view-column-widths" type="string" value="50,50,127,50,50,50,50,50,751,50,50,75,50,145"/>
<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>
'';
}
+86
View File
@@ -0,0 +1,86 @@
{ pkgs, config, inputs, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
background = "#${config.lib.stylix.colors.base00}";
foreground = "#${config.lib.stylix.colors.base05}";
muted = "#${config.lib.stylix.colors.base03}";
settings = ''
{
"config": {
"title" : "Welcome Home",
"openLinksInNewTab": false,
"locale": "fr-FR",
"colors": {
"primary": "${accent}",
"background": "${background}",
"foreground": "${foreground}",
"muted": "#${muted}"
},
"folders": [
{
"name": "Bookmarks",
"links": [
{"title": "MyNixOs", "url": "https://mynixos.com", "icon": "󱄅"},
{"title": "Github", "url": "https://github.com", "icon": ""},
{"title": "Proton", "url": "https://mail.proton.me/u/0/inbox", "icon": ""},
{"title": "Cloudflare One", "url": "https://one.dash.cloudflare.com/", "icon": ""},
{"title": "Chat GPT", "url": "https://chat.openai.com/", "icon": "󰭹"},
{"title": "Nixvim", "url": "https://nix-community.github.io/nixvim/", "icon": ""},
{"title": "Hyprland Wiki", "url": "https://wiki.hyprland.org/", "icon": "󰖬"},
{"title": "Youtube", "url": "https://youtube.com", "icon": "󰗃"},
{"title": "Figma", "url": "https://figma.com", "icon": ""},
{"title": "Server", "url": "https://home.anotherhadi.com", "icon": ""}
]
},
{
"name": "Work",
"links": [
{"title": "Outlook", "url": "https://outlook.office.com/mail/", "icon": "󰴢"},
{"title": "Office", "url": "https://www.office.com/?auth=2", "icon": "󰏆"},
{"title": "Teams", "url": "https://teams.microsoft.com/_", "icon": "󰊻"}
]
}
]
}
}
'';
homepage = pkgs.buildNpmPackage {
pname = "homepage";
version = "0.0.0";
src = pkgs.fetchFromGitHub {
owner = "anotherhadi";
repo = "homepage";
rev = "b77d35ed3596eb451bd2ec78063d7cc6e73c773d";
hash = "sha256-j/40922kfAh6zqJ4IRYpr66YXNNYsxuXwZ0aiJFJea0=";
};
# npmDepsHash = lib.fakeHash;
npmDepsHash = "sha256-bG+CHTq2Rst3JMxsjAC81KhK+G7WwsTVD1eyP87g0z4=";
buildPhase = ''
npm install
cp ${
pkgs.writeText "src/routes/config.json" settings
} src/routes/config.json
npm run build
mkdir $out
mv build $out
'';
meta = {
description = "homepage";
homepage = "https://github.com/anotherhadi/homepage";
};
};
in {
home.file.".config/homepage" = {
source = "${homepage}/build";
recursive = true;
};
home.packages = with pkgs;
[ inputs.zen-browser.packages."${system}".default ];
}
-36
View File
@@ -1,36 +0,0 @@
{ pkgs, ... }:
let
battery-watch = pkgs.writeShellScriptBin "battery-watch" ''
while true;do
battery-plugged &
battery-level &
sleep 60
done
'';
battery-plugged = pkgs.writeShellScriptBin "battery-plugged" ''
BATTERY_STATUS=$(cat /sys/class/power_supply/BAT*/status | head -n1)
OLD_BATTERY_STATUS=$(cat /tmp/old_battery_status 2>/dev/null || echo "Unknown")
if [[ $BATTERY_STATUS != $OLD_BATTERY_STATUS && $OLD_BATTERY_STATUS != "Unknown" ]]; then
if [[ $BATTERY_STATUS == "Discharging" ]]; then
notif "battery" "󰚦 Battery is unplugged"
else
notif "battery" "󰚥 Battery is plugged in"
fi
fi
echo $BATTERY_STATUS > /tmp/old_battery_status
'';
battery-level = pkgs.writeShellScriptBin "battery-level" ''
BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity | head -n1)
BATTERY_STATUS=$(cat /sys/class/power_supply/BAT*/status | head -n1)
if [[ $BATTERY_LEVEL -le 20 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then
notif "battery" "󰁻 Low battery" "Battery level is $BATTERY_LEVEL%"
elif [[ $BATTERY_LEVEL -le 10 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then
notif "battery" "󰁺 Very low battery" "Battery level is $BATTERY_LEVEL%"
# elif [[ $BATTERY_LEVEL -eq 100 ]] && [[ $BATTERY_STATUS -ne "Discharging" ]]; then
# notif "battery" "󰁹 Fully charged"
fi
'';
in { home.packages = [ battery-watch battery-plugged battery-level ]; }
+23 -10
View File
@@ -1,19 +1,24 @@
# - ## Brightness
#-
#- This module provides a set of scripts to control the brightness of the screen.
#-
#- - `brightness-up` increases the brightness by 5%.
#- - `brightness-down` decreases the brightness by 5%.
#- - `brightness-set [value]` sets the brightness to the given value.
#- - `brightness-change [up|down] [value]` increases or decreases the brightness by the given value.
{ pkgs, ... }: { pkgs, ... }:
let let
increments = "5"; increments = "5";
brightness-change = pkgs.writeShellScriptBin "brightness-change" '' brightness-change = pkgs.writeShellScriptBin "brightness-change" ''
sleep 0.05 [[ $1 == "up" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%+
[[ $1 == "down" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%-
'';
[[ $1 == "up" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ${increments}%+ brightness-set = pkgs.writeShellScriptBin "brightness-set" ''
[[ $1 == "down" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ${increments}%- ${pkgs.brightnessctl}/bin/brightnessctl set ''${1-100}%
brightness_level=$(${pkgs.brightnessctl}/bin/brightnessctl get)
message="󰃠 Brightness: $brightness_level%"
notif "brightness" "$message" "extraargs=-h int:value:$brightness_level"
''; '';
brightness-up = pkgs.writeShellScriptBin "brightness-up" '' brightness-up = pkgs.writeShellScriptBin "brightness-up" ''
@@ -24,4 +29,12 @@ let
brightness-change down ${increments} brightness-change down ${increments}
''; '';
in { home.packages = [ brightness-change brightness-up brightness-down ]; } in {
home.packages = [
pkgs.brightnessctl
brightness-change
brightness-up
brightness-down
brightness-set
];
}
+23 -10
View File
@@ -1,20 +1,33 @@
# - ## Caffeine
#-
#- Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
#-
#- - `caffeine-status` - Check if hypridle is running. (0/1)
#- - `caffeine-status-icon` - Check if hypridle is running. (icon)
#- - `caffeine` - Toggle hypridle.
{ pkgs, ... }: { pkgs, ... }:
let let
caffeine-status = pkgs.writeShellScriptBin "caffeine-status" '' caffeine-status = pkgs.writeShellScriptBin "caffeine-status" ''
[[ -f /tmp/caffeine ]] && echo "active" || echo "inactive" [[ $(pidof "hypridle") ]] && echo "0" || echo "1"
'';
caffeine-status-icon = pkgs.writeShellScriptBin "caffeine-status-icon" ''
[[ $(pidof "hypridle") ]] && echo "󰾪" || echo "󰅶"
''; '';
caffeine = pkgs.writeShellScriptBin "caffeine" '' caffeine = pkgs.writeShellScriptBin "caffeine" ''
if [[ -f /tmp/caffeine ]]; then if [[ $(pidof "hypridle") ]]; then
rm /tmp/caffeine systemctl --user stop hypridle.service
${pkgs.hyprland}/bin/hyprctl dispatch exec ${pkgs.hypridle}/bin/hypridle title="󰅶 Caffeine Activated"
message="󰾪 Caffeine Deactivated" description="Caffeine is now active! Your screen will not turn off automatically."
else else
touch /tmp/caffeine systemctl --user start hypridle.service
pkill hypridle title="󰾪 Caffeine Deactivated"
message="󰅶 Caffeine Activated" description="Caffeine is now deactivated! Your screen will turn off automatically."
fi fi
notif "caffeine" "$message"
notif "caffeine" "$title" "$description"
''; '';
in { home.packages = [ caffeine-status caffeine ]; } in { home.packages = [ caffeine-status caffeine caffeine-status-icon ]; }
-22
View File
@@ -1,22 +0,0 @@
# From https://github.com/Frost-Phoenix/nixos-config
{ pkgs, ... }:
let
compress = pkgs.writeShellScriptBin "compress" ''
if (( $# == 1 )) then
# echo -ne "Archive name: "
# read name
# tar -cvzf "$name.tar.gz" $1
tar -cvzf "$1.tar.gz" $1
else
echo "Wrong number of arguments..."
fi
'';
extract = pkgs.writeShellScriptBin "extract" ''
for i in "$@" ; do
tar -xvzf $i
break
done
'';
in { home.packages = [ compress extract ]; }
+5 -6
View File
@@ -4,14 +4,13 @@
./sounds ./sounds
./brightness ./brightness
./caffeine ./caffeine
./hyprpanel
./hyprfocus
./night-shift ./night-shift
./screenshot ./screenshot
./startup ./nerdfont-fzf
./nerdfont_fzf
./notification ./notification
./battery ./system
./compress ./openvpn
./misc
./tofi
]; ];
} }
+42
View File
@@ -0,0 +1,42 @@
# - ## Hyprfocus
#-
#- A simple script to toggle focus on few windows in Hyprland.
#- (disable gaps, border, shadow, opacity, etc.)
#-
#- - `hyprfocus-on` - Enable hyprfocus.
#- - `hyprfocus-off` - Disable hyprfocus.
#- - `hyprfocus-toggle` - Toggle hyprfocus.
{ pkgs, ... }:
let
hyprfocus-on = pkgs.writeShellScriptBin "hyprfocus-on"
# bash
''
hyprpanel-hide
hyprctl keyword "general:gaps_in" 0
hyprctl keyword "general:gaps_out" 0
hyprctl keyword "general:border_size" 1
hyprctl keyword "decoration:rounding" 0
hyprctl keyword "decoration:drop_shadow" false
hyprctl keyword "decoration:inactive_opacity" 0.98
hyprctl keyword "decoration:active_opacity" 1
echo "1" > /tmp/hyprfocus
'';
hyprfocus-off = pkgs.writeShellScriptBin "hyprfocus-off"
# bash
''
hyprctl reload
hyprpanel-show
rm /tmp/hyprfocus
'';
hyprfocus-toggle = pkgs.writeShellScriptBin "hyprfocus-toggle"
# bash
''
if [ -f /tmp/hyprfocus ]; then
hyprfocus-off
else
hyprfocus-on
fi
'';
in { home.packages = [ hyprfocus-on hyprfocus-off hyprfocus-toggle ]; }
+47
View File
@@ -0,0 +1,47 @@
# - ## Hyprpanel
#-
#- Quick scripts to toggle, reload, hide & show hyprpanel.
#-
#- - `hyprpanel-toggle` - Toggle hyprpanel (hide/show).
#- - `hyprpanel-show` - Show hyprpanel.
#- - `hyprpanel-hide` - Hide hyprpanel.
#- - `hyprpanel-reload` - Reload hyprpanel.
{ pkgs, ... }:
let
hyprpanel-toggle = pkgs.writeShellScriptBin "hyprpanel-toggle" ''
hyprpanel toggleWindow bar-0
hyprpanel toggleWindow bar-1
hyprpanel toggleWindow bar-2
hyprpanel toggleWindow bar-3
'';
hyprpanel-hide = pkgs.writeShellScriptBin "hyprpanel-hide" ''
status=$(hyprpanel isWindowVisible bar-0)
if [[ $status == "true" ]]; then
hyprpanel toggleWindow bar-0
fi
status=$(hyprpanel isWindowVisible bar-1)
if [[ $status == "true" ]]; then
hyprpanel toggleWindow bar-1
fi
'';
hyprpanel-show = pkgs.writeShellScriptBin "hyprpanel-show" ''
status=$(hyprpanel isWindowVisible bar-0)
if [[ $status == "false" ]]; then
hyprpanel toggleWindow bar-0
fi
status=$(hyprpanel isWindowVisible bar-1)
if [[ $status == "false" ]]; then
hyprpanel toggleWindow bar-1
fi
'';
hyprpanel-reload = pkgs.writeShellScriptBin "hyprpanel-reload" ''
[ $(pgrep "ags") ] && pkill ags
hyprctl dispatch exec hyprpanel
'';
in {
home.packages =
[ hyprpanel-toggle hyprpanel-reload hyprpanel-hide hyprpanel-show ];
}

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