Xには、実際のディスプレイのピクセル数より大きなスクリーンを持てる 機能がある。たとえば、1024x768の弱いディスプレイで使ってても1280x1024の 仮想画面が使えて、仮にではあるが大きな画面が使える、と。
でもこれ、使い勝手よくないんだな。viewpoint が (0,0) (左上)のとき 右下 (1279,1023) を見たければ、マウス使ってスクロールさせないと 行けないから。ふつーマウスなんて使わないじゃん。てことで、 Virtual は使ってなかった。
ところが最近 TightVNC をよく使うようになって、その画面を 1280x1000で構築してるもんだから、1024x768なノート(X21)でつなぐと 必然的にはみ出る。vncviewer のスクロールバーは使いづらい。んー。
てことで、Xの Vurtual を苦労せずスクロールさせる方法を考えた。
普段ウィンドウ切り替えは ~/.fvwm2rc で
AddToFunc DeiconifyFocusAndWarp "I" Iconify -1 + "I" FocusAndWarp $0 $1 Key 1 A C Next [CurrentDesk *emacs*]DeiconifyFocusAndWarp 0 0 Key 2 A C Next [CurrentDesk kterm:]DeiconifyFocusAndWarp 0 0
してC-1でEmacsに切り替えたりしている。ウィンドウの 位置関係はこんな。
+-----------------------------------------------+ |+------------------+ +-------------+ +----+| || emacs | | console: | |時計|| || | | (kterm) | +----+| || | | | | || | +-------------+ | || | | || | +------------------+| || | | kterm: || || | | || || | | || || | | || || | | || |+------------------+ | || | | || | | || | | || | +------------------+| +-----------------------------------------------+
Emacsに切り替えるときはマウスカーソルが左上に行くのでXのVirtualな viewpointも(0,0)になる。でも、右下のktermに切り替えるときはマウスカーソ ルがkterm:の左上に来るだけなのでXのviewpointは変わらない。
あそうか、じゃ「一度右下ぎりぎりにマウスを移動すりゃいい」のか。
てことで、DeiconifyFocusAndWarp
関数を変更。
AddToFunc DeiconifyFocusAndWarp "I" Iconify -1 + "I" FocusAndWarp 92 95 + "I" FocusAndWarp $0 $1
これで、移動先のウィンドウの右下と左上隅両方が見えるように ぐりぐりとviewportを変えてから切り替えられる。ついでに、 FVWMの Virtual DeskTop を複数にしている場合は
EdgeScroll 0 0
にしておいたほうがいい。
ああ地味な設定だ。でもずっと昔に気付いてたらXのVirtual Screenも 便利に使えていたかもしれない。
叱咤激励感想ツッコミはゲストブックへ
Generated with mkdiary.rb