如何在启动应用程序后强制应用程序窗口自动最大化?
我试图使用Docky,然后我将其删除,之后我的浏览器(Chromium)无法在最大高度打开,每次我都应该自己最大化。 (XFCE桌面)
如何启动应用程序(任何)最大化
通过下面的脚本启动应用程序,您可以强制任何应用程序*
启动最大化。 如果您通过运行脚本的命令替换( .desktop
副本) .desktop
文件中的主命令(请参阅下面的进一步说明)或将其添加为快捷列表快捷方式,您可以完全按照自己的意愿实现。
( *
某些应用程序具有固定的,不可更改的窗口大小,某些窗口在可能已打开的窗口中打开新选项卡 )
关于脚本
该脚本使用以下命令运行:
python3 /path/to/script
剧本:
- 首先运行命令以打开应用程序
- 为了防止计时问题,它等待应用程序的(新)窗口出现(通过在
wmctrl -lp
和相应窗口的id
之间找到匹配)在wmctrl -lp
-command的输出中(仅15秒,到防止无限循环) -
窗口出现后,它会使用以下命令最大化窗口:
xdotool windowsize
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
-
XFCE版本:
-
用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最大化。
Unity版本:
-
用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
文件中,您必须使用绝对路径; ~
不会起作用的例子。 这将计入/usr/share/applications
, ~/.local/share/applications
中的.desktop
文件以及启动应用程序中的命令(实际上由~/.config/autostart
.desktop
文件调用)。