No Animation (Plain Text Only)
TERM=dumb
Symptom: bofa prints plain text instead of showing animations Cause: Terminal type is set todumb, which indicates no advanced capabilities
Source: __init__.py:124-126
Non-Interactive Terminal
Symptom: bofa prints plain text when run in pipes or redirects Cause: Output is not connected to a TTY (terminal) Source:__init__.py:124
- Piping output:
bofa | less - Redirecting to file:
bofa > output.txt - Running in CI/CD environments
- Inside certain IDE terminals
Unicode Display Issues
Garbled Characters
Symptom: Special characters display as?, boxes, or garbled text
Cause: Terminal encoding doesn’t support Unicode
Source: __init__.py:49-57
bofa tests if the terminal can encode Unicode characters:
UTF-8 or utf-8
Font Missing Glyphs
Symptom: Some Unicode characters render as empty boxes even with UTF-8 encoding Cause: Terminal font doesn’t include the required Unicode glyphs Characters Used:- Confetti:
✦✧❖✺✹✷✸✶✱✲✳✴✵✼✽❇❈❉❊ - Fireworks:
✦✧❇❈✺
- macOS: SF Mono, Menlo (built-in)
- Linux: Noto Sans Mono, DejaVu Sans Mono, FiraCode
- Windows: Cascadia Code, Consolas
Terminal Size Issues
Text Appears Cramped
Symptom: Text and effects don’t fit properly in the terminal Cause: Terminal window is too narrow Source:__init__.py:309-314
bofa requires a minimum width:
- Width: 34 characters (36 recommended for comfort)
- Height: No strict minimum, but 24+ lines recommended
Size Detection Fails
Symptom: Effects don’t adapt to your terminal size Cause: Terminal size cannot be detected Source:__init__.py:310
Fallback size is 80×24 if detection fails.
Solution: Ensure you’re running in a standard terminal emulator that supports size queries (most modern terminals do).
Performance Issues
Animations Lag or Stutter
Symptom: Effects play slowly or skip frames Possible Causes:- Slow Terminal Emulator: Some terminals can’t render at 90 fps
- SSH Connection: Network latency affects animation smoothness
- Large Terminal: Very large terminal windows (>120 columns) require more rendering
__init__.py:102
- Use a hardware-accelerated terminal (Alacritty, Kitty, WezTerm)
- Run bofa locally rather than over SSH
- Reduce terminal window size
- Close other resource-intensive applications
High CPU Usage
Symptom: bofa consumes significant CPU while running Cause: Rendering animations at 90 fps is CPU-intensive Expected Behavior: This is normal. CPU usage should drop to zero after animations complete.Interrupt Handling
Stuck in Animation
Symptom: Need to exit bofa during an animation Solution: PressCtrl+C (keyboard interrupt)
Source: __init__.py:153-155, 184-186
bofa handles interrupts gracefully:
Dependency Issues
Module Not Found: terminaltexteffects
Symptom: Error when running bofa after installationpyproject.toml:11
Python Version Too Old
Symptom: Syntax errors or import errors when running bofa Cause: Python version is below 3.10 Source:pyproject.toml:9
Color Issues
Colors Look Wrong or Washed Out
Symptom: Rainbow colors don’t display correctly Possible Causes:- Limited Color Support: Terminal doesn’t support true color (24-bit)
- Terminal Color Scheme: Theme overrides colors
__init__.py:38-46
- Enable True Color: Ensure your terminal supports 24-bit color
- Check TERM Variable:
- Use a Modern Terminal:
- Recommended: Alacritty, Kitty, WezTerm, iTerm2 (macOS)
- Avoid: Very old terminal emulators that only support 16 colors
Moon Mode Issues
Moon Appears Distorted
Symptom: Circle looks oval or stretched when usingbofa --moon
Cause: Character aspect ratio doesn’t match your terminal font
Source: moon.py:9
Moon Too Small
Symptom: Moon doesn’t fill much of the screen Cause: Moon size is limited to prevent distortion Source:moon.py:15
Still Having Issues?
If you encounter a problem not covered here:- Check Python Version: Must be 3.10 or higher
- Verify Terminal: Run in a modern terminal emulator with UTF-8 support
- Test Encoding: Run
python3 -c "import sys; print(sys.stdout.encoding)" - Review Error Messages: Python tracebacks often indicate the specific issue
- Try Plain Text Mode: Set
TERM=dumbto verify basic functionality
- Python version (
python3 --version) - Terminal type (
echo $TERM) - Encoding (
python3 -c "import sys; print(sys.stdout.encoding)") - Error message or unexpected behavior description