Skip to content

Instantly share code, notes, and snippets.

@metainfa
Created May 31, 2017 10:47
Show Gist options
  • Save metainfa/7b8dd53585029edcf66474a236db0334 to your computer and use it in GitHub Desktop.
Save metainfa/7b8dd53585029edcf66474a236db0334 to your computer and use it in GitHub Desktop.
#!/bin/sh
set -e
unset CDPATH
unset IFS
echo -n "Configuring Ubuntu keybindings... "
gsettings_set_org_gnome_settings_daemon_plugins_media_keys() {
n="$1"
name="$2"
cmd="$3"
binding="$4"
key="org.gnome.settings-daemon.plugins.media-keys.custom-keybinding"
path="/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$n/"
gsettings set "$key:$path" name "$name"
gsettings set "$key:$path" command "$cmd"
gsettings set "$key:$path" binding "$binding"
}
# Remove defaults that cause conflicts with custom shortcuts
gsettings set org.gnome.shell.keybindings toggle-message-tray "[]"
# CapsLock -> Escape
gsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
# <Alt>*
gsettings set org.gnome.desktop.wm.keybindings switch-applications "['<Alt>Tab']"
gsettings set org.gnome.desktop.wm.keybindings switch-group "['<Alt>Above_Tab']"
# <Super>*
gsettings set 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/']"
gsettings set org.gnome.settings-daemon.plugins.media-keys calculator "" # Fix launch calculator focus issues
gsettings_set_org_gnome_settings_daemon_plugins_media_keys 0 "Calculator" "gnome-calculator" "Calculator"
gsettings set org.gnome.settings-daemon.plugins.media-keys www "" # Fix launch browser focus issues
gsettings_set_org_gnome_settings_daemon_plugins_media_keys 1 "Firefox" "firefox" "<Super>b"
gsettings_set_org_gnome_settings_daemon_plugins_media_keys 2 "Sublime" "subl" "<Super>e"
gsettings_set_org_gnome_settings_daemon_plugins_media_keys 3 "Files" "nautilus" "<Super>f"
gsettings set org.gnome.settings-daemon.plugins.media-keys terminal "<Super>t"
gsettings set org.gnome.desktop.wm.keybindings toggle-fullscreen "['<Super>u']"
gsettings set org.gnome.desktop.wm.keybindings maximize "['<Super>k']"
gsettings set org.gnome.desktop.wm.keybindings maximize-horizontally "['<Super>minus']"
gsettings set org.gnome.desktop.wm.keybindings maximize-vertically "['<Super>backslash']"
gsettings set org.gnome.desktop.wm.keybindings move-to-center "['<Super>c']"
gsettings set org.gnome.desktop.wm.keybindings unmaximize "['<Super>j']"
gsettings set org.gnome.mutter.keybindings toggle-tiled-left "['<Super>h']"
gsettings set org.gnome.mutter.keybindings toggle-tiled-right "['<Super>l']"
# <Shift><Super>*
gsettings set org.gnome.desktop.wm.keybindings move-to-side-e "['<Shift><Super>l']"
gsettings set org.gnome.desktop.wm.keybindings move-to-side-w "['<Shift><Super>h']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down "['<Shift><Super>j']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-up "['<Shift><Super>k']"
# <Ctrl><Super>*
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-down "['<Ctrl><Super>j']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-up "['<Ctrl><Super>k']"
echo "done."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment