{ config, ... }: let homeModules = config.flake.modules.homeManager; vivaldiPackage = pkgs: pkgs.vivaldi; nautilusPackage = pkgs: pkgs.nautilus; in { flake.modules.homeManager.browser-vivaldi = { pkgs, ... }: { home.packages = [ (vivaldiPackage pkgs) ]; }; flake.modules.homeManager.primary-browser-vivaldi = { lib, pkgs, ... }: { imports = [ homeModules.browser-vivaldi ]; meta.desktop.browserCommand = lib.getExe (vivaldiPackage pkgs); home.sessionVariables.BROWSER = lib.getExe (vivaldiPackage pkgs); xdg.mimeApps.defaultApplicationPackages = [ (vivaldiPackage pkgs) ]; }; flake.modules.homeManager.file-manager-nautilus = { pkgs, ... }: { home.packages = [ (nautilusPackage pkgs) ]; }; flake.modules.homeManager.primary-file-manager-nautilus = { lib, pkgs, ... }: { imports = [ homeModules.file-manager-nautilus ]; meta.desktop.fileManagerCommand = lib.getExe (nautilusPackage pkgs); xdg.mimeApps.defaultApplicationPackages = [ (nautilusPackage pkgs) ]; }; flake.modules.homeManager.image-viewer-imv = { programs.imv.enable = true; }; flake.modules.homeManager.default-image-viewer-imv = { pkgs, ... }: { imports = [ homeModules.image-viewer-imv ]; xdg.mimeApps.defaultApplicationPackages = [ pkgs.imv ]; }; flake.modules.homeManager.document-viewer-sioyek = { programs.sioyek.enable = true; }; flake.modules.homeManager.default-document-viewer-sioyek = { pkgs, ... }: { imports = [ homeModules.document-viewer-sioyek ]; xdg.mimeApps.defaultApplicationPackages = [ pkgs.sioyek ]; }; flake.modules.homeManager.workstation-apps = { pkgs, ... }: { home.packages = with pkgs; [ postman spotify calcure planify unzip gimp dbeaver-bin ]; }; 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"; configHome = "${homeDir}/.config"; dataHome = "${localDir}/share"; stateHome = "${localDir}/state"; userDirs = { enable = true; createDirectories = true; setSessionVariables = true; download = "${homeDir}/downloads"; documents = "${homeDir}/documents"; projects = "${homeDir}/dev"; music = "${mediaDir}/music"; pictures = "${mediaDir}/images"; videos = "${mediaDir}/videos"; desktop = "${localDir}/desktop"; publicShare = "${localDir}/public"; templates = "${localDir}/templates"; }; mimeApps = { enable = true; }; }; }; }