{"id":17703435,"url":"https://github.com/randoragon/mousemode","last_synced_at":"2026-05-03T06:36:31.832Z","repository":{"id":176069841,"uuid":"296736684","full_name":"Randoragon/mousemode","owner":"Randoragon","description":"An intuitive, home-row mouse replacement.","archived":false,"fork":false,"pushed_at":"2021-04-16T13:02:28.000Z","size":11782,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-06-17T12:19:31.832Z","etag":null,"topics":["keyboard","linux","mouse-emulation","xorg"],"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/Randoragon.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":"2020-09-18T21:51:34.000Z","updated_at":"2024-05-30T00:57:09.714Z","dependencies_parsed_at":null,"dependency_job_id":"a36b02d2-3773-485b-b9de-c5ee537da3cc","html_url":"https://github.com/Randoragon/mousemode","commit_stats":null,"previous_names":["randoragon/mousemode"],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/Randoragon/mousemode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Randoragon%2Fmousemode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Randoragon%2Fmousemode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Randoragon%2Fmousemode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Randoragon%2Fmousemode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Randoragon","download_url":"https://codeload.github.com/Randoragon/mousemode/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Randoragon%2Fmousemode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32560884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T03:21:47.309Z","status":"ssl_error","status_checked_at":"2026-05-03T03:21:43.884Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["keyboard","linux","mouse-emulation","xorg"],"created_at":"2024-10-24T20:23:02.201Z","updated_at":"2026-05-03T06:36:31.815Z","avatar_url":"https://github.com/Randoragon.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mousemode\n\n## Description\n\nA dead-simple, reliable keyboard interface for moving the mouse cursor and pressing buttons. When the program\nis executed, mousemode will:\n\n1. allow you to use vim or arrow keys to move the mouse cursor\n2. holding \"c\" will greatly decrease cursor speed\n3. holding \"f\" will double the speed (can be combined with \"c\")\n4. [a,s,d] keys correspond to left, middle and right mouse buttons\n5. [e, y] keys correspond to scroll wheel down and up\n6. \"q\" exits the program\n\nDuring execution, all unmapped keys should behave as though mousemode is not running,\nincluding adding modifiers to the mapped keys.\n\n![preview](preview.gif)\n\nmousemode is aimed at laptop power users that are annoyed with touchpads or people that in general find themselves\nin a position uncomfortable to be using the mouse via conventional means. The \"f\" and \"c\" keybindings feel a bit\nstrange at first, but I wanted to avoid standard modifiers like shift and control, because some programs have\nshortcuts with those (for example vim, if you enable the mouse feature, selects differently when you hold shift).\n\nMany similar programs to mousemode will lock the entire keyboard when active. mousemode only locks what is absolutely\nnecessary, because it is targeted at people with keyboard-driven workflows, who often use global keyboard shortcuts\nto switch around windows, workspaces, etc. Once you memorize all the keys, you're in charge.\n\n---\n\nmousemode does NOT use Xlib events. In fact, by nature it does not distinguish between key presses and releases.\nInstead, it reads the keyboard state 60 times a second and emulates mouse clicks/movement accordingly. This\nsynchronous nature allows it to be very simple and reliable (only about 120 lines of code).\n\n## Installation\n\nFor arch users, you can install the [AUR package](https://aur.archlinux.org/packages/mousemode-git/) `mousemode-git`.\nIf you're not an arch user, the building process is very straight forward.\n\n## Building\n\nYou should only need Xlib, which is widely available on virtually all linux distributions. You very likely\nalready have it installed!\n\nRun the following (if necessary, as root):\n\n    make install\n\nThe resulting binary will be installed at `/usr/local/bin/mousemode`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandoragon%2Fmousemode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frandoragon%2Fmousemode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandoragon%2Fmousemode/lists"}