Add per-game virtual desktop resolution configuration#14
Open
aegispotae wants to merge 1 commit intoitalomandara:mainfrom
Open
Add per-game virtual desktop resolution configuration#14aegispotae wants to merge 1 commit intoitalomandara:mainfrom
aegispotae wants to merge 1 commit intoitalomandara:mainfrom
Conversation
Adds Wine registry (.reg) file parsing and per-game resolution
configuration to Procyon, based on CXRes logic.
## New Files
- Procyon/Util/WineRegistry.swift — Generic Wine .reg file parser
- Parses user.reg into sections with typed key-value pairs
(string, dword, hex, expandString)
- Read, edit, and write back preserving original formatting
- Backup system: first save creates ".orig",
subsequent saves create ".procyon-backup"
- Procyon/Util/Resolution.swift — Resolution configuration
- BottleResolutionManager reads/writes Software\\Wine\\Explorer and
Software\\Wine\\Explorer\\Desktops registry keys to toggle
virtual desktop and set resolution
- ResolutionState holds current state (enabled, resolution, DPI)
- detectDisplayProfiles() detects connected displays for quick presets
## Modified Files
- Procyon/Types.swift — Added virtualDesktopEnabled and
virtualDesktopResolution to both GameOptionsData and GameOptions
- Procyon/Components/GameOptionsView.swift
- "Resolution (Virtual Desktop)" section for non-native games
with toggle, resolution text field, and display detection buttons
- Loads current resolution state from bottle's user.reg on appear
- Procyon/Util/Launcher.swift
- Applies per-game resolution to user.reg before launch
- Only writes if resolution actually changed (avoids unnecessary I/O)
- .gitignore — Added .DS_Store and xcuserdata/
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Owner
|
Thanks for your contribution, this will take some time to review it's quite a big one |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.origand.procyon-backup)user.regat game launch time (only if changed)New Files
Procyon/Util/WineRegistry.swift— Generic Wine.regfile parser (read/edit/write with format preservation)Procyon/Util/Resolution.swift—BottleResolutionManagerfor resolution configurationModified Files
Procyon/Types.swift— AddedvirtualDesktopEnabledandvirtualDesktopResolutionto game optionsProcyon/Components/GameOptionsView.swift— Resolution UI section for non-native gamesProcyon/Util/Launcher.swift— Applies per-game resolution before launch.gitignore— Added.DS_Storeandxcuserdata/Test plan
user.regis updated with correct resolution.origbackup is created on first write.procyon-backupis created on subsequent writes🤖 Generated with Claude Code