명령줄에서 Xfce 작업공간 이름을 변경하는 방법은 무엇입니까?

명령줄에서 Xfce 작업공간 이름을 변경하는 방법은 무엇입니까?

원격 컴퓨터의 작업공간 이름을 변경해야 합니다. xfconf-query에 대한 문서를 보고 다음을 사용하여 작업공간 이름을 성공적으로 나열했습니다.

xfconf-query -c xfwm4 -p /general/workspace_names

결과는 다음으로 시작됩니다.

Value is an array with 13 items:

또한 내 작업공간 이름 중 하나가 포함된 파일을 찾아 ~/.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_namesBash 스크립트가 도움이 될 수 있습니다.

$ 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'

관련 정보