diff --git a/desktop/gnome.nix b/desktop/gnome.nix index 6da6bc5..fc06d8a 100644 --- a/desktop/gnome.nix +++ b/desktop/gnome.nix @@ -4,7 +4,7 @@ let unstable = import {}; in { - config = { + config = rec { services.xserver.enable = true; services.xserver.desktopManager.gnome.enable = true; services.xserver.displayManager.gdm = { @@ -15,10 +15,151 @@ in # environment.sessionVariables.NIXOS_OZONE_WL = "1"; - services.xserver.desktopManager.gnome.extraGSettingsOverrides = '' - [org.gnome.SessionManager] - logout-prompt=false - ''; + programs.dconf.profiles.user.databases = [{ + settings = with lib.gvariant; { + "org/gnome/desktop/interface" = { + clock-show-date=true; + clock-show-seconds=true; + clock-show-weekday=true; + color-scheme="prefer-dark"; + }; + + "org/gnome/desktop/media-handling" = { + automount=false; + }; + + "org/gnome/desktop/peripherals/mouse" = { + accel-profile="flat"; + }; + + "org/gnome/desktop/sound" = { + allow-volume-above-100-percent=true; + }; + + "org/gnome/mutter" = { + dynamic-workspaces=true; + workspaces-only-on-primary=true; + }; + + "org/gnome/SessionManager" = { + logout-prompt=false; + }; + + "org/gnome/settings-daemon/plugins/power" = { + power-button-action="notning"; + sleep-inactive-ac-type="nothing"; + }; + + "org/gnome/shell" = { + enabled-extensions=[ + "drive-menu@gnome-shell-extensions.gcampax.github.com" + "pop-shell@system76.com" + "workspace-indicator@gnome-shell-extensions.gcampax.github.com" + "Vitals@CoreCoding.com" + "trayIconsReloaded@selfmade.pl" + "places-menu@gnome-shell-extensions.gcampax.github.com" + "apps-menu@gnome-shell-extensions.gcampax.github.com" + "top-bar-organizer@julian.gse.jsts.xyz" + "color-picker@tuberry" + ]; + }; + + "org/gnome/shell/app-switcher" = { + current-workspace-only=false; + }; + + "org/gnome/shell/extensions/color-picker" = { + color-picker-shortcut=["c"]; + enable-shortcut=true; + enable-systray=false; + menu-key=""; + notify-style=mkUint32 1; + preview-style=mkUint32 0; + }; + + "org/gnome/shell/extensions/pop-shell" = { + active-hint=true; + active-hint-border-radius=mkUint32 1; + gap-inner=mkUint32 2; + gap-outer=mkUint32 1; + show-skip-taskbar=true; + show-title=true; + smart-gaps=false; + snap-to-grid=false; + tile-by-default=true; + }; + + "org/gnome/shell/extensions/top-bar-organizer" = { + center-box-order=["dateMenu"]; + left-box-order=["activities" "apps-menu" "places-menu" "vitalsMenu"]; + right-box-order=["TrayIconsReloaded" "workspace-indicator" "pop-shell" "color-picker@tuberry" "drive-menu" "screenRecording" "screenSharing" "dwellClick" "a11y" "keyboard" "quickSettings"]; + }; + + "org/gnome/shell/extensions/trayIconsReloaded" = { + icon-brightness=mkInt32 0; + icon-contrast=mkInt32 0; + icon-margin-horizontal=mkInt32 0; + icon-margin-vertical=mkInt32 0; + icon-padding-horizontal=mkInt32 4; + icon-padding-vertical=mkInt32 0; + icon-saturation=mkInt32 0; + icon-size=mkInt32 16; + icons-limit=mkInt32 5; + invoke-to-workspace=true; + position-weight=mkInt32 0; + tray-margin-left=mkInt32 0; + tray-margin-right=mkInt32 0; + }; + + "org/gnome/shell/extensions/vitals" = { + hide-icons=false; + hot-sensors=["_processor_usage_" "_memory_allocated_"]; + memory-measurement=mkInt32 1; + update-time=mkInt32 2; + use-higher-precision=true; + }; + + "org/gnome/shell/keybindings" = { + show-screenshot-ui=["Print" "S"]; + }; + + "org/gnome/desktop/default-applications/terminal" = + if builtins.elem pkgs.kitty config.environment.systemPackages then { + exec = "kitty"; + exec-arg = ""; + } else null; + + "org/gnome/settings-daemon/plugins/media-keys" = { + custom-keybindings = [ + ( + if builtins.elem pkgs.kitty config.environment.systemPackages then + "org/gnome/settings-daemon/plugins/media-keys/custom-keybinding/custom0" + else null + ) + ]; + help = mkEmptyArray "s"; + screensaver = ["l"]; + }; + + "org/gnome/settings-daemon/plugins/media-keys/custom-keybinding/custom0" = + if builtins.elem pkgs.kitty config.environment.systemPackages then { + binding="t"; + command="kitty"; + name="Terminal"; + } else null; + + }; + }]; + + programs.dconf.profiles.gdm.databases = with builtins.elemAt programs.dconf.profiles.user.databases 0; [{ + settings = { + "org/gnome/desktop/interface" = settings."org/gnome/desktop/interface"; + "org/gnome/desktop/peripherals/mouse" = settings."org/gnome/desktop/peripherals/mouse"; + "org/gnome/desktop/sound" = settings."org/gnome/desktop/sound"; + "org/gnome/settings-daemon/plugins/power" = settings."org/gnome/settings-daemon/plugins/power"; + "org/gnome/shell/keybindings" = settings."org/gnome/shell/keybindings"; + }; + }]; environment.systemPackages = with pkgs; [ gnomeExtensions.pop-shell