This article is adapted from shorinkiwata/archlinuxinstall, preserving the original tutorial's practical depth while anonymizing details and correcting risky guidance. Package names, extensions, drivers, and interfaces may change with rolling updates. All commands below are examples for reading; they were not executed or verified as part of this task.
Prerequisites and Choosing Package Sources#
The desktop installation commands assume that the base system boots and has network access. Third-party repositories, the AUR, and Flatpak are separate trust sources. Check package availability, verify signatures and authorization, then choose according to your needs. After enabling a repository, perform a full system upgrade; avoid installing packages with -Sy alone.
If native GNOME Wayland applications use the compositor's input protocol, do not unconditionally export GTK_IM_MODULE=fcitx globally. Follow Fcitx5's session instructions. When setting variables for specific applications such as WPS, prefer user-level launchers or wrapper scripts instead of directly modifying package-managed files such as /usr/bin/wps. Choose either IBus or Fcitx5 as the main input-method framework, and review environment variables and autostart entries when switching.
Configure the System#
Install the Desktop Environment and Required Components
pacman -S gnome-shell gnome-session gdm ghostty gnome-control-center gnome-software flatpak
# gnome-shell/gnome-session 提供桌面会话;gnome-desktop 是库组件
# gdm是显示管理器(gnome display manager)
# ghostty是一个可高度自定义的终端模拟器(terminal emulator)
# gnome-control-center是设置中心
# software和flatpak是软件商城
Create a User
(Skip this if you installed with archinstall.)
useradd -m -G wheel <username> #不需要输入<>符号
- Set the Password
passwd <username>
- Edit Permissions
EDITOR=vim visudo
- Search for wheel and Uncomment the Entry
%wheel ALL=(ALL:ALL) ALL
Install NVIDIA Drivers and Hardware Video Codecs
Reference: NVIDIA - ArchWiki
Check Kernel Headers
sudo pacman -S linux-headers
# linux替换为自己的内核
Install Graphics Drivers
Choose the driver for your GPU generation and kernel first; do not copy package names directly from old tutorials. The following example is for a currently supported GPU using open kernel modules with the linux kernel:
sudo pacman -S nvidia-open nvidia-utils nvidia-settings
Custom kernels or the zen kernel often require nvidia-open-dkms and matching headers; older GPUs need their supported driver branch. Overclocking is not required for driver installation. Verify hardware and driver support separately.
For AMD Integrated Graphics, Check That a Vulkan Driver Is Installed
sudo pacman -S vulkan-radeon
sudo pacman -S vulkan-tools
# 测试工具,vulkaninfo --summary查看vulkan是否启用,vkcube测试vulkan渲染
- If applications still run on the NVIDIA GPU in hybrid mode, check whether vulkan-mesa-layers is installed. Reference: gnome-shell uses dgpu instead of igpu : r/gnome
sudo pacman -S vulkan-mesa-layers
Hardware Video Encoding and Decoding
- NVIDIA GPUs: check the current support requirements for libva-nvidia-driver
sudo pacman -S libva-nvidia-driver libva libva-utils
- Intel Xe integrated graphics
sudo pacman -S intel-media-driver libva libva-utils
- AMD GPUs: confirm that the appropriate Mesa VA-API driver is installed
sudo pacman -Q libva-mesa-driver
- Use vainfo to Verify the Installation
vainfo
- Environment Variable Names (No Manual Setting Needed Unless Selecting a Specific GPU)
LIBVA_DRIVER_NAME=nvidia #nvidia
LIBVA_DRIVER_NAME=radeonsi #amd
- Install Fonts
sudo pacman -S wqy-zenhei noto-fonts noto-fonts-emoji
- Reboot to Activate the Graphics Driver
reboot
- Start GDM Temporarily
sudo systemctl start gdm #即使出了问题重启也能恢复,避免进不了tty的情况
- Enable GDM at Boot
sudo systemctl enable gdm
- Optional: Enable the 32-Bit Repository (Skip for archinstall)
sudo vim /etc/pacman.conf #编辑pacman配置文件
去掉[multilib]两行的注释
sudo pacman -Syyu #刷新源
Create the Standard Home Directories If Missing
xdg-user-dirs-update
Delete or Hide Unnecessary Shortcuts
The Flatpak commands assume a trusted Flathub remote is already configured. Review permissions before installing.
flatpak install flathub io.github.fabrialberio.pinapp
Enable invisible for the icons you want to hide, then save
Install Audio Firmware and Services
- Install Audio Firmware
sudo pacman -S sof-firmware alsa-firmware alsa-ucm-conf
- Install Audio Services
sudo pacman -S pipewire pipewire-pulse pipewire-alsa pipewire-jack wireplumber
- Enable the Services
systemctl --user enable pipewire pipewire-pulse wireplumber
systemctl --user start pipewire pipewire-pulse wireplumber
- Optional: Install a GUI
sudo pacman -S pavucontrol
Install nm-connection-editor for Advanced Network Configuration
sudo pacman -S network-manager-applet dnsmasq
- Set the Route Metric
启动安装的软件或输入nm-connection-editor
路由 metric 影响多个路由的优先级,不普遍决定网络速率。只有确需调整路径优先级时设置固定值,例如 100;自动值或界面占位值不等于速率故障。
Install yay
- Edit the pacman Configuration File
sudo vim /etc/pacman.conf
- Add the following at the bottom of the file
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = https://mirrors.hit.edu.cn/archlinuxcn/$arch
Server = https://repo.huaweicloud.com/archlinuxcn/$arch
- Install the Keys
sudo pacman -Syu archlinuxcn-keyring
- Install yay
sudo pacman -S yay
Or Install from Git
GitHub - Jguer/yay: Yet another Yogurt - An AUR Helper written in Go
sudo pacman -S git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si
Choose Additional Software
Optional Application Examples
Choose applications by purpose. Package names and repositories change, so look them up before installing. These are not required desktop components.
- If an icon does not appear after installation, log out once
- pacman
sudo pacman -S mission-center gnome-text-editor gnome-disk-utility gnome-clocks gnome-calculator loupe snapshot baobab showtime fragments file-roller foliate gst-plugin-pipewire gst-plugins-good pacman-contrib amberol
# mission-center 类似win11的任务管理器
# gnome-text-ditor记事本
# gnome-disk-utility磁盘管理
# gnome-clocks时钟
# gnome-calculator计算器
# loupe图像查看
# snapshot相机,摄像头
# baobab磁盘使用情况分析工具,
# showtime 极度简洁的视频播放器,要强大功能可以用MPV,也可按格式和操作习惯选择 VLC
# fragments是符合gnome设计理念的种子下载器
# file-roller解压
# foliate 电子书阅读器
# zen-browser zen-browser-i18n-cn 基于firefox的浏览器和cn语言包
# gst-plugin-pipewire gst-plugins-good gnome截图工具自带的录屏,需登出
# pacman-contrib 是pacman的一些小工具
# amberol 音乐播放器
Zen 浏览器模组可按偏好选择;透明效果和动画表现应结合显卡、合成器和版本测试。
- QQ, WeChat, and WPS
yay -S linuxqq wechat wps-office-cn # 先查询当前包名、来源与许可
- Markdown Editor
yay -S <MARKDOWN_EDITOR_PACKAGE> # 确认来源和授权后选择包
- flathub
flatpak install flathub be.alexandervanhee.gradia io.github.Predidit.Kazumi io.gitlab.theevilskeleton.Upscaler com.github.unrud.VideoDownloader io.github.ilya_zlobintsev.LACT xyz.ketok.Speedtest com.geeks3d.furmark com.rafaelmardojai.Blanket
gradia编辑截图
kazumi追番
upscaler图片超分
video downloader下载youtube 144p~8k视频
LACT 显卡超频、限制功率、风扇控制等等
speedtest 测试网速
furmark 显卡烤鸡
Blanket 白噪音播放器
- Using gradia to Edit Screenshots: It can add simple text, mosaics, diagrams, backgrounds, and similar elements to screenshots. When configuring a custom shortcut, use this command:
flatpak run be.alexandervanhee.gradia --screenshot=INTERACTIVE
Example shortcuts: Ctrl+Alt+A for the system's interactive screenshot tool, and Super+Shift+S for the screenshot editor. First check for conflicts with existing desktop shortcuts.
appimage
AppImage is a portable application format. Some Type 2 AppImages require the FUSE 2 compatibility library; they can also be extracted and run according to the project's instructions. Verify the source and execution permissions. Requiring no installation does not mean requiring no dependencies. Install appimagelauncher to Manage AppImage Applications
yay -S appimagelauncher
After installation, launching an AppImage opens an appimagelauncher window. On first launch, it asks you to choose an installation path, defaulting to the Applications directory under your home directory. You can then choose to run it once or integrate it into the system. Installation sometimes fails, or the application may not run afterward.
- To uninstall an AppImage application, right-click its shortcut and choose remove appimage from system. Alternatively, manually delete its desktop file from ~/.local/share/applications and its AppImage file from the installation directory.
Set the System Language
Right-click the desktop, select setting, then system, then region&language. If you installed with archinstall, only English may be listed here. To fix this:
- Localization Settings
sudo vim /etc/locale.gen
取消zh_CN.UTF-8的注释
sudo locale-gen
Install an Input Method
fcitx5
sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-mozc
mozc is the open-source version of Google Japanese Input
- Install the GNOME extension Input Method Panel: https://extensions.gnome.org/extension/261/kimpanel/
- Add an input method in the fcitx5 configuration. If it is missing, log out once to reload the session
- Edit Environment Variables
sudo vim /etc/environment
# 按会话和应用需求选择;原生 GTK Wayland 应用通常不要强制此项
# GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
重启电脑
When WPS Cannot Use fcitx5
Because of issues in WPS itself, the variables need to be set manually:
- Writer:
/usr/bin/wps - Spreadsheets:
/usr/bin/et - Presentation:
/usr/bin/wpp
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
ibus-rime
Rime - Arch Linux Chinese Wiki Optional Configuration (Basics) | A Concise Guide to Arch Linux RIME · GitHub IBus integrates very well with GNOME and can be used without configuring environment variables. Rime allows customization of input schemas, dictionaries, and candidate behavior.
- Remove the fcitx5 Input Method (Remember to Disable Its Extension)
sudo pacman -Rns fcitx5-im fcitx5-chinese-addons fcitx5-mozc
- Install ibus-rime
sudo pacman -S ibus ibus-rime
# 雾凇方案按上游说明选择安装来源,不假定 ice-rime 在官方仓库
yay -S ibus-mozc #日语输入法
In GNOME Settings > Keyboard, search for rime and add the input method. If you previously disabled the typing shortcuts in system settings, restore them. Edit the configuration file to set the input method to ice
vim ~/.config/ibus/rime/default.custom.yaml
Create missing files and directories yourself: mkdir creates directories, and touch creates files
patch:
# 这里的 rime_ice_suggestion 为雾凇方案的默认预设
__include: rime_ice_suggestion:/
- Edit Environment Variables
sudo vim /etc/environment
Remove or comment out the fcitx5-related environment variables. Normally, IBus on GNOME needs no environment-variable configuration. If problems occur, you can replace fcitx5 with ibus in those settings.
- The first time you switch to the rime input method, wait for deployment to finish
- If something goes wrong, try logging out once
- Optional: Add the Moegirlpedia Dictionary
yay -S rime-pinyin-moegirl
vim ~/.config/ibus/rime/rime_ice.dict.yaml # 使用用户级方案,避免直接改包管理文件
按照指引在合适的位置添加
- moegirl
Snapshots
Snapshots are convenient for saving system state, but they are not independent backups. Use the snapshot manager's deletion feature and keep an eye on disk space; there is no basis for assuming that bulk deletion inevitably crashes the system. Choose Timeshift, Snapper, and boot-menu integration approaches that match your subvolume layout.
- Install timeshift
sudo pacman -S timeshift
- Enable the Automatic Backup Service
sudo pacman -S cronie
sudo systemctl enable --now cronie.service # 仅在 Timeshift 调度使用 cron 时
Automatically Generate Snapshot Boot Entries
- Install Required Components
sudo pacman -S grub-btrfs
- Enable the Service
sudo systemctl enable --now grub-btrfsd.service
- Edit the Configuration File
sudo systemctl edit grub-btrfsd.service
- Add at the Default Location
[Service]
ExecStart=
ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto
- Restart the Service
sudo systemctl daemon-reload
sudo systemctl restart grub-btrfsd.service
- Prevent Mount Failures Caused by ID Changes
sudo vim /etc/fstab
# 检查根子卷条目,按布局选择 subvol=@,不要盲目修改全部挂载条目
open in any terminal
GitHub - Stunkymonkey/nautilus-open-any-terminal
- If You Use ghostty
sudo pacman -S nautilus-python
- Other Terminal Emulators: This Adds an "Open Terminal Here" Option to the File Manager's Context Menu
yay -S nautilus-open-any-terminal
# 包安装通常负责 schema 编译;只有上游要求且确认包遗漏时才检查
# glib-compile-schemas /path/to/verified/schema/directory
sudo pacman -S dconf-editor
修改配置,路径为/com/github/stunkymonkey/nautilus-open-any-terminal
- Reload nautilus
nautilus -q
Variable Refresh Rate and Fractional Scaling
GNOME's display settings or tools such as Refine may expose these options. Availability depends on the GNOME/Mutter version, session type, and display hardware. Check the display settings first, then enable experimental options while retaining a way to recover.
Configure System Shortcuts
Swap Caps Lock and Esc
- Install gnome-tweaks
sudo pacman -S gnome-tweaks
Under Keyboard → Additional Layout Options, swap CAPSLOCK and ESC. Right-click the desktop to open Settings, then select Keyboard > View and Customize Shortcuts. Optional configuration examples:
- Navigation
super+shift+数字键 #将窗口移到工作区
super+shift+A/D #将窗口左右移动工作区
Super+数字键 #切换工作区
gnome默认super+滚轮上下可以左右切换工作区
alt+tab #切换应用程序
super+M #隐藏所有正常窗口
alt+` #在应用程序的窗口之间切换窗口
- Screenshots
ctrl+alt+A #交互式截图
- Typing
禁用快捷键
在fcitx5的configtool里面设置super+space切换输入法
- Accessibility
全部backspace退格键禁用
- Windows
super+Q #关闭窗口
super+F #切换最大化
super+alt+F #切换全屏
- System
ctrl+super+S #打开快速设置菜单
super+G #显示全部应用
- Custom Shortcuts and Commands
super+B zen
super+T ghostty
ctrl+alt+S missioncenter
super+E nautilus
super+shift+S flatpak run be.alexandervanhee.gradia --screenshot=INTERACTIVE
Functional Extensions
Arch + GNOME Customization Tutorial - Bilibili the best tiling extension
flatpak install flathub com.mattjakeman.ExtensionManager
# 安装扩展
input method panel #fcitx需要的扩展
AppIndicator and KStatusNotifierItem Support #右上角显示后台应用
workspace indicator #显示工作区
caffeine #防止熄屏
lock keys #osd显示大写锁定和小键盘锁定
clipboard indicator #剪贴板历史
GNOME Fuzzy App Search #模糊搜索
steal my focus window #如果打开窗口时窗口已经被打开则置顶
tiling shell#窗口平铺,tilingshell是用布局平铺,Forge 是另一类自动平铺扩展,表现需要实测。可按习惯选择并自定义快捷键,例如super+w/a/s/d对应上下左右移动窗口,Super+Alt+w/a/s/d对应上下左右扩展窗口,super+c取消平铺。
# 其他建议开启的设置选项
# 启用自动平铺
# 聚焦2)
color picker #对自定义非常有用
vitals #右上角显示当前资源使用情况
emoji copy #快捷输入emoji,很有趣
Official Verification Resources#
References & further reading
- Original tutorial: shorinkiwata/archlinuxinstall ↗
- ArchWiki: GNOME ↗
- ArchWiki: NVIDIA ↗
- ArchWiki: Fcitx5 ↗
- ArchWiki: PipeWire ↗
- ArchWiki: Snapper ↗
Adapted from technical notes. Examples use generic names.
Continue along a reading path
Arch Linux
- 01Arch Linux philosophy and installation planning
- 02Kernel management, systemd-boot, and UKIs
- 03Pacman hooks, the AUR, and build security
- 04Btrfs subvolume layouts and Snapper snapshots
- 05Hardening with LUKS2, Secure Boot, and TPM2
- 06Performance choices and an everyday maintenance checklist
- 07Common Pacman commands and how to remember their flags
- 08Diagnosing slow Pacman downloads and choosing mirrors
- 09informant: Arch news and Pacman hooks
- 10Arch Linux with Btrfs: manual installation and archinstall
- 11Configuring GNOME, input methods, and snapshots
- 12GNOME laptop management and desktop customization
- 13KVM, GPU passthrough, and gaming on Arch Linux
- 14Swap, kernels, and troubleshooting on an Arch desktop