A modern Volume Mixer for PulseAudio.

Overview

Myxer

A modern Volume Mixer for PulseAudio, built with you in mind.

Releases Commit Activity Join Discord Support on Patreon


Myxer is a lightweight, powerful Volume Mixer built with modern UI design for a seamless user experience. Devices, Streams, and even Card profiles can all be managed with Myxer, providing a complete replacement for your system Volume Mixer.



Adaptive

Myxer adapts to your selected GTK theme so that it fits seamlessly into your stock applications.

Additionally, one can easily configure PulseAudio panel plugins to open Myxer when you click the "Audio Mixer" entry on the popup menu so that it behaves like a stock app, too!





Advanced

Behind the context menu, there are options to show individual audio channels and even configure Audio Card profiles. There's no need for pavucontrol anymore.




Open Source

Myxer is licensed under the GNU General Public License v3. It's being actively developed, and all issues and pull requests will be responded to promptly. It's also super lightweight, and should only take an hour or two to read through the source code, if that's your sort of thing. See Contributing for more details.



Heard enough? Download the Latest Release now.

Latest Artifact   •   Building   •   Contributing




© Auri Collings, 2021. Made with <3

Comments
  • Respect local window control layout

    Respect local window control layout

    It seems the layout of the close and minimize button are hardcoded. That layout may not match other desktops, which results in a bad user experience on these systems.

    opened by eppixx 11
  • Doesnt work on Debian Buster

    Doesnt work on Debian Buster

    I tried to compile it, but it ends with a "error[E0599]: no associated item named MAX found for type u32 in the current scope --> src/pulse.rs:133:23"
    I also tried to install the deb-file. No success :) The binary also doesnt work, maybe Buster is too old?

    opened by HoSnoopy 4
  • Implement Meson build system

    Implement Meson build system

    Hey, I was looking into the options to package your application for Flathub, but I found that it's still quite rough around the corners.

    One thing that's quite important, is a stand-alone build system. The most popular one is Meson, which uses Python to build and integrate a complete packaging system.

    The best place to start, is by looking at another application that uses Meson in combination with Rust: https://gitlab.gnome.org/GNOME/fractal

    With a build system like Meson, you can do the following things:

    • Manage dependencies
    • Manage localization
    • Configure different build targets (release, production)
    • Copy-paste files in their respective directories (/usr/share/ stuff like icons, metainfo and desktop shortcuts)
    info needed 
    opened by Eonfge 4
  • Pulseeffects shown as

    Pulseeffects shown as "Unknown"

    When using pipewire and pulseeffects, Myxer shows Unknown instead of pulseeffects for both outputs and inputs. Tested with pulseeffects-5.0.3 and pipewire-0.3.25.

    bug 
    opened by danyspin97 4
  • Update gio version to

    Update gio version to "*"

    Newer versions of Cargo no longer support empty version fields.

    Closes #18, but the best approach would probably be to specify a version instead of *.

    opened by ErinvanderVeen 3
  • Consider using Rustfmt

    Consider using Rustfmt

    I tried to run clippy to find potential small improvements I could contribute. However, as hard tabs are used instead of spaces a lot of tabs_in_doc_comments issues are listed which makes it hard to find useful hints.

    Using rustfmt the whole code can be formatted easily and in a way that is used for most other Rust projects.

    Alternative

    If you prefer to keep tabs, you could add a rustfmt.toml with

    hard_tabs = true
    

    To suppress the mentioned clippy warning, then #![allow(clippy::tabs_in_doc_comments)] should be added somewhere at the top of main.rs.

    opened by tAq5Z6eE 3
  • Use a fallback sequence for device names

    Use a fallback sequence for device names

    My Bluetooth sound card doesn't provide a device.description, leaving it as an "Unknown Card" on display; in other tools it shows just fine.

    This PR adds a fallback sequence; it is not based on any good descriptions of these properties but on the observations made here (device.alias is the name I gave this in blueman, and thus is a slightly better name than device.name which is a hardware path for the built-in ones so should probably come last). It's not the sequence pavucontrol uses (pavucontrol shows the device.name over the device.alias), but it may ultimately be a matter of taste what to pick.

    opened by chrysn 2
  • Add a class to the root window widget to ease theming in gtk themes

    Add a class to the root window widget to ease theming in gtk themes

    This PR adds a gtk class to the root window widget, which makes it possible to specifically address this application in GTK themes.

    With Myxer's very minimal, beautiful looks it's a nice application to integrate into a customized desktop in a way that makes it feel native to the system, so putting focus on themability here seems like a great idea, in general!

    opened by elkowar 2
  • Request to change behaviour of muted applications

    Request to change behaviour of muted applications

    Currently when an application is muted, the entire meter control is disabled. This is not always obvious on some themes. A muted application also behaves differently from one set to 0% volume when, in practice, this is effectively the same state.

    I request that rather than the control be disabled on mute, the display state is set to 0% volume but the control is still left enabled. From this point pressing the mute/un-mute button would return the application to its previous volume level. Additionally simply moving the volume slider above 0% should also effectively 'un-mute' the application.

    enhancement 
    opened by WhosyVox 2
  • Attempt to implement issue 15 - respect window manager borders (2)

    Attempt to implement issue 15 - respect window manager borders (2)

    These changes remove the GTK headers from both the main window and Card Profiles popup, allowing a user's window manager to instead manage borders. This should resolve issue #15.

    This now includes a fix for the out-of-place preference button.

    opened by WhosyVox 1
  • Created a simple PKGBUILD

    Created a simple PKGBUILD

    Hello!

    This PR adds a simple PKGBUILD to make it easier to install Myxer on Arch-based Linux distributions. It is based on releases, not on git commits. So, on every release, it should be updated. I'm not really experienced in creating PKGBUILDs, but I believe this one should work for most users.

    Any suggestion is welcome and appreciated, of course.

    opened by mateusauler 1
  • Happy but....

    Happy but....

    I am very happy with the simplicity and functionality.... esp compared to pavucontrol. but I wish I could drag it to be much much smaller... What about no slider, and/or mouse wheel on the vol % also adjusts it. your thoughts?

    opened by jurgynet 0
  • Did this die or just something glacially slow?

    Did this die or just something glacially slow?

    Seemed after a bunch of press and interest there has not been any progress. As someone that doesn't "hate" but does dislike pavucontrol, it was my hope there was going to be an alternative. Myxer was just about there after all the press but not without any additions.

    opened by morenathan 1
  • Add option to minimize to tray

    Add option to minimize to tray

    First of all thank you for this tool! It works flawlessly under WindowMaker, where my choices of mixers are a bit limited.

    I haven't found this option, so pardon me if it already exists.

    It would be great if it could be minimized into the tray. Even better if the mousewheel would still allow to change the master-channel while the application is minimized.

    Thanks.

    opened by thinksilicon 1
  • Build Fail: failed to parse the version requirement '' for dependency 'gio'

    Build Fail: failed to parse the version requirement '' for dependency 'gio'

    When running cargo build --release, the build fails with this message.

    error: failed to parse manifest at `/home/mou/tmp/ebuild-temp/Myxer-1.2.1/Cargo.toml`
    
    Caused by:
      failed to parse the version requirement `` for dependency `gio`
    
    Caused by:
      unexpected end of input while parsing major version number
    
    opened by yemouu 3
Releases(1.2.1)
  • 1.2.1(Apr 13, 2021)

  • 1.2.0(Apr 8, 2021)

    Welcome to the third minor release of Myxer. There are some exciting improvements this time around, including a Debian package! Full changelog below:

    • System-wide install with Debian build.
    • New muting behaviour, as per #2.
    • Tooltips on hover to reveal the full application name.
    • Stability improvements and bug fixes.
    Source code(tar.gz)
    Source code(zip)
    Myxer(4.03 MB)
    Myxer.deb(222.18 KB)
  • 1.1.3(Mar 18, 2021)

  • 1.1.2(Mar 13, 2021)

    Bugfixes and stability improvements.

    Fixes and Tweaks

    • Fixed a potential race condition with libpulse that could cause a crash.
    • Fixed source & sink meters becoming vertically unsynchronized when streams overflow.
    • Slight runtime performance improvements.
    Source code(tar.gz)
    Source code(zip)
    Myxer(3.92 MB)
  • 1.1.0(Mar 11, 2021)

    This new release fixes various bugs, and adds the ability to set your default input/output devices. 1.0.0 has a serious bug that will utilize 100% of a thread on shutdown, so I'd advise you to update to this version immediately.

    Additions

    • Default inputs & outputs can now be set.

    Tweaks & Fixes

    • All menus now use GTK3 popups.
    • Various performance fixes.
    • Myxer no longer hangs on shutdown.
    Source code(tar.gz)
    Source code(zip)
    Myxer(3.86 MB)
  • 1.0.0(Mar 4, 2021)

    The first release of Myxer!

    I'm so excited. All of the functionality is in place, and a fair amount of testing has been done to ensure that it is stable.

    If you encounter a problem, please post an issue.

    Source code(tar.gz)
    Source code(zip)
    Myxer(3.89 MB)
Owner
Auri Collings
The root of all madness
Auri Collings
Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.

Deno Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Features Secure by default. No file,

Derek Jones 2 Aug 13, 2022
A Modern, Open Source GTK4 ebook manager powered by Rust.

Bookx An MVP in progress: An ebook reader with .epub support Context menu for each book (delete, rename book, info) On click switch the carousal to th

Anurag Dhadse 12 Dec 28, 2022
Minimalistic volume mixer.

Mixxc Mixxc is a minimalistic and customizable volume mixer, created to seamlessly complement desktop widgets. Currently, it supports only pulseaudio

null 4 Oct 23, 2023
Easy c̵̰͠r̵̛̠ö̴̪s̶̩̒s̵̭̀-t̶̲͝h̶̯̚r̵̺͐e̷̖̽ḁ̴̍d̶̖̔ ȓ̵͙ė̶͎ḟ̴͙e̸̖͛r̶̖͗ë̶̱́ṉ̵̒ĉ̷̥e̷͚̍ s̷̹͌h̷̲̉a̵̭͋r̷̫̊ḭ̵̊n̷̬͂g̵̦̃ f̶̻̊ơ̵̜ṟ̸̈́ R̵̞̋ù̵̺s̷̖̅ţ̸͗!̸̼͋

Rust S̵̓i̸̓n̵̉ I̴n̴f̶e̸r̵n̷a̴l mutability! Howdy, friendly Rust developer! Ever had a value get m̵̯̅ð̶͊v̴̮̾ê̴̼͘d away right under your nose just when

null 294 Dec 23, 2022
A real-time mixer

Pagana Pagana is a real-time mixer. This project is still in early stages of development and is not ready for any kind of production use or testing. D

null 1 Nov 26, 2021
A mixer for jack-audio using rust and druid UI

A simple mixer to allow me to use my midi controller (Novation LaunchControl XL) on linux and also to explore the new druid ui. Features volume faders

Richard Dodd (dodj) 25 Jul 6, 2022
A trading bot written in Rust based on the orderbook delta volume.

The strategy based on the concept of mean reversion. We look for large deviations in the volume delta of BTC-PERP on FTX at a depth of 1. These deviations could be caused by over-enthusiastic and over-leveraged market participants.

Dinesh Pinto 45 Dec 28, 2022
Persist game settings like music volume or graphic settings in a nice toml file in the right location.

Bevy Settings The goal of this project is to store settings in a resource throughout game launches. Currently this crate supports Linux, Mac and Windo

Tobias Kriebisch 9 Feb 25, 2023
👾 Modern and minimalist pixel editor

██ ████ ██ ██ ███ ██ ███ ██ ██ ██ ██ ██ ██ `rx` is a modern and minimalist pixel editor. Designed with g

Alexis Sellier 2.6k Jan 1, 2023
🤖 The Modern Port Scanner 🤖

➡️ Discord | Installation Guide | Usage Guide ⬅️ The Modern Port Scanner. Fast, smart, effective. ?? Docker (Recommended) ??‍?? Kali / Debian ??️ Arch

null 8.8k Jan 8, 2023
A modern replacement for ps written in Rust

procs procs is a replacement for ps written in Rust. Documentation quick links Features Platform Installation Usage Configuration Features Output by t

null 3.6k Jan 5, 2023
A modern replacement for ‘ls’.

exa exa is a modern replacement for ls. README Sections: Options — Installation — Development exa is a modern replacement for the venerable file-listi

Benjamin Sago 20.3k Jan 6, 2023
A modern editor with a backend written in Rust.

Xi Editor (pronounced "Zigh") A modern editor with a backend written in Rust. Maintenance status: The xi-editor project is not currently under active

null 19.7k Jan 5, 2023
A modern TLS library in Rust

Rustls is a modern TLS library written in Rust. It's pronounced 'rustles'. It uses ring for cryptography and libwebpki for certificate verification. S

ctz 4k Jan 9, 2023
A modern 3D/2D game engine that uses wgpu.

Harmony A modern 3D/2D game engine that uses wgpu and is designed to work out of the box with minimal effort. It uses legion for handling game/renderi

John 152 Dec 24, 2022
A more modern http framework benchmarker supporting HTTP/1 and HTTP/2 benchmarks.

rewrk A more modern http framework benchmark utility.

Harrison Burt 273 Dec 27, 2022
Modern Cryptographic Firmware

Trussed® Modern Cryptographic Firmware Status Very much WIP. Actively developed. Unstable APIs.

Trussed® 300 Dec 16, 2022
Rust-tokenizer offers high-performance tokenizers for modern language models, including WordPiece, Byte-Pair Encoding (BPE) and Unigram (SentencePiece) models

rust-tokenizers Rust-tokenizer offers high-performance tokenizers for modern language models, including WordPiece, Byte-Pair Encoding (BPE) and Unigra

null 165 Jan 1, 2023
Aero is a new modern, unix based operating system. It is being developed for educational purposes.

Areo Aero is a new modern, unix based operating system written in Rust and is being developed for educational purposes. Aero follows the monolithic ke

Anhad Singh 623 Dec 24, 2022
mdBook is a utility to create modern online books from Markdown files.

Create book from markdown files. Like Gitbook but implemented in Rust

The Rust Programming Language 11.6k Jan 4, 2023