MOC

来自 ArchWiki

Music On Console 是一款轻量级的音乐播放器,类似于 MPD,但与之不同的是,MOC 自带界面,且其服务器不支持远程访问。

安装

安装 moc-pulseAURmoc-pulse-svnAUR 以获取开发版本。要使用 pulseaudio 驱动,请转到 #使用 PulseAudio

前端

  • mocicon — 用于控制 MOC 的 GTK 面板小程序
https://mocicon.sourceforge.net/ || mociconAUR
  • eXo — MOC 的 Qt 前端,支持音乐记录
https://github.com/loimu/exo || exo-playerAUR

配置

首次运行 mocp 时,将创建 ~/.moc/ 目录。MOC 从文件 ~/.moc/config 读取其配置。

可以在 /usr/share/doc/moc/ 中找到示例配置文件。要进行配置,请将示例复制到 ~/.moc/config 并进行相应的编辑。

要将 MOC 与 v4.1 OSS 一起使用,请参阅 OSS#MOC

要更改默认的按键绑定,请参阅 /usr/share/doc/moc/keymap.example

使用 PulseAudio

找到变量 SoundDriver 并在前面添加 PULSEAUDIO:

SoundDriver = PULSEAUDIO:JACK:ALSA:OSS

这确保了 PulseAudio 获得最高的加载优先级。在此之后列出的其他声音驱动程序是在之前的驱动程序不可用时的备用方案。

导航

要使用箭头键更改目录,请在 ~/.moc/config 中取消注释

Keymap = keymap

~/.moc/keymap 中编辑以下内容

go    = ENTER RIGHT
go_up = U LEFT
#seek_forward  = RIGHT
#seek_backward = LEFT

要加快导航和分离,请在 ~/.moc/config 中设置以下内容

ReadTags = no
ShowTime = no
TagsCacheSize = 0

systemd 服务

启用 此服务以供相应用户使用

/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

主题

有多个播放器 GUI 的主题可用。要列出可用的主题并设置一个,请使用热键 T。要永久设置一个主题,请使用配置文件 ~/.moc/config

Theme = laras_theme

可以在 /usr/share/moc/themes/ 中找到一些示例主题,安装 mocp-themes-gitAUR 会添加更多主题。

由于主题只是文本文件,因此很容易创建新主题。用户定义的主题应放在 ~/.moc/themes/ 中。

示例主题文件

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

用法

运行 mocp 以启动服务器和界面。一些有用的默认快捷键(按 h 查看更多)

在此文件开始播放或转到此目录 Enter
暂停 Spacep
播放下一个文件 n
播放上一个文件 b
静默快进 5 秒 ]
静默快退 5 秒 [
在播放列表和文件列表之间切换 Tab
向播放列表添加文件/目录 a
将目录递归添加到播放列表 Shift+a
从播放列表中删除项目 d
清空播放列表 Shift+c
音量增加 1% >
音量减少 1% <
音量增加 5% . (句点)
音量减少 5% , (逗号)
将音量设置为 10% Alt+1
将音量设置为 90% Alt+9
将 MOC 从服务器分离 q
退出 Shift+q
提示: 为了不等待分离(有时需要一些时间),可以使用 Ctrl+z 代替。

要关闭服务器,请运行 mocp -x 命令。

音乐记录

mocp-scrobblerAUR 是一个用于 MOC 的 Last.fm (和 Libre.fm) 音乐记录器,支持正在播放通知、守护进程化和缓存。它仅依赖于 Python 3。

注意: 要使用 Libre.fm 而不是 Last.fm,请将 hostnamepost.audioscrobbler.com 更改为 turtle.libre.fm

将示例文件复制到您的用户配置目录

mkdir ~/.mocpscrob/
cp /usr/share/doc/mocp-scrobbler/config.example  ~/.mocpscrob/config

编辑 ~/.mocpscrob/config 以添加您的登录名和密码。密码变量将在首次运行时被 password_md5 替换。其值将是使用 MD5 算法哈希的原始值。如果您想更改密码,只需再次添加包含新密码的密码,password_md5 将被替换。

要记录曲目,请在 mocp 之前以守护进程方式启动 mocp-scrobbler。您也可以使用 别名

alias mocp='/usr/bin/mocp-scrobbler.py -d; mocp'

在 2016 年 1 月,last.fm 更新了他们的密码要求,所有新的和更新的密码都需要包含以下字符之一 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 或空格。已知这会导致 mocpscrob 配置的身份验证错误,这些配置指定的密码不符合这些新规范。更改密码并相应地更新 ~/.mocpscrob/config 密码可以解决此问题。

故障排除

MOC 启动失败

如果 MOC 启动失败,很可能是因为 ~/.moc/ 中存在某些问题。您可以尝试修复它,或者直接删除整个文件夹。

奇怪字符

如果您看到显示的字符类似奇怪的字符而不是正常的线条(用于分隔空格的垂直线等),则可能是您的字体设置与 MOC 不兼容。要么更改相应的字体,要么编辑 .moc/config 以使用 ASCII 绘制线条

ASCIILines = no

FATAL_ERROR: Layout1 格式错误

如果 MOC 崩溃并出现此错误,请尝试将以下任一行添加到 .moc/config

Layout1 = directory(0,0,50%,100%): playlist(50%,0,100%,100%)

Layout1 = directory(0,0,50%,100%): playlist(50%,0,FILL,100%)

参见 原始报告Debian 错误

蓝牙在 MOC 启动前连接才工作

当使用 pipewire 时,MOC 默认使用 JACK,这似乎是此问题的原因。只需将配置文件的以下值从 jack 更改为 ALSA 即可解决此问题

默认值

JACK:OSS:ALSA

新值

ALSA:OSS:JACK

MOC 选择第一个可用的音频驱动程序,因此将首先选择 ALSA。这应该可以解决蓝牙问题。

参见