From 3e552b51ed30a8a7fe81d711d400371958bd084e Mon Sep 17 00:00:00 2001 From: zenobit Date: Thu, 9 Feb 2023 07:57:23 +0100 Subject: [PATCH 01/44] Added: quickfzf 0.2 --- quickfzf | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 quickfzf diff --git a/quickfzf b/quickfzf new file mode 100755 index 0000000000..55d2bb5ca1 --- /dev/null +++ b/quickfzf @@ -0,0 +1,66 @@ +#!/usr/bin/bash + +# Author: zenobit +# Description: Uses fzf to provide a simple GUI for quickemu and quickget +# script must be in same directory as quickget and quickemu! +# License MIT +# +progname="${progname:="${0##*/}"}" +version="0.2" +if [ ! -f /usr/bin/fzf ]; then + echo "You are missing fzf..." + exit 255 +fi +echo +echo "Enjoy using quickemu!" +echo +echo "Press ctrl + c anytime for killing script..." +echo +echo "Prepared VMs:" +echo "-------------" +echo "$(ls *.conf 2>/dev/null | cut -d'.' -f1)" +echo "-------------" +echo +read -p "Do you want to create new VM? (c) +run created one? (just Enter)" start +case $start in + c ) + todo="create" + ;; +esac +if [ "$todo" = "create" ]; then + os=$(quickget | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' | fzf) + if [ "$os" = windows ]; then + answer=$(echo "Default English +Choose other language" | fzf) + if [ "$answer" = "Choose other language" ]; then + release=$(echo "8 +10 +11" | fzf) + wlstart=$(cat quickget | grep -n '(A' | cut -d':' -f1) + wlend=$(($(cat quickget | sed '/Arabic/,$!d' | grep -n '}' | cut -d':' -f1 | head -n 1) - 1)) + wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf) + echo + echo "Trying to download..." + quickget "windows" "$release" "$wlang" + fi + fi + choices=$(quickget "$os" | sed 1d) + if [ $(echo "$choices" | wc -l) = 1 ]; then + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) + echo + echo "Trying to download..." + quickget "$os" "$release" + else + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) + edition=$(echo "$choices" | grep 'Editions' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) + echo + echo "Trying to download..." + quickget "$os" "$release" "$edition" + fi +fi +choosed=$(echo "$(ls *.conf 2>/dev/null)" | fzf) +echo +quickemu -vm "$choosed" +echo +exit 0 From 9bc00bf0f8d89a9e67c1da8ca339b286f150f8c8 Mon Sep 17 00:00:00 2001 From: zenobit Date: Sat, 11 Feb 2023 19:03:09 +0100 Subject: [PATCH 02/44] quickfzf 0.21 --- quickfzf | 100 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 65 insertions(+), 35 deletions(-) diff --git a/quickfzf b/quickfzf index 55d2bb5ca1..193e88d5e3 100755 --- a/quickfzf +++ b/quickfzf @@ -4,63 +4,93 @@ # Description: Uses fzf to provide a simple GUI for quickemu and quickget # script must be in same directory as quickget and quickemu! # License MIT -# + +# Define variables progname="${progname:="${0##*/}"}" -version="0.2" -if [ ! -f /usr/bin/fzf ]; then - echo "You are missing fzf..." - exit 255 +version="0.21" +vms=(*.conf) + +# Set traps to catch the signals and exit gracefully +trap "exit" INT +trap "exit" EXIT + +# Dependency check: check if fzf is installed and can be executed +if ! command -v fzf >/dev/null 2>&1; then + echo "You are missing fzf..." && exit 255 fi -echo -echo "Enjoy using quickemu!" -echo -echo "Press ctrl + c anytime for killing script..." -echo -echo "Prepared VMs:" -echo "-------------" -echo "$(ls *.conf 2>/dev/null | cut -d'.' -f1)" +# Dispaly version and prepared VMs +#printf " $progname: $version\n quickemu: $(quickemu --version)\n\n Prepared VMs:\n-------------\n" +printf '%s: v.%s\nquickemu: v.%s\n\n Prepared VMs:\n-------------\n' "$progname" "$version" "$(quickemu --version)" +# Check if there are any VMs +if [ ${#vms[@]} -eq 0 ]; then + echo "No VMs found." + exit 1 +fi + +# Print the names of the available VMs +printf "%s\n" "${vms[@]%.*}" echo "-------------" -echo -read -p "Do you want to create new VM? (c) -run created one? (just Enter)" start + +# Action prompt +printf " Do you want to create a new VM? (c) + or run an existing one? (press anything)\n" +read -rn 1 -s start case $start in c ) todo="create" ;; esac + +# If the user chose to create a new VM if [ "$todo" = "create" ]; then - os=$(quickget | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' | fzf) + os=$(quickget | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose OS to download + or CTRL-c or ESC to quit') + # If the OS is Windows if [ "$os" = windows ]; then answer=$(echo "Default English Choose other language" | fzf) + # If the user wants another windows language if [ "$answer" = "Choose other language" ]; then - release=$(echo "8 + wrelease=$(echo "8 10 11" | fzf) - wlstart=$(cat quickget | grep -n '(A' | cut -d':' -f1) + # get window language list wlend=$(($(cat quickget | sed '/Arabic/,$!d' | grep -n '}' | cut -d':' -f1 | head -n 1) - 1)) - wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf) - echo - echo "Trying to download..." - quickget "windows" "$release" "$wlang" + # get windows language + wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf --header='Choose Language + or CTRL-c or ESC to quit') + # downloading windows + printf '\n Trying to download Windows %s %s...\n\n' "$wrelease" "$wlang" + quickget "windows" "$wrelease" "$wlang" fi fi + # Get the release and edition to download, if necessary choices=$(quickget "$os" | sed 1d) - if [ $(echo "$choices" | wc -l) = 1 ]; then - release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) - echo - echo "Trying to download..." + if [ "$(echo "$choices" | wc -l)" = 1 ]; then + # get release + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Release + or CTRL-c or ESC to quit') + # downloading + printf '\n Trying to download %s %s...\n\n' "$os" "$release" quickget "$os" "$release" else - release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) - edition=$(echo "$choices" | grep 'Editions' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) - echo - echo "Trying to download..." + # get release + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Release + or CTRL-c or ESC to quit') + # get edition + edition=$(echo "$choices" | grep 'Editions' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Edition + or CTRL-c or ESC to quit') + # downloading + printf '\n Trying to download %s %s %s...\n\n' "$os" "$release" "$edition" quickget "$os" "$release" "$edition" fi fi -choosed=$(echo "$(ls *.conf 2>/dev/null)" | fzf) -echo -quickemu -vm "$choosed" -echo +# choose VM to run +choosed=$(echo "$(ls *.conf 2>/dev/null | sed 's/\.conf$//')" | fzf --header='Choose VM to run + or CTRL-c or ESC to quit') + +# Run choosed VM +printf '\n Starting %s...\n\n' "$choosed" +quickemu -vm "$choosed.conf" + exit 0 From 04ad7be002870e3c9253d07ac2bbf47cea419b51 Mon Sep 17 00:00:00 2001 From: zenobit Date: Thu, 2 Mar 2023 03:36:45 +0100 Subject: [PATCH 03/44] fzf --cycle --- quickfzf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/quickfzf b/quickfzf index 193e88d5e3..f1fe1750f8 100755 --- a/quickfzf +++ b/quickfzf @@ -43,21 +43,21 @@ esac # If the user chose to create a new VM if [ "$todo" = "create" ]; then - os=$(quickget | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose OS to download + os=$(quickget | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose OS to download or CTRL-c or ESC to quit') # If the OS is Windows if [ "$os" = windows ]; then answer=$(echo "Default English -Choose other language" | fzf) +Choose other language" | fzf --cycle) # If the user wants another windows language if [ "$answer" = "Choose other language" ]; then wrelease=$(echo "8 10 -11" | fzf) +11" | fzf --cycle) # get window language list wlend=$(($(cat quickget | sed '/Arabic/,$!d' | grep -n '}' | cut -d':' -f1 | head -n 1) - 1)) # get windows language - wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf --header='Choose Language + wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf --cycle --header='Choose Language or CTRL-c or ESC to quit') # downloading windows printf '\n Trying to download Windows %s %s...\n\n' "$wrelease" "$wlang" @@ -68,17 +68,17 @@ Choose other language" | fzf) choices=$(quickget "$os" | sed 1d) if [ "$(echo "$choices" | wc -l)" = 1 ]; then # get release - release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Release + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose Release or CTRL-c or ESC to quit') # downloading printf '\n Trying to download %s %s...\n\n' "$os" "$release" quickget "$os" "$release" else # get release - release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Release + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose Release or CTRL-c or ESC to quit') # get edition - edition=$(echo "$choices" | grep 'Editions' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Edition + edition=$(echo "$choices" | grep 'Editions' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose Edition or CTRL-c or ESC to quit') # downloading printf '\n Trying to download %s %s %s...\n\n' "$os" "$release" "$edition" @@ -86,7 +86,7 @@ Choose other language" | fzf) fi fi # choose VM to run -choosed=$(echo "$(ls *.conf 2>/dev/null | sed 's/\.conf$//')" | fzf --header='Choose VM to run +choosed=$(echo "$(ls *.conf 2>/dev/null | sed 's/\.conf$//')" | fzf --cycle --header='Choose VM to run or CTRL-c or ESC to quit') # Run choosed VM From af1c8d5b04e5696420a3289bd8987334a7a4cf6a Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 1 Mar 2023 07:55:54 +0100 Subject: [PATCH 04/44] F-Void --- quickget | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/quickget b/quickget index b03b5ab02d..6bdf1de4f7 100755 --- a/quickget +++ b/quickget @@ -43,6 +43,7 @@ function pretty_name() { endeavouros) PRETTY_NAME="EndeavourOS";; freebsd) PRETTY_NAME="FreeBSD";; freedos) PRETTY_NAME="FreeDOS";; + fvoid) PRETTY_NAME="F-Void";; garuda) PRETTY_NAME="Garuda Linux";; ghostbsd) PRETTY_NAME="GhostBSD";; kdeneon) PRETTY_NAME="KDE Neon";; @@ -182,6 +183,7 @@ function os_support() { fedora \ freebsd \ freedos \ + fvoid \ garuda \ gentoo \ ghostbsd \ @@ -348,6 +350,10 @@ function releases_freedos() { echo 1.2 1.3 } +function releases_fvoid() { + echo latest +} + function releases_garuda() { echo latest } @@ -1159,6 +1165,16 @@ function get_freedos() { echo "${URL}/${ISO} ${HASH}" } +function get_fvoid() { + local HASH="" + local URL="" + local TMPURL="" + + TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/f-void/files/latest/download" 2>&1 | grep -i Location | cut -d' ' -f4) + URL=${TMPURL%\?*} + echo "${URL} ${HASH}" +} + function get_garuda() { local EDITION="${1:-}" local HASH="" From 6d545c5f831951fb19995a9cded1ec1179f42487 Mon Sep 17 00:00:00 2001 From: zenobit Date: Sun, 5 Mar 2023 04:24:26 +0100 Subject: [PATCH 05/44] VoidPup --- quickget | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/quickget b/quickget index 6bdf1de4f7..daa7a4c7f3 100755 --- a/quickget +++ b/quickget @@ -71,6 +71,7 @@ function pretty_name() { ubuntustudio) PRETTY_NAME="Ubuntu Studio";; ubuntu-unity) PRETTY_NAME="Ubuntu Unity";; void) PRETTY_NAME="Void Linux";; + voidpup) PRETTY_NAME="Void Puppy";; zorin) PRETTY_NAME="Zorin OS";; *) PRETTY_NAME="${SIMPLE_NAME^}";; esac @@ -221,6 +222,7 @@ function os_support() { ubuntustudio \ ubuntu-unity \ void \ + voidpup \ windows \ xubuntu \ zorin @@ -612,6 +614,10 @@ function editions_void() { echo glibc musl xfce-glibc xfce-musl } +function releases_voidpup() { + echo latest +} + function releases_windows() { echo 8 10 11 } @@ -1618,6 +1624,16 @@ function get_void() { echo "${URL}/${ISO} ${HASH}" } +function get_voidpup() { + local HASH="" + local URL="" + local TMPURL="" + + TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/vpup/files/latest/download" 2>&1 | grep -i Location | cut -d' ' -f4) + URL=${TMPURL%\?*} + echo "${URL} ${HASH}" +} + function get_zorin() { local EDITION="${1:-}" local HASH="" From bc2f4da7f9200a8e7ca33a04fe5a639e27b53098 Mon Sep 17 00:00:00 2001 From: zenobit Date: Tue, 7 Mar 2023 01:31:42 +0100 Subject: [PATCH 06/44] XeroLinux --- quickget | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/quickget b/quickget index daa7a4c7f3..671c4794f5 100755 --- a/quickget +++ b/quickget @@ -72,6 +72,7 @@ function pretty_name() { ubuntu-unity) PRETTY_NAME="Ubuntu Unity";; void) PRETTY_NAME="Void Linux";; voidpup) PRETTY_NAME="Void Puppy";; + xerolinux) PRETTY_NAME="XeroLinux";; zorin) PRETTY_NAME="Zorin OS";; *) PRETTY_NAME="${SIMPLE_NAME^}";; esac @@ -224,6 +225,7 @@ function os_support() { void \ voidpup \ windows \ + xerolinux \ xubuntu \ zorin } @@ -663,6 +665,10 @@ function languages_windows() { Ukrainian) } +function releases_xerolinux() { + echo kde +} + function releases_zorin() { echo 16 } @@ -1634,6 +1640,16 @@ function get_voidpup() { echo "${URL} ${HASH}" } +function get_xerolinux() { + local HASH="" + local URL="" + local ISO="xerolinux-2022.12-x86_64.iso" + local URL="https://sourceforge.net/projects/xerolinux/files/Releases" + + HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + function get_zorin() { local EDITION="${1:-}" local HASH="" From 52f6443ba49b6ce997254feb55487c2f67b13f2b Mon Sep 17 00:00:00 2001 From: zenobit Date: Tue, 7 Mar 2023 03:13:22 +0100 Subject: [PATCH 07/44] AgarimOS --- quickget | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/quickget b/quickget index 671c4794f5..aa596434da 100755 --- a/quickget +++ b/quickget @@ -30,6 +30,7 @@ function pretty_name() { local PRETTY_NAME="" SIMPLE_NAME="${1}" case ${SIMPLE_NAME} in + agarimos) PRETTY_NAME="AgarimOS";; alma) PRETTY_NAME="Alma Linux";; alpine) PRETTY_NAME="Alpine Linux";; android) PRETTY_NAME="Android x86";; @@ -167,7 +168,8 @@ function list_csv() { } function os_support() { - echo alma \ + echo agarimos \ + alma \ alpine \ android \ archlinux \ @@ -230,6 +232,10 @@ function os_support() { zorin } +function releases_agarimos() { + echo 20230305 20230303 20230225 20230216 +} + function releases_alma() { echo 8.6 8.7 9.0 9.1 } @@ -913,6 +919,34 @@ EOF exit 0 } +function get_agarimos() { + local EDITION="${1:-}" + local HASH="" + local ISO="" + local URL="" + case ${RELEASE} in + 20230305) + URL="https://sourceforge.net/projects/agarimos/files/Gnome" + ISO="AgarimOS-Gnome-Catppuccin-Live-x86_64-6.1.14_1-20230305.iso" + ;; + 20230303) + URL="https://sourceforge.net/projects/agarimos/files/Plasma" + ISO="AgarimOS-Plasma-Dracula-Live-x86_64-6.1.14_1-20230303.iso" + ;; + 20230225) + URL="https://sourceforge.net/projects/agarimos/files/XFCE4" + ISO="AgarimOS-XFCE4-Catppuccin-Live-x86_64-6.1.12_1-20230216.iso" + ;; + 20230216) + URL="https://sourceforge.net/projects/agarimos/files/XFCE4" + ISO="AgarimOS-XFCE4-Catppuccin-Live-6.1.13_1-20230225.iso" + ;; + esac + + HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + function get_alma() { local EDITION="${1:-}" local HASH="" From ac0b1211f977d41884305d87095d296a49e9892e Mon Sep 17 00:00:00 2001 From: zenobit Date: Mon, 6 Mar 2023 22:41:32 +0100 Subject: [PATCH 08/44] SteamOS --- quickget | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/quickget b/quickget index aa596434da..0a6e1df73c 100755 --- a/quickget +++ b/quickget @@ -64,6 +64,7 @@ function pretty_name() { reactos) PRETTY_NAME="ReactOS";; rebornos) PRETTY_NAME="RebornOS";; rockylinux) PRETTY_NAME="Rocky Linux";; + steamos) PRETTY_NAME="SteamOS HoloISO";; truenas-core) PRETTY_NAME="TrueNAS Core";; truenas-scale) PRETTY_NAME="TrueNAS Scale";; ubuntu-budgie) PRETTY_NAME="Ubuntu Budgie";; @@ -215,6 +216,7 @@ function os_support() { rockylinux \ slackware \ solus \ + steamos \ tails \ truenas-core \ truenas-scale \ @@ -523,6 +525,10 @@ function editions_solus() { echo Budgie GNOME MATE Plasma } +function releases_steamos() { + echo 4.0 +} + function releases_tails() { echo stable } @@ -1564,6 +1570,16 @@ function get_solus() { echo "${URL}/${ISO} ${HASH}" } +function get_steamos() { + local HASH="" + local DATE="20221211" + local ISO="HoloISO_${RELEASE}_OfflineInstaller-${DATE}_1636-x86_64.iso" + local URL="http://holoiso.itsvixano.me" + + HASH=$(wget -q -O- "${URL}/${ISO}.sha256sum" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + function get_tails() { local ISO="" local JSON="" From f6d3ddc862182b83ee457c8cc5edda923f24d6c0 Mon Sep 17 00:00:00 2001 From: zenobit Date: Sun, 5 Mar 2023 06:19:54 +0100 Subject: [PATCH 09/44] SliTaz --- quickget | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/quickget b/quickget index 0a6e1df73c..9741ecd404 100755 --- a/quickget +++ b/quickget @@ -64,6 +64,7 @@ function pretty_name() { reactos) PRETTY_NAME="ReactOS";; rebornos) PRETTY_NAME="RebornOS";; rockylinux) PRETTY_NAME="Rocky Linux";; + slitaz) PRETTY_NAME="SliTaz GNU/Linux";; steamos) PRETTY_NAME="SteamOS HoloISO";; truenas-core) PRETTY_NAME="TrueNAS Core";; truenas-scale) PRETTY_NAME="TrueNAS Scale";; @@ -215,6 +216,7 @@ function os_support() { rebornos \ rockylinux \ slackware \ + slitaz \ solus \ steamos \ tails \ @@ -517,6 +519,10 @@ function releases_slackware() { echo 14.2 15.0 } +function releases_slitaz() { + echo preferred core core64 loram core-5in1 preinit +} + function releases_solus() { echo 4.3 } @@ -878,6 +884,11 @@ EOF echo "disk_size=\"2G\"" >> "${CONF_FILE}" echo "ram=\"128M\"" >> "${CONF_FILE}" ;; + slitaz) + echo "boot=\"legacy\"" >> "${CONF_FILE}" + echo "disk_size=\"4G\"" >> "${CONF_FILE}" + echo "ram=\"512M\"" >> "${CONF_FILE}" + ;; truenas-scale|truenas-core) echo echo "boot=\"legacy\"" >> "${CONF_FILE}" @@ -1560,6 +1571,20 @@ function get_slackware() { echo "${URL}/${ISO} ${HASH}" } +function get_slitaz() { + local HASH="" + local ISO="slitaz-rolling-${RELEASE}" + local URL="http://mirror.slitaz.org/iso/rolling" + + case ${RELEASE} in + preferred) ISO="slitaz-rolling";; + *) ISO="slitaz-rolling-${RELEASE}";; + esac + + HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1) + echo "${URL}/${ISO}.iso ${HASH}" +} + function get_solus() { local EDITION="${1:-}" local HASH="" From b59282b5da48ae5f74914ba51d04cef43c4f5fbb Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 1 Mar 2023 02:11:43 +0100 Subject: [PATCH 10/44] DietPi --- quickget | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/quickget b/quickget index 9741ecd404..6f9f2fa386 100755 --- a/quickget +++ b/quickget @@ -39,6 +39,7 @@ function pretty_name() { arcolinux) PRETTY_NAME="Arco Linux";; cachyos) PRETTY_NAME="CachyOS";; centos-stream) PRETTY_NAME="CentOS Stream";; + dietpi) PRETTY_NAME="DietPi";; dragonflybsd) PRETTY_NAME="DragonFlyBSD";; elementary) PRETTY_NAME="elementary OS";; endeavouros) PRETTY_NAME="EndeavourOS";; @@ -180,6 +181,7 @@ function os_support() { batocera \ cachyos \ centos-stream \ + dietpi \ debian \ deepin \ devuan \ @@ -292,6 +294,14 @@ function editions_centos-stream() { echo dvd1 boot } +function releases_dietpi() { + echo bios uefi +} + +function editions_dietpi() { + echo bookworm bookworm-installer bullseye bullseye-installer +} + function releases_debian() { DEBCURRENT=$(wget -q https://cdimage.debian.org/debian-cd/ -O- |grep '\.[0-9]/'|cut -d\> -f9|cut -d\/ -f1) local DEBOLD=$(wget -q https://cdimage.debian.org/cdimage/archive/ -O- |grep -e '>[1-9][0-9]\.'|grep -v 'live' | cut -d\> -f9|cut -d\/ -f1 ) @@ -868,6 +878,11 @@ EOF echo "disk_size=\"32G\"" >> "${CONF_FILE}";; batocera) echo "disk_size=\"8G\"" >> "${CONF_FILE}";; + dietpi) + if [ "${RELEASE}" == "bios" ]; then + echo "boot=\"legacy\"" >> "${CONF_FILE}" + fi + ;; dragonflybsd|haiku|openbsd|netbsd|slackware|tails) echo "boot=\"legacy\"" >> "${CONF_FILE}";; deepin) @@ -1147,6 +1162,42 @@ function get_devuan() { echo "${URL}/${ISO} ${HASH}" } +function get_dietpi() { + local HASH="" + local ISO="" + local URL="https://dietpi.com/downloads/images" + case ${RELEASE} in + bios) + case ${EDITION} in + bookworm) + local ISO="DietPi_NativePC-BIOS-x86_64-Bookworm.7z" + ;; + bullseye) + local ISO="DietPi_NativePC-BIOS-x86_64-Bullseye.7z" + ;; + bookworm-installer) + local ISO="DietPi_NativePC-BIOS-x86_64-Bookworm_Installer.7z" + ;; + bullseye-installer) + local ISO="DietPi_NativePC-BIOS-x86_64-Bullseye_Installer.7z" + ;; + esac + ;; + uefi) + case ${EDITION} in + bookworm-installer) + local ISO="DietPi_NativePC-UEFI-x86_64-Bookworm_Installer.7z" + ;; + bullseye-installer) + local ISO="DietPi_NativePC-UEFI-x86_64-Bullseye_Installer.7z" + ;; + esac + ;; + esac + HASH=$(wget -q -O- "${URL}/SHASUMS.txt" | grep "${ISO}" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + function get_dragonflybsd() { local HASH="" local ISO="dfly-x86_64-${RELEASE}_REL.iso" @@ -2166,6 +2217,11 @@ create_vm() { ISO="${ISO/.gz/}" fi + if [ ${OS} == "dietpi" ] && [[ $ISO =~ ".7z" ]]; then + 7zip x -o${VM_PATH} ${VM_PATH}/${ISO} + ISO=$(ls ${VM_PATH} | grep -i '.iso') + fi + if [ ${OS} == "reactos" ] && [[ $ISO =~ ".zip" ]]; then unzip ${VM_PATH}/${ISO} -d ${VM_PATH} ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip') @@ -2236,6 +2292,14 @@ if [ -n "${2}" ]; then fi fi + # Handle odd missing dietpi cominations + if [[ $OS == dietpi ]] ; then + if [[ ${RELEASE} = "uefi" && ${EDITION} = "bookworm" ]] || [[ ${RELEASE} = "uefi" && ${EDITION} = "bullseye" ]] ; then + echo "ERROR! Unsupported combination" + echo "Only installers are supported for uefi, please choose another Release or Edition" + exit 1; + fi + fi VM_PATH="${OS}-${RELEASE}-${EDITION}" validate_release "releases_${OS}" From 71d1c6ff33b365d34794d3be974a672cb7cd8028 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 1 Mar 2023 08:12:16 +0100 Subject: [PATCH 11/44] void: all releases --- quickget | 102 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 91 insertions(+), 11 deletions(-) diff --git a/quickget b/quickget index 6f9f2fa386..2a7a349317 100755 --- a/quickget +++ b/quickget @@ -637,17 +637,18 @@ function releases_ubuntu() { } function releases_void() { - echo current + echo current 20221001 20210316 20210930 20210218 20191109 20190526 20190217 20181111 20171007 20170825 20170220 } function editions_void() { - echo glibc musl xfce-glibc xfce-musl + echo base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl gnome gnome-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl } function releases_voidpup() { echo latest } + function releases_windows() { echo 8 10 11 } @@ -1743,15 +1744,35 @@ function get_void() { local EDITION="${1:-}" local HASH="" local ISO="" - local URL="https://alpha.de.repo.voidlinux.org/live/current" - - DATE=$(wget -q -O- "${URL}/sha256sum.txt" | head -n1 | cut -d'.' -f1 | cut -d'-' -f4) - case ${EDITION} in - glibc) ISO="void-live-x86_64-${DATE}-base.iso";; - musl) ISO="void-live-x86_64-musl-${DATE}-base.iso";; - xfce-glibc) ISO="void-live-x86_64-${DATE}-xfce.iso";; - xfce-musl) ISO="void-live-x86_64-musl-${DATE}-xfce.iso";; - esac + local URL="https://alpha.de.repo.voidlinux.org/live/${RELEASE}" + if [[ "${RELEASE}" == "current" ]]; then + DATE=$(wget -q -O- "${URL}/sha256sum.txt" | head -n1 | cut -d'.' -f1 | cut -d'-' -f4) + case ${EDITION} in + base) ISO="void-live-x86_64-${DATE}-base.iso";; + base-musl) ISO="void-live-x86_64-musl-${DATE}-base.iso";; + xfce) ISO="void-live-x86_64-${DATE}-xfce.iso";; + xfce-musl) ISO="void-live-x86_64-musl-${DATE}-xfce.iso";; + esac + else + case ${EDITION} in + cinnamon) ISO="void-live-x86_64-${RELEASE}-cinnamon.iso";; + cinnamon-musl) ISO="void-live-x86_64-musl-${RELEASE}-cinnamon.iso";; + enlightenment) ISO="void-live-x86_64-${RELEASE}-enlightenment.iso";; + enlightenment-musl) ISO="void-live-x86_64-musl-${RELEASE}-enlightenment.iso";; + gnome) ISO="void-live-x86_64-${RELEASE}-gnome.iso";; + gnome-musl) ISO="void-live-x86_64-musl-${RELEASE}-gnome.iso";; + lxde) ISO="void-live-x86_64-${RELEASE}-lxde.iso";; + lxde-musl) ISO="void-live-x86_64-musl-${RELEASE}-lxde.iso";; + lxqt) ISO="void-live-x86_64-${RELEASE}-lxqt.iso";; + lxqt-musl) ISO="void-live-x86_64-musl-${RELEASE}-lxqt.iso";; + mate) ISO="void-live-x86_64-${RELEASE}-mate.iso";; + mate-musl) ISO="void-live-x86_64-musl-${RELEASE}-mate.iso";; + xfce) ISO="void-live-x86_64-${RELEASE}-xfce.iso";; + xfce-musl) ISO="void-live-x86_64-musl-${RELEASE}-xfce.iso";; + base) ISO="void-live-x86_64-${RELEASE}.iso";; + base-musl) ISO="void-live-x86_64-musl-${RELEASE}.iso";; + esac + fi HASH="$(wget -q -O- "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f4)" echo "${URL}/${ISO} ${HASH}" } @@ -2301,6 +2322,65 @@ if [ -n "${2}" ]; then fi fi + # Handle void missing edition + case "${RELEASE}-${EDITION}" in + "20170220-gnome"|"20170220-gnome-musl") + echo "ERROR! Unsupported combination" + echo "Posible editions are: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl" + exit 1; + ;; + "20170825-gnome"|"20170825-gnome-musl"|"20170825-enlightenment"|"20170825-enlightenment-musl"|"20170825-lxqt"|"20170825-lxqt-musl"|"20170825-base"|"20170825-mate-musl"|"20170825-lxde"|"20170825-lxde-musl"|"20170825-cinnamon"|"20170825-cinnamon-musl"|"20170825-xfce"|"20170825-xfce-musl"|"20170825-base-musl") + echo "ERROR! Unsupported combination" + echo "Only one possible edition: mate" + exit 1; + ;; + "20171007-gnome"|"20171007-gnome-musl") + echo "ERROR! Unsupported combination" + echo "Posible editions are: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl" + exit 1; + ;; + "20181111-gnome"|"20181111-gnome-musl") + echo "ERROR! Unsupported combination" + echo "Posible editions are: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl" + exit 1; + ;; + "20190217-gnome"|"20190217-gnome-musl") + echo "ERROR! Unsupported combination" + echo "Posible editions are: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl" + exit 1; + ;; + "20190526-gnome"|"20190526-gnome-musl"|"20190526-enlightenment"|"20190526-enlightenment-musl"|"20190526-lxqt"|"20190526-lxqt-musl"|"20190526-mate"|"20190526-mate-musl") + echo "ERROR! Unsupported combination" + echo "Posible editions are only: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl" + exit 1; + ;; + "20191109:gnome"|"20191109:gnome-musl") + echo "ERROR! Unsupported combination" + echo "Possible editions are: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl" + exit 1 + ;; + "20210316:gnome"|"20210316:gnome-musl"|"20210316:enlightenment"|"20210316:enlightenment-musl"|"20210316:lxqt"|"20210316:lxqt-musl"|"20210316:mate"|"20210316:mate-musl") + echo "ERROR! Unsupported combination" + echo "Possible editions are only: base base-musl cinnamon cinnamon-musl lxde lxde-musl xfce xfce-musl" + exit 1 + ;; + "20210930:gnome"|"20210930:gnome-musl"|"20210930:enlightenment"|"20210930:enlightenment-musl"|"20210930:lxqt"|"20210930:lxqt-musl"|"20210930:mate"|"20210930:mate-musl"|"20210930:lxde"|"20210930:lxde-musl"|"20210930:cinnamon"|"20210930:cinnamon-musl") + echo "ERROR! Unsupported combination" + echo "Possible editions are only: base base-musl xfce xfce-musl" + exit 1 + ;; + "20221001:gnome"|"20221001:gnome-musl"|"20221001:enlightenment"|"20221001:enlightenment-musl"|"20221001:lxqt"|"20221001:lxqt-musl"|"20221001:mate"|"20221001:mate-musl"|"20221001:lxde"|"20221001:lxde-musl"|"20221001:cinnamon"|"20221001:cinnamon-musl") + echo "ERROR! Unsupported combination" + echo "Possible editions are only: base base-musl xfce xfce-musl" + exit 1 + ;; + "current:gnome"|"current:gnome-musl"|"current:enlightenment"|"current:enlightenment-musl"|"current:lxqt"|"current:lxqt-musl"|"current:mate"|"current:mate-musl"|"current:lxde"|"current:lxde-musl"|"current:cinnamon"|"current:cinnamon-musl") + echo "ERROR! Unsupported combination" + echo "Possible editions are only: base base-musl xfce xfce-musl" + exit 1 + ;; + esac + VM_PATH="${OS}-${RELEASE}-${EDITION}" validate_release "releases_${OS}" create_vm "$("get_${OS}" "${EDITION}")" From 6fcf49de3088c2b8af9b448e170a6696b3010de2 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 1 Mar 2023 08:17:57 +0100 Subject: [PATCH 12/44] Cereus --- quickget | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/quickget b/quickget index 2a7a349317..53a0e9fc21 100755 --- a/quickget +++ b/quickget @@ -39,6 +39,7 @@ function pretty_name() { arcolinux) PRETTY_NAME="Arco Linux";; cachyos) PRETTY_NAME="CachyOS";; centos-stream) PRETTY_NAME="CentOS Stream";; + cereus) PRETTY_NAME="Cereus Linux";; dietpi) PRETTY_NAME="DietPi";; dragonflybsd) PRETTY_NAME="DragonFlyBSD";; elementary) PRETTY_NAME="elementary OS";; @@ -181,10 +182,11 @@ function os_support() { batocera \ cachyos \ centos-stream \ - dietpi \ + cereus \ debian \ deepin \ devuan \ + dietpi \ dragonflybsd \ elementary \ endeavouros \ @@ -294,12 +296,12 @@ function editions_centos-stream() { echo dvd1 boot } -function releases_dietpi() { - echo bios uefi +function releases_cereus() { + echo latest } -function editions_dietpi() { - echo bookworm bookworm-installer bullseye bullseye-installer +function editions_cereus() { + echo base lxqt xfce } function releases_debian() { @@ -321,6 +323,14 @@ function releases_devuan() { echo beowulf chimaera } +function releases_dietpi() { + echo bios uefi +} + +function editions_dietpi() { + echo bookworm bookworm-installer bullseye bullseye-installer +} + function releases_dragonflybsd() { echo 6.4.0 } @@ -1104,6 +1114,30 @@ function get_centos-stream() { echo "${URL}/${ISO} ${HASH}" } +function get_cereus() { + local HASH="" + local ISO="" + local URL="" + case ${EDITION} in + base) + ISO="cereus-beta-live-x86_64-xfce-2023.02.17.iso" + URL="https://sourceforge.net/projects/cereus-linux/files/isos/beta/latest/base" + HASH=$(wget -q -O- ${URL}/SHA256 | grep "${ISO}" | cut -d' ' -f2) + ;; + lxqt) + ISO="cereus-beta-live-x86_64-lxqt-2023.02.17.iso" + URL="https://sourceforge.net/projects/cereus-linux/files/isos/beta/latest/lxqt" + HASH=$(wget -q -O- ${URL}/SHA256 | grep "${ISO}" | cut -d' ' -f4) + ;; + xfce) + ISO="cereus-beta-live-x86_64-xfce-2023.02.17.iso" + URL="https://sourceforge.net/projects/cereus-linux/files/isos/beta/latest/xfce" + HASH=$(wget -q -O- ${URL}/SHA256 | grep "${ISO}" | cut -d' ' -f4) + ;; + esac + echo "${URL}/${ISO} ${HASH}" +} + function get_debian() { local EDITION="${1:-}" local HASH="" From 32f86f8667969aa019eaa29c496075c7ddb76b11 Mon Sep 17 00:00:00 2001 From: zenobit Date: Tue, 7 Mar 2023 03:11:01 +0100 Subject: [PATCH 13/44] cachyos: update to latest --- quickget | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickget b/quickget index 53a0e9fc21..a388d13971 100755 --- a/quickget +++ b/quickget @@ -281,7 +281,7 @@ function editions_arcolinux() { } function releases_cachyos() { - echo 230121 + echo 230305 } function editions_cachyos() { From 6b60fa91de25563d507f11b28589d1a905d6a2f0 Mon Sep 17 00:00:00 2001 From: zenobit Date: Thu, 9 Feb 2023 07:57:23 +0100 Subject: [PATCH 14/44] quickfzf 0.2 --- quickfzf | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 quickfzf diff --git a/quickfzf b/quickfzf new file mode 100755 index 0000000000..55d2bb5ca1 --- /dev/null +++ b/quickfzf @@ -0,0 +1,66 @@ +#!/usr/bin/bash + +# Author: zenobit +# Description: Uses fzf to provide a simple GUI for quickemu and quickget +# script must be in same directory as quickget and quickemu! +# License MIT +# +progname="${progname:="${0##*/}"}" +version="0.2" +if [ ! -f /usr/bin/fzf ]; then + echo "You are missing fzf..." + exit 255 +fi +echo +echo "Enjoy using quickemu!" +echo +echo "Press ctrl + c anytime for killing script..." +echo +echo "Prepared VMs:" +echo "-------------" +echo "$(ls *.conf 2>/dev/null | cut -d'.' -f1)" +echo "-------------" +echo +read -p "Do you want to create new VM? (c) +run created one? (just Enter)" start +case $start in + c ) + todo="create" + ;; +esac +if [ "$todo" = "create" ]; then + os=$(quickget | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' | fzf) + if [ "$os" = windows ]; then + answer=$(echo "Default English +Choose other language" | fzf) + if [ "$answer" = "Choose other language" ]; then + release=$(echo "8 +10 +11" | fzf) + wlstart=$(cat quickget | grep -n '(A' | cut -d':' -f1) + wlend=$(($(cat quickget | sed '/Arabic/,$!d' | grep -n '}' | cut -d':' -f1 | head -n 1) - 1)) + wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf) + echo + echo "Trying to download..." + quickget "windows" "$release" "$wlang" + fi + fi + choices=$(quickget "$os" | sed 1d) + if [ $(echo "$choices" | wc -l) = 1 ]; then + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) + echo + echo "Trying to download..." + quickget "$os" "$release" + else + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) + edition=$(echo "$choices" | grep 'Editions' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) + echo + echo "Trying to download..." + quickget "$os" "$release" "$edition" + fi +fi +choosed=$(echo "$(ls *.conf 2>/dev/null)" | fzf) +echo +quickemu -vm "$choosed" +echo +exit 0 From 2cff4194b01ceda412906c12244f04a7b290d1da Mon Sep 17 00:00:00 2001 From: zenobit Date: Sat, 11 Feb 2023 19:03:09 +0100 Subject: [PATCH 15/44] quickfzf 0.21 --- quickfzf | 100 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 65 insertions(+), 35 deletions(-) diff --git a/quickfzf b/quickfzf index 55d2bb5ca1..193e88d5e3 100755 --- a/quickfzf +++ b/quickfzf @@ -4,63 +4,93 @@ # Description: Uses fzf to provide a simple GUI for quickemu and quickget # script must be in same directory as quickget and quickemu! # License MIT -# + +# Define variables progname="${progname:="${0##*/}"}" -version="0.2" -if [ ! -f /usr/bin/fzf ]; then - echo "You are missing fzf..." - exit 255 +version="0.21" +vms=(*.conf) + +# Set traps to catch the signals and exit gracefully +trap "exit" INT +trap "exit" EXIT + +# Dependency check: check if fzf is installed and can be executed +if ! command -v fzf >/dev/null 2>&1; then + echo "You are missing fzf..." && exit 255 fi -echo -echo "Enjoy using quickemu!" -echo -echo "Press ctrl + c anytime for killing script..." -echo -echo "Prepared VMs:" -echo "-------------" -echo "$(ls *.conf 2>/dev/null | cut -d'.' -f1)" +# Dispaly version and prepared VMs +#printf " $progname: $version\n quickemu: $(quickemu --version)\n\n Prepared VMs:\n-------------\n" +printf '%s: v.%s\nquickemu: v.%s\n\n Prepared VMs:\n-------------\n' "$progname" "$version" "$(quickemu --version)" +# Check if there are any VMs +if [ ${#vms[@]} -eq 0 ]; then + echo "No VMs found." + exit 1 +fi + +# Print the names of the available VMs +printf "%s\n" "${vms[@]%.*}" echo "-------------" -echo -read -p "Do you want to create new VM? (c) -run created one? (just Enter)" start + +# Action prompt +printf " Do you want to create a new VM? (c) + or run an existing one? (press anything)\n" +read -rn 1 -s start case $start in c ) todo="create" ;; esac + +# If the user chose to create a new VM if [ "$todo" = "create" ]; then - os=$(quickget | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' | fzf) + os=$(quickget | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose OS to download + or CTRL-c or ESC to quit') + # If the OS is Windows if [ "$os" = windows ]; then answer=$(echo "Default English Choose other language" | fzf) + # If the user wants another windows language if [ "$answer" = "Choose other language" ]; then - release=$(echo "8 + wrelease=$(echo "8 10 11" | fzf) - wlstart=$(cat quickget | grep -n '(A' | cut -d':' -f1) + # get window language list wlend=$(($(cat quickget | sed '/Arabic/,$!d' | grep -n '}' | cut -d':' -f1 | head -n 1) - 1)) - wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf) - echo - echo "Trying to download..." - quickget "windows" "$release" "$wlang" + # get windows language + wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf --header='Choose Language + or CTRL-c or ESC to quit') + # downloading windows + printf '\n Trying to download Windows %s %s...\n\n' "$wrelease" "$wlang" + quickget "windows" "$wrelease" "$wlang" fi fi + # Get the release and edition to download, if necessary choices=$(quickget "$os" | sed 1d) - if [ $(echo "$choices" | wc -l) = 1 ]; then - release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) - echo - echo "Trying to download..." + if [ "$(echo "$choices" | wc -l)" = 1 ]; then + # get release + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Release + or CTRL-c or ESC to quit') + # downloading + printf '\n Trying to download %s %s...\n\n' "$os" "$release" quickget "$os" "$release" else - release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) - edition=$(echo "$choices" | grep 'Editions' | cut -d':' -f2 | grep -o '[^ ]*' | fzf) - echo - echo "Trying to download..." + # get release + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Release + or CTRL-c or ESC to quit') + # get edition + edition=$(echo "$choices" | grep 'Editions' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Edition + or CTRL-c or ESC to quit') + # downloading + printf '\n Trying to download %s %s %s...\n\n' "$os" "$release" "$edition" quickget "$os" "$release" "$edition" fi fi -choosed=$(echo "$(ls *.conf 2>/dev/null)" | fzf) -echo -quickemu -vm "$choosed" -echo +# choose VM to run +choosed=$(echo "$(ls *.conf 2>/dev/null | sed 's/\.conf$//')" | fzf --header='Choose VM to run + or CTRL-c or ESC to quit') + +# Run choosed VM +printf '\n Starting %s...\n\n' "$choosed" +quickemu -vm "$choosed.conf" + exit 0 From bdd3d61825771e0679ed9f59eadd313a441a8bb3 Mon Sep 17 00:00:00 2001 From: zenobit Date: Thu, 2 Mar 2023 03:36:45 +0100 Subject: [PATCH 16/44] quickfzf --cycle --- quickfzf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/quickfzf b/quickfzf index 193e88d5e3..f1fe1750f8 100755 --- a/quickfzf +++ b/quickfzf @@ -43,21 +43,21 @@ esac # If the user chose to create a new VM if [ "$todo" = "create" ]; then - os=$(quickget | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose OS to download + os=$(quickget | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose OS to download or CTRL-c or ESC to quit') # If the OS is Windows if [ "$os" = windows ]; then answer=$(echo "Default English -Choose other language" | fzf) +Choose other language" | fzf --cycle) # If the user wants another windows language if [ "$answer" = "Choose other language" ]; then wrelease=$(echo "8 10 -11" | fzf) +11" | fzf --cycle) # get window language list wlend=$(($(cat quickget | sed '/Arabic/,$!d' | grep -n '}' | cut -d':' -f1 | head -n 1) - 1)) # get windows language - wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf --header='Choose Language + wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf --cycle --header='Choose Language or CTRL-c or ESC to quit') # downloading windows printf '\n Trying to download Windows %s %s...\n\n' "$wrelease" "$wlang" @@ -68,17 +68,17 @@ Choose other language" | fzf) choices=$(quickget "$os" | sed 1d) if [ "$(echo "$choices" | wc -l)" = 1 ]; then # get release - release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Release + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose Release or CTRL-c or ESC to quit') # downloading printf '\n Trying to download %s %s...\n\n' "$os" "$release" quickget "$os" "$release" else # get release - release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Release + release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose Release or CTRL-c or ESC to quit') # get edition - edition=$(echo "$choices" | grep 'Editions' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --header='Choose Edition + edition=$(echo "$choices" | grep 'Editions' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose Edition or CTRL-c or ESC to quit') # downloading printf '\n Trying to download %s %s %s...\n\n' "$os" "$release" "$edition" @@ -86,7 +86,7 @@ Choose other language" | fzf) fi fi # choose VM to run -choosed=$(echo "$(ls *.conf 2>/dev/null | sed 's/\.conf$//')" | fzf --header='Choose VM to run +choosed=$(echo "$(ls *.conf 2>/dev/null | sed 's/\.conf$//')" | fzf --cycle --header='Choose VM to run or CTRL-c or ESC to quit') # Run choosed VM From 90e0f6b6a9e3d0901c70c667eabaae18ce1fee90 Mon Sep 17 00:00:00 2001 From: zenobit Date: Tue, 7 Mar 2023 05:31:23 +0100 Subject: [PATCH 17/44] quickfzf: show current dir --- quickfzf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickfzf b/quickfzf index f1fe1750f8..c2f0e73d95 100755 --- a/quickfzf +++ b/quickfzf @@ -20,7 +20,7 @@ if ! command -v fzf >/dev/null 2>&1; then fi # Dispaly version and prepared VMs #printf " $progname: $version\n quickemu: $(quickemu --version)\n\n Prepared VMs:\n-------------\n" -printf '%s: v.%s\nquickemu: v.%s\n\n Prepared VMs:\n-------------\n' "$progname" "$version" "$(quickemu --version)" +printf '%s: v.%s\nquickemu: v.%s\n\n Work dir.: %s\n\n Prepared VMs:\n-------------\n' "$progname" "$version" "$(quickemu --version)" "$(pwd)" # Check if there are any VMs if [ ${#vms[@]} -eq 0 ]; then echo "No VMs found." From fe098491914f8ae114141f179235a71d5ff1f158 Mon Sep 17 00:00:00 2001 From: zenobit Date: Tue, 7 Mar 2023 05:46:34 +0100 Subject: [PATCH 18/44] fix --- quickget | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/quickget b/quickget index a388d13971..2630ef19c4 100755 --- a/quickget +++ b/quickget @@ -66,7 +66,7 @@ function pretty_name() { reactos) PRETTY_NAME="ReactOS";; rebornos) PRETTY_NAME="RebornOS";; rockylinux) PRETTY_NAME="Rocky Linux";; - slitaz) PRETTY_NAME="SliTaz GNU/Linux";; + slitaz) PRETTY_NAME="SliTaz GNU/Linux";; steamos) PRETTY_NAME="SteamOS HoloISO";; truenas-core) PRETTY_NAME="TrueNAS Core";; truenas-scale) PRETTY_NAME="TrueNAS Scale";; @@ -186,7 +186,7 @@ function os_support() { debian \ deepin \ devuan \ - dietpi \ + dietpi \ dragonflybsd \ elementary \ endeavouros \ @@ -1794,7 +1794,7 @@ function get_void() { enlightenment) ISO="void-live-x86_64-${RELEASE}-enlightenment.iso";; enlightenment-musl) ISO="void-live-x86_64-musl-${RELEASE}-enlightenment.iso";; gnome) ISO="void-live-x86_64-${RELEASE}-gnome.iso";; - gnome-musl) ISO="void-live-x86_64-musl-${RELEASE}-gnome.iso";; + gnome-musl) ISO="void-live-x86_64-musl-${RELEASE}-gnome.iso";; lxde) ISO="void-live-x86_64-${RELEASE}-lxde.iso";; lxde-musl) ISO="void-live-x86_64-musl-${RELEASE}-lxde.iso";; lxqt) ISO="void-live-x86_64-${RELEASE}-lxqt.iso";; @@ -1826,7 +1826,7 @@ function get_xerolinux() { local URL="" local ISO="xerolinux-2022.12-x86_64.iso" local URL="https://sourceforge.net/projects/xerolinux/files/Releases" - + HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1) echo "${URL}/${ISO} ${HASH}" } From 424e494c47f3e78c5a002809e9d20bac39dcdc4f Mon Sep 17 00:00:00 2001 From: zenobit Date: Tue, 7 Mar 2023 06:25:51 +0100 Subject: [PATCH 19/44] quickfzf: Show working directory --- quickfzf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickfzf b/quickfzf index f1fe1750f8..8d2911f421 100755 --- a/quickfzf +++ b/quickfzf @@ -20,7 +20,7 @@ if ! command -v fzf >/dev/null 2>&1; then fi # Dispaly version and prepared VMs #printf " $progname: $version\n quickemu: $(quickemu --version)\n\n Prepared VMs:\n-------------\n" -printf '%s: v.%s\nquickemu: v.%s\n\n Prepared VMs:\n-------------\n' "$progname" "$version" "$(quickemu --version)" +printf '%s: v.%s\nquickemu: v.%s\n\n Workdir: %s\n\n Prepared VMs:\n-------------\n' "$progname" "$version" "$(quickemu --version)" "$(pwd)" # Check if there are any VMs if [ ${#vms[@]} -eq 0 ]; then echo "No VMs found." From 06ad3fc2205a5909548f9f6d5563586191501811 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 8 Mar 2023 19:31:25 +0100 Subject: [PATCH 20/44] gabeeOS --- quickget | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/quickget b/quickget index 2630ef19c4..a63d4185f6 100755 --- a/quickget +++ b/quickget @@ -47,6 +47,7 @@ function pretty_name() { freebsd) PRETTY_NAME="FreeBSD";; freedos) PRETTY_NAME="FreeDOS";; fvoid) PRETTY_NAME="F-Void";; + gabeeos) PRETTY_NAME="gabeeOS Linux";; garuda) PRETTY_NAME="Garuda Linux";; ghostbsd) PRETTY_NAME="GhostBSD";; kdeneon) PRETTY_NAME="KDE Neon";; @@ -194,6 +195,7 @@ function os_support() { freebsd \ freedos \ fvoid \ + gabeeos \ garuda \ gentoo \ ghostbsd \ @@ -388,6 +390,10 @@ function releases_fvoid() { echo latest } +function releases_gabeeos() { + echo latest +} + function releases_garuda() { echo latest } @@ -1324,6 +1330,16 @@ function get_fvoid() { echo "${URL} ${HASH}" } +function get_gabeeos() { + local HASH="" + local URL="" + local TMPURL="" + + TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/gabeeos/files/latest/download" 2>&1 | grep -i Location | cut -d' ' -f4) + URL=${TMPURL%\?*} + echo "${URL} ${HASH}" +} + function get_garuda() { local EDITION="${1:-}" local HASH="" From 5b8b1ac1463d488b89a1dd45ae5205c2fdcb87f5 Mon Sep 17 00:00:00 2001 From: zenobit Date: Thu, 9 Mar 2023 15:30:30 +0100 Subject: [PATCH 21/44] VX-Linux --- quickget | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/quickget b/quickget index a63d4185f6..a904cae16c 100755 --- a/quickget +++ b/quickget @@ -78,6 +78,7 @@ function pretty_name() { ubuntu-unity) PRETTY_NAME="Ubuntu Unity";; void) PRETTY_NAME="Void Linux";; voidpup) PRETTY_NAME="Void Puppy";; + vxlinux) PRETTY_NAME="VX Linux";; xerolinux) PRETTY_NAME="XeroLinux";; zorin) PRETTY_NAME="Zorin OS";; *) PRETTY_NAME="${SIMPLE_NAME^}";; @@ -235,6 +236,7 @@ function os_support() { ubuntustudio \ ubuntu-unity \ void \ + vxlinux \ voidpup \ windows \ xerolinux \ @@ -664,6 +666,9 @@ function releases_voidpup() { echo latest } +function releases_vxlinux() { + echo 6.1 5.0 4.2 4.1 4.0 +} function releases_windows() { echo 8 10 11 @@ -1837,6 +1842,19 @@ function get_voidpup() { echo "${URL} ${HASH}" } +function get_vxlinux() { + local HASH="" + local ISO="" + local URL="https://github.com/dessington/vx-linux/releases/download/${RELEASE}" + + if [ "$RELEASE" == "4.0" ]; then + ISO="vx-linux-4.0-qt.iso" + else + ISO="vx-linux-${RELEASE}.iso" + fi + echo "${URL}/${ISO} ${HASH}" +} + function get_xerolinux() { local HASH="" local URL="" From 4659c65cf8bd7207750dd0f6b069f4fa1174bf2a Mon Sep 17 00:00:00 2001 From: zenobit Date: Sun, 12 Mar 2023 01:53:51 +0100 Subject: [PATCH 22/44] siduction --- quickget | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/quickget b/quickget index a904cae16c..fcf211979b 100755 --- a/quickget +++ b/quickget @@ -222,6 +222,7 @@ function os_support() { reactos \ rebornos \ rockylinux \ + siduction \ slackware \ slitaz \ solus \ @@ -543,6 +544,14 @@ function editions_rockylinux() { "dvd (dvd1 prior to 9.0)" } +function releases_siduction() { + echo latest +} + +function editions_siduction() { + echo kde lxqt nox xfce xorg +} + function releases_slackware() { echo 14.2 15.0 } @@ -1670,6 +1679,17 @@ function get_rockylinux() { echo "${URL}/${ISO} ${HASH}" } +function get_siduction() { + local HASH="" + local DATE="" + local ISO="" + local URL="https://mirrors.dotsrc.org/siduction/iso/Masters_of_War/${EDITION}" + DATE=$(wget -q -O- "${URL}"| grep .iso.md5 | cut -d'-' -f6 | cut -d'.' -f1) + HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1) + ISO="siduction-22.1.1-Masters_of_War-${EDITION}-amd64-${DATE}.iso" + echo "${URL}/${ISO} ${HASH}" +} + function get_slackware() { local HASH="" local ISO="slackware64-${RELEASE}-install-dvd.iso" From 32ccc975e019c54720f8689b7aa876d474061357 Mon Sep 17 00:00:00 2001 From: zenobit Date: Sun, 12 Mar 2023 02:26:23 +0100 Subject: [PATCH 23/44] vxlinux --- quickget | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/quickget b/quickget index fcf211979b..45141a5029 100755 --- a/quickget +++ b/quickget @@ -679,6 +679,10 @@ function releases_vxlinux() { echo 6.1 5.0 4.2 4.1 4.0 } +function releases_vxlinux() { + echo 6.1.2 6.1 5.0 4.2 4.1 4.0. +} + function releases_windows() { echo 8 10 11 } @@ -1896,6 +1900,19 @@ function get_zorin() { echo "${URL} ${HASH}" } +function get_vxlinux() { + local HASH="" + local ISO="" + local URL="https://github.com/dessington/vx-linux/releases/download/${RELEASE}" + + if [ "$RELEASE" == "4.0" ]; then + ISO="vx-linux-4.0-qt.iso" + else + ISO="vx-linux-${RELEASE}.iso" + fi + echo "${URL}/${ISO} ${HASH}" +} + function unattended_windows() { cat << 'EOF' > "${1}" From 33588769227454b477bc1d13215531eaaa8ba04a Mon Sep 17 00:00:00 2001 From: Phil Clifford Date: Mon, 26 Jun 2023 17:13:24 +0100 Subject: [PATCH 24/44] Move Ubuntu 22.10 releases into eol --- quickget | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/quickget b/quickget index 756eb8239d..840b631e8e 100755 --- a/quickget +++ b/quickget @@ -596,7 +596,7 @@ function releases_truenas-scale() { function releases_ubuntu() { local LTS_SUPPORT="14.04 16.04 18.04 20.04 22.04" - local INTERIM_SUPPORT="22.10 23.04" + local INTERIM_SUPPORT="23.04" case "${OS}" in kubuntu|lubuntu|ubuntukylin|\ @@ -612,7 +612,7 @@ function releases_ubuntu() { INTERIM_SUPPORT="${INTERIM_SUPPORT}" ;; ubuntucinnamon) - INTERIM_SUPPORT="${INTERIM_SUPPORT/22.10 /}" + INTERIM_SUPPORT="${INTERIM_SUPPORT}" ;; esac @@ -665,13 +665,14 @@ function releases_ubuntu() { eol-20.10 \ eol-21.04 \ eol-21.10 \ + eol-22.10 \ ; fi } function releases_ubuntu-server() { local LTS_SUPPORT="18.04 20.04 22.04" - local INTERIM_SUPPORT="22.10 23.04" + local INTERIM_SUPPORT="23.04" echo ${LTS_SUPPORT} \ ${INTERIM_SUPPORT} \ daily-live From 96ca979e9b72c559a79017b9eb2ee6da82114023 Mon Sep 17 00:00:00 2001 From: Chase Covello Date: Fri, 28 Apr 2023 15:15:49 -0700 Subject: [PATCH 25/44] Added support for changing virtual sound hardware Added new configuration file option "sound_card" and new command-line switch "--sound-card" to change the virtual sound hardware. Allowed options are "intel-hda" (default), "ac97", "es1370", "sb16", and "none". Also changed default sound card for Solaris to "ac97" and for FreeDOS to "sb16". --- quickemu | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/quickemu b/quickemu index 4f4d6025a9..e387292341 100755 --- a/quickemu +++ b/quickemu @@ -235,6 +235,7 @@ function vm_boot() { local MAC_DISK_DEV="${MAC_DISK_DEV:-ide-hd,bus=ahci.2}" local NET_DEVICE="${NET_DEVICE:-virtio-net}" local OSK="" + local SOUND="" local SMM="${SMM:-off}" local USB_HOST_PASSTHROUGH_CONTROLLER="qemu-xhci" local VGA="" @@ -487,11 +488,13 @@ function vm_boot() { if [ "${guest_os}" == "freedos" ] ; then # fix for #382 SMM="on" + SOUND_CARD="sb16" fi if [[ "${guest_os}" == *"solaris" ]]; then MACHINE_TYPE="pc" USB_CONTROLLER="xhci" + SOUND_CARD="ac97" fi if [ -z "${disk_size}" ]; then @@ -792,6 +795,16 @@ function vm_boot() { # Add fullscreen options VIDEO="${VGA} ${VIDEO} ${FULLSCREEN}" + # Build the sound hardware configuration + if [ "${SOUND_CARD}" == "intel-hda" ]; then + SOUND="-device intel-hda -device hda-duplex,audiodev=audio0" + elif [ "${SOUND_CARD}" == "ac97" ] || [ "${SOUND_CARD}" == "es1370" ] || [ "${SOUND_CARD}" == "sb16" ]; then + SOUND="-device ${SOUND_CARD},audiodev=audio0" + elif [ "${SOUND_CARD}" == "none" ]; then + SOUND="" + fi + echo " - Sound: ${SOUND_CARD}" + # Set the hostname of the VM local NET="user,hostname=${VMNAME}" @@ -920,7 +933,7 @@ function vm_boot() { -m ${RAM_VM} ${BALLOON} ${VIDEO} -display ${DISPLAY_RENDER} -audiodev ${AUDIO_DEV} - -device intel-hda -device hda-duplex,audiodev=audio0 + ${SOUND} -rtc base=localtime,clock=host,driftfix=slew) # Only enable SPICE is using SPICE display @@ -1330,7 +1343,7 @@ function usage() { echo " --viewer : Choose an alternative viewer. @Options: 'spicy' (default), 'remote-viewer', 'none'" echo " --ssh-port : Set ssh-port manually" echo " --spice-port : Set spice-port manually" - echo " --public-dir : expose share directory. @Options: '' (default: xdg-user-dir PUBLICSHARE), '', 'none'" + echo " --public-dir : Expose share directory. @Options: '' (default: xdg-user-dir PUBLICSHARE), '', 'none'" echo " --monitor : Set monitor connection type. @Options: 'socket' (default), 'telnet', 'none'" echo " --monitor-telnet-host : Set telnet host for monitor. (default: 'localhost')" echo " --monitor-telnet-port : Set telnet port for monitor. (default: '4440')" @@ -1342,6 +1355,7 @@ function usage() { echo " --keyboard_layout : Set keyboard layout." echo " --mouse : Set mouse. @Options: 'tablet' (default), 'ps2', 'usb', 'virtio'" echo " --usb-controller : Set usb-controller. @Options: 'ehci' (default), 'xhci', 'none'" + echo " --sound-card : Set sound card. @Options: 'intel-hda' (default), 'ac97', 'es1370', 'sb16', 'none'" echo " --extra_args : Pass additional arguments to qemu" echo " --version : Print version" exit 1 @@ -1354,6 +1368,13 @@ function display_param_check() { fi } +function sound_card_param_check() { + if [ "${SOUND_CARD}" != "intel-hda" ] && [ "${SOUND_CARD}" != "ac97" ] && [ "${SOUND_CARD}" != "es1370" ] && [ "${SOUND_CARD}" != "sb16" ] && [ "${SOUND_CARD}" != "none" ]; then + echo "ERROR! Requested sound card '${SOUND_CARD}' is not recognised." + exit 1 + fi +} + function viewer_param_check() { if [ "${VIEWER}" != "none" ] && [ "${VIEWER}" != "spicy" ] && [ "${VIEWER}" != "remote-viewer" ]; then echo "ERROR! Requested viewer '${VIEWER}' is not recognised." @@ -1474,6 +1495,8 @@ keyboard="usb" keyboard_layout="en-us" # options: ps2, usb, tablet, virtio mouse="tablet" +# options: intel-hda, ac97, es1370, sb16, none +sound_card="intel-hda" BRAILLE="" DELETE_DISK=0 @@ -1512,6 +1535,7 @@ KEYBOARD_LAYOUT="" MOUSE="" USB_CONTROLLER="" EXTRA_ARGS="" +SOUND_CARD="" # shellcheck disable=SC2155 readonly LAUNCHER=$(basename "${0}") @@ -1665,6 +1689,10 @@ else EXTRA_ARGS="${2}" shift; shift;; + -sound-card|--sound-card) + SOUND_CARD="${2}" + shift; + shift;; -version|--version) echo "${VERSION}" exit;; @@ -1767,6 +1795,11 @@ if [ -n "${VM}" ] && [ -e "${VM}" ]; then exit 1 fi + if [ -z "${SOUND_CARD}" ]; then + SOUND_CARD="${sound_card}" + fi + sound_card_param_check + # Check if vm is already run VM_PID=0 VM_UP=0 From daf3a507cf42ff2387b294fbbd61b748d0669755 Mon Sep 17 00:00:00 2001 From: Alejandro Date: Thu, 17 Aug 2023 01:14:40 +0200 Subject: [PATCH 26/44] Adjusted check values --- README.md | 4 ++-- docs/quickemu.1 | 4 ++-- docs/quickemu.1.md | 4 ++-- docs/quickget.1 | 2 +- docs/quickget.1.md | 2 +- quickemu | 4 ++-- quickget | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index ac97e9c89c..94b1b40885 100644 --- a/README.md +++ b/README.md @@ -476,7 +476,7 @@ quickemu --vm windows-11-22H2.conf - Complete the installation as you normally would. - All relevant drivers and services should be installed automatically. -- A local adminstrator user account is automatically created, with +- A local administrator user account is automatically created, with these credentials: - Username: `Quickemu` - Password: `quickemu` @@ -838,7 +838,7 @@ which Quickemu sizes to 2048x1152. Without the `--screen` option, Quickemu would have used the 1920x1080 monitor which results in a window size of 1664x936. -The '--screenpct' is an optional interger value between 25 \<= pct \< +The '--screenpct' is an optional integer value between 25 \<= pct \< 100 which will override system default screen sizes. The VM size will be 'pct' of the chosen screen. **If --fullscreen is chosen screen will be fullsize instead of being scaled down by --screenpct value.** diff --git a/docs/quickemu.1 b/docs/quickemu.1 index a9d71d50c3..4140485056 100644 --- a/docs/quickemu.1 +++ b/docs/quickemu.1 @@ -715,7 +715,7 @@ Complete the installation as you normally would. .IP \[bu] 2 All relevant drivers and services should be installed automatically. .IP \[bu] 2 -A local adminstrator user account is automatically created, with these +A local administrator user account is automatically created, with these credentials: .RS 2 .IP \[bu] 2 @@ -854,7 +854,7 @@ which Quickemu sizes to 2048x1152. Without the \f[V]--screen\f[R] option, Quickemu would have used the 1920x1080 monitor which results in a window size of 1664x936. .PP -The `\[en]screenpct' is an optional interger value between 25 <= pct < +The `\[en]screenpct' is an optional integer value between 25 <= pct < 100 which will override system default screen sizes. The VM size will be `pct' of the chosen screen. \f[B]If \[en]fullscreen is chosen screen will be fullsize instead of diff --git a/docs/quickemu.1.md b/docs/quickemu.1.md index f21b88485c..d5139b6f89 100644 --- a/docs/quickemu.1.md +++ b/docs/quickemu.1.md @@ -506,7 +506,7 @@ quickemu --vm windows-11-22H2.conf - Complete the installation as you normally would. - All relevant drivers and services should be installed automatically. -- A local adminstrator user account is automatically created, with +- A local administrator user account is automatically created, with these credentials: - Username: `Quickemu` - Password: `quickemu` @@ -623,7 +623,7 @@ which Quickemu sizes to 2048x1152. Without the `--screen` option, Quickemu would have used the 1920x1080 monitor which results in a window size of 1664x936. -The '--screenpct' is an optional interger value between 25 \<= pct \< +The '--screenpct' is an optional integer value between 25 \<= pct \< 100 which will override system default screen sizes. The VM size will be 'pct' of the chosen screen. **If --fullscreen is chosen screen will be fullsize instead of being scaled down by --screenpct value.** diff --git a/docs/quickget.1 b/docs/quickget.1 index 5365530c66..6515dc879b 100644 --- a/docs/quickget.1 +++ b/docs/quickget.1 @@ -498,7 +498,7 @@ Complete the installation as you normally would. .IP \[bu] 2 All relevant drivers and services should be installed automatically. .IP \[bu] 2 -A local adminstrator user account is automatically created, with these +A local administrator user account is automatically created, with these credentials: .RS 2 .IP \[bu] 2 diff --git a/docs/quickget.1.md b/docs/quickget.1.md index de59e7c9f8..92903e0a30 100644 --- a/docs/quickget.1.md +++ b/docs/quickget.1.md @@ -338,7 +338,7 @@ quickemu --vm windows-11-22H2.conf - Complete the installation as you normally would. - All relevant drivers and services should be installed automatically. -- A local adminstrator user account is automatically created, with +- A local administrator user account is automatically created, with these credentials: - Username: `Quickemu` - Password: `quickemu` diff --git a/quickemu b/quickemu index 4f4d6025a9..10ff16256f 100755 --- a/quickemu +++ b/quickemu @@ -31,7 +31,7 @@ function ignore_msrs_alert() { echo echo " If you are unable to run macOS or Windows VMs then run the above 👆" echo " This will enable ignoring of unhandled MSRs until you reboot the host." - echo " You can make this change permenant by running: 'quickemu --ignore-msrs-always'" + echo " You can make this change permanent by running: 'quickemu --ignore-msrs-always'" fi fi } @@ -1013,7 +1013,7 @@ function vm_boot() { fi if [ "${network}" == "none" ]; then - # Disbale all networking + # Disable all networking echo " - Network: Disabled" args+=(-nic none) elif [ "${network}" == "restrict" ]; then diff --git a/quickget b/quickget index 756eb8239d..61e9de1dfa 100755 --- a/quickget +++ b/quickget @@ -921,7 +921,7 @@ EOF fi ;; vanillaos) - ## Minimum 50G for abroot + ## Minimum 64G for abroot echo "disk_size=\"64G\"" >> "${CONF_FILE}" ;; zorin) @@ -945,7 +945,7 @@ EOF esac if [ "${OS}" == "ubuntu" ] && [[ ${RELEASE} == *"daily"* ]]; then - # wont install lobster testing with less than 18GB + # won't install lobster testing with less than 32GB echo "disk_size=\"32G\"" >> "${CONF_FILE}" fi # Enable TPM for Windows 11 From 63266ad94194dd02c084a664b8c7ec49e4fb0b1c Mon Sep 17 00:00:00 2001 From: Konrad Konieczny Date: Sat, 26 Aug 2023 22:14:05 +0000 Subject: [PATCH 27/44] Remove thumbnail's black bars & shorten YouTube link --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ac97e9c89c..6331c3685f 100644 --- a/README.md +++ b/README.md @@ -62,8 +62,9 @@ We have a Discord for this project: See this (old) video where I explain some of my motivations for creating Quickemu. -[![Replace VirtualBox with Bash & -QEMU](https://img.youtube.com/vi/AOTYWEgw0hI/0.jpg)](https://www.youtube.com/watch?v=AOTYWEgw0hI) + + Replace VirtualBox with Bash & QEMU + ## Requirements From cdda03fcb9eb793a01b3147ebcc3ed9ff14d0a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Criado-P=C3=A9rez?= Date: Tue, 29 Aug 2023 22:11:54 +0200 Subject: [PATCH 28/44] Explained headroom for memory limits --- quickget | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quickget b/quickget index 61e9de1dfa..6537081c6a 100755 --- a/quickget +++ b/quickget @@ -921,7 +921,7 @@ EOF fi ;; vanillaos) - ## Minimum 64G for abroot + ## Minimum is 50G for abroot, but a 64GB is allocated to give some headroom echo "disk_size=\"64G\"" >> "${CONF_FILE}" ;; zorin) @@ -945,7 +945,7 @@ EOF esac if [ "${OS}" == "ubuntu" ] && [[ ${RELEASE} == *"daily"* ]]; then - # won't install lobster testing with less than 32GB + # Minimum to install lobster testing is 18GB but 32GB are allocated for headroom echo "disk_size=\"32G\"" >> "${CONF_FILE}" fi # Enable TPM for Windows 11 From da9dd54408b63f7a944b2a5b0bf90b804b792ad8 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 13 Sep 2023 21:39:45 +0200 Subject: [PATCH 29/44] siduction: 2023 1.1 --- quickget | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quickget b/quickget index 756eb8239d..6a45a1e22e 100755 --- a/quickget +++ b/quickget @@ -1640,10 +1640,10 @@ function get_siduction() { local HASH="" local DATE="" local ISO="" - local URL="https://mirrors.dotsrc.org/siduction/iso/Masters_of_War/${EDITION}" + local URL="https://mirrors.dotsrc.org/siduction/iso/Standing_on_the_Shoulders_of_Giants/${EDITION}" DATE=$(wget -q -O- "${URL}"| grep .iso.md5 | cut -d'-' -f6 | cut -d'.' -f1) HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1) - ISO="siduction-22.1.1-Masters_of_War-${EDITION}-amd64-${DATE}.iso" + ISO="siduction-2023.1.1-Standing_on_the_Shoulders_of_Giants-${EDITION}-amd64-${DATE}.iso" echo "${URL}/${ISO} ${HASH}" } From 966e58bfcdd6da959678bda135b60a12df183359 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 13 Sep 2023 21:43:19 +0200 Subject: [PATCH 30/44] vx-linux: 5.5 --- quickget | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/quickget b/quickget index 756eb8239d..1cb0ca238a 100755 --- a/quickget +++ b/quickget @@ -690,7 +690,7 @@ function editions_void() { } function releases_vxlinux() { - echo 6.1.2 6.1 5.0 4.2 4.1 4.0 + echo 5.5 } function releases_windows() { @@ -1640,10 +1640,10 @@ function get_siduction() { local HASH="" local DATE="" local ISO="" - local URL="https://mirrors.dotsrc.org/siduction/iso/Masters_of_War/${EDITION}" + local URL="https://mirrors.dotsrc.org/siduction/iso/Standing_on_the_Shoulders_of_Giants/${EDITION}" DATE=$(wget -q -O- "${URL}"| grep .iso.md5 | cut -d'-' -f6 | cut -d'.' -f1) HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1) - ISO="siduction-22.1.1-Masters_of_War-${EDITION}-amd64-${DATE}.iso" + ISO="siduction-2023.1.1-Standing_on_the_Shoulders_of_Giants-${EDITION}-amd64-${DATE}.iso" echo "${URL}/${ISO} ${HASH}" } From caf66db266c2b697f4224fd7ffc4afde5460c8ad Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 13 Sep 2023 21:45:55 +0200 Subject: [PATCH 31/44] holoiso: 20230626 --- quickget | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickget b/quickget index 756eb8239d..3e066f7689 100755 --- a/quickget +++ b/quickget @@ -1668,7 +1668,7 @@ function get_solus() { function get_holoiso() { local HASH="" local DATE="20221211" - local ISO="HoloISO_${RELEASE}_OfflineInstaller-${DATE}_1636-x86_64.iso" + local ISO="HoloISO_${RELEASE}_ux_changes-20230626_66f7c74061_bootchoice_fixes-1-x86_64.iso" local URL="http://holoiso.itsvixano.me" HASH=$(wget -q -O- "${URL}/${ISO}.sha256sum" | cut -d' ' -f1) From f1d7f246c61bd320b16db86395e91d97fb6ca597 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 13 Sep 2023 22:26:38 +0200 Subject: [PATCH 32/44] void linux: official current only --- quickget | 78 -------------------------------------------------------- 1 file changed, 78 deletions(-) diff --git a/quickget b/quickget index 40c3ce93dd..6c3bd8cce8 100755 --- a/quickget +++ b/quickget @@ -2002,25 +2002,6 @@ function get_void() { xfce) ISO="void-live-x86_64-${DATE}-xfce.iso";; xfce-musl) ISO="void-live-x86_64-musl-${DATE}-xfce.iso";; esac - else - case ${EDITION} in - cinnamon) ISO="void-live-x86_64-${RELEASE}-cinnamon.iso";; - cinnamon-musl) ISO="void-live-x86_64-musl-${RELEASE}-cinnamon.iso";; - enlightenment) ISO="void-live-x86_64-${RELEASE}-enlightenment.iso";; - enlightenment-musl) ISO="void-live-x86_64-musl-${RELEASE}-enlightenment.iso";; - gnome) ISO="void-live-x86_64-${RELEASE}-gnome.iso";; - gnome-musl) ISO="void-live-x86_64-musl-${RELEASE}-gnome.iso";; - lxde) ISO="void-live-x86_64-${RELEASE}-lxde.iso";; - lxde-musl) ISO="void-live-x86_64-musl-${RELEASE}-lxde.iso";; - lxqt) ISO="void-live-x86_64-${RELEASE}-lxqt.iso";; - lxqt-musl) ISO="void-live-x86_64-musl-${RELEASE}-lxqt.iso";; - mate) ISO="void-live-x86_64-${RELEASE}-mate.iso";; - mate-musl) ISO="void-live-x86_64-musl-${RELEASE}-mate.iso";; - xfce) ISO="void-live-x86_64-${RELEASE}-xfce.iso";; - xfce-musl) ISO="void-live-x86_64-musl-${RELEASE}-xfce.iso";; - base) ISO="void-live-x86_64-${RELEASE}.iso";; - base-musl) ISO="void-live-x86_64-musl-${RELEASE}.iso";; - esac fi HASH="$(wget -q -O- "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f4)" echo "${URL}/${ISO} ${HASH}" @@ -2544,65 +2525,6 @@ if [ -n "${2}" ]; then fi fi - # Handle void missing edition - case "${RELEASE}-${EDITION}" in - "20170220-gnome"|"20170220-gnome-musl") - echo "ERROR! Unsupported combination" - echo "Posible editions are: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl" - exit 1; - ;; - "20170825-gnome"|"20170825-gnome-musl"|"20170825-enlightenment"|"20170825-enlightenment-musl"|"20170825-lxqt"|"20170825-lxqt-musl"|"20170825-base"|"20170825-mate-musl"|"20170825-lxde"|"20170825-lxde-musl"|"20170825-cinnamon"|"20170825-cinnamon-musl"|"20170825-xfce"|"20170825-xfce-musl"|"20170825-base-musl") - echo "ERROR! Unsupported combination" - echo "Only one possible edition: mate" - exit 1; - ;; - "20171007-gnome"|"20171007-gnome-musl") - echo "ERROR! Unsupported combination" - echo "Posible editions are: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl" - exit 1; - ;; - "20181111-gnome"|"20181111-gnome-musl") - echo "ERROR! Unsupported combination" - echo "Posible editions are: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl" - exit 1; - ;; - "20190217-gnome"|"20190217-gnome-musl") - echo "ERROR! Unsupported combination" - echo "Posible editions are: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl" - exit 1; - ;; - "20190526-gnome"|"20190526-gnome-musl"|"20190526-enlightenment"|"20190526-enlightenment-musl"|"20190526-lxqt"|"20190526-lxqt-musl"|"20190526-mate"|"20190526-mate-musl") - echo "ERROR! Unsupported combination" - echo "Posible editions are only: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl" - exit 1; - ;; - "20191109:gnome"|"20191109:gnome-musl") - echo "ERROR! Unsupported combination" - echo "Possible editions are: base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl" - exit 1 - ;; - "20210316:gnome"|"20210316:gnome-musl"|"20210316:enlightenment"|"20210316:enlightenment-musl"|"20210316:lxqt"|"20210316:lxqt-musl"|"20210316:mate"|"20210316:mate-musl") - echo "ERROR! Unsupported combination" - echo "Possible editions are only: base base-musl cinnamon cinnamon-musl lxde lxde-musl xfce xfce-musl" - exit 1 - ;; - "20210930:gnome"|"20210930:gnome-musl"|"20210930:enlightenment"|"20210930:enlightenment-musl"|"20210930:lxqt"|"20210930:lxqt-musl"|"20210930:mate"|"20210930:mate-musl"|"20210930:lxde"|"20210930:lxde-musl"|"20210930:cinnamon"|"20210930:cinnamon-musl") - echo "ERROR! Unsupported combination" - echo "Possible editions are only: base base-musl xfce xfce-musl" - exit 1 - ;; - "20221001:gnome"|"20221001:gnome-musl"|"20221001:enlightenment"|"20221001:enlightenment-musl"|"20221001:lxqt"|"20221001:lxqt-musl"|"20221001:mate"|"20221001:mate-musl"|"20221001:lxde"|"20221001:lxde-musl"|"20221001:cinnamon"|"20221001:cinnamon-musl") - echo "ERROR! Unsupported combination" - echo "Possible editions are only: base base-musl xfce xfce-musl" - exit 1 - ;; - "current:gnome"|"current:gnome-musl"|"current:enlightenment"|"current:enlightenment-musl"|"current:lxqt"|"current:lxqt-musl"|"current:mate"|"current:mate-musl"|"current:lxde"|"current:lxde-musl"|"current:cinnamon"|"current:cinnamon-musl") - echo "ERROR! Unsupported combination" - echo "Possible editions are only: base base-musl xfce xfce-musl" - exit 1 - ;; - esac - VM_PATH="${OS}-${RELEASE}-${EDITION}" validate_release "releases_${OS}" create_vm "$("get_${OS}" "${EDITION}")" From 8e1f2f9c3aacae3aec4dab3af7f00e1b0f3c5f85 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 13 Sep 2023 20:36:08 +0000 Subject: [PATCH 33/44] Update quickfzf --- quickfzf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickfzf b/quickfzf index c2f0e73d95..e24bfbb737 100755 --- a/quickfzf +++ b/quickfzf @@ -1,7 +1,7 @@ #!/usr/bin/bash # Author: zenobit -# Description: Uses fzf to provide a simple GUI for quickemu and quickget +# Description: Uses fzf to provide a simple TUI for quickemu and quickget # script must be in same directory as quickget and quickemu! # License MIT From a8bab9e4735e4684d04a2848852faaceae8f9561 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 13 Sep 2023 23:12:17 +0200 Subject: [PATCH 34/44] repair syntax --- quickget | 3 +++ 1 file changed, 3 insertions(+) diff --git a/quickget b/quickget index 8bcc109cdf..d2f463f257 100755 --- a/quickget +++ b/quickget @@ -2433,6 +2433,7 @@ create_vm() { unzip ${VM_PATH}/${ISO} -d ${VM_PATH} ISO=$(ls ${VM_PATH} | grep -i '.iso') fi + if [[ ${OS} == "batocera" ]] && [[ ${ISO} =~ ".gz" ]]; then gzip -d "${VM_PATH}/${ISO}" ISO="${ISO/.gz/}" @@ -2443,6 +2444,8 @@ create_vm() { if [[ ${OS} == "dragonflybsd" ]] && [[ ${ISO} =~ ".bz2" ]]; then bzip2 -d "${VM_PATH}/${ISO}" ISO="${ISO/.bz2/}" + fi + if [ ${OS} == "dietpi" ] && [[ $ISO =~ ".7z" ]]; then 7zip x -o${VM_PATH} ${VM_PATH}/${ISO} ISO=$(ls ${VM_PATH} | grep -i '.iso') From 98d7e5354f60aaf9c050e34e66dc23b48ec4050d Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 13 Sep 2023 23:27:26 +0200 Subject: [PATCH 35/44] Manjaro (#49) * Updated manjaro fetching - Added sway release - Added choice to download minimal or full edition * Future proofing manjaro sway fetching --------- Co-authored-by: Jai A P --- quickget | 40 +++++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/quickget b/quickget index d2f463f257..f4af65e193 100755 --- a/quickget +++ b/quickget @@ -510,6 +510,10 @@ function editions_mxlinux(){ echo Xfce KDE Fluxbox } +function editions_manjaro(){ + echo full minimal +} + function releases_macos() { echo high-sierra mojave catalina big-sur monterey ventura } @@ -517,11 +521,12 @@ function releases_macos() { function releases_manjaro() { echo xfce \ gnome \ - kde \ + plasma \ budgie \ cinnamon \ i3 \ - mate + mate \ + sway } function releases_netboot() { @@ -1676,18 +1681,30 @@ function get_mageia() { } function get_manjaro() { + local EDITION="${1:-}" local HASH="" local ISO="" - local MANIFESTURL="" + local MANIFEST="" local URL="" + local TYPE="" case ${RELEASE} in - gnome|kde|xfce) MANIFESTURL="https://gitlab.manjaro.org/webpage/manjaro-homepage/-/raw/master/site/content/downloads/official/${RELEASE}.md";; - budgie|cinnamon|deepin|i3|mate) MANIFESTURL="https://gitlab.manjaro.org/webpage/manjaro-homepage/-/raw/master/site/content/downloads/community/${RELEASE}.md";; + sway) MANIFEST="$( wget -qO- https://mirror.manjaro-sway.download/manjaro-sway/release.json )";; + gnome|xfce|plasma) TYPE="official";; + *) TYPE="community";; esac - URL="$(wget -qO- "${MANIFESTURL}" | grep "Download_x64 =" | cut -d'"' -f2)" - HASH=$(wget -qO- "${MANIFESTURL}" | grep "Download_x64_Checksum =" | cut -d'"' -f2) + [[ ${RELEASE} != "sway" ]] && MANIFEST="$(wget -qO- https://gitlab.manjaro.org/web/iso-info/-/raw/master/file-info.json)" + + [[ ${EDITION} == "minimal" && ${TYPE} != "sway" ]] && EDITION=".minimal" || EDITION="" + + if [[ ${RELEASE} != "sway" ]]; then + URL="$(echo ${MANIFEST} | jq -r .${TYPE}.${RELEASE}${EDITION}.image)" + else + URL="echo ${MANIFEST} | jq -r '.[] | select(.name|test("^manjaro-sway-.*[.]iso$")) | select(.name|contains("unstable")|not) | .url'" + fi + + HASH=$(wget -qO- "${URL}.sha512" | cut -d' ' -f1) echo "${URL} ${HASH}" } @@ -2529,6 +2546,15 @@ if [ -n "${2}" ]; then fi fi + # Handle missing Manjaro Sway minimal + if [[ $OS == manjaro ]] ; then + if [[ ${RELEASE} == "sway" && ${EDITION} == "minimal" ]] ; then + echo "ERROR! Unsupported combination" + echo " Manjaro Sway does not have a minimal edition" + exit 1; + fi + fi + VM_PATH="${OS}-${RELEASE}-${EDITION}" validate_release "releases_${OS}" create_vm "$("get_${OS}" "${EDITION}")" From b92910e51c563a61f8b155360bb9326d1806e15a Mon Sep 17 00:00:00 2001 From: Phil Clifford Date: Wed, 13 Sep 2023 22:31:43 +0100 Subject: [PATCH 36/44] Small typo corrections (#33) --- quickfzf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/quickfzf b/quickfzf index 8d2911f421..af66cfb70d 100755 --- a/quickfzf +++ b/quickfzf @@ -18,7 +18,7 @@ trap "exit" EXIT if ! command -v fzf >/dev/null 2>&1; then echo "You are missing fzf..." && exit 255 fi -# Dispaly version and prepared VMs +# Display version and prepared VMs #printf " $progname: $version\n quickemu: $(quickemu --version)\n\n Prepared VMs:\n-------------\n" printf '%s: v.%s\nquickemu: v.%s\n\n Workdir: %s\n\n Prepared VMs:\n-------------\n' "$progname" "$version" "$(quickemu --version)" "$(pwd)" # Check if there are any VMs @@ -86,11 +86,11 @@ Choose other language" | fzf --cycle) fi fi # choose VM to run -choosed=$(echo "$(ls *.conf 2>/dev/null | sed 's/\.conf$//')" | fzf --cycle --header='Choose VM to run +chosen=$(echo "$(ls *.conf 2>/dev/null | sed 's/\.conf$//')" | fzf --cycle --header='Choose VM to run or CTRL-c or ESC to quit') -# Run choosed VM -printf '\n Starting %s...\n\n' "$choosed" -quickemu -vm "$choosed.conf" +# Run chosen VM +printf '\n Starting %s...\n\n' "$chosen" +quickemu -vm "$chosen.conf" exit 0 From 7b01c539eacec32917a85ca1123b22d11ca64814 Mon Sep 17 00:00:00 2001 From: Phil Clifford Date: Wed, 13 Sep 2023 22:34:39 +0100 Subject: [PATCH 37/44] Allow quickfzf to be run wherever the VMs are (#32) Also added a check that the user has quickemu installed. Co-authored-by: zenobit --- quickfzf | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/quickfzf b/quickfzf index af66cfb70d..46f9e192a7 100755 --- a/quickfzf +++ b/quickfzf @@ -2,7 +2,6 @@ # Author: zenobit # Description: Uses fzf to provide a simple GUI for quickemu and quickget -# script must be in same directory as quickget and quickemu! # License MIT # Define variables @@ -18,6 +17,13 @@ trap "exit" EXIT if ! command -v fzf >/dev/null 2>&1; then echo "You are missing fzf..." && exit 255 fi + +if ! command -v quickemu >/dev/null 2>&1; then + echo "You are missing quickemu..." && exit 255 +fi + +QUICKGET=$(command -v quickget) || exit 255 + # Display version and prepared VMs #printf " $progname: $version\n quickemu: $(quickemu --version)\n\n Prepared VMs:\n-------------\n" printf '%s: v.%s\nquickemu: v.%s\n\n Workdir: %s\n\n Prepared VMs:\n-------------\n' "$progname" "$version" "$(quickemu --version)" "$(pwd)" @@ -55,9 +61,9 @@ Choose other language" | fzf --cycle) 10 11" | fzf --cycle) # get window language list - wlend=$(($(cat quickget | sed '/Arabic/,$!d' | grep -n '}' | cut -d':' -f1 | head -n 1) - 1)) + wlend=$(($(cat $QUICKGET | sed '/Arabic/,$!d' | grep -n '}' | cut -d':' -f1 | head -n 1) - 1)) # get windows language - wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf --cycle --header='Choose Language + wlang=$(cat $QUICKGET | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf --cycle --header='Choose Language or CTRL-c or ESC to quit') # downloading windows printf '\n Trying to download Windows %s %s...\n\n' "$wrelease" "$wlang" From abd156b66f18cfeb31e518aa4d75262d396a4825 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 13 Sep 2023 23:44:54 +0200 Subject: [PATCH 38/44] TUI not GUI --- quickfzf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickfzf b/quickfzf index 46f9e192a7..fedb96c10a 100755 --- a/quickfzf +++ b/quickfzf @@ -1,7 +1,7 @@ #!/usr/bin/bash # Author: zenobit -# Description: Uses fzf to provide a simple GUI for quickemu and quickget +# Description: Uses fzf to provide a simple TUI for quickemu and quickget # License MIT # Define variables From b63254d55cd4765f530314f09a49f986fe940bb7 Mon Sep 17 00:00:00 2001 From: Phil Clifford Date: Wed, 13 Sep 2023 22:34:39 +0100 Subject: [PATCH 39/44] Allow quickfzf to be run wherever the VMs are (#32) Also added a check that the user has quickemu installed. Co-authored-by: zenobit --- quickfzf | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/quickfzf b/quickfzf index af66cfb70d..fedb96c10a 100755 --- a/quickfzf +++ b/quickfzf @@ -1,8 +1,7 @@ #!/usr/bin/bash # Author: zenobit -# Description: Uses fzf to provide a simple GUI for quickemu and quickget -# script must be in same directory as quickget and quickemu! +# Description: Uses fzf to provide a simple TUI for quickemu and quickget # License MIT # Define variables @@ -18,6 +17,13 @@ trap "exit" EXIT if ! command -v fzf >/dev/null 2>&1; then echo "You are missing fzf..." && exit 255 fi + +if ! command -v quickemu >/dev/null 2>&1; then + echo "You are missing quickemu..." && exit 255 +fi + +QUICKGET=$(command -v quickget) || exit 255 + # Display version and prepared VMs #printf " $progname: $version\n quickemu: $(quickemu --version)\n\n Prepared VMs:\n-------------\n" printf '%s: v.%s\nquickemu: v.%s\n\n Workdir: %s\n\n Prepared VMs:\n-------------\n' "$progname" "$version" "$(quickemu --version)" "$(pwd)" @@ -55,9 +61,9 @@ Choose other language" | fzf --cycle) 10 11" | fzf --cycle) # get window language list - wlend=$(($(cat quickget | sed '/Arabic/,$!d' | grep -n '}' | cut -d':' -f1 | head -n 1) - 1)) + wlend=$(($(cat $QUICKGET | sed '/Arabic/,$!d' | grep -n '}' | cut -d':' -f1 | head -n 1) - 1)) # get windows language - wlang=$(cat quickget | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf --cycle --header='Choose Language + wlang=$(cat $QUICKGET | sed '/Arabic/,$!d' | head -n $wlend | cut -d'=' -f2 | tail -c +2 | head -c -2 | sed 's/^[ \t]*//' | fzf --cycle --header='Choose Language or CTRL-c or ESC to quit') # downloading windows printf '\n Trying to download Windows %s %s...\n\n' "$wrelease" "$wlang" From 72bdf049ef56ce0156db27c0b25cc6a8e29e44b9 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 13 Sep 2023 23:46:36 +0200 Subject: [PATCH 40/44] raise version to 0.22 --- quickfzf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickfzf b/quickfzf index fedb96c10a..5ccae2a768 100755 --- a/quickfzf +++ b/quickfzf @@ -6,7 +6,7 @@ # Define variables progname="${progname:="${0##*/}"}" -version="0.21" +version="0.22" vms=(*.conf) # Set traps to catch the signals and exit gracefully From 2e1b2da4d97a77c91a27a65b58cf53197d63ce04 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 13 Sep 2023 23:52:28 +0200 Subject: [PATCH 41/44] Add BigLinux (#51) Co-authored-by: Ruscher --- quickget | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/quickget b/quickget index f4af65e193..c273ccd5d5 100755 --- a/quickget +++ b/quickget @@ -37,6 +37,7 @@ function pretty_name() { archlinux) PRETTY_NAME="Arch Linux";; archcraft) PRETTY_NAME="Archcraft";; arcolinux) PRETTY_NAME="Arco Linux";; + biglinux) PRETTY_NAME="BigLinux";; blendos) PRETTY_NAME="BlendOS";; cachyos) PRETTY_NAME="CachyOS";; centos-stream) PRETTY_NAME="CentOS Stream";; @@ -190,6 +191,7 @@ function os_support() { archcraft \ arcolinux \ batocera \ + biglinux \ blendos \ cachyos \ centos-stream \ @@ -299,6 +301,10 @@ function editions_arcolinux() { echo large small } +function releases_biglinux() { + echo kde +} + function releases_blendos() { local RLIST RLIST=$(curl -s https://api.github.com/repos/blend-os/blendOS/releases |grep tag_name | grep -o -E '[[:digit:]]+\.[[:digit:]]+' | tr ' \r\n' ' ') @@ -1155,6 +1161,15 @@ function get_arcolinux() { echo "${URL}/${ISO} ${HASH}" } +function get_biglinux() { + local HASH="" + local ISO="" + local URL="https://iso.biglinux.com.br/" + ISO=$(grep -Eo 'biglinux_[0-9]{4}(-[0-9]{2}){2}_k[0-9]{2,3}.iso' <(wget -q -O- ${URL}) | sort -u | tail -n2 | head -n1) + HASH=$(curl -s ${URL}${ISO}.md5 | grep -Eo '[[:alnum:]]{32}') + echo "${URL}${ISO} ${HASH}" +} + function get_blendos() { local EDITION="${1:-}" local HASH="" From 56834e48868255ea52eeddacf816e30cfbae5a94 Mon Sep 17 00:00:00 2001 From: zenobit Date: Thu, 14 Sep 2023 00:14:31 +0200 Subject: [PATCH 42/44] Add tuxedoos (#52) --- quickget | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/quickget b/quickget index c273ccd5d5..c55b90db35 100755 --- a/quickget +++ b/quickget @@ -53,6 +53,7 @@ function pretty_name() { gabeeos) PRETTY_NAME="gabeeOS Linux";; garuda) PRETTY_NAME="Garuda Linux";; ghostbsd) PRETTY_NAME="GhostBSD";; + holoiso) PRETTY_NAME="HoloISO";; kdeneon) PRETTY_NAME="KDE Neon";; kolibrios) PRETTY_NAME="KolibriOS";; linuxmint) PRETTY_NAME="Linux Mint";; @@ -72,6 +73,7 @@ function pretty_name() { rebornos) PRETTY_NAME="RebornOS";; rockylinux) PRETTY_NAME="Rocky Linux";; slitaz) PRETTY_NAME="SliTaz GNU/Linux";; + tuxedoos) PRETTY_NAME="TuxedoOS";; truenas-core) PRETTY_NAME="TrueNAS Core";; truenas-scale) PRETTY_NAME="TrueNAS Scale";; ubuntu-budgie) PRETTY_NAME="Ubuntu Budgie";; @@ -241,6 +243,7 @@ function os_support() { slitaz \ solus \ tails \ + tuxedoos \ truenas-core \ truenas-scale \ ubuntu \ @@ -643,6 +646,10 @@ function releases_tails() { echo stable } +function releases_tuxedoos() { + echo 2 +} + function releases_truenas() { if [[ $OS == truenas ]] ; then echo "ERROR! The supported TrueNAS OS values are truenas-core or truenas-scale" @@ -1920,6 +1927,16 @@ function get_tails() { echo "${URL} ${HASH}" } +function get_tuxedoos() { + local DATE="202309111354" + local HASH="" + local ISO="TUXEDO-OS-${RELEASE}-${DATE}.iso" + local URL="https://os.tuxedocomputers.com/" + + HASH=$(wget -q -O- "${URL}/checksums" | grep "${ISO}" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + function get_truenas-scale() { local ISO="" local URL="" From b1f7a5e88a8e4bb46dbec815b4348b9bfd21005c Mon Sep 17 00:00:00 2001 From: zenobit Date: Thu, 14 Sep 2023 01:53:50 +0200 Subject: [PATCH 43/44] Add bodhi linux (#53) --- quickget | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/quickget b/quickget index c55b90db35..05d6628d3e 100755 --- a/quickget +++ b/quickget @@ -195,6 +195,7 @@ function os_support() { batocera \ biglinux \ blendos \ + bodhi \ cachyos \ centos-stream \ cereus \ @@ -319,6 +320,14 @@ function editions_blendos() { echo gnome kde } +function releases_bodhi() { + echo 7.0.0 +} + +function editions_bodhi() { + echo standart hwe s76 +} + function releases_cachyos() { echo 2300305 } @@ -1238,6 +1247,21 @@ function get_batocera() { echo "${URL}/${ISO} ${HASH}" } +function get_bodhi() { + local EDITION="${1:-}" + local HASH="" + local ISO="" + local URL="https://sourceforge.net/projects/bodhilinux/files/${release}/" + + case ${EDITION} in + standart) ISO="bodhi-${RELEASE}-64.iso";; + hwe) ISO="bodhi-${RELEASE}-64-hwe.iso";; + s76) ISO="bodhi-${RELEASE}-64-s76.iso";; + esac + HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + function get_cachyos() { local HASH="" local ISO="cachyos-${EDITION}-linux-${RELEASE}.iso" From 97ac0732e9b3d72c12c36ed71ed7b2e933a09248 Mon Sep 17 00:00:00 2001 From: zenobit Date: Thu, 14 Sep 2023 02:58:06 +0200 Subject: [PATCH 44/44] shifted holoiso position in script no code change --- quickget | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/quickget b/quickget index 05d6628d3e..497da69efb 100755 --- a/quickget +++ b/quickget @@ -484,6 +484,10 @@ function editions_haiku() { echo x86_64 x86_gcc2h } +function releases_holoiso() { + echo 4.5 +} + function releases_kali() { echo current kali-weekly } @@ -647,10 +651,6 @@ function editions_solus() { echo Budgie GNOME MATE Plasma } -function releases_holoiso() { - echo 4.5 -} - function releases_tails() { echo stable } @@ -1585,6 +1585,15 @@ function get_haiku() { echo "${URL}/${ISO} ${HASH}" } +function get_holoiso() { + local HASH="" + local ISO="HoloISO_${RELEASE}_ux_changes-20230626_66f7c74061_bootchoice_fixes-1-x86_64.iso" + local URL="http://holoiso.itsvixano.me" + + HASH=$(wget -q -O- "${URL}/${ISO}.sha256sum" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + function get_kali() { local HASH="" local ISO="" @@ -1930,15 +1939,6 @@ function get_solus() { echo "${URL}/${ISO} ${HASH}" } -function get_holoiso() { - local HASH="" - local ISO="HoloISO_${RELEASE}_ux_changes-20230626_66f7c74061_bootchoice_fixes-1-x86_64.iso" - local URL="http://holoiso.itsvixano.me" - - HASH=$(wget -q -O- "${URL}/${ISO}.sha256sum" | cut -d' ' -f1) - echo "${URL}/${ISO} ${HASH}" -} - function get_tails() { local ISO="" local JSON=""