57 lines
1.3 KiB
Nix
57 lines
1.3 KiB
Nix
{ 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";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|