i3wm桌面的配置

一个优秀的桌面平铺管理器

Posted by Void DreamZ on February 25, 2020

抱歉,因为最近作业繁多,这篇文章鸽了这么久。


Linux有很多桌面环境,用户可随意编译后安装自己喜爱的桌面环境。

常见的如KDE,Gnome,Xfce。

少见的如国内deepin自创的dde(相当美观,不想安装deepin的可以在deepin官网上查看自己发行版的移植包)。

又如gnome的衍生版budgie,Cinnamon之类。

但是除了大型的DE(Desktop Environment)之外,有着一些窗口管理器(Windows Manager),他们以轻便著名。

如Openbox,i3wm,Awesome,Bspwm之类的平铺窗口管理器。

它们的体积十分小,最大的不到20MB。

于是,我就在尝试在Arch上体验了这款i3wm。


先上成效图吧:

i3wm


注意:本文使用的是Fork自i3wm项目,进行添加和修改的i3-gaps,Arch的AUR中有此项目。其他的分发版想要使用,请自行编译,i3-gaps编译过程中的报错,大多原因为缺少依赖,可自行百度解决。

如何安装完后使用i3wm?

一般使用图形界面的用户都带有启动管理器,一般都是与桌面环境相对应的,如Gnome搭配gdm,Kde(Plassma)对应sddm,Xfce、LXQT对应lightdm。

为什么要谈到桌面环境与启动器的对应?

对应的启动器,大部分会趁开机的时候,提前运行一些桌面环境的核心部件,做到某些方面的速度的提高。

然而,我们使用的i3wm,我的渣配置都能在登录后两秒启动,无需任何的启动“加成“,其他的DM还会影响到开机速度,明显不值。

于是,我建议使用LightDM,启动迅速,轻量,可以选择多个桌面环境启动。关于使用方法,大多数分发版都支持使用

systemctl enable lightdm

来启动服务。

如果报错,先禁用当前的启动管理器如sddm

systemctl disable sddm 

说完了启动管理器,接下来就进入正题。

i3wm的使用

第一次打开i3wm会让你选择快捷键(称为Mod键,由于不同人设置的不同下文统一将设置的快捷键称为Mod键),以及创建本用户的config文件(默认为~/.config/i3/config)

推荐快捷键选择Win,不用Ctrl,因为大多数软件对Ctrl的依赖性强,大多快捷键用到了Ctrl,所以推荐Win

来作为快捷键(此处如果选择错误,后文将会介绍修改的方法)。

设置完成后,你看到的一定是灰底背景,最下面有个1,然后就什么都没有了。(在你没有悄悄改过配置文件的情况下)

此时你的表情一定是这样的:i3-1.jpg或是这样的i3-2.gif

开始菜单呢?!终端呢?!

这就要说到我们之前谈到的快捷键了。

i3wm要做到的,就是摆脱鼠标,工作不用离开键盘,提高自己的工作效率。所以,大部分操作都使用键盘。

这里介绍一部分默认快捷键,稍后在配置文件了里详细讲述。

Mod+Enter 		打开终端
Mod+D 打开dunst,默认显示在底部任务栏上,以索引的方式打开软件
Mod+Shift+E 	退出i3wm,回到登录页面

重头戏:配置文件

众所周知,软件的配置都放在一个配置文件。对于Linux,用户的配置文件都放在~/.config/中。i3wm的配置文件为~/.config/i3/config。

Mod+Enter键后进入终端,便可以用你喜欢的文本编辑器编辑i3wm。 ***

i3wm文件的简单配置

打开之后,可以看到文档的内容不算多,接下来分门别类地来谈谈其中的信息。

Mod键的设置

打开之后,在靠前的位置可以看到这么一行

set $mod Mod4

其中的Mod4为Win,Ctrl键为Mod1 ***

默认使用Mod+Enter打开的终端

这个说不大准,在文档中有这么一行:

bindsym Mod4+Return exec i3-sensible-terminal

当中的i3-sensible-terminal目前我没有发现到底使用的是什么,Arch我安装了Urxvt,i3-sensible-terminal就默认是Urxvt,其他的发行版上我安装了XFCE和KDE的终端,然而默认为KDE终端。此处可以修改i3-sensible-terminal为任何软件,也可以修改Mod4+Return为任何快捷键。 ***

其他的一些配置

此处推荐clone我的config,fork自aeghn的prettyi3,个人进行了一些简单优化。下文的一些配置都已经在我的config中改好了,进行一些简单的微调即可。此处放上链接:传送门

首先需要安装一些软件(具体的配置在后文):feh(壁纸),rofi(应用程序启动器),scrot(截图),polybar(任务栏)

然后将/prettyi3/light/config/里的所有文件复制到~/.config中,直接替换掉原来的所有文件(千万不要复制config文件夹到.config文件夹啊!)。

在~/下创建个/.Scripts文件夹

/prettyi3/light/Scripts终端所有文件复制到~/.Scripts中。

就完成了一些简单的配置。


首先来解决壁纸的问题

我使用的是Feh,安装完成后可以在i3wm的任何位置添加一段:

exec --no-startup-id feh --bg-fill PATH

(如果直接复制的我的config,可以在里面查找feh,那一行里更改后面你想用的壁纸路径即可)

其中的PATH为壁纸文件的路径。 --no-startup-id为登录后自启动。 --bg-fill可以依照此篇feh部分功能的使用


上文说过,exec --no-startup-id可以登录后自启动,因此可以自己在配置文件里找个位置写入。

(这里提一个个人的建议:配置文件会随着使用,渐渐增加,因此会很长,最好个人进行分类,aeghn的config就分好了类,有助于我们更好的配置。


如上文的打开终端,我们也可以在配置文件的任何地方添加一句

bindsym ANYKEY exec YOURAPP

其中的ANYKEY可以为任何键的组合,YOURAPP也是任意的软件,如:

bindsym Mod4+C exec google-chrome

就可以通过Win+C打开Chrome。


应用程序启动器

如上文所言,i3wm默认的启动器为dunst,不带图标,字体太小,美观和实用上的确不敢恭维。

此处我推荐使用rofi这款启动器。

(如果要使用rofi,请将clone下来的/prettyi3/light/config/rofi这个文件夹复制到~/.config/rofi

如果是要使用dunst,请将/prettyi3/light/config/dunst文件复制到~/.config/dunst,并且删掉~/.config/i3/config中的所有有关rofi的内容,并加入这么一行

bindsym $mod+d exec dunst 	#其中的$mod+d可以随意

这款rofi本身不经过任何配置就非常好看了,但是pretty的作者为了使其与主题搭配,便有了这样一个效果

light.png

本配置文件以$mod+o打开rofi,可以在i3的config文件中自行查找修改。

mod+Tab是与Windows相同的,可以在多个打开的窗口之间切换,效果也非常不错。


关于i3wm,本博主的能力有限,实在想不出还能说什么了,关于i3wm,更多的还是要靠自己摸索配置文件(整个Linux都是要靠配置config的)

可以参考这个/prettyi3/docs里的文章,还是蛮有用的。

放上个知乎的链接吧,里面大佬也是挺多的:传送门

关于更多的内容,可以在百度谷歌上多搜搜i3wm的配置,渐渐让i3wm成为你的生产力工具,不枉费花这么多的配置时间。