{"id":13780449,"url":"https://github.com/artizirk/wdisplays","last_synced_at":"2025-10-21T13:06:12.581Z","repository":{"id":43656407,"uuid":"352569661","full_name":"artizirk/wdisplays","owner":"artizirk","description":"Mirror of cyclopsian/wdisplays","archived":false,"fork":true,"pushed_at":"2024-05-31T18:57:23.000Z","size":333,"stargazers_count":183,"open_issues_count":14,"forks_count":14,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-03T18:15:06.873Z","etag":null,"topics":["arandr","sway","wayland","wlroots","xrandr"],"latest_commit_sha":null,"homepage":"https://web.archive.org/web/20210204184506/https://github.com/cyclopsian/wdisplays","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"MichaelAquilina/wdisplays","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/artizirk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-29T08:28:32.000Z","updated_at":"2024-08-02T06:56:43.000Z","dependencies_parsed_at":"2023-01-19T15:40:36.158Z","dependency_job_id":null,"html_url":"https://github.com/artizirk/wdisplays","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artizirk%2Fwdisplays","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artizirk%2Fwdisplays/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artizirk%2Fwdisplays/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artizirk%2Fwdisplays/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/artizirk","download_url":"https://codeload.github.com/artizirk/wdisplays/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225056824,"owners_count":17414217,"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":["arandr","sway","wayland","wlroots","xrandr"],"created_at":"2024-08-03T18:01:15.817Z","updated_at":"2025-10-21T13:06:12.219Z","avatar_url":"https://github.com/artizirk.png","language":"C","funding_links":[],"categories":["Display Configuration"],"sub_categories":["Hybrid"],"readme":"# wdisplays\n\n[![License: GPL 3.0 or later][license-img]][license-spdx]\n\nwdisplays is a graphical application for configuring displays in Wayland\ncompositors. It borrows some code from [kanshi]. It should work in any\ncompositor that implements the wlr-output-management-unstable-v1 protocol.\nCompositors that are known to support the protocol are [Sway] and [Wayfire].\nThe goal of this project is to allow precise adjustment of display settings in\nkiosks, digital signage, and other elaborate multi-monitor setups.\n\n![Screenshot](wdisplays.png)\n\n# Installation\n\n[![Repology][repology-img]][repology-pkg]\n\nCheck your distro for a `wdisplays` package. Known distro packages:\n\n- [Alpine](https://pkgs.alpinelinux.org/package/edge/testing/x86_64/wdisplays)\n- [Arch](https://aur.archlinux.org/packages/wdisplays-git/)\n- [Debian](https://packages.debian.org/sid/wdisplays)\n- [Fedora](https://packages.fedoraproject.org/pkgs/wdisplays/wdisplays)\n- [FreeBSD](https://svnweb.freebsd.org/ports/head/x11/wdisplays/)\n- [Nix](https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/graphics/wdisplays)\n- [OpenSUSE](https://build.opensuse.org/package/show/home%3AMWh3/wdisplays)\n\n# Building\n\nBuild requirements are:\n\n- meson\n- GTK+3\n- epoxy\n- wayland-client\n\n```sh\nmeson build\nninja -C build\nsudo ninja -C build install\n```\n\n# Usage\n\nDisplays can be moved around the virtual screen space by clicking and dragging\nthem in the preview on the left panel. By default, they will snap to one\nanother. Hold Shift while dragging to disable snapping. You can click and drag\nwith the middle mouse button to pan. Zoom in and out either with the buttons on\nthe top left, or by holding Ctrl and scrolling the mouse wheel. Fine tune your\nadjustments in the right panel, then click apply.\n\nThere are some options available by clicking the menu button on the top left:\n\n- Automatically Apply Changes: Makes it so you don't have to hit apply. Disable\n  this for making minor adjustments, but be careful, you may end up with an\n  unusable setup.\n- Show Screen Contents: Shows a live preview of the screens in the left panel.\n  Turn off to reduce energy usage.\n- Overlay Screen Names: Shows big names in the corner of all screens for easy\n  identification. Disable if they get in the way.\n\n# FAQ\n\n### What is this?\n\nIt's intended to be the Wayland equivalent of an xrandr GUI, like [ARandR].\n\n### I'm using Sway, why aren't my display settings saved when I log out?\n\nSway, like i3, doesn't save any settings unless you put them in the config\nfile. See man `sway-output`. If you want to have multiple configurations\ndepending on the monitors connected, you'll need to use an external program\nlike [kanshi] or [way-displays]. Integration with that and other external\ndaemons is planned.\n\n### How do I add support to my compositor?\n\nA minimal amount of code (approximately 150-200 LOC) is currently required to\nget support for this in wlroots compositors. See the diff here for a sample\nimplementation on top of tinywl: [tinywl-output-management].\n\n[kanshi]: https://github.com/emersion/kanshi\n[way-displays]: https://github.com/alex-courtis/way-displays\n[Sway]: https://swaywm.org\n[Wayfire]: https://wayfire.org\n[ARandR]: https://christian.amsuess.com/tools/arandr/\n[tinywl-output-management]: https://git.sr.ht/~jf/tinywl-output-management/commit/87a45d89ae0e7975e2a59f84e960380dd2f5ac08\n\n[license-img]:  https://img.shields.io/badge/License-GPL%203.0%20or%20later-blue.svg?logo=gnu\n[license-spdx]: https://spdx.org/licenses/GPL-3.0-or-later.html\n[repology-img]: https://repology.org/badge/tiny-repos/wdisplays.svg\n[repology-pkg]: https://repology.org/project/wdisplays/versions\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartizirk%2Fwdisplays","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartizirk%2Fwdisplays","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartizirk%2Fwdisplays/lists"}