Cthulhu is no longer a fork. Now it is a screen reader written in Golang.

This commit is contained in:
Storm Dragon committed 2026-10-14 00:16:34 -04:00
1 parent a998fe67de
commit 069fc674dc
708 files changed
+112482 -532

No files matched your search

@@ -0,0 +1,42 @@
pkgbase = cthulhu-git
pkgdesc = Desktop-agnostic screen reader with speech, Braille, and Tentacle support
pkgver = 2026.10.12.r1.ga998fe6
pkgrel = 1
url = https://git.stormux.org/storm/cthulhu
arch = x86_64
arch = aarch64
arch = armv7h
license = GPL-3.0-or-later
makedepends = git
makedepends = go
makedepends = pkgconf
depends = glibc
depends = at-spi2-core
depends = glib2
depends = gdk-pixbuf2
depends = gtk3
depends = speech-dispatcher
depends = gstreamer
depends = gst-plugins-base
depends = gst-plugins-good
depends = brltty
depends = liblouis
depends = libx11
depends = libxtst
depends = libxfixes
depends = libxkbcommon
depends = xclip
depends = dbus
depends = systemd
optdepends = git: Discover and update Tentacle repositories
optdepends = tesseract: OCR engine for text recognition
optdepends = tesseract-data-eng: English OCR language data
provides = cthulhu=2026.10.12.r1.ga998fe6
conflicts = cthulhu
options = !debug
options = !lto
source = cthulhu::git+https://git.stormux.org/storm/cthulhu.git#branch=master
sha512sums = SKIP
optdepends_x86_64 = cthulhu-wine-access: Wine, Proton, NVDA Controller, and Tolk integration
pkgname = cthulhu-git
+53 -55
View File
@@ -4,21 +4,20 @@
pkgbase=cthulhu-git
pkgname=cthulhu-git
_pkgname=cthulhu
pkgver=2026.09.03.r475.gd4bec38
pkgver=2026.10.12.r1.ga998fe6
pkgrel=1
pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca"
pkgdesc="Desktop-agnostic screen reader with speech, Braille, and Tentacle support"
url="https://git.stormux.org/storm/cthulhu"
arch=(x86_64 aarch64 armv7h)
license=(LGPL-2.1-or-later)
license=(GPL-3.0-or-later)
provides=("${_pkgname}=${pkgver}")
conflicts=("${_pkgname}")
depends=(
# Core AT-SPI accessibility
# Native accessibility and user interface
glibc
at-spi2-core
glib2
gobject-introspection-runtime
python-gobject
python-cairo
gdk-pixbuf2
gtk3
# Audio and speech
speech-dispatcher
@@ -27,85 +26,84 @@ depends=(
gst-plugins-good # pulsesink, more decoders
# Braille support
python-brltty
brltty
liblouis
# Plugin system and D-Bus remote control
python-pluggy
python-tomlkit
python-dasbus
python-msgpack
python-tornado
python-xlib
# Xorg input, window capture, and clipboard operations
libx11
libxtst
libxfixes
libxkbcommon
xclip
# Desktop integration
hicolor-icon-theme
libwnck3
pango
# System utilities
python-setproctitle
xorg-xkbcomp
# Private D-Bus services and contained Tentacle processes
dbus
systemd
)
optdepends=(
'git: Install and update third-party plugin sources'
'python-pywayland: Wayland shared workspace backend'
'piper-tts: Piper speech backend'
'socat: Send text to the Self Voice socket from the command line'
# AI Assistant providers (optional)
'python-requests: AI Assistant plugin and HTTP provider support'
'python-pyautogui: AI Assistant mouse and keyboard actions'
'claude-code: Claude AI provider support'
'openai-codex: OpenAI Codex provider support'
'gemini-cli: Gemini AI provider support'
'ollama: Local AI model support'
# OCR plugin dependencies (optional)
'python-pillow: Image processing for OCR'
'python-pytesseract: Python wrapper for Tesseract OCR engine'
'git: Discover and update Tentacle repositories'
'tesseract: OCR engine for text recognition'
'tesseract-data-eng: English OCR language data'
)
optdepends_x86_64=(
# The helper is x86_64-only, but this package is architecture-independent.
'cthulhu-wine-access: Wine, Proton, NVDA Controller, and Tolk integration'
# Wine accessibility helpers are supported on x86_64.
'wine-access: Wine, Proton, NVDA Controller, and Tolk integration'
)
makedepends=(
git
meson
go
pkgconf
)
options=(!debug !lto)
source=("${_pkgname}::git+https://git.stormux.org/storm/${_pkgname}.git#branch=master")
sha512sums=('SKIP')
prepare() {
cd "${_pkgname}"
git checkout testing
}
pkgver() {
cd "${_pkgname}"
local projectVersion revisionCount commitHash
projectVersion=$(sed -n "s/^[[:space:]]*version: '\([^']*\)'.*/\1/p" meson.build)
projectVersion=${projectVersion%-master}
projectVersion=${projectVersion//-/.}
projectVersion=$(sed -n 's/^const Version = "\([^"]*\)"/\1/p' internal/version/version.go)
[[ -n "${projectVersion}" ]] || return 1
revisionCount=$(git rev-list --count HEAD)
commitHash=$(git rev-parse --short=7 HEAD)
printf "%s.r%s.g%s\n" "${projectVersion}" "${revisionCount}" "${commitHash}"
echo "${projectVersion}.r${revisionCount}.g${commitHash}"
}
build() {
cd "${_pkgname}"
arch-meson _build -Dwine-access=disabled
meson compile -C _build
export CGO_ENABLED=1
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOPATH="${srcdir}/go"
export GOCACHE="${GOCACHE:-${srcdir}/go-build}"
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
go build -o build/cthulhu ./cmd/cthulhu
go build -tags brlapi -o build/cthulhu-braille ./cmd/cthulhu-braille
}
check() {
cd "${_pkgname}"
export CGO_ENABLED=1
export GOPATH="${srcdir}/go"
export GOCACHE="${GOCACHE:-${srcdir}/go-build}"
go test -tags brlapi ./... -count=1
}
package() {
arch=(any)
provides=("cthulhu=${pkgver}")
conflicts=(cthulhu)
cd "${_pkgname}"
meson install -C _build --destdir "$pkgdir"
# Remove icon cache - it will be generated by post-install hooks
rm -f "$pkgdir/usr/share/icons/hicolor/icon-theme.cache"
install -Dm755 build/cthulhu "${pkgdir}/usr/bin/cthulhu"
install -Dm755 build/cthulhu-braille "${pkgdir}/usr/bin/cthulhu-braille"
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 AUTHORS "${pkgdir}/usr/share/doc/${pkgname}/AUTHORS"
}
# vim:set sw=2 sts=-1 et:
@@ -1,57 +0,0 @@
# Maintainer: Storm Dragon <storm_dragon@stormux.org>
# shellcheck shell=bash disable=SC2034,SC2154,SC2164
pkgname=cthulhu-wine-access-git
_pkgname=cthulhu
pkgver=2026.09.03.r475.gd4bec38
pkgrel=1
pkgdesc="Optional Wine and Proton accessibility bridge for Cthulhu"
url="https://git.stormux.org/storm/cthulhu"
arch=(x86_64)
license=(LGPL-2.1-or-later)
depends=(
glib2
wine
)
makedepends=(
cmake
git
)
provides=(cthulhu-wine-access)
conflicts=(cthulhu-wine-access)
source=("${_pkgname}::git+https://git.stormux.org/storm/${_pkgname}.git#branch=master")
sha512sums=('SKIP')
options=(!lto)
pkgver() {
cd "${_pkgname}"
local projectVersion revisionCount commitHash
projectVersion=$(sed -n "s/^[[:space:]]*version: '\([^']*\)'.*/\1/p" meson.build)
projectVersion=${projectVersion%-master}
projectVersion=${projectVersion//-/.}
[[ -n "${projectVersion}" ]] || return 1
revisionCount=$(git rev-list --count HEAD)
commitHash=$(git rev-parse --short=7 HEAD)
printf "%s.r%s.g%s\n" "${projectVersion}" "${revisionCount}" "${commitHash}"
}
build() {
local sourceDir="${srcdir}/${_pkgname}"
bash "${sourceDir}/scripts/build-wine-access.sh" \
"${sourceDir}/wine-access" \
"${sourceDir}/_build/wine-access-build" \
"${sourceDir}/_build/cthulhu-wine-access.exe" \
"${sourceDir}/_build/cthulhu-wine-access.exe.so"
}
package() {
cd "${_pkgname}"
install -Dm755 _build/cthulhu-wine-access.exe \
"$pkgdir/usr/libexec/cthulhu/wine/cthulhu-wine-access.exe"
install -Dm755 _build/cthulhu-wine-access.exe.so \
"$pkgdir/usr/libexec/cthulhu/wine/cthulhu-wine-access.exe.so"
}
# vim:set sw=2 sts=-1 et:
@@ -1,40 +0,0 @@
# Maintainer: Storm Dragon <storm_dragon@stormux.org>
# shellcheck shell=bash disable=SC2034,SC2154,SC2164
pkgname=cthulhu-wine-access
pkgver=2026.09.09
pkgrel=1
pkgdesc="Optional Wine and Proton accessibility bridge for Cthulhu"
url="https://git.stormux.org/storm/cthulhu"
arch=(x86_64)
license=(LGPL-2.1-or-later)
depends=(
glib2
wine
)
makedepends=(
cmake
git
)
source=("git+https://git.stormux.org/storm/cthulhu.git#tag=${pkgver}")
sha512sums=('SKIP')
options=(!lto !debug)
build() {
local sourceDir="${srcdir}/cthulhu"
bash "${sourceDir}/scripts/build-wine-access.sh" \
"${sourceDir}/wine-access" \
"${sourceDir}/_build/wine-access-build" \
"${sourceDir}/_build/cthulhu-wine-access.exe" \
"${sourceDir}/_build/cthulhu-wine-access.exe.so"
}
package() {
cd cthulhu
install -Dm755 _build/cthulhu-wine-access.exe \
"$pkgdir/usr/libexec/cthulhu/wine/cthulhu-wine-access.exe"
install -Dm755 _build/cthulhu-wine-access.exe.so \
"$pkgdir/usr/libexec/cthulhu/wine/cthulhu-wine-access.exe.so"
}
# vim:set sw=2 sts=-1 et:
@@ -1,93 +0,0 @@
# Maintainer: Storm Dragon <storm_dragon@stormux.org>
# shellcheck shell=bash disable=SC2034,SC2154,SC2164
pkgbase=cthulhu
pkgname=cthulhu
pkgver=2026.09.09
pkgrel=1
pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca"
url="https://git.stormux.org/storm/cthulhu"
arch=(x86_64 aarch64 armv7h)
license=(LGPL-2.1-or-later)
depends=(
# Core AT-SPI accessibility
at-spi2-core
glib2
gobject-introspection-runtime
python-gobject
python-cairo
gtk3
# Audio and speech
speech-dispatcher
gstreamer
gst-plugins-base # playbin, audiotestsrc, basic decoders
gst-plugins-good # pulsesink, more decoders
# Braille support
python-brltty
liblouis
# Plugin system and D-Bus remote control
python-pluggy
python-tomlkit
python-dasbus
python-msgpack
python-tornado
python-xlib
# Desktop integration
hicolor-icon-theme
libwnck3
pango
# System utilities
python-setproctitle
xorg-xkbcomp
)
optdepends=(
'git: Install and update third-party plugin sources'
'python-pywayland: Wayland shared workspace backend'
'piper-tts: Piper speech backend'
'socat: Send text to the Self Voice socket from the command line'
# AI Assistant providers (optional)
'python-requests: AI Assistant plugin and HTTP provider support'
'python-pyautogui: AI Assistant mouse and keyboard actions'
'claude-code: Claude AI provider support'
'openai-codex: OpenAI Codex provider support'
'gemini-cli: Gemini AI provider support'
'ollama: Local AI model support'
# OCR plugin dependencies (optional)
'python-pillow: Image processing for OCR'
'python-pytesseract: Python wrapper for Tesseract OCR engine'
'tesseract: OCR engine for text recognition'
)
optdepends_x86_64=(
'cthulhu-wine-access: Wine, Proton, NVDA Controller, and Tolk integration'
)
makedepends=(
git
meson
)
source=("git+https://git.stormux.org/storm/cthulhu.git#tag=${pkgver}")
sha512sums=('SKIP')
build() {
cd cthulhu
arch-meson _build -Dwine-access=disabled
meson compile -C _build
}
package() {
arch=(any)
provides=("cthulhu=${pkgver}")
conflicts=(cthulhu)
cd cthulhu
meson install -C _build --destdir "$pkgdir"
# Remove icon cache - it will be generated by post-install hooks
rm -f "$pkgdir/usr/share/icons/hicolor/icon-theme.cache"
}
# vim:set sw=2 sts=-1 et:
@@ -1,90 +0,0 @@
#!/bin/bash
# Slackware build script for cthulhu
# Created based on PKGBUILD from Storm Dragon <storm_dragon@stormux.org>
cd "$(dirname "$0")" ; CWD=$(pwd)
PRGNAM=cthulhu
VERSION=${VERSION:-2026.09.09}
BUILD=${BUILD:-1}
TAG=storm
PKGTYPE=txz
if [ -z "${ARCH:-}" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ -n "${PRINT_PACKAGE_NAME:-}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP=$CWD
PKG=$TMP/package-$PRGNAM
OUTPUT=$CWD
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf "$PKG"
mkdir -p "$TMP" "$PKG" "$OUTPUT"
cd "$TMP"
rm -rf "$PRGNAM-$VERSION"
git clone --branch "$VERSION" --depth 1 https://git.stormux.org/storm/cthulhu.git "$PRGNAM-$VERSION"
cd "$PRGNAM-$VERSION"
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
meson setup _build \
--prefix=/usr \
--libdir="/usr/lib${LIBDIRSUFFIX}" \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--buildtype=release
meson compile -C _build
DESTDIR="$PKG" meson install -C _build
find "$PKG" -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
rm -f "$PKG/usr/share/icons/hicolor/icon-theme.cache"
mkdir -p "$PKG/usr/doc/$PRGNAM-$VERSION"
cp -a COPYING HACKING README.md README-DEVELOPMENT.md RELEASE-HOWTO \
"$PKG/usr/doc/$PRGNAM-$VERSION"
cat "$CWD/$PRGNAM.SlackBuild" > "$PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild"
mkdir -p "$PKG/install"
cat "$CWD/slack-desc" > "$PKG/install/slack-desc"
cat "$CWD/doinst.sh" > "$PKG/install/doinst.sh"
cd "$PKG"
/sbin/makepkg -l y -c n "$OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
-11
View File
@@ -1,11 +0,0 @@
#!/bin/sh
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi
if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
if [ -x /usr/bin/gtk-update-icon-cache ]; then
/usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1
fi
fi
-19
View File
@@ -1,19 +0,0 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
cthulhu: cthulhu (Screen reader for blind or visually impaired users)
cthulhu:
cthulhu: Cthulhu is a screen reader for individuals who are blind or visually
cthulhu: impaired, forked from Orca. It provides a way to access applications
cthulhu: and toolkits that support the AT-SPI accessibility infrastructure.
cthulhu:
cthulhu: Homepage: https://git.stormux.org/storm/cthulhu
cthulhu:
cthulhu:
cthulhu:
cthulhu:
-37
View File
@@ -1,37 +0,0 @@
Cthulhu is a screen reader for individuals who are blind or visually impaired,
forked from Orca. It provides access to applications and toolkits that support
the AT-SPI (e.g., GNOME and other Linux desktop environments).
This fork is currently maintained by Storm Dragon. It builds on upstream Orca
work, but former Orca maintainers and contributors are not current maintainers
of this fork.
This screen reader helps users navigate their desktop environment and applications
through speech synthesis and braille output.
After installation, you can start Cthulhu through your desktop environment
or by running 'cthulhu' from the command line.
DEPENDENCIES:
This package requires the following packages, all available from SlackBuilds.org:
- at-spi2-core
- brltty
- gobject-introspection
- gstreamer
- gst-plugins-base
- gst-plugins-good
- gtk3
- liblouis
- libwnck3
- python3-cairo
- python3-dasbus
- python3-gobject
- python3-pluggy
- python3-pywayland
- python3-setproctitle
- python3-tomlkit
- speech-dispatcher
BUILD DEPENDENCIES:
- meson
- ninja
-10
View File
@@ -1,10 +0,0 @@
PRGNAM="cthulhu"
VERSION="2026.09.09"
HOMEPAGE="https://git.stormux.org/storm/cthulhu"
DOWNLOAD="https://git.stormux.org/storm/cthulhu.git"
MD5SUM="SKIP"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="at-spi2-core brltty gobject-introspection gstreamer gst-plugins-base gst-plugins-good gtk3 liblouis libwnck3 python3-cairo python3-dasbus python3-gobject python3-pluggy python3-pywayland python3-setproctitle python3-tomlkit speech-dispatcher"
MAINTAINER="Storm Dragon"
EMAIL="storm_dragon@stormux.org"
-90
View File
@@ -1,90 +0,0 @@
#!/bin/bash
# Slackware build script for cthulhu
# Created based on PKGBUILD from Storm Dragon <storm_dragon@stormux.org>
cd "$(dirname "$0")" ; CWD=$(pwd)
PRGNAM=cthulhu
VERSION=${VERSION:-2026.09.09}
BUILD=${BUILD:-1}
TAG=storm
PKGTYPE=txz
if [ -z "${ARCH:-}" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ -n "${PRINT_PACKAGE_NAME:-}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP=$CWD
PKG=$TMP/package-$PRGNAM
OUTPUT=$CWD
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf "$PKG"
mkdir -p "$TMP" "$PKG" "$OUTPUT"
cd "$TMP"
rm -rf "$PRGNAM-$VERSION"
git clone --branch "$VERSION" --depth 1 https://git.stormux.org/storm/cthulhu.git "$PRGNAM-$VERSION"
cd "$PRGNAM-$VERSION"
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
meson setup _build \
--prefix=/usr \
--libdir="/usr/lib${LIBDIRSUFFIX}" \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--buildtype=release
meson compile -C _build
DESTDIR="$PKG" meson install -C _build
find "$PKG" -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
rm -f "$PKG/usr/share/icons/hicolor/icon-theme.cache"
mkdir -p "$PKG/usr/doc/$PRGNAM-$VERSION"
cp -a COPYING HACKING README.md README-DEVELOPMENT.md RELEASE-HOWTO \
"$PKG/usr/doc/$PRGNAM-$VERSION"
cat "$CWD/$PRGNAM.SlackBuild" > "$PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild"
mkdir -p "$PKG/install"
cat "$CWD/slack-desc" > "$PKG/install/slack-desc"
cat "$CWD/doinst.sh" > "$PKG/install/doinst.sh"
cd "$PKG"
/sbin/makepkg -l y -c n "$OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
-11
View File
@@ -1,11 +0,0 @@
#!/bin/sh
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi
if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
if [ -x /usr/bin/gtk-update-icon-cache ]; then
/usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1
fi
fi
-19
View File
@@ -1,19 +0,0 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
cthulhu: cthulhu (Screen reader for blind or visually impaired users)
cthulhu:
cthulhu: Cthulhu is a screen reader for individuals who are blind or visually
cthulhu: impaired, forked from Orca. It provides a way to access applications
cthulhu: and toolkits that support the AT-SPI (e.g., the GNOME desktop).
cthulhu:
cthulhu: Homepage: https://git.stormux.org/storm/cthulhu
cthulhu:
cthulhu:
cthulhu:
cthulhu: