スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Date: --.--.-- Category: スポンサー広告   

Fedora12 リリース (マルチポインターを試す)

Fedora12 が正式にリリースされました。
いろいろと新しい機能がありますが、今回試してみたのがマルチポインター。

これは Xorg 7.5 (X server 1.7) に含まれる xinput2 の新機能らしく、ひとつのデスクトップ画面で複数のキーボード/マウスを扱えるようになるもの。
従来はひとつのスクリーンにひとつずつのキーボードとマウスが定義され (core pointer や core keyboard と定義される)、USB 等でマウスを追加するとその USB マウスの操作は core pointer へ送られてスクリーンに反映されていました。
Fedora12 でもデフォルトでは同じ動作をするのですが、xinput コマンドを使うことで複数のポインターを扱うことが可能となり、また複数のウィンドウに同時にキーボードの入力を行うことが出来るようになります。


では実際にマルチポインターを表示してみましょう。事前に xorg.conf を書き換える必要はありません。また、root 権限を使う必要もありません。一般ユーザーからコマンドを実行することが出来ます。
また、なぜか xinput コマンドがインストールされていない環境がありました。もし xinput コマンドが無い場合は、
yum install xorg-x11-apps
でインストールできます。


まず、現在の入力デバイスの状況を確認します。まだ追加のキーボード・マウスは接続していません。

[vboxf12 ~] $ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=7 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=8 [slave pointer (2)]
⎜ ↳ VirtualBox Guest Service id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]


スペースが消えて見づらいですが、Virtual core pointer と Virtual core keyboard があるのがわかると思います。これがデフォルトで使用される core pointer と core keyboard。その左側が罫線で繋がっているのが、この二つがセットになっていることを示します。

次に USB キーボード・マウスを繋げてみます。今回はタッチパッド付きのキーボードを繋げてみました。

[vboxf12 ~] $ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=7 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=8 [slave pointer (2)]
⎜ ↳ VirtualBox Guest Service id=11 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=12 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=13 [slave keyboard (3)]


Virtual core pointer と Virtual core keyboard の下にそれぞれふたつのデバイスが追加されました。これが接続した USB キーボード・マウスを xinput から認識された状態です。この状態では、デフォルトの core pointer と core keyboard にそれぞれの操作が出力されるので、どのマウスを動かしてもひとつのポインターが動きますし、どのキーボードを操作してもそのときフォーカスのあるウィンドウにキーボードの入力がされるはずです。

では、マルチポインターを実現するために core pointer と core keyboard を追加します。コマンドは、xinput create-master "name" です。この name は識別名を指定します。識別名は任意の名前で、多分アルファベットや数字が使えます。当然他の識別名と重なってはいけません。

[vboxf12 ~] $ xinput create-master "USB device"
[vboxf12 ~] $ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=7 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=8 [slave pointer (2)]
⎜ ↳ VirtualBox Guest Service id=11 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=12 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=13 [slave keyboard (3)]
⎡ USB device pointer id=16 [master pointer (17)]
⎜ ↳ USB device XTEST pointer id=18 [slave pointer (16)]
⎣ USB device keyboard id=17 [master keyboard (16)]
↳ USB device XTEST keyboard id=19 [slave keyboard (17)]


USB device pointer と USB device keyboard というのが追加されたのがわかります。この時点でふたつめのマウスポインターがデスクトップに表示されると思います。

しかしこのままではふたつめのポインターを動かすことは出来ません。現状ではすべてのデバイスが Virtual core pointer と Virtual core keyboard に割り当てられているからです。なので、USB のキーボード・マウスを再割り当てします。

[vboxf12 ~] $ xinput reattach 14 "USB device pointer"
[vboxf12 ~] $ xinput reattach 15 "USB device pointer"
[vboxf12 ~] $ xinput reattach 12 "USB device keyboard"
[vboxf12 ~] $ xinput reattach 13 "USB device keyboard"
[vboxf12 ~] $ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=7 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=8 [slave pointer (2)]
⎜ ↳ VirtualBox Guest Service id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
⎡ USB device pointer id=16 [master pointer (17)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=14 [slave pointer (16)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=15 [slave pointer (16)]
⎜ ↳ USB device XTEST pointer id=18 [slave pointer (16)]
⎣ USB device keyboard id=17 [master keyboard (16)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=12 [slave keyboard (17)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=13 [slave keyboard (17)]
↳ USB device XTEST keyboard id=19 [slave keyboard (17)]


こんな感じです。これでふたつめのポインターは USB キーボード・マウスで動かすことができ、さらにひとつめのポインターでフォーカスしたウィンドウには PC のキーボードから、ふたつめのポインターでフォーカスしたウィンドウには USB キーボードからそれぞれ同時に入力することができます。
この時のセットは、左側が罫線で繋がれたポインターとキーボードがセットになります。設定を間違えるとごちゃごちゃになりそうなので、注意が必要でしょう。
ここでは reattach の時にデバイスの id で指定しましたが、デバイス名 (「Synaptics Inc. Composite TouchPad / TrackPoint」や「Lite-On Tech IBM USB Travel Keyboard with UltraNav」など) で指定することも出来ます。ID 番号は変わってしまう場合もあるでしょうから、スクリプトなどで設定する場合はデバイス名を使用した方がいいと思います。

もしマルチポインターのセットを消したい場合は、xinput remove-master "name" を使います。name は識別名ですが、この場合は pointer か keyboard も含めて指定する必要があります。ただしどちらかを削除すれば pointer と keyboard はセットで削除されるようです。

[vboxf12 ~] $ xinput remove-master "USB device pointer"
[vboxf12 ~] $ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=7 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=8 [slave pointer (2)]
⎜ ↳ VirtualBox Guest Service id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
∼ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=12 [floating slave]
∼ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=13 [floating slave]
∼ Synaptics Inc. Composite TouchPad / TrackPoint id=14 [floating slave]
∼ Synaptics Inc. Composite TouchPad / TrackPoint id=15 [floating slave]


削除すると、先ほど割り当てたデバイスが floating slave となります。この状態だとこのデバイスからの入力がどこにも届かないので、必要であれば reattach する必要があります。面倒であれば、また USB のようにホットプラグできるのなら、一度抜いて差し直した方が楽かもしれません。


こんな感じです。従来のデスクトップだとマルチポインターのメリットは・・・あまり感じませんね。ですが、マルチポインターに対応したアプリが出てくれば、なにか思いもよらない便利な使い方が出てくるかもしれません。マルチタッチなども、これをベースに対応できそうですしね。
スポンサーサイト
Date: 2009.11.18 Category: Linux  Comments (0) Trackbacks (0)

この記事へのコメント:


管理人のみ通知 :

トラックバック:


最新記事
最新コメント
ウィジェット
月別アーカイブ
カテゴリ
プロフィール

SC3WO06A

Author:SC3WO06A
FC2ブログへようこそ!


検索フォーム
RSSリンクの表示
リンク
このブログをリンクに追加する
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。