近日,wu qiong 兄弟问我上次的一篇文章中,控制台的字体是怎么设置的。我在这里详细说一下,其实使用 setfont 脚本就可以非常简单的完成这一效果。

前提条件是控制台已经启用了 framebuffer (启动的时候屏幕的顶端有个小企鹅)。接下来,调用的命令非常简单:
setfont -v 字体名称
就可以了。而各字体的名称,你可以在 /usr/share/kbd/consolefonts/ 下找到它们(Slackware 11.0)。Slackware 下,其实 /etc/rc.d/rc.font 文件就是专门定制控制台字体的配置文件(如果没有,可以找找 rc.font.new 等名称,更名即可)。在脚本里设置相应的字体,并将此文件设置为可运行(chmod +x /etc/rc.d/rc.font ),即可每次启动的时候自动设置成相应的字体。
本人推荐使用 term 系列字体,比如 ter-g16f.psf.gz 字体的效果就非常的好。截图中的字体则是 sc.fnt.gz 字体。下面是使用 sc.fnt.gz 字体查看 setfont 的 man 的效果(在这里可以查看大图)。

更详细的文档信息可以参考这里和这里(Debian 系统)。
最后,很多的兄弟不知道控制台下面如何截图,fbgrab 程序就可以做到。但是编译 fbgrab 需要 splint 工具(它是代码检查工具,通常也用不到)。在这里提供已经编译好的静态链接版本(Slackware 11.0 下编译,bzip2 压缩)。
从 LinuxToy 上面看见关于 Mp3blaster 的介绍,但是有很多兄弟反应他不支持中文 ID3。由于这个问题我以前也碰到过,而且是已经解决了的,下面说说我的解决的办法。
包路径下有个 src/id3parse.cc 文件,里面有一个函数如下:
/* tampers with 's' to replace non-printable chars with dots. */
void
convert_to_sane_string(char *s)
{
unsigned int
cnt = strlen(s),
i;
for (i = 0; i < cnt; i++)
{
if (s[i] < (char)32)
s[i] = '.';
}
}它的主要问题就是 strlen 不支持多字符集(比如中文),所以都将中文转换成了 '.'(点) 。而本身这个函数就起到一个过滤的功能,所以加上多字符集的判断(Multibyte String)我个人感觉没有必要,就直接注释掉了。
最后发现中文 ID3 就可以正常显示了(手气真的不错)。下面是一个效果图一张:

最后,提供我修改后的代码打包下载,感谢本部门的唐工同志提供 Linux 环境。
我个人使用 Linux 的时间也算是有一段时间了,但是我更多的时间还是 SSH 上服务器操作 Linux,而桌面机还是使用 Windows 系统(至于版权,就心照不宣了)。
前些天,唐工让我帮它配置下 KDE 桌面的字体环境。这可真的难到了我 - 对于我来说,就算我使用 X,我也是配置好了 (g)Vim 的字体就万事 OK 了。至于用什么桌面环境(KDE 还是 GNOME)或窗口管理器(FVWM 甚至是 TWM),我都没有仔细的考虑过(准确的说是懒得逐个尝试)。
但受人所托还是尽力得满足他的要求。我找到了我 N 年前的字体配置文件,顺便还有一个 FVWM 的配置(按照 Windows 的开发周期来说,这个配置已经是古董级的了)。
目前配置 X 的中文主要还是字体方面的配置。相信配置过 X 中文的兄弟一定会认识 SimSun 这个“经典”的 M$ 字体,不过由于 WenQuanYi 字体目前已经相当的完善了,所以建议还是使用自由的 WenQuanYi 字体。
说到字体的版权问题,想起我以前写的倡议书,而现在想想,似乎有点“学院派”,太理想化了。但是就目前来说,情况对比当时已经非常好了 - 使用 SimSun 的 Linux 用户越来越少了。似乎有点离题了,不好意思。
下面贴几张效果图,至于配置文件等我整理一下放出来吧。(g)Vim 里面的字体前面已经介绍过了,这里就不复述。




总之我的观点就是 X 还是能不折腾就不折腾吧,毕竟计算机是拿来用的。折腾过头,就是浪费时间了(这不是技术问题)。
我想没有一个厨子会将自己的菜刀上雕花吧。
- «
- 1
- 2
- 3
- 4
- 5
- »