{"id":22136903,"url":"https://github.com/mscherer/joycon2click","last_synced_at":"2025-03-24T10:21:12.360Z","repository":{"id":145849033,"uuid":"568046334","full_name":"mscherer/joycon2click","owner":"mscherer","description":"Linux software to convert Joycon to presentation clicker","archived":false,"fork":false,"pushed_at":"2025-03-17T14:48:33.000Z","size":83,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-17T15:43:07.856Z","etag":null,"topics":["joycon","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/mscherer.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-11-19T09:26:05.000Z","updated_at":"2025-03-17T14:48:31.000Z","dependencies_parsed_at":"2024-12-09T14:30:48.980Z","dependency_job_id":"bdac1fd2-fbb5-4ac8-ac2e-a195ac158c4e","html_url":"https://github.com/mscherer/joycon2click","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mscherer%2Fjoycon2click","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mscherer%2Fjoycon2click/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mscherer%2Fjoycon2click/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mscherer%2Fjoycon2click/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mscherer","download_url":"https://codeload.github.com/mscherer/joycon2click/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245249210,"owners_count":20584497,"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":["joycon","rust"],"created_at":"2024-12-01T19:29:16.208Z","updated_at":"2025-03-24T10:21:12.335Z","avatar_url":"https://github.com/mscherer.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"A quickly written software to convert button push on a Joycon (Nintendo Switch \ncontroller) to a regular keypress in order to pass on the next slide on Libreoffice.\n\n# Usage\n\nBuild with `cargo build -r`, run `target/release/joycon2click`.\n\nRun Libreoffice (or anything using left and right) in full screen.\n\nOnce the Joycon is connected, the triggers (L, R, ZL, ZR) and buttons on the right (right arrow on the Dpad for left Joycon, A for the right Joycon) will\ngo to the next slide, and Y and Left arrow will go back to the previous slide by pushing Left and Right.\n\n# Bugs\n\n## Uinput and root account\n\nThe system requires write access to /dev/uinput, which requires root access.\n\nThe easiest is to use `chmod o+rw /dev/uinput`, but this is a blunt fix.\n\nA more restricted fix would be: `setfacl -m u:$(id -un):rw /dev/uinput`, which restrict uinput\nto the current user.\n\nBe aware that opening uinput this way mean that any software can start injecting key press. For example, \na malware could type commands when you are using a terminal, etc. \n\nA last potential fix is to start the software as root and use the option `-u someuser` to switch to a unprivilged user after /dev/uinput is opened. Make sure to switch to either the user on the console, or a user in the `input` group.\n\n## Multiple joycon support\n\nOnly 1 joycon is supported (usually, the 1st one attached, but no garantee on that). Multiple joycons support is out of scope.\n\n## Do not detect joycon disconnection\n\nIf the joycon is disconnected, nothing happen. If it reconnect, the software will stop, unless if `-b` is given on the commandline.\n\n# Alternatives\n\nA few people have wrote softwares similar to that one, I list them here for reference:\n\n* https://github.com/HonbraDev/joyclicker-rs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmscherer%2Fjoycon2click","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmscherer%2Fjoycon2click","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmscherer%2Fjoycon2click/lists"}