{ inputs, lib, pkgs, ... }: let nixStd = inputs.nixStd.lib; in { manual.html.enable = true; home.sessionVariables = { QT_QPA_PLATFORMTHEME = "gnome"; }; home.persistence."/nix/persist/home/zaphyra".directories = [ "dconf/.config/dconf" "keyring/.local/share/keyrings" "evolution-data-server/.local/share/evolution" "gnome-online-accounts/.config/goa-1.0" "gnome/.local/share/gnome-shell" ]; home.packages = with pkgs; [ gnome-calendar gnome-text-editor gnome-podcasts gnome-obfuscate gnome-power-manager loupe cozy refine xdg-utils qgnomeplatform wl-clipboard-x11 # look and feel from libadwaita ported to GTK-3 adw-gtk3 ] ++ (with pkgs.gnomeExtensions; [ battery-time-percentage-compact caffeine ]); gtk = { enable = true; iconTheme.package = pkgs.adwaita-colors-icon-theme; iconTheme.name = "Adwaita-green"; gtk3.extraConfig = { gtk-application-prefer-dark-theme = 1; gtk-theme-name = "adw-gtk3-dark"; }; }; # Use `dconf watch /` to track stateful changes you are doing and store them here. dconf.settings = with inputs.homeManager.lib.hm.gvariant; let numWorkspaces = 7; workspaces = ( numWorkspaces |> nixStd.list.unfold ( n: if n == 0 then nixStd.optional.nothing else nixStd.optional.just (nixStd.tuple.tuple2 n (n - 1)) ) |> lib.lists.reverseList ); in { "org/gnome/mutter" = { edge-tiling = true; dynamic-workspaces = false; # Enable fractional scaling experimental-features = [ "scale-monitor-framebuffer" ]; }; "org/gnome/desktop/wm/preferences" = { button-layout = "close:appmenu"; auto-raise = false; focus-mode = "sloppy"; num-workspaces = lib.lists.last workspaces; workspace-names = [ "Main" "Mail" "Term" ]; }; "org/gnome/desktop/wm/keybindings" = builtins.listToAttrs ( builtins.concatMap (v: [ { name = "switch-to-workspace-${toString v}"; value = [ "${toString v}" ]; } { name = "move-to-workspace-${toString v}"; value = [ "${toString v}" ]; } ]) workspaces ) // { switch-input-source = [ "space" ]; switch-input-source-backward = [ "space" ]; }; "org/gnome/shell/keybindings" = builtins.listToAttrs ( map (v: { name = "switch-to-application-${toString v}"; value = [ ]; }) workspaces ); "org/gnome/shell" = { disable-extension-version-validation = true; disable-user-extensions = false; enabled-extensions = with pkgs.gnomeExtensions; [ battery-time-percentage-compact.extensionUuid caffeine.extensionUuid ]; favorite-apps = [ "org.gnome.Nautilus.desktop" "firefox.desktop" "thunderbird.desktop" "org.gnome.Fractal.desktop" "dev.geopjr.Tuba.desktop" "org.gnome.Calendar.desktop" "io.github.mrvladus.List.desktop" "org.gnome.Podcasts.desktop" "com.mitchellh.ghostty.desktop" "org.gnome.Settings.desktop" ]; }; "org/gnome/settings-daemon/plugins/media-keys"."custom-keybindings" = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" ]; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { name = "Start Terminal"; command = "ghostty"; binding = "Return"; }; "org/gnome/settings-daemon/plugins/color".night-light-enabled = true; "org/gnome/settings-daemon/plugins/power".sleep-inactive-ac-type = "nothing"; "org/gnome/desktop/a11y".always-show-universal-access-status = false; "org/gnome/desktop/privacy".remember-recent-files = false; "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; accent-color = "green"; enable-hot-corners = false; show-battery-percentage = true; }; "org/gnome/desktop/input-sources".sources = [ (mkTuple [ "xkb" "us+mac" ]) (mkTuple [ "xkb" "de" ]) (mkTuple [ "xkb" "ru+mac" ]) ]; "org/gnome/desktop/background" = { picture-uri = "file://${pkgs.nixos-artwork.wallpapers.simple-blue.gnomeFilePath}"; picture-uri-dark = "file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}"; }; "org/gnome/desktop/screensaver" = { picture-uri = "file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}"; primary-color = "#3465a4"; secondary-color = "#000000"; }; }; }