stumpwm: update and refactoring

This commit updates the stumpwm to version 0.9.8. Futhermore, it
refactors the expression quite a lot:

* stumpwm has been moved from lisp modules to window-managers.
* stumpwm has been added to the window managers NixOS knows about, this
  enables the user to add stumpwm as a default window manager in his
  NixOS configuration like with Xmonad or i3.
* the package has been split into stumpwm and stumpwmContrib. This is
  due to the fact that development of stumpwm and its extension modules
  has been split into two repositories. As of today, the release is the
  last one before this split. This split into two packages only reflect
  those upcoming upstream changes already.

It is planned to make the addition of the extension modules voluntarily,
like with Xmonads option "enableContribAndExtras". Furthermore it might
be possible to add an option to compile stumpwm with clisp instead of
sbcl.
This commit is contained in:
_1126 2014-10-05 14:50:08 +02:00
parent aafca4dd51
commit 7536d41287
5 changed files with 106 additions and 2 deletions

View File

@ -18,6 +18,7 @@ in
./i3.nix
./herbstluftwm.nix
./bspwm.nix
./stumpwm.nix
];
options = {
@ -60,4 +61,4 @@ in
config = {
services.xserver.displayManager.session = cfg.session;
};
}
}

View File

@ -0,0 +1,30 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.windowManager.stumpwm;
in
{
options = {
services.xserver.windowManager.stumpwm = {
enable = mkOption {
type = types.bool;
default = false;
example = true;
description = "Enable the stumpwm tiling window manager.";
};
};
};
config = mkIf cfg.enable {
services.xserver.windowManager.session = singleton {
name = "stumpwm";
start = "
${pkgs.stumpwm}/bin/stumpwm
";
};
environment.systemPackages = [ pkgs.stumpwm ];
};
}

View File

@ -0,0 +1,31 @@
{ stdenv, fetchgit }:
let
tag = "0.9.8";
in
stdenv.mkDerivation rec {
name = "stumpwmContrib-${tag}";
src = fetchgit {
url = "https://github.com/stumpwm/stumpwm";
rev = "refs/tags/${tag}";
sha256 = "0a0lwwlly4hlmb30bk6dmi6bsdsy37g4crvv1z24gixippyv1qzm";
};
phases = [ "unpackPhase" "installPhase" ];
installPhase = ''
mkdir -p $out/bin
cp -a $src/contrib $out/
cp -a $src/contrib/stumpish $out/bin
'';
meta = with stdenv.lib; {
description = "Extension modules for the StumpWM";
homepage = https://github.com/stumpwm/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ _1126 ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,41 @@
{ stdenv, pkgs, fetchgit, autoconf, sbcl, lispPackages, xdpyinfo, texinfo4, makeWrapper, stumpwmContrib }:
let
tag = "0.9.8";
in
stdenv.mkDerivation rec {
name = "stumpwm-${tag}";
src = fetchgit {
url = "https://github.com/stumpwm/stumpwm";
rev = "refs/tags/${tag}";
sha256 = "0a0lwwlly4hlmb30bk6dmi6bsdsy37g4crvv1z24gixippyv1qzm";
};
buildInputs = [ texinfo4 autoconf lispPackages.clx lispPackages.cl-ppcre sbcl makeWrapper stumpwmContrib ];
phases = [ "unpackPhase" "preConfigurePhase" "configurePhase" "installPhase" ];
preConfigurePhase = ''
$src/autogen.sh
mkdir -pv $out/bin
'';
configurePhase = ''
./configure --prefix=$out --with-contrib-dir=${pkgs.stumpwmContrib}/contrib
'';
installPhase = ''
make
make install
'';
meta = with stdenv.lib; {
description = "A tiling window manager for X11";
homepage = https://github.com/stumpwm/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ _1126 ];
platforms = platforms.linux;
};
}

View File

@ -10183,7 +10183,8 @@ let
stp = callPackage ../applications/science/logic/stp {};
stumpwm = lispPackages.stumpwm;
stumpwm = callPackage ../applications/window-managers/stumpwm {};
stumpwmContrib = callPackage ../applications/window-managers/stumpwm/contrib.nix {};
sublime = callPackage ../applications/editors/sublime { };