Compare commits
194 Commits
c0bf134b2a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 048c332fd0 | |||
| f41d63be54 | |||
| 367070179f | |||
| 632ff8cea0 | |||
| 6947f37f54 | |||
| 3119362823 | |||
| 5e6983e106 | |||
| d1debc3a72 | |||
| 0a561deee0 | |||
| 3aeeb648e5 | |||
| 25a082e204 | |||
| f85ccc3aca | |||
| 53e563c2e9 | |||
| b6c241a1a1 | |||
| cb64138b55 | |||
| 00cfc16503 | |||
| a5e7cd1513 | |||
| 49265f2014 | |||
| 7737c3554a | |||
| 5ec35ea58f | |||
| 5f9ecd2c4a | |||
| 47d30fd708 | |||
| 5bcd431bfb | |||
| 7391b43d9a | |||
| 4f8ce52cc1 | |||
| 4f151577ac | |||
| 58f57f749b | |||
| 5505df82e3 | |||
| 7b66d5a4b5 | |||
| 2131144535 | |||
| 665ad9024f | |||
| 4ad8eaef7a | |||
| 3249dcfaad | |||
| 6aaad3ad7b | |||
| 3cc469278e | |||
| 560cd5afb2 | |||
| d7e08bbe9c | |||
| 52e1586cfe | |||
| 70f3fa3609 | |||
| 81812dfafb | |||
| f4491974ca | |||
| db78dd33c3 | |||
| 643eb1cb33 | |||
| 6372c54d4c | |||
| 2957c442ac | |||
| 4eb1da9227 | |||
| 070c684a01 | |||
| f41f628f4d | |||
| e2ea58c57c | |||
| e4917af55d | |||
| b6f353194a | |||
| a2c4050f08 | |||
| ec7420a218 | |||
| a8dfc7eda3 | |||
| d409f418d3 | |||
| 7d6d2ade10 | |||
| b3e8b77b8f | |||
| 4efcdbbc0a | |||
| 777f2b6821 | |||
| 894babd3da | |||
| 4310c9d517 | |||
| b154fad1a0 | |||
| 3404b22e72 | |||
| a9b9c0b5b8 | |||
| b74d05cdfb | |||
| a1515ff3eb | |||
| 16c74b4ffb | |||
| 3126b9fe0d | |||
| b702180b3a | |||
| 588f3a2e2c | |||
| b10401cb71 | |||
| 51e45da8bf | |||
| 2591c0389d | |||
| a7dfe2ac8b | |||
| 711e042b5d | |||
| 787492cb9f | |||
| 4b59f6a4d7 | |||
| 1c5cae9af4 | |||
| d027fbfaac | |||
| c19702fbaa | |||
| ffa8781759 | |||
| f87b8e3368 | |||
| 256fbf7bca | |||
| 956c23e606 | |||
| f40f23a8b3 | |||
| 3598a3e483 | |||
| 8eedac4744 | |||
| 1661ea2fcd | |||
| 6e6962314b | |||
| cb659e768e | |||
| d414e58fad | |||
| ca7193633c | |||
| e9c1aecbe9 | |||
| 77800be925 | |||
| 7bac3c13aa | |||
| b29f717c79 | |||
| ff6bc2b602 | |||
| 729165ab99 | |||
| fa97388d6d | |||
| 4d55019f4e | |||
| e8e3288d0c | |||
| 3b3fc54bf1 | |||
| 194b346a8c | |||
| 4d009c46bd | |||
| 9047f00910 | |||
| b1df070912 | |||
| f09502773a | |||
| eb232623a9 | |||
| 840db2018d | |||
| c843704a11 | |||
| 456081a657 | |||
| 7cfdfd8d0f | |||
| 97a4ad7815 | |||
| c4181bfe42 | |||
| 3a35c461bd | |||
| 1f850493a7 | |||
| 6223f62baa | |||
| ae8d80b621 | |||
| ec751bd1c2 | |||
| 70b1c62466 | |||
| b1b1076d7d | |||
| c8d92b5812 | |||
| c301c0072a | |||
| 5681827296 | |||
| adbd75a48a | |||
| ac132756e4 | |||
| 64390aec8a | |||
| 04d52e047b | |||
| d20e0e2837 | |||
| b6ce751431 | |||
| 9fa0838587 | |||
| eb1da112ab | |||
| f664de7fcb | |||
| 262d488283 | |||
| d77df8748d | |||
| a83cdf7f7d | |||
| bd1722ab41 | |||
| 5b3c0f4ce3 | |||
| acf1cdb9c3 | |||
| b8d0f83d19 | |||
| 97a57a1a4d | |||
| 64a9fa9b7c | |||
| 86b048cd68 | |||
| 5df2e0d3f5 | |||
| 0e4d790e30 | |||
| 9d30869c02 | |||
| f3d41e4299 | |||
| 3731d0bc01 | |||
| 0898de9ff6 | |||
| 828bd3c295 | |||
| 6574d647aa | |||
| b0ee1e9e59 | |||
| 6278366c75 | |||
| f2d280701c | |||
| 3dcb5330e6 | |||
| e5b5d77b86 | |||
| 82af34de7d | |||
| 72d2f9d224 | |||
| dc65b193fa | |||
| 6c68e77b58 | |||
| ffffb94a6b | |||
| 3be549af3d | |||
| 912c29d368 | |||
| 2513b9bf94 | |||
| 72be90b97d | |||
| 55e35a2038 | |||
| 962dba71e6 | |||
| f2d0904b49 | |||
| d0a8eea837 | |||
| b07d76f877 | |||
| 9497aacb4d | |||
| 342710ef9c | |||
| fe0b2ef82d | |||
| a2500b41d5 | |||
| 07acbd3dca | |||
| 2510f117fb | |||
| cd9245d93f | |||
| 4a96ae4adf | |||
| 92c62291f2 | |||
| b00ca89f1b | |||
| 2c62cd80b3 | |||
| f5fe043de9 | |||
| 05cd5cce03 | |||
| 168358d8c7 | |||
| 8fc7e020fe | |||
| d79ce8490b | |||
| ca885f29f2 | |||
| 1c70228703 | |||
| 66d37cfe0f | |||
| fda65a055f | |||
| daf09bdb21 | |||
| 6a6e5aeee3 | |||
| 3a8d12cbe6 | |||
| 565950413b |
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule "private"]
|
||||||
|
path = private
|
||||||
|
url = https://git.zerojay.com/jay/private.git
|
||||||
2
.sops.yaml
Normal file
2
.sops.yaml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
creation_rules:
|
||||||
|
- age: age1kn9632x2upcckl5jr9h2xda9l9j6r23u3pzjdp4v7vdjs42fpq3qur2qf0
|
||||||
67
README.md
67
README.md
@@ -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
288
flake.lock
generated
@@ -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": 1751607816,
|
"lastModified": 1756733629,
|
||||||
"narHash": "sha256-5PtrwjqCIJ4DKQhzYdm8RFePBuwb+yTzjV52wWoGSt4=",
|
"narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "da6109c917b48abc1f76dd5c9bf3901c8c80f662",
|
"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": 1751582995,
|
"lastModified": 1756886854,
|
||||||
"narHash": "sha256-u7ubvtxdTnFPpV27AHpgoKn7qHuE7sgWgza/1oj5nzA=",
|
"narHash": "sha256-6tooT142NLcFjt24Gi4B0G1pgWLvfw7y93sYEfSHlLI=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7a732ed41ca0dd64b4b71b563ab9805a80a7d693",
|
"rev": "0e6684e6c5755325f801bda1751a8a4038145d7d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -549,13 +569,29 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751625545,
|
"lastModified": 1756819007,
|
||||||
"narHash": "sha256-4E7wWftF1ExK5ZEDzj41+9mVgxtuRV3wWCId7QAYMAU=",
|
"narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c860cf0b3a0829f0f6cf344ca8de83a2bbfab428",
|
"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": 1751658706,
|
"lastModified": 1756812894,
|
||||||
"narHash": "sha256-jqRbWjB8aH2qzq6nMQpwkzVBR4o9lNxAHFmRgGwnJ94=",
|
"narHash": "sha256-wZfNe3ms+dS2cUEGe8ygqNxBHGQCRoJQuQM9xFgGad0=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "5dd301b72207d4fd8d8b929abd88ba1c486d1744",
|
"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": 1751656595,
|
"lastModified": 1756941389,
|
||||||
"narHash": "sha256-W8uTfv+XXSupH4IFIV+SjTCCQXBiHtxTRkuypuDhlV4=",
|
"narHash": "sha256-r7Km2PY1gxpNmq7dPbs89JiyHiJ5zRCF6cBPyb2WWGY=",
|
||||||
"owner": "0xc000022070",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "565138cfe80944643770b6b4f4ac849dc94ab343",
|
"rev": "d197dd7556567a7a4174dee543286e5e65198379",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
32
flake.nix
32
flake.nix
@@ -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,6 +33,23 @@
|
|||||||
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 = {
|
sops-nix-stable-nixos = {
|
||||||
url = "github:Mic92/sops-nix";
|
url = "github:Mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs-stable-nixos";
|
inputs.nixpkgs.follows = "nixpkgs-stable-nixos";
|
||||||
@@ -36,6 +61,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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";
|
||||||
};
|
};
|
||||||
@@ -56,10 +82,6 @@
|
|||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
pkgs' = nixverse.loadPkgs' self {
|
|
||||||
inherit system;
|
|
||||||
nixpkgs = nixpkgs;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
default = pkgs.mkShellNoCC {
|
default = pkgs.mkShellNoCC {
|
||||||
|
|||||||
@@ -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
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -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,19 +44,24 @@
|
|||||||
# 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.mpvpaper
|
pkgs.powertop
|
||||||
|
pkgs.upower
|
||||||
|
#pkgs.mpvpaper
|
||||||
# pkgs.hyprlandPlugins.hyprtrails
|
# pkgs.hyprlandPlugins.hyprtrails
|
||||||
];
|
];
|
||||||
|
|
||||||
# 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 = {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ lib, pkgs, ...}: {
|
{ lib, ... }: {
|
||||||
programs.alacritty = lib.mkForce {
|
programs.alacritty = lib.mkForce {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{ pkgs, ...}: {
|
{ ... }: {
|
||||||
programs.bash.enable = true;
|
programs.bash.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
10
nodes/hosts/common/home/jay/programs/btop.nix
Normal file
10
nodes/hosts/common/home/jay/programs/btop.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{ ... }: {
|
||||||
|
programs.btop = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
color_theme = "stylix";
|
||||||
|
theme_background = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
9
nodes/hosts/common/home/jay/programs/discord.nix
Normal file
9
nodes/hosts/common/home/jay/programs/discord.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ pkgs, ... }: {
|
||||||
|
home.packages = [
|
||||||
|
pkgs.betterdiscordctl
|
||||||
|
pkgs.discord
|
||||||
|
pkgs.legcord
|
||||||
|
pkgs.discover-overlay
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
5
nodes/hosts/common/home/jay/programs/emacs.nix
Normal file
5
nodes/hosts/common/home/jay/programs/emacs.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{ ... }: {
|
||||||
|
programs.emacs = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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)$"
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{ pkgs, ...}: {
|
{ ... }: {
|
||||||
programs.hyprlock.enable = true;
|
programs.hyprlock.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{ pkgs, ...}: {
|
{ ... }: {
|
||||||
programs.lazygit.enable = true;
|
programs.lazygit.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
16
nodes/hosts/common/home/jay/programs/mangohud.nix
Normal file
16
nodes/hosts/common/home/jay/programs/mangohud.nix
Normal 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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
36
nodes/hosts/common/home/jay/programs/nixcord.nix
Normal file
36
nodes/hosts/common/home/jay/programs/nixcord.nix
Normal 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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ...}: {
|
{ ... }: {
|
||||||
programs.oh-my-posh = {
|
programs.oh-my-posh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
|
|||||||
6
nodes/hosts/common/home/jay/programs/qutebrowser.nix
Normal file
6
nodes/hosts/common/home/jay/programs/qutebrowser.nix
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{ ... }: {
|
||||||
|
programs.qutebrowser = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
{ pkgs, ...}: {
|
{ ... }: {
|
||||||
programs.rbw.enable = true;
|
programs.rbw.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ...}: {
|
{ pkgs, ...} : {
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.rofi-wayland;
|
package = pkgs.rofi-wayland;
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{ pkgs, ...}: {
|
{ ... }: {
|
||||||
services.arrpc.enable = true;
|
services.arrpc.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ...}: {
|
{ ... }: {
|
||||||
services.fluidsynth = {
|
services.fluidsynth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
soundService = "pipewire-pulse";
|
soundService = "pipewire-pulse";
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ...}: {
|
{ ... }: {
|
||||||
services.hypridle = {
|
services.hypridle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
5
nodes/hosts/common/programs/appimage.nix
Normal file
5
nodes/hosts/common/programs/appimage.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{ ... }: {
|
||||||
|
programs.appimage.enable = true;
|
||||||
|
programs.appimage.binfmt = true;
|
||||||
|
}
|
||||||
|
|
||||||
40
nodes/hosts/common/programs/appimages/drop.nix
Normal file
40
nodes/hosts/common/programs/appimages/drop.nix
Normal 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;})
|
||||||
|
];
|
||||||
|
}
|
||||||
11
nodes/hosts/common/programs/drop.nix
Normal file
11
nodes/hosts/common/programs/drop.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{ pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
dropApp = import ./appimages/drop.nix { inherit pkgs; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# ...
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
dropApp
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -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";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ... }: {
|
{ ... }: {
|
||||||
programs.firefox.enable = true;
|
programs.firefox.enable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, inputs, lib, pkgs, 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,14 @@
|
|||||||
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
|
pkgs'.nixverse
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ... }: {
|
{ ... }: {
|
||||||
programs.git.enable = true;
|
programs.git.enable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 = [
|
||||||
|
|||||||
10
nodes/hosts/common/programs/open-tv.nix
Normal file
10
nodes/hosts/common/programs/open-tv.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{ ... }: {
|
||||||
|
services.flatpak.packages = [
|
||||||
|
"dev.fredol.open-tv"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.shellAliases = {
|
||||||
|
open-tv = "flatpak run dev.fredol.open-tv";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -21,9 +28,9 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
pkgs.mangohud
|
pkgs.samrewritten
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{ pkgs, ...}: {
|
{ ... }: {
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
7
nodes/hosts/common/services/btrfs.nix
Normal file
7
nodes/hosts/common/services/btrfs.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{...}: {
|
||||||
|
services.btrfs.autoScrub = {
|
||||||
|
enable = true;
|
||||||
|
interval = "weekly";
|
||||||
|
fileSystems = [ "/" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ...}: {
|
{ ... }: {
|
||||||
services.flatpak = {
|
services.flatpak = {
|
||||||
enable = true;
|
enable = true;
|
||||||
update.onActivation = true;
|
update.onActivation = true;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 = {
|
||||||
Privacy = "device";
|
LE = {
|
||||||
JustWorksRepairing = "always";
|
MinConnectionInterval = 16;
|
||||||
Class = "0x000100";
|
MaxConnectionInterval = 16;
|
||||||
FastConnectable = true;
|
ConnectionLatency = 10;
|
||||||
};
|
ConnectionSupervisionTimeout = 100;
|
||||||
|
};
|
||||||
|
|
||||||
|
General = {
|
||||||
|
Enable = "Source,Sink,Media,Socket";
|
||||||
|
Privacy = "device";
|
||||||
|
JustWorksRepairing = "always";
|
||||||
|
Class = "0x000100";
|
||||||
|
Experimental = true;
|
||||||
|
FastConnectable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
Policy = {
|
||||||
|
AutoEnable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
37
nodes/hosts/common/system/bootloader.nix
Normal file
37
nodes/hosts/common/system/bootloader.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@@ -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.
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,11 +9,14 @@
|
|||||||
"unix-group:wheel"
|
"unix-group:wheel"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# 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;
|
||||||
|
|||||||
12
nodes/hosts/common/system/sops.nix
Normal file
12
nodes/hosts/common/system/sops.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{ ... }: {
|
||||||
|
# Setting up secrets, incomplete at the moment.
|
||||||
|
sops = {
|
||||||
|
#defaultSopsFile = ../../../../private/secrets.yaml;
|
||||||
|
#secrets = {
|
||||||
|
# jay_password_hash = {
|
||||||
|
# neededForUsers = true;
|
||||||
|
# };
|
||||||
|
#};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@@ -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 = {
|
|
||||||
isNormalUser = true;
|
#sops.secrets = {
|
||||||
description = "jay";
|
# jay_password_hash = { };
|
||||||
#hashedPasswordFile = config.sops.secrets.password_hash.path;
|
#};
|
||||||
hashedPassword = "$6$RTOXVXRP1iLIXnQb$rVtTeqlJ7g3AcZgftmVdKFnT2ggCsnVayPlT4beLST9Oz2LHGT2fdcOC/yaQkISK3wzFLqh47fSHgQvRUWpl41";
|
|
||||||
extraGroups = [ "networkmanager" "wheel" ];
|
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;
|
||||||
|
description = "jay";
|
||||||
|
#hashedPasswordFile = config.sops.secrets.jay_password_hash.path;
|
||||||
|
hashedPassword = "$y$j9T$oomgQFsMbc0odlNIUXEpq/$dhgLjElzaJuU3rF1wXGcSXFUWC/fP1g5mAPZizKUFQ4";
|
||||||
|
|
||||||
|
# Gamemode group allows gamemode to set cpu governor to performance when games launch.
|
||||||
|
# See https://nixos.wiki/wiki/Gamemode
|
||||||
|
extraGroups = [ "networkmanager" "wheel" "gamemode" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,4 +4,8 @@
|
|||||||
channel = "stable";
|
channel = "stable";
|
||||||
};
|
};
|
||||||
lappy = {};
|
lappy = {};
|
||||||
|
nixy = {
|
||||||
|
deploy.local = true;
|
||||||
|
};
|
||||||
|
nixwork = {};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 =
|
||||||
|
|||||||
@@ -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,14 @@
|
|||||||
"noatime"
|
"noatime"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
"/lib" = {
|
||||||
|
mountpoint = "/var/lib";
|
||||||
|
mountOptions = [
|
||||||
|
"subvol=lib"
|
||||||
|
"compress=zstd"
|
||||||
|
"noatime"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -81,6 +104,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
fileSystems."/nix/persist".neededForBoot = true;
|
fileSystems."/persist".neededForBoot = true;
|
||||||
fileSystems."/var/log".neededForBoot = true;
|
fileSystems."/var/log".neededForBoot = true;
|
||||||
|
fileSystems."/var/lib".neededForBoot = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 =
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, inputs, lib, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./programs/hyprland.nix
|
./programs/hyprland.nix
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, lib, ... }: {
|
{ lib, ... }: {
|
||||||
programs.hyprpanel = {
|
programs.hyprpanel = {
|
||||||
settings = {
|
settings = {
|
||||||
"bar.layouts" = {
|
"bar.layouts" = {
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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" ];
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}];
|
}];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, ...}: {
|
{ ... }: {
|
||||||
networking.hostName = "lappy"; # Define your hostname.
|
networking.hostName = "lappy"; # Define your hostname.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
24
nodes/hosts/nixwork/configuration.nix
Normal file
24
nodes/hosts/nixwork/configuration.nix
Normal 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?
|
||||||
|
}
|
||||||
|
|
||||||
110
nodes/hosts/nixwork/disk-config.nix
Normal file
110
nodes/hosts/nixwork/disk-config.nix
Normal 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;
|
||||||
|
}
|
||||||
26
nodes/hosts/nixwork/hardware-configuration.nix
Normal file
26
nodes/hosts/nixwork/hardware-configuration.nix
Normal 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;
|
||||||
|
}
|
||||||
8
nodes/hosts/nixwork/home/jay/home.nix
Normal file
8
nodes/hosts/nixwork/home/jay/home.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./programs/hyprland.nix
|
||||||
|
./programs/hyprpanel.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
7
nodes/hosts/nixwork/home/jay/programs/hyprland.nix
Normal file
7
nodes/hosts/nixwork/home/jay/programs/hyprland.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{ ... }: {
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
settings = {
|
||||||
|
"monitor" = "eDP-1, 2560x1600@60, 0x0, 1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
13
nodes/hosts/nixwork/home/jay/programs/hyprpanel.nix
Normal file
13
nodes/hosts/nixwork/home/jay/programs/hyprpanel.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, ... }: {
|
||||||
|
programs.hyprpanel = {
|
||||||
|
settings = {
|
||||||
|
bar = {
|
||||||
|
customModules = {
|
||||||
|
cava = {
|
||||||
|
framerate = lib.mkForce 120;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
4
nodes/hosts/nixwork/node.nix
Normal file
4
nodes/hosts/nixwork/node.nix
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
os = "nixos";
|
||||||
|
channel = "stable";
|
||||||
|
}
|
||||||
8
nodes/hosts/nixwork/programs/sof-firmware.nix
Normal file
8
nodes/hosts/nixwork/programs/sof-firmware.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{ pkgs, ... }: {
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.sof-firmware
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
3
nodes/hosts/nixwork/services/fprintd.nix
Normal file
3
nodes/hosts/nixwork/services/fprintd.nix
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{ pkgs, ...}: {
|
||||||
|
services.fprintd.enable = true;
|
||||||
|
}
|
||||||
4
nodes/hosts/nixwork/services/lidswitch.nix
Normal file
4
nodes/hosts/nixwork/services/lidswitch.nix
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{ pkgs, ...}: {
|
||||||
|
services.logind.lidSwitch = "poweroff";
|
||||||
|
services.logind.lidSwitchExternalPower = "lock";
|
||||||
|
}
|
||||||
4
nodes/hosts/nixwork/services/touchpad.nix
Normal file
4
nodes/hosts/nixwork/services/touchpad.nix
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{ ... }: {
|
||||||
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
|
services.libinput.enable = true;
|
||||||
|
}
|
||||||
52
nodes/hosts/nixwork/system/bootloader.nix
Normal file
52
nodes/hosts/nixwork/system/bootloader.nix
Normal 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" ];
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
54
nodes/hosts/nixwork/system/filesystems.nix
Normal file
54
nodes/hosts/nixwork/system/filesystems.nix
Normal 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;
|
||||||
|
}];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
4
nodes/hosts/nixwork/system/networking.nix
Normal file
4
nodes/hosts/nixwork/system/networking.nix
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{ ... }: {
|
||||||
|
networking.hostName = "nixwork"; # Define your hostname.
|
||||||
|
}
|
||||||
|
|
||||||
24
nodes/hosts/nixy/configuration.nix
Normal file
24
nodes/hosts/nixy/configuration.nix
Normal 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?
|
||||||
|
}
|
||||||
|
|
||||||
119
nodes/hosts/nixy/disk-config.nix
Normal file
119
nodes/hosts/nixy/disk-config.nix
Normal 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;
|
||||||
|
}
|
||||||
21
nodes/hosts/nixy/hardware-configuration.nix
Normal file
21
nodes/hosts/nixy/hardware-configuration.nix
Normal 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;
|
||||||
|
}
|
||||||
@@ -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"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
42
nodes/hosts/nixy/impermanence.nix
Normal file
42
nodes/hosts/nixy/impermanence.nix
Normal 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 = [
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
4
nodes/hosts/nixy/node.nix
Normal file
4
nodes/hosts/nixy/node.nix
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
os = "nixos";
|
||||||
|
channel = "stable";
|
||||||
|
}
|
||||||
13
nodes/hosts/nixy/services/xserver.nix
Normal file
13
nodes/hosts/nixy/services/xserver.nix
Normal 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" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
52
nodes/hosts/nixy/system/bootloader.nix
Normal file
52
nodes/hosts/nixy/system/bootloader.nix
Normal 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" ];
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
13
nodes/hosts/nixy/system/environment.nix
Normal file
13
nodes/hosts/nixy/system/environment.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
48
nodes/hosts/nixy/system/filesystems.nix
Normal file
48
nodes/hosts/nixy/system/filesystems.nix
Normal 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;
|
||||||
|
}];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
4
nodes/hosts/nixy/system/networking.nix
Normal file
4
nodes/hosts/nixy/system/networking.nix
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{ ... }: {
|
||||||
|
networking.hostName = "nixy"; # Define your hostname.
|
||||||
|
}
|
||||||
|
|
||||||
43
nodes/hosts/nixy/system/nvidia.nix
Normal file
43
nodes/hosts/nixy/system/nvidia.nix
Normal 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
1
private
Submodule
Submodule private added at 7d635d0d2f
Reference in New Issue
Block a user