2023-09-25 22:34:11 +00:00
|
|
|
{ lib
|
|
|
|
, stdenv
|
|
|
|
, fetchurl
|
|
|
|
, installShellFiles
|
2020-05-12 21:13:51 +00:00
|
|
|
, lesstif
|
2023-09-25 22:34:11 +00:00
|
|
|
, libX11
|
|
|
|
, libXext
|
|
|
|
, libXinerama
|
|
|
|
, libXmu
|
|
|
|
}:
|
2020-05-12 21:13:51 +00:00
|
|
|
|
2023-09-25 22:34:11 +00:00
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
2020-05-12 21:13:51 +00:00
|
|
|
pname = "yeahwm";
|
|
|
|
version = "0.3.5";
|
|
|
|
|
|
|
|
src = fetchurl {
|
2023-09-25 22:34:11 +00:00
|
|
|
url = "http://phrat.de/yeahwm_${finalAttrs.version}.tar.gz";
|
|
|
|
hash = "sha256-ySzpiEjIuI2bZ8Eo4wcQlEwEpkVDECVFNcECsrb87gU=";
|
2020-05-12 21:13:51 +00:00
|
|
|
};
|
|
|
|
|
2023-09-25 22:34:11 +00:00
|
|
|
nativeBuildInputs = [
|
|
|
|
installShellFiles
|
|
|
|
];
|
|
|
|
|
|
|
|
buildInputs = [
|
|
|
|
lesstif
|
|
|
|
libX11
|
|
|
|
libXext
|
|
|
|
libXinerama
|
|
|
|
libXmu
|
|
|
|
];
|
2020-05-12 21:13:51 +00:00
|
|
|
|
2023-09-25 22:34:11 +00:00
|
|
|
strictDeps = true;
|
2020-05-12 21:13:51 +00:00
|
|
|
|
2023-09-25 22:34:11 +00:00
|
|
|
preBuild = let
|
|
|
|
includes = builtins.concatStringsSep " "
|
|
|
|
(builtins.map (l: "-I${lib.getDev l}/include")
|
|
|
|
finalAttrs.buildInputs);
|
|
|
|
ldpath = builtins.concatStringsSep " "
|
|
|
|
(builtins.map (l: "-L${lib.getLib l}/lib")
|
|
|
|
finalAttrs.buildInputs);
|
|
|
|
in ''
|
2020-05-12 21:13:51 +00:00
|
|
|
makeFlagsArray+=( CC="${stdenv.cc}/bin/cc" \
|
|
|
|
XROOT="${libX11}" \
|
2023-09-25 22:34:11 +00:00
|
|
|
INCLUDES="${includes}" \
|
|
|
|
LDPATH="${ldpath}" \
|
2020-05-12 21:13:51 +00:00
|
|
|
prefix="${placeholder "out"}" )
|
|
|
|
'';
|
|
|
|
|
2023-09-25 22:34:11 +00:00
|
|
|
# Workaround build failure on -fno-common toolchains like upstream gcc-10.
|
|
|
|
# Otherwise build fails as:
|
2022-05-18 07:13:17 +00:00
|
|
|
# ld: screen.o:(.bss+0x40): multiple definition of `fg'; client.o:(.bss+0x40): first defined here
|
2023-02-19 19:23:32 +00:00
|
|
|
env.NIX_CFLAGS_COMPILE = "-fcommon";
|
2022-05-18 07:13:17 +00:00
|
|
|
|
2020-05-12 21:13:51 +00:00
|
|
|
postInstall = ''
|
2023-09-25 22:34:11 +00:00
|
|
|
installManPage yeahwm.1
|
2020-05-12 21:13:51 +00:00
|
|
|
'';
|
|
|
|
|
2023-09-25 22:34:11 +00:00
|
|
|
meta = {
|
|
|
|
homepage = "http://phrat.de/index.html";
|
2020-05-12 21:13:51 +00:00
|
|
|
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.
|
|
|
|
'';
|
2023-09-25 22:34:11 +00:00
|
|
|
changelog = "http://phrat.de/README";
|
|
|
|
license = lib.licenses.isc;
|
|
|
|
mainProgram = "yeahwm";
|
|
|
|
maintainers = with lib.maintainers; [ AndersonTorres ];
|
|
|
|
inherit (libX11.meta) platforms;
|
2020-05-12 21:13:51 +00:00
|
|
|
};
|
2023-09-25 22:34:11 +00:00
|
|
|
})
|