
定制 Linux 桌面为用户提供了提升计算体验的机会,而人们经常想到的一款流行工具就是 Conky,它以其系统监控功能而闻名。然而,另一款工具 EWW(ElKowar’s Wacky Widgets 的缩写)也因其多功能性而备受关注。与 Conky 不同,EWW 擅长创建各种动态小部件,包括时钟、系统监视器和天气显示,所有这些都通过图形用户界面 (GUI) 轻松实现。
了解 EWW
EWW是一个专为 Linux 桌面设计的强大小部件系统,允许用户制作和展示自定义小部件。这种灵活性使其能够独立于现有桌面环境显示各种组件,例如天气预报、音乐控制和其他个性化信息。
EWW 使用 Rust 开发,并采用了其独特的配置语言 Yuck,这种语言让人联想到 Lisp 的 S 表达式。这意味着,设计小部件布局需要使用一种结构化的文本格式,对于习惯编辑 HTML 或 XML 文件的人来说,这种格式可能很熟悉。
在 EWW 中,您可以将小部件定义为模板或组件,并将它们排列在充当容器的窗口中。在样式方面,EWW 有效地运用了 CSS/SCSS,这种样式语言也用于增强网页的外观。这种集成让用户能够有效控制字体、颜色和间距等视觉属性,从而充分利用 CSS 的多功能性。

开始使用 EWW
虽然我最初接触 EWW 时感到有些畏惧,但经过一番探索后,我发现它其实相当容易上手。安装选项多种多样;你可以通过发行版的仓库获取 EWW,也可以从源代码编译。安装完成后,设置 EWW 需要一些基本步骤。
第一步是配置一个指定目录,其中包含至少两个关键文件:一个用于定义窗口小部件(通常命名为 eww.yuck),另一个用于样式设置(命名为 eww.scss 或.css)。Yuck 配置文件用于定义窗口小部件和窗口,而 SCSS/CSS 文件则用于管理样式设置。

一旦您看到具体的示例,理解 EWW 的配置语法就会变得直观。例如,创建一个显示使用率百分比的 CPU 监视器小部件或一个显示当前时间的时钟非常简单。EWW 提供了各种 GUI 元素,例如框、标签、图像和按钮,它们可以作为您自定义小部件的基础构建块。

考虑定义一个名为“侧边栏”的窗口,垂直组织关键信息。相应的 Yuck 语法可能类似于以下内容:
(defwindow sidebar : monitor 0 : geometry (geometry: x "0%":y "0%":width "200px":height "100%":anchor "top left") (box: orientation "vertical" (widget1...) (widget2...)...))
此示例指定了一个名为“sidebar”的窗口,该窗口位于显示器 0 上,锚定在屏幕左上方,并指定了宽度和高度。在此窗口内,一个垂直框包含各种小部件,这些小部件的定义将位于配置的其他位置。
比较 EWW 和 Conky
Conky 是一款轻量级的系统监视器,自 21 世纪初问世以来一直是我们经验丰富的伙伴。它使用 C/C++ 编写,并具备 Lua 功能,主要专注于显示实时系统状态,例如 CPU、RAM、磁盘和网络使用情况。它主要充当被动角色,旨在显示信息。
EWW 的独特之处在于它是一个功能全面的小部件工具包,其功能远不止于单纯的系统监控。它使用户能够开发交互式元素,例如媒体播放器、滑块和应用程序启动器,从而提供更广泛的创意可能性。Conky 主要关注系统指标,而 EWW 则有助于创建多功能 UI 组件,并提供了根据需要显示和隐藏元素的功能。

这两款工具都使用基于文本的配置;然而,与 EWW 的结构化 Yuck 语言相比,Conky 对.conkyrc 或 Lua 文件结构的依赖显得有些过时。后者提供了更易于主题设置和组织的功能,尽管初始学习曲线比 Conky 更高,因为 Conky 受益于大量预先存在的主题。
就功能而言,Conky 擅长显示各种统计数据,但缺乏交互性。而 EWW 支持按钮、滑块和文本输入,允许使用能够执行操作(例如音量调节或应用程序启动)的交互式小部件。
我与 EWW 的旅程
我最初尝试配置 EWW 时,发现它非常具有挑战性,需要大量的实验和研究。如果新手之前有使用过类似工具的经验,学习起来可能会更轻松,但我的经历是我在这个领域的第一次重大尝试。

尽管如此,努力终有回报。安装完成后,我从一个简单的“hello world”小部件开始,奠定了基础。随着时间的推移,我开始尝试更复杂的项目,例如监控内存使用情况、显示电池电量、添加时钟以及跟踪媒体播放。随着我对 EWW 的使用越来越熟练,每个新小部件都运行得非常顺畅。

值得一提的是,EWW 的文档非常详尽,社区也提供了充足的支持。起初,Yuck 的语法让我望而生畏,但通过示例配置,我逐渐清晰了思路,最终在一天之内就成功实现了我的第一个功能齐全的小部件。
自定义 Linux 桌面就像个性化 Windows 环境一样简单易行,而且回报丰厚。如果您正在寻找灵感来开启您的定制之旅,不妨考虑在线或在专门的社区中探索定制的 Linux 桌面。
发表回复