قبل از شروع بذارید عنوان رو انگلیسی هم بذاریم برای استفاده کسایی که گوگل میکنن.
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
الان اگه من کلید ( + ) رو بزنم به جای اینکه + چاپ بشه، مکان نما میره به انتهای متن. شما میتونید مثلا جای حرف پ رو تغییر بدید که با کیبورد فارسی ویندوز زیاد تفاوتی نداشته باشه.