summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/services/x11/window-managers/default.nix1
-rw-r--r--nixos/modules/services/x11/window-managers/hackedbox.nix25
-rw-r--r--pkgs/applications/window-managers/hackedbox/default.nix61
-rw-r--r--pkgs/top-level/all-packages.nix2
4 files changed, 89 insertions, 0 deletions
diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix
index 4e56b393e2e..52083dcaaa2 100644
--- a/nixos/modules/services/x11/window-managers/default.nix
+++ b/nixos/modules/services/x11/window-managers/default.nix
@@ -21,6 +21,7 @@ in
     ./fluxbox.nix
     ./fvwm2.nix
     ./fvwm3.nix
+    ./hackedbox.nix
     ./herbstluftwm.nix
     ./i3.nix
     ./jwm.nix
diff --git a/nixos/modules/services/x11/window-managers/hackedbox.nix b/nixos/modules/services/x11/window-managers/hackedbox.nix
new file mode 100644
index 00000000000..641cf1bdcbe
--- /dev/null
+++ b/nixos/modules/services/x11/window-managers/hackedbox.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.xserver.windowManager.hackedbox;
+in
+{
+  ###### interface
+  options = {
+    services.xserver.windowManager.hackedbox.enable = mkEnableOption "hackedbox";
+  };
+
+  ###### implementation
+  config = mkIf cfg.enable {
+    services.xserver.windowManager.session = singleton {
+      name = "hackedbox";
+      start = ''
+        ${pkgs.hackedbox}/bin/hackedbox &
+        waitPID=$!
+      '';
+    };
+    environment.systemPackages = [ pkgs.hackedbox ];
+  };
+}
diff --git a/pkgs/applications/window-managers/hackedbox/default.nix b/pkgs/applications/window-managers/hackedbox/default.nix
new file mode 100644
index 00000000000..0f608b83a70
--- /dev/null
+++ b/pkgs/applications/window-managers/hackedbox/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, freetype
+, fribidi
+, imlib2
+, libX11
+, libXext
+, libXft
+, libXinerama
+, libXpm
+, libXrandr
+, libXrender
+, pkg-config
+, xorgproto
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hackedbox";
+  version = "0.8.5.1";
+
+  src = fetchFromGitHub {
+    owner = "museoa";
+    repo = "hackedbox";
+    rev = finalAttrs.version;
+    hash = "sha256-hxfbEj7UxQ19xhetmdi0iyK6ceLUfUvAAyyTbNivlLQ=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    freetype
+    fribidi
+    imlib2
+    libX11
+    libXext
+    libXft
+    libXinerama
+    libXpm
+    libXrandr
+    libXrender
+    xorgproto
+  ];
+
+  configureFlags = [
+    "--x-includes=${libX11.dev}/include"
+    "--x-libraries=${libX11.out}/lib"
+  ];
+
+  meta = with lib; {
+    description = "A bastard hacked offspring of Blackbox";
+    homepage = "http://github.com/museoa/hackedbox/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    inherit (libX11.meta) platforms;
+  };
+})
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 54a82c162f7..b10849e2028 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -27324,6 +27324,8 @@ with pkgs;
 
   fluxbox = callPackage ../applications/window-managers/fluxbox { };
 
+  hackedbox = callPackage ../applications/window-managers/hackedbox { };
+
   fomp = callPackage ../applications/audio/fomp { };
 
   formatter = callPackage ../applications/misc/formatter { };