رفع مشکل عدم وجود کیبورد فارسی در IBus

IBus is an Intelligent Input Bus. It is a new input framework for Linux OS. It provides full featured and user friendly input method user interface. It also may help developers to develop input method easily. Peng Huang

https://github.com/ibus/ibus

اولین باری که با IBus آشنا شدم، هنگامی بود که دسکتاپ KDE Pasma رو بر روی اوبونتو ۱۹.۱۰ نصب کردم و متوجه شدم از ابزار متفاوتی برای مدیریت کیبورد استفاده می کنه. اما مشکلی که از همون ابتدای کار باهاش مواجه شدم، عدم وجود چیدمان(Layout) فارسی برای کیبورد بود. بعد از کلی جستجو متوجه شدم که مطلب مفیدی در این رابطه وجود نداره، حتی در پیج مشکلات پروژه در گیتهاب هم، چنین مشکلی گزارش نشده. برای همین خودم مشکل رو گزارش کردم و خیلی زود یکی از توسعه دهندگان پروژه به گزارش درج شده پاسخ داد.

نکته ای که در این مورد برام جالب بود اینه که، اون دوست عزیز خیلی صبورانه با من بعنوان کسی که از برنامه و کارکردش هیچ اطلاعی نداشت، همکاری کرد و بصورت جدی پیگیر وضعیت بود. درحالی که بعضی از دوستان ما در واکنش به سوالات افراد مبتدی، نتنها کمکی نمی کنند بلکه با تحقیر و تمسخر این افراد رو از دنیای گنو/لینوکس فراری می دهند.

راه حل مشکل اما موقتی هست و احتمالا مجبورید با هر بار آپدیت ibus این تنظیمات رو مجددا انجام بدید! پس منطقیه که یک bash script براش بنویسید. برای آموزش bash می تونید از ویدیو های آموزشی آقای علیرضا امیر صمیمی استفاده کنید.

برگردیم سراغ راه حل. برای برطرف کردن مشکل باید چیدمان کیبورد فارسی رو به ibus اضافه کنید. البته چیدمان فارسی در ibus وجود داره ولی بصورت پیشفرض در تنظیمات نمایش داده نمیشه. درواقع شما باید با اصلاح یکی از کانفیگ فایل های برنامه، مشکل لود نکردن چیدمان فارسی رو برطرف کنید.

ابتدا فایل simple.xml رو از مسیر زیر با یک ویرایشگر متن باز کنید. دقت داشته باشید که این فایل رو باید با دسترسی روت ویرایش کنید. من از vim برای ویرایش فایل استفاده می کنم.

sudo vim /usr/share/ibus/component/simple.xml 

سپس قطعه کد زیر رو به انتهای فایل قبل از تگ <engines/> اضافه کنید:

<engine>
<name>xkb:ir::fas</name>
<language>fa</language>
<license>GPL</license>
<author>Peng Huang &lt;shawn.p.huang@gmail.com&gt;</author>
<layout>ir</layout>
<longname>Persian layout</longname>
<description>Persian layout</description>
<icon>ibus-keyboard</icon>
<rank>99</rank>
<engine/>

سپس فایل را ذخیره کرده و ببندید. برای اینکه تنظیمات اعمال شود، یک بار از سشن خود خارج شده و مجددا لاگین کنید. حالا اگر مجددا به تنظیمات ibus مراجعه کنید، کیبورد فارسی را در قسمت input methods خواهید دید.

لازم به ذکر است که با انجام تغییرات بالا با مشکل دیگه ای روبرو هستید و اون هم اینه که کلید های ترکیبی مثل ctrl+c, ctrl+v,… تا زمانی که کیبورد روی فارسی است کار نمی کنند و گویا این یکی از باگ های برنامه است و من دیگه پیگیر برطرف کردنش نشدم و ibus رو پاک کردم. درواقع خود KDE ابزار مدیریت کیبورد با پشتیبانی از زبان های مختلف از جمله فارسی رو داره و ما نیاز مبرمی به استفاده از ibus نداریم. استفاده از ibus زمانی ضروری است که شما بخواهید با زبانی مثل چینی یا ژاپنی کار کنید که دارای حروف به مراتب بیشتری نسبت به زبان فارسی هستند و در حالت عادی هیچ کیبوردی نمی تونه تمام این حروف رو پوشش بده. اگر گفتگویی که در گزارش من در پیج مشکلات ibus وجود داره رو مطالعه کنید، در این خصوص توضیحات مفیدی ارایه شده که ضرورت استفاده از ibus رو براتون روشن می کنه.

If you need only “simple” keyboard layouts, then you don’t really need ibus.

The main use case of ibus is for typing stuff you cannot do with simple keyboard layouts.
For example, if you type Japanese or Chinese. There are thousands of characters and it would be very impractical to have a keyboard with thousands of characters. So the most common way to type Japanese is to type Latin Alphabet letters on a normal keyboard and get that translated to Japanese.

For example, if you want to type the word for bird in Japanese you can type “tori” in Latin alphabet using ibus-anthy and you get a combobox showing 鳥, 鶏, 酉, … and some others (because the result is often not unique). Then you select the one you want, which in this example is 鳥 (bird).

Sometimes input using transliteration can be useful even for languages using alphabets.
For example when typing Hindi, one could use a keyboard layout which has the characters.
Or one could use a keyboard layout which has only Latin characters and type the Latin
transliteration. Then you can type “namaste” in Latin and get नमस्ते as the result (which means “hello” in Hindi).

Or maybe one wants to type certain mathematical symbols or emoji conveniently, there are ibus-input methods useful for that as well. Mike FABIAN

https://github.com/ibus/ibus/issues/2179#issuecomment-582654450
درباره یImTO1 12مقاله
I'm a GNU/LINUX lover & UNIX philosophy advocate.

اولین نفری باشید که نظر می دهد.

دیدگاهی بنویسید

آدرس ایمیل شما محفوظ می ماند


*


این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.