Skip to content

uwu/neptune

Repository files navigation

neptune

what is neptune?

neptune is an experimental client mod for TIDAL that provides a simple plugin and theme system.

screenshot(s)

a screenshot of the neptune settings tab

how can i install neptune?

you can download the neptune installer here.

NixOS

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

developing plugins for neptune

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.