如何阻止人们查看我打开的应用程序?
我不希望别人看到我打开的应用程序。 我希望能够通过快捷键组合立即隐藏窗口,这样我就可以保存我的工作了。 我也想隐藏他们在启动器中的存在。
我试图解决它,但没有找到任何解决方案。
重要编辑
使用命令:
xdotool windowunmap
和
xdotool windowmap
事实certificate,有一种方法可以暂时完全掩盖应用程序窗口的存在。 即使是wmctrl -l
命令也不会再列出窗口了。
我将在下面发布新答案,并将第一个答案作为第二个选项。
新答案:
隐藏窗口及其所属的应用程序
使用下面的脚本,您可以从桌面完全隐藏(取消映射)应用程序窗口。 它们的存在根本不可见,因为它们的启动器图标也不会显示箭头。
如何使用:
-
该脚本需要
wmctrl
和xdotool
来获取窗口属性,它们所属的pid以及管理所选应用程序的窗口:sudo apt-get install wmctrl sudo apt-get install xdotool
-
将下面的脚本复制到一个空文件中
-
在脚本的head部分,列出您希望(能够)快速隐藏窗口的应用程序。 使用格式:
applications = ["firefox", "gedit"]
-
将其另存为
hide_windows.py
-
使用短按键运行脚本:选择:系统设置>“键盘”>“快捷方式”>“自定义快捷方式”。 单击“+”并添加命令:
python3 /path/to/hide_windows.py
-
现在,如果您按下组合键一次,则已完全隐藏已定义应用程序的窗口,其启动器图标将不会显示应用程序运行。
- 再按一次,所有窗口将再次出现。
剧本:
#!/usr/bin/env python3 import subprocess import getpass import os #--- applications = ["chrome", "firefox", "gedit"] #--- windowlist = os.environ["HOME"]+"/"+".windowlist.txt" user = getpass.getuser() get = lambda x: subprocess.check_output(["/bin/bash", "-c", x]).decode("utf-8") wlist = [l for l in get("wmctrl -lp").splitlines()] procs = sum([[p.split()[0] for p in get("ps -u "+user).splitlines() if app in p] for app in applications], []) matches = sum([[l.split()[0] for l in wlist if p in l] for p in procs], []) if len(matches) != 0: with open(windowlist, "wt") as out: for match in matches: out.write(match+"\n") subprocess.Popen(["/bin/bash", "-c", "xdotool windowunmap "+match]) else: try: with open(windowlist) as r: for l in r.readlines(): subprocess.Popen(["/bin/bash", "-c", "xdotool windowmap "+l]) os.remove(windowlist) except FileNotFoundError: pass
这个怎么运作
调用时,脚本会列出应用程序中的所有窗口,这些窗口设置在脚本的头部。 随后,它做了两件事:
-
它将窗口的窗口ID写入隐藏文件(以便能够重新映射窗口,因为它们甚至从
wmctrl -l
的输出中消失) -
它取消了窗户的映射
-
再次调用时,脚本将找不到任何要取消映射的窗口,它将使用窗口ID读取文件并恢复窗口。
第一个答案:
(完美的工作,但另一种方法和更多的工作)
隐藏Launcher打开的应用程序?
我怀疑是否可以完全删除Unity和Launcher中应用程序的所有痕迹。 至少不是通过简单的修改,因为Launcher旨在显示GUI应用程序的表示。
但是,如果您的目标是阻止人们查看您当前打开的应用程序, 则可以通过简单的修改来完成。
可以轻松完成的两件事的组合
我建议的解决方案存在两个措施:
-
对发射器中的应用程序的误导性表示
我在启动器中更改了Firefox的表示forms:
-
该脚本需要
wmctrl
和xdotool
来获取窗口属性,它们所属的pid以及管理所选应用程序的窗口:sudo apt-get install wmctrl sudo apt-get install xdotool
-
将下面的脚本复制到一个空文件中
-
在脚本的head部分,列出您希望(能够)快速隐藏窗口的应用程序。 使用格式:
applications = ["firefox", "gedit"]
-
保存它是
hide_windows.py
-
使用短按键运行脚本:选择:系统设置>“键盘”>“快捷方式”>“自定义快捷方式”。 单击“+”并添加命令:
python3 /path/to/hide_windows.py
现在通过运行您的应用程序并按下组合键进行测试。 定义的应用程序的窗口将最小化,它们的启动器图标是一个谜语。
剧本
#!/usr/bin/env python3 import subprocess import getpass #--- applications = ["firefox", "gedit"] #--- get = lambda x: subprocess.check_output(["/bin/bash", "-c", x]).decode("utf-8") wlist = [l for l in get("wmctrl -lp").splitlines()] user = getpass.getuser() procs = sum([[p.split()[0] for p in get("ps -u "+user).splitlines() if app in p] for app in applications], []) for match in sum([[l.split()[0] for l in wlist if p in l] for p in procs], []): subprocess.Popen(["/bin/bash", "-c", "xdotool windowminimize "+match])