/home/behrooz/.i3
#!/usr/bin/env python
"""Extend i3status with more stuff.
Each extra module is a function that retus 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%sn" % (m.group(1), json.dumps(modules)))
else:
sys.stdout.write(line)
sys.stdout.flush()
def position(old_module_name, all_modules):
retu 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))
retu f
retu decorator
@i3status_module(after="tztime")
def keyboard_layout():
retu {
"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.shlayout=$(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
کار تمام شد الان باید بتونید با ترکیب الت+ شیفت زبان را تغییر دهید و ایندیکیتور هم زبان جاری را نمایش خواهد داد.- - , .
برچسب:
نویسنده: استخدام کار