ncmpcpp
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」中指定的路徑值相同
如需靈感,可以參閱以下資源:
-
/usr/share/doc/ncmpcpp/config中的示例配置文件。 - 分享您的 .ncmpcpp/config 與屏幕截圖的論壇線程
對於音頻可視化,請在 /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)
如果使用 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 Filename 和 Rename 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 ⓘ]