Niri-basierter Wayland-Desktop mit greetd/regreet, Catppuccin Mocha Theming, Rofi-Menus, Waybar und vollstaendiger Post-Install-Automatisierung. Archinstall-Config klont das Repo automatisch via custom-commands, danach genuegt ein einzelner Befehl fuer die komplette Einrichtung.
143 lines
3.6 KiB
Bash
Executable File
143 lines
3.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# ABOUTME: Rofi-based tool launcher that provides a searchable menu of system utilities.
|
|
# ABOUTME: Includes VPN, sound, bluetooth, shortcuts, and other system management tools.
|
|
|
|
declare -A LABELS
|
|
declare -A COMMANDS
|
|
|
|
###
|
|
# List of defined 'bangs'
|
|
|
|
# launch programs
|
|
# COMMANDS["apps"]="rofi -combi-modi window,drun -show combi"
|
|
# LABELS["apps"]=""
|
|
|
|
# open bookmarks
|
|
# COMMANDS["bookmarks"]="~/.scripts/rofi-scripts-collection/rofi-surfraw-bookmarks.sh"
|
|
# LABELS["bookmarks"]=""
|
|
|
|
# search local files
|
|
COMMANDS[""]="moonarch-locate"
|
|
LABELS[""]="Locate"
|
|
|
|
COMMANDS[""]="wlogout -P 1 -s -r 10 -c 10"
|
|
LABELS[""]="Session Menu"
|
|
|
|
# open custom web searches
|
|
# COMMANDS["websearch"]="~/.scripts/rofi-scripts-collection/rofi-surfraw-websearch.sh"
|
|
# LABELS["websearch"]=""
|
|
|
|
# show clipboard history
|
|
# source: https://bitbucket.org/pandozer/rofi-clipboard-manager/overview
|
|
# COMMANDS["clipboard"]='rofi -modi "clipboard:~/.bin/rofi-clipboard-manager/mclip.py menu" -show clipboard && ~/.bin/rofi-clipboard-manager/mclip.py paste'
|
|
# LABELS["clipboard"]=""
|
|
|
|
# references --------------------------
|
|
# COMMANDS[";sr2"]="chromium 'wikipedia.org/search-redirect.php?search=\" \${input}\""
|
|
# LABELS[";sr2"]=""
|
|
|
|
# COMMANDS[";piratebay"]="chromium --disk-cache-dir=/tmp/cache http://thepiratebay.org/search/\" \${input}\""
|
|
# LABELS[";piratebay"]=""
|
|
|
|
# COMMANDS[".bin"]="spacefm -r '/home/dka/bin'"
|
|
# LABELS[".bin"]=".bin"
|
|
|
|
# COMMANDS["#screenshot"]='/home/dka/bin/screenshot-scripts/myscreenshot.sh'
|
|
# LABELS["#screenshot"]="screenshot"
|
|
|
|
# greenclip clipboard history
|
|
# source: https://github.com/erebe/greenclip
|
|
COMMANDS[""]='rofi -modi "clipboard:greenclip print" -show Clipboard'
|
|
LABELS[""]="Clipboard"
|
|
|
|
COMMANDS[""]='moonarch-vpn'
|
|
LABELS[""]='VPN Connection Manager'
|
|
|
|
COMMANDS[""]='moonarch-volume'
|
|
LABELS[""]='Sound Manager'
|
|
|
|
#COMMANDS[""]='shortcuts module was removed'
|
|
#LABELS[""]='Hotkey List'
|
|
|
|
COMMANDS[""]='wdisplays'
|
|
LABELS[""]='Display Setup'
|
|
|
|
COMMANDS[""]='nwg-look'
|
|
LABELS[""]='Appearance Settings'
|
|
|
|
COMMANDS[""]='noisetorch'
|
|
LABELS[""]='Audio Noise Reduction'
|
|
|
|
COMMANDS[""]='$HOME/.local/share/headset-charge-indicator/headset-charge-indicator.py &'
|
|
LABELS[""]='Headset Control'
|
|
|
|
COMMANDS[""]='moonarch-bluetooth'
|
|
LABELS[""]='Bluetooth Control'
|
|
|
|
COMMANDS[""]='nm-applet --indicator &'
|
|
LABELS[""]='Networker Manager'
|
|
|
|
COMMANDS[""]='wl-color-picker'
|
|
LABELS[""]='Color Picker'
|
|
|
|
COMMANDS[""]='font-manager'
|
|
LABELS[""]='Font Manager'
|
|
|
|
COMMANDS[""]='gufw'
|
|
LABELS[""]='Firewall Settings'
|
|
|
|
COMMANDS[""]='stacer'
|
|
LABELS[" "]='System Maintenance'
|
|
|
|
|
|
################################################################################
|
|
# 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 | rofi -dmenu -p "?=>"
|
|
print_menu | sort | rofi -show "Tools" -dmenu -mesg " Tools" -i -p "rofi-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
|
|
${COMMANDS[$choice]}
|
|
else
|
|
echo "Unknown command: ${choice}" | rofi -dmenu -p "error"
|
|
fi
|