tinywm: init at 2014-04-22
A tiny window manger for X11
This commit is contained in:
parent
329aece2d5
commit
44d90b0619
|
@ -30,6 +30,7 @@ in
|
|||
./sawfish.nix
|
||||
./stumpwm.nix
|
||||
./spectrwm.nix
|
||||
./tinywm.nix
|
||||
./twm.nix
|
||||
./windowmaker.nix
|
||||
./wmii.nix
|
||||
|
|
25
nixos/modules/services/x11/window-managers/tinywm.nix
Normal file
25
nixos/modules/services/x11/window-managers/tinywm.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.xserver.windowManager.tinywm;
|
||||
in
|
||||
{
|
||||
###### interface
|
||||
options = {
|
||||
services.xserver.windowManager.tinywm.enable = mkEnableOption "tinywm";
|
||||
};
|
||||
|
||||
###### implementation
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver.windowManager.session = singleton {
|
||||
name = "tinywm";
|
||||
start = ''
|
||||
${pkgs.tinywm}/bin/tinywm &
|
||||
waitPID=$!
|
||||
'';
|
||||
};
|
||||
environment.systemPackages = [ pkgs.tinywm ];
|
||||
};
|
||||
}
|
51
pkgs/applications/window-managers/tinywm/default.nix
Normal file
51
pkgs/applications/window-managers/tinywm/default.nix
Normal file
|
@ -0,0 +1,51 @@
|
|||
{ stdenv, fetchFromGitHub
|
||||
, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tinywm";
|
||||
version = "2014-04-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mackstann";
|
||||
repo = pname;
|
||||
rev = "9d05612f41fdb8bc359f1fd9cc930bf16315abb1";
|
||||
sha256 = "1s7r4f2d3lk1i8h089v2vyrr02hh0y9i3ihl9kqgk9s87hqw8q5b";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
buildPhase = ''
|
||||
${stdenv.cc}/bin/cc -Wall -pedantic -I${libX11}/include tinywm.c -L${libX11}/lib -lX11 -o tinywm
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -dm755 $out/bin $out/share/doc/${pname}-${version}
|
||||
install -m755 tinywm -t $out/bin/
|
||||
# The annotated source code is a piece of documentation
|
||||
install -m644 annotated.c README -t $out/share/doc/${pname}-${version}
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib;{
|
||||
description = "A tiny window manger for X11";
|
||||
longDescription = ''
|
||||
|
||||
TinyWM is a tiny window manager that I created as an exercise in
|
||||
minimalism. It is also maybe helpful in learning some of the very basics
|
||||
of creating a window manager. It is only around 50 lines of C. There is
|
||||
also a Python version using python-xlib.
|
||||
|
||||
It lets you do four basic things:
|
||||
|
||||
- Move windows interactively with Alt+Button1 drag (left mouse button)
|
||||
- Resize windows interactively with Alt+Button3 drag (right mouse button)
|
||||
- Raise windows with Alt+F1 (not high on usability I know, but I needed a
|
||||
keybinding in there somewhere)
|
||||
- Focus windows with the mouse pointer (X does this on its own)
|
||||
'';
|
||||
homepage = "http://incise.org/tinywm.html";
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = libX11.meta.platforms;
|
||||
};
|
||||
}
|
|
@ -22223,6 +22223,8 @@ in
|
|||
|
||||
trayer = callPackage ../applications/window-managers/trayer { };
|
||||
|
||||
tinywm = callPackage ../applications/window-managers/tinywm { };
|
||||
|
||||
tree-from-tags = callPackage ../applications/audio/tree-from-tags { };
|
||||
|
||||
tdrop = callPackage ../applications/misc/tdrop { };
|
||||
|
|
Loading…
Reference in a new issue