我如何定制我的Linux窗口装饰

168 阅读8分钟

图片由: Pixabay.CC0创意共享

我特别喜欢Linux的一件事是,几乎所有的东西都有惊人的、大量的选择。不喜欢某个应用程序?通常有几个更多的选择。不喜欢桌面的工作方式?可以从许多其他的桌面中选择一个。不喜欢你桌面上的窗口装饰?有许多其他的你可以下载和尝试。

如果你不喜欢你所选择的窗口装饰的一个小东西--而其他所有的装饰集都差强人意呢?

开源的好处之一是,我可以改变任何我想要的东西。所以我做到了。

我在我的Xfce桌面上使用Alienware-Bluish主题。我喜欢它的未来主义外观,青色和灰色与我的深色原色方案--有时是我的心情相匹配。它的四角有漂亮的3D浮雕,角落和边缘都很宽,即使在我的Hi-DPI分辨率下也能轻松抓住。图1显示了原始的Alienware-Bluish装饰与我喜欢的渐变黑-324.0色彩方案。

Screenshot of window with standard dark colors and styles

图1.使用原始Alienware-Bluish装饰的活动窗口(有焦点)(David Both, CC BY-SA 4.0)

这个窗口有两点困扰我。首先,活动窗口的标题栏中的窗口名称的强度对我来说实在是太沉闷了。非活动窗口有一个明亮的白色标题,比活动标题的沉闷青色更能吸引我的眼球。

第二,我喜欢深色的壁纸,正如你在图1中看到的那样。因为窗口的底部边缘没有青色的高光,所以很难确定窗口底部的位置,特别是当有很多重叠的窗口打开时。

相当小的烦扰,我知道,但它们只是困扰着我。而这正是开放源代码最酷的地方之一。我可以修改任何我想要的东西,即使是出于微不足道的原因。这只是需要一点知识,我将与你分享。

装饰文件在哪里?

我需要做的第一件事是找到我正在使用的装饰文件,Alienware-Bluish。我之所以知道这一点,是因为多年来我下载了许多装饰主题。

我下载的所有装饰主题都位于/usr/share/themes/ 目录中,这样所有的用户都可以访问它们。每个主题都位于一个子目录中,所以Alienware-Bluish主题位于/usr/share/themes/Alienware-Bluish/xfwm4/ 目录中。xfwm代表xf窗口管理器第4版

如果你将主题安装在你的主目录中,它们将位于~/.local/share/themes/Alienware-Bluish/xfwm4 目录中。存储在您的主目录中的主题对您计算机上的其他用户是不可用的。

准备工作

我不喜欢为像主题这样重要的东西在原始文件上工作,所以我用自己的非root账户将/usr/share/themes/Alienware-Bluish 目录及其内容复制到一个新的目录,/usr/share/themes/Alienware-Bluish-2 。这给了我一个安全的工作场所,而不至于在不经意间将原始文件损坏得无法修复。它还复制了文件,并将复制的文件的所有权改为我自己的账户,因此我可以复制和编辑这些文件。

此外,我想保留原件,以便我可以继续使用它。

开始使用

使用Thunar或其他可以查看图像缩略图的文件管理器查看/usr/share/themes/Alienware-Bluish-2/xfce 目录中的文件,然后放大以增加图像的大小。展开图像,以便你能更好地看到它们。每个*.xpm(X11 Pixmap)文件是一个小窗口框架部分的图像,如图2所示。

A screenshot of 38 .xpm files depicting each of the elements that make up the window appearance

图2:构成窗口各部分的文件(David Both, CC BY-SA 4.0)

请注意,不同的组件都有一个活动版本和一个非活动版本。在这个主题的情况下,它们大多是相同的。我现在拥有这些复制的文件,所以我可以复制和编辑它们。

特别是看一下bottom-active.xpmbottom-inactive.xpm 文件。这两个文件定义了窗口底部的外观。这两个图像只有一个像素宽,所以它们在图2中基本上是看不见的。窗口管理器根据需要使用尽可能多的实例来创建窗口的底边。

其他桌面的主题可能使用不同的文件格式。

进行修改

首先,我改变了标题的颜色。themerc 文件包含了定义标题栏的几个方面的文本配置数据。这个文件是一个ASCII文本文件。这里是主题的内容。

full_width_title=truetitle_alignment=centerbutton_spacing=2button_offset=30button_layout=S|HMCactive_text_color=#699eb4inactive_text_color=#fffffftitle_vertical_offset_active=5title_vertical_offset_inactive=5

文本颜色条目中的十六进制数字定义了活动和非活动标题文本的颜色。为了改变活跃的标题文本,我需要确定在这个领域使用什么值。幸运的是,有一个工具可以提供帮助。KcolorChooser可以用来从调色板中选择一种颜色,或者用Pick Screen Color按钮来选择一种已经显示在屏幕上的颜色。

我使用这个颜色选择器来定位窗口侧面的青色高光,但我发现它对底部来说有点太亮了。我希望它不那么亮,所以我使用了KcolorChooser上的工具来调整颜色和强度,以满足我的偏好。你可以在图3中看到这个结果。

Screenshot of KColorChooser showing the numeric color values of a cyan blue tone

图3.使用KcolorChooser选择特定的颜色(David Both, CC BY-SA 4.0)

如果你还没有安装KcolorChooser,可以安装它。在Fedora和其他基于Red Hat的发行版上,你可以使用以下命令。

dnf -y install kcolorchooser

如果你还没有安装KDE桌面或其任何工具,这个命令将安装大量的KDE库和其他依赖项。在我的工作站上已经安装了,因为我安装了KDE Plasma桌面。

在决定了我想要的颜色之后,我从HTML文本框中获得了该颜色的十六进制数字。然后我把这些数字输入到themerc 文件中,这样active_text_color 行就看起来像这样。

active_text_color=#00f1f1

接下来的部分,即改变bottom-active.xpm 图像文件,就比较复杂了。我使用GIMP来修改bottom-active.xpm 文件,但你可以使用任何你熟悉的图形编辑器。有一个问题:图片太小了,需要把它放大到一个合理的尺寸来进行编辑。我发现8000%在我的显示器上效果不错。你可以在图4中看到这一点。这张图片高6像素,宽1像素,黑色和深浅不一的深灰色。

Screenshot of GIMP window showing shades of black and dark gray

图4.在GIMP中以8000%的放大率显示的bottom-active.xpm文件(David Both, CC BY-SA 4.0)

我使用KcolorChooser找到一个比窗口侧面和顶部边缘的青色稍深的阴影。经过一番操作,我确定了#10b0ae这个颜色,然后把它复制到GIMP颜色对话框的文本区域。我必须把这个对话框添加到GIMP窗口右上方的停靠区,选择菜单栏工具>停靠对话框>颜色。另外,我还可以使用GIMP颜色对话框中的取色器,即滴管图标,从KcolorChooser的样本显示区简单地取色。

无论如何,我现在在GIMP颜色对话框中找到了我喜欢的颜色。我用矩形选择工具选择了图5中突出的3个像素,用桶状填充工具将新的颜色填充到所选区域。图5显示了最终的颜色。

Screenshot of GIMP window with cyan blue color added

图5.添加了青色的修改后的bottom-active.xpm文件(David Both, CC BY-SA 4.0)

导出修改后的文件

GIMP将.xpm文件转换成它可以使用的数据格式,但它不能将数据直接保存为.xpm文件。相反,我使用了导出功能来保存该文件。这不是什么大问题,但第一次时有点意外。

在导出过程中,我看到一个对话框,要求输入Alpha Threshold值。我对GIMP或图形文件的操作不够了解,不知道那是什么,所以我没有管它,点击了导出按钮。

测试

我对这个主题所做的改变很容易测试。我只是用窗口管理器选择Alienware-Bluish-2主题。这样就可以立即加载新的主题,所以我可以马上看到结果。

如果我不喜欢这样的结果,我可以做更多的改变,再进行测试。然而,在这一点上,我不得不改回原来的Alienware-Bluish主题(或任何其他主题),然后再改回Alienware-Bluish-2主题来验证变化。在重新读取主题之前,修改后的文件是不会被加载的。

图6显示了使用底部窗口边缘的青色高光的修改后的主题。我认为它看起来好多了。

Screenshot of window with a cyan blue highlight on the bottom edge and in the title text

图6.显示改变后的底部边缘的窗口(David Both, CC BY-SA 4.0)

最后的想法

在我开始这个小项目之前,我不知道如何解决窗口装饰的小问题和烦扰。确实花了一些时间和研究来弄清如何做这件事。我了解到有一种xpm图形格式,我还了解了一些在GIMP中工作的情况,包括如何导出到这种文件格式。我还发现这是一个相当容易做出的改变。

我仍然不觉得我有设计一个全新的窗口装饰主题的技能或对图形的创造性眼光。但现在我可以很容易地对别人创造的主题进行微小的改动。