[Anthy-dev 1715] Re: uim-pref上でのキー表現

アーカイブの一覧に戻る

Etsushi Kato ekato****@ees*****
2005年 2月 2日 (水) 14:04:10 JST


加藤です。いちおう前の話題にコメントです。

On 2005/01/30, at 5:41, YamaKen wrote:

> Caps Lockなしの場合で言うと、加藤さん案では<Shift>jというユーザ
> 入力が"J"、<Control><Shift>jが"<Control><Shift>j"としてユーザに
> 見える事になり、<Shift>jの表現が<Control>のあるなしで変化する事
> になります。これを指して一貫性が無いと表現しました。

そうですね。一貫性はありません。
ただし、たぶん、これはぼくの独特の感じ方だと思いますが、modifier として
Shift key だけを押す場合は、そのままでは出せない ascii char
(大文字や、! とか #とか) を出すための手段だと思っているので、
他の modifier とは違うように認識していて違和感は無いです。このため
逆に大文字のキーなのに、表記に <Shift> が付いていると違和感を感じて
しまいます。


>>> 上記の"l"の例はskkでは起こり得ないシチュエーションですが、anthy
>>> でskk風モード遷移を使っている場合にはCaps Lockしたまま操作する場
>>> 合に発生します。
>>
>> 確かにこの場合は (アルファベットキーのみで case を無視した挙動が欲し
>> い場合)、l の case を区別すると問題になりますね。ユーザに明示的に、"L"
>> も追加してもらうという方法になるでしょうか。
>
> uim-pref上で"L"を登録するためには、最初に"<Shift>L"をキャプチャー
> してから<Shift>のチェックを外すという操作、もしくはCaps Lock on
> 状態で"L"を入力する事が必要になります。
>
> はたしてこれらの表記の違いと意味をユーザに理解させる事が可能だろ
> うか、というのが今回の提案のそもそもの動機になっています。

これは、uim-pref の方で、shift-mask のみの文字キーのときは、
shift_toggle を gtk_toggle_button_set_active しないことによって
回避することをぼくは意図していました。

> 私の結論は「無理」です。なので、ユーザが押した通りのキーをキャプ
> チャーするだけで登録が可能で、かつ表記が一貫している必要があると
> 考えました。

そうですか? 上で書いたように、gtk_toggle_button_set_active のしかた
次第で加藤案でもキーのキャプチャーだけで意図どおりに登録できるように思います。

>>> ・アルファベットキーはuim-pref上では常に *小文字* で表す
>>> ・アルファベットキーに対する<Shift>の暗黙無視を行わない
>>> ・アルファベットキーに対しては大文字・小文字を無視する
>
>>> "L" → "<Shift>l"
>>> "l" → "l"
>>> <Control>j,<Control>J → <Control>j
>>> <Shift>space          → <Shift>space
>>
>> 小文字であれば大丈夫です。

別のメールで問題にしましたが、"<" のキーが、現在 uim-pref 上で、
"<Shift><" となっているのは、この説明と食い違っているように感じます。
"<" はアルファベットキーではありません。また、今使っているキーボードには、
"<" というキーは存在しないので、uim-pref 上に表示されている
"<Shift><" って何? と一瞬不思議に感じました。

もし、ヤマケンさんの本来の案で行くと、このキーは、uim-pref 上で、"<"
と表示されないとおかしいと思います。しかし、この場合、ユーザがこのキーを
GUI で登録しようとすると、uim-pref 上では、shift_toggle が on になって
一貫性が逆になくなってしまいます。

このあたりの混乱を避けるためにも、ascii character だけのキーの場合は
shift mask が当っても無くてもそのまま (case を区別したり、"<" は "<" のまま) 
表示したほうが良いような気がもう一度してきましたが、どうでしょうか?
-- 
Etsushi Kato
ekato****@ees*****




Anthy-dev メーリングリストの案内
アーカイブの一覧に戻る