{"id":15115066,"url":"https://github.com/designer-living/sunshine_utils","last_synced_at":"2025-09-27T19:31:30.615Z","repository":{"id":162160718,"uuid":"636740175","full_name":"designer-living/sunshine_utils","owner":"designer-living","description":null,"archived":false,"fork":false,"pushed_at":"2023-08-21T12:51:21.000Z","size":13848,"stargazers_count":71,"open_issues_count":4,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-09-26T01:47:12.156Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/designer-living.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-05-05T14:30:10.000Z","updated_at":"2024-09-20T18:13:57.000Z","dependencies_parsed_at":"2024-01-05T12:19:16.220Z","dependency_job_id":"c79b05ae-3cec-4baa-bc4c-ec7dedd85369","html_url":"https://github.com/designer-living/sunshine_utils","commit_stats":null,"previous_names":["designer-living/sunshine_utils"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/designer-living%2Fsunshine_utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/designer-living%2Fsunshine_utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/designer-living%2Fsunshine_utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/designer-living%2Fsunshine_utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/designer-living","download_url":"https://codeload.github.com/designer-living/sunshine_utils/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234453730,"owners_count":18835115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-26T01:43:40.132Z","updated_at":"2025-09-27T19:31:29.974Z","avatar_url":"https://github.com/designer-living.png","language":"Python","funding_links":["https://www.buymeacoffee.com/githubfoxy82"],"categories":["🛠️ Tools"],"sub_categories":["✴️ Third-Party Moonlight Clients"],"readme":"# Sunshine Utils\n\nSunshine Utils offers some useful utils for using with Sunshine / Moonlight / Playnite game streaming.\n\nIf this helps you please consider buying me a coffee as a token of appreciation.\n\n\u003ca href=\"https://www.buymeacoffee.com/githubfoxy82\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 60px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n\n1. `resolution_change` - a Windows utility to change the screen resolution before a gaming session and reset it after\n\n## resolution_change\n\n### Basic setup\n\n1. Copy `resolution_change.exe` to a folder on your computer - I use `C:\\Program Files\\sunshine_utils`\n2. In Sunshine Add a \"Command Perparations\" \n   1. In the \"Do\" box set the resolution you want e.g. `C:\\Program Files\\sunshine_utils\\resolution_change.exe -p 1080p`\n   2. In the \"Undo\" box to reset the resolution: `C:\\Program Files\\sunshine_utils\\resolution_change.exe -r`\n3. If using this with Playnite use the following in the \"Command\" for Playnite `\"C:\\\u003cPLAYNITE_FOLDER\u003e\\Playnite.FullscreenApp.exe\" --hidesplashscreen`\n\n![](docs/static/playnite_setup.png)\n\n### Advanced Customization\n\n```\nusage: resolution_change.py [-h] [-l] [--width WIDTH] [--height HEIGHT]\n                            [--refreshrate REFRESHRATE] [-d DISPLAY]\n                            [--detach-other-monitors] [-p PRESET] [-r]\n                            [--detach-monitor] [--wait WAIT] [--debug]\n\nChanges monitor resolution\n\noptions:\n  -h, --help            show this help message and exit\n  -l, --list-displays   List current displays and exit\n  --width WIDTH         Resolution Width\n  --height HEIGHT       Resolution Height\n  --refreshrate REFRESHRATE\n                        The refresh rate in hertz\n  -d DISPLAY, --display DISPLAY\n                        Which display to use e.g. \\\\.\\DISPLAY1 (defaults to\n                        current primary)\n  --detach-other-monitors\n                        Detach other monitors except the named one\n  -p PRESET, --preset PRESET\n                        A preset to use can be one of: 4k, 2k, 1080p, 800p, 720p\n  -r, --reset           Reset the resolution that a previous run has changed\n  --detach-monitor      Detach the named display\n  --wait WAIT           Time in seconds to wait after changing resolution\n                        before exiting\n  --debug               Enable debug mode so the program won't exit after\n                        running\n```\n\nYou can list out displays on your machine using `-l` or `--list-displays` this will show the current enabled displays\n\nBy default, the primary monitor's resolution will be changed. You can target resolution changes to a particular display using `-d` or `--display` e.g. `resolution_change.exe --width 1920 --height 1080 -d \"\\\\.\\DISPLAY2\"`\n\nYou can detach all other monitors using `--detach-other-monitors`\n\nOr you can just detach a named monitor using `--detact-monitor`\n\nTo return your settings back to normal call `--reset`\n\nNot all of these have been tested please raise an issue if you find any.\n\n## Development\n\nThis is a Windows based utilities so development needs to be done on Windows.\n\n### Developer Dependencies\n1. Install [Python 3.11](https://www.python.org/) for Windows, ensuring that you select \"Add Python to PATH\" during installation.\n2. Install [pipenv](https://pypi.org/project/pipenv/) via `pip install pipenv`.\n3. Install [git](https://git-scm.com/download/win) for windows\n\n### Developer Setup\n1. Open a command prompt\n2. Clone this repo\n3. In the repo directory run `python.exe -m venv venv`\n4. To active the venv run `.\\venv\\Scripts\\activate.bat` \n5. Run `pipenv install` to install the dependencies\n6. To run locally `python resolution_change.py -p 1080p`\n7. When finished to deactive the virtual env `.\\venv\\Scripts\\deactivate.bat`\n\n### To Build the exe\n1. Activate the venv as above (and ensure you have installed the dependencies)\n2. Run `build.bat`\n3. You will find the exe in the dist folder\n\n# Contributions\n\nA big thank you goes out to [cgarst](https://github.com/cgarst). \nHe wrote [gamestream_launchpad](https://github.com/cgarst/gamestream_launchpad) a lot\nof the code in this repo uses his methods for changing the resolution. Also thanks to\n[ventorvar](https://github.com/ventorvar) whose pull request on gamestream_launchpad helped\nwith multi monitor support.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdesigner-living%2Fsunshine_utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdesigner-living%2Fsunshine_utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdesigner-living%2Fsunshine_utils/lists"}