This page looks best with JavaScript enabled

基于 i3WM 的 Archlinux 桌面环境配置

 ·  ☕ 5 min read  ·  ✍️ 鱼子盖饭 · 👀... views

Archlinux 的安装见:Archlinux 的安装过程整理

配置文件在: gayhub

这份配置也是我正在用的,平时的一些优化更新都会同步上来

先上桌面截图:

2020-03-12_20-51.png

2020-04-25_17-24.jpg

关于 i3WM

第一次接触真的有点无从下手,不像之前用过的 Gnome,安装之后所有模块都齐全了,根据自己的喜好修改主题和布局。

i3 就只是个窗口管理而已。

除此之外,系统依然是那个命令行系统。。

一些基础安装

显卡支持

集显驱动

1
sudo pacman -S xf86-video-intel

我的是 AMD 独显,因此安装 xf86-video-ati,其中 mesa 提供 DRI 和 3D 加速

1
sudo pacman -S xf86-video-ati mesa

开启 32 位应用支持, 编辑 /etc/pacman.conf,取消下面两行注释

1
2
#[multilib]
#Include = /etc/pacman.d/mirrorlist

xorg 和 i3

1
sudo pacman -S xorg-server i3-gaps xorg-xinit

配置手动启动桌面环境,先将 xinitrc 文件复制一份到用户目录

1
cp /etc/X11/xinit/xinitrc ~/.xinitrc

编辑 .xinitrc,在最后加上

1
exec i3

这时就能在命令行执行 startx 进入桌面环境了

再生成一份 i3 的配置文件,第一次进入 i3 的时候也能根据指引生成,路径是 ~/.config/i3/config

1
i3-config-wizard

第三方源

Arch 的 AUR(Arch User Repository) 提供了官方库之外的软件包

编辑 /etc/pacman.conf,添加

1
2
3
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

然后安装 archlinuxcn-keyring 包以导入 GPG key

1
sudo pacman -S archlinuxcn-keyring yay

yay 封装了 pacman,现在就可以 yay 安装第三方的包了

声音模块

1
yay -S alsa-utils

字体和 icon

字体我用的文泉驿微米黑

1
sudo pacman -S wqy-microhei

icon 可根据自己需要安装,如果配置外观后有方块出现,则说明是 icon 的支持不够

1
sudo pacman -S ttf-font-awesome

安装 font-awesome 之后,就能在 font-awesome 复制图标了

i3

主要简单说明一下如何配置,因为配置项和其它应用、脚本息息相关,直接找到个 config 复制粘贴是没用的,正确的做法是了解结构和语法后参考喜欢的配置文件来修改

建议添加和修改的内容都放在最后,一目了然

我的配置很简单,主要跟能功能有关,因为设置下面这几行之后,除了状态栏,i3 就没有其它外观上的配置了哈哈

通过 $mod+Shift+r 可以热重载配置文件

# general
focus_follows_mouse  yes

# 去除窗口边框和标题
default_border none
default_floating_border none
hide_edge_borders both

gaps

窗口大小我用这个就感觉很舒服了,单窗口时全屏,多窗口时中间留些间距

1
2
3
4
5
# Gaps
gaps inner 20
gaps outer 20
smart_gaps on
smart_borders on

bindsym

这个用来绑定快捷键,其中的修饰键 $mod 已经在最前面定义了,Mod4wincmd,如

# shortcuts
bindsym $mod+c exec chromium
bindsym $mod+Shift+c exec code
bindsym $mod+space exec --no-startup-id rofi -show drun -theme lb
bindsym $mod+F12 exec amixer -q set Master 2dB+ unmute
bindsym $mod+F11 exec amixer -q set Master 2dB- unmute
bindsym $mod+F10 exec amixer -q set Master toggle

exec

用来在启动 i3 时运行一些程序,比如输入法、Chromium、壁纸等,如

# exec
exec --no-startup-id fcitx
exec --no-startup-id picom -b
exec --no-startup-id termite
exec --no-startup-id chromium
exec --no-startup-id feh --bg-fill ~/Pictures/star_ring_city.png
exec_always --no-startup-id ~/.config/polybar/launch.sh

assign

用来将特定程序绑定到特定的 workspace,这样该程序则只会在对应的 workspace 打开,好处是通过切换工作区即可在各个程序之间快速跳转。

太方便了,甚至我现在在 Windows 上写东西,都还习惯性地按快捷键试图切换 Chrome 和 VSC

# assign
assign [class="(?i)termite"] $ws1
assign [class="(?i)chromium"] $ws2
assign [class="(?i)code"] $ws3
assign [class="(?i)chromium"] $ws4

bar

这个状态栏的入口,主要配置见后面的 i3status,这里我主要实现了

bar {
        # 获取 ~/.config/i3status/config
        status_command i3status

        # 显示上传下载速度,将下面的脚本保存到指定位置
        # http://code.stapelberg.de/git/i3status/tree/contrib/net-speed.sh
        status_command ~/.config/i3status/net-speed.sh

        # 状态栏移到上方
        position top

        separator_symbol "  "
        font pango: Monaco 10, Icons 9

        # 主要是 workspace 标签的配色,颜色定义在 ~/.config/i3/config 中
        colors {
                                # Border    # Background    # Text
            focused_workspace   $silver0    $silver0        $elegant
            active_workspace    $elegant    $elegant        $orange
            inactive_workspace  $elegant    $elegant        $cyan0
            urgent_workspace    $acqua      $acqua          $silver0
            background          $elegant
        }
}

如果需要修改实时网速的显示格式,比如加个 icon 什么的,应该修改 rate 变量的值,而不是最后的 echo,因为status_command 是将输出内容组合为一个 JSON 来读取,格式不对将导致状态栏出错,我们也可以根据这个格式自己编写脚本

i3status

复制一份配置文件方便修改,i3status 有一个配置文件查找顺序,~/.config/i3status/config 排在第一,因此复制一份过来方便修改

1
sudo cp /etc/i3status.conf ~/.config/i3status/config

general

i3status 的文档中好像没写,但在 reddit 上找到可以通过 markup 开启自定义模块颜色,其中 output_format = i3bar 也是必须的

        output_format = i3bar
        markup = "pango"

order

模块的顺序

format

order 下面就是具体模块,文档中还有一些其它的模块,也有示例,很方便

format 的值即为显示内容,可以自己添加变量和 icon 实现个性化

由于我们上面启用了 markup 因此可以通过 span 标签更改模块颜色

cpu_usage {
format = “ [%usage] %cpu0 %cpu1 %cpu2 %cpu3
}

一些可选软件

Chromium

虽然是 Chromium,但其实就是 Chrome 吧。。。还是内核本来就长这样?总之可以通过 Google 账号同步就很 nice ~

1
sudo pacman -S chromium

~/.config/i3/config 添加启动快捷键

1
bindsym $mod+c --no-startup-id exec chromium

所有书签和用户信息都保存在 ~/.config/chromium,我是因为不小心把 .config 删了才发现的,这是另一个悲伤的故事了

v2ray

1
2
wget https://install.direct/go.sh
sudo bash go.sh

配置文件懒得改的话,直接复制 Windows 客户端的 config.json,替换掉 /etc/v2ray/config.json

最近才知道 proxychains,代理命令行的工具,太好用了!

Termite

1
sudo pacman -S termite

一个终端,将配置文件复制一份过来

1
cp /etc/xdg/termite/config ~/.config/termite/config

更改主题直接在 khamer/base16-termite 选一个替换掉 config 中的颜色配置即可

输入法 fcitx

1
sudo pacman -S fcitx-im fcitx-configtool sunpinyin

wiki 说 sunpinyin 在速度和精度之间有较好平衡,那就这个了,其实都差不多的

.zshrc 添加以下环境变量,如果用的 bash 则编辑 .bashrc

1
2
3
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

添加到 i3 的自启中 ~/.config/i3/config

1
exec --no-startup-id fcitx

fcitx 运行之后可以执行 fcitx-configtool 来配置输入法,一个英文,一个中文,便于用 shift 切换

背景图片 feh

1
sudo pacman -S feh

在 i3 的自启中添加,指向图片文件即可

1
exec --no-startup-id feh --bg-fill ~/Pictures/star_ring_city.png

透明度调节 picom

以前叫 compton

1
sudo pacman -S picom compton-conf

在 i3 的自启中添加

1
exec --no-startup-id picom -b

执行 compton-conf 可以调节透明度

rofi

通过快捷键呼出 rofi 可以快速启动程序

1
sudo pacman -S rofi

在 i3 配置文件中绑定快捷键

1
bindsym $mod+space exec --no-startup-id rofi -show drun -theme lb

其中的 -theme 参数可以指定 rofi 的主题,自带主题预览:Official Themes


鱼子盖饭
WRITTEN BY
鱼子盖饭
Get into trouble, make mistakes.


What's on this Page