Merge pull request #87716 from AndersonTorres/weird-window-mangers-upload

Small window managers:

- berry: init at 0.1.5
- smallwm: init at 2020-02-28
- yeahwm: init at 0.3.5
- lwm: init at 1.2.4
This commit is contained in:
Anderson Torres 2020-05-14 22:22:07 -03:00 committed by GitHub
commit 0687add56e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 300 additions and 0 deletions

View File

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.windowManager.berry;
in
{
###### interface
options = {
services.xserver.windowManager.berry.enable = mkEnableOption "berry";
};
###### implementation
config = mkIf cfg.enable {
services.xserver.windowManager.session = singleton {
name = "berry";
start = ''
${pkgs.berry}/bin/berry &
waitPID=$!
'';
};
environment.systemPackages = [ pkgs.berry ];
};
}

View File

@ -10,6 +10,7 @@ in
imports = [
./2bwm.nix
./afterstep.nix
./berry.nix
./bspwm.nix
./cwm.nix
./dwm.nix
@ -21,6 +22,7 @@ in
./i3.nix
./jwm.nix
./leftwm.nix
./lwm.nix
./metacity.nix
./mwm.nix
./openbox.nix
@ -28,6 +30,7 @@ in
./notion.nix
./ratpoison.nix
./sawfish.nix
./smallwm.nix
./stumpwm.nix
./spectrwm.nix
./tinywm.nix
@ -35,6 +38,7 @@ in
./windowmaker.nix
./wmii.nix
./xmonad.nix
./yeahwm.nix
./qtile.nix
./none.nix ];

View File

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.windowManager.lwm;
in
{
###### interface
options = {
services.xserver.windowManager.lwm.enable = mkEnableOption "lwm";
};
###### implementation
config = mkIf cfg.enable {
services.xserver.windowManager.session = singleton {
name = "lwm";
start = ''
${pkgs.lwm}/bin/lwm &
waitPID=$!
'';
};
environment.systemPackages = [ pkgs.lwm ];
};
}

View File

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.windowManager.smallwm;
in
{
###### interface
options = {
services.xserver.windowManager.smallwm.enable = mkEnableOption "smallwm";
};
###### implementation
config = mkIf cfg.enable {
services.xserver.windowManager.session = singleton {
name = "smallwm";
start = ''
${pkgs.smallwm}/bin/smallwm &
waitPID=$!
'';
};
environment.systemPackages = [ pkgs.smallwm ];
};
}

View File

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.windowManager.yeahwm;
in
{
###### interface
options = {
services.xserver.windowManager.yeahwm.enable = mkEnableOption "yeahwm";
};
###### implementation
config = mkIf cfg.enable {
services.xserver.windowManager.session = singleton {
name = "yeahwm";
start = ''
${pkgs.yeahwm}/bin/yeahwm &
waitPID=$!
'';
};
environment.systemPackages = [ pkgs.yeahwm ];
};
}

View File

@ -0,0 +1,47 @@
{ stdenv, fetchFromGitHub
, libX11, libXft, libXinerama, fontconfig, freetype }:
stdenv.mkDerivation rec {
pname = "berry";
version = "0.1.5";
src = fetchFromGitHub {
owner = "JLErvin";
repo = "berry";
rev = version;
sha256 = "1wxbjzpwqb9x7vd7kb095fiqj271rki980dnwcxjxpqlmmrmjzyl";
};
buildInputs = [ libX11 libXft libXinerama fontconfig freetype ];
preBuild = ''
makeFlagsArray+=( PREFIX="${placeholder "out"}"
X11INC="${libX11.dev}/include"
X11LIB="${libX11}/lib"
XINERAMALIBS="-lXinerama"
XINERAMAFLAGS="-DXINERAMA"
FREETYPELIBS="-lfontconfig -lXft"
FREETYPEINC="${freetype.dev}/include/freetype2" )
'';
meta = with stdenv.lib; {
description = "A healthy, bite-sized window manager";
longDescription = ''
berry is a healthy, bite-sized window manager written in C for unix
systems. Its main features include:
- Controlled via a powerful command-line client, allowing users to control
windows via a hotkey daemon such as sxhkd or expand functionality via
shell scripts.
- Small, hackable source code.
- Extensible themeing options with double borders, title bars, and window
text.
- Intuitively place new windows in unoccupied spaces.
- Virtual desktops.
'';
homepage = "https://berrywm.org/";
license = licenses.mit;
maintainers = [ maintainers.AndersonTorres ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,45 @@
{ stdenv, fetchurl
, imake, libX11, libSM, libXext, libICE }:
stdenv.mkDerivation rec {
pname = "lwm";
version = "1.2.4";
src = fetchurl {
url = "http://www.jfc.org.uk/files/lwm/${pname}-${version}.tar.gz";
sha256 = "1bcdr173f0gl61fyl43p3gr145angci7lvjqb8rl00y9f9amvh3y";
};
nativeBuildInputs = [ imake ];
buildInputs = [ libX11 libSM libXext libICE ];
dontConfigure = true;
preBuild = ''
sed -i 's|^LOCAL_LIBRARIES.*|& $(ICELIB)|' Imakefile
xmkmf
'';
installPhase = ''
install -dm755 $out/bin $out/share/man/man1
install -m755 lwm $out/bin/lwm
install -m644 lwm.man $out/share/man/man1/lwm.1
'';
meta = with stdenv.lib; {
description = "Lightweight Window Manager";
longDescription = ''
lwm is a window manager for X that tries to keep out of your face. There
are no icons, no button bars, no icon docks, no root menus, no nothing: if
you want all that, then other programs can provide it. There's no
configurability either: if you want that, you want a different window
manager; one that helps your operating system in its evil conquest of your
disc space and its annexation of your physical memory.
'';
homepage = "http://www.jfc.org.uk/software/lwm.html";
license = licenses.gpl2;
maintainers = [ maintainers.AndersonTorres ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,38 @@
{ stdenv, fetchFromGitHub
, doxygen, graphviz, libX11, libXrandr }:
stdenv.mkDerivation rec {
pname = "smallwm";
version = "2020-02-28";
src = fetchFromGitHub {
owner = "adamnew123456";
repo = "SmallWM";
rev = "c2dc72afa87241bcf7e646630f4aae216ce78613";
sha256 = "0cqhy81ymdcdyvgi55a401rr96h2akskcxi9ddzjbln4a71yjlz8";
};
nativeBuildInputs = [ doxygen graphviz ];
buildInputs = [ libX11 libXrandr ];
dontConfigure = true;
makeFlags = [ "CC=${stdenv.cc}/bin/cc" "CXX=${stdenv.cc}/bin/c++" ];
buildFlags = [ "all" "doc" ];
installPhase = ''
install -dm755 $out/bin $out/share/doc/${pname}-${version}
install -m755 bin/smallwm -t $out/bin
cp -r README.markdown doc/html doc/latex $out/share/doc/${pname}-${version}
'';
meta = with stdenv.lib;{
description = "A small X window manager, extended from tinywm";
homepage = "https://github.com/adamnew123456/SmallWM";
license = licenses.bsd2;
maintainers = [ maintainers.AndersonTorres ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,58 @@
{ stdenv, fetchurl
, lesstif
, libX11, libXext, libXmu, libXinerama }:
stdenv.mkDerivation rec {
pname = "yeahwm";
version = "0.3.5";
src = fetchurl {
url = "http://phrat.de/${pname}_${version}.tar.gz";
sha256 = "01gfzjvb40n16m2ja4238nk08k4l203y6a61cydqvf68924fjb69";
};
buildInputs = [ lesstif libX11 libXext libXinerama libXmu ];
dontConfigure = true;
preBuild = ''
makeFlagsArray+=( CC="${stdenv.cc}/bin/cc" \
XROOT="${libX11}" \
INCLUDES="-I${libX11.dev}/include -I${libXext.dev}/include -I${libXinerama.dev}/include -I${libXmu.dev}/include" \
LDPATH="-L${libX11}/lib -L${libXext}/lib -L${libXinerama}/lib -L${libXmu}/lib" \
prefix="${placeholder "out"}" )
'';
postInstall = ''
gzip -9 --stdout yeahwm.1 > yeahwm.1.gz
install -m644 yeahwm.1.gz ${placeholder "out"}/share/man/man1/
'';
meta = with stdenv.lib;{
description = "An X window manager based on evilwm and aewm";
longDescription = ''
YeahWM is a h* window manager for X based on evilwm and aewm.
Features
- Sloppy Focus.
- BeOS-like tabbed titles, which can be repositioned.
- Support for Xinerama.
- Simple Appearance.
- Good keyboard control.
- Creative usage of the mouse.
- Respects aspect size hints.
- Solid resize and move operations.
- Virtual Desktops.
- "Magic" Screen edges for desktop switching.
- Snapping to other windows and screen borders when moving windows.
- Small binary size(ca. 23kb).
- Little resource usage.
- It's slick.
'';
homepage = "http://phrat.de/index.html";
license = licenses.isc;
maintainers = [ maintainers.AndersonTorres ];
platforms = libX11.meta.platforms;
};
}

View File

@ -18661,6 +18661,8 @@ in
bb = callPackage ../applications/misc/bb { };
berry = callPackage ../applications/window-managers/berry { };
bevelbar = callPackage ../applications/window-managers/bevelbar { };
bibletime = libsForQt5.callPackage ../applications/misc/bibletime { };
@ -19964,6 +19966,8 @@ in
leftwm = callPackage ../applications/window-managers/leftwm { };
lwm = callPackage ../applications/window-managers/lwm { };
musikcube = callPackage ../applications/audio/musikcube {};
pinboard-notes-backup = haskell.lib.overrideCabal
@ -19985,6 +19989,8 @@ in
spectmorph = callPackage ../applications/audio/spectmorph { };
smallwm = callPackage ../applications/window-managers/smallwm { };
spectrwm = callPackage ../applications/window-managers/spectrwm { };
spectral = qt5.callPackage ../applications/networking/instant-messengers/spectral { };
@ -22522,6 +22528,8 @@ in
vwm = callPackage ../applications/window-managers/vwm { };
yeahwm = callPackage ../applications/window-managers/yeahwm { };
vym = qt5.callPackage ../applications/misc/vym { };
waon = callPackage ../applications/audio/waon { };