* Create IPC socket on UNIX platforms Creates an IPC socket which remote programs/scripts can connect to. This can be used to control ncspot or fetch the current playback status. At the moment, only remote control is implemented. Next step is to send the current player status as a JSON object. Fixes #524 * Publish status changes to connected sockets Whenever the playback mode (playing, paused, stopped) or the track changes, all socket listeners will be notified. Fixes #924, fixes #1019 * Document IPC feature
101 lines
3.2 KiB
TOML
101 lines
3.2 KiB
TOML
[package]
|
|
authors = ["Henrik Friedrichsen <henrik@affekt.org>"]
|
|
description = "ncurses Spotify client written in Rust using librespot, inspired by ncmpc and the likes."
|
|
edition = "2021"
|
|
exclude = ["images/**"]
|
|
keywords = ["spotify", "ncurses", "librespot", "terminal"]
|
|
license = "BSD-2-Clause"
|
|
name = "ncspot"
|
|
readme = "README.md"
|
|
repository = "https://github.com/hrkfdn/ncspot"
|
|
version = "0.11.2"
|
|
|
|
[badges]
|
|
maintenance = {status = "actively-developed"}
|
|
|
|
[dependencies]
|
|
chrono = "0.4"
|
|
clap = "4.0.0"
|
|
clipboard = {version = "0.5", optional = true}
|
|
crossbeam-channel = "0.5"
|
|
dbus = {version = "0.9.6", optional = true}
|
|
dbus-tree = {version = "0.9.2", optional = true}
|
|
fern = "0.6"
|
|
futures = "0.3"
|
|
ioctl-rs = {version = "0.2", optional = true}
|
|
lazy_static = "1.3.0"
|
|
libc = "0.2.131"
|
|
librespot-core = "0.4.2"
|
|
librespot-playback = "0.4.2"
|
|
librespot-protocol = "0.4.2"
|
|
log = "0.4.16"
|
|
pancurses = {version = "0.17.0", optional = true}
|
|
parse_duration = "2.1.1"
|
|
platform-dirs = "0.3.0"
|
|
rand = "0.8"
|
|
regex = "1"
|
|
reqwest = {version = "0.11", features = ["blocking", "json"]}
|
|
serde = "1.0"
|
|
serde_cbor = "0.11.2"
|
|
serde_json = "1.0"
|
|
strum = "0.24.1"
|
|
strum_macros = "0.24.3"
|
|
tokio = {version = "1", features = ["rt-multi-thread", "sync", "time", "net"]}
|
|
tokio-util = {version = "0.7.4", features = ["codec"]}
|
|
tokio-stream = {version = "0.1.11", features = ["sync"]}
|
|
toml = "0.5"
|
|
unicode-width = "0.1.9"
|
|
url = "2.2"
|
|
cursive_buffered_backend = "0.6.1"
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
wl-clipboard-rs = {version = "0.7", optional = true}
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
signal-hook = "0.3.0"
|
|
|
|
[dependencies.rspotify]
|
|
default-features = false
|
|
features = ["client-ureq", "ureq-rustls-tls"]
|
|
version = "0.11.5"
|
|
|
|
[dependencies.cursive]
|
|
default-features = false
|
|
version = "0.20.0"
|
|
|
|
[dependencies.notify-rust]
|
|
default-features = false
|
|
version = "4"
|
|
# Use dbus, which we already depend on, instead of zbus.
|
|
features = ["d"]
|
|
optional = true
|
|
|
|
[features]
|
|
alsa_backend = ["librespot-playback/alsa-backend"]
|
|
cover = ["ioctl-rs"] # Support displaying the album cover
|
|
default = ["share_clipboard", "pulseaudio_backend", "mpris", "notify", "termion_backend"]
|
|
mpris = ["dbus", "dbus-tree"] # Allow ncspot to be controlled via MPRIS API
|
|
notify = ["notify-rust"] # Show what's playing via a notification
|
|
pancurses_backend = ["cursive/pancurses-backend", "pancurses/win32"]
|
|
portaudio_backend = ["librespot-playback/portaudio-backend"]
|
|
pulseaudio_backend = ["librespot-playback/pulseaudio-backend"]
|
|
rodio_backend = ["librespot-playback/rodio-backend"]
|
|
share_clipboard = ["clipboard", "wl-clipboard-rs"] # Share a link to the system clipboard
|
|
share_selection = ["clipboard", "wl-clipboard-rs"] # Use the primary selection for sharing - linux and bsd only
|
|
termion_backend = ["cursive/termion-backend"]
|
|
|
|
[package.metadata.deb]
|
|
assets = [
|
|
["target/release/ncspot", "usr/bin/", "755"],
|
|
["misc/ncspot.desktop", "usr/share/applications/", "644"],
|
|
["images/logo.svg", "usr/share/icons/hicolor/scalable/apps/ncspot.svg", "644"],
|
|
["README.md", "usr/share/doc/ncspot/README.md", "644"],
|
|
]
|
|
depends = "$auto, pulseaudio"
|
|
extended-description = """\
|
|
ncurses Spotify client written in Rust using librespot. \
|
|
It is heavily inspired by ncurses MPD clients, such as ncmpc."""
|
|
license-file = ["LICENSE"]
|
|
priority = "optional"
|
|
section = "sound"
|