2025-07-29 11:29:27 -04:00
2025-07-29 11:29:27 -04:00
2025-07-29 11:29:27 -04:00
2025-07-29 11:29:27 -04:00
2025-07-29 11:29:27 -04:00
2025-07-29 11:29:27 -04:00
2025-07-29 11:29:27 -04:00
2025-07-29 11:29:27 -04:00

TTYverse Extensions

This directory contains bundled extensions for TTYverse, the command-line fediverse client.

Extension Loading

TTYverse uses a simple XDG-compliant extension system. Extensions are only loaded from:

~/.local/share/ttyverse/extensions/ (XDG_DATA_HOME/ttyverse/extensions)

Extensions are loaded with the -exts flag:

perl ttyverse.pl -exts=soundpack
perl ttyverse.pl -exts=extension1,extension2

Managing Extensions

Use the included management script to enable/disable bundled extensions:

# Show available and enabled extensions
./extensions/manage-extensions.sh list

# Enable an extension (creates symlink in XDG directory)
./extensions/manage-extensions.sh enable soundpack

# Disable an extension (removes from XDG directory)
./extensions/manage-extensions.sh disable soundpack

# Check extension status
./extensions/manage-extensions.sh status soundpack

Available Extensions

soundpack.pl

Plays notification sounds for different types of posts (timeline, replies, DMs, mentions, search results).

Configuration options (add to ~/.config/ttyverse/ttyverse.rc):

extpref_sound_command=paplay     # Sound player (paplay, play, ogg123, etc.)
extpref_soundpack=default        # Sound pack name

Sound files location: ~/.local/share/ttyverse/sounds/default/

  • default.ogg - Regular timeline posts
  • mention.ogg - Mentions of your username
  • dm.ogg - Direct messages
  • me.ogg - Your own posts
  • follow.ogg - New followers
  • boost.ogg - Your posts boosted
  • favourite.ogg - Your posts favourited
  • poll.ogg - Poll notifications
  • announcement.ogg - Server announcements

Installing Custom Extensions

  1. Copy your extension .pl file to ~/.local/share/ttyverse/extensions/
  2. Load it with -exts=yourextension

Extension Development

Extensions are Perl modules that hook into TTYverse's event system. Key variables:

  • $data - XDG data directory (~/.local/share/ttyverse)
  • $config - XDG config directory (~/.config/ttyverse)
  • $store - Extension workspace (persistent storage)
  • $silent - Silent mode flag
  • $stdout - Output filehandle

Extensions can define these functions:

  • $notifier - Called for new posts
  • $heartbeat - Called periodically
  • $handle - Called for user commands
  • $prepost - Called before posting
  • $postpost - Called after posting

Set $store->{'loaded'} = 1; at the end of your extension.

Description
Extensions for ttyverse
Readme 245 KiB
Languages
Perl 55.5%
Shell 44.5%