Compare commits

..

272 Commits

Author SHA1 Message Date
jay
048c332fd0 Flake update. 2025-09-04 19:01:56 -04:00
jay
f41d63be54 Flake update. 2025-08-30 08:50:26 -04:00
jay
367070179f Flake update. 2025-08-28 20:09:34 -04:00
jay
632ff8cea0 Update flakes. 2025-08-26 17:32:26 -04:00
jay
6947f37f54 Disable drop. 2025-08-26 17:32:20 -04:00
jay
3119362823 Update drop. 2025-08-26 17:32:14 -04:00
jay
5e6983e106 Add gearlever. 2025-08-26 17:32:05 -04:00
jay
d1debc3a72 Set proper Drop appimage name. 2025-08-16 00:38:37 -04:00
jay
0a561deee0 Update drop hash. 2025-08-16 00:16:02 -04:00
jay
3aeeb648e5 Add drop. 2025-08-15 22:09:08 -04:00
jay
25a082e204 Move drop and try to get it working. 2025-08-15 22:03:52 -04:00
jay
f85ccc3aca Flake update. 2025-08-15 22:03:40 -04:00
jay
53e563c2e9 Add appimage setup. 2025-08-15 22:00:36 -04:00
jay
b6c241a1a1 Update drop path. 2025-08-15 21:57:06 -04:00
jay
cb64138b55 Flake update. 2025-08-15 21:55:38 -04:00
jay
00cfc16503 Add drop appimage. 2025-08-15 21:52:49 -04:00
jay
a5e7cd1513 Flake update. 2025-08-15 15:58:11 -04:00
jay
49265f2014 Flake update. 2025-08-12 21:56:18 -04:00
jay
7737c3554a Update README.md 2025-08-13 01:34:41 +00:00
jay
5ec35ea58f Flake update. 2025-08-10 21:01:52 -04:00
jay
5f9ecd2c4a Flake update. 2025-08-08 00:29:24 -04:00
jay
47d30fd708 Flake update. 2025-08-06 22:52:14 -04:00
jay
5bcd431bfb Set up power profiles from battery hyprpanel. 2025-08-03 10:56:00 -04:00
jay
7391b43d9a Add powertop and upower for hyprpanel dependencies. 2025-08-03 10:50:13 -04:00
jay
4f8ce52cc1 Flake update. 2025-08-03 10:49:54 -04:00
jay
4f151577ac Remove appimage. 2025-07-31 22:32:21 -04:00
jay
58f57f749b Add Drop dependencies for appimage. 2025-07-31 22:18:47 -04:00
jay
5505df82e3 Flake update. 2025-07-31 22:11:48 -04:00
jay
7b66d5a4b5 Add appimage.
Fix appimage.
2025-07-31 22:10:37 -04:00
jay
2131144535 Flake update. 2025-07-31 22:07:42 -04:00
jay
665ad9024f Flake update. 2025-07-30 01:06:48 -04:00
jay
4ad8eaef7a Fix hyprpanel temps. 2025-07-30 01:06:41 -04:00
jay
3249dcfaad Add discover-overlay. 2025-07-30 01:06:33 -04:00
jay
6aaad3ad7b Add legcord. 2025-07-28 13:19:30 -04:00
jay
3cc469278e Flake update. 2025-07-28 13:19:14 -04:00
jay
560cd5afb2 Added zip. 2025-07-27 00:59:52 -04:00
jay
d7e08bbe9c Flake update. 2025-07-27 00:59:47 -04:00
jay
52e1586cfe disable wireplumber. 2025-07-26 17:15:54 -04:00
jay
70f3fa3609 Flake update. 2025-07-26 17:02:17 -04:00
jay
81812dfafb Add betterdiscord installer. 2025-07-26 16:58:44 -04:00
jay
f4491974ca Move discord apps to its own file, setup betterdiscord. 2025-07-26 07:48:10 -04:00
jay
db78dd33c3 Flake update. 2025-07-26 07:37:30 -04:00
jay
643eb1cb33 Disable auto-cpufreq, flake update. 2025-07-25 13:53:08 -04:00
jay
6372c54d4c Disable low latency for audio dropouts. 2025-07-25 13:44:13 -04:00
jay
2957c442ac Create shell alias for open-tv flatpak, move shell alias for ryujinx. 2025-07-25 07:27:49 -04:00
jay
4eb1da9227 Flake update. 2025-07-25 07:27:24 -04:00
jay
070c684a01 Add open-tv flatpak. 2025-07-25 06:53:32 -04:00
jay
f41f628f4d Flake update. 2025-07-25 06:53:20 -04:00
jay
e2ea58c57c Fix temp sensor. 2025-07-24 19:30:02 -04:00
jay
e4917af55d Disable discord, install legcord again. 2025-07-24 00:23:52 -04:00
jay
b6f353194a Flake update, install discord with moonlight 2025-07-24 00:13:46 -04:00
jay
a2c4050f08 Reenable arrpc and moonlight. 2025-07-23 23:49:52 -04:00
jay
ec7420a218 Disable moonlight, enable discord. 2025-07-21 21:57:51 -04:00
jay
a8dfc7eda3 Disable equibop, add moonlight. 2025-07-21 21:53:17 -04:00
jay
d409f418d3 Add equibop. 2025-07-21 21:42:56 -04:00
jay
7d6d2ade10 Set goofcord to start on login. 2025-07-21 19:38:58 -04:00
jay
b3e8b77b8f Add goofcord. 2025-07-21 19:37:47 -04:00
jay
4efcdbbc0a Disable power profiles daemon. 2025-07-21 16:50:17 -04:00
jay
777f2b6821 Flake update. 2025-07-21 16:45:30 -04:00
jay
894babd3da Enable auto-cpufreq for battery savings. 2025-07-21 16:15:33 -04:00
jay
4310c9d517 Set lid switch for power. 2025-07-21 16:05:59 -04:00
jay
b154fad1a0 Flake update. 2025-07-21 16:03:43 -04:00
jay
3404b22e72 Change hostname for nixwork away from lappy. 2025-07-21 16:00:30 -04:00
jay
a9b9c0b5b8 Flake update. 2025-07-21 02:58:58 -04:00
jay
b74d05cdfb Set submodule path. 2025-07-21 02:53:00 -04:00
jay
a1515ff3eb Switch legcord for vesktop. 2025-07-21 02:28:34 -04:00
jay
16c74b4ffb Set private git path. 2025-07-21 02:28:24 -04:00
jay
3126b9fe0d Add overlayed. 2025-07-21 01:08:41 -04:00
jay
b702180b3a Add samrewritten. 2025-07-20 15:33:18 -04:00
jay
588f3a2e2c Reenable arrpc. 2025-07-20 10:23:31 -04:00
jay
b10401cb71 Flake update. 2025-07-20 01:00:43 -04:00
jay
51e45da8bf Set proper resolution for nixwork. 2025-07-20 00:44:55 -04:00
jay
2591c0389d Set proper submodules. 2025-07-20 00:44:32 -04:00
jay
a7dfe2ac8b Move protonplus and install the unstable version. 2025-07-19 23:38:48 -04:00
jay
711e042b5d Add protonplus. 2025-07-19 19:30:10 -04:00
jay
787492cb9f Fix adding nero-umu from unstable. 2025-07-19 19:28:09 -04:00
jay
4b59f6a4d7 Add nixpkgs-unstable. 2025-07-19 19:27:53 -04:00
jay
1c5cae9af4 Add nero-umu from unstable. 2025-07-19 18:25:10 -04:00
jay
d027fbfaac Add unstable. 2025-07-19 18:25:00 -04:00
jay
c19702fbaa Merge branch 'main' of https://git.zerojay.com/jay/nixverse 2025-07-17 20:21:06 -04:00
jay
ffa8781759 Add fingerprint reader stuff and framework default hardware profile.
Compilation fix.

Compilation fix.

Compilation fix.

Compilation fix.
2025-07-17 20:21:06 -04:00
jay
f87b8e3368 Update zen dotfiles. 2025-07-17 20:19:53 -04:00
jay
256fbf7bca Create nixwork device. 2025-07-17 20:50:30 +00:00
jay
956c23e606 Disable hiding bootup messages, flake update. 2025-07-17 05:11:48 -04:00
jay
f40f23a8b3 Flake update. 2025-07-16 21:55:54 -04:00
jay
3598a3e483 Enable emacs. 2025-07-16 21:53:33 -04:00
jay
8eedac4744 Add qutebrowser.
Move qutebrowser configuration to home manager.
2025-07-16 10:56:36 -04:00
jay
1661ea2fcd Flake update. 2025-07-16 10:47:05 -04:00
jay
6e6962314b Move btop to home, setup stylix theme and set transparency. 2025-07-16 09:58:34 -04:00
jay
cb659e768e Add transparency to mangohud. 2025-07-16 09:52:10 -04:00
jay
d414e58fad Flake update. 2025-07-16 09:52:00 -04:00
jay
ca7193633c Allow gamescope to change its own kernel niceness settings for smoother gameplay. 2025-07-16 00:13:42 -04:00
jay
e9c1aecbe9 Flake update. 2025-07-15 22:53:29 -04:00
jay
77800be925 Refactor mangohud config.
Refactor mangohud config.
2025-07-15 22:50:43 -04:00
jay
7bac3c13aa Flake update. 2025-07-15 20:31:01 -04:00
jay
b29f717c79 Zen-browser update, flake update. 2025-07-15 09:44:41 -04:00
jay
ff6bc2b602 Flake update, pin zen browser to previously working flake. 2025-07-15 07:30:54 -04:00
jay
729165ab99 Plymouth setup in bootloader. 2025-07-14 07:56:05 -04:00
jay
fa97388d6d Add plymouth bootup. 2025-07-14 07:44:42 -04:00
jay
4d55019f4e Set up bluetooth experimental, show battery info for devices, etc... 2025-07-14 07:23:28 -04:00
jay
e8e3288d0c Enable pipewire low latency. 2025-07-14 07:08:23 -04:00
jay
3b3fc54bf1 Set up pipewire low latency mode. 2025-07-14 07:02:05 -04:00
jay
194b346a8c Added nix-gaming repo, flake update. 2025-07-14 06:57:35 -04:00
jay
4d009c46bd Some documentation comments. 2025-07-13 20:17:46 -04:00
jay
9047f00910 Disable arrpc. 2025-07-13 13:06:58 -04:00
jay
b1df070912 Switch back to legcord. 2025-07-13 12:53:56 -04:00
jay
f09502773a Add nixcord plugins.
Compilation fix.
2025-07-13 12:10:41 -04:00
jay
eb232623a9 Enable vencord and openasar. 2025-07-13 11:50:24 -04:00
jay
840db2018d Fix nixcord input, flake update. 2025-07-13 11:48:32 -04:00
jay
c843704a11 Drop legcord, add nixcord with defaults.
Correct nixcord flake url.
2025-07-13 11:31:29 -04:00
jay
456081a657 Add home-manager integration for television config files. 2025-07-13 09:54:00 -04:00
jay
7cfdfd8d0f Added television dotfiles for nix-search-tv to use. 2025-07-13 09:53:39 -04:00
jay
97a4ad7815 Add television and nix-search-tv. 2025-07-13 09:46:47 -04:00
jay
c4181bfe42 Remove hypnotix, install vlc. 2025-07-13 03:52:56 -04:00
jay
3a35c461bd Add hypnotix iptv application. 2025-07-13 03:47:00 -04:00
jay
1f850493a7 Correct lvim config path. 2025-07-13 03:03:59 -04:00
jay
6223f62baa Set up lunarvim dotfiles. 2025-07-13 03:01:07 -04:00
jay
ae8d80b621 Added lunarvim config file. 2025-07-13 02:59:38 -04:00
jay
ec751bd1c2 Fix gamemode being unable to set cpu governor when launching a game. 2025-07-13 02:46:16 -04:00
jay
70b1c62466 Add proton-ge and steam-play-none. 2025-07-13 02:24:43 -04:00
jay
b1b1076d7d Flake update. 2025-07-13 02:24:20 -04:00
jay
c8d92b5812 Remove dead code. 2025-07-12 15:19:06 -04:00
jay
c301c0072a Flake update. 2025-07-12 15:12:22 -04:00
jay
5681827296 Unused bindings. 2025-07-12 13:55:40 -04:00
jay
adbd75a48a Remove unused bindings from nixy and nixy jay configs. 2025-07-12 13:53:13 -04:00
jay
ac132756e4 Remove unused bindings from lappy and lappy jay configs. 2025-07-12 13:50:23 -04:00
jay
64390aec8a Remove unused bindings from common jay config. 2025-07-12 13:46:39 -04:00
jay
04d52e047b Remove unused bindings from common config. 2025-07-12 13:42:05 -04:00
jay
d20e0e2837 Update readme. 2025-07-12 13:22:22 -04:00
jay
b6ce751431 Update readme. 2025-07-12 13:21:28 -04:00
jay
9fa0838587 Add lunarvim. 2025-07-12 13:11:02 -04:00
jay
eb1da112ab Disable password sops stuff. 2025-07-12 09:56:38 -04:00
jay
f664de7fcb Update secrets. 2025-07-12 09:56:28 -04:00
jay
262d488283 Remove Default sops file? 2025-07-12 09:49:31 -04:00
jay
d77df8748d Fix incorrect keyname. 2025-07-12 09:47:28 -04:00
jay
a83cdf7f7d Update secrets again. 2025-07-12 09:47:19 -04:00
jay
bd1722ab41 Update secrets, set nixy to local deploy. 2025-07-12 09:40:29 -04:00
jay
5b3c0f4ce3 Update secrets. 2025-07-12 09:40:15 -04:00
jay
acf1cdb9c3 More sops secret setup.
Compilation fix.
2025-07-12 09:22:44 -04:00
jay
b8d0f83d19 Set up sops secrets again. 2025-07-12 09:19:18 -04:00
jay
97a57a1a4d Added zen dotfiles into private repository. 2025-07-12 08:45:54 -04:00
jay
64a9fa9b7c Flake update. 2025-07-12 08:35:01 -04:00
jay
86b048cd68 Flake update. 2025-07-11 07:44:40 -04:00
jay
5df2e0d3f5 Fix password problem. 2025-07-10 14:15:55 +00:00
jay
0e4d790e30 Fix password_hash. 2025-07-10 07:45:24 -04:00
jay
9d30869c02 Add jay_password_hash to secrets and set up the jay user with that hashed password file. 2025-07-10 07:27:54 -04:00
jay
f3d41e4299 Update to-do list. 2025-07-10 01:09:31 -04:00
jay
3731d0bc01 Set up encryption keys for sops.
New sops key for jay on nixy.
2025-07-10 01:09:20 -04:00
jay
0898de9ff6 Don't forget to unmount the btrfs volume after! 2025-07-09 22:54:50 -04:00
jay
828bd3c295 Add btrfs snapshot cleanup procedure. 2025-07-09 22:53:58 -04:00
jay
6574d647aa Drop snapper/snapper-gui. 2025-07-09 22:38:55 -04:00
jay
b0ee1e9e59 Add snapper/snapper-gui for btrfs snapshots. 2025-07-09 22:34:05 -04:00
jay
6278366c75 Flake update. 2025-07-09 22:33:52 -04:00
jay
f2d280701c Let's keep our wifi and bluetooth connection info. 2025-07-09 21:34:17 -04:00
jay
3dcb5330e6 Fix impermanence on boot. 2025-07-09 20:37:10 -04:00
jay
e5b5d77b86 Remove gpustat as it keeps popping up the window. 2025-07-09 12:11:22 -04:00
jay
82af34de7d Readd cava. 2025-07-09 11:39:34 -04:00
jay
72d2f9d224 Flake update. 2025-07-09 11:39:28 -04:00
jay
dc65b193fa Add xserver to enable nvidia driver. 2025-07-09 08:33:23 -04:00
jay
6c68e77b58 Add nvidia driver to nixy. 2025-07-09 08:27:11 -04:00
jay
ffffb94a6b Fix typo for /home device. 2025-07-09 08:23:16 -04:00
jay
3be549af3d Import impermanance flake. 2025-07-09 08:23:05 -04:00
jay
912c29d368 Add impermanance module to flake.nix, move import back to nixy. 2025-07-09 08:20:35 -04:00
jay
2513b9bf94 Move impermanence module import to common. 2025-07-09 08:17:47 -04:00
jay
72be90b97d Fix missing impermanence module import. 2025-07-09 08:15:53 -04:00
jay
55e35a2038 Define nixy node. 2025-07-09 08:10:25 -04:00
jay
962dba71e6 Flake update. 2025-07-09 08:01:17 -04:00
jay
f2d0904b49 Move jellyfin-rpc config files into their proper directories. 2025-07-09 08:01:10 -04:00
jay
d0a8eea837 More nixy setup. 2025-07-09 07:54:44 -04:00
jay
b07d76f877 Nvidia specific lines for nixy. 2025-07-09 07:54:23 -04:00
jay
9497aacb4d Move streamcontroller out of common programs to nixy specific.
Move streamcontroller out of common
2025-07-09 07:53:56 -04:00
jay
342710ef9c Start porting nixy config, move some bootloader stuff into the common bootloader.nix. 2025-07-09 07:34:56 -04:00
jay
fe0b2ef82d Remove video wallpaper from hyprland home user config. 2025-07-08 23:42:33 -04:00
jay
a2500b41d5 Added Jellyfin-rpc config files. 2025-07-08 23:40:38 -04:00
jay
07acbd3dca Fix jellyfin-rpc configuration files. 2025-07-08 23:29:22 -04:00
jay
2510f117fb Post-install secrets 2025-07-08 03:09:19 +00:00
jay
cd9245d93f Flake update. 2025-07-07 12:17:41 -04:00
jay
4a96ae4adf Set up persist directories with files. 2025-07-07 12:41:29 +00:00
jay
92c62291f2 Correct /home subvolume name. 2025-07-07 12:17:43 +00:00
jay
b00ca89f1b Add root-blank subvolume for impermanence. 2025-07-07 11:51:23 +00:00
jay
2c62cd80b3 Fix swap file mounting. 2025-07-07 11:45:42 +00:00
jay
f5fe043de9 Set up bootloader stuff for encrypted impermanance. 2025-07-07 02:19:35 +00:00
jay
05cd5cce03 Merge branch 'main' of https://git.zerojay.com/jay/nixverse 2025-07-07 02:09:38 +00:00
jay
168358d8c7 Set up btrfs weekly cleanup. 2025-07-07 02:08:05 +00:00
jay
8fc7e020fe Update README.md 2025-07-07 01:45:38 +00:00
jay
d79ce8490b Partial installation instructions. 2025-07-07 01:41:10 +00:00
jay
ca885f29f2 Setup lappy for proper impermanance. 2025-07-07 00:29:09 +00:00
jay
1c70228703 Set up elinks config file with home-manager. 2025-07-06 10:25:49 -04:00
jay
66d37cfe0f Initial dotfiles submit. 2025-07-06 09:30:49 -04:00
jay
fda65a055f Adding encrypted passwords. 2025-07-06 09:03:16 -04:00
jay
daf09bdb21 Submit testing. 2025-07-06 08:53:59 -04:00
jay
6a6e5aeee3 Add private git submodule setup. 2025-07-06 08:52:27 -04:00
jay
3a8d12cbe6 Update README.md 2025-07-06 00:55:15 -04:00
jay
565950413b Set up sops-nix. 2025-07-05 09:55:02 -04:00
jay
c0bf134b2a Add sops-nix. 2025-07-05 09:34:43 -04:00
jay
bb348cd08a Set up nixverse command properly. 2025-07-05 09:34:15 -04:00
jay
fcfd9c6f72 Flake update. 2025-07-05 09:15:13 -04:00
jay
69c9056992 Add nixverse command line app. 2025-07-05 08:58:22 -04:00
jay
c1b27c2f82 No need to add the nix-flatpak inputs. 2025-07-05 00:38:59 -04:00
jay
6d35ed908e Enable flatpaks. 2025-07-05 00:36:39 -04:00
jay
14277991cd Add nord theme to hyprpanel until theming works again. 2025-07-03 06:09:24 -04:00
jay
cf25455a91 Fix battery not showing in hyprpanel. 2025-07-03 05:43:02 -04:00
jay
9d1278388d Disable netstat until hyprpanel fixes the units. 2025-07-03 05:42:49 -04:00
jay
6b1b1fef4c Finally fix issues with Hyprpanel and latest home manager. 2025-07-03 05:27:47 -04:00
jay
9e7010f7c1 Enable hypridle. 2025-07-02 22:10:47 -04:00
jay
6cd71f4eab Back to stylix release-25.05. 2025-07-02 22:04:47 -04:00
jay
5a9949805a Fix stylix issues with latest version. 2025-07-02 21:15:46 -04:00
jay
40d6eac161 Add and disable non-working fingerprint reader. 2025-07-02 17:02:48 -04:00
jay
6f72897fb0 Add fprintd for fingerprints. 2025-07-02 16:16:24 -04:00
jay
fa00f3b545 Add netstat to hyprpanel. 2025-07-02 11:23:19 -04:00
jay
b743b7b35d Separate hyprland config from home for lappy. 2025-07-02 10:52:53 -04:00
jay
f786b4020a Separate hyprpanel config from home on lappy to make sure it still works.
Compilation fix.

Another compliation fix.
2025-07-02 10:52:27 -04:00
jay
a6d21574c6 Separate hyprpanel from home configuration. 2025-07-02 10:15:22 -04:00
jay
0e7b2c52f2 Separate hyprland from home config. 2025-07-02 07:32:33 -04:00
jay
78e4ad751f Separate stylix config from home configuration.
Fix wallpaper declaration.
2025-07-02 07:18:44 -04:00
jay
447ad7930f Separate alacritty from home configuration.
Compilation fix.
2025-07-02 07:09:20 -04:00
jay
d953d2c3df Split rbw from home configuration. 2025-07-02 07:03:02 -04:00
jay
ba77294db0 Flake update. 2025-07-02 06:59:18 -04:00
jay
78e5f81ac9 Stylix and home-manager back to release-25.05. 2025-07-02 06:55:11 -04:00
jay
a23b142288 Separate yazi from home configuration. 2025-07-02 06:49:56 -04:00
jay
6759645429 Move hyprlock out of the home configuration. 2025-07-02 06:00:23 -04:00
jay
840446aabc Move oh-my-posh out of home configuration. 2025-07-02 05:57:11 -04:00
jay
84f6005f65 Separate git from home configuration.
Add git to programs loaded.

Compilation fix.
2025-07-02 05:52:26 -04:00
jay
aede707b0a Split out bash from home config. 2025-07-02 05:37:57 -04:00
jay
0e371fc26f Split out lazygit from home config. 2025-07-02 05:33:51 -04:00
jay
02288500e8 Split out Rofi from home configuration. 2025-07-02 05:30:34 -04:00
jay
406b508ab9 Split out hypridle home service into its service file. 2025-07-02 05:25:39 -04:00
jay
be8db6d454 Move fluidsynth service out of home.nix. 2025-07-02 05:18:15 -04:00
jay
6dce06e79a Set up arrpc as a home manager service, remove arrpc as a normal program. 2025-07-02 05:11:53 -04:00
jay
41629e63a4 Switch hyprpanel theme to nord. 2025-07-02 05:11:53 -04:00
jay
79838751ef Add nixos wallpaper, switch to no longer using mpvpaper.
Compilation fix.
2025-07-02 05:11:53 -04:00
jay
e4f3ce464d Set full path to wallpaper to fix it. 2025-06-30 20:37:11 -04:00
jay
19bd63f086 Fix wallpaper path for lappy. 2025-06-30 19:50:43 -04:00
jay
0290dd0108 Make hyprpanel configuration more generic, set hardware specific options for nixy. 2025-06-30 19:47:12 -04:00
jay
71cf10a9f3 Remove gpu api option from mpvpaper. 2025-06-30 19:47:12 -04:00
jay
931660b0d2 Set up lappy specific video wallpaper stuffs.
Compilation fix.
2025-06-30 19:47:12 -04:00
jay
01193e652b Add wallpapers. 2025-06-30 19:47:12 -04:00
jay
8715b6274f Force cava framerate for lappy to compile. 2025-06-30 19:47:12 -04:00
jay
4641875a62 Set lappy hyprpanel cava framerate to 120.
Fix compilation error.
2025-06-30 19:47:12 -04:00
jay
ac28968635 Remove netstat from common hyprpanel, add battery to lappy hyprpanel. 2025-06-30 19:47:12 -04:00
jay
af31a2cd0a Add battery to hyprpanel when on lappy. 2025-06-30 19:47:12 -04:00
jay
0961059ff2 Add xpadneo to get controller working? 2025-06-30 19:47:12 -04:00
jay
7da2097c91 Attempted bluetooth fix for Xbox controller. 2025-06-30 19:47:12 -04:00
jay
cfcbd965f2 Remove nm-tray, no longer needed. 2025-06-30 19:47:12 -04:00
jay
f8a2e0a8ab Flake update. 2025-06-30 19:47:12 -04:00
jay
f671352709 Add nm-tray to work around weird hyprpanel wifi issue. 2025-06-30 19:47:12 -04:00
jay
77f25b84ab Set up hyprland resolution per device. 2025-06-30 19:47:12 -04:00
jay
017216ba65 Set up specific monitor for lappy, we hope. 2025-06-30 19:47:12 -04:00
jay
c194d9076f Add home-manager module. 2025-06-30 19:47:12 -04:00
jay
43bc49c7cd Remove Xserver + xev. 2025-06-30 19:47:12 -04:00
jay
e581d47db0 Add stylix module import.
Fix compilation error.
2025-06-30 19:47:12 -04:00
jay
dbb836785b Fix stylix compliation issue. 2025-06-30 00:12:11 -04:00
jay
d7d49c1ac9 Add stylix module. 2025-06-30 00:11:23 -04:00
jay
3d6bbf7e30 Add hyprpanel setup. 2025-06-30 00:09:35 -04:00
jay
31618a2183 Add home manager setup. 2025-06-30 00:07:38 -04:00
jay
74f2f69e05 Add OBS and Stream Controller. 2025-06-29 19:58:50 -04:00
jay
f8fbed4ba3 Fix networking compilation issue. 2025-06-29 19:39:41 -04:00
jay
45b4645faa Revert "Move some bootloader stuff into common instead."
This reverts commit 3ded53b18f.
2025-06-29 19:37:42 -04:00
jay
e2044f08ee Revert "Compile fix for networking.nix."
This reverts commit c5afa53ea5.
2025-06-29 19:37:25 -04:00
jay
3ded53b18f Move some bootloader stuff into common instead. 2025-06-29 19:24:16 -04:00
jay
c5afa53ea5 Compile fix for networking.nix. 2025-06-29 19:12:24 -04:00
jay
82a93404ae Set up bootloader and networking for lappy and general. 2025-06-29 19:10:12 -04:00
jay
d37a350ca6 Add nixos options. 2025-06-29 15:18:58 -04:00
jay
3ff656c17d Add environment variables. 2025-06-29 15:09:17 -04:00
jay
d3c5895631 Move filesystems to system folder. 2025-06-29 14:39:23 -04:00
jay
abf8d98e53 Fix lappy network name. 2025-06-29 14:30:55 -04:00
jay
05925d1469 Set up networking for lappy specifically. 2025-06-29 14:29:08 -04:00
jay
55021a6c6f Setup xserver in common and touchpad in lappy. 2025-06-29 14:25:20 -04:00
jay
097bc0ef7e Add sof-firmware for lappy only. 2025-06-29 14:17:33 -04:00
jay
5b975d01b4 Add hyprland. 2025-06-29 14:12:23 -04:00
jay
bc470073f6 Set up nerdfonts for hyprland/hyprpanel. 2025-06-29 14:07:42 -04:00
jay
92cf0d48e7 Add gstreamer. 2025-06-29 14:05:24 -04:00
104 changed files with 3096 additions and 186 deletions

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "private"]
path = private
url = https://git.zerojay.com/jay/private.git

2
.sops.yaml Normal file
View File

@@ -0,0 +1,2 @@
creation_rules:
- age: age1kn9632x2upcckl5jr9h2xda9l9j6r23u3pzjdp4v7vdjs42fpq3qur2qf0

View File

@@ -1 +1,66 @@
asdasd This NixOS setup is based off of https://github.com/hgl/nixverse and using its features for handling multiple machines, splitting configurations depending on users/nodes/more.
Machines
+ lappy - Samsung Galaxy Book 5 Pro 360 - Intel Core Ultra 7 256V, Intel Arc Graphics, 16GB RAM, 4TB SSD
Currently being sold, no longer in use.
+ nixy - AMD 7800X3D, GeForce RTX 4070 Super, 64GB RAM, 1TB SSD, 4TB SSD on /home.
This machine is still on a previous NixOS setup and has not been moved over to this one yet, working on finishing off everything on lappy first.
* nixwork - Framework Laptop 16, AMD Ryzen 9 7940HS, 96GB RAM, 4TB SSD.
This machine has not been received yet.
+ arcade - Minisforum Neptune HX99G, AMD Ryzen 9 6900HX, AMD Radeon 6650M, 64GB RAM, 1TB SSD
This is used in my arcade machine and is still running Windows at the moment but will eventually be converted to NixOS as well.
+ ally - ASUS ROG Ally X, AMD Ryzen Z1 Extreme, 24GB RAM, 4TB SSD
This is my handheld gaming device and is still running Windows at the moment but will eventually be converted to NixOS as well.
To-Do List
[ ] Finish porting features from nixy's previous setup and get them working on lappy: impermanence.
[ ] Set up declarative Discord setup with nixcord and plugins.
[ ] Figure out how to set up sops-nix with user passwords properly.
[X] Fully setup private git repository for secrets.
[X] Integrate private git repository into nixverse setup.
[X] Switch nixy over to this nixverse setup.
[ ] Finish checking the apps I need on the arcade machine work under NixOS (attractmode, retroarch, teknoparrot, others).
[ ] Setup arcade machine on NixOS.
[ ] Setup ally machine on NixOS.
Installation
- Run latest NixOS installer from USB stick.
- git clone https://git.zerojay.com/jay/nixverse.git && cd nixverse
- git submodule update --init --recursive
- cd nodes/hosts/[systemname]
- sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount ./disk-config.nix
- mount | grep /mnt
- sudo btrfs subvolume snapshot -r /mnt /mnt/root-blank
- sudo btrfs subvolume list /mnt
- sudo btrfs property get -ts /mnt/root-blank
- cd ~/nixverse
- sudo nixos-install --root /mnt --flake .#[systemname]
- sudo mkdir -p /mnt/persist/etc
- sudo mkdir -p /mnt/persist/var/lib
- sudo mkdir -p /mnt/persist/var/log
- sudo mkdir -p /mnt/persist/home
- sudo mkdir -p /mnt/persist/root
- sudo cp -a /mnt/etc/. /mnt/persist/etc/
- sudo cp -a /mnt/var/lib/. /mnt/persist/var/lib
- sudo cp -a /mnt/var/log/. /mnt/persist/var/log
- sudo cp -a /mnt/home/. /mnt/persist/home/
- sudo cp -a /mnt/root/. /mnt/persist/root/
- reboot
Post-Install - Secrets Setup
- mkdir -p ~/.config/sops/age
- age-keygen -o ~/.config/sops/age/keys.txt
- nixverse secrets edit
Maintenance - Clean Up BTRFS old_roots
- sudo mkdir /mnt
- sudo mount /dev/mapper/cryptroot -o subvolid=5 /mnt
- cd /mnt/old_roots
- sudo du -h -d 1
- sudo rm -rf [snapshot here]
- sudo umount /mnt

694
flake.lock generated
View File

@@ -1,5 +1,92 @@
{ {
"nodes": { "nodes": {
"auto-cpufreq-stable-nixos": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1752998173,
"narHash": "sha256-ZlYpBp2WOe03UrpjJGz5KTOL/pp7A452hJO/Vc8C4/0=",
"owner": "AdnanHodzic",
"repo": "auto-cpufreq",
"rev": "562278377ffa96f3c1af49c7b499df028ce8d8bd",
"type": "github"
},
"original": {
"owner": "AdnanHodzic",
"repo": "auto-cpufreq",
"type": "github"
}
},
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1746562888,
"narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1622559957,
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1748408240,
"narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1732806396,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
"disko": { "disko": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -9,11 +96,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1734088167, "lastModified": 1749200714,
"narHash": "sha256-OIitVU+IstPbX/NWn2jLF+/sT9dVKcO2FKeRAzlyX6c=", "narHash": "sha256-W8KiJIrVwmf43JOPbbTu5lzq+cmdtRqaNbOsZigjioY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "d32f2d1750d61a476a236526b725ec5a32e16342", "rev": "17d08c65c241b1d65b3ddf79e3fac1ddc870b0f6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -30,11 +117,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750903843, "lastModified": 1756733629,
"narHash": "sha256-Ng9+f0H5/dW+mq/XOKvB9uwvGbsuiiO6HrPdAcVglCs=", "narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "83c4da299c1d7d300f8c6fd3a72ac46cb0d59aae", "rev": "a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -43,7 +130,41 @@
"type": "github" "type": "github"
} }
}, },
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1748383148,
"narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1754487366,
"narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nixverse", "nixverse",
@@ -52,11 +173,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1733312601, "lastModified": 1748821116,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -65,7 +186,121 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"stylix-stable-nixos",
"nixpkgs"
]
},
"locked": {
"lastModified": 1749398372,
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1731966426,
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1744584021,
"narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "48.1",
"repo": "gnome-shell",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": {
"nixpkgs": [
"hyprpanel-stable-nixos",
"nixpkgs"
]
},
"locked": {
"lastModified": 1750798083,
"narHash": "sha256-DTCCcp6WCFaYXWKFRA6fiI2zlvOLCf5Vwx8+/0R8Wc4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "ff31a4677c1a8ae506aa7e003a3dba08cb203f82",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager-stable-nixos": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1756679287,
"narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"zen-browser-stable-nixos", "zen-browser-stable-nixos",
@@ -73,11 +308,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1743604125, "lastModified": 1752603129,
"narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -86,6 +321,41 @@
"type": "github" "type": "github"
} }
}, },
"hyprpanel-stable-nixos": {
"inputs": {
"flake-utils": "flake-utils",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1755569534,
"narHash": "sha256-ukXfV1cAsxoar0IVEO2/s3qnVEZpZf0wvqE3PIESobw=",
"owner": "Jas-SinghFSU",
"repo": "Hyprpanel",
"rev": "6385f2e15df908e0c13bed800f4b091300e5b981",
"type": "github"
},
"original": {
"owner": "Jas-SinghFSU",
"repo": "Hyprpanel",
"type": "github"
}
},
"impermanence-stable-nixos": {
"locked": {
"lastModified": 1737831083,
"narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=",
"owner": "nix-community",
"repo": "impermanence",
"rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "impermanence",
"type": "github"
}
},
"nix-darwin": { "nix-darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -94,11 +364,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750618568, "lastModified": 1751313918,
"narHash": "sha256-w9EG5FOXrjXGfbqCcQg9x1lMnTwzNDW5BMXp8ddy15E=", "narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "1dd19f19e4b53a1fd2e8e738a08dd5fe635ec7e5", "rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -123,10 +393,54 @@
"type": "github" "type": "github"
} }
}, },
"nix-gaming-stable-nixos": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs-stable-nixos"
]
},
"locked": {
"lastModified": 1756950352,
"narHash": "sha256-CkNlcUeNlDmxF1GJwEQg3aIBSCihnFcAqCwBjUQGqNY=",
"owner": "fufexan",
"repo": "nix-gaming",
"rev": "64ac07fae89f297beab704dce70038cdbda55c25",
"type": "github"
},
"original": {
"owner": "fufexan",
"repo": "nix-gaming",
"type": "github"
}
},
"nix-vm-test": {
"inputs": {
"nixpkgs": [
"nixverse",
"nixos-anywhere",
"nixpkgs"
]
},
"locked": {
"lastModified": 1748765518,
"narHash": "sha256-vftOR+7zwnMWl5UpG32GL1VBeNGTDZZT0hv+2uNuBGw=",
"owner": "Mic92",
"repo": "nix-vm-test",
"rev": "d6642fbaf42fc98883d84bab66cd0ec720d9dd0c",
"type": "github"
},
"original": {
"owner": "Mic92",
"repo": "nix-vm-test",
"type": "github"
}
},
"nixos-anywhere": { "nixos-anywhere": {
"inputs": { "inputs": {
"disko": "disko", "disko": "disko",
"flake-parts": "flake-parts", "flake-parts": "flake-parts_2",
"nix-vm-test": "nix-vm-test",
"nixos-images": "nixos-images", "nixos-images": "nixos-images",
"nixos-stable": "nixos-stable", "nixos-stable": "nixos-stable",
"nixpkgs": [ "nixpkgs": [
@@ -136,17 +450,32 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1740657886, "lastModified": 1750078927,
"narHash": "sha256-7kHxBQuzb7gcHzVmLGljJ4kF6BDDSYVCIxYFDmYPnAo=", "narHash": "sha256-7iTUVUP6xgEYXdl9aCYBbYMYVsQmOvMoLUsUS2aoDNA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixos-anywhere", "repo": "nixos-anywhere",
"rev": "77e6a4e14baa93a29952ea9f0e4a59a29cca09e9", "rev": "ff87db6a952191648ffaea97ec5559784c7223c6",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"repo": "nixos-anywhere", "repo": "nixos-anywhere",
"rev": "77e6a4e14baa93a29952ea9f0e4a59a29cca09e9", "type": "github"
}
},
"nixos-hardware-stable-nixos": {
"locked": {
"lastModified": 1756925795,
"narHash": "sha256-kUb5hehaikfUvoJDEc7ngiieX88TwWX/bBRX9Ar6Tac=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "ba6fab29768007e9f2657014a6e134637100c57d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "master",
"repo": "nixos-hardware",
"type": "github" "type": "github"
} }
}, },
@@ -164,11 +493,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1740452541, "lastModified": 1749086071,
"narHash": "sha256-aa5gPveHysMTVkxj+0iH0BdcSn8+v8lZPud+IItOSaQ=", "narHash": "sha256-4+fY7i+q78F3t6APz0cMC4kRxsyCb+UTyfhbckkCd7Q=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixos-images", "repo": "nixos-images",
"rev": "283bbacb81bd2c1a7b89f33e011ecabe398a564e", "rev": "aa38dbbdf0e955baef7e03dfc4265ae3fdac4808",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -179,41 +508,58 @@
}, },
"nixos-stable": { "nixos-stable": {
"locked": { "locked": {
"lastModified": 1733808091, "lastModified": 1749086602,
"narHash": "sha256-KWwINTQelKOoQgrXftxoqxmKFZb9pLVfnRvK270nkVk=", "narHash": "sha256-DJcgJMekoxVesl9kKjfLPix2Nbr42i7cpEHJiTnBUwU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a0f3e10d94359665dba45b71b4227b0aeb851f8e", "rev": "4792576cb003c994bd7cc1edada3129def20b27d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-24.11", "ref": "nixos-25.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1750994206, "lastModified": 1750776420,
"narHash": "sha256-3u6rEbIX9CN/5A5/mc3u0wIO1geZ0EhjvPBXmRDHqWM=", "narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=",
"owner": "NixOS", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "80d50fc87924c2a0d346372d242c27973cf8cdbf", "rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "owner": "nixos",
"type": "indirect" "ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1753579242,
"narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
} }
}, },
"nixpkgs-stable-nixos": { "nixpkgs-stable-nixos": {
"locked": { "locked": {
"lastModified": 1750969886, "lastModified": 1756886854,
"narHash": "sha256-zW/OFnotiz/ndPFdebpo3X0CrbVNf22n4DjN2vxlb58=", "narHash": "sha256-6tooT142NLcFjt24Gi4B0G1pgWLvfw7y93sYEfSHlLI=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a676066377a2fe7457369dd37c31fd2263b662f4", "rev": "0e6684e6c5755325f801bda1751a8a4038145d7d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -223,6 +569,36 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-unstable": {
"locked": {
"lastModified": 1756819007,
"narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "aaff8c16d7fc04991cac6245bee1baa31f72b1e1",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1756819007,
"narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "aaff8c16d7fc04991cac6245bee1baa31f72b1e1",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixverse": { "nixverse": {
"inputs": { "inputs": {
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
@@ -232,29 +608,231 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751120324, "lastModified": 1751773294,
"narHash": "sha256-rxxKJxxNSTPzA6q2uRCp42RqnVdJfPQQqSbFRlaUMko=", "narHash": "sha256-7SOb5tc8FARZHUBr8HeCO5016lpiG+S1qugQQdXzF/w=",
"owner": "hgl", "owner": "hgl",
"repo": "nixverse", "repo": "nixverse",
"rev": "04fce491c980711453df9b7e9e2006c71613baee", "rev": "084a07f43829857fc760e70212c497d2f40eaa3c",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hgl", "owner": "hgl",
"ref": "084a07f43829857fc760e70212c497d2f40eaa3c",
"repo": "nixverse", "repo": "nixverse",
"type": "github" "type": "github"
} }
}, },
"nur": {
"inputs": {
"flake-parts": [
"stylix-stable-nixos",
"flake-parts"
],
"nixpkgs": [
"stylix-stable-nixos",
"nixpkgs"
],
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1751320053,
"narHash": "sha256-3m6RMw0FbbaUUa01PNaMLoO7D99aBClmY5ed9V3vz+0=",
"owner": "nix-community",
"repo": "NUR",
"rev": "cbde1735782f9c2bb2c63d5e05fba171a14a4670",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"auto-cpufreq-stable-nixos": "auto-cpufreq-stable-nixos",
"disko-stable-nixos": "disko-stable-nixos", "disko-stable-nixos": "disko-stable-nixos",
"home-manager-stable-nixos": "home-manager-stable-nixos",
"hyprpanel-stable-nixos": "hyprpanel-stable-nixos",
"impermanence-stable-nixos": "impermanence-stable-nixos",
"nix-flatpak-stable-nixos": "nix-flatpak-stable-nixos", "nix-flatpak-stable-nixos": "nix-flatpak-stable-nixos",
"nixpkgs": "nixpkgs", "nix-gaming-stable-nixos": "nix-gaming-stable-nixos",
"nixos-hardware-stable-nixos": "nixos-hardware-stable-nixos",
"nixpkgs": "nixpkgs_2",
"nixpkgs-stable-nixos": "nixpkgs-stable-nixos", "nixpkgs-stable-nixos": "nixpkgs-stable-nixos",
"nixpkgs-unstable": "nixpkgs-unstable",
"nixverse": "nixverse", "nixverse": "nixverse",
"sops-nix-stable-nixos": "sops-nix-stable-nixos",
"stylix-stable-nixos": "stylix-stable-nixos",
"zen-browser-stable-nixos": "zen-browser-stable-nixos" "zen-browser-stable-nixos": "zen-browser-stable-nixos"
} }
}, },
"sops-nix-stable-nixos": {
"inputs": {
"nixpkgs": [
"nixpkgs-stable-nixos"
]
},
"locked": {
"lastModified": 1754988908,
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
"type": "github"
},
"original": {
"owner": "Mic92",
"repo": "sops-nix",
"type": "github"
}
},
"stylix-stable-nixos": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_3",
"gnome-shell": "gnome-shell",
"nixpkgs": [
"nixpkgs"
],
"nur": "nur",
"systems": "systems_2",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1756812894,
"narHash": "sha256-wZfNe3ms+dS2cUEGe8ygqNxBHGQCRoJQuQM9xFgGad0=",
"owner": "danth",
"repo": "stylix",
"rev": "a9553a7486c86259b7678235cc26cfd70296251d",
"type": "github"
},
"original": {
"owner": "danth",
"ref": "release-25.05",
"repo": "stylix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1735730497,
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1750770351,
"narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1751159871,
"narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1751158968,
"narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
},
"treefmt-nix": { "treefmt-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -264,11 +842,33 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1733761991, "lastModified": 1749194973,
"narHash": "sha256-s4DalCDepD22jtKL5Nw6f4LP5UwoMcPzPZgHWjAfqbQ=", "narHash": "sha256-eEy8cuS0mZ2j/r/FE0/LYBSBcIs/MKOIVakwHVuqTfk=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "0ce9d149d99bc383d1f2d85f31f6ebd146e46085", "rev": "a05be418a1af1198ca0f63facb13c985db4cb3c5",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": [
"stylix-stable-nixos",
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -279,17 +879,17 @@
}, },
"zen-browser-stable-nixos": { "zen-browser-stable-nixos": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1751161919, "lastModified": 1756941389,
"narHash": "sha256-t08tIneq3fcA2eRZVMR6Kt1MCJHpPwc+5pDHGVOJUbA=", "narHash": "sha256-r7Km2PY1gxpNmq7dPbs89JiyHiJ5zRCF6cBPyb2WWGY=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "0210fe94de8d6825ceb15249bf03840c8ca44e2b", "rev": "d197dd7556567a7a4174dee543286e5e65198379",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -2,21 +2,66 @@
inputs = { inputs = {
self.submodules = true; self.submodules = true;
nixpkgs-stable-nixos.url = "github:nixos/nixpkgs/nixos-25.05"; nixpkgs-stable-nixos.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nixverse = { nixverse = {
url = "github:hgl/nixverse"; url = "github:hgl/nixverse?ref=084a07f43829857fc760e70212c497d2f40eaa3c";
inputs.nixpkgs.follows = "nixpkgs-stable-nixos"; inputs.nixpkgs.follows = "nixpkgs-stable-nixos";
}; };
auto-cpufreq-stable-nixos = {
url = "github:AdnanHodzic/auto-cpufreq";
inputs.nixpkgs.follows = "nixpkgs";
};
disko-stable-nixos = { disko-stable-nixos = {
url = "github:nix-community/disko"; url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs-stable-nixos"; inputs.nixpkgs.follows = "nixpkgs-stable-nixos";
}; };
home-manager-stable-nixos = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprpanel-stable-nixos = {
url = "github:Jas-SinghFSU/Hyprpanel";
};
nix-flatpak-stable-nixos = { nix-flatpak-stable-nixos = {
url = "github:gmodena/nix-flatpak/?ref=latest"; url = "github:gmodena/nix-flatpak/?ref=latest";
}; };
nix-gaming-stable-nixos = {
url = "github:fufexan/nix-gaming";
inputs.nixpkgs.follows = "nixpkgs-stable-nixos";
};
impermanence-stable-nixos = {
url = "github:nix-community/impermanence";
};
#nixcord-stable-nixos = {
# url = "github:kaylorben/nixcord";
#};
nixos-hardware-stable-nixos = {
url = "github:NixOS/nixos-hardware/master";
};
sops-nix-stable-nixos = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs-stable-nixos";
};
stylix-stable-nixos = {
url = "github:danth/stylix/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser-stable-nixos = { zen-browser-stable-nixos = {
#url = "github:0xc000022070/zen-browser-flake?ref=ea79cbda8e685dd0f9c6e88adcfa7762a83e9067";
url = "github:0xc000022070/zen-browser-flake"; url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };

View File

@@ -1,38 +1,43 @@
{ pkgs, inputs, ... }: { inputs, ... }:
{ {
imports = [ imports = [
inputs.nix-flatpak.nixosModules.nix-flatpak inputs.nix-flatpak.nixosModules.nix-flatpak
inputs.stylix.nixosModules.stylix
inputs.home-manager.nixosModules.home-manager
inputs.sops-nix.nixosModules.sops
inputs.nix-gaming.nixosModules.pipewireLowLatency
./programs/appimage.nix
./programs/emulation.nix ./programs/emulation.nix
./programs/firefox.nix ./programs/firefox.nix
./programs/fonts.nix
./programs/gaming.nix ./programs/gaming.nix
./programs/general.nix ./programs/general.nix
./programs/git.nix ./programs/git.nix
./programs/gstreamer.nix
./programs/hyprland.nix
./programs/kde.nix ./programs/kde.nix
./programs/obs-studio.nix
./programs/open-tv.nix
./programs/session-desktop.nix ./programs/session-desktop.nix
./programs/steam.nix ./programs/steam.nix
./programs/zen-browser.nix ./programs/zen-browser.nix
./scripts/upgrade-diff.nix ./scripts/upgrade-diff.nix
./services/blueman.nix
./services/cups.nix ./services/cups.nix
./services/desktopmanager.nix ./services/desktopmanager.nix
./services/displaymanager.nix ./services/displaymanager.nix
./services/nix-flatpak.nix ./services/nix-flatpak.nix
./services/sound.nix ./services/sound.nix
./system/bluetooth.nix ./system/bluetooth.nix
./system/bootloader.nix
./system/environment.nix
./system/locale.nix ./system/locale.nix
./system/networking.nix
./system/nixos.nix
./system/security.nix ./system/security.nix
./system/sops.nix
./system/time.nix ./system/time.nix
./system/users.nix ./system/users.nix
]; ];
nixpkgs = {
config.allowUnfree = true;
};
nix = {
gc.options = "--delete-older-than 30d";
optimise.automatic = true;
extraOptions = ''
experimental-features = nix-command flakes
'';
};
} }

View File

@@ -0,0 +1,77 @@
{ pkgs, inputs, ... }:
{
# Home Manager needs a bit of information about you and the paths it should
# manag:e.
home.username = "jay";
home.homeDirectory = "/home/jay";
imports = [
#inputs.nixcord.homeModules.nixcord
inputs.stylix.homeModules.stylix
./programs/alacritty.nix
./programs/bash.nix
./programs/btop.nix
./programs/emacs.nix
./programs/git.nix
./programs/hyprland.nix
./programs/hyprlock.nix
./programs/hyprpanel.nix
./programs/lazygit.nix
./programs/mangohud.nix
./programs/discord.nix
./programs/oh-my-posh.nix
./programs/qutebrowser.nix
./programs/rbw.nix
./programs/rofi.nix
./programs/stylix.nix
./programs/yazi.nix
./services/arrpc.nix
./services/fluidsynth.nix
./services/hypridle.nix
];
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "24.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
pkgs.libgtop
pkgs.powertop
pkgs.upower
#pkgs.mpvpaper
# pkgs.hyprlandPlugins.hyprtrails
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
".config/elinks/elinks.conf".source = ../../../../../private/dotfiles/elinks/elinks.conf;
".config/jellyfin-tui/config.yaml".source = ../../../../../private/dotfiles/jellyfin-tui/config.yaml;
".config/jellyfin-rpc/urls.json".source = ../../../../../private/dotfiles/jellyfin-rpc/urls.json;
".config/jellyfin-rpc/main.json".source = ../../../../../private/dotfiles/jellyfin-rpc/main.json;
".config/lvim/config.lua".source = ../../../../../private/dotfiles/lunarvim/config.lua;
".config/newsboat/config".source = ../../../../../private/dotfiles/newsboat/config;
".config/television/nix_channels.toml".source = ../../../../../private/dotfiles/television/nix_channels.toml;
"quickemu/kubuntu-24.04.conf".source = ../../../../../private/dotfiles/quickemu/kubuntu-24.04.conf;
};
home.sessionVariables = {
EDITOR = "nano";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# programs.starship.presets = [ "nerd-font-symbols" ];
}

View File

@@ -0,0 +1,12 @@
{ lib, ... }: {
programs.alacritty = lib.mkForce {
enable = true;
settings = {
window.opacity = 0.05;
font.normal = {
family = "BigBlueTermPlus Nerd Font";
style = "Regular";
};
};
};
}

View File

@@ -0,0 +1,3 @@
{ ... }: {
programs.bash.enable = true;
}

View File

@@ -0,0 +1,10 @@
{ ... }: {
programs.btop = {
enable = true;
settings = {
color_theme = "stylix";
theme_background = false;
};
};
}

View File

@@ -0,0 +1,9 @@
{ pkgs, ... }: {
home.packages = [
pkgs.betterdiscordctl
pkgs.discord
pkgs.legcord
pkgs.discover-overlay
];
}

View File

@@ -0,0 +1,5 @@
{ ... }: {
programs.emacs = {
enable = true;
};
}

View File

@@ -0,0 +1,12 @@
{ pkgs, ...}: {
programs.git = {
enable = true;
userEmail = "jay@zerojay.com";
userName = "jay";
extraConfig = {
credential.helper = "${
pkgs.git.override { withLibsecret = true; }
}/bin/git-credential-libsecret";
};
};
}

View File

@@ -0,0 +1,235 @@
{ ... }: {
wayland.windowManager.hyprland = {
# Allow home-manager to configure hyprland
enable = true;
xwayland.enable = true;
systemd.enable = true;
plugins = [
#pkgs.hyprlandPlugins.hyprtrails
#pkgs.hyprlandPlugins.hyprbars
#inputs.hyprland-plugins.packages."${pkgs.system}".hyprtrails
#inputs.hypr-darkwindow.packages.${pkgs.system}.Hypr-DarkWindow
];
settings = {
"$terminal" = "alacritty";
"$filemanager" = "dolphin";
"$menu" = "rofi -show drun -show-icons";
"$mainMod" = "SUPER";
bind = [
"$mainMod, Q, exec, $terminal"
"$mainMod, C, killactive,"
"$mainMod, M, exit,"
"$mainMod, E, exec, $fileManager"
"$mainMod, F, togglefloating,"
"$mainMod, R, exec, $menu"
"$mainMod, P, pseudo"
"$mainMod, J, togglesplit"
"$mainMod, l, exec, hyprlock"
# "$mainMod, V, exec, cliphist list | rofi -dmenu | cliphost decode | wl-copy"
"$mainMod, V, exec, $terminal --class clipse -e 'clipse'"
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
"$mainMod SHIFT, Q, exec, hdrop --floating --gap 60 --width 50 $terminal --class alacritty"
"$mainMod SHIFT, 1, movetoworkspace, 1"
"$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod SHIFT, 3, movetoworkspace, 3"
"$mainMod SHIFT, 4, movetoworkspace, 4"
"$mainMod SHIFT, 5, movetoworkspace, 5"
"$mainMod SHIFT, 6, movetoworkspace, 6"
"$mainMod SHIFT, 7, movetoworkspace, 7"
"$mainMod SHIFT, 8, movetoworkspace, 8"
"$mainMod SHIFT, 9, movetoworkspace, 9"
"$mainMod SHIFT, 0, movetoworkspace, 10"
"$mainMod SHIFT, right, resizeactive, 10 0"
"$mainMod SHIFT, left, resizeactive, -10 0"
"$mainMod SHIFT, up, resizeactive, 0 -10"
"$mainMod SHIFT, down, resizeactive, 0 10"
"$mainMod, S, exec, hyprshot -zm region --clipboard-only"
"$mainMod SHIFT, S, exec, hyprshot -zm region"
"$mainMod, F9, exec, playerctl previous"
"$mainMod, F10, exec, playerctl play-pause"
"$mainMod, F11, exec, playerctl next"
#"$mainMod, S, togglespecialworkspace, magic"
#"$mainMod SHIFT, S, movetoworkspace, special:magic"
];
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, 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 = [
"XCURSOR_SIZE,24"
"HYPRCURSOR_SIZE,24"
"LIBVA_DRIVER_NAME,nvidia"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
"ELECTRON_OZONE_PLATFORM_HINT,auto"
"NVD_BACKEND,direct"
];
general = {
layout = "dwindle";
gaps_in = 5;
gaps_out = 20;
border_size = 2;
#"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
#"col.inactive_border" = "rgba(595959aa)";
allow_tearing = true;
resize_on_border = true;
};
misc = {
enable_anr_dialog = false;
vrr = 0;
# anr_missed_pings = 3;
disable_hyprland_logo = true;
};
debug = {
full_cm_proto = true;
};
decoration = {
rounding = 10;
rounding_power = 2;
active_opacity = 1.0;
inactive_opacity = 1.0;
blur = {
enabled = false;
vibrancy = 0.1696;
passes = 1;
size = 3;
};
shadow = {
enabled = true;
range = 4;
render_power = 3;
#color = "rgba(1a1a1aee)";
};
};
animations = {
enabled = true;
bezier = [
"easeOutQuint,0.23,1,0.32,1"
"easeInOutCubic,0.65,0.05,0.36,1"
"linear,0,0,1,1"
"almostLinear,0.5,0.5,0.75,1.0"
"quick,0.15,0,0.1,1"
];
animation = [
"global, 1, 10, default"
"border, 1, 5.39, easeOutQuint"
"windows, 1, 4.79, easeOutQuint"
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
"windowsOut, 1, 1.49, linear, popin 87%"
"fadeIn, 1, 1.73, almostLinear"
"fadeOut, 1, 1.46, almostLinear"
"fade, 1, 3.03, quick"
"layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 1, 1.94, almostLinear, fade"
"workspacesIn, 1, 1.21, almostLinear, fade"
"workspacesOut, 1, 1.94, almostLinear, fade"
];
};
#"plugin:borders-plus-plus" = {
# add_borders = 1; # 0 - 9
# you can add up to 9 borders
#"col.border_1" = "rgb(ffffff)";
#"col.border_2" = "rgb(2222ff)";
# -1 means "default" as in the one defined in general:border_size
# border_size_1 = 10;
# border_size_2 = -1;
# makes outer edges match rounding of the parent. Turn on / off to better understand. Default = on.
# natural_rounding = "yes";
#};
#"plugin:hyprbars" = {
# enable = true;
#};
# Execute on startup.
exec-once = [
# "systemctl --user start hyprpolkitagent"
"steam --disable-gpu-compositing" # nvidia pls let me have nice things
#"vesktop"
"goofcord"
# "[workspace 9 silent] ELECTRON_OZONE_PLATFORM_HINT=x11 1password" # fix for promts not showing up anymore
"zen-twilight"
# "${pkgs.xorg.xhost}/bin/xhost +"
#"${pkgs.waybar}/bin/waybar &"
#"${pkgs.dunst}/bin/dunst &"
"clipse -listen"
#"streamcontroller"
#"session-desktop"
#"wl-clipboard-history -t"
#"wl-paste --watch cliphist store"
#"rm $HOME/.cache/cliphist/db"
#"hyprpanel &"
];
windowrulev2 = [
"workspace 1 silent, class:^(zen-twilight)$"
"workspace 2 silent, class:^(steam)$"
"workspace 3 silent, class:^(goofcord)$"
"workspace 4 silent, class:^(com.core447.StreamController)$"
"float,class:(clipse)$"
"size 622 652,class:(clipse)$"
];
};
};
}

View File

@@ -0,0 +1,3 @@
{ ... }: {
programs.hyprlock.enable = true;
}

View File

@@ -0,0 +1,511 @@
{ ... }: {
programs.hyprpanel = {
enable = true;
settings = {
"bar.layouts" = {
"0" = {
left = [ "dashboard" "separator" "microphone" "volume" "bluetooth" "hypridle" "separator" "network" "separator" "workspaces" "windowtitle" ];
middle = [ "media" "cava" ];
right = [ "cpu" "cputemp" "ram" "storage" "separator" "systray" "notifications" "battery" "separator" "weather" "clock" ];
};
};
bar = {
customModules = {
cava = {
showIcon = false;
};
cpuTemp.sensor = "/sys/devices/pci0000\:00/0000\:00\:18.3/hwmon/hwmon2/temp3_input";
netstat.rateUnit = "MiB";
weather.unit = "metric";
updates = {
label = true;
autoHide = false;
padZero = true;
pollingInterval = 14400000;
updateCommand = "cd ~/nixos-config/ && nix flake update && nix build .#nixosConfigurations.nixos.config.system.build.toplevel && nvd diff /run/current-system ./result | grep -e '\[U' | wc -l";
icon = {
pending = "󰏗";
updated = "󰏖";
};
};
};
launcher.autoDetectIcon = true;
media = {
truncation = true;
truncation_size = 70;
};
workspaces = {
show_icons = true;
showApplicationIcons = true;
ignored = "-\\\\d+";
};
network = {
showWifiInfo = true;
truncation = false;
label = true;
};
windowtitle = {
class_name = false;
custom_title = false;
truncation = true;
truncation_size = 70;
};
};
menus.clock = {
time = {
military = true;
hideSeconds = true;
};
weather = {
location = "Montreal";
key = "0bec3053c1c64737a5b42727251005";
unit = "metric";
};
};
menus.dashboard = {
directories = {
enabled = true;
left = {
directory1.command = "bash -c \"xdg-open $HOME/downloads/\"";
directory2.command = "bash -c \"xdg-open $HOME/videos/\"";
directory3.command = "bash -c \"xdg-open $HOME/games/\"";
directory3.label = " Games";
};
right = {
directory1.command = "bash -c \"xdg-open $HOME/documents/\"";
directory2.command = "bash -c \"xdg-open $HOME/pictures/\"";
directory3.command = "bash -c \"xdg-open $HOME/\"";
};
};
shortcuts = {
left = {
shortcut1 = {
command = "zen-twilight";
icon = "";
tooltip = "Zen Twilight";
};
shortcut2 = {
command = "steam --disable-gpu-compositing";
icon = "";
tooltip = "Steam";
};
shortcut3 = {
command = "vesktop";
tooltip = "Vesktop";
};
};
right = {
shortcut3.command = "hyprshot -zm region --clipboard-only";
};
};
stats.enable_gpu = true;
recording.path = "$HOME/Videos/recording";
};
menus.media = {
displayTime = true;
displayTimeTooltip = true;
};
theme = {
bar = {
transparent = true;
floating = false;
};
font = {
size = "12px";
name = "BigBlueTermPlus Nerd Font";
};
};
wallpaper.enable = false;
#bar.workspaces.workspaceIconMap = {
# "1" = "";
# "3" = "󰙯";
# "4" = "󰄛";
# };
theme.bar.menus.background = "#2e3440";
theme.bar.background = "#2e3440";
theme.bar.buttons.media.icon = "#88c0d0";
theme.bar.buttons.media.text = "#88c0d0";
theme.bar.buttons.icon = "#88c0d0";
theme.bar.buttons.text = "#88c0d0";
theme.bar.buttons.hover = "#434c53";
theme.bar.buttons.background = "#3b4252";
theme.bar.menus.text = "#d8dee9";
theme.bar.menus.border.color = "#434c53";
theme.bar.buttons.media.background = "#3b4252";
theme.bar.menus.menu.volume.text = "#d8dee9";
theme.bar.menus.menu.volume.card.color = "#3b4252";
theme.bar.menus.menu.volume.label.color = "#81a1c1";
theme.bar.menus.popover.text = "#88c0d0";
theme.bar.menus.popover.background = "#2e3440";
theme.bar.menus.menu.dashboard.powermenu.shutdown = "#8fbcbb";
theme.bar.menus.menu.dashboard.powermenu.confirmation.deny = "#8fbcbb";
theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm = "#8fbcbb";
theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text = "#2e3440";
theme.bar.menus.menu.dashboard.powermenu.confirmation.body = "#d8dee9";
theme.bar.menus.menu.dashboard.powermenu.confirmation.label = "#88c0d0";
theme.bar.menus.menu.dashboard.powermenu.confirmation.border = "#434c53";
theme.bar.menus.menu.dashboard.powermenu.confirmation.background = "#2e3440";
theme.bar.menus.menu.dashboard.powermenu.confirmation.card = "#3b4252";
theme.bar.menus.menu.notifications.switch.puck = "#434c53";
theme.bar.menus.menu.notifications.switch.disabled = "#434c53";
theme.bar.menus.menu.notifications.switch.enabled = "#88c0d0";
theme.bar.menus.menu.notifications.clear = "#8fbcbb";
theme.bar.menus.menu.notifications.switch_divider = "#434c53";
theme.bar.menus.menu.notifications.border = "#434c53";
theme.bar.menus.menu.notifications.card = "#3b4252";
theme.bar.menus.menu.notifications.background = "#2e3440";
theme.bar.menus.menu.notifications.no_notifications_label = "#434c53";
theme.bar.menus.menu.notifications.label = "#88c0d0";
theme.bar.menus.menu.dashboard.monitors.disk.label = "#8fbcbb";
theme.bar.menus.menu.dashboard.monitors.disk.bar = "#8fbcbb";
theme.bar.menus.menu.dashboard.monitors.disk.icon = "#8fbcbb";
theme.bar.menus.menu.dashboard.monitors.gpu.label = "#8fbcbb";
theme.bar.menus.menu.dashboard.monitors.gpu.bar = "#8fbcbb";
theme.bar.menus.menu.dashboard.monitors.gpu.icon = "#8fbcbb";
theme.bar.menus.menu.dashboard.monitors.ram.label = "#81a1c1";
theme.bar.menus.menu.dashboard.monitors.ram.bar = "#81a1c1";
theme.bar.menus.menu.dashboard.monitors.ram.icon = "#81a1c1";
theme.bar.menus.menu.dashboard.monitors.cpu.label = "#81a1c1";
theme.bar.menus.menu.dashboard.monitors.cpu.bar = "#81a1c1";
theme.bar.menus.menu.dashboard.monitors.cpu.icon = "#81a1c1";
theme.bar.menus.menu.dashboard.monitors.bar_background = "#434c53";
theme.bar.menus.menu.dashboard.directories.right.bottom.color = "#88c0d0";
theme.bar.menus.menu.dashboard.directories.right.middle.color = "#88c0d0";
theme.bar.menus.menu.dashboard.directories.right.top.color = "#8fbcbb";
theme.bar.menus.menu.dashboard.directories.left.bottom.color = "#81a1c1";
theme.bar.menus.menu.dashboard.directories.left.middle.color = "#81a1c1";
theme.bar.menus.menu.dashboard.directories.left.top.color = "#8fbcbb";
theme.bar.menus.menu.dashboard.controls.input.text = "#2e3440";
theme.bar.menus.menu.dashboard.controls.input.background = "#8fbcbb";
theme.bar.menus.menu.dashboard.controls.volume.text = "#2e3440";
theme.bar.menus.menu.dashboard.controls.volume.background = "#81a1c1";
theme.bar.menus.menu.dashboard.controls.notifications.text = "#2e3440";
theme.bar.menus.menu.dashboard.controls.notifications.background = "#81a1c1";
theme.bar.menus.menu.dashboard.controls.bluetooth.text = "#2e3440";
theme.bar.menus.menu.dashboard.controls.bluetooth.background = "#88c0d0";
theme.bar.menus.menu.dashboard.controls.wifi.text = "#2e3440";
theme.bar.menus.menu.dashboard.controls.wifi.background = "#88c0d0";
theme.bar.menus.menu.dashboard.controls.disabled = "#434c53";
theme.bar.menus.menu.dashboard.shortcuts.recording = "#8fbcbb";
theme.bar.menus.menu.dashboard.shortcuts.text = "#2e3440";
theme.bar.menus.menu.dashboard.shortcuts.background = "#88c0d0";
theme.bar.menus.menu.dashboard.powermenu.sleep = "#88c0d0";
theme.bar.menus.menu.dashboard.powermenu.logout = "#8fbcbb";
theme.bar.menus.menu.dashboard.powermenu.restart = "#81a1c1";
theme.bar.menus.menu.dashboard.profile.name = "#8fbcbb";
theme.bar.menus.menu.dashboard.border.color = "#434c53";
theme.bar.menus.menu.dashboard.background.color = "#2e3440";
theme.bar.menus.menu.dashboard.card.color = "#3b4252";
theme.bar.menus.menu.clock.weather.hourly.temperature = "#8fbcbb";
theme.bar.menus.menu.clock.weather.hourly.icon = "#8fbcbb";
theme.bar.menus.menu.clock.weather.hourly.time = "#8fbcbb";
theme.bar.menus.menu.clock.weather.thermometer.extremelycold = "#88c0d0";
theme.bar.menus.menu.clock.weather.thermometer.cold = "#88c0d0";
theme.bar.menus.menu.clock.weather.thermometer.moderate = "#88c0d0";
theme.bar.menus.menu.clock.weather.thermometer.hot = "#81a1c1";
theme.bar.menus.menu.clock.weather.thermometer.extremelyhot = "#8fbcbb";
theme.bar.menus.menu.clock.weather.stats = "#8fbcbb";
theme.bar.menus.menu.clock.weather.status = "#8fbcbb";
theme.bar.menus.menu.clock.weather.temperature = "#d8dee9";
theme.bar.menus.menu.clock.weather.icon = "#8fbcbb";
theme.bar.menus.menu.clock.calendar.contextdays = "#434c53";
theme.bar.menus.menu.clock.calendar.days = "#d8dee9";
theme.bar.menus.menu.clock.calendar.currentday = "#8fbcbb";
theme.bar.menus.menu.clock.calendar.paginator = "#8fbcbb";
theme.bar.menus.menu.clock.calendar.weekdays = "#8fbcbb";
theme.bar.menus.menu.clock.calendar.yearmonth = "#8fbcbb";
theme.bar.menus.menu.clock.time.timeperiod = "#8fbcbb";
theme.bar.menus.menu.clock.time.time = "#8fbcbb";
theme.bar.menus.menu.clock.text = "#d8dee9";
theme.bar.menus.menu.clock.border.color = "#434c53";
theme.bar.menus.menu.clock.background.color = "#2e3440";
theme.bar.menus.menu.clock.card.color = "#3b4252";
theme.bar.menus.menu.battery.slider.puck = "#4c566a";
theme.bar.menus.menu.battery.slider.backgroundhover = "#434c53";
theme.bar.menus.menu.battery.slider.background = "#434c53";
theme.bar.menus.menu.battery.slider.primary = "#81a1c1";
theme.bar.menus.menu.battery.icons.active = "#81a1c1";
theme.bar.menus.menu.battery.icons.passive = "#5e81ac";
theme.bar.menus.menu.battery.listitems.active = "#81a1c1";
theme.bar.menus.menu.battery.listitems.passive = "#d8dee9";
theme.bar.menus.menu.battery.text = "#d8dee9";
theme.bar.menus.menu.battery.label.color = "#81a1c1";
theme.bar.menus.menu.battery.border.color = "#434c53";
theme.bar.menus.menu.battery.background.color = "#2e3440";
theme.bar.menus.menu.battery.card.color = "#3b4252";
theme.bar.menus.menu.systray.dropdownmenu.divider = "#3b4252";
theme.bar.menus.menu.systray.dropdownmenu.text = "#d8dee9";
theme.bar.menus.menu.systray.dropdownmenu.background = "#2e3440";
theme.bar.menus.menu.bluetooth.iconbutton.active = "#88c0d0";
theme.bar.menus.menu.bluetooth.iconbutton.passive = "#d8dee9";
theme.bar.menus.menu.bluetooth.icons.active = "#88c0d0";
theme.bar.menus.menu.bluetooth.icons.passive = "#5e81ac";
theme.bar.menus.menu.bluetooth.listitems.active = "#88c0d0";
theme.bar.menus.menu.bluetooth.listitems.passive = "#d8dee9";
theme.bar.menus.menu.bluetooth.switch.puck = "#434c53";
theme.bar.menus.menu.bluetooth.switch.disabled = "#434c53";
theme.bar.menus.menu.bluetooth.switch.enabled = "#88c0d0";
theme.bar.menus.menu.bluetooth.switch_divider = "#434c53";
theme.bar.menus.menu.bluetooth.status = "#4c566a";
theme.bar.menus.menu.bluetooth.text = "#d8dee9";
theme.bar.menus.menu.bluetooth.label.color = "#88c0d0";
theme.bar.menus.menu.bluetooth.border.color = "#434c53";
theme.bar.menus.menu.bluetooth.background.color = "#2e3440";
theme.bar.menus.menu.bluetooth.card.color = "#3b4252";
theme.bar.menus.menu.network.iconbuttons.active = "#88c0d0";
theme.bar.menus.menu.network.iconbuttons.passive = "#d8dee9";
theme.bar.menus.menu.network.icons.active = "#88c0d0";
theme.bar.menus.menu.network.icons.passive = "#5e81ac";
theme.bar.menus.menu.network.listitems.active = "#88c0d0";
theme.bar.menus.menu.network.listitems.passive = "#d8dee9";
theme.bar.menus.menu.network.status.color = "#4c566a";
theme.bar.menus.menu.network.text = "#d8dee9";
theme.bar.menus.menu.network.label.color = "#88c0d0";
theme.bar.menus.menu.network.border.color = "#434c53";
theme.bar.menus.menu.network.background.color = "#2e3440";
theme.bar.menus.menu.network.card.color = "#3b4252";
theme.bar.menus.menu.volume.input_slider.puck = "#434c53";
theme.bar.menus.menu.volume.input_slider.backgroundhover = "#434c53";
theme.bar.menus.menu.volume.input_slider.background = "#434c53";
theme.bar.menus.menu.volume.input_slider.primary = "#81a1c1";
theme.bar.menus.menu.volume.audio_slider.puck = "#434c53";
theme.bar.menus.menu.volume.audio_slider.backgroundhover = "#434c53";
theme.bar.menus.menu.volume.audio_slider.background = "#434c53";
theme.bar.menus.menu.volume.audio_slider.primary = "#81a1c1";
theme.bar.menus.menu.volume.icons.active = "#81a1c1";
theme.bar.menus.menu.volume.icons.passive = "#5e81ac";
theme.bar.menus.menu.volume.iconbutton.active = "#81a1c1";
theme.bar.menus.menu.volume.iconbutton.passive = "#d8dee9";
theme.bar.menus.menu.volume.listitems.active = "#81a1c1";
theme.bar.menus.menu.volume.listitems.passive = "#d8dee9";
theme.bar.menus.menu.volume.border.color = "#434c53";
theme.bar.menus.menu.volume.background.color = "#2e3440";
theme.bar.menus.menu.media.slider.puck = "#4c566a";
theme.bar.menus.menu.media.slider.backgroundhover = "#434c53";
theme.bar.menus.menu.media.slider.background = "#434c53";
theme.bar.menus.menu.media.slider.primary = "#8fbcbb";
theme.bar.menus.menu.media.buttons.text = "#2e3440";
theme.bar.menus.menu.media.buttons.background = "#88c0d0";
theme.bar.menus.menu.media.buttons.enabled = "#8fbcbb";
theme.bar.menus.menu.media.buttons.inactive = "#434c53";
theme.bar.menus.menu.media.border.color = "#434c53";
theme.bar.menus.menu.media.background.color = "#2e3440";
theme.bar.menus.menu.media.album = "#8fbcbb";
theme.bar.menus.menu.media.artist = "#8fbcbb";
theme.bar.menus.menu.media.song = "#88c0d0";
theme.bar.menus.tooltip.text = "#d8dee9";
theme.bar.menus.tooltip.background = "#2e3440";
theme.bar.menus.dropdownmenu.divider = "#3b4252";
theme.bar.menus.dropdownmenu.text = "#d8dee9";
theme.bar.menus.dropdownmenu.background = "#2e3440";
theme.bar.menus.slider.puck = "#4c566a";
theme.bar.menus.slider.backgroundhover = "#434c53";
theme.bar.menus.slider.background = "#434c53";
theme.bar.menus.slider.primary = "#88c0d0";
theme.bar.menus.progressbar.background = "#434c53";
theme.bar.menus.progressbar.foreground = "#88c0d0";
theme.bar.menus.iconbuttons.active = "#88c0d0";
theme.bar.menus.iconbuttons.passive = "#d8dee9";
theme.bar.menus.buttons.text = "#2e3440";
theme.bar.menus.buttons.disabled = "#434c53";
theme.bar.menus.buttons.active = "#8fbcbb";
theme.bar.menus.buttons.default = "#88c0d0";
theme.bar.menus.switch.puck = "#434c53";
theme.bar.menus.switch.disabled = "#434c53";
theme.bar.menus.switch.enabled = "#88c0d0";
theme.bar.menus.icons.active = "#88c0d0";
theme.bar.menus.icons.passive = "#434c53";
theme.bar.menus.listitems.active = "#88c0d0";
theme.bar.menus.listitems.passive = "#d8dee9";
theme.bar.menus.label = "#88c0d0";
theme.bar.menus.feinttext = "#434c53";
theme.bar.menus.dimtext = "#6272a4";
theme.bar.menus.cards = "#3b4252";
theme.bar.buttons.notifications.total = "#88c0d0";
theme.bar.buttons.notifications.icon = "#88c0d0";
theme.bar.buttons.notifications.background = "#3b4252";
theme.bar.buttons.clock.icon = "#8fbcbb";
theme.bar.buttons.clock.text = "#8fbcbb";
theme.bar.buttons.clock.background = "#3b4252";
theme.bar.buttons.battery.icon = "#81a1c1";
theme.bar.buttons.battery.text = "#81a1c1";
theme.bar.buttons.battery.background = "#3b4252";
theme.bar.buttons.systray.background = "#3b4252";
theme.bar.buttons.bluetooth.icon = "#88c0d0";
theme.bar.buttons.bluetooth.text = "#88c0d0";
theme.bar.buttons.bluetooth.background = "#3b4252";
theme.bar.buttons.network.icon = "#88c0d0";
theme.bar.buttons.network.text = "#88c0d0";
theme.bar.buttons.network.background = "#3b4252";
theme.bar.buttons.volume.icon = "#81a1c1";
theme.bar.buttons.volume.text = "#81a1c1";
theme.bar.buttons.volume.background = "#3b4252";
theme.bar.buttons.windowtitle.icon = "#8fbcbb";
theme.bar.buttons.windowtitle.text = "#8fbcbb";
theme.bar.buttons.windowtitle.background = "#3b4252";
theme.bar.buttons.workspaces.active = "#8fbcbb";
theme.bar.buttons.workspaces.occupied = "#81a1c1";
theme.bar.buttons.workspaces.available = "#88c0d0";
theme.bar.buttons.workspaces.hover = "#434c53";
theme.bar.buttons.workspaces.background = "#3b4252";
theme.bar.buttons.dashboard.icon = "#81a1c1";
theme.bar.buttons.dashboard.background = "#3b4252";
theme.osd.label = "#88c0d0";
theme.osd.icon = "#2e3440";
theme.osd.bar_overflow_color = "#8fbcbb";
theme.osd.bar_empty_color = "#434c53";
theme.osd.bar_color = "#88c0d0";
theme.osd.icon_container = "#88c0d0";
theme.osd.bar_container = "#2e3440";
theme.notification.close_button.label = "#2e3440";
theme.notification.close_button.background = "#8fbcbb";
theme.notification.labelicon = "#88c0d0";
theme.notification.text = "#d8dee9";
theme.notification.time = "#4c566a";
theme.notification.border = "#434c53";
theme.notification.label = "#88c0d0";
theme.notification.actions.text = "#2e3440";
theme.notification.actions.background = "#88c0d0";
theme.notification.background = "#2e3440";
theme.bar.buttons.workspaces.numbered_active_highlighted_text_color = "#21252b";
theme.bar.buttons.workspaces.numbered_active_underline_color = "#ffffff";
theme.bar.menus.menu.media.card.color = "#3b4252";
theme.bar.menus.check_radio_button.background = "#2e3440";
theme.bar.menus.check_radio_button.active = "#88c0d0";
theme.bar.buttons.style = "default";
theme.bar.menus.menu.notifications.pager.button = "#88c0d0";
theme.bar.menus.menu.notifications.scrollbar.color = "#88c0d0";
theme.bar.menus.menu.notifications.pager.label = "#5e81ac";
theme.bar.menus.menu.notifications.pager.background = "#2e3440";
theme.bar.buttons.clock.icon_background = "#8fbcbb";
theme.bar.buttons.modules.ram.icon = "#81a1c1";
theme.bar.buttons.modules.storage.icon_background = "#8fbcbb";
theme.bar.menus.popover.border = "#2e3440";
theme.bar.buttons.volume.icon_background = "#81a1c1";
theme.bar.menus.menu.power.buttons.sleep.icon_background = "#88c0d0";
theme.bar.menus.menu.power.buttons.restart.text = "#81a1c1";
theme.bar.buttons.modules.updates.background = "#3b4252";
theme.bar.buttons.modules.storage.icon = "#8fbcbb";
theme.bar.buttons.modules.netstat.background = "#3b4252";
theme.bar.buttons.modules.weather.icon = "#88c0d0";
theme.bar.buttons.modules.netstat.text = "#8fbcbb";
theme.bar.buttons.modules.storage.background = "#3b4252";
theme.bar.buttons.modules.power.icon = "#8fbcbb";
theme.bar.buttons.modules.storage.text = "#8fbcbb";
theme.bar.buttons.modules.cpu.background = "#3b4252";
theme.bar.menus.menu.power.border.color = "#434c53";
theme.bar.buttons.network.icon_background = "#caa6f7";
theme.bar.buttons.modules.power.icon_background = "#8fbcbb";
theme.bar.menus.menu.power.buttons.logout.icon = "#2e3440";
theme.bar.menus.menu.power.buttons.restart.icon_background = "#81a1c1";
theme.bar.menus.menu.power.buttons.restart.icon = "#2e3440";
theme.bar.buttons.modules.cpu.icon = "#8fbcbb";
theme.bar.buttons.battery.icon_background = "#81a1c1";
theme.bar.buttons.modules.kbLayout.icon_background = "#88c0d0";
theme.bar.buttons.modules.weather.text = "#88c0d0";
theme.bar.menus.menu.power.buttons.shutdown.icon = "#2e3440";
theme.bar.menus.menu.power.buttons.sleep.text = "#88c0d0";
theme.bar.buttons.modules.weather.icon_background = "#88c0d0";
theme.bar.menus.menu.power.buttons.shutdown.background = "#3b4252";
theme.bar.buttons.media.icon_background = "#88c0d0";
theme.bar.menus.menu.power.buttons.logout.background = "#3b4252";
theme.bar.buttons.modules.kbLayout.icon = "#88c0d0";
theme.bar.buttons.modules.ram.icon_background = "#81a1c1";
theme.bar.menus.menu.power.buttons.shutdown.icon_background = "#8fbcbb";
theme.bar.menus.menu.power.buttons.shutdown.text = "#8fbcbb";
theme.bar.menus.menu.power.buttons.sleep.background = "#3b4252";
theme.bar.buttons.modules.ram.text = "#81a1c1";
theme.bar.menus.menu.power.buttons.logout.text = "#8fbcbb";
theme.bar.buttons.modules.updates.icon_background = "#88c0d0";
theme.bar.buttons.modules.kbLayout.background = "#3b4252";
theme.bar.buttons.modules.power.background = "#3b4252";
theme.bar.buttons.modules.weather.background = "#3b4252";
theme.bar.buttons.icon_background = "#3b4252";
theme.bar.menus.menu.power.background.color = "#2e3440";
theme.bar.buttons.modules.ram.background = "#3b4252";
theme.bar.buttons.modules.netstat.icon = "#8fbcbb";
theme.bar.buttons.windowtitle.icon_background = "#8fbcbb";
theme.bar.buttons.modules.cpu.icon_background = "#8fbcbb";
theme.bar.menus.menu.power.buttons.logout.icon_background = "#8fbcbb";
theme.bar.buttons.modules.updates.text = "#88c0d0";
theme.bar.menus.menu.power.buttons.sleep.icon = "#2e3440";
theme.bar.buttons.bluetooth.icon_background = "#89dbeb";
theme.bar.menus.menu.power.buttons.restart.background = "#3b4252";
theme.bar.buttons.modules.updates.icon = "#88c0d0";
theme.bar.buttons.modules.cpu.text = "#8fbcbb";
theme.bar.buttons.modules.netstat.icon_background = "#8fbcbb";
theme.bar.buttons.modules.kbLayout.text = "#88c0d0";
theme.bar.buttons.notifications.icon_background = "#88c0d0";
theme.bar.buttons.modules.power.border = "#8fbcbb";
theme.bar.buttons.modules.weather.border = "#88c0d0";
theme.bar.buttons.modules.updates.border = "#88c0d0";
theme.bar.buttons.modules.kbLayout.border = "#88c0d0";
theme.bar.buttons.modules.netstat.border = "#8fbcbb";
theme.bar.buttons.modules.storage.border = "#8fbcbb";
theme.bar.buttons.modules.cpu.border = "#8fbcbb";
theme.bar.buttons.modules.ram.border = "#81a1c1";
theme.bar.buttons.notifications.border = "#88c0d0";
theme.bar.buttons.clock.border = "#8fbcbb";
theme.bar.buttons.battery.border = "#81a1c1";
theme.bar.buttons.systray.border = "#434c53";
theme.bar.buttons.bluetooth.border = "#88c0d0";
theme.bar.buttons.network.border = "#88c0d0";
theme.bar.buttons.volume.border = "#81a1c1";
theme.bar.buttons.media.border = "#88c0d0";
theme.bar.buttons.windowtitle.border = "#8fbcbb";
theme.bar.buttons.workspaces.border = "#2e3440";
theme.bar.buttons.dashboard.border = "#81a1c1";
theme.bar.buttons.modules.submap.background = "#3b4252";
theme.bar.buttons.modules.submap.text = "#8fbcbb";
theme.bar.buttons.modules.submap.border = "#8fbcbb";
theme.bar.buttons.modules.submap.icon = "#8fbcbb";
theme.bar.buttons.modules.submap.icon_background = "#3b4252";
theme.bar.menus.menu.network.switch.enabled = "#88c0d0";
theme.bar.menus.menu.network.switch.disabled = "#434c53";
theme.bar.menus.menu.network.switch.puck = "#434c53";
theme.bar.buttons.systray.customIcon = "#d8dee9";
theme.bar.border.color = "#88c0d0";
theme.bar.menus.menu.media.timestamp = "#d8dee9";
theme.bar.buttons.borderColor = "#88c0d0";
theme.bar.buttons.modules.hyprsunset.icon = "#81a1c1";
theme.bar.buttons.modules.hyprsunset.background = "#3b4252";
theme.bar.buttons.modules.hyprsunset.icon_background = "#81a1c1";
theme.bar.buttons.modules.hyprsunset.text = "#81a1c1";
theme.bar.buttons.modules.hyprsunset.border = "#81a1c1";
theme.bar.buttons.modules.hypridle.icon = "#8fbcbb";
theme.bar.buttons.modules.hypridle.background = "#3b4252";
theme.bar.buttons.modules.hypridle.icon_background = "#8fbcbb";
theme.bar.buttons.modules.hypridle.text = "#8fbcbb";
theme.bar.buttons.modules.hypridle.border = "#8fbcbb";
theme.bar.menus.menu.network.scroller.color = "#88c0d0";
theme.bar.menus.menu.bluetooth.scroller.color = "#88c0d0";
theme.bar.buttons.modules.cava.text = "#8fbcbb";
theme.bar.buttons.modules.cava.background = "#3b4252";
theme.bar.buttons.modules.cava.icon_background = "#3b4252";
theme.bar.buttons.modules.cava.icon = "#8fbcbb";
theme.bar.buttons.modules.cava.border = "#8fbcbb";
theme.bar.buttons.modules.microphone.border = "#8fbcbb";
theme.bar.buttons.modules.microphone.background = "#3b4252";
theme.bar.buttons.modules.microphone.text = "#8fbcbb";
theme.bar.buttons.modules.microphone.icon = "#8fbcbb";
theme.bar.buttons.modules.microphone.icon_background = "#3b4252";
theme.bar.buttons.modules.worldclock.text = "#8fbcbb";
theme.bar.buttons.modules.worldclock.background = "#3b4252";
theme.bar.buttons.modules.worldclock.icon_background = "#8fbcbb";
theme.bar.buttons.modules.worldclock.icon = "#8fbcbb";
theme.bar.buttons.modules.worldclock.border = "#8fbcbb";
};
};
}

View File

@@ -0,0 +1,3 @@
{ ... }: {
programs.lazygit.enable = true;
}

View File

@@ -0,0 +1,16 @@
{ lib, ... } : {
programs.mangohud = {
enable = true;
enableSessionWide = true;
settings = {
position = "top-right";
cpu_stats = true;
gpu_stats = true;
fps = true;
font_size = 12;
cellpadding_y = -0.070;
background_alpha = lib.mkForce 0.5;
alpha = lib.mkForce 0.75;
};
};
}

View File

@@ -0,0 +1,36 @@
{ ... }: {
programs.nixcord = {
enable = true;
discord = {
enable = true;
vencord.enable = true;
openASAR.enable = true;
};
vesktop.enable = true;
config = {
autoUpdate = true;
plugins = {
alwaysAnimate.enable = true;
alwaysTrust.enable = true;
copyFileContents.enable = true;
clearURLs.enable = true;
dearrow.enable = true;
friendsSince.enable = true;
fullSearchContext.enable = true;
gameActivityToggle.enable = true;
noF1.enable = true;
relationshipNotifier = {
enable = true;
friendRequestCancels = true;
friends = true;
groups = true;
notices = true;
offlineRemovals = true;
servers = true;
};
serverInfo.enable = true;
};
};
};
}

View File

@@ -0,0 +1,7 @@
{ ... }: {
programs.oh-my-posh = {
enable = true;
enableBashIntegration = true;
useTheme = "blueish";
};
}

View File

@@ -0,0 +1,6 @@
{ ... }: {
programs.qutebrowser = {
enable = true;
};
}

View File

@@ -0,0 +1,3 @@
{ ... }: {
programs.rbw.enable = true;
}

View File

@@ -0,0 +1,6 @@
{ pkgs, ...} : {
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
};
}

View File

@@ -0,0 +1,16 @@
{ pkgs, ... }: {
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/nord.yaml";
image = ../../../wallpapers/nixos-wallpaper.png;
# Wipeout HD Theme
#image = ./wipeout.png;
# Wipeout HD Reverse Theme
#image = ./wipeoutreverse.png;
targets = {
# hyprpaper.enable = lib.mkForce false;
mako.enable = false;
qt.enable = false;
};
};
}

View File

@@ -0,0 +1,18 @@
{ pkgs, ...}: {
programs.yazi = {
enable = true;
package = pkgs.yazi;
plugins = {
"bypass" = pkgs.yaziPlugins.bypass;
"chmod" = pkgs.yaziPlugins.chmod;
"full-border" = pkgs.yaziPlugins.full-border;
"lazygit" = pkgs.yaziPlugins.lazygit;
"mediainfo" = pkgs.yaziPlugins.mediainfo;
"no-status" = pkgs.yaziPlugins.no-status;
"ouch" = pkgs.yaziPlugins.ouch;
"restore" = pkgs.yaziPlugins.restore;
"smart-enter" = pkgs.yaziPlugins.smart-enter;
"toggle-pane" = pkgs.yaziPlugins.toggle-pane;
};
};
}

View File

@@ -0,0 +1,3 @@
{ ... }: {
services.arrpc.enable = true;
}

View File

@@ -0,0 +1,6 @@
{ ... }: {
services.fluidsynth = {
enable = true;
soundService = "pipewire-pulse";
};
}

View File

@@ -0,0 +1,17 @@
{ ... }: {
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock";
};
listener = [
{
timeout = 300;
on-timeout = "loginctl lock-session";
}
];
};
};
}

View File

@@ -0,0 +1,5 @@
{ ... }: {
programs.appimage.enable = true;
programs.appimage.binfmt = true;
}

View File

@@ -0,0 +1,40 @@
{ pkgs, ... }: let
pname = "Drop%20Desktop%20Client";
version = "0.3.0";
src = pkgs.fetchurl {
url = "https://github.com/Drop-OSS/drop-app/releases/download/v0.3.0/Drop.Desktop.Client_0.3.0_amd64.AppImage";
hash = "sha256-VVDzotrgu68CAGr4EqpWlW8ZOhf4cbt4a46WHJTnxjo=";
};
appimageContents = pkgs.appimageTools.extract {inherit pname version src;};
in
pkgs.appimageTools.wrapType2 {
inherit pname version src;
pkgs = pkgs;
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
substituteInPlace $out/share/applications/${pname}.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
cp -r ${appimageContents}/usr/share/icons $out/share
# unless linked, the binary is placed in $out/bin/cursor-someVersion
# ln -s $out/bin/${pname}-${version} $out/bin/${pname}
'';
extraBwrapArgs = [
"--bind-try /etc/nixos/ /etc/nixos/"
];
# vscode likes to kill the parent so that the
# gui application isn't attached to the terminal session
dieWithParent = false;
extraPkgs = pkgs: with pkgs; [
unzip
autoPatchelfHook
asar
haskellPackages.gi-ayatana-appindicator3
# override doesn't preserve splicing https://github.com/NixOS/nixpkgs/issues/132651
(buildPackages.wrapGAppsHook.override {inherit (buildPackages) makeWrapper;})
];
}

View File

@@ -0,0 +1,11 @@
{ pkgs, lib, inputs, ... }:
let
dropApp = import ./appimages/drop.nix { inherit pkgs; };
in
{
# ...
environment.systemPackages = with pkgs; [
dropApp
];
}

View File

@@ -1,4 +1,4 @@
{ pkgs, inputs, ... }: { { pkgs, ... }: {
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = [ environment.systemPackages = [
@@ -13,5 +13,9 @@
services.flatpak.packages = [ services.flatpak.packages = [
"io.github.ryubing.Ryujinx" "io.github.ryubing.Ryujinx"
]; ];
environment.shellAliases = {
ryujinx = "flatpak run io.github.ryubing.Ryujinx";
};
} }

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }: { { ... }: {
programs.firefox.enable = true; programs.firefox.enable = true;
} }

View File

@@ -0,0 +1,84 @@
{ pkgs, ... }: {
fonts.packages = [
pkgs.adwaita-fonts
pkgs.anakron
pkgs.nerd-fonts._0xproto
pkgs.nerd-fonts._3270
pkgs.nerd-fonts.agave
pkgs.nerd-fonts.anonymice
pkgs.nerd-fonts.arimo
pkgs.nerd-fonts.aurulent-sans-mono
pkgs.nerd-fonts.bigblue-terminal
pkgs.nerd-fonts.bitstream-vera-sans-mono
pkgs.nerd-fonts.blex-mono
pkgs.nerd-fonts.caskaydia-cove
pkgs.nerd-fonts.caskaydia-mono
pkgs.nerd-fonts.code-new-roman
pkgs.nerd-fonts.comic-shanns-mono
pkgs.nerd-fonts.commit-mono
pkgs.nerd-fonts.cousine
pkgs.nerd-fonts.d2coding
pkgs.nerd-fonts.daddy-time-mono
pkgs.nerd-fonts.departure-mono
pkgs.nerd-fonts.dejavu-sans-mono
pkgs.nerd-fonts.droid-sans-mono
pkgs.nerd-fonts.envy-code-r
pkgs.nerd-fonts.fantasque-sans-mono
pkgs.nerd-fonts.fira-code
pkgs.nerd-fonts.fira-mono
pkgs.nerd-fonts.geist-mono
pkgs.nerd-fonts.go-mono
pkgs.nerd-fonts.gohufont
pkgs.nerd-fonts.hack
pkgs.nerd-fonts.hasklug
pkgs.nerd-fonts.heavy-data
pkgs.nerd-fonts.hurmit
pkgs.nerd-fonts.im-writing
pkgs.nerd-fonts.inconsolata
pkgs.nerd-fonts.inconsolata-go
pkgs.nerd-fonts.inconsolata-lgc
pkgs.nerd-fonts.intone-mono
pkgs.nerd-fonts.iosevka
pkgs.nerd-fonts.iosevka-term
pkgs.nerd-fonts.iosevka-term-slab
pkgs.nerd-fonts.jetbrains-mono
pkgs.nerd-fonts.lekton
pkgs.nerd-fonts.liberation
pkgs.nerd-fonts.lilex
pkgs.nerd-fonts.martian-mono
pkgs.nerd-fonts.meslo-lg
pkgs.nerd-fonts.monaspace
pkgs.nerd-fonts.monofur
pkgs.nerd-fonts.monoid
pkgs.nerd-fonts.mononoki
pkgs.nerd-fonts.noto
pkgs.nerd-fonts.open-dyslexic
pkgs.nerd-fonts.overpass
pkgs.nerd-fonts.profont
pkgs.nerd-fonts.proggy-clean-tt
pkgs.nerd-fonts.recursive-mono
pkgs.nerd-fonts.roboto-mono
pkgs.nerd-fonts.shure-tech-mono
pkgs.nerd-fonts.sauce-code-pro
pkgs.nerd-fonts.space-mono
pkgs.nerd-fonts.symbols-only
pkgs.nerd-fonts.terminess-ttf
pkgs.nerd-fonts.tinos
pkgs.nerd-fonts.ubuntu
pkgs.nerd-fonts.ubuntu-mono
pkgs.nerd-fonts.ubuntu-sans
pkgs.nerd-fonts.victor-mono
pkgs.nerd-fonts.zed-mono
pkgs.noto-fonts
pkgs.noto-fonts-cjk-sans
pkgs.noto-fonts-emoji
pkgs.liberation_ttf
pkgs.fira-code
pkgs.fira-code-symbols
pkgs.mplus-outline-fonts.githubRelease
pkgs.dina-font
pkgs.proggyfonts
pkgs.font-awesome
];
}

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }: { { pkgs, pkgs-unstable, ... }: {
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = [ environment.systemPackages = [
@@ -11,6 +11,8 @@
pkgs.protonup-qt pkgs.protonup-qt
pkgs.wineWowPackages.stable pkgs.wineWowPackages.stable
pkgs.winetricks pkgs.winetricks
pkgs-unstable.nero-umu
pkgs-unstable.protonplus
]; ];
} }

View File

@@ -1,4 +1,4 @@
{ config, inputs, lib, pkgs, ... }: { { pkgs, pkgs', ... }: {
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
@@ -11,19 +11,21 @@
environment.systemPackages = [ environment.systemPackages = [
pkgs.age pkgs.age
pkgs.arrpc
pkgs.alsa-utils pkgs.alsa-utils
pkgs.bitwarden-cli pkgs.bitwarden-cli
pkgs.bitwarden-menu pkgs.bitwarden-menu
pkgs.btop pkgs.btop
pkgs.chatterino2 pkgs.chatterino2
pkgs.clipse pkgs.clipse
#(pkgs.discord.override { withMoonlight = true; })
pkgs.dmidecode pkgs.dmidecode
pkgs.dysk pkgs.dysk
pkgs.elinks pkgs.elinks
pkgs.fastfetch pkgs.fastfetch
pkgs.gearlever
pkgs.git pkgs.git
pkgs.gpustat pkgs.gnumake
#pkgs.gpustat
pkgs.hdrop pkgs.hdrop
pkgs.htop pkgs.htop
pkgs.libmpg123 pkgs.libmpg123
@@ -31,11 +33,14 @@
pkgs.jellyfin-tui pkgs.jellyfin-tui
pkgs.lsd pkgs.lsd
pkgs.lshw pkgs.lshw
pkgs.lunarvim
pkgs.neovim pkgs.neovim
pkgs.newsboat pkgs.newsboat
pkgs.nix-melt pkgs.nix-melt
pkgs.nix-search-tv
pkgs.nvd pkgs.nvd
pkgs.nyxt pkgs.nyxt
pkgs.overlayed
pkgs.p7zip-rar pkgs.p7zip-rar
pkgs.pciutils pkgs.pciutils
pkgs.pinentry-curses pkgs.pinentry-curses
@@ -45,12 +50,15 @@
pkgs.rofi-rbw-wayland pkgs.rofi-rbw-wayland
pkgs.sops pkgs.sops
pkgs.teams-for-linux pkgs.teams-for-linux
pkgs.television
pkgs.tree pkgs.tree
pkgs.unrar pkgs.unrar
pkgs.unzip pkgs.unzip
pkgs.usbutils pkgs.usbutils
pkgs.vlc
pkgs.wf-recorder pkgs.wf-recorder
pkgs.xorg.xev pkgs.zip
pkgs'.nixverse
]; ];
} }

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }: { { ... }: {
programs.git.enable = true; programs.git.enable = true;
} }

View File

@@ -0,0 +1,15 @@
{ pkgs, ... }: {
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = [
pkgs.gst_all_1.gstreamer
pkgs.gst_all_1.gst-plugins-base
pkgs.gst_all_1.gst-plugins-good
pkgs.gst_all_1.gst-plugins-bad
pkgs.gst_all_1.gst-plugins-ugly
pkgs.gst_all_1.gst-libav
pkgs.gst_all_1.gst-vaapi
];
}

View File

@@ -0,0 +1,29 @@
{ pkgs, ... }: {
# Install hyprland
programs.hyprland = {
enable = true;
#package = inputs.hyprland.packages."${pkgs.system}".hyprland;
xwayland.enable = true;
};
xdg.portal.enable = true;
programs.hyprlock.enable = true;
environment.systemPackages = [
# Fix for hyprpanel network icon
pkgs.adwaita-icon-theme
pkgs.cava
pkgs.grim
pkgs.hyprpicker
pkgs.hyprshot
pkgs.jq
pkgs.libnotify
pkgs.swww
pkgs.wl-clipboard
pkgs.wlr-randr
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-wlr
pkgs.xdotool
];
}

View File

@@ -1,4 +1,4 @@
{ pkgs, inputs, ... }: { { pkgs, ... }: {
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = [ environment.systemPackages = [

View File

@@ -0,0 +1,17 @@
{ pkgs, ... }: {
programs.obs-studio = {
enable = true;
package = (pkgs.obs-studio.override {
cudaSupport = true;
});
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
obs-vkcapture
advanced-scene-switcher
];
};
}

View File

@@ -0,0 +1,10 @@
{ ... }: {
services.flatpak.packages = [
"dev.fredol.open-tv"
];
environment.shellAliases = {
open-tv = "flatpak run dev.fredol.open-tv";
};
}

View File

@@ -2,7 +2,10 @@
# Install steam. # Install steam.
programs = { programs = {
gamemode.enable = true; gamemode.enable = true;
gamescope.enable = true; gamescope = {
enable = true;
capSysNice = true;
};
steam = { steam = {
enable = true; enable = true;
@@ -10,6 +13,10 @@
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
extraCompatPackages = [
pkgs.proton-ge-bin
pkgs.steam-play-none
];
package = pkgs.steam.override { # Fix Overwatch and other games showing wrong timezone in-game. package = pkgs.steam.override { # Fix Overwatch and other games showing wrong timezone in-game.
extraProfile = '' extraProfile = ''
unset TZ unset TZ
@@ -23,7 +30,7 @@
}; };
environment.systemPackages = [ environment.systemPackages = [
pkgs.mangohud pkgs.samrewritten
]; ];
} }

View File

@@ -0,0 +1,3 @@
{ ... }: {
services.blueman.enable = true;
}

View File

@@ -0,0 +1,7 @@
{...}: {
services.btrfs.autoScrub = {
enable = true;
interval = "weekly";
fileSystems = [ "/" ];
};
}

View File

@@ -1,4 +1,4 @@
{ pkgs, ...}: { { ... }: {
services.flatpak = { services.flatpak = {
enable = true; enable = true;
update.onActivation = true; update.onActivation = true;

View File

@@ -1,14 +1,22 @@
{ ... }: { { pkgs, ... }: {
# Enable sound with pipewire. # Enable sound with pipewire.
services.pulseaudio.enable = false; services.pulseaudio = {
enable = false;
package = pkgs.pulseaudioFull;
};
services.pipewire = { services.pipewire = {
enable = true; enable = true;
alsa.enable = true; alsa.enable = true;
alsa.support32Bit = true; alsa.support32Bit = true;
pulse.enable = true; pulse.enable = true;
#wireplumber.enable = true;
# If you want to use JACK applications, uncomment this # If you want to use JACK applications, uncomment this
jack.enable = true; jack.enable = true;
lowLatency.enable = false;
# use the example session manager (no others are packaged yet so this is enabled by default, # use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now) # no need to redefine it in your config for now)
#media-session.enable = true; #media-session.enable = true;

View File

@@ -1,5 +1,29 @@
{ ... }: { { pkgs, ... }: {
hardware.bluetooth.enable = true; # enables support for Bluetooth hardware.bluetooth = {
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot enable = true; # enables support for Bluetooth
package = pkgs.bluez-experimental;
powerOnBoot = true; # powers up the default Bluetooth controller on boot
settings = {
LE = {
MinConnectionInterval = 16;
MaxConnectionInterval = 16;
ConnectionLatency = 10;
ConnectionSupervisionTimeout = 100;
};
General = {
Enable = "Source,Sink,Media,Socket";
Privacy = "device";
JustWorksRepairing = "always";
Class = "0x000100";
Experimental = true;
FastConnectable = true;
};
Policy = {
AutoEnable = true;
};
};
};
} }

View File

@@ -0,0 +1,37 @@
{ lib, pkgs, ... }: {
environment.systemPackages = [
pkgs.adi1090x-plymouth-themes
];
boot = {
#initrd.verbose = false;
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
kernelPackages = pkgs.linuxPackages_xanmod_stable;
#kernelParams = [
#"quiet"
#"splash"
#"boot.shell_on_fail"
#"udev.log_priority=3"
#"rc.systemd.show_status=auto"
#];
extraModprobeConfig = ''
options bluetooth enable_ecred=1
'';
#plymouth = {
# enable = true;
# theme = lib.mkForce "glitch";
# themePackages = [
# (pkgs.adi1090x-plymouth-themes.override { selected_themes = [ "glitch" ]; })
# ];
#};
#consoleLogLevel = 3;
loader.timeout = 3;
};
}

View File

@@ -0,0 +1,17 @@
{ pkgs, ... }: {
environment = {
# Optional, hint electron apps to use wayland:
sessionVariables = {
NIXOS_OZONE_WL = "1";
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "/home/jay/.steam/root/compatibilitytools.d";
};
shellAliases = {
ls = "lsd -la";
};
# Get plasma integration with browsers to work better.
etc."chromium/native-messaging-hosts/org.kde.plasma.browser_integration.json".source = "${pkgs.kdePackages.plasma-browser-integration}/etc/chromium/native-messaging-hosts/org.kde.plasma.browser_integration.json";
};
}

View File

@@ -0,0 +1,5 @@
{ lib, ... }: {
networking.networkmanager.enable = true;
networking.useDHCP = lib.mkDefault true;
}

View File

@@ -0,0 +1,17 @@
{ ... }: {
nix = {
gc.options = "--delete-older-than 30d";
optimise.automatic = true;
settings = {
experimental-features = [ "nix-command" "flakes" ];
substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
};
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Use some of our RAM as swap space.
zramSwap.enable = true;
}

View File

@@ -10,10 +10,13 @@
]; ];
}; };
# For security reasons, we are disabling the use of regular sudo and...
sudo = { sudo = {
enable = lib.mkForce false; enable = lib.mkForce false;
}; };
# ...switching over to sudo-rs which is a Rust rewrite of sudo.
# See https://cybersecsentinel.com/cve-2025-32463-privilege-escalation-in-sudo-triggers-urgent-linux-patching/.
sudo-rs = { sudo-rs = {
enable = true; enable = true;
wheelNeedsPassword = true; wheelNeedsPassword = true;

View File

@@ -0,0 +1,12 @@
{ ... }: {
# Setting up secrets, incomplete at the moment.
sops = {
#defaultSopsFile = ../../../../private/secrets.yaml;
#secrets = {
# jay_password_hash = {
# neededForUsers = true;
# };
#};
};
}

View File

@@ -1,11 +1,24 @@
{ config, ... }: { { ... }: {
# Define a user account. Don't forget to set a password with passwd. # Let's setup our user accounts here.
users.users.jay = {
#sops.secrets = {
# jay_password_hash = { };
#};
users = {
# mutableUsers forces user passwords to stay as those defined in this file.
# With it set to false, you will not be able to change the password for users defined here.
mutableUsers = false;
users.jay = {
isNormalUser = true; isNormalUser = true;
description = "jay"; description = "jay";
#hashedPasswordFile = config.sops.secrets.password_hash.path; #hashedPasswordFile = config.sops.secrets.jay_password_hash.path;
hashedPassword = "$6$RTOXVXRP1iLIXnQb$rVtTeqlJ7g3AcZgftmVdKFnT2ggCsnVayPlT4beLST9Oz2LHGT2fdcOC/yaQkISK3wzFLqh47fSHgQvRUWpl41"; hashedPassword = "$y$j9T$oomgQFsMbc0odlNIUXEpq/$dhgLjElzaJuU3rF1wXGcSXFUWC/fP1g5mAPZizKUFQ4";
extraGroups = [ "networkmanager" "wheel" ];
# Gamemode group allows gamemode to set cpu governor to performance when games launch.
# See https://nixos.wiki/wiki/Gamemode
extraGroups = [ "networkmanager" "wheel" "gamemode" ];
};
}; };
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

View File

@@ -4,4 +4,8 @@
channel = "stable"; channel = "stable";
}; };
lappy = {}; lappy = {};
nixy = {
deploy.local = true;
};
nixwork = {};
} }

View File

@@ -2,94 +2,21 @@
# your system. Help is available in the configuration.nix(5) man page, 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`). # https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }: { ... }:
{ {
imports = imports =
[ # Include the results of the hardware scan. [ # Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
./filesystems.nix ./programs/sof-firmware.nix
# Not working yet.
#./services/fprintd.nix
./services/touchpad.nix
./system/bootloader.nix
./system/filesystems.nix
./system/networking.nix
]; ];
# Use the systemd-boot EFI boot loader.
nixpkgs.hostPlatform = "x86_64-linux";
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Use latest kernel.
boot.kernelPackages = pkgs.linuxPackages_latest;
networking.hostName = "lappy"; # 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.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# 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 touchpad support (enabled default in most desktopManager).
services.libinput.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; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget
# ];
# 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.05"; # Did you read the comment? system.stateVersion = "25.05"; # Did you read the comment?
} }

View File

@@ -48,6 +48,21 @@
"noatime" "noatime"
]; ];
}; };
"/root-blank" = {
mountOptions = [
"subvol=root-blank"
"nodatacow"
"noatime"
];
};
"/home" = {
mountpoint = "/home";
mountOptions = [
"subvol=home"
"compress=zstd"
"noatime"
];
};
"/nix" = { "/nix" = {
mountpoint = "/nix"; mountpoint = "/nix";
mountOptions = [ mountOptions = [
@@ -72,6 +87,13 @@
"noatime" "noatime"
]; ];
}; };
"/lib" = {
mountpoint = "/var/lib";
mountOptions = [
"subvol=lib"
"compress=zstd"
"noatime"
];
}; };
}; };
}; };
@@ -81,6 +103,8 @@
}; };
}; };
}; };
fileSystems."/nix/persist".neededForBoot = true; };
fileSystems."/persist".neededForBoot = true;
fileSystems."/var/log".neededForBoot = true; fileSystems."/var/log".neededForBoot = true;
fileSystems."/var/lib".neededForBoot = true;
} }

View File

@@ -1,26 +1,14 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { config, lib, modulesPath, ... }:
{ {
imports = imports =
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
# 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.enp0s20f0u1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.xpadneo.enable = true;
} }

View File

@@ -0,0 +1,8 @@
{ ... }:
{
imports = [
./programs/hyprland.nix
./programs/hyprpanel.nix
];
}

View File

@@ -0,0 +1,7 @@
{ ... }: {
wayland.windowManager.hyprland = {
settings = {
"monitor" = "eDP-1, 2880x1800@120, 0x0, 1";
};
};
}

View File

@@ -0,0 +1,19 @@
{ lib, ... }: {
programs.hyprpanel = {
settings = {
"bar.layouts" = {
"0" = {
right = [ "battery" ];
};
};
bar = {
customModules = {
cava = {
framerate = lib.mkForce 120;
};
};
};
};
};
}

View File

@@ -0,0 +1,8 @@
{ pkgs, ... }: {
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = [
pkgs.sof-firmware
];
}

View File

@@ -0,0 +1,5 @@
{ pkgs, ...}: {
services.fprintd.enable = true;
services.fprintd.tod.enable = true;
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix-550a;
}

View File

@@ -0,0 +1,4 @@
{ ... }: {
# Enable touchpad support (enabled default in most desktopManager).
services.libinput.enable = true;
}

View File

@@ -0,0 +1,52 @@
{ config, ... }: {
boot = {
tmp = {
useTmpfs = true;
tmpfsSize = "50%";
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = with config.boot.kernelPackages; [ xpadneo ];
extraModprobeConfig = '' options bluetooth disable_ertm=1 '';
initrd = {
# OLD CONFIG
# NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
# nvme0n1
# └─nvme0n1p1 crypto_LUKS 2 e174181f-828c-44fd-97c1-0e2fdc2322e5
# └─luks-e174181f-828c-44fd-97c1-0e2fdc2322e5 btrfs home f8ed950a-5cc9-4b87-901c-4cfece6daf6c 3.3T 9% /home
# luks.devices."luks-e174181f-828c-44fd-97c1-0e2fdc2322e5".device = "/dev/disk/by-uuid/e174181f-828c-44fd-97c1-0e2fdc2322e5";
# nvme1n1
# ├─nvme1n1p1 vfat FAT32 D19B-1967 4.3G 3% /boot
# ├─nvme1n1p2 crypto_LUKS 2 300fdb2a-d887-4e53-bc97-9fdc123856ce
# │ └─luks-300fdb2a-d887-4e53-bc97-9fdc123856ce swap 1 swap 66b9e1f6-1fc5-4c32-afc7-724880504495 [SWAP]
# luks.devices."luks-300fdb2a-d887-4e53-bc97-9fdc123856ce".device = "/dev/disk/by-uuid/300fdb2a-d887-4e53-bc97-9fdc123856ce";
# └─nvme1n1p3 crypto_LUKS 2 e69c5d63-f5a7-4cb1-a858-4e6396d8def7
# └─luks-e69c5d63-f5a7-4cb1-a858-4e6396d8def7 btrfs root f53b22d4-df74-4ee0-9f85-3fb0eb087150 /nix/store
# luks.devices."luks-e69c5d63-f5a7-4cb1-a858-4e6396d8def7".device = "/dev/disk/by-uuid/e69c5d63-f5a7-4cb1-a858-4e6396d8def7";
# NEW CONFIG
# nvme0n1
# └─nvme0n1p1 crypto_LUKS 2 1976c849-c317-46c0-af98-d2dfc455c489
# └─crypthome btrfs home c63ca365-e963-4ea4-bb71-ed1c7e1b6bc8 /mnt/home
# luks.devices."crypthome".device = "/dev/disk/by-uuid/1976c849-c317-46c0-af98-d2dfc455c489";
# nvme1n1
# ├─nvme1n1p1 vfat FAT32 CDA0-8838 4.4G 0% /mnt/boot
# └─nvme1n1p2 crypto_LUKS 2 e948662c-ae57-46aa-b7bf-cc09dbaa8cdb
# └─cryptroot btrfs nixos 77021dd1-9fa5-4e9f-9be2-ba943e6de77c 925.1G 0% /mnt/var/log
# /mnt/persist
# /mnt/nix
# /mnt
luks.devices."cryptroot" = {
device = "/dev/disk/by-partlabel/luks";
allowDiscards = true;
};
kernelModules = [ ];
availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
};
};
}

View File

@@ -0,0 +1,54 @@
{ ... }: {
fileSystems."/" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=root" "compress=zstd" "noatime" ];
};
fileSystems."/home" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=home" "compress=zstd" "noatime" ];
};
fileSystems."/nix" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=nix" "compress=zstd" "noatime" ];
};
fileSystems."/var/log" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=log" "compress=zstd" "noatime" ];
neededForBoot = true;
};
fileSystems."/var/lib" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=lib" "compress=zstd" "noatime" ];
neededForBoot = true;
};
fileSystems."/persist" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=persist" "compress=zstd" "noatime" ];
neededForBoot = true;
};
fileSystems."/boot" =
{ device = "/dev/disk/by-partlabel/boot";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [{
device = "/swapfile";
size = 18 * 1024;
}];
}

View File

@@ -0,0 +1,4 @@
{ ... }: {
networking.hostName = "lappy"; # Define your hostname.
}

View File

@@ -0,0 +1,24 @@
# 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`).
{ inputs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.framework-16-7040-amd
./programs/sof-firmware.nix
# Not working yet.
./services/fprintd.nix
./services/lidswitch.nix
./services/touchpad.nix
./system/bootloader.nix
./system/filesystems.nix
./system/networking.nix
];
system.stateVersion = "25.05"; # Did you read the comment?
}

View File

@@ -0,0 +1,110 @@
{
disko.devices = {
disk = {
nvme1n1 = {
type = "disk";
device = "/dev/nvme0n1";
content = {
type = "gpt";
partitions = {
ESP = {
label = "boot";
name = "ESP";
size = "4500M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [
"umask=0077"
"defaults"
];
};
};
luks = {
size = "100%";
label = "luks";
content = {
type = "luks";
name = "cryptroot";
# disable settings.keyFile if you want to use interactive password entry
#passwordFile = "/tmp/secret.key"; # Interactive
settings = {
allowDiscards = true;
#keyFile = "/tmp/secret.key";
};
#additionalKeyFiles = [ "/tmp/additionalSecret.key" ];
content = {
type = "btrfs";
extraArgs = [ "-L" "nixos" "-f" ];
subvolumes = {
"/root" = {
mountpoint = "/";
mountOptions = [
"subvol=root"
"compress=zstd"
"noatime"
];
};
"/root-blank" = {
mountOptions = [
"subvol=root-blank"
"nodatacow"
"noatime"
];
};
"/home" = {
mountpoint = "/home";
mountOptions = [
"subvol=home"
"compress=zstd"
"noatime"
];
};
"/nix" = {
mountpoint = "/nix";
mountOptions = [
"subvol=nix"
"compress=zstd"
"noatime"
];
};
"/persist" = {
mountpoint = "/persist";
mountOptions = [
"subvol=persist"
"compress=zstd"
"noatime"
];
};
"/log" = {
mountpoint = "/var/log";
mountOptions = [
"subvol=log"
"compress=zstd"
"noatime"
];
};
"/lib" = {
mountpoint = "/var/lib";
mountOptions = [
"subvol=lib"
"compress=zstd"
"noatime"
];
};
};
};
};
};
};
};
};
};
};
fileSystems."/persist".neededForBoot = true;
fileSystems."/var/log".neededForBoot = true;
fileSystems."/var/lib".neededForBoot = true;
}

View File

@@ -0,0 +1,26 @@
# 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" "thunderbolt" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
# 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.enp193s0f3u1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -0,0 +1,8 @@
{ ... }:
{
imports = [
./programs/hyprland.nix
./programs/hyprpanel.nix
];
}

View File

@@ -0,0 +1,7 @@
{ ... }: {
wayland.windowManager.hyprland = {
settings = {
"monitor" = "eDP-1, 2560x1600@60, 0x0, 1";
};
};
}

View File

@@ -0,0 +1,13 @@
{ lib, ... }: {
programs.hyprpanel = {
settings = {
bar = {
customModules = {
cava = {
framerate = lib.mkForce 120;
};
};
};
};
};
}

View File

@@ -0,0 +1,4 @@
{
os = "nixos";
channel = "stable";
}

View File

@@ -0,0 +1,8 @@
{ pkgs, ... }: {
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = [
pkgs.sof-firmware
];
}

View File

@@ -0,0 +1,3 @@
{ pkgs, ...}: {
services.fprintd.enable = true;
}

View File

@@ -0,0 +1,4 @@
{ pkgs, ...}: {
services.logind.lidSwitch = "poweroff";
services.logind.lidSwitchExternalPower = "lock";
}

View File

@@ -0,0 +1,4 @@
{ ... }: {
# Enable touchpad support (enabled default in most desktopManager).
services.libinput.enable = true;
}

View File

@@ -0,0 +1,52 @@
{ config, ... }: {
boot = {
tmp = {
useTmpfs = true;
tmpfsSize = "50%";
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = with config.boot.kernelPackages; [ xpadneo ];
extraModprobeConfig = '' options bluetooth disable_ertm=1 '';
initrd = {
# OLD CONFIG
# NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
# nvme0n1
# └─nvme0n1p1 crypto_LUKS 2 e174181f-828c-44fd-97c1-0e2fdc2322e5
# └─luks-e174181f-828c-44fd-97c1-0e2fdc2322e5 btrfs home f8ed950a-5cc9-4b87-901c-4cfece6daf6c 3.3T 9% /home
# luks.devices."luks-e174181f-828c-44fd-97c1-0e2fdc2322e5".device = "/dev/disk/by-uuid/e174181f-828c-44fd-97c1-0e2fdc2322e5";
# nvme1n1
# ├─nvme1n1p1 vfat FAT32 D19B-1967 4.3G 3% /boot
# ├─nvme1n1p2 crypto_LUKS 2 300fdb2a-d887-4e53-bc97-9fdc123856ce
# │ └─luks-300fdb2a-d887-4e53-bc97-9fdc123856ce swap 1 swap 66b9e1f6-1fc5-4c32-afc7-724880504495 [SWAP]
# luks.devices."luks-300fdb2a-d887-4e53-bc97-9fdc123856ce".device = "/dev/disk/by-uuid/300fdb2a-d887-4e53-bc97-9fdc123856ce";
# └─nvme1n1p3 crypto_LUKS 2 e69c5d63-f5a7-4cb1-a858-4e6396d8def7
# └─luks-e69c5d63-f5a7-4cb1-a858-4e6396d8def7 btrfs root f53b22d4-df74-4ee0-9f85-3fb0eb087150 /nix/store
# luks.devices."luks-e69c5d63-f5a7-4cb1-a858-4e6396d8def7".device = "/dev/disk/by-uuid/e69c5d63-f5a7-4cb1-a858-4e6396d8def7";
# NEW CONFIG
# nvme0n1
# └─nvme0n1p1 crypto_LUKS 2 1976c849-c317-46c0-af98-d2dfc455c489
# └─crypthome btrfs home c63ca365-e963-4ea4-bb71-ed1c7e1b6bc8 /mnt/home
# luks.devices."crypthome".device = "/dev/disk/by-uuid/1976c849-c317-46c0-af98-d2dfc455c489";
# nvme1n1
# ├─nvme1n1p1 vfat FAT32 CDA0-8838 4.4G 0% /mnt/boot
# └─nvme1n1p2 crypto_LUKS 2 e948662c-ae57-46aa-b7bf-cc09dbaa8cdb
# └─cryptroot btrfs nixos 77021dd1-9fa5-4e9f-9be2-ba943e6de77c 925.1G 0% /mnt/var/log
# /mnt/persist
# /mnt/nix
# /mnt
luks.devices."cryptroot" = {
device = "/dev/disk/by-partlabel/luks";
allowDiscards = true;
};
kernelModules = [ ];
availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
};
};
}

View File

@@ -0,0 +1,54 @@
{ ... }: {
fileSystems."/" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=root" "compress=zstd" "noatime" ];
};
fileSystems."/home" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=home" "compress=zstd" "noatime" ];
};
fileSystems."/nix" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=nix" "compress=zstd" "noatime" ];
};
fileSystems."/var/log" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=log" "compress=zstd" "noatime" ];
neededForBoot = true;
};
fileSystems."/var/lib" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=lib" "compress=zstd" "noatime" ];
neededForBoot = true;
};
fileSystems."/persist" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=persist" "compress=zstd" "noatime" ];
neededForBoot = true;
};
fileSystems."/boot" =
{ device = "/dev/disk/by-partlabel/boot";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [{
device = "/swapfile";
size = 18 * 1024;
}];
}

View File

@@ -0,0 +1,4 @@
{ ... }: {
networking.hostName = "nixwork"; # Define your hostname.
}

View File

@@ -0,0 +1,24 @@
# 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`).
{ inputs, ... }:
{
imports =
[ # Include the results of the hardware scan.
inputs.impermanence.nixosModules.impermanence
./hardware-configuration.nix
./impermanence.nix
./programs/streamcontroller.nix
./services/xserver.nix
./system/bootloader.nix
./system/environment.nix
./system/filesystems.nix
./system/networking.nix
./system/nvidia.nix
];
system.stateVersion = "24.11"; # Did you read the comment?
}

View File

@@ -0,0 +1,119 @@
{
disko.devices = {
disk = {
nvme1n1 = {
type = "disk";
device = "/dev/nvme1n1";
content = {
type = "gpt";
partitions = {
ESP = {
label = "boot";
name = "ESP";
size = "4500M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [
"umask=0077"
"defaults"
];
};
};
luks = {
size = "100%";
label = "luks";
content = {
type = "luks";
name = "cryptroot";
# disable settings.keyFile if you want to use interactive password entry
#passwordFile = "/tmp/secret.key"; # Interactive
settings = {
allowDiscards = true;
#keyFile = "/tmp/secret.key";
};
#additionalKeyFiles = [ "/tmp/additionalSecret.key" ];
content = {
type = "btrfs";
extraArgs = [ "-L" "nixos" "-f" ];
subvolumes = {
"/root" = {
mountpoint = "/";
mountOptions = [
"subvol=root"
"compress=zstd"
"noatime"
];
};
"/nix" = {
mountpoint = "/nix";
mountOptions = [
"subvol=nix"
"compress=zstd"
"noatime"
];
};
"/persist" = {
mountpoint = "/persist";
mountOptions = [
"subvol=persist"
"compress=zstd"
"noatime"
];
};
"/log" = {
mountpoint = "/var/log";
mountOptions = [
"subvol=log"
"compress=zstd"
"noatime"
];
};
};
};
};
};
};
};
};
nvme0n1 = {
type = "disk";
device = "/dev/nvme0n1";
content = {
type = "gpt";
partitions = {
luks = {
size = "100%";
label = "lukshome";
content = {
type = "luks";
name = "crypthome";
settings = {
allowDiscards = true;
#keyFile = "/tmp/secret.key";
};
content = {
type = "btrfs";
extraArgs = ["-L" "home" "-f"];
subvolumes = {
"/home" = {
mountpoint = "/home";
mountOptions = ["subvol=home" "compress=zstd" "noatime"];
};
};
};
};
};
};
};
};
};
};
fileSystems."/nix/persist".neededForBoot = true;
fileSystems."/var/log".neededForBoot = true;
fileSystems."/home".neededForBoot = true;
}

View File

@@ -0,0 +1,21 @@
# 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, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
# 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.enp8s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp7s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -0,0 +1,22 @@
{ lib, ... }:
{
programs.hyprpanel = {
settings = {
bar = {
customModules = {
cava = {
framerate = lib.mkForce 165;
};
};
};
};
};
wayland.windowManager.hyprland = {
settings = {
"monitor" = "DP-2, 3440x1440@165, 0x0, 1";
};
};
}

View File

@@ -0,0 +1,42 @@
{lib, ... }: {
# Reset root subvolume on boot
boot.initrd.postResumeCommands = lib.mkAfter ''
mkdir /btrfs_tmp
mount /dev/mapper/cryptroot /btrfs_tmp # CONFIRM THIS IS CORRECT FROM findmnt
if [[ -e /btrfs_tmp/root ]]; then
mkdir -p /btrfs_tmp/old_roots
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
fi
delete_subvolume_recursively() {
IFS=$'\n'
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
delete_subvolume_recursively "/btrfs_tmp/$i"
done
btrfs subvolume delete "$1"
}
for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
delete_subvolume_recursively "$i"
done
btrfs subvolume create /btrfs_tmp/root
umount /btrfs_tmp
'';
# Use /persist as the persistence root, matching Disko's mountpoint
environment.persistence."/nix/persist" = {
hideMounts = true;
directories = [
"/etc" # System configuration (Keep this here for persistence via bind-mount)
"/var/spool" # Mail queues, cron jobs
"/srv" # Web server data, etc.
"/root"
"/etc/NetworkManager/system-connections"
"/var/lib/bluetooth"
];
files = [
];
};
}

View File

@@ -0,0 +1,4 @@
{
os = "nixos";
channel = "stable";
}

View File

@@ -0,0 +1,8 @@
{ pkgs, ... }: {
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = [
pkgs.streamcontroller
];
}

View File

@@ -0,0 +1,13 @@
{ ... }: {
# Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session.
services.xserver = {
enable = true;
xkb = {
layout = "us";
variant = "";
};
videoDrivers = [ "nvidia" ];
};
}

View File

@@ -0,0 +1,52 @@
{ config, ... }: {
boot = {
kernelModules = [ "kvm-amd" ];
extraModulePackages = with config.boot.kernelPackages; [ xpadneo ];
initrd = {
# OLD CONFIG
# NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
# nvme0n1
# └─nvme0n1p1 crypto_LUKS 2 e174181f-828c-44fd-97c1-0e2fdc2322e5
# └─luks-e174181f-828c-44fd-97c1-0e2fdc2322e5 btrfs home f8ed950a-5cc9-4b87-901c-4cfece6daf6c 3.3T 9% /home
# luks.devices."luks-e174181f-828c-44fd-97c1-0e2fdc2322e5".device = "/dev/disk/by-uuid/e174181f-828c-44fd-97c1-0e2fdc2322e5";
# nvme1n1
# ├─nvme1n1p1 vfat FAT32 D19B-1967 4.3G 3% /boot
# ├─nvme1n1p2 crypto_LUKS 2 300fdb2a-d887-4e53-bc97-9fdc123856ce
# │ └─luks-300fdb2a-d887-4e53-bc97-9fdc123856ce swap 1 swap 66b9e1f6-1fc5-4c32-afc7-724880504495 [SWAP]
# luks.devices."luks-300fdb2a-d887-4e53-bc97-9fdc123856ce".device = "/dev/disk/by-uuid/300fdb2a-d887-4e53-bc97-9fdc123856ce";
# └─nvme1n1p3 crypto_LUKS 2 e69c5d63-f5a7-4cb1-a858-4e6396d8def7
# └─luks-e69c5d63-f5a7-4cb1-a858-4e6396d8def7 btrfs root f53b22d4-df74-4ee0-9f85-3fb0eb087150 /nix/store
# luks.devices."luks-e69c5d63-f5a7-4cb1-a858-4e6396d8def7".device = "/dev/disk/by-uuid/e69c5d63-f5a7-4cb1-a858-4e6396d8def7";
# NEW CONFIG
# nvme0n1
# └─nvme0n1p1 crypto_LUKS 2 1976c849-c317-46c0-af98-d2dfc455c489
# └─crypthome btrfs home c63ca365-e963-4ea4-bb71-ed1c7e1b6bc8 /mnt/home
# luks.devices."crypthome".device = "/dev/disk/by-uuid/1976c849-c317-46c0-af98-d2dfc455c489";
# nvme1n1
# ├─nvme1n1p1 vfat FAT32 CDA0-8838 4.4G 0% /mnt/boot
# └─nvme1n1p2 crypto_LUKS 2 e948662c-ae57-46aa-b7bf-cc09dbaa8cdb
# └─cryptroot btrfs nixos 77021dd1-9fa5-4e9f-9be2-ba943e6de77c 925.1G 0% /mnt/var/log
# /mnt/persist
# /mnt/nix
# /mnt
luks.devices."cryptroot" = {
device = "/dev/disk/by-partlabel/luks";
allowDiscards = true;
};
luks.devices."crypthome" = {
device = "/dev/disk/by-partlabel/lukshome";
allowDiscards = true;
};
kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_drm" "nvidia_uvm" ];
availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "sd_mod" ];
};
};
}

View File

@@ -0,0 +1,13 @@
{ ... }: {
environment = {
variables = {
# Required to run the correct GBM backend for nvidia GPUs on wayland
GBM_BACKEND = "nvidia-drm";
# Apparently, without this nouveau may attempt to be used instead
# (despite it being blacklisted)
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
# Hardware cursors are currently broken on wlroots
WLR_NO_HARDWARE_CURSORS = "1";
};
};
}

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