diff options
-rw-r--r-- | nixos/modules/services/x11/window-managers/berry.nix | 25 | ||||
-rw-r--r-- | nixos/modules/services/x11/window-managers/default.nix | 1 | ||||
-rw-r--r-- | pkgs/applications/window-managers/berry/default.nix | 47 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
4 files changed, 75 insertions, 0 deletions
diff --git a/nixos/modules/services/x11/window-managers/berry.nix b/nixos/modules/services/x11/window-managers/berry.nix new file mode 100644 index 0000000000000..0d2285e7a60eb --- /dev/null +++ b/nixos/modules/services/x11/window-managers/berry.nix @@ -0,0 +1,25 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xserver.windowManager.berry; +in +{ + ###### interface + options = { + services.xserver.windowManager.berry.enable = mkEnableOption "berry"; + }; + + ###### implementation + config = mkIf cfg.enable { + services.xserver.windowManager.session = singleton { + name = "berry"; + start = '' + ${pkgs.berry}/bin/berry & + waitPID=$! + ''; + }; + environment.systemPackages = [ pkgs.berry ]; + }; +} diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix index af211e3b53493..c8af8fdc29a47 100644 --- a/nixos/modules/services/x11/window-managers/default.nix +++ b/nixos/modules/services/x11/window-managers/default.nix @@ -10,6 +10,7 @@ in imports = [ ./2bwm.nix ./afterstep.nix + ./berry.nix ./bspwm.nix ./cwm.nix ./dwm.nix diff --git a/pkgs/applications/window-managers/berry/default.nix b/pkgs/applications/window-managers/berry/default.nix new file mode 100644 index 0000000000000..2a41a3d3c0735 --- /dev/null +++ b/pkgs/applications/window-managers/berry/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchFromGitHub +, libX11, libXft, libXinerama, fontconfig, freetype }: + +stdenv.mkDerivation rec { + pname = "berry"; + version = "0.1.5"; + + src = fetchFromGitHub { + owner = "JLErvin"; + repo = "berry"; + rev = version; + sha256 = "1wxbjzpwqb9x7vd7kb095fiqj271rki980dnwcxjxpqlmmrmjzyl"; + }; + + buildInputs = [ libX11 libXft libXinerama fontconfig freetype ]; + + preBuild = '' + makeFlagsArray+=( PREFIX="${placeholder "out"}" + X11INC="${libX11.dev}/include" + X11LIB="${libX11}/lib" + XINERAMALIBS="-lXinerama" + XINERAMAFLAGS="-DXINERAMA" + FREETYPELIBS="-lfontconfig -lXft" + FREETYPEINC="${freetype.dev}/include/freetype2" ) + ''; + + meta = with stdenv.lib; { + description = "A healthy, bite-sized window manager"; + longDescription = '' + berry is a healthy, bite-sized window manager written in C for unix + systems. Its main features include: + + - Controlled via a powerful command-line client, allowing users to control + windows via a hotkey daemon such as sxhkd or expand functionality via + shell scripts. + - Small, hackable source code. + - Extensible themeing options with double borders, title bars, and window + text. + - Intuitively place new windows in unoccupied spaces. + - Virtual desktops. + ''; + homepage = "https://berrywm.org/"; + license = licenses.mit; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 93cc914b5837c..cdd7d348e492d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18675,6 +18675,8 @@ in bb = callPackage ../applications/misc/bb { }; + berry = callPackage ../applications/window-managers/berry { }; + bevelbar = callPackage ../applications/window-managers/bevelbar { }; bibletime = libsForQt5.callPackage ../applications/misc/bibletime { }; |