标签: tools

监控磁盘读写状况

有时候,我们经常会碰到这样的情形:没有运行任何程序,磁盘却不断执行读写动作,硬盘指示灯常亮,各种操作迟缓甚至鼠标都不能动了。碰到这种状况往往会感到束手无策,并且就纳闷了:究竟是什么程序在读写我的磁盘呢?

这个时候,就到iotop登场的时候了!

Linux下Mp3乱码问题的处理

在Linux下播放mp3的时候,经常碰到mp3的信息显示为乱码的问题。这是因为我们能找到的mp3文件标签大部分都是以GBK/GB18030编码的,而绝大多数的Linux(包括Linux系的手机系统)默认的编码是utf8,两者编码不同就会导致乱码问题的出现。

一个很好的解决方法就是安装Mutagen这个软件,用它来把mp3标签的编码统一转换为utf8。在Gentoo下可以通过以下命令安装:

emerge -av mutagen

装完后就可以通过以下命令来把目录下的所有mp3文件批量转换了:

cd /mnt/sda5/music   #转到音乐文件目录
find . -iname "*.mp3" -execdir mid3iconv -e gbk --remove-v1 {} \;
  • -e gbk 参数是代表把 GBK 编码的标签转换为 Unicode 编码,本身是 Unicode 编码的就不转换。如果需要转换其他编码的文件可以自行修改,如改为 Big5。
  • 不过它会同时用 Unicode 编码填满 D3v1, ID3v2, APEv2 标签,但是 ID3v1 又不支持中文的 Unicode 编码,所以转换后的 ID3v1 标签全是问号。所以最好加上 –remove-v1 参数,转换后删除 ID3v1 标签。

让urxvt支持256色

urxvt默认是不支持256色的,所以在urxvt里使作vim的时候,那些漂亮的配色方案就没有效果了。幸好,urxvt要加入256色的支持很简单,执行:

echo "x11-terms/rxvt-unicode 256-color" >> /etc/portage/package.use
emerge -av rxvt-unicode

要vim也支持256色,需要在~/.vimrc里加入:

set t_Co=256

最终效果:
urxvt with 256 color by hosanna_cn, on Flickr

为SCIM制作输入法

在Linux下我一直都是用SCIM输入平台下的五笔输入法,最近用的有点不太爽了,因为默认的五笔输入法只有GB2312字符集,很多字都打不出来,比如“囧”和一些粤语聊天中经常用到的字(“冇”……“嘢”等),所以就打算弄一个如Windows下极点五笔那样的支持GBK字符集的输入法。

首先,找一个现成的码表文件研究一下它的格式到底是怎么样的,SCIM的码表文件可以在/usr/share/scim/tables这个文件夹下面找到,先拿一个五笔的码表来看一下吧:

mkdir ~/wb-tables
cd ~/wb-tables
cp /usr/share/scim/tables/Wubi.bin ./

SCIM的码表文件是一个bin文件,还不可以直接编辑,所以要把它转换成文本文件。SCIM提供了码表制作的工具scim-make-table可以完成这个工作:

scim-make-table Wubi.bin -o Wubi.txt

现在可以使用文件编辑器打开Wubi.txt来看一下这码表文件到底是怎么组成的,一个码表文件大概是这样的:

SCIM_Generic_Table_Phrase_Library_TEXT
VERSION_1_0
### Begin Table definition.
BEGIN_DEFINITION
UUID = c584dfc8-c088-4908-9802-80eba0fb6ad9
SERIAL_NUMBER = 20040227
ICON = /usr/share/scim/icons/Wubi.png
NAME = Wubi
NAME.zh_CN = 五笔字型
NAME.zh_HK = 五筆字型
NAME.zh_TW = 五筆字型
LANGUAGES = zh_CN,zh_SG,zh_TW,zh_HK
### AUTHOR =
STATUS_PROMPT = 中
KEYBOARD_LAYOUT = US_Default
VALID_INPUT_CHARS = abcdefghijklmnopqrstuvwxy
### KEY_END_CHARS =
SINGLE_WILDCARD_CHAR = z
MULTI_WILDCARD_CHAR = *
SPLIT_KEYS = apostrophe
COMMIT_KEYS = space
FORWARD_KEYS = Return
SELECT_KEYS = 1,2,3,4,5,6,7,8,9
PAGE_UP_KEYS = Page_Up,comma,minus
PAGE_DOWN_KEYS = Page_Down,period,equal
MODE_SWITCH_KEYS = Shift+KeyRelease+Shift_L,Shift+KeyRelease+Shift_R
FULL_WIDTH_PUNCT_KEYS = Control+period
FULL_WIDTH_LETTER_KEYS = Shift+space
MAX_KEY_LENGTH = 4
SHOW_KEY_PROMPT = FALSE
AUTO_SELECT = TRUE
AUTO_WILDCARD = TRUE
AUTO_COMMIT = TRUE
AUTO_SPLIT = FALSE
AUTO_FILL = FALSE
DISCARD_INVALID_KEY = TRUE
DYNAMIC_ADJUST = FALSE
ALWAYS_SHOW_LOOKUP = TRUE
USE_FULL_WIDTH_PUNCT = TRUE
DEF_FULL_WIDTH_PUNCT = TRUE
USE_FULL_WIDTH_LETTER = TRUE
DEF_FULL_WIDTH_LETTER = FALSE
BEGIN_CHAR_PROMPTS_DEFINITION
a 工
b 子
c 又
d 大
e 月
f 土
g 王
h 目
i 水
j 日
k 口
l 田
m 山
n 已
o 火
p 之
q 金
r 白
s 木
t 禾
u 立
v 女
w 人
x 纟
y 言
END_CHAR_PROMPTS_DEFINITION
END_DEFINITION

### Begin Table data.
BEGIN_TABLE
a 工 戈
aa 式 戒
……
……
END_TABLE

由这个文件可以看到,SCIM的码表文件主要是由描述部分(BEGIN_DEFINITION……END_DEFINITION)和码表部分(BEGIN_TABLE……END_TABLE)两大块组成的。描述部分主要是输入法的一些基本的设置,如输入法的名字、输入法的图标等;码表部分就是各字、词对应的输入码,也是我们要修改的主要部分。

自己重新做一个码表这么艰难并重复制作轮子的事情当然不会做,只要在一个现成的码表上面添加上我们需要的部分就可以了。码表文件的获得方法有很多,可以使 用工具软件把windows下面的输入法码表转换成文本文件再拿来用就可以了。我使用的是for VIMIM的极点五笔字库,可以在这里下载。把下载的码表内容替换掉Wubi.txt文件中码表部分的内容就可以了。当然也可顺便改一下输入法的名字和图标,贴上自己的标志。接下来就是把Wubi.txt转换成SCIM的码表文件就可以了,还是使用scim-make-table:

scim-make-table Wubi.txt -b -o NWubi.bin

最后把生成的码表文件复制到/usr/share/scim/tables,如果有修改输入法的图标文件,把图标文件(48x48大小png图片)也复制到/usr/share/scim/icons下面,重新启动输入法,就可以在可用码表里选择启用自己生成的输入法了。

sudo cp NWubi.bin /usr/share/scim/tables
sudo cp NWubi.png usr/share/scim/icons