Skip to content

TheFox/cmus-control

Repository files navigation

Cmus Control

Control cmus with Media Keys ⏪ ▶️ ⏩ under macOS.

Project Outlines

The project outlines as described in my blog post about Open Source Software Collaboration.

  • The main purpose of this software is to provide support for cmus under macOS. Cmus can be controlled by the Media Keys of your Apple Keyboard.
  • The feature set is restricted because this software already provides the intended features. But still, feel free to request features.

Requirements

  • At least macOS 10.8.
  • cmake to build it.
  • Since Cmus Control doesn't have the behavior of changing any foreign processes it's highly recommended to deactivate the Remote Control Daemon.
  • cmus installed. ;)

Install

You can either install Cmus Control via Homebrew or manually. The preferred method of installation is via Homebrew.

Homebrew installation

  1. Add the thefox/brewery tap to brew.

    $ brew tap thefox/brewery
  2. Actual installation

    $ brew install cmus-control
  3. After a successful installation follow the Caveats output, start the service:

    $ brew services start thefox/brewery/cmus-control

    Or, if you don't want/need a background service you can just run

    $ cmuscontrold

Manual installation

  1. You need to install cmake: brew install cmake
  2. Run ./bin/install.sh to compile Cmus Control Daemon and install cmuscontrold under /usr/local/bin path. A launchd.plist file named at.fox21.cmuscontrold.plist will be created under ~/Library/LaunchAgents to start Cmus Control Daemon automatically on login.

If you just want to compile Cmus Control Daemon without installing run ./bin/build_release.sh. The binary will be created at build/release/bin/cmuscontrold.

For a debugging version you can run ./bin/build_debug.sh. The binary will be created at build/debug/bin/cmuscontrold.

Uninstall

Just run ./bin/uninstall.sh. Doing so

  • cmuscontrold will be unloaded via launchctl;
  • ~/Library/LaunchAgents/at.fox21.cmuscontrold.plist will be removed;
  • /usr/local/bin/cmuscontrold will be removed.

Load/Unload

After a successful manual installation the cmuscontrold is loaded/started automatically with launchctl. You can unload the daemon manually:

$ ./bin/lctl_unload.sh

Or load it manually:

$ ./bin/lctl_load.sh

Re-build

After changing the source code you might want to re-build the binary and re-install it.

./bin/lctl_unload.sh
./bin/cleanup.sh
./bin/install.sh
./bin/lctl_load.sh