uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
30
pkgs/applications/window-managers/2bwm/default.nix
Normal file
30
pkgs/applications/window-managers/2bwm/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, stdenv, fetchFromGitHub, patches
|
||||
, libxcb, xcbutilkeysyms, xcbutilwm
|
||||
, libX11, xcbutil, xcbutilxrm }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.3";
|
||||
pname = "2bwm";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "venam";
|
||||
repo = "2bwm";
|
||||
rev = "v${version}";
|
||||
sha256 = "1xwib612ahv4rg9yl5injck89dlpyp5475xqgag0ydfd0r4sfld7";
|
||||
};
|
||||
|
||||
# Allow users set their own list of patches
|
||||
inherit patches;
|
||||
|
||||
buildInputs = [ libxcb xcbutilkeysyms xcbutilwm libX11 xcbutil xcbutilxrm ];
|
||||
|
||||
installPhase = "make install DESTDIR=$out PREFIX=\"\"";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/venam/2bwm";
|
||||
description = "A fast floating WM written over the XCB library and derived from mcwm";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.sternenseemann ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
85
pkgs/applications/window-managers/afterstep/default.nix
Normal file
85
pkgs/applications/window-managers/afterstep/default.nix
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config
|
||||
, libtiff
|
||||
, fltk, gtk
|
||||
, libICE, libSM
|
||||
, dbus
|
||||
, fetchpatch
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
pname = "afterstep";
|
||||
version = "2.2.12";
|
||||
sourceName = "AfterStep-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
urls = [ "ftp://ftp.afterstep.org/stable/${sourceName}.tar.bz2" ];
|
||||
sha256 = "1j7vkx1ig4kzwffdxnkqv3kld9qi3sam4w2nhq18waqjsi8xl5gz";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/debian/afterstep/raw/master/debian/patches/44-Fix-build-with-gcc-5.patch";
|
||||
sha256 = "1vipy2lzzd2gqrsqk85pwgcdhargy815fxlbn57hsm45zglc3lj4";
|
||||
})
|
||||
|
||||
# Fix pending upstream inclusion for binutils-2.36 support:
|
||||
# https://github.com/afterstep/afterstep/pull/7
|
||||
(fetchpatch {
|
||||
name = "binutils-2.36.patch";
|
||||
url = "https://github.com/afterstep/afterstep/commit/5e9e897cf8c455390dd6f5b27fec49707f6b9088.patch";
|
||||
sha256 = "1kk97max05r2p1a71pvpaza79ff0klz32rggik342p7ki3516qv8";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Causes fatal ldconfig cache generation attempt on non-NixOS Linux
|
||||
for mkfile in autoconf/Makefile.common.lib.in libAfter{Base,Image}/Makefile.in; do
|
||||
substituteInPlace $mkfile \
|
||||
--replace 'test -w /etc' 'false'
|
||||
done
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libtiff fltk gtk libICE libSM dbus ];
|
||||
|
||||
# A strange type of bug: dbus is not immediately found by pkg-config
|
||||
preConfigure = ''
|
||||
# binutils 2.37 fix
|
||||
# https://github.com/afterstep/afterstep/issues/2
|
||||
fixupList=(
|
||||
"autoconf/Makefile.defines.in"
|
||||
"libAfterImage/aftershow/Makefile.in"
|
||||
"libAfterImage/apps/Makefile.in"
|
||||
"libAfterBase/Makefile.in"
|
||||
"libAfterImage/Makefile.in"
|
||||
)
|
||||
for toFix in "''${fixupList[@]}"; do
|
||||
substituteInPlace "$toFix" --replace "clq" "cq"
|
||||
done
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)"
|
||||
'';
|
||||
|
||||
# Parallel build fails due to missing dependencies between private libaries:
|
||||
# ld: cannot find ../libAfterConf/libAfterConf.a: No such file or directory
|
||||
# Let's disable parallel builds until it's fixed upstream:
|
||||
# https://github.com/afterstep/afterstep/issues/8
|
||||
enableParallelBuilding = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A NEXTStep-inspired window manager";
|
||||
longDescription = ''
|
||||
AfterStep is a window manager for the Unix X Window
|
||||
System. Originally based on the look and feel of the NeXTStep
|
||||
interface, it provides end users with a consistent, clean, and
|
||||
elegant desktop. The goal of AfterStep development is to provide
|
||||
for flexibility of desktop configuration, improving aestetics,
|
||||
and efficient use of system resources.
|
||||
'';
|
||||
homepage = "http://www.afterstep.org/";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.AndersonTorres ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
||||
}
|
||||
108
pkgs/applications/window-managers/awesome/default.nix
Normal file
108
pkgs/applications/window-managers/awesome/default.nix
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchpatch
|
||||
, lua, cairo, librsvg, cmake, imagemagick, pkg-config, gdk-pixbuf
|
||||
, xorg, libstartup_notification, libxdg_basedir, libpthreadstubs
|
||||
, xcb-util-cursor, makeWrapper, pango, gobject-introspection
|
||||
, which, dbus, nettools, git, doxygen
|
||||
, xmlto, docbook_xml_dtd_45, docbook_xsl, findXMLCatalogs
|
||||
, libxkbcommon, xcbutilxrm, hicolor-icon-theme
|
||||
, asciidoctor
|
||||
, fontsConf
|
||||
, gtk3Support ? false, gtk3 ? null
|
||||
}:
|
||||
|
||||
# needed for beautiful.gtk to work
|
||||
assert gtk3Support -> gtk3 != null;
|
||||
|
||||
let
|
||||
luaEnv = lua.withPackages(ps: [ ps.lgi ps.ldoc ]);
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "awesome";
|
||||
version = "4.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awesomewm";
|
||||
repo = "awesome";
|
||||
rev = "v${version}";
|
||||
sha256 = "1i7ajmgbsax4lzpgnmkyv35x8vxqi0j84a14k6zys4blx94m9yjf";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Pull upstream fix for -fno-common toolchain support:
|
||||
# https://github.com/awesomeWM/awesome/pull/3065
|
||||
(fetchpatch {
|
||||
name = "fno-common-prerequisite.patch";
|
||||
url = "https://github.com/awesomeWM/awesome/commit/c5202a48708585cc33528065af8d1b1d28b1a6e0.patch";
|
||||
sha256 = "0sv36xf0ibjcm63gn9k3bl039sqavb2b5i6d65il4bdclkc0n08b";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "fno-common.patch";
|
||||
url = "https://github.com/awesomeWM/awesome/commit/d256d9055095f27a33696e0aeda4ee20ed4fb1a0.patch";
|
||||
sha256 = "1n3y4wnjra8blss7642jgpxnm9n92zhhjj541bb9i60m4b7bgfzz";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
doxygen
|
||||
imagemagick
|
||||
makeWrapper
|
||||
pkg-config
|
||||
xmlto docbook_xml_dtd_45
|
||||
docbook_xsl findXMLCatalogs
|
||||
asciidoctor
|
||||
];
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
FONTCONFIG_FILE = toString fontsConf;
|
||||
|
||||
propagatedUserEnvPkgs = [ hicolor-icon-theme ];
|
||||
buildInputs = [ cairo librsvg dbus gdk-pixbuf gobject-introspection
|
||||
git luaEnv libpthreadstubs libstartup_notification
|
||||
libxdg_basedir lua nettools pango xcb-util-cursor
|
||||
xorg.libXau xorg.libXdmcp xorg.libxcb xorg.libxshmfence
|
||||
xorg.xcbutil xorg.xcbutilimage xorg.xcbutilkeysyms
|
||||
xorg.xcbutilrenderutil xorg.xcbutilwm libxkbcommon
|
||||
xcbutilxrm ]
|
||||
++ lib.optional gtk3Support gtk3;
|
||||
|
||||
cmakeFlags = [
|
||||
#"-DGENERATE_MANPAGES=ON"
|
||||
"-DOVERRIDE_VERSION=${version}"
|
||||
] ++ lib.optional lua.pkgs.isLuaJIT "-DLUA_LIBRARY=${lua}/lib/libluajit-5.1.so"
|
||||
;
|
||||
|
||||
GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0";
|
||||
# LUA_CPATH and LUA_PATH are used only for *building*, see the --search flags
|
||||
# below for how awesome finds the libraries it needs at runtime.
|
||||
LUA_CPATH = "${luaEnv}/lib/lua/${lua.luaversion}/?.so";
|
||||
LUA_PATH = "${luaEnv}/share/lua/${lua.luaversion}/?.lua;;";
|
||||
|
||||
postInstall = ''
|
||||
# Don't use wrapProgram or the wrapper will duplicate the --search
|
||||
# arguments every restart
|
||||
mv "$out/bin/awesome" "$out/bin/.awesome-wrapped"
|
||||
makeWrapper "$out/bin/.awesome-wrapped" "$out/bin/awesome" \
|
||||
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
||||
--add-flags '--search ${luaEnv}/lib/lua/${lua.luaversion}' \
|
||||
--add-flags '--search ${luaEnv}/share/lua/${lua.luaversion}' \
|
||||
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
|
||||
|
||||
wrapProgram $out/bin/awesome-client \
|
||||
--prefix PATH : "${which}/bin"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit lua;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Highly configurable, dynamic window manager for X";
|
||||
homepage = "https://awesomewm.org/";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ lovek323 rasendubi ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
77
pkgs/applications/window-managers/berry/default.nix
Normal file
77
pkgs/applications/window-managers/berry/default.nix
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, copyDesktopItems
|
||||
, fontconfig
|
||||
, freetype
|
||||
, libX11
|
||||
, libXext
|
||||
, libXft
|
||||
, libXinerama
|
||||
, makeDesktopItem
|
||||
, pkg-config
|
||||
, which
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "berry";
|
||||
version = "0.1.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JLErvin";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-cs1NVwaANMIteCQuGqPcEWuUbfJulhjmfWnlU8Eb2OM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
pkg-config
|
||||
which
|
||||
];
|
||||
|
||||
buildInputs =[
|
||||
libX11
|
||||
libXext
|
||||
libXft
|
||||
libXinerama
|
||||
fontconfig
|
||||
freetype
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs configure
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = pname;
|
||||
exec = "berry";
|
||||
comment = meta.description;
|
||||
desktopName = "Berry Window Manager";
|
||||
genericName = "Berry Window Manager";
|
||||
categories = [ "Utility" ];
|
||||
})
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://berrywm.org/";
|
||||
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.
|
||||
'';
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.AndersonTorres ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/window-managers/bevelbar/default.nix
Normal file
25
pkgs/applications/window-managers/bevelbar/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libX11, libXrandr, libXft }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bevelbar";
|
||||
version = "16.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vain";
|
||||
repo = "bevelbar";
|
||||
rev = "v${version}";
|
||||
sha256 = "1hbwg3vdxw9fyshy85skv476p0zr4ynvhcz2xkijydpzm2j3rmjm";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXrandr libXft ];
|
||||
|
||||
installFlags = [ "prefix=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "An X11 status bar with fancy schmancy 1985-ish beveled borders";
|
||||
inherit (src.meta) homepage;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.neeasade ];
|
||||
};
|
||||
}
|
||||
27
pkgs/applications/window-managers/bspwm/default.nix
Normal file
27
pkgs/applications/window-managers/bspwm/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libxcb, libXinerama
|
||||
, xcbutil, xcbutilkeysyms, xcbutilwm
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bspwm";
|
||||
version = "0.9.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "baskerville";
|
||||
repo = "bspwm";
|
||||
rev = version;
|
||||
sha256 = "0qlv7b4c2mmjfd65y100d11x8iqyg5f6lfiws3cgmpjidhdygnxc";
|
||||
};
|
||||
|
||||
buildInputs = [ libxcb libXinerama xcbutil xcbutilkeysyms xcbutilwm ];
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A tiling window manager based on binary space partitioning";
|
||||
homepage = "https://github.com/baskerville/bspwm";
|
||||
maintainers = with maintainers; [ meisternu epitrochoid ];
|
||||
license = licenses.bsd2;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
44
pkgs/applications/window-managers/cage/default.nix
Normal file
44
pkgs/applications/window-managers/cage/default.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{ lib, stdenv, fetchFromGitHub
|
||||
, meson, ninja, pkg-config, wayland-scanner, scdoc, makeWrapper
|
||||
, wlroots, wayland, wayland-protocols, pixman, libxkbcommon
|
||||
, systemd, libGL, libX11, mesa
|
||||
, xwayland ? null
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cage";
|
||||
version = "0.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Hjdskes";
|
||||
repo = "cage";
|
||||
rev = "v${version}";
|
||||
sha256 = "0vm96gxinhy48m3x9p1sfldyd03w3gk6iflb7n9kn06j1vqyswr6";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config wayland-scanner scdoc makeWrapper ];
|
||||
|
||||
buildInputs = [
|
||||
wlroots wayland wayland-protocols pixman libxkbcommon
|
||||
mesa # for libEGL headers
|
||||
systemd libGL libX11
|
||||
];
|
||||
|
||||
mesonFlags = [ "-Dxwayland=${lib.boolToString (xwayland != null)}" ];
|
||||
|
||||
postFixup = lib.optionalString (xwayland != null) ''
|
||||
wrapProgram $out/bin/cage --prefix PATH : "${xwayland}/bin"
|
||||
'';
|
||||
|
||||
# Tests Cage using the NixOS module by launching xterm:
|
||||
passthru.tests.basic-nixos-module-functionality = nixosTests.cage;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Wayland kiosk that runs a single, maximized application";
|
||||
homepage = "https://www.hjdskes.nl/projects/cage/";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos ];
|
||||
};
|
||||
}
|
||||
36
pkgs/applications/window-managers/cage/wlroots-0_14.patch
Normal file
36
pkgs/applications/window-managers/cage/wlroots-0_14.patch
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
From 9a4523d47efeafd674d419169fe161e5a3b31cb3 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Beich <jbeich@FreeBSD.org>
|
||||
Date: Thu, 3 Jun 2021 17:53:11 +0000
|
||||
Subject: [PATCH 1/3] view: chase swaywm/wlroots@9e58301df7f0
|
||||
|
||||
view.c:238:52: error: no member named 'subsurfaces' in 'struct wlr_surface'
|
||||
wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces, parent_link) {
|
||||
~~~~~~~~~~~~~~~~~ ^
|
||||
/usr/include/wayland-util.h:443:30: note: expanded from macro 'wl_list_for_each'
|
||||
for (pos = wl_container_of((head)->next, pos, member); \
|
||||
^~~~
|
||||
/usr/include/wayland-util.h:409:32: note: expanded from macro 'wl_container_of'
|
||||
(__typeof__(sample))((char *)(ptr) - \
|
||||
^~~
|
||||
|
||||
Based on https://github.com/swaywm/sway/commit/3162766eef14
|
||||
---
|
||||
view.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/view.c b/view.c
|
||||
index b9ba9c2..3f3b0ed 100644
|
||||
--- a/view.c
|
||||
+++ b/view.c
|
||||
@@ -235,7 +235,10 @@ view_map(struct cg_view *view, struct wlr_surface *surface)
|
||||
view->wlr_surface = surface;
|
||||
|
||||
struct wlr_subsurface *subsurface;
|
||||
- wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces, parent_link) {
|
||||
+ wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces_below, parent_link) {
|
||||
+ subsurface_create(view, subsurface);
|
||||
+ }
|
||||
+ wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces_above, parent_link) {
|
||||
subsurface_create(view, subsurface);
|
||||
}
|
||||
|
||||
88
pkgs/applications/window-managers/cagebreak/default.nix
Normal file
88
pkgs/applications/window-managers/cagebreak/default.nix
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cairo
|
||||
, fontconfig
|
||||
, libevdev
|
||||
, libinput
|
||||
, libxkbcommon
|
||||
, makeWrapper
|
||||
, mesa
|
||||
, meson
|
||||
, ninja
|
||||
, nixosTests
|
||||
, pango
|
||||
, pixman
|
||||
, pkg-config
|
||||
, scdoc
|
||||
, systemd
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, withXwayland ? true , xwayland
|
||||
, wlroots
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cagebreak";
|
||||
version = "1.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "project-repo";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-YaLGRlvppTUCSHFlt3sEfHgN3pYHuc5oGt3dt0DDw3I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
scdoc
|
||||
wayland
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cairo
|
||||
fontconfig
|
||||
libevdev
|
||||
libinput
|
||||
libxkbcommon
|
||||
mesa # for libEGL headers
|
||||
pango
|
||||
pixman
|
||||
systemd
|
||||
wayland
|
||||
wayland-protocols
|
||||
wlroots
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dman-pages=true"
|
||||
"-Dversion_override=${version}"
|
||||
"-Dxwayland=${lib.boolToString withXwayland}"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# TODO: investigate why is this happening
|
||||
sed -i -e 's|<drm_fourcc.h>|<libdrm/drm_fourcc.h>|' *.c
|
||||
|
||||
# Patch cagebreak to read its default configuration from $out/share/cagebreak
|
||||
sed -i "s|/etc/xdg/cagebreak|$out/share/cagebreak|" meson.build cagebreak.c
|
||||
'';
|
||||
|
||||
postFixup = lib.optionalString withXwayland ''
|
||||
wrapProgram $out/bin/cagebreak \
|
||||
--prefix PATH : "${lib.makeBinPath [ xwayland ]}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/project-repo/cagebreak";
|
||||
description = "A Wayland tiling compositor inspired by ratpoison";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ berbiche ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
||||
passthru.tests.basic = nixosTests.cagebreak;
|
||||
}
|
||||
118
pkgs/applications/window-managers/cardboard/default.nix
Normal file
118
pkgs/applications/window-managers/cardboard/default.nix
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitLab
|
||||
, fetchurl
|
||||
, fetchgit
|
||||
, ffmpeg
|
||||
, libGL
|
||||
, libX11
|
||||
, libcap
|
||||
, libdrm
|
||||
, libinput
|
||||
, libpng
|
||||
, libxcb
|
||||
, libxkbcommon
|
||||
, mesa
|
||||
, meson
|
||||
, ninja
|
||||
, pandoc
|
||||
, pixman
|
||||
, pkg-config
|
||||
, unzip
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, xcbutilerrors
|
||||
, xcbutilimage
|
||||
, xcbutilwm
|
||||
}:
|
||||
|
||||
let
|
||||
# cereal.wrap
|
||||
cereal-wrap = fetchurl {
|
||||
name = "cereal-1.3.0.tar.gz";
|
||||
url = "https://github.com/USCiLab/cereal/archive/v1.3.0.tar.gz";
|
||||
hash = "sha256-Mp6j4xMLAmwDpKzFDhaOfa/05uZhvGp9/sDXe1cIUdU=";
|
||||
};
|
||||
cereal-wrapdb = fetchurl {
|
||||
name = "cereal-1.3.0-1-wrap.zip";
|
||||
url = "https://wrapdb.mesonbuild.com/v1/projects/cereal/1.3.0/1/get_zip";
|
||||
hash = "sha256-QYck5UT7fPLqtLDb1iOSX4Hnnns48Jj23Ae/LCfLSKY=";
|
||||
};
|
||||
|
||||
# expected.wrap
|
||||
expected-wrap = fetchgit {
|
||||
name = "expected";
|
||||
url = "https://gitlab.com/cardboardwm/expected";
|
||||
rev = "0ee13cb2b058809aa9708c45ca18d494e72a759e";
|
||||
sha256 = "sha256-gYr4/pjuLlr3k6Jcrg2/SzJLtbgyA+ZN2oMHkHXANDo=";
|
||||
};
|
||||
|
||||
# wlroots.wrap
|
||||
wlroots-wrap = fetchgit {
|
||||
name = "wlroots";
|
||||
url = "https://github.com/swaywm/wlroots";
|
||||
rev = "0.12.0";
|
||||
sha256 = "sha256-1rE3D+kQprjcjobc95/mQkUa5y1noY0MdoYJ/SpFQwY=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cardboard";
|
||||
version = "0.pre+unstable=2021-05-10";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "cardboardwm";
|
||||
repo = pname;
|
||||
rev = "b54758d85164fb19468f5ca52588ebea576cd027";
|
||||
hash = "sha256-Kn5NyQSDyX7/nn2bKZPnsuepkoppi5XIkdu7IDy5r4w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pandoc
|
||||
pkg-config
|
||||
unzip
|
||||
];
|
||||
buildInputs = [
|
||||
ffmpeg
|
||||
libGL
|
||||
libX11
|
||||
libcap
|
||||
libdrm
|
||||
libinput
|
||||
libpng
|
||||
libxcb
|
||||
libxkbcommon
|
||||
mesa
|
||||
pixman
|
||||
wayland
|
||||
wayland-protocols
|
||||
xcbutilerrors
|
||||
xcbutilimage
|
||||
xcbutilwm
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
(cd subprojects
|
||||
tar xvf ${cereal-wrap}
|
||||
unzip ${cereal-wrapdb}
|
||||
cp -r ${expected-wrap} ${expected-wrap.name}
|
||||
cp -r ${wlroots-wrap} ${wlroots-wrap.name}
|
||||
)
|
||||
'';
|
||||
|
||||
# "Inherited" from Nixpkgs expression for wlroots
|
||||
mesonFlags = [
|
||||
"-Dman=true"
|
||||
"-Dwlroots:logind-provider=systemd"
|
||||
"-Dwlroots:libseat=disabled"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.com/cardboardwm/cardboard";
|
||||
description = "A scrollable, tiling Wayland compositor inspired on PaperWM";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = with platforms; unix;
|
||||
};
|
||||
}
|
||||
27
pkgs/applications/window-managers/cwm/default.nix
Normal file
27
pkgs/applications/window-managers/cwm/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libX11, libXinerama, libXrandr, libXft, bison, pkg-config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
pname = "cwm";
|
||||
version = "6.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leahneukirchen";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0f9xmki2hx10k8iisfzc7nm1l31zkf1r06pdgn06ar9w9nizrld9";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libX11 libXinerama libXrandr libXft bison ];
|
||||
|
||||
prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A lightweight and efficient window manager for X11";
|
||||
homepage = "https://github.com/leahneukirchen/cwm";
|
||||
maintainers = with maintainers; [ _0x4A6F mkf ];
|
||||
license = licenses.isc;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
96
pkgs/applications/window-managers/dwl/default.nix
Normal file
96
pkgs/applications/window-managers/dwl/default.nix
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, libinput
|
||||
, libxcb
|
||||
, libxkbcommon
|
||||
, pixman
|
||||
, pkg-config
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, wlroots
|
||||
, writeText
|
||||
, enable-xwayland ? true, xwayland, libX11
|
||||
, conf ? null
|
||||
, patches ? [ ]
|
||||
}:
|
||||
|
||||
let
|
||||
totalPatches = patches ++ [ ];
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dwl";
|
||||
version = "0.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "djpohly";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-T2GqDehBNO8eublqZUmA5WADjnwElzT+bp9Dp1bqSgg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
libinput
|
||||
libxcb
|
||||
libxkbcommon
|
||||
pixman
|
||||
wayland
|
||||
wayland-protocols
|
||||
wlroots
|
||||
] ++ lib.optionals enable-xwayland [
|
||||
libX11
|
||||
xwayland
|
||||
];
|
||||
|
||||
# Allow users to set their own list of patches
|
||||
patches = totalPatches;
|
||||
|
||||
# Last line of config.mk enables XWayland
|
||||
prePatch = lib.optionalString enable-xwayland ''
|
||||
sed -i -e '$ s|^#||' config.mk
|
||||
'';
|
||||
|
||||
# Allow users to set an alternative config.def.h
|
||||
postPatch = let
|
||||
configFile = if lib.isDerivation conf || builtins.isPath conf
|
||||
then conf
|
||||
else writeText "config.def.h" conf;
|
||||
in lib.optionalString (conf != null) "cp ${configFile} config.def.h";
|
||||
|
||||
NIX_CFLAGS_COMPILE = [
|
||||
# https://github.com/djpohly/dwl/issues/186
|
||||
"-Wno-error=unused-result"
|
||||
];
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -d $out/bin
|
||||
install -m755 dwl $out/bin
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/djpohly/dwl/";
|
||||
description = "Dynamic window manager for Wayland";
|
||||
longDescription = ''
|
||||
dwl is a compact, hackable compositor for Wayland based on wlroots. It is
|
||||
intended to fill the same space in the Wayland world that dwm does in X11,
|
||||
primarily in terms of philosophy, and secondarily in terms of
|
||||
functionality. Like dwm, dwl is:
|
||||
|
||||
- Easy to understand, hack on, and extend with patches
|
||||
- One C source file (or a very small number) configurable via config.h
|
||||
- Limited to 2000 SLOC to promote hackability
|
||||
- Tied to as few external dependencies as possible
|
||||
'';
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
inherit (wayland.meta) platforms;
|
||||
};
|
||||
}
|
||||
# TODO: custom patches from upstream website
|
||||
48
pkgs/applications/window-managers/dwm/default.nix
Normal file
48
pkgs/applications/window-managers/dwm/default.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{ lib, stdenv, fetchurl, libX11, libXinerama, libXft, writeText, patches ? [ ], conf ? null}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dwm";
|
||||
version = "6.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.suckless.org/dwm/${pname}-${version}.tar.gz";
|
||||
sha256 = "utqgKFKbH7of1/moTztk8xGQRmyFgBG1Pi97cMajB40=";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXinerama libXft ];
|
||||
|
||||
prePatch = ''
|
||||
sed -i "s@/usr/local@$out@" config.mk
|
||||
'';
|
||||
|
||||
# Allow users set their own list of patches
|
||||
inherit patches;
|
||||
|
||||
# Allow users to set the config.def.h file containing the configuration
|
||||
postPatch =
|
||||
let
|
||||
configFile =
|
||||
if lib.isDerivation conf || builtins.isPath conf
|
||||
then conf else writeText "config.def.h" conf;
|
||||
in
|
||||
lib.optionalString (conf != null) "cp ${configFile} config.def.h";
|
||||
|
||||
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://dwm.suckless.org/";
|
||||
description = "An extremely fast, small, and dynamic window manager for X";
|
||||
longDescription = ''
|
||||
dwm is a dynamic window manager for X. It manages windows in tiled,
|
||||
monocle and floating layouts. All of the layouts can be applied
|
||||
dynamically, optimising the environment for the application in use and the
|
||||
task performed.
|
||||
Windows are grouped by tags. Each window can be tagged with one or
|
||||
multiple tags. Selecting certain tags displays all windows with these
|
||||
tags.
|
||||
'';
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ viric neonfuz ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
38
pkgs/applications/window-managers/dwm/dwm-status.nix
Normal file
38
pkgs/applications/window-managers/dwm/dwm-status.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{ lib, rustPlatform, fetchFromGitHub, dbus, gdk-pixbuf, libnotify, makeWrapper, pkg-config, xorg
|
||||
, enableAlsaUtils ? true, alsa-utils, coreutils
|
||||
, enableNetwork ? true, dnsutils, iproute2, wirelesstools }:
|
||||
|
||||
let
|
||||
bins = lib.optionals enableAlsaUtils [ alsa-utils coreutils ]
|
||||
++ lib.optionals enableNetwork [ dnsutils iproute2 wirelesstools ];
|
||||
in
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "dwm-status";
|
||||
version = "1.7.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Gerschtli";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-dkVo9NpGt3G6by9Of1kOlXaZn7xsVSvfNXq7KPO6HE4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper pkg-config ];
|
||||
buildInputs = [ dbus gdk-pixbuf libnotify xorg.libX11 ];
|
||||
|
||||
cargoSha256 = "sha256-QPnr7dUsq/RzuNLpbTRQbGB3zU6lNuPPPM9FmH4ydzY=";
|
||||
|
||||
postInstall = lib.optionalString (bins != []) ''
|
||||
wrapProgram $out/bin/dwm-status --prefix "PATH" : "${lib.makeBinPath bins}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Highly performant and configurable DWM status service";
|
||||
homepage = "https://github.com/Gerschtli/dwm-status";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ gerschtli ];
|
||||
mainProgram = pname;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
38
pkgs/applications/window-managers/dzen2/default.nix
Normal file
38
pkgs/applications/window-managers/dzen2/default.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, libX11, libXft, libXinerama, libXpm }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dzen2";
|
||||
version = "0.9.5";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libX11 libXft libXinerama libXpm ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/robm/dzen/tarball/master/dzen2-${version}git.tar.gz";
|
||||
sha256 = "d4f7943cd39dc23fd825eb684b49dc3484860fa8443d30b06ee38af72a53b556";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
CFLAGS=" -Wall -Os ''${INCS} -DVERSION=\"''${VERSION}\" -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT `pkg-config --cflags xft`"
|
||||
LIBS=" -L/usr/lib -lc -lXft -lXpm -lXinerama -lX11"
|
||||
echo "CFLAGS=$CFLAGS" >>config.mk
|
||||
echo "LIBS=$LIBS" >>config.mk
|
||||
echo "LDFLAGS=$LIBS" >>config.mk
|
||||
substituteInPlace config.mk --replace /usr/local "$out"
|
||||
substituteInPlace gadgets/config.mk --replace /usr/local "$out"
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
mkdir -p $out/bin $out/man/man1
|
||||
make clean install
|
||||
cd gadgets
|
||||
make clean install
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/robm/dzen";
|
||||
license = lib.licenses.mit;
|
||||
description = "X notification utility";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
62
pkgs/applications/window-managers/e16/default.nix
Normal file
62
pkgs/applications/window-managers/e16/default.nix
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, freetype
|
||||
, imlib2
|
||||
, libSM
|
||||
, libXcomposite
|
||||
, libXdamage
|
||||
, libXext
|
||||
, libXfixes
|
||||
, libXft
|
||||
, libXinerama
|
||||
, libXrandr
|
||||
, libpulseaudio
|
||||
, libsndfile
|
||||
, pango
|
||||
, perl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "e16";
|
||||
version = "1.0.24";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/enlightenment/e16-${version}.tar.xz";
|
||||
sha256 = "1anmwfjyynwl0ylkyksa7bnsqzf58l1yccjzp3kbwq6nw1gs7dbv";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
freetype
|
||||
imlib2
|
||||
libSM
|
||||
libXcomposite
|
||||
libXdamage
|
||||
libXext
|
||||
libXfixes
|
||||
libXft
|
||||
libXinerama
|
||||
libXrandr
|
||||
libpulseaudio
|
||||
libsndfile
|
||||
pango
|
||||
perl
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace scripts/e_gen_menu --replace "/usr/local:" "/run/current-system/sw:/usr/local:"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.enlightenment.org/e16";
|
||||
description = "Enlightenment DR16 window manager";
|
||||
license = licenses.bsd2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.romildo ];
|
||||
};
|
||||
}
|
||||
50
pkgs/applications/window-managers/evilwm/default.nix
Normal file
50
pkgs/applications/window-managers/evilwm/default.nix
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, libX11
|
||||
, libXext
|
||||
, libXrandr
|
||||
, libXrender
|
||||
, xorgproto
|
||||
, patches ? [ ]
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "evilwm";
|
||||
version = "1.1.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.6809.org.uk/evilwm/evilwm-${version}.tar.gz";
|
||||
sha256 = "79589c296a5915ee0bae1d231e8912601fc794d9f0a9cacb6b648ff9a5f2602a";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
libX11
|
||||
libXext
|
||||
libXrandr
|
||||
libXrender
|
||||
xorgproto
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace ./Makefile \
|
||||
--replace /usr $out \
|
||||
--replace "CC = gcc" "#CC = gcc"
|
||||
'';
|
||||
|
||||
# Allow users set their own list of patches
|
||||
inherit patches;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.6809.org.uk/evilwm/";
|
||||
description = "Minimalist window manager for the X Window System";
|
||||
license = {
|
||||
shortName = "evilwm";
|
||||
fullName = "Custom, inherited from aewm and 9wm";
|
||||
url = "http://www.6809.org.uk/evilwm/";
|
||||
free = true;
|
||||
}; # like BSD/MIT, but Share-Alike'y; See README.
|
||||
maintainers = with maintainers; [ amiloradovsky ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
45
pkgs/applications/window-managers/eww/default.nix
Normal file
45
pkgs/applications/window-managers/eww/default.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, withWayland ? false
|
||||
, gtk-layer-shell
|
||||
, stdenv
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "eww";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elkowar";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "050zc3w1z9f2vg6sz86mdxf345gd3s3jf09gf4y8y1mqkzs86b8x";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-LejnTVv9rhL9CVW1fgj2gFv4amHQeziu5uaH2ae8AAw=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ gtk3 ] ++ lib.optional withWayland gtk-layer-shell;
|
||||
|
||||
buildNoDefaultFeatures = withWayland;
|
||||
buildFeatures = lib.optional withWayland "wayland";
|
||||
|
||||
cargoBuildFlags = [ "--bin" "eww" ];
|
||||
|
||||
cargoTestFlags = cargoBuildFlags;
|
||||
|
||||
# requires unstable rust features
|
||||
RUSTC_BOOTSTRAP = 1;
|
||||
|
||||
meta = with lib; {
|
||||
description = "ElKowars wacky widgets";
|
||||
homepage = "https://github.com/elkowar/eww";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ figsoda lom ];
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
}
|
||||
36
pkgs/applications/window-managers/fbpanel/default.nix
Normal file
36
pkgs/applications/window-managers/fbpanel/default.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config
|
||||
, libX11, libXmu, libXpm, gtk2, libpng, libjpeg, libtiff, librsvg, gdk-pixbuf, gdk-pixbuf-xlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fbpanel";
|
||||
version = "6.1";
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/fbpanel/${pname}-${version}.tbz2";
|
||||
sha256 = "e14542cc81ea06e64dd4708546f5fd3f5e01884c3e4617885c7ef22af8cf3965";
|
||||
};
|
||||
buildInputs =
|
||||
[ pkg-config libX11 libXmu libXpm gtk2 libpng libjpeg libtiff librsvg gdk-pixbuf gdk-pixbuf-xlib.dev ];
|
||||
|
||||
preConfigure = "patchShebangs .";
|
||||
|
||||
postConfigure = ''
|
||||
substituteInPlace config.mk \
|
||||
--replace "CFLAGSX =" "CFLAGSX = -I${gdk-pixbuf-xlib.dev}/include/gdk-pixbuf-2.0"
|
||||
'';
|
||||
|
||||
NIX_LDFLAGS="-lX11";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A stand-alone panel";
|
||||
maintainers = with maintainers; [ raskin ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.mit;
|
||||
};
|
||||
|
||||
passthru = {
|
||||
updateInfo = {
|
||||
downloadPage = "fbpanel.sourceforge.net";
|
||||
};
|
||||
};
|
||||
}
|
||||
53
pkgs/applications/window-managers/fluxbox/default.nix
Normal file
53
pkgs/applications/window-managers/fluxbox/default.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config
|
||||
, freetype, fribidi
|
||||
, libXext, libXft, libXpm, libXrandr, libXrender, xorgproto
|
||||
, libXinerama
|
||||
, imlib2 }:
|
||||
|
||||
with lib;
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
pname = "fluxbox";
|
||||
version = "1.3.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/fluxbox/${pname}-${version}.tar.xz";
|
||||
sha256 = "1h1f70y40qd225dqx937vzb4k2cz219agm1zvnjxakn5jkz7b37w";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Upstream fix to build against gcc-11.
|
||||
(fetchurl {
|
||||
name = "gcc-11.patch";
|
||||
url = "http://git.fluxbox.org/fluxbox.git/patch/?id=22866c4d30f5b289c429c5ca88d800200db4fc4f";
|
||||
sha256 = "1x7126rlmzky51lk370fczssgnjs7i6wgfaikfib9pvn4vv945ai";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ freetype fribidi libXext libXft libXpm libXrandr libXrender xorgproto libXinerama imlib2 ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure = ''
|
||||
substituteInPlace util/fluxbox-generate_menu.in \
|
||||
--subst-var-by PREFIX "$out"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Full-featured, light-resource X window manager";
|
||||
longDescription = ''
|
||||
Fluxbox is a X window manager based on Blackbox 0.61.1 window
|
||||
manager sources. It is very light on resources and easy to
|
||||
handle but yet full of features to make an easy, and extremely
|
||||
fast, desktop experience. It is written in C++ and licensed
|
||||
under MIT license.
|
||||
'';
|
||||
homepage = "http://fluxbox.org/";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.AndersonTorres ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
# Many thanks Jack Ryan from Nix-dev mailing list!
|
||||
43
pkgs/applications/window-managers/fvwm/default.nix
Normal file
43
pkgs/applications/window-managers/fvwm/default.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{ autoreconfHook, enableGestures ? false, lib, stdenv, fetchFromGitHub
|
||||
, pkg-config, cairo, fontconfig, freetype, libXft, libXcursor, libXinerama
|
||||
, libXpm, libXt, librsvg, libpng, fribidi, perl, libstroke, readline, libxslt }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fvwm";
|
||||
version = "2.6.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fvwmorg";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "14jwckhikc9n4h93m00pzjs7xm2j0dcsyzv3q5vbcnknp6p4w5dh";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
buildInputs = [
|
||||
cairo
|
||||
fontconfig
|
||||
freetype
|
||||
libXft
|
||||
libXcursor
|
||||
libXinerama
|
||||
libXpm
|
||||
libXt
|
||||
librsvg
|
||||
libpng
|
||||
fribidi
|
||||
perl
|
||||
readline
|
||||
libxslt
|
||||
] ++ lib.optional enableGestures libstroke;
|
||||
|
||||
configureFlags = [ "--enable-mandoc" "--disable-htmldoc" ];
|
||||
|
||||
meta = {
|
||||
homepage = "http://fvwm.org";
|
||||
description = "A multiple large virtual desktop window manager";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ edanaher ];
|
||||
};
|
||||
}
|
||||
97
pkgs/applications/window-managers/herbstluftwm/default.nix
Normal file
97
pkgs/applications/window-managers/herbstluftwm/default.nix
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
{ lib, stdenv, fetchurl, cmake, pkg-config, python3, libX11, libXext, libXinerama, libXrandr, libXft, libXrender, libXdmcp, libXfixes, freetype, asciidoc
|
||||
, xdotool, xorgserver, xsetroot, xterm, runtimeShell
|
||||
, nixosTests }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "herbstluftwm";
|
||||
version = "0.9.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz";
|
||||
sha256 = "1k03rdr6irsgnjl4w0vac0kk9nsz46qhy74iflmaycxgfv8fxy7f";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"doc"
|
||||
"man"
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_INSTALL_SYSCONF_PREFIX=${placeholder "out"}/etc"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
depsBuildBuild = [
|
||||
asciidoc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libX11
|
||||
libXext
|
||||
libXinerama
|
||||
libXrandr
|
||||
libXft
|
||||
libXrender
|
||||
libXdmcp
|
||||
libXfixes
|
||||
freetype
|
||||
];
|
||||
|
||||
patches = [
|
||||
./test-path-environment.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs doc/gendoc.py
|
||||
|
||||
# fix /etc/xdg/herbstluftwm paths in documentation and scripts
|
||||
grep -rlZ /etc/xdg/herbstluftwm share/ doc/ scripts/ | while IFS="" read -r -d "" path; do
|
||||
substituteInPlace "$path" --replace /etc/xdg/herbstluftwm $out/etc/xdg/herbstluftwm
|
||||
done
|
||||
|
||||
# fix shebang in generated scripts
|
||||
substituteInPlace tests/conftest.py --replace "/usr/bin/env bash" ${runtimeShell}
|
||||
substituteInPlace tests/test_herbstluftwm.py --replace "/usr/bin/env bash" ${runtimeShell}
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
checkInputs = [
|
||||
(python3.withPackages (ps: with ps; [ ewmh pytest xlib ]))
|
||||
xdotool
|
||||
xorgserver
|
||||
xsetroot
|
||||
xterm
|
||||
python3.pkgs.pytestCheckHook
|
||||
];
|
||||
|
||||
# make the package's module avalaible
|
||||
preCheck = ''
|
||||
export PYTHONPATH="$PYTHONPATH:../python"
|
||||
'';
|
||||
|
||||
pytestFlagsArray = [ "../tests" ];
|
||||
disabledTests = [
|
||||
"test_title_different_letters_are_drawn" # font problems
|
||||
"test_completable_commands" # font problems
|
||||
"test_autostart" # $PATH problems
|
||||
"test_wmexec_to_other" # timeouts in sandbox
|
||||
];
|
||||
|
||||
passthru = {
|
||||
tests.herbstluftwm = nixosTests.herbstluftwm;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A manual tiling window manager for X";
|
||||
homepage = "https://herbstluftwm.org/";
|
||||
license = licenses.bsd2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ thibautmarty ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
--- a/tests/conftest.py
|
||||
+++ b/tests/conftest.py
|
||||
@@ -43,6 +43,7 @@
|
||||
self.next_client_id = 0
|
||||
self.env = {
|
||||
'DISPLAY': display,
|
||||
+ 'PATH': os.environ['PATH']
|
||||
}
|
||||
self.env = extend_env_with_whitelist(self.env)
|
||||
self.hlwm_process = hlwm_process
|
||||
64
pkgs/applications/window-managers/hikari/default.nix
Normal file
64
pkgs/applications/window-managers/hikari/default.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
{ lib, stdenv, fetchzip
|
||||
, pkg-config, bmake
|
||||
, cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman
|
||||
, libucl, wayland, wayland-protocols, wlroots, mesa
|
||||
, features ? {
|
||||
gammacontrol = true;
|
||||
layershell = true;
|
||||
screencopy = true;
|
||||
xwayland = true;
|
||||
}
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hikari";
|
||||
version = "2.3.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-At4b6mkArKe6knNWouLdZ9v8XhfHaUW+aB+CHyEBg8o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config bmake ];
|
||||
|
||||
buildInputs = [
|
||||
cairo
|
||||
glib
|
||||
libevdev
|
||||
libinput
|
||||
libxkbcommon
|
||||
linux-pam
|
||||
pango
|
||||
pixman
|
||||
libucl
|
||||
mesa # for libEGL
|
||||
wayland
|
||||
wayland-protocols
|
||||
wlroots
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
makeFlags = with lib; [ "PREFIX=$(out)" ]
|
||||
++ optional stdenv.isLinux "WITH_POSIX_C_SOURCE=YES"
|
||||
++ mapAttrsToList (feat: enabled:
|
||||
optionalString enabled "WITH_${toUpper feat}=YES"
|
||||
) features;
|
||||
|
||||
postPatch = ''
|
||||
# Can't suid in nix store
|
||||
# Run hikari as root (it will drop privileges as early as possible), or create
|
||||
# a systemd unit to give it the necessary permissions/capabilities.
|
||||
substituteInPlace Makefile --replace '4555' '555'
|
||||
|
||||
sed -i 's@<drm_fourcc.h>@<libdrm/drm_fourcc.h>@' src/*.c
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Stacking Wayland compositor which is actively developed on FreeBSD but also supports Linux";
|
||||
homepage = "https://hikari.acmelabs.space";
|
||||
license = licenses.bsd2;
|
||||
platforms = platforms.linux ++ platforms.freebsd;
|
||||
maintainers = with maintainers; [ jpotier ];
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/window-managers/i3/altlayout.nix
Normal file
25
pkgs/applications/window-managers/i3/altlayout.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, python3Packages }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "i3altlayout";
|
||||
version = "0.3";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1h0phf3s6ljffxw0bs73k041wildaz01h37iv5mxhami41wrh4qf";
|
||||
};
|
||||
|
||||
pythonPath = with python3Packages; [ enum-compat i3ipc docopt ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "i3altlayout" ];
|
||||
|
||||
meta = with lib; {
|
||||
maintainers = with maintainers; [ magnetophon ];
|
||||
description = "Helps you handle more efficiently your screen real estate in i3wm by auto-splitting windows on their longest side";
|
||||
homepage = "https://github.com/deadc0de6/i3altlayout";
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
26
pkgs/applications/window-managers/i3/auto-layout.nix
Normal file
26
pkgs/applications/window-managers/i3/auto-layout.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, rustPlatform, fetchFromGitHub }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "i3-auto-layout";
|
||||
version = "0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "chmln";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0ps08lga6qkgc8cgf5cx2lgwlqcnd2yazphh9xd2fznnzrllfxxz";
|
||||
};
|
||||
|
||||
cargoSha256 = "1i01kqvsykanzs7pi94gab9k2dqg1ki40mmjrwa22n0ypkbnvsmx";
|
||||
|
||||
# Currently no tests are implemented, so we avoid building the package twice
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Automatic, optimal tiling for i3wm";
|
||||
homepage = "https://github.com/chmln/i3-auto-layout";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ mephistophiles ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
23
pkgs/applications/window-managers/i3/balance-workspace.nix
Normal file
23
pkgs/applications/window-managers/i3/balance-workspace.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{ lib, buildPythonPackage, fetchPypi, i3ipc }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "i3-balance-workspace";
|
||||
version = "1.8.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-zJdn/Q6r60FQgfehtQfeDkmN0Rz3ZaqgNhiWvjyQFy0=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ i3ipc ];
|
||||
|
||||
doCheck = false; # project has no test
|
||||
pythonImportsCheck = [ "i3_balance_workspace" ];
|
||||
|
||||
meta = {
|
||||
description = "Balance windows and workspaces in i3wm";
|
||||
homepage = "https://pypi.org/project/i3-balance-workspace/";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ pacien ];
|
||||
};
|
||||
}
|
||||
55
pkgs/applications/window-managers/i3/blocks-gaps.nix
Normal file
55
pkgs/applications/window-managers/i3/blocks-gaps.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{ fetchFromGitHub, lib, stdenv, perl, makeWrapper
|
||||
, iproute2, acpi, sysstat, alsa-utils
|
||||
, scripts ? [ "bandwidth" "battery" "cpu_usage" "disk" "iface"
|
||||
"load_average" "memory" "volume" "wifi" ]
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
perlscripts = [ "battery" "cpu_usage" "openvpn" "temperature" ];
|
||||
contains_any = l1: l2: 0 < length( intersectLists l1 l2 );
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "i3blocks-gaps";
|
||||
version = "1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Airblader";
|
||||
repo = "i3blocks-gaps";
|
||||
rev = "4cfdf93c75f729a2c96d471004d31734e923812f";
|
||||
sha256 = "0v9307ij8xzwdaxay3r75sd2cp453s3qb6q7dy9fks2p6wwqpazi";
|
||||
};
|
||||
|
||||
makeFlags = [ "all" ];
|
||||
installFlags = [ "PREFIX=\${out}" "VERSION=${version}" ];
|
||||
|
||||
buildInputs = optional (contains_any scripts perlscripts) perl;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
postFixup = optionalString (elem "bandwidth" scripts) ''
|
||||
wrapProgram $out/libexec/i3blocks/bandwidth \
|
||||
--prefix PATH : ${makeBinPath [ iproute2 ]}
|
||||
'' + optionalString (elem "battery" scripts) ''
|
||||
wrapProgram $out/libexec/i3blocks/battery \
|
||||
--prefix PATH : ${makeBinPath [ acpi ]}
|
||||
'' + optionalString (elem "cpu_usage" scripts) ''
|
||||
wrapProgram $out/libexec/i3blocks/cpu_usage \
|
||||
--prefix PATH : ${makeBinPath [ sysstat ]}
|
||||
'' + optionalString (elem "iface" scripts) ''
|
||||
wrapProgram $out/libexec/i3blocks/iface \
|
||||
--prefix PATH : ${makeBinPath [ iproute2 ]}
|
||||
'' + optionalString (elem "volume" scripts) ''
|
||||
wrapProgram $out/libexec/i3blocks/volume \
|
||||
--prefix PATH : ${makeBinPath [ alsa-utils ]}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A flexible scheduler for your i3bar blocks -- this is a fork to use with i3-gaps";
|
||||
homepage = "https://github.com/Airblader/i3blocks-gaps";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ carlsverre ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
33
pkgs/applications/window-managers/i3/blocks.nix
Normal file
33
pkgs/applications/window-managers/i3/blocks.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ fetchFromGitHub, fetchpatch, lib, stdenv, autoreconfHook, pkg-config }:
|
||||
|
||||
with lib;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "i3blocks";
|
||||
version = "1.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vivien";
|
||||
repo = "i3blocks";
|
||||
rev = "3417602a2d8322bc866861297f535e1ef80b8cb0";
|
||||
sha256 = "0v8mwnm8qzpv6xnqvrk43s4b9iyld4naqzbaxk4ldq1qkhai0wsv";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# XDG_CONFIG_DIRS can contain multiple elements separated by colons, which should be searched in order.
|
||||
(fetchpatch {
|
||||
# https://github.com/vivien/i3blocks/pull/405
|
||||
url = "https://github.com/edef1c/i3blocks/commit/d57b32f9a364aeaf36869efdd54240433c737e57.patch";
|
||||
sha256 = "102xb0ax0hmg82dz2gzfag470dkckzf2yizai0izacvrz0d3ngj1";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
|
||||
meta = {
|
||||
description = "A flexible scheduler for your i3bar blocks";
|
||||
homepage = "https://github.com/vivien/i3blocks";
|
||||
license = licenses.gpl3;
|
||||
platforms = with platforms; freebsd ++ linux;
|
||||
};
|
||||
}
|
||||
82
pkgs/applications/window-managers/i3/default.nix
Normal file
82
pkgs/applications/window-managers/i3/default.nix
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
{ fetchurl, lib, stdenv, pkg-config, makeWrapper, meson, ninja, installShellFiles, libxcb, xcbutilkeysyms
|
||||
, xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification, libX11, pcre, libev
|
||||
, yajl, xcb-util-cursor, perl, pango, perlPackages, libxkbcommon
|
||||
, xorgserver, xvfb-run
|
||||
, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, findXMLCatalogs
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "i3";
|
||||
version = "4.20.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz";
|
||||
sha256 = "1rpwdgykcvmrmdz244f0wm7446ih1dcw8rlc1hm1c7cc42pyrq93";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config makeWrapper meson ninja installShellFiles perl
|
||||
asciidoc xmlto docbook_xml_dtd_45 docbook_xsl findXMLCatalogs
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Ddocs=true"
|
||||
"-Dmans=true"
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libxcb xcbutilkeysyms xcbutil xcbutilwm xcbutilxrm libxkbcommon
|
||||
libstartup_notification libX11 pcre libev yajl xcb-util-cursor perl pango
|
||||
perlPackages.AnyEventI3 perlPackages.X11XCB perlPackages.IPCRun
|
||||
perlPackages.ExtUtilsPkgConfig perlPackages.InlineC
|
||||
xorgserver xvfb-run
|
||||
];
|
||||
|
||||
configureFlags = [ "--disable-builddir" ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
# Tests have been failing (at least for some people in some cases)
|
||||
# and have been disabled until someone wants to fix them. Some
|
||||
# initial digging uncovers that the tests call out to `git`, which
|
||||
# they shouldn't, and then even once that's fixed have some
|
||||
# perl-related errors later on. For more, see
|
||||
# https://github.com/NixOS/nixpkgs/issues/7957
|
||||
doCheck = false; # stdenv.hostPlatform.system == "x86_64-linux";
|
||||
|
||||
checkPhase = lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
|
||||
''
|
||||
(cd testcases && xvfb-run ./complete-run.pl -p 1 --keep-xserver-output)
|
||||
! grep -q '^not ok' testcases/latest/complete-run.log
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/i3-save-tree" --prefix PERL5LIB ":" "$PERL5LIB"
|
||||
for program in $out/bin/i3-sensible-*; do
|
||||
sed -i 's/which/command -v/' $program
|
||||
done
|
||||
|
||||
installManPage man/*.1
|
||||
'';
|
||||
|
||||
separateDebugInfo = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A tiling window manager";
|
||||
homepage = "https://i3wm.org";
|
||||
maintainers = with maintainers; [ modulistic fpletz globin ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.all;
|
||||
|
||||
longDescription = ''
|
||||
A tiling window manager primarily targeted at advanced users and
|
||||
developers. Based on a tree as data structure, supports tiling,
|
||||
stacking, and tabbing layouts, handled dynamically, as well as
|
||||
floating windows. Configured via plain text file. Multi-monitor.
|
||||
UTF-8 clean.
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
32
pkgs/applications/window-managers/i3/easyfocus.nix
Normal file
32
pkgs/applications/window-managers/i3/easyfocus.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, xorgproto, libxcb, xcbutilkeysyms
|
||||
, xorg , i3ipc-glib , glib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "i3easyfocus";
|
||||
version = "20190411";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cornerman";
|
||||
repo = "i3-easyfocus";
|
||||
rev = "fffb468f7274f9d7c9b92867c8cb9314ec6cf81a";
|
||||
sha256 = "1db23vzzmp0hnfss1fkd80za6d2pajx7hdwikw50pk95jq0w8wfm";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libxcb xcbutilkeysyms xorgproto xorg.libX11.dev i3ipc-glib glib.dev ];
|
||||
|
||||
# Makefile has no rule for 'install'
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp i3-easyfocus $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Focus and select windows in i3";
|
||||
homepage = "https://github.com/cornerman/i3-easyfocus";
|
||||
maintainers = with maintainers; [teto];
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
29
pkgs/applications/window-managers/i3/gaps.nix
Normal file
29
pkgs/applications/window-managers/i3/gaps.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ fetchFromGitHub, lib, i3 }:
|
||||
|
||||
i3.overrideAttrs (oldAttrs : rec {
|
||||
pname = "i3-gaps";
|
||||
version = "4.20.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Airblader";
|
||||
repo = "i3";
|
||||
rev = version;
|
||||
sha256 = "sha256-aS1dLs8KxoJaTf3RlQX+zRrtNmHEFZgkXDjt+8SuGDw=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A fork of the i3 tiling window manager with some additional features";
|
||||
homepage = "https://github.com/Airblader/i3";
|
||||
maintainers = with maintainers; [ fmthoma ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux ++ platforms.netbsd ++ platforms.openbsd;
|
||||
|
||||
longDescription = ''
|
||||
Fork of i3wm, a tiling window manager primarily targeted at advanced users
|
||||
and developers. Based on a tree as data structure, supports tiling,
|
||||
stacking, and tabbing layouts, handled dynamically, as well as floating
|
||||
windows. This fork adds a few features such as gaps between windows.
|
||||
Configured via plain text file. Multi-monitor. UTF-8 clean.
|
||||
'';
|
||||
};
|
||||
})
|
||||
26
pkgs/applications/window-managers/i3/i3-ratiosplit.nix
Normal file
26
pkgs/applications/window-managers/i3/i3-ratiosplit.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, rustPlatform, fetchFromGitHub }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "i3-ratiosplit";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "333fred";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0yfmr5zk2c2il9d31yjjbr48sqgcq6hp4a99hl5mjm2ajyhy5bz3";
|
||||
};
|
||||
|
||||
cargoSha256 = "134sgc9d0j57swknl9sgil6212rws2hhp92s3cg1yzz5ygx21c76";
|
||||
|
||||
# Currently no tests are implemented, so we avoid building the package twice
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Resize newly created windows";
|
||||
homepage = "https://github.com/333fred/i3-ratiosplit";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ svrana ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
22
pkgs/applications/window-managers/i3/i3-resurrect.nix
Normal file
22
pkgs/applications/window-managers/i3/i3-resurrect.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, buildPythonApplication, click, i3ipc, psutil, natsort, fetchPypi, xprop, xdotool, importlib-metadata }:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "i3-resurrect";
|
||||
version = "1.4.3";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0h181frdwpqfj9agw43qgicdvzv1i7xwky0vs0ksd8h18qxqp4hr";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ click psutil xprop natsort i3ipc xdotool importlib-metadata ];
|
||||
doCheck = false; # no tests
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/JonnyHaystack/i3-resurrect";
|
||||
description = "A simple but flexible solution to saving and restoring i3 workspaces";
|
||||
license = licenses.gpl3;
|
||||
platforms= platforms.linux;
|
||||
maintainers = with maintainers; [ magnetophon ];
|
||||
};
|
||||
}
|
||||
34
pkgs/applications/window-managers/i3/i3ipc-glib.nix
Normal file
34
pkgs/applications/window-managers/i3/i3ipc-glib.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, xorgproto, libxcb
|
||||
, autoreconfHook, json-glib, gtk-doc, which
|
||||
, gobject-introspection
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
pname = "i3ipc-glib";
|
||||
version = "1.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "acrisci";
|
||||
repo = "i3ipc-glib";
|
||||
rev = "v${version}";
|
||||
sha256 = "01fzvrbnzcwx0vxw29igfpza9zwzp2s7msmzb92v01z0rz0y5m0p";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook which pkg-config ];
|
||||
|
||||
buildInputs = [ libxcb json-glib gtk-doc xorgproto gobject-introspection ];
|
||||
|
||||
|
||||
preAutoreconf = ''
|
||||
gtkdocize
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A C interface library to i3wm";
|
||||
homepage = "https://github.com/acrisci/i3ipc-glib";
|
||||
maintainers = with maintainers; [teto];
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
39
pkgs/applications/window-managers/i3/layout-manager.nix
Normal file
39
pkgs/applications/window-managers/i3/layout-manager.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{ lib, stdenv, fetchFromGitHub, vim, makeWrapper, jq, rofi, xrandr, xdotool, i3, gawk, libnotify }:
|
||||
|
||||
let
|
||||
path = lib.makeBinPath [ vim jq rofi xrandr xdotool i3 gawk libnotify ];
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "i3-layout-manager";
|
||||
version = "unstable-2020-05-04";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "klaxalk";
|
||||
repo = pname;
|
||||
rev = "df54826bba351d8bcd7ebeaf26c07c713af7912c";
|
||||
sha256 = "0ccvr43yp26fnh5d82cw7jcfq2sbxzzmdx2cp15bmxr8ixr8knc3";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -D layout_manager.sh $out/bin/layout_manager
|
||||
wrapProgram $out/bin/layout_manager \
|
||||
--prefix PATH : "${path}"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/klaxalk/i3-layout-manager";
|
||||
description = "Saving, loading and managing layouts for i3wm";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
||||
32
pkgs/applications/window-managers/i3/lock-blur.nix
Normal file
32
pkgs/applications/window-managers/i3/lock-blur.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ i3lock-color, lib, stdenv, fetchFromGitHub, fetchpatch }:
|
||||
|
||||
i3lock-color.overrideAttrs (oldAttrs : rec {
|
||||
pname = "i3lock-blur";
|
||||
version = "2.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "karulont";
|
||||
repo = "i3lock-blur";
|
||||
rev = version;
|
||||
sha256 = "sha256-rBQHYVD9rurzTEXrgEnOziOP22D2EePC1+EV9Wi2pa0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Pull patch pending upstream inclusion for -fno-common toolchain
|
||||
# support: https://github.com/karulont/i3lock-blur/pull/22
|
||||
(fetchpatch {
|
||||
name = "fno-common.patch";
|
||||
url = "https://github.com/karulont/i3lock-blur/commit/ec8fe0e7f7d78bf445602ed517efd5c324bb32f7.patch";
|
||||
sha256 = "sha256-0hXUr+ZEB1tpI3xw80/hGzKyeGuna4CQmEvK6t0VBqU=";
|
||||
})
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "An improved screenlocker based upon XCB and PAM with background blurring filter";
|
||||
homepage = "https://github.com/karulont/i3lock-blur/";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ dan4ik605743 ];
|
||||
platforms = platforms.all;
|
||||
broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/i3lock-blur.x86_64-darwin
|
||||
};
|
||||
})
|
||||
61
pkgs/applications/window-managers/i3/lock-color.nix
Normal file
61
pkgs/applications/window-managers/i3/lock-color.nix
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, libxcb,
|
||||
xcbutilkeysyms , xcbutilimage, pam, libX11, libev, cairo, libxkbcommon,
|
||||
libxkbfile, libjpeg_turbo, xcbutilxrm
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2.13.c.4";
|
||||
pname = "i3lock-color";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PandorasFox";
|
||||
repo = "i3lock-color";
|
||||
rev = version;
|
||||
sha256 = "sha256-bbjkvgSKD57sdOtPYGLAKpQoIsJnF6s6ySq4dTWC3tI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
buildInputs = [ libxcb xcbutilkeysyms xcbutilimage pam libX11
|
||||
libev cairo libxkbcommon libxkbfile libjpeg_turbo xcbutilxrm ];
|
||||
|
||||
makeFlags = [ "all" ];
|
||||
preInstall = ''
|
||||
mkdir -p $out/share/man/man1
|
||||
'';
|
||||
installFlags = [ "PREFIX=\${out}" "SYSCONFDIR=\${out}/etc" "MANDIR=\${out}/share/man" ];
|
||||
postInstall = ''
|
||||
mv $out/bin/i3lock $out/bin/i3lock-color
|
||||
mv $out/share/man/man1/i3lock.1 $out/share/man/man1/i3lock-color.1
|
||||
sed -i 's/\(^\|\s\|"\)i3lock\(\s\|$\)/\1i3lock-color\2/g' $out/share/man/man1/i3lock-color.1
|
||||
'';
|
||||
meta = with lib; {
|
||||
description = "A simple screen locker like slock, enhanced version with extra configuration options";
|
||||
longDescription = ''
|
||||
Simple screen locker. After locking, a colored background (default: white) or
|
||||
a configurable image is shown, and a ring-shaped unlock-indicator gives feedback
|
||||
for every keystroke. After entering your password, the screen is unlocked again.
|
||||
|
||||
i3lock-color is forked from i3lock (https://i3wm.org/i3lock/) with the following
|
||||
enhancements / additional configuration options:
|
||||
|
||||
- indicator:
|
||||
- shape: ring or bar
|
||||
- size: configurable
|
||||
- all colors: configurable
|
||||
- all texts: configurable
|
||||
- visibility: can be always visible, can be restricted to some screens
|
||||
|
||||
- background: optionally show a blurred screen instead of a single color
|
||||
|
||||
- more information: show text at configurable positions:
|
||||
- clock: time/date with configurable format
|
||||
- keyboard-layout
|
||||
'';
|
||||
homepage = "https://github.com/PandorasFox/i3lock-color";
|
||||
maintainers = with maintainers; [ malyn ];
|
||||
license = licenses.bsd3;
|
||||
|
||||
platforms = platforms.all;
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
}
|
||||
32
pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
Normal file
32
pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, stdenv, fetchFromGitHub, xorg, i3lock }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "i3lock-fancy-rapid";
|
||||
version = "2019-10-09";
|
||||
src = fetchFromGitHub {
|
||||
owner = "yvbbrjdr";
|
||||
repo = "i3lock-fancy-rapid";
|
||||
rev = "c67f09bc8a48798c7c820d7d4749240b10865ce0";
|
||||
sha256 = "0jhvlj6v6wx70239pgkjxd42z1s2bzfg886ra6n1rzsdclf4rkc6";
|
||||
};
|
||||
|
||||
buildInputs = [ xorg.libX11 ];
|
||||
propagatedBuildInputs = [ i3lock ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace i3lock-fancy-rapid.c \
|
||||
--replace '"i3lock"' '"${i3lock}/bin/i3lock"'
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -D i3lock-fancy-rapid $out/bin/i3lock-fancy-rapid
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A faster implementation of i3lock-fancy";
|
||||
homepage = "https://github.com/yvbbrjdr/i3lock-fancy-rapid";
|
||||
maintainers = with maintainers; [ nickhu ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
54
pkgs/applications/window-managers/i3/lock-fancy.nix
Normal file
54
pkgs/applications/window-managers/i3/lock-fancy.nix
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, coreutils
|
||||
, scrot
|
||||
, imagemagick
|
||||
, gawk
|
||||
, i3lock-color
|
||||
, getopt
|
||||
, fontconfig
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "i3lock-fancy";
|
||||
version = "unstable-2018-11-25";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "meskarune";
|
||||
repo = "i3lock-fancy";
|
||||
rev = "7accfb2aa2f918d1a3ab975b860df1693d20a81a";
|
||||
sha256 = "00lqsvz1knb8iqy8lnkn3sf4c2c4nzb0smky63qf48m8za5aw9b1";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i i3lock-fancy \
|
||||
-e "s|mktemp|${coreutils}/bin/mktemp|" \
|
||||
-e "s|'rm -f |'${coreutils}/bin/rm -f |" \
|
||||
-e "s|scrot -z |${scrot}/bin/scrot -z |" \
|
||||
-e "s|convert |${imagemagick.out}/bin/convert |" \
|
||||
-e "s|awk -F|${gawk}/bin/awk -F|" \
|
||||
-e "s| awk | ${gawk}/bin/awk |" \
|
||||
-e "s|i3lock -i |${i3lock-color}/bin/i3lock-color -i |" \
|
||||
-e 's|icon="/usr/share/i3lock-fancy/icons/lockdark.png"|icon="'$out'/share/i3lock-fancy/icons/lockdark.png"|' \
|
||||
-e 's|icon="/usr/share/i3lock-fancy/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|' \
|
||||
-e "s|getopt |${getopt}/bin/getopt |" \
|
||||
-e "s|fc-match |${fontconfig.bin}/bin/fc-match |" \
|
||||
-e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z -o)|"
|
||||
rm Makefile
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/share/i3lock-fancy/icons
|
||||
cp i3lock-fancy $out/bin/i3lock-fancy
|
||||
cp icons/lock*.png $out/share/i3lock-fancy/icons
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "i3lock is a bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text";
|
||||
homepage = "https://github.com/meskarune/i3lock-fancy";
|
||||
maintainers = with maintainers; [ ];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
37
pkgs/applications/window-managers/i3/lock.nix
Normal file
37
pkgs/applications/window-managers/i3/lock.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{ fetchurl, lib, stdenv, which, pkg-config, libxcb, xcbutilkeysyms, xcbutilimage,
|
||||
xcbutilxrm, pam, libX11, libev, cairo, libxkbcommon, libxkbfile }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "i3lock";
|
||||
version = "2.13";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://i3wm.org/i3lock/${pname}-${version}.tar.bz2";
|
||||
sha256 = "02szjsaz7rqrdkd0r2nwgwa85c4hwfrcskxw7ryk695kmjcfhzv3";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ which libxcb xcbutilkeysyms xcbutilimage xcbutilxrm
|
||||
pam libX11 libev cairo libxkbcommon libxkbfile ];
|
||||
|
||||
makeFlags = [ "all" ];
|
||||
installFlags = [ "PREFIX=\${out}" "SYSCONFDIR=\${out}/etc" ];
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/man/man1
|
||||
cp *.1 $out/share/man/man1
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple screen locker like slock";
|
||||
longDescription = ''
|
||||
Simple screen locker. After locking, a colored background (default: white) or
|
||||
a configurable image is shown, and a ring-shaped unlock-indicator gives feedback
|
||||
for every keystroke. After entering your password, the screen is unlocked again.
|
||||
'';
|
||||
homepage = "https://i3wm.org/i3lock/";
|
||||
maintainers = with maintainers; [ malyn domenkozar ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
|
||||
}
|
||||
59
pkgs/applications/window-managers/i3/pystatus.nix
Normal file
59
pkgs/applications/window-managers/i3/pystatus.nix
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
{ lib
|
||||
, fetchFromGitHub
|
||||
, libpulseaudio
|
||||
, libnotify
|
||||
, gobject-introspection
|
||||
, python3Packages
|
||||
, wrapGAppsHook
|
||||
, extraLibs ? [] }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
# i3pystatus moved to rolling release:
|
||||
# https://github.com/enkore/i3pystatus/issues/584
|
||||
version = "unstable-2020-06-12";
|
||||
pname = "i3pystatus";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "enkore";
|
||||
repo = "i3pystatus";
|
||||
rev = "dad5eb0c5c8a2ecd20c37ade4732586c6e53f44b";
|
||||
sha256 = "18ygvkl92yr69kxsym57k1mc90asdxpz4b943i61qr0s4fc5n4mq";
|
||||
};
|
||||
|
||||
buildInputs = [ libpulseaudio libnotify gobject-introspection ];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
keyring colour netifaces psutil basiciw pygobject3
|
||||
] ++ extraLibs;
|
||||
|
||||
makeWrapperArgs = [
|
||||
# LC_TIME != C results in locale.Error: unsupported locale setting
|
||||
"--set" "LC_TIME" "C"
|
||||
"--suffix" "LD_LIBRARY_PATH" ":" "${lib.makeLibraryPath [ libpulseaudio ]}"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
makeWrapperArgs+=(--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH")
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
makeWrapper ${python3Packages.python.interpreter} $out/bin/${pname}-python-interpreter \
|
||||
--prefix PYTHONPATH : "$PYTHONPATH" \
|
||||
''${makeWrapperArgs[@]}
|
||||
'';
|
||||
|
||||
# no tests in tarball
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/enkore/i3pystatus";
|
||||
description = "A complete replacement for i3status";
|
||||
longDescription = ''
|
||||
i3pystatus is a growing collection of python scripts for status output compatible
|
||||
to i3status / i3bar of the i3 window manager.
|
||||
'';
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.igsha ];
|
||||
};
|
||||
}
|
||||
21
pkgs/applications/window-managers/i3/rounded.nix
Normal file
21
pkgs/applications/window-managers/i3/rounded.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ fetchFromGitHub, lib, i3 }:
|
||||
|
||||
i3.overrideAttrs (oldAttrs: rec {
|
||||
pname = "i3-rounded";
|
||||
version = "unstable-2021-10-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LinoBigatti";
|
||||
repo = "i3-rounded";
|
||||
rev = "524c9f7b50f8c540b2ae3480b242c30d8775f98e";
|
||||
sha256 = "0y7m1s1y8f9vgkp7byi33js8n4rigiykd71s936i5d4rwlzrxiwm";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A fork of i3-gaps that adds rounding to window corners";
|
||||
homepage = "https://github.com/LinoBigatti/i3-rounded";
|
||||
maintainers = with maintainers; [ marsupialgutz ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
})
|
||||
63
pkgs/applications/window-managers/i3/status-rust.nix
Normal file
63
pkgs/applications/window-managers/i3/status-rust.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, makeWrapper
|
||||
, dbus
|
||||
, libpulseaudio
|
||||
, notmuch
|
||||
, openssl
|
||||
, ethtool
|
||||
, lm_sensors
|
||||
, iw
|
||||
, iproute2
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "i3status-rust";
|
||||
version = "0.21.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "greshake";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-HtPgl52ysE/CVX706YeKBFc6CgGpHzvHwZoS+DzHADY=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-ini0AIYwvTskNFMSC+Gy23ohL75PTET95e1mjpjCsWE=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||
|
||||
buildInputs = [ dbus libpulseaudio notmuch openssl lm_sensors ];
|
||||
|
||||
buildFeatures = [
|
||||
"notmuch"
|
||||
"maildir"
|
||||
"pulseaudio"
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace src/util.rs \
|
||||
--replace "/usr/share/i3status-rust" "$out/share"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share
|
||||
cp -R examples files/* $out/share
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/i3status-rs --prefix PATH : ${lib.makeBinPath [ iproute2 ethtool iw ]}
|
||||
'';
|
||||
|
||||
# Currently no tests are implemented, so we avoid building the package twice
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Very resource-friendly and feature-rich replacement for i3status";
|
||||
homepage = "https://github.com/greshake/i3status-rust";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ backuitist globin ma27 ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
23
pkgs/applications/window-managers/i3/status.nix
Normal file
23
pkgs/applications/window-managers/i3/status.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{ fetchurl, lib, stdenv, libconfuse, yajl, alsa-lib, libpulseaudio, libnl, meson, ninja, perl, pkg-config, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "i3status";
|
||||
version = "2.14";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://i3wm.org/i3status/i3status-${version}.tar.xz";
|
||||
sha256 = "0929chhvyq9hg4scpcz8r9zn3s9jvbg6a86k3wqa77qg85rh4kaw";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson ninja perl pkg-config asciidoc xmlto docbook_xml_dtd_45 docbook_xsl ];
|
||||
buildInputs = [ libconfuse yajl alsa-lib libpulseaudio libnl ];
|
||||
|
||||
meta = {
|
||||
description = "Generates a status line for i3bar, dzen2, xmobar or lemonbar";
|
||||
homepage = "https://i3wm.org";
|
||||
maintainers = [ ];
|
||||
license = lib.licenses.bsd3;
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
|
||||
}
|
||||
44
pkgs/applications/window-managers/i3/swallow.nix
Normal file
44
pkgs/applications/window-managers/i3/swallow.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{ lib
|
||||
, buildPythonApplication
|
||||
, fetchFromGitHub
|
||||
, poetry-core
|
||||
, i3ipc
|
||||
, xlib
|
||||
, six
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "i3-swallow";
|
||||
version = "unstable-2022-02-19";
|
||||
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jamesofarrell";
|
||||
repo = "i3-swallow";
|
||||
rev = "6fbc04645c483fe733de56b56743e453693d4c78";
|
||||
sha256 = "1l3x8mixwq4n0lnyp0wz5vijgnypamq6lqjazcd2ywl2jv8d6fif";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
i3ipc
|
||||
xlib
|
||||
six
|
||||
];
|
||||
|
||||
# No tests available
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/jamesofarrell/i3-swallow";
|
||||
description = "Swallow a terminal window in i3wm";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "swallow";
|
||||
maintainers = [ maintainers.ivar ];
|
||||
};
|
||||
}
|
||||
31
pkgs/applications/window-managers/i3/wk-switch.nix
Normal file
31
pkgs/applications/window-managers/i3/wk-switch.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, fetchFromGitHub, python3Packages }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "i3-wk-switch";
|
||||
version = "2020-03-18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tmfink";
|
||||
repo = pname;
|
||||
rev = "a618cb8f52120aa8d533bb7c0c8de3ff13b3dc06";
|
||||
sha256 = "0ci0w5igjk5xa8x4rx17cpgmdkamwjmavxhp0vp6213cl93ybjhz";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [ i3ipc ];
|
||||
|
||||
dontBuild = true;
|
||||
doCheck = false;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/bin"
|
||||
cp i3-wk-switch.py "$out/bin/i3-wk-switch"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "XMonad-like workspace switching for i3 and sway";
|
||||
maintainers = with maintainers; [ synthetica ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.mit;
|
||||
homepage = "https://travisf.net/i3-wk-switcher";
|
||||
};
|
||||
}
|
||||
32
pkgs/applications/window-managers/i3/wmfocus.nix
Normal file
32
pkgs/applications/window-managers/i3/wmfocus.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, fetchFromGitHub, rustPlatform
|
||||
, xorg, python3, pkg-config, cairo, libxkbcommon }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "wmfocus";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "svenstaro";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-HrS+C/6KDG2Rn/3u/mMmp4vzQ5YAHUFL4HFecteuzsc=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-EzgYnfUgwK2ldzrlqe9N9jeGgK+RzQPjbOjJCGEkcwE=";
|
||||
|
||||
nativeBuildInputs = [ python3 pkg-config ];
|
||||
buildInputs = [ cairo libxkbcommon xorg.xcbutilkeysyms ];
|
||||
|
||||
# For now, this is the only available featureset. This is also why the file is
|
||||
# in the i3 folder, even though it might be useful for more than just i3
|
||||
# users.
|
||||
buildFeatures = [ "i3" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Visually focus windows by label";
|
||||
homepage = "https://github.com/svenstaro/wmfocus";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ synthetica ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
27
pkgs/applications/window-managers/i3/workstyle.nix
Normal file
27
pkgs/applications/window-managers/i3/workstyle.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "workstyle";
|
||||
version = "unstable-2021-05-09";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pierrechevalier83";
|
||||
repo = pname;
|
||||
rev = "f2023750d802259ab3ee7d7d1762631ec157a0b1";
|
||||
sha256 = "04xds691sw4pi2nq8xvdhn0312wwia60gkd8b1bjqy11zrqbivbx";
|
||||
};
|
||||
|
||||
cargoSha256 = "0xwv8spr96z4aimjlr15bhwl6i3zqp7jr45d9zr3sbi9d8dbdja2";
|
||||
|
||||
doCheck = false; # No tests
|
||||
|
||||
meta = with lib; {
|
||||
description = "Sway workspaces with style";
|
||||
homepage = "https://github.com/pierrechevalier83/workstyle";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ FlorianFranzen ];
|
||||
};
|
||||
}
|
||||
33
pkgs/applications/window-managers/i3/wsr.nix
Normal file
33
pkgs/applications/window-managers/i3/wsr.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ lib, fetchFromGitHub, rustPlatform, libxcb, python3 }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "i3wsr";
|
||||
version = "2.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "roosta";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Mq4TpQDiIYePUS3EwBfOe2+QmvF6+WEDK12WahbuhSU=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-hybvzHwHM0rQwgZfQpww/w9wQDW5h9P2KSjpAScVTBo=";
|
||||
|
||||
nativeBuildInputs = [ python3 ];
|
||||
buildInputs = [ libxcb ];
|
||||
|
||||
# has not tests
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Automatically change i3 workspace names based on their contents";
|
||||
longDescription = ''
|
||||
Automatically sets the workspace names to match the windows on the workspace.
|
||||
The chosen name for a workspace is a user-defined composite of the WM_CLASS X11
|
||||
window property for each window in a workspace.
|
||||
'';
|
||||
homepage = "https://github.com/roosta/i3wsr";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.sebbadk ];
|
||||
};
|
||||
}
|
||||
122
pkgs/applications/window-managers/icewm/default.nix
Normal file
122
pkgs/applications/window-managers/icewm/default.nix
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, asciidoc
|
||||
, cmake
|
||||
, expat
|
||||
, fontconfig
|
||||
, freetype
|
||||
, fribidi
|
||||
, gdk-pixbuf
|
||||
, gdk-pixbuf-xlib
|
||||
, gettext
|
||||
, giflib
|
||||
, glib
|
||||
, imlib2
|
||||
, libICE
|
||||
, libSM
|
||||
, libX11
|
||||
, libXcomposite
|
||||
, libXdamage
|
||||
, libXdmcp
|
||||
, libXext
|
||||
, libXfixes
|
||||
, libXft
|
||||
, libXinerama
|
||||
, libXpm
|
||||
, libXrandr
|
||||
, libjpeg
|
||||
, libpng
|
||||
, libpthreadstubs
|
||||
, libsndfile
|
||||
, libtiff
|
||||
, libxcb
|
||||
, mkfontdir
|
||||
, pcre
|
||||
, perl
|
||||
, pkg-config
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "icewm";
|
||||
version = "2.9.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ice-wm";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-qC8gEVJ/cmsEbF8jMzv7zyvVcjlbXhgHU3ixe7RLcnA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
asciidoc
|
||||
cmake
|
||||
perl
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
expat
|
||||
fontconfig
|
||||
freetype
|
||||
fribidi
|
||||
gdk-pixbuf
|
||||
gdk-pixbuf-xlib
|
||||
gettext
|
||||
giflib
|
||||
glib
|
||||
imlib2
|
||||
libICE
|
||||
libSM
|
||||
libX11
|
||||
libXcomposite
|
||||
libXdamage
|
||||
libXdmcp
|
||||
libXext
|
||||
libXfixes
|
||||
libXft
|
||||
libXinerama
|
||||
libXpm
|
||||
libXrandr
|
||||
libjpeg
|
||||
libpng
|
||||
libpthreadstubs
|
||||
libsndfile
|
||||
libtiff
|
||||
libxcb
|
||||
mkfontdir
|
||||
pcre
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DPREFIX=$out"
|
||||
"-DCFGDIR=/etc/icewm"
|
||||
];
|
||||
|
||||
# install legacy themes
|
||||
postInstall = ''
|
||||
cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} $out/share/icewm/themes/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://ice-wm.org/";
|
||||
description = "A simple, lightweight X window manager";
|
||||
longDescription = ''
|
||||
IceWM is a window manager for the X Window System. The goal of IceWM is
|
||||
speed, simplicity, and not getting in the user’s way. It comes with a
|
||||
taskbar with pager, global and per-window keybindings and a dynamic menu
|
||||
system. Application windows can be managed by keyboard and mouse. Windows
|
||||
can be iconified to the taskbar, to the tray, to the desktop or be made
|
||||
hidden. They are controllable by a quick switch window (Alt+Tab) and in a
|
||||
window list. A handful of configurable focus models are menu-selectable.
|
||||
Setups with multiple monitors are supported by RandR and Xinerama. IceWM
|
||||
is very configurable, themeable and well documented. It includes an
|
||||
optional external background wallpaper manager with transparency support,
|
||||
a simple session manager and a system tray.
|
||||
'';
|
||||
license = licenses.lgpl2Only;
|
||||
maintainers = [ maintainers.AndersonTorres ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
30
pkgs/applications/window-managers/ion-3/default.nix
Normal file
30
pkgs/applications/window-managers/ion-3/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, stdenv, fetchurl, xlibsWrapper, lua, gettext, groff }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ion";
|
||||
version = "3-20090110";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://tuomov.iki.fi/software/ion/dl/ion-${version}.tar.gz";
|
||||
sha256 = "1nkks5a95986nyfkxvg2rik6zmwx0lh7szd5fji7yizccwzc9xns";
|
||||
};
|
||||
|
||||
buildInputs = [ xlibsWrapper lua gettext groff ];
|
||||
|
||||
buildFlags = [ "LUA_DIR=${lua}" "X11_PREFIX=/no-such-path" "PREFIX=\${out}" ];
|
||||
|
||||
# Build system is missing depends for autogenerated export headers:
|
||||
# luac -o mod_tiling.lc mod_tiling.lua
|
||||
# main.c:21:10: fatal error: exports.h: No such file or directory
|
||||
enableParallelBuilding = false;
|
||||
|
||||
installFlags = [ "PREFIX=\${out}" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tiling tabbed window manager designed with keyboard users in mind";
|
||||
homepage = "https://modeemi.fi/~tuomov/ion";
|
||||
platforms = with platforms; linux;
|
||||
license = licenses.lgpl21;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
||||
84
pkgs/applications/window-managers/jwm/default.nix
Normal file
84
pkgs/applications/window-managers/jwm/default.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, autoconf
|
||||
, automake
|
||||
, expat
|
||||
, fontconfig
|
||||
, freetype
|
||||
, gettext
|
||||
, libX11
|
||||
, libXau
|
||||
, libXdmcp
|
||||
, libXext
|
||||
, libXft
|
||||
, libXinerama
|
||||
, libXmu
|
||||
, libXpm
|
||||
, libjpeg
|
||||
, libpng
|
||||
, librsvg
|
||||
, pango
|
||||
, pkg-config
|
||||
, which
|
||||
, xorg
|
||||
, xorgproto
|
||||
, gitUpdater
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jwm";
|
||||
version = "2.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "joewing";
|
||||
repo = "jwm";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-rvuz2Pmon3XBqRMgDwZNrQlWDyLNSK30JPmmQTlN+Rs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
gettext
|
||||
pkg-config
|
||||
which
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
expat
|
||||
fontconfig
|
||||
freetype
|
||||
libX11
|
||||
libXau
|
||||
libXdmcp
|
||||
libXext
|
||||
libXft
|
||||
libXinerama
|
||||
libXmu
|
||||
libXpm
|
||||
libjpeg
|
||||
libpng
|
||||
librsvg
|
||||
pango
|
||||
xorg.libXrender
|
||||
xorgproto
|
||||
];
|
||||
|
||||
preConfigure = "NOCONFIGURE=1 ./autogen.sh";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru.updateScript = gitUpdater {
|
||||
inherit pname version;
|
||||
rev-prefix = "v";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://joewing.net/projects/jwm/";
|
||||
description = "Joe's Window Manager is a light-weight X11 window manager";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = [ lib.maintainers.romildo ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
{ lib, stdenv, fetchbzr, cmake, pkg-config, gettext, libXpm, libGL, fltk, hicolor-icon-theme, glib, gnome2, which }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jwm-settings-manager";
|
||||
version = "2019-01-27";
|
||||
|
||||
src = fetchbzr {
|
||||
url = "lp:${pname}";
|
||||
rev = "292";
|
||||
sha256 = "1yqc1ac2pbkc88z7p1qags1jygdlr5y1rhc5mx6gapcf54bk0lmi";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
gettext
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libXpm
|
||||
libGL
|
||||
fltk
|
||||
hicolor-icon-theme
|
||||
which # needed at runtime to locate optional programs
|
||||
glib.bin # provides gsettings
|
||||
gnome2.GConf # provides gconftool-2
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace 'CMAKE_INSTALL_PREFIX "/usr"' "CMAKE_INSTALL_PREFIX $out"
|
||||
substituteInPlace data/CMakeLists.txt \
|
||||
--replace 'DESTINATION usr/share' "DESTINATION share"
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
substituteInPlace cmake_install.cmake \
|
||||
--replace "/var/empty" "/usr"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A full configuration manager for JWM";
|
||||
homepage = "https://joewing.net/projects/jwm";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.romildo ];
|
||||
};
|
||||
}
|
||||
24
pkgs/applications/window-managers/kbdd/default.nix
Normal file
24
pkgs/applications/window-managers/kbdd/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, dbus-glib, autoreconfHook, xorg }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "kbdd";
|
||||
version = "unstable-2021-04-26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qnikst";
|
||||
repo = "kbdd";
|
||||
rev = "3145099e1fbbe65b27678be72465aaa5b5872874";
|
||||
sha256 = "1gzcjnflgdqnjgphiqpzwbcx60hm0h2cprncm7i8xca3ln5q6ba1";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
buildInputs = [ xorg.libX11 dbus-glib ];
|
||||
|
||||
meta = {
|
||||
description = "Simple daemon and library to make per window layout using XKB";
|
||||
homepage = "https://github.com/qnikst/kbdd";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = [ lib.maintainers.wedens ];
|
||||
};
|
||||
}
|
||||
64
pkgs/applications/window-managers/labwc/default.nix
Normal file
64
pkgs/applications/window-managers/labwc/default.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cairo
|
||||
, glib
|
||||
, libdrm
|
||||
, libinput
|
||||
, libxcb
|
||||
, libxkbcommon
|
||||
, libxml2
|
||||
, meson
|
||||
, ninja
|
||||
, pango
|
||||
, pkg-config
|
||||
, scdoc
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, wlroots
|
||||
, xwayland
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "labwc";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "labwc";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-G0EQuXSHftl4JLXKIro+tmhbApwAhlzcjPEL7DP6LHk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
scdoc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cairo
|
||||
glib
|
||||
libdrm
|
||||
libinput
|
||||
libxcb
|
||||
libxkbcommon
|
||||
libxml2
|
||||
pango
|
||||
wayland
|
||||
wayland-protocols
|
||||
wlroots
|
||||
xwayland
|
||||
];
|
||||
|
||||
mesonFlags = [ "-Dxwayland=enabled" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/labwc/labwc";
|
||||
description = "A Wayland stacking compositor, similar to Openbox";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
inherit (wayland.meta) platforms;
|
||||
};
|
||||
}
|
||||
24
pkgs/applications/window-managers/larswm/default.nix
Normal file
24
pkgs/applications/window-managers/larswm/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, stdenv, fetchurl, imake, gccmakedep, libX11, libXext, libXmu }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "larswm";
|
||||
version = "7.5.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/larswm/larswm-${version}.tar.gz";
|
||||
sha256 = "1xmlx9g1nhklxjrg0wvsya01s4k5b9fphnpl9zdwp29mm484ni3v";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ imake gccmakedep ];
|
||||
buildInputs = [ libX11 libXext libXmu ];
|
||||
|
||||
makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ];
|
||||
installTargets = [ "install" "install.man" ];
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.fnurt.net/larswm";
|
||||
description = "9wm-like tiling window manager";
|
||||
license = lib.licenses.free;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
39
pkgs/applications/window-managers/leftwm/default.nix
Normal file
39
pkgs/applications/window-managers/leftwm/default.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{ stdenv, lib, fetchFromGitHub, rustPlatform, libX11, libXinerama }:
|
||||
|
||||
let
|
||||
rpathLibs = [ libXinerama libX11 ];
|
||||
in
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "leftwm";
|
||||
version = "0.2.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leftwm";
|
||||
repo = "leftwm";
|
||||
rev = version;
|
||||
sha256 = "sha256-GLHmX628UUdIM+xYJhPtqFg4whQqaF8hFxg0Z5grPac=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-4Pu3TDLmi0c2nyUj1lTRincgRqL40A/g0PkyJOen0is=";
|
||||
|
||||
buildInputs = rpathLibs;
|
||||
|
||||
postInstall = ''
|
||||
for p in $out/bin/leftwm*; do
|
||||
patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $p
|
||||
done
|
||||
'';
|
||||
|
||||
dontPatchELF = true;
|
||||
|
||||
meta = with lib; {
|
||||
broken = (stdenv.isLinux && stdenv.isAarch64);
|
||||
description = "A tiling window manager for the adventurer";
|
||||
homepage = "https://github.com/leftwm/leftwm";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ mschneider ];
|
||||
changelog = "https://github.com/leftwm/leftwm/blob/${version}/CHANGELOG";
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/window-managers/lemonbar/default.nix
Normal file
25
pkgs/applications/window-managers/lemonbar/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, stdenv, fetchFromGitHub, perl, libxcb }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lemonbar";
|
||||
version = "1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LemonBoy";
|
||||
repo = "bar";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-lmppcnQ8r4jEuhegpTBxYqxfTTS/IrbtQVZ44HqnoWo=";
|
||||
};
|
||||
|
||||
buildInputs = [ libxcb perl ];
|
||||
|
||||
installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A lightweight xcb based bar";
|
||||
homepage = "https://github.com/LemonBoy/bar";
|
||||
maintainers = with maintainers; [ meisternu fortuneteller2k ];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
25
pkgs/applications/window-managers/lemonbar/xft.nix
Normal file
25
pkgs/applications/window-managers/lemonbar/xft.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, stdenv, fetchFromGitHub, perl, libxcb, libXft }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "lemonbar-xft";
|
||||
version = "unstable-2020-09-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "drscream";
|
||||
repo = "lemonbar-xft";
|
||||
rev = "481e12363e2a0fe0ddd2176a8e003392be90ed02";
|
||||
sha256 = "sha256-BNYBbUouqqsRQaPkpg+UKg62IV9uI34gKJuiAM94CBU=";
|
||||
};
|
||||
|
||||
buildInputs = [ libxcb libXft perl ];
|
||||
|
||||
installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A lightweight xcb based bar with XFT-support";
|
||||
homepage = "https://github.com/drscream/lemonbar-xft";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ fortuneteller2k ];
|
||||
};
|
||||
}
|
||||
45
pkgs/applications/window-managers/lwm/default.nix
Normal file
45
pkgs/applications/window-managers/lwm/default.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
{ lib, 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 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;
|
||||
};
|
||||
}
|
||||
31
pkgs/applications/window-managers/matchbox/default.nix
Normal file
31
pkgs/applications/window-managers/matchbox/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libmatchbox, libX11, libXext }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "matchbox";
|
||||
version = "1.2";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libmatchbox ];
|
||||
NIX_LDFLAGS = "-lX11 -L${libX11}/lib -lXext -L${libXext}/lib";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.yoctoproject.org/releases/matchbox/matchbox-window-manager/${version}/matchbox-window-manager-${version}.tar.bz2";
|
||||
sha256 = "1zyfq438b466ygcz78nvsmnsc5bhg4wcfnpxb43kbkwpyx53m8l1";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Pull upstream fix for -fno-common tollchains:
|
||||
(fetchpatch {
|
||||
name = "fno-common.patch";
|
||||
url = "https://git.yoctoproject.org/matchbox-window-manager/patch/?id=844f61069896fe3f549ab425d731c061028f697c";
|
||||
sha256 = "1md2s7q094hn4gzg21pfyz8d426y07d5rbx2icas9nvc8jj7bwfc";
|
||||
})
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "X window manager for non-desktop embedded systems";
|
||||
homepage = "https://www.yoctoproject.org/software-item/matchbox/";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
53
pkgs/applications/window-managers/mlvwm/default.nix
Normal file
53
pkgs/applications/window-managers/mlvwm/default.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{ lib, stdenv, fetchFromGitHub, gccmakedep, libX11, libXext, libXpm, imake, installShellFiles, ... }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mlvwm";
|
||||
version = "0.9.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "morgant";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-ElKmi+ANuB3LPwZTMcr5HEMESjDwENbYnNIGdRP24d0=";
|
||||
};
|
||||
|
||||
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 ];
|
||||
};
|
||||
}
|
||||
88
pkgs/applications/window-managers/neocomp/default.nix
Normal file
88
pkgs/applications/window-managers/neocomp/default.nix
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
{ lib, stdenv
|
||||
, fetchFromGitHub
|
||||
, asciidoc
|
||||
, docbook_xml_dtd_45
|
||||
, docbook_xsl
|
||||
, freetype
|
||||
, judy
|
||||
, libGL
|
||||
, libconfig
|
||||
, libdrm
|
||||
, libxml2
|
||||
, libxslt
|
||||
, libXcomposite
|
||||
, libXdamage
|
||||
, libXext
|
||||
, libXinerama
|
||||
, libXrandr
|
||||
, libXrender
|
||||
, libXres
|
||||
, pcre
|
||||
, pkg-config
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "neocomp";
|
||||
version = "unstable-2021-04-06";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "DelusionalLogic";
|
||||
repo = "NeoComp";
|
||||
rev = "ccd340d7b2dcd3f828aff958a638cc23686aee6f";
|
||||
sha256 = "sha256-tLLEwpAGNVTC+N41bM7pfskIli4Yvc95wH2/NT0OZ+8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
asciidoc
|
||||
docbook_xml_dtd_45
|
||||
docbook_xsl
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
freetype
|
||||
judy
|
||||
libGL
|
||||
libconfig
|
||||
libdrm
|
||||
libxml2
|
||||
libxslt
|
||||
libXcomposite
|
||||
libXdamage
|
||||
libXext
|
||||
libXinerama
|
||||
libXrandr
|
||||
libXrender
|
||||
libXres
|
||||
pcre
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=${placeholder "out"}"
|
||||
"CFGDIR=${placeholder "out"}/etc/xdg/neocomp"
|
||||
"ASTDIR=${placeholder "out"}/share/neocomp/assets"
|
||||
"COMPTON_VERSION=${version}"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/compton.c --replace \
|
||||
"assets_add_path(\"./assets/\");" \
|
||||
"assets_add_path(\"$out/share/neocomp/assets/\");"
|
||||
substituteInPlace src/assets/assets.c --replace \
|
||||
"#define MAX_PATH_LENGTH 64" \
|
||||
"#define MAX_PATH_LENGTH 128"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/DelusionalLogic/NeoComp";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ twey fortuneteller2k ];
|
||||
platforms = platforms.linux;
|
||||
description = "A fork of Compton, a compositor for X11";
|
||||
longDescription = ''
|
||||
NeoComp is a (hopefully) fast and (hopefully) simple compositor
|
||||
for X11, focused on delivering frames from the window to the
|
||||
framebuffer as quickly as possible.
|
||||
'';
|
||||
};
|
||||
}
|
||||
39
pkgs/applications/window-managers/notion/default.nix
Normal file
39
pkgs/applications/window-managers/notion/default.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config
|
||||
, lua, gettext, which, groff, xmessage, xterm
|
||||
, readline, fontconfig, libX11, libXext, libSM
|
||||
, libXinerama, libXrandr, libXft
|
||||
, xlibsWrapper, makeWrapper
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "notion";
|
||||
version = "4.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raboof";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "14swd0yqci8lxn259fkd9w92bgyf4rmjwgvgyqp78wlfix6ai4mv";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config makeWrapper groff ];
|
||||
buildInputs = [ lua gettext which readline fontconfig libX11 libXext libSM
|
||||
libXinerama libXrandr libXft xlibsWrapper ];
|
||||
|
||||
buildFlags = [ "LUA_DIR=${lua}" "X11_PREFIX=/no-such-path" ];
|
||||
|
||||
makeFlags = [ "NOTION_RELEASE=${version}" "PREFIX=\${out}" ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/notion \
|
||||
--prefix PATH ":" "${xmessage}/bin:${xterm}/bin" \
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tiling tabbed window manager";
|
||||
homepage = "https://notionwm.net";
|
||||
license = licenses.lgpl21;
|
||||
maintainers = with maintainers; [ jfb AndersonTorres raboof ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
68
pkgs/applications/window-managers/openbox/default.nix
Normal file
68
pkgs/applications/window-managers/openbox/default.nix
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, python3
|
||||
, libxml2, libXinerama, libXcursor, libXau, libXrandr, libICE, libSM
|
||||
, imlib2, pango, libstartup_notification, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "openbox";
|
||||
version = "3.6.1";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
makeWrapper
|
||||
python3.pkgs.wrapPython
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libxml2
|
||||
libXinerama libXcursor libXau libXrandr libICE libSM
|
||||
libstartup_notification
|
||||
python3
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pango imlib2
|
||||
];
|
||||
|
||||
pythonPath = with python3.pkgs; [
|
||||
pyxdg
|
||||
];
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://openbox.org/dist/openbox/${pname}-${version}.tar.gz";
|
||||
sha256 = "1xvyvqxlhy08n61rjkckmrzah2si1i7nmc7s8h07riqq01vc0jlb";
|
||||
};
|
||||
|
||||
setlayoutSrc = fetchurl {
|
||||
url = "http://openbox.org/dist/tools/setlayout.c";
|
||||
sha256 = "1ci9lq4qqhl31yz1jwwjiawah0f7x0vx44ap8baw7r6rdi00pyiv";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Use fetchurl to avoid "fetchpatch: ignores file renames" #32084
|
||||
# This patch adds python3 support
|
||||
(fetchurl {
|
||||
url = "https://raw.githubusercontent.com/archlinux/svntogit-community/90cb57ef53d952bb6ab4c33a184f815bbe1791c0/openbox/trunk/py3.patch";
|
||||
sha256 = "1ks99awlkhd5ph9kz94s1r6m1bfvh42g4rmxd14dyg5b421p1ljc";
|
||||
})
|
||||
];
|
||||
|
||||
postBuild = "gcc -O2 -o setlayout $(pkg-config --cflags --libs x11) $setlayoutSrc";
|
||||
|
||||
# Openbox needs XDG_DATA_DIRS set or it can't find its default theme
|
||||
postInstall = ''
|
||||
cp -a setlayout "$out"/bin
|
||||
wrapProgram "$out/bin/openbox" --prefix XDG_DATA_DIRS : "$out/share"
|
||||
wrapProgram "$out/bin/openbox-session" --prefix XDG_DATA_DIRS : "$out/share"
|
||||
wrapProgram "$out/bin/openbox-gnome-session" --prefix XDG_DATA_DIRS : "$out/share"
|
||||
wrapProgram "$out/bin/openbox-kde-session" --prefix XDG_DATA_DIRS : "$out/share"
|
||||
wrapPythonProgramsIn "$out/libexec" "$out $pythonPath"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "X window manager for non-desktop embedded systems";
|
||||
homepage = "http://openbox.org/";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
61
pkgs/applications/window-managers/oroborus/default.nix
Normal file
61
pkgs/applications/window-managers/oroborus/default.nix
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, freetype
|
||||
, fribidi
|
||||
, libICE
|
||||
, libSM
|
||||
, libXaw
|
||||
, libXext
|
||||
, libXft
|
||||
, libXinerama
|
||||
, libXmu
|
||||
, libXpm
|
||||
, libXrandr
|
||||
, libXrender
|
||||
, libXt
|
||||
, pkg-config
|
||||
, xorgproto
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "oroborus";
|
||||
version = "2.0.20";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://debian/pool/main/o/oroborus/oroborus_${version}.tar.gz";
|
||||
hash = "sha256-UiClQLz2gSxnc/vlg9nqP1T0UsusVb7cqt66jDqae4k=a";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
freetype
|
||||
fribidi
|
||||
libICE
|
||||
libSM
|
||||
libXaw
|
||||
libXext
|
||||
libXft
|
||||
libXinerama
|
||||
libXmu
|
||||
libXpm
|
||||
libXrandr
|
||||
libXrender
|
||||
libXt
|
||||
xorgproto
|
||||
];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains:
|
||||
# ld: workspaces.o:src/keyboard.h:93: multiple definition of
|
||||
# `NumLockMask'; client.o:src/keyboard.h:93: first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://web.archive.org/web/20191129172107/https://www.oroborus.org/";
|
||||
description = "A really minimalistic X window manager";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = [ maintainers.AndersonTorres ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
72
pkgs/applications/window-managers/pekwm/default.nix
Normal file
72
pkgs/applications/window-managers/pekwm/default.nix
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, awk
|
||||
, grep
|
||||
, sed
|
||||
, runtimeShell
|
||||
, cmake
|
||||
, libXext
|
||||
, libXft
|
||||
, libXinerama
|
||||
, libXpm
|
||||
, libXrandr
|
||||
, libjpeg
|
||||
, libpng
|
||||
, pkg-config
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pekwm";
|
||||
version = "0.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pekdon";
|
||||
repo = "pekwm";
|
||||
rev = "release-${version}";
|
||||
hash= "sha256-voHPstdcd4CHnAdD3PMxca0A6MyMYJi8Ik0UlFB0vG0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DAWK=${awk}/bin/awk"
|
||||
"-DGREP=${grep}/bin/grep"
|
||||
"-DSED=${sed}/bin/sed"
|
||||
"-DSH=${runtimeShell}"
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libXext
|
||||
libXft
|
||||
libXinerama
|
||||
libXpm
|
||||
libXrandr
|
||||
libjpeg
|
||||
libpng
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.pekwm.se/";
|
||||
description = "A lightweight window manager";
|
||||
longDescription = ''
|
||||
pekwm is a window manager that once upon a time was based on the aewm++
|
||||
window manager, but it has evolved enough that it no longer resembles
|
||||
aewm++ at all. It has a much expanded feature-set, including window
|
||||
grouping (similar to ion, pwm, or fluxbox), autoproperties, xinerama,
|
||||
keygrabber that supports keychains, and much more.
|
||||
|
||||
- Lightweight and Unobtrusive, a window manager shouldn't be noticed.
|
||||
- Very configurable, we all work and think in different ways.
|
||||
- Automatic properties, for all the lazy people, make things appear as
|
||||
they should when starting applications.
|
||||
- Chainable Keygrabber, usability for everyone.
|
||||
'';
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = [ maintainers.AndersonTorres ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
127
pkgs/applications/window-managers/phosh/default.nix
Normal file
127
pkgs/applications/window-managers/phosh/default.nix
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitLab
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
, libhandy
|
||||
, libxkbcommon
|
||||
, libgudev
|
||||
, callaudiod
|
||||
, pulseaudio
|
||||
, glib
|
||||
, gtk3
|
||||
, gnome
|
||||
, gnome-desktop
|
||||
, gcr
|
||||
, pam
|
||||
, systemd
|
||||
, upower
|
||||
, wayland
|
||||
, dbus
|
||||
, xvfb-run
|
||||
, phoc
|
||||
, feedbackd
|
||||
, networkmanager
|
||||
, polkit
|
||||
, libsecret
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "phosh";
|
||||
version = "0.17.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
group = "World";
|
||||
owner = "Phosh";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true; # including gvc and libcall-ui which are designated as subprojects
|
||||
sha256 = "sha256-o/0NJZo1EPpXguN/tkUc+/9XaVTQWaLGe+2pU0B91Cg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
phoc
|
||||
libhandy
|
||||
libsecret
|
||||
libxkbcommon
|
||||
libgudev
|
||||
callaudiod
|
||||
pulseaudio
|
||||
glib
|
||||
gcr
|
||||
networkmanager
|
||||
polkit
|
||||
gnome.gnome-control-center
|
||||
gnome-desktop
|
||||
gnome.gnome-session
|
||||
gtk3
|
||||
pam
|
||||
systemd
|
||||
upower
|
||||
wayland
|
||||
feedbackd
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
dbus
|
||||
xvfb-run
|
||||
];
|
||||
|
||||
# Temporarily disabled - Test is broken (SIGABRT)
|
||||
doCheck = false;
|
||||
|
||||
mesonFlags = [ "-Dsystemd=true" "-Dcompositor=${phoc}/bin/phoc" ];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x build-aux/post_install.py
|
||||
patchShebangs build-aux/post_install.py
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
export NO_AT_BRIDGE=1
|
||||
xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
|
||||
--config-file=${dbus.daemon}/share/dbus-1/session.conf \
|
||||
meson test --print-errorlogs
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
# Depends on GSettings schemas in gnome-shell
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
--prefix XDG_DATA_DIRS : "${gnome.gnome-shell}/share/gsettings-schemas/${gnome.gnome-shell.name}"
|
||||
--set GNOME_SESSION "${gnome.gnome-session}/bin/gnome-session"
|
||||
)
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
mkdir -p $out/share/wayland-sessions
|
||||
ln -s $out/share/applications/sm.puri.Phosh.desktop $out/share/wayland-sessions/
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
providedSessions = [
|
||||
"sm.puri.Phosh"
|
||||
];
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A pure Wayland shell prototype for GNOME on mobile devices";
|
||||
homepage = "https://gitlab.gnome.org/World/Phosh/phosh";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ jtojnar masipcat zhaofengli ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
117
pkgs/applications/window-managers/picom/default.nix
Normal file
117
pkgs/applications/window-managers/picom/default.nix
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
{ asciidoc
|
||||
, dbus
|
||||
, docbook_xml_dtd_45
|
||||
, docbook_xsl
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, libconfig
|
||||
, libdrm
|
||||
, libev
|
||||
, libGL
|
||||
, libX11
|
||||
, libxcb
|
||||
, libxdg_basedir
|
||||
, libXext
|
||||
, libXinerama
|
||||
, libxml2
|
||||
, libxslt
|
||||
, makeWrapper
|
||||
, meson
|
||||
, ninja
|
||||
, pcre
|
||||
, pixman
|
||||
, pkg-config
|
||||
, stdenv
|
||||
, uthash
|
||||
, xcbutilimage
|
||||
, xcbutilrenderutil
|
||||
, xorgproto
|
||||
, xwininfo
|
||||
, withDebug ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "picom";
|
||||
version = "9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yshui";
|
||||
repo = "picom";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Fqk6bPAOg4muxmSP+ezpGUNw6xrMWchZACKemeA08mA=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
asciidoc
|
||||
docbook_xml_dtd_45
|
||||
docbook_xsl
|
||||
makeWrapper
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
uthash
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
dbus
|
||||
libconfig
|
||||
libdrm
|
||||
libev
|
||||
libGL
|
||||
libX11
|
||||
libxcb
|
||||
libxdg_basedir
|
||||
libXext
|
||||
libXinerama
|
||||
libxml2
|
||||
libxslt
|
||||
pcre
|
||||
pixman
|
||||
xcbutilimage
|
||||
xcbutilrenderutil
|
||||
xorgproto
|
||||
];
|
||||
|
||||
# Use "debugoptimized" instead of "debug" so perhaps picom works better in
|
||||
# normal usage too, not just temporary debugging.
|
||||
mesonBuildType = if withDebug then "debugoptimized" else "release";
|
||||
dontStrip = withDebug;
|
||||
|
||||
mesonFlags = [
|
||||
"-Dwith_docs=true"
|
||||
];
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
# In debug mode, also copy src directory to store. If you then run `gdb picom`
|
||||
# in the bin directory of picom store path, gdb finds the source files.
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/picom-trans \
|
||||
--prefix PATH : ${lib.makeBinPath [ xwininfo ]}
|
||||
'' + lib.optionalString withDebug ''
|
||||
cp -r ../src $out/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A fork of XCompMgr, a sample compositing manager for X servers";
|
||||
longDescription = ''
|
||||
A fork of XCompMgr, which is a sample compositing manager for X
|
||||
servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE
|
||||
extensions. It enables basic eye-candy effects. This fork adds
|
||||
additional features, such as additional effects, and a fork at a
|
||||
well-defined and proper place.
|
||||
|
||||
The package can be installed in debug mode as:
|
||||
|
||||
picom.override { withDebug = true; }
|
||||
|
||||
For gdb to find the source files, you need to run gdb in the bin directory
|
||||
of picom package in the nix store.
|
||||
'';
|
||||
license = licenses.mit;
|
||||
homepage = "https://github.com/yshui/picom";
|
||||
maintainers = with maintainers; [ ertes twey thiagokokada ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
13
pkgs/applications/window-managers/picom/picom-next.nix
Normal file
13
pkgs/applications/window-managers/picom/picom-next.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ picom, lib, fetchFromGitHub }:
|
||||
|
||||
picom.overrideAttrs (oldAttrs: rec {
|
||||
pname = "picom-next";
|
||||
version = "unstable-2022-02-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "yshui";
|
||||
repo = "picom";
|
||||
rev = "928963721c8789fc5f27949e8b0730771aab940d";
|
||||
sha256 = "sha256-qu9HnUG5VQbiSgduW1oR/tVvzEckaD2TWzds4R5zI+Y=";
|
||||
};
|
||||
meta.maintainers = with lib.maintainers; oldAttrs.meta.maintainers ++ [ GKasparov ];
|
||||
})
|
||||
96
pkgs/applications/window-managers/qtile/default.nix
Normal file
96
pkgs/applications/window-managers/qtile/default.nix
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
{ lib
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
, python3Packages
|
||||
, mypy
|
||||
, glib
|
||||
, pango
|
||||
, pkg-config
|
||||
, libinput
|
||||
, libxkbcommon
|
||||
, wayland
|
||||
, wlroots
|
||||
, xcbutilcursor
|
||||
}:
|
||||
|
||||
let
|
||||
unwrapped = python3Packages.buildPythonPackage rec {
|
||||
pname = "qtile";
|
||||
version = "0.21.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qtile";
|
||||
repo = "qtile";
|
||||
rev = "v${version}";
|
||||
sha256 = "3QCI1TZIh1LcWuklVQkqgR1MQphi6CzZKc1UZcytV0k=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./fix-restart.patch # https://github.com/NixOS/nixpkgs/issues/139568
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace libqtile/pangocffi.py \
|
||||
--replace libgobject-2.0.so.0 ${glib.out}/lib/libgobject-2.0.so.0 \
|
||||
--replace libpangocairo-1.0.so.0 ${pango.out}/lib/libpangocairo-1.0.so.0 \
|
||||
--replace libpango-1.0.so.0 ${pango.out}/lib/libpango-1.0.so.0
|
||||
substituteInPlace libqtile/backend/x11/xcursors.py \
|
||||
--replace libxcb-cursor.so.0 ${xcbutilcursor.out}/lib/libxcb-cursor.so.0
|
||||
'';
|
||||
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
] ++ (with python3Packages; [
|
||||
setuptools-scm
|
||||
]);
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
xcffib
|
||||
(cairocffi.override { withXcffib = true; })
|
||||
setuptools
|
||||
python-dateutil
|
||||
dbus-python
|
||||
dbus-next
|
||||
mpd2
|
||||
psutil
|
||||
pyxdg
|
||||
pygobject3
|
||||
pywayland
|
||||
pywlroots
|
||||
xkbcommon
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libinput
|
||||
wayland
|
||||
wlroots
|
||||
libxkbcommon
|
||||
];
|
||||
|
||||
# for `qtile check`, needs `stubtest` and `mypy` commands
|
||||
makeWrapperArgs = [
|
||||
"--suffix PATH : ${lib.makeBinPath [ mypy ]}"
|
||||
];
|
||||
|
||||
doCheck = false; # Requires X server #TODO this can be worked out with the existing NixOS testing infrastructure.
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.qtile.org/";
|
||||
license = licenses.mit;
|
||||
description = "A small, flexible, scriptable tiling window manager written in Python";
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ kamilchm ];
|
||||
};
|
||||
};
|
||||
in
|
||||
(python3.withPackages (_: [ unwrapped ])).overrideAttrs (_: {
|
||||
# otherwise will be exported as "env", this restores `nix search` behavior
|
||||
name = "${unwrapped.pname}-${unwrapped.version}";
|
||||
# export underlying qtile package
|
||||
passthru = { inherit unwrapped; };
|
||||
|
||||
# restore original qtile attrs
|
||||
inherit (unwrapped) pname version meta;
|
||||
})
|
||||
22
pkgs/applications/window-managers/qtile/fix-restart.patch
Normal file
22
pkgs/applications/window-managers/qtile/fix-restart.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
diff --git a/libqtile/core/lifecycle.py b/libqtile/core/lifecycle.py
|
||||
index 0d4d119d..c37d1799 100644
|
||||
--- a/libqtile/core/lifecycle.py
|
||||
+++ b/libqtile/core/lifecycle.py
|
||||
@@ -25,7 +25,7 @@ class LifeCycle:
|
||||
|
||||
def _atexit(self) -> None:
|
||||
if self.behavior is Behavior.RESTART:
|
||||
- argv = [sys.executable] + sys.argv
|
||||
+ argv = sys.argv
|
||||
if "--no-spawn" not in argv:
|
||||
argv.append("--no-spawn")
|
||||
argv = [s for s in argv if not s.startswith("--with-state")]
|
||||
@@ -33,7 +33,7 @@ class LifeCycle:
|
||||
argv.append("--with-state=" + self.state_file)
|
||||
logger.warning("Restarting Qtile with os.execv(...)")
|
||||
# No other code will execute after the following line does
|
||||
- os.execv(sys.executable, argv)
|
||||
+ os.execv(sys.argv[0], argv)
|
||||
elif self.behavior is Behavior.TERMINATE:
|
||||
logger.warning("Qtile will now terminate")
|
||||
elif self.behavior is Behavior.NONE:
|
||||
58
pkgs/applications/window-managers/ratpoison/default.nix
Normal file
58
pkgs/applications/window-managers/ratpoison/default.nix
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, perl, autoconf, automake
|
||||
, libX11, xorgproto, libXt, libXpm, libXft, libXtst, libXi
|
||||
, libXrandr, fontconfig, freetype, readline
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ratpoison";
|
||||
version = "1.4.9";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://savannah/ratpoison/${pname}-${version}.tar.xz";
|
||||
sha256 = "1wfir1gvh5h7izgvx2kd1pr2k7wlncd33zq7qi9s9k2y0aza93yr";
|
||||
};
|
||||
|
||||
outputs = [ "out" "contrib" "man" "doc" "info" ];
|
||||
|
||||
configureFlags = [
|
||||
# >=1.4.9 requires this even with readline in inputs
|
||||
"--enable-history"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config autoconf automake ];
|
||||
|
||||
buildInputs =
|
||||
[ perl
|
||||
libX11 xorgproto libXt libXpm libXft libXtst libXi libXrandr
|
||||
fontconfig freetype readline ];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $contrib/{bin,share}
|
||||
mv $out/bin/rpws $contrib/bin
|
||||
mv $out/share/ratpoison $contrib/share
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.nongnu.org/ratpoison/";
|
||||
description = "Simple mouse-free tiling window manager";
|
||||
license = licenses.gpl2Plus;
|
||||
|
||||
longDescription = ''
|
||||
Ratpoison is a simple window manager with no fat library
|
||||
dependencies, no fancy graphics, no window decorations, and no
|
||||
rodent dependence. It is largely modelled after GNU Screen which
|
||||
has done wonders in the virtual terminal market.
|
||||
|
||||
The screen can be split into non-overlapping frames. All windows
|
||||
are kept maximized inside their frames to take full advantage of
|
||||
your precious screen real estate.
|
||||
|
||||
All interaction with the window manager is done through keystrokes.
|
||||
Ratpoison has a prefix map to minimize the key clobbering that
|
||||
cripples Emacs and other quality pieces of software.
|
||||
'';
|
||||
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.AndersonTorres ];
|
||||
};
|
||||
}
|
||||
71
pkgs/applications/window-managers/river/default.nix
Normal file
71
pkgs/applications/window-managers/river/default.nix
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, zig
|
||||
, wayland
|
||||
, pkg-config
|
||||
, scdoc
|
||||
, xwayland
|
||||
, wayland-protocols
|
||||
, wlroots
|
||||
, libxkbcommon
|
||||
, pixman
|
||||
, udev
|
||||
, libevdev
|
||||
, libinput
|
||||
, libGL
|
||||
, libX11
|
||||
, xwaylandSupport ? true
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "river";
|
||||
version = "0.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "riverwm";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-bHfHhyDx/Wzhvhr7mAeVzJf0TBJgMTGb/ClGjWMLlQ8=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ zig wayland xwayland scdoc pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
wayland-protocols
|
||||
wlroots
|
||||
libxkbcommon
|
||||
pixman
|
||||
udev
|
||||
libevdev
|
||||
libinput
|
||||
libGL
|
||||
] ++ lib.optional xwaylandSupport libX11;
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
preBuild = ''
|
||||
export HOME=$TMPDIR
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
zig build -Drelease-safe -Dcpu=baseline ${lib.optionalString xwaylandSupport "-Dxwayland"} -Dman-pages --prefix $out install
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
/* Builder patch install dir into river to get default config
|
||||
When installFlags is removed, river becomes half broken.
|
||||
See https://github.com/riverwm/river/blob/7ffa2f4b9e7abf7d152134f555373c2b63ccfc1d/river/main.zig#L56
|
||||
*/
|
||||
installFlags = [ "DESTDIR=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/ifreund/river";
|
||||
description = "A dynamic tiling wayland compositor";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ fortuneteller2k ];
|
||||
};
|
||||
}
|
||||
88
pkgs/applications/window-managers/sawfish/default.nix
Normal file
88
pkgs/applications/window-managers/sawfish/default.nix
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, autoreconfHook
|
||||
, gdk-pixbuf-xlib
|
||||
, gettext
|
||||
, gtk2
|
||||
, imlib
|
||||
, libICE
|
||||
, libSM
|
||||
, libXinerama
|
||||
, libXrandr
|
||||
, libXtst
|
||||
, librep
|
||||
, makeWrapper
|
||||
, pango
|
||||
, pkg-config
|
||||
, rep-gtk
|
||||
, texinfo
|
||||
, which
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sawfish";
|
||||
version = "1.13.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.tuxfamily.org/sawfish/${pname}_${version}.tar.xz";
|
||||
sha256 = "sha256-gWs8W/pMtQjbH8FEifzNAj3siZzxPd6xm8PmXXhyr10=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
gettext
|
||||
librep
|
||||
makeWrapper
|
||||
pkg-config
|
||||
texinfo
|
||||
which
|
||||
];
|
||||
buildInputs = [
|
||||
gdk-pixbuf-xlib
|
||||
gtk2
|
||||
imlib
|
||||
libICE
|
||||
libSM
|
||||
libXinerama
|
||||
libXrandr
|
||||
libXtst
|
||||
librep
|
||||
pango
|
||||
rep-gtk
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
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
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
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 = with lib; {
|
||||
homepage = "http://sawfish.tuxfamily.org/";
|
||||
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.
|
||||
'';
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
38
pkgs/applications/window-managers/smallwm/default.nix
Normal file
38
pkgs/applications/window-managers/smallwm/default.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{ lib, 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 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;
|
||||
};
|
||||
}
|
||||
48
pkgs/applications/window-managers/spectrwm/default.nix
Normal file
48
pkgs/applications/window-managers/spectrwm/default.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, xorg }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "spectrwm";
|
||||
version = "3.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "conformal";
|
||||
repo = "spectrwm";
|
||||
rev = "SPECTRWM_3_4_1";
|
||||
sha256 = "0bf0d25yr0craksamczn2mdy6cjp27l88smihlw9bw4p6a2qhi41";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = with xorg; [
|
||||
libXrandr
|
||||
libXcursor
|
||||
libXft
|
||||
libXt
|
||||
xcbutil
|
||||
xcbutilkeysyms
|
||||
xcbutilwm
|
||||
];
|
||||
|
||||
prePatch = let
|
||||
subdir = if stdenv.isDarwin then "osx" else "linux";
|
||||
in "cd ${subdir}";
|
||||
|
||||
makeFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A tiling window manager";
|
||||
homepage = "https://github.com/conformal/spectrwm";
|
||||
maintainers = with maintainers; [ christianharke ];
|
||||
license = licenses.isc;
|
||||
platforms = platforms.all;
|
||||
|
||||
longDescription = ''
|
||||
spectrwm is a small dynamic tiling window manager for X11. It
|
||||
tries to stay out of the way so that valuable screen real estate
|
||||
can be used for much more important stuff. It has sane defaults
|
||||
and does not require one to learn a language to do any
|
||||
configuration. It was written by hackers for hackers and it
|
||||
strives to be small, compact and fast.
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
51
pkgs/applications/window-managers/stalonetray/default.nix
Normal file
51
pkgs/applications/window-managers/stalonetray/default.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{ autoreconfHook
|
||||
, docbook_xml_dtd_44
|
||||
, docbook-xsl-ns
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, libX11
|
||||
, libXpm
|
||||
, libxslt
|
||||
, stdenv
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "stalonetray";
|
||||
version = "0.8.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kolbusa";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-grxPqSYPLUstLIOKqzMActaSQ2ftYrjbalfR4HcPDRY=";
|
||||
};
|
||||
|
||||
preConfigure =
|
||||
let
|
||||
db_root = "${docbook-xsl-ns}/share/xml/docbook-xsl-ns";
|
||||
ac_str = "AC_SUBST(DOCBOOK_ROOT)";
|
||||
ac_str_sub = "DOCBOOK_ROOT=${db_root}; ${ac_str}";
|
||||
in
|
||||
''
|
||||
substituteInPlace configure.ac --replace '${ac_str}' '${ac_str_sub}'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
docbook-xsl-ns
|
||||
docbook_xml_dtd_44
|
||||
libX11
|
||||
libXpm
|
||||
libxslt
|
||||
];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Stand alone tray";
|
||||
homepage = "https://github.com/kolbusa/stalonetray";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ raskin ];
|
||||
};
|
||||
}
|
||||
43
pkgs/applications/window-managers/stumpish/default.nix
Normal file
43
pkgs/applications/window-managers/stumpish/default.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{ lib, stdenv, substituteAll, fetchFromGitHub, gnused, ncurses, xorg, rlwrap }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "stumpish";
|
||||
version = "0.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stumpwm";
|
||||
repo = "stumpwm-contrib";
|
||||
rev = "9f5f06652c480159ec57d1fd8751b16f02db06dc";
|
||||
sha256 = "1dxzsnir3158p8y2128s08r9ca0ywr9mcznivmhn1lycw8mg4nfl";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
gnused xorg.xprop rlwrap ncurses
|
||||
];
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./paths.patch;
|
||||
sed = "${gnused}/bin/sed";
|
||||
xprop = "${xorg.xprop}/bin/xprop";
|
||||
rlwrap = "${rlwrap}/bin/rlwrap";
|
||||
tput = "${ncurses}/bin/tput";
|
||||
})
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
mkdir -p $out/bin
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
cp util/stumpish/stumpish $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/stumpwm/stumpwm-contrib";
|
||||
description = "STUMPwm Interactive SHell";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.ebzzry ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
87
pkgs/applications/window-managers/stumpish/paths.patch
Normal file
87
pkgs/applications/window-managers/stumpish/paths.patch
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
diff --git a/util/stumpish/stumpish b/util/stumpish/stumpish
|
||||
index 830cb1b..64213dc 100755
|
||||
--- a/util/stumpish/stumpish
|
||||
+++ b/util/stumpish/stumpish
|
||||
@@ -28,8 +28,8 @@ then
|
||||
fi
|
||||
|
||||
# replace -E with -r option for old versions of GNU sed
|
||||
-if ! sed -E 1p /dev/null 2>/dev/null; then
|
||||
- sed() { shift; command sed -r "$@"; }
|
||||
+if ! @sed@ -E 1p /dev/null 2>/dev/null; then
|
||||
+ sed() { shift; command @sed@ -r "$@"; }
|
||||
fi
|
||||
|
||||
# parse C-style backslash sequences by default
|
||||
@@ -41,9 +41,9 @@ wait_result ()
|
||||
{
|
||||
while true
|
||||
do
|
||||
- RESULT=$(xprop -root -f STUMPWM_COMMAND_RESULT 8s \
|
||||
+ RESULT=$(@xprop@ -root -f STUMPWM_COMMAND_RESULT 8s \
|
||||
STUMPWM_COMMAND_RESULT 2>/dev/null |
|
||||
- sed -E 's/\\([[:digit:]]+)/\\0\1/g')
|
||||
+ @sed@ -E 's/\\([[:digit:]]+)/\\0\1/g')
|
||||
if echo "$RESULT" | grep -v -q 'not found.$'
|
||||
then
|
||||
break
|
||||
@@ -52,7 +52,7 @@ wait_result ()
|
||||
sleep $DELAY
|
||||
done
|
||||
|
||||
- xprop -root -remove STUMPWM_COMMAND_RESULT
|
||||
+ @xprop@ -root -remove STUMPWM_COMMAND_RESULT
|
||||
|
||||
if echo "$RESULT" | grep -q '= $'
|
||||
then
|
||||
@@ -60,7 +60,7 @@ wait_result ()
|
||||
fi
|
||||
|
||||
echo "$RESULT" |
|
||||
- sed -E 's/[^"\\n]+"//
|
||||
+ @sed@ -E 's/[^"\\n]+"//
|
||||
/^"[[:space:]]*$/d
|
||||
s/(^|[^\\])\\n/\1\
|
||||
/g
|
||||
@@ -80,7 +80,7 @@ send_cmd ()
|
||||
exit
|
||||
fi
|
||||
|
||||
- xprop -root -f STUMPWM_COMMAND 8s -set STUMPWM_COMMAND "$cmd"
|
||||
+ @xprop@ -root -f STUMPWM_COMMAND 8s -set STUMPWM_COMMAND "$cmd"
|
||||
|
||||
wait_result
|
||||
}
|
||||
@@ -123,8 +123,8 @@ tput ()
|
||||
local cap1=$1 cap2=$2
|
||||
shift 2
|
||||
|
||||
- command tput $cap1 $@ 2>/dev/null ||
|
||||
- command tput $cap2 $@ 2>/dev/null
|
||||
+ command @tput@ $cap1 $@ 2>/dev/null ||
|
||||
+ command @tput@ $cap2 $@ 2>/dev/null
|
||||
}
|
||||
|
||||
READLINE=yes
|
||||
@@ -156,18 +156,18 @@ then
|
||||
else
|
||||
if [ -t 0 ]
|
||||
then
|
||||
- if ! type rlwrap 2>/dev/null >&2
|
||||
+ if ! type @rlwrap@ 2>/dev/null >&2
|
||||
then
|
||||
warn rlwrap not found, command completion won\'t work
|
||||
elif [ $READLINE = yes ]
|
||||
then
|
||||
COMMANDS="${TMPDIR:-/tmp}/stumpish.commands.$$"
|
||||
echo $(send_cmd "commands") |
|
||||
- sed -E 's/[[:space:]]+/\
|
||||
+ @sed@ -E 's/[[:space:]]+/\
|
||||
/g' |
|
||||
sort > "$COMMANDS"
|
||||
trap 'rm -f "$COMMANDS"' exit int term
|
||||
- rlwrap -b '' -f "$COMMANDS" "$0" -r
|
||||
+ @rlwrap@ -b '' -f "$COMMANDS" "$0" -r
|
||||
exit
|
||||
fi
|
||||
|
||||
39
pkgs/applications/window-managers/sway/bg.nix
Normal file
39
pkgs/applications/window-managers/sway/bg.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{ lib, stdenv, fetchFromGitHub
|
||||
, meson, ninja, pkg-config, scdoc
|
||||
, wayland, wayland-protocols, cairo, gdk-pixbuf
|
||||
, wayland-scanner
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "swaybg";
|
||||
version = "1.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "swaybg";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Lt/hn/K+CjcmU3Bs5wChiZq0VGNcraH4tSVYsmYnKjc=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
|
||||
buildInputs = [ wayland wayland-protocols cairo gdk-pixbuf ];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dgdk-pixbuf=enabled" "-Dman-pages=enabled"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Wallpaper tool for Wayland compositors";
|
||||
longDescription = ''
|
||||
A wallpaper utility for Wayland compositors, that is compatible with any
|
||||
Wayland compositor which implements the following Wayland protocols:
|
||||
wlr-layer-shell, xdg-output, and xdg-shell.
|
||||
'';
|
||||
inherit (src.meta) homepage;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos ];
|
||||
};
|
||||
}
|
||||
97
pkgs/applications/window-managers/sway/contrib.nix
Normal file
97
pkgs/applications/window-managers/sway/contrib.nix
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
{ lib, stdenv
|
||||
|
||||
, fetchurl
|
||||
, coreutils
|
||||
, makeWrapper
|
||||
, sway-unwrapped
|
||||
, installShellFiles
|
||||
, wl-clipboard
|
||||
, libnotify
|
||||
, slurp
|
||||
, grim
|
||||
, jq
|
||||
, bash
|
||||
|
||||
, python3Packages
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
grimshot = stdenv.mkDerivation rec {
|
||||
pname = "grimshot";
|
||||
version = sway-unwrapped.version;
|
||||
|
||||
src = sway-unwrapped.src;
|
||||
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
strictDeps = true;
|
||||
nativeBuildInputs = [ makeWrapper installShellFiles ];
|
||||
buildInputs = [ bash ];
|
||||
installPhase = ''
|
||||
installManPage contrib/grimshot.1
|
||||
|
||||
install -Dm 0755 contrib/grimshot $out/bin/grimshot
|
||||
wrapProgram $out/bin/grimshot --set PATH \
|
||||
"${lib.makeBinPath [
|
||||
sway-unwrapped
|
||||
wl-clipboard
|
||||
coreutils
|
||||
libnotify
|
||||
slurp
|
||||
grim
|
||||
jq
|
||||
] }"
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
installCheckPhase = ''
|
||||
# check always returns 0
|
||||
if [[ $($out/bin/grimshot check | grep "NOT FOUND") ]]; then false
|
||||
else
|
||||
echo "grimshot check passed"
|
||||
fi
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A helper for screenshots within sway";
|
||||
homepage = "https://github.com/swaywm/sway/tree/master/contrib";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [
|
||||
sway-unwrapped.meta.maintainers
|
||||
evils
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
inactive-windows-transparency = python3Packages.buildPythonApplication rec {
|
||||
# long name is long
|
||||
lname = "inactive-windows-transparency";
|
||||
pname = "sway-${lname}";
|
||||
version = sway-unwrapped.version;
|
||||
|
||||
src = sway-unwrapped.src;
|
||||
|
||||
format = "other";
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
|
||||
propagatedBuildInputs = [ python3Packages.i3ipc ];
|
||||
|
||||
installPhase = ''
|
||||
install -Dm 0755 $src/contrib/${lname}.py $out/bin/${lname}.py
|
||||
'';
|
||||
|
||||
meta = sway-unwrapped.meta // {
|
||||
description = "It makes inactive sway windows transparent";
|
||||
homepage = "https://github.com/swaywm/sway/tree/${sway-unwrapped.version}/contrib";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
95
pkgs/applications/window-managers/sway/default.nix
Normal file
95
pkgs/applications/window-managers/sway/default.nix
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
{ lib, stdenv, fetchFromGitHub, substituteAll, swaybg
|
||||
, meson, ninja, pkg-config, wayland-scanner, scdoc
|
||||
, wayland, libxkbcommon, pcre, json_c, libevdev
|
||||
, pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg
|
||||
, wlroots, wayland-protocols, libdrm
|
||||
, nixosTests
|
||||
# Used by the NixOS module:
|
||||
, isNixOS ? false
|
||||
|
||||
, enableXWayland ? true
|
||||
, systemdSupport ? stdenv.isLinux
|
||||
, dbusSupport ? true
|
||||
, dbus
|
||||
, trayEnabled ? systemdSupport && dbusSupport
|
||||
}:
|
||||
|
||||
# The "sd-bus-provider" meson option does not include a "none" option,
|
||||
# but it is silently ignored iff "-Dtray=disabled". We use "basu"
|
||||
# (which is not in nixpkgs) instead of "none" to alert us if this
|
||||
# changes: https://github.com/swaywm/sway/issues/6843#issuecomment-1047288761
|
||||
assert trayEnabled -> systemdSupport && dbusSupport;
|
||||
let sd-bus-provider = if systemdSupport then "libsystemd" else "basu"; in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sway-unwrapped";
|
||||
version = "1.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "sway";
|
||||
rev = version;
|
||||
sha256 = "0ss3l258blyf2d0lwd7pi7ga1fxfj8pxhag058k7cmjhs3y30y5l";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./load-configuration-from-etc.patch
|
||||
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit swaybg;
|
||||
})
|
||||
] ++ lib.optionals (!isNixOS) [
|
||||
# References to /nix/store/... will get GC'ed which causes problems when
|
||||
# copying the default configuration:
|
||||
./sway-config-no-nix-store-references.patch
|
||||
] ++ lib.optionals isNixOS [
|
||||
# Use /run/current-system/sw/share and /etc instead of /nix/store
|
||||
# references:
|
||||
./sway-config-nixos-paths.patch
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
depsBuildBuild = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson ninja pkg-config wayland-scanner scdoc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
wayland libxkbcommon pcre json_c libevdev
|
||||
pango cairo libinput libcap pam gdk-pixbuf librsvg
|
||||
wayland-protocols libdrm
|
||||
(wlroots.override { inherit enableXWayland; })
|
||||
] ++ lib.optionals dbusSupport [
|
||||
dbus
|
||||
];
|
||||
|
||||
mesonFlags =
|
||||
[ "-Dsd-bus-provider=${sd-bus-provider}" ]
|
||||
++ lib.optional (!enableXWayland) "-Dxwayland=disabled"
|
||||
++ lib.optional (!trayEnabled) "-Dtray=disabled"
|
||||
;
|
||||
|
||||
passthru.tests.basic = nixosTests.sway;
|
||||
|
||||
meta = with lib; {
|
||||
description = "An i3-compatible tiling Wayland compositor";
|
||||
longDescription = ''
|
||||
Sway is a tiling Wayland compositor and a drop-in replacement for the i3
|
||||
window manager for X11. It works with your existing i3 configuration and
|
||||
supports most of i3's features, plus a few extras.
|
||||
Sway allows you to arrange your application windows logically, rather
|
||||
than spatially. Windows are arranged into a grid by default which
|
||||
maximizes the efficiency of your screen and can be quickly manipulated
|
||||
using only the keyboard.
|
||||
'';
|
||||
homepage = "https://swaywm.org";
|
||||
changelog = "https://github.com/swaywm/sway/releases/tag/${version}";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos synthetica ma27 ];
|
||||
};
|
||||
}
|
||||
11
pkgs/applications/window-managers/sway/fix-paths.patch
Normal file
11
pkgs/applications/window-managers/sway/fix-paths.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
--- a/sway/config.c
|
||||
+++ b/sway/config.c
|
||||
@@ -276,7 +276,7 @@
|
||||
|
||||
if (!(config->active_bar_modifiers = create_list())) goto cleanup;
|
||||
|
||||
- if (!(config->swaybg_command = strdup("swaybg"))) goto cleanup;
|
||||
+ if (!(config->swaybg_command = strdup("@swaybg@/bin/swaybg"))) goto cleanup;
|
||||
|
||||
if (!(config->config_chain = create_list())) goto cleanup;
|
||||
config->current_config_path = NULL;
|
||||
38
pkgs/applications/window-managers/sway/idle.nix
Normal file
38
pkgs/applications/window-managers/sway/idle.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{ lib, stdenv, fetchFromGitHub
|
||||
, meson, ninja, pkg-config, scdoc, wayland-scanner
|
||||
, wayland, wayland-protocols
|
||||
, systemdSupport ? stdenv.isLinux, systemd
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "swayidle";
|
||||
version = "1.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "swayidle";
|
||||
rev = version;
|
||||
sha256 = "06iq12p4438d6bv3jlqsf01wjaxrzlnj1bnicn41kad563aq41xl";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
|
||||
buildInputs = [ wayland wayland-protocols ]
|
||||
++ lib.optionals systemdSupport [ systemd ];
|
||||
|
||||
mesonFlags = [ "-Dman-pages=enabled" "-Dlogind=${if systemdSupport then "enabled" else "disabled"}" ];
|
||||
|
||||
postPatch = "substituteInPlace main.c --replace '%lu' '%zu'";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Idle management daemon for Wayland";
|
||||
longDescription = ''
|
||||
Sway's idle management daemon. It is compatible with any Wayland
|
||||
compositor which implements the KDE idle protocol.
|
||||
'';
|
||||
inherit (src.meta) homepage;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
From 92283df3acbffa5c1bb21f23cdd686113d905114 Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Hilhorst <git@hilhorst.be>
|
||||
Date: Wed, 31 Mar 2021 21:14:13 +0200
|
||||
Subject: [PATCH] Load configs from /etc but fallback to /nix/store
|
||||
|
||||
This change will load all configuration files from /etc, to make it easy
|
||||
to override them, but fallback to /nix/store/.../etc/sway/config to make
|
||||
Sway work out-of-the-box with the default configuration on non NixOS
|
||||
systems.
|
||||
|
||||
Original patch by Michael Weiss, updated for Sway 1.6 by Patrick Hilhorst
|
||||
|
||||
Co-authored-by: Michael Weiss <dev.primeos@gmail.com>
|
||||
---
|
||||
meson.build | 3 ++-
|
||||
sway/config.c | 3 ++-
|
||||
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index b7a29660..8ae8ceb3 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -164,7 +164,8 @@ if scdoc.found()
|
||||
endforeach
|
||||
endif
|
||||
|
||||
-add_project_arguments('-DSYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c')
|
||||
+add_project_arguments('-DSYSCONFDIR="/@0@"'.format(sysconfdir), language : 'c')
|
||||
+add_project_arguments('-DNIX_SYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c')
|
||||
|
||||
version = '"@0@"'.format(meson.project_version())
|
||||
git = find_program('git', native: true, required: false)
|
||||
diff --git a/sway/config.c b/sway/config.c
|
||||
index 76b9ec08..fb5b51aa 100644
|
||||
--- a/sway/config.c
|
||||
+++ b/sway/config.c
|
||||
@@ -374,7 +374,8 @@ static char *get_config_path(void) {
|
||||
{ .prefix = home, .config_folder = ".i3"},
|
||||
{ .prefix = config_home, .config_folder = "i3"},
|
||||
{ .prefix = SYSCONFDIR, .config_folder = "sway"},
|
||||
- { .prefix = SYSCONFDIR, .config_folder = "i3"}
|
||||
+ { .prefix = SYSCONFDIR, .config_folder = "i3"},
|
||||
+ { .prefix = NIX_SYSCONFDIR, .config_folder = "sway"},
|
||||
};
|
||||
|
||||
size_t num_config_paths = sizeof(config_paths)/sizeof(config_paths[0]);
|
||||
--
|
||||
2.30.1
|
||||
52
pkgs/applications/window-managers/sway/lock-effects.nix
Normal file
52
pkgs/applications/window-managers/sway/lock-effects.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, scdoc
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, wayland-scanner
|
||||
, libxkbcommon
|
||||
, cairo
|
||||
, gdk-pixbuf
|
||||
, pam
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "swaylock-effects";
|
||||
version = "unstable-2021-10-21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mortie";
|
||||
repo = "swaylock-effects";
|
||||
rev = "a8fc557b86e70f2f7a30ca9ff9b3124f89e7f204";
|
||||
sha256 = "sha256-GN+cxzC11Dk1nN9wVWIyv+rCrg4yaHnCePRYS1c4JTk=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -iE "s/version: '1\.3',/version: '${version}',/" meson.build
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner];
|
||||
buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dpam=enabled"
|
||||
"-Dgdk-pixbuf=enabled"
|
||||
"-Dman-pages=enabled"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Screen locker for Wayland";
|
||||
longDescription = ''
|
||||
Swaylock, with fancy effects
|
||||
'';
|
||||
inherit (src.meta) homepage;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ gnxlxnxx ma27 ];
|
||||
};
|
||||
}
|
||||
51
pkgs/applications/window-managers/sway/lock-fancy.nix
Normal file
51
pkgs/applications/window-managers/sway/lock-fancy.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{ lib, stdenv, fetchFromGitHub, coreutils, grim, gawk, jq, swaylock
|
||||
, imagemagick, getopt, fontconfig, wmctrl, makeWrapper, bash
|
||||
}:
|
||||
|
||||
let
|
||||
depsPath = lib.makeBinPath [
|
||||
coreutils
|
||||
grim
|
||||
gawk
|
||||
jq
|
||||
swaylock
|
||||
imagemagick
|
||||
getopt
|
||||
fontconfig
|
||||
wmctrl
|
||||
];
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "swaylock-fancy-unstable";
|
||||
version = "2021-10-11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Big-B";
|
||||
repo = "swaylock-fancy";
|
||||
rev = "265fbfb438392339bf676b0a9dbe294abe2a699e";
|
||||
sha256 = "NjxeJyWYXBb1P8sXKgb2EWjF+cNodTE83r1YwRYoBjM=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace swaylock-fancy \
|
||||
--replace "/usr/share" "$out/share"
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ bash ];
|
||||
|
||||
makeFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/swaylock-fancy \
|
||||
--prefix PATH : "${depsPath}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "This is an swaylock bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text";
|
||||
homepage = "https://github.com/Big-B/swaylock-fancy";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ma27 ];
|
||||
};
|
||||
}
|
||||
47
pkgs/applications/window-managers/sway/lock.nix
Normal file
47
pkgs/applications/window-managers/sway/lock.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchpatch
|
||||
, meson, ninja, pkg-config, scdoc, wayland-scanner
|
||||
, wayland, wayland-protocols, libxkbcommon, cairo, gdk-pixbuf, pam
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "swaylock";
|
||||
version = "1.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "swaylock";
|
||||
rev = version;
|
||||
sha256 = "sha256-VVGgidmSQWKxZNx9Cd6z52apxpxVfmX3Ut/G9kzfDcY=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# remove once when updating to 1.7
|
||||
# https://github.com/swaywm/swaylock/pull/235
|
||||
(fetchpatch {
|
||||
url = "https://github.com/swaywm/swaylock/commit/5a1e6ad79aa7d79b32d36cda39400f3e889b8f8f.diff";
|
||||
sha256 = "sha256-ZcZVImUzvng7sluC6q2B5UL8sVunLe4PIfc+tyw48RQ=";
|
||||
})
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
|
||||
buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dpam=enabled" "-Dgdk-pixbuf=enabled" "-Dman-pages=enabled"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Screen locker for Wayland";
|
||||
longDescription = ''
|
||||
swaylock is a screen locking utility for Wayland compositors.
|
||||
Important note: If you don't use the Sway module (programs.sway.enable)
|
||||
you need to set "security.pam.services.swaylock = {};" manually.
|
||||
'';
|
||||
inherit (src.meta) homepage;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
diff --git a/config.in b/config.in
|
||||
index 08703bef..f3872730 100644
|
||||
--- a/config.in
|
||||
+++ b/config.in
|
||||
@@ -22,8 +22,8 @@ set $menu dmenu_path | dmenu | xargs swaymsg exec --
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
-# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/)
|
||||
-output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
|
||||
+# Default wallpaper (more resolutions are available in /run/current-system/sw/share/backgrounds/sway/)
|
||||
+output * bg /run/current-system/sw/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
@@ -214,4 +214,4 @@ bar {
|
||||
}
|
||||
}
|
||||
|
||||
-include @sysconfdir@/sway/config.d/*
|
||||
+include /etc/sway/config.d/*
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
diff --git a/config.in b/config.in
|
||||
--- a/config.in
|
||||
+++ b/config.in
|
||||
@@ -21,8 +21,8 @@ set $menu dmenu_path | dmenu | xargs swaymsg exec
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
-# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/)
|
||||
-output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
|
||||
+# Default wallpaper
|
||||
+#output * bg ~/.config/sway/backgrounds/Sway_Wallpaper_Blue_1920x1080.png fill
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
@@ -213,5 +213,3 @@ bar {
|
||||
inactive_workspace #32323200 #32323200 #5c5c5c
|
||||
}
|
||||
}
|
||||
-
|
||||
-include @sysconfdir@/sway/config.d/*
|
||||
|
||||
63
pkgs/applications/window-managers/sway/wrapper.nix
Normal file
63
pkgs/applications/window-managers/sway/wrapper.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{ lib
|
||||
, sway-unwrapped
|
||||
, makeWrapper, symlinkJoin, writeShellScriptBin
|
||||
, withBaseWrapper ? true, extraSessionCommands ? "", dbus
|
||||
, withGtkWrapper ? false, wrapGAppsHook, gdk-pixbuf, glib, gtk3
|
||||
, extraOptions ? [] # E.g.: [ "--verbose" ]
|
||||
# Used by the NixOS module:
|
||||
, isNixOS ? false
|
||||
|
||||
, enableXWayland ? true
|
||||
, dbusSupport ? true
|
||||
}:
|
||||
|
||||
assert extraSessionCommands != "" -> withBaseWrapper;
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
sway = sway-unwrapped.override { inherit isNixOS enableXWayland; };
|
||||
baseWrapper = writeShellScriptBin "sway" ''
|
||||
set -o errexit
|
||||
if [ ! "$_SWAY_WRAPPER_ALREADY_EXECUTED" ]; then
|
||||
export XDG_CURRENT_DESKTOP=sway
|
||||
${extraSessionCommands}
|
||||
export _SWAY_WRAPPER_ALREADY_EXECUTED=1
|
||||
fi
|
||||
if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
|
||||
export DBUS_SESSION_BUS_ADDRESS
|
||||
exec ${sway}/bin/sway "$@"
|
||||
else
|
||||
exec ${if !dbusSupport then "" else "${dbus}/bin/dbus-run-session"} ${sway}/bin/sway "$@"
|
||||
fi
|
||||
'';
|
||||
in symlinkJoin {
|
||||
name = "sway-${sway.version}";
|
||||
|
||||
paths = (optional withBaseWrapper baseWrapper)
|
||||
++ [ sway ];
|
||||
|
||||
strictDeps = false;
|
||||
nativeBuildInputs = [ makeWrapper ]
|
||||
++ (optional withGtkWrapper wrapGAppsHook);
|
||||
|
||||
buildInputs = optionals withGtkWrapper [ gdk-pixbuf glib gtk3 ];
|
||||
|
||||
# We want to run wrapProgram manually
|
||||
dontWrapGApps = true;
|
||||
|
||||
postBuild = ''
|
||||
${optionalString withGtkWrapper "gappsWrapperArgsHook"}
|
||||
|
||||
wrapProgram $out/bin/sway \
|
||||
${optionalString withGtkWrapper ''"''${gappsWrapperArgs[@]}"''} \
|
||||
${optionalString (extraOptions != []) "${concatMapStrings (x: " --add-flags " + x) extraOptions}"}
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit (sway.passthru) tests;
|
||||
providedSessions = [ "sway" ];
|
||||
};
|
||||
|
||||
inherit (sway) meta;
|
||||
}
|
||||
33
pkgs/applications/window-managers/sway/wsr.nix
Normal file
33
pkgs/applications/window-managers/sway/wsr.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ lib, fetchFromGitHub, rustPlatform, libxcb, python3 }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "swaywsr";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pedroscaff";
|
||||
repo = pname;
|
||||
rev = "6c4671c702f647395d983aaf607286db1c692db6";
|
||||
sha256 = "0bmpbhyvgnbi5baj6v0wdxpdh9cnlzvcc44vh3vihmzsp6i5q05a";
|
||||
};
|
||||
|
||||
cargoSha256 = "1pmkyw60ggn5filb47nyf97g1arrw7nfa4yjndnx35zw12mkj61d";
|
||||
|
||||
nativeBuildInputs = [ python3 ];
|
||||
buildInputs = [ libxcb ];
|
||||
|
||||
# has not tests
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Automatically change sway workspace names based on their contents";
|
||||
longDescription = ''
|
||||
Automatically sets the workspace names to match the windows on the workspace.
|
||||
The chosen name for a workspace is a composite of the app_id or WM_CLASS X11
|
||||
window property for each window in a workspace.
|
||||
'';
|
||||
homepage = "https://github.com/pedroscaff/swaywsr";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.sebbadk ];
|
||||
};
|
||||
}
|
||||
27
pkgs/applications/window-managers/sxhkd/default.nix
Normal file
27
pkgs/applications/window-managers/sxhkd/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, stdenv, fetchFromGitHub, asciidoc, libxcb, xcbutil, xcbutilkeysyms
|
||||
, xcbutilwm
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sxhkd";
|
||||
version = "0.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "baskerville";
|
||||
repo = "sxhkd";
|
||||
rev = version;
|
||||
sha256 = "1winwzdy9yxvxnrv8gqpigl9y0c2px27mnms62bdilp4x6llrs9r";
|
||||
};
|
||||
|
||||
buildInputs = [ asciidoc libxcb xcbutil xcbutilkeysyms xcbutilwm ];
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple X hotkey daemon";
|
||||
homepage = "https://github.com/baskerville/sxhkd";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ vyp ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
32
pkgs/applications/window-managers/tabbed/default.nix
Normal file
32
pkgs/applications/window-managers/tabbed/default.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, stdenv, fetchgit, xorgproto, libX11, libXft, customConfig ? null, patches ? [ ] }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "tabbed";
|
||||
version = "unstable-2018-03-10";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://git.suckless.org/tabbed";
|
||||
rev = "b5f9ec647aae2d9a1d3bd586eb7523a4e0a329a3";
|
||||
sha256 = "0frj2yjaf0mfjwgyfappksfir52mx2xxd3cdg5533m5d88vbmxss";
|
||||
};
|
||||
|
||||
inherit patches;
|
||||
|
||||
postPatch = lib.optionalString (customConfig != null) ''
|
||||
cp ${builtins.toFile "config.h" customConfig} ./config.h
|
||||
'';
|
||||
|
||||
buildInputs = [ xorgproto libX11 libXft ];
|
||||
|
||||
makeFlags = [ "CC:=$(CC)" ];
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://tools.suckless.org/tabbed";
|
||||
description = "Simple generic tabbed fronted to xembed aware applications";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ vrthra ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
29
pkgs/applications/window-managers/taffybar/default.nix
Normal file
29
pkgs/applications/window-managers/taffybar/default.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ lib, stdenv, ghcWithPackages, taffybar, makeWrapper, packages ? (x: []) }:
|
||||
|
||||
let
|
||||
taffybarEnv = ghcWithPackages (self: [
|
||||
self.taffybar
|
||||
] ++ packages self);
|
||||
in stdenv.mkDerivation {
|
||||
pname = "taffybar-with-packages";
|
||||
inherit (taffybarEnv) version;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${taffybarEnv}/bin/taffybar $out/bin/taffybar \
|
||||
--set NIX_GHC "${taffybarEnv}/bin/ghc"
|
||||
'';
|
||||
|
||||
# Trivial derivation
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
|
||||
# For hacking purposes
|
||||
passthru.env = taffybarEnv;
|
||||
buildInputs = [ taffybarEnv ];
|
||||
shellHook = "eval $(egrep ^export ${taffybarEnv}/bin/ghc)";
|
||||
|
||||
inherit (taffybar) meta;
|
||||
}
|
||||
28
pkgs/applications/window-managers/tinywl/default.nix
Normal file
28
pkgs/applications/window-managers/tinywl/default.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, stdenv, wlroots, pkg-config, wayland-scanner
|
||||
, libxkbcommon, pixman, udev, wayland, wayland-protocols
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "tinywl";
|
||||
inherit (wlroots) version src;
|
||||
|
||||
sourceRoot = "source/tinywl";
|
||||
|
||||
nativeBuildInputs = [ pkg-config wayland-scanner ];
|
||||
buildInputs = [ libxkbcommon pixman udev wayland wayland-protocols wlroots ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin
|
||||
cp tinywl $out/bin
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/swaywm/wlroots/tree/master/tinywl";
|
||||
description = ''A "minimum viable product" Wayland compositor based on wlroots'';
|
||||
maintainers = with maintainers; [ qyliss ] ++ wlroots.meta.maintainers;
|
||||
license = licenses.cc0;
|
||||
inherit (wlroots.meta) platforms;
|
||||
};
|
||||
}
|
||||
52
pkgs/applications/window-managers/tinywm/default.nix
Normal file
52
pkgs/applications/window-managers/tinywm/default.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{ lib, 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 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;
|
||||
license = licenses.publicDomain;
|
||||
};
|
||||
}
|
||||
32
pkgs/applications/window-managers/trayer/default.nix
Normal file
32
pkgs/applications/window-managers/trayer/default.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, gdk-pixbuf, gtk2 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "trayer";
|
||||
version = "1.1.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sargon";
|
||||
repo = "trayer-srg";
|
||||
rev = "${pname}-${version}";
|
||||
sha256 = "1mvhwaqa9bng9wh3jg3b7y8gl7nprbydmhg963xg0r076jyzv0cg";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs configure
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ gdk-pixbuf gtk2 ];
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/sargon/trayer-srg";
|
||||
license = licenses.mit;
|
||||
description = "A lightweight GTK2-based systray for UNIX desktop";
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
};
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue