i3: fix runtime dependencies

Fixes #25633.

Changed files
+17 -9
nixos
modules
services
x11
window-managers
pkgs
applications
window-managers
+16 -1
nixos/modules/services/x11/window-managers/i3.nix
···
i3 package to use.
'';
};
+
+
extraPackages = mkOption {
+
type = with types; listOf package;
+
default = with pkgs; [ dmenu i3status i3lock ];
+
example = literalExample ''
+
with pkgs; [
+
dmenu
+
i3status
+
i3lock
+
]
+
'';
+
description = ''
+
Extra packages to be installed system wide.
+
'';
+
};
};
config = mkIf cfg.enable {
···
waitPID=$!
'';
}];
-
environment.systemPackages = [ cfg.package ];
+
environment.systemPackages = [ cfg.package ] ++ cfg.extraPackages;
};
imports = [
+1 -8
pkgs/applications/window-managers/i3/default.nix
···
{ fetchurl, stdenv, which, pkgconfig, makeWrapper, libxcb, xcbutilkeysyms
, xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification, libX11, pcre, libev
, yajl, xcb-util-cursor, coreutils, perl, pango, perlPackages, libxkbcommon
-
, xorgserver, xvfb_run, dmenu, i3status }:
+
, xorgserver, xvfb_run }:
stdenv.mkDerivation rec {
name = "i3-${version}";
···
postPatch = ''
patchShebangs .
-
'';
-
-
postFixup = ''
-
substituteInPlace $out/etc/i3/config --replace dmenu_run ${dmenu}/bin/dmenu_run
-
substituteInPlace $out/etc/i3/config --replace "status_command i3status" "status_command ${i3status}/bin/i3status"
-
substituteInPlace $out/etc/i3/config.keycodes --replace dmenu_run ${dmenu}/bin/dmenu_run
-
substituteInPlace $out/etc/i3/config.keycodes --replace "status_command i3status" "status_command ${i3status}/bin/i3status"
'';
# Tests have been failing (at least for some people in some cases)