انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: افشین در 29 فروردین 1401، 09:53 ق‌ظ

عنوان: اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: افشین در 29 فروردین 1401، 09:53 ق‌ظ
سلام.

دوستان، نویسهٔ «ۀ» (Arabic Letter Heh with Yeh Above ) در صفحه‌کلید لینوکس وجود ندارد و من می‌خواهم آن را به صفحه‌کلیدش اضافه کنم.
این را می‌دانم که باید فایل ir را در مسیر زیر ویرایش کنم، اما از کدهایش سردرنمی‌آورم.
/usr/share/X11/xkb/symbols
می‌خواهم وقتی کلید "/" یعنی دکمهٔ کنار شیفتِ سمت راست را فشردم، این نویسه درج شود.
ممکن است راهنمایی‌ام کنید؟

اطلاعات بیشتر دربارهٔ این نویسه:
https://unicode-table.com/en/06C0
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: seyal در 29 فروردین 1401، 10:54 ق‌ظ
سلام

فکر کنم این کاراکتر در کیبورد عربی موجود باشه اما برای افزودن به کیبورد فارسی هم باید متدی وجود داشته باشه.
این نقل قول ها در مورد عوض کردن مکان پ در کیبورد لینوکسه اما خوب با الگوگیری از اون میشه که یک کاراکتر جدید utf-8 با دادن کد مخصوص اون کاراکتر برای کلید دلخواه در کیبورد تعریف کرد.
همچنین کد مخصوص این کاراکتر با توجه به توضیحات این سایت 0x000006C0 می باشد.
https://www.fileformat.info/info/unicode/char/06c0/index.htm

نقل‌قول
قبل از هر چیزی باید به آدرس زیر وارد بشید
/usr/share/x11/xkb/symbols/ir
حالا فایل ir رو پیدا کنید و با یه ادیتور متن بازش کنید (دقت کنید که برای ویرایشش باید دسترسی sudo داشته باشید )

ساختار فایل بصورت زیر است:
هر فایل که برای یک زبان است مثلاْ ir برای زبان فارسی اما خود زبان فارسی شامل چند نوع طرح است. چون من در هنگام نصب صفحه کلید از گزینه های ابتدای لیست طرح استفاده کرده ام پس تغییرات من باید در قسمت های ابتدایی فایل باشد.
    key <AB07> { [   m, M ] };
همانطور که مشاهده می کنید. این قطعه ای از فایل us میباشد. من در واقع با این ترفند شماره کلید حرف m را پیدا کرده ام. که شماره کلید AB07 میباشد.
اما داخل کروشه دوحالت یعنی حالت عادی و بعدی در حالت نگهداشتن دکمهShift میباشد.

حالا در قسمت های ابتدایی فایل ir بدنبال AB07 گشته و آنرا پیدا کرده تا بدانیم در حالت فارسی این کلید چه نقشی را دارد. که بصورت زیر است:
    key <AB07> { [ 0x100067e, Arabic_hamza, ellipsis ] };
خوب مشاهده میکنید که در حالت اول یا عادی باعث نمایش حرف پ خودمان یعنی کد  0x100067e و در حالت Shift باعث چاپ همزه عربی ء می شود.(حالت سوم فکر میکنم مربوط به دکمه سمت راست  Alt باشد) که باعث نمایش سه نقطه … می شود.

البته این نکته توجه شود که برای ویرایش فایل های طرح صفحه کلید باید مجوز ریشه داشته باشید.
پس از دستور sudo استفاده خواهیم کرد.
sudo gedit /usr/share/X11/xkb/symbols/ir

اما من میخواهم چکار کنم؟
میخواهم حرف پ را به محل دکمه بک اسلش \ منتقل کنم.
حال وظیفه دکمه m یعنی کد حرف پ را به کلید بک اسلش نسبت میدهیم.
یعنی سطر زیر را که در سطر ۳۲ فایل قرار دارد:
    key <BKSL> { [ backslash, bar, 0x1002010 ] };
به صورت زیر تبدیل میکنیم:
    key <BKSL> { [ 0x100067e, bar, 0x1002010 ] };
فایل را ذخیره کرده و لینوکس خود را دوباره راه اندازی نمایید. کار تمام است.
دکمه بک اسلش را بزنید و لذت ببرید.

** این نقل قول با کمی ویرایش بود اما خوب نقشه راهی رو که باید بری نشون میده.
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: افشین در 29 فروردین 1401، 11:13 ق‌ظ
این خط را در صفحه‌کلید عربی پیدا کردم:

    key <LSGT> {  [             bar,            brokenbar,                     U06C0,               U0620 ]};  // | ¦     ‎ۀ‎ ‎ؠ‎
اما برایم گیج‌کننده است. من خیلی فنی نیستم. نمی‌دانم باید چطور تغییرش بدهم که وقتی / را تایپ کردم ۀ را درج کند.
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: seyal در 29 فروردین 1401، 11:48 ق‌ظ
خوب الان با توجه به اینکه لاین مربوط به این کاراکتر U+06C0 را در کیبورد مدنظر پیدا کرده اید تقریبا کار را انجام داده اید و الان اگر کلید alt سمت راست صفحه کلید را با همین کلیدی که پیدا کرده اید فشار دهید این کاراکتر را تایپ می کند
اما برای اینکه بدون alt تایپ کند باید ترتیب را عوض کنید و کد مربوط به این کاراکتر را با کد کاراکتر اول جایگزین کنید.
کد کاراکتر مورد نظر اگر:
مورد اول باشد مستقیم،
مورد دوم باشد با شیفت
و مورد سوم باشد با right alt تایپ می شود.
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: افشین در 29 فروردین 1401، 12:22 ب‌ظ
کد را به فایل ir اضافه کردم و Log-off هم کردم، اما اِعمال نشد!
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: seyal در 29 فروردین 1401، 01:31 ب‌ظ
از این لینک می تونید اطلاعات جامع تری کسب کنید:
https://help.ubuntu.com/community/Custom%20keyboard%20layout%20definitions
If the change doesn't seem to have any effect, it's possible that you might have edited the basic settings in the symbols/es file. There may be a section for your specific keyboard layout, e.g like this
partial alphanumeric_keys
xkb_symbols "mac" {

    // Describes the differences between a very simple mac_US
    // keyboard and a very simple Spanish keybaord

    include "es"
    name[Group1]= "Spain - Macintosh";
   
    key <AC10>  { [    ntilde, Ntilde,   asciitilde, dead_doubleacute ] };
};
Applying the change to the proper section should then make the customization work

Note that you may also have to clear the pre-compiled keymaps before your modifications work

cd /var/lib/xkb/
sudo rm *.xkm

To load changes to the layouts menu simply close out of gnome-keyboard-preferences and reload, relaunching the windows manager should not be necessary

There is a change in Ubuntu version (13.10) and later versions which causes the keyboard settings cache to not refresh after files in "/usr/share/X11/xkb/symbols" directory are modified. It looks like changes just don't get applied. To force the cache refreshing a one should delete *.xkm files from "/var/lib/xkb", or enter into the console

sudo dpkg-reconfigure xkb-data
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: افشین در 29 فروردین 1401، 01:57 ب‌ظ
تا اینجا فهمیدم که اگر بخواهم نویسهٔ ۀ را جایگزین نویسهٔ / کنم، باید خط زیر را ویرایش کنم:

    key <AB10> { [ slash, Arabic_question_mark, question ] };
فقط الان مشکلم این است که نمی‌دانم باید به‌جای slash چی بگذارم.
عبارت‌های زیر را امتحان کردم و بی‌فایده بود:

Arabic_hamza_Above_Arabic_heh
Arabichamzaonheh
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: seyal در 29 فروردین 1401، 02:57 ب‌ظ
باید کد مربوط به آن کاراکتری را که می خواهید بگذارید که در اینجا U06C0 یا 0x000006C0 می باشد.
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: افشین در 29 فروردین 1401، 02:59 ب‌ظ
این کار را هم کردم، اما بی‌فایده بود.
باید نام صحیح آن نویسه را وارد کنم، منتها نمی‌دانم که دقیقاً باید چی بنویسم که قبول کند.
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: seyal در 29 فروردین 1401، 03:08 ب‌ظ
این کار را هم کردم، اما بی‌فایده بود.
باید نام صحیح آن نویسه را وارد کنم، منتها نمی‌دانم که دقیقاً باید چی بنویسم که قبول کند.

نام نویسه همان کدی که نوشتم بگذارید درست است و اگر به سایر حروف کیبورد هم دقت کنید جز در مواردی مثل بک اسلش و ... کد کاراکتر نوشته شده است.
احتمالا کش را بروزرسانی نکردید.
به سوال شما در این دو لینک هم پاسخ داده شده است:
https://superuser.com/questions/141884/customized-xkb-layouts-not-working-in-kde-after-upgrade-from-ubuntu-9-10-to-1
https://askubuntu.com/questions/968107/how-can-i-reload-my-xkb-configuration-without-restarting-my-computer-or-logging

خلاصه:

۱- پس از تغییر در فایل دستور زیر را اجرا نمایید
sudo udevadm trigger --subsystem-match=input --action=change


ممکن است با پاسخ های دیگری روبرو شوید که به شما پیشنهاد می کند /var/lib/xkb/*.xkm را حذف کنید. این یک پیشنهاد منسوخ خواهد بود. حداقل در اوبونتو، این دایرکتوری برای چندین سال برای این منظور استفاده نمی شد.

همچنین با توجه به وجود دسترسی ریشه از قبل در مورد کاری که دستور انجام می دهد تحقیق کنید و سپس اجرا کنید.
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: Dragon- در 31 فروردین 1401، 09:20 ب‌ظ
بهتره فایل داخل /usr/ رو تغییر ندید. بت یه بروزرسانی همه اونها به حالت اول بر می‌گردن. این وضعیت خوشبینانه هست. ممکنه یه چیزی رو تغییر بدید و بعد مدیربسته نتونه توی یه بروزرسانی درستش کنه. اینجا (https://wiki.ubuntu.ir/wiki/%D8%AF%D8%A8%DB%8C%D8%A7%D9%86_%D8%B1%D8%A7_%D8%AE%D8%B1%D8%A7%D8%A8_%D9%86%DA%A9%D9%86%DB%8C%D8%AF) رو ببینید. توضیحات درباره دبیان هست ولی بیشترش برای بقیه توزیع‌ها هم صادقه.

فکر کنم بهترین راهکار این باشه که چیدمان صفحه کلید عربی رو اضافه کنید و هرجا لازم داشتید "ۀ" تایپ رو تایپ کنید، به چیدمان عربی سوییچ کنید.
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: ɴɪᴍᴀ در 01 اردیبهشت 1401، 11:49 ق‌ظ
لینک {اینحا} میره به {اینحا/} : )

لینک مشکل داره.
عنوان: پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
ارسال شده توسط: Dragon- در 01 اردیبهشت 1401، 03:55 ب‌ظ
ممنون که گفتید. درست شد.