diff options
Diffstat (limited to 'pkgs/applications/window-managers')
37 files changed, 603 insertions, 261 deletions
diff --git a/pkgs/applications/window-managers/berry/default.nix b/pkgs/applications/window-managers/berry/default.nix new file mode 100644 index 00000000000..2a41a3d3c07 --- /dev/null +++ b/pkgs/applications/window-managers/berry/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchFromGitHub +, libX11, libXft, libXinerama, fontconfig, freetype }: + +stdenv.mkDerivation rec { + pname = "berry"; + version = "0.1.5"; + + src = fetchFromGitHub { + owner = "JLErvin"; + repo = "berry"; + rev = version; + sha256 = "1wxbjzpwqb9x7vd7kb095fiqj271rki980dnwcxjxpqlmmrmjzyl"; + }; + + buildInputs = [ libX11 libXft libXinerama fontconfig freetype ]; + + preBuild = '' + makeFlagsArray+=( PREFIX="${placeholder "out"}" + X11INC="${libX11.dev}/include" + X11LIB="${libX11}/lib" + XINERAMALIBS="-lXinerama" + XINERAMAFLAGS="-DXINERAMA" + FREETYPELIBS="-lfontconfig -lXft" + FREETYPEINC="${freetype.dev}/include/freetype2" ) + ''; + + meta = with stdenv.lib; { + description = "A healthy, bite-sized window manager"; + longDescription = '' + berry is a healthy, bite-sized window manager written in C for unix + systems. Its main features include: + + - Controlled via a powerful command-line client, allowing users to control + windows via a hotkey daemon such as sxhkd or expand functionality via + shell scripts. + - Small, hackable source code. + - Extensible themeing options with double borders, title bars, and window + text. + - Intuitively place new windows in unoccupied spaces. + - Virtual desktops. + ''; + homepage = "https://berrywm.org/"; + license = licenses.mit; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/bspwm/default.nix b/pkgs/applications/window-managers/bspwm/default.nix index 52f52281043..7c7bdbe22a7 100644 --- a/pkgs/applications/window-managers/bspwm/default.nix +++ b/pkgs/applications/window-managers/bspwm/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "bspwm"; - version = "0.9.9"; + version = "0.9.10"; src = fetchFromGitHub { owner = "baskerville"; repo = "bspwm"; rev = version; - sha256 = "1i7crmljk1vra1r6alxvj6lqqailjjcv0llyg7a0gm23rbv4a42g"; + sha256 = "0qlv7b4c2mmjfd65y100d11x8iqyg5f6lfiws3cgmpjidhdygnxc"; }; buildInputs = [ libxcb libXinerama xcbutil xcbutilkeysyms xcbutilwm ]; diff --git a/pkgs/applications/window-managers/cage/default.nix b/pkgs/applications/window-managers/cage/default.nix index 0d9e3335f2c..372ad1e27fc 100644 --- a/pkgs/applications/window-managers/cage/default.nix +++ b/pkgs/applications/window-managers/cage/default.nix @@ -1,45 +1,45 @@ -{ stdenv, fetchFromGitHub, fetchpatch -, meson, ninja, pkgconfig, makeWrapper -, wlroots, wayland, wayland-protocols, pixman, libxkbcommon +{ stdenv, fetchFromGitHub +, meson, ninja, pkg-config, wayland, scdoc, makeWrapper +, wlroots, wayland-protocols, pixman, libxkbcommon , systemd, libGL, libX11 , xwayland ? null +, nixosTests }: stdenv.mkDerivation rec { - pname = "cage-unstable"; - version = "2020-01-18"; - # The last stable release (0.1.1) would require at least the following 3 patches: - # - https://github.com/Hjdskes/cage/commit/33bb3c818c5971777b6f09d8821e7f078d38d262.patch - # - https://github.com/Hjdskes/cage/commit/51e6c760da51e2b885737d61a61cdc965bb9269d.patch - # - https://github.com/Hjdskes/cage/commit/84216ca2a417b237ad61c11e2f3ebbcb91681ece.patch - # Which need to be adapted due to other changes. At this point it seems - # better to use the current master version until the next stable release. + pname = "cage"; + version = "0.1.2.1"; src = fetchFromGitHub { owner = "Hjdskes"; repo = "cage"; - rev = "cc1f975c442ebd691b70196d76aa120ead717810"; - sha256 = "1gkqx26pvlw00b3fgx6sh87yyjfzyj51jwxvbf9k117npkrf4b2g"; + rev = "v${version}"; + sha256 = "1i4rm3dpmk7gkl6hfs6a7vwz76ba7yqcdp63nlrdbnq81m9cy2am"; }; - nativeBuildInputs = [ meson ninja pkgconfig makeWrapper wayland ]; + postPatch = '' + substituteInPlace meson.build --replace \ + "0.1.2" "${version}" + ''; + + nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ]; buildInputs = [ wlroots wayland wayland-protocols pixman libxkbcommon - # TODO: Not specified but required: systemd libGL libX11 ]; - enableParallelBuilding = true; - mesonFlags = [ "-Dxwayland=${stdenv.lib.boolToString (xwayland != null)}" ]; postFixup = stdenv.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; { - description = "A Wayland kiosk"; + description = "A Wayland kiosk that runs a single, maximized application"; homepage = "https://www.hjdskes.nl/projects/cage/"; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/applications/window-managers/cwm/default.nix b/pkgs/applications/window-managers/cwm/default.nix index 0e57643c64d..18baefdbf3e 100644 --- a/pkgs/applications/window-managers/cwm/default.nix +++ b/pkgs/applications/window-managers/cwm/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "cwm"; - version = "6.6"; + version = "6.7"; src = fetchFromGitHub { owner = "leahneukirchen"; repo = pname; rev = "v${version}"; - sha256 = "1rvb4y37vw3bpkqa6fbizgc74x3nrlkk6yf5hlm0hf8qz0c17vbl"; + sha256 = "0f9xmki2hx10k8iisfzc7nm1l31zkf1r06pdgn06ar9w9nizrld9"; }; nativeBuildInputs = [ pkgconfig ]; @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A lightweight and efficient window manager for X11"; homepage = "https://github.com/leahneukirchen/cwm"; - maintainers = with maintainers; [ maintainers."0x4A6F" mkf ]; + maintainers = with maintainers; [ _0x4A6F mkf ]; license = licenses.isc; platforms = platforms.linux; }; diff --git a/pkgs/applications/window-managers/dwm/dwm-status.nix b/pkgs/applications/window-managers/dwm/dwm-status.nix index 568258ee2c4..c7c72b4d402 100644 --- a/pkgs/applications/window-managers/dwm/dwm-status.nix +++ b/pkgs/applications/window-managers/dwm/dwm-status.nix @@ -9,19 +9,19 @@ in rustPlatform.buildRustPackage rec { pname = "dwm-status"; - version = "1.6.4"; + version = "1.7.1"; src = fetchFromGitHub { owner = "Gerschtli"; repo = "dwm-status"; rev = version; - sha256 = "05dhd2gy7ysrnchdimrdd7jvzs1db9fyrk4ci7850jhrgavfd7c4"; + sha256 = "172qkzbi37j6wx81pyqqffi9wxbg3bf8nis7d15ncn1yfd5r4gqh"; }; nativeBuildInputs = [ makeWrapper pkgconfig ]; buildInputs = [ dbus gdk-pixbuf libnotify xorg.libX11 ]; - cargoSha256 = "0zkbps8vsjcvy7x0sgb07kacszi57dlyq8j6ia6yy0jyqnvlaqa7"; + cargoSha256 = "041sd9zm1c3v6iihnwjcya2xg5yxb2y4biyxpjlfblz2srxa15dm"; postInstall = lib.optionalString (bins != []) '' wrapProgram $out/bin/dwm-status --prefix "PATH" : "${stdenv.lib.makeBinPath bins}" diff --git a/pkgs/applications/window-managers/herbstluftwm/default.nix b/pkgs/applications/window-managers/herbstluftwm/default.nix index 7dc715e126c..e547cea3c54 100644 --- a/pkgs/applications/window-managers/herbstluftwm/default.nix +++ b/pkgs/applications/window-managers/herbstluftwm/default.nix @@ -8,11 +8,11 @@ assert withDoc -> asciidoc != null; stdenv.mkDerivation rec { pname = "herbstluftwm"; - version = "0.8.1"; + version = "0.8.3"; src = fetchurl { url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz"; - sha256 = "0c1lf82z6a56g8asin91cmqhzk3anw0xwc44b31bpjixadmns57y"; + sha256 = "1qmb4pjf2f6g0dvcg11cw9njwmxblhqzd70ai8qnlgqw1iz3nkm1"; }; outputs = [ diff --git a/pkgs/applications/window-managers/hikari/default.nix b/pkgs/applications/window-managers/hikari/default.nix new file mode 100644 index 00000000000..9bf68adaef4 --- /dev/null +++ b/pkgs/applications/window-managers/hikari/default.nix @@ -0,0 +1,75 @@ +{ stdenv, fetchzip, + pkgconfig, bmake, + cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman, + libucl, wayland, wayland-protocols, wlroots, + features ? { + gammacontrol = true; + layershell = true; + screencopy = true; + xwayland = true; + } +}: + +let + pname = "hikari"; + version = "2.1.2"; +in + +stdenv.mkDerivation { + inherit pname version; + + src = fetchzip { + url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz"; + sha256 = "1qzbwc8dgsvp5jb4faapcrg9npsl11gq8jvhbbk2h7hj52c5lgmv"; + }; + + nativeBuildInputs = [ pkgconfig bmake ]; + + buildInputs = [ + cairo + glib + libevdev + libinput + libxkbcommon + linux-pam + pango + pixman + libucl + wayland + wayland-protocols + wlroots + ]; + + enableParallelBuilding = true; + + # Must replace GNU Make by bmake + buildPhase = with stdenv.lib; concatStringsSep " " ( + [ "bmake" "-j$NIX_BUILD_CORES" "PREFIX=$out" ] + ++ optional stdenv.isLinux "WITH_POSIX_C_SOURCE=YES" + ++ mapAttrsToList (feat: enabled: + optionalString enabled "WITH_${toUpper feat}=YES" + ) 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 = '' + substituteInPlace Makefile --replace '4555' '555' + ''; + + installPhase = '' + bmake \ + PREFIX=$out \ + install + runHook postInstall + ''; + + meta = with stdenv.lib; { + description = "Stacking Wayland compositor which is actively developed on FreeBSD but also supports Linux"; + homepage = "https://hikari.acmelabs.space"; + license = licenses.bsd2; + platforms = platforms.linux ++ platforms.freebsd; + maintainers = with maintainers; [ jpotier ]; + }; +} diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix index 3888e10f258..b37a83648ae 100644 --- a/pkgs/applications/window-managers/i3/default.nix +++ b/pkgs/applications/window-managers/i3/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "i3"; - version = "4.18.1"; + version = "4.18.2"; src = fetchurl { url = "https://i3wm.org/downloads/${pname}-${version}.tar.bz2"; - sha256 = "0z709cianlzw0x0qwq4361347354xd9ckj1v7vjvhb1zh3x91gws"; + sha256 = "030jym6b8b07yf4y6pb806hg8k77zsprv569gy0r72rh5zb1g1mj"; }; nativeBuildInputs = [ which pkgconfig makeWrapper installShellFiles ]; diff --git a/pkgs/applications/window-managers/i3/gaps.nix b/pkgs/applications/window-managers/i3/gaps.nix index 7be037ca833..fa1c97c14c1 100644 --- a/pkgs/applications/window-managers/i3/gaps.nix +++ b/pkgs/applications/window-managers/i3/gaps.nix @@ -3,11 +3,11 @@ i3.overrideAttrs (oldAttrs : rec { name = "i3-gaps-${version}"; - version = "4.18.1"; + version = "4.18.2"; src = fetchurl { url = "https://github.com/Airblader/i3/releases/download/${version}/i3-${version}.tar.bz2"; - sha256 = "1cxwsrdzp18r5hj0ymg9fbzp1mhkj4m9h6i0b9cdg79cjbacba9k"; + sha256 = "0lz08wf4b0yprzqsmymn94kiyg885dcwmh0p64v2rnf52s165g2g"; }; nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ autoreconfHook ]; diff --git a/pkgs/applications/window-managers/i3/i3ipc-glib.nix b/pkgs/applications/window-managers/i3/i3ipc-glib.nix index 7e6a18c93c5..af353589a7e 100644 --- a/pkgs/applications/window-managers/i3/i3ipc-glib.nix +++ b/pkgs/applications/window-managers/i3/i3ipc-glib.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "i3ipc-glib"; - version = "0.6.0"; + version = "1.0.1"; src = fetchFromGitHub { owner = "acrisci"; repo = "i3ipc-glib"; rev = "v${version}"; - sha256 = "1gmk1zjafrn6jh4j7r0wkwrpwvf9drl1lcw8vya23i1f4zbk0wh4"; + sha256 = "01fzvrbnzcwx0vxw29igfpza9zwzp2s7msmzb92v01z0rz0y5m0p"; }; nativeBuildInputs = [ autoreconfHook which pkgconfig ]; diff --git a/pkgs/applications/window-managers/i3/lock-color.nix b/pkgs/applications/window-managers/i3/lock-color.nix index 062a8c4b8d8..a64e5ea3369 100644 --- a/pkgs/applications/window-managers/i3/lock-color.nix +++ b/pkgs/applications/window-managers/i3/lock-color.nix @@ -4,14 +4,14 @@ }: stdenv.mkDerivation rec { - version = "2.12.c.1"; + version = "2.12.c.5"; pname = "i3lock-color"; src = fetchFromGitHub { owner = "PandorasFox"; repo = "i3lock-color"; rev = version; - sha256 = "1q09cfgkikqbrkk1kljg8dsgbs5nacixhdqaww18h94hmlnbbssc"; + sha256 = "10h50a6p9ivqjz8hd5pn9l03vz6y9dxdx68bprqssfzdkzqnzaiv"; }; nativeBuildInputs = [ autoreconfHook pkgconfig ]; diff --git a/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix b/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix new file mode 100644 index 00000000000..f6e24d979a4 --- /dev/null +++ b/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, xorg, i3lock }: + +stdenv.mkDerivation rec { + pname = "i3lock-fancy-rapid"; + version = "2019-10-09"; + src = fetchFromGitHub { + owner = "yvbbrjdr"; + repo = "i3lock-fancy-rapid"; + rev = "c67f09bc8a48798c7c820d7d4749240b10865ce0"; + sha256 = "0jhvlj6v6wx70239pgkjxd42z1s2bzfg886ra6n1rzsdclf4rkc6"; + }; + + buildInputs = [ xorg.libX11 ]; + propagatedBuildInputs = [ i3lock ]; + + postPatch = '' + substituteInPlace i3lock-fancy-rapid.c \ + --replace '"i3lock"' '"${i3lock}/bin/i3lock"' + ''; + + installPhase = '' + install -D i3lock-fancy-rapid $out/bin/i3lock-fancy-rapid + ''; + + meta = with stdenv.lib; { + description = "A faster implementation of i3lock-fancy"; + homepage = "https://github.com/yvbbrjdr/i3lock-fancy-rapid"; + maintainers = with maintainers; [ nickhu ]; + license = licenses.bsd3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/i3/pystatus.nix b/pkgs/applications/window-managers/i3/pystatus.nix index 29bda8e4e2b..beefdaf891c 100644 --- a/pkgs/applications/window-managers/i3/pystatus.nix +++ b/pkgs/applications/window-managers/i3/pystatus.nix @@ -1,31 +1,45 @@ -{ stdenv, fetchFromGitHub, libpulseaudio, python3Packages, extraLibs ? [] }: +{ stdenv +, fetchFromGitHub +, libpulseaudio +, libnotify +, gobject-introspection +, python3Packages +, wrapGAppsHook +, extraLibs ? [] }: python3Packages.buildPythonApplication rec { # i3pystatus moved to rolling release: # https://github.com/enkore/i3pystatus/issues/584 - version = "unstable-2019-06-10"; + version = "unstable-2020-06-12"; pname = "i3pystatus"; - src = fetchFromGitHub - { + src = fetchFromGitHub { owner = "enkore"; repo = "i3pystatus"; - rev = "56ce08d0ff8d5d64950d6b588ebede35a95e0ce2"; - sha256 = "12938860jbcly1xwhd71jvy2dff28pwv9kqh6mab1859148bzmcg"; + rev = "dad5eb0c5c8a2ecd20c37ade4732586c6e53f44b"; + sha256 = "18ygvkl92yr69kxsym57k1mc90asdxpz4b943i61qr0s4fc5n4mq"; }; - propagatedBuildInputs = with python3Packages; [ keyring colour netifaces psutil basiciw ] ++ - [ libpulseaudio ] ++ extraLibs; + buildInputs = [ libpulseaudio libnotify gobject-introspection ]; - libpulseaudioPath = stdenv.lib.makeLibraryPath [ libpulseaudio ]; - ldWrapperSuffix = "--suffix LD_LIBRARY_PATH : \"${libpulseaudioPath}\""; - # LC_TIME != C results in locale.Error: unsupported locale setting - makeWrapperArgs = [ "--set LC_TIME C" ldWrapperSuffix ]; # libpulseaudio.so is loaded manually + propagatedBuildInputs = with python3Packages; [ + keyring colour netifaces psutil basiciw pygobject3 + ] ++ extraLibs; + + makeWrapperArgs = [ + # LC_TIME != C results in locale.Error: unsupported locale setting + "--set" "LC_TIME" "C" + "--suffix" "LD_LIBRARY_PATH" ":" "${stdenv.lib.makeLibraryPath [ libpulseaudio ]}" + ]; + + postPatch = '' + makeWrapperArgs+=(--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH") + ''; postInstall = '' makeWrapper ${python3Packages.python.interpreter} $out/bin/${pname}-python-interpreter \ --prefix PYTHONPATH : "$PYTHONPATH" \ - ${ldWrapperSuffix} + ''${makeWrapperArgs[@]} ''; # no tests in tarball diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix index 62389e1230a..8bd3d581434 100644 --- a/pkgs/applications/window-managers/i3/status-rust.nix +++ b/pkgs/applications/window-managers/i3/status-rust.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "i3status-rust"; - version = "0.13.1"; + version = "0.14.1"; src = fetchFromGitHub { owner = "greshake"; repo = pname; rev = "v${version}"; - sha256 = "0va6ny1v7lk30hhx4i5qyk9fwg3apy2nmh6kbmxhcf0rs5449ikg"; + sha256 = "11qhzjml04njhfa033v98m4yd522zj91s6ffvrm0m6sk7m0wyjsc"; }; - cargoSha256 = "1lywr21kk3idjyc10gy4848dmmgyqc2jjf7hpzq0vywkp639bf2x"; + cargoSha256 = "0jmmxld4rsjj6p5nazi3d8j1hh7r34q6kyfqq4wv0sjc77gcpaxd"; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/window-managers/icewm/default.nix b/pkgs/applications/window-managers/icewm/default.nix index b6b07d8d727..57f4a764c90 100644 --- a/pkgs/applications/window-managers/icewm/default.nix +++ b/pkgs/applications/window-managers/icewm/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchFromGitHub, cmake, gettext, perl, asciidoc , libjpeg, libtiff, libungif, libpng, imlib, expat -, freetype, fontconfig, pkgconfig, gdk-pixbuf +, 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 @@ -9,20 +9,20 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "icewm"; - version = "1.6.5"; + version = "1.7.0"; src = fetchFromGitHub { owner = "bbidulock"; repo = "icewm"; rev = version; - sha256 = "1glzpkpl0vl5sjn1d9jlvwd9ch16dvxvsf2n310kb0ycpfkl84vs"; + sha256 = "0x6axhwfwxxgnljf3201hvrwa90yacf3ln24lsywrk1bxq9am74b"; }; nativeBuildInputs = [ cmake pkgconfig perl asciidoc ]; buildInputs = [ gettext libjpeg libtiff libungif libpng imlib expat - freetype fontconfig gdk-pixbuf mkfontdir libX11 + 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 diff --git a/pkgs/applications/window-managers/leftwm/default.nix b/pkgs/applications/window-managers/leftwm/default.nix index ade3904b95c..06ebd7e0e92 100644 --- a/pkgs/applications/window-managers/leftwm/default.nix +++ b/pkgs/applications/window-managers/leftwm/default.nix @@ -6,16 +6,16 @@ in rustPlatform.buildRustPackage rec { pname = "leftwm"; - version = "0.2.2"; + version = "0.2.4"; src = fetchFromGitHub { owner = "leftwm"; repo = "leftwm"; rev = version; - sha256 = "0x8cqc7zay19jxy7cshayjjwwjrcblqpmqrxipm2g5hhyjghk6q0"; + sha256 = "0xmkhkdpz1bpczrar9y6assdzhd7qxybnkjqs36h099fk9xqmsav"; }; - cargoSha256 = "1kphv3vnr8ij7raf0niwz3rwly986xi5fgwqg2ya0r46ifqkgvrc"; + cargoSha256 = "06wnx81fhs19pz5qnir6h2v2kmj73y1g354nadcx6650q9pnhdv4"; buildInputs = [ makeWrapper libX11 libXinerama ]; diff --git a/pkgs/applications/window-managers/lwm/default.nix b/pkgs/applications/window-managers/lwm/default.nix new file mode 100644 index 00000000000..49cdc81b9ce --- /dev/null +++ b/pkgs/applications/window-managers/lwm/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchurl +, imake, libX11, libSM, libXext, libICE }: + +stdenv.mkDerivation rec { + pname = "lwm"; + version = "1.2.4"; + + src = fetchurl { + url = "http://www.jfc.org.uk/files/lwm/${pname}-${version}.tar.gz"; + sha256 = "1bcdr173f0gl61fyl43p3gr145angci7lvjqb8rl00y9f9amvh3y"; + }; + + nativeBuildInputs = [ imake ]; + + buildInputs = [ libX11 libSM libXext libICE ]; + + dontConfigure = true; + + preBuild = '' + sed -i 's|^LOCAL_LIBRARIES.*|& $(ICELIB)|' Imakefile + xmkmf + ''; + + installPhase = '' + install -dm755 $out/bin $out/share/man/man1 + install -m755 lwm $out/bin/lwm + install -m644 lwm.man $out/share/man/man1/lwm.1 + ''; + + meta = with stdenv.lib; { + description = "Lightweight Window Manager"; + longDescription = '' + lwm is a window manager for X that tries to keep out of your face. There + are no icons, no button bars, no icon docks, no root menus, no nothing: if + you want all that, then other programs can provide it. There's no + configurability either: if you want that, you want a different window + manager; one that helps your operating system in its evil conquest of your + disc space and its annexation of your physical memory. + ''; + homepage = "http://www.jfc.org.uk/software/lwm.html"; + license = licenses.gpl2; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/notion/default.nix b/pkgs/applications/window-managers/notion/default.nix index ac4f00f4545..494bb9ff1b7 100644 --- a/pkgs/applications/window-managers/notion/default.nix +++ b/pkgs/applications/window-managers/notion/default.nix @@ -5,15 +5,15 @@ , xlibsWrapper, makeWrapper }: -stdenv.mkDerivation rec{ +stdenv.mkDerivation rec { pname = "notion"; - version = "4.0.0"; + version = "4.0.1"; src = fetchFromGitHub { owner = "raboof"; repo = pname; rev = version; - sha256 = "0rqfvwkj0j862hf6i4wsmb6185xibsskfj9kwy896qcpcg8w4kk7"; + sha256 = "1s0fyacygvc9iz7b9v3b2cmzzqc02nh4g1p9bfcxbg254iscd502"; }; nativeBuildInputs = [ pkgconfig makeWrapper groff ]; diff --git a/pkgs/applications/window-managers/openbox/default.nix b/pkgs/applications/window-managers/openbox/default.nix index a4ec6d067dc..39329e8004c 100644 --- a/pkgs/applications/window-managers/openbox/default.nix +++ b/pkgs/applications/window-managers/openbox/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, python2 +{ stdenv, fetchurl, autoreconfHook, pkgconfig, python3 , libxml2, libXinerama, libXcursor, libXau, libXrandr, libICE, libSM , imlib2, pango, libstartup_notification, makeWrapper }: @@ -7,22 +7,24 @@ stdenv.mkDerivation rec { version = "3.6.1"; nativeBuildInputs = [ + autoreconfHook pkgconfig makeWrapper - python2.pkgs.wrapPython + python3.pkgs.wrapPython ]; buildInputs = [ libxml2 libXinerama libXcursor libXau libXrandr libICE libSM libstartup_notification + python3 ]; propagatedBuildInputs = [ pango imlib2 ]; - pythonPath = with python2.pkgs; [ + pythonPath = with python3.pkgs; [ pyxdg ]; @@ -36,6 +38,15 @@ stdenv.mkDerivation rec { sha256 = "1ci9lq4qqhl31yz1jwwjiawah0f7x0vx44ap8baw7r6rdi00pyiv"; }; + patches = [ + # 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"; + sha256 = "1ks99awlkhd5ph9kz94s1r6m1bfvh42g4rmxd14dyg5b421p1ljc"; + }) + ]; + postBuild = "gcc -O2 -o setlayout $(pkg-config --cflags --libs x11) $setlayoutSrc"; # Openbox needs XDG_DATA_DIRS set or it can't find its default theme diff --git a/pkgs/applications/window-managers/picom/default.nix b/pkgs/applications/window-managers/picom/default.nix index ad5f73ab173..8ea724aa694 100644 --- a/pkgs/applications/window-managers/picom/default.nix +++ b/pkgs/applications/window-managers/picom/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "picom"; - version = "7.5"; + version = "8"; src = fetchFromGitHub { owner = "yshui"; repo = "picom"; rev = "v${version}"; - sha256 = "1l48fxl04vkzr4r94sl37nbbw7a621rn8sxmkbdv4252i1gjxd4z"; + sha256 = "04svbv7v73q8yn9la69451rda6l2pgxcphv2zlkdqaxxdbp69195"; fetchSubmodules = true; }; diff --git a/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch b/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch index 219d6dcbe20..ed22ed99b07 100644 --- a/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch +++ b/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch @@ -1,30 +1,31 @@ +diff --git a/libqtile/backend/x11/xcursors.py b/libqtile/backend/x11/xcursors.py +index 24454b83..ef37875c 100644 +--- a/libqtile/backend/x11/xcursors.py ++++ b/libqtile/backend/x11/xcursors.py +@@ -107,7 +107,7 @@ class Cursors(dict): + + def _setup_xcursor_binding(self): + try: +- xcursor = ffi.dlopen('libxcb-cursor.so.0') ++ xcursor = ffi.dlopen('@xcb-cursor@/lib/libxcb-cursor.so.0') + except OSError: + logger.warning("xcb-cursor not found, fallback to font pointer") + return False diff --git a/libqtile/pangocffi.py b/libqtile/pangocffi.py -index 1e8f5c04..e860d43a 100644 +index dbae27ed..54c2c35f 100644 --- a/libqtile/pangocffi.py +++ b/libqtile/pangocffi.py -@@ -58,9 +58,9 @@ except ImportError: - else: - raise ImportError("No module named libqtile._ffi_pango, be sure to run `python ./libqtile/ffi_build.py`") +@@ -52,10 +52,9 @@ try: + except ImportError: + raise ImportError("No module named libqtile._ffi_pango, be sure to run `./scripts/ffibuild`") -gobject = ffi.dlopen('libgobject-2.0.so.0') -pango = ffi.dlopen('libpango-1.0.so.0') -pangocairo = ffi.dlopen('libpangocairo-1.0.so.0') +- +gobject = ffi.dlopen('@glib@/lib/libgobject-2.0.so.0') +pango = ffi.dlopen('@pango@/lib/libpango-1.0.so.0') +pangocairo = ffi.dlopen('@pango@/lib/libpangocairo-1.0.so.0') - - def CairoContext(cairo_t): -diff --git a/libqtile/xcursors.py b/libqtile/xcursors.py -index f1133555..3e61204a 100644 ---- a/libqtile/xcursors.py -+++ b/libqtile/xcursors.py -@@ -112,7 +112,7 @@ class Cursors(dict): - - def _setup_xcursor_binding(self): - try: -- xcursor = ffi.dlopen('libxcb-cursor.so.0') -+ xcursor = ffi.dlopen('@xcb-cursor@/lib/libxcb-cursor.so.0') - except OSError: - logger.warning("xcb-cursor not found, fallback to font pointer") - return False + def patch_cairo_context(cairo_t): + def create_layout(): diff --git a/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch b/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch index a01f14062f1..1eaa5b84174 100644 --- a/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch +++ b/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch @@ -1,5 +1,5 @@ diff --git a/bin/qshell b/bin/qshell -index 2ba7e61c..0ac2a2ef 100755 +index 5c652b7a..2d169eb2 100755 --- a/bin/qshell +++ b/bin/qshell @@ -28,5 +28,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, "..")) @@ -10,7 +10,7 @@ index 2ba7e61c..0ac2a2ef 100755 from libqtile.scripts import qshell qshell.main() diff --git a/bin/qtile b/bin/qtile -index 3e82814d..335b5cea 100755 +index ebc8fab5..08a965ef 100755 --- a/bin/qtile +++ b/bin/qtile @@ -29,5 +29,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, "..")) @@ -20,8 +20,19 @@ index 3e82814d..335b5cea 100755 + __import__("importlib").import_module("libqtile.utils").restore_os_environment() from libqtile.scripts import qtile qtile.main() +diff --git a/bin/qtile-cmd b/bin/qtile-cmd +index a2136ee6..3d37a6d9 100755 +--- a/bin/qtile-cmd ++++ b/bin/qtile-cmd +@@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, "..")) + sys.path.insert(0, base_dir) + + if __name__ == '__main__': ++ __import__("importlib").import_module("libqtile.utils").restore_os_environment() + from libqtile.scripts import qtile_cmd + qtile_cmd.main() diff --git a/bin/qtile-run b/bin/qtile-run -index e4b121be..1c203bc9 100755 +index ac4cb1fd..74c589cb 100755 --- a/bin/qtile-run +++ b/bin/qtile-run @@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, "..")) @@ -32,7 +43,7 @@ index e4b121be..1c203bc9 100755 from libqtile.scripts import qtile_run qtile_run.main() diff --git a/bin/qtile-top b/bin/qtile-top -index 5316e0e7..272c6430 100755 +index a6251f27..0d524b1d 100755 --- a/bin/qtile-top +++ b/bin/qtile-top @@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, "..")) @@ -43,14 +54,13 @@ index 5316e0e7..272c6430 100755 from libqtile.scripts import qtile_top qtile_top.main() diff --git a/libqtile/utils.py b/libqtile/utils.py -index 550ed02677e..1358a66f3df 100644 +index 2628c898..05117be7 100644 --- a/libqtile/utils.py +++ b/libqtile/utils.py -@@ -272,3 +272,11 @@ def safe_import(module_names, class_name, globals_, fallback=None): - logger.debug("%s", traceback.format_exc()) - if fallback: - globals_[class_name] = fallback(module_path, class_name, error) -+ +@@ -270,3 +270,10 @@ def guess_terminal(): + return terminal + + logger.error('Default terminal has not been found.') + +def restore_os_environment(): + pythonpath = os.environ.pop("QTILE_SAVED_PYTHONPATH", "") @@ -58,3 +68,4 @@ index 550ed02677e..1358a66f3df 100644 + path = os.environ.pop("QTILE_SAVED_PATH", None) + if path: + os.environ["PATH"] = path + diff --git a/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch b/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch index 87fd1977379..c04d8a83c1a 100644 --- a/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch +++ b/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch @@ -1,8 +1,8 @@ -diff --git a/libqtile/manager.py b/libqtile/manager.py -index fc198e9bae7..860b97d8db1 100644 ---- a/libqtile/manager.py -+++ b/libqtile/manager.py -@@ -1402,7 +1402,7 @@ class Qtile(command.CommandObject): +diff --git a/libqtile/core/manager.py b/libqtile/core/manager.py +index c22eeb6a..2ffe4eab 100644 +--- a/libqtile/core/manager.py ++++ b/libqtile/core/manager.py +@@ -278,7 +278,7 @@ class Qtile(CommandObject): logger.error("Unable to pickle qtile state") argv = [s for s in argv if not s.startswith('--with-state')] argv.append('--with-state=' + buf.getvalue().decode()) @@ -10,4 +10,4 @@ index fc198e9bae7..860b97d8db1 100644 + self._restart = (os.environ.get("QTILE_WRAPPER", "@out@/bin/qtile"), argv[1:]) self.stop() - def cmd_spawn(self, cmd): + async def finalize(self): diff --git a/pkgs/applications/window-managers/qtile/default.nix b/pkgs/applications/window-managers/qtile/default.nix index eb56e9c1639..eccf5c163a8 100644 --- a/pkgs/applications/window-managers/qtile/default.nix +++ b/pkgs/applications/window-managers/qtile/default.nix @@ -7,13 +7,13 @@ in python37Packages.buildPythonApplication rec { name = "qtile-${version}"; - version = "0.13.0"; + version = "0.16.0"; src = fetchFromGitHub { owner = "qtile"; repo = "qtile"; rev = "v${version}"; - sha256 = "1lyclnn8hs6wl4w9v5b4hh2q0pvmsn7cyibpskhbpw0cgv7bvi90"; + sha256 = "1klv1k9847nyx71sfrhqyl1k51k2w8phqnp2bns4dvbqii7q125l"; }; patches = [ @@ -23,16 +23,18 @@ python37Packages.buildPythonApplication rec { ]; postPatch = '' - substituteInPlace libqtile/manager.py --subst-var-by out $out + substituteInPlace libqtile/core/manager.py --subst-var-by out $out substituteInPlace libqtile/pangocffi.py --subst-var-by glib ${glib.out} substituteInPlace libqtile/pangocffi.py --subst-var-by pango ${pango.out} - substituteInPlace libqtile/xcursors.py --subst-var-by xcb-cursor ${xcbutilcursor.out} + substituteInPlace libqtile/backend/x11/xcursors.py --subst-var-by xcb-cursor ${xcbutilcursor.out} ''; + SETUPTOOLS_SCM_PRETEND_VERSION = version; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ glib libxcb cairo pango python37Packages.xcffib ]; - pythonPath = with python37Packages; [ xcffib cairocffi-xcffib setuptools ]; + pythonPath = with python37Packages; [ xcffib cairocffi-xcffib setuptools setuptools_scm ]; postInstall = '' wrapProgram $out/bin/qtile \ @@ -41,7 +43,7 @@ python37Packages.buildPythonApplication rec { --run 'export QTILE_SAVED_PATH=$PATH' ''; - doCheck = false; # Requires X server. + doCheck = false; # Requires X server #TODO this can be worked out with the existing NixOS testing infrastructure. meta = with stdenv.lib; { homepage = "http://www.qtile.org/"; diff --git a/pkgs/applications/window-managers/smallwm/default.nix b/pkgs/applications/window-managers/smallwm/default.nix new file mode 100644 index 00000000000..b6d3821e8d0 --- /dev/null +++ b/pkgs/applications/window-managers/smallwm/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub +, doxygen, graphviz, libX11, libXrandr }: + +stdenv.mkDerivation rec { + + pname = "smallwm"; + version = "2020-02-28"; + + src = fetchFromGitHub { + owner = "adamnew123456"; + repo = "SmallWM"; + rev = "c2dc72afa87241bcf7e646630f4aae216ce78613"; + sha256 = "0cqhy81ymdcdyvgi55a401rr96h2akskcxi9ddzjbln4a71yjlz8"; + }; + + nativeBuildInputs = [ doxygen graphviz ]; + buildInputs = [ libX11 libXrandr ]; + + dontConfigure = true; + + makeFlags = [ "CC=${stdenv.cc}/bin/cc" "CXX=${stdenv.cc}/bin/c++" ]; + + buildFlags = [ "all" "doc" ]; + + installPhase = '' + install -dm755 $out/bin $out/share/doc/${pname}-${version} + install -m755 bin/smallwm -t $out/bin + cp -r README.markdown doc/html doc/latex $out/share/doc/${pname}-${version} + ''; + + meta = with stdenv.lib;{ + description = "A small X window manager, extended from tinywm"; + homepage = "https://github.com/adamnew123456/SmallWM"; + license = licenses.bsd2; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/spectrwm/default.nix b/pkgs/applications/window-managers/spectrwm/default.nix index b38cb990617..c3ab5589486 100644 --- a/pkgs/applications/window-managers/spectrwm/default.nix +++ b/pkgs/applications/window-managers/spectrwm/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation { pname = "spectrwm"; - version = "3.3.0"; + version = "3.4.1"; src = fetchFromGitHub { owner = "conformal"; repo = "spectrwm"; - rev = "SPECTRWM_3_3_0"; - sha256 = "139mswlr0z5dbp5migm98qqg84syq0py1qladp3226xy6q3bnn08"; + rev = "SPECTRWM_3_4_1"; + sha256 = "0bf0d25yr0craksamczn2mdy6cjp27l88smihlw9bw4p6a2qhi41"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/window-managers/sway/contrib.nix b/pkgs/applications/window-managers/sway/contrib.nix new file mode 100644 index 00000000000..fd44f4a5be5 --- /dev/null +++ b/pkgs/applications/window-managers/sway/contrib.nix @@ -0,0 +1,95 @@ +{ stdenv + +, fetchurl +, coreutils +, makeWrapper +, sway-unwrapped +, installShellFiles +, wl-clipboard +, libnotify +, slurp +, grim +, jq + +, python3Packages +}: + +{ + +grimshot = stdenv.mkDerivation rec { + pname = "grimshot"; + version = sway-unwrapped.version; + + src = sway-unwrapped.src; + + dontBuild = true; + dontConfigure = true; + + outputs = [ "out" "man" ]; + + nativeBuildInputs = [ makeWrapper installShellFiles ]; + + installPhase = '' + installManPage contrib/grimshot.1 + + install -Dm 0755 contrib/grimshot $out/bin/grimshot + wrapProgram $out/bin/grimshot --set PATH \ + "${stdenv.lib.makeBinPath [ + sway-unwrapped + wl-clipboard + coreutils + libnotify + slurp + grim + jq + ] }" + ''; + + doInstallCheck = true; + + installCheckPhase = '' + # check always returns 0 + if [[ $($out/bin/grimshot check | grep "NOT FOUND") ]]; then false + else + echo "grimshot check passed" + fi + ''; + + meta = with stdenv.lib; { + description = "A helper for screenshots within sway"; + homepage = "https://github.com/swaywm/sway/tree/master/contrib"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ + sway-unwrapped.meta.maintainers + evils + ]; + }; +}; + + +inactive-windows-transparency = python3Packages.buildPythonApplication rec { + # long name is long + lname = "inactive-windows-transparency"; + pname = "sway-${lname}"; + version = sway-unwrapped.version; + + src = sway-unwrapped.src; + + format = "other"; + dontBuild = true; + dontConfigure = true; + + propagatedBuildInputs = [ python3Packages.i3ipc ]; + + installPhase = '' + install -Dm 0755 $src/contrib/${lname}.py $out/bin/${lname}.py + ''; + + meta = sway-unwrapped.meta // { + description = "It makes inactive sway windows transparent"; + homepage = "https://github.com/swaywm/sway/tree/${sway-unwrapped.version}/contrib"; + }; +}; + +} diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix index 66681ef0850..da58d844ee8 100644 --- a/pkgs/applications/window-managers/sway/default.nix +++ b/pkgs/applications/window-managers/sway/default.nix @@ -1,20 +1,19 @@ { stdenv, fetchFromGitHub, makeWrapper -, meson, ninja -, pkgconfig, scdoc -, wayland, libxkbcommon, pcre, json_c, dbus, libevdev +, meson, ninja, pkg-config, wayland, scdoc +, libxkbcommon, pcre, json_c, dbus, libevdev , pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg , wlroots, wayland-protocols }: stdenv.mkDerivation rec { pname = "sway-unwrapped"; - version = "1.4"; + version = "1.5"; src = fetchFromGitHub { owner = "swaywm"; repo = "sway"; rev = version; - sha256 = "11qf89y3q92g696a6f4d23qb44gqixg6qxq740vwv2jw59ms34ja"; + sha256 = "0r3b7h778l9i20z3him9i2qsaynpn9y78hzfgv3cqi8fyry2c4f9"; }; patches = [ @@ -22,8 +21,12 @@ stdenv.mkDerivation rec { ./load-configuration-from-etc.patch ]; + postPatch = '' + substituteInPlace meson.build --replace "v1.5" "1.5" + ''; + nativeBuildInputs = [ - pkgconfig meson ninja scdoc + meson ninja pkg-config wayland scdoc ]; buildInputs = [ @@ -32,16 +35,23 @@ stdenv.mkDerivation rec { wlroots wayland-protocols ]; - enableParallelBuilding = true; - mesonFlags = [ - "-Ddefault-wallpaper=false" "-Dxwayland=enabled" "-Dgdk-pixbuf=enabled" - "-Dtray=enabled" "-Dman-pages=enabled" + "-Ddefault-wallpaper=false" ]; meta = with stdenv.lib; { - description = "i3-compatible tiling Wayland compositor"; + description = "An i3-compatible tiling Wayland compositor"; + longDescription = '' + Sway is a tiling Wayland compositor and a drop-in replacement for the i3 + window manager for X11. It works with your existing i3 configuration and + supports most of i3's features, plus a few extras. + Sway allows you to arrange your application windows logically, rather + than spatially. Windows are arranged into a grid by default which + maximizes the efficiency of your screen and can be quickly manipulated + using only the keyboard. + ''; homepage = "https://swaywm.org"; + changelog = "https://github.com/swaywm/sway/releases/tag/${version}"; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ primeos synthetica ma27 ]; diff --git a/pkgs/applications/window-managers/sway/lock-effects.nix b/pkgs/applications/window-managers/sway/lock-effects.nix index e07080497f4..a6c8d5cd1c3 100644 --- a/pkgs/applications/window-managers/sway/lock-effects.nix +++ b/pkgs/applications/window-managers/sway/lock-effects.nix @@ -6,14 +6,13 @@ stdenv.mkDerivation rec { pname = "swaylock-effects"; - version = "v1.6-0"; + version = "v1.6-1"; src = fetchFromGitHub { owner = "mortie"; repo = "swaylock-effects"; rev = version; - sha256 = "15lshqq3qj9m3yfac65hjcciaf9zdfh3ir7hgh0ach7gpi3rbk13"; - + sha256 = "044fc4makjx8v29fkx5xlil6vr1v4r0k6c8741pl67gzvlm4cx3i"; }; postPatch = '' @@ -30,7 +29,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Screen locker for Wayland"; longDescription = '' - swaylock-effects is a screen locking utility for Wayland compositors. + Swaylock, with fancy effects ''; inherit (src.meta) homepage; license = licenses.mit; diff --git a/pkgs/applications/window-managers/sway/lock.nix b/pkgs/applications/window-managers/sway/lock.nix index dcff3a5c47f..7cbba5e981b 100644 --- a/pkgs/applications/window-managers/sway/lock.nix +++ b/pkgs/applications/window-managers/sway/lock.nix @@ -30,6 +30,8 @@ stdenv.mkDerivation rec { description = "Screen locker for Wayland"; longDescription = '' swaylock is a screen locking utility for Wayland compositors. + Important note: If you don't use the Sway module (programs.sway.enable) + you need to set "security.pam.services.swaylock = {};" manually. ''; inherit (src.meta) homepage; license = licenses.mit; diff --git a/pkgs/applications/window-managers/tinywm/default.nix b/pkgs/applications/window-managers/tinywm/default.nix index 0e30857267b..d6ff4ad51a2 100644 --- a/pkgs/applications/window-managers/tinywm/default.nix +++ b/pkgs/applications/window-managers/tinywm/default.nix @@ -42,10 +42,11 @@ stdenv.mkDerivation rec { - Resize windows interactively with Alt+Button3 drag (right mouse button) - Raise windows with Alt+F1 (not high on usability I know, but I needed a keybinding in there somewhere) - - Focus windows with the mouse pointer (X does this on its own) + - Focus windows with the mouse pointer (X does this on its own) ''; homepage = "http://incise.org/tinywm.html"; maintainers = with maintainers; [ AndersonTorres ]; platforms = libX11.meta.platforms; + license = licenses.publicDomain; }; } diff --git a/pkgs/applications/window-managers/wayfire/default.nix b/pkgs/applications/window-managers/wayfire/default.nix index c870d7aed78..8014be48649 100644 --- a/pkgs/applications/window-managers/wayfire/default.nix +++ b/pkgs/applications/window-managers/wayfire/default.nix @@ -1,66 +1,31 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, meson, ninja, pkg-config, git +{ stdenv, lib, fetchurl, meson, ninja, pkg-config , cairo, libdrm, libexecinfo, libinput, libjpeg, libxkbcommon, wayland , wayland-protocols, wf-config, wlroots }: -let - self = stdenv.mkDerivation rec { - pname = "wayfire"; - version = "0.4.0"; +stdenv.mkDerivation rec { + pname = "wayfire"; + version = "0.5.0"; - src = fetchFromGitHub { - owner = "WayfireWM"; - repo = "wayfire"; - rev = version; - sha256 = "01rfkb7m1b4d0a9ph9c9jzaa7q6xa91i2ygd3xcnkz35b35qcxn2"; - }; - - patches = [ - # Fix gles32 support with Nixpkgs' LibGL's glesv2.pc. Can be - # removed if <https://github.com/WayfireWM/wayfire/pull/496> is - # applied upstream. - (fetchpatch { - url = "https://github.com/WayfireWM/wayfire/commit/ca3c74d9f472e929bee45a89e40fe6351e9d0bf5.patch"; - sha256 = "0jl36z1n0vs4dzsxxp4n1wzlzcasm5hy12dpnr3c9gzwlvns3wk9"; - }) - - # The following three patches add support for plugins installed - # outside of Wayfire's prefix. Without these, Wayfire plugins - # would all have to be built in this derivation. All three - # patches can be removed if - # <https://github.com/WayfireWM/wayfire/pull/497> is applied - # upstream. - (fetchpatch { - url = "https://github.com/WayfireWM/wayfire/commit/b9a456c8304546bfb66a9474a47937180b2d2555.patch"; - sha256 = "1l6vsch5n8h6830bisnzdfjjrvp3q9hqml3hzb5d99lrmc3zcld8"; - }) - (fetchpatch { - url = "https://github.com/WayfireWM/wayfire/commit/4bc39424688b8919311bc7ceee9eae2374e4d521.patch"; - excludes = [ "subprojects/wf-config" ]; - sha256 = "1cqhzbqlwlz0gv5239bx29yfjfmfv0lwyb3qx4wcnwxc3f70vr64"; - }) - (fetchpatch { - url = "https://github.com/WayfireWM/wayfire/commit/39096c8b544d06addf88234a16a93f9a2aada07c.patch"; - sha256 = "0in6mcx045grbdxwzgckhyfvffq7xs5k1n3pij6fxh9ckjylpx5k"; - }) - ]; + src = fetchurl { + url = "https://github.com/WayfireWM/wayfire/releases/download/${version}/wayfire-${version}.tar.xz"; + sha256 = "1zispx756b3jvmiwli2vp92vkfyzv3zdkffw0bmzgryh7balsq58"; + }; - strictDeps = true; - nativeBuildInputs = [ meson ninja pkg-config wayland git ]; - buildInputs = [ - cairo libdrm libexecinfo libinput libjpeg libxkbcommon wayland - wayland-protocols wf-config wlroots - ]; + strictDeps = true; + nativeBuildInputs = [ meson ninja pkg-config wayland ]; + buildInputs = [ + cairo libdrm libexecinfo libinput libjpeg libxkbcommon wayland + wayland-protocols wf-config wlroots + ]; - mesonFlags = [ "--sysconfdir" "/etc" ]; + mesonFlags = [ "--sysconfdir" "/etc" ]; - meta = with lib; { - homepage = "https://wayfire.org/"; - description = "3D wayland compositor"; - license = licenses.mit; - maintainers = with maintainers; [ qyliss wucke13 ]; - platforms = platforms.unix; - }; + meta = with lib; { + homepage = "https://wayfire.org/"; + description = "3D wayland compositor"; + license = licenses.mit; + maintainers = with maintainers; [ qyliss wucke13 ]; + platforms = platforms.unix; }; -in -self +} diff --git a/pkgs/applications/window-managers/wayfire/wcm.nix b/pkgs/applications/window-managers/wayfire/wcm.nix index 7c246d9e0f7..d8ffe22d58c 100644 --- a/pkgs/applications/window-managers/wayfire/wcm.nix +++ b/pkgs/applications/window-managers/wayfire/wcm.nix @@ -1,36 +1,18 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, meson, ninja, pkg-config, wayland +{ stdenv, lib, fetchFromGitHub, meson, ninja, pkg-config, wayland , gnome3, libevdev, libxml2, wayfire, wayland-protocols, wf-config, wf-shell }: stdenv.mkDerivation rec { pname = "wcm"; - version = "0.4.0"; + version = "0.5.0"; src = fetchFromGitHub { owner = "WayfireWM"; repo = "wcm"; rev = "v${version}"; - sha256 = "0irypa0814nmsmi9s8wxwfs507w41g41zjv8dkp0fdhg0429zxwa"; + sha256 = "1b22gymqfn0c49nf39676q5bj25rxab874iayiq31cmn14r30dyg"; }; - patches = [ - # The following three patches add support for loading Wayfire - # plugin metadata from outside of Wayfire's prefix. Remove if - # <https://github.com/WayfireWM/wcm/pull/18> is applied upstream. - (fetchpatch { - url = "https://github.com/WayfireWM/wcm/commit/8930ce96f51175947c42a605a520adc7282138ef.patch"; - sha256 = "10s3jikm99msxx73k6ccam8jlpdvvy379mifks4zmpfbag9ammrl"; - }) - (fetchpatch { - url = "https://github.com/WayfireWM/wcm/commit/07dfe16bf83ca3389ddfa8b1f90afee0a8c16135.patch"; - sha256 = "1hgqzqpf2anyhfb1bl4v3n2vwsw0w7far651p7aisn9vr6iqbmls"; - }) - (fetchpatch { - url = "https://github.com/WayfireWM/wcm/commit/0864c3d842ca1dfe6b2d25013941a7679d867458.patch"; - sha256 = "1z4zjl9al09wgb39gyc4g2ib5kkzppq37zla6ncmhmglis4l8arn"; - }) - ]; - strictDeps = true; nativeBuildInputs = [ meson ninja pkg-config wayland ]; buildInputs = [ diff --git a/pkgs/applications/window-managers/wayfire/wf-config.nix b/pkgs/applications/window-managers/wayfire/wf-config.nix index 31e0b5a7a49..dad9c555f5e 100644 --- a/pkgs/applications/window-managers/wayfire/wf-config.nix +++ b/pkgs/applications/window-managers/wayfire/wf-config.nix @@ -1,30 +1,14 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, meson, ninja, pkg-config -, glm, libevdev, libxml2 -}: +{ stdenv, lib, fetchurl, meson, ninja, pkg-config, glm, libevdev, libxml2 }: stdenv.mkDerivation rec { pname = "wf-config"; - version = "0.4.0"; + version = "0.5.0"; - src = fetchFromGitHub { - owner = "WayfireWM"; - repo = "wf-config"; - rev = version; - sha256 = "0pb2v71x0dv9s96wi20d9bc9rlxzr85rba7vny6751j7frqr4xf7"; + src = fetchurl { + url = "https://github.com/WayfireWM/wf-config/releases/download/0.5.0/wf-config-0.5.0.tar.xz"; + sha256 = "0xbvfy31pl6mj0nac921gqksyh6jb8ccap30p94lw6r6fb17wz57"; }; - patches = [ - # Modify wf::config::build_configuration to allow plugins - # installed outside of Wayfire's prefix. Otherwise, we'd have to - # build all Wayfire plugins in the wayfire derivation. Remove if - # <https://github.com/WayfireWM/wf-config/pull/25> is applied - # upstream. - (fetchpatch { - url = "https://github.com/WayfireWM/wf-config/commit/36578282f774d71eb8ebcd2dfc9d923eb70ac637.patch"; - sha256 = "152744xgi9ha135r7qfyivdl5cgcp9kik224ncwqv9a480m7nwj6"; - }) - ]; - strictDeps = true; nativeBuildInputs = [ meson ninja pkg-config ]; buildInputs = [ libevdev libxml2 ]; diff --git a/pkgs/applications/window-managers/wayfire/wf-shell.nix b/pkgs/applications/window-managers/wayfire/wf-shell.nix index 5bddd954f0d..2cb1c1f1a1c 100644 --- a/pkgs/applications/window-managers/wayfire/wf-shell.nix +++ b/pkgs/applications/window-managers/wayfire/wf-shell.nix @@ -1,50 +1,20 @@ -{ stdenv, lib, fetchurl, fetchpatch, meson, ninja, pkg-config, wayland, git +{ stdenv, lib, fetchurl, meson, ninja, pkg-config, wayland, git , alsaLib, gnome3, gtk-layer-shell, pulseaudio, wayfire, wf-config }: stdenv.mkDerivation rec { pname = "wf-shell"; - version = "0.4.0"; + version = "0.5.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 = "184sdbfqisz96r0k9dmp8vc1arw9bs7nhkv3pbv9pxkj5liya0xw"; + sha256 = "1w4jhy84v9ky9s1iw36msn8189a3pwkvvivyhl44pfc4fy31wj7s"; }; - patches = [ - # Use the wf::config::build_configuration API as modified by the - # corresponding wf-config patch. Remove if - # <https://github.com/WayfireWM/wf-shell/pull/52> is applied - # upstream. - (fetchpatch { - url = "https://github.com/WayfireWM/wf-shell/commit/078f7d845f39689906d008d857681416c312991a.patch"; - sha256 = "0bgkm9sv9y2y4iyhga453vnffbyi8zy2by3fkhakpjlrzx9qlzza"; - }) - - # Allow wf-shell to be installed into its own prefix, rather than - # wayfire's. Remove if - # <https://github.com/WayfireWM/wf-shell/pull/53> is applied - # upstream. - (fetchpatch { - url = "https://github.com/WayfireWM/wf-shell/commit/482f00455f0b0e08e3fffc844c865e43c80df84b.patch"; - sha256 = "0zcwgshdd5d03fnkz30nmpzv0xv3085iqjmn61r05bin8v2b2b2h"; - }) - - # Generate and install a wf-shell.pc file, so that other packages - # can find wf-shell's metadata directory, rather than assuming - # it's the same as Wayfire's. Remove if - # <https://github.com/WayfireWM/wf-shell/pull/54> is applied - # upstream. - (fetchpatch { - url = "https://github.com/WayfireWM/wf-shell/commit/2c97d63cde3fd683f3b4159f459a5116e1a539f3.patch"; - sha256 = "0pfi6x1ddm9bbhmy48bxmgvqpl754d3f7q91703mzfza0rlwpr4q"; - }) - ]; - strictDeps = true; - nativeBuildInputs = [ meson ninja pkg-config wayland git ]; + nativeBuildInputs = [ meson ninja pkg-config wayland ]; buildInputs = [ alsaLib gnome3.gtkmm gtk-layer-shell pulseaudio wayfire wf-config ]; diff --git a/pkgs/applications/window-managers/wmfs/default.nix b/pkgs/applications/window-managers/wmfs/default.nix index 2013096d6fe..a53fc560abc 100644 --- a/pkgs/applications/window-managers/wmfs/default.nix +++ b/pkgs/applications/window-managers/wmfs/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation { src = fetchFromGitHub { owner = "xorg62"; repo = "wmfs"; - sha256 = "sha256:1m7dsmmlhq2qipim659cp9aqlriz1cwrrgspl8baa5pncln0gd5c"; + sha256 = "1m7dsmmlhq2qipim659cp9aqlriz1cwrrgspl8baa5pncln0gd5c"; rev = "b7b8ff812d28c79cb22a73db2739989996fdc6c2"; }; diff --git a/pkgs/applications/window-managers/yeahwm/default.nix b/pkgs/applications/window-managers/yeahwm/default.nix new file mode 100644 index 00000000000..a8323ff1d38 --- /dev/null +++ b/pkgs/applications/window-managers/yeahwm/default.nix @@ -0,0 +1,58 @@ +{ stdenv, fetchurl +, lesstif +, libX11, libXext, libXmu, libXinerama }: + +stdenv.mkDerivation rec { + + pname = "yeahwm"; + version = "0.3.5"; + + src = fetchurl { + url = "http://phrat.de/${pname}_${version}.tar.gz"; + sha256 = "01gfzjvb40n16m2ja4238nk08k4l203y6a61cydqvf68924fjb69"; + }; + + buildInputs = [ lesstif libX11 libXext libXinerama libXmu ]; + + dontConfigure = true; + + preBuild = '' + makeFlagsArray+=( CC="${stdenv.cc}/bin/cc" \ + XROOT="${libX11}" \ + INCLUDES="-I${libX11.dev}/include -I${libXext.dev}/include -I${libXinerama.dev}/include -I${libXmu.dev}/include" \ + LDPATH="-L${libX11}/lib -L${libXext}/lib -L${libXinerama}/lib -L${libXmu}/lib" \ + prefix="${placeholder "out"}" ) + ''; + + postInstall = '' + gzip -9 --stdout yeahwm.1 > yeahwm.1.gz + install -m644 yeahwm.1.gz ${placeholder "out"}/share/man/man1/ + ''; + + meta = with stdenv.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. + + Features + - Sloppy Focus. + - BeOS-like tabbed titles, which can be repositioned. + - Support for Xinerama. + - Simple Appearance. + - Good keyboard control. + - Creative usage of the mouse. + - Respects aspect size hints. + - Solid resize and move operations. + - Virtual Desktops. + - "Magic" Screen edges for desktop switching. + - Snapping to other windows and screen borders when moving windows. + - Small binary size(ca. 23kb). + - Little resource usage. + - It's slick. + ''; + homepage = "http://phrat.de/index.html"; + license = licenses.isc; + maintainers = [ maintainers.AndersonTorres ]; + platforms = libX11.meta.platforms; + }; +} |