mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-03-23 12:18:27 +01:00
Compare commits
3 commits
dc95d6fd77
...
0b09699cc5
| Author | SHA1 | Date | |
|---|---|---|---|
| 0b09699cc5 | |||
| ed5b3adf2d | |||
| 1ec782277a |
7 changed files with 152 additions and 148 deletions
|
|
@ -4,78 +4,74 @@
|
||||||
|
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
|
|
||||||
custom =
|
custom = {
|
||||||
let
|
boot.loader.grub.enable = true;
|
||||||
privateDomain = config.custom.networking.overlay.domain;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
boot.loader.grub.enable = true;
|
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
overlay.address = "10.254.250.6";
|
overlay.address = "10.254.250.6";
|
||||||
underlay = {
|
underlay = {
|
||||||
interface = "enp2s0";
|
interface = "enp2s0";
|
||||||
cidr = "192.168.0.64/24";
|
cidr = "192.168.0.64/24";
|
||||||
gateway = "192.168.0.1";
|
gateway = "192.168.0.1";
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
recursive-nameserver = {
|
|
||||||
enable = true;
|
|
||||||
blockAds = true;
|
|
||||||
};
|
|
||||||
private-nameserver.enable = true;
|
|
||||||
|
|
||||||
syncthing = {
|
|
||||||
enable = true;
|
|
||||||
isServer = true;
|
|
||||||
gui.domain = "syncthing.${privateDomain}";
|
|
||||||
doBackups = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
prometheus.storageRetentionSize = "20GB";
|
|
||||||
};
|
|
||||||
|
|
||||||
web-services = {
|
|
||||||
atuin = {
|
|
||||||
enable = true;
|
|
||||||
domain = "atuin.${privateDomain}";
|
|
||||||
};
|
|
||||||
|
|
||||||
filebrowser = {
|
|
||||||
enable = true;
|
|
||||||
domain = "files.${privateDomain}";
|
|
||||||
doBackups = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
radicale = {
|
|
||||||
enable = true;
|
|
||||||
domain = "dav.${privateDomain}";
|
|
||||||
doBackups = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
actualbudget = {
|
|
||||||
enable = true;
|
|
||||||
domain = "budget.${privateDomain}";
|
|
||||||
doBackups = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
karakeep = {
|
|
||||||
enable = true;
|
|
||||||
domain = "bookmarks.${privateDomain}";
|
|
||||||
};
|
|
||||||
|
|
||||||
grafana = {
|
|
||||||
enable = true;
|
|
||||||
domain = "grafana.${privateDomain}";
|
|
||||||
};
|
|
||||||
|
|
||||||
gatus = {
|
|
||||||
enable = true;
|
|
||||||
domain = "status.${privateDomain}";
|
|
||||||
generateDefaultEndpoints = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
recursive-nameserver = {
|
||||||
|
enable = true;
|
||||||
|
blockAds = true;
|
||||||
|
};
|
||||||
|
private-nameserver.enable = true;
|
||||||
|
|
||||||
|
syncthing = {
|
||||||
|
enable = true;
|
||||||
|
isServer = true;
|
||||||
|
gui.domain = "syncthing.${config.custom.networking.overlay.domain}";
|
||||||
|
doBackups = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
prometheus.storageRetentionSize = "20GB";
|
||||||
|
};
|
||||||
|
|
||||||
|
web-services = {
|
||||||
|
atuin = {
|
||||||
|
enable = true;
|
||||||
|
domain = "atuin.${config.custom.networking.overlay.domain}";
|
||||||
|
};
|
||||||
|
|
||||||
|
filebrowser = {
|
||||||
|
enable = true;
|
||||||
|
domain = "files.${config.custom.networking.overlay.domain}";
|
||||||
|
doBackups = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
radicale = {
|
||||||
|
enable = true;
|
||||||
|
domain = "dav.${config.custom.networking.overlay.domain}";
|
||||||
|
doBackups = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
actualbudget = {
|
||||||
|
enable = true;
|
||||||
|
domain = "budget.${config.custom.networking.overlay.domain}";
|
||||||
|
doBackups = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
karakeep = {
|
||||||
|
enable = true;
|
||||||
|
domain = "bookmarks.${config.custom.networking.overlay.domain}";
|
||||||
|
};
|
||||||
|
|
||||||
|
grafana = {
|
||||||
|
enable = true;
|
||||||
|
domain = "grafana.${config.custom.networking.overlay.domain}";
|
||||||
|
};
|
||||||
|
|
||||||
|
gatus = {
|
||||||
|
enable = true;
|
||||||
|
domain = "status.${config.custom.networking.overlay.domain}";
|
||||||
|
generateDefaultEndpoints = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -67,8 +67,6 @@
|
||||||
MAXTEMP=hwmon2/pwm2=100
|
MAXTEMP=hwmon2/pwm2=100
|
||||||
MINSTART=hwmon2/pwm2=35
|
MINSTART=hwmon2/pwm2=35
|
||||||
MINSTOP=hwmon2/pwm2=25
|
MINSTOP=hwmon2/pwm2=25
|
||||||
MINPWM=hwmon2/pwm2=0
|
|
||||||
MAXPWM=hwmon2/pwm2=255
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,74 +4,66 @@
|
||||||
|
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
|
|
||||||
custom =
|
custom = {
|
||||||
let
|
boot.loader.systemd-boot.enable = true;
|
||||||
sproutedDomain = "sprouted.cloud";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
overlay.address = "10.254.250.4";
|
overlay.address = "10.254.250.4";
|
||||||
underlay = {
|
underlay = {
|
||||||
interface = "enp1s0";
|
interface = "enp1s0";
|
||||||
cidr = "167.235.73.246/32";
|
cidr = "167.235.73.246/32";
|
||||||
isPublic = true;
|
isPublic = true;
|
||||||
gateway = "172.31.1.1";
|
gateway = "172.31.1.1";
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.public-nameserver = {
|
|
||||||
enable = true;
|
|
||||||
publicHostName = "ns2";
|
|
||||||
zones = [
|
|
||||||
"sprouted.cloud"
|
|
||||||
"sstork.dev"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
web-services =
|
|
||||||
let
|
|
||||||
sstorkDomain = "sstork.dev";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
personal-blog = {
|
|
||||||
enable = true;
|
|
||||||
domain = sstorkDomain;
|
|
||||||
};
|
|
||||||
|
|
||||||
forgejo = {
|
|
||||||
enable = true;
|
|
||||||
domain = "git.${sstorkDomain}";
|
|
||||||
doBackups = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
outline = {
|
|
||||||
enable = true;
|
|
||||||
domain = "wiki.${sproutedDomain}";
|
|
||||||
doBackups = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
it-tools = {
|
|
||||||
enable = true;
|
|
||||||
domain = "it-tools.${sproutedDomain}";
|
|
||||||
};
|
|
||||||
|
|
||||||
networking-toolbox = {
|
|
||||||
enable = true;
|
|
||||||
domain = "net-tools.${sproutedDomain}";
|
|
||||||
};
|
|
||||||
|
|
||||||
privatebin = {
|
|
||||||
enable = true;
|
|
||||||
domain = "pastebin.${sproutedDomain}";
|
|
||||||
branding.name = "SproutedBin";
|
|
||||||
};
|
|
||||||
|
|
||||||
screego = {
|
|
||||||
enable = true;
|
|
||||||
domain = "mirror.${sproutedDomain}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.public-nameserver = {
|
||||||
|
enable = true;
|
||||||
|
publicHostName = "ns2";
|
||||||
|
zones = [
|
||||||
|
"sprouted.cloud"
|
||||||
|
"sstork.dev"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
web-services = {
|
||||||
|
personal-blog = {
|
||||||
|
enable = true;
|
||||||
|
domain = "sstork.dev";
|
||||||
|
};
|
||||||
|
|
||||||
|
forgejo = {
|
||||||
|
enable = true;
|
||||||
|
domain = "git.sstork.dev";
|
||||||
|
doBackups = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
outline = {
|
||||||
|
enable = true;
|
||||||
|
domain = "wiki.sprouted.cloud";
|
||||||
|
doBackups = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
it-tools = {
|
||||||
|
enable = true;
|
||||||
|
domain = "it-tools.sprouted.cloud";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking-toolbox = {
|
||||||
|
enable = true;
|
||||||
|
domain = "net-tools.sprouted.cloud";
|
||||||
|
};
|
||||||
|
|
||||||
|
privatebin = {
|
||||||
|
enable = true;
|
||||||
|
domain = "pastebin.sprouted.cloud";
|
||||||
|
branding.name = "SproutedBin";
|
||||||
|
};
|
||||||
|
|
||||||
|
screego = {
|
||||||
|
enable = true;
|
||||||
|
domain = "mirror.sprouted.cloud";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,11 @@
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
wpaperd.enable = true;
|
wpaperd.enable = true;
|
||||||
hypridle.enable = true;
|
|
||||||
cliphist.enable = true;
|
cliphist.enable = true;
|
||||||
|
hypridle = {
|
||||||
|
enable = true;
|
||||||
|
lockCommand = "pidof hyprlock || hyprlock";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,13 @@
|
||||||
noctalia-shell.enable = true;
|
noctalia-shell.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.cliphist.enable = true;
|
services = {
|
||||||
|
cliphist.enable = true;
|
||||||
|
hypridle = {
|
||||||
|
enable = true;
|
||||||
|
lockCommand = "noctalia-shell ipc call lockScreen lock";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [ pkgs.grimblast ];
|
home.packages = [ pkgs.grimblast ];
|
||||||
|
|
@ -35,8 +41,8 @@
|
||||||
bind = SUPER, V, exec, $ipc launcher clipboard
|
bind = SUPER, V, exec, $ipc launcher clipboard
|
||||||
|
|
||||||
# Manage session
|
# Manage session
|
||||||
bindrl = SUPER CONTROL, L, exec, $ipc lockScreen lock
|
bindrl = SUPER CONTROL, L, exec, loginctl lock-session
|
||||||
bindrl = SUPER CONTROL, S, exec, $ipc sessionMenu lockAndSuspend
|
bindrl = SUPER CONTROL, S, exec, systemctl sleep
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@
|
||||||
largeButtonsStyle = false;
|
largeButtonsStyle = false;
|
||||||
countdownDuration = 3000;
|
countdownDuration = 3000;
|
||||||
};
|
};
|
||||||
idle.enabled = true;
|
idle.enabled = false;
|
||||||
audio.mprisBlacklist = [ "firefox" ];
|
audio.mprisBlacklist = [ "firefox" ];
|
||||||
network.bluetoothAutoConnect = false;
|
network.bluetoothAutoConnect = false;
|
||||||
location = {
|
location = {
|
||||||
|
|
|
||||||
|
|
@ -4,17 +4,26 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.custom.services.hypridle;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
options.custom.services.hypridle.enable = lib.mkEnableOption "";
|
options.custom.services.hypridle = {
|
||||||
|
enable = lib.mkEnableOption "";
|
||||||
|
lockCommand = lib.mkOption {
|
||||||
|
type = lib.types.nonEmptyStr;
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.custom.services.hypridle.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
services.hypridle = {
|
services.hypridle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs-unstable.hypridle;
|
package = pkgs-unstable.hypridle;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
general = {
|
general = {
|
||||||
lock_cmd = lib.mkIf config.custom.programs.hyprlock.enable "pidof hyprlock || hyprlock";
|
lock_cmd = cfg.lockCommand;
|
||||||
before_sleep_cmd = "loginctl lock-session";
|
before_sleep_cmd = "loginctl lock-session";
|
||||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue