停用大写锁定键的问题

停用大写锁定键的问题

我是新来的,所以如果我做错了什么,我很抱歉。

所以...我注意到我的大写锁定键只有在我松开键时才会停用。我只需按下该键即可激活它,但要关闭它,我需要松开我按下的键。这真的让我很烦恼。

我尝试进入 xkbmap 文件并更改大写锁定的配置,插入

key <CAPS> {
    repeat=no,
    type[group1]="ALPHABETIC",
    symbols[group1]=[ Caps_Lock, Caps_Lock],
    actions[group1]=[ LockMods(modifiers=Lock), Private(type=3,data[0]=1,data[1]=3,data[2]=3)]
};

但它没有起作用。

有人能帮我解决这个问题吗?我正在使用 Ubuntu 20.04。

答案1

对我来说,一个可行的解决方案是将 CAPS LOCK 定义添加到 xkb 的符号文件(可在 中找到)中/usr/share/X11/xkb/symbols。每个布局都有自己的文件,例如usdefr分别代表美国、德国和法国。

第一的:假设您正在使用us布局,您可以创建自定义符号文件并将其命名为类似custom。您可以在其中填充您的自定义内容:

partial xkb_symbols "caps_lock_unlock_patch" {  
    key <CAPS> {
        repeat=no,
        type[group1]="ALPHABETIC",
        symbols[group1]=[ Caps_Lock, Caps_Lock ],
        actions[group1]=[ LockMods(modifiers=Lock), Private(type=3,data[0]=1,data[1]=3,data[2]=3) ]
    };
};

第二:转到当前布局文件并包含指向您的自定义的指针:

default  partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {

    name[Group1]= "English (US)";

    key <TLDE> {    [     grave,    asciitilde  ]   };
    ...
    // rest of customization of basic US file
    ...
    key <BKSL> {    [ backslash,         bar    ]   };
    
    // include your customization here
    include "custom(caps_lock_unlock_patch)"
    // the syntax is include "NAME_OF_FILE(NAME_OF_PARTIAL_SYMBOLS_DEFINITION)"
};

您也可以直接在符号文件中添加块us,但我相信将事情分开会更好,特别是如果您想将相同的自定义应用于多个布局,并且自定义文件不应该在更新中被覆盖,而默认文件可能会被覆盖。

您也可以从头开始创建一个全新的布局(include "us(basic)"例如,您可以始终包含其他布局,然后使用自定义布局代替默认布局。或者,您可以操作通常不使用的布局,以防万一您想在不进行任何自定义的情况下切换回您的首选布局。

最后,一个小提示:避免直接在 中编辑文件/usr/share/X11/xkb/,最好在主文件夹中为自定义项创建一个文件夹,并将这些文件符号链接到 xkb 文件夹。如果您修改了默认文件,请创建它们的副本,以防万一您搞砸了并需要恢复任何更改。

相关内容