Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • xfce4-pulseaudio-plugin xfce4-pulseaudio-plugin
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Graph
    • Compare
  • Issues 60
    • Issues 60
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 4
    • Merge requests 4
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Panel PluginsPanel Plugins
  • xfce4-pulseaudio-pluginxfce4-pulseaudio-plugin
  • Merge requests
  • !12

Draft: Configurable middle click action to cycle between outputs

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Clarence "Sparr" Risher requested to merge sparr/xfce4-pulseaudio-plugin:middle-click-cycle-outputs into master Sep 05, 2022
  • Overview 0
  • Commits 2
  • Pipelines 1
  • Changes 5

I opened #77 when I found myself changing outputs multiple times per day between my speakers and my headphones, while never using the middle click mute functionality.

This MR implements a new xfconf property middle-click-action with a default of the current behavior where middle clicking the panel icon mutes or unmutes the volume, and a new second option to select the next output in the list after the currently selected output.

Currently the xfconf property does not work. It is not created according to xfconf-query, and when the UI attempts to set it an error is produced:

(wrapper-2.0:492812): xfconf-CRITICAL **: 01:11:14.622: IA__xfconf_channel_set_property: assertion 'XFCONF_IS_CHANNEL(channel) && property && G_IS_VALUE(value)' failed

This is my first time contributing to any part of Xfce, or interacting with the codebase at all. Here are other areas of the MR where I expect there is a better solution and I would welcome feedback:

  • The transform functions for the GBinding between multiple radio buttons and a single enum property are built in a brute force fashion. I know they should be improved to handle more than 2 cases, and I suspect there's a much better way to implement them at all.
  • The interface could be a different widget than mutliple radio buttons. Perhaps a radio menu, or some other "select one of many" element.
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: middle-click-cycle-outputs