{ flake.modules.homeManager.desktop-commands = { lib, ... }: { options.desktop = { commands = { browser = lib.mkOption { type = lib.types.nonEmptyListOf lib.types.nonEmptyStr; }; launcher = lib.mkOption { type = lib.types.nonEmptyListOf lib.types.nonEmptyStr; }; terminal = lib.mkOption { type = lib.types.nonEmptyListOf lib.types.nonEmptyStr; }; }; autostart = lib.mkOption { type = lib.types.listOf (lib.types.nonEmptyListOf lib.types.nonEmptyStr); default = [ ]; }; }; }; flake.modules.homeManager.vivaldi = { lib, pkgs, ... }: let command = lib.getExe pkgs.vivaldi; in { desktop.commands.browser = [ command ]; home = { packages = [ pkgs.vivaldi ]; sessionVariables.BROWSER = command; }; xdg.mimeApps.defaultApplicationPackages = [ pkgs.vivaldi ]; }; flake.modules.homeManager.nautilus = { config, pkgs, ... }: { home.packages = [ pkgs.nautilus ]; gtk.gtk3.bookmarks = [ "sftp://${config.facts.topology.server.sshAlias} Orion VPS" ]; xdg.mimeApps.defaultApplicationPackages = [ pkgs.nautilus ]; }; flake.modules.homeManager.imv = { pkgs, ... }: { programs.imv.enable = true; xdg.mimeApps.defaultApplicationPackages = [ pkgs.imv ]; }; flake.modules.homeManager.sioyek = { pkgs, ... }: { programs.sioyek.enable = true; xdg.mimeApps.defaultApplicationPackages = [ pkgs.sioyek ]; }; flake.modules.homeManager.discord = { programs.discord = { enable = true; settings.SKIP_HOST_UPDATE = true; }; }; flake.modules.homeManager.workstation-apps = { pkgs, ... }: { home.packages = with pkgs; [ spotify unzip dbeaver-bin onlyoffice-desktopeditors pinta zellij ]; }; flake.modules.homeManager.xdg = { config, ... }: let homeDir = config.home.homeDirectory; localDir = "${homeDir}/.local"; mediaDir = "${homeDir}/media"; in { home.preferXdgDirectories = true; xdg = { enable = true; cacheHome = "${localDir}/cache"; userDirs = { enable = true; createDirectories = true; setSessionVariables = true; download = "${homeDir}/downloads"; documents = "${homeDir}/documents"; projects = "${homeDir}/projects"; music = "${mediaDir}/music"; pictures = "${mediaDir}/images"; videos = "${mediaDir}/videos"; desktop = "${localDir}/desktop"; publicShare = "${localDir}/public"; templates = "${localDir}/templates"; }; mimeApps.enable = true; }; }; }