100 lines
2.5 KiB
Nix
100 lines
2.5 KiB
Nix
{ lib, stdenv, fetchurl, fetchFromGitHub, nim, gentium, SDL2, makeDesktopItem }:
|
|
|
|
let
|
|
treeformLibs = lib.attrsets.mapAttrsToList (repo: args:
|
|
fetchFromGitHub ({
|
|
inherit repo;
|
|
owner = "treeform";
|
|
} // args)) {
|
|
bumpy = {
|
|
rev = "1.0.3";
|
|
sha256 = "sha256-mDmDlhOGoYYjKgF5j808oT2NqRlfcOdLSDE3WtdJFQ0=";
|
|
};
|
|
chroma = {
|
|
rev = "0.2.5";
|
|
sha256 = "sha256-6lNHpO2aMorgkaPfo6kRcOs9r5R6T/kislVmkeoulw8=";
|
|
};
|
|
flatty = {
|
|
rev = "0.2.1";
|
|
sha256 = "sha256-TqNnRh2+i6n98ktLRVQxt9CVw17FGLNYq29rJoMus/0=";
|
|
};
|
|
pixie = {
|
|
rev = "1.1.3";
|
|
sha256 = "sha256-xKIejVxOd19mblL1ZwpJH91dgKQS5g8U08EL8lGGelA=";
|
|
};
|
|
typography = {
|
|
rev = "0.7.9";
|
|
sha256 = "sha256-IYjw3PCp5XzVed2fGGCt9Hb60cxFeF0BUZ7L5PedTLU=";
|
|
};
|
|
vmath = {
|
|
rev = "1.0.3";
|
|
sha256 = "sha256-zzSKXjuTZ46HTFUs0N47mxEKTKIdS3dwr+60sQYSdn0=";
|
|
};
|
|
};
|
|
|
|
nimLibs = treeformLibs ++ [
|
|
(fetchFromGitHub {
|
|
owner = "nim-lang";
|
|
repo = "sdl2";
|
|
rev = "v2.0.2";
|
|
sha256 = "sha256-Ivx/gxDa2HVDjCVrJVu23i4d0pDzzv+ThmwqNjtkjsA=";
|
|
})
|
|
(fetchFromGitHub {
|
|
owner = "guzba";
|
|
repo = "nimsimd";
|
|
rev = "1.0.0";
|
|
sha256 = "sha256-kp61fylAJ6MSN9hLYLi7CU2lxVR/lbrNCvZTe0LJLGo=";
|
|
})
|
|
(fetchFromGitHub {
|
|
owner = "guzba";
|
|
repo = "zippy";
|
|
rev = "0.5.6";
|
|
sha256 = "sha256-axp4t9+8TFSpvnATlRKZyuOGLA0e/XKfvrVSwreXpC4=";
|
|
})
|
|
];
|
|
|
|
in stdenv.mkDerivation rec {
|
|
pname = "hottext";
|
|
version = "1.3";
|
|
|
|
src = fetchurl {
|
|
url = "https://git.sr.ht/~ehmry/hottext/archive/v${version}.tar.gz";
|
|
sha256 = "sha256-iz7Z2x0/yi/E6gGFkYgq/yZDOxrZGwQmumPoO9kckLQ=";
|
|
};
|
|
|
|
nativeBuildInputs = [ nim ];
|
|
buildInputs = [ SDL2 ];
|
|
|
|
nimFlags = [ "-d:release" ] ++ map (lib: "--path:${lib}/src") nimLibs;
|
|
|
|
HOTTEXT_FONT_PATH = "${gentium}/share/fonts/truetype/GentiumPlus-R.ttf";
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
HOME=$TMPDIR
|
|
nim $nimFlags compile src/$pname
|
|
runHook postBuild
|
|
'';
|
|
|
|
desktopItem = makeDesktopItem {
|
|
categories = "Utility;";
|
|
comment = meta.description;
|
|
desktopName = pname;
|
|
exec = pname;
|
|
name = pname;
|
|
};
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
install -Dt $out/bin src/$pname
|
|
cp -r $desktopItem/* $out
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Simple RSVP speed-reading utility";
|
|
license = licenses.unlicense;
|
|
homepage = "https://git.sr.ht/~ehmry/hottext";
|
|
maintainers = with maintainers; [ ehmry ];
|
|
};
|
|
}
|