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

1. Prerequisites
Install:
mpv
curl (usually already installed)
Example:
sudo pacman -S mpv curl
-
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
-
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
-
Copy the station list
Copy:
~/.config/radio/stations
This is simply a playlist
Adding new stations only requires editing this file.
- Copy the icon
Copy:
~/.config/quickshell/shared/icons/radio.svg
-
Preserve ML4W status information
Copy:
~/.config/ml4w-statusbar/statusbar.json
This stores:
radio enabled/disabled
current station index
playback state
-
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
-
Restart Quickshell
Either restart Quickshell or log out and back in.
-
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
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
Install:
mpv
curl (usually already installed)
Example:
sudo pacman -S mpv curl
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
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
Copy the station list
Copy:
~/.config/radio/stations
This is simply a playlist
Adding new stations only requires editing this file.
Copy:
~/.config/quickshell/shared/icons/radio.svg
Preserve ML4W status information
Copy:
~/.config/ml4w-statusbar/statusbar.json
This stores:
radio enabled/disabled
current station index
playback state
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
Restart Quickshell
Either restart Quickshell or log out and back in.
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