{ lib, pkgs, config, ... }: let programName = "thunar"; # Default user fallback defaultUser = "henrov"; # Toggle variable pointing to the option enableProgram = config.myApps.${programName}.enable or false; # Package list for Thunar and plugins thunarPkgs = with pkgs; [ thunar thunar-volman thunar-archive-plugin thunar-media-tags-plugin tumbler ffmpegthumbnailer gvfs xdg-utils ]; in { # Top-level toggle option options.myApps.${programName}.enable = lib.mkEnableOption "Enable Thunar file manager"; # Wrap everything in mkIf(enable) config = lib.mkIf enableProgram { # myApps container myApps = { ${programName} = { enable = true; packages = thunarPkgs; user = config.defaultUser or defaultUser; }; }; # Home Manager user configuration home-manager.users.${config.defaultUser or defaultUser} = { home.stateVersion = "26.05"; home.username = config.defaultUser or defaultUser; home.homeDirectory = "/home/${config.defaultUser or defaultUser}"; home.packages = thunarPkgs; # Default file manager xdg.mimeApps = { defaultApplications = { "inode/directory" = "Thunar.desktop"; }; }; }; }; }