diff options
author | lassulus <lassulus@lassul.us> | 2022-04-06 13:47:53 +0200 |
---|---|---|
committer | lassulus <lassulus@lassul.us> | 2022-04-06 13:47:53 +0200 |
commit | add7d31c7ebbb6a98f556695f773a98ca4cedad1 (patch) | |
tree | 1bc2db314634821ba3e65014d65e155c06736961 | |
parent | b3833baee96d7bce2c54295110b40c646468a1ff (diff) | |
parent | 941476b492f54890a161d7564736b05f083001ed (diff) |
Merge remote-tracking branch 'ni/master'
-rw-r--r-- | krebs/5pkgs/haskell/pager.nix | 23 | ||||
-rw-r--r-- | krebs/5pkgs/simple/pager.nix | 36 |
2 files changed, 59 insertions, 0 deletions
diff --git a/krebs/5pkgs/haskell/pager.nix b/krebs/5pkgs/haskell/pager.nix new file mode 100644 index 000000000..3c9f80466 --- /dev/null +++ b/krebs/5pkgs/haskell/pager.nix @@ -0,0 +1,23 @@ +{ mkDerivation, base, blessings, bytestring, containers +, data-default, hack, lib, optparse-applicative, probability +, scanner, speculate, split, terminal-size, text, unix, X11 +, fetchgit +}: +mkDerivation { + pname = "pager"; + version = "1.0.0"; + src = fetchgit { + url = "https://cgit.krebsco.de/pager"; + sha256 = "1kqd27faxinkwpxancyk0xl6n7ljlc8iqhnnq85l76bk4qi9b45i"; + rev = "f4cdf79bd4a75e9eafe68b9a908f4cc68682b7ef"; + fetchSubmodules = true; + }; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ + base blessings bytestring containers data-default hack + optparse-applicative probability scanner speculate split + terminal-size text unix X11 + ]; + license = lib.licenses.mit; +} diff --git a/krebs/5pkgs/simple/pager.nix b/krebs/5pkgs/simple/pager.nix new file mode 100644 index 000000000..ed740490d --- /dev/null +++ b/krebs/5pkgs/simple/pager.nix @@ -0,0 +1,36 @@ +{ pkgs }: + +pkgs.writeDashBin "pager" '' + # usage: pager {view,shift,shiftview} + # + # Environment variables + # + # PAGER_NAME (default: Pager) + # The environment variables specifies the application name under which + # resources are to be obtained. PAGER_NAME should not contain “.” or “*” + # characters. + # + set -efu + + pidfile=$XDG_RUNTIME_DIR/pager.lock + name=''${PAGER_NAME-Pager} + + if test -e "$pidfile" && + ${pkgs.procps}/bin/pgrep --pidfile="$pidfile" >/dev/null + then + ${pkgs.procps}/bin/pkill --pidfile="$pidfile" + ${pkgs.coreutils}/bin/rm "$pidfile" + exit + fi + + echo $$ > "$pidfile" + + exec ${pkgs.xterm}/bin/xterm \ + -name "$name" \ + -ti vt340 \ + -xrm 'Pager*geometry: 32x10' \ + -xrm 'Pager*internalBorder: 2' \ + -xrm 'Pager*background: #050505' \ + -xrm 'Pager*foreground: #d0d7d0' \ + -e ${pkgs.haskellPackages.pager}/bin/pager "$@" +'' |