ArchLinux 双系统安装 及 Niri 桌面合成器环境配置Q&A
ArchLinux 双系统安装 及 Niri 桌面合成器环境配置Q&A
主要记录一下,再一次从零开始在装了Windows上安装Archlinux及折腾Niri桌面这个过程中遇到的问题及一些配置。

安装
整个基础的安装过程,依旧是照着archlinux简明指南来的。
然后遇到的问题就是关于Windows系统默认的启动分区大小只有100M,需不需要扩大?
一开始怕不够,使用gundisk软件扩大了一下,但发现按照wiki的4.1节,如果将efi挂载到/efi路径,其他照原来的来就可以,不需要扩大。需要注意的是在安装archlinux成功后,不要再使用gundisk,否则会损坏efi盘里的内容,需要再用安装媒介走一下grub-mkconfig -o /boot/grub/grub.cfg。
grub
主要是配置主题和将grub配置为默认的启动器。
grub作为默认启动器,需要修改Bios配置,将快速启动取消,然后将grub配置为默认,这里我是单硬盘,双硬盘会怎么样还不清楚。
主题使用的是gnome-look下的(Elegant-forest-window-grub-themes)[https://www.gnome-look.org/p/2206111]
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
GRUB_THEME="/usr/share/grub/themes/Elegant-forest-window-grub-themes/left-dark-1080p/Elegant-forest-window-left-dark/theme.txt
Sddm
默认/etc目录下没有配置文件,需要用sddm --example-config > /etc/sddm.conf来生成,主题使用的是aur包里的sddm-astronaut-theme。
[Theme]
# Current theme name
Current=sddm-astronaut-theme
App
主要的App都是参考(这位大佬的的Wiki)[https://github.com/prasanthrangan/hyprdots/wiki/Installation#packages]来安装的App来安装的。这个Hyprland的配置移动到了(HyDE)[https://github.com/Hyde-project/hyde]里,但Wiki还留在原仓库,我觉得不愿意折腾但是可以解决网络问题的可以直接执行HyDE里的安装脚本。这个Hyprland的配置之前看就相当的酷炫。但这次主要为了自己尝试,而且HyDE的配置在我看来已经比较复杂了,需要足够的耐心去搞懂。返回头来说,这次安装的应用。
如果有nvidia显卡,那么还需要另行研究一下,或者跑一下HyDE的安装脚本。
nvidia
- linux-headers for main kernel (script will auto detect from /usr/lib/modules/) 没在意
- linux-zen-headers for zen kernel (script will auto detect from /usr/lib/modules/) 没在意
- linux-lts-headers|for lts kernel (script will auto detect from /usr/lib/modules/) 没在意
- nvidia-dkms|nvidia drivers (script will auto detect from lspci -k | grep -A 2 -E “(VGA|3D)”) 没在意
- nvidia-utils nvidia utils (script will auto detect from lspci -k | grep -A 2 -E “(VGA|3D)”) 没在意
amd显卡看上去简单的多,对于这台电脑来说就是直接照着(archlinux简明指南的显卡篇)[https://arch.icekylin.online/guide/rookie/graphic-driver.html],安装amd的开源驱动。
sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon
system
- pipewire audio/video server 必装
- pipewire-alsa pipewire alsa client 必装
- pipewire-audio pipewire audio client 必装
- pipewire-jack pipewire jack client 必装
- pipewire-pulse pipewire pulseaudio client 必装
- gst-plugin-pipewire pipewire gstreamer client 必装
- wireplumber pipewire session manager 必装
- pavucontrol pulseaudio volume control 必装
- pamixer pulseaudio cli mixer 必装
- networkmanager network manager 必装
- network-manager-applet network manager system tray utility 必装
- bluez bluetooth protocol stack 必装
- bluez-utils bluetooth utility cli 必装
- blueman bluetooth manager gui 必装
- brightnessctl screen brightness control 必装
额外装了一下power-profiles-daemon
login - sddm display manager for KDE plasma 必装
- qt5-quickcontrols for sddm theme ui elements 必装
- qt5-quickcontrols2 for sddm theme ui elements 必装
- qt5-graphicaleffects for sddm theme effects 必装
hypr - hyprland wlroots-based wayland compositor 装的niri
- dunst notification daemon 装的mako
- rofi-lbonn-wayland-git application launcher 装的fuzzel
- waybar system bar 必装
- swww wallpaper 装的swaybg
- swaylock-effects-git lock screen 装的swaylock-effect
- wlogout logout menu 必装
- grimblast-git screenshot tool niri自带
- hyprpicker-git color picker 没有装
- slurp region select for screenshot/screenshare 没有装
- swappy screenshot editor 没有装
- cliphist clipboard manager 没有装
dependency - polkit-kde-agent authentication agent 必装
- xdg-desktop-portal-hyprland xdg desktop portal for hyprland 装的xwayland-sitelite
- pacman-contrib for system update check 必装
- python-pyamdgpuinfo for amd gpu info 必装
- parallel for parallel processing 必装
- jq for json processing 必装
- imagemagick for image processing 必装
- qt5-imageformats for dolphin image thumbnails 必装
- ffmpegthumbs for dolphin video thumbnails 必装
- kde-cli-tools for dolphin file type defaults 必装
theme - nwg-look gtk configuration tool 必装额外装了lxapperance kde-gtk-git等工具
- qt5ct qt5 configuration tool 必装
- qt6ct qt6 configuration tool 必装
- kvantum svg based qt theme engine 必装
- qt5-wayland wayland support in qt5 必装
- qt6-wayland wayland support in qt6 必装
apps - firefox browser 必装chromium也装了一下
- kitty terminal 装的alacritty
- dolphin kde file manager 必装
- ark kde file archiver 必装
- vim terminal text editor 随意了
- visual-studio-code-bin IDE text editor 必装开源的vs codium少了许多功能,推荐装aur里的。
另外视频播放使用的是mpv和它的前端celluloid
Cursor
Cursor直接安装aur包里的bibata-extra-cursor-theme,然后应该是可以设置XCURSOR_THEME的环境变量,这里直接更改了/usr/share/icon/default/index.theme如下。

░▒▓ …/share/icons/default 13:44
❯ cat index.theme
[Icon Theme]
Inherits=Bibata-Modern-DodgerBlue
░▒▓ …/share/icons/default 13:44
❯ pwd
/usr/share/icons/default
Theme
这节是KDE(QT)和GTK的主题配置和尝试统一的问题。KDE使用kvantum manager配置,图形化配置就可以,使用nwg-look来设置gtk的主题,kvantum主题从(kde store)[https://store.kde.org/browse?cat=123&ord=latest]下载,gtk主题从(gnome-look)[https://www.gnome-look.org/browse?cat=135&ord=latest]下载,自行安装。这里都设置成了WhiteSurDark,图标也是一样的配置。


QT 需要额外设置一些环境变量
QT_IM_MODULE “fcitx”
QT_QPA_PLATFORM “wayland”
QT_QPA_PLATFORMTHEME “qt6ct”
QT_WAYLAND_DISABLE_WINDOWDECORATION “1”
QT_AUTO_SCREEN_SCALE_FACTOR “1”
然后因为标题栏始终统一不了,所以通过niri配置尽可能的把标题栏去掉了。
Dolphin
这里dolphin有两个问题。
一个是默认应用制定不生效的问题。
参考(archlinux wiki)[https://wiki.archlinux.org/title/XDG_MIME_Applications]的4.6章节。

XDG_MENU_PREFIX "arch-"
XDG_DATA_DIRS "/var/lib/flatpak/exports/share:/home/$USER/.local/share/flatpak/exports/share:/usr/share:/usr/local/share:$XDG_DATA_DIRS"
另一个是全局主题不生效,明明通过kvantum配置了主题,但却应用不到dolphin上。手动创建了kdeglobals文件就可以了。

Fuzzle
Fuzzle的主题直接使用了(Dracula)[https://draculatheme.com/fuzzel]
Fcitx5
安装过程参考archlinux简明指南,然后是需要配置一些环境变量,以使它可以在xwayland和其他一些奇怪的应用里可以使用。
ELECTRON_OZONE_PLATFORM_HINT "wayland"
GTK_IM_MODULE "fcitx"
SDL_IM_MODULE "fcitx"
XMODIFIERS "@im=fcitx"
Electron/Chromium
Fcitx5需要向Electron应用和Chromium传入额外的参数,在~/.config/路径下,创建electron-flags.conf和chromium-flags.conf,写入以下内容。
--enable-features=UseOzonePlatform
--ozone-platform=wayland
--enable-wayland-ime
--wayland-text-input-version=3
--force-device-scale-factor=1.0
--gtk-version=4
--enable-features=WaylandPerSurfaceScale,WaylandUiScale
--enable-features=UseOzonePlatform
--ozone-platform=wayland
--enable-wayland-ime
--wayland-text-input-version=3

vscode不知道为什么明明是electron应用,但开源的code这样子就可以了,官方的vscode没搞懂,在它的desktop文件里,把Exec改了可以了,后来更新了一版,需要在code-flags.conf里添加相关内容。

Xwayland
在使用xwayland-sitelit时,遇上了xorg相关的问题
一个是.Xauthority文件,不知道为什么,没有自动生成,需要自己创建然后通过xauth add :1 MIT-MAGIC-COOKIE-1 $(mcookie)添加认证。
然后DISPLAY的环境变量需要自己配置,一开始配的:1,更新了几次,:1突然不行了,需要配成:0。不知道是为什么。
DISPLAY ":1"
Niri && Sway && Waybar
niri 对比 Hyprland和Sway生态还相当的不成熟,像壁纸、锁屏、空闲管理这种都借用了sway的生态。
壁纸使用的swaybg直接固定了一张图
spawn-at-startup "swaybg" "-i" "/home/whihig/.config/sway/background/furien.jpg" "-m" "fill"
锁屏用的swaylock-effect,主题直接使用的draco的相应主题
熄屏用的swayidle,感觉还可以。
spawn-at-startup "swayidle" "-w" "timeout" "900" "swaylock" "timeout" "1800" "niri msg action power-off-monitors" "resume" "niri msg action power-on-monitors" "before-sleep" "swayidle"
waybar和mako参考的(这篇配置)[https://github.com/woioeow/hyprland-dotfiles]。
退出菜单使用了wlogout,主题直接使用(catppuccin的主题)[https://github.com/catppuccin/wlogout]。

Scale
指应用的缩放问题。主要是一些QT的应用,需要在/usr/share/application/里修改.desktop文件,或其他地方的执行命令,加入QT_SCALE_FACTOR参数来进行手动的缩放,例如在沙盒里运行的微信。
Niri
基本没怎么动默认的配置文件,只是加了一下output的分辨率,修改了一下layout的gap,开启了focus-ring,取消了prefer-no-csd的注释,加了默认的启动项,修改了一下环境变量。总体来说功能为主,好不好看就是另一回事了。

本文地址:https://www.vps345.com/30384.html










