我需要更改远程计算机上工作区的名称。我查看了 xfconf-query 的文档,并成功使用列出了工作区名称
xfconf-query -c xfwm4 -p /general/workspace_names
结果开始于
Value is an array with 13 items:
我还 grep 查找包含我的工作区名称之一的文件,并找到 ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml 但是当我编辑文件并更改工作区名称之一时,然后打开工作区 GUI,它仍然具有相同的旧值。然而,如果我在 gui 中更改工作区名称,然后打开 ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml - 工作区已更新为新的工作区名称。
我对此进行了大量搜索,但我找不到任何东西告诉我如何指定数组中我想要更改的项目 - 以及我想要将其更改为什么。如果有人知道如何做到这一点,您可以发布一个示例吗
xfconf-query -c xfwm4 -p /general/workspace_names -o(ld) old_name -n(ew) new_name
答案1
我找不到专门执行此操作的命令行实用程序。必须指定所有工作区使用的xfconf-query
名称,因为它/general/workspace_names
是输出所示的数组。 Bash 脚本可能会对此有所帮助。
$ cat xfwm4-set-workspace-name
#!/bin/bash
# usage: xfwm4-set-workspace-name [number name]...
_OLD_IFS=$IFS IFS=$'\n'
ws_count=$(xfconf-query -c xfwm4 -p /general/workspace_count)
ws_names=($(xfconf-query -c xfwm4 -p /general/workspace_names | tail -n+3))
IFS=$_OLD_IFS
declare -i ws_number
while [ $# -gt 0 ]; do
ws_number=$1
shift
if [ $ws_number -lt 1 -o $ws_number -gt $ws_count ]; then
echo warning: invalid workspace number 2>/dev/null
shift
continue
fi
if [ $# -eq 0 ]; then
echo warning: no workspace name specified 2>/dev/null
break
fi
ws_name=$1
shift
ws_names[$((ws_number - 1))]=$ws_name
done
declare -a xfconf_sets
for i in ${!ws_names[@]}; do
xfconf_sets+=(-s "${ws_names[$i]}")
done
xfconf-query -c xfwm4 -p /general/workspace_names "${xfconf_sets[@]}"
$ ./xfwm4-set-workspace-name 2 'ws two' 3 'workspace three'