Archlinux安装与美化全流程

一. 镜像制作

1. 下载

Arch官方下载界面

阿里云镜像站下载

注意:官网下载页面下拉可以看多很多国家的镜像源!

2. 镜像烧录

使用 Rufus 进行镜像烧录,下载好 Rufus 后打开,插入要写入的U盘

  • 然后选择要烧录系统的U盘(设备没有可选项?勾上显示USB外置硬盘即可!)

  • 选择要烧录的镜像

  • 分区类型选择GPT格式

  • 目标系统类型选择UEFI

  • 文件系统选择FAT

  • 点击开始并以ISO镜像模式写入即开始镜像烧录

注意:烧录镜像默认会格式化U盘,请提前备份好数据!

二. USB启动安装

1. 启动到 Live 环境

根据ArchWiki介绍,Arch是不支持安全启动的,而一般电脑默认开启安全启动,所以需要先到BIOS里面关闭安全启动( Secure Boot ),注意需要先关闭Windows的快速启动。

设置好以后将刚才烧录的U盘插入电脑,然后开机,进入Live环境。选择第一项 Arch Linux install medium (x86_64, UEFI) 开始加载安装程序,如果不是类似界面,请检查BIOS设置或者U盘烧录是否正确。

正式进入 Arch 的 U盘系统后,对于没有怎么接触过Arch的人可能比较惊讶,为什么不是图形界面?没错,Arch 安装镜像只包含了系统一些基础组件,并没有图形界面,需要用户安装好系统之后自行安装,这样虽然麻烦,但是却给了用户更多的选择,可定制化程度更高。

2. 正式安装

2.1 检查是否UEFI启动

ArchLinux 只支持UEFI模式启动的电脑,所以第一步便是检查当前电脑是否为UEFI启动,在终端输入以下命令。如果出现大量文件则正常否则该电脑可能不支持安装ArchLinux。

ls /sys/firmware/efi/efivars
2.2 配置网络

防止网卡被禁用,使用以下命令解除网卡禁用:

rfkill unblock all

usb直连:ArchLinux安装需要下载一些软件,需要保证网络通畅,ArchLinux不会默认连接网络,建议手机开usb热点电脑连接,不用额外配置。

wifi 连接:输入 iwctl 进入wifi连接界面:

iwctl
-------------下面为iwctl界面,不同于终端-----------
[iwd] help   # 输入help回车可以查看使用说明
[iwd] device list # 回车后可以查看当前网卡设备,一般为 wlan0
[iwd] station <device> scan # <device>替换为上面的网卡设备,这条命令可以让网卡扫描wifi设备
[iwd] station <device> get-networks  # 会车后可以显示当前可连接网络
[iwd] station <device> connect <wifi name>  # 连接wifi, <wifi name> 为上面获取的wifi名称
password: # 如果wifi为加密wifi,输入密码回车
[iwd] quit # 退出 wifi 连接界面

测试网络是否连接成功:

ping www.baidu.com -n
2.3 更新系统时间

更新系统时间是有必要的,因为下载软件是服务器会验证系统时间,如果时间不正确,可能出现下载失败的情况,输入以下命令同步系统时间为准确时间:

timedatectl set-ntp true	# 同步时间
timedatectl status			# 查看系统时间状态
2.4 换源

为保证安全与方便,Linux系统绝大多数软件都是在官方网站下载的,但是ArchLinux官方网站在国外,国内访问的话有点慢,国内有专门的镜像站可以直接从国内服务器下载软件包,就相当于在官网下载的并且镜像站都是每天更新,软件包也是最新的。这里推荐两个镜像站,一个是阿里巴巴的镜像站,一个是华为的镜像站。

# 备份原来的配置文件
cp -a /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak

# 编辑配置文件
vim /etc/pacman.d/mirrorlist
# ---------------下面为vim操作,不同于终端-------------
# 找到第一个 Server=... 的行在该行上一行写入以下内容

Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch

#上面第一个为华为云镜像站,第二个为阿里云镜像站
# --------------------------------------------------

更新软件包

pacman -Syy
2.5 硬盘分区

分区就是为了上面讲到的挂载,不同分区有不同的大小,呈现在文件系统里面就是不同目录有不同大小,下面是我安装 ArchLinux 时的分区情况:

# efi + gpt
/分区:      150G   挂载目录: /		类型:Linux filesystem    作用:存放系统其他文件

/home分区: 300G   挂载目录:/home     类型:Linux Home      作用:存放用户文件,/home/用户名 为指定用户根目录

boot分区:   1G	挂载目录: /boot    类型:EFI System      作用:引导文件存放

swap分区:   16G   挂载目录:无        类型:Linux Swap      作用:系统恢复分区,系统挂起或内存不足时可能会被当作 ROM 使用


# biso + mbr
/分区:      150G   挂载目录: /		类型:Linux     作用:存放系统其他文件

/home分区: 300G   挂载目录:/home     类型:Linux      作用:存放用户文件,/home/用户名 为指定用户根目录

swap分区:   16G   挂载目录:无        类型:Linux Swap      作用:系统恢复分区,系统挂起或内存不足时可能会被当作 ROM 使用

自己可以根据自己的具体情况合理分配,不过我还是建议 /boot 分区不小于500M,/分区不小于30G,这是Arch官方推荐情况。

下面命令用来查看系统的分区情况:

fdisk -l

我的ArchLinux安装到 /dev/nvmeon1 (后面的p1 p2这些就是分区,外接U盘一般为/dev/sdx1 /dev/sdx2等),输入 cfdisk /dev/nvme0n1 进入分区界面

cfdisk /dev/nvme0n1
# ----------------------cfdisk界面---------------------
# cfdisk 是图形化的分区,比fdisk简单很多
# 下面有一行操作文件,通过左右方向键可以移动到不同选项。上下方向键可以选择不同分区进行操作
# [New]选项为新建分区,将方向键选择到未分配的分区,选择[New]选项,回车后会提示新分区大小,输入大小即可创建一个新的分区
# [Quit]可以退出 cfdisk ,并且不保存修改,也就是之前做的操作一律作废
# [Help]选项可以查看 cfdisk 帮助
# [Write]选项才是真的执行写入操作,使用后会对操作的磁盘执行写入,以前做的修改会生效
# [Type]选项可以改变分区类型,boot分区选择EFI分区类型,根分区和home分区选ext4类型,swap分区选择Linux swap类型

分区可以按照我上面列出的方案,swap可以不要,但是 boot分区、根分区和home分区是必须的。分好后记得选择 [Write] 写入之后再选择 [Quit] 退出,分区错误可以选择 [Delete] 删除分区之后重新分配,写入前请再三检查,特别是选择双系统安装的,不要把其他系统数据删除了。分区完成后输入 fdisk -l 查看分区。

2.6 格式化分区

上面的操作只是分区,需要进行格式化,不同分区需要不同的格式。格式化分区会删除所有数据,千万小心操作!

格式化根分区和home分区:根分区和home分区都是Linux常见的 ext4 格式

mkfs.ext4 /dev/<disk>

# 例如:
# mkfs.ext4 /dev/nvme0n1p1
# mkfs.ext4 /dev/nvme0n1p2

格式化boot分区:引导分区采用的是FAT格式

# <disk> 为你刚才分区时指定的分区,如果忘记可以使用 fdisk -l 查看

mkfs.fat -F 32 /dev/<disk>

# 例如:
# mkfs.fat -F 32 /dev/nvme0n1p3

格式化swap分区:交换分区不需要挂载,采用特定格式

mkswap /dev/<device>

# 例如:
# mkswap /dev/nvme0n1p4
2.7 挂载分区

根据上面的分区方案,将不同分区挂载到不同目录

# 假设分区方案为:
# 根分区     ->   /         ->  /dev/nvme0n1p1
# home分区   ->   /home     ->  /dev/nvme0n1p2
# boot分区   ->   /boot     ->  /dev/nvme0n1p3
# swap分区   ->   不挂载    ->   /dev/nvme0n1p4

# Linux分区由根分区开始,所以先挂载根分区,然后创建文件夹,挂载
mount /dev/nvme0n1p1 /mnt

mkdir /mnt/home
mount /dev/nvme0n1p2 /mnt/home

mkdir /mnt/boot
mount /dev/nvme0n1p3 /mnt/boot

swapon /dev/nvme0n1p4
2.8 安装系统

主要安装基本系统和几个待会需要用到的工具。等待安装完成,如果没有报错可以进行下一步

pacstrap /mnt base base-devel linux linux-firmware vim git dhcpcd e2fsprogs iwd
2.9 生成文件系统表

文件系统表主要用于系统启动时自动挂载分区,不然系统无法正常启动!执行以下命令生成

# efi + gpt
genfstab -U /mnt >> /mnt/etc/fstab
# biso + mbr
genfstab -p /mnt >> /mnt/etc/fstab
# 查看是否生成
cat /mnt/etc/fstab

到这一步基本系统安装已经完成,但是还没有对系统进行配置,所以现在还没到关机重启的时候。执行以下命令进入到我们安装的系统,对系统进行配置

arch-chroot /mnt
2.10 设置时区

设置上海为时区,并同步硬件时钟

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 同步硬件时钟
hwclock --systohc
2.11 本地化

程序和库如果需要本地化,需要依赖 Local ,Local明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。

生成 Local 信息:

# 取消注释
sed -i 's/^#en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen
sed -i 's/^#zh_CN.UTF-8/zh_CN.UTF-8/' /etc/locale.gen
# 生成 Local
locale-gen

创建 locale.conf 文件,并编辑设定 LANG 变量

# 这里不建议将 en_US.UTF-8 改为zh_CN.UTF-8 ,这样会导致终端乱码! 
echo "LANG=en_US.UTF-8" >> /etc/locale.conf

echo "LANG=en_US.UTF-8" >> /etc/profile
2.12 主机名与hosts配置
# 这里可以换成自己想要的名字
echo "ArchLinux" >> /etc/hostname

# 将 下面hostname换成自己的主机名,与 /etc/hostname 里面的名字一样
echo -e "127.0.0.1  localhost\n::1  localhost\n127.0.1.1 hostname.localdomain	hostname" >> /etc/hosts
2.13 设置root密码

虽然现在可以使用root大哥,但是新系统里面我们还不知道root大哥的密码,使用下面的命令更改root密码

# 会提示输入两次密码,关乎系统安全请牢记
passwd root
2.14 安装引导程序

需要安装 Linux 引导加载程序,才能在安装后启动系统

安装微码:

# 查看cpu型号
cat /proc/cpuinfo

# amd 电脑安装
pacman -S amd-ucode
# intel 电脑安装
pacman -S intel-ucode

配置grub:

# Arch使用grub2管理引导,安装相关程序

# efi + gpt
pacman -S grub efibootmgr efivar os-prober

# biso + mbr
pacman -S grub efivar os-prober

安装引导:

# --bootloader-id=name  其中 name 可以更改为自己想要的名称,建议简短明确

# efi + gpt
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch --recheck

# biso + mbr
grub-install --target=i386-pc /dev/nvme0n1

grub2默认禁用了 os-prober ,如果你是选择的双系统或多系统安装,需要手动开启该选项,os-prober 可以检查其他硬盘上的其他系统引导,如果不开启,可能无法识别其他系统,如果你是全盘单系统安装,可以忽略这个选项

# 需要开启 os-prober 执行下面命令
echo "GRUB_DISABLE_OS_PROBER=false" >> /etc/default/grub

生成引导配置文件:

grub-mkconfig -o /boot/grub/grub.cfg

如果出现错误,请回头检查命令是否输入错误或者配置是否出错,安装时的一点错误都可能成为你无法开机的原因或者以后使用时的bug。如果检查没有问题,那么我们就可以进行最后的一点设置了。

2.15 配置开机启动项

ArchLinux 使用 systemd 管理后台服务,我们希望开机之后自动连接网络,所以需要下载联网程序并设置开机自启动:

# 下载wifi 管理
pacman -S dhcpcd iwd networkmanager

# 设置开机自启动
systemctl enable dhcpcd
systemctl enable iwd
systemctl enable NetworkManager
2.16 新建用户

开机之后会显示一个终端的登陆界面,由于我们刚才安装时没有新建用户,默认只有一个root用户,所以我们直接使用 root 和 root 密码登录。运行以下命令新建用户:

# <username> 为你自己的用户名,登录用,注意用户名必须全小写
useradd -m -G wheel -s /bin/bash <username>

# 设置用户密码
passwd <username>

# 赋予用户 sudo 权限
chmod 777 /etc/sudoers
vim /etc/sudoers
--------------------
# 找到
# Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL
# 上面这两行,然后输入 i 进入编辑模式,删掉 %wheel行前的 "#" 号
# 保存退出
chmod 440 /etc/sudoers
2.17 结束

到了这里ArchLinux的安装也就到了尾声,接下来你只需要退出安装程序,然后取消挂载分区,重启选择Arch系统就可以进入ArchLinux了

# 退出arch root 安装环境
exit
# 取消挂载
umount -R /mnt
# 重启并拔出U盘
reboot

三. 安装图形界面 KDE

没插网线重启后wifi记得重新连接!

1. 窗口图形系统 Xorg

开机之后会显示一个终端的登陆界面,开始安装kde。必须需要提一句,安装桌面环境需要在普通用户下安装,如果你刚创建完用户,还请重启后用普通用户登录在进行接下来的教程。

窗口图形系统有两种选择——Xorg和Wayland。虽然可以使用 Wayland 启动 KDE Plasma,但仍存在一些缺失的功能和已知问题。建议使用 Xorg 以获得最完整和稳定的体验。

执行下面命令安装 Xorg 的一些组件(提示全部回车确认):

sudo pacman -S xorg-server xorg-apps xorg-xinit xorg-xclock xterm

安装完成后,可执行 startx 命令测试 Xorg 是否正常工作。(执行 exit 退出 Xorg 测试界面)

2. KDE Plasma

# 执行下面命令安装 KDE Plasma(提示全部回车确认):
sudo pacman -S plasma

# 如果你想一次性安装全部 KDE 应用,可执行下面命令(可选)
sudo pacman -S kde-applications

# 下面是安装个人喜欢的一些 KDE 应用
sudo pacman -S dolphin konsole kate kdeconnect ark gwenview filelight kcalc kdenlive krita kdiskmark

# (KDE 全部应用详见 https://apps.kde.org/zh-cn/)

3. 启用登录管理器 SDDM

# sddm 开机自启
sudo systemctl enable sddm
# 启用 SDDM,进入桌面环境
sudo systemctl start sddm

进入桌面后、可通过Alt + Enter快捷键弹出全局搜索框,可以快速搜索打开想要打开的应用,本人打开应用程序99%都是使用这种方式,非常快速便捷!!!

4. 设置网络管理器

如果之前网络是由iwd终端连接wifi的,此刻需要在 iwd 终端忘记之前的连接。否则每次开机都会终端自动连接Wifi导致页面网络管理器不可用

iwd

# 列出以前连接过的网络
[iwd]# known-networks list
# 忘记已知的网络
[iwd]# known-networks 网络名 forget


# 最后点击页面的网络图标连接网络即可

5. 浏览器及字体下载

# 进入桌面环境后,按 Ctrl+Alt+T 可打开终端。执行下面命令安装 Firefox
sudo pacman -S firefox

# 一次性安装常用中文字体
sudo pacman -S wqy-microhei wqy-microhei-lite wqy-bitmapfont wqy-zenhei ttf-arphic-ukai adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts


# 开发人员最喜欢的字体没有之一(yay后面会安装)
yay -S ttf-fira-code

6. KDE 界面改成中文

# 打开 System Settings -> Regional Settings -> Language(modify)

# 点击 Add More languages,往下翻找到简体中文点击 Add

# 点击简体中文一栏右侧的向上箭头,将简体中文的优先级置顶,然后点击 apply

# 点击左侧的 Formats,然后点击右侧的 Region

# 在搜索框里输入 zh_CN,点击 简体中文(中国)

# 然后再点击右下角的apply。注销后重新登录,即可看到中文界面

7. 设置显示器全局缩放率

现在越来越多的人开始用高分屏了,设置一个合适的全局缩放率就很有必要了。
在系统设置的显卡与显示器 -> 显示器配置中可以调节全局缩放率(注销后重新登录生效)。

四. 基本设置

1. 中文输入法

配置

# Arch Linux可以安装安装fcitx5 实现输入中文,具体步骤如下(一路回车即可)
sudo pacman -S fcitx5-im 
sudo pacman -S fcitx5-chinese-addons  fcitx5-rime
# fcitx5-chinese-addons 包含了大量中文输入方式:拼音、双拼、五笔拼音、自然码、仓颉、冰蟾全息、二笔等
# fcitx5-rime 对经典的 Rime IME 输入法的包装,内置了繁体中文和简体中文的支持

# 然后在环境变量配置文件/etc/environment中添加如下内容
# /etc/environment
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx

# 然后配置自动启动,提供以下3种方法,第一个不行,试第2个,然后第3个
# 1. 如果,支持XDG桌面环境,例如KDE,GNOME, Xfce,默认重启后即可

# 2. 在~/.config/autostart目录下添加fcitx-autostart.desktop文件,
#    可以从目录etc/xdg/autostart中复制

# 3.对于i3-wm,可以在配置文件~/.config/i3/config中添加如下代码
exec_always --no-startup-id fcitx5



# 输入法模块: 
# 在只安装 fcitx5 和 输入法引擎 的情况下您可能依然可以正常输入
# 但是安装对应的 输入法模块 后您将获得更加舒适的体验:

fcitx5-qt  # 对 Qt5 程序的支持
fcitx5-gtk # 对 GTK 程序的支持
fcitx5-qt4-gitAUR # 对 Qt4 程序的支持
# 提示: 一般情况下,只安装 fcitx5-qt 和 fcitx5-gtk 就行了

# 词库
# 对于 Fcitx5 的中文输入法, 目前在仓库里提供了数个词库:
fcitx5-pinyin-zhwiki # felixonmars 根据中文维基百科创建的词库。适用于 拼音输入法

# idea不能输入中文的问题
# 在IDEA的bin目录下的idea.sh文件的前面加上
export XIM="fcitx"
export XIM_PROGRAM="fcitx"
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"

添加中文输入法

setting -> 语言和区域设置 -> 输入法
# 去掉默认的输入法
# 添加输入法并应用(默认通过快捷键 ctrl + space 切换中英文)
Pinyin
键盘-英语(美国)

2. 蓝牙

# 安装蓝牙并启动蓝牙服务
sudo pacman -S bluez bluez-utils
sudo systemctl enable bluetooth.service
sudo systemctl start bluetooth.service

# 使用Bluetoothctl进入蓝牙控制台
# Bluez是Linux系统上的蓝牙协议栈,自带了很多有用的工具,Bluetoothctl就是其一。
bluetoothctl --help              # 查看帮助命令
bluetoothctl -v                  # 查看蓝牙版本

# 使用Bluetoothctl连接蓝牙案例
bluetoothctl                     # 进入蓝牙管理工具环境
# [bluetooth]# power on                打开蓝牙
# [bluetooth]# agent on                开启
# [bluetooth]# scan on                 扫描蓝牙设备
# [bluetooth]# pair xx:xx:xx:...       配对该设备
# [bluetooth]# trust xx:xx:xx:...      信任该设备
# [bluetooth]# connect xx:xx:...       连接该设备
# [bluetooth]# disconnect xx:xx:...    断开蓝牙
# [bluetooth]# help                    查看帮助信息
# [bluetooth]# show                    查看本机蓝牙信息
# [bluetooth]# discoverable yes        设置蓝牙可被发现
# [bluetooth]# info xx:xx:xx:...       查看该蓝牙设备的信息

# 安装蓝牙音频
sudo pacman -S pulseaudio-bluetooth


# 蓝牙图形化管理工具安装
sudo pacman -S bluedevil

3. pacman 32位运行库与ArchLinuxCN库的支持

添加国内源

# 编辑配置文件
vim /etc/pacman.d/mirrorlist
# ---------------下面为vim操作,不同于终端-------------
# 找到第一个 Server=... 的行在该行上一行写入以下内容

Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch

为了系统的稳定,官方关闭了32位软件以及aur软件库,但是仅仅只依靠官方源中的软件时不够用的,这里我们要打开这两个库

vim /etc/pacman.conf

去掉[multilib]一节中两行的注释,来开启 32 位库支持。在文档结尾处加入下面的文字,来开启 ArchLinuxCN 源。

[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

执行 sudo pacman -Syyu 更新pacman数据库

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

sudo pacman -S archlinuxcn-keyring

有时候因为密钥环的问题,导致这一步安装报错,可以依次执行下面的命令

sudo pacman -Syyu
sudo pacman -S haveged
sudo pacman -Syu haveged
sudo systemctl start haveged
sudo systemctl enable haveged

sudo rm -fr /etc/pacman.d/gnupg
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --populate archlinuxcn

# 如果 系统长时间不更新,可能也会出现问题
# 更新密钥
pacman-key --refresh-keys
# 注意:keyserver如果是国外的更新很慢,以下是其他kerserker服务,可以指定更新服务器:
sudo pacman-key --refresh-keys --keyserver http://pgp.mit.edu

然后再重新安装,即可解决问题

最后安装 yay 用来下载archlinuxcn库中的软件

4. 安装 AUR Helper(yay)

官方仓库的软件实在是太少了,哪里有更丰富的软件源呢?答案是 AUR(Arch 用户软件仓库,全称 Arch User Repository)。AUR 是为用户而建、由用户主导的 Arch 软件仓库。

从 AUR 安装软件包,需要先安装 AUR Helper,这里以最有名的 yay 为例。yay 是一个用 Go 语言开发的 AUR Helper,具有高级依赖解决、PKGBUILD 下载、AUR 包名自动补全、移除生成依赖等功能。使用下面命令安装 yay(Binary 版本,无需自己编译)

pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si

注意:执行 yay 的所有命令时,前面不需要加 sudo

5. pacman/yay 常用操作

以下操作对 yay 同样适用

# 1.系统更新
#   对整个archLinux进行更新
pacman -Syu
#   如果你已经使用 pacman -Sy 将本地的包数据库与远程的仓库进行了同步,也可以只执行:
pacman -Su
#   如提示冲突,可强制更新(dd跳过所有检查)
pacman -Syudd

# 2.安装包
pacman -S 包名                   # 你也可以同时安装多个包, 只需以空格分隔包名即可
pacman -Sy 包名                  # 与上面命令不同的是,该命令将在同步包数据库后再执行安装
pacman -Sv 包名                  # 在显示一些操作信息后执行安装
pacman -U  包名.tar.gz           # 安装本地包,其扩展名为 pkg.tar.gz

# 3.删除包
pacman -R 包名                   # 该命令将只删除包,不包含该包的依赖
pacman -Rs 包名                  # 在删除包的同时,也将删除其依赖
pacman -Rd 包名                  # 在删除包时不检查依赖

# 4.搜索包
pacman -Ss 关键字                # 这将搜索含关键字的包
pacman -Qi 包名                  # 查看有关包的信息
pacman -Ql 包名                  # 列出该包的文件

# 5.其他用法
sudo pacman -R $(pacman -Qdtq)  # 清除系统中无用的包
pacman -Sw 包名                  # 只下载包,不安装
pacman -Sc                      # Pacman下载的包文件位于 /var/cache/pacman/pkg/ 目录
                                # 该命令将清理未安装的包文件
pacman -Scc                     # 清理所有的缓存文件

6. pacman 常用软件

openssh               # ssh 链接远程服务器
peek                  # GIF录制
tree                  # 玩 Linux 的朋友都知道该命令
python-pip            # Python 用户必备
neovim                # vim 党福音
neofetch              # 查看系统信息
screenkey             # 显示按下的键
figlet                # 生成一个 logo
iputils               # 允许用户使用 ping 命令
wget                  # 下载工具


# 启动 ssh 服务
systemctl start sshd
systemctl enable sshd


# Virtualbox 安装与配置
#   需要安装linux-headers
sudo pacman -S linux-headers
#   确认linux内核版本,确保linux-headers的版本和linux版本相同
uname -r
#   安装 virtualbox,执行命令后,会提示选择安装virtualbox软件类型,选择virtualbox-host-dkms
sudo pacman -Syu virtualbox
#   安装virtualbox-guest-iso
sudo pacman -S virtualbox-guest-iso
# 把当前用户增加到vboxusers组
sudo usermod -G  vboxusers -a  myuser 

7. yay 常用软件

# 安装 AUR 软件
yay -S 包名

# 使用 yay 安装下面软件之前,请先确保基础打包工具(base-devel)已经安装
yay -S base-devel

# 防火墙
yay -S firewalld
systemctl enable --now firewalld

# 常用 aur 软件
# ===> 编程软件
yay -S visual-studio-code-bin  #  Visual Studio Code 
yay -S intellij-idea-ultimate-edition intellij-idea-ultimate-edition-jre  # idea

# ===> 办公软件
yay -S google-chrome  # google 浏览器
yay -S wps-office-cn wps-office-mui-zh-cn ttf-wps-fonts #  WPS Office

# ===> 社交软件
yay -S icalingua++ # Icalingua++(第三方Linux QQ)
yay -S deepin-wine-tim  # win tim
yay -S deepin-wine-wechat  # win 微信
yay -S com.tencent.weixin # 微信

# ===> 实用工具
yay -S utools                # uTools搜索
yay -S flameshot             # 火焰截图
yay -S motrix-bin            # 下载工具
yay -S kdiskmark-git         # 磁盘检测工具
yay -S gimp                  # 图像处理
yay -S kdenlive              # 视频后期
yay -S baidunetdisk-electron # 百度盘
yay -S xunlei-bin            # 迅雷
yay -S netease-cloud-music   # 网易云
yay -S obs-studio            # obs
yay -S p7zip                 # 压缩
yay -S unrar                 # 压缩

所有 AUR 软件可在 https://aur.archlinux.org/ 上查询。

8. 显卡驱动与双显卡切换

首先,安装显卡驱动。mesa是所有开源显卡驱动的基础,一般都要安装。

# 查看显卡型号
# 自带核显
lspci |grep VGA
# 查看其它独显
lspci |grep -i nvida

这里,我们尽量给安装完整,有几大功能:OpenGL, vulkan, vaapi, vdpau, opencl. 32位的程序也要使用并安装相应的驱动 (请先更新pacman 32运行库)。系统是archlinux,用的官方内核。

Intel显卡驱动安装:

sudo pacman -S mesa xf86-video-intel vulkan-intel
sudo pacman -S libva-intel-driver libvdpau-va-gl intel-compute-runtime
sudo pacman -S lib32-vulkan-intel lib32-mesa intel-gpu-tools
# mesa    3D driver
# xf86-video-intel    2d driver
# libva-intel-driver    vaapi 视频硬解码库
# libvdpau-va-gl    vdpau 视频硬解码库,以vaapi为基础的翻译层
# intel-compute-runtime    opencl
# intel-gpu-tools    用sudo intel_gpu_top观察Intel显卡负载

nvidia显卡驱动安装:(yay软件在archlinuxcn里面,添加源就可安装)

# 闭源驱动:
sudo pacman -S nvidia nvidia-prime nvidia-settings nvidia-utils opencl-nvidia
sudo pacman -S lib32-nvidia-utils lib32-opencl-nvidia libva-vdpau-driver
# nvidia    内核所属,记得更新驱动也要更新linux内核:sudo pacman -Syu
# nvidia-utils    opengl, vulkan, vdpau
# opencl-nvidia    opencl, cuda driver
# nvidia-prime    用"prime-run $cmd"启动程序运行于nvidia上
# libva-vdpau-driver    vaapi 视频硬解码库,以vdpau为基础的翻译层
 
# 开源驱动:(2d性能和闭源驱动相当,3d性能可能是闭源的一半,不支持opencl)
yay -S nouveau-fw
sudo pacman -S mesa xf86-video-nouveau lib32-mesa libva-mesa-driver mesa-vdpau
# xf86-video-nouveau    2d driver
# nouveau-fw    nvidia官方firmware,视频硬解需要
# libva-mesa-driver    vaapi 视频硬解码库
# mesa-vdpau    vdpau 视频硬解码库

AMD显卡驱动安装:

sudo pacman -S mesa xf86-video-amdgpu vulkan-radeon libva-mesa-driver mesa-vdpau
sudo pacman -S opencl-mesa lib32-vulkan-radeon lib32-mesa
# xf86-video-amdgpu    2d driver
# vulkan-radeon    vulkan
# opencl-mesa    opencl
 
# 开源驱动性能和闭源驱动差不了多少,就不考虑闭源。这方面AMD更好。

如果要在Linux下工作,那么不推荐买nvidia显卡;如果只是为了打游戏,那么推荐买nvidia显卡。轻度办公和游戏,核显足够了。看视频的话,整个多核心带核显CPU就行。

Virtualbox(显卡)驱动安装:

sudo pacman -S virtualbox-guest-utils mesa lib32-mesa
systemctl enable --now vboxservice

Vmware(显卡)驱动安装:

sudo pacman -S mesa xf86-video-vmware xf86-input-vmmouse open-vm-tools lib32-mesa
systemctl enable --now vmtoolsd
systemctl neable --now vmware-vmblock-fuse

硬件无关的opencl库:

sudo pacman -S pocl

驱动安装完了,但是不知道如何使用。建议先sudo mkinitcpio -P再重启后,才会启动驱动。

要检查驱动的功能,可以如下方法:

sudo pacman -S --needed vulkan-tools libva-utils vdpauinfo mesa-demos lib32-mesa-demos

# 64位的opengl信息
glxinfo -B
# 32位的opengl信息
glxinfo32 -B
# 使用glxinfo命令可以查看当前正在使用的显卡。
# Intel
glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa Intel(R) UHD Graphics 630 (CFL GT2)
# 切换NVIDIA显卡后
glxinfo | grep "OpenGL renderer"
OpenGL renderer string: NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2

# vulkan信息汇总
vulkaninfo --summary
# vaapi信息
vainfo  # 注意:闭源nvidia驱动会导致该命令不可用
# vdpau信息
vdpauinfo

此外,可能还需要切换显卡,要用这项功能,安装optimus-manager软件包:

具体详情参照Optimus-manager的GitHub页面

yay -S optimus-manager

# 命令行切换显卡
optimus-manager --switch nvidia   # 切换到 Nvidia GPU
optimus-manager --switch integrated  # 切换到集成 GPU 并关闭 Nvidia GPU

UI界面:我使用的是kde桌面环境,所以我的安装过程是

sudo pacman -S bbswitch 
yay -S optimus-manager-qt-kde

# 安装完成后就可以在任务栏上找到Optimus Manager Qt这一项
# 右键可以切换显卡,之后会自动注销; 你也可以打开设置进行设置。

五. 触控板设置

1. 前言

官网wiki

当前系统环境是 archlinux+kde plasma5,touchegg和libinput-gestures都可以触控板需求,但是在实际配置过程中touchegg存在很多问题一直都没能解决,而libinput-gestures基本没有太大的问题。所以使用libinput-gestures。

kde是X.Org桌面环境,aur上维护了一个基于X.Org Server的驱动xf86-input-libinput-git很方便。而下面所说的X11 client在我这里就是kde plasma5。

驱动程序libinput在linux生态提供了很多驱动,本文使用的驱动是libinput,它负责分析内核从输入设备得到的数据发送给桌面环境,桌面环境根据不同的数据进行反馈。

术语解释

  • touchpad:通常意义上的触摸板。
  • clickpad:指底部没有按钮的touchpad,参考clickpad。clickpad中通过不同手指数量的点击行为来模拟鼠标左键、中键、右键点击。这些都可以配置或者关闭。
  • click:点击,本文语境中之物理按钮的“按压”和“释放”。
  • Clickpad software button behavior:clickpad上软按钮的行为,详情见Clickpad software button behavior。

2. 基本设置

# setting -> 输入设备 -> 触摸板
手指轻触      轻触点击、轻触拖拽
双指轻触      右击(三指轻触中键点击)

3. 安装libinput 与 xdotool

# 确保当前用户在输入组中具有读取触摸板设备的权限
sudo gpasswd -a $USER input

# install basic libinput and xf86-input-libinput
sudo pacman -S libinput xf86-input-libinput

# 安装 xdotool 和 libinput-gestures
yay -S xdotool libinput-gestures

# 开机自动启动
libinput-gestures-setup autostart
# 试一下三指上下滑动成功了不,如果不成功就重启一下,如果重启了还不成功就用
sudo libinput-gestures
# 试一下,如果提示少依赖,根据提示sudo apt-get install + 提示依赖名
# 然后重新运行自动启动

4. 配置

libinput有两种配置方式:

  • 使用配置文件的永久配置方式
  • 使用xinput命令行工具,针对运行时(runtime)进行实时配置,主要用来调试。

libinput安装后默认的配置文件在/usr/share/X11/xorg.conf.d目录下,如何你安装多个驱动会存在多个文件:

[monap@ArchLinux ~]$ ls /usr/share/X11/xorg.conf.d/
10-nvidia-drm-outputclass.conf  10-quirks.conf  40-libinput.conf  50-vmmouse.conf

这里安装了4个驱动所以会有4个配置文件,默认情况下kde会根据文件前缀数字的大小决定优先使用哪个配置文件,数字越大优先级越高。

我们需要把默认配置文件复制到/etc/X11/xorg.conf.d/目录下:

sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/40-libinput.conf

下面是文件中touchpad部分的配置:

Section "InputClass"
        Identifier "touchpad"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "Tapping" "on"
        Option "ButtonMapping" "1 3 0 4 5 6 7"
        Option "TappingButtonMap" "lmr"
        Option "DisableWhileTyping" "on"
        Option "TappingDrag" "on"
EndSection

详细参数和解释见libinput man page: based on X.Org input dirver,解释下几个重要的配置参数:

  • Option “Tapping” “on”:手指点击touchpad发送鼠标点击事件
  • Option “TappingButtonMap” “lmr”:1个手指点击对应鼠标左键,2个手指点击对应鼠标中键,3个鼠标点击对应鼠标右键
  • Option “ButtonMapping” “1 3 0 4 5 6 7”,按钮映射,详情见libinput#Button_Mapping,这里笔者关闭了3指对应的左键
  • Option “DisableWhileTyping” “on”:打字时不检测touchpad事件,防止用户不小心触碰touchpad引起不必要的影响
  • Option “TappingDrag” “on”:开启点击拖拽

调试

  1. 确定touchpad设备
[monap@ArchLinux ~]$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN962C:00 04F3:30F5 Mouse               id=11   [slave  pointer  (2)]
⎜   ↳ ELAN962C:00 04F3:30F5 Touchpad            id=12   [slave  pointer  (2)]
⎜   ↳ SYNA7813:00 06CB:1A1A                     id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ HD Camera: HD Camera                      id=10   [slave  keyboard (3)]
    ↳ Huawei WMI hotkeys                        id=14   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]
  1. 查看touchpad的详细配置
# 这里面有一个值很重要Device Node (xxx):"/dev/input/event8" 
# 后面使用libinput命令行时会用到这个路径
[monap@ArchLinux ~]$ xinput list-props "ELAN962C:00 04F3:30F5 Touchpad"
        ...
        libinput Left Handed Enabled (328):     0
        libinput Left Handed Enabled Default (329):     0
        libinput Send Events Modes Available (299):     1, 1
        libinput Send Events Mode Enabled (300):        0, 0
        libinput Send Events Mode Enabled Default (301):        0, 0
        Device Node (302):      "/dev/input/event8"
        Device Product ID (303):        1267, 12533
        libinput Drag Lock Buttons (330):       <no items>
        libinput Horizontal Scroll Enabled (331):       1
        libinput Scrolling Pixel Distance (332):        15
        libinput Scrolling Pixel Distance Default (333):        15
        libinput High Resolution Wheel Scroll Enabled (334):    1
  1. 使用libinput debug-events 监控touchpad事件
[monap@ArchLinux ~]$ libinput debug-events --device /dev/input/event8
-event8   DEVICE_ADDED            ELAN962C:00 04F3:30F5 Touchpad    seat0 default group1  cap:pg  size 115x70mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on dwtp-on
 event8   POINTER_MOTION          +0.023s        -0.40/  0.62 ( -2.00/ +3.10)
 event8   POINTER_MOTION          +0.031s        -1.29/  2.67 ( -4.00/ +8.26)
 event8   POINTER_MOTION          +0.039s        -4.28/  6.80 (-13.00/+20.65)
 event8   POINTER_MOTION          +0.047s        -8.56/ 12.72 (-25.00/+37.16)
  1. 使用libinput debug-gui 监控touchpad事件

这里可能会报没有 libgtk-4.so.1 的错误,安装gtk4即可:yay -S gtk4

# 这时会出现一个GUI画面帮助检测
libinput debug-gui --device /dev/input/event8

5. libinput-gestures 配置

配置好touchpad和手势后,下面利用 libinput-gestures 来解析touchpad的数据,然后执行相关的操作。这里主要用到xdotool,xdotool是模拟键盘/鼠标输入和窗口管理等的命令行工具。libinput-gestures依赖xdotool。

libinput-gestures安装后会有默认的配置,位置在/etc/libinput-gestures.conf,用户可以在~/.config/libinput-gestures.conf配置自己的配置。这里我根据自己的需要修改了相关配置如下:

# Switch to next desktop
gesture swipe right 4   xdotool key ctrl+F1
# Switch to prev desktop
gesture swipe left 4 xdotool key ctrl+F2

# Present windows (current desktop)
gesture swipe down 3 xdotool key ctrl+F9
# Present windows (all desktop)
gesture swipe down 4 xdotool key ctrl+F10

# Show desktop
gesture swipe up 3 xdotool key super+d
# Show desktops grid
gesture swipe up 4 xdotool key ctrl+F8

主要思想是针对不同的手势触发相关的快捷键,快捷键的配置则可以在系统偏好设置→快捷键中设置。下图是我在plasma5中的切换桌面的快捷键配置:

# 配置快捷键:setting -> KWin 
切换到上一个桌面                       Ctrl + F1
切换到下一个桌面                       Ctrl + F2
显示/应玚窗口平铺(当前桌面)            Ctrl + F9      
显示/应玚窗口平铺(全部桌面)            Ctrl + F10
显示虚拟桌面网格                       Meta + F8
暂时显示桌面                          Meta + D

添加虚拟桌面:

# 工作区行为 -> 虚拟桌面 -> 按自己需求添加任意个

TODO

  • 通过捏和(pinch in/pinch out)来放大/缩小网页(对标macbook)
  • 网页的前进/后退(对标macbook)
  • 待添加…

六. 转换deb包

可能一些软件需要我们手动将 deb 包 转换后安装,这时候就需要 debtab 工具来转换。

# 安装
yay -S debtap

# 更新
sudo debtap -u

# 下载好待转换的 deb 包,将其转换,以下步骤一路回车即可
sudo debtap ~/Downloads/包名.deb

# 安装转换后的包
sudo pacman -U ~/Downloads/包名.pkg.tar.zst

七. 访问

个人主页查看

八. KDE 桌面美化

1. 官网下载

在 设置 -> 外观中下载各种美化插件!!

如果没有访问,则需要手动去 主题官网 下载各类美化效果的压缩包,然后解压到下面的目录中即可

~/.local/share/plasma/look-and-feel/  # 存放全局主题
~/.local/share/plasma/desktoptheme/   # 存放 plasma 视觉风格
~/.local/share/plasma/plasmoids/      # 存放插件
~/.local/share/aurorae/themes/		  # 存放窗口装饰
~/.local/share/color-schemes/		  # 存放颜色
~/.local/share/icons/				  # 存放图标
~/.local/share/fonts/				  # 存放字体
~/.local/share/sddm/themes/			  # 欢迎屏幕
~/.local/share/backgrounds/			  # 壁纸

系统设置 -> 外观 中 可以应用我们下载下来的各种美化插件!

我的方案:

  • 桌面右击-配置桌面和壁纸-获取新壁纸:Linux Cheatsheet Wallpaper-Arlinux_Linux.png
  • 全局主题使用:系统自带 Breeze 微风深色-只勾选了外观布局
  • 应用程序风格:Oxygen 轻氧
  • 光标:ArchCusorTheme
  • 欢迎屏幕:Smokey Arch Blue
  • 工作区行为-锁屏-外观配置:Arlinux_Linux
  • 工作区行为-最近文件:不要记住
  • 开机与关机-登陆屏幕(SDDM):sweet

2. dock栏

# 删除原始默认面板菜单
右击下方图标面板 -> 进入编辑模式 -> 删除面板

# 下载 latte-dock
sudo pacman -S latte-dock

# 启动 dock 
latte-dock

# 右击 dock 栏,配置 latte、选择布局编辑器,选择 extended
# 右击 dock 栏,编辑停靠栏、点击高级 逐项按自己需求设置

# 面板添加电池组件
# 桌面右击 -> 添加组件 -> 搜索电池 -> 拖动到面板合适的位置即可

3. 系统托盘

当打开一个应用之后,可以在 dock 栏中右击该应用的图标,然后将其固定在 dock 栏上。我们还需要一个类似 MAC 系统的 launchpad 程序,可以右击 dock 栏然后添加部件,点击右上角的 Get New Widgets。

搜索 OSXLaunchpad 下载并添加,然后将它添加到 dock 栏上。

加完成后,在 OSXLaunchpad 上单击右键,然后配置 OSXLaunchpad 向下面这样设置:

  • 快捷键:meta + a
  • 设置自定义背景图

九. 终端美化

Konsole配置

# 打开Konsole -> 设置 -> 配置konsole
标签栏 -> 外观 -> 显示 -> 勾选永不
配置方案 -> 新建并命名为custom、勾选默认配置方案
外观 -> Breeze 微风 -> 编辑 -> 透明度10%
外观 -> 字体 -> 选择 -> 设置字体大小为12

# 设置 -> 显示工具栏 -> 取消勾选主工具栏、会话工具栏

# 设置 -> 取消勾选菜单栏(可通过右击终端设置中打开菜单栏)

下拉式终端 yakuake

# 第一次打开会让设置下拉终端快捷键 -> 按自己方便设置即可

# 该终端也Konsole共享系统配置,不用再对系统配置作更改

# 设置yakuake独有配置
# 打开yakuake(面板会有终端小图标出现)、右击
#   宽度:100%
#   高度:100%
#   配置yakuake
#      窗口 -> 取消勾选显示标d题栏、取消勾选显示标签栏
#      外观 -> 勾选隐藏边框

# 设置开机自启动
# 设置 -> 开机与关机 -> 自动启动 -> 添加 -> 添加应用程序 -> 系统 -> Yakuake

十. 其他软件安装

1. Typora

方式一:二进制包

Typora 最新版已经收费,可以在官网下载以前的版本并手动安装,下面是最后一个免费版本:

下载完成后手动安装:

$ sudo tar -xvf ~/Downloads/Typora-linux-x64-1.0.3.tar.gz -C /usr/local
$ sudo mv /usr/local/bin/Typora-linux-x64 /usr/local/typora

添加可视化启动程序,在 ~/.local/share/applications 下新建以下文件,Typora 内部自己有 PNG 图片,所以不需要额外下载,直接复制粘贴以下内容即可:

$ vim ~/.local/share/applications/typora.desktop

[Desktop Entry]
Type=Application
Name=Typora
Exec=/usr/local/typora/Typora
Icon=/usr/local/typora/resources/assets/icon/icon_512x512@2x.png
Terminal=false
Categories=program;InstantMessaging
方式二:deb包
# 直接Typora官网下载最新deb包

# 利用前面安装的deb包转换工具安装即可

2. Navicat

# 创建AppImage、二进制格式软件存放目录
mkdir -p ~/Application/{AppImage,binary}

# 下载
cd ~/Application/AppImage
wget http://download.navicat.com.cn/download/navicat16-premium-cs.AppImage

# 赋权
chmod +x navicat16-premium-cs.AppImage

# 执行
./navicat16-premium-cs.AppImage

# 第一次通过上面方式启动后Navicat会自动创建桌面图标,下次启动就可以直接以快捷方式启动!

十一. 常见Bug解决

1. VScode Git保持登录状态

arch 系的 Linux 无法保存 vscode 里 github 的登录状态,需要下载一个插件进行解决

yay -S qtkeychain gnome-keyring

十二. 链接

更多Linux相关优化与软件攻略请参考个人笔记:常用Linux软件-工具

  • 6
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值