日記/2008-10-03/compiz の革命
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
] [
リンク元
]
開始行:
* compiz の革命 [#b1f6c3e9]
compiz を入れてみた.
デフォルトの設定では画面がぐりんぐりん回ったり,ウィンド...
が,すごいのはそれだけではない.
xev でイベントをキャプチャするとその違いがわかる.
+ xev を起動
+ xev ウィンドウを他のウィンドウで一部を隠す
+ xev ウィンドウにマウスカーソルを持っていき,フォーカス...
という操作をしてみる.
「マウスカーソルを持っていき…ウィンドウを前面に出す」操作...
FocusIn event, serial 34, synthetic NO, window 0x2c00001,
mode NotifyNormal, detail NotifyNonlinear
KeymapNotify event, serial 34, synthetic NO, window 0x0,
keys: 2 0 0 0 0 0 0 0 0 0 0 0...
0 0 0 0 0 0 0 0 0 0 0 0...
ConfigureNotify event, serial 34, synthetic NO, window 0...
event 0x2c00001, window 0x2c00001, (972,322), width ...
border_width 2, above 0x2a0001f, override NO
というイベントが発生する.
一方,metacity 上では
FocusIn event, serial 30, synthetic NO, window 0x2a00001,
mode NotifyNormal, detail NotifyNonlinear
KeymapNotify event, serial 30, synthetic NO, window 0x0,
keys: 4294967206 0 0 0 0 0 0 0 0 0 ...
0 0 0 0 0 0 0 0 0 0 0 0 ...
VisibilityNotify event, serial 30, synthetic NO, window ...
state VisibilityUnobscured
Expose event, serial 30, synthetic NO, window 0x2a00001,
(0,87), width 72, height 91, count 0
というイベントがキャプチャできる.
大きな違いは最後の Expose イベントである.
このイベントはアプリケーションに「ウィンドウが露出した」...
Expose イベントを受け取ったプログラムはウィンドウの再描画...
compiz 上ではこのイベントが発生していない.
が,普通に使えている.
つまり
> compiz 上では,別ウィンドウで隠された領域も保存されている
ということである.
これは次のような操作でも確認できる.
+ gnome-terminal から gnuplot を起動
+ グラフを描画
+ Ctrl-z でサスペンド
+ gnuplot のグラフのウィンドウの一部を隠す
+ gnuplot グラフウィンドウを前面に持ってくる
metacity の場合は
#ref(metacity_cut.png,center,50%)
となるが
compiz では
#ref(compiz_cut.png,center,50%)
となる.
プログラムがサスペンドされているので,expose イベントを処...
が,compiz 上ではそれが発生していない.
というわけで,compiz は従来の X のモデルを大きく変える環...
> compiz? あんなのガキのおもちゃだよ
なんて言ってる場合じゃないのだ.
終了行:
* compiz の革命 [#b1f6c3e9]
compiz を入れてみた.
デフォルトの設定では画面がぐりんぐりん回ったり,ウィンド...
が,すごいのはそれだけではない.
xev でイベントをキャプチャするとその違いがわかる.
+ xev を起動
+ xev ウィンドウを他のウィンドウで一部を隠す
+ xev ウィンドウにマウスカーソルを持っていき,フォーカス...
という操作をしてみる.
「マウスカーソルを持っていき…ウィンドウを前面に出す」操作...
FocusIn event, serial 34, synthetic NO, window 0x2c00001,
mode NotifyNormal, detail NotifyNonlinear
KeymapNotify event, serial 34, synthetic NO, window 0x0,
keys: 2 0 0 0 0 0 0 0 0 0 0 0...
0 0 0 0 0 0 0 0 0 0 0 0...
ConfigureNotify event, serial 34, synthetic NO, window 0...
event 0x2c00001, window 0x2c00001, (972,322), width ...
border_width 2, above 0x2a0001f, override NO
というイベントが発生する.
一方,metacity 上では
FocusIn event, serial 30, synthetic NO, window 0x2a00001,
mode NotifyNormal, detail NotifyNonlinear
KeymapNotify event, serial 30, synthetic NO, window 0x0,
keys: 4294967206 0 0 0 0 0 0 0 0 0 ...
0 0 0 0 0 0 0 0 0 0 0 0 ...
VisibilityNotify event, serial 30, synthetic NO, window ...
state VisibilityUnobscured
Expose event, serial 30, synthetic NO, window 0x2a00001,
(0,87), width 72, height 91, count 0
というイベントがキャプチャできる.
大きな違いは最後の Expose イベントである.
このイベントはアプリケーションに「ウィンドウが露出した」...
Expose イベントを受け取ったプログラムはウィンドウの再描画...
compiz 上ではこのイベントが発生していない.
が,普通に使えている.
つまり
> compiz 上では,別ウィンドウで隠された領域も保存されている
ということである.
これは次のような操作でも確認できる.
+ gnome-terminal から gnuplot を起動
+ グラフを描画
+ Ctrl-z でサスペンド
+ gnuplot のグラフのウィンドウの一部を隠す
+ gnuplot グラフウィンドウを前面に持ってくる
metacity の場合は
#ref(metacity_cut.png,center,50%)
となるが
compiz では
#ref(compiz_cut.png,center,50%)
となる.
プログラムがサスペンドされているので,expose イベントを処...
が,compiz 上ではそれが発生していない.
というわけで,compiz は従来の X のモデルを大きく変える環...
> compiz? あんなのガキのおもちゃだよ
なんて言ってる場合じゃないのだ.
ページ名:
-->