this post was submitted on 07 Oct 2024
18 points (100.0% liked)
Rust
7509 readers
24 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments

I read that global hotkey is not possible in Wayland. Or, at least, not as easily as with XOrg. Did you achived it ? Can you link to where you are doing it in your code please ? I'm curious, especially since its the first time I heard global hotkeys from a terminal program.
I try not to use global hotkeys myself. Do you have another way of controlling the soundboard ? Either from websocket, DBus, launching a command, ... I like to use streampi^1^ (open source streamdeck clone) for streaming and it may use any of this interraction methods. (Websocket may require to write a plugin for yëur program.)
^1^ Streampi as stopped developpment for now in its v2 snapshots. Still usable. But the dev want to rewrite in C++/Qt for a v3.
During my development, I have found 2 different crates that handles global key input. They are
inputbotandmki. I looked at some issues ininputbotand learnt that they are usinglibinputas the backend. I didn't read aboutmkithough.This soundboard is using
mki, and global hotkey is working in Wayland (at least for Plasma).Global hotkey is only used for playing the sounds and nothing else, and that is basically just running a command.
This will play all files that has an audio stream (cls is also using this command):
ffmpeg -i <file> -f s16le - | pacat -d <sink> --channels=<1 for mono, 2 for stereo> --rate=<sample rate> --volume=<0-65535, 65535 = 100%>I guess it is pretty complicated so maybe I'll add a way to play files.
Yeah, I'd rather register
cls play <id, name or path>in streampi or other macro box. Especially if cls let me add new sounds and configure things easily. Like I see having multiples "public laughing", so when starting the sound any can be played. Which provide a bit of variety in the stream. And allow to repeat the sound for a longer effect on the fly without being too repetitive.