#!/bin/sh # Search and open man page # Options: # -t use in terminal with fzf otherwise launch gui menu # -s search with apropos. issearch= isterminal= printusage() { echo "Options:" >&2 echo " -t use in terminal with fzf otherwise gui menu." >&2 echo " -s search with apropos." >&2 } while getopts "st" curopt "$@"; do case "$curopt" in "s") issearch=1 continue;; "t") isterminal=1 continue;; "?") printusage exit 1;; esac done if [ ! -z "$issearch" ]; then if [ ! -z "$isterminal" ]; then printf "Enter query:\t" read query else query="$(echo "" | rofi -dmenu -p "Enter apropos query" -i)" fi if [ -z "$query" ]; then echo "Empty query" >&2 exit 1 fi list="$(apropos "$query")" else list="$(man -k . | awk '{ print $1$2 }')" fi if [ ! -z "$isterminal" ]; then chosen=$(printf "$list" | fzf) else chosen=$(printf "$list" | rofi -dmenu -p "Select man page" -i) fi if [ -z "$chosen" ]; then exit 0 fi if [ ! -z "$issearch" ]; then chosen="$(printf "$chosen" | sed "s/\(.* ([a-zA-Z0-9]*)\)\s*-.*/\1/")" fi if [ ! -z "$isterminal" ]; then man "$chosen" && exit fi $TERMINAL $SHELL -ic "man \"$chosen\""