Skip to content

Kevin's Home

体验I3之美

gnome, i3wm1 min read

enter description here 先晒张日常桌面图。Gnome3用了半年了一直被其蹩脚的交互和层出不穷的Bug所折磨。虽然Gnome3很漂亮,很简洁,但是毕竟漂亮不能当饭吃。套餐这种东西虽然简单省事,但是终究不是为你所量身定制的,总有其中一样不合你口味。因此,我决定再次抛弃“开箱即用”的DE(Desktop Environment),在WM(Window Manager)的基础上自己打造一套适合自己的桌面环境。

i3WM

i3是一个比较知名的平铺式的窗口管理器(TilingWM),它可以通过快捷键来管理程序窗口,使他们像截图那样平铺在显示屏幕,控制他们的大小和位置。十分高效也有几分Geek的味道。
i3的所有配置全部使用shell写成,甚至顶部panel的各种指示器,都由用户自己写的bash脚本获得并显示。十分简单暴力。虽然没有图形界面那么直观,但是有一种一切尽在自己掌控之下的感觉。这种感觉其实是十分十分不错的。
我的I3WM配置文件托管在了Github

配置细节

I3配置文件的语法其实跟shell差不多,熟悉Linux的用户应该都能完全看懂。我的配置文件分为几大模块:

Workspaces

工作区配置,我根据日常使用的程序类别一共设置了10个工作区(图标显示需要在本地电脑上安装Fontawesome字体):

然后,把属于各自类别的程序绑定到对应的工作区,这样打开这些程序的时候他们就能自动出现在合适的工作区了:

Application

在i3配置文件里面我们可以对常用的程序绑定快捷启动键:

然后,对于特殊的不适合平铺的窗口,可以直接设置它们为浮动窗口:

PS:可以使用xprop|grep WM_CLASS来查看正在运行窗口的class名称。

i3blocks

i3blocks是I3顶部面板的一个可选组件。它使用ini格式的配置文件,支持多种终端脚本,还支持鼠标点击、滚动事件,十分强大。配置文件样本如下:

主要字段解释:

  • 首先前面无section的parameters属于默认配置项,为每个section的缺省配置。
  • 然后每个section都对应顶栏上面的一个指示器,称为block。
  • 每个block必须显示一定的数据,可以通过command配置项指定获取数据的命令,并使用interval来设置命令执行周期间隔。
  • instance为可以传递到command脚本中的环境变量。
  • color和label为颜色和标签,属于修饰性的配置项。

所有可用的block命令可以参考我的配置文件夹:blocks

compton

compton可以给i3带来透明和阴影效果的支持。如果只关心性能而不介意美观与否,你完全可以跳过此节。 compton默认是不给顶栏加透明效果的,需要加入如下配置:

同时,compton的阴影效果不适用于某些窗口,需要排除它们:

易用性建议

i3WM只是一个地基,我们可以在这之上搭建一个适合自己的环境。每个人的口味都不一样,所以我简单的罗列一下我个人比较喜欢的应用和配置以供参考。

  • dmenu: WM下使用最广泛的应用启动器,可以自动根据用户输入的命令进行提示。
  • rofi: dmenu的替代品
  • quickswitch.py: 跨工作区窗口快速跳转工具,可以整合到dmenu中。
  • xfce4-appfinder: xfce4的应用程序列表。能够自动搜索文件系统中的desktop文件,并生成应用列表。非常实用的工具。
  • pantheon-terminal: elementaryOS的默认终端。小巧,依赖少,支持背景透明、多标签,很完美的终端模拟器。(需要使用dconf-editor来修改设置,位置:/org/pantheon/terminal/settings/
  • nemo: linuxmint的默认文件管理器,forks自nautilus,但是比nautilus好用得多。(使用之前需要使用dconf-editor设置/org/nemo/desktop/show-desktop-iconsfalse
  • nitrogen: 提供简单的图形界面来设置壁纸并在每次开机之后自动恢复。
  • clipit: 剪贴板支持
  • lightdm: 轻量级图形登录界面