Login
Immutable PageDiscussionInfoAttachments
clear/note/2012-05

MMA

2012年5月

05/01

PeekMessageとXPeekEventは似てるけど違う

Windows APIのPeekMessage()はメッセージがない場合ただちに返ってくるが、XlibのXPeekEvent()はイベントが来るまでブロックするらしい。XlibでPeekMessage()相当のことをやりたい時はXPending()+XNextEvent()でできそう。

for (;;) {
    if (XPending(dpy)) {
        XNextEvent(dpy, &ev);
        /* ... */
    } else {
        /* イベントがないときの処理 */
    }
}

05/03

画面の消灯を防ぐ

xset s off # だけでは足りない
xset dpms 0 0 0

05/07

タイル配置について最近思うこと

画面解像度がある程度大きく、なおかつ一画面に表示しているウィンドウ数が少ない場合、素直にタイル配置すると見づらくなる場合があるような気がする。特に端末エミュレータやテキストエディタなど文字が上から下に伸びていくタイプのものは、ウィンドウが縦に長いと視線の上下移動が必要になって疲れる、気がする。

ということで、スペースの有効活用という原則には明らかに反するが、こんな感じのタイル配置があってもいいのではないだろうか。(ウィンドウ間に隙間が空いてるのは手動で並べたため)

こんな感じ

追記:

さらに追記:

だいたいこんな感じ。

nmaster=1

nmaster>=2

05/10 さらにさらに追記: 上記のようなことを実現するパッチを書いた

05/09

メモリを大量に食っているプロセスを確認

USER,PID,SIZE,RSS,COMMAND。SIZEでソート

ps aux | awk '{ print $1,$2,$5,$6,$11 }' | sort -k3,3n | tail

05/10

tmuxのstatus line

status-{left,right}に指定した文字列はstrftime()に渡される。よってdateコマンドの書式がそのまま使える(#(date)と自分で呼び出す必要がない)。manに書いてあった。

FullSearchCached

文字通り結果はキャッシュされる。キャッシュを更新したい場合?action=refreshをつければいいらしい

05/23

05/29

Timer on X

XlibにはWindowsでいうところのSetTimer/KillTimerみたいなお手軽にタイマーを使える関数がない、というかタイマーイベントそのものがない。どうやら上位レイヤーのライブラリでどうにかしているらしいので、とりあえずXtとGTK+のソースをダウンロードしてきて調べてみた。

いずれもメインループにあたる関数内(Xt:XtAppNextEvent, GTK+:gtk_main、Glibのg_main_loop_run)で処理を行なっているようで、それゆえタイマーの周期は必ずしも正確ではない。Xlibでやろうとする場合は上記ライブラリのような機構を自前で実装するしかなさそう。素直に上位レイヤーのライブラリを使いましょう、というところか。

05/31

powertop

Intel謹製のLinux向け省電力ツールで、topコマンドみたいなやつ。CPUの動作状態や、CPU時間を多く消費しているプロセスが分かる。あと、電源管理に関する設定状況を分析して提案をしてくれたりする。以下で入手できる。

省電力設定に関しては以下がとても参考になる。

clear/note/2012-05 (last edited 2012-05-31 03:01:20 by clear)