Add configuration for GNOME
This commit is contained in:
parent
b426e53e8e
commit
5166031fa2
2 changed files with 325 additions and 0 deletions
254
.config/gnome-settings/key-bindings.ini
Normal file
254
.config/gnome-settings/key-bindings.ini
Normal file
|
|
@ -0,0 +1,254 @@
|
||||||
|
# Unify all key bindings in this file to conveniently keep them consistent
|
||||||
|
|
||||||
|
|
||||||
|
[org/gnome/desktop/wm/keybindings]
|
||||||
|
|
||||||
|
# <Super><Shift>q is i3wm's default
|
||||||
|
close=['<Super>Q', '<Super><Shift>Q', '<Primary><Shift>Q', '<Alt>F4']
|
||||||
|
|
||||||
|
maximize=@as []
|
||||||
|
unmaximize=@as []
|
||||||
|
toggle-maximized=['<Super>M']
|
||||||
|
minimize=@as []
|
||||||
|
|
||||||
|
switch-applications=['<Super>Tab', '<Primary>Tab']
|
||||||
|
switch-applications-backward=['<Super><Shift>Tab', '<Primary><Shift>Tab']
|
||||||
|
|
||||||
|
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=@as []
|
||||||
|
cycle-windows-backward=@as []
|
||||||
|
|
||||||
|
begin-move=@as []
|
||||||
|
begin-resize=@as []
|
||||||
|
|
||||||
|
# <Super>1-5 is i3wm's default; the directional variants are cleared
|
||||||
|
# because forge uses <Super><Primary>Left/Right to swap windows
|
||||||
|
switch-to-workspace-1=['<Super>1', '<Super><Primary>1']
|
||||||
|
switch-to-workspace-2=['<Super>2', '<Super><Primary>2']
|
||||||
|
switch-to-workspace-3=['<Super>3', '<Super><Primary>3']
|
||||||
|
switch-to-workspace-4=['<Super>4', '<Super><Primary>4']
|
||||||
|
switch-to-workspace-5=['<Super>5', '<Super><Primary>5']
|
||||||
|
switch-to-workspace-6=['<Super>6', '<Super><Primary>6']
|
||||||
|
switch-to-workspace-7=['<Super>7', '<Super><Primary>7']
|
||||||
|
switch-to-workspace-8=['<Super>8', '<Super><Primary>8']
|
||||||
|
switch-to-workspace-9=['<Super>9', '<Super><Primary>9']
|
||||||
|
switch-to-workspace-10=['<Super>0', '<Super><Primary>0']
|
||||||
|
switch-to-workspace-last=@as []
|
||||||
|
switch-to-workspace-left=@as []
|
||||||
|
switch-to-workspace-right=@as []
|
||||||
|
|
||||||
|
# <Super><Shift>1-5 is i3wm's default
|
||||||
|
move-to-workspace-1=['<Super><Shift>1', '<Primary><Shift>1']
|
||||||
|
move-to-workspace-2=['<Super><Shift>2', '<Primary><Shift>2']
|
||||||
|
move-to-workspace-3=['<Super><Shift>3', '<Primary><Shift>3']
|
||||||
|
move-to-workspace-4=['<Super><Shift>4', '<Primary><Shift>4']
|
||||||
|
move-to-workspace-5=['<Super><Shift>5', '<Primary><Shift>5']
|
||||||
|
move-to-workspace-6=['<Super><Shift>6', '<Primary><Shift>6']
|
||||||
|
move-to-workspace-7=['<Super><Shift>7', '<Primary><Shift>7']
|
||||||
|
move-to-workspace-8=['<Super><Shift>8', '<Primary><Shift>8']
|
||||||
|
move-to-workspace-9=['<Super><Shift>9', '<Primary><Shift>9']
|
||||||
|
move-to-workspace-10=['<Super><Shift>0', '<Primary><Shift>0']
|
||||||
|
move-to-workspace-last=@as []
|
||||||
|
move-to-workspace-left=@as []
|
||||||
|
move-to-workspace-right=@as []
|
||||||
|
|
||||||
|
|
||||||
|
[org/gnome/mutter/keybindings]
|
||||||
|
|
||||||
|
toggle-tiled-left=@as []
|
||||||
|
toggle-tiled-right=@as []
|
||||||
|
|
||||||
|
|
||||||
|
[org/gnome/settings-daemon/plugins/media-keys]
|
||||||
|
|
||||||
|
email=['<Super>E']
|
||||||
|
help=@as []
|
||||||
|
home=['<Super>F']
|
||||||
|
search=['<Super>slash']
|
||||||
|
terminal=@as []
|
||||||
|
www=['<Super>B']
|
||||||
|
|
||||||
|
screensaver=['<Super>Escape']
|
||||||
|
logout=@as []
|
||||||
|
|
||||||
|
# Besides the numkeys, we use "/", ".", and "," to control the media
|
||||||
|
play=['<Primary><Alt>Slash']
|
||||||
|
next=['<Primary><Alt>Right']
|
||||||
|
previous=['<Primary><Alt>Left']
|
||||||
|
# Note: I often type "m" for "mute" intuitively
|
||||||
|
volume-mute=['<Primary><Alt>M']
|
||||||
|
volume-up=['<Primary><Alt>Up']
|
||||||
|
volume-down=['<Primary><Alt>Down']
|
||||||
|
|
||||||
|
magnifier=@as []
|
||||||
|
magnifier-zoom-in=@as []
|
||||||
|
magnifier-zoom-out=@as []
|
||||||
|
|
||||||
|
on-screen-keyboard=@as []
|
||||||
|
screenreader=@as []
|
||||||
|
|
||||||
|
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/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7/']
|
||||||
|
|
||||||
|
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0]
|
||||||
|
binding='<Primary><Alt>Home'
|
||||||
|
command='gnome-session-quit --reboot'
|
||||||
|
name='Reboot Machine'
|
||||||
|
|
||||||
|
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1]
|
||||||
|
binding='<Primary><Alt>End'
|
||||||
|
command='gnome-session-quit --power-off'
|
||||||
|
name='Shutdown Machine'
|
||||||
|
|
||||||
|
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2]
|
||||||
|
binding='<Primary><Alt>Delete'
|
||||||
|
command='gnome-session-quit --logout'
|
||||||
|
name='Log out (1)'
|
||||||
|
|
||||||
|
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3]
|
||||||
|
binding='<Primary><Alt>BackSpace'
|
||||||
|
command='gnome-session-quit --logout'
|
||||||
|
name='Log out (2)'
|
||||||
|
|
||||||
|
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4]
|
||||||
|
binding='<Super>G'
|
||||||
|
command='google-chrome'
|
||||||
|
name='Google Chrome'
|
||||||
|
|
||||||
|
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5]
|
||||||
|
# Mimic i3wm's default way to open terminals
|
||||||
|
binding='<Super>Return'
|
||||||
|
command='/usr/bin/alacritty'
|
||||||
|
name='Terminal (1)'
|
||||||
|
|
||||||
|
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6]
|
||||||
|
# Faster than the default <Primary><Alt>t
|
||||||
|
binding='<Super>T'
|
||||||
|
command='/usr/bin/alacritty'
|
||||||
|
name='Terminal (2)'
|
||||||
|
|
||||||
|
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7]
|
||||||
|
# Gnome's actual default, but with a custom terminal emulator
|
||||||
|
binding='<Primary><Alt>T'
|
||||||
|
command='/usr/bin/alacritty'
|
||||||
|
name='Terminal (3)'
|
||||||
|
|
||||||
|
|
||||||
|
[org/gnome/shell/extensions/forge/keybindings]
|
||||||
|
|
||||||
|
mod-mask-mouse-tile='Super'
|
||||||
|
|
||||||
|
# In [org/freedesktop/ibus/panel/emoji], "hotkey" must be "@as []"
|
||||||
|
# to turn GNOME's Emoji picker off, which also uses <Super>Period
|
||||||
|
prefs-open=['<Super>Period']
|
||||||
|
|
||||||
|
focus-border-toggle=@as []
|
||||||
|
prefs-tiling-toggle=@as []
|
||||||
|
|
||||||
|
# Changing the gap size dynamically is not needed
|
||||||
|
window-gap-size-decrease=@as []
|
||||||
|
window-gap-size-increase=@as []
|
||||||
|
|
||||||
|
workspace-active-tile-toggle=['<Super><Shift>Y']
|
||||||
|
|
||||||
|
window-toggle-float=['<Super>Y']
|
||||||
|
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><Primary>k', '<Super><Primary>Up']
|
||||||
|
window-swap-down=['<Super><Primary>j', '<Super><Primary>Down']
|
||||||
|
window-swap-left=['<Super><Primary>h', '<Super><Primary>Left']
|
||||||
|
window-swap-right=['<Super><Primary>l', '<Super><Primary>Right']
|
||||||
|
|
||||||
|
window-swap-last-active=['<Super><Primary>Return']
|
||||||
|
|
||||||
|
window-resize-top-increase=['<Super><Alt>k', '<Super><Alt>Up']
|
||||||
|
window-resize-top-decrease=['<Super><Alt><Primary>j', '<Super><Alt><Primary>Down']
|
||||||
|
window-resize-bottom-increase=['<Super><Alt>j', '<Super><Alt>Down']
|
||||||
|
window-resize-bottom-decrease=['<Super><Alt><Primary>k', '<Super><Alt><Primary>Up']
|
||||||
|
window-resize-left-increase=['<Super><Alt>h', '<Super><Alt>Left']
|
||||||
|
window-resize-left-decrease=['<Super><Alt><Primary>l', '<Super><Alt><Primary>Right']
|
||||||
|
window-resize-right-increase=['<Super><Alt>l', '<Super><Alt>Right']
|
||||||
|
window-resize-right-decrease=['<Super><Alt><Primary>h', '<Super><Alt><Primary>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 []
|
||||||
|
|
||||||
|
# Container stuff
|
||||||
|
con-split-horizontal=@as []
|
||||||
|
con-split-vertical=@as []
|
||||||
|
con-split-layout-toggle=@as []
|
||||||
|
con-stacked-layout-toggle=@as []
|
||||||
|
con-tabbed-layout-toggle=@as []
|
||||||
|
con-tabbed-showtab-decoration-toggle=@as []
|
||||||
|
|
||||||
|
|
||||||
|
[org/gnome/shell/extensions/nightthemeswitcher/time]
|
||||||
|
|
||||||
|
nightthemeswitcher-ondemand-keybinding=['<Primary><Alt>D']
|
||||||
|
|
||||||
|
|
||||||
|
[org/gnome/shell/keybindings]
|
||||||
|
|
||||||
|
focus-active-notification=@as []
|
||||||
|
open-application-menu=@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 []
|
||||||
|
|
||||||
|
toggle-message-tray=@as []
|
||||||
|
toggle-overview=@as []
|
||||||
|
|
||||||
|
|
||||||
|
[org/gnome/terminal/legacy/keybindings]
|
||||||
|
|
||||||
|
close-tab='<Primary>W'
|
||||||
|
close-window='<Primary>Q'
|
||||||
|
|
||||||
|
find='<Primary>F'
|
||||||
|
find-clear='<Primary>J'
|
||||||
|
find-next='<Primary>N'
|
||||||
|
find-previous='<Primary>H'
|
||||||
|
|
||||||
|
new-tab='<Primary>T'
|
||||||
|
new-window='<Primary>N'
|
||||||
|
|
||||||
|
zoom-in='<Primary><Shift>Plus'
|
||||||
|
# default: zoom-out='<Primary>minus'
|
||||||
|
|
||||||
|
|
||||||
|
# To avoid conflict with prefs-open in [org/gnome/shell/extensions/forge/keybindings]
|
||||||
|
[org/freedesktop/ibus/panel/emoji]
|
||||||
|
hotkey=@as []
|
||||||
71
.local/bin/restore-gnome
Executable file
71
.local/bin/restore-gnome
Executable file
|
|
@ -0,0 +1,71 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Restore the Gnome settings from ~/.config/gnome-settings/*.ini
|
||||||
|
#
|
||||||
|
# `dconf load` merges into the existing state, implying
|
||||||
|
# that keys removed from the *.ini files would still be active
|
||||||
|
# => Reset the subtrees we fully manage first,
|
||||||
|
# which makes the resulting state deterministic
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||||
|
|
||||||
|
SETTINGS_DIR="$XDG_CONFIG_HOME/gnome-settings"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Subtrees fully described by the *.ini files
|
||||||
|
RESET_PATHS="
|
||||||
|
/org/gnome/desktop/app-folders/
|
||||||
|
/org/gnome/desktop/notifications/
|
||||||
|
/org/gnome/desktop/wm/keybindings/
|
||||||
|
/org/gnome/mutter/keybindings/
|
||||||
|
/org/gnome/settings-daemon/plugins/media-keys/
|
||||||
|
/org/gnome/shell/extensions/
|
||||||
|
/org/gnome/shell/keybindings/
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ! command -v dconf >/dev/null 2>&1; then
|
||||||
|
echo "dconf is not installed => Nothing to do" >&2
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ ! -d "$SETTINGS_DIR" ]; then
|
||||||
|
echo "No settings found at: $SETTINGS_DIR" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
echo "Backing up the current GNOME settings to: /tmp/gnome-settings-backup.ini"
|
||||||
|
dconf dump / > /tmp/gnome-settings-backup.ini
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
echo "Resetting the managed subtrees"
|
||||||
|
|
||||||
|
for path in $RESET_PATHS; do
|
||||||
|
echo " $path"
|
||||||
|
dconf reset -f "$path"
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
echo "Loading the settings from: $SETTINGS_DIR"
|
||||||
|
|
||||||
|
for file in "$SETTINGS_DIR"/*.ini; do
|
||||||
|
[ -e "$file" ] || continue # because the glob does not expand if empty
|
||||||
|
echo " $(basename "$file")"
|
||||||
|
dconf load / < "$file"
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Log out and back in for all changes to take effect"
|
||||||
|
echo ""
|
||||||
Loading…
Reference in a new issue