web-dev-qa-db-ja.com

Gnome3のキーを使用してモニター間でマウスカーソルを移動する方法は?

デスクトップインターフェイスとしてGnome3を使用しています。 2台のモニターを使用しています。キーボードを使用して、たとえばctrl + alt + rightキーを使用して、マウスカーソルをあるモニターから別のモニターに移動できるようにしたいのです。これを設定するにはどうすればよいですか?

6
PhoenixPerson

以下のスクリプトは、leftrightの2つの引数で実行できます。

2台のモニターのセットアップ(任意の構成で左/右)で、スクリプトはマウスを左または右のcenterに移動します引数に応じてモニター。

enter image description here

スクリプト

#!/usr/bin/env python3
import subprocess
import sys

arg = sys.argv[1]

screeninfo = [
    s for s in subprocess.check_output("xrandr").decode("utf-8").split()\
    if s.count("+") == 2
    ]

if arg == "left":
    match = [s for s in screeninfo if s.endswith("+0+0")][0]
Elif arg == "right":
    match = [s for s in screeninfo if not s.endswith("+0+0")][0]

data = [item.split("x") for item in match.split("+")]
numbers = [int(n) for n in [item for sublist in data for item in sublist]]
coord = [str(int(n)) for n in [(numbers[0]/2)+numbers[2], (numbers[1]/2)+numbers[3]]]

subprocess.Popen(["xdotool", "mousemove", coord[0], coord[1]])

使い方

  1. スクリプトにはxdotoolが必要です。

    Sudo apt-get install xdotool
    
  2. スクリプトを空のファイルにコピーし、move_mouse.pyとして保存します

  3. スクリプトをテスト実行します。端末からコマンドを実行します。

    python3 /path/to/move_mouse.py left
    

    そして

    python3 /path/to/move_mouse.py right
    
  4. すべて正常に機能する場合は、使用可能な2つのショートカットにコマンドを追加します。[システム設定]> [キーボード]> [ショートカット]> [カスタムショートカット]を選択します。 「+」をクリックして、上記のコマンドを追加します。

注意

スクリプトはgnome固有ではありません。すべてのUbuntuディストリビューションで正常に動作するはずです。

説明

  • コマンドによってマウスを特定の位置に移動できます(例):

    xdotool mousemove 300 500
    
  • 両方の画面のターゲット位置(中央)を計算するには、接続された画面が任意のレイアウトに配置されていることを理解する必要があります。

    enter image description here

  • xrandrの出力では、次のような両方の画面、解像度、スパニングレイアウトでの位置に関する情報を見つけることができます。

    1280x1024+1680+128
    
  • 画面ごとの目標位置(中央)を取得するには、最初と2番目の数値(1280x1024、解像度)を2で除算し、続いて2つの計算された位置を画面ごとのオフセットに追加します(これで+ 1680 + 128場合)。それはまさにスクリプトが行うことです。

    その後、見つかった番号は、xdotool mousemove-コマンドを実行するための引数として使用されます。

6
Jacob Vlijm

Ubuntu 18.04にはカスタムショートカットがないため、 @ JacobVlijm's アプローチに従って、センターを計算し、シェルでエイリアスを記述しました。

Sudo echo -e "\
alias lt='xdotool mousemove 640 360' \n\  # lt means left
alias rt='xdotool mousemove 1920 512'\   # rt means right
" >> .bashrc
2
atongsa