No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 55 | 56 | 57 |...| 59 | 60 | 61 || 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は自動でランダムに割り当てられるはずなので指定なし.

xfs が入ってなかった

Gentoo で xorg-x11 を GRP インストールしたら xfs が入ってなかった... しょうがないからソースから作り直す.念のため USE に font-server を追加して.

で,まあ,ちゃんとコンパイルできたわけだが,今度は /etc/X11/fs/config が空... 面倒なのでここに xfs の config を書いておく.

#
# X Font Server configuration file
# 
# allow a max of 4 clients to connect to this font server
client-limit = 4
# no tcp, use sockets!
#no-listen  =  tcp
# when a font server reaches its limit, start up a new one
clone-self = on
# alternate font servers for clients to use
#alternate-servers = foo:7101,bar:7102
# where to look for fonts
# Some of these are commented out, i.e. the TrueType and Type1
# directories in /usr/share, because they aren't forced to be
# installed alongside X.
catalogue = /usr/share/fonts/75dpi,
        /usr/share/fonts/100dpi,
        /usr/share/fonts/shinonome,
        /usr/share/fonts/monafont,
        /usr/share/fonts/mplus,
        /usr/share/fonts/aquafont,
        /usr/share/fonts/aquapfont,
        /usr/share/fonts/mikachan-font,
        /usr/share/fonts/artwiz:unscaled,
        /usr/share/fonts/misc,
        /usr/share/fonts/Type1,
        /usr/share/fonts/util,
        /usr/share/fonts/local,
        /usr/share/fonts/TTF,
        /usr/share/fonts/cyrillic
# in 12 points, decipoints
default-point-size = 120
# 100 x 100 and 75 x 75
default-resolutions = 75,75,100,100
# how to log errors
use-syslog = on
# font cache control, specified in KB
cache-hi-mark = 2048
cache-low-mark = 1433
cache-balance = 70

とりあえず,これで xfs, gdm, xinetd, vncserver を設定して coLinux + VNC の GUI 環境ができた.

ちなみに,gdm の立ち上げうサーバを Xvfb :1 とかしてディスプレイ 0 以外にしておくと native に起動したときに startx でパラメータを渡さなくていいから楽(そうでないと startx -- :1 とかしてディスプレイ番号を指定しなければならない)

«Prev || 1 | 2 | 3 |...| 55 | 56 | 57 |...| 59 | 60 | 61 || Next»
Search
Feeds

Page Top