jantap / rsmixer Goto Github PK
View Code? Open in Web Editor NEWPulseAudio volume mixer written in rust
License: MIT License
PulseAudio volume mixer written in rust
License: MIT License
Without updating to a more recent libpulse-bindings, when installing on a Debian bullseye system, builds fail with errors like this:
Compiling libpulse-binding v2.19.0
error[E0308]: mismatched types
--> /home/livingroom/.cargo/registry/src/github.com-1ecc6299db9ec823/libpulse-binding-2.19.0/src/channelmap.rs:247:21
|
247 | map: [Position; sample::CHANNELS_MAX],
| ^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `u8`
As using a more recent version of libpulse-bindings makes the issue go away, I did not drill down any deeper; please consider upgrading and uploading a new version of this convenient tool.
Would be pretty handy if the program could respond to mouse clicks and scrollwheels to change the volume levels!
input handler should be part of main event loop. Then we can have contextual keybindings, aware of the current state e.g. 'q' binded as both quit application and close context menu.
How about the possibility to use LV2 plugins for filtering, compressing, etc. audio streams?
Something like PluseEffects but a bit more open ended (select what plugins to display, like Mixxx).
https://ajboni.github.io/calvo is a somewhat related style TUI host
After closing the program with "q" the terminal keeps writing the coordinates of the mouse and button inputs.
I'm still new to the software developing world so sorry if it is not the correct way to report a bug.
Will Rust nightly be required to compile rsmixer from now on?
rustc 1.51.0 (2fd73fabe 2021-03-23)
cargo 1.51.0 (43b129a20 2021-03-16)
Compilation output:
error[E0554]: `#![feature]` may not be used on the stable release channel
--> src/main.rs:1:1
|
1 | #![feature(async_closure)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0554]: `#![feature]` may not be used on the stable release channel
--> src/main.rs:2:1
|
2 | #![feature(btree_retain)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0658]: or-patterns syntax is experimental
--> src/action_handlers/volume_input_edit.rs:28:22
|
28 | KeyCode::Char(x @ ('0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9')) => {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #54883 <https://github.com/rust-lang/rust/issues/54883> for more information
warning: unused import: `thiserror::Error`
--> src/errors.rs:3:5
|
3 | use thiserror::Error;
| ^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
warning: unused import: `pulse::volume`
--> src/models/state/mod.rs:5:5
|
5 | use pulse::volume;
| ^^^^^^^^^^^^^
error: aborting due to 3 previous errors; 2 warnings emitted
Some errors have detailed explanations: E0554, E0658.
For more information about an error, try `rustc --explain E0554`.
error: could not compile `rsmixer`
To learn more, run the command again with --verbose.
Can you please add the escape key as a binding to quit rsmixer?
Is it possible to enable multiple outputs simultaneously in rsmixer?
I really like what you've made, but there are a couple of features whose addition would make this application even better.
h
j
k
l
.Esc
).rsmixer
has started.On Arch Linux, the pulseaudio.service
systemd unit is configured (by default) to be triggered by the pulseaudio.socket
socket. This means that the PulseAudio server won't start before an application attempts to connect to the server.
One simple fix would be to display a message saying something to the effect of "Connecting to the PulseAudio server..." if the connection takes more than, say, 200 ms to establish.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.