跳至內容

ncmpcpp

出自 Arch Linux 中文维基

Ncmpcpp 是一個 mpd 客戶端(與 mopidy 兼容),其 UI 與 ncmpc 非常相似,但它提供了新的實用功能,例如:支持對音樂庫的正則表達式搜索、對擴展的音頻格式的支持、項目過濾、播放列表排序以及在本地音樂庫上的文件系統瀏覽器。

ncmpcpp/mpd 以客戶端/伺服器關係工作,因此您需要能在系統上運行 mpd 才能使用 ncmppp

安裝

[編輯 | 編輯原始碼]

安裝 ncmpcpp 軟體包,或者開發版本 ncmpcpp-gitAUR

基本配置

[編輯 | 編輯原始碼]

ncmpcpp 的 shell「GUI」是高度可定製的,可以根據自己的喜好編輯 $XDG_CONFIG_HOME/ncmpcpp/config 來定製。如果在安裝後尚未創建 $XDG_CONFIG_HOME/ncmpcpp/config,只需複製示例配置,修改所有者並至少編輯以下三個配置選項:

  • mpd_host - 應指向 mpd 所在的主機,如果在同一台計算機上,可以是「localhost」、「127.0.0.1」或「::1」。要使用密碼連接,請設置為「password@host
  • mpd_port - mpd 的默認值應為 「6600」
  • mpd_music_dir - 應與 mpd.conf 中的「music_directory」中指定的路徑值相同

如需靈感,可以參閱以下資源:

啟用音頻可視化

[編輯 | 編輯原始碼]

對於音頻可視化,請在 /etc/mpd.conf~/.config/mpd/mpd.conf 中添加以下幾行來生成用於可視化的快速傅立葉變換數據:

audio_output {
    type                    "fifo"
    name                    "my_fifo"
    path                    "/tmp/mpd.fifo"
    format                  "44100:16:2"
}
注意:對於正常的音頻輸出,可能需要額外添加一個 audio_output 片段。具體細節請見Music Player Daemon#配置音頻

下面的幾行也需要被添加到 $XDG_CONFIG_HOME/ncmpcpp/config

visualizer_data_source = "/tmp/mpd.fifo"
visualizer_output_name = "my_fifo"
visualizer_in_stereo = "yes"
visualizer_type = "spectrum"
visualizer_look = "+|"
  • visualizer_type - 將可視化設置為 spectrum/ellipse/wave_filled 分析儀或 wave 形式。
  • visualizer_look - 設置可視化工具的外觀(字符串長度必須恰好是 2 個字符:第一個用於 wave,第二個用於spectrum/ellipse/wave_filled
注意:如果遇到了同步問題,將 mpd 配置中 buffer_time 的值修改為 100000 或更低.

如果使用 mopidy, 則可視化是由 gstreamer 的 udpsink 來處理。修改 mopidy.conf 中的 [audio] 塊中的 output 為:

output = tee name=t ! queue ! autoaudiosink t. ! queue ! audio/x-raw,rate=44100,channels=2,format=S16LE ! udpsink host=localhost port=5555

這會將音頻數據轉發到埠 5555。要使 ncmpcpp 從此埠讀取數據,請相應地更改其 visualizer_data_source

visualizer_data_source = "localhost:5555"

提示和技巧

[編輯 | 編輯原始碼]

重新映射快捷鍵

[編輯 | 編輯原始碼]

可以通過在 npmpcpp 中按 F1 來獲得快捷鍵和其綁定的功能列表。只需將 /usr/share/doc/ncmpcpp/bindings 複製到 $XDG_CONFIG_HOME/ncmpcpp/ 並對該文件進行編輯,即可重新映射任何默認快捷鍵。

從文件名自動設置標籤,反之亦然

[編輯 | 編輯原始碼]

在標籤編輯器中可以選擇一個包含音樂的目錄,然後選擇中間部分的 Filename 選項。這將打開一個小窗口,其中包含兩個選項:Get Tags from FilenameRename files。 如果選擇Get Tags From Filename,則會顯示一個包含兩個窗格的彈出窗口。在左側的窗格中可以輸入如何從文件名中提取所選信息的模式,還可以選擇 Preview 來預覽結果。而在右側的窗格中可以看到包含所有可能用於提取信息的關鍵字的圖例。

一個簡單的示例是模式:%a - %t。如果音樂文件是根據(藝術家 - 標題)的格式命名的,則此模式將提取對應信息並為文件設置標籤。

另一個選項 Rename Files 則完全相反。它從音頻文件中獲取標籤並根據標籤創建文件名。

歌曲更改時通知

[編輯 | 編輯原始碼]

可以在 execute_on_song_change 命令中使用 notify-send 來在歌曲更改時(以及 ncmpcpp 啟動時)發出通知。這取決於是否安裝並配置了桌面通知程序。例如:

execute_on_song_change = notify-send "Now Playing" "$(mpc --format '%title% \n%artist% - %album%' current)"

帶專輯封面的通知

[編輯 | 編輯原始碼]

可以使用此腳本使得歌曲更改的通知能帶有當前播放歌曲的專輯封面。默認情況下,專輯封面的預覽文件將存儲在 $XDG_CONFIG_HOME/ncmpcpp/previews 中並縮放到 128x128。預覽文件名是以 base64 編碼的專輯名稱,因此不應保存重複的預覽。

假設 ~/.local/bin$PATH 中,請創建(並使其可執行

~/.local/bin/songinfo
#!/bin/sh

music_dir="$HOME/Music"
previewdir="$XDG_CONFIG_HOME/ncmpcpp/previews"
filename="$(mpc --format "$music_dir"/%file% current)"
previewname="$previewdir/$(mpc --format %album% current | base64).png"

[ -e "$previewname" ] || ffmpeg -y -i "$filename" -an -vf scale=128:128 "$previewname" > /dev/null 2>&1

notify-send -r 27072 "Now Playing" "$(mpc --format '%title% \n%artist% - %album%' current)" -i "$previewname"

並將下內容添加到 ncmpcpp 配置中:

execute_on_song_change = songinfo

另見

[編輯 | 編輯原始碼]

dotshare.it 配置[失效連結 2025-08-16 ⓘ]