Files
nixos/Droidnix/generated/modules/traveldroid/system/xdg-user-dirs.nix
T
2026-04-20 19:30:52 +02:00

54 lines
1.6 KiB
Nix

# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{ lib, config, pkgs, ... }:
let
cfg = config.xdg.userDirs;
in
{
options.xdg.userDirs = {
enable = lib.mkEnableOption "XDG User Directories";
directories = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
default = {
DESKTOP = "Desktop";
DOWNLOAD = "Downloads";
TEMPLATES = "Templates";
PUBLICSHARE = "Public";
DOCUMENTS = "Documents";
MUSIC = "Music";
PICTURES = "Pictures";
VIDEOS = "Videos";
};
description = ''
XDG User Directories.
Specify the subdirectory names for each XDG user directory type.
'';
};
};
config = lib.mkIf cfg.enable {
environment.sessionVariables = lib.genAttrs cfg.directories (
dirName: dirValue:
let
dirUpper = builtins.toUpper dirName;
dataHome = config.xdg.dataHome or ("/home/" + (config.defaultUser or "henrov"));
in
"XDG_${dirUpper}_DIR" -> "${dataHome}/${dirValue}"
);
system.activationScripts.xdgUserDirs = let
dataHome = config.xdg.dataHome or ("/home/" + (config.defaultUser or "henrov"));
userName = builtins.elemAt (builtins.attrNames config.users.users) 0 or "henrov";
in ''
mkdir -p ${builtins.toJSON (
builtins.attrValues (
builtins.mapAttrs (dirName: dirValue: "${dataHome}/${dirValue}")
cfg.directories
)
)}
chown -R ${userName}: "${dataHome}"
'';
};
}