forked from mirrors/nixpkgs
Add the CLFSWM window manager
This commit is contained in:
parent
6fa6ff9e25
commit
5623e1b145
31
nixos/modules/services/x11/window-managers/clfswm.nix
Normal file
31
nixos/modules/services/x11/window-managers/clfswm.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.xserver.windowManager.clfswm;
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
services.xserver.windowManager.clfswm = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Enable the clfswm tiling window manager.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver.windowManager.session = singleton {
|
||||
name = "clfswm";
|
||||
start = ''
|
||||
${pkgs.clfswm}/bin/clfswm &
|
||||
waitPID=$!
|
||||
'';
|
||||
};
|
||||
environment.systemPackages = [ pkgs.clfswm ];
|
||||
};
|
||||
}
|
|
@ -10,6 +10,7 @@ in
|
|||
imports = [
|
||||
./afterstep.nix
|
||||
./bspwm.nix
|
||||
./clfswm.nix
|
||||
./compiz.nix
|
||||
./fluxbox.nix
|
||||
./herbstluftwm.nix
|
||||
|
|
43
pkgs/applications/window-managers/clfswm/default.nix
Normal file
43
pkgs/applications/window-managers/clfswm/default.nix
Normal file
|
@ -0,0 +1,43 @@
|
|||
{ stdenv, pkgs, fetchgit, autoconf, sbcl, lispPackages, xdpyinfo, texinfo4
|
||||
, makeWrapper , rlwrap, gnused, gnugrep, coreutils, xprop
|
||||
, extraModulePaths ? [] }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "clfswm";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://gitlab.common-lisp.net/clfswm/clfswm.git";
|
||||
rev = "refs/heads/master";
|
||||
sha256 = "1hkm6bn5xww932w34l13bg87m5hsnwnd0i1lka6sw0cq8whndya0";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
texinfo4 makeWrapper autoconf
|
||||
sbcl
|
||||
lispPackages.clx
|
||||
lispPackages.cl-ppcre
|
||||
xdpyinfo
|
||||
];
|
||||
|
||||
patches = [ ./require-clx.patch ];
|
||||
|
||||
# Stripping destroys the generated SBCL image
|
||||
dontStrip = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -pv $out/bin
|
||||
make DESTDIR=$out install
|
||||
|
||||
# Paths in the compressed image $out/bin/clfswm are not
|
||||
# recognized by Nix. Add explicit reference here.
|
||||
mkdir $out/nix-support
|
||||
echo ${xdpyinfo} ${lispPackages.clx} ${lispPackages.cl-ppcre} > $out/nix-support/depends
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A(nother) Common Lisp FullScreen Window Manager";
|
||||
homepage = https://common-lisp.net/project/clfswm/;
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
13
pkgs/applications/window-managers/clfswm/require-clx.patch
Normal file
13
pkgs/applications/window-managers/clfswm/require-clx.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/load.lisp b/load.lisp
|
||||
index c8c4cf0..8c9ca2e 100644
|
||||
--- a/load.lisp
|
||||
+++ b/load.lisp
|
||||
@@ -111,6 +111,8 @@ from $XDG_CONFIG_HOME/clfswm/clfswmrc")
|
||||
;;;------------------
|
||||
(load-info "Requiring CLX")
|
||||
|
||||
+(require 'clx)
|
||||
+
|
||||
;;; Loading clisp dynamic module. This part needs clisp >= 2.50
|
||||
;;#+(AND CLISP (not CLX))
|
||||
;;(when (fboundp 'require)
|
|
@ -11095,6 +11095,8 @@ let
|
|||
enableNetworkManager = config.networking.networkmanager.enable or false;
|
||||
};
|
||||
|
||||
clfswm = callPackage ../applications/window-managers/clfswm { };
|
||||
|
||||
clipgrab = callPackage ../applications/video/clipgrab { };
|
||||
|
||||
clipit = callPackage ../applications/misc/clipit { };
|
||||
|
|
Loading…
Reference in a new issue