From 0fa527717ea3e2278a8513b6c2ecb818bc28747b Mon Sep 17 00:00:00 2001 From: Chris Kruining Date: Wed, 9 Jul 2025 23:05:08 +0200 Subject: [PATCH] initial attempt at nfs --- hosts/manwe/default.nix | 25 +++++++++++++++++-------- hosts/ulmo/default.nix | 11 ++++------- hosts/ulmo/hardware.nix | 2 +- modules/home/desktop/plasma.nix | 20 +++++++++++--------- modules/home/shell/toolset/git.nix | 6 +----- modules/system/boot.nix | 2 +- modules/system/desktop/gaming.nix | 4 +++- modules/system/networking/nsf.nix | 22 ++++++++++++++++++++++ modules/system/networking/samba.nix | 2 +- modules/system/services/media.nix | 9 +++++++-- modules/system/system/audio.nix | 8 +++++--- 11 files changed, 73 insertions(+), 38 deletions(-) create mode 100644 modules/system/networking/nsf.nix diff --git a/hosts/manwe/default.nix b/hosts/manwe/default.nix index 9bbc29b..585fc48 100644 --- a/hosts/manwe/default.nix +++ b/hosts/manwe/default.nix @@ -1,15 +1,24 @@ { config, ... }: { - fileSystems."/home/chris/games" = { - device = "/dev/disk/by-label/games"; - fsType = "ext4"; + fileSystems = { + "/home/chris/games" = { + device = "/dev/disk/by-label/games"; + fsType = "ext4"; + }; + + "/home/chris/data" = { + device = "/dev/disk/by-label/Data"; + fsType = "ntfs-3g"; + options = [ "rw" "uid=chris" ]; + }; + + "/home/chris/media" = { + device = "ulmo:/"; + fsType = "nfs"; + }; }; - fileSystems."/home/chris/data" = { - device = "/dev/disk/by-label/Data"; - fsType = "ntfs-3g"; - options = [ "rw" "uid=chris" ]; - }; + boot.supportedFilesystems = [ "nfs" ]; modules = { system.audio.enable = true; diff --git a/hosts/ulmo/default.nix b/hosts/ulmo/default.nix index df003a8..1fe655d 100644 --- a/hosts/ulmo/default.nix +++ b/hosts/ulmo/default.nix @@ -1,7 +1,5 @@ { config, ... }: { - imports = [ ./hardware.nix ]; - config = { fileSystems."/var/media" = { device = "/dev/disk/by-label/data"; @@ -9,16 +7,15 @@ }; modules = { - networking.ssh.enable = true; + networking = { + ssh.enable = true; + nfs.enable = true; + }; services = { auth.enable = true; media.enable = true; nextcloud.enable = true; - - games = { - # minecraft.enable = true; - }; }; root = { diff --git a/hosts/ulmo/hardware.nix b/hosts/ulmo/hardware.nix index e8c481b..f9c83bd 100644 --- a/hosts/ulmo/hardware.nix +++ b/hosts/ulmo/hardware.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, modulesPath, ... }: +{ config, lib, modulesPath, ... }: let inherit (lib.modules) mkDefault; in diff --git a/modules/home/desktop/plasma.nix b/modules/home/desktop/plasma.nix index 0aeec59..c7ee813 100644 --- a/modules/home/desktop/plasma.nix +++ b/modules/home/desktop/plasma.nix @@ -207,7 +207,7 @@ in ]; powerdevil = { - AC = { + AC = { powerButtonAction = "shutDown"; whenLaptopLidClosed = "doNothing"; @@ -215,10 +215,11 @@ in dimDisplay.enable = false; turnOffDisplay = { - idleTimeout = "never"; + idleTimeout = "never"; }; - }; - battery = { + }; + + battery = { powerButtonAction = "shutDown"; whenLaptopLidClosed = "doNothing"; @@ -226,10 +227,11 @@ in dimDisplay.enable = false; turnOffDisplay = { - idleTimeout = "never"; + idleTimeout = "never"; }; - }; - lowBattery = { + }; + + lowBattery = { powerButtonAction = "shutDown"; whenLaptopLidClosed = "doNothing"; @@ -237,9 +239,9 @@ in dimDisplay.enable = false; turnOffDisplay = { - idleTimeout = "never"; - }; + idleTimeout = "never"; }; + }; }; kscreenlocker = { diff --git a/modules/home/shell/toolset/git.nix b/modules/home/shell/toolset/git.nix index dde24ef..f40a8ce 100644 --- a/modules/home/shell/toolset/git.nix +++ b/modules/home/shell/toolset/git.nix @@ -1,7 +1,6 @@ { config, lib, pkgs, user, ... }: let inherit (lib.options) mkEnableOption; - inherit (lib.attrsets) attrValues; inherit (lib.modules) mkIf; in { @@ -13,10 +12,7 @@ in environment.sessionVariables.GITHUB_TOKEN = "$(cat /run/agenix/tokenGH)"; home-manager.users.${user} = { - home.packages = attrValues { - inherit (pkgs) lazygit; - # inherit (pkgs.gitAndTools) gh git-open git-crypt; - }; + home.packages = with pkgs; [ lazygit lazyjj jujutsu ]; programs = { zsh.initContent = '' diff --git a/modules/system/boot.nix b/modules/system/boot.nix index 9c8f242..3488d05 100644 --- a/modules/system/boot.nix +++ b/modules/system/boot.nix @@ -1,4 +1,4 @@ -{ config, options, lib, pkgs, ... }: +{ ... }: { boot.loader = { efi.canTouchEfiVariables = true; diff --git a/modules/system/desktop/gaming.nix b/modules/system/desktop/gaming.nix index 0257346..525bd96 100644 --- a/modules/system/desktop/gaming.nix +++ b/modules/system/desktop/gaming.nix @@ -11,6 +11,8 @@ in }; config = mkIf cfg.enable { + services.desktopManager.plasma6.enable = true; + jovian = { # devices = { # steamdeck = { @@ -24,7 +26,7 @@ in autoStart = true; user = "chris"; updater.splash = "steamos"; - desktopSession = "gamescope-wayland"; + # desktopSession = "plasma"; }; steamos.useSteamOSConfig = true; }; diff --git a/modules/system/networking/nsf.nix b/modules/system/networking/nsf.nix new file mode 100644 index 0000000..05042df --- /dev/null +++ b/modules/system/networking/nsf.nix @@ -0,0 +1,22 @@ +{ config, lib, ... }: +let + inherit (lib) mkIf mkEnableOption; + + cfg = config.modules.networking.nfs; +in +{ + options.modules.networking.nfs = { + enable = mkEnableOption "Enable NFS"; + }; + + config = mkIf cfg.enable { + networking.firewall.allowedTCPPorts = [ 2049 ]; + + services.nsf.server = { + enable = true; + exports = '' + /var/media manwe(rw,fsid=0,no_subtree_check) + ''; + }; + }; +} diff --git a/modules/system/networking/samba.nix b/modules/system/networking/samba.nix index bbf9852..d7e0b7f 100644 --- a/modules/system/networking/samba.nix +++ b/modules/system/networking/samba.nix @@ -1,4 +1,4 @@ -{ pkgs, options, config, lib, ... }: +{ pkgs, config, lib, ... }: let inherit (builtins) getEnv; inherit (lib.modules) mkIf mkMerge; diff --git a/modules/system/services/media.nix b/modules/system/services/media.nix index 26f997d..434f533 100644 --- a/modules/system/services/media.nix +++ b/modules/system/services/media.nix @@ -1,6 +1,6 @@ { config, lib, pkgs, ... }: let - inherit (lib.modules) mkIf; + inherit (lib) mkIf; user = "media"; group = "media"; @@ -67,6 +67,11 @@ in bazarr = serviceConf; lidarr = serviceConf; + lanraragi = { + enable = true; + port = 6969; + }; + jellyseerr = { enable = true; openFirewall = true; @@ -126,7 +131,7 @@ in }; }; - networking.firewall.allowedTCPPorts = [ 80 443 ]; + networking.firewall.allowedTCPPorts = [ 80 443 6969 ]; modules.virtualisation.podman.enable = true; diff --git a/modules/system/system/audio.nix b/modules/system/system/audio.nix index e26c06b..1e71a76 100644 --- a/modules/system/system/audio.nix +++ b/modules/system/system/audio.nix @@ -14,12 +14,14 @@ in }; config = mkIf cfg.enable { - environment.systemPackages = attrValues { - inherit (pkgs) easyeffects; - }; + environment.systemPackages = with pkgs; [ + # easyeffects + sof-firmware + ]; security.rtkit.enable = true; + services.pulseaudio.enable = false; services.pipewire = { enable = true; wireplumber.enable = true;