{"id":21085527,"url":"https://github.com/heinrichad/libxdo","last_synced_at":"2025-05-16T11:31:24.033Z","repository":{"id":45607164,"uuid":"147844428","full_name":"HeinrichAD/libxdo","owner":"HeinrichAD","description":"Node.js wrapper: fake keyboard/mouse input, window management, and more using X11’s XTEST extension and other Xlib functions","archived":false,"fork":false,"pushed_at":"2022-02-08T11:34:35.000Z","size":28,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-03T23:41:28.418Z","etag":null,"topics":["automation","desktop","keyboard","libxdo","mouse","screen","x11","xdotool","xlib"],"latest_commit_sha":null,"homepage":"https://github.com/jordansissel/xdotool","language":"JavaScript","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/HeinrichAD.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}},"created_at":"2018-09-07T15:50:07.000Z","updated_at":"2025-02-06T12:11:18.000Z","dependencies_parsed_at":"2022-08-24T00:51:09.624Z","dependency_job_id":null,"html_url":"https://github.com/HeinrichAD/libxdo","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/HeinrichAD%2Flibxdo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeinrichAD%2Flibxdo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeinrichAD%2Flibxdo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeinrichAD%2Flibxdo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HeinrichAD","download_url":"https://codeload.github.com/HeinrichAD/libxdo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254521847,"owners_count":22084991,"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":["automation","desktop","keyboard","libxdo","mouse","screen","x11","xdotool","xlib"],"created_at":"2024-11-19T20:34:33.279Z","updated_at":"2025-05-16T11:31:19.018Z","avatar_url":"https://github.com/HeinrichAD.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libxdo\nNode.js wrapper to use [libxdo/xdotool](https://github.com/jordansissel/xdotool).\n\nfake keyboard/mouse input, window management, and more using X11’s XTEST extension and other Xlib functions\n\n## This project is NOT mantained anymore!\n\nThis library is still incomplete. Unfortunaly, I don't have time for this project anymore.\n\n**If someone wants to take over the project, I'm happy to give them the appropriate permissions to the repository.**\n\n\n# Example\n```node\n'use strict';\n\n// nvm use lts/*\n// node .\n\n//-----------------------------------------------------------------------------\n// EXAMPLE IN C   ( gcc -lxdo example.c )\n//-----------------------------------------------------------------------------\n// #include \u003cxdo.h\u003e\n//\n// void main() {\n//   xdo_t *xdo = xdo_new(NULL);\n//   //xdo_send_keysequence_window(xdo, CURRENTWINDOW, \"Ctrl+Q\", 0);\n//   xdo_enter_text_window(xdo, CURRENTWINDOW, \"Hello @!\", 500*1000);\n//   xdo_free(xdo);\n// }\n//-----------------------------------------------------------------------------\n\n\n//---------------------------------------------------------\n// EXAMPLE VERSION 1\n//---------------------------------------------------------\n\n// const libxdo = require('./libxdo.js');\n\n// let xdo = libxdo.xdo_new(null);\n// if (xdo.isNull()) { console.log(\"Oh no! Couldn't create object!\"); return -1; }\n// //libxdo.xdo_send_keysequence_window(xdo, libxdo.CURRENTWINDOW, \"Ctrl+Q\", 0);\n// libxdo.xdo_enter_text_window(xdo, libxdo.CURRENTWINDOW, \"Hello @!\", 500*1000);\n// libxdo.xdo_free(xdo);\n\n\n//---------------------------------------------------------\n// EXAMPLE VERSION 2   ( a little bit more C feeling )\n//---------------------------------------------------------\n\nconst {\n  xdo_new,\n  xdo_enter_text_window,\n  //xdo_send_keysequence_window,\n  xdo_free,\n  CURRENTWINDOW\n} = require('libxdo');\n\nlet xdo = xdo_new(null);\nif (xdo.isNull()) { console.log(\"Oh no! Couldn't create object!\"); return -1; }\n//xdo_send_keysequence_window(xdo, CURRENTWINDOW, \"Ctrl+Q\", 0);\nxdo_enter_text_window(xdo, CURRENTWINDOW, \"Hello @!\", 500*1000);\nxdo_free(xdo);\n```\n\n\n# Contribution and Inspirations\n- [https://github.com/jordansissel/xdotool](https://github.com/jordansissel/xdotool)\n- [https://github.com/jordansissel/xdotool/blob/master/xdo.h](https://github.com/jordansissel/xdotool/blob/master/xdo.h)   \u003c-- sourced from here\n- [https://github.com/node-ffi/node-ffi/wiki/Node-FFI-Tutorial#common-usage](https://github.com/node-ffi/node-ffi/wiki/Node-FFI-Tutorial#common-usage)\n- [https://stackabuse.com/how-to-create-c-cpp-addons-in-node/](https://stackabuse.com/how-to-create-c-cpp-addons-in-node/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheinrichad%2Flibxdo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheinrichad%2Flibxdo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheinrichad%2Flibxdo/lists"}