【.com速译】问:Linux最大的好处是什么?安全、稳定、高性能,还是它带来的自由?它很好地完成了所有这些事情,但是我们要强调的另一个特性是它的模块化。作为一个深受Unix影响的操作系统,GNU/Linux被设计成易于拆解和组装,如果一切顺利的话。系统的各个主要组件被组织成可以忽略或替换的小组件,这也是我们有这么多不同Linux发行版的原因之一。 当然,这种模块化有时会增加复杂性。但它也增加了可靠性,因为组件被设计为独立运行;如果一个组件崩溃或遇到某种软件错误,理想情况下其余组件将继续正常运行。因此,您可以用另一个shell替换Bash,或者切换到另一个SSL库,或者甚至替换整个init系统——我们已经从转向Systemd的主要发行版中看到了这一点。 但是桌面环境呢?KDE、Gnome和Xfce不都是大型单体项目吗?并不真地。它们由相互高度依赖的较小程序和库构建而成,但某些组件可以删除或由其他组件替换。如果你更进一步,你可以通过手工挑选几个特定的??程序,将它们链接在一起,并确保它们同时运行,从而完全从头开始构建一个桌面环境。 从头开始??构建桌面环境实际上非常有趣并且是一个很好的学习过程,因此我们将在下面介绍。您可以选择适合您的工作流程的组件,最终结果比Gnome和KDE等“重量级”桌面环境更轻、更快。此外,您可以在下一次Linux用户组会议上向您的朋友吹嘘,您构建了自己的自定义桌面,而不是使用一种常见的预打包桌面环境,并炫耀您在Linux上领先于其他所有人。远的。 这里是我们要使用Openbox、PCManFM和Docky创建的自定义桌面,但是可以把所有的组件放在一起做其他事情! 首先,什么是桌面环境?顶部可能有面板、通知区域、窗口标题栏和其他界面元素。这些都是桌面环境提供的,但是如果我们稍微深挖一下,就会发现其他的功能。桌面环境还处理键盘快捷键,例如在应用程序之间切换和关闭它们,以及桌面壁纸、小程序(如处理器监控工具)和精美的窗口效果。 现在,这些功能不是由单个程序提供的,而是由程序集合提供的。例如,在Xfce中,运行psax|在终端中grepxfce会显示所有名称中带有xfce的进程,而且这样的进程还有很多。大多数名称都是不言自明的,因此您可能了解xfce4-panel提供位于屏幕边缘的面板,而xfce4-power-manager监视您的电池电量并处理电源事件(例如关闭盖子)。 Gnome和KDE的工作方式几乎相同。您很想从每个桌面中取出单独的组件并将它们组合起来构建某种令人敬畏的混合桌面,但最终结果并不是那么好。如上所述,每个桌面环境中的程序都设计为协同工作,特别是在那些桌面环境中,因此如果您使用KDE的面板、Xfce的电源管理器和Gnome的窗口管理器,最终结果将是占用大量内存的大杂烩桌面。毕竟,您要从每个桌面环境加载库和其他进程,所以这就像同时运行所有三个。 我们不想要那个。我们要做的是选择小型的、低内存的独立组件,不依赖于其他东西,但可以流畅地协同工作。像往常一样,在自由软件的世界里有一大堆组件可供选择,所以让我们来看看主要的组件。 其次,选择一个窗口管理器 虽然我们会使用单一的单机程序来创建自定义桌面环境,但是在XWindowsSystem(桌面的基本图形层)中还是有一些标准来确保它们可以顺利使用。协同运作。首先,让我们看一下有关窗口管理器的几个选项。 1。名称:Openbox 网站:http://www.openbox.org Openbox被设计为小巧、快速,并且可能是最好的综合性独立窗口管理器。它单独使用非常好,但它经常与其他工具结合使用。就拿LXDE来说吧:它是一个使用Openbox管理窗口的轻量级桌面环境,是流行的ubuntu发行版的桌面。Openbox也是现已停产的CrunchBang发行版(通过CrunchBang++重生)和ArchBabg的默认窗口管理器。 您甚至可以在Gnome或KDE中使用Openbox,替换它们的本机窗口管理器。Openbox出现在几乎所有主要发行版的软件存储库中,并且可以使用“crunchbang”命令(稍后描述)从脚本启动。 2。名称:i3 网址:http://i3wm.org Openbox是一个传统的鼠标操作的窗口管理器。相比之下,i3完全离不开键盘快捷键。这让用户一开始有点难以掌握,因为您必须花一些时间阅读文档才能习惯它。但是一旦记住了键盘快捷键,就无法放下它们。i3在希望更频繁地使用键盘而不是鼠标的程序员中特别受欢迎。 另外,i3是一个平铺窗口管理器。与传统的窗口管理器不同,窗口分散在屏幕周围,一些窗口覆盖在其他窗口上,在i3中,您可以将窗口组织成屏幕上不同大小的图块(区域)。因此,在宽屏显示器上,您可以让Firefox占据屏幕左侧50%,两个终端窗口占据右侧的上半部分和下半部分。如果你有一个大屏幕,你会发现平铺方法非常有效。 3。名称:Awesome 网站:http://awesome.naquadah.org Awesome是另一个轻量级的窗口管理器,在设计时考虑到了键盘。它还旨在兼容各种X标准,并可以通过Lua脚本语言进行扩展。它的开发人员称它为“框架窗口管理器”——换句话说,您可以在它之上构建,使用Lua定制和其他附加组件,以创建更强大的窗口管理器。 4。名称:JWM URL:http://www.joewing.net/projects/jwm/ JWM是纯C写的,使用基本的X库,所以依赖项很少,编译容易。它旨在充分利用内存有限的旧计算机,但如果您只是想挑战自己,它是一个不错的选择。JWM带有它自己的简单面板,但您可能想要一些更可配置和更漂亮的东西,我们将在稍后探讨。 好的,这些是市场上一些最好的窗口管理器。不过还有更多值得探索的窗口管理器,和往常一样,ArchLinuxwiki(https://wiki.archlinux.org/index.php/Window_manager)是一个很好的资源,值得一读。 3。面板、文件管理器和额外的组件 一旦您选择了窗口管理器,您需要添加一些额外的组件来美化它,例如漂亮的面板(用于启动和管理程序)和文件管理器。如果您是一位经验丰富的Linux用户,您可能很乐意在终端中完成所有文件工作,但无论如何我们都会介绍一些选项。 1。名称:Cairo-Dock 网站:http://glx-dock.org Cairo-Dock提供了一个看起来与MacOSX停靠栏一模一样的面板——至少在10.10中是这样(这是在Yosemite采用之前平面设计。它的“3D平面”模式看起来很炫,玻璃托盘上有光泽的图标;当您将鼠标移到图标上时,图标会稍微变大。您可以通过右键单击图标来自定义图标,或选择永远存在的Cairo-Dock子菜单,可让您配置整个面板。默认情况下,Cairo-Dock显示最流行的FOSS程序的图标(假设您安装了它们),例如Firefox和Thunderbird。 如果您在虚拟机中重新测试您的自定义桌面,请注意:首次启动后,Cairo-Dock会询问您是否要使用OpenGL。这在物理硬件上很有用,可以使dock看起来更流畅,但在VirtualBox中它可能会导致问题,所以最好将其禁用。 Cairo-Dock自带丰富漂亮的效果,与MacOSX非常相似。#p# 2.名称:Docky URL:http://wiki.go-docky.com Docky与Cairo-Dock非常相似,但它使用Mono,因此增加了一点额外的开销。但它也非常精致和漂亮,能够获得前面提到的类似OSX的3D外观。Docky在每个主要发行版中都可用;安装后,只需在命令提示符下键入“docky”即可启动它。它的默认配置相当简单;您只会看到一个用于配置Docky的锚点图标和一个用于运行程序的图标。但是,可以通过右键单击图标并选择将它们固定到Dock来将这些图标变成启动器。然后,即使程序没有运行,它们仍然存在。 使用Docky,您可以添加额外的组件,例如天气小程序和电池监控工具——单击锚图标以显示配置框,然后选择Docklets选项卡以显示列表。选择一个您喜欢的,然后点击加号(+)按钮将其添加到停靠栏的右侧。 3。名称:PCManFM 网址:http://wiki.lxde.org/en/PCManFM Linux世界的文件管理器任君挑选;大多数只提供很少的功能。PCManFM用于LXDE桌面,它是最著名的文件管理器之一:它比Gnome和KDE中使用的“重量级”文件管理器更轻巧,但它仍然相当强大,可以处理您99%的需求。任务。它在设计方面并不想太过传统,而是选择了任何人都可以快速上手的熟悉布局。另外,它几乎无处不在,出现在每个主要发行版中。 4。名称:XFE URL:http://roland65.free.fr/xfe/ 这与Xfce无关;它实际上是一个非常轻量级的文件管理器,使用FOXGraphical工具包。开发人员称其为“所有喜欢轻便和快速的Unix爱好者的首选文件管理器”;尽管与其他占用资源很少的程序相比,XFE没有提供很多功能,但它有一个优势:它仍在开发中。因此,它不难编译,而且在主流Linux发行版中也不难找到。 XFE是一款坚固紧凑的文件管理器。它看起来并不特别花哨,但非常有用。 4。附加功能:合成器和背景... 可以使用主题为我们刚刚提到的一些窗口管理器(如Openbox)添加一点魅力;但是如果你真的想要大量的视觉效果,那么添加一个合成管理器是很有必要的。这允许您在窗口出现时获得诸如阴影和细微动画之类的东西。最好的合成管理器之一是Compton(https://github.com/chjj/compton)。它也非常易于使用:只需启动您的窗口管理器,然后启动Compton,然后开始使用效果。 另一个需要考虑的方面是桌面墙纸。大多数轻量级窗口管理器不直接提供添加桌面墙纸的方法,因此您需要找到另一个墙纸工具。一个特别有用的工具是Feh(http://feh.finalrewind.org),这是一个命令行驱动的图像查看器,它还可以设置“根窗口”图像。是的,这是Unix术语中“root”的另一种用法,以及超级管理员用户和文件系统的顶层。在X术语中,根窗口实际上是背景,所以如果你给它应用一个图像,你就可以设置桌面墙纸。 5.连接所有组件 好了,让我们开始做有趣的部分吧!我们现在要把这一堆组件变成一个功能齐全的桌面环境。这里,我们将使用Openbox作为窗口管理器,Docky作为面板,PCManFM作为文件管理器,然后添加Compton和Feh,让桌面环境看起来可爱漂亮。 由于这些是独立的程序,我们需要创建一个脚本,以正确的顺序运行它们。以root用户在/usr/local/bin/mydesk下创建一个文件,例如: sudonano-w/usr/local/bin/mydesk 输入以下内容,使用Ctrl+组合键O保存,然后按Ctrl+X组合键退出纳米编辑工具。#!/bin/shdocky&pcmanfm&feh--bg-fill/home/user/desktop.jpgcompton-c--shadow-exclude'n:e:Docky'&openbox 你还需要让这个文件可执行,为此使用sudochmod+x/usr/local/bin/mydesk.这个脚本启动了一堆程序,从Docky和??PCManFM开始。这些程序后面的“&”符号表示我们要在后台运行这些程序,而不是让脚本等待每个程序关闭。就Feh而言,桌面图像的位置应该更改为与主目录中的位置相匹配;请注意,康普顿线不包括Docky窗口上的绘图阴影(因为Docky窗口已经有自己的特殊效果)。 现在,在正常的Linux桌面会话中,我们根本无法运行此脚本并期望一切正常,因为我们已经在运行窗口管理器、面板和其他组件。相反,我们需要告诉登录管理器(输入用户名和密码的屏幕):我们的脚本启动了它自己的桌面环境,我们称之为MyDesk。以root用户身份创建一个包含以下内容的文本文件/usr/share/xsessions/mydesk.desktop。[DesktopEntry]Name=MyDeskComment=CustomdesktopExec=/usr/local/bin/mydeskTryExec=/usr/local/bin/mydeskType=XSession 为会话创建启动脚本和.desktop文件后,它将出现在登录管理器。 6。是时候进行测试了 现在退出当前桌面,并在登录屏幕上选择MyDesk作为您的会话。输入您的用户名和密码,哇!您的自定义桌面环境出现了!看看示例截图:这里我们点击左下角的锚点图标并在选项中选择“面板模式”(让它占据屏幕的整个宽度),然后应用Matte主题。我们还在右侧添加了一个工作区切换器docklet。 请注意:Docky不包含传统的“开始”程序菜单;相反,您可以右键单击桌面并选择“终端”以打开命令行窗口。在面板中输入一个你想添加的程序(比如“firefox”或“libreoffice”),当程序启动时,面板上就会出现相应的图标。右键单击该图标并选择“固定”,这样即使程序没有运行,启动器仍然存在。要退出自定义桌面,只需右键单击桌面任意位置并选择“退出”。(要对Openbox窗口管理器进行细粒度控制,需要安装Obconf,然后从右键单击桌面菜单中选择它。) 而这仅仅是个开始!这只是您可以创建的桌面的一个示例。您可以尝试在/usr/local/bin/mydesk脚本中运行cairo-dock&而不是docky&,尝试另一个dock,或切换窗口管理器。这一点很重要:窗口管理器是脚本的最后一行并且没有以“&”符号结尾,因此当您退出窗口管理器时,它也会退出整个会话并返回到登录屏幕。 尝试窗口管理器、面板、文件管理器和其他工具的不同组合;如果你打造的桌面环境特别好,欢迎留言交流。也许有一天Ubuntu的一个分支会基于您定制的桌面,上帝知道。 原标题:CREATEYOUWNDESKTOPENVIRONMENT,作者:MikeSaunders
