Skip to content

Instantly share code, notes, and snippets.

@metainfa
Last active May 31, 2017 10:33
Show Gist options
  • Save metainfa/8a9c021d905bc3dd902ac1785c115259 to your computer and use it in GitHub Desktop.
Save metainfa/8a9c021d905bc3dd902ac1785c115259 to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# Easily swap the functions of Esc and Caps keys on Ubuntu.
# Usage:
# $ swap-esc
initial_status=$(gsettings get org.gnome.desktop.input-sources xkb-options)
swapped="['caps:swapescape']"
capslock="['caps:capslock']"
if [ "$initial_status" == "$swapped" ]; then
gsettings set org.gnome.desktop.input-sources xkb-options $capslock
echo "Restored Caps and Escape to default layout"
echo "Current status: $capslock"
elif [ "$initial_status" == "$capslock" ]; then
gsettings set org.gnome.desktop.input-sources xkb-options $swapped
echo "Swapped Caps and Escape"
echo "Current status: $swapped"
else
echo "Nothing was changed! Exiting..."
fi
PATH='org.gnome.desktop.input-sources'
OPTION="'ctrl:nocaps'"
status=$(/usr/bin/gsettings get $PATH xkb-options)
if [[ "$status" == *"$OPTION"* ]]; then
echo "Already configured"
exit
fi
new_value="${status%]},'ctrl:nocaps']"
echo "$new_value"
/usr/bin/gsettings set $PATH xkb-options "$new_value"
if command -v gsettings >/dev/null 2>&1
then
# Fix desktop background and right-click
gsettings set org.gnome.settings-daemon.plugins.background active true
# Disable annoying search on type thing
gsettings set org.gnome.nautilus.preferences enable-interactive-search false
# Enable delete contect menu action
gsettings set org.gnome.nautilus.preferences enable-delete true
# Don't autopopup nautilus window on USB (or phone) plugins
gsettings set org.gnome.desktop.media-handling automount-open false
# Caps lock to escape
gsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
else
>&2 echo "Skipping desktop setup, cannot find gsettings"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment