red*_*ity 5 scripts window-manager multiple-monitors minimize
我有显示器和笔记本电脑屏幕,但“显示桌面”功能有问题。
笔记本电脑屏幕显示应该一直保留的小部件。主显示器正常使用。
每当我使用键盘快捷键(在我的情况下是 windows key + d),所有窗口都将被隐藏,但我只想隐藏特定监视器上的所有窗口。
这可能吗?
问题类似于https://superuser.com/questions/200945/how-can-i-make-the-show-desktop-function-only-hide-the-windows-on-a-specific-m,有显着差异我询问不同的操作系统。
下面的脚本可用于(仅)最小化左侧屏幕或右侧屏幕上的窗口。
该脚本使用1或2作为参数运行,具体取决于您想要最小化窗口的屏幕。
#!/usr/bin/env python3
import subprocess
import sys
scr = sys.argv[1]
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8")
# find the right side of the left screen
edge = [int(s.split("x")[0]) for s in get("xrandr").split() if "+0+" in s][0]
# read the window list
wlist = [w.split() for w in get(["wmctrl", "-lG"]).splitlines()]
for w in wlist:
# retrieve the window id and -position
w_id = w[0]; xpos = int(w[2])
# check the position of the window, decide action depending on arg.
test = xpos < edge if scr == "1" else xpos >= edge
if test:
# check if the window is "normal" and / or minimized
w_data = get(["xprop", "-id", w_id])
if all([not "_NET_WM_STATE_HIDDEN" in w_data,
"_NET_WM_WINDOW_TYPE_NORMAL" in w_data]):
subprocess.Popen(["xdotool", "windowminimize", w_id])
Run Code Online (Sandbox Code Playgroud)
该脚本需要wmctrl和xdotool
sudo apt-get install xdotool wmctrl
Run Code Online (Sandbox Code Playgroud)将脚本复制到一个空文件中,另存为min_screen.py
运行它:
python3 /path/to/min_screen.py 1
Run Code Online (Sandbox Code Playgroud)
最小化左侧屏幕上的窗口,以及
python3 /path/to/min_screen.py 2
Run Code Online (Sandbox Code Playgroud)
仅最小化右侧屏幕上的窗口
Unity,但与工作区(视口)不同,处理屏幕应该不会产生影响。tkinter例如空闲窗口或其他窗口)。如果这是一个问题,请提及。可以解决。+0+该脚本首先通过在 的输出中查找字符串 来查找左屏幕的右边缘xrandr,如下所示:
1680x1050+0+0
Run Code Online (Sandbox Code Playgroud)
第一部分1680是左屏幕的宽度。随后,我们所要做的就是查看窗口列表 ( wmctrl -lG) 并查看哪个窗口位于“下方”或“上方” 1680,并采取相应行动,使用命令最小化xdotool windowminimize <window_id>(或不最小化)。
最后的“测试”( mmiz):xprop -id <window_id>是检查我们是否正在处理“正常”窗口(而不是例如您的桌面,它也被列为窗口),以及窗口是否已经最小化。
另请参阅脚本中的注释。
要在 Lubuntu 中编辑全局键盘快捷键,请参阅Lubuntu 最小化所有显示桌面键盘快捷键?
在这种情况下:将此答案中的脚本保存到计算机上的文件中,使该文件可执行,打开/.config/openbox/lubuntu-rc.xml并替换
<keybind key="W-d">
<action name="ToggleShowDesktop"/>
</keybind>
Run Code Online (Sandbox Code Playgroud)
经过
<action name="Execute">
<command>/path/to/show_desktop.py 1</command>
</action>
Run Code Online (Sandbox Code Playgroud)
其中/path/to/show_desktop.py(当然)是脚本的路径,以及1目标2屏幕。使脚本可执行。
重新启动计算机以重新加载配置。
使脚本可执行并选择:系统设置>“键盘”>“快捷方式”>“自定义快捷方式”。单击“+”并添加命令:
/path/to/show_desktop.py 1
Run Code Online (Sandbox Code Playgroud)
...您选择的快捷方式
| 归档时间: |
|
| 查看次数: |
1416 次 |
| 最近记录: |