|
|
- #!/usr/bin/env bash
- # author: unknown
- # sentby: MoreChannelNoise (https://www.youtube.com/user/MoreChannelNoise)
- # editby: gotbletu (https://www.youtube.com/user/gotbletu)
-
- # demo: https://www.youtube.com/watch?v=kxJClZIXSnM
- # info: this is a script to launch other rofi scripts,
- # saves us the trouble of binding multiple hotkeys for each script,
- # when we can just use one hotkey for everything.
-
- declare -A LABELS
- declare -A COMMANDS
-
- ###
- # List of defined 'bangs'
-
- # launch programs
- COMMANDS["apps"]="dmenu_run -i -m 0 -fn 'Inconsolata:size=10' -nb '#222222' -nf '#bbbbbb' -sb '#005577' -sf '#eeeeee'"
- LABELS["apps"]=""
-
- # clipboard
- COMMANDS["clipboard"]="greenclip print | dmenu -i -l 10 -m 0 -fn 'Inconsolata:size=10' -nb '#222222' -nf '#bbbbbb' -sb '#005577' -sf '#eeeeee' -p 'clipboard: ' | xclip -selection clipboard"
- LABELS["clipboard"]=""
-
- # search local files
- COMMANDS["emoji"]="~/.local/bin/dmenu-scripts/dmenu-emoji"
- LABELS["emoji"]=""
-
- # mount drives
- COMMANDS["mount"]="sudo ~/.local/bin/dmenu-scripts/dmenu-mount"
- LABELS["mount"]=""
-
- # umount drives
- COMMANDS["unmount"]="sudo ~/.local/bin/dmenu-scripts/dmenu-mount unmount"
- LABELS["unmount"]=""
-
- # shutdown
- COMMANDS["shutdown"]="sudo ~/.local/bin/dmenu-scripts/dmenu-shutdown"
- LABELS["shutdown"]=""
-
- # PDF man pages
- COMMANDS["man"]="~/.local/bin/dmenu-scripts/dmenu-man"
- LABELS["man"]=""
-
- # locate files
- COMMANDS["locate"]="~/.local/bin/dmenu-scripts/dmenu-locate"
- LABELS["locate"]=""
-
- ################################################################################
- # do not edit below
- ################################################################################
- ##
- # Generate menu
- ##
- function print_menu()
- {
- for key in ${!LABELS[@]}
- do
- echo "$key ${LABELS}"
- # echo "$key ${LABELS[$key]}"
- # my top version just shows the first field in labels row, not two words side by side
- done
- }
- ##
- # Show rofi.
- ##
- function start()
- {
- print_menu | sort | dmenu -i -m 0 -fn "Inconsolata:size=10" -nb "#222222" -nf "#bbbbbb" -sb "#005577" -sf "#eeeeee" -p "dmenu bangs: "
-
- }
-
-
- # Run it
- value="$(start)"
-
- # Split input.
- # grab upto first space.
- choice=${value%%\ *}
- # graph remainder, minus space.
- input=${value:$((${#choice}+1))}
-
- ##
- # Cancelled? bail out
- ##
- if test -z ${choice}
- then
- exit
- fi
-
- # check if choice exists
- if test ${COMMANDS[$choice]+isset}
- then
- # Execute the choice
- eval ${COMMANDS[$choice]}
- else
- eval $choice | dmenu
- fi
|