11#! /bin/bash
22# functions
3+ fatal () {
4+ zenity --error --title " Fatal Error" --text " $1 " --height=300 --width=300
5+ exit 1
6+ }
7+
8+ # sudo request
9+ sudo_rq () {
10+ zenity --password | sudo -Sv || fatal " Wrong password. Do you have sudo?"
11+ }
312
413# updater
5- current_ltver=" 3.2 "
14+ current_ltver=" 4.3 "
615ver_upd () {
716 local ver
817 ver=$( curl -s https://raw.githubusercontent.com/psygreg/linuxtoys/refs/heads/main/src/ver)
918 if [[ " $ver " != " $current_ltver " ]]; then
10- if whiptail --title " $msg001 " --yesno " $msg002 " 8 78; then
11- local title=" $msg001 "
12- local msg=" $msg157 "
13- _msgbox_
19+ if zenity --question --title " $msg001 " --text " $msg002 " --width 300 --height 300; then
20+ zeninf " $msg157 "
1421 xdg-open https://github.com/psygreg/linuxtoys/releases/latest
1522 fi
1623 fi
@@ -20,53 +27,59 @@ ver_upd () {
2027# check internet connection
2128# ping google
2229. /etc/os-release
23- wget -q -O - " https://raw.githubusercontent.com/psygreg/linuxtoys/refs/heads/main/README.md" > /dev/null || { whiptail --title " Disconnected " --msgbox " LinuxToys requires an internet connection to proceed." 8 78 ; exit 1 ; }
30+ wget -q -O - " https://raw.githubusercontent.com/psygreg/linuxtoys/refs/heads/main/README.md" > /dev/null || fatal " LinuxToys requires an internet connection to proceed."
2431# call linuxtoys turbobash lib
25- source <( curl -s https://raw.githubusercontent.com/psygreg/linuxtoys/refs/heads/main/src/linuxtoys.lib)
32+ sleep 1
33+ source linuxtoys.lib
2634# logger
2735logfile=" $HOME /.local/linuxtoys-log.txt"
2836_log_
2937# language and upd checks
3038_lang_
31- source <( curl -s https://raw.githubusercontent.com/psygreg/linuxtoys/refs/heads/main/src/lang/${langfile} )
39+ source ${langfile}
40+ sleep 1
3241ver_upd
42+ sudo_rq
3343
3444# main menu
35- while : ; do
45+ while true ; do
3646
37- CHOICE=$( whiptail --title " LinuxToys" --menu " LinuxToys ${current_ltver} " 25 78 16 \
38- " 0" " $msg120 " \
39- " 1" " $msg121 " \
40- " 2" " $msg122 " \
41- " 3" " ${msg123} *" \
42- " 4" " ${msg143} *" \
43- " 5" " $msg227 " \
44- " 6" " $msg199 " \
45- " " " " \
46- " " " " \
47- " 8" " $msg124 " \
48- " 9" " GitHub" \
49- " 10" " $msg059 " 3>&1 1>&2 2>&3 )
47+ CHOICE=$( zenity --list --title " LinuxToys" \
48+ --column=" $msg274 " \
49+ " $msg120 " \
50+ " $msg121 " \
51+ " $msg122 " \
52+ " ${msg123} " \
53+ " ${msg143} " \
54+ " $msg227 " \
55+ " $msg199 " \
56+ " $msg279 " \
57+ " " \
58+ " $msg124 " \
59+ " Wiki" \
60+ " ${msg275} " \
61+ " $msg059 " \
62+ --height=530 --width=360)
5063 # "7" "UniWine" \ -- disabled option
5164
52- exitstatus=$?
53- if [ $exitstatus != 0 ]; then
54- # Exit the script if the user presses Esc
55- find " $HOME " -maxdepth 1 -type f -name ' *supermenu.sh' -exec rm -f {} + && break
56- fi
65+ if [ $? -ne 0 ]; then
66+ find " $HOME " -maxdepth 1 -type f -name ' *.sh' -exec rm -f {} + && break
67+ fi
5768
5869 case $CHOICE in
59- 0) supmenu=" usupermenu" && _invoke_ ;;
60- 1) supmenu=" osupermenu" && _invoke_ ;;
61- 2) supmenu=" gsupermenu" && _invoke_ ;;
62- 3) supmenu=" esupermenu" && _invoke_ ;;
63- 4) supmenu=" dsupermenu" && _invoke_ ;;
64- 5) subscript=" pdefaults" && _invoke_ ;;
65- 6) supmenu=" csupermenu" && _invoke_ ;;
70+ " $msg120 " ) supmenu=" usupermenu" && _invoke_ ;;
71+ " $msg121 " ) supmenu=" osupermenu" && _invoke_ ;;
72+ " $msg122 " ) supmenu=" gsupermenu" && _invoke_ ;;
73+ " ${msg123} " ) supmenu=" esupermenu" && _invoke_ ;;
74+ " ${msg143} " ) supmenu=" dsupermenu" && _invoke_ ;;
75+ " $msg227 " ) subscript=" pdefaults" && _invoke_ ;;
76+ " $msg199 " ) supmenu=" csupermenu" && _invoke_ ;;
77+ " $msg279 " ) subscript=" psypicks" && _invoke_ ;;
6678 # 7) subscript="uniwine" && _invoke_ ;; -- disabled option
67- 8) whiptail --title " LinuxToys v${current_ltver} " --msgbox " $msg125 " 8 78 ;;
68- 9) xdg-open https://github.com/psygreg/linuxtoys ;;
69- 10 | q) break ;;
79+ " $msg124 " ) zeninf " $msg125 " ;;
80+ " Wiki" ) xdg-open https://github.com/psygreg/linuxtoys/wiki ;;
81+ " ${msg275} " ) xdg-open https://ko-fi.com/psygreg ;;
82+ " $msg059 " ) break ;;
7083 * ) echo " Invalid Option" ;;
7184 esac
7285done
0 commit comments