banner

Ko-windowマニュアル HTML版

目次

X680x0 Ko-Window 知っておきたい基本事項

最初は必ずKOWIN.DOCを読んで下さい。

このドキュメントはおまけの読み物です。

Ko-Window のアプリケーションを使う上で、ほとんど暗黙の了解に近い基本的な事項をまとめてみました。知らなくてもなんとかなるけど知っておくと便利!聞きたくても聞けなかったあの疑問も一気に解消。Ko-Window てこんなに便利だったのか、と感嘆すること間違いなし!(大げさ度256倍)

ドラッグって何?マウスでつかむって何?

ドラッグとはマウス操作の1つです。

カーソル移動
ただだまってマウスを動かすことです。それに合せて画面上のマウスカーソルも移動します。動かす時にボタンを押していてはいけません。
クリック
目的の場所で、マウスボタンを押してすぐ離すこと。クリックの場合、離すという動作は意外に重要です。
ドラッグ
マウスボタンを押したままマウスを移動することをドラッグといいます。ペンを紙に押しつけたまま動かして文字を書く、のと同じです。
ウィンドウを動かす時は「ドラッグ」を使います。動かしたいウィンドウのタイトルバーにマウスカーソルを移動させ、そこで左ボタンを押したまま目的の位置までマウスを動かします。離した時にその位置にウィンドウが移動します。
この動作は、まるで手で物を持ち上げて、他の場所まで動かすのに非常によく似ています。そのためこういうドラッグ動作を「ウィンドウをつかんで移動させる」と表現することがあるのです。
タイトルバー上でドラッグしてボタンを押している状態、つまりウィンドウ枠が表示されてそれを動かしている時、それがちょうどつかんでいる状態になります。
このようなつかむと表現するのは、実際はウィンドウだけでなくファイルや画像データの場合がほとんどです。kf.win から他のアプリケーションへファイル名を転送することを「ファイルをつかんで放り込む」と表現することがあります。
またgview.win で表示している画像を、gv_rev.win へマウスで転送して画像反転を行うような場合も「画像をつかんでgv_rev へ運ぶ」となるわけです。

run 実行とは?

Ko-Window 用語(?)として「run 実行」という言葉が出てくることがあります。これは Command.win の「run」コマンドに由来します。

Command.win 上では、単純な文字メッセージしか表示しない通常のコマンドはそのまま実行させることができますが、直接 V-RAM や画面を破壊するプログラムを実行すると、ウィンドウの描画内容が崩れてしまいます。

もっとも画面の表示が崩れているだけで動作自体は特に悪いわけではないのですが、実行が終わったあとにウィンドウの表示をいちいち戻さなければならないのは不便です。

そこで登場するのが「run 実行」というのもです。V-RAM を直接乗っ取ったり、直接描画したりするアプリを安全に実行するには、Command.win 上からrun プログラム名と実行すればいいのです。

例えば X68K 初代についてきた有名なグラディウスも、 Command.win 上からrun gradius.xと実行すればきちんと動かすことができます。もちろんグラディウスを終了させれば元のウィンドウ画面に復帰します。

早い話、Ko-Window からチャイルドでコマンドを実行するようなものです。

Command.win の場合は 'run' コマンドですが、シェルやアプリケーションによっては別のコマンド前や実行方法になっている場合があります。ですが、このように画面を実行後に復帰させてチャイルドでコマンド実行するとを全部ひっくるめて「run 実行」と呼ぶことがあるのです。ぜひぜひ覚えておきましょう。

なお Command.win 上で、何も引数を与えずにただ「run [CR]」とだけ実行すると、チャイルドで一時的に通常のシェル状態に戻ることができます。「exit [CR]」で復帰します。これも覚えておくと便利です。

ウィンドウ上での行編集

Ko-Window 上で行入力を行う場合、ちょうど半角文字の半分の形のカーソルが出ていることがあります。これは Ko-Window 標準の行入力ルーチンを使用していることを意味しています。この状態では、アプリケーションの種類に関係なく常に共通の行編集操作ができるようになっています。

またこの時、キー操作は ED モードと Emacs モードの2種類があり、ユーザーによって自由に選択可能になっています。

編集キー操作
編集キー操作一覧

Normal Mode (ED.X) Emacs Mode 機能
---------------------------------------------------------------
[CTRL]+[a]|[↑] [CTRL]+[p] 単語左移動
[CTRL]+[b]|[CLR] [CTRL]+[g] 行頭/行末移動
[CTRL]+[d]|[→] [CTRL]+[f] 右移動
[CTRL]+[f]|[↓] [CTRL]+[n] 単語右移動
[CTRL]+[g]|[DEL] [CTRL]+[d] 文字削除
[CTRL]+[h]|[BS] [CTRL]+[h] 後退削除
[CTRL]+[k] [CTRL]+[k] カーソル以後削除
[CTRL]+[o]|[INS] [CTRL]+[o] 挿入切り替え [CTRL]+[p] [CTRL]+[e] 行末へ
[CTRL]+[q] [CTRL]+[a] 行頭へ
[CTRL]+[s]|[←] [CTRL]+[b] 左移動
[CTRL]+[u]|[HOME] [CTRL]+[u] 行クリア
[CTRL]+[v] [CTRL]+[q] コントロール文字入力
[CTRL]+[_][e] [CTRL]+[_][?] モード変更(?は任意の1文字)

Emacsモードでもカーソルキーは使用できますが表記を省略しています。また両モードで重ならない操作は、どちらでも使用できます。(CTRL+V 等)
直接モードを切り替えるには次のようにします

EDモード -> Emacsモード [CTRL]+[_] を押したあと [e] を押す
Emacsモード -> EDモード [CTRL]+[_] を押したあと [e] 以外を押す

デフォルトの編集モードは、環境変数「KOWINKEY」によって定義しておくことができます。この設定さえ行っておけば、Ko-Window 上のキー入力は、常に共通の操作で行うことができます。

KOWINKEY の内容 意味
---------------------------------------------------------------
未定義 Normal Mode (ED.X バインド)
ed Normal Mode (ED.X バインド)
emacs Emacs Mode
ied 強制 Insert Normal Mode (ED.X)
iemacs 強制 Insert Emacs Mode

例:set KOWINKEY=iemacs

強制 Insert 設定にしておくと、[INS]キーの LED 状態に関係なく常に挿入状態になります。

コンソールって何?

アプリケーションのドキュメントを見ていると、よく「エラーメッセージはコンソールに出力します」と書いてあることがあります。

このコンソールというのは、いわばウィンドウ上で1つ、テキストを表示する代表となるウィンドウを決めておいて、アプリケーションのエラーやメッセージを、そこに一括して表示させよう、というものです。

もともとは UNIX や X-WINDOW にあるコンソール、を真似たものです。

こうしておけば、ワーニングのためにいちいちダイアログが出て他の処理も全部中断してしまうことはありませんし、多数出たメッセージもあとからバックスクロールさせてゆっくりと見ることができます。そして何よりアプリケーション側の負担が大きく減ります。

通常は Command.win か KoConsole.win をコンソールウィンドウとして使用することになるでしょう。

ウィンドウサーバーって何ですか? Ko-Window とどこが違うの?

ウィンドウサーバーとは、ウィンドウの管理や描画等、基本的な機能を受け持つプログラムのことです。各アプリケーションはウィンドウサーバーにやりたいことをリクエストして、描画や移動等を行っているわけです。

もっと簡単にいいますと、Ko-Window サーバーというのは「WSRV.X」のことです。

そしていろいろなアプリケーションやその関連するものをひっくるめて Ko-Windowと呼んでいるわけです。

アプリケーションの起動オプション

アプリケーション毎にほぼ共通のオプションスイッチです。もちろん中には別のスイッチだったり違う意味に使われていたりすることもあるので、個々のドキュメントもぜひ参照しておいて下さい。

注意すべきことは、Ko-Window のアプリケーションでは、オプションスイッチの大文字と小文字を明確に区別することが多いということです。大文字と小文字で別の意味を持たせる可能性があることから、最初から区別する方向で作られているアプリケーションが多いのです。またオプションスイッチの記号は '-' です。中には '/' をスイッチの記号として使えるアプリケーションもあるかもしれませんが、'-' でないと反応しないものがほとんどです。

  1. スイッチの大文字小文字は区別する!
  2. スイッチの記号は / ではなく - を使おう!
  3. とにかくドキュメント通りに指定すれば間違いはない!

以上3点、ぜひ覚えておきましょう。

まず間違いなく必ず持っていて、かつ共通のオプション
-x<num> 横方向座標指定
-y<num> 縦方向座標指定
この2つはウィンドウの初期起動座標をドット単位で与えます。例えば、画面上の左上にそのプログラムを起動したければ「-x0 -y0」とコマンド行に書いて実行すればいいのです。もちろん片方だけ指定することもあります。
【例】 kf.win -x100 -y0
指定できる場合は必ず共通のオプション
-h<num> 横サイズ
-v<num> 縦サイズ
ウィンドウの大きさを指定します。ウィンドウの大きさを変更できないアプリケーションではこのオプションはありませんが、リサイズできるものではほとんどこのスイッチがあります。片方だけサポートしているものもあります。指定はドット単位です。
【例】 uclock.win -h80 -v80

-f<num> フォントサイズ(必ず小文字!)

フォントの大きさを変更できる場合はこのオプションです。フォントのサイズはユーザーが任意で選べるアプリケーションが結構あります。Command.win や tview.win 、kf.win などなど。その場合、起動時に指定する場合のオプションは -f です。選べるフォントの種類は、実はアプリケーションではなくてサーバーとフォントドライバの能力に依存します。現時点(1995/11/14)では以下の5種類です。

-f8 8dotフォントの指定(恵梨沙フォントが必要)
-f10 10dotフォントの指定
-f12 12dotフォントの指定
-f16 16dotフォントの指定
-f24 24dotフォントの指定

上記以外の値を -f オプションに与えないで下さい。なお上記のうち 10dot フォントは、hfont に hfont10.fon を与えて組み込んでおかなければ使うことができませんが、これはすでにKo-Window のほぼ標準と化しているので必ず組み込んでおいて下さい。10dot フォントを組み込んでも消費メモリは 2.5Kbyte 増えるだけですから、心配する必要はまずありません。8dotフォントを使用するには恵梨沙フォントが必要です。

-a<num> 文字アトリビュート(必ず小文字!)

フォントサイズ同様、文字の描画色を設定できます。その場合はこの -a オプションになります。デフォルトの色はアプリケーションによってまちまちですが、圧倒的に -a9 (灰色反転) のものが多いでしょう。気に入らない方はこのオプションで変更しましょう。代表的なカラーは以下の通りです。

以下、Ko-Window アトリビュートコードの詳細。bit?の後ろのかっこの中の数値を加算して、その値を -a オプションに与えます。例えば 白 + 反転 + 強調 なら 3 + 8 + 4 なので -a15 とすればいいことになります。

bit0〜1(0〜3) 文字色(黒,灰,透明,白)
bit2(4) 強調
bit3(8) 反転
bit4(16) 網かけ
bit5(32) 白反転
bit5(64) 下線

ウィンドウオペレーション

タイトルバーでの操作等、基本的なウィンドウオペレーションをまとめてみました。あまりに基本過ぎるので、どのアプリケーションのドキュメントでもいちいち説明していません。というわけでここで詳しく書いてみます。

タイトルバーの操作ボックス
操作ボックスは以下の種類があります。ボックスは左ボタンで操作します。

┌─┐ リサイズボックスといいます。タイトルバーの左上にあります。左ボタンで
|┌┤ ドラッグするとウィンドウサイズを変更できます。リサイズできないウィン
└┴┘ ドウの場合はこれはありません。また縦横にスクロールバーが出ている時は、
ウィンドウ右下の角でも同様にリサイズできることがあります。右下の場合 は、必ずしも
┌┬┐
├┘| というマークでなくただの空白になっていることが多いのですが、それでもちゃんと
└─┘ 右下の角でもリサイズはできますので忘れずに。

┌─┐ クローズボックスです。ウィンドウを閉じます。アプリケーションも終了します。
|/|
└─┘

┌─┐ アイコンボックスです。左ボタンでクリックしてアイコン化します。アイコンというのは、
|×| ウィンドウを一時的にじゃまにならないシンボルサイズにしておくことです。
└─┘ アイコンをクリックするともとの元に戻ります。

□┐ プッシュボックスです。左ボタンでクリックすると、他のウィンドウの下に押し込むことができます。
└┘ ウィンドウの重なりを変更する時に使います。

┌─┐ ズームボックスです。左ボタンでクリックしてウィンドウを最大の大きさにします。
|□| あまり見たことがないかもしれません。これがついているアプリはそれほど多くはないです。
└─┘

タイトルバーにつく操作ボックスはこれで全部です。アプリ毎に、必要なスイッチだけタイトルバーに現れます。これらは全部、マウスボタンを離した時に反応します。だからクローズボタンを押した瞬間、セーブし忘れていたのを思い出しても、慌てずにカーソルをずらして別のところで離せば大丈夫です。(ドラッグになるのでたいていウィンドウ移動になります。)
タイトルバー
タイトルバーは、つかんでドラッグするとウィンドウの移動です。これはもうご存じの方が多いと思います。その他にも以下の操作ができます。
ウィンドウ移動 左ドラッグ
タイトルバーの上でマウスの左ボタンを押し、押したままカーソルを目的位置まで動かします。離すとその場所にウィンドウが移動します。
ウィンドウのポップ 左クリック
プッシュボックスと逆の働きです。タイトルバーをクリックすると、ウィンドウの重なりから1番上に出てきます。
マネージャーメニュー 右クリック
アプリケーションによって、ポップアップメニューはそれぞれ専用のものが出ることがありますが、タイトルバー上右クリックすると、必ずウィンドウマネージャーのポップアップメニューが出ます。
もしかしたら、スクロールバーでの操作を文章で詳しく説明するのはこれが初めてかもしれません。スクロールバーには「縦バー」と「横バー」の2種類が存在します。アプリケーションによって、縦バーのみだったり横バーのみだったり、縦横が一緒についていたりします。スライダは、スクロール可能範囲によって長さがかわります。これを見ると大体のテキストや領域の長さがわかります。スクロールバーの1番使いやすい動かし方は、直接つかんで左ドラッグ、です。Mac系のスクロールバーと違い、ボタンを離してから動くのではなくて移動に合せて直接スクロールがついてきます。そんなの知らなかった、って方はぜひお試し下さい。縦横のバーがついている場合、その合流地点の角はリサイズスイッチになっていることがほとんどです。Command.win 等、空白になっていてもちゃんとリサイズ可能ですので。
ウィンドウマネージャーでの常識
通常このようなウィンドウ操作は、ウィンドウマネージャーによって拡張されている場合がほとんどです。細かな点に関してはそれぞれのウィンドウマネージャーによって異なりますが、ほぼ Ko-Window の標準として共通化されている操作もあります。
どこでもウィンドウポップ [SHIFT]+左クリック
マウスカーソルのある位置のウィンドウを1番上にします。タイトルバーが他のウィンドウにすっかり隠れていてウィンドウの端しか見えていない場合でも、そこにカーソルを置いて [SHIFT]+左クリックすれば1番上に持って くることができます。
どこでもウィンドウ移動 [SHIFT]+左ドラッグ
ポップ同様、マウスカーソルのある位置のウィンドウを動かします。タイトルバーでなくても構わないので非常に便利です。
どこでもウィンドウリサイズ [SHIFT]+右ドラッグ
左ドラッグではウィンドウ移動でしたが、右ドラッグの場合はリサイズができます。
ワンタッチペースト [CTRL]+左クリック
ClipBoard の内容を、そのウィンドウに転送します。

なおこれらの設定は、自由度の高いウィンドウマネージャーの場合は自由にカスタマイズすることができます。(SPopUp.win 等) そのため、設定によっては上記の操作と違う設定になっている場合もあるので注意して下さい。その他にもウィンドウマネージャーによって、それぞれ特徴ある機能が用意されているのでぜひぜひいろいろと試してみて下さい。

スクリーンエデイタ、または tview.win 等、テキストタイプ(特にスクロールバーのついているもの)ではほとんどがこのクリップが可能です。また kf.win のように、一見 clip には対応してないように見えても、実はちゃんと [OPT.1] を押しながらドラッグで clip できるようになっているアプリケーションもあります。

ペースト
ClipBoard の内容を取り出して、ウィンドウに転送します。ペーストされた内容は、たいていキー入力と同じに扱われます。そのため、バックログから切り出してエディタに転送したり、tview で呼んでいるドキュメントの例文を、そのまま Command.win で実行、なんてことができます。
クリップボード瞬間Q&A
【クリップボードの内容を確認するには?】
Command.win で「clip [CR]」と実行します。現在のクリップボードの内容を表示します。
【画像データのクリップはできないの?】
SClip.win というプログラムを使うと、ウィンドウ上の任意のエリアを直接切り出して、Sheet 画像として転送することができるようになります。
ウィンドウ間の直接転送
kf から直接ファイル名をドラッグして Command.win まで運ぶと、そのパス名が Command.win へキー入力として送られます。このように、Clip&Pasteを介さずに直接文字列を転送することもできます。例えば sreport.win の時刻表示や残りメモリ容量も、sreport.win の右側からドラッグすることで転送可能です。
ウィンドウ間で通信でダイレクト転送している場合は、つかんでいる間マウスカーソルの形が変化します。(手の形になる)ウィンドウ間で転送できるのは文字列とは限らず、ほとんどの場合、Sheetデータや画像データも他のウィンドウへ持って行くことができるようになっています。
ウィンドウ間通信は、プログラムから制御したり、スクリプトから送ったり、またはデータ転送だけでなく、操作コマンドを与えるなど実にいろいろな応用がききます。このように、柔軟でかつ強力なウィンドウ間の操作ができるのが Ko-Window の大きな特徴の1つであり、かつ便利なところです。
今 CutEdit.win で描いたばかりの絵が、さっとマウスカーソルを動かすだけでいきなりウィンドウ背景になったり、いろいろなわざをマスターして友達に自慢しましょう。

Ko-Window の "Ko" って何の意味?

Ko-Window の作者は皆さんご存知のとおり小林忠司さんといいます。つまり "Ko"というのは小林忠司さんのいわばハンドル名のようなもので、"Ko-Window" というのは Ko さんの作った Window という意味だそうです。

Ko-Window ってマルチタスクなんでしょうか?

Ko-Window の各アプリケーションは、最初から全部イベントドリブンによるマルチタスク動作をします。例えばエディタで文章を書いていても時計は常に動いてますし、また同時に shot.win を起動してゲームを動かすこともできます。これは Human の BG 機能とは無関係で、Ko-Window 上であれば常に並列動作します。

ですが Command.win 上で Human のコマンド、例えばプログラムのコンパイル等を行うと、そのプログラムが終了するまで一時的に時計など他のプロセスも停止したように見えます。これはなぜかというと、その Human のコマンドが、イベントドリブンによるマルチタスクをするようプログラムが書かれていないからです。

そこで、このように Ko-Window の並列動作を考慮して書かれていないプログラムでも、他のプログラム実行が止まらないようにするためには Human の BG 機能を使うことができます。こちらはイベントドリブンではなくて TSS によるマルチタスクになります。

1995 8/ 6
1995 11/14 8dotフォント追加 小笠原博之 oga@dgw.yz.yamagata-u.ac.jp

Ko-Window入手先
本体:Vectorソフトライブラリ

文頭に戻るマニュアル表紙へホームに戻る

Markup
まこっち/2004-07-10
Copyright &copy; 2004 まこっち <maco68000@yahoo.co.jp>, All rights reserved.