Compare commits

...

201 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
90 changed files with 1763 additions and 197 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

288
flake.lock generated
View File

@@ -1,5 +1,25 @@
{ {
"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": { "base16": {
"inputs": { "inputs": {
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
@@ -97,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": {
@@ -126,22 +146,25 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat": { "flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": { "locked": {
"lastModified": 1747046372, "lastModified": 1754487366,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
"owner": "edolstra", "owner": "hercules-ci",
"repo": "flake-compat", "repo": "flake-parts",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "edolstra", "owner": "hercules-ci",
"repo": "flake-compat", "repo": "flake-parts",
"type": "github" "type": "github"
} }
}, },
"flake-parts": { "flake-parts_2": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nixverse", "nixverse",
@@ -163,7 +186,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_2": { "flake-parts_3": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"stylix-stable-nixos", "stylix-stable-nixos",
@@ -218,54 +241,6 @@
"type": "github" "type": "github"
} }
}, },
"git-hooks": {
"inputs": {
"flake-compat": [
"stylix-stable-nixos",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"stylix-stable-nixos",
"nixpkgs"
]
},
"locked": {
"lastModified": 1750779888,
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"stylix-stable-nixos",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -311,11 +286,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751468302, "lastModified": 1756679287,
"narHash": "sha256-tWosziZTT039x6PgEZUhzGlV8oLvdDmIgKTE8ESMaEA=", "narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "501cfec8277f931a9c9af9f23d3105c537faeafe", "rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -326,28 +301,6 @@
} }
}, },
"home-manager_2": { "home-manager_2": {
"inputs": {
"nixpkgs": [
"stylix-stable-nixos",
"nixpkgs"
]
},
"locked": {
"lastModified": 1750792728,
"narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "366f00797b1efb70f2882d3da485e3c10fd3d557",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_3": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"zen-browser-stable-nixos", "zen-browser-stable-nixos",
@@ -355,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": {
@@ -375,11 +328,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1751528316, "lastModified": 1755569534,
"narHash": "sha256-MGJmxnjlERXJLDywrSHYSgpt7fhh3/HOHQboRrxDW64=", "narHash": "sha256-ukXfV1cAsxoar0IVEO2/s3qnVEZpZf0wvqE3PIESobw=",
"owner": "Jas-SinghFSU", "owner": "Jas-SinghFSU",
"repo": "Hyprpanel", "repo": "Hyprpanel",
"rev": "343c9857bd7f1d302d591e8d5f3f9952dc84775b", "rev": "6385f2e15df908e0c13bed800f4b091300e5b981",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -388,6 +341,21 @@
"type": "github" "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": [
@@ -425,6 +393,27 @@
"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": { "nix-vm-test": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -450,7 +439,7 @@
"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", "nix-vm-test": "nix-vm-test",
"nixos-images": "nixos-images", "nixos-images": "nixos-images",
"nixos-stable": "nixos-stable", "nixos-stable": "nixos-stable",
@@ -474,6 +463,22 @@
"type": "github" "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"
}
},
"nixos-images": { "nixos-images": {
"inputs": { "inputs": {
"nixos-stable": [ "nixos-stable": [
@@ -533,13 +538,28 @@
"type": "github" "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": 1751211869, "lastModified": 1756886854,
"narHash": "sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y=", "narHash": "sha256-6tooT142NLcFjt24Gi4B0G1pgWLvfw7y93sYEfSHlLI=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b43c397f6c213918d6cfe6e3550abfe79b5d1c51", "rev": "0e6684e6c5755325f801bda1751a8a4038145d7d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -549,13 +569,29 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1751498133, "lastModified": 1756819007,
"narHash": "sha256-QWJ+NQbMU+NcU2xiyo7SNox1fAuwksGlQhpzBl76g1I=", "narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d55716bb59b91ae9d1ced4b1ccdea7a442ecbfdb", "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" "type": "github"
}, },
"original": { "original": {
@@ -572,15 +608,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751442502, "lastModified": 1751773294,
"narHash": "sha256-XBk4qJcgnAkOcTOYTwyb8eUNtKshaOvYQdevpUxyQBw=", "narHash": "sha256-7SOb5tc8FARZHUBr8HeCO5016lpiG+S1qugQQdXzF/w=",
"owner": "hgl", "owner": "hgl",
"repo": "nixverse", "repo": "nixverse",
"rev": "bebfe4861e04fe985b229313f814484f86b10a37", "rev": "084a07f43829857fc760e70212c497d2f40eaa3c",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hgl", "owner": "hgl",
"ref": "084a07f43829857fc760e70212c497d2f40eaa3c",
"repo": "nixverse", "repo": "nixverse",
"type": "github" "type": "github"
} }
@@ -613,17 +650,43 @@
}, },
"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", "home-manager-stable-nixos": "home-manager-stable-nixos",
"hyprpanel-stable-nixos": "hyprpanel-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",
"nix-gaming-stable-nixos": "nix-gaming-stable-nixos",
"nixos-hardware-stable-nixos": "nixos-hardware-stable-nixos",
"nixpkgs": "nixpkgs_2", "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", "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": { "stylix-stable-nixos": {
"inputs": { "inputs": {
"base16": "base16", "base16": "base16",
@@ -631,11 +694,8 @@
"base16-helix": "base16-helix", "base16-helix": "base16-helix",
"base16-vim": "base16-vim", "base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-compat": "flake-compat", "flake-parts": "flake-parts_3",
"flake-parts": "flake-parts_2",
"git-hooks": "git-hooks",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"home-manager": "home-manager_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
@@ -648,11 +708,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1751404484, "lastModified": 1756812894,
"narHash": "sha256-9prjnLoa6NcqCItwzq69Twq/FOe0NwRB9OiqH3q0gOs=", "narHash": "sha256-wZfNe3ms+dS2cUEGe8ygqNxBHGQCRoJQuQM9xFgGad0=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "4135c1bfbe121ed77b8c25a2141eace0ada9b0b8", "rev": "a9553a7486c86259b7678235cc26cfd70296251d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -819,17 +879,17 @@
}, },
"zen-browser-stable-nixos": { "zen-browser-stable-nixos": {
"inputs": { "inputs": {
"home-manager": "home-manager_3", "home-manager": "home-manager_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1751512826, "lastModified": 1756941389,
"narHash": "sha256-7ZacraAVWZBXGlg+UoPsZs+DACSsKJKTnCA83nXT6rM=", "narHash": "sha256-r7Km2PY1gxpNmq7dPbs89JiyHiJ5zRCF6cBPyb2WWGY=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "fedb07931fc9b162a972b8966fdd9ba76273a590", "rev": "d197dd7556567a7a4174dee543286e5e65198379",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -2,11 +2,19 @@
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";
@@ -25,12 +33,35 @@
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 = { stylix-stable-nixos = {
url = "github:danth/stylix/release-25.05"; url = "github:danth/stylix/release-25.05";
inputs.nixpkgs.follows = "nixpkgs"; 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,9 +1,12 @@
{ pkgs, inputs, ... }: { inputs, ... }:
{ {
imports = [ imports = [
inputs.nix-flatpak.nixosModules.nix-flatpak inputs.nix-flatpak.nixosModules.nix-flatpak
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.home-manager.nixosModules.home-manager 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/fonts.nix
@@ -14,9 +17,9 @@
./programs/hyprland.nix ./programs/hyprland.nix
./programs/kde.nix ./programs/kde.nix
./programs/obs-studio.nix ./programs/obs-studio.nix
./programs/open-tv.nix
./programs/session-desktop.nix ./programs/session-desktop.nix
./programs/steam.nix ./programs/steam.nix
./programs/streamcontroller.nix
./programs/zen-browser.nix ./programs/zen-browser.nix
./scripts/upgrade-diff.nix ./scripts/upgrade-diff.nix
./services/blueman.nix ./services/blueman.nix
@@ -26,11 +29,13 @@
./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/environment.nix
./system/locale.nix ./system/locale.nix
./system/networking.nix ./system/networking.nix
./system/nixos.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
]; ];

View File

@@ -1,21 +1,27 @@
{ config, pkgs, inputs, lib, ... }: { pkgs, inputs, ... }:
{ {
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manag:e.
home.username = "jay"; home.username = "jay";
home.homeDirectory = "/home/jay"; home.homeDirectory = "/home/jay";
imports = [ imports = [
#inputs.nixcord.homeModules.nixcord
inputs.stylix.homeModules.stylix inputs.stylix.homeModules.stylix
./programs/alacritty.nix ./programs/alacritty.nix
./programs/bash.nix ./programs/bash.nix
./programs/btop.nix
./programs/emacs.nix
./programs/git.nix ./programs/git.nix
./programs/hyprland.nix ./programs/hyprland.nix
./programs/hyprlock.nix ./programs/hyprlock.nix
./programs/hyprpanel.nix ./programs/hyprpanel.nix
./programs/lazygit.nix ./programs/lazygit.nix
./programs/mangohud.nix
./programs/discord.nix
./programs/oh-my-posh.nix ./programs/oh-my-posh.nix
./programs/qutebrowser.nix
./programs/rbw.nix ./programs/rbw.nix
./programs/rofi.nix ./programs/rofi.nix
./programs/stylix.nix ./programs/stylix.nix
@@ -38,8 +44,9 @@
# The home.packages option allows you to install Nix packages into your # The home.packages option allows you to install Nix packages into your
# environment. # environment.
home.packages = [ home.packages = [
pkgs.legcord
pkgs.libgtop pkgs.libgtop
pkgs.powertop
pkgs.upower
#pkgs.mpvpaper #pkgs.mpvpaper
# pkgs.hyprlandPlugins.hyprtrails # pkgs.hyprlandPlugins.hyprtrails
]; ];
@@ -47,10 +54,14 @@
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'. # plain files is through 'home.file'.
home.file = { home.file = {
# ".config/elinks/elinks.conf".source = ../../dotfiles/elinks/elinks.conf; ".config/elinks/elinks.conf".source = ../../../../../private/dotfiles/elinks/elinks.conf;
# ".config/jellyfin-tui/config.yaml".source = ../../dotfiles/jellyfin-tui/config.yaml; ".config/jellyfin-tui/config.yaml".source = ../../../../../private/dotfiles/jellyfin-tui/config.yaml;
# ".config/newsboat/config".source = ../../dotfiles/newsboat/config; ".config/jellyfin-rpc/urls.json".source = ../../../../../private/dotfiles/jellyfin-rpc/urls.json;
# "quickemu/kubuntu-24.04.conf".source = ../../dotfiles/quickemu/kubuntu-24.04.conf; ".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 = { home.sessionVariables = {

View File

@@ -1,4 +1,4 @@
{ lib, pkgs, ...}: { { lib, ... }: {
programs.alacritty = lib.mkForce { programs.alacritty = lib.mkForce {
enable = true; enable = true;
settings = { settings = {

View File

@@ -1,3 +1,3 @@
{ pkgs, ...}: { { ... }: {
programs.bash.enable = true; 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

@@ -1,4 +1,4 @@
{ pkgs, ...}: { { ... }: {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
# Allow home-manager to configure hyprland # Allow home-manager to configure hyprland
enable = true; enable = true;
@@ -207,7 +207,7 @@
# "systemctl --user start hyprpolkitagent" # "systemctl --user start hyprpolkitagent"
"steam --disable-gpu-compositing" # nvidia pls let me have nice things "steam --disable-gpu-compositing" # nvidia pls let me have nice things
#"vesktop" #"vesktop"
"legcord" "goofcord"
# "[workspace 9 silent] ELECTRON_OZONE_PLATFORM_HINT=x11 1password" # fix for promts not showing up anymore # "[workspace 9 silent] ELECTRON_OZONE_PLATFORM_HINT=x11 1password" # fix for promts not showing up anymore
"zen-twilight" "zen-twilight"
# "${pkgs.xorg.xhost}/bin/xhost +" # "${pkgs.xorg.xhost}/bin/xhost +"
@@ -225,7 +225,7 @@
windowrulev2 = [ windowrulev2 = [
"workspace 1 silent, class:^(zen-twilight)$" "workspace 1 silent, class:^(zen-twilight)$"
"workspace 2 silent, class:^(steam)$" "workspace 2 silent, class:^(steam)$"
"workspace 3 silent, class:^(legcord)$" "workspace 3 silent, class:^(goofcord)$"
"workspace 4 silent, class:^(com.core447.StreamController)$" "workspace 4 silent, class:^(com.core447.StreamController)$"
"float,class:(clipse)$" "float,class:(clipse)$"
"size 622 652,class:(clipse)$" "size 622 652,class:(clipse)$"

View File

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

View File

@@ -1,4 +1,4 @@
{ pkgs, ...}: { { ... }: {
programs.hyprpanel = { programs.hyprpanel = {
enable = true; enable = true;
settings = { settings = {
@@ -6,7 +6,7 @@
"0" = { "0" = {
left = [ "dashboard" "separator" "microphone" "volume" "bluetooth" "hypridle" "separator" "network" "separator" "workspaces" "windowtitle" ]; left = [ "dashboard" "separator" "microphone" "volume" "bluetooth" "hypridle" "separator" "network" "separator" "workspaces" "windowtitle" ];
middle = [ "media" "cava" ]; middle = [ "media" "cava" ];
right = [ "cpu" "cputemp" "ram" "storage" "separator" "systray" "notifications" "separator" "weather" "clock" ]; right = [ "cpu" "cputemp" "ram" "storage" "separator" "systray" "notifications" "battery" "separator" "weather" "clock" ];
}; };
}; };
@@ -131,6 +131,380 @@
# "3" = "󰙯"; # "3" = "󰙯";
# "4" = "󰄛"; # "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

@@ -1,3 +1,3 @@
{ pkgs, ...}: { { ... }: {
programs.lazygit.enable = true; 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

@@ -1,4 +1,4 @@
{ pkgs, ...}: { { ... }: {
programs.oh-my-posh = { programs.oh-my-posh = {
enable = true; enable = true;
enableBashIntegration = true; enableBashIntegration = true;

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
{ pkgs, inputs, ...}: { { pkgs, ... }: {
stylix = { stylix = {
enable = true; enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/nord.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/nord.yaml";

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
{ pkgs, ...}: { { ... }: {
services.hypridle = { services.hypridle = {
enable = true; enable = true;
settings = { settings = {

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

@@ -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
@@ -17,12 +17,15 @@
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
@@ -30,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
@@ -44,11 +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.zip
pkgs'.nixverse
]; ];
} }

View File

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

View File

@@ -1,4 +1,4 @@
{ config, inputs, lib, 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

View File

@@ -1,4 +1,4 @@
{ pkgs, inputs, ... }: { { pkgs, ... }: {
# Install hyprland # Install hyprland
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
@@ -12,6 +12,7 @@
environment.systemPackages = [ environment.systemPackages = [
# Fix for hyprpanel network icon # Fix for hyprpanel network icon
pkgs.adwaita-icon-theme pkgs.adwaita-icon-theme
pkgs.cava
pkgs.grim pkgs.grim
pkgs.hyprpicker pkgs.hyprpicker
pkgs.hyprshot pkgs.hyprshot

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,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

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

@@ -9,7 +9,6 @@
shellAliases = { shellAliases = {
ls = "lsd -la"; ls = "lsd -la";
ryujinx = "flatpak run io.github.ryubing.Ryujinx";
}; };
# Get plasma integration with browsers to work better. # Get plasma integration with browsers to work better.

View File

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

View File

@@ -12,5 +12,6 @@
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# Use some of our RAM as swap space.
zramSwap.enable = true; 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" ];
};
}; };
} }

View File

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

View File

@@ -2,7 +2,7 @@
# 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 =

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

View File

@@ -1,4 +1,4 @@
{ config, pkgs, inputs, lib, ... }: { ... }:
{ {
imports = [ imports = [
./programs/hyprland.nix ./programs/hyprland.nix

View File

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

View File

@@ -1,4 +1,4 @@
{ pkgs, lib, ... }: { { lib, ... }: {
programs.hyprpanel = { programs.hyprpanel = {
settings = { settings = {
"bar.layouts" = { "bar.layouts" = {

View File

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

View File

@@ -1,10 +1,9 @@
{ pkgs, config, ... }: { { config, ... }: {
boot = { boot = {
loader = { tmp = {
systemd-boot.enable = true; useTmpfs = true;
efi.canTouchEfiVariables = true; tmpfsSize = "50%";
}; };
kernelPackages = pkgs.linuxPackages_xanmod_stable;
kernelModules = [ "kvm-intel" ]; kernelModules = [ "kvm-intel" ];
extraModulePackages = with config.boot.kernelPackages; [ xpadneo ]; extraModulePackages = with config.boot.kernelPackages; [ xpadneo ];
extraModprobeConfig = '' options bluetooth disable_ertm=1 ''; extraModprobeConfig = '' options bluetooth disable_ertm=1 '';
@@ -38,10 +37,15 @@
# /mnt/persist # /mnt/persist
# /mnt/nix # /mnt/nix
# /mnt # /mnt
#luks.devices."cryptroot".device = "/dev/disk/by-uuid/e68d4928-961d-4c80-9d3c-921514ebc63c"; luks.devices."cryptroot" = {
device = "/dev/disk/by-partlabel/luks";
allowDiscards = true;
};
kernelModules = [ ]; kernelModules = [ ];
availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ]; availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
}; };
}; };
} }

View File

@@ -6,6 +6,12 @@
options = [ "subvol=root" "compress=zstd" "noatime" ]; options = [ "subvol=root" "compress=zstd" "noatime" ];
}; };
fileSystems."/home" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=home" "compress=zstd" "noatime" ];
};
fileSystems."/nix" = fileSystems."/nix" =
{ device = "/dev/mapper/cryptroot"; { device = "/dev/mapper/cryptroot";
fsType = "btrfs"; fsType = "btrfs";
@@ -19,7 +25,14 @@
neededForBoot = true; neededForBoot = true;
}; };
fileSystems."/nix/persist" = fileSystems."/var/lib" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=lib" "compress=zstd" "noatime" ];
neededForBoot = true;
};
fileSystems."/persist" =
{ device = "/dev/mapper/cryptroot"; { device = "/dev/mapper/cryptroot";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=persist" "compress=zstd" "noatime" ]; options = [ "subvol=persist" "compress=zstd" "noatime" ];
@@ -34,7 +47,7 @@
swapDevices = [{ swapDevices = [{
device = "/swapfile"; device = "/swapfile";
size = 16 * 1024; size = 18 * 1024;
}]; }];
} }

View File

@@ -1,4 +1,4 @@
{ config, ...}: { { ... }: {
networking.hostName = "lappy"; # Define your hostname. 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

@@ -1,4 +1,4 @@
{ config, pkgs, inputs, lib, ... }: { lib, ... }:
{ {
programs.hyprpanel = { programs.hyprpanel = {
@@ -16,9 +16,6 @@
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
settings = { settings = {
"monitor" = "DP-2, 3440x1440@165, 0x0, 1"; "monitor" = "DP-2, 3440x1440@165, 0x0, 1";
exec-once = [
"mpvpaper -vfp -o 'no-audio no-keepaspect loop vf=lavfi=negate' DP-2 ../../../common/wallpapers/wipeout.mkv"
];
}; };
}; };
} }

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,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";
};
};
}

View File

@@ -0,0 +1,48 @@
{ ... }: {
fileSystems."/" =
{ device = "/dev/mapper/cryptroot";
fsType = "btrfs";
options = [ "subvol=root" "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."/nix/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" ];
};
fileSystems."/home" =
{ device = "/dev/mapper/crypthome";
fsType = "btrfs";
options = [ "subvol=home" "compress=zstd" "noatime" ];
neededForBoot = true;
};
swapDevices = [{
device = "/swapfile";
size = 16 * 1024;
}];
}

View File

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

View File

@@ -0,0 +1,43 @@
{ config, pkgs, ... }: {
# Enable OpenGL
hardware.graphics = {
enable32Bit = true;
enable = true;
extraPackages = [
pkgs.nvidia-vaapi-driver
];
};
hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = false;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
open = false;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
#forceFullCompositionPipeline = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
}

1
private Submodule

Submodule private added at 7d635d0d2f