{"id":21689217,"url":"https://github.com/spotlightkid/jack-select","last_synced_at":"2025-04-12T09:25:38.976Z","repository":{"id":62572028,"uuid":"53862447","full_name":"SpotlightKid/jack-select","owner":"SpotlightKid","description":"A systray application to quickly change the JACK-DBus configuration from QjackCtl presets.","archived":false,"fork":false,"pushed_at":"2022-01-17T17:14:10.000Z","size":418,"stargazers_count":15,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-26T04:23:42.610Z","etag":null,"topics":["dbus","desktop","jack-select","jack-server","jackaudio","python","qjackctl","qjackctl-presets","systray-application"],"latest_commit_sha":null,"homepage":"","language":"Python","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/SpotlightKid.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","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":"2016-03-14T14:20:42.000Z","updated_at":"2024-04-16T19:22:14.000Z","dependencies_parsed_at":"2022-11-03T18:26:39.114Z","dependency_job_id":null,"html_url":"https://github.com/SpotlightKid/jack-select","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpotlightKid%2Fjack-select","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpotlightKid%2Fjack-select/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpotlightKid%2Fjack-select/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpotlightKid%2Fjack-select/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SpotlightKid","download_url":"https://codeload.github.com/SpotlightKid/jack-select/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248545239,"owners_count":21122099,"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":["dbus","desktop","jack-select","jack-server","jackaudio","python","qjackctl","qjackctl-presets","systray-application"],"created_at":"2024-11-25T17:21:58.142Z","updated_at":"2025-04-12T09:25:38.947Z","avatar_url":"https://github.com/SpotlightKid.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jack-select\n\nA systray application to quickly change the [JACK] configuration from QjackCtl\npresets via DBus.\n\n[![Latest version](https://shields.io/pypi/v/jack-select)](https://pypi.org/project/)\n[![Date of latest release](https://shields.io/github/release-date/SpotlightKid/jack-select)](https://github.com/SpotlightKid/jack-select/releases)\n![Status](https://shields.io/pypi/status/jack-select)\n[![MIT license](https://shields.io/pypi/l/jack-select)](./LICENSE)\n![Python versions](https://shields.io/pypi/pyversions/jack-select)\n[![Distribution format](https://shields.io/pypi/format/jack-select)](https://pypi.org/project/jack-select/#files)\n\n\nHomepage\n--------\n\n**jack-select** is available from the source code repository on Github:\n\nhttps://github.com/SpotlightKid/jack-select\n\nThere you can report issues and suggest new features or contribute via pull\nrequests. Releases can be downloaded from the Python Package Index ([PyPI]).\n**jack-select** is also available as an Arch Linux package from the Arch User\nRepository ([AUR]).\n\n[PyPI]: https://pypi.org/project/jack-select\n[AUR]: https://aur.archlinux.org/packages/jack-select/\n\n\nOverview\n--------\n\nThis application displays an icon in the system tray (also known as\nnotification area) of your desktop, which shows the status of the JACK audio\nserver and when you click on it, a menu pops up, which lets you quickly select\nfrom the JACK configuration presets you created with [QjackCtl]. When you\nselect a preset, its JACK engine and driver configuration settings are loaded\nvia DBus into JACK and then the server is restarted. This allows you to switch\nbetween different audio setups with just two mouse clicks.\n\n![Screenshot of the pop menu](screenshot.png)\n\nMenu entries for presets, which refer to ALSA devices currently not available\n(e.g. those provided by USB interfaces, which are currently un-plugged), will\nbe deactivated. The application will detect changes in the sound device\nconfiguration via udev and update the menu accordingly (this behaviour can\nbe disabled via a command line option).\n\nWhen you hover with the mouse pointer over the systray icon and JACK is\nrunning, a tooltip will show you the name of the active preset (if known), the\nmost important parameters of the current setup and some server statistics.\n\n![Server status tooltip](tooltip.png)\n\nThe entries in the \"ALSA-MIDI Bridge\" sub-menu allow to configure and start and\nstop the *a2jmidi* service.\n\nLastly, there are menu entries to stop the JACK server and to quit the\napplication.\n\nTo create or edit presets, just use the QjackCtl configuration dialog and make\nsure you close it with \"Ok\" so the changes are saved. **jack-select** will pick\nup the changes automatically.\n\n\nDBus Interface\n--------------\n\n**jack-select** also has a DBus interface, which means you can use any generic\nDBus client to tell **jack-select** to open its menu, activate a preset by name\nor to terminate itself. You can also run the `jack-select` command while\nanother instance is already running, to access some of the DBus service\nmethods.\n\nWhen **jack-select** starts up, it first checks whether there is already an\nexisting application providing the **jack-select** DBus service. If yes, when\ncalled with no command argument arguments, it tells the running **jack-select**\ninstance to open its menu.\n\nIf a preset name is passed as the first positional command-line argument the\npreset is activated immediately at application startup. If another instance of\n**jack-select** is already running, **jack-select** will tell the existing\ninstance to activate the preset. An invalid preset name is silently ignored.\n\nFor details about the DBus interface, please use DBus introspection facilities\nto examine the `de.chrisarndt.JackSelectService` service on the session bus.\n\n\nInstallation\n------------\n\nTo install **jack-select** on your system for everybody, check and install the\nrequirements below and then get **jack-select** by either downloading a release\narchive from the Python Package Index ([PyPI]) and unpack it or clone the\nsource code repository from Github:\n\n    $ git clone https://github.com/SpotlightKid/jack-select\n\nThen change into the directory created by unpacking the release archive or\ncloning the repository and run `make install`:\n\n    $ cd jack-select\n    $ [sudo] make PREFIX=/usr install\n\nThis will install the `jack-select` executable, the `jackselect` Python\npackage, the `jack-select.1` man page and the `jack-select.desktop` file and\nthe `jack-select.png` icon to provide a desktop start menu entry. It will also\ninstall the required Python dependencies if they haven't been installed yet.\n\nIf you want to install **jack-select** only for the current user, replace the\nlast command above with:\n\n    $ make install-user\n\nThis will not install the man page.\n\nYou can start **jack-select** from your desktop's XDG-compatible start menu or\nadd or link the `jack-select.desktop` file into your autostart folder (e.g.\n`~/.config/autostart`) to have it started along your with your desktop.\n\n**Note:**\nIf you do not have installed `PyGObject` and/or `dbus-python` via your\ndistribution's package system yet, running the install command given above will\ntry to install them via Python setuptools from the Python Package Index (PyPI).\nThis will most likely require a compiler and some development packages to be\ninstalled, since not all indirect dependencies are available on PyPI as binary\nwheels for Linux. If this fails, try installing the packages `build-essential`,\n`python-dev` and `libcairo2-dev` (assuming your Linux distribution is a\ndebian/Ubuntu variant) and try again.\n\nIf `dbus-python` is installed via your distribution's package system, you may\nget the following error when running **jack-select**:\n\n    pkg_resources.DistributionNotFound: The 'dbus-python' distribution was not found and is required by jack-select\n\nThis means that `dbus-python` was not installed in a setuptools-compatible way.\nUnfortunately this seems to be the case on most major Linux distributions.\nAs a workaround, you can install a working version of `dbus-python` from PyPI\nonly for your current user:\n\n    pip install --user dbus-python\n\n\nRequirements\n------------\n\nThis application works with the DBus-version of JACK only. It is written in\nPython 3 using the [PyGObject] bindings for GTK 3. Python 2 is not supported.\n\nIn addition to PyGObject, the following third-party Python libraries are\nrequired:\n\n* [pyxdg](http://freedesktop.org/Software/pyxdg)\n* [dbus-python](https://www.freedesktop.org/wiki/Software/DBusBindings/)\n* [pyudev](http://pyudev.readthedocs.org/)\n\nThese may be available from the package repository of your distribution as\n`python-gobject`, `python-xdg`, `python-dbus` and `python-pyudev` respectively.\nThey come with their own dependencies, which are not listed here.\n\nIf you want to install **jack-select** from a Git repository clone, you'll also\nneed the Python [docutils](http://docutils.sourceforge.net) to build the man\npage from the ReST source.\n\n\n[JACK]: http://jackaudio.org/\n[PyGObject]: https://wiki.gnome.org/Projects/PyGObject\n[QjackCtl]: http://qjackctl.sourceforge.net/\n\n\nLicense\n-------\n\n**jack-select** is licensed under the MIT License.\n\nPlease see the file `LICENSE` for more information.\n\n\nAuthor\n------\n\n**jack-select** was written by Christopher Arndt 2016 - 2022.\n\n\nAcknowledgements\n----------------\n\n**jack-select** incorporates the `pyudev_gobject` library written by Sebastian\nWiesner and released under the LGPL 2.1. See the header of the\n`jackselect/pyudev_gobject.py` file for license details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspotlightkid%2Fjack-select","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspotlightkid%2Fjack-select","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspotlightkid%2Fjack-select/lists"}