mirror of
https://github.com/ben-grande/qusal.git
synced 2024-10-01 02:35:49 -04:00
feat: add appmenus to audio applications
This commit is contained in:
parent
a713cef2a0
commit
409ac73e73
@ -78,6 +78,7 @@ if test "$1" = "1"; then
|
|||||||
qubesctl state.apply sys-audio.create
|
qubesctl state.apply sys-audio.create
|
||||||
qubesctl --skip-dom0 --targets=tpl-sys-audio state.apply sys-audio.install
|
qubesctl --skip-dom0 --targets=tpl-sys-audio state.apply sys-audio.install
|
||||||
qubesctl --skip-dom0 --targets=dvm-sys-audio state.apply sys-audio.configure-dvm
|
qubesctl --skip-dom0 --targets=dvm-sys-audio state.apply sys-audio.configure-dvm
|
||||||
|
qubesctl state.apply sys-audio.appmenus
|
||||||
elif test "$1" = "2"; then
|
elif test "$1" = "2"; then
|
||||||
## Upgrade
|
## Upgrade
|
||||||
true
|
true
|
||||||
|
@ -73,6 +73,7 @@ if test "$1" = "1"; then
|
|||||||
## Install
|
## Install
|
||||||
qubesctl state.apply sys-usb.create
|
qubesctl state.apply sys-usb.create
|
||||||
qubesctl --skip-dom0 --targets=tpl-sys-usb state.apply sys-usb.install
|
qubesctl --skip-dom0 --targets=tpl-sys-usb state.apply sys-usb.install
|
||||||
|
qubesctl state.apply sys-usb.appmenus
|
||||||
elif test "$1" = "2"; then
|
elif test "$1" = "2"; then
|
||||||
## Upgrade
|
## Upgrade
|
||||||
true
|
true
|
||||||
|
@ -9,7 +9,8 @@ Audio operations in Qubes OS.
|
|||||||
* [Usage](#usage)
|
* [Usage](#usage)
|
||||||
* [Audio control](#audio-control)
|
* [Audio control](#audio-control)
|
||||||
* [Client turned off with a device attached](#client-turned-off-with-a-device-attached)
|
* [Client turned off with a device attached](#client-turned-off-with-a-device-attached)
|
||||||
* [How to use USB devices](#how-to-use-usb-devices)
|
* [How to managed audio input/output devices](#how-to-managed-audio-inputoutput-devices)
|
||||||
|
* [How to use advanced audio processing capabilities](#how-to-use-advanced-audio-processing-capabilities)
|
||||||
* [How to use Bluetooth](#how-to-use-bluetooth)
|
* [How to use Bluetooth](#how-to-use-bluetooth)
|
||||||
* [How to make the Bluetooth icon appear in the system tray](#how-to-make-the-bluetooth-icon-appear-in-the-system-tray)
|
* [How to make the Bluetooth icon appear in the system tray](#how-to-make-the-bluetooth-icon-appear-in-the-system-tray)
|
||||||
* [How to attach the Bluetooth controller to the AudioVM persistently](#how-to-attach-the-bluetooth-controller-to-the-audiovm-persistently)
|
* [How to attach the Bluetooth controller to the AudioVM persistently](#how-to-attach-the-bluetooth-controller-to-the-audiovm-persistently)
|
||||||
@ -29,6 +30,7 @@ the necessary packages for bluetooth with the provided state.
|
|||||||
sudo qubesctl top.enable sys-audio
|
sudo qubesctl top.enable sys-audio
|
||||||
sudo qubesctl --targets=tpl-sys-audio,dvm-sys-audio state.apply
|
sudo qubesctl --targets=tpl-sys-audio,dvm-sys-audio state.apply
|
||||||
sudo qubesctl top.disable sys-audio
|
sudo qubesctl top.disable sys-audio
|
||||||
|
sudo qubesctl state.apply sys-audio.appmenus
|
||||||
```
|
```
|
||||||
|
|
||||||
* State:
|
* State:
|
||||||
@ -39,6 +41,7 @@ sudo qubesctl top.disable sys-audio
|
|||||||
sudo qubesctl state.apply sys-audio.create
|
sudo qubesctl state.apply sys-audio.create
|
||||||
sudo qubesctl --skip-dom0 --targets=tpl-sys-audio state.apply sys-audio.install
|
sudo qubesctl --skip-dom0 --targets=tpl-sys-audio state.apply sys-audio.install
|
||||||
sudo qubesctl --skip-dom0 --targets=dvm-sys-audio state.apply sys-audio.configure-dvm
|
sudo qubesctl --skip-dom0 --targets=dvm-sys-audio state.apply sys-audio.configure-dvm
|
||||||
|
sudo qubesctl state.apply sys-audio.appmenus
|
||||||
```
|
```
|
||||||
|
|
||||||
<!-- pkg:end:post-install -->
|
<!-- pkg:end:post-install -->
|
||||||
@ -49,6 +52,13 @@ If you want to autostart the AudioVM on boot, you may run:
|
|||||||
sudo qubesctl state.apply sys-audio.autostart
|
sudo qubesctl state.apply sys-audio.autostart
|
||||||
```
|
```
|
||||||
|
|
||||||
|
To use advanced sound features such as mixing, echo canceller, noise
|
||||||
|
reduction:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo qubesctl --skip-dom0 --targets=tpl-sys-audio state.apply sys-audio.install-easyeffects
|
||||||
|
```
|
||||||
|
|
||||||
If you need Bluetooth support, install the dependencies:
|
If you need Bluetooth support, install the dependencies:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@ -82,18 +92,25 @@ will fail. To be able to use the device again:
|
|||||||
* Restart the audio client; and
|
* Restart the audio client; and
|
||||||
* Attach the device to the audio client.
|
* Attach the device to the audio client.
|
||||||
|
|
||||||
### How to use USB devices
|
### How to managed audio input/output devices
|
||||||
|
|
||||||
It is possible to connect USB devices to `disp-sys-audio`, just attach the
|
It is possible to connect many types of audio devices to `disp-sys-audio`,
|
||||||
devices to the AudioVM. Note that attached devices don't take precedence over
|
just attach the devices to the AudioVM. Note that attached devices don't take
|
||||||
built-in audio. To choose which playback and recording device a qube should
|
precedence over built-in audio, happens with USB devices. To choose which
|
||||||
use, on `disp-sys-audio`, from the application menu, click on `Volume Control`
|
playback and recording device a qube should use, on `disp-sys-audio`, from the
|
||||||
or from the terminal, run `pavucontrol`. Select the `Playback` and `Recording`
|
application menu, click on `Volume Control` or from the terminal, run
|
||||||
tab, find your client qube and select the wanted device.
|
`pavucontrol`. Select the `Playback` and `Recording` tab, find your client
|
||||||
|
qube and select the wanted device.
|
||||||
|
|
||||||
For more information, please refer to the
|
For more information, please refer to the
|
||||||
[usage of sys-usb](../sys-usb/README.md#usage).
|
[usage of sys-usb](../sys-usb/README.md#usage).
|
||||||
|
|
||||||
|
### How to use advanced audio processing capabilities
|
||||||
|
|
||||||
|
You must run the `install-easyeffects` state as described in the installation
|
||||||
|
section. Instead of using `Pavucontrol`, use `Easy Effects` for advanced audio
|
||||||
|
processing capabilities.
|
||||||
|
|
||||||
### How to use Bluetooth
|
### How to use Bluetooth
|
||||||
|
|
||||||
#### How to make the Bluetooth icon appear in the system tray
|
#### How to make the Bluetooth icon appear in the system tray
|
||||||
|
8
salt/sys-audio/appmenus.sls
Normal file
8
salt/sys-audio/appmenus.sls
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
{% from 'utils/macros/sync-appmenus.sls' import sync_appmenus -%}
|
||||||
|
{{ sync_appmenus('tpl-' ~ sls_path) }}
|
10
salt/sys-audio/appmenus.top
Normal file
10
salt/sys-audio/appmenus.top
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'dom0':
|
||||||
|
- match: nodegroup
|
||||||
|
- sys-audio.appmenus
|
@ -15,6 +15,12 @@ require:
|
|||||||
- sls: {{ slsdotpath }}.clone
|
- sls: {{ slsdotpath }}.clone
|
||||||
prefs:
|
prefs:
|
||||||
- audiovm: ""
|
- audiovm: ""
|
||||||
|
features:
|
||||||
|
- set:
|
||||||
|
# editorconfig-checker-disable
|
||||||
|
- default-menu-items: "easyeffects.desktop pavucontrol.desktop qubes-run-terminal.desktop qubes-open-file-manager.desktop qubes-start.desktop" # noqa: 204
|
||||||
|
- menu-items: "easyeffects.desktop pavucontrol.desktop qubes-run-terminal.desktop qubes-open-file-manager.desktop qubes-start.desktop" # noqa: 204
|
||||||
|
# editorconfig-checker-enable
|
||||||
{%- endload %}
|
{%- endload %}
|
||||||
{{ load(defaults) }}
|
{{ load(defaults) }}
|
||||||
|
|
||||||
@ -46,10 +52,14 @@ features:
|
|||||||
- service.cups-browsed
|
- service.cups-browsed
|
||||||
- service.meminfo-writer
|
- service.meminfo-writer
|
||||||
- service.qubes-updates-proxy
|
- service.qubes-updates-proxy
|
||||||
|
- set:
|
||||||
|
# editorconfig-checker-disable
|
||||||
|
- menu-items: "easyeffects.desktop pavucontrol.desktop qubes-run-terminal.desktop qubes-open-file-manager.desktop qubes-start.desktop" # noqa: 204
|
||||||
|
# editorconfig-checker-enable
|
||||||
{%- endload %}
|
{%- endload %}
|
||||||
{{ load(defaults) }}
|
{{ load(defaults) }}
|
||||||
|
|
||||||
{% set audio_pcidevs = salt['grains.get']('pci_audio_devs', []) -%}
|
{% set audio_pcidevs = salt['grains.get']('pci_audio_devs', []) %}
|
||||||
{% load_yaml as defaults -%}
|
{% load_yaml as defaults -%}
|
||||||
name: disp-{{ slsdotpath }}
|
name: disp-{{ slsdotpath }}
|
||||||
force: True
|
force: True
|
||||||
@ -78,6 +88,10 @@ features:
|
|||||||
- service.cups-browsed
|
- service.cups-browsed
|
||||||
- service.meminfo-writer
|
- service.meminfo-writer
|
||||||
- service.qubes-updates-proxy
|
- service.qubes-updates-proxy
|
||||||
|
- set:
|
||||||
|
# editorconfig-checker-disable
|
||||||
|
- menu-items: "easyeffects.desktop pavucontrol.desktop qubes-run-terminal.desktop qubes-open-file-manager.desktop qubes-start.desktop" # noqa: 204
|
||||||
|
# editorconfig-checker-enable
|
||||||
tags:
|
tags:
|
||||||
- add:
|
- add:
|
||||||
- audiovm
|
- audiovm
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 - 2024 Yukikoo neowutran <https://neowutran.ovh>
|
# SPDX-FileCopyrightText: 2023 - 2024 Neowutran <https://neowutran.ovh>
|
||||||
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
21
salt/sys-audio/install-easyeffects.sls
Normal file
21
salt/sys-audio/install-easyeffects.sls
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
{% if grains['nodename'] != 'dom0' -%}
|
||||||
|
|
||||||
|
include:
|
||||||
|
- utils.tools.common.update
|
||||||
|
|
||||||
|
"{{ slsdotpath }}-easyeffects-installed":
|
||||||
|
pkg.installed:
|
||||||
|
- require:
|
||||||
|
- sls: utils.tools.common.update
|
||||||
|
- install_recommends: False
|
||||||
|
- skip_suggestions: True
|
||||||
|
- pkgs:
|
||||||
|
- easyeffects
|
||||||
|
|
||||||
|
{% endif -%}
|
10
salt/sys-audio/install-easyeffects.top
Normal file
10
salt/sys-audio/install-easyeffects.top
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'tpl-sys-audio':
|
||||||
|
- match: list
|
||||||
|
- sys-audio.install-easyeffects
|
@ -30,6 +30,7 @@ the USB controllers to different qubes is possible.
|
|||||||
sudo qubesctl top.enable sys-usb
|
sudo qubesctl top.enable sys-usb
|
||||||
sudo qubesctl --targets=tpl-sys-usb state.apply
|
sudo qubesctl --targets=tpl-sys-usb state.apply
|
||||||
sudo qubesctl top.disable sys-usb
|
sudo qubesctl top.disable sys-usb
|
||||||
|
sudo qubesctl state.apply sys-usb.appmenus
|
||||||
```
|
```
|
||||||
|
|
||||||
* State:
|
* State:
|
||||||
@ -39,6 +40,7 @@ sudo qubesctl top.disable sys-usb
|
|||||||
```sh
|
```sh
|
||||||
sudo qubesctl state.apply sys-usb.create
|
sudo qubesctl state.apply sys-usb.create
|
||||||
sudo qubesctl --skip-dom0 --targets=tpl-sys-usb state.apply sys-usb.install
|
sudo qubesctl --skip-dom0 --targets=tpl-sys-usb state.apply sys-usb.install
|
||||||
|
sudo qubesctl state.apply sys-usb.appmenus
|
||||||
```
|
```
|
||||||
|
|
||||||
<!-- pkg:end:post-install -->
|
<!-- pkg:end:post-install -->
|
||||||
|
8
salt/sys-usb/appmenus.sls
Normal file
8
salt/sys-usb/appmenus.sls
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
{% from 'utils/macros/sync-appmenus.sls' import sync_appmenus -%}
|
||||||
|
{{ sync_appmenus('tpl-' ~ sls_path) }}
|
10
salt/sys-usb/appmenus.top
Normal file
10
salt/sys-usb/appmenus.top
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'dom0':
|
||||||
|
- match: nodegroup
|
||||||
|
- sys-usb.appmenus
|
@ -28,6 +28,12 @@ require:
|
|||||||
- sls: {{ slsdotpath }}.clone
|
- sls: {{ slsdotpath }}.clone
|
||||||
prefs:
|
prefs:
|
||||||
- audiovm: ""
|
- audiovm: ""
|
||||||
|
features:
|
||||||
|
- set:
|
||||||
|
# editorconfig-checker-disable
|
||||||
|
- default-menu-items: "easyeffects.desktop pavucontrol.desktop qubes-run-terminal.desktop qubes-open-file-manager.desktop qubes-start.desktop" # noqa: 204
|
||||||
|
- menu-items: "easyeffects.desktop pavucontrol.desktop qubes-run-terminal.desktop qubes-open-file-manager.desktop qubes-start.desktop" # noqa: 204
|
||||||
|
# editorconfig-checker-enable
|
||||||
{%- endload %}
|
{%- endload %}
|
||||||
{{ load(defaults) }}
|
{{ load(defaults) }}
|
||||||
|
|
||||||
@ -60,6 +66,10 @@ features:
|
|||||||
- service.cups-browsed
|
- service.cups-browsed
|
||||||
- service.meminfo-writer
|
- service.meminfo-writer
|
||||||
- service.qubes-updates-proxy
|
- service.qubes-updates-proxy
|
||||||
|
- set:
|
||||||
|
# editorconfig-checker-disable
|
||||||
|
- menu-items: "easyeffects.desktop pavucontrol.desktop qubes-run-terminal.desktop qubes-open-file-manager.desktop qubes-start.desktop" # noqa: 204
|
||||||
|
# editorconfig-checker-enable
|
||||||
{%- endload %}
|
{%- endload %}
|
||||||
{{ load(defaults) }}
|
{{ load(defaults) }}
|
||||||
|
|
||||||
@ -144,6 +154,10 @@ features:
|
|||||||
- service.cups-browsed
|
- service.cups-browsed
|
||||||
- service.meminfo-writer
|
- service.meminfo-writer
|
||||||
- service.qubes-updates-proxy
|
- service.qubes-updates-proxy
|
||||||
|
- set:
|
||||||
|
# editorconfig-checker-disable
|
||||||
|
- menu-items: "easyeffects.desktop pavucontrol.desktop qubes-run-terminal.desktop qubes-open-file-manager.desktop qubes-start.desktop" # noqa: 204
|
||||||
|
# editorconfig-checker-enable
|
||||||
tags:
|
tags:
|
||||||
- add:
|
- add:
|
||||||
- usbvm
|
- usbvm
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2023 - 2024 Neowutran <https://neowutran.ovh>
|
||||||
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
Loading…
Reference in New Issue
Block a user