Compare commits
203 Commits
6b1b1fef4c
...
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 | |||
| c0bf134b2a | |||
| bb348cd08a | |||
| fcfd9c6f72 | |||
| 69c9056992 | |||
| c1b27c2f82 | |||
| 6d35ed908e | |||
| 14277991cd | |||
| cf25455a91 | |||
| 9d1278388d |
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": {
|
||||
"auto-cpufreq-stable-nixos": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752998173,
|
||||
"narHash": "sha256-ZlYpBp2WOe03UrpjJGz5KTOL/pp7A452hJO/Vc8C4/0=",
|
||||
"owner": "AdnanHodzic",
|
||||
"repo": "auto-cpufreq",
|
||||
"rev": "562278377ffa96f3c1af49c7b499df028ce8d8bd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "AdnanHodzic",
|
||||
"repo": "auto-cpufreq",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16": {
|
||||
"inputs": {
|
||||
"fromYaml": "fromYaml"
|
||||
@@ -97,11 +117,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750903843,
|
||||
"narHash": "sha256-Ng9+f0H5/dW+mq/XOKvB9uwvGbsuiiO6HrPdAcVglCs=",
|
||||
"lastModified": 1756733629,
|
||||
"narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "83c4da299c1d7d300f8c6fd3a72ac46cb0d59aae",
|
||||
"rev": "a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -126,22 +146,25 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"lastModified": 1754487366,
|
||||
"narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixverse",
|
||||
@@ -163,7 +186,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"flake-parts_3": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"stylix-stable-nixos",
|
||||
@@ -218,54 +241,6 @@
|
||||
"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": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -311,11 +286,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751468302,
|
||||
"narHash": "sha256-tWosziZTT039x6PgEZUhzGlV8oLvdDmIgKTE8ESMaEA=",
|
||||
"lastModified": 1756679287,
|
||||
"narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "501cfec8277f931a9c9af9f23d3105c537faeafe",
|
||||
"rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -326,28 +301,6 @@
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"nixpkgs": [
|
||||
"zen-browser-stable-nixos",
|
||||
@@ -355,11 +308,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743604125,
|
||||
"narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=",
|
||||
"lastModified": 1752603129,
|
||||
"narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a",
|
||||
"rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -375,11 +328,11 @@
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751528316,
|
||||
"narHash": "sha256-MGJmxnjlERXJLDywrSHYSgpt7fhh3/HOHQboRrxDW64=",
|
||||
"lastModified": 1755569534,
|
||||
"narHash": "sha256-ukXfV1cAsxoar0IVEO2/s3qnVEZpZf0wvqE3PIESobw=",
|
||||
"owner": "Jas-SinghFSU",
|
||||
"repo": "Hyprpanel",
|
||||
"rev": "343c9857bd7f1d302d591e8d5f3f9952dc84775b",
|
||||
"rev": "6385f2e15df908e0c13bed800f4b091300e5b981",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -388,6 +341,21 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -425,6 +393,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-gaming-stable-nixos": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": [
|
||||
"nixpkgs-stable-nixos"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756950352,
|
||||
"narHash": "sha256-CkNlcUeNlDmxF1GJwEQg3aIBSCihnFcAqCwBjUQGqNY=",
|
||||
"owner": "fufexan",
|
||||
"repo": "nix-gaming",
|
||||
"rev": "64ac07fae89f297beab704dce70038cdbda55c25",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "fufexan",
|
||||
"repo": "nix-gaming",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-vm-test": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -450,7 +439,7 @@
|
||||
"nixos-anywhere": {
|
||||
"inputs": {
|
||||
"disko": "disko",
|
||||
"flake-parts": "flake-parts",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nix-vm-test": "nix-vm-test",
|
||||
"nixos-images": "nixos-images",
|
||||
"nixos-stable": "nixos-stable",
|
||||
@@ -474,6 +463,22 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"nixos-stable": [
|
||||
@@ -533,13 +538,28 @@
|
||||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1751211869,
|
||||
"narHash": "sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y=",
|
||||
"lastModified": 1756886854,
|
||||
"narHash": "sha256-6tooT142NLcFjt24Gi4B0G1pgWLvfw7y93sYEfSHlLI=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b43c397f6c213918d6cfe6e3550abfe79b5d1c51",
|
||||
"rev": "0e6684e6c5755325f801bda1751a8a4038145d7d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -549,13 +569,29 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1751498133,
|
||||
"narHash": "sha256-QWJ+NQbMU+NcU2xiyo7SNox1fAuwksGlQhpzBl76g1I=",
|
||||
"lastModified": 1756819007,
|
||||
"narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d55716bb59b91ae9d1ced4b1ccdea7a442ecbfdb",
|
||||
"rev": "aaff8c16d7fc04991cac6245bee1baa31f72b1e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1756819007,
|
||||
"narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "aaff8c16d7fc04991cac6245bee1baa31f72b1e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -572,15 +608,16 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751442502,
|
||||
"narHash": "sha256-XBk4qJcgnAkOcTOYTwyb8eUNtKshaOvYQdevpUxyQBw=",
|
||||
"lastModified": 1751773294,
|
||||
"narHash": "sha256-7SOb5tc8FARZHUBr8HeCO5016lpiG+S1qugQQdXzF/w=",
|
||||
"owner": "hgl",
|
||||
"repo": "nixverse",
|
||||
"rev": "bebfe4861e04fe985b229313f814484f86b10a37",
|
||||
"rev": "084a07f43829857fc760e70212c497d2f40eaa3c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hgl",
|
||||
"ref": "084a07f43829857fc760e70212c497d2f40eaa3c",
|
||||
"repo": "nixverse",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -613,17 +650,43 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"auto-cpufreq-stable-nixos": "auto-cpufreq-stable-nixos",
|
||||
"disko-stable-nixos": "disko-stable-nixos",
|
||||
"home-manager-stable-nixos": "home-manager-stable-nixos",
|
||||
"hyprpanel-stable-nixos": "hyprpanel-stable-nixos",
|
||||
"impermanence-stable-nixos": "impermanence-stable-nixos",
|
||||
"nix-flatpak-stable-nixos": "nix-flatpak-stable-nixos",
|
||||
"nix-gaming-stable-nixos": "nix-gaming-stable-nixos",
|
||||
"nixos-hardware-stable-nixos": "nixos-hardware-stable-nixos",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-stable-nixos": "nixpkgs-stable-nixos",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"nixverse": "nixverse",
|
||||
"sops-nix-stable-nixos": "sops-nix-stable-nixos",
|
||||
"stylix-stable-nixos": "stylix-stable-nixos",
|
||||
"zen-browser-stable-nixos": "zen-browser-stable-nixos"
|
||||
}
|
||||
},
|
||||
"sops-nix-stable-nixos": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs-stable-nixos"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754988908,
|
||||
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"stylix-stable-nixos": {
|
||||
"inputs": {
|
||||
"base16": "base16",
|
||||
@@ -631,11 +694,8 @@
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"git-hooks": "git-hooks",
|
||||
"flake-parts": "flake-parts_3",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"home-manager": "home-manager_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
@@ -648,11 +708,11 @@
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751404484,
|
||||
"narHash": "sha256-9prjnLoa6NcqCItwzq69Twq/FOe0NwRB9OiqH3q0gOs=",
|
||||
"lastModified": 1756812894,
|
||||
"narHash": "sha256-wZfNe3ms+dS2cUEGe8ygqNxBHGQCRoJQuQM9xFgGad0=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "4135c1bfbe121ed77b8c25a2141eace0ada9b0b8",
|
||||
"rev": "a9553a7486c86259b7678235cc26cfd70296251d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -819,17 +879,17 @@
|
||||
},
|
||||
"zen-browser-stable-nixos": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager_3",
|
||||
"home-manager": "home-manager_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751512826,
|
||||
"narHash": "sha256-7ZacraAVWZBXGlg+UoPsZs+DACSsKJKTnCA83nXT6rM=",
|
||||
"lastModified": 1756941389,
|
||||
"narHash": "sha256-r7Km2PY1gxpNmq7dPbs89JiyHiJ5zRCF6cBPyb2WWGY=",
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "fedb07931fc9b162a972b8966fdd9ba76273a590",
|
||||
"rev": "d197dd7556567a7a4174dee543286e5e65198379",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
33
flake.nix
33
flake.nix
@@ -2,11 +2,19 @@
|
||||
inputs = {
|
||||
self.submodules = true;
|
||||
nixpkgs-stable-nixos.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
|
||||
nixverse = {
|
||||
url = "github:hgl/nixverse";
|
||||
url = "github:hgl/nixverse?ref=084a07f43829857fc760e70212c497d2f40eaa3c";
|
||||
inputs.nixpkgs.follows = "nixpkgs-stable-nixos";
|
||||
};
|
||||
|
||||
auto-cpufreq-stable-nixos = {
|
||||
url = "github:AdnanHodzic/auto-cpufreq";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
disko-stable-nixos = {
|
||||
url = "github:nix-community/disko";
|
||||
inputs.nixpkgs.follows = "nixpkgs-stable-nixos";
|
||||
@@ -25,12 +33,35 @@
|
||||
url = "github:gmodena/nix-flatpak/?ref=latest";
|
||||
};
|
||||
|
||||
nix-gaming-stable-nixos = {
|
||||
url = "github:fufexan/nix-gaming";
|
||||
inputs.nixpkgs.follows = "nixpkgs-stable-nixos";
|
||||
};
|
||||
|
||||
impermanence-stable-nixos = {
|
||||
url = "github:nix-community/impermanence";
|
||||
};
|
||||
|
||||
#nixcord-stable-nixos = {
|
||||
# url = "github:kaylorben/nixcord";
|
||||
#};
|
||||
|
||||
nixos-hardware-stable-nixos = {
|
||||
url = "github:NixOS/nixos-hardware/master";
|
||||
};
|
||||
|
||||
sops-nix-stable-nixos = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs-stable-nixos";
|
||||
};
|
||||
|
||||
stylix-stable-nixos = {
|
||||
url = "github:danth/stylix/release-25.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
zen-browser-stable-nixos = {
|
||||
#url = "github:0xc000022070/zen-browser-flake?ref=ea79cbda8e685dd0f9c6e88adcfa7762a83e9067";
|
||||
url = "github:0xc000022070/zen-browser-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
{ inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
inputs.stylix.nixosModules.stylix
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
inputs.nix-gaming.nixosModules.pipewireLowLatency
|
||||
./programs/appimage.nix
|
||||
./programs/emulation.nix
|
||||
./programs/firefox.nix
|
||||
./programs/fonts.nix
|
||||
@@ -14,9 +17,9 @@
|
||||
./programs/hyprland.nix
|
||||
./programs/kde.nix
|
||||
./programs/obs-studio.nix
|
||||
./programs/open-tv.nix
|
||||
./programs/session-desktop.nix
|
||||
./programs/steam.nix
|
||||
./programs/streamcontroller.nix
|
||||
./programs/zen-browser.nix
|
||||
./scripts/upgrade-diff.nix
|
||||
./services/blueman.nix
|
||||
@@ -26,11 +29,13 @@
|
||||
./services/nix-flatpak.nix
|
||||
./services/sound.nix
|
||||
./system/bluetooth.nix
|
||||
./system/bootloader.nix
|
||||
./system/environment.nix
|
||||
./system/locale.nix
|
||||
./system/networking.nix
|
||||
./system/nixos.nix
|
||||
./system/security.nix
|
||||
./system/sops.nix
|
||||
./system/time.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
|
||||
# manage.
|
||||
# manag:e.
|
||||
home.username = "jay";
|
||||
home.homeDirectory = "/home/jay";
|
||||
|
||||
imports = [
|
||||
#inputs.nixcord.homeModules.nixcord
|
||||
inputs.stylix.homeModules.stylix
|
||||
./programs/alacritty.nix
|
||||
./programs/bash.nix
|
||||
./programs/btop.nix
|
||||
./programs/emacs.nix
|
||||
./programs/git.nix
|
||||
./programs/hyprland.nix
|
||||
./programs/hyprlock.nix
|
||||
./programs/hyprpanel.nix
|
||||
./programs/lazygit.nix
|
||||
./programs/mangohud.nix
|
||||
./programs/discord.nix
|
||||
./programs/oh-my-posh.nix
|
||||
./programs/qutebrowser.nix
|
||||
./programs/rbw.nix
|
||||
./programs/rofi.nix
|
||||
./programs/stylix.nix
|
||||
@@ -38,8 +44,9 @@
|
||||
# The home.packages option allows you to install Nix packages into your
|
||||
# environment.
|
||||
home.packages = [
|
||||
pkgs.legcord
|
||||
pkgs.libgtop
|
||||
pkgs.powertop
|
||||
pkgs.upower
|
||||
#pkgs.mpvpaper
|
||||
# pkgs.hyprlandPlugins.hyprtrails
|
||||
];
|
||||
@@ -47,10 +54,14 @@
|
||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||
# plain files is through 'home.file'.
|
||||
home.file = {
|
||||
# ".config/elinks/elinks.conf".source = ../../dotfiles/elinks/elinks.conf;
|
||||
# ".config/jellyfin-tui/config.yaml".source = ../../dotfiles/jellyfin-tui/config.yaml;
|
||||
# ".config/newsboat/config".source = ../../dotfiles/newsboat/config;
|
||||
# "quickemu/kubuntu-24.04.conf".source = ../../dotfiles/quickemu/kubuntu-24.04.conf;
|
||||
".config/elinks/elinks.conf".source = ../../../../../private/dotfiles/elinks/elinks.conf;
|
||||
".config/jellyfin-tui/config.yaml".source = ../../../../../private/dotfiles/jellyfin-tui/config.yaml;
|
||||
".config/jellyfin-rpc/urls.json".source = ../../../../../private/dotfiles/jellyfin-rpc/urls.json;
|
||||
".config/jellyfin-rpc/main.json".source = ../../../../../private/dotfiles/jellyfin-rpc/main.json;
|
||||
".config/lvim/config.lua".source = ../../../../../private/dotfiles/lunarvim/config.lua;
|
||||
".config/newsboat/config".source = ../../../../../private/dotfiles/newsboat/config;
|
||||
".config/television/nix_channels.toml".source = ../../../../../private/dotfiles/television/nix_channels.toml;
|
||||
"quickemu/kubuntu-24.04.conf".source = ../../../../../private/dotfiles/quickemu/kubuntu-24.04.conf;
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ lib, pkgs, ...}: {
|
||||
{ lib, ... }: {
|
||||
programs.alacritty = lib.mkForce {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{ pkgs, ...}: {
|
||||
{ ... }: {
|
||||
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 = {
|
||||
# Allow home-manager to configure hyprland
|
||||
enable = true;
|
||||
@@ -207,7 +207,7 @@
|
||||
# "systemctl --user start hyprpolkitagent"
|
||||
"steam --disable-gpu-compositing" # nvidia pls let me have nice things
|
||||
#"vesktop"
|
||||
"legcord"
|
||||
"goofcord"
|
||||
# "[workspace 9 silent] ELECTRON_OZONE_PLATFORM_HINT=x11 1password" # fix for promts not showing up anymore
|
||||
"zen-twilight"
|
||||
# "${pkgs.xorg.xhost}/bin/xhost +"
|
||||
@@ -225,7 +225,7 @@
|
||||
windowrulev2 = [
|
||||
"workspace 1 silent, class:^(zen-twilight)$"
|
||||
"workspace 2 silent, class:^(steam)$"
|
||||
"workspace 3 silent, class:^(legcord)$"
|
||||
"workspace 3 silent, class:^(goofcord)$"
|
||||
"workspace 4 silent, class:^(com.core447.StreamController)$"
|
||||
"float,class:(clipse)$"
|
||||
"size 622 652,class:(clipse)$"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{ pkgs, ...}: {
|
||||
{ ... }: {
|
||||
programs.hyprlock.enable = true;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ...}: {
|
||||
{ ... }: {
|
||||
programs.hyprpanel = {
|
||||
enable = true;
|
||||
settings = {
|
||||
@@ -6,7 +6,7 @@
|
||||
"0" = {
|
||||
left = [ "dashboard" "separator" "microphone" "volume" "bluetooth" "hypridle" "separator" "network" "separator" "workspaces" "windowtitle" ];
|
||||
middle = [ "media" "cava" ];
|
||||
right = [ "netstat" "cpu" "cputemp" "ram" "storage" "separator" "systray" "notifications" "separator" "weather" "clock" ];
|
||||
right = [ "cpu" "cputemp" "ram" "storage" "separator" "systray" "notifications" "battery" "separator" "weather" "clock" ];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -131,6 +131,380 @@
|
||||
# "3" = "";
|
||||
# "4" = "";
|
||||
# };
|
||||
|
||||
theme.bar.menus.background = "#2e3440";
|
||||
theme.bar.background = "#2e3440";
|
||||
theme.bar.buttons.media.icon = "#88c0d0";
|
||||
theme.bar.buttons.media.text = "#88c0d0";
|
||||
theme.bar.buttons.icon = "#88c0d0";
|
||||
theme.bar.buttons.text = "#88c0d0";
|
||||
theme.bar.buttons.hover = "#434c53";
|
||||
theme.bar.buttons.background = "#3b4252";
|
||||
theme.bar.menus.text = "#d8dee9";
|
||||
theme.bar.menus.border.color = "#434c53";
|
||||
theme.bar.buttons.media.background = "#3b4252";
|
||||
theme.bar.menus.menu.volume.text = "#d8dee9";
|
||||
theme.bar.menus.menu.volume.card.color = "#3b4252";
|
||||
theme.bar.menus.menu.volume.label.color = "#81a1c1";
|
||||
theme.bar.menus.popover.text = "#88c0d0";
|
||||
theme.bar.menus.popover.background = "#2e3440";
|
||||
theme.bar.menus.menu.dashboard.powermenu.shutdown = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.powermenu.confirmation.deny = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text = "#2e3440";
|
||||
theme.bar.menus.menu.dashboard.powermenu.confirmation.body = "#d8dee9";
|
||||
theme.bar.menus.menu.dashboard.powermenu.confirmation.label = "#88c0d0";
|
||||
theme.bar.menus.menu.dashboard.powermenu.confirmation.border = "#434c53";
|
||||
theme.bar.menus.menu.dashboard.powermenu.confirmation.background = "#2e3440";
|
||||
theme.bar.menus.menu.dashboard.powermenu.confirmation.card = "#3b4252";
|
||||
theme.bar.menus.menu.notifications.switch.puck = "#434c53";
|
||||
theme.bar.menus.menu.notifications.switch.disabled = "#434c53";
|
||||
theme.bar.menus.menu.notifications.switch.enabled = "#88c0d0";
|
||||
theme.bar.menus.menu.notifications.clear = "#8fbcbb";
|
||||
theme.bar.menus.menu.notifications.switch_divider = "#434c53";
|
||||
theme.bar.menus.menu.notifications.border = "#434c53";
|
||||
theme.bar.menus.menu.notifications.card = "#3b4252";
|
||||
theme.bar.menus.menu.notifications.background = "#2e3440";
|
||||
theme.bar.menus.menu.notifications.no_notifications_label = "#434c53";
|
||||
theme.bar.menus.menu.notifications.label = "#88c0d0";
|
||||
theme.bar.menus.menu.dashboard.monitors.disk.label = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.monitors.disk.bar = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.monitors.disk.icon = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.monitors.gpu.label = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.monitors.gpu.bar = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.monitors.gpu.icon = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.monitors.ram.label = "#81a1c1";
|
||||
theme.bar.menus.menu.dashboard.monitors.ram.bar = "#81a1c1";
|
||||
theme.bar.menus.menu.dashboard.monitors.ram.icon = "#81a1c1";
|
||||
theme.bar.menus.menu.dashboard.monitors.cpu.label = "#81a1c1";
|
||||
theme.bar.menus.menu.dashboard.monitors.cpu.bar = "#81a1c1";
|
||||
theme.bar.menus.menu.dashboard.monitors.cpu.icon = "#81a1c1";
|
||||
theme.bar.menus.menu.dashboard.monitors.bar_background = "#434c53";
|
||||
theme.bar.menus.menu.dashboard.directories.right.bottom.color = "#88c0d0";
|
||||
theme.bar.menus.menu.dashboard.directories.right.middle.color = "#88c0d0";
|
||||
theme.bar.menus.menu.dashboard.directories.right.top.color = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.directories.left.bottom.color = "#81a1c1";
|
||||
theme.bar.menus.menu.dashboard.directories.left.middle.color = "#81a1c1";
|
||||
theme.bar.menus.menu.dashboard.directories.left.top.color = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.controls.input.text = "#2e3440";
|
||||
theme.bar.menus.menu.dashboard.controls.input.background = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.controls.volume.text = "#2e3440";
|
||||
theme.bar.menus.menu.dashboard.controls.volume.background = "#81a1c1";
|
||||
theme.bar.menus.menu.dashboard.controls.notifications.text = "#2e3440";
|
||||
theme.bar.menus.menu.dashboard.controls.notifications.background = "#81a1c1";
|
||||
theme.bar.menus.menu.dashboard.controls.bluetooth.text = "#2e3440";
|
||||
theme.bar.menus.menu.dashboard.controls.bluetooth.background = "#88c0d0";
|
||||
theme.bar.menus.menu.dashboard.controls.wifi.text = "#2e3440";
|
||||
theme.bar.menus.menu.dashboard.controls.wifi.background = "#88c0d0";
|
||||
theme.bar.menus.menu.dashboard.controls.disabled = "#434c53";
|
||||
theme.bar.menus.menu.dashboard.shortcuts.recording = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.shortcuts.text = "#2e3440";
|
||||
theme.bar.menus.menu.dashboard.shortcuts.background = "#88c0d0";
|
||||
theme.bar.menus.menu.dashboard.powermenu.sleep = "#88c0d0";
|
||||
theme.bar.menus.menu.dashboard.powermenu.logout = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.powermenu.restart = "#81a1c1";
|
||||
theme.bar.menus.menu.dashboard.profile.name = "#8fbcbb";
|
||||
theme.bar.menus.menu.dashboard.border.color = "#434c53";
|
||||
theme.bar.menus.menu.dashboard.background.color = "#2e3440";
|
||||
theme.bar.menus.menu.dashboard.card.color = "#3b4252";
|
||||
theme.bar.menus.menu.clock.weather.hourly.temperature = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.weather.hourly.icon = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.weather.hourly.time = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.weather.thermometer.extremelycold = "#88c0d0";
|
||||
theme.bar.menus.menu.clock.weather.thermometer.cold = "#88c0d0";
|
||||
theme.bar.menus.menu.clock.weather.thermometer.moderate = "#88c0d0";
|
||||
theme.bar.menus.menu.clock.weather.thermometer.hot = "#81a1c1";
|
||||
theme.bar.menus.menu.clock.weather.thermometer.extremelyhot = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.weather.stats = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.weather.status = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.weather.temperature = "#d8dee9";
|
||||
theme.bar.menus.menu.clock.weather.icon = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.calendar.contextdays = "#434c53";
|
||||
theme.bar.menus.menu.clock.calendar.days = "#d8dee9";
|
||||
theme.bar.menus.menu.clock.calendar.currentday = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.calendar.paginator = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.calendar.weekdays = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.calendar.yearmonth = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.time.timeperiod = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.time.time = "#8fbcbb";
|
||||
theme.bar.menus.menu.clock.text = "#d8dee9";
|
||||
theme.bar.menus.menu.clock.border.color = "#434c53";
|
||||
theme.bar.menus.menu.clock.background.color = "#2e3440";
|
||||
theme.bar.menus.menu.clock.card.color = "#3b4252";
|
||||
theme.bar.menus.menu.battery.slider.puck = "#4c566a";
|
||||
theme.bar.menus.menu.battery.slider.backgroundhover = "#434c53";
|
||||
theme.bar.menus.menu.battery.slider.background = "#434c53";
|
||||
theme.bar.menus.menu.battery.slider.primary = "#81a1c1";
|
||||
theme.bar.menus.menu.battery.icons.active = "#81a1c1";
|
||||
theme.bar.menus.menu.battery.icons.passive = "#5e81ac";
|
||||
theme.bar.menus.menu.battery.listitems.active = "#81a1c1";
|
||||
theme.bar.menus.menu.battery.listitems.passive = "#d8dee9";
|
||||
theme.bar.menus.menu.battery.text = "#d8dee9";
|
||||
theme.bar.menus.menu.battery.label.color = "#81a1c1";
|
||||
theme.bar.menus.menu.battery.border.color = "#434c53";
|
||||
theme.bar.menus.menu.battery.background.color = "#2e3440";
|
||||
theme.bar.menus.menu.battery.card.color = "#3b4252";
|
||||
theme.bar.menus.menu.systray.dropdownmenu.divider = "#3b4252";
|
||||
theme.bar.menus.menu.systray.dropdownmenu.text = "#d8dee9";
|
||||
theme.bar.menus.menu.systray.dropdownmenu.background = "#2e3440";
|
||||
theme.bar.menus.menu.bluetooth.iconbutton.active = "#88c0d0";
|
||||
theme.bar.menus.menu.bluetooth.iconbutton.passive = "#d8dee9";
|
||||
theme.bar.menus.menu.bluetooth.icons.active = "#88c0d0";
|
||||
theme.bar.menus.menu.bluetooth.icons.passive = "#5e81ac";
|
||||
theme.bar.menus.menu.bluetooth.listitems.active = "#88c0d0";
|
||||
theme.bar.menus.menu.bluetooth.listitems.passive = "#d8dee9";
|
||||
theme.bar.menus.menu.bluetooth.switch.puck = "#434c53";
|
||||
theme.bar.menus.menu.bluetooth.switch.disabled = "#434c53";
|
||||
theme.bar.menus.menu.bluetooth.switch.enabled = "#88c0d0";
|
||||
theme.bar.menus.menu.bluetooth.switch_divider = "#434c53";
|
||||
theme.bar.menus.menu.bluetooth.status = "#4c566a";
|
||||
theme.bar.menus.menu.bluetooth.text = "#d8dee9";
|
||||
theme.bar.menus.menu.bluetooth.label.color = "#88c0d0";
|
||||
theme.bar.menus.menu.bluetooth.border.color = "#434c53";
|
||||
theme.bar.menus.menu.bluetooth.background.color = "#2e3440";
|
||||
theme.bar.menus.menu.bluetooth.card.color = "#3b4252";
|
||||
theme.bar.menus.menu.network.iconbuttons.active = "#88c0d0";
|
||||
theme.bar.menus.menu.network.iconbuttons.passive = "#d8dee9";
|
||||
theme.bar.menus.menu.network.icons.active = "#88c0d0";
|
||||
theme.bar.menus.menu.network.icons.passive = "#5e81ac";
|
||||
theme.bar.menus.menu.network.listitems.active = "#88c0d0";
|
||||
theme.bar.menus.menu.network.listitems.passive = "#d8dee9";
|
||||
theme.bar.menus.menu.network.status.color = "#4c566a";
|
||||
theme.bar.menus.menu.network.text = "#d8dee9";
|
||||
theme.bar.menus.menu.network.label.color = "#88c0d0";
|
||||
theme.bar.menus.menu.network.border.color = "#434c53";
|
||||
theme.bar.menus.menu.network.background.color = "#2e3440";
|
||||
theme.bar.menus.menu.network.card.color = "#3b4252";
|
||||
theme.bar.menus.menu.volume.input_slider.puck = "#434c53";
|
||||
theme.bar.menus.menu.volume.input_slider.backgroundhover = "#434c53";
|
||||
theme.bar.menus.menu.volume.input_slider.background = "#434c53";
|
||||
theme.bar.menus.menu.volume.input_slider.primary = "#81a1c1";
|
||||
theme.bar.menus.menu.volume.audio_slider.puck = "#434c53";
|
||||
theme.bar.menus.menu.volume.audio_slider.backgroundhover = "#434c53";
|
||||
theme.bar.menus.menu.volume.audio_slider.background = "#434c53";
|
||||
theme.bar.menus.menu.volume.audio_slider.primary = "#81a1c1";
|
||||
theme.bar.menus.menu.volume.icons.active = "#81a1c1";
|
||||
theme.bar.menus.menu.volume.icons.passive = "#5e81ac";
|
||||
theme.bar.menus.menu.volume.iconbutton.active = "#81a1c1";
|
||||
theme.bar.menus.menu.volume.iconbutton.passive = "#d8dee9";
|
||||
theme.bar.menus.menu.volume.listitems.active = "#81a1c1";
|
||||
theme.bar.menus.menu.volume.listitems.passive = "#d8dee9";
|
||||
theme.bar.menus.menu.volume.border.color = "#434c53";
|
||||
theme.bar.menus.menu.volume.background.color = "#2e3440";
|
||||
theme.bar.menus.menu.media.slider.puck = "#4c566a";
|
||||
theme.bar.menus.menu.media.slider.backgroundhover = "#434c53";
|
||||
theme.bar.menus.menu.media.slider.background = "#434c53";
|
||||
theme.bar.menus.menu.media.slider.primary = "#8fbcbb";
|
||||
theme.bar.menus.menu.media.buttons.text = "#2e3440";
|
||||
theme.bar.menus.menu.media.buttons.background = "#88c0d0";
|
||||
theme.bar.menus.menu.media.buttons.enabled = "#8fbcbb";
|
||||
theme.bar.menus.menu.media.buttons.inactive = "#434c53";
|
||||
theme.bar.menus.menu.media.border.color = "#434c53";
|
||||
theme.bar.menus.menu.media.background.color = "#2e3440";
|
||||
theme.bar.menus.menu.media.album = "#8fbcbb";
|
||||
theme.bar.menus.menu.media.artist = "#8fbcbb";
|
||||
theme.bar.menus.menu.media.song = "#88c0d0";
|
||||
theme.bar.menus.tooltip.text = "#d8dee9";
|
||||
theme.bar.menus.tooltip.background = "#2e3440";
|
||||
theme.bar.menus.dropdownmenu.divider = "#3b4252";
|
||||
theme.bar.menus.dropdownmenu.text = "#d8dee9";
|
||||
theme.bar.menus.dropdownmenu.background = "#2e3440";
|
||||
theme.bar.menus.slider.puck = "#4c566a";
|
||||
theme.bar.menus.slider.backgroundhover = "#434c53";
|
||||
theme.bar.menus.slider.background = "#434c53";
|
||||
theme.bar.menus.slider.primary = "#88c0d0";
|
||||
theme.bar.menus.progressbar.background = "#434c53";
|
||||
theme.bar.menus.progressbar.foreground = "#88c0d0";
|
||||
theme.bar.menus.iconbuttons.active = "#88c0d0";
|
||||
theme.bar.menus.iconbuttons.passive = "#d8dee9";
|
||||
theme.bar.menus.buttons.text = "#2e3440";
|
||||
theme.bar.menus.buttons.disabled = "#434c53";
|
||||
theme.bar.menus.buttons.active = "#8fbcbb";
|
||||
theme.bar.menus.buttons.default = "#88c0d0";
|
||||
theme.bar.menus.switch.puck = "#434c53";
|
||||
theme.bar.menus.switch.disabled = "#434c53";
|
||||
theme.bar.menus.switch.enabled = "#88c0d0";
|
||||
theme.bar.menus.icons.active = "#88c0d0";
|
||||
theme.bar.menus.icons.passive = "#434c53";
|
||||
theme.bar.menus.listitems.active = "#88c0d0";
|
||||
theme.bar.menus.listitems.passive = "#d8dee9";
|
||||
theme.bar.menus.label = "#88c0d0";
|
||||
theme.bar.menus.feinttext = "#434c53";
|
||||
theme.bar.menus.dimtext = "#6272a4";
|
||||
theme.bar.menus.cards = "#3b4252";
|
||||
theme.bar.buttons.notifications.total = "#88c0d0";
|
||||
theme.bar.buttons.notifications.icon = "#88c0d0";
|
||||
theme.bar.buttons.notifications.background = "#3b4252";
|
||||
theme.bar.buttons.clock.icon = "#8fbcbb";
|
||||
theme.bar.buttons.clock.text = "#8fbcbb";
|
||||
theme.bar.buttons.clock.background = "#3b4252";
|
||||
theme.bar.buttons.battery.icon = "#81a1c1";
|
||||
theme.bar.buttons.battery.text = "#81a1c1";
|
||||
theme.bar.buttons.battery.background = "#3b4252";
|
||||
theme.bar.buttons.systray.background = "#3b4252";
|
||||
theme.bar.buttons.bluetooth.icon = "#88c0d0";
|
||||
theme.bar.buttons.bluetooth.text = "#88c0d0";
|
||||
theme.bar.buttons.bluetooth.background = "#3b4252";
|
||||
theme.bar.buttons.network.icon = "#88c0d0";
|
||||
theme.bar.buttons.network.text = "#88c0d0";
|
||||
theme.bar.buttons.network.background = "#3b4252";
|
||||
theme.bar.buttons.volume.icon = "#81a1c1";
|
||||
theme.bar.buttons.volume.text = "#81a1c1";
|
||||
theme.bar.buttons.volume.background = "#3b4252";
|
||||
theme.bar.buttons.windowtitle.icon = "#8fbcbb";
|
||||
theme.bar.buttons.windowtitle.text = "#8fbcbb";
|
||||
theme.bar.buttons.windowtitle.background = "#3b4252";
|
||||
theme.bar.buttons.workspaces.active = "#8fbcbb";
|
||||
theme.bar.buttons.workspaces.occupied = "#81a1c1";
|
||||
theme.bar.buttons.workspaces.available = "#88c0d0";
|
||||
theme.bar.buttons.workspaces.hover = "#434c53";
|
||||
theme.bar.buttons.workspaces.background = "#3b4252";
|
||||
theme.bar.buttons.dashboard.icon = "#81a1c1";
|
||||
theme.bar.buttons.dashboard.background = "#3b4252";
|
||||
theme.osd.label = "#88c0d0";
|
||||
theme.osd.icon = "#2e3440";
|
||||
theme.osd.bar_overflow_color = "#8fbcbb";
|
||||
theme.osd.bar_empty_color = "#434c53";
|
||||
theme.osd.bar_color = "#88c0d0";
|
||||
theme.osd.icon_container = "#88c0d0";
|
||||
theme.osd.bar_container = "#2e3440";
|
||||
theme.notification.close_button.label = "#2e3440";
|
||||
theme.notification.close_button.background = "#8fbcbb";
|
||||
theme.notification.labelicon = "#88c0d0";
|
||||
theme.notification.text = "#d8dee9";
|
||||
theme.notification.time = "#4c566a";
|
||||
theme.notification.border = "#434c53";
|
||||
theme.notification.label = "#88c0d0";
|
||||
theme.notification.actions.text = "#2e3440";
|
||||
theme.notification.actions.background = "#88c0d0";
|
||||
theme.notification.background = "#2e3440";
|
||||
theme.bar.buttons.workspaces.numbered_active_highlighted_text_color = "#21252b";
|
||||
theme.bar.buttons.workspaces.numbered_active_underline_color = "#ffffff";
|
||||
theme.bar.menus.menu.media.card.color = "#3b4252";
|
||||
theme.bar.menus.check_radio_button.background = "#2e3440";
|
||||
theme.bar.menus.check_radio_button.active = "#88c0d0";
|
||||
theme.bar.buttons.style = "default";
|
||||
theme.bar.menus.menu.notifications.pager.button = "#88c0d0";
|
||||
theme.bar.menus.menu.notifications.scrollbar.color = "#88c0d0";
|
||||
theme.bar.menus.menu.notifications.pager.label = "#5e81ac";
|
||||
theme.bar.menus.menu.notifications.pager.background = "#2e3440";
|
||||
theme.bar.buttons.clock.icon_background = "#8fbcbb";
|
||||
theme.bar.buttons.modules.ram.icon = "#81a1c1";
|
||||
theme.bar.buttons.modules.storage.icon_background = "#8fbcbb";
|
||||
theme.bar.menus.popover.border = "#2e3440";
|
||||
theme.bar.buttons.volume.icon_background = "#81a1c1";
|
||||
theme.bar.menus.menu.power.buttons.sleep.icon_background = "#88c0d0";
|
||||
theme.bar.menus.menu.power.buttons.restart.text = "#81a1c1";
|
||||
theme.bar.buttons.modules.updates.background = "#3b4252";
|
||||
theme.bar.buttons.modules.storage.icon = "#8fbcbb";
|
||||
theme.bar.buttons.modules.netstat.background = "#3b4252";
|
||||
theme.bar.buttons.modules.weather.icon = "#88c0d0";
|
||||
theme.bar.buttons.modules.netstat.text = "#8fbcbb";
|
||||
theme.bar.buttons.modules.storage.background = "#3b4252";
|
||||
theme.bar.buttons.modules.power.icon = "#8fbcbb";
|
||||
theme.bar.buttons.modules.storage.text = "#8fbcbb";
|
||||
theme.bar.buttons.modules.cpu.background = "#3b4252";
|
||||
theme.bar.menus.menu.power.border.color = "#434c53";
|
||||
theme.bar.buttons.network.icon_background = "#caa6f7";
|
||||
theme.bar.buttons.modules.power.icon_background = "#8fbcbb";
|
||||
theme.bar.menus.menu.power.buttons.logout.icon = "#2e3440";
|
||||
theme.bar.menus.menu.power.buttons.restart.icon_background = "#81a1c1";
|
||||
theme.bar.menus.menu.power.buttons.restart.icon = "#2e3440";
|
||||
theme.bar.buttons.modules.cpu.icon = "#8fbcbb";
|
||||
theme.bar.buttons.battery.icon_background = "#81a1c1";
|
||||
theme.bar.buttons.modules.kbLayout.icon_background = "#88c0d0";
|
||||
theme.bar.buttons.modules.weather.text = "#88c0d0";
|
||||
theme.bar.menus.menu.power.buttons.shutdown.icon = "#2e3440";
|
||||
theme.bar.menus.menu.power.buttons.sleep.text = "#88c0d0";
|
||||
theme.bar.buttons.modules.weather.icon_background = "#88c0d0";
|
||||
theme.bar.menus.menu.power.buttons.shutdown.background = "#3b4252";
|
||||
theme.bar.buttons.media.icon_background = "#88c0d0";
|
||||
theme.bar.menus.menu.power.buttons.logout.background = "#3b4252";
|
||||
theme.bar.buttons.modules.kbLayout.icon = "#88c0d0";
|
||||
theme.bar.buttons.modules.ram.icon_background = "#81a1c1";
|
||||
theme.bar.menus.menu.power.buttons.shutdown.icon_background = "#8fbcbb";
|
||||
theme.bar.menus.menu.power.buttons.shutdown.text = "#8fbcbb";
|
||||
theme.bar.menus.menu.power.buttons.sleep.background = "#3b4252";
|
||||
theme.bar.buttons.modules.ram.text = "#81a1c1";
|
||||
theme.bar.menus.menu.power.buttons.logout.text = "#8fbcbb";
|
||||
theme.bar.buttons.modules.updates.icon_background = "#88c0d0";
|
||||
theme.bar.buttons.modules.kbLayout.background = "#3b4252";
|
||||
theme.bar.buttons.modules.power.background = "#3b4252";
|
||||
theme.bar.buttons.modules.weather.background = "#3b4252";
|
||||
theme.bar.buttons.icon_background = "#3b4252";
|
||||
theme.bar.menus.menu.power.background.color = "#2e3440";
|
||||
theme.bar.buttons.modules.ram.background = "#3b4252";
|
||||
theme.bar.buttons.modules.netstat.icon = "#8fbcbb";
|
||||
theme.bar.buttons.windowtitle.icon_background = "#8fbcbb";
|
||||
theme.bar.buttons.modules.cpu.icon_background = "#8fbcbb";
|
||||
theme.bar.menus.menu.power.buttons.logout.icon_background = "#8fbcbb";
|
||||
theme.bar.buttons.modules.updates.text = "#88c0d0";
|
||||
theme.bar.menus.menu.power.buttons.sleep.icon = "#2e3440";
|
||||
theme.bar.buttons.bluetooth.icon_background = "#89dbeb";
|
||||
theme.bar.menus.menu.power.buttons.restart.background = "#3b4252";
|
||||
theme.bar.buttons.modules.updates.icon = "#88c0d0";
|
||||
theme.bar.buttons.modules.cpu.text = "#8fbcbb";
|
||||
theme.bar.buttons.modules.netstat.icon_background = "#8fbcbb";
|
||||
theme.bar.buttons.modules.kbLayout.text = "#88c0d0";
|
||||
theme.bar.buttons.notifications.icon_background = "#88c0d0";
|
||||
theme.bar.buttons.modules.power.border = "#8fbcbb";
|
||||
theme.bar.buttons.modules.weather.border = "#88c0d0";
|
||||
theme.bar.buttons.modules.updates.border = "#88c0d0";
|
||||
theme.bar.buttons.modules.kbLayout.border = "#88c0d0";
|
||||
theme.bar.buttons.modules.netstat.border = "#8fbcbb";
|
||||
theme.bar.buttons.modules.storage.border = "#8fbcbb";
|
||||
theme.bar.buttons.modules.cpu.border = "#8fbcbb";
|
||||
theme.bar.buttons.modules.ram.border = "#81a1c1";
|
||||
theme.bar.buttons.notifications.border = "#88c0d0";
|
||||
theme.bar.buttons.clock.border = "#8fbcbb";
|
||||
theme.bar.buttons.battery.border = "#81a1c1";
|
||||
theme.bar.buttons.systray.border = "#434c53";
|
||||
theme.bar.buttons.bluetooth.border = "#88c0d0";
|
||||
theme.bar.buttons.network.border = "#88c0d0";
|
||||
theme.bar.buttons.volume.border = "#81a1c1";
|
||||
theme.bar.buttons.media.border = "#88c0d0";
|
||||
theme.bar.buttons.windowtitle.border = "#8fbcbb";
|
||||
theme.bar.buttons.workspaces.border = "#2e3440";
|
||||
theme.bar.buttons.dashboard.border = "#81a1c1";
|
||||
theme.bar.buttons.modules.submap.background = "#3b4252";
|
||||
theme.bar.buttons.modules.submap.text = "#8fbcbb";
|
||||
theme.bar.buttons.modules.submap.border = "#8fbcbb";
|
||||
theme.bar.buttons.modules.submap.icon = "#8fbcbb";
|
||||
theme.bar.buttons.modules.submap.icon_background = "#3b4252";
|
||||
theme.bar.menus.menu.network.switch.enabled = "#88c0d0";
|
||||
theme.bar.menus.menu.network.switch.disabled = "#434c53";
|
||||
theme.bar.menus.menu.network.switch.puck = "#434c53";
|
||||
theme.bar.buttons.systray.customIcon = "#d8dee9";
|
||||
theme.bar.border.color = "#88c0d0";
|
||||
theme.bar.menus.menu.media.timestamp = "#d8dee9";
|
||||
theme.bar.buttons.borderColor = "#88c0d0";
|
||||
theme.bar.buttons.modules.hyprsunset.icon = "#81a1c1";
|
||||
theme.bar.buttons.modules.hyprsunset.background = "#3b4252";
|
||||
theme.bar.buttons.modules.hyprsunset.icon_background = "#81a1c1";
|
||||
theme.bar.buttons.modules.hyprsunset.text = "#81a1c1";
|
||||
theme.bar.buttons.modules.hyprsunset.border = "#81a1c1";
|
||||
theme.bar.buttons.modules.hypridle.icon = "#8fbcbb";
|
||||
theme.bar.buttons.modules.hypridle.background = "#3b4252";
|
||||
theme.bar.buttons.modules.hypridle.icon_background = "#8fbcbb";
|
||||
theme.bar.buttons.modules.hypridle.text = "#8fbcbb";
|
||||
theme.bar.buttons.modules.hypridle.border = "#8fbcbb";
|
||||
theme.bar.menus.menu.network.scroller.color = "#88c0d0";
|
||||
theme.bar.menus.menu.bluetooth.scroller.color = "#88c0d0";
|
||||
theme.bar.buttons.modules.cava.text = "#8fbcbb";
|
||||
theme.bar.buttons.modules.cava.background = "#3b4252";
|
||||
theme.bar.buttons.modules.cava.icon_background = "#3b4252";
|
||||
theme.bar.buttons.modules.cava.icon = "#8fbcbb";
|
||||
theme.bar.buttons.modules.cava.border = "#8fbcbb";
|
||||
theme.bar.buttons.modules.microphone.border = "#8fbcbb";
|
||||
theme.bar.buttons.modules.microphone.background = "#3b4252";
|
||||
theme.bar.buttons.modules.microphone.text = "#8fbcbb";
|
||||
theme.bar.buttons.modules.microphone.icon = "#8fbcbb";
|
||||
theme.bar.buttons.modules.microphone.icon_background = "#3b4252";
|
||||
theme.bar.buttons.modules.worldclock.text = "#8fbcbb";
|
||||
theme.bar.buttons.modules.worldclock.background = "#3b4252";
|
||||
theme.bar.buttons.modules.worldclock.icon_background = "#8fbcbb";
|
||||
theme.bar.buttons.modules.worldclock.icon = "#8fbcbb";
|
||||
theme.bar.buttons.modules.worldclock.border = "#8fbcbb";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{ pkgs, ...}: {
|
||||
{ ... }: {
|
||||
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 = {
|
||||
enable = 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;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ...}: {
|
||||
{ pkgs, ...} : {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, inputs, ...}: {
|
||||
{ pkgs, ... }: {
|
||||
stylix = {
|
||||
enable = true;
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/nord.yaml";
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{ pkgs, ...}: {
|
||||
{ ... }: {
|
||||
services.arrpc.enable = true;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ...}: {
|
||||
{ ... }: {
|
||||
services.fluidsynth = {
|
||||
enable = true;
|
||||
soundService = "pipewire-pulse";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ...}: {
|
||||
{ ... }: {
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
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:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = [
|
||||
@@ -13,5 +13,9 @@
|
||||
services.flatpak.packages = [
|
||||
"io.github.ryubing.Ryujinx"
|
||||
];
|
||||
|
||||
environment.shellAliases = {
|
||||
ryujinx = "flatpak run io.github.ryubing.Ryujinx";
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }: {
|
||||
{ ... }: {
|
||||
programs.firefox.enable = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }: {
|
||||
{ pkgs, pkgs-unstable, ... }: {
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = [
|
||||
@@ -11,6 +11,8 @@
|
||||
pkgs.protonup-qt
|
||||
pkgs.wineWowPackages.stable
|
||||
pkgs.winetricks
|
||||
pkgs-unstable.nero-umu
|
||||
pkgs-unstable.protonplus
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ config, inputs, lib, pkgs, ... }: {
|
||||
{ pkgs, pkgs', ... }: {
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
|
||||
@@ -17,12 +17,15 @@
|
||||
pkgs.btop
|
||||
pkgs.chatterino2
|
||||
pkgs.clipse
|
||||
#(pkgs.discord.override { withMoonlight = true; })
|
||||
pkgs.dmidecode
|
||||
pkgs.dysk
|
||||
pkgs.elinks
|
||||
pkgs.fastfetch
|
||||
pkgs.gearlever
|
||||
pkgs.git
|
||||
pkgs.gpustat
|
||||
pkgs.gnumake
|
||||
#pkgs.gpustat
|
||||
pkgs.hdrop
|
||||
pkgs.htop
|
||||
pkgs.libmpg123
|
||||
@@ -30,11 +33,14 @@
|
||||
pkgs.jellyfin-tui
|
||||
pkgs.lsd
|
||||
pkgs.lshw
|
||||
pkgs.lunarvim
|
||||
pkgs.neovim
|
||||
pkgs.newsboat
|
||||
pkgs.nix-melt
|
||||
pkgs.nix-search-tv
|
||||
pkgs.nvd
|
||||
pkgs.nyxt
|
||||
pkgs.overlayed
|
||||
pkgs.p7zip-rar
|
||||
pkgs.pciutils
|
||||
pkgs.pinentry-curses
|
||||
@@ -44,11 +50,15 @@
|
||||
pkgs.rofi-rbw-wayland
|
||||
pkgs.sops
|
||||
pkgs.teams-for-linux
|
||||
pkgs.television
|
||||
pkgs.tree
|
||||
pkgs.unrar
|
||||
pkgs.unzip
|
||||
pkgs.usbutils
|
||||
pkgs.vlc
|
||||
pkgs.wf-recorder
|
||||
pkgs.zip
|
||||
pkgs'.nixverse
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }: {
|
||||
{ ... }: {
|
||||
programs.git.enable = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ config, inputs, lib, pkgs, ... }: {
|
||||
{ pkgs, ... }: {
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, inputs, ... }: {
|
||||
{ pkgs, ... }: {
|
||||
# Install hyprland
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
@@ -12,6 +12,7 @@
|
||||
environment.systemPackages = [
|
||||
# Fix for hyprpanel network icon
|
||||
pkgs.adwaita-icon-theme
|
||||
pkgs.cava
|
||||
pkgs.grim
|
||||
pkgs.hyprpicker
|
||||
pkgs.hyprshot
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, inputs, ... }: {
|
||||
{ pkgs, ... }: {
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
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.
|
||||
programs = {
|
||||
gamemode.enable = true;
|
||||
gamescope.enable = true;
|
||||
gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
};
|
||||
|
||||
steam = {
|
||||
enable = true;
|
||||
@@ -10,6 +13,10 @@
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
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
|
||||
extraCompatPackages = [
|
||||
pkgs.proton-ge-bin
|
||||
pkgs.steam-play-none
|
||||
];
|
||||
package = pkgs.steam.override { # Fix Overwatch and other games showing wrong timezone in-game.
|
||||
extraProfile = ''
|
||||
unset TZ
|
||||
@@ -23,7 +30,7 @@
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.mangohud
|
||||
pkgs.samrewritten
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{ pkgs, ...}: {
|
||||
{ ... }: {
|
||||
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 = {
|
||||
enable = true;
|
||||
update.onActivation = true;
|
||||
|
||||
@@ -1,14 +1,22 @@
|
||||
{ ... }: {
|
||||
{ pkgs, ... }: {
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
services.pulseaudio = {
|
||||
enable = false;
|
||||
package = pkgs.pulseaudioFull;
|
||||
};
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
#wireplumber.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
jack.enable = true;
|
||||
|
||||
lowLatency.enable = false;
|
||||
|
||||
# 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)
|
||||
#media-session.enable = true;
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
{ ... }: {
|
||||
{ pkgs, ... }: {
|
||||
hardware.bluetooth = {
|
||||
enable = true; # enables support for Bluetooth
|
||||
package = pkgs.bluez-experimental;
|
||||
powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
||||
settings.General = {
|
||||
Privacy = "device";
|
||||
JustWorksRepairing = "always";
|
||||
Class = "0x000100";
|
||||
FastConnectable = true;
|
||||
settings = {
|
||||
LE = {
|
||||
MinConnectionInterval = 16;
|
||||
MaxConnectionInterval = 16;
|
||||
ConnectionLatency = 10;
|
||||
ConnectionSupervisionTimeout = 100;
|
||||
};
|
||||
|
||||
General = {
|
||||
Enable = "Source,Sink,Media,Socket";
|
||||
Privacy = "device";
|
||||
JustWorksRepairing = "always";
|
||||
Class = "0x000100";
|
||||
Experimental = true;
|
||||
FastConnectable = true;
|
||||
};
|
||||
|
||||
Policy = {
|
||||
AutoEnable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
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 = {
|
||||
ls = "lsd -la";
|
||||
ryujinx = "flatpak run io.github.ryubing.Ryujinx";
|
||||
};
|
||||
|
||||
# Get plasma integration with browsers to work better.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ config, lib, ...}: {
|
||||
{ lib, ... }: {
|
||||
networking.networkmanager.enable = true;
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
}
|
||||
|
||||
@@ -12,5 +12,6 @@
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Use some of our RAM as swap space.
|
||||
zramSwap.enable = true;
|
||||
}
|
||||
|
||||
@@ -10,10 +10,13 @@
|
||||
];
|
||||
};
|
||||
|
||||
# For security reasons, we are disabling the use of regular sudo and...
|
||||
sudo = {
|
||||
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 = {
|
||||
enable = 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’.
|
||||
users.users.jay = {
|
||||
isNormalUser = true;
|
||||
description = "jay";
|
||||
#hashedPasswordFile = config.sops.secrets.password_hash.path;
|
||||
hashedPassword = "$6$RTOXVXRP1iLIXnQb$rVtTeqlJ7g3AcZgftmVdKFnT2ggCsnVayPlT4beLST9Oz2LHGT2fdcOC/yaQkISK3wzFLqh47fSHgQvRUWpl41";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
{ ... }: {
|
||||
# Let's setup our user accounts here.
|
||||
|
||||
#sops.secrets = {
|
||||
# jay_password_hash = { };
|
||||
#};
|
||||
|
||||
users = {
|
||||
# mutableUsers forces user passwords to stay as those defined in this file.
|
||||
# With it set to false, you will not be able to change the password for users defined here.
|
||||
mutableUsers = false;
|
||||
users.jay = {
|
||||
isNormalUser = true;
|
||||
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";
|
||||
};
|
||||
lappy = {};
|
||||
nixy = {
|
||||
deploy.local = true;
|
||||
};
|
||||
nixwork = {};
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# your system. Help is available in the configuration.nix(5) man page, on
|
||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
|
||||
@@ -48,6 +48,21 @@
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/root-blank" = {
|
||||
mountOptions = [
|
||||
"subvol=root-blank"
|
||||
"nodatacow"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/home" = {
|
||||
mountpoint = "/home";
|
||||
mountOptions = [
|
||||
"subvol=home"
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/nix" = {
|
||||
mountpoint = "/nix";
|
||||
mountOptions = [
|
||||
@@ -72,6 +87,14 @@
|
||||
"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/lib".neededForBoot = true;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 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, ... }:
|
||||
{ config, lib, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ config, pkgs, inputs, lib, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./programs/hyprland.nix
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, lib, ... }: {
|
||||
{ ... }: {
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
"monitor" = "eDP-1, 2880x1800@120, 0x0, 1";
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
{ pkgs, lib, ... }: {
|
||||
{ lib, ... }: {
|
||||
programs.hyprpanel = {
|
||||
settings = {
|
||||
layout = {
|
||||
"bar.layouts" = {
|
||||
"0" = {
|
||||
right = [ "battery" ];
|
||||
};
|
||||
"bar.layouts" = {
|
||||
"0" = {
|
||||
right = [ "battery" ];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ...}: {
|
||||
{ ... }: {
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
services.libinput.enable = true;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
{ pkgs, config, ... }: {
|
||||
{ config, ... }: {
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
tmp = {
|
||||
useTmpfs = true;
|
||||
tmpfsSize = "50%";
|
||||
};
|
||||
kernelPackages = pkgs.linuxPackages_xanmod_stable;
|
||||
kernelModules = [ "kvm-intel" ];
|
||||
extraModulePackages = with config.boot.kernelPackages; [ xpadneo ];
|
||||
extraModprobeConfig = '' options bluetooth disable_ertm=1 '';
|
||||
@@ -38,10 +37,15 @@
|
||||
# /mnt/persist
|
||||
# /mnt/nix
|
||||
# /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 = [ ];
|
||||
|
||||
availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,6 +6,12 @@
|
||||
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";
|
||||
@@ -19,7 +25,14 @@
|
||||
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";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=persist" "compress=zstd" "noatime" ];
|
||||
@@ -34,7 +47,7 @@
|
||||
|
||||
swapDevices = [{
|
||||
device = "/swapfile";
|
||||
size = 16 * 1024;
|
||||
size = 18 * 1024;
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ config, ...}: {
|
||||
{ ... }: {
|
||||
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 = {
|
||||
@@ -16,9 +16,6 @@
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
"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