Presto, a wiki! Thanks Claud. Most information should be accurate, let me know if something is off.
369
Basic-Usage.md
Normal file
369
Basic-Usage.md
Normal file
@ -0,0 +1,369 @@
|
||||
# Basic Usage
|
||||
|
||||
Essential workflows and everyday usage patterns for TTYverse. This guide assumes you've completed [Getting Started](Getting-Started) and have TTYverse configured.
|
||||
|
||||
## Daily Workflow
|
||||
|
||||
### Starting TTYverse
|
||||
```bash
|
||||
# Start TTYverse
|
||||
./ttyverse.pl
|
||||
|
||||
# TTYverse loads and shows:
|
||||
# - Current version and login status
|
||||
# - Recent timeline posts
|
||||
# - Direct messages (if any)
|
||||
# - Ready prompt: TTYverse>
|
||||
```
|
||||
|
||||
### Reading Your Timeline
|
||||
When TTYverse starts, it automatically loads your home timeline:
|
||||
|
||||
```
|
||||
a0> {,POST_ID} <username> (2h ago) via Web [Public]
|
||||
Content of the post goes here with any links or hashtags
|
||||
|
||||
a1> {,POST_ID} <username> (1h ago) via TTYverse [Unlisted]
|
||||
Another post with different visibility
|
||||
```
|
||||
|
||||
**Understanding the format:**
|
||||
- **a0**, **a1** - Menu codes for referencing posts
|
||||
- **username** - Who posted it
|
||||
- **(2h ago)** - How long ago it was posted
|
||||
- **via Web** - What client was used
|
||||
- **[Public]** - Visibility level
|
||||
|
||||
### Loading More Content
|
||||
```bash
|
||||
# See more posts from timeline
|
||||
/again
|
||||
|
||||
# Refresh timeline for new posts
|
||||
/refresh
|
||||
|
||||
# See posts from cache
|
||||
/last 15
|
||||
```
|
||||
|
||||
## Reading Different Timelines
|
||||
|
||||
### Home Timeline (Default)
|
||||
Your personalized feed from accounts you follow:
|
||||
```bash
|
||||
/timeline # Show home timeline
|
||||
```
|
||||
|
||||
### Local Timeline
|
||||
Posts from your instance/server:
|
||||
```bash
|
||||
/timeline local # See what your community is posting
|
||||
```
|
||||
|
||||
### Federated Timeline
|
||||
Posts from across the fediverse:
|
||||
```bash
|
||||
/timeline federated # See the broader conversation
|
||||
```
|
||||
|
||||
### Bookmarks
|
||||
Posts you've saved:
|
||||
```bash
|
||||
/timeline bookmarks # Your saved posts
|
||||
```
|
||||
|
||||
## Interacting with Posts
|
||||
|
||||
### Basic Interactions
|
||||
```bash
|
||||
# Like a post
|
||||
/fav a3
|
||||
|
||||
# Share a post (boost/reblog)
|
||||
/boost a3
|
||||
|
||||
# Save for later
|
||||
/bookmark a3
|
||||
|
||||
# Reply to a post
|
||||
/reply a3 Great point about accessibility!
|
||||
```
|
||||
|
||||
### Opening Links
|
||||
When posts contain URLs:
|
||||
```bash
|
||||
# Open the URL from post a3
|
||||
/url a3
|
||||
|
||||
# TTYverse automatically detects your environment:
|
||||
# - GUI environment: Opens in Firefox, Chrome, etc.
|
||||
# - Terminal: Opens in w3m, elinks, or lynx
|
||||
```
|
||||
|
||||
### Getting User Information
|
||||
```bash
|
||||
# Learn about a user
|
||||
/whois storm@stormux.org
|
||||
|
||||
# Shows profile information, follower count, etc.
|
||||
```
|
||||
|
||||
## Creating Content
|
||||
|
||||
### Simple Text Posts
|
||||
```bash
|
||||
# Create a public post
|
||||
/post Just learned about TTYverse - loving the accessibility focus!
|
||||
|
||||
# TTYverse creates the post and shows confirmation
|
||||
```
|
||||
|
||||
### Posts with Media
|
||||
```bash
|
||||
# Upload an image
|
||||
/media ~/pictures/sunset.jpg
|
||||
|
||||
# TTYverse will prompt for:
|
||||
# 1. Alt-text description (required for images)
|
||||
# 2. Optional post message
|
||||
```
|
||||
|
||||
**Alt-text example:**
|
||||
```
|
||||
Enter alt text for sunset.jpg: Orange and purple clouds over mountains during golden hour
|
||||
Enter post message (optional): Beautiful evening hike in the local mountains
|
||||
```
|
||||
|
||||
### Replying to Conversations
|
||||
```bash
|
||||
# Reply to someone's post
|
||||
/reply a5 That's exactly what I was thinking! Have you tried the new media upload feature?
|
||||
|
||||
# Your reply appears in the conversation thread
|
||||
```
|
||||
|
||||
## Managing Conversations
|
||||
|
||||
### Direct Messages
|
||||
```bash
|
||||
# Check for direct messages
|
||||
/dms
|
||||
|
||||
# Shows recent DMs:
|
||||
[DM da0][friend@instance.org] (1h ago)
|
||||
Hey, saw your post about TTYverse - is it really that accessible?
|
||||
|
||||
# Reply to a DM
|
||||
/reply da0 Yes! It's designed by a blind developer with accessibility as the top priority.
|
||||
```
|
||||
|
||||
### Following Conversations
|
||||
```bash
|
||||
# Follow an interesting user
|
||||
/follow @username@instance.com
|
||||
|
||||
# Their posts will appear in your home timeline
|
||||
```
|
||||
|
||||
## Searching and Discovery
|
||||
|
||||
### Finding Content
|
||||
```bash
|
||||
# Search for hashtags
|
||||
/search #accessibility
|
||||
|
||||
# Find users
|
||||
/search storm@stormux.org
|
||||
|
||||
# Search post content
|
||||
/search "command line fediverse"
|
||||
```
|
||||
|
||||
### Exploring Communities
|
||||
```bash
|
||||
# See what your local instance is discussing
|
||||
/timeline local
|
||||
|
||||
# Discover broader conversations
|
||||
/timeline federated
|
||||
|
||||
# Find trending topics (if your server supports it)
|
||||
/search #trending
|
||||
```
|
||||
|
||||
## Voting in Polls
|
||||
|
||||
When you see a poll in your timeline, it appears with numbered options:
|
||||
|
||||
```
|
||||
b3> {,POST_ID} <username> (30m ago) via Web [Public]
|
||||
What's your favorite terminal editor?
|
||||
|
||||
Poll (ends in 2 days, 15 votes):
|
||||
1. vim (8 votes - 53%)
|
||||
2. emacs (4 votes - 27%)
|
||||
3. nano (3 votes - 20%)
|
||||
```
|
||||
|
||||
Vote using the menu code and option number:
|
||||
```bash
|
||||
# Vote for option 1 (vim)
|
||||
/vote b3 1
|
||||
|
||||
# For multiple choice polls, vote for multiple options
|
||||
/vote b3 1,3
|
||||
```
|
||||
|
||||
## Managing Your Experience
|
||||
|
||||
### Adjusting Settings
|
||||
```bash
|
||||
# Change how often timeline refreshes (in seconds)
|
||||
/set effpause 300 # Refresh every 5 minutes
|
||||
|
||||
# Set your preferred browsers
|
||||
/set gui_browser firefox
|
||||
/set cli_browser w3m
|
||||
|
||||
# Check current settings
|
||||
/get effpause
|
||||
```
|
||||
|
||||
### Getting Information
|
||||
```bash
|
||||
# See available commands
|
||||
/help
|
||||
|
||||
# Check API rate limits
|
||||
/rate
|
||||
|
||||
# See TTYverse version
|
||||
/version
|
||||
```
|
||||
|
||||
### Controlling Output
|
||||
```bash
|
||||
# Enable detailed output
|
||||
/verbose
|
||||
|
||||
# Enable debug information (for troubleshooting)
|
||||
/debug
|
||||
```
|
||||
|
||||
## Sound Notifications
|
||||
|
||||
TTYverse includes audio feedback for different events:
|
||||
|
||||
- **New posts** - Gentle notification sound
|
||||
- **Mentions** - Distinctive alert when someone mentions you
|
||||
- **Direct messages** - Special sound for private messages
|
||||
- **Your posts** - Confirmation when your posts appear
|
||||
- **Boosts/favorites** - Feedback when others interact with your posts
|
||||
|
||||
Sound files are stored in `~/.local/share/ttyverse/sounds/default/`
|
||||
|
||||
## Common Workflows
|
||||
|
||||
### Morning Routine
|
||||
```bash
|
||||
# Start TTYverse and catch up
|
||||
./ttyverse.pl # Shows recent timeline
|
||||
/dms # Check direct messages
|
||||
/timeline local # See community activity
|
||||
```
|
||||
|
||||
### Active Participation
|
||||
```bash
|
||||
# Engage with interesting content
|
||||
/fav a3 # Like interesting posts
|
||||
/boost a5 # Share good content
|
||||
/reply a7 Great insight! # Join conversations
|
||||
/post Today I learned... # Share your thoughts
|
||||
```
|
||||
|
||||
### Content Creation
|
||||
```bash
|
||||
# Share a photo with proper accessibility
|
||||
/media ~/photo.jpg
|
||||
# Alt-text: "Golden retriever playing in autumn leaves"
|
||||
# Message: "Morning walk with the dog - beautiful fall colors!"
|
||||
```
|
||||
|
||||
### Research and Discovery
|
||||
```bash
|
||||
# Explore topics
|
||||
/search #photography # Find photography discussions
|
||||
/timeline federated # See broader conversations
|
||||
/search @expert # Find knowledgeable users
|
||||
/follow @expert@domain # Follow interesting people
|
||||
```
|
||||
|
||||
### End of Session
|
||||
```bash
|
||||
# Save interesting posts for later
|
||||
/bookmark a3
|
||||
/bookmark b7
|
||||
|
||||
# Exit cleanly
|
||||
/quit
|
||||
```
|
||||
|
||||
## Tips for Effective Usage
|
||||
|
||||
### Navigation Tips
|
||||
1. **Use menu codes efficiently** - They're faster than scrolling
|
||||
2. **Bookmark interesting posts** - Save them for later reference
|
||||
3. **Follow local timeline** - Discover your community
|
||||
4. **Use search regularly** - Find conversations on topics you care about
|
||||
|
||||
### Engagement Tips
|
||||
1. **Always provide alt-text** - TTYverse enforces this for good reason
|
||||
2. **Reply thoughtfully** - Add value to conversations
|
||||
3. **Use appropriate visibility** - Consider who should see your posts
|
||||
4. **Boost good content** - Help spread valuable information
|
||||
|
||||
### Accessibility Tips
|
||||
1. **TTYverse is screen reader friendly** - All output is plain text
|
||||
2. **Sound notifications help** - Audio cues for different events
|
||||
3. **Consistent structure** - Posts always follow the same format
|
||||
4. **Keyboard-only navigation** - No mouse required anywhere
|
||||
|
||||
### Performance Tips
|
||||
1. **Adjust refresh rate** - Slower connections benefit from longer intervals
|
||||
2. **Use /last command** - Access cached posts without network requests
|
||||
3. **Bookmark instead of searching** - Faster access to interesting content
|
||||
|
||||
## Troubleshooting Common Issues
|
||||
|
||||
### Timeline Issues
|
||||
```bash
|
||||
# Timeline won't load
|
||||
/refresh # Force refresh
|
||||
# Check network: ping 8.8.8.8
|
||||
|
||||
# Old posts showing
|
||||
/timeline # Reload home timeline
|
||||
```
|
||||
|
||||
### Interaction Problems
|
||||
```bash
|
||||
# Menu codes not working
|
||||
# Make sure you're using current codes (they change as new posts load)
|
||||
|
||||
# Can't reply or boost
|
||||
# Check if post is still available: /url a3
|
||||
```
|
||||
|
||||
### Media Upload Issues
|
||||
```bash
|
||||
# Image upload fails
|
||||
# Ensure file exists: ls -la ~/path/to/image.jpg
|
||||
# Check file size (8MB limit for images on most servers)
|
||||
# Provide meaningful alt-text (required!)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**See also:** [Getting Started](Getting-Started) | [Commands Reference](Commands-Reference) | [Media Uploads](Media-Uploads)
|
||||
|
||||
*Last updated: 2025-07-28*
|
287
Commands-Reference.md
Normal file
287
Commands-Reference.md
Normal file
@ -0,0 +1,287 @@
|
||||
# Commands Reference
|
||||
|
||||
Complete reference for all TTYverse commands. Commands are entered at the `TTYverse>` prompt and always start with `/`.
|
||||
|
||||
## Timeline & Navigation Commands
|
||||
|
||||
### `/timeline [type]`
|
||||
Display timeline content.
|
||||
|
||||
**Usage:**
|
||||
- `/timeline` - Show home timeline (default)
|
||||
- `/timeline local` - Show local instance timeline
|
||||
- `/timeline federated` - Show federated timeline
|
||||
- `/timeline bookmarks` - Show bookmarked posts
|
||||
|
||||
**Examples:**
|
||||
```bash
|
||||
/timeline # Home timeline
|
||||
/timeline local # Local posts
|
||||
/timeline federated # All federated posts
|
||||
/timeline bookmarks # Your bookmarks
|
||||
```
|
||||
|
||||
### `/again`
|
||||
Show more posts from the current timeline.
|
||||
|
||||
### `/refresh`
|
||||
Refresh the current timeline and fetch new posts.
|
||||
|
||||
### `/last [number]`
|
||||
Show the last N posts from cache.
|
||||
|
||||
**Example:**
|
||||
```bash
|
||||
/last 10 # Show last 10 posts
|
||||
```
|
||||
|
||||
## Posting Commands
|
||||
|
||||
### `/post <message>`
|
||||
Create a new public post.
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/post Hello fediverse!
|
||||
/post This is a longer post with multiple words
|
||||
```
|
||||
|
||||
**Note:** Posts default to public visibility.
|
||||
|
||||
### `/reply <code> <message>`
|
||||
Reply to a specific post using its menu code.
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/reply a3 Thanks for sharing!
|
||||
/reply b1 Great point about accessibility
|
||||
```
|
||||
|
||||
### `/media <filepath> [message]`
|
||||
Upload media (image, audio, video) with optional post text.
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/media /path/to/image.jpg # Upload image only
|
||||
/media /path/to/audio.mp3 Great song! # Upload with message
|
||||
```
|
||||
|
||||
**Accessibility:** Images require alt-text descriptions. TTYverse will prompt for alt-text and cancel uploads without descriptions.
|
||||
|
||||
**Supported formats:**
|
||||
- **Images:** JPEG, PNG, GIF, WebP
|
||||
- **Audio:** MP3, OGG, WAV, FLAC, M4A
|
||||
- **Video:** MP4, WebM, MOV
|
||||
|
||||
## Interaction Commands
|
||||
|
||||
### `/boost <code>`
|
||||
Boost (reblog) a post.
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/boost a3 # Boost post a3
|
||||
/boost b7 # Boost post b7
|
||||
```
|
||||
|
||||
### `/unboost <code>`
|
||||
Remove boost from a post.
|
||||
|
||||
### `/fav <code>` / `/favorite <code>`
|
||||
Favorite (like) a post.
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/fav a3 # Favorite post a3
|
||||
/favorite b1 # Same as /fav
|
||||
```
|
||||
|
||||
### `/unfav <code>`
|
||||
Remove favorite from a post.
|
||||
|
||||
### `/bookmark <code>`
|
||||
Bookmark a post for later.
|
||||
|
||||
### `/unbookmark <code>`
|
||||
Remove bookmark from a post.
|
||||
|
||||
### `/vote <code> <choices>`
|
||||
Vote in a poll.
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/vote a3 1 # Vote for option 1
|
||||
/vote b2 2,3 # Vote for options 2 and 3 (multiple choice)
|
||||
/vote c1 1-3 # Vote for options 1 through 3
|
||||
```
|
||||
|
||||
## Direct Messages
|
||||
|
||||
### `/dms`
|
||||
Show recent direct messages.
|
||||
|
||||
### `/reply <dm_code> <message>`
|
||||
Reply to a direct message.
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/reply da1 Thanks for the message!
|
||||
```
|
||||
|
||||
## Search Commands
|
||||
|
||||
### `/search <query>`
|
||||
Search for posts, hashtags, or accounts.
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/search #accessibility # Search hashtag
|
||||
/search @username@instance.com # Search user
|
||||
/search "climate change" # Search text
|
||||
/search technology # Search term
|
||||
```
|
||||
|
||||
### `/whois <username>`
|
||||
Get information about a user.
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/whois storm@stormux.org
|
||||
/whois @localuser
|
||||
```
|
||||
|
||||
## Account & Profile Commands
|
||||
|
||||
### `/follow <username>`
|
||||
Follow a user.
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/follow storm@stormux.org
|
||||
/follow @localuser
|
||||
```
|
||||
|
||||
### `/unfollow <username>`
|
||||
Unfollow a user.
|
||||
|
||||
### `/block <username>`
|
||||
Block a user.
|
||||
|
||||
### `/unblock <username>`
|
||||
Unblock a user.
|
||||
|
||||
### `/mute <username>`
|
||||
Mute a user.
|
||||
|
||||
### `/unmute <username>`
|
||||
Unmute a user.
|
||||
|
||||
## URL & Link Commands
|
||||
|
||||
### `/url <code>`
|
||||
Open URL from a post in your browser.
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/url a3 # Open URL from post a3
|
||||
```
|
||||
|
||||
TTYverse automatically detects your environment and uses:
|
||||
- **GUI browsers:** Firefox, Chrome, etc. (if DISPLAY is set)
|
||||
- **CLI browsers:** w3m, elinks, lynx (in terminal)
|
||||
|
||||
**Configuration:**
|
||||
- Set `gui_browser` in config for GUI preference
|
||||
- Set `cli_browser` in config for CLI preference
|
||||
|
||||
## Information Commands
|
||||
|
||||
### `/help`
|
||||
Show available commands.
|
||||
|
||||
### `/version`
|
||||
Show TTYverse version information.
|
||||
|
||||
### `/about`
|
||||
Show information about TTYverse.
|
||||
|
||||
### `/rate`
|
||||
Show current API rate limit status.
|
||||
|
||||
## Configuration Commands
|
||||
|
||||
### `/set <option> <value>`
|
||||
Change configuration options.
|
||||
|
||||
**Common options:**
|
||||
```bash
|
||||
/set effpause 60 # Set refresh interval (seconds)
|
||||
/set gui_browser firefox # Set GUI browser
|
||||
/set cli_browser w3m # Set CLI browser
|
||||
```
|
||||
|
||||
### `/get <option>`
|
||||
Show current value of configuration option.
|
||||
|
||||
## System Commands
|
||||
|
||||
### `/quit` / `/exit`
|
||||
Exit TTYverse.
|
||||
|
||||
### `/restart`
|
||||
Restart TTYverse (reload configuration).
|
||||
|
||||
## Debug Commands
|
||||
|
||||
### `/verbose`
|
||||
Toggle verbose output for debugging.
|
||||
|
||||
### `/debug`
|
||||
Toggle debug output for troubleshooting.
|
||||
|
||||
## Menu Codes
|
||||
|
||||
TTYverse assigns menu codes to posts for easy reference:
|
||||
|
||||
- **Posts:** `a0`, `a1`, `a2`, ... `a9`, `b0`, `b1`, etc.
|
||||
- **DMs:** `da0`, `da1`, `da2`, etc.
|
||||
|
||||
Codes are assigned in chronological order, with newer posts getting later codes.
|
||||
|
||||
## Visibility Levels
|
||||
|
||||
When posting, content visibility is shown:
|
||||
- **[Public]** - Visible to everyone, appears in timelines
|
||||
- **[Unlisted]** - Public but not in local/federated timelines
|
||||
- **[Followers]** - Only followers can see
|
||||
- **[Direct]** - Only mentioned users can see
|
||||
|
||||
## Command Aliases
|
||||
|
||||
Some commands have shorter aliases:
|
||||
- `/fav` = `/favorite`
|
||||
- `/boost` = `/rt` = `/reblog`
|
||||
- `/dms` = `/dm`
|
||||
- `/quit` = `/exit` = `/q`
|
||||
|
||||
## Tips
|
||||
|
||||
1. **Tab completion:** Most commands support tab completion
|
||||
2. **Command history:** Use up/down arrows for command history
|
||||
3. **Multiple words:** Wrap multi-word arguments in quotes if needed
|
||||
4. **Case sensitivity:** Commands are case-insensitive
|
||||
5. **Menu codes:** Always use current menu codes (they change as new posts load)
|
||||
|
||||
## Error Handling
|
||||
|
||||
Common error messages:
|
||||
- "Invalid menu code" - Post code doesn't exist or is old
|
||||
- "Rate limit exceeded" - API calls too frequent, wait a moment
|
||||
- "Not found" - User or post doesn't exist
|
||||
- "Unauthorized" - Authentication problem, check OAuth setup
|
||||
|
||||
---
|
||||
|
||||
**See also:** [Getting Started](Getting-Started) | [Basic Usage](Basic-Usage) | [Advanced Features](Advanced-Features)
|
||||
|
||||
*Last updated: 2025-07-28*
|
322
Configuration.md
Normal file
322
Configuration.md
Normal file
@ -0,0 +1,322 @@
|
||||
# Configuration
|
||||
|
||||
TTYverse stores configuration in XDG-compliant directories and supports extensive customization through configuration files and runtime settings.
|
||||
|
||||
## Configuration Locations
|
||||
|
||||
### XDG Base Directory Support
|
||||
TTYverse follows the XDG Base Directory Specification:
|
||||
|
||||
- **Config files:** `$XDG_CONFIG_HOME/ttyverse/` or `~/.config/ttyverse/`
|
||||
- **Data files:** `$XDG_DATA_HOME/ttyverse/` or `~/.local/share/ttyverse/`
|
||||
- **Cache files:** `$XDG_CACHE_HOME/ttyverse/` or `~/.cache/ttyverse/`
|
||||
|
||||
### Key Files
|
||||
```
|
||||
~/.config/ttyverse/
|
||||
├── ttyverse_rc # Main configuration file
|
||||
├── oauth_credentials # OAuth tokens (keep secure!)
|
||||
└── dm_seen_status # Direct message tracking
|
||||
|
||||
~/.local/share/ttyverse/
|
||||
├── extensions/ # Extension scripts
|
||||
│ ├── soundpack.pl # Sound notifications
|
||||
│ ├── tts.pl # Text-to-speech
|
||||
│ └── libnotify.pl # Desktop notifications
|
||||
└── sounds/ # Sound notification files
|
||||
└── default/ # Default sound pack
|
||||
├── default.ogg
|
||||
├── mention.ogg
|
||||
├── dm.ogg
|
||||
└── ...
|
||||
```
|
||||
|
||||
## Main Configuration File
|
||||
|
||||
### ttyverse_rc Format
|
||||
The main config file (`~/.config/ttyverse/ttyverse_rc`) uses a simple key=value format:
|
||||
|
||||
```perl
|
||||
# TTYverse Configuration File
|
||||
# Generated by TTYverse setup
|
||||
|
||||
# Server and authentication
|
||||
apibase=https://your-instance.com/api/v1
|
||||
tokenkey=your_oauth_token_here
|
||||
|
||||
# Display and behavior settings
|
||||
effpause=120
|
||||
verbose=1
|
||||
readline=1
|
||||
|
||||
# Browser settings
|
||||
gui_browser=firefox
|
||||
cli_browser=w3m
|
||||
|
||||
# Extension settings
|
||||
extension_notify=default,mention,dm
|
||||
```
|
||||
|
||||
### Key Configuration Options
|
||||
|
||||
#### Core Settings
|
||||
- **`apibase`** - Your fediverse server's API base URL
|
||||
- **`tokenkey`** - OAuth authentication token (keep private!)
|
||||
- **`effpause`** - Timeline refresh interval in seconds (default: 120)
|
||||
- **`verbose`** - Enable verbose output (0/1)
|
||||
- **`readline`** - Enable advanced readline support (0/1)
|
||||
|
||||
#### Browser Configuration
|
||||
- **`gui_browser`** - Preferred GUI browser (firefox, chrome, etc.)
|
||||
- **`cli_browser`** - Preferred CLI browser (w3m, elinks, lynx)
|
||||
|
||||
#### Timeline Settings
|
||||
- **`timeline_count`** - Number of posts to fetch (default: 30)
|
||||
- **`timeline_cache`** - Maximum cached posts (default: 200)
|
||||
|
||||
#### Notification Settings
|
||||
- **`extension_notify`** - Comma-separated list of notification types
|
||||
- **`sound_enabled`** - Enable sound notifications (0/1)
|
||||
|
||||
## Browser Configuration
|
||||
|
||||
TTYverse automatically detects your environment and chooses appropriate browsers:
|
||||
|
||||
### GUI Environment (DISPLAY set)
|
||||
1. Uses `gui_browser` setting if configured
|
||||
2. Falls back to `xdg-open`
|
||||
3. Tries common browsers: firefox, chrome, chromium
|
||||
|
||||
### CLI Environment (no DISPLAY)
|
||||
1. Uses `cli_browser` setting if configured
|
||||
2. Tries CLI browsers: w3m, elinks, lynx
|
||||
|
||||
### Manual Configuration
|
||||
```bash
|
||||
# Set browsers in TTYverse
|
||||
/set gui_browser firefox
|
||||
/set cli_browser w3m
|
||||
|
||||
# Or edit config file directly
|
||||
echo "gui_browser=firefox" >> ~/.config/ttyverse/ttyverse_rc
|
||||
echo "cli_browser=w3m" >> ~/.config/ttyverse/ttyverse_rc
|
||||
```
|
||||
|
||||
## Sound Configuration
|
||||
|
||||
### Sound Pack Structure
|
||||
```
|
||||
~/.local/share/ttyverse/sounds/default/
|
||||
├── default.ogg # General notifications
|
||||
├── mention.ogg # When mentioned
|
||||
├── dm.ogg # Direct messages
|
||||
├── me.ogg # Your own posts
|
||||
├── search.ogg # Search results
|
||||
├── follow.ogg # New followers
|
||||
├── boost.ogg # When boosted
|
||||
├── favourite.ogg # When favorited
|
||||
├── poll.ogg # Poll notifications
|
||||
├── edit.ogg # Edited posts
|
||||
└── announcement.ogg # Server announcements
|
||||
```
|
||||
|
||||
### Sound Types
|
||||
TTYverse supports these notification types:
|
||||
- **default** - General notifications
|
||||
- **mention** - When someone mentions you
|
||||
- **dm** - Direct messages
|
||||
- **me** - Your own posts appearing in timeline
|
||||
- **search** - Search results
|
||||
- **follow** - New followers
|
||||
- **boost** - When someone boosts your post
|
||||
- **favourite** - When someone favorites your post
|
||||
- **poll** - Poll-related notifications
|
||||
- **edit** - When posts are edited
|
||||
- **announcement** - Server announcements
|
||||
|
||||
### Custom Sound Packs
|
||||
Create custom sound packs by:
|
||||
1. Creating directory: `~/.local/share/ttyverse/sounds/mysounds/`
|
||||
2. Adding OGG files for each notification type
|
||||
3. Activating: `/set sound_pack mysounds`
|
||||
|
||||
## Extension Configuration
|
||||
|
||||
### Available Extensions
|
||||
- **soundpack.pl** - Sound notifications
|
||||
- **tts.pl** - Text-to-speech support
|
||||
- **libnotify.pl** - Desktop notifications
|
||||
- **timestamp.pl** - Enhanced timestamp display
|
||||
|
||||
### Extension Management
|
||||
```bash
|
||||
# List loaded extensions
|
||||
ls ~/.local/share/ttyverse/extensions/
|
||||
|
||||
# Check loaded extensions in TTYverse
|
||||
/verbose
|
||||
# Shows: ** loaded extensions: soundpack, tts
|
||||
```
|
||||
|
||||
### Extension Settings
|
||||
Extensions can be configured through the main config file:
|
||||
```perl
|
||||
# Sound pack settings
|
||||
sound_enabled=1
|
||||
sound_pack=default
|
||||
|
||||
# TTS settings
|
||||
tts_enabled=1
|
||||
tts_voice=espeak
|
||||
|
||||
# Notification settings
|
||||
notify_desktop=1
|
||||
notify_sound=1
|
||||
```
|
||||
|
||||
## Runtime Configuration
|
||||
|
||||
### Setting Options During Session
|
||||
```bash
|
||||
# View current setting
|
||||
/get effpause
|
||||
|
||||
# Change setting
|
||||
/set effpause 60
|
||||
|
||||
# View all settings
|
||||
/verbose
|
||||
```
|
||||
|
||||
### Common Runtime Changes
|
||||
```bash
|
||||
# Adjust refresh rate
|
||||
/set effpause 300 # 5 minutes
|
||||
|
||||
# Change browser
|
||||
/set gui_browser chrome
|
||||
|
||||
# Toggle verbose output
|
||||
/verbose
|
||||
|
||||
# Toggle debug output
|
||||
/debug
|
||||
```
|
||||
|
||||
## OAuth Configuration
|
||||
|
||||
### OAuth Credential Files
|
||||
TTYverse stores OAuth credentials securely in:
|
||||
- **`oauth_credentials`** - Token and server information
|
||||
- **`ttyverse_rc`** - Main config with tokenkey
|
||||
|
||||
### Re-authenticating
|
||||
If OAuth fails:
|
||||
```bash
|
||||
# Remove old credentials
|
||||
rm ~/.config/ttyverse/oauth_credentials
|
||||
rm ~/.config/ttyverse/ttyverse_rc
|
||||
|
||||
# Restart TTYverse for fresh OAuth setup
|
||||
./ttyverse.pl
|
||||
```
|
||||
|
||||
### Multiple Accounts
|
||||
TTYverse supports multiple accounts through keyfiles:
|
||||
```bash
|
||||
# Use different keyfile for second account
|
||||
./ttyverse.pl -keyfile work_account
|
||||
|
||||
# This creates ~/.config/ttyverse/work_account_rc
|
||||
```
|
||||
|
||||
## Performance Tuning
|
||||
|
||||
### Memory Usage
|
||||
```perl
|
||||
# Reduce cached posts for lower memory usage
|
||||
timeline_cache=100
|
||||
|
||||
# Reduce fetch count for slower connections
|
||||
timeline_count=15
|
||||
```
|
||||
|
||||
### Network Settings
|
||||
```perl
|
||||
# Increase refresh interval for slower connections
|
||||
effpause=300
|
||||
|
||||
# Reduce concurrent connections
|
||||
max_connections=2
|
||||
```
|
||||
|
||||
### Accessibility Settings
|
||||
```perl
|
||||
# Force screen reader compatibility
|
||||
readline=1
|
||||
verbose=1
|
||||
|
||||
# Enable all accessibility features
|
||||
sound_enabled=1
|
||||
alt_text_required=1
|
||||
```
|
||||
|
||||
## Backup and Migration
|
||||
|
||||
### Backing Up Configuration
|
||||
```bash
|
||||
# Backup entire config directory
|
||||
tar -czf ttyverse-config-backup.tar.gz ~/.config/ttyverse/
|
||||
|
||||
# Backup just the main config
|
||||
cp ~/.config/ttyverse/ttyverse_rc ~/ttyverse_rc.backup
|
||||
```
|
||||
|
||||
### Migration Between Systems
|
||||
1. Copy config directory to new system
|
||||
2. Update file paths if needed
|
||||
3. Re-authenticate if moving between different systems
|
||||
4. Install required dependencies (curl, perl modules)
|
||||
|
||||
## Troubleshooting Configuration
|
||||
|
||||
### Common Issues
|
||||
```bash
|
||||
# Config file not found
|
||||
ls -la ~/.config/ttyverse/
|
||||
# Create directory if missing: mkdir -p ~/.config/ttyverse/
|
||||
|
||||
# Permission issues
|
||||
chmod 700 ~/.config/ttyverse/
|
||||
chmod 600 ~/.config/ttyverse/*
|
||||
|
||||
# OAuth token issues
|
||||
# Check if token exists and is not empty
|
||||
cat ~/.config/ttyverse/ttyverse_rc | grep tokenkey
|
||||
```
|
||||
|
||||
### Debug Configuration Loading
|
||||
```bash
|
||||
# Run with verbose output to see config loading
|
||||
./ttyverse.pl -verbose
|
||||
|
||||
# Check which config file is being used
|
||||
./ttyverse.pl -debug
|
||||
```
|
||||
|
||||
### Reset to Defaults
|
||||
```bash
|
||||
# Remove all configuration (will prompt for fresh setup)
|
||||
rm -rf ~/.config/ttyverse/
|
||||
rm -rf ~/.local/share/ttyverse/
|
||||
rm -rf ~/.cache/ttyverse/
|
||||
|
||||
# Restart TTYverse
|
||||
./ttyverse.pl
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**See also:** [Getting Started](Getting-Started) | [Extensions](Extensions) | [Troubleshooting](Troubleshooting)
|
||||
|
||||
*Last updated: 2025-07-28*
|
98
Extensions.md
Normal file
98
Extensions.md
Normal file
@ -0,0 +1,98 @@
|
||||
# Extensions
|
||||
|
||||
TTYverse supports extensions that add functionality like sound notifications, text-to-speech, and desktop integration. Extensions are Perl scripts that integrate with TTYverse's multi-process architecture.
|
||||
|
||||
## Available Extensions
|
||||
|
||||
TTYverse includes several extensions that enhance the user experience:
|
||||
|
||||
- **Sound Pack** - Audio notifications for different types of posts and events
|
||||
- **Text-to-Speech** - Speak posts and notifications aloud
|
||||
- **Desktop Notifications** - Visual notification bubbles
|
||||
- **Timestamp Enhancement** - Enhanced timestamp display options
|
||||
|
||||
Extensions are included with TTYverse but not enabled by default.
|
||||
|
||||
## Extension Installation
|
||||
|
||||
### Extension Availability
|
||||
TTYverse includes core extensions in the installation:
|
||||
|
||||
```bash
|
||||
** attempting to load extensions
|
||||
** loading /home/user/.local/share/ttyverse/extensions/extensionname.pl
|
||||
** loaded extensions: extensionname
|
||||
```
|
||||
|
||||
### Extension Location
|
||||
Extensions are stored in:
|
||||
```
|
||||
~/.local/share/ttyverse/extensions/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Extensions are configured through TTYverse settings:
|
||||
|
||||
```bash
|
||||
# View extension-related settings
|
||||
/get sound_enabled
|
||||
/get tts_enabled
|
||||
|
||||
# Enable/disable extensions
|
||||
/set sound_enabled 1
|
||||
/set extension_name 0
|
||||
```
|
||||
|
||||
Configuration can also be edited directly in:
|
||||
```
|
||||
~/.config/ttyverse/ttyverse_rc
|
||||
```
|
||||
|
||||
## Extension Dependencies
|
||||
|
||||
Some extensions may require additional system packages. Check the documentation for your specific distribution to install:
|
||||
|
||||
- **Audio support** - PulseAudio or similar audio system
|
||||
- **Text-to-speech** - TTS engines like espeak or festival
|
||||
- **Desktop notifications** - libnotify and related Perl modules
|
||||
|
||||
## Custom Extensions
|
||||
|
||||
### Creating Extensions
|
||||
Extensions are Perl scripts that follow TTYverse conventions. They can:
|
||||
|
||||
- Hook into post processing
|
||||
- React to different notification types
|
||||
- Add new commands
|
||||
- Integrate with system features
|
||||
|
||||
### Extension Development
|
||||
See the existing extensions in `~/.local/share/ttyverse/extensions/` for examples of how to create custom functionality.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Extension Issues
|
||||
```bash
|
||||
# Check if extensions are loading
|
||||
./ttyverse.pl -verbose
|
||||
|
||||
# Test extension files manually
|
||||
perl ~/.local/share/ttyverse/extensions/extensionname.pl
|
||||
|
||||
# Fix permissions if needed
|
||||
chmod +x ~/.local/share/ttyverse/extensions/*.pl
|
||||
```
|
||||
|
||||
### Common Problems
|
||||
- **Permission denied** - Make extension files executable
|
||||
- **Missing dependencies** - Install required system packages
|
||||
- **Configuration errors** - Check settings in ttyverse_rc
|
||||
|
||||
For specific extension issues, check the [Troubleshooting](Troubleshooting) guide.
|
||||
|
||||
---
|
||||
|
||||
**See also:** [Configuration](Configuration) | [Troubleshooting](Troubleshooting) | [Installation](Installation)
|
||||
|
||||
*Last updated: 2025-07-28*
|
230
FAQ.md
Normal file
230
FAQ.md
Normal file
@ -0,0 +1,230 @@
|
||||
# Frequently Asked Questions (FAQ)
|
||||
|
||||
Common questions about TTYverse. For technical issues, see [Troubleshooting](Troubleshooting).
|
||||
|
||||
## General Questions
|
||||
|
||||
### What is TTYverse?
|
||||
TTYverse is a command-line client for the fediverse (Mastodon, GoToSocial, etc.). It's designed for terminal users who want a powerful, accessible way to interact with ActivityPub servers.
|
||||
|
||||
### How is TTYverse different from other fediverse clients?
|
||||
- **Accessibility-first design** - Built by and for screen reader users
|
||||
- **Terminal-native** - No GUI dependencies, works over SSH
|
||||
- **Single-file architecture** - Just one Perl script
|
||||
- **Sound notifications** - Audio feedback for different post types
|
||||
- **Enforced alt-text** - Images require descriptions for accessibility
|
||||
|
||||
### What servers does TTYverse support?
|
||||
- **Mastodon** - Full support
|
||||
- **GoToSocial** - Full support
|
||||
- **Pleroma** - Basic support
|
||||
- **Misskey** - Limited support
|
||||
- **Any ActivityPub server** - Basic federation features
|
||||
|
||||
### Is TTYverse free?
|
||||
Yes, TTYverse is free software under the Floodgap Free Software License. You can use, modify, and distribute it freely.
|
||||
|
||||
## Installation and Setup
|
||||
|
||||
### Do I need to install anything besides TTYverse?
|
||||
You need Perl and curl, which are available on most Unix-like systems. Optional dependencies improve the experience:
|
||||
- **Term::ReadLine::Gnu** - Better command line editing
|
||||
- **PulseAudio** - Sound notifications
|
||||
- **w3m/elinks/lynx** - Opening links in terminal
|
||||
|
||||
### Can I run TTYverse on Windows?
|
||||
Not directly. TTYverse is designed for Unix-like systems. You could try:
|
||||
- **WSL (Windows Subsystem for Linux)** - Run Linux environment on Windows
|
||||
- **Cygwin** - Unix-like environment for Windows
|
||||
- **Virtual machine** - Run Linux in a VM
|
||||
|
||||
### How do I update TTYverse?
|
||||
Download the latest version and replace your current script:
|
||||
```bash
|
||||
wget -O ttyverse.pl https://git.stormux.org/storm/ttyverse/releases/latest/download/ttyverse.pl
|
||||
chmod +x ttyverse.pl
|
||||
```
|
||||
|
||||
## Usage Questions
|
||||
|
||||
### How do I see older posts?
|
||||
Use `/again` to load more posts from your timeline, or `/last 20` to see the last 20 cached posts.
|
||||
|
||||
### Can I use TTYverse over SSH?
|
||||
Yes! TTYverse works perfectly over SSH connections. Sound notifications won't work over SSH, but all other features do.
|
||||
|
||||
### How do I open links from posts?
|
||||
Use `/url <post_code>` (e.g., `/url a3`). TTYverse will automatically detect your environment and use appropriate browsers.
|
||||
|
||||
### Why does TTYverse require alt-text for images?
|
||||
TTYverse enforces accessibility standards. The maintainer is blind, and the philosophy is: "If you're going to use a client maintained by a blind guy, you can damn well describe your images!"
|
||||
|
||||
### Can I post without media upload?
|
||||
Yes, use `/post Your message here` for text-only posts.
|
||||
|
||||
## Technical Questions
|
||||
|
||||
### Where does TTYverse store its configuration?
|
||||
TTYverse follows XDG Base Directory specification:
|
||||
- **Config:** `~/.config/ttyverse/`
|
||||
- **Data:** `~/.local/share/ttyverse/`
|
||||
- **Cache:** `~/.cache/ttyverse/`
|
||||
|
||||
### How does the multi-process architecture work?
|
||||
TTYverse runs two processes:
|
||||
- **Foreground process** - User interface and commands
|
||||
- **Background process** - Timeline monitoring and data management
|
||||
|
||||
They communicate via IPC (pipes and signals).
|
||||
|
||||
### Can I run multiple instances?
|
||||
Yes, use different keyfiles:
|
||||
```bash
|
||||
./ttyverse.pl -keyfile work_account
|
||||
./ttyverse.pl -keyfile personal_account
|
||||
```
|
||||
|
||||
### How do I backup my configuration?
|
||||
```bash
|
||||
tar -czf ttyverse-backup.tar.gz ~/.config/ttyverse/
|
||||
```
|
||||
|
||||
## Features and Functionality
|
||||
|
||||
### What timeline types are supported?
|
||||
- **Home timeline** - Posts from accounts you follow
|
||||
- **Local timeline** - Posts from your instance
|
||||
- **Federated timeline** - Posts from the broader fediverse
|
||||
- **Bookmarks** - Posts you've bookmarked
|
||||
|
||||
### Does TTYverse support direct messages?
|
||||
Yes, use `/dms` to view direct messages and `/reply da1 message` to reply.
|
||||
|
||||
### Can I boost and favorite posts?
|
||||
Yes:
|
||||
- `/boost a3` - Boost post a3
|
||||
- `/fav a3` - Favorite post a3
|
||||
- `/bookmark a3` - Bookmark post a3
|
||||
|
||||
### What about search functionality?
|
||||
Use `/search` for:
|
||||
- `/search #hashtag` - Search hashtags
|
||||
- `/search @username` - Find users
|
||||
- `/search "text"` - Search post content
|
||||
|
||||
## Accessibility Features
|
||||
|
||||
### What accessibility features does TTYverse have?
|
||||
- **Screen reader friendly** - All output is text-based
|
||||
- **Sound notifications** - Audio feedback for events
|
||||
- **Alt-text enforcement** - Images must have descriptions
|
||||
- **Keyboard navigation** - No mouse required
|
||||
- **Terminal compatibility** - Works with any terminal
|
||||
|
||||
### Can I disable sound notifications?
|
||||
Yes, edit `~/.config/ttyverse/ttyverse_rc` and set `sound_enabled=0`
|
||||
|
||||
### Does TTYverse work with screen readers?
|
||||
Yes, TTYverse is designed specifically for screen reader users. All output is plain text and follows screen reader conventions.
|
||||
|
||||
## Customization
|
||||
|
||||
### Can I change the sound notifications?
|
||||
Yes, replace sound files in `~/.local/share/ttyverse/sounds/default/` or create custom sound packs.
|
||||
|
||||
### How do I change the browser TTYverse uses?
|
||||
```bash
|
||||
/set gui_browser firefox
|
||||
/set cli_browser w3m
|
||||
```
|
||||
|
||||
### Can I adjust the timeline refresh rate?
|
||||
```bash
|
||||
/set effpause 300 # Refresh every 5 minutes
|
||||
```
|
||||
|
||||
### Are there extensions available?
|
||||
Yes, TTYverse includes several extensions:
|
||||
- **soundpack.pl** - Sound notifications
|
||||
- **tts.pl** - Text-to-speech
|
||||
- **libnotify.pl** - Desktop notifications
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### TTYverse won't start, what should I check?
|
||||
1. Perl is installed: `perl --version`
|
||||
2. curl is available: `curl --version`
|
||||
3. Script is executable: `chmod +x ttyverse.pl`
|
||||
4. Config directory exists: `mkdir -p ~/.config/ttyverse/`
|
||||
|
||||
### I'm getting "connection failed" errors
|
||||
1. Check internet connection: `ping 8.8.8.8`
|
||||
2. Verify server URL in config
|
||||
3. Test server manually: `curl https://your-instance.com/api/v1/instance`
|
||||
4. Check firewall/proxy settings
|
||||
|
||||
### OAuth setup isn't working
|
||||
1. Try manual OAuth - copy URL to browser manually
|
||||
2. Check browser configuration
|
||||
3. Verify server supports OAuth 2.0
|
||||
4. Clear old credentials and start fresh
|
||||
|
||||
### Media uploads aren't working
|
||||
1. Check file size limits (8MB for images, 40MB for video on Mastodon)
|
||||
2. Verify file format is supported
|
||||
3. Test with smaller files
|
||||
4. Check server error messages
|
||||
|
||||
## Development and Contributing
|
||||
|
||||
### Can I contribute to TTYverse?
|
||||
Yes! Contributions are welcome:
|
||||
- Report bugs at https://git.stormux.org/storm/ttyverse/issues
|
||||
- Submit patches via email or git
|
||||
- Improve documentation
|
||||
- Create extensions
|
||||
|
||||
### How is TTYverse developed?
|
||||
TTYverse is written in Perl as a single script. It's forked from TTYtter but completely rewritten for the fediverse.
|
||||
|
||||
### Can I create extensions?
|
||||
Yes, extensions are Perl scripts in `~/.local/share/ttyverse/extensions/`. See existing extensions for examples.
|
||||
|
||||
## Privacy and Security
|
||||
|
||||
### What data does TTYverse store locally?
|
||||
- **OAuth tokens** - For server authentication
|
||||
- **Timeline cache** - Recent posts for faster display
|
||||
- **DM seen status** - To track read direct messages
|
||||
- **Configuration** - Your settings and preferences
|
||||
|
||||
### How secure is TTYverse?
|
||||
- Uses OAuth 2.0 for authentication
|
||||
- Stores tokens locally with restricted permissions
|
||||
- No data sent to third parties
|
||||
- All communication is HTTPS
|
||||
|
||||
### Can I run TTYverse without saving credentials?
|
||||
OAuth tokens must be saved for TTYverse to function. Tokens are stored with restricted file permissions (600).
|
||||
|
||||
## Getting Help
|
||||
|
||||
### Where can I get support?
|
||||
- **Built-in help:** `/help` command in TTYverse
|
||||
- **Documentation:** This wiki
|
||||
- **Issues:** https://git.stormux.org/storm/ttyverse/issues
|
||||
- **Community:** Fediverse community support
|
||||
|
||||
### How do I report bugs?
|
||||
Report bugs at https://git.stormux.org/storm/ttyverse/issues with:
|
||||
- TTYverse version
|
||||
- System information
|
||||
- Steps to reproduce
|
||||
- Error messages
|
||||
- Debug output (if applicable)
|
||||
|
||||
---
|
||||
|
||||
**See also:** [Getting Started](Getting-Started) | [Troubleshooting](Troubleshooting) | [Commands Reference](Commands-Reference)
|
||||
|
||||
*Last updated: 2025-07-28*
|
232
Getting-Started.md
Normal file
232
Getting-Started.md
Normal file
@ -0,0 +1,232 @@
|
||||
# Getting Started with TTYverse
|
||||
|
||||
TTYverse is a command-line fediverse client that lets you interact with Mastodon, GoToSocial, and other ActivityPub servers from your terminal. This guide will get you up and running quickly.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- **Perl 5.x** - TTYverse is written in Perl
|
||||
- **curl** - For API communication
|
||||
- **Terminal emulator** - Any Unix/Linux terminal
|
||||
- **Fediverse account** - On Mastodon, GoToSocial, or compatible server
|
||||
|
||||
## Installation
|
||||
|
||||
### Quick Install
|
||||
```bash
|
||||
# Download the latest release
|
||||
wget https://git.stormux.org/storm/ttyverse/releases/latest/download/ttyverse.pl
|
||||
|
||||
# Make executable
|
||||
chmod +x ttyverse.pl
|
||||
|
||||
# Run TTYverse
|
||||
./ttyverse.pl
|
||||
```
|
||||
|
||||
For detailed installation options, see the [Installation](Installation) guide.
|
||||
|
||||
## First-Time Setup
|
||||
|
||||
### 1. Initial Launch
|
||||
When you first run TTYverse, it will guide you through OAuth setup:
|
||||
|
||||
```bash
|
||||
./ttyverse.pl
|
||||
```
|
||||
|
||||
### 2. Server Configuration
|
||||
TTYverse will ask for your fediverse server. Enter your instance URL:
|
||||
|
||||
```
|
||||
Enter your fediverse instance (e.g., mastodon.social): your-instance.com
|
||||
```
|
||||
|
||||
### 3. OAuth Authorization
|
||||
TTYverse will:
|
||||
1. Open your browser to authorize the application
|
||||
2. Generate an access token
|
||||
3. Save credentials to `~/.config/ttyverse/`
|
||||
|
||||
### 4. First Login
|
||||
After setup, you'll see the TTYverse prompt:
|
||||
|
||||
```
|
||||
TTYverse 2025.07.28 (c)2025 Storm Dragon
|
||||
fediverse client for Mastodon/GoToSocial/etc
|
||||
|
||||
when ready, hit RETURN/ENTER for a prompt.
|
||||
type /help for commands or /quit to quit.
|
||||
|
||||
TTYverse>
|
||||
```
|
||||
|
||||
## Essential Commands
|
||||
|
||||
### Viewing Content
|
||||
```bash
|
||||
# Show your home timeline
|
||||
/timeline
|
||||
|
||||
# Show local timeline
|
||||
/timeline local
|
||||
|
||||
# Show federated timeline
|
||||
/timeline federated
|
||||
|
||||
# Show bookmarks
|
||||
/timeline bookmarks
|
||||
|
||||
# Show direct messages
|
||||
/dms
|
||||
```
|
||||
|
||||
### Creating Content
|
||||
```bash
|
||||
# Post a message
|
||||
/post Hello fediverse!
|
||||
|
||||
# Reply to a post (using menu code)
|
||||
/reply a3 Thanks for the interesting post!
|
||||
|
||||
# Post with media
|
||||
/media /path/to/image.jpg
|
||||
```
|
||||
|
||||
### Interacting
|
||||
```bash
|
||||
# Boost a post
|
||||
/boost a3
|
||||
|
||||
# Favorite a post
|
||||
/fav a3
|
||||
|
||||
# Vote in a poll
|
||||
/vote a3 2
|
||||
|
||||
# Search
|
||||
/search #hashtag
|
||||
/search @username
|
||||
/search "search terms"
|
||||
```
|
||||
|
||||
### Navigation
|
||||
```bash
|
||||
# Show more posts
|
||||
/again
|
||||
|
||||
# Refresh timeline
|
||||
/refresh
|
||||
|
||||
# Get help
|
||||
/help
|
||||
|
||||
# Quit
|
||||
/quit
|
||||
```
|
||||
|
||||
## Understanding Post Codes
|
||||
|
||||
TTYverse assigns menu codes to posts for easy reference:
|
||||
|
||||
```
|
||||
a0> {,POST_ID} <username> (2h ago) via TTYverse [Public]
|
||||
This is a post with menu code 'a0'
|
||||
|
||||
a1> {,POST_ID} <username> (1h ago) via Web [Unlisted]
|
||||
This post has menu code 'a1'
|
||||
```
|
||||
|
||||
Use these codes with commands:
|
||||
- `/reply a0 Great post!`
|
||||
- `/boost a1`
|
||||
- `/fav a0`
|
||||
|
||||
## Understanding Visibility Indicators
|
||||
|
||||
Posts show visibility levels:
|
||||
- **[Public]** - Visible to everyone, appears in public timelines
|
||||
- **[Unlisted]** - Public but doesn't appear in local/federated timelines
|
||||
- **[Followers]** - Only visible to your followers
|
||||
- **[Direct]** - Direct message, only visible to mentioned users
|
||||
|
||||
## Media Uploads
|
||||
|
||||
TTYverse enforces accessibility for images:
|
||||
|
||||
```bash
|
||||
# Upload an image (will prompt for alt-text)
|
||||
/media /path/to/photo.jpg
|
||||
|
||||
# Upload audio/video (no alt-text required)
|
||||
/media /path/to/audio.mp3
|
||||
```
|
||||
|
||||
**Note:** Images require alt-text descriptions. TTYverse will cancel uploads without descriptions to enforce accessibility.
|
||||
|
||||
## Sound Notifications
|
||||
|
||||
TTYverse includes sound notifications for different events:
|
||||
- New posts
|
||||
- Mentions
|
||||
- Direct messages
|
||||
- Boosts and favorites
|
||||
|
||||
Sounds are stored in `~/.local/share/ttyverse/sounds/`
|
||||
|
||||
## Configuration Files
|
||||
|
||||
TTYverse stores configuration in XDG-compliant locations:
|
||||
- **Config:** `~/.config/ttyverse/`
|
||||
- **Extensions:** `~/.local/share/ttyverse/extensions/`
|
||||
- **Sounds:** `~/.local/share/ttyverse/sounds/`
|
||||
|
||||
## Next Steps
|
||||
|
||||
Once you're comfortable with basic usage:
|
||||
|
||||
1. **[Configuration](Configuration)** - Customize TTYverse settings
|
||||
2. **[Advanced Features](Advanced-Features)** - Power user features
|
||||
3. **[Extensions](Extensions)** - Add sound packs and TTS
|
||||
4. **[Commands Reference](Commands-Reference)** - Complete command documentation
|
||||
|
||||
## Common Issues
|
||||
|
||||
### Connection Problems
|
||||
```bash
|
||||
# Test your connection
|
||||
/refresh
|
||||
|
||||
# Check your OAuth setup
|
||||
cat ~/.config/ttyverse/ttyverse_rc
|
||||
```
|
||||
|
||||
### Sound Issues
|
||||
```bash
|
||||
# Check if sound files exist
|
||||
ls ~/.local/share/ttyverse/sounds/default/
|
||||
|
||||
# Test audio playback
|
||||
paplay ~/.local/share/ttyverse/sounds/default/default.ogg
|
||||
```
|
||||
|
||||
### Permission Issues
|
||||
```bash
|
||||
# Ensure config directory is writable
|
||||
ls -la ~/.config/ttyverse/
|
||||
|
||||
# Check file permissions
|
||||
chmod 600 ~/.config/ttyverse/*
|
||||
```
|
||||
|
||||
## Getting Help
|
||||
|
||||
- **In TTYverse:** Type `/help` for command list
|
||||
- **Troubleshooting:** See [Troubleshooting](Troubleshooting) guide
|
||||
- **FAQ:** Check [FAQ](FAQ) for common questions
|
||||
- **Issues:** Report bugs at https://git.stormux.org/storm/ttyverse/issues
|
||||
|
||||
---
|
||||
|
||||
**Next:** [Basic Usage](Basic-Usage) | [Commands Reference](Commands-Reference)
|
||||
|
||||
*Last updated: 2025-07-28*
|
103
Home.md
103
Home.md
@ -1 +1,102 @@
|
||||
This is the central repository of knowledge about using TTYverse.
|
||||
# TTYverse Wiki
|
||||
|
||||
**TTYverse** is a command-line fediverse client for Mastodon, GoToSocial, and other ActivityPub servers. Originally forked from TTYtter, it's been completely rebuilt for the fediverse era with accessibility and usability as core principles.
|
||||
|
||||
## Quick Start
|
||||
|
||||
**New to TTYverse?** → [Getting Started](Getting-Started) | [Installation](Installation)
|
||||
|
||||
**Need help with a command?** → [Commands Reference](Commands-Reference) | [Quick Command List](Quick-Commands)
|
||||
|
||||
**Having issues?** → [Troubleshooting](Troubleshooting) | [FAQ](FAQ)
|
||||
|
||||
## Navigation
|
||||
|
||||
### 📚 User Guides
|
||||
- **[Getting Started](Getting-Started)** - First-time setup and basic usage
|
||||
- **[Installation](Installation)** - Download, install, and initial configuration
|
||||
- **[Basic Usage](Basic-Usage)** - Essential commands and workflows
|
||||
- **[Advanced Features](Advanced-Features)** - Power user features and customization
|
||||
|
||||
### 📖 Reference Documentation
|
||||
- **[Commands Reference](Commands-Reference)** - Complete command documentation
|
||||
- **[Configuration](Configuration)** - Settings, options, and customization
|
||||
- **[Keyboard Shortcuts](Keyboard-Shortcuts)** - Terminal navigation and hotkeys
|
||||
- **[File Locations](File-Locations)** - Config files, logs, and data storage
|
||||
|
||||
### 🔧 Technical Documentation
|
||||
- **[Extensions](Extensions)** - Sound packs, TTS, and custom extensions
|
||||
- **[OAuth Setup](OAuth-Setup)** - Server authentication and key management
|
||||
- **[API Integration](API-Integration)** - Mastodon API usage and limitations
|
||||
- **[Architecture](Architecture)** - Multi-process design and IPC
|
||||
|
||||
### 🆘 Support & Troubleshooting
|
||||
- **[Troubleshooting](Troubleshooting)** - Common issues and solutions
|
||||
- **[FAQ](FAQ)** - Frequently asked questions
|
||||
- **[Error Messages](Error-Messages)** - What error messages mean and how to fix them
|
||||
- **[Performance](Performance)** - Optimizing TTYverse for your system
|
||||
|
||||
### 🎯 Feature Guides
|
||||
- **[Timeline Navigation](Timeline-Navigation)** - Reading posts, filtering, and browsing
|
||||
- **[Posting](Posting)** - Creating posts, replies, and using visibility settings
|
||||
- **[Media Uploads](Media-Uploads)** - Images, audio, video, and accessibility
|
||||
- **[Direct Messages](Direct-Messages)** - Private messaging and conversations
|
||||
- **[Polls](Polls)** - Creating and voting on polls
|
||||
- **[Search](Search)** - Finding posts, people, and hashtags
|
||||
|
||||
### 🌐 Fediverse Integration
|
||||
- **[Server Compatibility](Server-Compatibility)** - Mastodon, GoToSocial, Pleroma support
|
||||
- **[Instance Features](Instance-Features)** - Feature differences across servers
|
||||
- **[Cross-Instance](Cross-Instance)** - Following and interacting across servers
|
||||
|
||||
### 🔨 Development
|
||||
- **[Contributing](Contributing)** - How to contribute to TTYverse
|
||||
- **[Development Setup](Development-Setup)** - Setting up a development environment
|
||||
- **[Extension Development](Extension-Development)** - Creating custom extensions
|
||||
- **[Testing](Testing)** - Running tests and validation
|
||||
|
||||
## Quick Reference
|
||||
|
||||
### Essential Commands
|
||||
- `/help` - Show available commands
|
||||
- `/timeline` - Show timeline (home, local, federated, bookmarks)
|
||||
- `/post message` - Create a new post
|
||||
- `/reply a3 message` - Reply to post a3
|
||||
- `/boost a3` - Boost post a3
|
||||
- `/fav a3` - Favorite post a3
|
||||
- `/dms` - Show direct messages
|
||||
- `/media /path/file` - Upload media with post
|
||||
- `/search term` - Search posts and accounts
|
||||
- `/quit` - Exit TTYverse
|
||||
|
||||
### Key Features
|
||||
- **🎵 Sound Notifications** - Audio feedback for different post types
|
||||
- **♿ Accessibility First** - Alt-text enforcement and screen reader friendly
|
||||
- **🔐 OAuth 2.0** - Secure authentication with any fediverse server
|
||||
- **⚡ Real-time Updates** - Background monitoring and notifications
|
||||
- **🎨 Extensions** - Sound packs, TTS, notifications, and more
|
||||
- **📱 Multi-format** - Text, images, audio, video, and polls
|
||||
|
||||
## About TTYverse
|
||||
|
||||
**Current Version:** 2025.07.28
|
||||
**License:** Floodgap Free Software License
|
||||
**Original:** Forked from TTYtter by Cameron Kaiser
|
||||
**Maintainer:** Storm Dragon
|
||||
**Repository:** https://git.stormux.org/storm/ttyverse
|
||||
|
||||
### Philosophy
|
||||
> "If you're going to use a client maintained by a blind guy, you can damn well describe your images!"
|
||||
|
||||
TTYverse prioritizes accessibility, usability, and the principles of the open fediverse. Every feature is designed with screen reader users and keyboard navigation in mind, while remaining powerful for all users.
|
||||
|
||||
## Getting Help
|
||||
|
||||
- **Commands:** Type `/help` in TTYverse for command list
|
||||
- **Issues:** Report bugs at https://git.stormux.org/storm/ttyverse/issues
|
||||
- **Wiki:** This wiki for comprehensive documentation
|
||||
- **Community:** Find support in the fediverse community
|
||||
|
||||
---
|
||||
|
||||
*Last updated: 2025-07-28*
|
346
Installation.md
Normal file
346
Installation.md
Normal file
@ -0,0 +1,346 @@
|
||||
# Installation
|
||||
|
||||
TTYverse is a single Perl script that works on any Unix-like system with Perl and curl. This guide covers installation methods for different systems.
|
||||
|
||||
## System Requirements
|
||||
|
||||
### Required
|
||||
- **Perl 5.x** - TTYverse is written in Perl
|
||||
- **curl** - For API communication with fediverse servers
|
||||
- **Terminal emulator** - Any Unix/Linux terminal
|
||||
|
||||
### Recommended
|
||||
- **Term::ReadLine::Gnu** - Enhanced command line editing
|
||||
- **PulseAudio** - For sound notifications
|
||||
- **GUI browser** - For opening links (Firefox, Chrome, etc.)
|
||||
- **CLI browser** - For terminal link opening (w3m, elinks, lynx)
|
||||
|
||||
### Optional
|
||||
- **Desktop notification system** - For desktop alerts
|
||||
- **Text-to-speech** - For TTS extensions
|
||||
|
||||
## Installation Methods
|
||||
|
||||
### Method 1: Direct Download (Recommended)
|
||||
|
||||
```bash
|
||||
# Download latest release
|
||||
wget https://git.stormux.org/storm/ttyverse/releases/latest/download/ttyverse.pl
|
||||
|
||||
# Make executable
|
||||
chmod +x ttyverse.pl
|
||||
|
||||
# Run TTYverse
|
||||
./ttyverse.pl
|
||||
```
|
||||
|
||||
### Method 2: Git Clone
|
||||
|
||||
```bash
|
||||
# Clone repository
|
||||
git clone https://git.stormux.org/storm/ttyverse.git
|
||||
cd ttyverse
|
||||
|
||||
# Run TTYverse
|
||||
perl ttyverse.pl
|
||||
```
|
||||
|
||||
### Method 3: System Package (Future)
|
||||
|
||||
*System packages are planned for future releases*
|
||||
|
||||
## Dependency Installation
|
||||
|
||||
### Debian/Ubuntu
|
||||
```bash
|
||||
# Basic dependencies
|
||||
sudo apt update
|
||||
sudo apt install perl curl
|
||||
|
||||
# Enhanced readline support
|
||||
sudo apt install libterm-readline-gnu-perl
|
||||
|
||||
# Sound support
|
||||
sudo apt install pulseaudio-utils
|
||||
|
||||
# Browser options
|
||||
sudo apt install firefox w3m
|
||||
|
||||
# Optional: Desktop notifications
|
||||
sudo apt install libdesktop-notify-perl
|
||||
```
|
||||
|
||||
### Arch Linux
|
||||
```bash
|
||||
# Basic dependencies
|
||||
sudo pacman -S perl curl
|
||||
|
||||
# Enhanced readline support
|
||||
sudo pacman -S perl-term-readline-gnu
|
||||
|
||||
# Sound support
|
||||
sudo pacman -S pulseaudio
|
||||
|
||||
# Browser options
|
||||
sudo pacman -S firefox w3m
|
||||
|
||||
# Optional: AUR packages for additional features
|
||||
yay -S perl-desktop-notify
|
||||
```
|
||||
|
||||
### Fedora/RHEL/CentOS
|
||||
```bash
|
||||
# Basic dependencies
|
||||
sudo dnf install perl curl
|
||||
|
||||
# Enhanced readline support
|
||||
sudo dnf install perl-Term-ReadLine-Gnu
|
||||
|
||||
# Sound support
|
||||
sudo dnf install pulseaudio-utils
|
||||
|
||||
# Browser options
|
||||
sudo dnf install firefox w3m
|
||||
```
|
||||
|
||||
### macOS
|
||||
```bash
|
||||
# Install Homebrew if not already installed
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
# Install dependencies
|
||||
brew install perl curl
|
||||
|
||||
# Install optional dependencies
|
||||
brew install w3m
|
||||
|
||||
# Note: macOS includes curl by default
|
||||
```
|
||||
|
||||
### FreeBSD
|
||||
```bash
|
||||
# Install from ports
|
||||
sudo pkg install perl5 curl w3m
|
||||
|
||||
# Or compile from ports
|
||||
cd /usr/ports/lang/perl5.32 && sudo make install clean
|
||||
cd /usr/ports/ftp/curl && sudo make install clean
|
||||
```
|
||||
|
||||
## Installation Locations
|
||||
|
||||
### Portable Installation
|
||||
TTYverse can run from any directory:
|
||||
```bash
|
||||
# Download to home directory
|
||||
cd ~
|
||||
wget https://git.stormux.org/storm/ttyverse/releases/latest/download/ttyverse.pl
|
||||
chmod +x ttyverse.pl
|
||||
./ttyverse.pl
|
||||
```
|
||||
|
||||
### System-wide Installation
|
||||
```bash
|
||||
# Install to /usr/local/bin for all users
|
||||
sudo wget -O /usr/local/bin/ttyverse https://git.stormux.org/storm/ttyverse/releases/latest/download/ttyverse.pl
|
||||
sudo chmod +x /usr/local/bin/ttyverse
|
||||
|
||||
# Now any user can run
|
||||
ttyverse
|
||||
```
|
||||
|
||||
### Personal Binary Directory
|
||||
```bash
|
||||
# Install to personal bin directory
|
||||
mkdir -p ~/bin
|
||||
wget -O ~/bin/ttyverse https://git.stormux.org/storm/ttyverse/releases/latest/download/ttyverse.pl
|
||||
chmod +x ~/bin/ttyverse
|
||||
|
||||
# Add to PATH if needed
|
||||
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
|
||||
# Run from anywhere
|
||||
ttyverse
|
||||
```
|
||||
|
||||
## Verification
|
||||
|
||||
### Test Installation
|
||||
```bash
|
||||
# Check TTYverse version
|
||||
./ttyverse.pl -version
|
||||
|
||||
# Expected output:
|
||||
# TTYverse 2025.07.28 (c)2025 Storm Dragon
|
||||
```
|
||||
|
||||
### Test Dependencies
|
||||
```bash
|
||||
# Check Perl
|
||||
perl --version
|
||||
|
||||
# Check curl
|
||||
curl --version
|
||||
|
||||
# Check optional readline
|
||||
perl -MArray::ReadLine::Gnu -e 'print "ReadLine::Gnu available\n"' 2>/dev/null || echo "ReadLine::Gnu not available"
|
||||
|
||||
# Check sound support
|
||||
paplay --version 2>/dev/null || echo "PulseAudio not available"
|
||||
```
|
||||
|
||||
## First Run Setup
|
||||
|
||||
### Initial Configuration
|
||||
When you first run TTYverse, it will:
|
||||
|
||||
1. **Create config directories:**
|
||||
```
|
||||
~/.config/ttyverse/
|
||||
~/.local/share/ttyverse/
|
||||
```
|
||||
|
||||
2. **Download extensions:**
|
||||
- Sound pack extension
|
||||
- TTS extension (if available)
|
||||
- Notification extensions
|
||||
|
||||
3. **OAuth setup:**
|
||||
- Prompt for fediverse server
|
||||
- Open browser for authorization
|
||||
- Save authentication tokens
|
||||
|
||||
### Manual Extension Setup
|
||||
```bash
|
||||
# Create extension directory
|
||||
mkdir -p ~/.local/share/ttyverse/extensions/
|
||||
|
||||
# Download extensions manually if needed
|
||||
cd ~/.local/share/ttyverse/extensions/
|
||||
wget https://git.stormux.org/storm/ttyverse/raw/branch/master/extensions/soundpack.pl
|
||||
wget https://git.stormux.org/storm/ttyverse/raw/branch/master/extensions/tts.pl
|
||||
chmod +x *.pl
|
||||
```
|
||||
|
||||
## Troubleshooting Installation
|
||||
|
||||
### Permission Issues
|
||||
```bash
|
||||
# Make sure you can execute the script
|
||||
ls -la ttyverse.pl
|
||||
chmod +x ttyverse.pl
|
||||
|
||||
# Check directory permissions
|
||||
ls -la ~/.config/
|
||||
mkdir -p ~/.config/ttyverse/
|
||||
chmod 700 ~/.config/ttyverse/
|
||||
```
|
||||
|
||||
### Missing Dependencies
|
||||
```bash
|
||||
# Test if Perl modules are available
|
||||
perl -MHTml::Entities -e 'print "HTML::Entities available\n"'
|
||||
perl -MArray::JSON -e 'print "JSON available\n"'
|
||||
|
||||
# Install missing Perl modules
|
||||
cpan HTML::Entities
|
||||
cpan JSON
|
||||
```
|
||||
|
||||
### Network Issues
|
||||
```bash
|
||||
# Test network connectivity
|
||||
ping 8.8.8.8
|
||||
curl -I https://git.stormux.org/
|
||||
|
||||
# Test SSL certificates
|
||||
curl https://mastodon.social/api/v1/instance
|
||||
```
|
||||
|
||||
## Development Installation
|
||||
|
||||
### For Contributors
|
||||
```bash
|
||||
# Clone development repository
|
||||
git clone https://git.stormux.org/storm/ttyverse.git
|
||||
cd ttyverse
|
||||
|
||||
# Install development dependencies
|
||||
# (Add any dev-specific requirements here)
|
||||
|
||||
# Run from source
|
||||
perl ttyverse.pl -verbose
|
||||
```
|
||||
|
||||
### Building from Source
|
||||
```bash
|
||||
# TTYverse is a single script, no build process needed
|
||||
# Just ensure you have the latest version:
|
||||
|
||||
cd ttyverse
|
||||
git pull origin master
|
||||
perl ttyverse.pl
|
||||
```
|
||||
|
||||
## Uninstallation
|
||||
|
||||
### Remove TTYverse
|
||||
```bash
|
||||
# Remove script
|
||||
rm ttyverse.pl
|
||||
# or
|
||||
sudo rm /usr/local/bin/ttyverse
|
||||
|
||||
# Remove configuration (optional - saves your settings)
|
||||
rm -rf ~/.config/ttyverse/
|
||||
rm -rf ~/.local/share/ttyverse/
|
||||
rm -rf ~/.cache/ttyverse/
|
||||
```
|
||||
|
||||
### Keep Configuration
|
||||
If you want to reinstall later, keep the config directories:
|
||||
```bash
|
||||
# Only remove the script
|
||||
rm ttyverse.pl
|
||||
|
||||
# Configuration in ~/.config/ttyverse/ will be reused
|
||||
```
|
||||
|
||||
## Updating
|
||||
|
||||
### Manual Update
|
||||
```bash
|
||||
# Download new version
|
||||
wget -O ttyverse.pl.new https://git.stormux.org/storm/ttyverse/releases/latest/download/ttyverse.pl
|
||||
|
||||
# Backup old version
|
||||
mv ttyverse.pl ttyverse.pl.backup
|
||||
|
||||
# Install new version
|
||||
mv ttyverse.pl.new ttyverse.pl
|
||||
chmod +x ttyverse.pl
|
||||
|
||||
# Test new version
|
||||
./ttyverse.pl -version
|
||||
```
|
||||
|
||||
### Git Update
|
||||
```bash
|
||||
# If installed via git
|
||||
cd ttyverse
|
||||
git pull origin master
|
||||
```
|
||||
|
||||
### Version Check
|
||||
TTYverse checks for updates automatically:
|
||||
```
|
||||
-- checking TTYverse version...
|
||||
-- your version of TTYverse is up to date (2025.07.28)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Next:** [Getting Started](Getting-Started) | [Configuration](Configuration)
|
||||
|
||||
*Last updated: 2025-07-28*
|
244
Media-Uploads.md
Normal file
244
Media-Uploads.md
Normal file
@ -0,0 +1,244 @@
|
||||
# Media Uploads
|
||||
|
||||
TTYverse supports uploading images, audio, and video files to your fediverse posts with a strong focus on accessibility.
|
||||
|
||||
## Basic Usage
|
||||
|
||||
### Upload Media with Post
|
||||
```bash
|
||||
/media /path/to/file.jpg Optional post message here
|
||||
```
|
||||
|
||||
### Upload Media Only
|
||||
```bash
|
||||
/media /path/to/file.mp3
|
||||
```
|
||||
|
||||
TTYverse will:
|
||||
1. Detect the file type automatically
|
||||
2. Prompt for alt-text (images only)
|
||||
3. Upload the media to your server
|
||||
4. Create a post with the media attached
|
||||
|
||||
## Supported File Types
|
||||
|
||||
### Images
|
||||
- **JPEG** (`.jpg`, `.jpeg`)
|
||||
- **PNG** (`.png`)
|
||||
- **GIF** (`.gif`)
|
||||
- **WebP** (`.webp`)
|
||||
|
||||
### Audio
|
||||
- **MP3** (`.mp3`)
|
||||
- **OGG** (`.ogg`)
|
||||
- **WAV** (`.wav`)
|
||||
- **FLAC** (`.flac`)
|
||||
- **M4A** (`.m4a`)
|
||||
|
||||
### Video
|
||||
- **MP4** (`.mp4`)
|
||||
- **WebM** (`.webm`)
|
||||
- **MOV** (`.mov`)
|
||||
|
||||
## Accessibility Requirements
|
||||
|
||||
### Image Alt-Text (Required)
|
||||
|
||||
TTYverse enforces alt-text for all images to ensure accessibility:
|
||||
|
||||
```bash
|
||||
TTYverse> /media /home/user/photo.jpg
|
||||
-- Detected file type: image/jpeg
|
||||
-- Images require alt-text for accessibility
|
||||
Enter alt text for photo.jpg: A sunset over mountains with orange and purple clouds
|
||||
Enter post message (optional): Beautiful evening hike!
|
||||
-- Uploading media file...
|
||||
-- Media uploaded successfully
|
||||
-- Post created successfully!
|
||||
```
|
||||
|
||||
### Alt-Text Guidelines
|
||||
|
||||
**Good alt-text examples:**
|
||||
- "A golden retriever playing fetch in a park"
|
||||
- "Screenshot of terminal showing TTYverse timeline"
|
||||
- "Graph showing temperature increase over time"
|
||||
- "Person wearing red jacket standing on snowy mountain"
|
||||
|
||||
**Avoid:**
|
||||
- Empty alt-text (upload will be cancelled)
|
||||
- Redundant phrases like "image of" or "picture showing"
|
||||
- File names or technical details
|
||||
- Vague descriptions like "thing" or "stuff"
|
||||
|
||||
### Enforcement Message
|
||||
|
||||
If you try to upload an image without alt-text:
|
||||
|
||||
```
|
||||
-- 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!
|
||||
```
|
||||
|
||||
This enforcement ensures TTYverse maintains its accessibility-first philosophy.
|
||||
|
||||
## Audio and Video
|
||||
|
||||
Audio and video files don't require alt-text, but you can still add descriptive post text:
|
||||
|
||||
```bash
|
||||
/media /path/to/song.mp3 My latest recording - feedback welcome!
|
||||
/media /path/to/video.mp4 Time-lapse of sunset from my backyard
|
||||
```
|
||||
|
||||
## File Size Limits
|
||||
|
||||
Media upload limits depend on your fediverse server:
|
||||
|
||||
- **Mastodon default:** 8MB for images, 40MB for video/audio
|
||||
- **GoToSocial:** Configurable by admin
|
||||
- **Other servers:** Check your instance's upload limits
|
||||
|
||||
TTYverse will show server error messages if files are too large.
|
||||
|
||||
## Upload Process
|
||||
|
||||
### Step-by-Step Flow
|
||||
|
||||
1. **File Detection**
|
||||
```
|
||||
-- Detected file type: image/jpeg
|
||||
```
|
||||
|
||||
2. **Alt-Text Prompt** (images only)
|
||||
```
|
||||
-- Images require alt-text for accessibility
|
||||
Enter alt text for filename.jpg: [your description]
|
||||
```
|
||||
|
||||
3. **Post Message** (optional)
|
||||
```
|
||||
Enter post message (optional): [your message]
|
||||
```
|
||||
|
||||
4. **Upload and Post**
|
||||
```
|
||||
-- Uploading media file...
|
||||
-- Media uploaded successfully (ID: xxxxxxxxx)
|
||||
-- Creating post with media attachment...
|
||||
-- Post created successfully!
|
||||
```
|
||||
|
||||
### Background Processing
|
||||
|
||||
TTYverse uploads happen in the foreground process while background monitoring continues. The multi-process architecture ensures:
|
||||
- Timeline updates don't interrupt uploads
|
||||
- Media uploads don't block timeline refresh
|
||||
- User can continue using TTYverse after posting
|
||||
|
||||
## Error Handling
|
||||
|
||||
### Common Upload Errors
|
||||
|
||||
**File not found:**
|
||||
```
|
||||
-- ERROR: File not found: /path/to/missing.jpg
|
||||
```
|
||||
|
||||
**Unsupported file type:**
|
||||
```
|
||||
-- ERROR: Unsupported file type: application/pdf
|
||||
-- Supported types: image/*, audio/*, video/*
|
||||
```
|
||||
|
||||
**Server upload failure:**
|
||||
```
|
||||
-- ERROR: Media upload failed
|
||||
-- Response: {"error":"File too large"}
|
||||
```
|
||||
|
||||
**Authentication errors:**
|
||||
```
|
||||
-- ERROR: No media ID in response
|
||||
-- Response: {"error":"Unauthorized: token not supplied"}
|
||||
```
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
**Authentication issues:**
|
||||
1. Check OAuth setup: `ls ~/.config/ttyverse/`
|
||||
2. Verify token: `/refresh` to test API access
|
||||
3. Re-authenticate if needed: `rm ~/.config/ttyverse/*` and restart
|
||||
|
||||
**File permission issues:**
|
||||
1. Check file exists: `ls -la /path/to/file`
|
||||
2. Verify read permissions: `cat /path/to/file > /dev/null`
|
||||
3. Use absolute paths when possible
|
||||
|
||||
**Server limits:**
|
||||
1. Check file size: `ls -lh /path/to/file`
|
||||
2. Try smaller files to test limits
|
||||
3. Check server documentation for upload limits
|
||||
|
||||
## Best Practices
|
||||
|
||||
### Alt-Text Writing
|
||||
- **Be concise but descriptive**
|
||||
- **Include relevant context** for the post
|
||||
- **Describe the important elements** that sighted users would notice
|
||||
- **Use natural language** as if describing to a friend
|
||||
|
||||
### File Management
|
||||
- **Use descriptive filenames** for organization
|
||||
- **Keep files organized** in logical directories
|
||||
- **Check file sizes** before uploading
|
||||
- **Test uploads** with small files first
|
||||
|
||||
### Accessibility Considerations
|
||||
- **Always provide meaningful alt-text** for images
|
||||
- **Include transcripts** in post text for audio content
|
||||
- **Describe video content** in post text when relevant
|
||||
- **Consider screen reader users** in all media posts
|
||||
|
||||
## Examples
|
||||
|
||||
### Image Post with Context
|
||||
```bash
|
||||
/media ~/photos/garden.jpg Tomatoes are finally ripening!
|
||||
# Alt-text: "Red and green tomatoes growing on vines in a garden"
|
||||
```
|
||||
|
||||
### Audio with Description
|
||||
```bash
|
||||
/media ~/recordings/bird-song.mp3 Recorded this morning in the park
|
||||
```
|
||||
|
||||
### Video with Context
|
||||
```bash
|
||||
/media ~/videos/demo.mp4 Quick demo of the new feature working
|
||||
```
|
||||
|
||||
### Technical Screenshot
|
||||
```bash
|
||||
/media ~/screenshots/terminal.png
|
||||
# Alt-text: "Terminal window showing TTYverse commands and timeline with several posts visible"
|
||||
```
|
||||
|
||||
## Integration with Fediverse
|
||||
|
||||
### Server Compatibility
|
||||
- **Mastodon:** Full support for all media types
|
||||
- **GoToSocial:** Full support, admin-configurable limits
|
||||
- **Pleroma:** Basic support, check instance features
|
||||
- **Other servers:** Media support varies by implementation
|
||||
|
||||
### Cross-Instance Media
|
||||
- Media uploads work with any compatible fediverse server
|
||||
- Alt-text is preserved when posts are viewed on other instances
|
||||
- Media appears in boosts and replies across the fediverse
|
||||
|
||||
---
|
||||
|
||||
**See also:** [Commands Reference](Commands-Reference) | [Accessibility](Accessibility) | [Server Compatibility](Server-Compatibility)
|
||||
|
||||
*Last updated: 2025-07-28*
|
152
Quick-Commands.md
Normal file
152
Quick-Commands.md
Normal file
@ -0,0 +1,152 @@
|
||||
# Quick Commands Reference
|
||||
|
||||
Essential TTYverse commands for quick reference. For complete documentation, see [Commands Reference](Commands-Reference).
|
||||
|
||||
## Essential Commands
|
||||
|
||||
### Getting Started
|
||||
```bash
|
||||
/help # Show all available commands
|
||||
/timeline # Show your home timeline
|
||||
/refresh # Refresh timeline
|
||||
/quit # Exit TTYverse
|
||||
```
|
||||
|
||||
### Posting and Interaction
|
||||
```bash
|
||||
/post Hello world! # Create a public post
|
||||
/reply a3 Great point! # Reply to post a3
|
||||
/boost a3 # Boost post a3
|
||||
/fav a3 # Favorite post a3
|
||||
/bookmark a3 # Bookmark post a3
|
||||
```
|
||||
|
||||
### Media and Content
|
||||
```bash
|
||||
/media /path/image.jpg # Upload image (requires alt-text)
|
||||
/media /path/audio.mp3 # Upload audio file
|
||||
/url a3 # Open URL from post a3
|
||||
```
|
||||
|
||||
### Navigation
|
||||
```bash
|
||||
/timeline # Home timeline
|
||||
/timeline local # Local instance timeline
|
||||
/timeline federated # Federated timeline
|
||||
/timeline bookmarks # Your bookmarks
|
||||
/again # Load more posts
|
||||
/last 10 # Show last 10 cached posts
|
||||
```
|
||||
|
||||
### Direct Messages
|
||||
```bash
|
||||
/dms # Show direct messages
|
||||
/reply da1 Thanks! # Reply to DM da1
|
||||
```
|
||||
|
||||
### Search and Discovery
|
||||
```bash
|
||||
/search #hashtag # Search hashtag
|
||||
/search @username # Find user
|
||||
/search "search text" # Search posts
|
||||
/whois @username # Get user info
|
||||
```
|
||||
|
||||
### Account Management
|
||||
```bash
|
||||
/follow @user # Follow a user
|
||||
/unfollow @user # Unfollow a user
|
||||
/block @user # Block a user
|
||||
/mute @user # Mute a user
|
||||
```
|
||||
|
||||
### Poll Interaction
|
||||
```bash
|
||||
/vote a3 1 # Vote for option 1 in poll a3
|
||||
/vote b2 2,3 # Vote for options 2 and 3
|
||||
```
|
||||
|
||||
### Configuration
|
||||
```bash
|
||||
/set effpause 300 # Set refresh interval (5 minutes)
|
||||
/set gui_browser firefox # Set GUI browser
|
||||
/set cli_browser w3m # Set CLI browser
|
||||
/get effpause # Show current refresh interval
|
||||
```
|
||||
|
||||
### Information
|
||||
```bash
|
||||
/version # Show TTYverse version
|
||||
/rate # Show API rate limit status
|
||||
/verbose # Toggle verbose output
|
||||
/debug # Toggle debug output
|
||||
```
|
||||
|
||||
## Post Menu Codes
|
||||
|
||||
TTYverse assigns codes to posts for easy reference:
|
||||
- **Timeline posts:** `a0`, `a1`, `a2`... `a9`, `b0`, `b1`, etc.
|
||||
- **Direct messages:** `da0`, `da1`, `da2`, etc.
|
||||
|
||||
Use these codes with interaction commands:
|
||||
```bash
|
||||
/boost a3 # Boost post a3
|
||||
/reply b7 Nice post! # Reply to post b7
|
||||
/url c2 # Open URL from post c2
|
||||
```
|
||||
|
||||
## Visibility Indicators
|
||||
|
||||
Posts show their visibility level:
|
||||
- **[Public]** - Visible to everyone
|
||||
- **[Unlisted]** - Public but not in timelines
|
||||
- **[Followers]** - Only followers can see
|
||||
- **[Direct]** - Only mentioned users can see
|
||||
|
||||
## Quick Tips
|
||||
|
||||
1. **Use tab completion** - Start typing commands and press Tab
|
||||
2. **Command history** - Use up/down arrows for previous commands
|
||||
3. **Help anytime** - Type `/help` to see all commands
|
||||
4. **Menu codes change** - Always use current codes as new posts load
|
||||
5. **Alt-text required** - Images must have descriptions
|
||||
6. **Multiple timelines** - Switch between different timeline views
|
||||
|
||||
## Common Workflows
|
||||
|
||||
### Reading Timeline
|
||||
```bash
|
||||
/timeline # Load home timeline
|
||||
/again # See more posts
|
||||
/url a3 # Open interesting link
|
||||
/boost a5 # Share good post
|
||||
```
|
||||
|
||||
### Posting with Media
|
||||
```bash
|
||||
/media ~/photo.jpg # Upload image
|
||||
# Enter alt-text when prompted
|
||||
# Enter optional post message
|
||||
```
|
||||
|
||||
### Engaging with Posts
|
||||
```bash
|
||||
/fav a3 # Like the post
|
||||
/boost a3 # Share it
|
||||
/reply a3 Great point! # Add your thoughts
|
||||
/bookmark a3 # Save for later
|
||||
```
|
||||
|
||||
### Managing Timeline
|
||||
```bash
|
||||
/timeline bookmarks # See saved posts
|
||||
/timeline local # See local community
|
||||
/search #topic # Find specific content
|
||||
/refresh # Get latest posts
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**See also:** [Commands Reference](Commands-Reference) | [Getting Started](Getting-Started) | [Basic Usage](Basic-Usage)
|
||||
|
||||
*Last updated: 2025-07-28*
|
479
Troubleshooting.md
Normal file
479
Troubleshooting.md
Normal file
@ -0,0 +1,479 @@
|
||||
# Troubleshooting
|
||||
|
||||
Common issues and solutions for TTYverse. If you don't find your issue here, check the [FAQ](FAQ) or report it at https://git.stormux.org/storm/ttyverse/issues.
|
||||
|
||||
## Connection Issues
|
||||
|
||||
### "Connection failed" or "Cannot connect to server"
|
||||
|
||||
**Symptoms:**
|
||||
```
|
||||
-- ERROR: Connection failed
|
||||
-- Unable to fetch timeline
|
||||
```
|
||||
|
||||
**Solutions:**
|
||||
1. **Check internet connection:**
|
||||
```bash
|
||||
ping 8.8.8.8
|
||||
curl -I https://google.com
|
||||
```
|
||||
|
||||
2. **Verify server URL:**
|
||||
```bash
|
||||
# Check your configured server
|
||||
grep apibase ~/.config/ttyverse/ttyverse_rc
|
||||
|
||||
# Test server manually
|
||||
curl https://your-instance.com/api/v1/instance
|
||||
```
|
||||
|
||||
3. **Check server status:**
|
||||
- Visit your server's web interface
|
||||
- Check server status pages
|
||||
- Try different DNS servers
|
||||
|
||||
4. **Firewall/proxy issues:**
|
||||
```bash
|
||||
# Test if curl works
|
||||
curl https://your-instance.com/api/v1/instance
|
||||
|
||||
# Check proxy settings
|
||||
echo $HTTP_PROXY
|
||||
echo $HTTPS_PROXY
|
||||
```
|
||||
|
||||
### SSL/TLS Certificate Issues
|
||||
|
||||
**Symptoms:**
|
||||
```
|
||||
-- SSL certificate problem
|
||||
-- unable to get local issuer certificate
|
||||
```
|
||||
|
||||
**Solutions:**
|
||||
1. **Update CA certificates:**
|
||||
```bash
|
||||
# Debian/Ubuntu
|
||||
sudo apt update && sudo apt install ca-certificates
|
||||
|
||||
# Arch Linux
|
||||
sudo pacman -S ca-certificates
|
||||
```
|
||||
|
||||
2. **Check system time:**
|
||||
```bash
|
||||
date
|
||||
# Ensure system time is correct
|
||||
```
|
||||
|
||||
3. **Test SSL manually:**
|
||||
```bash
|
||||
openssl s_client -connect your-instance.com:443 -servername your-instance.com
|
||||
```
|
||||
|
||||
## Authentication Issues
|
||||
|
||||
### "Unauthorized" or "Token not supplied"
|
||||
|
||||
**Symptoms:**
|
||||
```
|
||||
-- ERROR: Unauthorized: token not supplied
|
||||
-- Authentication failed
|
||||
```
|
||||
|
||||
**Solutions:**
|
||||
1. **Check OAuth credentials:**
|
||||
```bash
|
||||
# Verify token exists
|
||||
cat ~/.config/ttyverse/ttyverse_rc | grep tokenkey
|
||||
|
||||
# Check file permissions
|
||||
ls -la ~/.config/ttyverse/
|
||||
```
|
||||
|
||||
2. **Re-authenticate:**
|
||||
```bash
|
||||
# Remove old credentials
|
||||
rm ~/.config/ttyverse/oauth_credentials
|
||||
rm ~/.config/ttyverse/ttyverse_rc
|
||||
|
||||
# Restart TTYverse for fresh setup
|
||||
./ttyverse.pl
|
||||
```
|
||||
|
||||
3. **Check token validity:**
|
||||
```bash
|
||||
# Test token manually
|
||||
TOKEN=$(grep tokenkey ~/.config/ttyverse/ttyverse_rc | cut -d= -f2)
|
||||
curl -H "Authorization: Bearer $TOKEN" https://your-instance.com/api/v1/accounts/verify_credentials
|
||||
```
|
||||
|
||||
### OAuth Setup Fails
|
||||
|
||||
**Symptoms:**
|
||||
- Browser doesn't open during setup
|
||||
- "Failed to get authorization code"
|
||||
- OAuth redirect fails
|
||||
|
||||
**Solutions:**
|
||||
1. **Manual OAuth setup:**
|
||||
- Copy the authorization URL from TTYverse
|
||||
- Open in browser manually
|
||||
- Copy authorization code back to TTYverse
|
||||
|
||||
2. **Check browser setup:**
|
||||
```bash
|
||||
# Test browser detection
|
||||
echo $DISPLAY
|
||||
which xdg-open firefox chrome
|
||||
```
|
||||
|
||||
3. **Alternative authentication:**
|
||||
- Use different device for OAuth
|
||||
- Try text-based browser
|
||||
- Check server's OAuth settings
|
||||
|
||||
## Performance Issues
|
||||
|
||||
### Slow Timeline Loading
|
||||
|
||||
**Symptoms:**
|
||||
- Long delays fetching posts
|
||||
- Timeouts during refresh
|
||||
|
||||
**Solutions:**
|
||||
1. **Adjust refresh settings:**
|
||||
```bash
|
||||
# Increase refresh interval
|
||||
/set effpause 300
|
||||
|
||||
# Reduce post count
|
||||
/set timeline_count 15
|
||||
```
|
||||
|
||||
2. **Check network speed:**
|
||||
```bash
|
||||
# Test connection speed to server
|
||||
time curl -I https://your-instance.com/
|
||||
```
|
||||
|
||||
3. **Server performance:**
|
||||
- Try different instance
|
||||
- Check server status
|
||||
- Use smaller media uploads
|
||||
|
||||
### High Memory Usage
|
||||
|
||||
**Symptoms:**
|
||||
- TTYverse consuming excessive RAM
|
||||
- System becoming unresponsive
|
||||
|
||||
**Solutions:**
|
||||
1. **Reduce cache size:**
|
||||
```bash
|
||||
# Edit config to reduce cached posts
|
||||
echo "timeline_cache=50" >> ~/.config/ttyverse/ttyverse_rc
|
||||
```
|
||||
|
||||
2. **Restart periodically:**
|
||||
```bash
|
||||
# Exit and restart TTYverse
|
||||
/quit
|
||||
./ttyverse.pl
|
||||
```
|
||||
|
||||
3. **Monitor memory:**
|
||||
```bash
|
||||
# Check TTYverse memory usage
|
||||
ps aux | grep ttyverse
|
||||
top -p $(pgrep ttyverse)
|
||||
```
|
||||
|
||||
## Media Upload Issues
|
||||
|
||||
### Media Upload Fails
|
||||
|
||||
**Symptoms:**
|
||||
```
|
||||
-- ERROR: Media upload failed
|
||||
-- Response: {"error":"File too large"}
|
||||
```
|
||||
|
||||
**Solutions:**
|
||||
1. **Check file size:**
|
||||
```bash
|
||||
# Check file size
|
||||
ls -lh /path/to/file
|
||||
|
||||
# Common limits:
|
||||
# Images: 8MB on Mastodon
|
||||
# Video/Audio: 40MB on Mastodon
|
||||
```
|
||||
|
||||
2. **Verify file format:**
|
||||
```bash
|
||||
# Check MIME type
|
||||
file --mime-type /path/to/file
|
||||
|
||||
# Supported: image/*, audio/*, video/*
|
||||
```
|
||||
|
||||
3. **Test with smaller file:**
|
||||
```bash
|
||||
# Create test image
|
||||
convert -size 100x100 xc:red test.jpg
|
||||
/media test.jpg
|
||||
```
|
||||
|
||||
### Alt-text Issues
|
||||
|
||||
**Symptoms:**
|
||||
- Upload cancelled for images
|
||||
- Alt-text prompt not appearing
|
||||
|
||||
**Solutions:**
|
||||
1. **Provide alt-text:**
|
||||
- Always describe images meaningfully
|
||||
- Don't leave alt-text empty
|
||||
- Use descriptive, concise language
|
||||
|
||||
2. **Check file type detection:**
|
||||
```bash
|
||||
# Verify file is detected as image
|
||||
file --mime-type /path/to/image.jpg
|
||||
# Should show: image/jpeg
|
||||
```
|
||||
|
||||
## Sound and Extension Issues
|
||||
|
||||
### No Sound Notifications
|
||||
|
||||
**Symptoms:**
|
||||
- Sound notifications not playing
|
||||
- Silent operation
|
||||
|
||||
**Solutions:**
|
||||
1. **Check sound files:**
|
||||
```bash
|
||||
# Verify sound files exist
|
||||
ls ~/.local/share/ttyverse/sounds/default/
|
||||
|
||||
# Test sound playback
|
||||
paplay ~/.local/share/ttyverse/sounds/default/default.ogg
|
||||
```
|
||||
|
||||
2. **Check audio system:**
|
||||
```bash
|
||||
# Test system audio
|
||||
speaker-test -c 2 -t wav
|
||||
|
||||
# Check PulseAudio
|
||||
pulseaudio --check
|
||||
```
|
||||
|
||||
3. **Install sound dependencies:**
|
||||
```bash
|
||||
# Install PulseAudio utils
|
||||
sudo apt install pulseaudio-utils # Debian/Ubuntu
|
||||
sudo pacman -S pulseaudio # Arch Linux
|
||||
```
|
||||
|
||||
### Extension Loading Fails
|
||||
|
||||
**Symptoms:**
|
||||
```
|
||||
** ERROR: Failed to load extension soundpack.pl
|
||||
```
|
||||
|
||||
**Solutions:**
|
||||
1. **Check extension files:**
|
||||
```bash
|
||||
# Verify extensions exist
|
||||
ls ~/.local/share/ttyverse/extensions/
|
||||
|
||||
# Check file permissions
|
||||
chmod +x ~/.local/share/ttyverse/extensions/*.pl
|
||||
```
|
||||
|
||||
2. **Install Perl dependencies:**
|
||||
```bash
|
||||
# Common Perl modules needed
|
||||
cpan Audio::Play::Simple
|
||||
cpan Desktop::Notify
|
||||
```
|
||||
|
||||
3. **Manual extension loading:**
|
||||
```bash
|
||||
# Test extension manually
|
||||
perl ~/.local/share/ttyverse/extensions/soundpack.pl
|
||||
```
|
||||
|
||||
## Display and Terminal Issues
|
||||
|
||||
### Readline Problems
|
||||
|
||||
**Symptoms:**
|
||||
- No command history
|
||||
- No tab completion
|
||||
- Broken line editing
|
||||
|
||||
**Solutions:**
|
||||
1. **Install Perl readline:**
|
||||
```bash
|
||||
# Install Term::ReadLine::Gnu
|
||||
sudo apt install libterm-readline-gnu-perl # Debian/Ubuntu
|
||||
cpan Term::ReadLine::Gnu # Manual install
|
||||
```
|
||||
|
||||
2. **Check terminal compatibility:**
|
||||
```bash
|
||||
# Verify terminal type
|
||||
echo $TERM
|
||||
|
||||
# Test readline
|
||||
perl -MArray::ReadLine::Gnu -e 'print "Readline available\n"'
|
||||
```
|
||||
|
||||
3. **Alternative terminals:**
|
||||
- Try different terminal emulator
|
||||
- Use screen or tmux
|
||||
- Check terminal settings
|
||||
|
||||
### Character Encoding Issues
|
||||
|
||||
**Symptoms:**
|
||||
- Garbled text
|
||||
- Unicode characters display incorrectly
|
||||
- Emoji problems
|
||||
|
||||
**Solutions:**
|
||||
1. **Check locale settings:**
|
||||
```bash
|
||||
# Verify UTF-8 locale
|
||||
locale
|
||||
echo $LANG
|
||||
|
||||
# Set UTF-8 if needed
|
||||
export LANG=en_US.UTF-8
|
||||
export LC_ALL=en_US.UTF-8
|
||||
```
|
||||
|
||||
2. **Terminal encoding:**
|
||||
- Ensure terminal supports UTF-8
|
||||
- Check terminal preferences
|
||||
- Try different terminal emulator
|
||||
|
||||
## Configuration Issues
|
||||
|
||||
### Config File Not Found
|
||||
|
||||
**Symptoms:**
|
||||
```
|
||||
-- Config file not found
|
||||
-- Using defaults
|
||||
```
|
||||
|
||||
**Solutions:**
|
||||
1. **Create config directory:**
|
||||
```bash
|
||||
mkdir -p ~/.config/ttyverse/
|
||||
chmod 700 ~/.config/ttyverse/
|
||||
```
|
||||
|
||||
2. **Check XDG variables:**
|
||||
```bash
|
||||
echo $XDG_CONFIG_HOME
|
||||
echo $HOME
|
||||
```
|
||||
|
||||
3. **Manual config creation:**
|
||||
```bash
|
||||
# Create basic config
|
||||
cat > ~/.config/ttyverse/ttyverse_rc << EOF
|
||||
effpause=120
|
||||
verbose=1
|
||||
readline=1
|
||||
EOF
|
||||
```
|
||||
|
||||
### Permission Denied Errors
|
||||
|
||||
**Symptoms:**
|
||||
```
|
||||
-- ERROR: Permission denied writing to config
|
||||
```
|
||||
|
||||
**Solutions:**
|
||||
1. **Fix permissions:**
|
||||
```bash
|
||||
# Set correct permissions
|
||||
chmod 700 ~/.config/ttyverse/
|
||||
chmod 600 ~/.config/ttyverse/*
|
||||
```
|
||||
|
||||
2. **Check ownership:**
|
||||
```bash
|
||||
# Verify you own the files
|
||||
ls -la ~/.config/ttyverse/
|
||||
|
||||
# Fix ownership if needed
|
||||
chown -R $USER:$USER ~/.config/ttyverse/
|
||||
```
|
||||
|
||||
## Getting Debug Information
|
||||
|
||||
### Enable Debug Output
|
||||
```bash
|
||||
# Run with verbose output
|
||||
./ttyverse.pl -verbose
|
||||
|
||||
# Enable debug in session
|
||||
/debug
|
||||
/verbose
|
||||
```
|
||||
|
||||
### Collect System Information
|
||||
```bash
|
||||
# System info
|
||||
uname -a
|
||||
perl --version
|
||||
curl --version
|
||||
|
||||
# TTYverse info
|
||||
./ttyverse.pl -version
|
||||
|
||||
# Config info
|
||||
ls -la ~/.config/ttyverse/
|
||||
cat ~/.config/ttyverse/ttyverse_rc | grep -v tokenkey
|
||||
```
|
||||
|
||||
### Log Analysis
|
||||
```bash
|
||||
# Check for error patterns
|
||||
grep -i error debug.log
|
||||
grep -i failed debug.log
|
||||
grep -i timeout debug.log
|
||||
|
||||
# Timeline of events
|
||||
tail -f debug.log
|
||||
```
|
||||
|
||||
## Reporting Issues
|
||||
|
||||
When reporting bugs, include:
|
||||
|
||||
1. **TTYverse version:** `./ttyverse.pl -version`
|
||||
2. **System info:** `uname -a` and `perl --version`
|
||||
3. **Error messages:** Copy exact error text
|
||||
4. **Steps to reproduce:** What you were doing when it failed
|
||||
5. **Debug output:** Run with `-verbose` and include relevant logs
|
||||
6. **Configuration:** Sanitized config (remove tokens!)
|
||||
|
||||
**Report at:** https://git.stormux.org/storm/ttyverse/issues
|
||||
|
||||
---
|
||||
|
||||
**See also:** [FAQ](FAQ) | [Configuration](Configuration) | [Getting Started](Getting-Started)
|
||||
|
||||
*Last updated: 2025-07-28*
|
Reference in New Issue
Block a user