From 7fa711c4fa8992ed92fa0e2e5c169bdeb4de62b9 Mon Sep 17 00:00:00 2001
From: lassulus <lass@aidsballs.de>
Date: Thu, 16 Jul 2015 15:49:45 +0200
Subject: [PATCH] 3 lass.urxvtd: init

---
 3modules/lass/urxvtd.nix | 55 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)
 create mode 100644 3modules/lass/urxvtd.nix

diff --git a/3modules/lass/urxvtd.nix b/3modules/lass/urxvtd.nix
new file mode 100644
index 000000000..469616a9f
--- /dev/null
+++ b/3modules/lass/urxvtd.nix
@@ -0,0 +1,55 @@
+{ config, lib, pkgs, ... }:
+
+let
+in
+
+with builtins;
+with lib;
+
+{
+  options = {
+    services.urxvtd = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Enable urxvtd per user";
+      };
+      users = mkOption {
+        type = types.listOf types.string;
+        default = [];
+        description = "users to run urxvtd for";
+      };
+      urxvtPackage = mkOption {
+        type = types.package;
+        default = pkgs.rxvt_unicode;
+        description = "urxvt package to use";
+      };
+    };
+  };
+
+  config = 
+    let
+      cfg = config.services.urxvtd;
+      users = cfg.users;
+      urxvt = cfg.urxvtPackage;
+      mkService = user: {
+        description = "urxvt terminal daemon";
+        wantedBy = [ "multi-user.target" ];
+        restartIfChanged = false;
+        path = [ pkgs.xlibs.xrdb ];
+        environment = {
+          DISPLAY = ":0";
+          URXVT_PERL_LIB = "${urxvt}/lib/urxvt/perl";
+        };
+        serviceConfig = {
+          Restart = "always";
+          User = user;
+          ExecStart = "${urxvt}/bin/urxvtd";
+        };
+      };
+    in
+      mkIf cfg.enable {
+        environment.systemPackages = [ urxvt ];
+        systemd.services = listToAttrs (map (u: { name = "${u}-urxvtd"; value = mkService u; }) users);
+      };
+}