dreamer / luxtorpeda

Steam Play compatibility tool to run games using native Linux engines
https://luxtorpeda.gitlab.io/
GNU General Public License v2.0
383 stars 9 forks source link

Environment variable and output redirection handling. #87

Open cheako opened 1 year ago

cheako commented 1 year ago

Sorry if this is already implemented, I just heard of luxtorpeda and am happy to hear I'm not the only one.

Is your feature request related to a problem? Please describe. I'm playing with writing vulkan layers and am looking for a clear way to manage this task.

Describe the solution you'd like One screen where variables are selected and/or redirect, with autorotation, options are enabled. Another screen where a single variable can be configured, the default being "just text" but multiple choice, array(text/MC/bool) with default : delineation, as well as boolean would be useful.

Describe alternatives you've considered Currently, for No Man's Sky I'm doing...

~/.config/nms-vulkan.sh %command%

#!/bin/sh

export \
    RUST_BACKTRACE=1 \
    RENDERDOC_TEMP="$HOME" \
    VK_APIDUMP_LOG_FILENAME="$HOME/nms.vk.log" \
    VK_LAYER_MESA_OVERLAY_CONFIG="scale=4" \
    _RADV_PERFTEST="rt,sam" \
    _VK_INSTANCE_LAYERS="VK_LAYER_RENDERDOC_Capture" \
    _VK_INSTANCE_LAYERS="VK_LAYER_MESA_overlay" \
    _VK_INSTANCE_LAYERS="VK_LAYER_LUNARG_api_dump" \
    _VK_INSTANCE_LAYERS="VK_LAYER_LUNARG_api_dump:VK_LAYER_MESA_overlay" \
    _VK_INSTANCE_LAYERS="VK_LAYER_LUNARG_api_dump:VK_LAYER_MESA_overlay" \
    _WINEDEBUG="fps" \
    _DXVK_HUD=1 \
    _LD_DEBUG=libs \
    _ENABLE_VK_LAYER_VALVE_cheako_record_1=1 \
    _ENABLE_VK_LAYER_VALVE_cheako_lookup_tables_1=1 \
    CHEAKO_TARGET_FPS=y \
    ENABLE_VK_LAYER_VALVE_cheako_cache_1=1 \
    # CHEAKO_V=1 CHEAKO_I=1 CHEAKO_M=1 CHEAKO_S=1 \
    # CHEAKO_F=1 CHEAKO_P=1 CHEAKO_B=1 CHEAKO_A=1 \

false && {
    ## I don't know if this ever worked.
    MESA="/home/cheako/mesa"
    export MESA \
    LD_LIBRARY_PATH="${MESA}/lib64:${MESA}/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" \
    _LD_DEBUG=libs \
    LIBGL_DRIVERS_PATH="${MESA}/lib64/dri:${MESA}/lib/dri" \
    VK_ICD_FILENAMES="${MESA}/share/vulkan/icd.d/radeon_icd.x86_64.json:${MESA}/share/vulkan/icd.d/radeon_icd.x86.json" \
    D3D_MODULE_PATH="${MESA}/lib64/d3d/d3dadapter9.so.1:${MESA}/lib/d3d/d3dadapter9.so.1" \

}

## A selection of redirections.
#exec 1>/dev/null 2>&1
exec 1>/dev/null 2>~/nms_stderr.log
#exec 1>~/nms_stdout.log 2>~/nms_stderr.log
exec "$@"

As you could gleen I'm needing to manage variables, enabling and disabling them and having multiple choice settings for some.

JoshuaFern commented 1 year ago

Check out https://github.com/luxtorpeda-dev/luxtorpeda instead.

cheako commented 1 year ago

There is no reaction for confused/thinking, so I'll type this.