Commit a74b23c6 authored by epsi sayidina's avatar epsi sayidina

openbox config

parent 7c68edfa
#!/bin/bash
# bl-compositor: an Openbox Pipe Menu for use with compton compositor
# Copyright (C) 2012 Philip Newborough <corenominal@corenominal.org>
# Copyright (C) 2013 Aleks-Daniel Jakimenko
# Copyright (C) 2015-2018 John Crawley <john@bunsenlabs.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
user_conf="$HOME/.config/compton.conf"
sys_conf='/etc/bunsen/compton-startup'
HELP=" bl-compositor an Openbox Pipe Menu for use with compton compositor
It should normally be called from an openbox menu.
Options (usually passed from the menu):
-h --help show this message
--start start the compositor and restart tint2, if running
--restart restart the compositor, if running, and restart tint2
--stop stop the compositor
--edit open the compton config file in a text editor
--watch restart the compositor whenever the config file is modified
(--watch is useful for debugging)
If bl-compositor is called with no options (the usual method),
it will output an xml openbox pipemenu for handling compositing.
See $user_conf and \"man compton\" for configuration options.
"
# look for a help option somewhere
for i in "$@"
do
case "$i" in
-h|--help)
echo "$HELP"
exit 0
;;
esac
done
RESTART_ATTEMPTS=10 # times to try killall before reverting to -s KILL
BL_COMMON_LIBDIR='/home/epsi/.config/openbox/bin/'
if ! . "$BL_COMMON_LIBDIR/bl-include.cfg" 2> /dev/null; then
echo $"Error: Failed to source bl-include.cfg in $BL_COMMON_LIBDIR" >&2
exit 1
fi
declareDependencies compton
# ------------- Set compton command options ---------------------------
EXECXCOMP='compton'
# Look for system startup file
[[ -r $sys_conf ]] && {
options=()
while read line
do
options+=(${line%%\#*})
done < "$sys_conf"
for i in "${options[@]}"
do
EXECXCOMP+=" $i"
done
}
forcekill_compton() {
for (( i=0; i < RESTART_ATTEMPTS; i++ )); do
killall -q compton
pidof compton > /dev/null || return 0
sleep 0.25
done
killall -q --signal KILL compton
}
if [[ $1 = '--edit' ]]; then # Edit compton settings
[[ ! -f $user_conf ]] &&
cp '/usr/share/doc/compton/examples/compton.sample.conf' "$user_conf"
if hash bl-text-editor;then
bl-text-editor "$user_conf"
else
x-terminal-emulator -T 'edit compton.conf' -e nano "$user_conf"
fi
elif [[ $1 = '--start' ]]; then
if ! pidof compton > /dev/null; then
$EXECXCOMP &
sleep 1
bl-tint2restart || true
else
echo "$0 --start: compton already running" >&2
fi
elif [[ $1 = '--stop' ]]; then
forcekill_compton
bl-tint2restart || true
elif [[ $1 = '--restart' ]]; then
if pidof compton > /dev/null; then
forcekill_compton
"$0" --start
else # nothing to restart
echo "$0 --restart: compton is not running" >&2
fi
elif [[ $1 = '--watch' ]]; then
while inotifywait -e close_write "$user_conf" -e close_write "$sys_conf"; do
"$0" --restart
done
else
# Output Openbox menu
menuStart
if ! pidof compton > /dev/null; then
menuItem 'Enable Compositing' "$0 --start"
else
menuItem 'Restart Compositing' "$0 --restart"
menuItem 'Disable Compositing' "$0 --stop"
menuSeparator
fi
menuItem 'Edit Compositing Settings' "$0 --edit"
if [[ -f "$sys_conf" ]] && hash bl-text-editor; then
menuItem 'Edit Compositing system settings (root)' "pkexec bl-text-editor $sys_conf"
fi
menuEnd
fi
exit 0
#!/bin/bash
# bl-conky-pipemenu - an Openbox pipemenu for manipulating conky
# Copyright (C) 2015 damo <damo@bunsenlabs.org>
# 2016 John Crawley <john@bunsenlabs.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
HELP=' bl-conky-pipemenu an Openbox Pipe Menu for use with conky
It should normally be called from an openbox menu.
Options:
-h --help show this message
If bl-conky-pipemenu is called with no options (the usual method),
it will output an xml openbox pipemenu for handling conky sessions.
See /usr/share/bunsen/docs/helpfile-conkyzen.txt and "man conky"
for more information.
'
# look for a help option somewhere
for i in "$@"
do
case "$i" in
-h|--help)
echo "$HELP"
exit 0
;;
esac
done
BL_COMMON_LIBDIR='/home/epsi/.config/openbox/bin/'
CONKYDEFAULT="$HOME/.conkyrc"
CONKYPATH="$HOME/.config/conky"
CSESSIONFILE="$CONKYPATH/conky-sessionfile"
SESSIONS="$CONKYPATH/saved-sessions"
CZEN="bl-conkyzen"
CSESSION="bl-conky-session"
HELPFILE="/usr/share/bunsen/docs/helpfile-conkyzen.txt"
if ! . "$BL_COMMON_LIBDIR/bl-include.cfg" 2> /dev/null; then
echo "Error: Failed to source bl-include.cfg in $BL_COMMON_LIBDIR" >&2
exit 1
fi
if [ ! -e "$CSESSIONFILE" ] 2> /dev/null ; then
echo "Error: Failed to locate conky-sessionfile in $CONKYPATH" >&2
echo "conky -c $HOME/.conkyrc & sleep 1" > "$CSESSIONFILE"
fi
if [ ! -e "$SESSIONS" ] 2> /dev/null ; then
echo "$0: Failed to locate saved-sessions in $CONKYPATH" >&2
fi
declareDependencies yad
getSessions(){ # read any saved sessions from save-sessions file
menuItem "Default" "$CSESSION $CSESSIONFILE"
if [ -e "$SESSIONS" ]
then
while read -r session ;do
[[ -z $session ]] && continue # skip if line is blank
menuItem "$session" "$CSESSION $session"
done < "$SESSIONS"
else
echo "$0: Failed to locate saved-sessions in $CONKYPATH" >&2
fi
}
loadChooserMenu(){
if type "$CZEN" &>/dev/null;then # bl-conkyzen script found
menuItem "Conky Chooser" "$CZEN"
fi
}
loadNewsessionMenu(){
if type "$CZEN" &>/dev/null;then # bl-conkyzen script found
menuItem "New Conky Session" "$CZEN -z"
fi
}
loadReloadMenu(){
if type "$CSESSION" &>/dev/null;then # bl-conky-session script found
menuItem "Reload Conkys" "$CSESSION"
fi
}
loadSavedsessionSubmenu(){
if type "$CSESSION" &>/dev/null;then # bl-conky-session script found
menuSubmenu "Sessions" "Saved Sessions"
getSessions
menuSubmenuEnd
fi
}
loadPinMenu(){
if type bl-conkypin &>/dev/null;then
menuItem "Pin moveable Conkys" "bl-conkypin"
menuSeparator
fi
}
loadEditMenu(){
menuItem "Default conkyrc" "bl-text-editor $CONKYDEFAULT"
if [[ $(pidof conky) ]];then
menuSubmenu "RunningConky" "Running Conkys"
pgrep -a conky | while read -r pid cmd; do #get running conkys from pgrep
if [[ ${cmd%% *} = conky ]]; then
CPATH=${cmd##* }
CONKY="${CPATH#*.config/}"
if [[ $CPATH = conky ]];then
CPATH="$CONKYDEFAULT"
CONKY="Default conkyrc"
fi
menuItem "$CONKY" "bl-text-editor $CPATH"
fi
done
menuSubmenuEnd
else
menuItem "No Running Conkys"
fi
}
getConkys(){
menuSubmenu "EditConky" "Edit Conkys"
if type bl-conkyedit &>/dev/null;then # bl-conkyedit script found
menuItem "Conky Editor" "bl-conkyedit"
loadEditMenu
else
loadEditMenu
fi
menuSubmenuEnd
}
checkHelpfile(){
DLG="yad --text-info --center --borders=20 \
--title='BunsenLabs Conky Manager Help' \
--window-icon=distributor-logo-bunsenlabs \
--filename=$HELPFILE --fontname=Monospace \
--width=650 --height=700 \
--button=OK:0"
if [[ -e $HELPFILE ]];then
menuItem "Conky Manager Help" "$DLG"
fi
}
menuStart "Conkymenu" "Conky"
loadChooserMenu
loadReloadMenu
getConkys
menuSeparator
loadPinMenu
loadNewsessionMenu
loadSavedsessionSubmenu
menuSeparator
checkHelpfile
menuEnd
#!/bin/bash
# bl-dropbox-pipemenu: an Openbox pipemenu for use with Dropbox
# Copyright (C) 2012 Philip Newborough <corenominal@corenominal.org>
# Copyright (C) 2013 Aleks-Daniel Jakimenko
# Copyright (C) 2015-2016 John Crawley <john@bunsenlabs.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Directory to install the dropbox cli interface, dropbox.py.
# If dropbox.py is in user's $PATH they can use that command
# to control dropbox. Otherwise, use the absolute path /path/to/dropbox.py
USER_DBPY_DIR="$HOME/bin"
USER_DBPY="$USER_DBPY_DIR/dropbox.py"
USERDBDIR="$HOME/.dropbox-dist/"
HELP=' bl-dropbox-pipemenu an Openbox Pipe Menu for use with dropbox
It should normally be called from an openbox menu.
Options:
-h --help show this message
If bl-dropbox-pipemenu is called with no options (the usual method),
it will output an xml openbox pipemenu for installing and using dropbox.
For installation, the dropbox python utility dropbox.py
is downloaded from dropbox and run with the arguments "start -i".
See the dropbox website https://www.dropbox.com and
http://www.dropboxwiki.com/tips-and-tricks/using-the-official-dropbox-command-line-interface-cli
for more information.
'
# look for a help option somewhere
for i in "$@"
do
case "$i" in
-h|--help)
echo "$HELP"
exit 0
;;
esac
done
PROMPT_DELAY_TEXT='It is a good idea to add a delay before autostarting Dropbox
so that your system can establish a working network connection.
Select the number of seconds to delay Dropbox autostarting.
Click "Cancel" to cancel the autostart.'
PROMPT_DELAY_VARIANTS=(FAlSE 0 FALSE 10 FALSE 20 FALSE 30 FALSE 40 FALSE 50 TRUE 60)
BL_COMMON_LIBDIR='/home/epsi/.config/openbox/bin/'
for i in bl-include.cfg yad-includes
do
if ! . "$BL_COMMON_LIBDIR/$i" 2> /dev/null; then
echo "Error: Failed to source $i in $BL_COMMON_LIBDIR" >&2
exit 1
fi
done
declareDependencies wget
yad_common_args+=('--title=Dropbox Installation' '--image=dropbox')
dropbox_is_installed() {
[[ -x "$USERDBDIR/dropboxd" ]] || return 1
return 0
}
get_dropbox.py() {
[[ -e "$USER_DBPY" ]] && {
if [[ -x "$USER_DBPY" ]]; then
return 0
else
{ echo "$0: $USER_DBPY exists but is not executable." >&2; return 1;}
fi
}
mkdir -p "$USER_DBPY_DIR"
notify-send -i dialog-information 'Dropbox Installation' 'Fetching Dropbox frontend dropbox.py...'
wget -O "$USER_DBPY" 'https://www.dropbox.com/download?dl=packages/dropbox.py' || { echo "$0: dropbox.py download failed." >&2; return 1;}
[[ -f "$USER_DBPY" ]] || { echo "$0: $USER_DBPY does not exist." >&2; return 1;}
chmod 755 "$USER_DBPY" || { echo "$0: failed to set permissions on $USER_DBPY" >&2; return 1;}
return 0
}
# --------------------------------------------------------------------
# manipulation
# --------------------------------------------------------------------
if [[ $1 = '--start-dropbox' ]]; then
"$USER_DBPY" start
elif [[ $1 = '--stop-dropbox' ]]; then
"$USER_DBPY" stop
elif [[ $1 = '--install-dropbox' ]]; then
yad_question 'This script will install Dropbox.\nDo you want to proceed?' || exit 0
# use dropbox.py to install dropbox
get_dropbox.py || {
echo "$0: failed to fetch dropbox.py" >&2
yad_error 'Failed to fetch dropbox.py'
exit 1
}
allInstalled python-gpgme || {
yad_question 'We need to install the package python-gpgme.\nDo you want to proceed?' || exit 0
tmpDir=$(mktemp -d)
tmpFile=$(mktemp --tmpdir="$tmpDir")
export tmpFile
installer(){
(
say 'Installing python-gpgme...' 1
connectiontest || return 1
say 'Updating sources...' 1
safeUpdate || say 'Continuing in spite of update problems...' 3
say 'Installing...' 1
safeInstall -y python-gpgme || return 1
say "
python-pgpme has been installed successfully.
Hit any key to continue..."
read -srn1
return 0
)
}
export -f say connectiontest errorExit safeUpdate safeInstall installer
x-terminal-emulator -T 'Installing python-gpgme' -e bash -c 'installer; echo $? > "$tmpFile"'
instRet=$(<$tmpFile)
[[ -d $tmpDir && $tmpDir = /tmp/* ]] && rm -r "$tmpDir"
[[ $instRet -ne 0 ]] && {
echo "$0: failed to install python-gpgme." >&2
yad_error 'Failed to install python-gpgme.'
exit 1
}
}
"$USER_DBPY" start -i
dropbox_is_installed || {
yad_error 'Dropbox installation failed.'
exit 1
}
notify-send -i dialog-information 'Dropbox Installation' 'Dropbox has been installed.'
yad_info "Dropbox CLI frontend dropbox.py has been installed in $USER_DBPY_DIR.
Run '$USER_DBPY help' to view options.
(If $USER_DBPY_DIR is in your PATH, then the path $USER_DBPY_DIR can be omitted.)"
yad_question 'Dropbox can be started automatically when you start your session. Would you like to autostart Dropbox when you login?'
if [[ $? = 0 ]]; then # add to autostart
ans=$(yad --image=dropbox --list --radiolist "${yad_common_args[@]}" --text="$PROMPT_DELAY_TEXT" --print-column=2 --separator='' --column='Pick':RD --column='Seconds:':NUM "${PROMPT_DELAY_VARIANTS[@]}")
if [[ $? = 0 ]]; then
cat <<DRBX >> "$HOME/.config/openbox/autostart"
# Autostart the Dropbox daemon
(sleep ${ans}s; $USER_DBPY start) &
DRBX
fi
fi
yad_question 'Do you wish to start the Dropbox client now?' || exit 0
"$USER_DBPY" start
elif [[ $1 ]]; then
echo "$0: no such option $*" >&2
exit 1
else
# pipemenu stuff
menuStart
if ! dropbox_is_installed; then
menuItem 'Install Dropbox' "$0 --install-dropbox"
else
[[ -d $HOME/Dropbox ]] &&
menuItem 'Open Dropbox Folder' "bl-file-manager $HOME/Dropbox"
if ! pidof dropbox > /dev/null; then
menuItem 'Start Dropbox' "$0 --start-dropbox"
else
menuItem 'Stop Dropbox' "$0 --stop-dropbox"
fi
menuSeparator
menuItem 'Launch Dropbox Website' 'x-www-browser https://www.dropbox.com/home'
fi
menuItem 'Dropbox Terms' 'x-www-browser https://www.dropbox.com/terms'
menuEnd
fi
exit 0
#!/bin/bash
# bl-graphics-pipemenu - an Openbox pipemenu for Graphics applications
# Copyright (C) 2012 Philip Newborough <corenominal@corenominal.org>
# Copyright (C) 2015-2016 damo <damo@bunsenlabs.org>
# Copyright (C) 2015-2017 John Crawley <john@bunsenlabs.org>
# Copyright (C) 2016 Jens John <dev@2ion.de>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# To add to the entries shown in the Graphics pipemenu:
# edit ".config/openbox/pipemenus.rc"
HELP=' bl-graphics-pipemenu an Openbox Pipe Menu for graphics applications
It should normally be called from an openbox menu.
Options (usually passed from the menu):
-h --help show this message
--install install a graphics-related package
(the package must be in the list defined in the pipemenu config file
or in the default list in this file)
If bl-graphics-pipemenu is called with no options (the usual method),
it will output an xml openbox pipemenu
for launching and installing graphics applications.
See ~/.config/openbox/pipemenus.rc for configuration options.
'
# default apps lists
# user lists in ~/.config/openbox/pipemenus.rc will be merged
DEF_GRAPHICS_APPS=( 'mirage' 'viewnior' 'gpicview' 'ristretto' 'geeqie' 'gimp' 'blender' 'inkscape' 'mandelbulber2' )
DEF_GRAPHICS_SCROTS=('xfce4-screenshooter' 'scrot' )
# associative array: commands which are different from package names
declare -A pkg_cmd
pkg_cmd=()
########################################################################
# look for a help option somewhere
for i in "$@"
do
case "$i" in
-h|--help)
echo "$HELP"
exit 0
;;
esac
done
BL_COMMON_LIBDIR='/home/epsi/.config/openbox/bin/'
USR_CFG_DIR="$HOME/.config/openbox"
# Get $USER images directory
if type xdg-user-dir &>/dev/null; then
IMGDIR=$(xdg-user-dir PICTURES)
else
IMGDIR="~/Pictures"
fi
# test for screenshots dir, create if it doesn't exist
SCROTSDIR="$IMGDIR/screenshots"
mkdir -p "$SCROTSDIR"
# user_package_commands might be in $USR_CFG_DIR/pipemenus.rc
declare -A user_package_commands AppName AppStatus AppCmd
if ! . "$BL_COMMON_LIBDIR/bl-include.cfg" 2> /dev/null; then
echo $"Error: Failed to source bl-include.cfg in $BL_COMMON_LIBDIR" >&2
exit 1
fi
if ! . "$USR_CFG_DIR/pipemenus.rc" 2> /dev/null; then
echo $"Failed to source pipemenus.rc in $USR_CFG_DIR" >&2
fi
# add any user-specified commands, overwriting defaults if set
for i in "${!user_package_commands[@]}"
do
[[ -n ${user_package_commands[$i]} ]] || continue
pkg_cmd[$i]="${user_package_commands[$i]}"
done
# get BL alternatives viewer
bl_iv_cmd=$(readlink -f /usr/bin/bl-image-viewer)
bl_iv_cmd="${bl_iv_cmd##*/}"
BL_VIEWER=
for i in "${DEF_GRAPHICS_APPS[@]}" "${GRAPHICS_APPS[@]-}"
do
[[ ${pkg_cmd[$i]:-$i} = "$bl_iv_cmd" ]] && {
BL_VIEWER=$i
# AppName: split on hyphens, first letter uppercase
words=(${i//-/ })
AppName[$i]="${words[*]^} Image Viewer"
break
}
done
# remove duplicate, and null, values of array passed as $1, keep order
nodups(){
local -A check
local -n target_array="$1"
for i in "${!target_array[@]}"
do
local value="${target_array[$i]}"
if [[ -z $value || ${check[$value]+x} = x ]]
then
unset target_array[$i]
else
check[$value]=1
fi
done
}
# if this function is removed the version in bl-include.cfg will be used
#allInstalled(){
# local list="/var/lib/dpkg/info/${1}.list"
# [[ -f "${list}" ]] || return 1
# grep -Evq '^/etc($|/)' "${list}" || return 1
# return 0
#}
GRAPHICS_APPS=( "$BL_VIEWER" "${GRAPHICS_APPS[@]-}" "${DEF_GRAPHICS_APPS[@]}" )
GRAPHICS_SCROTS=( "${GRAPHICS_SCROTS[@]-}" "${DEF_GRAPHICS_SCROTS[@]}" )
for i in GRAPHICS_APPS GRAPHICS_SCROTS
do
nodups "$i"
done
for curApp in "${GRAPHICS_APPS[@]}" "${GRAPHICS_SCROTS[@]}"; do
words=(${curApp//-/ })
AppName[$curApp]="${AppName[$curApp]:-${words[*]^}}"
AppCmd[$curApp]="${pkg_cmd[$curApp]:-$curApp}" # use packagename as command if not defined in pkg_cmd
hash "${AppCmd[$curApp]}" 2>/dev/null && AppStatus[$curApp]='installed' || AppStatus[$curApp]=''
done
appExists() {
for curApp in "${GRAPHICS_APPS[@]}"; do # if $packageName exists in GRAPHICS_APPS array
[[ $curApp = "$1" ]] &&
return 0
done
say "Unable to install $1. There is no such application that I know of." 1 >&2
say "You can try one of these: ${GRAPHICS_APPS[*]}" 2 >&2
return 1
}
screenshooterExists() {
for curScrot in "${GRAPHICS_SCROTS[@]}"; do # if $packageName exists in GRAPHICS_SCROTS array
[[ $curScrot = "$1" ]] &&
return 0
done
say "Unable to install $1. There is no such application that I know of." 1 >&2
say "You can try one of these: ${GRAPHICS_SCROTS[*]}" 2 >&2
return 1
}
writeScrot() { # Write scrot submenu items
IMG="$SCROTSDIR/%F-%H-%M-%S_scrot.png"
VIEW="'bl-image-viewer $IMG'"
menuSubmenu 'scrot' 'scrot Screenshooter'
menuItem "scrot Now" "scrot $IMG -e $VIEW"
menuItem "scrot In 5 secs..." "scrot -d 5 $IMG -e $VIEW"
menuItem "scrot In 10 secs..." "scrot -d 10 $IMG -e $VIEW"
menuItem "scrot Select Area" "scrot -s $IMG -e $VIEW"
menuItem "scrot Current Focus" "scrot -u $IMG -e $VIEW"
menuItem "scrot Multi-Monitor" "scrot -m $IMG -e $VIEW"
menuSubmenuEnd
}
# If the package needs additional configuration before installation
# create a function called setupappName, it will be called automatically.
if [[ $1 = --install ]]; then
packageName=$2
appName=${AppName[$packageName]}
if [[ $packageName = scrot || $packageName = xfce4-screenshooter ]];then
screenshooterExists "$packageName" || exit 1
else
appExists "$packageName" || exit 1
fi
terminalCheck -T "Install $appName" "$@"
desc="This script will install $appName."
setupFunctionName="setup${appName//[^a-zA-Z]/}" # setupFunctionName should now be in format like 'setupBlender'
if [[ $(type -t "$setupFunctionName") = 'function' ]]; then
promptInstall --setup "$setupFunctionName" "$appName" "$desc" "$packageName"
else
if [[ $packageName = gimp ]] && prompt 'This will install GIMP. Do you also want to install Gimp Extras?' N; then
appName="Gimp and Gimp Extras"
packageNameSet=(gimp gimp-plugin-registry gimp-gmic)
desc="This script will install gimp, gimp-plugin-registry and gimp-gmic"
promptInstall "$appName" "$desc" "${packageNameSet[@]}"
else
promptInstall "$appName" "$desc" "$packageName"
fi
fi
elif [[ $1 ]]; then
echo "$0: no such option $*" >&2
exit 1
else # pipemenu
menuStart
for curApp in "${GRAPHICS_APPS[@]}"; do
if [[ ${AppStatus[$curApp]} = installed ]]; then
menuItem "${AppName[$curApp]}" "${AppCmd[$curApp]}"
fi
done
scrots_section_started=false