Compare commits

...

51 Commits

Author SHA1 Message Date
913f2042bd wildfire: 447 current 2025-07-27 10:12:37 25.05.20250718.f01fe91 6.15.7 * 2025-07-27 10:12:45 +02:00
74c4a48db8 wildfire: 446 current 2025-07-22 13:32:24 25.05.20250718.f01fe91 6.15.7 *
astroterm
2025-07-22 13:34:22 +02:00
69d9144b20 wildfire: 445 current 2025-07-22 12:16:09 25.05.20250718.f01fe91 6.15.7 *
astroterm, pastel
2025-07-22 13:34:14 +02:00
d3c4071dc1 hurricane: 187 current 2025-07-18 13:36:35 25.05.20250708.88983d4 6.15.5 * 2025-07-21 10:22:32 +02:00
f292971380 wildfire: 444 current 2025-07-20 11:38:02 25.05.20250718.f01fe91 6.15.7 *
update
2025-07-20 11:38:48 +02:00
a6b93796fd wildfire: 437 current 2025-07-19 08:54:29 25.05.20250715.32a4e87 6.15.6 *
discord

wildfire: 438 current  2025-07-19 09:07:37  25.05.20250715.32a4e87  6.15.6                          *

discord

wildfire: 439 current  2025-07-19 10:05:06  25.05.20250715.32a4e87  6.15.6                          *

wildfire: 440 current  2025-07-19 11:29:13  25.05.20250715.32a4e87  6.15.6                          *

wildfire: 441 current  2025-07-19 11:48:59  25.05.20250715.32a4e87  6.15.6                          *

Revert "wildfire: 441 current  2025-07-19 11:48:59  25.05.20250715.32a4e87  6.15.6                          *"

This reverts commit 8ddbcd337d812ec64577a12210ac7c011c5a5f01.

wildfire: 442 current  2025-07-19 13:18:46  25.05.20250715.32a4e87  6.15.6                          *

wildfire: 443 current  2025-07-19 13:19:38  25.05.20250715.32a4e87  6.15.6                          *
2025-07-19 13:20:53 +02:00
137b555c2d wildfire: 436 current 2025-07-19 07:08:30 25.05.20250715.32a4e87 6.15.6 *
UPDATE
2025-07-19 07:09:05 +02:00
8e93931704 wildfire: 435 current 2025-07-15 21:37:14 25.05.20250708.88983d4 6.15.5 *
eza fix
2025-07-15 21:42:45 +02:00
a728e7db18 hurricane: 184 current 2025-07-14 14:31:08 25.05.20250708.88983d4 6.15.5 *
wireshark
hurricane: 184 current  2025-07-14 14:31:08  25.05.20250708.88983d4     6.15.5                          *

hurricane: 185 current  2025-07-14 14:38:12  25.05.20250708.88983d4     6.15.5                          *

hurricane: 186 current  2025-07-14 14:41:20  25.05.20250708.88983d4     6.15.5                          *
2025-07-14 14:43:30 +02:00
bcc74c81e4 hurricane: 183 current 2025-07-09 16:08:16 25.05.20250708.88983d4 6.15.5 *
logitech wireless support
2025-07-09 16:12:57 +02:00
a5a7c958f6 hurricane: 178 current 2025-07-09 14:21:17 25.05.20250708.88983d4 6.15.5 *
file user-dirs and bookmarks

hurricane: 180 current  2025-07-09 15:19:03  25.05.20250708.88983d4     6.15.5                          *

hurricane: 181 current  2025-07-09 15:23:45  25.05.20250708.88983d4     6.15.5                          *
2025-07-09 15:33:14 +02:00
d2a1cad978 hurricane: 177 current 2025-07-09 13:13:01 25.05.20250708.88983d4 6.15.5 *
FINALLY GOOD KERNEL

hurricane: 179 current  2025-07-09 15:03:40  25.05.20250708.88983d4     6.15.5                          *

update
2025-07-09 15:33:14 +02:00
ebc131de84 hurricane: 176 current 2025-07-09 10:58:44 25.05.20250705.29e2900 6.15.4 *
firefox settings
2025-07-09 11:08:07 +02:00
24034ab5fe hurricane: 175 current 2025-07-09 09:43:53 25.05.20250705.29e2900 6.15.4 *
mouse and keybord settings
2025-07-09 10:10:33 +02:00
0e34e1f6a3 wildfire: 431 current 2025-07-08 07:41:32 25.05.20250705.29e2900 6.15.4 *
update
wildfire: 432 current  2025-07-08 19:26:58  25.05.20250705.29e2900  6.15.4                          *

update

wildfire: 433 current  2025-07-09 08:42:44  25.05.20250705.29e2900  6.15.4                          *
2025-07-09 08:43:09 +02:00
dd04918131 hurricane: 174 current 2025-07-08 14:38:00 25.05.20250705.29e2900 6.15.4 *
fix ssh in ghostty
2025-07-08 19:36:56 +02:00
33ac2d0d6f hurricane: 173 current 2025-07-08 11:43:02 25.05.20250705.29e2900 6.15.4 *
Fix chsfg VPN
2025-07-08 19:36:54 +02:00
8440cb3fd8 wildfire: 429 current 2025-07-07 09:54:23 25.05.20250705.29e2900 6.15.4 *
change OpenWebUI port
2025-07-07 21:26:18 +02:00
2fbb1e5090 wildfire: 427 current 2025-07-06 13:16:38 25.05.20250703.7a732ed 6.15.4 *
still the kernel with ghostty bug, dont use

wildfire: 428 current  2025-07-07 09:25:11  25.05.20250705.29e2900  6.15.4                          *

same as before

wildfire: 430 current  2025-07-07 21:17:27  25.05.20250705.29e2900  6.15.4                          *
2025-07-07 21:26:18 +02:00
936fe86b14 wildfire: 426 current 2025-07-06 12:46:52 25.05.20250620.b2485d5 6.15.3 *
gruvbox GRUB theme
2025-07-06 12:51:29 +02:00
e0b3197cc6 wildfire: 425 current 2025-07-06 11:48:38 25.05.20250620.b2485d5 6.15.3 *
disable automatic upgrades
2025-07-06 11:49:46 +02:00
fdedb45591 wildfire: 424 current 2025-07-06 11:46:04 25.05.20250620.b2485d5 6.15.3 *
thunderbird policies
2025-07-06 11:49:34 +02:00
5d0651bc6b cursor settings 2025-07-04 22:13:28 +02:00
353a8cb7b5 eza hyperlinks 2025-07-04 20:57:58 +02:00
ef46a07662 hurricane: 168 current 2025-07-04 18:13:34 25.05.20250620.b2485d5 6.15.3 *
hyprland reccomendation
2025-07-04 19:08:36 +02:00
5e87ff00a6 hurricane: 159 current 2025-07-04 15:30:30 25.05.20250620.b2485d5 6.15.3 *
bat & eza (cat & ls alt)

hurricane: 162 current  2025-07-04 16:07:16  25.05.20250620.b2485d5     6.15.3                          *

eza
hurricane: 163 current  2025-07-04 16:24:40  25.05.20250620.b2485d5     6.15.3                          *

hurricane: 164 current  2025-07-04 16:36:17  25.05.20250620.b2485d5     6.15.3                          *

eza and bat
2025-07-04 19:08:35 +02:00
d7d6dce3ee dark cursor 2025-07-04 14:18:27 +02:00
17fc44cf55 fastfetch readme 2025-07-04 13:13:17 +02:00
bce3ea80d4 hurricane: 155 current 2025-07-04 12:31:25 25.05.20250620.b2485d5 6.15.3 *
Fastfetch
hurricane: 156 current  2025-07-04 12:35:21  25.05.20250620.b2485d5     6.15.3                          *

hurricane: 157 current  2025-07-04 12:40:53  25.05.20250620.b2485d5     6.15.3                          *
2025-07-04 12:41:18 +02:00
f484e7ff14 hurricane: 154 current 2025-07-04 11:03:50 25.05.20250620.b2485d5 6.15.3 *
disable idle
2025-07-04 11:29:41 +02:00
77d0f6e4b3 hurricane: 152 current 2025-07-03 15:57:35 25.05.20250620.b2485d5 6.15.3 *
fix screenshot (no animation)
2025-07-03 16:03:36 +02:00
ce1fa15053 hurricane: 150 current 2025-07-02 11:32:42 25.05.20250620.b2485d5 6.15.3 * 2025-07-02 11:32:49 +02:00
e06f0f2b30 fix port opening on wrong host 2025-07-02 10:30:18 +02:00
ec38db785c wildfire: 408 current 2025-06-30 23:43:55 25.05.20250629.b43c397 6.15.4 *
replace systemd-boot with epic GRUB

wildfire: 410 current  2025-07-01 18:59:46  25.05.20250629.b43c397  6.15.4                          *

disable cryptodisk (grub)

grub not on /efi

wildfire: 416 current  2025-07-01 21:25:46  25.05.20250620.b2485d5  6.15.3                          *

no config generation limit wildfire: 417 current  2025-07-01 21:28:25  25.05.20250620.b2485d5  6.15.3                          *
2025-07-01 21:57:57 +02:00
823d721ac7 wildfire: 409 current 2025-07-01 18:32:46 25.05.20250629.b43c397 6.15.4 *
allow port 3000
2025-07-01 21:17:32 +02:00
eda9b91af4 move garbage collect logic to nix module 2025-07-01 20:29:39 +02:00
581a63a196 optimise nix store 2025-07-01 20:29:39 +02:00
c32c800237 hurricane: 147 current 2025-06-30 17:20:01 25.05.20250629.b43c397 6.15.4 *
fix pgadmin
2025-07-01 20:29:39 +02:00
d3200def3b hurricane: 144 current 2025-06-30 16:54:06 25.05.20250629.b43c397 6.15.4 *
power management
hurricane: 145 current  2025-06-30 16:57:44  25.05.20250629.b43c397     6.15.4                          *
2025-07-01 20:29:39 +02:00
15db902e00 hurricane: 143 current 2025-06-30 16:28:57 25.05.20250629.b43c397 6.15.4 *
add pgadmin and reduce blur
2025-07-01 20:29:39 +02:00
a9bf46a138 hurricane: 142 current 2025-06-30 15:28:43 25.05.20250629.b43c397 6.15.4 *
bluetooth working
2025-07-01 20:29:39 +02:00
6bca877aee hurricane: 141 current 2025-06-30 15:19:31 25.05.20250629.b43c397 6.15.4 *
waybar
2025-07-01 20:29:39 +02:00
bf545db1d9 redhat telemtry 2025-06-30 15:11:50 +02:00
d5b04e1c8d hurricane: 139 current 2025-06-30 14:16:08 25.05.20250620.b2485d5 6.15.3 *
add postgresql15
2025-06-30 14:18:44 +02:00
ad8e84bb43 hurricane: 138 current 2025-06-30 12:44:23 25.05.20250620.b2485d5 6.15.3 *
abbreviations
2025-06-30 12:46:26 +02:00
1273474d17 hurricane: 137 current 2025-06-30 11:43:13 25.05.20250620.b2485d5 6.15.3 *
waybar calendar
2025-06-30 12:43:45 +02:00
61d08d1cea hurricane: 136 current 2025-06-30 11:08:27 25.05.20250620.b2485d5 6.15.3 *
add slack
2025-06-30 11:08:52 +02:00
2f2e316287 hurricane: 134 current 2025-06-30 10:49:08 25.05.20250620.b2485d5 6.15.3 *
finally fucking fix default browser
hurricane: 135 current  2025-06-30 10:55:19  25.05.20250620.b2485d5     6.15.3                          *
2025-06-30 10:56:57 +02:00
33591f9dab wallpapers and waybar fix
wildfire: 404 current  2025-06-29 22:20:26  25.05.20250620.b2485d5  6.15.3                          *
2025-06-29 22:21:09 +02:00
c389e93b03 bg blur 2025-06-29 21:24:04 +02:00
3ed9534d00 hypridle 2025-06-29 21:16:51 +02:00
27 changed files with 767 additions and 144 deletions

View File

@@ -2,6 +2,8 @@
A modular, flake-based NixOS configuration supporting multiple hosts with shared and host-specific configurations. A modular, flake-based NixOS configuration supporting multiple hosts with shared and host-specific configurations.
![fastfetch screenshot](screenshots/fastfetch.png)
## 🏗️ Structure Overview ## 🏗️ Structure Overview
``` ```

66
flake.lock generated
View File

@@ -20,11 +20,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750372185, "lastModified": 1752743471,
"narHash": "sha256-lVBKxd9dsZOH1fA6kSE5WNnt8e+09fN+NL/Q3BjTWHY=", "narHash": "sha256-4izhj1j7J4mE8LgljCXSIUDculqOsxxhdoC81VhqizM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "7cef49d261cbbe537e8cb662485e76d29ac4cbca", "rev": "e31b575d19e7cf8a8f4398e2f9cffe27a1332506",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -78,11 +78,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749154018, "lastModified": 1752780124,
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=", "narHash": "sha256-5dn97vIYxn6VozKePOQSDxVCsrl38nDdMJXx86KIJH0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111", "rev": "c718918222bdb104397762dea67e6b397a7927fe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -137,11 +137,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750371717, "lastModified": 1752149140,
"narHash": "sha256-cNP+bVq8m5x2Rl6MTjwfQLCdwbVmKvTH7yqVc1SpiJM=", "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprgraphics", "repo": "hyprgraphics",
"rev": "15c6f8f3a567fec9a0f732cd310a7ff456deef88", "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -166,11 +166,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1750589353, "lastModified": 1752936500,
"narHash": "sha256-+3W7HI8ZzVqhjaws8++TFaUX8JP2eq9Uzn/KHA/qr0U=", "narHash": "sha256-StLLgYbL3U2iDezMbfr/QjUtd2a0Mb+pScDSQxFElTg=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland", "repo": "hyprland",
"rev": "dd33128c2f127f39c30cca72addb1970b8936d07", "rev": "91d8a629ebfffaa46290331a74a54e249dec64fe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -313,11 +313,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750371096, "lastModified": 1752252310,
"narHash": "sha256-JB1IeJ41y7kWc/dPGV6RMcCUM0Xj2NEK26A2Ap7EM9c=", "narHash": "sha256-06i1pIh6wb+sDeDmWlzuPwIdaFMxLlj1J9I5B9XqSeo=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "38f3a211657ce82a1123bf19402199b67a410f08", "rev": "bcabcbada90ed2aacb435dc09b91001819a6dc82",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -338,11 +338,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750371869, "lastModified": 1751897909,
"narHash": "sha256-lGk4gLjgZQ/rndUkzmPYcgbHr8gKU5u71vyrjnwfpB4=", "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwayland-scanner", "repo": "hyprwayland-scanner",
"rev": "aa38edd6e3e277ae6a97ea83a69261a5c3aab9fd", "rev": "fcca0c61f988a9d092cbb33e906775014c61579d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -353,11 +353,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1750365781, "lastModified": 1752687322,
"narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=", "narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54", "rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -369,11 +369,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1750365781, "lastModified": 1752687322,
"narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=", "narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54", "rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -385,11 +385,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1750400657, "lastModified": 1752866191,
"narHash": "sha256-3vkjFnxCOP6vm5Pm13wC/Zy6/VYgei/I/2DWgW4RFeA=", "narHash": "sha256-NV4S2Lf2hYmZQ3Qf4t/YyyBaJNuxLPyjzvDma0zPp/M=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b2485d56967598da068b5a6946dadda8bfcbcd37", "rev": "f01fe91b0108a7aff99c99f2e9abbc45db0adc2a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -409,11 +409,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749636823, "lastModified": 1750779888,
"narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=", "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "623c56286de5a3193aa38891a6991b28f9bab056", "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -473,11 +473,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750372504, "lastModified": 1751300244,
"narHash": "sha256-VBeZb1oqZM1cqCAZnFz/WyYhO8aF/ImagI7WWg/Z3Og=", "narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "400308fc4f9d12e0a93e483c2e7a649e12af1a92", "rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -19,9 +19,6 @@
networking.firewall.allowedTCPPorts = []; networking.firewall.allowedTCPPorts = [];
networking.firewall.allowedUDPPorts = []; networking.firewall.allowedUDPPorts = [];
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Intel GPU support # Intel GPU support
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;
@@ -40,7 +37,11 @@
btop btop
]; ];
# host-specific Systemd services # host-specific services
services = {
# Intel CPU overheating support
thermald.enable = true;
};
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions

View File

@@ -5,12 +5,13 @@
preload = [ preload = [
"$HOME/git/nix-config/modules/hm/images/nix.png" "$HOME/git/nix-config/modules/hm/images/nix.png"
"$HOME/git/nix-config/modules/hm/images/forest.png" "$HOME/git/nix-config/modules/hm/images/forest.png"
"$HOME/git/nix-config/modules/hm/images/moss.png"
]; ];
wallpaper = [ wallpaper = [
", $HOME/git/nix-config/modules/hm/images/nix.png" ", $HOME/git/nix-config/modules/hm/images/nix.png"
"DP-3, $HOME/git/nix-config/modules/hm/images/forest.png" "DP-3, $HOME/git/nix-config/modules/hm/images/forest.png"
"HDMI-A-1, $HOME/git/nix-config/modules/hm/images/forest.png" "HDMI-A-1, $HOME/git/nix-config/modules/hm/images/moss.png"
"eDP-1, $HOME/git/nix-config/modules/hm/images/forest.png" "eDP-1, $HOME/git/nix-config/modules/hm/images/moss.png"
]; ];
}; };
}; };

View File

@@ -35,7 +35,7 @@
{ {
publicKey = "h/BUyzXy0Xo4KJKS/U5V4C9rDJT3fWjjiZoy0I7P+H4="; publicKey = "h/BUyzXy0Xo4KJKS/U5V4C9rDJT3fWjjiZoy0I7P+H4=";
allowedIPs = ["10.0.0.0/8" "192.168.10.0/24" "2a02:9a0:300:fff0::/64"]; allowedIPs = ["10.0.0.0/8" "192.168.10.0/24" "2a02:9a0:300:fff0::/64"];
endpoint = "gw1.net.chsfg.se:51831"; endpoint = "gw1.net.chsfg.se:51821";
persistentKeepalive = 25; persistentKeepalive = 25;
} }
]; ];

View File

@@ -13,9 +13,6 @@
./hm/hyprpaper.nix ./hm/hyprpaper.nix
]; ];
# Encrypted drive
boot.initrd.luks.devices."luks-1728f038-43a6-4e0d-b7dd-19a4c1083605".device = "/dev/disk/by-uuid/1728f038-43a6-4e0d-b7dd-19a4c1083605";
networking.hostName = "wildfire"; networking.hostName = "wildfire";
# AMD GPU support # AMD GPU support
@@ -26,7 +23,9 @@
]; ];
# Network security specific to host # Network security specific to host
networking.firewall.allowedTCPPorts = []; networking.firewall.allowedTCPPorts = [
3773 # OpenWebUI
];
networking.firewall.allowedUDPPorts = []; networking.firewall.allowedUDPPorts = [];
# host-specific packages # host-specific packages

View File

@@ -22,7 +22,9 @@
fsType = "ext4"; fsType = "ext4";
}; };
boot.initrd.luks.devices."luks-be9995ed-6b36-4f4d-a374-28a85fc50ed8".device = "/dev/disk/by-uuid/be9995ed-6b36-4f4d-a374-28a85fc50ed8"; # Encrypted drive
boot.initrd.luks.devices."luks-1728f038-43a6-4e0d-b7dd-19a4c1083605".device = "/dev/disk/by-uuid/1728f038-43a6-4e0d-b7dd-19a4c1083605"; # SWAP partition
boot.initrd.luks.devices."luks-be9995ed-6b36-4f4d-a374-28a85fc50ed8".device = "/dev/disk/by-uuid/be9995ed-6b36-4f4d-a374-28a85fc50ed8"; # main partition
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/B7CE-982B"; device = "/dev/disk/by-uuid/B7CE-982B";

View File

@@ -5,10 +5,11 @@
preload = [ preload = [
"$HOME/git/nix-config/modules/hm/images/nix.png" "$HOME/git/nix-config/modules/hm/images/nix.png"
"$HOME/git/nix-config/modules/hm/images/sunset-rocks.png" "$HOME/git/nix-config/modules/hm/images/sunset-rocks.png"
"$HOME/git/nix-config/modules/hm/images/mountains.png"
]; ];
wallpaper = [ wallpaper = [
", $HOME/git/nix-config/modules/hm/images/nix.png" ", $HOME/git/nix-config/modules/hm/images/nix.png"
"DP-3, $HOME/git/nix-config/modules/hm/images/sunset-rocks.png" "DP-3, $HOME/git/nix-config/modules/hm/images/mountains.png"
"HDMI-A-1, $HOME/git/nix-config/modules/hm/images/sunset-rocks.png" "HDMI-A-1, $HOME/git/nix-config/modules/hm/images/sunset-rocks.png"
]; ];
}; };

View File

@@ -35,7 +35,7 @@
# { # {
# publicKey = "h/BUyzXy0Xo4KJKS/U5V4C9rDJT3fWjjiZoy0I7P+H4="; # publicKey = "h/BUyzXy0Xo4KJKS/U5V4C9rDJT3fWjjiZoy0I7P+H4=";
# allowedIPs = ["10.0.0.0/8" "192.168.10.0/24" "2a02:9a0:300:fff0::/48"]; # allowedIPs = ["10.0.0.0/8" "192.168.10.0/24" "2a02:9a0:300:fff0::/48"];
# endpoint = "gw1.net.chsfg.se:51831"; # endpoint = "gw1.net.chsfg.se:51821";
# persistentKeepalive = 25; # persistentKeepalive = 25;
# } # }
# ]; # ];

View File

@@ -5,7 +5,9 @@
pkgs-unstable, pkgs-unstable,
inputs, inputs,
... ...
}: { }: let
colors = import ./gruvbox-theme.nix;
in {
imports = [ imports = [
# Import Home Manager as a NixOS module for user-specific configurations # Import Home Manager as a NixOS module for user-specific configurations
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
@@ -44,6 +46,10 @@
./hm/gitkraken.nix # GitKraken config ./hm/gitkraken.nix # GitKraken config
./hm/waybar.nix # Waybar config ./hm/waybar.nix # Waybar config
./hm/cava.nix # Audio visualizer config ./hm/cava.nix # Audio visualizer config
./hm/fastfetch.nix # Fastfetch config
./hm/eza.nix # Eza config (ls alternative)
./hm/user-dirs.nix # XDG User directories config
./hm/discord.nix # Discord config
]; ];
}; };
@@ -55,7 +61,7 @@
users.schulze = { users.schulze = {
isNormalUser = true; isNormalUser = true;
description = "Felix Schulze"; description = "Felix Schulze";
extraGroups = ["networkmanager" "wheel" "docker" "plugdev"]; extraGroups = ["networkmanager" "wheel" "docker" "plugdev" "wireshark"];
shell = pkgs.fish; shell = pkgs.fish;
}; };
groups.libvirtd.members = ["schulze"]; groups.libvirtd.members = ["schulze"];
@@ -65,9 +71,33 @@
# BOOT CONFIGURATION # BOOT CONFIGURATION
# ================================ # ================================
boot = { boot = {
# Use systemd-boot (modern UEFI bootloader) loader = {
loader.systemd-boot.enable = true; efi = {
loader.efi.canTouchEfiVariables = true; canTouchEfiVariables = true;
efiSysMountPoint = "/boot";
};
# Use GRUB (modern UEFI bootloader)
grub = {
enable = true;
efiSupport = true;
device = "nodev";
enableCryptodisk = false; # ← GRUB lives on the unencrypted ESP
memtest86.enable = true; # Enable memtest86 for hardware testing
# Styling
theme = pkgs.stdenv.mkDerivation {
pname = "nix-gruv-grub";
version = "1";
src = pkgs.fetchFromGitHub {
owner = "Atif-Mahmud";
repo = "nix-gruv-grub";
rev = "269507de98ecd4fd9c57aa06bf5d8132d6949a06";
hash = "sha256-UEPZxyT09Z0PiOka/Dh4m8VvqF4l+01eZVbRkPJduDk=";
};
installPhase = "cp -r tartarus/ $out";
};
};
};
# Always use the latest kernel for best hardware support # Always use the latest kernel for best hardware support
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
}; };
@@ -104,6 +134,8 @@
LC_PAPER = "sv_SE.UTF-8"; LC_PAPER = "sv_SE.UTF-8";
LC_TELEPHONE = "sv_SE.UTF-8"; LC_TELEPHONE = "sv_SE.UTF-8";
LC_TIME = "sv_SE.UTF-8"; LC_TIME = "sv_SE.UTF-8";
LC_ALL = "sv_SE.UTF-8";
LC_CTYPE = "sv_SE.UTF-8";
}; };
}; };
@@ -136,8 +168,28 @@
# Enable GNOME keyring for password management # Enable GNOME keyring for password management
gnome.gnome-keyring.enable = true; gnome.gnome-keyring.enable = true;
# Bluetooth support
blueman.enable = true;
}; };
# ================================
# HARDWARE
# ================================
hardware = {
# Bluetooth support
bluetooth.enable = true;
# Logitech Unifying Receiver support
logitech.wireless = {
enable = true;
enableGraphical = true;
};
};
# power management tool which allows for managing hibernate and suspend states
powerManagement.enable = true;
# ================================ # ================================
# PERMISSIONS # PERMISSIONS
# ================================ # ================================
@@ -152,23 +204,23 @@
# Allow installation of proprietary/unfree software # Allow installation of proprietary/unfree software
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# Enable modern Nix features (flakes and new CLI) nix = {
nix.settings.experimental-features = ["nix-command" "flakes"]; settings.experimental-features = ["nix-command" "flakes"]; # Enable modern Nix features (flakes and new CLI)
# ================================ # Optimise the Nix store automatically to recover space
# AUTOMATIC MAINTENANCE optimise = {
# ================================ automatic = true;
# Configure automatic system updates for security dates = ["03:45"];
system.autoUpgrade = { persistent = true; # Run missed optimisations
enable = true; };
flake = inputs.self.outPath; # Use this flake for updates
flags = [ # Garbage collect the Nix store automatically to recover space
"--update-input" gc = {
"nixpkgs" # Update nixpkgs input automatic = true;
"-L" # Print build logs for transparency dates = "weekly";
]; options = "--delete-older-than 60d";
dates = "02:00"; # Run at 2 AM persistent = true; # Run missed GC
randomizedDelaySec = "45min"; # Random delay to avoid server load };
}; };
# ================================ # ================================

View File

@@ -72,8 +72,18 @@
# ================================ # ================================
xdg = { xdg = {
# Set default applications for file types # Set default applications for file types
mime.defaultApplications = { mime = {
"default-web-browser" = ["firefox.desktop"]; enable = true;
defaultApplications = {
"default-web-browser" = "firefox.desktop";
"application/pdf" = "firefox.desktop";
"application/xhtml+xml" = "firefox.desktop";
"text/html" = "firefox.desktop";
"text/xml" = "firefox.desktop";
"x-scheme-handler/ftp" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop";
};
}; };
# XDG Desktop Portal for Wayland integration # XDG Desktop Portal for Wayland integration
@@ -115,7 +125,6 @@
# ---- SYSTEM CONTROL ---- # ---- SYSTEM CONTROL ----
pavucontrol # GUI audio mixer and control pavucontrol # GUI audio mixer and control
blueman # Bluetooth manager with system tray
networkmanagerapplet # Network management system tray networkmanagerapplet # Network management system tray
brightnessctl # Screen brightness control (laptops) brightnessctl # Screen brightness control (laptops)

View File

@@ -37,11 +37,15 @@
# csstools.postcss # PostCSS language # not available # csstools.postcss # PostCSS language # not available
]; ];
profiles.default.userSettings = { profiles.default.userSettings = {
# IDE
"terminal.external.linuxExec" = "ghostty"; "terminal.external.linuxExec" = "ghostty";
"terminal.explorerKind" = "external"; "terminal.explorerKind" = "external";
"terminal.integrated.rescaleOverlappingGlyphs" = false; "terminal.integrated.rescaleOverlappingGlyphs" = false;
"terminal.integrated.fontFamily" = "'Intel One Mono', 'Symbols Nerd Font Mono'"; "terminal.integrated.fontFamily" = "'Intel One Mono', 'Symbols Nerd Font Mono'";
"files.autoSave" = "onFocusChange"; "files.autoSave" = "onFocusChange";
"explorer.confirmDragAndDrop" = false;
"workbench.colorTheme" = "Gruvbox Dark Medium";
"workbench.iconTheme" = "vscode-icons";
"editor.fontFamily" = "'Intel One Mono', 'Symbols Nerd Font Mono', 'monospace', monospace"; "editor.fontFamily" = "'Intel One Mono', 'Symbols Nerd Font Mono', 'monospace', monospace";
"editor.tabSize" = 2; "editor.tabSize" = 2;
"editor.wordWrap" = "on"; "editor.wordWrap" = "on";
@@ -49,11 +53,15 @@
"editor.formatOnSave" = true; "editor.formatOnSave" = true;
"editor.minimap.enabled" = true; "editor.minimap.enabled" = true;
"editor.defaultFormatter" = "esbenp.prettier-vscode"; "editor.defaultFormatter" = "esbenp.prettier-vscode";
# Extensions
"prettier.printWidth" = 120; "prettier.printWidth" = 120;
"prettier.proseWrap" = "always"; "prettier.proseWrap" = "always";
"workbench.colorTheme" = "Gruvbox Dark Medium";
"workbench.iconTheme" = "vscode-icons";
"vsicons.dontShowNewVersionMessage" = true; "vsicons.dontShowNewVersionMessage" = true;
"redhat.telemetry.enabled" = false;
"sonarlint.pathToNodeExecutable" = "/run/current-system/sw/bin/node";
# Cursor
"cursor.cpp.enablePartialAccepts" = true; "cursor.cpp.enablePartialAccepts" = true;
"cursor.diffs.useCharacterLevelDiffs" = true; "cursor.diffs.useCharacterLevelDiffs" = true;
}; };

203
modules/hm/discord.nix Normal file
View File

@@ -0,0 +1,203 @@
{
programs.vesktop = {
enable = true;
settings = {
appBadge = false;
arRPC = true;
checkUpdates = false;
customTitleBar = false;
disableMinSize = true;
minimizeToTray = true;
tray = true;
staticTitle = true;
hardwareAcceleration = true;
discordBranch = "stable";
enableSplashScreen = false;
};
vencord = {
themes = {
"gruvbox-medium-dark" = ''
:root, body, html, #root, #app, #app-mount {
background: transparent!important;
}
.theme-dark,
.theme-light {
--header-primary: #ebdbb2;
--header-secondary: #a89984;
--text-normal: #ebdbb2;
--text-muted: #928374;
--text-link: #458588;
--channels-default: #fbf1c7;
--interactive-normal: #d5c4a1;
--interactive-hover: #83a598;
--interactive-active: #83a598;
--interactive-muted: #bdae93;
--background-base-lowest: #28282890;
--background-base-lower: #28282810;
--background-surface-high: #32302f90;
--background-primary: #28282810;
--background-secondary: #28282810;
--background-secondary-alt: #32302f;
--background-tertiary: #1d2021;
--background-accent: #1d2021;
--background-floating: #18191c90;
--background-mobile-primary: #36393f50;
--background-mobile-secondary: #2f313650;
--background-modifier-hover: rgba(79, 84, 92, 0.16);
--background-modifier-active: rgba(79, 84, 92, 0.24);
--background-modifier-selected: rgba(79, 84, 92, 0.32);
--background-modifier-accent: hsla(0, 0%, 100%, 0.06);
--background-mentioned: rgba(250, 166, 26, 0.05);
--background-mentioned-hover: rgba(250, 166, 26, 0.08);
--background-message-hover: rgba(4, 4, 5, 0.07);
--background-help-warning: rgba(250, 166, 26, 0.1);
--background-help-info: rgba(0, 176, 244, 0.1);
--scrollbar-thin-thumb: #202225;
--scrollbar-thin-track: transparent;
--scrollbar-auto-thumb: #1d2021;
--scrollbar-auto-track: #3c383610;
--scrollbar-auto-scrollbar-color-thumb: #202225;
--scrollbar-auto-scrollbar-color-track: #2f313610;
--elevation-stroke: 0 0 0 1px rgba(4, 4, 5, 0.15);
--elevation-low: 0 1px 0 rgba(4, 4, 5, 0.2), 0 1.5px 0 rgba(6, 6, 7, 0.05),
0 2px 0 rgba(4, 4, 5, 0.05);
--elevation-medium: 0 4px 4px rgba(0, 0, 0, 0.16);
--elevation-high: 0 8px 16px rgba(0, 0, 0, 0.24);
--logo-primary: #fff;
--focus-primary: #00b0f4;
--radio-group-dot-foreground: #000000;
--guild-header-text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
--channeltextarea-background: #3c3836;
--activity-card-background: #202225;
--textbox-markdown-syntax: #8e9297;
--deprecated-card-bg: rgba(32, 34, 37, 0.6);
--deprecated-card-editable-bg: rgba(32, 34, 37, 0.3);
--deprecated-store-bg: #36393f;
--deprecated-quickswitcher-input-background: #3c3836;
--deprecated-quickswitcher-input-placeholder: hsla(0, 0%, 100%, 0.3);
--deprecated-text-input-bg: rgba(0, 0, 0, 0.1);
--deprecated-text-input-border: rgba(0, 0, 0, 0.3);
--deprecated-text-input-border-hover: #040405;
--deprecated-text-input-border-disabled: #202225;
--deprecated-text-input-prefix: #dcddde;
--red-faded: #fb4934;
--red-intense: #cc241d;
--rs-online-color: #689d6a;
--rs-idle-color: #d79921;
--rs-dnd-color: #cc241d;
--rs-streaming-color: #b16286;
--rs-offline-color: #504945;
--rs-invisible-color: #1d2021;
}
[class*="guilds"][class*="guilds"] {
background-color: transparent;
}
[class*="lookFilled"][class*="colorBrand"] {
color: var(--text-normal);
background-color: var(--background-floating); /* settings buttons */
}
[class*="lookFilled"][class*="colorRed"] {
color: var(--text-normal);
background-color: var(--red-faded); /* disable account */
}
[class*="lookOutlined"][class*="colorRed"] {
color: var(--red-intense);
border-color: var(--red-intense); /* 2fa delete account */
}
[class*="lookFilled"][class*="colorGrey"] {
color: var(--text-normal);
background-color: var(--background-floating); /* edit buttons */
}
[class*="wrapper"][class*="selected"] [class*="childWrapper"],
[class*="wrapper"]:hover [class*="childWrapper"] {
color: var(--text-normal);
background-color: var(--background-floating); /* discord logo */
}
[class*="colorDefault"][class*="focused"] {
background-color: #282828;
color: var(--text-normal); /* right-click menu */
}
#friends,
.da-itemCard,
.da-nowPlayingScroller,
.da-peopleList,
[class*="appMount"],
[class*="applicationStore"],
[class*="article"],
[class*="body"],
[class*="channels"],
[class*="chat"],
[class*="chat"] form,
[class*="container"],
[class*="content"],
[class*="enabled"]:hover,
[class*="footer"],
[class*="gameLibrary"],
[class*="guildsWrapper"],
[class*="header"],
[class*="headerBar"],
[class*="memberListItem"]:not([class*="popoutDisabled"]):hover,
[class*="members"],
[class*="messagesWrapper"],
[class*="nowPlayingColumn"],
[class*="peopleList"],
[class*="root"],
[class*="title"],
[class*="typeWindows"],
[class*="video"] {
background-color: transparent !important;
}
[class*="circleIconButton"] {
color: #fe8019;
background-color: var(--background-floating); /* add/search servers */
}
[class*="circleIconButton"][class*="selected"] {
color: #d65d0e;
background-color: var(
--background-floating
); /* add/search servers selected */
}
.theme-dark [class*="root"] {
background-color: var(--background-accent); /* screen share menu */
}
.theme-dark [class*="footer"] {
background-color: var(--background-floating);
}
.ml2-deleted [class*="markup"],
.ml2-deleted [class*="markup"] .hljs,
.ml2-deleted [class*="container"] * {
color: var(--red-faded) !important;
}
'';
};
settings = {
enabledThemes = ["gruvbox-medium-dark.css"];
autoUpdate = false;
autoUpdateNotification = false;
disableMinSize = true;
transparent = true;
frameless = true;
plugins = {
MessageLogger = {
enabled = true;
ignoreSelf = true;
};
FakeNitro.enabled = true;
};
};
};
};
}

111
modules/hm/eza.nix Normal file
View File

@@ -0,0 +1,111 @@
{
programs.eza = {
enable = true;
icons = "auto";
git = true;
extraOptions = ["--group-directories-first"];
enableFishIntegration = true;
theme = {
colourful = true;
filekinds = {
normal = {foreground = "#ebdbb2";};
directory = {foreground = "#83a598";};
symlink = {foreground = "#8ec07c";};
pipe = {foreground = "#928374";};
block_device = {foreground = "#fb4934";};
char_device = {foreground = "#fb4934";};
socket = {foreground = "#665c54";};
special = {foreground = "#d3869b";};
executable = {foreground = "#b8bb26";};
mount_point = {foreground = "#fe8019";};
};
perms = {
user_read = {foreground = "#ebdbb2";};
user_write = {foreground = "#fabd2f";};
user_execute_file = {foreground = "#b8bb26";};
user_execute_other = {foreground = "#b8bb26";};
group_read = {foreground = "#ebdbb2";};
group_write = {foreground = "#fabd2f";};
group_execute = {foreground = "#b8bb26";};
other_read = {foreground = "#bdae93";};
other_write = {foreground = "#fabd2f";};
other_execute = {foreground = "#b8bb26";};
special_user_file = {foreground = "#d3869b";};
special_other = {foreground = "#928374";};
attribute = {foreground = "#bdae93";};
};
size = {
major = {foreground = "#bdae93";};
minor = {foreground = "#8ec07c";};
number_byte = {foreground = "#ebdbb2";};
number_kilo = {foreground = "#ebdbb2";};
number_mega = {foreground = "#83a598";};
number_giga = {foreground = "#d3869b";};
number_huge = {foreground = "#d3869b";};
unit_byte = {foreground = "#bdae93";};
unit_kilo = {foreground = "#83a598";};
unit_mega = {foreground = "#d3869b";};
unit_giga = {foreground = "#d3869b";};
unit_huge = {foreground = "#fe8019";};
};
users = {
user_you = {foreground = "#ebdbb2";};
user_root = {foreground = "#fb4934";};
user_other = {foreground = "#d3869b";};
group_yours = {foreground = "#ebdbb2";};
group_other = {foreground = "#928374";};
group_root = {foreground = "#fb4934";};
};
links = {
normal = {foreground = "#8ec07c";};
multi_link_file = {foreground = "#fe8019";};
};
git = {
new = {foreground = "#b8bb26";};
modified = {foreground = "#fabd2f";};
deleted = {foreground = "#fb4934";};
renamed = {foreground = "#8ec07c";};
typechange = {foreground = "#d3869b";};
ignored = {foreground = "#928374";};
conflicted = {foreground = "#cc241d";};
};
git_repo = {
branch_main = {foreground = "#ebdbb2";};
branch_other = {foreground = "#d3869b";};
git_clean = {foreground = "#b8bb26";};
git_dirty = {foreground = "#fb4934";};
};
security_context = {
colon = {foreground = "#928374";};
user = {foreground = "#ebdbb2";};
role = {foreground = "#d3869b";};
typ = {foreground = "#665c54";};
range = {foreground = "#d3869b";};
};
file_type = {
image = {foreground = "#fabd2f";};
video = {foreground = "#fb4934";};
music = {foreground = "#b8bb26";};
lossless = {foreground = "#8ec07c";};
crypto = {foreground = "#928374";};
document = {foreground = "#ebdbb2";};
compressed = {foreground = "#d3869b";};
temp = {foreground = "#cc241d";};
compiled = {foreground = "#83a598";};
build = {foreground = "#928374";};
source = {foreground = "#83a598";};
};
punctuation = {foreground = "#928374";};
date = {foreground = "#fabd2f";};
inode = {foreground = "#bdae93";};
blocks = {foreground = "#a89984";};
header = {foreground = "#ebdbb2";};
octal = {foreground = "#8ec07c";};
flags = {foreground = "#d3869b";};
symlink_path = {foreground = "#8ec07c";};
control_char = {foreground = "#83a598";};
broken_symlink = {foreground = "#fb4934";};
broken_path_overlay = {foreground = "#928374";};
};
};
}

158
modules/hm/fastfetch.nix Normal file
View File

@@ -0,0 +1,158 @@
{
programs.fastfetch = {
enable = true;
settings = {
display = {
separator = " ";
};
modules = [
{
type = "title";
key = "";
format = "{user-name}@{host-name}";
keyColor = "blue";
}
{
type = "os";
key = "";
keyColor = "blue";
}
{
type = "kernel";
key = "";
keyColor = "blue";
}
{
type = "packages";
key = "󰏖";
keyColor = "blue";
}
{
type = "media";
key = "󰝚";
keyColor = "blue";
}
{
type = "localip";
key = "󰩟";
compact = true;
keyColor = "blue";
}
{
type = "publicip";
key = "󰩠";
keyColor = "blue";
timeout = 1000;
}
{
type = "uptime";
key = "󰅐";
keyColor = "blue";
}
"break"
{
type = "host";
key = "󰌢";
keyColor = "green";
}
{
type = "cpu";
key = "󰻠";
keyColor = "green";
}
{
type = "gpu";
key = "󰍛";
keyColor = "green";
}
{
type = "disk";
key = "";
keyColor = "green";
}
{
type = "memory";
key = "";
keyColor = "green";
}
{
type = "swap";
key = "󰓡";
keyColor = "green";
}
{
type = "display";
key = "󰍹";
keyColor = "green";
}
{
type = "battery";
key = "";
keyColor = "green";
}
{
type = "poweradapter";
key = "";
keyColor = "green";
}
{
type = "gamepad";
key = "";
keyColor = "green";
}
{
type = "bluetooth";
key = "";
keyColor = "green";
}
{
type = "sound";
key = "";
keyColor = "green";
}
"break"
{
type = "shell";
key = "";
keyColor = "yellow";
}
{
type = "terminal";
key = "";
keyColor = "yellow";
}
{
type = "terminalfont";
key = "";
keyColor = "yellow";
}
{
type = "de";
key = "";
keyColor = "yellow";
}
{
type = "wm";
key = "";
keyColor = "yellow";
}
{
type = "lm";
key = "󰧨";
keyColor = "yellow";
}
{
type = "theme";
key = "󰉼";
keyColor = "yellow";
}
{
type = "icons";
key = "󰀻";
keyColor = "yellow";
}
];
};
};
}

View File

@@ -11,23 +11,15 @@
listener = [ listener = [
{ {
timeout = 180; # 3min. timeout = 300; # 5min.
on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor. on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
on-resume = "brightnessctl -r"; # monitor backlight restore. on-resume = "brightnessctl -r"; # monitor backlight restore.
} }
{ {
timeout = 600; # 10min. timeout = 900; # 15min.
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed on-timeout = "loginctl lock-session"; # lock screen when timeout has passed
} }
{ # no automatic screen off or sleep. causes issues i cant be arsed to fix. use `systemctl suspend` instead.
timeout = 900; # 15min.
on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed
on-resume = "hyprctl dispatch dpms on && brightnessctl -r"; # screen on when activity is detected after timeout has fired.
}
#{
# timeout = 1800; # 30min.
# on-timeout = "systemctl suspend"; # suspend pc
#}
]; ];
}; };
}; };

View File

@@ -4,9 +4,10 @@ in {
# Hyprland settings # Hyprland settings
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
systemd.enable = false;
settings = { settings = {
exec-once = [ exec-once = [
"hyprctl setcursor capitaine-cursors-white 32" # Set mouse cursor "hyprctl setcursor capitaine-cursors 32" # Set mouse cursor
"wl-paste --type text --watch cliphist store" # Stores only text data "wl-paste --type text --watch cliphist store" # Stores only text data
"wl-paste --type image --watch cliphist store" # Stores only image data "wl-paste --type image --watch cliphist store" # Stores only image data
]; ];
@@ -14,7 +15,6 @@ in {
misc = { misc = {
disable_hyprland_logo = true; # disables the random Hyprland logo / anime girl background. :( disable_hyprland_logo = true; # disables the random Hyprland logo / anime girl background. :(
disable_splash_rendering = true; disable_splash_rendering = true;
focus_on_activate = true;
}; };
input = { input = {
@@ -30,8 +30,8 @@ in {
sensitivity = 0; sensitivity = 0;
accel_profile = "flat"; accel_profile = "flat";
repeat_delay = 250; repeat_delay = 300;
repeat_rate = 40; repeat_rate = 30;
touchpad = { touchpad = {
natural_scroll = true; natural_scroll = true;
@@ -71,7 +71,7 @@ in {
ignore_opacity = true; ignore_opacity = true;
xray = false; xray = false;
size = 3; size = 3;
passes = 5; passes = 3;
popups = true; popups = true;
}; };
shadow = { shadow = {
@@ -109,6 +109,8 @@ in {
"blur, waybar" # Blur waybar "blur, waybar" # Blur waybar
"ignorezero, waybar" "ignorezero, waybar"
"ignorealpha 0.5, waybar" "ignorealpha 0.5, waybar"
"noanim, hyprpicker" # fix screenshot border visible
"noanim, selection" # fix screenshot border visible
]; ];
# Window rules # Window rules

View File

@@ -7,8 +7,8 @@ in {
background = { background = {
# Background image is set in host specific configuration # Background image is set in host specific configuration
#path = "$HOME/git/nixos/modules/hm/images/sky.png"; #path = "$HOME/git/nixos/modules/hm/images/sky.png";
blur_size = 3; blur_size = 2;
blur_passes = 4; blur_passes = 3;
contrast = 1; contrast = 1;
brightness = 0.5; brightness = 0.5;
vibrancy = 0.2; vibrancy = 0.2;

BIN
modules/hm/images/moss.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
modules/hm/images/mountains.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
modules/hm/images/statue.png (Stored with Git LFS)

Binary file not shown.

View File

@@ -5,6 +5,12 @@
serverAliveCountMax = 2; serverAliveCountMax = 2;
matchBlocks = { matchBlocks = {
"*" = {
sendEnv = ["TERM"];
setEnv = {
TERM = "xterm-256color"; # Fix ghostty issue
};
};
"d10.csb.brainmill.com" = { "d10.csb.brainmill.com" = {
forwardAgent = true; forwardAgent = true;
}; };
@@ -12,6 +18,7 @@
forwardAgent = true; forwardAgent = true;
}; };
"prod-jump-got1.infra.brainmill.com" = { "prod-jump-got1.infra.brainmill.com" = {
user = "schulze-local";
forwardAgent = true; forwardAgent = true;
}; };
"gw1.net.chsfg.se" = { "gw1.net.chsfg.se" = {

18
modules/hm/user-dirs.nix Normal file
View File

@@ -0,0 +1,18 @@
{config, ...}: {
xdg.userDirs = {
enable = true;
desktop = "${config.home.homeDirectory}/Nextcloud/Home-sync/Desktop";
documents = "${config.home.homeDirectory}/Nextcloud/Home-sync/Documents";
download = "${config.home.homeDirectory}/Nextcloud/Home-sync/Downloads";
music = "${config.home.homeDirectory}/Nextcloud/Home-sync/Music";
pictures = "${config.home.homeDirectory}/Nextcloud/Home-sync/Pictures";
publicShare = "${config.home.homeDirectory}/Nextcloud/Home-sync/Public";
templates = "${config.home.homeDirectory}/Nextcloud/Home-sync/Templates";
videos = "${config.home.homeDirectory}/Nextcloud/Home-sync/Videos";
};
gtk.gtk3.bookmarks = [
"file://${config.home.homeDirectory}/Nextcloud/Home-sync/Downloads"
"file://${config.home.homeDirectory}/Nextcloud/Home-sync/Documents"
"file://${config.home.homeDirectory}/Nextcloud/Home-sync/Pictures"
];
}

View File

@@ -6,7 +6,7 @@
{ {
output = ["DP-3" "eDP-1"]; output = ["DP-3" "eDP-1"];
spacing = 8; spacing = 8;
"modules-left" = ["hyprland/workspaces" "cava" "mpris"]; "modules-left" = ["hyprland/workspaces" "mpris" "cava"];
"modules-center" = ["hyprland/window"]; "modules-center" = ["hyprland/window"];
"modules-right" = ["idle_inhibitor" "wireplumber" "backlight" "load" "power-profiles-daemon" "battery" "clock" "tray"]; "modules-right" = ["idle_inhibitor" "wireplumber" "backlight" "load" "power-profiles-daemon" "battery" "clock" "tray"];
@@ -120,7 +120,7 @@
{ {
output = ["HDMI-A-1"]; output = ["HDMI-A-1"];
spacing = 8; spacing = 8;
"modules-left" = ["hyprland/workspaces" "cava" "mpris"]; "modules-left" = ["hyprland/workspaces"];
"modules-center" = ["hyprland/window"]; "modules-center" = ["hyprland/window"];
"modules-right" = ["clock"]; "modules-right" = ["clock"];
@@ -134,7 +134,7 @@
"separate-outputs" = true; "separate-outputs" = true;
}; };
clock = { clock = {
"tooltip-format" = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"; "tooltip-format" = "<tt><small>{calendar}</small></tt>";
format = " {:%H:%M}"; format = " {:%H:%M}";
"format-alt" = " {:%a %F}"; "format-alt" = " {:%a %F}";
}; };
@@ -231,6 +231,7 @@
window#waybar.empty #window { window#waybar.empty #window {
background-color: transparent; background-color: transparent;
padding: 0; padding: 0;
border: none;
} }
.modules-left, .modules-left,

View File

@@ -40,6 +40,7 @@ in {
alejandra alejandra
fzf fzf
fastfetch fastfetch
astroterm # Star map/planetarium
# Development # Development
pkgs-unstable.code-cursor pkgs-unstable.code-cursor
@@ -52,6 +53,8 @@ in {
nodejs_22 nodejs_22
pnpm pnpm
cypress cypress
pgadmin4-desktopmode
postgresql_15
beam26Packages.erlang beam26Packages.erlang
beam26Packages.erlfmt beam26Packages.erlfmt
beam26Packages.erlang-ls beam26Packages.erlang-ls
@@ -66,6 +69,8 @@ in {
ghostty ghostty
obsidian obsidian
nextcloud-client nextcloud-client
signal-desktop
slack
libreoffice-fresh libreoffice-fresh
tor-browser tor-browser
ungoogled-chromium ungoogled-chromium
@@ -74,6 +79,7 @@ in {
# Audio / Visual # Audio / Visual
loupe # Image viewer loupe # Image viewer
pastel # generate, analyze, convert and manipulate colors
inkscape # Vector editor inkscape # Vector editor
krita # Image editor krita # Image editor
kdePackages.kolourpaint # Simple Image editor kdePackages.kolourpaint # Simple Image editor
@@ -105,25 +111,33 @@ in {
set fish_greeting # Disable greeting set fish_greeting # Disable greeting
''; '';
shellAliases = { shellAliases = {
"eza" = "eza --icons=always --color-scale --hyperlink";
};
shellAbbrs = {
# Common abbreviations
".." = "cd .."; ".." = "cd ..";
"..." = "cd ../.."; "..." = "cd ../..";
"...." = "cd ../../../"; "...." = "cd ../../../";
"....." = "cd ../../../../"; "....." = "cd ../../../../";
# Work aliases
"jumpc" = "ssh prod-admin-jump1.infra.csbnet.se";
"proxc" = "ssh -L1337:172.18.200.21:8006 prod-admin-jump1.infra.csbnet.se";
"jumpn" = "ssh prod-jump-got1.infra.brainmill.com";
"proxn" = "ssh -L1338:[2a09:2681:ffff:13::104]:8006 prod-jump-got1.infra.brainmill.com";
"ups1c" = "ssh -L1339:172.18.79.1:80 prod-admin-jump1.infra.csbnet.se";
"ups2c" = "ssh -L1340:172.18.79.3:80 prod-admin-jump1.infra.csbnet.se";
};
shellAbbrs = {
"cp" = "cp -v"; "cp" = "cp -v";
"ls" = "ls -lah"; "la" = "eza -la";
"l" = "eza -l";
"cat" = "bat -pp";
"tree" = "eza -lT";
"mkdir" = "mkdir -p"; "mkdir" = "mkdir -p";
"mv" = "mv -v"; "mv" = "mv -v";
"rm" = "rm -v"; "rm" = "rm -v";
# Specific program abbreviations
"astroterm" = "astroterm --fps 60 --speed 60 --metadata --unicode --color --city Göteborg --label-thresh 1 --threshold 4";
# Work abbreviations
"jumpc" = "ssh prod-admin-jump1.infra.csbnet.se";
"jumpn" = "ssh prod-jump-got1.infra.brainmill.com";
"proxc" = "ssh -L1337:172.18.200.21:8006 prod-admin-jump1.infra.csbnet.se";
"proxn" = "ssh -L1338:[2a09:2681:ffff:13::104]:8006 prod-jump-got1.infra.brainmill.com";
"ups1c" = "ssh -L1339:172.18.79.1:80 prod-admin-jump1.infra.csbnet.se";
"ups2c" = "ssh -L1340:172.18.79.3:80 prod-admin-jump1.infra.csbnet.se";
}; };
}; };
@@ -145,6 +159,14 @@ in {
enableFishIntegration = true; enableFishIntegration = true;
}; };
# Cat replacement
bat = {
enable = true;
settings = {
theme = "gruvbox-dark";
};
};
# Vim editor # Vim editor
vim = { vim = {
enable = true; enable = true;
@@ -176,7 +198,6 @@ in {
/* /*
---- POLICIES ---- ---- POLICIES ----
*/ */
DisableTelemetry = true; DisableTelemetry = true;
DisableFirefoxStudies = true; DisableFirefoxStudies = true;
EnableTrackingProtection = { EnableTrackingProtection = {
@@ -185,14 +206,45 @@ in {
Cryptomining = true; Cryptomining = true;
Fingerprinting = true; Fingerprinting = true;
}; };
DisablePocket = true; DisablePocket = true;
FirefoxHome = {
Snippets = false;
TopSites = false;
SponsoredTopSites = false;
SponsoredPocket = false;
};
HttpsOnlyMode = "force_enabled";
DNSOverHTTPS = {
Enabled = true;
ProviderURL = "https://dns.schulze.network/dns-query";
Locked = true;
Fallback = true;
};
PasswordManagerEnabled = false;
/*
---- PREFERENCES ----
*/
Preferences = {
"extensions.activeThemeID" = {
Value = "{21ab01a8-2464-4824-bccb-6db15659347e}";
Status = "locked";
};
"sidebar.animation.duration-ms" = {
Value = 50;
Status = "locked";
};
"sidebar.animation.expand-on-hover.duration-ms" = {
Value = 50;
Status = "locked";
};
"sidebar.verticalTabs" = lock-true;
"sidebar.position_start" = lock-false;
};
/* /*
---- EXTENSIONS ---- ---- EXTENSIONS ----
*/ */
# Check about:support for extension/add-on ID strings. # Check about:support for extension/add-on ID strings.
# Valid strings for installation_mode are "allowed", "blocked", # Valid strings for installation_mode are "allowed", "blocked", "force_installed" and "normal_installed".
# "force_installed" and "normal_installed".
ExtensionSettings = { ExtensionSettings = {
"*".installation_mode = "normal_installed"; "*".installation_mode = "normal_installed";
# uBlock Origin: # uBlock Origin:
@@ -206,25 +258,45 @@ in {
installation_mode = "force_installed"; installation_mode = "force_installed";
}; };
}; };
};
/* };
---- PREFERENCES ---- thunderbird = {
*/ enable = true;
Preferences = { policies = {
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; DisableTelemetry = true;
"extensions.activeThemeID" = { DisableFirefoxStudies = true;
Value = "{21ab01a8-2464-4824-bccb-6db15659347e}"; DisablePocket = true;
Status = "locked"; DNSOverHTTPS = {
Enable = true;
Provider = "dns.schulze.network";
Locked = false;
Fallback = true;
};
ExtensionSettings = {
"cloud@johannes-endres.de" = {
installation_mode = "force_installed";
install_url = "https://addons.thunderbird.net/thunderbird/downloads/latest/filelink-nextcloud-owncloud/addon-987761-latest.xpi";
};
"dkim_verifier@pl" = {
installation_mode = "force_installed";
install_url = "https://addons.thunderbird.net/thunderbird/downloads/latest/dkim-verifier/addon-438634-latest.xpi";
};
"gruvbox-dark@calch.themes.thunderbird.net" = {
installation_mode = "force_installed";
install_url = "https://addons.thunderbird.net/thunderbird/downloads/latest/gruvbox-dark-thunderbird/addon-987835-latest.xpi";
}; };
}; };
}; };
}; };
thunderbird.enable = true;
steam = { steam = {
enable = true; enable = true;
remotePlay.openFirewall = true; remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true; dedicatedServer.openFirewall = true;
}; };
wireshark = {
enable = true;
package = pkgs.wireshark;
};
}; };
# enable and configure Docker # enable and configure Docker

View File

@@ -2,13 +2,6 @@
set -e set -e
# Days of nix generations to keep
KEEP_DAYS=60
# extra buffer before we trigger a GC
BUFFER_DAYS=30
# minimum number of generations to keep
KEEP_MIN=5
# Check for force flag # Check for force flag
FORCE_REBUILD=false FORCE_REBUILD=false
if [[ "$1" == "-f" || "$1" == "--force" ]]; then if [[ "$1" == "-f" || "$1" == "--force" ]]; then
@@ -67,18 +60,3 @@ current=$(nixos-rebuild list-generations | grep current)
# Commit all changes witih the generation metadata # Commit all changes witih the generation metadata
git commit -am "$NIXOS_HOST: $current" git commit -am "$NIXOS_HOST: $current"
# Clean up old generations if conditions are met
gens=$(nixos-rebuild list-generations | tail -n +2)
# If there are less than KEEP_MIN generations, exit
(( $(wc -l <<<"$gens") <= KEEP_MIN )) && exit 0
# Get the oldest generation
old=$(awk 'END{print $2" "$3}' <<<"$gens")
# Calculate the age of the oldest generation in days
age=$(( ( $(date +%s) - $(date -d "$old" +%s) )/86400 ))
# If the age is greater than KEEP_DAYS+BUFFER_DAYS, delete the oldest generation
(( age > KEEP_DAYS+BUFFER_DAYS )) || exit 0
sudo nix-collect-garbage --delete-older-than ${KEEP_DAYS}d &>logs/nixos-gc.log || (cat logs/nixos-gc.log | grep --color error && exit 1)

BIN
screenshots/fastfetch.png (Stored with Git LFS) Normal file

Binary file not shown.