Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Desktop: Volume mixer widget, eww config refactor [WIP] #932

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

kajusnau
Copy link
Contributor

@kajusnau kajusnau commented Dec 13, 2024

WIP Volume Mixer Widget - Major Changes Expected After GhafAudioControl Package Update

Description of Changes

  1. Added Volume Mixer Widget in the Taskbar Quick Settings:

    • The volume mixer is accessible by clicking the "settings" icon next to the System Volume slider.
    • It dynamically displays currently active sink inputs (audio streams) or remains empty if no sink inputs are active.
    • Each sink input can be individually controlled, offering the same core functionality as the System Volume slider, including volume adjustment, mute, and unmute.
    • Each sink input will show the associated app icon if available. If not available, it will fallback to the default speaker icon.
    • Tested only with Google Chrome browser audio playback.
  2. Adjusted Desktop Widgets Styling

  3. Refactored Eww Config For Easier Maintenance

Known Issues:

  1. Multiple Sliders Per App/VM:
    • Currently, for example, joining an MS Teams call via the app will cause several audio streams to appear.
      It would be more intuitive to have one slider per app, which would control all audio streams created by that app.
    • In the future, sink inputs will be replaced by VMs/Apps - meaning one slider per VM/App.

Checklist for things done

  • Summary of the proposed changes in the PR description
  • More detailed description in the commit message(s)
  • Commits are squashed into relevant entities - avoid a lot of minimal dev time commits in the PR
  • Contribution guidelines followed
  • Ghaf documentation updated with the commit - https://tiiuae.github.io/ghaf/
  • PR linked to architecture documentation and requirement(s) (ticket id)
  • Test procedure described (or includes tests). Select one or more:
    • Tested on Lenovo X1 x86_64
    • Tested on Jetson Orin NX or AGX aarch64
    • Tested on Polarfire riscv64
  • Author has run make-checks and it passes
  • All automatic Github Action checks pass - see actions
  • Author has added reviewers and removed PR draft status
  • Change requires full re-installation
  • Change can be updated with nixos-rebuild ... switch

Instructions for Testing

  • List all targets that this applies to:
  • Is this a new feature
    • List the test steps to verify:
  • If it is an improvement how does it impact existing functionality?

@kajusnau kajusnau temporarily deployed to internal-build-workflow December 13, 2024 11:41 — with GitHub Actions Inactive
@kajusnau kajusnau self-assigned this Dec 13, 2024
@milva-unikie
Copy link

Tested this quickly on Lenovo-X1. Overall I think it looks great!

A few notes:

  • If GhafAudioControl is "hidden" by default, there should be a way for the user to control speakers and microphones in the volume mixer.
  • I agree that the amount of audio streams should be limited to one per vm before this volume mixer is taken into use. Now there is too many streams and no way for the user to know what controls what.
  • Scrolling the streams is quite awkward. Limiting the amount of streams might fix this.
  • All audio streams (Chrome browser, Slack, Teams, Zoom) are shown under the name of Google Chrome. As mentioned in Known issues this will be changed to be the name of the vm.

@kajusnau kajusnau force-pushed the volume-mixer-widget branch from 4bea169 to 5e9c15d Compare December 16, 2024 12:09
@kajusnau kajusnau temporarily deployed to internal-build-workflow December 16, 2024 12:09 — with GitHub Actions Inactive
@kajusnau kajusnau force-pushed the volume-mixer-widget branch from 5e9c15d to cebb895 Compare December 17, 2024 14:28
@kajusnau kajusnau temporarily deployed to internal-build-workflow December 17, 2024 14:28 — with GitHub Actions Inactive
@kajusnau kajusnau force-pushed the volume-mixer-widget branch from cebb895 to 4ec574c Compare December 18, 2024 10:22
@kajusnau kajusnau temporarily deployed to internal-build-workflow December 18, 2024 10:22 — with GitHub Actions Inactive
@kajusnau kajusnau force-pushed the volume-mixer-widget branch from 4ec574c to 30a823a Compare December 18, 2024 15:01
@kajusnau kajusnau temporarily deployed to internal-build-workflow December 18, 2024 15:01 — with GitHub Actions Inactive
@kajusnau kajusnau changed the title WIP: Desktop: Volume mixer widget Desktop: Volume mixer widget, eww config refactor [WIP] Dec 18, 2024
- Added volume mixer widget to Quick Settings widget
- Refactored eww configuration

Signed-off-by: Kajus Naujokaitis <[email protected]>
@kajusnau kajusnau force-pushed the volume-mixer-widget branch from 30a823a to e9602ac Compare December 20, 2024 14:11
@kajusnau kajusnau temporarily deployed to internal-build-workflow December 20, 2024 14:11 — with GitHub Actions Inactive
@kajusnau
Copy link
Contributor Author

20.12 Update:
Changed to use GhafAudioControl dbus service to fetch info about audio streams.
Known bugs:

  • Audio streams are not removed when closed (GhafAudioControl bug)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants