From 6cad08b8f37d05f81b5de0a2c64ffe6f8bcc72af Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 5 May 2025 21:14:42 +0200 Subject: [PATCH] home/homedir-structure: use modern tmpfiles api --- home/config/ensure-homedir-structure.nix | 55 +++++++++++++++--------- 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/home/config/ensure-homedir-structure.nix b/home/config/ensure-homedir-structure.nix index 80fbdf8..23d028d 100644 --- a/home/config/ensure-homedir-structure.nix +++ b/home/config/ensure-homedir-structure.nix @@ -1,27 +1,40 @@ { config, ... }: -let - home = config.home.homeDirectory; - user = config.home.username; -in { - systemd.user.tmpfiles.rules = [ - "d ${home}/SD - ${user} - - -" - "d ${home}/ctf - ${user} - - -" - "d ${home}/git - ${user} - - -" - "d ${home}/pvv - ${user} - - -" - "d ${home}/work - ${user} - - -" +{ + systemd.user.tmpfiles.settings."05-homedir" = let + home = config.home.homeDirectory; + user = config.home.username; - "d ${home}/pictures/icons - ${user} - - -" - "d ${home}/pictures/photos - ${user} - - -" - "d ${home}/pictures/screenshots - ${user} - - -" - "d ${home}/pictures/stickers - ${user} - - -" - "d ${home}/pictures/wallpapers - ${user} - - -" + defaultDirConf = { + d = { + inherit user; + }; + }; - "d ${home}/documents/books - ${user} - - -" - "d ${home}/documents/scans - ${user} - - -" + symlink = target: { + L = { + inherit user; + argument = target; + }; + }; + in { + "${home}/SD" = defaultDirConf; + "${home}/ctf" = defaultDirConf; + "${home}/git" = defaultDirConf; + "${home}/pvv" = defaultDirConf; + "${home}/work" = defaultDirConf; - "L ${home}/Downloads - ${user} - - ${home}/downloads" + "${home}/pictures/icons" = defaultDirConf; + "${home}/pictures/photos" = defaultDirConf; + "${home}/pictures/screenshots" = defaultDirConf; + "${home}/pictures/stickers" = defaultDirConf; + "${home}/pictures/wallpapers" = defaultDirConf; - "L ${config.xdg.dataHome}/wallpapers - ${user} - - ${home}/pictures/wallpapers" - "L ${config.home.sessionVariables.TEXMFHOME} - ${user} - - ${home}/git/texmf" - ]; + "${home}/documents/books" = defaultDirConf; + "${home}/documents/scans" = defaultDirConf; + + "${home}/Downloads" = symlink "${home}/downloads"; + + "${config.xdg.dataHome}/wallpapers" = symlink "${home}/pictures/wallpapers"; + "${config.home.sessionVariables.TEXMFHOME}" = symlink "${home}/git/texmf"; + }; }