aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/window-managers
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/window-managers')
-rw-r--r--nixpkgs/pkgs/applications/window-managers/berry/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/gaps.nix11
-rw-r--r--nixpkgs/pkgs/applications/window-managers/lwm/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/window-managers/openbox/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/window-managers/smallwm/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix14
-rw-r--r--nixpkgs/pkgs/applications/window-managers/tinywm/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/window-managers/yeahwm/default.nix58
14 files changed, 319 insertions, 69 deletions
diff --git a/nixpkgs/pkgs/applications/window-managers/berry/default.nix b/nixpkgs/pkgs/applications/window-managers/berry/default.nix
new file mode 100644
index 00000000000..2a41a3d3c07
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix b/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
index 01887b3bcf1..568258ee2c4 100644
--- a/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
+++ b/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
@@ -9,19 +9,19 @@ in
rustPlatform.buildRustPackage rec {
pname = "dwm-status";
- version = "1.6.3";
+ version = "1.6.4";
src = fetchFromGitHub {
owner = "Gerschtli";
repo = "dwm-status";
rev = version;
- sha256 = "02sprsr7822ynkwpf3xdgmkdrgkw3vgijhlh65bayiv3b5lwb54n";
+ sha256 = "05dhd2gy7ysrnchdimrdd7jvzs1db9fyrk4ci7850jhrgavfd7c4";
};
nativeBuildInputs = [ makeWrapper pkgconfig ];
buildInputs = [ dbus gdk-pixbuf libnotify xorg.libX11 ];
- cargoSha256 = "0xybd6110b29ghl66kxfs64704qlhnn9jb5vl7lfk9sv62cs564i";
+ cargoSha256 = "0zkbps8vsjcvy7x0sgb07kacszi57dlyq8j6ia6yy0jyqnvlaqa7";
postInstall = lib.optionalString (bins != []) ''
wrapProgram $out/bin/dwm-status --prefix "PATH" : "${stdenv.lib.makeBinPath bins}"
diff --git a/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix b/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
index 8c4f6e452f4..7dc715e126c 100644
--- a/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
@@ -1,29 +1,47 @@
-{ stdenv, fetchurl, pkgconfig, glib, libX11, libXext, libXinerama }:
+{ 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;
stdenv.mkDerivation rec {
- name = "herbstluftwm-0.7.2";
+ pname = "herbstluftwm";
+ version = "0.8.1";
src = fetchurl {
- url = "https://herbstluftwm.org/tarballs/${name}.tar.gz";
- sha256 = "1kc18aj9j3nfz6fj4qxg9s3gg4jvn6kzi3ii24hfm0vqdpy17xnz";
+ url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz";
+ sha256 = "0c1lf82z6a56g8asin91cmqhzk3anw0xwc44b31bpjixadmns57y";
};
- patchPhase = ''
- substituteInPlace config.mk \
- --replace "/usr/local" "$out" \
- --replace "/etc" "$out/etc" \
- --replace "/zsh/functions/Completion/X" "/zsh/site-functions" \
- --replace "/usr/share" "\$(PREFIX)/share"
- '';
+ 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;
- nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ glib libX11 libXext libXinerama ];
+ buildInputs = [
+ libX11
+ libXext
+ libXinerama
+ libXrandr
+ ];
meta = {
description = "A manual tiling window manager for X";
- homepage = "http://herbstluftwm.org/";
+ homepage = "https://herbstluftwm.org/";
license = stdenv.lib.licenses.bsd2;
platforms = stdenv.lib.platforms.linux;
- maintainers = with stdenv.lib.maintainers; [ the-kenny ];
};
}
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/default.nix b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
index fd964215d45..3888e10f258 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
@@ -1,18 +1,18 @@
-{ fetchurl, stdenv, which, pkgconfig, makeWrapper, libxcb, xcbutilkeysyms
+{ fetchurl, stdenv, which, pkgconfig, makeWrapper, installShellFiles, libxcb, xcbutilkeysyms
, xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification, libX11, pcre, libev
, yajl, xcb-util-cursor, perl, pango, perlPackages, libxkbcommon
, xorgserver, xvfb_run }:
stdenv.mkDerivation rec {
pname = "i3";
- version = "4.18";
+ version = "4.18.1";
src = fetchurl {
url = "https://i3wm.org/downloads/${pname}-${version}.tar.bz2";
- sha256 = "0dv5g8ycfmijxfjyw8hzsxaf80v09lb73zh7x2vszy78h3amifqz";
+ sha256 = "0z709cianlzw0x0qwq4361347354xd9ckj1v7vjvhb1zh3x91gws";
};
- nativeBuildInputs = [ which pkgconfig makeWrapper ];
+ nativeBuildInputs = [ which pkgconfig makeWrapper installShellFiles ];
buildInputs = [
libxcb xcbutilkeysyms xcbutil xcbutilwm xcbutilxrm libxkbcommon
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
sed -i 's/which/command -v/' $program
done
- install -vD -t $out/share/man/man1 man/*.{1,man}
+ installManPage man/*.1
'';
separateDebugInfo = true;
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix b/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
index 731555ce9f8..7be037ca833 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
@@ -3,20 +3,15 @@
i3.overrideAttrs (oldAttrs : rec {
name = "i3-gaps-${version}";
- version = "4.18";
- releaseDate = "2019-01-27";
+ version = "4.18.1";
src = fetchurl {
- url = "https://github.com/Airblader/i3/archive/${version}.tar.gz";
- sha256 = "04sq2sik7j09kgnn1k87yg3vzy56pk4688bmxh49l6drl0wr1m2v";
+ url = "https://github.com/Airblader/i3/releases/download/${version}/i3-${version}.tar.bz2";
+ sha256 = "1cxwsrdzp18r5hj0ymg9fbzp1mhkj4m9h6i0b9cdg79cjbacba9k";
};
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ autoreconfHook ];
- postUnpack = ''
- echo -n "${version} (${releaseDate})" > ./i3-${version}/I3_VERSION
- '';
-
# fatal error: GENERATED_config_enums.h: No such file or directory
enableParallelBuilding = false;
diff --git a/nixpkgs/pkgs/applications/window-managers/lwm/default.nix b/nixpkgs/pkgs/applications/window-managers/lwm/default.nix
new file mode 100644
index 00000000000..49cdc81b9ce
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/openbox/default.nix b/nixpkgs/pkgs/applications/window-managers/openbox/default.nix
index a4ec6d067dc..39329e8004c 100644
--- a/nixpkgs/pkgs/applications/window-managers/openbox/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/smallwm/default.nix b/nixpkgs/pkgs/applications/window-managers/smallwm/default.nix
new file mode 100644
index 00000000000..b6d3821e8d0
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix b/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix
index 1eb19e2de6f..b38cb990617 100644
--- a/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix
@@ -1,51 +1,37 @@
-{ fetchurl
-, libX11
-, libXrandr
-, libXcursor
-, libXft
-, libXt
-, libxcb
-, xcbutil
-, xcb-util-cursor
-, xcbutilkeysyms
-, xcbutilwm
-, stdenv
-}:
+{ stdenv, fetchFromGitHub, pkgconfig, xorg }:
stdenv.mkDerivation {
pname = "spectrwm";
- version = "2.7.2";
+ version = "3.3.0";
- src = fetchurl {
- url = "https://github.com/conformal/spectrwm/archive/SPECTRWM_2_7_2.tar.gz";
- sha256 = "1yssqnhxlfl1b60gziqp8c5pzs1lr8p6anrnp9ga1zfdql3b7993";
+ src = fetchFromGitHub {
+ owner = "conformal";
+ repo = "spectrwm";
+ rev = "SPECTRWM_3_3_0";
+ sha256 = "139mswlr0z5dbp5migm98qqg84syq0py1qladp3226xy6q3bnn08";
};
-
- buildInputs = [
- libX11
- libxcb
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = with xorg; [
libXrandr
libXcursor
libXft
libXt
xcbutil
- xcb-util-cursor
xcbutilkeysyms
xcbutilwm
];
sourceRoot = let
subdir = if stdenv.isDarwin then "osx" else "linux";
- in "spectrwm-SPECTRWM_2_7_2/${subdir}";
+ in "source/${subdir}";
- makeFlags = [ "PREFIX=$(out)" ];
- installPhase = "PREFIX=$out make install";
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
meta = with stdenv.lib; {
description = "A tiling window manager";
homepage = "https://github.com/conformal/spectrwm";
- maintainers = with maintainers; [ jb55 ];
+ maintainers = with maintainers; [ christianharke ];
license = licenses.isc;
platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix b/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix
index 3ee50bf16ec..b059423c23c 100644
--- a/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix
@@ -97,7 +97,6 @@ stdenv.mkDerivation {
description = "A tiling window manager for X11";
homepage = "https://github.com/stumpwm/";
license = licenses.gpl2Plus;
- maintainers = with maintainers; [ the-kenny ];
platforms = platforms.linux;
broken = true; # 2018-04-11
};
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/default.nix b/nixpkgs/pkgs/applications/window-managers/sway/default.nix
index 66596d9de04..66681ef0850 100644
--- a/nixpkgs/pkgs/applications/window-managers/sway/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sway/default.nix
@@ -2,7 +2,7 @@
, meson, ninja
, pkgconfig, scdoc
, wayland, libxkbcommon, pcre, json_c, dbus, libevdev
-, pango, cairo, libinput, libcap, pam, gdk-pixbuf
+, pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg
, wlroots, wayland-protocols
}:
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
buildInputs = [
wayland libxkbcommon pcre json_c dbus libevdev
- pango cairo libinput libcap pam gdk-pixbuf
+ pango cairo libinput libcap pam gdk-pixbuf librsvg
wlroots wayland-protocols
];
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix b/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix
index 7c59b8b7cde..fe78e1a9ff9 100644
--- a/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix
@@ -2,7 +2,7 @@
, sway-unwrapped, swaybg
, makeWrapper, symlinkJoin, writeShellScriptBin
, withBaseWrapper ? true, extraSessionCommands ? "", dbus
-, withGtkWrapper ? false, wrapGAppsHook, gdk-pixbuf
+, withGtkWrapper ? false, wrapGAppsHook, gdk-pixbuf, glib, gtk3
, extraOptions ? [] # E.g.: [ "--verbose" ]
}:
@@ -14,8 +14,8 @@ let
baseWrapper = writeShellScriptBin "sway" ''
set -o errexit
if [ ! "$_SWAY_WRAPPER_ALREADY_EXECUTED" ]; then
- export _SWAY_WRAPPER_ALREADY_EXECUTED=1
${extraSessionCommands}
+ export _SWAY_WRAPPER_ALREADY_EXECUTED=1
fi
if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
export DBUS_SESSION_BUS_ADDRESS
@@ -33,12 +33,14 @@ in symlinkJoin {
nativeBuildInputs = [ makeWrapper ]
++ (optional withGtkWrapper wrapGAppsHook);
- buildInputs = optional withGtkWrapper gdk-pixbuf;
+ buildInputs = optionals withGtkWrapper [ gdk-pixbuf glib gtk3 ];
+
+ # We want to run wrapProgram manually
+ dontWrapGApps = true;
postBuild = ''
- # We want to run wrapProgram manually to only wrap sway and add swaybg:
- export dontWrapGApps=true
- ${optionalString withGtkWrapper "wrapGAppsHook"}
+ ${optionalString withGtkWrapper "gappsWrapperArgsHook"}
+
wrapProgram $out/bin/sway \
--prefix PATH : "${swaybg}/bin" \
${optionalString withGtkWrapper ''"''${gappsWrapperArgs[@]}"''} \
diff --git a/nixpkgs/pkgs/applications/window-managers/tinywm/default.nix b/nixpkgs/pkgs/applications/window-managers/tinywm/default.nix
new file mode 100644
index 00000000000..0e30857267b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/tinywm/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub
+, libX11 }:
+
+stdenv.mkDerivation rec {
+ pname = "tinywm";
+ version = "2014-04-22";
+
+ src = fetchFromGitHub {
+ owner = "mackstann";
+ repo = pname;
+ rev = "9d05612f41fdb8bc359f1fd9cc930bf16315abb1";
+ sha256 = "1s7r4f2d3lk1i8h089v2vyrr02hh0y9i3ihl9kqgk9s87hqw8q5b";
+ };
+
+ buildInputs = [ libX11 ];
+
+ dontConfigure = true;
+
+ buildPhase = ''
+ ${stdenv.cc}/bin/cc -Wall -pedantic -I${libX11}/include tinywm.c -L${libX11}/lib -lX11 -o tinywm
+ '';
+
+ installPhase = ''
+ install -dm755 $out/bin $out/share/doc/${pname}-${version}
+ install -m755 tinywm -t $out/bin/
+ # The annotated source code is a piece of documentation
+ install -m644 annotated.c README -t $out/share/doc/${pname}-${version}
+ '';
+
+ meta = with stdenv.lib;{
+ description = "A tiny window manger for X11";
+ longDescription = ''
+
+ TinyWM is a tiny window manager that I created as an exercise in
+ minimalism. It is also maybe helpful in learning some of the very basics
+ of creating a window manager. It is only around 50 lines of C. There is
+ also a Python version using python-xlib.
+
+ It lets you do four basic things:
+
+ - Move windows interactively with Alt+Button1 drag (left mouse button)
+ - 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)
+ '';
+ homepage = "http://incise.org/tinywm.html";
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = libX11.meta.platforms;
+ };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/yeahwm/default.nix b/nixpkgs/pkgs/applications/window-managers/yeahwm/default.nix
new file mode 100644
index 00000000000..a8323ff1d38
--- /dev/null
+++ b/nixpkgs/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;
+ };
+}