{ lib, config, pkgs, ... }: let cfg = config.krop.hm.desktop.gnome; in { options.krop.hm.desktop.gnome = { enable = lib.mkOption { type = lib.types.bool; default = false; example = true; description = "Enable my gnome configuration"; }; }; config = lib.mkIf cfg.enable { home.packages = with pkgs; [ gnomeExtensions.grand-theft-focus gnomeExtensions.vitals gnomeExtensions.appindicator gnome-commander ]; dconf = { settings = { "org/gnome/shell" = { disable-user-extensions = false; enabled-extensions = with pkgs.gnomeExtensions; [ grand-theft-focus.extensionUuid vitals.extensionUuid appindicator.extensionUuid ]; favorite-apps = [ "firefox.desktop" "Alacritty.desktop" "thunderbird.desktop" "org.gnome.gnome-commander.desktop" ]; }; "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; accent-color = "red"; show-battery-percentage = true; gtk-enable-primary-paste = false; }; "org/gnome/mutter" = { dynamic-workspaces = true; edge-tiling = true; workspaces-only-on-primary = true; }; "org/gnome/desktop/peripherals/touchpad" = { natural-scroll = false; click-method = "areas"; }; "org/gnome/desktop/wm/preferences" = { button-layout = "appmenu:minimize,maximize,close"; resize-with-right-button = true; }; "org/gnome/desktop/sound" = { event-sounds = false; }; "org/gnome/desktop/search-providers" = { disabled = [ "org.gnome.Contacts.desktop" "org.gnome.Calculator.desktop" "org.gnome.Calendar.desktop" "org.gnome.Characters.desktop" "org.gnome.clocks.desktop" "org.gnome.Software.desktop" ]; }; "org/gnome/shell/extensions/vitals" = { position-in-panel = 0; show-battery = true; icon-style = 1; hot-sensors = [ "__temperature_max__" "_memory_available_" "_storage_free_" ]; }; "org/gnome/desktop/background" = let bgPath = "file://${./assets/nyan_cat.jpg}"; in { picture-options = "zoom"; picture-uri = bgPath; picture-uri-dark = bgPath; }; }; }; gtk = { enable = true; theme = { name = "Adwaita-dark"; package = pkgs.gnome-themes-extra; }; gtk3.extraConfig = { gtk-application-prefer-dark-theme = 1; }; gtk4.extraConfig = { gtk-application-prefer-dark-theme = 1; }; }; qt = { enable = true; platformTheme.name = "Adwaita-dark"; style = { name = "Adwaita-dark"; package = pkgs.adwaita-qt; }; }; xdg.portal = { enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; configPackages = with pkgs; [ xdg-desktop-portal-gtk ]; }; }; }