2009年2月24日火曜日

ubuntuの端末をmltermにする

 wmを icewm に変えてから日々メモリ節約に走る日々。刻むぜぇ〜ちょお刻むぜぇ〜w
 今回は惰性で使ってきた gnome-terminal を mltermに変えることにしました。
 gnome-terminalは20MB。対してmltermは5Mしかメモリを消費しません。なんと四分の一!!
 さらにスクロール速度も速く軽快に動作します。
 Unicodeの「●▲■」なども正常な幅で表示されます。(gnome-terminalでもできるがいまいち)


インストール

sudo apt-get install mlterm mlterm-tools
後はscimを使っているなら、mlterm-im-scim を。uimなら mlterm-im-uim パッケージを入れることで日本語変換がインライン入力で出来るようになります。

設定


 一応 Ctrl + 右クリックで GUIでも簡易的に編集することが出来ます。



 ですが細かい設定は ~/.mlterm/ 以下の各ファイルを編集することで行ないます。メインは、~/.mlterm/main です。以下設定例。
~/.mlterm/main の設定例。

# -*- mode: conf-unix -*-
# mlterm mail configuration
# last updated : 2009/02/24 14:02:41 JST

# 端末縦横サイズ(文字)
geometry=80x27

#ーーーーー文字関係ーーーーーーー
receive_string_via_ucs = true
# Unicode記号文字幅を半角2文字にする。
col_size_of_width_a = 2
# アンチエイリアス(Xft)時、JISX0208 の Unicode 変換に CP932 の変換テーブルを使う
use_cp932_ucs_for_xft=true
# UNICODE を適当な文字集合にmapして、UNICODE フォントを使わずに表示する
not_use_unicode_font=false
# すべての文字を UNICODE フォントだけを使って表示する
only_use_unicode_font=false
# US_ASCII の表示には、必ず ISO8859-1 フォントを使用する
iso88591_font_for_usascii=false
# DEC_SPECIAL フォントの罫線文字のグリフを動的に合成
compose_dec_special_font=false
# インプッドメソッドの設定
input_method = scim


#ーーーースクロールバーーーーー
# scrollbar_mode = right
scrollbar_mode = none
# 使いたいスクロールバーの名前
# (*simple* / sample / sample2 / next / motif / athena / mozmodern)
# scrollbar_view_name=sample2

#ーーーー色設定ーーーーーーーー
# 端末画面の前景色
# fg_color=white
# 端末画面の背景色
bg_color=#F6F0E6
# スクロールバーの前景色
# sb_fg_color=white
# スクロールバーの背景色
# sb_bg_color=black
# 紙にする画像ファイルのパス
# wall_picture
# Focus から外れたときの前景/背景色の Fade 率(百分率)
#fade_ratio=90
# 背景画像(透過処理含む)の輝度調整(百分率)
#brightness=80
"--------------------

●フォントの設定
 フォントは ~/.mlterm/aafont に。ビットマップフォントは、~/.mlterm/font に記述します。
 ~/.mlterm/aafont の設定例。
ISO10646_UCS4_1 = IPAMonaGothic-iso10646-1:100;
ISO10646_UCS4_1_BIWIDTH = IPAMonaGothic-iso10646-1:100;



色がドぎつい

 デフォルトでは色設定が原色系で目に痛いので、ubuntu の gnome-terminal のカラーテーマのTangoのような柔らかい色設定に変更します。
 ~/.mlterm/color に以下を記述。
black=#2e3436
red=#cc0000
green=#4e9a06
yellow=#c4a000
blue=#3465a4
magenta=#75507b
cyan=#06989a
white=#d3d7cf
hl_black=#555753
hl_red=#ef2929
hl_green=#8ae234
hl_yellow=#fce94f
hl_blue=#729fcf
hl_magenta=#ad7fa8
hl_cyan=#34e2e2
hl_white=#eeeeec


まとめ


 スクロールバーは表示していません。screenを使っているので。
 起動時に mlterm -j genuine として、デーモンモードで起動しています。
 ランチャーなどからは、mlclient を起動するようにしています。
 以上でgnome端末とまったく違和感のない同じ見た目までmltermを持っていくことが出来ました。
 メモリの使用量が四分の一になって、しかも軽快に動くとは素晴らしい。

 実はかなり前からmltermは入れていたんですが、ずるずるとgnome端末を使い続けて今日まできました。それがicewmを入れてから省メモリに目覚め、mltermを本格的に使ってみると、あらいいじゃな〜いとw
 こんなことならもっと早くに移行していればorz

参考

2009年2月22日日曜日

PPAに mlterm 256色対応版をアップしました

 PPA に多言語対応端末エミュレータ mlterm の 256色 対応版をアップしました。
 よかったらどうぞ。

● https://launchpad.net/~yama-natuki/+archive/ppa

2009年2月19日木曜日

icewm のいろいろな テーマ

 icewm は 最初から theme が豊富なのも良いところです。
sudo apt-get install icewm-themes
とすれば、最初からたくさんのテーマがインストールされます。
 それ以外にもこちらなどからもテーマがダウンロード出来ます。
 ダウンロードしてきたテーマは、~/.icewm/themes 以下に展開すればOK。

 いくつか私が気に入っているテーマを紹介します。
 基本的にダークなテーマは見にくいので嫌いです。奇を衒ったものも好きではありませんので、かなり偏った紹介なのですけどねw



●IceBuntu

  これでしょう。基本ですw
  赤茶けたアフリカの大地を彷彿とさせる(ry



●BubblyBlue
  ばぶりー



●eiskristall
  落ち着いた色調はいい・・・



●lice
  これもシンプルでクール。



●PlastiCrack
  プラスチックスタイル



●SmoothIceHybrid
  どこかで見たような。

2009年2月18日水曜日

icewm に音量ボタンを追加する

 タスクトレイに常駐しているスピーカーのアイコンのあれです。
 当初 AbsVolumeを使用していたのですが、常駐型ではないため、起動にワンテンポ遅れる感じでした。
 そこで今回 gvtray に変更しました。

インストール

sudo apt-get install python-alsaaudio python-gnome2-extras
wget http://gtk-tray-utils.googlecode.com/svn/trunk/gvtray-1.1.tar.gz
tar zxvf gvtray-1.1.tar.gz
cd gvtray-1.1
sudo mkdir /usr/share/gvtray
sudo cp gvtray /usr/bin
sudo cp gvtray.py /usr/share/gvtray/
sudo cp -r gvtray_about/ /usr/share/gvtray/gvtray_about


起動するとタスクトレイに数字のアイコンが追加されます。
クリックするとなじみの音量調節バーが。



 後は ~/.icewm/startup に書いておけば起動時に自動的に起動されます。

2009年2月15日日曜日

PPAにicewmをアップしました

hardyの icewm では、タスクトレイの幅がおかしいというバグがあったので、パッチを当てたものを PPA にアップしました。
 初 deb パッケージ作成。初 PPA アップ。自信がないw
 自分用ですが、よかったらどうぞ。
https://launchpad.net/~yama-natuki/+archive/ppa

2009年2月11日水曜日

Emacsでanthy.elのキーバインド変更

mizunoさんところで ATOKっぽいローマ字バインドが欲しがっているみたいなのでやっってみた。
 以下を ~/.emacs に追記。

;anthy.el ローマ字変換テーブル再定義&キーバインド再定義
(setq anthy-rkmap-keybind
'(
;; \C-p
(("hiragana" . 16) . "katakana")
(("katakana" . 16) . "hiragana")
;; q
(("hiragana" . 113) . "katakana")
(("katakana" . 113) . "hiragana")
;; \C-j
(("alphabet" . 10) . "hiragana")
(("walphabet" . 10) . "hiragana")
;; \C-q
(("hiragana" . 17) . "hankaku_kana")
(("hankaku_kana" . 17) . "hiragana")
)
)


;;Anthyキーバインド設定
(setq anthy-wide-space " ")
(anthy-change-hiragana-map "la" "ぁ")
(anthy-change-hiragana-map "li" "ぃ")
(anthy-change-hiragana-map "lu" "ぅ")
(anthy-change-hiragana-map "le" "ぇ")
(anthy-change-hiragana-map "lo" "ぉ")
(anthy-change-hiragana-map "ltu" "っ")
(anthy-change-hiragana-map "zz" "っ")
(anthy-change-hiragana-map "lya" "ゃ")
(anthy-change-hiragana-map "lyu" "ゅ")
(anthy-change-hiragana-map "lyo" "ょ")
(anthy-change-hiragana-map "lwa" "ゎ")

な感じで。
とはいえSKKを使うようになってからAnthyは使っていないので突っこまれても困るけど。
anthy.el自身を直接いじるのはスマートではないのでこんな感じでどーでせう。

2009年2月10日火曜日

Ubuntuでプロセス監視ツール

 polipo がよく落ちるのでその度にsshしてpolipoを再起動とかいい加減しんどくなってきたので、プロセスを監視し、落ちていたら自動的に再起動させるツールを作ってみました。
 いわゆるデーモン監視ツールですね。ちゃんとした、daemontool とか、monit とか、鯖向けの本格的なツールはあるんですが、個人使用のPCで外向けに本格的なサーバを運用しているわけでもないので、そこまでの本格的な道具が必要なかったり、リソース食いすぎで嫌だったりするわけで自作することにしました。
 自作といっても簡単です。シェルスクリプトで while do で無限ループで走らせ、その中でプロセスが起動しているかいないかチェックし、落ちでいたら再起動させるだけです。
 基本形はこんな感じで。
while true
do
ここに処理を書く。
sleep 30
done
 sleep は30秒としていますが、お好みで。

 今回は、/etc/init.d/polipo の起動スクリプトの中に、この作ったシェルスクリプトを埋め込んで一緒に起動させることにします。polipoが起動したら監視ツールも一緒に起動し、polipoが死んだら自動的に再起動という按配ですね。

#!/bin/sh
# last updated : 2009/02/06 00:20:41 JST
# $Id: polipo_check.sh,v 1.6 2009/02/05 15:21:06 yama Exp $
# プロセス監視ツール。
# polipo が動いているかどうかをチェックし、起動していなかったら、再起動させる。
#

DEMON="polipo"

# 多重起動防止処理。
SCRIPT_PID="/var/run/polipo_check.pid"
if [ -f $SCRIPT_PID ]; then
PID=`cat $SCRIPT_PID `
if (ps -p ${PID} -o pid= >/dev/null); then
exit
fi
fi
echo $$ > $SCRIPT_PID

# 監視無限ループ処理。
while true
do
ps -C ${DEMON} -o comm= > /dev/null || /etc/init.d/${DEMON} restart
sleep 30
done

# PIDファイルの削除。
rm $SCRIPT_PID

/etc/init.d/polipo 内にスクリプトを埋め込みますので、多重に自身を起動しないように防止処理を入れています。
 後はpsコマンドで定期的に監視し、落ちていたら/etc/init.d/polip restart を実行するようにさせています。

 埋め込む位置は、
case "$1" in
start)
echo -n "Starting $DESC: "
$PPCTL start
echo "$NAME."
nice /usr/local/bin/polipo_check.sh &
;;
stop)
echo -n "Stopping $DESC: "
$PPCTL stop
echo "$NAME."
killall polipo_check.sh
;;
#reload)
な感じで。赤字が追加部分です。ファイル名をpolipo_check.shとして、/usr/local/bin/に入れてあります。
 nice コマンドでプロセスの優先度を下げています。
 これでメモリ消費量も少なく、リソースも食わない軽量な監視ツールが出来上がりました。