diff --git a/audio-switcher/README.md b/audio-switcher/README.md index e368f33..f42780b 100644 --- a/audio-switcher/README.md +++ b/audio-switcher/README.md @@ -49,6 +49,8 @@ Use the settings button in the panel header to open Noctalia's plugin settings. | Entry | Setting | Type | Default | Description | | --- | --- | --- | --- | --- | | Plugin | `show_percentage` | `bool` | `true` | Show the output volume beside the bar icon; disable it for an icon-only widget. | +| Plugin | `show_notification_on_switch` | `bool` | `true` | Show a notification when switching device. | +| Plugin | `show_actions_in_tooltip` | `bool` | `true` | Show actions in tooltip. | | Plugin | `scroll_step` | `int` | `5` | Volume points changed by each wheel step over the bar widget (1–25). | ## IPC and keybinds diff --git a/audio-switcher/plugin.toml b/audio-switcher/plugin.toml index 432cf3d..028c848 100644 --- a/audio-switcher/plugin.toml +++ b/audio-switcher/plugin.toml @@ -1,6 +1,6 @@ id = "blackbartblues/audio-switcher" name = "Audio Switcher" -version = "0.1.1" +version = "0.2.0" plugin_api = 9 author = "blackbartblues" license = "MIT" @@ -16,6 +16,20 @@ label_key = "settings.show_percentage.label" description_key = "settings.show_percentage.description" default = true +[[setting]] +key = "show_notification_on_switch" +type = "bool" +label_key = "settings.show_notification_on_switch.label" +description_key = "settings.show_notification_on_switch.description" +default = true + +[[setting]] +key = "show_actions_in_tooltip" +type = "bool" +label_key = "settings.show_actions_in_tooltip.label" +description_key = "settings.show_actions_in_tooltip.description" +default = true + [[setting]] key = "scroll_step" type = "int" diff --git a/audio-switcher/service.luau b/audio-switcher/service.luau index b7867c6..af95896 100644 --- a/audio-switcher/service.luau +++ b/audio-switcher/service.luau @@ -751,7 +751,7 @@ local function setDefaultTarget(command, kind, device) end moveStreams(kind, device.targetName, function() local messageKey = kind == "output" and "notifications.output_selected" or "notifications.input_selected" - finishAction(command, true, noctalia.tr(messageKey, { device = device.name })) + finishAction(command, true, noctalia.tr(messageKey, { device = device.name }), noctalia.getConfig("show_notification_on_switch")) end) end) end diff --git a/audio-switcher/translations/en.json b/audio-switcher/translations/en.json index d7805c2..612e42b 100644 --- a/audio-switcher/translations/en.json +++ b/audio-switcher/translations/en.json @@ -88,6 +88,14 @@ "show_percentage": { "description": "Show the current output volume percentage next to the bar icon. Disable it to show only the icon.", "label": "Show percentage" + }, + "show_notification_on_switch": { + "description": "Show a notification when switching device.", + "label": "Show notification on switch" + }, + "show_actions_in_tooltip": { + "description": "Show actions in tooltip.", + "label": "Show actions in tooltip" } }, "tabs": { @@ -96,6 +104,25 @@ }, "title": "Audio Switcher", "widget": { - "tooltip": "Output: {output} ({output_volume})\nInput: {input} ({input_volume})\nScroll: change output volume\nLeft click: open Audio Switcher\nRight click: cycle outputs\nMiddle click: cycle inputs" + "input": "Input", + "output": "Output", + "action": { + "scroll": { + "key": "Scroll", + "description": "Change output volume" + }, + "left_click": { + "key": "Left click", + "description": "Open Audio Switcher" + }, + "right_click": { + "key": "Right click", + "description": "Cycle visible outputs" + }, + "middle_click": { + "key": "Middle click", + "description": "Cycle visible inputs" + } + } } } diff --git a/audio-switcher/widget.luau b/audio-switcher/widget.luau index d35edff..bcce3f4 100644 --- a/audio-switcher/widget.luau +++ b/audio-switcher/widget.luau @@ -52,12 +52,15 @@ local function render() local showPercentage = noctalia.getConfig("show_percentage") ~= false barWidget.setText(showPercentage and not barWidget.isVertical() and outputVolume or "") - barWidget.setTooltip(noctalia.tr("widget.tooltip", { - output = outputName, - output_volume = outputVolume, - input = inputName, - input_volume = inputVolume, - })) + local tooltipItems = {{key = noctalia.tr("widget.output"), value = `{outputName} ({outputVolume})`}, + {key = noctalia.tr("widget.input"), value = `{inputName} ({inputVolume})`}} + if noctalia.getConfig("show_actions_in_tooltip") == true then + table.insert(tooltipItems, {key = noctalia.tr("widget.action.scroll.key"), value = noctalia.tr("widget.action.scroll.description")}) + table.insert(tooltipItems, {key = noctalia.tr("widget.action.left_click.key"), value = noctalia.tr("widget.action.left_click.description")}) + table.insert(tooltipItems, {key = noctalia.tr("widget.action.right_click.key"), value = noctalia.tr("widget.action.right_click.description")}) + table.insert(tooltipItems, {key = noctalia.tr("widget.action.middle_click.key"), value = noctalia.tr("widget.action.middle_click.description")}) + end + barWidget.setTooltip(tooltipItems) end local function dispatch(action)