从暂停状态恢复后,如何重新启动 Unity?

从暂停状态恢复后,如何重新启动 Unity?

这听起来可能是一个愚蠢的想法,但我喜欢有一个透明的顶部面板,可以在 Compiz 配置设置管理器中配置,但当我从暂停状态恢复时,它不再透明,并且在调用仪表板时会出现图形故障。如果我通过运行命令“unity”重新启动 Unity,这个问题就会消失。所以我想知道是否有可能实现这一点?我尝试设置一个脚本,/etc/pm/sleep.d/如中所述如何在暂停恢复后执行命令?但它不起作用,我猜它是在我再次登录并且 Unity 恢复之前运行的。

有什么办法可以实现我的愿望吗,或者我应该放弃?

答案1

系统设置 > 键盘 > 快捷键 > 自定义快捷键

并创建一个新的:

在此处输入图片描述

然后设置一个简单的键盘快捷键(如Alt+)R,以便在暂停后轻松运行快速 Unity 重启。

我没有遇到您的错误,但我需要在每个新会话上运行此命令,因为 unity 不记得新会话上的边缘绑定。

答案2

直接来自systemd-suspend.service 手册

Immediately before entering system suspend and/or hibernation systemd-suspend.service (and the other mentioned units, respectively) will run all executables in /usr/lib/systemd/system-sleep/ and pass two arguments to them. The first argument will be "pre", the second either "suspend", "hibernate", or "hybrid-sleep" depending on the chosen action. Immediately after leaving system suspend and/or hibernation the same executables are run, but the first argument is now "post". All executables in this directory are executed in parallel, and execution of the action is not continued until all executables have finished.

我做了一些测试,发现如果你把一个脚本(标记为所有人都可以执行,可以通过 实现chmod a+x)放在/lib/systemd/system-sleep没有 /usr,它将按所述执行。

然而,有一个缺点会让你觉得它不起作用:环境不同。图形命令不工作。可能有办法解决这个问题,但默认情况下,unity --replace 将失败因为它无法连接到 X 服务器(因此,如果您按下 CTRL-ALT-F1 并进入实际控制台而没有篡改,则所有命令都将不起作用)。

好的,我刚刚暂停打字来做一些研究:在查看了基本 chroot wiki(因为我在 chroots 中遇到了同样的问题),我发现如果你手动调用xhost + 暂停时,图形命令(在我的情况下zenity --info --text "1:$1 2:$1")正常运行。但是,您无法xhost +从脚本中调用。您要做的就是将一个程序添加到“启动应用程序”中,以便xhost +在您登录时自动调用(将其添加到那里而不是添加到,.bashrc因为如果添加到,.bashrc它将在您每次打开终端仿真器时运行)。在 Unity 上可能会有所不同,但在 Ubuntu MATE 上,我可以转到System → Preferences → Personal → Startup Applications并单击添加来执行此操作。

/lib/systemd/system-sleep/restart-unity然后,创建一个包含以下内容的文件:

#!/bin/bash
export DISPLAY=:0
if [[ "$1" == "post" && "$2" == "suspend" ]]
then
    sleep 5
    unity --replace
fi

并运行sudo chmod a+x /lib/systemd/system-sleep/restart-unity(确保该文件归 root 所有且只能由 root 写入)。

请注意必须使用bash。这是因为“if”语句。当我在中手动尝试该语句时sh,我从该部分得到了各种错误&&

存在这个sleep是因为如果没有它,unity --replace就无法连接到 X 服务器(或看起来如此)。

根据我自己对 Zesty 的测试,这应该可行。

我刚刚花了 15 分钟试图弄清楚为什么它不起作用,结果才意识到我忘记了那export DISPLAY=:0句话。

答案3

这些看起来很有用:

这是您看到的故障吗?

睡眠后透明度不佳

相关内容