Something went wrong. Try again.
Steam Deck Doom modding setup automation for Doom Runner, UZDoom, Brutal Doom, and Project Brutality.
brutal-doom moddb python doom-runner linux-gaming project-brutality uzdoom doom steam-deck
Something went wrong. Try again.
2.7 kB · 72 lines
Python
at master
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273"""Generate UZDoom configuration profiles for Steam Deck controls."""from __future__ import annotations
import logging
from doomdeck.application.control_mapping import build_uzdoom_control_profilesfrom doomdeck.domain.control_mapping import SourcePortControlProfilefrom doomdeck.domain.deck import STEAM_DECK_HEIGHT, STEAM_DECK_TARGET_FPS, STEAM_DECK_WIDTHfrom doomdeck.domain.models import Dirsfrom doomdeck.infrastructure.files import atomic_write_text
UZDOOM_STEAM_DECK_GLOBAL_SETTINGS = [ ("vid_fullscreen", "true"), ("vid_defwidth", str(STEAM_DECK_WIDTH)), ("vid_defheight", str(STEAM_DECK_HEIGHT)), ("vid_aspect", "0"), ("vid_cropaspect", "false"), ("vid_vsync", "true"), ("vid_maxfps", str(STEAM_DECK_TARGET_FPS)), ("vid_preferbackend", "1"), ("vid_rendermode", "4"), ("vk_exclusivefullscreen", "false"), ("autoloadwidescreen", "true"), ("gl_fxaa", "0"), ("gl_multisample", "1"), ("gl_ssao", "0"), ("gl_light_shadowmap", "false"), ("gl_texture_filter", "0"), ("gl_texture_filter_anisotropic", "4"), ("vid_scale_linear", "false"), ("vid_scalefactor", "1"), ("vid_scalemode", "0"), ("m_blockcontrollers", "false"), ("use_joystick", "true"),]
def build_uzdoom_ini() -> str: lines = ["; Generated by doomdeck", "[GlobalSettings]"] lines.extend(f"{key}={value}" for key, value in UZDOOM_STEAM_DECK_GLOBAL_SETTINGS) lines.append("") return "\n".join(lines)
def build_uzdoom_deck_autoexec_settings() -> str: return "\n".join(f"{key} {value}" for key, value in UZDOOM_STEAM_DECK_GLOBAL_SETTINGS)
def build_uzdoom_autoexec(profile: SourcePortControlProfile) -> str: lines = [ "// Generated by doomdeck", f"// {profile.description}", "// Steam Deck display, graphics, keyboard/mouse Steam Input, and menu defaults.", "", build_uzdoom_deck_autoexec_settings(), "", ] lines.extend(f"{key} {value}" for key, value in profile.cvars) lines.append("") lines.extend(f"alias {alias.name} {alias.command}" for alias in profile.aliases) lines.append("") lines.extend(f"bind {binding.input_name} {binding.command}" for binding in profile.bindings) lines.append("") return "\n".join(lines)
def write_uzdoom_configs(dirs: Dirs, dry_run: bool, logger: logging.Logger) -> None: ini = build_uzdoom_ini() for profile in build_uzdoom_control_profiles(): profile_dir = dirs.uzdoom_config / profile.directory_name atomic_write_text(profile_dir / "autoexec.cfg", build_uzdoom_autoexec(profile), dry_run, logger) atomic_write_text(profile_dir / "uzdoom.ini", ini, dry_run, logger)