Watch
1
0
Fork
You've already forked dotfiles
0
dotfiles/.config/gnome-settings/key-bindings.ini

485 lines
14 KiB
INI
Raw Normal View History

2026-08-03 14:30:55 +02:00
# Unify all key bindings to conveniently keep them consistent
# Target: `i3wm` defaults are the spec
# => We make GNOME/forge bend to match
# Modifier layers (with exceptions):
#
# <Control> + ... Reserved for in-app shortcuts,
# <Control><Shift> + ... e.g., `gnome-terminal`
#
# <Control><Alt> + ... Primary system layer:
# media, devices, session, power, and some more
#
# <Alt><Shift> + ... Secondary system layer:
# lights, brightness, and overflow from primary
#
# <Super> + ... Navigate windows and workspaces
# and very few extras
#
# <Super><Shift> + ... Move windows within or to another workspace
#
# <Super><Control> + ... Swap windows (GNOME/forge only)
#
# <Super><Alt> + ... Grow windows
# <Super><Alt><Shift> + ... Shrink windows
#
# F1-F12 Deliberately not bound globally
# (Exceptions: F11 for fullscreen and <Alt>F4)
[org/gnome/desktop/wm/keybindings]
activate-window-menu=@as []
always-on-top=@as []
# <Super><Shift>q is i3wm's default
close=['<Super>q', '<Super><Shift>q', '<Alt>F4']
toggle-fullscreen=['<Super>f', 'F11']
toggle-maximized=['<Super>m', '<Super><Shift>f']
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 []
cycle-group=@as []
cycle-group-backward=@as []
cycle-panels=@as []
cycle-panels-backward=@as []
cycle-windows=['<Alt>Tab']
cycle-windows-backward=['<Alt><Shift>Tab']
begin-move=@as []
begin-resize=@as []
# The following could also be populated automatically
# in [org/gnome/shell/extensions/space-bar/shortcuts]
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-last=@as []
switch-to-workspace-up=@as []
switch-to-workspace-down=@as []
switch-to-workspace-left=['<Super>comma']
2026-08-14 20:07:08 +02:00
# In [org/freedesktop/ibus/panel/emoji], "hotkey"
# must be changed from its default, which is also <Super>period
2026-08-03 14:30:55 +02:00
switch-to-workspace-right=['<Super>period']
# The following could also be populated automatically
# in [org/gnome/shell/extensions/space-bar/shortcuts]
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-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/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>slash']
calculator=@as []
control-center=@as []
email=@as []
help=@as []
home=@as []
media=@as []
www=@as []
# Session & Power related
screensaver=['<Control><Alt>l']
logout=['<Control><Alt>BackSpace', '<Control><Alt>Delete']
suspend=['<Control><Alt>Escape']
hibernate=@as []
reboot=['<Control><Alt>Home']
power=@as []
shutdown=['<Control><Alt>End']
# Devices
battery-status=['<Control><Alt>e']
touchpad-toggle=['<Control><Alt>i']
touchpad-on=@as []
touchpad-off=@as []
# "Airplane mode"
rfkill=['<Control><Alt>w']
rfkill-bluetooth=['<Control><Alt>b']
# Audio related
play=['<Control><Alt>space']
pause=@as []
stop=@as []
eject=@as []
next=['<Control><Alt>Right']
previous=['<Control><Alt>Left']
2026-08-14 20:07:08 +02:00
playback-forward=['<Control><Alt>bracketright']
playback-rewind=['<Control><Alt>bracketleft']
2026-08-03 14:30:55 +02:00
playback-random=@as []
playback-repeat=@as []
volume-up=['<Control><Alt>Up']
volume-up-precise=@as []
volume-up-quiet=@as []
volume-down=['<Control><Alt>Down']
volume-down-precise=@as []
volume-down-quiet=@as []
volume-mute=['<Control><Alt>m']
volume-mute-quiet=@as []
mic-mute=['<Alt><Shift>m']
# Screen and light related
# "Auto rotate"
rotate-video-lock=@as []
toggle-contrast=@as []
screen-brightness-up=['<Alt><Shift>Up']
screen-brightness-down=['<Alt><Shift>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=['<Alt><Shift>bracketright']
keyboard-brightness-down=['<Alt><Shift>bracketleft']
keyboard-brightness-toggle=['<Alt><Shift>backslash']
# Non-default GNOME bindings
custom-keybindings=['/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/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/dark_theme_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_warmer/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_make_cooler/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/randomize_background/']
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/list_windows]
binding='<Super>Tab'
command='rofi -show window'
name='Windows'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/show_launcher_1]
binding='<Super>space'
command='rofi -show drun'
name='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='Launcher [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='/usr/bin/alacritty'
name='Alacritty [1/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_primary_terminal_2]
binding='<Control><Alt>Return'
command='/usr/bin/alacritty'
name='Alacritty [2/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_secondary_terminal_1]
# Our secondary terminal with `bash`
binding='<Super>t'
command='/usr/bin/gnome-terminal'
name='GNOME Terminal [1/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch_secondary_terminal_2]
# GNOME's actual default, used for our secondary terminal with `bash`
binding='<Control><Alt>t'
command='/usr/bin/gnome-terminal'
name='GNOME Terminal [2/2]'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/dark_theme_toggle]
binding='<Control><Alt>d'
command='/home/user/.local/bin/dark-theme-toggle'
name='Color Scheme: Toggle dark vs. light'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_force]
binding='<Control><Alt>n'
command='/home/user/.local/bin/night-light-toggle-schedule'
name='Night Light: Force the feature on right now, or back to automatic schedule'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_toggle]
binding='<Alt><Shift>n'
command='/home/user/.local/bin/night-light-toggle-enabled'
name='Night Light: Enable the feature, or disable it'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_make_warmer]
binding='<Alt><Shift>Right'
command='/home/user/.local/bin/night-light-make-warmer'
name='Night Light: Make screen warmer'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/night_light_make_cooler]
binding='<Alt><Shift>Left'
command='/home/user/.local/bin/night-light-make-cooler'
name='Night Light: Make screen cooler'
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/randomize_background]
binding='<Alt><Shift>b'
command='/home/user/.local/bin/randomize-background'
name='Background: Pick a random wallpaper from the cloud'
[org/gnome/shell/keybindings]
toggle-application-view=['<Control><Alt>a']
toggle-message-tray=['<Control><Alt>slash']
toggle-overview=@as []
toggle-quick-settings=['<Control><Alt>backslash']
# To take fast screenshots without manual selection first
# as opposed to the simple 'Print' below
screenshot=['<Shift>Print']
screenshot-window=['<Alt>Print']
# Manually select what to screenshot ...
show-screenshot-ui=['Print', '<Control><Alt>p', '<Control><Alt>s']
# ... or what to record
show-screen-recording-ui=['<Control><Alt>r']
focus-active-notification=@as []
# The defaults would collide with forge's "window-resize-*" 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/forge/keybindings]
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 []
window-gap-size-decrease=@as []
window-gap-size-increase=@as []
workspace-active-tile-toggle=['<Super><Shift>y']
window-toggle-float=['<Super><Shift>space']
window-toggle-always-float=@as []
window-focus-up=['<Super>k', '<Super>Up']
window-focus-down=['<Super>j', '<Super>Down']
window-focus-left=['<Super>h', '<Super>Left']
window-focus-right=['<Super>l', '<Super>Right']
window-move-up=['<Super><Shift>k', '<Super><Shift>Up']
window-move-down=['<Super><Shift>j', '<Super><Shift>Down']
window-move-left=['<Super><Shift>h', '<Super><Shift>Left']
window-move-right=['<Super><Shift>l', '<Super><Shift>Right']
window-swap-up=['<Super><Control>k', '<Super><Control>Up']
window-swap-down=['<Super><Control>j', '<Super><Control>Down']
window-swap-left=['<Super><Control>h', '<Super><Control>Left']
window-swap-right=['<Super><Control>l', '<Super><Control>Right']
window-swap-last-active=['<Super><Control>Return']
# <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', '<Super><Alt>Up']
window-resize-top-decrease=['<Super><Alt><Shift>j', '<Super><Alt><Shift>Down']
window-resize-bottom-increase=['<Super><Alt>j', '<Super><Alt>Down']
window-resize-bottom-decrease=['<Super><Alt><Shift>k', '<Super><Alt><Shift>Up']
window-resize-left-increase=['<Super><Alt>h', '<Super><Alt>Left']
window-resize-left-decrease=['<Super><Alt><Shift>l', '<Super><Alt><Shift>Right']
window-resize-right-increase=['<Super><Alt>l', '<Super><Alt>Right']
window-resize-right-decrease=['<Super><Alt><Shift>h', '<Super><Alt><Shift>Left']
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 []
# 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 []
[org/gnome/shell/extensions/nightthemeswitcher/time]
# This extension is not in use any more and its config kept as archive
# nightthemeswitcher-ondemand-keybinding=['<Control><Alt>d']
[org/gnome/shell/extensions/project-hamster]
# This extension is not in use any more and its config kept as archive
# show-hamster-dropdown=['<Control><Alt>h']
[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 next 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]
close-tab='<Control>w'
close-window='<Control>q'
find='<Control>f'
find-clear='<Control><Shift>f'
find-next='<Control>g'
find-previous='<Control><Shift>g'
new-tab='<Control>t'
new-window='<Control>n'
# "equal" because it is below "plus" on a US keyboard
zoom-in='<Control>equal'
zoom-out='<Control>minus'
# To avoid conflict with "switch-to-workspace-right" in [org/gnome/desktop/wm/keybindings]
[org/freedesktop/ibus/panel/emoji]
2026-08-14 20:07:08 +02:00
hotkey=['<Control><Alt>period']