Matteo Benedetto 7e335955d8 docs: aggiungi avatar del tema e referenzialo nel README
- preview/avatar.png: emblema 512x512 nello stile del tema (immagine
  generata con IA, non coperta dalle licenze di audio e codice)
- README: mostra l'avatar in testa e chiarisce la licenza dell'immagine
- dist/: tarball aggiornato
2026-09-20 16:28:02 +02:00

Interstellar — sound theme for KDE Plasma

Interstellar

A long look out of the window

A complete, freedesktop Sound Theme specification compliant sound theme for KDE Plasma 6 (and any other desktop that honours the spec). 61 cues, all of them synthesised from scratch — no sample library, no third-party audio, no attribution burden. The whole theme is reproducible from the script in tools/.

kde-sound-theme-interstellar/
├── Interstellar/
│   ├── index.theme          # [Sound Theme] + [stereo] OutputProfile
│   └── stereo/              # 61 × Ogg Vorbis 48 kHz stereo
├── tools/
│   ├── gen_sounds.py        # the synthesis engine (reproducible)
│   ├── verify_theme.py      # spec + audio + KDE coverage checks
│   ├── make_preview.py      # rebuilds preview/index.html
│   └── preview_template.html
├── preview/
│   ├── index.html           # player nel browser per ogni cue
│   └── avatar.png           # icona del tema (512×512)
├── LICENSES/
├── Makefile
└── install.sh

Character

Interstellar is the view, not the console. Harmonic two-operator FM (ratio 2.0) folded into wide detuned additive pads on D3, lydian shimmer an octave and two above, and a 4.2 s hall that lets a login bloom. It is the warmest of the three and the one that benefits most from the differentiated reverb bus: chat and volume cues stay close, session and outcome cues open up.

Motif Used for
Wide detuned pad swell login, session, vast space
Lydian shimmer cluster wonder, arrival, highlight
Perfect fifth arpeggio affirmation, information
Bell glissando entering and leaving
Plucked-string arpeggio organic, gentle completion

Requirements

  • KDE Plasma 6, or any desktop implementing the freedesktop sound theme spec
  • nothing at runtime — the cues are plain Ogg Vorbis files
  • ffmpeg (libvorbis), python3, numpy, scipy only if you want to regenerate the audio

Install

User-local (recommended, no root needed):

git clone https://git.enne2.net/enne2/kde-sound-theme-interstellar.git
cd kde-sound-theme-interstellar
./install.sh              # copies Interstellar/ into ~/.local/share/sounds/

System-wide:

sudo make install-system  # copies Interstellar/ into /usr/share/sounds/

Select the theme

System Settings → Colors & Themes → System Sounds → Interstellar

Or from the command line:

kwriteconfig6 --file kdeglobals --group Sounds --key Theme Interstellar

To go back to the Plasma default:

kwriteconfig6 --file kdeglobals --group Sounds --key Theme ocean

The theme declares Inherits=freedesktop, so any event it does not provide (e.g. multi-channel test signals) falls back to the stock desktop theme instead of going silent.

What is inside

Interstellar/index.theme declares the theme, Directories=stereo, OutputProfile=stereo and Example=theme-demo. The Example key is what the Plasma System Sounds KCM uses for its preview button, so theme-demo.oga is a montage of the theme's signatures rather than an arbitrary cue.

Name[it] and Comment[it] are also provided, so Plasma in an Italian locale lists the theme as Interstellare. That is a display name only: the theme id — the folder name in ~/.local/share/sounds/ and the value written to kdeglobals — is always Interstellar, exactly like KDE's own Ocean theme shows up as Oceano in Italian.

sound name duration size
alarm-clock-elapsed 2.66 s 35.7 KiB
audio-test-signal 1.10 s 20.2 KiB
audio-volume-change 0.13 s 6.9 KiB
battery-caution 1.18 s 19.5 KiB
battery-full 1.05 s 17.5 KiB
battery-low 1.18 s 17.8 KiB
bell-terminal 0.15 s 7.2 KiB
bell-window-system-attention 0.94 s 15.2 KiB
bell-window-system 0.88 s 14.6 KiB
bell 1.26 s 19.5 KiB
button-pressed-modifier 0.12 s 7.0 KiB
button-pressed 0.11 s 6.9 KiB
camera-shutter 0.26 s 9.6 KiB
complete-media-burn 2.26 s 35.9 KiB
complete-media-error 1.72 s 36.9 KiB
complete 0.83 s 14.3 KiB
completion-fail 1.38 s 19.3 KiB
completion-partial 1.12 s 17.2 KiB
completion-rotation 1.68 s 23.0 KiB
completion-success 2.14 s 35.6 KiB
desktop-login 2.90 s 38.6 KiB
desktop-logout 2.20 s 28.8 KiB
device-added 0.64 s 15.2 KiB
device-removed 0.64 s 15.2 KiB
dialog-error-critical 2.32 s 47.8 KiB
dialog-error-serious 1.80 s 38.3 KiB
dialog-error-veryserious 2.70 s 34.4 KiB
dialog-error 1.48 s 32.8 KiB
dialog-information 1.13 s 17.5 KiB
dialog-question 1.14 s 18.5 KiB
dialog-special 1.86 s 34.6 KiB
dialog-warning-auth 1.00 s 18.8 KiB
dialog-warning 1.27 s 18.3 KiB
game-over-loser 2.60 s 52.5 KiB
game-over-winner 3.02 s 51.1 KiB
media-insert-request 0.87 s 17.1 KiB
message-attention 1.16 s 24.6 KiB
message-contact-in 1.05 s 17.3 KiB
message-contact-out 1.05 s 17.2 KiB
message-highlight 0.86 s 16.1 KiB
message-new-email 1.48 s 23.7 KiB
message-new-instant 0.92 s 14.7 KiB
message-sent-instant 0.45 s 10.5 KiB
message 0.80 s 14.0 KiB
network-connectivity-established 1.66 s 27.4 KiB
network-connectivity-lost 1.26 s 18.8 KiB
outcome-failure 1.32 s 29.7 KiB
outcome-success 1.62 s 27.5 KiB
phone-incoming-call 2.44 s 37.5 KiB
phone-outgoing-busy 1.30 s 23.5 KiB
phone-outgoing-calling 1.16 s 24.6 KiB
power-plug 0.78 s 15.2 KiB
power-unplug 0.88 s 19.6 KiB
screen-capture 0.30 s 10.6 KiB
service-login 1.34 s 19.8 KiB
service-logout 1.24 s 18.6 KiB
suspend-error 1.92 s 40.4 KiB
theme-demo 11.39 s 177.0 KiB
trash-empty 0.95 s 20.5 KiB
window-attention 1.43 s 20.8 KiB
window-question 1.04 s 17.2 KiB

Rebuilding from source

The audio is generated, not sampled, so it is fully reproducible:

make generate     # rewrites Interstellar/stereo/*.oga from tools/gen_sounds.py
make verify       # spec + audio + KDE coverage checks
make preview      # rebuild preview/index.html
make dist         # build dist/kde-sound-theme-interstellar-1.0.0.tar.gz

make verify fails loudly on a clipped sample, a DC offset, a click at a file edge, a wrong sample rate or channel count, a missing stereo directory in Directories=, a broken Example/Inherits reference, and it reports how many of the sound names actually requested by the installed KDE *.notifyrc files the theme resolves.

Design notes

One instrument set, not sixty unrelated beeps

Every cue is assembled from the same small library of motifs — FM bells, sub impacts, band-limited noise sweeps, additive pads, plucked strings, telemetry blips — so the theme reads as a single instrument rather than a folder of noises. The palette below is what turns that library into this theme:

Parameter Interstellar
Root D3 — 146.83 Hz
Scale lydian (0 2 4 6 7 9 11)
FM voice ratio 2.0, index 1.15, index decay 450 ms
Detune ±14 cents
Space 4.2 s synthetic hall, 4053 % wet on the vast cues

A differentiated reverb bus

A single reverb setting is wrong for a desktop theme: frequent cues (chat, volume, button clicks) would smear into each other during a burst, while rare dramatic cues would sound dry and small. Cues here are assigned one of five reverb classes — from near-dry clicks through a small room up to a vast hall with an extra half-second of tail — by motif, with per-sound overrides. The result is that a chat notification stays crisp and a login blooms.

Loudness-aware normalisation

Peak-normalising every file is not enough: a sparse bell and a dense error cluster end up at wildly different perceived levels. After peak normalisation each cue gets a bounded gain (±6 dB) that pulls the RMS of its active portion towards 16 dBFS, with the peak ceiling always winning. That keeps the theme consistent without introducing clipping.

No clicks

Every cue is high-passed (30130 Hz depending on the class), given a 1.5 ms raised-cosine fade in and a 35 ms fade out before the reverb is applied, so the convolution never sees a discontinuity. make verify enforces this: it rejects any file whose first samples are not at zero.

Licence

  • Audio (Interstellar/stereo/*.oga, Interstellar/index.theme) — CC BY-SA 4.0, the same licence the KDE sound themes use.
  • Code and documentation (tools/, Makefile, install.sh, preview/, README.md) — BSD-2-Clause.

The sounds are original synthesis; nothing is derived from the KDE Ocean sound theme or any other recording. You may therefore use this theme commercially and adapt it freely, subject to CC BY-SA 4.0's attribution and share-alike terms.

Credits

Created by enne2 (2026). Designed for Plasma 6.3 on Debian 13.

The avatar illustration in preview/avatar.png is an AI-generated image (Google Gemini via Antigravity). It is included only to identify the theme, and is not covered by either grant below: neither the CC BY-SA 4.0 that applies to the audio nor the BSD-2-Clause that applies to the code.

S
Description
Tema sonoro Interstellar per KDE Plasma 6: 61 cue di viaggio interstellare (pad ampi, quinte ascendenti, coda lunga), sintetizzati da zero. Ogg Vorbis 48 kHz stereo, conforme alla specifica freedesktop Sound Theme.
Readme
4.5 MiB
Languages
Python 80.1%
HTML 15.5%
Makefile 2.3%
Shell 2.1%