https://github.com/miraclx/cmusd
CMUS-D (C* Music Player Daemon) with NodeJS
https://github.com/miraclx/cmusd
cmus cmus-control cmus-remote dbus dbus-service media media-player media-player-widget mpris mpris2 remote remote-control
Last synced: 8 months ago
JSON representation
CMUS-D (C* Music Player Daemon) with NodeJS
- Host: GitHub
- URL: https://github.com/miraclx/cmusd
- Owner: miraclx
- License: apache-2.0
- Created: 2019-02-10T15:51:18.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-07-15T23:42:23.000Z (almost 7 years ago)
- Last Synced: 2025-02-09T03:38:02.348Z (over 1 year ago)
- Topics: cmus, cmus-control, cmus-remote, dbus, dbus-service, media, media-player, media-player-widget, mpris, mpris2, remote, remote-control
- Language: JavaScript
- Homepage:
- Size: 1.49 MB
- Stars: 13
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CMUS-D
> [C* Music Player][cmus] media interface daemon
This package provides a remote graphical frontend for the [C* Music Player][cmus] using the `MPRIS D-Bus Interface`
How it works
`cmus` has a remote tool [cmus-remote(1)](https://linux.die.net/man/1/cmus-remote) that can control and query `cmus` through a socket.
`cmusd` takes advantage of this by parsing the status of `cmus` on request and sending playback controls to it.
This data is updated twice every second for precision.
## Features
* Album art: This is generated and rendered after being extracted by `ffmpeg`
* Playback (Next, Previous, Pause, Play, PlayPause, Stop, Seek)
* Hybrid Connection: The daemon can either spawn a `cmus` process within itself or connect to an already active one
* Auto logging
## Installing
The project is written in Native JavaScript [NodeJS](https://github.com/nodejs/node).
[Download and install Node.js, NPM](https://nodejs.org/en/download/).
Via [NPM][npm]
``` bash
npm install cmusd -g
```
Manual Installatiion
``` bash
git clone https://gitlab.com/miraclx/cmusd.git
cd cmusd
npm run setup
```
## Usage
``` bash
# Launch the daemon
cmusd
# Clean all logfiles, launch
cmusd -x
# Remove the lockfile, launch
# (incase previous process didn't close correctly)
cmusd -q
# Write log to specific file
cmusd
# Write log to file in folder
cmusd
```
* Lock file: `/cmus-dir/.lock`
* Album Art cache folder: `/cmus-dir/`
* Default log folder: `/cmus-dir/logs/`
## Screenshots
### `Simple Command`

### `Basic Run, spawns cmus within (if not already running)`
")
### `Media player instance` for the auto-spawned [CMUS-D listener](#a)

### Connect to an actively running cmus process

### `Already running CMUS`

### `CMUS-D Connected and logging`

### `Media player instance` for the connected [CMUS-D listener](#b)

## Development
### Building
Use in adherance to the [license](#license), feel free to send some pull requests
``` bash
git clone https://github.com/miraclx/cmusd.git
cd cmusd
npm install
# hack on code
npm run build
```
## License
[Apache 2.0][license] © **Miraculous Owonubi** ([@miraclx][author-url]) <omiraculous@gmail.com>
[npm]: https://github.com/npm/cli "The Node Package Manager"
[cmus]: https://github.com/cmus/cmus "C* Music Player"
[license]: LICENSE "Apache 2.0 License"
[author-url]: https://github.com/miraclx