2010年04月01日
_ [zsh] ZshでURLを自動でエスケープするurl-quote-magic
例えば以下のようなコマンド
% w3m http://www.google.com/search?hl=ja&q=zsh
を実行すると、
[1] 9470 % zsh: no matches found: http://www.google.com/search?hl=ja % [1] + exit 1 w3m http://www.google.com/search?hl=ja %
というような結果になってしまいがっかりすることになる。
.zshrcに以下のような記述
autoload -Uz url-quote-magic zle -N self-insert url-quote-magic
をしておいて、最初のコマンドを入力していくとエスケープすべき文字を打つと自動的に'\'が挿入され、
% w3m http://www.google.com/search\?hl\=ja\&q\=zsh
という入力になる。
素晴らしい。
端末上で、クリップボードの中身を中ボタンでペーストしたときも同様にエスケープしてくれる。
これまた素晴らしい。
エスケープする文字はデフォルトで'*?[]^(|)~#{}='となっているようで、'?'だけでいいよというときは、
zstyle ':url-quote-magic:*' url-metas '?'
みたいな感じにすればいいらしい。
2010年04月02日
_ [Ubuntu] Backport KMS video overlay
今日、Ubuntu Lucidをアップデートしたら、xserver-xorg-video-intelのChangelogに
xserver-xorg-video-intel (2:2.9.1-3ubuntu1) lucid; urgency=low
Backport KMS video overlay from upstream 2.10 (lp: #395932)
という記述があった。
KMSを無効にしないとXvが利用できないチップセットでも大丈夫になったのだろうかと、手許の865Gで試してみると、MPlayerでXvを利用しての再生が出来た。
Xのログを見ると、ちゃんと
(II) intel(0): Set up overlay video
なんて出てる。
もうKMSを無効にしなくても大丈夫っぽい。
素晴らしい。
2010年04月03日
_ [Ubuntu][Arch] cronでGnomeやXfceの壁紙を一定時間ごとに変える
以前、似たようなことをやったときはスクリプト内部でsleepさせていたのだが、一定時間ごとに何かをやらせるのであればcronでやればいいじゃんと思いやってみたのだが、すんなりいかなかった。
前回のスクリプトを、ループさせない形にして
% crontab -e
で
*/30 * * * * /hoge/fuga/change_bg.sh
みたいな感じで登録してみたのだが、
** (process:7365): CRITICAL **: Failed to init libxfconf: /usr/bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.
こんな感じのエラーがメールされてしまい、うまくいかない。
彷徨ってみると、cronから実行させたプロセスには環境変数DBUS_SESSION_BUS_ADDRESSが見えないせいで上手く動かないらしい。
なので、[ubuntu] Crontab scheduling not working in Jaunty - Ubuntu Forumsで紹介されていたDBUS_SESSION_BUS_ADDRESSを得る方法と、前回のスクリプトを合わせて、
#!/bin/sh ImageDirectory="/home/hoge/wallpaper" if [ `pgrep nautilus` ]; then DE="Gnome" cli_pid=`pgrep -u $LOGNAME -n nautilus` elif [ `pgrep Thunar` ]; then DE="Xfce" cli_pid=`pgrep -u $LOGNAME -n Thunar` else exit 0 fi eval `tr '\0' '\n' < /proc/$cli_pid/environ | grep '^DBUS_SESSION_BUS_ADDRESS='` if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then echo "Failed to find bus address" >&2 exit 1 fi export DBUS_SESSION_BUS_ADDRESS Image=`find $ImageDirectory -type f -iregex '.*\.\(bmp\|gif\|jpg\|png\)' | shuf | sort -R | head -1` if [ $DE = "Gnome" ]; then gconftool-2 --type string --set "/desktop/gnome/background/picture_filename" "$Image" elif [ $DE = "Xfce" ]; then xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s "$Image" fi
てな感じのスクリプトを作成してcronに登録してみたところ、上手く壁紙を変更することが出来たので喜ぶ。
2010年04月06日
_ [Ubuntu][Arch] ConkyのメールチェックをSSLで
以前は、ConkyからメールチェックをSSLにするためStunnelを利用していたのだが 、Lucidを新規インストールしたのを機に別の方法を試す。
利用するのはConky Hardcore PPA。
Ubuntuであればリポジトリを追加してconkyemailパッケージを入れる。
Arch LinuxであればAURがあるのでyaourt等で入れる。
入れたらconkyEmailというコマンドが使えるようになるので、コマンドラインから試してみる。
% conkyEmail --servertype=IMAP --servername=imap.googlemail.com --username=XXXX --password=XXXXXXXX --ssl --mailinfo=3 1 New 1. hoge@xxxxx.xxx: "Re: fuga fuga"
みたいな感じで表示される。
オプションの詳細は'conkyEmail -h'で。
上手く試せたら、.conkyrcのTEXT以下に
MAIL: ${color F09000}${execi 600 conkyEmail --servertype=IMAP --servername=imap.googlemail.com --username=XXXX --password=XXXXXXXX --ssl --mailinfo=3}${color}
みたいに書いてやればいい。
外部ファイルに設定を書くことも出来、
MAIL: ${color F09000}$[--servertype=IMAP --servername=imap.googlemail.com --username=XXXX --password=XXXXXXXX --ssl --mailinfo=3]${color}
というようなファイルを作成して、.conkyrcは
${execpi 600 conkyEmail --template=/path/to/templatefile}
みたいな感じで設定する。
このときexecpiにしないと${color}を処理してくれないので注意する。
Stunnelを利用するよりは簡単かも。
2010年04月07日
_ [Ubuntu] Ubuntuのメニューにアイコンを
メニューにアイコンを表示させたいときは「システム」→「設定」→「外観の設定」で「外観」のタブがあって、そこで設定できたと思ったのだが、最近のUbuntu(Gnome?)ではそれが出来なくなってる。

メニューにアイコンを表示させたくないらしい。
何故だ。
復活させてみる。
Ubuntu Tweakを入れて、「Gnomeの設定」から設定する。

端末などからgconf-editorを起動して/desktop/gnome/interface/menus_have_iconsにチェックを入れる。

コマンドラインからgconftool-2で設定する。
% gconftool-2 --type bool --set "/desktop/gnome/interface/menus_have_icons" true
キーの名前が分かっているならこれが一番手っ取り早い。
補完が効いたらいいのにな。
2010年04月09日
_ [Arch] Thunarで汚いアイコン
Thunarで、いくつかのアイコンが汚くなってしまった。

最近のアップデートでgnome-icon-themeが2.30に上がったことが原因なんだそうな。
Arch Linux Forums / [Solution/Bug] Thunar - Ugly default icons
デフォルトで表示されるアイコンが見つけられなくなったためらしい。
最後のほうに投稿されているパッチを当ててThunarをリビルドしてみたところ、アイコンテーマにあったもので表示されるようになった。

2010年04月13日
_ [Ubuntu] Ubuntu LucidでのSun Java
Ubuntu Lucidでは普通にJavaを入れるとOpenJDKが入る。
OpenJDKだとV2Cのレス欄のスクロールに難があるのでSunのJavaを入れようとするが、sun-java6-jdkパッケージが見あたらない。
Karmicまではmultiverseに入っていたsun-java6で始まるパッケージが、Lucidから「Ubuntu Partner Repository」に入るようになったらしい。
ので入れる。
「システム」→「システム管理」→「ソフトウェア・ソース」で「他のソフトウェア」タブから「Ubuntu Partner Repository」を有効にする。

下にある「ソースコード」を有効にするかどうかは適当に。
後はお好みに合わせてsun-java6で始まるパッケージを入れる。
入れたら、/usr/bin/javaがSunのJavaを使うようにする。
% sudo update-alternatives --config java [sudo] password for hoge: There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path 優 Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode 1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode 2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode Press enter to keep the current choice[*], or type selection number:
'2'を選んでおしまい。
2010年04月14日
_ [Ubuntu][Atok] LucidのデフォルトテーマとAtok X3
Ubuntu LcuidのデフォルトテーマであるAmbianceはなかなか気に入っているのだが、Atok X3を使っていると少々困ることがある。
頻度の高い言葉を入力していると出てくる省入力候補ウィンドウ。
Ambianceテーマだと非常に読みにくい。

これを回避するには、他のテーマに変更するか、Ambianceテーマをちょっと弄る。
「外観の設定」→「テーマ」の「カスタマイズ」ダイアログで、「色」タブにある「ツールチップ」の背景色と文字色を

こんな感じの見やすいものに変更する。
んで、ログインし直すと、

見やすくなる。
ツールチップの背景色が省入力候補ウィンドウの背景に適用されるようなのだが、文字色はまた別のところが影響するっぽい?
よく分からん。
2010年04月16日
_ [Arch] debパッケージを展開する
debパッケージを展開する必要があったので彷徨ってみると、dpkg-debというコマンドを使えばいいらしい。
んが、Arch LinuxだとそんなDebianなコマンドは普通は入っていない。
もうちょっと彷徨ってみると、How to extract RPM or DEB packagesというずばりなページを発見。
debパッケージはarアーカイブというものらしく、arコマンドで展開するらしいのでやってみると、
% ar vx hoge.deb x - debian-binary x - control.tar.gz x - data.tar.gz
3つのファイルが出来上がる。
実際のデータはdata.tar.gzに固められており、これはおなじみの形なので、
% tar xvf data.tar.gz
で展開できる。
最後のほうにあるように、欲しいデータが入っているファイルの名前はdata.tar.gzと決まっているようなので、
% ar p hoge.deb data.tar.gz | tar zx
で一発展開できる。
覚えておこう。
2010年04月20日
_ [Ubuntu] Nautilusでffmpegthumbnailerを使う
XubuntuからUbuntuに移ったのでファイルマネージャーはNautilusになった。
概ね不満はないのだが、動画のサムネイル作りに結構時間がかかっているような気がする。
デフォルトではサムネイルの作成をtotem-video-thumbnailerが担っているようなのだが、こいつをXubuntuのThunarでも使っていた、さくさく作ってくれていた記憶のあるffmpegthumbnailerに変えてみる。
ffmpegthumbnailerはデフォルトではインストールされないのでSynaptic等で入れておく。
例えばMPEG動画は、設定エディタで/desktop/gnome/thumbnailers/video@mpeg/commandというキーの値を見てみると
/usr/bin/totem-video-thumbnailer -s %s %u %o
となっており、こいつを
/usr/bin/ffmpegthumbnailer -s %s -i %i -o %o -c png -f -t 10
に変えてやればMPEG動画についてはffmpegthumbnailerを使ってくれるようになる。
動画の種類は結構あるので、
#!/bin/sh VIDEO='3gpp dv fli flv mp2t mp4 mp4v-es mpeg msvideo ogg quicktime vivo vnd.divx vnd.rn-realvideo vnd.vivo x-anim x-avi x-flc x-fli x-flic x-flv x-m4v x-matroska x-mpeg x-ms-asf x-ms-asx x-ms-wm x-ms-wmv x-ms-wmx x-ms-wvx x-msvideo x-nsv x-ogm@ogg x-theora@ogg x-totem-stream' COMMAND='/usr/bin/ffmpegthumbnailer -s %s -i %i -o %o -c png -f -t 10' for i in $VIDEO; do gconftool-2 --type string --set "/desktop/gnome/thumbnailers/video@$i/command" "$COMMAND"; gconftool-2 --type boolean --set "/desktop/gnome/thumbnailers/video@$i/enable" 'true'; done
というシェルスクリプトを作った。
これを走らせて、ログインし直せば動画ファイルについてはffmpegthumbnailerがサムネイルを作ってくれるようになる。
2010年04月22日
_ [Ubuntu][Arch] 一括リネームツール色々
Thunarには一括リネームツールが標準で付いており、かなり重宝した。
Nautilusにはそんなツールは無さげなので探してみた。
GPRename

大文字小文字変換、挿入、削除、置換、番号付けと一通りのことが出来るシンプルなツール。
あまり特殊なことは出来なさそうだが、ほとんどのケースではこれで事足りるような気がする。
Ubuntuではuniverseコンポーネントに、Arch Linuxではcommunityリポジトリに入っているので導入も楽ちん。
pyRenamer

こちらも一通りのことが可能だが、日付を挿入できたり

結構柔軟性がある。
それに加え、画像ファイルのメタタグから幅や高さ、撮影日などが挿入でき、音楽ファイルではID3タグなどから楽曲情報などが挿入できるのだが、日本語が含まれていると

ちょっと残念なことになったりもする。
デジカメで撮った写真の一括リネームなどには良いかもしれない。
Ubuntuではuniverseコンポーネントに入っているので導入は楽ちんなのだが、Arch LinuxではAURに登録されているもののみのようなのでちょっと一手間。
Metamorphose2

上に上げた二つのツールで出来ることは多分全て可能で、その上でかなり凝ったことが出来る。
挿入や置換などの各種ツール

を組み合わせることが出来る。
例えば、とあるMP3ファイルを

<アーティスト名>/<アルバム名>/とディレクトリを作ってそこにファイルを移動し、

<番号> - <曲タイトル>.mp3というファイル名にする、

といったことが簡単にできる。
それに何より、このツールで一番感心したのがリネーム操作の取消が出来ること。
失敗したぁ、というときでもUndoボタン一発で元に戻せる。
Ubuntuではパッケージが用意されているので、落としてpython-wxgtkなどの必要なライブラリを入れてからインストールする必要があり、Arch LinuxではAURには古いバージョンしかないので、ソースを落としてゴニョゴニョする必要があったりと導入はちょっと面倒だが、試す価値はあると思う。
2010年04月28日
_ [Ubuntu] Lucid用Shift JIS対応unzipで文字化け
試してみたら追加できてしまったLucid向けのUbuntu-jaリポジトリからShift JIS対応のunzipを入れた。
バージョンは6.0-2~5.52~ja3。
喜んで解凍してみたのだが、何故か文字化けする。
% unzip KouzanMouhituFont.zip Archive: KouzanMouhituFont.zip inflating: tRMtHg.ttf % ls KouzanMouhituFont.zip ?t?R?M?t?H???g.ttf
彷徨うと、SJISのファイル名・パスワード対応 unzip と lha (Fedora 9)を発見。
LANGがja_JP.UTF-8ではなく、ja_JP.utf8だとなるらしい。
手許のLucidでは、
% locale LANG=ja_JP.utf8 LC_CTYPE="ja_JP.utf8" LC_NUMERIC="ja_JP.utf8" LC_TIME="ja_JP.utf8" LC_COLLATE="ja_JP.utf8" LC_MONETARY="ja_JP.utf8" LC_MESSAGES="ja_JP.utf8" LC_PAPER="ja_JP.utf8" LC_NAME="ja_JP.utf8" LC_ADDRESS="ja_JP.utf8" LC_TELEPHONE="ja_JP.utf8" LC_MEASUREMENT="ja_JP.utf8" LC_IDENTIFICATION="ja_JP.utf8" LC_ALL=
確かにja_JP.utf8だ。
先ほどのZipファイルで試してみる。
% LANG=ja_JP.UTF-8 unzip KouzanMouhituFont.zip Archive: KouzanMouhituFont.zip inflating: 衡山毛筆フォント.ttf
出来た。
unzipパッケージのソースを落としてパッチを眺めてみると、
if ( (ctype_len >= 5 ) && (strncmp(ctype + ctype_len -5, "UTF-8", 5) == 0) ) {
となっており、UTF-8は受け付けるが、utf8はスルーされているっぽい。
zshで
alias unzip="LANG=ja_JP.UTF-8 unzip"
として凌ぐ。
多分そのうち修正されると思う。
2010年04月29日
_ [Ubuntu][Arch] VimライクなPDFビューワーapvlv
Ubuntuソフトウェアセンターをウロウロしていたら見つけた。
apvlv - Project Hosting on Google Code

Vimキーバインドで操作できるPDFビューワー。
'hjkl'での移動はもちろん、'o'でファイルダイアログが開いたり、'q'で終了できたりする。
':'でコマンドラインに移るとウィンドウが広がっていくというお茶目な動作をするものの、なかなか面白い。
popplerライブラリを利用しているようなので、poppler-dataが入っていれば日本語も概ね大丈夫。
設定は~/.apvlvにガシガシと書いていくらしい。

_ おっ [スクリプトを使わせていただきました。便利なものをありがとうございます。]
_ yasu [お役に立てて何よりです。]