saturnin-dmenu 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/bin/bash
  2. . "$(ffoom path)" || exit 3
  3. ffoo import inigrep
  4. ffoo import pretty
  5. usage() {
  6. mkusage "[-l|--lines NUM] [--split CHAR] ARGS..."
  7. }
  8. lines=10
  9. maybe_split=cat
  10. delim=" "
  11. field=2-
  12. while true; do case $1 in
  13. -l|--lines) lines=$2; shift 2 || usage ;;
  14. --split) delim=$2; maybe_split=do_split; shift 2 || usage ;;
  15. --split-field) field=$2; maybe_split=do_split; shift 2 || usage ;;
  16. --help|--usage) usage ;;
  17. *) break ;;
  18. esac done
  19. nb="$(inigrep -1 -p style.color.nbg)"
  20. nf="$(inigrep -1 -p style.color.nfg)"
  21. sb="$(inigrep -1 -p style.color.sbg)"
  22. sf="$(inigrep -1 -p style.color.sfg)"
  23. fn="$(inigrep -1 -p style.font)"
  24. fn=${fn:--*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*}
  25. debug -v nb nf sb sf fn lines maybe_split delim
  26. style() {
  27. test -n "$nb" && echo -n "-nb $nb "
  28. test -n "$nf" && echo -n "-nf $nf "
  29. test -n "$sb" && echo -n "-sb $sb "
  30. test -n "$sf" && echo -n "-sf $sf "
  31. test -n "$fn" && echo -n "-fn $fn "
  32. }
  33. do_split() {
  34. cut "-d$delim" -f"$field"
  35. }
  36. dmenu -b -i -l "$lines" $(style) "$@" | $maybe_split