桌面图标位置在 MATE 中保存在哪里?

桌面图标位置在 MATE 中保存在哪里?

我正在使用 Ubuntu MATE 20.04 LTS。我的桌面上有很多精心排列的图标。如下所示:

图标

dconf我在/中找不到图标位置属性gsettings

我如何备份他们的当前位置以便以后恢复它们?这样的文件位于哪里?

答案1

在主文件夹中快速grep找到以下文件名并显示所需信息:

~/.local/share/gvfs-metadata/home

gio info它是由或操作的特殊文件gio set


每个图标都有自己的元数据属性。因此可以:

  • 阅读

    gio info -a "metadata::caja-icon-position" ~/Desktop/file1.txt
    

    得到类似的东西

    attributes:
      metadata::caja-icon-position: 922,382
    

    其中 922 和 382 是file1.txt图标的水平和垂直像素位置。

  • 写给

    gio set -t string ~/Desktop/file1.txt metadata::caja-icon-position 300,400
    

    移动文件1.txt图标移动到 300 和 400 像素坐标指定的位置。

    然后需要通过调用来要求 Caja 刷新桌面caja -q

答案2

我写了一个 bash 脚本,用于保存和加载图标位置。用法是

./icons.sh save [name]
./icons.sh load [name]

name 参数是可选的,以防您想要保存不同的配置。您可能需要调整 #config info 下的行以适应您的操作系统。

#!/bin/bash

#config info
desktop=~/Desktop/*
metastr="metadata::caja-icon-position"
metafile=~/.config/caja/desktop-metadata
saveicon=~/.icon.txt
savemeta=~/.iconmeta.txt
file_manager=caja

saveinfo(){
cat /dev/null > "$saveicon"
for f in $desktop;do
p=$(gio info -a "$metastr" "$f"|grep "$metastr"|awk '{print $2}')
echo "$f;$p">>"$saveicon"
done
#save metafile
cp "$metafile" "$savemeta"
zenity --notification --window-icon="/usr/share/icons/gnome/48x48/categories/applications-other.png" --text "Icon Positions Saved"
}

loadinfo(){
str=$(cat "$saveicon")
if [ -z "$str" ];then
echo "$saveicon not found"
exit
fi

for fl in $str;do
f=$(echo "$fl"|cut -d';' -f1)
p=$(echo "$fl"|cut -d';' -f2)
gio set -t string "$f" "$metastr" "$p"
done
#load metafile
cp "$savemeta" "$metafile"
#restart file manager
pkill "$file_manager"
}

if [ -z "$1" ];then
echo "Saves or loads icon positions"
echo " Usage:"
echo "$0 save [name]"
echo "$0 load [name]"
exit
fi

if [ -n "$2" ];then
  saveicon="$2"
  savemeta="$2_meta"
fi

if [ "$1" = "save" ];then
saveinfo
fi

if [ "$1" = "load" ];then
loadinfo
fi

相关内容