initial reconvergence of hyprland to support multiple hosts or some shit

This commit is contained in:
mjallen18
2025-07-07 11:11:01 -05:00
parent 5ba52331b2
commit 2bf33d8743
37 changed files with 121 additions and 102 deletions

View File

@@ -722,6 +722,7 @@
system = "aarch64-linux";
specialArgs = {
inherit inputs outputs;
hyprlandSettings = import ./hosts/mac-nixos/hyprland-settings.nix;
};
modules = [
./hosts/base/base-nogui

View File

@@ -1,10 +1,10 @@
{ pkgs, ... }:
let
shellAliases = {
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18";
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.3";
update-switch = "sudo nixos-rebuild switch --max-jobs 10";
update-flake = "nix flake update steamdeck-nixpkgs steamdeck-chaotic steamdeck-home-manager steamdeck-impermanence steamdeck-jovian steamdeck-lanzaboote steamdeck-nixos-hardware steamdeck-sops-nix steamdeck-steam-rom-manager --flake /etc/nixos";
nas-ssh = "ssh admin@10.0.1.18";
nas-ssh = "ssh admin@10.0.1.3";
};
in
{

View File

@@ -39,19 +39,19 @@ in
# Network shares
"/media/nas/backup" = {
device = "//10.0.1.18/Backup";
device = "//10.0.1.3/Backup";
fsType = "cifs";
options = defaultNetworkShareOptions;
};
"/media/nas/isos" = {
device = "//10.0.1.18/isos";
device = "//10.0.1.3/isos";
fsType = "cifs";
options = defaultNetworkShareOptions;
};
"/media/nas/3d_printer" = {
device = "//10.0.1.18/3d_printer";
device = "//10.0.1.3/3d_printer";
fsType = "cifs";
options = defaultNetworkShareOptions;
};

View File

@@ -1,10 +1,10 @@
{ pkgs, ... }:
let
shellAliases = {
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18";
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.18";
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.3";
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.3";
update-flake = "nix flake update desktop-nixpkgs desktop-chaotic desktop-home-manager desktop-impermanence desktop-lanzaboote desktop-nixos-hardware desktop-sops-nix desktop-steam-rom-manager --flake /etc/nixos";
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.18 --build-host admin@10.0.1.18 --flake ~/nix-config#jallen-nas";
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.3 --build-host admin@10.0.1.3 --flake ~/nix-config#jallen-nas";
};
in
{

View File

@@ -100,7 +100,7 @@ in
openssh
];
script = ''
rsync -rtpogvPlHzs --ignore-existing --exclude={'/home/matt/Games', '/home/matt/1TB', '/home/matt/Downloads/*', '/home/matt/.cache'} -e ssh /home/matt admin@10.0.1.18:/media/nas/main/backup/desktop-nix/home
rsync -rtpogvPlHzs --ignore-existing --exclude={'/home/matt/Games', '/home/matt/1TB', '/home/matt/Downloads/*', '/home/matt/.cache'} -e ssh /home/matt admin@10.0.1.3:/media/nas/main/backup/desktop-nix/home
'';
};
};

View File

@@ -2,11 +2,11 @@
let
shellAliases = {
ll = "ls -alh";
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18";
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.18";
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.3";
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.3";
update-flake = "sudo nix flake update ~/nix-config";
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.18 --build-host admin@10.0.1.18 --flake ~/nix-config#jallen-nas";
nas-ssh = "kitten ssh admin@10.0.1.18";
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.3 --build-host admin@10.0.1.3 --flake ~/nix-config#jallen-nas";
nas-ssh = "kitten ssh admin@10.0.1.3";
ducks = "du -cksh * | sort -hr | head -n 15";
};

View File

@@ -258,7 +258,7 @@ in
use_x_forwarded_for = true;
trusted_proxies = [
"172.30.33.0/24"
"10.0.1.18"
"10.0.1.3"
"10.0.1.0/24"
];
};

View File

@@ -5,7 +5,8 @@
loader = {
systemd-boot = {
enable = true;
configurationLimit = 3;
configurationLimit = 15;
consoleMode = lib.mkDefault "max";
};
efi.canTouchEfiVariables = lib.mkForce false;
};

View File

@@ -0,0 +1,44 @@
{
monitor = [
"eDP-1,3456x2234@60.00000,0x0,1.0,bitdepth,10,cm,hdr,sdrbrightness,1.2,sdrsaturation,0.98"
];
workspace = [
"name:firefox, monitor:eDP-1, default:false, special, class:(.*firefox.*)"
"name:discord, monitor:eDP-1, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)"
"name:steam, monitor:eDP-1, default:false, special, class:(.*[Ss]team.*)"
];
windowRule = [
# "tag +fakefull, fullscreen: 0"
# "float, tag:fakefull"
# "size 3356 2160, tag:fakefull"
# "move 100 74, tag:fakefull"
# "noanim, tag:fakefull"
# "noblur, tag:fakefull"
# "norounding, tag:fakefull"
# "noshadow, tag:fakefull"
# "immediate, tag:fakefull"
# "noborder, tag:fakefull"
# "nodim, tag:fakefull"
# "idleinhibit, tag:fakefull"
"size 2160 3356, tag:horizonrdp"
];
waybar = {
modules-right = [
"tray"
"temperature"
"temperature#gpu"
"keyboard-state#capslock"
"keyboard-state#numlock"
"wireplumber#sink"
# "wireplumber#source"
"bluetooth"
"network"
"clock"
"battery"
"custom/weather"
];
};
}

View File

@@ -77,5 +77,7 @@
# Enable Flatpak
flatpak.enable = lib.mkDefault false;
gvfs.enable = true;
};
}

View File

@@ -1,4 +1,7 @@
{ pkgs, lib, ... }:
let
settings = import ./settings.nix;
in
{
imports = [
./apps/actual
@@ -69,7 +72,7 @@
crowdsec = {
enable = true;
port = 9898;
apiAddress = "10.0.1.18";
apiAddress = settings.hostAddress;
apiKey = "1daH89qmJ41r2Lpd9hvDw4sxtOAtBzaj3aKFOFqE";
dataDir = "/media/nas/ssd/nix-app-data/crowdsec";
};

View File

@@ -2,8 +2,9 @@
with lib;
let
cfg = config.nas-apps.actual;
settings = import ../settings.nix;
dataDir = "/data";
hostAddress = "10.0.1.18";
hostAddress = settings.hostAddress;
actualUserId = config.users.users.nix-apps.uid;
actualGroupId = config.users.groups.jallen-nas.gid;
in

View File

@@ -7,6 +7,7 @@
with lib;
let
cfg = config.nas-apps.arrs;
settings = import ../settings.nix;
radarrDataDir = "/var/lib/radarr";
downloadDir = "/downloads";
incompleteDir = "/downloads-incomplete";
@@ -29,7 +30,7 @@ in
containers.arrs = {
autoStart = true;
privateNetwork = true;
hostAddress = "10.0.1.18";
hostAddress = settings.hostAddress;
localAddress = cfg.localAddress;
config =

View File

@@ -2,7 +2,8 @@
with lib;
let
cfg = config.nas-apps.gitea;
hostAddress = "10.0.1.18";
settings = import ../settings.nix;
hostAddress = settings.hostAddress;
# localAddress = "10.0.4.18";
# httpPort = 3000;
# sshPort = 2222;

View File

@@ -1,5 +1,6 @@
{ config, lib, ... }:
let
settings = import ../settings.nix;
immichPort = 2283;
dataDir = "/media/nas/main/photos";
dbPassword = config.sops.secrets."jallen-nas/immich/db-password".path;
@@ -15,7 +16,7 @@ in
environment = {
IMMICH_HOST = lib.mkForce "0.0.0.0";
IMMICH_TRUSTED_PROXIES = "10.0.1.18";
IMMICH_TRUSTED_PROXIES = settings.hostAddress;
TZ = "America/Chicago";
};

View File

@@ -3,12 +3,13 @@
let
jellyseerrPort = 5055;
dataDir = "/var/lib/private/jellyseerr";
settings = import ../settings.nix;
in
{
containers.jellyseerr = {
autoStart = true;
privateNetwork = true;
hostAddress = "10.0.1.18";
hostAddress = settings.hostAddress;
localAddress = "10.0.1.52";
hostAddress6 = "fc00::1";
localAddress6 = "fc00::4";

View File

@@ -1,12 +1,13 @@
{ config, pkgs, ... }:
let
settings = import ../settings.nix;
adminpass = config.sops.secrets."jallen-nas/nextcloud/adminpassword".path;
secretsFile = config.sops.secrets."jallen-nas/nextcloud/smtp_settings".path;
jwtSecretFile = config.sops.secrets."jallen-nas/onlyoffice-key".path;
nextcloudUserId = config.users.users.nix-apps.uid;
nextcloudGroupId = config.users.groups.jallen-nas.gid;
nextcloudPackage = pkgs.unstable.nextcloud31;
hostAddress = "10.0.1.18";
hostAddress = settings.hostAddress;
localAddress = "10.0.2.18";
nextcloudPortExtHttp = 9988;
nextcloudPortExtHttps = 9943;

View File

@@ -4,6 +4,7 @@
...
}:
let
settings = import ../settings.nix;
paperlessPort = 28981;
paperlessUserId = config.users.users.nix-apps.uid;
paperlessGroupId = config.users.groups.jallen-nas.gid;
@@ -14,7 +15,7 @@ in
containers.paperless = {
autoStart = true;
privateNetwork = true;
hostAddress = "10.0.1.18";
hostAddress = settings.hostAddress;
localAddress = "10.0.1.20";
hostAddress6 = "fc00::1";
localAddress6 = "fc00::20";

View File

@@ -1,7 +1,8 @@
{ config, ... }:
let
settings = import ../settings.nix;
domain = "mjallen.dev";
serverIp = "10.0.1.18";
serverIp = settings.hostAddress;
# Forward services
authUrl = "http://${serverIp}:9000/outpost.goauthentik.io";

View File

@@ -1,6 +1,6 @@
{ config, ... }:
let
hostname = "jallen-nas";
settings = import ./settings.nix;
ports = [
8008 # restic
9000 # authentik
@@ -27,7 +27,7 @@ in
{
# Networking configs
networking = {
hostName = hostname;
hostName = settings.hostname;
useNetworkd = true;
@@ -48,7 +48,7 @@ in
type = "wifi";
};
ipv4 = {
address1 = "10.0.1.18/24";
address1 = "${settings.hostAddress}/24";
dns = "10.0.1.1";
gateway = "10.0.1.1";
method = "manual";

View File

@@ -29,7 +29,7 @@
trusted_proxies = [
"127.0.0.0/8"
"::1/128"
"10.0.1.18"
"10.0.1.3"
];
cache_optimistic = true;
};

View File

@@ -2,11 +2,11 @@
let
shellAliases = {
ll = "ls -alh";
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18";
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.18";
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.3";
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.3";
update-flake = "nix flake update pi4-nixpkgs pi4-home-manager pi4-impermanence pi4-sops-nix pi4-nixos-hardware pi4-nixos-raspberrypi pi4-disko --flake /etc/nixos";
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.18 --build-host admin@10.0.1.18 --flake ~/nix-config#jallen-nas";
nas-ssh = "kitten ssh admin@10.0.1.18";
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.3 --build-host admin@10.0.1.3 --flake ~/nix-config#jallen-nas";
nas-ssh = "kitten ssh admin@10.0.1.3";
ducks = "du -cksh * | sort -hr | head -n 15";
};
in

View File

@@ -1,6 +1,6 @@
{ ... }:
let
hostAddress = "10.0.1.18";
hostAddress = "10.0.1.3";
localAddress = "10.0.5.18";
hassPort = 8192;
in

View File

@@ -1,11 +1,11 @@
{ pkgs, lib, config, ... }:
let
shellAliases = {
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18";
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.18";
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.3";
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.3";
update-flake = "nix flake update pi5-nixpkgs pi5-home-manager pi5-impermanence pi5-nixos-hardware pi5-sops-nix nixos-raspberrypi --flake /etc/nixos";
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.18 --build-host admin@10.0.1.18 --flake ~/nix-config#jallen-nas";
nas-ssh = "kitten ssh admin@10.0.1.18";
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.3 --build-host admin@10.0.1.3 --flake ~/nix-config#jallen-nas";
nas-ssh = "kitten ssh admin@10.0.1.3";
};
in
{

View File

@@ -22,7 +22,7 @@ in
CLIENT_ENDPOINT = "https://your-spotify.mjallen.dev";
SPOTIFY_PUBLIC = "e270589d72a6494680a17d325af8670d";
SPOTIFY_SECRET = "423cb7b69fe8486e89eccd01e0c22924";
MONGO_ENDPOINT = "mongodb://10.0.1.18:27017";
MONGO_ENDPOINT = "mongodb://10.0.1.3:27017";
};
};

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, hyprlandSettings, ... }:
let
settings = import ../../settings.nix { inherit pkgs; };
in

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, hyprlandSettings, ... }:
let
settings = import ../../settings.nix { inherit pkgs; };
drawer = "nwg-drawer -fm nautilus -term kitty -mb 10 -mt 10 -ml 10 -mr 10 -pbuseicontheme -i ${settings.iconTheme}";
@@ -123,10 +123,11 @@ in
"$mod, XF86MonBrightnessDown, exec, brightnessctl -d kbd_backlight set 10%-"
];
monitor = [
"${settings.displayLeft.input},${settings.displayLeft.resolution}@${settings.displayLeft.refreshRate},0x0,1,bitdepth,10,cm,hdr,sdrbrightness,1.2,sdrsaturation,0.98"
# "${settings.displayRight.input},${settings.displayRight.resolution}@${settings.displayRight.refreshRate},3840x0,1,bitdepth,10,cm,hdr,sdrbrightness,1.5,sdrsaturation,0.98"
];
# monitor = [
# "${settings.displayLeft.input},${settings.displayLeft.resolution}@${settings.displayLeft.refreshRate},0x0,1.0,bitdepth,10,cm,hdr,sdrbrightness,1.2,sdrsaturation,0.98"
# ];
monitor = hyprlandSettings.monitor;
render = {
cm_fs_passthrough = 1;
@@ -192,11 +193,7 @@ in
force_default_wallpaper = 0;
};
workspace = [
"name:firefox, monitor:${settings.displayRight.input}, default:false, special, class:(.*firefox.*)"
"name:discord, monitor:${settings.displayRight.input}, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)"
"name:steam, monitor:${settings.displayLeft.input}, default:false, special, class:(.*[Ss]team.*)"
];
workspace = hyprlandSettings.workspace;
windowrule = [
"float, title:(file_progress)"
@@ -264,27 +261,9 @@ in
"renderunfocused, tag:horizonrdp"
"idleinhibit, tag:horizonrdp"
"float, tag:horizonrdp"
"size 2160 7680, tag:horizonrdp"
# float the vmware window cause its annoying to use in fullscreen
"float, class:(.*[Vv][Mm]ware-view),title:([Vv][Mm]ware [Hh]orizon [Cc]lient)"
# "tag +fakefull, fullscreen: 0"
# "float, tag:fakefull"
# "size 3356 2160, tag:fakefull"
# "move 100 74, tag:fakefull"
# "noanim, tag:fakefull"
# "noblur, tag:fakefull"
# "norounding, tag:fakefull"
# "noshadow, tag:fakefull"
# "immediate, tag:fakefull"
# "noborder, tag:fakefull"
# "nodim, tag:fakefull"
# "idleinhibit, tag:fakefull"
];
] ++ hyprlandSettings.windowRule;
input = {
kb_layout = "us";
@@ -318,11 +297,6 @@ in
exec-once = xhost +SI:localuser:root
exec-once = nwg-look -a
exec-once = nwg-dock-hyprland -d
exec-once = nm-applet
exec-once = [silent] firefox
exec-once = [silent] vesktop
exec-once = [silent] chromium --app="https://music.apple.com"
exec-once = [silent] steam
'';
};
}

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, hyprlandSettings, ... }:
let
settings = import ../../settings.nix { inherit pkgs; };
in

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, hyprlandSettings, ... }:
let
settings = import ../../settings.nix { inherit pkgs; };
in

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, hyprlandSettings, ... }:
let
settings = import ../../settings.nix { inherit pkgs; };
in

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, hyprlandSettings, ... }:
let
settings = import ../../settings.nix { inherit pkgs; };
in

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, hyprlandSettings, ... }:
let
settings = import ../../settings.nix { inherit pkgs; };
in

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, hyprlandSettings, ... }:
let
settings = import ../../settings.nix { inherit pkgs; };
@@ -56,21 +56,7 @@ in
modules-center = [ "hyprland/window" ];
modules-right = [
"tray"
# "custom/lights"
"temperature"
"temperature#gpu"
"keyboard-state#capslock"
"keyboard-state#numlock"
"wireplumber#sink"
# "wireplumber#source"
"bluetooth"
"network"
"clock"
"battery"
"custom/weather"
];
modules-right = hyprlandSettings.waybar.modules-right;
# Module Definitions
# Left

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, hyprlandSettings, ... }:
let
settings = import ../../settings.nix { inherit pkgs; };
in

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, hyprlandSettings, ... }:
let
settings = import ../../settings.nix { inherit pkgs; };
in

View File

@@ -1,4 +1,4 @@
{ pkgs, lib, ... }:
{ config, pkgs, lib, hyprlandSettings, ... }:
let
settings = import ./settings.nix { inherit pkgs; };
@@ -21,7 +21,7 @@ in
environment.systemPackages = [ bing-wallpaper pkgs.jq ];
home-manager.users."${settings.user}" = import ./home.nix;
home-manager.users."${settings.user}" = (import ./home.nix {inherit lib pkgs hyprlandSettings;});
services = {
displayManager = {

View File

@@ -1,16 +1,16 @@
{ lib, pkgs, ... }:
{ lib, pkgs, hyprlandSettings, ... }:
let
settings = import ./settings.nix { inherit pkgs; };
settings = import ./settings.nix { inherit pkgs hyprlandSettings; };
wallpaper = "/run/wallpaper.jpg";
in
{
imports = [
./config.nix
./config/btop
./config/hypr
(import ./config/hypr {inherit pkgs hyprlandSettings;})
./config/kitty
./config/mako
./config/waybar
(import ./config/waybar {inherit pkgs hyprlandSettings;})
./config/wofi
];