1 { fetchurl, lib, stdenv, pkg-config, makeWrapper, meson, ninja, installShellFiles, libxcb, xcbutilkeysyms
2 , xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification, libX11, pcre2, libev
3 , yajl, xcb-util-cursor, perl, pango, perlPackages, libxkbcommon
5 , asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, findXMLCatalogs
8 stdenv.mkDerivation rec {
13 url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz";
14 sha256 = "sha256-YQJqcZbJE50POq3ScZfosyDFduOkUOAddMGspIQETEY=";
18 pkg-config makeWrapper meson ninja installShellFiles perl
19 asciidoc xmlto docbook_xml_dtd_45 docbook_xsl findXMLCatalogs
28 libxcb xcbutilkeysyms xcbutil xcbutilwm xcbutilxrm libxkbcommon
29 libstartup_notification libX11 pcre2 libev yajl xcb-util-cursor perl pango
30 perlPackages.AnyEventI3 perlPackages.X11XCB perlPackages.IPCRun
31 perlPackages.ExtUtilsPkgConfig perlPackages.InlineC
35 configureFlags = [ "--disable-builddir" ];
41 # Tests have been failing (at least for some people in some cases)
42 # and have been disabled until someone wants to fix them. Some
43 # initial digging uncovers that the tests call out to `git`, which
44 # they shouldn't, and then even once that's fixed have some
45 # perl-related errors later on. For more, see
46 # https://github.com/NixOS/nixpkgs/issues/7957
47 doCheck = false; # stdenv.hostPlatform.system == "x86_64-linux";
49 checkPhase = lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
51 (cd testcases && xvfb-run ./complete-run.pl -p 1 --keep-xserver-output)
52 ! grep -q '^not ok' testcases/latest/complete-run.log
56 wrapProgram "$out/bin/i3-save-tree" --prefix PERL5LIB ":" "$PERL5LIB"
57 for program in $out/bin/i3-sensible-*; do
58 sed -i 's/which/command -v/' $program
61 installManPage man/*.1
64 separateDebugInfo = true;
67 description = "A tiling window manager";
68 homepage = "https://i3wm.org";
69 maintainers = with maintainers; [ modulistic fpletz ];
71 license = licenses.bsd3;
72 platforms = platforms.all;
75 A tiling window manager primarily targeted at advanced users and
76 developers. Based on a tree as data structure, supports tiling,
77 stacking, and tabbing layouts, handled dynamically, as well as
78 floating windows. Configured via plain text file. Multi-monitor.