[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Xmgl



神木です。
まったく同じことをしてたりしますが ...
途中まで mgl2 使ってましたが、結局 X server (← VNCserver 由来) からは
いまのところ mgl2 を外す方針でいます。理由は以下の通り、mgl2 の keymode 
周りの実装不十分。


   >From: suz@hpc.bs1.fc.nec.co.jp
   >X-Ml-Count: 3472
   >鈴木(康)です。
   >mgl の上で 動く Xserver を作れないかやってみています。
   >入力系は全然できていませんが、表示だけはできるようになりました。

   >  1) 入力系 --- テンプレートは作ったんですが..

MGL_SK_RAW,MGL_SK_EXTRANSLATED の実装モデルをもすこし鮮明にしてほしいです。
mgl2 に手の入れようがないっす。いまのレベルだと OS の差を吸収できず、
mgl2 なしで書くのと同じです。

で、けっきょく
mgl2/lib に keymap/ 掘って
  keymap/linux.c             // linux 系の default keymap の面倒見。
  keymap/linux/defkeymap.c   // linux kernel の drivers/char/defkeymap.c そのもの。

などとして、mgl2 での default keymap の面倒見をさせるつもりで
コード書いてます(した) ... が、

シフトは mgl2.h の定義(MGL_SKM_xxx) では足りなかったので
0x00xx0000 の領域を使って適当に定義を入れてる ... Sticky Shift とか。
# 今この部分でつっかえてます。sticky がうまく動かん。


それと、とりあえず raw key mode で key event を取ってきた時に、key event を
mgl2 のほうに戻す仕掛けが欲しいな。
mgsrvcons の F9, F10 の機能をもいちど書き直すのはけっこうバカらしいです。

ついでに、mgl2 を挟んで OS 独立にしようとすると keycode 変換が無意味に
たくさん入るのもちょっち。
MK_F12 (= 0x10c) とかの値って何に由来するんでしたっけ。

MK_F13 〜 MK_F15 に相当する領域(0x10d 〜 0x10f) が空いてたので
F13 〜 F15 を追加しておいたけど、F16 〜 F20 も欲しい。でもスペースがない...
MC-R7x0 の左右のアイコン扱うのに最終的に F24 くらいまで必要なんでは。

# mgl2.h の互換性を放棄して X11/keysymdef.h を include したやつで libmgl2
# を make しなおしたほうが話が簡単かもしれん。

以上、入力周り書いてて思ったことでした。


   >それで、mgl に gtk を組み込めないか検討してみたんですが、
   >かなり大変そうです。また、gtk 単独でも 相当サイズが大きいみたいなので、
   >間に X が入っても 相対的にたいしたことないんじゃないかという気が
   >してきました。

microwindows はいかが :-)
gtk が移植されてます。(されつつある、位かな)

個人的には、 VNCserver/viewer ペアが MicroWindows よか速かったので
素直に X を実装するほうに向いてますが、Xserver ごと書き直したら
microwindows と同レベルに落ちる気がちょっとしている ...

# VNCserver/viewer ペアはプロセスが分かれていることで
# 速くなってる(draw をサボってる部分がある)と思うので。

-- 
神木一也