Updated extensions.
This commit is contained in:
80
README.md
80
README.md
@ -1 +1,79 @@
|
||||
Placeholder
|
||||
# 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:
|
||||
```bash
|
||||
perl ttyverse.pl -exts=soundpack
|
||||
perl ttyverse.pl -exts=extension1,extension2
|
||||
```
|
||||
|
||||
## Managing Extensions
|
||||
|
||||
Use the included management script to enable/disable bundled extensions:
|
||||
|
||||
```bash
|
||||
# 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.
|
Reference in New Issue
Block a user