LOADKEYS(1)

NAME
loadkeys - 調入鍵盤翻譯表

總覽 (SYNOPSIS)
loadkeys [ -d --default ] [ -h --help ] [ -q --quiet ] [ -v --verbose [ -v --verbose ]...] [ -m --mktable ] [ -c --clearcompose ] [ -s --clearstrings ] [ filename... ]

描述 (DESCRIPTION)

Loadkeys 讀取 由 filename... 指定的 檔案 內容. 它的 主要目的 是 為 控制台 調入 核心鍵盤對映表(kernel keymap).

設為預設 (RESET TO DEFAULT)
如果 指定了 -d (或 --default ) 選項, loadkeys 調入 預設的 鍵盤對映 檔案 defkeymap.map, 可能 在 /usr/share/keymaps 或 /usr/src/linux/drivers/char 目錄 下. (前者 可能是 使用者定義的, 而 後者 是 針對 PC 機 qwerty 鍵盤 的 對映 - 也許 你 不需要.) 某些情況下, 如果 遇上 奇怪的 鍵盤對映 (把 減號 '-' 弄成了 某種 陌生的 修飾組合), 你 只要 輕鬆的 鍵入 `loadkeys defkeymap' 就 可以了.

(譯註: qwerty 是一種常用的 PC 鍵盤佈局, 由 鍵盤 字母區 左上角 的 連續 橫向 六個 字母鍵 得名)

調入核心鍵盤對映 (KERNEL KEYMAP)
loadkeys 的 主要作用 是 調入 或 修改 鍵盤驅動程式 的 翻譯表. 當 指出了 檔名 的 時候, 標準輸入 用 短橫線(-) 表示. 如果 沒有 指出 檔名, loadkeys 就 從 標準輸入 讀取 資料.

對於 許多 國家 和 各種 鍵盤型別, 系統 已經 提供了 對應的 鍵盤對映表, 只需 用一條 諸如 `loadkeys uk' 的 命令 就可以 滿足 需要. 而且 很容易 設計 自己的 鍵盤對映表. 使用者 必須 識別 哪些 符號 屬於 哪些 鍵. 可以 用 showkey(1) 命令 查出 鍵值(keycode), 手冊頁 keymaps(5) 對 鍵盤對映表 格式 做了 說明, 也可以 參考 dumpkeys(1) 命令 輸出 的 內容.

調入核心 ACCENT 表
如果 輸入檔案 沒有 定義 任何 組合鍵(compose key), 核心 accent 表 就 保持 不變, 除非 使用了 -c (或 --clearcompose ) 選項, 此時 核心 accent 表 被 清空. 如果 輸入檔案 定義了 組合鍵, 那麼 清除 原有 定義, 換成 新的 定義. 核心 accent 表 是 一組 表項 (預設為 68 項), 用來 描述 區分符(dead diacritical sign) 和 組合鍵 怎麼 工作. 例如, 這行

    compose ',' 'c' to ccedilla

表示 <ComposeKey><,><c> 組合 產生 <ccedilla>. 使用 命令 `dumpkeys --compose-only' 能夠 檢視 當前 accent 表.

(譯註: Compose 鍵 可以 用 dumpkeys 命令 查出, 我的 系統上 是 ctrl+句號, 因此 相繼 按下 'ctrl-.', ',', 'c' 就可以 產生 上述的 'ccedilla'.)

調入核心字串表 (KERNEL STRING TABLE)
選項 -s (或 --clearstrings ) 用於 清除 核心字串表. 如果 不使用 這個 選項, loadkeys 只會 新增 或 調換 字串, 而不是 清除 它們. (因而 需要 選項 -s 實現 友好定義 狀態.) 核心字串表 是 一組 命名 字串, 就象 F31. 例如, 你 可以 使 功能鍵 F5 (普通 PC 鍵盤上 有) 產生 字串 `Hello!', 使 Shift+F5 產生 `Goodbye!':

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

把 這三行 加進 鍵盤對映表 即可. 預設的 功能鍵 定義 大多是 來自 VT100 終端 的 轉碼序列 (escape sequence).

建立核心原始檔表 (KERNEL SOURCE TABLE)
如果 給出了 -m (或 --mktable ) 選項, loadkeys 在 標準輸出 產生 一個檔案, 可以 用做 /usr/src/linux/drivers/char/defkeymap.c, 它 定義了 核心的 預設 鍵盤編聯 (但 不影響 當前 鍵盤對映).

選項 (OPTION)

-h --help
    在 標準錯誤 上 顯示 版本號 和 簡短 的 用法, 然後 結束.

-v --verbose
    顯示 更新 細節, 用的越多, 細節越細.

-q --quiet
    不要 顯示 一般資訊.

-c --clearcompose
    清除 核心的 組合鍵表 (就是 accent 表). 如果 沒有 使用 這個選項, 而且 輸入檔案 沒有 定義 組合鍵, 核心組合鍵表 保持 不變.

-s --clearstrings
    清除 核心的 字串表. 如果 沒有 使用 這個選項, loadkeys 將 新增 或 調換 字串, 而不是 刪除 它們.

檔案 (FILE)
/usr/lib/kbd/keymaps/ 鍵盤對映檔案 的 預設目錄.

/usr/lib/kbd/keymaps/defkeymap.kmap 用 -d 選項 調入的 預設 鍵盤對映檔案. (譯註: 對於 比較 新的 系統 請檢視 /usr/lib/kbd/keymaps/i386/qwerty/, 注意 這裡 最後面的 兩個 目錄, 前者 是 系統平臺, 後者 是 鍵盤型別)

BUGS
任何人 只要有 對 /dev/console 的 讀訪問權 就能夠 執行 loadkeys , 從而 改變 鍵盤佈局, 使 它 可能 無法使用. 鍵盤翻譯表 由 所有 虛擬控制台 共用, 所以 任何 對 鍵盤編聯 的 改變 會 同時 影響 所有的 虛擬控制台.

注意, 由於 改變 能夠 影響 所有的 虛擬控制台, 因此 它 比 使用者的 會話期 更長. 這意味著 即使 在 登入 提示 階段, 鍵值編聯 也會 影響 使用者 的 使用.

預設的 鍵盤對映 應該 編譯在 核心中. ( /usr/src/linux/drivers/char/defkeymap.c ).

另見 (SEE ALSO)
dumpkeys(1), kbd_mode(1), keymaps(5).

[中文版維護人]
徐明 <xuming@users.sourceforge.net>

[中文版最新更新]
2003/05/13 第一版

《中國Linux論壇man手冊頁翻譯計劃》
http://cmpp.linuxforum.net

跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh