rundmc (3391B)
1 #!/usr/bin/zsh 2 3 #DM_CMD=$(dmenu -m 0 -fn gohu:size=11 -i -nb '#1f1d1b' -nf '#d3cab3' -sb '#454545' -sf '#dab733' -l 10) 4 5 dm_bin() { 6 bin_arr=() 7 while IFS= read -r line; do 8 bin_arr+=( "$line" ) 9 done < <( find $HOME/.local/bin ) 10 11 choice=$(printf '%s\n' "${bin_arr[@]}" | awk -F/ '{print $NF}' | dmenu -i -l 10 -m 0 -fn gohu:size=11 -nb '#1f1d1b' -nf '#d3cab3' -sb '#454545' -sf '#dab733' -p 'bin: ') 12 13 if [ "$choice" ] ; then 14 #cmd="printf '%s\n' "${bin_arr[@]}" | grep $HOME/bin/$choice | head -n1" 15 cmd="$HOME/bin/${choice} $@" 16 urxvt -title dmenu -e zsh -c "herbstclient set_attr clients.focus.minimized true ; $cmd" 17 fi 18 } 19 20 dm_func() { 21 func_arr=() 22 while IFS= read -r line; do 23 func_arr+=( "$line" ) 24 done < <( find $HOME/.zsh/functions ) 25 26 choice=$(printf '%s\n' "${func_arr[@]}" | awk -F/ '{print $NF}' | dmenu -i -l 10 -m 0 -fn gohu:size=11 -nb '#1f1d1b' -nf '#d3cab3' -sb '#454545' -sf '#dab733' -p 'functions: ') 27 28 if [ "$choice" ] ; then 29 #cmd="printf '%s\n' "${func_arr[@]}" | grep $HOME/bin/$choice | head -n1" 30 cmd="$HOME/.zsh/functions/${choice} $@" 31 urxvt -title dmenu -e zsh -c "herbstclient set_attr clients.focus.minimized true ; $cmd" 32 fi 33 } 34 35 dm_aliases() { 36 source $HOME/.zsh/aliases.zsh 37 alias_arr=() 38 while IFS= read -r line; do 39 alias_arr+=( "$line" ) 40 done < <( alias ) 41 42 choice=$(printf '%s\n' "${alias_arr[@]}" | awk -F= '{print $1}' | dmenu -i -l 10 -m 0 -fn gohu:size=11 -nb '#1f1d1b' -nf '#d3cab3' -sb '#454545' -sf '#dab733' -p 'submenu: ') 43 44 if [ "$choice" ] ; then 45 cmd=$(printf '%s\n' "${alias_arr[@]}" | grep ^$choice | head -n1 | sed 's/=/%/' | awk -F% '{ print $NF }' | tr -d "'") 46 urxvt -title dmenu -e zsh -c "herbstclient set_attr clients.focus.minimized true ; $cmd" 47 #echo $cmd 48 fi 49 } 50 51 dm_hidden() { 52 hide_arr=() 53 while IFS= read -r line; do 54 hide_arr+=( "$line" ) 55 done < <(hidden -c) 56 57 choice=$(printf '%s\n' "${hide_arr[@]}" | awk -F: '{print $1}' | tr -d "'" | dmenu -i -l 10 -m 0 -fn gohu:size=11 -nb '#1f1d1b' -nf '#d3cab3' -sb '#454545' -sf '#dab733' -p 'submenu: ') 58 59 if [ "$choice" ] ; then 60 cmd=$(printf '%s\n' "${hide_arr[@]}" | grep "^'$choice'" | awk -F: '{ print $NF }' | tr -d "'") 61 urxvt -e zsh -c "$cmd" 62 #echo $cmd 63 fi 64 } 65 66 dm_man() { 67 man_arr=() 68 while IFS= read -r line; do 69 man_arr+=( "$line" ) 70 done < <(man -k .) 71 72 choice=$(printf '%s\n' "${man_arr[@]}" | dmenu -i -l 10 -m 0 -fn gohu:size=11 -nb '#1f1d1b' -nf '#d3cab3' -sb '#454545' -sf '#dab733' -p 'manpage: ') 73 74 if [ "$choice" ] ; then 75 cmd=$(printf '%s\n' "${man_arr[@]}" | grep ^$choice | awk '{print $1}') 76 urxvt -e zsh -c "source $HOME/.zsh/colored-man-pages.zsh ; man ${cmd}" 77 fi 78 } 79 80 dm_pom() { 81 sleep 1500 82 /usr/bin/notify-send -u 'low' "time's up" 83 } 84 85 select_arr=("run" "bin" "functions" "aliases" "hidden" "man" "pom" "scratch" "clipmenu") 86 submenu=$(printf '%s\n' "${select_arr[@]}" | dmenu -i -l 10 -m 0 -fn gohu:size=11 -nb '#1f1d1b' -nf '#d3cab3' -sb '#454545' -sf '#dab733' -p 'submenu: ') 87 88 case $submenu in 89 run) dmenu_run -i -l 10 -m 0 -fn gohu:size=11 -nb '#1f1d1b' -nf '#d3cab3' -sb '#454545' -sf '#dab733' -p 'rundmc: ' ;; 90 bin) dm_bin ;; 91 functions) dm_func ;; 92 aliases) dm_aliases ;; 93 hidden) dm_hidden ;; 94 man) dm_man ;; 95 pom) dm_pom ;; 96 scratch) urxvtc -e zsh -c "less $HOME/.vimrc" ;; 97 clipmenu) clipmenu -i -l 10 -m 0 -fn gohu:size=11 -nb '#1f1d1b' -nf '#d3cab3' -sb '#454545' -sf '#dab733' -p 'clipmenu: ' ;; 98 *) exit ;; 99 esac