[home] [back]


UNIX野郎の窓生活

UNIX/Linux環境に慣れきっているとWindowsは使いにくく、 ストレスがたまって仕方がない。 が、愚痴っていてもはじまらないので、 Windows上にUNIXな環境を作ろうと筆者は思い立った。 このページはそういった作業の中での筆者の愚痴をメモっただけのものであるが、 同じような境遇の人の助けになれば幸いである。

つまるところ、 UNIXに毒された同志のためのオススメWindowsソフト紹介です。 できるだけ無料で手に入るものだけで環境整備を試みています。 自己分析すると、手の込んだものよりシンプルなものが好きみたいです。 趣味のベクトルが同じ方向を向いてる方、お試しあれ。 ちなみに筆者の環境はWindows2000がメインです。95/98/Me/XPじゃ話が違うかも。


cygwin

UNIX野郎がwindowsマシンを渡されたら、 まず最初にインストールするものがこれ。

GNUの基本的なCUIツール群のWin32へのport。 といっても、普通のportと違い、 UNIXのシステムコールをwindowsで実現するDLLを作っている。

gcc,gdbがあり、cygwinに含まれていないUNIXなツールも ソースを持ってくれば99%程度の確率でコンパイルが通る。 cygwin内で閉じた世界を作っているので、 その辺が不満な人もいるらしい。 (どういう意味かは使ってみればわかると思います)

筆者も不満がまったくないわけではないが、 bashの上でawkやlessやwgetなんかが動くのは、 多少の欠点を補って余りあると思う。

筆者が書いた投げやりな紹介ページも参照してください。(風化してる部分もあるけど…)


Meadow

win32で動くemacs20クローン。(当然だが)elispが動くので便利。 最近xyzzy使う方が多いけど、 TeXで文章書くならMeadowの方が上かな。


TeX 環境

初めてdvioutを使ったときの感動は忘れられない。速ええええー。 ってまあ、Intel系に比べてUltraSPARCが遅いだけなんだが。 Solaris/SPARC上で文章を書いている人は一度試すべきだ。 PCにLinuxをインストールする動機が一つ減ってしまった。

大学にいないとまずTeXなんて使わないよね。 必要な人はどうぞってことで。


Active Perl

PerlのWindowsへのport。 WindowsにもPerlがあると非常に便利だ。 一部制限もあるが、わりと色々なスクリプトが動く。 cygwinじゃないので、ちょっといらいらすることもあるかも。

最近cygwinにPerlが付属するようになっているので、 そっちを使っている。 fork()とかの関係でまだまだ存在価値はあるのかもしれないが、 筆者には差がわからない。


tcsh

tcshのWindowsへのport。 Windows版では怪しい拡張がされているが、 cygwinでコンパイルするとその拡張は使えない。 なので、Windows版がおすすめなのだが、 Windows版tcshでcygwinのアプリ使っていると不満たらたら。 なんとかしてくれ。

と思っていたが、最近すっかりbash派になってしまった。


窓使いの憂鬱

エディットコントロールをはじめとして、 あらゆるシチュエーションで emacsライクなキーバインドを提供するツール。 デフォルトで提供されていないキーバインドについても、 ユーザーアンフレンドリーな設定ファイルをいじることで、 パラノイアなほどに柔軟に設定が可能。 以前はNT/2000専用だったが、 95/98/Me対応ドライバに続き、最近XP対応ドライバも出た。

思わず行頭にC-aで飛びたくなる人には最高に便利。 というか、ないと生きていけない。 出先でもインストールさせてくれ。

# デフォルト設定(デフォルト設定が嫌いならこれらを消す)
include "109.mayu"              # 109 キーボード設定
include "104on109.mayu"         # 109 キーボードを 104 キーボード風に
include "default.mayu"          # さまざまな設定

keymap2  Launcher-Menu
 event prefixed => &HelpMessage("Launcher Menu", \
        "x\txyzzy\r\n"     \
        "m\tMozilla\r\n"   \
        "e\tEdMax\r\n"     \
        "b\tbash\r\n"      \
        "t\tTeraTerm\r\n"  \
        "i\titalk\r\n"     \
	"o\tOpenOffice\r\n" \
)
event before-key-down        => &HelpMessage
 key X => &ShellExecute("open", \
        "C:\\Program Files\\xyzzy\\xyzzy.exe",,"C:\\home\\hanawa", ShowNormal)
 key M => &ShellExecute("open", \
        "C:\\Program Files\\mozilla.org\\Mozilla\\mozilla.exe",,, ShowNormal)
 key E => &ShellExecute("open", \
        "C:\\Program Files\\EdMax\\EdMax.exe",,, ShowNormal)
 key B => &ShellExecute("open", \
        "C:\\cygwin\\bin\\bash.exe","--login -i","c:\\cygwin\\bin", ShowNormal)
 key T => &ShellExecute("open", \
        "C:\\Program Files\\TTERMPRO\\ttssh.exe",,, ShowNormal)
 key I => &ShellExecute("open", \
        "C:\\Program Files\\xyzzy\\xyzzy.exe","-f italk",, ShowNormal)
 key O => &ShellExecute("open", \
        "C:\\Program Files\\OpenOffice.org1.0.3\\program\\soffice.exe",,, ShowNormal)

keymap Global

key     C-I                     => Tab
key     C-LeftSquareBracket     => ESC

key     *M0-*IC-S-Space         => $ToggleIME                # kinput2風
key     C-S-F3                  => Mute
key     C-S-F4                  => Play/Pause

key     C-S-M                   => &Prefix(Launcher-Menu)

# ダイアログボックス
window dialog /#32770:Button$/ : Global
key     C-G                     => Escape
key     C-M                     => Enter
key     C-B                     => Left      # ←
key     C-F                     => Right     # →
key     C-N                     => Down      # ↓
key     C-P                     => Up        # ↑

## IrfanView32 ................................................................
## http://www.irfanview.com/english.htm

window  IrfanView /I_VIEW32\.EXE:IrfanView/ : Global
key     ←                      => BackSpace
key     →                      => Space
key     ↑                      => PageUp
key     ↓                      => PageDown
key     S-←                    => ←
key     S-→                    => →
key     S-↑                    => ↑
key     S-↓                    => ↓
key     C-q                     => ESC

## OpenOffice/StarSuite........................................................
## http://wings.raindrop.jp/openoffice/o3u2gj/

window Soffice /soffice\.exe:/ : EmacsEdit

xyzzy

emacsライクな、軽い、ある意味独特なエディタ。 なんとcommon-Lispベース。これの便利なところは、 JIS,SJIS,EUC,UTF-8,UTF-16,KSCあたりに対応してることと、 italkクライアントがあること、とにかく軽いこと、 それでいて普段使うemacsの機能はそろっていることだ。

欠点は、各種modeの充実ぶりがやや劣っているかな、ということ。 プログラム書くとかTeXで文章書くとかだと、 やっぱりmeadowを使っちゃう気がする。

以下に、(筆者が気になった部分について) よりemacsライクになるように書いた設定ファイルを紹介しときます。 xyzzy-MLに流れた記事を参考にしてます。 (筆者がemacsで使ったことがないものは コメントアウトしてあります。C-oなんてcanna設定だし。)

ToyさんのページにもEmacsちっくな設定が紹介してあります。 僕は気にならないんですが、 C-x C-wの挙動の違いが気になる人は多いみたいです。

下の方は個人的なものですが、あまり気にしないでください。

(global-set-key '(#\Home)        'beginning-of-buffer )
(global-set-key '(#\End)         'end-of-buffer )
(global-set-key '(#\C-/)         'undo)
(global-set-key '(#\C-_)         'undo)
;(global-set-key '(#\M-_)         'redo)
;(global-set-key #\C-. 'redo)
;(global-set-key '(#\C-Right)     'forward-word)
;(global-set-key '(#\C-Left)      'backward-word)
(global-set-key '(#\C-x #\r #\k) 'kill-rectangle)
(global-set-key '(#\C-x #\r #\d) 'delete-rectangle)
(global-set-key '(#\C-x #\r #\y) 'yank-rectangle)
(global-set-key '(#\C-x #\r #\r) 'copy-rectangle)
(global-set-key '(#\C-x #\r #\t) 'string-rectangle)
(global-set-key '(#\C-x #\3)     'split-window-vertically)
;(global-set-key '(#\C-x #\d)     'buffer-menu)
(global-set-key '(#\M-%)         'query-replace)
;(global-set-key '(#\C-o)         'toggle-ime)
;(global-set-key '(#\C-M-\\)      'indent-region)
(global-set-key '(#\C-x #\C-w) 'emacs-write-file)

; 文字コードしか変えられないけど(デフォルトではMule2.3風にC-x C-k f)
(global-set-key '(#\C-x #\RET #\f) 'change-fileio-encoding) 
; 改行コードの変更
(global-set-key '(#\C-x #\RET #\n) 'change-eol-code)

;; dabbrev
(setq *dabbrevs-case-fold* t)
(autoload 'dabbrev-expand "dabbrev" t)
(global-set-key #\M-/ 'dabbrev-expand)

(load-library "isearch")

;(setq c-indent-level 4)
;(setq c-brace-imaginary-offset 0)
;(setq c-brace-offset -2)
;(setq c-label-offset -2)
;(setq c-argdecl-indent 0)
;(setq c-label-offset -2)

(autoload 'italk "italk" t)
(setq italk-user-name "ginza5432")
(setq italk-server "192.168.0.196")
(setq italk-secondary-servers
  '(  ; ("host [port [username]]")
;    ("")  ; The first item is to be displayed at completion. (C-u M-x italk)
    ("192.168.0.196 12345")
    ("localhost 12345")
   ))

; へろへろめもの続きを書く

(defun mkherohero()
  (interactive)
  (insert
   (format-date-string
    (concat "<hr>"
            "<!-- __________________________________________________ -->\n\n"
            "<h2><a name=\"%Y%m%d%H%M%S\">"
            "%Y年%m月%d日 (%v) %H時%M分%S秒 JST"
            "</a></h2>\n"
            "<div class=\"indent\">\n<p>\n</p>\n</div>\n"))))

(追記)xyzzyを使うなら、英和辞書を有効にしない手はない。 SDICのサイトにGENE95とEDICTが落ちてるので、 ありがたく取ってきてetc/dict/に置いてgendicを実行。 「ツール」−「共通設定」−「ディレクトリ」の設定をして準備完了。 C-c C-eで英和、C-c C-jで和英が使える。 英語がネイティブじゃない人間には非常に便利。


+Lhaca

解凍/圧縮ツール。これ単体でzipとlzhがほどける&作れるもんで、 一瞬しか使わないマシンのセットアップ時にインストールして、 その後に他の解凍ツールをインストールするのが面倒だったりして ずっと使い続けたりする。

同じディレクトリで圧縮・解凍する設定に慣れるとかなり便利だと思う。 アイコンが格好悪い気がしたが、慣れた。


Mozilla

オープンソースなタブ対応Webブラウザ。 Netscape7の開発者向けバージョン、と言った方が一般には通りがいいかもしれない。 筆者の場合、Linuxと同じインターフェースで使えるのが一番のメリット。

インストール時に付属のメールクライアントも忘れずインストールすべき。 どうせ普段のメールを送る用途には使わないけど、 インストールしないとmailto:で立ち上がるメーラがWindowsの場合にOutlook Expressになるので余計怖い。 インストール時にcustom installを選んで DOM Inspector と JavaScript Debugger を選ぶと、 面白そうなツールがインストールされるのだが、 残念ながら筆者にはイマイチ使い方がわからないが、 それでも便利だったりする。

インストール直後にいじる設定項目が結構あるけど、以下は個人的には必須。

その他の設定について、以下をお好みでuser.jsに書くと吉。

// kinput2をover-the-spotで表示(Linux用)
user_pref("xim.input_style", "over-the-spot");
// 3ボタンマウスの真中でのURLジャンプ禁止
user_pref("middlemouse.contentLoadURL", false);
//
user_pref("nglayout.initialpaint.delay", 100);
// target属性を無視して全部同じ窓で開く
user_pref("browser.block.target_new_window", true);

また、 MozillaにはPluginが全く付属してこないので、 普通に使うためにはPluginのインストールが必須になる。 Java,FlashあたりのPluginを「はじめてのMozilla」7-7. Pluginを参考に入れればOK。

XULアプリとしては、Homeボタンと、prefbarがオススメ。

文句は、とにかく起動が遅いこと。レンダリングも速くはない。 しかし、IEよりは穴が少なそうなので安心ではある。 ブラクラなどもIE用のものはある程度かわせる。 IEを置き換えられるようなレベルではないが、 第2のブラウザとして補助的に使う分には非常にオススメだと思う。


Mozilla Firefox

以前はPhoenixと呼ばれていたwebブラウザ。 小さくて軽いブラウザを作ろうというコンセプトのもと、 Mozillaから派生したプロジェクトだったが、 いろいろあってPhoenix→Firebird→Firefoxと名前が変わった。 起動スピードや操作感も本家Mozillaよりわかる程度に速い。

Windows版以外にLinux版やMac OS X版もある。 複数の環境を使うのであれば、環境を統一できることは 他のブラウザに対するアドバンテージだろう。 筆者はWindows版とLinux版(X11版と言うべきか)を併用しているが、 異なる環境で同じ設定や拡張を使えるのは非常に便利だと感じる。

このプロジェクトの成果でMozilla本体も高速になりつつあり、 マシンも当時より十分高速になってきたが、 まだわかる程度にMozillaとは速度差があるように思う。

入れるべき拡張/試そうと思っている拡張を以下にリストアップする。 元ネタはFirefoxまとめサイトの「拡張」

user.jsの内容。

// kinput2をover-the-spotで表示(Linux用)
user_pref("xim.input_style", "over-the-spot");
// 3ボタンマウスの真中でのURLジャンプ禁止
user_pref("middlemouse.contentLoadURL", false);
// target属性を無視して全部同じ窓で開く
user_pref("browser.block.target_new_window", true);
// 文字をタイプしたらインクリメンタルサーチするのを禁止
user_pref("accessibility.typeaheadfind", false);
// 0.9のバグ(仕様?)対応
user_pref( "docshell.frameloadcheck.disabled" , true );

あと、prefbarの設定メモ。


OpenJaneDoe

オープンソースな2chブラウザの非IEコンポーネント版。軽いし便利。


Proxomitron

書き換え型ローカルプロクシサーバソフト。 アニメーションGIFをループさせなくしたり、 JavaScriptをオフにしたり、いろいろできる。

妖しい雰囲気のアイコンがお気に入り。

紹介ページなぞ書いてみました。

参考リンク:Proxomitron-J


Black Jumbo Dog

おうち用プロクシ。 HTTPのプロクシにもなれますし、ポートフォワーディングも可能です。 「インターネット共有」がもっと高機能なら不要なんだけどなー。


TeraTerm + ttssh

端末エミュレータと、そのssh対応DLL。 ktermには劣るけど、 windows標準のtelnetと比べると雲泥の差。 sshはssh1だけど、 一般にssh2にする必要性ってあまりないよね? ssh2じゃないと繋げない不幸な人もいるんでしょうけど。


X server

ASTEC-X(お試し版)を使ってます。 もう少し安ければ買えるんですが、ちょっと高すぎっす…。 VMwareとの組み合わせは最高。

cygwin-xfree86がそろそろ実用レベルに届きそうで、かなり期待。

VNCをXサーバとして使ったことはないが、ちょっと遅そう。


VNC

マウスイベントやキーボードイベントを操る特殊なサーバを立てることで、 そのマシンをネットワーク越しのクライアントから操作するアプリです。

ディスプレイがついてないwindowsマシンをどうしても使いたい場合に、 Tweak UIかなんかで勝手にログインするようにしておいて、 スタートアップでVNCサーバを起動したりすると、 電源オンだけでディスプレイなしでリモートから使えるようになります。

サーバ/クライアントともにWindows/Mac/各種UNIXそれぞれで動くので、 人によってはとっても便利かも。 わざわざ別マシンをあやしく使うくらいならvmwareの方がいい気もしますが。


FFFTP

ftpクライアント。GUIとしてはよくできている。 が、ncftpをcygwinでコンパイルした方が 慣れいてる分だけいいかもしれない。


EdMax フリー版

メーラ。窓使いの憂鬱があればemacs風になるので、結構いい感じ。 みゅーとかわんだーらすとの人はMeadow使えていいっすね。 (筆者はMH-e野郎なのだった)


Kerio Personal Firewall

パーソナルファイヤーウォールソフト。 Tiny Personal Firewall(TPF)の後継。 事情はよくわからないが、 Kerio Technology Inc.がTINY Softwareから TPFをソースコード込みで買い取って開発を継続しているようだ。

相変わらずのUIが個人利用に限り無料なのは素晴らしい。

しかし、最新版だとXPでスタンバイ/休止状態にできないようだ。


Outpost Firewall FREE

パーソナルファイヤーウォールソフト。 ライセンスを熟読してからでないと判断できないが、 調べた範囲では、 会社でも入れられそうなフリーのPersonal Firewallってこれくらいしか見当たらない。

ちょっと使ってみた感じでは、結構いいと思います。 ただ、DHCPな環境では起動時の動作が変。固定IP環境で使うべし。


AVG Free Edition

海外のウィルスチェックソフトのフリー版。 特に使用期限もなく、 フリー版でもパターンファイルの更新をしてくれるので非常に嬉しい。

ライセンスが少々風変わりで、 個人利用でかつ各人について1マシンにしかインストールできない。 個人で複数シリアル取得するのもライセンス的にはNGなようだ。 共用マシンなら他の人の名義でシリアルを取ればいいと思うが、 個人で複数台持っている場合は他のを探す必要がある。 会社で使いたいけど金が出ない場合は トレンドマイクロ オンラインスキャンあたりで定期的にチェックするくらいしかできないかな。


AntiVir Personal Edition

ウィルスチェックソフト。 まだ使ったことはない。 調べた範囲ではAVGとフリーでは双璧、なのだろうか。 ライセンスは熟読していないが、個人利用で1台までなら全く問題ないようだ。 会社で使うのは無理っぽい。 個人で複数台にインストールしていいかどうかは不明。


窓の手

Windows標準ではいじれないけど便利な設定項目を変更するツール。 要するにレジストリをGUIからいじってるだけだと理解してます。

滅多に使わないんですが、 OSをインストールしたばかりのタイミングでは便利な気も。


UPX

バイナリを圧縮するソフト。EXEもDLLも圧縮可能。 DOSの頃のDietみたいなものだと思う。 最近のHDDは高速かつ容量も十分なのでそれほど価値はないと思う。 ノートPCとかVMware環境のようにHDDが極端に遅い場合には、 巨大ソフトの起動時間短縮を体感できる気がする。 気のせいかもしれないが。 特に、スタートアップに入ってるソフトなんかは効果絶大な気がする。 これまた気のせいかもしれない。 また、ディスクキャッシュに乗りやすくなるかもしれない。 わからないけど。

何にせよ趣味の世界。でも楽しいからOK。 Linuxのバイナリも圧縮できるが、*.soを圧縮できないので効果は限定的。 以下のように.bashrcに書くと便利。

    alias upx='"/Program Files/upx/upx" --best --compress-icons=0 --crp-ms=100000'

で、適当な場所で以下のように実行。 find使ってんのに-exec使わないのは趣味というかエイリアスの関係というか。

    $ upx `find -name '*.exe' -o -name '*.dll'`

OpenOffice.org

オープンソースなMS Officeクローン。 まだまだ道のりは長そうだが、 Word/Excel/PowerPointともそこそこ使えるレベルまで来ていると思う。 マルチプラットフォームなので、Linux上では非常に重宝している。


IrfanView32

画像ビューワ。多くのフォーマットに対応している。 アイコンが格好悪いが、これよりましなビューワみつからん。


winshot

画面キャプチャソフト。 プレゼンなどで画面キャプチャしたいときに強力なツール。 マウスカーソルもキャプチャしたいとか、 Alt+PrintScreenだと細かい点が問題になってくるが、 このツールはそんなときも安心。 Photoshopがあれば問題ないかもしれないけど。


Dynamo

以前Wyvernと呼ばれていたmp3再生ソフトと同じ作者による後継ソフト。 以前よりも作者個人のために作っているとか何とか。 シンプルで好きです。


RarUty

読み方は「らるちー」。 本当は万能アーカイバなんだと思いますが、その用途では全く使っていません。 ダウンロードしてきたファイルのCRCチェックがしたい場合に超便利に使っています。 すでに開発終了しているようですが、当分これ使っときます。

アイコンがちとアレなのでデスクトップに置きたくないのだが、 便利なので置いておきたいという心の葛藤がある。


その他

金払うものを書くつもりはなかったんですが、 やっぱVMwareは紹介しときたいかな…。

桜時計とCD2WAV32も書きたいところ。 Daemon Tools(DJBとは無関係な方)もいいなあ。 WinShotも便利なときは便利っすね。 最近burn4freeを試してみたんですが、かなりいい感じでした。

そうそう、書いてないジャンルのものは、 windows標準のブツか、 もしくはCUIなブツを使ってます。 wgetとかlameとか自作Perlスクリプトとか。

Moonlightは捨てて、mayuをランチャっぽく使うことにしました。


リンク集

世の中、広く使われてるものがいいソフトとは限らないってことで、 なかなか個性的な「お気に入りソフト紹介ページ」が結構あります。 趣味の近い人のお薦めツールは試してみたくなりますね。 でも、いまひとつ趣味の似通った人によるソフト紹介を見つけられない…。

ソフトの紹介数で勝負しているようなページは内容が信用できないし、 大半が現状使ってもいないソフトなんて状況じゃ 情報が埋もれて全然使えないので無視してます。

hanawa<y@hnw.jp>

$Date: 2005-10-04 03:17:43 $