Arch 是一款 linux 发行版,使用 Arch 是因为它高自定义配置,它采用滚动更新,

系统安装

首先第一步就是制作系统安装盘,先下载镜像,镜像在官网下载就可以,官网提供了很多镜像源。

然后我这里使用的是 win32diskimage 写入的镜像,直接写到 U 盘上就可以,然后将 U 盘插入电脑重启就可以了,重启之后,直接就可以选择进入 arch 的界面了,应该是原机主已经选择了 UEFI 启动的原因

连接 wifi

首先使用 ip link 查看当前的网络设备,我这里只有 wlan0 还有 loop 所以现在只能选择使用 wifi 进行连接。打开 wlan0 接口

  1. ip link set wlan0 up

使用进行扫描,其实不进行扫描也可以,直接连接也行

  1. iwlist wlan0 up

连接使用下面命令

  1. wpa_passphrase MYSSID passphrase > /etc/wpa_supplicant/example.conf
  2. wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/example.conf &

连接之后还需要使用 dhcp 动态分配 IP 地址,才能够连接到网络

  1. dhcpcd &

然后使用 ping 检验一下

  1. ping baidu.com

更新系统时间

使用 timedatectl(1) 确保系统时间是准确的:

  1. timedatectl set-ntp true

可以使用 timedatectl status 检查服务状态。

配置镜像源

打开 /etc/pacman.d/mirrorlist 并定位到你的地理区域,将当地的镜像源取消注释即可。

磁盘分区

官方推荐的分区是使用 fdisk
首先使用 fdisk -l 查看所有分区

然后使用 fdisk 你的设备名 进行重新分区

挂载点 分区 分区类型 建议大小
/mnt/boot
or /mnt/efi
/dev/sd_X_1 EFI 系统分区) 260–512 MiB
/mnt /dev/sd_X_2 Linux x86-64 根目录 (/) 剩余空间
[SWAP] /dev/sd_X_3 Linux swap (交换空间) 大于 512 MiB

格式化

分区完之后,还要对文件系统进行划分

  1. mkfs.fat -F32 /dev/sda1
  2. mkfs.ext4 /dev/sda2
  3. mkswap /dev/sba3
  4. swapon /dev/sda3

挂载

  1. mount /dev/sda2 /mnt
  2. mkdir /mnt/boot
  3. mount /dev/sda1 /mnt/boot

安装

  1. pacstrap /mnt base linux linux-firmware
  1. genfstab -U -p /mnt >> /mnt/etc/fstab
  1. vim /etc/locale.gen
  2. en_US.UTF-8 UTF-8
  3. zh_CN.UTF-8 UTF-8
  4. locale-gen
  5. echo LANG=zh_CN.UTF-8 > /etc/locale.conf

设置主机名

  1. echo hostname > /etc/hostname

安装 grub

  1. mkdir /boot/efi/EFI/boot
  2. pacman -S grub-efi-x86_64
  3. pacman -S efibootmgr
  4. pacman -S os-prober
  5. grub-install --efi-directory=/boot/efi --bootloader-id=grub
  6. cp /boot/efi/EFI/grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
  7. grub-mkconfig -o /boot/grub/grub.cfg

配置网络

首先不要忘记在安装系统的时候,使用 U 盘,把 wpa_supplicant 还有 dhcpcd 安装上,要不就没法连接网络了

然后 arch 的开机启动都是通过 systemd 来进行管理的,所以为了开机就打开无线网络接口,我们需要写一个脚本文件,我在 /root 目录下,新建了一个 AutoExec.sh 文件

  1. #!/bin/bash
  2. ip link set wlp1s0 up

然后将它设置为可执行的 chmod 777 AutoExec.sh ,下一步就是写 AutoExec.service

  1. [Unit]
  2. Description=AutoExec
  3. [Service]
  4. ExecStart=/root/AutoExec.sh
  5. [Install]
  6. WantedBy=multi-user.target

其中 ExecStart 指定了要自动启动的程序脚本。通常,我会把所有的脚本放置在 Dropbox 当中。这里要求 sh 文件要有执行权限(chmode +x AutoExec.sh),并且 sh 编写要符合规范(开头要使用 #!/bin/bash 指明解释程序)。将 AutoExec.service 复制到 /etc/systemd/system 目录当中。使用 systemctl enable AutoExec.service 来开启程序自动启动功能。

然后配置 wpa_supplicant,先将文件生成到 /etc/wpa_supplicant/wpa_supplicant-wlp1s0.conf 中

  1. wpa_passphrase MYSSID passphrase > /etc/wpa_supplicant/wpa_supplicant-wlp1s0.conf

然后设置开机启动

  1. systemctl enable wpa_supplicant@wlp1s0

并且设置 DHCP 启动

  1. systemctl enable dhcpcd

现在就可以开始联网了,可以 ping 一下做检验

i3-wm

一直以来都很想尝试一下 i3,感觉这样直接使用键盘操控窗口的方式特别棒,所以现在选取的桌面系统肯定上来就是 i3 了

  1. sudo pacman -S i3

然后在 ~/.xinitrc 文件中增加 exec i3 ,就可以使用 startx 进入 i3 了,这里需要注意的是像 Gnome 都有 .xprofile 来作为进入环境的初始化,我们也可以在 /.xinitrc 文件中写入这些命令i3

i3 使用 dmenu 作为首席程序启动器,键绑定默认为 $Mod+d,安装 dmenu 也非常简单

  1. sudo pacman -S dmunu

中文输入法

一般 linux 上的中文输入法是 fcitx。不知道为什么人家都叫他小企鹅,很奇怪

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

然后配置 ~/.xinitrc 文件,在 exec i3 前面增加下面内容

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

重启 i3 就可以了,不过每次使用之前都要启动 fcitx

桌面

i3-wm 修改桌面还是比较麻烦的,首先他不能自己更改桌面,因为这只是一个窗口管理工具,所以使用桌面我们呢必须下载 feh

  1. sudo pacman -S feh

下载完成后,我们就可以使用他来修改桌面了,而且这个软件也可以用来查看图片 feh -g 640x480 -d -S filename /path/to/directory

  1. feh --bg-scale /path/to/image.file

不过如果每次都需要手动修改图片也太累了所以这里使用 variety 来进行自动下载图片,自动更换桌面

  1. sudo pacman -S variety

AUR

AUR 的全称是 Arch User Repository,是用户自建的仓库,需要自己下载编译,只有没有 bug,特别受欢迎的,才能进入 pacman 的真正仓库。

安装 AUR 里的包一般都要自己进行编译,yay 是一个 AUR 帮助软件,使用 Golang 编写,目的是方便我们进行 AUR 内包的编写,他会自己安装依赖,进行编译,并且删除编译之后的依赖,这样就大大减少了用户需要的代码。

yay 的安装也非常简单,在编译过程中,他还会自己下载 golang 的环境,虽然最后不会卸载,不过正好我需要,还一举两得了。

  1. it clone https://aur.archlinux.org/yay.git
  2. cd yay
  3. makepkg -si

使用 AUR 可以安装很多很棒的软件,比如网易云音乐,在 linux 上的客户端竟然和 windows 还有 macos 上出奇的一致,好评,还是很好用的,推荐。不过网易云音乐的名字还真是直白,就真是云-音乐啊,这翻译不太走心啊。

  1. yay -S netease-cloud-music

yay 进行缓存的清除也很简单,基本上和 pacman 是一样的

  1. yay -Yc 清理不需要的依赖
  2. yay -R <package_name> 删除软件包
  3. yay -Scc 清理缓存

触控版设置

因为以前使用 mac 的时间比较久了,所以现在用触控版浏览网页的时候,就经常不自觉的打开网页之后就双指上划,但是在 linux 中的触控版是不开启自然滑动的,另外每次进行点击的时候都需要按下触控版,比较费力,所以轻触点击也是有必要的,这里使用 xinput 应该是安装 xorg 的时候自带的工具。

首先查看所有的输入设备,每一个设备都有自己对应的 ID,所以我们需要找到所对应的 Touchpad ID

  1. xinput list

我这里的 ID 是 10,所以需要使用 xinput 将这个设备的所有输入都列出来

  1. xinput list-props 10

然后将里面的 tap to click 还有 natural scroll 开启就可以了

  1. xinput set-prop 10 300 1
  2. xinput set-prop 10 308 1

另外每次启动 i3 的时候,都需要更改这两条命令所以还需要将这两条放入 i3 的配置文件中

i3-status

i3-status 是 i3 下面的状态栏,这里显示了 i3 的一些状态其实就是一个状态栏,不过这个状态栏可以让我们随便配置,自由度非常高,这个的配置文件在 /etc/i3status.conf ,并没有在文档中的位置,所以有点难找

doc : https://i3wm.org/i3status/manpage.html

不过设置起来还是一样的,直接看文档就可以,还是比较简单的,需要注意的一点就是,如果想要你的状态栏简洁好看一点,还得会输入 vim 的特殊字符,这个在 google 上一搜就可以了,还是挺简单的,使用 Ctrl + k 开始输入特殊字符,每个特殊字符都有特别的符号,这种输入方法叫做二合字母,需要查阅的时候,可以在普通模式下,用命令 :digraphs 可以查看可用的二合字母列。

另外我这里不知道为什么 CPU 温度没法显示,搜索了之后发现好像很麻烦的样子,我就没有弄,把这一条删掉了,反正有 CPU 使用率也就可以了,电脑的温度不会自己摸一摸啊。突然想起来,这里应该是 CPU 温度的文件位置不对,所以我直接使用 find 搜索这个文件就可以了

  1. find / -name=temp0_input

我这里 CPU 的使用率,并不是按照官网的推荐来的,那个太麻烦了,还不如直接就一个使用率多好

  1. cpu_usage{
  2. format = "%usahe"
  3. }

另外还有一个就是音量调节了,参照官网配置。

  1. volume master{
  2. format = "music: %volume"
  3. format_muted = "music: muted(%volume)"
  4. device = "default"
  5. mixer = "Master"
  6. mixer_idx = 0
  7. }

显示器亮度

通过 xrandr 来控制亮度,首先使用 xrandr 查看现在的显示设施

  1. xrandr

然后就可以使用 xrandr 控制亮度了

  1. xrandr --output=eDP-1 brightness 0.7

不过每次都要手动输入太麻烦了,正好键盘上有两个调节亮度的按钮,直接绑定上,我这里是使用 i3 进行绑定的

~/.config/i3/config 文件下直接添加

  1. bindsym $mod+F6 xrandr --output=eDP-1 brightness 0.7
  2. bindsym $mod+F7 xrandr --output=eDP-1 brightness 1

不过这样的亮度只有两档可以调节,虽然可以变量,但是那样真的不够优雅,而且这样调节的亮度有点发蓝,好像是增加蓝光比例然后降低亮度的,并不是降低背光灯的亮度,有点丑,所以还有另一种方法

首先使用 xbacklight 查看是否支持,如果有问题会显示 no outputs have backlight property

  1. xbacklight

有问题的可以通过查看这个链接,已经说的非常详细了,不过如果你发现更改了 xorg.conf 之后,你的 i3 打不开了,你还需要安装 xf86-video-intel

  1. sudo pacman -S xf86-video-intel

现在可以将上面那两行配置里的语句改成

  1. bindsym $mod+F6 xbacklight -dev 10
  2. bindsym $mod+F7 xbacklight -inc 10

音量管理

  1. bindsym $mod+F8 amixer sset Master toggle
  2. bindsym $mod+F9 amixer sset Mast 5%- unmate
  3. bindsym $mod+F10 amixer sset Mast 5%+ unmate