somafm_tui

A beautiful terminal-based player for SomaFM internet radio with stream buffering support, 20+ color themes, and intuitive TUI controls

somafm_tui
user@terminal:~$ somafm_tui ███████╗ ██████╗ ███╗ ███╗ █████╗ ███████╗ ██╔════╝██╔═══██╗████╗ ████║██╔══██╗██╔════╝ ███████╗██║ ██║██╔████╔██║███████║█████╗ ╚════██║██║ ██║██║╚██╔╝██║██╔══██║██╔══╝ ███████║╚██████╔╝██║ ╚═╝ ██║██║ ██║██║ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ [INFO] Welcome to somafm_tui v1.0 [INFO] Loading SomaFM stations... [INFO] Buffering: Deep Space One Now Playing: SomaFM - Deep Space One [INFO] Buffer: ██████████░░░░░ 65% Press 'h' for help, 'q' to quit

Features

Unified Interface

Combined channel list and playback in split-screen layout for efficient navigation and monitoring.

20+ Color Themes

Choose from 5 light and 15 dark themes with alternative background mode for personalized experience.

Automatic Updates

Always up-to-date with the latest SomaFM channel list fetched automatically.

Intuitive Controls

Vim-style keys (hjkl) and arrow key support for seamless navigation and control.

Stream Buffering

Built-in buffering ensures uninterrupted playback even with unstable connections.

Track History

Real-time metadata and playback history to never miss your favorite tracks.

Theme Showcase

somafm_tui comes with 20 built-in color themes to match your terminal preferences. Here are some examples of the dark themes available:

Default Theme
███████████████

Default

Classic green terminal

Dracula Theme
███████████████

Dracula

Dark purple accents

Monokai Theme
███████████████

Monokai

Vibrant color scheme

Nord Theme
███████████████

Nord

Arctic-inspired palette

Plus 16 more themes including light themes like GitHub Light and Solarized Light

Installation

Arch Linux Installation

For Arch Linux users, you can install somafm_tui directly from the AUR:

# Using yay
yay -S somafm_tui

# Using paru
paru -S somafm_tui

# Manual installation from AUR
git clone https://aur.archlinux.org/somafm_tui.git
cd somafm_tui
makepkg -si

Ubuntu/Debian Installation

Install system dependencies and then the application:

# Install system dependencies
sudo apt-get update
sudo apt-get install mpv python3 python3-pip

# Clone the repository
git clone https://github.com/zsh-ncursed/somafm_tui.git
cd somafm_tui

# Create and activate virtual environment (optional but recommended)
python3 -m venv venv
source venv/bin/activate

# Install Python dependencies
pip install -r requirements.txt

# Run the application
python somafm.py

Fedora Installation

Install system dependencies and then the application:

# Install system dependencies
sudo dnf install mpv python3 python3-pip

# Clone the repository
git clone https://github.com/zsh-ncursed/somafm_tui.git
cd somafm_tui

# Create and activate virtual environment (optional but recommended)
python3 -m venv venv
source venv/bin/activate

# Install Python dependencies
pip install -r requirements.txt

# Run the application
python somafm.py

Manual Installation

For other Linux distributions or manual installation:

# Install system dependencies (adjust for your distro)
# You need: mpv, python 3.7+, pip

# Clone the repository
git clone https://github.com/zsh-ncursed/somafm_tui.git
cd somafm_tui

# Create and activate virtual environment (optional but recommended)
python3 -m venv venv
source venv/bin/activate

# Install Python dependencies
pip install -r requirements.txt

# Run the application
python somafm.py

Usage Instructions

Navigation

  • Move Up or k
  • Move Down or j
  • Play Selected Enter or l
  • Search /
  • Quit q

Playback Controls

  • Pause/Resume Space
  • Stop h

Theme & Favorites

  • Change Theme t
  • Toggle Background a
  • Add to Favorites f

Configuration

Customize your somafm_tui experience with the configuration file and understand where data is stored.

Configuration File: ~/.somafm_tui/somafm.cfg

Setting Description Default Value
buffer_minutes Duration of audio buffering in minutes 5
buffer_size_mb Maximum size of buffer in megabytes 50
theme Color theme for the interface default
alternative_bg_mode Use pure black background instead of dark gray false

Data Storage Locations

File Description
~/.somafm_tui/somafm.cfg Configuration file
~/.somafm_tui/channel_favorites.json Favorite channels list
~/.somafm_tui/channel_usage.json Channel usage statistics
~/.somafm_tui/favorites.list Favorite tracks list
/tmp/.somafmtmp/ Temporary files directory
/tmp/.somafmtmp/somafm.log Log file for debugging

Experience SomaFM Differently

Enjoy your favorite internet radio stations without leaving the comfort of your terminal. With 20+ themes, intuitive controls, and robust buffering, somafm_tui provides the perfect listening experience for terminal enthusiasts.

View on GitHub Download Source Report Issue