2017-10-14

XFCE4: 1つのデスクトップを2人で操作する

XI2という機能によって, 2個以上のキーボード・マウスペアを別々に使用することができるようになった (らしい).
色々と設定を試してみたが, かなり使いにくい. ウィンドウのフォーカス周りが何かと思い通りに動いてくれない.
私が使用しているWMはXFCE4で, 他は試していない. 以下では, XFCE4での振る舞いを元に, 設定例を示す.

概要

マスターと呼ばれるディバイスがあり, キーボード・マウスのペアが提供される.
フォーカスの移動の振る舞いが難解だが, Focus follows mouseに設定している場合, たぶん以下のような振る舞いだ.
  • あるマウスカーソルが1個も乗っていないウィンドウにマウスカーソルを移動させると, そのウィンドウにフォーカスが当たる.
  • フォーカスが当たると, どのマスターに属するマウスかによらず, 1個目のマスターのフォーカス当たるする.
  • あるマスターに属するマウスがあるウィンドウ上でクリックすると, すべてのキーボードのフォーカスが当たる場合と, そのマスターに属するキーボードのフォーカスだけが当たる場合がある.
  • 2番目以降のマスターに属するマウスがあるウィンドウ上でクリックすると, そのマスターに属するキーボードのフォーカスが当たる.
  • IBUSを使用できるのは, 1番目だけ.
  • ウィンドウのやサイズ変更ができるのは1番目のマスターだけ.

    用意するもの

    キーボード・マウスそれぞれ2個.
    以下では, Thinkpadのキーボード・マウスと, USB接続のマウス・キーボードを設定する例を示しながら説明する.

    設定方法

    2個のマスターを作成する. (名前は何でも良いが, ThinkPadのtpxと, USB接続のusbにした.)
    $ xinput --create-master tpx
    $ xinput --create-master usb
    
    Thinkpadのキーボード・マウスをマスターtpxに割り当てる.
    $ xinput --reattach 'AT Translated Set 2 keyboard' 'tpx keyboard'
    $ xinput --reattach 'TPPS/2 IBM TrackPoint' 'tpx pointer'
    
    これで, 2個のポインターが出てくる.

    上記の設定で, 構成は以下のようになる.

    $ xinput
    ⎡ Virtual core pointer                         id=2 [master pointer  (3)]
    ⎜   ↳ Virtual core XTEST pointer               id=4 [slave  pointer  (2)]
    ⎜   ↳ Microsoft Microsoft® Nano Transceiver v1.0 id=14 [slave  pointer  (2)]
    ⎜   ↳ Microsoft Microsoft® Nano Transceiver v1.0 id=16 [slave  pointer  (21)]
    ⎣ Virtual core keyboard                        id=3 [master keyboard (2)]
        ↳ Virtual core XTEST keyboard              id=5 [slave  keyboard (3)]
        ↳ Power Button                             id=6 [slave  keyboard (3)]
        ↳ Video Bus                                id=7 [slave  keyboard (3)]
        ↳ Sleep Button                             id=8 [slave  keyboard (3)]
        ↳ ThinkPad Extra Buttons                   id=11 [slave  keyboard (3)]
        ↳ Topre Corporation HHKB Professional      id=13 [slave  keyboard (22)]
        ↳ Microsoft Microsoft® Nano Transceiver v1.0 id=15 [slave  keyboard (3)]
    ⎡ tpx pointer                                  id=17 [master pointer  (18)]
    ⎜   ↳ TPPS/2 IBM TrackPoint                    id=10 [slave  pointer  (17)]
    ⎜   ↳ tpx XTEST pointer                        id=19 [slave  pointer  (17)]
    ⎣ tpx keyboard                                 id=18 [master keyboard (17)]
        ↳ AT Translated Set 2 keyboard             id=9 [slave  keyboard (18)]
        ↳ tpx XTEST keyboard                       id=20 [slave  keyboard (18)]
    
    Virtual core pointerに属するマウスでウィンドウの移動などを行える. 他のマスターで, ウィンドウをクリックしてフォーカスするウィンドウを選び, キーボード・マウスでそのウィンドウの操作ができる.
  • 0 件のコメント:

    コメントを投稿