Git Product home page Git Product logo

myxer's Introduction

Auri Collings

Game, Web, and Software Developer here to destroy change the world.

Follow on Github Join my Discord Support on Patreon


Currently Creating

  • Zepha - A super-fast, immensely moddable voxel engine.
  • Myxer - A simple, modern, pretty volume mixer for PulseAudio.
  • AuriServe - A breath of fresh air in the CMS ecosystem. Modern, open-source, Node-based magic.

myxer's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

myxer's Issues

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.

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?

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

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)

Publishing this application to Nixpkgs

Hi!

I've wanted to install your application on my machine using Nix and noticed it was not yet published. Nix is a bit quirky when it comes to packages so you can't just install any dynamically linked binary. If it's alright with you I would like to put some work into getting it into nixpkgs.

I've already tested locally and from what I can see if you would want this these are the steps:

  • Still need to finalize the nix configuration, but wanted to check your interest in this first. Functionally it works, but just needs to fix some of the meta data like author etc.
  • Create a new release tag. For some reason when using the current latest tag it complains about an empty version tag for gio, but not when I clone the repo directly.
  • Merge the default.nix configuration into the https://github.com/NixOS/nixpkgs repository with the new tag.

After that it should be available for anyone using nixpkgs.

Let me know if you're interested in doing this.

App Stream Meta info

Following #12, I think that it's also good to think about some meta-data that can help you forward.

First, you'll have to ask yourself if you want to follow the App Stream standard:

https://www.freedesktop.org/software/appstream/docs/
Don't read it all in one go, it's dry stuff

Praxis

If you wish to follow the standard, there are three essential files that you'll have to create:

  • com.aurailus.Myxter.desktop
  • com.aurailus.Myxter.metainfo.xml
  • com.aurailus.Myxter.svg

These three files make the core of the App Stream standard, and it's easy to pillock all the things you need from different projects. You could just place them in ./dist/ and use a build-system to place them in their respective target directories.

If you want, I can help you with those, so let me know.

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.

Show all output devices, not just fallback?

I've two USB DACs and an AV receiver that I go between depending on my needs, but myxer only shows the active fallback device.

How about some day the option to show all output devices?

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.

Consider implementing rustdoc code comments for documentation

Rust comes with a utility called 'rustdoc' which would allow for the programmatic generation of documentation for your project.
It can be called with cargo doc to generate initial documentation into the target directory, including documentation of imported libraries.
It is recommended you add comment blocks before type/struct/method definitions in order to better document the code.

See:
https://doc.rust-lang.org/reference/comments.html
https://doc.rust-lang.org/rustdoc/index.html

Add tooltip to application name

Currently the application titles are truncated both for the meter and context menu, which may cause confusion if multiple instances of an application are open.
I request a tooltip be added, displaying the full title of said application on mouse-over.

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.

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?

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.

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.