阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MOC,命令行音乐播放器

35次阅读
没有评论

共计 3572 个字符,预计需要花费 9 分钟才能阅读完成。

导读 moc(Music On Console,播放器程序是 mocp,在 Arch Linux 的 Commity 中有个 tray 版本的 moc,启动时会在面板上显示一个图标,能直接启动 mocp 服务和播放器。甚至还能让 osdlyrics 加载桌面歌词,不过这很卡.)

适用于命令行,在黑乎乎的 Linux 核心控制台 (字符界面) 上也能成功启动和播放,但 Linux 核心控制台默认是没有中文支持的,可以试试能显示中文的 fbterm(直接从核心控制台启动,不需要运行 X 服务)如果需要的话。即便如此,正常使用仍然需要一番手动配置才行,如果全是英文歌曲的话例外。

MOC,命令行音乐播放器

基本上很多的 Linux 发行的官方源中已经包含了这个软件包,直接使用软件包管理工具安装。Arch Linux 的是 pacman。

注:启动 mocp 之前, 如果需要启用更多的音频格式支持,有必要从源上安装解码器

mocp 配置

在配置 mocp 之前,可以先从 moc 的 man 手册页或者 info 页获取更多的信息(比如配置文件是什么, 应该放到什么位置,格式应该是什么样的 ……)

$ mocp --help
$ man mocp
$ info mocp

注:moc 的 aur 版本允许 mocp 加载歌词(但仅限某些 utf- 8 编码的 ascii 文本(纯英文)), 这个版本会和系统中已经安装的冲突.

虽然 osdlyrics 理论上也支持 moc,然而仅仅只是安装 moc 然后打开 mocp 再打开 osdlyrics 并不会加载音频文件的 lyrics 的(尽管这也不会导致 osdlyrics 退出)

要让 osdlyrics 真正支持 moc, 还要安装 moc-tray 这个任务栏小程序并在启动 osdlyrics 之前启动 mocp 和 moc-tray.

moc-tray 可以直接启动 mocp 并且支持停止 / 播放 / 暂停 / 退出,下一首 / 上一首等动作, 不过某些动作需要在 mocp 中配置播放列表才能得到正确响应。

aur 上的 moc 构建和安装:

下载 PKGBUILD 等 makepkg 需要的脚本.

$ git clone https://aur.archlinux.org/moc-lyrics-git.git
$ pushd mocp-lyrics-git
$ makepkg -sr

编译成功之后会产生一个.pkg.tar.xz 包,然后使用 pacman - U 安装

$ mv moc-lyrics-git-1\:0.2213.c51e02e-1-x86_64.pkg.tar.xz moc-lyrics-git-x86_64.pkg.tar.xz
# pacman -U moc-lyrics-git-x86_64.pkg.tar.xz

拷贝 mocp 示例配置文件到~/.moc(没有就创建), 参数配置可以从示例文件 config.example(可以运行 locate config.example)中找到

mocp 的示例配置文件尽管使用了英文,但解释的很详细.

$ mkdir ~/.moc
$ cp `locate config.example` ~/.moc/config

下面这是从实例配置文件拷过来的,以 #号开始的都是注释(尽管注释看起来显得晦涩难懂,但作者解释的很清楚)。

~/.moc/config

# This is a configuration file for the MOC player. It should be named
# 'config' and placed in the ~/.moc directory. As this file can specify
# commands which invoke other applications, MOC will refuse to start if it
# is not owned by either root or the current user, or if it is writable by
# anyone other than its owner. All options are given with their default
# values, and therefore commented.
# Comments begin with '#'.
# You can use quotes and escape ('\') in parameters.
#
# You can have variable values substituted by enclosing the variable name
# as "${...}". (This only applies to the portion of the option following
# the '='.) Variables are substituted first from the environment then,
# if not found, from the configuration options. (Note that the value of
# a configuration option substituted is that which it has at the time the
# substitution variable is encountered.) If there is a naming conflict
# between an environment and configuration variable, you may be able to
# resolve it by using lowercase as the environment variable matches are
# case-sensitive whereas the configuration variables are not.
#
# You can also use the form "${...:-...}" where the value in the second
# position will be substituted if the variable name given in the first
# position is unset or null.
#
# So, for example:
#
# MusicDir = /music/${USER:-public}
# Fastdir1 = ${MusicDir}/mp3/rock
# Fastdir2 = ${MusicDir}/mp3/electronic
# Fastdir3 = ${MusicDir}/mp3/rap
# Fastdir4 = ${MusicDir}/mp3/etc
#
……
……
……
mocp 键盘映射配置

mocp 键盘映射自定义, 示例键盘映射可以从 $prefix/share/moc/keymap.example 找到

$ vim ~/.moc/keymap
menu_up            = k UP
menu_down        = j DOWN
menu_page_up            = ^b PAGE_UP
menu_page_down        = ^d PAGE_DOWN
menu_first_item        = M-b HOME
menu_last_item        = M-d END
mocp 主题

mocp 主题默认安装到 $prefix/share/moc/themes 目录下, 可以自定义主题只对用户生效(放到~/.moc/themes 目录下).

mocp 启动时指定的主题或者在用户级配置文件~/.moc/config 中指定的主题可以自动从 $prefix/share/moc/themes 和~/.moc/themes 中读取.(没有就要在~/.moc/config 的 Theme 使用绝对路径来指定)

创建~/.moc/themes 目录

$ mkdir -pv ~/.moc/themes
$ cp /usr/share/moc/themes/moca_theme ~/.moc/themes/user_moca_theme 

~/.moc/themes/ user_moca_theme 

background        = white    default bold
frame            = white    default bold
window_title        = yellow    default    bold
directory        = white        default
selected_directory    = white        default bold
playlist        = white default
selected_playlist    = cyan        default    bold
file            = green default bold
#selected_file        = yellow    red    bold
selected_file        = white black bold
…….
mocp User themes

这是我的 moc 最终的样子:

MOC,命令行音乐播放器

fbterm 显示出来也是这个样子的,不过桌面歌词就没有了。

注:在 fbterm 中将 TERM 变量一直设为 fbterm 时会让一些基于 ncursers 库的命令行程序界面 (比如 mc 和 alsamixer,mocp) 变得乱七八糟。而只有在将 TERM 变量值设置为 fbterm 的时候才可以让 vim 在 fbterm 上支持更多的颜色。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计3572字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中