dotfiles/.config/gnome-settings/key-bindings.ini

827 lines
34 KiB
INI

# Unify all key bindings to conveniently keep them consistent
# Target: `i3wm` defaults are the rough spec,
# but with "hjkl" for direction instead of "jkl;"
# and arrows mapped differently than "hjkl"
# => We make GNOME/forge bend to match
#
#--------------------------------------------------------------------------------------------------
# Modifier Layers
#--------------------------------------------------------------------------------------------------
#
# - Everything bound globally lives on <Super>
#
# <Super> + ... Navigate windows and workspaces,
# which includes launching the app we want to get to
#
# <Super><Shift> + ... Move windows within or to another workspace
#
# <Super><Control> + ... Swap and float windows (GNOME/forge only)
# + primary system layer, including
# media, devices, session, power, and some more
#
# <Super><Alt> + ... Grow windows
# + secondary system layer, including
# lights, brightness, and overflow from primary
#
# <Super><Alt><Shift> + ... Shrink windows
# + tertiary layer
#
# Each group may contain a few self-explanatory exceptions
#
# - These layers are never bound globally and stay free for the active app:
#
# <Control> + ...
#
# <Control><Shift> + ... Browser extension shortcuts
#
# <Control><Alt> + ...
#
# <Alt><Shift> + ... Browser extension shortcuts
#
# - F1-F12 are deliberately not bound globally, with a few exceptions,
#
# <Super>F1 to show these key bindings
#
# <Alt>F4 to close windows
#
# F11 to (un-)maximize a window
#
# <Control><Alt>F1-F12 are claimed by the X11 server for switching virtual terminals
#
# - A few exceptions to the layers above are kept on purpose,
# either because a binding is so common that people expect it,
# or because a key already says on its own what it does
#
# - Note that "compose:ralt" in ~/.config/gnome-settings/misc.ini
# turns the right <Alt> key into <Compose>
# => Every <Super><Alt> binding must be pressed with the LEFT <Alt>
#
#------------------------------------------------------------------------------------------------------------------------------------------------
# <Super> Layers
#------------------------------------------------------------------------------------------------------------------------------------------------
#
# - "hjkl" act on windows in the tree
# - arrows act on the "machine"
# - "WS" => "workspace"
# - Rows read from window navigation over launchers to system control,
# with the destructive session & power rows last
#
# | Navigation | Window Management | Primary System | Secondary System | Tertiary System
# | | | | |
# Key(s) | <Super> | <Super><Shift> | <Super><Control> | <Super><Alt> | <Super><Alt><Shift>
# ------------------+------------------------+------------------------+------------------------+------------------------+------------------------
# | Jump to window ... | Move window ... | Swap window with ... | Grow window at ... | Shrink window at ...
# k | ... up | ... up | ... window above | ... top edge | ... bottom edge
# j | ... down | ... down | ... window below | ... bottom edge | ... top edge
# h | ... left | ... left | ... window left | ... left edge | ... right edge
# l | ... right | ... right | ... window right | ... right edge | ... left edge
# | | | | |
# | | | Adjust volume ... | Adjust brightness ... |
# Up | | | ... up | ... up |
# Down | | | ... down | ... down |
# | | | | |
# | | | Play ... | Seek ... |
# Left | | | ... previous track | ... backward |
# Right | | | ... next track | ... forward |
# ------------------+------------------------+------------------------+------------------------+------------------------+------------------------
# m | Evolution | Maximize the window | Mute the volume | Mute the microphone |
# | | | | |
# f | Files (nautilus) | Toggle fullscreen | Toggle float ... | Toggle float ... | Toggle float ...
# | | | ... for the window | ... for the app | ... for entire WS
# | | | | |
# q | | Close the window | | |
# ------------------+------------------------+------------------------+------------------------+------------------------+------------------------
# b | Split beside | | Toggle bluetooth | Randomize wallpaper |
# v | Split below | | (Un-)Mount the ~/Vault | |
# e | Split toggle | | Show battery load | |
# s | Stacked layout | | | |
# w | Tabbed layout | | Toggle WiFi | Toggle airplane mode |
# ------------------+------------------------+------------------------+------------------------+------------------------+------------------------
# grave ~ ` | Toggle last two WS | | Swap last two windows | |
# | | | | |
# n | Jump to first ... | Move window to ... | | |
# | ... empty WS | ... first empty WS | | |
# | | | | |
# | Jump to WS ... | Move window to WS ... | | |
# 1 to 0 | ... No. 1 to 0 | ... No. 1 to 0 | | |
# | | | | Adjust key lights ... |
# comma < , | ... on the left | ... on the left | | ... down |
# period > . | ... on the right | ... on the right | | ... up |
# ------------------+------------------------+------------------------+------------------------+------------------------+------------------------
# slash / ? | GNOME's app drawer | GNOME's search | GNOME's message tray | Toggle key lights | Open quick settings
# | | | | |
# Tab | Show open windows | | | |
# | | | | |
# space | Open the launcher | Run a command | Toggle media playback | |
# | | | | |
# d | Open the launcher | Run a command | | Toggle dark scheme |
# | | | | |
# Return t | Alacritty (zsh) | GNOME Terminal (bash) | | |
# | | | | |
# semicolon : ; | Type an emoji | Copy an emoji | | |
# | | | | |
# i | Firefox | Chromium | Google Chrome | Toggle touchpad |
# ------------------+------------------------+------------------------+------------------------+------------------------+------------------------
# | | | | Make night light ... |
# bracketleft [ | | | | ... cooler |
# bracketright ] | | | | ... warmer |
# | | | | |
# backslash \ | | | | Force night light ... | Turn night light ...
# | | | | ... on/off | ... on/off
# ------------------+------------------------+------------------------+------------------------+------------------------+------------------------
# p | | | Open screenshot UI (1) | Capture the window (1) | Capture the screen (1)
# | | | | |
# r | | | Start screen recording | | Restart GNOME shell
# ------------------+------------------------+------------------------+------------------------+------------------------+------------------------
# Escape | | | Lock screen | Suspend with lock (2) | Hibernate with lock (2)
# | | | | |
# BackSpace Delete | | | Log out | Reboot the machine | Shutdown the machine
# | | | | |
# Home | | | Reboot the machine | |
# | | | | |
# End | | | Shutdown the machine | |
#
# (1) If a machine has a Print key,
# pressing Print (UI), <Alt>Print (Window), and <Shift>Print (Screen)
# also works
# (2) Bound in local/*.ini only, on machines that support it
#
#--------------------------------------------------------------------------------------------------
# Browser extension shortcuts
#--------------------------------------------------------------------------------------------------
#
# - Two in-app layers are used because no single layer is conflict-free:
# + <Control><Shift> dodges Firefox's <Alt> menu accelerators
# and Vimium, which treats <Alt><Shift>letter as the plain shifted letter
# + <Alt><Shift> keeps the c/d mnemonics for Dark Reader
#
# - Set manually, NOT managed by `dconf`:
# + Chrome => chrome://extensions/shortcuts (use scope: "In Chrome")
# + Firefox => about:addons -> gear icon -> "Manage Extension Shortcuts"
#
# - Notes:
# + "compose:ralt" applies here too => Must press with the left <Alt>
# + <Control><Shift>b toggles the bookmarks toolbar in Firefox
# + <Control><Shift>v shadows the browsers' "paste without formatting"
#
# Key | Extension | Action
# ------------------------+----------------+-----------------------------------------------------------------------
# <Control><Shift>l | Bitwarden | Open Bitwarden popup
# <Control><Shift>comma | Bitwarden | Generate & copy password
# <Control><Shift>period | Bitwarden | Autofill last login (i.e., "password")
# | |
# <Alt><Shift>d | Dark Reader | Toggle extension for all sites
# <Alt><Shift>c | Dark Reader | Toggle extension for current site only
#
[org/gnome/desktop/wm/keybindings]
activate-window-menu=@as []
always-on-top=@as []
# <Alt>F4 is an exception to the F-key rule,
# because everyone expects it
close=['<Super><Shift>q', '<Alt>F4']
# F11 is an exception to the F-key rule,
# because everyone expects it
toggle-fullscreen=['<Super><Shift>f', 'F11']
toggle-maximized=['<Super><Shift>m']
maximize=@as []
unmaximize=@as []
minimize=@as []
switch-applications=@as []
switch-applications-backward=@as []
switch-input-source=@as []
switch-input-source-backward=@as []
switch-group=@as []
switch-group-backward=@as []
switch-panels=@as []
switch-panels-backward=@as []
switch-windows=@as []
switch-windows-backward=@as []
cycle-group=@as []
cycle-group-backward=@as []
cycle-panels=@as []
cycle-panels-backward=@as []
# Kept mainly because other people may expect this;
# otherwise, redundant because of <Super>Tab
cycle-windows=['<Alt>Tab']
cycle-windows-backward=['<Alt><Shift>Tab']
begin-move=@as []
begin-resize=@as []
# Deprecated and ignored, listed only for completeness
panel-main-menu=@as []
# GNOME's own run prompt on <Alt>F2,
# replaced by `rofi` on <Super><Shift>space
panel-run-dialog=@as []
toggle-above=@as []
toggle-on-all-workspaces=@as []
show-desktop=@as []
# The following could also be populated automatically
# in [org/gnome/shell/extensions/space-bar/shortcuts]
# but we use the more deterministic configuration here
switch-to-workspace-1=[ '<Super>1']
switch-to-workspace-2=[ '<Super>2']
switch-to-workspace-3=[ '<Super>3']
switch-to-workspace-4=[ '<Super>4']
switch-to-workspace-5=[ '<Super>5']
switch-to-workspace-6=[ '<Super>6']
switch-to-workspace-7=[ '<Super>7']
switch-to-workspace-8=[ '<Super>8']
switch-to-workspace-9=[ '<Super>9']
switch-to-workspace-10=['<Super>0']
switch-to-workspace-11=@as []
switch-to-workspace-12=@as []
switch-to-workspace-last=@as []
switch-to-workspace-up=@as []
switch-to-workspace-down=@as []
switch-to-workspace-left=[ '<Super>comma']
switch-to-workspace-right=['<Super>period']
# "hotkey" in [desktop/ibus/panel/emoji]
# must remove <Super>period from its (default) binding;
# otherwise it contradicts "switch-to-workspace-right"
# The following could also be populated automatically
# in [org/gnome/shell/extensions/space-bar/shortcuts]
# but we use the more deterministic configuration here
move-to-workspace-1=[ '<Super><Shift>1']
move-to-workspace-2=[ '<Super><Shift>2']
move-to-workspace-3=[ '<Super><Shift>3']
move-to-workspace-4=[ '<Super><Shift>4']
move-to-workspace-5=[ '<Super><Shift>5']
move-to-workspace-6=[ '<Super><Shift>6']
move-to-workspace-7=[ '<Super><Shift>7']
move-to-workspace-8=[ '<Super><Shift>8']
move-to-workspace-9=[ '<Super><Shift>9']
move-to-workspace-10=['<Super><Shift>0']
move-to-workspace-11=@as []
move-to-workspace-12=@as []
move-to-workspace-last=@as []
move-to-workspace-up=@as []
move-to-workspace-down=@as []
move-to-workspace-left=[ '<Super><Shift>comma']
move-to-workspace-right=['<Super><Shift>period']
move-to-monitor-up=@as []
move-to-monitor-down=@as []
move-to-monitor-left=@as []
move-to-monitor-right=@as []
[org/gnome/shell/extensions/forge/keybindings]
# The latest `forge` on https://extensions.gnome.org/extension/4481/forge/
# may break "window-toggle-float", and is currently not maintained
# => Build from source with `gnome-shell-extension-forge-install`
window-toggle-float=['<Super><Control>f']
window-toggle-always-float=['<Super><Alt>f']
window-focus-up=[ '<Super>k']
window-focus-down=[ '<Super>j']
window-focus-left=[ '<Super>h']
window-focus-right=['<Super>l']
window-move-up=[ '<Super><Shift>k']
window-move-down=[ '<Super><Shift>j']
window-move-left=[ '<Super><Shift>h']
window-move-right=['<Super><Shift>l']
window-swap-up=[ '<Super><Control>k']
window-swap-down=[ '<Super><Control>j']
window-swap-left=[ '<Super><Control>h']
window-swap-right=['<Super><Control>l']
window-swap-last-active=['<Super><Control>grave']
# <Super><Alt> + hjkl pushes an edge outward (i.e., "grow")
# while <Super><Alt><Shift> + hjkl pulls the opposite edge inward (i.e., "shrink")
window-resize-top-increase=[ '<Super><Alt>k']
window-resize-top-decrease=[ '<Super><Alt><Shift>j']
window-resize-bottom-increase=['<Super><Alt>j']
window-resize-bottom-decrease=['<Super><Alt><Shift>k']
window-resize-left-increase=[ '<Super><Alt>h']
window-resize-left-decrease=[ '<Super><Alt><Shift>l']
window-resize-right-increase=[ '<Super><Alt>l']
window-resize-right-decrease=[ '<Super><Alt><Shift>h']
window-snap-center=@as []
window-snap-one-third-left=@as []
window-snap-one-third-right=@as []
window-snap-two-third-left=@as []
window-snap-two-third-right=@as []
window-gap-size-decrease=@as []
window-gap-size-increase=@as []
# Split direction is the container's axis, not the divider drawn
# - b => "beside"/"horizontal" => new window opens "beside", to the right
# - v => "vertical" => new window opens below
con-split-horizontal=['<Super>b']
con-split-vertical=[ '<Super>v']
con-split-layout-toggle=['<Super>e']
con-stacked-layout-toggle=['<Super>s']
con-tabbed-layout-toggle=['<Super>w']
con-tabbed-showtab-decoration-toggle=@as []
workspace-active-tile-toggle=['<Super><Alt><Shift>f']
prefs-open=@as []
# Allow tiling via drag-and-drop with the mouse
mod-mask-mouse-tile='None'
focus-border-toggle=@as []
prefs-tiling-toggle=@as []
[org/gnome/mutter/keybindings]
cancel-input-capture=@as []
# We must set the XF86 key here explicitly
# because by default <Super>p is also bound with it
# and we want to disable this
switch-monitor=['XF86Display']
toggle-tiled-left=@as []
toggle-tiled-right=@as []
[org/gnome/settings-daemon/plugins/media-keys]
search=['<Super><Shift>slash']
calculator=@as []
control-center=@as []
email=@as []
help=@as []
home=@as []
media=@as []
www=@as []
# Session & Power related
# "Escape" means "step away" while the session survives,
# and "the deeper the layer, the deeper the sleep"
#
# `suspend` and `hibernate` are bound per machine in local/*.ini
# because not every machine supports them:
# - `mem` and `disk` must appear in /sys/power/state
# - `hibernate` additionally needs more swap than RAM,
# with swap inside the LUKS container
#
screensaver=['<Super><Control>Escape']
#
# Reserved: <Super><Alt>Escape
suspend=@as []
#
# Reserved: <Super><Alt><Shift>Escape
hibernate=@as []
# "BackSpace" means "end the session",
# and "the deeper the layer, the further the machine goes"
#
# "Delete" mirrors it because on many keyboards it sits in the top right corner
# while "BackSpace" is the one key guaranteed to exist
#
# "Home" and "End" say what they do on their own
# (i.e., "back to the start" and "the end");
# so, they need no layer to express severity
# and serve as intuitive shortcuts
logout=[ '<Super><Control>BackSpace', '<Super><Control>Delete']
reboot=[ '<Super><Alt>BackSpace', '<Super><Alt>Delete', '<Super><Control>Home']
shutdown=['<Super><Alt><Shift>BackSpace', '<Super><Alt><Shift>Delete', '<Super><Control>End']
# The physical power button
# is disarmed by "power-button-action" in ~/.config/gnome-settings/misc.ini
# => A binding here would do "nothing" anyways
power=@as []
# Devices
# Shows an OSD message only if a machine has a battery
battery-status=['<Super><Control>e']
touchpad-toggle=['<Super><Alt>i']
touchpad-on=@as []
touchpad-off=@as []
# "Airplane mode", i.e., all radios at once
# (for WiFi only see <Super><Control>w below)
rfkill=['<Super><Alt>w']
rfkill-bluetooth=['<Super><Control>b']
# Audio related
# `play` toggles, so `pause` and `stop` are not needed
play=['<Super><Control>space']
pause=@as []
stop=@as []
eject=@as []
next=[ '<Super><Control>Right']
previous=['<Super><Control>Left']
playback-forward=['<Super><Alt>Right']
playback-rewind=[ '<Super><Alt>Left']
playback-random=@as []
playback-repeat=@as []
volume-up=['<Super><Control>Up']
volume-up-precise=@as []
volume-up-quiet=@as []
volume-down=['<Super><Control>Down']
volume-down-precise=@as []
volume-down-quiet=@as []
volume-mute=['<Super><Control>m']
volume-mute-quiet=@as []
mic-mute=['<Super><Alt>m']
# Screen and light related
# "Auto rotate"
rotate-video-lock=@as []
toggle-contrast=@as []
screen-brightness-up=[ '<Super><Alt>Up']
screen-brightness-down=['<Super><Alt>Down']
screen-brightness-cycle=@as []
magnifier=@as []
magnifier-zoom-in=@as []
magnifier-zoom-out=@as []
decrease-text-size=@as []
increase-text-size=@as []
screenreader=@as []
on-screen-keyboard=@as []
keyboard-brightness-up=[ '<Super><Alt>period']
keyboard-brightness-down=[ '<Super><Alt>comma']
keyboard-brightness-toggle=['<Super><Alt>slash']
# Non-default or "custom" GNOME bindings
# Due to the structure of the below groups,
# we must duplicate some of them to allow multiple bindings
custom-keybindings=['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/show_key_bindings/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/move_window_to_empty_workspace/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/list_windows/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/show_launcher_1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/show_launcher_2/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/show_run_1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/show_run_2/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_primary_terminal_1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_primary_terminal_2/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_secondary_terminal_1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_secondary_terminal_2/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_file_manager/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_firefox/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_chromium/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_google_chrome/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_evolution/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/dark_scheme_toggle/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_force/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_toggle/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_make_cooler/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_make_warmer/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/randomize_background/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/wifi_toggle/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/restart_gnome_shell/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emoji_picker_type/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emoji_picker_copy/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/vault_toggle/']
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/show_key_bindings]
binding='<Super>F1'
command='/home/user/.local/bin/key-bindings'
name='Show the key bindings'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/move_window_to_empty_workspace]
binding='<Super><Shift>n'
command='/home/user/.local/bin/move-window-to-empty-workspace'
name='Move window to first empty workspace'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/list_windows]
binding='<Super>Tab'
command='rofi -show window'
name='Show open windows'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/show_launcher_1]
binding='<Super>space'
command='rofi -show drun'
name='Open the launcher [1/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/show_launcher_2]
# i3wm's default
binding='<Super>d'
command='rofi -show drun'
name='Open the launcher [2/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/show_run_1]
binding='<Super><Shift>space'
command='rofi -show run'
name='Run a command [1/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/show_run_2]
binding='<Super><Shift>d'
command='rofi -show run'
name='Run a command [2/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_primary_terminal_1]
# i3wm's default, used for our primary terminal with `zsh`
binding='<Super>Return'
command='alacritty'
name='Alacritty (zsh) [1/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_primary_terminal_2]
binding='<Super>t'
command='alacritty'
name='Alacritty (zsh) [2/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_secondary_terminal_1]
# Our secondary terminal with `bash`
binding='<Super><Shift>Return'
command='gnome-terminal'
name='GNOME Terminal (bash) [1/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_secondary_terminal_2]
binding='<Super><Shift>t'
command='gnome-terminal'
name='GNOME Terminal (bash) [2/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_file_manager]
binding='<Super>f'
command='nautilus'
name='Files'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_firefox]
binding='<Super>i'
command='firefox-esr'
name='Firefox'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_chromium]
binding='<Super><Shift>i'
command='chromium'
name='Chromium'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_google_chrome]
binding='<Super><Control>i'
command='google-chrome'
name='Google Chrome'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_evolution]
binding='<Super>m'
command='/home/user/.local/bin/evolution-on-workspace-0'
name='Evolution'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/dark_scheme_toggle]
binding='<Super><Alt>d'
command='/home/user/.local/bin/dark-scheme-toggle'
name='Toggle dark scheme'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_force]
binding='<Super><Alt>backslash'
command='/home/user/.local/bin/night-light-toggle-schedule'
name='Force night light on/off (i.e., override the automatic schedule)'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_toggle]
binding='<Super><Alt><Shift>backslash'
command='/home/user/.local/bin/night-light-toggle-enabled'
name='Turn night light on/off (i.e., the feature as a whole)'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_make_cooler]
binding='<Super><Alt>bracketleft'
command='/home/user/.local/bin/night-light-make-cooler'
name='Make night light cooler'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_make_warmer]
binding='<Super><Alt>bracketright'
command='/home/user/.local/bin/night-light-make-warmer'
name='Make night light warmer'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/randomize_background]
binding='<Super><Alt>b'
command='/home/user/.local/bin/randomize-background'
name='Randomize wallpaper'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/wifi_toggle]
binding='<Super><Control>w'
command='/home/user/.local/bin/wifi-toggle'
name='Toggle WiFi'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/restart_gnome_shell]
binding='<Super><Alt><Shift>r'
command='/home/user/.local/bin/gnome-shell-restart'
name='Restart GNOME shell (X11 only)'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emoji_picker_type]
binding='<Super>semicolon'
command='/home/user/.local/bin/rofimoji --action type'
name='Type an emoji'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emoji_picker_copy]
binding='<Super><Shift>semicolon'
command='/home/user/.local/bin/rofimoji --action copy'
name='Copy an emoji'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/vault_toggle]
binding='<Super><Control>v'
command='/home/user/.local/bin/vault-toggle'
name='(Un-)Mount the vault'
[org/gnome/shell/keybindings]
# Overview is still reachable indirectly but turned off on purpose
toggle-application-view=[ '<Super>slash']
toggle-message-tray=[ '<Super><Control>slash']
toggle-overview=@as []
toggle-quick-settings=['<Super><Alt><Shift>slash']
# Take fast screenshots without manual selection first,
# as opposed to the interactive UI below
screenshot=[ '<Shift>Print', '<Super><Alt><Shift>p']
screenshot-window=['<Alt>Print', '<Super><Alt>p']
# Manually select what to screenshot ...
show-screenshot-ui=['Print', '<Super><Control>p']
# ... or what to record
show-screen-recording-ui=['<Super><Control>r']
focus-active-notification=@as []
# The defaults would collide with "screen-brightness-up/down" on <Super><Alt> + Up/Down
shift-overview-up=@as []
shift-overview-down=@as []
# Disable GNOME's default behavior of opening "favorite" apps
# with <Super>1-10 and instead switch workspaces
switch-to-application-1=@as []
switch-to-application-2=@as []
switch-to-application-3=@as []
switch-to-application-4=@as []
switch-to-application-5=@as []
switch-to-application-6=@as []
switch-to-application-7=@as []
switch-to-application-8=@as []
switch-to-application-9=@as []
# `switch-to-application-10=@as []` does not exist by default
open-new-window-application-1=@as []
open-new-window-application-2=@as []
open-new-window-application-3=@as []
open-new-window-application-4=@as []
open-new-window-application-5=@as []
open-new-window-application-6=@as []
open-new-window-application-7=@as []
open-new-window-application-8=@as []
open-new-window-application-9=@as []
[org/gnome/shell/extensions/space-bar/shortcuts]
# We use the `switch-to-workspace-N`s in [org/gnome/desktop/wm/keybindings]
enable-activate-workspace-shortcuts=false
# We use the `move-to-workspace-N`s in [org/gnome/desktop/wm/keybindings]
enable-move-to-workspace-shortcuts=false
# Jump back to the previous workspace,
# also allowing toggling between two workspaces
# (Note that "grave" is the formal word for "backtick")
activate-previous-key=['<Super>grave']
# Jump to the first empty workspace
activate-empty-key=['<Super>n']
# Use the mouse to move to the previous workspace
# by clicking on the current one (again)
back-and-forth=false
move-workspace-left=@as []
move-workspace-right=@as []
# Preferences window
open-menu=@as []
[org/gnome/terminal/legacy/keybindings]
copy='<Control><Shift>c'
paste='<Control><Shift>v'
# Search in GNOME's terminal:
# - terminal feature that belongs on the in-app <Control><Shift> layer
# - the bare <Control> layer must stay free for the programs running inside,
# for example, <Control>f forwards pages in `vi`, `less`, and others,
# and <Control>g aborts or shows file info
# - these bindings are also the default
find='<Control><Shift>f'
find-clear='<Control><Shift>j'
find-next='<Control><Shift>g'
find-previous='<Control><Shift>h'
fullscreen='F11'
# "equal" because it is below "plus" on a US keyboard
zoom-in='<Control>equal'
zoom-out='<Control>minus'
zoom-normal='<Control>0'
# Unset on purpose because with a tiling window manager
# we don't want to have to manage tabs inside a window
close-tab='disabled'
close-window='disabled'
new-tab='disabled'
new-window='disabled'
detach-tab='disabled'
next-tab='disabled'
prev-tab='disabled'
move-tab-left='disabled'
move-tab-right='disabled'
switch-to-tab-1='disabled'
switch-to-tab-2='disabled'
switch-to-tab-3='disabled'
switch-to-tab-4='disabled'
switch-to-tab-5='disabled'
switch-to-tab-6='disabled'
switch-to-tab-7='disabled'
switch-to-tab-8='disabled'
switch-to-tab-9='disabled'
switch-to-tab-10='disabled'
switch-to-tab-11='disabled'
switch-to-tab-12='disabled'
switch-to-tab-13='disabled'
switch-to-tab-14='disabled'
switch-to-tab-15='disabled'
switch-to-tab-16='disabled'
switch-to-tab-17='disabled'
switch-to-tab-18='disabled'
switch-to-tab-19='disabled'
switch-to-tab-20='disabled'
switch-to-tab-21='disabled'
switch-to-tab-22='disabled'
switch-to-tab-23='disabled'
switch-to-tab-24='disabled'
switch-to-tab-25='disabled'
switch-to-tab-26='disabled'
switch-to-tab-27='disabled'
switch-to-tab-28='disabled'
switch-to-tab-29='disabled'
switch-to-tab-30='disabled'
switch-to-tab-31='disabled'
switch-to-tab-32='disabled'
switch-to-tab-33='disabled'
switch-to-tab-34='disabled'
switch-to-tab-35='disabled'
switch-to-tab-last='disabled'
[desktop/ibus/panel/emoji]
# <Super>period is the default "hotkey", but it conflicts with
# "switch-to-workspace-right" in [org/gnome/desktop/wm/keybindings]
#
# Instead of GNOME's `ibus emoji` we use `rofimoji`
# in [org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emoji_picker_*]
#
hotkey=@as []