{"id":15981278,"url":"https://github.com/ivaradi/jsprog","last_synced_at":"2026-04-09T01:32:03.392Z","repository":{"id":53760190,"uuid":"340866608","full_name":"ivaradi/jsprog","owner":"ivaradi","description":"Flexible programming of your joysticks","archived":false,"fork":false,"pushed_at":"2025-09-07T12:21:04.000Z","size":6569,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-08T19:42:58.640Z","etag":null,"topics":["dbus","debian","evdev","flight-controller","flight-simulation","game-controller","games","gio","gnome","gtk3","joystick","linux","lua","python","python3","ubuntu","uinput"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivaradi.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":"2021-02-21T09:49:36.000Z","updated_at":"2025-08-17T17:37:50.000Z","dependencies_parsed_at":"2024-10-30T08:02:09.571Z","dependency_job_id":null,"html_url":"https://github.com/ivaradi/jsprog","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ivaradi/jsprog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivaradi%2Fjsprog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivaradi%2Fjsprog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivaradi%2Fjsprog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivaradi%2Fjsprog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivaradi","download_url":"https://codeload.github.com/ivaradi/jsprog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivaradi%2Fjsprog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31581864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["dbus","debian","evdev","flight-controller","flight-simulation","game-controller","games","gio","gnome","gtk3","joystick","linux","lua","python","python3","ubuntu","uinput"],"created_at":"2024-10-08T00:43:05.934Z","updated_at":"2026-04-09T01:32:03.365Z","avatar_url":"https://github.com/ivaradi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JSProg - Joystick Programmer\n\nThis program can be used to assign various key-presses or mouse movements\nto be executed when you press a button on your joystick or move an axis.\nIt is possible to define some controls or combinations thereof as\n*shift* states, allowing you to use certain controls for several\npurposes depending on the actual shift state. For example,\nin case of a flight simulator, if your controller has a view hat,\nit can act as a view hat to look around in the neutral shift state,\nbut in another shift state it may be programmed to bring up camera\npresets to show different parts of the instrument panels.\n\nThe actions to be executed are implemented as Lua scripts at the lowest\nlevel ensuring flexibility. However, configuration is usually done at a\nhigher level using the GUI (e.g. simply specifying key combinations to\nbe \"pressed\" when a button is hit). Yet, it is possible to provide Lua\nsnippets to be executed for cases not covered by the higher-level\nconfiguration support.\n\nThe program handles joystick type definitions. A few are provided,\nbut one can easily create and edit such definitions within the GUI.\nThe type definitions include proper naming of the various buttons and\naxes instead of the default generated by the program and possibly\none or more pictures of the controller labeled with those names.\n\nIt is possible to define several *profiles* for a certain type of\njoysticks. A profile can be defined to be automatically loaded when\na joystick of the given type is plugged into the computer.\n\nAs of now, there is no separate manual or other user documentation\nfor the software. However, the GUI has many detailed tooltips, which\ncan help using it.\n\n## Installing\n\n### Ubuntu Bionic, Focal, Jammy and Kinetic\n\nThe Ubuntu packaged version of the application is available in a PPA,\nand can be installed as follows:\n\n```bash\nsudo add-apt-repository ppa:ivaradi/jsprog\nsudo apt-get install jsprog-client\n```\n\n### Debian Bullseye\n\nThe Debian packaged version of the application can be installed from the OpenSuSE\nbuild service:\n\n```bash\nsudo wget -nv -O /etc/apt/trusted.gpg.d/jsprog.asc https://download.opensuse.org/repositories/home:/ivaradi/Debian_11/Release.key\n\necho \"deb https:download.opensuse.org/repositories/home:/ivaradi/Debian_11/ /\" | sudo tee -a /etc/apt/sources.list.d/jsprog.list\n\nsudo apt-get update\nsudo apt-get install jsprog-client\n```\n\nIt is recommended to install the `gnome-shell-extension-appindicator` package,\nand enable it in the GNOME Shell. If so, all controllers will have a small icon\nin the top bar with a menu.\n\n## Building\n\nJSProg requires the following packages as prerequisites for building:\n\n* automake\n* autoconf\n* libtool\n* C++ compiler\n* glib \u003e= 2.0\n* gio \u003e= 2.0\n* Lua library \u003e= 5.2\n* libxml \u003e= 2.0\n* Python \u003e= 3.6\n* Python 3 DBus package\n* Python 3 GI package with the following repositories: Gdk 3.0, Gtk 3.0, Gio, GLib,\n  GdkPixbuf, cairo, Pango, PangoCairo 1.0 and optionally AppIndicator3 0.1\n\nThe software can be built after cloning the Git repository as follows:\n\n1. `git submodule init`\n1. `git submodule update`\n1. `./autogen.sh`\n1. `./configure`\n1. `make`\n1. `make install`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivaradi%2Fjsprog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivaradi%2Fjsprog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivaradi%2Fjsprog/lists"}