{"id":22913740,"url":"https://github.com/andis-sprinkis/swayscale","last_synced_at":"2026-05-19T03:12:46.103Z","repository":{"id":266744427,"uuid":"899228552","full_name":"andis-sprinkis/swayscale","owner":"andis-sprinkis","description":"Per-application display scaling on Linux using the Sway WM instances","archived":false,"fork":false,"pushed_at":"2024-12-20T15:31:43.000Z","size":66,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-14T09:06:38.979Z","etag":null,"topics":["display","dpi","font-resolution","forced-scaling","linux","per-application-scaling","resolution","scaling","sway","wayland","wlroots","x11"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andis-sprinkis.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-05T21:19:27.000Z","updated_at":"2024-12-20T15:31:46.000Z","dependencies_parsed_at":"2025-04-01T11:49:10.539Z","dependency_job_id":"0d03f14a-c65b-419e-ba4e-95c4435a1524","html_url":"https://github.com/andis-sprinkis/swayscale","commit_stats":null,"previous_names":["andis-sprinkis/swayscale"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andis-sprinkis/swayscale","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andis-sprinkis%2Fswayscale","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andis-sprinkis%2Fswayscale/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andis-sprinkis%2Fswayscale/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andis-sprinkis%2Fswayscale/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andis-sprinkis","download_url":"https://codeload.github.com/andis-sprinkis/swayscale/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andis-sprinkis%2Fswayscale/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259790455,"owners_count":22911547,"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":["display","dpi","font-resolution","forced-scaling","linux","per-application-scaling","resolution","scaling","sway","wayland","wlroots","x11"],"created_at":"2024-12-14T05:11:22.821Z","updated_at":"2026-05-19T03:12:46.061Z","avatar_url":"https://github.com/andis-sprinkis.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Per-application display scaling on Linux using the Sway WM instances\n\nA demonstration of a bit hacky, but simple method for getting **per-application display scaling** on Linux desktop.\n\nPurpose of this is to better display the user interfaces of older applications, that do not normally scale up to the modern screen resolutions and therefore appear tiny.\n\nIt is done by containing the target application windows in a [Sway window manager](https://swaywm.org/) instance virtual display window, with a custom output scale applied.\n\n**Running Sway as the host graphical environment is not required.** Sway can be launched in a window under X11 and Wayland. This is why I think this solution should work OK in most Linux GUI environments.\n\nThis repository is not a library, so just copy and modify these files to suit your needs.\n\n## Usage\n\nTo launch application `ddd` at the display output scale multiplied by `1.25`:\n\n```sh\nswayscale \"1.25\" \"ddd\"\n```\n\n## Setup\n\n1. Install `sway`, `xorg-xwayland`.\n1. Copy the repository files under the respective locations in your `$HOME` directory.\n   \n   ```sh\n   git clone \"https://github.com/andis-sprinkis/swayscale\"\n   cd \"./swayscale\"\n   mkdir -p \"${XDG_CONFIG_HOME:-$HOME/.config}/sway\" \"$HOME/.local/bin\"\n   cp \".local/bin/swayscale\" \"$HOME/.local/bin/swayscale\"\n   cp \".config/sway/custom_scale\" \"${XDG_CONFIG_HOME:-$HOME/.config}/sway/custom_scale\"\n   chmod +x \"$HOME/.local/bin/swayscale\"\n   ```\n1. Ensure that the directory path `$HOME/.local/bin/` is in the `$PATH` variable.\n\n   Add the line to `.profile` / `.bash_profile` / `.zshenv` and re-login:\n   \n   ```sh\n   export PATH=\"$HOME/.local/bin:$PATH\"\n   ```\n\nYou may have to update `font sans-serif medium` in the `exec` line at the bottom of `.config/sway/custom_scale` to a font identifier that actually exists on the system (run `fc-list`).\n\n## Desktop files\n\nTo launch the upscaled application from the application launcher of a Linux desktop environment, a Desktop file can be created in `${XDG_DATA_HOME:-$HOME/.local/share}/applications/` directory.\n\nSee the example [`ddd_upscaled.desktop`](./.local/share/applications/ddd_upscaled.desktop) file.\n\nRelated specifications: [\"Desktop Entry Specification\"](https://specifications.freedesktop.org/desktop-entry-spec/latest/), [\"Association between MIME types and applications\"](https://specifications.freedesktop.org/mime-apps-spec/latest/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandis-sprinkis%2Fswayscale","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandis-sprinkis%2Fswayscale","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandis-sprinkis%2Fswayscale/lists"}