#!/bin/bash ############################################################################## # __ __ ___ ___ __ ___ __ # # /__` |\/| /\ |__) | |__ |__) |__ | /__` |__| # # .__/ | | /~~\ | \ | |___ | \ | | .__/ | | # # # ############################################################################## # Custom keybindings script for Pop!_shell, loosely based on i3 and Regolith # ############################################################################## # WARNING: This script will change your gnome keybindings. If you are not # # using Pop!_shell, it will be useless. # # To reverse the effects of this, you can rest keybindings in the settings # # application. # ############################################################################## # First Let's name our vim keys to make things more readable later left="h" down="j" up="k" right="l" # Define the dconf branches KEYS_GNOME_WM=/org/gnome/desktop/wm/keybindings KEYS_GNOME_SHELL=/org/gnome/shell/keybindings KEYS_MUTTER=/org/gnome/mutter/keybindings KEYS_MEDIA=/org/gnome/settings-daemon/plugins/media-keys KEYS_POP=/org/gnome/shell/extensions/pop-shell # Disable incompatible shortcuts and conflicting shortcuts dconf write /org/gnome/mutter/wayland/keybindings/restore-shortcuts "@as []" dconf write ${KEYS_GNOME_SHELL}/switch-to-application-1 "@as []" dconf write ${KEYS_GNOME_SHELL}/switch-to-application-2 "@as []" dconf write ${KEYS_GNOME_SHELL}/switch-to-application-3 "@as []" dconf write ${KEYS_GNOME_SHELL}/switch-to-application-4 "@as []" dconf write ${KEYS_GNOME_SHELL}/switch-to-application-5 "@as []" dconf write ${KEYS_GNOME_SHELL}/switch-to-application-6 "@as []" dconf write ${KEYS_GNOME_SHELL}/switch-to-application-7 "@as []" dconf write ${KEYS_GNOME_SHELL}/switch-to-application-8 "@as []" dconf write ${KEYS_GNOME_SHELL}/switch-to-application-9 "@as []" dconf write ${KEYS_GNOME_SHELL}/switch-to-application-10 "@as []" dconf write ${KEYS_GNOME_SHELL}/open-application-menu "@as []" dconf write ${KEYS_MEDIA}/rotate-video-lock-static "@as []" dconf write ${KEYS_MUTTER}/toggle-tiled-left "@as []" dconf write ${KEYS_MUTTER}/toggle-tiled-right "@as []" dconf write ${KEYS_GNOME_WM}/minimize "@as []" ########################### # # # Navigation key bindings # # # ########################### # Enable switch-to-workspace with number dconf write ${KEYS_GNOME_SHELL}/switch-to-workspace-1 "['1']" dconf write ${KEYS_GNOME_SHELL}/switch-to-workspace-2 "['2']" dconf write ${KEYS_GNOME_SHELL}/switch-to-workspace-3 "['3']" dconf write ${KEYS_GNOME_SHELL}/switch-to-workspace-4 "['4']" dconf write ${KEYS_GNOME_SHELL}/switch-to-workspace-5 "['5']" dconf write ${KEYS_GNOME_SHELL}/switch-to-workspace-6 "['6']" dconf write ${KEYS_GNOME_SHELL}/switch-to-workspace-7 "['7']" dconf write ${KEYS_GNOME_SHELL}/switch-to-workspace-8 "['8']" dconf write ${KEYS_GNOME_SHELL}/switch-to-workspace-9 "['9']" dconf write ${KEYS_GNOME_SHELL}/switch-to-workspace-10 "['0']" dconf write ${KEYS_GNOME_WM}/switch-to-workspace-1 "['1']" dconf write ${KEYS_GNOME_WM}/switch-to-workspace-2 "['2']" dconf write ${KEYS_GNOME_WM}/switch-to-workspace-3 "['3']" dconf write ${KEYS_GNOME_WM}/switch-to-workspace-4 "['4']" dconf write ${KEYS_GNOME_WM}/switch-to-workspace-5 "['5']" dconf write ${KEYS_GNOME_WM}/switch-to-workspace-6 "['6']" dconf write ${KEYS_GNOME_WM}/switch-to-workspace-7 "['7']" dconf write ${KEYS_GNOME_WM}/switch-to-workspace-8 "['8']" dconf write ${KEYS_GNOME_WM}/switch-to-workspace-9 "['9']" dconf write ${KEYS_GNOME_WM}/switch-to-workspace-10 "['0']" # Switch between workspaces # Note these will only work with the horizontal workspaces extension # dconf write ${KEYS_GNOME_WM}/switch-to-workspace-left "['Tab']" # dconf write ${KEYS_GNOME_WM}/switch-to-workspace-right "['Tab']" # Move windows between workspaces # dconf write ${KEYS_GNOME_WM}/move-to-workspace-left "['Left','${left}']" #.dconf write ${KEYS_GNOME_WM}/move-to-workspace-right "['Right','${right}']" # Move between monitors dconf write ${KEYS_GNOME_WM}/move-to-monitor-left "['Left','${left}']" dconf write ${KEYS_GNOME_WM}/move-to-monitor-right "['Right','${right}']" # These are for default Ubuntu vertical workspaces dconf write ${KEYS_GNOME_WM}/switch-to-workspace-down "['Tab']" dconf write ${KEYS_GNOME_WM}/switch-to-workspace-up "['Tab']" dconf write ${KEYS_GNOME_WM}/move-to-workspace-down "['Down','${down}']" dconf write ${KEYS_GNOME_WM}/move-to-workspace-up "['Up','${up}']" ###################################### # # # Change Pop!_shell default bindings # # # ###################################### # Toggle maximization state #dconf write ${KEYS_GNOME_WM}/toggle-maximized "['f']" # Toggle floating window #dconf write ${KEYS_POP}/toggle-floating "['f']" #################################### # Tile Adjustment mode keybindings # # # Enter/Exit tile adjustment mode dconf write ${KEYS_POP}/tile-enter "['r']" dconf write ${KEYS_POP}/tile-accept "['Return']" dconf write ${KEYS_POP}/tile-reject "['Escape']" # Move tiles dconf write ${KEYS_POP}/tile-move-left "['Left', '${left}']" dconf write ${KEYS_POP}/tile-move-right "['Right', '${right}']" dconf write ${KEYS_POP}/tile-move-up "['Up', '${up}']" dconf write ${KEYS_POP}/tile-move-down "['Down', '${down}']" # Resize Tiles dconf write ${KEYS_POP}/tile-resize-left "['Left', '${left}']" dconf write ${KEYS_POP}/tile-resize-right "['Right', '${right}']" dconf write ${KEYS_POP}/tile-resize-up "['Up', '${up}']" dconf write ${KEYS_POP}/tile-resize-down "['Down', '${down}']" # Select tiles dconf write ${KEYS_POP}/tile-swap-left "['Left', '${left}']" dconf write ${KEYS_POP}/tile-swap-right "['Right', '${right}']" dconf write ${KEYS_POP}/tile-swap-up "['Up', '${up}']" dconf write ${KEYS_POP}/tile-swap-down "['Down', '${down}']" # # end of tile adjustment mode bindings # ######################################### dconf write ${KEYS_POP}/show-title "false" # Various bindings and launchers # Lock screen dconf write ${KEYS_MEDIA}/screensaver "[';']" # Open Files dconf write ${KEYS_MEDIA}/home "['f']" # Launch email client dconf write ${KEYS_MEDIA}/email "['e']" # Launch terminal dconf write ${KEYS_MEDIA}/terminal "['Return']" # Launch web browser dconf write ${KEYS_MEDIA}/www "['w']" # Close Window dconf write ${KEYS_GNOME_WM}/close "['q']" # Various default settings (without keybindings) # Hide titles dconf write ${KEYS_POP}/show-title "false" dconf write ${KEYS_POP}/activate-launcher "['d', 'Space']"