听起来很简单;xdotool
选择桌面,模拟F5按键并将焦点返回到调用窗口/程序。
谷歌搜索后,虽然它听起来不再简单了。
我需要从 bash / gnome-shell 执行此操作。
有任何想法吗?
这个项目与这个问答有关,由于不同尺寸的显示器,图标从左屏幕下降到一个黑色的整体:
感谢Podesta 的帮助,我创建了以下代码:
TestIcons () {
[[ $TestSeconds == "" ]] || [[ $TestSeconds == 0 ]] && TestSeconds=5
local i Position File
for (( i=0; i<${#IconsArr[@]}; i=i+ICON_FLD_CNT )) ; do
File="$ICONS_DIR"/"${IconsArr[((i+ICON_NAME_NDX))]}"
Position="${IconsArr[((i+ICON_COL_NDX))]},${IconsArr[((i+ICON_ROW_NDX))]}"
gvfs-set-attribute -t string "$File" \
'metadata::nautilus-icon-position' "$Position"
done
wmctrl -k on # Show desktop
xdotool key F5 # Refresh desktop (show icon new positions)
sleep $TestSeconds # Pause for view
wmctrl -k off # Restore windows
for (( i=0; i<${#OldIconsArr[@]}; i=i+ICON_FLD_CNT )) ; do
File="$ICONS_DIR"/"${OldIconsArr[((i+ICON_NAME_NDX))]}"
Position="${OldIconsArr[((i+ICON_COL_NDX))]},${OldIconsArr[((i+ICON_ROW_NDX))]}"
gvfs-set-attribute -t string "$File" \
'metadata::nautilus-icon-position' "$Position"
done
wmctrl -k on # Show desktop
xdotool key F5 # Refresh desktop (show icon new positions)
wmctrl -k off # Restore windows
} # TestIcons
这是屏幕的样子:
@WinEunuuchs2Unix下面的脚本是最终的解决方案。我原来的答案在最后。
xdotools
在类似情况下可能有用的其他一些命令:如果您的窗口管理器有一个显示桌面命令,则最小化并恢复所有窗口会很有用。通常设置为
ctrl+alt+d
:如果要保存当前活动的窗口,以便稍后将其恢复,可以使用:
Ti 最小化您可以使用的窗口。将它添加到循环允许您最小化所有窗口,作为 show dekstop 的替代方法。
要使您保存的活动窗口回到焦点:
要关闭活动窗口,请使用:
最重要的是,您可以在活动窗口中使用的所有命令,您实际上可以搜索并应用于特定情况。例如,根据标题搜索此特定窗口。
有许多不同的搜索窗口的方法,根据标题、类、是否可见等。它还可以操纵窗口位置和鼠标。xdotol 的联机帮助页非常全面。将它们与 bash 脚本结合起来可以实现大多数事情的自由。