Are you on the terminal and want to listen to music without opening the web browser? pnimrp is here to save the day! 🎉
With a collection of 30+ modifiable radio station links (JSON), you can browse, play, pause, and mute your favorite stations—all from the comfort of your terminal. No more fiddling with PLS files! 🚀
Inspired by Poor Man's Radio Player, pnimrp takes things to the next level with added features and improvements.
- Portable: Works seamlessly on Unix and Windows. 📦
- Easy to Use: Simple menu-driven interface. 💡🎮
- Modifiable Stations: Edit JSON files to add or remove stations.🔧
- Now Playing: Displays the currently playing song.📻
- Async Input: Non-blocking key polling for smooth controls.
- Lightweight: Minimal dependencies, fast and efficient.⚡
- Customizable Themes: Easily switch between themes by editing
config.json
. 🎨
- Unix:
curl https://nim-lang.org/choosenim/init.sh -sSf | sh
- Windows: Download the latest release from choosenim.
- Other Distros: Follow the official Nim installation guide.
nimble install pnimrp
Or compile it manually:
nim c -d:release pnimrp
./pnimrp
Key | Action |
---|---|
1-9, a-l | Select menu options |
R | Return to the previous menu |
Q | Quit the application |
P | Pause/resume playback |
M | Mute/unmute |
+ | Increase volume |
- | Decrease volume |
You can easily switch between themes by editing the config.json
file located in the root directory of the project. Here's how:
- Open
config.json
in a text editor. - Change the
currentTheme
field to the desired theme (e.g.,default
,dark
,vibrant
). - Save the file and restart the application.
For detailed usage instructions, see:
- 📄 doc/user.md: User guide.
- 📄 doc/installation.md: Installation instructions.
To generate HTML documentation:
nim rst2html file.rst
Then open htmldocs/file.html in your browser.
We welcome contributions! Here’s how you can help:
- Report Bugs: Open an issue on GitHub.
- Suggest Features: Share your ideas for new features.
- Submit Pull Requests: Fix bugs or add new functionality.
Please read our Contributing Guidelines for more details.
pnimrp is primarily licensed under the Mozilla Public License 2.0 (MPL-2.0). See the LICENSE file for details. However, the following component is licensed under the DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE (WTFPL):
- illwill.nim: Adapted from illwill, this file is used for non-blocking input handling and is licensed under the WTFPL. The original license text is included in the file. For more information about the WTFPL, see: WTFPL License.
- pmrp: Inspiration and initial codebase.💡
- libmpv: Playback functionality.📻
- c2nim: Wrapping objects.
- illwill: Async input handling.
- ChatGPT 3.5: Documentation and code improvements.🤖
- Claude 3.5 Sonnet: Documentation and brainstorming.
- DeepSeek-V3: Documentation and Code improvements 🥰
- You: For using and supporting this project! ❤️
Thank you for using pnimrp! If you enjoy the project, consider giving it a ⭐ on GitHub or sharing it with your friends. Let’s make terminal radio awesome! 🎶