invcble / NoMoreBorder

GUI Python app for Borderless behaviour
MIT License
66 stars 3 forks source link

Add custom resolution and multiple monitor support #4

Closed codewitchio closed 4 months ago

codewitchio commented 4 months ago

I was using this to play FTL but ran into an issue with the game that's designed to be 720p not being a great experience to play in full screen on my 32 inch 4k monitor since the game was designed for smaller screens. All dialog and text would span the full 32 inches and would be impossible to read. So I decided to add support for picking what resolution you want the window to be, so I could select a resolution that's somewhere between "too small" and "too big".

This is my first time writing Python in years so feel free to point out anything weird.

I also added support for multiple monitors while I was at it. This aims to address #2 and I'm not sure I fully understood #1 but this might be an improvement for that issue too. I believe more can be done to allow truly custom inputs for exact resolutions and positions but I honestly found working with CTK Entry boxes to be annoying. If anyone else wants to extend this, feel free.

This changes how settings are saved and the "apps" list is now a dict. Functionality has been added to load_settings to support and update old settings to the new type, but this has not been tested extensively. Another point is that I'm not sure how consistent it is to use "Display 1" as a key in that dict, I'm not entirely sure what happens when screens are plugged in or out.

Also, note that the screeninfo package is now required to compile the app.

PS. Great little app! I've been getting a lot of use out of it for old games.

invcble commented 4 months ago

Wow, Great initiative! I am travelling right now, so give me some time to review the code and test it. Thank you for the pull request.