{"id":19386781,"url":"https://github.com/murkl/d2launcher","last_synced_at":"2025-10-18T18:49:36.334Z","repository":{"id":47281870,"uuid":"224842668","full_name":"murkl/d2launcher","owner":"murkl","description":"Diablo II • Median XL • Mod Launcher for Linux","archived":false,"fork":false,"pushed_at":"2025-01-29T13:56:55.000Z","size":15884,"stargazers_count":44,"open_issues_count":5,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-16T00:51:55.194Z","etag":null,"topics":["appimage","arch","bash","diablo-ii","diablo2","elementaryos","games","gtk","gui","lightweight","linux","median-xl","minimalist","modification","script","shell","standalone","ubuntu","wine","zenity"],"latest_commit_sha":null,"homepage":"https://github.com/murkl/d2launcher/releases/latest","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/murkl.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-11-29T11:38:29.000Z","updated_at":"2025-06-18T17:26:31.000Z","dependencies_parsed_at":"2024-02-13T10:27:26.846Z","dependency_job_id":"cdebdb9e-d544-4f9e-8e62-a0e98074699d","html_url":"https://github.com/murkl/d2launcher","commit_stats":null,"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"purl":"pkg:github/murkl/d2launcher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/murkl%2Fd2launcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/murkl%2Fd2launcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/murkl%2Fd2launcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/murkl%2Fd2launcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/murkl","download_url":"https://codeload.github.com/murkl/d2launcher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/murkl%2Fd2launcher/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267677390,"owners_count":24126315,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appimage","arch","bash","diablo-ii","diablo2","elementaryos","games","gtk","gui","lightweight","linux","median-xl","minimalist","modification","script","shell","standalone","ubuntu","wine","zenity"],"created_at":"2024-11-10T10:07:27.632Z","updated_at":"2025-10-18T18:49:36.281Z","avatar_url":"https://github.com/murkl.png","language":"Shell","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cdiv\u003e\u003ch1\u003eDiablo II • Median XL • Launcher\u003c/h1\u003e\u003c/div\u003e\n  \u003cdiv\u003e\u003cimg width=\"80\" src=\"./../res/icon.svg\" /\u003e\u003c/div\u003e\n  \u003cdiv\u003e\u003ca href=\"https://github.com/murkl/d2launcher/releases/latest\"\u003e\u003cb\u003eDownload\u003c/b\u003e\u003c/a\u003e\u003c/div\u003e\n  \u003cdiv\u003e\u003cimg src=\"./screenshot.png\" /\u003e\u003c/div\u003e\n  \u003cdiv\u003e\u003cp\u003e\u003cimg src=\"https://img.shields.io/badge/MAINTAINED-YES-green?style=for-the-badge\" /\u003e\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n# Features\n\n- Simple Backup \u0026 Restore (Savegames \u0026 Diablo II Installation)\n- User Tweaks (Auto Install Scripts for Plugins etc.)\n- Custom Proton (64 Bit) build will download by script\n- Download latest Median XL patch (incl. notification on new updates)\n- Median XL Version Management\n- Import/Export of savegames\n- [D2 Stats](https://github.com/Zahariel1942/D2Stats/) included (will download by script)\n- [Sven's Glide wrapper](http://www.svenswrapper.de) included\n- Direct Draw [cnc-ddraw](https://github.com/FunkyFr3sh/cnc-ddraw) supported\n- Diablo II 1.13c files to work with Median XL included\n- Updater (incl. notification on new updates)\n- Supports the execution of EXE files within the wine prefix\n- Configurable (see [Documentation](#documentation))\n- Shellcheck approved\n- 100% GUI\n\n# Installation\n\nYou need the Diablo II installation files for the script to work! (You will be asked for the location in the script)\n\n## Arch Linux\n\n- Install from AUR\n  - [aur/d2launcher](https://aur.archlinux.org/packages/d2launcher)\n\n## Debian/Ubuntu/elementaryOS\n\n- Download \u0026 Extract: \u003ca href=\"https://github.com/murkl/d2launcher/releases/latest\"\u003e\u003cb\u003ed2launcher.tar.gz\u003c/b\u003e\u003c/a\u003e\n- Install Dependencies\n  - `sudo apt install wine zenity curl unzip jq wmctrl fuse2 xdelta3`\n  - Some distros label fuse2 as libfuse2, if you receive an error about fuse2 not being found, try libfuse2\n- Run\n  - `./d2launcher`\n\n## Pop_OS!\n\n- Download \u0026 Extract: \u003ca href=\"https://github.com/murkl/d2launcher/releases/latest\"\u003e\u003cb\u003ed2launcher.tar.gz\u003c/b\u003e\u003c/a\u003e\n- Install Dependencies\n  - `sudo apt install wine zenity curl unzip jq wmctrl fuse2 ruby-notify xdelta3`\n  - Some distros label fuse2 as libfuse2, if you receive an error about fuse2 not being found, try libfuse2\n- Run\n  - `./d2launcher`\n\n# Documentation\n\nYou can override the script properties in the configuration settings (`Settings` \u003e `Edit Configuration`). These settings can be edited manually in `~/.d2launcher/d2launcher.conf`.\n\n\u003csub\u003e\u003cb\u003eExample `d2launcher.conf`:\u003c/b\u003e\u003c/sub\u003e\n\n```\nd2_exe=\"Diablo II.exe\"\nd2_args=\"-ddraw\"\nwine_init=\"gamemoderun\"\nd2_stats_tray=\"true\"\nupdate_check=\"true\"\nmxl_update_check=\"true\"\nmxl_update_channel=\"public\"\nmxl_update_exclude=(\"d2gl.mpq\" \"glide3x.dll\" \"ddraw.dll\" \"cnc-ddraw config.exe\")\ngui_width=\"420\"\ngui_height=\"320\"\ntweaks_upstream=\"https://my/custom/url/to/tweaks.db\"\n```\n\n## Backup \u0026 Restore\n\nAll files are located here: `~/.d2launcher`. Simply copy \u0026 paste to another system. The Diablo II binary files are stored here `~/.d2launcher/bin/diablo2`.\n\n## Logging\n\nThe logging file is `~/.d2launcher/d2launcher.log` and **is** rotated on every start of d2launcher. This contains only logs from execution of Diablo II.\n\n## Menu Custom command\n\nReplace \"Diablo II\" menu command with `custom_command=\"/my/custom/cmd\"` (e.g. to start via Lutris or custom script instead).\n\n## Exclude files from update patch\n\nAdd this array property to exclude files from update\n`mxl_update_exclude=(\"file1\" \"file2\")`\n\nBest when using tweaks:\n\n```\nmxl_update_exclude=(\"d2gl.mpq\" \"glide3x.dll\" \"ddraw.dll\" \"cnc-ddraw config.exe\")\n```\n\n## Median XL Beta\n\nChange the property `mxl_update_channel` from `public` to `beta`.\n\n## Change Download URL's\n\n```\nwine_native_url=\"https://github.com/Kron4ek/Wine-Builds/releases/download/6.3-7-proton/wine-6.3-7-proton-amd64.tar.xz\"\nd2_stats_url=\"https://github.com/Zahariel1942/D2Stats/releases/latest/download/D2Stats.zip\"\nd2_sigma_loader_url=\"https://github.com/SyndromeDayna/diablo-2-median-xl-sigma-loader/releases/download/3/sigma-loader.exe\"\ntweaks_upstream=\"https://raw.githubusercontent.com/murkl/d2launcher/refs/heads/main/res/tweaks.db\"\n```\n\n**Note:** If you change the URLs, you have to force the regarding update/install: `Update Manger` \u003e `Force Proton Update`/`Force D2Stats Update`\n\n## Custom Wine Version\n\nIf you use Wine you have to set `wine_user=\"$USER\"` otherwise for Proton set to `wine_user=\"steamuser\"`\n\n```\nwine_default=\"/path/to/your/custom/wine\"\nwineprefix=\"$HOME/my/custom/wine_prefix\"\nwine_user=\"steamuser\"\n```\n\n## Theming\n\n```\ngui_width=\"360\"\ngui_height=\"280\"\ngui_font=\"UbuntuMono Nerd Font\"\ngui_color=\"#eeeeee\"\ngui_size=\"9\"\ngui_dialog_width=\"280\"\ngui_dialog_height=\"140\"\ngui_dialog_font=\"UbuntuMono Nerd Font\"\ngui_dialog_color=\"#aaaaaa\"\ngui_dialog_size=\"9\"\n```\n\n## Using D2Stats\n\nIt's nessesary to start D2Stats (Statistics) in d2launcher first, before starting Diablo II. Because d2launcher will check every start of Diablo II (using pgrep) if D2Stats is running. In this case, d2launcher starts Diablo II automatically with [sigma-loader](https://github.com/SyndromeDayna/diablo-2-median-xl-sigma-loader).\n\n## Using cnc-ddraw\n\nThanks to [@GnomeBeans](https://github.com/murkl/d2launcher/issues/8#issuecomment-1553762919)\n\n1. Download latest [cnc-ddraw.zip](https://github.com/FunkyFr3sh/cnc-ddraw/releases)\n2. Unzip the downloaded `cnc-ddraw.zip` and drop the content into `~/.d2launcher/bin/diablo2` install dir.\n3. Goto `Settings` \u003e `Wine Settings` \u003e `Library` and override/add `ddraw` (set DLL load strategy to: `native then built in`).\n4. Change `d2_args` property in `Settings` \u003e `Edit Configuration` from `-3dfx` to `-ddraw`\n5. Optimize prefered settings: `Settings` \u003e `Direct Draw Settings` (optional)\n6. Run `Diablo II`\n\n## Using Game Mode / Hybrid Graphics\n\nInstall the `gamemode` package in your system and add this property in `Settings` \u003e `Edit Configuration`:\n\n```\nwine_init=\"gamemoderun\"\n```\n\nWhen using **Hybrid Graphics**, you can add for NVIDIA:\n\n```\nwine_init=\"prime-run gamemoderun\"\n```\n\n## Diablo II arguments\n\nGoto `Settings` \u003e `Edit Configuration` and modify `d2_args` property:\n\n```\nEnable Glide wrapper       | -3dfx\nEnable Direct Draw         | -ddraw\nWindow mode                | -w\nSkip to Median XL Login    | -skiptobnet\nNo sound                   | -ns\n```\n\n**Note:** Add multiple arguments with `-ddraw -skiptobnet ...`\n\n## User Tweaks\n\nOpen `Tweaks` in the main menu and select the desired tweak script that you want to install. This is intended for your own install scripts such as d2gl or cnc-ddraw.\n\n### Update Tweaks Database\n\nTo update this shown tweak list, goto `Update Manager` \u003e `Update Tweaks Database`. The file set in the `tweaks_upstream` property will be downloaded to `~/.d2launcher/tweaks.db` (or copied if `tweaks_upstream` is set to a local file).\n\n### Tweaks Database Syntax\n\nSeparated by the two header lines `###!\u003e tweak_name: ...` and `###!\u003e tweak_version ...` (please keep this order), all tweak scripts are saved in one file.\n\nThe working directory is a generated temporary directory and is deleted after termination. You have access to the variables from `d2launcher.conf` within the tweaks script.\n\n**Note:** The Diablo II installation dir is: `~/.d2launcher/bin/diablo2` (use this dir to copy d2-gl files for example)\n\n\u003csub\u003e\u003cb\u003eExample `tweaks.db`:\u003c/b\u003e\u003c/sub\u003e\n\n- Create a new `~/tweaks.db`\n- Set `tweaks_upstream=\"~/tweaks.db\"`\n\n**Note:** The `tweaks.db` file can be saved in any location. It must then be adapted accordingly in the `tweaks_upstream`.\n\n```\n###!\u003e tweak_name: my_first_tweak_script\n###!\u003e tweak_version: 1.0.0\necho \"You can use bash code to pimp your Diablo II here...\"\n\n###!\u003e tweak_name: my_second_tweak_script\n###!\u003e tweak_version: latest\necho \"Do another plugin stuff...\"\n```\n\n**Note: Root access is not supported!**\n\n### Share your own Tweaks Database\n\nYou need to share your URL to your `tweaks.db` and set as `tweaks_upstream` in settings. Remember to update the tweaks database to create new local `~/.d2launcher/tweaks.db` from `tweaks_upstream`.\n\n**Note:** Feel free to open a PR and merge your tweaks into d2launcher as a PR.\n\n## Glide Wrapper Settings (deprecated)\n\nChange in `Settings` \u003e `Glide Wrapper Settings` (optional)\n\n### Settings\n\n```\n☐          window mode\n☑          capture mouse\n☐          keep aspect ratio\n☐          vertical synchronization (VSYNC)\nno         fps-limit\nno         static size\n☐          window extras\nauto       refreshrate\n☑          desktopresolution\n```\n\n### Renderer\n\n```\n32 MB       texture-memory\n1024x1024   buffer-texture-size\n☑           32 bit rendering\n☑           texture for videos\n☑           bilinear filtering\n☑           supersampling\n☑           shader-gamma\n☐           no gamma\n☑           keep desktop composition\n```\n\n### Extensions\n\n```\n☑           GL_EXT_vertex_array\n☑           GL_ATI_fragment_shader\n☑           GL_ARB_fragment_program\n☑           GL_EXT_paletted_texture\n☑           GL_EXT_shared_texture_palette\n☑           GL_EXT_packed_pixels\n☑           GL_EXT_texture_env_combine\n☑           WGL_EXT_swap_control\n☑           WGL_ARB_render_texture\n```\n\n# External Sources\n\nMany thanks to these projects:\n\n- https://median-xl.com\n- https://github.com/Kron4ek/Wine-Builds/\n- https://github.com/Kyromyr/D2Stats\n- https://github.com/Zahariel1942/D2Stats/\n- https://github.com/azadix/D2Stats\n- https://github.com/SyndromeDayna/diablo-2-median-xl-sigma-loader\n- https://github.com/synthagency/icons-flat-osx\n- http://www.svenswrapper.de\n- https://github.com/FunkyFr3sh/cnc-ddraw\n- https://github.com/GavinK88/d2gl-mxl-1.0\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmurkl%2Fd2launcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmurkl%2Fd2launcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmurkl%2Fd2launcher/lists"}