在 NixOS 下以声明方式配置多个输入源

在 NixOS 下以声明方式配置多个输入源

我在用着NixOS 23.05.885.bb8b5735d6f。我通常配置由输入源设置的两种语言选择GNOME Settings

[x80486@uplink:~]$ gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'us'), ('xkb', 'es')]

我想看看是否有任何配置services.xserver可以达到相同的结果。到目前为止,唯一看起来可以做到这一点的关键是services.xserver.extraLayouts,但我无法让它工作。

有任何线索如何实现这一点吗?

答案1

这就像在 in 中添加另一个值layout一样services.xserver简单/etc/nixos/configuration.nix

{ config, pkgs, ... }:

{
  ...
  services = {
    ...
    xserver = {
      desktopManager.gnome.enable = true;
      displayManager.gdm.enable = true;
      enable = true;
      excludePackages = with pkgs; [ xterm ];
      layout = "es,us";
      ...
      xkbOptions = "numpad:microsoft";
    };
  };
  ...
}

最初,我有layout = "us".添加es、重建配置并重新启动系统(可能注销和重新启动也可以)后,我可以在GNOME顶部栏中看到两个输入源 - 并且也可以使用 进行验证gsettings

[x80486@uplink:~]$ gsettings get org.gnome.desktop.input-sources sources 
[('xkb', 'es'), ('xkb', 'us')]

注意:我之前必须重置此设置 ( gsettings reset org.gnome.desktop.input-sources sources),以便在构建新NixOS配置/生成时看到应用的正确值。

相关内容