Documentation · Features · Looks . Get Started · Report a bug
Warning
inLimbo is a WIP
Most aspects of the project are under heavy development and no stable release is present as of yet.
The inLimbo project aims to be a new upcoming TUI music player for UNIX based systems that gives music lovers a clean and efficient environment to browse, play and interact with your favourite offline music.
- Fully configurable: Keybinds, library, FTP credentials, and more, all in one
config.toml
file located in$HOME/.config/inLimbo/config.toml
- Very fast and easy to use: Optimized for speed and usability.
- Very few external dependencies: Minimal setup required to get started.
- Clean and nice TUI experience: Interact with your music library seamlessly in a terminal interface.
- Showcases all the metadata: Displays song metadata, including lyrics, genre, and more, for every file in your library.
- Plays and caters to many audio file formats: Compatible with a variety of audio formats, depending on the capabilities of miniaudio.
- Customizable: Add your own color palette to inLimbo ;)
Dependency | Ubuntu | Fedora | Arch Linux |
---|---|---|---|
TagLib | libtag1-dev |
taglib-devel |
taglib |
Gio | libgio-2.0-dev |
glib2-devel |
glib2 |
GLib | libglib-2.0-dev |
glib2-devel |
glib2 |
pkg-config | pkg-config |
pkgconf |
pkgconf |
ImageMagick | imagemagick |
ImageMagick |
imagemagick |
X11 | libx11-dev |
libX11-devel |
libx11 |
PNG | libpng-dev |
libpng-devel |
libpng |
cereal | libcereal-dev |
libcereal-devel |
cereal |
Note
If cereal is NOT available in your linux distribution,
git clone https://github.com/USCiLab/cereal.git # download cereal
mv cereal/include/* /usr/include/ # moves include/cereal headers to your include directory
# If you find that risky, just modify CMakeLists.txt to include cereal's directory for building
FTXUI is fetched from GitHub here itself during building so NO need to install it separately.
The goal of this project is just to find peace and solitude for me as I try to create something I wanted for a long time
Here are a few novelties that may or may not have been added yet:
- Cool and amazing TUI experience thanks to FTXUI
- Full use of metadata (lyrics, genre, etc..) and available for display
- Simple and easy network transfer of your favourite songs over to another device
- Fast and efficient loading of your song directory with everything you need :)
- TUI over the web?? (Why would you want this)
You will need CMake and Make (GNU Make for BSD) for this (and git obvi)
The following Make commands will make building inLimbo very easy:
make all # to build EVERYTHING from scratch (and RUNS ./init.sh)
make build # A fresh build of inLimbo (DOES NOT RUN ./init.sh)
make rebuild # A quick rebuild of the project (DOES NOT RUN ./init.sh)
make init # Runs the init script to download required headers
make clean # wipes the build clean.
Note
Debug building using make needs to be setup, will be available soon.
Warning
Proceed with manual build ONLY if you know what you are doing.
git clone https://github.com/nots1dd/inLimbo.git
cd inLimbo/
./init.sh # to initialize the repository with some important headers
Then building commands: (WILL NOT COMPILE IF init.sh
IS NOT RUN FIRST)
cmake -S . -B build/
cmake --build build/
./build/inLimbo
To build inLimbo GLOBALLY:
cmake -S . -B build -DBUILD_GLOBAL=ON
cmake --build build/
cd build
sudo make install # will put the binary in /usr/bin and respective inLimbo.desktop and logo in /usr/share
To build its web-assembly, you will need emscripten
Important
Building the web-assembly:
Currently I am not sure how to include and compile taglib into wasm so currently the web build may compile but it will not work as I have dummy methods set up for EMSCRIPTEN build (else it wont even compile to wasm)
mkdir build_emscripten && cd build_emscripten
emcmake cmake ..
make -j
./run_webassembly.py # assuming the compilation has no errors
# This will run in port 8000
Note
To try debug build check out DEBUGGING
inLimbo is in active development and is prone to having A LOT of issues
To try out DEBUG BUILD to find bugs/issues:
- Debug build with
AddressSanitizer
(ASan):
mkdir build-dbg/
cd build-dbg/
cmake -DCMAKE_BUILD_TYPE=Debug-ASan ..
make
./inLimbo-DBG-Asan
- Debug build with
Thread Sanitizer
(TSan):
mkdir build-dbg/
cd build-dbg/
cmake -DCMAKE_BUILD_TYPE=Debug-TSan ..
make
./inLimbo-Debug-Tsan
The DEBUG BUILD will account for the following issues:
-> Threads
-> Address Sanitation (ASan)
-> Undefined Behaviour Sanitation (UBSan)
There is quite a lot to configure in the inLimbo project. A basic config file will be setup in your $HOME/.config/inLimbo/
directory while using CMake to build
Important
Check out config.toml to see all the possible fields for configuration
IT IS UNDER HEAVY DEVELOPMENT SO EXPECT BREAKING CHANGES WITH EACH COMMIT
COLORS FORMAT
-> Hexadecimal #RRGGBB
format
-> TrueColors (Solid predefined colors):
Note
For TrueColors, check out COLORS for more information on how to set up colors in inLimbo
To know more about inLimbo Project's logical flow on creating a song map, visit SONGMAP
Currently I am setting up a Doxygen documentation page that should really make it easy to understand the flow of the project
Man page is also under progress
To generate and view doxygen documentation locally:
doxygen .Doxyfile # ensure that you have doxygen installed first
cp -r assets/gifs/ docs/
cp index.html docs/
firefox docs/html/index.html # or any web browser (xdg-open also works)
It is much easier to use the script make_docs.sh
./make_docs.sh
Or you could just visit inLimbo Website
LOGO:
DISCLAIMER: This is not an original logo nor was it commisioned by me
It is a basic stock image found online. I got it from here
TOML PARSER:
To parse the config.toml is thanks to TOML++
AUDIO PLAYBACK & API:
Audio playback and capture is thanks to miniaudio
inLimbo is Free and Open Source Software Licensed under GNU GPL v3