Skip to content

lexandro/dosui

Repository files navigation

dosui

A lightweight, native Linux frontend for DOSBox — a game/profile launcher and configuration manager in the spirit of D-Fend Reloaded, but without the Java runtime and without the Windows baggage.

CI License: MIT Built with Rust GTK4

dosui — the profile library

Why dosui?

Existing launchers (e.g. DBGL and D-Fend Reloaded) are heavyweight: they need a Java runtime or are Windows-centric. dosui aims to be a fast-starting, low-dependency, natively integrated alternative for the Linux desktop. You manage one profile per game, tweak the important dosbox.conf settings from a GUI, and launch — no hand-editing INI files.

Features

  • Profile library with cover art, a sortable details list, and an icon view (D-Fend-style layout: category tree on the left, list on top, tabbed preview below — Screenshots / Notes / Data folder).
  • Tabbed profile editor (General / Mounts & Run / CPU / Memory / Graphics / Sound / Input / DOS / Advanced) covering the settings most games need — Sound Blaster, GUS, MIDI/SoundFont, shaders, XMS/EMS/UMB, joystick, and more — with a live dosbox.conf preview and an Advanced passthrough for anything else.
  • New-profile wizard — point at a folder, auto-scan for .exe/.bat/.com, fill in metadata.
  • Global defaults every profile inherits, plus per-profile overrides.
  • Built-in "DOS Console" profile: a bare DOSBox prompt with a ready C: drive, re-addable from the toolbar if you delete it.
  • Category sidebar (genre / developer / year / favourites) and find-as-you-type search.
  • Favourites, duplicate, delete, open-folder, and bulk metadata editing.
  • Import existing setups: dosbox.conf (D-Fend / DBGL) and zipped games (drag & drop supported).
  • Ships as a single AppImage that bundles dosbox-staging yet follows your host GTK theme.

Screenshots

Edit a profile's metadata and reach every DOSBox setting from one tabbed editor:

Profile editor — metadata and the settings tabs

Configure the sound hardware — Sound Blaster, Gravis UltraSound, MIDI/SoundFont, PC speaker / Tandy — without hand-editing dosbox.conf:

Profile editor — the Sound tab

Installation

AppImage (recommended)

Grab the latest dosui-x86_64.AppImage from the Releases page, then:

chmod +x dosui-x86_64.AppImage
./dosui-x86_64.AppImage

The AppImage bundles the GTK 4 runtime and dosbox-staging, so no system DOSBox is required. It still follows your desktop's GTK theme.

From source

You need a stable Rust toolchain (MSRV 1.80 — see rust-version in Cargo.toml; install via rustup) and the GTK 4 development libraries.

Install the build dependencies for your distro:

Distro Command
Debian / Ubuntu / Mint sudo apt install build-essential libgtk-4-dev librsvg2-common
Fedora sudo dnf install gcc gtk4-devel librsvg2
Arch / Manjaro sudo pacman -S --needed base-devel gtk4 librsvg
openSUSE sudo zypper install gcc gtk4-devel librsvg-2

Then build, run, and (optionally) install. A Makefile wraps the common tasks:

make            # build the release binary (target/release/dosui)
make run        # run from source
make check      # fmt + clippy + test (the same gate CI runs)
sudo make install            # install into /usr/local (binary, .desktop, icon, metainfo)
sudo make install PREFIX=/usr  # or pick a prefix; honours DESTDIR for packaging
sudo make uninstall          # remove it again

Prefer plain Cargo? cargo run --release works too. When running from source, dosui uses a dosbox-staging (or dosbox) found on your PATH; you can also point it at a specific binary in Settings.

Usage

  1. Add a game — toolbar ▸ New profile, or drag a zipped game onto the window, or Import an existing dosbox.conf.
  2. Tune itEdit opens the tabbed editor; the dosbox.conf preview updates live.
  3. Play — double-click the tile (or Run). dosui regenerates the profile's dosbox.conf and launches DOSBox.

Where your data lives

dosui follows the XDG base-directory spec:

Path Contents
~/.config/dosui/ settings + global defaults (TOML)
~/.local/share/dosui/ the profile library (the valuable content)

dosui's own files are TOML. The generated dosbox.conf is an output artifact — never a source of truth.

Command-line options

With no option dosui launches its GUI. It also accepts:

dosui --install      add applications-menu and desktop shortcuts (AppImage)
dosui --uninstall    remove those shortcuts
dosui --version      print the version
dosui --help         show this help

When run as an AppImage, dosui offers to add the shortcuts on first launch and exposes the same Add / Remove actions under Settings ▸ Application.

Packaging an AppImage

make appimage          # or: ./packaging/build-appimage.sh   -> dist/dosui-x86_64.AppImage

The script bundles dosbox-staging and the GTK runtime. It uses a local dosbox-staging build if one is under ~/.local/opt/dosbox-staging* (override with DOSBOX_STAGING_DIR), otherwise it downloads a pinned version (DOSBOX_STAGING_VERSION). The same script runs in the tag-driven Release workflow — see docs/RELEASING.md. The bundled dosbox-staging is GPL-2.0-or-later and ships as a separate program (mere aggregation); dosui's own code is MIT.

Contributing

Contributions are welcome — see CONTRIBUTING.md for the dev workflow, coding principles, and how the codebase is organised. A high-level map lives in docs/ARCHITECTURE.md. By participating you agree to the Code of Conduct.

Scope

  • Not a DOSBox replacement — dosui drives an existing dosbox-staging / dosbox / dosbox-x binary.
  • Linux-first. Windows/macOS are not targeted for now.

License

MIT © 2026 lexandro2000.

Acknowledgements

About

Lightweight native Linux frontend for DOSBox, D-Fend Reloaded style (Rust + GTK4)

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages