我欣赏 Linux 胜过专有操作系统的一点是,几乎所有事情都可以通过命令行进行管理和配置。这意味着几乎所有事情都可以在本地配置,甚至可以通过 SSH 登录连接远程配置。有时这需要花费一些时间在互联网搜索上,但如果你能想到一项任务,它很可能可以通过命令行完成。
问题
有时需要使用命令行对桌面进行远程修改。在这个特定的案例中,我需要在远程用户的要求下,将 Xfce 面板上的工作区数量从四个减少到三个。这个配置只花了大约 20 分钟在互联网上搜索。
xfwm4 的默认工作区计数和许多其他设置可以在 /usr/share/xfwm4/defaults 文件中找到并更改。因此,将 workspace_count=4 设置为 workspace_count=2 会更改主机上所有用户的默认设置。此外,非 root 用户可以运行 xfconf-query 命令来查询和设置 xfwm4 窗口管理器的各种属性。它应该由需要更改的用户帐户使用,而不是 root 用户。
在下面的示例中,我首先验证了当前 四个 工作区的设置,然后将数量设置为 两个,最后确认了新设置。
[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count
4
[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count -s 2
[user@test1 ~]# xfconf-query -c xfwm4 -p /general/workspace_count
2
[user@test1 ~]#
此更改立即生效,用户无需重启甚至注销并重新登录即可看到。我在我的工作站上玩得很开心,看着工作区切换器在我输入命令设置不同数量的工作区时发生变化。这些天我尽可能地自娱自乐。 ;-)
更多探索
既然我已经解决了问题,我决定更详细地探索 xfconf-query 命令。不幸的是,这个工具没有 man 或 info 页面,/usr/share 中也没有任何文档。通常使用 -h 选项作为后备方案,但结果提供的信息很少。
$ xfconf-query -h
Usage:
xfconf-query [OPTION…] - Xfconf commandline utility
Help Options:
-h, --help Show help options
Application Options:
-V, --version Version information
-c, --channel The channel to query/modify
-p, --property The property to query/modify
-s, --set The new value to set for the property
-l, --list List properties (or channels if -c is not specified)
-v, --verbose Verbose output
-n, --create Create a new property if it does not already exist
-t, --type Specify the property value type
-r, --reset Reset property
-R, --recursive Recursive (use with -r)
-a, --force-array Force array even if only one element
-T, --toggle Invert an existing boolean property
-m, --monitor Monitor a channel for property changes
这没有提供太多帮助,但无论如何我们仍然可以从中弄清楚很多。首先,通道 是可以修改的属性的分组。我在上面对 general 通道进行了更改,属性是 workspace_count。让我们看看完整的通道列表。
$ xfconf-query -l
Channels:
xfwm4
xfce4-keyboard-shortcuts
xfce4-notifyd
xsettings
xfdashboard
thunar
parole
xfce4-panel
xfce4-appfinder
xfce4-settings-editor
xfce4-power-manager
xfce4-session
keyboards
displays
keyboard-layout
ristretto
xfcethemer
xfce4-desktop
pointers
xfce4-settings-manager
xfce4-mixer
给定通道的属性也可以使用以下语法查看。我使用了 less 分页器,因为结果是长数据流。我已修剪了下面的列表,但保留了足够的内容以查看您期望找到的条目类型。
$ xfconf-query -c xfwm4 -l | less
/general/activate_action
/general/borderless_maximize
/general/box_move
/general/box_resize
/general/button_layout
/general/button_offset
<SNIP>
/general/workspace_count
/general/workspace_names
/general/wrap_cycle
/general/wrap_layout
/general/wrap_resistance
/general/wrap_windows
/general/wrap_workspaces
/general/zoom_desktop
(END)
您可以以这种方式探索所有通道。我发现这些通道通常对应于 设置管理器 中的各种设置。这些属性是您将在这些对话框中设置的属性。请注意,您在 设置管理器 对话框窗口中找到的并非所有图标都是 Xfce 桌面的一部分,因此没有与它们对应的通道。Screensaver 就是一个例子,因为它是一个通用的 GNU 屏幕保护程序,而不是 Xfce 独有的。设置管理器 只是 Xfce 定位许多这些配置工具的一个很好的中心位置。
文档
如前所述,xconf-query 命令似乎没有任何 man 或 info 页面,我在互联网上找到了许多不正确且文档记录不完善的信息。我为 Xfce4 找到的最佳文档在 Xfce 网站上,有关 xconf-query 的一些具体信息可以在这里找到。
2 条评论