[GNOME] 备份菜单布局

[GNOME] 备份菜单布局

代码保存到sh文件后执行生成恢复脚本

#!/usr/bin/env bash

out_file="${1:-gnome_menu.sh}"

# favorite-apps
#-------------------------------------------------------------
dash=$(gsettings get org.gnome.shell favorite-apps)
cat << EOF > "$out_file"
#!/usr/bin/env bash
# 恢复菜单布局会导致gnome登出, 请注意保存文档

# dash
gsettings set org.gnome.shell favorite-apps "$dash"

EOF

# 循环生成菜单, 过滤掉空文件夹
#-------------------------------------------------------------
new_menus="["
idx=$(gsettings get org.gnome.desktop.app-folders folder-children)
menus=${idx:1:-1}
menus=$(echo "$menus" | sed 's/, /,/g')

IFS=',' read -r -a menu_arr <<< "$menus"
for _menu in "${menu_arr[@]}"; do
  # 去掉引号
  menu=${_menu:1:-1}
  apps="$(gsettings get org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/${menu}/ apps)"
  apps="$(echo "$apps" | sed 's/\$/\\$/g')"
  name="$(gsettings get org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/${menu}/ name)"
  name="${name:1:-1}"
  if [[ "$apps" == "@as []" || "$name" == "" ]]; then
    continue
  fi
  new_menus="${new_menus}${_menu},"
  cat << EOF >> "$out_file"
# $name
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/${menu}/ apps "$apps"
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/${menu}/ name "$name"
# gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/${menu}/ categories "['']"
# gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/${menu}/ excluded-apps "['']"

EOF
done
if [[ "${new_menus: -1}" == "," ]]; then
  new_menus="${new_menus:0:-1}"
fi
new_menus="${new_menus}]"

# 菜单文件夹索引
#-------------------------------------------------------------
cat << EOF >> "$out_file"
# 菜单文件夹索引
gsettings set org.gnome.desktop.app-folders folder-children "$new_menus"

EOF

# 排序
#-------------------------------------------------------------
order=$(gsettings get org.gnome.shell app-picker-layout)
cat << EOF >> "$out_file"
# 排序
gsettings set org.gnome.shell app-picker-layout "$order"

EOF

chmod +x "$out_file"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值