about summary refs log tree commit diff
path: root/modules/workstation
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-01-13 08:36:07 +0000
committerAlyssa Ross <hi@alyssa.is>2021-01-13 08:52:28 +0000
commit9f55e8bc0fb7cf1b0204652871808130a45e8eee (patch)
tree94ee10ed32721a43261d3b696d5597b4457b5028 /modules/workstation
parent1fb3ddfe362432c508409a81060dfd4bbb2ce31f (diff)
downloadnixlib-9f55e8bc0fb7cf1b0204652871808130a45e8eee.tar
nixlib-9f55e8bc0fb7cf1b0204652871808130a45e8eee.tar.gz
nixlib-9f55e8bc0fb7cf1b0204652871808130a45e8eee.tar.bz2
nixlib-9f55e8bc0fb7cf1b0204652871808130a45e8eee.tar.lz
nixlib-9f55e8bc0fb7cf1b0204652871808130a45e8eee.tar.xz
nixlib-9f55e8bc0fb7cf1b0204652871808130a45e8eee.tar.zst
nixlib-9f55e8bc0fb7cf1b0204652871808130a45e8eee.zip
modules/home: remove
I think when I implemented this I didn't know about tmpfiles.d(5).
Now I do, so let's use that instead.

I don't think the imperativeNix option is necessary any more since the
home directory is created read-only, but if it turns out that
.nix-defexpr and .nix-profile are coming back, I can look into the
best way to solve that then.
Diffstat (limited to 'modules/workstation')
-rw-r--r--modules/workstation/dino/default.nix6
-rw-r--r--modules/workstation/emacs/default.nix6
-rw-r--r--modules/workstation/gnupg/default.nix37
-rw-r--r--modules/workstation/lorri/default.nix6
-rw-r--r--modules/workstation/mail/default.nix7
-rw-r--r--modules/workstation/mail/mutt/default.nix11
-rw-r--r--modules/workstation/podman/default.nix8
-rw-r--r--modules/workstation/weechat/default.nix13
-rw-r--r--modules/workstation/windowing/firefox/default.nix19
-rw-r--r--modules/workstation/windowing/gnome-mines/default.nix6
10 files changed, 75 insertions, 44 deletions
diff --git a/modules/workstation/dino/default.nix b/modules/workstation/dino/default.nix
index 1c483d4fc473..74b49b07f1d8 100644
--- a/modules/workstation/dino/default.nix
+++ b/modules/workstation/dino/default.nix
@@ -1,7 +1,9 @@
-{ pkgs, ... }:
+{ config, pkgs, ... }:
 
 {
   environment.systemPackages = with pkgs; [ dino ];
 
-  home.qyliss.dirs."state/dino" = {};
+  systemd.tmpfiles.rules = [
+    "d ${config.users.users.qyliss.home}/state/dino 0700 qyliss qyliss"
+  ];
 }
diff --git a/modules/workstation/emacs/default.nix b/modules/workstation/emacs/default.nix
index 97f2f36b5f57..71523f2b0029 100644
--- a/modules/workstation/emacs/default.nix
+++ b/modules/workstation/emacs/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... }:
+{ config, pkgs, ... }:
 
 {
   environment.systemPackages = with pkgs; [
@@ -27,7 +27,9 @@
     ]))
   ];
 
-  home.qyliss.dirs."state/emacs" = {};
+  systemd.tmpfiles.rules = [
+    "d ${config.users.users.qyliss.home}/state/emacs 0700 qyliss qyliss"
+  ];
 
   users.users.qyliss.xdg.config.paths."emacs" = with pkgs;
     runCommandNoCC ".emacs.d" {
diff --git a/modules/workstation/gnupg/default.nix b/modules/workstation/gnupg/default.nix
index 2f47ddf77b29..eda898314258 100644
--- a/modules/workstation/gnupg/default.nix
+++ b/modules/workstation/gnupg/default.nix
@@ -1,21 +1,26 @@
-{ pkgs, ... }:
+{ config, pkgs, ... }:
+
+let
+  gnupgHome = "${config.users.users.qyliss.home}/state/gnupg";
+
+  pinentryProgram =
+    if pkgs.stdenv.isDarwin then
+      "/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac"
+    else
+      "${pkgs.pinentry.qt}/bin/pinentry";
+
+  gpg-agent-conf = pkgs.writeText "gpg-agent.conf" ''
+    pinentry-program ${pinentryProgram}
+  '';
+in
 
 {
-  home.qyliss.dirs."state/gnupg".activationScripts.config =
-    let
-      pinentry = if pkgs.stdenv.isDarwin then
-        "/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac"
-      else
-        "${pkgs.pinentry.qt}/bin/pinentry";          
-      
-      gpg-agent-conf = pkgs.writeText "gpg-agent.conf" ''
-        pinentry-program ${pinentry}
-      '';
-    in ''
-      ln -sf ${./dirmngr.conf} dirmngr.conf
-      ln -sf ${./gpg.conf} gpg.conf
-      ln -sf ${gpg-agent-conf} gpg-agent.conf
-    '';
+  systemd.tmpfiles.rules = [
+    "d ${gnupgHome} 0700 qyliss qyliss"
+    "L+ ${gnupgHome}/dirmngr.conf   - - - - ${./dirmngr.conf}"
+    "L+ ${gnupgHome}/gpg.conf       - - - - ${./gpg.conf}"
+    "L+ ${gnupgHome}/gpg-agent.conf - - - - ${gpg-agent-conf}"
+  ];
 
   environment.systemPackages = with pkgs; [ gnupg pinentry ];
 
diff --git a/modules/workstation/lorri/default.nix b/modules/workstation/lorri/default.nix
index 4008934dab01..c740796bafbb 100644
--- a/modules/workstation/lorri/default.nix
+++ b/modules/workstation/lorri/default.nix
@@ -1,7 +1,9 @@
-{ ... }:
+{ config, ... }:
 
 {
-  home.qyliss.dirs."state/lorri" = {};
+  systemd.tmpfiles.rules = [
+    "d ${config.users.users.qyliss.home}/state/lorri 0700 qyliss qyliss"
+  ];
 
   services.lorri.enable = true;
 
diff --git a/modules/workstation/mail/default.nix b/modules/workstation/mail/default.nix
index 8132a88bcc4e..ff34fab8b98e 100644
--- a/modules/workstation/mail/default.nix
+++ b/modules/workstation/mail/default.nix
@@ -5,8 +5,7 @@
 
   environment.systemPackages = with pkgs; [ isync ];
 
-  home.qyliss.dirs.mail = {
-    group = "qyliss";
-    permissions = "0770";
-  };
+  systemd.tmpfiles.rules = [
+    "d ${config.users.users.qyliss.home}/mail 0770 qyliss qyliss"
+  ];
 }
diff --git a/modules/workstation/mail/mutt/default.nix b/modules/workstation/mail/mutt/default.nix
index 00ca6e86f4fc..96c0e6867545 100644
--- a/modules/workstation/mail/mutt/default.nix
+++ b/modules/workstation/mail/mutt/default.nix
@@ -1,9 +1,16 @@
-{ pkgs, ... }:
+{ config, pkgs, ... }:
+
+let
+  stateDir = "${config.users.users.qyliss.home}/state/mutt";
+in
 
 {
   environment.systemPackages = with pkgs; [ neomutt ];
 
   users.users.qyliss.xdg.config.paths."mutt/muttrc" = pkgs.copyPathToStore ./muttrc;
 
-  home.qyliss.dirs."state/mutt/header_cache" = {};
+  systemd.tmpfiles.rules = [
+    "d ${stateDir}              0700 qyliss qyliss"
+    "d ${stateDir}/header_cache 0700 qyliss qyliss"
+  ];
 }
diff --git a/modules/workstation/podman/default.nix b/modules/workstation/podman/default.nix
index 67c475d45233..9e64fcb4807c 100644
--- a/modules/workstation/podman/default.nix
+++ b/modules/workstation/podman/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... }:
+{ config, pkgs, ... }:
 
 {
   environment.etc."containers/libpod.conf".text = ''
@@ -39,6 +39,8 @@
       graphroot = "/home/state/podman/containers/storage"
     '';
 
-  home.qyliss.dirs."state/containers" = {};
-  home.qyliss.dirs."state/podman" = {};
+  systemd.tmpfiles.rules = [
+    "d ${config.users.users.qyliss.home}/state/containers 0700 qyliss qyliss"
+    "d ${config.users.users.qyliss.home}/state/podman     0700 qyliss qyliss"
+  ];
 }
diff --git a/modules/workstation/weechat/default.nix b/modules/workstation/weechat/default.nix
index 03219a772cce..135442b6b2ec 100644
--- a/modules/workstation/weechat/default.nix
+++ b/modules/workstation/weechat/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, lib, ... }:
+{ config, pkgs, lib, ... }:
 
 with lib;
 
@@ -91,6 +91,8 @@ let
         -r /exit
   '';
 
+  weechatHome = "${config.users.users.qyliss.home}/state/weechat";
+
 in
 
 {
@@ -107,12 +109,15 @@ in
     })
   ];
 
-  home.qyliss.dirs."state/weechat".activationScripts.config = ''
+  systemd.tmpfiles.packages = [ (pkgs.runCommandNoCC "weechat-tmpfiles" {} ''
+    conf=$out/lib/tmpfiles.d/weechat.conf
+    mkdir -p $(dirname $conf)
+    echo "d ${weechatHome} 0700 qyliss qyliss" > $conf
     for file in ${cfg}/*.conf
     do
         if [ "$file" != ${cfg}/sec.conf ]
-        then ln -sf $file $(basename $file)
+        then echo "L+ ${weechatHome}/$(basename "$file") - - - - $file" >> $conf
         fi
     done
-  '';
+  '') ];
 }
diff --git a/modules/workstation/windowing/firefox/default.nix b/modules/workstation/windowing/firefox/default.nix
index 0b2bc0560ae5..42f29c778965 100644
--- a/modules/workstation/windowing/firefox/default.nix
+++ b/modules/workstation/windowing/firefox/default.nix
@@ -1,12 +1,17 @@
-{ pkgs, ... }:
+{ config, pkgs, ... }:
+
+let
+  stateDir = "${config.users.users.qyliss.home}/state/mozilla";
+in
 
 {
-  home.qyliss.dirs.state.activationScripts.profile = ''
-    install -m 0700 -o qyliss -g $(id -gn qyliss) \
-        -d mozilla{,/firefox{,/default}}
-    ln -sf ${./profiles.ini} mozilla/firefox/profiles.ini
-    ln -sf ${./user.js} mozilla/firefox/default/user.js
-  '';
+  systemd.tmpfiles.rules = [
+    "d ${stateDir}                 0700 qyliss qyliss"
+    "d ${stateDir}/firefox         0700 qyliss qyliss"
+    "d ${stateDir}/firefox/default 0700 qyliss qyliss"
+    "L+ ${stateDir}/firefox/profiles.ini - - - - ${./profiles.ini}"
+    "L+ ${stateDir}/firefox/user.js      - - - - ${./user.js}"
+  ];
 
   environment.systemPackages = with pkgs; [ firefox-wayland ];
 
diff --git a/modules/workstation/windowing/gnome-mines/default.nix b/modules/workstation/windowing/gnome-mines/default.nix
index a2376676d007..d9800142bc29 100644
--- a/modules/workstation/windowing/gnome-mines/default.nix
+++ b/modules/workstation/windowing/gnome-mines/default.nix
@@ -1,7 +1,9 @@
-{ pkgs, ... }:
+{ config, pkgs, ... }:
 
 {
   environment.systemPackages = with pkgs; [ gnome3.gnome-mines ];
 
-  home.qyliss.dirs."state/gnome-mines" = {};
+  systemd.tmpfiles.rules = [
+    "d ${config.users.users.qyliss.home}/state/gnome-mines 0700 qyliss qyliss"
+  ];
 }