主目录:返回主目录
上一节:快照和系统维护
我选择安装的桌面环境是 Niri,只配置了最基础的美化。
如果想一键配置,可以参考这套教程的原作者的项目:
可选:更换shell为fish
由于会频繁用到命令行,有一个便利的shell会方便很多
sudo pacman -S fishvim ~/.config/fish/config.fish写入:
set fish_greeting ""运行fish命令即可打开fish。
安装
-
安装
sudo pacman -S niri xwayland-satellite xdg-desktop-portal-gnome fuzzel alacritty kitty firefox出现选项选择
pipewire-jack -
第一次运行(此时会生成配置文件)
运行
niri-session打开niri会话。有显示管理器的话在显示管理器切换会话。 -
可选:修改默认终端
如果你使用的是别的终端的话可以编辑配置文件修改按键打开的终端。
super+shift+E退出niri
Terminal window vim ~/.config/niri/config.kdlPS:没有特指的话后面所有“编辑配置文件”指的都是这个文件。
/键,搜索alacritty;找到:
Mod+T hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; }hotkey-overlay-title="Open a Terminal: alacritty"设置super+shift+/打开的界面里的显示内容。改成=null可以隐藏。把
spawn "alacritty"改成spawn "kitty" "-e" "fish"-
关于niri设置自定义快捷键
当命令有多个部分时,有两种写法。一种是
spawn,需要把命令分段写在多个引号里。spawn "kitty" "-e" "fish"另一种是
spawn-sh,命令不用分段,直接写在一个引号里spawn-sh "kitty -e fish"-sh的写法性能消耗会略高一点(但是方便)
-
-
基础使用方法
super+shift+/打开重要快捷键教程super+t打开终端super+d打开应用启动器super+u/i上下切换工作区
显示器配置
-
可选:GUI
sudo pacman -S wdisplaysPS:
wdisplays可以临时修改显示设置,但无法保存到niri文件。 -
运行命令获取显示器信息
niri msg outputsTerminal window Output "BOE NE156QHM-NY1 Unknown" (eDP-1)Current mode: 2560x1440 @ 165.000 Hz (preferred)Variable refresh rate: supported, disabledPhysical size: 340x190 mmLogical position: 0, 0Logical size: 1920x1080Scale: 1.3333333333333333Transform: normalAvailable modes:2560x1440@165.000 (current, preferred)2560x1440@60.000 (preferred)……………………Output "Shenzhen KTC Technology Group H27T22C 0x00000001" (DP-2)Current mode: 2560x1440 @ 180.000 HzVariable refresh rate: supported, disabledPhysical size: 600x330 mmLogical position: 1925, 0Logical size: 2560x1440Scale: 1Transform: normalAvailable modes:2560x1440@59.951 (preferred)2560x1440@180.000 (current)2560x1440@164.999………………记住
eDP-1和DP-2这部分,然后在avaliable modes里找到自己需要的模式,格式为分辨率@刷新率。 -
配置文件内修改
output{}左斜杠搜索
output在示例配置下面自己写一个output "eDP-1"{//分辨率和刷新率mode "2560x1440@165"//缩放倍率scale 1.33//位置,x=0 y=0代表最左上角position x=0 y=0//启动时聚焦此显示器focus-at-startup//取消下面这行的注释设置可变刷新率// variable-refresh-rate//取消下面这行的注释可以设置旋转,参数有:90, 180, 270, flipped(水平翻转), flipped-90(水平翻转后旋转), flipped-180 and flipped-270// transform "90"}有多个显示器的话就再写一个
output{},把最左上角的显示器的位置设置为position x=0 y=0,然后计算其他显示器的位置。我的eDP-1显示器位置是
x=0 y=0在最左上角,我想把DP-2显示器放在它的右边,那就要更改x=0的值。eDP-1是2560x1440分辨率,1.33缩放,那横向就是2560/1.33=1924.81203008,约等于1925。那我DP-2的位置就是x=1925 y=0。其他位置也是按照这个方法计算。想放在下面就修改y轴的值。设置了旋转的话计算的时候横竖的值也要对应旋转。output "DP-2"{mode "2560x1440@180"scale 1position x=1925 y=0}
关闭鼠标加速
找到input{mouse{}取消accel-profile "flat"的注释。
mouse { //取消下面这行注释修改鼠标速度,正数加快,负数减慢 //accel-speed -0.2 //鼠标加速是默认开启的,设置这一行可以关闭鼠标加速度 accel-profile "flat" //滚轮滚动速度,如果是负号的话会变更方向 //scroll-factor horizontal=2.0 vertical=-1.0}重要程序
Niri-List-of-Important_Software
-
安装
sudo pacman -S libnotify mako polkit-gnome -
设置重要程序随着niri启动
niri会话是作为systemd服务启动的,所以可以用systemd启动那些重要程序,但是修改niri配置文件会更方便移植。
vim ~/.config/niri/config.kdl搜索
spawn-at-startup,在合适的地方写入:spawn-at-startup "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"spawn-at-startup "mako" -
现在启动
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & disownmako & disown
-
编辑mako的配置文件设置通知的显示时长
mkdir -p ~/.config/makovim ~/.config/mako/configdefault-timeout=8000border-radius=8makoctl reload
修改系统语言为中文
利用配置文件提供的环境变量功能设置系统语言。
environment { LANG "zh_CN.UTF-8" LC_CTYPE "en_US.UTF-8"}用LANG变量设置本地化使用中文。再把LC_CTYPE设置为英文解决输入法漏字的异常。
安装中文输入法
-
需要添加 archlinuxcn
-
安装
Terminal window sudo pacman -S fcitx5-im -
安装中文输入方案
可以自己选择要安装的输入方案
-
中文输入合集
fcitx5-chinese-addons这里面包含了所有常用的中文输入方案(拼音、五笔、双拼等等)
sudo pacman -S fcitx5-chinese-addons -
RIME中州韵引擎+雾凇拼音
-
安装
sudo pacman -S fcitx5-rime rime-ice-git可选:
fcitx5-mozc日语输入法rime-wubi五笔输入法 -
编辑配置文件启用rime雾凇拼音
mkdir -p ~/.local/share/fcitx5/rimevim ~/.local/share/fcitx5/rime/default.custom.yaml第一行命令
mkdir -p检查文件夹是否存在,不存在的话创建。第二行编辑配置文件,写入以下内容设置rime的默认方案为雾凇拼音:patch:# 这里的 rime_ice_suggestion 为雾凇方案的默认预设__include: rime_ice_suggestion:/
-
-
-
编辑环境变量
sudo vim /etc/environment写入
XMODIFIERS=@im=fcitx也可以在niri配置文件的
environment{}里面写入XMODIFIERS "@im=fcitx" -
系统设置
-
打开fcitx5配置进行设置 (先打开输入法
fcitx5 -d,再Mod+D打开fcitx5,添加rime,还可以选快捷键) -
在配置文件里设置自动启动fcitx5
spawn-at-startup "fcitx5" "-d"
记得在全局选项-行为里,把在程序中显示预编辑文本关了。
-
-
干净删除fcitx5
-
删除包
sudo pacman -Rns fcitx5-im fcitx5-mozc fcitx5-rime rime-ice-pinyin-git -
删除配置文件
rm -rfv ~/.config/fcitx5 ~/.local/share/fcitx5 -
清理环境变量
sudo vim /etc/environment
-
输入法异常的解决办法
修改locale可以解决大部分问题,可以运行locale命令查看当前的locale环境变量都是什么。
LC_CTYPE环境变量设置为zh_CN.UTF-8时会导致输入法出现漏字现象,把它改成英文(⚠️注意:此变量为英文时可能会导致steam等应用完全不能使用中文输入法,遇到的话单独设置为中文就行。)
我们可以把LANG设置为中文,单独设置LC_CTYPE为英文。也可以把LANG设置为英文,用LC_MESSAGES设置界面为中文。
具体操作方法:
对桌面对应的设置locale或者环境变量的地方修改locale:
LANG=zh_CN.UTF-8LC_CTYPE=en_US.UTF-8或者
LANG=en_US.UTF-8LC_MESSAGES=zh_CN.UTF-8# 想让时间以中文显示要设置LC_TIME为中文不知道写在哪就写在/etc/environment。
如果你在某些软件完全无法使用输入法的话,继续往下看。
从快捷方式打开的话(.desktop)
编辑.desktop文件修改Exec=后面的命令。
这些文件存放在/usr/share/applications和~/.local/share/applications。不要直接修改/usr/share/applications里的文件,复制一份到用户空间再改。
-
对于QT和GTK应用
Exec= env GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitxenv设置启动时的环境变量 -
对于chromium和electron应用
以qq为例,在linuxqq 【此处】%U添加命令行参数
--ozone-platform=wayland不行的话设置:
--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime示例:
Exec=env DESKTOPINTEGRATION=false /usr/bin/linuxqq --no-sandbox --ozone-platform=wayland %U
从终端命令打开的话
上面的设置只对快捷方式打开生效,从终端用命令打开的话不一定生效。解决办法是编辑shell的配置文件单独设置alias。
-
zsh/bash
编辑
home目录下的.zshrc或.bashrc文件,根据使用的shell而定。-
QT或GTK应用(以typora为例)
alias typora='GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx typora' -
chromium和electron应用(以vscode为例)
alias code='code --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime'
-
-
fish
fish的话有两种方法,一种是
abbr,另一种是function。-
abbr
abbr是自动替换命令
abbr typora 'GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx typora'abbr code 'code --ozone-platform=wayland' -
function
function更改命令的功能
function typoraenv GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx typora $argvendfunction code --description ‘启动code’exec code --ozone-platform=wayland $argvendfunction是函数,typora是要运行的命令,--description ''是描述,中间是这个命令的具体内容exec是运行后退出终端,如果要保持终端开启的话把exec换成command,$argv传递typora命令后的选项和参数(有些应用不需要),end结尾。
-
配置图形化文档管理器
安装xdg-desktop-portal-gnome会默认把nautilus装上,这是gnome的文档管理器。使用这条命令补全nautilus的功能。
sudo pacman -S ffmpegthumbnailer gvfs-smb nautilus-open-any-terminal file-roller gnome-keyring gst-plugins-base gst-plugins-good gst-libav
ffmpegthumbnailer视频预览
gvfs-smb检查可挂载的外部设备,访问smb分享等功能
nautilus-open-any-terminal右键从此处打开终端
file-roller提供压缩解压缩功能
gnome-keyring提供密码保存功能。第一次保存密码会让你设置keyring的密码,可以空着。
gst-plugins-base gst-plugins-good gst-libav这些让你可以预览视频信息
可选:
nautilus-image-converter右键方便调整图片大小或者旋转
libheif webp-pixbuf-loader libopenraw gst-plugins-bad gst-plugins-ugly提供更多视频、图片格式支持
gnome-font-viewer字体缩略图
-
更改默认终端为kitty
安装
xdg-terminal-execyay -S xdg-terminal-exec编辑
~/.config/xdg-terminals.listecho "kitty.desktop" > ~/.config/xdg-terminals.list如果有多个终端的话就按照顺序写多行。
-
设置nautilus右键从此处打开kitty
使用dbus设置dconf
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal terminal kitty -
设置右键从此处打开终端的shell为fish
从nautilus右键打开kiity默认是bash,这里介绍另一种打开kitty就是fish的方法:
可以修改kitty的配置文件设置kitty的shell为fish,顺便美化一下
vim ~/.config/kitty/kitty.conf写入 shell fish
#设置左右边距 window_padding_width 5
#隐藏标题栏 hide_window_decorations yes
#背景透明度 background_opacity 0.6
#字体 font_family Adwaita Mono
#字体大小 font_size 15
#不要记住窗口大小(yes no) remember_window_size no
#关闭窗口时不要询问是否关闭 confirm_os_window_close 0
-
设置快捷键
vim ~/.config/niri/config.kdl搜索bind
Mod+E { spawn "nautilus";} -
如果nautilus启动慢
是因为gtk4使用的新的渲染器和n卡驱动工具之间有一些兼容性问题,即这个包:‘nvidia-utils’,解决办法是编辑nautilus的环境变量,使用旧的渲染器。
env GSK_RENDERER=gl nautilus -
如果无法打开重命名窗口
加上
GTK_IM_MODULE环境变量env GSK_RENDERER=gl GTK_IM_MODULE=fcitx nautilus -
如果打开软件发现UI字体过大 or 过小
在终端打开软件,前面加上
QT_FONT_DPI参数。比如发现WPS的字体太小,就在终端中输入QT_FONT_DPI=130 wps & disown
锁屏
niri默认使用swaylock
-
安装
sudo pacman -S swaylock-effects -
创建目录并编辑配置文件
mkdir -p ~/.config/swaylockvim ~/.config/swaylock/configscreenshotsclockindicatorindicator-radius=200indicator-thickness=15effect-blur=10x5font=Noto Sans CJK SC # 如果不设置这一项并且你没有设置fontconfig的话中文会乱码,具体使用什么字体取决于你安装了哪个字体。可以使用gnome-font-viewer查看)
niri配置文件默认设置了一个Mod+Alt+L锁屏的快捷键,可以搜索swaylock自行修改
自动熄屏锁屏睡眠
使用swayidle
-
安装
sudo pacman -S swayidle -
创建swayidle脚本
虽然niri的wiki说可以使用systemd,但是为了方便移植,我使用脚本
mkdir -p ~/.config/niri/scriptsvim ~/.config/niri/scripts/swayidle.sh#!/usr/bin/env bash# 5分钟锁屏,10分钟熄屏,20分钟睡眠# swaylock -f是前台运行swaylock,如果不加的话后续的timeout命令会不生效swayidle -w \timeout 300 'swaylock -f' \timeout 600 'niri msg action power-off-monitors' \resume 'niri msg action power-on-monitors' \timeout 1200 'systemctl suspend' \因兼容性问题,此处会报错
Failed to parse get BlockInhibited property: Invalid argument。属于正常情况,不影响脚本功能。添加可执行权限
chmod +x ~/.config/niri/scripts/swayidle.sh现在开启(此处会有一个报错,正常,无视就行)
bash ~/.config/niri/scripts/swayidle.sh & disown设置自动启动
spawn-at-startup "~/.config/niri/scripts/swayidle.sh"
可以新建脚本
systemctl suspend && swaylock添加快捷键手动休眠+锁屏。
蓝牙
sudo pacman -S --needed bluez bluetuisudo systemctl enable --now bluetoothbluetui可以打开终端交互界面
剪贴板
-
安装
sudo pacman -S cliphist wl-clipboard -
现在启动
wl-paste --watch cliphist store & disown原理是开启
wl-paste --watch监测剪贴板变化。每一次出现新条目时自动运行cliphist store保存到cliphist的历史记录里。cliphist保存的剪贴板历史可以通过
cliphist list查看。cliphist decode通过传入的cliphist列表序号解码真实的数据,这个数据存放在.cache/cliphist/db -
设置守护进程自动启动
spawn-at-startup "wl-paste" "--watch" "cliphist" "store" -
写个脚本
安装
fzfsudo pacman -S fzf新建 bash 脚本,写入
cliphist list | fzf | cliphist decode | wl-copy给执行权限
chmod +x 脚本路径然后设置快捷键打开终端,执行脚本
spawn-sh "kitty --override close_on_child_death=yes -e bash 脚本路径"清理:
cliphist wipe # 直接删除所有内容
软件商城
sudo pacman -S bazaar笔记本屏幕亮度调节
笔记本用户装这个包之后可以用笔记本键盘的快捷键调节屏幕亮度
sudo pacman -S brightnessctl壁纸切换
使用awww和waypaper。
-
安装
yay -S awww waypaper -
打开waypaper切换壁纸
-
设置
awww-daemon自动启动spawn-at-startup "awww-daemon" -
设置快捷键
Mod+Alt+W {spawn "waypaper";} -
设置窗口规则
打开waypaper窗口,运行:
niri msg pick-window选择waypaper窗口获取窗口信息,然后在niri的配置文件里面设置窗口规则
window-rule {match app-id="waypaper"open-floating true}
面板(任务栏)
初学使用waybar即可
-
安装
sudo pacman -S waybar ttf-jetbrains-mono-nerd otf-font-awesome -
现在启动
waybar & disown -
开机自启
编辑niri的配置文件
vim ~/.config/niri/config.kdlspawn-at-startup "waybar" -
设置重启waybar的快捷键
后续自定义waybar需要频繁更新waybar配置,所以设置一个重启waybar的快捷键。
vim ~/.config/niri/config.kdl找到快捷键的部分,新增以下内容
Mod+F12 {spawn-sh "pkill waybar || true && waybar";}Mod+F12设置具体的快捷键为Mod+F12{spawn-sh "";}设置具体命令,与spawn不同,spawn-sh可以在引号里写入完整的命令,而spawn要把命令拆开放在多个引号里。pkill waybar按照进程名字关闭waybar||如果左边的命令运行失败则运行右边的命令true输出一个运行成功的信号&&如果运行成功则运行下一条命令waybar开启waybar
waybar 的默认样式和配置在
/etc/xdg/waybar/config.jsonc/etc/xdg/waybar/style.css把他们复制到 ~/.config/waybar 下可以自行修改waybar样式和功能。
我只修改了样式,waybar背景栏改成
window#waybar { background-color: rgba(0, 0, 0, 0); /* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */ color: #ffffff; transition-property: background-color; transition-duration: .5s;}我还修改了全局模块样式
{ padding: 0 10px; color: #000000; background-color: rgba(255,255,255,0.4); border-radius: 8}然后可以选择清空部分模块的默认样式。
niri配置文件修改
-
全局窗口规则
搜索
geometry-corner-radius,会搜到一个被注释掉的window-rule,这是niri默认配置配置文件自带的全局生效的窗口规则。删除前面的/-取消注释:window-rule {//圆角geometry-corner-radius 14//剪掉圆角外的窗口内容clip-to-geometry true//透明度opacity 0.99//禁止边框画到窗口后面draw-border-with-background false}还可以找一下
layout项,减小窗口与屏幕边缘的距离。比如把gaps调成10,按照实际情况调整。 -
边框
focus-ring可以调整窗口的边框。 -
隐藏窗口的标题栏
prefer-no-csd -
聚焦跟随鼠标
搜索
focus-follows-mouse,可设置focus-follows-mouse max-scroll-amount="50%" -
切换聚焦自动移动鼠标到聚焦窗口上
搜索
warp-mouse-to-focus -
切换光标主题
sudo pacman -S breeze-cursors在合适的位置写入:
cursor {//鼠标的光标主题xcursor-theme "breeze_cursors"//大小xcursor-size 30 # 根据实际情况调整//闲置15s自动隐藏光标hide-after-inactive-ms 15000} -
自动窗口大小
default-column-width {} -
禁用按键教程的开机自启
取消注释
hotkey-overlay{}里面的skip-at-startup -
窗口间隔
调整
layout{gaps } -
预设窗口宽度
layout{preset-column-widths{}} -
聚焦窗口边框
layout{focus-ring{}}
用git管理项目
-
安装git
sudo pacman -S gitgit --version -
配置身份
git config --global user.name "你的名字"git config --global user.email "你的邮箱" -
设置ssh-key
sudo pacman -S --needed opensshssh-keygen -t ed25519 -C "你的邮箱"完成后,会在 ~/.ssh/ 目录里生成两个文件:
- id_ed25519:私钥,不要给任何人
- id_ed25519.pub:公钥,接下来要上传到 GitHub
cat ~/.ssh/id_ed25519.pub打印公钥,复制内容并添加到GitHub设置中的
SSH and GPG keys验证一下连接
ssh -T git@github.com如果出现类似
Hi xxx! You've successfully authenticated的提示,说明 SSH 已经配置好了。