{"id":17722777,"url":"https://github.com/bramp/libcec-daemon","last_synced_at":"2025-10-08T20:54:12.548Z","repository":{"id":2552886,"uuid":"3531306","full_name":"bramp/libcec-daemon","owner":"bramp","description":"A Linux daemon for connecting libcec to uinput. That is, using your TV to control your PC!","archived":false,"fork":false,"pushed_at":"2020-09-09T02:47:47.000Z","size":75,"stargazers_count":68,"open_issues_count":14,"forks_count":26,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-30T22:48:07.944Z","etag":null,"topics":["c-plus-plus","libcec","linux","uinput"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bramp.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":"2012-02-24T00:19:50.000Z","updated_at":"2025-04-03T21:04:15.000Z","dependencies_parsed_at":"2022-09-12T11:51:20.874Z","dependency_job_id":null,"html_url":"https://github.com/bramp/libcec-daemon","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/bramp%2Flibcec-daemon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bramp%2Flibcec-daemon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bramp%2Flibcec-daemon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bramp%2Flibcec-daemon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bramp","download_url":"https://codeload.github.com/bramp/libcec-daemon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251795386,"owners_count":21645019,"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":["c-plus-plus","libcec","linux","uinput"],"created_at":"2024-10-25T15:39:21.242Z","updated_at":"2025-10-08T20:54:12.393Z","avatar_url":"https://github.com/bramp.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"libcec-daemon\n=============\nA simple daemon to connect libcec to uinput. That is, using your TV to control your PC!\nby Andrew Brampton\n\nLicence\n=======\nCurrently under the GPL, but only because libcec (on which we depend) is under\nthe GPL. I have full intentions to relicence this project as BSD when libcec\nchanges to either LGPL, or I do not need to depend on it anymore.\n\nBuild\n=====\n* Checkout the main source\n\n```\ngit clone git://github.com/bramp/libcec-daemon.git\n```\n\n* Now we need some buildtools and libraries\n\n```\nsudo apt-get install build-essential autoconf \nsudo apt-get install libboost-program-options-dev libboost-thread-dev libboost-system-dev liblog4cplus-dev\n```\n\n* Also we need the libcec (version 3.x) libraries. Pulse eight provides east way to install\n\n```\napt-get install libcec-dev libcec-platform-dev\n\n# or manually build them:\nwget http://packages.pulse-eight.net/ubuntu/install-libcec.sh\nsudo bash install-libcec.sh\n```\n\n* Now build libcec-daemon\n\n```\ncd libcec-daemon\n./bootstrap \u0026\u0026 ./configure \u0026\u0026 make\n```\n\nUsage\n====\n```\nUsage: libcec-daemon [options] [usb]\n\nAllowed options:\n  -h [ --help ]             show help message\n  -V [ --version ]          show version (and exit)\n  -d [ --daemon ]           daemon mode, run in background\n  -l [ --list ]             list available CEC adapters and devices\n  -v [ --verbose ]          verbose output (use -vv for more)\n  -q [ --quiet ]            quiet output (print almost nothing)\n  -a [ --donotactivate ]    do not activate device on startup\n  --onstandby \u003cpath\u003e        command to run on standby\n  --onactivate \u003cpath\u003e       command to run on activation\n  --ondeactivate \u003cpath\u003e     command to run on deactivation\n  -p [ --port ] [a[.b.c.d]\u003e HDMI port A or address A.B.C.D (overrides \n                            autodetected value)\n  --usb \u003cpath\u003e              USB adapter path (as shown by --list)\n\nHDMI port A can be specified as tv.1 or av.1 for HDMI port 1 on respectively the\nTV or a connected Audio System. 0 digit is optional for either port or physical\naddress, so that tv.0 is equivalent to just tv. Similarily, addresses such as\n1, 1.0, 1.0.0 and 1.0.0.0 are also equivalent. Specifying 0 by itself is the same\nas omitting the port argument, implying that the HDMI port will be autotected.\nTo summarize, to force libcec-daemon to manage TV HDMI port 1, the following\ncan be used:\n      -p tv.1\n      -p 1\n      -p 1.0.0.0\nThe daemon will not work properly if it fails to detect the HDMI port, in which\ncase the port should be specified manually.\n\nIt is possible to run commands to react to a certain TV/AV events such as:\n     - power off/standby event (--onstandby)\n     - HDMI port switched in (--onactivate)\n     - HDMI port switched out (--ondeactivate)\nThe \u003cpath\u003e argument should specify a command or script that is executable by the\ndefault shell for the user running libcec-daemon, usually /bin/sh for root user.\nTypically, scripts would suspend/shutdown the host whenever a standby event is\nreceived for power saving, and screensaver and/or media play/pause control could\nbe hooked to activation or deactivation events. Currently, The command is run\nright after the event has occurred, therefore it cannot be invalidated/prevented\nby the former returning an exit code other than 0 for example.\n\nA libcec-daemon can be instantiated for each HDMI-CEC adapter available to the\nhost hardware, and the daemon will automatically use to the first detected one.\nIf more than one adapter is available, they should be specified by the usb\nargument using either its sys-path or dev-path as listed by the --list argument.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbramp%2Flibcec-daemon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbramp%2Flibcec-daemon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbramp%2Flibcec-daemon/lists"}