DuckDuckGo and Google search Linux share Bluetooth via SSH and Linux Bluetooth over SSH first page of results only seem to be about SSH over Bluetooth.
DuckDuckGo search Linux share Bluetooth to another computer.
DuckDuckGo and Google search *Linux share Bluetooth via SSH* and *Linux Bluetooth over SSH* first page of results only seem to be about *SSH over Bluetooth*.
DuckDuckGo search *Linux share Bluetooth to another computer*.
it feels like it would play the audio on another computer while the aim is to play on another Bluetooth speaker not being a computer.
https://books.google.fr/books?id=96V4AgAAQBAJ&pg=PA442
Source: [the Super User answer 998877](https://superuser.com/a/998877)
it feels like it would play the audio on another computer while the aim is to play on another Bluetooth speaker not being a computer.
Maybe an alternative is to transmit with Internet the audio output of one computer as the output on another one having Bluetooth and share such audio to a Bluetooth speaker.
Maybe an alternative is to transmit with Internet the audio output of one computer as the output on another one having Bluetooth and share such audio to a Bluetooth speaker.
[The Super User answer 311830](https://superuser.com/a/311830):
```bash
pax11publish
```
does not return anything.
```bash
xprop -root PULSE_SERVER
```
```
PULSE_SERVER: not found.
```
At least from Debian 12 GNOME laptop to Debian 12 OverClock3000 Virtual Machine Manager virtual machine running on Debian 12 GNOME Pegasus with Remmina > Advanced > Audio output mode > Local instead of Off does not help playing the remote audio locally. Local Sound GNOME settings do not seem to show anything going on with remote VLC audio running even if restart the latter.
At least from Debian 12 GNOME laptop to Debian 12 OverClock3000 Virtual Machine Manager virtual machine running on Debian 12 GNOME Pegasus with Remmina > *Advanced* > *Audio output mode* > *Local* instead of *Off* does not help playing the remote audio locally. Local *Sound* GNOME settings do not seem to show anything going on with remote VLC audio running even if restart the latter.
Well it works from my Linux Mint 22.1 Cinnamon Framework 13 to Pegasus but both with QualityBest (slowest) and Poor (fastest) the sound is jerky.
Well it works from my Linux Mint 22.1 Cinnamon Framework 13 to Pegasus but both with *Quality* *Best (slowest)* and *Poor (fastest)* the sound is jerky.
-R [bind_address:]port:host:hostport
-R [bind_address:]port:local_socket
-R remote_socket:host:hostport
-R remote_socket:local_socket
-R [bind_address:]port
Specifies that connections to the given TCP port or Unix socket
on the remote (server) host are to be forwarded to the local
side.
This works by allocating a socket to listen to either a TCP
port or to a Unix socket on the remote side. Whenever a con‐
nection is made to this port or Unix socket, the connection is
forwarded over the secure channel, and a connection is made
from the local machine to either an explicit destination speci‐
fied by host port hostport, or local_socket, or, if no explicit
destination was specified, ssh will act as a SOCKS 4/5 proxy
and forward connections to the destinations requested by the
remote SOCKS client.
Port forwardings can also be specified in the configuration
file. Privileged ports can be forwarded only when logging in
as root on the remote machine. IPv6 addresses can be specified
by enclosing the address in square brackets.
By default, TCP listening sockets on the server will be bound
to the loopback interface only. This may be overridden by
specifying a bind_address. An empty bind_address, or the ad‐
dress ‘*’, indicates that the remote socket should listen on
all interfaces. Specifying a remote bind_address will only
succeed if the server's GatewayPorts option is enabled (see
sshd_config(5)).
If the port argument is ‘0’, the listen port will be dynami‐
cally allocated on the server and reported to the client at run
time. When used together with -O forward, the allocated port
will be printed to the standard output.
https://chat.mistral.ai/chat/9db514cb-60c9-45bf-b82c-394d7ac6bcf2
> Forwarding Bluetooth Audio (A2DP)
may help.
Unclear how *USB/IP for Bluetooth Dongles* would be detected as do not specify hostname or IP.
`btvirt` and `bluez` could be investigated.
https://chatgpt.com/share/699f086a-4ac8-8002-8b0e-69682b293aff
```bash
man ssh
```
<details>
<summary>Output excerpt:</summary>
```
-R [bind_address:]port:host:hostport
-R [bind_address:]port:local_socket
-R remote_socket:host:hostport
-R remote_socket:local_socket
-R [bind_address:]port
Specifies that connections to the given TCP port or Unix socket
on the remote (server) host are to be forwarded to the local
side.
This works by allocating a socket to listen to either a TCP
port or to a Unix socket on the remote side. Whenever a con‐
nection is made to this port or Unix socket, the connection is
forwarded over the secure channel, and a connection is made
from the local machine to either an explicit destination speci‐
fied by host port hostport, or local_socket, or, if no explicit
destination was specified, ssh will act as a SOCKS 4/5 proxy
and forward connections to the destinations requested by the
remote SOCKS client.
Port forwardings can also be specified in the configuration
file. Privileged ports can be forwarded only when logging in
as root on the remote machine. IPv6 addresses can be specified
by enclosing the address in square brackets.
By default, TCP listening sockets on the server will be bound
to the loopback interface only. This may be overridden by
specifying a bind_address. An empty bind_address, or the ad‐
dress ‘*’, indicates that the remote socket should listen on
all interfaces. Specifying a remote bind_address will only
succeed if the server's GatewayPorts option is enabled (see
sshd_config(5)).
If the port argument is ‘0’, the listen port will be dynami‐
cally allocated on the server and reported to the client at run
time. When used together with -O forward, the allocated port
will be printed to the standard output.
```
</details>
Waiting to connect to bluetoothd...[bluetooth]# Agent registered
[bluetooth]# help
Menu main:
Available commands:
-------------------
advertise Advertise Options Submenu
monitor Advertisement Monitor Options Submenu
scan Scan Options Submenu
gatt Generic Attribute Submenu
admin Admin Policy Submenu
player Media Player Submenu
endpoint Media Endpoint Submenu
transport Media Transport Submenu
mgmt Management Submenu
monitor Advertisement Monitor Submenu
list List available controllers
show [ctrl] Controller information
select <ctrl> Select default controller
devices [Paired/Bonded/Trusted/Connected] List available devices, with an optional property as the filter
system-alias <name> Set controller alias
reset-alias Reset controller alias
power <on/off> Set controller power
pairable <on/off> Set controller pairable mode
discoverable <on/off> Set controller discoverable mode
discoverable-timeout [value] Set discoverable timeout
agent <on/off/auto/capability> Enable/disable agent with given capability
default-agent Set agent as the default one
advertise <on/off/type> Enable/disable advertising with given type
set-alias <alias> Set device alias
scan <on/off/bredr/le> Scan for devices
info [dev/set] Device/Set information
pair [dev] Pair with device
cancel-pairing [dev] Cancel pairing with device
trust [dev] Trust device
untrust [dev] Untrust device
block [dev] Block device
unblock [dev] Unblock device
remove <dev> Remove device
connect <dev> Connect device
disconnect [dev] Disconnect device
menu <name> Select submenu
version Display version
quit Quit program
exit Quit program
help Display help about this program
export Print environment variables
[bluetooth]# list
Controller 8C:XX:XX:XX:XX:5D benjamin-loison-framework [default]
[bluetooth]#
On my Linux Mint 22.3 Cinnamon:
```bash
bluetoothctl
```
<details>
<summary>Output:</summary>
```
Waiting to connect to bluetoothd...[bluetooth]# Agent registered
[bluetooth]# help
Menu main:
Available commands:
-------------------
advertise Advertise Options Submenu
monitor Advertisement Monitor Options Submenu
scan Scan Options Submenu
gatt Generic Attribute Submenu
admin Admin Policy Submenu
player Media Player Submenu
endpoint Media Endpoint Submenu
transport Media Transport Submenu
mgmt Management Submenu
monitor Advertisement Monitor Submenu
list List available controllers
show [ctrl] Controller information
select <ctrl> Select default controller
devices [Paired/Bonded/Trusted/Connected] List available devices, with an optional property as the filter
system-alias <name> Set controller alias
reset-alias Reset controller alias
power <on/off> Set controller power
pairable <on/off> Set controller pairable mode
discoverable <on/off> Set controller discoverable mode
discoverable-timeout [value] Set discoverable timeout
agent <on/off/auto/capability> Enable/disable agent with given capability
default-agent Set agent as the default one
advertise <on/off/type> Enable/disable advertising with given type
set-alias <alias> Set device alias
scan <on/off/bredr/le> Scan for devices
info [dev/set] Device/Set information
pair [dev] Pair with device
cancel-pairing [dev] Cancel pairing with device
trust [dev] Trust device
untrust [dev] Untrust device
block [dev] Block device
unblock [dev] Unblock device
remove <dev> Remove device
connect <dev> Connect device
disconnect [dev] Disconnect device
menu <name> Select submenu
version Display version
quit Quit program
exit Quit program
help Display help about this program
export Print environment variables
[bluetooth]# list
Controller 8C:XX:XX:XX:XX:5D benjamin-loison-framework [default]
[bluetooth]#
```
</details>
DuckDuckGo search *Linux share via SSH sound output*.
[The Super User answer 422630](https://superuser.com/a/422630):
https://joshdata.wordpress.com/2009/02/11/pulseaudio-sound-forwarding-across-a-network/
Command 'paprefs' not found, but can be installed with:
sudo apt install paprefs
Google search *Linux share via SSH sound output*.
[The Super User answer 311830](https://superuser.com/a/311830):
```bash
paprefs
```
<details>
<summary>Output:</summary>
```
Command 'paprefs' not found, but can be installed with:
sudo apt install paprefs
```
</details>
#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
# This startup script is used only if PulseAudio is started per-user
# (i.e. not in system mode)
.fail
### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
### Automatically augment property information from .desktop files
### stored in /usr/share/application
load-module module-augment-properties
### Should be after module-*-restore but before module-*-detect
load-module module-switch-on-port-available
### Use hot-plugged devices like Bluetooth or USB automatically (LP: #1702794)
.ifexists module-switch-on-connect.so
load-module module-switch-on-connect
.endif
### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif
### Automatically connect sink and source if JACK server is present
.ifexists module-jackdbus-detect.so
.nofail
load-module module-jackdbus-detect channels=2
.fail
.endif
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix
### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish
### Load the RTP receiver module (also configured via paprefs, see above)
#load-module module-rtp-recv
### Load the RTP sender module (also configured via paprefs, see above)
#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
#load-module module-rtp-send source=rtp.monitor
### Load additional modules from GSettings. This can be configured with the paprefs tool.
### Please keep in mind that the modules configured by paprefs might conflict with manually
### loaded modules.
.ifexists module-gsettings.so
.nofail
load-module module-gsettings
.fail
.endif
### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent modules
### that look up the default sink/source get the right value
load-module module-default-device-restore
### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink
### Honour intended role device property
load-module module-intended-roles
### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle
### If autoexit on idle is enabled we want to make sure we only quit
### when no local session needs us anymore.
.ifexists module-console-kit.so
load-module module-console-kit
.endif
.ifexists module-systemd-login.so
load-module module-systemd-login
.endif
### Enable positioned event sounds
load-module module-position-event-sounds
### Cork music/video streams when a phone stream is active
load-module module-role-cork
### Block audio recording for snap confined packages unless they have
### the "pulseaudio" or "audio-record" interfaces plugged.
.ifexists module-snap-policy.so
load-module module-snap-policy
.endif
### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply
### Make some devices default
#set-default-sink output
#set-default-source input
### Allow including a default.pa.d directory, which if present, can be used
### for additional configuration snippets.
### Note that those snippet files must have a .pa file extension, not .conf
.nofail
.include /etc/pulse/default.pa.d
<details>
<summary><code>/etc/pulse/default.pa</code>:</summary>
```
#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
# This startup script is used only if PulseAudio is started per-user
# (i.e. not in system mode)
.fail
### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
### Automatically augment property information from .desktop files
### stored in /usr/share/application
load-module module-augment-properties
### Should be after module-*-restore but before module-*-detect
load-module module-switch-on-port-available
### Use hot-plugged devices like Bluetooth or USB automatically (LP: #1702794)
.ifexists module-switch-on-connect.so
load-module module-switch-on-connect
.endif
### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif
### Automatically connect sink and source if JACK server is present
.ifexists module-jackdbus-detect.so
.nofail
load-module module-jackdbus-detect channels=2
.fail
.endif
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix
### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish
### Load the RTP receiver module (also configured via paprefs, see above)
#load-module module-rtp-recv
### Load the RTP sender module (also configured via paprefs, see above)
#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
#load-module module-rtp-send source=rtp.monitor
### Load additional modules from GSettings. This can be configured with the paprefs tool.
### Please keep in mind that the modules configured by paprefs might conflict with manually
### loaded modules.
.ifexists module-gsettings.so
.nofail
load-module module-gsettings
.fail
.endif
### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent modules
### that look up the default sink/source get the right value
load-module module-default-device-restore
### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink
### Honour intended role device property
load-module module-intended-roles
### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle
### If autoexit on idle is enabled we want to make sure we only quit
### when no local session needs us anymore.
.ifexists module-console-kit.so
load-module module-console-kit
.endif
.ifexists module-systemd-login.so
load-module module-systemd-login
.endif
### Enable positioned event sounds
load-module module-position-event-sounds
### Cork music/video streams when a phone stream is active
load-module module-role-cork
### Block audio recording for snap confined packages unless they have
### the "pulseaudio" or "audio-record" interfaces plugged.
.ifexists module-snap-policy.so
load-module module-snap-policy
.endif
### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply
### Make some devices default
#set-default-sink output
#set-default-source input
### Allow including a default.pa.d directory, which if present, can be used
### for additional configuration snippets.
### Note that those snippet files must have a .pa file extension, not .conf
.nofail
.include /etc/pulse/default.pa.d
```
</details>
Command 'pulseaudio' not found, but can be installed with:
sudo apt install pulseaudio
https://chat.mistral.ai/chat/3f352c16-ef91-472b-91c5-d792aa639315
On Debian 13 GNOME HP laptop:
```bash
pulseaudio
```
<details>
<summary>Output:</summary>
```
Command 'pulseaudio' not found, but can be installed with:
sudo apt install pulseaudio
```
</details>
I created as requested ~/.config/pipewire/pipewire-pulse.conf.d/ssh-tunnel.conf.
systemctl --user restart pipewire pipewire-pulse
does not return anything.
I created as requested `~/.config/pipewire/pipewire-pulse.conf.d/ssh-tunnel.conf`.
```bash
systemctl --user restart pipewire pipewire-pulse
```
does not return anything.
DuckDuckGo and Google search *GNOME forward audio output SSH* and *Forward PipeWire over SSH*.
[The Super User answer 1718607](https://superuser.com/a/1718607)
https://gist.github.com/savegame/58ae5966c58a71fda5d3800b335eb2f5/7d7171bc9f41c8e3a61d9f8e6b6c9b418ba4e927
On Debian 13 GNOME HP laptop:
```bash
pactl
```
```
No valid command specified.
```
Command 'pavucontrol' not found, but can be installed with:
sudo apt install pavucontrol
On Pegasus:
```bash
pavucontrol
```
<details>
<summary>Output:</summary>
```
Command 'pavucontrol' not found, but can be installed with:
sudo apt install pavucontrol
```
</details>
Package: pipewire-jack
Version: 1.4.2-1
Priority: optional
Section: sound
Source: pipewire
Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@alioth-lists.debian.net>
Installed-Size: 562 kB
Depends: pipewire (= 1.4.2-1), libc6 (>= 2.38), libpipewire-0.3-0t64 (= 1.4.2-1)
Breaks: pipewire-audio-client-libraries (<< 0.3.54-1~)
Replaces: pipewire-audio-client-libraries (<< 0.3.54-1~)
Homepage: https://pipewire.org/
Download-Size: 134 kB
APT-Sources: http://deb.debian.org/debian trixie/main amd64 Packages
Description: PipeWire JACK plugin, for JACK applications to output via PipeWire
PipeWire is a server and user space API to deal with multimedia
pipelines. This includes:
.
- Making available sources of audio and video (such as from a capture devices
or application provided streams) and multiplexing this with clients.
- Accessing sources of audio and video for consumption.
- Generating graphs for audio and video processing.
.
This package contains a plugin for JACK applications to output via PipeWire.
Notice: There is 1 additional record. Please use the '-a' switch to see it
```bash
apt show pipewire-jack
```
<details>
<summary>Output:</summary>
```
Package: pipewire-jack
Version: 1.4.2-1
Priority: optional
Section: sound
Source: pipewire
Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@alioth-lists.debian.net>
Installed-Size: 562 kB
Depends: pipewire (= 1.4.2-1), libc6 (>= 2.38), libpipewire-0.3-0t64 (= 1.4.2-1)
Breaks: pipewire-audio-client-libraries (<< 0.3.54-1~)
Replaces: pipewire-audio-client-libraries (<< 0.3.54-1~)
Homepage: https://pipewire.org/
Download-Size: 134 kB
APT-Sources: http://deb.debian.org/debian trixie/main amd64 Packages
Description: PipeWire JACK plugin, for JACK applications to output via PipeWire
PipeWire is a server and user space API to deal with multimedia
pipelines. This includes:
.
- Making available sources of audio and video (such as from a capture devices
or application provided streams) and multiplexing this with clients.
- Accessing sources of audio and video for consumption.
- Generating graphs for audio and video processing.
.
This package contains a plugin for JACK applications to output via PipeWire.
Notice: There is 1 additional record. Please use the '-a' switch to see it
```
</details>
Installing:
pipewire-jack
Summary:
Upgrading: 0, Installing: 1, Removing: 0, Not Upgrading: 17
Download size: 134 kB
Space needed: 562 kB / 44.3 GB available
Get:1 http://deb.debian.org/debian trixie/main amd64 pipewire-jack amd64 1.4.2-1 [134 kB]
Fetched 134 kB in 0s (1,739 kB/s)
Selecting previously unselected package pipewire-jack:amd64.
(Reading database ... 635118 files and directories currently installed.)
Preparing to unpack .../pipewire-jack_1.4.2-1_amd64.deb ...
Unpacking pipewire-jack:amd64 (1.4.2-1) ...
Setting up pipewire-jack:amd64 (1.4.2-1) ...
Processing triggers for man-db (2.13.1-1) ...
Scanning processes...
Scanning processor microcode...
Scanning linux images...
Running kernel seems to be up-to-date.
The processor microcode seems to be up-to-date.
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
```bash
sudo apt install -y pipewire-jack
```
<details>
<summary>Output:</summary>
```
Installing:
pipewire-jack
Summary:
Upgrading: 0, Installing: 1, Removing: 0, Not Upgrading: 17
Download size: 134 kB
Space needed: 562 kB / 44.3 GB available
Get:1 http://deb.debian.org/debian trixie/main amd64 pipewire-jack amd64 1.4.2-1 [134 kB]
Fetched 134 kB in 0s (1,739 kB/s)
Selecting previously unselected package pipewire-jack:amd64.
(Reading database ... 635118 files and directories currently installed.)
Preparing to unpack .../pipewire-jack_1.4.2-1_amd64.deb ...
Unpacking pipewire-jack:amd64 (1.4.2-1) ...
Setting up pipewire-jack:amd64 (1.4.2-1) ...
Processing triggers for man-db (2.13.1-1) ...
Scanning processes...
Scanning processor microcode...
Scanning linux images...
Running kernel seems to be up-to-date.
The processor microcode seems to be up-to-date.
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
```
</details>
error: one of the playback/record options must be provided
pw-cat [options] [<file>|-]
-h, --help Show this help
--version Show version
-v, --verbose Enable verbose operations
-R, --remote Remote daemon name
--media-type Set media type (default Audio)
--media-category Set media category (default Playback)
--media-role Set media role (default Music)
--target Set node target serial or name (default auto)
0 means don't link
--latency Set node latency (default 100ms)
Xunit (unit = s, ms, us, ns)
or direct samples (256)
the rate is the one of the source file
-P --properties Set node properties
--rate Sample rate (req. for rec) (default 48000)
--channels Number of channels (req. for rec) (default 2)
--channel-map Channel map
one of: "stereo", "surround-51",... or
comma separated list of channel names: eg. "FL,FR"
--format Sample format (ulaw|alaw|u8|s8|s16|s32|f32|f64) (req. for rec) (default s16)
--volume Stream volume 0-1.0 (default 1.000)
-q --quality Resampler quality (0 - 15) (default 4)
-a, --raw RAW mode
-p, --playback Playback mode
-r, --record Recording mode
-m, --midi Midi mode
-d, --dsd DSD mode
xpra
xpra: command not found
apt list | grep xpra
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
https://chatgpt.com/share/699f248e-6c8c-8002-a026-9236c94382cb
```bash
pw-cat
```
<details>
<summary>Output:</summary>
```
error: one of the playback/record options must be provided
pw-cat [options] [<file>|-]
-h, --help Show this help
--version Show version
-v, --verbose Enable verbose operations
-R, --remote Remote daemon name
--media-type Set media type (default Audio)
--media-category Set media category (default Playback)
--media-role Set media role (default Music)
--target Set node target serial or name (default auto)
0 means don't link
--latency Set node latency (default 100ms)
Xunit (unit = s, ms, us, ns)
or direct samples (256)
the rate is the one of the source file
-P --properties Set node properties
--rate Sample rate (req. for rec) (default 48000)
--channels Number of channels (req. for rec) (default 2)
--channel-map Channel map
one of: "stereo", "surround-51",... or
comma separated list of channel names: eg. "FL,FR"
--format Sample format (ulaw|alaw|u8|s8|s16|s32|f32|f64) (req. for rec) (default s16)
--volume Stream volume 0-1.0 (default 1.000)
-q --quality Resampler quality (0 - 15) (default 4)
-a, --raw RAW mode
-p, --playback Playback mode
-r, --record Recording mode
-m, --midi Midi mode
-d, --dsd DSD mode
```
</details>
```bash
xpra
```
```
xpra: command not found
```
```bash
apt list | grep xpra
```
```
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
```
exportPIPEWIRE_REMOTE=pipewire-remote
play /usr/share/sounds/gnome/default/alerts/click.ogg
play FAIL sox: Sorry, there is no default audio device configured
Over SSH:
On Pegasus:
```bash
ssh -R /tmp/pipewire-remote:/run/user/1000/pipewire-0 Benjamin-Loison-HP-Debian
```
Hence on Debian 13 GNOME HP laptop SSH:
```bash
export PIPEWIRE_REMOTE=pipewire-remote
play /usr/share/sounds/gnome/default/alerts/click.ogg
```
```
play FAIL sox: Sorry, there is no default audio device configured
```
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Tracked at Benjamin-Loison/android/issues/69.
+3
DuckDuckGo and Google search Linux share Bluetooth via SSH and Linux Bluetooth over SSH first page of results only seem to be about SSH over Bluetooth.
DuckDuckGo search Linux share Bluetooth to another computer.
The Super User answer 997814 is mostly stating that in theory it is a non-sense.
I read completely Wikipedia: Piconet (1234823980).
https://books.google.fr/books?id=96V4AgAAQBAJ&pg=PA442
Source: the Super User answer 998877
it feels like it would play the audio on another computer while the aim is to play on another Bluetooth speaker not being a computer.
Maybe an alternative is to transmit with Internet the audio output of one computer as the output on another one having Bluetooth and share such audio to a Bluetooth speaker.
DuckDuckGo search Linux share audio with another computer and SSH forward audio.
The Super User answer 311830:
does not return anything.
At least from Debian 12 GNOME laptop to Debian 12 OverClock3000 Virtual Machine Manager virtual machine running on Debian 12 GNOME Pegasus with Remmina > Advanced > Audio output mode > Local instead of Off does not help playing the remote audio locally. Local Sound GNOME settings do not seem to show anything going on with remote VLC audio running even if restart the latter.
Well it works from my Linux Mint 22.1 Cinnamon Framework 13 to Pegasus but both with Quality Best (slowest) and Poor (fastest) the sound is jerky.
https://chat.mistral.ai/chat/9db514cb-60c9-45bf-b82c-394d7ac6bcf2
may help.
Unclear how USB/IP for Bluetooth Dongles would be detected as do not specify hostname or IP.
btvirtandbluezcould be investigated.https://chatgpt.com/share/699f086a-4ac8-8002-8b0e-69682b293aff
Output excerpt:
On my Linux Mint 22.3 Cinnamon Framework 13:
Output:
On Debian 13 GNOME Pegasus:
Output:
On my Linux Mint 22.3 Cinnamon:
Output:
On Debian 13 GNOME:
Output:
On my Linux Mint 22.3 Cinnamon:
Output:
On my Linux Mint 22.3 Cinnamon:
I have the feeling that the detailed solution do not work for audio.
https://chat.mistral.ai/chat/46b3ef38-014d-44c2-a03c-b8cee1358a3d
Just forwarding audio without Bluetooth seems more general.
DuckDuckGo search Linux share via SSH sound output.
The Super User answer 422630:
https://joshdata.wordpress.com/2009/02/11/pulseaudio-sound-forwarding-across-a-network/
Google search Linux share via SSH sound output.
The Super User answer 311830:
Output:
Output:
pulseaudio/paprefs has 1 freedesktop GitLab star and last commit was 9 months ago.
Output:
does not return anything.
/etc/pulse/default.pa:does not return anything.
does not return anything.
DuckDuckGo search Linux check if pulseaudio or PipeWire is used.
https://mundobytes.com/en/How-to-tell-if-you%27re-using-Pipewire-on-Linux-and-not-PulseAudio/
Output:
Output:
does not return anything.
does not return anything.
DuckDuckGo search Debian GNOME where are sounds stored.
The Ask Ubuntu answer 1558 helps.
Output:
Output:
On Pegasus:
Output:
I don't want to give Pegasus access to my Linux Mint 22.3 Cinnamon.
does not return anything on Pegasus and my Linux Mint 22.3 Cinnamon.
https://chat.mistral.ai/chat/3f352c16-ef91-472b-91c5-d792aa639315
On Debian 13 GNOME HP laptop:
Output:
Output:
I created as requested
~/.config/pipewire/pipewire-pulse.conf.d/ssh-tunnel.conf.does not return anything.
hangs.
Output:
is still local.
/tmp/pulse.sockdoes not exist on Debian 13 GNOME HP laptop and Pegasus.Output:
DuckDuckGo and Google search GNOME forward audio output SSH and Forward PipeWire over SSH.
The Super User answer 1718607
https://gist.github.com/savegame/58ae5966c58a71fda5d3800b335eb2f5/7d7171bc9f41c8e3a61d9f8e6b6c9b418ba4e927
On Debian 13 GNOME HP laptop:
on my Debian 13 GNOME HP laptop.
on my Debian 13 GNOME Pegasus.
On Pegasus:
Output:
Output:
Related to Benjamin_Loison/system-config-printer/issues/4#issuecomment-10989020.
https://chat.mistral.ai/chat/668d25bd-0e69-4444-b2ac-defc57df7153
Output:
Output:
Output:
Output:
Output:
https://chatgpt.com/share/699f248e-6c8c-8002-a026-9236c94382cb
Output:
Over SSH:
On Pegasus:
Hence on Debian 13 GNOME HP laptop SSH: