schema.yaml 詳解
雪齋 09-Nov-2013
開始之前
# Rime schema
# encoding: utf-8方案描述 schema
name方案的顯示名偁〔即出現於方案選單中以示人的,通常爲中文〕schema_id方案內部名,在代碼中引用此方案時以此名爲正,通常由英文、數字、下劃線組成author發明人、撰寫者。如果您對方案做出了修改,請保留原作者名,並將自己的名字加在後面description請簡要描述方案歷史、碼表來源、該方案規則等dependencies如果本方案依賴於其它方案〔通常來說會依頼其它方案做爲反查,抑或是兩種或多種方案混用時〕version版本號,在發佈新版前請確保已陞版本號
示例:
schema:
name: "蒼頡檢字法"
schema_id: cangjie6
author:
- "發明人 朱邦復先生、沈紅蓮女士"
dependencies:
- luna_pinyin
- jyutping
- zyenpheng
description: |
第六代倉頡輸入法
碼表由雪齋、惜緣和crazy4u整理
version: 0.19開關 switches
通常包含以下數個,但並不限於此,自定義過濾器皆可設置開關調控
ascii_mode是中英文轉換開關。預設0爲中文,1爲英文full_shape是全角符號/半角符號開關。注意,開啓全角時英文字母亦爲全角。0爲半角,1爲全角extended_charset是字符集開關。0爲 CJK 基本字符集,1爲 CJK 全字符集(僅table_translator可用)ascii_punct是中西文標點轉換開關,0爲中文句讀,1爲西文標點。simplification是轉化字開關。一般情況下與上同,0爲不開啓轉化,1爲轉化。
所有關關選項名偁可自定義,可用快捷鍵切換:該名偁可用於 key_binder/bindings 中的 toggle 後
- name: simplification
states: ["漢字", "汉字"]
reset: 0亦可使用多選開關,同樣支持快捷鍵:options 名偁用於 key_binder/bindings 時,使用 set_option 或 unset_option 開啓或關閉某一個
- options: [zh_trad, zh_cn, zh_mars]
states:
- 字型 → 漢字
- 字型 → 汉字
- 字型 → 䕼茡
reset: 0name/options名:須與simplifier中option_name相同states:可不寫,如不寫則此開關存在但不可見,可由快捷鍵操作reset:設定默認狀態〔reset可不寫,此時切換窗口時不會重置到默認狀態〕
示例:
switches:
- name: ascii_mode
reset: 0
states: ["中文", "西文"]
- name: full_shape
states: ["半角", "全角"]
- name: extended_charset
states: ["通用", "增廣"]
- name: simplification
states: ["漢字", "汉字"]
- name: ascii_punct
states: ["句讀", "符號"]引擎 engine
在引擎中可以指定各類組件來執行輸入法功能。特別地,以下加粗項爲可進一步配置的組件。引擎分四組:
一、處理器 processors
這批組件負責籠統地處理各類按鍵消息
ascii_composer處理西文模式及中西文切recognizer與matcher搭配,處理符合特定規則的輸入碼,如網址、反查等tagskey_binder在特定條件下將按鍵綁定到其他按鍵,如重定義逗號、句號爲候選翻頁、開關快捷鍵等speller拼寫處理器,接受字符按鍵,編輯輸入punctuator句讀處理器,將單個字符按鍵直接映射爲標點符號或文字selector選字處理器,處理數字選字鍵〔可以換成別的哦〕、上、下候選定位、換頁navigator處理輸入欄內的光標移動express_editor編輯器,處理空格、回車上屏、回退鍵fluid_editor句式編輯器,用於以空格斷詞、回車上屏的【注音】、【語句流】等輸入方案,替換express_editorchord_composer和絃作曲家或曰並擊處理器,用於【宮保拼音】等多鍵並擊的輸入方案lua_processor使用 Lua 自定義處理器,參見 Lua
二、分段器 segmentors
這批組件識別不同內容類型,將輸入碼分段並加上 tag
ascii_segmentor標識西文段落〔譬如在西文模式下〕字母直接上屛matcher配合recognizer標識符合特定規則的段落,如網址、反查等,加上特定tagabc_segmentor標識常規的文字段落,加上abc這個tagpunct_segmentor標識句讀段落〔鍵入標點符號用〕加上punct這個tagfallback_segmentor標識其他未標識段落affix_segmentor用戶自定義tag- 此項可加載多個實例,後接
@+tag名
- 此項可加載多個實例,後接
lua_segmentor使用 Lua 自定義切分,參見 Lua
三、翻譯器 translators
這批組件翻譯特定類型的編碼段爲一組候選文字
echo_translator沒有其他候選字時,回顯輸入碼〔輸入碼可以Shift+Enter上屛〕punct_translator配合punct_segmentor轉換標點符號table_translator碼表翻譯器,用於倉頡、五筆等基於碼表的輸入方案- 此項可加載多個實例,後接
@+翻譯器名〔如:cangjie、wubi等〕
- 此項可加載多個實例,後接
script_translator腳本翻譯器,用於拼音、粵拼等基於音節表的輸入方案- 此項可加載多個實例,後接
@+翻譯器名〔如:pinyin、jyutping等〕
- 此項可加載多個實例,後接
history_translator產生上屏歷史候選lua_translator使用 Lua 自定義翻譯器,例如動態輸入當前日期、時間,參見 Lua
另有 reverse_lookup_translator 作爲反查翻譯器,用另一種編碼方案查碼。librime 1.0 後,建議使用下面的 reverse_lookup_filter 代替。
四、過濾器 filters
這批組件過濾翻譯的結果,自定義過濾器皆可使用開關調控
uniquifier過濾重複的候選字,例如有可能來自simplifiercjk_minifier字符集過濾〔僅用於script_translator,使之支援extended_charset開關〕single_char_filter單字過濾器,如加載此組件,則屛敝詞典中的詞組〔僅table_translator有效〕simplifier用字轉換reverse_lookup_filter反查過濾器,以更靈活的方式反查,librime 1.0 後替代reverse_lookup_translator- 此項可加載多個實例,後接
@+過濾器名〔如:pinyin_lookup、jyutping_lookup等〕
- 此項可加載多個實例,後接
lua_filter使用 Lua 自定義過濾器,例如過濾字符集、調整排序,參見 Lua
示例:
# cangjie6.schema.yaml
engine:
processors:
- ascii_composer
- recognizer
- key_binder
- speller
- punctuator
- selector
- navigator
- express_editor
segmentors:
- ascii_segmentor
- matcher
- affix_segmentor@pinyin
- affix_segmentor@jyutping
- affix_segmentor@pinyin_lookup
- affix_segmentor@jyutping_lookup
- affix_segmentor@reverse_lookup
- abc_segmentor
- punct_segmentor
- fallback_segmentor
translators:
- punct_translator
- table_translator
- script_translator@pinyin
- script_translator@jyutping
- script_translator@pinyin_lookup
- script_translator@jyutping_lookup
- lua_translator@get_date
filters:
- simplifier@zh_simp
- uniquifier
- cjk_minifier
- reverse_lookup_filter@middle_chinese
- reverse_lookup_filter@pinyin_reverse_lookup
- reverse_lookup_filter@jyutping_reverse_lookup
- lua_filter@single_char_first組件配置:處理器類
拼寫處理器 speller
alphabet定義本方案輸入鍵initials定義僅作始碼之鍵finals定義僅作末碼之鍵delimiter上屛時的音節間分音符algebra拼寫運算規則,由之算出的拼寫匯入prism中max_code_length形碼最大碼長,超過則頂字上屛〔number〕auto_select自動上屛〔true或false〕auto_select_pattern自動上屏規則,以正則表達式描述,當輸入串可以被匹配時自動頂字上屏。use_space以空格作輸入碼〔true或false〕
speller的演算包含:
xform--改寫〔不保留原形〕derive--衍生〔保留原形〕abbrev--簡拼〔出字優先級較上兩組更低〕fuzz--畧拼〔此種簡拼僅組詞,不出單字〕xlit--變換〔適合大量一對一變換〕erase--刪除
凡comment_format、preedit_format、speller/algebra所用之正則表達式,請參閱「Perl 正則表達式」
示例:
luna_pinyin.schema.yaml
speller:
alphabet: zyxwvutsrqponmlkjihgfedcba
delimiter: " '"
algebra:
- erase/^xx$/
- abbrev/^([a-z]).+$/$1/
- abbrev/^([zcs]h).+$/$1/
- derive/^([nl])ve$/$1ue/
- derive/^([jqxy])u/$1v/
- derive/un$/uen/
- derive/ui$/uei/
- derive/iu$/iou/
- derive/([aeiou])ng$/$1gn/
- derive/([dtngkhrzcs])o(u|ng)$/$1o/
- derive/ong$/on/
- derive/ao$/oa/
- derive/([iu])a(o|ng?)$/a$1$2/快捷編輯器 express_editor / 句式編輯器 fluid_editor
用以訂製操作鍵,鍵名可參考按鍵名稱,效果定義如下:
- confirm 上屏候選項
- commit_comment 上屏候選項備注
- commit_raw_input 上屏原始輸入
- commit_script_text 上屏變換後輸入
- commit_composition 語句流單字上屏
- revert 撤消上次輸入
- back 按字符回退
- back_syllable 按音節回退
- delete_candidate 刪除候選項
- delete 向後刪除
- cancel 取消輸入
- noop 空
示例:
editor:
bindings:
Return: commit_comment並擊處理器 chord_composer
並擊把鍵盤分兩半,相當於兩塊鍵盤。兩邊同時擊鍵,系統默認在其中一半上按的鍵先於另一半,由此得出上屛碼
alphabet字母表,包含用於並擊的按鍵。擊鍵雖有先後,形成並擊時,一律以字母表順序排列algebra拼寫運算規則,將一組並擊編碼轉換爲拼音音節output_format並擊完成後套用的式樣,追加隔音符號prompt_format並擊過程中套用的式樣,加方括弧
示例:
# combo_pinyin.schema.yaml
chord_composer:
# 字母表,包含用於並擊的按鍵
# 擊鍵雖有先後,形成並擊時,一律以字母表順序排列
alphabet: "swxdecfrvgtbnjum ki,lo."
# 拼寫運算規則,將一組並擊編碼轉換爲拼音音節
algebra:
# 先將物理按鍵字符對應到宮保拼音鍵位中的拼音字母
- "xlit|swxdecfrvgtbnjum ki,lo.|sczhlfgdbktpRiuVaNIUeoE|"
# 以下根據宮保拼音的鍵位分別變換聲母、韻母部分
# 組合聲母
- xform/^zf/zh/
- xform/^cl/ch/
- xform/^fb/m/
- xform/^ld/n/
- xform/^hg/r/
- ……
# 聲母獨用時補足隠含的韻母
- xform/^([bpf])$/$1u/
- xform/^([mdtnlgkh])$/$1e/
- xform/^([mdtnlgkh])$/$1e/
- xform/^([zcsr]h?)$/$1i/
# 並擊完成後套用的式樣,追加隔音符號
output_format:
- "xform/^([a-z]+)$/$1'/"
# 並擊過程中套用的式樣,加方括弧
prompt_format:
- "xform/^(.*)$/[$1]/"識別器 recognizer
import_preset 由外部統一文件導入
下設patterns 配合segmentor的prefix和suffix完成段落劃分、tag分配
前字段可以爲以affix_segmentor@someTag定義的Tag名,或者punct、reverse_lookup兩個內設的字段。其它字段不調用輸入法引擎,輸入即輸出〔如url等字段〕
recognizer:
import_preset: default
patterns:
email: "^[a-z][-_.0-9a-z]*@.*$"
url: "^(www[.]|https?:|ftp:|mailto:).*$"
reverse_lookup: "`[a-z]*;?$"
pinyin_lookup: "`P[a-z]*;?$"
jyutping_lookup: "`J[a-z]*;?$"
pinyin: "(?<!`)P[a-z']*;?$"
jyutping: "(?<!`)J[a-z']*;?$"
punct: "/[a-z]*$" #配合symbols.yaml中的特殊字符輸入按鍵綁定器 key_binder
key_binder 下設 bindings 設置功能性快捷鍵。每一條 binding 包含:when 作用範圍、accept 實際所按之鍵,以及期望的操作。
when 可用字段包含:
paging翻䈎時has_menu操作候選項時composing操作輸入碼時always全域
操作可爲以下任意一個:
send輸出按鍵toggle切換開關,可用字段包含各開關名send_sequence輸出一串按鍵set_option開某多選開關unset_option關某多選開關set_option、unset_option可用字段包含多選開關名
select選候選字
accept 和 send 可用字段除 A-Za-z0-9 外,還包含以下鍵板上的各種特殊按鍵,具體請參考附錄。
示例:
key_binder:
import_preset: default
bindings:
- { accept: semicolon, send: 2, when: has_menu } #分號選第二重碼
- { accept: apostrophe, send: 3, when: has_menu } #引號選第三重碼
- { accept: "Control+1", select: .next, when: always }
- { accept: "Control+2", toggle: full_shape, when: always }
- { accept: "Control+3", toggle: simplification, when: always }
- { accept: "Control+4", toggle: extended_charset, when: always }標點處理器 punctuator
下設 full_shape 和 half_shape 分别控制全角模式下的符號和半角模式下的符號,另有 use_space 空格頂字〔true 或 false〕
每條標點項可加 commit 直接上屏和 pair 交替上屏兩種模式,默認爲選單模式
示例:
# 修改自 cangjie6.schema.yaml
punctuator:
import_preset: symbols
half_shape:
"'": { pair: ["「", "」"] } #第一次按是「,第二次是」
"(": ["〔", "["] #彈出選單
.: { commit: "。" } #無選單,直接上屛。優先級最高組件配置:分段器類
正則分段器 affix_segmentor
segmentor 配合 recognizer 標記出 tag,tag 會用在translator、reverse_lookup_filter、simplifier 中用以標定各自作用範圍。
tag設定其tagprefix設定其前綴標識,可不塡,不塡則無前綴suffix設定其尾綴標識,可不塡,不塡則無尾綴tips設定其輸入前提示符,可不塡,不塡則無提示符closing_tips設定其結束輸入提示符,可不塡,不塡則無提示符extra_tags爲此segmentor所標記的段落插上其它tag
如果一個 affix_segmentor 僅僅用於副翻譯器,且不需要用到 extra_tags,則該 affix_segmentor 的配置可以寫在對應的副翻譯器下面,此處 1-5 條對應副翻譯器配置(見下)24-28 條。
文本分段器 abc_segmentor
abc_segmentor 僅可設 extra_tags。
示例:
cangjie6.schema.yaml
reverse_lookup:
tag: reverse_lookup
prefix: "`"
suffix: ";"
tips: "【反查】"
closing_tips: "【蒼頡】"
extra_tags:
- pinyin_lookup
- jyutping_lookup組件配置:翻譯器類
腳本翻譯器 script_translator / 碼表翻譯器 table_translator
每個方案有一個主翻譯器,可以是 script_translator / table_translator 二者之一,在引擎列表中不需要加 @ + 翻譯器名,在細項配置時直接以 translator 命名。以下加粗項爲只能在副翻譯器〔以 @ + 翻譯器名命名〕中定義
enable_charset_filter是否開啓字符集過濾〔僅table_translator有效。啓用cjk_minifier後可適用於script_translator〕enable_encoder是否開啓自動造詞〔僅table_translator有效〕encode_commit_history是否對已上屛詞自動成詞〔僅table_translator有效〕max_phrase_length最大自動成詞詞長〔僅table_translator有效〕enable_completion提前顯示尚未輸入完整碼的字〔僅table_translator有效〕enable_correction啓用自動糾錯〔僅script_translator有效〕sentence_over_completion在無全碼對應字而僅有逐鍵提示時也開啓智能組句〔僅table_translator有效〕strict_spelling配合speller中的fuzz規則,僅以畧拼碼組詞〔僅table_translator有效〕disable_user_dict_for_patterns禁止某些編碼錄入用戶詞典enable_sentence是否開啓自動造句enable_user_dict是否開啓用戶詞典〔用戶詞典記錄動態字詞頻、用戶詞〕- 以上 11 項,選塡
true或false
- 以上 11 項,選塡
dictionary翻譯器將調取此字典文件prism設定由此主翻譯器的speller生成的棱鏡文件名,或此副編譯器調用的棱鏡名user_dict設定用戶詞典名db_class設定用戶詞典類型,可設tabledb〔文本〕或userdb〔二進制〕preedit_format上屛碼自定義comment_format提示碼自定義spelling_hints設定多少字以內候選標註完整帶調拼音〔僅script_translator有效〕always_show_comments始終顯示提示碼〔僅script_translator有效〕initial_quality設定此翻譯器出字優先級contextual_suggestions是否使用語言模型優化輸出結果〔需配合grammar使用〕max_homophones最大同音簇長度〔需配合grammar使用〕max_homographs最大同形簇長度〔需配合grammar使用〕tag設定此翻譯器針對的tag。可不塡,不塡則僅針對abcprefix設定此翻譯器的前綴標識,可不塡,不塡則無前綴suffix設定此翻譯器的尾綴標識,可不塡,不塡則無尾綴tips設定此翻譯器的輸入前提示符,可不塡,不塡則無提示符closing_tips設定此翻譯器的結束輸入提示符,可不塡,不塡則無提示符
歷史翻譯器 history_translator
tag: 同 Translator 說明initial_quality: 同 Translator 說明size: 設定候選記錄量,預設: 0 等同(commit_record 最大儲存量 20)input: 觸發此翻譯器的字串
示例:
# cangjie6.schema.yaml 蒼頡主翻譯器
translator:
dictionary: cangjie6
enable_charset_filter: true
enable_sentence: true
enable_encoder: true
encode_commit_history: true
max_phrase_length: 5
preedit_format:
- xform/^([a-z ])$/$1|\U$1\E/
- xform/(?<=[a-z])\s(?=[a-z])//
- "xlit|ABCDEFGHIJKLMNOPQRSTUVWXYZ|日月金木水火土竹戈十大中一弓人心手口尸廿山女田止卜片|"
comment_format:
- "xlit|abcdefghijklmnopqrstuvwxyz~|日月金木水火土竹戈十大中一弓人心手口尸廿山女田止卜片・|"
disable_user_dict_for_patterns:
- "^z.$"
initial_quality: 0.75# cangjie6.schema.yaml 拼音副翻譯器
pinyin:
tag: pinyin
dictionary: luna_pinyin
enable_charset_filter: true
prefix: "P" #須配合recognizer
suffix: ";" #須配合recognizer
preedit_format:
- "xform/([nl])v/$1ü/"
- "xform/([nl])ue/$1üe/"
- "xform/([jqxy])v/$1u/"
tips: "【漢拼】"
closing_tips: "【蒼頡】"# pinyin_simp.schema.yaml 拼音・簡化字主翻譯器
translator:
dictionary: luna_pinyin
prism: luna_pinyin_simp
preedit_format:
- xform/([nl])v/$1ü/
- xform/([nl])ue/$1üe/
- xform/([jqxy])v/$1u/# luna_pinyin.schema.yaml 朙月拼音用戶短語
custom_phrase: #這是一個table_translator
dictionary: ""
user_dict: custom_phrase
db_class: tabledb
enable_sentence: false
enable_completion: false
initial_quality: 1組件配置:過濾器類
反查過濾器 reverse_lookup_filter
此過濾器查詢候選中文字在某種輸入方案中的輸入碼,然後將其放到候選的 comment 中。
tags設定其作用範圍overwrite_comment是否覆蓋其他提示dictionary反查所得提示碼之碼表comment_format自定義提示碼格式apply_comment
示例:
# cangjie6.schema.yaml
pinyin_reverse_lookup: #該反查過濾器名
tags: [pinyin_lookup] #掛在這個tag所對應的翻譯器上
overwrite_comment: true
dictionary: cangjie6 #反查所得爲蒼頡碼
comment_format:
- "xform/$/〕/"
- "xform/^/〔/"
- "xlit|abcdefghijklmnopqrstuvwxyz |日月金木水火土竹戈十大中一弓人心手口尸廿山女田止卜片、|"用字轉換器 simplifier
option_name對應switches中設定的切換項名,暨key_binder/binding中所用名opencc_config用字轉換配置文件,位於:rime_dir/opencc/,自帶之配置文件含:- 繁轉簡〔默認〕:
t2s.json - 繁轉臺灣:
t2tw.json - 繁轉香港:
t2hk.json - 簡轉繁:
s2t.json
- 繁轉簡〔默認〕:
tags設定轉換範圍tips設定是否提示轉換前的字,可塡none〔或不塡〕、char〔僅對單字有效〕、allcomment_format自定義提示碼格式allow_erase_comment是否允許返回空提示碼〔默認false〕show_in_comment設定是否僅將轉換結果顯示在備注中excluded_types取消特定範圍〔一般爲*reverse_lookup_translator*〕轉化用字
示例:
# 修改自 luna_pinyin_kunki.schema.yaml
zh_tw:
option_name: zh_tw
opencc_config: t2tw.json
tags: [abc] #abc對應abc_segmentor
tips: none
allow_erase_comment: true
comment_format:
- xform/.*//Lua
使用 Lua 組件時要指明調用的是哪一個 Lua 函數,例如 lua_translator@date 表示調用 date 這個 Lua 函數作爲翻譯器。具體的函數接口如下:
lua_processor:參數爲key_event, envlua_segmentor:參數爲input, envlua_translator:參數爲input, segment, envlua_filter:參數爲translation, env
請參攷 hchunhui/librime-lua 以尋求更多靈感。
示例:
; lua/rime.lua
function get_date(input, seg, env)
--- 以 show_date 爲開關名或 key_binder 中 toggle 的對象
on = env.engine.context:get_option("show_date")
if (on and input == "date") then
--- Candidate(type, start, end, text, comment)
yield(Candidate("date", seg.start, seg._end, os.date("%Y年%m月%d日"), " 日期"))
end
end
---
function single_char_first(input, env)
--- 以 single_char 爲開關名或 key_binder 中 toggle 的對象
on = env.engine.context:get_option("single_char")
local cache = {}
for cand in input:iter() do
if (not on or utf8.len(cand.text) == 1) then
yield(cand)
else
table.insert(cache, cand)
end
end
for i, cand in ipairs(cache) do
yield(cand)
end
end其它
grammar 語法
下設:
language取值zh-han[ts]-t-essay-bg[wc]collocation_max_length最大搭配長度(整句輸入可忽畧此項)collocation_min_length最小搭配長度(整句輸入可忽畧此項)
menu 選單
- Rime 還爲每個方案提供選單和一定的外觀訂製能力
- 通常情況下
menu在default.custom.yaml,
示例:
menu:
alternative_select_labels: [①, ②, ③, ④, ⑤, ⑥, ⑦, ⑧, ⑨] # 修改候選標籤
alternative_select_keys: ASDFGHJKL #如編碼字符佔用數字鍵則須另設選字鍵
page_size: 5 #選單每䈎顯示個數style 樣式
在用戶修改檔squirrel.custom.yaml或weasel.custom.yaml
style:
font_face: "HanaMinA, HanaMinB" #字體〔小狼毫得且僅得設一個字體;鼠鬚管得設多個字體,後面的字體自動補前面字體不含的字〕
font_point: 15 #字號
label_format: "%s" # 候選標籤格式
horizontal: false #橫/直排
line_spacing: 1 #行距
inline_preedit: true #輸入碼內嵌附錄:按鍵名稱
BackSpace 退格
Tab 水平定位符
Linefeed 换行
Clear 清除
Return 回車
Pause 暫停
Sys_Req 印屏
Escape 退出
Delete 刪除
Home 原位
Left 左箭頭
Up 上箭頭
Right 右箭頭
Down 下箭頭
Prior、Page_Up 上翻
Next、Page_Down 下翻
End 末位
Begin 始位
Shift_L 左Shift
Shift_R 右Shift
Control_L 左Ctrl
Control_R 右Ctrl
Meta_L 左Meta
Meta_R 右Meta
Alt_L 左Alt
Alt_R 右Alt
Super_L 左Super
Super_R 右Super
Hyper_L 左Hyper
Hyper_R 右Hyper
Caps_Lock 大寫鎖
Shift_Lock 上檔鎖
Scroll_Lock 滾動鎖
Num_Lock 小鍵板鎖
Select 選定
Print 列印
Execute 執行
Insert 插入
Undo 還原
Redo 重做
Menu 菜單
Find 蒐尋
Cancel 取消
Help 幫助
Break 中斷
space
exclam !
quotedbl "
numbersign #
dollar $
percent %
ampersand &
apostrophe '
parenleft (
parenright )
asterisk *
plus +
comma ,
minus -
period .
slash /
colon :
semicolon ;
less <
equal =
greater >
question ?
at @
bracketleft [
backslash \
bracketright ]
asciicircum ^
underscore _
grave `
braceleft {
bar |
braceright }
asciitilde ~
KP_Space 小鍵板空格
KP_Tab 小鍵板水平定位符
KP_Enter 小鍵板回車
KP_Delete 小鍵板刪除
KP_Home 小鍵板原位
KP_Left 小鍵板左箭頭
KP_Up 小鍵板上箭頭
KP_Right 小鍵板右箭頭
KP_Down 小鍵板下箭頭
KP_Prior、KP_Page_Up 小鍵板上翻
KP_Next、KP_Page_Down 小鍵板下翻
KP_End 小鍵板末位
KP_Begin 小鍵板始位
KP_Insert 小鍵板插入
KP_Equal 小鍵板等於
KP_Multiply 小鍵板乘號
KP_Add 小鍵板加號
KP_Subtract 小鍵板減號
KP_Divide 小鍵板除號
KP_Decimal 小鍵板小數點
KP_0 小鍵板0
KP_1 小鍵板1
KP_2 小鍵板2
KP_3 小鍵板3
KP_4 小鍵板4
KP_5 小鍵板5
KP_6 小鍵板6
KP_7 小鍵板7
KP_8 小鍵板8
KP_9 小鍵板9