Table of Contents
- Advanced Features
- Advanced Posting Features
- Advanced Timeline Features
- Advanced Search Features
- Extensions and Customization
- Advanced Configuration
- Multi-Process Architecture
- Advanced URL Handling
- Network and API Features
- Advanced Interaction Features
- Performance Optimization
- Debugging and Troubleshooting
- Accessibility Features
- Integration with Fediverse Ecosystem
Advanced Features
TTYverse offers powerful features for experienced users, including customization options, advanced posting features, automation capabilities, and system integration.
Advanced Posting Features
Visibility Control
TTYverse supports all fediverse visibility levels with indicators:
# Posts show visibility in metadata line:
a0> {,POST_ID} <username> (2h ago) via TTYverse [Public]
a1> {,POST_ID} <username> (1h ago) via TTYverse [Unlisted]
a2> {,POST_ID} <username> (30m ago) via TTYverse [Followers]
a3> {,POST_ID} <username> (5m ago) via TTYverse [Direct]
Visibility levels:
- [Public] - Visible to everyone, appears in local/federated timelines
- [Unlisted] - Public but not in discovery timelines
- [Followers] - Only visible to your followers
- [Direct] - Only visible to mentioned users (like DMs)
Advanced Media Features
Media attachment with post text:
/media /path/to/image.jpg Check out this amazing sunset from my hike today!
Multiple media formats supported:
- Images: JPEG, PNG, GIF, WebP (alt-text required)
- Audio: MP3, OGG, WAV, FLAC, M4A
- Video: MP4, WebM, MOV
Accessibility enforcement: TTYverse requires alt-text for images and cancels uploads without descriptions:
-- Upload cancelled: Alt-text is required for images
-- If you're going to use a client maintained by a blind guy, you can damn well describe your images!
Content Warnings
Posts with content warnings display in brackets on the metadata line:
a5> {,POST_ID} <username> (1h ago) via Web [Public] [CW: Politics]
[Content warning text appears here] Click to show content...
Thread Navigation
View conversation threads:
/thread a3 # View the full conversation thread for post a3
Shows the complete conversation context with proper threading.
Advanced Timeline Features
Multiple Timeline Types
Access different content streams:
/timeline home # Your personalized feed (default)
/timeline local # Local instance posts
/timeline federated # Federated timeline
/timeline public # Same as local
/timeline notifications # Your notifications
/timeline bookmarks # Your bookmarked posts
/timeline favourites # Your favorite posts
Timeline Filtering and Management
Historical timeline access:
/last 20 # Show last 20 cached posts
/again # Load more posts from current timeline
/refresh # Force refresh current timeline
User-specific timelines:
/again @username # View recent posts from specific user
/wagain @username # View all recent activity from user
Advanced Search Features
Comprehensive Search Options
Search types:
/search #hashtag # Search hashtags
/search @user@instance.com # Find specific users
/search "exact phrase" # Search post content
/search keyword # General content search
Advanced search operators:
- Use quotes for exact phrases
- Include instance names for cross-server user searches
- Combine terms for refined results
Extensions and Customization
Sound Notification System
TTYverse includes 11 distinct notification types:
Notification categories:
- default - General timeline posts
- mention - Posts that mention you
- dm - Direct messages
- me - Your own posts appearing in timeline
- search - Search result notifications
- follow - New follower notifications
- boost - When someone boosts your posts
- favourite - When someone favorites your posts
- poll - Poll-related notifications
- edit - Post edit notifications
- announcement - Instance announcements
Configuration:
# In ~/.config/ttyverse/ttyverserc
notifytype=soundpack
notifies=mention,dm,boost,favourite,follow
extpref_sound_command=paplay
Extension Loading
Available core extensions:
- soundpack - Audio notifications with 11 sound categories
- timestamp - Enhanced timestamp display with time gaps
- tts - Text-to-speech for accessibility
- libnotifyperl - Desktop notification bubbles
- r2a - Additional automation features
Load extensions at startup:
./ttyverse.pl -exts=soundpack,tts,timestamp
Runtime extension management:
# Extensions are loaded from:
~/.local/share/ttyverse/extensions/
# Sound files stored in:
~/.local/share/ttyverse/sounds/default/
Advanced Configuration
Runtime Configuration Changes
Modify settings while running:
/set effpause 300 # Change refresh interval to 5 minutes
/set gui_browser firefox # Set preferred GUI browser
/set cli_browser w3m # Set preferred CLI browser
/get effpause # Check current setting
Common advanced settings:
effpause
- Timeline refresh interval (seconds)dmpause
- Direct message refresh intervalnotificationpause
- Notification refresh intervalansi
- Color/formatting supportverbose
- Detailed output modesuperverbose
- Debug-level output
Configuration File Management
XDG-compliant storage:
- Config:
~/.config/ttyverse/ttyverserc
- Data:
~/.local/share/ttyverse/
- Extensions:
~/.local/share/ttyverse/extensions/
- Sounds:
~/.local/share/ttyverse/sounds/
Create default config:
./ttyverse.pl -createrc
Multi-Process Architecture
Background Process Management
TTYverse uses a sophisticated multi-process design:
Foreground process:
- Handles user interaction
- Displays posts and responses
- Processes commands
Background process:
- Monitors timelines
- Fetches new posts
- Handles notifications
- Manages DM updates
Inter-Process Communication (IPC):
- Uses pipes and signals (
SIGUSR2
) - Coordinates between processes
- Ensures smooth user experience
Process Control
System integration:
- Proper signal handling for POSIX compatibility
- Clean shutdown and restart procedures
- Background monitoring without blocking UI
Advanced URL Handling
Smart Browser Detection
TTYverse automatically detects your environment:
GUI environment (DISPLAY set):
- Firefox, Chrome, Chromium
- System default browser
- User-configured GUI browser
Terminal environment:
- w3m, elinks, lynx
- User-configured CLI browser
URL extraction priorities:
- Mastodon media_attachments with URLs
- Explicit URLs in post content
- Card URLs from link previews
- Entity URLs from structured data
- Plain text URL parsing (fallback)
URL Command Usage
/url a3 # Open URL from post a3
Opens the most relevant URL from the post using your environment's optimal browser.
Network and API Features
Rate Limit Management
Monitor API usage:
/rate # Show current rate limit status
TTYverse automatically handles rate limiting and provides notifications when limits are approached.
OAuth 2.0 Authentication
Secure authentication:
- Modern OAuth 2.0 flow (OAuth 1.0a removed)
- Server-side token storage
- Automatic token refresh
- Cross-instance compatibility
Troubleshooting authentication:
# Remove and recreate authentication
rm ~/.config/ttyverse/*
./ttyverse.pl # Will prompt for re-authentication
Advanced Interaction Features
Comprehensive User Management
User information and interaction:
/whois @user@instance.com # Detailed user information
/follow @user # Follow user
/unfollow @user # Unfollow user
/block @user # Block user
/unblock @user # Unblock user
/mute @user # Mute user
/unmute @user # Unmute user
Follower/following management:
/followers # Your followers
/followers @user # User's followers
/followers +50 # Show up to 50 followers
/following # Who you follow
/following @user +30 # Show 30 accounts user follows
Advanced Poll Features
Poll creation with custom durations:
/poll Question text
# Supports: 90m, 12h, 3d, 1w formats
Complex voting patterns:
/vote a3 1,3,5 # Vote multiple options
/vote a3 1-4 # Vote range of options
/vote a3 2,5-7,9 # Vote mixed patterns
Performance Optimization
Memory and Network Efficiency
Optimized caching:
- Post caching for
/last
command - Smart timeline refresh logic
- Efficient IPC communication
Network optimization:
- Conditional requests where supported
- Minimal API calls for routine operations
- Background fetch without blocking UI
Resource Management
Long-running session optimization:
- Memory usage monitoring
- Proper cleanup of temporary data
- Signal handling for clean shutdown
Debugging and Troubleshooting
Debug Modes
Verbose output:
/verbose # Toggle detailed output
/debug # Toggle debug information
./ttyverse.pl -verbose # Start with verbose mode
Debug information includes:
- API request/response details
- Extension loading status
- IPC communication logging
- Network connection status
System Integration Debugging
Test system components:
# Test audio system
paplay ~/.local/share/ttyverse/sounds/default/default.ogg
# Test browser integration
echo $DISPLAY # Check GUI environment
which w3m elinks lynx # Check CLI browsers
# Test authentication
/refresh # Test API access
Accessibility Features
Screen Reader Compatibility
Design principles:
- All output is plain text
- Consistent post formatting
- Logical tab order and navigation
- Audio feedback for events
Alt-text enforcement: TTYverse prioritizes accessibility by requiring image descriptions, supporting screen readers through consistent formatting, and providing audio notifications.
Keyboard-Only Operation
Complete keyboard navigation:
- No mouse required anywhere
- Command history with arrow keys
- Tab completion for commands
- Accessible menu code system
Integration with Fediverse Ecosystem
Cross-Instance Features
Multi-server compatibility:
- Works with Mastodon, GoToSocial, Pleroma
- Handles different API implementations
- Adapts to server-specific features
- Cross-instance user lookup and interaction
Server feature detection:
- Polls (varies by server)
- Media limits (server-dependent)
- Timeline types (server-specific)
- API extensions (optional features)
See also: Configuration | Extensions | Troubleshooting