修改 ncmpc 中文显示问题

来源:互联网 发布:淘宝大码女装货源 编辑:程序博客网 时间:2024/04/29 14:20

基于 Ubuntu 6.06 版本,Debian系统也应该适用

ncmpc 是 mpd 的一个客户端,基于控制台的 ncurses 库,可以方便的连接 mpd,进行控制,非常方便,只是中文的显示有些问题,在歌曲列表窗口中中文的歌曲名被截断了。

开始以为是有关 unicode 的问题,看了看代码,发现只是字符宽度的处理问题,对于中文来说,一个字符占两个英文字母的宽度。

我做的修改

Index: src/list_window.c
===================================================================
--- src/list_window.c   (revision 4813)
+++ src/list_window.c   (working copy)
@@ 
-203,10 +203,10 @@
if( show_cursor && selected )
wattron(lw
->w, A_REVERSE);

+      if( fill )
+          mvwhline(lw->w, i, 0' ', lw->cols);
//waddnstr(lw->w, label, lw->cols);
waddstr(lw->w, label);
-         if( fill && lencols )
-           mvwhline(lw->w, i, len, ' ', lw->cols-len);

if( selected )
wattroff(lw
->w, A_REVERSE);

我编译新版本的脚本

sudo apt-get install build-essential
svn checkout https:
//svn.musicpd.org/ncmpc/trunk@4813 ncmpc
cd ncmpc
wget http:
//yjpark.googlepages.com/ncmpc_chinese_patch
patch -p0 < ncmpc_chinese_patch
./autogen.sh
./configure --enable-artist-screen
make
sudo cp src
/ncmpc /usr/bin/

你也可以直接下载我编译好的文件

wget http://yjpark.googlepages.com/ncmpc
sudo mv ncmpc 
/usr/bin/

可以编辑 ~/.ncmpc/config 来进行设置

auto-center = yes
wide-cursor 
= yes
enable-colors 
= yes

set-xterm-title 
= yes
xterm-title-format 
= "[[%artist% - ]%title%]|[%file%]"

如果你想不启动X使用ncmpc,可以使用zhcon(apt-get install zhcon)来支持中文显示,不过在我的机器上使用zhcon的framebuffer模式失败了,于是只能

zhcon --utf8 --drv=vga

–utf8 参数可以让 ncmpc 正常工作,为了显示某些字符,可能需要编辑 ~/.zhconrc 把 defaultencoding 改为 GBK 。

zhcon + ncmpc仍然有些问题,有些字显示不出来,歌曲播放的进度条也显示不正常,不过不太影响使用。

原创粉丝点击