{"id":16816131,"url":"https://github.com/zeripath/sensible-cvsb983","last_synced_at":"2025-10-19T00:22:33.852Z","repository":{"id":64694045,"uuid":"27180947","full_name":"zeripath/Sensible-CVSB983","owner":"zeripath","description":"UInput implementation capturing the input from a CVSB-983 USB IR remote and simulating a more sensible response for each button.","archived":false,"fork":false,"pushed_at":"2015-02-12T17:45:33.000Z","size":168,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-23T22:31:12.774Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeripath.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-26T14:39:39.000Z","updated_at":"2024-02-09T22:26:45.000Z","dependencies_parsed_at":"2022-12-14T19:15:58.616Z","dependency_job_id":null,"html_url":"https://github.com/zeripath/Sensible-CVSB983","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/zeripath%2FSensible-CVSB983","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeripath%2FSensible-CVSB983/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeripath%2FSensible-CVSB983/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeripath%2FSensible-CVSB983/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeripath","download_url":"https://codeload.github.com/zeripath/Sensible-CVSB983/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244038098,"owners_count":20387825,"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":[],"created_at":"2024-10-13T10:37:26.253Z","updated_at":"2025-10-19T00:22:33.764Z","avatar_url":"https://github.com/zeripath.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Sensible-CVSB983\n================\n\nThe CVSB983 is a cheap USB IR remote that simulates a keyboard and mouse.\nUnfortunately there are a couple of problems with the keyboard implementation,\nnot only do multiple keystrokes get presented but sometimes the same key in a \nseries of keystrokes can be presented leading to confusing and strange\nbehaviour. (For example, the Rewind button reports a Left, then adds Ctrl and\nShift. It then releases the left key, before adding in R. This means that Rewind\nand Left can easily be confused.)\n\nThis software uses EVIOGRAB to grab and hold the input event device associated\nwith this device, interprets the keystrokes and then creates keystrokes on a \nvirtual device created with udev and uinput.\n\nIn my case the usb device has the id: 1d57_ad02 and this is hardwired into\ncode. You may need to adjust device address for your device.\n\nAn example of a product that code was built for is:\n\nhttp://www.amazon.co.uk/gp/product/B00DSKA6BW\n\nInstalling on the Raspberry Pi (and Pi 2!)\n==========================================\n\nYou will need to install libudev-dev:\n\n```\n:; sudo apt-get install libudev-dev\n```\n\nYou'll also need to have a basic build-environment:\n\n```\n:; sudo apt-get install build-essential\n```\n\nOnce you have these change in to Sensible-CVSB983 directory and use make\nto build.\n\nAs Kodi/XBMC grabs the event devices, you need to start Sensible-CVSB983 before it.\n\n```\n:; ### Raspbmc uses upstart, so to get this to start on startup you will need to:\n:; sudo cp sensible-cvsb983.conf /etc/init \n```\n\n```\n:; ### OSMC uses systemd, so to get this to start on startup you will need to:\n:; sudo cp sensible-cvsb983.service /etc/systemd/system/multi-user.target.wants/\n```\n\nThen restart the Pi and you should get a more sensible behaving remote.\n\nKeycodes emitted for each Key\n=============================\n\nI have chosen to emit different keys for the special keys - mostly because I \nuse a harmony remote. Admittedly some of these choices may seem non-sensible\nbut looking at the code it should be easy a downstream user to change these to\nmore appropriately suit their use. In any case the below are my choices:\n\n| Key | Mapping|\n|-----|--------|\n| *POWER*    | Seems rather intermittant and I was unable to get any sensible behaviour out of this I wouldn't be surprised if it was being sent down the mouse event\n| *EMAIL*        | Normally would have sent a KEY_EMAIL, however, I have chosen to send a KEY_C \n| *WWW*          | Normally would have sent a KEY_HOMEPAGE. I have chosen to send KEY_I\n| *CLOSE*        | `KEY_M`\n| *GREEN (A)*    | `KEY_RED`\n| *ORANGE (B)*   | `KEY_GREEN`\n| *BLUE (C)*     | `KEY_YELLOW`\n| *YELLOW (D)*   | `KEY_BLUE`\n|                | To match the harmony names for these keys and to match the normal layout for colours\n| *Switch Windows* | `KEY_Q`\n| *Folder*       | `KEY_O`\n| *Full Screen*  | `KEY_HOME`\n| *Desktop*      |       `KEY_END`\n| *FastForward*  | `KEY_F`\n| *Rewind*       | `KEY_R`\n\nThe numlock key doesn't actually send a code - it just changes the keys the usb device sends. As I do not use this\nI have not dealt with this case. You would need to adjust the parser code to account for the reported keys and either\npass them through or change them. Remember to add any key codes emitted to the set_key_bits function.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeripath%2Fsensible-cvsb983","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeripath%2Fsensible-cvsb983","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeripath%2Fsensible-cvsb983/lists"}