个人笔记,若有转载,请注明作者和出处。

——by realasking

 

上一次折腾Linux的中文环境是2013或2014年了,当时用的也是archlinux,后来转用Fedora之后,也沿用着当时配置的结果,在X环境下使用fcitx-sogoupinyin,在tty下使用zhcon和zhcon自带的双拼,这一次重装antergos之后,一直没改,直到昨天需要在tty下打开一个中文文件,才发现,随着时间的流逝,一切都会改变。

当年在tty下选择zhcon其实是不得已之下的选择,当时的fbterm字体显示非常难看,即使设置多个字体也是如此,在fbterm下启动fcitx也不够稳定,老出现一些莫名的问题,而当时的zhcon非常强壮,虽然输入法没有那么好用,却不会闹什么幺蛾子。

但是昨天,当我在zhcon下用vim打开一个中文文件时,却遇到了麻烦,表现为:文件打开后,屏幕一片黑,看不到任何内容,需要不停的滚屏,然后回翻才能看到文字,在耐着性子操作了一会儿之后,实在不能忍受之下,终于决定重新配置tty下的中文支持。

仔细的查找了一些资料,发觉问题可能是由于archlinux内核的framebuffer驱动已经不再是uvesa造成的,既然如此,似乎也只能暂时搁置zhcon了,于是决定重新安装fbterm和fcitx-fbterm。

 

做法是:

 

1-1.删除掉termcap自带的fbterm的terminfo:

sudo rm /usr/share/terminfo/f/fbterm

 

1-2.安装fbterm

执行

yaourt -S fbterm-git

在完成打包后不要马上按Y或N,而是执行:

cp  /tmp/yaourt-tmp-realasking/PKGDEST.7Kk/fbterm-git-20150509-3-x86_64.pkg.tar.xz ./

xz -d fbterm-git-20150509-3-x86_64.pkg.tar.xz

tar -xvf fbterm-git-20150509-3-x86_64.pkg.tar

sudo cp usr/share/terminfo/f/fbterm /usr/share/terminfo/f/fbterm

sudo cp usr/bin/fbterm /usr/bin/

sudo cp usr/share/man/man1/fbterm.1.gz /usr/share/man/man1/fbterm.1.gz

sudo setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm

sudo chmod u+s /usr/bin/fbterm

这么操作是为了偷懒,不用自己到处找patch,另外也避开了yaourt报告两个包有相同文件的错误。

 

1-3.安装fcitx-fbterm

git clone https://github.com/fcitx/fcitx-fbterm.git

cd fctix-fbterm

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/usr

make

sudo make install

 

似乎一切顺利?不是的,此时进入tty,打开fbterm会发现,字体很丑,而且输入时候选栏是乱码。实际上,字体丑,可以重新定义,乱码问题,则是fcitx若使用sogou拼音则需要使用sogou的panel造成的,重新配置环境如下:

 

2-1.配置fbterm

vi .fbtermrc

将font-names行设置为:

font-names=Liberation Mono,Noto Sans Mono CJK SC Bold,Droid Sans Fallback

这样设置下,现在的fbterm处理英文字体会优先读取Liberation Mono,而字间距和行间距也以它的设定为准,中文则优先读取Noto Sans Mono CJK SC Bold,其他字体读取Droid Sans Fallback,虽说效果不如zhcon,但也比以前的fbterm好不少了

输入法设置为:

input-method=fcitx-fbterm

为了vim分别定义gui和256色的tty环境的colorscheme,需要设定以下行:

TERM=fbterm

 

2-2.配置fcitx

yaourt -R fcitx-sogoupinyin

yaourt -S fcitx-sunpinyin fcitx-cloudpinyin

干掉搜狗拼音,使用孙拼音,并启用云拼音支持

孙拼音现在支持双拼了,这是我没有想到的,以前放弃它的一个重要原因就是它在fcitx下不能支持双拼,没想到几年后,发现双拼已经能被支持了,云拼音的设置在系统设置->输入法->附加组件设置->模块->云拼音里面,有两个云拼音来源可选,一个是google,一个是百度,如果google因为上网不够可选而不可用,换成另一个就可以了。

另外,在kde面板上,可以添加一个kimpanel,以实现输入法和桌面风格的统一,不过kimpanel一直不能自定义候选字颜色算是一个小小的怨念吧。

这样设置后,在tty下启动输入法就不会再乱码了。

 

2-3.vim的配色

if &term =="fbterm"

 

set t_Co=256

colo desertEx

endif

desertEx在tty下算是一个基本能看清字的色彩方案吧。

 

最后,还是传统的一个小技巧,让登录个人账户的时候自动启用fbterm

3-1.登录配置

[[ $(tty) == \/dev\/tty[0-9]* ]] && fbterm && echo && exit

这样,当且仅当登录的是tty时,会自动启动fbterm,且输入exit的时候会直接退出登录,而不需要打两次exit。

 

然后,一切都满意了,继续干活儿。