From 18d461533ba7e4d0981f164bbc4423a141bfa51e Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 6 Sep 2018 01:04:40 +0200 Subject: [PATCH] zsh: patch `_setxkbmap` completion script Instead of searching `/usr` it should search for the `xkb`, $XDG_DATA_DIRS will be searched. With this approach we allow compliance on NixOS and non-NixOS systems to find `symbols` in the `xkb` directory. The patch has been accepted by upstream, but isn't released yet, so this is mainly a temporary fix until we can bump ZSH to the next stable version. The `xserver` module links `/share/X11/xkb` to `/run/current-system` to make this possible. The fix can be tested inside the following VM: ``` { zshtest = { programs.zsh.enable = true; users.extraUsers.vm = { password = "vm"; isNormalUser = true; }; services.xserver.enable = true; }; } ``` Fixes #46025 --- nixos/modules/services/x11/xserver.nix | 2 ++ pkgs/shells/zsh/default.nix | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 75bfeaac1fa3..a3cb622362c2 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -625,6 +625,8 @@ in ] ++ optional (elem "virtualbox" cfg.videoDrivers) xorg.xrefresh; + environment.pathsToLink = [ "/share/X11" ]; + xdg = { autostart.enable = true; menus.enable = true; diff --git a/pkgs/shells/zsh/default.nix b/pkgs/shells/zsh/default.nix index 100657312da0..e593d5cb5df1 100644 --- a/pkgs/shells/zsh/default.nix +++ b/pkgs/shells/zsh/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, ncurses, pcre }: +{ stdenv, fetchurl, ncurses, pcre, fetchpatch }: let version = "5.6"; @@ -18,6 +18,15 @@ stdenv.mkDerivation { sha256 = "1vik7s3q5hvazvgw4jm4b90qlk6zcry0s314xw1liarspkd721g3"; }; + patches = [ + (fetchpatch { + name = "search-xdg-data-dirs.patch"; + url = https://github.com/zsh-users/zsh/commit/624219e0e4cbfdfb286e707bd2853f2d7b6a4a7d.patch; + sha256 = "0i0g7dc0px57vpklm1f4w20vyc92nv15y09r5clvib2kjkxjy2cf"; + excludes = [ "ChangeLog" ]; + }) + ]; + buildInputs = [ ncurses pcre ]; configureFlags = [