From 08f1b2632e9d5ed9b1791238001c51d133858f1f Mon Sep 17 00:00:00 2001 From: William Casarin Date: Fri, 18 Dec 2020 06:29:29 -0800 Subject: [PATCH] notcurses: init at 2.1.0 This is a neat ncurses alternative. See the demo here: https://www.youtube.com/watch?v=cYhZ7myXyyg Here's something interesting to package after this: https://github.com/dankamongmen/growlight Message-Id: <20201218142929.9912-1-jb55@jb55.com> --- .../libraries/notcurses/default.nix | 49 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 51 insertions(+) create mode 100644 pkgs/development/libraries/notcurses/default.nix diff --git a/pkgs/development/libraries/notcurses/default.nix b/pkgs/development/libraries/notcurses/default.nix new file mode 100644 index 000000000000..189e36c1b448 --- /dev/null +++ b/pkgs/development/libraries/notcurses/default.nix @@ -0,0 +1,49 @@ +{ stdenv, cmake, pkgconfig, pandoc, libunistring, ncurses, ffmpeg, + fetchFromGitHub, lib, + multimediaSupport ? true +}: +let + version = "2.1.0"; +in +stdenv.mkDerivation { + pname = "notcurses"; + inherit version; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ cmake pkgconfig pandoc ]; + + buildInputs = [ libunistring ncurses ] + ++ lib.optional multimediaSupport ffmpeg; + + cmakeFlags = + [ "-DUSE_QRCODEGEN=OFF" ] + ++ lib.optional (!multimediaSupport) "-DUSE_MULTIMEDIA=none"; + + src = fetchFromGitHub { + owner = "dankamongmen"; + repo = "notcurses"; + rev = "v${version}"; + sha256 = "0jvngg40c1sqf85kqy6ya0vflpxsj7j4g6cw609992rifaghxiny"; + }; + + meta = { + description = "blingful TUIs and character graphics"; + + longDescription = '' + A library facilitating complex TUIs on modern terminal emulators, + supporting vivid colors, multimedia, and Unicode to the maximum degree + possible. Things can be done with Notcurses that simply can't be done + with NCURSES. + + It is not a source-compatible X/Open Curses implementation, nor a + replacement for NCURSES on existing systems. + ''; + + homepage = "https://github.com/dankamongmen/notcurses"; + + license = lib.licenses.asl20; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ jb55 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2554f3584e43..14fba89bd03a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15085,6 +15085,8 @@ in notify-sharp = callPackage ../development/libraries/notify-sharp { }; + notcurses = callPackage ../development/libraries/notcurses { }; + ncurses5 = ncurses.override { abiVersion = "5"; };