neptune is an experimental client mod for TIDAL that provides a simple plugin and theme system.
you can download the neptune installer here.
Warning
TIDAL-HIFI right now is colliding with neptune when trying to login
create a nix-shell with tidal-hifi and login once, after that you can use the neptune package
you install this package as an overlay
add as an input in your flakes:
inputs = {
neptune = {
url = "github.com:uwu/neptune";
inputs.nixpkgs.follows = "nixpkgs";
}
};
configure your package system to use this overlay:
nixpkgs.overlays = [ inputs.neptune.overlays.default ];
and then just add neptune as a package:
enivronment.systemPackages = [ pkgs.neptune ];
After that you can find TIDAL-HIFI as program in your system
neptune exfiltrates every single action one can do in TIDAL into an easily accessible API found on window.neptune.actions
.
TIDAL is built on Redux and neptune's actions are simply exfiltrated Redux actions, which are explained in this document on Redux's website.
neptune includes full type definitions for all of TIDAL's actions.
To get the global Redux store's state, you can use window.neptune.store.getState()
. The return value of getState()
will change as a direct result of actions.
To intercept and subscribe to actions, you can use window.neptune.intercept("category/ACTION_NAME", ([payload]) => {})
, with the first argument being the name (or an array of names) of the action(s) to subscribe to, and the second argument being a function that gets called upon that action being ran. If you return true
the action will automatically be cancelled.
A template for making neptune plugins is available here.