RhythmboxでSJISのmp3ファイルを扱う

http://fedorakenken.at-ninja.jp/node39.html


mp3ファイルのID3タグ
Windowsでは基本的にSJIS
Linuxでは基本的にUTF-8
RhythmboxでもUTF-8しか扱えない。


無理やりSJISの文字化けを解消しようと言う試み。
やってることはRhythmboxのデータベース(xmlファイル)を書き換えてるだけ。

cd ~/.gnome2/rhythmbox/
gvim convert_rhythmdb.pl

以下convert_rhythmdb.plの中身
(なんかすごく纏められそうだけど面倒だから放置)
適当に縮めてみた。(2009/01/05)

#! /usr/bin/perl

use Encode;

while (<>)
{
	if (/<artist>/ || /title/ || /genre/ || /album/)
	{
		# Shift_JISの文字参照をバイナリに戻す
		 s/\&\#x([0-9A-Fa-f]{2});/pack 'C', hex($1)/ge;
		# UTF-8に変換
		$artist_utf = decode('Shift_JIS', $_);
		print $artist_utf;
	}
	#他の行は変換せずに表示
	else
	{
		print;
	}
}

ついでにこっちも作る

gvim convert.sh

以下convert.shファイルの中身
(一応バックアップはとっとこう。)

cp rhythmdb.xml rhythmdb.xml.org
./convert_rhythmdb.pl < rhythmdb.xml.org > rhythmdb.xml

前準備はここまで


・Rhythmboxにファイルを追加する(この時点では文字化けしてる)
・Rhythmboxを終了
・convert.shを実行([Wide character in print...]とかいうエラー(warning?)が出るがスルー)
・Rhythmboxを起動
で文字化けが直ってる。
ファイルを追加する度にこの作業をする。
少し面倒だけどそう頻繁にすることじゃないからよしとしよう。

コマンドラインからGnomeのゴミ箱を使う

http://d.hatena.ne.jp/f99aq/20081013/1223882323
http://ubulog.blogspot.com/2008/10/ubuntu.html


rmは危険ということでtrash-cliを導入
下記サイトからダウンロード
http://code.google.com/p/trash-cli/

ダウンロードしたファイル名を[trash-cli-0.1.10.r55]とすると
ダウンロードしたフォルダに移動して

tar xvf trash-cli-0.1.10.r55.tar.gz
cd trash-cli-0.1.10.r55/
sudo python setup.py install

でインストール完了
(Ubuntu 8.10 以降では公式のリポジトリに入るらしい)


使い方

trash <filename>	# filenameをゴミ箱へ移動
list-trash		# ゴミ箱の中身を表示
restore-trash		# ゴミ箱からファイルを復活させる(番号選択)
empty-trash		# ゴミ箱を空にする
empty-trash <day>	# 指定した日数以前のファイルをゴミ箱から削除


ついでに

~/.bashrc

に下記を追加

alias rm='trash'

これでrmコマンドでゴミ箱にファイルが移る。(i,f,r,dオプションはtrash-cliでは無視される)

kill系コマンド

http://linuxos.blog102.fc2.com/blog-entry-46.html
http://www.wakhok.ac.jp/~maruyama/Super/section2.4.5.html
http://d.hatena.ne.jp/lurker/20061102/1162427170

ps -A	#全プロセス
ps -x	#現在のユーザの保有してるプロセス

プロセス一覧を表示。pidを知るのに使用

pgrep -f <name> 

プロセス一覧の中からnameに一致するもののpidを(改行区切りで)表示

  • lオプションでプロセス名も表示
kill <pid>
kill -<signal> <pid>

signalは指定しないと[15](SIGTERM, このシグナルを捕らえも無視もしないプロセスを強制終了)
[15]で終了しない場合は[9](kill, 強制終了)

pkill -f <name>

プロセス名がnameのプロセスを強制終了

xkill

killのGUIバージョン
実行後、マウスでクリックしたウインドウが強制終了