这是您从未尝试过的最佳 Linux 桌面定制工具

说到定制Linux桌面,很多人第一时间想到的就是康基,一个系统监视器,可以在桌面上显示各种信息。这是一款可靠的应用程序,但它并不是唯一值得使用的应用程序。我最近开始使用一个名为 EWW 的新工具,与它的名字相反,它做得非常出色。 EWW 可以显示时钟、系统监视器和天气信息等内容,并具有方便的 GUI。

很高兴知道: 9 个隐藏的自定义设置可充分利用您的 Mac

什么是 EWW?

电子世界代表 ElKowar 的 Wacky Widgets,顾名思义,它是一个用于 Linux 桌面的小部件系统。 EWW 允许您在桌面上创建和显示自定义小部件。像钟表之类的东西,系统监视器、天气信息、音乐控制以及几乎任何您能想到的东西,并且它独立于任何特定的桌面环境或窗口管理器。

EWW 是一个用 Rust 编写的独立程序。它使用自己的配置语言 Yuck(不是拼写错误),该语言受到 Lisp S 表达式的启发。它基本上意味着您以结构化文本格式(带有大量括号)编写小部件布局。如果您曾经编辑过 HTML 或 XML 文件,您会感觉有些熟悉。

您可以定义小部件(类似于模板或组件)和窗口(即在 Yuck 配置文件中放置小部件的容器或表面)。对于样式,EWW 使用 CSS/SCSS,是的,与网页样式相同的 CSS。

因为它利用 GTK 进行渲染,所以您可以将 CSS 样式应用到您的小部件。这意味着您可以使用许多人认为易于使用的语言对字体、颜色、间距和其他视觉方面进行大量控制。

使用EWW

最初,我有点害怕,但事实证明 EWW 是相当容易管理的。您可以通过发行版的存储库或从源代码构建来安装 EWW。安装后,使用 EWW 需要执行几个步骤。

默认情况下,EWW 查找配置目录。在那里,您将创建至少两个文件。一种用于小部件定义(通常名为 eww.yuck),另一种用于样式定义(名为 eww.scss 或 .css)。 Yuck 文件是您声明小部件和窗口的位置,SCSS/CSS 文件是您放置样式的位置。

一旦您看到示例,EWW 的配置语法就非常符合逻辑。例如,您可以为显示 CPU 使用百分比的 CPU 监视器定义一个小部件,或者为显示当前时间的时钟小部件。每个小部件都可以包含基本的 GUI 元素,如框、标签、图像、进度条、按钮等,EWW 将其作为内置构建块提供。

例如,您可以定义一个名为“sidebar”的窗口,其中有一个包含各种信息的垂直框:CPU、RAM、磁盘使用情况、天气等。在 Yuck 语法中,它看起来像:

 (defwindow sidebar
    :monitor 0
    :geometry (geometry :x "0%" :y "0%" :width "200px" :height "100%" :anchor "top left")
  (box :orientation "vertical"
      (widget1 ...)
      (widget2 ...)
      ...))

这在监视器 0 上定义了一个名为 sidebar 的窗口,以一定的宽度/高度锚定在屏幕的左上角。在它里面,有一个包含 widget1、widget2 等的垂直框。这些小部件将使用构造在配置中的其他位置定义。

EWW VS 康基

Conky 是一款轻量级系统监视器,早在 2000 年代初就已出现。它用 C/C++ 编写,支持 Lua,旨在直接在桌面或自己的窗口中显示系统统计信息,例如 CPU、RAM、磁盘和网络使用情况。其主要目的是被动的、实时的信息显示。

另一方面,EWW 是一个通用的小部件工具包。它超越了监控,允许您构建交互式元素,如酒吧、音乐播放器和应用程序启动器。 Conky 专注于系统统计数据,而 EWW 可用于创建几乎任何类型的小部件或 UI 组件,并具有在需要时显示和隐藏元素的附加功能。

这两种工具都依赖于基于文本的配置。 Conky 通常使用 .conkyrc 或 Lua 文件,这可能会让人感觉有点过时且不太直观。 EWW 使用结构化 Yuck 语言与 CSS 样式相结合,使主题化和组织更复杂的设置变得更容易。为了快速启动,Conky 速度更快,因为有大量现成的主题可用。 EWW 需要付出更多的前期努力,但从长远来看,它可以为您提供更大的灵活性和控制力。

功能是另一个关键区别。 Conky 擅长显示广泛的统计数据,但提供的交互性很少。相比之下,EWW 支持按钮、滑块、文本输入和操作,因此您可以构建不仅仅是显示信息的小部件,例如调整音量或启动应用程序。

到目前为止我对 EWW 的体验

老实说,建立 EWW 并不容易。这需要大量的尝试、错误、研究,以及不少的诅咒。如果您以前使用过类似的工具,您可能会比我更容易。对我来说,这是我第一次真正深入研究这样的事情(编码不是开玩笑)。

也就是说,这是值得的。一旦我启动并运行了 EWW,它的价值就开始显现。我从经典的“hello world”小部件开始,它就像您所期望的那样基本。

但一旦我了解了基础知识,我就开始尝试更复杂的小部件,显示系统上正在播放的内容、监控 RAM 使用情况、跟踪电池、添加时钟等等。一旦我掌握了窍门,一切就都很顺利了。

文档出奇的好,社区也非常有帮助。 Yuck 语法起初看起来很奇怪,但在示例配置的帮助下,我能够理解它。一天之内,我就运行了第一个功能齐全的小部件。

定制 Linux 桌面就像定制 Windows PC。如果您不确定从哪里开始,请查看一些定制 Linux 桌面以获取灵感.