Skip to content

[FEATURE] Radio module #1739

Description

@ortoklas

Is your feature request related to a problem? Please describe.

This is not exactly a problem but a feature we all can enjoy ,an interactive QuickShell radio module running in the background .
Simple - stop,play,next,previous radio station .
The icon is KDE based breeze-dark ,I want it to have accent color when playing but couldn't ,when mouse hover above ,it will change color to theme instead. This is just an idea .
Change stations with mouse wheel (hover above icon) or make keybindings (notification will show station )

Describe the solution you'd like

Image 1. Prerequisites

Install:
mpv
curl (usually already installed)
Example:
sudo pacman -S mpv curl

  1. Copy the Quickshell module
    Copy these files:
    ~/.config/quickshell/StatusbarApp/
    ├── RadioModule.qml
    ├── BarButton.qml (modified)
    └── StatusbarWindow.qml (modified)
    These provide:
    the radio button
    popup/menu
    integration into the status bar

  2. Copy the scripts
    Copy:
    ~/.local/bin/
    ├── radio-toggle
    ├── radio-next
    └── radio-prev
    Make them executable:
    chmod +x ~/.local/bin/radio-*
    These scripts:
    start/stop playback
    switch stations
    keep playback running through mpv

  3. Copy the station list
    Copy:
    ~/.config/radio/stations
    This is simply a playlist
    Adding new stations only requires editing this file.

Image
  1. Copy the icon
    Copy:
    ~/.config/quickshell/shared/icons/radio.svg
Image
  1. Preserve ML4W status information
    Copy:
    ~/.config/ml4w-statusbar/statusbar.json
    This stores:
    radio enabled/disabled
    current station index
    playback state

  2. Verify the installation
    You should end up with something like:
    ~/.config/
    ├── quickshell/
    │ ├── StatusbarApp/
    │ │ ├── RadioModule.qml
    │ │ ├── BarButton.qml
    │ │ └── StatusbarWindow.qml
    │ └── shared/icons/
    │ └── radio.svg

    ├── radio/
    │ └── stations

    └── ml4w-statusbar/
    └── statusbar.json

~/.local/bin/
├── radio-toggle
├── radio-next
└── radio-prev

  1. Restart Quickshell
    Either restart Quickshell or log out and back in.

  2. Test
    Run:
    radio-toggle
    Verify:
    pgrep -a mpv
    You should see an mpv process playing the selected stream.

All required files

radio-backup.zip

Describe alternatives you've considered

No response

Additional context

Architecture
The implementation is cleanly separated:
Status Bar


RadioModule.qml

├── reads statusbar.json
├── launches scripts


radio-toggle / next / prev


mpv


Internet Radio Stream

Configuration is isolated:

UI → RadioModule.qml
Playback logic → ~/.local/bin/radio-*
Stations → ~/.config/radio/stations
Persistent state → statusbar.json

This separation means future ML4W updates are less likely to affect the radio functionality.

Support or Contribution

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions