diff options
author | Cody Hiar <chiar@hybridforge.com> | 2015-08-12 12:06:23 -0600 |
---|---|---|
committer | Cody Hiar <chiar@hybridforge.com> | 2015-08-12 12:06:23 -0600 |
commit | 07fc2644a237187dd4c5680e88f4adadbf533603 (patch) | |
tree | bb6335e180df48c5a6f0b893312857d36ad470f7 /segments/xkb_layout.sh |
Initial commit of the working files
Diffstat (limited to 'segments/xkb_layout.sh')
-rwxr-xr-x | segments/xkb_layout.sh | 32 |
1 files changed, 32 insertions, 0 deletions
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 +} |