我按照以下说明进行操作此电子邮件线程,并放置
services.xserver.xkbOptions = "grp:alt_space_toggle, ctrl:swapcaps";
在我的/etc/nixos/configuration.nix
文件中,但即使在使用 重建$ nixos-rebuild switch
并使用nixos-rebuild boot
和重新启动后reboot
,我的大写锁定键也不会重新映射。
如何在 nixos 中将大写锁定映射到 ctrl?
答案1
正如您已经尝试过的那样,并且正如 grwlf 所建议的,您可以启用此功能在X11中通过添加services.xserver.xkbOptions = "ctrl:swapcaps";
到/etc/nixos/configuration.nix
.
要应用此设置X11 之外,您可以添加console.useXkbConfig = true;
到配置中。这会将 X 键映射应用于控制台键映射,这会影响虚拟控制台,例如tty
.
更新: i18n.consoleUseXkbConfig
被重命名在console.useXkbConfig
NixOS 版本 20.03 中
答案2
假设你有一个configuration.nix
这样的人。
services.xserver.enable = true;
services.xserver.layout = "pl";
services.xserver.xkbOptions = "ctrl:nocaps";
services.xserver.displayManager.gdm.enable = true;
services.xserver.displayManager.gdm.wayland = false; # or true
通常使用 来构建它nixos-rebuild switch
。
然后运行这些命令:
gsettings reset org.gnome.desktop.input-sources xkb-options
gsettings reset org.gnome.desktop.input-sources sources
现在重新启动。
看起来 gsettings 选项是构建一次并且不会接受对您的configuration.nix
.上面的命令应该重置设置,从而导致configuration.nix
拾取值。
来源:https://discourse.nixos.org/t/problem-with-xkboptions-it-doesnt-seem-to-take-effect/5269/2?u=yeewe4
答案3
在我的/etc/nixos/configuration.nix
配置中,
services.xserver = {
...
xkbOptions = "ctrl:swapcaps";
...
};
ctrl:swapcaps
选项交换 Capslock 和 Control。
答案4
默认情况下,ctrl:swapcaps
仅交换Left Ctrl和Caps Lock,这可能不是您所需要的。
一个肮脏的解决方案是
services.xserver.xkbDir = "/usr/share/X11/xkb"
然后
mkdir -p /usr/share/X11 && cp /run/current-system/sw/share/X11/xkb /usr/share/X11
并编辑它以达到您的目的。注意,需要/usr/share/X11/xkb
自行备份!