summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohannes Arnold <johannes.arnold@stud.uni-hannover.de>2021-07-26 02:05:31 +0200
committerJohannes Arnold <johannes.arnold@stud.uni-hannover.de>2021-07-29 01:19:05 +0200
commit39f65ee33dd09350635f2495d200707dd97452b7 (patch)
tree59b4ccb38bfac13dc2a0d588947301317b1dc203
parent416e83bce2d63f29c6d019828f4c5c3b8482c56c (diff)
downloadnixpkgs-39f65ee33dd09350635f2495d200707dd97452b7.tar
nixpkgs-39f65ee33dd09350635f2495d200707dd97452b7.tar.gz
nixpkgs-39f65ee33dd09350635f2495d200707dd97452b7.tar.bz2
nixpkgs-39f65ee33dd09350635f2495d200707dd97452b7.tar.lz
nixpkgs-39f65ee33dd09350635f2495d200707dd97452b7.tar.xz
nixpkgs-39f65ee33dd09350635f2495d200707dd97452b7.tar.zst
nixpkgs-39f65ee33dd09350635f2495d200707dd97452b7.zip
nixos/mlvwm: init at 0.9.3
-rw-r--r--nixos/modules/services/x11/window-managers/default.nix1
-rw-r--r--nixos/modules/services/x11/window-managers/mlvwm.nix41
-rw-r--r--pkgs/applications/window-managers/mlvwm/default.nix53
-rw-r--r--pkgs/top-level/all-packages.nix2
4 files changed, 97 insertions, 0 deletions
diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix
index 53285fbce87..d71738ea633 100644
--- a/nixos/modules/services/x11/window-managers/default.nix
+++ b/nixos/modules/services/x11/window-managers/default.nix
@@ -26,6 +26,7 @@ in
     ./leftwm.nix
     ./lwm.nix
     ./metacity.nix
+    ./mlvwm.nix
     ./mwm.nix
     ./openbox.nix
     ./pekwm.nix
diff --git a/nixos/modules/services/x11/window-managers/mlvwm.nix b/nixos/modules/services/x11/window-managers/mlvwm.nix
new file mode 100644
index 00000000000..08dd0402029
--- /dev/null
+++ b/nixos/modules/services/x11/window-managers/mlvwm.nix
@@ -0,0 +1,41 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let cfg = config.services.xserver.windowManager.mlvwm;
+
+in
+{
+
+  options.services.xserver.windowManager.mlvwm = {
+    enable = mkEnableOption "Macintosh-like Virtual Window Manager";
+
+    configFile = mkOption {
+      default = null;
+      type = with types; nullOr path;
+      description = ''
+        Path to the mlvwm configuration file.
+        If left at the default value, $HOME/.mlvwmrc will be used.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    services.xserver.windowManager.session = [{
+      name = "mlvwm";
+      start = ''
+        ${pkgs.mlvwm}/bin/mlvwm ${optionalString (cfg.configFile != null)
+          "-f /etc/mlvwm/mlvwmrc"
+        } &
+        waitPID=$!
+      '';
+    }];
+
+    environment.etc."mlvwm/mlvwmrc" = mkIf (cfg.configFile != null) {
+      source = cfg.configFile;
+    };
+
+    environment.systemPackages = [ pkgs.mlvwm ];
+  };
+}
diff --git a/pkgs/applications/window-managers/mlvwm/default.nix b/pkgs/applications/window-managers/mlvwm/default.nix
new file mode 100644
index 00000000000..14170be53ac
--- /dev/null
+++ b/pkgs/applications/window-managers/mlvwm/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, fetchFromGitHub, gccmakedep, libX11, libXext, libXpm, imake, installShellFiles, ... }:
+
+stdenv.mkDerivation rec {
+  pname = "mlvwm";
+  version = "0.9.3";
+
+  src = fetchFromGitHub {
+    owner = "morgant";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-Sps2+XyMTcNuhQTLrW/8vSZIcSzMejoi1m64SK129YI=";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = [ gccmakedep libX11 libXext libXpm imake ];
+
+  buildPhase = ''
+    (cd man && xmkmf)
+    (cd sample_rc && xmkmf)
+    (cd mlvwm && xmkmf)
+    xmkmf
+    make
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,etc}
+    cp mlvwm/mlvwm $out/bin
+    cp sample_rc/Mlvwmrc* $out/etc
+    runHook postInstall
+  '';
+
+  postInstall = ''
+    mv man/mlvwm.man man/mlvwm.1
+    installManPage man/mlvwm.1
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/morgant/mlvwm";
+    description = "Macintosh-like Virtual Window Manager";
+    license = licenses.mit;
+    longDescription = ''
+      MLVWM or Macintosh-Like Virtual Window Manager,
+      is an FVWM descendant created by Takashi Hasegawa
+      in 1997 while studying at Nagoya University and
+      was written entirely in the C programming language.
+      As its name implies, it attempts to emulate the
+      pre-Mac OS X Macintosh look and feel in its layout and window design.
+    '';
+    platforms = platforms.linux;
+    maintainers = [ maintainers.j0hax ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 107722e6e10..bc64dec585b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -25683,6 +25683,8 @@ in
     ocamlPackages = ocaml-ng.ocamlPackages_4_08;
   };
 
+  mlvwm = callPackage ../applications/window-managers/mlvwm { };
+
   MMA = callPackage ../applications/audio/MMA { };
 
   mmex = callPackage ../applications/office/mmex {