{ config, lib, ... }: let cfg = config.custom.graphical.gnome; in { # doesnt work for me.. nothing changes config = lib.mkIf cfg.enable { programs.dconf.profiles.user.databases = [{ lockAll = true; settings = with lib.gvariant; { "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/desktop/wm/preferences" = { resize-with-right-button = true; }; "org/gnome/desktop/sound" = { event-sounds = false; }; "org/gnome/desktop/peripherals/mouse" = { accel-profile = "flat"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { name = "nautilus"; command = "nautilus"; binding = "e"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { name = "kitty super"; command = "kitty"; binding = "q"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = { binding = "space"; command = "rofi -show combi"; name = "Open Rofi"; }; "org/gnome/shell" = { disable-user-extensions = false; enabled-extensions = [ "blur-my-shell@aunetx" "trayIconsReloaded@selfmade.pl" "Vitals@CoreCoding.com" "workspace-indicator@gnome-shell-extensions.gcampax.github.com" "dash-to-dock@micxgx.gmail.com" "just-perfection-desktop@just-perfection" "user-theme@gnome-shell-extensions.gcampax.github.com" "apps-menu@gnome-shell-extensions.gcampax.github.com" ]; }; "org/gnome/mutter" = { edge-tiling = true; workspaces-only-on-primary = true; dynamic-workspaces = false; }; #"org/gnome/desktop/wm/preferences" = { # num-workspaces = 9; # focus-mode = "sloppy"; #}; "org/gnome/desktop/wm/keybindings" = { #minimize = [ "comma" ]; maximize = [ "f" ]; #switch-to-workspace-left = [ "e" ]; #switch-to-workspace-right = [ "r" ]; unmaximize = mkEmptyArray type.string; activate-window-menu = mkEmptyArray type.string; move-to-monitor-up = mkEmptyArray type.string; move-to-monitor-down = mkEmptyArray type.string; #move-to-monitor-left = [ "e" ]; #move-to-monitor-right = [ "r" ]; move-to-workspace-down = mkEmptyArray type.string; move-to-workspace-up = mkEmptyArray type.string; switch-to-workspace-down = [ "Down" "j" ]; switch-to-workspace-up = [ "Up" "k" ]; toggle-maximized = [ "f" ]; close = [ "F4" ]; switch-to-workspace-1 = [ "1" ]; switch-to-workspace-2 = [ "2" ]; switch-to-workspace-3 = [ "3" ]; switch-to-workspace-4 = [ "4" ]; switch-to-workspace-5 = [ "5" ]; switch-to-workspace-6 = [ "6" ]; switch-to-workspace-7 = [ "7" ]; switch-to-workspace-8 = [ "8" ]; switch-to-workspace-9 = [ "9" ]; move-to-workspace-1 = [ "1" ]; move-to-workspace-2 = [ "2" ]; move-to-workspace-3 = [ "3" ]; move-to-workspace-4 = [ "4" ]; move-to-workspace-5 = [ "5" ]; move-to-workspace-6 = [ "6" ]; move-to-workspace-7 = [ "7" ]; move-to-workspace-8 = [ "8" ]; move-to-workspace-9 = [ "9" ]; }; "org/gnome/shell/keybindings" = { # Following binds need to be disabled, as their defaults are used for # the binds above, and will run into conflicts. switch-to-application-1 = mkEmptyArray type.string; switch-to-application-2 = mkEmptyArray type.string; switch-to-application-3 = mkEmptyArray type.string; switch-to-application-4 = mkEmptyArray type.string; switch-to-application-5 = mkEmptyArray type.string; switch-to-application-6 = mkEmptyArray type.string; switch-to-application-7 = mkEmptyArray type.string; switch-to-application-8 = mkEmptyArray type.string; switch-to-application-9 = mkEmptyArray type.string; }; }; }]; }; }