about summary refs log tree commit diff
path: root/modules
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2017-06-22 01:41:02 +0200
committeraszlig <aszlig@redmoonstudios.org>2017-06-22 02:05:31 +0200
commitfc432e46a22494e1cafb53b0555da92301815921 (patch)
tree4d4b2db973c15e2db8a13e8be96929e30492bd56 /modules
parentbc67f3bb0f2423829711f89aa2087acf08c9819c (diff)
Factor out devhell's services into vuizvui
I've added another profile called "services", which now resembles the
services_common.nix from the previous configuration.

The machine-specific definitions now reside directly inside the
machine's Nix expressions for now, until they're properly refactored.

Most of these machine-specific values can be easily modularized,
especially the xrdb config, for example having one base xrdb module
and only small machine-specific definitions if stuff needs to be
overridden.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Cc: @devhell
Diffstat (limited to 'modules')
-rw-r--r--modules/module-list.nix1
-rw-r--r--modules/user/devhell/profiles/services.nix88
2 files changed, 89 insertions, 0 deletions
diff --git a/modules/module-list.nix b/modules/module-list.nix
index 33ac6af6..fbd5334c 100644
--- a/modules/module-list.nix
+++ b/modules/module-list.nix
@@ -30,6 +30,7 @@
   ./user/aszlig/services/vlock
   ./user/aszlig/system/kernel.nix
   ./user/devhell/profiles/base.nix
+  ./user/devhell/profiles/services.nix
   ./user/openlab/base.nix
   ./user/openlab/labtops.nix
   ./user/openlab/stackenblocken.nix
diff --git a/modules/user/devhell/profiles/services.nix b/modules/user/devhell/profiles/services.nix
new file mode 100644
index 00000000..86af3eca
--- /dev/null
+++ b/modules/user/devhell/profiles/services.nix
@@ -0,0 +1,88 @@
+{ config, pkgs, lib, ... }:
+
+let
+  cfg = config.vuizvui.user.devhell.profiles.services;
+
+in {
+  options.vuizvui.user.devhell.profiles.services = {
+    enable = lib.mkEnableOption "Services profile for devhell";
+  };
+
+  config = lib.mkIf cfg.enable {
+    virtualisation = {
+      virtualbox = {
+        host = {
+          enable = true;
+          enableHardening = true;
+        };
+      };
+      libvirtd = {
+        enable = true;
+        enableKVM = true;
+      };
+    };
+
+    services = {
+      gpm.enable = true;
+      openssh.enable = true;
+      haveged.enable = true;
+      thermald.enable = true;
+      udisks2.enable = true;
+      redshift = {
+        enable = true;
+        latitude = "51.2750";
+        longitude = "1.0870";
+      };
+    };
+
+    services.xserver = {
+      displayManager.lightdm.enable = true;
+      desktopManager.xterm.enable = false;
+      desktopManager.default = "none";
+    };
+
+    services.xserver.windowManager = {
+      i3.enable = true;
+      default = "i3";
+    };
+
+    services.syncthing = {
+      enable = true;
+      user = "dev";
+    };
+
+    services.journald.extraConfig = ''
+      SystemMaxUse = 50M
+    '';
+
+    services.psd = {
+      enable = false;
+      users = [ "dev" ];
+      browsers = [ "chromium" ];
+    };
+
+    services.mpd = {
+      enable = true;
+      extraConfig = ''
+        input {
+          plugin "curl"
+        }
+
+        audio_output {
+          type "fifo"
+          name "FIFO Output"
+          path "/tmp/mpd.fifo"
+          format "44100:16:2"
+        }
+
+        audio_output {
+          type "pulse"
+          name "Pulse Output"
+          server "127.0.0.1"
+        }
+
+        replaygain "album"
+      '';
+    };
+  };
+}