#!/bin/bash NAME="${0##*/}" VER="0.8" OPTS=( -padding 50 -line-padding 4 -hide-scrollbar ) usage() { cat <<EOF USAGE: $NAME [OPTIONS] OPTIONS: -h,--help Display this message -v,--version Display script version -r,--run Run launcher -d,--drun Desktop application launcher -w,--window Switch between windows -l,--logout System logout dialog -b,--browser Browser search by keyword (requires surfraw) -q,--qalculate Persistant calculator dialog (requires libqalculate) -c,--clipboard Select previous clipboard entries (requires greenclip) Without any options the run dialog will be opened. EOF } if (( $# == 0 )); then rofi -show run -columns 2 "${OPTS[@]}" else for arg in "$@"; do case $arg in -h|--help) usage exit 0 ;; -v|--version) echo -e "$NAME -- Version $VER" exit 0 ;; -d|--drun) rofi -modi drun -show drun -columns 2 "${OPTS[@]}" -show-icons -drun-icon-theme "ArchLabs-Dark" ;; -r|--run) rofi -show run -columns 2 "${OPTS[@]}" ;; -w|--window) rofi -show window "${OPTS[@]}" ;; -q|--qalculate) hash qalc >/dev/null 2>&1 || { echo "Requires 'libqalculate' installed"; exit 1; } rofi -modi "calc:qalc +u8 -nocurrencies" -show "calc:qalc +u8 -nocurrencies" "${OPTS[@]}" ;; -c|--clipboard) hash greenclip >/dev/null 2>&1 || { echo "Requires 'greenclip' installed"; exit 1; } rofi -modi "clipboard:greenclip print" -show "clipboard:greenclip print" "${OPTS[@]}" ;; -b|--browser) hash surfraw >/dev/null 2>&1 || { echo "Requires 'surfraw' installed"; exit 1; } surfraw -browser="$BROWSER" "$(sr -elvi | awk -F'-' '{print $1}' | sed '/:/d' | awk '{$1=$1};1' | rofi -hide-scrollbar -kb-row-select 'Tab' -kb-row-tab 'Control+space' \ -dmenu -mesg 'Tab for Autocomplete' -i -p 'Web Search')" ;; -l|--logout) case "$(rofi -sep "|" -dmenu -i -p 'System' -width 20 -hide-scrollbar \ -line-padding 4 -padding 20 -lines 4 <<< " Lock| Logout| Reboot| Shutdown")" in *Lock) i3lock-fancy ;; *Reboot) systemctl reboot ;; *Shutdown) systemctl -i poweroff ;; *Logout) session-logout >/dev/null 2>&1 || pkill -15 -t tty"$XDG_VTNR" Xorg ;; esac ;; *) printf "\nOption does not exist: %s\n\n" "$arg" exit 2 esac done fi exit 0