408 Commits

Author SHA1 Message Date
kenji 17cb857271 added virtualbox 2025-12-22 18:51:43 -06:00
kenji 86742306cb removed virtual box 2025-12-22 08:38:46 -06:00
kenji 47f2d1bd2a added adwaita icons 2025-12-15 10:11:07 -06:00
kenji 92d6e19fa8 added easy effects 2025-12-15 10:11:03 -06:00
kenji a8f6af8fc9 fix print not detecting printers 2025-12-13 09:42:34 -06:00
kenji e914ffd552 updated illogical impulse 2025-12-13 09:40:04 -06:00
kenji a308923512 a 2025-12-13 09:35:21 -06:00
kenji c148be1a99 omarchy-nix: resoulte 2025-12-12 11:11:39 -06:00
kenji ced387584e omarchy-nix: fixed missing config 2025-12-12 10:12:10 -06:00
kenji ac840fb5e9 omarchy-nix: added 2025-12-12 10:10:37 -06:00
kenji 71d1da366d README: added more broke stuff 2025-12-12 10:10:25 -06:00
kenji e0b9f8b91a README: added problems 2025-12-12 09:34:01 -06:00
kenji c510e43618 hardware: update 2025-12-12 09:33:51 -06:00
kenji fb2ae2d470 update: illogical-impulse 2025-12-12 09:33:43 -06:00
kenji 035b8522ff git: added user and email 2025-12-12 09:33:35 -06:00
kenji 4ccfeb12fe remove: fcitx5 due to weird icon 2025-12-12 09:33:22 -06:00
kenji 67adb36f6b moved lanzaboote to default modules 2025-11-24 14:25:36 -06:00
kenji 8b6d867659 removed lanzaboote 2025-11-24 14:24:38 -06:00
kenji 84ee68cb1f jovian change again 2025-11-24 14:04:30 -06:00
kenji 2d7fcc8801 force preferred monitor jovian 2025-11-24 11:11:26 -06:00
kenji ec2293db2e modified jovian environment to support preferred monitor 2025-11-24 10:58:44 -06:00
kenji b6974cb4a2 removed wireless support for now 2025-11-14 10:04:00 -06:00
kenji 3dfb455a1c added lact 2025-09-13 08:13:52 -05:00
kenji 636cac904e a 2025-08-31 21:00:02 -05:00
kenji 12da637cf8 a 2025-08-24 17:22:33 -05:00
kenji a39ffa9cc7 added sunshine at startup 2025-08-21 20:07:15 -05:00
kenji 36399861f0 added login 2025-08-21 20:03:07 -05:00
kenji ac892bcff7 a 2025-08-20 14:21:37 -05:00
kenji 9579fafceb upd ii 2025-08-19 10:02:21 -05:00
kenji 3dcc23facb upd 2025-08-19 10:01:57 -05:00
kenji 009a7145b8 updated modules 2025-08-19 09:59:20 -05:00
kenji 226b61bf21 updated solaar fix 2025-08-18 23:15:23 -05:00
kenji 4586dd1d9c updated ii 2025-08-18 23:01:51 -05:00
kenji 291f442a45 updatee ii 2025-08-17 09:46:23 -05:00
kenji 45010d5f0a minor changes 2025-08-17 09:46:09 -05:00
kenji e1cf3ad59d added lanzaboote.nix for secure boot 2025-08-14 15:13:56 -05:00
kenji bc268218a5 added security.nix for secure boot 2025-08-14 15:07:51 -05:00
kenji 9a05a5546f autostart steamOS 2025-08-14 14:40:51 -05:00
kenji cb224894b8 removed moondeck buddy 2025-08-13 18:16:22 -05:00
kenji 29453240ed vanilla changes with added nvim 2025-08-13 15:01:11 -05:00
kenji c3526e6eac added vanilla for testing 2025-08-13 14:51:15 -05:00
kenji e0ca2aa3bf organized 2025-08-13 09:11:03 -05:00
kenji 8aa7f53eca starship now works as Pure 2025-08-13 09:06:26 -05:00
kenji 9b4c4991c4 updated ii 2025-08-13 08:26:22 -05:00
kenji f040c4b610 enables starship 2025-08-13 08:14:24 -05:00
kenji fac71ff78d updated fonts 2025-08-12 08:19:22 -05:00
kenji 1aa0ab9044 fixed missing icons 2025-08-11 22:58:40 -05:00
kenji 0f17915e8c updated illogical-impulse 2025-08-11 19:30:26 -05:00
kenji 171564d6dc added solaar 2025-08-11 19:30:12 -05:00
kenji 4920a65aa2 upd 2025-08-11 17:23:25 -05:00
kenji fc71417bc7 uses apps.nix for firefox installation 2025-08-11 16:38:14 -05:00
lsoriano-mcm 1aa742d2b2 added illogical impulse 2025-08-09 13:26:38 -05:00
lsoriano-mcm d0339032fa cleaned up a lot 2025-08-09 12:29:57 -05:00
lsoriano-mcm 4f7a30197a major fix macos 2025-08-07 16:03:52 -05:00
lsoriano-mcm 2dcdd0b29a upd 2025-08-07 15:10:14 -05:00
lsoriano-mcm 638b2e54dc organized 2025-08-07 14:51:45 -05:00
lsoriano-mcm c11b7205bd reorganized boot 2025-08-07 14:43:11 -05:00
kenji caada5a969 added flatpak on conf 2025-08-03 15:55:09 -05:00
kenji ceb17c3a34 enable steam os conf 2025-08-03 14:20:35 -05:00
kenji e619754e92 test 2025-08-03 11:37:24 -05:00
kenji 068a46a9bf added mkOverride 2025-07-31 07:07:46 -05:00
kenji 2cbe32f561 t 2025-07-31 06:41:23 -05:00
kenji e90d182cde added virtualbox 2025-07-23 19:47:13 -05:00
kenji 2bede8d2bc test 2025-07-23 17:55:04 -05:00
kenji 1bb5ea283f a 2025-07-23 17:51:25 -05:00
kenji 173f9a08ca added vrr 2025-07-23 16:35:47 -05:00
kenji 61e3f29db2 test 2025-07-23 16:30:20 -05:00
kenji 9a44776d59 added config file for nixos 2025-07-23 16:30:16 -05:00
kenji c83ad31922 monitor fix 2025-07-23 15:35:53 -05:00
kenji 990b154250 enabled HDR 2025-07-23 14:10:58 -05:00
kenji 4cb03bcbbb fixed quickshell 2025-07-23 12:56:32 -05:00
kenji 5f6dbaac10 minor fixes 2025-07-23 12:46:36 -05:00
kenji 9a24848f21 fixed sunshine not installed 2025-07-22 20:08:29 -05:00
kenji 10e9e6e426 added more support 2025-07-22 20:03:46 -05:00
kenji e11b3547d4 fix unmatched sha 2025-07-22 20:03:39 -05:00
kenji d80c5c1074 added alternative to qs main menu 2025-07-22 20:03:27 -05:00
kenji 954407bfa0 modified hardware 2025-07-22 20:03:15 -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
biscuit d8657c7eeb added heroic launcher 2025-06-25 22:24:55 -05:00
biscuit 3c4ed456cf upd 2025-06-25 11:02:03 -05:00
biscuit 551302a00e removed other configs 2025-06-25 09:18:25 -05:00
lsoriano-mcm 9aaffe2677 test 2025-06-20 19:54:34 -05:00
lsoriano-mcm 11cee2638a test 2025-06-20 19:47:25 -05:00
lsoriano-mcm e35dc3d28e test 2025-06-20 18:08:36 -05:00
biscuit b686cf7751 test 2025-06-20 11:22:25 -05:00
biscuit 7fd7cfac70 test 2025-06-20 11:19:11 -05:00
biscuit 2023828364 teset 2025-06-20 11:18:26 -05:00
biscuit 2d8ba9f7ea q 2025-06-20 08:58:14 -05:00
biscuit bc70242a99 test 2025-06-19 18:19:05 -05:00
biscuit 0eabcc4fc1 test 2025-06-19 18:13:35 -05:00
biscuit 1e301b958e update 2025-06-19 17:47:42 -05:00
biscuit 4a4f66c08e test 2025-06-19 17:38:29 -05:00
biscuit e33dbea82e test 2025-06-19 17:18:02 -05:00
biscuit 50813851cb nix: added LOGIOPS 2025-06-19 17:06:05 -05:00
biscuit b3c502fdf3 king 2025-06-19 13:59:35 -05:00
biscuit 3587a7042d test 2025-06-19 13:46:17 -05:00
biscuit cfc2f01e57 test 2025-06-19 13:38:31 -05:00
biscuit ebef97f84b test 2025-06-19 13:36:11 -05:00
biscuit 3740928c70 test 2025-06-19 13:21:32 -05:00
biscuit 435742f29c fastfetch: changed 2025-06-19 12:58:05 -05:00
biscuit 0ebe999f92 test 2025-06-19 12:39:23 -05:00
biscuit 005c744cb6 FIXED 2025-06-18 13:21:08 -05:00
biscuit a2b4b0d8ea test 2025-06-18 13:06:36 -05:00
biscuit e8c6cb073f kitty test 2025-06-18 12:54:46 -05:00
biscuit 17b01cbf1c remove kitty-catppuccin 2025-06-18 12:45:06 -05:00
biscuit 6d5cd6d78e test 2025-06-18 12:38:27 -05:00
biscuit c48d1543a4 upd 2025-06-18 12:32:05 -05:00
biscuit ac41162a6e terst 2025-06-18 12:25:27 -05:00
biscuit 74f26f5997 test 2025-06-18 12:05:52 -05:00
biscuit 0a1acae08a matugen 2025-06-18 11:37:23 -05:00
biscuit 54f2f1e8f9 test 2025-06-18 11:32:32 -05:00
biscuit a25d41100a cleaned up 2025-06-12 09:23:12 -05:00
biscuit 381830a767 cleaned up 2025-06-12 09:21:55 -05:00
biscuit d1c11014de fix 2025-06-12 09:01:15 -05:00
biscuit b41a820dcc ags: MASSIVE REVAMP 2025-06-11 20:57:02 -05:00
biscuit 38ba3a2fdb kitty: changed theme file to kanagawa 2025-06-11 19:54:08 -05:00
biscuit 998f4905b0 ags: moved pos of workspace and time 2025-06-11 19:53:59 -05:00
biscuit 9cc45e426d ags: now only shows BAR in primary monitor 2025-06-11 19:46:09 -05:00
biscuit 7053adc718 fixed swww 2025-06-11 07:24:45 -05:00
biscuit 8d6af2f936 fixed the firefox 2025-06-11 07:19:04 -05:00
biscuit f4788f863e Revert "nix: added firefox"
This reverts commit b6911bc045.
2025-06-11 07:04:30 -05:00
biscuit 2ba8639dfd testtest 2025-06-11 07:03:36 -05:00
biscuit a609216012 test 2025-06-11 06:57:42 -05:00
biscuit b6911bc045 nix: added firefox 2025-06-11 06:54:24 -05:00
biscuit 09fbbec45e test 2025-06-11 06:47:18 -05:00
biscuit b697c89aae nix: added steam
yeety mcspanky
2025-06-11 06:34:45 -05:00
biscuit 0e0b8a40c7 added hyprconf 2025-06-10 22:00:01 -05:00
lsoriano-mcm 555fea04b4 pud 2025-06-09 10:18:05 -05:00
lsoriano-mcm fee08ad3d2 add fishAliases 2025-06-09 10:07:38 -05:00
lsoriano-mcm b3e0e3e76f test 2025-06-09 10:01:57 -05:00
lsoriano-mcm 4dee2bf44f test 2025-06-09 09:58:14 -05:00
lsoriano-mcm f23d023551 test 2025-06-07 14:09:34 -05:00
lsoriano-mcm 61ac2f71d5 ignores config.local 2025-06-07 14:05:33 -05:00
lsoriano-mcm ca9e487111 changed info.nix to config.nix 2025-06-07 14:03:34 -05:00
lsoriano-mcm f8e327d46d termsize 2025-06-07 14:01:25 -05:00
lsoriano-mcm 835a7fdad3 test 2025-06-07 13:56:23 -05:00
lsoriano-mcm 6034a9797c optimize: replaced omz to antidote 2025-06-07 13:49:32 -05:00
lsoriano-mcm c204eed76e test 2025-06-07 12:18:35 -05:00
lsoriano-mcm 0abf1447af test 2025-06-07 11:24:52 -05:00
lsoriano-mcm 73ece504c9 organized better 2025-06-07 08:11:17 -05:00
lsoriano-mcm 30f2178b6f RE 2025-06-06 20:25:13 -05:00
lsoriano-mcm 5b0a8b3c49 READ 2025-06-06 20:17:01 -05:00
lsoriano-mcm da0db9551c README 2025-06-06 20:04:42 -05:00
lsoriano-mcm f1b1dcdd9e Ignore info.local.nix 2025-06-06 19:28:16 -05:00
lsoriano-mcm b3bcc0f058 Remove info.local.nix from version control 2025-06-06 19:28:05 -05:00
lsoriano-mcm 2b1bc85514 added user override configuration 2025-06-06 19:26:24 -05:00
lsoriano-mcm 6517af5889 organized 2025-06-06 16:57:47 -05:00
lsoriano-mcm 43f8d827f6 macos: neovim 2025-06-06 16:47:12 -05:00
biscuit f7d3c7a7c4 MOCHA 2025-06-06 10:28:29 -05:00
biscuit 7f7cbe74f7 t 2025-06-06 09:10:36 -05:00
biscuit e3c5d8c166 upd 2025-06-06 09:02:22 -05:00
biscuit 8957622879 upd 2025-06-06 08:38:11 -05:00
biscuit 657fde7545 test 2025-06-06 08:15:41 -05:00
biscuit f757369821 fixed 2025-06-06 07:50:10 -05:00
biscuit e623b83d68 cleaned up 2025-06-06 07:46:05 -05:00
biscuit 2b8d4a1dce upd 2025-06-06 07:41:01 -05:00
lsoriano-mcm e6103c3153 upd 2025-06-06 07:39:53 -05:00
lsoriano-mcm 6b0a342cdd added DARWIN 2025-06-06 06:50:54 -05:00
biscuit 280a2da2db cleaned up xserver 2025-06-05 16:35:58 -05:00
biscuit 363d470386 upd 2025-06-05 16:35:01 -05:00
biscuit f715f08831 uses flakes for hyprland 2025-06-05 14:54:13 -05:00
biscuit c4e0681c33 workspace now can work back and forth 2025-06-05 14:21:17 -05:00
biscuit a3121c0ce0 a 2025-06-05 13:49:30 -05:00
biscuit 6af25e5453 test 2025-06-05 09:01:04 -05:00
biscuit fd8da098ed upd 2025-06-05 08:55:54 -05:00
biscuit e83c8ded35 abc 2025-06-05 08:53:00 -05:00
biscuit 229b0041a6 fix 2025-06-05 07:52:31 -05:00
biscuit 128e6a04c2 test 2025-06-04 15:17:24 -05:00
biscuit a92159168c changed date 2025-06-04 14:32:51 -05:00
biscuit 1fb2d40aa8 added bluetooth 2025-06-03 19:31:08 -05:00
biscuit 7ec496be3d upd 2025-06-03 19:10:59 -05:00
biscuit 35a794a648 cleaned up 2025-06-03 17:19:06 -05:00
biscuit b8dfddd2e8 test 2025-06-03 17:17:03 -05:00
biscuit 4a49aba2ba MAJOR FIX: neovim now works well 2025-06-03 17:13:13 -05:00
biscuit d1bffc3952 upd 2025-06-03 17:06:27 -05:00
biscuit 8b2e901680 test 2025-06-03 17:01:20 -05:00
biscuit a5db5cc54d test 2025-06-03 11:55:29 -05:00
biscuit efede58a6d upd 2025-06-03 11:29:36 -05:00
biscuit 7df80623d5 test 2025-06-03 04:21:36 -05:00
biscuit 028df1fd35 NEO added 2025-06-03 03:55:42 -05:00
biscuit 12e64d34e6 fix 2025-06-02 15:12:37 -05:00
biscuit ba7174224c upd 2025-06-02 14:05:20 -05:00
biscuit c794974b20 fx 2025-06-02 13:32:32 -05:00
biscuit d9fdab315c test 2025-05-27 17:36:09 -05:00
biscuit b3d37d7b20 test 2025-05-27 17:22:13 -05:00
biscuit 88076292de add git 2025-05-27 16:44:19 -05:00
biscuit 25c0a328e6 fix 2025-05-27 08:15:59 -05:00
biscuit ab855f18ea removed 2025-05-26 19:30:56 -05:00
biscuit b7659157fa starship & fastfetch replaced home conf with settings 2025-05-26 19:29:10 -05:00
biscuit 608df0bd38 fix: hypridle home already exists 2025-05-26 19:15:48 -05:00
biscuit 1871ca6ef6 upd 2025-05-26 19:12:14 -05:00
biscuit d7eed2ecf6 yeet 2025-05-26 18:59:25 -05:00
biscuit 789e6786cc fix font 2025-05-26 18:54:59 -05:00
biscuit 8e9bfe9522 added rubik font 2025-05-26 18:53:15 -05:00
biscuit 0c99dfefbb organize 2025-05-21 17:57:59 -05:00
biscuit c16cedf981 upde 2025-05-21 17:54:30 -05:00
biscuit 4f0c6d3e46 README revamp 2025-05-21 17:54:27 -05:00
biscuit 752a6ad1de upd 2025-05-21 17:43:56 -05:00
biscuit 802c2aa6bf added MarkdownPreview 2025-05-21 17:28:57 -05:00
biscuit 2a6b5bc2c7 upd 2025-05-21 17:21:05 -05:00
biscuit e986b99ce7 test 2025-05-21 12:58:53 -05:00
biscuit c17dabdbd8 added users (MAJOR FIX) 2025-05-21 12:58:39 -05:00
biscuit 0ab12aabff cleaned up even more 2025-05-21 12:24:41 -05:00
biscuit 30ecca57ba cleaned up drastically 2025-05-21 12:20:32 -05:00
biscuit cd734937c0 changed biscuit to desktop 2025-05-21 11:25:59 -05:00
biscuit 477b592b06 cleaned up 2025-05-21 11:20:30 -05:00
biscuit fda9681b84 upd 2025-05-21 11:11:45 -05:00
biscuit 694042f027 changed everything to default.nix 2025-05-21 11:11:26 -05:00
biscuit 7e77b1acd4 upd 2025-05-21 11:06:24 -05:00
biscuit 6b765f1b54 organized wl 2025-05-21 11:06:09 -05:00
biscuit 97d65f2f7e added opt 2025-05-21 11:05:22 -05:00
biscuit 9186f2cc28 organized shellAliases 2025-05-21 10:56:53 -05:00
biscuit 6ae2221007 upd 2025-05-21 10:51:10 -05:00
biscuit e862ce8f9b nix: added commercial fonts 2025-05-21 09:01:53 -05:00
biscuit 6dbe009076 purge 2025-05-21 08:45:46 -05:00
biscuit 598abbf308 upd 2025-05-21 08:45:04 -05:00
biscuit 17ccf2ba8c nix 2025-05-21 08:35:48 -05:00
biscuit ca5b15b377 a 2025-05-21 00:55:15 -05:00
biscuit a11926ee85 upd 2025-05-21 00:25:39 -05:00
biscuit f19b7ab674 upd 2025-05-21 00:22:15 -05:00
biscuit 306e540a67 upd 2025-05-21 00:07:43 -05:00
biscuit 5185edce48 upd 2025-05-20 23:34:47 -05:00
biscuit b3f9882c7e upd 2025-05-20 23:20:32 -05:00
biscuit ee7b59c521 upd 2025-05-20 23:19:27 -05:00
biscuit 113a15cd69 upd 2025-05-20 23:04:23 -05:00
biscuit 2ea4f6631c upd 2025-05-20 23:00:24 -05:00
biscuit e21cf63216 upd 2025-05-20 22:55:43 -05:00
biscuit f31387ab12 upd 2025-05-20 22:43:37 -05:00
biscuit 4ec339c53b upd 2025-05-20 22:41:52 -05:00
hakase eb70a6dd52 added Monolisa font 2025-05-20 22:37:33 -05:00
biscuit a9aef32984 upd 2025-05-20 22:33:12 -05:00
biscuit 58d575ebeb added monolisa 2025-05-20 21:56:13 -05:00
biscuit be57946347 upd 2025-05-20 21:47:13 -05:00
biscuit 63c2f887db upd 2025-05-20 21:38:02 -05:00
biscuit 36222bdb63 upd 2025-05-20 21:36:34 -05:00
biscuit de69800662 upd file name 2025-05-20 21:29:10 -05:00
biscuit f2a1604009 upd 2025-05-20 21:27:50 -05:00
biscuit dfec0bc5da upd 2025-05-20 21:23:55 -05:00
biscuit 45ce1678d1 updd 2025-05-20 21:22:46 -05:00
biscuit 5022c31815 wofi 2025-05-20 18:53:30 -05:00
biscuit 2534d83bdd upd 2025-05-20 18:19:55 -05:00
biscuit 3e7917aee3 hypr: removes redundant delays 2025-05-20 14:32:32 -05:00
biscuit 530a7c9777 upd 2025-05-20 14:22:02 -05:00
biscuit a3b195da1f fixed cursor not appearing 2025-05-20 14:04:26 -05:00
biscuit fa1a376d85 removed plymouth 2025-05-20 12:25:37 -05:00
biscuit 25d034d7dc cleaned up 2025-05-20 12:20:52 -05:00
biscuit a0572f8a95 added variable 2025-05-20 12:02:26 -05:00
biscuit 6e32ac5ceb added waybar 2025-05-20 11:53:30 -05:00
biscuit 5278908420 added vpn wg 2025-05-20 11:35:53 -05:00
biscuit 6044c4e063 added vpn 2025-05-20 11:28:28 -05:00
biscuit d0532495e0 added cursor 2025-05-20 11:05:33 -05:00
biscuit 3339960062 add cursor 2025-05-20 11:00:22 -05:00
biscuit 77854b1c69 upd 2025-05-20 10:58:07 -05:00
biscuit b1ca82da64 upd 2025-05-20 10:56:16 -05:00
biscuit 72bc56a934 upd 2025-05-20 10:49:41 -05:00
biscuit aac77be6ec upd 2025-05-20 10:42:30 -05:00
biscuit 6404fbd36d upd 2025-05-20 10:27:15 -05:00
biscuit f442452a2e added tldr 2025-05-20 07:56:58 -05:00
biscuit 35f515e828 upd fastfetch 2025-05-20 07:41:30 -05:00
biscuit 3215644a87 added btop 2025-05-20 07:30:55 -05:00
biscuit 05198ddeab upd 2025-05-20 07:29:53 -05:00
biscuit 67402c3e54 upd 2025-05-20 07:23:25 -05:00
biscuit 78abaed26f upd 2025-05-20 07:08:13 -05:00
biscuit 64a56ea346 added starship 2025-05-20 06:57:18 -05:00
biscuit 453bc1f249 upd 2025-05-20 06:31:39 -05:00
biscuit 7fc61d7d27 cleaned up 2025-05-20 05:56:07 -05:00
biscuit d9edf3f389 added gdm 2025-05-19 21:40:20 -05:00
biscuit 4a29a676b5 hypr: added moving via keyboard 2025-05-19 21:37:21 -05:00
biscuit 6a61e05ae7 added modules for ags 2025-05-19 21:29:23 -05:00
biscuit ce1301af38 added ags 2025-05-19 21:13:58 -05:00
biscuit dd3caf07d2 added fastfetch 2025-05-19 20:52:42 -05:00
biscuit c62421cfb6 added jetbrainsmono-nerdfont 2025-05-19 20:48:36 -05:00
biscuit d4026e1559 added firacode font family 2025-05-19 20:38:46 -05:00
biscuit 53346c17ea added fonts 2025-05-19 20:33:56 -05:00
biscuit 52356a4a87 upd 2025-05-19 20:30:17 -05:00
biscuit c603389ebc upd 2025-05-19 20:27:33 -05:00
biscuit 2d8e528b6f added clipboard 2025-05-19 19:22:42 -05:00
biscuit 87dea595d3 nix: changed sha256 2025-05-19 19:17:54 -05:00
biscuit 9629dd0ba0 up 2025-05-19 19:14:18 -05:00
biscuit 9a722c915a u 2025-05-19 19:08:25 -05:00
biscuit 65e7e86739 (hypr) more configs added 2025-05-19 18:42:40 -05:00
biscuit 1b0dcd2863 nix: removed impure 2025-05-19 18:12:57 -05:00
biscuit c1e4ef47f3 initialization 2025-05-19 17:53:19 -05:00
132 changed files with 4199 additions and 1807 deletions
-1
View File
@@ -1 +0,0 @@
hosts/desktop/hardware-configuration.nix
+55 -50
View File
@@ -1,58 +1,63 @@
# Sakamoto NixOS # Nix Sakamoto
A rewrite of the original Sakamoto NixOS configuration.
Sakamoto NixOS is built with various profiles intended for reproducibility.
## Available Hosts
- MacBook M series
- Linux
## Installation ## Installation
Installing Sakamoto Nix configuration may vary on your current operating system.
1. Install [Nix](https://nixos.org/download/). | Hosts | Description |
|----------|--------------|
| hakase | gaming desktop (linux) |
| sakamoto | \[unavailable] server that uses containers (linux) |
| nano | \[unavailable] windows configuration |
| macos | macos configuration |
2. Ensure Nix is installed properly by running the following (this also gives you `nano` for editing later): **Note: Replace `${Hosts}` with one of the options from the table above.**
### Linux Installation
1. Install [Nix](https://nixos.org).
2. Clone this directory.
```sh ```sh
nix-shell -p nano $ git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos
```
3. Create a hardware-configuration.conf
```sh
$ sudo nixos-generate-config --dir ~/.config/nixos/hosts/${Hosts}/
```
4. ⚠️ Modify `config.nix` that suits your configuration. **Be sure to edit `config.nix`! Most especially `myConfig.essentials.Username`. Otherwise, your OS could break!!!**
5. Rebuild.
```sh
$ sudo nixos-rebuild switch --flake ~/.config/nixos/hosts/#${Hosts}
```
6. Install unstable channel (fixes `pkgs.fish` misconfiguration).
```sh
$ nix-channel --add https://nixos.org/channels/nixos-unstable nixos nix-channel --update
```
7. (Optional) You can install `proton-ge` by running the following command:
```sh
protonup
```
8. (Optional) Add Decky Loader for Steam via this command:
```sh
touch ~/.steam/steam/.cef-enable-remote-debugging
```
### MacOS (Darwin) Installation
1. Install [Nix](https://nixos.org).
2. Clone this directory.
```sh
$ git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos
```
3. ⚠️ Modify `config.nix` that suits your configuration. **Be sure to edit `config.nix`! Most especially `myConfig.essentials.Username`. Otherwise, configuration would not work!!!**
4. Rebuild.
```sh
$ sudo nix run nix-darwin --extra-experimental-features "nix-command flakes" -- switch --flake ~/.config/nixos#macos
``` ```
3. Clone the git repository: ## Problems:
* XDG defaults (file manager default is terminal)
```sh * File Manager must be TUI
git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos && cd ~/.config/nixos/ * Bluetooth and WiFi should open at TUI
``` * Steam and Heroic incompatible
* Broken switchwall.sh
4. Copy `info.default.nix` and rename it to `info.local.nix`: * Box fonts
```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 `Your-generic-password`.**
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
```
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

+69 -73
View File
@@ -1,37 +1,82 @@
{ {
myConfig = { myConfig = {
general = { macos = {
Hostname = "hakase"; Username = "lsoriano";
};
essentials = {
# !!! replace it with your own, else system might malfunction.
Username = "kenji"; Username = "kenji";
};
general = {
Terminal = {
font = "JetBrainsMono Nerd Font";
size = "18";
shell = "fish"; # or zsh
aliases = {};
};
allowUnfree = true;
};
nixos = {
Hostname = "hakase";
Timezone = "America/Chicago"; Timezone = "America/Chicago";
enableSteamOS = false;
allowUnfree = true; # allows installation of commercial apps. Boot = {
mode = "systemd"; # systemd or grub
terminal = {
Font = "JetBrainsMono Nerd Font"; # e.g., JetBrainsMono Nerd Font
Size = "18";
Shell = "fish";
Aliases = {
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 && home-manager switch --flake ~/.config/nixos#desktop
fi
'
'';
agu = "pkill gjs & ags run ~/.config/nixos/packages/ags/biscuit/app.ts & disown (jobs -p) &";
}; };
Apps = {
packages = pkgs:
with pkgs; [
adwaita-icon-theme
jellyfin-media-player
delfin
goverlay
geekbench_6
gparted
ntfs3g
feishin
discord
xfce.thunar
];
}; };
gitProfile = { Hyprland = {
User = "kenji"; monitors = [
Email = "kenji@sakamoto.dev"; # "DP-2, highres@165,0x1080,1,vrr,1"
# "DP-2, highres@180,0x1080,1,cm,hdr, sdrbrightness, 1.5, sdrsaturation, 0.98"
"DP-2, highres@180,0x1080,1,bitdepth,10,cm,hdr,sdrbrightness,1.4,sdrsaturation,0.98"
"DP-1, highres@highrr,760x0,1"
"HDMI-A-1, 1920x1080@120, 20000x20000,1"
# "HDMI-A-1, disabled"
];
};
Git = {
user = "kenji";
email = "kenji@hakase";
defaultBranch = "master"; defaultBranch = "master";
}; };
ssh = { };
optionals = {
Builds = {
trustedUsers = [
"@groups"
];
buildMachines = [
{
hostName = "";
sshUser = "";
sshKey = "";
system = "";
supportedFeatures = ["apple-virt" "big-parallel" "kvm" "nixos-test"];
}
];
};
Ssh = {
extraConfig = '' extraConfig = ''
Host macair
User biscuit
HostName 192.168.68.81
Host gitea.sakamoto.dev Host gitea.sakamoto.dev
User kenji User kenji
ProxyCommand cloudflared access ssh --hostname %h ProxyCommand cloudflared access ssh --hostname %h
@@ -39,54 +84,5 @@
''; '';
}; };
}; };
builds = {
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"];
}
];
};
};
linux = {
system = "x86_64";
gaming = true;
vpn = {
Enable = false;
secretFile = builtins.toPath ./secrets/.vpn.yaml;
};
touchpadSupport = false;
logitech-hardware.enable = true;
# Custom Applications
apps = {
gaming = true;
apps = pkgs:
with pkgs; [
jellyfin-media-player
];
};
hyprconf = {
Monitor = [
# hyprctl monitors all
# monitor, resolution@refreshrate, position (e.g., 0x0 is middle, 0x1080 is top), scale
"DP-1,highres@165,0x1080,auto"
"DP-2,highres@highrr,0x0,auto"
"HDMI-A-1, preferred, 20000x20000,1"
];
};
};
}; };
} }
Generated
+1407 -219
View File
File diff suppressed because it is too large Load Diff
+90 -62
View File
@@ -1,36 +1,57 @@
{ {
description = "Sakamoto's NixOS Configuration"; description = "A rewrite of the original Sakamoto NixOS config.";
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"; flake-utils.url = "github:numtide/flake-utils";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; # `follows` ensure it follows nixpkgs versiona. Avoids breaking updates. chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
darwin.url = "github:lnl7/nix-darwin";
darwin.inputs.nixpkgs.follows = "nixpkgs";
ags.url = "github:aylur/ags"; jovian = {
ags.inputs.nixpkgs.follows = "nixpkgs"; url = "github:Jovian-Experiments/Jovian-NixOS";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland.url = "github:hyprwm/Hyprland"; matugen = {
hyprland.inputs.nixpkgs.follows = "nixpkgs"; url = "github:/InioX/Matugen";
inputs.nixpkgs.follows = "nixpkgs";
# ref = "refs/tags/matugen-v0.10.0";
};
unlisted-fonts.url = "git+https://git.sakamoto.dev/kenji/nix-fonts.git"; erosanix = {
unlisted-fonts.inputs.nixpkgs.follows = "nixpkgs"; url = "github:emmanuelrosa/erosanix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixovim.url = "git+https://git.sakamoto.dev/kenji/nixovim.git"; hyprland = {
nixovim.inputs.nixpkgs.follows = "nixpkgs"; url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
inputs.nixpkgs.follows = "nixpkgs";
};
matugen.url = "github:/InioX/Matugen"; home-manager = {
matugen.inputs.nixpkgs.follows = "nixpkgs"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-gaming.url = "github:fufexan/nix-gaming"; darwin = {
nix-gaming.inputs.nixpkgs.follows = "nixpkgs"; url = "github:lnl7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix.url = "github:Mic92/sops-nix"; nixovim = {
sops-nix.inputs.nixpkgs.follows = "nixpkgs"; url = "git+https://git.sakamoto.dev/kenji/nixovim.git";
inputs.nixpkgs.follows = "nixpkgs";
};
quickshell.url = "git+https://git.outfoxxed.me/outfoxxed/quickshell"; illogical-impulse = {
quickshell.inputs.nixpkgs.follows = "nixpkgs"; url = "git+https://git.sakamoto.dev/kenji/illogical-impulse.git";
inputs.nixpkgs.follows = "nixpkgs";
};
omarchy-nix = {
url = "git+https://git.sakamoto.dev/kenji/omarchy-nix.git";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
}; };
outputs = { outputs = {
@@ -38,78 +59,85 @@
nixpkgs, nixpkgs,
home-manager, home-manager,
darwin, darwin,
ags, chaotic,
hyprland, jovian,
unlisted-fonts,
nixovim, nixovim,
illogical-impulse,
erosanix,
omarchy-nix,
... ...
} @ 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 {
# nixosConfiguration for linux system
nixosConfigurations = { nixosConfigurations = {
desktop = lib.nixosSystem { hakase = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = args; specialArgs = args;
modules = [ modules = [
./hosts/desktop/configuration.nix chaotic.nixosModules.default
home-manager.nixosModules.home-manager
jovian.nixosModules.default
erosanix.nixosModules.protonvpn
./hosts/hakase/configuration.nix
]; ];
}; };
}; hakase-omarchy = nixpkgs.lib.nixosSystem {
homeConfigurations = { specialArgs = args;
desktop = home-manager.lib.homeManagerConfiguration { modules = [
pkgs = import nixpkgs { chaotic.nixosModules.default
inherit system; omarchy-nix.nixosModules.default
overlays = [ home-manager.nixosModules.home-manager
# (final: prev: { ./hosts/hakase-omarchy/configuration.nix
# ags_1 = prev.ags_1.overrideAttrs (old: { ];
# buildInputs = old.buildInputs ++ [pkgs.libdbusmenu-gtk3]; };
# }); vanilla = nixpkgs.lib.nixosSystem {
# }) specialArgs = args;
modules = [
./hosts/vanilla/configuration.nix
# nixovim.packages.${system}.full
]; ];
}; };
extraSpecialArgs = args;
modules = [./home/desktop.nix];
}; };
gaming = home-manager.lib.homeManagerConfiguration { homeConfigurations = {
hakase = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; config.allowUnfree = true;
overlays = [];
};
extraSpecialArgs = args; extraSpecialArgs = args;
modules = [./home/gaming.nix];
}; };
headless = home-manager.lib.homeManagerConfiguration { modules = [
home-manager.nixosModules.home-manager
./home/hakase.nix
];
};
hakase-omarchy = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; config.allowUnfree = true;
overlays = [];
};
extraSpecialArgs = args; extraSpecialArgs = args;
modules = [./home/headless.nix]; };
modules = [
home-manager.nixosModules.home-manager
./home/hakase-omarchy.nix
];
}; };
}; };
# darwinConfiguration for macOS M series
darwinConfigurations = { darwinConfigurations = {
macos = darwin.lib.darwinSystem { macos = darwin.lib.darwinSystem {
system = "aarch64-darwin"; system = "aarch64-darwin";
specialArgs = args; specialArgs =
modules = [
./hosts/macos/darwin.nix
home-manager.darwinModules.home-manager
{ {
home-manager.useGlobalPkgs = true; inherit inputs;
home-manager.useUserPackages = true; system = "aarch64-darwin";
home-manager.extraSpecialArgs = args;
} }
// config;
modules = [
home-manager.darwinModules.home-manager
./hosts/macos/darwin.nix
]; ];
}; };
}; };
+2 -2
View File
@@ -5,11 +5,11 @@
... ...
}: { }: {
imports = [ imports = [
../modules/terminal.nix ../modules/home/terminal.nix
]; ];
programs.home-manager.enable = true; programs.home-manager.enable = true;
home.packages = []; home.packages = [];
home.stateVersion = "23.05"; home.stateVersion = "25.11";
} }
-22
View File
@@ -1,22 +0,0 @@
{
myConfig,
lib,
...
}: {
imports = [
../modules/terminal.nix
../modules/desktop.nix
];
programs.home-manager.enable = true;
home = {
username = "${myConfig.general.Username}";
homeDirectory = "/home/${myConfig.general.Username}";
packages = [];
sessionVariables = {};
};
systemd.user.startServices = "sd-switch";
home.stateVersion = "23.05";
}
+15
View File
@@ -0,0 +1,15 @@
{
config,
pkgs,
inputs,
...
}: {
imports = [
# ... your other imports
inputs.omarchy-nix.homeManagerModules.default # Assuming you have a system module too
];
# ADD THIS BLOCK
home.stateVersion = "25.05";
}
+17
View File
@@ -0,0 +1,17 @@
{
pkgs,
inputs,
...
}: let
info = import ../config.nix;
in {
imports = [
# inputs.chaotic.homeManagerModules.default
../modules/home/desktop.nix
../modules/home/terminal.nix
../modules/home/apps.nix
];
# nix.package = pkgs.nix;
home.packages = info.myConfig.nixos.Apps.packages pkgs;
home.stateVersion = "25.05";
}
View File
-36
View File
@@ -1,36 +0,0 @@
{
pkgs,
myConfig,
inputs,
lib,
...
}: {
imports =
[
inputs.sops-nix.nixosModules.sops
./hardware-configuration.nix
../../modules/linuxDev.nix
../../modules/system.nix
../../modules/de.nix
]
++ lib.optionals (myConfig.linux.apps.gaming == true) [
../../modules/gaming.nix
];
environment.systemPackages = [];
nixpkgs.config.allowUnfree = true;
nix.settings = {
trusted-users = myConfig.builds.builder.trustedUsers;
experimental-features = ["nix-command" "flakes"];
};
programs.ssh.extraConfig = myConfig.general.ssh.extraConfig;
nix.distributedBuilds = true;
nix.settings.builders-use-substitutes = true;
# nix.buildMachines = builder.buildMachines;
system.stateVersion = "25.05";
}
+156
View File
@@ -0,0 +1,156 @@
{
pkgs,
myConfig,
specialArgs,
...
}: {
imports = [
../../modules/default/boot.nix
./hardware-configuration.nix
];
system.stateVersion = "25.05";
i18n.defaultLocale = "en_US.UTF-8";
time.timeZone = "${myConfig.nixos.Timezone}";
nixpkgs.config.allowUnfree = myConfig.general.allowUnfree;
console = {
earlySetup = false;
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
packages = with pkgs; [terminus_font];
useXkbConfig = true;
};
users = {
# defaultUserShell = pkgs.${myConfig.general.Terminal.shell};
users = {
${myConfig.essentials.Username} = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager" "input" "video"];
initialHashedPassword = "$y$j9T$NHFtSwF4NJtEmgMjy4Xdg.$9WQltjEx3eEfZ7GbpGLW8lBhJtiXPOeIawrxdmx0.vB";
useDefaultShell = true;
packages = [];
};
};
};
omarchy = {
full_name = "${myConfig.essentials.Username}"; # Or variable
email_address = "${myConfig.nixos.Git.email}";
};
home-manager = {
backupFileExtension = "backup";
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = specialArgs;
users.${myConfig.essentials.Username} = import ../../home/hakase-omarchy.nix;
};
networking = {
useDHCP = false;
wireless = {
enable = false;
};
networkmanager.enable = true;
firewall = {
enable = true;
allowedTCPPorts = [22 80 531];
allowedUDPPorts = [53 531 5353];
};
proxy = {
default = null;
noProxy = null;
};
};
systemd = {
# network.enable = true;
# extraConfig = "DefaultTimeoutStopSec=5s";
};
nix = {
settings = {
experimental-features = ["nix-command" "flakes"];
};
};
#
# hardware = {
# enableAllFirmware = true;
# logitech.wireless.enable = true;
#
# bluetooth = {
# enable = true;
# powerOnBoot = true;
# settings = {
# General = {
# # AutoEnable = true;
# Experimental = true;
# MultiProfile = "multiple";
# FastConnectable = true;
# # ControllerMode = "bredr";
# };
# Policy = {
# AutoEnable = true;
# };
# };
# };
#
# graphics = {
# enable = true;
# enable32Bit = true;
# };
#
# xone.enable = true;
# };
#
# security.rtkit.enable = true;
# programs = {
# bash.interactiveShellInit = ''
# if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]; then
# shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
# exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
# fi
# '';
# zsh.enable = true;
# fish.enable = true;
#
# appimage = {
# enable = true;
# binfmt = true;
# };
#
# ssh.extraConfig = myConfig.optionals.Ssh.extraConfig;
# };
# jovian.steamos.enableMesaPatches = true;
#
# services = {
# displayManager.sessionPackages = [
# inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
# ];
#
# getty.autologinUser = lib.mkOverride 10 "${myConfig.essentials.Username}";
#
# flatpak.enable = true;
# seatd.enable = true;
# upower.enable = true;
# scx.enable = true;
# libinput.enable = true;
# blueman.enable = true;
# printing.enable = true;
# openssh.enable = true;
#
# pipewire = {
# enable = true;
# alsa = {
# enable = true;
# support32Bit = true;
# };
# pulse.enable = true;
# };
# };
}
@@ -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" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/mapper/luks-9091013c-0763-40a6-8316-d44d52df3530";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-9091013c-0763-40a6-8316-d44d52df3530".device = "/dev/disk/by-uuid/9091013c-0763-40a6-8316-d44d52df3530";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/B332-BF84";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+174
View File
@@ -0,0 +1,174 @@
{
pkgs,
myConfig,
inputs,
lib,
specialArgs,
...
}: {
imports =
[
./hardware-configuration.nix
../../modules/default/apps.nix
../../modules/default/desktop.nix
../../modules/default/remote.nix
../../modules/default/gaming.nix
../../modules/default/udev.nix
../../modules/default/boot.nix
../../modules/default/dev.nix
../../modules/default/security.nix
]
++ lib.optionals (myConfig.nixos.enableSteamOS == false) [
../../modules/default/login.nix
];
system.stateVersion = "25.05";
i18n.defaultLocale = "en_US.UTF-8";
time.timeZone = "${myConfig.nixos.Timezone}";
console = {
earlySetup = false;
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
packages = with pkgs; [terminus_font];
useXkbConfig = true;
};
users = {
defaultUserShell = pkgs.${myConfig.general.Terminal.shell};
users = {
${myConfig.essentials.Username} = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager" "input" "video"];
initialHashedPassword = "$y$j9T$NHFtSwF4NJtEmgMjy4Xdg.$9WQltjEx3eEfZ7GbpGLW8lBhJtiXPOeIawrxdmx0.vB";
useDefaultShell = true;
packages = [];
};
};
};
home-manager = {
backupFileExtension = "backup";
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = specialArgs;
users.${myConfig.essentials.Username} = import ../../home/hakase.nix;
};
nixpkgs.config.allowUnfree = myConfig.general.allowUnfree;
nix = {
distributedBuilds = true;
settings = {
builders-use-substitutes = true;
trusted-users = myConfig.optionals.Builds.trustedUsers;
experimental-features = ["nix-command" "flakes"];
};
};
hardware = {
enableAllFirmware = true;
logitech.wireless.enable = true;
bluetooth = {
enable = true;
powerOnBoot = true;
settings = {
General = {
Enable = "Source,Sink,Media,Socket";
# AutoEnable = true;
Experimental = true;
MultiProfile = "multiple";
FastConnectable = true;
# ControllerMode = "bredr";
};
Policy = {
AutoEnable = true;
};
};
};
graphics = {
enable = true;
enable32Bit = true;
};
xone.enable = true;
};
networking = {
useDHCP = false;
wireless = {
enable = false;
};
networkmanager.enable = true;
firewall = {
enable = true;
allowedTCPPorts = [22 80];
allowedUDPPorts = [53];
};
proxy = {
default = null;
noProxy = null;
};
};
systemd = {
# network.enable = true;
# extraConfig = "DefaultTimeoutStopSec=5s";
};
security.rtkit.enable = true;
programs = {
bash.interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]; then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
zsh.enable = true;
fish.enable = true;
appimage = {
enable = true;
binfmt = true;
};
ssh.extraConfig = myConfig.optionals.Ssh.extraConfig;
};
# jovian.steamos.enableMesaPatches = true;
services = {
displayManager.sessionPackages = [
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
];
getty.autologinUser = lib.mkOverride 10 "${myConfig.essentials.Username}";
flatpak.enable = true;
seatd.enable = true;
upower.enable = true;
scx.enable = true;
libinput.enable = true;
blueman.enable = true;
printing.enable = true;
openssh.enable = true;
pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
};
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
};
}
+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;
}
+12 -21
View File
@@ -2,42 +2,33 @@
pkgs, pkgs,
myConfig, myConfig,
inputs, inputs,
system,
specialArgs,
... ...
}: { }: {
imports = [ imports = [
../../modules/macosDev.nix ../../modules/default/darwin.nix
inputs.sops-nix.darwinModules.sops
];
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; [
]; ];
environment.systemPackages = [];
# 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.experimental-features = "nix-command flakes";
nix.settings.trusted-users = myConfig.builds.builder.trustedUsers; # nix.settings.trusted-users = myConfig.optionals.Builds.trustedUsers;
# Create /etc/zshrc that loads the nix-darwin environment.
programs.zsh.enable = true; # default shell on catalina programs.zsh.enable = true; # default shell on catalina
programs.fish.enable = true; programs.fish.enable = true;
# $ darwin-rebuild changelog
system.stateVersion = 5; system.stateVersion = 5;
# The platform the configuration will be used on.
nixpkgs.hostPlatform = "aarch64-darwin"; nixpkgs.hostPlatform = "aarch64-darwin";
security.pam.services.sudo_local.touchIdAuth = true; security.pam.services.sudo_local.touchIdAuth = true;
users.users.${myConfig.general.Username} = { users.users.${myConfig.macos.Username} = {
name = "${myConfig.general.Username}"; name = "${myConfig.macos.Username}";
home = "/Users/${myConfig.general.Username}"; home = "/Users/${myConfig.macos.Username}";
# shell = pkgs.${myConfig.general.terminal.Shell}; # no support for nix-darwin, but can be changed via chsh.
}; };
home-manager.users.${myConfig.general.Username} = import ../../home/macos.nix; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = specialArgs;
home-manager.users.${myConfig.macos.Username} = import ../../home/darwin.nix;
} }
View File
+133
View File
@@ -0,0 +1,133 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{
config,
lib,
pkgs,
myConfig,
inputs,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# networking.hostName = "nixos"; # Define your hostname.
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
# Set your time zone.
time.timeZone = "${myConfig.nixos.Timezone}";
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
console = {
earlySetup = false;
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
packages = with pkgs; [terminus_font];
useXkbConfig = true;
};
# Enable the X11 windowing system.
# services.xserver.enable = true;
# Configure keymap in X11
# services.xserver.xkb.layout = "us";
# services.xserver.xkb.options = "eurosign:e,caps:escape";
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable sound.
# services.pulseaudio.enable = true;
# OR
services.pipewire = {
enable = true;
pulse.enable = true;
};
hardware.bluetooth.enable = true;
services = {
blueman.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.${myConfig.essentials.Username} = {
isNormalUser = true;
extraGroups = ["wheel"]; # Enable sudo for the user.
packages = with pkgs; [
tree
];
};
# programs.firefox.enable = true;
# List packages installed in system profile.
# You can use https://search.nixos.org/ to find more packages (and options).
environment.systemPackages = with pkgs; [
inputs.nixovim.packages.${system}.full
# linux-firmware
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
wget
];
hardware.firmware = [
pkgs.linux-firmware
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "25.11"; # Did you read the comment?
}
+47
View File
@@ -0,0 +1,47 @@
# 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/disk/by-uuid/9f701bae-3392-4927-b27d-a905dd67edab";
fsType = "btrfs";
options = [ "subvol=@" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/894C-F998";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/780aa81f-c4d6-478b-9c51-2d60362fdb07";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/b02ef55c-4caf-4a24-a6a2-fb8001eafe22"; }
];
# 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.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;
}
-19
View File
@@ -1,19 +0,0 @@
{
lib,
myConfig,
...
}: {
imports =
[
../system/font.nix
../system/browser.nix
../system/wayland.nix
../system/graphics.nix
../system/security.nix
# FIXME
../system/amd.nix
]
++ lib.optionals (myConfig.linux.gaming == true) [
];
}
+28
View File
@@ -0,0 +1,28 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
usbutils
pciutils
pavucontrol
wget
dualsensectl
protontricks
wl-clipboard
tldr
anki
lact
lm_sensors
grim
];
imports = [
../../packages/virtualbox/default.nix
# ../../packages/lact/default.nix
];
hardware.amdgpu.overdrive.enable = true;
services.lact.enable = true;
# services = {
# protonvpn = {
# enable = true;
# autostart = true;
# };
# };
}
+68
View File
@@ -0,0 +1,68 @@
{
myConfig,
lib,
pkgs,
...
}: {
boot = {
loader = {
timeout = 0;
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot";
};
limine = lib.mkIf (myConfig.nixos.Boot.mode == "limine") {
enable = true;
maxGenerations = 5;
};
systemd-boot = lib.mkIf (myConfig.nixos.Boot.mode == "systemd") {
enable = true;
# xbootldrMountPoint = "/boot";
edk2-uefi-shell.enable = true;
edk2-uefi-shell.sortKey = "z_edk2";
};
# grub ain't that great for advanced setups such as using a secure boot.
grub = lib.mkIf (myConfig.nixos.Boot.mode == "grub") {
enable = true;
efiSupport = true;
device = "nodev";
useOSProber = true;
};
};
plymouth = {
enable = false;
theme = "seal";
themePackages = with pkgs; [
(adi1090x-plymouth-themes.override {
selected_themes = ["seal"];
})
];
};
# blacklistedKernelModules = ["tpm_crb" "tpm_tis" "tpm"];
kernelPackages = pkgs.linuxPackages_cachyos;
kernelParams = [
# "quiet"
# "splash"
"boot.shell_on_fail"
"udev.log_priority=3"
"rd.systemd.show_status=auto"
"kvm.enable_virt_at_load=0"
];
initrd = {
systemd.enable = true;
kernelModules = [];
verbose = false;
};
consoleLogLevel = 0;
};
hardware.amdgpu.initrd.enable = true;
}
+5
View File
@@ -0,0 +1,5 @@
{
imports = [
../../packages/python/default.nix
];
}
+12
View File
@@ -0,0 +1,12 @@
{
lib,
myConfig,
pkgs,
...
}: {
imports = [
# ../../packages/quickshell/default.nix
../../packages/hyprland/default.nix
../../packages/sunshine/default.nix
];
}
@@ -1,12 +1,8 @@
{pkgs, ...}: { {pkgs, ...}: {
imports = [
../../packages/python/default.nix
];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
git
p7zip p7zip
tldr
jq
btop
rar
cloudflared
]; ];
} }
+14
View File
@@ -0,0 +1,14 @@
{
lib,
myConfig,
...
}: {
imports =
[
../../packages/steam/default.nix
]
++ lib.optionals (myConfig.nixos.enableSteamOS == true)
[
../../packages/steam/jovian.nix
];
}
+27
View File
@@ -0,0 +1,27 @@
# file: configuration.nix
{
pkgs,
lib,
...
}: let
sources = import ./nix/sources.nix;
lanzaboote = import sources.lanzaboote;
in {
imports = [lanzaboote.nixosModules.lanzaboote];
environment.systemPackages = [
# For debugging and troubleshooting Secure Boot.
pkgs.sbctl
];
# Lanzaboote currently replaces the systemd-boot module.
# This setting is usually set to true in configuration.nix
# generated at installation time. So we force it to false
# for now.
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.lanzaboote = {
enable = true;
pkiBundle = "/var/lib/sbctl";
};
}
+13
View File
@@ -0,0 +1,13 @@
{
lib,
myConfig,
...
}: {
services.greetd = {
enable = true;
settings.default_session = {
user = lib.mkOverride 10 "${myConfig.essentials.Username}";
command = lib.mkOverride 10 "Hyprland";
};
};
}
+6
View File
@@ -0,0 +1,6 @@
{
imports = [
# ../../packages/moondeck-buddy/appimage.nix
../../packages/sunshine/default.nix
];
}
+9
View File
@@ -0,0 +1,9 @@
{pkgs, ...}: {
imports = [
# ./lanzaboote.nix
];
environment.systemPackages = with pkgs; [
niv
sbctl
];
}
+9
View File
@@ -0,0 +1,9 @@
{pkgs, ...}: {
# services.udev.extraRules = ''
# SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", ATTR{idProduct}=="0616", ATTR{power/wakeup}="enabled"
#
# '';
services.udev.packages = with pkgs; [
game-devices-udev-rules
];
}
-20
View File
@@ -1,20 +0,0 @@
{
lib,
myConfig,
...
}: {
imports =
[
../packages/hyprland/default.nix
../packages/hypridle/default.nix
../packages/hyprlock/default.nix
../packages/rofi/default.nix
../packages/matugen/default.nix
../packages/swww/default.nix
../packages/quickshell/default.nix
../packages/ags/default.nix
]
++ lib.optionals (myConfig.linux.gaming == true) [
../packages/mangohud/default.nix
];
}
-7
View File
@@ -1,7 +0,0 @@
{
imports = [
../system/stream.nix
../system/gaming.nix
../system/appimage.nix
];
}
+19
View File
@@ -0,0 +1,19 @@
{pkgs, ...}: {
imports = [
../../packages/firefox/home.nix
];
home.packages = with pkgs; [
heroic
# fcitx5
# fcitx5-mozc-ut
# kdePackages.fcitx5-configtool
solaar
parted
edk2-uefi-shell
libreoffice
];
services.easyeffects = {
enable = true;
};
}
+28
View File
@@ -0,0 +1,28 @@
{
inputs,
pkgs,
lib,
...
}: {
imports = [
inputs.illogical-impulse.homeManagerModules.default
../../packages/fonts/home.nix
];
programs.illogical-impulse.enable = true;
programs.illogical-impulse.settings = {
hyprland.useNixForConf = false;
simpleStarship.enable = true;
};
# wayland.windowManager.hyprland = {
# settings = {
# monitor = lib.mkForce [
# "DP-1, highres@180,0x1080,1,bitdepth,10,cm,hdr,sdrbrightness,1.4,sdrsaturation,0.98"
# "DP-2, highres@highrr,760x0,1"
# ];
# };
# };
# programs.illogical-impulse.settings.simpleStarship.enable = true;
home.packages = [
];
}
+6
View File
@@ -0,0 +1,6 @@
{
imports = [
# ../../packages/moondeck-buddy/appimage.nix
../../packages/sunshine/default.nix
];
}
+19
View File
@@ -0,0 +1,19 @@
{
imports = [
../../packages/fish/home.nix
../../packages/kitty/home.nix
../../packages/neovim/home.nix
# ../../packages/starship/home.nix
../../packages/fastfetch/home.nix
../../packages/zsh/home.nix
../../packages/zoxide/home.nix
../../packages/fonts/home.nix
../../packages/git/home.nix
../../packages/btop/home.nix
../../packages/eza/home.nix
../../packages/cloudflared/home.nix
];
}
-7
View File
@@ -1,7 +0,0 @@
{...}: {
imports = [
../system/dev/tools.nix
../system/dev/python.nix
../system/dev/linux.nix
];
}
-6
View File
@@ -1,6 +0,0 @@
{...}: {
imports = [
../system/dev/tools.nix
../system/dev/python.nix
];
}
-13
View File
@@ -1,13 +0,0 @@
{...}: {
imports = [
../system/users.nix
../system/hardware.nix
../system/locale.nix
../system/network.nix
../system/programs.nix
../system/services.nix
../system/tty.nix
../system/firewall.nix
../system/boot.nix
];
}
-11
View File
@@ -1,11 +0,0 @@
{...}: {
imports = [
../packages/git/default.nix
../packages/fish/default.nix
../packages/kitty/default.nix
../packages/neovim/default.nix
../packages/starship/default.nix
../packages/fastfetch/default.nix
../packages/zsh/default.nix
];
}
+27
View File
@@ -0,0 +1,27 @@
{
"lanzaboote": {
"branch": "master",
"description": "Secure Boot for NixOS [maintainers=@blitz @raitobezarius @nikstur]",
"homepage": "",
"owner": "nix-community",
"repo": "lanzaboote",
"rev": "v0.4.2",
"sha256": "0xc1wawnb0297h5khxblmf9pd1fry950xkcm7mwlck19s2906h80",
"type": "tarball",
"url": "https://github.com/nix-community/lanzaboote/archive/v0.4.2.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz",
"version": "0.4.2"
},
"nixpkgs": {
"branch": "nixos-unstable",
"description": "Nix Packages collection",
"homepage": null,
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6c43a3495a11e261e5f41e5d7eda2d71dae1b2fe",
"sha256": "16f329z831bq7l3wn1dfvbkh95l2gcggdwn6rk3cisdmv2aa3189",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/6c43a3495a11e261e5f41e5d7eda2d71dae1b2fe.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}
}
+198
View File
@@ -0,0 +1,198 @@
# This file has been generated by Niv.
let
#
# The fetchers. fetch_<type> fetches specs of type <type>.
#
fetch_file = pkgs: name: spec:
let
name' = sanitizeName name + "-src";
in
if spec.builtin or true then
builtins_fetchurl { inherit (spec) url sha256; name = name'; }
else
pkgs.fetchurl { inherit (spec) url sha256; name = name'; };
fetch_tarball = pkgs: name: spec:
let
name' = sanitizeName name + "-src";
in
if spec.builtin or true then
builtins_fetchTarball { name = name'; inherit (spec) url sha256; }
else
pkgs.fetchzip { name = name'; inherit (spec) url sha256; };
fetch_git = name: spec:
let
ref =
spec.ref or (
if spec ? branch then "refs/heads/${spec.branch}" else
if spec ? tag then "refs/tags/${spec.tag}" else
abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"
);
submodules = spec.submodules or false;
submoduleArg =
let
nixSupportsSubmodules = builtins.compareVersions builtins.nixVersion "2.4" >= 0;
emptyArgWithWarning =
if submodules
then
builtins.trace
(
"The niv input \"${name}\" uses submodules "
+ "but your nix's (${builtins.nixVersion}) builtins.fetchGit "
+ "does not support them"
)
{ }
else { };
in
if nixSupportsSubmodules
then { inherit submodules; }
else emptyArgWithWarning;
in
builtins.fetchGit
({ url = spec.repo; inherit (spec) rev; inherit ref; } // submoduleArg);
fetch_local = spec: spec.path;
fetch_builtin-tarball = name: throw
''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`.
$ niv modify ${name} -a type=tarball -a builtin=true'';
fetch_builtin-url = name: throw
''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`.
$ niv modify ${name} -a type=file -a builtin=true'';
#
# Various helpers
#
# https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695
sanitizeName = name:
(
concatMapStrings (s: if builtins.isList s then "-" else s)
(
builtins.split "[^[:alnum:]+._?=-]+"
((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name)
)
);
# The set of packages used when specs are fetched using non-builtins.
mkPkgs = sources: system:
let
sourcesNixpkgs =
import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; };
hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath;
hasThisAsNixpkgsPath = <nixpkgs> == ./.;
in
if builtins.hasAttr "nixpkgs" sources
then sourcesNixpkgs
else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then
import <nixpkgs> { }
else
abort
''
Please specify either <nixpkgs> (through -I or NIX_PATH=nixpkgs=...) or
add a package called "nixpkgs" to your sources.json.
'';
# The actual fetching function.
fetch = pkgs: name: spec:
if ! builtins.hasAttr "type" spec then
abort "ERROR: niv spec ${name} does not have a 'type' attribute"
else if spec.type == "file" then fetch_file pkgs name spec
else if spec.type == "tarball" then fetch_tarball pkgs name spec
else if spec.type == "git" then fetch_git name spec
else if spec.type == "local" then fetch_local spec
else if spec.type == "builtin-tarball" then fetch_builtin-tarball name
else if spec.type == "builtin-url" then fetch_builtin-url name
else
abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}";
# If the environment variable NIV_OVERRIDE_${name} is set, then use
# the path directly as opposed to the fetched source.
replace = name: drv:
let
saneName = stringAsChars (c: if (builtins.match "[a-zA-Z0-9]" c) == null then "_" else c) name;
ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}";
in
if ersatz == "" then drv else
# this turns the string into an actual Nix path (for both absolute and
# relative paths)
if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}";
# Ports of functions for older nix versions
# a Nix version of mapAttrs if the built-in doesn't exist
mapAttrs = builtins.mapAttrs or (
f: set: with builtins;
listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set))
);
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
range = first: last: if first > last then [ ] else builtins.genList (n: first + n) (last - first + 1);
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257
stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1));
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
concatMapStrings = f: list: concatStrings (map f list);
concatStrings = builtins.concatStringsSep "";
# https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331
optionalAttrs = cond: as: if cond then as else { };
# fetchTarball version that is compatible between all the versions of Nix
builtins_fetchTarball = { url, name ? null, sha256 }@attrs:
let
inherit (builtins) lessThan nixVersion fetchTarball;
in
if lessThan nixVersion "1.12" then
fetchTarball ({ inherit url; } // (optionalAttrs (name != null) { inherit name; }))
else
fetchTarball attrs;
# fetchurl version that is compatible between all the versions of Nix
builtins_fetchurl = { url, name ? null, sha256 }@attrs:
let
inherit (builtins) lessThan nixVersion fetchurl;
in
if lessThan nixVersion "1.12" then
fetchurl ({ inherit url; } // (optionalAttrs (name != null) { inherit name; }))
else
fetchurl attrs;
# Create the final "sources" from the config
mkSources = config:
mapAttrs
(
name: spec:
if builtins.hasAttr "outPath" spec
then
abort
"The values in sources.json should not have an 'outPath' attribute"
else
spec // { outPath = replace name (fetch config.pkgs name spec); }
)
config.sources;
# The "config" used by the fetchers
mkConfig =
{ sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null
, sources ? if sourcesFile == null then { } else builtins.fromJSON (builtins.readFile sourcesFile)
, system ? builtins.currentSystem
, pkgs ? mkPkgs sources system
}: rec {
# The sources, i.e. the attribute set of spec name to spec
inherit sources;
# The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers
inherit pkgs;
};
in
mkSources (mkConfig { }) // { __functor = _: settings: mkSources (mkConfig settings); }
-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)
}
})
-3
View File
@@ -1,3 +0,0 @@
$background: #131318;
$foreground: #e4e1e9;
$primary: #bec2ff;
-21
View File
@@ -1,21 +0,0 @@
declare const SRC: string
declare module "inline:*" {
const content: string
export default content
}
declare module "*.scss" {
const content: string
export default content
}
declare module "*.blp" {
const content: string
export default content
}
declare module "*.css" {
const content: string
export default content
}
-6
View File
@@ -1,6 +0,0 @@
{
"name": "astal-shell",
"dependencies": {
"astal": "/home/biscuit/.local/share/ags"
}
}
-143
View File
@@ -1,143 +0,0 @@
@use "sass:color";
@use "./colors" as *;
// default
// $bg: #212223;
// $fg: #f1f1f1;
// $accent: #378DF7;
// $radius: 7px;
// Kanagawa Theme
// $bg: #1F1F28;
// $fg: #DCD7BA;
// $accent: #C0A36E;
// $radius: 7px;
// mstcl
// $bg: #121212;
// $fg: #f1f1f1;
// $accent: #C0A36E;
// $radius: 7px;
$bg: $background;
$fg: $foreground;
$accent: $primary;
$radius: 7px;
window.Bar {
border: none;
box-shadow: none;
background-color: $bg;
color: $fg;
font-size: 1.1em;
font-weight: bold;
font-family: "JetBrainsMono Nerd Font";
label {
margin: 0 8px;
}
.Workspaces {
button {
all: unset;
background-color: transparent;
&:hover label {
background-color: color.adjust($fg, $alpha: -0.84);
border-color: color.adjust($accent, $alpha: -0.8);
}
&:active label {
background-color: color.adjust($fg, $alpha: -0.8)
}
}
label {
transition: 200ms;
padding: 0 8px;
margin: 2px;
border-radius: $radius;
border: 1pt solid transparent;
}
.focused label {
color: $accent;
border-color: $accent;
}
}
.SysTray {
margin-right: 8px;
button {
padding: 0 4px;
}
}
.Time {
.TimeHM {
font-weight: bold;
color: $accent;
}
.TimeDate {
// color: color.adjust($fg, $lightness: -10%);
color: $fg;
opacity: 0.85;
font-weight: normal;
}
}
.FocusedClient {
color: color.adjust($fg, $lightness: -30%);
opacity: 0.7;
}
.Media .Cover {
min-height: 1.2em;
min-width: 1.2em;
border-radius: $radius;
background-position: center;
background-size: contain;
}
.Battery label {
padding-left: 0;
margin-left: 0;
}
.AudioSlider {
* {
all: unset;
}
icon {
margin-right: .6em;
}
& {
margin: 0 1em;
}
trough {
background-color: color.adjust($fg, $alpha: -0.8);
border-radius: $radius;
}
highlight {
background-color: $accent;
min-height: .8em;
border-radius: $radius;
}
slider {
background-color: $fg;
border-radius: $radius;
min-height: 1em;
min-width: 1em;
margin: -.2em;
}
}
}
-14
View File
@@ -1,14 +0,0 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"experimentalDecorators": true,
"strict": true,
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "Bundler",
// "checkJs": true,
// "allowJs": true,
"jsx": "react-jsx",
"jsxImportSource": "astal/gtk3",
}
}
-189
View File
@@ -1,189 +0,0 @@
import { App } from "astal/gtk3"
import { Variable, GLib, bind } from "astal"
import { Astal, Gtk, Gdk } from "astal/gtk3"
import Hyprland from "gi://AstalHyprland"
import Mpris from "gi://AstalMpris"
import Battery from "gi://AstalBattery"
import Wp from "gi://AstalWp"
import Network from "gi://AstalNetwork"
import Tray from "gi://AstalTray"
function SysTray() {
const tray = Tray.get_default()
return <box className="SysTray">
{bind(tray, "items").as(items => items.map(item => (
<menubutton
tooltipMarkup={bind(item, "tooltipMarkup")}
usePopover={false}
actionGroup={bind(item, "actionGroup").as(ag => ["dbusmenu", ag])}
menuModel={bind(item, "menuModel")}>
<icon gicon={bind(item, "gicon")} />
</menubutton>
)))}
</box>
}
function Wifi() {
const network = Network.get_default()
const wifi = bind(network, "wifi")
return <box visible={wifi.as(Boolean)}>
{wifi.as(wifi => wifi && (
<icon
tooltipText={bind(wifi, "ssid").as(String)}
className="Wifi"
icon={bind(wifi, "iconName")}
/>
))}
</box>
}
function AudioSlider() {
const speaker = Wp.get_default()?.audio.defaultSpeaker!
return <box className="AudioSlider" css="min-width: 140px">
<icon icon={bind(speaker, "volumeIcon")} />
<slider
hexpand
onDragged={({ value }) => speaker.volume = value}
value={bind(speaker, "volume")}
/>
</box>
}
function BatteryLevel() {
const bat = Battery.get_default()
return <box className="Battery"
visible={bind(bat, "isPresent")}>
<icon icon={bind(bat, "batteryIconName")} />
<label label={bind(bat, "percentage").as(p =>
`${Math.floor(p * 100)} %`
)} />
</box>
}
function Media() {
const mpris = Mpris.get_default()
return <box className="Media">
{bind(mpris, "players").as(ps => ps[0] ? (
<box>
<box
className="Cover"
valign={Gtk.Align.CENTER}
css={bind(ps[0], "coverArt").as(cover =>
`background-image: url('${cover}');`
)}
/>
<label
label={bind(ps[0], "metadata").as(() =>
`${ps[0].title} - ${ps[0].artist}`
)}
/>
</box>
) : (
<label label="Biscuit" />
))}
</box>
}
function Workspaces() {
const hypr = Hyprland.get_default();
return (
<box className="Workspaces">
{bind(hypr, "focusedWorkspace").as((fw) => {
if (!fw) return null;
// Determine the current chunk of 5 visible workspace buttons
const currentChunkStart = Math.floor((fw.id - 1) / 5) * 5 + 1;
const visibleIds = Array.from({ length: 5 }, (_, i) => currentChunkStart + i);
return visibleIds.map((id) => {
// Try to get the real workspace, fall back to a dummy one if it doesn't exist
const ws =
hypr.workspaces.find((w) => w.id === id) ??
Hyprland.Workspace.dummy(id, null);
return (
<button
className={fw.id === id ? "focused" : ""}
onClick={() => ws.focus()}
>
{id}
</button>
);
});
})}
</box>
);
}
function FocusedClient() {
const hypr = Hyprland.get_default();
const focused = bind(hypr, "focusedClient");
return (
<box className="FocusedClient" visible={focused.as(Boolean)}>
{focused.as(client => {
if (!client) return null;
return (
<label
label={bind(client, "title").as(title => {
return title.length > 40
? title.slice(0, 37) + "..."
: title;
})}
/>
);
})}
</box>
);
}
function Time({ format = "%H:%M|%a %b %d" }) {
const time = Variable<string>("").poll(1000, () =>
GLib.DateTime.new_now_local().format(format)!
);
return bind(time).as(str => {
const [hm, date] = str.split("|");
return (
<box className="Time">
<label className="TimeHM" label={hm} />
<label className="TimeDate" label={date} />
</box>
);
});
}
export default function Bar(monitor: Gdk.Monitor) {
const { TOP, LEFT, RIGHT } = Astal.WindowAnchor
return <window
className="Bar"
gdkmonitor={monitor}
exclusivity={Astal.Exclusivity.EXCLUSIVE}
anchor={TOP | LEFT | RIGHT}>
<centerbox>
<box hexpand halign={Gtk.Align.START}>
<Workspaces />
<FocusedClient />
</box>
<box>
<Time />
</box>
<box hexpand halign={Gtk.Align.END} >
<SysTray />
<Wifi />
<AudioSlider />
<BatteryLevel />
</box>
</centerbox>
</window>
}
-28
View File
@@ -1,28 +0,0 @@
{
inputs,
pkgs,
system,
...
}: {
imports = [inputs.ags.homeManagerModules.default];
programs.ags = {
enable = true;
configDir = ./biscuit;
extraPackages = let
agsPkgs = inputs.ags.packages.${system};
in
with pkgs; [
agsPkgs.battery
agsPkgs.hyprland
agsPkgs.mpris
agsPkgs.wireplumber
agsPkgs.notifd
agsPkgs.apps
agsPkgs.network
agsPkgs.tray
fzf
];
};
}
+5
View File
@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
bibata-cursors
];
}
+9
View File
@@ -0,0 +1,9 @@
{
programs.btop = {
enable = true;
settings = {
vim_keys = true;
theme_background = false;
};
};
}
+5
View File
@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
cloudflared
];
}
+12
View File
@@ -0,0 +1,12 @@
{pkgs, ...}: {
programs.eza = {
enable = true;
git = true;
colors = "auto";
icons = "auto";
enableZshIntegration = true;
enableFishIntegration = true;
enableBashIntegration = true;
};
}
+113
View File
@@ -0,0 +1,113 @@
{
programs.firefox = {
enable = true;
languagePacks = [
"en-US"
];
profiles = {
hakase = {
search.force = true;
isDefault = true;
search.default = "ddg";
settings = {
"browser.contentblocking.category" = "strict";
"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;
"browser.startup.homepage" = "https://dash.sakamoto.dev";
"browser.newtabpage.pinned" = [
{
title = "Dashboard";
url = "https://dash.sakamoto.dev";
}
];
};
bookmarks = {
force = true;
settings = [
{
toolbar = true;
bookmarks = [
{
name = "Home Manager";
url = "https://mynixos.com/home-manager/options/programs";
}
{
name = "YouTube";
url = "https://youtube.com";
}
];
}
];
};
};
};
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
/*
---- EXTENSIONS ----
*/
# Check about:support for extension/add-on ID strings.
# Valid strings for installation_mode are "allowed", "blocked",
# "force_installed" and "normal_installed".
ExtensionSettings = {
"*".installation_mode = "allowed";
"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/file/4493940/bitwarden_password_manager-2025.5.0.xpi";
installation_mode = "force_installed";
};
"tridactyl.vim@cmcaine.co.uk" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/4405615/tridactyl_vim-1.24.2.xpi";
installation_mode = "force_installed";
};
# Privacy Badger:
# "jid1-MnnxcxisBPnSXQ@jetpack" = {
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
# installation_mode = "force_installed";
# };
# 1Password:
# "{d634138d-c276-4fc8-924b-40a0ea21d284}" = {
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/1password-x-password-manager/latest.xpi";
# installation_mode = "force_installed";
# };
};
};
};
}
@@ -3,7 +3,6 @@
myConfig, myConfig,
... ...
}: { }: {
programs.zoxide.enable = true;
programs.fish = { programs.fish = {
enable = true; enable = true;
interactiveShellInit = '' interactiveShellInit = ''
@@ -12,7 +11,7 @@
zoxide init fish | source zoxide init fish | source
''; '';
shellAliases = myConfig.general.terminal.Aliases; shellAliases = myConfig.general.Terminal.aliases;
plugins = with pkgs.fishPlugins; [ plugins = with pkgs.fishPlugins; [
]; ];
+8
View File
@@ -0,0 +1,8 @@
{pkgs, ...}: {
fonts = {
fontconfig.enable = true;
};
home.packages = with pkgs; [
nerd-fonts.jetbrains-mono
];
}
-10
View File
@@ -1,10 +0,0 @@
{myConfig, ...}: {
programs.git = {
enable = true;
extraConfig = {
user.name = "${myConfig.general.gitProfile.User}";
user.email = "${myConfig.general.gitProfile.Email}";
init.defaultBranch = "${myConfig.general.gitProfile.defaultBranch}";
};
};
}
+10
View File
@@ -0,0 +1,10 @@
{myConfig, ...}: {
programs.git = {
enable = true;
extraConfig = {
user.name = "${myConfig.nixos.Git.user}";
user.email = "${myConfig.nixos.Git.email}";
init.defaultBranch = "${myConfig.nixos.Git.defaultBranch}";
};
};
}
-38
View File
@@ -1,38 +0,0 @@
{...}: {
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
after_sleep_cmd = "hyprctl dispatch dpms on && agu"; # avoid needing to press a key twice to turn on the display.
};
listener = [
{
timeout = 150;
on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
on-resume = "brightnessctl -r"; # restore monitor backlight.
}
{
timeout = 150;
on-timeout = "brightnessctl -sd rgb:kbd_backlight set 0"; # turn off keyboard backlight.
on-resume = "brightnessctl -rd rgb:kbd_backlight"; # turn on keyboard backlight.
}
{
timeout = 300;
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed.
}
{
timeout = 330;
on-timeout = "hyprctl dispatch dpms off"; # screen off after 5.5min.
on-resume = "hyprctl dispatch dpms on && brightnessctl -r"; # screen on and restore brightness on resume.
}
{
timeout = 500;
on-timeout = "systemctl suspend"; # suspend PC after 30min.
}
];
};
};
}
+38
View File
@@ -0,0 +1,38 @@
{...}: {
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
after_sleep_cmd = "hyprctl dispatch dpms on && agu"; # avoid needing to press a key twice to turn on the display.
};
listener = [
# {
# timeout = 150;
# on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
# on-resume = "brightnessctl -r"; # restore monitor backlight.
# }
# {
# timeout = 150;
# on-timeout = "brightnessctl -sd rgb:kbd_backlight set 0"; # turn off keyboard backlight.
# on-resume = "brightnessctl -rd rgb:kbd_backlight"; # turn on keyboard backlight.
# }
# {
# timeout = 300;
# on-timeout = "loginctl lock-session"; # lock screen when timeout has passed.
# }
# {
# timeout = 330;
# on-timeout = "hyprctl dispatch dpms off"; # screen off after 5.5min.
# on-resume = "hyprctl dispatch dpms on && brightnessctl -r"; # screen on and restore brightness on resume.
# }
{
timeout = 500;
on-timeout = "systemctl suspend"; # suspend PC after 30min.
}
];
};
};
}
+42
View File
@@ -0,0 +1,42 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
animations = {
enabled = true;
bezier = [
"linear, 0, 0, 1, 1"
"md3_standard, 0.2, 0, 0, 1"
"md3_decel, 0.05, 0.7, 0.1, 1"
"md3_accel, 0.3, 0, 0.8, 0.15"
"overshot, 0.05, 0.9, 0.1, 1.1"
"crazyshot, 0.1, 1.5, 0.76, 0.92"
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
"menu_decel, 0.1, 1, 0, 1"
"menu_accel, 0.38, 0.04, 1, 0.07"
"easeInOutCirc, 0.85, 0, 0.15, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutExpo, 0.16, 1, 0.3, 1"
"softAcDecel, 0.26, 0.26, 0.15, 1"
"md2, 0.4, 0, 0.2, 1"
];
animation = [
"windows, 1, 3, md3_decel, popin 60%"
"windowsIn, 1, 3, md3_decel, popin 60%"
"windowsOut, 1, 3, md3_accel, popin 60%"
"border, 1, 10, default"
"fade, 1, 3, md3_decel"
"layersIn, 1, 3, menu_decel, slide"
"layersOut, 1, 1.6, menu_accel"
"fadeLayersIn, 1, 2, menu_decel"
"fadeLayersOut, 1, 0.5, menu_accel"
"workspaces, 1, 7, menu_decel, slide"
"specialWorkspace, 1, 3, md3_decel, slidevert"
];
};
};
}
+300
View File
@@ -0,0 +1,300 @@
{
config,
pkgs,
...
}: {
wayland.windowManager.hyprland.settings = {
exec = [
"hyprctl dispatch submap global"
];
submap = [
"global"
];
# Shell keybinds
bindi = [
"$mod, Super_L, global, caelestia:launcher" # bind to `bind` because `bindi` maps to it
# Launcher
];
bindin =
[
"$mod, catchall, global, caelestia:launcherInterrupt"
"$mod, mouse:272, global, caelestia:launcherInterrupt"
"$mod, mouse:273, global, caelestia:launcherInterrupt"
"$mod, mouse:274, global, caelestia:launcherInterrupt"
"$mod, mouse:275, global, caelestia:launcherInterrupt"
"$mod, mouse:276, global, caelestia:launcherInterrupt"
"$mod, mouse:277, global, caelestia:launcherInterrupt"
"$mod, mouse_up, global, caelestia:launcherInterrupt"
"$mod, mouse_down, global, caelestia:launcherInterrupt"
"$mod, K, global, caelestia:launcherInterrupt"
"$mod, H, global, caelestia:launcherInterrupt"
"$mod, J, global, caelestia:launcherInterrupt"
"$mod, L, global, caelestia:launcherInterrupt"
"$mod, S, global, caelestia:launcherInterrupt"
"$mod, G, global, caelestia:launcherInterrupt"
"$mod, T, global, caelestia:launcherInterrupt"
"$mod, D, global, caelestia:launcherInterrupt"
"$mod, Escape, global, caelestia:launcherInterrupt"
"$mod, PERIOD, global, caelestia:launcherInterrupt"
"$mod, SPACE, global, caelestia:launcherInterrupt"
"$mod, E, global, caelestia:launcherInterrupt"
"$mod, V, global, caelestia:launcherInterrupt"
"$mod, W, global, caelestia:launcherInterrupt"
"$mod, Q, global, caelestia:launcherInterrupt"
"$mod, C, global, caelestia:launcherInterrupt"
"$mod, Return, global, caelestia:launcherInterrupt"
]
++ (
# Go to workspace group #
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"$mod, ${toString ws}, global, caelestia:launcherInterrupt"
]
)
9)
)
++ [
"$mod, 0, global, caelestia:launcherInterrupt"
];
bind =
[
# Misc
"Control+Alt, Delete, exec, caelestia:session"
"$mod ALT, A, global, caelestia:showall"
"$mod ALT, L, global, caelestia:lock"
"$mod, SPACE, exec, rofi -show drun"
# Restore lock - these are `bindl` in your original, but `exec` should be fine here.
# However, `bindl` is typically for a *release* event. If `caelestia shell -d` is a daemon,
# and `caelestia:lock` is a quickshell internal, you might need to reconsider.
# For direct translation, they go into `bindl` list.
# Media - handled by bindl below
# Apps
"$mod, Return, exec, app2unit -- kitty"
"$mod, W, exec, app2unit -- firefox"
"$mod, E, exec, app2unit -- thunar"
"$mod, Q, killactive"
"$mod ALT, E, exec, app2unit -- nemo"
"Control+Alt, Escape, exec, app2unit -- qps"
"Control+Alt, V, exec, app2unit -- pavucontrol"
# Utilities
"$mod SHIFT, S, global, caelestia:screenshotFreeze"
"$mod SHIFT ALT, S, global, caelestia:screenshot"
"$mod ALT, R, exec, caelestia record -s"
"Control+Alt, R, exec, caelestia record"
"$mod SHIFT ALT, R, exec, caelestia record -r"
"$mod SHIFT, C, exec, hyprpicker -a" # Colour picker
# Sleep
"$mod SHIFT, PRINT, exec, systemctl suspend-then-hibernate"
# Clipboard and emoji picker
"$mod, V, exec, pkill fuzzel || caelestia clipboard"
"$mod ALT, V, exec, pkill fuzzel || caelestia clipboard -d"
"$mod, Period, exec, pkill fuzzel || caelestia emoji -p"
# Testing
# This is a `bindl` (key release), so move it to `bindl` list below.
# Window actions
"$mod, H, movefocus, l"
"$mod, L, movefocus, r"
"$mod, K, movefocus, u"
"$mod, J, movefocus, d"
"$mod SHIFT, H, movewindow, l"
"$mod SHIFT, L, movewindow, r"
"$mod SHIFT, K, movewindow, u"
"$mod SHIFT, J, movewindow, d"
"$mod CTRL, Backslash, centerwindow, 1"
"$mod CTRL ALT, Backslash, resizeactive, exact 55% 70%"
"$mod CTRL ALT, Backslash, centerwindow, 1"
"$mod ALT, Backslash, exec, caelestia pip"
"$mod, P, pin"
"$mod, F, fullscreen, 0"
"$mod ALT, F, fullscreen, 1"
# Special workspace toggles
"Control+Shift, Escape, exec, caelestia toggle sysmon"
"$mod, Escape, exec, caelestia toggle sysmon"
"$mod, M, exec, caelestia toggle music"
"$mod, D, exec, caelestia toggle communication"
"$mod, R, exec, caelestia toggle todo"
"$mod, G, togglespecialworkspace, gaming"
"$mod SHIFT, G, movetoworkspace, special:gaming"
"$mod, T, exec, caelestia toggle steam"
# "$mod, T, togglespecialworkspace, special:steam"
# "$mod SHIFT, T, movetoworkspace, special:steam"
# Toggle special workspace
"$mod, S, exec, caelestia toggle specialws"
# Window groups
"$mod, Comma, togglegroup"
"$mod SHIFT, Comma, lockactivegroup, toggle"
# Go to workspace -1/+1 (mouse binds are `bind` for mouse-wheel)
"$mod, mouse_down, workspace, -1"
"$mod, mouse_up, workspace, +1"
# Move window to workspace -1/+1
"$mod ALT, mouse_down, movetoworkspace, -1"
"$mod ALT, mouse_up, movetoworkspace, +1"
# Move window to/from special workspace
"$mod CTRL SHIFT, up, movetoworkspace, special:special"
"$mod CTRL SHIFT, down, movetoworkspace, e+0"
"$mod ALT, S, movetoworkspace, special:special"
]
++ (
# Go to workspace #
let
wsaction = "~/.config/hypr/scripts/wsaction.fish";
in
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"$mod, ${toString ws}, exec, ${wsaction} workspace ${toString ws}"
]
)
9) # For workspaces 1-9
)
++ [
# "$mod, 0, exec, ${config.wayland.windowManager.hyprland.settings.workspaceRule."0".exec} workspace 10" # Workaround for workspace 0
# Re-adding `wsaction` since it's used here.
"$mod, 0, exec, ~/.config/hypr/scripts/wsaction.fish workspace 10"
]
++ (
# Go to workspace group #
let
wsaction = "~/.config/hypr/scripts/wsaction.fish";
in
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"Control+$mod, ${toString ws}, exec, ${wsaction} -g workspace ${toString ws}"
]
)
9)
)
++ [
"Control+$mod, 0, exec, ~/.config/hypr/scripts/wsaction.fish -g workspace 10"
]
++ (
# Move window to workspace #
let
wsaction = "~/.config/hypr/scripts/wsaction.fish";
in
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"$mod SHIFT, ${toString ws}, exec, ${wsaction} movetoworkspace ${toString ws}"
]
)
9)
)
++ [
"$mod SHIFT, 0, exec, ~/.config/hypr/scripts/wsaction.fish movetoworkspace 10"
]
++ (
# Move window to workspace group #
let
wsaction = "~/.config/hypr/scripts/wsaction.fish";
in
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"Control+$mod ALT, ${toString ws}, exec, ${wsaction} -g movetoworkspace ${toString ws}"
]
)
9)
)
++ [
"Control+$mod ALT, 0, exec, ~/.config/hypr/scripts/wsaction.fish -g movetoworkspace 10"
];
binde = [
"$mod, Minus, splitratio, -0.1"
"$mod, Equal, splitratio, 0.1"
"Control+$mod, left, workspace, -1"
"$mod, Page_Up, workspace, -1"
"Control+$mod, right, workspace, +1"
"$mod, Page_Down, workspace, +1"
"$mod ALT, Page_Up, movetoworkspace, -1"
"$mod ALT, Page_Down, movetoworkspace, +1"
"Control+$mod SHIFT, right, movetoworkspace, +1"
"Control+$mod SHIFT, left, movetoworkspace, -1"
"Alt, Tab, cyclenext, activewindow" # `binde` for cycle next
"Control+Alt, Tab, changegroupactive, f" # `binde` for change group active
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, Z, movewindow"
"$mod, mouse:273, resizewindow"
"$mod, X, resizewindow"
];
bindl = [
# Restore lock
"$mod ALT, L, exec, caelestia shell -d"
"$mod ALT, L, global, caelestia:lock" # This is a Hyprland `global` command, not an `exec`
# Brightness
", XF86MonBrightnessUp, global, caelestia:brightnessUp"
", XF86MonBrightnessDown, global, caelestia:brightnessDown"
# Media
"Control+$mod, Space, global, caelestia:mediaToggle"
", XF86AudioPlay, global, caelestia:mediaToggle"
", XF86AudioPause, global, caelestia:mediaToggle"
"Control+$mod, Equal, global, caelestia:mediaNext"
", XF86AudioNext, global, caelestia:mediaNext"
"Control+$mod, Minus, global, caelestia:mediaPrev"
", XF86AudioPrev, global, caelestia:mediaPrev"
", XF86AudioStop, global, caelestia:mediaStop"
# Utilities (screenshot is `bindl` in your original)
", Print, exec, caelestia screenshot" # Full screen capture > clipboard
# Volume
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
"$mod SHIFT, M, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
# Clipboard and emoji picker (alternate paste is `bindl`)
"Control+Shift+Alt, V, exec, sleep 0.5s && ydotool type -d 1 \"$(cliphist list | head -1 | cliphist decode)\""
# Testing
"$mod ALT, f12, exec, notify-send -u low -i dialog-information-symbolic 'Test notification' \"Here's a really long message to test truncation and wrapping\\nYou can middle click or flick this notification to dismiss it!\" -a 'Shell' -A \"Test1=I got it!\" -A \"Test2=Another action\""
];
bindel = [
# Volume
", XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 10%+"
", XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 10%-"
];
bindr = [
# Kill/restart
"Control+$mod SHIFT, R, exec, qs -c caelestia kill"
"Control+$mod ALT, R, exec, qs -c caelestia kill; caelestia shell -d"
];
};
}
+27
View File
@@ -0,0 +1,27 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
exec = [
"cp -L --no-preserve=mode --update=none ~/.config/hypr/scheme/default.conf ~/.config/hypr/scheme/current.conf"
];
source = [
"~/.config/hypr/scheme/current.conf"
];
group = {
groupbar = {
"text_color" = "rgb($onPrimary)";
"col.active" = "rgba($primaryd4)";
"col.inactive" = "rgba($outlined4)";
"col.locked_active" = "rgba($primaryd4)";
"col.locked_inactive" = "rgba($secondaryd4)";
};
};
misc = {
background_color = "rgb($surfaceVariant)";
};
};
}
+33
View File
@@ -0,0 +1,33 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
decoration = {
rounding = 10;
rounding_power = 2;
active_opacity = 1.0;
inactive_opacity = 1.0;
dim_inactive = true;
dim_strength = 0.1;
dim_special = 0.8;
shadow = {
enabled = true;
range = 4;
render_power = 3;
color = "rgba(1a1a1aee)";
};
blur = {
enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696;
};
};
};
}
+31
View File
@@ -0,0 +1,31 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
env = [
"HYPRCURSOR_THEME, Bibata-Original-Classic"
"HYPRCURSOR_SIZE, 24"
"QT_QPA_PLATFORMTHEME, qt5ct"
"QT_WAYLAND_DISABLE_WINDOWDECORATION, 1"
"QT_AUTO_SCREEN_SCALE_FACTOR, 1"
"XCURSOR_THEME, sweet-rainbow"
"XCURSOR_SIZE, 24"
"GDK_BACKEND, wayland,x11"
"QT_QPA_PLATFORM, wayland;xcb"
"SDL_VIDEODRIVER, wayland,x11"
"CLUTTER_BACKEND, wayland"
"ELECTRON_OZONE_PLATFORM_HINT, auto"
"XDG_CURRENT_DESKTOP, Hyprland"
"XDG_SESSION_TYPE, wayland"
"XDG_SESSION_DESKTOP, Hyprland"
"_JAVA_AWT_WM_NONREPARENTING, 1"
];
};
}
+27
View File
@@ -0,0 +1,27 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
exec-once = [
# "[workspace special:communication silent] discord"
"[workspace special:steam silent] steam"
"[workspace special:preload silent] kitty --single-instance --hold fastfetch"
"[workspace special:preload silent] firefox"
"[workspace 1] kitty --single-instance --hold -e fish -C fastfetch"
"hyprctl setcursor Bibata-Modern-Ice 24"
"solaar -w hide"
# "sunshine"
# "moondeck-buddy"
"wl-paste --type text --watch cliphist store"
"wl-paste --type image --watch cliphist store"
"sleep 3 && caelestia shell"
];
};
}
+128
View File
@@ -0,0 +1,128 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
# ######## Window rules ########
windowrule = [
"opaque, class:foot|equibop"
"center 1, floating:1, xwayland:0"
# Float
"float, class:guifetch"
"float, class:yad"
"float, class:zenity"
"float, class:wev"
"float, class:org\\.gnome\\.FileRoller" # Escaped backslash
"float, class:file-roller"
"float, class:blueman-manager"
"float, class:com\\.github\\.GradienceTeam\\.Gradience" # Escaped backslash
"float, class:feh"
"float, class:imv"
"float, class:system-config-printer"
"float, class:quickshell"
# Float, resize and center
"float, class:foot, title:nmtui"
"size 60% 70%, class:foot, title:nmtui"
"center 1, class:foot, title:nmtui"
"float, class:org\\.gnome\\.Settings"
"size 70% 80%, class:org\\.gnome\\.Settings"
"center 1, class:org\\.gnome\\.Settings"
"float, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser"
"size 60% 70%, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser"
"center 1, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser"
"float, class:nwg-look"
"size 50% 60%, class:nwg-look"
"center 1, class:nwg-look"
# Special workspaces
"workspace special:sysmon, class:btop"
"workspace special:music, class:feishin|Spotify|Supersonic"
"workspace special:music, initialTitle:Spotify( Free)?"
"workspace special:communication, class:discord|equibop|vesktop|whatsapp"
"workspace special:todo, class:Todoist"
"noinitialfocus, class:discord"
"focusonactivate 0, class:discord"
# Always full screen
# "fullscreen, title:^(Steam Big Picture Mode)$"
# "fullscreen, title:^(steam_app_.*)$"
# Dialogs
"float, title:(Select|Open)( a)? (File|Folder)(s)?"
"float, title:File (Operation|Upload)( Progress)?"
"float, title:.* Properties"
"float, title:Export Image as PNG"
"float, title:GIMP Crash Debug"
"float, title:Save As"
"float, title:Library"
# Picture in picture (resize and move done via script)
"move 100%-w-2% 100%-w-3%, title:Picture(-| )in(-| )[Pp]icture"
"keepaspectratio, title:Picture(-| )in(-| )[Pp]icture"
"float, title:Picture(-| )in(-| )[Pp]icture"
"pin, title:Picture(-| )in(-| )[Pp]icture"
# Steam
"workspace special:steam, class:steam"
"workspace special:gaming, class:^(steam_app_.*)$"
"rounding 10, title:, class:steam"
"float, title:Friends List, class:steam"
"immediate, class:steam_app_[0-9]+"
"idleinhibit always, class:steam_app_[0-9]+"
# ATLauncher console
"float, class:com-atlauncher-App, title:ATLauncher Console"
# Autodesk Fusion 360
"noblur, title:Fusion360|(Marking Menu), class:fusion360\\.exe" # Escaped backslash
# Ugh xwayland popups
"nodim, xwayland:1, title:win[0-9]+"
"noshadow, xwayland:1, title:win[0-9]+"
"rounding 10, xwayland:1, title:win[0-9]+"
];
# ######## Workspace rules ########
workspace = [
"w[tv1]s[false], gapsout:20, gapsin:20"
"f[1]s[false], gapsout:20, gapsin:20"
"1, monitor:DP-2, default:true"
"2, monitor:DP-2"
"3, monitor:DP-2"
"4, monitor:DP-1"
"5, monitor:DP-1"
"6, monitor:DP-1"
"special:gaming, monitor:DP-2, persistent:true"
"special:steam, monitor:DP-2, persistent:true, on-created-empty:steam"
];
# ######## Layer rules ########
layerrule = [
"animation fade, hyprpicker"
"animation fade, logout_dialog"
"animation fade, selection"
"animation fade, wayfreeze"
# Fuzzel
"animation popin 80%, launcher"
"blur, launcher"
# Shell
"noanim, caelestia-(launcher|osd|notifications|border-exclusion|area-picker)"
"animation fade, caelestia-(drawers|background)"
"order 1, caelestia-border-exclusion"
"order 2, caelestia-bar"
# The commented out lines below need to remain commented if you don't want them active
#"xray 1, caelestia-(border|launcher|bar|sidebar|navbar|mediadisplay|screencorners)"
#"blur, caelestia-.*"
#"blurpopups, caelestia-.*"
#"ignorealpha 0.57, caelestia-.*"
];
};
}
+10 -218
View File
@@ -1,221 +1,13 @@
{myConfig, ...}: {
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
settings = {
"$mod" = "SUPER";
"$term" = "kitty --single-instance";
"$browser" = "firefox";
monitor = myConfig.linux.hyprconf.Monitor;
exec-once = [
"[workspace 20 silent] kitty --single-insance --hold fastfetch"
"[workspace 20 silent] firefox"
"[workspace 1] kitty --single-instance --hold fastfetch"
"pkill gjs & ags run"
"matugen image /home/${myConfig.general.Username}/.config/nixos/assets/wallpapers/ultrawide-nixos-default.png"
"hyprctl setcursor Bibata-Original-Classic 24"
"solaar -w hide"
];
general = {
gaps_in = 2;
gaps_out = 5;
border_size = 2;
# col.active_border = "#0DB7D4FF";
# col.inactive_border = "#31313600";
# col = {
# "inactive_border" = "rgba(595959aa)";
# "active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
# };
resize_on_border = false;
allow_tearing = false;
layout = "dwindle";
};
decoration = {
rounding = 0;
rounding_power = 2;
active_opacity = 1.0;
inactive_opacity = 1.0;
dim_inactive = true;
dim_strength = 0.1;
dim_special = 0.8;
shadow = {
enabled = true;
range = 4;
render_power = 3;
color = "rgba(1a1a1aee)";
};
blur = {
enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696;
};
};
animations = {
enabled = true;
bezier = [
"linear, 0, 0, 1, 1"
"md3_standard, 0.2, 0, 0, 1"
"md3_decel, 0.05, 0.7, 0.1, 1"
"md3_accel, 0.3, 0, 0.8, 0.15"
"overshot, 0.05, 0.9, 0.1, 1.1"
"crazyshot, 0.1, 1.5, 0.76, 0.92"
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
"menu_decel, 0.1, 1, 0, 1"
"menu_accel, 0.38, 0.04, 1, 0.07"
"easeInOutCirc, 0.85, 0, 0.15, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutExpo, 0.16, 1, 0.3, 1"
"softAcDecel, 0.26, 0.26, 0.15, 1"
"md2, 0.4, 0, 0.2, 1"
];
animation = [
"windows, 1, 3, md3_decel, popin 60%"
"windowsIn, 1, 3, md3_decel, popin 60%"
"windowsOut, 1, 3, md3_accel, popin 60%"
"border, 1, 10, default"
"fade, 1, 3, md3_decel"
"layersIn, 1, 3, menu_decel, slide"
"layersOut, 1, 1.6, menu_accel"
"fadeLayersIn, 1, 2, menu_decel"
"fadeLayersOut, 1, 0.5, menu_accel"
"workspaces, 1, 7, menu_decel, slide"
"specialWorkspace, 1, 3, md3_decel, slidevert"
];
};
dwindle = {
pseudotile = true;
preserve_split = true;
};
master = {
new_status = "master";
};
misc = {
force_default_wallpaper = -1;
disable_hyprland_logo = true;
};
input = {
kb_layout = "us";
follow_mouse = 1;
sensitivity = 0;
force_no_accel = true;
repeat_delay = 250;
repeat_rate = 35;
touchpad = {
natural_scroll = false;
};
numlock_by_default = true;
};
gestures = {
workspace_swipe = false;
};
binds = {
workspace_back_and_forth = true;
scroll_event_delay = 0;
};
device = [
{ {
name = "epic-mouse-v1"; pkgs,
sensitivity = -0.5; inputs,
} myConfig,
]; lib,
...
bind = }: {
[ programs.hyprland = {
"$mod, Return, exec, $term" enable = true;
"$mod, Q, killactive," package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
"$mod, M, exit," portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
"$mod, E, exec, $fileManager"
"$mod, V, togglefloating,"
"$mod, R, exec, $menu"
"$mod, P, pseudo,"
"$mod, B, togglesplit,"
"$mod, W, exec, $browser"
"$mod, H, movefocus, l"
"$mod, L, movefocus, r"
"$mod, K, movefocus, u"
"$mod, J, movefocus, d"
"$mod SHIFT, K, movewindow, u"
"$mod SHIFT, J, movewindow, d"
"$mod SHIFT, H, movewindow, l"
"$mod SHIFT, L, movewindow, r"
"$mod CTRL, K, resizeactive, 0 -50"
"$mod CTRL, J, resizeactive, 0 50"
"$mod CTRL, H, resizeactive, -50 0"
"$mod CTRL, L, resizeactive, 50 0"
"$mod, S, togglespecialworkspace, magic"
"$mod SHIFT, S, movetoworkspace, special:magic"
"$mod, mouse_down, workspace, e+1"
"$mod, mouse_up, workspace, e-1"
"$mod, F, fullscreen, 0"
"$mod, Space, exec, pkill rofi || rofi -show drun"
"$mod, C, exec, pkill rofi || rofi -show calc -modi calc -no-show-match -no-sort"
]
++ (
# workspaces
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"$mod, ${toString ws}, workspace, ${toString ws}"
"$mod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}"
]
)
9)
)
++ [
"$mod, 0, workspace, 10"
"$mod, 0, movetoworkspace, 10"
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
bindel = [
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
",XF86MonBrightnessUp, exec, brightnessctl s 10%+"
",XF86MonBrightnessDown, exec, brightnessctl s 10%-"
];
bindl = [
",XF86AudioNext, exec, playerctl next"
",XF86AudioPause, exec, playerctl play-pause"
",XF86AudioPlay, exec, playerctl play-pause"
",XF86AudioPrev, exec, playerctl previous"
];
env = [
"HYPRCURSOR_THEME, Bibata-Original-Classic"
"HYPRCURSOR_SIZE, 24"
];
};
}; };
} }
+86
View File
@@ -0,0 +1,86 @@
{
myConfig,
pkgs,
...
}: {
imports = [
./config/binds.nix
./config/execs.nix
./config/rules.nix
./config/animation.nix
./config/decoration.nix
./config/env.nix
./config/colours.nix
];
home.file.".config/hypr/scripts/wsaction.fish" = {
source = builtins.toPath ./scripts/wsaction.fish;
executable = true;
};
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
systemd.enable = true;
settings = {
"$mod" = "SUPER";
"$term" = "kitty --single-instance";
"$browser" = "firefox";
"$wsaction" = "fish -c ./scripts/wsaction.fish";
"$widget" = "qs -c caelestia";
monitor = myConfig.nixos.Hyprland.monitors;
general = {
gaps_in = 2;
gaps_out = 5;
border_size = 2;
# col.active_border = "#0DB7D4FF";
# col.inactive_border = "#31313600";
# col = {
# "inactive_border" = "rgba(595959aa)";
# "active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
# };
resize_on_border = false;
allow_tearing = false;
layout = "dwindle";
};
dwindle = {
pseudotile = true;
preserve_split = true;
};
master = {
new_status = "master";
};
misc = {
force_default_wallpaper = -1;
disable_hyprland_logo = true;
};
input = {
kb_layout = "us";
follow_mouse = 1;
sensitivity = 0;
force_no_accel = true;
repeat_delay = 250;
repeat_rate = 35;
touchpad = {
natural_scroll = false;
};
numlock_by_default = true;
};
gestures = {
workspace_swipe = false;
};
binds = {
workspace_back_and_forth = true;
scroll_event_delay = 0;
};
};
};
}
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env fish
if test "$argv[1]" = '-g'
set group
set -e $argv[1]
end
if test (count $argv) -ne 2
echo 'Wrong number of arguments. Usage: ./wsaction.fish [-g] <dispatcher> <workspace>'
exit 1
end
set -l active_ws (hyprctl activeworkspace -j | jq -r '.id')
if set -q group
# Move to group
hyprctl dispatch $argv[1] (math "($argv[2] - 1) * 10 + $active_ws % 10")
else
# Move to ws in group
hyprctl dispatch $argv[1] (math "floor(($active_ws - 1) / 10) * 10 + $argv[2]")
end
+8
View File
@@ -0,0 +1,8 @@
{pkgs, ...}: {
# home.packages = with pkgs; [
# hyprsunset
# ];
services.hyprsunset = {
enable = true;
};
}
@@ -1,17 +1,23 @@
{myConfig, ...}: { {
myConfig,
pkgs,
...
}: {
programs.kitty = { programs.kitty = {
enable = true; enable = true;
themeFile = "kanagawa"; # themeFile = "kanagawa";
themeFile = "Catppuccin-Mocha";
settings = { settings = {
confirm_os_window_close = 0; confirm_os_window_close = 0;
window_padding_width = 10; window_padding_width = 10;
font_size = myConfig.general.terminal.Size; font_size = myConfig.general.Terminal.size;
font_family = myConfig.general.terminal.Font; font_family = myConfig.general.Terminal.font;
bold_font = "auto"; bold_font = "auto";
italic_font = "auto"; italic_font = "auto";
bold_italic_font = "auto"; bold_italic_font = "auto";
shell = "${pkgs.${myConfig.general.Terminal.shell}}/bin/${myConfig.general.Terminal.shell}";
# optimization # optimization
input_delay = 0; input_delay = 0;
@@ -20,6 +26,6 @@
wayland_enable_ime = false; wayland_enable_ime = false;
allow_remote_control = true; allow_remote_control = true;
}; };
extraConfig = "include colors.conf"; # extraConfig = "include colors.conf";
}; };
} }
+50
View File
@@ -0,0 +1,50 @@
{
config,
lib,
pkgs,
...
}: let
inherit (lib) mkEnableOption mkOption mkIf;
this = config.custom.lact;
configFile =
pkgs.runCommand "lact-config.yaml" {
json = pkgs.writers.writeJSON "lact-config.json" this.settings;
} ''
# Merge with the defaults
${lib.getExe pkgs.yq} -s '.[0] * .[1]' $json ${./lact-default-config.yaml} > config.json
# Convert keys to numeric values where possible. It depends on this for some reason.
${lib.getExe pkgs.yj} -jy -k < config.json > $out
'';
in {
options.custom.lact = {
enable = mkEnableOption "my LACT module";
settings = mkOption {
default = {};
type = lib.types.submodule {
freeformType = (pkgs.formats.yaml {}).type;
};
description = ''
Settings for LACT. Settings are merged with the defaults.
The easiest method of acquiring the settings is to delete
`/etc/lact/config.yaml`, enter your settings and look at the file.
'';
};
};
config = mkIf this.enable {
systemd.packages = with pkgs; [
lact
];
systemd.services.lactd.wantedBy = ["multi-user.target"];
environment.etc."lact/config.yaml" = mkIf (this.settings != {}) {
source = configFile;
};
systemd.services.lactd = {
# Restart if config changed
restartTriggers = mkIf (this.settings != {}) [configFile];
};
};
}
+8
View File
@@ -0,0 +1,8 @@
daemon:
log_level: info
admin_groups:
- wheel
- sudo
disable_clocks_cleanup: false
apply_settings_timer: 5
gpus: {}
+5
View File
@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
lutris
];
}
-23
View File
@@ -1,23 +0,0 @@
{...}: {
programs.mangohud = {
enable = true;
enableSessionWide = true;
settings = {
toggle_hud = "Shift_R+F12";
full = true;
gpu_temp = true;
cpu_temp = true;
fps_only = false;
blacklist = [
"pamac-manager"
"lact"
"ghb"
"bitwig-studio"
"ptyxis"
"yumex"
];
};
};
}
+88
View File
@@ -0,0 +1,88 @@
{myConfig, ...}: {
programs.mangohud = {
enable = true;
enableSessionWide = true;
settings = {
legacy_layout = false;
horizontal = true;
background_alpha = 0.6;
round_corners = 10;
background_color = "000000";
font_size = 24;
text_color = "FFFFFF";
position = "top-left";
toggle_hud = "Shift_R+F12";
no_display = true;
pci_dev = "0:03:00.0";
table_columns = 3;
gpu_text = "GPU";
gpu_stats = true;
gpu_load_change = true;
gpu_load_value = [50 90];
gpu_load_color = ["FFFFFF" "FFAA7F" "CC0000"];
gpu_temp = true;
gpu_power = true;
gpu_color = "2E9762";
cpu_text = "CPU";
cpu_stats = true;
cpu_load_change = true;
cpu_load_value = [50 90];
cpu_load_color = ["FFFFFF" "FFAA7F" "CC0000"];
cpu_temp = true;
cpu_power = true;
cpu_color = "2E97CB";
vram = true;
vram_color = "AD64C1";
ram = true;
ram_color = "C26693";
battery = true;
battery_color = "00FF00";
fps = true;
fps_metrics = ["avg" "0.01"];
engine_version = true;
engine_color = "EB5B5B";
arch = true;
frame_timing = true;
frametime_color = "FA8000";
fps_limit_method = "late";
toggle_fps_limit = "Shift_L+F1";
fps_limit = 0;
resolution = true;
refresh_rate = true;
# custom_text = [
# "-"
# "$(cat /home/kenji/.config/goverlay/distro)"
# "-"
# "$(uname -r)"
# "Session:"
# "$(echo $XDG_SESSION_TYPE)"
# ];
fps_color_change = true;
fps_color = ["B22222" "FDFD09" "39F900"];
fps_value = [30 60];
time = true;
output_folder = "/home/${myConfig.essentials.Username}/.mangohud/";
log_duration = 30;
autostart_log = false;
log_interval = 100;
toggle_logging = "Shift_L+F2";
blacklist = [
"pamac-manager"
"lact"
"ghb"
"bitwig-studio"
"ptyxis"
"yumex"
];
};
};
}
-70
View File
@@ -1,70 +0,0 @@
[config]
# If set to enabled, it will check for updates when you run the matugen command, notifying you that an update is avaiable.
# WARNING: Matugen needs to be compiled with the `update-informer` feature for this to work.
version_check = false
[config.wallpaper]
# The base command to run for applying the wallpaper, shouldn't have spaces in it.
command = "swww"
# The arguments that will be provided to the command.
# Keywords like {{ mode }} or anything that works inside of hooks doesn't work here.
# The last argument will be the image path.
arguments = ["img", "--transition-type", "center", "--transition-fps", "120"]
# For example, killing the wallpaper daemon. Usage is like a normal hook.
# pre_hook = ""
[config.custom_keywords]
test = "aaaa"
[templates.name1]
# Relative paths will be resolved from the path `config.toml` is in.
input_path = "./colors.whatever-extension"
output_path = "./a/colors-generated.whatever-extension"
# This will use a different input path depending on what mode you use.
# input_path_modes = { dark = "./colors.whatever-extension", light = "./colors.whatever-extension" }
# This will compare all of the colors inside the array with the color you set as `compare_to`, and returns the closest color to it.
# You can then use `{{closest_color}}` inside templates and hooks.
colors_to_compare = [
{ name = "black", color = "#000000" },
{ name = "red", color = "#ff0000" },
{ name = "maroon", color = "#800000" },
{ name = "yellow", color = "#ffff00" },
{ name = "olive", color = "#808000" },
{ name = "lime", color = "#00ff00" },
{ name = "green", color = "#008000" },
{ name = "aqua", color = "#00ffff" },
{ name = "teal", color = "#008080" },
{ name = "blue", color = "#0000ff" },
{ name = "navy", color = "#000080" },
{ name = "fuchsia", color = "#ff00ff" },
{ name = "purple", color = "#800080" },
]
compare_to = "{{colors.primary.default.hex}}"
# Runs before the template is exported. You can use keywords here,
pre_hook = 'echo "source color {{colors.source_color.default.hex}}, source image {{image}}, closest color {{closest_color}}"'
# Runs after the template is exported. You can use keywords here.
post_hook = 'echo "after gen"'
# Only hex values
# https://m3.material.io/styles/color/advanced/adjust-existing-colors#1cc12e43-237b-45b9-8fe0-9a3549c1f61e
# Blend is set to true by default.
[config.custom_colors]
green = "#00ff00"
red = "#ff0000"
blue = { color = "#0000ff", blend = false }
### --- my config
[templates.kitty]
input_path = '~/.config/nixos/pkgs/matugen/custom/templates/kitty.conf'
output_path = '~/.config/kitty/colors.conf'
post_hook = "kitty @ set-colors -a -c ~/.config/kitty/colors.conf"
[templates.ags]
input_path = '~/.config/nixos/pkgs/matugen/custom/templates/ags.scss'
output_path = '~/.config/nixos/pkgs/ags/biscuit/colors.scss'
post_hook = "pkill gjs & ags run ~/.config/nixos/pkgs/ags/biscuit/app.ts & disown (jobs -p) &"
@@ -1,3 +0,0 @@
$background: {{colors.surface.dark.hex}};
$foreground: {{colors.on_surface.dark.hex}};
$primary: {{colors.primary.dark.hex}};
@@ -1,41 +0,0 @@
cursor {{colors.on_surface.default.hex}}
cursor_text_color {{colors.on_surface_variant.default.hex}}
foreground {{colors.on_surface.default.hex}}
background {{colors.surface.default.hex}}
selection_foreground {{colors.on_secondary.default.hex}}
selection_background {{colors.secondary_fixed_dim.default.hex}}
url_color {{colors.primary.default.hex}}
# black
color8 #262626
color0 #4c4c4c
# red
color1 #ac8a8c
color9 #c49ea0
# green
color2 #8aac8b
color10 #9ec49f
# yellow
color3 #aca98a
color11 #c4c19e
# blue
/* color4 #8f8aac */
color4 {{colors.primary.default.hex}}
color12 #a39ec4
# magenta
color5 #ac8aac
color13 #c49ec4
# cyan
color6 #8aacab
color14 #9ec3c4
# white
color15 #e7e7e7
color7 #f0f0f0
-11
View File
@@ -1,11 +0,0 @@
{
pkgs,
inputs,
system,
...
}: {
imports = [inputs.matugen.nixosModules.default];
home.file.".config/matugen/config.toml" = {
source = builtins.toPath ./custom/config.toml;
};
}
+88
View File
@@ -0,0 +1,88 @@
# /etc/nixos/configuration.nix
{
config,
pkgs,
lib,
fetchurl,
myConfig,
...
}: let
moondeckBuddyWrapped = pkgs.appimageTools.wrapType2 {
pname = "moondeck-buddy";
version = "1.8.2";
src = pkgs.fetchurl {
url = "https://github.com/FrogTheFrog/moondeck-buddy/releases/download/v1.8.2/MoonDeckBuddy-1.8.2-x86_64.AppImage";
hash = "sha256-D+9XIi3pIwaAq22DGHWAUqKub778qHQSjCU0aIjXmYY="; # Don't forget to update this!
};
extraPkgs = pkgs:
with pkgs; [
steam
libappindicator-gtk3
];
desktopItems = [
(pkgs.makeDesktopItem {
name = "Moondeck Buddy";
exec = "moondeck-buddy";
icon = "applications-other";
comment = "A Sunshine/Moondeck Buddy.";
categories = ["Utility" "Productivity"];
})
];
meta = with lib; {
description = "Moondeck Buddy is an companion app for NVIDIA Sunshine/Moonlight.";
homepage = "https://github.com/FrogTheFrog/moondeck-buddy";
license = licenses.gpl3Only;
platforms = platforms.linux;
mainProgram = "moondeck-buddy";
};
};
in {
environment.systemPackages = with pkgs; [
moondeckBuddyWrapped
];
programs.appimage.enable = true;
programs.appimage.binfmt = true;
# --- Firewall Configuration ---
networking.firewall.allowedTCPPorts = [
59999 # Allow Moondeck Buddy to listen on this port
];
# If Moondeck Buddy also needs UDP, uncomment and add it here:
networking.firewall.allowedUDPPorts = [
59999
];
systemd.services.moondeck-buddy = {
description = "Moondeck Buddy service for Sunshine/Moonlight integration";
after = ["network-online.target" "display-manager.service"]; # Ensure display manager is up
wantedBy = ["multi-user.target"]; # Still autostart with multi-user target
serviceConfig = {
Type = "simple";
User = "${myConfig.essentials.Username}"; # <--- IMPORTANT: User *must* have access to the display
Group = "users";
ExecStart = "${moondeckBuddyWrapped}/bin/moondeck-buddy";
Restart = "on-failure";
RestartSec = 5;
# Crucial for GUI applications running as system services:
Environment = [
"DISPLAY=:0" # Assuming your main display is :0. This can vary.
# "XAUTHORITY=/home/your-username/.Xauthority" # Needed if using Xauthority
# If using Wayland, you might need XDG_RUNTIME_DIR and WAYLAND_DISPLAY
# "XDG_RUNTIME_DIR=/run/user/$(id -u your-username)"
# "WAYLAND_DISPLAY=wayland-0" # Or specific to your compositor
];
# You might also need to explicitly grant access, e.g., with xhost +
# but that's a security hole. Best is to rely on user authentication.
};
};
}
-12
View File
@@ -1,12 +0,0 @@
{
pkgs,
inputs,
...
}: let
nixovim = inputs.nixovim.packages.${pkgs.system}.default;
in {
home.packages = [
nixovim
pkgs.lazygit
];
}
+10
View File
@@ -0,0 +1,10 @@
{
pkgs,
inputs,
system,
...
}: {
home.packages = [
inputs.nixovim.packages.${system}.full
];
}
@@ -1,5 +1,5 @@
{pkgs, ...}: { {pkgs, ...}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
busybox python313Full
]; ];
} }
+14
View File
@@ -1,2 +1,16 @@
{ {
inputs,
pkgs,
system,
...
}: {
environment.systemPackages = [
inputs.caelestia-shell.packages.${system}.caelestia-shell
inputs.caelestia-shell.packages.${system}.caelestia-cli
inputs.caelestia-shell.packages.${system}.beat-detector
];
environment.sessionVariables = {
# Set CAELESTIA_BD_PATH to the store path of beat-detector
CAELESTIA_BD_PATH = "${inputs.caelestia-shell.packages.${system}.beat-detector}/bin/beat_detector";
};
} }
+48
View File
@@ -0,0 +1,48 @@
{
pkgs,
inputs,
system,
...
}: let
caelestia-shell = pkgs.fetchFromGitea {
domain = "git.sakamoto.dev";
owner = "caelestia-dots";
repo = "shell";
rev = "main";
sha256 = "sha256-y9Wkh+9ND8GcUYhybXdEPTVY6gUb0jclnbbVi70l70Y=";
};
in {
imports = [
];
home.packages = with pkgs; [
inputs.quickshell.packages.${system}.default
wl-screenrec
libnotify
grim
foot
hyprpicker
qalculate-qt
fuzzel
inotify-tools
app2unit
fish
jq
fd
cliphist
(pkgs.python3.withPackages (python-pkgs:
with python-pkgs; [
aubio
pyaudio
numpy
]))
cava
bluez
ddcutil
brightnessctl
curl
material-symbols
];
home.file.".config/quickshell/caelestia" = {
source = caelestia-shell;
};
}
+4
View File
@@ -0,0 +1,4 @@
{pkgs, ...}: {
home.packages = with pkgs; [
];
}
+17
View File
@@ -0,0 +1,17 @@
{
pkgs,
myConfig,
...
}: {
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
gamescopeSession.enable = true;
extraCompatPackages = with pkgs; [proton-ge-bin];
extraPackages = with pkgs; [
mangohud
gamescope-wsi
];
};
programs.gamemode.enable = true;
}

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