LOADKEYS(1) دستورهای کاربری LOADKEYS(1)

loadkeys - بارگذاری و اعمال جدول نگاشت کلیدهای صفحهکلید در لینوکس

loadkeys [ گزینهها... ] [ فایل_جدول_کلید... ]
loadkeys --default
loadkeys --mktable
loadkeys --bkeymap
loadkeys --parse

برنامه loadkeys جداول نگاشت کلیدهای صفحهکلید را خوانده و در درایور صفحهکلید هسته لینوکس بارگذاری میکند.

هدف اصلی این برنامه بارگذاری جدول نگاشت کلید هسته برای کنسول است. می‌توانید دستگاه کنسول را با گزینه -C (یا --console) مشخص کنید.

اگر گزینه -d (یا --default) مشخص شود، loadkeys یک جدول نگاشت کلید پیش‌فرض را بارگذاری می‌کند، که احتمالاً فایل defkeymap.map در /usr/share/keymaps یا در /usr/src/linux/drivers/tty/vt است. (مورد اول معمولاً توسط کاربر تعریف شده است، در حالی که دومی یک نگاشت صفحه‌کلید qwerty برای رایانه‌های شخصی است که شاید مطلوب نباشد.) گاهی اوقات در اثر بارگذاری یک جدول نگاشت عجیب (که علامت منفی روی یک ترکیب کلید تبدیل‌کننده ناشناخته قرار گرفته است)، تایپ کردن دستور `loadkeys defkeymap.map` ساده‌ترین راه است.

وظیفه اصلی loadkeys بارگذاری یا تغییر جداول ترجمه درایور صفحه‌کلید است. هنگام مشخص کردن نام فایل‌ها، ورودی استاندارد را می‌توان با خط تیره (-) نشان داد. اگر فایلی مشخص نشود، داده‌ها از ورودی استاندارد خوانده می‌شوند.

برای بسیاری از کشورها و انواع صفحه‌کلیدها، جداول کلید مناسب از قبل در دسترس هستند و دستوری مانند `loadkeys uk` ممکن است نیاز شما را برآورده کند. از سوی دیگر، ساختن جدول کلید اختصاصی نیز ساده است. کاربر باید مشخص کند چه نمادهایی به هر کلید تعلق دارند. او می‌تواند کد کلید مربوطه را با استفاده از دستور showkey(1) پیدا کند، در حالی که قالب نگاشت کلید در keymaps(5) آورده شده و همچنین از خروجی dumpkeys(1) نیز قابل مشاهده است.

اگر فایل ورودی حاوی هیچ تعریفی برای کلیدهای ترکیب‌کننده (compose) نباشد، جدول اکسنت هسته بدون تغییر باقی می‌ماند، مگر اینکه گزینه -c (یا --clearcompose) داده شود که در این صورت جدول اکسنت هسته خالی می‌شود. اگر فایل ورودی حاوی تعاریف کلید ترکیب‌کننده باشد، تمام تعاریف قبلی حذف شده و با موارد جدید مشخص‌شده جایگزین می‌شوند. جدول اکسنت هسته توالی‌ای از ورودی‌ها (به‌طور پیش‌فرض ۶۸ مورد) است که رفتار نشانه‌های اعراب و کلیدهای ترکیب‌کننده را توصیف می‌کند. به عنوان مثال، یک خط مانند:

compose ',' 'c' to ccedilla

به این معناست که ترکیب <ComposeKey><,><c> باید به <ccedilla> تبدیل شود. محتوای فعلی این جدول را می‌توان با استفاده از دستور `dumpkeys --compose-only` مشاهده کرد.

گزینه -s (یا --clearstrings) جدول رشته‌های هسته را پاک می‌کند. اگر این گزینه داده نشود، loadkeys تنها رشته‌ها را اضافه یا جایگزین می‌کند و آن‌ها را حذف نخواهد کرد. (بنابراین، گزینه -s برای رسیدن به یک وضعیت معین و پایدار مورد نیاز است.) جدول رشته‌های هسته توالی‌ای از رشته‌ها با نام‌هایی مانند F31 است. برای مثال می‌توان کاری کرد که کلید تابعی F5 (روی یک صفحه‌کلید معمولی رایانه شخصی) متن `Hello!` و کلید Shift+F5 متن `Goodbye!` را تولید کند، با قرار دادن خطوط زیر:

keycode 63 = F70 F71
string F70 = "Hello!"
string F71 = "Goodbye!"

در فایل جدول کلید. نگاشت‌های پیش‌فرض برای کلیدهای تابعی، دنباله‌های فرار مشخصی هستند که عمدتاً از ترمینال VT100 الهام گرفته شده‌اند.

اگر گزینه -m (یا --mktable) مشخص شود، loadkeys فایلی را در خروجی استاندارد چاپ می‌کند که می‌تواند به عنوان /usr/src/linux/drivers/tty/vt/defkeymap.c مورد استفاده قرار گیرد و نگاشت‌های کلید پیش‌فرض را برای یک هسته مشخص کند (و نگاشت کلید فعلی را تغییر نمی‌دهد).

اگر گزینه -b (یا --bkeymap) مشخص شود، loadkeys فایلی را در خروجی استاندارد چاپ می‌کند که می‌تواند به عنوان جدول کلید باینری مورد انتظار برای دستور loadkmap در Busybox استفاده شود (و نگاشت کلید فعلی را تغییر نمی‌دهد).

برنامه loadkeys به‌طور خودکار تشخیص می‌دهد که کنسول در حالت یونیکد (Unicode) است یا اسکی (ASCII/XLATE). هنگامی که یک جدول کلید بارگذاری می‌شود، نمادهای حرفی کلیدها (مانند section) به تناسب حل‌وفصل می‌شوند؛ نمادهای عددی کلیدها صرف‌نظر از روش مشخص‌شدن آن‌ها (ده‌دهی، هشت‌هشتی، شانزده‌شانزدهی یا یونیکد) متناسب با حالت جاری کنسول تبدیل می‌شوند.

گزینه -u (یا --unicode) برنامه loadkeys را مجبور به تبدیل تمامی نگاشت‌های کلید به یونیکد می‌کند. اگر صفحه‌کلید در حالتی غیر از یونیکد (مانند XLATE) باشد، loadkeys در طول مدت اجرای خود آن را به یونیکد تغییر می‌دهد. در این حالت یک پیام هشدار چاپ خواهد شد.

توصیه می‌شود قبل از اجرای loadkeys به‌جای استفاده از گزینه -u، دستور kbd_mode(1) را اجرا کنید.

تبدیل اجباری به اسکی (ASCII).
loadkeys شماره نسخه و یک پیام کوتاه نحوه استفاده را در خروجی خطای استاندارد چاپ کرده و خارج می‌شود.
loadkeys جدول کلید را بدون انجام عمل خاصی جستجو و تجزیه می‌کند.
loadkeys تمام خروجی‌های عادی را پنهان می‌کند.
loadkeys شماره نسخه را چاپ کرده و خارج می‌شود.

توجه داشته باشید هر کسی که دسترسی خواندن به /dev/console داشته باشد می‌تواند loadkeys را اجرا کند و بدین ترتیب چینش صفحه‌کلید را تغییر دهد و چه بسا آن را غیرقابل استفاده سازد. توجه کنید که جدول نگاشت صفحه‌کلید میان تمام کنسول‌های مجازی مشترک است، بنابراین هر تغییری در نگاشت‌های صفحه‌کلید همزمان بر تمامی کنسول‌های مجازی اثر می‌گذارد.

توجه داشته باشید از آنجا که تغییرات بر تمام کنسول‌های مجازی تأثیر می‌گذارند، این تغییرات پس از پایان نشست کاری شما نیز پابرجا خواهند بود. این بدان معنی است که حتی در اعلان ورود به سیستم (login prompt) نیز ممکن است نگاشت کلیدها آن چیزی نباشد که کاربر انتظار دارد.

/usr/share/keymaps
دایرکتوری پیش‌فرض برای جداول نگاشت کلید.
/usr/src/linux/drivers/tty/vt/defkeymap.map
جدول نگاشت کلید پیش‌فرض هسته.

dumpkeys(1), keymaps(5)

مه ۲۰۲۵ kbd