diff --git a/README.md b/README.md
index af6e9d8..1d487e4 100644
--- a/README.md
+++ b/README.md
@@ -29,6 +29,7 @@ Licensed under AGPL3
# Still Beta version!
Click for screenshot
+
![supported Operating systems](docs/distrohopper.png)
diff --git a/dh b/dh
index 1341f66..eb39093 100755
--- a/dh
+++ b/dh
@@ -28,7 +28,7 @@ do
echo "$MSG_IMPROVE"
echo "$MSG_KNOW"
echo ""
- echo "$MSG_FLAWLESS"
+ echo "$MSQ_FLAWLESS"
echo " zenobit"
}
@@ -398,7 +398,7 @@ EOF
if [ "$os" = windows ]; then
tui_windows
else
- tui_get_releases_and_editions
+ quickget_get_releases_and_editions
fzf_choose_release
if [ "$(echo "$choices" | wc -l)" = 1 ]; then
quickget_download_os_release
@@ -672,6 +672,7 @@ EOF
shift
;;
l|language)
+ ttt="dh"
TOOL_distrohopper_translate
shift
;;
diff --git a/lang/cs.cfg b/lang/cs.cfg
index 8485a51..4dc1eb4 100644
--- a/lang/cs.cfg
+++ b/lang/cs.cfg
@@ -35,12 +35,12 @@ MSG_H_TUI="Spuštění uživatelského rozhraní terminálu (TUI)"
MSG_CHAT="Chatovací skupina na SimpleX: https://tinyurl.com/7hm4kcjx"
MSG_ICONS="vytvoření adresáře s ikonami jako root..."
MSG_IMPROVE="Co lze zlepšit, přidat, změnit?"
-MSG_INSTALLING="Instalace programu DistroHopper..."
+MSG_INSTALLING="Instalace DistroHopperu..."
MSG_INVALID="Neplatná možnost:"
+MSG_KNOW=" Dejte mi vědět..."
MSG_LANG_CODE="Pokud chcete vytvořit nový, vložte dvoumístný kód jazyka..."
MSG_LANG_CHANGE="Která jazyková změna? (cs/cs)"
MSG_LANG="Zvolený jazyk je:"
-MSG_LETMEKNOW=" Dejte mi vědět..."
MSG_LIKE="Jak se vám líbí DistroHopper?"
MSG_MERG="Sloučení změn... (Udělejte si to sami)"
MSG_MODE="Přepnutí do přenosného režimu!"
diff --git a/lang/de.cfg b/lang/de.cfg
index 4c9241f..135f765 100644
--- a/lang/de.cfg
+++ b/lang/de.cfg
@@ -37,10 +37,10 @@ MSG_ICONS="Icons-Verzeichnis als Root erstellen..."
MSG_IMPROVE="Was kann verbessert, hinzugefügt, verändert werden?"
MSG_INSTALLING="Installation von DistroHopper..."
MSG_INVALID="Ungültige Option:"
+MSG_KNOW=" Sag mir Bescheid..."
MSG_LANG_CODE="Wenn Sie einen neuen erstellen möchten, geben Sie den zweistelligen Sprachcode ein..."
MSG_LANG="Die gewählte Sprache ist:"
MSG_LANG_CHANGE="Welche Sprache wechseln? (en/cs)"
-MSG_LETMEKNOW=" Sag mir Bescheid..."
MSG_LIKE="Wie gefällt Ihnen DistroHopper?"
MSG_MERG="Zusammenführen von Änderungen... (Do it yourself)"
MSG_MODE="Umschalten auf portablen Modus!"
@@ -63,7 +63,7 @@ MSG_S_CHOOSED=" Starte %s..."
MSG_S_INSTALL="Start der Installation..."
MSG_SORTING="Sortierfunktionen in der Vorlage..."
MSG_STRUCTURE="Verzeichnisstruktur erstellen..."
-MSG_U_READY="Aktualisieren von fertigen VMs..."
+MSG_U_READY="Aktualisierung der fertigen VMs..."
MSG_U_SUPPORTED="Aktualisieren unterstützter VMs..."
MSG_VM="Desktop-Eintrag erstellen..."
MSG_YAD="Ich vermisse Yad!"
diff --git a/lang/en.cfg b/lang/en.cfg
index b122afc..198cee3 100644
--- a/lang/en.cfg
+++ b/lang/en.cfg
@@ -37,16 +37,16 @@ MSG_ICONS="creating icons dir as root..."
MSG_IMPROVE="What can be improved, added, changed?"
MSG_INSTALLING="Installing DistroHopper..."
MSG_INVALID="Invalid option:"
+MSG_KNOW=" Let me know..."
MSG_LANG_CODE="If you want create new one, insert two digit language code..."
MSG_LANG_CHANGE="Which language change? (en/cs)"
MSG_LANG="Choosed language is:"
-MSG_LETMEKNOW=" Let me know..."
MSG_LIKE="How do you like DistroHopper?"
MSG_MERG="Merging changes... (Do it yourself)"
MSG_MODE="Switching to portable mode!"
MSG_MO="Generating .mo file..."
MSG_NEEDED="Installing needed..."
-MSG_NEW=" Do you want to create a new VM? (c)"
+MSG_NEW=" Do you want to create a new VM?"
MSG_NO_CONF="No .conf files found"
MSG_NO_DISTROERROR="I currently don't have support for your distro"
MSG_NO="No argumet provided!"
diff --git a/lang/en.cfgZ b/lang/en.cfgZ
new file mode 100644
index 0000000..dc5dc41
--- /dev/null
+++ b/lang/en.cfgZ
@@ -0,0 +1,71 @@
+MSG_ADD_STARTED="Adding new distro started..."
+MSG_BUGS="PS: You saw some bugs?"
+MSG_C_DESKTOP="Copying desktop entries and locales..."
+MSG_C_ENTRY="Copying desktop entry..."
+MSG_C_ICONS="Copying icons..."
+MSG_C_ISOS="Copying ISOs to dir. It will take some time..."
+MSG_C_LANG="Do you want copy translation to system? (y/n)"
+MSG_C_TRANS="Copying translation..."
+MSG_D_INTERM="Do you want DistroHopper to run in the terminal? (y/n)"
+MSG_DIR="creating config dir..."
+MSG_D_LANG=" Trying to download Windows %s %s..."
+MSG_DONE="Done"
+MSG_D_OS=" Trying to download %s %s..."
+MSG_D_RELEASE=" Trying to download %s %s %s..."
+MSG_DUMP="Dumping language source..."
+MSG_ERROR="Error"
+MSG_FEEDBACK="Could you please provide feedback?"
+MSG_FZF="Missing fzf!"
+MSG_H_ADD=" a add Add new distro to quickget"
+MSG_H_COPY=" c copy Copy all ISOs to target dir (for Ventoy)"
+MSG_H_DIR=" d dir Set default directory where VMs are stored"
+MSG_H_FIRST=" example for First run from terminal:"
+MSG_H_GUI=" g gui Run graphical user interface (GUI)"
+MSG_H_HELP=" h help Show this help and exit"
+MSG_H_INSTALL=" i install Install DistroHopper"
+MSG_H_LANG=" l language Translate DistroHopper"
+MSG_H_MODE=" m mode Portable mode"
+MSG_HOMEPAGE="Homepage: dh.osowoso.xyz"
+MSG_HOSTED="Project hosted at: https://github.com/oSoWoSo/DistroHopper"
+MSG_H_PUSH=" p push Push changed quickget to quickemu project"
+MSG_H_READY=" r ready Update ready to run VMs"
+MSG_H_SORT=" f functions Sort functions in quickget"
+MSG_H_SUPPORTED=" s supported Update supported VMs"
+MSG_H_TUI=" t tui Run terminal user interface (TUI)"
+MSG_CHAT="Chat group on SimpleX: https://tinyurl.com/7hm4kcjx"
+MSG_ICONS="creating icons dir as root..."
+MSG_IMPROVE="What can be improved, added, changed?"
+MSG_INSTALLING="Installing DistroHopper..."
+MSG_INVALID="Invalid option:"
+MSG_LANG_CODE="If you want create new one, insert two digit language code..."
+MSG_LANG_CHANGE="Which language change? (en/cs)"
+MSG_LANG="Choosed language is:"
+MSG_LETMEKNOW=" Let me know..."
+MSG_LIKE="How do you like DistroHopper?"
+MSG_MERG="Merging changes... (Do it yourself)"
+MSG_MODE="Switching to portable mode!"
+MSG_MO="Generating .mo file..."
+MSG_NEEDED="Installing needed..."
+MSG_NEW=" Do you want to create a new VM? (c)"
+MSG_NO_CONF="No .conf files found"
+MSG_NO_DISTROERROR="I currently don't have support for your distro"
+MSG_NO="No argumet provided!"
+MSG_NO_VM="No VMs found."
+MSG_OR_RUN=" or run an existing one? (press anything)"
+MSG_PREPARED=" Prepared VMs:-------------"
+MSG_PUSHING="Pushing changes to..."
+MSG_Q_INTERM="Do you want quickget to show outputs in the terminal? (y/n)"
+MSG_R_TUI="Running DistroHopper TUI..."
+MSG_RUNNING="DistroHopper is running... Press Ctrl-Q anytime to exit."
+MSG_SETTINGUP="Setting up directory..."
+MSG_S_GUI="Starting DistroHopper GUI..."
+MSG_S_CHOOSED=" Starting %s..."
+MSG_S_INSTALL="Starting installation..."
+MSG_SORTING="Sorting functions in template..."
+MSG_STRUCTURE="Creating directory structure..."
+MSG_U_READY="Updating ready VMs..."
+MSG_U_SUPPORTED="Updating supported VMs..."
+MSG_VM="Creating desktop entry..."
+MSG_YAD="Missing yad!"
+MSQ_ARGUMENTS="Possible arguments:"
+MSQ_FLAWLESS="Wish you flawless distro hopping..."
diff --git a/lang/fr.cfg b/lang/fr.cfg
index 61133cc..3bb7719 100644
--- a/lang/fr.cfg
+++ b/lang/fr.cfg
@@ -37,10 +37,10 @@ MSG_ICONS="création d'un répertoire d'icônes en tant que racine..."
MSG_IMPROVE="Qu'est-ce qui peut être amélioré, ajouté, modifié ?"
MSG_INSTALLING="Installation de DistroHopper..."
MSG_INVALID="Option non valide :"
+MSG_KNOW=" Tenez-moi au courant."
MSG_LANG_CODE="Si vous souhaitez en créer un nouveau, insérez un code de langue à deux chiffres..."
MSG_LANG_CHANGE="Quel changement de langue ? (en/cs)"
MSG_LANG="La langue choisie est :"
-MSG_LETMEKNOW=" Tenez-moi au courant."
MSG_LIKE="Que pensez-vous de DistroHopper ?"
MSG_MERG="Fusionner les changements... (Faites-le vous-même)"
MSG_MODE="Passer en mode portable !"
diff --git a/new_translate_function b/new_translate_function
new file mode 100644
index 0000000..361988d
--- /dev/null
+++ b/new_translate_function
@@ -0,0 +1,91 @@
+ function TOOL_distrohopper_translate() {
+ # Shell options
+ shopt -s progcomp
+ shopt -u dirspell progcomp_alias
+
+ _sort_strings() {
+ # RM duplicate strings from an array and sorts them alphabetically
+ # Usage: _sort_strings "$@" (array of strings)
+ # Returns: $sorted_strings (array)
+ local string strings
+ declare -A strings
+ for string in "${@}"; do
+ [[ $string ]] && IFS=" " strings["${string:- }"]=1
+ done
+ # shellcheck disable=SC2207
+ IFS=$'\n' sorted_strings=($(sort <<< "${!strings[*]}"))
+ unset IFS
+ }
+
+ _clean_cfg_files() {
+ # RM duplicates lines and sorts them alphabetically
+ # Usage: _clean_cfg_files "$@" (array of files)
+ local file
+ for file in "$@"; do
+ mapfile -t strings < "$file"
+ _sort_strings "${strings[@]}"
+ printf "%s\n" "${sorted_strings[@]}" > "$file"
+ done
+ }
+
+ _get_strings_from_cfg() {
+ # Grabs strings from CFG files
+ # Usage: _get_strings_from_cfg "$@" (array of files)
+ # Returns: $_strings $cfg_list (arrays)
+ local file name
+ for file in "$@"; do
+ name=${file##*/}; name="${name/.cfg/_strings}"
+ mapfile -t "$name" < "$file"
+ [[ $name != en_strings ]] && cfg_list+=("$name")
+ done
+ }
+
+ _get_string_data() {
+ # Grabs string name and string value
+ # Returns: $data (array)
+ IFS=$'\n' read -d "" -ra data <<< "${1//=/$'\n'}"
+ data[1]=${data[1]//\"}
+ unset IFS
+ }
+
+ _translate_string() {
+ # Usage: _translate_string "string" "language code"
+ # Returns: $translated (string)
+ translated="$(curl -s https://api-free.deepl.com/v2/translate \
+ -d auth_key=f1414922-db81-5454-67bd-9608cdca44b3:fx \
+ -d "text=$1" -d "target_lang=${2^^}" \
+ | grep -o '"text":"[^"]*' | grep -o '[^"]*$')"
+ }
+
+ _translate_and_add_missing_strings_into_cfg() {
+ # Translates then write missing strings from base language
+ # into the various translation files (from $cfg_list)
+ local line language trad_strings
+ for line in "${en_strings[@]:?}"; do
+ _get_string_data "$line"
+ for language in "${cfg_list[@]}"; do
+ declare -n trad_strings="$language"
+ if [[ "${trad_strings[*]}" != *"${data[0]}="* ]]; then
+ _translate_string "${data[1]}" "${language/_strings}"
+ [[ -n $translated ]] && line="${data[0]}=\"${translated}\""
+ [[ -n $translated ]] && note="translated" || note="original"
+ trad_strings+=("$line"); file="${language/_strings/.cfg}"
+ printf "%s\n" "${trad_strings[@]}" > "lang/$file"
+ echo "=> ${data[0]} (${note}) added into $file"
+ fi
+ done
+ done
+ }
+
+ # Run ZMB Translate
+ if [[ $ttt == dh ]]; then
+ echo "Running ZMB translate (this could take a while)..."
+ _clean_cfg_files lang/*.cfg
+ _get_strings_from_cfg lang/*.cfg
+ _translate_and_add_missing_strings_into_cfg
+ _clean_cfg_files lang/*.cfg
+ [[ $note ]] && echo "==> done" || echo "==> nothing to translate"
+ else
+ echo "ERROR: you must specify 'dh' as argument"
+ fi
+ }
diff --git a/quickemu-tools b/quickemu-tools
new file mode 100755
index 0000000..3a47568
--- /dev/null
+++ b/quickemu-tools
@@ -0,0 +1,853 @@
+#! /bin/bash
+
+## Copyright (c) Alex Genovese https://github.com/TuxVinyards
+
+# licence: GPL3 https://www.gnu.org/licenses
+
+
+## Provides a set of qcow snapshot & msr tools to work with quickemu
+
+# https://github.com/quickemu-project/quickemu https://gitlab.com/qemu-project/qemu
+
+# Users should install 'quickemu' and may set up Virtual Machines as normal.
+
+
+## Install by placing script in /usr/bin (ensure chmod +x)
+
+# Run by opening a terminal in the VM folder and typing:
+
+# quickemu-tools --vm "file.conf"
+
+
+## Based on 'quickemu-mod' https://github.com/TuxVinyards/quickemu-mod
+
+# but, as having run time mods & hypervisor recipes removed, this 'tools' version
+
+# now disengages it from having to keep track of the main project ...
+
+
+# In theory, further disengagement could be achieved by routing straight 'qemu-img'
+
+# But as this should work with any version of the original 'quickemu'
+
+# the quickemu methods have been left, so any future add-ons might be possible. REVIEW
+
+
+
+## Any snippets re-used from https://github.com/quickemu-project/quickemu
+
+# are used to make the two projects work together easily & are used mainly
+
+# for the benefit of the original project.
+
+# Original snippets may be subject the original MIT licence.
+
+# The 'tools' project, as separate script, is covered by GPL3
+
+# even it it becomes adopted by the original project.
+
+# IF ANY 'MODDED' CODE BECOMES USED IN THE ORIGINAL QUICKEMU SCRIPTS,
+
+# OR ANY OTHER SIMILAR PROJECT, YOU SHOULD SHOW BOTH OF THE LICENCES
+
+# & SHOW CLEAR ATTRIBUTIONS TO THE CODE SECTIONS USED.
+
+
+
+QtoolsVersion="2023.03.28"
+
+
+
+## API --vm "file.conf" [ --path "path/folder" ]
+
+# where path to be used if .conf file not in current folder / present working directory
+
+
+## SETTINGS
+
+# General color & theming
+
+X_Shade="3"
+
+# Yellow 3 (recommended), Blue 4, Cyan 6 (brighter blue), Red 1
+
+# https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
+
+
+# File for default KVM behaviour for unhandled machine-specific registers. ( REVIEW )
+
+# Edit here if your OS locates 'modprobe.d' differently. Default is "/etc/modprobe.d/kvm-quickemu.conf"
+
+KVM_MSR_ModProbeFile="/etc/modprobe.d/kvm-quickemu.conf"
+
+
+CurrentFolder="$(pwd)"
+
+
+## Make sure shell is set during session to decimal separator of dot
+
+# LC_ALL=C changes too much, just set the numeric.
+
+# See locale setting discussion: https://unix.stackexchange.com/a/149129
+
+# Also https://unix.stackexchange.com/questions/62316/why-is-there-no-euro-english-locale?rq=1
+
+# & http://www.unicode.org/L2/L2001/01102-POSIX15897.htm
+
+
+export "LC_NUMERIC=C"
+
+export "LC_COLLATE=C"
+
+
+## MOD Standard Quickemu checks for '< 4' which at 2022/3 now needs a bump.
+
+# Some ver 5 script is now present in the standard release too ...
+
+# More Version 5 style scripting should be used:
+
+# See http://mywiki.wooledge.org/BashGuide/Practices#Choose_Your_Shell
+
+if ((BASH_VERSINFO[0] < 5)); then
+ echo "Sorry, you need Bash 5.0 or newer to run this script."
+ exit 1
+fi
+
+
+LAUNCHER="$(basename "$0")"
+
+
+if [[ ! $(type -p quickemu) ]]; then
+ echo "ERROR! QuickEmu not found. Please install."
+ exit 1
+fi
+
+
+# TODO add 'guestfs-tools' & an interface for 'virt-resize'
+
+
+printColor () {
+
+ tput setaf "$X_Shade"
+
+ # shellcheck disable=SC2059
+
+ printf "$@"
+
+ tput sgr0
+
+}
+
+exit () {
+
+ # trap to keep terminal open if started by mouse click -t secs
+
+ printf "\n\n"
+
+ if [[ ! $CLI ]] && [[ $1 ]]; then
+
+ printColor " ERROR : [Enter] to quit or [h] to hold terminal open \n\n"
+
+ read -rp " > " -t 30 ExitTrap
+
+ fi
+
+ [[ ! $CLI ]] && [[ $ExitTrap == "h" ]] && printf "\n\n Holding terminal open [Enter] to quit \n\n" && read -rp " > "
+
+ tput cnorm
+
+ command exit "$@"
+
+}
+
+
+function_find_kvm_msr_default_and_status () {
+
+ # outputs boths vars 'KVM_MSR_DefaultConf' & 'KVM_MSR_status' with value Y or N
+
+ # finds and flags if MSRS has a config conflict
+
+ KVM_MSR_status="$(cat /sys/module/kvm/parameters/ignore_msrs)"
+
+ [[ ! $KVM_MSR_ModProbeFile ]] && KVM_MSR_ModProbeFile="/etc/modprobe.d/kvm-quickemu.conf"
+
+ KVM_MSR_DefaultConf="$(cat "$KVM_MSR_ModProbeFile" 2> /dev/null)"
+
+ [[ "$KVM_MSR_DefaultConf" == *'=Y' ]] && KVM_MSR_default="Y"
+
+ [[ "$KVM_MSR_DefaultConf" == *'=N' ]] || [[ ! -e "$KVM_MSR_ModProbeFile" ]] && KVM_MSR_default="N"
+
+ if [[ $VM_InstanceName ]]; then
+
+ if [[ "$VM_InstanceName" == *windows* ]] || [[ "$VM_InstanceName" == *macos* ]] ; then
+
+ if [[ $KVM_MSR_status == "N" ]]; then KVM_MSR_Error=1 ; else KVM_MSR_Error= ; fi
+
+ elif [[ "$VM_InstanceName" != *windows* ]] && [[ "$VM_InstanceName" != *macos* ]] ; then
+
+ if [[ $KVM_MSR_status == "Y" ]]; then KVM_MSR_Error=1 ; else KVM_MSR_Error= ; fi
+
+ else
+
+ KVM_MSR_Error=
+
+ fi
+
+ fi
+}
+
+print_kvm_status () {
+
+ function_find_kvm_msr_default_and_status
+
+ if [[ $KVM_MSR_status == "Y" ]] ; then
+
+ printf "\n\n KVM: /sys/module/kvm/parameters/ignore_msrs = Y"
+
+ [[ $VM_InstanceName ]] && [[ $KVM_MSR_Error ]] && printColor " ERROR "
+
+ printf "\n"
+
+ else
+
+ printf "\n\n KVM: /sys/module/kvm/parameters/ignore_msrs = N"
+
+ [[ $VM_InstanceName ]] && [[ $KVM_MSR_Error ]] && printColor " ERROR "
+
+ printf "\n"
+
+ fi
+
+}
+
+
+toggle_msr_defaults () {
+
+ # Modded & now reversible rewrite of original quickemu's function 'ignore_msrs_always'
+
+ # https://www.linux-kvm.org/page/Category:Docs
+
+ if [[ ! -d /etc/modprobe.d ]]; then
+
+ printf "\n ERROR! /etc/modprobe.d was not found. \n\n See notes, it may be possible to manually create modprobe.d/kvm-quickemu.conf \n\n"
+
+ else
+
+ printColor "\n\n Configure default, boot-up, KVM behaviour "
+
+ printf "for unhandled machine-specific registers"
+
+ printf "\n\n Normal setting is N (don't ignore) but Windows and MacOS require Y (true) 'ignore' "
+
+
+ function_find_kvm_msr_default_and_status
+
+ printColor "\n\n Status: /sys/module/kvm/parameters/ignore_msrs = %s Current Default = %s" "$KVM_MSR_status" "$KVM_MSR_default"
+
+
+ [[ ! $KVM_MSR_ModProbeFile ]] && KVM_MSR_ModProbeFile="/etc/modprobe.d/kvm-quickemu.conf"
+
+ if [[ ! -e "$KVM_MSR_ModProbeFile" ]]; then
+
+ printf "\n\n \'%s\' needs to be created " "$KVM_MSR_ModProbeFile"
+
+ fi
+
+ printf "\n\n [y] to set Y [n] to set N [b] to go back \n\n"
+
+ read -rp " > " Set_MSR_defaults
+
+ # set .conf file content & update initramfs in all kernels (y/n or none)
+
+ if [[ $Set_MSR_defaults == "y" ]]; then
+
+ printf "\n\n Updating 'initramfs' may take a moment or two ... \n\n"
+
+ # As per Martin's solution in original quickemu, needs 'tee' to get this to work,
+ # but route tee's stdout to null to tidy the screen
+
+ echo "options kvm ignore_msrs=Y" | sudo tee "$KVM_MSR_ModProbeFile" 1> /dev/null
+ sudo update-initramfs -k all -u
+
+ elif [[ $Set_MSR_defaults == "n" ]]; then
+
+ printf "\n\n Updating 'initramfs' may take a moment or two ... \n\n"
+
+ echo "options kvm ignore_msrs=N" | sudo tee "$KVM_MSR_ModProbeFile" 1> /dev/null
+ sudo update-initramfs -k all -u
+
+ fi
+
+ fi
+
+ [[ $CLI ]] && exit 1
+
+}
+
+
+show_kvm_sudo_security_note () {
+
+ printColor "\n QuickEmu-Tools require 'sudo' permissions to echo true or false to 'ignore_msrs'"
+
+ printf "\n\n This allows you to create a temporary MSRS status that may be changed at any time,"
+
+ printf "\n\n allowing you to match the selected guest VM that you want to run."
+
+
+ printColor "\n\n\n If you have concerns about this script, or about giving elevated permissions, "
+
+ printf "\n\n then the script should be checked or you should issue these commands manually:"
+
+ printf "\n\n Open a side terminal, use shift-crtl-c to copy the displayed command & shift-crtl-v to paste it. "
+
+ printf "\n\n Elevated permissions will then exist only in the side terminal & cease once it is closed. "
+
+ printf "\n\n Return to q-tools & select 'leave as'. Q-Tools will re-read msrs settings & auto-update. "
+
+
+ printColor "\n\n\n If you mainly use Windows or Mac VM's then a file '.../modprobe.d/kvm-quickemu.conf' "
+
+ printf "\n\n can be created to modify the load up settings. Quickemu-Tools has a new built in function"
+
+ printf "\n\n that can set this up & also allows future adjustments may be made."
+
+ printf "\n\n Or it may be carried out manually... See settings, script & further notes for details."
+
+ printColor "\n\n\n Status: /sys/module/kvm/parameters/ignore_msrs = %s Current Default = %s" "$KVM_MSR_status" "$KVM_MSR_default"
+
+ printf "\n\n Windows or MacOS should be set to 'Y' "
+
+ printf "\n"
+
+}
+
+
+select_msr_config () {
+
+ # MSR_offer normally present if MSRS/OS conflict previously detected,
+ # however, presume selector is being used to change current status REVIEW
+
+ print_kvm_status
+
+ if [[ $KVM_MSR_status == "Y" ]]; then MSR_offer="N" ; else MSR_offer="Y" ; fi
+
+ KVM_MSR_selector=
+
+ [[ $KVM_MSR_selector_LoadHelp ]] && show_kvm_sudo_security_note
+
+
+ while true ; do
+
+ if [[ $MSR_offer == "Y" ]]; then
+
+ printf "\n\n Set Y : echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs ? "
+
+ printColor "\n\n [y] to set Y "
+
+ printf " [enter] leave as N"
+
+ else
+
+ printf "\n\n Set N : echo 0 | sudo tee /sys/module/kvm/parameters/ignore_msrs ? "
+
+ printColor "\n\n [n] to set N "
+
+ printf " [enter] leave as Y"
+
+ fi
+
+ printf " [d] to set the boot defaults"
+
+ [[ $KVM_MSR_selector != "h" ]] || [[ $KVM_MSR_selector_LoadHelp ]] && printf " [h] see help "
+
+ printf "\n\n"
+
+ read -rp " > " KVM_MSR_selector
+
+ printf "\n"
+
+ [[ $KVM_MSR_selector == "h" ]] && show_kvm_sudo_security_note
+
+ [[ ! $KVM_MSR_selector ]] && break
+
+ [[ $KVM_MSR_selector == "y" && $MSR_offer == "N" ]] || [[ $KVM_MSR_selector == "n" && $MSR_offer == "Y" ]] && break
+
+ if [[ $KVM_MSR_selector == "y" ]]|| [[ $KVM_MSR_selector == "n" ]]; then
+
+ # As per Martin's solution in original quickemu, needs 'tee' to get this to work,
+ # but route tee's stdout to null to tidy the screen
+
+ [[ $KVM_MSR_selector == "y" ]] && echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs 1> /dev/null
+
+ [[ $KVM_MSR_selector == "n" ]] && echo 0 | sudo tee /sys/module/kvm/parameters/ignore_msrs 1> /dev/null
+
+ print_kvm_status
+
+ printColor "\n\n [enter] to return \n\n"
+ read -rp " > "
+
+ break
+
+ fi
+
+ if [[ $KVM_MSR_selector == "d" ]]; then
+
+ toggle_msr_defaults
+
+ if [[ $Set_MSR_defaults == "b" ]]; then
+
+ Set_MSR_defaults=
+ print_kvm_status
+ printColor "\n\n Make TEMPORARY setting adjustments to MSRS ?"
+
+ else
+ function_find_kvm_msr_default_and_status
+ break
+ fi
+
+ fi
+
+ done
+
+ KVM_MSR_selector=
+ KVM_MSR_selector_LoadHelp=
+
+}
+
+msrs_conflict_check_resolver() {
+
+ # Do a check ...
+
+ function_find_kvm_msr_default_and_status
+
+ # Display & Offer config settings if MSRS/OS CONFLICT exists
+
+ if [[ $KVM_MSR_status == "N" ]] ; then
+
+ # usual system default = N
+
+ if [[ "$VM_InstanceName" == *windows* ]] || [[ "$VM_InstanceName" == *macos* ]] ; then
+
+ printColor "\n\n Selected: %s " "$VM_InstanceName"
+
+ printf " 'ignore_msrs' is recommended for Windows and Mac"
+
+ #printf "\n\n Status: /sys/module/kvm/parameters/ignore_msrs = N Default = %s" "$KVM_MSR_default"
+
+ MSR_offer="Y"
+
+ select_msr_config
+
+ function_find_kvm_msr_default_and_status
+
+ if [[ $KVM_MSR_status == "N" ]]; then KVM_MSR_Error=1 ; else KVM_MSR_Error= ; fi
+
+ fi
+
+ else
+
+ # Status = Y & which is only recommended for Windows & Mac
+
+ if [[ "$VM_InstanceName" != *windows* ]] && [[ "$VM_InstanceName" != *macos* ]] ; then
+
+ printColor "\n\n Selected: %s " "$VM_InstanceName"
+
+ printf " 'ignore_msrs' is only recommended for Windows and Mac"
+
+ #printf "\n\n Status: /sys/module/kvm/parameters/ignore_msrs = Y Default = %s" "$KVM_MSR_default"
+
+ MSR_offer="N"
+
+ select_msr_config
+
+ function_find_kvm_msr_default_and_status
+
+ if [[ $KVM_MSR_status == "Y" ]]; then KVM_MSR_Error=1 ; else KVM_MSR_Error= ; fi
+
+ fi
+
+ fi
+
+}
+
+
+
+function_conf_error () {
+
+ printf "\n\n ERROR Quickemu-Tools Settings, VM folder & conf file(s)"
+
+ if [[ $1 ]] ; then printf "\n\n Please check %s settings, location & content ... \n\n" "$1"
+
+ else printf "\n\n Please check the settings and re-run this script ... \n\n" ; fi
+
+ printColor "\n\n [Enter] for help [q] to quit \n\n"
+
+ read -rp " > "
+
+ [[ $REPLY == "q" ]] && printf "\n\n" && command exit
+
+ show_quickemu_tools_help
+
+ command exit
+}
+
+
+function_snapshot_list() {
+
+ printf "\n\n"
+
+ quickemu -vm "$VM_Conf_File" --snapshot info
+
+}
+
+
+function show_quickemu_tools_help {
+
+ printColor "\n\n QuickEmu-Tools version %s " "$QtoolsVersion"
+
+ printColor "\n\n Easy snapshot & MSRS tools for the QuickEmu Project"
+
+ printf "\n\n Manage multiple snapshots. Recover Disk Space. "
+
+ printf "\n\n Toggle boot-up & temporary MSRS's "
+
+ printf "\n\n\n For code contributions, add-ons, info & updates see:"
+
+ printf "\n\n https://github.com/TuxVinyards/"
+
+ printf "\n\n\n From a terminal: "
+
+ printColor "%s --vm \"vm-name.conf\" [ --path \"path/folder\" ] " "$LAUNCHER"
+
+ printf "\n\n Add path if working from outside the VM's .conf folder"
+
+ printf "\n\n [enter] to return \n\n"
+
+ read -rp " > "
+}
+
+show_qmod_title() {
+
+ printColor "\n\n Quickemu Tools - Version %s" "$QtoolsVersion"
+
+ printf "\n\n A menu interfaced tool set for the quickemu project ..... \n\n"
+
+}
+
+
+function_show_main_menu_header () {
+
+ printf "\033c"
+
+ show_qmod_title
+
+ printColor " %s " "$VM_InstanceName"
+
+ printf " @ %s" "$VM_Conf_Dir"
+
+}
+
+
+
+## API READ ####################################################################################################
+
+
+# https://unix.stackexchange.com/questions/220330/hide-and-unhide-cursor-with-tput
+
+tput civis
+
+if [[ ! $1 ]]; then
+
+ show_quickemu_tools_help
+
+ echo
+ command exit 1
+
+else
+
+ ## API --vm "file.conf" [ --path "path/folder" ]
+
+ # where path to be used if .conf file not in current folder / present working directory
+
+ while [[ $# -gt 0 ]]; do
+
+ case "$1" in
+
+ -vm|--vm)
+ VM_Conf_File="$2"
+ shift
+ shift ;;
+
+ --path|-path)
+ VM_Conf_Dir="$2"
+ shift
+ shift ;;
+
+ esac
+
+ done
+
+
+ [[ ! $VM_Conf_Dir ]] && VM_Conf_Dir="$CurrentFolder"
+
+ [[ ! $VM_Conf_File ]] && function_conf_error "Qtools COMMAND LINE Instruction,"
+
+ [[ ! -e "$VM_Conf_Dir/$VM_Conf_File" ]] && function_conf_error "Qtools COMMAND LINE Instruction,"
+
+
+ ## Check file/folder exists
+
+ [[ ! -d "$VM_Conf_Dir" ]] && function_conf_error "folder"
+
+ # change directory to where the VM is
+
+ if [[ $CurrentFolder != "$VM_Conf_Dir" ]]; then
+
+ ! cd "$VM_Conf_Dir" && printColor "\n\n ERROR .conf folder switching \n\n" && exit 1
+
+ fi
+
+ [[ ! -e "$VM_Conf_File" ]] && function_conf_error ".conf file"
+
+
+ # Quickemu sets the same name to the .conf file and to the main folder
+
+ VM_InstanceName="${VM_Conf_File/.conf}"
+
+ # VM_QCOW_Dir="$VM_Conf_Dir/$VM_InstanceName"
+
+ # check that the dir contains the right files && grep .conf for right content
+
+ [[ ! $(ls "$VM_InstanceName"/*.qcow2 2> /dev/null) ]] && function_conf_error "folder"
+
+ ! grep -q 'guest_os=' "$VM_Conf_File" && function_conf_error ".conf file"
+
+
+ ## Check KVM parameter settings & advise according to guest OS
+
+ KVM_MSR_selector=
+
+ function_find_kvm_msr_default_and_status
+
+ #msrs_conflict_check_resolver
+
+fi
+
+
+printf "\033c"
+
+show_qmod_title
+
+MultiInstanceError="$(pgrep -c 'quickemu-mod')"
+
+if [[ $MultiInstanceError -gt 1 ]]; then
+
+ printColor "\n\n ERROR more than one instance of q-tools is running \n\n"
+
+ read -rp " Close the other instances, then press [enter] to continue > "
+
+fi
+
+check_instance_runtime() {
+
+ # https://www.qemu.org/docs/master/tools/qemu-img.html
+
+ InstancePID="$(pgrep "$VM_InstanceName")"
+
+ if [[ $InstancePID ]]; then
+
+ printColor "\n\n WARNING snapshots operations should NOT be carried out when VM running \n\n"
+
+ read -rp " Close down the VM, then press [enter] to continue > "
+
+ fi
+
+}
+
+check_instance_runtime
+
+# MAIN MENU (select VM then choose actions to do)
+
+while true ; do
+
+ MainMenuChoice=
+
+ SnapTitle=
+
+ SnapNumber=
+
+ SnapName=
+
+ function_show_main_menu_header
+
+
+ if [[ ! $MainMenuChoice ]]; then
+
+ print_kvm_status
+
+ printf "\n\n [m] toggle msrs "
+
+ printf "\n\n\n [sl] list [sc] create [sd] delete [sa] apply snapshots "
+
+
+ printf "\n\n\n [h] show help & info "
+
+ printf "\n\n [q] quit "
+
+ printf "\n\n\n"
+
+ read -rp " > " MainMenuChoice
+
+ fi
+
+
+ # ACTIONS:
+
+ if [[ $MainMenuChoice == "h" ]] ; then
+
+ show_quickemu_tools_help
+
+ elif [[ $MainMenuChoice == "m" ]] ; then
+
+ #KVM_MSR_selector_LoadHelp=1
+ select_msr_config
+ #msrs_conflict_check_resolver
+
+ elif [[ $MainMenuChoice == "q" ]] ; then
+
+ printf "\n\n"
+ MainMenuChoice=
+ break
+ exit
+
+ elif [[ $MainMenuChoice == "sl" ]] ; then
+
+ check_instance_runtime
+ function_snapshot_list
+ printf "\n\n [enter] to return to menu \n\n "
+ read -rp " > "
+
+ elif [[ $MainMenuChoice == "sc" ]] ; then
+
+ check_instance_runtime
+ function_snapshot_list
+ printColor "\n\n Give [title] or [enter] for date.time [b] back to menu "
+ SnapTitle=
+ printf "\n\n"
+ read -rp " > " SnapTitle
+ printf "\n\n"
+
+ [[ ! $SnapTitle ]] && SnapTitle="$(date +%b%d.%R)"
+
+ [[ $SnapTitle != "b" ]] && quickemu -vm "$VM_Conf_File" --snapshot create "$SnapTitle"
+
+ printf "\n\n [enter] to return to menu \n\n "
+ read -rp " > "
+
+ elif [[ $MainMenuChoice == "sd" ]] ; then
+
+ printColor "\n\n Quickemu-Tools Snapshot Deletion:"
+
+ check_instance_runtime
+ function_snapshot_list
+
+ # Create range-selectable array
+ SnapListString="$(function_snapshot_list | grep '[0-9][0-9]:')"
+ mapfile -t SnapListArrRaw <<< "$SnapListString"
+
+ i=0
+ printColor "\n\n ID Array Name \n\n"
+ while [[ "${SnapListArrRaw[$i]}" ]]; do
+ IFS=' ' read -ra SnapListArrSeparated <<< "${SnapListArrRaw[$i]}"
+ printf "%2d %2d %s \n" "${SnapListArrSeparated[0]}" "$i" "${SnapListArrSeparated[1]}"
+ ((i+=1))
+ done
+
+ SnapListArrTotal=$((i-1))
+
+ printColor "\n\n Give ARRAY number 0 to %s of snapshot or start of snapshot range to delete" "$SnapListArrTotal"
+ printf "\n\n [enter] to return to main menu "
+
+ SnapName=
+ SnapDeleteStart=
+ SnapDeleteEnd=
+ SnapDeleteConfirm=
+
+ printf "\n\n"
+ read -rp " > " SnapDeleteStart
+
+
+ if [[ $SnapDeleteStart ]]; then
+
+ printColor "\n\n [enter] for individual snapshot or ARRAY [number] for end of range (inclusive) \n\n"
+ read -rp " > " SnapDeleteEnd
+
+ if [[ $SnapDeleteEnd ]]; then
+ printf "\n Array Range = %s to %s " "$SnapDeleteStart" "$SnapDeleteEnd"
+ else
+ printf "\n Delete = Array entry %s " "$SnapDeleteStart"
+ SnapDeleteEnd="$SnapDeleteStart"
+ fi
+
+ printColor "\n\n [enter] to continue [b] back to main menu \n\n"
+
+ read -rp " > " SnapDeleteConfirm
+
+
+ if [[ $SnapDeleteConfirm == "b" ]]; then
+
+ printf "\n\n Deletion schedule has been CANCELLED"
+
+ else
+
+ SnapDeleteRangeCounter=$SnapDeleteStart
+
+ while [[ $SnapDeleteRangeCounter -le $SnapDeleteEnd ]]; do
+ IFS=' ' read -ra SnapListArrSeparated <<< "${SnapListArrRaw[$SnapDeleteRangeCounter]}"
+ SnapName="${SnapListArrSeparated[1]}"
+
+ if [[ ! $SnapName ]]; then
+ printColor "\n\n ERROR with SnapShot Array List \n\n"
+ exit 1
+ else
+ printColor "\n\n Deleting SnapShot %2d %2d %s \n\n" "${SnapListArrSeparated[0]}" "$SnapDeleteRangeCounter" "${SnapListArrSeparated[1]}"
+ quickemu -vm "$VM_Conf_File" --snapshot delete "$SnapName"
+ fi
+ ((SnapDeleteRangeCounter+=1))
+ done
+
+ fi
+
+ printf "\n\n [enter] to return to menu \n\n "
+ read -rp " > "
+
+ fi
+
+ elif [[ $MainMenuChoice == "sa" ]] ; then
+
+ check_instance_runtime
+ function_snapshot_list
+ printColor "\n\n Give number of snapshot to use [enter] to return to menu "
+ SnapNumber=
+
+ printf "\n\n"
+ read -rp " > " SnapNumber
+ printf "\n\n"
+
+ if [[ $SnapNumber ]]; then
+
+ quickemu -vm "$VM_Conf_File" --snapshot apply "$SnapNumber"
+
+ printf "\n\n May take a moment .... \n\n"
+ printColor "\n\n Snapshot %s has been applied. \n\n" "$SnapNumber "
+
+ fi
+
+ fi
+
+done
+
+
+# vim:tabstop=2:shiftwidth=2:expandtab
+
+##
diff --git a/supported/agarimos.desktop b/supported/agarimos.desktop
index 1b1441c..dd2c48d 100644
--- a/supported/agarimos.desktop
+++ b/supported/agarimos.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=agarimos
-releases=latest
-editions=plasma gnome xfce
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest" --field="Edition:CB" "plasma"!"gnome"!"xfce" | xargs -I{} sh -c "./quickget agarimos {}"'
-Icon=/home/zen/git/distrohopper/icons/agarimos.png
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest" --field="Edition:CB" "plasma"!"gnome"!"xfce" | xargs -I{} sh -c "./quickget agarimos {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/alma.desktop b/supported/alma.desktop
index 7c6e76f..5a70eb2 100644
--- a/supported/alma.desktop
+++ b/supported/alma.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=alma
-releases=8.6 8.7 9.0 9.1
-editions=minimal dvd
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "8.6"!"8.7"!"9.0"!"9.1" --field="Edition:CB" "minimal"!"dvd" | xargs -I{} sh -c "./quickget alma {}"'
-Icon=/home/zen/git/distrohopper/icons/alma.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "8.6"!"8.7"!"9.0"!"9.1" --field="Edition:CB" "minimal"!"dvd" | xargs -I{} sh -c "./quickget alma {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/alpine.desktop b/supported/alpine.desktop
index 3d7e184..1aa01b7 100644
--- a/supported/alpine.desktop
+++ b/supported/alpine.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=alpine
-releases=3.12 3.13 3.14 3.15 latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "3.12"!"3.13"!"3.14"!"3.15"!"latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget alpine {}"'
-Icon=/home/zen/git/distrohopper/icons/alpine.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "3.12"!"3.13"!"3.14"!"3.15"!"latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget alpine {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/android.desktop b/supported/android.desktop
index eb058e5..7aa77a1 100644
--- a/supported/android.desktop
+++ b/supported/android.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=android
-releases=7.1 8.1 9.0
-editions=x86 x86_64
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "7.1"!"8.1"!"9.0" --field="Edition:CB" "x86"!"x86_64" | xargs -I{} sh -c "./quickget android {}"'
-Icon=/home/zen/git/distrohopper/icons/android.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "7.1"!"8.1"!"9.0" --field="Edition:CB" "x86"!"x86_64" | xargs -I{} sh -c "./quickget android {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/archcraft.desktop b/supported/archcraft.desktop
index 8309964..7240c89 100644
--- a/supported/archcraft.desktop
+++ b/supported/archcraft.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=archcraft
-releases=latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget archcraft {}"'
-Icon=/home/zen/git/distrohopper/icons/archcraft.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget archcraft {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/archlinux.desktop b/supported/archlinux.desktop
index 9d7cc1f..64cbc74 100644
--- a/supported/archlinux.desktop
+++ b/supported/archlinux.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=archlinux
-releases=latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget archlinux {}"'
-Icon=/home/zen/git/distrohopper/icons/archlinux.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget archlinux {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/arcolinux.desktop b/supported/arcolinux.desktop
index ed00084..db9b4a9 100644
--- a/supported/arcolinux.desktop
+++ b/supported/arcolinux.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=arcolinux
-releases=v21.09.11 v21.11.05 v22.01.10
-editions=large small
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "v21.09.11"!"v21.11.05"!"v22.01.10" --field="Edition:CB" "large"!"small" | xargs -I{} sh -c "./quickget arcolinux {}"'
-Icon=/home/zen/git/distrohopper/icons/arcolinux.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "v21.09.11"!"v21.11.05"!"v22.01.10" --field="Edition:CB" "large"!"small" | xargs -I{} sh -c "./quickget arcolinux {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/batocera.desktop b/supported/batocera.desktop
index 91888e3..27183db 100644
--- a/supported/batocera.desktop
+++ b/supported/batocera.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=batocera
-releases=32 33 34
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "32"!"33"!"34" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget batocera {}"'
-Icon=/home/zen/git/distrohopper/icons/batocera.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "32"!"33"!"34" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget batocera {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/blendos.desktop b/supported/blendos.desktop
index 2988ff1..3725cf2 100644
--- a/supported/blendos.desktop
+++ b/supported/blendos.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=blendos
-releases=23.01
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "23.01" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget blendos {}"'
-Icon=/home/zen/git/distrohopper/icons/blendos.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "23.01" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget blendos {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/cachyos.desktop b/supported/cachyos.desktop
index ec40fd1..0726a4a 100644
--- a/supported/cachyos.desktop
+++ b/supported/cachyos.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=cachyos
-releases=latest
-editions=kde gnome cli
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest" --field="Edition:CB" "kde"!"gnome"!"cli" | xargs -I{} sh -c "./quickget cachyos {}"'
-Icon=/home/zen/git/distrohopper/icons/cachyos.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest" --field="Edition:CB" "kde"!"gnome"!"cli" | xargs -I{} sh -c "./quickget cachyos {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/centos-stream.desktop b/supported/centos-stream.desktop
index fed0268..4827b90 100644
--- a/supported/centos-stream.desktop
+++ b/supported/centos-stream.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=centos-stream
-releases=8 9
-editions=dvd1 boot
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "8"!"9" --field="Edition:CB" "dvd1"!"boot" | xargs -I{} sh -c "./quickget centos-stream {}"'
-Icon=/home/zen/git/distrohopper/icons/centos-stream.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "8"!"9" --field="Edition:CB" "dvd1"!"boot" | xargs -I{} sh -c "./quickget centos-stream {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/cereus.desktop b/supported/cereus.desktop
index 0aeedf1..323d7d1 100644
--- a/supported/cereus.desktop
+++ b/supported/cereus.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=cereus
-releases=latest
-editions=lxqt xfce
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest" --field="Edition:CB" "lxqt"!"xfce" | xargs -I{} sh -c "./quickget cereus {}"'
-Icon=/home/zen/git/distrohopper/icons/cereus.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest" --field="Edition:CB" "lxqt"!"xfce" | xargs -I{} sh -c "./quickget cereus {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/debian.desktop b/supported/debian.desktop
index c0d652c..f812195 100644
--- a/supported/debian.desktop
+++ b/supported/debian.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=debian
-releases=10.0.0 10.1.0 10.2.0 10.3.0 10.4.0 10.5.0 10.6.0 10.7.0 10.8.0 10.9.0 10.10.0 10.11.0 10.12.0 10.13.0 11.0.0 11.1.0 11.2.0 11.3.0 11.4.0 11.5.0 11.6.0
-editions=standard cinnamon gnome kde lxde lxqt mate xfce netinst
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "10.0.0"!"10.1.0"!"10.2.0"!"10.3.0"!"10.4.0"!"10.5.0"!"10.6.0"!"10.7.0"!"10.8.0"!"10.9.0"!"10.10.0"!"10.11.0"!"10.12.0"!"10.13.0"!"11.0.0"!"11.1.0"!"11.2.0"!"11.3.0"!"11.4.0"!"11.5.0"!"11.6.0" --field="Edition:CB" "standard"!"cinnamon"!"gnome"!"kde"!"lxde"!"lxqt"!"mate"!"xfce"!"netinst" | xargs -I{} sh -c "./quickget debian {}"'
-Icon=/home/zen/git/distrohopper/icons/debian.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "10.0.0"!"10.1.0"!"10.2.0"!"10.3.0"!"10.4.0"!"10.5.0"!"10.6.0"!"10.7.0"!"10.8.0"!"10.9.0"!"10.10.0"!"10.11.0"!"10.12.0"!"10.13.0"!"11.0.0"!"11.1.0"!"11.2.0"!"11.3.0"!"11.4.0"!"11.5.0"!"11.6.0" --field="Edition:CB" "standard"!"cinnamon"!"gnome"!"kde"!"lxde"!"lxqt"!"mate"!"xfce"!"netinst" | xargs -I{} sh -c "./quickget debian {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/deepin.desktop b/supported/deepin.desktop
index 7fe4b49..2d9b1b7 100644
--- a/supported/deepin.desktop
+++ b/supported/deepin.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=deepin
-releases=20 20.1 20.2 20.2.1 20.2.2 20.2.3 20.2.4 20.3 20.4 20.5 20.6 20.7
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "20"!"20.1"!"20.2"!"20.2.1"!"20.2.2"!"20.2.3"!"20.2.4"!"20.3"!"20.4"!"20.5"!"20.6"!"20.7" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget deepin {}"'
-Icon=/home/zen/git/distrohopper/icons/deepin.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "20"!"20.1"!"20.2"!"20.2.1"!"20.2.2"!"20.2.3"!"20.2.4"!"20.3"!"20.4"!"20.5"!"20.6"!"20.7" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget deepin {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/devuan.desktop b/supported/devuan.desktop
index 6511c2a..dadf45b 100644
--- a/supported/devuan.desktop
+++ b/supported/devuan.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=devuan
-releases=beowulf chimaera
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "beowulf"!"chimaera" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget devuan {}"'
-Icon=/home/zen/git/distrohopper/icons/devuan.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "beowulf"!"chimaera" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget devuan {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/dietpi.desktop b/supported/dietpi.desktop
index d0b8801..6fbfd98 100644
--- a/supported/dietpi.desktop
+++ b/supported/dietpi.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=dietpi
-releases=bios uefi
-editions=bookworm bookworm-installer bullseye bullseye-installer
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "bios"!"uefi" --field="Edition:CB" "bookworm"!"bookworm-installer"!"bullseye"!"bullseye-installer" | xargs -I{} sh -c "./quickget dietpi {}"'
-Icon=/home/zen/git/distrohopper/icons/dietpi.png
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "bios"!"uefi" --field="Edition:CB" "bookworm"!"bookworm-installer"!"bullseye"!"bullseye-installer" | xargs -I{} sh -c "./quickget dietpi {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/dragonflybsd.desktop b/supported/dragonflybsd.desktop
index cab5e8e..b4d4d0d 100644
--- a/supported/dragonflybsd.desktop
+++ b/supported/dragonflybsd.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=dragonflybsd
-releases=6.4.0
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "6.4.0" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget dragonflybsd {}"'
-Icon=/home/zen/git/distrohopper/icons/dragonflybsd.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "6.4.0"!"6.2.2"!"6.2.1"!"6.0.1"!"6.0.0"!"5.8.3"!"5.8.2"!"5.8.1"!"5.6.3"!"5.8.0"!"5.6.2"!"5.6.1"!"5.6.0"!"5.4.3"!"5.4.2"!"5.4.1"!"5.4.0"!"5.2.2"!"5.2.1"!"5.2.0"!"5.0.2"!"5.0.1"!"5.0.0" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget dragonflybsd {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/elementary.desktop b/supported/elementary.desktop
index 236033f..0b88ca2 100644
--- a/supported/elementary.desktop
+++ b/supported/elementary.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=elementary
-releases=7.0
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "7.0" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget elementary {}"'
-Icon=/home/zen/git/distrohopper/icons/elementary.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "7.0" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget elementary {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/endeavouros.desktop b/supported/endeavouros.desktop
index 867d0a6..75d10d2 100644
--- a/supported/endeavouros.desktop
+++ b/supported/endeavouros.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=endeavouros
-releases=apollo_22_1 artemis-22_6 artemis_neo_22_7 artemis_neo_22_8 artemis_nova_22_9 atlantis-21_4 atlantis_neo-21_5 cassini_22_12
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "apollo_22_1"!"artemis-22_6"!"artemis_neo_22_7"!"artemis_neo_22_8"!"artemis_nova_22_9"!"atlantis-21_4"!"atlantis_neo-21_5"!"cassini_22_12" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget endeavouros {}"'
-Icon=/home/zen/git/distrohopper/icons/endeavouros.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "apollo_22_1"!"artemis-22_6"!"artemis_neo_22_7"!"artemis_neo_22_8"!"artemis_nova_22_9"!"atlantis-21_4"!"atlantis_neo-21_5"!"cassini_22_12" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget endeavouros {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/endless.desktop b/supported/endless.desktop
index 25a1bdf..a5b359f 100644
--- a/supported/endless.desktop
+++ b/supported/endless.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=endless
-releases=5.0.0
-editions=base en fr pt_BR es
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "5.0.0" --field="Edition:CB" "base"!"en"!"fr"!"pt_BR"!"es" | xargs -I{} sh -c "./quickget endless {}"'
-Icon=/home/zen/git/distrohopper/icons/endless.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "5.0.0" --field="Edition:CB" "base"!"en"!"fr"!"pt_BR"!"es" | xargs -I{} sh -c "./quickget endless {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/fedora.desktop b/supported/fedora.desktop
index b0d1036..5d51629 100644
--- a/supported/fedora.desktop
+++ b/supported/fedora.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=fedora
-releases=33 34 35 36 37
-editions=Workstation Cinnamon i3 KDE LXDE LXQt Mate Xfce Silverblue Server
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "33"!"34"!"35"!"36"!"37" --field="Edition:CB" "Workstation"!"Cinnamon"!"i3"!"KDE"!"LXDE"!"LXQt"!"Mate"!"Xfce"!"Silverblue"!"Server" | xargs -I{} sh -c "./quickget fedora {}"'
-Icon=/home/zen/git/distrohopper/icons/fedora.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "33"!"34"!"35"!"36"!"37" --field="Edition:CB" "Workstation"!"Cinnamon"!"i3"!"KDE"!"LXDE"!"LXQt"!"Mate"!"Xfce"!"Silverblue"!"Server" | xargs -I{} sh -c "./quickget fedora {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/freebsd.desktop b/supported/freebsd.desktop
index 85a09a0..f3be9cc 100644
--- a/supported/freebsd.desktop
+++ b/supported/freebsd.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=freebsd
-releases=12.3 12.4 13.0 13.1 13.2
-editions=disc1 dvd1
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "12.3"!"12.4"!"13.0"!"13.1"!"13.2" --field="Edition:CB" "disc1"!"dvd1" | xargs -I{} sh -c "./quickget freebsd {}"'
-Icon=/home/zen/git/distrohopper/icons/freebsd.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "12.3"!"12.4"!"13.0"!"13.1"!"13.2" --field="Edition:CB" "disc1"!"dvd1" | xargs -I{} sh -c "./quickget freebsd {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/freedos.desktop b/supported/freedos.desktop
index 42b690f..a43eac2 100644
--- a/supported/freedos.desktop
+++ b/supported/freedos.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=freedos
-releases=1.2 1.3
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "1.2"!"1.3" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget freedos {}"'
-Icon=/home/zen/git/distrohopper/icons/freedos.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "1.2"!"1.3" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget freedos {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/fvoid.desktop b/supported/fvoid.desktop
index b8c290f..ac6f754 100644
--- a/supported/fvoid.desktop
+++ b/supported/fvoid.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=fvoid
-releases=latest 20230222 20230124 20221021 20220818
-editions=lxqt
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest"!"20230222"!"20230124"!"20221021"!"20220818" --field="Edition:CB" "lxqt" | xargs -I{} sh -c "./quickget fvoid {}"'
-Icon=/home/zen/git/distrohopper/icons/tux.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest"!"20230222"!"20230124"!"20221021"!"20220818" --field="Edition:CB" "lxqt" | xargs -I{} sh -c "./quickget fvoid {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/gabeeos.desktop b/supported/gabeeos.desktop
index e2dadff..d252173 100644
--- a/supported/gabeeos.desktop
+++ b/supported/gabeeos.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=gabeeos
-releases=latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget gabeeos {}"'
-Icon=/home/zen/git/distrohopper/icons/gabeeos.png
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget gabeeos {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/garuda.desktop b/supported/garuda.desktop
index c784587..ce27481 100644
--- a/supported/garuda.desktop
+++ b/supported/garuda.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=garuda
-releases=latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget garuda {}"'
-Icon=/home/zen/git/distrohopper/icons/garuda.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget garuda {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/gentoo.desktop b/supported/gentoo.desktop
index 9599a70..c94a4ff 100644
--- a/supported/gentoo.desktop
+++ b/supported/gentoo.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=gentoo
-releases=latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget gentoo {}"'
-Icon=/home/zen/git/distrohopper/icons/gentoo.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget gentoo {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/ghostbsd.desktop b/supported/ghostbsd.desktop
index aed23f3..f0b9b90 100644
--- a/supported/ghostbsd.desktop
+++ b/supported/ghostbsd.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=ghostbsd
-releases=21.10.16 21.11.24 22.01.12
-editions=mate xfce
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "21.10.16"!"21.11.24"!"22.01.12" --field="Edition:CB" "mate"!"xfce" | xargs -I{} sh -c "./quickget ghostbsd {}"'
-Icon=/home/zen/git/distrohopper/icons/ghostbsd.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "21.10.16"!"21.11.24"!"22.01.12" --field="Edition:CB" "mate"!"xfce" | xargs -I{} sh -c "./quickget ghostbsd {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/haiku.desktop b/supported/haiku.desktop
index 754a1d0..77e0a8d 100644
--- a/supported/haiku.desktop
+++ b/supported/haiku.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=haiku
-releases=r1beta3 r1beta4
-editions=x86_64 x86_gcc2h
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "r1beta3"!"r1beta4" --field="Edition:CB" "x86_64"!"x86_gcc2h" | xargs -I{} sh -c "./quickget haiku {}"'
-Icon=/home/zen/git/distrohopper/icons/haiku.png
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "r1beta3"!"r1beta4" --field="Edition:CB" "x86_64"!"x86_gcc2h" | xargs -I{} sh -c "./quickget haiku {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/kali.desktop b/supported/kali.desktop
index faabefa..bc1a885 100644
--- a/supported/kali.desktop
+++ b/supported/kali.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=kali
-releases=current kali-weekly
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "current"!"kali-weekly" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget kali {}"'
-Icon=/home/zen/git/distrohopper/icons/kali.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "current"!"kali-weekly" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget kali {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/kdeneon.desktop b/supported/kdeneon.desktop
index 6fc3ca9..682db49 100644
--- a/supported/kdeneon.desktop
+++ b/supported/kdeneon.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=kdeneon
-releases=user testing unstable developer
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "user"!"testing"!"unstable"!"developer" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget kdeneon {}"'
-Icon=/home/zen/git/distrohopper/icons/kdeneon.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "user"!"testing"!"unstable"!"developer" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget kdeneon {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/kolibrios.desktop b/supported/kolibrios.desktop
index 21e7478..8fa78dd 100644
--- a/supported/kolibrios.desktop
+++ b/supported/kolibrios.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=kolibrios
-releases=latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget kolibrios {}"'
-Icon=/home/zen/git/distrohopper/icons/kolibrios.png
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget kolibrios {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/kubuntu.desktop b/supported/kubuntu.desktop
index 91196bb..11a4dfb 100644
--- a/supported/kubuntu.desktop
+++ b/supported/kubuntu.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=kubuntu
-releases=16.04 18.04 20.04 22.04 22.10 jammy-daily daily-live daily-canary
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget kubuntu {}"'
-Icon=/home/zen/git/distrohopper/icons/kubuntu.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"23.04"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget kubuntu {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/linuxmint.desktop b/supported/linuxmint.desktop
index 1d7ae63..cd095e3 100644
--- a/supported/linuxmint.desktop
+++ b/supported/linuxmint.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=linuxmint
-releases=20.2 20.3 21 21.1
-editions=cinnamon mate xfce
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "20.2"!"20.3"!"21"!"21.1" --field="Edition:CB" "cinnamon"!"mate"!"xfce" | xargs -I{} sh -c "./quickget linuxmint {}"'
-Icon=/home/zen/git/distrohopper/icons/linuxmint.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "20.2"!"20.3"!"21"!"21.1" --field="Edition:CB" "cinnamon"!"mate"!"xfce" | xargs -I{} sh -c "./quickget linuxmint {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/lmde.desktop b/supported/lmde.desktop
index 1e1d0a9..91bdbb7 100644
--- a/supported/lmde.desktop
+++ b/supported/lmde.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=lmde
-releases=5
-editions=cinnamon
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "5" --field="Edition:CB" "cinnamon" | xargs -I{} sh -c "./quickget lmde {}"'
-Icon=/home/zen/git/distrohopper/icons/lmde.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "5" --field="Edition:CB" "cinnamon" | xargs -I{} sh -c "./quickget lmde {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/lubuntu.desktop b/supported/lubuntu.desktop
index 94e02c2..05498d5 100644
--- a/supported/lubuntu.desktop
+++ b/supported/lubuntu.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=lubuntu
-releases=16.04 18.04 20.04 22.04 22.10 jammy-daily daily-live daily-canary
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget lubuntu {}"'
-Icon=/home/zen/git/distrohopper/icons/lubuntu.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"23.04"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget lubuntu {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/macos.desktop b/supported/macos.desktop
index 1851fa1..612ded7 100644
--- a/supported/macos.desktop
+++ b/supported/macos.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=macos
-releases=high-sierra mojave catalina big-sur monterey ventura
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "high-sierra"!"mojave"!"catalina"!"big-sur"!"monterey"!"ventura" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget macos {}"'
-Icon=/home/zen/git/distrohopper/icons/macos.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "high-sierra"!"mojave"!"catalina"!"big-sur"!"monterey"!"ventura" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget macos {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/mageia.desktop b/supported/mageia.desktop
index 73f9d14..ae2ba0e 100644
--- a/supported/mageia.desktop
+++ b/supported/mageia.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=mageia
-releases=8
-editions=Plasma GNOME Xfce
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "8" --field="Edition:CB" "Plasma"!"GNOME"!"Xfce" | xargs -I{} sh -c "./quickget mageia {}"'
-Icon=/home/zen/git/distrohopper/icons/mageia.png
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "8" --field="Edition:CB" "Plasma"!"GNOME"!"Xfce" | xargs -I{} sh -c "./quickget mageia {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/manjaro.desktop b/supported/manjaro.desktop
index 3f806c7..908508a 100644
--- a/supported/manjaro.desktop
+++ b/supported/manjaro.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=manjaro
-releases=xfce gnome kde budgie cinnamon i3 mate
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "xfce"!"gnome"!"kde"!"budgie"!"cinnamon"!"i3"!"mate" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget manjaro {}"'
-Icon=/home/zen/git/distrohopper/icons/manjaro.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "xfce"!"gnome"!"kde"!"budgie"!"cinnamon"!"i3"!"mate" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget manjaro {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/miyo.desktop b/supported/miyo.desktop
index 7a21636..7227097 100644
--- a/supported/miyo.desktop
+++ b/supported/miyo.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=miyo
-releases=latest 2022 2020 2019 2018 2017 2016
-editions=kwin ceres jwm openbox mate
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest"!"2022"!"2020"!"2019"!"2018"!"2017"!"2016" --field="Edition:CB" "kwin"!"ceres"!"jwm"!"openbox"!"mate" | xargs -I{} sh -c "./quickget miyo {}"'
-Icon=/home/zen/git/distrohopper/icons/tux.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest"!"2022"!"2020"!"2019"!"2018"!"2017"!"2016" --field="Edition:CB" "kwin"!"ceres"!"jwm"!"openbox"!"mate" | xargs -I{} sh -c "./quickget miyo {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/mxlinux.desktop b/supported/mxlinux.desktop
index 2722c79..69c1ccc 100644
--- a/supported/mxlinux.desktop
+++ b/supported/mxlinux.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=mxlinux
-releases=21.3
-editions=Xfce KDE Fluxbox
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "21.3" --field="Edition:CB" "Xfce"!"KDE"!"Fluxbox" | xargs -I{} sh -c "./quickget mxlinux {}"'
-Icon=/home/zen/git/distrohopper/icons/mxlinux.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "21.3" --field="Edition:CB" "Xfce"!"KDE"!"Fluxbox" | xargs -I{} sh -c "./quickget mxlinux {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/netboot.desktop b/supported/netboot.desktop
index 0be0384..ea58bc2 100644
--- a/supported/netboot.desktop
+++ b/supported/netboot.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=netboot
-releases=latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget netboot {}"'
-Icon=/home/zen/git/distrohopper/icons/netboot.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget netboot {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/netbsd.desktop b/supported/netbsd.desktop
index fb95267..ed0b2be 100644
--- a/supported/netbsd.desktop
+++ b/supported/netbsd.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=netbsd
-releases=9.0 9.1 9.2 9.3
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "9.0"!"9.1"!"9.2"!"9.3" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget netbsd {}"'
-Icon=/home/zen/git/distrohopper/icons/netbsd.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "9.3"!"9.2"!"9.1"!"9.0"!"8.2"!"8.1"!"8.0" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget netbsd {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/nixos.desktop b/supported/nixos.desktop
index 85308f0..5a40f08 100644
--- a/supported/nixos.desktop
+++ b/supported/nixos.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=nixos
-releases=21.05 21.11 22.05 22.11
-editions=gnome plasma5 minimal
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "21.05"!"21.11"!"22.05"!"22.11" --field="Edition:CB" "gnome"!"plasma5"!"minimal" | xargs -I{} sh -c "./quickget nixos {}"'
-Icon=/home/zen/git/distrohopper/icons/nixos.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "21.05"!"21.11"!"22.05"!"22.11" --field="Edition:CB" "gnome"!"plasma5"!"minimal" | xargs -I{} sh -c "./quickget nixos {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/openbsd.desktop b/supported/openbsd.desktop
index bdc158d..31769e6 100644
--- a/supported/openbsd.desktop
+++ b/supported/openbsd.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=openbsd
-releases=6.8 6.9 7.0 7.1 7.2 7.3
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "6.8"!"6.9"!"7.0"!"7.1"!"7.2"!"7.3" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget openbsd {}"'
-Icon=/home/zen/git/distrohopper/icons/openbsd.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "6.8"!"6.9"!"7.0"!"7.1"!"7.2"!"7.3" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget openbsd {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/opensuse.desktop b/supported/opensuse.desktop
index 93a88ff..4f0d017 100644
--- a/supported/opensuse.desktop
+++ b/supported/opensuse.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=opensuse
-releases=15.0 15.1 15.2 15.3 15.4 microos tumbleweed
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "15.0"!"15.1"!"15.2"!"15.3"!"15.4"!"microos"!"tumbleweed" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget opensuse {}"'
-Icon=/home/zen/git/distrohopper/icons/opensuse.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "15.0"!"15.1"!"15.2"!"15.3"!"15.4"!"microos"!"tumbleweed" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget opensuse {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/oraclelinux.desktop b/supported/oraclelinux.desktop
index a1dc92a..614e309 100644
--- a/supported/oraclelinux.desktop
+++ b/supported/oraclelinux.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=oraclelinux
-releases=7.7 7.8 7.9 8.4 8.5 8.6 9.0
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "7.7"!"7.8"!"7.9"!"8.4"!"8.5"!"8.6"!"9.0" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget oraclelinux {}"'
-Icon=/home/zen/git/distrohopper/icons/oraclelinux.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "7.7"!"7.8"!"7.9"!"8.4"!"8.5"!"8.6"!"9.0" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget oraclelinux {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/popos.desktop b/supported/popos.desktop
index e017ab1..51e47f6 100644
--- a/supported/popos.desktop
+++ b/supported/popos.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=popos
-releases=20.04 21.10 22.04
-editions=intel nvidia
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "20.04"!"21.10"!"22.04" --field="Edition:CB" "intel"!"nvidia" | xargs -I{} sh -c "./quickget popos {}"'
-Icon=/home/zen/git/distrohopper/icons/popos.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "20.04"!"21.10"!"22.04" --field="Edition:CB" "intel"!"nvidia" | xargs -I{} sh -c "./quickget popos {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/reactos.desktop b/supported/reactos.desktop
index 80ebe77..c8700ee 100644
--- a/supported/reactos.desktop
+++ b/supported/reactos.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=reactos
-releases=latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget reactos {}"'
-Icon=/home/zen/git/distrohopper/icons/reactos.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget reactos {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/rebornos.desktop b/supported/rebornos.desktop
index f6d6a39..2a6f21d 100644
--- a/supported/rebornos.desktop
+++ b/supported/rebornos.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=rebornos
-releases=latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget rebornos {}"'
-Icon=/home/zen/git/distrohopper/icons/rebornos.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget rebornos {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/rockylinux.desktop b/supported/rockylinux.desktop
index 0027c10..2b60b29 100644
--- a/supported/rockylinux.desktop
+++ b/supported/rockylinux.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=rockylinux
-releases=8.3 8.4 8.5 9.0 9.1
-editions=minimal dvd (dvd1 prior to 9.0)
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "8.3"!"8.4"!"8.5"!"9.0"!"9.1" --field="Edition:CB" "minimal"!"dvd"!"(dvd1"!"prior"!"to"!"9.0)" | xargs -I{} sh -c "./quickget rockylinux {}"'
-Icon=/home/zen/git/distrohopper/icons/rockylinux.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "8.3"!"8.4"!"8.5"!"9.0"!"9.1" --field="Edition:CB" "minimal"!"dvd"!"(dvd1"!"prior"!"to"!"9.0)" | xargs -I{} sh -c "./quickget rockylinux {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/siduction.desktop b/supported/siduction.desktop
index c1d1f86..b47eb96 100644
--- a/supported/siduction.desktop
+++ b/supported/siduction.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=siduction
-releases=latest
-editions=kde lxqt nox xfce xorg
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest" --field="Edition:CB" "kde"!"lxqt"!"nox"!"xfce"!"xorg" | xargs -I{} sh -c "./quickget siduction {}"'
-Icon=/home/zen/git/distrohopper/icons/siduction.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "latest" --field="Edition:CB" "kde"!"lxqt"!"nox"!"xfce"!"xorg" | xargs -I{} sh -c "./quickget siduction {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/slackware.desktop b/supported/slackware.desktop
index ff95c21..ca62b76 100644
--- a/supported/slackware.desktop
+++ b/supported/slackware.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=slackware
-releases=14.2 15.0
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "14.2"!"15.0" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget slackware {}"'
-Icon=/home/zen/git/distrohopper/icons/slackware.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "14.2"!"15.0" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget slackware {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/slitaz.desktop b/supported/slitaz.desktop
index 8a151f6..3ec5ce3 100644
--- a/supported/slitaz.desktop
+++ b/supported/slitaz.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=slitaz
-releases=preferred core core64 loram core-5in1 preinit
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "preferred"!"core"!"core64"!"loram"!"core-5in1"!"preinit" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget slitaz {}"'
-Icon=/home/zen/git/distrohopper/icons/slitaz.png
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "preferred"!"core"!"core64"!"loram"!"core-5in1"!"preinit" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget slitaz {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/solus.desktop b/supported/solus.desktop
index b883d60..7f04f84 100644
--- a/supported/solus.desktop
+++ b/supported/solus.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=solus
-releases=4.3
-editions=Budgie GNOME MATE Plasma
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "4.3" --field="Edition:CB" "Budgie"!"GNOME"!"MATE"!"Plasma" | xargs -I{} sh -c "./quickget solus {}"'
-Icon=/home/zen/git/distrohopper/icons/solus.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "4.3" --field="Edition:CB" "Budgie"!"GNOME"!"MATE"!"Plasma" | xargs -I{} sh -c "./quickget solus {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/steamos.desktop b/supported/steamos.desktop
index 440cb5a..caff544 100644
--- a/supported/steamos.desktop
+++ b/supported/steamos.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=steamos
-releases=4.0
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "4.0" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget steamos {}"'
-Icon=/home/zen/git/distrohopper/icons/steamos.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "4.0" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget steamos {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/tails.desktop b/supported/tails.desktop
index 58626d4..1e08816 100644
--- a/supported/tails.desktop
+++ b/supported/tails.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=tails
-releases=stable
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "stable" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget tails {}"'
-Icon=/home/zen/git/distrohopper/icons/tails.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "stable" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget tails {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/truenas-core.desktop b/supported/truenas-core.desktop
index 6d4f4ba..604d94b 100644
--- a/supported/truenas-core.desktop
+++ b/supported/truenas-core.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=truenas-core
-releases=12.0 13.0
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "12.0"!"13.0" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget truenas-core {}"'
-Icon=/home/zen/git/distrohopper/icons/truenas-core.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "12.0"!"13.0" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget truenas-core {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/truenas-scale.desktop b/supported/truenas-scale.desktop
index c49f459..804bbb8 100644
--- a/supported/truenas-scale.desktop
+++ b/supported/truenas-scale.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=truenas-scale
-releases=22.02 22.12
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "22.02"!"22.12" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget truenas-scale {}"'
-Icon=/home/zen/git/distrohopper/icons/truenas-scale.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "22.02"!"22.12" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget truenas-scale {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/ubuntu-budgie.desktop b/supported/ubuntu-budgie.desktop
index 105a4d3..e6641c9 100644
--- a/supported/ubuntu-budgie.desktop
+++ b/supported/ubuntu-budgie.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=ubuntu-budgie
-releases=18.04 20.04 22.04 22.10 jammy-daily daily-live daily-canary
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "18.04"!"20.04"!"22.04"!"22.10"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget ubuntu-budgie {}"'
-Icon=/home/zen/git/distrohopper/icons/ubuntu-budgie.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "18.04"!"20.04"!"22.04"!"22.10"!"23.04"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget ubuntu-budgie {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/ubuntu-mate.desktop b/supported/ubuntu-mate.desktop
index f723cfc..50d40cf 100644
--- a/supported/ubuntu-mate.desktop
+++ b/supported/ubuntu-mate.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=ubuntu-mate
-releases=16.04 18.04 20.04 22.04 22.10 jammy-daily daily-live daily-canary
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget ubuntu-mate {}"'
-Icon=/home/zen/git/distrohopper/icons/ubuntu-mate.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"23.04"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget ubuntu-mate {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/ubuntu-unity.desktop b/supported/ubuntu-unity.desktop
index f6c98b1..5ab7209 100644
--- a/supported/ubuntu-unity.desktop
+++ b/supported/ubuntu-unity.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=ubuntu-unity
-releases=22.10 daily-live daily-canary
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "22.10"!"daily-live"!"daily-canary" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget ubuntu-unity {}"'
-Icon=/home/zen/git/distrohopper/icons/ubuntu-unity.png
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "22.10"!"23.04"!"daily-live"!"daily-canary" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget ubuntu-unity {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/ubuntu.desktop b/supported/ubuntu.desktop
index 2988a12..11e7da1 100644
--- a/supported/ubuntu.desktop
+++ b/supported/ubuntu.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=ubuntu
-releases=14.04 16.04 18.04 20.04 22.04 22.10 jammy-daily daily-live daily-canary
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "14.04"!"16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget ubuntu {}"'
-Icon=/home/zen/git/distrohopper/icons/ubuntu.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "14.04"!"16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"23.04"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget ubuntu {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/ubuntucinnamon.desktop b/supported/ubuntucinnamon.desktop
new file mode 100644
index 0000000..9978d57
--- /dev/null
+++ b/supported/ubuntucinnamon.desktop
@@ -0,0 +1,16 @@
+[Desktop Entry]
+Version=0.77b
+Type=Application
+Name=ubuntucinnamon
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "23.04"!"daily-live"!"daily-canary" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget ubuntucinnamon {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
+Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
+
diff --git a/supported/ubuntukylin.desktop b/supported/ubuntukylin.desktop
index c3d7459..87dd8a3 100644
--- a/supported/ubuntukylin.desktop
+++ b/supported/ubuntukylin.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=ubuntukylin
-releases=16.04 18.04 20.04 22.04 22.10 jammy-daily daily-live daily-canary
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget ubuntukylin {}"'
-Icon=/home/zen/git/distrohopper/icons/ubuntukylin.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"23.04"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget ubuntukylin {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/ubuntustudio.desktop b/supported/ubuntustudio.desktop
index 0cb928c..24353a4 100644
--- a/supported/ubuntustudio.desktop
+++ b/supported/ubuntustudio.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=ubuntustudio
-releases=16.04 18.04 20.04 22.04 22.10 jammy-daily daily-live daily-canary
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget ubuntustudio {}"'
-Icon=/home/zen/git/distrohopper/icons/ubuntustudio.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"23.04"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget ubuntustudio {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/ventoy.desktop b/supported/ventoy.desktop
index 6d69799..0f70d24 100644
--- a/supported/ventoy.desktop
+++ b/supported/ventoy.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=ventoy
-releases=latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget ventoy {}"'
-Icon=/home/zen/git/distrohopper/icons/ventoy.png
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget ventoy {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/void.desktop b/supported/void.desktop
index 58e0b14..9fd7c54 100644
--- a/supported/void.desktop
+++ b/supported/void.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=void
-releases=current 20221001 20210316 20210930 20210218 20191109 20190526 20190217 20181111 20171007 20170825 20170220
-editions=base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl gnome gnome-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "current"!"20221001"!"20210316"!"20210930"!"20210218"!"20191109"!"20190526"!"20190217"!"20181111"!"20171007"!"20170825"!"20170220" --field="Edition:CB" "base"!"base-musl"!"cinnamon"!"cinnamon-musl"!"enlightenment"!"enlightenment-musl"!"gnome"!"gnome-musl"!"lxde"!"lxde-musl"!"lxqt"!"lxqt-musl"!"mate"!"mate-musl"!"xfce"!"xfce-musl" | xargs -I{} sh -c "./quickget void {}"'
-Icon=/home/zen/git/distrohopper/icons/void.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "current"!"20221001"!"20210316"!"20210930"!"20210218"!"20191109"!"20190526"!"20190217"!"20181111"!"20171007"!"20170825"!"20170220" --field="Edition:CB" "base"!"base-musl"!"cinnamon"!"cinnamon-musl"!"enlightenment"!"enlightenment-musl"!"gnome"!"gnome-musl"!"lxde"!"lxde-musl"!"lxqt"!"lxqt-musl"!"mate"!"mate-musl"!"xfce"!"xfce-musl" | xargs -I{} sh -c "./quickget void {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/voidpup.desktop b/supported/voidpup.desktop
index 799a89c..d7e4f71 100644
--- a/supported/voidpup.desktop
+++ b/supported/voidpup.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=voidpup
-releases=latest
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "latest" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget voidpup {}"'
-Icon=/home/zen/git/distrohopper/icons/voidpup.png
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "latest" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget voidpup {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/vxlinux.desktop b/supported/vxlinux.desktop
index 38299d9..48324a6 100644
--- a/supported/vxlinux.desktop
+++ b/supported/vxlinux.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=vxlinux
-releases=7.0 6.1.2 6.1 5.0 4.2 4.1 4.0.
-editions=lxqt kde
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "7.0"!"6.1.2"!"6.1"!"5.0"!"4.2"!"4.1"!"4.0." --field="Edition:CB" "lxqt"!"kde" | xargs -I{} sh -c "./quickget vxlinux {}"'
-Icon=/home/zen/git/distrohopper/icons/vxlinux.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "7.0"!"6.1.2"!"6.1"!"5.0"!"4.2"!"4.1"!"4.0." --field="Edition:CB" "lxqt"!"kde" | xargs -I{} sh -c "./quickget vxlinux {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/windows.desktop b/supported/windows.desktop
index 5f31e96..b668cb6 100644
--- a/supported/windows.desktop
+++ b/supported/windows.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=windows
-releases=8 10 11
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "8"!"10"!"11" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget windows {}"'
-Icon=/home/zen/git/distrohopper/icons/windows.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "8"!"10"!"11" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget windows {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/xerolinux.desktop b/supported/xerolinux.desktop
index 503c5ef..850c110 100644
--- a/supported/xerolinux.desktop
+++ b/supported/xerolinux.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=xerolinux
-releases=kde
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "kde" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget xerolinux {}"'
-Icon=/home/zen/git/distrohopper/icons/xerolinux.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "kde" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget xerolinux {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/xubuntu.desktop b/supported/xubuntu.desktop
index fc341df..5ef82e2 100644
--- a/supported/xubuntu.desktop
+++ b/supported/xubuntu.desktop
@@ -1,9 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=xubuntu
-releases=16.04 18.04 20.04 22.04 22.10 jammy-daily daily-live daily-canary
-replace="!"
-Exec=sh -c 'cd "/home/zen/git/distrohopper" && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d"|" -f1 | xargs -I{} sh -c "./quickget xubuntu {}"'
-Icon=/home/zen/git/distrohopper/icons/xubuntu.svg
+GenericName=
+Comment=
+Exec=xterm-256color -e sh -c 'cd /home/zen/git/distrohopper && yad --form --field="Release:CB" "16.04"!"18.04"!"20.04"!"22.04"!"22.10"!"23.04"!"jammy-daily"!"daily-live"!"daily-canary" | cut -d\' | \' -f1 | xargs -I{} sh -c "./quickget xubuntu {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/supported/zorin.desktop b/supported/zorin.desktop
index abe0dd8..2736cc0 100644
--- a/supported/zorin.desktop
+++ b/supported/zorin.desktop
@@ -1,10 +1,16 @@
[Desktop Entry]
+Version=0.77b
Type=Application
Name=zorin
-releases=16
-editions=core64 lite64 education64 edulite64
-replace="!"
-Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "16" --field="Edition:CB" "core64"!"lite64"!"education64"!"edulite64" | xargs -I{} sh -c "./quickget zorin {}"'
-Icon=/home/zen/git/distrohopper/icons/zorin.svg
+GenericName=
+Comment=
+Exec=sh -c 'cd /home/zen/git/distrohopper && yad --form --separator=" " --field="Release:CB" "16" --field="Edition:CB" "core64"!"lite64"!"education64"!"edulite64" | xargs -I{} sh -c "./quickget zorin {}";/usr/bin/fish'
+Icon=hop
+Terminal=
+X-MultipleArgs=
+Type=Application
Categories=System;Virtualization;
+StartupNotify=
+MimeType=
+Keywords=
diff --git a/yadtest.sh b/yadtest.sh
new file mode 100755
index 0000000..c2f01f1
--- /dev/null
+++ b/yadtest.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+# Define function for Yad dialog box
+function show_dialog {
+ yad --title="DistroHopper" \
+ --text="Please select an option:" \
+ --button="Help:1" \
+ --button="Choose VM directory:2" \
+ --button="Install:3" \
+ --button="Portable mode:4" \
+ --button="Update supported VMs:5" \
+ --button="Update ready VMs:6" \
+ --button="Run TUI:7" \
+ --button="Start GUI:8" \
+ --button="Add new distro:9" \
+ --button="Sort functions:10" \
+ --button="Push changes:11" \
+ --button="Copy ISOs:12" \
+ --button="Translate:13" \
+ --button="Run new TUI:14"
+}
+
+# Call Yad function and store result in $button
+button=$(show_dialog)
+
+# Parse $button and execute corresponding function
+case $button in
+ 1) help_show ;;
+ 2) virtual_machines_directory_choose ;;
+ 3) echo $"Starting installation..." ; installation_process ;;
+ 4) echo $"Switching to portable mode!" ; work_in_current_dir ;;
+ 5) echo $"Updating supported VMs..." ; virtual_machines_update_supported ;;
+ 6) echo $"Updating ready VMs..." ; virtual_machines_update_ready ;;
+ 7) echo $"Running DistroHopper TUI..." ; distrohopper_run_tui ;;
+ 8) echo $"Starting DistroHopper GUI..." ; distrohopper_run_gui ;;
+ 9) echo $"Adding new distro started..." ; add_distro ;;
+ 10) echo $"Sorting functions in template..." ; TOOL_sort_functions_in_quickget ;;
+ 11) echo $"Pushing changes to... #TODO" ; push_changes ;;
+ 12) echo $"Copying ISOs to dir. It will take some time..." ; TOOL_copy_ISOs_to_dir ;;
+ 13) TOOL_translate ;;
+ 14) run_tui_new ;;
+ *) echo $"No option selected." ;;
+
+esac
diff --git a/yadtest2.sh b/yadtest2.sh
new file mode 100755
index 0000000..91c921e
--- /dev/null
+++ b/yadtest2.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+key=$((RANDOM % 9000 + 1000))
+yad --plug="$key" --tabnum=1 --monitor --icons --borders=0 --icon-size=46 --item-width=76 --form --no-buttons --text-align=center \
+ --field="Help!!Show this help and exit":fbtn "$HELP" \
+ --field="Set VMs Directory:2!!Set default directory where VMs are stored":fbtn "$DIR" \
+ --field="!Enter new language string" "${lang:-$lang}" \
+ --field="Install DistroHopper:3!!Install DistroHopper":fbtn "$INSTALL" \
+ --field="Portable mode:4!Portable mode":fbtn "$MODE" \
+ --field="Supported!!Update supported VMs":fbtn "$SUPPORTED" \
+ --field="Ready!!Update ready to run VMs":fbtn "$READY" \
+ --field="Tui!!Run terminal user interface (TUI)":fbtn "$TUI" \
+ --field="Add!!Add new distro to quickget":fbtn "$ADD" \
+ --field="Sort!!Sort functions in quickget":fbtn "$SORT" \
+ --field="Push!!Push changed quickget to quickemu project #todo":fbtn "$PUSH" \
+ --field="Copy!!Copy all ISOs to target dir (for Ventoy)":fbtn "$COPY" \
+ --field="Translate DistroHopper!!Translate DistroHopper":fbtn "$TRANSLATE" \
+ --field="Test!!Work in Progress":fbtn "$TEST" \
+ --field="ne!!XXX":fbtn "$NEXT" \
+ --button="Exit":0 &
+yad --dynamic --notebook --key="$key" --monitor --listen --window-icon="$DH_ICON_DIR"/hop.svg \
+ --width=900 --height=900 --no-buttons --title="DistroHopper" --tab="Advanced"
+VAR1="$?"
+echo " DEBUG: VAR1 = $VAR1"
+echo $?