将自己的桌面环境迁移到了i3。Gnome好用是好用的,但是体量还是有点儿大了,吃资源有点多。
安装i3-gaps
安装的过程比较简单,pacman 就完事儿了。
1 | pacman -Syyu |
配置i3
在已经有Gnome环境的条件下,i3 的配置还是比较轻松的。
I3的使用说明
i3默认的操作是使用Windows/Super/Mod这个按键(或者随便怎么叫吧,后面都说Super,和Gnome的口径一致),简单列举一下频率较高的使用方式
- 先说重载配置文件,使用 Super + Shift + r
- 退出到DM,使用Super + Shift + e, DM就是你的登录界面。
- i3提供了10个虚拟桌面,切换虚拟桌面方式是可以通过Super + 1 - 10 快速切换
- 在默认的Tiling排列模式中切换排列位置Vertical和Horizontal. 通过Super V 或者 Super H
- 调整容器布局:
- 使用Stacking – Super + s 所有的标签堆叠显示最上方提供标签进行切换
- 使用Tabbed – Super + w 标签页方式显示所有窗口
- 使用Toggle – Super + e 平铺窗口模式,可切换不同的布局方式
- 打开程序可以通过terminal开启,或者Super + d 使用dmenu开启(可将 dmenu 替换成 rofi)
- 关闭程序可以通过Super + Shift + q关闭,或者鼠标点击x,不是所有的窗口都有x
- 在窗口间移动可使用 Super + {jkl;}四个按键;或者使用Super + {up,down,left,right}的arrowkey
- 可将窗口变更为Floating, 使用Super + Shift + Space
- Floating窗口调整位置可长按Super 使用鼠标拖动调整位置
- 全屏程序使用 Super + f
i3的自定义配置
配置文件的位置
配置文件的路径: $HOME/.config/i3/config,所有的配置在这个文件下修改
自定义界面的设置
默认的i3启动的时候还是挺丑的,我有四个设置:
1 | gaps inner 5 |
默认terminal程序更改
设置默认使用 Super + Enter 打开alacritty
1 | bindsym $mod+Return exec --no-startup-id alacritty |
alacritty 是一个使用GPU进行渲染的terminal模拟器,它有自己的配置文件,我的配置文件路径在:$HOME/.config/alacritty/alacritty.conf
*NOTE: 关于Alacritty的问题目前已经解决的差不多了。 还有还有一个问题是关于ssh过去之后不能正确的识别终端类型的BUG,解决方案在后面。
默认打开Firefox
我的设置是Super + p
1 | bindsym $mod+p exec --no-startup-id firefox |
开机启动一些程序
我的开机启动了 Compton, Variety, Remmina,Aria2c, Polybar, ibus-daemon,剩下的看自己喜欢什么就安装什么就OK了。
1 | exec_always --no-startup-id compton --config /home/liarlee/.config/compton/compton.conf -b |
截屏功能快捷键
默认的i3不能用PrintScreen我觉得有点儿难受,所以自己添加了快捷键和保存位置
1 | bindsym --release Print exec "scrot -b -m /home/liarlee/Pictures/Scort_ScreenShot/screenshot.png" |
更新:
之前的这个方式可以作为截图的快捷方式,但是当你需要连续的截图的时候就会特别的难受,因为新截图会自动覆盖掉旧的截图。更新一下新的方式,写一个脚本,当我们按下PrintSc的时候触发这个脚本,就可以对文件重命名了。
- 也许脚本名称可以叫 - screenshot.sh
1 | !/bin/bash |
- 更新i3的配置文件,添加快捷键的管理。
1 | bindsym --release Print exec "/home/liarlee/Scripts/System/screenshot.sh" |
- 这样再截图就会保存到指定的位置,并且用时间命名区分开不同的截图,不会覆盖了。
调节音量快捷键
由于已经有了PulseAudio, 所以i3自动增加了笔记本Func-key的调整,但是如果没有功能键的话,还是要按照如下自定义的。我调整音量用的Super + F2/F3, 也可以改其他的
1 | # Use pactl to adjust volume in PulseAudio. |
拼音输入法
我在Gnome下使用的是Ibus-rime框架的小鹤双拼,Gnome下开箱即用,但是i3需要做一些简单的配置,更改一些环境变量。
在自己的家目录 :
touch .xprofile
添加内容如下:
1
2
3export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus使用source读取配置文件中的环境变量,使环境变量生效。尝试输出
echo $XMODIFIER
查看是否已经生效,输出空值的话ibus还是无法使用。结合上面的i3配置文件,使用ibus-daemon -dr启动,不要XIM。如果你使用了-x启动,在浮动的输入法工具栏中会显示一个禁止的标志,说明拼音未正常工作。
配置Polybar
我基本上使用的是默认的Bar配置文件,还比较方便。
复制一个配置文件的模板到家目录的文件夹下:
1
cp -p /usr/share/doc/ploybar/config .config/polybar/config
编辑一个启动脚本
1
touch polybar_startup.sh
写入如下内容
1
2
3
4
5
6
7
8
## kill all old process of ploybar
killall -q polybar
while pgrep -u $UID -x polybar > /dev/null; do sleep 1; done
echo "---" | tee -a /tmp/polybar.log
polybar example & /tmp/polybar.log 2>&1 &
echo "Polybar launched"结合上面的i3配置进行开机自动运行即可。我觉得默认的这个还行,可以日常使用了,不调整了,太费劲了。
目前还未解决的问题
无法在terminal中输入中文
目前中文的输入法还是有些问题,无法在alacritty中输入中文,可能和ibus的关系比较大,我尝试使用fctix完全没有任何问题,所有的地方都可以输入中文,所以选择什么方式输入中文,各有所好吧。但是,Gnome环境和i3的环境是会冲突的,所以同时安装ibus和fcitx要考虑一下。
Alacritty中无法输入中文的问题已经解决了!
那么解决的方法如下:
在/etc/profile文件中(或者.zshrc中),添加如下的环境变量
1
2
3 export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULES=ibus之后 ,
1
2 source /etc/profile
source ~/.zshrc重新启动alacritty就可以使用了。
我想root cause是:我的alacritty启动的时候使用的是zshrc的变量,而没有读取系统的变量,不知道是不是这个原因,但是现在已经可以使用了,完美。
SSH之后不能正确的识别Alacritty的终端类型
ssh登录其他机器的时候会报错: Error opening terminal: alacritty.
这个问题其实是因为Alacritty毕竟是小众的Terminal Emulator, 所以 大部分的机器里面并没有这个类型的终端的信息, SSH在登录之后会试图把登录用户的Terminal设置为Alacritty,这个问题其实配置文件中已经有了解决方法,直接注释配置文件的如下部分,就可以恢复SSH正常使用了。
1
2 env:
TERM: xterm-256color解决~
放几张最后的结果图
大约就是这个样子啦~ 收工!