Compare commits
71 Commits
529c409985
...
master
Author | SHA1 | Date | |
---|---|---|---|
913f2042bd | |||
74c4a48db8 | |||
69d9144b20 | |||
d3c4071dc1 | |||
f292971380 | |||
a6b93796fd | |||
137b555c2d | |||
8e93931704 | |||
a728e7db18 | |||
bcc74c81e4 | |||
a5a7c958f6 | |||
d2a1cad978 | |||
ebc131de84 | |||
24034ab5fe | |||
0e34e1f6a3 | |||
dd04918131 | |||
33ac2d0d6f | |||
8440cb3fd8 | |||
2fbb1e5090 | |||
936fe86b14 | |||
e0b3197cc6 | |||
fdedb45591 | |||
5d0651bc6b | |||
353a8cb7b5 | |||
ef46a07662 | |||
5e87ff00a6 | |||
d7d6dce3ee | |||
17fc44cf55 | |||
bce3ea80d4 | |||
f484e7ff14 | |||
77d0f6e4b3 | |||
ce1fa15053 | |||
e06f0f2b30 | |||
ec38db785c | |||
823d721ac7 | |||
eda9b91af4 | |||
581a63a196 | |||
c32c800237 | |||
d3200def3b | |||
15db902e00 | |||
a9bf46a138 | |||
6bca877aee | |||
bf545db1d9 | |||
d5b04e1c8d | |||
ad8e84bb43 | |||
1273474d17 | |||
61d08d1cea | |||
2f2e316287 | |||
33591f9dab | |||
c389e93b03 | |||
3ed9534d00 | |||
69ea9a05dc | |||
8cb30719fa | |||
2d0a133dd9 | |||
c18beb0483 | |||
a69ccdc6a2 | |||
a492a1fe63 | |||
89bdb526f0 | |||
5b196f09df | |||
f7d0307486 | |||
7f38c0a50d | |||
54fcfdb5d3 | |||
b5f1989145 | |||
928279221c | |||
673cdddadd | |||
2cad1c43d4 | |||
260a6b4c74 | |||
3089d2bdb4 | |||
9432b4d51e | |||
8e84b64f4b | |||
785af88cc2 |
@@ -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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## 🏗️ Structure Overview
|
## 🏗️ Structure Overview
|
||||||
|
|
||||||
```
|
```
|
||||||
|
66
flake.lock
generated
66
flake.lock
generated
@@ -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": {
|
||||||
|
@@ -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
|
||||||
|
@@ -1,9 +1,15 @@
|
|||||||
{
|
{
|
||||||
# Home Manager Hyprland monitors
|
# Home Manager Hyprland monitors
|
||||||
wayland.windowManager.hyprland.settings.monitor = [
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
monitor = [
|
||||||
"DP-3, 3440x1440@99.98, 0x0, 1" # Philips Ultrawide left
|
"DP-3, 3440x1440@99.98, 0x0, 1" # Philips Ultrawide left
|
||||||
"HDMI-A-1, 3440x1440@99.98, 3440x0, 1" # Philips Ultrawide right
|
"HDMI-A-1, 3440x1440@99.98, 3440x0, 1" # Philips Ultrawide right
|
||||||
|
|
||||||
"eDP-1, 1920x1200@60.00, 6880x240, 1" # internal display
|
"eDP-1, 1920x1200@60.00, 6880x240, 1" # internal display
|
||||||
];
|
];
|
||||||
|
bindl = [
|
||||||
|
",switch:off:Lid Switch,exec,hyprctl keyword monitor 'eDP-1, 1920x1200@60.00, 6880x240, 1'" # enable display in hyprland when lid open
|
||||||
|
",switch:on:Lid Switch,exec,hyprctl keyword monitor 'eDP-1, disable'" # disable display in hyprland when lid closed
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@@ -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"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -4,12 +4,11 @@
|
|||||||
address = ["10.8.0.4/24"];
|
address = ["10.8.0.4/24"];
|
||||||
dns = ["192.168.0.128"];
|
dns = ["192.168.0.128"];
|
||||||
privateKeyFile = "/home/schulze/Nextcloud/secrets/wireguard/Felix-Hurricane-pk";
|
privateKeyFile = "/home/schulze/Nextcloud/secrets/wireguard/Felix-Hurricane-pk";
|
||||||
|
|
||||||
peers = [
|
peers = [
|
||||||
{
|
{
|
||||||
publicKey = "a35ZSWhBNzPFkf1RCkg4E7cNnUdGGOr4CsA0EM65H0g=";
|
publicKey = "a35ZSWhBNzPFkf1RCkg4E7cNnUdGGOr4CsA0EM65H0g=";
|
||||||
presharedKeyFile = "/home/schulze/Nextcloud/secrets/wireguard/Felix-Hurricane-psk";
|
presharedKeyFile = "/home/schulze/Nextcloud/secrets/wireguard/Felix-Hurricane-psk";
|
||||||
allowedIPs = ["0.0.0.0/0"];
|
allowedIPs = ["192.168.0.0/24"];
|
||||||
endpoint = "vpn.schulze.network:51820";
|
endpoint = "vpn.schulze.network:51820";
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
@@ -22,7 +21,7 @@
|
|||||||
peers = [
|
peers = [
|
||||||
{
|
{
|
||||||
publicKey = "mTORKHkPcp9+c7VXqVfVseIOQZuJftoUYA0pBe87bDQ=";
|
publicKey = "mTORKHkPcp9+c7VXqVfVseIOQZuJftoUYA0pBe87bDQ=";
|
||||||
allowedIPs = ["172.18.0.0/16" "192.168.3.0/24" "192.168.108.0/22" "2a02:9a0:102:108::/64" "2a02:9a0:ffff::/48"];
|
allowedIPs = ["172.18.0.0/16" "192.168.3.0/24" "2a02:9a0:ffff::/48" "2a02:9a0:fffe::/48"];
|
||||||
endpoint = "prod-net-vpn1.infra.brainmill.com:51819";
|
endpoint = "prod-net-vpn1.infra.brainmill.com:51819";
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
@@ -35,8 +34,8 @@
|
|||||||
peers = [
|
peers = [
|
||||||
{
|
{
|
||||||
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::/64"];
|
||||||
endpoint = "gw1.net.chsfg.se:51831";
|
endpoint = "gw1.net.chsfg.se:51821";
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@@ -48,7 +47,7 @@
|
|||||||
peers = [
|
peers = [
|
||||||
{
|
{
|
||||||
publicKey = "nz1m0crkdarW7y+/p6hKCGncMVHlVhbz0URA6Z71RmM=";
|
publicKey = "nz1m0crkdarW7y+/p6hKCGncMVHlVhbz0URA6Z71RmM=";
|
||||||
allowedIPs = ["2a09:2681:204:1::/64" "2a09:2681:ffff:13::/64" "2a09:2681:ffff:14::/64" "2a09:2681:ffff:15::/64" "2a09:2681:ffff:16::/64" "172.18.255.0/24"];
|
allowedIPs = ["172.18.255.0/24" "2a09:2681:ffff:13::/64" "2a09:2681:ffff:14::/64" "2a09:2681:ffff:15::/64" "2a09:2681:ffff:16::/64"];
|
||||||
endpoint = "prod-jump-got1.infra.brainmill.com:51820";
|
endpoint = "prod-jump-got1.infra.brainmill.com:51820";
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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";
|
||||||
|
@@ -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"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
{
|
{
|
||||||
publicKey = "a35ZSWhBNzPFkf1RCkg4E7cNnUdGGOr4CsA0EM65H0g=";
|
publicKey = "a35ZSWhBNzPFkf1RCkg4E7cNnUdGGOr4CsA0EM65H0g=";
|
||||||
presharedKeyFile = "/home/schulze/Nextcloud/secrets/wireguard/Felix-Wildfire-psk";
|
presharedKeyFile = "/home/schulze/Nextcloud/secrets/wireguard/Felix-Wildfire-psk";
|
||||||
allowedIPs = ["0.0.0.0/0"];
|
allowedIPs = ["192.168.0.0/24"];
|
||||||
endpoint = "vpn.schulze.network:51820";
|
endpoint = "vpn.schulze.network:51820";
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
peers = [
|
peers = [
|
||||||
{
|
{
|
||||||
publicKey = "mTORKHkPcp9+c7VXqVfVseIOQZuJftoUYA0pBe87bDQ=";
|
publicKey = "mTORKHkPcp9+c7VXqVfVseIOQZuJftoUYA0pBe87bDQ=";
|
||||||
allowedIPs = ["172.18.0.0/16" "192.168.3.0/24" "192.168.108.0/22" "2a02:9a0:102:108::/64" "2a02:9a0:ffff::/48"];
|
allowedIPs = ["172.18.0.0/16" "192.168.3.0/24" "2a02:9a0:ffff::/48" "2a02:9a0:fffe::/48"];
|
||||||
endpoint = "prod-net-vpn1.infra.brainmill.com:51819";
|
endpoint = "prod-net-vpn1.infra.brainmill.com:51819";
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
# }
|
# }
|
||||||
# ];
|
# ];
|
||||||
|
@@ -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
|
||||||
@@ -41,6 +43,13 @@
|
|||||||
./hm/hyprsunset.nix # Hyprsunset night mode
|
./hm/hyprsunset.nix # Hyprsunset night mode
|
||||||
./hm/btop.nix # Btop config
|
./hm/btop.nix # Btop config
|
||||||
./hm/ssh.nix # SSH config
|
./hm/ssh.nix # SSH config
|
||||||
|
./hm/gitkraken.nix # GitKraken config
|
||||||
|
./hm/waybar.nix # Waybar 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
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -52,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"];
|
||||||
@@ -62,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;
|
||||||
};
|
};
|
||||||
@@ -101,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";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -123,6 +158,7 @@
|
|||||||
pulse.enable = true; # PulseAudio compatibility
|
pulse.enable = true; # PulseAudio compatibility
|
||||||
wireplumber.enable = true; # Session manager
|
wireplumber.enable = true; # Session manager
|
||||||
};
|
};
|
||||||
|
playerctld.enable = true; # Playerctl daemon for media controls
|
||||||
|
|
||||||
# Antivirus protection with automatic updates
|
# Antivirus protection with automatic updates
|
||||||
clamav = {
|
clamav = {
|
||||||
@@ -132,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
|
||||||
# ================================
|
# ================================
|
||||||
@@ -148,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
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# ================================
|
# ================================
|
||||||
|
@@ -62,6 +62,9 @@
|
|||||||
binPath = "/run/current-system/sw/bin/Hyprland";
|
binPath = "/run/current-system/sw/bin/Hyprland";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Waybar status bar & panel
|
||||||
|
waybar.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# ================================
|
# ================================
|
||||||
@@ -69,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
|
||||||
@@ -100,13 +113,11 @@
|
|||||||
# Essential tools for a functional Hyprland desktop
|
# Essential tools for a functional Hyprland desktop
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# ---- CORE HYPRLAND WORKFLOW ----
|
# ---- CORE HYPRLAND WORKFLOW ----
|
||||||
waybar # Status bar/panel
|
|
||||||
rofi # Application launcher and dmenu replacement (rofi has native wayland support)
|
rofi # Application launcher and dmenu replacement (rofi has native wayland support)
|
||||||
mako # Notification daemon
|
mako # Notification daemon
|
||||||
hyprpaper # Wallpaper daemon
|
|
||||||
hyprlock # Screen lock utility
|
hyprlock # Screen lock utility
|
||||||
hyprpicker # Color picker
|
hyprpicker # Color picker
|
||||||
hyprsunset # Night mode
|
waybar-mpris # MPRIS support for waybar
|
||||||
|
|
||||||
# ---- CLIPBOARD & INPUT ----
|
# ---- CLIPBOARD & INPUT ----
|
||||||
wl-clipboard # Clipboard utilities for Wayland
|
wl-clipboard # Clipboard utilities for Wayland
|
||||||
@@ -114,10 +125,8 @@
|
|||||||
|
|
||||||
# ---- 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)
|
||||||
wlsunset # Blue light filter/night mode
|
|
||||||
|
|
||||||
# ---- SCREENSHOT & RECORDING ----
|
# ---- SCREENSHOT & RECORDING ----
|
||||||
grim # Screenshot tool for Wayland
|
grim # Screenshot tool for Wayland
|
||||||
|
22
modules/hm/cava.nix
Normal file
22
modules/hm/cava.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
let
|
||||||
|
colors = import ../gruvbox-theme.nix;
|
||||||
|
in {
|
||||||
|
programs.cava = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
framerate = 60;
|
||||||
|
bar_spacing = 0;
|
||||||
|
};
|
||||||
|
input.method = "pipewire";
|
||||||
|
output.channels = "mono";
|
||||||
|
color = {
|
||||||
|
gradient = 1;
|
||||||
|
gradient_count = 2;
|
||||||
|
gradient_color_1 = "'${colors.gruvbox.aqua}'";
|
||||||
|
gradient_color_2 = "'${colors.gruvbox.orange}'";
|
||||||
|
};
|
||||||
|
smoothing.noise_reduction = 0.8;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@@ -37,23 +37,31 @@
|
|||||||
# 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" = "'Symbols Nerd Font Mono'";
|
"terminal.integrated.fontFamily" = "'Intel One Mono', 'Symbols Nerd Font Mono'";
|
||||||
"files.autoSave" = "onFocusChange";
|
"files.autoSave" = "onFocusChange";
|
||||||
"editor.fontFamily" = "'Intel One Mono', 'Droid Sans Mono', 'monospace', monospace";
|
"explorer.confirmDragAndDrop" = false;
|
||||||
|
"workbench.colorTheme" = "Gruvbox Dark Medium";
|
||||||
|
"workbench.iconTheme" = "vscode-icons";
|
||||||
|
"editor.fontFamily" = "'Intel One Mono', 'Symbols Nerd Font Mono', 'monospace', monospace";
|
||||||
"editor.tabSize" = 2;
|
"editor.tabSize" = 2;
|
||||||
"editor.wordWrap" = "on";
|
"editor.wordWrap" = "on";
|
||||||
"editor.fontLigatures" = "'ss01'";
|
"editor.fontLigatures" = "'ss01'";
|
||||||
"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
203
modules/hm/discord.nix
Normal 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
111
modules/hm/eza.nix
Normal 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
158
modules/hm/fastfetch.nix
Normal 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";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
251
modules/hm/gitkraken.nix
Normal file
251
modules/hm/gitkraken.nix
Normal file
@@ -0,0 +1,251 @@
|
|||||||
|
{
|
||||||
|
home.file.".gitkraken/themes/gruvbox-dark-medium.jsonc".text = ''
|
||||||
|
{
|
||||||
|
"meta": {
|
||||||
|
"name": "Gruvbox Dark Medium",
|
||||||
|
"scheme": "dark" // must be "light" or "dark"
|
||||||
|
},
|
||||||
|
"themeValues": {
|
||||||
|
// values applied to the entire app
|
||||||
|
"root": {
|
||||||
|
// All dark gruvbox colours from https://github.com/morhetz/gruvbox
|
||||||
|
// Contrast variants are excluded (this theme aims to be a 'medium' implementation)
|
||||||
|
".gruvbox-dark-red-a": "#CC241D",
|
||||||
|
".gruvbox-dark-red-b": "#FB4934",
|
||||||
|
".gruvbox-dark-green-a": "#98971A",
|
||||||
|
".gruvbox-dark-green-b": "#B8BB26",
|
||||||
|
".gruvbox-dark-yellow-a": "#D79921",
|
||||||
|
".gruvbox-dark-yellow-b": "#FABD2F",
|
||||||
|
".gruvbox-dark-blue-a": "#458588",
|
||||||
|
".gruvbox-dark-blue-b": "#83A598",
|
||||||
|
".gruvbox-dark-purple-a": "#B16286",
|
||||||
|
".gruvbox-dark-purple-b": "#D3869B",
|
||||||
|
".gruvbox-dark-aqua-a": "#689D6A",
|
||||||
|
".gruvbox-dark-aqua-b": "#8EC07C",
|
||||||
|
".gruvbox-dark-gray-a": "#928374",
|
||||||
|
".gruvbox-dark-gray-b": "#A89984",
|
||||||
|
".gruvbox-dark-bg0": "#282828",
|
||||||
|
".gruvbox-dark-bg1": "#3C3836",
|
||||||
|
".gruvbox-dark-bg2": "#504945",
|
||||||
|
".gruvbox-dark-bg3": "#665C54",
|
||||||
|
".gruvbox-dark-bg4": "#7C6F64",
|
||||||
|
".gruvbox-dark-fg4": "@.gruvbox-dark-gray-b",
|
||||||
|
".gruvbox-dark-fg3": "#BDAE93",
|
||||||
|
".gruvbox-dark-fg2": "#D5C4A1",
|
||||||
|
".gruvbox-dark-fg1": "#EBDBB2",
|
||||||
|
".gruvbox-dark-fg0": "#FBF1C7",
|
||||||
|
".gruvbox-dark-orange-a": "#D65D0E",
|
||||||
|
".gruvbox-dark-orange-b": "#FE8019",
|
||||||
|
".gruvbox-dark-bg": "@.gruvbox-dark-bg0",
|
||||||
|
".gruvbox-dark-fg": "@.gruvbox-dark-fg1",
|
||||||
|
".gruvbox-dark-gray": "@.gruvbox-dark-gray-a",
|
||||||
|
|
||||||
|
// Core colors
|
||||||
|
// TODO remove these eventually once they are not used
|
||||||
|
"white":"@.gruvbox-dark-fg0",
|
||||||
|
"black":"@.gruvbox-dark-bg",
|
||||||
|
"red": "@.gruvbox-dark-red-a",
|
||||||
|
"orange": "@.gruvbox-dark-orange-a",
|
||||||
|
"yellow": "@.gruvbox-dark-yellow-a",
|
||||||
|
"green": "@.gruvbox-dark-green-a",
|
||||||
|
"teal": "@.gruvbox-dark-aqua-a",
|
||||||
|
"blue": "@.gruvbox-dark-blue-a",
|
||||||
|
"ltblue": "@.gruvbox-dark-blue-b",
|
||||||
|
"purple": "@.gruvbox-dark-purple-a",
|
||||||
|
|
||||||
|
// Background and panels
|
||||||
|
"app__bg0": "@.gruvbox-dark-bg0",
|
||||||
|
"toolbar__bg0": "darken(@.gruvbox-dark-bg0, 4%)",
|
||||||
|
"toolbar__bg1": "@.gruvbox-dark-bg0",
|
||||||
|
"toolbar__bg2": "@.gruvbox-dark-bg0",
|
||||||
|
|
||||||
|
"panel__bg0": "@.gruvbox-dark-bg0",
|
||||||
|
"panel__bg1": "@.gruvbox-dark-bg0",
|
||||||
|
"panel__bg2": "@.gruvbox-dark-bg2",
|
||||||
|
|
||||||
|
"glass": "#00000033",
|
||||||
|
"glass-inverse-10": "#FFFFFF1A",
|
||||||
|
"glass-inverse-5": "#FFFFFF0D",
|
||||||
|
|
||||||
|
"input__bg": "darken(@.gruvbox-dark-bg0, 3%)",
|
||||||
|
"input-bg-warn-color": "fade(@orange, 60%)",
|
||||||
|
"panel-border": "@.gruvbox-dark-bg1",
|
||||||
|
"section-border": "@.gruvbox-dark-bg1",
|
||||||
|
"subtle-border": "@.gruvbox-dark-bg1",
|
||||||
|
"modal-overlay-color": "rgba(0,0,0,.5)",
|
||||||
|
|
||||||
|
// Graph colors
|
||||||
|
"graph-color-0": "@.gruvbox-dark-blue-b",
|
||||||
|
"graph-color-1": "@.gruvbox-dark-yellow-b",
|
||||||
|
"graph-color-2": "@.gruvbox-dark-purple-b",
|
||||||
|
"graph-color-3": "@.gruvbox-dark-aqua-b",
|
||||||
|
"graph-color-4": "@.gruvbox-dark-red-b",
|
||||||
|
"graph-color-5": "@.gruvbox-dark-orange-b",
|
||||||
|
"graph-color-6": "@.gruvbox-dark-blue-a",
|
||||||
|
"graph-color-7": "@.gruvbox-dark-yellow-a",
|
||||||
|
"graph-color-8": "@.gruvbox-dark-purple-a",
|
||||||
|
"graph-color-9": "@.gruvbox-dark-aqua-a",
|
||||||
|
"stats-added-color": "#347d39",
|
||||||
|
"stats-deleted-color": "#c93c37",
|
||||||
|
"stats-files-color": "#e2c08d",
|
||||||
|
|
||||||
|
// Text colors
|
||||||
|
"text-selected": "@.gruvbox-dark-fg0",
|
||||||
|
"text-normal": "@.gruvbox-dark-fg1",
|
||||||
|
"text-secondary": "@.gruvbox-dark-fg2",
|
||||||
|
"text-disabled": "@.gruvbox-dark-gray",
|
||||||
|
"text-accent": "@.gruvbox-dark-orange-b",
|
||||||
|
"text-inverse": "@.gruvbox-dark-gray",
|
||||||
|
"text-bright": "@.gruvbox-dark-fg0",
|
||||||
|
"text-dimmed": "fade(@text-normal, 20%)",
|
||||||
|
"text-dimmed-selected": "fade(@text-dimmed, 50%)",
|
||||||
|
"text-selected-row": "@text-selected",
|
||||||
|
|
||||||
|
// First Time UX Variables
|
||||||
|
// "gkftux-teal": "#A7FBFF",
|
||||||
|
// "gkftux-bg": "#0D1017",
|
||||||
|
// "gkftux-getstarted-bg": "rgba(255,255,255, 0)",
|
||||||
|
// "gkftux-getstarted-bg-hover": "rgba(255,255,255,0.11)",
|
||||||
|
// "gkftux-getstarted-border": "rgba(54, 57, 63, 1)",
|
||||||
|
// "gkftux-getstarted-icon": "rgba(108, 108, 108, 1)",
|
||||||
|
// "gkftux-repo-tab-border": "#36393F",
|
||||||
|
// "gkftux-repo-tab-border-selected": "@gkftux-teal",
|
||||||
|
// "gkftux-repo-tab-bg": "transparent",
|
||||||
|
// "gkftux-repo-tab-bg-selected": "#1C1E23",
|
||||||
|
// "gkftux-repo-tab-icon": "fade(@gkftux-teal, 50%)",
|
||||||
|
// "gkftux-repo-tab-icon-selected": "@gkftux-teal",
|
||||||
|
|
||||||
|
// Buttons
|
||||||
|
"btn-text": "@text-normal",
|
||||||
|
"btn-text-hover": "@text-selected",
|
||||||
|
"default-border": "@text-normal",
|
||||||
|
"default-bg": "transparent",
|
||||||
|
"default-hover": "transparent",
|
||||||
|
"default-border-hover": "@text-selected",
|
||||||
|
"primary-border": "@blue",
|
||||||
|
"primary-bg": "fade(@blue, 20%)",
|
||||||
|
"primary-hover": "fade(@blue, 60%)",
|
||||||
|
"success-border": "@green",
|
||||||
|
"success-bg": "fade(@green, 20%)",
|
||||||
|
"success-hover": "fade(@green, 60%)",
|
||||||
|
"warning-border": "@orange",
|
||||||
|
"warning-bg": "fade(@orange, 20%)",
|
||||||
|
"warning-hover": "fade(@orange, 60%)",
|
||||||
|
"danger-border": "@red",
|
||||||
|
"danger-bg": "fade(@red, 20%)",
|
||||||
|
"danger-hover": "fade(@red, 60%)",
|
||||||
|
"hover-row": "fade(@blue, 10%)",
|
||||||
|
"danger-row": "fade(@red, 60%)",
|
||||||
|
"selected-row": "fade(@blue, 20%)",
|
||||||
|
"selected-row-border": "none",
|
||||||
|
"warning-row": "fade(@orange, 60%)",
|
||||||
|
|
||||||
|
// Actions
|
||||||
|
"droppable": "fade(@yellow, 30%)",
|
||||||
|
"drop-target": "fade(@green, 50%)",
|
||||||
|
"input--disabled": "fade(#000000, 10%)",
|
||||||
|
"link-color": "@.gruvbox-dark-orange-a",
|
||||||
|
"link-color-bright": "@.gruvbox-dark-orange-b",
|
||||||
|
"form-control-focus": "@blue",
|
||||||
|
"scroll-thumb-border": "transparent",
|
||||||
|
"scroll-thumb-bg": "fade(@.gruvbox-dark-fg1, 15%)",
|
||||||
|
"scroll-thumb-bg-light": "fade(@.gruvbox-dark-bg1, 15%)",
|
||||||
|
"wip-status": "fade(@blue, 40%)",
|
||||||
|
"card__bg": "@.gruvbox-dark-bg3",
|
||||||
|
"card-shadow": "rgba(0,0,0,.2)",
|
||||||
|
"statusbar__warning-bg": "mixLess(@graph-color-7, @app__bg0, 50%)",
|
||||||
|
"label__yellow-color": "@.gruvbox-dark-yellow-b",
|
||||||
|
"label__light-blue-color": "@.gruvbox-dark-blue-b",
|
||||||
|
"label__purple-color": "@.gruvbox-dark-purple-b",
|
||||||
|
"filtering": "fade(@blue, 50%)",
|
||||||
|
"soloing": "fade(@orange, 50%)",
|
||||||
|
"checked-out": "fade(@green, 30%)",
|
||||||
|
"soloed": "fade(@orange, 30%)",
|
||||||
|
"filter-match": "fade(@blue, 50%)",
|
||||||
|
"clone__progress": "fade(@blue, 70%)",
|
||||||
|
"toolbar__prompt": "fade(@blue, 20%)",
|
||||||
|
"verified": "fade(@green, 30%)",
|
||||||
|
"unverified": "fade(#ffffff, 10%)",
|
||||||
|
"drop-sort-border": "@green",
|
||||||
|
|
||||||
|
// Terminal
|
||||||
|
"terminal__repo-name-color": "turquoise",
|
||||||
|
"terminal__repo-branch-color": "violet",
|
||||||
|
"terminal__repo-tag-color": "lightcoral",
|
||||||
|
"terminal__repo-upstream-color": "yellowgreen",
|
||||||
|
"terminal__background": "@.gruvbox-dark-bg",
|
||||||
|
"terminal__cursor": "@.gruvbox-dark-fg4",
|
||||||
|
"terminal__cursorAccent": "#000000",
|
||||||
|
"terminal__foreground": "@.gruvbox-dark-fg",
|
||||||
|
"terminal__selection": "darken(@.gruvbox-dark-orange-b, 35%)",
|
||||||
|
"terminal__black": "@.gruvbox-dark-bg2",
|
||||||
|
"terminal__red": "@.gruvbox-dark-red-a",
|
||||||
|
"terminal__green": "@.gruvbox-dark-green-a",
|
||||||
|
"terminal__yellow": "@.gruvbox-dark-yellow-a",
|
||||||
|
"terminal__blue": "@.gruvbox-dark-blue-a",
|
||||||
|
"terminal__magenta": "@.gruvbox-dark-purple-a",
|
||||||
|
"terminal__cyan": "@.gruvbox-dark-aqua-a",
|
||||||
|
"terminal__white": "@.gruvbox-dark-fg1",
|
||||||
|
"terminal__brightBlack": "@.gruvbox-dark-bg4",
|
||||||
|
"terminal__brightRed": "@.gruvbox-dark-red-b",
|
||||||
|
"terminal__brightGreen": "@.gruvbox-dark-green-b",
|
||||||
|
"terminal__brightYellow": "@.gruvbox-dark-yellow-b",
|
||||||
|
"terminal__brightBlue": "@.gruvbox-dark-blue-b",
|
||||||
|
"terminal__brightMagenta": "@.gruvbox-dark-purple-b",
|
||||||
|
"terminal__brightCyan": "@.gruvbox-dark-aqua-b",
|
||||||
|
"terminal__brightWhite": "@.gruvbox-dark-fg0",
|
||||||
|
|
||||||
|
// Code editor
|
||||||
|
"code-bg": "@app__bg0",
|
||||||
|
"code-foreground": "@text-normal",
|
||||||
|
"code-blame-color-0": "@graph-color-0",
|
||||||
|
"code-blame-color-1": "@graph-color-1",
|
||||||
|
"code-blame-color-2": "@graph-color-2",
|
||||||
|
"code-blame-color-3": "@graph-color-3",
|
||||||
|
"code-blame-color-4": "@graph-color-4",
|
||||||
|
"code-blame-color-5": "@graph-color-5",
|
||||||
|
"code-blame-color-6": "@graph-color-6",
|
||||||
|
"code-blame-color-7": "@graph-color-7",
|
||||||
|
"code-blame-color-8": "@graph-color-8",
|
||||||
|
"code-blame-color-9": "@graph-color-9",
|
||||||
|
"added-line": "fade(darken(@.gruvbox-dark-green-a, 10%), 25%)",
|
||||||
|
"deleted-line": "fade(darken(@.gruvbox-dark-red-a, 5%), 25%)",
|
||||||
|
"modified-line": "fade(#000000, 25%)",
|
||||||
|
|
||||||
|
// Merge Conflicts
|
||||||
|
"conflict-info-color": "@.gruvbox-dark-blue-b",
|
||||||
|
"conflict-left-border-color": "@.gruvbox-dark-blue-b",
|
||||||
|
"conflict-left-color": "fade(@conflict-left-border-color, 25%)",
|
||||||
|
"conflict-right-border-color": "@.gruvbox-dark-yellow-b",
|
||||||
|
"conflict-right-color": "fade(@conflict-right-border-color, 25%)",
|
||||||
|
"conflict-output-border-color": "@.gruvbox-dark-purple-a",
|
||||||
|
"conflict-output-color": "fade(@conflict-output-border-color, 25%)"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Override specific values just for the toolbar
|
||||||
|
"toolbar": {
|
||||||
|
"text-selected": "@.gruvbox-dark-fg0",
|
||||||
|
"text-normal": "@.gruvbox-dark-fg1",
|
||||||
|
"text-secondary": "@.gruvbox-dark-fg2",
|
||||||
|
"text-disabled": "@.gruvbox-dark-gray",
|
||||||
|
"section-border": "@.gruvbox-dark-bg2",
|
||||||
|
"input__bg": "rgba(0,0,0,.20)",
|
||||||
|
"link-color": "@.gruvbox-dark-orange-a",
|
||||||
|
"btn-text": "var(--text-normal)"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Override specific values just for the tabs bar
|
||||||
|
"tabsbar": {
|
||||||
|
"text-selected": "@.gruvbox-dark-fg0",
|
||||||
|
"text-normal": "@.gruvbox-dark-fg1",
|
||||||
|
"text-secondary": "@.gruvbox-dark-fg3",
|
||||||
|
"text-disabled": "@.gruvbox-dark-gray",
|
||||||
|
"section-border": "@.gruvbox-dark-bg2",
|
||||||
|
"input__bg": "rgba(0,0,0,.20)",
|
||||||
|
"link-color": "@.gruvbox-dark-orange-a",
|
||||||
|
"btn-text": "var(--text-normal)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
@@ -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
|
|
||||||
#}
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -4,15 +4,19 @@ in {
|
|||||||
# Hyprland settings
|
# Hyprland settings
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
systemd.enable = false;
|
||||||
settings = {
|
settings = {
|
||||||
exec-once = [
|
exec-once = [
|
||||||
"hyprpaper"
|
"hyprctl setcursor capitaine-cursors 32" # Set mouse cursor
|
||||||
"hypridle"
|
|
||||||
"hyprsunset"
|
|
||||||
"hyprctl setcursor capitaine-cursors-white 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
|
||||||
];
|
];
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true; # disables the random Hyprland logo / anime girl background. :(
|
||||||
|
disable_splash_rendering = true;
|
||||||
|
};
|
||||||
|
|
||||||
input = {
|
input = {
|
||||||
kb_layout = "se";
|
kb_layout = "se";
|
||||||
kb_variant = "";
|
kb_variant = "";
|
||||||
@@ -26,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;
|
||||||
@@ -39,6 +43,8 @@ in {
|
|||||||
workspace_swipe = true;
|
workspace_swipe = true;
|
||||||
workspace_swipe_forever = true;
|
workspace_swipe_forever = true;
|
||||||
workspace_swipe_direction_lock = false;
|
workspace_swipe_direction_lock = false;
|
||||||
|
workspace_swipe_distance = 200;
|
||||||
|
workspace_swipe_min_speed_to_force = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
@@ -47,36 +53,48 @@ in {
|
|||||||
"$menu" = "rofi -show-icons -show drun";
|
"$menu" = "rofi -show-icons -show drun";
|
||||||
|
|
||||||
general = {
|
general = {
|
||||||
gaps_in = 5;
|
gaps_in = 6;
|
||||||
gaps_out = 15;
|
gaps_out = "10,15,15,15";
|
||||||
border_size = 1;
|
border_size = 1;
|
||||||
"col.active_border" = "rgba(${colors.gruvbox-rgb.bright_orange},1.0) rgba(${colors.gruvbox-rgb.red},1.0) 45deg";
|
"col.active_border" = "rgba(${colors.gruvbox-rgb.bright_orange},1.0) rgba(${colors.gruvbox-rgb.red},1.0) 45deg";
|
||||||
"col.inactive_border" = "rgba(${colors.gruvbox-rgb.bg4},0.66)";
|
"col.inactive_border" = "rgba(${colors.gruvbox-rgb.bg4},0.66)";
|
||||||
layout = "dwindle";
|
layout = "dwindle";
|
||||||
allow_tearing = false;
|
allow_tearing = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
decoration = {
|
decoration = {
|
||||||
rounding = 10;
|
rounding = 10;
|
||||||
rounding_power = 4;
|
rounding_power = 3.5;
|
||||||
blur = {
|
blur = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
xray = true;
|
new_optimizations = true;
|
||||||
size = 4;
|
ignore_opacity = true;
|
||||||
passes = 4;
|
xray = false;
|
||||||
|
size = 3;
|
||||||
|
passes = 3;
|
||||||
|
popups = true;
|
||||||
|
};
|
||||||
|
shadow = {
|
||||||
|
enabled = true;
|
||||||
|
range = 8;
|
||||||
|
render_power = 4;
|
||||||
|
color = "rgba(0,0,0,.5)";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
animations = {
|
animations = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
bezier = [
|
||||||
|
"fluid, 0.15, 0.85, 0.25, 1"
|
||||||
|
"snappy, 0.3, 1, 0.4, 1"
|
||||||
|
];
|
||||||
|
|
||||||
animation = [
|
animation = [
|
||||||
"windows, 1, 7, myBezier"
|
"windows, 1, 3, fluid, popin 5%"
|
||||||
"windowsOut, 1, 7, default, popin 80%"
|
"windowsOut, 1, 2.5, snappy"
|
||||||
"border, 1, 10, default"
|
"fade, 1, 4, snappy"
|
||||||
"borderangle, 1, 8, default"
|
"workspaces, 1, 1.7, snappy, slidevert"
|
||||||
"fade, 1, 7, default"
|
"layers, 1, 2, snappy, popin 70%"
|
||||||
"workspaces, 1, 6, default, slidevert"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -86,6 +104,15 @@ in {
|
|||||||
smart_split = true;
|
smart_split = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Layer rules
|
||||||
|
layerrule = [
|
||||||
|
"blur, waybar" # Blur waybar
|
||||||
|
"ignorezero, waybar"
|
||||||
|
"ignorealpha 0.5, waybar"
|
||||||
|
"noanim, hyprpicker" # fix screenshot border visible
|
||||||
|
"noanim, selection" # fix screenshot border visible
|
||||||
|
];
|
||||||
|
|
||||||
# Window rules
|
# Window rules
|
||||||
windowrulev2 = [
|
windowrulev2 = [
|
||||||
# Nice transparency for some apps (unless in fullscreen)
|
# Nice transparency for some apps (unless in fullscreen)
|
||||||
|
@@ -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
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
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)
BIN
modules/hm/images/statue.png
(Stored with Git LFS)
Binary file not shown.
@@ -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
18
modules/hm/user-dirs.nix
Normal 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"
|
||||||
|
];
|
||||||
|
}
|
402
modules/hm/waybar.nix
Normal file
402
modules/hm/waybar.nix
Normal file
@@ -0,0 +1,402 @@
|
|||||||
|
{
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
systemd.target = "graphical-session.target";
|
||||||
|
settings = [
|
||||||
|
{
|
||||||
|
output = ["DP-3" "eDP-1"];
|
||||||
|
spacing = 8;
|
||||||
|
"modules-left" = ["hyprland/workspaces" "mpris" "cava"];
|
||||||
|
"modules-center" = ["hyprland/window"];
|
||||||
|
"modules-right" = ["idle_inhibitor" "wireplumber" "backlight" "load" "power-profiles-daemon" "battery" "clock" "tray"];
|
||||||
|
|
||||||
|
"hyprland/workspaces" = {
|
||||||
|
"all-outputs" = false;
|
||||||
|
};
|
||||||
|
"hyprland/window" = {
|
||||||
|
format = "{title}";
|
||||||
|
"max-length" = 60;
|
||||||
|
"all-outputs" = true;
|
||||||
|
"separate-outputs" = true;
|
||||||
|
};
|
||||||
|
load = {
|
||||||
|
format = " {load1}";
|
||||||
|
"on-click" = "btop";
|
||||||
|
};
|
||||||
|
backlight = {
|
||||||
|
format = "{icon} {percent}%";
|
||||||
|
"format-icons" = ["" "" "" "" "" "" "" "" ""];
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
"tooltip-format" = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||||
|
format = " {:%H:%M}";
|
||||||
|
"format-alt" = " {:%a %F}";
|
||||||
|
};
|
||||||
|
cava = {
|
||||||
|
framerate = 60;
|
||||||
|
autosens = 1;
|
||||||
|
sensitivity = 2;
|
||||||
|
bars = 12;
|
||||||
|
"lower_cutoff_freq" = 50;
|
||||||
|
"higher_cutoff_freq" = 10000;
|
||||||
|
method = "pipewire";
|
||||||
|
source = "auto";
|
||||||
|
stereo = false;
|
||||||
|
"bar_delimiter" = 0;
|
||||||
|
"noise_reduction" = 0.7;
|
||||||
|
"input_delay" = 2;
|
||||||
|
"hide_on_silence" = true;
|
||||||
|
"sleep_timer" = 3;
|
||||||
|
"format-icons" = [" " "▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"];
|
||||||
|
actions = {"on-click-right" = "mode";};
|
||||||
|
};
|
||||||
|
"idle_inhibitor" = {
|
||||||
|
format = "{icon}";
|
||||||
|
"format-icons" = {
|
||||||
|
activated = "";
|
||||||
|
deactivated = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
tray = {
|
||||||
|
"icon-size" = 14;
|
||||||
|
spacing = 10;
|
||||||
|
};
|
||||||
|
"power-profiles-daemon" = {
|
||||||
|
"format" = "{icon}";
|
||||||
|
"tooltip-format" = "Power profile: {profile}\nDriver: {driver}";
|
||||||
|
"tooltip" = true;
|
||||||
|
"format-icons" = {
|
||||||
|
"default" = "";
|
||||||
|
"performance" = "";
|
||||||
|
"balanced" = "";
|
||||||
|
"power-saver" = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
battery = {
|
||||||
|
interval = 60;
|
||||||
|
states = {
|
||||||
|
good = 100;
|
||||||
|
normal = 90;
|
||||||
|
warning = 30;
|
||||||
|
critical = 15;
|
||||||
|
};
|
||||||
|
format = "{icon} {capacity}%";
|
||||||
|
"format-full" = "{icon} {capacity}%";
|
||||||
|
"format-charging" = " {capacity}%";
|
||||||
|
"format-plugged" = " {capacity}%";
|
||||||
|
"format-alt" = "{icon} {time}";
|
||||||
|
"format-icons" = ["" "" "" "" "" ""];
|
||||||
|
};
|
||||||
|
mpris = {
|
||||||
|
format = "{status_icon} {dynamic}";
|
||||||
|
interval = 1;
|
||||||
|
"dynamic-len" = 60;
|
||||||
|
"status-icons" = {
|
||||||
|
playing = "";
|
||||||
|
paused = "";
|
||||||
|
stopped = "";
|
||||||
|
};
|
||||||
|
"dynamic-order" = ["title" "artist"];
|
||||||
|
};
|
||||||
|
wireplumber = {
|
||||||
|
"scroll-step" = 1;
|
||||||
|
format = "{icon} {volume}%";
|
||||||
|
"format-bluetooth" = "{icon} {volume}% ";
|
||||||
|
"format-bluetooth-muted" = " {icon}";
|
||||||
|
"format-muted" = "";
|
||||||
|
"format-icons" = {
|
||||||
|
headphone = "";
|
||||||
|
"hands-free" = "";
|
||||||
|
headset = "";
|
||||||
|
phone = "";
|
||||||
|
portable = "";
|
||||||
|
car = "";
|
||||||
|
default = ["" "" ""];
|
||||||
|
};
|
||||||
|
"on-click" = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||||
|
"on-click-right" = "pavucontrol";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
output = ["HDMI-A-1"];
|
||||||
|
spacing = 8;
|
||||||
|
"modules-left" = ["hyprland/workspaces"];
|
||||||
|
"modules-center" = ["hyprland/window"];
|
||||||
|
"modules-right" = ["clock"];
|
||||||
|
|
||||||
|
"hyprland/workspaces" = {
|
||||||
|
"all-outputs" = false;
|
||||||
|
};
|
||||||
|
"hyprland/window" = {
|
||||||
|
format = "{title}";
|
||||||
|
"max-length" = 60;
|
||||||
|
"all-outputs" = true;
|
||||||
|
"separate-outputs" = true;
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
"tooltip-format" = "<tt><small>{calendar}</small></tt>";
|
||||||
|
format = " {:%H:%M}";
|
||||||
|
"format-alt" = " {:%a %F}";
|
||||||
|
};
|
||||||
|
cava = {
|
||||||
|
framerate = 60;
|
||||||
|
autosens = 1;
|
||||||
|
sensitivity = 2;
|
||||||
|
bars = 12;
|
||||||
|
"lower_cutoff_freq" = 50;
|
||||||
|
"higher_cutoff_freq" = 10000;
|
||||||
|
method = "pipewire";
|
||||||
|
source = "auto";
|
||||||
|
stereo = false;
|
||||||
|
"bar_delimiter" = 0;
|
||||||
|
"noise_reduction" = 0.7;
|
||||||
|
"input_delay" = 2;
|
||||||
|
"hide_on_silence" = true;
|
||||||
|
"sleep_timer" = 3;
|
||||||
|
"format-icons" = [" " "▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"];
|
||||||
|
actions = {"on-click-right" = "mode";};
|
||||||
|
};
|
||||||
|
mpris = {
|
||||||
|
format = "{status_icon} {dynamic}";
|
||||||
|
interval = 1;
|
||||||
|
"dynamic-len" = 60;
|
||||||
|
"status-icons" = {
|
||||||
|
playing = "▶";
|
||||||
|
paused = "⏸";
|
||||||
|
stopped = "";
|
||||||
|
};
|
||||||
|
"dynamic-order" = ["title" "artist"];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
style = ''
|
||||||
|
/* colors */
|
||||||
|
/* Gruvbox Dark */
|
||||||
|
@define-color lightbg #fbf1c7;
|
||||||
|
@define-color bg #282828;
|
||||||
|
@define-color fglight #282828;
|
||||||
|
@define-color bg1 #3c3836;
|
||||||
|
@define-color bg2 #504945;
|
||||||
|
@define-color bg3 #665c54;
|
||||||
|
@define-color bg4 #7c6f64;
|
||||||
|
@define-color fg #ebdbb2;
|
||||||
|
@define-color red #cc241d;
|
||||||
|
@define-color green #98971a;
|
||||||
|
@define-color yellow #d79921;
|
||||||
|
@define-color blue #458588;
|
||||||
|
@define-color purple #b16286;
|
||||||
|
@define-color aqua #689d6a;
|
||||||
|
@define-color gray #a89984;
|
||||||
|
@define-color brgray #928374;
|
||||||
|
@define-color brred #fb4934;
|
||||||
|
@define-color brgreen #b8bb26;
|
||||||
|
@define-color bryellow #fabd2f;
|
||||||
|
@define-color brblue #83a598;
|
||||||
|
@define-color brpurple #d3869b;
|
||||||
|
@define-color braqua #8ec07c;
|
||||||
|
@define-color orange #d65d0e;
|
||||||
|
@define-color brorange #fe8019;
|
||||||
|
@define-color tooltipbg rgba(40, 40, 40, 0.9);
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-size: 14px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
font-family: Intel One Mono, Symbols Nerd Font Mono,monospace;
|
||||||
|
background-color: @tooltipbg;
|
||||||
|
border-radius: 6px;
|
||||||
|
border: 1px solid @bg3;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
color: @fg;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
font-family: Intel One Mono, Symbols Nerd Font Mono, monospace;
|
||||||
|
background-color: transparent;
|
||||||
|
border-bottom: 0px;
|
||||||
|
color: @fg;
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: .2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.hidden {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.empty #window {
|
||||||
|
background-color: transparent;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-left,
|
||||||
|
.modules-center,
|
||||||
|
.modules-right {
|
||||||
|
margin: 10px 16px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
background-color: transparent;
|
||||||
|
border: 1px solid alpha(@bg4,.6);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 6px;
|
||||||
|
background: alpha(@bg,.6);
|
||||||
|
color: @fg;
|
||||||
|
border-radius: 0;
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: .2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:first-child {
|
||||||
|
border-radius: 6px 0 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:last-child {
|
||||||
|
border-radius: 0 6px 6px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:first-child:last-child {
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover, #workspaces button.active:hover {
|
||||||
|
color: @yellow;
|
||||||
|
background: alpha(@bg4,.6);
|
||||||
|
box-shadow: inherit;
|
||||||
|
text-shadow: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
color: @orange;
|
||||||
|
background: alpha(@fg,.6);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background: alpha(@purple,.6);
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor,
|
||||||
|
#cava,
|
||||||
|
#scratchpad,
|
||||||
|
#mode,
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#backlight,
|
||||||
|
#custom-weather,
|
||||||
|
#custom-audio_idle_inhibitor,
|
||||||
|
#wireplumber,
|
||||||
|
#tray,
|
||||||
|
#mpris,
|
||||||
|
#power-profiles-daemon,
|
||||||
|
#load {
|
||||||
|
color: @fg;
|
||||||
|
padding: 0 15px;
|
||||||
|
background: alpha(@bg,.6);
|
||||||
|
border: 1px solid alpha(@bg4,.6);
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
padding: 0 15px;
|
||||||
|
color: @bg1;
|
||||||
|
background: alpha(@fg,.6);
|
||||||
|
border: 1px solid alpha(@bg4,.6);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If workspaces is the leftmost module, omit left margin */
|
||||||
|
.modules-left > widget:first-child > #workspaces {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If workspaces is the rightmost module, omit right margin */
|
||||||
|
.modules-right > widget:last-child > #workspaces {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cava {
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cava.silent {
|
||||||
|
background-color: transparent;
|
||||||
|
color: transparent;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon.performance {
|
||||||
|
background: alpha(@red,.6);
|
||||||
|
color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon.balanced {
|
||||||
|
background: alpha(@blue,.6);
|
||||||
|
color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon.power-saver {
|
||||||
|
background: alpha(@green,.6);
|
||||||
|
color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging, #battery.plugged, #battery.good {
|
||||||
|
background: alpha(@green,.6);
|
||||||
|
color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.warning {
|
||||||
|
background: alpha(@yellow,.6);
|
||||||
|
color: @fglight;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
background: alpha(@bg,.6);
|
||||||
|
color: @fg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Using steps() instead of linear as a timing function to limit cpu usage */
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
background: alpha(@red,.6);
|
||||||
|
color: @fg;
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
animation-timing-function: steps(12);
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wireplumber.muted {
|
||||||
|
background: alpha(@blue,.6);
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .passive {
|
||||||
|
-gtk-icon-effect: dim;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .needs-attention {
|
||||||
|
-gtk-icon-effect: highlight;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpris.playing {
|
||||||
|
background: alpha(@blue,.6);
|
||||||
|
color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray menu {
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
@@ -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,20 +69,26 @@ in {
|
|||||||
ghostty
|
ghostty
|
||||||
obsidian
|
obsidian
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
|
signal-desktop
|
||||||
|
slack
|
||||||
libreoffice-fresh
|
libreoffice-fresh
|
||||||
tor-browser
|
tor-browser
|
||||||
ungoogled-chromium
|
ungoogled-chromium
|
||||||
plexamp
|
plexamp
|
||||||
remmina
|
remmina
|
||||||
|
|
||||||
# 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
|
||||||
darktable # Raw editor
|
darktable # Raw editor
|
||||||
imagemagick # Image processing
|
imagemagick # Image processing
|
||||||
mpv # Video player
|
mpv # Video player
|
||||||
|
cava # Audio visualizer
|
||||||
|
wireplumber # Audio server
|
||||||
|
pavucontrol # Audio control
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
@@ -102,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";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -133,9 +150,6 @@ in {
|
|||||||
add_newline = false;
|
add_newline = false;
|
||||||
directory = {
|
directory = {
|
||||||
fish_style_pwd_dir_length = 1;
|
fish_style_pwd_dir_length = 1;
|
||||||
substitutions = {
|
|
||||||
"git" = "";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -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;
|
||||||
@@ -158,6 +180,13 @@ in {
|
|||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
lfs.enable = true;
|
lfs.enable = true;
|
||||||
|
config = {
|
||||||
|
user.name = "Felix Schulze";
|
||||||
|
user.email = "admin@schulze.network";
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
pull.rebase = true;
|
||||||
|
push.autoSetupRemote = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
java.enable = true;
|
java.enable = true;
|
||||||
|
|
||||||
@@ -169,7 +198,6 @@ in {
|
|||||||
/*
|
/*
|
||||||
---- POLICIES ----
|
---- POLICIES ----
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DisableTelemetry = true;
|
DisableTelemetry = true;
|
||||||
DisableFirefoxStudies = true;
|
DisableFirefoxStudies = true;
|
||||||
EnableTrackingProtection = {
|
EnableTrackingProtection = {
|
||||||
@@ -178,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:
|
||||||
@@ -199,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
|
||||||
|
@@ -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
BIN
screenshots/fastfetch.png
(Stored with Git LFS)
Normal file
Binary file not shown.
Reference in New Issue
Block a user