{ config, lib, inputs, ... }: { options.snowflake.home.desktop.gnome.dconf.enable = lib.mkEnableOption "manage gnome with dconf"; config = lib.mkIf config.snowflake.home.desktop.gnome.dconf.enable { dconf.settings = { "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; show-battery-percentage = true; clock-show-weekday = true; clock-show-seconds = true; }; "org/gnome/desktop/peripherals/touchpad" = { tap-to-click = true; }; "org/gnome/desktop/input-sources" = { xkb-options = [ "caps:swapescape" ]; }; "org/gnome/desktop/peripherals/touchpad" = { speed = 1.0; }; "org/gnome/desktop/session" = { idle-delay = inputs.home-manager.lib.hm.gvariant.mkUint32 60; }; "org/gnome/settings-daemon/plugins/power" = { sleep-inactive-battery-type = "nothing"; sleep-inactive-ac-type = "nothing"; power-button-action = "nothing"; }; "org/gnome/desktop/wm/preferences" = { num-workspaces = 10; }; "org/gnome/desktop/notifications" = { show-in-lock-screen = false; }; "org/gnome/desktop/wm/keybindings" = { close = [ "q" ]; # start window resize using mouse: defaults to "F8" begin-resize = [ "r" ]; # sticky windows across all workspaces ("Always on Visible Workspace") toggle-on-all-workspaces = [ "s" ]; switch-to-workspace-1 = [ "1" ]; move-to-workspace-1 = [ "1" ]; switch-to-workspace-2 = [ "2" ]; move-to-workspace-2 = [ "2" ]; switch-to-workspace-3 = [ "3" ]; move-to-workspace-3 = [ "3" ]; switch-to-workspace-4 = [ "4" ]; move-to-workspace-4 = [ "4" ]; switch-to-workspace-5 = [ "5" ]; move-to-workspace-5 = [ "5" ]; switch-to-workspace-6 = [ "6" ]; move-to-workspace-6 = [ "6" ]; switch-to-workspace-7 = [ "7" ]; move-to-workspace-7 = [ "7" ]; switch-to-workspace-8 = [ "8" ]; move-to-workspace-8 = [ "8" ]; switch-to-workspace-9 = [ "9" ]; move-to-workspace-9 = [ "9" ]; switch-to-workspace-10 = [ "0" ]; move-to-workspace-10 = [ "0" ]; }; "org/gnome/shell/keybindings" = { # NITE: this was bound to 'n' for opening the nth application # pinned in the bottom bar. Removing it to remap it to shwitch to the nth # workspace switch-to-application-1 = [ ]; switch-to-application-2 = [ ]; switch-to-application-3 = [ ]; switch-to-application-4 = [ ]; switch-to-application-5 = [ ]; switch-to-application-6 = [ ]; switch-to-application-7 = [ ]; switch-to-application-8 = [ ]; switch-to-application-9 = [ ]; switch-to-application-0 = [ ]; # removing keybinding for toggle-on-all-workspaces: defaults to "s" toggle-quick-settings = [ ]; show-screenshot-ui = [ "s" ]; }; "org/gnome/desktop/media-handling" = { automount = false; automount-open = false; autorun-never = false; }; "org/gnome/desktop/wm/preferences" = { focus-mode = "sloppy"; }; "org/gnome/shell" = { enabled-extensions = [ # tiling window manager "forge@jmmaranan.com" # to lock a window to an application on first start "auto-move-windows@gnome-shell-extensions.gcampax.github.com" # to move the clock to the right side on the top bar "just-perfection-desktop@just-perfection" # to launch a new instanc of an application rather than switching to # the exising instance when invoking from GNOME shell "launch-new-instance@gnome-shell-extensions.gcampax.github.com" # GSConnect - KDE Connect reimplementation in GNOME "gsconnect@andyholmes.github.io" # blurtooth battery "bluetooth-battery@michalw.github.com" # netspeed "netspeedsimplified@prateekmedia.extension" # bedtime mode "gnomebedtime@ionutbortis.gmail.com" # caffeine "caffeine@patapon.info" ]; }; "org/gnome/shell/extensions/just-perfection" = { clock-menu-position = 1; clock-menu-position-offset = 20; }; "org/gnome/shell/extensions/forge" = { focus-border-toggle = false; }; "org/gnome/shell/extensions/forge/keybindings" = { window-toggle-float = [ "f" ]; # this is bound to Super+l by default. Removing to bind this to lock screen window-focus-right = [ "" ]; # this is bound to ``s`` by default. Removing to bind this to lock screen con-stacked-layout-toggle = [ "" ]; # makes the window always float and enables "Always on Top" mode window-toggle-always-float = [ "c" ]; }; "org/gnome/shell/extensions/auto-move-windows" = { application-list = [ "kitty.desktop:2" "org.wezfurlong.wezterm.desktop:2" "firefox.desktop:4" "org.telegram.desktop.desktop:7" "spotify.desktop:9" "mpv.desktop:10" "audio-recorder.desktop:8" ]; }; "org/gnome/settings-daemon/plugins/color" = { night-light-enabled = true; night-light-temperature = 2000; }; # NOTE: if keybinding not working search in `dconf dump /` "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/custom1/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/" ]; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { name = "Bookmenu"; binding = "b"; command = "/home/cc/.scripts/popup.sh bookmenu.sh"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { name = "AURA Play Pause"; binding = "Launch3"; command = "playerctl play-pause"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = { name = "Toggle Speech to Text"; binding = "m"; command = "sh /home/cc/.scripts/speech-to-text.sh"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3" = { name = "Lock Screen"; binding = "l"; command = "xdg-screensaver lock"; }; "org/virt-manager/virt-manager/connections" = { autoconnect = [ "qemu:///system" ]; uris = [ "qemu:///system" ]; }; "org/gnome/desktop/background" = { picture-uri = "file:///run/current-system/sw/share/backgrounds/gnome/blobs-l.svg"; picture-uri-dark = "file:///run/current-system/sw/share/backgrounds/gnome/blobs-d.svg"; primary-color = "#241f31"; }; "org/gnome/desktop/screensaver" = { picture-uri = "file:///run/current-system/sw/share/backgrounds/gnome/blobs-l.svg"; primary-color = "#241f31"; }; }; }; }