diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 818c39c35907..b1c3f6bcdd23 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -64,6 +64,7 @@ madjar = "Georges Dubus "; marcweber = "Marc Weber "; matejc = "Matej Cotman "; + meisternu = "Matt Miemiec "; modulistic = "Pablo Costa "; mornfall = "Petr Ročkai "; msackman = "Matthew Sackman "; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 47aef48418a2..a4c1896e09ec 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -292,6 +292,7 @@ #./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 diff --git a/nixos/modules/services/x11/window-managers/bspwm.nix b/nixos/modules/services/x11/window-managers/bspwm.nix new file mode 100644 index 000000000000..d234a432e9a9 --- /dev/null +++ b/nixos/modules/services/x11/window-managers/bspwm.nix @@ -0,0 +1,29 @@ +{ 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 ]; + }; +} diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix index f27ba3661413..45a4e947e0aa 100644 --- a/nixos/modules/services/x11/window-managers/default.nix +++ b/nixos/modules/services/x11/window-managers/default.nix @@ -17,6 +17,7 @@ in ./xmonad.nix ./i3.nix ./herbstluftwm.nix + ./bspwm.nix ]; options = { diff --git a/pkgs/applications/window-managers/bar/default.nix b/pkgs/applications/window-managers/bar/default.nix new file mode 100644 index 000000000000..a4b90a04133b --- /dev/null +++ b/pkgs/applications/window-managers/bar/default.nix @@ -0,0 +1,23 @@ +{ 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; + }; +} diff --git a/pkgs/applications/window-managers/bspwm/default.nix b/pkgs/applications/window-managers/bspwm/default.nix new file mode 100644 index 000000000000..24789f37ba7e --- /dev/null +++ b/pkgs/applications/window-managers/bspwm/default.nix @@ -0,0 +1,29 @@ +{ 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; + }; +} diff --git a/pkgs/applications/window-managers/sxhkd/default.nix b/pkgs/applications/window-managers/sxhkd/default.nix new file mode 100644 index 000000000000..03563a4f8121 --- /dev/null +++ b/pkgs/applications/window-managers/sxhkd/default.nix @@ -0,0 +1,27 @@ +{ 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; + }; +} diff --git a/pkgs/tools/misc/sutils/default.nix b/pkgs/tools/misc/sutils/default.nix new file mode 100644 index 000000000000..6d2bee238130 --- /dev/null +++ b/pkgs/tools/misc/sutils/default.nix @@ -0,0 +1,20 @@ +{ 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; + }; +} diff --git a/pkgs/tools/misc/xdo/default.nix b/pkgs/tools/misc/xdo/default.nix new file mode 100644 index 000000000000..9a059c9dbb5a --- /dev/null +++ b/pkgs/tools/misc/xdo/default.nix @@ -0,0 +1,22 @@ +{ 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; + }; +} diff --git a/pkgs/tools/misc/xtitle/default.nix b/pkgs/tools/misc/xtitle/default.nix new file mode 100644 index 000000000000..ca8be4c08eac --- /dev/null +++ b/pkgs/tools/misc/xtitle/default.nix @@ -0,0 +1,23 @@ +{ 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; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a7b78186e2ca..e445e140707b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2452,6 +2452,8 @@ let xclip = callPackage ../tools/misc/xclip { }; + xtitle = callPackage ../tools/misc/xtitle { }; + xdelta = callPackage ../tools/compression/xdelta { }; xdummy = callPackage ../tools/misc/xdummy { }; @@ -6215,6 +6217,8 @@ let suitesparse = callPackage ../development/libraries/suitesparse { }; + sutils = callPackage ../tools/misc/sutils { }; + sword = callPackage ../development/libraries/sword { }; szip = callPackage ../development/libraries/szip { }; @@ -6377,6 +6381,8 @@ let 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; @@ -8157,6 +8163,8 @@ let inherit (gnome3) baobab; + bar = callPackage ../applications/window-managers/bar { }; + baresip = callPackage ../applications/networking/instant-messengers/baresip { ffmpeg = ffmpeg_1; }; @@ -8189,6 +8197,8 @@ let bristol = callPackage ../applications/audio/bristol { }; + bspwm = callPackage ../applications/window-managers/bspwm { }; + bvi = callPackage ../applications/editors/bvi { }; calf = callPackage ../applications/audio/calf { @@ -9297,6 +9307,8 @@ let }; synfigstudio = callPackage ../applications/graphics/synfigstudio { }; + + sxhkd = callPackage ../applications/window-managers/sxhkd { }; msmtp = callPackage ../applications/networking/msmtp { };