{"id":26275968,"url":"https://github.com/phenax/chelleport","last_synced_at":"2026-02-13T13:37:00.822Z","repository":{"id":269049679,"uuid":"902893419","full_name":"phenax/chelleport","owner":"phenax","description":"Control your mouse pointer with your keyboard by searching text on screen","archived":false,"fork":false,"pushed_at":"2025-01-01T06:59:12.000Z","size":424,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-04T07:07:50.249Z","etag":null,"topics":["keyboard","keyboard-shortcuts","mouse","mouseless","ocr","poweruser","sdl2","tesseract","x11"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phenax.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,"zenodo":null}},"created_at":"2024-12-13T13:40:57.000Z","updated_at":"2025-01-01T06:59:16.000Z","dependencies_parsed_at":"2024-12-20T15:40:47.538Z","dependency_job_id":"54be06ad-2c4b-43e2-ab69-2607f9690d1e","html_url":"https://github.com/phenax/chelleport","commit_stats":null,"previous_names":["phenax/chelleport"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phenax/chelleport","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phenax%2Fchelleport","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phenax%2Fchelleport/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phenax%2Fchelleport/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phenax%2Fchelleport/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phenax","download_url":"https://codeload.github.com/phenax/chelleport/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phenax%2Fchelleport/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264939599,"owners_count":23686208,"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":["keyboard","keyboard-shortcuts","mouse","mouseless","ocr","poweruser","sdl2","tesseract","x11"],"created_at":"2025-03-14T10:19:30.890Z","updated_at":"2026-02-13T13:36:55.783Z","avatar_url":"https://github.com/phenax.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chelleport\nControl your mouse pointer entirely with your keyboard.\n\n\u003e Note: Current it only supports Linux running X11 display server with a compositor, because that's what I use. Might look into supporting more systems if there is interest.\n\n\n## Modes\n- **Labelled Hints mode (default. `ctrl+t`)**: Displays a grid overlay on your screen, where each cell is labeled with a unique two-key combination. Press the corresponding keys to move the cursor to the desired cell.\n- **Text Search mode (`ctrl+s`)**: Uses OCR to identify and highlight words on the screen, allowing you to fuzzy search for text and move the cursor directly to matching text.\n\n\n---\n\nhttps://github.com/user-attachments/assets/2f095f9c-d75e-468d-83f1-32f4b637b63d\n\n---\n\n\n## Features\n- **Search by text**:\n  - Use OCR to locate any visible text on the screen and position your cursor precisely.\n- **Click**:\n  - Press `space` left clicks at current mouse position.\n  - Press `shift+space` left clicks and show the grid again.\n- **Select text/Drag-n-drop**:\n  - Press `ctrl+v` starts dragging/selecting/holding down left mouse button.\n  - Press `space` to stop dragging.\n  - Press `ctrl+v` again to stop dragging and show the grid again.\n- **Double click**:\n  - Press `2` followed by `space` will click twice.\n  - Any digit key followed by `space` will click that many times.\n- **Right click**:\n  - Pressing `minus` key right clicks at current mouse position.\n  - Holding `shift` key right clicks and shows the grid again.\n- **Granular movement**:\n  - Once you match with a label on the screen, you can use `hjkl` keys to move your cursor.\n  - Holding `shift` key will use bigger steps for movements.\n  - You can also repeat movement by pressing a digit before the movement. Eg: `5k` moves 5 small steps up. `5K` moves 5 big steps up.\n\n\n## Install\n- Clone the repo and build it yourself: `cabal build chelleport` or `nix build`\n- Nix flakes users can try it out by running: `nix run github:phenax/chelleport#chelleport`\n\n\n## Usage\nUse [sxhkd](https://github.com/baskerville/sxhkd), [shotkey](https://github.com/phenax/shotkey), your window manager or any other key binding manager to set up a keybinding for `chelleport`.\n\n### CLI\n- `chelleport --help` to see help menu\n- `chelleport -m \u003cmode\u003e` to start in given mode. Allowed `search` or `hints`. `hints` by default\n\n### Hints mode (`ctrl+t` to switch to hints mode)\n- With the grid open, type any of the key sequences shown on the grid to move the pointer there\n- Once a match is found, you can now use `hjkl` keys to make smaller movements. Hold `shift` + `hjkl` to move in bigger increments.\n- Press `space` to click\n\n### Search mode (`ctrl+s` to switch to search mode or run with `chelleport -m search`)\n- Words that are recognized by OCR will be highlighted\n- Type the characters in one of the words to move the cursor to it\n- Press `ctrl+n` \u0026 `ctrl+p` to go to next/previous match respectively\n- NOTE: The startup is a little slow currently taking ~1 second to run ocr. Will keep optimizing to get this down.\n- Press `ctrl+r` to reload the OCR results if contents on the page changed\n\n\n## Feedback and Support\nInterested in extending platform compatibility or new features? Let me know! Contributions and suggestions are welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphenax%2Fchelleport","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphenax%2Fchelleport","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphenax%2Fchelleport/lists"}