diff --git a/nixos/modules/services/x11/window-managers/afterstep.nix b/nixos/modules/services/x11/window-managers/afterstep.nix new file mode 100644 index 000000000000..395dabb86b5e --- /dev/null +++ b/nixos/modules/services/x11/window-managers/afterstep.nix @@ -0,0 +1,28 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xserver.windowManager.afterstep; +in +{ + ###### interface + options = { + services.xserver.windowManager.afterstep.enable = mkOption { + default = false; + description = "Enable the Afterstep window manager."; + }; + }; + + ###### implementation + config = mkIf cfg.enable { + services.xserver.windowManager.session = singleton { + name = "afterstep"; + start = '' + ${pkgs.afterstep}/bin/afterstep & + waitPID=$! + ''; + }; + environment.systemPackages = [ pkgs.afterstep ]; + }; +} diff --git a/pkgs/applications/window-managers/afterstep/default.nix b/pkgs/applications/window-managers/afterstep/default.nix new file mode 100644 index 000000000000..962942905db0 --- /dev/null +++ b/pkgs/applications/window-managers/afterstep/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, pkgconfig +, libjpeg, libtiff, libpng, freetype +, fltk, gtk +, libX11, libXext, libICE +, dbus, dbus_libs +}: + +stdenv.mkDerivation rec { + + name = "afterstep-${version}"; + version = "2.2.12"; + sourceName = "AfterStep-${version}"; + + src = fetchurl { + urls = [ "ftp://ftp.afterstep.org/stable/${sourceName}.tar.bz2" ]; + sha256 = "1j7vkx1ig4kzwffdxnkqv3kld9qi3sam4w2nhq18waqjsi8xl5gz"; + }; + + buildInputs = [ pkgconfig libjpeg libtiff libpng freetype fltk gtk libX11 libXext libICE dbus dbus_libs ]; + + # A strange type of bug: dbus is not immediately found by pkgconfig + preConfigure = '' + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)" + ''; + + meta = with stdenv.lib; { + description = "A NEXTStep-inspired window manager"; + longDescription = '' + AfterStep is a window manager for the Unix X Window + System. Originally based on the look and feel of the NeXTStep + interface, it provides end users with a consistent, clean, and + elegant desktop. The goal of AfterStep development is to provide + for flexibility of desktop configuration, improving aestetics, + and efficient use of system resources. + ''; + homepage = http://www.afterstep.org/; + license = licenses.gpl2; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; + +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a2684f671083..a160c21fef71 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -167,7 +167,7 @@ let x11 = xlibsWrapper; # `xlibs' is the set of X library components. This used to be the - # old modular X llibraries project (called `xlibs') but now it's just + # old modular X libraries project (called `xlibs') but now it's just # the set of packages in the modular X.org tree (which also includes # non-library components like the server, drivers, fonts, etc.). xlibs = xorg // {xlibs = xlibsWrapper;}; @@ -8456,6 +8456,12 @@ let aewan = callPackage ../applications/editors/aewan { }; + afterstep = callPackage ../applications/window-managers/afterstep { + inherit (xlibs) libX11 libXext libICE; + fltk = fltk13; + gtk = gtk2; + }; + alchemy = callPackage ../applications/graphics/alchemy { }; alock = callPackage ../misc/screensavers/alock { };