{ pkgs, lib, config, nix-colors, ... }: { options = { desktop = { enable = lib.mkEnableOption "gui"; terminal = lib.mkOption { type = lib.types.str; description = "the default terminal to use"; default = "kitty"; }; fileManager = lib.mkOption { type = lib.types.str; description = "the default file_manager to use"; default = "pcmanfm"; }; browser = lib.mkOption { type = lib.types.str; description = "the default browser to use"; default = "firefox"; }; launcher = lib.mkOption { type = lib.types.str; description = "the default launcher to use"; default = "rofi -show drun"; }; }; }; imports = [ nix-colors.homeManagerModules.default ./firefox ./keepassxc ./kitty ./nextcloud-client ./picom ./nixGL ./theme ./awesome ./rofi ./network-manager-applet ./alacritty ./darkman ./pcmanfm ./thunar ./hyprland ]; config = lib.mkIf config.desktop.enable { desktop = { xserver.enable = lib.mkDefault true; awesome.enable = lib.mkDefault true; pcmanfm.enable = lib.mkDefault true; network-manager.enable = lib.mkDefault true; }; programs = { keepassxc.enable = lib.mkDefault true; firefox.enable = lib.mkDefault true; kitty.enable = lib.mkDefault true; }; services = { gnome-keyring.enable = true; nextcloud-client.enable = lib.mkDefault true; udiskie = { enable = lib.mkDefault true; settings = { program_options = { udisks_version = 2; tray = true; }; }; }; picom.enable = lib.mkDefault true; }; fonts.fontconfig.enable = true; colorScheme = nix-colors.colorSchemes.catppuccin-mocha; xdg = { enable = lib.mkDefault true; portal = { enable = lib.mkDefault true; config = { common = { default = [ "gtk" ]; }; awesome = { default = [ "pantheon" "gtk" ]; "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; }; }; extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; }; userDirs.enable = true; }; }; }