From 0dfd727222e5bc9fb7f6b1325b016d6d24dd1957 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 13 Nov 2024 05:33:39 +0900
Subject: [PATCH 01/99] change: use enum for popup mode

---
 helpers/ui.py | 70 ++++++++++++++++++++++++++++-----------------------
 1 file changed, 38 insertions(+), 32 deletions(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index 9508760..cb5542d 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -19,7 +19,7 @@ gi.require_version("Gtk", "3.0")
 from gi.repository import Gtk, GLib, Gdk, GObject, Pango
 from enum import Enum
 
-# 5.5.0
+# 5.6.0
 app_name = "DZGUI"
 
 start_time = 0
@@ -297,25 +297,25 @@ def process_shell_return_code(transient_parent, msg, code, original_input):
             #TODO: add logger output to each
         case 0:
             # success with notice popup
-            spawn_dialog(transient_parent, msg, "NOTIFY")
+            spawn_dialog(transient_parent, msg, Popup.NOTIFY)
         case 1:
             # error with notice popup
             if msg == "":
                 msg = "Something went wrong"
-            spawn_dialog(transient_parent, msg, "NOTIFY")
+            spawn_dialog(transient_parent, msg, Popup.NOTIFY)
         case 2:
             # warn and recurse (e.g. validation failed)
-            spawn_dialog(transient_parent, msg, "NOTIFY")
+            spawn_dialog(transient_parent, msg, Popup.NOTIFY)
             treeview = transient_parent.grid.scrollable_treelist.treeview
             process_tree_option(original_input, treeview)
         case 4:
             # for BM only
-            spawn_dialog(transient_parent, msg, "NOTIFY")
+            spawn_dialog(transient_parent, msg, Popup.NOTIFY)
             treeview = transient_parent.grid.scrollable_treelist.treeview
             process_tree_option(["Options", "Change Battlemetrics API key"], treeview)
         case 5:
             # for steam only
-            spawn_dialog(transient_parent, msg, "NOTIFY")
+            spawn_dialog(transient_parent, msg, Popup.NOTIFY)
             treeview = transient_parent.grid.scrollable_treelist.treeview
             process_tree_option(["Options", "Change Steam API key"], treeview)
         case 6:
@@ -330,17 +330,17 @@ def process_shell_return_code(transient_parent, msg, code, original_input):
                 config_vals.append(i)
             tooltip = format_metadata(col)
             transient_parent.grid.update_statusbar(tooltip)
-            spawn_dialog(transient_parent, msg, "NOTIFY")
+            spawn_dialog(transient_parent, msg, Popup.NOTIFY)
             return
         case 100:
             # final handoff before launch
-            final_conf = spawn_dialog(transient_parent, msg, "CONFIRM")
+            final_conf = spawn_dialog(transient_parent, msg, Popup.CONFIRM)
             treeview = transient_parent.grid.scrollable_treelist.treeview
             if final_conf == 1 or final_conf is None:
                 return
             process_tree_option(["Handshake", ""], treeview)
         case 255:
-            spawn_dialog(transient_parent, "Update complete. Please close DZGUI and restart.", "NOTIFY")
+            spawn_dialog(transient_parent, "Update complete. Please close DZGUI and restart.", Popup.NOTIFY)
             Gtk.main_quit()
 
 
@@ -369,7 +369,7 @@ def process_tree_option(input, treeview):
             proc = call_out(transient_parent, subproc, args)
             GLib.idle_add(_load)
         if bool is True:
-            wait_dialog = GenericDialog(transient_parent, msg, "WAIT")
+            wait_dialog = GenericDialog(transient_parent, msg, Popup.WAIT)
             wait_dialog.show_all()
             thread = threading.Thread(target=_background, args=(subproc, args, wait_dialog))
             thread.start()
@@ -432,7 +432,7 @@ def process_tree_option(input, treeview):
                         link_label = "Open Battlemetrics API page"
                         prompt = "Enter new API key"
 
-                user_entry = EntryDialog(transient_parent, prompt, "ENTRY", link_label)
+                user_entry = EntryDialog(transient_parent, prompt, Popup.ENTRY, link_label)
                 res = user_entry.get_input()
                 if res is None:
                     logger.info("User aborted entry dialog")
@@ -711,7 +711,7 @@ class TreeView(Gtk.TreeView):
                     iter = self.get_current_iter()
                     server_store.remove(iter)
                 msg = proc.stdout
-                res = spawn_dialog(parent, msg, "NOTIFY")
+                res = spawn_dialog(parent, msg, Popup.NOTIFY)
             case "Remove from history":
                 record = "%s:%s" %(self.get_column_at_index(7), self.get_column_at_index(8))
                 call_out(parent, context_menu_label, record)
@@ -734,16 +734,16 @@ class TreeView(Gtk.TreeView):
                 conf_msg = "Really delete the mod '%s'?" %(value)
                 success_msg = "Successfully deleted the mod '%s'." %(value)
                 fail_msg = "An error occurred during deletion. Aborting."
-                res = spawn_dialog(parent, conf_msg, "CONFIRM")
+                res = spawn_dialog(parent, conf_msg, Popup.CONFIRM)
                 symlink = self.get_column_at_index(1)
                 dir = self.get_column_at_index(2)
                 if res == 0:
                     proc = call_out(parent, "delete", symlink, dir)
                     if proc.returncode == 0:
-                        spawn_dialog(parent, success_msg, "NOTIFY")
+                        spawn_dialog(parent, success_msg, Popup.NOTIFY)
                         self._update_quad_column("List installed mods")
                     else:
-                        spawn_dialog(parent, fail_msg, "NOTIFY")
+                        spawn_dialog(parent, fail_msg, Popup.NOTIFY)
             case "Open in Steam Workshop":
                 record = self.get_column_at_index(2)
                 call_out(parent, "open_workshop_page", record)
@@ -805,7 +805,7 @@ class TreeView(Gtk.TreeView):
         diff = now - then
         cooldown = 30 - math.floor(diff)
         if ((start_time > 0) and (now - then) < 30):
-            spawn_dialog(parent, "Global refresh cooldown not met. Wait %s second(s)." %(str(cooldown)), "NOTIFY")
+            spawn_dialog(parent, "Global refresh cooldown not met. Wait %s second(s)." %(str(cooldown)), Popup.NOTIFY)
             return
         start_time = now
 
@@ -935,7 +935,7 @@ class TreeView(Gtk.TreeView):
             wait_dialog.destroy()
 
         parent = self.get_outer_window()
-        wait_dialog = GenericDialog(parent, "Refreshing player count", "WAIT")
+        wait_dialog = GenericDialog(parent, "Refreshing player count", Popup.WAIT)
         wait_dialog.show_all()
         select = self.get_selection()
         sels = select.get_selected_rows()
@@ -971,7 +971,7 @@ class TreeView(Gtk.TreeView):
                     No servers returned. Possible network issue or API key on cooldown?
                     Return to the main menu, wait 60s, and try again.
                     If this issue persists, your API key may be defunct."""
-                spawn_dialog(self.get_outer_window(), textwrap.dedent(api_warn_msg), "NOTIFY")
+                spawn_dialog(self.get_outer_window(), textwrap.dedent(api_warn_msg), Popup.NOTIFY)
 
         grid = self.get_outer_grid()
         right_panel = grid.right_panel
@@ -1097,7 +1097,7 @@ class TreeView(Gtk.TreeView):
                 return
             mode = mode + ":" + port
 
-        wait_dialog = GenericDialog(transient_parent, "Fetching server metadata", "WAIT")
+        wait_dialog = GenericDialog(transient_parent, "Fetching server metadata", Popup.WAIT)
         wait_dialog.show_all()
         thread = threading.Thread(target=self._background, args=(wait_dialog, mode))
         thread.start()
@@ -1153,12 +1153,12 @@ class TreeView(Gtk.TreeView):
             data = call_out(self, "show_log")
             res = parse_log_rows(data)
             if res == 1:
-                spawn_dialog(self.get_outer_window(), "Failed to load log file, possibly corrupted", "NOTIFY")
+                spawn_dialog(self.get_outer_window(), "Failed to load log file, possibly corrupted", Popup.NOTIFY)
             return
 
         transient_parent = self.get_outer_window()
 
-        wait_dialog = GenericDialog(transient_parent, "Checking mods", "WAIT")
+        wait_dialog = GenericDialog(transient_parent, "Checking mods", Popup.WAIT)
         wait_dialog.show_all()
         thread = threading.Thread(target=self._background_quad, args=(wait_dialog, mode))
         thread.start()
@@ -1181,7 +1181,7 @@ class TreeView(Gtk.TreeView):
         qport = self.get_column_at_index(8)
         record = "%s:%s" %(addr, str(qport))
 
-        wait_dialog = GenericDialog(transient_parent, "Querying server and aligning mods", "WAIT")
+        wait_dialog = GenericDialog(transient_parent, "Querying server and aligning mods", Popup.WAIT)
         wait_dialog.show_all()
         thread = threading.Thread(target=self._background_connection, args=(wait_dialog, record))
         thread.start()
@@ -1205,7 +1205,7 @@ class TreeView(Gtk.TreeView):
             if chosen_row == "Server browser":
                 cooldown = call_out(self, "test_cooldown", "", "")
                 if cooldown.returncode == 1:
-                    spawn_dialog(self.get_outer_window(), cooldown.stdout, "NOTIFY")
+                    spawn_dialog(self.get_outer_window(), cooldown.stdout, Popup.NOTIFY)
                     return 1
                 for check in checks:
                     toggle_signal(filters_vbox, check, '_on_check_toggle', False)
@@ -1323,7 +1323,7 @@ def filter_servers(transient_parent, filters_vbox, treeview, context):
     toggle_signal(filters_vbox, filters_vbox, '_on_button_release', False)
     toggle_signal(filters_vbox, filters_vbox.maps_combo, '_on_map_changed', False)
 
-    dialog = GenericDialog(transient_parent, "Filtering results", "WAIT")
+    dialog = GenericDialog(transient_parent, "Filtering results", Popup.WAIT)
     dialog.show_all()
     server_store.clear()
 
@@ -1343,6 +1343,12 @@ class Port(Enum):
     DEFAULT = 1
     CUSTOM = 2
 
+class Popup(Enum):
+    WAIT = 1
+    NOTIFY = 2
+    CONFIRM = 3
+    ENTRY = 4
+
 class GenericDialog(Gtk.MessageDialog):
     def __init__(self, parent, text, mode):
 
@@ -1351,19 +1357,19 @@ class GenericDialog(Gtk.MessageDialog):
             return True
 
         match mode:
-            case "WAIT":
+            case Popup.WAIT:
                 dialog_type = Gtk.MessageType.INFO
                 button_type = Gtk.ButtonsType.NONE
                 header_text = "Please wait"
-            case "NOTIFY":
+            case Popup.NOTIFY:
                 dialog_type = Gtk.MessageType.INFO
                 button_type = Gtk.ButtonsType.OK
                 header_text = "Notice"
-            case "CONFIRM":
+            case Popup.CONFIRM:
                 dialog_type = Gtk.MessageType.QUESTION
                 button_type = Gtk.ButtonsType.OK_CANCEL
                 header_text = "Confirmation"
-            case "ENTRY":
+            case Popup.ENTRY:
                 dialog_type = Gtk.MessageType.QUESTION
                 button_type = Gtk.ButtonsType.OK_CANCEL
                 header_text = "User input required"
@@ -1384,7 +1390,7 @@ class GenericDialog(Gtk.MessageDialog):
             modal=True,
         )
 
-        if mode == "WAIT":
+        if mode == Popup.WAIT:
             dialogBox = self.get_content_area()
             spinner = Gtk.Spinner()
             dialogBox.pack_end(spinner, False, False, 0)
@@ -1598,7 +1604,7 @@ class PingDialog(GenericDialog):
         dialogBox = self.get_content_area()
         self.set_default_response(Gtk.ResponseType.OK)
         self.set_size_request(500, 200)
-        wait_dialog = GenericDialog(parent, "Checking ping", "WAIT")
+        wait_dialog = GenericDialog(parent, "Checking ping", Popup.WAIT)
         wait_dialog.show_all()
         thread = threading.Thread(target=self._background, args=(wait_dialog, parent, record))
         thread.start()
@@ -1642,7 +1648,7 @@ class ModDialog(GenericDialog):
             column.set_sort_column_id(i)
         dialogBox.pack_end(self.scrollable, True, True, 0)
 
-        wait_dialog = GenericDialog(parent, "Fetching modlist", "WAIT")
+        wait_dialog = GenericDialog(parent, "Fetching modlist", Popup.WAIT)
         wait_dialog.show_all()
         thread = threading.Thread(target=self._background, args=(wait_dialog, parent, record))
         thread.start()
@@ -1651,7 +1657,7 @@ class ModDialog(GenericDialog):
         def _load():
             dialog.destroy()
             if data.returncode == 1:
-                spawn_dialog(parent, "Server has no mods installed or is unsupported in this mode", "NOTIFY")
+                spawn_dialog(parent, "Server has no mods installed or is unsupported in this mode", Popup.NOTIFY)
                 return
             self.show_all()
             self.set_markup("Modlist (%s mods)" %(mod_count))

From 031df3a62f931cc71e9dbf6a73ab41c6f976afc6 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 13 Nov 2024 05:35:50 +0900
Subject: [PATCH 02/99] fix: batch MSQ queries

---
 helpers/funcs | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

diff --git a/helpers/funcs b/helpers/funcs
index b69640f..b0c57d7 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 set -o pipefail
-version=5.5.0
+version=5.6.0
 
 #CONSTANTS
 aid=221100
@@ -38,6 +38,7 @@ lock_file="$state_path/$prefix.lock"
 #CACHE
 cache_dir="$HOME/.cache/$app_name"
 _cache_servers="$cache_dir/$prefix.servers"
+_cache_temp="$cache_dir/$prefix.temp"
 _cache_my_servers="$cache_dir/$prefix.my_servers"
 _cache_history="$cache_dir/$prefix.history"
 _cache_launch="$cache_dir/$prefix.launch_mods"
@@ -380,9 +381,30 @@ get_dist(){
     fi
 }
 get_remote_servers(){
-    local limit=20000
-    local url="https://api.steampowered.com/IGameServersService/GetServerList/v1/?filter=\appid\221100&limit=$limit&key=$steam_api"
-    curl -Ls "$url" | jq -r '.response.servers'
+    params=(
+        "\\nor\1\map\chernarusplus\\nor\1\map\sakhal"
+        "\map\chernarusplus\empty\1"
+        "\map\chernarusplus\noplayers\1"
+        "\map\\sakhal"
+    )
+    local limit=10000
+    local url="https://api.steampowered.com/IGameServersService/GetServerList/v1/?"
+
+    _fetch(){
+        local param="$1"
+        curl -LsG "$url" \
+            -d filter="\appid\221100${param}" \
+            -d limit=$limit \
+            -d key=$steam_api \
+            | jq -M -r '.response.servers'
+
+    }
+
+    for ((i=0; i <${#params[@]}; i++ )); do
+        _fetch "${params[$i]}" > $_cache_temp.${i}
+    done
+
+    jq -n '[ [inputs]|add ].[]' $_cache_temp.* && rm $_cache_temp.*
 }
 get_unique_maps(){
     shift

From 1eed01623a97637e9e8369fcbfa52f4854c71270 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 13 Nov 2024 05:53:44 +0900
Subject: [PATCH 03/99] chore: clarify timeout message

---
 helpers/funcs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/helpers/funcs b/helpers/funcs
index b0c57d7..59c3718 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -671,7 +671,7 @@ test_ping(){
     local qport="$2"
     local res
     res=$(ping -c1 -4 -W0.5 $1 | grep time= | awk -F= '{print $4}')
-    [[ ! $? -eq 0 ]] && res="Unreachable"
+    [[ ! $? -eq 0 ]] && res="Timed out"
     printf "%s" "$res"
 }
 show_server_modlist(){

From 50d6bdf74f44ba2a912dc088abe505bf4109cf3f Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 13 Nov 2024 06:19:37 +0900
Subject: [PATCH 04/99] feat: add pluralize func

---
 helpers/ui.py | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index cb5542d..ae27bd4 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -169,6 +169,14 @@ status_tooltip = {
     "Hall of fame ⧉": "A list of significant contributors and testers",
 }
 
+def pluralize(plural, count):
+    suffix = plural[-2:]
+    if suffix == "es":
+        base = plural[:-2]
+        return f"%s{'es'[:2*count^2]}" %(base)
+    else:
+        base = plural[:-1]
+        return f"%s{'s'[:count^1]}" %(base)
 
 def format_ping(ping):
     ms = " | Ping: %s" %(ping)
@@ -997,7 +1005,8 @@ class TreeView(Gtk.TreeView):
             self.set_model(mod_store)
             self.grab_focus()
             size = locale.format_string('%.3f', total_size, grouping=True)
-            grid.update_statusbar("Found %s mods taking up %s MiB" %(f'{total_mods:n}', size))
+            pretty = pluralize("mods", total_mods)
+            grid.update_statusbar(f"Found {total_mods:n} {pretty} taking up {size} MiB")
             toggle_signal(self, self, '_on_keypress', True)
 
         grid = self.get_outer_grid()
@@ -1286,16 +1295,10 @@ def format_metadata(row_sel):
         return prefix
 
 
-def format_tooltip(sum, hits):
-    if hits == 1:
-        hit_suffix = "match"
-    else:
-        hit_suffix = "matches"
-    if sum == 1:
-        player_suffix = "player"
-    else:
-        player_suffix = "players"
-    tooltip = "Found %s %s with %s %s" %(f'{hits:n}', hit_suffix, f'{sum:n}', player_suffix)
+def format_tooltip(players, hits):
+    hits_pretty = pluralize("matches", hits)
+    players_pretty = pluralize("players", players)
+    tooltip = f"Found {hits:n} {hits_pretty} with {players:n} {players_pretty}"
     return tooltip
 
 

From 365b455b3c4c3595d4db280575af8d1c9a4e7022 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 13 Nov 2024 09:34:05 +0900
Subject: [PATCH 05/99] feat: bulk mod deletion

---
 helpers/ui.py | 166 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 150 insertions(+), 16 deletions(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index ae27bd4..99d8102 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -48,12 +48,14 @@ default_tooltip = "Select a row to see its detailed description"
 server_tooltip = [None, None]
 
 user_path = os.path.expanduser('~')
+cache_path = '%s/.cache/dzgui' %(user_path)
 state_path = '%s/.local/state/dzgui' %(user_path)
 helpers_path = '%s/.local/share/dzgui/helpers' %(user_path)
 log_path = '%s/logs' %(state_path)
 changelog_path = '%s/CHANGELOG.md' %(state_path)
 geometry_path = '%s/dzg.cols.json' %(state_path)
 funcs = '%s/funcs' %(helpers_path)
+mods_temp_file = '%s/dzg.mods_temp' %(cache_path)
 
 logger = logging.getLogger(__name__)
 log_file = '%s/DZGUI_DEBUG.log' %(log_path)
@@ -169,6 +171,32 @@ status_tooltip = {
     "Hall of fame ⧉": "A list of significant contributors and testers",
 }
 
+def relative_widget(child):
+    # get target widget relative to source widget
+    # chiefly used for transient modals and parent member functions
+    # when calling non-adjacent widgets
+    # positions are relative to grid members
+    grid = child.get_parent().get_parent()
+    treeview = grid.scrollable_treelist.treeview
+    outer = grid.get_parent()
+
+    widgets = {
+            'grid': grid,
+            'treeview': treeview,
+            'outer': outer
+            }
+
+    supported = [
+            "ModSelectionPanel",
+            "ButtonBox",
+            "TreeView"
+            ]
+
+    if child.__class__.__name__ not in supported:
+        raise Exception("Unsupported child widget")
+
+    return widgets
+
 def pluralize(plural, count):
     suffix = plural[-2:]
     if suffix == "es":
@@ -571,10 +599,17 @@ class ButtonBox(Gtk.Box):
 
     def _update_single_column(self, context):
         logger.info("Returning from multi-column view to monocolumn view for the context '%s'" %(context))
-        treeview = self.get_treeview()
+        widgets = relative_widget(self)
+
+        # only applicable when returning from mod list
+        grid = widgets["grid"]
+        grid.right_panel.remove(grid.sel_panel)
         right_panel = self.get_parent()
         right_panel.set_filter_visibility(False)
 
+        treeview = widgets["treeview"]
+        treeview.set_selection_mode(Gtk.SelectionMode.SINGLE)
+
         """Block maps combo when returning to main menu"""
         toggle_signal(right_panel.filters_vbox, right_panel.filters_vbox.maps_combo, '_on_map_changed', False)
         right_panel.filters_vbox.keyword_entry.set_text("")
@@ -749,14 +784,30 @@ class TreeView(Gtk.TreeView):
                     proc = call_out(parent, "delete", symlink, dir)
                     if proc.returncode == 0:
                         spawn_dialog(parent, success_msg, Popup.NOTIFY)
-                        self._update_quad_column("List installed mods")
+                        self.update_quad_column("List installed mods")
                     else:
                         spawn_dialog(parent, fail_msg, Popup.NOTIFY)
             case "Open in Steam Workshop":
                 record = self.get_column_at_index(2)
                 call_out(parent, "open_workshop_page", record)
 
+    def toggle_selection(self, bool):
+        l = len(mod_store)
+        match bool:
+            case True:
+                for i in range (0, l):
+                    path = Gtk.TreePath(i)
+                    it = mod_store.get_iter(path)
+                    self.get_selection().select_path(path)
+            case False:
+                for i in range (0, l):
+                    path = Gtk.TreePath(i)
+                    it = mod_store.get_iter(path)
+                    self.get_selection().unselect_path(path)
+
     def _on_button_release(self, widget, event):
+        if event.type is Gdk.EventType.BUTTON_RELEASE and event.button != 3:
+            return
         try:
             pathinfo = self.get_path_at_pos(event.x, event.y)
             if pathinfo is None:
@@ -766,8 +817,6 @@ class TreeView(Gtk.TreeView):
         except AttributeError:
             pass
 
-        if event.type is Gdk.EventType.BUTTON_RELEASE and event.button != 3:
-            return
         context = self.get_first_col()
         self.menu = Gtk.Menu()
 
@@ -861,8 +910,6 @@ class TreeView(Gtk.TreeView):
             self.emit("on_distcalc_started")
             self.current_proc = CalcDist(self, addr, self.queue, cache)
             self.current_proc.start()
-        elif None:
-            return
         else:
             tooltip = format_metadata(row_sel)
             grid.update_statusbar(tooltip)
@@ -1004,16 +1051,28 @@ class TreeView(Gtk.TreeView):
             dialog.destroy()
             self.set_model(mod_store)
             self.grab_focus()
-            size = locale.format_string('%.3f', total_size, grouping=True)
-            pretty = pluralize("mods", total_mods)
-            grid.update_statusbar(f"Found {total_mods:n} {pretty} taking up {size} MiB")
+            if abort is False:
+                size = locale.format_string('%.3f', total_size, grouping=True)
+                pretty = pluralize("mods", total_mods)
+                grid.update_statusbar(f"Found {total_mods:n} {pretty} taking up {size} MiB")
+            #2024-11-12
+            toggle_signal(self, self.selected_row, '_on_tree_selection_changed', True)
             toggle_signal(self, self, '_on_keypress', True)
 
         grid = self.get_outer_grid()
         right_panel = grid.right_panel
 
+        abort = False
         right_panel.set_filter_visibility(False)
         data = call_out(self, "list_mods", mode)
+
+        # suppress errors if no mods available on system
+        if data.returncode == 1:
+            abort = True
+            GLib.idle_add(load)
+            spawn_dialog(self.get_outer_window(), data.stdout, Popup.NOTIFY)
+            return 1
+
         result = parse_mod_rows(data)
         total_size = result[0]
         total_mods = result[1]
@@ -1091,6 +1150,8 @@ class TreeView(Gtk.TreeView):
         selected_map.clear()
         selected_map.append("Map=All maps")
 
+        self.set_selection_mode(Gtk.SelectionMode.SINGLE)
+
         for check in checks:
             toggle_signal(self.get_outer_grid().right_panel.filters_vbox, check, '_on_check_toggle', True)
         toggle_signal(self, self, '_on_keypress', True)
@@ -1130,8 +1191,12 @@ class TreeView(Gtk.TreeView):
         cell.set_property('text', formatted)
         return
 
-    def _update_quad_column(self, mode):
-        # toggle_signal(self, self.selected_row, '_on_tree_selection_changed', False)
+    def set_selection_mode(self, mode):
+        sel = self.get_selection()
+        sel.set_mode(mode)
+
+    def update_quad_column(self, mode):
+        toggle_signal(self, self.selected_row, '_on_tree_selection_changed', False)
         for column in self.get_columns():
             self.remove_column(column)
 
@@ -1141,6 +1206,10 @@ class TreeView(Gtk.TreeView):
         if mode == "List installed mods":
             cols = mod_cols
             self.set_model(mod_store)
+            # attach button panel
+            grid = self.get_parent().get_parent()
+            grid.right_panel.pack_start(grid.sel_panel, False, False, 0)
+            grid.show_all()
         else:
             cols = log_cols
             self.set_model(log_store)
@@ -1152,12 +1221,10 @@ class TreeView(Gtk.TreeView):
                 if i == 3:
                     column.set_cell_data_func(renderer, self._format_float, func_data=None)
             column.set_sort_column_id(i)
-            #if (column_title == "Name"):
-            #    column.set_fixed_width(600)
             self.append_column(column)
 
         if mode == "List installed mods":
-            pass
+            self.set_selection_mode(Gtk.SelectionMode.MULTIPLE)
         else:
             data = call_out(self, "show_log")
             res = parse_log_rows(data)
@@ -1236,7 +1303,7 @@ class TreeView(Gtk.TreeView):
             self.grab_focus()
         elif chosen_row == "List installed mods" or chosen_row == "Show debug log":
             toggle_signal(self, self.selected_row, '_on_tree_selection_changed', False)
-            self._update_quad_column(chosen_row)
+            self.update_quad_column(chosen_row)
             toggle_signal(self, self.selected_row, '_on_tree_selection_changed', True)
         elif any(map(context.__contains__, valid_contexts)):
             # implies activated row on any server list subcontext
@@ -1747,7 +1814,7 @@ class Grid(Gtk.Grid):
             self.scrollable_treelist.set_vexpand(True)
 
         self.right_panel = RightPanel(is_steam_deck)
-
+        self.sel_panel = ModSelectionPanel()
 
         self.bar = Gtk.Statusbar()
         self.scrollable_treelist.treeview.connect("on_distcalc_started", self._on_calclat_started)
@@ -1853,6 +1920,73 @@ class App(Gtk.Application):
         self.win.halt_proc_and_quit(self, None)
 
 
+class ModSelectionPanel(Gtk.Box):
+    def __init__(self):
+        super().__init__(spacing=6)
+        self.set_orientation(Gtk.Orientation.VERTICAL)
+
+        labels = [
+                "Select all",
+                "Unselect all",
+                "Delete selected"
+                ]
+
+        for l in labels:
+            button = Gtk.Button(label=l)
+            button.set_margin_start(10)
+            button.set_margin_end(10)
+            button.connect("clicked", self._on_button_clicked)
+            self.pack_start(button, False, True, 0)
+
+    def _on_button_clicked(self, button):
+        label = button.get_label()
+        widgets = relative_widget(self)
+        parent = widgets["outer"]
+        treeview = widgets["treeview"]
+        match label:
+            case "Select all":
+                treeview.toggle_selection(True)
+            case "Unselect all":
+                treeview.toggle_selection(False)
+            case "Delete selected":
+                (model, pathlist) = treeview.get_selection().get_selected_rows()
+                ct = len(pathlist)
+                if ct < 1:
+                    return
+
+                self._iterate_mod_deletion(model, pathlist, ct)
+
+    def _iterate_mod_deletion(self, model, pathlist, ct):
+        # hedge against large number of arguments
+        widgets = relative_widget(self)
+        parent = widgets["outer"]
+        treeview = widgets["treeview"]
+
+        pretty = pluralize("mods", ct)
+        conf_msg = f"You are going to delete {ct} {pretty}. Proceed?"
+        success_msg = f"Successfully deleted {ct} {pretty}."
+        fail_msg = "An error occurred during deletion. Aborting."
+
+        res = spawn_dialog(parent, conf_msg, Popup.CONFIRM)
+        if res != 0:
+            return
+
+        mods = []
+        for i in pathlist:
+            it = model.get_iter(i)
+            symlink = model.get_value(it, 1)
+            path = model.get_value(it, 2)
+            concat = symlink + " " + path + "\n"
+            mods.append(concat)
+        with open(mods_temp_file, "w") as outfile:
+            outfile.writelines(mods)
+        proc = call_out(parent, "delete")
+        if proc.returncode == 0:
+            spawn_dialog(parent, success_msg, Popup.NOTIFY)
+            treeview.update_quad_column("List installed mods")
+        else:
+            spawn_dialog(parent, fail_msg, Popup.NOTIFY)
+
 class FilterPanel(Gtk.Box):
     def __init__(self):
         super().__init__(spacing=6)

From fbc500066f4558958f4a189df0a5eedc6d60a328 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 13 Nov 2024 09:34:25 +0900
Subject: [PATCH 06/99] fix: focus first row

---
 helpers/ui.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/helpers/ui.py b/helpers/ui.py
index 99d8102..1b55aa9 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -969,6 +969,11 @@ class TreeView(Gtk.TreeView):
         else:
             return False
 
+    def _focus_first_row(self):
+        path = Gtk.TreePath(0)
+        it = mod_store.get_iter(path)
+        self.get_selection().select_path(path)
+
     def get_column_at_index(self, index):
         select = self.get_selection()
         sels = select.get_selected_rows()
@@ -1058,6 +1063,7 @@ class TreeView(Gtk.TreeView):
             #2024-11-12
             toggle_signal(self, self.selected_row, '_on_tree_selection_changed', True)
             toggle_signal(self, self, '_on_keypress', True)
+            self._focus_first_row()
 
         grid = self.get_outer_grid()
         right_panel = grid.right_panel

From c254de2aec6f8c4dd2fbbb6174b951984d301bf0 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 13 Nov 2024 09:42:01 +0900
Subject: [PATCH 07/99] chore: add comments

---
 helpers/ui.py | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index 1b55aa9..16cd43e 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -172,10 +172,11 @@ status_tooltip = {
 }
 
 def relative_widget(child):
-    # get target widget relative to source widget
-    # chiefly used for transient modals and parent member functions
-    # when calling non-adjacent widgets
-    # positions are relative to grid members
+    # returns collection of outer widgets relative to source widget
+    # chiefly used for transient modals and accessing non-adjacent widget methods
+    # positions are always relative to grid sub-children
+    # containers and nested buttons should never need to call this function directly
+
     grid = child.get_parent().get_parent()
     treeview = grid.scrollable_treelist.treeview
     outer = grid.get_parent()
@@ -187,9 +188,9 @@ def relative_widget(child):
             }
 
     supported = [
-            "ModSelectionPanel",
-            "ButtonBox",
-            "TreeView"
+            "ModSelectionPanel", # Grid < RightPanel < ModSelectionPanel
+            "ButtonBox", # Grid < RightPanel < ButtonBox
+            "TreeView" # Grid < ScrollableTree < TreeView
             ]
 
     if child.__class__.__name__ not in supported:
@@ -590,6 +591,7 @@ class ButtonBox(Gtk.Box):
                 button.set_size_request(10, 10)
             else:
                 button.set_size_request(50,50)
+            #TODO: explore a more intuitive way of highlighting the active context
             button.set_opacity(0.6)
             self.buttons.append(button)
             button.connect("clicked", self._on_selection_button_clicked)

From d6d8dde2aad09d0e2aa01cabeffa87b6b4f45599 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 13 Nov 2024 09:43:23 +0900
Subject: [PATCH 08/99] feat: iterate mod deletion

---
 helpers/funcs | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/helpers/funcs b/helpers/funcs
index 59c3718..9c42da7 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -38,6 +38,7 @@ lock_file="$state_path/$prefix.lock"
 #CACHE
 cache_dir="$HOME/.cache/$app_name"
 _cache_servers="$cache_dir/$prefix.servers"
+_cache_mods_temp="$cache_dir/$prefix.mods_temp"
 _cache_temp="$cache_dir/$prefix.temp"
 _cache_my_servers="$cache_dir/$prefix.my_servers"
 _cache_history="$cache_dir/$prefix.history"
@@ -580,12 +581,23 @@ parse_server_json(){
 }
 delete_local_mod(){
     shift
-    local symlink="$1"
-    local dir="$2"
-    [[ ! -d $workshop_dir/$dir ]] && return 1
-    [[ ! -L $game_dir/$symlink ]] && return 1
-    #SC2115
-    rm -rf "${workshop_dir:?}/$dir" && unlink "$game_dir/$symlink" || return 1
+    if [[ -z $1 ]]; then
+        # use multi mode
+        readarray -t symlinks < <(awk '{print $1}' $_cache_mods_temp)
+        readarray -t ids < <(awk '{print $2}' $_cache_mods_temp)
+        rm "$_cache_mods_temp"
+    else
+        local symlink="$1"
+        local dir="$2"
+        readarray -t symlinks <<< "$symlink"
+        readarray -t ids <<< "$dir"
+    fi
+    for ((i=0; i<${#symlinks[@]}; i++)); do
+        [[ ! -d $workshop_dir/${ids[$i]} ]] && return 1
+        [[ ! -L $game_dir/${symlinks[$i]} ]] && return 1
+        #SC2115
+        rm -rf "${workshop_dir:?}/${ids[$i]}" && unlink "$game_dir/${symlinks[$i]}" || return 1
+    done
 }
 test_cooldown(){
     [[ ! -f $_cache_cooldown ]] && return 0

From 2087f4ffa8d4797d563ca5c5989a241db311460b Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 13 Nov 2024 09:52:49 +0900
Subject: [PATCH 09/99] chore: update changelog

---
 CHANGELOG.md | 10 ++++++++++
 dzgui.sh     |  6 +++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0982e75..45f0ba0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
 # Changelog
 
+## [5.6.0-beta.1] 2024-11-12
+### Added
+- Bulk delete mods (via 'List installed mods' list). Not compatible with Manual Mod install mode
+### Fixed
+- Fix for server list truncation causing some servers to not appear in results
+- Suppress signal emission when switching menu contexts
+- Focus first row when opening mods list
+### Changed
+- Clarify some error messages and normalize text formatting
+
 ## [5.5.0-beta.5] 2024-11-03
 ### Changed
 - Use updated A2S_RULES logic
diff --git a/dzgui.sh b/dzgui.sh
index 5a0bac8..3330fc8 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.5.0-beta.5
+version=5.6.0-beta.1
 
 #CONSTANTS
 aid=221100
@@ -569,10 +569,10 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="dd7aa34df1d374739127cca3033a3f67"
+        ["ui.py"]="680ff0e4071681f26409fa3592a41e46"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="d8ae2662fbc3c62bdb5a51dec1935705"
+        ["funcs"]="fa5eb43c454e6bf2903e94884fe64644"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"

From 732bc918a76faae2a21c6a134a17c6dcd15ba4eb Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Sat, 16 Nov 2024 07:42:52 +0900
Subject: [PATCH 10/99] fix: align local mod signatures

---
 dzgui.sh      | 17 +++++++++++++++--
 helpers/funcs | 12 +++++++++++-
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 3330fc8..5af16f5 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.1
+version=5.6.0-beta.2
 
 #CONSTANTS
 aid=221100
@@ -572,7 +572,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="680ff0e4071681f26409fa3592a41e46"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="fa5eb43c454e6bf2903e94884fe64644"
+        ["funcs"]="acd5d85b27141082b25e07138f8b5b54"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
@@ -862,6 +862,18 @@ legacy_cols(){
     < $cols_file jq '.cols += { "Queue": 120 }' > $cols_file.new &&
     mv $cols_file.new $cols_file
 }
+stale_mod_signatures(){
+    local workshop_dir="$steam_path/steamapps/workshop/content/$aid"
+    if [[ -d $workshop_dir ]]; then
+        readarray -t old_mod_ids < <(awk -F, '{print $1}' $versions_file)
+        for ((i=0; i<${#old_mod_ids[@]}; ++i)); do
+            if [[ ! -d $workshop_dir/${old_mod_ids[$i]} ]]; then
+                "$HOME/.local/share/$app_name/helpers/funcs" "align_local" "${old_mod_ids[$i]}"
+            fi
+        done
+    fi
+
+}
 initial_setup(){
     setup_dirs
     setup_state_files
@@ -882,6 +894,7 @@ initial_setup(){
     steam_deps
     migrate_files
     stale_symlinks
+    stale_mod_signatures
     local_latlon
     is_steam_running
     is_dzg_downloading
diff --git a/helpers/funcs b/helpers/funcs
index 9c42da7..0375292 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -117,6 +117,7 @@ declare -A funcs=(
 ["start_cooldown"]="start_cooldown"
 ["list_mods"]="list_mods"
 ["delete"]="delete_local_mod"
+["align_local"]="align_versions_file"
 ["show_server_modlist"]="show_server_modlist"
 ["test_ping"]="test_ping"
 ["is_in_favs"]="is_in_favs"
@@ -339,7 +340,7 @@ list_mods(){
     fi
 }
 installed_mods(){
-    ls -1 "$workshop_dir"
+    find "$workshop_dir" -maxdepth 1 -mindepth 1 -printf "%f\n"
 }
 local_latlon(){
     local url="http://ip-api.com/json/$local_ip"
@@ -579,6 +580,14 @@ parse_server_json(){
     "\(.addr|split(":")[1])"
     ' | sort -k1
 }
+align_versions_file(){
+    shift
+    local mod="$1"
+    [[ ! -f $versions_file ]] && return
+    < "$versions_file" awk -F, -v var="$mod" '$1 != var' > $versions_file.new &&
+        mv $versions_file.new $versions_file
+    logger INFO "Removed local signatures for the mod '$mod'"
+}
 delete_local_mod(){
     shift
     if [[ -z $1 ]]; then
@@ -597,6 +606,7 @@ delete_local_mod(){
         [[ ! -L $game_dir/${symlinks[$i]} ]] && return 1
         #SC2115
         rm -rf "${workshop_dir:?}/${ids[$i]}" && unlink "$game_dir/${symlinks[$i]}" || return 1
+        align_versions_file "align" "${ids[$i]}"
     done
 }
 test_cooldown(){

From 32a43cd7875c51227fef6a75b4a772f063c6d58b Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Sat, 16 Nov 2024 11:37:02 +0900
Subject: [PATCH 11/99] chore: update changelog

---
 CHANGELOG.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 45f0ba0..daeff58 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## [5.6.0-beta.2] 2024-11-15
+### Fixed
+- Clean up local mod signatures from versions file when deleting mods
+
 ## [5.6.0-beta.1] 2024-11-12
 ### Added
 - Bulk delete mods (via 'List installed mods' list). Not compatible with Manual Mod install mode

From 8b9f751ff1852713dc9da9edf45e27e36b94045d Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 19 Nov 2024 21:49:59 +0900
Subject: [PATCH 12/99] fix: error handling for no local mods

---
 CHANGELOG.md  |  8 +++++
 dzgui.sh      |  8 +++--
 helpers/funcs | 57 ++++++++++++++++++++++++----------
 helpers/ui.py | 85 ++++++++++++++++++++++++++++++++-------------------
 4 files changed, 108 insertions(+), 50 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index daeff58..cd3f24c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
 # Changelog
 
+## [5.6.0-beta.3] 2024-11-18
+### Fixed
+- Improved handling for cases where there are no locally installed mods
+- Set up mod symlinks at boot, rather than only on server connect
+- Prevent context menus from opening when table is empty
+- When reloading table in-place, prevent duplicate panel elements from being added if already present
+- Clean up signal emission
+
 ## [5.6.0-beta.2] 2024-11-15
 ### Fixed
 - Clean up local mod signatures from versions file when deleting mods
diff --git a/dzgui.sh b/dzgui.sh
index 5af16f5..7f1ab2f 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -569,10 +569,10 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="680ff0e4071681f26409fa3592a41e46"
+        ["ui.py"]="4663cdda7bf91a0c594103d6f4382f15"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="acd5d85b27141082b25e07138f8b5b54"
+        ["funcs"]="5eae515ea2cac2ab38212a529415e86b"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
@@ -874,6 +874,9 @@ stale_mod_signatures(){
     fi
 
 }
+create_new_links(){
+    "$HOME/.local/share/$app_name/helpers/funcs" "update_symlinks"
+}
 initial_setup(){
     setup_dirs
     setup_state_files
@@ -895,6 +898,7 @@ initial_setup(){
     migrate_files
     stale_symlinks
     stale_mod_signatures
+    create_new_links
     local_latlon
     is_steam_running
     is_dzg_downloading
diff --git a/helpers/funcs b/helpers/funcs
index 0375292..09037f6 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -116,7 +116,7 @@ declare -A funcs=(
 ["query_config"]="query_config"
 ["start_cooldown"]="start_cooldown"
 ["list_mods"]="list_mods"
-["delete"]="delete_local_mod"
+["Delete selected mods"]="delete_local_mod"
 ["align_local"]="align_versions_file"
 ["show_server_modlist"]="show_server_modlist"
 ["test_ping"]="test_ping"
@@ -131,6 +131,7 @@ declare -A funcs=(
 ["Handshake"]="final_handshake"
 ["get_player_count"]="get_player_count"
 ["lan_scan"]="lan_scan"
+["update_symlinks"]="update_symlinks"
 )
 
 lan_scan(){
@@ -588,19 +589,34 @@ align_versions_file(){
         mv $versions_file.new $versions_file
     logger INFO "Removed local signatures for the mod '$mod'"
 }
+pluralize(){
+    local plural="$1"
+    local count="$2"
+    local mod
+    local suffix
+    local base
+    local ct
+    local s
+
+    if [[ "${plural: -2}" == "es" ]]; then
+        base="${plural::-2}"
+        suffix="${plural: -2}"
+        ct=$((count^2))
+        [[ $ct -ne 3 ]] && s="$suffix"
+    else
+        base="${plural::-1}"
+        suffix="${plural: -1}"
+        ct=$((count^1))
+        [[ $ct -gt 0 ]] && s="$suffix"
+    fi
+
+    printf "%s%s" "$base" "$s"
+}
 delete_local_mod(){
     shift
-    if [[ -z $1 ]]; then
-        # use multi mode
-        readarray -t symlinks < <(awk '{print $1}' $_cache_mods_temp)
-        readarray -t ids < <(awk '{print $2}' $_cache_mods_temp)
-        rm "$_cache_mods_temp"
-    else
-        local symlink="$1"
-        local dir="$2"
-        readarray -t symlinks <<< "$symlink"
-        readarray -t ids <<< "$dir"
-    fi
+    readarray -t symlinks < <(awk '{print $1}' $_cache_mods_temp)
+    readarray -t ids < <(awk '{print $2}' $_cache_mods_temp)
+    rm "$_cache_mods_temp"
     for ((i=0; i<${#symlinks[@]}; i++)); do
         [[ ! -d $workshop_dir/${ids[$i]} ]] && return 1
         [[ ! -L $game_dir/${symlinks[$i]} ]] && return 1
@@ -608,16 +624,17 @@ delete_local_mod(){
         rm -rf "${workshop_dir:?}/${ids[$i]}" && unlink "$game_dir/${symlinks[$i]}" || return 1
         align_versions_file "align" "${ids[$i]}"
     done
+    printf "Successfully deleted %s %s." "${#symlinks[@]}" "$(pluralize "mods" ${#symlinks[@]})"
+    return 95
 }
 test_cooldown(){
     [[ ! -f $_cache_cooldown ]] && return 0
     local old_time=$(< $_cache_cooldown)
     local cur_time=$(date +%s)
     local delta=$(($cur_time - $old_time))
-    local suffix="seconds"
     if [[ $delta -lt 60 ]]; then
         local remains=$((60 - $delta))
-        [[ $remains -eq 1 ]] && suffix="second"
+        local suffix=$(pluralize "seconds" $remains)
         printf "Global API cooldown in effect. Please wait %s %s." "$remains" "$suffix"
         exit 1
     fi
@@ -1104,7 +1121,11 @@ legacy_symlinks(){
             unlink "$d"
         fi
     done
-    for d in "$workshop_dir"/*; do
+    readarray -t mod_dirs < <(find "$workshop_dir" -maxdepth 1 -mindepth 1 -type d)
+    [[ ${#mod_dirs[@]} -eq 0 ]] && return
+    for d in "${mod_dirs[@]}"; do
+        # suppress errors if mods are downloading at boot
+        [[ ! -f "$d/meta.cpp" ]] && continue
         local id=$(awk -F"= " '/publishedid/ {print $2}' "$d"/meta.cpp | awk -F\; '{print $1}')
         local encoded_id=$(echo "$id" | awk '{printf("%c",$1)}' | base64 | sed 's/\//_/g; s/=//g; s/+/]/g')
         if [[ -h "$game_dir/@$encoded_id" ]]; then
@@ -1113,7 +1134,11 @@ legacy_symlinks(){
     done
 }
 symlinks(){
-    for d in "$workshop_dir"/*; do
+    readarray -t mod_dirs < <(find "$workshop_dir" -maxdepth 1 -mindepth 1 -type d)
+    [[ ${#mod_dirs[@]} -eq 0 ]] && return
+    for d in "${mod_dirs[@]}"; do
+        # suppress errors if mods are downloading at boot
+        [[ ! -f "$d/meta.cpp" ]] && continue
         id=$(awk -F"= " '/publishedid/ {print $2}' "$d"/meta.cpp | awk -F\; '{print $1}')
         encoded_id=$(encode "$id")
         link="@$encoded_id"
diff --git a/helpers/ui.py b/helpers/ui.py
index 16cd43e..a6ba4ea 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -330,8 +330,8 @@ def spawn_dialog(transient_parent, msg, mode):
 
 
 def process_shell_return_code(transient_parent, msg, code, original_input):
+    logger.info("Processing return code '%s' for the input '%s', returned message '%s'" %(code, original_input, msg))
     match code:
-            #TODO: add logger output to each
         case 0:
             # success with notice popup
             spawn_dialog(transient_parent, msg, Popup.NOTIFY)
@@ -369,6 +369,13 @@ def process_shell_return_code(transient_parent, msg, code, original_input):
             transient_parent.grid.update_statusbar(tooltip)
             spawn_dialog(transient_parent, msg, Popup.NOTIFY)
             return
+        case 95:
+            # reload mods list
+            spawn_dialog(transient_parent, msg, Popup.NOTIFY)
+            treeview = transient_parent.grid.scrollable_treelist.treeview
+            # re-block this signal before redrawing table contents
+            toggle_signal(treeview, treeview, '_on_keypress', False)
+            treeview.update_quad_column("List installed mods")
         case 100:
             # final handoff before launch
             final_conf = spawn_dialog(transient_parent, msg, Popup.CONFIRM)
@@ -427,6 +434,8 @@ def process_tree_option(input, treeview):
             else:
                 # non-blocking subprocess
                 subprocess.Popen(['/usr/bin/env', 'bash', funcs, "Open link", command])
+        case "Delete selected mods":
+            call_on_thread(True, context, "Deleting mods", command)
         case "Handshake":
             call_on_thread(True, context, "Waiting for DayZ", command)
         case _:
@@ -605,7 +614,9 @@ class ButtonBox(Gtk.Box):
 
         # only applicable when returning from mod list
         grid = widgets["grid"]
-        grid.right_panel.remove(grid.sel_panel)
+        grid_last_child = grid.right_panel.get_children()[-1]
+        if isinstance(grid_last_child, ModSelectionPanel):
+            grid.right_panel.remove(grid.sel_panel)
         right_panel = self.get_parent()
         right_panel.set_filter_visibility(False)
 
@@ -780,15 +791,15 @@ class TreeView(Gtk.TreeView):
                 success_msg = "Successfully deleted the mod '%s'." %(value)
                 fail_msg = "An error occurred during deletion. Aborting."
                 res = spawn_dialog(parent, conf_msg, Popup.CONFIRM)
-                symlink = self.get_column_at_index(1)
-                dir = self.get_column_at_index(2)
                 if res == 0:
-                    proc = call_out(parent, "delete", symlink, dir)
-                    if proc.returncode == 0:
-                        spawn_dialog(parent, success_msg, Popup.NOTIFY)
-                        self.update_quad_column("List installed mods")
-                    else:
-                        spawn_dialog(parent, fail_msg, Popup.NOTIFY)
+                    mods = []
+                    symlink = self.get_column_at_index(1)
+                    dir = self.get_column_at_index(2)
+                    concat = symlink + " " + dir + "\n"
+                    mods.append(concat)
+                    with open(mods_temp_file, "w") as outfile:
+                        outfile.writelines(mods)
+                    process_tree_option(["Delete selected mods", ""], self)
             case "Open in Steam Workshop":
                 record = self.get_column_at_index(2)
                 call_out(parent, "open_workshop_page", record)
@@ -851,6 +862,11 @@ class TreeView(Gtk.TreeView):
         self.menu.show_all()
 
         if event.type is Gdk.EventType.KEY_PRESS and event.keyval is Gdk.KEY_l:
+            sel = self.get_selection()
+            sels = sel.get_selected_rows()
+            (model, pathlist) = sels
+            if len(pathlist) < 1:
+                return
             self.menu.popup_at_widget(widget, Gdk.Gravity.CENTER, Gdk.Gravity.WEST)
         else:
             self.menu.popup_at_pointer(event)
@@ -973,8 +989,11 @@ class TreeView(Gtk.TreeView):
 
     def _focus_first_row(self):
         path = Gtk.TreePath(0)
-        it = mod_store.get_iter(path)
-        self.get_selection().select_path(path)
+        try:
+            it = mod_store.get_iter(path)
+            self.get_selection().select_path(path)
+        except ValueError:
+            pass
 
     def get_column_at_index(self, index):
         select = self.get_selection()
@@ -1056,31 +1075,42 @@ class TreeView(Gtk.TreeView):
     def _background_quad(self, dialog, mode):
         def load():
             dialog.destroy()
+            # detach button panel if store is empty
+            if isinstance(panel_last_child, ModSelectionPanel):
+                if total_mods == 0:
+                    right_panel.remove(grid.sel_panel)
+                    grid.show_all()
+                    right_panel.set_filter_visibility(False)
             self.set_model(mod_store)
             self.grab_focus()
-            if abort is False:
-                size = locale.format_string('%.3f', total_size, grouping=True)
-                pretty = pluralize("mods", total_mods)
-                grid.update_statusbar(f"Found {total_mods:n} {pretty} taking up {size} MiB")
+            size = locale.format_string('%.3f', total_size, grouping=True)
+            pretty = pluralize("mods", total_mods)
+            grid.update_statusbar(f"Found {total_mods:n} {pretty} taking up {size} MiB")
             #2024-11-12
             toggle_signal(self, self.selected_row, '_on_tree_selection_changed', True)
             toggle_signal(self, self, '_on_keypress', True)
             self._focus_first_row()
+            if total_mods == 0:
+                spawn_dialog(self.get_outer_window(), data.stdout, Popup.NOTIFY)
 
-        grid = self.get_outer_grid()
+        widgets = relative_widget(self)
+        grid = widgets["grid"]
         right_panel = grid.right_panel
-
-        abort = False
-        right_panel.set_filter_visibility(False)
         data = call_out(self, "list_mods", mode)
+        panel_last_child = right_panel.get_children()[-1]
 
         # suppress errors if no mods available on system
         if data.returncode == 1:
-            abort = True
+            total_mods = 0
+            total_size = 0
             GLib.idle_add(load)
-            spawn_dialog(self.get_outer_window(), data.stdout, Popup.NOTIFY)
             return 1
 
+        # attach button panel only if missing (prevents duplication when reloading in-place)
+        if not isinstance(panel_last_child, ModSelectionPanel):
+            right_panel.pack_start(grid.sel_panel, False, False, 0)
+            grid.show_all()
+            right_panel.set_filter_visibility(False)
         result = parse_mod_rows(data)
         total_size = result[0]
         total_mods = result[1]
@@ -1214,10 +1244,6 @@ class TreeView(Gtk.TreeView):
         if mode == "List installed mods":
             cols = mod_cols
             self.set_model(mod_store)
-            # attach button panel
-            grid = self.get_parent().get_parent()
-            grid.right_panel.pack_start(grid.sel_panel, False, False, 0)
-            grid.show_all()
         else:
             cols = log_cols
             self.set_model(log_store)
@@ -1988,12 +2014,7 @@ class ModSelectionPanel(Gtk.Box):
             mods.append(concat)
         with open(mods_temp_file, "w") as outfile:
             outfile.writelines(mods)
-        proc = call_out(parent, "delete")
-        if proc.returncode == 0:
-            spawn_dialog(parent, success_msg, Popup.NOTIFY)
-            treeview.update_quad_column("List installed mods")
-        else:
-            spawn_dialog(parent, fail_msg, Popup.NOTIFY)
+        process_tree_option(["Delete selected mods", ""], treeview)
 
 class FilterPanel(Gtk.Box):
     def __init__(self):

From 651b50ade2df8c8c05d7f8b20fc4177022499165 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 19 Nov 2024 21:51:43 +0900
Subject: [PATCH 13/99] chore: unify time delta methods

---
 dzgui.sh      |  2 +-
 helpers/ui.py | 16 +++++-----------
 2 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 7f1ab2f..d95bb3a 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -569,7 +569,7 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="4663cdda7bf91a0c594103d6f4382f15"
+        ["ui.py"]="353e6fcb8d2c674a3720c0ab8a2b3fd6"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
         ["funcs"]="5eae515ea2cac2ab38212a529415e86b"
diff --git a/helpers/ui.py b/helpers/ui.py
index a6ba4ea..6ef843d 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -12,7 +12,6 @@ import subprocess
 import sys
 import textwrap
 import threading
-import time
 
 locale.setlocale(locale.LC_ALL, '')
 gi.require_version("Gtk", "3.0")
@@ -22,7 +21,6 @@ from enum import Enum
 # 5.6.0
 app_name = "DZGUI"
 
-start_time = 0
 
 cache = {}
 config_vals = []
@@ -874,15 +872,11 @@ class TreeView(Gtk.TreeView):
     def refresh_player_count(self):
         parent = self.get_outer_window()
 
-        global start_time
-        then = start_time
-        now = time.monotonic()
-        diff = now - then
-        cooldown = 30 - math.floor(diff)
-        if ((start_time > 0) and (now - then) < 30):
-            spawn_dialog(parent, "Global refresh cooldown not met. Wait %s second(s)." %(str(cooldown)), Popup.NOTIFY)
-            return
-        start_time = now
+        cooldown = call_out(self, "test_cooldown", "", "")
+        if cooldown.returncode == 1:
+            spawn_dialog(self.get_outer_window(), cooldown.stdout, Popup.NOTIFY)
+            return 1
+        call_out(self, "start_cooldown", "", "")
 
         thread = threading.Thread(target=self._background_player_count, args=())
         thread.start()

From 3e9c5a96d90833ddea05a0d78090a2f24673270a Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 19 Nov 2024 21:51:59 +0900
Subject: [PATCH 14/99] chore: bump version

---
 dzgui.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dzgui.sh b/dzgui.sh
index d95bb3a..2f3ea7a 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.2
+version=5.6.0-beta.3
 
 #CONSTANTS
 aid=221100

From 9fdc123e2c11e28f1fcc985e5ca80ac8db4e7094 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 21 Nov 2024 17:28:36 +0900
Subject: [PATCH 15/99] feat: header bar

---
 CHANGELOG.md  |  10 +
 dzgui.sh      |   8 +-
 helpers/funcs |   7 +-
 helpers/ui.py | 876 +++++++++++++++++++++++++++++++++++---------------
 4 files changed, 642 insertions(+), 259 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index cd3f24c..fe598b9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
 # Changelog
 
+## [5.6.0-beta.4] 2024-11-20
+### Added
+- Application header bar and controls
+- Menu context subtitle in header bar
+### Changed
+- Refactor control flow for more robust contextual parsing
+- Stop sending modal dialog hints to outer window
+### Fixed
+- Favorite server message not updating correctly
+
 ## [5.6.0-beta.3] 2024-11-18
 ### Fixed
 - Improved handling for cases where there are no locally installed mods
diff --git a/dzgui.sh b/dzgui.sh
index 2f3ea7a..454b930 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.3
+version=5.6.0-beta.4
 
 #CONSTANTS
 aid=221100
@@ -569,10 +569,10 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="353e6fcb8d2c674a3720c0ab8a2b3fd6"
+        ["ui.py"]="27ef5c9b811011521c81985ee2b32bb4"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="5eae515ea2cac2ab38212a529415e86b"
+        ["funcs"]="75afe0be7e73af2fb6a7e423b5ac9159"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
@@ -886,7 +886,7 @@ initial_setup(){
     watcher_deps
     check_architecture
     test_connection
-    fetch_helpers > >(pdialog "Checking helper files")
+#    fetch_helpers > >(pdialog "Checking helper files")
     varcheck
     source "$config_file"
     lock
diff --git a/helpers/funcs b/helpers/funcs
index 09037f6..6ebacfd 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -115,19 +115,19 @@ declare -A funcs=(
 ["test_cooldown"]="test_cooldown"
 ["query_config"]="query_config"
 ["start_cooldown"]="start_cooldown"
-["list_mods"]="list_mods"
+["List installed mods"]="list_mods"
 ["Delete selected mods"]="delete_local_mod"
 ["align_local"]="align_versions_file"
 ["show_server_modlist"]="show_server_modlist"
 ["test_ping"]="test_ping"
 ["is_in_favs"]="is_in_favs"
 ["show_log"]="show_log"
-["gen_log"]="generate_log"
+["Output system info to log file"]="generate_log"
 ["open_workshop_page"]="open_workshop_page"
 ["Add to my servers"]="update_favs_from_table"
 ["Remove from my servers"]="update_favs_from_table"
 ["Remove from history"]="remove_from_history"
-["force_update"]="force_update"
+["Force update local mods"]="force_update"
 ["Handshake"]="final_handshake"
 ["get_player_count"]="get_player_count"
 ["lan_scan"]="lan_scan"
@@ -236,6 +236,7 @@ add_record(){
             fav_label=$(<<< "$res" jq -r '.[].name')
             fav_server="$record"
             update_config
+            echo "Updated favorite server to '$fav_server' ($fav_label)"
             return 90
             ;;
         "Add server by ID")
diff --git a/helpers/ui.py b/helpers/ui.py
index 6ef843d..123962f 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -21,7 +21,6 @@ from enum import Enum
 # 5.6.0
 app_name = "DZGUI"
 
-
 cache = {}
 config_vals = []
 stored_keys = []
@@ -86,41 +85,6 @@ log_cols = [
     "Traceback",
     "Message"
 ]
-connect = [
-    ("Server browser",),
-    ("My saved servers",),
-    ("Quick-connect to favorite server",),
-    ("Recent servers",),
-    ("Connect by IP",),
-    ("Connect by ID",),
-    ("Scan LAN servers",)
-]
-manage = [
-    ("Add server by IP",),
-    ("Add server by ID",),
-    ("Change favorite server",),
-]
-options = [
-    ("List installed mods",),
-    ("Toggle release branch",),
-    ("Toggle mod install mode",),
-    ("Toggle Steam/Flatpak",),
-    ("Toggle DZGUI fullscreen boot",),
-    ("Change player name",),
-    ("Change Steam API key",),
-    ("Change Battlemetrics API key",),
-    ("Force update local mods",),
-    ("Output system info to log file",)
-]
-help = [
-    ("View changelog",),
-    ("Show debug log",),
-    ("Help file ⧉",),
-    ("Report a bug ⧉",),
-    ("Forum ⧉",),
-    ("Sponsor ⧉",),
-    ("Hall of fame ⧉",),
-]
 filters = {
     "1PP": True,
     "3PP": True,
@@ -132,42 +96,338 @@ filters = {
     "Non-ASCII": False,
     "Duplicate": False
 }
-side_buttons = [
-    "Main menu",
-    "Manage",
-    "Options",
-    "Help",
-    "Exit"
-]
-status_tooltip = {
-    "Server browser": "Used to browse the global server list",
-    "My saved servers": "Browse your saved servers. Unreachable/offline servers will be excluded",
-    "Quick-connect to favorite server": "Connect to your favorite server",
-    "Recent servers": "Shows the last 10 servers you connected to (includes attempts)",
-    "Connect by IP": "Connect to a server by IP",
-    "Connect by ID": "Connect to a server by Battlemetrics ID",
-    "Scan LAN servers": "Search for servers on your local network",
-    "Add server by IP": "Add a server by IP",
-    "Add server by ID": "Add a server by Battlemetrics ID",
-    "Change favorite server": "Update your quick-connect server",
-    "List installed mods": "Browse a list of locally-installed mods",
-    "Toggle release branch": "Switch between stable and testing branches",
-    "Toggle mod install mode": "Switch between manual and auto mod installation",
-    "Toggle Steam/Flatpak": "Switch the preferred client to use for launching DayZ",
-    "Toggle DZGUI fullscreen boot": "Whether to start DZGUI as a maximized window (desktop only)",
-    "Change player name": "Update your in-game name (required by some servers)",
-    "Change Steam API key": "Can be used if you revoked an old API key",
-    "Change Battlemetrics API key": "Can be used if you revoked an old API key",
-    "Force update local mods": "Synchronize the signatures of all local mods with remote versions (experimental)",
-    "Output system info to log file": "Generates a system log for troubleshooting",
-    "View changelog": "Opens the DZGUI changelog in a dialog window",
-    "Show debug log": "Read the DZGUI log generated since startup",
-    "Help file ⧉": "Opens the DZGUI documentation in a browser",
-    "Report a bug ⧉": "Opens the DZGUI issue tracker in a browser",
-    "Forum ⧉": "Opens the DZGUI discussion forum in a browser",
-    "Sponsor ⧉": "Sponsor the developer of DZGUI",
-    "Hall of fame ⧉": "A list of significant contributors and testers",
-}
+
+
+class EnumWithAttrs(Enum):
+
+    def __new__(cls, *args, **kwds):
+        value = len(cls.__members__) + 1
+        obj = object.__new__(cls)
+        obj._value_ = value
+        return obj
+    def __init__(self, a):
+        self.dict = a
+
+
+class RowType(EnumWithAttrs):
+    @classmethod
+    def str2rowtype(cls, str):
+        for member in cls:
+            if str == member.dict["label"]:
+                return member
+        return RowType.DYNAMIC
+
+    DYNAMIC = {
+            "label": None,
+            "tooltip": None,
+            }
+    HANDSHAKE = {
+            "label": "Handshake",
+            "tooltip": None,
+            "wait_msg": "Waiting for DayZ"
+            }
+    DELETE_SELECTED = {
+            "label": "Delete selected mods",
+            "tooltip": None,
+            "wait_msg": "Deleting mods"
+            }
+    SERVER_BROWSER = {
+            "label": "Server browser",
+            "tooltip": "Used to browse the global server list",
+            }
+    SAVED_SERVERS = {
+            "label": "My saved servers",
+            "tooltip": "Browse your saved servers. Unreachable/offline servers will be excluded",
+            }
+    QUICK_CONNECT = {
+            "label": "Quick-connect to favorite server",
+            "tooltip": "Connect to your favorite server",
+            "wait_msg": "Working",
+            "default": "unset",
+            "alt": None,
+            "val": "fav_label"
+            }
+    RECENT_SERVERS = {
+            "label": "Recent servers",
+            "tooltip": "Shows the last to servers you connected to (includes attempts)",
+            }
+    CONN_BY_IP = {
+            "label": "Connect by IP",
+            "tooltip": "Connect to a server by IP",
+            "prompt": "Enter IP in IP:Queryport format (e.g. 192.168.1.1:27016)",
+            "link_label": None,
+            }
+    CONN_BY_ID = {
+            "label": "Connect by ID",
+            "tooltip": "Connect to a server by Battlemetrics ID",
+            "prompt": "Enter server ID",
+            "link_label": "Open Battlemetrics",
+            }
+    SCAN_LAN = {
+            "label": "Scan LAN servers",
+            "tooltip": "Search for servers on your local network"
+            }
+    ADD_BY_IP = {
+            "label": "Add server by IP",
+            "tooltip": "Add a server by IP",
+            "prompt": "Enter IP in IP:Queryport format (e.g. 192.168.1.1:27016)",
+            "link_label": None,
+    }
+    ADD_BY_ID = {
+            "label": "Add server by ID",
+            "tooltip": "Add a server by Battlemetrics ID",
+            "prompt": "Enter server ID",
+            "link_label": "Open Battlemetrics",
+    }
+    CHNG_FAV = {
+            "label": "Change favorite server",
+            "tooltip": "Update your quick-connect server",
+            "prompt": "Enter IP in IP:Queryport format (e.g. 192.168.1.1:27016)",
+            "link_label": None,
+            "alt": None,
+            "default": "unset",
+            "val": "fav_label"
+    }
+    LIST_MODS = {
+            "label": "List installed mods",
+            "tooltip": "Browse a list of locally-installed mods",
+            "quad_label": "Mods"
+    }
+    TGL_BRANCH = {
+            "label": "Toggle release branch",
+            "tooltip": "Switch between stable and testing branches",
+            "default": None,
+            "val": "branch"
+    }
+    TGL_INSTALL = {
+            "label": "Toggle mod install mode",
+            "tooltip": "Switch between manual and auto mod installation",
+            "default": "manual",
+            "alt": "auto",
+            "val": "auto_install"
+            }
+    TGL_STEAM = {
+            "label": "Toggle Steam/Flatpak",
+            "tooltip": "Switch the preferred client to use for launching DayZ",
+            "alt": None,
+            "default": None,
+            "val": "preferred_client"
+    }
+    TGL_FULLSCREEN = {
+            "label": "Toggle DZGUI fullscreen boot",
+            "tooltip": "Whether to start DZGUI as a maximized window (desktop only)",
+            "alt": "true",
+            "default": "false",
+            "val": "fullscreen"
+    }
+    CHNG_PLAYER = {
+            "label": "Change player name",
+            "tooltip": "Update your in-game name (required by some servers)",
+            "prompt": "Enter new nickname",
+            "link_label": None,
+            "alt": None,
+            "default": None,
+            "val": "name"
+    }
+    CHNG_STEAM_API = {
+            "label": "Change Steam API key",
+            "tooltip": "Can be used if you revoked an old API key",
+            "prompt": "Enter new API key",
+            "link_label": "Open Steam API page",
+    }
+    CHNG_BM_API = {
+            "label": "Change Battlemetrics API key",
+            "tooltip": "Can be used if you revoked an old API key",
+            "link_label": "Open Battlemetrics API page",
+            "prompt": "Enter new API key",
+    }
+    FORCE_UPDATE = {
+            "label": "Force update local mods",
+            "tooltip": "Synchronize the signatures of all local mods with remote versions (experimental)",
+            "wait_msg": "Updating mods"
+            }
+    DUMP_LOG = {
+            "label": "Output system info to log file",
+            "tooltip": "Dump diagnostic data for troubleshooting",
+            "wait_msg": "Generating log"
+            }
+    CHANGELOG = {
+            "label": "View changelog",
+            "tooltip": "Opens the DZGUI changelog in a dialog window"
+            }
+    SHOW_LOG = {
+            "label": "Show debug log",
+            "tooltip": "Read the DZGUI log generated since startup",
+            "quad_label": "Debug log"
+            }
+    DOCS = {
+            "label": "Help file ⧉",
+            "tooltip": "Opens the DZGUI documentation in a browser"
+            }
+    BUGS = {
+            "label": "Report a bug ⧉",
+            "tooltip": "Opens the DZGUI issue tracker in a browser"
+            }
+    FORUM = {
+            "label": "Forum ⧉",
+            "tooltip": "Opens the DZGUI discussion forum in a browser"
+            }
+    SPONSOR = {
+            "label": "Sponsor ⧉",
+            "tooltip": "Sponsor the developer of DZGUI"
+            }
+    HOF = {
+            "label": "Hall of fame ⧉",
+            "tooltip": "A list of significant contributors and testers"
+            }
+
+
+class WindowContext(EnumWithAttrs):
+    @classmethod
+    def row2con(cls, row):
+        m = None
+        for member in cls:
+            if row in member.dict["rows"]:
+                    m = member
+            elif row in member.dict["called_by"]:
+                    m = member
+            else:
+                continue
+        return m
+
+
+    MAIN_MENU = {
+            "label": "",
+            "rows": [
+                RowType.SERVER_BROWSER,
+                RowType.SAVED_SERVERS,
+                RowType.QUICK_CONNECT,
+                RowType.RECENT_SERVERS,
+                RowType.CONN_BY_IP,
+                RowType.CONN_BY_ID,
+                RowType.SCAN_LAN
+                ],
+            "called_by": []
+            }
+    MANAGE = {
+            "label": "Manage",
+            "rows": [
+                RowType.ADD_BY_IP,
+                RowType.ADD_BY_ID,
+                RowType.CHNG_FAV
+                ],
+            "called_by": []
+            }
+    OPTIONS = {
+            "label": "Options",
+            "rows":[
+                RowType.LIST_MODS,
+                RowType.TGL_BRANCH,
+                RowType.TGL_INSTALL,
+                RowType.TGL_STEAM,
+                RowType.TGL_FULLSCREEN,
+                RowType.CHNG_PLAYER,
+                RowType.CHNG_STEAM_API,
+                RowType.CHNG_BM_API,
+                RowType.FORCE_UPDATE,
+                RowType.DUMP_LOG
+                ],
+            "called_by": []
+            }
+    HELP = {
+            "label": "Help",
+            "rows":[
+                RowType.CHANGELOG,
+                RowType.SHOW_LOG,
+                RowType.DOCS,
+                RowType.BUGS,
+                RowType.FORUM,
+                RowType.SPONSOR,
+                RowType.HOF
+                ],
+            "called_by": []
+            }
+    # inner server contexts
+    TABLE_API = {
+            "label": "",
+            "rows": [],
+            "called_by": [
+                RowType.SERVER_BROWSER
+                ],
+            }
+    TABLE_SERVER = {
+            "label": "",
+            "rows": [],
+            "called_by": [
+                RowType.SAVED_SERVERS,
+                RowType.RECENT_SERVERS,
+                RowType.SCAN_LAN
+                ],
+            }
+    TABLE_MODS = {
+            "label": "",
+            "rows": [],
+            "called_by": [
+                RowType.LIST_MODS,
+                ],
+            }
+    TABLE_LOG = {
+            "label": "",
+            "rows": [],
+            "called_by": [
+                RowType.SHOW_LOG
+                ],
+            }
+
+
+class WidgetType(Enum):
+    OUTER_WIN = 1
+    TREEVIEW = 2
+    GRID = 3
+    RIGHT_PANEL = 4
+    MOD_PANEL = 5
+    FILTER_PANEL = 6
+
+
+class Port(Enum):
+    DEFAULT = 1
+    CUSTOM = 2
+
+
+class Popup(Enum):
+    WAIT = 1
+    NOTIFY = 2
+    CONFIRM = 3
+    ENTRY = 4
+
+
+class ButtonType(EnumWithAttrs):
+    MAIN_MENU = {"label": "Main menu",
+                 "opens": WindowContext.MAIN_MENU
+                 }
+    MANAGE = {"label": "Manage",
+              "opens": WindowContext.MANAGE
+              }
+    OPTIONS = {"label": "Options",
+               "opens": WindowContext.OPTIONS
+               }
+    HELP = {"label": "Help",
+            "opens": WindowContext.HELP
+            }
+    EXIT = {"label": "Exit",
+            "opens": None
+            }
+
+
+class EnumeratedButton(Gtk.Button):
+    @GObject.Property
+    def button_type(self):
+       return self._button_type
+
+    @button_type.setter
+    def button_type(self, value):
+       self._button_type = value
+
 
 def relative_widget(child):
     # returns collection of outer widgets relative to source widget
@@ -196,6 +456,7 @@ def relative_widget(child):
 
     return widgets
 
+
 def pluralize(plural, count):
     suffix = plural[-2:]
     if suffix == "es":
@@ -205,10 +466,12 @@ def pluralize(plural, count):
         base = plural[:-1]
         return f"%s{'s'[:count^1]}" %(base)
 
+
 def format_ping(ping):
     ms = " | Ping: %s" %(ping)
     return ms
 
+
 def format_distance(distance):
     if distance == "Unknown":
         distance = "| Distance: %s" %(distance)
@@ -237,6 +500,7 @@ def parse_modlist_rows(data):
         modlist_store.append(row)
     return hits
 
+
 def parse_log_rows(data):
     lines = data.stdout.splitlines()
     reader = csv.reader(lines, delimiter=delimiter)
@@ -247,6 +511,7 @@ def parse_log_rows(data):
     for row in rows:
         log_store.append(row)
 
+
 def parse_mod_rows(data):
     # GTK pads trailing zeroes on floats
     # https://stackoverflow.com/questions/26827434/gtk-cellrenderertext-with-format
@@ -347,12 +612,13 @@ def process_shell_return_code(transient_parent, msg, code, original_input):
             # for BM only
             spawn_dialog(transient_parent, msg, Popup.NOTIFY)
             treeview = transient_parent.grid.scrollable_treelist.treeview
-            process_tree_option(["Options", "Change Battlemetrics API key"], treeview)
+            process_tree_option([treeview.view, RowType.CHNG_BM_API], treeview)
         case 5:
             # for steam only
+            # deprecated, Steam is mandatory now
             spawn_dialog(transient_parent, msg, Popup.NOTIFY)
             treeview = transient_parent.grid.scrollable_treelist.treeview
-            process_tree_option(["Options", "Change Steam API key"], treeview)
+            process_tree_option([treeview.view, RowType.CHNG_STEAM_API], treeview)
         case 6:
             # return silently
             pass
@@ -373,14 +639,14 @@ def process_shell_return_code(transient_parent, msg, code, original_input):
             treeview = transient_parent.grid.scrollable_treelist.treeview
             # re-block this signal before redrawing table contents
             toggle_signal(treeview, treeview, '_on_keypress', False)
-            treeview.update_quad_column("List installed mods")
+            treeview.update_quad_column(RowType.LIST_MODS)
         case 100:
             # final handoff before launch
             final_conf = spawn_dialog(transient_parent, msg, Popup.CONFIRM)
             treeview = transient_parent.grid.scrollable_treelist.treeview
             if final_conf == 1 or final_conf is None:
                 return
-            process_tree_option(["Handshake", ""], treeview)
+            process_tree_option([treeview.view, RowType.HANDSHAKE], treeview)
         case 255:
             spawn_dialog(transient_parent, "Update complete. Please close DZGUI and restart.", Popup.NOTIFY)
             Gtk.main_quit()
@@ -389,22 +655,22 @@ def process_shell_return_code(transient_parent, msg, code, original_input):
 def process_tree_option(input, treeview):
     context = input[0]
     command = input[1]
+    cmd_string = command.dict["label"]
     logger.info("Parsing tree option '%s' for the context '%s'" %(command, context))
 
-    transient_parent = treeview.get_outer_window()
-    toggle_contexts = [
-            "Toggle mod install mode",
-            "Toggle release branch",
-            "Toggle Steam/Flatpak",
-            "Toggle DZGUI fullscreen boot"
-            ]
+    widgets = relative_widget(treeview)
+    transient_parent = widgets["outer"]
+    grid = widgets["grid"]
 
     def call_on_thread(bool, subproc, msg, args):
         def _background(subproc, args, dialog):
             def _load():
                 wait_dialog.destroy()
                 out = proc.stdout.splitlines()
-                msg = out[-1]
+                try:
+                    msg = out[-1]
+                except:
+                    msg = ''
                 rc = proc.returncode
                 logger.info("Subprocess returned code %s with message '%s'" %(rc, msg))
                 process_shell_return_code(transient_parent, msg, rc, input)
@@ -423,68 +689,82 @@ def process_tree_option(input, treeview):
             msg = out[-1]
             process_shell_return_code(transient_parent, msg, rc, input)
 
-    match context:
-        case "Help":
-            if command == "View changelog":
-                diag = ChangelogDialog(transient_parent, '', "Changelog -- content can be scrolled")
+    # help pages
+    if context == WindowContext.HELP:
+        match command:
+            case RowType.CHANGELOG:
+                diag = ChangelogDialog(transient_parent)
                 diag.run()
                 diag.destroy()
-            else:
-                # non-blocking subprocess
-                subprocess.Popen(['/usr/bin/env', 'bash', funcs, "Open link", command])
-        case "Delete selected mods":
-            call_on_thread(True, context, "Deleting mods", command)
-        case "Handshake":
-            call_on_thread(True, context, "Waiting for DayZ", command)
-        case _:
-            if command == "Output system info to log file":
-                call_on_thread(True, "gen_log", "Generating log", "")
-            elif command == "Force update local mods":
-                call_on_thread(True, "force_update", "Updating mods", "")
-            elif command == "Quick-connect to favorite server":
-                call_on_thread(True, command, "Working", "")
-            elif command in toggle_contexts:
-                if command == "Toggle release branch":
-                    call_on_thread(False, "toggle", "Updating DZGUI branch", command)
-                else:
-                    proc = call_out(transient_parent, "toggle", command)
-                    grid = treeview.get_parent().get_parent()
-                    grid.update_right_statusbar()
-                    tooltip = format_metadata(command)
-                    transient_parent.grid.update_statusbar(tooltip)
-            else:
-                # This branch is only used by interactive dialogs
-                match command:
-                    case "Connect by IP" | "Add server by IP" | "Change favorite server":
-                        flag = True
-                        link_label = ""
-                        prompt = "Enter IP in IP:Queryport format (e.g. 192.168.1.1:27016)"
-                    case "Connect by ID" | "Add server by ID":
-                        flag = True
-                        link_label = "Open Battlemetrics"
-                        prompt = "Enter server ID"
-                    case "Change player name":
-                        flag = False
-                        link_label = ""
-                        prompt = "Enter new nickname"
-                    case "Change Steam API key":
-                        flag = True
-                        link_label = "Open Steam API page"
-                        prompt = "Enter new API key"
-                    case "Change Battlemetrics API key":
-                        flag = True
-                        link_label = "Open Battlemetrics API page"
-                        prompt = "Enter new API key"
+            case _:
+                base_cmd = "Open link"
+                arg_string = cmd_string
+                subprocess.Popen(['/usr/bin/env', 'bash', funcs, base_cmd, arg_string])
+                pass
+        return
 
-                user_entry = EntryDialog(transient_parent, prompt, Popup.ENTRY, link_label)
-                res = user_entry.get_input()
-                if res is None:
-                    logger.info("User aborted entry dialog")
-                    return
-                logger.info("User entered: '%s'" %(res))
+    # config metadata toggles
+    toggle_commands = [
+            RowType.TGL_INSTALL,
+            RowType.TGL_BRANCH,
+            RowType.TGL_STEAM,
+            RowType.TGL_FULLSCREEN
+            ]
 
-                call_on_thread(flag, command, "Working", res)
+    if command in toggle_commands:
+        match command:
+            case RowType.TGL_BRANCH:
+                wait_msg = "Updating DZGUI branch"
+                call_on_thread(False, "toggle", wait_msg, cmd_string)
+            case _:
+                proc = call_out(transient_parent, "toggle", cmd_string)
+                grid.update_right_statusbar()
+                tooltip = format_metadata(command.dict["label"])
+                transient_parent.grid.update_statusbar(tooltip)
+        return
 
+    # entry dialogs
+    interactive_commands = [
+            RowType.CONN_BY_IP,
+            RowType.CONN_BY_ID,
+            RowType.ADD_BY_IP,
+            RowType.ADD_BY_ID,
+            RowType.CHNG_FAV,
+            RowType.CHNG_PLAYER,
+            RowType.CHNG_STEAM_API,
+            RowType.CHNG_BM_API
+            ]
+
+    if command in interactive_commands:
+        prompt = command.dict["prompt"]
+        flag = True
+        link_label = command.dict["link_label"]
+        wait_msg = "Working"
+
+        user_entry = EntryDialog(transient_parent, prompt, Popup.ENTRY, link_label)
+        res = user_entry.get_input()
+
+        if res is None:
+            logger.info("User aborted entry dialog")
+            return
+        logger.info("User entered: '%s'" %(res))
+
+        if command == RowType.CHNG_PLAYER: flag = False
+        call_on_thread(flag, cmd_string, wait_msg, res)
+        return
+
+    # standalone commands
+    misc_commands = [
+            RowType.DELETE_SELECTED,
+            RowType.HANDSHAKE,
+            RowType.DUMP_LOG,
+            RowType.FORCE_UPDATE,
+            RowType.QUICK_CONNECT
+            ]
+    if command in misc_commands:
+        wait_msg = command.dict["wait_msg"]
+        call_on_thread(True, cmd_string, wait_msg, '')
+    return
 
 def reinit_checks():
     toggled_checks.clear()
@@ -498,18 +778,30 @@ def reinit_checks():
 
 
 class OuterWindow(Gtk.Window):
+    @GObject.Property
+    def widget_type(self):
+       return self._widget_type
+
+    @widget_type.setter
+    def widget_type(self, value):
+       self._widget_type = value
+
     def __init__(self, is_steam_deck, is_game_mode):
         super().__init__(title=app_name)
 
-        self.connect("delete-event", self.halt_proc_and_quit)
-        # Deprecated in GTK 4.0
-        self.set_border_width(10)
-        self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
+        self.hb = AppHeaderBar()
+        # steam deck taskbar may occlude elements
+        if is_steam_deck is False:
+            self.set_titlebar(self.hb)
+
+        self.set_property("widget_type", WidgetType.OUTER_WIN)
+
+        self.connect("delete-event", self.halt_proc_and_quit)
+        self.set_border_width(10)
+
+        #app > win > grid > scrollable > treeview [row/server/mod store]
+        #app > win > grid > vbox > buttonbox > filterpanel > combo [map store]
 
-        """
-        app > win > grid > scrollable > treeview [row/server/mod store]
-        app > win > grid > vbox > buttonbox > filterpanel > combo [map store]
-        """
         self.grid = Grid(is_steam_deck)
         self.add(self.grid)
         if is_game_mode is True:
@@ -521,6 +813,7 @@ class OuterWindow(Gtk.Window):
         # Hide FilterPanel on main menu
         self.show_all()
         self.grid.right_panel.set_filter_visibility(False)
+        self.grid.sel_panel.set_visible(False)
         self.grid.scrollable_treelist.treeview.grab_focus()
 
     def halt_proc_and_quit(self, window, event):
@@ -592,8 +885,11 @@ class ButtonBox(Gtk.Box):
         set_surrounding_margins(self, 10)
 
         self.buttons = list()
-        for side_button in side_buttons:
-            button = Gtk.Button(label=side_button)
+        self.is_steam_deck = is_steam_deck
+
+        for side_button in ButtonType:
+            button = EnumeratedButton(label=side_button.dict["label"])
+            button.set_property("button_type", side_button)
             if is_steam_deck is True:
                 button.set_size_request(10, 10)
             else:
@@ -614,14 +910,14 @@ class ButtonBox(Gtk.Box):
         grid = widgets["grid"]
         grid_last_child = grid.right_panel.get_children()[-1]
         if isinstance(grid_last_child, ModSelectionPanel):
-            grid.right_panel.remove(grid.sel_panel)
+            grid.sel_panel.set_visible(False)
         right_panel = self.get_parent()
         right_panel.set_filter_visibility(False)
 
         treeview = widgets["treeview"]
         treeview.set_selection_mode(Gtk.SelectionMode.SINGLE)
 
-        """Block maps combo when returning to main menu"""
+        # Block maps combo when returning to main menu
         toggle_signal(right_panel.filters_vbox, right_panel.filters_vbox.maps_combo, '_on_map_changed', False)
         right_panel.filters_vbox.keyword_entry.set_text("")
         keyword_filter.clear()
@@ -630,38 +926,49 @@ class ButtonBox(Gtk.Box):
 
         for column in treeview.get_columns():
             treeview.remove_column(column)
-        for i, column_title in enumerate([context]):
+        # used as a convenience for Steam Deck if it has no titlebar
+        for i, column_title in enumerate([context.dict["label"]]):
             renderer = Gtk.CellRendererText()
             column = Gtk.TreeViewColumn(column_title, renderer, text=i)
             treeview.append_column(column)
-        self._populate(context)
+
+        if self.is_steam_deck is False:
+            treeview.set_headers_visible(False)
+
+        self._populate(context.dict["opens"])
         toggle_signal(treeview, treeview, '_on_keypress', False)
         treeview.set_model(row_store)
         treeview.grab_focus()
 
     def _populate(self, context):
-        match context:
-            case 'Manage': array_context = manage
-            case 'Main menu': array_context = connect
-            case 'Options': array_context = options
-            case 'Help': array_context = help
-        row_store.clear()
-        status = array_context[0][0]
-        treeview = self.get_treeview()
-        grid = self.get_parent().get_parent()
+        widgets = relative_widget(self)
+        treeview = widgets["treeview"]
+        grid = widgets["grid"]
+        window = widgets["outer"]
 
-        for items in array_context:
-            row_store.append(list(items))
-        grid.update_statusbar(status_tooltip[status])
+        # set global window context
+        treeview.view = context
+
+        row_store.clear()
+        array = context.dict["rows"]
+
+        window.hb.set_subtitle(context.dict["label"])
+
+        for item in array:
+            label = item.dict["label"]
+            tooltip = item.dict["tooltip"]
+            t = (label, )
+            row_store.append(t)
+        grid.update_statusbar(tooltip)
         treeview.grab_focus()
 
     def _on_selection_button_clicked(self, button):
         treeview = self.get_treeview()
         toggle_signal(treeview, treeview.selected_row, '_on_tree_selection_changed', False)
-        context = button.get_label()
+        context = button.get_property("button_type")
         logger.info("User clicked '%s'" %(context))
 
-        if context == "Exit":
+        if context == ButtonType.EXIT:
             logger.info("Normal user exit")
             Gtk.main_quit()
             return
@@ -676,9 +983,10 @@ class ButtonBox(Gtk.Box):
         button.set_opacity(1.0)
 
         for col in cols:
-            col.set_title(context)
+            col.set_title(context.dict["label"])
 
-        self._populate(context)
+        # get destination WindowContext enum from button
+        self._populate(context.dict["opens"])
 
         toggle_signal(treeview, treeview.selected_row, '_on_tree_selection_changed', True)
 
@@ -714,10 +1022,20 @@ class CalcDist(multiprocessing.Process):
 
 class TreeView(Gtk.TreeView):
     __gsignals__ = {"on_distcalc_started": (GObject.SignalFlags.RUN_FIRST, None, ())}
+    @GObject.Property
+    def widget_type(self):
+       return self._widget_type
+
+    @widget_type.setter
+    def widget_type(self, value):
+       self._widget_type = value
 
     def __init__(self, is_steam_deck):
         super().__init__()
 
+        self.set_property("widget_type", WidgetType.TREEVIEW)
+        self.view = WindowContext.MAIN_MENU
+
         self.queue = multiprocessing.Queue()
         self.current_proc = None
 
@@ -726,8 +1044,10 @@ class TreeView(Gtk.TreeView):
         self.set_search_column(-1)
 
         # Populate model with initial context
-        for rows in connect:
-            row_store.append(list(rows))
+        for row in WindowContext.MAIN_MENU.dict["rows"]:
+            label = row.dict["label"]
+            t = (label,)
+            row_store.append(t)
         self.set_model(row_store)
 
         for i, column_title in enumerate(
@@ -737,6 +1057,8 @@ class TreeView(Gtk.TreeView):
             column = Gtk.TreeViewColumn(column_title, renderer, text=i)
             self.append_column(column)
 
+        if is_steam_deck is False:
+            self.set_headers_visible(False)
         self.connect("row-activated", self._on_row_activated)
         self.connect("key-press-event", self._on_keypress)
         self.connect("key-press-event", self._on_keypress_main_menu)
@@ -751,6 +1073,7 @@ class TreeView(Gtk.TreeView):
             self.current_proc.terminate()
 
     def _on_menu_click(self, menu_item):
+        #TODO: context menus use old stringwise parsing
         parent = self.get_outer_window()
         context = self.get_first_col()
         value = self.get_column_at_index(0)
@@ -797,7 +1120,7 @@ class TreeView(Gtk.TreeView):
                     mods.append(concat)
                     with open(mods_temp_file, "w") as outfile:
                         outfile.writelines(mods)
-                    process_tree_option(["Delete selected mods", ""], self)
+                    process_tree_option([self.view, RowType.DELETE_SELECTED], self)
             case "Open in Steam Workshop":
                 record = self.get_column_at_index(2)
                 call_out(parent, "open_workshop_page", record)
@@ -832,12 +1155,19 @@ class TreeView(Gtk.TreeView):
         self.menu = Gtk.Menu()
 
         mod_context_items = ["Open in Steam Workshop", "Delete mod"]
-        subcontext_items = {"Server browser": ["Add to my servers", "Copy IP to clipboard", "Show server-side mods", "Refresh player count"],
-                  "My saved servers": ["Remove from my servers", "Copy IP to clipboard", "Show server-side mods", "Refresh player count"],
-                  "Recent servers": ["Add to my servers", "Remove from history", "Copy IP to clipboard", "Show server-side mods", "Refresh player count"],
+        subcontext_items = {
+                "Server browser":
+                            ["Add to my servers", "Copy IP to clipboard", "Show server-side mods", "Refresh player count"],
+                  "My saved servers":
+                            ["Remove from my servers", "Copy IP to clipboard", "Show server-side mods", "Refresh player count"],
+                  "Recent servers":
+                            ["Add to my servers", "Remove from history", "Copy IP to clipboard", "Show server-side mods", "Refresh player count"],
                   }
         # submenu hierarchy https://stackoverflow.com/questions/52847909/how-to-add-a-sub-menu-to-a-gtk-menu
-        if context == "Mod":
+
+        if self.view == WindowContext.TABLE_LOG:
+            return
+        if self.view == WindowContext.TABLE_MODS:
             items = mod_context_items
             subcontext = "List installed mods"
         elif "Name" in context:
@@ -908,7 +1238,7 @@ class TreeView(Gtk.TreeView):
         if self.current_proc and self.current_proc.is_alive():
             self.current_proc.terminate()
 
-        if "Name" in context:
+        if self.view == WindowContext.TABLE_API or self.view == WindowContext.TABLE_SERVER:
             addr = self.get_column_at_index(7)
             if addr is None:
                 return
@@ -1067,20 +1397,24 @@ class TreeView(Gtk.TreeView):
         GLib.idle_add(loadTable)
 
     def _background_quad(self, dialog, mode):
+        # currently only used by list mods method
         def load():
             dialog.destroy()
-            # detach button panel if store is empty
+            # suppress button panel if store is empty
             if isinstance(panel_last_child, ModSelectionPanel):
                 if total_mods == 0:
-                    right_panel.remove(grid.sel_panel)
+                    # nb. do not forcibly remove previously added widgets
+                    grid.sel_panel.set_visible(False)
                     grid.show_all()
                     right_panel.set_filter_visibility(False)
+
+            grid.sel_panel.set_visible(True)
             self.set_model(mod_store)
             self.grab_focus()
             size = locale.format_string('%.3f', total_size, grouping=True)
             pretty = pluralize("mods", total_mods)
             grid.update_statusbar(f"Found {total_mods:n} {pretty} taking up {size} MiB")
-            #2024-11-12
+
             toggle_signal(self, self.selected_row, '_on_tree_selection_changed', True)
             toggle_signal(self, self, '_on_keypress', True)
             self._focus_first_row()
@@ -1090,7 +1424,7 @@ class TreeView(Gtk.TreeView):
         widgets = relative_widget(self)
         grid = widgets["grid"]
         right_panel = grid.right_panel
-        data = call_out(self, "list_mods", mode)
+        data = call_out(self, mode.dict["label"], '')
         panel_last_child = right_panel.get_children()[-1]
 
         # suppress errors if no mods available on system
@@ -1100,11 +1434,9 @@ class TreeView(Gtk.TreeView):
             GLib.idle_add(load)
             return 1
 
-        # attach button panel only if missing (prevents duplication when reloading in-place)
+        # show button panel missing (prevents duplication when reloading in-place)
         if not isinstance(panel_last_child, ModSelectionPanel):
-            right_panel.pack_start(grid.sel_panel, False, False, 0)
-            grid.show_all()
-            right_panel.set_filter_visibility(False)
+            grid.sel_panel.set_visible(True)
         result = parse_mod_rows(data)
         total_size = result[0]
         total_mods = result[1]
@@ -1121,6 +1453,7 @@ class TreeView(Gtk.TreeView):
 
         title = col.get_title()
         size = col.get_width()
+        # steam deck column title workaround
         if "Name" in title:
             title = "Name"
 
@@ -1140,6 +1473,8 @@ class TreeView(Gtk.TreeView):
     def _update_multi_column(self, mode):
         # Local server lists may have different filter toggles from remote list
         # FIXME: tree selection updates twice here. attach signal later
+        self.set_headers_visible(True)
+
         toggle_signal(self, self.selected_row, '_on_tree_selection_changed', False)
         for column in self.get_columns():
             self.remove_column(column)
@@ -1175,8 +1510,14 @@ class TreeView(Gtk.TreeView):
 
             self.append_column(column)
 
-        self.update_first_col(mode)
-        transient_parent = self.get_outer_window()
+        self.update_first_col(mode.dict["label"])
+
+        widgets = relative_widget(self)
+        grid = widgets["grid"]
+        window = widgets["outer"]
+        window.hb.set_subtitle(mode.dict["label"])
+
+        transient_parent = window
 
         # Reset map selection
         selected_map.clear()
@@ -1188,20 +1529,21 @@ class TreeView(Gtk.TreeView):
             toggle_signal(self.get_outer_grid().right_panel.filters_vbox, check, '_on_check_toggle', True)
         toggle_signal(self, self, '_on_keypress', True)
 
-        if mode == "Scan LAN servers":
+        string = mode.dict["label"]
+        if mode == RowType.SCAN_LAN:
             lan_dialog = LanButtonDialog(self.get_outer_window())
             port = lan_dialog.get_selected_port()
             if port is None:
                 grid = self.get_outer_grid()
                 right_panel = grid.right_panel
                 vbox = right_panel.button_vbox
-                vbox._update_single_column("Main menu")
+                vbox._update_single_column(ButtonType.MAIN_MENU)
                 return
-            mode = mode + ":" + port
+            string = string + ":" + port
 
         wait_dialog = GenericDialog(transient_parent, "Fetching server metadata", Popup.WAIT)
         wait_dialog.show_all()
-        thread = threading.Thread(target=self._background, args=(wait_dialog, mode))
+        thread = threading.Thread(target=self._background, args=(wait_dialog, string))
         thread.start()
 
     def update_first_col(self, title):
@@ -1232,10 +1574,11 @@ class TreeView(Gtk.TreeView):
         for column in self.get_columns():
             self.remove_column(column)
 
+        self.set_headers_visible(True)
         mod_store.clear()
         log_store.clear()
 
-        if mode == "List installed mods":
+        if mode == RowType.LIST_MODS:
             cols = mod_cols
             self.set_model(mod_store)
         else:
@@ -1245,24 +1588,33 @@ class TreeView(Gtk.TreeView):
         for i, column_title in enumerate(cols):
             renderer = Gtk.CellRendererText()
             column = Gtk.TreeViewColumn(column_title, renderer, text=i)
-            if mode == "List installed mods":
+            if mode == RowType.LIST_MODS:
                 if i == 3:
                     column.set_cell_data_func(renderer, self._format_float, func_data=None)
             column.set_sort_column_id(i)
             self.append_column(column)
 
-        if mode == "List installed mods":
+        widgets = relative_widget(self)
+        grid = widgets["grid"]
+        window = widgets["outer"]
+        try:
+            window.hb.set_subtitle(mode.dict["quad_label"])
+        except KeyError:
+            window.hb.set_subtitle(mode.dict["label"])
+
+        if mode == RowType.LIST_MODS:
             self.set_selection_mode(Gtk.SelectionMode.MULTIPLE)
         else:
+            # short circuit and jump to debug log
             data = call_out(self, "show_log")
             res = parse_log_rows(data)
+            toggle_signal(self, self, '_on_keypress', True)
             if res == 1:
                 spawn_dialog(self.get_outer_window(), "Failed to load log file, possibly corrupted", Popup.NOTIFY)
             return
 
-        transient_parent = self.get_outer_window()
 
-        wait_dialog = GenericDialog(transient_parent, "Checking mods", Popup.WAIT)
+        wait_dialog = GenericDialog(window, "Checking mods", Popup.WAIT)
         wait_dialog.show_all()
         thread = threading.Thread(target=self._background_quad, args=(wait_dialog, mode))
         thread.start()
@@ -1293,23 +1645,58 @@ class TreeView(Gtk.TreeView):
     def _on_row_activated(self, treeview, tree_iter, col):
         context = self.get_first_col()
         chosen_row = self.get_column_at_index(0)
-        output = context, chosen_row
-        if context == "Mod" or context == "Timestamp":
+
+        # recycled from ModDialog
+        if self.view == WindowContext.TABLE_MODS:
+            select = treeview.get_selection()
+            sels = select.get_selected_rows()
+            (model, pathlist) = sels
+            if len(pathlist) < 1:
+                return
+            path = pathlist[0]
+            tree_iter = model.get_iter(path)
+            mod_id = model.get_value(tree_iter, 2)
+            base_cmd = "open_workshop_page"
+            subprocess.Popen(['/usr/bin/env', 'bash', funcs, base_cmd, mod_id])
             return
+
+        dynamic_contexts = [
+                WindowContext.TABLE_LOG,
+                WindowContext.TABLE_SERVER,
+                WindowContext.TABLE_API
+                ]
+
+        # if already in table, the row selection is arbitrary
+        if self.view in dynamic_contexts:
+                cr = RowType.DYNAMIC
+        else:
+            cr = RowType.str2rowtype(chosen_row)
+            wc = WindowContext.row2con(cr)
+            self.view = wc
+
+        output = self.view, cr
         logger.info("User selected '%s' for the context '%s'" %(chosen_row, context))
 
+        if self.view == WindowContext.TABLE_LOG and cr == RowType.DYNAMIC:
+            return
+
         outer = self.get_outer_window()
         right_panel = outer.grid.right_panel
         filters_vbox = right_panel.filters_vbox
 
-        valid_contexts = ["Server browser", "My saved servers", "Recent servers", "Scan LAN servers"]
-        if chosen_row in valid_contexts:
-            # server contexts share the same model type
+        server_contexts = [
+                          RowType.SCAN_LAN,
+                          RowType.SERVER_BROWSER,
+                          RowType.RECENT_SERVERS,
+                          RowType.SAVED_SERVERS
+                          ]
 
-            if chosen_row == "Server browser":
+        # server contexts share the same model type
+        if cr in server_contexts:
+            if cr == RowType.SERVER_BROWSER:
                 cooldown = call_out(self, "test_cooldown", "", "")
                 if cooldown.returncode == 1:
-                    spawn_dialog(self.get_outer_window(), cooldown.stdout, Popup.NOTIFY)
+                    spawn_dialog(outer, cooldown.stdout, Popup.NOTIFY)
                     return 1
                 for check in checks:
                     toggle_signal(filters_vbox, check, '_on_check_toggle', False)
@@ -1320,7 +1707,7 @@ class TreeView(Gtk.TreeView):
                     if check.get_label() not in toggled_checks:
                         toggled_checks.append(check.get_label())
                         check.set_active(True)
-            self._update_multi_column(chosen_row)
+            self._update_multi_column(cr)
 
             map_store.clear()
             map_store.append(["All maps"])
@@ -1329,12 +1716,13 @@ class TreeView(Gtk.TreeView):
             toggle_signal(filters_vbox, filters_vbox.maps_combo, '_on_map_changed', True)
             toggle_signal(self, self.selected_row, '_on_tree_selection_changed', True)
             self.grab_focus()
-        elif chosen_row == "List installed mods" or chosen_row == "Show debug log":
+            return
+
+        if self.view == WindowContext.TABLE_MODS or self.view == WindowContext.TABLE_LOG:
             toggle_signal(self, self.selected_row, '_on_tree_selection_changed', False)
-            self.update_quad_column(chosen_row)
+            self.update_quad_column(cr)
             toggle_signal(self, self.selected_row, '_on_tree_selection_changed', True)
-        elif any(map(context.__contains__, valid_contexts)):
-            # implies activated row on any server list subcontext
+        elif self.view == WindowContext.TABLE_SERVER or self.view == WindowContext.TABLE_API:
             self._attempt_connection()
         else:
             # implies any other non-server option selected from main menu
@@ -1342,7 +1730,10 @@ class TreeView(Gtk.TreeView):
 
 
 def format_metadata(row_sel):
-    prefix = status_tooltip[row_sel]
+    for i in RowType:
+        if i.dict["label"] == row_sel:
+            row = i
+            prefix = i.dict["tooltip"]
     vals = {
             "branch": config_vals[0],
             "debug": config_vals[1],
@@ -1352,38 +1743,19 @@ def format_metadata(row_sel):
             "preferred_client": config_vals[5],
             "fullscreen": config_vals[6]
             }
-    match row_sel:
-        case "Quick-connect to favorite server" | "Change favorite server":
-            default = "unset"
-            val = "fav_label"
-        case "Change player name":
-            val = "name"
-        case "Toggle mod install mode":
-            default = "manual"
-            alt = "auto"
-            val = "auto_install"
-        case "Toggle debug mode":
-            default = "normal"
-            alt = "debug"
-            val = "debug"
-        case "Toggle release branch":
-            val = "branch"
-        case "Toggle Steam/Flatpak":
-            val = "preferred_client"
-        case "Toggle DZGUI fullscreen boot":
-            default = "false"
-            alt = "true"
-            val = "fullscreen"
-        case _:
-            return prefix
-
+    try:
+        alt = row.dict["alt"]
+        default = row.dict["default"]
+        val = row.dict["val"]
+    except KeyError:
+        return prefix
     try:
         cur_val = vals[val]
         if cur_val == "":
-            return "%s | Current: %s" %(prefix, default)
+            return "%s | Current: '%s'" %(prefix, default)
         # TODO: migrate to human readable config values
         elif cur_val == "1":
-            return "%s | Current: %s" %(prefix, alt)
+            return "%s | Current: '%s'" %(prefix, alt)
         else:
             return "%s | Current: '%s'" %(prefix, cur_val)
     except KeyError:
@@ -1433,19 +1805,9 @@ class AppHeaderBar(Gtk.HeaderBar):
     def __init__(self):
         super().__init__()
         self.props.title = app_name
-        self.set_decoration_layout("menu:minimize,maximize,close")
+        self.set_decoration_layout(":minimize,maximize,close")
         self.set_show_close_button(True)
 
-class Port(Enum):
-    # Contains enums for LanButtonDialog ports
-    DEFAULT = 1
-    CUSTOM = 2
-
-class Popup(Enum):
-    WAIT = 1
-    NOTIFY = 2
-    CONFIRM = 3
-    ENTRY = 4
 
 class GenericDialog(Gtk.MessageDialog):
     def __init__(self, parent, text, mode):
@@ -1564,6 +1926,7 @@ class LanButtonDialog(Gtk.Window):
     def get_active_button():
         return self.buttonBox.active_button
 
+
 class LanDialog(Gtk.MessageDialog):
     # Custom dialog class that performs integer validation and blocks input if invalid port
     # Returns None if user cancels the dialog
@@ -1637,8 +2000,11 @@ class LanDialog(Gtk.MessageDialog):
                 return True
         return False
 
-def ChangelogDialog(parent, text, mode):
 
+def ChangelogDialog(parent):
+
+    text = ''
+    mode = "Changelog -- content can be scrolled"
     dialog = GenericDialog(parent, text, mode)
     dialogBox = dialog.get_content_area()
     dialog.set_default_response(Gtk.ResponseType.OK)
@@ -1722,6 +2088,7 @@ class PingDialog(GenericDialog):
         data = call_out(parent, "test_ping", ip, qport)
         GLib.idle_add(_load)
 
+
 class ModDialog(GenericDialog):
     def __init__(self, parent, text, mode, record):
         super().__init__(parent, text, mode)
@@ -1784,6 +2151,7 @@ class ModDialog(GenericDialog):
         mod_id = model.get_value(tree_iter, 1)
         subprocess.Popen(['/usr/bin/env', 'bash', funcs, "open_workshop_page", mod_id])
 
+
 class EntryDialog(GenericDialog):
     def __init__(self, parent, text, mode, link):
         super().__init__(parent, text, mode)
@@ -1803,7 +2171,7 @@ class EntryDialog(GenericDialog):
         self.userEntry.set_activates_default(True)
         self.dialogBox.pack_start(self.userEntry, False, False, 0)
 
-        if link != "":
+        if link is not None:
             button = Gtk.Button(label=link)
             button.set_margin_start(60)
             button.set_margin_end(60)
@@ -1843,6 +2211,8 @@ class Grid(Gtk.Grid):
 
         self.right_panel = RightPanel(is_steam_deck)
         self.sel_panel = ModSelectionPanel()
+        self.right_panel.pack_start(self.sel_panel, False, False, 0)
+        self.show_all()
 
         self.bar = Gtk.Statusbar()
         self.scrollable_treelist.treeview.connect("on_distcalc_started", self._on_calclat_started)
@@ -2008,7 +2378,8 @@ class ModSelectionPanel(Gtk.Box):
             mods.append(concat)
         with open(mods_temp_file, "w") as outfile:
             outfile.writelines(mods)
-        process_tree_option(["Delete selected mods", ""], treeview)
+        process_tree_option([treeview.view, RowType.DELETE_SELECTED], treeview)
+
 
 class FilterPanel(Gtk.Box):
     def __init__(self):
@@ -2189,6 +2560,7 @@ class FilterPanel(Gtk.Box):
                 filter_servers(transient_parent, self, treeview, context)
                 self.maps_entry.set_text(selection)
 
+
 def main():
 
     def usage():

From fbb133eeb2f12383725d85125c6ccb02f0ddcd89 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 21 Nov 2024 17:34:47 +0900
Subject: [PATCH 16/99] chore: uncomment

---
 dzgui.sh      | 4 ++--
 helpers/ui.py | 6 ++++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 454b930..f13c3d2 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -569,7 +569,7 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="27ef5c9b811011521c81985ee2b32bb4"
+        ["ui.py"]="b58e0d80cb3e1b927e66866a3911a860"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
         ["funcs"]="75afe0be7e73af2fb6a7e423b5ac9159"
@@ -886,7 +886,7 @@ initial_setup(){
     watcher_deps
     check_architecture
     test_connection
-#    fetch_helpers > >(pdialog "Checking helper files")
+    fetch_helpers > >(pdialog "Checking helper files")
     varcheck
     source "$config_file"
     lock
diff --git a/helpers/ui.py b/helpers/ui.py
index 123962f..114c898 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1228,11 +1228,13 @@ class TreeView(Gtk.TreeView):
         return index
 
     def _on_tree_selection_changed(self, selection):
+        # no statusbar queue on quad tables
+        if self.view == WindowContext.TABLE_MODS or context == "Timestamp":
+            return
+
         grid = self.get_outer_grid()
         context = self.get_first_col()
         row_sel = self.get_column_at_index(0)
-        if context == "Mod" or context == "Timestamp":
-            return
         logger.info("Tree selection for context '%s' changed to '%s'" %(context, row_sel))
 
         if self.current_proc and self.current_proc.is_alive():

From e9cd4572330d2c8e5bdb786eeaa7136342af8e6a Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 21 Nov 2024 19:06:01 +0900
Subject: [PATCH 17/99] fix: set window context earlier

---
 dzgui.sh      | 2 +-
 helpers/ui.py | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index f13c3d2..b53700e 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -569,7 +569,7 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="b58e0d80cb3e1b927e66866a3911a860"
+        ["ui.py"]="549b0415af9ccad6a882b640615b9a22"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
         ["funcs"]="75afe0be7e73af2fb6a7e423b5ac9159"
diff --git a/helpers/ui.py b/helpers/ui.py
index 114c898..1bc315d 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1229,13 +1229,13 @@ class TreeView(Gtk.TreeView):
 
     def _on_tree_selection_changed(self, selection):
         # no statusbar queue on quad tables
-        if self.view == WindowContext.TABLE_MODS or context == "Timestamp":
-            return
 
         grid = self.get_outer_grid()
         context = self.get_first_col()
         row_sel = self.get_column_at_index(0)
         logger.info("Tree selection for context '%s' changed to '%s'" %(context, row_sel))
+        if self.view == WindowContext.TABLE_MODS or context == "Timestamp":
+            return
 
         if self.current_proc and self.current_proc.is_alive():
             self.current_proc.terminate()

From 08af994361d6dec73a6eaa5e78699196c2c16391 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 21 Nov 2024 23:40:17 +0900
Subject: [PATCH 18/99] feat: highlight stale mods (#162)

---
 CHANGELOG.md  |  6 ++++
 dzgui.sh      |  6 ++--
 helpers/funcs | 16 +++++++++++
 helpers/ui.py | 78 +++++++++++++++++++++++++++++++++++++++++++--------
 4 files changed, 92 insertions(+), 14 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index fe598b9..b979cc0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## [5.6.0-beta.5] 2024-11-21
+### Added
+- Highlight stale mods in mods list
+### Fixed
+- Duplicate dialog title on Steam Deck
+
 ## [5.6.0-beta.4] 2024-11-20
 ### Added
 - Application header bar and controls
diff --git a/dzgui.sh b/dzgui.sh
index b53700e..1b41411 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.4
+version=5.6.0-beta.5
 
 #CONSTANTS
 aid=221100
@@ -569,10 +569,10 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="549b0415af9ccad6a882b640615b9a22"
+        ["ui.py"]="15fd3fc32e96db8345c5a3ac8564ecc2"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="75afe0be7e73af2fb6a7e423b5ac9159"
+        ["funcs"]="d1f0d32e3ad34a34d561305ffa597e79"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 6ebacfd..4642378 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -39,6 +39,7 @@ lock_file="$state_path/$prefix.lock"
 cache_dir="$HOME/.cache/$app_name"
 _cache_servers="$cache_dir/$prefix.servers"
 _cache_mods_temp="$cache_dir/$prefix.mods_temp"
+_cache_stale_mods_temp="$cache_dir/$prefix.stale_mods_temp"
 _cache_temp="$cache_dir/$prefix.temp"
 _cache_my_servers="$cache_dir/$prefix.my_servers"
 _cache_history="$cache_dir/$prefix.history"
@@ -95,6 +96,7 @@ else
 fi
 
 declare -A funcs=(
+["Highlight stale"]="find_stale_mods"
 ["My servers"]="dump_servers"
 ["Change player name"]="update_config_val"
 ["Change Steam API key"]="update_config_val"
@@ -144,6 +146,20 @@ lan_scan(){
         printf "%s\n" "$res"
     fi
 }
+find_stale_mods(){
+    local res
+    local mods=()
+    > $_cache_stale_mods_temp
+    for i in "${ip_list[@]}"; do
+        local ip=$(<<< "$i" awk -F: '{print $1}')
+        local qport=$(<<< "$i" awk -F: '{print $3}')
+        res=$(a2s $ip $qport rules)
+        if [[ -n $res ]]; then
+            printf "%s\n" "$res" >> $_cache_stale_mods_temp
+        fi
+    done
+    return 99
+}
 get_player_count(){
     shift
     local res
diff --git a/helpers/ui.py b/helpers/ui.py
index 1bc315d..1270ace 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -34,8 +34,8 @@ checks = list()
 map_store = Gtk.ListStore(str)
 row_store = Gtk.ListStore(str)
 modlist_store = Gtk.ListStore(str, str, str)
-#cf. mod_cols
-mod_store = Gtk.ListStore(str, str, str, float)
+#cf. mod_cols, last column holds hex color
+mod_store = Gtk.ListStore(str, str, str, float, str)
 #cf. log_cols
 log_store = Gtk.ListStore(str, str, str, str)
 #cf. browser_cols
@@ -53,6 +53,7 @@ changelog_path = '%s/CHANGELOG.md' %(state_path)
 geometry_path = '%s/dzg.cols.json' %(state_path)
 funcs = '%s/funcs' %(helpers_path)
 mods_temp_file = '%s/dzg.mods_temp' %(cache_path)
+stale_mods_temp_file = '%s/dzg.stale_mods_temp' %(cache_path)
 
 logger = logging.getLogger(__name__)
 log_file = '%s/DZGUI_DEBUG.log' %(log_path)
@@ -77,7 +78,8 @@ mod_cols = [
     "Mod",
     "Symlink",
     "Dir",
-    "Size (MiB)"
+    "Size (MiB)",
+    "Color"
 ]
 log_cols = [
     "Timestamp",
@@ -121,6 +123,11 @@ class RowType(EnumWithAttrs):
             "label": None,
             "tooltip": None,
             }
+    HIGHLIGHT = {
+            "label": "Highlight stale",
+            "tooltip": None,
+            "wait_msg": "Looking for stale mods"
+            }
     HANDSHAKE = {
             "label": "Handshake",
             "tooltip": None,
@@ -519,8 +526,9 @@ def parse_mod_rows(data):
     lines = data.stdout.splitlines()
     hits = len(lines)
     reader = csv.reader(lines, delimiter=delimiter)
+    # Nonetype inherits default GTK color
     try:
-        rows = [[row[0], row[1], row[2], locale.atof(row[3], func=float)] for row in reader if row]
+        rows = [[row[0], row[1], row[2], locale.atof(row[3], func=float), None] for row in reader if row]
     except IndexError:
         return 1
     for row in rows:
@@ -640,6 +648,10 @@ def process_shell_return_code(transient_parent, msg, code, original_input):
             # re-block this signal before redrawing table contents
             toggle_signal(treeview, treeview, '_on_keypress', False)
             treeview.update_quad_column(RowType.LIST_MODS)
+        case 99:
+            # highlight stale mods
+            panel = transient_parent.grid.sel_panel
+            panel.colorize_cells(msg, True)
         case 100:
             # final handoff before launch
             final_conf = spawn_dialog(transient_parent, msg, Popup.CONFIRM)
@@ -690,6 +702,10 @@ def process_tree_option(input, treeview):
             process_shell_return_code(transient_parent, msg, rc, input)
 
     # help pages
+    if context == WindowContext.TABLE_MODS and command == RowType.HIGHLIGHT:
+        wait_msg = command.dict["wait_msg"]
+        call_on_thread(True, cmd_string, wait_msg, '')
+        return
     if context == WindowContext.HELP:
         match command:
             case RowType.CHANGELOG:
@@ -1589,12 +1605,14 @@ class TreeView(Gtk.TreeView):
 
         for i, column_title in enumerate(cols):
             renderer = Gtk.CellRendererText()
-            column = Gtk.TreeViewColumn(column_title, renderer, text=i)
+            column = Gtk.TreeViewColumn(column_title, renderer, text=i, foreground=4)
             if mode == RowType.LIST_MODS:
                 if i == 3:
                     column.set_cell_data_func(renderer, self._format_float, func_data=None)
             column.set_sort_column_id(i)
-            self.append_column(column)
+            # hidden color property column
+            if i != 4:
+                self.append_column(column)
 
         widgets = relative_widget(self)
         grid = widgets["grid"]
@@ -1848,7 +1866,7 @@ class GenericDialog(Gtk.MessageDialog):
             text=header_text,
             secondary_text=textwrap.fill(text, 50),
             buttons=button_type,
-            title=app_name,
+            title="DZGUI - Dialog",
             modal=True,
         )
 
@@ -1939,7 +1957,7 @@ class LanDialog(Gtk.MessageDialog):
             buttons=Gtk.ButtonsType.OK_CANCEL,
             text=text,
             secondary_text="Select the query port",
-            title=app_name,
+            title="DZGUI - Dialog",
             modal=True,
         )
 
@@ -2328,9 +2346,12 @@ class ModSelectionPanel(Gtk.Box):
         labels = [
                 "Select all",
                 "Unselect all",
-                "Delete selected"
+                "Delete selected",
+                "Highlight stale"
                 ]
 
+        self.active_button = None
+
         for l in labels:
             button = Gtk.Button(label=l)
             button.set_margin_start(10)
@@ -2339,22 +2360,57 @@ class ModSelectionPanel(Gtk.Box):
             self.pack_start(button, False, True, 0)
 
     def _on_button_clicked(self, button):
+        self.active_button = button
         label = button.get_label()
         widgets = relative_widget(self)
         parent = widgets["outer"]
         treeview = widgets["treeview"]
+        (model, pathlist) = treeview.get_selection().get_selected_rows()
         match label:
             case "Select all":
                 treeview.toggle_selection(True)
             case "Unselect all":
                 treeview.toggle_selection(False)
             case "Delete selected":
-                (model, pathlist) = treeview.get_selection().get_selected_rows()
                 ct = len(pathlist)
                 if ct < 1:
                     return
-
                 self._iterate_mod_deletion(model, pathlist, ct)
+            case "Highlight stale":
+                process_tree_option([treeview.view, RowType.HIGHLIGHT], treeview)
+            case "Unhighlight stale":
+                self.colorize_cells(None, False)
+
+    def colorize_cells(self, mods, bool):
+        def _colorize(path, color):
+            mod_store[path][4] = color
+            
+        widgets = relative_widget(self)
+        parent = widgets["outer"]
+        treeview = widgets["treeview"]
+        (model, pathlist) = treeview.get_selection().get_selected_rows()
+
+        if bool is False:
+            default = None
+            for i in range (0, len(mod_store)):
+                path = Gtk.TreePath(i)
+                it = mod_store.get_iter(path)
+                _colorize(path, None)
+            self.active_button.set_label("Highlight stale")
+            return
+
+        with open(stale_mods_temp_file, "r") as infile:
+            lines = [line.rstrip('\n') for line in infile]
+
+        for i in range (0, len(mod_store)):
+            red = "#FF0000"
+            path = Gtk.TreePath(i)
+            it = mod_store.get_iter(path)
+            if model.get_value(it, 2) not in lines:
+                _colorize(path, red)
+            treeview.toggle_selection(False)
+            self.active_button.set_label("Unhighlight stale")
+
 
     def _iterate_mod_deletion(self, model, pathlist, ct):
         # hedge against large number of arguments

From 6e375d3f241695c57f3055a382ea97bb5217f5cd Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 21 Nov 2024 23:58:38 +0900
Subject: [PATCH 19/99] fix: drop unused parameter

---
 helpers/funcs | 1 +
 helpers/ui.py | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/helpers/funcs b/helpers/funcs
index 4642378..6f2404d 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -158,6 +158,7 @@ find_stale_mods(){
             printf "%s\n" "$res" >> $_cache_stale_mods_temp
         fi
     done
+    printf ""
     return 99
 }
 get_player_count(){
diff --git a/helpers/ui.py b/helpers/ui.py
index 1270ace..5753fa8 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -651,7 +651,7 @@ def process_shell_return_code(transient_parent, msg, code, original_input):
         case 99:
             # highlight stale mods
             panel = transient_parent.grid.sel_panel
-            panel.colorize_cells(msg, True)
+            panel.colorize_cells(True)
         case 100:
             # final handoff before launch
             final_conf = spawn_dialog(transient_parent, msg, Popup.CONFIRM)
@@ -2379,9 +2379,9 @@ class ModSelectionPanel(Gtk.Box):
             case "Highlight stale":
                 process_tree_option([treeview.view, RowType.HIGHLIGHT], treeview)
             case "Unhighlight stale":
-                self.colorize_cells(None, False)
+                self.colorize_cells(False)
 
-    def colorize_cells(self, mods, bool):
+    def colorize_cells(self, bool):
         def _colorize(path, color):
             mod_store[path][4] = color
             

From 885c3bc7e78f79392ce1ad561d75596be0253424 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 21 Nov 2024 23:58:47 +0900
Subject: [PATCH 20/99] chore: update checksums

---
 dzgui.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 1b41411..b7291d1 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -569,10 +569,10 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="15fd3fc32e96db8345c5a3ac8564ecc2"
+        ["ui.py"]="a5896c88510e8b4b2f1fec06aed0c96a"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="d1f0d32e3ad34a34d561305ffa597e79"
+        ["funcs"]="9a0ad94df22e24fe41e93a689de7d03e"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"

From e28a75cfd93e43b2c16cffe836db204b4a727bf9 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 28 Nov 2024 17:43:03 +0900
Subject: [PATCH 21/99] fix: installed mods race condition (#167)

---
 CHANGELOG.md  |  4 ++++
 dzgui.sh      |  4 ++--
 helpers/ui.py | 25 +++++++++++++------------
 3 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b979cc0..bf502c6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## [5.6.0-beta.6] 2024-11-28
+### Fixed
+- Race condition when checking for installed mods
+
 ## [5.6.0-beta.5] 2024-11-21
 ### Added
 - Highlight stale mods in mods list
diff --git a/dzgui.sh b/dzgui.sh
index b7291d1..f5f2dd1 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.5
+version=5.6.0-beta.6
 
 #CONSTANTS
 aid=221100
@@ -569,7 +569,7 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="a5896c88510e8b4b2f1fec06aed0c96a"
+        ["ui.py"]="1c6e5b996eccd891a3e56930e28246da"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
         ["funcs"]="9a0ad94df22e24fe41e93a689de7d03e"
diff --git a/helpers/ui.py b/helpers/ui.py
index 5753fa8..779ac15 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1421,12 +1421,12 @@ class TreeView(Gtk.TreeView):
             # suppress button panel if store is empty
             if isinstance(panel_last_child, ModSelectionPanel):
                 if total_mods == 0:
-                    # nb. do not forcibly remove previously added widgets
+                    # do not forcibly remove previously added widgets when reloading in-place
                     grid.sel_panel.set_visible(False)
-                    grid.show_all()
                     right_panel.set_filter_visibility(False)
+                else:
+                    grid.sel_panel.set_visible(True)
 
-            grid.sel_panel.set_visible(True)
             self.set_model(mod_store)
             self.grab_focus()
             size = locale.format_string('%.3f', total_size, grouping=True)
@@ -1437,6 +1437,7 @@ class TreeView(Gtk.TreeView):
             toggle_signal(self, self, '_on_keypress', True)
             self._focus_first_row()
             if total_mods == 0:
+                logger.info("Nothing to do, spawning notice dialog")
                 spawn_dialog(self.get_outer_window(), data.stdout, Popup.NOTIFY)
 
         widgets = relative_widget(self)
@@ -1447,18 +1448,18 @@ class TreeView(Gtk.TreeView):
 
         # suppress errors if no mods available on system
         if data.returncode == 1:
+            logger.info("Failed to find mods on local system")
             total_mods = 0
             total_size = 0
             GLib.idle_add(load)
-            return 1
-
-        # show button panel missing (prevents duplication when reloading in-place)
-        if not isinstance(panel_last_child, ModSelectionPanel):
-            grid.sel_panel.set_visible(True)
-        result = parse_mod_rows(data)
-        total_size = result[0]
-        total_mods = result[1]
-        GLib.idle_add(load)
+        else:
+            # show button panel missing (prevents duplication when reloading in-place)
+            if not isinstance(panel_last_child, ModSelectionPanel):
+                grid.sel_panel.set_visible(True)
+            result = parse_mod_rows(data)
+            total_size = result[0]
+            total_mods = result[1]
+            GLib.idle_add(load)
 
     def _on_col_width_changed(self, col, width):
 

From 94f9ac52c513cb7ccf4a38380c75ed9acb628df3 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 28 Nov 2024 22:37:15 +0900
Subject: [PATCH 22/99] chore: add logging

---
 CHANGELOG.md  | 4 ++++
 dzgui.sh      | 2 +-
 helpers/ui.py | 3 +++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index bf502c6..9878f31 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## [5.6.0-beta.7] 2024-11-28
+### Changed
+- Add additional logging when fetching installed mods
+
 ## [5.6.0-beta.6] 2024-11-28
 ### Fixed
 - Race condition when checking for installed mods
diff --git a/dzgui.sh b/dzgui.sh
index f5f2dd1..de06cac 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.6
+version=5.6.0-beta.7
 
 #CONSTANTS
 aid=221100
diff --git a/helpers/ui.py b/helpers/ui.py
index 779ac15..af1b553 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1459,6 +1459,9 @@ class TreeView(Gtk.TreeView):
             result = parse_mod_rows(data)
             total_size = result[0]
             total_mods = result[1]
+            logger.info("Found mods on local system")
+            logger.info("Total mod size: %s" %(total_size))
+            logger.info("Total mod count: %s" %(total_mods))
             GLib.idle_add(load)
 
     def _on_col_width_changed(self, col, width):

From d5162d6d9e06f5b3f0f151dc242812050d5ae86b Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 28 Nov 2024 23:25:28 +0900
Subject: [PATCH 23/99] fix: normalize user locale (#168)

---
 CHANGELOG.md  | 4 ++++
 dzgui.sh      | 4 ++--
 helpers/funcs | 2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9878f31..5a47dd6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## [5.6.0-beta.8] 2024-11-28
+### Fixed
+- Normalize user locale when parsing floats
+
 ## [5.6.0-beta.7] 2024-11-28
 ### Changed
 - Add additional logging when fetching installed mods
diff --git a/dzgui.sh b/dzgui.sh
index de06cac..abe92bf 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.7
+version=5.6.0-beta.8
 
 #CONSTANTS
 aid=221100
@@ -572,7 +572,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="1c6e5b996eccd891a3e56930e28246da"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="9a0ad94df22e24fe41e93a689de7d03e"
+        ["funcs"]="20f25bd68cad369696a5b7ab8d8c543d"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 6f2404d..8f213ba 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -354,7 +354,7 @@ list_mods(){
             base_dir=$(basename $(readlink -f $game_dir/$symlink))
             size=$(du -s "$(readlink -f "$game_dir/$symlink")" | awk '{print $1}')
             size=$(python3 -c "n=($size/1024) +.005; print(round(n,4))")
-            printf "%s$sep%s$sep%s$sep%3.3f\n" "$name" "$symlink" "$base_dir" "$size"
+            LC_ALL=C printf "%s$sep%s$sep%s$sep%3.3f\n" "$name" "$symlink" "$base_dir" "$size"
         done | sort -k1
     fi
 }

From c3c8872faddd70a8406ca546b5c8e5eff693b5ec Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 3 Dec 2024 20:09:19 +0900
Subject: [PATCH 24/99] fix: backport hotfix (#168)

---
 CHANGELOG.md  | 4 ++++
 dzgui.sh      | 4 ++--
 helpers/funcs | 2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7ba51df..b7156b8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## [5.5.1] 2024-12-03
+### Fixed
+- Support localized decimal separators when parsing installed mod sizes
+
 ## [5.5.0] 2024-11-10
 ### Added
 - Support servers running DLC content (fixes Frostline servers)
diff --git a/dzgui.sh b/dzgui.sh
index b9409e0..15dd451 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.5.0
+version=5.5.1
 
 #CONSTANTS
 aid=221100
@@ -572,7 +572,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="dd7aa34df1d374739127cca3033a3f67"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="d8ae2662fbc3c62bdb5a51dec1935705"
+        ["funcs"]="ad4d7b4bf2e8ef0ac7637183876dbec6"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index b69640f..69b66c8 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -332,7 +332,7 @@ list_mods(){
             base_dir=$(basename $(readlink -f $game_dir/$symlink))
             size=$(du -s "$(readlink -f "$game_dir/$symlink")" | awk '{print $1}')
             size=$(python3 -c "n=($size/1024) +.005; print(round(n,4))")
-            printf "%s$sep%s$sep%s$sep%3.3f\n" "$name" "$symlink" "$base_dir" "$size"
+            LC_NUMERIC=C printf "%s$sep%s$sep%s$sep%3.3f\n" "$name" "$symlink" "$base_dir" "$size"
         done | sort -k1
     fi
 }

From a94859a1572194343759b0866bf6c7314808ac43 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 3 Dec 2024 20:12:18 +0900
Subject: [PATCH 25/99] change: use LC_NUMERIC

---
 CHANGELOG.md  | 4 ++++
 dzgui.sh      | 4 ++--
 helpers/funcs | 2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5a47dd6..b52b56a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## [5.6.0-beta.9] 2024-12-03
+### Fixed
+- Normalize user locale when parsing floats
+
 ## [5.6.0-beta.8] 2024-11-28
 ### Fixed
 - Normalize user locale when parsing floats
diff --git a/dzgui.sh b/dzgui.sh
index abe92bf..5ac52ad 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.8
+version=5.6.0-beta.9
 
 #CONSTANTS
 aid=221100
@@ -572,7 +572,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="1c6e5b996eccd891a3e56930e28246da"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="20f25bd68cad369696a5b7ab8d8c543d"
+        ["funcs"]="d98d8626a1d61b2d5947b53155a14928"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 8f213ba..f8f0c2f 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -354,7 +354,7 @@ list_mods(){
             base_dir=$(basename $(readlink -f $game_dir/$symlink))
             size=$(du -s "$(readlink -f "$game_dir/$symlink")" | awk '{print $1}')
             size=$(python3 -c "n=($size/1024) +.005; print(round(n,4))")
-            LC_ALL=C printf "%s$sep%s$sep%s$sep%3.3f\n" "$name" "$symlink" "$base_dir" "$size"
+            LC_NUMERIC=C printf "%s$sep%s$sep%s$sep%3.3f\n" "$name" "$symlink" "$base_dir" "$size"
         done | sort -k1
     fi
 }

From 6b669e5c2144399a3d393d93e954ab45493acba3 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 3 Dec 2024 21:41:54 +0900
Subject: [PATCH 26/99] fix: reset window context on cooldown

---
 helpers/ui.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/helpers/ui.py b/helpers/ui.py
index af1b553..9b51720 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1721,6 +1721,8 @@ class TreeView(Gtk.TreeView):
                 cooldown = call_out(self, "test_cooldown", "", "")
                 if cooldown.returncode == 1:
                     spawn_dialog(outer, cooldown.stdout, Popup.NOTIFY)
+                    # reset context to main menu if navigation was blocked
+                    self.view = WindowContext.MAIN_MENU
                     return 1
                 for check in checks:
                     toggle_signal(filters_vbox, check, '_on_check_toggle', False)

From 0fdc132873dfcd85eda3e3d58d29b059f80ba23e Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:03:04 +0900
Subject: [PATCH 27/99] fix: array syntax

---
 helpers/funcs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/helpers/funcs b/helpers/funcs
index f8f0c2f..d538109 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -930,7 +930,7 @@ remove_from_favs(){
             break
         fi
     done
-    if [[ ${#ip_list} -gt 0 ]]; then
+    if [[ ${#ip_list[@]} -gt 0 ]]; then
         readarray -t ip_list < <(printf "%s\n" "${ip_list[@]}")
     fi
     update_config
@@ -938,6 +938,7 @@ remove_from_favs(){
     local cache="$(< "$_cache_my_servers")"
     <<< "$cache" grep -v -P "$r$" > $_cache_my_servers
     logger INFO "Removed the record $record from saved servers"
+    echo "Removed $record from saved servers"
     return 90
 }
 update_favs_from_table(){

From ac3055ce39f2d777dfcf2b53d7b21a02e5f226fe Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:04:00 +0900
Subject: [PATCH 28/99] fix: non blocking workshop open

---
 helpers/funcs | 2 +-
 helpers/ui.py | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/helpers/funcs b/helpers/funcs
index d538109..8d4faec 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -1020,7 +1020,7 @@ open_workshop_page(){
     shift
     local id="$1"
     local workshop_uri="steam://url/CommunityFilePage/$id"
-    $steam_cmd "$workshop_uri" $id
+    $steam_cmd "$workshop_uri" $id &
 }
 open_link(){
     shift
diff --git a/helpers/ui.py b/helpers/ui.py
index 9b51720..e64caee 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1139,7 +1139,8 @@ class TreeView(Gtk.TreeView):
                     process_tree_option([self.view, RowType.DELETE_SELECTED], self)
             case "Open in Steam Workshop":
                 record = self.get_column_at_index(2)
-                call_out(parent, "open_workshop_page", record)
+                base_cmd = "open_workshop_page"
+                subprocess.Popen(['/usr/bin/env', 'bash', funcs, base_cmd, record])
 
     def toggle_selection(self, bool):
         l = len(mod_store)

From ef3fffca47a179dbf87d664fdb1a511be79b1311 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:04:29 +0900
Subject: [PATCH 29/99] change: use printf

---
 helpers/funcs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/helpers/funcs b/helpers/funcs
index 8d4faec..5df388a 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -343,7 +343,7 @@ list_mods(){
     local base_dir
     local size
     if [[ -z $(installed_mods) ]] || [[ -z $(find $workshop_dir -maxdepth 2 -name "*.cpp" | grep .cpp) ]]; then
-        echo "No mods currently installed or incorrect path set."
+        printf "No mods currently installed or incorrect path set."
         logger WARN "Found no locally installed mods"
         return 1
     else

From eaa6c1154323c417af7d8ba02e6b4714509247a8 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:06:46 +0900
Subject: [PATCH 30/99] fix: typo

---
 helpers/ui.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index e64caee..fa57d14 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -156,7 +156,7 @@ class RowType(EnumWithAttrs):
             }
     RECENT_SERVERS = {
             "label": "Recent servers",
-            "tooltip": "Shows the last to servers you connected to (includes attempts)",
+            "tooltip": "Shows the last 10 servers you connected to (includes attempts)",
             }
     CONN_BY_IP = {
             "label": "Connect by IP",

From a4f076fbdb6ab12485246df7f73d931d4c3cc0e9 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:07:16 +0900
Subject: [PATCH 31/99] chore: clarify comments

---
 helpers/ui.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/helpers/ui.py b/helpers/ui.py
index fa57d14..ff5a1ac 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1090,6 +1090,7 @@ class TreeView(Gtk.TreeView):
 
     def _on_menu_click(self, menu_item):
         #TODO: context menus use old stringwise parsing
+        # use enumerated contexts
         parent = self.get_outer_window()
         context = self.get_first_col()
         value = self.get_column_at_index(0)

From 5619d55840e1bbeb563006c642e36a780d99e377 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:09:25 +0900
Subject: [PATCH 32/99] fix: update statusbar when removing rows

---
 helpers/ui.py | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index ff5a1ac..a573d80 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1261,8 +1261,11 @@ class TreeView(Gtk.TreeView):
         if self.view == WindowContext.TABLE_API or self.view == WindowContext.TABLE_SERVER:
             addr = self.get_column_at_index(7)
             if addr is None:
+                server_tooltip[0] = format_tooltip()
+                grid.update_statusbar(server_tooltip[0])
                 return
             if addr in cache:
+                server_tooltip[0] = format_tooltip()
                 dist = format_distance(cache[addr][0])
                 ping = format_ping(cache[addr][1])
 
@@ -1390,7 +1393,7 @@ class TreeView(Gtk.TreeView):
             self.grab_focus()
             for column in self.get_columns():
                 column.connect("notify::width", self._on_col_width_changed)
-            if hits == 0:
+            if len(server_store) == 0:
                 call_out(self, "start_cooldown", "", "")
                 api_warn_msg = """\
                     No servers returned. Possible network issue or API key on cooldown?
@@ -1405,10 +1408,8 @@ class TreeView(Gtk.TreeView):
         data = call_out(self, "dump_servers", mode, *filters)
 
         toggle_signal(self, self.selected_row, '_on_tree_selection_changed', False)
-        row_metadata = parse_server_rows(data)
-        sum = row_metadata[0]
-        hits = row_metadata[1]
-        server_tooltip[0] = format_tooltip(sum, hits)
+        parse_server_rows(data)
+        server_tooltip[0] = format_tooltip()
         grid.update_statusbar(server_tooltip[0])
 
         map_data = call_out(self, "get_unique_maps", mode)
@@ -1790,7 +1791,11 @@ def format_metadata(row_sel):
         return prefix
 
 
-def format_tooltip(players, hits):
+def format_tooltip():
+    hits = len(server_store)
+    players = 0
+    for row in server_store:
+        players+= row[4]
     hits_pretty = pluralize("matches", hits)
     players_pretty = pluralize("players", players)
     tooltip = f"Found {hits:n} {hits_pretty} with {players:n} {players_pretty}"
@@ -1800,10 +1805,8 @@ def format_tooltip(players, hits):
 def filter_servers(transient_parent, filters_vbox, treeview, context):
     def filter(dialog):
         def clear_and_destroy():
-            row_metadata = parse_server_rows(data)
-            sum = row_metadata[0]
-            hits = row_metadata[1]
-            server_tooltip[0] = format_tooltip(sum, hits)
+            parse_server_rows(data)
+            server_tooltip[0] = format_tooltip()
             transient_parent.grid.update_statusbar(server_tooltip[0])
 
             toggle_signal(treeview, treeview.selected_row, '_on_tree_selection_changed', True)
@@ -2279,6 +2282,7 @@ class Grid(Gtk.Grid):
         self.scrollable_treelist.treeview.terminate_process()
 
     def _on_calclat_started(self, treeview):
+        server_tooltip[0] = format_tooltip()
         server_tooltip[1] = server_tooltip[0] + "| Distance: calculating..."
         self.update_statusbar(server_tooltip[1])
 

From 75e247b83156da8b59ef8936cc54bc93a20ec504 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:10:08 +0900
Subject: [PATCH 33/99] fix: remove return values from parse_server_rows()

---
 helpers/ui.py | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index a573d80..7dea8e5 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -539,19 +539,14 @@ def parse_mod_rows(data):
 
 
 def parse_server_rows(data):
-    sum = 0
     lines = data.stdout.splitlines()
     reader = csv.reader(lines, delimiter=delimiter)
-    hits = len(lines)
     try:
         rows = [[row[0], row[1], row[2], row[3], int(row[4]), int(row[5]), int(row[6]), row[7], int(row[8])] for row in reader if row]
     except IndexError:
         return 1
     for row in rows:
         server_store.append(row)
-        players = int(row[4])
-        sum += players
-    return [sum, hits]
 
 
 def query_config(widget, key=""):

From 43a639005f3fcb3b88ccf8d99e0dd1621179ade6 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:10:31 +0900
Subject: [PATCH 34/99] chore: move comments

---
 helpers/ui.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index 7dea8e5..7d42ae2 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -2420,7 +2420,6 @@ class ModSelectionPanel(Gtk.Box):
 
 
     def _iterate_mod_deletion(self, model, pathlist, ct):
-        # hedge against large number of arguments
         widgets = relative_widget(self)
         parent = widgets["outer"]
         treeview = widgets["treeview"]
@@ -2441,6 +2440,7 @@ class ModSelectionPanel(Gtk.Box):
             path = model.get_value(it, 2)
             concat = symlink + " " + path + "\n"
             mods.append(concat)
+        # hedge against large number of arguments passed to shell
         with open(mods_temp_file, "w") as outfile:
             outfile.writelines(mods)
         process_tree_option([treeview.view, RowType.DELETE_SELECTED], treeview)

From 13c6813c8e0d9fe9a1ab8cdb3eee7c78b4bf7919 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:11:39 +0900
Subject: [PATCH 35/99] feat: resolve ip when saving records

---
 helpers/ui.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index 7d42ae2..652ea92 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -123,6 +123,11 @@ class RowType(EnumWithAttrs):
             "label": None,
             "tooltip": None,
             }
+    RESOLVE_IP = {
+            "label": "Resolve IP",
+            "tooltip": None,
+            "wait_msg": "Resolving remote IP"
+            }
     HIGHLIGHT = {
             "label": "Highlight stale",
             "tooltip": None,
@@ -696,6 +701,11 @@ def process_tree_option(input, treeview):
             msg = out[-1]
             process_shell_return_code(transient_parent, msg, rc, input)
 
+    if command == RowType.RESOLVE_IP:
+        record = "%s:%s" %(treeview.get_column_at_index(7), treeview.get_column_at_index(8))
+        wait_msg = command.dict["wait_msg"]
+        call_on_thread(True, cmd_string, wait_msg, record)
+        return
     # help pages
     if context == WindowContext.TABLE_MODS and command == RowType.HIGHLIGHT:
         wait_msg = command.dict["wait_msg"]
@@ -1095,12 +1105,10 @@ class TreeView(Gtk.TreeView):
         match context_menu_label:
             case "Add to my servers" | "Remove from my servers":
                 record = "%s:%s" %(self.get_column_at_index(7), self.get_column_at_index(8))
-                proc = call_out(parent, context_menu_label, record)
+                process_tree_option([self.view, RowType.RESOLVE_IP], self)
                 if context == "Name (My saved servers)":
                     iter = self.get_current_iter()
                     server_store.remove(iter)
-                msg = proc.stdout
-                res = spawn_dialog(parent, msg, Popup.NOTIFY)
             case "Remove from history":
                 record = "%s:%s" %(self.get_column_at_index(7), self.get_column_at_index(8))
                 call_out(parent, context_menu_label, record)

From a46c2e17abf16132768ca47723358ee19b1c87ff Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:12:20 +0900
Subject: [PATCH 36/99] chore: remove unused values

---
 helpers/ui.py | 2 --
 1 file changed, 2 deletions(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index 652ea92..cd61034 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1152,12 +1152,10 @@ class TreeView(Gtk.TreeView):
             case True:
                 for i in range (0, l):
                     path = Gtk.TreePath(i)
-                    it = mod_store.get_iter(path)
                     self.get_selection().select_path(path)
             case False:
                 for i in range (0, l):
                     path = Gtk.TreePath(i)
-                    it = mod_store.get_iter(path)
                     self.get_selection().unselect_path(path)
 
     def _on_button_release(self, widget, event):

From 6d332f613e3f254773b7318119f52950b461c603 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:13:29 +0900
Subject: [PATCH 37/99] chore: guard clause

---
 helpers/ui.py | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index cd61034..7d1f81e 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1132,15 +1132,16 @@ class TreeView(Gtk.TreeView):
                 success_msg = "Successfully deleted the mod '%s'." %(value)
                 fail_msg = "An error occurred during deletion. Aborting."
                 res = spawn_dialog(parent, conf_msg, Popup.CONFIRM)
-                if res == 0:
-                    mods = []
-                    symlink = self.get_column_at_index(1)
-                    dir = self.get_column_at_index(2)
-                    concat = symlink + " " + dir + "\n"
-                    mods.append(concat)
-                    with open(mods_temp_file, "w") as outfile:
-                        outfile.writelines(mods)
-                    process_tree_option([self.view, RowType.DELETE_SELECTED], self)
+                if res != 0:
+                    return
+                mods = []
+                symlink = self.get_column_at_index(1)
+                dir = self.get_column_at_index(2)
+                concat = symlink + " " + dir + "\n"
+                mods.append(concat)
+                with open(mods_temp_file, "w") as outfile:
+                    outfile.writelines(mods)
+                process_tree_option([self.view, RowType.DELETE_SELECTED], self)
             case "Open in Steam Workshop":
                 record = self.get_column_at_index(2)
                 base_cmd = "open_workshop_page"

From 336b9882820057093ef40c9e90e3ef0e1f342ffc Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:15:45 +0900
Subject: [PATCH 38/99] fix: untoggle highlight button (#169, 170)

---
 helpers/ui.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 50 insertions(+), 1 deletion(-)

diff --git a/helpers/ui.py b/helpers/ui.py
index 7d1f81e..0747b7a 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -642,16 +642,35 @@ def process_shell_return_code(transient_parent, msg, code, original_input):
             spawn_dialog(transient_parent, msg, Popup.NOTIFY)
             return
         case 95:
-            # reload mods list
+            # successful mod deletion
             spawn_dialog(transient_parent, msg, Popup.NOTIFY)
             treeview = transient_parent.grid.scrollable_treelist.treeview
+            grid = treeview.get_parent().get_parent()
+            (model, pathlist) = treeview.get_selection().get_selected_rows()
+            for p in reversed(pathlist):
+                it = model.get_iter(p)
+                model.remove(it)
+            total_size = 0
+            total_mods = len(model)
+            for row in model:
+                total_size += row[3]
+            size = locale.format_string('%.3f', total_size, grouping=True)
+            pretty = pluralize("mods", total_mods)
+            grid.update_statusbar(f"Found {total_mods:n} {pretty} taking up {size} MiB")
+            # untoggle selection for visibility of other stale rows
+            treeview.toggle_selection(False)
+        case 96:
+            # unsuccessful mod deletion
+            spawn_dialog(transient_parent, msg, Popup.NOTIFY)
             # re-block this signal before redrawing table contents
+            treeview = transient_parent.grid.scrollable_treelist.treeview
             toggle_signal(treeview, treeview, '_on_keypress', False)
             treeview.update_quad_column(RowType.LIST_MODS)
         case 99:
             # highlight stale mods
             panel = transient_parent.grid.sel_panel
             panel.colorize_cells(True)
+            panel.toggle_select_stale_button(True)
         case 100:
             # final handoff before launch
             final_conf = spawn_dialog(transient_parent, msg, Popup.CONFIRM)
@@ -1431,6 +1450,7 @@ class TreeView(Gtk.TreeView):
                     right_panel.set_filter_visibility(False)
                 else:
                     grid.sel_panel.set_visible(True)
+                    grid.sel_panel.initialize()
 
             self.set_model(mod_store)
             self.grab_focus()
@@ -2373,6 +2393,19 @@ class ModSelectionPanel(Gtk.Box):
             button.connect("clicked", self._on_button_clicked)
             self.pack_start(button, False, True, 0)
 
+
+    def initialize(self):
+        l = len(self.get_children())
+        last = self.get_children()[l-1]
+        last_label = last.get_label()
+        for i in self.get_children():
+            match i.get_label():
+                case "Select stale":
+                    i.destroy()
+                case "Unhighlight stale":
+                    i.set_label("Highlight stale")
+
+
     def _on_button_clicked(self, button):
         self.active_button = button
         label = button.get_label()
@@ -2394,6 +2427,22 @@ class ModSelectionPanel(Gtk.Box):
                 process_tree_option([treeview.view, RowType.HIGHLIGHT], treeview)
             case "Unhighlight stale":
                 self.colorize_cells(False)
+                self._remove_last_button()
+            case "Select stale":
+                for i in range (0, len(mod_store)):
+                    if mod_store[i][4] == "#FF0000":
+                        path = Gtk.TreePath(i)
+                        treeview.get_selection().select_path(path)
+
+
+    def toggle_select_stale_button(self, bool):
+        if bool is True:
+            button = Gtk.Button(label="Select stale")
+            button.set_margin_start(10)
+            button.set_margin_end(10)
+            button.connect("clicked", self._on_button_clicked)
+            self.pack_start(button, False, True, 0)
+            self.show_all()
 
     def colorize_cells(self, bool):
         def _colorize(path, color):

From 8fdc29d47df45c8099b3d3149db934dd62c49911 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 5 Dec 2024 08:23:51 +0900
Subject: [PATCH 39/99] chore: bump version

---
 CHANGELOG.md | 8 ++++++++
 dzgui.sh     | 6 +++---
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b52b56a..45c7290 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
 # Changelog
 
+## [5.6.0-beta.10] 2024-12-04
+### Fixed
+- Untoggle highlight button when repopulating mod list
+- Resolve remote IP when saving records for game servers with multiple hosts
+- Update statusbar when removing servers from list/repopulating
+### Added:
+- "Select stale" button to bulk select mods marked as obsolete
+
 ## [5.6.0-beta.9] 2024-12-03
 ### Fixed
 - Normalize user locale when parsing floats
diff --git a/dzgui.sh b/dzgui.sh
index 5ac52ad..766915b 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.9
+version=5.6.0-beta.10
 
 #CONSTANTS
 aid=221100
@@ -569,10 +569,10 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="1c6e5b996eccd891a3e56930e28246da"
+        ["ui.py"]="3b90cd522e52131e7ae396671e1c1ad2"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="d98d8626a1d61b2d5947b53155a14928"
+        ["funcs"]="62f6b3fb2dcb56a78b7642c0f0aa7abe"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"

From 8dc9ad3313860d0d6d56d374157bfd0f0f4e1113 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Sat, 7 Dec 2024 14:02:50 +0900
Subject: [PATCH 40/99] fix: add missing function definition

---
 CHANGELOG.md  | 4 ++++
 dzgui.sh      | 4 ++--
 helpers/ui.py | 9 +++++++++
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 45c7290..3288630 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## [5.6.0-beta.11] 2024-12-07
+### Fixed
+- Add missing function definition
+
 ## [5.6.0-beta.10] 2024-12-04
 ### Fixed
 - Untoggle highlight button when repopulating mod list
diff --git a/dzgui.sh b/dzgui.sh
index 766915b..2a8d4e2 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.10
+version=5.6.0-beta.11
 
 #CONSTANTS
 aid=221100
@@ -569,7 +569,7 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="3b90cd522e52131e7ae396671e1c1ad2"
+        ["ui.py"]="be3da1e542d14105f4358dd38901e25a"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
         ["funcs"]="62f6b3fb2dcb56a78b7642c0f0aa7abe"
diff --git a/helpers/ui.py b/helpers/ui.py
index 0747b7a..b5f01c0 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -2435,6 +2435,15 @@ class ModSelectionPanel(Gtk.Box):
                         treeview.get_selection().select_path(path)
 
 
+    def _remove_last_button(self):
+        children = self.get_children()
+        l = len(children)
+        tip = children[l-1]
+        label = tip.get_label()
+        if label == "Select stale":
+            tip.destroy()
+
+
     def toggle_select_stale_button(self, bool):
         if bool is True:
             button = Gtk.Button(label="Select stale")

From eaf9d5ad3ee7b7a418fb5d6228a85ce35bcb9508 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 09:54:44 +0900
Subject: [PATCH 41/99] fix: change remote URLs

---
 README.md     |  7 ++-----
 dzgui.sh      | 16 ++++++++--------
 helpers/funcs |  6 +++---
 3 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/README.md b/README.md
index 5732eb9..dae89ad 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,6 @@
 ## What this is
-DZGUI is a GUI version of [DZTUI](https://github.com/aclist/dztui/tree/dztui) for Linux. 
-
-Note: development of DZTUI has stopped and has been replaced with DZGUI.
-
-DZGUI allows you to connect to both official and modded/community DayZ servers on Linux and provides a graphical interface for doing so. This overcomes certain limitations in the Linux client and helps prepare the game to launch by doing the following:
+DZGUI allows you to connect to both official and modded/community DayZ servers on Linux and provides a graphical interface for doing so. This overcomes certain limitations in the Linux client and 
+helps prepare the game to launch by doing the following:
 
 1. Search for and display server metadata in a table (server name, player count, ping, current gametime, distance, IP)
 2. Add/delete/manage favorite servers by IP or ID
diff --git a/dzgui.sh b/dzgui.sh
index 2a8d4e2..8885bc9 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -56,11 +56,11 @@ func_helper="$helpers_path/funcs"
 
 #URLS
 author="aclist"
-repo="dztui"
-url_prefix="https://raw.githubusercontent.com/$author/$repo"
+repo="dzgui"
+url_prefix="https://codeberg.org/$author/$repo/raw/branch"
 stable_url="$url_prefix/dzgui"
 testing_url="$url_prefix/testing"
-releases_url="https://github.com/$author/$repo/releases/download/browser"
+releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
 km_helper_url="$releases_url/latlon"
 geo_file_url="$releases_url/ips.csv.gz"
 
@@ -373,7 +373,7 @@ dl_changelog(){
     local mdbranch
     [[ $branch == "stable" ]] && mdbranch="dzgui"
     [[ $branch == "testing" ]] && mdbranch="testing"
-    local md="https://raw.githubusercontent.com/$author/dztui/${mdbranch}/CHANGELOG.md"
+    local md="https://codeberg.org/$author/dzgui/raw/branch/${mdbranch}/CHANGELOG.md"
     curl -Ls "$md" > "$state_path/CHANGELOG.md"
 }
 test_display_mode(){
@@ -535,7 +535,7 @@ fetch_dzq(){
         return 0
     fi
     local sha=3088bbfb147b77bc7b6a9425581b439889ff3f7f
-    local author="aclist"
+    local author="yepoleb"
     local repo="dayzquery"
     local url="https://raw.githubusercontent.com/$author/$repo/$sha/dayzquery.py"
     curl -Ls "$url" > "$file"
@@ -572,11 +572,11 @@ fetch_helpers_by_sum(){
         ["ui.py"]="be3da1e542d14105f4358dd38901e25a"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="62f6b3fb2dcb56a78b7642c0f0aa7abe"
+        ["funcs"]="0cbec29142f4fcb03b2bd8367fe365e4"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
-    local repo="dztui"
+    local repo="dzgui"
     local realbranch
     local file
     local sum
@@ -596,7 +596,7 @@ fetch_helpers_by_sum(){
         file="$i"
         sum="${sums[$i]}"
         full_path="$helpers_path/$file"
-        url="https://raw.githubusercontent.com/$author/$repo/$realbranch/helpers/$file"
+        url="https://codeberg.org/$author/$repo/raw/branch/$realbranch/helpers/$file"
         if [[ -f "$full_path" ]] && [[ $(get_hash "$full_path") == $sum ]]; then
             logger INFO "$file is current"
         else
diff --git a/helpers/funcs b/helpers/funcs
index 5df388a..e8745f6 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -72,10 +72,10 @@ author="aclist"
 repo="dztui"
 gh_prefix="https://github.com"
 issues_url="$gh_prefix/$author/$repo/issues"
-url_prefix="https://raw.githubusercontent.com/$author/$repo"
+url_prefix="https://codeberg.org/$author/$repo/branch"
 stable_url="$url_prefix/dzgui"
 testing_url="$url_prefix/testing"
-releases_url="$gh_prefix/$author/$repo/releases/download/browser"
+releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
 km_helper_url="$releases_url/latlon"
 db_file="$releases_url/ips.csv.gz"
 sums_url="$stable_url/helpers/sums.md5"
@@ -852,7 +852,7 @@ dl_changelog(){
     local file="CHANGELOG.md"
     [[ $branch == "stable" ]] && mdbranch="dzgui"
     [[ $branch == "testing" ]] && mdbranch="testing"
-    local md="https://raw.githubusercontent.com/$author/$repo/${mdbranch}/$file"
+    local md="https://codeberg.org/$author/$repo/raw/branch/${mdbranch}/$file"
     curl -Ls "$md" > "$state_path/$file"
 }
 toggle(){

From f503c89c2b2fac160dd37cf23615b65d7d7f3a69 Mon Sep 17 00:00:00 2001
From: aclist <aclist@noreply.codeberg.org>
Date: Thu, 12 Dec 2024 00:58:56 +0000
Subject: [PATCH 42/99] fix: line wrapping

---
 README.md | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/README.md b/README.md
index dae89ad..8290e55 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,5 @@
 ## What this is
-DZGUI allows you to connect to both official and modded/community DayZ servers on Linux and provides a graphical interface for doing so. This overcomes certain limitations in the Linux client and 
-helps prepare the game to launch by doing the following:
+DZGUI allows you to connect to both official and modded/community DayZ servers on Linux and provides a graphical interface for doing so. This overcomes certain limitations in the Linux client and helps prepare the game to launch by doing the following:
 
 1. Search for and display server metadata in a table (server name, player count, ping, current gametime, distance, IP)
 2. Add/delete/manage favorite servers by IP or ID

From 1da2e7292820ffb28ad900c0d9212b75ec0f206d Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 10:27:38 +0900
Subject: [PATCH 43/99] fix: update installscript

---
 install.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install.sh b/install.sh
index a56422e..1e07a07 100644
--- a/install.sh
+++ b/install.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-curl "https://raw.githubusercontent.com/aclist/dztui/dzgui/dzgui.sh" > dzgui.sh
+curl "https://codeberg.org/aclist/dzgui/raw/branch/dzgui/dzgui.sh" > dzgui.sh
 chmod +x dzgui.sh
 xdg_file="$HOME/.local/share/applications/dzgui.desktop"
 share="$HOME/.local/share/dzgui"

From 0197e0f92103f70a2855dc8aa2f6f7a31f7d19f6 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 11:08:07 +0900
Subject: [PATCH 44/99] fix: conditional remote url logic

---
 dzgui.sh | 60 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 46 insertions(+), 14 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 8885bc9..45f5663 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -54,16 +54,18 @@ km_helper="$helpers_path/latlon"
 sums_path="$helpers_path/sums.md5"
 func_helper="$helpers_path/funcs"
 
-#URLS
+#REMOTE
+remote_host=gh
 author="aclist"
-repo="dzgui"
-url_prefix="https://codeberg.org/$author/$repo/raw/branch"
+repo="dztui"
+url_prefix="https://raw.githubusercontent.com/$author/$repo"
 stable_url="$url_prefix/dzgui"
 testing_url="$url_prefix/testing"
-releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
+releases_url="https://github.com/$author/$repo/releases/download/browser"
 km_helper_url="$releases_url/latlon"
 geo_file_url="$releases_url/ips.csv.gz"
 
+
 set_im_module(){
     #TODO: drop pending SteamOS changes
     pgrep -a gamescope | grep -q "generate-drm-mode"
@@ -312,13 +314,14 @@ check_unmerged(){
 check_version(){
     local version_url=$(format_version_url)
     local upstream=$(curl -Ls "$version_url" | awk -F= '/^version=/ {print $2}')
+    #2024-12-12: do not clobber local version if unreachable
+    [[ -z $upstream ]] && return
     logger INFO "Local branch: '$branch', local version: $version"
     if [[ $branch == "stable" ]]; then
         version_url="$stable_url/dzgui.sh"
     elif [[ $branch == "testing" ]]; then
         version_url="$testing_url/dzgui.sh"
     fi
-    local upstream=$(curl -Ls "$version_url" | awk -F= '/^version=/ {print $2}')
     [[ ! -f "$freedesktop_path/$app_name.desktop" ]] && freedesktop_dirs
     if [[ $version == $upstream ]]; then
         logger INFO "Local version is same as upstream"
@@ -371,9 +374,14 @@ prompt_dl(){
 }
 dl_changelog(){
     local mdbranch
+    local md
     [[ $branch == "stable" ]] && mdbranch="dzgui"
     [[ $branch == "testing" ]] && mdbranch="testing"
-    local md="https://codeberg.org/$author/dzgui/raw/branch/${mdbranch}/CHANGELOG.md"
+    if [[ $remote_host == "gh" ]]; then
+        md="https://raw.githubusercontent.com/$author/$repo/${mdbranch}/CHANGELOG.md"
+    else
+        md="https://codeberg.org/$author/$repo/raw/branch/${mdbranch}/CHANGELOG.md"
+    fi
     curl -Ls "$md" > "$state_path/CHANGELOG.md"
 }
 test_display_mode(){
@@ -596,7 +604,13 @@ fetch_helpers_by_sum(){
         file="$i"
         sum="${sums[$i]}"
         full_path="$helpers_path/$file"
-        url="https://codeberg.org/$author/$repo/raw/branch/$realbranch/helpers/$file"
+
+        if [[ $remote_host == "gh" ]]; then
+            url="https://raw.githubusercontent.com/$author/$repo/$realbranch/helpers/$file"
+        else
+            url="https://codeberg.org/$author/$repo/raw/branch/$realbranch/helpers/$file"
+        fi
+
         if [[ -f "$full_path" ]] && [[ $(get_hash "$full_path") == $sum ]]; then
             logger INFO "$file is current"
         else
@@ -845,14 +859,32 @@ is_steam_running(){
         return 0
     fi
 }
+get_response_code(){
+    local url="$1"
+    curl -Ls -I -o /dev/null -w "%{http_code}" "$url"
+}
 test_connection(){
-    ping -c1 -4 github.com 1>/dev/null 2>&1
-    if [[ ! $? -eq 0 ]]; then
-        raise_error_and_quit "No connection could be established to the remote server (github.com)."
-    fi
-    ping -c1 -4 api.steampowered.com 1>/dev/null 2>&1
-    if [[ ! $? -eq 0 ]]; then
-        raise_error_and_quit "No connection could be established to the remote server (steampowered.com)."
+    source "$config_file"
+    declare -A hr
+    local res1
+    local res2
+    local str="No connection could be established to the remote server"
+    hr=(
+        ["steampowered.com"]="https://api.steampowered.com/IGameServersService/GetServerList/v1/?key=$steam_api"
+        ["github.com"]="https://github.com/$author"
+        ["codeberg.org"]="https://codeberg.org/$author"
+    )
+    res=$(get_response_code "${hr["github.com"]}")
+    [[ $res -ne 200 ]] && remote_host=cb
+    res=$(get_response_code "${hr["codeberg.org"]}")
+    [[ $res -ne 200 ]] && raise_error_and_quit "$str (${hr["codeberg.org"]})"
+    # steam API is mandatory
+    res=$(get_response_code "${hr["steampowered.com"]}")
+    [[ $res -ne 200 ]] && raise_error_and_quit "$str ${hr["steampowered.com"]}"
+
+    if [[ $remote_host == "cb" ]]; then
+        url_prefix="https://codeberg.org/$author/$repo/raw/branch"
+        releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
     fi
 }
 legacy_cols(){

From a079d554bcdb5a44d9a6aa6c7a333a7fcac173fa Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 11:13:48 +0900
Subject: [PATCH 45/99] chore: bump version

---
 dzgui.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dzgui.sh b/dzgui.sh
index 45f5663..1cbd63e 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.11
+version=5.6.0-beta.12
 
 #CONSTANTS
 aid=221100

From 7c5bd76e8f73831500056634dc34d8fcc08561ec Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 11:16:46 +0900
Subject: [PATCH 46/99] fix: test connection control flow

---
 dzgui.sh | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 1cbd63e..3067c93 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -874,14 +874,18 @@ test_connection(){
         ["github.com"]="https://github.com/$author"
         ["codeberg.org"]="https://codeberg.org/$author"
     )
-    res=$(get_response_code "${hr["github.com"]}")
-    [[ $res -ne 200 ]] && remote_host=cb
-    res=$(get_response_code "${hr["codeberg.org"]}")
-    [[ $res -ne 200 ]] && raise_error_and_quit "$str (${hr["codeberg.org"]})"
     # steam API is mandatory
     res=$(get_response_code "${hr["steampowered.com"]}")
     [[ $res -ne 200 ]] && raise_error_and_quit "$str ${hr["steampowered.com"]}"
 
+    res=$(get_response_code "${hr["github.com"]}")
+    if [[ $res -ne 200 ]]; then
+        logger WARN "Remote host '${hr["github.com"]}' unreachable', trying fallback"
+        remote_host=cb
+        res=$(get_response_code "${hr["codeberg.org"]}")
+        [[ $res -ne 200 ]] && raise_error_and_quit "$str (${hr["codeberg.org"]})"
+    fi
+
     if [[ $remote_host == "cb" ]]; then
         url_prefix="https://codeberg.org/$author/$repo/raw/branch"
         releases_url="https://codeberg.org/$author/$repo/releases/download/browser"

From ea0d94a2fcf24bf5f35febeeb7853f301b67c395 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 11:25:39 +0900
Subject: [PATCH 47/99] fix: interpolate old vars

---
 dzgui.sh | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/dzgui.sh b/dzgui.sh
index 3067c93..fca682b 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -889,6 +889,11 @@ test_connection(){
     if [[ $remote_host == "cb" ]]; then
         url_prefix="https://codeberg.org/$author/$repo/raw/branch"
         releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
+        # 2024-12-12: interpolate variables again
+        stable_url="$url_prefix/dzgui"
+        testing_url="$url_prefix/testing"
+        km_helper_url="$releases_url/latlon"
+        geo_file_url="$releases_url/ips.csv.gz"
     fi
 }
 legacy_cols(){

From 4b95033c1978398cd565c152a64717138cb8dc92 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 11:31:32 +0900
Subject: [PATCH 48/99] chore: add comments

---
 dzgui.sh      | 2 +-
 helpers/funcs | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/dzgui.sh b/dzgui.sh
index fca682b..13bb058 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -580,7 +580,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="be3da1e542d14105f4358dd38901e25a"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="0cbec29142f4fcb03b2bd8367fe365e4"
+        ["funcs"]="bdf2b0d71622de2a5762005290879b3d"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index e8745f6..42cdd49 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -70,6 +70,8 @@ game_dir="$steam_path/steamapps/common/DayZ"
 #URLS
 author="aclist"
 repo="dztui"
+#TODO: this is hardcoded
+#2024-12-12
 gh_prefix="https://github.com"
 issues_url="$gh_prefix/$author/$repo/issues"
 url_prefix="https://codeberg.org/$author/$repo/branch"

From 1be68e7be3cf2835db15bfbfce8efc145b5d23a6 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 11:38:16 +0900
Subject: [PATCH 49/99] fix: enable redirects

---
 dzgui.sh   | 2 +-
 install.sh | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 13bb058..855aaf9 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.12
+version=5.6.0-beta.13
 
 #CONSTANTS
 aid=221100
diff --git a/install.sh b/install.sh
index 1e07a07..22ec6ab 100644
--- a/install.sh
+++ b/install.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-curl "https://codeberg.org/aclist/dzgui/raw/branch/dzgui/dzgui.sh" > dzgui.sh
+curl -L "https://codeberg.org/aclist/dzgui/raw/branch/dzgui/dzgui.sh" > dzgui.sh
 chmod +x dzgui.sh
 xdg_file="$HOME/.local/share/applications/dzgui.desktop"
 share="$HOME/.local/share/dzgui"

From 12b1c392dfc912779847e64a9dd032db3a2558ed Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 11:50:18 +0900
Subject: [PATCH 50/99] fix: initial setup

---
 dzgui.sh | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 855aaf9..aa02198 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.13
+version=5.6.0-beta.14
 
 #CONSTANTS
 aid=221100
@@ -874,9 +874,11 @@ test_connection(){
         ["github.com"]="https://github.com/$author"
         ["codeberg.org"]="https://codeberg.org/$author"
     )
-    # steam API is mandatory
-    res=$(get_response_code "${hr["steampowered.com"]}")
-    [[ $res -ne 200 ]] && raise_error_and_quit "$str ${hr["steampowered.com"]}"
+    # steam API is mandatory, except on initial setup
+    if [[ -n $steam_api ]]; then
+        res=$(get_response_code "${hr["steampowered.com"]}")
+        [[ $res -ne 200 ]] && raise_error_and_quit "$str ("steampowered.com")"
+    fi
 
     res=$(get_response_code "${hr["github.com"]}")
     if [[ $res -ne 200 ]]; then
@@ -885,7 +887,6 @@ test_connection(){
         res=$(get_response_code "${hr["codeberg.org"]}")
         [[ $res -ne 200 ]] && raise_error_and_quit "$str (${hr["codeberg.org"]})"
     fi
-
     if [[ $remote_host == "cb" ]]; then
         url_prefix="https://codeberg.org/$author/$repo/raw/branch"
         releases_url="https://codeberg.org/$author/$repo/releases/download/browser"

From bc9178d2de8747278abb435e12c0335172c887cb Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 11:56:10 +0900
Subject: [PATCH 51/99] fix: triage hotfix from testing

---
 dzgui.sh      | 72 ++++++++++++++++++++++++++++++++++++++++-----------
 helpers/funcs |  8 +++---
 2 files changed, 62 insertions(+), 18 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 15dd451..3580adc 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.5.1
+version=5.5.2
 
 #CONSTANTS
 aid=221100
@@ -54,7 +54,8 @@ km_helper="$helpers_path/latlon"
 sums_path="$helpers_path/sums.md5"
 func_helper="$helpers_path/funcs"
 
-#URLS
+#REMOTE
+remote_host=gh
 author="aclist"
 repo="dztui"
 url_prefix="https://raw.githubusercontent.com/$author/$repo"
@@ -64,6 +65,7 @@ releases_url="https://github.com/$author/$repo/releases/download/browser"
 km_helper_url="$releases_url/latlon"
 geo_file_url="$releases_url/ips.csv.gz"
 
+
 set_im_module(){
     #TODO: drop pending SteamOS changes
     pgrep -a gamescope | grep -q "generate-drm-mode"
@@ -312,13 +314,14 @@ check_unmerged(){
 check_version(){
     local version_url=$(format_version_url)
     local upstream=$(curl -Ls "$version_url" | awk -F= '/^version=/ {print $2}')
+    #2024-12-12: do not clobber local version if unreachable
+    [[ -z $upstream ]] && return
     logger INFO "Local branch: '$branch', local version: $version"
     if [[ $branch == "stable" ]]; then
         version_url="$stable_url/dzgui.sh"
     elif [[ $branch == "testing" ]]; then
         version_url="$testing_url/dzgui.sh"
     fi
-    local upstream=$(curl -Ls "$version_url" | awk -F= '/^version=/ {print $2}')
     [[ ! -f "$freedesktop_path/$app_name.desktop" ]] && freedesktop_dirs
     if [[ $version == $upstream ]]; then
         logger INFO "Local version is same as upstream"
@@ -371,9 +374,14 @@ prompt_dl(){
 }
 dl_changelog(){
     local mdbranch
+    local md
     [[ $branch == "stable" ]] && mdbranch="dzgui"
     [[ $branch == "testing" ]] && mdbranch="testing"
-    local md="https://raw.githubusercontent.com/$author/dztui/${mdbranch}/CHANGELOG.md"
+    if [[ $remote_host == "gh" ]]; then
+        md="https://raw.githubusercontent.com/$author/$repo/${mdbranch}/CHANGELOG.md"
+    else
+        md="https://codeberg.org/$author/$repo/raw/branch/${mdbranch}/CHANGELOG.md"
+    fi
     curl -Ls "$md" > "$state_path/CHANGELOG.md"
 }
 test_display_mode(){
@@ -535,7 +543,7 @@ fetch_dzq(){
         return 0
     fi
     local sha=3088bbfb147b77bc7b6a9425581b439889ff3f7f
-    local author="aclist"
+    local author="yepoleb"
     local repo="dayzquery"
     local url="https://raw.githubusercontent.com/$author/$repo/$sha/dayzquery.py"
     curl -Ls "$url" > "$file"
@@ -569,14 +577,14 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="dd7aa34df1d374739127cca3033a3f67"
+        ["ui.py"]="be3da1e542d14105f4358dd38901e25a"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="ad4d7b4bf2e8ef0ac7637183876dbec6"
+        ["funcs"]="9c844298c5f112c0a2482dce3110ab70"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
-    local repo="dztui"
+    local repo="dzgui"
     local realbranch
     local file
     local sum
@@ -596,7 +604,13 @@ fetch_helpers_by_sum(){
         file="$i"
         sum="${sums[$i]}"
         full_path="$helpers_path/$file"
-        url="https://raw.githubusercontent.com/$author/$repo/$realbranch/helpers/$file"
+
+        if [[ $remote_host == "gh" ]]; then
+            url="https://raw.githubusercontent.com/$author/$repo/$realbranch/helpers/$file"
+        else
+            url="https://codeberg.org/$author/$repo/raw/branch/$realbranch/helpers/$file"
+        fi
+
         if [[ -f "$full_path" ]] && [[ $(get_hash "$full_path") == $sum ]]; then
             logger INFO "$file is current"
         else
@@ -845,14 +859,42 @@ is_steam_running(){
         return 0
     fi
 }
+get_response_code(){
+    local url="$1"
+    curl -Ls -I -o /dev/null -w "%{http_code}" "$url"
+}
 test_connection(){
-    ping -c1 -4 github.com 1>/dev/null 2>&1
-    if [[ ! $? -eq 0 ]]; then
-        raise_error_and_quit "No connection could be established to the remote server (github.com)."
+    source "$config_file"
+    declare -A hr
+    local res1
+    local res2
+    local str="No connection could be established to the remote server"
+    hr=(
+        ["steampowered.com"]="https://api.steampowered.com/IGameServersService/GetServerList/v1/?key=$steam_api"
+        ["github.com"]="https://github.com/$author"
+        ["codeberg.org"]="https://codeberg.org/$author"
+    )
+    # steam API is mandatory, except on initial setup
+    if [[ -n $steam_api ]]; then
+        res=$(get_response_code "${hr["steampowered.com"]}")
+        [[ $res -ne 200 ]] && raise_error_and_quit "$str ("steampowered.com")"
     fi
-    ping -c1 -4 api.steampowered.com 1>/dev/null 2>&1
-    if [[ ! $? -eq 0 ]]; then
-        raise_error_and_quit "No connection could be established to the remote server (steampowered.com)."
+
+    res=$(get_response_code "${hr["github.com"]}")
+    if [[ $res -ne 200 ]]; then
+        logger WARN "Remote host '${hr["github.com"]}' unreachable', trying fallback"
+        remote_host=cb
+        res=$(get_response_code "${hr["codeberg.org"]}")
+        [[ $res -ne 200 ]] && raise_error_and_quit "$str (${hr["codeberg.org"]})"
+    fi
+    if [[ $remote_host == "cb" ]]; then
+        url_prefix="https://codeberg.org/$author/$repo/raw/branch"
+        releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
+        # 2024-12-12: interpolate variables again
+        stable_url="$url_prefix/dzgui"
+        testing_url="$url_prefix/testing"
+        km_helper_url="$releases_url/latlon"
+        geo_file_url="$releases_url/ips.csv.gz"
     fi
 }
 legacy_cols(){
diff --git a/helpers/funcs b/helpers/funcs
index 69b66c8..539a6d5 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -67,12 +67,14 @@ game_dir="$steam_path/steamapps/common/DayZ"
 #URLS
 author="aclist"
 repo="dztui"
+#TODO: this is hardcoded
+#2024-12-12
 gh_prefix="https://github.com"
 issues_url="$gh_prefix/$author/$repo/issues"
-url_prefix="https://raw.githubusercontent.com/$author/$repo"
+url_prefix="https://codeberg.org/$author/$repo/branch"
 stable_url="$url_prefix/dzgui"
 testing_url="$url_prefix/testing"
-releases_url="$gh_prefix/$author/$repo/releases/download/browser"
+releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
 km_helper_url="$releases_url/latlon"
 db_file="$releases_url/ips.csv.gz"
 sums_url="$stable_url/helpers/sums.md5"
@@ -773,7 +775,7 @@ dl_changelog(){
     local file="CHANGELOG.md"
     [[ $branch == "stable" ]] && mdbranch="dzgui"
     [[ $branch == "testing" ]] && mdbranch="testing"
-    local md="https://raw.githubusercontent.com/$author/$repo/${mdbranch}/$file"
+    local md="https://codeberg.org/$author/$repo/raw/branch/${mdbranch}/$file"
     curl -Ls "$md" > "$state_path/$file"
 }
 toggle(){

From 62e6da2abb9c3edb8479e5ab6d803a3662c45116 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 12:08:57 +0900
Subject: [PATCH 52/99] fix: url syntax

---
 dzgui.sh      | 4 ++--
 helpers/funcs | 4 +++-
 2 files changed, 5 insertions(+), 3 deletions(-)
 mode change 100755 => 100644 dzgui.sh

diff --git a/dzgui.sh b/dzgui.sh
old mode 100755
new mode 100644
index aa02198..82a97d2
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.14
+version=5.6.0-beta.15
 
 #CONSTANTS
 aid=221100
@@ -580,7 +580,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="be3da1e542d14105f4358dd38901e25a"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="bdf2b0d71622de2a5762005290879b3d"
+        ["funcs"]="bfe629ed9481627317b49a8f9c6fad24"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 42cdd49..8e06c1a 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -74,7 +74,7 @@ repo="dztui"
 #2024-12-12
 gh_prefix="https://github.com"
 issues_url="$gh_prefix/$author/$repo/issues"
-url_prefix="https://codeberg.org/$author/$repo/branch"
+url_prefix="https://codeberg.org/$author/$repo/raw/branch"
 stable_url="$url_prefix/dzgui"
 testing_url="$url_prefix/testing"
 releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
@@ -854,6 +854,8 @@ dl_changelog(){
     local file="CHANGELOG.md"
     [[ $branch == "stable" ]] && mdbranch="dzgui"
     [[ $branch == "testing" ]] && mdbranch="testing"
+    #TODO: this is hardcoded
+    #2024-12-12
     local md="https://codeberg.org/$author/$repo/raw/branch/${mdbranch}/$file"
     curl -Ls "$md" > "$state_path/$file"
 }

From d71110d0a113d133d2ccdd42f3683c330ce59ee2 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 12:10:04 +0900
Subject: [PATCH 53/99] fix: url syntax

---
 dzgui.sh      | 2 +-
 helpers/funcs | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 3580adc..144f874 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -580,7 +580,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="be3da1e542d14105f4358dd38901e25a"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="9c844298c5f112c0a2482dce3110ab70"
+        ["funcs"]="8aa9eac96c21a3aabbf73c44b643523b"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 539a6d5..2f5875d 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -71,7 +71,7 @@ repo="dztui"
 #2024-12-12
 gh_prefix="https://github.com"
 issues_url="$gh_prefix/$author/$repo/issues"
-url_prefix="https://codeberg.org/$author/$repo/branch"
+url_prefix="https://codeberg.org/$author/$repo/raw/branch"
 stable_url="$url_prefix/dzgui"
 testing_url="$url_prefix/testing"
 releases_url="https://codeberg.org/$author/$repo/releases/download/browser"

From 32b424da5cfa9955e98d840a5813e0d61cbe0a8a Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 12:25:26 +0900
Subject: [PATCH 54/99] fix: update installscript

---
 install.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install.sh b/install.sh
index a56422e..22ec6ab 100644
--- a/install.sh
+++ b/install.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-curl "https://raw.githubusercontent.com/aclist/dztui/dzgui/dzgui.sh" > dzgui.sh
+curl -L "https://codeberg.org/aclist/dzgui/raw/branch/dzgui/dzgui.sh" > dzgui.sh
 chmod +x dzgui.sh
 xdg_file="$HOME/.local/share/applications/dzgui.desktop"
 share="$HOME/.local/share/dzgui"

From baeaeb1b6401123f118dc40355f91fc15b2d5501 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 17:57:27 +0900
Subject: [PATCH 55/99] docs: update README

---
 README.md | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/README.md b/README.md
index 5732eb9..8290e55 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,4 @@
 ## What this is
-DZGUI is a GUI version of [DZTUI](https://github.com/aclist/dztui/tree/dztui) for Linux. 
-
-Note: development of DZTUI has stopped and has been replaced with DZGUI.
-
 DZGUI allows you to connect to both official and modded/community DayZ servers on Linux and provides a graphical interface for doing so. This overcomes certain limitations in the Linux client and helps prepare the game to launch by doing the following:
 
 1. Search for and display server metadata in a table (server name, player count, ping, current gametime, distance, IP)

From c5785d185796b8b066d28d3fe9af2420484abed7 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 18:31:58 +0900
Subject: [PATCH 56/99] docs: update docs link

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 8290e55..d6cf770 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ Other options include the ability to connect by IP or ID or  set a favorite serv
 
 ## Setup and usage
 
-Refer to the [manual](https://aclist.github.io/dzgui/dzgui.html) for installation and setup instructions, a feature-by-feature breakdown, and Steam integration tutorials.
+Refer to the [manual](https://aclist.codeberg.page) for installation and setup instructions, a feature-by-feature breakdown, and Steam integration tutorials.
 
 ![Alt text](/images/example.png)
 

From 8ea62434ee0e0fdbcd68a65124ddf75f415ee306 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 12 Dec 2024 18:32:44 +0900
Subject: [PATCH 57/99] docs: update docs link

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 8290e55..d6cf770 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ Other options include the ability to connect by IP or ID or  set a favorite serv
 
 ## Setup and usage
 
-Refer to the [manual](https://aclist.github.io/dzgui/dzgui.html) for installation and setup instructions, a feature-by-feature breakdown, and Steam integration tutorials.
+Refer to the [manual](https://aclist.codeberg.page) for installation and setup instructions, a feature-by-feature breakdown, and Steam integration tutorials.
 
 ![Alt text](/images/example.png)
 

From cbecf569ad217a26de24e3c8272947ad484b399e Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Fri, 13 Dec 2024 09:40:46 +0900
Subject: [PATCH 58/99] fix: add fallbacks and remote resource checks

---
 CHANGELOG.md  |  6 ++++++
 dzgui.sh      | 28 ++++++++++++++++++----------
 helpers/funcs | 47 ++++++++++++++++++++++++++++++++++++-----------
 3 files changed, 60 insertions(+), 21 deletions(-)
 mode change 100644 => 100755 dzgui.sh

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3288630..6d02bc4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## [5.6.0-beta.16] 2024-12-13
+### Fixed
+- Add remote resource health checks before downloading updates
+### Added
+- Add fallback repository
+
 ## [5.6.0-beta.11] 2024-12-07
 ### Fixed
 - Add missing function definition
diff --git a/dzgui.sh b/dzgui.sh
old mode 100644
new mode 100755
index 82a97d2..6f5f8d1
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -314,8 +314,8 @@ check_unmerged(){
 check_version(){
     local version_url=$(format_version_url)
     local upstream=$(curl -Ls "$version_url" | awk -F= '/^version=/ {print $2}')
-    #2024-12-12: do not clobber local version if unreachable
-    [[ -z $upstream ]] && return
+    local res=$(get_response_code "$version_url")
+    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$version_url'"
     logger INFO "Local branch: '$branch', local version: $version"
     if [[ $branch == "stable" ]]; then
         version_url="$stable_url/dzgui.sh"
@@ -377,11 +377,7 @@ dl_changelog(){
     local md
     [[ $branch == "stable" ]] && mdbranch="dzgui"
     [[ $branch == "testing" ]] && mdbranch="testing"
-    if [[ $remote_host == "gh" ]]; then
-        md="https://raw.githubusercontent.com/$author/$repo/${mdbranch}/CHANGELOG.md"
-    else
-        md="https://codeberg.org/$author/$repo/raw/branch/${mdbranch}/CHANGELOG.md"
-    fi
+    local md="$url_prefix/${mdbranch}/$file"
     curl -Ls "$md" > "$state_path/CHANGELOG.md"
 }
 test_display_mode(){
@@ -523,6 +519,7 @@ get_hash(){
     md5sum "$1" | awk '{print $1}'
 }
 fetch_a2s(){
+    # this file is currently monolithic
     [[ -d $helpers_path/a2s ]] && { logger INFO "A2S helper is current"; return 0; }
     local sha=c7590ffa9a6d0c6912e17ceeab15b832a1090640
     local author="yepoleb"
@@ -530,6 +527,8 @@ fetch_a2s(){
     local url="https://github.com/$author/$repo/tarball/$sha"
     local prefix="${author^}-$repo-${sha:0:7}"
     local file="$prefix.tar.gz"
+    local res=$(get_response_code "$url")
+    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$file'"
     curl -Ls "$url" > "$helpers_path/$file"
     tar xf "$helpers_path/$file" -C "$helpers_path" "$prefix/a2s" --strip=1
     rm "$helpers_path/$file"
@@ -546,6 +545,8 @@ fetch_dzq(){
     local author="yepoleb"
     local repo="dayzquery"
     local url="https://raw.githubusercontent.com/$author/$repo/$sha/dayzquery.py"
+    local res=$(get_response_code "$url")
+    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: 'dayzquery.py'"
     curl -Ls "$url" > "$file"
     logger INFO "Updated DZQ to sha '$sha'"
 }
@@ -580,11 +581,11 @@ fetch_helpers_by_sum(){
         ["ui.py"]="be3da1e542d14105f4358dd38901e25a"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="bfe629ed9481627317b49a8f9c6fad24"
+        ["funcs"]="2a27ab36d5f8071fe53bf8dfd3b8d88d"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
-    local repo="dzgui"
+    local repo="dztui"
     local realbranch
     local file
     local sum
@@ -615,6 +616,8 @@ fetch_helpers_by_sum(){
             logger INFO "$file is current"
         else
             logger WARN "File '$full_path' checksum != '$sum'"
+            local res=$(get_response_code "$url")
+            [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$url'"
             curl -Ls "$url" > "$full_path"
             if [[ ! $? -eq 0 ]]; then
                 raise_error_and_quit "Failed to fetch the file '$file'. Possible timeout?"
@@ -635,11 +638,15 @@ fetch_geo_file(){
     local km_sum="b038fdb8f655798207bd28de3a004706"
     local gzip="$helpers_path/ips.csv.gz"
     if [[ ! -f $geo_file  ]] || [[ $(get_hash $geo_file) != $geo_sum ]]; then
+        local res=$(get_response_code "$geo_file_url")
+        [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$geo_file_url'"
         curl -Ls "$geo_file_url" > "$gzip"
         #force overwrite
         gunzip -f "$gzip"
     fi
     if [[ ! -f $km_helper ]] || [[ $(get_hash $km_helper) != $km_sum ]]; then
+        local res=$(get_response_code "$km_helper_url")
+        [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$km_helper_url'"
         curl -Ls "$km_helper_url" > "$km_helper"
         chmod +x "$km_helper"
     fi
@@ -887,10 +894,11 @@ test_connection(){
         res=$(get_response_code "${hr["codeberg.org"]}")
         [[ $res -ne 200 ]] && raise_error_and_quit "$str (${hr["codeberg.org"]})"
     fi
+    logger INFO "Set remote host to '${hr["codeberg.org"]}'"
+    remote_host=cb
     if [[ $remote_host == "cb" ]]; then
         url_prefix="https://codeberg.org/$author/$repo/raw/branch"
         releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
-        # 2024-12-12: interpolate variables again
         stable_url="$url_prefix/dzgui"
         testing_url="$url_prefix/testing"
         km_helper_url="$releases_url/latlon"
diff --git a/helpers/funcs b/helpers/funcs
index 8e06c1a..3681c01 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -70,18 +70,12 @@ game_dir="$steam_path/steamapps/common/DayZ"
 #URLS
 author="aclist"
 repo="dztui"
-#TODO: this is hardcoded
-#2024-12-12
 gh_prefix="https://github.com"
 issues_url="$gh_prefix/$author/$repo/issues"
-url_prefix="https://codeberg.org/$author/$repo/raw/branch"
+url_prefix="https://raw.githubusercontent.com/$author/$repo"
 stable_url="$url_prefix/dzgui"
 testing_url="$url_prefix/testing"
-releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
-km_helper_url="$releases_url/latlon"
-db_file="$releases_url/ips.csv.gz"
-sums_url="$stable_url/helpers/sums.md5"
-#TODO: move adoc to index
+releases_url="$gh_prefix/$author/$repo/releases/download/browser"
 help_url="https://$author.github.io/dzgui/dzgui"
 forum_url="$gh_prefix/$author/$repo/discussions"
 sponsor_url="$gh_prefix/sponsors/$author"
@@ -829,7 +823,40 @@ format_version_url(){
     esac
     echo "$version_url"
 }
+get_response_code(){
+    local url="$1"
+    curl -Ls -I -o /dev/null -w "%{http_code}" "$url"
+}
+test_connection(){
+    source "$config_file"
+    declare -A hr
+    local res1
+    local res2
+    local str="No connection could be established to the remote server"
+    hr=(
+        ["github.com"]="https://github.com/$author"
+        ["codeberg.org"]="https://codeberg.org/$author"
+    )
+    res=$(get_response_code "${hr["github.com"]}")
+    if [[ $res -ne 200 ]]; then
+        logger WARN "Remote host '${hr["github.com"]}' unreachable', trying fallback"
+        remote_host=cb
+        res=$(get_response_code "${hr["codeberg.org"]}")
+        if [[ $res -ne 200 ]]; then
+            printf "Failed to fetch new version. Rolling back"
+            return 1
+        fi
+    fi
+    logger INFO "Set remote host to '${hr["codeberg.org"]}'"
+    if [[ $remote_host == "cb" ]]; then
+        url_prefix="https://codeberg.org/$author/$repo/raw/branch"
+        releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
+        stable_url="$url_prefix/dzgui"
+        testing_url="$url_prefix/testing"
+    fi
+}
 download_new_version(){
+    test_connection
     local version_url="$(format_version_url)"
     mv "$src_path" "$src_path.old"
     curl -Ls "$version_url" > "$src_path"
@@ -854,9 +881,7 @@ dl_changelog(){
     local file="CHANGELOG.md"
     [[ $branch == "stable" ]] && mdbranch="dzgui"
     [[ $branch == "testing" ]] && mdbranch="testing"
-    #TODO: this is hardcoded
-    #2024-12-12
-    local md="https://codeberg.org/$author/$repo/raw/branch/${mdbranch}/$file"
+    local md="$url_prefix/${mdbranch}/$file"
     curl -Ls "$md" > "$state_path/$file"
 }
 toggle(){

From d4d0593927678da56e797191af2e4f23618e45a1 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Fri, 13 Dec 2024 09:49:39 +0900
Subject: [PATCH 59/99] fix: add fallback logic to installscript

---
 install.sh | 47 ++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 40 insertions(+), 7 deletions(-)
 mode change 100644 => 100755 install.sh

diff --git a/install.sh b/install.sh
old mode 100644
new mode 100755
index 22ec6ab..13f96cc
--- a/install.sh
+++ b/install.sh
@@ -1,8 +1,41 @@
 #!/usr/bin/env bash
-curl -L "https://codeberg.org/aclist/dzgui/raw/branch/dzgui/dzgui.sh" > dzgui.sh
-chmod +x dzgui.sh
-xdg_file="$HOME/.local/share/applications/dzgui.desktop"
-share="$HOME/.local/share/dzgui"
-[[ -f $xdg_file ]] && rm $xdg_file
-[[ -d $share ]] && rm -rf "$share"
-./dzgui.sh
+get_response_code(){
+    local url="$1"
+    curl -Ls -I -o /dev/null -w "%{http_code}" "$url"
+}
+abort(){
+    printf "Remote resource not available. Try again later.\n"
+    exit 1
+}
+fetch(){
+    local file="dzgui.sh"
+    local author="aclist"
+    local repo="dztui"
+    local branch="dzgui"
+    local url
+    local res
+    gh_url="https://raw.githubusercontent.com/$author/$repo/$branch/$file"
+    cb_url="https://codeberg.org/$author/$repo/raw/branch/$branch/$file"
+
+    url="$gh_url"
+    printf "Checking the remote resource at '%s'\n" "$url"
+    res=$(get_response_code "$url")
+    if [[ $res -ne 200 ]]; then
+        url="$cb_url"
+        printf "Checking the remote resource at '%s'\n" "$url"
+        res=$(get_response_code "$url")
+        if [[ $res -ne 200 ]]; then
+            abort
+        fi
+    fi
+
+    curl -L "$url" > dzgui.sh
+    chmod +x dzgui.sh
+    xdg_file="$HOME/.local/share/applications/dzgui.desktop"
+    share="$HOME/.local/share/dzgui"
+    [[ -f $xdg_file ]] && rm $xdg_file
+    [[ -d $share ]] && rm -rf "$share"
+    ./dzgui.sh
+}
+
+fetch

From 5d6cbaa1a5c8b7e79de64d9ad6fb720c97df89e4 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Fri, 13 Dec 2024 09:51:31 +0900
Subject: [PATCH 60/99] chore: bump version

---
 dzgui.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dzgui.sh b/dzgui.sh
index 6f5f8d1..b5af209 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.15
+version=5.6.0-beta.16
 
 #CONSTANTS
 aid=221100

From 4da78d33f350dc8fd364c0c285d7fd4acd2f2616 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Fri, 13 Dec 2024 09:58:44 +0900
Subject: [PATCH 61/99] fix: clean up URLs

---
 dzgui.sh | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index b5af209..a92e175 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -606,11 +606,7 @@ fetch_helpers_by_sum(){
         sum="${sums[$i]}"
         full_path="$helpers_path/$file"
 
-        if [[ $remote_host == "gh" ]]; then
-            url="https://raw.githubusercontent.com/$author/$repo/$realbranch/helpers/$file"
-        else
-            url="https://codeberg.org/$author/$repo/raw/branch/$realbranch/helpers/$file"
-        fi
+        url="${url_prefix}/$realbranch/helpers/$file"
 
         if [[ -f "$full_path" ]] && [[ $(get_hash "$full_path") == $sum ]]; then
             logger INFO "$file is current"
@@ -895,7 +891,6 @@ test_connection(){
         [[ $res -ne 200 ]] && raise_error_and_quit "$str (${hr["codeberg.org"]})"
     fi
     logger INFO "Set remote host to '${hr["codeberg.org"]}'"
-    remote_host=cb
     if [[ $remote_host == "cb" ]]; then
         url_prefix="https://codeberg.org/$author/$repo/raw/branch"
         releases_url="https://codeberg.org/$author/$repo/releases/download/browser"

From 3fce2cc3ad710781029453da458d60ae6d45b9fe Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Fri, 13 Dec 2024 10:18:56 +0900
Subject: [PATCH 62/99] fix: return codes

---
 dzgui.sh      | 2 +-
 helpers/funcs | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index a92e175..07c06f8 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -581,7 +581,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="be3da1e542d14105f4358dd38901e25a"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="2a27ab36d5f8071fe53bf8dfd3b8d88d"
+        ["funcs"]="10c7d9cb9fbb792626ec9e7a4a788ba5"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 3681c01..82ab6ce 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -843,7 +843,6 @@ test_connection(){
         remote_host=cb
         res=$(get_response_code "${hr["codeberg.org"]}")
         if [[ $res -ne 200 ]]; then
-            printf "Failed to fetch new version. Rolling back"
             return 1
         fi
     fi
@@ -857,6 +856,12 @@ test_connection(){
 }
 download_new_version(){
     test_connection
+    rc=$?
+    if [[ $rc -eq 1 ]]; then
+        printf "Remote resource unavailable. Aborting"
+        logger WARN "Remote resource unavailable"
+        return 1
+    fi
     local version_url="$(format_version_url)"
     mv "$src_path" "$src_path.old"
     curl -Ls "$version_url" > "$src_path"
@@ -896,6 +901,7 @@ toggle(){
             fi
             update_config
             download_new_version
+            [[ $? -eq 1 ]] && return 1
             return 255
             ;;
         Toggle[[:space:]]mod[[:space:]]install[[:space:]]mode)

From 6b48ee127ddee2ad4844345122b749172de696a4 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Fri, 13 Dec 2024 10:45:39 +0900
Subject: [PATCH 63/99] chore: backports into stable

---
 CHANGELOG.md  |  6 ++++++
 dzgui.sh      | 37 ++++++++++++++++++-----------------
 helpers/funcs | 53 +++++++++++++++++++++++++++++++++++++++++----------
 install.sh    | 47 ++++++++++++++++++++++++++++++++++++++-------
 4 files changed, 109 insertions(+), 34 deletions(-)
 mode change 100644 => 100755 install.sh

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b7156b8..67c7234 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## [5.5.3] 2024-12-13
+### Fixed
+- Add remote resource health checks before downloading updates
+### Added
+- Add fallback repository
+
 ## [5.5.1] 2024-12-03
 ### Fixed
 - Support localized decimal separators when parsing installed mod sizes
diff --git a/dzgui.sh b/dzgui.sh
index 144f874..a9afd95 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.5.2
+version=5.5.3
 
 #CONSTANTS
 aid=221100
@@ -314,8 +314,8 @@ check_unmerged(){
 check_version(){
     local version_url=$(format_version_url)
     local upstream=$(curl -Ls "$version_url" | awk -F= '/^version=/ {print $2}')
-    #2024-12-12: do not clobber local version if unreachable
-    [[ -z $upstream ]] && return
+    local res=$(get_response_code "$version_url")
+    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$version_url'"
     logger INFO "Local branch: '$branch', local version: $version"
     if [[ $branch == "stable" ]]; then
         version_url="$stable_url/dzgui.sh"
@@ -377,11 +377,7 @@ dl_changelog(){
     local md
     [[ $branch == "stable" ]] && mdbranch="dzgui"
     [[ $branch == "testing" ]] && mdbranch="testing"
-    if [[ $remote_host == "gh" ]]; then
-        md="https://raw.githubusercontent.com/$author/$repo/${mdbranch}/CHANGELOG.md"
-    else
-        md="https://codeberg.org/$author/$repo/raw/branch/${mdbranch}/CHANGELOG.md"
-    fi
+    local md="$url_prefix/${mdbranch}/$file"
     curl -Ls "$md" > "$state_path/CHANGELOG.md"
 }
 test_display_mode(){
@@ -523,6 +519,7 @@ get_hash(){
     md5sum "$1" | awk '{print $1}'
 }
 fetch_a2s(){
+    # this file is currently monolithic
     [[ -d $helpers_path/a2s ]] && { logger INFO "A2S helper is current"; return 0; }
     local sha=c7590ffa9a6d0c6912e17ceeab15b832a1090640
     local author="yepoleb"
@@ -530,6 +527,8 @@ fetch_a2s(){
     local url="https://github.com/$author/$repo/tarball/$sha"
     local prefix="${author^}-$repo-${sha:0:7}"
     local file="$prefix.tar.gz"
+    local res=$(get_response_code "$url")
+    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$file'"
     curl -Ls "$url" > "$helpers_path/$file"
     tar xf "$helpers_path/$file" -C "$helpers_path" "$prefix/a2s" --strip=1
     rm "$helpers_path/$file"
@@ -546,6 +545,8 @@ fetch_dzq(){
     local author="yepoleb"
     local repo="dayzquery"
     local url="https://raw.githubusercontent.com/$author/$repo/$sha/dayzquery.py"
+    local res=$(get_response_code "$url")
+    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: 'dayzquery.py'"
     curl -Ls "$url" > "$file"
     logger INFO "Updated DZQ to sha '$sha'"
 }
@@ -577,14 +578,14 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="be3da1e542d14105f4358dd38901e25a"
+        ["ui.py"]="dd7aa34df1d374739127cca3033a3f67"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="8aa9eac96c21a3aabbf73c44b643523b"
+        ["funcs"]="6d985948a3b9b71017c4e0c5f7f55fe0"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
-    local repo="dzgui"
+    local repo="dztui"
     local realbranch
     local file
     local sum
@@ -605,16 +606,14 @@ fetch_helpers_by_sum(){
         sum="${sums[$i]}"
         full_path="$helpers_path/$file"
 
-        if [[ $remote_host == "gh" ]]; then
-            url="https://raw.githubusercontent.com/$author/$repo/$realbranch/helpers/$file"
-        else
-            url="https://codeberg.org/$author/$repo/raw/branch/$realbranch/helpers/$file"
-        fi
+        url="${url_prefix}/$realbranch/helpers/$file"
 
         if [[ -f "$full_path" ]] && [[ $(get_hash "$full_path") == $sum ]]; then
             logger INFO "$file is current"
         else
             logger WARN "File '$full_path' checksum != '$sum'"
+            local res=$(get_response_code "$url")
+            [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$url'"
             curl -Ls "$url" > "$full_path"
             if [[ ! $? -eq 0 ]]; then
                 raise_error_and_quit "Failed to fetch the file '$file'. Possible timeout?"
@@ -635,11 +634,15 @@ fetch_geo_file(){
     local km_sum="b038fdb8f655798207bd28de3a004706"
     local gzip="$helpers_path/ips.csv.gz"
     if [[ ! -f $geo_file  ]] || [[ $(get_hash $geo_file) != $geo_sum ]]; then
+        local res=$(get_response_code "$geo_file_url")
+        [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$geo_file_url'"
         curl -Ls "$geo_file_url" > "$gzip"
         #force overwrite
         gunzip -f "$gzip"
     fi
     if [[ ! -f $km_helper ]] || [[ $(get_hash $km_helper) != $km_sum ]]; then
+        local res=$(get_response_code "$km_helper_url")
+        [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$km_helper_url'"
         curl -Ls "$km_helper_url" > "$km_helper"
         chmod +x "$km_helper"
     fi
@@ -887,10 +890,10 @@ test_connection(){
         res=$(get_response_code "${hr["codeberg.org"]}")
         [[ $res -ne 200 ]] && raise_error_and_quit "$str (${hr["codeberg.org"]})"
     fi
+    logger INFO "Set remote host to '${hr["codeberg.org"]}'"
     if [[ $remote_host == "cb" ]]; then
         url_prefix="https://codeberg.org/$author/$repo/raw/branch"
         releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
-        # 2024-12-12: interpolate variables again
         stable_url="$url_prefix/dzgui"
         testing_url="$url_prefix/testing"
         km_helper_url="$releases_url/latlon"
diff --git a/helpers/funcs b/helpers/funcs
index 2f5875d..e8b9322 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -67,18 +67,12 @@ game_dir="$steam_path/steamapps/common/DayZ"
 #URLS
 author="aclist"
 repo="dztui"
-#TODO: this is hardcoded
-#2024-12-12
 gh_prefix="https://github.com"
 issues_url="$gh_prefix/$author/$repo/issues"
-url_prefix="https://codeberg.org/$author/$repo/raw/branch"
+url_prefix="https://raw.githubusercontent.com/$author/$repo"
 stable_url="$url_prefix/dzgui"
 testing_url="$url_prefix/testing"
-releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
-km_helper_url="$releases_url/latlon"
-db_file="$releases_url/ips.csv.gz"
-sums_url="$stable_url/helpers/sums.md5"
-#TODO: move adoc to index
+releases_url="$gh_prefix/$author/$repo/releases/download/browser"
 help_url="https://$author.github.io/dzgui/dzgui"
 forum_url="$gh_prefix/$author/$repo/discussions"
 sponsor_url="$gh_prefix/sponsors/$author"
@@ -750,7 +744,45 @@ format_version_url(){
     esac
     echo "$version_url"
 }
+get_response_code(){
+    local url="$1"
+    curl -Ls -I -o /dev/null -w "%{http_code}" "$url"
+}
+test_connection(){
+    source "$config_file"
+    declare -A hr
+    local res1
+    local res2
+    local str="No connection could be established to the remote server"
+    hr=(
+        ["github.com"]="https://github.com/$author"
+        ["codeberg.org"]="https://codeberg.org/$author"
+    )
+    res=$(get_response_code "${hr["github.com"]}")
+    if [[ $res -ne 200 ]]; then
+        logger WARN "Remote host '${hr["github.com"]}' unreachable', trying fallback"
+        remote_host=cb
+        res=$(get_response_code "${hr["codeberg.org"]}")
+        if [[ $res -ne 200 ]]; then
+            return 1
+        fi
+    fi
+    logger INFO "Set remote host to '${hr["codeberg.org"]}'"
+    if [[ $remote_host == "cb" ]]; then
+        url_prefix="https://codeberg.org/$author/$repo/raw/branch"
+        releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
+        stable_url="$url_prefix/dzgui"
+        testing_url="$url_prefix/testing"
+    fi
+}
 download_new_version(){
+    test_connection
+    rc=$?
+    if [[ $rc -eq 1 ]]; then
+        printf "Remote resource unavailable. Aborting"
+        logger WARN "Remote resource unavailable"
+        return 1
+    fi
     local version_url="$(format_version_url)"
     mv "$src_path" "$src_path.old"
     curl -Ls "$version_url" > "$src_path"
@@ -775,7 +807,7 @@ dl_changelog(){
     local file="CHANGELOG.md"
     [[ $branch == "stable" ]] && mdbranch="dzgui"
     [[ $branch == "testing" ]] && mdbranch="testing"
-    local md="https://codeberg.org/$author/$repo/raw/branch/${mdbranch}/$file"
+    local md="$url_prefix/${mdbranch}/$file"
     curl -Ls "$md" > "$state_path/$file"
 }
 toggle(){
@@ -790,6 +822,7 @@ toggle(){
             fi
             update_config
             download_new_version
+            [[ $? -eq 1 ]] && return 1
             return 255
             ;;
         Toggle[[:space:]]mod[[:space:]]install[[:space:]]mode)
@@ -853,7 +886,7 @@ remove_from_favs(){
             break
         fi
     done
-    if [[ ${#ip_list} -gt 0 ]]; then
+    if [[ ${#ip_list[@]} -gt 0 ]]; then
         readarray -t ip_list < <(printf "%s\n" "${ip_list[@]}")
     fi
     update_config
diff --git a/install.sh b/install.sh
old mode 100644
new mode 100755
index 22ec6ab..13f96cc
--- a/install.sh
+++ b/install.sh
@@ -1,8 +1,41 @@
 #!/usr/bin/env bash
-curl -L "https://codeberg.org/aclist/dzgui/raw/branch/dzgui/dzgui.sh" > dzgui.sh
-chmod +x dzgui.sh
-xdg_file="$HOME/.local/share/applications/dzgui.desktop"
-share="$HOME/.local/share/dzgui"
-[[ -f $xdg_file ]] && rm $xdg_file
-[[ -d $share ]] && rm -rf "$share"
-./dzgui.sh
+get_response_code(){
+    local url="$1"
+    curl -Ls -I -o /dev/null -w "%{http_code}" "$url"
+}
+abort(){
+    printf "Remote resource not available. Try again later.\n"
+    exit 1
+}
+fetch(){
+    local file="dzgui.sh"
+    local author="aclist"
+    local repo="dztui"
+    local branch="dzgui"
+    local url
+    local res
+    gh_url="https://raw.githubusercontent.com/$author/$repo/$branch/$file"
+    cb_url="https://codeberg.org/$author/$repo/raw/branch/$branch/$file"
+
+    url="$gh_url"
+    printf "Checking the remote resource at '%s'\n" "$url"
+    res=$(get_response_code "$url")
+    if [[ $res -ne 200 ]]; then
+        url="$cb_url"
+        printf "Checking the remote resource at '%s'\n" "$url"
+        res=$(get_response_code "$url")
+        if [[ $res -ne 200 ]]; then
+            abort
+        fi
+    fi
+
+    curl -L "$url" > dzgui.sh
+    chmod +x dzgui.sh
+    xdg_file="$HOME/.local/share/applications/dzgui.desktop"
+    share="$HOME/.local/share/dzgui"
+    [[ -f $xdg_file ]] && rm $xdg_file
+    [[ -d $share ]] && rm -rf "$share"
+    ./dzgui.sh
+}
+
+fetch

From e6b5e40bb2bc5e30288f01e6922488de5001290d Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Sun, 15 Dec 2024 08:57:25 +0900
Subject: [PATCH 64/99] chore: add logging

---
 CHANGELOG.md  | 4 ++++
 dzgui.sh      | 6 +++---
 helpers/funcs | 6 ++++++
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6d02bc4..8caec7d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## [5.6.0-beta.17] 2024-12-14
+### Added
+- Additional logging
+
 ## [5.6.0-beta.16] 2024-12-13
 ### Fixed
 - Add remote resource health checks before downloading updates
diff --git a/dzgui.sh b/dzgui.sh
index 07c06f8..86c478e 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.16
+version=5.6.0-beta.17
 
 #CONSTANTS
 aid=221100
@@ -483,7 +483,7 @@ stale_symlinks(){
     local game_dir="$steam_path/steamapps/common/DayZ"
     for l in $(find "$game_dir" -xtype l); do
         logger DEBUG "Updating stale symlink '$l'"
-        unlink $l
+        unlink "$l"
     done
 }
 local_latlon(){
@@ -581,7 +581,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="be3da1e542d14105f4358dd38901e25a"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="10c7d9cb9fbb792626ec9e7a4a788ba5"
+        ["funcs"]="37897aa36bc2fb6286cee02c8bb07258"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 82ab6ce..22c6d44 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -1170,19 +1170,24 @@ compare(){
     echo "$diff"
 }
 legacy_symlinks(){
+    logger INFO "Removing legacy symlinks"
     for d in "$game_dir"/*; do
         if [[ $d =~ @[0-9]+-.+ ]]; then
+            logger INFO "Unlinking $d"
             unlink "$d"
         fi
     done
     readarray -t mod_dirs < <(find "$workshop_dir" -maxdepth 1 -mindepth 1 -type d)
+    logger INFO "Read local mods into array with length: ${#mod_dirs[@]}"
     [[ ${#mod_dirs[@]} -eq 0 ]] && return
+    logger INFO "Removing legacy encoding format"
     for d in "${mod_dirs[@]}"; do
         # suppress errors if mods are downloading at boot
         [[ ! -f "$d/meta.cpp" ]] && continue
         local id=$(awk -F"= " '/publishedid/ {print $2}' "$d"/meta.cpp | awk -F\; '{print $1}')
         local encoded_id=$(echo "$id" | awk '{printf("%c",$1)}' | base64 | sed 's/\//_/g; s/=//g; s/+/]/g')
         if [[ -h "$game_dir/@$encoded_id" ]]; then
+            logger INFO "Unlinking $game_dir/@$encoded_id"
             unlink "$game_dir/@$encoded_id"
         fi
     done
@@ -1190,6 +1195,7 @@ legacy_symlinks(){
 symlinks(){
     readarray -t mod_dirs < <(find "$workshop_dir" -maxdepth 1 -mindepth 1 -type d)
     [[ ${#mod_dirs[@]} -eq 0 ]] && return
+    logger INFO "Generating symlinks in new format"
     for d in "${mod_dirs[@]}"; do
         # suppress errors if mods are downloading at boot
         [[ ! -f "$d/meta.cpp" ]] && continue

From 4d3d9bf0bb09f9ecb2af5fe46ee7ecfe5205bbbc Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Sun, 15 Dec 2024 09:08:35 +0900
Subject: [PATCH 65/99] feat: open workshop subscriptions

---
 CHANGELOG.md  |  4 ++++
 dzgui.sh      |  4 ++--
 helpers/funcs | 21 ++++++++++++++++++
 helpers/ui.py | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 88 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8caec7d..71c19b2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## [5.6.0-beta.18] 2024-12-14
+### Added
+- Open Steam workshop subscriptions
+
 ## [5.6.0-beta.17] 2024-12-14
 ### Added
 - Additional logging
diff --git a/dzgui.sh b/dzgui.sh
index 86c478e..ff58bfe 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -578,10 +578,10 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="be3da1e542d14105f4358dd38901e25a"
+        ["ui.py"]="24d0525e71c0725a1487926fae7330e4"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="37897aa36bc2fb6286cee02c8bb07258"
+        ["funcs"]="4c1480fcfae15c4bc1c02a337d1de488"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 22c6d44..1bf3d1a 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -104,6 +104,7 @@ declare -A funcs=(
 ["Connect by IP"]="validate_and_connect"
 ["Connect by ID"]="validate_and_connect"
 ["Connect from table"]="connect_from_table"
+["find_id"]="find_id"
 ["toggle"]="toggle"
 ["Open link"]="open_link"
 ["filter"]="dump_servers"
@@ -121,6 +122,7 @@ declare -A funcs=(
 ["is_in_favs"]="is_in_favs"
 ["show_log"]="show_log"
 ["Output system info to log file"]="generate_log"
+["open_user_workshop"]="open_user_workshop"
 ["open_workshop_page"]="open_workshop_page"
 ["Add to my servers"]="update_favs_from_table"
 ["Remove from my servers"]="update_favs_from_table"
@@ -332,6 +334,19 @@ is_in_favs(){
     done
     return 1
 }
+find_id(){
+    local file="$default_steam_path/config/loginusers.vdf"
+    [[ ! -f $file ]] && return 1
+    local res=$(python3 $HOME/.local/share/dzgui/helpers/vdf2json.py \
+    -i "$file" | jq -r '.users
+        |to_entries[]
+        |select(.value.MostRecent=="1")
+        |.key'
+    )
+    [[ -z $res ]] && return 1
+    printf "%s" "$res"
+    return 0
+}
 list_mods(){
     local symlink
     local sep
@@ -1051,6 +1066,12 @@ update_config_val(){
 show_log(){
     < "$debug_log" sed 's/Keyword␞/Keyword/'
 }
+open_user_workshop(){
+    shift
+    local id="$1"
+    url="https://steamcommunity.com/profiles/$id/myworkshopfiles/?appid=$aid&browsefilter=mysubscriptions"
+    $steam_cmd steam://openurl/$url &
+}
 open_workshop_page(){
     shift
     local id="$1"
diff --git a/helpers/ui.py b/helpers/ui.py
index b5f01c0..d741ee0 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -215,6 +215,7 @@ class RowType(EnumWithAttrs):
             "label": "Toggle mod install mode",
             "tooltip": "Switch between manual and auto mod installation",
             "default": "manual",
+            "link_label": "Open Steam Workshop",
             "alt": "auto",
             "val": "auto_install"
             }
@@ -756,6 +757,29 @@ def process_tree_option(input, treeview):
             case RowType.TGL_BRANCH:
                 wait_msg = "Updating DZGUI branch"
                 call_on_thread(False, "toggle", wait_msg, cmd_string)
+            case RowType.TGL_INSTALL:
+                if query_config(None, "auto_install")[0] == "1":
+                    proc = call_out(transient_parent, "toggle", cmd_string)
+                    grid.update_right_statusbar()
+                    tooltip = format_metadata(command.dict["label"])
+                    transient_parent.grid.update_statusbar(tooltip)
+                    return
+                # manual -> auto mode
+                proc = call_out(transient_parent, "find_id", "")
+                if proc.returncode == 1:
+                    link=None
+                    uid=None
+                else:
+                    link=command.dict["link_label"]
+                    uid=proc.stdout
+                manual_sub_msg = """\
+                    When switching from MANUAL to AUTO mod install mode,
+                    DZGUI will manage mod installation and deletion for you.
+                    To prevent conflicts with Steam Workshop subscriptions and old mods from being downloaded
+                    when Steam updates, you should unsubscribe from any existing Workshop mods you manually subscribed to.
+                    Open your Profile > Workshop Items and select 'Unsubscribe from all'
+                    on the right-hand side, then click OK below to enable AUTO mod install mode."""
+                LinkDialog(transient_parent, textwrap.dedent(manual_sub_msg), Popup.NOTIFY, link, command, uid)
             case _:
                 proc = call_out(transient_parent, "toggle", cmd_string)
                 grid.update_right_statusbar()
@@ -2205,6 +2229,43 @@ class ModDialog(GenericDialog):
         subprocess.Popen(['/usr/bin/env', 'bash', funcs, "open_workshop_page", mod_id])
 
 
+class LinkDialog(GenericDialog):
+    def __init__(self, parent, text, mode, link, command, uid=None):
+        super().__init__(parent, text, mode)
+
+        self.dialog = GenericDialog(parent, text, mode)
+        self.dialogBox = self.dialog.get_content_area()
+        self.dialog.set_default_response(Gtk.ResponseType.OK)
+        self.dialog.set_size_request(500, 0)
+
+        if link is not None:
+            button = Gtk.Button(label=link)
+            button.set_margin_start(60)
+            button.set_margin_end(60)
+            button.connect("clicked", self._on_button_clicked, uid)
+            self.dialogBox.pack_end(button, False, False, 0)
+
+        self.dialog.show_all()
+        self.dialog.connect("response", self._on_dialog_response, parent, command)
+
+    def _on_button_clicked(self, button, uid):
+        label = button.get_label()
+        subprocess.Popen(['/usr/bin/env', 'bash', funcs, "open_user_workshop", uid])
+
+    def _on_dialog_response(self, dialog, resp, parent, command):
+        match resp:
+            case Gtk.ResponseType.DELETE_EVENT:
+                return
+            case Gtk.ResponseType.OK:
+                self.dialog.destroy()
+                proc = call_out(parent, "toggle", command.dict["label"])
+                parent.grid.update_right_statusbar()
+                tooltip = format_metadata(command.dict["label"])
+                parent.grid.update_statusbar(tooltip)
+
+
+
+
 class EntryDialog(GenericDialog):
     def __init__(self, parent, text, mode, link):
         super().__init__(parent, text, mode)

From 34b3d3bc8cec5b20e66273f17c5ba11ff68afa9e Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 16 Dec 2024 14:49:55 +0900
Subject: [PATCH 66/99] chore: drop unused var

---
 dzgui.sh      | 2 +-
 helpers/ui.py | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index ff58bfe..a7aabc6 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -578,7 +578,7 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="24d0525e71c0725a1487926fae7330e4"
+        ["ui.py"]="0e3845ef150ee9863f9160c62dbb24f9"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
         ["funcs"]="4c1480fcfae15c4bc1c02a337d1de488"
diff --git a/helpers/ui.py b/helpers/ui.py
index d741ee0..793d552 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -2249,7 +2249,6 @@ class LinkDialog(GenericDialog):
         self.dialog.connect("response", self._on_dialog_response, parent, command)
 
     def _on_button_clicked(self, button, uid):
-        label = button.get_label()
         subprocess.Popen(['/usr/bin/env', 'bash', funcs, "open_user_workshop", uid])
 
     def _on_dialog_response(self, dialog, resp, parent, command):

From 6e3746e9b499390ab21b072de0896b9d24a4e072 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 16 Dec 2024 15:21:57 +0900
Subject: [PATCH 67/99] fix: abort path discovery

---
 CHANGELOG.md  |  5 +++++
 dzgui.sh      |  6 +++---
 helpers/funcs | 12 ++++++++++--
 3 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 71c19b2..56e0f91 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,11 @@
 ## [5.6.0-beta.18] 2024-12-14
 ### Added
 - Open Steam workshop subscriptions
+### Fixed
+- Empty dialog popups if user manually deletes local mods while application is running
+- Abort DayZ path discovery if VDF if Steam files are not synched
+### Changed
+- Admonish user to restart Steam in error dialog if DayZ path could not be found
 
 ## [5.6.0-beta.17] 2024-12-14
 ### Added
diff --git a/dzgui.sh b/dzgui.sh
index a7aabc6..05d9cee 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -581,7 +581,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="0e3845ef150ee9863f9160c62dbb24f9"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="4c1480fcfae15c4bc1c02a337d1de488"
+        ["funcs"]="a9745fa5cc2f007bddf0d30032845fbd"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
@@ -747,7 +747,7 @@ find_library_folder(){
     local search_path="$1"
     steam_path="$(python3 "$helpers_path/vdf2json.py" -i "$1/steamapps/libraryfolders.vdf" \
         | jq -r '.libraryfolders[]|select(.apps|has("221100")).path')"
-    if [[ ! $? -eq 0 ]]; then
+    if [[ ! $? -eq 0 ]] || [[ -z $steam_path ]]; then
         logger WARN "Failed to parse Steam path using '$search_path'"
         return 1
     fi
@@ -800,7 +800,7 @@ create_config(){
             find_library_folder "$default_steam_path"
             if [[ -z $steam_path ]]; then
                 logger raise_error "Steam path was empty"
-                zenity --question --text="DayZ not found or not installed at the Steam library given." --ok-label="Choose path manually" --cancel-label="Exit"
+                zenity --question --text="DayZ not found or not installed at the Steam library given. NOTE: if you recently installed DayZ or moved its location, you MUST restart Steam first for these changes to synch." --ok-label="Choose path manually" --cancel-label="Exit"
                 if [[ $? -eq 0 ]]; then
                     logger INFO "User selected file picker"
                     file_picker
diff --git a/helpers/funcs b/helpers/funcs
index 1bf3d1a..88bc082 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -353,12 +353,13 @@ list_mods(){
     local name
     local base_dir
     local size
+    local mods
     if [[ -z $(installed_mods) ]] || [[ -z $(find $workshop_dir -maxdepth 2 -name "*.cpp" | grep .cpp) ]]; then
         printf "No mods currently installed or incorrect path set."
         logger WARN "Found no locally installed mods"
         return 1
     else
-        for dir in $(find $game_dir/* -maxdepth 1 -type l); do
+        mods=$(for dir in $(find $game_dir/* -maxdepth 1 -type l); do
             symlink=$(basename $dir)
             sep="␞"
             name=$(awk -F\" '/name/ {print $2}' "${dir}/meta.cpp")
@@ -366,7 +367,14 @@ list_mods(){
             size=$(du -s "$(readlink -f "$game_dir/$symlink")" | awk '{print $1}')
             size=$(python3 -c "n=($size/1024) +.005; print(round(n,4))")
             LC_NUMERIC=C printf "%s$sep%s$sep%s$sep%3.3f\n" "$name" "$symlink" "$base_dir" "$size"
-        done | sort -k1
+        done | sort -k1)
+        # user may have manually pruned mods out-of-band
+        # handle directory detritus but no actual mods
+        if [[ -z $mods ]]; then
+            printf "No mods currently installed or incorrect path set."
+            return 1
+        fi
+        echo "$mods"
     fi
 }
 installed_mods(){

From c73120295ac42eb0c0efa950c1ccfe7f2336d695 Mon Sep 17 00:00:00 2001
From: jiriks74 <jiri@stefka.eu>
Date: Mon, 9 Dec 2024 14:56:51 +0100
Subject: [PATCH 68/99] fix(checks): Check `vm.max_map_count` using `cat`

This solves multiple issues:
- We don't need `sudo` to check the value anymore
- Some systems may not have `sysctl` available
  - IDK about desktops, but my Debian server doesn't have this command
  (for whatever reason)
---
 dzgui.sh | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 2a8d4e2..c02fa2f 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -402,13 +402,20 @@ check_architecture(){
 }
 check_map_count(){
     [[ $is_steam_deck -gt 0 ]] && return 0
-    local count=1048576
+    local map_count_file="/proc/sys/vm/max_map_count"
+    local min_count=1048576
     local conf_file="/etc/sysctl.d/dayz.conf"
-    if [[ -f $conf_file ]]; then
-        logger DEBUG "System map count is already $count or higher"
+    local current_count
+    if [[ ! -f ${map_count_file} ]]; then
+        logger WARN "File '${map_count_file}' doesn't exist!"
+        return 1
+    fi
+    current_count=$(cat ${map_count_file})
+    if [[ $current_count -ge $min_count ]]; then
+        logger DEBUG "System map count is set to ${current_count}"
         return 0
     fi
-    qdialog "sudo password required to check system vm map count." "OK" "Cancel"
+    qdialog "sudo password required to set system vm map count." "OK" "Cancel"
     if [[ $? -eq 0 ]]; then
         local pass
         logger INFO "Prompting user for sudo escalation"
@@ -417,13 +424,11 @@ check_map_count(){
             logger WARN "User aborted password prompt"
             return 1
         fi
-        local ct=$(sudo -S <<< "$pass" sh -c "sysctl -q vm.max_map_count | awk -F'= ' '{print \$2}'")
-        logger DEBUG "Old map count is $ct"
-        local new_ct
-        [[ $ct -lt $count ]] && ct=$count
-        sudo -S <<< "$pass" sh -c "echo 'vm.max_map_count=$ct' > $conf_file"
+        logger DEBUG "Old map count is $current_count"
+        [[ $current_count -lt $min_count ]] && current_count=$min_count
+        sudo -S <<< "$pass" sh -c "echo 'vm.max_map_count=${current_count}' > $conf_file"
         sudo sysctl -p "$conf_file"
-        logger DEBUG "Updated map count to $count"
+        logger DEBUG "Updated map count to $min_count"
     else
         logger WARN "User aborted map count prompt"
         return 1

From a18d68776f0f45cbd999e1a23a518d37e58a2dfa Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 18 Dec 2024 17:26:31 +0900
Subject: [PATCH 69/99] chore: add logging

---
 CHANGELOG.md  | 3 ++-
 dzgui.sh      | 4 ++--
 helpers/funcs | 7 +++++--
 helpers/ui.py | 2 --
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 56e0f91..0aaa350 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,8 @@
 
 ## [5.6.0-beta.18] 2024-12-14
 ### Added
-- Open Steam workshop subscriptions
+- Open Steam workshop subscriptions dialog
+- Additional logging
 ### Fixed
 - Empty dialog popups if user manually deletes local mods while application is running
 - Abort DayZ path discovery if VDF if Steam files are not synched
diff --git a/dzgui.sh b/dzgui.sh
index 05d9cee..ce0e203 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -578,10 +578,10 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="0e3845ef150ee9863f9160c62dbb24f9"
+        ["ui.py"]="99544ccef6060125509c4b689a808a15"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="a9745fa5cc2f007bddf0d30032845fbd"
+        ["funcs"]="98261fdba4323f77c6dd610c1efc4d11"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 88bc082..576b5c3 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -1202,7 +1202,7 @@ legacy_symlinks(){
     logger INFO "Removing legacy symlinks"
     for d in "$game_dir"/*; do
         if [[ $d =~ @[0-9]+-.+ ]]; then
-            logger INFO "Unlinking $d"
+            logger INFO "Unlinking '$d'"
             unlink "$d"
         fi
     done
@@ -1212,11 +1212,14 @@ legacy_symlinks(){
     logger INFO "Removing legacy encoding format"
     for d in "${mod_dirs[@]}"; do
         # suppress errors if mods are downloading at boot
+        logger INFO "Testing directory '$d'"
         [[ ! -f "$d/meta.cpp" ]] && continue
         local id=$(awk -F"= " '/publishedid/ {print $2}' "$d"/meta.cpp | awk -F\; '{print $1}')
+        logger INFO "Given id is '$id'"
         local encoded_id=$(echo "$id" | awk '{printf("%c",$1)}' | base64 | sed 's/\//_/g; s/=//g; s/+/]/g')
+        logger INFO "Resolved id is '$encoded_id'"
         if [[ -h "$game_dir/@$encoded_id" ]]; then
-            logger INFO "Unlinking $game_dir/@$encoded_id"
+            logger INFO "Unlinking '$game_dir/@$encoded_id'"
             unlink "$game_dir/@$encoded_id"
         fi
     done
diff --git a/helpers/ui.py b/helpers/ui.py
index 793d552..38abd1b 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -2263,8 +2263,6 @@ class LinkDialog(GenericDialog):
                 parent.grid.update_statusbar(tooltip)
 
 
-
-
 class EntryDialog(GenericDialog):
     def __init__(self, parent, text, mode, link):
         super().__init__(parent, text, mode)

From 99d964bf449bbee524d67cbe719350b6929b8a2a Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 18 Dec 2024 18:22:41 +0900
Subject: [PATCH 70/99] chore: bump version

---
 CHANGELOG.md | 1 +
 dzgui.sh     | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0aaa350..ea3c173 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@
 ### Fixed
 - Empty dialog popups if user manually deletes local mods while application is running
 - Abort DayZ path discovery if VDF if Steam files are not synched
+- Avoid sudo escalation if system map count is sufficient (jiriks74)
 ### Changed
 - Admonish user to restart Steam in error dialog if DayZ path could not be found
 
diff --git a/dzgui.sh b/dzgui.sh
index 15da90a..8136155 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.17
+version=5.6.0-beta.18
 
 #CONSTANTS
 aid=221100

From 4a953164122a3e55f51679ea82d1d404adf85502 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 18 Dec 2024 20:55:01 +0900
Subject: [PATCH 71/99] feat: redact usernames

---
 helpers/funcs | 1 +
 1 file changed, 1 insertion(+)

diff --git a/helpers/funcs b/helpers/funcs
index 576b5c3..99bc569 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -739,6 +739,7 @@ logger(){
     local self="${BASH_SOURCE[0]}"
     local caller="${FUNCNAME[1]}"
     local line="${BASH_LINENO[0]}"
+    self="$(<<< "$self" sed 's@\(/[^/]*/\)\([^/]*\)\(.*\)@\1REDACTED\3@g')"
     printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" >> "$debug_log"
 }
 test_ping(){

From 9b2ec79aa57ac41c9d5fa52b238b2d0c44b8fc97 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 18 Dec 2024 20:56:14 +0900
Subject: [PATCH 72/99] feat: redact usernames

---
 dzgui.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dzgui.sh b/dzgui.sh
index 8136155..0dd1df3 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -83,6 +83,7 @@ logger(){
     local self="${BASH_SOURCE[0]}"
     local caller="${FUNCNAME[1]}"
     local line="${BASH_LINENO[0]}"
+    self="$(<<< "$self" sed 's@\(/[^/]*/\)\([^/]*\)\(.*\)@\1REDACTED\3@g')"
     printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" >> "$debug_log"
 }
 setup_dirs(){

From bdea37ddc447860c084c2a725ed0f258766b9ef5 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 18 Dec 2024 20:57:09 +0900
Subject: [PATCH 73/99] chore: cleanup

---
 helpers/funcs | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/helpers/funcs b/helpers/funcs
index 99bc569..8450450 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -337,8 +337,9 @@ is_in_favs(){
 find_id(){
     local file="$default_steam_path/config/loginusers.vdf"
     [[ ! -f $file ]] && return 1
-    local res=$(python3 $HOME/.local/share/dzgui/helpers/vdf2json.py \
-    -i "$file" | jq -r '.users
+    local res=$(python3 "$helpers_path/vdf2json.py" \
+    -i "$file" \
+    | jq -r '.users
         |to_entries[]
         |select(.value.MostRecent=="1")
         |.key'

From 973e2dc100a5a82d803c735478285fcfe6732497 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 19 Dec 2024 10:21:44 +0900
Subject: [PATCH 74/99] fix: shorten symlink check time

---
 CHANGELOG.md  |  6 ++++++
 dzgui.sh      |  4 ++--
 helpers/funcs | 39 ++++++++++++++++-----------------------
 3 files changed, 24 insertions(+), 25 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ea3c173..ecfc1b3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## [5.6.0-beta.19] 2024-12-18
+### Added
+- Redact usernames in log files
+### Fixed
+- More performant symlink traversal when checking for legacy links
+
 ## [5.6.0-beta.18] 2024-12-14
 ### Added
 - Open Steam workshop subscriptions dialog
diff --git a/dzgui.sh b/dzgui.sh
index 0dd1df3..ac2de14 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.18
+version=5.6.0-beta.19
 
 #CONSTANTS
 aid=221100
@@ -587,7 +587,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="99544ccef6060125509c4b689a808a15"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="98261fdba4323f77c6dd610c1efc4d11"
+        ["funcs"]="05f104fcdf27222f04046d41ec48d692"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 8450450..5989793 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -1202,29 +1202,22 @@ compare(){
 }
 legacy_symlinks(){
     logger INFO "Removing legacy symlinks"
-    for d in "$game_dir"/*; do
-        if [[ $d =~ @[0-9]+-.+ ]]; then
-            logger INFO "Unlinking '$d'"
-            unlink "$d"
-        fi
-    done
-    readarray -t mod_dirs < <(find "$workshop_dir" -maxdepth 1 -mindepth 1 -type d)
-    logger INFO "Read local mods into array with length: ${#mod_dirs[@]}"
-    [[ ${#mod_dirs[@]} -eq 0 ]] && return
-    logger INFO "Removing legacy encoding format"
-    for d in "${mod_dirs[@]}"; do
-        # suppress errors if mods are downloading at boot
-        logger INFO "Testing directory '$d'"
-        [[ ! -f "$d/meta.cpp" ]] && continue
-        local id=$(awk -F"= " '/publishedid/ {print $2}' "$d"/meta.cpp | awk -F\; '{print $1}')
-        logger INFO "Given id is '$id'"
-        local encoded_id=$(echo "$id" | awk '{printf("%c",$1)}' | base64 | sed 's/\//_/g; s/=//g; s/+/]/g')
-        logger INFO "Resolved id is '$encoded_id'"
-        if [[ -h "$game_dir/@$encoded_id" ]]; then
-            logger INFO "Unlinking '$game_dir/@$encoded_id'"
-            unlink "$game_dir/@$encoded_id"
-        fi
-    done
+
+    readarray -t stale_mod_dirs1 < <(find "$workshop_dir" -maxdepth 1 -mindepth 1 -type l -name '@?*-*')
+    logger INFO "Read local mods into array 1 with length: ${#stale_mod_dirs[@]}"
+    if [[ ${#stale_mod_dirs1} -ne 0 ]]; then
+        for d in "${stale_mod_dirs1[@]}"; do
+            unlink "$game_dir/$d"
+        done
+    fi
+
+    readarray -t stale_mod_dirs2 < <(find "$workshop_dir" -maxdepth 1 -mindepth 1 -type l -name '@??')
+    logger INFO "Read local mods into array 2 with length: ${#stale_mod_dirs[@]}"
+    if [[ ${#stale_mod_dirs2} -eq 0 ]]; then
+        for d in "${stale_mod_dirs2[@]}"; do
+            unlink "$game_dir/$d"
+        done
+    fi
 }
 symlinks(){
     readarray -t mod_dirs < <(find "$workshop_dir" -maxdepth 1 -mindepth 1 -type d)

From 4e968e63e54cc333f399a74131a02d4b61343288 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 23 Dec 2024 20:58:21 +0900
Subject: [PATCH 75/99] fix: more performant link traversal

---
 CHANGELOG.md  |  8 ++++++
 dzgui.sh      |  9 ++++--
 helpers/funcs | 79 ++++++++++++++++++++++++++++++++++++++++-----------
 3 files changed, 77 insertions(+), 19 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ecfc1b3..14a1345 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
 # Changelog
 
+## [5.6.0-beta.20] 2024-12-23
+### Added
+- Output real and resolved mod ids to logs (temporary)
+- Added -steam launch parameter
+### Fixed
+- Only iterate on missing symlinks
+- Move logging up
+
 ## [5.6.0-beta.19] 2024-12-18
 ### Added
 - Redact usernames in log files
diff --git a/dzgui.sh b/dzgui.sh
index ac2de14..0d62f18 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.19
+version=5.6.0-beta.20
 
 #CONSTANTS
 aid=221100
@@ -587,7 +587,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="99544ccef6060125509c4b689a808a15"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="05f104fcdf27222f04046d41ec48d692"
+        ["funcs"]="6371f34f2040de5df82bc9064ad4d26d"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
@@ -893,10 +893,10 @@ test_connection(){
     if [[ $res -ne 200 ]]; then
         logger WARN "Remote host '${hr["github.com"]}' unreachable', trying fallback"
         remote_host=cb
+        logger INFO "Set remote host to '${hr["codeberg.org"]}'"
         res=$(get_response_code "${hr["codeberg.org"]}")
         [[ $res -ne 200 ]] && raise_error_and_quit "$str (${hr["codeberg.org"]})"
     fi
-    logger INFO "Set remote host to '${hr["codeberg.org"]}'"
     if [[ $remote_host == "cb" ]]; then
         url_prefix="https://codeberg.org/$author/$repo/raw/branch"
         releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
@@ -1004,6 +1004,9 @@ main(){
         uninstall &&
         exit 0
     fi
+    if [[ $1 == "--steam" ]] || [[ $1 == "-s" ]]; then
+        export STEAM_LAUNCH=1
+    fi
     
     set_im_module
 
diff --git a/helpers/funcs b/helpers/funcs
index 5989793..79e0953 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -29,6 +29,8 @@ prefix="dzg"
 log_path="$state_path/logs"
 debug_log="$log_path/DZGUI_DEBUG.log"
 system_log="$log_path/DZGUI_SYSTEM.log"
+mod_log="$log_path/DZGUI_MODIDS.log"
+meta_log="$log_path/DZGUI_META.log"
 
 #STATE FILES
 history_file="$state_path/$prefix.history"
@@ -866,12 +868,12 @@ test_connection(){
     if [[ $res -ne 200 ]]; then
         logger WARN "Remote host '${hr["github.com"]}' unreachable', trying fallback"
         remote_host=cb
+        logger INFO "Set remote host to '${hr["codeberg.org"]}'"
         res=$(get_response_code "${hr["codeberg.org"]}")
         if [[ $res -ne 200 ]]; then
             return 1
         fi
     fi
-    logger INFO "Set remote host to '${hr["codeberg.org"]}'"
     if [[ $remote_host == "cb" ]]; then
         url_prefix="https://codeberg.org/$author/$repo/raw/branch"
         releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
@@ -1165,6 +1167,12 @@ $(print_ip_list | sed 's/"//g')
 	Mods:
 $(list_mods | sed 's/^/\t/g')
 	DOC
+    #2024-12-13
+    find $workshop_dir -mindepth 1 -maxdepth 1 -type d | awk -F/ '{print $NF}' | sort > $mod_log
+    find $workshop_dir -mindepth 1 -name meta.cpp | while read -r line; do
+        cat "$line" | awk '/publishedid/ {print $3}' | sed 's/;//g;s/\r//g'
+    done | sort > $meta_log
+    #END
     printf "Wrote system log to %s" "$system_log"
     return 0
 }
@@ -1220,22 +1228,61 @@ legacy_symlinks(){
     fi
 }
 symlinks(){
-    readarray -t mod_dirs < <(find "$workshop_dir" -maxdepth 1 -mindepth 1 -type d)
-    [[ ${#mod_dirs[@]} -eq 0 ]] && return
-    logger INFO "Generating symlinks in new format"
-    for d in "${mod_dirs[@]}"; do
-        # suppress errors if mods are downloading at boot
-        [[ ! -f "$d/meta.cpp" ]] && continue
-        id=$(awk -F"= " '/publishedid/ {print $2}' "$d"/meta.cpp | awk -F\; '{print $1}')
-        encoded_id=$(encode "$id")
-        link="@$encoded_id"
-        if [[ -h "$game_dir/$link" ]]; then
-            logger INFO "Symlink already exists: '$link' for mod '$id'"
-            continue
+    _merge(){
+        comm -23 <(printf "%s\n" "${mods[@]}" | sort) <(printf "%s\n" "${targets[@]}" | sort)
+    }
+    _pulse(){
+        zenity --pulsate --progress --auto-close --no-cancel --title="DZGUI"
+    }
+    _create_links(){
+        local arr=("$@")
+        local encoded_id
+        local link
+        local mod
+        for ((i=0; i<${#arr[@]}; i++)); do
+            encoded_id=$(encode "${arr[$i]}")
+            link="@$encoded_id"
+            mod="${arr[$i]}"
+            logger INFO "Creating link '$game_dir/$link' for '$workshop_dir/$mod'"
+            [[ $STEAM_LAUNCH -eq 1 ]] && echo "# Creating mod link $((i+1))/${#arr[@]}"
+            ln -s "$workshop_dir/$mod" "$game_dir/$link"
+        done
+    }
+
+    readarray -t mods < <(find $workshop_dir -mindepth 1 -name meta.cpp | awk -F/ 'NF=NF-1{print $NF}')
+    readarray -t links < <(find $game_dir -type l)
+
+    if [[ ${#mods[@]} -eq 0 ]]; then
+        logger INFO "No mods present, aborting"
+        return
+    fi
+
+    if [[ ${#links[@]} -eq 0 ]]; then
+        logger INFO "No symlinks present in '$game_dir', creating them"
+        if [[ $STEAM_LAUNCH -eq 1 ]]; then
+            _create_links "${mods[@]}" > >(_pulse)
+        else
+            _create_links "${mods[@]}"
         fi
-        ln -fs "$d" "$game_dir/$link"
-        logger INFO "Created symlink '$link' for mod '$id'"
-    done
+        return
+    fi
+
+    readarray -t targets < <(printf "%s\n" "${links[@]}" | xargs readlink -f | awk -F/ '{print $NF}')
+    readarray -t hits < <(_merge)
+
+    if [[ ${#hits[@]} -eq 0 ]]; then
+        logger INFO "Symlinks are up to date, skipping"
+        return
+
+    fi
+
+    # update missing targets
+    logger INFO "Found ${#hits[@]} unlinked mods"
+    if [[ $STEAM_LAUNCH -eq 1 ]]; then
+        _create_links "${hits[@]}" > >(_pulse)
+    else
+        _create_links "${hits[@]}"
+    fi
 }
 update_history(){
     local record="$1"

From 3cd99911a61edfe51da64bc9ec1e62b2ffa30b5b Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 23 Dec 2024 21:00:18 +0900
Subject: [PATCH 76/99] chore: remove stray line

---
 dzgui.sh      | 2 +-
 helpers/funcs | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 0d62f18..a6181ac 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -587,7 +587,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="99544ccef6060125509c4b689a808a15"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="6371f34f2040de5df82bc9064ad4d26d"
+        ["funcs"]="16caf08919f25b44340ed37de7c4265c"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 79e0953..95c0a3f 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -1273,7 +1273,6 @@ symlinks(){
     if [[ ${#hits[@]} -eq 0 ]]; then
         logger INFO "Symlinks are up to date, skipping"
         return
-
     fi
 
     # update missing targets

From 3b5960cb16dffea6d7a19c4b01ebb3f8d6cdb902 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 23 Dec 2024 21:38:15 +0900
Subject: [PATCH 77/99] fix: enclose paths

---
 dzgui.sh      | 2 +-
 helpers/funcs | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index a6181ac..2d3b184 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -587,7 +587,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="99544ccef6060125509c4b689a808a15"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="16caf08919f25b44340ed37de7c4265c"
+        ["funcs"]="5d69e8e3d7c3b3c499354b0b939ce76b"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 95c0a3f..ea965b3 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -1168,10 +1168,10 @@ $(print_ip_list | sed 's/"//g')
 $(list_mods | sed 's/^/\t/g')
 	DOC
     #2024-12-13
-    find $workshop_dir -mindepth 1 -maxdepth 1 -type d | awk -F/ '{print $NF}' | sort > $mod_log
+    find $workshop_dir -mindepth 1 -maxdepth 1 -type d | awk -F/ '{print $NF}' | sort > "$mod_log"
     find $workshop_dir -mindepth 1 -name meta.cpp | while read -r line; do
         cat "$line" | awk '/publishedid/ {print $3}' | sed 's/;//g;s/\r//g'
-    done | sort > $meta_log
+    done | sort > "$meta_log"
     #END
     printf "Wrote system log to %s" "$system_log"
     return 0

From e5f7391b8965011dd90bbb0f843c727790b5a04b Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 25 Dec 2024 14:20:36 +0900
Subject: [PATCH 78/99] chore: add YAML file

---
 .github/workflows/mirror.yml | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 .github/workflows/mirror.yml

diff --git a/.github/workflows/mirror.yml b/.github/workflows/mirror.yml
new file mode 100644
index 0000000..6826de7
--- /dev/null
+++ b/.github/workflows/mirror.yml
@@ -0,0 +1,23 @@
+name: Mirror to Codeberg
+
+on:
+  push:
+    branches:
+      - main
+      - dzgui
+      - testing
+      - release/5.6.0-beta.20
+  workflow_dispatch:
+
+jobs:
+  mirror-to-codeberg:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+      - uses: pixta-dev/repository-mirroring-action@v1
+        if: ${{ vars.GIT_REMOTE != '' }}
+        with:
+          target_repo_url: ${{ vars.GIT_REMOTE }}
+          ssh_private_key: ${{ secrets.GIT_SSH_PRIVATE_KEY }}

From 8c33a1b371699a1898bd72e1e20097d6c7cea66b Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 25 Dec 2024 14:21:24 +0900
Subject: [PATCH 79/99] chore: drop branch logic

---
 .github/workflows/mirror.yml | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/.github/workflows/mirror.yml b/.github/workflows/mirror.yml
index 6826de7..b4cf79b 100644
--- a/.github/workflows/mirror.yml
+++ b/.github/workflows/mirror.yml
@@ -2,11 +2,6 @@ name: Mirror to Codeberg
 
 on:
   push:
-    branches:
-      - main
-      - dzgui
-      - testing
-      - release/5.6.0-beta.20
   workflow_dispatch:
 
 jobs:

From 8817a5db23c61d8d8ce58950fe2ca5fb2686ee74 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Wed, 25 Dec 2024 14:22:39 +0900
Subject: [PATCH 80/99] chore: add YAML file

---
 .github/workflows/mirror.yml | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
 create mode 100644 .github/workflows/mirror.yml

diff --git a/.github/workflows/mirror.yml b/.github/workflows/mirror.yml
new file mode 100644
index 0000000..b4cf79b
--- /dev/null
+++ b/.github/workflows/mirror.yml
@@ -0,0 +1,18 @@
+name: Mirror to Codeberg
+
+on:
+  push:
+  workflow_dispatch:
+
+jobs:
+  mirror-to-codeberg:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+      - uses: pixta-dev/repository-mirroring-action@v1
+        if: ${{ vars.GIT_REMOTE != '' }}
+        with:
+          target_repo_url: ${{ vars.GIT_REMOTE }}
+          ssh_private_key: ${{ secrets.GIT_SSH_PRIVATE_KEY }}

From 2158635e64eb58039622ec54dfb778d8274191ef Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 6 Jan 2025 17:04:12 +0900
Subject: [PATCH 81/99] chore: add gitignore

---
 .gitignore | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 .gitignore

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6e92f57
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+tags

From 5da4d16ed8fa5f2ff9cbcb945195f0835f257f80 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 6 Jan 2025 17:23:38 +0900
Subject: [PATCH 82/99] feat: add tooltips

---
 CHANGELOG.md  | 15 ++++++++++++
 README.md     | 17 ++++++++------
 dzgui.sh      |  6 ++---
 helpers/funcs | 23 ++++++++-----------
 helpers/ui.py | 63 +++++++++++++++++++++++++++++++--------------------
 5 files changed, 76 insertions(+), 48 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 14a1345..620e8f9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,20 @@
 # Changelog
 
+## [5.6.0-beta.21] 2024-01-06
+### Added
+- Add in-app documentation link to Codeberg mirror
+- Hover tooltips to most buttons
+### Fixed
+- Prevent ArrowUp/ArrowDown input when inside keyword field
+### Changed
+- Update forum URL
+- Reword Help section links to include destination
+- Update README.md
+### Dropped
+- Removed temporary mod ID output in debug logs
+- Removed Hall of Fame section from button links, moved inside documentation
+- Remove unused imports
+
 ## [5.6.0-beta.20] 2024-12-23
 ### Added
 - Output real and resolved mod ids to logs (temporary)
diff --git a/README.md b/README.md
index d6cf770..93f8559 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,19 @@
 ## What this is
-DZGUI allows you to connect to both official and modded/community DayZ servers on Linux and provides a graphical interface for doing so. This overcomes certain limitations in the Linux client and helps prepare the game to launch by doing the following:
+DZGUI allows you to connect to both official and modded/community DayZ servers on Linux and provides a graphical interface for doing so.
 
-1. Search for and display server metadata in a table (server name, player count, ping, current gametime, distance, IP)
+This overcomes certain limitations in the Linux client and helps prepare the game to launch by providing the following:
+
+1. Search for and display server metadata in a table (server name, player count, ping, queue size, current gametime, distance, IP)
 2. Add/delete/manage favorite servers by IP or ID
-3. Find and prepare mods being requested by the server (choose from manual or automatic installation)
-4. Concatenate launch options to pass to Steam
-
-Other options include the ability to connect by IP or ID or  set a favorite server.
+3. Quick-connect to favorite/recent servers
+4. Find and prepare mods being requested by servers (choose from manual or automatic installation)
+5. Bulk delete/update local mods
+6. Concatenate launch options to pass to Steam
+7. Connect to mod-enabled LAN servers
 
 ## Setup and usage
 
-Refer to the [manual](https://aclist.codeberg.page) for installation and setup instructions, a feature-by-feature breakdown, and Steam integration tutorials.
+Refer to the [manual](https://aclist.codeberg.page) for installation and setup instructions.
 
 ![Alt text](/images/example.png)
 
diff --git a/dzgui.sh b/dzgui.sh
index 2d3b184..e9e2a12 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.20
+version=5.6.0-beta.21
 
 #CONSTANTS
 aid=221100
@@ -584,10 +584,10 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="99544ccef6060125509c4b689a808a15"
+        ["ui.py"]="a2f9134c9b415a2be1d54a7e91065ee0"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="5d69e8e3d7c3b3c499354b0b939ce76b"
+        ["funcs"]="b928622aa16e966a5098df02bce6dc3b"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index ea965b3..b669fc5 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -79,7 +79,8 @@ stable_url="$url_prefix/dzgui"
 testing_url="$url_prefix/testing"
 releases_url="$gh_prefix/$author/$repo/releases/download/browser"
 help_url="https://$author.github.io/dzgui/dzgui"
-forum_url="$gh_prefix/$author/$repo/discussions"
+help_url2="https://$author.codeberg.page"
+forum_url="https://old.reddit.com/r/dzgui"
 sponsor_url="$gh_prefix/sponsors/$author"
 battlemetrics_server_url="https://www.battlemetrics.com/servers/dayz"
 steam_api_url="https://steamcommunity.com/dev/apikey"
@@ -1104,21 +1105,21 @@ open_link(){
         "Open Battlemetrics API page")
             url="$battlemetrics_api_url"
             ;;
-        "Help file ⧉")
+        "Documentation/help files (GitHub) ⧉")
             url="$help_url"
             ;;
-        "Report a bug ⧉")
+        "Documentation/help files (Codeberg mirror) ⧉")
+            url="$help_url2"
+            ;;
+        "Report a bug (GitHub) ⧉")
             url="$issues_url"
             ;;
-        "Forum ⧉")
+        "DZGUI Subreddit ⧉")
             url="$forum_url"
             ;;
-        "Sponsor ⧉")
+        "Sponsor (GitHub) ⧉")
             url="$sponsor_url"
             ;;
-        "Hall of fame ⧉")
-            url="${help_url}#_hall_of_fame"
-            ;;
     esac
 
     #if [[ $is_steam_deck -eq 1 ]]; then
@@ -1167,12 +1168,6 @@ $(print_ip_list | sed 's/"//g')
 	Mods:
 $(list_mods | sed 's/^/\t/g')
 	DOC
-    #2024-12-13
-    find $workshop_dir -mindepth 1 -maxdepth 1 -type d | awk -F/ '{print $NF}' | sort > "$mod_log"
-    find $workshop_dir -mindepth 1 -name meta.cpp | while read -r line; do
-        cat "$line" | awk '/publishedid/ {print $3}' | sed 's/;//g;s/\r//g'
-    done | sort > "$meta_log"
-    #END
     printf "Wrote system log to %s" "$system_log"
     return 0
 }
diff --git a/helpers/ui.py b/helpers/ui.py
index 38abd1b..02fe315 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1,22 +1,21 @@
 import csv
-import gi
 import json
 import locale
 import logging
-import math
 import multiprocessing
 import os
-import re
 import signal
 import subprocess
 import sys
 import textwrap
 import threading
+from enum import Enum
 
 locale.setlocale(locale.LC_ALL, '')
+
+import gi
 gi.require_version("Gtk", "3.0")
 from gi.repository import Gtk, GLib, Gdk, GObject, Pango
-from enum import Enum
 
 # 5.6.0
 app_name = "DZGUI"
@@ -274,25 +273,25 @@ class RowType(EnumWithAttrs):
             "quad_label": "Debug log"
             }
     DOCS = {
-            "label": "Help file ⧉",
+            "label": "Documentation/help files (GitHub) ⧉",
+            "tooltip": "Opens the DZGUI documentation in a browser"
+            }
+    DOCS_FALLBACK = {
+            "label": "Documentation/help files (Codeberg mirror) ⧉",
             "tooltip": "Opens the DZGUI documentation in a browser"
             }
     BUGS = {
-            "label": "Report a bug ⧉",
+            "label": "Report a bug (GitHub) ⧉",
             "tooltip": "Opens the DZGUI issue tracker in a browser"
             }
     FORUM = {
-            "label": "Forum ⧉",
+            "label": "DZGUI Subreddit ⧉",
             "tooltip": "Opens the DZGUI discussion forum in a browser"
             }
     SPONSOR = {
-            "label": "Sponsor ⧉",
+            "label": "Sponsor (GitHub) ⧉",
             "tooltip": "Sponsor the developer of DZGUI"
             }
-    HOF = {
-            "label": "Hall of fame ⧉",
-            "tooltip": "A list of significant contributors and testers"
-            }
 
 
 class WindowContext(EnumWithAttrs):
@@ -353,10 +352,10 @@ class WindowContext(EnumWithAttrs):
                 RowType.CHANGELOG,
                 RowType.SHOW_LOG,
                 RowType.DOCS,
+                RowType.DOCS_FALLBACK,
                 RowType.BUGS,
                 RowType.FORUM,
                 RowType.SPONSOR,
-                RowType.HOF
                 ],
             "called_by": []
             }
@@ -416,19 +415,24 @@ class Popup(Enum):
 
 class ButtonType(EnumWithAttrs):
     MAIN_MENU = {"label": "Main menu",
-                 "opens": WindowContext.MAIN_MENU
+                 "opens": WindowContext.MAIN_MENU,
+                 "tooltip": "Search for and connect to servers"
                  }
     MANAGE = {"label": "Manage",
-              "opens": WindowContext.MANAGE
+              "opens": WindowContext.MANAGE,
+              "tooltip": "Manage/add to saved servers"
               }
     OPTIONS = {"label": "Options",
-               "opens": WindowContext.OPTIONS
+               "opens": WindowContext.OPTIONS,
+               "tooltip": "Change settings, list local mods and\nother advanced options"
                }
     HELP = {"label": "Help",
-            "opens": WindowContext.HELP
+            "opens": WindowContext.HELP,
+            "tooltip": "Links to documentation"
             }
     EXIT = {"label": "Exit",
-            "opens": None
+            "opens": None,
+            "tooltip": "Quits the application"
             }
 
 
@@ -906,12 +910,15 @@ class RightPanel(Gtk.Box):
         self.pack_start(self.filters_vbox, False, False, 0)
 
         self.debug_toggle = Gtk.ToggleButton(label="Debug mode")
+        self.debug_toggle.set_tooltip_text("Used to perform a dry run without\nactually connecting to a server")
+
         if query_config(None, "debug")[0] == '1':
             self.debug_toggle.set_active(True)
         self.debug_toggle.connect("toggled", self._on_button_toggled, "Toggle debug mode")
         set_surrounding_margins(self.debug_toggle, 10)
 
         self.question_button = Gtk.Button(label="?")
+        self.question_button.set_tooltip_text("Opens the keybindings dialog")
         self.question_button.set_margin_top(10)
         self.question_button.set_margin_start(50)
         self.question_button.set_margin_end(50)
@@ -954,6 +961,8 @@ class ButtonBox(Gtk.Box):
         for side_button in ButtonType:
             button = EnumeratedButton(label=side_button.dict["label"])
             button.set_property("button_type", side_button)
+            button.set_tooltip_text(side_button.dict["tooltip"])
+
             if is_steam_deck is True:
                 button.set_size_request(10, 10)
             else:
@@ -2436,16 +2445,17 @@ class ModSelectionPanel(Gtk.Box):
         self.set_orientation(Gtk.Orientation.VERTICAL)
 
         labels = [
-                "Select all",
-                "Unselect all",
-                "Delete selected",
-                "Highlight stale"
+                ["label": "Select all", "tooltip": "Bulk selects all mods"],
+                ["label": "Unselect all", "tooltip": "Bulk unselects all mods"],
+                ["label": "Delete selected", "tooltip": "Deletes selected mods from the system"],
+                ["label": "Highlight stale", "tooltip": "Shows locally-installed mods\nwhich are not used by any server\nin your Saved Servers"]
                 ]
 
         self.active_button = None
 
         for l in labels:
-            button = Gtk.Button(label=l)
+            button = Gtk.Button(label=l["label"])
+            button.set_tooltip_text(l["tooltip"])
             button.set_margin_start(10)
             button.set_margin_end(10)
             button.connect("clicked", self._on_button_clicked)
@@ -2505,6 +2515,7 @@ class ModSelectionPanel(Gtk.Box):
     def toggle_select_stale_button(self, bool):
         if bool is True:
             button = Gtk.Button(label="Select stale")
+            button.set_tooltip_text("Bulk selects all currently highlighted mods")
             button.set_margin_start(10)
             button.set_margin_end(10)
             button.connect("clicked", self._on_button_clicked)
@@ -2521,7 +2532,6 @@ class ModSelectionPanel(Gtk.Box):
         (model, pathlist) = treeview.get_selection().get_selected_rows()
 
         if bool is False:
-            default = None
             for i in range (0, len(mod_store)):
                 path = Gtk.TreePath(i)
                 it = mod_store.get_iter(path)
@@ -2540,6 +2550,7 @@ class ModSelectionPanel(Gtk.Box):
                 _colorize(path, red)
             treeview.toggle_selection(False)
             self.active_button.set_label("Unhighlight stale")
+            self.active_button.set_tooltip_text("Clears highlights and reverts\nthe table to a default state")
 
 
     def _iterate_mod_deletion(self, model, pathlist, ct):
@@ -2667,6 +2678,10 @@ class FilterPanel(Gtk.Box):
         match event.keyval:
             case Gdk.KEY_Escape:
                 GLib.idle_add(self.restore_focus_to_treeview)
+            case Gdk.KEY_Up:
+                return True
+            case Gdk.KEY_Down:
+                return True
             case _:
                 return False
 

From 2b4649ac6e81d15b60e774ed6745b33c094998fd Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 6 Jan 2025 22:08:48 +0900
Subject: [PATCH 83/99] chore: drop docs

---
 docs/custom.css              | 427 ------------------------
 docs/dark.css                | 120 -------
 docs/dzgui.adoc              | 608 -----------------------------------
 docs/dzgui_dark.adoc         | 608 -----------------------------------
 docs/kb.adoc                 |  28 --
 docs/kb_dark.adoc            |  28 --
 docs/kb_sections/dzg001.adoc |  11 -
 docs/kb_sections/dzg002.adoc |   5 -
 docs/kb_sections/dzg003.adoc |   7 -
 docs/kb_sections/dzg004.adoc |   7 -
 docs/kb_sections/dzg005.adoc |   7 -
 docs/kb_sections/dzg006.adoc |  11 -
 docs/kb_sections/dzg007.adoc |  17 -
 docs/kb_sections/dzg008.adoc |   7 -
 docs/kb_sections/dzg009.adoc |   5 -
 15 files changed, 1896 deletions(-)
 delete mode 100644 docs/custom.css
 delete mode 100644 docs/dark.css
 delete mode 100644 docs/dzgui.adoc
 delete mode 100644 docs/dzgui_dark.adoc
 delete mode 100644 docs/kb.adoc
 delete mode 100644 docs/kb_dark.adoc
 delete mode 100644 docs/kb_sections/dzg001.adoc
 delete mode 100644 docs/kb_sections/dzg002.adoc
 delete mode 100644 docs/kb_sections/dzg003.adoc
 delete mode 100644 docs/kb_sections/dzg004.adoc
 delete mode 100644 docs/kb_sections/dzg005.adoc
 delete mode 100644 docs/kb_sections/dzg006.adoc
 delete mode 100644 docs/kb_sections/dzg007.adoc
 delete mode 100644 docs/kb_sections/dzg008.adoc
 delete mode 100644 docs/kb_sections/dzg009.adoc

diff --git a/docs/custom.css b/docs/custom.css
deleted file mode 100644
index d1f3eff..0000000
--- a/docs/custom.css
+++ /dev/null
@@ -1,427 +0,0 @@
-/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
-/* Uncomment the following line when using as a custom stylesheet */
-/* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
-html{font-family:sans-serif;-webkit-text-size-adjust:100%}
-h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 {color: #8a1414 !important}
-a{background:none}
-a:focus{outline:thin dotted}
-a:active,a:hover{outline:0}
-h1{font-size:2em;margin:.67em 0}
-b,strong{font-weight:bold}
-abbr{font-size:.9em}
-abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}
-dfn{font-style:italic}
-hr{height:0}
-mark{background:#ff0;color:#000}
-code,kbd,pre,samp{font-family:monospace;font-size:1em}
-pre{white-space:pre-wrap}
-q{quotes:"\201C" "\201D" "\2018" "\2019"}
-small{font-size:80%}
-sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
-sup{top:-.5em}
-sub{bottom:-.25em}
-img{border:0}
-svg:not(:root){overflow:hidden}
-figure{margin:0}
-audio,video{display:inline-block}
-audio:not([controls]){display:none;height:0}
-fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
-legend{border:0;padding:0}
-button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
-button,input{line-height:normal}
-button,select{text-transform:none}
-button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
-button[disabled],html input[disabled]{cursor:default}
-input[type=checkbox],input[type=radio]{padding:0}
-button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
-textarea{overflow:auto;vertical-align:top}
-table{border-collapse:collapse;border-spacing:0}
-*,::before,::after{box-sizing:border-box}
-html,body{font-size:100%}
-body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
-a:hover{cursor:pointer}
-img,object,embed{max-width:100%;height:auto}
-object,embed{height:100%}
-img{-ms-interpolation-mode:bicubic}
-.left{float:left!important}
-.right{float:right!important}
-.text-left{text-align:left!important}
-.text-right{text-align:right!important}
-.text-center{text-align:center!important}
-.text-justify{text-align:justify!important}
-.hide{display:none}
-img,object,svg{display:inline-block;vertical-align:middle}
-textarea{height:auto;min-height:50px}
-select{width:100%}
-.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
-div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}
-a{color:#2156a5;text-decoration:underline;line-height:inherit}
-a:hover,a:focus{color:#1d4b8f}
-a img{border:0}
-p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
-p aside{font-size:.875em;line-height:1.35;font-style:italic}
-h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
-h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
-h1{font-size:2.125em}
-h2{font-size:1.6875em}
-h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
-h4,h5{font-size:1.125em}
-h6{font-size:1em}
-hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em}
-em,i{font-style:italic;line-height:inherit}
-strong,b{font-weight:bold;line-height:inherit}
-small{font-size:60%;line-height:inherit}
-code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
-ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
-ul,ol{margin-left:1.5em}
-ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}
-ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
-ul.square{list-style-type:square}
-ul.circle{list-style-type:circle}
-ul.disc{list-style-type:disc}
-ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
-dl dt{margin-bottom:.3125em;font-weight:bold}
-dl dd{margin-bottom:1.25em}
-blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
-blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
-@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
-h1{font-size:2.75em}
-h2{font-size:2.3125em}
-h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
-h4{font-size:1.4375em}}
-table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal}
-table thead,table tfoot{background:#f7f8f7}
-table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
-table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
-table tr.even,table tr.alt{background:#f8f8f7}
-table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6}
-h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
-h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
-.center{margin-left:auto;margin-right:auto}
-.stretch{width:100%}
-.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
-.clearfix::after,.float-group::after{clear:both}
-:not(pre).nobreak{word-wrap:normal}
-:not(pre).nowrap{white-space:nowrap}
-:not(pre).pre-wrap{white-space:pre-wrap}
-:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
-pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
-pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
-pre>code{display:block}
-pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
-em em{font-style:normal}
-strong strong{font-weight:400}
-.keyseq{color:rgba(51,51,51,.8)}
-kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
-.keyseq kbd:first-child{margin-left:0}
-.keyseq kbd:last-child{margin-right:0}
-.menuseq,.menuref{color:#000}
-.menuseq b:not(.caret),.menuref{font-weight:inherit}
-.menuseq{word-spacing:-.02em}
-.menuseq b.caret{font-size:1.25em;line-height:.8}
-.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
-b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
-b.button::before{content:"[";padding:0 3px 0 2px}
-b.button::after{content:"]";padding:0 2px 0 3px}
-p a>code:hover{color:rgba(0,0,0,.9)}
-#header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
-#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
-#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
-#content{margin-top:1.25em}
-#content::before{content:none}
-#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
-#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
-#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
-#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap}
-#header .details span:first-child{margin-left:-.125em}
-#header .details span.email a{color:rgba(0,0,0,.85)}
-#header .details br{display:none}
-#header .details br+span::before{content:"\00a0\2013\00a0"}
-#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
-#header .details br+span#revremark::before{content:"\00a0|\00a0"}
-#header #revnumber{text-transform:capitalize}
-#header #revnumber::after{content:"\00a0"}
-#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
-#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
-#toc>ul{margin-left:.125em}
-#toc ul.sectlevel0>li>a{font-style:italic}
-#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
-#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
-#toc li{line-height:1.3334;margin-top:.3334em}
-#toc a{text-decoration:none}
-#toc a:active{text-decoration:underline}
-#toctitle{color:#7a2518;font-size:1.2em}
-@media screen and (min-width:768px){#toctitle{font-size:1.375em}
-body.toc2{padding-left:15em;padding-right:0}
-#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
-#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
-#toc.toc2>ul{font-size:.9em;margin-bottom:0}
-#toc.toc2 ul ul{margin-left:0;padding-left:1em}
-#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
-body.toc2.toc-right{padding-left:0;padding-right:15em}
-body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
-@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
-#toc.toc2{width:20em}
-#toc.toc2 #toctitle{font-size:1.375em}
-#toc.toc2>ul{font-size:.95em}
-#toc.toc2 ul ul{padding-left:1.25em}
-body.toc2.toc-right{padding-left:0;padding-right:20em}}
-#content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}
-#content #toc>:first-child{margin-top:0}
-#content #toc>:last-child{margin-bottom:0}
-#footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}
-#footer-text{color:hsla(0,0%,100%,.8);line-height:1.44}
-#content{margin-bottom:.625em}
-.sect1{padding-bottom:.625em}
-@media screen and (min-width:768px){#content{margin-bottom:1.25em}
-.sect1{padding-bottom:1.25em}}
-.sect1:last-child{padding-bottom:0}
-.sect1+.sect1{border-top:1px solid #e7e7e9}
-#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
-#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
-#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
-#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
-#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
-details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
-details{margin-left:1.25rem}
-details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;outline:none;-webkit-tap-highlight-color:transparent}
-details>summary::-webkit-details-marker{display:none}
-details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)}
-details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}
-details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}
-.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
-table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
-.paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
-.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
-.admonitionblock>table td.icon{text-align:center;width:80px}
-.admonitionblock>table td.icon img{max-width:none}
-.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
-.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere}
-.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
-.exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}
-.exampleblock>.content>:first-child{margin-top:0}
-.exampleblock>.content>:last-child{margin-bottom:0}
-.sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}
-.sidebarblock>:first-child{margin-top:0}
-.sidebarblock>:last-child{margin-bottom:0}
-.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
-.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
-.literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
-@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
-@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
-.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
-.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
-.listingblock>.content{position:relative}
-.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
-.listingblock:hover code[data-lang]::before{display:block}
-.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
-.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
-.listingblock pre.highlightjs{padding:0}
-.listingblock pre.highlightjs>code{padding:1em;border-radius:4px}
-.listingblock pre.prettyprint{border-width:0}
-.prettyprint{background:#f7f7f8}
-pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
-pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
-pre.prettyprint li code[data-lang]::before{opacity:1}
-pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
-table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
-table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
-table.linenotable td.code{padding-left:.75em}
-table.linenotable td.linenos,pre.pygments .linenos{border-right:1px solid;opacity:.35;padding-right:.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
-pre.pygments span.linenos{display:inline-block;margin-right:.75em}
-.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
-.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
-.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
-.quoteblock blockquote{margin:0;padding:0;border:0}
-.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
-.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
-.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
-.verseblock{margin:0 1em 1.25em}
-.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans-serif;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
-.verseblock pre strong{font-weight:400}
-.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
-.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
-.quoteblock .attribution br,.verseblock .attribution br{display:none}
-.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
-.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
-.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
-.quoteblock.abstract{margin:0 1em 1.25em;display:block}
-.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
-.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
-.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
-.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
-.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0}
-p.tableblock:last-child{margin-bottom:0}
-td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}
-td.tableblock>.content>:last-child{margin-bottom:-1.25em}
-table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
-table.grid-all>*>tr>*{border-width:1px}
-table.grid-cols>*>tr>*{border-width:0 1px}
-table.grid-rows>*>tr>*{border-width:1px 0}
-table.frame-all{border-width:1px}
-table.frame-ends{border-width:1px 0}
-table.frame-sides{border-width:0 1px}
-table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}
-table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
-table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
-table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}
-table.stripes-all>*>tr,table.stripes-odd>*>tr:nth-of-type(odd),table.stripes-even>*>tr:nth-of-type(even),table.stripes-hover>*>tr:hover{background:#f8f8f7}
-th.halign-left,td.halign-left{text-align:left}
-th.halign-right,td.halign-right{text-align:right}
-th.halign-center,td.halign-center{text-align:center}
-th.valign-top,td.valign-top{vertical-align:top}
-th.valign-bottom,td.valign-bottom{vertical-align:bottom}
-th.valign-middle,td.valign-middle{vertical-align:middle}
-table thead th,table tfoot th{font-weight:bold}
-tbody tr th{background:#f7f8f7}
-tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
-p.tableblock>code:only-child{background:none;padding:0}
-p.tableblock{font-size:1em}
-ol{margin-left:1.75em}
-ul li ol{margin-left:1.5em}
-dl dd{margin-left:1.125em}
-dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
-li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
-ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
-ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
-ul.unstyled,ol.unstyled{margin-left:0}
-li>p:empty:only-child::before{content:"";display:inline-block}
-ul.checklist>li>p:first-child{margin-left:-1em}
-ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
-ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}
-ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
-ul.inline>li{margin-left:1.25em}
-.unstyled dl dt{font-weight:400;font-style:normal}
-ol.arabic{list-style-type:decimal}
-ol.decimal{list-style-type:decimal-leading-zero}
-ol.loweralpha{list-style-type:lower-alpha}
-ol.upperalpha{list-style-type:upper-alpha}
-ol.lowerroman{list-style-type:lower-roman}
-ol.upperroman{list-style-type:upper-roman}
-ol.lowergreek{list-style-type:lower-greek}
-.hdlist>table,.colist>table{border:0;background:none}
-.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
-td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
-td.hdlist1{font-weight:bold;padding-bottom:1.25em}
-td.hdlist2{word-wrap:anywhere}
-.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
-.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
-.colist td:not([class]):first-child img{max-width:none}
-.colist td:not([class]):last-child{padding:.25em 0}
-.thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}
-.imageblock.left{margin:.25em .625em 1.25em 0}
-.imageblock.right{margin:.25em 0 1.25em .625em}
-.imageblock>.title{margin-bottom:0}
-.imageblock.thumb,.imageblock.th{border-width:6px}
-.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
-.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
-.image.left{margin-right:.625em}
-.image.right{margin-left:.625em}
-a.image{text-decoration:none;display:inline-block}
-a.image object{pointer-events:none}
-sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
-sup.footnote a,sup.footnoteref a{text-decoration:none}
-sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
-#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
-#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
-#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
-#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
-#footnotes .footnote:last-of-type{margin-bottom:0}
-#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
-div.unbreakable{page-break-inside:avoid}
-.big{font-size:larger}
-.small{font-size:smaller}
-.underline{text-decoration:underline}
-.overline{text-decoration:overline}
-.line-through{text-decoration:line-through}
-.aqua{color:#00bfbf}
-.aqua-background{background:#00fafa}
-.black{color:#000}
-.black-background{background:#000}
-.blue{color:#0000bf}
-.blue-background{background:#0000fa}
-.fuchsia{color:#bf00bf}
-.fuchsia-background{background:#fa00fa}
-.gray{color:#606060}
-.gray-background{background:#7d7d7d}
-.green{color:#006000}
-.green-background{background:#007d00}
-.lime{color:#00bf00}
-.lime-background{background:#00fa00}
-.maroon{color:#600000}
-.maroon-background{background:#7d0000}
-.navy{color:#000060}
-.navy-background{background:#00007d}
-.olive{color:#606000}
-.olive-background{background:#7d7d00}
-.purple{color:#600060}
-.purple-background{background:#7d007d}
-.red{color:#bf0000}
-.red-background{background:#fa0000}
-.silver{color:#909090}
-.silver-background{background:#bcbcbc}
-.teal{color:#006060}
-.teal-background{background:#007d7d}
-.white{color:#bfbfbf}
-.white-background{background:#fafafa}
-.yellow{color:#bfbf00}
-.yellow-background{background:#fafa00}
-span.icon>.fa{cursor:default}
-a span.icon>.fa{cursor:inherit}
-.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
-.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
-.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
-.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
-.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
-.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
-.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
-.conum[data-value] *{color:#fff!important}
-.conum[data-value]+b{display:none}
-.conum[data-value]::after{content:attr(data-value)}
-pre .conum[data-value]{position:relative;top:-.125em}
-b.conum *{color:inherit!important}
-.conum:not([data-value]):empty{display:none}
-dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
-h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em}
-p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
-p,blockquote,dt,td.content,span.alt,summary{font-size:1.0625rem}
-p{margin-bottom:1.25rem}
-.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
-.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}
-.print-only{display:none!important}
-@page{margin:1.25cm .75cm}
-@media print{*{box-shadow:none!important;text-shadow:none!important}
-html{font-size:80%}
-a{color:inherit!important;text-decoration:underline!important}
-a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
-a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
-abbr[title]{border-bottom:1px dotted}
-abbr[title]::after{content:" (" attr(title) ")"}
-pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
-thead{display:table-header-group}
-svg{max-width:100%}
-p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
-h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
-#header,#content,#footnotes,#footer{max-width:none}
-#toc,.sidebarblock,.exampleblock>.content{background:none!important}
-#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
-body.book #header{text-align:center}
-body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
-body.book #header .details{border:0!important;display:block;padding:0!important}
-body.book #header .details span:first-child{margin-left:0!important}
-body.book #header .details br{display:block}
-body.book #header .details br+span::before{content:none!important}
-body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
-body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
-.listingblock code[data-lang]::before{display:block}
-#footer{padding:0 .9375em}
-.hide-on-print{display:none!important}
-.print-only{display:block!important}
-.hide-for-print{display:none!important}
-.show-for-print{display:inherit!important}}
-@media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem}
-.sect1{padding:0!important}
-.sect1+.sect1{border:0}
-#footer{background:none}
-#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
-@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
diff --git a/docs/dark.css b/docs/dark.css
deleted file mode 100644
index 698689a..0000000
--- a/docs/dark.css
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
-
-@import url(//fonts.googleapis.com/css?family=Noto+Sans);
-@import url(https://cdn.jsdelivr.net/gh/asciidoctor/asciidoctor@2.0/data/stylesheets/asciidoctor-default.css); /* Default asciidoc style framework - important */
-
-/* CUSTOMISATIONS */
-/* Change the values in root for quick customisation. If you want even more fine grain... venture further. */
-:root{
---maincolor:#222222;
---primarycolor:#aaa;
---secondarycolor:#aaa;
---tertiarycolor:#aaa;
---sidebarbackground:#222222;
---linkcolor:#ecc89e;
---linkcoloralternate:#cbcbcb;
---white:#777777;
---codebg:#111;
---codefg:#ffffff;
---linkhover:#eb862f;
-}
-
-/* Text styles */
-
-body{font-family: "Noto Sans",sans-serif;background-color: var(--maincolor);color:var(--white);}
-
-h1{color:var(--primarycolor) !important;font-family:"Noto Sans",sans-serif;}
-h2,h3,h4,h5,h6{color:var(--secondarycolor) !important;font-family:"Noto Sans",sans-serif;}
-.title{color:var(--white) !important;font-family:"Noto Sans",sans-serif;font-style: normal; font-weight: normal;}
-p{font-family: "Noto Sans",sans-serif ! important}
-#toc.toc2 a:link{color:var(--linkcolor);}
-#toc.toc2 {border-right: 1px solid #8e8e96}
-blockquote{color:var(--tertiarycolor) !important}
-.quoteblock{color:var(--white)}
-code{color:var(--codefg);background-color: var(--codebg) !important}
-td.tableblock{border:0 solid #a9a9a9}
-
-
-/* Table styles */
-th{background-color: var(--maincolor);color:var(--primarycolor) !important;}
-td{background-color: var(--maincolor);color: var(--primarycolor) !important}
-
-
-#toc.toc2{background-color:var(--sidebarbackground);}
-#toctitle{color:var(--white);}
-
-/* Responsiveness fixes */
-video {
-  max-width: 100%;
-}
-
-@media all and (max-width: 600px) {
-  table {
-    width: 55vw!important;
-    font-size: 3vw;
-  }
-}
-
-.exampleblock > .content {
-  background-color: var(--maincolor);
-}
-
-a {
-  color: var(--linkcolor);
-}
-
-a:hover,#toc.toc2 a:hover{
-	color: var(--linkhover);
-}
-.admonitionblock td.icon .icon-tip::before {
-  text-shadow: none;
-  color: var(--white);
-}
-.admonitionblock td.icon .icon-note::before {
-  color: var(--tertiarycolor);
-}
-.admonitionblock td.icon .icon-important::before {
-  color: var(--linkcolor);
-}
-/*.admonitionblock td.icon .icon-caution::before {
-  color: var(--linkcoloralternate);
-}*/
-.admonitionblock td.icon .icon-warning::before {
-  color: var(--primarycolor);
-}
-
-#preamble > .sectionbody > .paragraph:first-of-type p {
-  color: var(--white);
-}
-
-.quoteblock blockquote::before {
-  color: var(--primarycolor);
-}
-.quoteblock .attribution cite, .verseblock .attribution cite {
-  color: var(--white);
-}
-.verseblock pre {
-  color: var(--white);
-}
-.quoteblock blockquote, .quoteblock blockquote p {
-  color: var(--white);
-}
-
-.sidebarblock {
-  background: var(--sidebarbackground);
-}
-.literalblock pre, .listingblock pre:not(.highlight), .listingblock pre[class="highlight"], .listingblock pre[class^="highlight "], .listingblock pre.CodeRay, .listingblock pre.prettyprint {
-  background: var(--codebg);
-  color: var(--white);
-}
-
-.literalblock pre, .listingblock>.content>pre:not(.highlight), .listingblock>.content>pre[class=highlight], .listingblock>.content>pre[class^="highlight "] {
-  background: var(--codebg);
-}
-
-#header .details {
-  color: var(--white);
-}
-#header .details span.email a {
-  color: var(--linkcoloralternate);
-}
diff --git a/docs/dzgui.adoc b/docs/dzgui.adoc
deleted file mode 100644
index e059491..0000000
--- a/docs/dzgui.adoc
+++ /dev/null
@@ -1,608 +0,0 @@
-:nofooter:
-:toc: left
-:stylesheet: custom.css
-
-= DZGUI documentation (v5.x.x)
-DayZ server browser and mod manager for Linux | Last updated: {d}
-
-Click https://aclist.github.io/dzgui/dzgui_dark.html[here] for dark mode
-
-Looking for the DZGUI Knowledge Base? Click https://aclist.github.io/dzgui/kb.html[here]
-
-== What this is
-A GUI version of https://github.com/aclist/dztui[DZTUI] for Linux. 
-Used to list official and community server details and quick connect to preferred servers 
-by staging mods and concatenating launch options automatically. 
-
-Development on DZTUI (terminal client) has stopped at this time. 
-Instead, DZGUI brings numerous functionality and security improvements and is intended to be a more user-friendly, 
-turnkey solution for graphical desktop environments, and can also be used on the Steam Deck or similar devices.
-
-== Setup
-=== Dependencies
-If not already installed, the below can be found in your system's package manager. 
-
-If any dependencies are missing when the application starts, it will warn you, so you need not take any preemptive measures here.
-
-All dependencies are installed out of the box on Steam Deck.
-
-- `curl`
-- `jq`
-- `zenity`
-- `steam`
-- `wmctrl` or `xdotool`
-- `PyGObject` (`python-gobject`)
-
-
-[NOTE]
-If you are using a self-compiled version of jq (e.g. gentoo), it must be configured with support for oniguruma (this is the default setting on most distributions).
-
-=== Preparation
-==== Step 1: Download DZGUI and make it executable
-
-**Automatic method: generic OS**
-
-Invoke the command below from a terminal:
-
-```
-curl -s "https://raw.githubusercontent.com/aclist/dztui/dzgui/install.sh" | bash
-```
-**Automatic method: nix-based systems (contributed by lelgenio)**
-
-Follow the instructions at https://github.com/lelgenio/dzgui-nix to ingest the package and dependencies
-into your system using flakes. 
-
-**Manual method**
-
-```
-git clone https://github.com/aclist/dztui.git
-chmod +x dzgui.sh
-./dzgui.sh
-```
-
-==== Step 2: update the vm.max_map_count value
-
-On most modern distributions, it will seldom be necessary to update this value anymore, since it is set to a sufficiently large number for performance-intensive applications.
-
-**Automatic method:**
-
-This is handled automatically by DZGUI if you just choose to run the application out of the box.
-You will be prompted for your sudo password in order to check whether the system map count is too small.
-This is a one-time check that will not be triggered again once the map count is updated.
-
-[NOTE]
-If you are using a Steam Deck, this step is not necessary.
-
-The process writes the count to the file `/etc/sysctl.d/dayz.conf`.
-
-If the system map count was lower than the threshold, it is updated to `1048576`.
-If the system map count was already higher, that value is interpolated into this file for redundancy purposes and to avoid sudo escalation on subsequent launches of the application.
-
-[NOTE]
-If, for reasons unrelated to DayZ, you choose at a later time to raise your system map count higher than it originally was and
-you find that the count is not sticking, check for the presence of the `dayz.conf` file to see if it is taking precedence and delete it accordingly.
-
-If you used the automatic method, you can skip to <<Step 3: Prepare a Steam account with a DayZ license, Step 3>> below.
-
-**Manual method:**
-
-If you wish to update this value yourself without intervention from DZGUI, you have two options:
-
-
-Invoke the command below for an **ephemeral change**. Note that if changing the map count on a one-time basis, it will revert to the old value after the system is rebooted.
-
-
-```
-sudo sysctl -w vm.max_map_count=1048576
-```
-
-Invoke the command below for a **persistent change**:
-```
-echo 'vm.max_map_count=1048576' | sudo tee /etc/sysctl.d/dayz.conf
-```
-
-==== Step 3: Prepare a Steam account with a DayZ license
-Enable a Proton version ≥ `6.8` (or use Proton Experimental) in the `Compatibility` field of the game's right-click options. As of this writing, any recent version of Proton should work, and it is encouraged to use the most recent one.
-
-=== API key & server IDs
-
-==== Steam Web API key (required)
-1. Register for a https://steamcommunity.com/dev/apikey[Steam Web API key] (free) using your Steam account. You will be asked for a unique URL for your app when registering. 
-2. Since this key is for a personal use application and does not actually call back anywhere, set a generic local identifier here like "127.0.0.1" or some other name that is meaningful to you.
-3. Once configured, you can insert this key in the app when launching it for the first time.
-
-[NOTE]
-If you are confused about this requirement, please refer to DZGUI Knowledge Base article https://aclist.github.io/dzgui/kb.html#DZG-007[DZG-007] for additional information.
-
-==== BattleMetrics API key (optional)
-
-This key is optional. Using this key in conjunction with the above allows you to also connect to and query servers by numerical ID instead of by IP. See <<Manage > Add server by ID, Add server by ID>>.
-
-1. Register for an API key at https://www.battlemetrics.com/account/register?after=%2Fdevelopers[BattleMetrics] (free).
-2. From the **Personal Access Tokens** area, Select **New Token**.
-3. Give the token any name in the field at the top.
-4. Leave all options **unchecked** and scroll to the bottom, select **Create Token**.
-5. Once configured, you can insert this key in the app when launching it for the first time (optional), or later on when using the connect/query by ID methods in the app for the first time.
-
-=== First-time launch
-
-It is always advised to have Steam running in the background. DZGUI is meant to run "on top of" Steam, and will warn you if Steam appears to not be running.
-
-DZGUI can be launched one of two ways.
-
-**From a terminal:**
-
-```
-./dzgui.sh
-```
-
-Launching from a terminal may give more verbose information in the event of a crash, and can be a good way of troubleshooting problems.
-
-**From the shortcut shipped with the application**:
-
-If you are using a desktop environment (DE) based on the Freedesktop specification, shortcuts will be installed for you.
-
-- One shortcut is located under the "Games" category of your system's applications list.
-- The other is accessed via the "DZGUI" desktop icon (Steam Deck only)
-
-After launching the app, follow the menu prompts onscreen. You will be asked to provide the following:
-
-- Player name (a handle name that identifies your character; required by some servers)
-- Steam API key (required)
-- BM API key (optional)
-
-==== Steam path discovery
-
-DZGUI will now attempt to locate your default Steam installation and DayZ path. You *must* have DayZ installed in your Steam library in order to proceed. (It can be installed to any drive of your choosing.)
-
-If DZGUI cannot find Steam or cannot find DayZ installed at the detected Steam path, it will prompt you to manually specify the path to your Steam installation.
-
-Specify the root, top-level entry point to Steam, not DayZ. E.g.,
-
-`/media/mydrive/Steam`, not `/media/mydrive/Steam/steamapps/common/DayZ`
-
-If your Steam installation is in a hidden folder but the file picker dialog does not show hidden folders, ensure that your GTK settings are set to show hidden files.
-
-For GTK 2, update the file `$HOME/.config/gtk-2.0/gtkfilechooser.ini` to contain this line:
-
-`ShowHidden=true`
-
-For GTK 3, invoke the command:
-
-`gsettings set org.gtk.Settings.FileChooser show-hidden true`
-
-=== Steam integration & artwork
-
-==== Adding DZGUI as a third-party app
-
-DZGUI can be added to Steam as a "non-Steam game" in order to facilitate integration with Steam Deck or desktop environments.
-
-1. Launch Steam in the "Large" (default) view.
-
-[NOTE]
-Steam Deck: you must switch to "Desktop Mode" and launch Steam from the desktop. Steam Deck's Game Mode view has limited support for configuration of custom games.
-
-[start=2]
-2. Select **Add a Game** > **Add a Non-Steam Game** from the lower left-hand corner of the Steam client.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/01.png[01,500]
-
-[start=3]
-3. Navigate to `$HOME/.local/share/applications/` and select `dzgui.desktop`
-4. Select **Add Selected Programs** to add a shortcut to DZGUI.
-
-==== Artwork
-
-DZGUI also ships with Steam cover artwork. It is located under:
-
-```
-$HOME/.local/share/dzgui
-```
-
-The artwork consists of five parts:
-
-[%autowidth]
-|===
-|Name|Description
-
-|Hero|a large horizontal banner used on the app's details page, and on landscape-orientation covers in the Recent Games section
-|Icon|a square icon used for the tree/list view of the Steam library
-|Grid|a vertical "box art" cover used on Steam library pages
-|Logo|a transparent icon used to remove Steam's default app text
-|dzgui|used by freedesktop shortcut to generate a desktop icon; not intended for manual use by the user
-|===
-
-===== Updating the artwork
-
-1. From the main library view, navigate to the app's details page and right-click the blank image header at the top.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/03.png[03,700]
-
-[start=2]
-2. Select **Set Custom Background**
-3. Select to display **All Files** from the File type dropdown
-4. Navigate to the artwork path described above and select `hero.png`.
-5. Next, right-click the image background and select **Set Custom Logo**. 
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/04.png[04,700]
-
-[start=5]
-5. Navigate to the same path and select `logo.png`. Notice that this removes the redundant app name that occluded the image.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/05.png[05,700]
-
-[start=6]
-6. Next, navigate to your Library index (looks like a bookshelf of cover art) and find the DZGUI app. 
-
-[start=7]
-7. Right-click its cover and select **Manage** > **Set custom artwork**.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/06.png[06,700]
-
-[start=8]
-8. Navigate to the same path and select `grid.png`. The final result:
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/07.png[07,700]
-
-[start=9]
-9. Right-click the DZGUI entry and select Properties to open the properties dialog. Next to the **Shortcut** field, you will see a small square box which represents the game's icon. Click this to open a file explorer and select `icon.png` from the path above. This will add a small icon to the list view.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/08.png[08,700]
-
-[start=10]
-10. After you launch DZGUI for the first time, you should return to the library view and select the Recent Games dropdown on the right-hand side. Steam shows a collection of box art based on categories like "Play Next", "Recent Games", etc. Look for a downward-pointing caret icon and click it, then select the "Recent Games" category. If DZGUI was the last item played, it will be shown with a landscape, rather than portrait, orientation cover, which is initially blank. To customize this cover, right click it and select `Manage > Set custom artwork`, then select the `hero.png` image again for this area.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/09.png[09,700]
-
-==== Controller layout
-
-A controller layout for Steam Deck is available in the Steam community layouts section. Search for "DZGUI Official Config" to download it. This layout provides modal layers intended to facilitate interaction with the DZGUI interface, but does not attempt to customize in-game DayZ controls in a detailed fashion.
-
-Long-press the View button and Select button (☰) to toggle D-pad navigation. This creates an additional layer that lets you navigate through menus using the D-pad and A/B to respectively confirm selections and go back. Remember to toggle this layer off again after launching your game to revert back to the master layer.
-
-
-=== Updating the app
-If DZGUI detects a new upstream version, it will prompt you to download it automatically. 
-It backs up the original version before fetching the new one, then updates your config file with your existing values. Once finished, it will ask you to relaunch the app.
-
-If you decline to upgrade to the new version, DZGUI will continue to the main menu with the current version.
-
-[NOTE]
-New versions may include changes to bugs that could prevent you from playing on certain servers.
-Upgrading is always advised.
-
-If you experience a problem or need to restore the prior version of DZGUI and/or your configs, 
-it is enough to simply replace the new version with the old one and relaunch the app. 
-The file can be found at:
-
-```
-<path to script>/<script name>.old
-```
-E.g., if DZGUI is named `dzgui.sh`, in the path `$HOME/bin`, the backup will be located at
-```
-$HOME/bin/dzgui.sh.old
-```
-If launching DZGUI via its system shortcut, the backup file will be located under the path:
-
-```
-$HOME/.local/share/dzgui
-```
-
-Similarly, a backup config file will be located at:
-```
-$HOME/.config/dztui/dztuirc.old
-
-```
-
-=== Locale support
-
-For internationalization purposes, DZGUI will inherit the default locale setting on the system when displaying numbers. This is used for thousands separators in long numbers and decimal separators in fractional numbers.
-
-If you wish to use a specific regional numbering preference while retaining a different base system language (e.g., English language with German-style numbering), pass the desired locale as a variable before launching DZGUI:
-
-```
-LC_ALL=de_DE.UTF-8 ./dzgui.sh
-```
-
-If you intend to use this frequently, you could wrap the above in a script or alias.
-
-== Uninstallation
-
-To uninstall DZGUI and its associated files, invoke `./dzgui.sh` with the `-u` or `--uninstall` flag.
-
-Follow the prompts to choose from full uninstall (removes the application and all user-defined configuration files) or partial install (removes the application, but keeps user-defined configuration files).
-
-If you intend to reinstall DZGUI again, keeping your configuration files is recommended.
-
-== Basic usage
-Select from among the <<Menu contexts and options>> below.
-
-Connecting to a server consists of fetching metadata for the server you are searching for.
-
-DZGUI will check the server's modset against your local mods. If you are missing any, 
-it will prompt you to download them through the Steam Workshop.
-
-[NOTE]
-You must be logged into Steam for mod changes to take effect.
-It can take some time for the mods to download and update.
-
-Once all of the mods are downloaded and staged, DZGUI will notify you that it is ready to connect.
-The app hands the launch parameters to Steam, after which point DZGUI is not involved in the operation of DayZ.
-
-== Menu contexts and options
-
-The main view displays a series of contexts, visualized as buttons, on the right-hand side. You can click these to navigate between different areas.
-
-A footer at the bottom of the application lists an explanatory tooltip for the currently focused option. In the case of server browsing contexts, this tooltip will be updated to show the distance in kilometers to the server and an estimated ping (round-trip latency).
-
-The right-hand side of the footer displays the branch of DZGUI you are using (stable/testing), the mod install mode (normal/auto), and the version number. For example, if you are on the stable branch, using the default install mode, and using DZGUI v5.0.0, the footer will read:
-
-`STABLE | NORMAL | DZGUI 5.0.0`
-
-=== Main menu
-
-The main menu context is the central entry point to server navigation, letting you browse the list of publicly available servers, check your list of favorited servers, connect to recent servers, et cetera.
-
-==== Main menu > Server browser
-The server browser retrieves and lists all publicly broadcasting servers (including official ones) in a table.
-These servers can be filtered by various parameters in order to display a more granular result.
-
-After you select a server from the list and choose to connect, the application continues to the mod validation step.
-
-For details on interacting with server browsing contexts, which are uniform across different menus, refer to <<Server table and filters>>.
-
-==== Main menu > My saved servers
-Prints metadata for the servers saved in your servers list. Servers can be added via the <<Manage>> context or via the <<Contextual options>> of server table views.
-
-For details on interacting with server browsing contexts, which are uniform across different menus, refer to <<Server table and filters>>.
-
-==== Main menu > Quick connect to favorite server
-Bypasses the server list and quick-connects to a single favorite server specified in advance using the <<Manage > Add (change) favorite server, Add (change) favorite server>> option.
-
-==== Main menu > Recent servers
-This feature queries the history file for the last 10 servers connected to by any means
-(server browser, favorite servers, connect-by-IP, etc.), and presents them in a table.
-
-For details on interacting with server browsing contexts, which are uniform across different menus, refer to <<Server table and filters>>.
-
-==== Main menu > Connect by IP
-Provide the IP and query port in `<IP>:<PORT>` format. Depending on the mod installation method you have selected, DZGUI will proceed to stage and download mods and prompt you before connecting.
-
-==== Main menu > Connect by ID
-Requires a <<API key & server IDs, BM API key>>. Use the https://www.battlemetrics.com/servers/dayz[BattleMetrics site] to find servers of interest (proximity, player count, rules, etc.)
-
-Each server has a unique ID. This is the string of numbers at the end of the URL. Copy these IDs.
-For example, in the URL https://www.battlemetrics.com/servers/dayz/8039514, the ID is `8039514`.
-
-Enter the ID of a server to have it translated to an IP. After this step, the process continues as though you were connecting by IP.
-
-=== Manage
-==== Manage > Add server by IP
-Add a server to your saved servers list by IP.
-
-Provide the IP and query port in `<IP>:<PORT>` format.
-
-Servers you add will be saved and listed when using the <<Main menu > My saved servers, My saved servers>> option.
-
-==== Manage > Add server by ID
-Requires a <<API key & server IDs, BM API key>>. Use the https://www.battlemetrics.com/servers/dayz[BattleMetrics site] to find servers of interest (proximity, player count, rules, etc.)
-
-Each server has a unique ID. This is the string of numbers at the end of the URL. Copy these IDs.
-For example, in the URL https://www.battlemetrics.com/servers/dayz/8039514, the ID is `8039514`.
-
-Servers you add will be saved and listed when using the <<Main menu > My saved servers, My saved servers>> option.
-
-==== Manage > Add (change) favorite server
-Prompts you to add/change a favorite server (limit one). The name of the server will be updated in the footer of the app when focused on the <<Main menu > Quick connect to favorite server, Quick connect to favorite server>> option in the <<Main menu>> context. If a favorite server is already enabled, this option switches to "Change favorite server."
-
-=== Options
-
-The options context is chiefly used to toggle settings, update API keys, or perform changes to mods.
-
-==== Options > List installed mods
-Prints a scrollable dialog containing all locally-installed mods and their corresponding symlink IDs and directory names.
-
-If you right-click on an entry in the list, you have the option of opening the Workshop page for the mod in Steam or deleting the local mod.
-
-==== Options > Toggle release branch
-Used to toggle the branch to fetch DZGUI from between `stable` and `testing`.
-
-The app ships with the stable branch enabled, with the testing branch being used to elaborate various experimental features.
-
-==== Options > Toggle mod install mode
-This feature is experimental. It attempts to queue the mods requested for download automatically, rather than prompting the user to subscribe to each one.
-
-[NOTE]
-When using auto mod installation, DZGUI will track the latest version of your installed mods and periodically synchronize their signatures next time you attempt to connect to a server. This means that if you satisfy the mods needed for a server, but updates to other mods you already have are found, an update will be triggered until all of your local mods are refreshed. Provided you tend to keep auto mod install on, these updates should be atomic and ensure that mods are always up to date.
-
-==== Options > Toggle Steam/Flatpak
-This feature should be used if there are concurrent installations of Steam on the local system. Toggle between using Steam or Flatpak Steam to launch DayZ.
-
-==== Options > Change player name
-Used to change the in-game player name that is broadcast when on servers.
-
-==== Options > Change Steam API key
-Used to change or update the Steam API key; can be used if the old key needs to be revoked and updated with a new one.
-
-==== Options > Change Battlemetrics API key
-Identical to the option above, only for Battlemetrics.
-
-==== Options > Force update local mods
-Attempts to update the signatures of all local mods and synchronize them with the latest versions available on Steam Workshop. This option should be used when <<Options > Toggle mod install mode, Toggle mod install mode>> is set to AUTO.
-
-This can be used in the event of mod corruption or linkage errors.
-
-==== Output system info to log file
-Writes a list of your current settings and system configuration to a local file that can be pasted into bug reports. This process may take some time.
-
-The file is written to `$HOME/.local/state/dzgui/logs/DZGUI_SYSTEM.log`
-
-=== Help
-
-The help context chiefly opens external documentation and support pages in the system-defined web browser or internal dialog.
-
-==== Options > View changelog
-Prints the entire changelog up to the current version in-app.
-
-==== Options > Show debug log
-Prints the DZGUI log file generated since the last session in a tabled format in-app.
-
-==== Help > Help file
-Uses xdg-open to open this documentation in the system browser.
-
-==== Help > Report a bug
-Uses xdg-open to open the https://github.com/aclist/dztui/issues[bug tracker] in the system browser.
-
-==== Help > Forum
-Uses xdg-open to open the https://github.com/aclist/dztui/discussions[discussion forum] in the system browser.
-
-==== Help > Sponsor
-Uses xdg-open to open the https://github.com/sponsors/aclist[sponsor page], where you can help fund development, in the system browser.
-
-==== Help > Hall of fame
-Uses xdg-open to open the https://aclist.github.io/dzgui/dzgui#_hall_of_fame[Hall of Fame], which recognizes those who actively contributed to the betterment of the application through bug reports and suggestions, in the system browser.
-
-=== Exit
-
-Exits the DZGUI application.
-
-=== Keybindings
-
-The "?" button opens a dialog that provides additional information about keybindings and navigation throughout the application.
-
-[NOTE]
-Due to size constraints, this button is not currently available on Steam Deck.
-
-== Server table and filters
-
-=== Table metadata
-
-[%autowidth]
-All server browser contexts (<<Main menu > My saved servers, My saved servers>>, <<Main menu > Server browser, Server browser>>, <<Main menu > Recent servers, Recent servers>>) share the same table layout.
-
-The table lists servers in columnar fashion according to:
-
-- **Name**: the server name and the menu context you are currently on
-- **Map**: the map name
-- **Perspective**: first-person (1PP) or third-person (3PP)
-- **Gametime**: in-game time on the 24-hour clock
-- **Players**: total players currently in-game
-- **Maximum**: total players the server supports
-- **Queue**: total players in the waiting queue (for full servers)
-- **Address**: the address in IP:Port format
-- **Qport**: the query port of the listening server
-
-Columns are width-adjustable, and the positions they are set to will be saved and persist across sessions. The saved column width is used uniformly across server browsing contexts.
-
-=== Contextual options
-
-When in a server browsing context, right click on any server in the list to expose a series of contextual options. These are:
-
-* **Add to (Remove from) saved servers**: add or remove the server to/from your saved servers list
-* **Copy IP to clipboard**: copy the game server IP to the system clipboard
-* **Show server-side mods**: opens a dialog with details about the name, Workshop ID, and local installation status of mods on the server. Select a mod to open its Workshop page in Steam
-* **Refresh player count**: refresh the player count for this server in-place in the table. Useful if some time has passed since you loaded the list and you want to see if the queue is open
-
-=== Filters
-The filter panel on the right-hand side of the table allows you to search by keyword, map type, and toggle different filters. These filters can be combined.
-
-==== Keyword search
-
-A text entry field where you can search for hits in any column of the table by partial string match. The field does not support regex, but does support basic backslash escapes for special characters, e.g., `\[My string\]`.
-
-Clear the keyword search and submit again to remove any keyword filter.
-
-==== Map search
-Opens a combobox that lets you filter the table by specific map.
-
-A variety of navigation bindings for interacting with the table and toggling filters can be found via the <<Keybindings>> dialog.
-
-==== Toggle filters
-
-A series of filters that restrict the results by game parameters. Also toggleable via the number keys.
-
-[%autowidth]
-|===
-|Filter|Usage
-
-|1PP|Include servers in first-person perspective
-|3PP|Include servers in third-person perspective
-|Day|Include servers with gametime between 0600 and 1659
-|Night|Include servers with gametime between 1700 and 0559
-|Empty|Include servers with 0 current players
-|Full|Include servers at maximum capacity
-|Low pop|Include servers with a current player count < 30% of the allowable capacity
-|Non-ASCII titles|Include servers with special symbols, Unicode, or text in the title.
-Note: unticking this filter will also exclude CJK languages, Cyrillic, and other special character sets
-|Duplicate|Include servers with duplicated server titles (there may be large numbers of misconfigured or generic servers with the same boilerplate title)
-|===
-
-[NOTE]
-It is possible to filter the list to 0 results if you combine or exclude logically opposed filter pairs, such as excluding both 'Day' and 'Night' servers, effectively restricting the list to no possible servers. If you expect to see results but do not, double-check your filters (and keywords) to make sure your search is not too restrictive.
-
-== Debug mode
-
-Debug mode can be enabled via the button toggle on the right panel. When debug mode is enabled, any attempt to connect to a server will function as before, excluding the final connection step. DZGUI will attempt to synchronize and download mods and then print a dialog showing what options would have actually been run when connecting to the server.
-
-This can be used to diagnose problems and test functionality without actually launching the game.
-
-== Troubleshooting/FAQ
-
-Please refer to the https://aclist.github.io/dzgui/kb.html[DZGUI Knowledge Base] for common issues.
-
-== Reference
-
-=== Config file key/value pairs
-The config file is located at `$HOME/.config/dztui/dztuirc`.
-
-Under normal usage, these values are populated and toggled automatically in-app. Deprecated keys are not listed.
-
-[%autowidth]
-|===
-|Key|Value
-
-|`api_key`|an optional BattleMetrics API key generated at BattleMetrics. See <<API key & server IDs>>
-|`auto_install`|permissible values are 0, 1, and 2. These are set internally depending on if the user enabled auto mod installation
-|`branch`|by default, set to `stable`; set to `testing` to fetch the testing branch
-|`debug`|by default, unset; when set to `1`, the launch options that would have been run are printed as a dry-run, instead of actually connecting (used for troubleshooting and submitting bug reports)
-|`default_steam_path`|the path to the default Steam client installation
-|`ip_list`|an array of server addresses; each record is a concatenation of the IP/GamePort/Queryport
-|`fav_server`|a single server to quick-connect to; a concatenation of the IP/Gameport/Queryport
-|`fav_label`|the human-readable name of the fav server set above
-|`name`|a custom "handle" name used to identify the player on a server (required by some servers)
-|`preferred_client`|whether the user prefers native Steam or Flatpak. This value is only set if concurrent versions of Steam are found on the system
-|`src_path`|the path to where DZGUI is currently being stored
-|`staging_dir`|a directory used to stage changes between updates
-|`steam_path`|the path to Steam detected/set during first-time setup
-|`steam_api`|the Steam API key. See <<API key & server IDs>>
-|===
-
-=== Hall of fame
-
-This section recognizes users who have gone above and beyond in submitting useful bug reports that helped in tracking down critical issues
-or resulted in the elaboration of important features. This list is not exhaustive, and any missing parties are errors of omission, but this does
-not diminish the gratitude I have for their contributions.
-
-.bongjutsu
-
-Consistently one of the first to report emergent bugs and provides clear, detailed ways of replicating the issue.
-
-.dj3hac
-Provided extensive debug information that was instrumental in solving issues with Flatpak Steam.
-
-.jiriks74
-Gives highly relevant information about edge cases, particularly as they concern the Steam beta client, Wayland, desktop environments, and experimental features.
-
-.MatheusLasserr
-Consistently provides constructive, straightforward suggestions about UI and readability improvements.
-
-.scandalouss
-Tracked down several highly obscure but key bugs in the early development of the application that were breaking discovery of mods.
-
-.StevelDusa
-Played a critical role in the elaboration of many of the features we now take for granted by being an early beta tester who not only reported bugs, but 
-helped workshop and brainstorm various ideas that turned into QOL features.
-
-.Thoughtduck216
-Contributed extensive beta testing of Steam Deck builds and provided ongoing troubleshooting for Steam Deck users
-
diff --git a/docs/dzgui_dark.adoc b/docs/dzgui_dark.adoc
deleted file mode 100644
index 967ffa5..0000000
--- a/docs/dzgui_dark.adoc
+++ /dev/null
@@ -1,608 +0,0 @@
-:nofooter:
-:toc: left
-:stylesheet: dark.css
-
-= DZGUI documentation (v5.x.x)
-DayZ server browser and mod manager for Linux | Last updated: {d}
-
-Click https://aclist.github.io/dzgui/dzgui.html[here] for light mode
-
-Looking for the DZGUI Knowledge Base? Click https://aclist.github.io/dzgui/kb_dark.html[here]
-
-== What this is
-A GUI version of https://github.com/aclist/dztui[DZTUI] for Linux. 
-Used to list official and community server details and quick connect to preferred servers 
-by staging mods and concatenating launch options automatically. 
-
-Development on DZTUI (terminal client) has stopped at this time. 
-Instead, DZGUI brings numerous functionality and security improvements and is intended to be a more user-friendly, 
-turnkey solution for graphical desktop environments, and can also be used on the Steam Deck or similar devices.
-
-== Setup
-=== Dependencies
-If not already installed, the below can be found in your system's package manager. 
-
-If any dependencies are missing when the application starts, it will warn you, so you need not take any preemptive measures here.
-
-All dependencies are installed out of the box on Steam Deck.
-
-- `curl`
-- `jq`
-- `zenity`
-- `steam`
-- `wmctrl` or `xdotool`
-- `PyGObject` (`python-gobject`)
-
-
-[NOTE]
-If you are using a self-compiled version of jq (e.g. gentoo), it must be configured with support for oniguruma (this is the default setting on most distributions).
-
-=== Preparation
-==== Step 1: Download DZGUI and make it executable
-
-**Automatic method: generic OS**
-
-Invoke the command below from a terminal:
-
-```
-curl -s "https://raw.githubusercontent.com/aclist/dztui/dzgui/install.sh" | bash
-```
-**Automatic method: nix-based systems (contributed by lelgenio)**
-
-Follow the instructions at https://github.com/lelgenio/dzgui-nix to ingest the package and dependencies
-into your system using flakes. 
-
-**Manual method**
-
-```
-git clone https://github.com/aclist/dztui.git
-chmod +x dzgui.sh
-./dzgui.sh
-```
-
-==== Step 2: update the vm.max_map_count value
-
-On most modern distributions, it will seldom be necessary to update this value anymore, since it is set to a sufficiently large number for performance-intensive applications.
-
-**Automatic method:**
-
-This is handled automatically by DZGUI if you just choose to run the application out of the box.
-You will be prompted for your sudo password in order to check whether the system map count is too small.
-This is a one-time check that will not be triggered again once the map count is updated.
-
-[NOTE]
-If you are using a Steam Deck, this step is not necessary.
-
-The process writes the count to the file `/etc/sysctl.d/dayz.conf`.
-
-If the system map count was lower than the threshold, it is updated to `1048576`.
-If the system map count was already higher, that value is interpolated into this file for redundancy purposes and to avoid sudo escalation on subsequent launches of the application.
-
-[NOTE]
-If, for reasons unrelated to DayZ, you choose at a later time to raise your system map count higher than it originally was and
-you find that the count is not sticking, check for the presence of the `dayz.conf` file to see if it is taking precedence and delete it accordingly.
-
-If you used the automatic method, you can skip to <<Step 3: Prepare a Steam account with a DayZ license, Step 3>> below.
-
-**Manual method:**
-
-If you wish to update this value yourself without intervention from DZGUI, you have two options:
-
-
-Invoke the command below for an **ephemeral change**. Note that if changing the map count on a one-time basis, it will revert to the old value after the system is rebooted.
-
-
-```
-sudo sysctl -w vm.max_map_count=1048576
-```
-
-Invoke the command below for a **persistent change**:
-```
-echo 'vm.max_map_count=1048576' | sudo tee /etc/sysctl.d/dayz.conf
-```
-
-==== Step 3: Prepare a Steam account with a DayZ license
-Enable a Proton version ≥ `6.8` (or use Proton Experimental) in the `Compatibility` field of the game's right-click options. As of this writing, any recent version of Proton should work, and it is encouraged to use the most recent one.
-
-=== API key & server IDs
-
-==== Steam Web API key (required)
-1. Register for a https://steamcommunity.com/dev/apikey[Steam Web API key] (free) using your Steam account. You will be asked for a unique URL for your app when registering. 
-2. Since this key is for a personal use application and does not actually call back anywhere, set a generic local identifier here like "127.0.0.1" or some other name that is meaningful to you.
-3. Once configured, you can insert this key in the app when launching it for the first time.
-
-[NOTE]
-If you are confused about this requirement, please refer to DZGUI Knowledge Base article https://aclist.github.io/dzgui/kb.html#DZG-007[DZG-007] for additional information.
-
-==== BattleMetrics API key (optional)
-
-This key is optional. Using this key in conjunction with the above allows you to also connect to and query servers by numerical ID instead of by IP. See <<Manage > Add server by ID, Add server by ID>>.
-
-1. Register for an API key at https://www.battlemetrics.com/account/register?after=%2Fdevelopers[BattleMetrics] (free).
-2. From the **Personal Access Tokens** area, Select **New Token**.
-3. Give the token any name in the field at the top.
-4. Leave all options **unchecked** and scroll to the bottom, select **Create Token**.
-5. Once configured, you can insert this key in the app when launching it for the first time (optional), or later on when using the connect/query by ID methods in the app for the first time.
-
-=== First-time launch
-
-It is always advised to have Steam running in the background. DZGUI is meant to run "on top of" Steam, and will warn you if Steam appears to not be running.
-
-DZGUI can be launched one of two ways.
-
-**From a terminal:**
-
-```
-./dzgui.sh
-```
-
-Launching from a terminal may give more verbose information in the event of a crash, and can be a good way of troubleshooting problems.
-
-**From the shortcut shipped with the application**:
-
-If you are using a desktop environment (DE) based on the Freedesktop specification, shortcuts will be installed for you.
-
-- One shortcut is located under the "Games" category of your system's applications list.
-- The other is accessed via the "DZGUI" desktop icon (Steam Deck only)
-
-After launching the app, follow the menu prompts onscreen. You will be asked to provide the following:
-
-- Player name (a handle name that identifies your character; required by some servers)
-- Steam API key (required)
-- BM API key (optional)
-
-==== Steam path discovery
-
-DZGUI will now attempt to locate your default Steam installation and DayZ path. You *must* have DayZ installed in your Steam library in order to proceed. (It can be installed to any drive of your choosing.)
-
-If DZGUI cannot find Steam or cannot find DayZ installed at the detected Steam path, it will prompt you to manually specify the path to your Steam installation.
-
-Specify the root, top-level entry point to Steam, not DayZ. E.g.,
-
-`/media/mydrive/Steam`, not `/media/mydrive/Steam/steamapps/common/DayZ`
-
-If your Steam installation is in a hidden folder but the file picker dialog does not show hidden folders, ensure that your GTK settings are set to show hidden files.
-
-For GTK 2, update the file `$HOME/.config/gtk-2.0/gtkfilechooser.ini` to contain this line:
-
-`ShowHidden=true`
-
-For GTK 3, invoke the command:
-
-`gsettings set org.gtk.Settings.FileChooser show-hidden true`
-
-=== Steam integration & artwork
-
-==== Adding DZGUI as a third-party app
-
-DZGUI can be added to Steam as a "non-Steam game" in order to facilitate integration with Steam Deck or desktop environments.
-
-1. Launch Steam in the "Large" (default) view.
-
-[NOTE]
-Steam Deck: you must switch to "Desktop Mode" and launch Steam from the desktop. Steam Deck's Game Mode view has limited support for configuration of custom games.
-
-[start=2]
-2. Select **Add a Game** > **Add a Non-Steam Game** from the lower left-hand corner of the Steam client.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/01.png[01,500]
-
-[start=3]
-3. Navigate to `$HOME/.local/share/applications/` and select `dzgui.desktop`
-4. Select **Add Selected Programs** to add a shortcut to DZGUI.
-
-==== Artwork
-
-DZGUI also ships with Steam cover artwork. It is located under:
-
-```
-$HOME/.local/share/dzgui
-```
-
-The artwork consists of five parts:
-
-[%autowidth]
-|===
-|Name|Description
-
-|Hero|a large horizontal banner used on the app's details page, and on landscape-orientation covers in the Recent Games section
-|Icon|a square icon used for the tree/list view of the Steam library
-|Grid|a vertical "box art" cover used on Steam library pages
-|Logo|a transparent icon used to remove Steam's default app text
-|dzgui|used by freedesktop shortcut to generate a desktop icon; not intended for manual use by the user
-|===
-
-===== Updating the artwork
-
-1. From the main library view, navigate to the app's details page and right-click the blank image header at the top.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/03.png[03,700]
-
-[start=2]
-2. Select **Set Custom Background**
-3. Select to display **All Files** from the File type dropdown
-4. Navigate to the artwork path described above and select `hero.png`.
-5. Next, right-click the image background and select **Set Custom Logo**. 
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/04.png[04,700]
-
-[start=5]
-5. Navigate to the same path and select `logo.png`. Notice that this removes the redundant app name that occluded the image.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/05.png[05,700]
-
-[start=6]
-6. Next, navigate to your Library index (looks like a bookshelf of cover art) and find the DZGUI app. 
-
-[start=7]
-7. Right-click its cover and select **Manage** > **Set custom artwork**.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/06.png[06,700]
-
-[start=8]
-8. Navigate to the same path and select `grid.png`. The final result:
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/07.png[07,700]
-
-[start=9]
-9. Right-click the DZGUI entry and select Properties to open the properties dialog. Next to the **Shortcut** field, you will see a small square box which represents the game's icon. Click this to open a file explorer and select `icon.png` from the path above. This will add a small icon to the list view.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/08.png[08,700]
-
-[start=10]
-10. After you launch DZGUI for the first time, you should return to the library view and select the Recent Games dropdown on the right-hand side. Steam shows a collection of box art based on categories like "Play Next", "Recent Games", etc. Look for a downward-pointing caret icon and click it, then select the "Recent Games" category. If DZGUI was the last item played, it will be shown with a landscape, rather than portrait, orientation cover, which is initially blank. To customize this cover, right click it and select `Manage > Set custom artwork`, then select the `hero.png` image again for this area.
-
-image::https://github.com/aclist/dztui/raw/dzgui/images/tutorial/09.png[09,700]
-
-==== Controller layout
-
-A controller layout for Steam Deck is available in the Steam community layouts section. Search for "DZGUI Official Config" to download it. This layout provides modal layers intended to facilitate interaction with the DZGUI interface, but does not attempt to customize in-game DayZ controls in a detailed fashion.
-
-Long-press the View button and Select button (☰) to toggle D-pad navigation. This creates an additional layer that lets you navigate through menus using the D-pad and A/B to respectively confirm selections and go back. Remember to toggle this layer off again after launching your game to revert back to the master layer.
-
-
-=== Updating the app
-If DZGUI detects a new upstream version, it will prompt you to download it automatically. 
-It backs up the original version before fetching the new one, then updates your config file with your existing values. Once finished, it will ask you to relaunch the app.
-
-If you decline to upgrade to the new version, DZGUI will continue to the main menu with the current version.
-
-[NOTE]
-New versions may include changes to bugs that could prevent you from playing on certain servers.
-Upgrading is always advised.
-
-If you experience a problem or need to restore the prior version of DZGUI and/or your configs, 
-it is enough to simply replace the new version with the old one and relaunch the app. 
-The file can be found at:
-
-```
-<path to script>/<script name>.old
-```
-E.g., if DZGUI is named `dzgui.sh`, in the path `$HOME/bin`, the backup will be located at
-```
-$HOME/bin/dzgui.sh.old
-```
-If launching DZGUI via its system shortcut, the backup file will be located under the path:
-
-```
-$HOME/.local/share/dzgui
-```
-
-Similarly, a backup config file will be located at:
-```
-$HOME/.config/dztui/dztuirc.old
-
-```
-
-=== Locale support
-
-For internationalization purposes, DZGUI will inherit the default locale setting on the system when displaying numbers. This is used for thousands separators in long numbers and decimal separators in fractional numbers.
-
-If you wish to use a specific regional numbering preference while retaining a different base system language (e.g., English language with German-style numbering), pass the desired locale as a variable before launching DZGUI:
-
-```
-LC_ALL=de_DE.UTF-8 ./dzgui.sh
-```
-
-If you intend to use this frequently, you could wrap the above in a script or alias.
-
-== Uninstallation
-
-To uninstall DZGUI and its associated files, invoke `./dzgui.sh` with the `-u` or `--uninstall` flag.
-
-Follow the prompts to choose from full uninstall (removes the application and all user-defined configuration files) or partial install (removes the application, but keeps user-defined configuration files).
-
-If you intend to reinstall DZGUI again, keeping your configuration files is recommended.
-
-== Basic usage
-Select from among the <<Menu contexts and options>> below.
-
-Connecting to a server consists of fetching metadata for the server you are searching for.
-
-DZGUI will check the server's modset against your local mods. If you are missing any, 
-it will prompt you to download them through the Steam Workshop.
-
-[NOTE]
-You must be logged into Steam for mod changes to take effect.
-It can take some time for the mods to download and update.
-
-Once all of the mods are downloaded and staged, DZGUI will notify you that it is ready to connect.
-The app hands the launch parameters to Steam, after which point DZGUI is not involved in the operation of DayZ.
-
-== Menu contexts and options
-
-The main view displays a series of contexts, visualized as buttons, on the right-hand side. You can click these to navigate between different areas.
-
-A footer at the bottom of the application lists an explanatory tooltip for the currently focused option. In the case of server browsing contexts, this tooltip will be updated to show the distance in kilometers to the server and an estimated ping (round-trip latency).
-
-The right-hand side of the footer displays the branch of DZGUI you are using (stable/testing), the mod install mode (normal/auto), and the version number. For example, if you are on the stable branch, using the default install mode, and using DZGUI v5.0.0, the footer will read:
-
-`STABLE | NORMAL | DZGUI 5.0.0`
-
-=== Main menu
-
-The main menu context is the central entry point to server navigation, letting you browse the list of publicly available servers, check your list of favorited servers, connect to recent servers, et cetera.
-
-==== Main menu > Server browser
-The server browser retrieves and lists all publicly broadcasting servers (including official ones) in a table.
-These servers can be filtered by various parameters in order to display a more granular result.
-
-After you select a server from the list and choose to connect, the application continues to the mod validation step.
-
-For details on interacting with server browsing contexts, which are uniform across different menus, refer to <<Server table and filters>>.
-
-==== Main menu > My saved servers
-Prints metadata for the servers saved in your servers list. Servers can be added via the <<Manage>> context or via the <<Contextual options>> of server table views.
-
-For details on interacting with server browsing contexts, which are uniform across different menus, refer to <<Server table and filters>>.
-
-==== Main menu > Quick connect to favorite server
-Bypasses the server list and quick-connects to a single favorite server specified in advance using the <<Manage > Add (change) favorite server, Add (change) favorite server>> option.
-
-==== Main menu > Recent servers
-This feature queries the history file for the last 10 servers connected to by any means
-(server browser, favorite servers, connect-by-IP, etc.), and presents them in a table.
-
-For details on interacting with server browsing contexts, which are uniform across different menus, refer to <<Server table and filters>>.
-
-==== Main menu > Connect by IP
-Provide the IP and query port in `<IP>:<PORT>` format. Depending on the mod installation method you have selected, DZGUI will proceed to stage and download mods and prompt you before connecting.
-
-==== Main menu > Connect by ID
-Requires a <<API key & server IDs, BM API key>>. Use the https://www.battlemetrics.com/servers/dayz[BattleMetrics site] to find servers of interest (proximity, player count, rules, etc.)
-
-Each server has a unique ID. This is the string of numbers at the end of the URL. Copy these IDs.
-For example, in the URL https://www.battlemetrics.com/servers/dayz/8039514, the ID is `8039514`.
-
-Enter the ID of a server to have it translated to an IP. After this step, the process continues as though you were connecting by IP.
-
-=== Manage
-==== Manage > Add server by IP
-Add a server to your saved servers list by IP.
-
-Provide the IP and query port in `<IP>:<PORT>` format.
-
-Servers you add will be saved and listed when using the <<Main menu > My saved servers, My saved servers>> option.
-
-==== Manage > Add server by ID
-Requires a <<API key & server IDs, BM API key>>. Use the https://www.battlemetrics.com/servers/dayz[BattleMetrics site] to find servers of interest (proximity, player count, rules, etc.)
-
-Each server has a unique ID. This is the string of numbers at the end of the URL. Copy these IDs.
-For example, in the URL https://www.battlemetrics.com/servers/dayz/8039514, the ID is `8039514`.
-
-Servers you add will be saved and listed when using the <<Main menu > My saved servers, My saved servers>> option.
-
-==== Manage > Add (change) favorite server
-Prompts you to add/change a favorite server (limit one). The name of the server will be updated in the footer of the app when focused on the <<Main menu > Quick connect to favorite server, Quick connect to favorite server>> option in the <<Main menu>> context. If a favorite server is already enabled, this option switches to "Change favorite server."
-
-=== Options
-
-The options context is chiefly used to toggle settings, update API keys, or perform changes to mods.
-
-==== Options > List installed mods
-Prints a scrollable dialog containing all locally-installed mods and their corresponding symlink IDs and directory names.
-
-If you right-click on an entry in the list, you have the option of opening the Workshop page for the mod in Steam or deleting the local mod.
-
-==== Options > Toggle release branch
-Used to toggle the branch to fetch DZGUI from between `stable` and `testing`.
-
-The app ships with the stable branch enabled, with the testing branch being used to elaborate various experimental features.
-
-==== Options > Toggle mod install mode
-This feature is experimental. It attempts to queue the mods requested for download automatically, rather than prompting the user to subscribe to each one.
-
-[NOTE]
-When using auto mod installation, DZGUI will track the latest version of your installed mods and periodically synchronize their signatures next time you attempt to connect to a server. This means that if you satisfy the mods needed for a server, but updates to other mods you already have are found, an update will be triggered until all of your local mods are refreshed. Provided you tend to keep auto mod install on, these updates should be atomic and ensure that mods are always up to date.
-
-==== Options > Toggle Steam/Flatpak
-This feature should be used if there are concurrent installations of Steam on the local system. Toggle between using Steam or Flatpak Steam to launch DayZ.
-
-==== Options > Change player name
-Used to change the in-game player name that is broadcast when on servers.
-
-==== Options > Change Steam API key
-Used to change or update the Steam API key; can be used if the old key needs to be revoked and updated with a new one.
-
-==== Options > Change Battlemetrics API key
-Identical to the option above, only for Battlemetrics.
-
-==== Options > Force update local mods
-Attempts to update the signatures of all local mods and synchronize them with the latest versions available on Steam Workshop. This option should be used when <<Options > Toggle mod install mode, Toggle mod install mode>> is set to AUTO.
-
-This can be used in the event of mod corruption or linkage errors.
-
-==== Output system info to log file
-Writes a list of your current settings and system configuration to a local file that can be pasted into bug reports. This process may take some time.
-
-The file is written to `$HOME/.local/state/dzgui/logs/DZGUI_SYSTEM.log`
-
-=== Help
-
-The help context chiefly opens external documentation and support pages in the system-defined web browser or internal dialog.
-
-==== Options > View changelog
-Prints the entire changelog up to the current version in-app.
-
-==== Options > Show debug log
-Prints the DZGUI log file generated since the last session in a tabled format in-app.
-
-==== Help > Help file
-Uses xdg-open to open this documentation in the system browser.
-
-==== Help > Report a bug
-Uses xdg-open to open the https://github.com/aclist/dztui/issues[bug tracker] in the system browser.
-
-==== Help > Forum
-Uses xdg-open to open the https://github.com/aclist/dztui/discussions[discussion forum] in the system browser.
-
-==== Help > Sponsor
-Uses xdg-open to open the https://github.com/sponsors/aclist[sponsor page], where you can help fund development, in the system browser.
-
-==== Help > Hall of fame
-Uses xdg-open to open the https://aclist.github.io/dzgui/dzgui#_hall_of_fame[Hall of Fame], which recognizes those who actively contributed to the betterment of the application through bug reports and suggestions, in the system browser.
-
-=== Exit
-
-Exits the DZGUI application.
-
-=== Keybindings
-
-The "?" button opens a dialog that provides additional information about keybindings and navigation throughout the application.
-
-[NOTE]
-Due to size constraints, this button is not currently available on Steam Deck.
-
-== Server table and filters
-
-=== Table metadata
-
-[%autowidth]
-All server browser contexts (<<Main menu > My saved servers, My saved servers>>, <<Main menu > Server browser, Server browser>>, <<Main menu > Recent servers, Recent servers>>) share the same table layout.
-
-The table lists servers in columnar fashion according to:
-
-- **Name**: the server name and the menu context you are currently on
-- **Map**: the map name
-- **Perspective**: first-person (1PP) or third-person (3PP)
-- **Gametime**: in-game time on the 24-hour clock
-- **Players**: total players currently in-game
-- **Maximum**: total players the server supports
-- **Queue**: total players in the waiting queue (for full servers)
-- **Address**: the address in IP:Port format
-- **Qport**: the query port of the listening server
-
-Columns are width-adjustable, and the positions they are set to will be saved and persist across sessions. The saved column width is used uniformly across server browsing contexts.
-
-=== Contextual options
-
-When in a server browsing context, right click on any server in the list to expose a series of contextual options. These are:
-
-* **Add to (Remove from) saved servers**: add or remove the server to/from your saved servers list
-* **Copy IP to clipboard**: copy the game server IP to the system clipboard
-* **Show server-side mods**: opens a dialog with details about the name, Workshop ID, and local installation status of mods on the server. Select a mod to open its Workshop page in Steam
-* **Refresh player count**: refresh the player count for this server in-place in the table. Useful if some time has passed since you loaded the list and you want to see if the queue is open
-
-=== Filters
-The filter panel on the right-hand side of the table allows you to search by keyword, map type, and toggle different filters. These filters can be combined.
-
-==== Keyword search
-
-A text entry field where you can search for hits in any column of the table by partial string match. The field does not support regex, but does support basic backslash escapes for special characters, e.g., `\[My string\]`.
-
-Clear the keyword search and submit again to remove any keyword filter.
-
-==== Map search
-Opens a combobox that lets you filter the table by specific map.
-
-A variety of navigation bindings for interacting with the table and toggling filters can be found via the <<Keybindings>> dialog.
-
-==== Toggle filters
-
-A series of filters that restrict the results by game parameters. Also toggleable via the number keys.
-
-[%autowidth]
-|===
-|Filter|Usage
-
-|1PP|Include servers in first-person perspective
-|3PP|Include servers in third-person perspective
-|Day|Include servers with gametime between 0600 and 1659
-|Night|Include servers with gametime between 1700 and 0559
-|Empty|Include servers with 0 current players
-|Full|Include servers at maximum capacity
-|Low pop|Include servers with a current player count < 30% of the allowable capacity
-|Non-ASCII titles|Include servers with special symbols, Unicode, or text in the title.
-Note: unticking this filter will also exclude CJK languages, Cyrillic, and other special character sets
-|Duplicate|Include servers with duplicated server titles (there may be large numbers of misconfigured or generic servers with the same boilerplate title)
-|===
-
-[NOTE]
-It is possible to filter the list to 0 results if you combine or exclude logically opposed filter pairs, such as excluding both 'Day' and 'Night' servers, effectively restricting the list to no possible servers. If you expect to see results but do not, double-check your filters (and keywords) to make sure your search is not too restrictive.
-
-== Debug mode
-
-Debug mode can be enabled via the button toggle on the right panel. When debug mode is enabled, any attempt to connect to a server will function as before, excluding the final connection step. DZGUI will attempt to synchronize and download mods and then print a dialog showing what options would have actually been run when connecting to the server.
-
-This can be used to diagnose problems and test functionality without actually launching the game.
-
-== Troubleshooting/FAQ
-
-Please refer to the https://aclist.github.io/dzgui/kb.html[DZGUI Knowledge Base] for common issues.
-
-== Reference
-
-=== Config file key/value pairs
-The config file is located at `$HOME/.config/dztui/dztuirc`.
-
-Under normal usage, these values are populated and toggled automatically in-app. Deprecated keys are not listed.
-
-[%autowidth]
-|===
-|Key|Value
-
-|`api_key`|an optional BattleMetrics API key generated at BattleMetrics. See <<API key & server IDs>>
-|`auto_install`|permissible values are 0, 1, and 2. These are set internally depending on if the user enabled auto mod installation
-|`branch`|by default, set to `stable`; set to `testing` to fetch the testing branch
-|`debug`|by default, unset; when set to `1`, the launch options that would have been run are printed as a dry-run, instead of actually connecting (used for troubleshooting and submitting bug reports)
-|`default_steam_path`|the path to the default Steam client installation
-|`ip_list`|an array of server addresses; each record is a concatenation of the IP/GamePort/Queryport
-|`fav_server`|a single server to quick-connect to; a concatenation of the IP/Gameport/Queryport
-|`fav_label`|the human-readable name of the fav server set above
-|`name`|a custom "handle" name used to identify the player on a server (required by some servers)
-|`preferred_client`|whether the user prefers native Steam or Flatpak. This value is only set if concurrent versions of Steam are found on the system
-|`src_path`|the path to where DZGUI is currently being stored
-|`staging_dir`|a directory used to stage changes between updates
-|`steam_path`|the path to Steam detected/set during first-time setup
-|`steam_api`|the Steam API key. See <<API key & server IDs>>
-|===
-
-=== Hall of fame
-
-This section recognizes users who have gone above and beyond in submitting useful bug reports that helped in tracking down critical issues
-or resulted in the elaboration of important features. This list is not exhaustive, and any missing parties are errors of omission, but this does
-not diminish the gratitude I have for their contributions.
-
-.bongjutsu
-
-Consistently one of the first to report emergent bugs and provides clear, detailed ways of replicating the issue.
-
-.dj3hac
-Provided extensive debug information that was instrumental in solving issues with Flatpak Steam.
-
-.jiriks74
-Gives highly relevant information about edge cases, particularly as they concern the Steam beta client, Wayland, desktop environments, and experimental features.
-
-.MatheusLasserr
-Consistently provides constructive, straightforward suggestions about UI and readability improvements.
-
-.scandalouss
-Tracked down several highly obscure but key bugs in the early development of the application that were breaking discovery of mods.
-
-.StevelDusa
-Played a critical role in the elaboration of many of the features we now take for granted by being an early beta tester who not only reported bugs, but 
-helped workshop and brainstorm various ideas that turned into QOL features.
-
-.Thoughtduck216
-Contributed extensive beta testing of Steam Deck builds and provided ongoing troubleshooting for Steam Deck users
-
diff --git a/docs/kb.adoc b/docs/kb.adoc
deleted file mode 100644
index 8cb54d8..0000000
--- a/docs/kb.adoc
+++ /dev/null
@@ -1,28 +0,0 @@
-:nofooter:
-:toc: left
-:stylesheet: custom.css
-
-= DZGUI Knowledge Base (v5.x.x)
-FAQs for DZGUI
-
-Click https://aclist.github.io/dzgui/kb_dark.html[here] for dark mode
-
-Looking for the main DZGUI documentation? Click https://aclist.github.io/dzgui/dzgui.html[here]
-
-include::kb_sections/dzg001.adoc[]
-
-include::kb_sections/dzg002.adoc[]
-
-include::kb_sections/dzg003.adoc[]
-
-include::kb_sections/dzg004.adoc[]
-
-include::kb_sections/dzg005.adoc[]
-
-include::kb_sections/dzg006.adoc[]
-
-include::kb_sections/dzg007.adoc[]
-
-include::kb_sections/dzg008.adoc[]
-
-include::kb_sections/dzg009.adoc[]
diff --git a/docs/kb_dark.adoc b/docs/kb_dark.adoc
deleted file mode 100644
index 0b023c1..0000000
--- a/docs/kb_dark.adoc
+++ /dev/null
@@ -1,28 +0,0 @@
-:nofooter:
-:toc: left
-:stylesheet: dark.css
-
-= DZGUI Knowledge Base (v5.x.x)
-FAQs for DZGUI
-
-Click https://aclist.github.io/dzgui/kb.html[here] for light mode
-
-Looking for the main DZGUI documentation? Click https://aclist.github.io/dzgui/dzgui_dark.html[here]
-
-include::kb_sections/dzg001.adoc[]
-
-include::kb_sections/dzg002.adoc[]
-
-include::kb_sections/dzg003.adoc[]
-
-include::kb_sections/dzg004.adoc[]
-
-include::kb_sections/dzg005.adoc[]
-
-include::kb_sections/dzg006.adoc[]
-
-include::kb_sections/dzg007.adoc[]
-
-include::kb_sections/dzg008.adoc[]
-
-include::kb_sections/dzg009.adoc[]
diff --git a/docs/kb_sections/dzg001.adoc b/docs/kb_sections/dzg001.adoc
deleted file mode 100644
index c9a8ff5..0000000
--- a/docs/kb_sections/dzg001.adoc
+++ /dev/null
@@ -1,11 +0,0 @@
-[[DZG-001, DZG-001]]
-== DZG-001: Periodically getting dropped from servers, or servers appear unreachable
-Last updated: {d}
-
-It is a longstanding issue in DayZ that the game opens a large number of connections when querying servers and/or while connected to servers. This can result in excess traffic on the user's PC which, depending on how much headroom your network has, can lead to getting dropped, unresponsiveness, or a timeout.
-
-If you are on Wi-Fi, try switching to a wired connection and see if the problem resolves itself. If it does, your wireless router settings do not have enough headroom for max simultaneous connections. Use a wired connection, or update your network settings to a more permissive setup.
-
-Bohemia has acknowledged this issue going back 10+ years and stated that DayZ has a heavy impact on the network, but there is as yet no proposed solution on the DayZ side.
-
-This issue is frequently seen on Steam Deck, due to the tendency for users to use it in an untethered Wi-Fi setup.
diff --git a/docs/kb_sections/dzg002.adoc b/docs/kb_sections/dzg002.adoc
deleted file mode 100644
index ca5fb6c..0000000
--- a/docs/kb_sections/dzg002.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-[[DZG-002,DZG-002]]
-== DZG-002: Some servers appear locked in the official DayZ client, and are unreachable in DZGUI
-Last updated: {d}
-
-This is a variant of <<DZG-001>>.
diff --git a/docs/kb_sections/dzg003.adoc b/docs/kb_sections/dzg003.adoc
deleted file mode 100644
index 4a81d3c..0000000
--- a/docs/kb_sections/dzg003.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-[[DZG-003, DZG-003]]
-== DZG-003: On Steam Deck, DayZ becomes unresponsive/sluggish over time
-Last updated: {d}
-
-When DayZ is open for 1+ hours, a gradual loss in performance and FPS may occur on the Steam Deck.
-
-A solution that seems to work for most users is to install https://github.com/CryoByte33/steam-deck-utilities[Cryo Utilities], a third-party performance management application.
diff --git a/docs/kb_sections/dzg004.adoc b/docs/kb_sections/dzg004.adoc
deleted file mode 100644
index 25f7d7d..0000000
--- a/docs/kb_sections/dzg004.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-[[DZG-004, DZG-004]]
-== DZG-004: On Steam Deck, some mods in the Workshop show a black screen when DZGUI attempts to open them
-Last updated: {d}
-
-This is a bug in the Steam client that is being tracked at Valve's Steam for Linux issue tracker https://github.com/ValveSoftware/steam-for-linux/issues/9598[here].
-
-To resolve this issue, manually intervene in the Steam client by selecting a different context (e.g., Store, Library), waiting for it to load, then navigating back to the Workshop context. This should clear the blockage and allow the contents to render.
diff --git a/docs/kb_sections/dzg005.adoc b/docs/kb_sections/dzg005.adoc
deleted file mode 100644
index b254f7a..0000000
--- a/docs/kb_sections/dzg005.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-[[DZG-005,DZG-005]]
-== DZG-005: Rendering problems with objects in the Winter Chernarus v2 mod 
-Last updated: {d}
-
-This mod has LOD (level of detail) bugs that may cause objects near the player, such as leaves, to render incorrectly, or cause distant trees to pop in abruptly. This is an acknowledged issue with the mod itself, not with DayZ or DZGUI.
-
-There is no user-side fix for this issue; it is a problem solely on the mod side.
diff --git a/docs/kb_sections/dzg006.adoc b/docs/kb_sections/dzg006.adoc
deleted file mode 100644
index 97fa788..0000000
--- a/docs/kb_sections/dzg006.adoc
+++ /dev/null
@@ -1,11 +0,0 @@
-[[DZG-006,DZG-006]]
-== DZG-006: After moving DayZ to another drive, DZGUI fails to locate it on initial setup
-Last updated: {d}
-
-If you recently moved the location of DayZ using Steam's internal dialogs, it may take some time for this information to update internally on Steam's side.
-
-Steam stores the location of installed games in a unified file, and DZGUI checks this file during initial setup to determine where Steam claims DayZ is installed.
-
-If you recently moved DayZ to a different drive or partition but did not restart Steam, this information may be out of date, causing Steam to report the wrong location.
-
-Try restarting the Steam client and starting the DZGUI initial setup again.
diff --git a/docs/kb_sections/dzg007.adoc b/docs/kb_sections/dzg007.adoc
deleted file mode 100644
index af549b9..0000000
--- a/docs/kb_sections/dzg007.adoc
+++ /dev/null
@@ -1,17 +0,0 @@
-[[DZG-007,DZG-007]]
-== DZG-007: Why do I need a Steam Web API key? Is it safe?
-Last updated: {d}
-
-In order to provide a server browser showing a searchable list of all available servers, DZGUI utilizes the Steam Web API.
-
-Actual connections and queries to individual servers are performed directly between the computer and the DayZ server.
-
-DZGUI gets its server information directly from the most authoritative source: Steam. It does this by letting the user be solely in control of their own API key and the application in an authenticated way. Users explicitly get permission to use a Web API key instead of scraping DayZ server info from third-party sites.
-
-Everything that happens between DZGUI and the Steam Web API endpoint takes place solely on the user's computer, using a GET request (fetch server list), and no information gets sent back to the developer. DZGUI does not scrape third party DayZ APIs without permission.
-
-There is some misconception that a Steam Web API key could be used to gain information about a user's account or control their account. Not only is this not possible, but the Web API key is used solely by the user on their own computer and is protected by Steam Guard.
-
-A Steam Web API key is the most strict way of getting authentic, reliable, and consistent server information in a zero-trust model.
-
-You are responsible for the creation, storage, management, and revocation of your Web API key.
diff --git a/docs/kb_sections/dzg008.adoc b/docs/kb_sections/dzg008.adoc
deleted file mode 100644
index e35dc2e..0000000
--- a/docs/kb_sections/dzg008.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-[[DZG-008,DZG-008]]
-== DZG-008: DZGUI server browser stops working, and Steam API key is seemingly malformed
-Last updated: {d}
-
-In order to use a Steam API key, you will have to enable Steam Guard (2FA) protection on your account. If you previously generated an API key and enabled Steam Guard, but then disabled Steam Guard for some other reason, this will also disable any prior API keys you had.
-
-If, after setting up DZGUI, you inadvertently turned off Steam Guard for some reason, check to see if your API key has been disabled, and reapply Steam Guard accordingly.
diff --git a/docs/kb_sections/dzg009.adoc b/docs/kb_sections/dzg009.adoc
deleted file mode 100644
index 87c63f0..0000000
--- a/docs/kb_sections/dzg009.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-[[DZG-009,DZG-009]]
-== DZG-009: Livonia map is missing from maps dropdown in DZGUI
-Last updated: {d}
-
-The Livonia map was iterated off of a map used for the Arma 3 Contact DLC, and is internally called Enoch. Servers running the Livonia map thus use the internal name. Search for Enoch in the list.

From adb921dc9303bd64c5b73b1111f20ee569be565f Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 6 Jan 2025 22:09:18 +0900
Subject: [PATCH 84/99] chore: update changelog

---
 CHANGELOG.md | 2 ++
 README.md    | 6 +++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 620e8f9..e175b50 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,8 @@
 - Update forum URL
 - Reword Help section links to include destination
 - Update README.md
+- Update IP database to 2025-01
+- Reduce IP database size by 50%
 ### Dropped
 - Removed temporary mod ID output in debug logs
 - Removed Hall of Fame section from button links, moved inside documentation
diff --git a/README.md b/README.md
index 93f8559..6c131a4 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,11 @@ This overcomes certain limitations in the Linux client and helps prepare the gam
 
 ## Setup and usage
 
-Refer to the [manual](https://aclist.codeberg.page) for installation and setup instructions.
+Refer to the documentation for installation and setup instructions:
+
+- [GitHub](https://aclist.github.io/dzgui/dzgui.html)
+- [Mirror (Codeberg)](https://aclist.codeberg.page)
+
 
 ![Alt text](/images/example.png)
 

From 2d7ab3aec6188b7985f3a0df8e7931a567bd5976 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 6 Jan 2025 22:16:21 +0900
Subject: [PATCH 85/99] docs: update readme

---
 README.md | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/README.md b/README.md
index 6c131a4..553e72e 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,15 @@
 ## What this is
 DZGUI allows you to connect to both official and modded/community DayZ servers on Linux and provides a graphical interface for doing so.
 
-This overcomes certain limitations in the Linux client and helps prepare the game to launch by providing the following:
+This overcomes certain limitations in the Linux client and helps prepare the game to launch by providing features like:
 
-1. Search for and display server metadata in a table (server name, player count, ping, queue size, current gametime, distance, IP)
-2. Add/delete/manage favorite servers by IP or ID
-3. Quick-connect to favorite/recent servers
-4. Find and prepare mods being requested by servers (choose from manual or automatic installation)
-5. Bulk delete/update local mods
-6. Concatenate launch options to pass to Steam
-7. Connect to mod-enabled LAN servers
+- Search for and display server metadata in a table (server name, player count, ping, queue size, current gametime, distance, IP)
+- Add/delete/manage favorite servers by IP or ID
+- Quick-connect to favorite/recent servers
+- Find and prepare mods being requested by servers (choose from manual or automatic installation)
+- Bulk delete/update local mods
+- Concatenate launch options to pass to Steam
+- Connect to mod-enabled LAN servers
 
 ## Setup and usage
 
@@ -19,7 +19,7 @@ Refer to the documentation for installation and setup instructions:
 - [Mirror (Codeberg)](https://aclist.codeberg.page)
 
 
-![Alt text](/images/example.png)
+![A screenshot of DZGUI](/images/example.png)
 
 ## Attribution
 

From c9c8337c3b76e7ac1322d66725a19c8892fad65f Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 6 Jan 2025 22:58:01 +0900
Subject: [PATCH 86/99] chore: update image

---
 images/example.png | Bin 477676 -> 133344 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/images/example.png b/images/example.png
index 07360ac20547305f0003f1f99623f7525e988ddd..2ddcf5e9dae9da6daff9cb62dec81d67fe1649ee 100644
GIT binary patch
literal 133344
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
E0(VTX5C8xG

literal 477676
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%0A;ynKq_Kxk_!5zt!Ts
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
aAi;gasNaHhhmzIrFLhb5xWswm-v0pRK@t7{


From 0e18839024e67211958a2513e869a2794c6bbf51 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Mon, 6 Jan 2025 23:30:14 +0900
Subject: [PATCH 87/99] fix: dict, not list

---
 dzgui.sh      | 2 +-
 helpers/ui.py | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index e9e2a12..634ba86 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -584,7 +584,7 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="a2f9134c9b415a2be1d54a7e91065ee0"
+        ["ui.py"]="d3ad9153d8599bea0eede9fd3121ee8e"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
         ["funcs"]="b928622aa16e966a5098df02bce6dc3b"
diff --git a/helpers/ui.py b/helpers/ui.py
index 02fe315..c9aea79 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -2445,10 +2445,10 @@ class ModSelectionPanel(Gtk.Box):
         self.set_orientation(Gtk.Orientation.VERTICAL)
 
         labels = [
-                ["label": "Select all", "tooltip": "Bulk selects all mods"],
-                ["label": "Unselect all", "tooltip": "Bulk unselects all mods"],
-                ["label": "Delete selected", "tooltip": "Deletes selected mods from the system"],
-                ["label": "Highlight stale", "tooltip": "Shows locally-installed mods\nwhich are not used by any server\nin your Saved Servers"]
+                {"label": "Select all", "tooltip": "Bulk selects all mods"},
+                {"label": "Unselect all", "tooltip": "Bulk unselects all mods"},
+                {"label": "Delete selected", "tooltip": "Deletes selected mods from the system"},
+                {"label": "Highlight stale", "tooltip": "Shows locally-installed mods\nwhich are not used by any server\nin your Saved Servers"}
                 ]
 
         self.active_button = None

From 54a7c7976cd8b9a65da075c85c20238fec0960c8 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 7 Jan 2025 00:33:58 +0900
Subject: [PATCH 88/99] change: update URL

---
 dzgui.sh      | 2 +-
 helpers/funcs | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index 634ba86..4baa2ae 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -587,7 +587,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="d3ad9153d8599bea0eede9fd3121ee8e"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="b928622aa16e966a5098df02bce6dc3b"
+        ["funcs"]="5624b1e44a43c318775caa5d0ceef1f0"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index b669fc5..9260e78 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -78,7 +78,7 @@ url_prefix="https://raw.githubusercontent.com/$author/$repo"
 stable_url="$url_prefix/dzgui"
 testing_url="$url_prefix/testing"
 releases_url="$gh_prefix/$author/$repo/releases/download/browser"
-help_url="https://$author.github.io/dzgui/dzgui"
+help_url="https://$author.github.io/dzgui/index"
 help_url2="https://$author.codeberg.page"
 forum_url="https://old.reddit.com/r/dzgui"
 sponsor_url="$gh_prefix/sponsors/$author"

From 83fb021aa927f83478a947e33499ffb9cbac2660 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 7 Jan 2025 00:44:20 +0900
Subject: [PATCH 89/99] docs: update changelog

---
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index e175b50..df3358e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@
 - Update README.md
 - Update IP database to 2025-01
 - Reduce IP database size by 50%
+- Update documentation to 5.6.x standard
 ### Dropped
 - Removed temporary mod ID output in debug logs
 - Removed Hall of Fame section from button links, moved inside documentation

From 4df12605fcfd9add485ce7d90dc3ae0b5ac03a7d Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 7 Jan 2025 00:55:58 +0900
Subject: [PATCH 90/99] chore: update changelog

---
 CHANGELOG.md | 210 ++++++++++++++-------------------------------------
 dzgui.sh     |   2 +-
 2 files changed, 58 insertions(+), 154 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index df3358e..30bbeea 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,197 +1,101 @@
 # Changelog
 
-## [5.6.0-beta.21] 2024-01-06
+## [5.6.0] 2024-01-06
 ### Added
-- Add in-app documentation link to Codeberg mirror
+- Application header bar and controls
+- Menu context subtitle in header bar
+- Bulk delete mods (via 'List installed mods' list). Not compatible with Manual Mod install mode
+- Highlight stale mods in mods list
+- Added --steam launch parameter
+- Open Steam workshop subscriptions dialog when switching from Manual to Auto mode
 - Hover tooltips to most buttons
+- Add in-app documentation link to Codeberg mirror
+- Additional logging
 ### Fixed
-- Prevent ArrowUp/ArrowDown input when inside keyword field
+- Avoid sudo escalation if system map count is sufficient (jiriks74)
+- Duplicate dialog title on Steam Deck
+- Resolve remote IP when saving records for game servers with multiple hosts
+- More performant symlink traversal when checking for legacy links
+- Only iterate on missing symlinks at boot (400% performance uplift)
+- Fix for server list truncation causing some servers to not appear in results
+- Empty dialog popups if user manually deletes local mods while application is running
+- Update statusbar when removing servers from list/repopulating
+- Abort DayZ path discovery if Steam files are not synched
+- Race condition when checking for installed mods
+- Favorite server message not updating correctly
+- Improved handling for cases where there are no locally installed mods
+- Set up mod symlinks at boot, rather than only on server connect
+- Prevent context menus from opening when table is empty
+- When reloading table in-place, prevent duplicate panel elements from being added if already present
+- Clean up local mod signatures from versions file when deleting mods
+- Focus first row when opening mods list
 ### Changed
+- Redact usernames in log files
+- Prevent ArrowUp/ArrowDown input when inside keyword field
+- Admonish user to restart Steam in error dialog if DayZ path could not be found
+- Refactor control flow for more robust contextual parsing
+- Stop sending modal dialog hints to outer window
+- Clean up signal emission
+- Clarify some error messages and normalize text formatting
 - Update forum URL
-- Reword Help section links to include destination
 - Update README.md
 - Update IP database to 2025-01
 - Reduce IP database size by 50%
 - Update documentation to 5.6.x standard
 ### Dropped
-- Removed temporary mod ID output in debug logs
-- Removed Hall of Fame section from button links, moved inside documentation
+- Removed Hall of Fame section from button links, to be moved inside documentation
 - Remove unused imports
 
-## [5.6.0-beta.20] 2024-12-23
-### Added
-- Output real and resolved mod ids to logs (temporary)
-- Added -steam launch parameter
-### Fixed
-- Only iterate on missing symlinks
-- Move logging up
-
-## [5.6.0-beta.19] 2024-12-18
-### Added
-- Redact usernames in log files
-### Fixed
-- More performant symlink traversal when checking for legacy links
-
-## [5.6.0-beta.18] 2024-12-14
-### Added
-- Open Steam workshop subscriptions dialog
-- Additional logging
-### Fixed
-- Empty dialog popups if user manually deletes local mods while application is running
-- Abort DayZ path discovery if VDF if Steam files are not synched
-- Avoid sudo escalation if system map count is sufficient (jiriks74)
-### Changed
-- Admonish user to restart Steam in error dialog if DayZ path could not be found
-
-## [5.6.0-beta.17] 2024-12-14
-### Added
-- Additional logging
-
-## [5.6.0-beta.16] 2024-12-13
+## [5.5.3] 2024-12-13
 ### Fixed
 - Add remote resource health checks before downloading updates
 ### Added
 - Add fallback repository
 
-## [5.6.0-beta.11] 2024-12-07
+## [5.5.1] 2024-12-03
 ### Fixed
-- Add missing function definition
+- Support localized decimal separators when parsing installed mod sizes
 
-## [5.6.0-beta.10] 2024-12-04
-### Fixed
-- Untoggle highlight button when repopulating mod list
-- Resolve remote IP when saving records for game servers with multiple hosts
-- Update statusbar when removing servers from list/repopulating
-### Added:
-- "Select stale" button to bulk select mods marked as obsolete
-
-## [5.6.0-beta.9] 2024-12-03
-### Fixed
-- Normalize user locale when parsing floats
-
-## [5.6.0-beta.8] 2024-11-28
-### Fixed
-- Normalize user locale when parsing floats
-
-## [5.6.0-beta.7] 2024-11-28
-### Changed
-- Add additional logging when fetching installed mods
-
-## [5.6.0-beta.6] 2024-11-28
-### Fixed
-- Race condition when checking for installed mods
-
-## [5.6.0-beta.5] 2024-11-21
-### Added
-- Highlight stale mods in mods list
-### Fixed
-- Duplicate dialog title on Steam Deck
-
-## [5.6.0-beta.4] 2024-11-20
-### Added
-- Application header bar and controls
-- Menu context subtitle in header bar
-### Changed
-- Refactor control flow for more robust contextual parsing
-- Stop sending modal dialog hints to outer window
-### Fixed
-- Favorite server message not updating correctly
-
-## [5.6.0-beta.3] 2024-11-18
-### Fixed
-- Improved handling for cases where there are no locally installed mods
-- Set up mod symlinks at boot, rather than only on server connect
-- Prevent context menus from opening when table is empty
-- When reloading table in-place, prevent duplicate panel elements from being added if already present
-- Clean up signal emission
-
-## [5.6.0-beta.2] 2024-11-15
-### Fixed
-- Clean up local mod signatures from versions file when deleting mods
-
-## [5.6.0-beta.1] 2024-11-12
-### Added
-- Bulk delete mods (via 'List installed mods' list). Not compatible with Manual Mod install mode
-### Fixed
-- Fix for server list truncation causing some servers to not appear in results
-- Suppress signal emission when switching menu contexts
-- Focus first row when opening mods list
-### Changed
-- Clarify some error messages and normalize text formatting
-
-## [5.5.0-beta.5] 2024-11-03
-### Changed
-- Use updated A2S_RULES logic
-### Fixed
-- Servers in saved servers list would populate context menu with same option when right-clicking in server browser
-
-## [5.5.0-beta.4] 2024-10-31
-### Added
-- Expose a toggle setting for whether to launch the application in fullscreen
-### Fixed
-- Enable adding/removing servers to/from My Saved Servers when in Recent Servers context
-
-## [5.5.0-beta.3] 2024-10-31
-### Fixed
-- Prevent maps combobox from duplicating contents
-
-## [5.5.0-beta.2] 2024-10-31
-### Fixed
-- Restore keyboard input to keyword entry field
-
-## [5.5.0-beta.1] 2024-10-30
+## [5.5.0] 2024-11-10
 ### Added
 - Support servers running DLC content (fixes Frostline servers)
-- Text autocompletion in maps search field
-- Add disk space warning to popup dialog
+- Expose a toggle setting for whether to launch the application in fullscreen
+- Text autocompletion in maps search field (partial search)
+- Add disk space warning to popup dialog when downloading mods
 ### Fixed
+- Servers in saved servers list would populate context menu with same option when right-clicking in server browser
+- Enable adding/removing servers to/from My Saved Servers when in Recent Servers context
+- Prevent maps combobox from duplicating contents
+- Restore keyboard input to keyword entry field
+### Changed
 - Abort fallback query method if DLC is required
 
-## [5.4.2-beta.1] 2024-10-05
+## [5.4.2] 2024-10-05
 ### Fixed
 - Sanitize third-party API IDs to remove UGC collisions
 
-## [5.4.1-beta.2] 2024-09-12
-### Fixed
-- Use fallback logic for modlist queries when user traverses networks
-
-## [5.4.1-beta.2] 2024-09-10
-### Fixed
-- Fix signal handling control flow for checkbox toggles
-
-## [5.4.1-beta.1] 2024-09-10
+## [5.4.1] 2024-09-25
 ### Added
 - Pre-boot validation check for users with self-compiled version of jq
 ### Fixed
+- Use fallback logic for modlist queries when user traverses networks
+- Fix signal handling control flow for checkbox toggles
 - When reloading the server browser, the map combobox selection would revert to the last selected map instead of All Maps
 - Server filter toggle signals were accessible from the main menu when switching between menu contexts
 - Global cooldown dialog could sometimes block filter toggles after cooldown reset
 - Normalized minor version number due to a previous clerical error
 
-## [5.4.0-beta.5] 2024-08-27
-### Added
-- Freedesktop application icons for system taskbar, tray, and other dialogs
-### Fixed
-- Errors being printed to the console when Exit button was explicitly clicked
-
-## [5.4.0-beta.4] 2024-08-21
-### Added
-- Emit CPU model name when exporting system debug log
-### Fixed
-- Detect Steam Deck OLED APU variant during initial setup
-
-## [5.4.0-beta.3] 2024-08-04
+## [5.4.0] 2024-08-27
 ### Added
 - Scan local area network for DayZ servers
-
-## [5.4.0-beta.2] 2024-08-03
-### Fixed
-- Clerical hotfix for previous player names fix
-- Test if DayZ directory is empty at startup, implying that the game was moved to a new library collection
-
-## [5.4.0-beta.1] 2024-07-16
+- Freedesktop application icons for system taskbar, tray, and other dialogs
+- Emit CPU model name when exporting system debug log
 ### Fixed
+- Errors being printed to the console when Exit button was explicitly clicked
+- Detect Steam Deck OLED APU variant during initial setup
 - Encapsulate player names correctly so that names with whitespace in them are supported
+- Test if DayZ directory is empty at startup, implying that the game was moved to a new library collection
+- Report WM_CLASS name to the window manager
 
 ## [5.3.2] 2024-07-02
 ### Fixed
diff --git a/dzgui.sh b/dzgui.sh
index 4baa2ae..d6b5000 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0-beta.21
+version=5.6.0
 
 #CONSTANTS
 aid=221100

From 07606d88523c520370508c8164b0a9d6e3530b19 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 7 Jan 2025 20:51:57 +0900
Subject: [PATCH 91/99] docs: update changelog

---
 CHANGELOG.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 30bbeea..3956403 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -43,8 +43,8 @@
 - Reduce IP database size by 50%
 - Update documentation to 5.6.x standard
 ### Dropped
-- Removed Hall of Fame section from button links, to be moved inside documentation
-- Remove unused imports
+- Hall of Fame section from button links, to be moved inside documentation
+- Unused imports
 
 ## [5.5.3] 2024-12-13
 ### Fixed

From a070e9fc655119b563ef859df5000072bb16120b Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 7 Jan 2025 20:54:03 +0900
Subject: [PATCH 92/99] chore: drop unused log file

---
 dzgui.sh      | 2 +-
 helpers/funcs | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index d6b5000..d7def32 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -587,7 +587,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="d3ad9153d8599bea0eede9fd3121ee8e"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="5624b1e44a43c318775caa5d0ceef1f0"
+        ["funcs"]="baa2c9c93edacb98384ae9f319e3b27f"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 9260e78..b23c1f2 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -30,7 +30,6 @@ log_path="$state_path/logs"
 debug_log="$log_path/DZGUI_DEBUG.log"
 system_log="$log_path/DZGUI_SYSTEM.log"
 mod_log="$log_path/DZGUI_MODIDS.log"
-meta_log="$log_path/DZGUI_META.log"
 
 #STATE FILES
 history_file="$state_path/$prefix.history"

From c8f7a32284a87226c7da8ae506c7ec7cd4d98653 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Tue, 7 Jan 2025 21:39:16 +0900
Subject: [PATCH 93/99] chore: update db checksum

---
 dzgui.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dzgui.sh b/dzgui.sh
index d7def32..e0298ad 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -636,7 +636,7 @@ fetch_helpers_by_sum(){
 }
 fetch_geo_file(){
     # for binary releases
-    local geo_sum="7b6668eb4535bb432acb42016ba9cc47"
+    local geo_sum="28ccd75b3e03cf07a7011f22ef0cd69b"
     local km_sum="b038fdb8f655798207bd28de3a004706"
     local gzip="$helpers_path/ips.csv.gz"
     if [[ ! -f $geo_file  ]] || [[ $(get_hash $geo_file) != $geo_sum ]]; then

From 34e7b2e4809692417d16d8632bd6ddd2e861428a Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Fri, 10 Jan 2025 22:45:25 +0900
Subject: [PATCH 94/99] fix: jq 1.6 support

---
 dzgui.sh      | 11 +++++++----
 helpers/funcs | 15 ++++++++++-----
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/dzgui.sh b/dzgui.sh
index e0298ad..43af009 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.0
+version=5.6.1
 
 #CONSTANTS
 aid=221100
@@ -76,6 +76,9 @@ set_im_module(){
         return
     fi
 }
+redact(){
+    sed 's@\(/home/\)[^/]*@\1REDACTED@g'
+}
 logger(){
     local date="$(date "+%F %T,%3N")"
     local tag="$1"
@@ -83,8 +86,8 @@ logger(){
     local self="${BASH_SOURCE[0]}"
     local caller="${FUNCNAME[1]}"
     local line="${BASH_LINENO[0]}"
-    self="$(<<< "$self" sed 's@\(/[^/]*/\)\([^/]*\)\(.*\)@\1REDACTED\3@g')"
-    printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" >> "$debug_log"
+    printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" \
+        | redact >> "$debug_log"
 }
 setup_dirs(){
     for dir in "$state_path" "$cache_path" "$share_path" "$helpers_path" "$freedesktop_path" "$config_path" "$log_path"; do
@@ -587,7 +590,7 @@ fetch_helpers_by_sum(){
         ["ui.py"]="d3ad9153d8599bea0eede9fd3121ee8e"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="baa2c9c93edacb98384ae9f319e3b27f"
+        ["funcs"]="6a1c7ce585d9b76e2e75dba9d4295f8d"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index b23c1f2..0c227c3 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -447,7 +447,9 @@ get_remote_servers(){
         _fetch "${params[$i]}" > $_cache_temp.${i}
     done
 
-    jq -n '[ [inputs]|add ].[]' $_cache_temp.* && rm $_cache_temp.*
+    # ubuntu variants do not support jq 1.7 chained operators
+    # https://github.com/jqlang/jq/releases/tag/jq-1.7
+    jq -n '[ [inputs]|add ][]' $_cache_temp.* && rm $_cache_temp.*
 }
 get_unique_maps(){
     shift
@@ -735,6 +737,9 @@ dump_servers(){
     logger INFO "Server context is '$subcontext', reading from file '$file'"
     filter_servers "$file" "$@"
 }
+redact(){
+    sed 's@\(/home/\)[^/]*@\1REDACTED@g'
+}
 logger(){
     local date="$(date "+%F %T,%3N")"
     local tag="$1"
@@ -742,8 +747,8 @@ logger(){
     local self="${BASH_SOURCE[0]}"
     local caller="${FUNCNAME[1]}"
     local line="${BASH_LINENO[0]}"
-    self="$(<<< "$self" sed 's@\(/[^/]*/\)\([^/]*\)\(.*\)@\1REDACTED\3@g')"
-    printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" >> "$debug_log"
+    printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" \
+        | redact >> "$debug_log"
 }
 test_ping(){
     shift
@@ -1243,8 +1248,8 @@ symlinks(){
         done
     }
 
-    readarray -t mods < <(find $workshop_dir -mindepth 1 -name meta.cpp | awk -F/ 'NF=NF-1{print $NF}')
-    readarray -t links < <(find $game_dir -type l)
+    readarray -t mods < <(find "$workshop_dir" -mindepth 1 -name meta.cpp | awk -F/ 'NF=NF-1{print $NF}')
+    readarray -t links < <(find "$game_dir" -maxdepth 1 -type l)
 
     if [[ ${#mods[@]} -eq 0 ]]; then
         logger INFO "No mods present, aborting"

From 2ab2e237362ad4b214dd8a86bc6a7a193c6aaf8a Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Fri, 10 Jan 2025 22:45:56 +0900
Subject: [PATCH 95/99] docs: update readme

---
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
index 6189481..553e72e 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,7 @@ Refer to the documentation for installation and setup instructions:
 - [GitHub](https://aclist.github.io/dzgui/dzgui.html)
 - [Mirror (Codeberg)](https://aclist.codeberg.page)
 
+
 ![A screenshot of DZGUI](/images/example.png)
 
 ## Attribution

From 759327e932a331d50d89391bdbf42856ae71b815 Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Thu, 23 Jan 2025 12:02:27 +0900
Subject: [PATCH 96/99] chore: prepare release

---
 CHANGELOG.md  |  8 ++++++++
 dzgui.sh      |  6 +++---
 helpers/funcs | 28 ++++++++++++++++++++++++++++
 helpers/ui.py | 10 ++++++++++
 4 files changed, 49 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3956403..b3da467 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
 # Changelog
 
+## [5.6.2] 2024-01-22
+### Fixed
+- Resolve regression introduced with IP resolution feature in 5.6.0 (restores functionality of right-click action: Add to My Servers)
+
+## [5.6.1] 2024-01-10
+### Fixed
+- Add fallback support for jq 1.6
+
 ## [5.6.0] 2024-01-06
 ### Added
 - Application header bar and controls
diff --git a/dzgui.sh b/dzgui.sh
index 43af009..dcd64af 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.1
+version=5.6.2
 
 #CONSTANTS
 aid=221100
@@ -587,10 +587,10 @@ fetch_helpers_by_sum(){
     [[ -f "$config_file" ]] && source "$config_file"
     declare -A sums
     sums=(
-        ["ui.py"]="d3ad9153d8599bea0eede9fd3121ee8e"
+        ["ui.py"]="5a876efacf208d12b5fe761996425412"
         ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
         ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="6a1c7ce585d9b76e2e75dba9d4295f8d"
+        ["funcs"]="417bd5eaffbefc905a843985c691dc64"
         ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
     )
     local author="aclist"
diff --git a/helpers/funcs b/helpers/funcs
index 0c227c3..c747c82 100755
--- a/helpers/funcs
+++ b/helpers/funcs
@@ -130,6 +130,7 @@ declare -A funcs=(
 ["Remove from my servers"]="update_favs_from_table"
 ["Remove from history"]="remove_from_history"
 ["Force update local mods"]="force_update"
+["Resolve IP"]="resolve_ip"
 ["Handshake"]="final_handshake"
 ["get_player_count"]="get_player_count"
 ["lan_scan"]="lan_scan"
@@ -161,6 +162,33 @@ find_stale_mods(){
     printf ""
     return 99
 }
+resolve_ip(){
+    shift
+    local res
+    local record="$1"
+    local ip=$(<<< "$record" awk -F: '{print $1}')
+    local qport=$(<<< "$record" awk -F: '{print $3}')
+    res=$(a2s $ip $qport info)
+    if [[ ! $? -eq 0 ]]; then
+        printf "Server timed out \n"
+        return 1
+    fi
+    local gport=$(<<< "$res" jq -r '.[].gameport')
+    if [[ -z $gport ]]; then
+        printf "Failed to resolve server metadata\n"
+        return 1
+    fi
+
+    # incoming input can only be 'remove' or 'add'
+    # record is in favs => implies deletion
+    # record not in favs => implies addition
+    resolved_record="$ip:$gport:$qport"
+    if [[ ${ip_list[*]} =~ $resolved_record ]]; then
+        remove_from_favs "$resolved_record"
+    else
+        add_to_favs "$resolved_record"
+    fi
+}
 get_player_count(){
     shift
     local res
diff --git a/helpers/ui.py b/helpers/ui.py
index c9aea79..ae28ede 100644
--- a/helpers/ui.py
+++ b/helpers/ui.py
@@ -1814,10 +1814,16 @@ class TreeView(Gtk.TreeView):
 
 
 def format_metadata(row_sel):
+    # this function is recycled for the add by ip/id methods +
+    # the right-click context menu (add/remove servers)
+    # in the latter case, there is no metadata to update
+    # see grid.update_statusbar(), so the returned row is None
+    row = None
     for i in RowType:
         if i.dict["label"] == row_sel:
             row = i
             prefix = i.dict["tooltip"]
+            break
     vals = {
             "branch": config_vals[0],
             "debug": config_vals[1],
@@ -1827,6 +1833,8 @@ def format_metadata(row_sel):
             "preferred_client": config_vals[5],
             "fullscreen": config_vals[6]
             }
+    if row is None:
+        return None
     try:
         alt = row.dict["alt"]
         default = row.dict["default"]
@@ -2396,6 +2404,8 @@ class Grid(Gtk.Grid):
         return True
 
     def update_statusbar(self, string):
+        if string is None:
+            return
         meta = self.bar.get_context_id("Statusbar")
         self.bar.push(meta, string)
 

From 8aea4af68717d6e81f15cd73812bc8f376e195ba Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Sun, 9 Feb 2025 18:55:33 +0900
Subject: [PATCH 97/99] chore: update IP db

---
 CHANGELOG.md |    4 +
 dzgui.sh     |    4 +-
 dzgui.sh.old | 1024 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 1030 insertions(+), 2 deletions(-)
 create mode 100755 dzgui.sh.old

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b3da467..676d7f1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## [5.6.6] 2024-02-09
+### Changed
+- Update IP database records for 2025-02
+
 ## [5.6.2] 2024-01-22
 ### Fixed
 - Resolve regression introduced with IP resolution feature in 5.6.0 (restores functionality of right-click action: Add to My Servers)
diff --git a/dzgui.sh b/dzgui.sh
index dcd64af..ae93854 100755
--- a/dzgui.sh
+++ b/dzgui.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -o pipefail
 
-version=5.6.2
+version=5.6.3
 
 #CONSTANTS
 aid=221100
@@ -639,7 +639,7 @@ fetch_helpers_by_sum(){
 }
 fetch_geo_file(){
     # for binary releases
-    local geo_sum="28ccd75b3e03cf07a7011f22ef0cd69b"
+    local geo_sum="9824e9b9a75a4830a2423932cc188b06"
     local km_sum="b038fdb8f655798207bd28de3a004706"
     local gzip="$helpers_path/ips.csv.gz"
     if [[ ! -f $geo_file  ]] || [[ $(get_hash $geo_file) != $geo_sum ]]; then
diff --git a/dzgui.sh.old b/dzgui.sh.old
new file mode 100755
index 0000000..65b151b
--- /dev/null
+++ b/dzgui.sh.old
@@ -0,0 +1,1024 @@
+#!/usr/bin/env bash
+set -o pipefail
+
+version=5.7.0-beta.5
+
+#CONSTANTS
+aid=221100
+game="dayz"
+app_name="dzgui"
+app_name_upper="DZGUI"
+workshop="steam://url/CommunityFilePage/"
+sd_res="--width=1280 --height=800"
+steamsafe_zenity="/usr/bin/zenity"
+zenity_flags=("--width=500" "--title=DZGUI")
+declare -A deps
+deps=([awk]="5.1.1" [curl]="7.80.0" [jq]="1.6" [tr]="9.0" [$steamsafe_zenity]="3.44.1")
+
+#CONFIG
+config_path="$HOME/.config/dztui"
+config_file="$config_path/dztuirc"
+
+#PATHS
+state_path="$HOME/.local/state/$app_name"
+cache_path="$HOME/.cache/$app_name"
+share_path="$HOME/.local/share/$app_name"
+script_path="$share_path/dzgui.sh"
+helpers_path="$share_path/helpers"
+
+#LOGS
+log_path="$state_path/logs"
+debug_log="$log_path/DZGUI_DEBUG.log"
+
+#STATE FILES
+prefix="dzg"
+history_file="$state_path/$prefix.history"
+versions_file="$state_path/$prefix.versions"
+lock_file="$state_path/$prefix.lock"
+cols_file="$state_path/$prefix.cols.json"
+
+#CACHE FILES
+coords_file="$cache_path/$prefix.coords"
+
+#legacy paths
+hist_file="$config_path/history"
+version_file="$config_path/versions"
+
+#XDG
+freedesktop_path="$HOME/.local/share/applications"
+
+#HELPERS
+ui_helper="$helpers_path/ui.py"
+geo_file="$helpers_path/ips.csv"
+km_helper="$helpers_path/latlon"
+sums_path="$helpers_path/sums.md5"
+func_helper="$helpers_path/funcs"
+
+#REMOTE
+remote_host=gh
+author="aclist"
+repo="dztui"
+url_prefix="https://raw.githubusercontent.com/$author/$repo"
+stable_url="$url_prefix/dzgui"
+testing_url="$url_prefix/testing"
+releases_url="https://github.com/$author/$repo/releases/download/browser"
+km_helper_url="$releases_url/latlon"
+geo_file_url="$releases_url/ips.csv.gz"
+
+
+set_im_module(){
+    #TODO: drop pending SteamOS changes
+    pgrep -a gamescope | grep -q "generate-drm-mode"
+    if [[ $? -eq 0 ]]; then
+        GTK_IM_MODULE=""
+        logger INFO "Detected Steam Deck (Game Mode), unsetting GTK_IM_MODULE"
+    else
+        return
+    fi
+}
+redact(){
+    sed 's@\(/home/\)[^/]*@\1REDACTED@g'
+}
+logger(){
+    local date="$(date "+%F %T,%3N")"
+    local tag="$1"
+    local string="$2"
+    local self="${BASH_SOURCE[0]}"
+    local caller="${FUNCNAME[1]}"
+    local line="${BASH_LINENO[0]}"
+    printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" \
+        | redact >> "$debug_log"
+}
+setup_dirs(){
+    for dir in "$state_path" "$cache_path" "$share_path" "$helpers_path" "$freedesktop_path" "$config_path" "$log_path"; do
+        if [[ ! -d $dir ]]; then
+            mkdir -p "$dir"
+        fi
+    done
+}
+setup_state_files(){
+    if [[ -f "$debug_log" ]]; then
+        rm "$debug_log" && touch $debug_log
+        logger INFO "Initializing DZGUI version $version"
+    fi
+    if [[ -f "$version_file" ]]; then
+        mv "$version_file" "$versions_file" &&
+        logger INFO "Migrating legacy version file"
+    fi
+    # wipe cache files
+    local path="$cache_path"
+    if find "$path" -mindepth 1 -maxdepth 1 | read; then
+        for file in $path/*; do
+            rm "$file"
+        done
+        logger INFO "Wiped cache files"
+    fi
+}
+print_config_vals(){
+    local keys=(
+    "branch"
+    "name"
+    "fav_server"
+    "fav_label"
+    "auto_install"
+    "steam_path"
+    "default_steam_path"
+    "preferred_client"
+    )
+    for i in "${keys[@]}"; do
+        logger INFO "Read key '$i': '${!i}'"
+    done
+    if [[ ${#ip_list[@]} -lt 1 ]]; then
+        logger WARN "No IPs in saved server list"
+    fi
+
+}
+test_gobject(){
+    python3 -c "import gi"
+    if [[ ! $? -eq 0 ]]; then
+        logger CRITICAL "Missing PyGObject"
+        fdialog "Requires PyGObject (python-gobject)"
+        exit 1
+    fi
+    logger INFO "Found PyGObject in Python env"
+}
+update_config(){
+    # handling for legacy files
+    [[ -z $branch ]] && branch="stable"
+    [[ -f $config_file ]] && mv $config_file ${config_file}.old
+    write_config > $config_file && return 90 || return 1
+    logger INFO "Updated config file at '$config_file'"
+}
+setup_steam_client(){
+    local flatpak
+    local steam
+    local steam_cmd
+    [[ -n $preferred_client ]] && return 0
+    [[ $(command -v flatpak) ]] && flatpak=$(flatpak list | grep valvesoftware.Steam)
+    steam=$(command -v steam)
+    if [[ -z "$steam" ]] && [[ -z "$flatpak" ]]; then
+        raise_error_and_quit "Requires Steam or Flatpak Steam"
+    elif [[ -n "$steam" ]] && [[ -n "$flatpak" ]]; then
+        preferred_client="steam"
+    elif [[ -n "$steam" ]]; then
+        preferred_client="steam"
+    else
+        steam_cmd="flatpak run com.valvesoftware.Steam"
+    fi
+    update_config && logger INFO "Preferred client set to '$steam_cmd'" || return 1
+}
+print_ip_list(){
+    [[ ${#ip_list[@]} -eq 0 ]] && return 1
+    printf "\t\"%s\"\n" "${ip_list[@]}"
+}
+write_config(){
+cat <<-END
+#Path to DayZ installation
+steam_path="$steam_path"
+
+#Battlemetrics API key
+api_key="$api_key"
+
+#Favorited server IP:PORT array
+ip_list=(
+$(print_ip_list)
+)
+
+#Favorite server to fast-connect to (limit one)
+fav_server="$fav_server"
+
+#Favorite server label (human readable)
+fav_label="$fav_label"
+
+#Custom player name (optional, required by some servers)
+name="$name"
+
+#Set to 1 to perform dry-run and print launch options
+debug="$debug"
+
+#Toggle stable/testing branch
+branch="$branch"
+
+#Start in fullscreen
+fullscreen="$fullscreen"
+
+#Steam API key
+steam_api="$steam_api"
+
+#Auto-install mods
+auto_install="$auto_install"
+
+#Automod staging directory
+staging_dir="$staging_dir"
+
+#Path to default Steam client
+default_steam_path="$default_steam_path"
+
+#Preferred Steam launch command (for Flatpak support)
+preferred_client="$preferred_client"
+
+#DZGUI source path
+src_path="$src_path"
+END
+}
+depcheck(){
+    for dep in "${!deps[@]}"; do
+        command -v "$dep" 2>&1>/dev/null
+        if [[ $? -eq 1 ]]; then
+            local msg="Requires $dep >= ${deps[$dep]}"
+            raise_error_and_quit "$msg"
+        fi
+    done
+    local jqmsg="jq must be compiled with support for oniguruma"
+    local jqtest
+    jqtest=$(echo '{"test": "foo"}' | jq '.test | test("^foo$")')
+    [[ $? -ne 0 ]] && raise_error_and_quit "$jqmsg"
+    logger INFO "Initial dependencies satisfied"
+}
+check_pyver(){
+    local pyver=$(python3 --version | awk '{print $2}')
+    local minor=$(<<< $pyver awk -F. '{print $2}')
+    if [[ -z $pyver ]] || [[ ${pyver:0:1} -lt 3 ]] || [[ $minor -lt 10 ]]; then
+        local msg="Requires Python >=3.10"
+        raise_error_and_quit "$msg"
+    fi
+    logger INFO "Found Python version: $pyver"
+}
+watcher_deps(){
+    if [[ ! $(command -v wmctrl) ]] && [[ ! $(command -v xdotool) ]]; then
+        raise_error_and_quit "Missing dependency: requires 'wmctrl' or 'xdotool'"
+        exit 1
+    fi
+    logger INFO "Found DZG Watcher dependencies"
+}
+format_version_url(){
+    [[ -z "$branch" ]] && branch="stable"
+    case "$branch" in
+        "stable")
+            version_url="$stable_url/dzgui.sh"
+            ;;
+        "testing")
+            version_url="$testing_url/dzgui.sh"
+            ;;
+    esac
+    echo "$version_url"
+}
+write_desktop_file(){
+cat <<-END
+[Desktop Entry]
+Version=1.0
+Type=Application
+Terminal=false
+Exec=$share_path/dzgui.sh
+Name=$app_name_upper
+Comment=$app_name
+Icon=$share_path/$app_name
+Categories=Game
+END
+}
+freedesktop_dirs(){
+    local version_url=$(format_version_url)
+    local img_url="$stable_url/images"
+    curl -s "$version_url" > "$script_path"
+    chmod +x "$script_path"
+    for i in dzgui grid.png hero.png logo.png icon.png; do
+        curl -s "$img_url/$i" > "$share_path/$i"
+    done
+    write_desktop_file > "$freedesktop_path/$app_name.desktop"
+    [[ $is_steam_deck -eq 0 ]] && return
+    write_desktop_file > "$HOME/Desktop/$app_name.desktop"
+}
+legacy_vars(){
+    local suffix="fav"
+    local hr_msg="Config file contains values based on old API. Please update and re-run setup."
+    local msg="Config file contains legacy API value: '$suffix'"
+    if [[ -n $fav ]]; then
+        logger WARN "$msg"
+        fdialog "$hr_msg"
+        exit 1
+    fi
+    if [[ -n $whitelist ]]; then
+        suffix="whitelist"
+        logger WARN "$msg"
+        fdialog "$hr_msg"
+        exit 1
+    fi
+}
+merge_config(){
+    [[ -z $staging_dir ]] && staging_dir="/tmp"
+    update_config
+    tdialog "Wrote new config format to \n${config_file}\nIf errors occur, you can restore the file:\n${config_file}.old"
+}
+check_unmerged(){
+    if [[ -f ${config_path}.unmerged ]]; then
+        merge_config
+        rm ${config_path}.unmerged
+    fi
+}
+check_version(){
+    local version_url=$(format_version_url)
+    local upstream=$(curl -Ls "$version_url" | awk -F= '/^version=/ {print $2}')
+    local res=$(get_response_code "$version_url")
+    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$version_url'"
+    logger INFO "Local branch: '$branch', local version: $version"
+    if [[ $branch == "stable" ]]; then
+        version_url="$stable_url/dzgui.sh"
+    elif [[ $branch == "testing" ]]; then
+        version_url="$testing_url/dzgui.sh"
+    fi
+    [[ ! -f "$freedesktop_path/$app_name.desktop" ]] && freedesktop_dirs
+    if [[ $version == $upstream ]]; then
+        logger INFO "Local version is same as upstream"
+        check_unmerged
+    else
+        logger WARN "Local and remote version mismatch: $version != $upstream"
+        prompt_dl
+    fi
+}
+download_new_version(){
+    local version_url="$(format_version_url)"
+    logger INFO "Version URL is '$version_url'"
+    logger INFO "$src_path"
+    mv "$src_path" "$src_path.old"
+    curl -L "$version_url" > "$src_path" 2>$debug_log
+    rc=$?
+    if [[ $rc -eq 0 ]]; then
+        dl_changelog
+        logger INFO "Wrote new version to $src_path"
+        chmod +x "$src_path"
+        touch "${config_path}.unmerged"
+        fdialog "DZGUI $upstream successfully downloaded. To use the new version, select Exit and restart."
+        logger INFO "User exited after version upgrade"
+        exit 0
+    else
+        mv "$src_path.old" "$src_path"
+        logger WARN "curl failed to fetch new version. Rolling back"
+        fdialog "Failed to download the new version. Restoring old version"
+        return 1
+    fi
+}
+prompt_dl(){
+    _text(){
+	cat <<-EOF
+	Version conflict.
+
+	Your branch: $branch
+	Your version: $version
+	Upstream version: $upstream
+	
+	Version updates introduce important bug fixes and are encouraged. Attempt to download the latest version?
+	EOF
+    }
+    qdialog "$(_text)" "Yes" "No"
+    if [[ $? -eq 1 ]]; then
+        return 0
+    else
+        download_new_version
+    fi
+}
+dl_changelog(){
+    local mdbranch
+    local md
+    [[ $branch == "stable" ]] && mdbranch="dzgui"
+    [[ $branch == "testing" ]] && mdbranch="testing"
+    local md="$url_prefix/${mdbranch}/$file"
+    curl -Ls "$md" > "$state_path/CHANGELOG.md"
+}
+test_display_mode(){
+    pgrep -a gamescope | grep -q "generate-drm-mode"
+    if [[ $? -eq 0 ]]; then
+        echo gm
+    else
+        echo dm
+    fi
+}
+check_architecture(){
+    local cpu=$(< /proc/cpuinfo awk -F": " '/AMD Custom APU [0-9]{4}$/ {print $2; exit}')
+    read -a APU_MODEL <<< "$cpu"
+    if [[ ${APU_MODEL[3]} != "0932" ]] && [[ ${APU_MODEL[3]} != "0405" ]]; then
+        is_steam_deck=0
+        logger INFO "Setting architecture to 'desktop'"
+        return
+    fi
+
+    if [[ $(test_display_mode) == "gm" ]]; then
+        is_steam_deck=2
+    else
+        is_steam_deck=1
+    fi
+    logger INFO "Setting architecture to 'Steam Deck'"
+}
+check_map_count(){
+    [[ $is_steam_deck -gt 0 ]] && return 0
+    local map_count_file="/proc/sys/vm/max_map_count"
+    local min_count=1048576
+    local conf_file="/etc/sysctl.d/dayz.conf"
+    local current_count
+    if [[ ! -f ${map_count_file} ]]; then
+        logger WARN "File '${map_count_file}' doesn't exist!"
+        return 1
+    fi
+    current_count=$(cat ${map_count_file})
+    if [[ $current_count -ge $min_count ]]; then
+        logger DEBUG "System map count is set to ${current_count}"
+        return 0
+    fi
+    qdialog "sudo password required to set system vm map count." "OK" "Cancel"
+    if [[ $? -eq 0 ]]; then
+        local pass
+        logger INFO "Prompting user for sudo escalation"
+        pass=$($steamsafe_zenity --password)
+        if [[ $? -eq 1 ]]; then
+            logger WARN "User aborted password prompt"
+            return 1
+        fi
+        logger DEBUG "Old map count is $current_count"
+        [[ $current_count -lt $min_count ]] && current_count=$min_count
+        sudo -S <<< "$pass" sh -c "echo 'vm.max_map_count=${current_count}' > $conf_file"
+        sudo sysctl -p "$conf_file"
+        logger DEBUG "Updated map count to $min_count"
+    else
+        logger WARN "User aborted map count prompt"
+        return 1
+    fi
+}
+qdialog(){
+    local text="$1"
+    local ok="$2"
+    local cancel="$3"
+    $steamsafe_zenity --question --text="$1" --ok-label="$ok" --cancel-label="$cancel" "${zenity_flags[@]}"
+}
+pdialog(){
+    $steamsafe_zenity --progress --pulsate --auto-close "${zenity_flags[@]}" --text="$1"
+}
+fdialog(){
+    $steamsafe_zenity --warning --ok-label="Exit" --text="$1" "${zenity_flags[@]}"
+}
+tdialog(){
+    $steamsafe_zenity --info --text="$1" "${zenity_flags[@]}"
+}
+steam_deps(){
+    local flatpak
+    local steam
+    [[ $(command -v flatpak) ]] && flatpak=$(flatpak list | grep valvesoftware.Steam)
+    steam=$(command -v steam)
+    if [[ -z "$steam" ]] && [[ -z "$flatpak" ]]; then
+        local msg="Found neither Steam nor Flatpak Steam"
+        raise_error_and_quit "$msg"
+        exit 1
+    elif [[ -n "$steam" ]] && [[ -n "$flatpak" ]]; then
+        [[ -n $preferred_client ]] && return 0
+        if [[ -z $preferred_client ]]; then
+            preferred_client="steam"
+        fi
+    elif [[ -n "$steam" ]]; then
+        preferred_client="steam"
+    else
+        preferred_client="flatpak"
+    fi
+    update_config
+    logger INFO "Preferred client set to '$preferred_client'"
+}
+migrate_files(){
+    if [[ ! -f $config_path/dztuirc.oldapi ]]; then
+        cp $config_file $config_path/dztuirc.oldapi
+        logger INFO "Migrated old API file"
+    fi
+    [[ ! -f $hist_file ]] && return
+    rm $hist_file
+    logger INFO "Wiped old history file"
+}
+stale_symlinks(){
+    local game_dir="$steam_path/steamapps/common/DayZ"
+    for l in $(find "$game_dir" -xtype l); do
+        logger DEBUG "Updating stale symlink '$l'"
+        unlink "$l"
+    done
+}
+local_latlon(){
+    if [[ -z $(command -v dig) ]]; then
+        local local_ip=$(curl -Ls "https://ipecho.net/plain")
+    else
+        local local_ip=$(dig -4 +short myip.opendns.com @resolver1.opendns.com)
+    fi
+    local url="http://ip-api.com/json/$local_ip"
+    local res=$(curl -Ls "$url" | jq -r '"\(.lat)\n\(.lon)"')
+    if [[ -z "$res" ]]; then
+        logger WARN "Failed to get local coordinates"
+        return 1
+    fi
+    echo "$res" > "$coords_file"
+}
+lock(){
+    [[ ! -f $lock_file ]] && touch $lock_file
+    local pid=$(cat $lock_file)
+    ps -p $pid -o pid= >/dev/null 2>&1
+    res=$?
+    if [[ $res -eq 0 ]]; then
+        local msg="DZGUI already running ($pid)"
+        raise_error_and_quit "$msg"
+    elif [[ $pid == $$ ]]; then
+        :
+    else
+        echo $$ > $lock_file
+    fi
+}
+get_hash(){
+    local file="$1"
+    md5sum "$1" | awk '{print $1}'
+}
+fetch_a2s(){
+    # this file is currently monolithic
+    [[ -d $helpers_path/a2s ]] && { logger INFO "A2S helper is current"; return 0; }
+    local sha=c7590ffa9a6d0c6912e17ceeab15b832a1090640
+    local author="yepoleb"
+    local repo="python-a2s"
+    local url="https://github.com/$author/$repo/tarball/$sha"
+    local prefix="${author^}-$repo-${sha:0:7}"
+    local file="$prefix.tar.gz"
+    local res=$(get_response_code "$url")
+    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$file'"
+    curl -Ls "$url" > "$helpers_path/$file"
+    tar xf "$helpers_path/$file" -C "$helpers_path" "$prefix/a2s" --strip=1
+    rm "$helpers_path/$file"
+    logger INFO "Updated A2S helper to sha '$sha'"
+}
+fetch_dzq(){
+    local sum="9caed1445c45832f4af87736ba3f9637"
+    local file="$helpers_path/a2s/dayzquery.py"
+    if [[ -f $file ]] && [[ $(get_hash "$file") == $sum ]]; then
+        logger INFO "DZQ is current"
+        return 0
+    fi
+    local sha=3088bbfb147b77bc7b6a9425581b439889ff3f7f
+    local author="yepoleb"
+    local repo="dayzquery"
+    local url="https://raw.githubusercontent.com/$author/$repo/$sha/dayzquery.py"
+    local res=$(get_response_code "$url")
+    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: 'dayzquery.py'"
+    curl -Ls "$url" > "$file"
+    logger INFO "Updated DZQ to sha '$sha'"
+}
+fetch_icons(){
+    res=(
+            "16"
+            "24"
+            "32"
+            "48"
+            "64"
+            "96"
+            "128"
+            "256"
+    )
+    url="$stable_url/images/icons"
+    for i in "${res[@]}"; do
+        size="${i}x${i}"
+        dir="$HOME/.local/share/icons/hicolor/$size/apps"
+        icon="$dir/$app_name.png"
+        [[ -f $icon ]] && return
+        if [[ ! -d $dir ]]; then
+            mkdir -p "$dir"
+        fi
+        logger INFO "Updating $size Freedesktop icon"
+        curl -Ls "${url}/${i}.png" > "$icon"
+    done
+}
+fetch_helpers_by_sum(){
+    [[ -f "$config_file" ]] && source "$config_file"
+    declare -A sums
+    sums=(
+        ["ui.py"]="d3ad9153d8599bea0eede9fd3121ee8e"
+        ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
+        ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
+        ["funcs"]="6a1c7ce585d9b76e2e75dba9d4295f8d"
+        ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
+    )
+    local author="aclist"
+    local repo="dztui"
+    local realbranch
+    local file
+    local sum
+    local full_path
+
+    # first time setup
+    if [[ -z $branch ]]; then
+        realbranch="dzgui"
+    else
+        realbranch="$branch"
+    fi
+    if [[ $realbranch == "stable" ]]; then
+        realbranch="dzgui"
+    fi
+
+    for i in "${!sums[@]}"; do
+        file="$i"
+        sum="${sums[$i]}"
+        full_path="$helpers_path/$file"
+
+        url="${url_prefix}/$realbranch/helpers/$file"
+
+        if [[ -f "$full_path" ]] && [[ $(get_hash "$full_path") == $sum ]]; then
+            logger INFO "$file is current"
+        else
+            logger WARN "File '$full_path' checksum != '$sum'"
+            local res=$(get_response_code "$url")
+            [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$url'"
+            curl -Ls "$url" > "$full_path"
+            if [[ ! $? -eq 0 ]]; then
+                raise_error_and_quit "Failed to fetch the file '$file'. Possible timeout?"
+            fi
+            if [[ $(get_hash $full_path) != $sum ]]; then
+                logger WARN "Downloaded new '$file', but checksum != '$sum'"
+            fi
+            logger INFO "Updated '$full_path' to sum '$sum'"
+        fi
+        [[ $file == "funcs" ]] && chmod +x "$full_path"
+        [[ $file == "lan" ]] && chmod +x "$full_path"
+    done
+    return 0
+}
+fetch_geo_file(){
+    # for binary releases
+    local geo_sum="28ccd75b3e03cf07a7011f22ef0cd69b"
+    local km_sum="b038fdb8f655798207bd28de3a004706"
+    local gzip="$helpers_path/ips.csv.gz"
+    if [[ ! -f $geo_file  ]] || [[ $(get_hash $geo_file) != $geo_sum ]]; then
+        local res=$(get_response_code "$geo_file_url")
+        [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$geo_file_url'"
+        curl -Ls "$geo_file_url" > "$gzip"
+        #force overwrite
+        gunzip -f "$gzip"
+    fi
+    if [[ ! -f $km_helper ]] || [[ $(get_hash $km_helper) != $km_sum ]]; then
+        local res=$(get_response_code "$km_helper_url")
+        [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$km_helper_url'"
+        curl -Ls "$km_helper_url" > "$km_helper"
+        chmod +x "$km_helper"
+    fi
+}
+fetch_helpers(){
+    fetch_a2s
+    fetch_dzq
+    fetch_geo_file
+    fetch_helpers_by_sum
+    [[ ! -f $share_path/icon.png ]] && freedesktop_dirs
+    fetch_icons
+}
+raise_error_and_quit(){
+    local msg="$1"
+    logger CRITICAL "$msg"
+    fdialog "$msg"
+    exit 1
+}
+test_steam_api(){
+    local key="$1"
+    [[ -z $key ]] && return 1
+    local url="https://api.steampowered.com/IGameServersService/GetServerList/v1/?filter=\appid\221100&limit=10&key=$key"
+    local code=$(curl -ILs "$url" | grep -E "^HTTP")
+    [[ ! $code =~ 200 ]] && echo 1
+    [[ $code =~ 200 ]] && echo 0
+}
+test_bm_api(){
+    local bm_api="https://api.battlemetrics.com/servers"
+    local key="$1"
+    [[ -z $key ]] && return 1
+    local code=$(curl -ILs "$bm_api" \
+        -H "Authorization: Bearer "$key"" -G \
+        -d "filter[game]=$game" \
+        | grep -E "^HTTP")
+    [[ $code =~ 401 ]] && echo 1
+    [[ $code =~ 200 ]] && echo 0
+}
+find_default_path(){
+    _discover(){
+        readarray -t paths < <(find / -type d \( -path "/proc" -o -path "*/timeshift" -o -path \
+                    "/tmp" -o -path "/usr" -o -path "/boot" -o -path "/proc" -o -path "/root" \
+                    -o -path "/sys" -o -path "/etc" -o -path "/var" -o -path "/lost+found" \) -prune \
+                    -o -regex ".*Steam/config/libraryfolders.vdf$" -print 2>/dev/null | sed 's@/config/libraryfolders.vdf@@')
+
+        if [[ "${#paths[@]}" -gt 1 ]]; then
+            echo "100"
+            default_steam_path=$(printf "%s\n" "${paths[@]}" | $steamsafe_zenity --list --column="paths" --hide-header --text="Found multiple valid Steam paths. Select your default Steam installation." --title="DZGUI")
+            [[ -z "$default_steam_path" ]] && exit 1
+        else
+            default_steam_path="${paths[0]}"
+        fi
+    }
+    if [[ $is_steam_deck -gt 0 ]]; then
+        default_steam_path="$HOME/.local/share/Steam"
+        logger INFO "Set default Steam path to $default_steam_path"
+        return 0
+    fi
+    local def_path
+    local ubuntu_path
+    local flatpak_path
+    local debian_path
+    def_path="$HOME/.local/share/Steam"
+    ubuntu_path="$HOME/.steam/steam"
+    debian_path="$HOME/.steam/debian-installation"
+    flatpak_path="$HOME/.var/app/com.valvesoftware.Steam/data/Steam"
+
+    #ubuntu path must precede default path because
+    #both exist on ubuntu systems, but only ubuntu path contains library data
+    for i in "$ubuntu_path" "$def_path" "$debian_path" "$flatpak_path"; do
+        if [[ -d "$i" ]]; then
+            default_steam_path="$i"
+            return 0
+        fi
+    done
+
+    local msg="Let DZGUI auto-discover Steam path (accurate, slower)\nSelect the Steam path manually (less accurate, faster)"
+    local res=$(echo -e "$msg" | $steamsafe_zenity --list \
+        --column="Choice" \
+        --title="DZGUI" \
+        --hide-header \
+        --text="Steam is not installed in a standard location." \
+        $sd_res)
+
+    case "$res" in
+        *auto*) _discover > >(pdialog "Scanning paths") ;;
+        *manual*)
+            zenity --info --text="\nSelect the top-level entry point to the location where Steam (not DayZ)\nis installed and before entering the \"steamapps\" path.\n\nE.g., if Steam is installed at:\n\"/media/mydrive/Steam\"\n\nCorrect:\n- \"/media/mydrive/Steam\"\n\nIncorrect:\n- \"/media/mydrive/Steam/steamapps/common/DayZ\"\n- \"/media/mydrive/\"" --width=500 &&
+            file_picker ;;
+        esac
+}
+file_picker(){
+    local path=$($steamsafe_zenity --file-selection --directory)
+    logger INFO "File picker path resolved to: $path"
+    if [[ -z "$path" ]]; then
+        logger WARN "Steam path selection was empty"
+        return
+    else
+        default_steam_path="$path"
+    fi
+}
+find_library_folder(){
+    local search_path="$1"
+    steam_path="$(python3 "$helpers_path/vdf2json.py" -i "$1/steamapps/libraryfolders.vdf" \
+        | jq -r '.libraryfolders[]|select(.apps|has("221100")).path')"
+    if [[ ! $? -eq 0 ]] || [[ -z $steam_path ]]; then
+        logger WARN "Failed to parse Steam path using '$search_path'"
+        return 1
+    fi
+    logger INFO "Steam path resolved to: $steam_path"
+}
+create_config(){
+    #if old path is malformed and this function is forcibly called,
+    #wipe paths from memory before entering the loop to force path rediscovery
+    unset default_steam_path
+    unset steam_path
+
+    while true; do
+        local player_input="$($steamsafe_zenity \
+            --forms \
+            --add-entry="Player name (required for some servers)" \
+            --add-entry="Steam API key" \
+            --add-entry="BattleMetrics API key (optional)" \
+            --title="DZGUI" \
+            --text="DZGUI" $sd_res \
+            --separator="@")"
+        #explicitly setting IFS crashes $steamsafe_zenity in loop
+        #and mapfile does not support high ascii delimiters, so split fields with newline
+        readarray -t args < <(<<< "$player_input" sed 's/@/\n/g')
+        name="${args[0]}"
+        steam_api="${args[1]}"
+        api_key="${args[2]}"
+
+        if [[ -z $player_input ]]; then
+            logger WARN "User aborted setup process"
+            exit 1
+        fi
+        if [[ -z $steam_api ]]; then
+            tdialog "Steam API key canot be empty"
+            continue
+        elif [[ "${#steam_api}" -lt 32 ]] || [[ $(test_steam_api "$steam_api") -eq 1 ]]; then
+            tdialog "Invalid Steam API key"
+            continue
+        fi
+        if [[ -n $api_key ]] && [[ $(test_bm_api $api_key) -eq 1 ]]; then
+            tdialog "Invalid BM API key"
+            continue
+        fi
+        while true; do
+            if [[ -n $steam_path ]]; then
+                write_config
+                [[ $? -eq 0 ]] && logger INFO "Successfully created config file"
+                return 0
+            fi
+            find_default_path
+            find_library_folder "$default_steam_path"
+            if [[ -z $steam_path ]]; then
+                logger raise_error "Steam path was empty"
+                zenity --question --text="DayZ not found or not installed at the Steam library given. NOTE: if you recently installed DayZ or moved its location, you MUST restart Steam first for these changes to synch." --ok-label="Choose path manually" --cancel-label="Exit"
+                if [[ $? -eq 0 ]]; then
+                    logger INFO "User selected file picker"
+                    file_picker
+                    find_library_folder "$default_steam_path"
+                else
+                    fdialog "Failed to find Steam at the provided location"
+                    exit 1
+                fi
+            else
+                branch="stable"
+                update_config
+                logger INFO "Wrote config to '$config_file'"
+                return 0
+            fi
+        done
+    done
+}
+varcheck(){
+    local msg="Config file '$config_file' missing. Start first-time setup now?"
+    local msg2="The Steam paths set in your config file appear to be invalid. Restart first-time setup now?"
+    if [[ ! -f $config_file ]]; then
+        qdialog "$msg" "Yes" "Exit"
+        if [[ $? -eq 1 ]]; then
+            logger CRITICAL "Config file missing, but user aborted setup"
+            exit 1
+        fi
+        create_config
+    fi
+    source "$config_file"
+    local workshop_dir="$steam_path/steamapps/workshop/content/$aid"
+    local game_dir="$steam_path/steamapps/common/DayZ"
+    if [[ ! -d $steam_path ]] || [[ ! -d $game_dir ]] || [[ ! $(find $game_dir -type f) ]]; then
+        logger WARN "DayZ path resolved to '$game_dir'"
+        logger WARN "Workshop path resolved to '$workshop_dir'"
+        qdialog "$msg2" "Yes" "Exit"
+        if [[ $? -eq 1 ]]; then
+            logger CRITICAL "Malformed Steam path, but user aborted setup"
+            exit 1
+        fi
+        create_config
+        return 0
+    fi
+    if [[ $src_path != $(realpath "$0") ]]; then
+        src_path=$(realpath "$0")
+        update_config
+    fi
+}
+is_dzg_downloading(){
+    if [[ -d $steam_path ]] && [[ -d $steam_path/downloading/$aid ]]; then
+        logger WARN "DayZ may be scheduling updates"
+        return 0
+    fi
+}
+is_steam_running(){
+    local res=$(ps aux | grep "steamwebhelper" | grep -v grep)
+    if [[ -z $res ]]; then
+        logger WARN "Steam may not be running"
+        tdialog "Is Steam running? For best results, make sure Steam is open in the background."
+        return 0
+    fi
+}
+get_response_code(){
+    local url="$1"
+    curl -Ls -I -o /dev/null -w "%{http_code}" "$url"
+}
+test_connection(){
+    source "$config_file"
+    declare -A hr
+    local res1
+    local res2
+    local str="No connection could be established to the remote server"
+    hr=(
+        ["steampowered.com"]="https://api.steampowered.com/IGameServersService/GetServerList/v1/?key=$steam_api"
+        ["github.com"]="https://github.com/$author"
+        ["codeberg.org"]="https://codeberg.org/$author"
+    )
+    # steam API is mandatory, except on initial setup
+    if [[ -n $steam_api ]]; then
+        res=$(get_response_code "${hr["steampowered.com"]}")
+        [[ $res -ne 200 ]] && raise_error_and_quit "$str ("steampowered.com")"
+    fi
+
+    res=$(get_response_code "${hr["github.com"]}")
+    if [[ $res -ne 200 ]]; then
+        logger WARN "Remote host '${hr["github.com"]}' unreachable', trying fallback"
+        remote_host=cb
+        logger INFO "Set remote host to '${hr["codeberg.org"]}'"
+        res=$(get_response_code "${hr["codeberg.org"]}")
+        [[ $res -ne 200 ]] && raise_error_and_quit "$str (${hr["codeberg.org"]})"
+    fi
+    if [[ $remote_host == "cb" ]]; then
+        url_prefix="https://codeberg.org/$author/$repo/raw/branch"
+        releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
+        stable_url="$url_prefix/dzgui"
+        testing_url="$url_prefix/testing"
+        km_helper_url="$releases_url/latlon"
+        geo_file_url="$releases_url/ips.csv.gz"
+    fi
+}
+legacy_cols(){
+    [[ ! -f $cols_file ]] && return
+    local has=$(< "$cols_file" jq '.cols|has("Queue")')
+    [[ $has == "true" ]] && return
+    < $cols_file jq '.cols += { "Queue": 120 }' > $cols_file.new &&
+    mv $cols_file.new $cols_file
+}
+stale_mod_signatures(){
+    local workshop_dir="$steam_path/steamapps/workshop/content/$aid"
+    if [[ -d $workshop_dir ]]; then
+        readarray -t old_mod_ids < <(awk -F, '{print $1}' $versions_file)
+        for ((i=0; i<${#old_mod_ids[@]}; ++i)); do
+            if [[ ! -d $workshop_dir/${old_mod_ids[$i]} ]]; then
+                "$HOME/.local/share/$app_name/helpers/funcs" "align_local" "${old_mod_ids[$i]}"
+            fi
+        done
+    fi
+
+}
+create_new_links(){
+    "$HOME/.local/share/$app_name/helpers/funcs" "update_symlinks"
+}
+initial_setup(){
+    setup_dirs
+    setup_state_files
+    depcheck
+    check_pyver
+    test_gobject
+    watcher_deps
+    check_architecture
+    test_connection
+#    fetch_helpers > >(pdialog "Checking helper files")
+    varcheck
+    source "$config_file"
+    lock
+    legacy_vars
+    legacy_cols
+    check_version
+    check_map_count
+    steam_deps
+    migrate_files
+    stale_symlinks
+    stale_mod_signatures
+    create_new_links
+    local_latlon
+    is_steam_running
+    is_dzg_downloading
+    print_config_vals
+}
+uninstall(){
+    _full(){
+        for i in "$config_path" "$state_path" "$cache_path" "$share_path"; do
+            echo "Deleting the path '$i'"
+            rm -rf "$i"
+        done
+    }
+    _partial(){
+        for i in "$cache_path" "$share_path"; do
+            echo "Deleting the path '$i'"
+            rm -rf "$i"
+        done
+    }
+    local choice=$($steamsafe_zenity \
+        --list \
+        --radiolist \
+        --column="a" \
+        --column="b" \
+        --hide-header \
+        --text="Choose an uninstall routine below." \
+        TRUE "Keep user config files" \
+        FALSE "Delete all DZGUI files" \
+        --title="DZGUI"
+        )
+
+    case "$choice" in
+        "Keep user config files")
+            _partial
+            ;;
+        "Delete all DZGUI files")
+            _full
+            ;;
+        "")
+            echo "User aborted uninstall process"
+            exit 1
+            ;;
+    esac
+    local self="$(realpath "$0")"
+    echo "Deleting '$self'"
+    rm "$self"
+    echo "Uninstall routine complete"
+}
+main(){
+    local zenv=$(zenity --version 2>/dev/null)
+    [[ -z $zenv ]] && { echo "Requires zenity >= ${deps[$steamsafe_zenity]}"; exit 1; }
+    if [[ $1 == "--uninstall" ]] || [[ $1 == "-u" ]]; then
+        uninstall &&
+        exit 0
+    fi
+    if [[ $1 == "--steam" ]] || [[ $1 == "-s" ]]; then
+        export STEAM_LAUNCH=1
+    fi
+    
+    set_im_module
+
+    printf "Initializing setup...\n"
+    initial_setup
+
+    printf "All OK. Kicking off UI...\n"
+    python3 "$ui_helper" "--init-ui" "$version" "$is_steam_deck"
+}
+main "$@"
+#TODO: tech debt: cruddy handling for steam forking
+[[ $? -eq 1 ]] && pkill -f dzgui.sh

From d072c8107e7579312d2e30066fc38ab6b8355afb Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Sun, 9 Feb 2025 19:01:30 +0900
Subject: [PATCH 98/99] chore: drop extraneous file

---
 dzgui.sh.old | 1024 --------------------------------------------------
 1 file changed, 1024 deletions(-)
 delete mode 100755 dzgui.sh.old

diff --git a/dzgui.sh.old b/dzgui.sh.old
deleted file mode 100755
index 65b151b..0000000
--- a/dzgui.sh.old
+++ /dev/null
@@ -1,1024 +0,0 @@
-#!/usr/bin/env bash
-set -o pipefail
-
-version=5.7.0-beta.5
-
-#CONSTANTS
-aid=221100
-game="dayz"
-app_name="dzgui"
-app_name_upper="DZGUI"
-workshop="steam://url/CommunityFilePage/"
-sd_res="--width=1280 --height=800"
-steamsafe_zenity="/usr/bin/zenity"
-zenity_flags=("--width=500" "--title=DZGUI")
-declare -A deps
-deps=([awk]="5.1.1" [curl]="7.80.0" [jq]="1.6" [tr]="9.0" [$steamsafe_zenity]="3.44.1")
-
-#CONFIG
-config_path="$HOME/.config/dztui"
-config_file="$config_path/dztuirc"
-
-#PATHS
-state_path="$HOME/.local/state/$app_name"
-cache_path="$HOME/.cache/$app_name"
-share_path="$HOME/.local/share/$app_name"
-script_path="$share_path/dzgui.sh"
-helpers_path="$share_path/helpers"
-
-#LOGS
-log_path="$state_path/logs"
-debug_log="$log_path/DZGUI_DEBUG.log"
-
-#STATE FILES
-prefix="dzg"
-history_file="$state_path/$prefix.history"
-versions_file="$state_path/$prefix.versions"
-lock_file="$state_path/$prefix.lock"
-cols_file="$state_path/$prefix.cols.json"
-
-#CACHE FILES
-coords_file="$cache_path/$prefix.coords"
-
-#legacy paths
-hist_file="$config_path/history"
-version_file="$config_path/versions"
-
-#XDG
-freedesktop_path="$HOME/.local/share/applications"
-
-#HELPERS
-ui_helper="$helpers_path/ui.py"
-geo_file="$helpers_path/ips.csv"
-km_helper="$helpers_path/latlon"
-sums_path="$helpers_path/sums.md5"
-func_helper="$helpers_path/funcs"
-
-#REMOTE
-remote_host=gh
-author="aclist"
-repo="dztui"
-url_prefix="https://raw.githubusercontent.com/$author/$repo"
-stable_url="$url_prefix/dzgui"
-testing_url="$url_prefix/testing"
-releases_url="https://github.com/$author/$repo/releases/download/browser"
-km_helper_url="$releases_url/latlon"
-geo_file_url="$releases_url/ips.csv.gz"
-
-
-set_im_module(){
-    #TODO: drop pending SteamOS changes
-    pgrep -a gamescope | grep -q "generate-drm-mode"
-    if [[ $? -eq 0 ]]; then
-        GTK_IM_MODULE=""
-        logger INFO "Detected Steam Deck (Game Mode), unsetting GTK_IM_MODULE"
-    else
-        return
-    fi
-}
-redact(){
-    sed 's@\(/home/\)[^/]*@\1REDACTED@g'
-}
-logger(){
-    local date="$(date "+%F %T,%3N")"
-    local tag="$1"
-    local string="$2"
-    local self="${BASH_SOURCE[0]}"
-    local caller="${FUNCNAME[1]}"
-    local line="${BASH_LINENO[0]}"
-    printf "%s␞%s␞%s::%s()::%s␞%s\n" "$date" "$tag" "$self" "$caller" "$line" "$string" \
-        | redact >> "$debug_log"
-}
-setup_dirs(){
-    for dir in "$state_path" "$cache_path" "$share_path" "$helpers_path" "$freedesktop_path" "$config_path" "$log_path"; do
-        if [[ ! -d $dir ]]; then
-            mkdir -p "$dir"
-        fi
-    done
-}
-setup_state_files(){
-    if [[ -f "$debug_log" ]]; then
-        rm "$debug_log" && touch $debug_log
-        logger INFO "Initializing DZGUI version $version"
-    fi
-    if [[ -f "$version_file" ]]; then
-        mv "$version_file" "$versions_file" &&
-        logger INFO "Migrating legacy version file"
-    fi
-    # wipe cache files
-    local path="$cache_path"
-    if find "$path" -mindepth 1 -maxdepth 1 | read; then
-        for file in $path/*; do
-            rm "$file"
-        done
-        logger INFO "Wiped cache files"
-    fi
-}
-print_config_vals(){
-    local keys=(
-    "branch"
-    "name"
-    "fav_server"
-    "fav_label"
-    "auto_install"
-    "steam_path"
-    "default_steam_path"
-    "preferred_client"
-    )
-    for i in "${keys[@]}"; do
-        logger INFO "Read key '$i': '${!i}'"
-    done
-    if [[ ${#ip_list[@]} -lt 1 ]]; then
-        logger WARN "No IPs in saved server list"
-    fi
-
-}
-test_gobject(){
-    python3 -c "import gi"
-    if [[ ! $? -eq 0 ]]; then
-        logger CRITICAL "Missing PyGObject"
-        fdialog "Requires PyGObject (python-gobject)"
-        exit 1
-    fi
-    logger INFO "Found PyGObject in Python env"
-}
-update_config(){
-    # handling for legacy files
-    [[ -z $branch ]] && branch="stable"
-    [[ -f $config_file ]] && mv $config_file ${config_file}.old
-    write_config > $config_file && return 90 || return 1
-    logger INFO "Updated config file at '$config_file'"
-}
-setup_steam_client(){
-    local flatpak
-    local steam
-    local steam_cmd
-    [[ -n $preferred_client ]] && return 0
-    [[ $(command -v flatpak) ]] && flatpak=$(flatpak list | grep valvesoftware.Steam)
-    steam=$(command -v steam)
-    if [[ -z "$steam" ]] && [[ -z "$flatpak" ]]; then
-        raise_error_and_quit "Requires Steam or Flatpak Steam"
-    elif [[ -n "$steam" ]] && [[ -n "$flatpak" ]]; then
-        preferred_client="steam"
-    elif [[ -n "$steam" ]]; then
-        preferred_client="steam"
-    else
-        steam_cmd="flatpak run com.valvesoftware.Steam"
-    fi
-    update_config && logger INFO "Preferred client set to '$steam_cmd'" || return 1
-}
-print_ip_list(){
-    [[ ${#ip_list[@]} -eq 0 ]] && return 1
-    printf "\t\"%s\"\n" "${ip_list[@]}"
-}
-write_config(){
-cat <<-END
-#Path to DayZ installation
-steam_path="$steam_path"
-
-#Battlemetrics API key
-api_key="$api_key"
-
-#Favorited server IP:PORT array
-ip_list=(
-$(print_ip_list)
-)
-
-#Favorite server to fast-connect to (limit one)
-fav_server="$fav_server"
-
-#Favorite server label (human readable)
-fav_label="$fav_label"
-
-#Custom player name (optional, required by some servers)
-name="$name"
-
-#Set to 1 to perform dry-run and print launch options
-debug="$debug"
-
-#Toggle stable/testing branch
-branch="$branch"
-
-#Start in fullscreen
-fullscreen="$fullscreen"
-
-#Steam API key
-steam_api="$steam_api"
-
-#Auto-install mods
-auto_install="$auto_install"
-
-#Automod staging directory
-staging_dir="$staging_dir"
-
-#Path to default Steam client
-default_steam_path="$default_steam_path"
-
-#Preferred Steam launch command (for Flatpak support)
-preferred_client="$preferred_client"
-
-#DZGUI source path
-src_path="$src_path"
-END
-}
-depcheck(){
-    for dep in "${!deps[@]}"; do
-        command -v "$dep" 2>&1>/dev/null
-        if [[ $? -eq 1 ]]; then
-            local msg="Requires $dep >= ${deps[$dep]}"
-            raise_error_and_quit "$msg"
-        fi
-    done
-    local jqmsg="jq must be compiled with support for oniguruma"
-    local jqtest
-    jqtest=$(echo '{"test": "foo"}' | jq '.test | test("^foo$")')
-    [[ $? -ne 0 ]] && raise_error_and_quit "$jqmsg"
-    logger INFO "Initial dependencies satisfied"
-}
-check_pyver(){
-    local pyver=$(python3 --version | awk '{print $2}')
-    local minor=$(<<< $pyver awk -F. '{print $2}')
-    if [[ -z $pyver ]] || [[ ${pyver:0:1} -lt 3 ]] || [[ $minor -lt 10 ]]; then
-        local msg="Requires Python >=3.10"
-        raise_error_and_quit "$msg"
-    fi
-    logger INFO "Found Python version: $pyver"
-}
-watcher_deps(){
-    if [[ ! $(command -v wmctrl) ]] && [[ ! $(command -v xdotool) ]]; then
-        raise_error_and_quit "Missing dependency: requires 'wmctrl' or 'xdotool'"
-        exit 1
-    fi
-    logger INFO "Found DZG Watcher dependencies"
-}
-format_version_url(){
-    [[ -z "$branch" ]] && branch="stable"
-    case "$branch" in
-        "stable")
-            version_url="$stable_url/dzgui.sh"
-            ;;
-        "testing")
-            version_url="$testing_url/dzgui.sh"
-            ;;
-    esac
-    echo "$version_url"
-}
-write_desktop_file(){
-cat <<-END
-[Desktop Entry]
-Version=1.0
-Type=Application
-Terminal=false
-Exec=$share_path/dzgui.sh
-Name=$app_name_upper
-Comment=$app_name
-Icon=$share_path/$app_name
-Categories=Game
-END
-}
-freedesktop_dirs(){
-    local version_url=$(format_version_url)
-    local img_url="$stable_url/images"
-    curl -s "$version_url" > "$script_path"
-    chmod +x "$script_path"
-    for i in dzgui grid.png hero.png logo.png icon.png; do
-        curl -s "$img_url/$i" > "$share_path/$i"
-    done
-    write_desktop_file > "$freedesktop_path/$app_name.desktop"
-    [[ $is_steam_deck -eq 0 ]] && return
-    write_desktop_file > "$HOME/Desktop/$app_name.desktop"
-}
-legacy_vars(){
-    local suffix="fav"
-    local hr_msg="Config file contains values based on old API. Please update and re-run setup."
-    local msg="Config file contains legacy API value: '$suffix'"
-    if [[ -n $fav ]]; then
-        logger WARN "$msg"
-        fdialog "$hr_msg"
-        exit 1
-    fi
-    if [[ -n $whitelist ]]; then
-        suffix="whitelist"
-        logger WARN "$msg"
-        fdialog "$hr_msg"
-        exit 1
-    fi
-}
-merge_config(){
-    [[ -z $staging_dir ]] && staging_dir="/tmp"
-    update_config
-    tdialog "Wrote new config format to \n${config_file}\nIf errors occur, you can restore the file:\n${config_file}.old"
-}
-check_unmerged(){
-    if [[ -f ${config_path}.unmerged ]]; then
-        merge_config
-        rm ${config_path}.unmerged
-    fi
-}
-check_version(){
-    local version_url=$(format_version_url)
-    local upstream=$(curl -Ls "$version_url" | awk -F= '/^version=/ {print $2}')
-    local res=$(get_response_code "$version_url")
-    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$version_url'"
-    logger INFO "Local branch: '$branch', local version: $version"
-    if [[ $branch == "stable" ]]; then
-        version_url="$stable_url/dzgui.sh"
-    elif [[ $branch == "testing" ]]; then
-        version_url="$testing_url/dzgui.sh"
-    fi
-    [[ ! -f "$freedesktop_path/$app_name.desktop" ]] && freedesktop_dirs
-    if [[ $version == $upstream ]]; then
-        logger INFO "Local version is same as upstream"
-        check_unmerged
-    else
-        logger WARN "Local and remote version mismatch: $version != $upstream"
-        prompt_dl
-    fi
-}
-download_new_version(){
-    local version_url="$(format_version_url)"
-    logger INFO "Version URL is '$version_url'"
-    logger INFO "$src_path"
-    mv "$src_path" "$src_path.old"
-    curl -L "$version_url" > "$src_path" 2>$debug_log
-    rc=$?
-    if [[ $rc -eq 0 ]]; then
-        dl_changelog
-        logger INFO "Wrote new version to $src_path"
-        chmod +x "$src_path"
-        touch "${config_path}.unmerged"
-        fdialog "DZGUI $upstream successfully downloaded. To use the new version, select Exit and restart."
-        logger INFO "User exited after version upgrade"
-        exit 0
-    else
-        mv "$src_path.old" "$src_path"
-        logger WARN "curl failed to fetch new version. Rolling back"
-        fdialog "Failed to download the new version. Restoring old version"
-        return 1
-    fi
-}
-prompt_dl(){
-    _text(){
-	cat <<-EOF
-	Version conflict.
-
-	Your branch: $branch
-	Your version: $version
-	Upstream version: $upstream
-	
-	Version updates introduce important bug fixes and are encouraged. Attempt to download the latest version?
-	EOF
-    }
-    qdialog "$(_text)" "Yes" "No"
-    if [[ $? -eq 1 ]]; then
-        return 0
-    else
-        download_new_version
-    fi
-}
-dl_changelog(){
-    local mdbranch
-    local md
-    [[ $branch == "stable" ]] && mdbranch="dzgui"
-    [[ $branch == "testing" ]] && mdbranch="testing"
-    local md="$url_prefix/${mdbranch}/$file"
-    curl -Ls "$md" > "$state_path/CHANGELOG.md"
-}
-test_display_mode(){
-    pgrep -a gamescope | grep -q "generate-drm-mode"
-    if [[ $? -eq 0 ]]; then
-        echo gm
-    else
-        echo dm
-    fi
-}
-check_architecture(){
-    local cpu=$(< /proc/cpuinfo awk -F": " '/AMD Custom APU [0-9]{4}$/ {print $2; exit}')
-    read -a APU_MODEL <<< "$cpu"
-    if [[ ${APU_MODEL[3]} != "0932" ]] && [[ ${APU_MODEL[3]} != "0405" ]]; then
-        is_steam_deck=0
-        logger INFO "Setting architecture to 'desktop'"
-        return
-    fi
-
-    if [[ $(test_display_mode) == "gm" ]]; then
-        is_steam_deck=2
-    else
-        is_steam_deck=1
-    fi
-    logger INFO "Setting architecture to 'Steam Deck'"
-}
-check_map_count(){
-    [[ $is_steam_deck -gt 0 ]] && return 0
-    local map_count_file="/proc/sys/vm/max_map_count"
-    local min_count=1048576
-    local conf_file="/etc/sysctl.d/dayz.conf"
-    local current_count
-    if [[ ! -f ${map_count_file} ]]; then
-        logger WARN "File '${map_count_file}' doesn't exist!"
-        return 1
-    fi
-    current_count=$(cat ${map_count_file})
-    if [[ $current_count -ge $min_count ]]; then
-        logger DEBUG "System map count is set to ${current_count}"
-        return 0
-    fi
-    qdialog "sudo password required to set system vm map count." "OK" "Cancel"
-    if [[ $? -eq 0 ]]; then
-        local pass
-        logger INFO "Prompting user for sudo escalation"
-        pass=$($steamsafe_zenity --password)
-        if [[ $? -eq 1 ]]; then
-            logger WARN "User aborted password prompt"
-            return 1
-        fi
-        logger DEBUG "Old map count is $current_count"
-        [[ $current_count -lt $min_count ]] && current_count=$min_count
-        sudo -S <<< "$pass" sh -c "echo 'vm.max_map_count=${current_count}' > $conf_file"
-        sudo sysctl -p "$conf_file"
-        logger DEBUG "Updated map count to $min_count"
-    else
-        logger WARN "User aborted map count prompt"
-        return 1
-    fi
-}
-qdialog(){
-    local text="$1"
-    local ok="$2"
-    local cancel="$3"
-    $steamsafe_zenity --question --text="$1" --ok-label="$ok" --cancel-label="$cancel" "${zenity_flags[@]}"
-}
-pdialog(){
-    $steamsafe_zenity --progress --pulsate --auto-close "${zenity_flags[@]}" --text="$1"
-}
-fdialog(){
-    $steamsafe_zenity --warning --ok-label="Exit" --text="$1" "${zenity_flags[@]}"
-}
-tdialog(){
-    $steamsafe_zenity --info --text="$1" "${zenity_flags[@]}"
-}
-steam_deps(){
-    local flatpak
-    local steam
-    [[ $(command -v flatpak) ]] && flatpak=$(flatpak list | grep valvesoftware.Steam)
-    steam=$(command -v steam)
-    if [[ -z "$steam" ]] && [[ -z "$flatpak" ]]; then
-        local msg="Found neither Steam nor Flatpak Steam"
-        raise_error_and_quit "$msg"
-        exit 1
-    elif [[ -n "$steam" ]] && [[ -n "$flatpak" ]]; then
-        [[ -n $preferred_client ]] && return 0
-        if [[ -z $preferred_client ]]; then
-            preferred_client="steam"
-        fi
-    elif [[ -n "$steam" ]]; then
-        preferred_client="steam"
-    else
-        preferred_client="flatpak"
-    fi
-    update_config
-    logger INFO "Preferred client set to '$preferred_client'"
-}
-migrate_files(){
-    if [[ ! -f $config_path/dztuirc.oldapi ]]; then
-        cp $config_file $config_path/dztuirc.oldapi
-        logger INFO "Migrated old API file"
-    fi
-    [[ ! -f $hist_file ]] && return
-    rm $hist_file
-    logger INFO "Wiped old history file"
-}
-stale_symlinks(){
-    local game_dir="$steam_path/steamapps/common/DayZ"
-    for l in $(find "$game_dir" -xtype l); do
-        logger DEBUG "Updating stale symlink '$l'"
-        unlink "$l"
-    done
-}
-local_latlon(){
-    if [[ -z $(command -v dig) ]]; then
-        local local_ip=$(curl -Ls "https://ipecho.net/plain")
-    else
-        local local_ip=$(dig -4 +short myip.opendns.com @resolver1.opendns.com)
-    fi
-    local url="http://ip-api.com/json/$local_ip"
-    local res=$(curl -Ls "$url" | jq -r '"\(.lat)\n\(.lon)"')
-    if [[ -z "$res" ]]; then
-        logger WARN "Failed to get local coordinates"
-        return 1
-    fi
-    echo "$res" > "$coords_file"
-}
-lock(){
-    [[ ! -f $lock_file ]] && touch $lock_file
-    local pid=$(cat $lock_file)
-    ps -p $pid -o pid= >/dev/null 2>&1
-    res=$?
-    if [[ $res -eq 0 ]]; then
-        local msg="DZGUI already running ($pid)"
-        raise_error_and_quit "$msg"
-    elif [[ $pid == $$ ]]; then
-        :
-    else
-        echo $$ > $lock_file
-    fi
-}
-get_hash(){
-    local file="$1"
-    md5sum "$1" | awk '{print $1}'
-}
-fetch_a2s(){
-    # this file is currently monolithic
-    [[ -d $helpers_path/a2s ]] && { logger INFO "A2S helper is current"; return 0; }
-    local sha=c7590ffa9a6d0c6912e17ceeab15b832a1090640
-    local author="yepoleb"
-    local repo="python-a2s"
-    local url="https://github.com/$author/$repo/tarball/$sha"
-    local prefix="${author^}-$repo-${sha:0:7}"
-    local file="$prefix.tar.gz"
-    local res=$(get_response_code "$url")
-    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$file'"
-    curl -Ls "$url" > "$helpers_path/$file"
-    tar xf "$helpers_path/$file" -C "$helpers_path" "$prefix/a2s" --strip=1
-    rm "$helpers_path/$file"
-    logger INFO "Updated A2S helper to sha '$sha'"
-}
-fetch_dzq(){
-    local sum="9caed1445c45832f4af87736ba3f9637"
-    local file="$helpers_path/a2s/dayzquery.py"
-    if [[ -f $file ]] && [[ $(get_hash "$file") == $sum ]]; then
-        logger INFO "DZQ is current"
-        return 0
-    fi
-    local sha=3088bbfb147b77bc7b6a9425581b439889ff3f7f
-    local author="yepoleb"
-    local repo="dayzquery"
-    local url="https://raw.githubusercontent.com/$author/$repo/$sha/dayzquery.py"
-    local res=$(get_response_code "$url")
-    [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: 'dayzquery.py'"
-    curl -Ls "$url" > "$file"
-    logger INFO "Updated DZQ to sha '$sha'"
-}
-fetch_icons(){
-    res=(
-            "16"
-            "24"
-            "32"
-            "48"
-            "64"
-            "96"
-            "128"
-            "256"
-    )
-    url="$stable_url/images/icons"
-    for i in "${res[@]}"; do
-        size="${i}x${i}"
-        dir="$HOME/.local/share/icons/hicolor/$size/apps"
-        icon="$dir/$app_name.png"
-        [[ -f $icon ]] && return
-        if [[ ! -d $dir ]]; then
-            mkdir -p "$dir"
-        fi
-        logger INFO "Updating $size Freedesktop icon"
-        curl -Ls "${url}/${i}.png" > "$icon"
-    done
-}
-fetch_helpers_by_sum(){
-    [[ -f "$config_file" ]] && source "$config_file"
-    declare -A sums
-    sums=(
-        ["ui.py"]="d3ad9153d8599bea0eede9fd3121ee8e"
-        ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
-        ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
-        ["funcs"]="6a1c7ce585d9b76e2e75dba9d4295f8d"
-        ["lan"]="c62e84ddd1457b71a85ad21da662b9af"
-    )
-    local author="aclist"
-    local repo="dztui"
-    local realbranch
-    local file
-    local sum
-    local full_path
-
-    # first time setup
-    if [[ -z $branch ]]; then
-        realbranch="dzgui"
-    else
-        realbranch="$branch"
-    fi
-    if [[ $realbranch == "stable" ]]; then
-        realbranch="dzgui"
-    fi
-
-    for i in "${!sums[@]}"; do
-        file="$i"
-        sum="${sums[$i]}"
-        full_path="$helpers_path/$file"
-
-        url="${url_prefix}/$realbranch/helpers/$file"
-
-        if [[ -f "$full_path" ]] && [[ $(get_hash "$full_path") == $sum ]]; then
-            logger INFO "$file is current"
-        else
-            logger WARN "File '$full_path' checksum != '$sum'"
-            local res=$(get_response_code "$url")
-            [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$url'"
-            curl -Ls "$url" > "$full_path"
-            if [[ ! $? -eq 0 ]]; then
-                raise_error_and_quit "Failed to fetch the file '$file'. Possible timeout?"
-            fi
-            if [[ $(get_hash $full_path) != $sum ]]; then
-                logger WARN "Downloaded new '$file', but checksum != '$sum'"
-            fi
-            logger INFO "Updated '$full_path' to sum '$sum'"
-        fi
-        [[ $file == "funcs" ]] && chmod +x "$full_path"
-        [[ $file == "lan" ]] && chmod +x "$full_path"
-    done
-    return 0
-}
-fetch_geo_file(){
-    # for binary releases
-    local geo_sum="28ccd75b3e03cf07a7011f22ef0cd69b"
-    local km_sum="b038fdb8f655798207bd28de3a004706"
-    local gzip="$helpers_path/ips.csv.gz"
-    if [[ ! -f $geo_file  ]] || [[ $(get_hash $geo_file) != $geo_sum ]]; then
-        local res=$(get_response_code "$geo_file_url")
-        [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$geo_file_url'"
-        curl -Ls "$geo_file_url" > "$gzip"
-        #force overwrite
-        gunzip -f "$gzip"
-    fi
-    if [[ ! -f $km_helper ]] || [[ $(get_hash $km_helper) != $km_sum ]]; then
-        local res=$(get_response_code "$km_helper_url")
-        [[ $res -ne 200 ]] && raise_error_and_quit "Remote resource unavailable: '$km_helper_url'"
-        curl -Ls "$km_helper_url" > "$km_helper"
-        chmod +x "$km_helper"
-    fi
-}
-fetch_helpers(){
-    fetch_a2s
-    fetch_dzq
-    fetch_geo_file
-    fetch_helpers_by_sum
-    [[ ! -f $share_path/icon.png ]] && freedesktop_dirs
-    fetch_icons
-}
-raise_error_and_quit(){
-    local msg="$1"
-    logger CRITICAL "$msg"
-    fdialog "$msg"
-    exit 1
-}
-test_steam_api(){
-    local key="$1"
-    [[ -z $key ]] && return 1
-    local url="https://api.steampowered.com/IGameServersService/GetServerList/v1/?filter=\appid\221100&limit=10&key=$key"
-    local code=$(curl -ILs "$url" | grep -E "^HTTP")
-    [[ ! $code =~ 200 ]] && echo 1
-    [[ $code =~ 200 ]] && echo 0
-}
-test_bm_api(){
-    local bm_api="https://api.battlemetrics.com/servers"
-    local key="$1"
-    [[ -z $key ]] && return 1
-    local code=$(curl -ILs "$bm_api" \
-        -H "Authorization: Bearer "$key"" -G \
-        -d "filter[game]=$game" \
-        | grep -E "^HTTP")
-    [[ $code =~ 401 ]] && echo 1
-    [[ $code =~ 200 ]] && echo 0
-}
-find_default_path(){
-    _discover(){
-        readarray -t paths < <(find / -type d \( -path "/proc" -o -path "*/timeshift" -o -path \
-                    "/tmp" -o -path "/usr" -o -path "/boot" -o -path "/proc" -o -path "/root" \
-                    -o -path "/sys" -o -path "/etc" -o -path "/var" -o -path "/lost+found" \) -prune \
-                    -o -regex ".*Steam/config/libraryfolders.vdf$" -print 2>/dev/null | sed 's@/config/libraryfolders.vdf@@')
-
-        if [[ "${#paths[@]}" -gt 1 ]]; then
-            echo "100"
-            default_steam_path=$(printf "%s\n" "${paths[@]}" | $steamsafe_zenity --list --column="paths" --hide-header --text="Found multiple valid Steam paths. Select your default Steam installation." --title="DZGUI")
-            [[ -z "$default_steam_path" ]] && exit 1
-        else
-            default_steam_path="${paths[0]}"
-        fi
-    }
-    if [[ $is_steam_deck -gt 0 ]]; then
-        default_steam_path="$HOME/.local/share/Steam"
-        logger INFO "Set default Steam path to $default_steam_path"
-        return 0
-    fi
-    local def_path
-    local ubuntu_path
-    local flatpak_path
-    local debian_path
-    def_path="$HOME/.local/share/Steam"
-    ubuntu_path="$HOME/.steam/steam"
-    debian_path="$HOME/.steam/debian-installation"
-    flatpak_path="$HOME/.var/app/com.valvesoftware.Steam/data/Steam"
-
-    #ubuntu path must precede default path because
-    #both exist on ubuntu systems, but only ubuntu path contains library data
-    for i in "$ubuntu_path" "$def_path" "$debian_path" "$flatpak_path"; do
-        if [[ -d "$i" ]]; then
-            default_steam_path="$i"
-            return 0
-        fi
-    done
-
-    local msg="Let DZGUI auto-discover Steam path (accurate, slower)\nSelect the Steam path manually (less accurate, faster)"
-    local res=$(echo -e "$msg" | $steamsafe_zenity --list \
-        --column="Choice" \
-        --title="DZGUI" \
-        --hide-header \
-        --text="Steam is not installed in a standard location." \
-        $sd_res)
-
-    case "$res" in
-        *auto*) _discover > >(pdialog "Scanning paths") ;;
-        *manual*)
-            zenity --info --text="\nSelect the top-level entry point to the location where Steam (not DayZ)\nis installed and before entering the \"steamapps\" path.\n\nE.g., if Steam is installed at:\n\"/media/mydrive/Steam\"\n\nCorrect:\n- \"/media/mydrive/Steam\"\n\nIncorrect:\n- \"/media/mydrive/Steam/steamapps/common/DayZ\"\n- \"/media/mydrive/\"" --width=500 &&
-            file_picker ;;
-        esac
-}
-file_picker(){
-    local path=$($steamsafe_zenity --file-selection --directory)
-    logger INFO "File picker path resolved to: $path"
-    if [[ -z "$path" ]]; then
-        logger WARN "Steam path selection was empty"
-        return
-    else
-        default_steam_path="$path"
-    fi
-}
-find_library_folder(){
-    local search_path="$1"
-    steam_path="$(python3 "$helpers_path/vdf2json.py" -i "$1/steamapps/libraryfolders.vdf" \
-        | jq -r '.libraryfolders[]|select(.apps|has("221100")).path')"
-    if [[ ! $? -eq 0 ]] || [[ -z $steam_path ]]; then
-        logger WARN "Failed to parse Steam path using '$search_path'"
-        return 1
-    fi
-    logger INFO "Steam path resolved to: $steam_path"
-}
-create_config(){
-    #if old path is malformed and this function is forcibly called,
-    #wipe paths from memory before entering the loop to force path rediscovery
-    unset default_steam_path
-    unset steam_path
-
-    while true; do
-        local player_input="$($steamsafe_zenity \
-            --forms \
-            --add-entry="Player name (required for some servers)" \
-            --add-entry="Steam API key" \
-            --add-entry="BattleMetrics API key (optional)" \
-            --title="DZGUI" \
-            --text="DZGUI" $sd_res \
-            --separator="@")"
-        #explicitly setting IFS crashes $steamsafe_zenity in loop
-        #and mapfile does not support high ascii delimiters, so split fields with newline
-        readarray -t args < <(<<< "$player_input" sed 's/@/\n/g')
-        name="${args[0]}"
-        steam_api="${args[1]}"
-        api_key="${args[2]}"
-
-        if [[ -z $player_input ]]; then
-            logger WARN "User aborted setup process"
-            exit 1
-        fi
-        if [[ -z $steam_api ]]; then
-            tdialog "Steam API key canot be empty"
-            continue
-        elif [[ "${#steam_api}" -lt 32 ]] || [[ $(test_steam_api "$steam_api") -eq 1 ]]; then
-            tdialog "Invalid Steam API key"
-            continue
-        fi
-        if [[ -n $api_key ]] && [[ $(test_bm_api $api_key) -eq 1 ]]; then
-            tdialog "Invalid BM API key"
-            continue
-        fi
-        while true; do
-            if [[ -n $steam_path ]]; then
-                write_config
-                [[ $? -eq 0 ]] && logger INFO "Successfully created config file"
-                return 0
-            fi
-            find_default_path
-            find_library_folder "$default_steam_path"
-            if [[ -z $steam_path ]]; then
-                logger raise_error "Steam path was empty"
-                zenity --question --text="DayZ not found or not installed at the Steam library given. NOTE: if you recently installed DayZ or moved its location, you MUST restart Steam first for these changes to synch." --ok-label="Choose path manually" --cancel-label="Exit"
-                if [[ $? -eq 0 ]]; then
-                    logger INFO "User selected file picker"
-                    file_picker
-                    find_library_folder "$default_steam_path"
-                else
-                    fdialog "Failed to find Steam at the provided location"
-                    exit 1
-                fi
-            else
-                branch="stable"
-                update_config
-                logger INFO "Wrote config to '$config_file'"
-                return 0
-            fi
-        done
-    done
-}
-varcheck(){
-    local msg="Config file '$config_file' missing. Start first-time setup now?"
-    local msg2="The Steam paths set in your config file appear to be invalid. Restart first-time setup now?"
-    if [[ ! -f $config_file ]]; then
-        qdialog "$msg" "Yes" "Exit"
-        if [[ $? -eq 1 ]]; then
-            logger CRITICAL "Config file missing, but user aborted setup"
-            exit 1
-        fi
-        create_config
-    fi
-    source "$config_file"
-    local workshop_dir="$steam_path/steamapps/workshop/content/$aid"
-    local game_dir="$steam_path/steamapps/common/DayZ"
-    if [[ ! -d $steam_path ]] || [[ ! -d $game_dir ]] || [[ ! $(find $game_dir -type f) ]]; then
-        logger WARN "DayZ path resolved to '$game_dir'"
-        logger WARN "Workshop path resolved to '$workshop_dir'"
-        qdialog "$msg2" "Yes" "Exit"
-        if [[ $? -eq 1 ]]; then
-            logger CRITICAL "Malformed Steam path, but user aborted setup"
-            exit 1
-        fi
-        create_config
-        return 0
-    fi
-    if [[ $src_path != $(realpath "$0") ]]; then
-        src_path=$(realpath "$0")
-        update_config
-    fi
-}
-is_dzg_downloading(){
-    if [[ -d $steam_path ]] && [[ -d $steam_path/downloading/$aid ]]; then
-        logger WARN "DayZ may be scheduling updates"
-        return 0
-    fi
-}
-is_steam_running(){
-    local res=$(ps aux | grep "steamwebhelper" | grep -v grep)
-    if [[ -z $res ]]; then
-        logger WARN "Steam may not be running"
-        tdialog "Is Steam running? For best results, make sure Steam is open in the background."
-        return 0
-    fi
-}
-get_response_code(){
-    local url="$1"
-    curl -Ls -I -o /dev/null -w "%{http_code}" "$url"
-}
-test_connection(){
-    source "$config_file"
-    declare -A hr
-    local res1
-    local res2
-    local str="No connection could be established to the remote server"
-    hr=(
-        ["steampowered.com"]="https://api.steampowered.com/IGameServersService/GetServerList/v1/?key=$steam_api"
-        ["github.com"]="https://github.com/$author"
-        ["codeberg.org"]="https://codeberg.org/$author"
-    )
-    # steam API is mandatory, except on initial setup
-    if [[ -n $steam_api ]]; then
-        res=$(get_response_code "${hr["steampowered.com"]}")
-        [[ $res -ne 200 ]] && raise_error_and_quit "$str ("steampowered.com")"
-    fi
-
-    res=$(get_response_code "${hr["github.com"]}")
-    if [[ $res -ne 200 ]]; then
-        logger WARN "Remote host '${hr["github.com"]}' unreachable', trying fallback"
-        remote_host=cb
-        logger INFO "Set remote host to '${hr["codeberg.org"]}'"
-        res=$(get_response_code "${hr["codeberg.org"]}")
-        [[ $res -ne 200 ]] && raise_error_and_quit "$str (${hr["codeberg.org"]})"
-    fi
-    if [[ $remote_host == "cb" ]]; then
-        url_prefix="https://codeberg.org/$author/$repo/raw/branch"
-        releases_url="https://codeberg.org/$author/$repo/releases/download/browser"
-        stable_url="$url_prefix/dzgui"
-        testing_url="$url_prefix/testing"
-        km_helper_url="$releases_url/latlon"
-        geo_file_url="$releases_url/ips.csv.gz"
-    fi
-}
-legacy_cols(){
-    [[ ! -f $cols_file ]] && return
-    local has=$(< "$cols_file" jq '.cols|has("Queue")')
-    [[ $has == "true" ]] && return
-    < $cols_file jq '.cols += { "Queue": 120 }' > $cols_file.new &&
-    mv $cols_file.new $cols_file
-}
-stale_mod_signatures(){
-    local workshop_dir="$steam_path/steamapps/workshop/content/$aid"
-    if [[ -d $workshop_dir ]]; then
-        readarray -t old_mod_ids < <(awk -F, '{print $1}' $versions_file)
-        for ((i=0; i<${#old_mod_ids[@]}; ++i)); do
-            if [[ ! -d $workshop_dir/${old_mod_ids[$i]} ]]; then
-                "$HOME/.local/share/$app_name/helpers/funcs" "align_local" "${old_mod_ids[$i]}"
-            fi
-        done
-    fi
-
-}
-create_new_links(){
-    "$HOME/.local/share/$app_name/helpers/funcs" "update_symlinks"
-}
-initial_setup(){
-    setup_dirs
-    setup_state_files
-    depcheck
-    check_pyver
-    test_gobject
-    watcher_deps
-    check_architecture
-    test_connection
-#    fetch_helpers > >(pdialog "Checking helper files")
-    varcheck
-    source "$config_file"
-    lock
-    legacy_vars
-    legacy_cols
-    check_version
-    check_map_count
-    steam_deps
-    migrate_files
-    stale_symlinks
-    stale_mod_signatures
-    create_new_links
-    local_latlon
-    is_steam_running
-    is_dzg_downloading
-    print_config_vals
-}
-uninstall(){
-    _full(){
-        for i in "$config_path" "$state_path" "$cache_path" "$share_path"; do
-            echo "Deleting the path '$i'"
-            rm -rf "$i"
-        done
-    }
-    _partial(){
-        for i in "$cache_path" "$share_path"; do
-            echo "Deleting the path '$i'"
-            rm -rf "$i"
-        done
-    }
-    local choice=$($steamsafe_zenity \
-        --list \
-        --radiolist \
-        --column="a" \
-        --column="b" \
-        --hide-header \
-        --text="Choose an uninstall routine below." \
-        TRUE "Keep user config files" \
-        FALSE "Delete all DZGUI files" \
-        --title="DZGUI"
-        )
-
-    case "$choice" in
-        "Keep user config files")
-            _partial
-            ;;
-        "Delete all DZGUI files")
-            _full
-            ;;
-        "")
-            echo "User aborted uninstall process"
-            exit 1
-            ;;
-    esac
-    local self="$(realpath "$0")"
-    echo "Deleting '$self'"
-    rm "$self"
-    echo "Uninstall routine complete"
-}
-main(){
-    local zenv=$(zenity --version 2>/dev/null)
-    [[ -z $zenv ]] && { echo "Requires zenity >= ${deps[$steamsafe_zenity]}"; exit 1; }
-    if [[ $1 == "--uninstall" ]] || [[ $1 == "-u" ]]; then
-        uninstall &&
-        exit 0
-    fi
-    if [[ $1 == "--steam" ]] || [[ $1 == "-s" ]]; then
-        export STEAM_LAUNCH=1
-    fi
-    
-    set_im_module
-
-    printf "Initializing setup...\n"
-    initial_setup
-
-    printf "All OK. Kicking off UI...\n"
-    python3 "$ui_helper" "--init-ui" "$version" "$is_steam_deck"
-}
-main "$@"
-#TODO: tech debt: cruddy handling for steam forking
-[[ $? -eq 1 ]] && pkill -f dzgui.sh

From f3b3f79bfb77af0d963a75fa3a068e035ea0354d Mon Sep 17 00:00:00 2001
From: aclist <92275929+aclist@users.noreply.github.com>
Date: Sun, 9 Feb 2025 19:53:25 +0900
Subject: [PATCH 99/99] chore: back up templates from main

---
 .github/ISSUE_TEMPLATE/bug_report.yml | 53 +++++++++++++++++++++++++++
 .github/ISSUE_TEMPLATE/config.yml     |  1 +
 .github/ISSUE_TEMPLATE/feature.yml    | 47 ++++++++++++++++++++++++
 .github/ISSUE_TEMPLATE/trouble.yml    | 46 +++++++++++++++++++++++
 4 files changed, 147 insertions(+)
 create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml
 create mode 100644 .github/ISSUE_TEMPLATE/config.yml
 create mode 100644 .github/ISSUE_TEMPLATE/feature.yml
 create mode 100644 .github/ISSUE_TEMPLATE/trouble.yml

diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000..0ad8d65
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,53 @@
+name: Bug report
+description: Submit bugs that affect functionality here
+title: "[BUG] Your title here"
+labels: ["bug"]
+assignees:
+  - aclist
+body:
+  - type: checkboxes
+    id: kb
+    attributes:
+      label: Did you check if this issue already exists?
+      options:
+        - label: I have checked the [Knowledge Base](https://aclist.github.io/dzgui/kb.html) and searched through [past issues](https://github.com/aclist/dztui/issues?q=is%3Aissue+is%3Aclosed) and did not find my issue there.
+          required: true
+  - type: dropdown
+    id: device
+    attributes:
+      label: Device type
+      options:
+        - Desktop PC
+        - Steam Deck
+      default: 0
+    validations:
+      required: true
+  - type: input
+    id: version
+    attributes:
+      label: DZGUI version
+    validations:
+      required: true
+      placeholder: "5.6.0"
+  - type: input
+    id: distro
+    attributes:
+      label: Linux distribution
+    validations:
+      required: true
+      placeholder: "Arch Linux"
+  - type: textarea
+    id: what-happened
+    attributes:
+      label: Describe the bug
+      description: What did you expect to happen?
+      placeholder: "E.g., When doing X, Y occurred. Include as much detail as possible."
+    validations:
+      required: true
+  - type: textarea
+    id: logs
+    attributes:
+      label: Additional log output
+      description: Attach the file `$HOME/.local/state/dzgui/DZGUI_DEBUG.log` by clicking this area to highlight it and then dragging the file in.
+    validations:
+      required: false
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000..3ba13e0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1 @@
+blank_issues_enabled: false
diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml
new file mode 100644
index 0000000..3b350f2
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature.yml
@@ -0,0 +1,47 @@
+name: Feature suggestion
+description: Submit requests for new features here
+title: "[FEAT] Your title here"
+labels: ["enhancement"]
+assignees:
+  - aclist
+body:
+  - type: dropdown
+    id: device
+    attributes:
+      label: Device type
+      options:
+        - Desktop PC
+        - Steam Deck
+      default: 0
+    validations:
+      required: true
+  - type: input
+    id: version
+    attributes:
+      label: DZGUI version
+    validations:
+      required: true
+      placeholder: "5.6.0"
+  - type: input
+    id: distro
+    attributes:
+      label: Linux distribution
+    validations:
+      required: true
+      placeholder: "Arch Linux"
+  - type: textarea
+    id: what-happened
+    attributes:
+      label: Describe the feature
+      description: A clear and detailed description
+      placeholder: "E.g., Add a dialog to the Options menu that automatically lets the user do Y"
+    validations:
+      required: true
+  - type: textarea
+    id: why
+    attributes:
+      label: Describe the benefit
+      description: How will this feature benefit large numbers of users?
+      placeholder: "E.g., Currently, users have to manually do X to achieve Y. Implementing this feature would achieve A, B, and C."
+    validations:
+      required: true
diff --git a/.github/ISSUE_TEMPLATE/trouble.yml b/.github/ISSUE_TEMPLATE/trouble.yml
new file mode 100644
index 0000000..1c25e69
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/trouble.yml
@@ -0,0 +1,46 @@
+name: Troubleshooting
+description: Submit user error/troubleshooting questions here
+title: "[HELP] Your title here"
+labels: ["troubleshooting"]
+assignees:
+  - aclist
+body:
+  - type: dropdown
+    id: device
+    attributes:
+      label: Device type
+      options:
+        - Desktop PC
+        - Steam Deck
+      default: 0
+    validations:
+      required: true
+  - type: input
+    id: version
+    attributes:
+      label: DZGUI version
+    validations:
+      required: true
+      placeholder: "5.6.0"
+  - type: input
+    id: distro
+    attributes:
+      label: Linux distribution
+    validations:
+      required: true
+      placeholder: "Arch Linux"
+  - type: textarea
+    id: what-happened
+    attributes:
+      label: Describe the issue
+      description: A detailed description. What did you expect to happen?
+      placeholder: "Include as much detail as possible and state the steps leading up to the problem. E.g., First I do this, then I do this, then this happens."
+    validations:
+      required: true
+  - type: textarea
+    id: logs
+    attributes:
+      label: Additional log output
+      description: Attach the file `$HOME/.local/state/dzgui/DZGUI_DEBUG.log` by clicking this area to highlight it and then dragging the file in.
+    validations:
+      required: false