我发现gvfs-info
可以显示桌面图标的数据,包括位置,并且我可以xyz.png
通过执行以下操作来设置桌面上项目的位置信息:
gvfs-set-attribute ~/Desktop/xyz.png 'metadata::nemo-icon-position' 142,972
这会导致进一步gvfs-info
调用的输出,这与将图标拖动到该位置并调用gvfs-info
) 相同。不幸的是,Cinnamon 没有收到此更改的通知,并继续在旧位置显示图标。如果您重新启动,mdm
图标将位于新位置,但这对于使我的图标对齐来说有点过分了。 cinnamon --replace
,不会重新加载位置(但mdm
会在之后重新启动)。
是否有命令行方式通知 Cinnamon 重新读取此信息并更新桌面图标位置?或者是否有其他命令行实用程序允许我为 Cinnamon 设置桌面项目的 x,y 位置?
背景:
由于我将只支持 2 台显示器的损坏显卡换成了新显卡,因此我将所有 3 台显示器作为一台桌面:2 台横向,1 台纵向。整个设置看起来就像我的头像。我曾经在不同的系统上安装了第三个(横向)显示器,x2vnc
这样我就可以共享键盘和鼠标,在这种情况下我从未遇到过以下问题。
由于交换问题是,当我的桌面上有项目时,我右键单击桌面并选择“按名称对桌面项目进行排序”,图标就会消失(Linux Mint 17.1 Cinnamon,Ubuntu 12.04 Classic Gnome 上也出现同样的问题)。它们的项目/图标实际上位于左监视器上方的左上角。如果桌面上有足够的图标,一些图标会显示在左边框处。我可以选择所有图标并将它们拖动到右侧监视器以查看它们(它足够“高”),我还可以打开nemo
图标~/Desktop
并将其从那里拖动到监视器的可见区域。
我想做的是编写一个脚本来查询桌面图标的当前位置并将它们移动到其他可见的位置。
答案1
在尝试杀死各种cinnamon-
进程及其子进程之后,您发现杀死nemo -n
并重新启动它可以将文件定位在gvfs-set-attribute
.杀死nemo -n
也会重新启动所有子进程,这不太好。
然而,暂时将文件从桌面移动到临时目录然后再返回以使其重新出现在指定的位置就足够了:
$ touch Desktop/abc.txt
右键单击桌面并选择“按名称对桌面图标进行排序”(如果abc.txt
恰好显示)。
$ gvfs-info ~/Desktop/abc.txt | grep position:
metadata::nemo-icon-position: 64,322
$ gvfs-set-attribute ~/Desktop/abc.txt metadata::nemo-icon-position 64,722
$ mv abc.txt /var/tmp/; mv /var/tmp/abc.txt ~/Desktop/
并且 abc.txt 的图标可见。
答案2
我使用的是 Ubuntu 14.04,对 Cinnamon 不太熟悉。但Ubuntu Nautilus也使用“gvfs-set-attribute”来设置图标。
在 Ubuntu 中,您需要在发送“gvfs-set-attribute”命令后刷新桌面才能更新桌面图标布局。您可以通过按 F5 来做到这一点。 F5 命令也适用于 Cinnamon。如果您想在 bash 中执行此操作,可以使用小实用程序 xdotool 和以下命令来执行此操作:
xdotool 键 F5
有一个名为“Happy Desktop”的 bash 脚本,可以为您保存和恢复图标位置以及将它们组织到网格中。只需谷歌一下即可。