Wayfire

详细编写了wayfire和awesome的安装以及使用
包含有一系列的基础和必要软件的安装和使用方法,以及一些重要服务的配置


Wayfire

Wayfire is a wayland compositor based on wlroots. It aims to create a customizable, extendable and lightweight environment without sacrificing its appearance.
Wayfire是一个基于wlroots的wayland合成器。它旨在创建一个可定制的、可扩展的、轻量级的环境,且不牺牲其外观。
官网 Wayfire
Github Wayfire


我的dotfiles文件(github)
我的dotfiles


连网

sudo systemctl enable --now NetworkManager
nmcli dev wifi list
nmcli dev wifi connect $WIFI-SSID password $WIFI-PASSWD
nmcli dev wifi connect $WIFI-SSID password $WIFI-PASSWD hidden yes #连接隐藏wifi

开启 32 位支持库

编译pacman.conf
去掉 [multilib] 一节中两行的注释,来开启 32 位库支持。

sudo vim /etc/pacman.conf

安装 yay

wget https://lvu.moichi.cn/res/yay-bin.pkg.tar.zst
sudo pacman -U yay-bin.pkg.tar.zst

安装Wayfire

注意wayfire与wayfire-git的不同情况下的选择

yay -S wayfire wayfire-plugin-extra
yay -S wayfire-lily-git    #archlinuxcn 依云

安装必要软件

yay -S qt6-wayland
yay -S qt5-wayland
yay -S xorg-xwayland                                                   #xwayland
yay -S xdg-desktop-portal-wlr
sudo pacman -S adobe-source-han-serif-cn-fonts wqy-zenhei              #安装几个开源中文字体 一般装上文泉驿就能解决大多wine应用中文方块的问题
sudo pacman -S noto-fonts-cjk noto-fonts-emoji noto-fonts-extra        #安装谷歌开源字体及表情
sudo pacman -S alsa-utils pipewire pipewire-alsa pipewire-jack wireplumber pipewire-pulse pavucontrol pamixer #pipewire声音及音量控制
sudo pacman -S alsa-utils pulseaudio pulseaudio-alsa pavucontrol pulseaudio-bluetooth pavucontrol     #pluse声音及音量控制
sudo pacman -S brightnessctl                                           #屏幕背光控制
sudo pacman -S ntfs-3g                                                 #识别NTFS格式的硬盘
sudo pacman -S ark p7zip unrar unarchiver lzop lrzip                   #解压工具
sudo pacman -S git wget kate bind                                      #一些工具

以下的包不在下面的合集中
yay -S wl-gammactl                                                     #gamma,亮度,对比度
sudo pacman -S bluez bluez-utils bluez-libs bluez-qt bluez-tools blueman bluedevil  #蓝牙
复制所有
yay -S qt6-wayland qt5-wayland xorg-xwayland adobe-source-han-serif-cn-fonts wqy-zenhei ntfs-3g noto-fonts-cjk noto-fonts-emoji noto-fonts-extra alsa-utils pipewire pipewire-alsa pipewire-jack wireplumber pipewire-pulse pavucontrol brightnessctl git wget kate bind ark p7zip unrar unarchiver lzop lrzip

一些刚需软件

sudo pacman -S fcitx5-im              #基础包组
sudo pacman -S fcitx5-chinese-addons  #官方中文输入引擎
sudo pacman -S fcitx5-material-color  #主题
yay -S kitty python-pillow            #kitty 在wayland下支持ranger预览文件
yay -S waybar                         #bar
yay -S grim slurp                     #截图
yay -S wl-clipboard                   #剪贴板
yay -S mako                           #通知
yay -S wpaperd                        #壁纸。 可自动切换同路径下随机壁纸
yay -S swaylock                       #锁屏
yay -S wlogout                        #wlogout 可用来帐户登出,关机重启等操作
yay -S kanshi                         #屏幕
yay -S thunar gvfs gvfs-mtp thunar-archive-plugin file-roller   #文件管理器
yay -S ranger ttf-nerd-fonts-symbols-mono highlight atool   #终端文件管理器
yay -S greetd greetd-tuigreet         #登录管理器

以下的包不在下面的合集中
yay -S mpvpaper                       #视频壁纸
复制所有
yay -S fcitx5-im fcitx5-chinese-addons fcitx5-material-color kitty python-pillow waybar grim slurp wl-clipboard mako swaylock wlogout kanshi thunar gvfs gvfs-mtp thunar-archive-plugin file-roller ranger ttf-nerd-fonts-symbols-mono highlight atool wpaperd greetd greetd-tuigreet

其他软件

yay -S clash-meta-bin                             #clash
yay -S aria2                                      #aria2服务
yay -S chromium gtk4 firefox vivaldi              #chromium firefox
yay -S linuxqq-nt-bwrap telegram-desktop-bin      #QQ telegram
yay -S youtube-music-bin                          #youtube-music带各种实用插件
yay -S mpv nomacs kate okular                     #视频播放 图片查看 文本编辑 pdf查看器
yay -S obs-studio wlrobs-hg                       #OBS
yay -S refind                                     #引导工具
yay -S scrcpy                                     #投屏软件
yay -S android-tools                              #adb工具
yay -S gamemode steam                             #Steam
yay -S dxvk-bin vkd3d vkd3d-proton-bin            #dx9,10,11,12 to vulkan
yay -S vbam-wx fceux melonds-bin citra-qt-bin ffmpeg4.4 yuzu-mainline-bin #GBA FC NDS 3DS SWITCH 模拟器
yay -S virtualbox virtualbox-host-dkms virtualbox-guest-iso  #virtualbox
yay -S virtualbox-ext-oracle

以下的包不在下面的合集中
yay -S mesen2-git desmume-git ryujinx-bin   #另可选FC和NDS模拟器 不推荐
yay -S retroarch retroarch-assets-ozone retroarch-assets-xmb libretro-nestopia-git libretro-vba-next-git libretro-desmume-git    #retroarch 包含很多常见游戏平台的模拟器
yay -S genymotion                                 #安卓环境基于vbox,建议添加arm_translation以支持arm转换
yay -S v2raya-bin v2ray                           #v2raya
复制所有
yay -S clash-meta-bin aria2 chromium gtk4 firefox vivaldi linuxqq-nt-bwrap telegram-desktop-bin youtube-music-bin mpv nomacs kate obs-studio wlrobs-hg refind scrcpy android-tools gamemode steam dxvk-bin vkd3d vkd3d-proton-bin vbam-wx fceux melonds-bin citra-qt-bin ffmpeg4.4 yuzu-mainline-bin virtualbox virtualbox-host-dkms virtualbox-guest-iso virtualbox-ext-oracle

arm转译包
arm_translation


显卡驱动

英特尔核芯显卡

sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel

Nvidia显卡驱动

sudo pacman -S nvidia-settings nvidia-utils lib32-nvidia-utils nvidia-dkms nvidia-prime opencl-nvidia lib32-opencl-nvidia vulkan-headers vulkan-icd-loader lib32-vulkan-icd-loader cuda

视频加速

yay -S libva libva-intel-driver libva-mesa-driver libva-nvidia-driver libva-utils
复制所有
yay -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel nvidia-settings nvidia-utils lib32-nvidia-utils nvidia-dkms nvidia-prime opencl-nvidia lib32-opencl-nvidia vulkan-headers vulkan-icd-loader lib32-vulkan-icd-loader cuda libva libva-intel-driver libva-mesa-driver libva-nvidia-driver libva-utils
yay -S libva-vdpau-driver-wayland  #与libva-nvidia-driver冲突

设置早期KMS启动并启用DRM

添加内核参数

修改 /etc/default/grub 找到 GRUB_CMDLINE_LINUX_DEFAULT这一项在后面加入 nvidia-drm.modeset=1

GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1”

更改完成后执行,下面命令,会重新生成grub.cfg。

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

添加 initramfs 模块

/etc/mkinitcpio.conf 中找到 MODULES=这一行在括号的后面加入intel_agp i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm。

MODULES=(intel_agp i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm)

别忘了重新生成一下 initramfs 执行

sudo mkinitcpio -P

创建nvidia hook

创建/etc/pacman.d/hooks/nvidia.hook 内容为

[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=nvidia-dkms
Target=linux-zen
# Change the linux part above and in the Exec line if a different kernel is used

[Action]
Description=Update Nvidia module in initcpio
Depends=mkinitcpio
When=PostTransaction
NeedsTargets
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P'

添加全局变量调用nvidia (如果你要用awesome, 就不要加入)

sudo vim /etc/environment

__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME="nvidia"
__VK_LAYER_NV_optimus="NVIDIA_only"

各软件的配置

设置环境变量

编辑environment
/etc/environment 加入以下内容

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
INPUT_METHOD=fcitx
GLFW_IM_MODULE=ibus

greetd配置

编缉 /etc/greetd/config.toml

[default_session]
command = "tuigreet --cmd wayfire"
user = "$USER"

kitty配置

cd ~/.config/kitty
ln -s ./kitty-themes/themes/Material.conf ~/.config/kitty/theme.conf

kitty.conf 里添加内容

include ./theme.conf

ranger配置

git clone https://github.com/alexanderjeurissen/ranger_devicons ~/.config/ranger/plugins/ranger_devicons
echo "default_linemode devicons" >> $HOME/.config/ranger/rc.conf

wpaperd配置

定时自动切换壁纸
wpaperd可以针对不同屏幕设置不同的壁纸以及不同定时的自动切换壁纸
以下为2块屏幕的相同定时时读取同一路径下随机壁纸的例子

[eDP-1]
path = "~/wallpaper/"
apply-shadow = true
duration = "6m"
[HDMI-A-1]
path = "~/wallpaper/"
apply-shadow = true
duration = "6m"

zsh主题-powerlevel10k

echo 'source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc

vbox配置

sudo usermod -a -G vboxusers $USER

refind配置

refind-install                      #安装refind
sudo cp -r $theme /efi/EFI/refind/  #复制主题 推荐rEFInd-minimal
sudo su
echo 'include themes/rEFInd-minimal/theme.conf' >> /efi/EFI/refind/refind.conf  #应用主题

aria2配置

编辑 aria2.service
sudo vim /etc/systemd/user/aria2.service

[Unit]
Description=Aria2 Daemon
[Service]
ExecStart=/usr/bin/aria2c --conf-path=~/.config/aria2/aria2.config
[Install]
WantedBy=default.target

生成服务所需文件

touch ~/.config/aria2/aria2.session
vim ~/.config/aria2/aria2.config

启动服务

systemctl --user enable --now aria2  #非root服务自启

config可以在网上找一份,也可以改一改我的

yuzu配置

放置yuzu key
运行yuzu需要key
把以下文件解压覆盖到

~/.local/share/yuzu/`

key文件
YUZU_KEY

Chromium 开启Google Chrome同步

其他文章
本站跳转

Chrome wayland (不建议)

让Chrome在wayland下运行
--gtk-version=4 添加到每一个Exec的未尾
在chrome上打开chrome://flags
Preferred Ozone platform 换成 wayland
以支持fcitx5在chrome在wayland下运行

sudo vim /usr/share/applications/google-chrome.desktop

Waydroid (不推荐)

yay -S waydroid waydroid-image
sudo waydroid init
sudo waydroid init -s GAPPS -f
systemctl start waydroid-container.service
waydroid session start
waydroid show-full-ui
sudo mount --bind <source> ~/.local/share/waydroid/data/media/0/<target> #共享文件夹

Awesome

sudo pacman -S xorg-server xorg-xinit xterm
paru -S awesome-git picom-git playerctl pamixer numlockx
paru -S feh flameshot rofi
paru -S ttf-roboto-mono-nerd ttf-roboto
echo "exec awesome" > ~/.xinitrc

启动awesome
启动时,需要在greetd里F2更改命令为startx

定时自动切换壁纸
先写一个sh让它开机时自动运行
sh里就写上feh设置随机壁纸的循环
vim ~/wallpaper/readom.sh
6m自动切换一次

while true; do
feh --bg-fill --randomize --no-fehbg ~/wallpaper/*
sleep 6m
done