在Ubuntu用I3wm有相当一段时间了。开发配合Intellij和Vimium的话基本上很少需要用鼠标调整,对工作效率提升很大。昨天618项目刚上线,今天难得清闲又不想看书,就把I3给优化了一下。也顺带记录总结一下。

I3的安装很简单,执行sudo apt-get install i3然后登出,选择使用I3窗口管理重新登陆,就进入I3界面了. I3的文档写的很简单易懂,可以参考官方文档发掘更多适合个人的功能,也可以看一下快捷键说明快速入门一下,这里介绍一些我常用的操作.主要的快捷键盘有四个,掌握就入门。

常用技巧

入门操作与桌面移动

Mod+Enter 启动命令行
Mod+D 启动菜单,命令行模式,输入程序后在当前窗口运行
Mod+Shift+Q 退出当前程序
Mod+Shift+E 退出I3
I3有10个桌面,可以通过Mod(Win)加数字键0~9进行切换,切换非常方便,合理分配好桌面用途,效率会提升很多.

窗口移动与窗口拆分

使用Mod键加J(左)K(上)L(下):(右)可以在窗口间移动,如果是多屏显示器,窗口的移动可以跨越桌面的(A屏幕的最后一个窗口衔接B屏幕的第一个窗口)

窗口布局有三种模式,可以使用Mod + E,S,W快速试一下,就能明白.

使用Mod + F全屏化,效果很不错,某些时段专注某件时的时候可以开启.

Mod + V垂直或Mod + H水平排列子窗口,对于某些用于监控,不需要太多操作的桌面,可以使用,效果如下:

i3_layout

浮动窗口及大小调整

浮动窗口是很有用的功能,可以更灵活的使用桌面,例如边看文档边记笔记的场景,非常好用,使用Mod+Shift+空格可以使当前激活窗口变成浮动窗口.

有时候窗口的大小不适合的时候,可以使用Mod+R进行窗口大小调整模式(普通布局的窗口也可以调整),鼠标选中窗口边界,移动便可以调整窗口尺寸,注意这里边界会比较难选中.

比如这样:

float_layout

 

功能调整

添加系统托盘

公司的无线网很不稳定, 经常掉线, 在I3界面中掉线后,很难再重新连接上,使用命令行重新连接效果也不好,最后发现可以在I3状态栏中添加Gnome的无线网管理工具,在I3配置文件中添加以下配置就可以启动

# 重新登录后状态栏右下将增加无线网管理图标
exec --no-startup-id nm-applet

同样,可以通过添加启动程序,添加更多的状态栏图标,例如声音管理

exec --no-startup-id gnome-sound-applet

增强快捷键

修改/增加I3的快捷键非常简单明了,这里举两个例子

# 增加gnome锁屏快捷键,也可以使用其它的锁屏如i3lock
bindsym $mod+Shift+g exec "gnome-screensaver-command --lock"
# 添加截图快捷键,前提是安装了scort
bindsym $mod+Shift+p exec "scrot"
# 启动intellij,可以根据自己常用的程序做配置
bindsym $mod+Shift+o exec "sh /workspace/ide/idea-IU-141.1010.3/bin/idea.sh"

调整颜色

I3默认的配置颜色比较难看,可以通过编辑~/.i3/config自定义配色方案, 例如添加以下配置:

# 窗口配置
client.focused #1793D0 #1793D0 #FFFFFF
client.focused_inactive #000000 #333333 #FFFFFF
client.unfocused #000000 #333333 #FFFFFF
client.urgent #FF0000 #FF0000 #FF0000
# 底部状态栏配置
bar {
 font xft:Wen Quan Yi Zen Hei Mono 10
 colors {
   background #000000
   statusline #00A5FF
   separator #666666

   inactive_workspace #000000 #000000 #FFFFFF
   active_workspace #000000 #000000 #FFFFFF
   focused_workspace #000000 #1793D0 #FFFFFF
   urgent_workspace #FF0000 #FF0000 #FF0000
 }
 status_command i3status -c /etc/i3status.conf
}

完成后,使用Mod+Shift+R 重新加载I3,对界面的修改就会生效.

如果想对状态栏做更细致的调整,可以编辑/etc/i3status.conf,例如修改general中的配色信息:


general {
 colors = true
 color_good = "#1793D0"
 color_degraded = "#006298"
 color_bad = "#FF0000"
 interval = 5
}

使用Gnome主题

I3并不是基于Gnome开发,默认的应用程序窗口界面比较难看,这里可以在启动I3时,同时启动gnome-settings-daemon,同~/.i3/config中添加如下配置:

# 为应用程序启用gnone主题
exec --no-startup-id gnome-settings-daemon

重载配置后, 应用程序将会变成Gnome设置的主题.Gnome的锁屏Ctrl+Alt+L功能也会生效。不想用i3lock的话,这是个不错的选择。

替换/绑定文件管理器

I3并没有自带文件管理器,如果是Ubuntu的话,可以使用Nautilus,可以用bindsym配置快快捷键,方便使用。
Ubunut上启动Nautilus时,会默认启动一个Desktop程序,对于I3来说完全是多余的,可以通过以下两种方式将其禁用掉:

gsettings set org.gnome.desktop.background show-desktop-icons false

或者在绑定/启动Nautilus时,显示加上–no-desktop参数

bindsym $mod+Shift+o exec "nautilus --no-desktop"

不过这里还是建议不使用Ubuntu自带Nautilus时,特别是较新版本的Ubunut为了更好支持移动端,将Nautilus的F3分栏(同时操作多个文件夹)功能也取消掉了。 可以选择Nemo(Nautilus的fork版本),xfe之类的。不过目前上班时更多是通过Synergy控制多台电脑,准备找一个有本地+远程(ssh/ftp)分栏功能的文件管理。

更换字体

旧版的i3更换字体会比较麻烦,要用xfontsel选择久,目前更换字体很简单,配置和给[bar]配置字体是相同的,添加

font xft:Wen Quan Yi Zen Hei Mono 10

来看看最终的对比图:
original

refresh

 

另个一点需要说明的是,在i3下,如果使用Ubuntu自带的software-center安装.deb包的话,会报”Authentication Error: Software can’t be installed or removed because the authentication service is not available.”的异常,可以手动启动/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1后再执行安装,当然,最好是将启动放在.i3/config中,做为加载启动。