Files
dotfiles/tmux/powerline/segments/xkb_layout.sh
2019-01-12 18:22:02 +01:00

33 lines
999 B
Bash
Executable File

# Print the currently used keyboard layout
# This depends on a specifically developed program which prints the group id of
# the currently used layout.
# I developed the simple program myself with some guidance as I was unable to
# find anything already developed.
# Some people might suggest:
# $ setxkbmod -query -v | awk -F "+" '{print $2}'
# this will only work if you have set up XKB with a single layout which is true
# for some.
# This script will print the correct layout even if layout is set per window.
# Exit if platform is not linux as this script is dependant on X11
run_segment() {
if ! shell_is_linux; then
return 1
fi
cd "$TMUX_POWERLINE_DIR_SEGMENTS"
if [ ! -x "xkb_layout" ]; then
make clean xkb_layout &>/dev/null
fi
if [ -x ./xkb_layout ]; then
cur_layout_nbr=$(($(./xkb_layout)+1));
cur_layout=$(setxkbmap -query | grep layout | sed 's/layout:\s\+//g' | \
awk -F ',' '{print $'$(echo "$cur_layout_nbr")'}')
echo "$cur_layout"
else
return 1
fi
}