Add the bspwm window manager to Nix.

Changed files
+188
lib
nixos
modules
services
x11
window-managers
pkgs
applications
window-managers
tools
misc
sutils
xdo
xtitle
top-level
+1
lib/maintainers.nix
···
madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
marcweber = "Marc Weber <marco-oweber@gmx.de>";
matejc = "Matej Cotman <cotman.matej@gmail.com>";
modulistic = "Pablo Costa <modulistic@gmail.com>";
mornfall = "Petr Ročkai <me@mornfall.net>";
msackman = "Matthew Sackman <matthew@wellquite.org>";
···
madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
marcweber = "Marc Weber <marco-oweber@gmx.de>";
matejc = "Matej Cotman <cotman.matej@gmail.com>";
+
meisternu = "Matt Miemiec <meister@krutt.org>";
modulistic = "Pablo Costa <modulistic@gmail.com>";
mornfall = "Petr Ročkai <me@mornfall.net>";
msackman = "Matthew Sackman <matthew@wellquite.org>";
+1
nixos/modules/module-list.nix
···
#./services/x11/window-managers/compiz.nix
./services/x11/window-managers/default.nix
./services/x11/window-managers/icewm.nix
./services/x11/window-managers/metacity.nix
./services/x11/window-managers/none.nix
./services/x11/window-managers/twm.nix
···
#./services/x11/window-managers/compiz.nix
./services/x11/window-managers/default.nix
./services/x11/window-managers/icewm.nix
+
./services/x11/window-managers/bspwm.nix
./services/x11/window-managers/metacity.nix
./services/x11/window-managers/none.nix
./services/x11/window-managers/twm.nix
+29
nixos/modules/services/x11/window-managers/bspwm.nix
···
···
+
{ config, lib, pkgs, ... }:
+
+
with lib;
+
+
let
+
cfg = config.services.xserver.windowManager.bspwm;
+
in
+
+
{
+
options = {
+
services.xserver.windowManager.bspwm.enable = mkOption {
+
type = types.bool;
+
default = false;
+
example = true;
+
description = "Enable the bspwm window manager.";
+
};
+
};
+
+
config = mkIf cfg.enable {
+
services.xserver.windowManager.session = singleton {
+
name = "bspwm";
+
start = "
+
${pkgs.sxhkd}/bin/sxhkd &
+
${pkgs.bspwm}/bin/bspwm
+
";
+
};
+
environment.systemPackages = [ pkgs.bspwm ];
+
};
+
}
+1
nixos/modules/services/x11/window-managers/default.nix
···
./xmonad.nix
./i3.nix
./herbstluftwm.nix
];
options = {
···
./xmonad.nix
./i3.nix
./herbstluftwm.nix
+
./bspwm.nix
];
options = {
+23
pkgs/applications/window-managers/bar/default.nix
···
···
+
{ stdenv, fetchurl, git, perl, libxcb, libXinerama, xcbutil, xcbutilwm, xcbutilkeysyms }:
+
+
stdenv.mkDerivation rec {
+
name = "bar-1.0";
+
+
+
src = fetchurl {
+
url = "https://github.com/LemonBoy/bar/archive/v1.0.tar.gz";
+
sha256 = "1n2vak2acs37sslxl250cnz9c3irif5z4s54wi9qjyxbfzr2h2nc";
+
};
+
+
buildInputs = [ libxcb git perl libXinerama xcbutil xcbutilkeysyms xcbutilwm ];
+
+
prePatch = ''sed -i "s@/usr@$out@" Makefile'';
+
+
meta = {
+
description = "A lightweight xcb based bar";
+
homepage = "https://github.com/LemonBoy/bar";
+
maintainers = stdenv.lib.maintainers.meisternu;
+
license = "Custom";
+
platforms = stdenv.lib.platforms.linux;
+
};
+
}
+29
pkgs/applications/window-managers/bspwm/default.nix
···
···
+
{ stdenv, fetchurl, libxcb, libXinerama, sxhkd, xcbutil, xcbutilkeysyms, xcbutilwm }:
+
+
stdenv.mkDerivation rec {
+
name = "bspwm-0.8.9";
+
+
+
src = fetchurl {
+
url = "https://github.com/baskerville/bspwm/archive/0.8.9.tar.gz";
+
sha256 = "750c76132914661d8d5edf7809e9b601977215d31e747dd780c60fd562913d55";
+
};
+
+
buildInputs = [ libxcb libXinerama xcbutil xcbutilkeysyms xcbutilwm ];
+
+
buildPhase = ''
+
make PREFIX=$out
+
'';
+
+
installPhase = ''
+
make PREFIX=$out install
+
'';
+
+
meta = {
+
description = "A tiling window manager based on binary space partitioning";
+
homepage = "http://github.com/baskerville/bspwm";
+
maintainers = stdenv.lib.maintainers.meisternu;
+
license = "BSD";
+
platforms = stdenv.lib.platforms.linux;
+
};
+
}
+27
pkgs/applications/window-managers/sxhkd/default.nix
···
···
+
{ stdenv, fetchurl, asciidoc, libxcb, xcbutil, xcbutilkeysyms, xcbutilwm }:
+
+
stdenv.mkDerivation rec {
+
name = "sxhkd-0.5.4";
+
+
src = fetchurl {
+
url = "https://github.com/baskerville/sxhkd/archive/0.5.4.tar.gz";
+
sha256 = "de95f97155319ded41ece9403ac9e9f18bfdd914a09f553ab09b331bbfe5d332";
+
};
+
+
buildInputs = [ asciidoc libxcb xcbutil xcbutilkeysyms xcbutilwm ];
+
+
buildPhase = ''
+
make PREFIX=$out
+
'';
+
+
installPhase = ''
+
make PREFIX=$out install
+
'';
+
+
meta = {
+
description = "Simple X hotkey daemon";
+
homepage = "http://github.com/baskerville/sxhkd";
+
license = "BSD";
+
platforms = stdenv.lib.platforms.linux;
+
};
+
}
+20
pkgs/tools/misc/sutils/default.nix
···
···
+
{ stdenv, fetchurl }:
+
+
stdenv.mkDerivation rec {
+
name = "sutils-0.1";
+
+
src = fetchurl {
+
url = "https://github.com/baskerville/sutils/archive/0.1.tar.gz";
+
sha256 = "0xqk42vl82chy458d64fj68a4md4bxaip8n3xw9skxz0a1sgvks8";
+
};
+
+
prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
+
+
meta = {
+
description = "Small command-line utilities.";
+
homepage = "https://github.com/baskerville/sutils";
+
maintainers = stdenv.lib.maintainers.meisternu;
+
license = "Custom";
+
platforms = stdenv.lib.platforms.linux;
+
};
+
}
+22
pkgs/tools/misc/xdo/default.nix
···
···
+
{ stdenv, fetchurl, libxcb, xcbutilwm }:
+
+
stdenv.mkDerivation rec {
+
name = "xdo-0.3";
+
+
src = fetchurl {
+
url = "https://github.com/baskerville/xdo/archive/0.3.tar.gz";
+
sha256 = "128flaydag9ixsai87p85r84arg2pn1j9h3zgdjwlmbcpb8d4ia8";
+
};
+
+
prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
+
+
buildInputs = [ libxcb xcbutilwm ];
+
+
meta = {
+
description = "Small X utility to perform elementary actions on windows";
+
homepage = "https://github.com/baskerville/xdo";
+
maintainers = stdenv.lib.maintainers.meisternu;
+
license = "Custom";
+
platforms = stdenv.lib.platforms.linux;
+
};
+
}
+23
pkgs/tools/misc/xtitle/default.nix
···
···
+
{ stdenv, fetchurl, libxcb, xcbutil, xcbutilwm, git }:
+
+
stdenv.mkDerivation rec {
+
name = "xtitle-0.2";
+
+
src = fetchurl {
+
url = "https://github.com/baskerville/xtitle/archive/0.2.tar.gz";
+
sha256 = "1wyhfwbwqnq4rn6i789gydxlg25ylc37xjrkq758bp55sdgb8fk2";
+
};
+
+
+
buildInputs = [ libxcb git xcbutil xcbutilwm ];
+
+
prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
+
+
meta = {
+
description = "Outputs X window titles";
+
homepage = "https://github.com/baskerville/xtitle";
+
maintainers = stdenv.lib.maintainers.meisternu;
+
license = "Custom";
+
platforms = stdenv.lib.platforms.linux;
+
};
+
}
+12
pkgs/top-level/all-packages.nix
···
xclip = callPackage ../tools/misc/xclip { };
xdelta = callPackage ../tools/compression/xdelta { };
xdummy = callPackage ../tools/misc/xdummy { };
···
suitesparse = callPackage ../development/libraries/suitesparse { };
sword = callPackage ../development/libraries/sword { };
szip = callPackage ../development/libraries/szip { };
···
xbase = callPackage ../development/libraries/xbase { };
xcb-util-cursor = callPackage ../development/libraries/xcb-util-cursor { };
xineLib = callPackage ../development/libraries/xine-lib {
ffmpeg = ffmpeg_1;
···
inherit (gnome3) baobab;
baresip = callPackage ../applications/networking/instant-messengers/baresip {
ffmpeg = ffmpeg_1;
};
···
};
bristol = callPackage ../applications/audio/bristol { };
bvi = callPackage ../applications/editors/bvi { };
···
};
synfigstudio = callPackage ../applications/graphics/synfigstudio { };
msmtp = callPackage ../applications/networking/msmtp { };
···
xclip = callPackage ../tools/misc/xclip { };
+
xtitle = callPackage ../tools/misc/xtitle { };
+
xdelta = callPackage ../tools/compression/xdelta { };
xdummy = callPackage ../tools/misc/xdummy { };
···
suitesparse = callPackage ../development/libraries/suitesparse { };
+
sutils = callPackage ../tools/misc/sutils { };
+
sword = callPackage ../development/libraries/sword { };
szip = callPackage ../development/libraries/szip { };
···
xbase = callPackage ../development/libraries/xbase { };
xcb-util-cursor = callPackage ../development/libraries/xcb-util-cursor { };
+
+
xdo = callPackage ../tools/misc/xdo { };
xineLib = callPackage ../development/libraries/xine-lib {
ffmpeg = ffmpeg_1;
···
inherit (gnome3) baobab;
+
bar = callPackage ../applications/window-managers/bar { };
+
baresip = callPackage ../applications/networking/instant-messengers/baresip {
ffmpeg = ffmpeg_1;
};
···
};
bristol = callPackage ../applications/audio/bristol { };
+
+
bspwm = callPackage ../applications/window-managers/bspwm { };
bvi = callPackage ../applications/editors/bvi { };
···
};
synfigstudio = callPackage ../applications/graphics/synfigstudio { };
+
+
sxhkd = callPackage ../applications/window-managers/sxhkd { };
msmtp = callPackage ../applications/networking/msmtp { };