#!/bin/bash

# Save X11 langs
X11_LANGS="$(localectl status |grep "X11 Layout: " |rev |cut -d" " -f1 |rev)"
# For (unset) bug
if [ "$X11_LANGS" = "(unset)" ] && [ "$LANG" = "ru_RU.UTF-8" ]; then X11_LANGS="us,ru"; fi

WAYLAND_LANGS="$(echo $X11_LANGS |sed "s/,/\x27), (\x27xkb\x27, \x27/g" |sed "s/\(.*\)/[(\x27xkb\x27, \x27\1\x27)]/")"
# Set wayland langs
gsettings set org.gnome.desktop.input-sources sources "$WAYLAND_LANGS"

# Configure keyboard switchers
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Super>space', '<Alt>Shift_L', '<Shift>Alt_L', '<Control>Shift_L', '<Shift>Control_L', 'XF86Keyboard']"
gsettings set org.gnome.desktop.input-sources xkb-options "['compose:caps', 'grp_led:scroll']"

if echo "$X11_LANGS" |grep -q ru; then
	# Fix bug with cotrol in some apps (set en first)
	gsettings set org.gnome.desktop.input-sources sources "$(echo "$X11_LANGS" |sed "s/\(us,\|,us$\)//" |sed "s/^/us,/" |sed "s/,/\x27), (\x27xkb\x27, \x27/g" |sed "s/\(.*\)/[(\x27xkb\x27, \x27\1\x27)]/")"
fi

# One shot
rm -f ~/.config/autostart/keyboard-settings.desktop
