summaryrefslogtreecommitdiffstats
path: root/krebs/5pkgs/simple/pager.nix
blob: ed740490da9ec2aceaf2fd77d0ef5468d515d79a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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 "$@"
''