Compare commits

...

4 Commits

Author SHA1 Message Date
aclist
71651bab6c chore: update reference branch
Some checks are pending
Mirror to Codeberg / mirror-to-codeberg (push) Waiting to run
2025-11-13 12:54:31 +09:00
aclist
1dba57af4b chore: update reference branch 2025-11-13 12:53:59 +09:00
aclist
dabf5d4ef0 fix: uncomment lines 2025-11-13 12:53:41 +09:00
aclist
75f8c841df feat: support sandboxed flatpak 2025-11-13 12:50:27 +09:00
4 changed files with 47 additions and 40 deletions

View File

@ -1,5 +1,15 @@
# Changelog # Changelog
## [6.0.1-beta.3] 2025-11-13
## Added
- Support sandboxed flatpak
## Changed
- Preferred client from radio toggle to combobox
## Fixed
- Config file erroneously getting updated when populating settings menu
## [6.0.1-beta.2] 2025-11-10 ## [6.0.1-beta.2] 2025-11-10
## Fixed ## Fixed
- Python 3.14 error in finally block - Python 3.14 error in finally block

View File

@ -3,7 +3,7 @@ set -o pipefail
src_path=$(realpath "$0") src_path=$(realpath "$0")
version=6.0.1.beta-2 version=6.0.1.beta-3
reference_branch="prerelease/6.0.1-beta.1" reference_branch="prerelease/6.0.1-beta.1"
#CONSTANTS #CONSTANTS
@ -468,18 +468,7 @@ steam_deps(){
local msg="Found neither Steam nor Flatpak Steam" local msg="Found neither Steam nor Flatpak Steam"
raise_error_and_quit "$msg" raise_error_and_quit "$msg"
exit 1 exit 1
elif [[ -n "$steam" ]] && [[ -n "$flatpak" ]]; then
[[ -n $preferred_client ]] && return 0
if [[ -z $preferred_client ]]; then
preferred_client="steam"
fi 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(){ migrate_files(){
if [[ ! -f $config_path/dztuirc.oldapi ]]; then if [[ ! -f $config_path/dztuirc.oldapi ]]; then
@ -616,10 +605,10 @@ fetch_helpers_by_sum(){
[[ -f "$config_file" ]] && source "$config_file" [[ -f "$config_file" ]] && source "$config_file"
declare -A sums declare -A sums
sums=( sums=(
["funcs"]="5d7d92b7b8a9c788b133ce5271a76553" ["funcs"]="c6e5d68e084be16aa58358fa51ec4586"
["query_v2.py"]="55d339ba02512ac69de288eb3be41067" ["query_v2.py"]="55d339ba02512ac69de288eb3be41067"
["servers.py"]="ed442c3aecf33f777d59dcf53650d263" ["servers.py"]="ed442c3aecf33f777d59dcf53650d263"
["ui.py"]="2476397883a4272eaf940403ba5a6575" ["ui.py"]="2276386252bd571b3505cbbc74359732"
["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397" ["vdf2json.py"]="2f49f6f5d3af919bebaab2e9c220f397"
["pefile.py"]="21531f2c0d9dfa5f110cf6779f9d22c0" ["pefile.py"]="21531f2c0d9dfa5f110cf6779f9d22c0"
) )
@ -900,6 +889,7 @@ create_config(){
unset default_steam_path unset default_steam_path
unset steam_path unset steam_path
preferred_client="steam"
while true; do while true; do
local player_input="$($steamsafe_zenity \ local player_input="$($steamsafe_zenity \
--forms \ --forms \

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -o pipefail set -o pipefail
version="6.0.1-beta.2" version="6.0.1-beta.3"
#CONSTANTS #CONSTANTS
aid=221100 aid=221100
@ -87,17 +87,14 @@ steam_api_url="https://steamcommunity.com/dev/apikey"
battlemetrics_api_url="https://www.battlemetrics.com/developers" battlemetrics_api_url="https://www.battlemetrics.com/developers"
bm_api="https://api.battlemetrics.com/servers" bm_api="https://api.battlemetrics.com/servers"
if [[ $preferred_client == "steam" ]]; then steam_cmd="$preferred_client"
steam_cmd="steam"
else
steam_cmd="flatpak run com.valvesoftware.Steam"
fi
declare -A funcs=( declare -A funcs=(
["Highlight stale"]="find_stale_mods" ["Highlight stale"]="find_stale_mods"
["Change player name"]="update_config_val" ["Change player name"]="update_config_val"
["Change Steam API key"]="update_config_val" ["Change Steam API key"]="update_config_val"
["Change Battlemetrics API key"]="update_config_val" ["Change Battlemetrics API key"]="update_config_val"
["Change client"]="update_config_val"
["Change favorite server"]="add_record" ["Change favorite server"]="add_record"
["Add server by IP"]="add_record" ["Add server by IP"]="add_record"
["Add server by ID"]="add_record" ["Add server by ID"]="add_record"
@ -701,13 +698,6 @@ toggle(){
debug="" debug=""
fi fi
;; ;;
Toggle[[:space:]]Steam/Flatpak)
if [[ $preferred_client == "steam" ]]; then
preferred_client="flatpak"
else
preferred_client="steam"
fi
;;
Toggle[[:space:]]DZGUI[[:space:]]fullscreen[[:space:]]boot) Toggle[[:space:]]DZGUI[[:space:]]fullscreen[[:space:]]boot)
if [[ $fullscreen == "true" ]]; then if [[ $fullscreen == "true" ]]; then
fullscreen="false" fullscreen="false"
@ -806,6 +796,9 @@ update_config_val(){
local context="$1" local context="$1"
local value="$2" local value="$2"
case $1 in case $1 in
"Change client")
key="preferred_client"
;;
"Change player name") "Change player name")
key="name" key="name"
if [[ -z "${value// }" ]]; then if [[ -z "${value// }" ]]; then
@ -831,7 +824,6 @@ update_config_val(){
declare -n nr=$key declare -n nr=$key
nr="$value" nr="$value"
update_config update_config
echo "Updated the key '$key' to '$value'"
return 80 return 80
} }
show_log(){ show_log(){

View File

@ -3801,12 +3801,22 @@ class Options(Gtk.Box):
"Always fullscreen", "Always fullscreen",
Preferences.WINDOW, Preferences.WINDOW,
) )
self.steam_toggle = self.make_binary_radio(
"Steam", "Flatpak (experimental)", Preferences.CLIENT # TODO: gray out options if not available on system
) client_store = Gtk.ListStore(str, str)
client_store.append(["steam", "steam"])
client_store.append(["flatpak", "flatpak run com.valvesoftware.Steam"])
client_store.append(["flatpak (container)", "flatpak-spawn --host flatpak run com.valvesoftware.Steam"])
renderer_text = Gtk.CellRendererText(ellipsize=Pango.EllipsizeMode.END)
self.client_combo = Gtk.ComboBox.new_with_model(client_store)
self.client_combo.set_halign(Gtk.Align.START)
self.client_combo.pack_start(renderer_text, True)
self.client_combo.connect("changed", self._on_client_changed)
self.client_combo.add_attribute(renderer_text, "text", 0)
pref_rows = [ pref_rows = [
[LeftLabel("Steam client"), self.steam_toggle], [LeftLabel("Steam client"), self.client_combo],
[LeftLabel("Window size at boot"), self.fullscreen_toggle], [LeftLabel("Window size at boot"), self.fullscreen_toggle],
[LeftLabel("Player name"), self.player_box], [LeftLabel("Player name"), self.player_box],
] ]
@ -3991,6 +4001,15 @@ class Options(Gtk.Box):
show_wait_dialog = True show_wait_dialog = True
call_on_thread(show_wait_dialog, cmd, wait_msg, "") call_on_thread(show_wait_dialog, cmd, wait_msg, "")
def _on_client_changed(self, combo: Gtk.ComboBox) -> None:
# prevent triggering on initial init
if App.treeview.subpage is not RowType.OPTIONS:
return
ind = combo.get_active()
mod = combo.get_model()
client = mod[ind][1]
call_bash_func("Change client", client)
def _on_branch_changed(self, combo: Gtk.ComboBoxText) -> None: def _on_branch_changed(self, combo: Gtk.ComboBoxText) -> None:
# prevent triggering on initial init # prevent triggering on initial init
if App.treeview.subpage is not RowType.OPTIONS: if App.treeview.subpage is not RowType.OPTIONS:
@ -4000,11 +4019,9 @@ class Options(Gtk.Box):
def _on_radio_toggled( def _on_radio_toggled(
self, button: Gtk.RadioButton, context: Preferences self, button: Gtk.RadioButton, context: Preferences
) -> None: ) -> None:
if App.treeview.subpage is None: if App.treeview.subpage is not RowType.OPTIONS:
return return
match context: match context:
case Preferences.CLIENT:
toggle = RowType.TGL_STEAM
case Preferences.INSTALL: case Preferences.INSTALL:
toggle = RowType.TGL_INSTALL toggle = RowType.TGL_INSTALL
state = button.get_group()[0].get_active() state = button.get_group()[0].get_active()
@ -4126,11 +4143,9 @@ class Options(Gtk.Box):
radio = 0 radio = 0
self.mod_install_toggle.get_children()[radio].set_active(True) self.mod_install_toggle.get_children()[radio].set_active(True)
if client == "flatpak": for ind, row in enumerate(self.client_combo.get_model()):
radio = 1 if row[1] == client:
else: self.client_combo.set_active(ind)
radio = 0
self.steam_toggle.get_children()[radio].set_active(True)
if fullscreen == "true": if fullscreen == "true":
radio = 1 radio = 1