ممنون از همه دوستان که کمک کردن این مشکل حل بشه. برای دوستانی که دنبال راه حل هستن برای همچین مشکلی
اول یه این اسکریپت را یه جا ذخیره کنید.من داخل این ادرس ذخیره کردم. اسم اسکریپت i3-extender بگذارید.
/home/behrooz/.i3
#!/usr/bin/env python
"""Extend i3status with more stuff.
Each extra module is a function that returns a dictionary with keys 'name' and
'full_text', decorated with `@i3status_module`.
Usage:
i3status | i3status-extender
"""
import json
import os
import re
import sys
extra_modules = []
def main():
while True:
line = sys.stdin.readline()
m = re.search(r"^(,?)(\[.+\])", line)
if m:
modules = json.loads(m.group(2))
for old_module_name, new_module in extra_modules:
modules.insert(position(old_module_name, modules), new_module())
sys.stdout.write("%s%s\n" % (m.group(1), json.dumps(modules)))
else:
sys.stdout.write(line)
sys.stdout.flush()
def position(old_module_name, all_modules):
return next(
i + 1 for i, f in enumerate(all_modules)
if f["name"] == old_module_name) if old_module_name else 0
def i3status_module(after=None):
def decorator(f):
extra_modules.append((after, f))
return f
return decorator
@i3status_module(after="tztime")
def keyboard_layout():
return {
"name": "kblayout",
"full_text":
re.search(r"layout:\s+(\w+)", os.popen("setxkbmap -query").read())
.group(1).upper()}
if __name__ == "__main__":
main()
حالا در فایل پیکرهبندی i3 اینطور اضافه کنید.
status_command i3status | ~/.i3/i3-extender
حالا یه اسکریپت دیگه به نام xkblayout.sh ذخیره کنید با این محتویات
#!/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 ~/.i3/xkblayout.sh # Shift+Alt
bindcode Mod1+50 exec ~/.i3/xkblayout.sh # Alt+Shift_L
bindcode Mod1+62 exec ~/.i3/xkblayout.sh # Alt+Shift_R
کار تمام شد الان باید بتونید با ترکیب الت+ شیفت زبان را تغییر دهید و ایندیکیتور هم زبان جاری را نمایش خواهد داد.