From 07fc2644a237187dd4c5680e88f4adadbf533603 Mon Sep 17 00:00:00 2001 From: Cody Hiar Date: Wed, 12 Aug 2015 12:06:23 -0600 Subject: Initial commit of the working files --- segments/xkb_layout.sh | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 segments/xkb_layout.sh (limited to 'segments/xkb_layout.sh') diff --git a/segments/xkb_layout.sh b/segments/xkb_layout.sh new file mode 100755 index 0000000..c8f38c1 --- /dev/null +++ b/segments/xkb_layout.sh @@ -0,0 +1,32 @@ +# 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 +} -- cgit v1.2.3