Skip to content

Feishin

Feishin is a self-hosted music player client for Jellyfin, Navidrome, and Subsonic servers. This module talks to Feishin’s built-in remote control server over a WebSocket, giving you playback controls plus data that MPRIS does not expose: play count, shuffle, repeat, and favorite status.

Setup

In Feishin, enable the remote control server:

  1. Open Settings → Window
  2. Enable Remote control server
  3. Note the port (default 4333) and, if set, the username/password

Then add the module to your bar config:

{
    "modules-right": ["feishin"],
    "modules": {
        "feishin": {
            "host": "localhost",
            "port": 4333,
            "show_title": true
        }
    }
}

Configuration

KeyTypeDefaultDescription
hoststringlocalhostHost running the Feishin remote server
portinteger4333Port of the Feishin remote server
usernamestring''Username for the remote server (if set)
passwordstring''Password for the remote server (if set)
show_titlebooleantrueShow the song title in the bar
art_sizeinteger300Album art size in the popover (pixels)
visualizerbooleanfalseShow a dummy visualizer over the album art

Controls

The popover shows album art, track info, a seek bar, and playback buttons. Clicking the module opens the popover. The bar widget supports:

  • Scroll wheel — adjust volume
  • Right click — toggle play/pause

Additional buttons in the popover:

  • Shuffle — toggles shuffle, highlighted when active
  • Repeat — toggles repeat (off / all / one), highlighted when active
  • Favorite — favorites/unfavorites the current song
  • Plays — play count of the current song

Notes

  • The module only shows when a song is loaded in Feishin.
  • Album art is cached in ~/.cache/pybar.
  • Position updates are pushed by Feishin roughly every 500 ms.