summary refs log tree commit diff
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2024-06-09 12:28:09 +0200
committerRory& <root@rory.gay>2024-07-04 14:45:02 +0200
commitc3f12a320c7e7262bc00999b5d62f6f257b8eb67 (patch)
treef852e09cdd482684edd2d6b1d15fa47695876cb7
parentServer updates (diff)
downloadRory-Open-Architecture-c3f12a320c7e7262bc00999b5d62f6f257b8eb67.tar.xz
Bunch of changes
-rw-r--r--flake.lock104
-rwxr-xr-xflake.nix13
-rw-r--r--host/Rory-desktop/configuration.nix108
-rwxr-xr-xhost/Rory-desktop/ollama.nix20
-rw-r--r--host/Rory-desktop/optional/hardware-specific/amd.nix44
-rw-r--r--host/Rory-desktop/optional/hardware-specific/nvidia.nix40
-rw-r--r--host/Rory-desktop/printing.nix51
-rw-r--r--host/Rory-nginx/services/nginx/localhost/matrix-rory-gay.nix7
-rwxr-xr-xhost/Rory-nginx/services/ollama.nix2
-rwxr-xr-xmodules/users/Rory.nix2
10 files changed, 256 insertions, 135 deletions
diff --git a/flake.lock b/flake.lock
index 433f4c8..fa21e1f 100644
--- a/flake.lock
+++ b/flake.lock
@@ -96,11 +96,11 @@
         "rocksdb": "rocksdb"
       },
       "locked": {
-        "lastModified": 1716800097,
-        "narHash": "sha256-A8AXq7GqwLNOwCP6UyHzrusf2he6IYlD363/SrBKgts=",
+        "lastModified": 1717787400,
+        "narHash": "sha256-IjSF44midkGyLoM/OzQ4jx/N2Na/ArPdhYeWLi76Yjc=",
         "owner": "girlbossceo",
         "repo": "conduwuit",
-        "rev": "6ccf578437a42cf8f32a454ca99b78df23cfa4dc",
+        "rev": "c0c7f23a0579a2e736c7874012fa3d5b2095f824",
         "type": "github"
       },
       "original": {
@@ -120,16 +120,16 @@
         "nixpkgs": "nixpkgs_5"
       },
       "locked": {
-        "lastModified": 1714919298,
-        "narHash": "sha256-3LhH1e2HuGWkhHfYXtiqLS0OUIxoJAxLvKOfkZ7iDus=",
+        "lastModified": 1717708867,
+        "narHash": "sha256-3QlCdDPspP4IQ8tj61Q+N79JMLquwcNFYxmZL1w9Aqk=",
         "owner": "famedly",
         "repo": "conduit",
-        "rev": "d8badaf64bd29735b80d1a0652b9073a74866c55",
+        "rev": "a36ccff06ad0b82402d6ae322242e9f68ff895b9",
         "type": "gitlab"
       },
       "original": {
         "owner": "famedly",
-        "ref": "membership-reason-fixes",
+        "ref": "next",
         "repo": "conduit",
         "type": "gitlab"
       }
@@ -164,11 +164,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1716156051,
-        "narHash": "sha256-TjUX7WWRcrhuUxDHsR8pDR2N7jitqZehgCVSy3kBeS8=",
+        "lastModified": 1716569590,
+        "narHash": "sha256-5eDbq8TuXFGGO3mqJFzhUbt5zHVTf5zilQoyW5jnJwo=",
         "owner": "ipetkov",
         "repo": "crane",
-        "rev": "7443df1c478947bf96a2e699209f53b2db26209d",
+        "rev": "109987da061a1bf452f435f1653c47511587d919",
         "type": "github"
       },
       "original": {
@@ -231,11 +231,11 @@
         "rust-analyzer-src": "rust-analyzer-src"
       },
       "locked": {
-        "lastModified": 1716272846,
-        "narHash": "sha256-MtL0YhG20cngHsS6PIdpA3bkLnSx6XJBd2V8R9RaEc4=",
+        "lastModified": 1716359173,
+        "narHash": "sha256-pYcjP6Gy7i6jPWrjiWAVV0BCQp+DdmGaI/k65lBb/kM=",
         "owner": "nix-community",
         "repo": "fenix",
-        "rev": "063d7e5fac454edd35b7e2cedb6ca9fb1410c79b",
+        "rev": "b6fc5035b28e36a98370d0eac44f4ef3fd323df6",
         "type": "github"
       },
       "original": {
@@ -438,11 +438,11 @@
         "nixpkgs": "nixpkgs_6"
       },
       "locked": {
-        "lastModified": 1714515075,
-        "narHash": "sha256-azMK7aWH0eUc3IqU4Fg5rwZdB9WZBvimOGG3piqvtsY=",
+        "lastModified": 1717525419,
+        "narHash": "sha256-5z2422pzWnPXHgq2ms8lcCfttM0dz+hg+x1pCcNkAws=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "6d3b6dc9222c12b951169becdf4b0592ee9576ef",
+        "rev": "a7117efb3725e6197dd95424136f79147aa35e5b",
         "type": "github"
       },
       "original": {
@@ -455,11 +455,11 @@
     "liburing": {
       "flake": false,
       "locked": {
-        "lastModified": 1716398759,
-        "narHash": "sha256-fDlOR13WmwVgMxGUMQXWSZAoy2VhZ5AfZRPF9qmQjSc=",
+        "lastModified": 1716565485,
+        "narHash": "sha256-4R19aJNQYs6vb0/Hz4bWT56YN1P1DkFL/sxdE4Yj0CE=",
         "owner": "axboe",
         "repo": "liburing",
-        "rev": "49be3cad491ae8b3c40348b8d78ae2b0d3726b78",
+        "rev": "b90c0e670a93caabbebe2d9e24ff85cece4cfe0e",
         "type": "github"
       },
       "original": {
@@ -472,11 +472,11 @@
     "mtxclientSrc": {
       "flake": false,
       "locked": {
-        "lastModified": 1710558918,
-        "narHash": "sha256-N92nf1Ay27auUQR9pZSXx4HMFCG9UGTBei+Eva18TLU=",
+        "lastModified": 1717627148,
+        "narHash": "sha256-+GOiUd37zAqP4315wRhF2i1xO78sKRloqEEcvKSz3zs=",
         "owner": "Nheko-reborn",
         "repo": "mtxclient",
-        "rev": "4fb7d678aeea197d16b52bfb1dc35b506673bb52",
+        "rev": "a70753812e3fb832df12b24ee0ee6c70d68060d5",
         "type": "github"
       },
       "original": {
@@ -489,11 +489,11 @@
     "nhekoSrc": {
       "flake": false,
       "locked": {
-        "lastModified": 1714322682,
-        "narHash": "sha256-dx7pU0WhSSAgQhX6mishzPx5nzL27lHvhK16tFM6FIM=",
+        "lastModified": 1717630467,
+        "narHash": "sha256-Jw7jmP7cWFrcKiT3r68k4dJXSqV1vbAu3ieUkqJUIwg=",
         "owner": "Nheko-reborn",
         "repo": "nheko",
-        "rev": "f465a5b52fccfb0f6bc88f7279dfc842bc421ee2",
+        "rev": "80ab0394cdee68ed3de778c687df211032753884",
         "type": "github"
       },
       "original": {
@@ -541,11 +541,11 @@
         "nixpkgs": "nixpkgs_7"
       },
       "locked": {
-        "lastModified": 1714355896,
-        "narHash": "sha256-rtv+nJJ12V7w68j8vIcGacfS1yuK1/dBgglSKWzYMTM=",
+        "lastModified": 1717712630,
+        "narHash": "sha256-VlwA4W7DtbyYFmXYB4Cimdx0sBjEjus/VV4QMXSc9VU=",
         "owner": "nix-community",
         "repo": "NixOS-WSL",
-        "rev": "acb893461a4bee4e77b1a27b1410d4995b52174c",
+        "rev": "d6003e57dc64ce9b310a16121fe30fab4b7d9d63",
         "type": "github"
       },
       "original": {
@@ -572,11 +572,11 @@
     },
     "nixpkgs-RoryNix": {
       "locked": {
-        "lastModified": 1714531828,
-        "narHash": "sha256-ILsf3bdY/hNNI/Hu5bSt2/KbmHaAVhBbNUOdGztTHEg=",
+        "lastModified": 1717530100,
+        "narHash": "sha256-b4Dn+PnrZoVZ/BoR9JN2fTxXxplJrAsdSUIePf4Cacs=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "0638fe2715d998fa81d173aad264eb671ce2ebc1",
+        "rev": "a2e1d0414259a144ebdc048408a807e69e0565af",
         "type": "github"
       },
       "original": {
@@ -588,14 +588,18 @@
     },
     "nixpkgs-rory": {
       "locked": {
-        "lastModified": 0,
-        "narHash": "sha256-WxnpAK+t4gqM/o0AylZbAZH24qmLBWHXcOS/XPCWlcY=",
-        "path": "/Rory-Open-Architecture/nixpkgs",
-        "type": "path"
+        "lastModified": 1717368103,
+        "narHash": "sha256-0VlLgr9gj2ZN3HckF29W8Gabiz2AYewXWHuo52Ot8SE=",
+        "owner": "TheArcaneBrony",
+        "repo": "nixpkgs",
+        "rev": "3d9edccd9a55e7c7be1a272c75911c99ce3e0e96",
+        "type": "github"
       },
       "original": {
-        "path": "/Rory-Open-Architecture/nixpkgs",
-        "type": "path"
+        "owner": "TheArcaneBrony",
+        "ref": "master",
+        "repo": "nixpkgs",
+        "type": "github"
       }
     },
     "nixpkgs-stable": {
@@ -648,11 +652,11 @@
     },
     "nixpkgs_3": {
       "locked": {
-        "lastModified": 1716293225,
-        "narHash": "sha256-pU9ViBVE3XYb70xZx+jK6SEVphvt7xMTbm6yDIF4xPs=",
+        "lastModified": 1716330097,
+        "narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "3eaeaeb6b1e08a016380c279f8846e0bd8808916",
+        "rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2",
         "type": "github"
       },
       "original": {
@@ -696,11 +700,11 @@
     },
     "nixpkgs_6": {
       "locked": {
-        "lastModified": 1714076141,
-        "narHash": "sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY=",
+        "lastModified": 1716948383,
+        "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856",
+        "rev": "ad57eef4ef0659193044870c731987a6df5cf56b",
         "type": "github"
       },
       "original": {
@@ -712,27 +716,27 @@
     },
     "nixpkgs_7": {
       "locked": {
-        "lastModified": 1714272655,
-        "narHash": "sha256-3/ghIWCve93ngkx5eNPdHIKJP/pMzSr5Wc4rNKE1wOc=",
+        "lastModified": 1717281328,
+        "narHash": "sha256-evZPzpf59oNcDUXxh2GHcxHkTEG4fjae2ytWP85jXRo=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "12430e43bd9b81a6b4e79e64f87c624ade701eaf",
+        "rev": "b3b2b28c1daa04fe2ae47c21bb76fd226eac4ca1",
         "type": "github"
       },
       "original": {
         "owner": "NixOS",
-        "ref": "nixos-23.11",
+        "ref": "nixos-24.05",
         "repo": "nixpkgs",
         "type": "github"
       }
     },
     "nixpkgs_8": {
       "locked": {
-        "lastModified": 1714253743,
-        "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
+        "lastModified": 1717602782,
+        "narHash": "sha256-pL9jeus5QpX5R+9rsp3hhZ+uplVHscNJh8n8VpqscM0=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994",
+        "rev": "e8057b67ebf307f01bdcc8fba94d94f75039d1f6",
         "type": "github"
       },
       "original": {
diff --git a/flake.nix b/flake.nix
index 40bb8b3..7d5fba5 100755
--- a/flake.nix
+++ b/flake.nix
@@ -6,17 +6,21 @@
       url = "github:NixOS/nixpkgs/nixos-unstable";
       #url="path:/Rory-Open-Architecture/nixpkgs";
     };
+
     nixpkgs-rory = {
-      url = "path:/Rory-Open-Architecture/nixpkgs";
-      #url = "github:TheArcaneBrony/nixpkgs/master";
+      #url = "path:/Rory-Open-Architecture/nixpkgs";
+      url = "github:TheArcaneBrony/nixpkgs/master";
     };
+
     nixpkgs-RoryNix = {
       #url = "github:NixOS/nixpkgs/nixos-23.05";
       url = "github:NixOS/nixpkgs/nixos-23.11";
     };
+
     home-manager =  {
       url = "github:nix-community/home-manager/master";
     };
+
     conduit = {
       #url = "gitlab:famedly/conduit";
 
@@ -27,11 +31,12 @@
       # will probably also require you to always build from source.
       #inputs.nixpkgs.follows = "nixpkgs";
     };
+
     conduit-vanilla = {
-      url = "gitlab:famedly/conduit/membership-reason-fixes";
+      url = "gitlab:famedly/conduit/next";
     };
+
     nixos-wsl.url = "github:nix-community/NixOS-WSL";
-    #inputs.nur.url = github:nix-community/NUR;
 
     # Own projects
 
diff --git a/host/Rory-desktop/configuration.nix b/host/Rory-desktop/configuration.nix
index da3d8e3..9f8da16 100644
--- a/host/Rory-desktop/configuration.nix
+++ b/host/Rory-desktop/configuration.nix
@@ -3,25 +3,31 @@
 {
   imports =
     [
+      # base imports
       ../../modules/base-client.nix
       ../../modules/packages/vim.nix
 #      ../../modules/environments/home.nix
       ../../modules/software-templates/profilers.nix
       ./postgres.nix
-      ./mariadb.nix
       ./nginx.nix
+
+      # hardware-specific imports
+      ./optional/hardware-specific/amd.nix
+
+      ./printing.nix
+      ./ollama.nix
     ];
 
-    boot = {
-      kernelPackages = pkgs.linuxPackages_latest;
-      loader = {
-        grub = {
-          enable = true;
-          device = "nodev"; # nodev for EFI only
-          # EFI
-          efiSupport = true;
-          efiInstallAsRemovable = true;
-        };
+  boot = {
+    kernelPackages = pkgs.linuxPackages_latest;
+    loader = {
+      grub = {
+        enable = true;
+        device = "nodev"; # nodev for EFI only
+        # EFI
+        efiSupport = true;
+        efiInstallAsRemovable = true;
+      };
     };
     #readOnlyNixStore = false;
   };
@@ -65,14 +71,15 @@
     xserver = {
       enable = true;
       updateDbusEnvironment = true;
-      videoDrivers = ["nvidia"];
+      #videoDrivers = ["amdgpu"]; #"nvidia"
       #desktopManager.gnome.enable = true;
       libinput.enable = true;
       layout = "us";
       windowManager.i3.enable = true;
       windowManager.i3.extraSessionCommands = ''
         # output from arandr:
-        xrandr --output DP-0 --off --output DP-1 --off --output DP-2 --off --output DP-3 --off --output HDMI-0 --primary --mode 3840x2160 --pos 0x0 --rotate normal --output DP-4 --off --output DP-5 --mode 1920x1080 --pos 3840x1080 --rotate normal
+        #xrandr --output DP-1 --mode 1920x1080 --pos 3840x1080 --rotate normal --output HDMI-1 --mode 3840x2160 --pos 0x0 --rotate normal --output HDMI-2 --off --output DP-2 --off
+        xrandr --output HDMI-1 --mode 3840x2160 --pos 0x0 --rotate normal --primary --output DP-1 --mode 1920x1080 --pos 3840x1080 --rotate normal --output HDMI-2 --off --output DP-2 --off
         ${pkgs.polybarFull}/bin/polybar &
         ${pkgs.dunst}/bin/dunst &
         ${pkgs.feh}/bin/feh --no-fehbg --bg-fill ${../../modules/users/Rory/wallpaper.webp}
@@ -121,13 +128,13 @@
   users.users = {
     Rory = {
       isNormalUser = true;
-      extraGroups = [ "wheel" "lp" "scanner" ];
+      extraGroups = [ "wheel" ];
       packages = with pkgs; [
         #gimp-with-plugins
 
         #xterm
-        gnomeExtensions.vitals
-        gnomeExtensions.runcat
+        #gnomeExtensions.vitals
+        #gnomeExtensions.runcat
       ];
       initialPassword = "password";
     };
@@ -143,15 +150,15 @@
     youtube-music
 
     # - IDEs
-    jetbrains-toolbox
+    #jetbrains-toolbox
     jetbrains.rider
-    jetbrains.webstorm
-    jetbrains.clion
+    #jetbrains.webstorm
+    #jetbrains.clion
     github-copilot-intellij-agent
     
     
-    dbeaver
-    insomnia
+    dbeaver-bin
+    #insomnia
     vscode
 
     # - Utilities
@@ -169,10 +176,6 @@
     steam-run
     steam-acf
 
-    #printing/scanning
-    xsane
-    gnome.simple-scan
-
     # extra packages
     dmenu
 
@@ -184,7 +187,7 @@
     #yuzu-early-access
     wineWowPackages.unstableFull
     winetricks
-    fragments
+    #fragments
     peek
 
     unrar-wrapper
@@ -193,9 +196,10 @@
     (callPackage ../../modules/packages/nheko-git.nix { inherit nhekoSrc; inherit mtxclientSrc; voipSupport = false; })
     #(callPackage ../../modules/packages/mc/server/modpack/curseforge/techopolis-2/5.4.nix { })
 
-    vesktop
+    #vesktop
+    virt-viewer
 
-    (dwarf-fortress-packages.dwarf-fortress-full.override { enableStoneSense = true; enableFPS = true; theme = dwarf-fortress-packages.themes.spacefox; })
+    # (dwarf-fortress-packages.dwarf-fortress-full.override { enableStoneSense = true; enableFPS = true; theme = dwarf-fortress-packages.themes.spacefox; })
   ];
 
   programs.steam.enable = true;
@@ -271,51 +275,8 @@
   };
 
   hardware = {
-    opengl = {
-      enable = true;
-      driSupport = true;
-      driSupport32Bit = true;
-    };
-
-    nvidia = {
-      modesetting.enable = true;
-      powerManagement.enable = false;
-      powerManagement.finegrained = false;
-      open = true;
-      nvidiaSettings = true;
-      nvidiaPersistenced = true;
-      package = config.boot.kernelPackages.nvidiaPackages.stable;
-    };
-
-    sane.enable = true;
-    sane.extraBackends = [ pkgs.hplipWithPlugin pkgs.sane-airscan ];
     pulseaudio.enable = false;
   };
-  programs.system-config-printer.enable = true;
-  services = {
-    gvfs.enable = true;
-    saned.enable = true;
-    system-config-printer.enable = true;
-    ipp-usb.enable = true;
-    printing = {
-      enable = true;
-      browsing = true;
-      drivers = with pkgs; [ hplip ];
-    };
-    avahi = {
-      enable = true;
-      nssmdns = true;
-      reflector = true;
-      publish = {
-        workstation = true;
-        userServices = true;
-        hinfo = true;
-        enable = true;
-        domain = true;
-        addresses = true;
-      };
-    };
-  };
   programs.dconf.enable = true;
   environment.etc."resolv.conf".text = ''
     nameserver 8.8.8.8
@@ -324,20 +285,15 @@
     nameserver 1.0.0.1
     '';
 
-
     #networking.wireguard.interfaces = {
     #  wg-KP-Ran = {
 
       #};
    # };
 
-
-
   virtualisation.libvirtd.enable = true;
   programs.virt-manager.enable = true;
 
-
-  
   system.stateVersion = "22.11"; # DO NOT EDIT!
 }
 
diff --git a/host/Rory-desktop/ollama.nix b/host/Rory-desktop/ollama.nix
new file mode 100755
index 0000000..1770ede
--- /dev/null
+++ b/host/Rory-desktop/ollama.nix
@@ -0,0 +1,20 @@
+{ config, pkgs, lib, ... }:
+
+{
+#  systemd.tmpfiles.rules = [  "d /data/ollama 0750 ostgres postgres" ];
+
+  services.ollama = {
+    enable = true;
+    home = "/data/ollama/home";
+    models = "/data/ollama/home/models";
+    environmentVariables = {
+      OLLAMA_LLM_LIBRARY = "rocm";
+    };
+    writablePaths = [ "/data/ollama/home" ];
+    #listenAddress = "0.0.0.0:11434";
+    host = "0.0.0.0";
+    port = 11434;
+    sandbox = false;
+    acceleration = "rocm";
+  };
+}
diff --git a/host/Rory-desktop/optional/hardware-specific/amd.nix b/host/Rory-desktop/optional/hardware-specific/amd.nix
new file mode 100644
index 0000000..d44766a
--- /dev/null
+++ b/host/Rory-desktop/optional/hardware-specific/amd.nix
@@ -0,0 +1,44 @@
+{ config, pkgs, lib, nhekoSrc, mtxclientSrc, ... }:
+
+{
+  imports =
+    [ ];
+
+boot.initrd.kernelModules = [ "amdgpu" ];
+
+  services = {
+    xserver = {
+      windowManager.i3.extraSessionCommands = ''
+        xrandr --output HDMI-1 --mode 3840x2160 --pos 0x0 --rotate normal --primary --output DP-1 --mode 1920x1080 --pos 3840x1080 --rotate normal --output HDMI-2 --off --output DP-2 --off
+      '';
+      wacom.enable = true;
+    };
+    picom.backend = "glx";
+  };
+
+  environment.systemPackages = with pkgs; [
+    rocmPackages.rocm-smi # useful to have
+  ];
+
+  hardware = {
+    opengl = {
+      enable = true;
+      driSupport = true;
+      driSupport32Bit = true;
+      extraPackages = with pkgs; [
+        rocmPackages.clr.icd
+        amdvlk
+      ];
+      extraPackages32 = with pkgs; [
+        driversi686Linux.amdvlk
+      ];
+    };
+  };
+
+  systemd.tmpfiles.rules = [
+    "L+    /opt/rocm/hip   -    -    -     -    ${pkgs.rocmPackages.clr}"
+  ];
+
+  system.stateVersion = "22.11"; # DO NOT EDIT!
+}
+
diff --git a/host/Rory-desktop/optional/hardware-specific/nvidia.nix b/host/Rory-desktop/optional/hardware-specific/nvidia.nix
new file mode 100644
index 0000000..7278d84
--- /dev/null
+++ b/host/Rory-desktop/optional/hardware-specific/nvidia.nix
@@ -0,0 +1,40 @@
+{ config, pkgs, lib, nhekoSrc, mtxclientSrc, ... }:
+
+{
+  imports =
+    [
+     
+    ];
+
+
+  services = {
+    xserver = {
+      videoDrivers = ["nvidia"];
+      #windowManager.i3.extraSessionCommands = ''
+        # todo: restore
+      #'';
+    };
+    picom.backend = "glx";
+  };
+
+  hardware = {
+    opengl = {
+      enable = true;
+      driSupport = true;
+      driSupport32Bit = true;
+    };
+
+    nvidia = {
+      modesetting.enable = true;
+      powerManagement.enable = false;
+      powerManagement.finegrained = false;
+      open = true;
+      nvidiaSettings = true;
+      nvidiaPersistenced = true;
+      package = config.boot.kernelPackages.nvidiaPackages.stable;
+    };
+  };
+
+  system.stateVersion = "22.11"; # DO NOT EDIT!
+}
+
diff --git a/host/Rory-desktop/printing.nix b/host/Rory-desktop/printing.nix
new file mode 100644
index 0000000..fd33aaa
--- /dev/null
+++ b/host/Rory-desktop/printing.nix
@@ -0,0 +1,51 @@
+{ config, pkgs, lib, ... }:
+
+{
+  imports = [ ];
+
+  users.users = {
+    Rory = {
+      extraGroups = [ "lp" "scanner" ];
+    };
+  };
+
+  environment.systemPackages = with pkgs; [
+    xsane
+    gnome.simple-scan
+  ];
+
+  hardware = {
+    sane.enable = true;
+    sane.extraBackends = [ pkgs.hplipWithPlugin pkgs.sane-airscan ];
+  };
+
+  programs.system-config-printer.enable = true;
+
+  services = {
+    gvfs.enable = true;
+    saned.enable = true;
+    system-config-printer.enable = true;
+    ipp-usb.enable = true;
+    printing = {
+      enable = true;
+      browsing = true;
+      drivers = with pkgs; [ hplip ];
+    };
+    avahi = {
+      enable = true;
+      nssmdns = true;
+      reflector = true;
+      publish = {
+        workstation = true;
+        userServices = true;
+        hinfo = true;
+        enable = true;
+        domain = true;
+        addresses = true;
+      };
+    };
+  };
+
+  system.stateVersion = "22.11"; # DO NOT EDIT!
+}
+
diff --git a/host/Rory-nginx/services/nginx/localhost/matrix-rory-gay.nix b/host/Rory-nginx/services/nginx/localhost/matrix-rory-gay.nix
index 0ab8e9a..3e48d0f 100644
--- a/host/Rory-nginx/services/nginx/localhost/matrix-rory-gay.nix
+++ b/host/Rory-nginx/services/nginx/localhost/matrix-rory-gay.nix
@@ -26,9 +26,10 @@
 	locations."~ ^/_matrix/client/(r0|v3)/sync$" = {
 		proxyPass = "http://generic_workers_upstream$request_uri";
     extraConfig = ''
-			proxy_read_timeout 3600;
-			proxy_connect_timeout 3600;
-			proxy_send_timeout 3600; 
+			# We want to wait for 15 minutes here...
+			proxy_read_timeout 54000;
+			proxy_connect_timeout 54000;
+			proxy_send_timeout 54000;
 		'';
 	};
 	locations."~ ^/_matrix/client/(api/v1|r0|v3)/events$" = {
diff --git a/host/Rory-nginx/services/ollama.nix b/host/Rory-nginx/services/ollama.nix
index 8151fe3..8480968 100755
--- a/host/Rory-nginx/services/ollama.nix
+++ b/host/Rory-nginx/services/ollama.nix
@@ -8,7 +8,7 @@
     home = "/data/ollama/home";
     models = "/data/ollama/home/models";
     environmentVariables = {
-      OLLAMA_LLM_LIBRARY = "cpu";
+      OLLAMA_LLM_LIBRARY = "cpu_avx2";
     };
     writablePaths = [ "/data/ollama/home" ];
     listenAddress = "0.0.0.0:11434";
diff --git a/modules/users/Rory.nix b/modules/users/Rory.nix
index c6a4ed6..414a70c 100755
--- a/modules/users/Rory.nix
+++ b/modules/users/Rory.nix
@@ -10,7 +10,7 @@
       git
       lsd
       duf
-      btop
+      (btop.override { rocmSupport = true; })
       htop
       kitty.terminfo
       tmux