{"id":15007403,"url":"https://github.com/buzz/volctl","last_synced_at":"2026-03-03T19:03:12.278Z","repository":{"id":21683575,"uuid":"25004804","full_name":"buzz/volctl","owner":"buzz","description":"Per-application volume control and OSD for Linux desktops.","archived":false,"fork":false,"pushed_at":"2025-03-22T15:38:55.000Z","size":380,"stargazers_count":139,"open_issues_count":7,"forks_count":19,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-24T18:04:56.071Z","etag":null,"topics":["linux-desktop","osd","pavucontrol","python","tray-icon","volume"],"latest_commit_sha":null,"homepage":"https://buzz.github.io/volctl/","language":"Python","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/buzz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2014-10-09T19:20:48.000Z","updated_at":"2025-04-20T05:14:35.000Z","dependencies_parsed_at":"2025-05-18T00:45:46.568Z","dependency_job_id":null,"html_url":"https://github.com/buzz/volctl","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/buzz/volctl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzz%2Fvolctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzz%2Fvolctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzz%2Fvolctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzz%2Fvolctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buzz","download_url":"https://codeload.github.com/buzz/volctl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzz%2Fvolctl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30056056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"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":["linux-desktop","osd","pavucontrol","python","tray-icon","volume"],"created_at":"2024-09-24T19:09:38.467Z","updated_at":"2026-03-03T19:03:12.273Z","avatar_url":"https://github.com/buzz.png","language":"Python","readme":"# volctl\n\nPer-application volume control and OSD for Linux desktops.\n\n![Screenshot](https://buzz.github.io/volctl/screenshot.png)\n\nI couldn't find a simple tray icon that allows to control multiple\napplications easily from the task bar. So I wrote my own.\n\n**Bug reports and patches welcome!**\n\nIt's not meant to be an replacement for a full-featured mixer\napplication. If you're looking for that check out the excellent\n[pavucontrol](http://freedesktop.org/software/pulseaudio/pavucontrol/).\n\n## Features\n\n* Runs on virtually every desktop environment (Needs to support the freedesktop system tray specs)\n* Control main volumes as well as individual applications\n* Mute individual applications\n* Shows application icons and names\n* Per-application VU meter\n* Double-click opens *pavucontrol* (or custom mixer application)\n* Mouse-wheel support\n* On-screen volume display (OSD)\n\n## Installation\n\n### Manual installation\n\n1. Clone this repository somewhere and cd into it.\n1. To install: `pip install --user .`\n   Note: You might need to copy `data/apps.volctl.gschema.xml` to `~/.local/share/glib-2.0/schemas/` manually.\n1. For the application icon to show up in the menu: `update-desktop-database ~/.local/share/applications/`\n1. Compile GSettings schemas: `glib-compile-schemas ~/.local/share/glib-2.0/schemas/`\n\n### Arch Linux\n\nAvailable in AUR: [volctl](https://aur.archlinux.org/packages/volctl/)\n\n## Status/tray icon implementation\n\nvolctl strives to achieve a high level of support across different Desktop\nEnvironments. Unfortunately, on the Linux Desktop several tray icon\nimplemenations with various levels of support and capabilities co-exist.\n\nvolctl supports\n\n- [*SNI*](https://freedesktop.org/wiki/Specifications/StatusNotifierItem/)  \n  Supported on modern Desktop Environments, like Gnome, KDE, works also on Wayland\n- [*XEmbed*](https://www.freedesktop.org/wiki/Specifications/systemtray-spec/)\n(through `Gtk.StatusIcon`)  \n  Not supported on Gnome, KDE (only through extensions/plugins). No Wayland\n  support.\n\nYour Desktop Environment might support both, one or none of these standards.\nPersonally I use XEmbed as it allows for all important user interactions (mouse\nwheel, double-click, etc.) on my current system. The default is to prefer SNI\nwhich can be changed under the Preferences ➝ Prefer XEmbed.\n\n*Please try for yourself which type of tray icon works best for you.*\n\n**Note:** If you need support for SNI you have to compile and install\n[statusnotifier](https://jjacky.com/statusnotifier/). Use the configure flags\n`--enable-introspection` and `--enable-dbusmenu`. If you're on Arch Linux you\ncan use the AUR package\n[statusnotifier-introspection-dbus-menu](https://aur.archlinux.org/packages/statusnotifier-introspection-dbus-menu/).\n\n## No Wayland support ([#39](https://github.com/buzz/volctl/issues/39))\n\nThrough SNI volctl now supports tray icons under Wayland. Unfortunately it's not\npossible to display the volume slider window on Wayland at the mouse pointer\nposition. The Wayland protocol does not allow this unless non-standard Wayland\nextensions are used. The only entity that is capable of doing so is the Wayland\ncompositor (generally your Desktop Environment).\n\n## Development\n\n### Deploy dev version in Virtualenv\n\nYou can start volctl from the source tree.\n\n```sh\n$ python -m venv --system-site-packages venv\n$ source venv/bin/activate\n$ pip install --editable .\n$ venv/bin/volctl\n```\n\n### Linting\n\nUse pylint and flake8 for linting the sources.\n\n```sh\n$ make lint\n```\n\nUse black to auto-format the code.\n\n```sh\n$ make black\n```\n\n## License\n\nGNU General Public License v2.0\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuzz%2Fvolctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuzz%2Fvolctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuzz%2Fvolctl/lists"}