{"id":13596691,"url":"https://github.com/mi4code/onscreen-hid","last_synced_at":"2025-04-09T16:33:53.940Z","repository":{"id":153051078,"uuid":"604997425","full_name":"mi4code/onscreen-hid","owner":"mi4code","description":"fully customizable onscreen keyboard and touchpad app written in python and HTML","archived":false,"fork":false,"pushed_at":"2023-04-14T17:47:55.000Z","size":56,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-01T16:46:06.125Z","etag":null,"topics":["hid","html","html-css-javascript","onscreen-keyboard","onscreen-touchpad","osk","python","python3","virtual-keyboard","virtual-keyboard-python","virtual-touchpad"],"latest_commit_sha":null,"homepage":"","language":"Python","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/mi4code.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}},"created_at":"2023-02-22T08:17:12.000Z","updated_at":"2023-05-04T18:07:25.000Z","dependencies_parsed_at":"2024-01-15T16:47:59.556Z","dependency_job_id":null,"html_url":"https://github.com/mi4code/onscreen-hid","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mi4code%2Fonscreen-hid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mi4code%2Fonscreen-hid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mi4code%2Fonscreen-hid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mi4code%2Fonscreen-hid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mi4code","download_url":"https://codeload.github.com/mi4code/onscreen-hid/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223403712,"owners_count":17139943,"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":["hid","html","html-css-javascript","onscreen-keyboard","onscreen-touchpad","osk","python","python3","virtual-keyboard","virtual-keyboard-python","virtual-touchpad"],"created_at":"2024-08-01T16:02:40.340Z","updated_at":"2024-11-06T19:33:38.734Z","avatar_url":"https://github.com/mi4code.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Onscreen HID\nFully customizable onscreen keyboard and touchpad app written in python and HTML.\n\n\n### Features\n * customizable UI written in HTML\n * full hardware-like keyboard\n * touchpad with basic gestures (tap, double tap, scolling, right click)\n * option to override system keyboard layout\n \n### Installation\n * install [pywebview from my fork](https://github.com/mi4code/pywebview) `pip install https://github.com/mi4code/pywebview/archive/window-take_focus.zip`\n * install [pynput](https://github.com/moses-palmer/pynput) or [keyboard](https://github.com/boppreh/keyboard) and [mouse](https://github.com/boppreh/mouse) modules\n * then clone this repo and run the `oshid.py` file\n \n### Configuration\n there are 3 places where you can edit something\n * `oshid.py` - [variables on the begining](https://github.com/mi4code/onscreen-hid/blob/master/oshid.py#37)\n * `ui.html` = UI file \n    There are [some CSS variables](https://github.com/mi4code/onscreen-hid/blob/master/ui.html#5) to make basic customization easier.\n    If you want custom UI you can build your own (just use same `ids` and callbacks - `window.pywebview.api.key_down(\u003cid\u003e);` `window.pywebview.api.key_up(\u003cid\u003e);`).\n * `keys.csv` = layout/key mapping file\n   \n\n### Known bugs and limitations\n * touchpad doesnt work on all systems (some treat touch as mouse so the mouse pointer gets placed to the touch location)\n * dead keys arent currently supported in custom layout mode (as workaround use [Unicode combining diacritical marks](https://www.unicodemap.org/range/7/Combining_Diacritical_Marks/) (U+0301 - U+036F)) \n * touchpad doesnt support zooming since its not mouse feature\n\n\n### TODOs\n * settings GUI\n * monitoring caps/num/scroll lock\n * dead keys\n * handwriting/speech to text\n * act as bluetooth/USB HID device (Linux)\n * apply layout to hardware keyboard (Windows -\u003e export to *.klc; Linux -\u003e export to ???)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmi4code%2Fonscreen-hid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmi4code%2Fonscreen-hid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmi4code%2Fonscreen-hid/lists"}