フレームを半透明にする
Emacs23であれば、Window Managerが半透明に対応していれば、フレームを半透明にする事が可能です。
Linuxだと、Compiz?Beryl?あたり、もしくは、Window Manager(というか、デスクトップ環境?)にXfce4を使えば可能かと思います。
# Xfce4上で試しました。
たぶん、Mac OS Xや、Windows(2000以上)でも、NEWSファイルを見る限りだと対応している風に書いてあるので、できると思います。
# 環境無いので試してません。
フレームのalphaパラメータに0から100、もしくは、0から1の間の値を渡せば良いようです。
既に誰かが作ってる気もしますが、とりあえず、以下のような関数をでっちあげてみました。
(defun my-opacity-change (action) (let* ((op (frame-parameter (selected-frame) 'alpha)) val) (unless op (setq op 100)) (when (setq val (cond ((eq action 'up) (if (> op 90) 100 (+ op 10))) ((eq action 'down) (if (> 10 op) 10 (- op 10))) ((eq action 'clear) 100) ((numberp action) action) (t nil))) (set-frame-parameter (selected-frame) 'alpha val))))
関数my-opacity-changeには、0から100の値、もしくは、up、down, clearを渡します。
数値は0に近ければ近いほど、透明に近づきます。
upは、より不透過に近づけさせます(透過ではなくなる)。
downは、より透過に近づけさせます。
clearは、半透明にするをやめます。
また、この関数は、現在選択中のフレームにしか効果を及ぼしません。
(my-opacity-change 80) ; 不透過度を80とする (my-opacity-change 'up) ; 不透過度を10上昇させる (my-opacity-change 'down) ; 不透過度を10下降させる (my-opacity-change 'clear) ; 半透明にするをやめる
なお、NEWSファイルによると、透明度は、変数frame-alpha-lower-limitにより、下限値が決められているようです。
# ユーザが操作を失う事がないようにするためだそうです。
この値をいじって、alphaの値を10、もしくは,それ以下にするのやめといた方が良いと思います。本当に分かんなくなるので。
そんなこんなで。
更新時刻
- 2009/08/09/20:35