# {{{autogen}}} { lib, config, pkgs, flakeRoot, ... }: let username = config.defaultUser or "henrov"; homeDir = "/home/${username}"; # Portal backends basePortal = pkgs.xdg-desktop-portal-gtk; hyprlandPortal = pkgs.xdg-desktop-portal-hyprland; in { ################################# # XDG Desktop Portals (system) ################################# xdg.portal.enable = true; xdg.portal.extraPortals = [ basePortal hyprlandPortal ]; xdg.portal.config = { "org.freedesktop.impl.portal.Screencast".backend = "hyprland"; }; ################################# # System packages ################################# environment.systemPackages = [ basePortal hyprlandPortal ]; ################################# # Home Manager user config ################################# home-manager.users.${username} = { ################################# # User packages ################################# home.packages = [ basePortal hyprlandPortal ]; ################################# # XDG user directories (HOME ONLY) ################################# xdg.userDirs = { enable = true; createDirectories = true; desktop = null; download = "${homeDir}/Downloads"; documents = "${homeDir}/Documents"; pictures = "${homeDir}/Pictures"; music = null; publicShare = null; templates = "${homeDir}/Experiments"; videos = "${homeDir}/Videos"; extraConfig = { XDG_PROJECTS_DIR = "${homeDir}/Projects"; XDG_WORK_DIR = "${homeDir}/Work"; }; }; }; }