Dockyを使用しようとした後、Dockyを削除した後、ブラウザー(Chromium)を最大の高さで開くことができません。 (XFCEデスクトップ)
以下のスクリプトを使用してアプリケーションを起動すると、any application*
を最大化して強制的に起動できます。 .desktop
ファイルの(コピー)のmainコマンドを、スクリプトを実行するコマンド(以下の方法を参照)で置き換えるか、クイックリストショートカットとして追加するか、あなたが望むものを正確に達成してください。
(*
一部のアプリケーションは、固定された変更不可能なウィンドウサイズを持ち、一部のウィンドウは既に開かれている可能性のあるウィンドウで新しいタブを開く)
スクリプトは次のコマンドで実行されます。
python3 /path/to/script <application>
スクリプト:
pid
とid
の一致を見つけることにより)wmctrl -lp
-コマンドの出力に表示されるのを待ちます(無限ループを防ぐために、わずか15秒間)ウィンドウが表示されたら、次のコマンドでウィンドウを最大化します。
xdotool windowsize <window_id> 100% 100%
コード
#!/usr/bin/env python3
import subprocess
import getpass
import time
import sys
app = sys.argv[1]
user = getpass.getuser()
get = lambda x: subprocess.check_output(x).decode("utf-8")
ws1 = get(["wmctrl", "-lp"]); t = 0
subprocess.Popen(app)
while t < 30:
ws2 = [(w.split()[2], w.split()[0]) for w in get(["wmctrl", "-lp"]).splitlines() if not w in ws1]
procs = sum([[(w[1], p) for p in get(["ps", "-u", user]).splitlines() \
if app[:15].lower() in p.lower() and w[0] in p] for w in ws2], [])
if len(procs) > 0:
subprocess.call(["xdotool", "windowsize", "-sync", procs[0][0] , "100%", "100%"])
break
time.sleep(0.5)
t = t+1
スクリプトにはwmctrl
とxdotool
の両方が必要です
Sudo apt-get install wmctrl xdotool
上記のスクリプトを空のファイルにコピーし、run_maximized.py
として保存します
次に、.desktop
ファイルを編集します。
グローバルな.desktop
ファイルをローカルにコピーします。
cp /usr/share/applications/chromium-browser.desktop ~/.local/share/applications
geditでファイルを開きます。
gedit ~/.local/share/applications/chromium-browser.desktop
次の行を参照します。
Exec=chromium-browser %U
(Exec=
で始まる最初の行です
次のように変更します。
Exec=python3 /path/to/script.py chromium-browser
/path/to/script.py
を実際のパスに置き換える必要がある場所。
ログアウトしてからログインし直してください。今後、ChromiumランチャーはChromiumを最大化して開きます。
geditでファイルを開きます。
gedit ~/.local/share/applications/chromium-browser.desktop
次の行を参照します。
Actions=NewWindow;Incognito;TempProfile;
次のように変更します。
Actions=NewWindow;Incognito;TempProfile;divider1;Open maximized;
ファイルの一番下に以下のセクションを追加します。
[Desktop Action Open maximized]
Name=Open maximized
Exec=python3 /path/to/script.py chromium-browser
OnlyShowIn=Unity;
[Desktop Action divider1]
Name=.....................................
OnlyShowIn=Unity;
/path/to/script.py
を実際のパスに置き換える必要がある場所。
ログアウトして再度ログインします。これから、Chromiumランチャーは次のようになります。
.desktop
ファイルでは、must絶対パスを使用します。たとえば、~
は機能しません。これは、.desktop
、/usr/share/applications
の~/.local/share/applications
ファイル、およびスタートアップアプリケーション(.desktop
の~/.config/autostart
ファイルによって実際に呼び出される)のコマンドに対してカウントされます。