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.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970from __future__ import annotations
from doomdeck.application.control_mapping import build_default_control_scheme, build_uzdoom_control_profilefrom doomdeck.domain.control_mapping import ControlAction, ControlProfile, PhysicalInput
def test_default_control_scheme_uses_keyboard_mouse_layout_without_gyro() -> None: scheme = build_default_control_scheme() outputs = [binding.output.steam_input_binding() for binding in scheme.bindings]
assert not scheme.gyro_enabled assert {"W", "A", "S", "D"} <= { binding.output.value for binding in scheme.bindings if binding.physical_input == PhysicalInput.LEFT_STICK and binding.action == ControlAction.MOVE } assert any("mouse_button LEFT" in output for output in outputs) assert any("mouse_button RIGHT" in output for output in outputs) assert any("mouse_wheel SCROLL_UP" in output for output in outputs) assert any("mouse_wheel SCROLL_DOWN" in output for output in outputs) assert scheme.sensitivity.right_trackpad == 50 assert scheme.sensitivity.right_stick == 35
def test_back_grips_are_mapped_with_safe_quickload_long_press() -> None: scheme = build_default_control_scheme()
grip_actions = {binding.physical_input: binding for binding in scheme.bindings if binding.physical_input in {PhysicalInput.L4, PhysicalInput.R4, PhysicalInput.L5, PhysicalInput.R5}}
assert grip_actions[PhysicalInput.L4].action == ControlAction.JUMP assert grip_actions[PhysicalInput.R4].action == ControlAction.CROUCH assert grip_actions[PhysicalInput.L5].action == ControlAction.QUICK_SAVE assert grip_actions[PhysicalInput.R5].action == ControlAction.QUICK_LOAD assert grip_actions[PhysicalInput.R5].activation == "Long_Press" assert grip_actions[PhysicalInput.R5].long_press_ms == 1500
def test_left_trackpad_radial_maps_weapon_slots_and_mod_utilities() -> None: scheme = build_default_control_scheme() radial_bindings = scheme.bindings_for(PhysicalInput.LEFT_TRACKPAD)
assert any(binding.action == ControlAction.DIRECT_WEAPON and binding.output.value == "1-9,0" for binding in radial_bindings) assert {binding.output.value for binding in radial_bindings if binding.layer == "radial"} >= {"Q", "F", "G", "U", "LEFT_ALT", "L"}
def test_profile_variants_preserve_mod_specific_keys() -> None: modern = build_uzdoom_control_profile(ControlProfile.MODERN) brutal = build_uzdoom_control_profile(ControlProfile.BRUTAL_DOOM) project_brutality = build_uzdoom_control_profile(ControlProfile.PROJECT_BRUTALITY)
modern_bindings = {(binding.input_name, binding.command) for binding in modern.bindings} brutal_keys = {binding.input_name for binding in brutal.bindings} project_brutality_keys = {binding.input_name for binding in project_brutality.bindings}
assert ("q", "weapprev") in modern_bindings assert ("capslock", '"toggle cl_run"') in modern_bindings assert ("tab", "togglemap") in modern_bindings assert ("0", "slot 0") in modern_bindings assert "q" not in brutal_keys assert not {"q", "f", "g", "u", "leftalt", "l"} & project_brutality_keys
def test_scheme_documents_three_alternatives_and_evidence() -> None: scheme = build_default_control_scheme()
assert len(scheme.alternatives) == 3 assert any("GZDoom" in source for source in scheme.evidence) assert any("Brutal Doom" in source for source in scheme.evidence) assert "no gyro" in scheme.description.lower()