: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 <> 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 < 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: ``` /