不幸的是,ISO_LEVEL3_SHIFT已经被当地字母表所采用. (AFAIK)如果我使用mode_shift来改变组,我不能再在组中使用2个以上的级别了.有没有办法为altgr和mode_shift创建不同的组?
解决方法
例如,假设ISO_Next_Group已绑定到键码并分配给修饰符,则对于此定义:
keycode 53 = x X Greek_xi Greek_XI multiply U2297 U24E7 U24CD
在键入“x”的类型上按下标签“X”的键盘键.按下ISO_Next_Group键后,我得到“ξ”.再次按它,我得到“×”.再按一次,“ⓧ”.最后,第四次按下它会让事情恢复正常.
花了好几天(因为Xkb¹有可怕的文档;最后找到了一个好的指南here),你可以用这样的条目创建一个符号定义文件:
key <SPCE> { // Level I II III IV [ space,space,U2395,U2592 ],// Group 1 [ U2423,emspace,U2420,hairspace ] // Group 2 }; key <RALT> { [ Mode_switch,Mode_switch ] }; key <RCTL> { [ ISO_Level3_Shift,ISO_Level3_Shift ] };
括号括起一个组.通常,第一组是活动的.可以使用ISO_Group_Shift,a.k.a.Mode_switch临时增加该组.在组内,发出的符号以递增的级别定义.一级是裸键. Shift将一个添加到当前级别. ISO_Level3_Shift将级别设置为III.
上面的示例将七个符号映射到空格键以及各种shift键,以便:
空间⟨⟨U0020 SPACE
换档空间⟨⟨U0020 SPACE
R. Alt space⟨␣⟩U 2423 OPEN Box
R. Alt Shift空间⟨⟨U2003 EM SPACE
R. Ctl space⟨⎕⟩U 2395 APL功能符号四
R. Ctl Shift space⟨▒⟩U2592 MEDIUM SHADE
R. Alt R. Ctl.空间⟨␠⟩U 2420符号空间
R. Alt R. Ctl.换档空间⟨⟨U200A HAIR SPACE
对于V级,还有一个关键的ISO_Level5_Shift.因此,一组可以至少有六个符号.使用模式切换键,这意味着您可以配置键盘输入大约1,200个不同的符号,但在此时按住这么多修饰符可能会减少几个键.
附:所有命名符号的名称都存储在/usr/include/X11/keysymdef.h中.
¹事实证明xmodmap(1)是错误的并且已弃用.
原文地址:https://www.jb51.cc/linux/394253.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。