And*_*ndy 3 icons multiple-monitors unity video-driver desktop-icons
我有一个在 Ubuntu 14.04 上运行 Unity 的双显示器设置
每当我启动机器时,系统似乎忘记了右侧显示屏上桌面图标的位置(通过 VGA 连接)。图标都很好地设置在屏幕的右侧,但是当我启动时,所有图标都聚集在启动器下方的左上角附近,并且彼此重叠,如下所示:
如何解决此问题,以便每次启动时桌面图标都显示在同一位置?左侧显示器上的图标(通过 HDMI 连接)始终正常,并且始终保持在相同的位置。
最有可能的问题是错误(与视频驱动程序相关)的结果。我假设第二个屏幕没有被记住,并且在启动(登录)过程的相当晚的阶段“虚拟地”重新连接。
通常,即使它是一个错误,也不意味着我们找不到解决方法。要是我们:
有效地解决了该错误。
您可以通过以下命令获取图标在桌面上的位置:
gvfs-info -a 'metadata::nautilus-icon-position' '<file>'
Run Code Online (Sandbox Code Playgroud)
这将输出桌面上图标的坐标,我们可以将其保存到文件中。如果我们在关闭计算机之前以这种方式对您的桌面进行快照,我们可以随后使用以下命令恢复图标的位置:
gvfs-set-attribute -t string '<file>' 'metadata::nautilus-icon-position' '500,500'
Run Code Online (Sandbox Code Playgroud)
(例如)
拍摄此类快照并恢复图标布局(取决于参数)的脚本将是:
gvfs-info -a 'metadata::nautilus-icon-position' '<file>'
Run Code Online (Sandbox Code Playgroud)
restore_desktop.py在脚本的 head 部分,在行中:
# --- set your localized desktop name below:
dt_name = "Desktop"
# ---
Run Code Online (Sandbox Code Playgroud)
设置桌面文件夹的本地化名称(荷兰语中的“Bureaublad”)
要获取当前图标布局的快照,请运行以下命令:
python3 /path/to/restore_desktop.py snapshot
Run Code Online (Sandbox Code Playgroud)要恢复以前拍摄的快照:
python3 /path/to/restore_desktop.py restore
Run Code Online (Sandbox Code Playgroud)
然后单击桌面并按F5刷新桌面。
桌面仍然需要从命令行刷新才能实际应用图标的恢复。这可以通过重新启动nautilus或按F5前面的桌面来完成。由于我们在启动时使用它,因此第一个选项可能是最优雅的选项。
我们需要在以当前用户身份注销时拍摄快照,以确保将最后一个图标布局记录到快照中。到目前为止,我找不到办法做到这一点。但是,与往常一样,有一种解决方法。如果我们包含命令
gnome-session-quit --poweroff
Run Code Online (Sandbox Code Playgroud)
在我们的脚本中,我们可以简单地调用脚本(使用正确的参数)来包含关闭过程并拍摄快照。
最终脚本变为:
gvfs-set-attribute -t string '<file>' 'metadata::nautilus-icon-position' '500,500'
Run Code Online (Sandbox Code Playgroud)
restore_icons.py在脚本的 head 部分,设置Desktop文件夹的适当(本地化)名称:
# --- set your localized desktop name below:
dt_name = "Desktop"
# ---
Run Code Online (Sandbox Code Playgroud)通过运行以下命令测试运行脚本:
python3 /path/to/restore_icons.py snapshot
Run Code Online (Sandbox Code Playgroud)
将拍摄当前布局的快照。De关闭菜单出现在您的桌面上,但通过单击桌面上的菜单外将其取消。
然后故意弄乱桌面上的图标(位置)。
最后,使用另一个参数再次运行脚本:
python3 /path/to/restore_icons.py restore
Run Code Online (Sandbox Code Playgroud)
等待 20 秒(请参阅底部的注释为什么包含在脚本中),您的桌面图标将恢复到您拍摄快照之前的状态。
如果一切正常,请添加快捷键:选择:系统设置 > “键盘” > “快捷方式” > “自定义快捷方式”。单击“+”并添加命令:
python3 /path/to/restore_icons.py snapshot
Run Code Online (Sandbox Code Playgroud)
这将是您需要使用的快捷方式来关闭您的计算机。
将恢复命令添加到启动应用程序:Dash > 启动应用程序 > 添加。添加命令:
python3 /path/to/restore_icons.py restore
Run Code Online (Sandbox Code Playgroud)
现在启动(登录)后 20 秒,您的图标将与您关闭时完全一样。
20 秒的休息时间是为了确保在恢复命令运行之前找到并重新连接第二个监视器。