Linux Mint 19(すべての「ドット」バージョン)には、「アプリケーションの実行」を追加するオプションがあります。
そこに次のスクリプトを追加しました。
#!/usr/bin/env sh
export DISPLAY=:0.0
/usr/bin/thunderbird &
sleep 2
export DISPLAY=:0.0
/usr/bin/google-chrome-stable &
sleep 2
export DISPLAY=:0.1
env WINEPREFIX="/home/<user>/.wine" wine C:\\windows\\command\\start.exe /Unix /home/<user>/.wine/dosdevices/c:/ProgramData/Microsoft/Windows/Start\ Menu/Programs/Notepad++.lnk &
このスクリプトの目的は簡単です。
- 最初のモニターでThunderbirdを実行してください。
- 最初のモニターでGoogle Chromeを起動します。
- 2番目のディスプレイでNotepad ++を実行する
Notepad ++が起動しないことを除いて、すべてがうまく機能します。
私が今まで試したこと:
- 順序を変更 - すべてのタスクを停止します。
- 時間の短縮
sleep
– 行動の変化なし - ログを確認しました。何も見つかりません(使用
gnome-system-log
および含まれているログビューア)実行中のファイルまたは起動されたプログラムに関する情報 - シェルから直接コマンドを実行 - 完全に動作
#!/usr/bin/env sh
次に変更#!/usr/bin/env bash
- 動作を変更しません。
私が試すことができる他のものがありますか?
ベストアンサー1
まあ、これは思ったより難しかったです。
問題は簡単です。export DISPLAY=:0.1
この問題が原因で発生します。
以下は、リストの3番目の項目に対する試みです。セカンドモニタ。
検索してみると、次のような文が見つかりました。マルチモニタに切り替えるときのウィンドウの配置(リンクはhttps://icyrock.com/blog/tag/xdotool/)。
最後に、私のファイルは次のようになります。
#!/usr/bin/env bash
env WINEPREFIX="/home/<user>/.wine" wine C:\\windows\\command\\start.exe /Unix /home/<user>/.wine/dosdevices/c:/ProgramData/Microsoft/Windows/Start\ Menu/Programs/Notepad++.lnk &
sleep 1
export DISPLAY=:0.0
/usr/bin/thunderbird &
sleep 1
export DISPLAY=:0.0
/usr/bin/google-chrome-stable &
sleep 3
# move to 2nd monitor
# https://icyrock.com/blog/tag/xdotool/
# https://unix.stackexchange.com/questions/96066/window-placement-when-switching-to-multiple-monitors
wid=`xdotool search --name Notepad++|head -1`
max_state=`xprop -id $wid _NET_WM_STATE`
wmctrl -ir $wid -b remove,maximized_vert,maximized_horz
eval `xdotool getwindowgeometry --shell $wid`
new_x=1600
if [[ "$X" -ge "$new_x" ]]; then
new_x=0
fi
xdotool windowmove $wid $new_x $Y
if [ -z "${max_state/*_NET_WM_STATE_MAXIMIZED_*/}" ]; then
wmctrl -ir $wid -b add,maximized_vert,maximized_horz
fi
xdotool windowraise $wid
今、すべてがうまくいきます。
Notepad ++が最初に起動します。初期化する時間を与えてから、2番目のディスプレイに移動します。