Przykład menu napisanego w BASH.

#!/usr/bin/env bash

declare -a menu_list=(
    "Suspend"
    "Reboot"
    "Monitor Off"
    "Pass ROFI"
    "Wyczyść hasło do agenta GPG"
    "Wyczyść historię schowka"
    "CPU GHz"
    "Stan baterii"
    "Edytuj Menu"
)

menu=$(printf '%s\n' "${menu_list[@]}" | rofi -lines 12 -dmenu -i -p "Wybierz coś" "${@}")

[ "$menu" == "Suspend" ] && sudo /usr/bin/systemctl suspend

[ "$menu" == "Reboot" ] && sudo reboot

if [ "$menu" == "Stan baterii" ]; then
    batt=$(upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage")
    rofi -e "$batt"
fi

if [ "$menu" == "Monitor Off" ]; then
    notify-send "Za kilka chwil wyłączę monitor..."
    sleep 1
    xset dpms force off
fi

[ "$menu" == "Wyczyść hasło do agenta GPG" ] && gpg-connect-agent reloadagent /bye

[ "$menu" == "Wyczyść historię schowka" ] && $HOME/bin/clipdel -d ".*"

[ "$menu" == "Pass ROFI" ] && $HOME/bin/passr

check_cpu_exit_status() {
    if [ $? == 0 ]; then
        notify-send "Ustawiłem maksymalną częstotliwość na $1"
    else
        rofi -e "Ustawienie częstotliwości ($1) NIE powiodło się (zmień ustawienia sudo)."
    fi
}

cpu() {
    declare -a cpu_hz=(
        "Max 400"
        "Max 800"
        "Max 1.4"
        "Max 1.8"
        "Max 2.4"
        "Max 3.3"
        "Max 4.0"
    )

    GHZ=$(cpupower frequency-info -f -m|tail -n 1|cut -f 6,7 -d ' ')

    cpu=$(printf '%s\n' "${cpu_hz[@]}" | rofi -dmenu -i -p "Ustaw częstotliwość (teraz: $GHZ)" "${@}")

    if [ "$cpu" == "Max 400" ]; then
        /usr/bin/sudo cpupower frequency-set -u 400000 -g powersave
        check_cpu_exit_status "0.4 GHz"
    fi

    if [ "$cpu" == "Max 800" ]; then
        /usr/bin/sudo cpupower frequency-set -u 800000 -g powersave
        check_cpu_exit_status "0.8 GHz"
    fi

    if [ "$cpu" == "Max 1.4" ]; then
        /usr/bin/sudo cpupower frequency-set -u 1400000 -g powersave
        check_cpu_exit_status "1.4 GHz"
    fi

    if [ "$cpu" == "Max 1.8" ]; then
        /usr/bin/sudo cpupower frequency-set -u 1800000 -g powersave
        check_cpu_exit_status "1.8 GHz"
    fi

    if [ "$cpu" == "Max 2.4" ]; then
        /usr/bin/sudo cpupower frequency-set -u 2400000 -g powersave
        check_cpu_exit_status "2.4 GHz"
    fi

    if [ "$cpu" == "Max 3.3" ]; then
        /usr/bin/sudo cpupower frequency-set -u 3300000 -g powersave
        check_cpu_exit_status "3.3 GHz"
    fi

    if [ "$cpu" == "Max 4.0" ]; then
        /usr/bin/sudo cpupower frequency-set -u 4000000 -g powersave
        check_cpu_exit_status "4.0 GHz"
    fi
}

if [ "$menu" == "CPU GHz" ]; then
    cpu
fi

if [ "$menu" == "Edytuj Menu" ]; then
    st -e vim ~/bin/menu
fi

Menu z listą książek, po wybraniu pozycji, zostaje uruchomiona przeglądarka plików PDF zathura.

#!/usr/bin/env bash

APP=zathura
BOOKS_DIR=~/Books

BOOK="$( cd $BOOKS_DIR; find * -name \*.pdf -print | rofi -dmenu \
        -i -l 20 -matching glob -p "Books ($APP)" )"

if [ -n "$BOOK" ]; then
    $APP $BOOKS_DIR/"$BOOK"
fi

wstecz

Date: 2021-06-27T22:02:46+02:00