如何从命令行更改 Xfce 工作区名称?

如何从命令行更改 Xfce 工作区名称?

我需要更改远程计算机上工作区的名称。我查看了 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'

相关内容