MOC

Music On Console
is a lightweight music player similar to
MPD
, but unlike it, MOC comes with an interface and its server does not support remote access.
Installation
Install
moc-pulse
AUR
. To use the pulseaudio driver, go to
#Using PulseAudio
.
Front-ends
mocicon
— GTK panel applet to control MOC
https://mocicon.sourceforge.net/
||
mocicon
AUR
eXo
— Qt frontend to MOC, supports scrobbling
https://github.com/loimu/exo
||
exo-player
AUR
Configuration
On
mocp
first run, the
~/.moc/
directory is created.  MOC reads its configuration from the file
~/.moc/config
.
Sample configuration files can be found in
/usr/share/doc/moc/
.  To configure, copy the examples to
~/.moc/config
and edit accordingly.
To use MOC with v4.1
OSS
, see
OSS#MOC
.
To change the default key bindings, see
/usr/share/doc/moc/keymap.example
.
Using PulseAudio
Locate the variable
SoundDriver
and add
PULSEAUDIO:
to the front.
SoundDriver = PULSEAUDIO:JACK:ALSA:OSS
This ensures that PulseAudio gets loaded with first priority. Listing other sound drivers after this are fallbacks when the previous ones are not available.
Navigation
To change directories with the arrow keys uncomment in
~/.moc/config
:
Keymap = keymap
Edit the following in
~/.moc/keymap
:
go    = ENTER RIGHT
go_up = U LEFT
#seek_forward  = RIGHT
#seek_backward = LEFT
To speed up navigation and detach, set the following in
~/.moc/config
:
ReadTags = no
ShowTime = no
TagsCacheSize = 0
systemd service
Enable
this service for the respective user:
/etc/systemd/system/moc@.service
[Unit]
Description=MOC server
ConditionPathExists=/usr/bin/mocp
After=network.target sound.target

[Service]
RemainAfterExit=yes
User=%I
ExecStart=/usr/bin/mocp -S
ExecStop=/usr/bin/mocp -x
WorkingDirectory=/home/%I/

[Install]
WantedBy=multi-user.target
Themes
Several themes for the player GUI are available. To list the available themes and set one, use hotkey
T
.
To set one to permanent use the configuration file
~/.moc/config
.
Theme = laras_theme
A selection of example themes can be found in
/usr/share/moc/themes/
, the installation of
mocp-themes-git
AUR
adds more of them.
Since themes are just text files, it is easy to create new ones. User defined themes are expected in
~/.moc/themes/
.
Example theme file:
background                     = white black
frame                          = white black
window_title                   = white black
directory                      = white black
selected_directory             = white black reverse
playlist                       = white black
selected_playlist              = white black reverse
file                           = white black
selected_file                  = white black reverse
selected_info                  = white black reverse
marked_file                    = white black bold
marked_selected_file           = white black reverse
info                           = white black
marked_info                    = white black bold
marked_selected_info           = white black reverse
status                         = white black
title                          = white black bold
state                          = white black
current_time                   = white black bold
time_left                      = white black bold
total_time                     = white black bold
time_total_frames              = white black
sound_parameters               = white black bold
legend                         = white black
disabled                       = white black
enabled                        = white black bold
empty_mixer_bar                = white black
filled_mixer_bar               = white black reverse
empty_time_bar                 = white black
filled_time_bar                = white black reverse
entry                          = white black
entry_title                    = white black
error                          = white black bold
message                        = white black
plist_time                     = white black
Usage
Run
mocp
to start the server and interface. Some useful default shortcuts (press
h
for more):
Start playing at this file or go to this directory
Enter
Pause
Space
or
p
Play next file
n
Play previous file
b
Silent seek forward by 5s
]
Silent seek backward by 5s
[
Switch between playlist and file list
Tab
Add a file/directory to the playlist
a
Add a directory recursively to the playlist
Shift+a
Delete an item from the playlist
d
Clear the playlist
Shift+c
Increase volume by 1%
>
Decrease volume by 1%
<
Increase volume by 5%
.
(period)
Decrease volume by 5%
,
(comma)
Set volume to 10%
Alt+1
Set volume to 90%
Alt+9
Detach MOC from the server
q
Quit
Shift+q
Tip
To not wait for detach (as it sometimes takes a moment),
Ctrl+z
can be used instead.
To shut down the server, run the
mocp -x
command.
Scrobbling
mocp-scrobbler
AUR
is a Last.fm (and Libre.fm) scrobbler for MOC with support for now-playing notifications, daemonization and cache. It only depends on
Python
3.
Note
To use Libre.fm instead of Last.fm change
hostname
from
post.audioscrobbler.com
to
turtle.libre.fm
.
Copy the example file to your user configuration directory:
mkdir ~/.mocpscrob/
cp /usr/share/doc/mocp-scrobbler/config.example  ~/.mocpscrob/config
Edit
~/.mocpscrob/config
to add your login and password. The password variable will be replaced with
password_md5
on the first run. Its value will be the original value hashed using MD5 algorithm. If you want to change password, just add again password with you new password, and
password_md5
will be replaced.
To scrobble tracks, start
mocp-scrobbler
as daemon before
mocp
. You can also use an
alias
:
alias mocp='/usr/bin/mocp-scrobbler.py -d; mocp'
In January of 2016 last.fm updated their password requirements, with all new and updated passwords requiring the inclusion of one of the following characters
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
, or a space. This is known to cause an authentication error with mocpscrob configurations which specify passwords not conforming to these new specifications. Changing one's password and updating the
~/.mocpscrob/config
password accordingly resolves this issue.
Troubleshooting
MOC fails to start
If MOC fails to start, it is most probably because of something wrong in
~/.moc/
. You can try to fix it, or simply delete the whole folder.
Strange characters
If you see strange-like characters displayed instead of the normal lines (vertical lines to separate space, etc.), you may have a font set incompatible to MOC. Either change the respective font, or edit
.moc/config
to use ASCII for drawing lines:
ASCIILines = no
FATAL_ERROR: Layout1 is malformed
If MOC crashes with this error, try adding either line to
.moc/config
:
Layout1 = directory(0,0,50%,100%): playlist(50%,0,100%,100%)
or
Layout1 = directory(0,0,50%,100%): playlist(50%,0,FILL,100%)
See
original report
and
Debian bugs
.
Bluetooth not working unless it is connected before MOC is started
When using pipewire, MOC defaults to
JACK
which appears to be the cause of this issue. Simply changing from
jack
to
ALSA
solves this issue through changing the following value within the configuration file:
Default value:
JACK:OSS:ALSA
New value:
ALSA:OSS:JACK
MOC picks the first working audio driver, thus ALSA will be picked first. This should fix the bluetooth issues.
See also
Official documentation