diff options
Diffstat (limited to 'pkgs/applications/window-managers')
127 files changed, 2380 insertions, 925 deletions
diff --git a/pkgs/applications/window-managers/2bwm/default.nix b/pkgs/applications/window-managers/2bwm/default.nix index 0a2dd63130e..4072c74d7f8 100644 --- a/pkgs/applications/window-managers/2bwm/default.nix +++ b/pkgs/applications/window-managers/2bwm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, patches +{ lib, stdenv, fetchFromGitHub, patches , libxcb, xcbutilkeysyms, xcbutilwm , libX11, xcbutil, xcbutilxrm }: @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { installPhase = "make install DESTDIR=$out PREFIX=\"\""; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/venam/2bwm"; description = "A fast floating WM written over the XCB library and derived from mcwm"; license = licenses.mit; diff --git a/pkgs/applications/window-managers/afterstep/default.nix b/pkgs/applications/window-managers/afterstep/default.nix index 001e624e1be..ec7d3ae5004 100644 --- a/pkgs/applications/window-managers/afterstep/default.nix +++ b/pkgs/applications/window-managers/afterstep/default.nix @@ -1,7 +1,7 @@ -{ stdenv, fetchurl, pkgconfig -, libjpeg, libtiff, libpng, freetype +{ lib, stdenv, fetchurl, pkg-config +, libtiff , fltk, gtk -, libX11, libXext, libICE +, libICE, libSM , dbus , fetchpatch }: @@ -24,15 +24,23 @@ stdenv.mkDerivation rec { }) ]; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ libjpeg libtiff libpng freetype fltk gtk libX11 libXext libICE dbus dbus ]; + postPatch = '' + # Causes fatal ldconfig cache generation attempt on non-NixOS Linux + for mkfile in autoconf/Makefile.common.lib.in libAfter{Base,Image}/Makefile.in; do + substituteInPlace $mkfile \ + --replace 'test -w /etc' 'false' + done + ''; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libtiff fltk gtk libICE libSM dbus ]; - # A strange type of bug: dbus is not immediately found by pkgconfig + # A strange type of bug: dbus is not immediately found by pkg-config preConfigure = '' export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A NEXTStep-inspired window manager"; longDescription = '' AfterStep is a window manager for the Unix X Window diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix index 609723b42d4..a526636063e 100644 --- a/pkgs/applications/window-managers/awesome/default.nix +++ b/pkgs/applications/window-managers/awesome/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, luaPackages, cairo, librsvg, cmake, imagemagick, pkgconfig, gdk-pixbuf +{ lib, stdenv, fetchFromGitHub, luaPackages, cairo, librsvg, cmake, imagemagick, pkg-config, gdk-pixbuf , xorg, libstartup_notification, libxdg_basedir, libpthreadstubs , xcb-util-cursor, makeWrapper, pango, gobject-introspection , which, dbus, nettools, git, doxygen @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { doxygen imagemagick makeWrapper - pkgconfig + pkg-config xmlto docbook_xml_dtd_45 docbook_xsl findXMLCatalogs asciidoctor @@ -50,12 +50,12 @@ stdenv.mkDerivation rec { xorg.xcbutil xorg.xcbutilimage xorg.xcbutilkeysyms xorg.xcbutilrenderutil xorg.xcbutilwm libxkbcommon xcbutilxrm ] - ++ stdenv.lib.optional gtk3Support gtk3; + ++ lib.optional gtk3Support gtk3; cmakeFlags = [ #"-DGENERATE_MANPAGES=ON" "-DOVERRIDE_VERSION=${version}" - ] ++ stdenv.lib.optional luaPackages.isLuaJIT "-DLUA_LIBRARY=${lua}/lib/libluajit-5.1.so" + ] ++ lib.optional luaPackages.isLuaJIT "-DLUA_LIBRARY=${lua}/lib/libluajit-5.1.so" ; GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0"; @@ -82,7 +82,7 @@ stdenv.mkDerivation rec { inherit lua; }; - meta = with stdenv.lib; { + meta = with lib; { description = "Highly configurable, dynamic window manager for X"; homepage = "https://awesomewm.org/"; license = licenses.gpl2Plus; diff --git a/pkgs/applications/window-managers/berry/default.nix b/pkgs/applications/window-managers/berry/default.nix index 2a41a3d3c07..b2d28ca55f2 100644 --- a/pkgs/applications/window-managers/berry/default.nix +++ b/pkgs/applications/window-managers/berry/default.nix @@ -1,18 +1,32 @@ -{ stdenv, fetchFromGitHub -, libX11, libXft, libXinerama, fontconfig, freetype }: +{ lib, stdenv +, fetchFromGitHub +, libX11 +, libXext +, libXft +, libXinerama +, fontconfig +, freetype +}: stdenv.mkDerivation rec { pname = "berry"; - version = "0.1.5"; + version = "0.1.7"; src = fetchFromGitHub { owner = "JLErvin"; - repo = "berry"; + repo = pname; rev = version; - sha256 = "1wxbjzpwqb9x7vd7kb095fiqj271rki980dnwcxjxpqlmmrmjzyl"; + sha256 = "sha256-2kFVOE5l1KQvDb5KDL7y0p4M7awJLrxJF871cyc0YZ8="; }; - buildInputs = [ libX11 libXft libXinerama fontconfig freetype ]; + buildInputs =[ + libX11 + libXext + libXft + libXinerama + fontconfig + freetype + ]; preBuild = '' makeFlagsArray+=( PREFIX="${placeholder "out"}" @@ -24,7 +38,7 @@ stdenv.mkDerivation rec { FREETYPEINC="${freetype.dev}/include/freetype2" ) ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A healthy, bite-sized window manager"; longDescription = '' berry is a healthy, bite-sized window manager written in C for unix diff --git a/pkgs/applications/window-managers/bevelbar/default.nix b/pkgs/applications/window-managers/bevelbar/default.nix index 40cebb572af..74da42f88c9 100644 --- a/pkgs/applications/window-managers/bevelbar/default.nix +++ b/pkgs/applications/window-managers/bevelbar/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, libX11, libXrandr, libXft }: +{ lib, stdenv, fetchFromGitHub, libX11, libXrandr, libXft }: stdenv.mkDerivation rec { pname = "bevelbar"; @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { installFlags = [ "prefix=$(out)" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "An X11 status bar with fancy schmancy 1985-ish beveled borders"; inherit (src.meta) homepage; license = licenses.mit; diff --git a/pkgs/applications/window-managers/bspwm/default.nix b/pkgs/applications/window-managers/bspwm/default.nix index 7c7bdbe22a7..e7c0eecbf82 100644 --- a/pkgs/applications/window-managers/bspwm/default.nix +++ b/pkgs/applications/window-managers/bspwm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, libxcb, libXinerama +{ lib, stdenv, fetchFromGitHub, libxcb, libXinerama , xcbutil, xcbutilkeysyms, xcbutilwm }: @@ -17,10 +17,10 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=$(out)" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A tiling window manager based on binary space partitioning"; homepage = "https://github.com/baskerville/bspwm"; - maintainers = with maintainers; [ meisternu epitrochoid rvolosatovs ]; + maintainers = with maintainers; [ meisternu epitrochoid ]; license = licenses.bsd2; platforms = platforms.linux; }; diff --git a/pkgs/applications/window-managers/bspwm/unstable.nix b/pkgs/applications/window-managers/bspwm/unstable.nix deleted file mode 100644 index e52e33ec544..00000000000 --- a/pkgs/applications/window-managers/bspwm/unstable.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ stdenv, fetchFromGitHub, libxcb, libXinerama, xcbutil, xcbutilkeysyms, xcbutilwm }: - -stdenv.mkDerivation { - name = "bspwm-unstable-2016-09-30"; - - - src = fetchFromGitHub { - owner = "baskerville"; - repo = "bspwm"; - rev = "8664c007e44de162c1597fd7e163635b274fb747"; - sha256 = "0clvpz32z38i8kr10hqlifa661szpfn93c63m2aq2h4dwmr44slz"; - }; - - buildInputs = [ libxcb libXinerama xcbutil xcbutilkeysyms xcbutilwm ]; - - buildPhase = '' - make PREFIX=$out - ''; - - installPhase = '' - make PREFIX=$out install - ''; - - meta = { - description = "A tiling window manager based on binary space partitioning (git version)"; - homepage = "https://github.com/baskerville/bspwm"; - maintainers = [ stdenv.lib.maintainers.meisternu stdenv.lib.maintainers.epitrochoid ]; - license = stdenv.lib.licenses.bsd2; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/applications/window-managers/btops/default.nix b/pkgs/applications/window-managers/btops/default.nix index 132e2ba6ddd..5f107337ee4 100644 --- a/pkgs/applications/window-managers/btops/default.nix +++ b/pkgs/applications/window-managers/btops/default.nix @@ -1,5 +1,5 @@ # This file was generated by https://github.com/kamilchm/go2nix v1.2.1 -{ stdenv, buildGoPackage, fetchgit }: +{ lib, buildGoPackage, fetchgit }: buildGoPackage rec { pname = "btops"; @@ -15,7 +15,7 @@ buildGoPackage rec { goDeps = ./deps.nix; - meta = with stdenv.lib; { + meta = with lib; { description = "bspwm desktop management that supports dymanic appending, removing, and renaming"; homepage = "https://github.com/cmschuetz/btops"; maintainers = with maintainers; [ mnacamura ]; diff --git a/pkgs/applications/window-managers/cage/default.nix b/pkgs/applications/window-managers/cage/default.nix index 372ad1e27fc..963f8676883 100644 --- a/pkgs/applications/window-managers/cage/default.nix +++ b/pkgs/applications/window-managers/cage/default.nix @@ -1,44 +1,40 @@ -{ stdenv, fetchFromGitHub -, meson, ninja, pkg-config, wayland, scdoc, makeWrapper -, wlroots, wayland-protocols, pixman, libxkbcommon -, systemd, libGL, libX11 +{ lib, stdenv, fetchFromGitHub +, meson, ninja, pkg-config, wayland-scanner, scdoc, makeWrapper +, wlroots, wayland, wayland-protocols, pixman, libxkbcommon +, systemd, libGL, libX11, mesa , xwayland ? null , nixosTests }: stdenv.mkDerivation rec { pname = "cage"; - version = "0.1.2.1"; + version = "0.1.4"; src = fetchFromGitHub { owner = "Hjdskes"; repo = "cage"; rev = "v${version}"; - sha256 = "1i4rm3dpmk7gkl6hfs6a7vwz76ba7yqcdp63nlrdbnq81m9cy2am"; + sha256 = "0vm96gxinhy48m3x9p1sfldyd03w3gk6iflb7n9kn06j1vqyswr6"; }; - postPatch = '' - substituteInPlace meson.build --replace \ - "0.1.2" "${version}" - ''; - - nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ]; + nativeBuildInputs = [ meson ninja pkg-config wayland-scanner scdoc makeWrapper ]; buildInputs = [ wlroots wayland wayland-protocols pixman libxkbcommon + mesa # for libEGL headers systemd libGL libX11 ]; - mesonFlags = [ "-Dxwayland=${stdenv.lib.boolToString (xwayland != null)}" ]; + mesonFlags = [ "-Dxwayland=${lib.boolToString (xwayland != null)}" ]; - postFixup = stdenv.lib.optionalString (xwayland != null) '' + postFixup = lib.optionalString (xwayland != null) '' wrapProgram $out/bin/cage --prefix PATH : "${xwayland}/bin" ''; # Tests Cage using the NixOS module by launching xterm: passthru.tests.basic-nixos-module-functionality = nixosTests.cage; - meta = with stdenv.lib; { + meta = with lib; { description = "A Wayland kiosk that runs a single, maximized application"; homepage = "https://www.hjdskes.nl/projects/cage/"; license = licenses.mit; diff --git a/pkgs/applications/window-managers/cage/wlroots-0_14.patch b/pkgs/applications/window-managers/cage/wlroots-0_14.patch new file mode 100644 index 00000000000..2e56835f4fc --- /dev/null +++ b/pkgs/applications/window-managers/cage/wlroots-0_14.patch @@ -0,0 +1,36 @@ +From 9a4523d47efeafd674d419169fe161e5a3b31cb3 Mon Sep 17 00:00:00 2001 +From: Jan Beich <jbeich@FreeBSD.org> +Date: Thu, 3 Jun 2021 17:53:11 +0000 +Subject: [PATCH 1/3] view: chase swaywm/wlroots@9e58301df7f0 + +view.c:238:52: error: no member named 'subsurfaces' in 'struct wlr_surface' + wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces, parent_link) { + ~~~~~~~~~~~~~~~~~ ^ +/usr/include/wayland-util.h:443:30: note: expanded from macro 'wl_list_for_each' + for (pos = wl_container_of((head)->next, pos, member); \ + ^~~~ +/usr/include/wayland-util.h:409:32: note: expanded from macro 'wl_container_of' + (__typeof__(sample))((char *)(ptr) - \ + ^~~ + +Based on https://github.com/swaywm/sway/commit/3162766eef14 +--- + view.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/view.c b/view.c +index b9ba9c2..3f3b0ed 100644 +--- a/view.c ++++ b/view.c +@@ -235,7 +235,10 @@ view_map(struct cg_view *view, struct wlr_surface *surface) + view->wlr_surface = surface; + + struct wlr_subsurface *subsurface; +- wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces, parent_link) { ++ wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces_below, parent_link) { ++ subsurface_create(view, subsurface); ++ } ++ wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces_above, parent_link) { + subsurface_create(view, subsurface); + } + diff --git a/pkgs/applications/window-managers/cagebreak/default.nix b/pkgs/applications/window-managers/cagebreak/default.nix new file mode 100644 index 00000000000..d3da358b639 --- /dev/null +++ b/pkgs/applications/window-managers/cagebreak/default.nix @@ -0,0 +1,95 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, cairo +, fontconfig +, libxkbcommon +, makeWrapper +, mesa +, meson +, ninja +, nixosTests +, pango +, pixman +, pkg-config +, scdoc +, systemd +, wayland +, wayland-protocols +, withXwayland ? true , xwayland +, wlroots +}: + +stdenv.mkDerivation rec { + pname = "cagebreak"; + version = "1.7.1"; + + src = fetchFromGitHub { + owner = "project-repo"; + repo = pname; + rev = version; + hash = "sha256-1IztedN5/I/4TDKHLJ26fSrDsvJ5QAr+cbzS2PQITDE="; + }; + + patches = [ + # To fix the build with wlroots 0.14.0: + (fetchpatch { + # Add fixes for wlroots 0.14.0 + url = "https://github.com/project-repo/cagebreak/commit/d57869d43add58331386fc8e89c14bb2b74afe17.patch"; + sha256 = "0g6sl8y4kk0bm5x6pxqbxw2j0gyg3ybr2v9m70q2pxp70kms4lqg"; + }) + ]; + + nativeBuildInputs = [ + makeWrapper + meson + ninja + pkg-config + scdoc + wayland + ]; + + buildInputs = [ + cairo + fontconfig + libxkbcommon + mesa # for libEGL headers + pango + pixman + systemd + wayland + wayland-protocols + wlroots + ]; + + mesonFlags = [ + "-Dman-pages=true" + "-Dversion_override=${version}" + "-Dxwayland=${lib.boolToString withXwayland}" + ]; + + # TODO: investigate why is this happening + postPatch = '' + sed -i -e 's|<drm_fourcc.h>|<libdrm/drm_fourcc.h>|' *.c + ''; + + postInstall = '' + install -d $out/share/cagebreak/ + install -m644 $src/examples/config $out/share/cagebreak/ + ''; + + postFixup = lib.optionalString withXwayland '' + wrapProgram $out/bin/cagebreak --prefix PATH : "${xwayland}/bin" + ''; + + meta = with lib; { + homepage = "https://github.com/project-repo/cagebreak"; + description = "A Wayland tiling compositor inspired by ratpoison"; + license = licenses.mit; + maintainers = with maintainers; [ berbiche ]; + platforms = platforms.linux; + }; + + passthru.tests.basic = nixosTests.cagebreak; +} diff --git a/pkgs/applications/window-managers/cardboard/default.nix b/pkgs/applications/window-managers/cardboard/default.nix new file mode 100644 index 00000000000..17ef08af5e8 --- /dev/null +++ b/pkgs/applications/window-managers/cardboard/default.nix @@ -0,0 +1,118 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchurl +, fetchgit +, ffmpeg +, libGL +, libX11 +, libcap +, libdrm +, libinput +, libpng +, libxcb +, libxkbcommon +, mesa +, meson +, ninja +, pandoc +, pixman +, pkg-config +, unzip +, wayland +, wayland-protocols +, xcbutilerrors +, xcbutilimage +, xcbutilwm +}: + +let + # cereal.wrap + cereal-wrap = fetchurl { + name = "cereal-1.3.0.tar.gz"; + url = "https://github.com/USCiLab/cereal/archive/v1.3.0.tar.gz"; + hash = "sha256-Mp6j4xMLAmwDpKzFDhaOfa/05uZhvGp9/sDXe1cIUdU="; + }; + cereal-wrapdb = fetchurl { + name = "cereal-1.3.0-1-wrap.zip"; + url = "https://wrapdb.mesonbuild.com/v1/projects/cereal/1.3.0/1/get_zip"; + hash = "sha256-QYck5UT7fPLqtLDb1iOSX4Hnnns48Jj23Ae/LCfLSKY="; + }; + + # expected.wrap + expected-wrap = fetchgit { + name = "expected"; + url = "https://gitlab.com/cardboardwm/expected"; + rev = "0ee13cb2b058809aa9708c45ca18d494e72a759e"; + sha256 = "sha256-gYr4/pjuLlr3k6Jcrg2/SzJLtbgyA+ZN2oMHkHXANDo="; + }; + + # wlroots.wrap + wlroots-wrap = fetchgit { + name = "wlroots"; + url = "https://github.com/swaywm/wlroots"; + rev = "0.12.0"; + sha256 = "sha256-1rE3D+kQprjcjobc95/mQkUa5y1noY0MdoYJ/SpFQwY="; + }; +in +stdenv.mkDerivation rec { + pname = "cardboard"; + version = "0.0.0+unstable=2021-05-10"; + + src = fetchFromGitLab { + owner = "cardboardwm"; + repo = pname; + rev = "b54758d85164fb19468f5ca52588ebea576cd027"; + hash = "sha256-Kn5NyQSDyX7/nn2bKZPnsuepkoppi5XIkdu7IDy5r4w="; + }; + + nativeBuildInputs = [ + meson + ninja + pandoc + pkg-config + unzip + ]; + buildInputs = [ + ffmpeg + libGL + libX11 + libcap + libdrm + libinput + libpng + libxcb + libxkbcommon + mesa + pixman + wayland + wayland-protocols + xcbutilerrors + xcbutilimage + xcbutilwm + ]; + + postPatch = '' + (cd subprojects + tar xvf ${cereal-wrap} + unzip ${cereal-wrapdb} + cp -r ${expected-wrap} ${expected-wrap.name} + cp -r ${wlroots-wrap} ${wlroots-wrap.name} + ) + ''; + + # "Inherited" from Nixpkgs expression for wlroots + mesonFlags = [ + "-Dman=true" + "-Dwlroots:logind-provider=systemd" + "-Dwlroots:libseat=disabled" + ]; + + meta = with lib; { + homepage = "https://gitlab.com/cardboardwm/cardboard"; + description = "A scrollable, tiling Wayland compositor inspired on PaperWM"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = with platforms; unix; + }; +} diff --git a/pkgs/applications/window-managers/clfswm/default.nix b/pkgs/applications/window-managers/clfswm/default.nix index e3864319f7b..1c6f92a38f2 100644 --- a/pkgs/applications/window-managers/clfswm/default.nix +++ b/pkgs/applications/window-managers/clfswm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, autoconf, sbcl, lispPackages, xdpyinfo, texinfo4 +{ lib, stdenv, fetchgit, autoconf, sbcl, lispPackages, xdpyinfo, texinfo4 , makeWrapper }: stdenv.mkDerivation { @@ -39,7 +39,7 @@ stdenv.mkDerivation { echo ${xdpyinfo} ${lispPackages.clx} ${lispPackages.cl-ppcre} > $out/nix-support/depends ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A(nother) Common Lisp FullScreen Window Manager"; homepage = "https://common-lisp.net/project/clfswm/"; license = licenses.gpl3; diff --git a/pkgs/applications/window-managers/cwm/default.nix b/pkgs/applications/window-managers/cwm/default.nix index 18baefdbf3e..24c59508157 100644 --- a/pkgs/applications/window-managers/cwm/default.nix +++ b/pkgs/applications/window-managers/cwm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, libX11, libXinerama, libXrandr, libXft, yacc, pkgconfig }: +{ lib, stdenv, fetchFromGitHub, libX11, libXinerama, libXrandr, libXft, bison, pkg-config }: stdenv.mkDerivation rec { @@ -12,12 +12,12 @@ stdenv.mkDerivation rec { sha256 = "0f9xmki2hx10k8iisfzc7nm1l31zkf1r06pdgn06ar9w9nizrld9"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ libX11 libXinerama libXrandr libXft yacc ]; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libX11 libXinerama libXrandr libXft bison ]; prePatch = ''sed -i "s@/usr/local@$out@" Makefile''; - meta = with stdenv.lib; { + meta = with lib; { description = "A lightweight and efficient window manager for X11"; homepage = "https://github.com/leahneukirchen/cwm"; maintainers = with maintainers; [ _0x4A6F mkf ]; diff --git a/pkgs/applications/window-managers/dwl/default.nix b/pkgs/applications/window-managers/dwl/default.nix new file mode 100644 index 00000000000..04944a1e909 --- /dev/null +++ b/pkgs/applications/window-managers/dwl/default.nix @@ -0,0 +1,92 @@ +{ stdenv +, lib +, fetchFromGitHub +, pkg-config +, libinput +, libxcb +, libxkbcommon +, pixman +, wayland +, wayland-protocols +, wlroots +, enable-xwayland ? true, xwayland, libX11 +, patches ? [ ] +, conf ? null +, writeText +, fetchpatch +}: + +let + totalPatches = patches ++ [ ]; +in + +stdenv.mkDerivation rec { + pname = "dwl"; + version = "0.2.1"; + + src = fetchFromGitHub { + owner = "djpohly"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-lfUAymLA4+E9kULZIueA+9gyVZYgaVS0oTX0LJjsSEs="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libinput + libxcb + libxkbcommon + pixman + wayland + wayland-protocols + wlroots + ] ++ lib.optionals enable-xwayland [ + libX11 + xwayland + ]; + + # Allow users to set their own list of patches + patches = totalPatches; + + # Last line of config.mk enables XWayland + prePatch = lib.optionalString enable-xwayland '' + sed -i -e '$ s|^#||' config.mk + ''; + + # Allow users to set an alternative config.def.h + postPatch = let + configFile = if lib.isDerivation conf || builtins.isPath conf + then conf + else writeText "config.def.h" conf; + in lib.optionalString (conf != null) "cp ${configFile} config.def.h"; + + dontConfigure = true; + + installPhase = '' + runHook preInstall + install -d $out/bin + install -m755 dwl $out/bin + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/djpohly/dwl/"; + description = "Dynamic window manager for Wayland"; + longDescription = '' + dwl is a compact, hackable compositor for Wayland based on wlroots. It is + intended to fill the same space in the Wayland world that dwm does in X11, + primarily in terms of philosophy, and secondarily in terms of + functionality. Like dwm, dwl is: + + - Easy to understand, hack on, and extend with patches + - One C source file (or a very small number) configurable via config.h + - Limited to 2000 SLOC to promote hackability + - Tied to as few external dependencies as possible + ''; + license = licenses.gpl3Only; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = with platforms; linux; + }; +} +# TODO: custom patches from upstream website +# TODO: investigate the modifications in the upstream unstable version diff --git a/pkgs/applications/window-managers/dwm/default.nix b/pkgs/applications/window-managers/dwm/default.nix index 8f9c28c7851..6235c93a281 100644 --- a/pkgs/applications/window-managers/dwm/default.nix +++ b/pkgs/applications/window-managers/dwm/default.nix @@ -1,30 +1,48 @@ -{stdenv, fetchurl, libX11, libXinerama, libXft, patches ? []}: +{ lib, stdenv, fetchurl, libX11, libXinerama, libXft, writeText, patches ? [ ], conf ? null}: -let - name = "dwm-6.2"; -in -stdenv.mkDerivation { - inherit name; +stdenv.mkDerivation rec { + pname = "dwm"; + version = "6.2"; src = fetchurl { - url = "https://dl.suckless.org/dwm/${name}.tar.gz"; + url = "https://dl.suckless.org/dwm/${pname}-${version}.tar.gz"; sha256 = "03hirnj8saxnsfqiszwl2ds7p0avg20izv9vdqyambks00p2x44p"; }; buildInputs = [ libX11 libXinerama libXft ]; - prePatch = ''sed -i "s@/usr/local@$out@" config.mk''; + prePatch = '' + sed -i "s@/usr/local@$out@" config.mk + ''; # Allow users set their own list of patches inherit patches; - buildPhase = " make "; + # Allow users to set the config.def.h file containing the configuration + postPatch = + let + configFile = + if lib.isDerivation conf || builtins.isPath conf + then conf else writeText "config.def.h" conf; + in + lib.optionalString (conf != null) "cp ${configFile} config.def.h"; - meta = { - homepage = "https://suckless.org/"; - description = "Dynamic window manager for X"; - license = stdenv.lib.licenses.mit; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; all; + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; + + meta = with lib; { + homepage = "https://dwm.suckless.org/"; + description = "An extremely fast, small, and dynamic window manager for X"; + longDescription = '' + dwm is a dynamic window manager for X. It manages windows in tiled, + monocle and floating layouts. All of the layouts can be applied + dynamically, optimising the environment for the application in use and the + task performed. + Windows are grouped by tags. Each window can be tagged with one or + multiple tags. Selecting certain tags displays all windows with these + tags. + ''; + license = licenses.mit; + maintainers = with maintainers; [ viric neonfuz ]; + platforms = platforms.all; }; } diff --git a/pkgs/applications/window-managers/dwm/dwm-status.nix b/pkgs/applications/window-managers/dwm/dwm-status.nix index c7c72b4d402..7b22eb39925 100644 --- a/pkgs/applications/window-managers/dwm/dwm-status.nix +++ b/pkgs/applications/window-managers/dwm/dwm-status.nix @@ -1,37 +1,38 @@ -{ stdenv, lib, rustPlatform, fetchFromGitHub, dbus, gdk-pixbuf, libnotify, makeWrapper, pkgconfig, xorg -, enableAlsaUtils ? true, alsaUtils, coreutils -, enableNetwork ? true, dnsutils, iproute, wirelesstools }: +{ lib, rustPlatform, fetchFromGitHub, dbus, gdk-pixbuf, libnotify, makeWrapper, pkg-config, xorg +, enableAlsaUtils ? true, alsa-utils, coreutils +, enableNetwork ? true, dnsutils, iproute2, wirelesstools }: let - bins = lib.optionals enableAlsaUtils [ alsaUtils coreutils ] - ++ lib.optionals enableNetwork [ dnsutils iproute wirelesstools ]; + bins = lib.optionals enableAlsaUtils [ alsa-utils coreutils ] + ++ lib.optionals enableNetwork [ dnsutils iproute2 wirelesstools ]; in rustPlatform.buildRustPackage rec { pname = "dwm-status"; - version = "1.7.1"; + version = "1.7.2"; src = fetchFromGitHub { owner = "Gerschtli"; - repo = "dwm-status"; + repo = pname; rev = version; - sha256 = "172qkzbi37j6wx81pyqqffi9wxbg3bf8nis7d15ncn1yfd5r4gqh"; + sha256 = "sha256-Y1J0nCVEmGKgQP+GEtPqK8l3SRuls5yesvJuowLDzUo="; }; - nativeBuildInputs = [ makeWrapper pkgconfig ]; + nativeBuildInputs = [ makeWrapper pkg-config ]; buildInputs = [ dbus gdk-pixbuf libnotify xorg.libX11 ]; - cargoSha256 = "041sd9zm1c3v6iihnwjcya2xg5yxb2y4biyxpjlfblz2srxa15dm"; + cargoSha256 = "sha256-8/vzJXZjSQmefHMo5BXKTRiLy2F3wfIn8VgPMJxtIvY="; postInstall = lib.optionalString (bins != []) '' - wrapProgram $out/bin/dwm-status --prefix "PATH" : "${stdenv.lib.makeBinPath bins}" + wrapProgram $out/bin/dwm-status --prefix "PATH" : "${lib.makeBinPath bins}" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Highly performant and configurable DWM status service"; homepage = "https://github.com/Gerschtli/dwm-status"; license = with licenses; [ mit ]; maintainers = with maintainers; [ gerschtli ]; + mainProgram = pname; platforms = platforms.linux; }; } diff --git a/pkgs/applications/window-managers/dwm/git.nix b/pkgs/applications/window-managers/dwm/git.nix deleted file mode 100644 index 3751a8de69f..00000000000 --- a/pkgs/applications/window-managers/dwm/git.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ stdenv, fetchgit, libX11, libXinerama, libXft, patches ? [], conf ? null }: - -let - name = "dwm-git-20180602"; -in - -stdenv.mkDerivation { - inherit name; - - src = fetchgit { - url = "git://git.suckless.org/dwm"; - rev = "b69c870a3076d78ab595ed1cd4b41cf6b03b2610"; - sha256 = "10i079h79l4gdch1qy2vrrb2xxxkgkjmgphr5r9a75jbbagwvz0k"; - }; - - buildInputs = [ libX11 libXinerama libXft ]; - - prePatch = ''sed -i "s@/usr/local@$out@" config.mk''; - - # Allow users set their own list of patches - inherit patches; - - # Allow users to override the entire config file AFTER appying the patches - postPatch = stdenv.lib.optionalString (conf!=null) '' - echo -n '${conf}' > config.def.h - ''; - - buildPhase = "make"; - - meta = with stdenv.lib; { - homepage = "https://suckless.org/"; - description = "Dynamic window manager for X, development version"; - license = licenses.mit; - maintainers = with maintainers; [xeji]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/applications/window-managers/dzen2/default.nix b/pkgs/applications/window-managers/dzen2/default.nix index 367c78ec5ca..84380bfc9d8 100644 --- a/pkgs/applications/window-managers/dzen2/default.nix +++ b/pkgs/applications/window-managers/dzen2/default.nix @@ -1,9 +1,9 @@ -{ stdenv, fetchurl, pkgconfig, libX11, libXft, libXinerama, libXpm }: +{ lib, stdenv, fetchurl, pkg-config, libX11, libXft, libXinerama, libXpm }: stdenv.mkDerivation { name = "dzen2-0.9.5"; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ libX11 libXft libXinerama libXpm ]; src = fetchurl { @@ -30,8 +30,8 @@ stdenv.mkDerivation { meta = { homepage = "https://github.com/robm/dzen"; - license = stdenv.lib.licenses.mit; + license = lib.licenses.mit; description = "X notification utility"; - platforms = stdenv.lib.platforms.linux; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/applications/window-managers/e16/default.nix b/pkgs/applications/window-managers/e16/default.nix new file mode 100644 index 00000000000..7028dcfc09d --- /dev/null +++ b/pkgs/applications/window-managers/e16/default.nix @@ -0,0 +1,62 @@ +{ lib +, stdenv +, fetchurl +, pkg-config +, freetype +, imlib2 +, libSM +, libXcomposite +, libXdamage +, libXext +, libXfixes +, libXft +, libXinerama +, libXrandr +, libpulseaudio +, libsndfile +, pango +, perl +}: + +stdenv.mkDerivation rec { + pname = "e16"; + version = "1.0.23"; + + src = fetchurl { + url = "mirror://sourceforge/enlightenment/e16-${version}.tar.xz"; + sha256 = "028rn1plggacsvdd035qnnph4xw8nya34mmjvvl7d4gqj9pj293f"; + }; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + freetype + imlib2 + libSM + libXcomposite + libXdamage + libXext + libXfixes + libXft + libXinerama + libXrandr + libpulseaudio + libsndfile + pango + perl + ]; + + postPatch = '' + substituteInPlace scripts/e_gen_menu --replace "/usr/local:" "/run/current-system/sw:/usr/local:" + ''; + + meta = with lib; { + homepage = "https://www.enlightenment.org/e16"; + description = "Enlightenment DR16 window manager"; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/pkgs/applications/window-managers/evilwm/default.nix b/pkgs/applications/window-managers/evilwm/default.nix index 64dc784e812..94562cd0d22 100644 --- a/pkgs/applications/window-managers/evilwm/default.nix +++ b/pkgs/applications/window-managers/evilwm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, libX11, libXext, libXrandr, libXrender, +{ lib, stdenv, fetchurl, libX11, libXext, libXrandr, libXrender, xorgproto, patches ? [] }: stdenv.mkDerivation rec { @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { # Allow users set their own list of patches inherit patches; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://www.6809.org.uk/evilwm/"; description = "Minimalist window manager for the X Window System"; diff --git a/pkgs/applications/window-managers/fbpanel/default.nix b/pkgs/applications/window-managers/fbpanel/default.nix index cf45dfa8640..1a87f29f67c 100644 --- a/pkgs/applications/window-managers/fbpanel/default.nix +++ b/pkgs/applications/window-managers/fbpanel/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, pkgconfig -, libX11, libXmu, libXpm, gtk2, libpng, libjpeg, libtiff, librsvg +{ lib, stdenv, fetchurl, pkg-config +, libX11, libXmu, libXpm, gtk2, libpng, libjpeg, libtiff, librsvg, gdk-pixbuf, gdk-pixbuf-xlib }: stdenv.mkDerivation rec { @@ -10,13 +10,18 @@ stdenv.mkDerivation rec { sha256 = "e14542cc81ea06e64dd4708546f5fd3f5e01884c3e4617885c7ef22af8cf3965"; }; buildInputs = - [ pkgconfig libX11 libXmu libXpm gtk2 libpng libjpeg libtiff librsvg ]; + [ pkg-config libX11 libXmu libXpm gtk2 libpng libjpeg libtiff librsvg gdk-pixbuf gdk-pixbuf-xlib.dev ]; preConfigure = "patchShebangs ."; + postConfigure = '' + substituteInPlace config.mk \ + --replace "CFLAGSX =" "CFLAGSX = -I${gdk-pixbuf-xlib.dev}/include/gdk-pixbuf-2.0" + ''; + NIX_LDFLAGS="-lX11"; - meta = with stdenv.lib; { + meta = with lib; { description = "A stand-alone panel"; maintainers = with maintainers; [ raskin ]; platforms = platforms.linux; diff --git a/pkgs/applications/window-managers/fluxbox/default.nix b/pkgs/applications/window-managers/fluxbox/default.nix index b1a11d7153c..36a22cb46d7 100644 --- a/pkgs/applications/window-managers/fluxbox/default.nix +++ b/pkgs/applications/window-managers/fluxbox/default.nix @@ -1,10 +1,10 @@ -{ stdenv, fetchurl, pkgconfig +{ lib, stdenv, fetchurl, pkg-config , freetype, fribidi , libXext, libXft, libXpm, libXrandr, libXrender, xorgproto , libXinerama , imlib2 }: -with stdenv.lib; +with lib; stdenv.mkDerivation rec { pname = "fluxbox"; @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { sha256 = "1h1f70y40qd225dqx937vzb4k2cz219agm1zvnjxakn5jkz7b37w"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ freetype fribidi libXext libXft libXpm libXrandr libXrender xorgproto libXinerama imlib2 ]; @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { substituteInPlace util/fluxbox-generate_menu.in \ --subst-var-by PREFIX "$out" ''; - + meta = { description = "Full-featured, light-resource X window manager"; longDescription = '' diff --git a/pkgs/applications/window-managers/fvwm/default.nix b/pkgs/applications/window-managers/fvwm/default.nix index 6b3f4029755..07c3573fb2a 100644 --- a/pkgs/applications/window-managers/fvwm/default.nix +++ b/pkgs/applications/window-managers/fvwm/default.nix @@ -1,33 +1,43 @@ -{ gestures ? false -, stdenv, fetchurl, pkgconfig -, cairo, fontconfig, freetype, libXft, libXcursor, libXinerama -, libXpm, libXt, librsvg, libpng, fribidi, perl -, libstroke ? null -}: - -assert gestures -> libstroke != null; +{ autoreconfHook, enableGestures ? false, lib, stdenv, fetchFromGitHub +, pkg-config, cairo, fontconfig, freetype, libXft, libXcursor, libXinerama +, libXpm, libXt, librsvg, libpng, fribidi, perl, libstroke, readline, libxslt }: stdenv.mkDerivation rec { pname = "fvwm"; version = "2.6.9"; - src = fetchurl { - url = "https://github.com/fvwmorg/fvwm/releases/download/${version}/${pname}-${version}.tar.gz"; - sha256 = "1bliqcnap7vb3m2rn8wvxyfhbf35h9x34s41fl4301yhrkrlrihv"; + src = fetchFromGitHub { + owner = "fvwmorg"; + repo = pname; + rev = version; + sha256 = "14jwckhikc9n4h93m00pzjs7xm2j0dcsyzv3q5vbcnknp6p4w5dh"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ autoreconfHook pkg-config ]; buildInputs = [ - cairo fontconfig freetype - libXft libXcursor libXinerama libXpm libXt - librsvg libpng fribidi perl - ] ++ stdenv.lib.optional gestures libstroke; + cairo + fontconfig + freetype + libXft + libXcursor + libXinerama + libXpm + libXt + librsvg + libpng + fribidi + perl + readline + libxslt + ] ++ lib.optional enableGestures libstroke; + + configureFlags = [ "--enable-mandoc" "--disable-htmldoc" ]; meta = { homepage = "http://fvwm.org"; description = "A multiple large virtual desktop window manager"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; - maintainers = with stdenv.lib.maintainers; [ edanaher ]; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ edanaher ]; }; } diff --git a/pkgs/applications/window-managers/herbstluftwm/default.nix b/pkgs/applications/window-managers/herbstluftwm/default.nix index e547cea3c54..2ed6bc30366 100644 --- a/pkgs/applications/window-managers/herbstluftwm/default.nix +++ b/pkgs/applications/window-managers/herbstluftwm/default.nix @@ -1,47 +1,92 @@ -{ stdenv, fetchurl, cmake, pkgconfig, glib, libX11, libXext, libXinerama, libXrandr -, withDoc ? stdenv.buildPlatform == stdenv.targetPlatform, asciidoc ? null }: - -# Doc generation is disabled by default when cross compiling because asciidoc -# does not cross compile for now - -assert withDoc -> asciidoc != null; +{ lib, stdenv, fetchurl, cmake, pkg-config, python3, libX11, libXext, libXinerama, libXrandr, libXft, libXrender, freetype, asciidoc +, xdotool, xorgserver, xsetroot, xterm, runtimeShell +, nixosTests }: stdenv.mkDerivation rec { pname = "herbstluftwm"; - version = "0.8.3"; + version = "0.9.3"; src = fetchurl { url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz"; - sha256 = "1qmb4pjf2f6g0dvcg11cw9njwmxblhqzd70ai8qnlgqw1iz3nkm1"; + sha256 = "01f1bv9axjhw1l2gwhdwahljssj0h8q7a1bqwbpnwvln0ayv39qb"; }; outputs = [ "out" - ] ++ stdenv.lib.optionals withDoc [ "doc" "man" ]; cmakeFlags = [ "-DCMAKE_INSTALL_SYSCONF_PREFIX=${placeholder "out"}/etc" - ] ++ stdenv.lib.optional (!withDoc) "-DWITH_DOCUMENTATION=OFF"; + ]; nativeBuildInputs = [ cmake - pkgconfig - ] ++ stdenv.lib.optional withDoc asciidoc; + pkg-config + ]; + + depsBuildBuild = [ + asciidoc + ]; buildInputs = [ libX11 libXext libXinerama libXrandr + libXft + libXrender + freetype + ]; + + patches = [ + ./test-path-environment.patch ]; - meta = { + postPatch = '' + patchShebangs doc/gendoc.py + + # fix /etc/xdg/herbstluftwm paths in documentation and scripts + grep -rlZ /etc/xdg/herbstluftwm share/ doc/ scripts/ | while IFS="" read -r -d "" path; do + substituteInPlace "$path" --replace /etc/xdg/herbstluftwm $out/etc/xdg/herbstluftwm + done + + # fix shebang in generated scripts + substituteInPlace tests/conftest.py --replace "/usr/bin/env bash" ${runtimeShell} + substituteInPlace tests/test_herbstluftwm.py --replace "/usr/bin/env bash" ${runtimeShell} + ''; + + doCheck = true; + + checkInputs = [ + (python3.withPackages (ps: with ps; [ ewmh pytest xlib ])) + xdotool + xorgserver + xsetroot + xterm + python3.pkgs.pytestCheckHook + ]; + + # make the package's module avalaible + preCheck = '' + export PYTHONPATH="$PYTHONPATH:../python" + ''; + + pytestFlagsArray = [ "../tests" ]; + disabledTests = [ + "test_title_different_letters_are_drawn" + ]; + + passthru = { + tests.herbstluftwm = nixosTests.herbstluftwm; + }; + + meta = with lib; { description = "A manual tiling window manager for X"; homepage = "https://herbstluftwm.org/"; - license = stdenv.lib.licenses.bsd2; - platforms = stdenv.lib.platforms.linux; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = with maintainers; [ thibautmarty ]; }; } diff --git a/pkgs/applications/window-managers/herbstluftwm/test-path-environment.patch b/pkgs/applications/window-managers/herbstluftwm/test-path-environment.patch new file mode 100644 index 00000000000..dab30d8ac71 --- /dev/null +++ b/pkgs/applications/window-managers/herbstluftwm/test-path-environment.patch @@ -0,0 +1,10 @@ +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -43,6 +43,7 @@ + self.next_client_id = 0 + self.env = { + 'DISPLAY': display, ++ 'PATH': os.environ['PATH'] + } + self.env = extend_env_with_whitelist(self.env) + self.hlwm_process = hlwm_process diff --git a/pkgs/applications/window-managers/hikari/default.nix b/pkgs/applications/window-managers/hikari/default.nix index 9bf68adaef4..5ee2c8c35e4 100644 --- a/pkgs/applications/window-managers/hikari/default.nix +++ b/pkgs/applications/window-managers/hikari/default.nix @@ -1,8 +1,8 @@ -{ stdenv, fetchzip, - pkgconfig, bmake, - cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman, - libucl, wayland, wayland-protocols, wlroots, - features ? { +{ lib, stdenv, fetchzip +, pkg-config, bmake +, cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman +, libucl, wayland, wayland-protocols, wlroots, mesa +, features ? { gammacontrol = true; layershell = true; screencopy = true; @@ -10,20 +10,16 @@ } }: -let +stdenv.mkDerivation rec { pname = "hikari"; - version = "2.1.2"; -in - -stdenv.mkDerivation { - inherit pname version; + version = "2.3.2"; src = fetchzip { url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz"; - sha256 = "1qzbwc8dgsvp5jb4faapcrg9npsl11gq8jvhbbk2h7hj52c5lgmv"; + sha256 = "sha256-At4b6mkArKe6knNWouLdZ9v8XhfHaUW+aB+CHyEBg8o="; }; - nativeBuildInputs = [ pkgconfig bmake ]; + nativeBuildInputs = [ pkg-config bmake ]; buildInputs = [ cairo @@ -35,6 +31,7 @@ stdenv.mkDerivation { pango pixman libucl + mesa # for libEGL wayland wayland-protocols wlroots @@ -42,30 +39,22 @@ stdenv.mkDerivation { enableParallelBuilding = true; - # Must replace GNU Make by bmake - buildPhase = with stdenv.lib; concatStringsSep " " ( - [ "bmake" "-j$NIX_BUILD_CORES" "PREFIX=$out" ] + makeFlags = with lib; [ "PREFIX=$(out)" ] ++ optional stdenv.isLinux "WITH_POSIX_C_SOURCE=YES" ++ mapAttrsToList (feat: enabled: optionalString enabled "WITH_${toUpper feat}=YES" - ) features - ); + ) features; - # Can't suid in nix store - # Run hikari as root (it will drop privileges as early as possible), or create - # a systemd unit to give it the necessary permissions/capabilities. - patchPhase = '' + postPatch = '' + # Can't suid in nix store + # Run hikari as root (it will drop privileges as early as possible), or create + # a systemd unit to give it the necessary permissions/capabilities. substituteInPlace Makefile --replace '4555' '555' - ''; - installPhase = '' - bmake \ - PREFIX=$out \ - install - runHook postInstall + sed -i 's@<drm_fourcc.h>@<libdrm/drm_fourcc.h>@' src/*.c ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Stacking Wayland compositor which is actively developed on FreeBSD but also supports Linux"; homepage = "https://hikari.acmelabs.space"; license = licenses.bsd2; diff --git a/pkgs/applications/window-managers/i3/altlayout.nix b/pkgs/applications/window-managers/i3/altlayout.nix new file mode 100644 index 00000000000..d66ae357236 --- /dev/null +++ b/pkgs/applications/window-managers/i3/altlayout.nix @@ -0,0 +1,25 @@ +{ lib, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "i3altlayout"; + version = "0.3"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "1h0phf3s6ljffxw0bs73k041wildaz01h37iv5mxhami41wrh4qf"; + }; + + pythonPath = with python3Packages; [ enum-compat i3ipc docopt ]; + + doCheck = false; + + pythonImportsCheck = [ "i3altlayout" ]; + + meta = with lib; { + maintainers = with maintainers; [ magnetophon ]; + description = "Helps you handle more efficiently your screen real estate in i3wm by auto-splitting windows on their longest side"; + homepage = "https://github.com/deadc0de6/i3altlayout"; + license = licenses.gpl3Only; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/i3/auto-layout.nix b/pkgs/applications/window-managers/i3/auto-layout.nix new file mode 100644 index 00000000000..754163547e7 --- /dev/null +++ b/pkgs/applications/window-managers/i3/auto-layout.nix @@ -0,0 +1,26 @@ +{ lib, rustPlatform, fetchFromGitHub }: + +rustPlatform.buildRustPackage rec { + pname = "i3-auto-layout"; + version = "0.2"; + + src = fetchFromGitHub { + owner = "chmln"; + repo = pname; + rev = "v${version}"; + sha256 = "0ps08lga6qkgc8cgf5cx2lgwlqcnd2yazphh9xd2fznnzrllfxxz"; + }; + + cargoSha256 = "1i01kqvsykanzs7pi94gab9k2dqg1ki40mmjrwa22n0ypkbnvsmx"; + + # Currently no tests are implemented, so we avoid building the package twice + doCheck = false; + + meta = with lib; { + description = "Automatic, optimal tiling for i3wm"; + homepage = "https://github.com/chmln/i3-auto-layout"; + license = licenses.mit; + maintainers = with maintainers; [ mephistophiles ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/i3/balance-workspace.nix b/pkgs/applications/window-managers/i3/balance-workspace.nix new file mode 100644 index 00000000000..4647f0a0721 --- /dev/null +++ b/pkgs/applications/window-managers/i3/balance-workspace.nix @@ -0,0 +1,23 @@ +{ lib, buildPythonPackage, fetchPypi, i3ipc }: + +buildPythonPackage rec { + pname = "i3-balance-workspace"; + version = "1.8.5"; + + src = fetchPypi { + inherit pname version; + sha256 = "7b5d72b756f79878a058484825bb343b100433e00a01f80c9c6d1ccc9f4af57a"; + }; + + propagatedBuildInputs = [ i3ipc ]; + + doCheck = false; # project has no test + pythonImportsCheck = [ "i3_balance_workspace" ]; + + meta = { + description = "Balance windows and workspaces in i3wm"; + homepage = "https://pypi.org/project/i3-balance-workspace/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ pacien ]; + }; +} diff --git a/pkgs/applications/window-managers/i3/blocks-gaps.nix b/pkgs/applications/window-managers/i3/blocks-gaps.nix index 4a91865feca..4acc2fb669c 100644 --- a/pkgs/applications/window-managers/i3/blocks-gaps.nix +++ b/pkgs/applications/window-managers/i3/blocks-gaps.nix @@ -1,10 +1,10 @@ -{ fetchFromGitHub, stdenv, perl, makeWrapper -, iproute, acpi, sysstat, alsaUtils +{ fetchFromGitHub, lib, stdenv, perl, makeWrapper +, iproute2, acpi, sysstat, alsa-utils , scripts ? [ "bandwidth" "battery" "cpu_usage" "disk" "iface" "load_average" "memory" "volume" "wifi" ] }: -with stdenv.lib; +with lib; let perlscripts = [ "battery" "cpu_usage" "openvpn" "temperature" ]; @@ -30,18 +30,18 @@ stdenv.mkDerivation rec { postFixup = '' wrapProgram $out/libexec/i3blocks/bandwidth \ - --prefix PATH : ${makeBinPath (optional (elem "bandwidth" scripts) iproute)} + --prefix PATH : ${makeBinPath (optional (elem "bandwidth" scripts) iproute2)} wrapProgram $out/libexec/i3blocks/battery \ --prefix PATH : ${makeBinPath (optional (elem "battery" scripts) acpi)} wrapProgram $out/libexec/i3blocks/cpu_usage \ --prefix PATH : ${makeBinPath (optional (elem "cpu_usage" scripts) sysstat)} wrapProgram $out/libexec/i3blocks/iface \ - --prefix PATH : ${makeBinPath (optional (elem "iface" scripts) iproute)} + --prefix PATH : ${makeBinPath (optional (elem "iface" scripts) iproute2)} wrapProgram $out/libexec/i3blocks/volume \ - --prefix PATH : ${makeBinPath (optional (elem "volume" scripts) alsaUtils)} + --prefix PATH : ${makeBinPath (optional (elem "volume" scripts) alsa-utils)} ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A flexible scheduler for your i3bar blocks -- this is a fork to use with i3-gaps"; homepage = "https://github.com/Airblader/i3blocks-gaps"; license = licenses.gpl3; diff --git a/pkgs/applications/window-managers/i3/blocks.nix b/pkgs/applications/window-managers/i3/blocks.nix index bfd76b44437..1574c587743 100644 --- a/pkgs/applications/window-managers/i3/blocks.nix +++ b/pkgs/applications/window-managers/i3/blocks.nix @@ -1,6 +1,6 @@ -{ fetchFromGitHub, fetchpatch, stdenv, autoreconfHook, pkg-config }: +{ fetchFromGitHub, fetchpatch, lib, stdenv, autoreconfHook, pkg-config }: -with stdenv.lib; +with lib; stdenv.mkDerivation { pname = "i3blocks"; diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix index b37a83648ae..a51c80bf083 100644 --- a/pkgs/applications/window-managers/i3/default.nix +++ b/pkgs/applications/window-managers/i3/default.nix @@ -1,31 +1,29 @@ -{ fetchurl, stdenv, which, pkgconfig, makeWrapper, installShellFiles, libxcb, xcbutilkeysyms +{ fetchurl, lib, stdenv, pkg-config, makeWrapper, meson, ninja, installShellFiles, libxcb, xcbutilkeysyms , xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification, libX11, pcre, libev , yajl, xcb-util-cursor, perl, pango, perlPackages, libxkbcommon -, xorgserver, xvfb_run }: +, xorgserver, xvfb-run }: stdenv.mkDerivation rec { pname = "i3"; - version = "4.18.2"; + version = "4.19.2"; src = fetchurl { - url = "https://i3wm.org/downloads/${pname}-${version}.tar.bz2"; - sha256 = "030jym6b8b07yf4y6pb806hg8k77zsprv569gy0r72rh5zb1g1mj"; + url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz"; + sha256 = "sha256-im7hd2idzyKWTSC2CTAU7k+gQZNF0/1RXVUS2ZgLsnk="; }; - nativeBuildInputs = [ which pkgconfig makeWrapper installShellFiles ]; + nativeBuildInputs = [ pkg-config makeWrapper meson ninja installShellFiles ]; buildInputs = [ libxcb xcbutilkeysyms xcbutil xcbutilwm xcbutilxrm libxkbcommon libstartup_notification libX11 pcre libev yajl xcb-util-cursor perl pango perlPackages.AnyEventI3 perlPackages.X11XCB perlPackages.IPCRun perlPackages.ExtUtilsPkgConfig perlPackages.InlineC - xorgserver xvfb_run + xorgserver xvfb-run ]; configureFlags = [ "--disable-builddir" ]; - enableParallelBuilding = true; - postPatch = '' patchShebangs . ''; @@ -38,7 +36,7 @@ stdenv.mkDerivation rec { # https://github.com/NixOS/nixpkgs/issues/7957 doCheck = false; # stdenv.hostPlatform.system == "x86_64-linux"; - checkPhase = stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") + checkPhase = lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") '' (cd testcases && xvfb-run ./complete-run.pl -p 1 --keep-xserver-output) ! grep -q '^not ok' testcases/latest/complete-run.log @@ -55,7 +53,7 @@ stdenv.mkDerivation rec { separateDebugInfo = true; - meta = with stdenv.lib; { + meta = with lib; { description = "A tiling window manager"; homepage = "https://i3wm.org"; maintainers = with maintainers; [ modulistic fpletz globin ]; diff --git a/pkgs/applications/window-managers/i3/easyfocus.nix b/pkgs/applications/window-managers/i3/easyfocus.nix index 5c7a22eb769..a2ee445eaf1 100644 --- a/pkgs/applications/window-managers/i3/easyfocus.nix +++ b/pkgs/applications/window-managers/i3/easyfocus.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, pkgconfig, xorgproto, libxcb, xcbutilkeysyms +{ lib, stdenv, fetchFromGitHub, pkg-config, xorgproto, libxcb, xcbutilkeysyms , xorg , i3ipc-glib , glib }: @@ -13,7 +13,7 @@ stdenv.mkDerivation { sha256 = "1db23vzzmp0hnfss1fkd80za6d2pajx7hdwikw50pk95jq0w8wfm"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ libxcb xcbutilkeysyms xorgproto xorg.libX11.dev i3ipc-glib glib.dev ]; # Makefile has no rule for 'install' @@ -22,7 +22,7 @@ stdenv.mkDerivation { cp i3-easyfocus $out/bin ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Focus and select windows in i3"; homepage = "https://github.com/cornerman/i3-easyfocus"; maintainers = with maintainers; [teto]; diff --git a/pkgs/applications/window-managers/i3/gaps.nix b/pkgs/applications/window-managers/i3/gaps.nix index fa1c97c14c1..8ab8c5630d0 100644 --- a/pkgs/applications/window-managers/i3/gaps.nix +++ b/pkgs/applications/window-managers/i3/gaps.nix @@ -1,26 +1,22 @@ -{ fetchurl, stdenv, i3, autoreconfHook }: +{ fetchFromGitHub, lib, i3 }: i3.overrideAttrs (oldAttrs : rec { + pname = "i3-gaps"; + version = "4.19.1"; - name = "i3-gaps-${version}"; - version = "4.18.2"; - - src = fetchurl { - url = "https://github.com/Airblader/i3/releases/download/${version}/i3-${version}.tar.bz2"; - sha256 = "0lz08wf4b0yprzqsmymn94kiyg885dcwmh0p64v2rnf52s165g2g"; + src = fetchFromGitHub { + owner = "Airblader"; + repo = "i3"; + rev = version; + sha256 = "sha256-Ydks0hioGAnVBGKraoy3a7Abq9/vHmSne+VFbrYXCug="; }; - nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ autoreconfHook ]; - - # fatal error: GENERATED_config_enums.h: No such file or directory - enableParallelBuilding = false; - - meta = with stdenv.lib; { + meta = with lib; { description = "A fork of the i3 tiling window manager with some additional features"; homepage = "https://github.com/Airblader/i3"; maintainers = with maintainers; [ fmthoma ]; license = licenses.bsd3; - platforms = platforms.all; + platforms = platforms.linux ++ platforms.netbsd ++ platforms.openbsd; longDescription = '' Fork of i3wm, a tiling window manager primarily targeted at advanced users diff --git a/pkgs/applications/window-managers/i3/i3-ratiosplit.nix b/pkgs/applications/window-managers/i3/i3-ratiosplit.nix new file mode 100644 index 00000000000..fbd584f2baa --- /dev/null +++ b/pkgs/applications/window-managers/i3/i3-ratiosplit.nix @@ -0,0 +1,26 @@ +{ lib, rustPlatform, fetchFromGitHub }: + +rustPlatform.buildRustPackage rec { + pname = "i3-ratiosplit"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "333fred"; + repo = pname; + rev = "v${version}"; + sha256 = "0yfmr5zk2c2il9d31yjjbr48sqgcq6hp4a99hl5mjm2ajyhy5bz3"; + }; + + cargoSha256 = "134sgc9d0j57swknl9sgil6212rws2hhp92s3cg1yzz5ygx21c76"; + + # Currently no tests are implemented, so we avoid building the package twice + doCheck = false; + + meta = with lib; { + description = "Resize newly created windows"; + homepage = "https://github.com/333fred/i3-ratiosplit"; + license = licenses.mit; + maintainers = with maintainers; [ svrana ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/i3/i3-resurrect.nix b/pkgs/applications/window-managers/i3/i3-resurrect.nix new file mode 100644 index 00000000000..a765d2e298e --- /dev/null +++ b/pkgs/applications/window-managers/i3/i3-resurrect.nix @@ -0,0 +1,22 @@ +{ lib, buildPythonApplication, click, i3ipc, psutil, natsort, fetchPypi, xprop, xdotool, importlib-metadata }: + +buildPythonApplication rec { + pname = "i3-resurrect"; + version = "1.4.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "0h181frdwpqfj9agw43qgicdvzv1i7xwky0vs0ksd8h18qxqp4hr"; + }; + + propagatedBuildInputs = [ click psutil xprop natsort i3ipc xdotool importlib-metadata ]; + doCheck = false; # no tests + + meta = with lib; { + homepage = "https://github.com/JonnyHaystack/i3-resurrect"; + description = "A simple but flexible solution to saving and restoring i3 workspaces"; + license = licenses.gpl3; + platforms= platforms.linux; + maintainers = with maintainers; [ magnetophon ]; + }; +} diff --git a/pkgs/applications/window-managers/i3/i3ipc-glib.nix b/pkgs/applications/window-managers/i3/i3ipc-glib.nix index af353589a7e..572b12d986c 100644 --- a/pkgs/applications/window-managers/i3/i3ipc-glib.nix +++ b/pkgs/applications/window-managers/i3/i3ipc-glib.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, pkgconfig, xorgproto, libxcb +{ lib, stdenv, fetchFromGitHub, pkg-config, xorgproto, libxcb , autoreconfHook, json-glib, gtk-doc, which , gobject-introspection }: @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { sha256 = "01fzvrbnzcwx0vxw29igfpza9zwzp2s7msmzb92v01z0rz0y5m0p"; }; - nativeBuildInputs = [ autoreconfHook which pkgconfig ]; + nativeBuildInputs = [ autoreconfHook which pkg-config ]; buildInputs = [ libxcb json-glib gtk-doc xorgproto gobject-introspection ]; @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { gtkdocize ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A C interface library to i3wm"; homepage = "https://github.com/acrisci/i3ipc-glib"; maintainers = with maintainers; [teto]; diff --git a/pkgs/applications/window-managers/i3/layout-manager.nix b/pkgs/applications/window-managers/i3/layout-manager.nix index f4c2a53b7a2..8fd0364bb58 100644 --- a/pkgs/applications/window-managers/i3/layout-manager.nix +++ b/pkgs/applications/window-managers/i3/layout-manager.nix @@ -1,18 +1,18 @@ -{ stdenv, fetchFromGitHub, vim, makeWrapper, jq, rofi, xrandr, xdotool, i3, gawk, libnotify }: +{ lib, stdenv, fetchFromGitHub, vim, makeWrapper, jq, rofi, xrandr, xdotool, i3, gawk, libnotify }: let - path = stdenv.lib.makeBinPath [ vim jq rofi xrandr xdotool i3 gawk libnotify ]; + path = lib.makeBinPath [ vim jq rofi xrandr xdotool i3 gawk libnotify ]; in stdenv.mkDerivation rec { pname = "i3-layout-manager"; - version = "unstable-2019-12-06"; + version = "unstable-2020-05-04"; src = fetchFromGitHub { owner = "klaxalk"; repo = pname; - rev = "064e13959413ba2d706185478a394e5852c0dc53"; - sha256 = "1qm35sp1cfi3xj5j7xwa05dkb3353gwq4xh69ryc6382xx3wszg6"; + rev = "df54826bba351d8bcd7ebeaf26c07c713af7912c"; + sha256 = "0ccvr43yp26fnh5d82cw7jcfq2sbxzzmdx2cp15bmxr8ixr8knc3"; }; nativeBuildInputs = [ makeWrapper ]; @@ -29,9 +29,9 @@ stdenv.mkDerivation rec { runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/klaxalk/i3-layout-manager"; - description = "Saving, loading and managing layouts for i3wm."; + description = "Saving, loading and managing layouts for i3wm"; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ ]; diff --git a/pkgs/applications/window-managers/i3/lock-blur.nix b/pkgs/applications/window-managers/i3/lock-blur.nix new file mode 100644 index 00000000000..a536a44d452 --- /dev/null +++ b/pkgs/applications/window-managers/i3/lock-blur.nix @@ -0,0 +1,21 @@ +{ i3lock-color, lib, fetchFromGitHub }: + +i3lock-color.overrideAttrs (oldAttrs : rec { + pname = "i3lock-blur"; + version = "2.10"; + + src = fetchFromGitHub { + owner = "karulont"; + repo = "i3lock-blur"; + rev = version; + sha256 = "sha256-rBQHYVD9rurzTEXrgEnOziOP22D2EePC1+EV9Wi2pa0="; + }; + + meta = with lib; { + description = "An improved screenlocker based upon XCB and PAM with background blurring filter"; + homepage = "https://github.com/karulont/i3lock-blur/"; + license = licenses.bsd3; + maintainers = with maintainers; [ dan4ik605743 ]; + platforms = platforms.all; + }; +}) diff --git a/pkgs/applications/window-managers/i3/lock-color.nix b/pkgs/applications/window-managers/i3/lock-color.nix index a64e5ea3369..63a49953115 100644 --- a/pkgs/applications/window-managers/i3/lock-color.nix +++ b/pkgs/applications/window-managers/i3/lock-color.nix @@ -1,20 +1,20 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libxcb, +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, libxcb, xcbutilkeysyms , xcbutilimage, pam, libX11, libev, cairo, libxkbcommon, libxkbfile, libjpeg_turbo, xcbutilxrm }: stdenv.mkDerivation rec { - version = "2.12.c.5"; + version = "2.13.c.4"; pname = "i3lock-color"; src = fetchFromGitHub { owner = "PandorasFox"; repo = "i3lock-color"; rev = version; - sha256 = "10h50a6p9ivqjz8hd5pn9l03vz6y9dxdx68bprqssfzdkzqnzaiv"; + sha256 = "sha256-bbjkvgSKD57sdOtPYGLAKpQoIsJnF6s6ySq4dTWC3tI="; }; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; + nativeBuildInputs = [ autoreconfHook pkg-config ]; buildInputs = [ libxcb xcbutilkeysyms xcbutilimage pam libX11 libev cairo libxkbcommon libxkbfile libjpeg_turbo xcbutilxrm ]; @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { mv $out/share/man/man1/i3lock.1 $out/share/man/man1/i3lock-color.1 sed -i 's/\(^\|\s\|"\)i3lock\(\s\|$\)/\1i3lock-color\2/g' $out/share/man/man1/i3lock-color.1 ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A simple screen locker like slock, enhanced version with extra configuration options"; longDescription = '' Simple screen locker. After locking, a colored background (default: white) or @@ -55,8 +55,6 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ malyn ]; license = licenses.bsd3; - # Needs the SSE2 instruction set. See upstream issue - # https://github.com/chrjguill/i3lock-color/issues/44 - platforms = platforms.x86; + platforms = platforms.all; }; } diff --git a/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix b/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix index f6e24d979a4..8884b1d5100 100644 --- a/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix +++ b/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, xorg, i3lock }: +{ lib, stdenv, fetchFromGitHub, xorg, i3lock }: stdenv.mkDerivation rec { pname = "i3lock-fancy-rapid"; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { install -D i3lock-fancy-rapid $out/bin/i3lock-fancy-rapid ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A faster implementation of i3lock-fancy"; homepage = "https://github.com/yvbbrjdr/i3lock-fancy-rapid"; maintainers = with maintainers; [ nickhu ]; diff --git a/pkgs/applications/window-managers/i3/lock-fancy.nix b/pkgs/applications/window-managers/i3/lock-fancy.nix index 9b9b2dea132..7e42a8efd7e 100644 --- a/pkgs/applications/window-managers/i3/lock-fancy.nix +++ b/pkgs/applications/window-managers/i3/lock-fancy.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, coreutils, scrot, imagemagick, gawk +{ lib, stdenv, fetchFromGitHub, coreutils, scrot, imagemagick, gawk , i3lock-color, getopt, fontconfig }: @@ -31,8 +31,8 @@ stdenv.mkDerivation rec { cp i3lock-fancy $out/bin/i3lock-fancy cp icons/lock*.png $out/share/i3lock-fancy/icons ''; - meta = with stdenv.lib; { - description = "i3lock is a bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text."; + meta = with lib; { + description = "i3lock is a bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text"; homepage = "https://github.com/meskarune/i3lock-fancy"; maintainers = with maintainers; [ ]; license = licenses.mit; diff --git a/pkgs/applications/window-managers/i3/lock.nix b/pkgs/applications/window-managers/i3/lock.nix index 2bca01eeefa..03506e889d7 100644 --- a/pkgs/applications/window-managers/i3/lock.nix +++ b/pkgs/applications/window-managers/i3/lock.nix @@ -1,16 +1,16 @@ -{ fetchurl, stdenv, which, pkgconfig, libxcb, xcbutilkeysyms, xcbutilimage, +{ fetchurl, lib, stdenv, which, pkg-config, libxcb, xcbutilkeysyms, xcbutilimage, xcbutilxrm, pam, libX11, libev, cairo, libxkbcommon, libxkbfile }: stdenv.mkDerivation rec { pname = "i3lock"; - version = "2.12"; + version = "2.13"; src = fetchurl { url = "https://i3wm.org/i3lock/${pname}-${version}.tar.bz2"; - sha256 = "02dwaqxpclcwiwvpvq7zwz4sxcv9c15dbf17ifalj1p8djls3cnh"; + sha256 = "02szjsaz7rqrdkd0r2nwgwa85c4hwfrcskxw7ryk695kmjcfhzv3"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ which libxcb xcbutilkeysyms xcbutilimage xcbutilxrm pam libX11 libev cairo libxkbcommon libxkbfile ]; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { cp *.1 $out/share/man/man1 ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A simple screen locker like slock"; longDescription = '' Simple screen locker. After locking, a colored background (default: white) or diff --git a/pkgs/applications/window-managers/i3/pystatus.nix b/pkgs/applications/window-managers/i3/pystatus.nix index beefdaf891c..bddaab61578 100644 --- a/pkgs/applications/window-managers/i3/pystatus.nix +++ b/pkgs/applications/window-managers/i3/pystatus.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib , fetchFromGitHub , libpulseaudio , libnotify @@ -29,7 +29,7 @@ python3Packages.buildPythonApplication rec { makeWrapperArgs = [ # LC_TIME != C results in locale.Error: unsupported locale setting "--set" "LC_TIME" "C" - "--suffix" "LD_LIBRARY_PATH" ":" "${stdenv.lib.makeLibraryPath [ libpulseaudio ]}" + "--suffix" "LD_LIBRARY_PATH" ":" "${lib.makeLibraryPath [ libpulseaudio ]}" ]; postPatch = '' @@ -45,7 +45,7 @@ python3Packages.buildPythonApplication rec { # no tests in tarball doCheck = false; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/enkore/i3pystatus"; description = "A complete replacement for i3status"; longDescription = '' diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix index 8bd3d581434..fe0cde61c6f 100644 --- a/pkgs/applications/window-managers/i3/status-rust.nix +++ b/pkgs/applications/window-managers/i3/status-rust.nix @@ -1,26 +1,56 @@ -{ stdenv, rustPlatform, fetchFromGitHub, pkgconfig, dbus, libpulseaudio }: +{ lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, makeWrapper +, dbus +, libpulseaudio +, notmuch +, openssl +, ethtool +}: rustPlatform.buildRustPackage rec { pname = "i3status-rust"; - version = "0.14.1"; + version = "0.20.2"; src = fetchFromGitHub { owner = "greshake"; repo = pname; rev = "v${version}"; - sha256 = "11qhzjml04njhfa033v98m4yd522zj91s6ffvrm0m6sk7m0wyjsc"; + sha256 = "sha256-9PXvQrh0gmn/G+b7sbQffQkPnUKu1eVrvUoJlRBsOEM="; }; - cargoSha256 = "0jmmxld4rsjj6p5nazi3d8j1hh7r34q6kyfqq4wv0sjc77gcpaxd"; + cargoSha256 = "sha256-6orDR2Ml1Fy20uT47EDkEk0rGFxO0djHZsFiqlS1Tk8="; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config makeWrapper ]; - buildInputs = [ dbus libpulseaudio ]; + buildInputs = [ dbus libpulseaudio notmuch openssl ]; + + cargoBuildFlags = [ + "--features=notmuch" + "--features=maildir" + "--features=pulseaudio" + ]; + + prePatch = '' + substituteInPlace src/util.rs \ + --replace "/usr/share/i3status-rust" "$out/share" + ''; + + postInstall = '' + mkdir -p $out/share + cp -R files/* $out/share + ''; + + postFixup = '' + wrapProgram $out/bin/i3status-rs --prefix PATH : "${ethtool}/bin" + ''; # Currently no tests are implemented, so we avoid building the package twice doCheck = false; - meta = with stdenv.lib; { + meta = with lib; { description = "Very resource-friendly and feature-rich replacement for i3status"; homepage = "https://github.com/greshake/i3status-rust"; license = licenses.gpl3; diff --git a/pkgs/applications/window-managers/i3/status.nix b/pkgs/applications/window-managers/i3/status.nix index 6005ca3ab3a..8e9cb2d2b76 100644 --- a/pkgs/applications/window-managers/i3/status.nix +++ b/pkgs/applications/window-managers/i3/status.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, libconfuse, yajl, alsaLib, libpulseaudio, libnl, pkgconfig, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl }: +{ fetchurl, lib, stdenv, libconfuse, yajl, alsa-lib, libpulseaudio, libnl, pkg-config, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl }: stdenv.mkDerivation rec { name = "i3status-2.13"; @@ -8,8 +8,8 @@ stdenv.mkDerivation rec { sha256 = "0rhlzb96mw64z2jnhwz9nibc7pxg549626lz5642xxk5hpzwk2ff"; }; - nativeBuildInputs = [ pkgconfig asciidoc xmlto docbook_xml_dtd_45 docbook_xsl ]; - buildInputs = [ libconfuse yajl alsaLib libpulseaudio libnl ]; + nativeBuildInputs = [ pkg-config asciidoc xmlto docbook_xml_dtd_45 docbook_xsl ]; + buildInputs = [ libconfuse yajl alsa-lib libpulseaudio libnl ]; makeFlags = [ "all" "PREFIX=$(out)" ]; @@ -22,8 +22,8 @@ stdenv.mkDerivation rec { description = "Generates a status line for i3bar, dzen2, xmobar or lemonbar"; homepage = "https://i3wm.org"; maintainers = [ ]; - license = stdenv.lib.licenses.bsd3; - platforms = stdenv.lib.platforms.all; + license = lib.licenses.bsd3; + platforms = lib.platforms.all; }; } diff --git a/pkgs/applications/window-managers/i3/wk-switch.nix b/pkgs/applications/window-managers/i3/wk-switch.nix index 51881975266..d0055ef6365 100644 --- a/pkgs/applications/window-managers/i3/wk-switch.nix +++ b/pkgs/applications/window-managers/i3/wk-switch.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, python3Packages }: +{ lib, fetchFromGitHub, python3Packages }: python3Packages.buildPythonApplication rec { pname = "i3-wk-switch"; @@ -21,7 +21,7 @@ python3Packages.buildPythonApplication rec { cp i3-wk-switch.py "$out/bin/i3-wk-switch" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "XMonad-like workspace switching for i3 and sway"; maintainers = with maintainers; [ synthetica ]; platforms = platforms.linux; diff --git a/pkgs/applications/window-managers/i3/wmfocus.nix b/pkgs/applications/window-managers/i3/wmfocus.nix index c4e22546d1c..7033e573049 100644 --- a/pkgs/applications/window-managers/i3/wmfocus.nix +++ b/pkgs/applications/window-managers/i3/wmfocus.nix @@ -1,20 +1,20 @@ -{ stdenv, fetchFromGitHub, rustPlatform -, xorg, python3, pkgconfig, cairo, libxkbcommon }: +{ lib, fetchFromGitHub, rustPlatform +, xorg, python3, pkg-config, cairo, libxkbcommon }: rustPlatform.buildRustPackage rec { pname = "wmfocus"; - version = "1.1.3"; + version = "1.1.5"; src = fetchFromGitHub { owner = "svenstaro"; repo = pname; - rev = version; - sha256 = "17qdsqp9072yr7rcm6g1h620rff95ldawr8ldpkbjmkh0rc86skn"; + rev = "v${version}"; + sha256 = "09xffklpz62h6yiksxdlv3a9s1z0wr3ax9syl399avwdmq3c0y49"; }; - cargoSha256 = "1nsdvzrsgprwq7lsvfpymqslhggdzfk3840y8x92qjb0l2g4jhw1"; + cargoSha256 = "0fmz3q3yadymbqnkdhjd2z2g4zgf3z81ccixwywndd9zb7p47zdr"; - nativeBuildInputs = [ python3 pkgconfig ]; + nativeBuildInputs = [ python3 pkg-config ]; buildInputs = [ cairo libxkbcommon xorg.xcbutilkeysyms ]; # For now, this is the only available featureset. This is also why the file is @@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec { # users. cargoBuildFlags = [ "--features i3" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Visually focus windows by label"; homepage = "https://github.com/svenstaro/wmfocus"; license = licenses.mit; diff --git a/pkgs/applications/window-managers/i3/workstyle.nix b/pkgs/applications/window-managers/i3/workstyle.nix new file mode 100644 index 00000000000..3f7c252c2c3 --- /dev/null +++ b/pkgs/applications/window-managers/i3/workstyle.nix @@ -0,0 +1,27 @@ +{ lib +, rustPlatform +, fetchFromGitHub +}: + +rustPlatform.buildRustPackage rec { + pname = "workstyle"; + version = "unstable-2021-05-09"; + + src = fetchFromGitHub { + owner = "pierrechevalier83"; + repo = pname; + rev = "f2023750d802259ab3ee7d7d1762631ec157a0b1"; + sha256 = "04xds691sw4pi2nq8xvdhn0312wwia60gkd8b1bjqy11zrqbivbx"; + }; + + cargoSha256 = "0xwv8spr96z4aimjlr15bhwl6i3zqp7jr45d9zr3sbi9d8dbdja2"; + + doCheck = false; # No tests + + meta = with lib; { + description = "Sway workspaces with style"; + homepage = "https://github.com/pierrechevalier83/workstyle"; + license = licenses.mit; + maintainers = with maintainers; [ FlorianFranzen ]; + }; +} diff --git a/pkgs/applications/window-managers/i3/wsr.nix b/pkgs/applications/window-managers/i3/wsr.nix new file mode 100644 index 00000000000..6af5717916b --- /dev/null +++ b/pkgs/applications/window-managers/i3/wsr.nix @@ -0,0 +1,33 @@ +{ lib, fetchFromGitHub, rustPlatform, libxcb, python3 }: + +rustPlatform.buildRustPackage rec { + pname = "i3wsr"; + version = "2.0.1"; + + src = fetchFromGitHub { + owner = "roosta"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-JzQWfC0kmnMArpIAE5fgb3YLmXktSCH5aUdrQH9pCbo="; + }; + + cargoSha256 = "sha256-ZvSdJLaw1nfaqpTBKIiHiXvNFSZhsmLk0PBrV6ykv/w="; + + nativeBuildInputs = [ python3 ]; + buildInputs = [ libxcb ]; + + # has not tests + doCheck = false; + + meta = with lib; { + description = "Automatically change i3 workspace names based on their contents"; + longDescription = '' + Automatically sets the workspace names to match the windows on the workspace. + The chosen name for a workspace is a user-defined composite of the WM_CLASS X11 + window property for each window in a workspace. + ''; + homepage = "https://github.com/roosta/i3wsr"; + license = licenses.mit; + maintainers = [ maintainers.sebbadk ]; + }; +} diff --git a/pkgs/applications/window-managers/icewm/default.nix b/pkgs/applications/window-managers/icewm/default.nix index 57f4a764c90..77ed0c561cd 100644 --- a/pkgs/applications/window-managers/icewm/default.nix +++ b/pkgs/applications/window-managers/icewm/default.nix @@ -1,31 +1,90 @@ -{ stdenv, fetchFromGitHub, cmake, gettext, perl, asciidoc -, libjpeg, libtiff, libungif, libpng, imlib, expat -, freetype, fontconfig, pkgconfig, gdk-pixbuf, gdk-pixbuf-xlib, glib -, mkfontdir, libX11, libXft, libXext, libXinerama -, libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb -, libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes -, libsndfile, fribidi }: +{ lib +, stdenv +, fetchFromGitHub +, cmake +, pkg-config +, asciidoc +, expat +, fontconfig +, freetype +, fribidi +, gdk-pixbuf +, gdk-pixbuf-xlib +, gettext +, glib +, imlib2 +, libICE +, libSM +, libX11 +, libXcomposite +, libXdamage +, libXdmcp +, libXext +, libXfixes +, libXft +, libXinerama +, libXpm +, libXrandr +, libjpeg +, libpng +, libpthreadstubs +, libsndfile +, libtiff +, giflib +, libxcb +, mkfontdir +, pcre +, perl +}: -with stdenv.lib; stdenv.mkDerivation rec { pname = "icewm"; - version = "1.7.0"; + version = "2.3.4"; src = fetchFromGitHub { - owner = "bbidulock"; - repo = "icewm"; - rev = version; - sha256 = "0x6axhwfwxxgnljf3201hvrwa90yacf3ln24lsywrk1bxq9am74b"; + owner = "ice-wm"; + repo = pname; + rev = version; + hash = "sha256-UyLefj0eY/m3Of51NdhMNMq3z+kaLK28zDe63hbDK5A="; }; - nativeBuildInputs = [ cmake pkgconfig perl asciidoc ]; - + nativeBuildInputs = [ + asciidoc + cmake + perl + pkg-config + ]; buildInputs = [ - gettext libjpeg libtiff libungif libpng imlib expat - freetype fontconfig gdk-pixbuf gdk-pixbuf-xlib glib mkfontdir libX11 - libXft libXext libXinerama libXrandr libICE libSM libXpm - libXdmcp libxcb libpthreadstubs pcre libsndfile fribidi - libXdamage libXcomposite libXfixes + expat + fontconfig + freetype + fribidi + gdk-pixbuf + gdk-pixbuf-xlib + gettext + glib + imlib2 + libICE + libSM + libX11 + libXcomposite + libXdamage + libXdmcp + libXext + libXfixes + libXft + libXinerama + libXpm + libXrandr + libjpeg + libpng + libpthreadstubs + libsndfile + libtiff + giflib + libxcb + mkfontdir + pcre ]; cmakeFlags = [ "-DPREFIX=$out" "-DCFGDIR=/etc/icewm" ]; @@ -35,14 +94,23 @@ stdenv.mkDerivation rec { cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} $out/share/icewm/themes/ ''; - meta = { + meta = with lib; { + homepage = "https://www.ice-wm.org/"; description = "A simple, lightweight X window manager"; longDescription = '' - IceWM is a window manager for the X Window System. The goal of - IceWM is speed, simplicity, and not getting in the user's way. + IceWM is a window manager for the X Window System. The goal of IceWM is + speed, simplicity, and not getting in the user’s way. It comes with a + taskbar with pager, global and per-window keybindings and a dynamic menu + system. Application windows can be managed by keyboard and mouse. Windows + can be iconified to the taskbar, to the tray, to the desktop or be made + hidden. They are controllable by a quick switch window (Alt+Tab) and in a + window list. A handful of configurable focus models are + menu-selectable. Setups with multiple monitors are supported by RandR and + Xinerama. IceWM is very configurable, themeable and well documented. It + includes an optional external background wallpaper manager with + transparency support, a simple session manager and a system tray. ''; - homepage = "https://www.ice-wm.org/"; - license = licenses.lgpl2; + license = licenses.lgpl2Only; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; }; diff --git a/pkgs/applications/window-managers/ion-3/default.nix b/pkgs/applications/window-managers/ion-3/default.nix index 57c91c2cfb7..8f172ac8700 100644 --- a/pkgs/applications/window-managers/ion-3/default.nix +++ b/pkgs/applications/window-managers/ion-3/default.nix @@ -1,12 +1,12 @@ -{ stdenv, fetchurl, xlibsWrapper, lua, gettext, groff }: +{ lib, stdenv, fetchurl, xlibsWrapper, lua, gettext, groff }: stdenv.mkDerivation { name = "ion-3-20090110"; meta = { description = "Tiling tabbed window manager designed with keyboard users in mind"; homepage = "http://modeemi.fi/~tuomov/ion"; - platforms = with stdenv.lib.platforms; linux; - license = stdenv.lib.licenses.lgpl21; + platforms = with lib.platforms; linux; + license = lib.licenses.lgpl21; }; src = fetchurl { url = "http://tuomov.iki.fi/software/dl/ion-3-20090110.tar.gz"; diff --git a/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch b/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch new file mode 100644 index 00000000000..f7b6a4cb9f1 --- /dev/null +++ b/pkgs/applications/window-managers/jwm/0001-Fix-Gettext-Requirement.patch @@ -0,0 +1,14 @@ +diff --git a/configure.ac b/configure.ac +index 347d325..dce95a0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -489,7 +489,8 @@ fi + ############################################################################ + AM_ICONV + AM_GNU_GETTEXT([external]) +-AM_GNU_GETTEXT_VERSION([0.19]) ++AM_GNU_GETTEXT_VERSION([0.19.6]) ++AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6]) + LDFLAGS="$LDFLAGS $LIBINTL $LIBICONV" + + ############################################################################ diff --git a/pkgs/applications/window-managers/jwm/default.nix b/pkgs/applications/window-managers/jwm/default.nix index 601cf3cded6..3c97c5630b0 100644 --- a/pkgs/applications/window-managers/jwm/default.nix +++ b/pkgs/applications/window-managers/jwm/default.nix @@ -1,12 +1,11 @@ -{ stdenv, fetchFromGitHub, pkgconfig, automake, autoconf, libtool, - gettext, which, xorg, libX11, libXext, libXinerama, libXpm, libXft, - libXau, libXdmcp, libXmu, libpng, libjpeg, expat, xorgproto, - librsvg, freetype, fontconfig }: +{ lib, stdenv, fetchFromGitHub, pkg-config, automake, autoconf, libtool, gettext +, which, xorg, libX11, libXext, libXinerama, libXpm, libXft, libXau, libXdmcp +, libXmu, libpng, libjpeg, expat, xorgproto, librsvg, freetype, fontconfig }: stdenv.mkDerivation rec { pname = "jwm"; version = "1685"; - + src = fetchFromGitHub { owner = "joewing"; repo = "jwm"; @@ -14,11 +13,28 @@ stdenv.mkDerivation rec { sha256 = "1kyvy022sij898g2hm5spy5vq0kw6aqd7fsnawl2xyh06gwh29wg"; }; - nativeBuildInputs = [ pkgconfig automake autoconf libtool gettext which ]; + patches = [ ./0001-Fix-Gettext-Requirement.patch ]; + + nativeBuildInputs = [ pkg-config automake autoconf libtool gettext which ]; - buildInputs = [ libX11 libXext libXinerama libXpm libXft xorg.libXrender - libXau libXdmcp libXmu libpng libjpeg expat xorgproto - librsvg freetype fontconfig ]; + buildInputs = [ + libX11 + libXext + libXinerama + libXpm + libXft + xorg.libXrender + libXau + libXdmcp + libXmu + libpng + libjpeg + expat + xorgproto + librsvg + freetype + fontconfig + ]; enableParallelBuilding = true; @@ -27,8 +43,8 @@ stdenv.mkDerivation rec { meta = { homepage = "http://joewing.net/projects/jwm/"; description = "Joe's Window Manager is a light-weight X11 window manager"; - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.unix; - maintainers = [ stdenv.lib.maintainers.romildo ]; + license = lib.licenses.gpl2; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.romildo ]; }; } diff --git a/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix b/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix index d6fe5b4200c..d3b685e7dcd 100644 --- a/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix +++ b/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix @@ -1,9 +1,9 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, gettext, libXpm, libGL, fltk, hicolor-icon-theme, glib, gnome2, which }: +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gettext, libXpm, libGL, fltk, hicolor-icon-theme, glib, gnome2, which }: stdenv.mkDerivation { pname = "jwm-settings-manager"; version = "2018-10-19"; - + src = fetchFromGitHub { owner = "Israel-D"; repo = "jwm-settings-manager"; @@ -13,7 +13,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake - pkgconfig + pkg-config gettext ]; @@ -34,7 +34,7 @@ stdenv.mkDerivation { --replace 'DESTINATION usr/share' "DESTINATION share" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A full configuration manager for JWM"; homepage = "https://joewing.net/projects/jwm"; license = licenses.gpl3; diff --git a/pkgs/applications/window-managers/kbdd/default.nix b/pkgs/applications/window-managers/kbdd/default.nix index de1a68a56bf..2aade360745 100644 --- a/pkgs/applications/window-managers/kbdd/default.nix +++ b/pkgs/applications/window-managers/kbdd/default.nix @@ -1,24 +1,24 @@ -{ stdenv, fetchFromGitHub, pkgconfig, dbus-glib, autoreconfHook, xorg }: +{ lib, stdenv, fetchFromGitHub, pkg-config, dbus-glib, autoreconfHook, xorg }: stdenv.mkDerivation { pname = "kbdd"; - version = "unstable-2017-01-29"; + version = "unstable-2021-04-26"; src = fetchFromGitHub { owner = "qnikst"; repo = "kbdd"; - rev = "0e1056f066ab6e3c74fd0db0c9710a9a2b2538c3"; - sha256 = "068iqkqxh7928xlmz2pvnykszn9bcq2qgkkiwf37k1vm8fdmgzlj"; + rev = "3145099e1fbbe65b27678be72465aaa5b5872874"; + sha256 = "1gzcjnflgdqnjgphiqpzwbcx60hm0h2cprncm7i8xca3ln5q6ba1"; }; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; + nativeBuildInputs = [ autoreconfHook pkg-config ]; buildInputs = [ xorg.libX11 dbus-glib ]; meta = { description = "Simple daemon and library to make per window layout using XKB"; homepage = "https://github.com/qnikst/kbdd"; - license = stdenv.lib.licenses.gpl3; - platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.wedens ]; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.wedens ]; }; } diff --git a/pkgs/applications/window-managers/labwc/default.nix b/pkgs/applications/window-managers/labwc/default.nix new file mode 100644 index 00000000000..afa391e09d8 --- /dev/null +++ b/pkgs/applications/window-managers/labwc/default.nix @@ -0,0 +1,73 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, pkg-config +, meson +, ninja +, cairo +, glib +, libinput +, libxml2 +, pango +, wayland +, wayland-protocols +, wlroots +, libxcb +, libxkbcommon +, xwayland +, libdrm +, scdoc +}: + +stdenv.mkDerivation rec { + pname = "labwc"; + version = "0.2.1"; # We're effectively using that version + + src = fetchFromGitHub { + owner = "johanmalm"; + repo = pname; + rev = "6744e103014bcb0480133a029ec0f82f9b017e60"; + sha256 = "0sdr4zkix8x3vmna4i946y3whpj7fqizpaac6yj7w0as9d6hj0iq"; + }; + + patches = [ + # To fix the build with wlroots 0.14: + (fetchpatch { + # output: access texture width/height directly + url = "https://github.com/johanmalm/labwc/commit/892e93dd84c514b4e6f34a0fab01c727edd2d8de.patch"; + sha256 = "1p1pg1kd98727wlcspa2sffl7ijhvsfad6bj2rxsw322q0bz3yrh"; + }) + (fetchpatch { + # xdg: chase swaywm/wlroots@9e58301 + url = "https://github.com/johanmalm/labwc/commit/874cc9e63706dd54d9f9fcb071f2d2e0c19d3d7e.patch"; + sha256 = "0ypd47q5ffq4wjkrcr3068qjknn2s66zszyxg3dl0f87q2pxh6wx"; + }) + ]; + + nativeBuildInputs = [ pkg-config meson ninja scdoc ]; + buildInputs = [ + cairo + glib + libinput + libxml2 + pango + wayland + wayland-protocols + wlroots + libxcb + libxkbcommon + xwayland + libdrm + ]; + + mesonFlags = [ "-Dxwayland=enabled" ]; + + meta = with lib; { + homepage = "https://github.com/johanmalm/labwc"; + description = "Openbox alternative for Wayland"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/window-managers/larswm/default.nix b/pkgs/applications/window-managers/larswm/default.nix index b918c28938c..e9d400378e6 100644 --- a/pkgs/applications/window-managers/larswm/default.nix +++ b/pkgs/applications/window-managers/larswm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, imake, gccmakedep, libX11, libXext, libXmu }: +{ lib, stdenv, fetchurl, imake, gccmakedep, libX11, libXext, libXmu }: stdenv.mkDerivation { name = "larswm-7.5.3"; @@ -17,7 +17,7 @@ stdenv.mkDerivation { meta = { homepage = "http://www.fnurt.net/larswm"; description = "9wm-like tiling window manager"; - license = stdenv.lib.licenses.free; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.free; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/applications/window-managers/leftwm/default.nix b/pkgs/applications/window-managers/leftwm/default.nix index 06ebd7e0e92..e8330ee2936 100644 --- a/pkgs/applications/window-managers/leftwm/default.nix +++ b/pkgs/applications/window-managers/leftwm/default.nix @@ -1,35 +1,38 @@ -{ stdenv, fetchFromGitHub, rustPlatform, libX11, libXinerama, makeWrapper }: +{ lib, fetchFromGitHub, rustPlatform, libX11, libXinerama }: let - rpath = stdenv.lib.makeLibraryPath [ libXinerama libX11 ]; + rpathLibs = [ libXinerama libX11 ]; in rustPlatform.buildRustPackage rec { pname = "leftwm"; - version = "0.2.4"; + version = "0.2.8"; src = fetchFromGitHub { owner = "leftwm"; repo = "leftwm"; rev = version; - sha256 = "0xmkhkdpz1bpczrar9y6assdzhd7qxybnkjqs36h099fk9xqmsav"; + sha256 = "sha256-T4A9NGT6sUSTKmLcAWjcp3Y8QQzZFAVSXevXtGm3szY="; }; - cargoSha256 = "06wnx81fhs19pz5qnir6h2v2kmj73y1g354nadcx6650q9pnhdv4"; + cargoSha256 = "sha256-2prRtdBxpYc2xI/bLZNlqs3mxESfO9GhNUSlKFF//eE="; - buildInputs = [ makeWrapper libX11 libXinerama ]; + buildInputs = rpathLibs; postInstall = '' - wrapProgram $out/bin/leftwm --prefix LD_LIBRARY_PATH : "${rpath}" - wrapProgram $out/bin/leftwm-state --prefix LD_LIBRARY_PATH : "${rpath}" - wrapProgram $out/bin/leftwm-worker --prefix LD_LIBRARY_PATH : "${rpath}" + for p in $out/bin/leftwm*; do + patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $p + done ''; - meta = with stdenv.lib; { - description = "Leftwm - A tiling window manager for the adventurer"; + dontPatchELF = true; + + meta = with lib; { + description = "A tiling window manager for the adventurer"; homepage = "https://github.com/leftwm/leftwm"; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ mschneider ]; + changelog = "https://github.com/leftwm/leftwm/blob/${version}/CHANGELOG"; }; } diff --git a/pkgs/applications/window-managers/lemonbar/default.nix b/pkgs/applications/window-managers/lemonbar/default.nix index 89b4fecc206..8f553eb4b55 100644 --- a/pkgs/applications/window-managers/lemonbar/default.nix +++ b/pkgs/applications/window-managers/lemonbar/default.nix @@ -1,22 +1,25 @@ -{ stdenv, fetchurl, perl, libxcb }: +{ lib, stdenv, fetchFromGitHub, perl, libxcb }: -stdenv.mkDerivation { - name = "lemonbar-1.3"; - - src = fetchurl { - url = "https://github.com/LemonBoy/bar/archive/v1.3.tar.gz"; - sha256 = "0zd3v8ys4jzi60pm3wq7p3pbbd5y0acimgiq46qx1ckmwg2q9rza"; +stdenv.mkDerivation rec { + pname = "lemonbar"; + version = "1.4"; + + src = fetchFromGitHub { + owner = "LemonBoy"; + repo = "bar"; + rev = "v${version}"; + sha256 = "sha256-lmppcnQ8r4jEuhegpTBxYqxfTTS/IrbtQVZ44HqnoWo="; }; - + buildInputs = [ libxcb perl ]; - - prePatch = ''sed -i "s@/usr@$out@" Makefile''; - - meta = with stdenv.lib; { + + installFlags = [ "DESTDIR=$(out)" "PREFIX=" ]; + + meta = with lib; { description = "A lightweight xcb based bar"; homepage = "https://github.com/LemonBoy/bar"; - maintainers = [ maintainers.meisternu ]; - license = "Custom"; + maintainers = with maintainers; [ meisternu fortuneteller2k ]; + license = licenses.mit; platforms = platforms.linux; }; } diff --git a/pkgs/applications/window-managers/lemonbar/xft.nix b/pkgs/applications/window-managers/lemonbar/xft.nix index a70e5a4dc5c..54e7820ec4c 100644 --- a/pkgs/applications/window-managers/lemonbar/xft.nix +++ b/pkgs/applications/window-managers/lemonbar/xft.nix @@ -1,23 +1,25 @@ -{ stdenv, fetchFromGitHub, perl, libxcb, libXft }: +{ lib, stdenv, fetchFromGitHub, perl, libxcb, libXft }: stdenv.mkDerivation { - name = "lemonbar-xft-unstable-2016-02-17"; + pname = "lemonbar-xft"; + version = "unstable-2020-09-10"; src = fetchFromGitHub { - owner = "krypt-n"; - repo = "bar"; - rev = "a43b801ddc0f015ce8b1211f4c062fad12cd63a9"; - sha256 = "0iqas07qjvabxyvna2m9aj5bcwnkdii1izl9jxha63vz0zlsc4gd"; + owner = "drscream"; + repo = "lemonbar-xft"; + rev = "481e12363e2a0fe0ddd2176a8e003392be90ed02"; + sha256 = "sha256-BNYBbUouqqsRQaPkpg+UKg62IV9uI34gKJuiAM94CBU="; }; buildInputs = [ libxcb libXft perl ]; - prePatch = ''sed -i "s@/usr@$out@" Makefile''; + installFlags = [ "DESTDIR=$(out)" "PREFIX=" ]; - meta = { + meta = with lib; { description = "A lightweight xcb based bar with XFT-support"; - homepage = "https://github.com/krypt-n/bar"; - license = "Custom"; - platforms = stdenv.lib.platforms.linux; + homepage = "https://github.com/drscream/lemonbar-xft"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ fortuneteller2k ]; }; } diff --git a/pkgs/applications/window-managers/lwm/default.nix b/pkgs/applications/window-managers/lwm/default.nix index 49cdc81b9ce..cf1088c8223 100644 --- a/pkgs/applications/window-managers/lwm/default.nix +++ b/pkgs/applications/window-managers/lwm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl +{ lib, stdenv, fetchurl , imake, libX11, libSM, libXext, libICE }: stdenv.mkDerivation rec { @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { install -m644 lwm.man $out/share/man/man1/lwm.1 ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Lightweight Window Manager"; longDescription = '' lwm is a window manager for X that tries to keep out of your face. There diff --git a/pkgs/applications/window-managers/matchbox/default.nix b/pkgs/applications/window-managers/matchbox/default.nix index 3c537d6c931..51bb3010d33 100644 --- a/pkgs/applications/window-managers/matchbox/default.nix +++ b/pkgs/applications/window-managers/matchbox/default.nix @@ -1,10 +1,10 @@ -{ stdenv, fetchurl, pkgconfig, libmatchbox, libX11, libXext }: +{ lib, stdenv, fetchurl, pkg-config, libmatchbox, libX11, libXext }: stdenv.mkDerivation rec { pname = "matchbox"; version = "1.2"; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ libmatchbox ]; NIX_LDFLAGS = "-lX11 -L${libX11}/lib -lXext -L${libXext}/lib"; @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = { description = "X window manager for non-desktop embedded systems"; homepage = "https://www.yoctoproject.org/software-item/matchbox/"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/applications/window-managers/neocomp/default.nix b/pkgs/applications/window-managers/neocomp/default.nix index 57968922c39..e878f4f088e 100644 --- a/pkgs/applications/window-managers/neocomp/default.nix +++ b/pkgs/applications/window-managers/neocomp/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib, stdenv , fetchFromGitHub , asciidoc , docbook_xml_dtd_45 @@ -16,27 +16,30 @@ , libXinerama , libXrandr , libXrender +, libXres , pcre -, pkgconfig +, pkg-config }: -let - rev = "v0.6-17-g271e784"; -in + stdenv.mkDerivation rec { - pname = "neocomp-unstable"; - version = "2019-03-12"; + pname = "neocomp"; + version = "unstable-2021-04-06"; src = fetchFromGitHub { - inherit rev; - owner = "DelusionalLogic"; - repo = "NeoComp"; - sha256 = "1mp338vz1jm5pwf7pi5azx4hzykmvpkwzx1kw6a9anj272f32zpg"; + owner = "DelusionalLogic"; + repo = "NeoComp"; + rev = "ccd340d7b2dcd3f828aff958a638cc23686aee6f"; + sha256 = "sha256-tLLEwpAGNVTC+N41bM7pfskIli4Yvc95wH2/NT0OZ+8="; }; - buildInputs = [ + nativeBuildInputs = [ asciidoc docbook_xml_dtd_45 docbook_xsl + pkg-config + ]; + + buildInputs = [ freetype judy libGL @@ -50,15 +53,15 @@ stdenv.mkDerivation rec { libXinerama libXrandr libXrender + libXres pcre - pkgconfig ]; makeFlags = [ "PREFIX=${placeholder "out"}" "CFGDIR=${placeholder "out"}/etc/xdg/neocomp" "ASTDIR=${placeholder "out"}/share/neocomp/assets" - "COMPTON_VERSION=git-${rev}-${version}" + "COMPTON_VERSION=${version}" ]; postPatch = '' @@ -70,10 +73,10 @@ stdenv.mkDerivation rec { "#define MAX_PATH_LENGTH 128" ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/DelusionalLogic/NeoComp"; - license = licenses.gpl3; - maintainers = with maintainers; [ twey ]; + license = licenses.gpl3Only; + maintainers = with maintainers; [ twey fortuneteller2k ]; platforms = platforms.linux; description = "A fork of Compton, a compositor for X11"; longDescription = '' diff --git a/pkgs/applications/window-managers/notion/default.nix b/pkgs/applications/window-managers/notion/default.nix index 494bb9ff1b7..e59103d7d6d 100644 --- a/pkgs/applications/window-managers/notion/default.nix +++ b/pkgs/applications/window-managers/notion/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, pkgconfig +{ lib, stdenv, fetchFromGitHub, pkg-config , lua, gettext, which, groff, xmessage, xterm , readline, fontconfig, libX11, libXext, libSM , libXinerama, libXrandr, libXft @@ -7,16 +7,16 @@ stdenv.mkDerivation rec { pname = "notion"; - version = "4.0.1"; + version = "4.0.2"; src = fetchFromGitHub { owner = "raboof"; repo = pname; rev = version; - sha256 = "1s0fyacygvc9iz7b9v3b2cmzzqc02nh4g1p9bfcxbg254iscd502"; + sha256 = "14swd0yqci8lxn259fkd9w92bgyf4rmjwgvgyqp78wlfix6ai4mv"; }; - nativeBuildInputs = [ pkgconfig makeWrapper groff ]; + nativeBuildInputs = [ pkg-config makeWrapper groff ]; buildInputs = [ lua gettext which readline fontconfig libX11 libXext libSM libXinerama libXrandr libXft xlibsWrapper ]; @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { --prefix PATH ":" "${xmessage}/bin:${xterm}/bin" \ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Tiling tabbed window manager"; homepage = "https://notionwm.net"; license = licenses.lgpl21; diff --git a/pkgs/applications/window-managers/openbox/default.nix b/pkgs/applications/window-managers/openbox/default.nix index 39329e8004c..093b6d1884c 100644 --- a/pkgs/applications/window-managers/openbox/default.nix +++ b/pkgs/applications/window-managers/openbox/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, autoreconfHook, pkgconfig, python3 +{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, python3 , libxml2, libXinerama, libXcursor, libXau, libXrandr, libICE, libSM , imlib2, pango, libstartup_notification, makeWrapper }: @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook - pkgconfig + pkg-config makeWrapper python3.pkgs.wrapPython ]; @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { # Use fetchurl to avoid "fetchpatch: ignores file renames" #32084 # This patch adds python3 support (fetchurl { - url = "https://git.archlinux.org/svntogit/community.git/plain/openbox/trunk/py3.patch?id=90cb57ef53d952bb6ab4c33a184f815bbe1791c0"; + url = "https://raw.githubusercontent.com/archlinux/svntogit-community/90cb57ef53d952bb6ab4c33a184f815bbe1791c0/openbox/trunk/py3.patch"; sha256 = "1ks99awlkhd5ph9kz94s1r6m1bfvh42g4rmxd14dyg5b421p1ljc"; }) ]; @@ -62,7 +62,7 @@ stdenv.mkDerivation rec { meta = { description = "X window manager for non-desktop embedded systems"; homepage = "http://openbox.org/"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/applications/window-managers/oroborus/default.nix b/pkgs/applications/window-managers/oroborus/default.nix index 21b18a4917b..0124261e423 100644 --- a/pkgs/applications/window-managers/oroborus/default.nix +++ b/pkgs/applications/window-managers/oroborus/default.nix @@ -1,16 +1,16 @@ -{ stdenv, fetchurl, pkgconfig +{ lib, stdenv, fetchurl, pkg-config , freetype, fribidi , libSM, libICE, libXt, libXaw, libXmu , libXext, libXft, libXpm, libXrandr , libXrender, xorgproto, libXinerama }: -with stdenv.lib; +with lib; stdenv.mkDerivation rec { pname = "oroborus"; version = "2.0.20"; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ freetype fribidi libSM libICE libXt libXaw libXmu libXext libXft libXpm libXrandr libXrender xorgproto libXinerama ]; diff --git a/pkgs/applications/window-managers/pekwm/default.nix b/pkgs/applications/window-managers/pekwm/default.nix index da2c11c873b..fcce16c08ba 100644 --- a/pkgs/applications/window-managers/pekwm/default.nix +++ b/pkgs/applications/window-managers/pekwm/default.nix @@ -1,22 +1,39 @@ -{ stdenv, fetchurl, pkgconfig -, libpng, libjpeg -, libXext, libXft, libXpm, libXrandr, libXinerama }: +{ lib, stdenv +, fetchFromGitHub +, pkg-config +, cmake +, libXext +, libXft +, libXinerama +, libXpm +, libXrandr +, libjpeg +, libpng +}: stdenv.mkDerivation rec { - pname = "pekwm"; - version = "0.1.17"; + version = "0.1.18"; - src = fetchurl { - url = "https://www.pekwm.org/projects/pekwm/files/${pname}-${version}.tar.bz2"; - sha256 = "003x6bxj1lb2ljxz3v414bn0rdl6z68c0r185fxwgs1qkyzx67wa"; + src = fetchFromGitHub { + owner = "pekdon"; + repo = "pekwm"; + rev = "release-${version}"; + sha256 = "sha256-R1XDEk097ycMI3R4SjUEJv37CiMaDCQMvg7N8haN0MM="; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ libpng libjpeg - libXext libXft libXpm libXrandr libXinerama ]; + nativeBuildInputs = [ pkg-config cmake ]; + buildInputs = [ + libXext + libXft + libXinerama + libXpm + libXrandr + libjpeg + libpng + ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A lightweight window manager"; longDescription = '' pekwm is a window manager that once upon a time was based on the @@ -24,7 +41,7 @@ stdenv.mkDerivation rec { longer resembles aewm++ at all. It has a much expanded feature-set, including window grouping (similar to ion, pwm, or fluxbox), autoproperties, xinerama, keygrabber that supports - keychains, and much more. + keychains, and much more. - Lightweight and Unobtrusive, a window manager shouldn't be noticed. - Very configurable, we all work and think in different ways. @@ -33,7 +50,7 @@ stdenv.mkDerivation rec { - Chainable Keygrabber, usability for everyone. ''; homepage = "http://www.pekwm.org"; - license = licenses.gpl2; + license = licenses.gpl2Plus; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; }; diff --git a/pkgs/applications/window-managers/phosh/default.nix b/pkgs/applications/window-managers/phosh/default.nix new file mode 100644 index 00000000000..9fa0959ed50 --- /dev/null +++ b/pkgs/applications/window-managers/phosh/default.nix @@ -0,0 +1,136 @@ +{ lib +, stdenv +, fetchFromGitLab +, meson +, ninja +, pkg-config +, python3 +, wrapGAppsHook +, libhandy +, libxkbcommon +, pulseaudio +, glib +, gtk3 +, gnome +, gcr +, pam +, systemd +, upower +, wayland +, dbus +, xvfb-run +, phoc +, feedbackd +, networkmanager +, polkit +, libsecret +, writeText +}: + +let + gvc = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "libgnome-volume-control"; + rev = "ae1a34aafce7026b8c0f65a43c9192d756fe1057"; + sha256 = "0a4qh5pgyjki904qf7qmvqz2ksxb0p8xhgl2aixfbhixn0pw6saw"; + }; +in stdenv.mkDerivation rec { + pname = "phosh"; + version = "0.12.0"; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = pname; + rev = "v${version}"; + sha256 = "1s0lgq04qz562iri535wpwvfkmmngdpclyl329cf7rc9ihy1kjvs"; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + phoc + libhandy + libsecret + libxkbcommon + pulseaudio + glib + gcr + networkmanager + polkit + gnome.gnome-control-center + gnome.gnome-desktop + gnome.gnome-session + gtk3 + pam + systemd + upower + wayland + feedbackd + ]; + + checkInputs = [ + dbus + xvfb-run + ]; + + # Temporarily disabled - Test is broken (SIGABRT) + doCheck = false; + + mesonFlags = [ "-Dsystemd=true" "-Dcompositor=${phoc}/bin/phoc" ]; + + postUnpack = '' + rmdir $sourceRoot/subprojects/gvc + ln -s ${gvc} $sourceRoot/subprojects/gvc + ''; + + postPatch = '' + chmod +x build-aux/post_install.py + patchShebangs build-aux/post_install.py + ''; + + checkPhase = '' + runHook preCheck + export NO_AT_BRIDGE=1 + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + meson test --print-errorlogs + runHook postCheck + ''; + + # Depends on GSettings schemas in gnome-shell + preFixup = '' + gappsWrapperArgs+=( + --prefix XDG_DATA_DIRS : "${gnome.gnome-shell}/share/gsettings-schemas/${gnome.gnome-shell.name}" + --set GNOME_SESSION "${gnome.gnome-session}/bin/gnome-session" + ) + ''; + + postFixup = '' + mkdir -p $out/share/wayland-sessions + ln -s $out/share/applications/sm.puri.Phosh.desktop $out/share/wayland-sessions/ + # The OSK0.desktop points to a dummy stub that's not needed + rm $out/share/applications/sm.puri.OSK0.desktop + ''; + + passthru = { + providedSessions = [ + "sm.puri.Phosh" + ]; + }; + + meta = with lib; { + description = "A pure Wayland shell prototype for GNOME on mobile devices"; + homepage = "https://source.puri.sm/Librem5/phosh"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ archseer jtojnar masipcat zhaofengli ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/picom/default.nix b/pkgs/applications/window-managers/picom/default.nix index 8ea724aa694..32eee9df0d8 100644 --- a/pkgs/applications/window-managers/picom/default.nix +++ b/pkgs/applications/window-managers/picom/default.nix @@ -1,51 +1,96 @@ -{ stdenv, lib, fetchFromGitHub, pkgconfig, uthash, asciidoc, docbook_xml_dtd_45 -, docbook_xsl, libxslt, libxml2, makeWrapper, meson, ninja -, xorgproto, libxcb ,xcbutilrenderutil, xcbutilimage, pixman, libev -, dbus, libconfig, libdrm, libGL, pcre, libX11 -, libXinerama, libXext, xwininfo, libxdg_basedir }: +{ asciidoc +, dbus +, docbook_xml_dtd_45 +, docbook_xsl +, fetchFromGitHub +, lib +, libconfig +, libdrm +, libev +, libGL +, libX11 +, libxcb +, libxdg_basedir +, libXext +, libXinerama +, libxml2 +, libxslt +, makeWrapper +, meson +, ninja +, pcre +, pixman +, pkg-config +, stdenv +, uthash +, xcbutilimage +, xcbutilrenderutil +, xorgproto +, xwininfo +, withDebug ? false +}: stdenv.mkDerivation rec { pname = "picom"; - version = "8"; + version = "8.2"; src = fetchFromGitHub { - owner = "yshui"; - repo = "picom"; - rev = "v${version}"; - sha256 = "04svbv7v73q8yn9la69451rda6l2pgxcphv2zlkdqaxxdbp69195"; + owner = "yshui"; + repo = "picom"; + rev = "v${version}"; + sha256 = "0gjksayz2xpmgglvw17ppsan2imrd1fijs579kbf27xwp503xgfl"; fetchSubmodules = true; }; nativeBuildInputs = [ - meson ninja - pkgconfig - uthash asciidoc docbook_xml_dtd_45 docbook_xsl makeWrapper + meson + ninja + pkg-config + uthash ]; buildInputs = [ - dbus libX11 libXext - xorgproto - libXinerama libdrm pcre libxml2 libxslt libconfig libGL - libxcb xcbutilrenderutil xcbutilimage - pixman libev + dbus + libconfig + libdrm + libev + libGL + libX11 + libxcb libxdg_basedir + libXext + libXinerama + libxml2 + libxslt + pcre + pixman + xcbutilimage + xcbutilrenderutil + xorgproto ]; - NIX_CFLAGS_COMPILE = "-fno-strict-aliasing"; + # Use "debugoptimized" instead of "debug" so perhaps picom works better in + # normal usage too, not just temporary debugging. + mesonBuildType = if withDebug then "debugoptimized" else "release"; + dontStrip = withDebug; mesonFlags = [ - "-Dbuild_docs=true" + "-Dwith_docs=true" ]; installFlags = [ "PREFIX=$(out)" ]; + # In debug mode, also copy src directory to store. If you then run `gdb picom` + # in the bin directory of picom store path, gdb finds the source files. postInstall = '' wrapProgram $out/bin/picom-trans \ --prefix PATH : ${lib.makeBinPath [ xwininfo ]} + '' + lib.optionalString withDebug '' + cp -r ../src $out/ ''; meta = with lib; { @@ -56,10 +101,17 @@ stdenv.mkDerivation rec { extensions. It enables basic eye-candy effects. This fork adds additional features, such as additional effects, and a fork at a well-defined and proper place. + + The package can be installed in debug mode as: + + picom.override { withDebug = true; } + + For gdb to find the source files, you need to run gdb in the bin directory + of picom package in the nix store. ''; license = licenses.mit; homepage = "https://github.com/yshui/picom"; - maintainers = with maintainers; [ ertes enzime twey ]; + maintainers = with maintainers; [ ertes twey thiagokokada ]; platforms = platforms.linux; }; } diff --git a/pkgs/applications/window-managers/qtile/default.nix b/pkgs/applications/window-managers/qtile/default.nix index eccf5c163a8..08b3a9834b6 100644 --- a/pkgs/applications/window-managers/qtile/default.nix +++ b/pkgs/applications/window-managers/qtile/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, python37Packages, glib, cairo, pango, pkgconfig, libxcb, xcbutilcursor }: +{ lib, fetchFromGitHub, python37Packages, glib, cairo, pango, pkg-config, libxcb, xcbutilcursor }: let cairocffi-xcffib = python37Packages.cairocffi.override { withXcffib = true; @@ -31,10 +31,21 @@ python37Packages.buildPythonApplication rec { SETUPTOOLS_SCM_PRETEND_VERSION = version; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ glib libxcb cairo pango python37Packages.xcffib ]; - pythonPath = with python37Packages; [ xcffib cairocffi-xcffib setuptools setuptools_scm ]; + pythonPath = with python37Packages; [ + xcffib + cairocffi-xcffib + setuptools + setuptools-scm + python-dateutil + dbus-python + mpd2 + psutil + pyxdg + pygobject3 + ]; postInstall = '' wrapProgram $out/bin/qtile \ @@ -45,7 +56,7 @@ python37Packages.buildPythonApplication rec { doCheck = false; # Requires X server #TODO this can be worked out with the existing NixOS testing infrastructure. - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://www.qtile.org/"; license = licenses.mit; description = "A small, flexible, scriptable tiling window manager written in Python"; diff --git a/pkgs/applications/window-managers/ratpoison/default.nix b/pkgs/applications/window-managers/ratpoison/default.nix index 4c7cdf1069f..472707bf35c 100644 --- a/pkgs/applications/window-managers/ratpoison/default.nix +++ b/pkgs/applications/window-managers/ratpoison/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, perl, autoconf, automake +{ lib, stdenv, fetchurl, pkg-config, perl, autoconf, automake , libX11, xorgproto, libXt, libXpm, libXft, libXtst, libXi , libXrandr, fontconfig, freetype, readline }: @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { "--enable-history" ]; - nativeBuildInputs = [ pkgconfig autoconf automake ]; + nativeBuildInputs = [ pkg-config autoconf automake ]; buildInputs = [ perl @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { mv $out/share/ratpoison $contrib/share ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://www.nongnu.org/ratpoison/"; description = "Simple mouse-free tiling window manager"; license = licenses.gpl2Plus; diff --git a/pkgs/applications/window-managers/river/default.nix b/pkgs/applications/window-managers/river/default.nix new file mode 100644 index 00000000000..317c08c5d89 --- /dev/null +++ b/pkgs/applications/window-managers/river/default.nix @@ -0,0 +1,73 @@ +{ lib +, stdenv +, fetchFromGitHub +, zig +, wayland +, pkg-config +, scdoc +, xwayland +, wayland-protocols +, wlroots +, libxkbcommon +, pixman +, udev +, libevdev +, libinput +, libX11 +, libGL +}: + +stdenv.mkDerivation rec { + pname = "river"; + version = "unstable-2021-06-27"; + + src = fetchFromGitHub { + owner = "ifreund"; + repo = pname; + rev = "39578db1344ca298f2bb2fe2278a35108d5f2b66"; + sha256 = "sha256-DQroN+FV7sq0PyczERZgnW73YKAVvj2JJQjfzidlBI8="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ zig wayland xwayland scdoc pkg-config ]; + + buildInputs = [ + wayland-protocols + wlroots + pixman + libxkbcommon + pixman + udev + libevdev + libinput + libX11 + libGL + ]; + + dontConfigure = true; + + preBuild = '' + export HOME=$TMPDIR + ''; + + installPhase = '' + runHook preInstall + zig build -Drelease-safe -Dcpu=baseline -Dxwayland -Dman-pages --prefix $out install + runHook postInstall + ''; + + /* + Builder patch install dir into river to get default config + When installFlags is removed, river becomes half broken. + See https://github.com/ifreund/river/blob/7ffa2f4b9e7abf7d152134f555373c2b63ccfc1d/river/main.zig#L56 + */ + installFlags = [ "DESTDIR=$(out)" ]; + + meta = with lib; { + homepage = "https://github.com/ifreund/river"; + description = "A dynamic tiling wayland compositor"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ fortuneteller2k ]; + }; +} diff --git a/pkgs/applications/window-managers/sawfish/default.nix b/pkgs/applications/window-managers/sawfish/default.nix index 18c3d22f944..cb76f0c465c 100644 --- a/pkgs/applications/window-managers/sawfish/default.nix +++ b/pkgs/applications/window-managers/sawfish/default.nix @@ -1,54 +1,88 @@ -{ stdenv, fetchurl -, pkgconfig, which, autoreconfHook -, rep-gtk, pango, gdk-pixbuf -, imlib, gettext, texinfo -, libXinerama, libXrandr, libXtst, libICE, libSM +{ lib +, stdenv +, fetchurl +, autoreconfHook +, gdk-pixbuf-xlib +, gettext +, gtk2 +, imlib +, libICE +, libSM +, libXinerama +, libXrandr +, libXtst +, librep , makeWrapper +, pango +, pkg-config +, rep-gtk +, texinfo +, which }: -with stdenv.lib; - stdenv.mkDerivation rec { - pname = "sawfish"; version = "1.12.90"; - sourceName = "sawfish_${version}"; src = fetchurl { - url = "https://download.tuxfamily.org/sawfish/${sourceName}.tar.xz"; + url = "https://download.tuxfamily.org/sawfish/${pname}_${version}.tar.xz"; sha256 = "18p8srqqj9vjffg13qhspfz2gr1h4vfs10qzlv89g76r289iam31"; }; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; - buildInputs = [ which - rep-gtk pango gdk-pixbuf imlib gettext texinfo - libXinerama libXrandr libXtst libICE libSM - makeWrapper ]; + nativeBuildInputs = [ + autoreconfHook + gettext + librep + makeWrapper + pkg-config + texinfo + which + ]; + buildInputs = [ + gdk-pixbuf-xlib + gtk2 + imlib + libICE + libSM + libXinerama + libXrandr + libXtst + librep + pango + rep-gtk + ]; - patchPhase = '' + postPatch = '' sed -e 's|REP_DL_LOAD_PATH=|REP_DL_LOAD_PATH=$(REP_DL_LOAD_PATH):|g' -i Makedefs.in sed -e 's|$(repexecdir)|$(libdir)/rep|g' -i src/Makefile.in ''; + strictDeps = true; + postInstall = '' - for i in $out/lib/sawfish/sawfish-menu $out/bin/sawfish-about $out/bin/sawfish-client $out/bin/sawfish-config $out/bin/sawfish; do + for i in $out/lib/sawfish/sawfish-menu \ + $out/bin/sawfish-about \ + $out/bin/sawfish-client \ + $out/bin/sawfish-config \ + $out/bin/sawfish; do wrapProgram $i \ --prefix REP_DL_LOAD_PATH : "$out/lib/rep" \ --set REP_LOAD_PATH "$out/share/sawfish/lisp" done ''; - meta = { + meta = with lib; { + homepage = "http://sawfish.tuxfamily.org/"; description = "An extensible, Lisp-based window manager"; longDescription = '' - Sawfish is an extensible window manager using a Lisp-based scripting language. - Its policy is very minimal compared to most window managers. Its aim is simply - to manage windows in the most flexible and attractive manner possible. - All high-level WM functions are implemented in Lisp for future extensibility - or redefinition. + Sawfish is an extensible window manager using a Lisp-based scripting + language. Its policy is very minimal compared to most window managers. Its + aim is simply to manage windows in the most flexible and attractive manner + possible. All high-level WM functions are implemented in Lisp for future + extensibility or redefinition. ''; - homepage = "http://sawfish.wikia.com"; - license = licenses.gpl2; - maintainers = [ maintainers.AndersonTorres ]; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; }; } diff --git a/pkgs/applications/window-managers/smallwm/default.nix b/pkgs/applications/window-managers/smallwm/default.nix index b6d3821e8d0..9dd2a25e5cf 100644 --- a/pkgs/applications/window-managers/smallwm/default.nix +++ b/pkgs/applications/window-managers/smallwm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub +{ lib, stdenv, fetchFromGitHub , doxygen, graphviz, libX11, libXrandr }: stdenv.mkDerivation rec { @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { cp -r README.markdown doc/html doc/latex $out/share/doc/${pname}-${version} ''; - meta = with stdenv.lib;{ + meta = with lib;{ description = "A small X window manager, extended from tinywm"; homepage = "https://github.com/adamnew123456/SmallWM"; license = licenses.bsd2; diff --git a/pkgs/applications/window-managers/spectrwm/default.nix b/pkgs/applications/window-managers/spectrwm/default.nix index c3ab5589486..be2c5bc3d6e 100644 --- a/pkgs/applications/window-managers/spectrwm/default.nix +++ b/pkgs/applications/window-managers/spectrwm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, pkgconfig, xorg }: +{ lib, stdenv, fetchFromGitHub, pkg-config, xorg }: stdenv.mkDerivation { pname = "spectrwm"; @@ -11,7 +11,7 @@ stdenv.mkDerivation { sha256 = "0bf0d25yr0craksamczn2mdy6cjp27l88smihlw9bw4p6a2qhi41"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = with xorg; [ libXrandr libXcursor @@ -28,7 +28,7 @@ stdenv.mkDerivation { makeFlags = [ "PREFIX=${placeholder "out"}" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A tiling window manager"; homepage = "https://github.com/conformal/spectrwm"; maintainers = with maintainers; [ christianharke ]; diff --git a/pkgs/applications/window-managers/stalonetray/default.nix b/pkgs/applications/window-managers/stalonetray/default.nix index ad0baeb97dd..47903bb2276 100644 --- a/pkgs/applications/window-managers/stalonetray/default.nix +++ b/pkgs/applications/window-managers/stalonetray/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, libX11, xorgproto }: +{ lib, stdenv, fetchurl, libX11, xorgproto }: stdenv.mkDerivation rec { pname = "stalonetray"; @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Stand alone tray"; homepage = "http://stalonetray.sourceforge.net"; license = licenses.gpl2; diff --git a/pkgs/applications/window-managers/stumpish/default.nix b/pkgs/applications/window-managers/stumpish/default.nix index c76a9ba762e..c5c3d9db783 100644 --- a/pkgs/applications/window-managers/stumpish/default.nix +++ b/pkgs/applications/window-managers/stumpish/default.nix @@ -1,4 +1,4 @@ -{ stdenv, substituteAll, fetchFromGitHub, gnused, ncurses, xorg, rlwrap }: +{ lib, stdenv, substituteAll, fetchFromGitHub, gnused, ncurses, xorg, rlwrap }: stdenv.mkDerivation { pname = "stumpish"; @@ -33,7 +33,7 @@ stdenv.mkDerivation { cp util/stumpish/stumpish $out/bin ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/stumpwm/stumpwm-contrib"; description = "STUMPwm Interactive SHell"; license = licenses.gpl2; diff --git a/pkgs/applications/window-managers/stumpwm/default.nix b/pkgs/applications/window-managers/stumpwm/default.nix deleted file mode 100644 index b059423c23c..00000000000 --- a/pkgs/applications/window-managers/stumpwm/default.nix +++ /dev/null @@ -1,103 +0,0 @@ -{ stdenv, fetchgit, autoconf, sbcl, lispPackages, xdpyinfo, texinfo4 -, makeWrapper , rlwrap, gnused, gnugrep, coreutils, xprop -, extraModulePaths ? [] -, version }: - -let - contrib = (fetchgit { - url = "https://github.com/stumpwm/stumpwm-contrib.git"; - rev = "9bebe3622b2b6c31a6bada9055ef3862fa79b86f"; - sha256 = "1ml6mjk2fsfv4sf65fdbji3q5x0qiq99g1k8w7a99gsl2i8h60gc"; - }); - versionSpec = { - latest = { - name = "1.0.0"; - rev = "refs/tags/1.0.0"; - sha256 = "16r0lwhxl8g71masmfbjr7s7m7fah4ii4smi1g8zpbpiqjz48ryb"; - patches = []; - }; - "0.9.9" = { - name = "0.9.9"; - rev = "refs/tags/0.9.9"; - sha256 = "0hmvbdk2yr5wrkiwn9dfzf65s4xc2qifj0sn6w2mghzp96cph79k"; - patches = [ ./fix-module-path.patch ]; - }; - git = { - name = "git-20170203"; - rev = "d20f24e58ab62afceae2afb6262ffef3cc318b97"; - sha256 = "1gi29ds1x6dq7lz8lamnhcvcrr3cvvrg5yappfkggyhyvib1ii70"; - patches = []; - }; - }.${version}; -in -stdenv.mkDerivation { - name = "stumpwm-${versionSpec.name}"; - - src = fetchgit { - url = "https://github.com/stumpwm/stumpwm"; - rev = versionSpec.rev; - sha256 = versionSpec.sha256; - }; - - # NOTE: The patch needs an update for the next release. - # `(stumpwm:set-module-dir "@MODULE_DIR@")' needs to be in it. - patches = versionSpec.patches; - - buildInputs = [ - texinfo4 makeWrapper autoconf - sbcl - lispPackages.clx - lispPackages.cl-ppcre - lispPackages.alexandria - xdpyinfo - ]; - - - # Stripping destroys the generated SBCL image - dontStrip = true; - - configurePhase = '' - ./autogen.sh - ./configure --prefix=$out --with-module-dir=$out/share/stumpwm/modules - ''; - - preBuild = '' - cp -r --no-preserve=mode ${contrib} modules - substituteInPlace head.lisp \ - --replace 'run-shell-command "xdpyinfo' 'run-shell-command "${xdpyinfo}/bin/xdpyinfo' - ''; - - installPhase = '' - mkdir -pv $out/bin - make install - - mkdir -p $out/share/stumpwm/modules - cp -r modules/* $out/share/stumpwm/modules/ - for d in ${stdenv.lib.concatStringsSep " " extraModulePaths}; do - cp -r --no-preserve=mode "$d" $out/share/stumpwm/modules/ - done - - # Copy stumpish; - cp $out/share/stumpwm/modules/util/stumpish/stumpish $out/bin/ - chmod +x $out/bin/stumpish - wrapProgram $out/bin/stumpish \ - --prefix PATH ":" "${stdenv.lib.makeBinPath [ rlwrap gnused gnugrep coreutils xprop ]}" - - # Paths in the compressed image $out/bin/stumpwm are not - # recognized by Nix. Add explicit reference here. - mkdir $out/nix-support - echo ${xdpyinfo} > $out/nix-support/xdpyinfo - ''; - - passthru = { - inherit sbcl lispPackages contrib; - }; - - meta = with stdenv.lib; { - description = "A tiling window manager for X11"; - homepage = "https://github.com/stumpwm/"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - broken = true; # 2018-04-11 - }; -} diff --git a/pkgs/applications/window-managers/stumpwm/fix-module-path.patch b/pkgs/applications/window-managers/stumpwm/fix-module-path.patch deleted file mode 100644 index 79bfaad3dec..00000000000 --- a/pkgs/applications/window-managers/stumpwm/fix-module-path.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/make-image.lisp.in b/make-image.lisp.in -index 121e9d6..2210242 100644 ---- a/make-image.lisp.in -+++ b/make-image.lisp.in -@@ -2,7 +2,10 @@ - - (load "load-stumpwm.lisp") - --#-ecl (stumpwm:set-module-dir "@CONTRIB_DIR@") -+(setf asdf::*immutable-systems* -+ (uiop:list-to-hash-set (asdf:already-loaded-systems))) -+ -+#-ecl (stumpwm:set-module-dir "@MODULE_DIR@") - - #+sbcl - (sb-ext:save-lisp-and-die "stumpwm" :toplevel (lambda () diff --git a/pkgs/applications/window-managers/sway/bg.nix b/pkgs/applications/window-managers/sway/bg.nix index 86301492c46..1d5dea76b37 100644 --- a/pkgs/applications/window-managers/sway/bg.nix +++ b/pkgs/applications/window-managers/sway/bg.nix @@ -1,27 +1,28 @@ -{ stdenv, fetchFromGitHub -, meson, ninja, pkgconfig, scdoc +{ lib, stdenv, fetchFromGitHub +, meson, ninja, pkg-config, scdoc , wayland, wayland-protocols, cairo, gdk-pixbuf +, wayland-scanner }: stdenv.mkDerivation rec { pname = "swaybg"; - version = "1.0"; + version = "1.1"; src = fetchFromGitHub { owner = "swaywm"; repo = "swaybg"; - rev = version; - sha256 = "1lmqz5bmig90gq2m7lwf02d2g7z4hzf8fhqz78c8vk92c6p4xwbc"; + rev = "v${version}"; + sha256 = "17508q9wsw6c1lsxlcbxj74z2naqhwi5c7lkbq24m4lk8qmy0576"; }; - nativeBuildInputs = [ meson ninja pkgconfig scdoc ]; + nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ]; buildInputs = [ wayland wayland-protocols cairo gdk-pixbuf ]; mesonFlags = [ "-Dgdk-pixbuf=enabled" "-Dman-pages=enabled" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Wallpaper tool for Wayland compositors"; longDescription = '' A wallpaper utility for Wayland compositors, that is compatible with any diff --git a/pkgs/applications/window-managers/sway/contrib.nix b/pkgs/applications/window-managers/sway/contrib.nix index fd44f4a5be5..caf34e543b7 100644 --- a/pkgs/applications/window-managers/sway/contrib.nix +++ b/pkgs/applications/window-managers/sway/contrib.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib, stdenv , fetchurl , coreutils @@ -34,7 +34,7 @@ grimshot = stdenv.mkDerivation rec { install -Dm 0755 contrib/grimshot $out/bin/grimshot wrapProgram $out/bin/grimshot --set PATH \ - "${stdenv.lib.makeBinPath [ + "${lib.makeBinPath [ sway-unwrapped wl-clipboard coreutils @@ -55,7 +55,7 @@ grimshot = stdenv.mkDerivation rec { fi ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A helper for screenshots within sway"; homepage = "https://github.com/swaywm/sway/tree/master/contrib"; license = licenses.mit; diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix index da58d844ee8..92de633f0fa 100644 --- a/pkgs/applications/window-managers/sway/default.nix +++ b/pkgs/applications/window-managers/sway/default.nix @@ -1,45 +1,56 @@ -{ stdenv, fetchFromGitHub, makeWrapper -, meson, ninja, pkg-config, wayland, scdoc -, libxkbcommon, pcre, json_c, dbus, libevdev +{ lib, stdenv, fetchFromGitHub, substituteAll, swaybg +, meson, ninja, pkg-config, wayland-scanner, scdoc +, wayland, libxkbcommon, pcre, json_c, dbus, libevdev , pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg -, wlroots, wayland-protocols +, wlroots, wayland-protocols, libdrm +, nixosTests +# Used by the NixOS module: +, isNixOS ? false }: stdenv.mkDerivation rec { pname = "sway-unwrapped"; - version = "1.5"; + version = "1.6.1"; src = fetchFromGitHub { owner = "swaywm"; repo = "sway"; rev = version; - sha256 = "0r3b7h778l9i20z3him9i2qsaynpn9y78hzfgv3cqi8fyry2c4f9"; + sha256 = "0j4sdbsrlvky1agacc0pcz9bwmaxjmrapjnzscbd2i0cria2fc5j"; }; patches = [ ./sway-config-no-nix-store-references.patch ./load-configuration-from-etc.patch + + (substituteAll { + src = ./fix-paths.patch; + inherit swaybg; + }) ]; - postPatch = '' - substituteInPlace meson.build --replace "v1.5" "1.5" + postPatch = lib.optionalString isNixOS '' + echo -e '\ninclude /etc/sway/config.d/*' >> config.in ''; nativeBuildInputs = [ - meson ninja pkg-config wayland scdoc + meson ninja pkg-config wayland-scanner scdoc ]; buildInputs = [ wayland libxkbcommon pcre json_c dbus libevdev pango cairo libinput libcap pam gdk-pixbuf librsvg - wlroots wayland-protocols + wlroots wayland-protocols libdrm ]; mesonFlags = [ "-Ddefault-wallpaper=false" + "-Dsd-bus-provider=libsystemd" ]; - meta = with stdenv.lib; { + passthru.tests.basic = nixosTests.sway; + + meta = with lib; { description = "An i3-compatible tiling Wayland compositor"; longDescription = '' Sway is a tiling Wayland compositor and a drop-in replacement for the i3 diff --git a/pkgs/applications/window-managers/sway/fix-paths.patch b/pkgs/applications/window-managers/sway/fix-paths.patch new file mode 100644 index 00000000000..c52f65b146b --- /dev/null +++ b/pkgs/applications/window-managers/sway/fix-paths.patch @@ -0,0 +1,11 @@ +--- a/sway/config.c ++++ b/sway/config.c +@@ -276,7 +276,7 @@ + + if (!(config->active_bar_modifiers = create_list())) goto cleanup; + +- if (!(config->swaybg_command = strdup("swaybg"))) goto cleanup; ++ if (!(config->swaybg_command = strdup("@swaybg@/bin/swaybg"))) goto cleanup; + + if (!(config->config_chain = create_list())) goto cleanup; + config->current_config_path = NULL; diff --git a/pkgs/applications/window-managers/sway/idle.nix b/pkgs/applications/window-managers/sway/idle.nix index 486ab79598d..8c1ae0b3592 100644 --- a/pkgs/applications/window-managers/sway/idle.nix +++ b/pkgs/applications/window-managers/sway/idle.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchFromGitHub -, meson, ninja, pkgconfig, scdoc +{ lib, stdenv, fetchFromGitHub +, meson, ninja, pkg-config, scdoc, wayland-scanner , wayland, wayland-protocols, systemd }: @@ -19,12 +19,12 @@ stdenv.mkDerivation rec { --replace "version: '1.5'" "version: '${version}'" ''; - nativeBuildInputs = [ meson ninja pkgconfig scdoc ]; + nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ]; buildInputs = [ wayland wayland-protocols systemd ]; mesonFlags = [ "-Dman-pages=enabled" "-Dlogind=enabled" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Idle management daemon for Wayland"; longDescription = '' Sway's idle management daemon. It is compatible with any Wayland diff --git a/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch b/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch index 26a3d40d66c..46a170abc04 100644 --- a/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch +++ b/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch @@ -1,22 +1,26 @@ -From 26f9c65ef037892977a824f0d7d7111066856b53 Mon Sep 17 00:00:00 2001 -From: Michael Weiss <dev.primeos@gmail.com> -Date: Sat, 27 Apr 2019 14:26:16 +0200 +From 92283df3acbffa5c1bb21f23cdd686113d905114 Mon Sep 17 00:00:00 2001 +From: Patrick Hilhorst <git@hilhorst.be> +Date: Wed, 31 Mar 2021 21:14:13 +0200 Subject: [PATCH] Load configs from /etc but fallback to /nix/store This change will load all configuration files from /etc, to make it easy to override them, but fallback to /nix/store/.../etc/sway/config to make Sway work out-of-the-box with the default configuration on non NixOS systems. + +Original patch by Michael Weiss, updated for Sway 1.6 by Patrick Hilhorst + +Co-authored-by: Michael Weiss <dev.primeos@gmail.com> --- meson.build | 3 ++- - sway/config.c | 1 + - 2 files changed, 3 insertions(+), 1 deletion(-) + sway/config.c | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build -index 02b5d606..c03a9c0f 100644 +index b7a29660..8ae8ceb3 100644 --- a/meson.build +++ b/meson.build -@@ -129,7 +129,8 @@ if scdoc.found() +@@ -164,7 +164,8 @@ if scdoc.found() endforeach endif @@ -25,18 +29,20 @@ index 02b5d606..c03a9c0f 100644 +add_project_arguments('-DNIX_SYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c') version = '"@0@"'.format(meson.project_version()) - if git.found() + git = find_program('git', native: true, required: false) diff --git a/sway/config.c b/sway/config.c -index 4cd21bbc..dd855753 100644 +index 76b9ec08..fb5b51aa 100644 --- a/sway/config.c +++ b/sway/config.c -@@ -317,6 +317,7 @@ static char *get_config_path(void) { - "$XDG_CONFIG_HOME/i3/config", - SYSCONFDIR "/sway/config", - SYSCONFDIR "/i3/config", -+ NIX_SYSCONFDIR "/sway/config", +@@ -374,7 +374,8 @@ static char *get_config_path(void) { + { .prefix = home, .config_folder = ".i3"}, + { .prefix = config_home, .config_folder = "i3"}, + { .prefix = SYSCONFDIR, .config_folder = "sway"}, +- { .prefix = SYSCONFDIR, .config_folder = "i3"} ++ { .prefix = SYSCONFDIR, .config_folder = "i3"}, ++ { .prefix = NIX_SYSCONFDIR, .config_folder = "sway"}, }; - char *config_home = getenv("XDG_CONFIG_HOME"); + size_t num_config_paths = sizeof(config_paths)/sizeof(config_paths[0]); -- -2.19.2 +2.30.1 diff --git a/pkgs/applications/window-managers/sway/lock-effects.nix b/pkgs/applications/window-managers/sway/lock-effects.nix index a6c8d5cd1c3..25714f1f8a9 100644 --- a/pkgs/applications/window-managers/sway/lock-effects.nix +++ b/pkgs/applications/window-managers/sway/lock-effects.nix @@ -1,32 +1,43 @@ -{ stdenv, fetchFromGitHub, - meson, ninja, pkgconfig, scdoc, - wayland, wayland-protocols, libxkbcommon, - cairo, gdk-pixbuf, pam +{ lib +, stdenv +, fetchFromGitHub +, meson +, ninja +, pkg-config +, scdoc +, wayland +, wayland-protocols +, libxkbcommon +, cairo +, gdk-pixbuf +, pam }: stdenv.mkDerivation rec { pname = "swaylock-effects"; - version = "v1.6-1"; + version = "1.6-3"; src = fetchFromGitHub { owner = "mortie"; repo = "swaylock-effects"; - rev = version; - sha256 = "044fc4makjx8v29fkx5xlil6vr1v4r0k6c8741pl67gzvlm4cx3i"; + rev = "v${version}"; + sha256 = "sha256-71IX0fC4xCPP6pK63KtvDMb3KoP1rw/Iz3S7BgiLSpg="; }; postPatch = '' sed -iE "s/version: '1\.3',/version: '${version}',/" meson.build ''; - nativeBuildInputs = [ meson ninja pkgconfig scdoc ]; + nativeBuildInputs = [ meson ninja pkg-config scdoc ]; buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ]; mesonFlags = [ - "-Dpam=enabled" "-Dgdk-pixbuf=enabled" "-Dman-pages=enabled" + "-Dpam=enabled" + "-Dgdk-pixbuf=enabled" + "-Dman-pages=enabled" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Screen locker for Wayland"; longDescription = '' Swaylock, with fancy effects diff --git a/pkgs/applications/window-managers/sway/lock-fancy.nix b/pkgs/applications/window-managers/sway/lock-fancy.nix index 338d626d990..bee1f925f60 100644 --- a/pkgs/applications/window-managers/sway/lock-fancy.nix +++ b/pkgs/applications/window-managers/sway/lock-fancy.nix @@ -1,9 +1,9 @@ -{ stdenv, fetchFromGitHub, coreutils, grim, gawk, swaylock +{ lib, stdenv, fetchFromGitHub, coreutils, grim, gawk, swaylock , imagemagick, getopt, fontconfig, makeWrapper }: let - depsPath = stdenv.lib.makeBinPath [ + depsPath = lib.makeBinPath [ coreutils grim gawk @@ -37,7 +37,7 @@ in stdenv.mkDerivation rec { --prefix PATH : "${depsPath}" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "This is an swaylock bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text"; homepage = "https://github.com/Big-B/swaylock-fancy"; license = licenses.mit; diff --git a/pkgs/applications/window-managers/sway/lock.nix b/pkgs/applications/window-managers/sway/lock.nix index 7cbba5e981b..6dccedad827 100644 --- a/pkgs/applications/window-managers/sway/lock.nix +++ b/pkgs/applications/window-managers/sway/lock.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchFromGitHub -, meson, ninja, pkgconfig, scdoc +{ lib, stdenv, fetchFromGitHub +, meson, ninja, pkg-config, scdoc, wayland-scanner , wayland, wayland-protocols, libxkbcommon, cairo, gdk-pixbuf, pam }: @@ -19,14 +19,14 @@ stdenv.mkDerivation rec { --replace "version: '1.4'" "version: '${version}'" ''; - nativeBuildInputs = [ meson ninja pkgconfig scdoc ]; + nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ]; buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ]; mesonFlags = [ "-Dpam=enabled" "-Dgdk-pixbuf=enabled" "-Dman-pages=enabled" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Screen locker for Wayland"; longDescription = '' swaylock is a screen locking utility for Wayland compositors. diff --git a/pkgs/applications/window-managers/sway/wrapper.nix b/pkgs/applications/window-managers/sway/wrapper.nix index fe78e1a9ff9..07459295d75 100644 --- a/pkgs/applications/window-managers/sway/wrapper.nix +++ b/pkgs/applications/window-managers/sway/wrapper.nix @@ -1,9 +1,11 @@ -{ lib, stdenv -, sway-unwrapped, swaybg +{ lib +, sway-unwrapped , makeWrapper, symlinkJoin, writeShellScriptBin , withBaseWrapper ? true, extraSessionCommands ? "", dbus , withGtkWrapper ? false, wrapGAppsHook, gdk-pixbuf, glib, gtk3 , extraOptions ? [] # E.g.: [ "--verbose" ] +# Used by the NixOS module: +, isNixOS ? false }: assert extraSessionCommands != "" -> withBaseWrapper; @@ -11,24 +13,26 @@ assert extraSessionCommands != "" -> withBaseWrapper; with lib; let + sway = sway-unwrapped.override { inherit isNixOS; }; baseWrapper = writeShellScriptBin "sway" '' set -o errexit if [ ! "$_SWAY_WRAPPER_ALREADY_EXECUTED" ]; then + export XDG_CURRENT_DESKTOP=sway ${extraSessionCommands} export _SWAY_WRAPPER_ALREADY_EXECUTED=1 fi if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then export DBUS_SESSION_BUS_ADDRESS - exec ${sway-unwrapped}/bin/sway "$@" + exec ${sway}/bin/sway "$@" else - exec ${dbus}/bin/dbus-run-session ${sway-unwrapped}/bin/sway "$@" + exec ${dbus}/bin/dbus-run-session ${sway}/bin/sway "$@" fi ''; in symlinkJoin { - name = "sway-${sway-unwrapped.version}"; + name = "sway-${sway.version}"; paths = (optional withBaseWrapper baseWrapper) - ++ [ sway-unwrapped ]; + ++ [ sway ]; nativeBuildInputs = [ makeWrapper ] ++ (optional withGtkWrapper wrapGAppsHook); @@ -42,12 +46,11 @@ in symlinkJoin { ${optionalString withGtkWrapper "gappsWrapperArgsHook"} wrapProgram $out/bin/sway \ - --prefix PATH : "${swaybg}/bin" \ ${optionalString withGtkWrapper ''"''${gappsWrapperArgs[@]}"''} \ ${optionalString (extraOptions != []) "${concatMapStrings (x: " --add-flags " + x) extraOptions}"} ''; passthru.providedSessions = [ "sway" ]; - inherit (sway-unwrapped) meta; + inherit (sway) meta; } diff --git a/pkgs/applications/window-managers/sway/wsr.nix b/pkgs/applications/window-managers/sway/wsr.nix new file mode 100644 index 00000000000..64d9fd7d7db --- /dev/null +++ b/pkgs/applications/window-managers/sway/wsr.nix @@ -0,0 +1,33 @@ +{ lib, fetchFromGitHub, rustPlatform, libxcb, python3 }: + +rustPlatform.buildRustPackage rec { + pname = "swaywsr"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "pedroscaff"; + repo = pname; + rev = "6c4671c702f647395d983aaf607286db1c692db6"; + sha256 = "0bmpbhyvgnbi5baj6v0wdxpdh9cnlzvcc44vh3vihmzsp6i5q05a"; + }; + + cargoSha256 = "1pmkyw60ggn5filb47nyf97g1arrw7nfa4yjndnx35zw12mkj61d"; + + nativeBuildInputs = [ python3 ]; + buildInputs = [ libxcb ]; + + # has not tests + doCheck = false; + + meta = with lib; { + description = "Automatically change sway workspace names based on their contents"; + longDescription = '' + Automatically sets the workspace names to match the windows on the workspace. + The chosen name for a workspace is a composite of the app_id or WM_CLASS X11 + window property for each window in a workspace. + ''; + homepage = "https://github.com/pedroscaff/swaywsr"; + license = licenses.mit; + maintainers = [ maintainers.sebbadk ]; + }; +} diff --git a/pkgs/applications/window-managers/sxhkd/default.nix b/pkgs/applications/window-managers/sxhkd/default.nix index 2404129b165..427f4c92f7b 100644 --- a/pkgs/applications/window-managers/sxhkd/default.nix +++ b/pkgs/applications/window-managers/sxhkd/default.nix @@ -1,23 +1,23 @@ -{ stdenv, fetchFromGitHub, asciidoc, libxcb, xcbutil, xcbutilkeysyms +{ lib, stdenv, fetchFromGitHub, asciidoc, libxcb, xcbutil, xcbutilkeysyms , xcbutilwm }: stdenv.mkDerivation rec { pname = "sxhkd"; - version = "0.6.1"; + version = "0.6.2"; src = fetchFromGitHub { owner = "baskerville"; repo = "sxhkd"; rev = version; - sha256 = "0j7bl2l06r0arrjzpz7al9j6cwzc730knbsijp7ixzz96pq7xa2h"; + sha256 = "1winwzdy9yxvxnrv8gqpigl9y0c2px27mnms62bdilp4x6llrs9r"; }; buildInputs = [ asciidoc libxcb xcbutil xcbutilkeysyms xcbutilwm ]; makeFlags = [ "PREFIX=$(out)" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Simple X hotkey daemon"; homepage = "https://github.com/baskerville/sxhkd"; license = licenses.bsd2; diff --git a/pkgs/applications/window-managers/tabbed/default.nix b/pkgs/applications/window-managers/tabbed/default.nix index f0a427e6839..2eeae7f4da5 100644 --- a/pkgs/applications/window-managers/tabbed/default.nix +++ b/pkgs/applications/window-managers/tabbed/default.nix @@ -1,6 +1,6 @@ -{stdenv, fetchgit, xorgproto, libX11, libXft, customConfig ? null, patches ? [] }: +{lib, stdenv, fetchgit, xorgproto, libX11, libXft, customConfig ? null, patches ? [] }: -with stdenv.lib; +with lib; stdenv.mkDerivation { name = "tabbed-20180310"; @@ -13,7 +13,7 @@ stdenv.mkDerivation { inherit patches; - postPatch = stdenv.lib.optionalString (customConfig != null) '' + postPatch = lib.optionalString (customConfig != null) '' cp ${builtins.toFile "config.h" customConfig} ./config.h ''; diff --git a/pkgs/applications/window-managers/taffybar/default.nix b/pkgs/applications/window-managers/taffybar/default.nix index 681a5baec82..7d9e5f9c1cb 100644 --- a/pkgs/applications/window-managers/taffybar/default.nix +++ b/pkgs/applications/window-managers/taffybar/default.nix @@ -1,7 +1,9 @@ -{ stdenv, ghcWithPackages, makeWrapper, packages ? (x: []) }: +{ lib, stdenv, ghcWithPackages, taffybar, makeWrapper, packages ? (x: []) }: let -taffybarEnv = ghcWithPackages (self: [ self.taffybar ] ++ packages self); + taffybarEnv = ghcWithPackages (self: [ + self.taffybar + ] ++ packages self); in stdenv.mkDerivation { name = "taffybar-with-packages-${taffybarEnv.version}"; @@ -13,8 +15,14 @@ in stdenv.mkDerivation { --set NIX_GHC "${taffybarEnv}/bin/ghc" ''; - meta = { - platforms = stdenv.lib.platforms.unix; - license = stdenv.lib.licenses.bsd3; - }; + # Trivial derivation + preferLocalBuild = true; + allowSubstitutes = false; + + # For hacking purposes + passthru.env = taffybarEnv; + buildInputs = [ taffybarEnv ]; + shellHook = "eval $(egrep ^export ${taffybarEnv}/bin/ghc)"; + + inherit (taffybar) meta; } diff --git a/pkgs/applications/window-managers/tinywl/default.nix b/pkgs/applications/window-managers/tinywl/default.nix index 4dc50fb8ed4..965ec67b6e9 100644 --- a/pkgs/applications/window-managers/tinywl/default.nix +++ b/pkgs/applications/window-managers/tinywl/default.nix @@ -1,5 +1,5 @@ -{ lib, stdenv, wlroots, pkg-config -, libGL, libxkbcommon, pixman, udev, wayland, wayland-protocols +{ lib, stdenv, wlroots, pkg-config, wayland-scanner +, libxkbcommon, pixman, udev, wayland, wayland-protocols }: stdenv.mkDerivation { @@ -8,10 +8,8 @@ stdenv.mkDerivation { sourceRoot = "source/tinywl"; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - libGL libxkbcommon pixman udev wayland wayland-protocols wlroots - ]; + nativeBuildInputs = [ pkg-config wayland-scanner ]; + buildInputs = [ libxkbcommon pixman udev wayland wayland-protocols wlroots ]; installPhase = '' runHook preInstall @@ -22,7 +20,7 @@ stdenv.mkDerivation { meta = with lib; { homepage = "https://github.com/swaywm/wlroots/tree/master/tinywl"; - description = ''"minimum viable product" Wayland compositor based on wlroots.''; + description = ''A "minimum viable product" Wayland compositor based on wlroots''; maintainers = with maintainers; [ qyliss ]; license = licenses.cc0; inherit (wlroots.meta) platforms; diff --git a/pkgs/applications/window-managers/tinywm/default.nix b/pkgs/applications/window-managers/tinywm/default.nix index d6ff4ad51a2..8fa6a84b721 100644 --- a/pkgs/applications/window-managers/tinywm/default.nix +++ b/pkgs/applications/window-managers/tinywm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub +{ lib, stdenv, fetchFromGitHub , libX11 }: stdenv.mkDerivation rec { @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { install -m644 annotated.c README -t $out/share/doc/${pname}-${version} ''; - meta = with stdenv.lib;{ + meta = with lib;{ description = "A tiny window manger for X11"; longDescription = '' diff --git a/pkgs/applications/window-managers/trayer/default.nix b/pkgs/applications/window-managers/trayer/default.nix index 5c3d8710e35..c210b39fe18 100644 --- a/pkgs/applications/window-managers/trayer/default.nix +++ b/pkgs/applications/window-managers/trayer/default.nix @@ -1,9 +1,9 @@ -{ stdenv, fetchFromGitHub, pkgconfig, gdk-pixbuf, gtk2 }: +{ lib, stdenv, fetchFromGitHub, pkg-config, gdk-pixbuf, gtk2 }: stdenv.mkDerivation rec { name = "trayer-1.1.8"; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ gdk-pixbuf gtk2 ]; src = fetchFromGitHub { @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=$(out)" ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/sargon/trayer-srg"; license = licenses.mit; description = "A lightweight GTK2-based systray for UNIX desktop"; diff --git a/pkgs/applications/window-managers/vwm/default.nix b/pkgs/applications/window-managers/vwm/default.nix index 8eb42bb9a97..9eea18f79d6 100644 --- a/pkgs/applications/window-managers/vwm/default.nix +++ b/pkgs/applications/window-managers/vwm/default.nix @@ -1,9 +1,9 @@ -{stdenv, fetchurl, ncurses, pkgconfig, glib, libviper, libpseudo, gpm, +{lib, stdenv, fetchurl, ncurses, pkg-config, glib, libviper, libpseudo, gpm, libvterm}: stdenv.mkDerivation rec { name = "vwm-2.1.3"; - + src = fetchurl { url = "mirror://sourceforge/vwm/${name}.tar.gz"; sha256 = "1r5wiqyfqwnyx7dfihixlnavbvg8rni36i4gq169aisjcg7laxaf"; @@ -19,11 +19,11 @@ stdenv.mkDerivation rec { preInstall = '' mkdir -p $out/bin $out/include ''; - - nativeBuildInputs = [ pkgconfig ]; + + nativeBuildInputs = [ pkg-config ]; buildInputs = [ ncurses glib libviper libpseudo gpm libvterm ]; - - meta = with stdenv.lib; { + + meta = with lib; { homepage = "http://vwm.sourceforge.net/"; description = "Dynamic window manager for the console"; license = licenses.gpl2Plus; diff --git a/pkgs/applications/window-managers/waybox/default.nix b/pkgs/applications/window-managers/waybox/default.nix new file mode 100644 index 00000000000..ad3028b4ac0 --- /dev/null +++ b/pkgs/applications/window-managers/waybox/default.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, meson +, ninja +, libxkbcommon +, wayland +, wayland-protocols +, wlroots +, pixman +, udev +, libGL +, mesa +}: + +stdenv.mkDerivation rec { + pname = "waybox"; + version = "unstable-2021-04-07"; + + src = fetchFromGitHub { + owner = "wizbright"; + repo = pname; + rev = "309ccd2faf08079e698104b19eff32b3a255b947"; + hash = "sha256-G32cGmOwmnuVlj1hCq9NRti6plJbkAktfzM4aYzQ+k8="; + }; + + nativeBuildInputs = [ pkg-config meson ninja ]; + buildInputs = [ + libxkbcommon + wayland + wayland-protocols + wlroots + pixman + udev + libGL + mesa # for libEGL + ]; + + meta = with lib; { + homepage = "https://github.com/wizbright/waybox"; + description = "An openbox clone on Wayland"; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/wayfire/applications.nix b/pkgs/applications/window-managers/wayfire/applications.nix index 6c22227c0c5..a77d3f8bf5d 100644 --- a/pkgs/applications/window-managers/wayfire/applications.nix +++ b/pkgs/applications/window-managers/wayfire/applications.nix @@ -1,23 +1,20 @@ -{ newScope, wayfirePlugins }: +{ lib, newScope, wayfirePlugins }: -let - self = with self; { - inherit wayfirePlugins; +lib.makeExtensible (self: with self; { + inherit wayfirePlugins; - callPackage = newScope self; + callPackage = newScope self; - wayfire = callPackage ./. { }; + wayfire = callPackage ./. { }; - wcm = callPackage ./wcm.nix { - inherit (wayfirePlugins) wf-shell; - }; + wcm = callPackage ./wcm.nix { + inherit (wayfirePlugins) wf-shell; + }; - wrapWayfireApplication = callPackage ./wrapper.nix { }; + wrapWayfireApplication = callPackage ./wrapper.nix { }; - withPlugins = selector: self // { - wayfire = wrapWayfireApplication wayfire selector; - wcm = wrapWayfireApplication wcm selector; - }; + withPlugins = selector: self // { + wayfire = wrapWayfireApplication wayfire selector; + wcm = wrapWayfireApplication wcm selector; }; -in -self +}) diff --git a/pkgs/applications/window-managers/wayfire/default.nix b/pkgs/applications/window-managers/wayfire/default.nix index 8014be48649..120ff6cf697 100644 --- a/pkgs/applications/window-managers/wayfire/default.nix +++ b/pkgs/applications/window-managers/wayfire/default.nix @@ -1,29 +1,31 @@ -{ stdenv, lib, fetchurl, meson, ninja, pkg-config -, cairo, libdrm, libexecinfo, libinput, libjpeg, libxkbcommon, wayland -, wayland-protocols, wf-config, wlroots +{ lib, stdenv, fetchurl, cmake, meson, ninja, pkg-config +, cairo, doctest, libdrm, libexecinfo, libinput, libjpeg, libxkbcommon, wayland +, wayland-protocols, wf-config, wlroots, mesa }: stdenv.mkDerivation rec { pname = "wayfire"; - version = "0.5.0"; + version = "0.7.2"; src = fetchurl { - url = "https://github.com/WayfireWM/wayfire/releases/download/${version}/wayfire-${version}.tar.xz"; - sha256 = "1zispx756b3jvmiwli2vp92vkfyzv3zdkffw0bmzgryh7balsq58"; + url = "https://github.com/WayfireWM/wayfire/releases/download/v${version}/wayfire-${version}.tar.xz"; + sha256 = "1gasijjyfl00zpy6j9hh6qpwv0sw42h9irycbnm693j3vw9mcy66"; }; - strictDeps = true; - nativeBuildInputs = [ meson ninja pkg-config wayland ]; + nativeBuildInputs = [ cmake meson ninja pkg-config wayland ]; buildInputs = [ - cairo libdrm libexecinfo libinput libjpeg libxkbcommon wayland - wayland-protocols wf-config wlroots + cairo doctest libdrm libexecinfo libinput libjpeg libxkbcommon wayland + wayland-protocols wf-config wlroots mesa ]; + # CMake is just used for finding doctest. + dontUseCmakeConfigure = true; + mesonFlags = [ "--sysconfdir" "/etc" ]; meta = with lib; { homepage = "https://wayfire.org/"; - description = "3D wayland compositor"; + description = "3D Wayland compositor"; license = licenses.mit; maintainers = with maintainers; [ qyliss wucke13 ]; platforms = platforms.unix; diff --git a/pkgs/applications/window-managers/wayfire/wcm.nix b/pkgs/applications/window-managers/wayfire/wcm.nix index cb0946cd88a..9d524019ad5 100644 --- a/pkgs/applications/window-managers/wayfire/wcm.nix +++ b/pkgs/applications/window-managers/wayfire/wcm.nix @@ -1,22 +1,20 @@ -{ stdenv, lib, fetchFromGitHub, meson, ninja, pkg-config, wayland, wrapGAppsHook -, gnome3, libevdev, libxml2, wayfire, wayland-protocols, wf-config, wf-shell +{ stdenv, lib, fetchurl, meson, ninja, pkg-config, wayland, wrapGAppsHook +, gtk3, libevdev, libxml2, wayfire, wayland-protocols, wf-config, wf-shell }: stdenv.mkDerivation rec { pname = "wcm"; - version = "0.5.0"; + version = "0.7.0"; - src = fetchFromGitHub { - owner = "WayfireWM"; - repo = "wcm"; - rev = "v${version}"; - sha256 = "1b22gymqfn0c49nf39676q5bj25rxab874iayiq31cmn14r30dyg"; + src = fetchurl { + url = "https://github.com/WayfireWM/wcm/releases/download/v${version}/wcm-${version}.tar.xz"; + sha256 = "19za1fnlf5hz4n4mxxwqcr5yxp6mga9ah539ifnjnqrgvj19cjlj"; }; nativeBuildInputs = [ meson ninja pkg-config wayland wrapGAppsHook ]; buildInputs = [ - gnome3.gtk libevdev libxml2 wayfire wayland wayland-protocols wf-config - wf-shell + gtk3 libevdev libxml2 wayfire wayland + wayland-protocols wf-config wf-shell ]; meta = with lib; { diff --git a/pkgs/applications/window-managers/wayfire/wf-config.nix b/pkgs/applications/window-managers/wayfire/wf-config.nix index 8962ab096ab..d1e653cc9e0 100644 --- a/pkgs/applications/window-managers/wayfire/wf-config.nix +++ b/pkgs/applications/window-managers/wayfire/wf-config.nix @@ -1,18 +1,25 @@ -{ stdenv, lib, fetchurl, meson, ninja, pkg-config, glm, libevdev, libxml2 }: +{ stdenv, lib, fetchurl, cmake, meson, ninja, pkg-config +, doctest, glm, libevdev, libxml2 +}: stdenv.mkDerivation rec { pname = "wf-config"; - version = "0.5.0"; + version = "0.7.1"; src = fetchurl { - url = "https://github.com/WayfireWM/wf-config/releases/download/0.5.0/wf-config-0.5.0.tar.xz"; - sha256 = "0xbvfy31pl6mj0nac921gqksyh6jb8ccap30p94lw6r6fb17wz57"; + url = "https://github.com/WayfireWM/wf-config/releases/download/v${version}/wf-config-${version}.tar.xz"; + sha256 = "1w75yxhz0nvw4mlv38sxp8k8wb5h99b51x3fdvizc3yaxanqa8kx"; }; - nativeBuildInputs = [ meson ninja pkg-config ]; - buildInputs = [ libevdev libxml2 ]; + nativeBuildInputs = [ cmake meson ninja pkg-config ]; + buildInputs = [ doctest libevdev libxml2 ]; propagatedBuildInputs = [ glm ]; + # CMake is just used for finding doctest. + dontUseCmakeConfigure = true; + + doCheck = true; + meta = with lib; { homepage = "https://github.com/WayfireWM/wf-config"; description = "Library for managing configuration files, written for Wayfire"; diff --git a/pkgs/applications/window-managers/wayfire/wf-shell.nix b/pkgs/applications/window-managers/wayfire/wf-shell.nix index 2087402fa70..bd9bcb30d10 100644 --- a/pkgs/applications/window-managers/wayfire/wf-shell.nix +++ b/pkgs/applications/window-managers/wayfire/wf-shell.nix @@ -1,21 +1,21 @@ { stdenv, lib, fetchurl, meson, ninja, pkg-config, wayland, git -, alsaLib, gnome3, gtk-layer-shell, pulseaudio, wayfire, wf-config +, alsa-lib, gtkmm3, gtk-layer-shell, pulseaudio, wayfire, wf-config }: stdenv.mkDerivation rec { pname = "wf-shell"; - version = "0.5.0"; + version = "0.7.0"; # > Note to packagers: do not use the autogenerated "Source code" # > archives from GitHub, but the wf-shell-0.4.0.tar.xz file. src = fetchurl { - url = "https://github.com/WayfireWM/wf-shell/releases/download/${version}/wf-shell-${version}.tar.xz"; - sha256 = "1w4jhy84v9ky9s1iw36msn8189a3pwkvvivyhl44pfc4fy31wj7s"; + url = "https://github.com/WayfireWM/wf-shell/releases/download/v${version}/wf-shell-${version}.tar.xz"; + sha256 = "1isybm9lcpxwyf6zh2vzkwrcnw3q7qxm21535g4f08f0l68cd5bl"; }; nativeBuildInputs = [ meson ninja pkg-config wayland ]; buildInputs = [ - alsaLib gnome3.gtkmm gtk-layer-shell pulseaudio wayfire wf-config + alsa-lib gtkmm3 gtk-layer-shell pulseaudio wayfire wf-config ]; mesonFlags = [ "--sysconfdir" "/etc" ]; diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix index 4a09cac9344..598e78be264 100644 --- a/pkgs/applications/window-managers/weston/default.nix +++ b/pkgs/applications/window-managers/weston/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, meson, ninja, pkgconfig +{ lib, stdenv, fetchurl, meson, ninja, pkg-config, wayland-scanner , wayland, libGL, mesa, libxkbcommon, cairo, libxcb , libXcursor, xlibsWrapper, udev, libdrm, mtdev, libjpeg, pam, dbus, libinput, libevdev , colord, lcms2, pipewire ? null @@ -7,17 +7,17 @@ # beware of null defaults, as the parameters *are* supplied by callPackage by default }: -with stdenv.lib; +with lib; stdenv.mkDerivation rec { pname = "weston"; - version = "8.0.0"; + version = "9.0.0"; src = fetchurl { url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz"; - sha256 = "0j3q0af3595g4wcicldgy749zm2g2b6bswa6ya8k075a5sdv863m"; + sha256 = "1zlql0xgiqc3pvgbpnnvj4xvpd91pwva8qf83xfb23if377ddxaw"; }; - nativeBuildInputs = [ meson ninja pkgconfig ]; + nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ]; buildInputs = [ wayland libGL mesa libxkbcommon cairo libxcb libXcursor xlibsWrapper udev libdrm mtdev libjpeg pam dbus libinput libevdev pango libunwind freerdp vaapi libva @@ -45,9 +45,19 @@ stdenv.mkDerivation rec { passthru.providedSessions = [ "weston" ]; meta = { - description = "Reference implementation of a Wayland compositor"; - homepage = "https://wayland.freedesktop.org/"; - license = licenses.mit; + description = "A lightweight and functional Wayland compositor"; + longDescription = '' + Weston is the reference implementation of a Wayland compositor, as well + as a useful environment in and of itself. + Out of the box, Weston provides a very basic desktop, or a full-featured + environment for non-desktop uses such as automotive, embedded, in-flight, + industrial, kiosks, set-top boxes and TVs. It also provides a library + allowing other projects to build their own full-featured environments on + top of Weston's core. A small suite of example or demo clients are also + provided. + ''; + homepage = "https://gitlab.freedesktop.org/wayland/weston"; + license = licenses.mit; # Expat version platforms = platforms.linux; maintainers = with maintainers; [ primeos ]; }; diff --git a/pkgs/applications/window-managers/windowchef/default.nix b/pkgs/applications/window-managers/windowchef/default.nix new file mode 100644 index 00000000000..f5a5e6dbd5c --- /dev/null +++ b/pkgs/applications/window-managers/windowchef/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, libxcb, libXrandr +, xcbutil, xcbutilkeysyms, xcbutilwm, xcbproto +}: + +stdenv.mkDerivation rec { + pname = "windowchef"; + version = "0.5.2"; + + src = fetchFromGitHub { + owner = "tudurom"; + repo = "windowchef"; + rev = "v${version}"; + sha256 = "1m4vly7w2f28lrj26rhh3x9xsp3d97m5cxj91fafgh5rds4ygyhp"; + }; + + buildInputs = [ libxcb libXrandr xcbutil xcbutilkeysyms xcbutilwm xcbproto]; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "A stacking window manager that cooks windows with orders from the Waitron"; + homepage = "https://github.com/tudurom/windowchef"; + maintainers = with maintainers; [ bhougland ]; + license = licenses.isc; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/windowlab/default.nix b/pkgs/applications/window-managers/windowlab/default.nix index d0a1de7f600..f4fea3f434c 100644 --- a/pkgs/applications/window-managers/windowlab/default.nix +++ b/pkgs/applications/window-managers/windowlab/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig +{ lib, stdenv, fetchurl, pkg-config , libX11, libXext, libXft }: let version = "1.40"; in @@ -11,7 +11,7 @@ stdenv.mkDerivation { sha256 = "1fx4jwq4s98p2wpvawsiww7d6568bpjgcjpks61dzfj8p2j32s4d"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ libX11 libXext libXft ]; postPatch = @@ -26,11 +26,11 @@ stdenv.mkDerivation { sed "s|/usr/local|$out|g" Makefile.orig >> Makefile ''; - meta = with stdenv.lib; + meta = with lib; { description = "Small and simple stacking window manager"; homepage = "http://nickgravgaard.com/windowlab/"; license = licenses.gpl2; maintainers = with maintainers; [ ehmry ]; platforms = platforms.linux; }; -} \ No newline at end of file +} diff --git a/pkgs/applications/window-managers/windowmaker/default.nix b/pkgs/applications/window-managers/windowmaker/default.nix index 64783ac5fbe..8c354c616fd 100644 --- a/pkgs/applications/window-managers/windowmaker/default.nix +++ b/pkgs/applications/window-managers/windowmaker/default.nix @@ -1,30 +1,31 @@ -{ stdenv, fetchurl, pkgconfig +{ lib, stdenv, fetchurl, pkg-config , libX11, libXext, libXft, libXmu, libXinerama, libXrandr, libXpm -, imagemagick, libpng, libjpeg, libexif, libtiff, libungif, libwebp }: +, imagemagick, libpng, libjpeg, libexif, libtiff, giflib, libwebp }: stdenv.mkDerivation rec { pname = "windowmaker"; - version = "0.95.8"; + version = "0.95.9"; srcName = "WindowMaker-${version}"; src = fetchurl { url = "http://windowmaker.org/pub/source/release/${srcName}.tar.gz"; - sha256 = "12p8kljqgx5hnic0zvs5mxwp7kg21sb6qjagb2qw8ydvf5amrgwx"; + sha256 = "055pqvlkhipyjn7m6bb3fs4zz9rd1ynzl0mmwbhp05ihc3zmh8zj"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ libX11 libXext libXft libXmu libXinerama libXrandr libXpm - imagemagick libpng libjpeg libexif libtiff libungif libwebp ]; + imagemagick libpng libjpeg libexif libtiff giflib libwebp ]; configureFlags = [ "--with-x" "--enable-modelock" "--enable-randr" - "--enable-magick" + "--enable-webp" + "--disable-magick" # Many distros reported imagemagick fails to be found ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://windowmaker.org/"; description = "NeXTSTEP-like window manager"; longDescription = '' @@ -40,5 +41,3 @@ stdenv.mkDerivation rec { maintainers = [ maintainers.AndersonTorres ]; }; } - -# TODO: investigate support for WEBP (its autodetection is failing) diff --git a/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix b/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix new file mode 100644 index 00000000000..e22b02825b7 --- /dev/null +++ b/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, dockapps-sources, pkg-config, libX11, libXpm, libXext, alsa-lib }: + +stdenv.mkDerivation rec { + pname = "AlsaMixer.app"; + version = "0.2.1"; + + src = dockapps-sources; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libX11 libXpm libXext alsa-lib ]; + + setSourceRoot = '' + export sourceRoot=$(echo */${pname}) + ''; + + dontConfigure = true; + + preInstall = '' + install -d ${placeholder "out"}/bin + ''; + + installPhase = '' + runHook preInstall + install -t ${placeholder "out"}/bin AlsaMixer.app + runHook postInstall + ''; + + postInstall = '' + ln -s ${placeholder "out"}/bin/AlsaMixer.app ${placeholder "out"}/bin/AlsaMixer + ''; + + meta = with lib; { + description = "Alsa mixer application for Windowmaker"; + homepage = "https://www.dockapps.net/alsamixerapp"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.bstrik ]; + }; +} diff --git a/pkgs/applications/window-managers/windowmaker/dockapps/alsamixer.app.nix b/pkgs/applications/window-managers/windowmaker/dockapps/alsamixer.app.nix deleted file mode 100644 index 4e1256399e7..00000000000 --- a/pkgs/applications/window-managers/windowmaker/dockapps/alsamixer.app.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ stdenv, fetchgit, pkgconfig, libX11, libXpm, libXext, alsaLib }: - -stdenv.mkDerivation { - name = "alsamixer.app-0.2.1"; - src = fetchgit { - url = "git://repo.or.cz/dockapps.git"; - rev = "38c74350b02f35824554ce0c4f0f251d71762040"; - sha256 = "0g9cwhlqg065fbhav4g4n16a4cqkk9jykl3y0zwbn5whhacfqyhl"; - }; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ libX11 libXpm libXext alsaLib ]; - - postUnpack = "sourceRoot=\${sourceRoot}/AlsaMixer.app"; - - installPhase = '' - mkdir -pv $out/bin; - cp AlsaMixer.app $out/bin/AlsaMixer; - ''; - - meta = { - description = "Alsa mixer application for Windowmaker"; - homepage = "http://windowmaker.org/dockapps/?name=AlsaMixer.app"; - license = stdenv.lib.licenses.gpl2; - maintainers = [ stdenv.lib.maintainers.bstrik ]; - }; -} diff --git a/pkgs/applications/window-managers/windowmaker/dockapps/default.nix b/pkgs/applications/window-managers/windowmaker/dockapps/default.nix new file mode 100644 index 00000000000..8a66fdbd67f --- /dev/null +++ b/pkgs/applications/window-managers/windowmaker/dockapps/default.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs }: + +lib.makeScope pkgs.newScope (self: with self; { + + dockapps-sources = pkgs.fetchgit { + url = "https://repo.or.cz/dockapps.git"; + rev = "b2b9d872ee61c9b329e4597c301e4417cbd9c3ea"; + sha256 = "sha256-BuSnwPIj3gUWMjj++SK+117xm/77u4gXLQzRFttei0w="; + }; + + libdockapp = callPackage ./libdockapp.nix { }; + + AlsaMixer-app = callPackage ./AlsaMixer-app.nix { }; + + wmCalClock = callPackage ./wmCalClock.nix { }; + + wmsm-app = callPackage ./wmsm-app.nix { }; + + wmsystemtray = callPackage ./wmsystemtray.nix { }; +}) diff --git a/pkgs/applications/window-managers/windowmaker/dockapps/libdockapp.nix b/pkgs/applications/window-managers/windowmaker/dockapps/libdockapp.nix new file mode 100644 index 00000000000..aaf99ec932e --- /dev/null +++ b/pkgs/applications/window-managers/windowmaker/dockapps/libdockapp.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, dockapps-sources, autoreconfHook, pkg-config +, libX11, libXext, libXpm, mkfontdir, fontutil }: + +stdenv.mkDerivation rec { + pname = "libdockapp"; + version = "0.7.3"; + + src = dockapps-sources; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + + buildInputs = [ libX11 libXext libXpm fontutil mkfontdir ]; + + setSourceRoot = '' + export sourceRoot=$(echo */${pname}) + ''; + + # There is a bug on --with-font + configureFlags = [ + "--with-examples=no" + "--with-font=no" + ]; + + meta = with lib; { + description = "A library providing a framework for dockapps"; + homepage = "https://www.dockapps.net/libdockapp"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.bstrik ]; + }; +} diff --git a/pkgs/applications/window-managers/windowmaker/dockapps/wmCalClock.nix b/pkgs/applications/window-managers/windowmaker/dockapps/wmCalClock.nix new file mode 100644 index 00000000000..9f49b4508c1 --- /dev/null +++ b/pkgs/applications/window-managers/windowmaker/dockapps/wmCalClock.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, dockapps-sources +, libX11, libXpm, libXext }: + +stdenv.mkDerivation rec { + pname = "wmCalClock"; + version = "1.25"; + + src = dockapps-sources; + + buildInputs = [ libX11 libXpm libXext ]; + + setSourceRoot = '' + export sourceRoot=$(echo */${pname}/Src) + ''; + + preBuild = '' + makeFlagsArray+=( + CC="cc" + INCDIR="-I${libX11.dev}/include -I${libXext.dev}/include -I${libXpm.dev}/include" + LIBDIR="-I${libX11}/lib -I${libXext}/lib -I${libXpm}/lib" + ) + ''; + + preInstall = '' + install -d ${placeholder "out"}/bin + install -d ${placeholder "out"}/man/man1 + ''; + + installFlags = [ "DESTDIR=${placeholder "out"}" ]; + + meta = with lib; { + description = "A Calendar clock with antialiased text"; + homepage = "https://www.dockapps.net/wmcalclock"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.bstrik ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/windowmaker/dockapps/wmcalclock.nix b/pkgs/applications/window-managers/windowmaker/dockapps/wmcalclock.nix deleted file mode 100644 index 48f4753d674..00000000000 --- a/pkgs/applications/window-managers/windowmaker/dockapps/wmcalclock.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ stdenv, fetchurl, pkgconfig, libX11, libXpm, libXext }: - -stdenv.mkDerivation { - name = "wmCalClock-1.25"; - src = fetchurl { - url = "http://www.cs.mun.ca/~gstarkes/wmaker/dockapps/files/wmCalClock-1.25.tar.gz"; - sha256 = "4b42b55bb7c1d7c58b5ee1f0058c683d3e4f3e3380d3a69c54a50b983c7c1b3f"; - }; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ libX11 libXpm libXext ]; - - postUnpack = "sourceRoot=\${sourceRoot}/Src"; - - buildPhase='' - make prefix=$out - ''; - - installPhase = '' - mkdir -pv $out/bin - mkdir -pv $out/man/man1 - make DESTDIR=$out install - ''; - - meta = { - description = "Clock for Windowmaker"; - homepage = "http://www.cs.mun.ca/~gstarkes/wmaker/dockapps/time.html#wmcalclock"; - license = stdenv.lib.licenses.gpl2; - maintainers = [ stdenv.lib.maintainers.bstrik ]; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix b/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix new file mode 100644 index 00000000000..c201c55dcea --- /dev/null +++ b/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, dockapps-sources +, libX11 +, libXpm +, libXext +, libdockapp }: + +stdenv.mkDerivation rec { + pname = "wmsm.app"; + version = "0.2.1"; + + src = dockapps-sources; + + buildInputs = [ libX11 libXpm libXext libdockapp ]; + + setSourceRoot = '' + export sourceRoot=$(echo */${pname}/wmsm) + ''; + + NIX_CFLAGS_COMPILE = "-std=gnu89"; + + postPatch = '' + substituteInPlace Makefile \ + --replace "PREFIX = /usr/X11R6/bin" "" \ + --replace "/usr/bin/install" "install" + ''; + + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; + + preInstall = '' + runHook preInstall + install -d ${placeholder "out"}/bin + runHook postInstall + ''; + + installFlags = [ "PREFIX=${placeholder "out"}/bin" ]; + + meta = with lib; { + description = "System monitor for Windowmaker"; + homepage = "https://www.dockapps.net/wmsmapp"; + license = licenses.gpl2; + maintainers = [ maintainers.bstrik ]; + }; +} diff --git a/pkgs/applications/window-managers/windowmaker/dockapps/wmsm.app.nix b/pkgs/applications/window-managers/windowmaker/dockapps/wmsm.app.nix deleted file mode 100644 index ad255414a69..00000000000 --- a/pkgs/applications/window-managers/windowmaker/dockapps/wmsm.app.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, fetchurl, pkgconfig, libX11, libXpm, libXext }: - -stdenv.mkDerivation { - name = "wmsm.app-0.2.1"; - src = fetchurl { - url = "http://linux-bsd-unix.strefa.pl/wmsm.app-0.2.1.tar.bz2"; - sha256 = "369a8f2e5673c6b7ab0cf85166f38fbf553dd966c3c1cfeec0e32837defd32c7"; - }; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ libX11 libXpm libXext ]; - - postUnpack = "sourceRoot=\${sourceRoot}/wmsm"; - - NIX_CFLAGS_COMPILE = "-std=gnu89"; - - installPhase = '' - substituteInPlace Makefile --replace "PREFIX = /usr/X11R6/bin" "" --replace "/usr/bin/install" "install" - mkdir -pv $out/bin; - make PREFIX=$out/bin install; - ''; - - meta = { - description = "System monitor for Windowmaker"; - homepage = "http://linux-bsd-unix.strefa.pl"; - license = stdenv.lib.licenses.gpl2; - maintainers = [ stdenv.lib.maintainers.bstrik ]; - }; -} diff --git a/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix b/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix index 3e073cd8e91..ced4cad8055 100644 --- a/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix +++ b/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix @@ -1,20 +1,22 @@ -{ stdenv, fetchurl, pkgconfig, libX11, libXpm, libXext, libXfixes, libXmu }: +{ lib, stdenv, fetchurl, pkg-config, libX11, libXpm, libXext, libXfixes, libXmu }: + +stdenv.mkDerivation rec { + pname = "wmsystemtray"; + version = "1.4"; -stdenv.mkDerivation { - name = "wmsystemtray-1.4"; src = fetchurl { - url = "mirror://sourceforge/project/wmsystemtray/wmsystemtray/wmsystemtray-1.4.tar.gz"; - sha256 = "8edef43691e9fff071000e29166c7c1ad420c0956e9068151061e881c8ac97e9"; + url = "mirror://sourceforge/project/${pname}/${pname}/${pname}-${version}.tar.gz"; + sha256 = "sha256-jt70NpHp//BxAA4pFmx8GtQgwJVukGgVEGHogcisl+k="; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ libX11 libXpm libXext libXfixes libXmu ]; - meta = { - description = "Systemtray for Windowmaker"; + meta = with lib; { + description = "A system tray for Windowmaker"; homepage = "http://wmsystemtray.sourceforge.net"; - license = stdenv.lib.licenses.gpl2; - maintainers = [ stdenv.lib.maintainers.bstrik ]; - platforms = stdenv.lib.platforms.linux; + license = licenses.gpl2Only; + maintainers = [ maintainers.bstrik ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/window-managers/wio/default.nix b/pkgs/applications/window-managers/wio/default.nix new file mode 100644 index 00000000000..03ec26f6fb8 --- /dev/null +++ b/pkgs/applications/window-managers/wio/default.nix @@ -0,0 +1,67 @@ +{ lib +, stdenv +, fetchFromBitbucket +, meson +, ninja +, pkg-config +, alacritty +, cage +, cairo +, libxkbcommon +, udev +, wayland +, wayland-protocols +, wlroots +, mesa +, xwayland +, makeWrapper +}: + +stdenv.mkDerivation rec { + pname = "wio"; + version = "0.0.0+unstable=2021-06-27"; + + src = fetchFromBitbucket { + owner = "anderson_torres"; + repo = pname; + rev = "e0b258777995055d69e61a0246a6a64985743f42"; + sha256 = "sha256-8H9fOnZsNjjq9XvOv68F4RRglGNluxs5/jp/h4ROLiI="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + makeWrapper + ]; + buildInputs = [ + cairo + libxkbcommon + mesa # for libEGL + udev + wayland + wayland-protocols + wlroots + xwayland + ]; + + postInstall = '' + wrapProgram $out/bin/wio \ + --prefix PATH ":" "${lib.makeBinPath [ alacritty cage ]}" + ''; + + meta = with lib; { + homepage = "https://wio-project.org/"; + description = "That Plan 9 feel, for Wayland"; + longDescription = '' + Wio is a Wayland compositor for Linux and FreeBSD which has a similar look + and feel to plan9's rio. + ''; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = with platforms; linux; + }; + + passthru.providedSessions = [ "wio" ]; +} +# TODO: factor Linux-specific options diff --git a/pkgs/applications/window-managers/wmderland/0001-remove-flto.patch b/pkgs/applications/window-managers/wmderland/0001-remove-flto.patch new file mode 100644 index 00000000000..cae1eac0a20 --- /dev/null +++ b/pkgs/applications/window-managers/wmderland/0001-remove-flto.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 17a4944..33406f3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -10,7 +10,7 @@ include(BuildType) + # Request C++14 standard, using new CMake variables. + set(CMAKE_CXX_STANDARD 14) + set(CMAKE_CXX_STANDARD_REQUIRED True) +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto -Wall") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") + + # If the BuildType is Debug, then add -rdynamic. + # (used to print stacktrace with function names) diff --git a/pkgs/applications/window-managers/wmderland/default.nix b/pkgs/applications/window-managers/wmderland/default.nix new file mode 100644 index 00000000000..c0fcdd859b2 --- /dev/null +++ b/pkgs/applications/window-managers/wmderland/default.nix @@ -0,0 +1,49 @@ +{ lib, stdenv, fetchFromGitHub, cmake, libnotify, libX11, xorgproto, nixosTests }: + +stdenv.mkDerivation { + pname = "wmderland"; + version = "unstable-2020-07-17"; + + src = fetchFromGitHub { + owner = "aesophor"; + repo = "wmderland"; + rev = "a40a3505dd735b401d937203ab6d8d1978307d72"; + sha256 = "0npmlnybblp82mfpinjbz7dhwqgpdqc1s63wc1zs8mlcs19pdh98"; + }; + + nativeBuildInputs = [ + cmake + ]; + + cmakeBuildType = "MinSizeRel"; + + patches = [ ./0001-remove-flto.patch ]; + + postPatch = '' + substituteInPlace src/util.cc \ + --replace "notify-send" "${libnotify}/bin/notify-send" + ''; + + buildInputs = [ + libX11 + xorgproto + ]; + + postInstall = '' + install -Dm0644 -t $out/share/wmderland/contrib $src/example/config + install -Dm0644 -t $out/share/xsessions $src/example/wmderland.desktop + ''; + + passthru = { + tests.basic = nixosTests.wmderland; + providedSessions = [ "wmderland" ]; + }; + + meta = with lib; { + description = "Modern and minimal X11 tiling window manager"; + homepage = "https://github.com/aesophor/wmderland"; + license = licenses.mit; + platforms = libX11.meta.platforms; + maintainers = with maintainers; [ takagiy ]; + }; +} diff --git a/pkgs/applications/window-managers/wmderlandc/default.nix b/pkgs/applications/window-managers/wmderlandc/default.nix new file mode 100644 index 00000000000..24690eeaa46 --- /dev/null +++ b/pkgs/applications/window-managers/wmderlandc/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub, cmake, libX11, xorgproto }: + +stdenv.mkDerivation { + pname = "wmderlandc"; + version = "unstable-2020-07-17"; + + src = fetchFromGitHub { + owner = "aesophor"; + repo = "wmderland"; + rev = "a40a3505dd735b401d937203ab6d8d1978307d72"; + sha256 = "0npmlnybblp82mfpinjbz7dhwqgpdqc1s63wc1zs8mlcs19pdh98"; + }; + + sourceRoot = "source/ipc-client"; + + nativeBuildInputs = [ + cmake + ]; + + buildInputs = [ + libX11 + xorgproto + ]; + + meta = with lib; { + description = "A tiny program to interact with wmderland"; + homepage = "https://github.com/aesophor/wmderland/tree/master/ipc-client"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ takagiy ]; + }; +} diff --git a/pkgs/applications/window-managers/wmfs/default.nix b/pkgs/applications/window-managers/wmfs/default.nix index a53fc560abc..83c7d787d88 100644 --- a/pkgs/applications/window-managers/wmfs/default.nix +++ b/pkgs/applications/window-managers/wmfs/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, gnumake, +{ lib, stdenv, fetchFromGitHub, gnumake, libX11, libXinerama, libXrandr, libXpm, libXft, imlib2 }: stdenv.mkDerivation { pname = "wmfs"; @@ -33,7 +33,7 @@ stdenv.mkDerivation { "MANPREFIX=${placeholder "out"}/share/man" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Window manager from scratch"; license = licenses.bsd2; maintainers = [ maintainers.balsoft ]; diff --git a/pkgs/applications/window-managers/wmii-hg/default.nix b/pkgs/applications/window-managers/wmii-hg/default.nix index 721e618b1d4..d0c35ab7cbb 100644 --- a/pkgs/applications/window-managers/wmii-hg/default.nix +++ b/pkgs/applications/window-managers/wmii-hg/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, unzip, pkgconfig, libixp_hg, txt2tags, dash, python, which +{ lib, stdenv, fetchurl, unzip, pkg-config, libixp_hg, txt2tags, dash, python, which , libX11 , libXrender, libXext, libXinerama, libXrandr, libXft }: stdenv.mkDerivation rec { @@ -29,8 +29,8 @@ stdenv.mkDerivation rec { EOF ''; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ unzip libixp_hg txt2tags dash python which + nativeBuildInputs = [ pkg-config unzip ]; + buildInputs = [ libixp_hg txt2tags dash python which libX11 libXrender libXext libXinerama libXrandr libXft ]; # For some reason including mercurial in buildInputs did not help @@ -39,9 +39,8 @@ stdenv.mkDerivation rec { meta = { homepage = "https://suckless.org/"; # https://wmii.suckless.org/ does not exist anymore description = "A small window manager controlled by a 9P filesystem"; - maintainers = with stdenv.lib.maintainers; [ kovirobi ]; - license = stdenv.lib.licenses.mit; - inherit version; - platforms = with stdenv.lib.platforms; linux; + maintainers = with lib.maintainers; [ kovirobi ]; + license = lib.licenses.mit; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/applications/window-managers/xmonad/log-applet/default.nix b/pkgs/applications/window-managers/xmonad/log-applet/default.nix index 7c6041b576e..2e41cc2c97c 100644 --- a/pkgs/applications/window-managers/xmonad/log-applet/default.nix +++ b/pkgs/applications/window-managers/xmonad/log-applet/default.nix @@ -1,7 +1,7 @@ -{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, glib, dbus-glib +{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook, glib, dbus-glib , desktopSupport ? "gnomeflashback", xorg , gtk2 -, gtk3, gnome3, mate +, gtk3, gnome, mate , libxfce4util, xfce4-panel }: @@ -20,12 +20,12 @@ stdenv.mkDerivation rec { }; buildInputs = [ glib dbus-glib xorg.xcbutilwm ] - ++ stdenv.lib.optionals (desktopSupport == "gnomeflashback") [ gtk3 gnome3.gnome-panel ] - ++ stdenv.lib.optionals (desktopSupport == "mate") [ gtk3 mate.mate-panel ] - ++ stdenv.lib.optionals (desktopSupport == "xfce4") [ gtk2 libxfce4util xfce4-panel ] + ++ lib.optionals (desktopSupport == "gnomeflashback") [ gtk3 gnome.gnome-panel ] + ++ lib.optionals (desktopSupport == "mate") [ gtk3 mate.mate-panel ] + ++ lib.optionals (desktopSupport == "xfce4") [ gtk2 libxfce4util xfce4-panel ] ; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; + nativeBuildInputs = [ autoreconfHook pkg-config ]; configureFlags = [ "--with-panel=${desktopSupport}" ]; @@ -35,9 +35,10 @@ stdenv.mkDerivation rec { # --define-variable=prefix=$prefix PKG_CONFIG_LIBXFCE4PANEL_1_0_LIBDIR = "$(out)/lib"; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/kalj/xmonad-log-applet"; license = licenses.bsd3; + broken = desktopSupport == "gnomeflashback" || desktopSupport == "xfce4"; description = "An applet that will display XMonad log information (${desktopSupport} version)"; platforms = platforms.linux; maintainers = with maintainers; [ abbradar ]; diff --git a/pkgs/applications/window-managers/yabar/build.nix b/pkgs/applications/window-managers/yabar/build.nix index 10806ba78cf..f9b5d227b0e 100644 --- a/pkgs/applications/window-managers/yabar/build.nix +++ b/pkgs/applications/window-managers/yabar/build.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchFromGitHub, cairo, gdk-pixbuf, libconfig, pango, pkgconfig -, xcbutilwm, alsaLib, wirelesstools, asciidoc, libxslt, makeWrapper, docbook_xsl +{ stdenv, fetchFromGitHub, cairo, gdk-pixbuf, libconfig, pango, pkg-config +, xcbutilwm, alsa-lib, wirelesstools, asciidoc, libxslt, makeWrapper, docbook_xsl , configFile ? null, lib , rev, sha256, version, patches ? [] }: @@ -19,10 +19,10 @@ stdenv.mkDerivation { hardeningDisable = [ "format" ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ cairo gdk-pixbuf libconfig pango xcbutilwm docbook_xsl - alsaLib wirelesstools asciidoc libxslt makeWrapper + alsa-lib wirelesstools asciidoc libxslt makeWrapper ]; postPatch = '' @@ -45,11 +45,11 @@ stdenv.mkDerivation { } ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A modern and lightweight status bar for X window managers"; homepage = "https://github.com/geommer/yabar"; license = licenses.mit; platforms = platforms.linux; - maintainers = with maintainers; [ ma27 ]; + maintainers = with maintainers; [ ]; }; } diff --git a/pkgs/applications/window-managers/yeahwm/default.nix b/pkgs/applications/window-managers/yeahwm/default.nix index a8323ff1d38..3cf997c22c2 100644 --- a/pkgs/applications/window-managers/yeahwm/default.nix +++ b/pkgs/applications/window-managers/yeahwm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl +{ lib, stdenv, fetchurl , lesstif , libX11, libXext, libXmu, libXinerama }: @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { install -m644 yeahwm.1.gz ${placeholder "out"}/share/man/man1/ ''; - meta = with stdenv.lib;{ + meta = with lib;{ description = "An X window manager based on evilwm and aewm"; longDescription = '' YeahWM is a h* window manager for X based on evilwm and aewm. |