Sawfish is a versatile, Lisp-based window manager In that commit I include all Sawfish stack: - librep, a lisp system; - rep-gtk, bindings for gtk - sawfish, the window managerwip/yesman
parent
df0016a8ce
commit
f19ed980a2
@ -0,0 +1,28 @@ |
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
with lib; |
||||
|
||||
let |
||||
cfg = config.services.xserver.windowManager.sawfish; |
||||
in |
||||
{ |
||||
###### interface |
||||
options = { |
||||
services.xserver.windowManager.sawfish.enable = mkOption { |
||||
default = false; |
||||
description = "Enable the Sawfish window manager."; |
||||
}; |
||||
}; |
||||
|
||||
###### implementation |
||||
config = mkIf cfg.enable { |
||||
services.xserver.windowManager.session = singleton { |
||||
name = "sawfish"; |
||||
start = '' |
||||
${pkgs.sawfish}/bin/sawfish & |
||||
waitPID=$! |
||||
''; |
||||
}; |
||||
environment.systemPackages = [ pkgs.sawfish ]; |
||||
}; |
||||
} |
@ -0,0 +1,42 @@ |
||||
{ stdenv, fetchgit, pkgconfig, which, autoreconfHook, rep-gtk, pango, gdk_pixbuf, libXinerama, libXrandr, libXtst, imlib, gettext, texinfo, makeWrapper }: |
||||
|
||||
with stdenv.lib; |
||||
stdenv.mkDerivation rec { |
||||
|
||||
name = "sawfish-git-2015-02-15"; |
||||
|
||||
src = fetchgit { |
||||
url = "https://github.com/SawfishWM/sawfish.git"; |
||||
rev = "44729f44017e6779b4b66a7ecdbd63a98731f668"; |
||||
sha256 = "bd3f42f1604f37ecb2515008341cac4f6965840b2d6a6639dd1f3f2459f68e73"; |
||||
}; |
||||
|
||||
buildInputs = [ pkgconfig which autoreconfHook rep-gtk pango gdk_pixbuf libXinerama libXrandr libXtst imlib gettext texinfo makeWrapper ]; |
||||
|
||||
patchPhase = '' |
||||
sed -e 's|REP_DL_LOAD_PATH=|REP_DL_LOAD_PATH=$(REP_DL_LOAD_PATH):|g' -i Makedefs.in |
||||
sed -e 's|$(repexecdir)|$(libdir)/rep|g' -i src/Makefile.in |
||||
''; |
||||
|
||||
postInstall = '' |
||||
for i in $out/lib/sawfish/sawfish-menu $out/bin/sawfish-about $out/bin/sawfish-client $out/bin/sawfish-config $out/bin/sawfish; do |
||||
wrapProgram $i \ |
||||
--prefix REP_DL_LOAD_PATH "$out/lib/rep" \ |
||||
--set REP_LOAD_PATH "$out/share/sawfish/lisp" |
||||
done |
||||
''; |
||||
|
||||
meta = { |
||||
description = "An extensible, Lisp-based window manager"; |
||||
longDescription = '' |
||||
Sawfish is an extensible window manager using a Lisp-based scripting language. |
||||
Its policy is very minimal compared to most window managers. Its aim is simply |
||||
to manage windows in the most flexible and attractive manner possible. |
||||
All high-level WM functions are implemented in Lisp for future extensibility |
||||
or redefinition. |
||||
''; |
||||
homepage = http://sawfish.wikia.com; |
||||
license = licenses.gpl2; |
||||
maintainers = [ maintainers.AndersonTorres ]; |
||||
}; |
||||
} |
@ -0,0 +1,42 @@ |
||||
|
||||
{ stdenv, fetchgit |
||||
, pkgconfig, autoreconfHook |
||||
, readline, texinfo |
||||
, gdbm, gmp, libffi }: |
||||
|
||||
with stdenv.lib; |
||||
stdenv.mkDerivation rec { |
||||
|
||||
name = "librep-git-2015-02-15"; |
||||
|
||||
src = fetchgit { |
||||
url = "https://github.com/SawfishWM/librep.git"; |
||||
rev = "a1f2db721aa5055e90f6a76fde625946340ed8cf"; |
||||
sha256 = "c91484d02b2408becc8961997c3d6404aefa8e1f8af4621a8b5f7622b1857fa6"; |
||||
}; |
||||
|
||||
buildInputs = [ pkgconfig autoreconfHook readline texinfo ]; |
||||
propagatedBuildInputs = [ gdbm gmp libffi ]; |
||||
|
||||
configureFlags = [ |
||||
"--disable-static" |
||||
]; |
||||
|
||||
setupHook = ./setup-hook.sh; |
||||
|
||||
meta = { |
||||
description = "Lisp system for Sawfish"; |
||||
longDescription = '' |
||||
This is librep, a Lisp system for UNIX, needed by Sawfish window manager. |
||||
It contains a Lisp interpreter, byte-code compiler and virtual machine. |
||||
Applications may use the Lisp interpreter as an extension language, |
||||
or it may be used for stand-alone scripts. |
||||
|
||||
The Lisp dialect was originally inspired by Emacs Lisp, but with the worst |
||||
features removed. It also borrows many ideas from Scheme. |
||||
''; |
||||
homepage = http://sawfish.wikia.com; |
||||
license = licenses.gpl2; |
||||
maintainers = [ maintainers.AndersonTorres ]; |
||||
}; |
||||
} |
@ -0,0 +1,5 @@ |
||||
addRepDLLoadPath () { |
||||
addToSearchPath REP_DL_LOAD_PATH $1/lib/rep |
||||
} |
||||
|
||||
envHooks+=(addRepDLLoadPath) |
@ -0,0 +1,27 @@ |
||||
{ stdenv, fetchgit, pkgconfig, autoreconfHook, librep, gtk2 }: |
||||
|
||||
with stdenv.lib; |
||||
stdenv.mkDerivation rec { |
||||
|
||||
name = "rep-gtk-git-2015-02-15"; |
||||
|
||||
src = fetchgit { |
||||
url = "https://github.com/SawfishWM/rep-gtk.git"; |
||||
rev = "74ac3504f2bbbcc9ded005ab97cbf94cdc47924d"; |
||||
sha256 = "edb47c5b6d09201d16a8f0616d18690ff0a37dca56d31c6e635b286bd0b6a031"; |
||||
}; |
||||
|
||||
buildInputs = [ pkgconfig autoreconfHook ]; |
||||
propagatedBuildInputs = [ librep gtk2 ]; |
||||
|
||||
patchPhase = '' |
||||
sed -e 's|installdir=$(repexecdir)|installdir=$(libdir)/rep|g' -i Makefile.in |
||||
''; |
||||
|
||||
meta = { |
||||
description = "GTK+ bindings for librep"; |
||||
homepage = http://sawfish.wikia.com; |
||||
license = licenses.gpl2; |
||||
maintainers = [ maintainers.AndersonTorres ]; |
||||
}; |
||||
} |
@ -0,0 +1,5 @@ |
||||
addRepDLLoadPath () { |
||||
addToSearchPath REP_DL_LOAD_PATH $1/lib/rep |
||||
} |
||||
|
||||
envHooks+=(addRepDLLoadPath) |
Loading…
Reference in new issue