No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 9 | 10 | 11 | 12 || Next»

XPのネットワーク共有をブリッジ接続したcoLinunxesで使う

TAPのアダプタを複数作ってブリッジ接続して仮想的に複数台のcoLinuxesを接続できていたのだが,これまではそのブリッジにさらに外部に出られるインターフェースを追加してcoLinuxesが外部に出放題な状況だった.このままでも別に問題ないといえば無いのだが,この場合はcoLinuxがDHCPでリアルのネットワークにIPを取得しに行くため,自宅にいるか研究室にいるかで取得IPが違うのが面倒だった.ということで,NATで coLinuxes のネットワークを完全に外部から隔離してみた.

やったのは単純にTAPを全てブリッジ接続して,リアルのネットワークにつながるインターフェースをその「ネットワーク ブリッジ」に対して共有かけただけ.これでcoLinuxesはXPの提供するDHCPからIPを取るようになり,どこへ持っていっても同じIPでよろしい感じ.ただ,ネットの接続を共有した場合,共有を受ける側のインターフェースが 192.168.0.1 になり,DHCPも 192.168.0.xxx を割り振ることになるのでこれが少々めんどうかも.というのも,自宅のLANはもろに 192.168.0.xxx で組んであったので IP が衝突しまくりで設定変更を余儀なくされたから.共有を受ける側のIPが 192.168.yyy.xxx のように下二つを指定できるようになってると非常に使いやすいんだけどなぁ.なんで固定なのかが非常になぞだ...

Windows 互換シェル

面白そうなので Windows の Explorer の代わりになる互換シェルを調べてみた.どうやら昔試したときより数が増えてる模様.

Geoshell(日本語サイト)

BB4Win

xoblite

BBLean

LiteStep(日本語サイト)

litestep は昔に使った記憶があるので今回はやめるとして,とりあえずどれを試そうか? モジュールとか組み込んでいろいろできるらしいので楽しみだ.

coLinux + CygwinX

Cygwin の X サーバで XDMCP の接続が使えることに気づいたので試してみる.

起動はCygwin の startxdmcp.bat で REMOTE_HOST を coLinux の IP に変更して実行するだけ(coLinux 側で xdm/gdm の設定が必要だけど.その設定自体は VNC の場合も同じ).バッチファイルのコメントを消したのは以下となる(フルスクリーン,クリップボードあり).

SET DISPLAY=127.0.0.1:0.0
SET REMOTE_HOST=192.168.0.104
SET CYGWIN_ROOT=c:\cygwin
SET PATH=.;%CYGWIN_ROOT%\bin;%CYGWIN_ROOT%\usr\X11R6\bin;%PATH%
SET XAPPLRESDIR=/usr/X11R6/lib/X11/app-defaults
SET XCMSDB=/usr/X11R6/lib/X11/Xcms.txt
SET XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
SET XNLSPATH=/usr/X11R6/lib/X11/locale
if not exist %CYGWIN_ROOT%\tmp\.X11-unix\X0 goto CLEANUP-FINISH
attrib -s %CYGWIN_ROOT%\tmp\.X11-unix\X0
del %CYGWIN_ROOT%\tmp\.X11-unix\X0
:CLEANUP-FINISH
if exist %CYGWIN_ROOT%\tmp\.X11-unix rmdir %CYGWIN_ROOT%\tmp\.X11-unix
run XWin -query %REMOTE_HOST% -nodecoration -lesspointer -fp tcp/%REMOTE_HOST%:7100 -clipboard

ただ,このバッチファイルは coLinux でDHCPを使ってると IP がかかわる度に編集しなきゃならんのでめんどい.

GUI の起動用のランチャでも作ろうかなぁ?

ところで, gdm で Disconnect しても Cygwin-X が再起動するのをとめるにはどうしたらいいのだらう?

GDMでローカルサーバ立ち上げない+α

coLinux で gdm を使うときにはローカルのXサーバを勝手に立ち上げてほしくない.でも,それをやるには --no-console のオプションを渡さなければならない.

ということで,/usr/X11R6/bin/gdm-nc というファイルを作って,中身を

#!/bin/bash
/usr/bin/gdm --no-console

としておいて,/etc/rc.conf 内の DisplayManagerの起動コマンドをこれに変えてしまう.

DISPLAYMANAGER="gdm-nc"

これでローカルにXサーバが起動しなくなる.めでたし.

ついでに,kinput2 を起動させるために ~/.xprofile で

export XMODIFIERS="@im=kinput2"
kinput2 &

としておくか.(ふつうはどこで設定するのだらう?)

CapsLock さようなら

いい加減 CapsLock がうざくなってきたので過去やっていたように Ctrl に変身してもらう事にした.

設定はレジストリエディタでマッピングをかえればよく,変える値は HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> Keyboard Layout -> Scancode Map である.最初はエントリが無いのでバイナリ値のエントリを作る必要があるはず.

で,その中身はこんなんで.最初の8バイトがヘッダ,次にエントリ数,続いてマッピングのエントリとなる.エントリの最後には終端記号として 0 が必要らしい.

  00 00 00 00   ; header version
  00 00 00 00   ; header flags
  02 00 00 00   ; header エントリ数(including Terminate)
  1d 00 3a 00   ; エントリ: CapsLock -> 左Ctrl
  00 00 00 00   ; Terminalte

ちなみに,リトルエンディアンなのでキーマップのエントリは始め2バイトが変更先で後ろ2バイトが変更元.詳しくは Scan Code Mapper for Windows で.それぞれのキーのスキャンコードは以下のとおりらしい.ここから一覧が取れる.(Scan Code Set 1のほう)

    Backspace       00 0E
    Tab             00 0F
    CapsLock        00 3A
    Enter           00 1C
    Left Shift      00 2A
    Right Shift     00 36
    Left Ctrl       00 1D
    Left Alt        00 38
    Space Bar       00 39
    Right Alt       E0 38
    Right Ctrl      E0 1D
    NumLock         00 45
    Esc             00 01
    F1~F10         00 3B ~ 00 44
    F11             00 57
    F12             00 58
    Scroll Lock     00 46
    Left Win key    E0 5B
    Right Win key   E0 5C
    Application Key E0 5D
    Insert          E0 52
    Delete          E0 53
    Left Arrow      E0 4B
    Home            E0 47
    End             E0 4F
    Up Arrow        E0 48
    Down Arrow      E0 50
    Page Up         E0 49
    Page Down       E0 51
    Right Arrow     E0 4D
    DBE_KATAKANA    00 70   (カタカナ ひらがな)
    DBE_SBCSCHAR    00 77   (???)
    CONVERT         00 79   (変換)
    NONCONVERT      00 7B   (無変換)

これでWindowsキーの無いIBMマシンでもエクスプローラが楽に立ち上げられるぞ.

フック

ふとフックが気になって Windows のフック登録の API を調べてみた.どうやら SetWindowsHookEx という名前らしい.グローバルにフックするにはDLLを作る必要があるそうで面倒かもしれないけど今度これで遊んでみよう.ここらへんが参考になるかなぁ?

«Prev || 1 | 2 | 3 |...| 9 | 10 | 11 | 12 || Next»
Search
Feeds

Page Top