{"id":19856351,"url":"https://github.com/joesiu/rainmeterautolayout","last_synced_at":"2025-05-02T01:31:30.653Z","repository":{"id":192219829,"uuid":"686287444","full_name":"JoeSiu/RainMeterAutoLayout","owner":"JoeSiu","description":"A rainmeter skin that will automatically switch to a specific layout on resolution changes","archived":false,"fork":false,"pushed_at":"2024-11-08T14:52:19.000Z","size":9,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T20:47:48.259Z","etag":null,"topics":["customization","rainmeter","rainmeter-rmskin","rainmeter-skin","rainmeter-skins"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JoeSiu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-02T09:42:16.000Z","updated_at":"2025-03-22T17:27:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"6320fe05-59c7-4eb7-8f8f-f1fe80f0c345","html_url":"https://github.com/JoeSiu/RainMeterAutoLayout","commit_stats":null,"previous_names":["joesiu/rainmeterautolayout"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeSiu%2FRainMeterAutoLayout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeSiu%2FRainMeterAutoLayout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeSiu%2FRainMeterAutoLayout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeSiu%2FRainMeterAutoLayout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JoeSiu","download_url":"https://codeload.github.com/JoeSiu/RainMeterAutoLayout/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251969423,"owners_count":21673200,"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":["customization","rainmeter","rainmeter-rmskin","rainmeter-skin","rainmeter-skins"],"created_at":"2024-11-12T14:15:19.394Z","updated_at":"2025-05-02T01:31:30.647Z","avatar_url":"https://github.com/JoeSiu.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RainMeterAutoLayout\n\nA rainmeter skin that will automatically switch to a specific layout on resolution changes. I often need to connect / disconnect multiple monitors, and Rainmeter seems doesn't provide a way to auto switch the layout when that happens, I will need to manually switch layout everytime that happens, which is annoying.\n\nSo far I only found a tool named [RainRez](https://forum.rainmeter.net/viewtopic.php?t=10471) that offers similar functionality, but it only checks the default monitor's resolution, and requires running a separate .exe file, therefore I decided to make my own...\n\n## Demo\n\nAs shown, the skin will automatically switch to 3 different layouts based on the connected display resolutions.\n\nhttps://github.com/user-attachments/assets/656fe6ce-43f9-4bd4-a699-9d300eef3a3b\n\n## Installation\n\n1. Download the `.rmskin` file from the [Releases](https://github.com/JoeSiu/RainMeterAutoLayout/releases/latest) section.\n2. Double click the `.rmskin` file to install the skin.\n\n## Usage\n\n1. To utilize AutoLayout, you must first load the `AutoLayout/Main.ini` for each layout you want to switch to, and then save the layout.\n   ![image](https://github.com/user-attachments/assets/ac7bc74c-6ff8-4642-8001-4986009dc0a3)\n   ![image](https://github.com/user-attachments/assets/04772a9f-3b48-4351-802f-975ce38f239d)\n2. Find the configuration file `Variables.inc` located at `~YourRainMeterSkinFolder\\AutoLayout\\@Resources\\` (In Rainmeter, right-click on the folder, then select `Open folder`)\n   ![image](https://github.com/user-attachments/assets/a74cc265-2ae2-4470-bae6-5ebbd2365565)\n4. Edit the file using any text editor, specifically the `LayoutMap` variable. Refer to section [LayoutMap](#layoutmap) for detail.\n   ![image](https://github.com/user-attachments/assets/cf050aac-5d2b-4d7e-a2de-760eeaff2a26)\n6. Refresh the layout, it will now monitor any resolution changes, and auto switch to the associated layout in ``LayoutMap`` if provided.\n\n### Configs\n\n| Variables             | Description                                                                                                                                          | Default |\n| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |\n| `EnableMonitoring`    | Determines whether resolution monitoring is enabled (0 to disable, 1 to enable).                                                                     | 1       |\n| `EnableDebugString`   | Determines whether the debug string meter is displayed at the center of the screen (0 to disable, 1 to enable).                                      | 0       |\n| `OnLoadDelayTime`     | Delay time (in seconds) after the skin is loaded before starting the resolution monitoring.                                                          | 5       |\n| `EnableDefaultLayout` | Determines whether to fallback to the `DefaultLayout` if no resolution layout is found after a resolution change (0 to disable, 1 to enable).        | 0       |\n| `DefaultLayout`       | Specifies the default layout name to fallback to. This is only used if `EnableDefaultLayout` is set to 1.                                            |         |\n| `LayoutMap`           | Associates resolutions with layouts.\u003cbr /\u003eFormat: `{virtual screen width}x{virtual screen height}={layout name}`, separated by `LayoutMapDelimiter`. |         |\n| `LayoutMapDelimiter`  | The delimiter used in `LayoutMap`.                                                                                                                   | \"\\|\"    |\n\n#### LayoutMap\n\n- The term \"virtual screen\" refers to the screen that encompasses all display monitors. For example, if two horizontally aligned monitors with resolutions of `2560x1440` and `1920x1080`, the virtual screen size would be `4480x1440`. Refer to [Rainmeter documentation](https://docs.rainmeter.net/manual/measures/sysinfo/#Monitor) for info.\n- In the `LayoutMap` variable, if for example value `\"4480x1440=Layout 1|2560x1440=Layout 2|1920x1080=Layout 3\"` is provided:\n  - Both the 1440p and 1080p monitors are connected → switch to `Layout 1`\n  - Only the 1440p monitor is connected → switch to `Layout 2`\n  - Only the 1080p monitor is connected → switch to `Layout 3`\n\n## Note\n\n- The skin will check resolution changes every second, modify the [skin's update rate](https://github.com/JoeSiu/RainMeterAutoLayout/blob/9f94f5701e5a4d54b572e97680d19852c6bfc2f6/AutoLayout/Main.ini#L9) if needed.\n- Check [Rainmeter's log](https://docs.rainmeter.net/manual/user-interface/about/#LogTab) for log messages from the skin.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoesiu%2Frainmeterautolayout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoesiu%2Frainmeterautolayout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoesiu%2Frainmeterautolayout/lists"}