No Such Blog or Diary

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

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を作る必要があるそうで面倒かもしれないけど今度これで遊んでみよう.ここらへんが参考になるかなぁ?

VNCで合わせ鏡

誰でも考えるであろうことをふと思いつき,実際にやってみた.

何をやったかというと,Windows の VNC Client から coLinux につないで X (Xvnc) を立ち上げ,そのなかから Windows 側で立ち上げた VNC Server に VNC Client で接続するということをした.これをやると,Windows で画面描画をした際に coLinux 内の VNC Client の描画が起こり,その描画は Windows の VNC Client に伝わり Windows 側の新たな描画を生じる.あとはこのサイクルが描画イベントが画面領域の外に出るまで繰り返され,合わせ鏡と同じ現象となる.

ちなみに結果はこんなもん.(ただ単に Window が重なっているようにしか見えない...)

coLinuxes -- 複数起動

無意味に coLinux を複数起動して通信させてみた.

やり方としては TAPアダプタを複数用意してブリッジ接続してやるだけ.TAPアダプタの増やし方は,[コントロールパネル]->[ハードウェアの追加]->[新しいハードウェア デバイスの追加]->[一覧から選択]->[ネットワーク アダプタ]->[TAP-Win32 Provider(coLinux)]->[TAP-Win32 Adapter V8(coLinux)] で.追加されたら [コントロールパネル]->[ネットワーク接続] で名前を TAP1, TAP2, ... とかに変えておく.

あとは,coLinux の設定XMLファイルのほうで,

    <network index="0" name="TAP2" type="tap" />

のように name 属性を接続の名前 TAP1, TAP2, .. などに重ならないように指定するだけ.MACは自動でランダムに割り当てられるはずなので指定なし.

Gentoo 2-Way Boot (native & coLinux)

なんとなくデュアルブート用にインストールした Gentoo を coLinux で起動してみたくなった.これができると 2-Way Boot で結構便利なので.

で,そのためには coLinux の設定XMLを書かなければならないのだが,Windows のディスクナンバーとパーティションナンバーの管理の仕方が良く分からず苦戦.diskpart コマンドの返すディスクナンバーと,同パーティションナンバーからもずれているらしい.最終的に ,hda7, hda8 が /, swap である私の PC では次のような設定になった.まあ,ext3 のパーティションは一個しかないから全パターン試して起動したのが正解であっただけだけど.

<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <block_device index="0" alias="hda7" path="\Device\Harddisk0\Partition4" enabled="true" />
    <block_device index="1" alias="hda8" path="\Device\Harddisk0\Partition5" enabled="true" />
    <bootparams>root=/dev/hda7</bootparams>
    <initrd path="initrd.gz" />
    <image path="vmlinux" />
    <memory size="256" />
    <network index="0" type="tap" />
    <block_device index="2" alias="hdc" path="\Device\Cdrom0" enabled="true" />
</colinux>

(hda2 が拡張領域で hda3,4 が存在していないので,その分を引いた数がパーティション番号になるのかな?)

とりあえず,起動時に coLinux でサポートしていない機能に関して文句を言われるが,

ログイン画面が立ち上がったので今日のところはよしとしよう.

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

Page Top