![](https://img.shields.io/github/issues-raw/cyrinux/push2talk)
![](https://img.shields.io/github/stars/cyrinux/push2talk)
![](https://img.shields.io/aur/version/push2talk-git)
![](https://img.shields.io/crates/d/push2talk)
![](https://img.shields.io/crates/v/push2talk)
![Push-to-Talk Logo](./pictures/logo-small.png)
# Push-to-Talk: Seamless Integration with Wayland, X11, PulseAudio & PipeWire
## 🥅 Quick Start
Upon initialization, the application mutes all microphones. To unmute, press Control_Left+Space, and release to mute again.
- Suspend/resume functionality available via `SIGUSR1`.
## ⚠️ Prerequisites
Membership in the `input` or `plugdev` group may be necessary. Check `/dev/input/*` for your specific distribution.
```bash
sudo usermod -a -G plugdev $USER
sudo usermod -a -G input $USER
```
## 📦 Installation Methods
- Arch Linux users: [AUR package available](https://aur.archlinux.org/packages/push2talk-git)
- Others: Use `cargo install push2talk`
## 🎤 Usage
- Start `push2talk` binary.
- Systemd unit provided: `systemctl --user start push2talk.service`.
## 🎤 Advanced Configuration
- Trace mode for key and source device identification: `env RUST_LOG=trace push2talk`.
- Custom keybinds via environment variables: `env PUSH2TALK_KEYBIND="Control_L,Space" push2talk`.
- Debug logging: `RUST_LOG=debug push2talk`.
- Specify a particular audio source: `env PUSH2TALK_SOURCE="OpenComm by Shokz" push2talk`.
- Systemd unit provided: `systemctl --user start push2talk.service`.
## 😅 Additional Information
- Excludes Easy Effects sources to prevent unintentional "push-to-listen" scenarios.
## 👥 How to Contribute
Contributions are highly welcome.
## 💑 Acknowledgments
Made with love by @cyrinux and @maximbaz.