Jump to content
Toggle sidebar
JookWiki
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Navigation
Main page
Recent changes
Random page
All pages
Help about MediaWiki
Tools
What links here
Related changes
Special pages
Page information
Editing
System-wide speakup
(section)
Page
Discussion
English
Read
Edit
Edit source
View history
More
Read
Edit
Edit source
View history
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== The problem == Linux is a multi-user system, but hardware and other resources are not. There's only one sound card and only one Speakup device. So these resources have to be shared somehow. Since around 2007 with the release of [https://www.freedesktop.org/wiki/Software/ConsoleKit/ ConsoleKit] the Linux desktop has handled sharing resources using the idea of seats. To put it simply: * Devices get allocated to seats * Logging in gives you a session * Only one session can use a seat at a time * Switching sessions requires handing over devices to another session The Speakup device has no support for sharing, but the sound card does. This leads to the following situation: # Linux boots # systemd gives root the current audio device # systemd starts espeakup as root # You can read the login prompt or login as root # You log in as your own user # systemd gives your user the current audio device # Your PulseAudio instance claims the device # The root espeakup can no longer speak # You can no longer use Speakup # You might have no sound at all if PulseAudio couldn't claim the device if espeakup was still talking while PulseAudio was starting # You switch to another TTY using Ctrl+Alt+F2 # systemd gives root the current audio device # Your PulseAudio instance frees the device # espeakup can talk again using the sound card Because espeakup can only speak when root is using the current seat effectively becomes useless outside logging in as root on your computer. It's also important to note that PulseAudio stores settings for volume and outputs. You might be using Bluetooth headphones at low volume but then switch to a root TTY and have espeakup blare loudly out your desktop speakers. It really makes me wonder why PulseAudio doesn't have a per-seat instance that lets you switch between sessions and preserves audio configuration but still swaps out which user's applications can use audio. As a quick note: PipeWire has the exact same behaviour, so for the most part you can substitute 'PulseAudio' with 'PipeWire' or any sound other server when reading this page.
Summary:
Please note that all contributions to JookWiki are considered to be released under the Creative Commons Zero (Public Domain) (see
JookWiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
To edit this page, please answer the question that appears below (
more info
):
Who owns this wiki?
Cancel
Editing help
(opens in new window)