1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 libbsd,
6 pkg-config,
7 libXrandr,
8 libXcursor,
9 libXft,
10 libXt,
11 xcbutil,
12 xcbutilkeysyms,
13 xcbutilwm,
14}:
15
16stdenv.mkDerivation (finalAttrs: {
17 pname = "spectrwm";
18 version = "3.6.0";
19
20 src = fetchFromGitHub {
21 owner = "conformal";
22 repo = "spectrwm";
23 tag = "SPECTRWM_${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
24 hash = "sha256-Dnn/iIrceiAVuMR8iMGcc7LqNhWC496eT5gNrYOInRU=";
25 };
26
27 nativeBuildInputs = [ pkg-config ];
28 buildInputs = [
29 libXrandr
30 libXcursor
31 libXft
32 libXt
33 xcbutil
34 xcbutilkeysyms
35 xcbutilwm
36 libbsd
37 ];
38
39 sourceRoot = finalAttrs.src.name + (if stdenv.hostPlatform.isDarwin then "/osx" else "/linux");
40
41 makeFlags = [ "PREFIX=${placeholder "out"}" ];
42
43 meta = {
44 description = "Tiling window manager";
45 homepage = "https://github.com/conformal/spectrwm";
46 maintainers = with lib.maintainers; [
47 rake5k
48 ];
49 license = lib.licenses.isc;
50 platforms = lib.platforms.all;
51
52 longDescription = ''
53 spectrwm is a small dynamic tiling window manager for X11. It
54 tries to stay out of the way so that valuable screen real estate
55 can be used for much more important stuff. It has sane defaults
56 and does not require one to learn a language to do any
57 configuration. It was written by hackers for hackers and it
58 strives to be small, compact and fast.
59 '';
60 };
61
62})