Cygwin/XFree86の設定。



Cygwin
HOMEディレクトリの設定
/home をD:\homeにremount
起動時にaliasなどを読み込ませる
ビープ音を鳴らさないようにする
Bashの日本語化

XFree86
起動スクリプトの変更
startxによる起動
Keymapの変更
Screen Shot


Cygwin
HOMEディレクトリの設定
ユーザごとにHOMEディレクトリを変えたい場合です。

Windows2000の場合、マイコンピュータを右クリックしてプロパティを選びます。
そこで詳細を選び、環境変数を選択します。
そこに出ている ユーザの環境変数 の部分に、新規にHOMEを追加することにします。

「新規」ボタンを押し、出てきたWindowに、
環境変数名: HOME
値: 自分の指定したいホームディレクトリ。(EX. "d:\home\myhome")


これをユーザごとに設定すれば、各々個別の環境でBASHを使えるようになります。

・ /home をD:\homeにremount
上の方法では、ひとりづつ環境変数を設定しなければならなくなります。
複数ユーザでCygwinを利用する場合にこの手間を省く方法があります。

/home ディレクトリ自体を D:\home のように自分で使いたいディレクトリにマップしてしまえばいいわけです。

Cygwinの配布物のなかの mount コマンドは独自の変更を施してありまして、
#man mount
を実行すればオプションの一覧を見ることができます。
その中で、 -s オプションに注目します。
-s オプションは、Cygwinの初期設定のディレクトリツリーに永久的な変更を加えるためのものです。
つまり、
#mount -s d:\\home /home ←2002/12/5 修正
と実行することによって、永続的に D:\homeを /home として使えるようになるわけですね。
('\'が二つあるのはエスケープのためです。)
便利便利。


・ 起動時にaliasなどを読み込ませる
Defaultでは、
Cygwinアイコンをダブルクリックして最初に表示されるターミナルはBASHになっています。
ですから、起動時に独自の設定を読み込ませるためには、ホームディレクトリに .bash_profile を作ります。

aliasなどを設定する場合は以下のようにします。

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ .bash_profile /_/_/_/_/_/_/_/_/_/_/_/_/_/_
#!/bin/bash
alias ls="ls -F"
alias mv="mv -i"
alias cp="cp -i"
alias rm="rm -i"

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ .bash_profile /_/_/_/_/_/_/_/_/_/_/_/_/_/_


このようなファイルを作成し、Cygwinを立ち上げなおします。
次からはこの設定が有効になっているはずです。
有効にならない場合は、ホームディレクトリの設定ができているかどうかを確認してください。

ビープ音を鳴らさないようにする
DefaultではBeep音がうるさい(TAB押すとなりやすい)ので、
それを鳴らないように設定します。

$HOME/.inputrc
set bell-style none
と記述。

これだけでかなり快適になります。


Bashの日本語化
ホームディレクトリの.inputrc または /etc/inputrc
set kanji-code sjis
set convert-meta off
set meta-flag on
set output-meta on
を書き込む。

そして、ホームディレクトリの .bash_profile または /etc/profile
export LANG=ja_JP.SJIS
export TZ=JST-9
export JLESSCHARSET=japanese-sjis
を書き込む。

ホームディレクトリの .vimrc または /etc/vimrc
set enc=japan
を書き込む。

上記の変更を施すのは、
ホームディレクトリの下か/etc/の下のどちらかに統一したほうが良いでしょう。
この設定をすれば、Cygwin上で日本語入力ができるようになります。
変換の開始はAlt+半角/全角です。

Bash上のvim ではSHIFT-JISで正しく日本語入力できることを確認しました。
ただし、Bashのコマンドラインへの日本語入力はできませんでした。
これについてはわかり次第ここに記載していきます。

また、
.bashrc ( .bash_profile でも良い)に、
alias ls = 'ls --show-control-char'
の一行を追加すれば、lsでSHIFT-JISコードの日本語ファイル名を
表示できるようになります。



XFree86


・ 起動スクリプトの変更
起動スクリプトは、/usr/X11R6/bin/startxwin.sh を利用するのが一番簡単でしょう。
このファイルは以下のようになっていると思います。

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#! /bin/sh
export DISPLAY=127.0.0.1:0.0
PATH=/usr/X11R6/bin:$PATH
#eval `ssh-agent`

# Cleanup from last run.
rm -rf /tmp/.X11-unix

# Start the X Server.
XWin -screen 0 800 600 &
export LANG=ja_JP.sjis
export DISPLAY=takeposo.prv:0.0

# Start the twm window manager.
wmaker &

# Set a background color to hide that nasty X stipple.
#xsetroot -solid aquamarine4

/usr/X11R6/bin/xmodmap.exe ~/.Xmodmap

# Start an xterm.
#xterm -n xterm-1 -j -ls -sb -sl 500 -rightbar -geometry +361+0 -e bash &


# Return from sh.
exit

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


例えば起動時の解像度を1024x768に変更したければ、
XWin -screen 0 800 600 &
の部分を
XWin -screen 0 1024 768 &
に変更します。

このようにこのファイルに設定を書き加えることで、
簡単にXの設定を変更することが可能です。

2003/12/20 追記
現在のCygwinのstartxwin.shは、MultiWindowモード(Windowsのデスクトップ上にXのアプリケーションウィンドウがそのまま表示されるモード)になっているようですね。すごく進歩してます(@_@)




startxによる起動
startx コマンドを打ち込むことで、上記 startxwin.shと同様にXを立ち上げられます。
この場合、ウィンドウマネージャの指定などを自分ですることになります。
startx コマンドが実行されると最後に.xinitrcファイルを読み込みます。
この .xinitrc ファイルでウィンドウマネージャなどを指定するのです。

 .xinitrc の例を以下に書きます。
_/_/_/_/_/_/_/_/_/_/_/_/ .xinitrc _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
PATH="$PATH:/usr/X11R6/bin"
LANG=ja_JP.eucJP
LANGUAGE=ja

exec wmaker
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

しかし、.xinitrcファイルを書くための注意点があります。
それは、~/ が使えないということです。
例えば起動時に自分のプログラム ~/myprogram.exe を実行させようとしても、
exec ~/myprogram.exe
では起動しません。
exec /home/(your acount)/myprogram.exe
というように明示的に指定する必用があります。
もうひとつは、ウィンドウマネージャを起動する際は
exec wmaker
のように exec を使わなければならないということです。

また、解像度を自分で指定したいときは例によって startx スクリプトを変更します。
#vi /usr/X11R6/bin/startx
で、
_/_/_/_/_/_ /usr/X11R6/bin/startx _/_/_/_/_/_/_/_/_/_/_/_/_/_/
(中略)

defaultserverargs="-screen 0 800 600"

(中略)
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

と変更することで800x600の解像度になります。


startx で起動すると、ウィンドウマネージャを終了した後に
自分でXのウィンドウを削除する必要がなくなります。
ひとつ手間が減って便利です。






Keymapの変更
Cygwin/XFree86を起動すると、JP106キーボードを使っている人は
~ や @ の場所などが変わってしまって使いづらいと思います。
それを通常のJP106キーボードの配置に戻すためにはkeymapを変更します。
まず、現在のキーボードをダンプします。

#/usr/X11R6/bin/xmodmap.exe -pke > ~/.Xmodmap

これでホームディレクトリの .Xmodmap にダンプが書き込まれました。
一応JP106キーボードの.Xmodmapをここに置いておきます。
これを起動スクリプト(/usr/X11R6/bin/startxwin.sh)で読み込むようにします。

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
(中略)
# Start the X Server.
XWin -screen 0 800 600 &
export LANG=ja_JP.sjis
export DISPLAY=takeposo.prv:0.0

# Start the twm window manager.
wmaker &

# Set a background color to hide that nasty X stipple.
#xsetroot -solid aquamarine4

/usr/X11R6/bin/xmodmap.exe ~/.Xmodmap ←ここを追加する
(中略)
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


これでXFree86起動時にKeymapが変更されます。

startxで起動している人はホームディレクトリに .Xmodmap を置いておけば、
起動時に自動的に読み込まれるはずなのですが、
私の環境では自動的には読み込んでくれませんでした。

どなたか教えていただけないでしょうか。


startxで、出来ました。
~/.xinitrcを使えば楽勝でした。

.xinitrcを書くときに、ウィンドウマネージャを立ち上げる前に、
xmodmap /home/(your acount)/.Xmodmap
を実行するだけです。
ちなみに、 ~/.Xmodmapではだめでした。明示的に指定する必用があります。

_/_/_/_/_/_/_/_/ .xinitrc _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
PATH="$PATH:/usr/X11R6/bin"

xmodmap /home/(your account)/.Xmodmap
exec wmaker
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


これで行けます。
しかも、じつは/etc/X11/xinit/xinitrc が存在し、
これを ~/.xinitrcにコピーしてしまえばこの問題が簡単に解決してしまうという^^)
でもこのxinitrcは、ウィンドウマネージャの起動が
twm &
という風になっているので、
exec twm
に直してあげないと動きません。





Screen Shot
上記の設定を施したあとのスクリーンショットです。
こちら

結構インパクトあるんじゃないでしょうか。



戻る