SETKEYCODES(8) دستورهای مدیریتی سیستم SETKEYCODES(8)

setkeycodes - بارگذاری مدخل‌های جدول نگاشت اسکن‌کد به کد کلید در هسته

setkeycodes [گزینه‌ها] scancode keycode ...

دستور setkeycodes آرگومان‌های خود را دوتا دوتا می‌خواند؛ هر جفت آرگومان شامل یک اسکن‌کد (ارائه‌شده در مبنای ۱۶ یا هگزادسیمال) و یک کد کلید (ارائه‌شده در مبنای ۱۰ یا ده‌دهی) است. برای هر جفت، به درایور صفحه‌کلید هسته اعلام می‌کند که اسکن‌کد مشخص‌شده را به کد کلید تعیین‌شده نگاشت کند.

این دستور تنها برای افرادی با صفحه‌کلیدهای تا حدی نامتعارف کاربرد دارد، صفحه‌کلیدهایی که دارای چند کلید هستند که اسکن‌کدهایی تولید می‌کنند که هسته آن‌ها را شناسایی نمی‌کند.

صفحه‌کلید معمول رایانه شخصی (PC) برای هر فشردن و رها کردن کلید، یک رشته اسکن‌کد تولید می‌کند. (اسکن‌کدها توسط showkey -s نمایش داده می‌شوند؛ ببینید: showkey(1)) هسته این جریان اسکن‌کدها را تجزیه کرده و آن را به جریانی از کدهای کلید (رویدادهای فشردن/رها کردن کلید) تبدیل می‌کند. (کدهای کلید توسط showkey نمایش داده می‌شوند.) به‌جز چند اسکن‌کد با معنای خاص، به‌جز توالی تولیدشده توسط کلید Pause، به‌جز اسکن‌کدهای مرتبط با وضعیت کلیدهای تبدیل‌گر (shiftstate)، و به‌جز بیت فشرده‌شدن/رهاشدن کلید (up/down)، جریان اسکن‌کدها شامل اسکن‌کدهای ساده بدون گریز xx (۷ بیت) و اسکن‌کدهای گریزخورده e0 xx (۸+۷ بیت) است. می‌توان به این اسکن‌کدها یا جفت‌های اسکن‌کد، یک کد کلید متناظر (در محدوده ۱ تا ۱۲۷) اختصاص داد. به عنوان مثال، اگر کلید ماکرویی (Macro) دارید که طبق showkey(1) کد e0 6f را تولید می‌کند، دستور

setkeycodes e06f 112
کد کلید ۱۱۲ را به آن اختصاص خواهد داد و سپس می‌توان از loadkeys(1) برای تعریف عملکرد این کلید استفاده کرد.

برخی هسته‌های قدیمی‌تر ممکن است محدوده پایینی از اسکن‌کدها را به کدهای کلید معادل متصل (سخت‌افزاری) کرده باشند؛ در این صورت، تلاش برای نگاشت مجدد آن‌ها توسط setkeycodes با شکست مواجه خواهد شد.

در هسته‌های نسخه ۲.۶، کدهای کلید به جای محدوده ۱-۱۲۷ در محدوده ۱-۲۵۵ قرار دارند. (شاید بهتر باشد خود را به محدوده ۱-۲۳۹ محدود کنید.)

در هسته‌های نسخه ۲.۶، حالت خام (raw mode) یا همان حالت اسکن‌کد، اصلاً چندان خام نیست. کد بازگردانده‌شده توسط showkey -s پس از استفاده از setkeycodes تغییر خواهد کرد. این یک باگ در هسته است. همچنین ببینید: showkey(1).

دستگاه کنسولی که باید استفاده شود.
چاپ شماره نسخه برنامه.
چاپ این پیام راهنمای نحوه استفاده.

کدهای کلید سامانه X هیچ ارتباطی با کدهای کلید لینوکس ندارند. کلیدهای نامتعارف را می‌توان در محیط لینوکس قابل مشاهده و شناسایی کرد، اما در سامانه X چنین امکانی وجود ندارد.

dumpkeys(1), loadkeys(1), showkey(1), getkeycodes(8)

24 October 2024 kbd