i3
历程
- 最先用的是 Ubuntu 16.04 自带的 Unity 。
- 更新 Ubuntu 后用的 Ubuntu 18.04 自带的 Gnome 。
- 用了 Gnome 后学会了折腾,各种配置堆上。
- 后来发现 Gnome 太卡太吃内存,并且才知道系统可以换桌面, 于是在 master 安利下换上 xfce 。
- xfce 很稳定很流畅,但是太丑,可玩性太低,于是换上高大上的 KDE 。
- 中途还换过 enlightenment ,但是 enlightenment 的稳定性实在不敢恭维。
- 最后用上了 i3 ,原因不详。
WARNING:
既然你打算尝试 i3 ,本文假设你有一定的动手能力(说白了就是能折腾)。
安装
sudo aptitude install i3-wm
后注销重进选择 i3 即可。
然后你会发现弹出个窗口,接下来黑屏,没有动静。
WTF ?
其实 i3 已经开了,只是没背景而已,按 win+Enter 打开终端。
配置
弹出一个菜单给你设置?想多了,要配置就写 ~/.config/i3/config 去吧。
$mod 是 i3 的灵魂,每一个快捷键最好都以 $mod 开头,
一般 $mod 被设置成 Mod4 ,也就是 Win 键。
bindsym 是绑定快捷键,注释很详细,自己看,下面列出一些重要的配置。
方向
i3 默认把 jkl; 做方向键,也许你会更喜欢 hjkl
,自己替换掉就是了。
另外分号不是 ; 而是 semicolon 。
壁纸
i3 默认没有壁纸,因为它是个平铺式的窗口管理器。
但壁纸是第一生产力啊,不要壁纸怎么行。
下载 feh: sudo aptitude install feh
.
feh --bg-fill (YOUR_IMG)
就可以设置壁纸了,至于实现原理,你不会想知道的。
锁屏
i3 默认没有锁屏,为了防机惨,锁屏还是很有必要的。
下载 i3lock: sudo aptitude install i3lock
.
直接 i3lcok
就可以锁屏,i3lock -i (YOUR_PNG)
还可以设置锁屏壁纸。
需要快捷键锁屏的话,加上一句配置就行了:
1 | bindsym $mod+Tab exec i3lock # Win+Tab 锁屏 |
工作区
i3 对工作区的数量没有限制,工作区的名字甚至可以有字母。
i3 默认配置里只提供了切换到 1 至 10 的快捷键,
但是有时候“切换到下一个工作区”和“切换到上一个工作区”可能更方便。
加上两句:
1 | bindsym $mod+comma workspace prev # Win+逗号 |
另外,默认配置里,把一个窗口移动到某工作区的时候仍会停留在原工作区,
想改变这点, 把 move container to workspace x
后面加上
; workspace x
即可。
i3bar
个人超喜欢 i3bar ,因为它可以接受任何一个程序的输出。
这意味着你可以完全自由地定制 i3bar 。
找到 bar {
这行。
bar 的模式有三种:
1 | mode hide # Auto display |
位置有两种:
1 | position top |
重点来了,定义处理程序这一项:
1 | status_command i3status |
可以看到默认使用 i3status 作为处理,i3status 本身也可以配置,
但是如果想自由配置,你可以写个程序,输出一个 json ,接口比较复杂,
在此不赘述,你可以在 ~/.config/i3status/config 里加几行:
1 | general { |
再运行 i3status
依葫芦画瓢就是了。
i3-gaps
如果你希望窗口平铺之间会有间隙,i3-gaps 会满足你。
如果你用 Debian, Ubuntu , 去 github 上搜 i3-gaps-deb clone 下来后运行
i3-gaps-deb 就行了。
如果用 Arch ,软件包管理器里有,直接下。
透明
也许你给终端模拟器设置了透明度,很遗憾,在 i3 上没用。
解决方案是下载 compton ,运行 compton -b
即可。
接口
你可以很自由地向 i3 发送命令,i3-msg
提供了一系列接口,
足以帮助完成更复杂的定制。
使用 i3-input
可以直接向 i3 发送一条命令。