gpt4 book ai didi

linux - 使用更多修饰符重新映射键盘

转载 作者:IT王子 更新时间:2023-10-29 00:25:38 25 4
gpt4 key购买 nike

我正在寻找一种方法来为我的键盘添加一个“布局”。我已经在使用将 altgr 用于本地字母的布局。我想添加的是用大写锁定激活的镜像右侧键盘(在 http://xkcd.com/mirrorboard.xkb 中描述)

不幸的是,ISO_LEVEL3_SHIFT 已被本地字母表占用。 (AFAIK) 如果我使用 mode_shift 更改组,我不能再在一个组中使用超过 2 个级别。有没有办法为 altgr 和 mode_shift 创建不同的组?

最佳答案

对于每个键码定义,您最多可以有八个键符。这些被成对地分为四组。有一系列键符 ISO_Next_GroupISO_Prev_GroupISO_First_GroupISO_Last_Group,按下时会循环键符通过在 keysym 组中敲击键来输出。这些键是您获得多种布局的方式。

例如,假设 ISO_Next_Group 已绑定(bind)到键码并分配给修饰符,那么对于此定义:

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,即 Mode_switch,临时将组递增 1。在一个组中,发出的符号以递增的级别定义。第一级是一个裸按键。 Shift 将当前级别加一。 ISO_Level3_Shift 将级别设置为 III。

上面的示例将七个符号映射到空格键和各种 shift 键,例如:

空间 ⟨ ⟩ U+0020 空间
Shift+空格 ⟨ ⟩ U+0020 空格
R。 Alt+空格 ⟨␣⟩ U+2423 开箱
R。 Alt+Shift+空格 ⟨⟩ U+2003 EM 空格
R。 Ctl+空格 ⟨⎕⟩ U+2395 APL FUNCTIONAL SYMBOL QUAD
R。 Ctl+Shift+空格 ⟨▒⟩ U+2592 中色
R。 Alt+R。 Ctl.+space ⟨␠⟩ U+2420 SYMBOL FOR SPACE
R。 Alt+R。 Ctl.+Shift+空格 ⟨⟩ U+200A 头发空间

V 级还有一个键 ISO_Level5_Shift。因此一组至少可以有六个符号。使用模式切换键,这意味着您可以将键盘配置为键入大约 1,200 个不同的符号,但此时按住如此多的修饰符可能会使一些键变弱。

附言所有命名符号的名称都存储在 /usr/include/X11/keysymdef.h 中。


¹ 事实证明, xmodmap(1) 有问题并且已弃用。

关于linux - 使用更多修饰符重新映射键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1557689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com