summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--modules/plasma.nix42
-rw-r--r--roles/remote-server.nix45
2 files changed, 71 insertions, 16 deletions
diff --git a/modules/plasma.nix b/modules/plasma.nix
new file mode 100644
index 0000000..8e64efb
--- /dev/null
+++ b/modules/plasma.nix
@@ -0,0 +1,42 @@
+{ pkgs, ... }:
+
+{
+  services.xserver.enable = true;
+  services.xserver.excludePackages = [ pkgs.xterm ];
+
+  services.displayManager.sddm = {
+    enable = true;
+    wayland.enable = true;
+    autoLogin = {
+      enable = true;
+      user = "mel";
+    };
+  };
+
+  services.desktopManager.plasma6.enable = true;
+
+  programs.gamescope = {
+    enable = true;
+    capSysNice = true;
+  };
+
+  environment.systemPackages = with pkgs; [
+    kdePackages.kde-gtk-config
+    kdePackages.sddm-kcm
+  ];
+
+  # dark theme for GTK apps under Plasma
+  environment.etc = {
+    "xdg/gtk-2.0/gtkrc".text = ''
+      gtk-application-prefer-dark-theme = 1
+    '';
+    "xdg/gtk-3.0/settings.ini".text = ''
+      [Settings]
+      gtk-application-prefer-dark-theme = 1
+    '';
+    "xdg/gtk-4.0/settings.ini".text = ''
+      [Settings]
+      gtk-application-prefer-dark-theme = 1
+    '';
+  };
+}
diff --git a/roles/remote-server.nix b/roles/remote-server.nix
index 6091bd7..f27721e 100644
--- a/roles/remote-server.nix
+++ b/roles/remote-server.nix
@@ -1,15 +1,42 @@
 {
+  pkgs,
   ...
 }:
+
 {
   imports = [
-    # we inherit from desktop
-    ./desktop.nix
+    ../modules/common.nix
+    ../modules/plasma.nix
+    ../modules/fonts.nix
+    ../modules/flatpak.nix
+    ../modules/hardware-keys.nix
 
     # primary streaming setup
     ../modules/sunshine.nix
   ];
 
+  services = {
+    tailscale = {
+      enable = true;
+      useRoutingFeatures = "both";
+      extraUpFlags = [ "--ssh" ];
+    };
+    openssh = {
+      enable = true;
+      openFirewall = true;
+    };
+  };
+
+  programs = {
+    steam = {
+      enable = true;
+      remotePlay.openFirewall = true;
+      dedicatedServer.openFirewall = true;
+      localNetworkGameTransfers.openFirewall = true;
+    };
+    virt-manager.enable = true;
+  };
+
   virtualisation = {
     docker = {
       enable = true;
@@ -20,19 +47,5 @@
     };
   };
 
-  programs.steam = {
-    enable = true;
-    remotePlay.openFirewall = true;
-    dedicatedServer.openFirewall = true;
-    localNetworkGameTransfers.openFirewall = true;
-  };
-
-  services.openssh = {
-    enable = true;
-    openFirewall = true;
-  };
-
-  # override desktop configuration, because we do run SSH
-  # on remote-servers.
   age.identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
 }