{"id":15532614,"url":"https://github.com/merll/mutebtn","last_synced_at":"2025-04-23T13:40:15.312Z","repository":{"id":64429208,"uuid":"383261705","full_name":"merll/mutebtn","owner":"merll","description":"Connects mute controllers such as MuteMe™ to apps","archived":false,"fork":false,"pushed_at":"2021-07-31T17:12:39.000Z","size":41,"stargazers_count":10,"open_issues_count":2,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-23T13:39:44.544Z","etag":null,"topics":["mute","mute-me","muteme"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/merll.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":"2021-07-05T20:51:47.000Z","updated_at":"2024-05-19T11:44:36.000Z","dependencies_parsed_at":"2022-12-23T01:10:25.914Z","dependency_job_id":null,"html_url":"https://github.com/merll/mutebtn","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/merll%2Fmutebtn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merll%2Fmutebtn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merll%2Fmutebtn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merll%2Fmutebtn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/merll","download_url":"https://codeload.github.com/merll/mutebtn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250440673,"owners_count":21431039,"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":["mute","mute-me","muteme"],"created_at":"2024-10-02T11:31:56.799Z","updated_at":"2025-04-23T13:40:15.290Z","avatar_url":"https://github.com/merll.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MuteBtn\n\nConnects mute controllers such as MuteMe™ to apps\n\n## Supported environments\n\nCurrently the only supported device is [MuteMe™](https://muteme.com/), because this is the only one I have available for testing. However, there is no reason why this should remain the only supported device. Even DIY devices could be added.\n\nThis app was developed on and for Linux using PulseAudio. In this environment it provides the most value over the vendor-provided app of MuteMe™. However, it is written in Rust, so it should be possible to adapt it to any environment. More audio servers will be added.\n\n## Why?\n\nThe vendor-provided app of MuteMe™ worked for me, but instead of the heavy closed-source Electron app I wanted something lighter with the possibility to run as a system service.\n\nAlso with the closed-source app my confidence that Linux features will be developed much further is quite low. Especially Linux-specific FOSS apps will likely not get much more support.\n\n# Additional features\n\nBesides the vendor-provided app features (color setting, push-to-talk or toggle mode), the following is supported:\n* Selecting the PulseAudio device: Select a specific audio-device or the selected default device separately for mute and unmute. The default is to mute/unmute all PulseAudio sources.\n* Hybrid mode: If you prefer push-to-talk, but sometimes get tired of holding the button, you can double-tap, and it will leave the mic open until you touch once again, similar to toggle mode.\n\n# Missing features\n\n* There is no GUI yet.\n* Currently settings cannot be changed at run-time. The app has to be restarted. This will change soon.\n\n# Configuration\n\nThe app will look for configuration files in the following places:\n* Any command line option provided with `-c \u003cconfig_file\u003e` or `--config \u003cconfig_file\u003e`.\n* `mutebtn.toml` in the current working directory.\n* `/etc/mutebtn.toml`\n\nFormat: Several formats such as JSON, YAML etc are supported, but TOML is the recommended option.\nIf any entry in the configuration file is invalid, all defaults apply.\n\nExample with all options:\n\n```toml\n[main]\n# Optional. If set to true, mutes selected devices on app start; if set to false, unmutes\n# selected devices on app start. If not present, does nothing (default).\nmute_on_startup = true\n\n[muteme]\n# Color when muted (default: red) or unmuted (default: green).\n# Valid choices are \"red\", \"green\", \"blue\", \"yelllow\", \"cyan\", \"purple\", \"white\", and \"nocolor\".\nmuted_color = \"red\"\nunmuted_color = \"green\"\n\n# Operation mode. Valid choices are \"toggle\" (default), \"pushtotalk\", and \"hybrid\".\noperation_mode = \"hybrid\"\n\n# Only applies to \"hybrid\" mode: Maximum duration in milliseconds to detect a double-tap\n# (1), and the following release (2). Defaults to values below:\ndouble_tap_duration_1 = 300\ndouble_tap_duration_2 = 250\n\n[pulse]\n# Device to mute. Choices are \"all\" (default setting), \"default\", and \"selected\". On\n# \"default\", the current default audio source is re-detected on each mute/unmute operation.\nmute_device = \"all\"\n# Optional, separate selection of which device to unmute. Choices are the same as for\n# mute_device; if not set unmutes the same as in mute_device. This example shows that you\n# can always mute all audio sources, and only unmute the default device on-demand.\nunmute_device = \"default\"\n\n# Only applies if mute_device or unmute_device is set to \"selected\": Defines the specific\n# device name. Available names can e.g. be listed using \"pactl list sources\".\nselected_device_name = \"my_device\"\n```\n\n## Development plans\n\nNext planned steps in development are:\n* Provide some sort of interface to change settings comfortably at run-time.\n* Provide systemd sample config for autostart.\n* Support more apps (e.g. Mumble)\n* Support more audio servers directly (e.g. Pipewire)\n\nContributions welcome, also for more devices!\n\n## Disclaimer\n\nNote that this app is not associated with or endorsed by MuteMe™ or any other vendor.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmerll%2Fmutebtn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmerll%2Fmutebtn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmerll%2Fmutebtn/lists"}