Compare commits
42 Commits
473170975d
...
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 |
@@ -2,6 +2,8 @@
|
||||
|
||||
A modular, flake-based NixOS configuration supporting multiple hosts with shared and host-specific configurations.
|
||||
|
||||

|
||||
|
||||
## 🏗️ Structure Overview
|
||||
|
||||
```
|
||||
|
66
flake.lock
generated
66
flake.lock
generated
@@ -20,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750372185,
|
||||
"narHash": "sha256-lVBKxd9dsZOH1fA6kSE5WNnt8e+09fN+NL/Q3BjTWHY=",
|
||||
"lastModified": 1752743471,
|
||||
"narHash": "sha256-4izhj1j7J4mE8LgljCXSIUDculqOsxxhdoC81VhqizM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "7cef49d261cbbe537e8cb662485e76d29ac4cbca",
|
||||
"rev": "e31b575d19e7cf8a8f4398e2f9cffe27a1332506",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -78,11 +78,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749154018,
|
||||
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
|
||||
"lastModified": 1752780124,
|
||||
"narHash": "sha256-5dn97vIYxn6VozKePOQSDxVCsrl38nDdMJXx86KIJH0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
|
||||
"rev": "c718918222bdb104397762dea67e6b397a7927fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -137,11 +137,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750371717,
|
||||
"narHash": "sha256-cNP+bVq8m5x2Rl6MTjwfQLCdwbVmKvTH7yqVc1SpiJM=",
|
||||
"lastModified": 1752149140,
|
||||
"narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "15c6f8f3a567fec9a0f732cd310a7ff456deef88",
|
||||
"rev": "340494a38b5ec453dfc542c6226481f736cc8a9a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -166,11 +166,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750589353,
|
||||
"narHash": "sha256-+3W7HI8ZzVqhjaws8++TFaUX8JP2eq9Uzn/KHA/qr0U=",
|
||||
"lastModified": 1752936500,
|
||||
"narHash": "sha256-StLLgYbL3U2iDezMbfr/QjUtd2a0Mb+pScDSQxFElTg=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland",
|
||||
"rev": "dd33128c2f127f39c30cca72addb1970b8936d07",
|
||||
"rev": "91d8a629ebfffaa46290331a74a54e249dec64fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -313,11 +313,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750371096,
|
||||
"narHash": "sha256-JB1IeJ41y7kWc/dPGV6RMcCUM0Xj2NEK26A2Ap7EM9c=",
|
||||
"lastModified": 1752252310,
|
||||
"narHash": "sha256-06i1pIh6wb+sDeDmWlzuPwIdaFMxLlj1J9I5B9XqSeo=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "38f3a211657ce82a1123bf19402199b67a410f08",
|
||||
"rev": "bcabcbada90ed2aacb435dc09b91001819a6dc82",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -338,11 +338,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750371869,
|
||||
"narHash": "sha256-lGk4gLjgZQ/rndUkzmPYcgbHr8gKU5u71vyrjnwfpB4=",
|
||||
"lastModified": 1751897909,
|
||||
"narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"rev": "aa38edd6e3e277ae6a97ea83a69261a5c3aab9fd",
|
||||
"rev": "fcca0c61f988a9d092cbb33e906775014c61579d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -353,11 +353,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1750365781,
|
||||
"narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=",
|
||||
"lastModified": 1752687322,
|
||||
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54",
|
||||
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -369,11 +369,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1750365781,
|
||||
"narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=",
|
||||
"lastModified": 1752687322,
|
||||
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54",
|
||||
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -385,11 +385,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1750400657,
|
||||
"narHash": "sha256-3vkjFnxCOP6vm5Pm13wC/Zy6/VYgei/I/2DWgW4RFeA=",
|
||||
"lastModified": 1752866191,
|
||||
"narHash": "sha256-NV4S2Lf2hYmZQ3Qf4t/YyyBaJNuxLPyjzvDma0zPp/M=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b2485d56967598da068b5a6946dadda8bfcbcd37",
|
||||
"rev": "f01fe91b0108a7aff99c99f2e9abbc45db0adc2a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -409,11 +409,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749636823,
|
||||
"narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=",
|
||||
"lastModified": 1750779888,
|
||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "623c56286de5a3193aa38891a6991b28f9bab056",
|
||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -473,11 +473,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750372504,
|
||||
"narHash": "sha256-VBeZb1oqZM1cqCAZnFz/WyYhO8aF/ImagI7WWg/Z3Og=",
|
||||
"lastModified": 1751300244,
|
||||
"narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "400308fc4f9d12e0a93e483c2e7a649e12af1a92",
|
||||
"rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@@ -19,9 +19,6 @@
|
||||
networking.firewall.allowedTCPPorts = [];
|
||||
networking.firewall.allowedUDPPorts = [];
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Intel GPU support
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
@@ -40,7 +37,11 @@
|
||||
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
|
||||
# settings for stateful data, like file locations and database versions
|
||||
|
@@ -35,7 +35,7 @@
|
||||
{
|
||||
publicKey = "h/BUyzXy0Xo4KJKS/U5V4C9rDJT3fWjjiZoy0I7P+H4=";
|
||||
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;
|
||||
}
|
||||
];
|
||||
|
@@ -13,9 +13,6 @@
|
||||
./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";
|
||||
|
||||
# AMD GPU support
|
||||
@@ -26,7 +23,9 @@
|
||||
];
|
||||
|
||||
# Network security specific to host
|
||||
networking.firewall.allowedTCPPorts = [];
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
3773 # OpenWebUI
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [];
|
||||
|
||||
# host-specific packages
|
||||
|
@@ -22,7 +22,9 @@
|
||||
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" = {
|
||||
device = "/dev/disk/by-uuid/B7CE-982B";
|
||||
|
@@ -35,7 +35,7 @@
|
||||
# {
|
||||
# publicKey = "h/BUyzXy0Xo4KJKS/U5V4C9rDJT3fWjjiZoy0I7P+H4=";
|
||||
# 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;
|
||||
# }
|
||||
# ];
|
||||
|
@@ -5,7 +5,9 @@
|
||||
pkgs-unstable,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
colors = import ./gruvbox-theme.nix;
|
||||
in {
|
||||
imports = [
|
||||
# Import Home Manager as a NixOS module for user-specific configurations
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
@@ -44,6 +46,10 @@
|
||||
./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
|
||||
];
|
||||
};
|
||||
|
||||
@@ -55,7 +61,7 @@
|
||||
users.schulze = {
|
||||
isNormalUser = true;
|
||||
description = "Felix Schulze";
|
||||
extraGroups = ["networkmanager" "wheel" "docker" "plugdev"];
|
||||
extraGroups = ["networkmanager" "wheel" "docker" "plugdev" "wireshark"];
|
||||
shell = pkgs.fish;
|
||||
};
|
||||
groups.libvirtd.members = ["schulze"];
|
||||
@@ -65,9 +71,33 @@
|
||||
# BOOT CONFIGURATION
|
||||
# ================================
|
||||
boot = {
|
||||
# Use systemd-boot (modern UEFI bootloader)
|
||||
loader.systemd-boot.enable = true;
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
loader = {
|
||||
efi = {
|
||||
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
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
};
|
||||
@@ -104,6 +134,8 @@
|
||||
LC_PAPER = "sv_SE.UTF-8";
|
||||
LC_TELEPHONE = "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
|
||||
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
|
||||
# ================================
|
||||
@@ -152,23 +204,23 @@
|
||||
# Allow installation of proprietary/unfree software
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Enable modern Nix features (flakes and new CLI)
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
nix = {
|
||||
settings.experimental-features = ["nix-command" "flakes"]; # Enable modern Nix features (flakes and new CLI)
|
||||
|
||||
# ================================
|
||||
# AUTOMATIC MAINTENANCE
|
||||
# ================================
|
||||
# Configure automatic system updates for security
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
flake = inputs.self.outPath; # Use this flake for updates
|
||||
flags = [
|
||||
"--update-input"
|
||||
"nixpkgs" # Update nixpkgs input
|
||||
"-L" # Print build logs for transparency
|
||||
];
|
||||
dates = "02:00"; # Run at 2 AM
|
||||
randomizedDelaySec = "45min"; # Random delay to avoid server load
|
||||
# Optimise the Nix store automatically to recover space
|
||||
optimise = {
|
||||
automatic = true;
|
||||
dates = ["03:45"];
|
||||
persistent = true; # Run missed optimisations
|
||||
};
|
||||
|
||||
# Garbage collect the Nix store automatically to recover space
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 60d";
|
||||
persistent = true; # Run missed GC
|
||||
};
|
||||
};
|
||||
|
||||
# ================================
|
||||
|
@@ -125,7 +125,6 @@
|
||||
|
||||
# ---- SYSTEM CONTROL ----
|
||||
pavucontrol # GUI audio mixer and control
|
||||
blueman # Bluetooth manager with system tray
|
||||
networkmanagerapplet # Network management system tray
|
||||
brightnessctl # Screen brightness control (laptops)
|
||||
|
||||
|
@@ -37,11 +37,15 @@
|
||||
# csstools.postcss # PostCSS language # not available
|
||||
];
|
||||
profiles.default.userSettings = {
|
||||
# IDE
|
||||
"terminal.external.linuxExec" = "ghostty";
|
||||
"terminal.explorerKind" = "external";
|
||||
"terminal.integrated.rescaleOverlappingGlyphs" = false;
|
||||
"terminal.integrated.fontFamily" = "'Intel One Mono', 'Symbols Nerd Font Mono'";
|
||||
"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.tabSize" = 2;
|
||||
"editor.wordWrap" = "on";
|
||||
@@ -49,14 +53,17 @@
|
||||
"editor.formatOnSave" = true;
|
||||
"editor.minimap.enabled" = true;
|
||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||
|
||||
# Extensions
|
||||
"prettier.printWidth" = 120;
|
||||
"prettier.proseWrap" = "always";
|
||||
"workbench.colorTheme" = "Gruvbox Dark Medium";
|
||||
"workbench.iconTheme" = "vscode-icons";
|
||||
"vsicons.dontShowNewVersionMessage" = true;
|
||||
"redhat.telemetry.enabled" = false;
|
||||
"sonarlint.pathToNodeExecutable" = "/run/current-system/sw/bin/node";
|
||||
|
||||
# Cursor
|
||||
"cursor.cpp.enablePartialAccepts" = true;
|
||||
"cursor.diffs.useCharacterLevelDiffs" = true;
|
||||
"redhat.telemetry.enabled" = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
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";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
@@ -19,11 +19,7 @@
|
||||
timeout = 900; # 15min.
|
||||
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed
|
||||
}
|
||||
{
|
||||
timeout = 1800; # 30min.
|
||||
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.
|
||||
}
|
||||
# no automatic screen off or sleep. causes issues i cant be arsed to fix. use `systemctl suspend` instead.
|
||||
];
|
||||
};
|
||||
};
|
||||
|
@@ -4,9 +4,10 @@ in {
|
||||
# Hyprland settings
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
systemd.enable = false;
|
||||
settings = {
|
||||
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 image --watch cliphist store" # Stores only image data
|
||||
];
|
||||
@@ -14,7 +15,6 @@ in {
|
||||
misc = {
|
||||
disable_hyprland_logo = true; # disables the random Hyprland logo / anime girl background. :(
|
||||
disable_splash_rendering = true;
|
||||
focus_on_activate = true;
|
||||
};
|
||||
|
||||
input = {
|
||||
@@ -30,8 +30,8 @@ in {
|
||||
sensitivity = 0;
|
||||
accel_profile = "flat";
|
||||
|
||||
repeat_delay = 250;
|
||||
repeat_rate = 40;
|
||||
repeat_delay = 300;
|
||||
repeat_rate = 30;
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
@@ -70,8 +70,8 @@ in {
|
||||
new_optimizations = true;
|
||||
ignore_opacity = true;
|
||||
xray = false;
|
||||
size = 2;
|
||||
passes = 5;
|
||||
size = 3;
|
||||
passes = 3;
|
||||
popups = true;
|
||||
};
|
||||
shadow = {
|
||||
@@ -109,6 +109,8 @@ in {
|
||||
"blur, waybar" # Blur waybar
|
||||
"ignorezero, waybar"
|
||||
"ignorealpha 0.5, waybar"
|
||||
"noanim, hyprpicker" # fix screenshot border visible
|
||||
"noanim, selection" # fix screenshot border visible
|
||||
];
|
||||
|
||||
# Window rules
|
||||
|
@@ -7,8 +7,8 @@ in {
|
||||
background = {
|
||||
# Background image is set in host specific configuration
|
||||
#path = "$HOME/git/nixos/modules/hm/images/sky.png";
|
||||
blur_size = 3;
|
||||
blur_passes = 4;
|
||||
blur_size = 2;
|
||||
blur_passes = 3;
|
||||
contrast = 1;
|
||||
brightness = 0.5;
|
||||
vibrancy = 0.2;
|
||||
|
@@ -5,6 +5,12 @@
|
||||
serverAliveCountMax = 2;
|
||||
|
||||
matchBlocks = {
|
||||
"*" = {
|
||||
sendEnv = ["TERM"];
|
||||
setEnv = {
|
||||
TERM = "xterm-256color"; # Fix ghostty issue
|
||||
};
|
||||
};
|
||||
"d10.csb.brainmill.com" = {
|
||||
forwardAgent = true;
|
||||
};
|
||||
@@ -12,6 +18,7 @@
|
||||
forwardAgent = true;
|
||||
};
|
||||
"prod-jump-got1.infra.brainmill.com" = {
|
||||
user = "schulze-local";
|
||||
forwardAgent = true;
|
||||
};
|
||||
"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"
|
||||
];
|
||||
}
|
@@ -120,7 +120,7 @@
|
||||
{
|
||||
output = ["HDMI-A-1"];
|
||||
spacing = 8;
|
||||
"modules-left" = ["hyprland/workspaces" "cava" "mpris"];
|
||||
"modules-left" = ["hyprland/workspaces"];
|
||||
"modules-center" = ["hyprland/window"];
|
||||
"modules-right" = ["clock"];
|
||||
|
||||
|
@@ -40,6 +40,7 @@ in {
|
||||
alejandra
|
||||
fzf
|
||||
fastfetch
|
||||
astroterm # Star map/planetarium
|
||||
|
||||
# Development
|
||||
pkgs-unstable.code-cursor
|
||||
@@ -52,6 +53,7 @@ in {
|
||||
nodejs_22
|
||||
pnpm
|
||||
cypress
|
||||
pgadmin4-desktopmode
|
||||
postgresql_15
|
||||
beam26Packages.erlang
|
||||
beam26Packages.erlfmt
|
||||
@@ -67,6 +69,7 @@ in {
|
||||
ghostty
|
||||
obsidian
|
||||
nextcloud-client
|
||||
signal-desktop
|
||||
slack
|
||||
libreoffice-fresh
|
||||
tor-browser
|
||||
@@ -76,6 +79,7 @@ in {
|
||||
|
||||
# Audio / Visual
|
||||
loupe # Image viewer
|
||||
pastel # generate, analyze, convert and manipulate colors
|
||||
inkscape # Vector editor
|
||||
krita # Image editor
|
||||
kdePackages.kolourpaint # Simple Image editor
|
||||
@@ -106,6 +110,9 @@ in {
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting # Disable greeting
|
||||
'';
|
||||
shellAliases = {
|
||||
"eza" = "eza --icons=always --color-scale --hyperlink";
|
||||
};
|
||||
shellAbbrs = {
|
||||
# Common abbreviations
|
||||
".." = "cd ..";
|
||||
@@ -113,12 +120,17 @@ in {
|
||||
"...." = "cd ../../../";
|
||||
"....." = "cd ../../../../";
|
||||
"cp" = "cp -v";
|
||||
"ll" = "ls -lh";
|
||||
"l" = "ls -lah";
|
||||
"la" = "eza -la";
|
||||
"l" = "eza -l";
|
||||
"cat" = "bat -pp";
|
||||
"tree" = "eza -lT";
|
||||
"mkdir" = "mkdir -p";
|
||||
"mv" = "mv -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";
|
||||
@@ -147,6 +159,14 @@ in {
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
# Cat replacement
|
||||
bat = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "gruvbox-dark";
|
||||
};
|
||||
};
|
||||
|
||||
# Vim editor
|
||||
vim = {
|
||||
enable = true;
|
||||
@@ -178,7 +198,6 @@ in {
|
||||
/*
|
||||
---- POLICIES ----
|
||||
*/
|
||||
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
EnableTrackingProtection = {
|
||||
@@ -187,14 +206,45 @@ in {
|
||||
Cryptomining = true;
|
||||
Fingerprinting = 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 ----
|
||||
*/
|
||||
# Check about:support for extension/add-on ID strings.
|
||||
# Valid strings for installation_mode are "allowed", "blocked",
|
||||
# "force_installed" and "normal_installed".
|
||||
# Valid strings for installation_mode are "allowed", "blocked", "force_installed" and "normal_installed".
|
||||
ExtensionSettings = {
|
||||
"*".installation_mode = "normal_installed";
|
||||
# uBlock Origin:
|
||||
@@ -208,25 +258,45 @@ in {
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
---- PREFERENCES ----
|
||||
*/
|
||||
Preferences = {
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
|
||||
"extensions.activeThemeID" = {
|
||||
Value = "{21ab01a8-2464-4824-bccb-6db15659347e}";
|
||||
Status = "locked";
|
||||
};
|
||||
};
|
||||
thunderbird = {
|
||||
enable = true;
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
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 = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
};
|
||||
wireshark = {
|
||||
enable = true;
|
||||
package = pkgs.wireshark;
|
||||
};
|
||||
};
|
||||
|
||||
# enable and configure Docker
|
||||
|
@@ -2,13 +2,6 @@
|
||||
|
||||
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
|
||||
FORCE_REBUILD=false
|
||||
if [[ "$1" == "-f" || "$1" == "--force" ]]; then
|
||||
@@ -67,18 +60,3 @@ current=$(nixos-rebuild list-generations | grep current)
|
||||
|
||||
# Commit all changes witih the generation metadata
|
||||
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