在nixos中,如何重新映射大写锁定来控制?

在nixos中,如何重新映射大写锁定来控制?

我按照以下说明进行操作此电子邮件线程,并放置

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.useXkbConfigNixOS 版本 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 CtrlCaps 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自行备份!

相关内容