如何在 KDE 中创建自定义键盘布局

如何在 KDE 中创建自定义键盘布局

我有一个自定义的 X11 键盘布局,可以与setxkbmap.但经过一番搜索后,我发现显然仅仅拥有 XKB 布局文件不足以将其设置为 KDE 4 中的新键盘布局。我希望 KDE 系统能够识别我的自定义布局,以便我可以使用系统托盘小程序选择它,或者使用系统设置模块将其安装为默认值。我需要做什么才能实现这一点?如果复杂的话也没关系,我还是想知道其中涉及什么。

我看过这个问题这似乎是相关的,但它显然是关于首先创建键盘布局,我已经完成了。

答案1

您需要告诉系统您拥有该文件。我不会告诉您如何修改这些文件——您会弄清楚的——但我会告诉您要修改哪些文件。

首先,布局本身位于/usr/share/X11/xkb/symbols/.您可以使用新扩展名复制该文件,也可以修改现有文件之一以添加您的布局变体。例如,如果您的布局基于德语布局,请将一个部分添加到/usr/share/X11/xkb/symbols/de.

最后,您需要修改 /usr/share/X11/xkb/rules/evdev.lst/usr/share/X11/xkb/rules/evdev.xml添加有关布局/布局变体的信息。

答案2

对于任何对此有疑问的人来说,这里有一个更详细的答案。

如何在 KDE 中创建自定义键盘布局

  • 您所需要查看的就是这些文件:
    • /usr/share/X11/xkb/symbols/
    • /usr/share/X11/xkb/rules/evdev.xml
    • /usr/share/X11/xkb/rules/evdev.lst
  1. 首先,/usr/share/X11/xkb/symbols您可以找到许多按语言分类的键盘布局。这些文件中有很多精彩内容,如果您不喜欢其中的布局,请查看一下,如果您确实跳到 3。
  2. 如果您尚未决定键盘布局,我们将为我们的布局创建一个新块。
  • 选择您希望键盘布局基于的语言
  • 打开该文件并使用 ID 和名称创建一个新块:
xkb_symbols "keyboard_id" {// unique keyboard id
  include "us" // the keyboard you are based on
  name[Group1]= "my keyboard"; // the keyboard name that will be shown in the menus

  // your configuration will later go here

  include "level3(ralt_switch)" // optional switch to allow alt+gr and alt+gr+shift to be used
};
  1. 我们稍后会回到这里。首先我们必须使其能够被系统读取。打开 /usr/share/X11/xkb/rules/evdev.lst
  • 搜索放置键盘布局块的文件的文件名(在我的例子中是 cz),然后在其中放置一个新条目,如下所示: keyboard_id cz: my keyboard
  • 同时用您的价值观替换keyboard_id czmy keyboard
  • 图像
  1. 执行类似的任务 /usr/share/X11/xkb/rules/evdev.xml 图像

  2. 如果您已正确完成所有操作,它现在应该出现在键盘布局中: 图像

  3. 应用此键盘布局。您现在可以使用布局进行输入!但您可能想要更改基本布局(在我们的例子中是我们)

  4. 现在我们回到 2。 - 您将需要定义与您所基于的布局不同的任何键(在本例中是美国键盘)

xkb_symbols "keyboard_id" {// unique keyboard id
    include "us" // the keyboard you are based on
    name[Group1]= "my keyboard"; // the keyboard name that will be shown in the menus

    key <AE01>  {[      plus,     exclam,            1,        1 ]};
    key <AE02>  {[    ecaron,         at,            2,   Ecaron ]};
    key <AE03>  {[    scaron, numbersign,            3,   Scaron ]};
    key <AE04>  {[    ccaron,     dollar,            4,   Ccaron ]};
    key <AE05>  {[    rcaron,    percent,            5,   Rcaron ]};
    key <AE06>  {[    zcaron,asciicircum,            6,   Zcaron ]};
    key <AE07>  {[    yacute,  ampersand,            7,   Yacute ]};
    key <AE08>  {[    aacute,   asterisk,            8,   Aacute ]};
    key <AE09>  {[    iacute,  parenleft,            9,   Iacute ]};
    key <AE10>  {[    eacute, parenright,            0,   Eacute ]};
    key <AE11>  {[     minus, underscore,     NoSymbol, NoSymbol ]};
    key <AE12>  {[     equal,       plus,   dead_caron, dead_acute]};

    include "level3(ralt_switch)" // optional switch to allow alt+gr and alt+gr+shift to be used
};

解释正在发生的事情

  • <AE01>- 物理密钥的标识符。参考文件中的其他键盘布局以供参考
  • {[ first_key, second_key, third_key, fourth_key]);
    • first_key - 在没有其他按钮按下的情况下按下的键
    • secondary_key - 与 Shift 一起按下时的键
    • Third_key - 使用 alt+gr 按下时的键
    • Fourth_key - 使用 alt+gr+shift 按下时的键
  • 现在,如果您省略了include "level3(ralt_switch)"第三个和第四个键,则不会执行任何操作,因此您应该只有两个键,如下所示: key <AE10> {[ eacute, parenright]};
  • 重新排序布局并应用以在保存文件后查看更改(或以其他方式重新加载系统中的键盘布局。在最坏的情况下只需重新启动) 图像

相关内容