337 Commits

Author SHA1 Message Date
kenji 51685d59f2 add(waybar): #special workspace 2025-12-28 14:16:48 -06:00
kenji 25f838b454 fix(hyprland): workspace switch on normal workspace 2025-12-28 14:16:38 -06:00
kenji 49ea478d57 fix(exec): fix initial startup at preload 2025-12-28 13:54:00 -06:00
kenji fa39d60ded add(waybar): special workspaces 2025-12-28 13:53:32 -06:00
kenji 71cf63c461 add(hypr): add special workspace 2025-12-28 13:51:35 -06:00
kenji 161c6337a4 feat(hypr): add force switching of workspace
useful for going from special workspace to normal workspace
2025-12-28 12:13:41 -06:00
kenji d74fa4e552 feat(hakase-wallpaper-switch): changed target dir 2025-12-28 11:29:43 -06:00
kenji 92a3fef81b remove(secret): removed var avante 2025-12-28 11:29:17 -06:00
kenji d009ca3d3a fix(ghostty): app-notification 2025-12-28 11:20:35 -06:00
kenji 6696db16ab upd(flake): updated flake to be more stable 2025-12-28 11:20:25 -06:00
kenji 1a48e22c9d feat(starship): changed toml 2025-12-28 11:20:14 -06:00
kenji ac55b09c68 add(TODO): added todo list 2025-12-28 10:07:49 -06:00
kenji 4592a9cda0 feat(flake): made it more stable 2025-12-28 10:07:42 -06:00
kenji 0e446fa4bd remove(README): removed todo 2025-12-28 10:07:18 -06:00
kenji dfbd9950d6 feat(ghostty): remove notification for config change 2025-12-28 09:24:35 -06:00
kenji cc9df9f425 feat(firefox): smooth scroll tridactyl 2025-12-28 09:23:08 -06:00
kenji 8451c0e844 cleaned up 2025-12-28 09:22:58 -06:00
kenji 47de61c982 add(cachix): faster installation of system 2025-12-28 09:08:00 -06:00
kenji d4be82176d bind(hypr): commented redundancy 2025-12-28 08:53:44 -06:00
kenji ca7968ae14 bind(firefox): removed <C-e> bind 2025-12-28 08:53:26 -06:00
kenji 4412cd119d bind(firefox): switched bind J and K function 2025-12-28 08:18:40 -06:00
kenji 1db6f4dddd add(apps): jellyfin 2025-12-28 07:59:34 -06:00
kenji d30bfc951e feat(walker): use duckduckgo as default 2025-12-28 07:57:05 -06:00
kenji 6694ed268a fix(hypr): smart split ain't good 2025-12-28 07:56:43 -06:00
kenji eed6bfd51b fix(preload): not actually fixed, find a way 2025-12-28 07:17:18 -06:00
kenji b6aa962496 feat(hypr): add preload 2025-12-28 00:03:50 -06:00
kenji 98fb607238 feat(hypr): organization 2025-12-27 23:56:12 -06:00
kenji 9190eb6281 fix(firefox): youtube profile now works 2025-12-27 23:44:59 -06:00
kenji c85cdcf54d feat(firefox): youtube profile 2025-12-27 23:09:03 -06:00
kenji 68da7615ee binds(hypr): changed to O 2025-12-27 23:03:21 -06:00
kenji 95b71a562f feat(walker): add emoji 2025-12-27 23:03:06 -06:00
kenji 62e5b210e4 feat(hypr): better navigation 2025-12-27 22:50:23 -06:00
kenji d28ef117fa feat(hyprland): add mouse binds and resize keyboard shortcuts 2025-12-27 22:30:43 -06:00
kenji e96f291048 clean up 2025-12-27 22:20:53 -06:00
kenji d3b073fda4 cleanedu p 2025-12-27 22:20:06 -06:00
kenji 1a3559b9c0 fix: incorrect naming in exe3c 2025-12-27 22:18:00 -06:00
kenji d662e5dcc7 clean: upe 2025-12-27 22:16:37 -06:00
kenji 59340e4d6d fix: music-launcher 2025-12-27 22:11:03 -06:00
kenji 34a0243c43 add: toggle split on V 2025-12-27 21:57:49 -06:00
kenji 3dc1fa61e0 add: music-launcher 2025-12-27 21:49:57 -06:00
kenji 1fd59ceb04 add: cava 2025-12-27 21:35:22 -06:00
kenji 66adb9d1d6 optimize: cleaned up redundancies 2025-12-27 21:19:52 -06:00
kenji 27c471addd feat: steam rules only launch on steam T 2025-12-27 20:36:07 -06:00
kenji 3f5f2fbcd6 improve: hakase-wallpaper-switch 2025-12-27 20:31:19 -06:00
kenji 7d04d1d840 add: wallpaper changer 2025-12-27 20:09:43 -06:00
kenji f8cdd03c17 t 2025-12-27 20:00:13 -06:00
kenji 3b35cc12d3 add: switch-wallpaper.nix 2025-12-27 19:40:54 -06:00
kenji 08b78610f3 fix: the secrets 2025-12-27 19:29:51 -06:00
kenji 32cf771c69 add: enc 2025-12-27 18:54:39 -06:00
kenji 16b7b342d1 upd: nixovim 2025-12-27 18:54:35 -06:00
kenji a78fdfcaeb change: wallpaper 2025-12-27 18:36:34 -06:00
kenji a5e9acad20 add: wallpaper purple 2025-12-27 17:53:45 -06:00
kenji c47e115020 mod: walker 2 2025-12-27 17:43:16 -06:00
kenji a92d654fe0 mod: walker 2025-12-27 17:42:11 -06:00
kenji 57333f3a73 add: layout for walker 2025-12-27 17:13:56 -06:00
kenji 32cd6760b6 fix: pywalfox not starting 2025-12-27 17:13:49 -06:00
kenji 999710d44c fix: pywalfox now works 2025-12-27 16:50:54 -06:00
kenji 938c244704 add: pywalfox 2025-12-27 16:42:48 -06:00
kenji 6ab0623c55 feat: branding removed space 2025-12-27 16:29:22 -06:00
kenji fa543b059f add: hypr exec pywalfox 2025-12-27 16:29:13 -06:00
kenji 780afcbda6 feat: removed bg 2025-12-27 16:29:02 -06:00
kenji 9b3b09f6e5 add: extensions firefox 2025-12-27 16:07:25 -06:00
kenji a234c2d573 organize: textfox 2025-12-27 13:37:14 -06:00
kenji 602acee708 clean: removed git default 2025-12-27 13:32:45 -06:00
kenji cb9c91c7a7 fix: some stff 2025-12-27 13:27:47 -06:00
kenji 4d9d68e7e6 add: walker theme 2025-12-27 12:12:49 -06:00
kenji 3aad507ba8 remove: fsel 2025-12-27 11:57:56 -06:00
kenji 1cd2b54e6a cleaned up unused vars 2025-12-27 11:41:05 -06:00
kenji 8372715482 replace: starship loadout 2025-12-27 11:40:34 -06:00
kenji eb10aa526e add: starship conf 2025-12-27 11:37:21 -06:00
kenji e8abbff15e fix: waybar colors 2025-12-27 11:14:39 -06:00
kenji b9471c83ed add: waybar 2025-12-27 11:05:09 -06:00
kenji 46c08d95ec add 2025-12-27 10:51:09 -06:00
kenji f302399b70 add: hyprland colors 2025-12-27 10:48:22 -06:00
kenji c9387525eb add: conf 2025-12-27 10:20:28 -06:00
kenji c1a76f2b2b add: matugen 2025-12-27 10:11:03 -06:00
kenji ef68c8191e add: firewatch wallpapers 2025-12-26 19:44:40 -06:00
kenji 16a14f9863 add: firewatch wall 2025-12-26 19:41:19 -06:00
kenji 10cb0370b6 organize: tte 2025-12-26 19:34:48 -06:00
kenji 5bf24e41fb add: macos tahoe 2025-12-26 19:34:39 -06:00
kenji af2a4738a8 reserved 2025-12-26 19:34:25 -06:00
kenji 20e39113a9 optimization: faster essentials 2025-12-26 19:34:19 -06:00
kenji f5d81a5a43 fix: stuff 2025-12-26 16:47:50 -06:00
kenji 39f692919b added branding 2025-12-26 16:20:14 -06:00
kenji fed7db4fbc add: screensaver 2025-12-26 16:09:12 -06:00
kenji 9fa7d0c4f5 add: tte 2025-12-26 15:33:39 -06:00
kenji d1a3e369e4 rename: hakase-scripts 2025-12-26 15:29:31 -06:00
kenji ab9247bc45 add: gaming 2025-12-26 13:45:39 -06:00
kenji 4b1d5c5f02 add: brightness adjustment 2025-12-26 13:33:11 -06:00
kenji fe39db683a add: backlight.nix 2025-12-26 13:26:27 -06:00
kenji 5fa73c0bad add: decorations 2025-12-26 13:22:25 -06:00
kenji 8231d88a5b minor: readabilty 2025-12-26 13:19:09 -06:00
kenji b9595f283a fix: added input 2025-12-26 13:18:43 -06:00
kenji 4cf1c3e74d add: env.nix 2025-12-26 13:18:34 -06:00
kenji a97d65ac0e add: misc.nix, input.nix 2025-12-26 13:10:31 -06:00
kenji 5e905af198 add: misc.nix 2025-12-26 13:06:05 -06:00
kenji f113b5d9b8 replace: fsel -> walker 2025-12-26 13:05:57 -06:00
kenji 4ce7ab874f feat: disabled some hints 2025-12-26 13:05:38 -06:00
kenji 2049c94a1c add: improved animation 2025-12-26 13:05:26 -06:00
kenji 2e14ccbe1a fix: swayosd not working 2025-12-26 13:05:12 -06:00
kenji 80190502ba add: new binds for moving window 2025-12-26 13:05:00 -06:00
kenji 6ca530741e fix: fsel problems 2025-12-26 11:52:12 -06:00
kenji 3505aabbc7 add: fsel launcher 2025-12-26 11:34:32 -06:00
kenji c124898b8c add: config for fsel 2025-12-26 11:34:17 -06:00
kenji e3bac0adc6 boot: set timeout to 0 2025-12-26 11:16:08 -06:00
kenji af1ae030a4 new: audio setters 2025-12-26 10:07:24 -06:00
kenji f0b48b9f61 new: textfox--a firefox tui-like experience 2025-12-26 09:52:50 -06:00
kenji 8f6dc9796d feat: use tui for bar tools 2025-12-26 09:09:59 -06:00
kenji a9f2e86491 Revert "this one works"
This reverts commit 8ac3c21228.
2025-12-26 09:01:49 -06:00
kenji 8ac3c21228 this one works 2025-12-25 19:52:09 -06:00
kenji cf2f942f0b improved bar scripts (needs to be reliable though) 2025-12-25 19:14:51 -06:00
kenji 0ac2ceba5c added fsel 2025-12-25 11:26:02 -06:00
kenji b241a5c5f4 added todo 2025-12-25 11:16:42 -06:00
kenji 69154e639a btop: changed theme 2025-12-25 10:36:46 -06:00
kenji 6e8c747a5c added style for walker 2025-12-25 09:58:37 -06:00
kenji e753361e07 added fonts 2025-12-25 09:44:23 -06:00
kenji d96148bf06 ADD: preload nix 2025-12-25 08:59:52 -06:00
kenji 2d9f95e8e5 added kernel 2025-12-25 08:53:23 -06:00
kenji c604816aa9 fix: dynamic wallpaper 2025-12-25 00:41:44 -06:00
kenji cf28f0cede modded walker 2025-12-24 23:14:40 -06:00
kenji 22fc29f8f1 hypr: rules added 2025-12-24 23:06:55 -06:00
kenji 51419d6171 fix: hakase scripting 2025-12-24 23:03:49 -06:00
kenji 37dde66dc4 fix: impala aint working back 2025-12-24 22:36:56 -06:00
kenji fa1baa128f added scripts 2025-12-24 22:34:08 -06:00
kenji ad64748ad7 added BTOP 2025-12-24 22:28:31 -06:00
kenji 381c4876d9 changed to kanagawa 2025-12-24 22:21:29 -06:00
kenji 06383737d7 added nixos_rainbow 2025-12-24 22:06:16 -06:00
kenji 069e53d66f added kanagawa 2025-12-24 22:00:21 -06:00
kenji 00ea547c8d applied colors 2025-12-24 21:58:12 -06:00
kenji aa7e045303 renamed 2025-12-24 21:31:02 -06:00
kenji f9ab7268d2 added catppuccin wallpaper 2025-12-24 21:30:30 -06:00
kenji 9e49f7f433 added light tower wallpaper 2025-12-24 21:18:26 -06:00
kenji 6621b7aa7b fix: test 2025-12-24 21:04:54 -06:00
kenji bd5f8eec2b added wallpaper assets 2025-12-24 21:02:55 -06:00
kenji 11b4f2410d test2 2025-12-24 21:00:59 -06:00
kenji 4c0fe82453 tes 2025-12-24 18:20:35 -06:00
kenji 830165aab8 ADDED stylix on HOME 2025-12-24 18:11:56 -06:00
kenji 93e5181cb6 ADDED hyprpaper 2025-12-24 18:01:30 -06:00
kenji 7d5a24c7f8 walker and added icons 2025-12-24 17:46:04 -06:00
kenji 882063c6c6 ADDED home walker 2025-12-24 17:38:24 -06:00
kenji 7fe00a1375 ADDED walker 2025-12-24 17:36:54 -06:00
kenji 6d0963827b added impala 2025-12-24 17:36:36 -06:00
kenji 74bef0c5cd fixed the part where sops dont work with user 2025-12-24 17:24:22 -06:00
kenji 684ee6f23d added README features 2025-12-24 17:09:41 -06:00
kenji 3135e1cec4 added README 2025-12-24 16:47:32 -06:00
kenji be4b66fdd2 fully implemented SOPS 2025-12-24 16:24:38 -06:00
kenji 8b66ff719b added sops, age, ssh-to-age for security 2025-12-24 16:10:59 -06:00
kenji edfa915586 ADDED variables 2025-12-24 16:05:31 -06:00
kenji 3980c8ae88 added sops on inputs 2025-12-24 15:51:42 -06:00
kenji 348d2b46e6 added sops and age 2025-12-24 14:11:30 -06:00
kenji a4f41a0371 added newtabpage to config.nix 2025-12-24 13:53:02 -06:00
kenji 7cd5b88c45 nixovim: disabled auto_install due to problems 2025-12-24 13:33:26 -06:00
kenji bf3e18d17c nixovim: fixed error at startup
pain in the a**
2025-12-24 13:28:46 -06:00
kenji 7af0cfd06d test 2025-12-24 12:56:07 -06:00
kenji 6628c4d589 added apps-optional 2025-12-24 11:21:55 -06:00
kenji 260ca708a8 ADDED jellyfin-tui 2025-12-24 10:49:33 -06:00
kenji ef7c3d23a3 returned bindings to firefox 2025-12-24 10:49:27 -06:00
kenji c2cb932c66 FIREFOX: fixed not being able to add bookmarks 2025-12-24 10:49:16 -06:00
kenji 21b805741f fixed spelling error 2025-12-24 16:43:16 +00:00
kenji 44fa744312 added comment 2025-12-24 16:30:50 +00:00
kenji 445f70a5ec test 2025-12-24 16:29:44 +00:00
kenji eb9d3f2d16 ADDED timezone 2025-12-24 16:29:25 +00:00
kenji 66f6ae06d7 added option for default terminal 2025-12-24 16:28:37 +00:00
kenji 08868fc241 modular binding for firefox 2025-12-24 16:28:28 +00:00
kenji 811011d6d6 fixed some issue and added uwsm support 2025-12-24 16:19:44 +00:00
kenji 7df49ad646 added pamixer 2025-12-24 15:51:43 +00:00
kenji 2caa21482f added waybar style 2025-12-24 14:12:48 +00:00
kenji 573231b99a added workspace binds 2025-12-24 00:07:06 +00:00
kenji 04190ab15c ADDED exec hypr 2025-12-23 23:57:35 +00:00
kenji 63832528f2 waybar config 2025-12-23 23:53:50 +00:00
kenji 18a687f114 ADDED module for waybar 2025-12-23 23:52:19 +00:00
kenji e0edcb77e1 ADDED waybar 2025-12-23 23:43:57 +00:00
kenji 9795d54dd4 makes decent LUKS lock screen 2025-12-23 23:43:52 +00:00
kenji fd28c24d7a added padding for ghostty and hypr 2025-12-23 23:23:44 +00:00
kenji e05f9d387e ADDED starship 2025-12-23 23:08:13 +00:00
kenji 0ad80cf7a1 added firefox 2025-12-23 23:03:05 +00:00
kenji c4639d88c5 fix hyprland incorrect bindings 2025-12-23 22:58:54 +00:00
kenji e4e90059e3 ADDDED security 2025-12-23 22:53:00 +00:00
kenji 07879586b4 ADDED gemini 2025-12-23 21:56:59 +00:00
kenji 2d3ec51eb1 ADDED modules for hyprland 2025-12-23 21:50:16 +00:00
kenji 88eaa7a242 commented hyprpolkit 2025-12-23 21:46:33 +00:00
kenji 5faef18601 ADDED home for hyprland 2025-12-23 21:46:27 +00:00
kenji c9d7932bda added binds and general nix 2025-12-23 21:42:07 +00:00
kenji 7ebc2f366b uses proper home config for ghostty 2025-12-23 21:02:43 +00:00
kenji 69b3d42f9a ADDED ghostty 2025-12-23 20:59:59 +00:00
kenji 587266c904 ADDED yazi 2025-12-23 20:52:30 +00:00
kenji ded05e23fc added hyprland 2025-12-23 20:22:09 +00:00
kenji 07d33b60dc minor fixes 2025-12-23 20:22:05 +00:00
kenji cd647e7d7b added fonts and programs nix 2025-12-23 20:12:10 +00:00
kenji facce75d9f organadded unused starship 2025-12-23 20:12:05 +00:00
kenji ab6eb6db5b fixed lots of stuff 2025-12-23 19:48:09 +00:00
kenji a036da9b76 removed other integration for zoxide 2025-12-23 19:43:57 +00:00
kenji b796260c7e removed cd alias (did not work) 2025-12-23 19:43:41 +00:00
kenji 4a23455792 added shellaliases 2025-12-23 19:41:41 +00:00
kenji bbe6ef38b7 added fish 2025-12-23 19:15:50 +00:00
kenji 3b7ed586c6 added zoxide 2025-12-23 19:12:09 +00:00
kenji f9c11e0dc0 test 2025-12-23 19:01:28 +00:00
kenji 5e093d351b test 2025-12-23 19:00:25 +00:00
kenji 2c88a52d5a this one works! 2025-12-23 18:59:36 +00:00
kenji b55c662a1b hello world! 2025-12-23 18:43:43 +00:00
kenji 73b5b2c9f6 test 2025-12-23 12:22:32 -06:00
kenji f155563ca0 test 2025-12-23 12:19:53 -06:00
kenji 9b615f3825 added hardware config 2025-12-23 12:13:29 -06:00
kenji 56a829cdb3 renmaed 2025-12-22 09:39:51 -06:00
kenji d7c275f6e9 more added 2025-12-22 09:38:38 -06:00
kenji 420d4f173c revamped 2025-12-22 09:32:38 -06:00
kenji ec424cd6d8 restarted from the very beginning 2025-12-22 08:42:00 -06:00
lsoriano-mcm fc765ee94f renamed variables
renamed macbook-air to macbook
2025-08-07 12:03:23 -05:00
lsoriano-mcm b86646816b darwin rebuilding 2025-08-07 12:01:20 -05:00
lsoriano-mcm 12dbe7536f added new folders 2025-07-20 16:42:36 -05:00
kenji 1bbac664e7 added modern branch 2025-07-20 16:29:26 -05:00
kenji e5a5189158 added aiohttp 2025-07-20 16:19:43 -05:00
kenji fa0e502472 enables steamOSConfiguration (opinionated) 2025-07-20 12:18:55 -05:00
kenji 562d1f30e4 major changes 2025-07-20 08:57:22 -05:00
kenji b86499aec5 wake up bluetooth devices designed for mb 2025-07-19 13:00:50 -05:00
kenji 1fdfb9f62a added usbutils 2025-07-19 13:00:34 -05:00
kenji 2b6a99b191 removed Gaming config 2025-07-19 11:44:00 -05:00
kenji 454673329f removed redundancies 2025-07-19 11:43:55 -05:00
kenji a4e661d6ad added udev rule for bluetooth 2025-07-19 11:43:49 -05:00
kenji dc38c2d88a added steam hardware support 2025-07-19 11:43:38 -05:00
kenji c267da0953 removed Hyprland.enable conf 2025-07-19 11:43:30 -05:00
kenji c5e76b1a44 changed config 2025-07-19 11:43:20 -05:00
kenji 335d41cf19 added more boot params 2025-07-19 11:43:11 -05:00
kenji 4360edef9e added mesa patches for steamos 2025-07-18 18:58:02 -05:00
kenji fde813460a decky loader manual add 2025-07-18 13:15:21 -05:00
kenji 7a6e450c8f add decky loader 2025-07-18 13:15:16 -05:00
kenji 59656b7dc8 successful integration of jovian 2025-07-18 12:37:19 -05:00
kenji f18f33c9c3 added jovian 2025-07-18 10:56:26 -05:00
kenji 10c6f094f6 added boot configs, changed displayserver to 2025-07-18 10:40:22 -05:00
kenji a6fdaf9a27 renamed incorrect var 2025-07-18 08:47:27 -05:00
kenji 1b8e5032f9 added steamos 2025-07-18 08:33:22 -05:00
kenji aaef1dccb2 Revert "conf: added boot and steam optimizations"
This reverts commit 7ab78044b7.
2025-07-18 07:32:38 -05:00
kenji 21a61f528b added extrapackages for steam 2025-07-18 07:25:19 -05:00
kenji 7ab78044b7 conf: added boot and steam optimizations 2025-07-18 07:25:05 -05:00
kenji 28e9c06ea8 launch! 2025-07-17 21:58:51 -05:00
kenji 960ac31702 steam is no longer big picture 2025-07-17 21:37:19 -05:00
kenji f6b1976809 minor change to launching gs.sh 2025-07-17 15:10:29 -05:00
kenji f6156cad67 added launch.nix 2025-07-17 15:04:47 -05:00
kenji 88b4ff68a6 added gs.sh 2025-07-17 15:00:15 -05:00
kenji a4e2cf06e9 changed gaming special workspace to steam 2025-07-17 14:44:11 -05:00
kenji 67fa3f06ed autologin ENABLED 2025-07-16 18:04:41 -05:00
kenji 20930ea6c2 cleaned up exec-once 2025-07-16 18:04:37 -05:00
kenji deb4749489 starts on steam bigpicture 2025-07-16 17:59:45 -05:00
kenji 96b228aadc fixed 2025-07-16 17:43:34 -05:00
kenji 2dc8180d1b mod 2025-07-16 17:13:01 -05:00
kenji dd1213c5b7 added colours 2025-07-16 16:52:46 -05:00
kenji 47bd23b3dd modified caelestia-cli 2025-07-16 16:19:44 -05:00
kenji 25bba64185 test 2025-07-16 10:00:22 -05:00
kenji ffdb003aa2 added libnotify 2025-07-16 09:53:18 -05:00
kenji d3c0b74ab5 qs: add wl-screenrec 2025-07-16 09:51:50 -05:00
kenji c9b98978fa hypr: changed binds 2025-07-16 09:49:58 -05:00
kenji 7cec25fdb9 fix: steam bind 2025-07-16 09:15:26 -05:00
kenji 446cfea7dd test 2025-07-16 09:01:23 -05:00
kenji 3fd62d4525 test 2025-07-16 08:47:09 -05:00
kenji 69253992df test 2025-07-16 08:07:55 -05:00
kenji 35845cac3a added special workspace: gaming 2025-07-15 21:18:05 -05:00
kenji 33c6170c15 test 2025-07-15 17:44:14 -05:00
kenji dd36c2711a test 2025-07-14 22:42:32 -05:00
kenji e9c69c2cc1 added quickshell 2025-07-14 22:08:23 -05:00
kenji 30fbcec7f5 added app2unit 2025-07-14 21:53:48 -05:00
kenji c0f21fa798 organized 2025-07-14 21:49:43 -05:00
kenji cb61d6ad3d test 2025-07-14 21:38:45 -05:00
kenji 7588100a62 removed hardware-conf 2025-07-14 13:31:34 -05:00
kenji 5ce6b68252 nixos-hardware ADDED APFEL 2025-07-09 22:04:47 -05:00
kenji 5a6cdb3171 added steam home 2025-07-09 17:30:07 -05:00
kenji dcf30faa51 moved bottles to system 2025-07-09 17:02:46 -05:00
kenji 3096697e35 README: added protonup 2025-07-09 16:54:32 -05:00
kenji cdce0628ab added launchers for proton games 2025-07-09 16:47:40 -05:00
kenji 1c82b5eafe added protonup 2025-07-09 16:42:25 -05:00
kenji 216011d9f6 removed custom text 2025-07-09 16:34:15 -05:00
kenji 73a837925b test 2025-07-09 14:40:57 -05:00
kenji 47258d9e4d test 2025-07-09 14:24:53 -05:00
kenji 8ae075d84c added sunshine 2025-07-09 11:30:03 -05:00
kenji 6e4fe781ab added appimage "moondeck-buddy" 2025-07-09 11:10:40 -05:00
kenji dfbdf1cd87 changed mangohud ocnfig 2025-07-09 10:52:08 -05:00
kenji f947721819 added geekbench6 2025-07-09 10:40:01 -05:00
kenji c3fdb180ff setup wallpaper 2025-07-08 23:51:09 -05:00
kenji e1b503b43b added matugen 2025-07-08 23:44:13 -05:00
kenji a46fa6344d removed hdm1 2025-07-08 23:42:07 -05:00
kenji 2ab60c6047 added linuxcachyos 2025-07-08 23:33:21 -05:00
kenji 2a3c6ae6a9 added new bookmarsk 2025-07-08 23:33:11 -05:00
kenji 0181c007fe added dev.nix 2025-07-08 23:07:47 -05:00
kenji 83cdb81173 added execs 2025-07-08 23:05:40 -05:00
kenji 2580cf8aa5 converted to zsh 2025-07-08 23:05:33 -05:00
kenji de8e083e92 removed earlysetup 2025-07-08 23:05:25 -05:00
kenji 49460feb44 changed bibata to modern ice 2025-07-08 22:59:22 -05:00
kenji 4768918d0d added bibata 2025-07-08 22:40:55 -05:00
kenji a534ad610f added solaar and logitech support 2025-07-08 22:39:11 -05:00
kenji 4015222d6a cleaned up 2025-07-08 22:33:23 -05:00
kenji b23774d0a2 organized hypr config 2025-07-08 22:28:17 -05:00
kenji 58c1860ecf converted hyprsunset to service 2025-07-08 22:28:10 -05:00
kenji 302c5e11b2 fixed hyprsunset 2025-07-08 22:23:04 -05:00
kenji 757d9e523d fixed hyprsunset 2025-07-08 22:22:02 -05:00
kenji 673d824c26 added hyprsunset 2025-07-08 22:15:24 -05:00
kenji 8355d35aaf cleaned up zsh 2025-07-08 22:10:18 -05:00
kenji 1601f4b622 removed quickshell for now 2025-07-08 22:07:10 -05:00
kenji ee5165b068 added gitea 2025-07-08 22:05:36 -05:00
kenji 76138fc342 add cloudflared 2025-07-08 22:05:33 -05:00
kenji 2f1b33d070 added cloudflared 2025-07-08 22:05:30 -05:00
kenji bde12c7a04 added hyprland flake 2025-07-08 22:02:02 -05:00
kenji 658d489fd5 hyprland now uses 2025-07-08 22:01:56 -05:00
kenji 95f95e208d removed quickshell 2025-07-08 22:01:49 -05:00
kenji b5eb134f69 fixed home-manager not responding 2025-07-08 22:01:43 -05:00
kenji 6264269817 test 2025-07-08 10:11:12 -05:00
kenji 8151c56cc4 added wsaction 2025-07-08 09:56:59 -05:00
kenji 3a75206afb total revamp!! 2025-07-07 21:01:19 -05:00
kenji b5a542a37c added quickshell 2025-07-07 20:01:00 -05:00
kenji bd2465d356 test 2025-07-07 18:20:12 -05:00
kenji e5bc8801a4 test 2025-07-07 16:39:34 -05:00
kenji c97a5887df test 2025-07-07 16:25:40 -05:00
kenji ec55ac55b2 mionr fix 2025-07-07 14:42:02 -05:00
kenji 65f04a69ae test 2025-07-07 14:27:33 -05:00
kenji ad40c37d1e tret 2025-07-07 13:47:08 -05:00
lsoriano-mcm 4f3fe9be8b t\P 2025-07-05 16:12:54 -05:00
lsoriano-mcm 6f3c0e8f6c a 2025-07-05 14:07:54 -05:00
lsoriano-mcm 481fb8c6c4 re 2025-07-05 14:06:08 -05:00
lsoriano-mcm 94f5d8ba01 resadm 2025-07-05 14:05:02 -05:00
lsoriano-mcm ea18baa039 fixed formatting 2025-07-05 13:57:47 -05:00
lsoriano-mcm 1653fe3eb2 readme 2025-07-05 13:56:33 -05:00
lsoriano-mcm 162321eb28 updated lock 2025-07-05 11:28:35 -05:00
lsoriano-mcm d947870a55 added bashls for nixovim 2025-07-05 11:01:06 -05:00
lsoriano-mcm 6550d6e871 test 2025-07-05 09:22:12 -05:00
lsoriano-mcm 352f2d923b added custom apps 2025-07-04 22:52:23 -05:00
lsoriano-mcm e10deb6ae5 added fonts 2025-07-04 22:28:59 -05:00
lsoriano-mcm 90123ac18d added fonts 2025-07-04 22:25:44 -05:00
lsoriano-mcm 1bd3096d53 fix 2025-07-04 22:06:30 -05:00
lsoriano-mcm ca68b1de73 added HAKASE hostname 2025-07-04 21:46:22 -05:00
lsoriano-mcm f8386beb6c added zoxide 2025-07-04 14:39:20 -05:00
lsoriano-mcm b9f125e76a added eza 2025-07-04 11:41:59 -05:00
lsoriano-mcm 3717ecc642 added btop 2025-07-04 11:36:04 -05:00
lsoriano-mcm 377cd79704 unknown 2025-07-04 11:32:08 -05:00
lsoriano-mcm fea33ada52 fl 2025-07-03 21:13:33 -05:00
lsoriano-mcm a4cf2833bc added python package 2025-07-03 20:50:31 -05:00
lsoriano-mcm 8491971427 FIX: darwin version now works! 2025-07-03 20:45:15 -05:00
lsoriano-mcm b4f4b67a8b test 2025-07-03 16:49:45 -05:00
lsoriano-mcm f59110c87e renamed to home.nix 2025-07-03 16:34:49 -05:00
lsoriano-mcm 3dd4f2783e test 2025-07-03 15:30:58 -05:00
163 changed files with 4120 additions and 3079 deletions
+7
View File
@@ -0,0 +1,7 @@
keys:
- &user_kenji age1dhmt5tdyxd9zam542zkr9hq4tku7lzmf6j057sjtepk80deky5fqemczs5
creation_rules:
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
key_groups:
- age:
- *user_kenji
+53 -54
View File
@@ -1,58 +1,57 @@
# Sakamoto NixOS # HakaseOS
HakaseOS is an opinionated NixOS configuration heavily inspired by OmarchyOS.
Sakamoto NixOS is built with various profiles intended for reproducibility. ## Features
* Vim keybindings
* Simple Setup
* Pre-configured Firefox
## Available Hosts ## How to Use SOPS
SOPS is an important aspect of this operating system. Learning to use it is important for security and modularity. It is impertinent that you do not lose the `private key`, as it is irrecoverable.
- MacBook M series To get started, follow the instructions below.
- Linux 1. Create a folder.
```sh
mkdir -p ~/.config/sops/age
```
2. Generate a private key using `age`
```sh
nix-shell -p age --run "age-keygen -o ~/.config/sops/age/keys.txt"
```
**OR**
Use `ssh-to-age` to convert `id_ed22519` to `age`.
```sh
nix-shell -p ssh-to-age --run "ssh-to-age -private-key -i ~/.ssh/id_ed25519 > ~/.config/sops/age/keys.txt"
```
There are other ways of generating a private key. Refer to [sops-nix](https://github.com/Mic92/sops-nix).
3. Get a **public key**.
```sh
nix-shell -p age --run "age-keygen -y ~/.config/sops/age/keys.txt"
```
4. On the same directory as `flake.nix`, create `.sops.yaml` and paste the following below.
```yaml
# This example uses YAML anchors which allows reuse of multiple keys
# without having to repeat yourself.
# Also see https://github.com/Mic92/dotfiles/blob/d6114726d859df36ccaa32891c4963ae5717ef7f/nixos/.sops.yaml
# for a more complex example.
keys:
- &admin_alice 2504791468b153b8a3963cc97ba53d1919c5dfd4
- &admin_bob age12zlz6lvcdk6eqaewfylg35w0syh58sm7gh53q5vvn7hd7c6nngyseftjxl
creation_rules:
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
key_groups:
- pgp:
- *admin_alice
age:
- *admin_bob
## Installation ```
Replace as according to your needs.
1. Install [Nix](https://nixos.org/download/). 5. Create a sops `.yaml` file.
```sh
2. Ensure Nix is installed properly by running the following (this also gives you `nano` for editing later): nix-shell -p sops --run "sops secrets/example.yaml"
```
```sh NOTE: If you add a new host to your `.sops.yaml`, you will need to update the keys for all secrets.
nix-shell -p nano ```sh
``` nix-shell -p sops --run "sops updatekeys secrets/example.yaml"
```
3. Clone the git repository:
```sh
git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos && cd ~/.config/nixos/
```
4. Copy `info.default.nix` and rename it to `info.local.nix`:
```sh
cp ~/.config/nixos/info.default.nix ~/.config/nixos/info.local.nix
```
🚨 **CRITICAL STEP:** Edit `info.local.nix`:
```sh
nano ~/.config/nixos/info.local.nix
```
Modify it to fit your system — especially your **username**.
If you accidentally leave the default `biscuit`, that user will be created.
**Login password for `biscuit` is `<PLACEHOLDER>`.**
5. Execute the following command based on your host:
- **MacBook M series:**
```sh
sudo nix run nix-darwin --extra-experimental-features "nix-command flakes" -- switch --flake ~/.config/nixos#macos
```
- **Linux:**
```sh
sudo nixos-rebuild --flake ~/.config/nixos#desktop --impure
sudo nix run home-manager -- init --switch
home-manager switch --flake ~/.config/nixos#desktop --impure
nix-channel --add https://nixos.org/channels/nixos-unstable nixos nix-channel --update
reboot
```
+6
View File
@@ -0,0 +1,6 @@
* fix: special workspace preload always loads first. Toggling it back is easy, but i'd rather create a new sh script that forces back to normal workspace.
* add: hypridle
* add: similar to omarchy-menu
* cleanup: stylix configurations and wallpaper
* cleanup: convert `anonymize` fixme's to secret keys
* add: hyprlock
+3 -1
View File
@@ -1,8 +1,10 @@
{...}: { {
programs.btop = { programs.btop = {
enable = true; enable = true;
settings = { settings = {
vim_keys = true; vim_keys = true;
color_theme = "TTY";
theme_background = false;
}; };
}; };
} }
+5
View File
@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
cava
];
}
+146
View File
@@ -0,0 +1,146 @@
{
pkgs,
myConfig,
inputs,
...
}: {
imports = [
inputs.textfox.homeManagerModules.default
./textfox.nix
];
home.packages = with pkgs; [
pywalfox-native
tridactyl-native
];
home.file.".config/tridactyl/tridactylrc".text = ''
set focusbypass true
set smoothscroll true
bind J tabnext
bind K tabprev
unbind <C-e>
'';
programs.firefox = {
enable = true;
languagePacks = ["en-US"];
nativeMessagingHosts = [
pkgs.pywalfox-native
pkgs.tridactyl-native
];
profiles = {
youtube = import ./profiles/youtube.nix {inherit pkgs myConfig;};
hakase = {
search.force = true;
isDefault = true;
search.default = "ddg";
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
bitwarden
tridactyl
# pywalfox
];
bookmarks = {
force = true;
settings = [
{
name = "Toolbar Bookmarks";
toolbar = true;
bookmarks = myConfig.firefox.bookmarks;
}
];
};
settings = {
# --- Privacy & Hardening ---
"browser.contentblocking.category" = "strict";
"privacy.trackingprotection.enabled" = true;
"privacy.resistFingerprinting" = true; # Note: Spoofs timezone and caps FPS to 60
"geo.enabled" = false;
"media.peerconnection.enabled" = false; # Prevents WebRTC IP leaks
"network.dns.disablePrefetch" = true;
"network.prefetch-next" = false;
# --- NixOS / Hyprland Integration ---
"widget.use-xdg-desktop-portal.file-picker" = 1; # Use native file picker
# --- UI & Behavior ---
"accessibility.typeaheadfind" = false;
"browser.compactmode.show" = true;
"browser.tabs.closeWindowWithLastTab" = false;
"extensions.pocket.enabled" = false;
"extensions.screenshots.disabled" = true;
"browser.topsites.contile.enabled" = false;
"browser.formfill.enable" = false;
"browser.search.suggest.enabled" = false;
"browser.search.suggest.enabled.private" = false;
"browser.urlbar.suggest.searches" = false;
"browser.urlbar.showSearchSuggestionsFirst" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.feeds.snippets" = false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.system.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
# --- Homepage & Navigation ---
"browser.startup.homepage" = "https://dash.sakamoto.dev";
"browser.newtabpage.pinned" = myConfig.firefox.newtabpage;
# --- DNS over HTTPS (Quad9) ---
"network.trr.mode" = 2; # Use DoH with system fallback
"network.trr.uri" = "https://dns.quad9.net/dns-query";
};
};
};
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = false;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always";
SearchBar = "unified";
# Power User Messaging
UserMessaging = {
ExtensionRecommendations = false;
SkipOnboarding = true;
FeatureRecommendations = false;
UrlbarInterventions = false;
WhatsNew = false;
};
# ExtensionSettings = {
# "uBlock0@raymondhill.net" = {
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
# installation_mode = "force_installed";
# };
# "{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi";
# installation_mode = "force_installed";
# };
# "tridactyl.vim@cmcaine.co.uk" = {
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/tridactyl-vim/latest.xpi";
# installation_mode = "force_installed";
# };
# };
};
};
}
+120
View File
@@ -0,0 +1,120 @@
{
pkgs,
myConfig,
...
}: {
id = 1;
name = "YouTube";
search.force = true;
search.default = "ddg";
extensions.force = true;
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
bitwarden
tridactyl
];
settings = {
# --- Privacy & Hardening ---
"browser.contentblocking.category" = "strict";
"privacy.trackingprotection.enabled" = true;
"privacy.resistFingerprinting" = true; # Note: Spoofs timezone and caps FPS to 60
"geo.enabled" = false;
"media.peerconnection.enabled" = false; # Prevents WebRTC IP leaks
"network.dns.disablePrefetch" = true;
"network.prefetch-next" = false;
# --- NixOS / Hyprland Integration ---
"widget.use-xdg-desktop-portal.file-picker" = 1; # Use native file picker
# --- UI & Behavior ---
"browser.compactmode.show" = true;
"browser.tabs.closeWindowWithLastTab" = false;
"extensions.pocket.enabled" = false;
"extensions.screenshots.disabled" = true;
"browser.topsites.contile.enabled" = false;
"browser.formfill.enable" = false;
"browser.search.suggest.enabled" = false;
"browser.search.suggest.enabled.private" = false;
"browser.urlbar.suggest.searches" = false;
"browser.urlbar.showSearchSuggestionsFirst" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.feeds.snippets" = false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.system.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"extensions.autoDisableScopes" = 0; # Enable extensions by default
# --- Homepage & Navigation ---
"browser.startup.homepage" = "https://youtube.com";
"browser.newtabpage.pinned" = myConfig.firefox.newtabpage;
# --- DNS over HTTPS (Quad9) ---
"network.trr.mode" = 2; # Use DoH with system fallback
"network.trr.uri" = "https://dns.quad9.net/dns-query";
};
userChrome = ''
/* --- Floating Autohide Toolbox (Tabs Only) --- */
/* Take toolbox out of the document flow so web content is 100% height */
#navigator-toolbox {
position: fixed !important;
top: 0;
left: 0;
width: 100%;
z-index: 9999 !important;
background-color: var(--toolbar-bgcolor, #1c1b22) !important;
/* Start hidden */
transform: translateY(-100%) !important;
opacity: 0 !important;
transition: transform 0.2s ease, opacity 0.2s ease !important;
}
/* Trigger zone */
#navigator-toolbox::after {
content: "";
position: absolute;
top: 100%;
left: 0;
width: 100%;
height: 10px;
z-index: 10000 !important;
}
/* Reveal when hovering */
#navigator-toolbox:hover {
transform: translateY(0) !important;
opacity: 1 !important;
}
/* --- Hide specific bars --- */
/* Hide Navigation Bar (Address Bar) COMPLETELY */
#nav-bar {
visibility: collapse !important;
height: 0px !important;
min-height: 0px !important;
padding: 0 !important;
margin: 0 !important;
}
/* Hide Bookmarks Toolbar */
#PersonalToolbar { visibility: collapse !important; }
/* Hide Titlebar */
#titlebar { appearance: none !important; }
/* Ensure TabsToolbar looks okay on its own */
#TabsToolbar {
border: none !important;
background: transparent !important;
}
'';
}
+48
View File
@@ -0,0 +1,48 @@
{
textfox = {
enable = true;
profile = "hakase";
config = {
# background = {
# color = "#123456";
# };
# border = {
# color = "#654321";
# width = "4px";
# transition = "1.0s ease";
# radius = "3px";
# };
# displayWindowControls = true;
# displayNavButtons = true;
# displayUrlbarIcons = true;
# displaySidebarTools = false;
displayTitles = true;
# newtabLogo = " __ __ ____ \A / /____ _ __/ /_/ __/___ _ __\A / __/ _ \\| |/_/ __/ /_/ __ \\| |/_/\A / /_/ __/> </ /_/ __/ /_/ /> < \A \\__/\\___/_/|_|\\__/_/ \\____/_/|_| ";
# font = {
# family = "Fira Code";
# size = "15px";
# accent = "#654321";
# };
tabs = {
horizontal.enable = false;
# horizontal.enable = true;
# vertical.enable = true;
# vertical.margin = "1.0rem";
};
# navbar = {
# margin = "8px 8px 2px";
# padding = "4px";
# };
bookmarks = {
alignment = "left";
};
# icons = {
# toolbar.extensions.enable = true;
# context.extensions.enable = true;
# context.firefox.enable = true;
# };
# textTransform = "uppercase";
# extraConfig = "/* custom css here */";
};
};
}
+3 -4
View File
@@ -1,18 +1,17 @@
{ {
pkgs, pkgs,
terminal, myConfig,
... ...
}: { }: {
programs.zoxide.enable = true;
programs.fish = { programs.fish = {
enable = true; enable = true;
interactiveShellInit = '' interactiveShellInit = ''
set fish_greeting set fish_greeting
fish_vi_key_bindings fish_vi_key_bindings
zoxide init fish | source zoxide init fish | source
zoxide init fish --cmd cd | source
''; '';
shellAliases = terminal.shellAliases; shellAliases = myConfig.terminal.aliases;
plugins = with pkgs.fishPlugins; [ plugins = with pkgs.fishPlugins; [
]; ];
+5
View File
@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
gemini-cli
];
}
+27
View File
@@ -0,0 +1,27 @@
{
config,
pkgs,
...
}: {
home.file.".config/ghostty/screensaver".text = ''
window-padding-x = 0
window-padding-y = 0
window-padding-color = "extend-always"
'';
programs.ghostty = {
enable = true;
package =
if pkgs.stdenv.isDarwin
then pkgs.ghostty-bin
else pkgs.ghostty;
enableFishIntegration = true;
settings = {
confirm-close-surface = false;
app-notifications = false;
window-padding-x = 15;
window-padding-y = 15;
window-padding-balance = true;
};
};
}
View File
+10
View File
@@ -0,0 +1,10 @@
{myConfig, ...}: {
programs.git = {
enable = true;
settings = {
user.name = "${myConfig.git.username}";
user.email = "${myConfig.git.email}";
init.defaultBranch = "${myConfig.git.defaultBranch}";
};
};
}
+38
View File
@@ -0,0 +1,38 @@
{
myConfig,
inputs,
pkgs,
...
}: {
programs.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
withUWSM = true;
};
environment.systemPackages = [
pkgs.hyprpicker
pkgs.hyprlock
pkgs.hypridle
pkgs.hyprpaper
pkgs.hyprsunset
pkgs.hyprpolkitagent
];
xdg.terminal-exec = {
enable = true;
settings = {
default = ["${myConfig.terminal.default}"];
};
};
# systemd.user.services.hyprpolkitagent = {
# description = "Hyprland Polkit Agent";
# wantedBy = ["graphical-session.target"];
# serviceConfig = {
# ExecStart = "${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent";
# Restart = "on-failure";
# };
# };
}
+15
View File
@@ -0,0 +1,15 @@
{
imports = [
./hypr/binds.nix
./hypr/general.nix
./hypr/exec.nix
./hypr/rules.nix
./hypr/animation.nix
./hypr/misc.nix
./hypr/input.nix
./scripts.nix
];
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.systemd.enable = false; # for UWSM support...
}
+51
View File
@@ -0,0 +1,51 @@
{
wayland.windowManager.hyprland.settings = {
animations = {
enabled = true;
bezier = [
"easeOutQuint,0.23,1,0.32,1"
"easeInOutCubic,0.65,0.05,0.36,1"
"linear,0,0,1,1"
"almostLinear,0.5,0.5,0.75,1.0"
"quick,0.15,0,0.1,1"
];
animation = [
"global, 1, 10, default"
"border, 1, 5.39, easeOutQuint"
"windows, 1, 4.79, easeOutQuint"
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
"windowsOut, 1, 1.49, linear, popin 87%"
"fadeIn, 1, 1.73, almostLinear"
"fadeOut, 1, 1.46, almostLinear"
"fade, 1, 3.03, quick"
"layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 0, 0, ease"
];
};
decoration = {
rounding = 0;
shadow = {
enabled = true;
range = 2;
render_power = 3;
color = "rgba(1a1a1aee)";
};
blur = {
enabled = true;
size = 2;
passes = 2;
special = true;
brightness = 0.60;
contrast = 0.75;
};
};
};
}
+91
View File
@@ -0,0 +1,91 @@
{pkgs, ...}: {
services.swayosd.enable = true;
home.packages = [
pkgs.playerctl
];
wayland.windowManager.hyprland.settings = {
bindel = [
", XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise"
", XF86AudioLowerVolume, exec, swayosd-client --output-volume lower"
", XF86MonBrightnessUp, exec, ddcutil setvcp 10 + 10"
", XF86MonBrightnessDown, exec, ddcutil setvcp 10 - 10"
];
bindl = [
", XF86AudioMute, exec, swayosd-client --output-volume mute-toggle"
", Caps_Lock, exec, swayosd-client --caps-lock"
", XF86AudioPlay, exec, playerctl play-pause && notify-send -u low -t 1000 \"Media\" \"$(playerctl status)\""
", XF86AudioPrev, exec, playerctl previous && notify-send -u low -t 1000 \"Previous Track\" \"$(playerctl metadata title)\""
", XF86AudioNext, exec, playerctl next && notify-send -u low -t 1000 \"Next Track\" \"$(playerctl metadata title)\""
", XF86AudioMute, exec, swayosd-client --output-volume mute-toggle"
]; # FIXME: not working
bindm = [
"SUPER, mouse:272, movewindow"
"SUPER, mouse:273, resizewindow"
];
bindd =
[
# essential
"SUPER, Return, Open Terminal, exec, uwsm app -- xdg-terminal-exec"
"SUPER, Q, Kill active, killactive"
# resize
"SUPER CTRL, H, Resize Left, resizeactive, -40 0"
"SUPER CTRL, J, Resize Down, resizeactive, 0 40"
"SUPER CTRL, K, Resize Up, resizeactive, 0 -40"
"SUPER CTRL, L, Resize Right, resizeactive, 40 0"
# move focus
"SUPER, J, Move focus down, movefocus, d"
"SUPER, K, Move focus up, movefocus, u"
"SUPER, H, Move focus left, movefocus, l"
"SUPER, L, Move focus right, movefocus, r"
# move window
"SUPER SHIFT, h, Move window left, swapwindow, l"
"SUPER SHIFT, j, Move window down, swapwindow, d"
"SUPER SHIFT, k, Move window up, swapwindow, u"
"SUPER SHIFT, l, Move window right, swapwindow, r"
# fullscreen
"SUPER, F, Toggle Fullscreen, fullscreen, 0"
"SUPER SHIFT, F, Toggle Maximized Fullscreen, fullscreen, 1"
# layout
"SUPER, O, Toggle Split, layoutmsg, togglesplit"
# apps
"SUPER, W, Open Browser, exec, uwsm app -- firefox" # FIXME: must be xdg-open
"SUPER, SPACE, Open App Launcher, exec, nc -U $XDG_RUNTIME_DIR/walker/walker.sock"
"SUPER, T, Toggle Steam, togglespecialworkspace, steam"
"SUPER, M, Toggle Music, togglespecialworkspace, music"
"SUPER, Y, Toggle YouTube, togglespecialworkspace, youtube"
"SUPER, P, Toggle Preload, togglespecialworkspace, preload"
"SUPER, S, Toggle Special Workspace, togglespecialworkspace, custom"
"SUPER + Shift, S, Move to Special Workspace, movetoworkspace, special:custom"
# [Workspaces] Toggle between most recent workspaces
"SUPER, Tab, Cycle workspaces, workspace, previous"
]
++ (
# Generate binds for Super + [1-10] to switch workspaces
# and Super + Shift + [1-10] to move window to workspace
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
key = toString (
if ws == 10
then 0
else ws
);
in [
"SUPER, ${key}, Switch to workspace ${toString ws}, exec, hakase-workspace-switch-force ${toString ws}"
"SUPER SHIFT, ${key}, Move window to workspace ${toString ws}, movetoworkspace, ${toString ws}"
]
)
10)
);
};
}
+14
View File
@@ -0,0 +1,14 @@
{pkgs, ...}: {
home.packages = [
pkgs.gum
];
wayland.windowManager.hyprland.settings = {
env = [
"GUM_CONFIRM_PROMPT_FOREGROUND,6"
"GUM_CONFIRM_SELECTED_FOREGROUND,0"
"GUM_CONFIRM_SELECTED_BACKGROUND,2"
"GUM_CONFIRM_UNSELECTED_FOREGROUND,0"
"GUM_CONFIRM_UNSELECTED_BACKGROUND,8"
];
};
}
+29
View File
@@ -0,0 +1,29 @@
{pkgs, ...}: {
home.packages = with pkgs; [
psmisc
];
wayland.windowManager.hyprland.settings = {
exec = [
# "pkill -x hyprpaper; uwsm app -- hyprpaper"
"killall -SIGUSR2 .ghostty-wrappe"
];
exec-once = [
"[workspace special:preload silent] uwsm app -- firefox"
"[workspace special:preload silent] uwsm app -- firefox -P YouTube"
"[workspace special:preload silent] uwsm app -- xdg-terminal-exec"
"uwsm app -- waybar"
"uwsm app -- hyprpaper"
"uwsm app -- elephant"
"uwsm app -- swayosd-server"
"uwsm app -- pywalfox start"
"walker --gapplication-service"
"sh -c 'sleep 3; hakase-workspace-switch-force 1'" # FIXME: seems like a band-aid
"[workspace 1] uwsm app -- xdg-terminal-exec"
"[workspace special:steam silent] uwsm app -- steam"
];
};
}
+18
View File
@@ -0,0 +1,18 @@
{myConfig, ...}: {
wayland.windowManager.hyprland.settings = {
general = {
gaps_in = 5;
gaps_out = 15;
layout = "dwindle";
};
monitor = myConfig.hyprland.monitors;
dwindle = {
pseudotile = true;
preserve_split = true;
smart_split = false;
};
master = {
new_status = "master";
};
};
}
+11
View File
@@ -0,0 +1,11 @@
{
wayland.windowManager.hyprland.settings = {
input = {
repeat_rate = 50;
repeat_delay = 300;
};
cursor = {
hide_on_key_press = true;
};
};
}
+11
View File
@@ -0,0 +1,11 @@
{
wayland.windowManager.hyprland.settings = {
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
focus_on_activate = true;
anr_missed_pings = 3;
new_window_takes_over_fullscreen = 1;
};
};
}
+56
View File
@@ -0,0 +1,56 @@
{
wayland.windowManager.hyprland.settings = {
workspace = [
"special:youtube, on-created-empty:uwsm app -- firefox -P YouTube --name youtube"
"special:music, on-created-empty:hakase-music-launch"
];
windowrulev2 = [
# --- POPUP RULES (Wifi, BT, Audio) ---
"float, class:^(org\.hakase\.popup\..*)$"
"animation slide right, class:^(org\.hakase\.popup\..*)$"
"dimaround, class:^(org\.hakase\.popup\..*)$"
# --- WALLPAPER PICKER ---
"float, class:^(org\.hakase\.switch-wallpaper)$"
"float, initialTitle:^(Wallpaper Selector)$"
"center, class:^(org\.hakase\.switch-wallpaper)$"
"center, initialTitle:^(Wallpaper Selector)$"
"size 60% 60%, class:^(org\.hakase\.switch-wallpaper)$"
"size 60% 60%, initialTitle:^(Wallpaper Selector)$"
"dimaround, class:^(org\.hakase\.switch-wallpaper)$"
"dimaround, initialTitle:^(Wallpaper Selector)$"
# Prevent Firefox and Terminal from stealing focus on launch
"suppressevent activate, workspace:special:preload"
"noinitialfocus, workspace:special:preload"
# --- STEAM RULES ---
"workspace special:steam silent, class:^(steam)$"
"noinitialfocus, class:^(steam)$"
"suppressevent activate, class:^(steam)$"
# --- MUSIC RULES (Jellyfin-TUI) ---
"workspace special:music silent, title:^(jellyfin-tui)$"
"workspace special:music silent, initialTitle:^(jellyfin-tui)$"
# --- CAVA RULES ---
"workspace special:music silent, title:^(cava)$"
"workspace special:music silent, initialTitle:^(cava)$"
# --- YOUTUBE RULES ---
"workspace special:youtube, class:^(youtube)$"
# --- GAMING RULES ---
# Steam Apps, Gamescope, Lutris, Heroic, and Wine/Proton apps
"fullscreen, class:^steam_app_\d+$"
"monitor 0, class:^steam_app_\d+$"
"workspace 1, class:^steam_app_\d+$"
"fullscreen, class:^(gamescope)$"
"fullscreen, class:^(lutris)$"
"fullscreen, class:^(heroic)$"
"fullscreen, class:^wine-.*$"
"fullscreen, title:^Wine .*$"
];
};
}
+42
View File
@@ -0,0 +1,42 @@
{pkgs, ...}: let
hakase-workspace-switch-force = pkgs.writeShellScriptBin "hakase-workspace-switch-force" ''
# Define binary paths to ensure they work regardless of environment PATH
HYPRCTL="${pkgs.hyprland}/bin/hyprctl"
JQ="${pkgs.jq}/bin/jq"
# Get the special workspace name
special_workspace=$($HYPRCTL monitors -j | $JQ -r '.[] | select(.focused) | .specialWorkspace.name')
# Strip the "special:" prefix (Nix escape: ''${var#*:})
workspace_name=''${special_workspace#*:}
# Get the target workspace number from argument
chosen_workspace_num=$1
if [[ -z ''${chosen_workspace_num} ]]; then
echo "Usage: $(basename "$0") [number]"
exit 1
fi
# Check if we are actually in a special workspace
if [[ "''${special_workspace}" == *"special"* ]]; then
echo "[LOG] workspace is ''${special_workspace}"
# Toggle the special workspace OFF
$HYPRCTL dispatch togglespecialworkspace "''${workspace_name}"
# Switch to the requested normal workspace
$HYPRCTL dispatch workspace "''${chosen_workspace_num}"
else
echo "[LOG] workspace is not special"
$HYPRCTL dispatch workspace "''${chosen_workspace_num}"
exit 0
fi
exit 0
'';
in {
home.packages = [
hakase-workspace-switch-force
];
}
+35
View File
@@ -0,0 +1,35 @@
{
pkgs,
config,
lib,
myConfig,
...
}: let
wallpaperDir = "${config.home.homeDirectory}/.config/nixos/assets/Wallpapers";
defaultWallpaper = "${wallpaperDir}/${myConfig.hyprland.wallpaper}";
cacheWallpaper = "${config.home.homeDirectory}/.cache/current_wallpaper";
in {
services.hyprpaper = {
enable = true;
settings = {
preload = [cacheWallpaper];
wallpaper = [
",${cacheWallpaper}"
];
};
};
home.activation.setupWallpaper = lib.hm.dag.entryAfter ["writeBoundary"] ''
if [ ! -f "${cacheWallpaper}" ]; then
mkdir -p "$(dirname "${cacheWallpaper}")"
if [ -f "${defaultWallpaper}" ]; then
cp "${defaultWallpaper}" "${cacheWallpaper}"
else
echo "Default wallpaper not found at ${defaultWallpaper}"
touch "${cacheWallpaper}"
fi
fi
'';
systemd.user.startServices = "sd-switch";
}
+48
View File
@@ -0,0 +1,48 @@
{pkgs, ...}: {
home.packages = with pkgs; [
(writeShellScriptBin "hakase-wallpaper-switch" ''
if [[ "$1" != "run" ]]; then
if command -v ghostty &> /dev/null; then
ghostty --class="org.hakase.switch-wallpaper" --title="Wallpaper Selector" -e bash -c "hakase-wallpaper-switch run || read -p 'Hit Enter to close...'"
exit 0
elif command -v kitty &> /dev/null; then
kitty --class org.hakase.switch-wallpaper --title "Wallpaper Selector" -e bash -c "hakase-wallpaper-switch run || read -p 'Hit Enter to close...'"
exit 0
fi
fi
tmp_file=$(mktemp)
target_dir="$HOME/Pictures/Wallpapers"
if [ ! -d "$target_dir" ]; then
target_dir="$HOME"
fi
# Ensure we are in a terminal that supports yazi
${pkgs.yazi}/bin/yazi "$target_dir" --chooser-file="$tmp_file"
if [ ! -f "$tmp_file" ]; then
echo "No selection file created."
exit 1
fi
WALLPAPER=$(cat "$tmp_file")
rm -f "$tmp_file"
if [ -z "$WALLPAPER" ]; then
echo "No wallpaper selected."
exit 0
fi
# Persistence logic
CACHE_FILE="$HOME/.cache/current_wallpaper"
cp "$WALLPAPER" "$CACHE_FILE"
# Reload hyprpaper
${pkgs.hyprland}/bin/hyprctl hyprpaper unload all
${pkgs.hyprland}/bin/hyprctl hyprpaper preload "$CACHE_FILE"
${pkgs.hyprland}/bin/hyprctl hyprpaper wallpaper ",$CACHE_FILE"
exec matugen image "$CACHE_FILE"
'')
];
}
+5
View File
@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
jellyfin-tui
];
}
+5
View File
@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
jellyfin-media-player
];
}
+36
View File
@@ -0,0 +1,36 @@
[config] # FIXME: ~/.config feels unreliable. Use config.home.homeDirectory instead.
reload_on_change = true
[templates.ghostty]
input_path = "~/.config/matugen/templates/ghostty"
output_path = "~/.config/ghostty/themes/matugen"
post_hook = "killall -SIGUSR2 .ghostty-wrappe"
[templates.hyprland]
input_path = "~/.config/matugen/templates/hyprland"
output_path = "~/.config/hypr/matugen.conf"
post_hook = "hyprctl reload"
[templates.waybar]
input_path = "~/.config/matugen/templates/waybar"
output_path = "~/.config/waybar/matugen.css"
post_hook = "killall -SIGUSR2 .waybar-wrapped"
[templates.starship]
input_path = "~/.config/matugen/templates/starship"
output_path = "~/.config/starship.toml"
[templates.walker]
input_path = "~/.config/matugen/templates/walker"
output_path = "~/.config/walker/themes/nixos/style.css"
[templates.pywalfox]
input_path = '~/.config/matugen/templates/firefox'
output_path = '~/.cache/wal/colors.json'
post_hook = 'pywalfox update'
[templates.cava]
input_path = "~/.config/matugen/templates/cava"
output_path = "~/.config/cava/config"
post_hook = "pkill -USR1 cava"
+23
View File
@@ -0,0 +1,23 @@
{
pkgs,
inputs,
...
}: {
home.packages = with pkgs; [
matugen
psmisc # for killall
];
home.file.".config/matugen/config.toml" = {
source = ./config.toml;
};
home.file.".config/matugen/templates" = {
source = ./templates;
recursive = true;
};
programs.ghostty.settings.theme = "matugen";
programs.starship.enable = true;
wayland.windowManager.hyprland.settings.source = ["./matugen.conf"];
programs.walker.config.theme = "nixos";
}
+25
View File
@@ -0,0 +1,25 @@
[general]
framerate = 60
autosens = 1
bars = 0
bar_width = 3
bar_spacing = 1
sleep_timer = 5
[input]
method = pipewire
source = auto
[output]
method = ncurses
style = stereo
[color]
gradient = 1
gradient_count = 6
gradient_color_1 = '{{colors.primary.default.hex}}'
gradient_color_2 = '{{colors.primary_container.default.hex}}'
gradient_color_3 = '{{colors.secondary.default.hex}}'
gradient_color_4 = '{{colors.secondary_container.default.hex}}'
gradient_color_5 = '{{colors.tertiary.default.hex}}'
gradient_color_6 = '{{colors.tertiary_container.default.hex}}'
+22
View File
@@ -0,0 +1,22 @@
{
"wallpaper": "{{image}}",
"alpha": "100",
"colors": {
"color0": "{{colors.background.default.hex}}",
"color1": "",
"color2": "",
"color3": "",
"color4": "",
"color5": "",
"color6": "",
"color7": "",
"color8": "",
"color9": "",
"color10": "{{colors.primary.default.hex}}",
"color11": "",
"color12": "",
"color13": "{{colors.surface_bright.default.hex}}",
"color14": "",
"color15": "{{colors.on_surface.default.hex}}"
}
}
+6
View File
@@ -0,0 +1,6 @@
background = {{colors.background.default.hex}}
foreground = {{colors.on_surface.default.hex}}
cursor-color = {{colors.on_surface.default.hex}}
cursor-text = {{colors.on_surface_variant.default.hex}}
selection-background = {{colors.secondary_fixed_dim.default.hex}}
selection-foreground = {{colors.on_secondary.default.hex}}
+4
View File
@@ -0,0 +1,4 @@
<* for name, value in colors *>
$image = {{image}}
${{name}} = rgba({{value.default.hex_stripped}}ff)
<* endfor *>
+53
View File
@@ -0,0 +1,53 @@
format = '''
[╭─](color1)$username$hostname$directory$git_branch$git_state$git_status$cmd_duration$line_break[╰─](color1)$python$character'''
palette = 'colors'
[palettes.colors]
mustard = '#af8700' # example
color1 = '{{colors.primary_fixed_dim.default.hex}}'
color2 = '{{colors.on_primary.default.hex}}'
color3 = '{{colors.on_surface_variant.default.hex}}'
color4 = '{{colors.surface_container.default.hex}}'
color5 = '{{colors.on_primary.default.hex}}'
color6 = '{{colors.surface_dim.default.hex}}'
color7 = '{{colors.surface.default.hex}}'
color8 = '{{colors.primary.default.hex}}'
color9 = '{{colors.tertiary.default.hex}}'
[directory]
style = "bold color8"
[character]
success_symbol = "[](bold color9)"
error_symbol = "[](bold red)"
vicmd_symbol = "[](bold color3)"
[git_branch]
format = "[$branch]($style) "
style = "bold color3"
[git_status]
format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](color9) ($ahead_behind$stashed)]($style) "
style = "bold color9"
conflicted = ""
untracked = ""
modified = ""
staged = ""
renamed = ""
deleted = ""
stashed = "≡"
[git_state]
format = '\([$state( $progress_current/$progress_total)]($style)\) '
style = "bold color3"
[cmd_duration]
format = "[$duration]($style) "
style = "bold mustard"
[python]
format = "[$virtualenv]($style) "
style = "bold color3"
detect_extensions = []
detect_files = []
+123
View File
@@ -0,0 +1,123 @@
/* @import "../../../../../../../.config/omarchy/current/theme/walker.css"; */
/* Define Matugen Colors */
@define-color text {{colors.on_surface.default.hex}};
@define-color base {{colors.surface_container.default.hex}};
@define-color border {{colors.primary.default.hex}};
@define-color selected_text {{colors.primary.default.hex}};
@define-color background {{colors.surface.default.hex}};
* {
all: unset;
}
* {
font-family: monospace;
font-size: 18px;
color: @text;
}
scrollbar {
opacity: 0;
}
.normal-icons {
-gtk-icon-size: 16px;
}
.large-icons {
-gtk-icon-size: 32px;
}
.box-wrapper {
background: alpha(@base, 0.95);
padding: 20px;
border: 2px solid @border;
}
.preview-box {
}
.box {
}
.search-container {
background: @base;
padding: 10px;
}
.input placeholder {
opacity: 0.5;
}
.input {
}
.input:focus,
.input:active {
box-shadow: none;
outline: none;
}
.content-container {
}
.placeholder {
}
.scroll {
}
.list {
}
child,
child > * {
}
child:hover .item-box {
}
child:selected .item-box {
}
child:selected .item-box * {
color: @selected_text;
}
.item-box {
padding-left: 14px;
}
.item-text-box {
all: unset;
padding: 14px 0;
}
.item-text {
}
.item-subtext {
font-size: 0px;
min-height: 0px;
margin: 0px;
padding: 0px;
}
.item-image {
margin-right: 14px;
-gtk-icon-transform: scale(0.9);
}
.current {
font-style: italic;
}
.keybind-hints {
background: @background;
padding: 10px;
margin-top: 10px;
}
.preview {
}
+7
View File
@@ -0,0 +1,7 @@
/*
* Css Colors
* Generated with Matugen
*/
<* for name, value in colors *>
@define-color {{name}} {{value.default.hex}};
<* endfor *>
+10
View File
@@ -0,0 +1,10 @@
{
inputs,
system,
pkgs,
...
}: {
home.packages = [
inputs.nixovim.packages.${pkgs.system}.full
];
}
+38
View File
@@ -0,0 +1,38 @@
{
pkgs,
inputs,
myConfig,
lib,
...
}: {
imports = [
inputs.stylix.homeModules.stylix
];
stylix = {
autoEnable = false;
targets = {
firefox = {
enable = false;
colorTheme.enable = true;
profileNames = [
"hakase"
];
};
hyprpaper.enable = true;
gtk.enable = true;
};
enable = true;
# autoEnable = false;
image = ../../assets/Wallpapers/${myConfig.hyprland.wallpaper};
polarity = "dark";
# base16Scheme = lib.mkDefault {
# generator = "vibrant";
# };
iconTheme = {
enable = true;
package = pkgs.papirus-icon-theme; # The package to install
dark = "Papirus-Dark"; # The theme name for dark mode
light = "Papirus-Light"; # The theme name for light mode
};
};
}
+14
View File
@@ -0,0 +1,14 @@
{
pkgs,
lib,
...
}: let
#
hakase-screensaver-launch = pkgs.writeShellScriptBin "hakase-cmd-screensaver" ''
'';
in {
home.packages = with pkgs; [
hakase-screensaver-launch
];
}
+8
View File
@@ -0,0 +1,8 @@
{pkgs, ...}: {
home.packages = with pkgs; [
terminaltexteffects
];
home.file.".config/hakase/branding/screensaver.txt" = {
source = ../../assets/branding.txt;
};
}
+573
View File
@@ -0,0 +1,573 @@
{
inputs,
config,
pkgs,
...
}: {
imports = [
# ./style.nix
./layout.nix
];
programs.walker = {
enable = true;
runAsService = true;
package = inputs.walker.packages.${pkgs.system}.default;
# CSS Implementation using Stylix Colors
config = {
# General Settings
force_keyboard_focus = true;
close_when_open = true;
click_to_close = true;
single_click_activation = true;
selection_wrap = true;
global_argument_delimiter = "#";
exact_search_prefix = "'";
# theme = "default";
disable_mouse = false;
debug = false;
page_jump_items = 10;
hide_quick_activation = true;
hide_action_hints = true;
hide_action_hints_dmenu = true;
hide_return_action = false;
resume_last_query = false;
actions_as_menu = false;
# Shell positioning
shell = {
anchor_top = true;
anchor_bottom = true;
anchor_left = true;
anchor_right = true;
};
# Column config
columns.symbols = 3;
# Placeholders
placeholders.default = {
input = "Search";
list = "No Results";
};
# Keybinds
keybinds = {
close = ["Escape"];
next = ["Down"];
previous = ["Up"];
left = ["Left"];
right = ["Right"];
down = ["Down"];
up = ["Up"];
toggle_exact = ["ctrl e"];
resume_last_query = ["ctrl r"];
quick_activate = ["F1" "F2" "F3" "F4"];
page_down = ["Page_Down"];
page_up = ["Page_Up"];
show_actions = ["alt j"];
};
# Providers General
providers = {
default = ["desktopapplications" "calc" "websearch"];
empty = ["desktopapplications"];
ignore_preview = [];
max_results = 50;
argument_delimiter.runner = " ";
clipboard.time_format = "%d.%m. - %H:%M";
# Provider Prefixes
prefixes = [
{
prefix = ";";
provider = "providerlist";
}
{
prefix = ">";
provider = "runner";
}
{
prefix = "/";
provider = "files";
}
{
prefix = ".";
provider = "symbols";
}
{
prefix = "!";
provider = "todo";
}
{
prefix = "%";
provider = "bookmarks";
}
{
prefix = "=";
provider = "calc";
}
{
prefix = "@";
provider = "websearch";
}
{
prefix = ":";
provider = "clipboard";
}
{
prefix = "$";
provider = "windows";
}
];
# Actions
actions = {
fallback = [
{
action = "menus:open";
label = "open";
after = "Nothing";
}
{
action = "menus:default";
label = "run";
after = "Close";
}
{
action = "menus:parent";
label = "back";
bind = "Escape";
after = "Nothing";
}
{
action = "erase_history";
label = "clear hist";
bind = "ctrl h";
after = "AsyncReload";
}
];
dmenu = [
{
action = "select";
default = true;
bind = "Return";
}
];
providerlist = [
{
action = "activate";
default = true;
bind = "Return";
after = "ClearReload";
}
];
bluetooth = [
{
action = "find";
bind = "ctrl f";
after = "AsyncClearReload";
}
{
action = "remove";
bind = "ctrl d";
after = "AsyncReload";
}
{
action = "trust";
bind = "ctrl t";
after = "AsyncReload";
}
{
action = "untrust";
bind = "ctrl t";
after = "AsyncReload";
}
{
action = "pair";
bind = "Return";
after = "AsyncReload";
}
{
action = "connect";
default = true;
bind = "Return";
after = "AsyncReload";
}
{
action = "disconnect";
default = true;
bind = "Return";
after = "AsyncReload";
}
];
archlinuxpkgs = [
{
action = "install";
bind = "Return";
default = true;
}
{
action = "remove";
bind = "Return";
}
{
action = "show_all";
label = "show all";
bind = "ctrl i";
after = "AsyncClearReload";
}
{
action = "refresh";
label = "refresh";
bind = "ctrl r";
after = "AsyncReload";
}
{
action = "visit_url";
label = "open URL";
bind = "ctrl o";
}
{
action = "show_installed";
label = "show installed";
bind = "ctrl i";
after = "AsyncClearReload";
}
];
calc = [
{
action = "copy";
default = true;
bind = "Return";
}
{
action = "delete";
bind = "ctrl d";
after = "AsyncReload";
}
{
action = "save";
bind = "ctrl s";
after = "AsyncClearReload";
}
];
websearch = [
{
action = "search";
default = true;
bind = "Return";
}
{
action = "open_url";
label = "open url";
default = true;
bind = "Return";
}
];
desktopapplications = [
{
action = "start";
default = true;
bind = "Return";
}
{
action = "start:keep";
label = "open+next";
bind = "shift Return";
after = "KeepOpen";
}
{
action = "new_instance";
label = "new instance";
bind = "ctrl Return";
}
{
action = "new_instance:keep";
label = "new+next";
bind = "ctrl alt Return";
after = "KeepOpen";
}
{
action = "pin";
bind = "ctrl p";
after = "AsyncReload";
}
{
action = "unpin";
bind = "ctrl p";
after = "AsyncReload";
}
{
action = "pinup";
bind = "ctrl n";
after = "AsyncReload";
}
{
action = "pindown";
bind = "ctrl m";
after = "AsyncReload";
}
];
files = [
{
action = "open";
default = true;
bind = "Return";
}
{
action = "opendir";
label = "open dir";
bind = "ctrl Return";
}
{
action = "copypath";
label = "copy path";
bind = "ctrl shift c";
}
{
action = "copyfile";
label = "copy file";
bind = "ctrl c";
}
{
action = "localsend";
label = "localsend";
bind = "ctrl l";
}
{
action = "refresh_index";
label = "reload";
bind = "ctrl r";
after = "AsyncReload";
}
];
# Note: "1password" key starts with a digit, must be quoted in Nix
"1password" = [
{
action = "copy_password";
label = "copy password";
default = true;
bind = "Return";
}
{
action = "copy_username";
label = "copy username";
bind = "shift Return";
}
{
action = "copy_2fa";
label = "copy 2fa";
bind = "ctrl Return";
}
];
todo = [
{
action = "save";
default = true;
bind = "Return";
after = "AsyncClearReload";
}
{
action = "save_next";
label = "save & new";
bind = "shift Return";
after = "AsyncClearReload";
}
{
action = "delete";
bind = "ctrl d";
after = "AsyncClearReload";
}
{
action = "active";
default = true;
bind = "Return";
after = "Nothing";
}
{
action = "inactive";
default = true;
bind = "Return";
after = "Nothing";
}
{
action = "done";
bind = "ctrl f";
after = "Nothing";
}
{
action = "change_category";
bind = "ctrl y";
label = "change category";
after = "Nothing";
}
{
action = "clear";
bind = "ctrl x";
after = "AsyncClearReload";
}
{
action = "create";
bind = "ctrl a";
after = "AsyncClearReload";
}
{
action = "search";
bind = "ctrl a";
after = "AsyncClearReload";
}
];
runner = [
{
action = "run";
default = true;
bind = "Return";
}
{
action = "runterminal";
label = "run in terminal";
bind = "shift Return";
}
];
symbols = [
{
action = "copy";
label = "select";
default = true;
bind = "Return";
}
];
unicode = [
{
action = "copy";
label = "select";
default = true;
bind = "Return";
}
];
nirisessions = [
{
action = "start";
label = "start";
default = true;
bind = "Return";
}
{
action = "start_new";
label = "start blank";
bind = "ctrl Return";
}
];
clipboard = [
{
action = "copy";
default = true;
bind = "Return";
}
{
action = "remove";
bind = "ctrl d";
after = "AsyncClearReload";
}
{
action = "remove_all";
label = "clear";
bind = "ctrl shift d";
after = "AsyncClearReload";
}
{
action = "show_images_only";
label = "only images";
bind = "ctrl i";
after = "AsyncClearReload";
}
{
action = "show_text_only";
label = "only text";
bind = "ctrl i";
after = "AsyncClearReload";
}
{
action = "show_combined";
label = "show all";
bind = "ctrl i";
after = "AsyncClearReload";
}
{
action = "pause";
bind = "ctrl p";
}
{
action = "unpause";
bind = "ctrl p";
}
{
action = "edit";
bind = "ctrl o";
}
{
action = "localsend";
bind = "ctrl l";
}
];
bookmarks = [
{
action = "save";
bind = "Return";
after = "AsyncClearReload";
}
{
action = "open";
default = true;
bind = "Return";
}
{
action = "delete";
bind = "ctrl d";
after = "AsyncClearReload";
}
{
action = "change_category";
label = "Change category";
bind = "ctrl y";
after = "Nothing";
}
{
action = "change_browser";
label = "Change browser";
bind = "ctrl b";
after = "Nothing";
}
{
action = "import";
label = "Import";
bind = "ctrl i";
after = "AsyncClearReload";
}
{
action = "create";
bind = "ctrl a";
after = "AsyncClearReload";
}
{
action = "search";
bind = "ctrl a";
after = "AsyncClearReload";
}
];
};
};
};
};
home.file.".config/elephant/websearch.toml".text = ''
[[entries]]
name = "DuckDuckGo"
url = "https://duckduckgo.com/?q=%TERM%"
default = true
'';
}
+160
View File
@@ -0,0 +1,160 @@
{
home.file.".config/walker/themes/nixos/layout.xml".text = ''
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"></requires>
<object class="GtkWindow" id="Window">
<style>
<class name="window"></class>
</style>
<property name="resizable">true</property>
<property name="title">Walker</property>
<child>
<object class="GtkBox" id="BoxWrapper">
<style>
<class name="box-wrapper"></class>
</style>
<property name="width-request">644</property>
<property name="overflow">hidden</property>
<property name="orientation">horizontal</property>
<property name="valign">center</property>
<property name="halign">center</property>
<child>
<object class="GtkBox" id="Box">
<style>
<class name="box"></class>
</style>
<property name="orientation">vertical</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
<property name="spacing">10</property>
<child>
<object class="GtkBox" id="SearchContainer">
<style>
<class name="search-container"></class>
</style>
<property name="overflow">hidden</property>
<property name="orientation">horizontal</property>
<property name="halign">fill</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
<child>
<object class="GtkEntry" id="Input">
<style>
<class name="input"></class>
</style>
<property name="halign">fill</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="ContentContainer">
<style>
<class name="content-container"></class>
</style>
<property name="orientation">horizontal</property>
<property name="spacing">10</property>
<property name="vexpand">true</property>
<property name="vexpand-set">true</property>
<child>
<object class="GtkLabel" id="ElephantHint">
<style>
<class name="elephant-hint"></class>
</style>
<property name="hexpand">true</property>
<property name="height-request">100</property>
<property name="label">Waiting for elephant...</property>
</object>
</child>
<child>
<object class="GtkLabel" id="Placeholder">
<style>
<class name="placeholder"></class>
</style>
<property name="label">No Results</property>
<property name="yalign">0.0</property>
<property name="hexpand">true</property>
</object>
</child>
<child>
<object class="GtkScrolledWindow" id="Scroll">
<style>
<class name="scroll"></class>
</style>
<property name="hexpand">true</property>
<property name="can_focus">false</property>
<property name="overlay-scrolling">true</property>
<property name="max-content-width">600</property>
<property name="max-content-height">300</property>
<property name="min-content-height">0</property>
<property name="propagate-natural-height">true</property>
<property name="propagate-natural-width">true</property>
<property name="hscrollbar-policy">automatic</property>
<property name="vscrollbar-policy">automatic</property>
<child>
<object class="GtkGridView" id="List">
<style>
<class name="list"></class>
</style>
<property name="max_columns">1</property>
<property name="can_focus">false</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="Preview">
<style>
<class name="preview"></class>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="Keybinds">
<property name="hexpand">true</property>
<property name="margin-top">10</property>
<style>
<class name="keybinds"></class>
</style>
<child>
<object class="GtkBox" id="GlobalKeybinds">
<property name="spacing">10</property>
<style>
<class name="global-keybinds"></class>
</style>
</object>
</child>
<child>
<object class="GtkBox" id="ItemKeybinds">
<property name="hexpand">true</property>
<property name="halign">end</property>
<property name="spacing">10</property>
<style>
<class name="item-keybinds"></class>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkLabel" id="Error">
<style>
<class name="error"></class>
</style>
<property name="xalign">0</property>
<property name="visible">false</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>
'';
}
+210
View File
@@ -0,0 +1,210 @@
{config, ...}: {
# themes."nixos".style = ''
# @define-color window_bg_color #1f1f28;
# @define-color accent_bg_color #54546d;
# @define-color theme_fg_color #f2ecbc;
# @define-color error_bg_color #C34043;
# @define-color error_fg_color #DCD7BA;
#
# * {
# all: unset;
# }
#
# popover {
# background: lighter(@window_bg_color);
# border: 1px solid darker(@accent_bg_color);
# border-radius: 18px;
# padding: 10px;
# }
#
# .normal-icons {
# -gtk-icon-size: 16px;
# }
#
# .large-icons {
# -gtk-icon-size: 32px;
# }
#
# scrollbar {
# opacity: 0;
# }
#
# .box-wrapper {
# box-shadow:
# 0 19px 38px rgba(0, 0, 0, 0.3),
# 0 15px 12px rgba(0, 0, 0, 0.22);
# background: @window_bg_color;
# padding: 20px;
# border-radius: 20px;
# border: 1px solid darker(@accent_bg_color);
# }
#
# .preview-box,
# .elephant-hint,
# .placeholder {
# color: @theme_fg_color;
# }
#
# .box {
# }
#
# .search-container {
# border-radius: 10px;
# }
#
# .input placeholder {
# opacity: 0.5;
# }
#
# .input selection {
# background: lighter(lighter(lighter(@window_bg_color)));
# }
#
# .input {
# caret-color: @theme_fg_color;
# background: lighter(@window_bg_color);
# padding: 10px;
# color: @theme_fg_color;
# }
#
# .input:focus,
# .input:active {
# }
#
# .content-container {
# }
#
# .placeholder {
# }
#
# .scroll {
# }
#
# .list {
# color: @theme_fg_color;
# }
#
# child {
# }
#
# .item-box {
# border-radius: 10px;
# padding: 10px;
# }
#
# .item-quick-activation {
# background: alpha(@accent_bg_color, 0.25);
# border-radius: 5px;
# padding: 10px;
# }
#
# /* child:hover .item-box, */
# child:selected .item-box {
# background: alpha(@accent_bg_color, 0.25);
# }
#
# .item-text-box {
# }
#
# .item-subtext {
# font-size: 12px;
# opacity: 0.5;
# }
#
# .providerlist .item-subtext {
# font-size: unset;
# opacity: 0.75;
# }
#
# .item-image-text {
# font-size: 28px;
# }
#
# .preview {
# border: 1px solid alpha(@accent_bg_color, 0.25);
# /* padding: 10px; */
# border-radius: 10px;
# color: @theme_fg_color;
# }
#
# .calc .item-text {
# font-size: 24px;
# }
#
# .calc .item-subtext {
# }
#
# .symbols .item-image {
# font-size: 24px;
# }
#
# .todo.done .item-text-box {
# opacity: 0.25;
# }
#
# .todo.urgent {
# font-size: 24px;
# }
#
# .todo.active {
# font-weight: bold;
# }
#
# .bluetooth.disconnected {
# opacity: 0.5;
# }
#
# .preview .large-icons {
# -gtk-icon-size: 64px;
# }
#
# .keybinds {
# padding-top: 10px;
# border-top: 1px solid lighter(@window_bg_color);
# font-size: 12px;
# color: @theme_fg_color;
# }
#
# .global-keybinds {
# }
#
# .item-keybinds {
# }
#
# .keybind {
# }
#
# .keybind-button {
# opacity: 0.5;
# }
#
# .keybind-button:hover {
# opacity: 0.75;
# cursor: pointer;
# }
#
# .keybind-bind {
# text-transform: lowercase;
# opacity: 0.35;
# }
#
# .keybind-label {
# padding: 2px 4px;
# border-radius: 4px;
# border: 1px solid @theme_fg_color;
# }
#
# .error {
# padding: 10px;
# background: @error_bg_color;
# color: @error_fg_color;
# }
#
# :not(.calc).current {
# font-style: italic;
# }
#
# .preview-content.archlinuxpkgs {
# font-family: monospace;
# } '';
}
+169
View File
@@ -0,0 +1,169 @@
{pkgs, ...}: let
# 1. The Brain: Logic to find a window or launch a new one
hakase-launch-or-focus = pkgs.writeShellScriptBin "hakase-launch-or-focus" ''
if (($# == 0)); then
echo "Usage: hakase-launch-or-focus [window-pattern] [launch-command]"
exit 1
fi
WINDOW_PATTERN="$1"
# Escaped Nix interpolation for shell default value logic
LAUNCH_COMMAND="''${2:-"uwsm-app -- $WINDOW_PATTERN"}"
# Locate window address via hyprctl and jq
WINDOW_ADDRESS=$(${pkgs.hyprland}/bin/hyprctl clients -j | ${pkgs.jq}/bin/jq -r --arg p "$WINDOW_PATTERN" \
'.[] | select((.class | test("\\b" + $p + "\\b"; "i")) or (.title | test("\\b" + $p + "\\b"; "i"))) | .address' | head -n1)
if [[ -n $WINDOW_ADDRESS ]]; then
# If found, focus the existing window
${pkgs.hyprland}/bin/hyprctl dispatch focuswindow "address:$WINDOW_ADDRESS"
else
# If not found, execute the launch command
eval exec setsid $LAUNCH_COMMAND
fi
'';
hakase-launch-tui = pkgs.writeShellScriptBin "hakase-launch-tui" ''
APP_NAME=$(basename "$1")
# Using org.hakase prefix so the focus script can find it via class name
exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.hakase."$APP_NAME" -e "$@"
'';
hakase-focus-wrapper = pkgs.writeShellScriptBin "hakase-focus-wrapper" ''
APP_NAME=$(basename "$1")
WINDOW_PATTERN="org.hakase.$APP_NAME"
LAUNCH_CMD="hakase-launch-tui $*"
exec hakase-launch-or-focus "$WINDOW_PATTERN" "$LAUNCH_CMD"
'';
hakase-launch-wifi = pkgs.writeShellScriptBin "hakase-launch-wifi" ''
# Unblock the WiFi radio (requires appropriate user groups/permissions)
# ${pkgs.util-linux}/bin/rfkill unblock wifi
# Use the focus wrapper to launch or switch to Impala
exec hakase-focus-wrapper impala
'';
hakase-launch-bluetooth =
pkgs.writeShellScriptBin "hakase-launch-bluetooth"
''
# ${pkgs.util-linux}/bin/rfkill unblock wifi
exec hakase-focus-wrapper bluetui
'';
hakase-launch-popup = pkgs.writeShellScriptBin "hakase-launch-popup" ''
if (($# < 3)); then
echo "Usage: hakase-launch-popup [width] [height] [command...]"
exit 1
fi
# --- ARGS & CONFIG ---
WIN_WIDTH="$1"
WIN_HEIGHT="$2"
shift 2
MARGIN=10
BAR_HEIGHT=40
# ---------------------
CMD_NAME=$(basename "$1")
TARGET_CLASS="org.hakase.popup.$CMD_NAME"
# 1. SINGLETON LOGIC: Check for ANY existing hakase popup
# We look for any client with a class starting with "org.hakase.popup."
EXISTING_JSON=$(${pkgs.hyprland}/bin/hyprctl clients -j | ${pkgs.jq}/bin/jq -r '.[] | select(.class | startswith("org.hakase.popup."))')
if [[ -n "$EXISTING_JSON" ]]; then
OLD_ADDR=$(echo "$EXISTING_JSON" | ${pkgs.jq}/bin/jq -r '.address')
OLD_CLASS=$(echo "$EXISTING_JSON" | ${pkgs.jq}/bin/jq -r '.class')
# Close the existing popup
${pkgs.hyprland}/bin/hyprctl dispatch closewindow "address:$OLD_ADDR"
# If the existing popup was the SAME one we are trying to launch, we are done (Toggle Off behavior)
if [[ "$OLD_CLASS" == "$TARGET_CLASS" ]]; then
exit 0
fi
# If it was a different popup, wait a tiny bit for Hyprland to process the close
# This prevents the new window from "merging" with the closing animation of the old one
sleep 0.15
fi
# 2. Calculate Geometry (Standard logic)
MONITOR_INFO=$(${pkgs.hyprland}/bin/hyprctl monitors -j | ${pkgs.jq}/bin/jq '.[] | select(.focused == true)')
MON_X=$(echo "$MONITOR_INFO" | ${pkgs.jq}/bin/jq '.x')
MON_Y=$(echo "$MONITOR_INFO" | ${pkgs.jq}/bin/jq '.y')
MON_WIDTH=$(echo "$MONITOR_INFO" | ${pkgs.jq}/bin/jq '.width')
TARGET_X=$((MON_X + MON_WIDTH - WIN_WIDTH - MARGIN))
TARGET_Y=$((MON_Y + BAR_HEIGHT + MARGIN))
# 3. Launch with Rules
RULE="[float;pin;size $WIN_WIDTH $WIN_HEIGHT;move $TARGET_X $TARGET_Y]"
${pkgs.hyprland}/bin/hyprctl dispatch exec "$RULE xdg-terminal-exec --app-id=$TARGET_CLASS -e $@"
# 4. Background Listener (Close on Blur)
(
TIMEOUT=0
WINDOW_ADDR=""
while [[ -z "$WINDOW_ADDR" && $TIMEOUT -lt 20 ]]; do
sleep 0.1
WINDOW_ADDR=$(${pkgs.hyprland}/bin/hyprctl clients -j | ${pkgs.jq}/bin/jq -r --arg c "$TARGET_CLASS" '.[] | select(.class == $c) | .address')
((TIMEOUT++))
done
if [[ -n "$WINDOW_ADDR" ]]; then
${pkgs.socat}/bin/socat -U - UNIX-CONNECT:"$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" | while read -r line; do
if [[ "$line" == "activewindow>>"* ]]; then
NEW_FOCUS="0x$(echo "$line" | cut -d '>' -f3 | cut -d ',' -f1)"
# If focus is lost to another window, close this popup
if [[ "$WINDOW_ADDR" != "$NEW_FOCUS" ]]; then
${pkgs.hyprland}/bin/hyprctl dispatch closewindow "address:$WINDOW_ADDR"
break
fi
fi
done
fi
) &
exit 0
'';
# 1. WiFi (Impala) - Requires a larger view
hakase-popup-wifi = pkgs.writeShellScriptBin "hakase-popup-wifi" ''
exec hakase-launch-popup 800 500 impala
'';
# 2. Bluetooth (Bluetui) - Fits your specific test size
hakase-popup-bluetooth = pkgs.writeShellScriptBin "hakase-popup-bluetooth" ''
exec hakase-launch-popup 600 500 bluetui
'';
# 3. Volume (Wiremix) - Can be smaller
hakase-popup-volume = pkgs.writeShellScriptBin "hakase-popup-volume" ''
exec hakase-launch-popup 800 300 wiremix
'';
in {
home.packages = [
pkgs.jq
pkgs.socat # Required for the socket listener
pkgs.util-linux
pkgs.bluetui
pkgs.impala
pkgs.wiremix
pkgs.pamixer
hakase-launch-popup
hakase-popup-wifi
hakase-popup-bluetooth
hakase-popup-volume
hakase-launch-or-focus
hakase-launch-tui
hakase-focus-wrapper
hakase-launch-wifi
hakase-launch-bluetooth
];
}
+187
View File
@@ -0,0 +1,187 @@
{
config,
pkgs,
myConfig,
...
}: {
imports = [
./style.nix
];
programs.waybar = {
enable = true;
settings = {
mainBar = {
reload_style_on_change = true;
layer = "top";
position = "top";
spacing = 0;
height = 26;
modules-left = ["custom/omarchy" "hyprland/workspaces" "hyprland/workspaces#special"];
modules-center = ["clock" "custom/update" "custom/screenrecording-indicator"];
modules-right = [
"group/tray-expander"
"bluetooth"
"network"
"pulseaudio"
"cpu"
"battery"
];
"hyprland/workspaces" = {
on-click = "activate";
show-special = false;
all-outputs = true;
format = "{icon}";
format-icons = {
"default" = "";
"1" = "1";
"2" = "2";
"3" = "3";
"4" = "4";
"5" = "5";
"6" = "6";
"7" = "7";
"8" = "8";
"9" = "9";
"10" = "0";
"active" = "󱓻";
};
persistent-workspaces = {
"1" = [];
"2" = [];
"3" = [];
"4" = [];
"5" = [];
};
};
"hyprland/workspaces#special" = {
on-click = "activate";
show-special = true;
special-visible-only = true;
all-outputs = true;
ignore-workspaces = ["1" "2" "3" "4" "5" "6" "7" "8" "9" "10"];
format = "{icon}";
format-icons = {
"special:youtube" = "󰗃";
"special:music" = "󰎆";
"special:steam" = "󰓓";
};
};
"custom/omarchy" = {
format = "";
on-click = "omarchy-menu";
on-click-right = "xdg-terminal-exec";
tooltip-format = "Omarchy Menu\n\nSuper + Alt + Space";
};
# "custom/update" = {
# format = "";
# exec = "omarchy-update-available";
# on-click = "omarchy-launch-floating-terminal-with-presentation omarchy-update";
# tooltip-format = "Omarchy update available";
# signal = 7;
# interval = 21600;
# };
"cpu" = {
interval = 5;
format = "󰍛";
on-click = "hakase-focus-wrapper btop";
on-click-right = "xdg-terminal-exec";
};
"clock" = {
format = "{:%H:%M %a %b %d}";
format-alt = "{:L%d %B W%V %Y}";
tooltip = false;
on-click-right = "omarchy-launch-floating-terminal-with-presentation omarchy-tz-select";
};
"network" = {
format-icons = ["󰤯" "󰤟" "󰤢" "󰤥" "󰤨"];
format = "{icon}";
format-wifi = "{icon}";
format-ethernet = "󰀂";
format-disconnected = "󰤮";
tooltip-format-wifi = "{essid} ({frequency} GHz)\n{bandwidthDownBytes} {bandwidthUpBytes}";
tooltip-format-ethernet = "{bandwidthDownBytes} {bandwidthUpBytes}";
tooltip-format-disconnected = "Disconnected";
interval = 3;
spacing = 1;
on-click = "hakase-popup-wifi";
};
"battery" = {
format = "{capacity}% {icon}";
format-discharging = "{icon}";
format-charging = "{icon}";
format-plugged = "";
format-icons = {
charging = ["󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"];
default = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
};
format-full = "󰂅";
tooltip-format-discharging = "{power:>1.0f}W {capacity}%";
tooltip-format-charging = "{power:>1.0f}W {capacity}%";
interval = 5;
on-click = "omarchy-menu power";
states = {
warning = 20;
critical = 10;
};
};
"bluetooth" = {
format = "";
format-disabled = "󰂲";
format-connected = "󰂱";
format-no-controller = "";
tooltip-format = "Devices connected: {num_connections}";
on-click = "hakase-popup-bluetooth";
};
"pulseaudio" = {
format = "{icon}";
on-click = "hakase-popup-volume";
on-click-right = "pamixer -t";
tooltip-format = "Playing at {volume}%";
scroll-step = 5;
format-muted = "";
format-icons = {
default = ["" "" ""];
};
};
"group/tray-expander" = {
orientation = "inherit";
drawer = {
transition-duration = 600;
children-class = "tray-group-item";
};
modules = ["custom/expand-icon" "tray"];
};
"custom/expand-icon" = {
format = "";
tooltip = false;
};
"custom/screenrecording-indicator" = {
on-click = "omarchy-cmd-screenrecord";
# Note: $OMARCHY_PATH must be defined in your environment
exec = "$OMARCHY_PATH/default/waybar/indicators/screen-recording.sh";
signal = 8;
return-type = "json";
};
"tray" = {
icon-size = 12;
spacing = 17;
};
};
};
};
}
+88
View File
@@ -0,0 +1,88 @@
{config, ...}: {
programs.waybar = {
style = ''
@import "matugen.css";
* {
background-color: @background;
color: @on_surface;
border: none;
border-radius: 0;
min-height: 0;
font-family: 'JetBrainsMono Nerd Font';
font-size: 12px;
}
.modules-left {
margin-left: 8px;
}
.modules-right {
margin-right: 8px;
}
#workspaces button {
all: initial;
padding: 0 6px;
margin: 0 1.5px;
min-width: 9px;
}
#workspaces button.empty {
opacity: 0.5;
}
#cpu,
#battery,
#pulseaudio,
#custom-omarchy,
#custom-screenrecording-indicator,
#custom-update {
min-width: 12px;
margin: 0 7.5px;
}
#tray {
margin-right: 16px;
}
#bluetooth {
margin-right: 17px;
}
#network {
margin-right: 13px;
}
#custom-expand-icon {
margin-right: 18px;
}
tooltip {
padding: 2px;
}
#custom-update {
font-size: 10px;
}
#clock {
margin-left: 8.75px;
}
.hidden {
opacity: 0;
}
#custom-screenrecording-indicator {
min-width: 12px;
margin-left: 8.75px;
font-size: 10px;
}
#custom-screenrecording-indicator.active {
color: @on_secondary;
}
'';
};
}
+14
View File
@@ -0,0 +1,14 @@
{pkgs, ...}: {
programs.yazi = {
enable = true;
enableFishIntegration = true;
settings = {
manager = {
show_hidden = true;
sort_by = "natural";
sort_dir_first = true;
linemode = "size";
};
};
};
}
+9
View File
@@ -0,0 +1,9 @@
{
programs.zoxide = {
enable = true;
enableFishIntegration = true;
options = [
"--cmd cd"
];
};
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

@@ -0,0 +1 @@
/nix/store/yckzy9k5i7pvmlk6xjkdj4wwbfms1zpl-home-manager-files/Pictures/Wallpapers/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg
+1
View File
@@ -0,0 +1 @@
/nix/store/yckzy9k5i7pvmlk6xjkdj4wwbfms1zpl-home-manager-files/Pictures/Wallpapers/1-everforest.jpg
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 KiB

+1
View File
@@ -0,0 +1 @@
/nix/store/yckzy9k5i7pvmlk6xjkdj4wwbfms1zpl-home-manager-files/Pictures/Wallpapers/gruvbox-1.jpg
+1
View File
@@ -0,0 +1 @@
/nix/store/yckzy9k5i7pvmlk6xjkdj4wwbfms1zpl-home-manager-files/Pictures/Wallpapers/kanagawa-1.png
Binary file not shown.

After

Width:  |  Height:  |  Size: 607 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

+1
View File
@@ -0,0 +1 @@
/nix/store/yckzy9k5i7pvmlk6xjkdj4wwbfms1zpl-home-manager-files/Pictures/Wallpapers/nord-1.png
+10
View File
@@ -0,0 +1,10 @@
▄▄▄
▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███
███ ███ ███ ███ ███ ▄███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄███
███ ███ ███ ███ ███ ▀███▀▀▀███ ▀███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███
███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
▀█████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ███████▀ ███ █▀ ▀█████▀
███ █▀
Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 MiB

+55 -75
View File
@@ -1,81 +1,61 @@
{ {
hostname = "hakase"; myConfig = {
username = "kenji"; nixos = {
timezone = "America/Chicago"; username = "kenji";
hostname = "hakase";
timezone = "America/Chicago";
shell = "fish"; # FIXME: unassigned variable
};
git = {
username = "kenji";
email = "kenji@hakase";
defaultBranch = "master";
};
ssh = {
# FIXME: anonymize
extraConfig = ''
Host macair
User biscuit
HostName 192.168.68.81
vpn = { Host gitea.sakamoto.dev
vpnEnable = false; User kenji
vpnSecretFile = "/home/kenji/Wireguard/secret"; ProxyCommand cloudflared access ssh --hostname %h
}; HostName gitea.sakamoto.dev
gitProfile = {
user = "biscuit";
email = "biscuit@sakamoto.dev";
defaultBranch = "master";
};
terminal = {
termFont = "JetBrainsMono Nerd Font"; # e.g., JetBrainsMono Nerd Font
termSize = "18";
termShell = "fish";
shellAliases = {
ls = "ls --color=auto";
update = ''
sh -c '
if [ "$(uname)" = "Darwin" ]; then
sudo darwin-rebuild switch --flake ~/.config/nixos#macos
else
sudo nixos-rebuild switch --flake ~/.config/nixos#desktop --impure && home-manager switch --flake ~/.config/nixos#desktop --impure
fi
'
''; '';
agu = "pkill gjs & ags run ~/.config/nixos/pkgs/ags/biscuit/app.ts & disown (jobs -p) &"; };
terminal = {
default = "ghostty";
aliases = {
update = "sudo nixos-rebuild switch --flake ~/.config/nixos/#hakase";
};
};
hyprland = {
monitors = ["HDMI-A-1, 1920x1080@120, auto, 1"];
# wallpaper = "nixos_rainbow.png";
wallpaper = "ai_pixel_purple.jpg"; # FIXME: redundant
};
firefox = {
bookmarks = [
{
name = "Home Manager";
url = "https://mynixos.com/home-manager/options/programs";
}
{
name = "YouTube";
url = "https://youtube.com";
}
{
name = "Nur";
url = "https://nur.nix-community.org/repos";
}
];
newtabpage = [
{
title = "Dashboard";
url = "https://dash.sakamoto.dev";
}
];
}; };
}; };
allowUnfree = true; # allows installation of commercial apps.
touchpadSupport = false;
logitech-hardware = {
enable = true;
};
# Custom Applications
linux-apps = {
gamingDesktop = true; # adds steam
my-apps = pkgs:
with pkgs; [
jellyfin-media-player
];
};
hyprconf = {
monitor = [
"DP-1,highres@165,0x1080,auto"
"HDMI-A-4,highres@highrr,0x0,auto"
];
};
sshExtraConfig = ''
Host macair
User biscuit
HostName 192.168.68.81
'';
# BUILD (optional), you can remove these blocks.
builder = {
trustedUsers = [
"@groups"
"biscuit"
];
buildMachines = [
{
hostName = "192.168.68.81";
sshUser = "biscuit";
sshKey = "/home/biscuit/.ssh/id_rsa.pub";
system = "x86_64-linux";
supportedFeatures = ["big-parallel" "kvm" "nixos-test"];
}
];
};
} }
Generated
+774 -497
View File
File diff suppressed because it is too large Load Diff
+54 -69
View File
@@ -1,95 +1,80 @@
{ {
description = "A very basic flake"; description = "Hakase Configuration";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager"; elephant = {
home-manager.inputs.nixpkgs.follows = "nixpkgs"; # `follows` ensure it follows nixpkgs versiona. Avoids breaking updates. url = "github:abenz1267/elephant";
darwin.url = "github:lnl7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs";
darwin.inputs.nixpkgs.follows = "nixpkgs"; };
chaotic = {
url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
inputs.nixpkgs.follows = "nixpkgs";
};
textfox = {
url = "github:adriankarlen/textfox";
inputs.nixpkgs.follows = "nixpkgs";
};
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
ags.url = "github:aylur/ags"; home-manager = {
ags.inputs.nixpkgs.follows = "nixpkgs"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland = {
url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
inputs.nixpkgs.follows = "nixpkgs";
};
nixovim = {
# FIXME: treesitter does not install automatically (disabled due to read-only problems)
url = "git+https://git.sakamoto.dev/kenji/nixovim.git";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland.url = "github:hyprwm/Hyprland"; walker = {
hyprland.inputs.nixpkgs.follows = "nixpkgs"; url = "github:abenz1267/walker";
inputs.nixpkgs.follows = "nixpkgs";
unlisted-fonts.url = "git+https://git.sakamoto.dev/kenji/nix-fonts.git"; inputs.elephant.follows = "elephant";
unlisted-fonts.inputs.nixpkgs.follows = "nixpkgs"; };
nixvim.url = "github:nix-community/nixvim";
nixvim.inputs.nixpkgs.follows = "nixpkgs";
nix-neovim.url = "git+https://git.sakamoto.dev/kenji/nix-neovim.git";
nix-neovim.inputs.nixpkgs.follows = "nixpkgs";
# kitty-catppuccin.url = "git+https://git.sakamoto.dev/kenji/nix-kitty-catppuccin.git";
# kitty-catppuccin.inputs.nixpkgs.follows = "nixpkgs";
matugen.url = "github:/InioX/Matugen";
matugen.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { outputs = {
self, self,
nixpkgs, nixpkgs,
home-manager, home-manager,
darwin, stylix,
ags, nixovim,
hyprland, chaotic,
unlisted-fonts, sops-nix,
nix-neovim, textfox,
... ...
} @ inputs: let } @ inputs: let
config = import ./config.nix; config = import ./config.nix;
lib = nixpkgs.lib;
system = "x86_64-linux"; system = "x86_64-linux";
# pkgs = nixpkgs.legacyPackages.${system}; # alternative, without overlays. Unused.
args = args =
{ {
inherit inputs system; inherit inputs system;
} }
// config; // config;
in { in {
# linux only
nixosConfigurations = { nixosConfigurations = {
desktop = lib.nixosSystem { hakase = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = args; specialArgs = args;
modules = [ modules = [
./nixos/desktop/configuration.nix home-manager.nixosModules.home-manager
]; sops-nix.nixosModules.sops
}; chaotic.nixosModules.default
}; ./hosts/hakase/configuration.nix
homeConfigurations = {
desktop = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
inherit system;
overlays = [
# (final: prev: {
# ags_1 = prev.ags_1.overrideAttrs (old: {
# buildInputs = old.buildInputs ++ [pkgs.libdbusmenu-gtk3];
# });
# })
];
};
extraSpecialArgs = args;
modules = [./home/desktop/home.nix];
};
};
# exclusive to macos M series
darwinConfigurations = {
macos = darwin.lib.darwinSystem {
system = "aarch64-darwin";
specialArgs = args;
modules = [
./nixos/macos/darwin.nix
home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = args;
}
]; ];
}; };
}; };
-20
View File
@@ -1,20 +0,0 @@
{username, ...}: {
imports = [
../../modules/editor.nix
../../modules/desktop/display-manager.nix
../../modules/desktop/misc.nix
../../modules/desktop/app.nix
];
programs.home-manager.enable = true;
home = {
username = "${username}";
homeDirectory = "/home/${username}";
packages = [];
sessionVariables = {};
};
systemd.user.startServices = "sd-switch";
home.stateVersion = "23.05";
}
+24
View File
@@ -0,0 +1,24 @@
{
pkgs,
inputs,
config,
...
}: {
imports = [
../modules/home/terminal.nix
../modules/home/apps.nix
../modules/home/apps-optional.nix
../modules/home/hyprland.nix
../modules/home/waybar.nix
../modules/home/theme.nix
../modules/home/gaming.nix
../modules/home/music.nix
inputs.walker.homeManagerModules.default
inputs.sops-nix.homeManagerModules.sops
];
home.sessionVariables = {
};
home.stateVersion = "25.05";
}
-15
View File
@@ -1,15 +0,0 @@
{
config,
pkgs,
inputs,
...
}: {
imports = [
../../modules/editor.nix
];
programs.home-manager.enable = true;
home.packages = [];
home.stateVersion = "23.05";
}
+13
View File
@@ -0,0 +1,13 @@
{
pkgs,
myConfig,
...
}: {
imports = [
./hardware-configuration.nix
../../modules/system/default.nix
../../modules/system/hyprland.nix
../../modules/system/scripts.nix
../../modules/system/gaming.nix
];
}
+33
View File
@@ -0,0 +1,33 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/mapper/luks-f8bd85aa-b08e-472a-b7f6-5e190b9b9714";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-f8bd85aa-b08e-472a-b7f6-5e190b9b9714".device = "/dev/disk/by-uuid/f8bd85aa-b08e-472a-b7f6-5e190b9b9714";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/72BA-AF9B";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
-13
View File
@@ -1,13 +0,0 @@
{
linux-apps,
lib,
...
}: {
imports =
[
]
++ lib.optionals (linux-apps.gamingDesktop == true) [
../pkgs/steam/default.nix
../pkgs/heroic/default.nix
];
}
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: let
info = import ../../config.nix;
in {
home.packages = info.linux-apps.my-apps pkgs;
}
-11
View File
@@ -1,11 +0,0 @@
{...}: {
imports = [
../../pkgs/hyprland/default.nix
../../pkgs/ags/default.nix
../../pkgs/swww/default.nix
../../pkgs/waybar/default.nix
../../pkgs/rofi/default.nix
../../pkgs/hypridle/default.nix
../../pkgs/hyprlock/default.nix
];
}
-6
View File
@@ -1,6 +0,0 @@
{...}: {
imports = [
../../pkgs/btop/default.nix
../../pkgs/matugen/default.nix
];
}
-11
View File
@@ -1,11 +0,0 @@
{...}: {
imports = [
../system/desktop/wayland.nix
../system/desktop/sound.nix
../system/desktop/misc.nix
../system/desktop/browser.nix
../system/desktop/font.nix
../system/desktop/theme.nix
../system/desktop/cursor.nix
];
}
-11
View File
@@ -1,11 +0,0 @@
{...}: {
imports = [
../pkgs/fastfetch/default.nix
../pkgs/git/default.nix
../pkgs/kitty/default.nix
../pkgs/neovim/default.nix
../pkgs/fish/default.nix
../pkgs/starship/default.nix
../pkgs/zsh/default.nix
];
}
+6
View File
@@ -0,0 +1,6 @@
{
imports = [
../../apps/btop/home.nix
../../apps/jellyfin/home.nix
];
}
+8
View File
@@ -0,0 +1,8 @@
{
imports = [
../../apps/yazi/home.nix
../../apps/gemini/home.nix
../../apps/firefox/home.nix
# ../../apps/starship/home.nix
];
}
+19
View File
@@ -0,0 +1,19 @@
{pkgs, ...}: {
home.packages = with pkgs; [
protonup-qt
protontricks
mangohud
];
programs.mangohud = {
enable = true;
settings = {
full = true;
no_display = true; # Don't show by default (toggle with Shift+F12)
cpu_temp = true;
gpu_temp = true;
ram = true;
vram = true;
};
};
}
+11
View File
@@ -0,0 +1,11 @@
{
imports = [
../../apps/tte/hakase-screensaver.nix
../../apps/hyprland/home.nix
../../apps/walker/home.nix
# ../../apps/fsel/home.nix
../../apps/hyprpaper/home.nix
../../apps/hyprpaper/switch-wallpaper.nix
../../apps/tte/home.nix
];
}
+33
View File
@@ -0,0 +1,33 @@
{pkgs, ...}: let
launch-music = pkgs.writeShellScriptBin "hakase-music-launch" ''
echo "--- Launching Music Apps ---"
echo "Launching jellyfin-tui..."
uwsm app -- /usr/bin/env ghostty --class=jellyfin-tui --title=jellyfin-tui -e jellyfin-tui &
PID_JELLY=$!
echo "Jellyfin launched with PID $PID_JELLY"
echo "Waiting for window..."
sleep 0.1
echo "Focusing jellyfin-tui..."
hyprctl dispatch focuswindow title:jellyfin-tui
echo "Preselecting down..."
hyprctl dispatch layoutmsg preselect d
echo "Launching cava..."
uwsm app -- /usr/bin/env ghostty --class=cava --title=cava -e cava &
PID_CAVA=$!
echo "Cava launched with PID $PID_CAVA"
echo "Launch script completed."
'';
in {
imports = [
../../apps/jellyfin-tui/home.nix
../../apps/cava/home.nix
];
home.packages = [
launch-music
];
}
+9
View File
@@ -0,0 +1,9 @@
{
imports = [
../../apps/neovim/neovim.nix
../../apps/git/home.nix
../../apps/zoxide/home.nix
../../apps/fish/home.nix
../../apps/ghostty/home.nix
];
}
+6
View File
@@ -0,0 +1,6 @@
{
imports = [
../../apps/stylix/home.nix
../../apps/matugen/home.nix
];
}
+6
View File
@@ -0,0 +1,6 @@
{
imports = [
../../apps/waybar/home.nix
../../apps/waybar/hakase-popup.nix
];
}
-14
View File
@@ -1,14 +0,0 @@
{
vpn,
lib,
...
}: {
imports =
[
../system/default.nix
../system/users.nix
]
++ lib.optionals (vpn.vpnEnable == true) [
../system/vpn.nix
];
}
+25
View File
@@ -0,0 +1,25 @@
{pkgs, ...}: {
imports = [
../../system/time.nix
../../system/nix.nix
../../system/backlight.nix
../../system/boot.nix
../../system/amd.nix
../../system/hardware.nix
../../system/home-manager.nix
../../system/services.nix
../../system/user.nix
../../system/version.nix
../../system/fonts.nix
../../system/programs.nix
../../system/security.nix
../../system/variables.nix
../../system/kernel.nix
];
environment.systemPackages = with pkgs; [
# FIXME: must be on their own app
git
cloudflared
cachix
];
}
+5
View File
@@ -0,0 +1,5 @@
{
imports = [
../../system/steam.nix
];
}
+5
View File
@@ -0,0 +1,5 @@
{
imports = [
../../apps/hyprland/default.nix
];
}
+4
View File
@@ -0,0 +1,4 @@
{
imports = [
];
}
-35
View File
@@ -1,35 +0,0 @@
{
pkgs,
allowUnfree,
builder,
sshExtraConfig,
...
}: {
imports = [
# Include the results of the hardware scan.
/etc/nixos/hardware-configuration.nix
../../modules/system.nix
../../modules/display-manager.nix
../../modules/app.nix
];
environment.systemPackages = with pkgs; [
vim
wget
];
nixpkgs.config.allowUnfree = allowUnfree;
nix.settings = {
trusted-users = builder.trustedUsers;
experimental-features = ["nix-command" "flakes"];
};
programs.ssh.extraConfig = sshExtraConfig;
nix.distributedBuilds = true;
nix.settings.builders-use-substitutes = true;
# nix.buildMachines = builder.buildMachines;
system.stateVersion = "25.05";
}
-48
View File
@@ -1,48 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/3f2c4a5a-3124-462a-9fb9-cccc933bac63";
fsType = "btrfs";
options = [ "subvol=@" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/18F8-7DC1";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/mnt/CRUCIAL" =
{ device = "/dev/disk/by-uuid/394f67b9-e75b-40cc-9b15-28bbda40fff4";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/bbe1e281-4b1d-4d85-ba6a-6f5265f0e3a3"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.biscuit-default.useDHCP = lib.mkDefault true;
# networking.interfaces.enp11s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp10s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
-40
View File
@@ -1,40 +0,0 @@
{
pkgs,
builder,
terminal,
username,
...
}: {
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; [
python313
];
# Auto upgrade nix package and the daemon service.
# services.nix-daemon.enable = true;
# services.karabiner-elements.enable = true;
# nix.package = pkgs.nix;
# Necessary for using flakes on this system.
nix.settings.experimental-features = "nix-command flakes";
nix.settings.trusted-users = builder.trustedUsers;
# Create /etc/zshrc that loads the nix-darwin environment.
programs.zsh.enable = true; # default shell on catalina
programs.fish.enable = true;
# $ darwin-rebuild changelog
system.stateVersion = 5;
# The platform the configuration will be used on.
nixpkgs.hostPlatform = "aarch64-darwin";
users.users.${username} = {
name = "${username}";
home = "/Users/${username}";
shell = pkgs.${terminal.termShell};
};
home-manager.users.${username} = import ../../home/macos/home.nix;
}
-2
View File
@@ -1,2 +0,0 @@
node_modules/
@girs/
-17
View File
@@ -1,17 +0,0 @@
import { App } from "astal/gtk3"
import style from "./style.scss"
import Bar from "./widget/Bar"
App.start({
css: style,
instanceName: "js",
requestHandler(request, res) {
print(request)
res("ok")
},
main: () => {
const monitors = App.get_monitors()
const primary = monitors.find(m => m.primary) || monitors[0]
return Bar(primary)
}
})

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