about summary refs log tree commit diff
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2017-01-02 14:48:45 +0100
committeraszlig <aszlig@redmoonstudios.org>2017-01-02 15:25:56 +0100
commit57ae89a63d1d21884861df02b5b552696353eb7a (patch)
tree2581ff4ca52492ee7b126d7eb5c411343aa11b0b
parent64daeabbb7b85f1c24156173673f8bfb9c3d5fcb (diff)
machines/managed: Implement a preliminary profile
Currently I just needed to support HP printers and scanners among all
the managed machines, so I thought it would be a good oportunity to
start a common profile for end user machines.

Right now there isn't that much factored out yet, but instead of copy &
pasting the printer/scanner config into all three machines I'm putting
it into the profile.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
-rw-r--r--machines/aszlig/managed/brawndo.nix10
-rw-r--r--machines/aszlig/managed/notsure.nix6
-rw-r--r--machines/aszlig/managed/tyree.nix10
-rw-r--r--modules/module-list.nix1
-rw-r--r--modules/user/aszlig/profiles/managed.nix39
5 files changed, 49 insertions, 17 deletions
diff --git a/machines/aszlig/managed/brawndo.nix b/machines/aszlig/managed/brawndo.nix
index ae7a361c..33b74be0 100644
--- a/machines/aszlig/managed/brawndo.nix
+++ b/machines/aszlig/managed/brawndo.nix
@@ -89,8 +89,7 @@ in {
 
   services = {
     deluge.enable = true;
-    printing.enable = true;
-    printing.drivers = [ pkgs.gutenprint pkgs.hplip pkgs.cups-bjnp ];
+    printing.drivers = [ pkgs.cups-bjnp ];
     tlp.enable = true;
 
     xserver = {
@@ -110,11 +109,8 @@ in {
 
   time.timeZone = "Europe/Berlin";
 
-  users.users.dwenola = {
-    isNormalUser = true;
-    uid = 1000;
-    extraGroups = [ "video" "wheel" "networkmanager" ];
-  };
+  vuizvui.user.aszlig.profiles.managed.enable = true;
+  vuizvui.user.aszlig.profiles.managed.mainUser = "dwenola";
 
   vuizvui.user.aszlig.programs.vim.enable = true;
   vuizvui.enableGlobalNixpkgsConfig = true;
diff --git a/machines/aszlig/managed/notsure.nix b/machines/aszlig/managed/notsure.nix
index 758f3c72..7b129839 100644
--- a/machines/aszlig/managed/notsure.nix
+++ b/machines/aszlig/managed/notsure.nix
@@ -70,8 +70,7 @@ in {
 
   services = {
     deluge.enable = true;
-    printing.enable = true;
-    printing.drivers = [ pkgs.gutenprint pkgs.hplip pkgs.cups-bjnp ];
+    printing.drivers = [ pkgs.cups-bjnp ];
     tlp.enable = true;
 
     xserver = {
@@ -88,6 +87,9 @@ in {
 
   time.timeZone = "Europe/Berlin";
 
+  vuizvui.user.aszlig.profiles.managed.enable = true;
+  vuizvui.user.aszlig.profiles.managed.mainUser = "dwenola";
+
   vuizvui.user.aszlig.programs.vim.enable = true;
   vuizvui.enableGlobalNixpkgsConfig = true;
 }
diff --git a/machines/aszlig/managed/tyree.nix b/machines/aszlig/managed/tyree.nix
index d7ee1cea..27a044b5 100644
--- a/machines/aszlig/managed/tyree.nix
+++ b/machines/aszlig/managed/tyree.nix
@@ -67,9 +67,6 @@
   services.openssh.enable = true;
   services.tlp.enable = true;
 
-  services.printing.enable = true;
-  services.printing.drivers = [ pkgs.gutenprint pkgs.hplip ];
-
   services.xserver.enable = true;
   services.xserver.layout = "de";
   services.xserver.xkbOptions = "eurosign:e,caps:none";
@@ -80,11 +77,8 @@
 
   time.timeZone = "Europe/Berlin";
 
-  users.users.bla = {
-    isNormalUser = true;
-    uid = 1000;
-    extraGroups = [ "video" "wheel" "networkmanager" ];
-  };
+  vuizvui.user.aszlig.profiles.managed.enable = true;
+  vuizvui.user.aszlig.profiles.managed.mainUser = "bla";
 
   vuizvui.hardware.t100ha.enable = true;
   vuizvui.user.aszlig.programs.vim.enable = true;
diff --git a/modules/module-list.nix b/modules/module-list.nix
index c4483938..7103436a 100644
--- a/modules/module-list.nix
+++ b/modules/module-list.nix
@@ -13,6 +13,7 @@
   ./services/starbound.nix
   ./system/iso.nix
   ./user/aszlig/profiles/base.nix
+  ./user/aszlig/profiles/managed.nix
   ./user/aszlig/profiles/workstation
   ./user/aszlig/programs/gajim
   ./user/aszlig/programs/git
diff --git a/modules/user/aszlig/profiles/managed.nix b/modules/user/aszlig/profiles/managed.nix
new file mode 100644
index 00000000..4ad4d897
--- /dev/null
+++ b/modules/user/aszlig/profiles/managed.nix
@@ -0,0 +1,39 @@
+{ pkgs, unfreeAndNonDistributablePkgs, config, lib, ... }:
+
+let
+  inherit (lib) mkIf mkEnableOption mkOption;
+  cfg = config.vuizvui.user.aszlig.profiles.managed;
+  inherit (cfg) mainUser;
+
+in {
+  options.vuizvui.user.aszlig.profiles.managed = {
+    enable = mkEnableOption "common profile for aszlig's managed machines";
+    mainUser = mkOption {
+      example = "foobar";
+      description = ''
+        Main user account of the managed system.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    # Printing for the most common printers among the managed machines.
+    services.printing.enable = true;
+    services.printing.drivers = [
+      pkgs.gutenprint
+      unfreeAndNonDistributablePkgs.hplipWithPlugin
+    ];
+
+    # And also most common scanners are also HP ones.
+    hardware.sane.enable = true;
+    hardware.sane.extraBackends = [
+      unfreeAndNonDistributablePkgs.hplipWithPlugin
+    ];
+
+    users.users.${mainUser} = {
+      isNormalUser = true;
+      uid = 1000;
+      extraGroups = [ "networkmanager" "scanner" "video" "wheel" ];
+    };
+  };
+}