如何在 org.gnome.desktop.input-sources 中指定键盘布局 variant

bjo*_*nen 5 gnome xkb

我有一台 Thinkpad 笔记本电脑,带有外部 Apple 键盘。我喜欢重新映射外部键盘的按键,因此当我用德语和英语输入时,我调整了 xkb/symbols/us 和 xkb/symbols/de 中的相关部分(Mac 部分)。最终,我希望能够在插入 Apple 键盘时提供带有重新映射按键的英语和德语键盘,在未连接外部键盘时提供基本的英语和德语键盘。

我想用来gsettings set org.gnome.desktop.input-sources切换可用的键盘。这适用于基本键盘,例如 gsettings set org.gnome.desktop.input-sources 源 "[('xkb', 'us'),('xkb'),'de')]" 提供基本键盘之间的选择英语和德语键盘。

然而问题是这样的。跑步 gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'de(mac)')]"似乎不起作用。所以由于某种原因变体de(mac)不能像这样添加。然而,使用 setxkmap 进行切换是可行的setxkbmap -layout "de(mac)"

假设我从 us(mac) 键盘开始

setxkbmap -layout "us(mac)"
setxkbmap -print
xkb_keymap {
xkb_keycodes  { include "evdev+aliases(qwerty)" };
xkb_types     { include "complete"  };
xkb_compat    { include "complete"  };
xkb_symbols   { include "pc+us(mac)+inet(evdev)+terminate(ctrl_alt_bksp)"   };
xkb_geometry  { include "pc(pc105)" };
};
Run Code Online (Sandbox Code Playgroud)

然后我尝试切换,但键盘仍然打开us(mac)

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'de(mac)')]"`
setxkbmap -print
xkb_keymap {
xkb_keycodes  { include "evdev+aliases(qwerty)" };
xkb_types     { include "complete"  };
xkb_compat    { include "complete"  }; 
xkb_symbols   { include "pc+us(mac)+inet(evdev)+terminate(ctrl_alt_bksp)"        };
xkb_geometry  { include "pc(pc105)" };
};
Run Code Online (Sandbox Code Playgroud)

有人知道如何引用 org.gnome.desktop.input-sources 中的变体吗?

多谢!

bjo*_*nen 7

正确的语法似乎'us+mac''us(mac)'

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+mac'),('xkb','de+mac')]"
Run Code Online (Sandbox Code Playgroud)

另请参阅这篇文章