Make GNOME not suck

From WTFwiki
Jump to navigation Jump to search

Background

GNOME defaults across Fedora Core/Ubuntu are fine for casual use, but start to fall down (for me) when productivity needs to increase. Some basics include being able to alt+click+drag to move windows around, fixed number of isolated workspaces (and quick keybindings to move between them), etc. This is an attempt at capturing scriptable settings change commands for this.

WM Preferences

Enable alt+drag windows in Gnome

 $ gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier '<Alt>'

Fixed number of workspaces (12)

 $ gsettings set org.gnome.mutter dynamic-workspaces false
 $ gsettings set org.gnome.desktop.wm.preferences num-workspaces 12

Isolate apps to workspaces

 $ gsettings set org.gnome.shell.app-switcher current-workspace-only true
 $ gsettings set org.gnome.shell.window-switcher current-workspace-only true

WM Keybindings =

Fix/unset conflicting bindings

gsettings set org.gnome.desktop.wm.keybindings panel-run-dialog "[]"
gsettings set org.gnome.desktop.wm.keybindings panel-main-menu "[]"
gsettings set org.gnome.desktop.wm.keybindings close "[]"
gsettings set org.gnome.desktop.wm.keybindings unmaximize "['<Super>Down']"
gsettings set org.gnome.desktop.wm.keybindings toggle-maximized "[]"
gsettings set org.gnome.desktop.wm.keybindings begin-move "[]"
gsettings set org.gnome.desktop.wm.keybindings begin-resize "[]"
gsettings set org.gnome.desktop.wm.keybindings cycle-group "[]"

Switch-to-workspaces keybindings

This adds Alt+F# to switch, Super+Alt+F# to move windows.

for i in $(seq 1 12); do gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-${i} "['<Alt>F${i}']"; done
for i in $(seq 1 12); do gsettings get org.gnome.desktop.wm.keybindings switch-to-workspace-${i}; done
for i in $(seq 1 12); do gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-${i} "['<Super><Alt>F${i}']"; done
for i in $(seq 1 12); do gsettings get org.gnome.desktop.wm.keybindings move-to-workspace-${i}; done

Custom Keybindings

NOTE/TODO: this method does not seem to universally work? Seemed ok on Fedora Core 38-40(?), does not work on fresh Ubuntu 24.04.

dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/name "'Launch new terminal window'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/command "'gnome-terminal --window --geometry=160x43'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/binding "'<Alt>v'"

dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/name "'Launch new maximized terminal window'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/command "'gnome-terminal --window --maximize'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/binding "'<Shift><Alt>v'"