2ck

dmenu_man

2ck
Aug 5th, 2012
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.08 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. export MANSECT=1,3,7
  4. ASK_SECTION=false
  5. BG_COLOR=#000000
  6. FG_COLOR=#858900 #solarized green
  7. SEL_BG_COLOR=$FG_COLOR
  8. SEL_FG_COLOR=$BG_COLOR
  9. FONT="Fixed-8"
  10.  
  11. cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"}
  12. if [ -d "$cachedir" ]; then
  13.     cache=$cachedir/dmenu_run
  14. else
  15.     cache=$HOME/.dmenu_cache # if no xdg dir, fall back to dotfile in ~
  16. fi
  17.  
  18. my_dmenu ()
  19. {
  20.     local prompt=${1:-"Man:"}
  21.     local height=${2:-4}
  22.     LANG=en_US.UTF-8 dmenu -p $prompt -nf $FG_COLOR -nb $BG_COLOR -sb $SEL_BG_COLOR -sf $SEL_FG_COLOR -i -fn "$FONT"
  23. }
  24.  
  25. IFS_SAVE=$IFS #need a prettier way to do this
  26. IFS=:
  27. if stest -dqr -n "$cache" $PATH; then
  28.     page=`stest -flx $PATH | sort -u | tee "$cache" | my_dmenu`
  29. else
  30.     page=`my_dmenu < "$cache"`
  31. fi
  32. IFS=$IFS_SAVE
  33.  
  34. if [ ! $page ] ; then
  35.     exit
  36. fi
  37.  
  38. multi=`apropos "^$page$"`
  39. if [ `echo $multi|wc -l` -gt 1 ] ; then
  40.     if [ $ASK_SECTION = true ] ; then
  41.         section=`echo $multi | egrep -o "\([[:digit:]]+\)" |egrep -o "[[:digit:]]" |my_dmenu Section:`
  42.     fi
  43. fi
  44.  
  45. if [ $page ] ; then
  46.     xterm -e "/usr/bin/man $section $page" &
  47. fi
Advertisement
Add Comment
Please, Sign In to add comment