Important
inLimbo is a WIP
Most aspects of the project are under heavy development and no stable release is present as of yet.
A possible revamp of LiteMus
- 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.
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 for this (and git obvi)
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 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
There is a very basic config file setup while building inLimbo in your $HOME/.config/inLimbo/
directory
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
Currently uses rbtrees and unordered_map to store and write the current inodes in given directory to lib.sync
file
-> rbtree will contain all the inodes at runtime
-> cached to lib.sync
for future use and faster data fetch
Note
src/dirsort/ has the current implementation of how the chosen songs directory will be cached and read into memory to display in ftxui TUI
To use dirsort/ source files separately:
make
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