ریمپ کردن کیبورد در لینوکس ( Remap Keys on your Keyboard in Ubuntu Linux )

/**/ قبل از شروع بذارید عنوان رو انگلیسی هم بذاریم برای استفاده کسایی که گوگل میکنن.

Remap Keys on your Keyboard in Linux and Running xmodmap at start up

This article is written in Persian. You can use the Google translation tool. من خیلی با کلید End  کیبورد کار میکنم و توی لپ‌تاپ جدید این کلید با کلید شماره ها یکی شده و عملا برای من بلا استفاده ست. کمی گوگل کرده و متوجه شدم توی لینوکس به راحتی می تونید نقشه و موقعیت کلید های کیبورد رو جابجا کنید.

بریم سراغ آموزش مرحله اول ) دستور xev توی ترمینال لینوکس موقعیت تمامی کلید های کیبورد به همراه اسم و کد و جزییات خیلی بالایی رو نشون شما میده. اما خب عملا فقط شما رو بیشتر گیج و ناامید میکنه. توی گام نخست شما از خروجی اصلا شده دستور xev باید استفاده کنید. xev | awk -F’[ )]+’ ‘/^KeyPress/ { a[NR+2] } NR in a { printf “%-3s %s\n”, $5, $8 }’  با اجرای این دستور برنامه ی کوچیکی اجرا میشه که وقتی هر کلید ی کیبورد رو تایپ کنید، کد اون کلید به همراه کد نمایش داده می شه. مثلا من مخام وقتی کلید منها ( - ) رو میزنم مثل کلید Home عمل کنه و وقتی هم ( + ) رو میزنم عملکرد کلید End رو داشته باشه. پس نیاز دارم اسم و کد هر چهار تا کلید رو بدونم . من کلید های ( - ) و ( Home ) و ( + ) و ( End ) رو زدم و اینم خروجی  82  KP_Subtract 79  KP_Home 86  KP_Add 87  KP_End  مرحله دوم ) توی مرحله یه فایل به اسم .Xmodmap  توی home لینوکس ایجاد می کنیم . حواستون باشه شاید این مقاله فارسی نوشته میشه دات یا همون نقطه ابتدای .Xmodmap  رو نبینید. بعد از ایجاد این فایل من دستورات معرفی کلید به کد رو داخل فایل ایجاد شده می نویسم. برای ایجاد این فایل هم می تونم از ادیتور های nano یا gedit استفاده کنم. من با نانو نوشتم.  nano .Xmodmap

و وقتی نانو این فایل رو ایجاد کرد دستورات زیر رو نوشته و ذخیره میکنم .

keycode 82 = KP_Home keycode 86 = KP_End

مرحله سوم ) فایل ایجاد شده رو با دستور xmodmap اجرا میکنیم تا تغییر جای کلیدها انجام بشه. xmodmap .Xmodmap الان اگه من کلید ( + ) رو بزنم به جای اینکه + چاپ بشه، مکان نما میره به انتهای متن. شما میتونید مثلا جای حرف پ رو تغییر بدید که با کیبورد فارسی ویندوز زیاد تفاوتی نداشته باشه.

اما الان یه مشکل داریم و اونم اینه با هر بار خاموش و روشن شدن سیستم وضعیت کیبورد به حالت قبلی بر میگرده و شما باید هی دستور xmodmap .Xmodmap رو اجرا کنید. خب این چه کاریه. میایم و همین دستور رو میذاریم توی استارت لینوکس که با هر لاگین اجرا بشه. اما باور کنید هزارتا راه توی گوگل هست که بیشترش اصلا جواب نمیده. من با اوبونتو 22.04 کار میکنم و برای اینکار از روش زیر استفاده کردم.

مرحله چهارم ) توی Home فایل .xprofile رو ایجاد یا ویرایش کنید و قطعه کد زیر رو بهش اضافه کنید. بازم من با نانوی عزیز اینکار رو کردم. nano .xprofile وی وقتی فایل ایجاد یا باز شد این کد رو بهش اضافه کنید bash -c “sleep 5; xmodmap $HOME/.Xmodmap” & ذخیره و تمام.  دیگه بعد از این با هر لاگین اجرا میشه .

اوبونتو ریمپ کیبورد آموزش لینوکس xmodmap nano xev remap keyboard