پاسخ : نحوه اضافه کردن ایندیکیتور لایوت کیبرد به i3statusbar

ساخت وبلاگ
چرا؟
وقتی از دستور زیر برای تغییر طرح‌بندی کیبورد استفاده بشه:
setxkbmap -option grp:switch,grp:alt_shift_toggle us,ir
در اصل دو طرح‌بندی تعریف و بوسیلهٔ Alt+Shift بین اون‌ها تعویض انجام می‌شه:
rules:      evdev
model:      pc105
layout:     us,ir
options:    grp:switch,grp:alt_shift_toggle

اسکریپت پایتونی که من به شما معرفی کردم هم با موشکافی خروجی دستور setxkbmap -query طرح‌بندی حاضر رو بدست میاره بنابراین اگر خروجی طبق بالا باشه فقط اولین طرح‌بندی با عبارت Regex برابر می‌شه.

چار:
برای تعویض طرح‌بندی‌های کیبورد از اسکریپت زیر استفاده کنید:
#!/usr/bin/env bash
# filename: xkblayout.sh

layout=$(setxkbmap -print | awk -F"+" '/xkb_symbols/ {print $2}')

if [ "$layout" = us ]; then
    setxkbmap ir
else
    setxkbmap us
fi


پیکربندی i3:
bindcode Shift+64   exec ~/xkblayout.sh # Shift+Alt
bindcode Mod1+50    exec ~/xkblayout.sh # Alt+Shift_L
bindcode Mod1+62    exec ~/xkblayout.sh # Alt+Shift_R

منابع:
https://faq.i3wm.org/question/3953/execute-an-sh-file-using-bindsym.1.html
http://unix.stackexchange.com/a/48858

- - , .

اوبونتو...
ما را در سایت اوبونتو دنبال می کنید

برچسب : نویسنده : استخدام کار ubuntu بازدید : 41 تاريخ : يکشنبه 25 بهمن 1394 ساعت: 6:42