デスクトップインターフェイスとしてGnome3を使用しています。 2台のモニターを使用しています。キーボードを使用して、たとえばctrl + alt + rightキーを使用して、マウスカーソルをあるモニターから別のモニターに移動できるようにしたいのです。これを設定するにはどうすればよいですか?
以下のスクリプトは、left
とright
の2つの引数で実行できます。
2台のモニターのセットアップ(任意の構成で左/右)で、スクリプトはマウスを左または右のcenterに移動します引数に応じてモニター。
#!/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]])
スクリプトにはxdotool
が必要です。
Sudo apt-get install xdotool
スクリプトを空のファイルにコピーし、move_mouse.py
として保存します
スクリプトをテスト実行します。端末からコマンドを実行します。
python3 /path/to/move_mouse.py left
そして
python3 /path/to/move_mouse.py right
すべて正常に機能する場合は、使用可能な2つのショートカットにコマンドを追加します。[システム設定]> [キーボード]> [ショートカット]> [カスタムショートカット]を選択します。 「+」をクリックして、上記のコマンドを追加します。
スクリプトはgnome
固有ではありません。すべてのUbuntuディストリビューションで正常に動作するはずです。
コマンドによってマウスを特定の位置に移動できます(例):
xdotool mousemove 300 500
両方の画面のターゲット位置(中央)を計算するには、接続された画面が任意のレイアウトに配置されていることを理解する必要があります。
xrandr
の出力では、次のような両方の画面、解像度、スパニングレイアウトでの位置に関する情報を見つけることができます。
1280x1024+1680+128
画面ごとの目標位置(中央)を取得するには、最初と2番目の数値(1280x1024、解像度)を2で除算し、続いて2つの計算された位置を画面ごとのオフセットに追加します(これで+ 1680 + 128場合)。それはまさにスクリプトが行うことです。
その後、見つかった番号は、xdotool mousemove
-コマンドを実行するための引数として使用されます。
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