{"id":20161797,"url":"https://github.com/bakkeby/encircle","last_synced_at":"2026-03-27T03:09:38.957Z","repository":{"id":59161019,"uuid":"533750637","full_name":"bakkeby/encircle","owner":"bakkeby","description":"A Xinerama X cursor monitor wrapper","archived":false,"fork":false,"pushed_at":"2023-05-15T13:39:28.000Z","size":15,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T00:32:47.031Z","etag":null,"topics":["mouse-movement","mouse-tracking","x11-cursor","xinerama","xinput"],"latest_commit_sha":null,"homepage":"","language":"C","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/bakkeby.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":"2022-09-07T12:13:47.000Z","updated_at":"2024-01-15T09:01:41.000Z","dependencies_parsed_at":"2024-11-14T00:21:02.587Z","dependency_job_id":"96d85cb6-3ed7-4f31-b957-fd7bb44458b2","html_url":"https://github.com/bakkeby/encircle","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/bakkeby/encircle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakkeby%2Fencircle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakkeby%2Fencircle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakkeby%2Fencircle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakkeby%2Fencircle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bakkeby","download_url":"https://codeload.github.com/bakkeby/encircle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakkeby%2Fencircle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31013961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T02:58:54.984Z","status":"ssl_error","status_checked_at":"2026-03-27T02:58:46.993Z","response_time":164,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["mouse-movement","mouse-tracking","x11-cursor","xinerama","xinput"],"created_at":"2024-11-14T00:20:55.881Z","updated_at":"2026-03-27T03:09:38.911Z","avatar_url":"https://github.com/bakkeby.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `encircle`: A Xinerama X cursor monitor wrapper\n\n`encircle` is a window manager agnostic tool that wraps your X cursor around the\nedges of the screen and is specifically designed to work with asymmetric\nmulti-monitor Xinerama setups.\n\nIn practice what this means is that the screen area is turned into a flat\ntorus in that when the cursor hits a screen edge then it will continue and\nreappear on the opposite edge.\n\nIf the cursor position is not within the target screen then the cursor will\nsnap to the nearest edge of that screen.\n\nBy default cursor wrapping is enabled on both horizontal and vertical axes.\n\n```c\n   ┌───────┐\n   │     1┄┤\n   │       │┌───────────────^─┐┌───────┐\n   │       │├┄1┄\u003e           4 ││       │\n   │       ││                 ││       │\n   │   A   ││        B        ││   C   │\n   │       ││                 ││       │\n   ├┄2     │├┄3┄\u003e             ││   \u003c┄2┄┤\n   │       │└───────────────^─┘│       │\n   │     3┄┤                   │       │\n   └───────┘                   └───────┘\n```\n\nIn the above example we have four transitions:\n   1) snaps to the adjacent monitor (rather than hitting a hard wall)\n   2) wraps the cursor from monitor A to monitor C which is the rightmost monitor\n   3) snaps to the adjacent monitor (rather than hitting a hard wall)\n   4) wraps around monitor B because there is no other monitor above or below\n\nIf the monitor arrangement is changed (e.g. using xrandr) then encircle will be\nnotified of that and update monitor positions and dimensions accordingly.\n\n## Installation\n\n```\n$ git clone https://github.com/bakkeby/encircle.git\n$ cd encircle\n$ sudo make install\n$ encircle\n```\n\nThis is also available in the [AUR](https://aur.archlinux.org/packages/encircle).\n\n## Dependencies\n\n### Arch\n\n- base-devel\n- extra/libxinerama\n- libxi\n\n```sh\nsudo pacman -S base-devel extra/libxinerama libxi\n```\n\n### Debian\n\n- build-essential\n- libxinerama-dev\n- libxi-dev\n\n```sh\nsudo apt install build-essential libxinerama-dev libxi-dev\n```\n\n### Void\n\n- base-devel\n- libXinerama-devel\n- libXi-devel\n\n```sh\nxbps-install -Su base-devel libXinerama-devel libXi-devel\n```\n\n## Credits\n\nThis work is largely derived from the [dwm](https://dwm.suckless.org/) window manager in relation\nto its handling of monitors in a Xinerama setup. The work is inspired by\n[xoop](https://mcol.xyz/code/xoop/) and [taralli](https://github.com/kmcallister/taralli).\n\n## License\n\n`encircle` is available under an MIT license. See the `LICENSE` file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbakkeby%2Fencircle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbakkeby%2Fencircle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbakkeby%2Fencircle/lists"}