forked from Boria138/PortProtonQt
Compare commits
8 Commits
theme_fixe
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
147086d289
|
|||
|
d085eca057
|
|||
|
dae21b3daf
|
|||
|
|
b1e94b16b0
|
||
|
|
a74c43b972
|
||
|
|
15938ba376
|
||
|
|
128c4fde19 | ||
|
dde43f69d1
|
@@ -94,7 +94,7 @@ jobs:
|
||||
name: Build Arch Package
|
||||
runs-on: ubuntu-22.04
|
||||
container:
|
||||
image: archlinux:base-devel@sha256:87a967f07ba6319fc35c8c4e6ce6acdb4343b57aa817398a5d2db57bd8edc731
|
||||
image: archlinux:base-devel@sha256:943bdad9e9d0d23503f24797b44ce2cc1531bf101e18b3e7fb8c8776190dc45e
|
||||
volumes:
|
||||
- /usr:/usr-host
|
||||
- /opt:/opt-host
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
uses: https://gitea.com/actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
|
||||
|
||||
- name: Set up Python
|
||||
uses: https://gitea.com/actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
||||
uses: https://gitea.com/actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
|
||||
with:
|
||||
python-version-file: "pyproject.toml"
|
||||
|
||||
|
||||
@@ -138,7 +138,7 @@ jobs:
|
||||
needs: changes
|
||||
if: needs.changes.outputs.arch == 'true' || github.event_name == 'workflow_dispatch'
|
||||
container:
|
||||
image: archlinux:base-devel@sha256:87a967f07ba6319fc35c8c4e6ce6acdb4343b57aa817398a5d2db57bd8edc731
|
||||
image: archlinux:base-devel@sha256:943bdad9e9d0d23503f24797b44ce2cc1531bf101e18b3e7fb8c8776190dc45e
|
||||
volumes:
|
||||
- /usr:/usr-host
|
||||
- /opt:/opt-host
|
||||
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
- uses: https://gitea.com/actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: https://gitea.com/actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
|
||||
uses: https://gitea.com/actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
uses: https://gitea.com/actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
|
||||
|
||||
- name: Set up Python
|
||||
uses: https://gitea.com/actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
||||
uses: https://gitea.com/actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
|
||||
with:
|
||||
python-version-file: "pyproject.toml"
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
- uses: https://gitea.com/actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: https://gitea.com/actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
|
||||
uses: https://gitea.com/actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@ Current translation status:
|
||||
|
||||
| Locale | Progress | Translated |
|
||||
| :----- | -------: | ---------: |
|
||||
| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 of 249 |
|
||||
| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 of 249 |
|
||||
| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 249 of 249 |
|
||||
| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 of 323 |
|
||||
| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 of 323 |
|
||||
| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 323 of 323 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
|
||||
| Локаль | Прогресс | Переведено |
|
||||
| :----- | -------: | ---------: |
|
||||
| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 из 249 |
|
||||
| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 из 249 |
|
||||
| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 249 из 249 |
|
||||
| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 из 323 |
|
||||
| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 из 323 |
|
||||
| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 323 из 323 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ from portprotonqt.custom_widgets import AutoSizeButton
|
||||
from portprotonqt.downloader import Downloader
|
||||
from portprotonqt.virtual_keyboard import VirtualKeyboard
|
||||
from portprotonqt.preloader import Preloader
|
||||
from portprotonqt.settings_manager import get_toggle_settings, get_advanced_settings, ADVANCED_SETTING_KEYS
|
||||
import psutil
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -1706,7 +1707,9 @@ class ExeSettingsDialog(QDialog):
|
||||
self.resize(900, 600)
|
||||
self.setStyleSheet(self.theme.MAIN_WINDOW_STYLE + self.theme.MESSAGE_BOX_STYLE)
|
||||
|
||||
self.init_toggle_settings()
|
||||
# Load toggle settings from config module
|
||||
self.toggle_settings = get_toggle_settings()
|
||||
|
||||
self.setup_ui()
|
||||
|
||||
# Find input_manager and main_window
|
||||
@@ -1731,50 +1734,6 @@ class ExeSettingsDialog(QDialog):
|
||||
else:
|
||||
return self.start_sh + subcommand_args
|
||||
|
||||
def init_toggle_settings(self):
|
||||
"""Initialize predefined toggle settings with descriptions."""
|
||||
self.toggle_settings = {
|
||||
'PW_MANGOHUD': _("Using FPS and system load monitoring (Turns on and off by the key combination - right Shift + F12)"),
|
||||
'PW_MANGOHUD_USER_CONF': _("Forced use of MANGOHUD system settings (GOverlay, etc.)"),
|
||||
'PW_VKBASALT': _("Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)"),
|
||||
'PW_VKBASALT_USER_CONF': _("Forced use of VKBASALT system settings (GOverlay, etc.)"),
|
||||
'PW_DGVOODOO2': _("Enable dgVoodoo2. Forced use all dgVoodoo2 libs (Glide 2.11-3.1, DirectDraw 1-7, Direct3D 2-9) on all 3D API."),
|
||||
'PW_GAMESCOPE': _("Super + F : Toggle fullscreen\nSuper + N : Toggle nearest neighbour filtering\nSuper + U : Toggle FSR upscaling\nSuper + Y : Toggle NIS upscaling\nSuper + I : Increase FSR sharpness by 1\nSuper + O : Decrease FSR sharpness by 1\nSuper + S : Take screenshot (currently goes to /tmp/gamescope_DATE.png)\nSuper + G : Toggle keyboard grab\nSuper + C : Update clipboard"),
|
||||
'PW_USE_ESYNC': _("Enable in-process synchronization primitives based on eventfd."),
|
||||
'PW_USE_FSYNC': _("Enable futex-based in-process synchronization primitives."),
|
||||
'PW_USE_NTSYNC': _("Enable in-process synchronization via the Linux ntsync driver."),
|
||||
'PW_USE_RAY_TRACING': _("Enable vkd3d support - Ray Tracing"),
|
||||
'PW_USE_NVAPI_AND_DLSS': _("Enable DLSS on supported NVIDIA graphics cards"),
|
||||
'PW_USE_OPTISCALER': _("Enable OptiScaler (replacement upscaler / frame generator)"),
|
||||
'PW_USE_LS_FRAME_GEN': _("Enable Lossless Scaling frame generation (experimental)"),
|
||||
'PW_WINE_FULLSCREEN_FSR': _("FSR upscaling in fullscreen with ProtonGE below native resolution"),
|
||||
'PW_HIDE_NVIDIA_GPU': _("Disguise all NVIDIA GPU features"),
|
||||
'PW_VIRTUAL_DESKTOP': _("Run the application in WINE virtual desktop"),
|
||||
'PW_USE_TERMINAL': _("Run the application in a terminal"),
|
||||
'PW_GUI_DISABLED_CS': _("Disable startup mode and WINE version selector window"),
|
||||
'PW_USE_GAMEMODE': _("Use system GameMode for performance optimization"),
|
||||
'PW_USE_D3D_EXTRAS': _("Enable forced use of third-party DirectX libraries"),
|
||||
'PW_FIX_VIDEO_IN_GAME': _("Fix pink-tinted video playback in some games"),
|
||||
'PW_REDUCE_PULSE_LATENCY': _("Reduce PulseAudio latency to fix intermittent sound"),
|
||||
'PW_USE_US_LAYOUT': _("Force US keyboard layout"),
|
||||
'PW_USE_GSTREAMER': _("Use GStreamer for in-game clips (WMF support)"),
|
||||
'PW_USE_SHADER_CACHE': _("Use WINE shader caching"),
|
||||
'PW_USE_WINE_DXGI': _("Force use of built-in DXGI library"),
|
||||
'PW_USE_EAC_AND_BE': _("Enable Easy Anti-Cheat and BattlEye runtimes"),
|
||||
'PW_USE_SYSTEM_VK_LAYERS': _("Use system Vulkan layers (MangoHud, vkBasalt, OBS, etc.)"),
|
||||
'PW_USE_OBS_VKCAPTURE': _("Enable OBS Studio capture via obs-vkcapture"),
|
||||
'PW_DISABLE_COMPOSITING': _("Disable desktop compositing for performance"),
|
||||
'PW_USE_RUNTIME': _("Use container launch mode (recommended default)"),
|
||||
'PW_DINPUT_PROTOCOL': _("Force DirectInput protocol instead of XInput"),
|
||||
'PW_USE_NATIVE_WAYLAND': _("Enable experimental native Wayland support"),
|
||||
'PW_USE_DXVK_HDR': _("Enable HDR settings under native Wayland"),
|
||||
'PW_USE_GALLIUM_ZINK': _("Use Gallium Zink (OpenGL via Vulkan)"),
|
||||
'PW_USE_GALLIUM_NINE': _("Use Gallium Nine (native DirectX 9 for Mesa)"),
|
||||
'PW_USE_WINED3D_VULKAN': _("Use WineD3D Vulkan backend (Damavand)"),
|
||||
'PW_USE_SUPPLIED_DXVK_VKD3D': _("Use bundled dxvk/vkd3d from Wine/Proton"),
|
||||
'PW_USE_SAREK_ASYNC': _("Use async dxvk-sarek (experimental)")
|
||||
}
|
||||
|
||||
def setup_ui(self):
|
||||
"""Set up the user interface."""
|
||||
self.main_layout = QVBoxLayout(self)
|
||||
@@ -1783,7 +1742,6 @@ class ExeSettingsDialog(QDialog):
|
||||
|
||||
# Tab widget
|
||||
self.tab_widget = QTabWidget()
|
||||
self.tab_widget.setStyleSheet(self.theme.WINETRICKS_TAB_STYLE)
|
||||
self.main_tab = QWidget()
|
||||
self.main_tab_layout = QVBoxLayout(self.main_tab)
|
||||
self.advanced_tab = QWidget()
|
||||
@@ -1792,7 +1750,7 @@ class ExeSettingsDialog(QDialog):
|
||||
self.tab_widget.addTab(self.main_tab, _("Main"))
|
||||
self.tab_widget.addTab(self.advanced_tab, _("Advanced"))
|
||||
|
||||
# Таблица настроек
|
||||
# Main settings table
|
||||
self.settings_table = QTableWidget()
|
||||
self.settings_table.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
|
||||
self.settings_table.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
|
||||
@@ -1809,7 +1767,7 @@ class ExeSettingsDialog(QDialog):
|
||||
self.settings_table.setStyleSheet(self.theme.WINETRICKS_TABBLE_STYLE)
|
||||
self.main_tab_layout.addWidget(self.settings_table)
|
||||
|
||||
# Таблица Advanced
|
||||
# Advanced settings table
|
||||
self.advanced_table = QTableWidget()
|
||||
self.advanced_table.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
|
||||
self.advanced_table.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
|
||||
@@ -1828,7 +1786,7 @@ class ExeSettingsDialog(QDialog):
|
||||
|
||||
self.main_layout.addWidget(self.tab_widget)
|
||||
|
||||
# Кнопки
|
||||
# Buttons
|
||||
button_layout = QHBoxLayout()
|
||||
self.apply_button = AutoSizeButton(_("Apply"), icon=ThemeManager().get_icon("apply"))
|
||||
self.cancel_button = AutoSizeButton(_("Cancel"), icon=ThemeManager().get_icon("cancel"))
|
||||
@@ -1841,14 +1799,12 @@ class ExeSettingsDialog(QDialog):
|
||||
self.apply_button.clicked.connect(self.apply_changes)
|
||||
self.cancel_button.clicked.connect(self.reject)
|
||||
|
||||
|
||||
def load_current_settings(self):
|
||||
"""Load available toggles first, then current settings."""
|
||||
process = QProcess(self)
|
||||
process.finished.connect(self.on_list_db_finished)
|
||||
process.start(self.start_sh[0], ["cli", "--list-db"])
|
||||
|
||||
|
||||
def on_list_db_finished(self, exit_code, exit_status):
|
||||
"""Handle --list-db output and extract available keys and system info."""
|
||||
process = cast(QProcess, self.sender())
|
||||
@@ -1888,10 +1844,10 @@ class ExeSettingsDialog(QDialog):
|
||||
if len(parts) > 1 and 'blocked' in parts[1]:
|
||||
self.blocked_keys.add(key)
|
||||
|
||||
# Показываем только пересечение
|
||||
# Show only intersection
|
||||
self.available_keys &= set(self.toggle_settings.keys())
|
||||
|
||||
# Загружаем текущие настройки
|
||||
# Load current settings
|
||||
process = QProcess(self)
|
||||
process.finished.connect(self.on_show_ppdb_finished)
|
||||
process.start(self.start_sh[0], ["cli", "--show-ppdb", f"{self.exe_path}.ppdb"])
|
||||
@@ -1903,11 +1859,7 @@ class ExeSettingsDialog(QDialog):
|
||||
# Fallback to defaults if load fails
|
||||
for key in self.toggle_settings:
|
||||
self.current_settings[key] = '0'
|
||||
for adv_key in ['PW_WINDOWS_VER', 'WINEDLLOVERRIDES', 'LAUNCH_PARAMETERS',
|
||||
'PW_WINE_CPU_TOPOLOGY', 'PW_MESA_GL_VERSION_OVERRIDE',
|
||||
'PW_VKD3D_FEATURE_LEVEL', 'PW_LOCALE_SELECT',
|
||||
'PW_MESA_VK_WSI_PRESENT_MODE', 'PW_AMD_VULKAN_USE',
|
||||
'PW_CPU_NUMA_NODE_INDEX']:
|
||||
for adv_key in ADVANCED_SETTING_KEYS:
|
||||
self.current_settings[adv_key] = 'disabled' if 'TOPOLOGY' in adv_key or 'SELECT' in adv_key or 'MODE' in adv_key or 'LEVEL' in adv_key or 'GL_VERSION' in adv_key or 'NUMA' in adv_key else ''
|
||||
else:
|
||||
output = bytes(process.readAllStandardOutput().data()).decode('utf-8', 'ignore').strip()
|
||||
@@ -1915,14 +1867,9 @@ class ExeSettingsDialog(QDialog):
|
||||
for line in output.split('\n'):
|
||||
line_stripped = line.strip()
|
||||
if '=' in line_stripped:
|
||||
# Parse all KEY=VALUE lines, not just specific prefixes, to catch more
|
||||
try:
|
||||
key, val = line_stripped.split('=', 1)
|
||||
if key in self.toggle_settings or key in ['PW_WINDOWS_VER', 'WINEDLLOVERRIDES', 'LAUNCH_PARAMETERS',
|
||||
'PW_WINE_CPU_TOPOLOGY', 'PW_MESA_GL_VERSION_OVERRIDE',
|
||||
'PW_VKD3D_FEATURE_LEVEL', 'PW_LOCALE_SELECT',
|
||||
'PW_MESA_VK_WSI_PRESENT_MODE', 'PW_AMD_VULKAN_USE',
|
||||
'PW_CPU_NUMA_NODE_INDEX', 'PW_TASKSET_SLR']:
|
||||
if key in self.toggle_settings or key in ADVANCED_SETTING_KEYS:
|
||||
self.current_settings[key] = val
|
||||
except ValueError:
|
||||
continue
|
||||
@@ -1996,109 +1943,15 @@ class ExeSettingsDialog(QDialog):
|
||||
current = self.current_settings
|
||||
disabled_text = _('disabled')
|
||||
|
||||
# Define advanced settings configuration
|
||||
advanced_settings = []
|
||||
|
||||
# 1. Windows version
|
||||
advanced_settings.append({
|
||||
'key': 'PW_WINDOWS_VER',
|
||||
'name': _("Windows version"),
|
||||
'description': _("Changing the WINDOWS emulation version may be required to run older games. WINDOWS versions below 10 do not support new games with DirectX 12"),
|
||||
'type': 'combo',
|
||||
'options': ['11', '10', '7', 'XP'],
|
||||
'default': '10'
|
||||
})
|
||||
|
||||
# 2. Forced to use/disable libraries
|
||||
advanced_settings.append({
|
||||
'key': 'WINEDLLOVERRIDES',
|
||||
'name': _("DLL Overrides"),
|
||||
'description': _("Forced to use/disable the library only for the given application.\n\nA brief instruction:\n* libraries are written WITHOUT the .dll file extension\n* libraries are separated by semicolons - ;\n* library=n - use the WINDOWS (third-party) library\n* library=b - use WINE (built-in) library\n* library=n,b - use WINDOWS library and then WINE\n* library=b,n - use WINE library and then WINDOWS\n* library= - disable the use of this library\n\nExample: libglesv2=;d3dx9_36,d3dx9_42=n,b;mfc120=b,n"),
|
||||
'type': 'text',
|
||||
'default': ''
|
||||
})
|
||||
|
||||
# 3. Launch arguments
|
||||
advanced_settings.append({
|
||||
'key': 'LAUNCH_PARAMETERS',
|
||||
'name': _("Launch Arguments"),
|
||||
'description': _("Adding an argument after the .exe file, just like you would add an argument in a shortcut on a WINDOWS system.\n\nExample: -dx11 -skipintro 1"),
|
||||
'type': 'text',
|
||||
'default': ''
|
||||
})
|
||||
|
||||
# 4. CPU cores limit
|
||||
advanced_settings.append({
|
||||
'key': 'PW_WINE_CPU_TOPOLOGY',
|
||||
'name': _("CPU Cores Limit"),
|
||||
'description': _("Limiting the number of CPU cores is useful for Unity games (It is recommended to set the value equal to 8)"),
|
||||
'type': 'combo',
|
||||
'options': [disabled_text] + self.logical_core_options,
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 5. OpenGL version
|
||||
advanced_settings.append({
|
||||
'key': 'PW_MESA_GL_VERSION_OVERRIDE',
|
||||
'name': _("OpenGL Version"),
|
||||
'description': _("You can select the required OpenGL version, some games require a forced Compatibility Profile (COMP)."),
|
||||
'type': 'combo',
|
||||
'options': [disabled_text, '4.6COMPAT', '4.5COMPAT', '4.3COMPAT', '4.1COMPAT', '3.3COMPAT', '3.2COMPAT'],
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 6. VKD3D feature level
|
||||
advanced_settings.append({
|
||||
'key': 'PW_VKD3D_FEATURE_LEVEL',
|
||||
'name': _("VKD3D Feature Level"),
|
||||
'description': _("You can set a forced feature level VKD3D for games on DirectX12"),
|
||||
'type': 'combo',
|
||||
'options': [disabled_text, '12_2', '12_1', '12_0', '11_1', '11_0'],
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 7. Locale
|
||||
advanced_settings.append({
|
||||
'key': 'PW_LOCALE_SELECT',
|
||||
'name': _("Locale"),
|
||||
'description': _("Force certain locale for an app. Fixes encoding issues in legacy software"),
|
||||
'type': 'combo',
|
||||
'options': [disabled_text] + self.locale_options,
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 8. Present mode
|
||||
advanced_settings.append({
|
||||
'key': 'PW_MESA_VK_WSI_PRESENT_MODE',
|
||||
'name': _("Window Mode"),
|
||||
'description': _("Window mode (for Vulkan and OpenGL):\nfifo - First in, first out. Limits the frame rate + no tearing. (VSync)\nimmediate - Unlimited frame rate + tearing.\nmailbox - Triple buffering. Unlimited frame rate + no tearing.\nrelaxed - Same as fifo but allows tearing when below the monitors refresh rate."),
|
||||
'type': 'combo',
|
||||
'options': [disabled_text, 'fifo', 'immediate', 'mailbox', 'relaxed'],
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 9. AMD Vulkan (always show, block if not applicable)
|
||||
amd_options = [disabled_text] + self.amd_vulkan_drivers if self.is_amd and self.amd_vulkan_drivers else [disabled_text]
|
||||
advanced_settings.append({
|
||||
'key': 'PW_AMD_VULKAN_USE',
|
||||
'name': _("AMD Vulkan Driver"),
|
||||
'description': _("Select needed AMD vulkan implementation. Choosing which implementation of vulkan will be used to run the game"),
|
||||
'type': 'combo',
|
||||
'options': amd_options,
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 10. NUMA node (always show if numa_nodes exist, block if <=1)
|
||||
numa_ids = sorted(self.numa_nodes.keys())
|
||||
numa_options = [disabled_text] + numa_ids if len(numa_ids) > 1 else [disabled_text]
|
||||
advanced_settings.append({
|
||||
'key': 'PW_CPU_NUMA_NODE_INDEX',
|
||||
'name': _("NUMA Node"),
|
||||
'description': _("NUMA node for CPU affinity. In multi-core systems, CPUs are split into NUMA nodes, each with its own local memory and cores. Binding a game to a single node reduces memory-access latency and limits costly core-to-core switches."),
|
||||
'type': 'combo',
|
||||
'options': numa_options,
|
||||
'default': disabled_text
|
||||
})
|
||||
# Get advanced settings from config module
|
||||
advanced_settings = get_advanced_settings(
|
||||
disabled_text=disabled_text,
|
||||
logical_core_options=self.logical_core_options,
|
||||
locale_options=self.locale_options,
|
||||
amd_vulkan_drivers=self.amd_vulkan_drivers,
|
||||
is_amd=self.is_amd,
|
||||
numa_nodes=self.numa_nodes
|
||||
)
|
||||
|
||||
# Populate table
|
||||
for setting in advanced_settings:
|
||||
@@ -2152,22 +2005,22 @@ class ExeSettingsDialog(QDialog):
|
||||
desc_item.setTextAlignment(Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignVCenter)
|
||||
self.advanced_table.setItem(row, 2, desc_item)
|
||||
|
||||
# Make sure QLineEdit and QComboBox look consistent
|
||||
# self.advanced_table.setStyleSheet("""
|
||||
# QComboBox, QLineEdit {
|
||||
# padding: 3px 6px;
|
||||
# min-height: 26px;
|
||||
# }
|
||||
# QComboBox::drop-down {
|
||||
# subcontrol-origin: padding;
|
||||
# subcontrol-position: top right;
|
||||
# width: 18px;
|
||||
# }
|
||||
# QTextEdit {
|
||||
# border-radius: 4px;
|
||||
# padding: 4px;
|
||||
# }
|
||||
# """)
|
||||
# Style for consistency
|
||||
self.advanced_table.setStyleSheet("""
|
||||
QComboBox, QLineEdit {
|
||||
padding: 3px 6px;
|
||||
min-height: 26px;
|
||||
}
|
||||
QComboBox::drop-down {
|
||||
subcontrol-origin: padding;
|
||||
subcontrol-position: top right;
|
||||
width: 18px;
|
||||
}
|
||||
QTextEdit {
|
||||
border-radius: 4px;
|
||||
padding: 4px;
|
||||
}
|
||||
""")
|
||||
|
||||
def apply_changes(self):
|
||||
"""Apply changes by collecting diffs from both main and advanced tabs."""
|
||||
|
||||
@@ -131,6 +131,9 @@ class InputManager(QObject):
|
||||
self.last_update = time.time()
|
||||
self.update_interval = 0.016 # ~60 FPS
|
||||
self.emulation_active = False # Flag for external focus (updated in main thread)
|
||||
self.emulation_triggered = False
|
||||
self.start_held = False
|
||||
self.guide_held = False
|
||||
|
||||
# Focus check timer for emulation flag (runs in main thread)
|
||||
self.focus_check_timer = QTimer(self)
|
||||
@@ -182,6 +185,8 @@ class InputManager(QObject):
|
||||
"""Update emulation_active flag based on Qt app focus (main thread only)."""
|
||||
active = QApplication.activeWindow()
|
||||
self.emulation_active = (active is None) # True for external windows (e.g., winefile)
|
||||
if not self.emulation_active:
|
||||
self.emulation_triggered = False
|
||||
|
||||
def _navigate_game_cards(self, container, tab_index: int, code: int, value: int) -> None:
|
||||
"""Common navigation logic for game cards in a container."""
|
||||
@@ -1853,6 +1858,17 @@ class InputManager(QObject):
|
||||
|
||||
# UI signal handling (always, for internal app)
|
||||
if event.type == ecodes.EV_KEY:
|
||||
if event.code == ecodes.BTN_START:
|
||||
self.start_held = (event.value == 1)
|
||||
|
||||
if event.code in BUTTONS['guide']:
|
||||
self.guide_held = (event.value == 1)
|
||||
|
||||
if event.value == 1:
|
||||
if ((event.code in BUTTONS['guide'] and self.start_held) or
|
||||
(event.code == ecodes.BTN_START and self.guide_held)):
|
||||
self.emulation_triggered = not self.emulation_triggered
|
||||
|
||||
self.button_event.emit(event.code, event.value)
|
||||
# Special handling for menu on press only
|
||||
if event.value == 1 and event.code in BUTTONS['menu'] and not self._is_gamescope_session:
|
||||
@@ -1881,8 +1897,8 @@ class InputManager(QObject):
|
||||
else:
|
||||
self.dpad_moved.emit(event.code, event.value, current_time)
|
||||
|
||||
# Mouse emulation (only for external windows)
|
||||
if self.mouse_emulation_enabled and self.emulation_active:
|
||||
# Mouse emulation (only for external windows + triggered)
|
||||
if self.mouse_emulation_enabled and self.emulation_active and self.emulation_triggered:
|
||||
if event.type == ecodes.EV_ABS:
|
||||
if event.code == ecodes.ABS_HAT0X:
|
||||
if event.value == -1:
|
||||
@@ -1920,6 +1936,9 @@ class InputManager(QObject):
|
||||
self.stick_x_raw = 0
|
||||
self.stick_y_raw = 0
|
||||
self.scroll_accumulator = 0.0
|
||||
self.start_held = False
|
||||
self.guide_held = False
|
||||
self.emulation_triggered = False
|
||||
break
|
||||
except Exception as ex:
|
||||
logger.error(f"Unexpected error in gamepad monitoring: {ex}")
|
||||
@@ -1938,6 +1957,9 @@ class InputManager(QObject):
|
||||
except Exception:
|
||||
pass
|
||||
self.gamepad = None
|
||||
self.start_held = False
|
||||
self.guide_held = False
|
||||
self.emulation_triggered = False
|
||||
|
||||
def cleanup(self) -> None:
|
||||
"""
|
||||
|
||||
Binary file not shown.
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-10-16 14:54+0500\n"
|
||||
"POT-Creation-Date: 2025-11-11 17:00+0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: de_DE\n"
|
||||
@@ -76,10 +76,6 @@ msgstr ""
|
||||
msgid "Legendary executable not found at {path}"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "start.sh not found at {path}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Success"
|
||||
msgstr ""
|
||||
|
||||
@@ -124,6 +120,10 @@ msgstr ""
|
||||
msgid "Removed '{game_name}' from favorites"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "start.sh not found at {path}"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Launch game \"{name}\" with PortProton"
|
||||
msgstr ""
|
||||
@@ -365,6 +365,39 @@ msgstr ""
|
||||
msgid "Components installed successfully."
|
||||
msgstr ""
|
||||
|
||||
msgid "Exe Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main"
|
||||
msgstr ""
|
||||
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setting"
|
||||
msgstr ""
|
||||
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgid "disabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
|
||||
msgid "No changes to apply."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to apply changes. Check logs."
|
||||
msgstr ""
|
||||
|
||||
msgid "Settings updated successfully."
|
||||
msgstr ""
|
||||
|
||||
msgid "Loading Epic Games Store games..."
|
||||
msgstr ""
|
||||
|
||||
@@ -512,14 +545,21 @@ msgstr ""
|
||||
msgid "Are you sure you want to clear prefix '{}'?"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Prefix '{}' cleared successfully."
|
||||
msgid "Clearing prefix..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to start prefix clear process."
|
||||
msgstr ""
|
||||
|
||||
msgid "Prefix cleared successfully."
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Prefix '{}' cleared with errors:\n"
|
||||
"{}"
|
||||
msgid "Prefix clear failed with exit code {}."
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Failed to run clear prefix command: {}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to start backup process."
|
||||
@@ -704,6 +744,10 @@ msgstr ""
|
||||
msgid "Error applying theme '{0}'"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Executable not found: {0}"
|
||||
msgstr ""
|
||||
|
||||
msgid "LAST LAUNCH"
|
||||
msgstr ""
|
||||
|
||||
@@ -762,6 +806,232 @@ msgstr ""
|
||||
msgid "File not found: {0}"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Using FPS and system load monitoring (Turns on and off by the key "
|
||||
"combination - right Shift + F12)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Forced use of MANGOHUD system settings (GOverlay, etc.)"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enable vkBasalt by default to improve graphics in games running on "
|
||||
"Vulkan. (The HOME hotkey disables vkbasalt)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Forced use of VKBASALT system settings (GOverlay, etc.)"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enable dgVoodoo2. Forced use all dgVoodoo2 libs (Glide 2.11-3.1, "
|
||||
"DirectDraw 1-7, Direct3D 2-9) on all 3D API."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Super + F : Toggle fullscreen\n"
|
||||
"Super + N : Toggle nearest neighbour filtering\n"
|
||||
"Super + U : Toggle FSR upscaling\n"
|
||||
"Super + Y : Toggle NIS upscaling\n"
|
||||
"Super + I : Increase FSR sharpness by 1\n"
|
||||
"Super + O : Decrease FSR sharpness by 1\n"
|
||||
"Super + S : Take screenshot (currently goes to /tmp/gamescope_DATE.png)\n"
|
||||
"Super + G : Toggle keyboard grab\n"
|
||||
"Super + C : Update clipboard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable in-process synchronization primitives based on eventfd."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable futex-based in-process synchronization primitives."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable in-process synchronization via the Linux ntsync driver."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable vkd3d support - Ray Tracing"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DLSS on supported NVIDIA graphics cards"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable OptiScaler (replacement upscaler / frame generator)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Lossless Scaling frame generation (experimental)"
|
||||
msgstr ""
|
||||
|
||||
msgid "FSR upscaling in fullscreen with ProtonGE below native resolution"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disguise all NVIDIA GPU features"
|
||||
msgstr ""
|
||||
|
||||
msgid "Run the application in WINE virtual desktop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Run the application in a terminal"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disable startup mode and WINE version selector window"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use system GameMode for performance optimization"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable forced use of third-party DirectX libraries"
|
||||
msgstr ""
|
||||
|
||||
msgid "Fix pink-tinted video playback in some games"
|
||||
msgstr ""
|
||||
|
||||
msgid "Reduce PulseAudio latency to fix intermittent sound"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force US keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use GStreamer for in-game clips (WMF support)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use WINE shader caching"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force use of built-in DXGI library"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Easy Anti-Cheat and BattlEye runtimes"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use system Vulkan layers (MangoHud, vkBasalt, OBS, etc.)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable OBS Studio capture via obs-vkcapture"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disable desktop compositing for performance"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use container launch mode (recommended default)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force DirectInput protocol instead of XInput"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable experimental native Wayland support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable HDR settings under native Wayland"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use Gallium Zink (OpenGL via Vulkan)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use Gallium Nine (native DirectX 9 for Mesa)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use WineD3D Vulkan backend (Damavand)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use bundled dxvk/vkd3d from Wine/Proton"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use async dxvk-sarek (experimental)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Windows version"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Changing the WINDOWS emulation version may be required to run older "
|
||||
"games. WINDOWS versions below 10 do not support new games with DirectX 12"
|
||||
msgstr ""
|
||||
|
||||
msgid "DLL Overrides"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Forced to use/disable the library only for the given application.\n"
|
||||
"\n"
|
||||
"A brief instruction:\n"
|
||||
"* libraries are written WITHOUT the .dll file extension\n"
|
||||
"* libraries are separated by semicolons - ;\n"
|
||||
"* library=n - use the WINDOWS (third-party) library\n"
|
||||
"* library=b - use WINE (built-in) library\n"
|
||||
"* library=n,b - use WINDOWS library and then WINE\n"
|
||||
"* library=b,n - use WINE library and then WINDOWS\n"
|
||||
"* library= - disable the use of this library\n"
|
||||
"\n"
|
||||
"Example: libglesv2=;d3dx9_36,d3dx9_42=n,b;mfc120=b,n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Launch Arguments"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Adding an argument after the .exe file, just like you would add an "
|
||||
"argument in a shortcut on a WINDOWS system.\n"
|
||||
"\n"
|
||||
"Example: -dx11 -skipintro 1"
|
||||
msgstr ""
|
||||
|
||||
msgid "CPU Cores Limit"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Limiting the number of CPU cores is useful for Unity games (It is "
|
||||
"recommended to set the value equal to 8)"
|
||||
msgstr ""
|
||||
|
||||
msgid "OpenGL Version"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"You can select the required OpenGL version, some games require a forced "
|
||||
"Compatibility Profile (COMP)."
|
||||
msgstr ""
|
||||
|
||||
msgid "VKD3D Feature Level"
|
||||
msgstr ""
|
||||
|
||||
msgid "You can set a forced feature level VKD3D for games on DirectX12"
|
||||
msgstr ""
|
||||
|
||||
msgid "Locale"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force certain locale for an app. Fixes encoding issues in legacy software"
|
||||
msgstr ""
|
||||
|
||||
msgid "Window Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Window mode (for Vulkan and OpenGL):\n"
|
||||
"fifo - First in, first out. Limits the frame rate + no tearing. (VSync)\n"
|
||||
"immediate - Unlimited frame rate + tearing.\n"
|
||||
"mailbox - Triple buffering. Unlimited frame rate + no tearing.\n"
|
||||
"relaxed - Same as fifo but allows tearing when below the monitors refresh"
|
||||
" rate."
|
||||
msgstr ""
|
||||
|
||||
msgid "AMD Vulkan Driver"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select needed AMD vulkan implementation. Choosing which implementation of"
|
||||
" vulkan will be used to run the game"
|
||||
msgstr ""
|
||||
|
||||
msgid "NUMA Node"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"NUMA node for CPU affinity. In multi-core systems, CPUs are split into "
|
||||
"NUMA nodes, each with its own local memory and cores. Binding a game to a"
|
||||
" single node reduces memory-access latency and limits costly core-to-core"
|
||||
" switches."
|
||||
msgstr ""
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr ""
|
||||
|
||||
|
||||
Binary file not shown.
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-10-16 14:54+0500\n"
|
||||
"POT-Creation-Date: 2025-11-11 17:00+0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: es_ES\n"
|
||||
@@ -76,10 +76,6 @@ msgstr ""
|
||||
msgid "Legendary executable not found at {path}"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "start.sh not found at {path}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Success"
|
||||
msgstr ""
|
||||
|
||||
@@ -124,6 +120,10 @@ msgstr ""
|
||||
msgid "Removed '{game_name}' from favorites"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "start.sh not found at {path}"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Launch game \"{name}\" with PortProton"
|
||||
msgstr ""
|
||||
@@ -365,6 +365,39 @@ msgstr ""
|
||||
msgid "Components installed successfully."
|
||||
msgstr ""
|
||||
|
||||
msgid "Exe Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main"
|
||||
msgstr ""
|
||||
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setting"
|
||||
msgstr ""
|
||||
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgid "disabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
|
||||
msgid "No changes to apply."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to apply changes. Check logs."
|
||||
msgstr ""
|
||||
|
||||
msgid "Settings updated successfully."
|
||||
msgstr ""
|
||||
|
||||
msgid "Loading Epic Games Store games..."
|
||||
msgstr ""
|
||||
|
||||
@@ -512,14 +545,21 @@ msgstr ""
|
||||
msgid "Are you sure you want to clear prefix '{}'?"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Prefix '{}' cleared successfully."
|
||||
msgid "Clearing prefix..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to start prefix clear process."
|
||||
msgstr ""
|
||||
|
||||
msgid "Prefix cleared successfully."
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Prefix '{}' cleared with errors:\n"
|
||||
"{}"
|
||||
msgid "Prefix clear failed with exit code {}."
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Failed to run clear prefix command: {}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to start backup process."
|
||||
@@ -704,6 +744,10 @@ msgstr ""
|
||||
msgid "Error applying theme '{0}'"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Executable not found: {0}"
|
||||
msgstr ""
|
||||
|
||||
msgid "LAST LAUNCH"
|
||||
msgstr ""
|
||||
|
||||
@@ -762,6 +806,232 @@ msgstr ""
|
||||
msgid "File not found: {0}"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Using FPS and system load monitoring (Turns on and off by the key "
|
||||
"combination - right Shift + F12)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Forced use of MANGOHUD system settings (GOverlay, etc.)"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enable vkBasalt by default to improve graphics in games running on "
|
||||
"Vulkan. (The HOME hotkey disables vkbasalt)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Forced use of VKBASALT system settings (GOverlay, etc.)"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enable dgVoodoo2. Forced use all dgVoodoo2 libs (Glide 2.11-3.1, "
|
||||
"DirectDraw 1-7, Direct3D 2-9) on all 3D API."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Super + F : Toggle fullscreen\n"
|
||||
"Super + N : Toggle nearest neighbour filtering\n"
|
||||
"Super + U : Toggle FSR upscaling\n"
|
||||
"Super + Y : Toggle NIS upscaling\n"
|
||||
"Super + I : Increase FSR sharpness by 1\n"
|
||||
"Super + O : Decrease FSR sharpness by 1\n"
|
||||
"Super + S : Take screenshot (currently goes to /tmp/gamescope_DATE.png)\n"
|
||||
"Super + G : Toggle keyboard grab\n"
|
||||
"Super + C : Update clipboard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable in-process synchronization primitives based on eventfd."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable futex-based in-process synchronization primitives."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable in-process synchronization via the Linux ntsync driver."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable vkd3d support - Ray Tracing"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DLSS on supported NVIDIA graphics cards"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable OptiScaler (replacement upscaler / frame generator)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Lossless Scaling frame generation (experimental)"
|
||||
msgstr ""
|
||||
|
||||
msgid "FSR upscaling in fullscreen with ProtonGE below native resolution"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disguise all NVIDIA GPU features"
|
||||
msgstr ""
|
||||
|
||||
msgid "Run the application in WINE virtual desktop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Run the application in a terminal"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disable startup mode and WINE version selector window"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use system GameMode for performance optimization"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable forced use of third-party DirectX libraries"
|
||||
msgstr ""
|
||||
|
||||
msgid "Fix pink-tinted video playback in some games"
|
||||
msgstr ""
|
||||
|
||||
msgid "Reduce PulseAudio latency to fix intermittent sound"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force US keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use GStreamer for in-game clips (WMF support)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use WINE shader caching"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force use of built-in DXGI library"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Easy Anti-Cheat and BattlEye runtimes"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use system Vulkan layers (MangoHud, vkBasalt, OBS, etc.)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable OBS Studio capture via obs-vkcapture"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disable desktop compositing for performance"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use container launch mode (recommended default)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force DirectInput protocol instead of XInput"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable experimental native Wayland support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable HDR settings under native Wayland"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use Gallium Zink (OpenGL via Vulkan)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use Gallium Nine (native DirectX 9 for Mesa)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use WineD3D Vulkan backend (Damavand)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use bundled dxvk/vkd3d from Wine/Proton"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use async dxvk-sarek (experimental)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Windows version"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Changing the WINDOWS emulation version may be required to run older "
|
||||
"games. WINDOWS versions below 10 do not support new games with DirectX 12"
|
||||
msgstr ""
|
||||
|
||||
msgid "DLL Overrides"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Forced to use/disable the library only for the given application.\n"
|
||||
"\n"
|
||||
"A brief instruction:\n"
|
||||
"* libraries are written WITHOUT the .dll file extension\n"
|
||||
"* libraries are separated by semicolons - ;\n"
|
||||
"* library=n - use the WINDOWS (third-party) library\n"
|
||||
"* library=b - use WINE (built-in) library\n"
|
||||
"* library=n,b - use WINDOWS library and then WINE\n"
|
||||
"* library=b,n - use WINE library and then WINDOWS\n"
|
||||
"* library= - disable the use of this library\n"
|
||||
"\n"
|
||||
"Example: libglesv2=;d3dx9_36,d3dx9_42=n,b;mfc120=b,n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Launch Arguments"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Adding an argument after the .exe file, just like you would add an "
|
||||
"argument in a shortcut on a WINDOWS system.\n"
|
||||
"\n"
|
||||
"Example: -dx11 -skipintro 1"
|
||||
msgstr ""
|
||||
|
||||
msgid "CPU Cores Limit"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Limiting the number of CPU cores is useful for Unity games (It is "
|
||||
"recommended to set the value equal to 8)"
|
||||
msgstr ""
|
||||
|
||||
msgid "OpenGL Version"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"You can select the required OpenGL version, some games require a forced "
|
||||
"Compatibility Profile (COMP)."
|
||||
msgstr ""
|
||||
|
||||
msgid "VKD3D Feature Level"
|
||||
msgstr ""
|
||||
|
||||
msgid "You can set a forced feature level VKD3D for games on DirectX12"
|
||||
msgstr ""
|
||||
|
||||
msgid "Locale"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force certain locale for an app. Fixes encoding issues in legacy software"
|
||||
msgstr ""
|
||||
|
||||
msgid "Window Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Window mode (for Vulkan and OpenGL):\n"
|
||||
"fifo - First in, first out. Limits the frame rate + no tearing. (VSync)\n"
|
||||
"immediate - Unlimited frame rate + tearing.\n"
|
||||
"mailbox - Triple buffering. Unlimited frame rate + no tearing.\n"
|
||||
"relaxed - Same as fifo but allows tearing when below the monitors refresh"
|
||||
" rate."
|
||||
msgstr ""
|
||||
|
||||
msgid "AMD Vulkan Driver"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select needed AMD vulkan implementation. Choosing which implementation of"
|
||||
" vulkan will be used to run the game"
|
||||
msgstr ""
|
||||
|
||||
msgid "NUMA Node"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"NUMA node for CPU affinity. In multi-core systems, CPUs are split into "
|
||||
"NUMA nodes, each with its own local memory and cores. Binding a game to a"
|
||||
" single node reduces memory-access latency and limits costly core-to-core"
|
||||
" switches."
|
||||
msgstr ""
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PortProtonQt 0.1.1\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-10-16 14:54+0500\n"
|
||||
"POT-Creation-Date: 2025-11-11 17:00+0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -74,10 +74,6 @@ msgstr ""
|
||||
msgid "Legendary executable not found at {path}"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "start.sh not found at {path}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Success"
|
||||
msgstr ""
|
||||
|
||||
@@ -122,6 +118,10 @@ msgstr ""
|
||||
msgid "Removed '{game_name}' from favorites"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "start.sh not found at {path}"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Launch game \"{name}\" with PortProton"
|
||||
msgstr ""
|
||||
@@ -363,6 +363,39 @@ msgstr ""
|
||||
msgid "Components installed successfully."
|
||||
msgstr ""
|
||||
|
||||
msgid "Exe Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main"
|
||||
msgstr ""
|
||||
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
msgid "Setting"
|
||||
msgstr ""
|
||||
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
msgid "disabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
|
||||
msgid "No changes to apply."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to apply changes. Check logs."
|
||||
msgstr ""
|
||||
|
||||
msgid "Settings updated successfully."
|
||||
msgstr ""
|
||||
|
||||
msgid "Loading Epic Games Store games..."
|
||||
msgstr ""
|
||||
|
||||
@@ -510,14 +543,21 @@ msgstr ""
|
||||
msgid "Are you sure you want to clear prefix '{}'?"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Prefix '{}' cleared successfully."
|
||||
msgid "Clearing prefix..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to start prefix clear process."
|
||||
msgstr ""
|
||||
|
||||
msgid "Prefix cleared successfully."
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Prefix '{}' cleared with errors:\n"
|
||||
"{}"
|
||||
msgid "Prefix clear failed with exit code {}."
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Failed to run clear prefix command: {}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to start backup process."
|
||||
@@ -702,6 +742,10 @@ msgstr ""
|
||||
msgid "Error applying theme '{0}'"
|
||||
msgstr ""
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Executable not found: {0}"
|
||||
msgstr ""
|
||||
|
||||
msgid "LAST LAUNCH"
|
||||
msgstr ""
|
||||
|
||||
@@ -760,6 +804,232 @@ msgstr ""
|
||||
msgid "File not found: {0}"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Using FPS and system load monitoring (Turns on and off by the key "
|
||||
"combination - right Shift + F12)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Forced use of MANGOHUD system settings (GOverlay, etc.)"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enable vkBasalt by default to improve graphics in games running on "
|
||||
"Vulkan. (The HOME hotkey disables vkbasalt)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Forced use of VKBASALT system settings (GOverlay, etc.)"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Enable dgVoodoo2. Forced use all dgVoodoo2 libs (Glide 2.11-3.1, "
|
||||
"DirectDraw 1-7, Direct3D 2-9) on all 3D API."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Super + F : Toggle fullscreen\n"
|
||||
"Super + N : Toggle nearest neighbour filtering\n"
|
||||
"Super + U : Toggle FSR upscaling\n"
|
||||
"Super + Y : Toggle NIS upscaling\n"
|
||||
"Super + I : Increase FSR sharpness by 1\n"
|
||||
"Super + O : Decrease FSR sharpness by 1\n"
|
||||
"Super + S : Take screenshot (currently goes to /tmp/gamescope_DATE.png)\n"
|
||||
"Super + G : Toggle keyboard grab\n"
|
||||
"Super + C : Update clipboard"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable in-process synchronization primitives based on eventfd."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable futex-based in-process synchronization primitives."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable in-process synchronization via the Linux ntsync driver."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable vkd3d support - Ray Tracing"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable DLSS on supported NVIDIA graphics cards"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable OptiScaler (replacement upscaler / frame generator)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Lossless Scaling frame generation (experimental)"
|
||||
msgstr ""
|
||||
|
||||
msgid "FSR upscaling in fullscreen with ProtonGE below native resolution"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disguise all NVIDIA GPU features"
|
||||
msgstr ""
|
||||
|
||||
msgid "Run the application in WINE virtual desktop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Run the application in a terminal"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disable startup mode and WINE version selector window"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use system GameMode for performance optimization"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable forced use of third-party DirectX libraries"
|
||||
msgstr ""
|
||||
|
||||
msgid "Fix pink-tinted video playback in some games"
|
||||
msgstr ""
|
||||
|
||||
msgid "Reduce PulseAudio latency to fix intermittent sound"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force US keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use GStreamer for in-game clips (WMF support)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use WINE shader caching"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force use of built-in DXGI library"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Easy Anti-Cheat and BattlEye runtimes"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use system Vulkan layers (MangoHud, vkBasalt, OBS, etc.)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable OBS Studio capture via obs-vkcapture"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disable desktop compositing for performance"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use container launch mode (recommended default)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force DirectInput protocol instead of XInput"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable experimental native Wayland support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable HDR settings under native Wayland"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use Gallium Zink (OpenGL via Vulkan)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use Gallium Nine (native DirectX 9 for Mesa)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use WineD3D Vulkan backend (Damavand)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use bundled dxvk/vkd3d from Wine/Proton"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use async dxvk-sarek (experimental)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Windows version"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Changing the WINDOWS emulation version may be required to run older "
|
||||
"games. WINDOWS versions below 10 do not support new games with DirectX 12"
|
||||
msgstr ""
|
||||
|
||||
msgid "DLL Overrides"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Forced to use/disable the library only for the given application.\n"
|
||||
"\n"
|
||||
"A brief instruction:\n"
|
||||
"* libraries are written WITHOUT the .dll file extension\n"
|
||||
"* libraries are separated by semicolons - ;\n"
|
||||
"* library=n - use the WINDOWS (third-party) library\n"
|
||||
"* library=b - use WINE (built-in) library\n"
|
||||
"* library=n,b - use WINDOWS library and then WINE\n"
|
||||
"* library=b,n - use WINE library and then WINDOWS\n"
|
||||
"* library= - disable the use of this library\n"
|
||||
"\n"
|
||||
"Example: libglesv2=;d3dx9_36,d3dx9_42=n,b;mfc120=b,n"
|
||||
msgstr ""
|
||||
|
||||
msgid "Launch Arguments"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Adding an argument after the .exe file, just like you would add an "
|
||||
"argument in a shortcut on a WINDOWS system.\n"
|
||||
"\n"
|
||||
"Example: -dx11 -skipintro 1"
|
||||
msgstr ""
|
||||
|
||||
msgid "CPU Cores Limit"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Limiting the number of CPU cores is useful for Unity games (It is "
|
||||
"recommended to set the value equal to 8)"
|
||||
msgstr ""
|
||||
|
||||
msgid "OpenGL Version"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"You can select the required OpenGL version, some games require a forced "
|
||||
"Compatibility Profile (COMP)."
|
||||
msgstr ""
|
||||
|
||||
msgid "VKD3D Feature Level"
|
||||
msgstr ""
|
||||
|
||||
msgid "You can set a forced feature level VKD3D for games on DirectX12"
|
||||
msgstr ""
|
||||
|
||||
msgid "Locale"
|
||||
msgstr ""
|
||||
|
||||
msgid "Force certain locale for an app. Fixes encoding issues in legacy software"
|
||||
msgstr ""
|
||||
|
||||
msgid "Window Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Window mode (for Vulkan and OpenGL):\n"
|
||||
"fifo - First in, first out. Limits the frame rate + no tearing. (VSync)\n"
|
||||
"immediate - Unlimited frame rate + tearing.\n"
|
||||
"mailbox - Triple buffering. Unlimited frame rate + no tearing.\n"
|
||||
"relaxed - Same as fifo but allows tearing when below the monitors refresh"
|
||||
" rate."
|
||||
msgstr ""
|
||||
|
||||
msgid "AMD Vulkan Driver"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Select needed AMD vulkan implementation. Choosing which implementation of"
|
||||
" vulkan will be used to run the game"
|
||||
msgstr ""
|
||||
|
||||
msgid "NUMA Node"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"NUMA node for CPU affinity. In multi-core systems, CPUs are split into "
|
||||
"NUMA nodes, each with its own local memory and cores. Binding a game to a"
|
||||
" single node reduces memory-access latency and limits costly core-to-core"
|
||||
" switches."
|
||||
msgstr ""
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr ""
|
||||
|
||||
|
||||
Binary file not shown.
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-10-16 14:54+0500\n"
|
||||
"PO-Revision-Date: 2025-10-16 14:54+0500\n"
|
||||
"POT-Creation-Date: 2025-11-11 17:00+0500\n"
|
||||
"PO-Revision-Date: 2025-11-11 17:00+0500\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ru_RU\n"
|
||||
"Language-Team: ru_RU <LL@li.org>\n"
|
||||
@@ -77,10 +77,6 @@ msgstr "Остановлен(а) '{game_name}'"
|
||||
msgid "Legendary executable not found at {path}"
|
||||
msgstr "Legendary не найден по пути {path}"
|
||||
|
||||
#, python-brace-format
|
||||
msgid "start.sh not found at {path}"
|
||||
msgstr "start.sh не найден по адресу {path}"
|
||||
|
||||
msgid "Success"
|
||||
msgstr "Успешно"
|
||||
|
||||
@@ -127,6 +123,10 @@ msgstr "'{game_name}' был(а) добавлен(а) в избранное"
|
||||
msgid "Removed '{game_name}' from favorites"
|
||||
msgstr "'{game_name}' был(а) удалён(а) из избранного"
|
||||
|
||||
#, python-brace-format
|
||||
msgid "start.sh not found at {path}"
|
||||
msgstr "start.sh не найден по адресу {path}"
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Launch game \"{name}\" with PortProton"
|
||||
msgstr "Запустить игру \"{name}\" с помощью PortProton"
|
||||
@@ -372,6 +372,39 @@ msgstr "Установка не удалась. Проверьте журнал
|
||||
msgid "Components installed successfully."
|
||||
msgstr "Компоненты успешно установлены."
|
||||
|
||||
msgid "Exe Settings"
|
||||
msgstr "Настройки EXE"
|
||||
|
||||
msgid "Main"
|
||||
msgstr "Основные"
|
||||
|
||||
msgid "Advanced"
|
||||
msgstr "Расширенные"
|
||||
|
||||
msgid "Setting"
|
||||
msgstr "Параметр"
|
||||
|
||||
msgid "Value"
|
||||
msgstr "Значение"
|
||||
|
||||
msgid "Description"
|
||||
msgstr "Описание"
|
||||
|
||||
msgid "disabled"
|
||||
msgstr "отключено"
|
||||
|
||||
msgid "Info"
|
||||
msgstr "Информация"
|
||||
|
||||
msgid "No changes to apply."
|
||||
msgstr "Изменений для применения нет."
|
||||
|
||||
msgid "Failed to apply changes. Check logs."
|
||||
msgstr "Не удалось применить изменения. Проверьте логи."
|
||||
|
||||
msgid "Settings updated successfully."
|
||||
msgstr "Настройки успешно обновлены."
|
||||
|
||||
msgid "Loading Epic Games Store games..."
|
||||
msgstr "Загрузка игр из Epic Games Store..."
|
||||
|
||||
@@ -519,17 +552,22 @@ msgstr "Подтвердите очистку"
|
||||
msgid "Are you sure you want to clear prefix '{}'?"
|
||||
msgstr "Вы уверены, что хотите очистить префикс «{}»?"
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Prefix '{}' cleared successfully."
|
||||
msgstr "Префикс '{}' успешно удален."
|
||||
msgid "Clearing prefix..."
|
||||
msgstr "Очистка префикса..."
|
||||
|
||||
msgid "Failed to start prefix clear process."
|
||||
msgstr "Не удалось запустить процесс очистки префикса."
|
||||
|
||||
msgid "Prefix cleared successfully."
|
||||
msgstr "Префикс удален успешно."
|
||||
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Prefix '{}' cleared with errors:\n"
|
||||
"{}"
|
||||
msgstr ""
|
||||
"Префикс '{}' очищен с ошибками:\n"
|
||||
"{}"
|
||||
msgid "Prefix clear failed with exit code {}."
|
||||
msgstr "Очистка префикса завершилась с кодом завершения {}."
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Failed to run clear prefix command: {}"
|
||||
msgstr "Не удалось выполнить команду очистки префикса: {}"
|
||||
|
||||
msgid "Failed to start backup process."
|
||||
msgstr "Не удалось запустить процесс резервного копирования."
|
||||
@@ -715,6 +753,10 @@ msgstr "Тема '{0}' применена успешно"
|
||||
msgid "Error applying theme '{0}'"
|
||||
msgstr "Ошибка при применение темы '{0}'"
|
||||
|
||||
#, python-brace-format
|
||||
msgid "Executable not found: {0}"
|
||||
msgstr "Исполняемый файл не найден: {0}"
|
||||
|
||||
msgid "LAST LAUNCH"
|
||||
msgstr "Последний запуск"
|
||||
|
||||
@@ -773,6 +815,288 @@ msgstr "Неправильный формат команды (flatpak)"
|
||||
msgid "File not found: {0}"
|
||||
msgstr "Файл не найден: {0}"
|
||||
|
||||
msgid ""
|
||||
"Using FPS and system load monitoring (Turns on and off by the key "
|
||||
"combination - right Shift + F12)"
|
||||
msgstr ""
|
||||
"Использование мониторинга FPS и нагрузки системы (включается и "
|
||||
"выключается комбинацией клавиш - правая Shift + F12)"
|
||||
|
||||
msgid "Forced use of MANGOHUD system settings (GOverlay, etc.)"
|
||||
msgstr "Принудительное использование системных настроек MANGOHUD (GOverlay и т.д.)"
|
||||
|
||||
msgid ""
|
||||
"Enable vkBasalt by default to improve graphics in games running on "
|
||||
"Vulkan. (The HOME hotkey disables vkbasalt)"
|
||||
msgstr ""
|
||||
"Включить vkBasalt по умолчанию для улучшения графики в играх на Vulkan. "
|
||||
"(Горячая клавиша HOME отключает vkbasalt)"
|
||||
|
||||
msgid "Forced use of VKBASALT system settings (GOverlay, etc.)"
|
||||
msgstr "Принудительное использование системных настроек VKBASALT (GOverlay и т.д.)"
|
||||
|
||||
msgid ""
|
||||
"Enable dgVoodoo2. Forced use all dgVoodoo2 libs (Glide 2.11-3.1, "
|
||||
"DirectDraw 1-7, Direct3D 2-9) on all 3D API."
|
||||
msgstr ""
|
||||
"Включить dgVoodoo2. Принудительное использование всех библиотек dgVoodoo2"
|
||||
" (Glide 2.11-3.1, DirectDraw 1-7, Direct3D 2-9) на всех 3D API."
|
||||
|
||||
msgid ""
|
||||
"Super + F : Toggle fullscreen\n"
|
||||
"Super + N : Toggle nearest neighbour filtering\n"
|
||||
"Super + U : Toggle FSR upscaling\n"
|
||||
"Super + Y : Toggle NIS upscaling\n"
|
||||
"Super + I : Increase FSR sharpness by 1\n"
|
||||
"Super + O : Decrease FSR sharpness by 1\n"
|
||||
"Super + S : Take screenshot (currently goes to /tmp/gamescope_DATE.png)\n"
|
||||
"Super + G : Toggle keyboard grab\n"
|
||||
"Super + C : Update clipboard"
|
||||
msgstr ""
|
||||
"Super + F: Переключить полноэкранный режим\n"
|
||||
"Super + N: Переключить фильтрацию ближайшего соседа\n"
|
||||
"Super + U: Переключить апскейлинг FSR\n"
|
||||
"Super + Y: Переключить апскейлинг NIS\n"
|
||||
"Super + I: Увеличить резкость FSR на 1\n"
|
||||
"Super + O: Уменьшить резкость FSR на 1\n"
|
||||
"Super + S: Сделать скриншот (сейчас сохраняется в "
|
||||
"/tmp/gamescope_DATE.png)\n"
|
||||
"Super + G: Переключить захват клавиатуры\n"
|
||||
"Super + C: Обновить буфер обмена"
|
||||
|
||||
msgid "Enable in-process synchronization primitives based on eventfd."
|
||||
msgstr "Включить примитивы синхронизации в процессе на основе eventfd."
|
||||
|
||||
msgid "Enable futex-based in-process synchronization primitives."
|
||||
msgstr "Включить примитивы синхронизации в процессе на основе futex."
|
||||
|
||||
msgid "Enable in-process synchronization via the Linux ntsync driver."
|
||||
msgstr "Включить синхронизацию в процессе через драйвер ntsync в Linux."
|
||||
|
||||
msgid "Enable vkd3d support - Ray Tracing"
|
||||
msgstr "Включить поддержку vkd3d — трассировка лучей"
|
||||
|
||||
msgid "Enable DLSS on supported NVIDIA graphics cards"
|
||||
msgstr "Включить DLSS на поддерживаемых видеокартах NVIDIA"
|
||||
|
||||
msgid "Enable OptiScaler (replacement upscaler / frame generator)"
|
||||
msgstr "Включить OptiScaler (замена апскейлера / генератора кадров)"
|
||||
|
||||
msgid "Enable Lossless Scaling frame generation (experimental)"
|
||||
msgstr "Включить генерацию кадров Lossless Scaling (экспериментально)"
|
||||
|
||||
msgid "FSR upscaling in fullscreen with ProtonGE below native resolution"
|
||||
msgstr "Апскейлинг FSR в полноэкранном режиме с ProtonGE ниже родного разрешения"
|
||||
|
||||
msgid "Disguise all NVIDIA GPU features"
|
||||
msgstr "Маскировать все функции GPU NVIDIA"
|
||||
|
||||
msgid "Run the application in WINE virtual desktop"
|
||||
msgstr "Запускать приложение в виртуальном рабочем столе WINE"
|
||||
|
||||
msgid "Run the application in a terminal"
|
||||
msgstr "Запускать приложение в терминале"
|
||||
|
||||
msgid "Disable startup mode and WINE version selector window"
|
||||
msgstr "Отключить окно выбора режима запуска и версии WINE"
|
||||
|
||||
msgid "Use system GameMode for performance optimization"
|
||||
msgstr "Использовать системный GameMode для оптимизации производительности"
|
||||
|
||||
msgid "Enable forced use of third-party DirectX libraries"
|
||||
msgstr "Включить принудительное использование сторонних библиотек DirectX"
|
||||
|
||||
msgid "Fix pink-tinted video playback in some games"
|
||||
msgstr "Исправить розовый оттенок видео в некоторых играх"
|
||||
|
||||
msgid "Reduce PulseAudio latency to fix intermittent sound"
|
||||
msgstr "Уменьшить задержку PulseAudio для исправления прерывистого звука"
|
||||
|
||||
msgid "Force US keyboard layout"
|
||||
msgstr "Принудительно использовать раскладку клавиатуры US"
|
||||
|
||||
msgid "Use GStreamer for in-game clips (WMF support)"
|
||||
msgstr "Использовать GStreamer для внутриигровых клипов (поддержка WMF)"
|
||||
|
||||
msgid "Use WINE shader caching"
|
||||
msgstr "Использовать кэширование шейдеров WINE"
|
||||
|
||||
msgid "Force use of built-in DXGI library"
|
||||
msgstr "Принудительно использовать встроенную библиотеку DXGI"
|
||||
|
||||
msgid "Enable Easy Anti-Cheat and BattlEye runtimes"
|
||||
msgstr "Включить среды выполнения Easy Anti-Cheat и BattlEye"
|
||||
|
||||
msgid "Use system Vulkan layers (MangoHud, vkBasalt, OBS, etc.)"
|
||||
msgstr "Использовать системные слои Vulkan (MangoHud, vkBasalt, OBS и т.д.)"
|
||||
|
||||
msgid "Enable OBS Studio capture via obs-vkcapture"
|
||||
msgstr "Включить захват OBS Studio через obs-vkcapture"
|
||||
|
||||
msgid "Disable desktop compositing for performance"
|
||||
msgstr "Отключить композицию рабочего стола для производительности"
|
||||
|
||||
msgid "Use container launch mode (recommended default)"
|
||||
msgstr "Использовать режим запуска в контейнере (рекомендуемый по умолчанию)"
|
||||
|
||||
msgid "Force DirectInput protocol instead of XInput"
|
||||
msgstr "Принудительно использовать протокол DirectInput вместо XInput"
|
||||
|
||||
msgid "Enable experimental native Wayland support"
|
||||
msgstr "Включить экспериментальную нативную поддержку Wayland"
|
||||
|
||||
msgid "Enable HDR settings under native Wayland"
|
||||
msgstr "Включить настройки HDR под нативным Wayland"
|
||||
|
||||
msgid "Use Gallium Zink (OpenGL via Vulkan)"
|
||||
msgstr "Использовать Gallium Zink (OpenGL через Vulkan)"
|
||||
|
||||
msgid "Use Gallium Nine (native DirectX 9 for Mesa)"
|
||||
msgstr "Использовать Gallium Nine (нативный DirectX 9 для Mesa)"
|
||||
|
||||
msgid "Use WineD3D Vulkan backend (Damavand)"
|
||||
msgstr "Использовать бэкенд Vulkan WineD3D (Damavand)"
|
||||
|
||||
msgid "Use bundled dxvk/vkd3d from Wine/Proton"
|
||||
msgstr "Использовать встроенные dxvk/vkd3d из Wine/Proton"
|
||||
|
||||
msgid "Use async dxvk-sarek (experimental)"
|
||||
msgstr "Использовать асинхронный dxvk-sarek (экспериментально)"
|
||||
|
||||
msgid "Windows version"
|
||||
msgstr "Версия Windows"
|
||||
|
||||
msgid ""
|
||||
"Changing the WINDOWS emulation version may be required to run older "
|
||||
"games. WINDOWS versions below 10 do not support new games with DirectX 12"
|
||||
msgstr ""
|
||||
"Изменение версии эмуляции WINDOWS может потребоваться для запуска старых "
|
||||
"игр. Версии WINDOWS ниже 10 не поддерживают новые игры с DirectX 12"
|
||||
|
||||
msgid "DLL Overrides"
|
||||
msgstr "Переопределения DLL"
|
||||
|
||||
msgid ""
|
||||
"Forced to use/disable the library only for the given application.\n"
|
||||
"\n"
|
||||
"A brief instruction:\n"
|
||||
"* libraries are written WITHOUT the .dll file extension\n"
|
||||
"* libraries are separated by semicolons - ;\n"
|
||||
"* library=n - use the WINDOWS (third-party) library\n"
|
||||
"* library=b - use WINE (built-in) library\n"
|
||||
"* library=n,b - use WINDOWS library and then WINE\n"
|
||||
"* library=b,n - use WINE library and then WINDOWS\n"
|
||||
"* library= - disable the use of this library\n"
|
||||
"\n"
|
||||
"Example: libglesv2=;d3dx9_36,d3dx9_42=n,b;mfc120=b,n"
|
||||
msgstr ""
|
||||
"Принудительное использование/отключение библиотеки только для данного "
|
||||
"приложения.\n"
|
||||
"\n"
|
||||
"Краткая инструкция:\n"
|
||||
"* библиотеки пишутся БЕЗ расширения .dll\n"
|
||||
"* библиотеки разделяются точкой с запятой - ;\n"
|
||||
"* library=n — использовать библиотеку WINDOWS (стороннюю)\n"
|
||||
"* library=b — использовать библиотеку WINE (встроенную)\n"
|
||||
"* library=n,b — использовать библиотеку WINDOWS, затем WINE\n"
|
||||
"* library=b,n — использовать библиотеку WINE, затем WINDOWS\n"
|
||||
"* library= — отключить использование этой библиотеки\n"
|
||||
"\n"
|
||||
"Пример: libglesv2=;d3dx9_36,d3dx9_42=n,b;mfc120=b,n"
|
||||
|
||||
msgid "Launch Arguments"
|
||||
msgstr "Аргументы запуска"
|
||||
|
||||
msgid ""
|
||||
"Adding an argument after the .exe file, just like you would add an "
|
||||
"argument in a shortcut on a WINDOWS system.\n"
|
||||
"\n"
|
||||
"Example: -dx11 -skipintro 1"
|
||||
msgstr ""
|
||||
"Добавление аргумента после файла .exe, как вы бы добавили аргумент в "
|
||||
"ярлыке на системе WINDOWS.\n"
|
||||
"\n"
|
||||
"Пример: -dx11 -skipintro 1"
|
||||
|
||||
msgid "CPU Cores Limit"
|
||||
msgstr "Ограничение ядер CPU"
|
||||
|
||||
msgid ""
|
||||
"Limiting the number of CPU cores is useful for Unity games (It is "
|
||||
"recommended to set the value equal to 8)"
|
||||
msgstr ""
|
||||
"Ограничение количества ядер CPU полезно для игр на Unity (рекомендуется "
|
||||
"установить значение равным 8)"
|
||||
|
||||
msgid "OpenGL Version"
|
||||
msgstr "Версия OpenGL"
|
||||
|
||||
msgid ""
|
||||
"You can select the required OpenGL version, some games require a forced "
|
||||
"Compatibility Profile (COMP)."
|
||||
msgstr ""
|
||||
"Вы можете выбрать требуемую версию OpenGL, некоторые игры требуют "
|
||||
"принудительного профиля совместимости (COMP)."
|
||||
|
||||
msgid "VKD3D Feature Level"
|
||||
msgstr "Уровень возможностей VKD3D"
|
||||
|
||||
msgid "You can set a forced feature level VKD3D for games on DirectX12"
|
||||
msgstr ""
|
||||
"Вы можете установить принудительный уровень возможностей VKD3D для игр на"
|
||||
" DirectX12"
|
||||
|
||||
msgid "Locale"
|
||||
msgstr "Локаль"
|
||||
|
||||
msgid "Force certain locale for an app. Fixes encoding issues in legacy software"
|
||||
msgstr ""
|
||||
"Принудительно установить определённую локаль для приложения. Исправляет "
|
||||
"проблемы с кодировкой в устаревшем ПО"
|
||||
|
||||
msgid "Window Mode"
|
||||
msgstr "Режим окна"
|
||||
|
||||
msgid ""
|
||||
"Window mode (for Vulkan and OpenGL):\n"
|
||||
"fifo - First in, first out. Limits the frame rate + no tearing. (VSync)\n"
|
||||
"immediate - Unlimited frame rate + tearing.\n"
|
||||
"mailbox - Triple buffering. Unlimited frame rate + no tearing.\n"
|
||||
"relaxed - Same as fifo but allows tearing when below the monitors refresh"
|
||||
" rate."
|
||||
msgstr ""
|
||||
"Режим окна (для Vulkan и OpenGL):\n"
|
||||
"fifo — Первый вошёл, первый вышел. Ограничивает частоту кадров + без "
|
||||
"разрывов. (VSync)\n"
|
||||
"immediate — Неограниченная частота кадров + разрывы.\n"
|
||||
"mailbox — Трёхбуферная. Неограниченная частота кадров + без разрывов.\n"
|
||||
"relaxed — То же, что fifo, но позволяет разрывы при частоте ниже частоты "
|
||||
"обновления монитора."
|
||||
|
||||
msgid "AMD Vulkan Driver"
|
||||
msgstr "Драйвер Vulkan AMD"
|
||||
|
||||
msgid ""
|
||||
"Select needed AMD vulkan implementation. Choosing which implementation of"
|
||||
" vulkan will be used to run the game"
|
||||
msgstr ""
|
||||
"Выберите нужную реализацию Vulkan AMD. Выбор, какая реализация Vulkan "
|
||||
"будет использоваться для запуска игры"
|
||||
|
||||
msgid "NUMA Node"
|
||||
msgstr "Узел NUMA"
|
||||
|
||||
msgid ""
|
||||
"NUMA node for CPU affinity. In multi-core systems, CPUs are split into "
|
||||
"NUMA nodes, each with its own local memory and cores. Binding a game to a"
|
||||
" single node reduces memory-access latency and limits costly core-to-core"
|
||||
" switches."
|
||||
msgstr ""
|
||||
"Узел NUMA для аффинности CPU. В многоядерных системах CPU разделены на "
|
||||
"узлы NUMA, каждый со своей локальной памятью и ядрами. Привязка игры к "
|
||||
"одному узлу уменьшает задержку доступа к памяти и ограничивает "
|
||||
"дорогостоящие переключения между ядрами."
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Перезагрузить"
|
||||
|
||||
|
||||
@@ -2642,7 +2642,6 @@ class MainWindow(QMainWindow):
|
||||
file_to_check = entry_exec_split[0]
|
||||
current_exe = os.path.basename(file_to_check) if file_to_check else None
|
||||
|
||||
buttons_layout = QHBoxLayout()
|
||||
if self.target_exe is not None and current_exe == self.target_exe:
|
||||
playButton = AutoSizeButton(_("Stop"), icon=self.theme_manager.get_icon("stop"))
|
||||
else:
|
||||
@@ -2651,7 +2650,7 @@ class MainWindow(QMainWindow):
|
||||
playButton.setFixedSize(120, 40)
|
||||
playButton.setStyleSheet(self.theme.PLAY_BUTTON_STYLE)
|
||||
playButton.clicked.connect(lambda: self.toggleGame(exec_line, playButton))
|
||||
buttons_layout.addWidget(playButton, alignment=Qt.AlignmentFlag.AlignLeft)
|
||||
detailsLayout.addWidget(playButton, alignment=Qt.AlignmentFlag.AlignLeft)
|
||||
|
||||
# Settings button
|
||||
settings_icon = self.theme_manager.get_icon("settings")
|
||||
@@ -2659,9 +2658,7 @@ class MainWindow(QMainWindow):
|
||||
settings_button.setFixedSize(120, 40)
|
||||
settings_button.setStyleSheet(self.theme.PLAY_BUTTON_STYLE)
|
||||
settings_button.clicked.connect(lambda: self.open_exe_settings(file_to_check))
|
||||
buttons_layout.addWidget(settings_button, alignment=Qt.AlignmentFlag.AlignLeft)
|
||||
buttons_layout.addStretch()
|
||||
detailsLayout.addLayout(buttons_layout)
|
||||
detailsLayout.addWidget(settings_button, alignment=Qt.AlignmentFlag.AlignLeft)
|
||||
|
||||
contentFrameLayout.addWidget(detailsWidget)
|
||||
mainLayout.addStretch()
|
||||
|
||||
172
portprotonqt/settings_manager.py
Normal file
172
portprotonqt/settings_manager.py
Normal file
@@ -0,0 +1,172 @@
|
||||
def get_toggle_settings():
|
||||
"""Get predefined toggle settings with descriptions."""
|
||||
from portprotonqt.localization import _
|
||||
|
||||
return {
|
||||
'PW_MANGOHUD': _("Using FPS and system load monitoring (Turns on and off by the key combination - right Shift + F12)"),
|
||||
'PW_MANGOHUD_USER_CONF': _("Forced use of MANGOHUD system settings (GOverlay, etc.)"),
|
||||
'PW_VKBASALT': _("Enable vkBasalt by default to improve graphics in games running on Vulkan. (The HOME hotkey disables vkbasalt)"),
|
||||
'PW_VKBASALT_USER_CONF': _("Forced use of VKBASALT system settings (GOverlay, etc.)"),
|
||||
'PW_DGVOODOO2': _("Enable dgVoodoo2. Forced use all dgVoodoo2 libs (Glide 2.11-3.1, DirectDraw 1-7, Direct3D 2-9) on all 3D API."),
|
||||
'PW_GAMESCOPE': _("Super + F : Toggle fullscreen\nSuper + N : Toggle nearest neighbour filtering\nSuper + U : Toggle FSR upscaling\nSuper + Y : Toggle NIS upscaling\nSuper + I : Increase FSR sharpness by 1\nSuper + O : Decrease FSR sharpness by 1\nSuper + S : Take screenshot (currently goes to /tmp/gamescope_DATE.png)\nSuper + G : Toggle keyboard grab\nSuper + C : Update clipboard"),
|
||||
'PW_USE_ESYNC': _("Enable in-process synchronization primitives based on eventfd."),
|
||||
'PW_USE_FSYNC': _("Enable futex-based in-process synchronization primitives."),
|
||||
'PW_USE_NTSYNC': _("Enable in-process synchronization via the Linux ntsync driver."),
|
||||
'PW_USE_RAY_TRACING': _("Enable vkd3d support - Ray Tracing"),
|
||||
'PW_USE_NVAPI_AND_DLSS': _("Enable DLSS on supported NVIDIA graphics cards"),
|
||||
'PW_USE_OPTISCALER': _("Enable OptiScaler (replacement upscaler / frame generator)"),
|
||||
'PW_USE_LS_FRAME_GEN': _("Enable Lossless Scaling frame generation (experimental)"),
|
||||
'PW_WINE_FULLSCREEN_FSR': _("FSR upscaling in fullscreen with ProtonGE below native resolution"),
|
||||
'PW_HIDE_NVIDIA_GPU': _("Disguise all NVIDIA GPU features"),
|
||||
'PW_VIRTUAL_DESKTOP': _("Run the application in WINE virtual desktop"),
|
||||
'PW_USE_TERMINAL': _("Run the application in a terminal"),
|
||||
'PW_GUI_DISABLED_CS': _("Disable startup mode and WINE version selector window"),
|
||||
'PW_USE_GAMEMODE': _("Use system GameMode for performance optimization"),
|
||||
'PW_USE_D3D_EXTRAS': _("Enable forced use of third-party DirectX libraries"),
|
||||
'PW_FIX_VIDEO_IN_GAME': _("Fix pink-tinted video playback in some games"),
|
||||
'PW_REDUCE_PULSE_LATENCY': _("Reduce PulseAudio latency to fix intermittent sound"),
|
||||
'PW_USE_US_LAYOUT': _("Force US keyboard layout"),
|
||||
'PW_USE_GSTREAMER': _("Use GStreamer for in-game clips (WMF support)"),
|
||||
'PW_USE_SHADER_CACHE': _("Use WINE shader caching"),
|
||||
'PW_USE_WINE_DXGI': _("Force use of built-in DXGI library"),
|
||||
'PW_USE_EAC_AND_BE': _("Enable Easy Anti-Cheat and BattlEye runtimes"),
|
||||
'PW_USE_SYSTEM_VK_LAYERS': _("Use system Vulkan layers (MangoHud, vkBasalt, OBS, etc.)"),
|
||||
'PW_USE_OBS_VKCAPTURE': _("Enable OBS Studio capture via obs-vkcapture"),
|
||||
'PW_DISABLE_COMPOSITING': _("Disable desktop compositing for performance"),
|
||||
'PW_USE_RUNTIME': _("Use container launch mode (recommended default)"),
|
||||
'PW_DINPUT_PROTOCOL': _("Force DirectInput protocol instead of XInput"),
|
||||
'PW_USE_NATIVE_WAYLAND': _("Enable experimental native Wayland support"),
|
||||
'PW_USE_DXVK_HDR': _("Enable HDR settings under native Wayland"),
|
||||
'PW_USE_GALLIUM_ZINK': _("Use Gallium Zink (OpenGL via Vulkan)"),
|
||||
'PW_USE_GALLIUM_NINE': _("Use Gallium Nine (native DirectX 9 for Mesa)"),
|
||||
'PW_USE_WINED3D_VULKAN': _("Use WineD3D Vulkan backend (Damavand)"),
|
||||
'PW_USE_SUPPLIED_DXVK_VKD3D': _("Use bundled dxvk/vkd3d from Wine/Proton"),
|
||||
'PW_USE_SAREK_ASYNC': _("Use async dxvk-sarek (experimental)")
|
||||
}
|
||||
|
||||
|
||||
def get_advanced_settings(disabled_text, logical_core_options, locale_options,
|
||||
amd_vulkan_drivers, is_amd, numa_nodes):
|
||||
"""Get advanced settings configuration."""
|
||||
from portprotonqt.localization import _
|
||||
|
||||
|
||||
advanced_settings = []
|
||||
|
||||
# 1. Windows version
|
||||
advanced_settings.append({
|
||||
'key': 'PW_WINDOWS_VER',
|
||||
'name': _("Windows version"),
|
||||
'description': _("Changing the WINDOWS emulation version may be required to run older games. WINDOWS versions below 10 do not support new games with DirectX 12"),
|
||||
'type': 'combo',
|
||||
'options': ['11', '10', '7', 'XP'],
|
||||
'default': '10'
|
||||
})
|
||||
|
||||
# 2. DLL Overrides
|
||||
advanced_settings.append({
|
||||
'key': 'WINEDLLOVERRIDES',
|
||||
'name': _("DLL Overrides"),
|
||||
'description': _("Forced to use/disable the library only for the given application.\n\nA brief instruction:\n* libraries are written WITHOUT the .dll file extension\n* libraries are separated by semicolons - ;\n* library=n - use the WINDOWS (third-party) library\n* library=b - use WINE (built-in) library\n* library=n,b - use WINDOWS library and then WINE\n* library=b,n - use WINE library and then WINDOWS\n* library= - disable the use of this library\n\nExample: libglesv2=;d3dx9_36,d3dx9_42=n,b;mfc120=b,n"),
|
||||
'type': 'text',
|
||||
'default': ''
|
||||
})
|
||||
|
||||
# 3. Launch arguments
|
||||
advanced_settings.append({
|
||||
'key': 'LAUNCH_PARAMETERS',
|
||||
'name': _("Launch Arguments"),
|
||||
'description': _("Adding an argument after the .exe file, just like you would add an argument in a shortcut on a WINDOWS system.\n\nExample: -dx11 -skipintro 1"),
|
||||
'type': 'text',
|
||||
'default': ''
|
||||
})
|
||||
|
||||
# 4. CPU cores limit
|
||||
advanced_settings.append({
|
||||
'key': 'PW_WINE_CPU_TOPOLOGY',
|
||||
'name': _("CPU Cores Limit"),
|
||||
'description': _("Limiting the number of CPU cores is useful for Unity games (It is recommended to set the value equal to 8)"),
|
||||
'type': 'combo',
|
||||
'options': [disabled_text] + logical_core_options,
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 5. OpenGL version
|
||||
advanced_settings.append({
|
||||
'key': 'PW_MESA_GL_VERSION_OVERRIDE',
|
||||
'name': _("OpenGL Version"),
|
||||
'description': _("You can select the required OpenGL version, some games require a forced Compatibility Profile (COMP)."),
|
||||
'type': 'combo',
|
||||
'options': [disabled_text, '4.6COMPAT', '4.5COMPAT', '4.3COMPAT', '4.1COMPAT', '3.3COMPAT', '3.2COMPAT'],
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 6. VKD3D feature level
|
||||
advanced_settings.append({
|
||||
'key': 'PW_VKD3D_FEATURE_LEVEL',
|
||||
'name': _("VKD3D Feature Level"),
|
||||
'description': _("You can set a forced feature level VKD3D for games on DirectX12"),
|
||||
'type': 'combo',
|
||||
'options': [disabled_text, '12_2', '12_1', '12_0', '11_1', '11_0'],
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 7. Locale
|
||||
advanced_settings.append({
|
||||
'key': 'PW_LOCALE_SELECT',
|
||||
'name': _("Locale"),
|
||||
'description': _("Force certain locale for an app. Fixes encoding issues in legacy software"),
|
||||
'type': 'combo',
|
||||
'options': [disabled_text] + locale_options,
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 8. Present mode
|
||||
advanced_settings.append({
|
||||
'key': 'PW_MESA_VK_WSI_PRESENT_MODE',
|
||||
'name': _("Window Mode"),
|
||||
'description': _("Window mode (for Vulkan and OpenGL):\nfifo - First in, first out. Limits the frame rate + no tearing. (VSync)\nimmediate - Unlimited frame rate + tearing.\nmailbox - Triple buffering. Unlimited frame rate + no tearing.\nrelaxed - Same as fifo but allows tearing when below the monitors refresh rate."),
|
||||
'type': 'combo',
|
||||
'options': [disabled_text, 'fifo', 'immediate', 'mailbox', 'relaxed'],
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 9. AMD Vulkan driver
|
||||
amd_options = [disabled_text] + amd_vulkan_drivers if is_amd and amd_vulkan_drivers else [disabled_text]
|
||||
advanced_settings.append({
|
||||
'key': 'PW_AMD_VULKAN_USE',
|
||||
'name': _("AMD Vulkan Driver"),
|
||||
'description': _("Select needed AMD vulkan implementation. Choosing which implementation of vulkan will be used to run the game"),
|
||||
'type': 'combo',
|
||||
'options': amd_options,
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
# 10. NUMA node
|
||||
numa_ids = sorted(numa_nodes.keys())
|
||||
numa_options = [disabled_text] + numa_ids if len(numa_ids) > 1 else [disabled_text]
|
||||
advanced_settings.append({
|
||||
'key': 'PW_CPU_NUMA_NODE_INDEX',
|
||||
'name': _("NUMA Node"),
|
||||
'description': _("NUMA node for CPU affinity. In multi-core systems, CPUs are split into NUMA nodes, each with its own local memory and cores. Binding a game to a single node reduces memory-access latency and limits costly core-to-core switches."),
|
||||
'type': 'combo',
|
||||
'options': numa_options,
|
||||
'default': disabled_text
|
||||
})
|
||||
|
||||
return advanced_settings
|
||||
|
||||
|
||||
# Keys that should be recognized as advanced settings
|
||||
ADVANCED_SETTING_KEYS = [
|
||||
'PW_WINDOWS_VER',
|
||||
'WINEDLLOVERRIDES',
|
||||
'LAUNCH_PARAMETERS',
|
||||
'PW_WINE_CPU_TOPOLOGY',
|
||||
'PW_MESA_GL_VERSION_OVERRIDE',
|
||||
'PW_VKD3D_FEATURE_LEVEL',
|
||||
'PW_LOCALE_SELECT',
|
||||
'PW_MESA_VK_WSI_PRESENT_MODE',
|
||||
'PW_AMD_VULKAN_USE',
|
||||
'PW_CPU_NUMA_NODE_INDEX',
|
||||
]
|
||||
@@ -990,104 +990,6 @@ QTabBar::tab:hover {{
|
||||
"""
|
||||
|
||||
WINETRICKS_TABBLE_STYLE = f"""
|
||||
QComboBox {{
|
||||
background: {color_c};
|
||||
border: {border_c} {color_g};
|
||||
border-radius: {border_radius_a};
|
||||
padding-left: 12px;
|
||||
color: {color_f};
|
||||
font-family: '{font_family}';
|
||||
font-size: {font_size_a};
|
||||
min-width: 120px;
|
||||
combobox-popup: 0;
|
||||
}}
|
||||
QComboBox:on {{
|
||||
background: {color_b};
|
||||
border: {border_c} {color_a};
|
||||
border-bottom-style: none;
|
||||
border-top-left-radius: 10px;
|
||||
border-top-right-radius: 10px;
|
||||
border-bottom-left-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
}}
|
||||
QComboBox:hover {{
|
||||
border: {border_c} {color_a};
|
||||
background: {color_a};
|
||||
}}
|
||||
/* Состояние фокуса */
|
||||
QComboBox:focus {{
|
||||
border: {border_c} {color_a};
|
||||
background-color: {color_a};
|
||||
}}
|
||||
QComboBox::drop-down {{
|
||||
subcontrol-origin: padding;
|
||||
subcontrol-position: center right;
|
||||
border-left: {border_b} rgba(255, 255, 255, 0.05);
|
||||
padding: 12px;
|
||||
height: 12px;
|
||||
width: 12px;
|
||||
}}
|
||||
QComboBox::down-arrow {{
|
||||
image: url({theme_manager.get_icon("down", current_theme_name, as_path=True)});
|
||||
padding: 12px;
|
||||
height: 12px;
|
||||
width: 12px;
|
||||
}}
|
||||
QComboBox::down-arrow:on {{
|
||||
image: url({theme_manager.get_icon("up", current_theme_name, as_path=True)});
|
||||
padding: 12px;
|
||||
height: 12px;
|
||||
width: 12px;
|
||||
}}
|
||||
/* Список при открытом комбобоксе */
|
||||
QComboBox QAbstractItemView {{
|
||||
outline: none;
|
||||
background: {color_c};
|
||||
border: {border_c} {color_a};
|
||||
border-top-style: none;
|
||||
border-top-left-radius: 0px;
|
||||
border-top-right-radius: 0px;
|
||||
border-bottom-left-radius: 10px;
|
||||
border-bottom-right-radius: 10px;
|
||||
}}
|
||||
QListView {{
|
||||
background: {color_c};
|
||||
}}
|
||||
QListView::item {{
|
||||
padding: 7px 7px 7px 12px;
|
||||
margin: 3px;
|
||||
border-radius: {border_radius_a};
|
||||
color: {color_f};
|
||||
}}
|
||||
QListView::item:hover {{
|
||||
background: {color_b};
|
||||
}}
|
||||
QListView::item:selected {{
|
||||
background: {color_b};
|
||||
}}
|
||||
/* Выделение в списке при фокусе на элементе */
|
||||
QListView::item:focus {{
|
||||
background: {color_a};
|
||||
color: {color_f};
|
||||
}}
|
||||
QLineEdit {{
|
||||
background: {color_b};
|
||||
border: {border_c} rgba(255, 255, 255, 0.01);
|
||||
border-radius: {border_radius_a};
|
||||
height: 34px;
|
||||
padding-left: 12px;
|
||||
color: {color_f};
|
||||
font-family: '{font_family}';
|
||||
font-size: {font_size_a};
|
||||
}}
|
||||
QLineEdit:hover {{
|
||||
background: {color_c};
|
||||
border: {border_c} {color_a};
|
||||
}}
|
||||
QLineEdit:focus {{
|
||||
border: {border_c} {color_a};
|
||||
background-color: {color_e};
|
||||
}}
|
||||
QTableWidget {{
|
||||
background: {color_c};
|
||||
color: {color_f};
|
||||
@@ -1108,7 +1010,6 @@ QHeaderView::section {{
|
||||
QTableWidget::item {{
|
||||
padding: 8px;
|
||||
border-bottom: 1px solid {color_d};
|
||||
min-height: 36px;
|
||||
}}
|
||||
QTableWidget::item:selected {{
|
||||
background: {color_a};
|
||||
|
||||
@@ -32,7 +32,7 @@ dependencies = [
|
||||
"icoextract>=0.2.0",
|
||||
"numpy>=2.2.4",
|
||||
"orjson>=3.11.3",
|
||||
"pillow>=11.3.0",
|
||||
"pillow>=12.0.0",
|
||||
"psutil>=7.1.0",
|
||||
"pyside6==6.9.1",
|
||||
"pyudev>=0.24.3",
|
||||
|
||||
Reference in New Issue
Block a user