diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix index 51096d80498..af211e3b534 100644 --- a/nixos/modules/services/x11/window-managers/default.nix +++ b/nixos/modules/services/x11/window-managers/default.nix @@ -36,6 +36,7 @@ in ./windowmaker.nix ./wmii.nix ./xmonad.nix + ./yeahwm.nix ./qtile.nix ./none.nix ]; diff --git a/nixos/modules/services/x11/window-managers/yeahwm.nix b/nixos/modules/services/x11/window-managers/yeahwm.nix new file mode 100644 index 00000000000..351bd7dfe48 --- /dev/null +++ b/nixos/modules/services/x11/window-managers/yeahwm.nix @@ -0,0 +1,25 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xserver.windowManager.yeahwm; +in +{ + ###### interface + options = { + services.xserver.windowManager.yeahwm.enable = mkEnableOption "yeahwm"; + }; + + ###### implementation + config = mkIf cfg.enable { + services.xserver.windowManager.session = singleton { + name = "yeahwm"; + start = '' + ${pkgs.yeahwm}/bin/yeahwm & + waitPID=$! + ''; + }; + environment.systemPackages = [ pkgs.yeahwm ]; + }; +} 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; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6e394097bd6..93cc914b583 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22536,6 +22536,8 @@ in vwm = callPackage ../applications/window-managers/vwm { }; + yeahwm = callPackage ../applications/window-managers/yeahwm { }; + vym = qt5.callPackage ../applications/misc/vym { }; waon = callPackage ../applications/audio/waon { };