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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: اضافه کردن یک نویسه به صفحه‌کلید لینوکس  (دفعات بازدید: 658 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین افشین

  • Sr. Member
  • *
  • ارسال: 318
  • جنسیت : پسر
    • لیبره‌آفیسِ فارسی
اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« : 29 فروردین 1401، 09:53 ق‌ظ »
سلام.

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

اطلاعات بیشتر دربارهٔ این نویسه:
https://unicode-table.com/en/06C0
« آخرین ویرایش: 29 فروردین 1401، 10:15 ق‌ظ توسط افشین »

آفلاین seyal

  • Jr. Member
  • *
  • ارسال: 90
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #1 : 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:02 ق‌ظ توسط seyal »

آفلاین افشین

  • Sr. Member
  • *
  • ارسال: 318
  • جنسیت : پسر
    • لیبره‌آفیسِ فارسی
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #2 : 29 فروردین 1401، 11:13 ق‌ظ »
این خط را در صفحه‌کلید عربی پیدا کردم:

    key <LSGT> {  [             bar,            brokenbar,                     U06C0,               U0620 ]};  // | ¦     ‎ۀ‎ ‎ؠ‎
اما برایم گیج‌کننده است. من خیلی فنی نیستم. نمی‌دانم باید چطور تغییرش بدهم که وقتی / را تایپ کردم ۀ را درج کند.

آفلاین seyal

  • Jr. Member
  • *
  • ارسال: 90
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #3 : 29 فروردین 1401، 11:48 ق‌ظ »
خوب الان با توجه به اینکه لاین مربوط به این کاراکتر U+06C0 را در کیبورد مدنظر پیدا کرده اید تقریبا کار را انجام داده اید و الان اگر کلید alt سمت راست صفحه کلید را با همین کلیدی که پیدا کرده اید فشار دهید این کاراکتر را تایپ می کند
اما برای اینکه بدون alt تایپ کند باید ترتیب را عوض کنید و کد مربوط به این کاراکتر را با کد کاراکتر اول جایگزین کنید.
کد کاراکتر مورد نظر اگر:
مورد اول باشد مستقیم،
مورد دوم باشد با شیفت
و مورد سوم باشد با right alt تایپ می شود.
« آخرین ویرایش: 29 فروردین 1401، 12:06 ب‌ظ توسط seyal »

آفلاین افشین

  • Sr. Member
  • *
  • ارسال: 318
  • جنسیت : پسر
    • لیبره‌آفیسِ فارسی
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #4 : 29 فروردین 1401، 12:22 ب‌ظ »
کد را به فایل ir اضافه کردم و Log-off هم کردم، اما اِعمال نشد!
« آخرین ویرایش: 29 فروردین 1401، 12:34 ب‌ظ توسط افشین »

آفلاین seyal

  • Jr. Member
  • *
  • ارسال: 90
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #5 : 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:44 ب‌ظ توسط seyal »

آفلاین افشین

  • Sr. Member
  • *
  • ارسال: 318
  • جنسیت : پسر
    • لیبره‌آفیسِ فارسی
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #6 : 29 فروردین 1401، 01:57 ب‌ظ »
تا اینجا فهمیدم که اگر بخواهم نویسهٔ ۀ را جایگزین نویسهٔ / کنم، باید خط زیر را ویرایش کنم:

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

Arabic_hamza_Above_Arabic_heh
Arabichamzaonheh
« آخرین ویرایش: 29 فروردین 1401، 02:01 ب‌ظ توسط افشین »

آفلاین seyal

  • Jr. Member
  • *
  • ارسال: 90
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #7 : 29 فروردین 1401، 02:57 ب‌ظ »
باید کد مربوط به آن کاراکتری را که می خواهید بگذارید که در اینجا U06C0 یا 0x000006C0 می باشد.

آفلاین افشین

  • Sr. Member
  • *
  • ارسال: 318
  • جنسیت : پسر
    • لیبره‌آفیسِ فارسی
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #8 : 29 فروردین 1401، 02:59 ب‌ظ »
این کار را هم کردم، اما بی‌فایده بود.
باید نام صحیح آن نویسه را وارد کنم، منتها نمی‌دانم که دقیقاً باید چی بنویسم که قبول کند.

آفلاین seyal

  • Jr. Member
  • *
  • ارسال: 90
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #9 : 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 را حذف کنید. این یک پیشنهاد منسوخ خواهد بود. حداقل در اوبونتو، این دایرکتوری برای چندین سال برای این منظور استفاده نمی شد.

همچنین با توجه به وجود دسترسی ریشه از قبل در مورد کاری که دستور انجام می دهد تحقیق کنید و سپس اجرا کنید.
« آخرین ویرایش: 29 فروردین 1401، 03:27 ب‌ظ توسط seyal »

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #10 : 31 فروردین 1401، 09:20 ب‌ظ »
بهتره فایل داخل /usr/ رو تغییر ندید. بت یه بروزرسانی همه اونها به حالت اول بر می‌گردن. این وضعیت خوشبینانه هست. ممکنه یه چیزی رو تغییر بدید و بعد مدیربسته نتونه توی یه بروزرسانی درستش کنه. اینجا رو ببینید. توضیحات درباره دبیان هست ولی بیشترش برای بقیه توزیع‌ها هم صادقه.

فکر کنم بهترین راهکار این باشه که چیدمان صفحه کلید عربی رو اضافه کنید و هرجا لازم داشتید "ۀ" تایپ رو تایپ کنید، به چیدمان عربی سوییچ کنید.
« آخرین ویرایش: 01 اردیبهشت 1401، 03:55 ب‌ظ توسط Dragon- »
میدونید که زکات علم نشر آن است

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1270
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #11 : 01 اردیبهشت 1401، 11:49 ق‌ظ »
لینک {اینحا} میره به {اینحا/} : )

لینک مشکل داره.

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : اضافه کردن یک نویسه به صفحه‌کلید لینوکس
« پاسخ #12 : 01 اردیبهشت 1401، 03:55 ب‌ظ »
ممنون که گفتید. درست شد.
میدونید که زکات علم نشر آن است