Skip to content

小议:JIS键盘布局和构想中的“九指禅”并击方案 #17

@Howard-Zhou-77

Description

@Howard-Zhou-77

JIS标准键盘

宫保拼音有一个名为“八指禅”的并击方案,面向有两个空格键的客制化键盘,原本不参与并击的左拇指负责左空格,右拇指则负责右空格。此种键盘使我联想到了一种两手拇指控制三个键的标准键盘:JIS标准键盘(如下图)。

Image

JIS标准键盘是日本的标准键盘布局,其最下方一排按键与ISO和ANSI标准键盘有一点区别:JIS的空格键从左右两边各被缩减了一段,其两端的空间被无变换变换键占用了。在使用日语输入法输入日语时,这两个按键用于在同音词之间切换,但在输入日语以外的场合,这两个按键就没有作用了,本质上就是将ISO/ANSI标准的空格键分割成了三个按键。

“九指禅”

JIS标准的键盘布局不由得让人产生一个想法:可否像“八指禅”一样,将JIS标准键盘的变换无变换两个按键运用于并击输入?因为多了一个键,姑且将这种并击方案称为“九指禅”(虽然用到的还是八个手指)。

声母输入可以沿用八指禅的输入方式(不过将通过改键软件设定为A的左半空格换为无变换(Muhenkan)),主要修改韵母的并击输入。八指禅沿用了七指禅的韵母输入布局,而这种布局中尚有unuan需要错指输入。为解决这个错指输入,我们可以定义变换(Henkan)U',然后:

[U'] = uan
[U'N] = un

此处[N]指代字母K键,当然,这只是我的一个不成熟的设想。

实现“九指禅”时遇到的问题

若不进行额外配置,在输入和选词过程中按下JIS布局的特有按键(包括但不限于变换无变换),会导致输入窗格被隐藏,再按下字母按键则输入窗格恢复(无任何其他字符被输入),而按下数字键则输出对应选项。

librime keysymdef.h的定义中可以得知,理论上变换无变换key_binding的配置代码中分别记作HenkanMuhenkan。为测试RIME是否识别这两个按键,尝试添加一段测试性代码,将Henkan映射成字母U键:

# combo_pinyin_tonal_chords.schema.yaml

key_binder:
  import_preset: default
  bindings:
    - { when: has_menu, accept: minus, send: minus }  # tone 1
    - { when: paging, accept: minus, send: Page_Up }
    - { when: paging, accept: Henkan, send: Page_Down} # test

重新部署后按Henkan,仍然只是输入框被隐藏,并没有翻页效果。很可能librime内核无法接收非ANSI键盘的按键信息。这是“九指禅”实现的重要问题。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions