مقدمه
اگر تو تعویض زبان تو لینوکس مشکل دارید، بخونید، شاید این مطلب مشکل شما رو هم حل کنه!
چند روز پیش بعد یک سال خورده از دبیان ۱۱ اومدم رو دبیان ۱۲ از اونجایی که روی gnome خیلی راحت هستم، گنوم هم به ورژن ۴۳ ارتقا پیدا کرده بود! همه چی مرتب بود تا فهمیدم تو محصولات jetbreans نمیشه زبان نوشتاری رو یا همون keyboard layout رو عوض کرد، از بقیه دوستان دبیان باز پرسیدم اونا این مشکل رو نداشتن، اولش فکر کردم مشکل از extensions های مخصوص خودم هست، همه رو غیرفعال کردم، بازم مشکل پر برجا بود فقط هم این مشکل تو phpstorm, goland , andriod studio نمود داشت.
هر چی نت رو زیر رو کردم نتیجه ای در بر نداشت! انگار مشکل برای من بود فقط، و آخر سر iso دبیان ۱۲ رو دانلود کردم، گفتم یا شانس یا اقبال زدم از سیستم عامل نصب شد. اولین کار این بودش که phpstorm نصب کنم و امتحان کردم همه چی خوب بود، همه کارهای سیستم عامل کردم ولی دیدم بازم مشکل بوجود اومد، خشکم زده بود! این همه زحمت به فنا رفتش، حالا باید یه کاری میکردم، بازم اسکتنش ها رو غیر فعال کردم، نتیجه ای در بر نداشت! با خودم گفتم برم تو cinnamon یا kde بببینم این مشکل هستنش یا نه نبودش!
خلاصه حدود ۲ بار دیگه سیستم عامل عوض کردم مرحله به مرحله phpstorm رو چک میکردم، با یه چیز عجیب اما واقعی مواجه شدم، چیزی که فکرشم نمیکردم، وقتی درایور نویدیا نصب میشد این مشکل بوجود میومد، حتی chatGPT هم از پس این مشکل بر نمیومدش!
راه حل
نه میتونستم از خیر گنوم بگذرم نه از خیر phpstorm پس باید یه راه پیدا میکردم، اما به فکرم زد یه میانبر جدید برای تعویض کیبورد تو phpstorm باشم اما نیاز بود با یه ابزار مجبور کنمش که زبان کل سیستم عوض شه، بله اون ابزار `setxkbmap` بودش!
مراحل کار:
$ setxkbmap -query
rules: evdev
model: pc105
layout: us,ir
باید یه همچین چیزی ببینیم خط آخر مهم نیست چه زبان هایی باشه ولی اگر `setxkbmap` رو پیدا نکرد چه کنیم:
$ sudo apt-get install x11-xkb-utils
رو بزنید نصب میشه!
بعدش نیاز هستش که تست کنید ببینید مشکلتون حل میشه یا نه دستور اول به زور کل سیستم عامل رو زبونش رو انگلیسی میکنه دستور دوم به زور کل فارسی میکنه: (هشدار: دستور ها رو داشته باشید که به مشکل نخورید کیبورد انگلیسی نداشتید یهو)
$ setxkbmap us,ir
$ setxkbmap ir,us
اگر عملیات بالا موفقیت آمیز بود حالا باید یه shell script بنویسیم ولی قبلش باید `xkblayout-state` رو داشته باشید، پس اول اینو کامپایل میکنیم:
$ sudo apt-get install libx11-dev git
$ mkdir temp
$ cd temp
$ git clone https://github.com/nonpop/xkblayout-state.git
$ cd xkblayout-state
$ make
$ make install
خوب نصب شد خیالمون راحت شد بریم سراغ نوشتن اسکرپیت: در پوشه دلخواه دستور زیر رو بزنید:
$ nano key.sh
خب حالا داخلش این دستوراتی رو که من نوشتم رو بزنید:
#!/bin/bash
outkbd=$(xkblayout-state print "%s")
uskbd="us"
#echo $outkbd
if [[ "$outkbd" == "$uskbd" ]]
then
#echo "us" switch to ir
setxkbmap ir,us
else
#echo "ir" witch to us
setxkbmap us,ir
fi
خب حالا ctrl+x رو بزنید و enter و y رو بزنید ذخیره شه و بعدش دستور زیر رو بزنید:
$ chmod +x key.sh
حالا کد شما کار میکنه اگر این کد رو اجرا کنید هر بار زبان عوض میکنه و می تونید بع جای ir,us از زبان های دلخواه خودتون استفاده کنید.
اما در آخر میتونید تو shortcut های گنوم یا هر desktop دیگه ای میانبر براش تعریف کنید که سریع این اتقاق با کیبورد بیوفته، فراموش نکنید باید تو میانبر آدرس کامل key.sh رو بزنید مثل تصویر زیر:
امیدوارم هیچ وقت کسی به این مشکل نخوره ولی خورد این برگ سبزی از تجربیات حقیر تقدیم به محبت به شما
دیدگاهتان را بنویسید لغو پاسخ