Repository files navigation

speakup =======
speakup is a kernel-based speech synthesizer driver suite for Linux. It drives
various USB-based, serial-based and ISA-based synthesizer hardware, as well as
providing an interface for driving software-based synthesizers in userspace.
For installation instructions, see INSTALLATION.
For usage documentation, see the files in the doc/ subdirectory.
This release is intended to be built against Linux 5.9 or later.
Homepage: http://www.linux-speakup.org
Support is provided through a mailing list on the above site.
Usage
=====
There are different ways that speakup can be configured, but the most common
is building speakup and the synth drivers as modules. At this point it is just
a case of using modprobe to load a synth module driver, which will pull in
the speakup core as a dependency, e.g.:
modprobe speakup_soft
Further user documentation can be found in the doc/ subdirectory, specifically
doc/spkguide.txt. Some information here may be out of date, corrections are
accepted.
Implementation
==============
As mentioned above, speakup is implemented as a series of kernel drivers.
Usually this kind of thing would be kept purely in userspace, however by
implementing it this way, blind people would be excluded from kernel
development and other low-level activities due to not being able to 'see'
the early boot messages, kernel crash dumps, etc.
The long term plan is for kernel inclusion, but the kernel developers may
decide that this kind of functionality should be kept out of the kernel for
purely technical reasons.
Like the Linux kernel speakup is maintaned in a git repository which
can be retrieved from http://linux-speakup.org with the command:
git clone http://linux-speakup.org/speakup.git
Updating the source
===================
This repository is following the Linux source. It should be kept up to date with
the following procedure:
- From a Linux clone:
rm -f 00*
git format-patch 568035b01cfb107af8d2e4bd2fb9aea22cf5b868..HEAD drivers/accessibility/speakup Documentation/admin-guide/spkguide.txt
that produces the series of patches that were applied since last update.
- From the speakup repository, in the linux branch:
git am 0001*
If needed, fix the merge and commit. Repeat for each patch.
Copy over the linux files and commit any difference. That can happen due to
merge commit fixes.
- From the speakup repository, in the next branch:
git pull --rebase . linux
to merge the commits included in next, possibly just seeing that they were
applied in the Linux tree.
- From the speakup repository, in the submitted branch:
git pull --rebase . next
to merge the commits submitted to next, possibly just seeing that they were
applied in the next tree.
- From the speakup repository, in the main branch:
git pull . submitted
to eventually merge everything back into the main speakup tree.
- Update the git ID in the git format-patch command above, to the id of the last
patch that was applied.

About

Speakup is a screen review package for the Linux operating system

Resources

Stars

14 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

speakup =======
speakup is a kernel-based speech synthesizer driver suite for Linux. It drives
various USB-based, serial-based and ISA-based synthesizer hardware, as well as
providing an interface for driving software-based synthesizers in userspace.
For installation instructions, see INSTALLATION.
For usage documentation, see the files in the doc/ subdirectory.
This release is intended to be built against Linux 5.9 or later.
Homepage: http://www.linux-speakup.org
Support is provided through a mailing list on the above site.
Usage
=====
There are different ways that speakup can be configured, but the most common
is building speakup and the synth drivers as modules. At this point it is just
a case of using modprobe to load a synth module driver, which will pull in
the speakup core as a dependency, e.g.:
modprobe speakup_soft
Further user documentation can be found in the doc/ subdirectory, specifically
doc/spkguide.txt. Some information here may be out of date, corrections are
accepted.
Implementation
==============
As mentioned above, speakup is implemented as a series of kernel drivers.
Usually this kind of thing would be kept purely in userspace, however by
implementing it this way, blind people would be excluded from kernel
development and other low-level activities due to not being able to 'see'
the early boot messages, kernel crash dumps, etc.
The long term plan is for kernel inclusion, but the kernel developers may
decide that this kind of functionality should be kept out of the kernel for
purely technical reasons.
Like the Linux kernel speakup is maintaned in a git repository which
can be retrieved from http://linux-speakup.org with the command:
git clone http://linux-speakup.org/speakup.git
Updating the source
===================
This repository is following the Linux source. It should be kept up to date with
the following procedure:
- From a Linux clone:
rm -f 00*
git format-patch 568035b01cfb107af8d2e4bd2fb9aea22cf5b868..HEAD drivers/accessibility/speakup Documentation/admin-guide/spkguide.txt
that produces the series of patches that were applied since last update.
- From the speakup repository, in the linux branch:
git am 0001*
If needed, fix the merge and commit. Repeat for each patch.
Copy over the linux files and commit any difference. That can happen due to
merge commit fixes.
- From the speakup repository, in the next branch:
git pull --rebase . linux
to merge the commits included in next, possibly just seeing that they were
applied in the Linux tree.
- From the speakup repository, in the submitted branch:
git pull --rebase . next
to merge the commits submitted to next, possibly just seeing that they were
applied in the next tree.
- From the speakup repository, in the main branch:
git pull . submitted
to eventually merge everything back into the main speakup tree.
- Update the git ID in the git format-patch command above, to the id of the last
patch that was applied.

About

Speakup is a screen review package for the Linux operating system

Resources

Stars

14 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

speakup =======
speakup is a kernel-based speech synthesizer driver suite for Linux. It drives
various USB-based, serial-based and ISA-based synthesizer hardware, as well as
providing an interface for driving software-based synthesizers in userspace.
For installation instructions, see INSTALLATION.
For usage documentation, see the files in the doc/ subdirectory.
This release is intended to be built against Linux 5.9 or later.
Homepage: http://www.linux-speakup.org
Support is provided through a mailing list on the above site.
Usage
=====
There are different ways that speakup can be configured, but the most common
is building speakup and the synth drivers as modules. At this point it is just
a case of using modprobe to load a synth module driver, which will pull in
the speakup core as a dependency, e.g.:
modprobe speakup_soft
Further user documentation can be found in the doc/ subdirectory, specifically
doc/spkguide.txt. Some information here may be out of date, corrections are
accepted.
Implementation
==============
As mentioned above, speakup is implemented as a series of kernel drivers.
Usually this kind of thing would be kept purely in userspace, however by
implementing it this way, blind people would be excluded from kernel
development and other low-level activities due to not being able to 'see'
the early boot messages, kernel crash dumps, etc.
The long term plan is for kernel inclusion, but the kernel developers may
decide that this kind of functionality should be kept out of the kernel for
purely technical reasons.
Like the Linux kernel speakup is maintaned in a git repository which
can be retrieved from http://linux-speakup.org with the command:
git clone http://linux-speakup.org/speakup.git
Updating the source
===================
This repository is following the Linux source. It should be kept up to date with
the following procedure:
- From a Linux clone:
rm -f 00*
git format-patch 568035b01cfb107af8d2e4bd2fb9aea22cf5b868..HEAD drivers/accessibility/speakup Documentation/admin-guide/spkguide.txt
that produces the series of patches that were applied since last update.
- From the speakup repository, in the linux branch:
git am 0001*
If needed, fix the merge and commit. Repeat for each patch.
Copy over the linux files and commit any difference. That can happen due to
merge commit fixes.
- From the speakup repository, in the next branch:
git pull --rebase . linux
to merge the commits included in next, possibly just seeing that they were
applied in the Linux tree.
- From the speakup repository, in the submitted branch:
git pull --rebase . next
to merge the commits submitted to next, possibly just seeing that they were
applied in the next tree.
- From the speakup repository, in the main branch:
git pull . submitted
to eventually merge everything back into the main speakup tree.
- Update the git ID in the git format-patch command above, to the id of the last
patch that was applied.

About

Speakup is a screen review package for the Linux operating system

Resources

Stars

14 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

speakup =======
speakup is a kernel-based speech synthesizer driver suite for Linux. It drives
various USB-based, serial-based and ISA-based synthesizer hardware, as well as
providing an interface for driving software-based synthesizers in userspace.
For installation instructions, see INSTALLATION.
For usage documentation, see the files in the doc/ subdirectory.
This release is intended to be built against Linux 5.9 or later.
Homepage: http://www.linux-speakup.org
Support is provided through a mailing list on the above site.
Usage
=====
There are different ways that speakup can be configured, but the most common
is building speakup and the synth drivers as modules. At this point it is just
a case of using modprobe to load a synth module driver, which will pull in
the speakup core as a dependency, e.g.:
modprobe speakup_soft
Further user documentation can be found in the doc/ subdirectory, specifically
doc/spkguide.txt. Some information here may be out of date, corrections are
accepted.
Implementation
==============
As mentioned above, speakup is implemented as a series of kernel drivers.
Usually this kind of thing would be kept purely in userspace, however by
implementing it this way, blind people would be excluded from kernel
development and other low-level activities due to not being able to 'see'
the early boot messages, kernel crash dumps, etc.
The long term plan is for kernel inclusion, but the kernel developers may
decide that this kind of functionality should be kept out of the kernel for
purely technical reasons.
Like the Linux kernel speakup is maintaned in a git repository which
can be retrieved from http://linux-speakup.org with the command:
git clone http://linux-speakup.org/speakup.git
Updating the source
===================
This repository is following the Linux source. It should be kept up to date with
the following procedure:
- From a Linux clone:
rm -f 00*
git format-patch 568035b01cfb107af8d2e4bd2fb9aea22cf5b868..HEAD drivers/accessibility/speakup Documentation/admin-guide/spkguide.txt
that produces the series of patches that were applied since last update.
- From the speakup repository, in the linux branch:
git am 0001*
If needed, fix the merge and commit. Repeat for each patch.
Copy over the linux files and commit any difference. That can happen due to
merge commit fixes.
- From the speakup repository, in the next branch:
git pull --rebase . linux
to merge the commits included in next, possibly just seeing that they were
applied in the Linux tree.
- From the speakup repository, in the submitted branch:
git pull --rebase . next
to merge the commits submitted to next, possibly just seeing that they were
applied in the next tree.
- From the speakup repository, in the main branch:
git pull . submitted
to eventually merge everything back into the main speakup tree.
- Update the git ID in the git format-patch command above, to the id of the last
patch that was applied.

About

Speakup is a screen review package for the Linux operating system

Resources

Stars

14 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

speakup =======
speakup is a kernel-based speech synthesizer driver suite for Linux. It drives
various USB-based, serial-based and ISA-based synthesizer hardware, as well as
providing an interface for driving software-based synthesizers in userspace.
For installation instructions, see INSTALLATION.
For usage documentation, see the files in the doc/ subdirectory.
This release is intended to be built against Linux 5.9 or later.
Homepage: http://www.linux-speakup.org
Support is provided through a mailing list on the above site.
Usage
=====
There are different ways that speakup can be configured, but the most common
is building speakup and the synth drivers as modules. At this point it is just
a case of using modprobe to load a synth module driver, which will pull in
the speakup core as a dependency, e.g.:
modprobe speakup_soft
Further user documentation can be found in the doc/ subdirectory, specifically
doc/spkguide.txt. Some information here may be out of date, corrections are
accepted.
Implementation
==============
As mentioned above, speakup is implemented as a series of kernel drivers.
Usually this kind of thing would be kept purely in userspace, however by
implementing it this way, blind people would be excluded from kernel
development and other low-level activities due to not being able to 'see'
the early boot messages, kernel crash dumps, etc.
The long term plan is for kernel inclusion, but the kernel developers may
decide that this kind of functionality should be kept out of the kernel for
purely technical reasons.
Like the Linux kernel speakup is maintaned in a git repository which
can be retrieved from http://linux-speakup.org with the command:
git clone http://linux-speakup.org/speakup.git
Updating the source
===================
This repository is following the Linux source. It should be kept up to date with
the following procedure:
- From a Linux clone:
rm -f 00*
git format-patch 568035b01cfb107af8d2e4bd2fb9aea22cf5b868..HEAD drivers/accessibility/speakup Documentation/admin-guide/spkguide.txt
that produces the series of patches that were applied since last update.
- From the speakup repository, in the linux branch:
git am 0001*
If needed, fix the merge and commit. Repeat for each patch.
Copy over the linux files and commit any difference. That can happen due to
merge commit fixes.
- From the speakup repository, in the next branch:
git pull --rebase . linux
to merge the commits included in next, possibly just seeing that they were
applied in the Linux tree.
- From the speakup repository, in the submitted branch:
git pull --rebase . next
to merge the commits submitted to next, possibly just seeing that they were
applied in the next tree.
- From the speakup repository, in the main branch:
git pull . submitted
to eventually merge everything back into the main speakup tree.
- Update the git ID in the git format-patch command above, to the id of the last
patch that was applied.

About

Speakup is a screen review package for the Linux operating system

Resources

Stars

14 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

speakup =======
speakup is a kernel-based speech synthesizer driver suite for Linux. It drives
various USB-based, serial-based and ISA-based synthesizer hardware, as well as
providing an interface for driving software-based synthesizers in userspace.
For installation instructions, see INSTALLATION.
For usage documentation, see the files in the doc/ subdirectory.
This release is intended to be built against Linux 5.9 or later.
Homepage: http://www.linux-speakup.org
Support is provided through a mailing list on the above site.
Usage
=====
There are different ways that speakup can be configured, but the most common
is building speakup and the synth drivers as modules. At this point it is just
a case of using modprobe to load a synth module driver, which will pull in
the speakup core as a dependency, e.g.:
modprobe speakup_soft
Further user documentation can be found in the doc/ subdirectory, specifically
doc/spkguide.txt. Some information here may be out of date, corrections are
accepted.
Implementation
==============
As mentioned above, speakup is implemented as a series of kernel drivers.
Usually this kind of thing would be kept purely in userspace, however by
implementing it this way, blind people would be excluded from kernel
development and other low-level activities due to not being able to 'see'
the early boot messages, kernel crash dumps, etc.
The long term plan is for kernel inclusion, but the kernel developers may
decide that this kind of functionality should be kept out of the kernel for
purely technical reasons.
Like the Linux kernel speakup is maintaned in a git repository which
can be retrieved from http://linux-speakup.org with the command:
git clone http://linux-speakup.org/speakup.git
Updating the source
===================
This repository is following the Linux source. It should be kept up to date with
the following procedure:
- From a Linux clone:
rm -f 00*
git format-patch 568035b01cfb107af8d2e4bd2fb9aea22cf5b868..HEAD drivers/accessibility/speakup Documentation/admin-guide/spkguide.txt
that produces the series of patches that were applied since last update.
- From the speakup repository, in the linux branch:
git am 0001*
If needed, fix the merge and commit. Repeat for each patch.
Copy over the linux files and commit any difference. That can happen due to
merge commit fixes.
- From the speakup repository, in the next branch:
git pull --rebase . linux
to merge the commits included in next, possibly just seeing that they were
applied in the Linux tree.
- From the speakup repository, in the submitted branch:
git pull --rebase . next
to merge the commits submitted to next, possibly just seeing that they were
applied in the next tree.
- From the speakup repository, in the main branch:
git pull . submitted
to eventually merge everything back into the main speakup tree.
- Update the git ID in the git format-patch command above, to the id of the last
patch that was applied.

About

Speakup is a screen review package for the Linux operating system

Resources

Stars

14 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

speakup =======
speakup is a kernel-based speech synthesizer driver suite for Linux. It drives
various USB-based, serial-based and ISA-based synthesizer hardware, as well as
providing an interface for driving software-based synthesizers in userspace.
For installation instructions, see INSTALLATION.
For usage documentation, see the files in the doc/ subdirectory.
This release is intended to be built against Linux 5.9 or later.
Homepage: http://www.linux-speakup.org
Support is provided through a mailing list on the above site.
Usage
=====
There are different ways that speakup can be configured, but the most common
is building speakup and the synth drivers as modules. At this point it is just
a case of using modprobe to load a synth module driver, which will pull in
the speakup core as a dependency, e.g.:
modprobe speakup_soft
Further user documentation can be found in the doc/ subdirectory, specifically
doc/spkguide.txt. Some information here may be out of date, corrections are
accepted.
Implementation
==============
As mentioned above, speakup is implemented as a series of kernel drivers.
Usually this kind of thing would be kept purely in userspace, however by
implementing it this way, blind people would be excluded from kernel
development and other low-level activities due to not being able to 'see'
the early boot messages, kernel crash dumps, etc.
The long term plan is for kernel inclusion, but the kernel developers may
decide that this kind of functionality should be kept out of the kernel for
purely technical reasons.
Like the Linux kernel speakup is maintaned in a git repository which
can be retrieved from http://linux-speakup.org with the command:
git clone http://linux-speakup.org/speakup.git
Updating the source
===================
This repository is following the Linux source. It should be kept up to date with
the following procedure:
- From a Linux clone:
rm -f 00*
git format-patch 568035b01cfb107af8d2e4bd2fb9aea22cf5b868..HEAD drivers/accessibility/speakup Documentation/admin-guide/spkguide.txt
that produces the series of patches that were applied since last update.
- From the speakup repository, in the linux branch:
git am 0001*
If needed, fix the merge and commit. Repeat for each patch.
Copy over the linux files and commit any difference. That can happen due to
merge commit fixes.
- From the speakup repository, in the next branch:
git pull --rebase . linux
to merge the commits included in next, possibly just seeing that they were
applied in the Linux tree.
- From the speakup repository, in the submitted branch:
git pull --rebase . next
to merge the commits submitted to next, possibly just seeing that they were
applied in the next tree.
- From the speakup repository, in the main branch:
git pull . submitted
to eventually merge everything back into the main speakup tree.
- Update the git ID in the git format-patch command above, to the id of the last
patch that was applied.

About

Speakup is a screen review package for the Linux operating system

Resources

Stars

14 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

speakup =======
speakup is a kernel-based speech synthesizer driver suite for Linux. It drives
various USB-based, serial-based and ISA-based synthesizer hardware, as well as
providing an interface for driving software-based synthesizers in userspace.
For installation instructions, see INSTALLATION.
For usage documentation, see the files in the doc/ subdirectory.
This release is intended to be built against Linux 5.9 or later.
Homepage: http://www.linux-speakup.org
Support is provided through a mailing list on the above site.
Usage
=====
There are different ways that speakup can be configured, but the most common
is building speakup and the synth drivers as modules. At this point it is just
a case of using modprobe to load a synth module driver, which will pull in
the speakup core as a dependency, e.g.:
modprobe speakup_soft
Further user documentation can be found in the doc/ subdirectory, specifically
doc/spkguide.txt. Some information here may be out of date, corrections are
accepted.
Implementation
==============
As mentioned above, speakup is implemented as a series of kernel drivers.
Usually this kind of thing would be kept purely in userspace, however by
implementing it this way, blind people would be excluded from kernel
development and other low-level activities due to not being able to 'see'
the early boot messages, kernel crash dumps, etc.
The long term plan is for kernel inclusion, but the kernel developers may
decide that this kind of functionality should be kept out of the kernel for
purely technical reasons.
Like the Linux kernel speakup is maintaned in a git repository which
can be retrieved from http://linux-speakup.org with the command:
git clone http://linux-speakup.org/speakup.git
Updating the source
===================
This repository is following the Linux source. It should be kept up to date with
the following procedure:
- From a Linux clone:
rm -f 00*
git format-patch 568035b01cfb107af8d2e4bd2fb9aea22cf5b868..HEAD drivers/accessibility/speakup Documentation/admin-guide/spkguide.txt
that produces the series of patches that were applied since last update.
- From the speakup repository, in the linux branch:
git am 0001*
If needed, fix the merge and commit. Repeat for each patch.
Copy over the linux files and commit any difference. That can happen due to
merge commit fixes.
- From the speakup repository, in the next branch:
git pull --rebase . linux
to merge the commits included in next, possibly just seeing that they were
applied in the Linux tree.
- From the speakup repository, in the submitted branch:
git pull --rebase . next
to merge the commits submitted to next, possibly just seeing that they were
applied in the next tree.
- From the speakup repository, in the main branch:
git pull . submitted
to eventually merge everything back into the main speakup tree.
- Update the git ID in the git format-patch command above, to the id of the last
patch that was applied.

About

Speakup is a screen review package for the Linux operating system

Resources

Stars

14 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages