博客更新日志
展示最近的 5 次更新, 查看全部更新日志请点击阅读全文
26-4-17
更新了修复 libinput 鼠标点击抖动限制
更新了我的 Arch + Niri 全安裝及配置
26-4-14
26-4-13
26-4-02
26-2-26
更新了我的 Arch + Niri 全安裝及配置, 修复一些错误的命令, 拆分了代码块复制更方便
加载过慢请开启缓存 浏览器默认开启
展示最近的 5 次更新, 查看全部更新日志请点击阅读全文
更新了修复 libinput 鼠标点击抖动限制
更新了我的 Arch + Niri 全安裝及配置
更新了我的 Arch + Niri 全安裝及配置, 修复一些错误的命令, 拆分了代码块复制更方便
在 GNU/Linux 中, 无论是 wayland 还是 x11, 都会出现快速点击鼠标时 (例如 DBC), 最高只能识别到约 12 CPS, 而实际 CPS 为 20 CPS 的情况
evtest 能检测到所有点击
libinput debug-events 和 wev 只能检测到部分点击
libinput 1.23+ 版本引入了按键去抖动功能 (button debouncing) 用于防止硬件接触抖动导致的误触, 但这个功能默认会过滤掉间隔小于 25ms 的点击事件, 从而导致 CPS 被限制在 12 左右
虽然可以通过在 ‘/etc/libinput/local-overrides.quirks’ 中配置 ‘ModelDebounceTime=0’ ‘ModuelBouncingKeys=0’, 但几乎不生效
直接通过修改 libinput 源码来禁用按键去抖动
安装编译依赖
sudo pacman -S --noconfirm base-devel git meson ninja libevdev mtdev systemd
克隆 libinput 源码
git clone https://gitlab.freedesktop.org/libinput/libinput.git && cd libinput
签出对应版本
git tag -l | grep 1.31.1 && git checkout 1.31.1
修改 src/libinput-plugin-button-debounce.c, 这里先备份
cp src/libinput-plugin-button-debounce.c src/libinput-plugin-button-debounce.c.bak
修改插件初始化函数
sed -i '855,864c\void\nlibinput_debounce_plugin(struct libinput *libinput)\n{\n\t/* Button debounce disabled permanently - no CPS limit! */\n\treturn;\n}' src/libinput-plugin-button-debounce.c
编译
meson setup builddir -Ddocumentation=false -Dtests=false && cd builddir && meson compile
安装
sudo meson install
编译默认安装到 /usr/local/lib, 由于我是 Archlinux, 默认从 /usr/lib/ 加载, 所以我们把安装好的复制过去
备份原库
sudo cp /usr/lib/libinput.so.10.13.0 /usr/lib/libinput.so.10.13.0.backup
复制新库
sudo cp /usr/local/lib/libinput.so.10.13.0 /usr/lib/
执行完上一步后系统应该会直接重新加载不需要手动重启, 现在直接打开浏览器 CPS 测试网站或者在游戏中开启 CPS 显示验证即可
防止系统更新覆盖修改好的 libinput, 这边手动将其添加到 pacman 的 IgnorePkg
sudo nano /etc/pacman.conf
IgnorePkg = libinput
本项目所有代码均为 AI 生成
daysmatter 是一款纯Python编写、基于curses的交互式终端倒计时工具,无需图形界面,即可在终端中优雅管理生日、纪念日、节日等重要日期。
工具自动计算倒计时/已过天数,支持年度重复事件、彩色高亮、可视化进度条、全屏展示模式,完美适配中文宽字符,数据本地存储无联网,轻量开箱即用。


curses 库(Linux/macOS 原生支持)wget https://git.lumorian.org/Lumorian/daysmatter/raw/branch/main/daysmatter.py
python3 daysmatter.py
适合终端常驻、桌面展示:
python3 daysmatter.py -F
↑ / ↓:选择事件A:添加新事件E:编辑选中事件D:删除选中事件F:切换到全屏展示模式Q:退出程序Q:返回主界面/退出所有事件数据本地存储,无任何网络请求:
~/.config/daysmatter/events.json有这样一种时兴的 “产物” – 天才少年, 再加上各种短视频平台的宣传, 贴上 “百万年薪” 标签. 这种混淆普通人对成功概念的理解的产物变得普遍流行并非偶然. 从这种混淆中得利的大公司推动了这种混淆, 最明了的方式就是完全拒绝这一 “产物”
这一 “产物” 本身具有一种不难察觉的偏见: 它暗示人们应认为低的薪资是可耻、失败的, 只有拥有百万年薪才能让人生过上幸福的生活, 才是成功. 由于这种转变正是那些大公司所求之不得的, 于是这种由 “天才少年” 这一产物所带来的偏见迎合了它们.
根据现在供职于XX市第二中学南校区的李教授的观点, 对 “天才少年” 这一产物的广泛使用变得流行是应当的. 从李教授多次演讲中我们可以提炼出以下论点: (1) 未达到百万年薪或以上的人, 未来的出路只有卖菜、搬砖等粗活累活; (2) 收税人大于纳税人, 纳税人低人一等; (3) 不愿成为 “天才少年” “百万年薪” 就是害怕、懒惰、不上进; (4) 认为想过普通生活是可笑的.
它是一种幻境. 人们之所以会误认为 “天才少年” 是一种合乎逻辑的分类, 原因仅仅在于这一产物的广泛使用对于人们理解何为美好生活时产生了误导.
例如, 您可能会看见这样的宣传: “华为百万年薪招聘天才少年”, “天才少年发明打破国外技术封锁”, 这些宣传不断暗示我们都应如此. 您也会见到这样的论断, “天才少年” 是为鼓励人们仍需努力, 为人们提供榜样向他们看齐. 但事实上只适用那些天生就是天才的人, 普通人听多了只会感到厌烦. 让我们回到小时候, 你的父母是否时常将一种叫 “邻家小孩” 的生物挂在嘴边, 将它与你进行对比, 当时你的内心是如何看待这些 “邻家小孩” 的呢?
不难发现, “天才少年” 与 “邻家小孩” 的本质其实是一致的. 唯一的区别在于 “邻家小孩” 可能是你 “独享” 的, 而 “天才少年” 则是大家 “共有” 的. 当长辈们在晚辈面前讨论 “天才少年”, “邻家小孩” 时, 他们通常想要真正表达的是他们在生活或工作中的不如意无处释放, 只能通过像 “天才少年” 这种能切中他们要害的产物丢向晚辈来为自己带来一丝微不足道的高潮快感和莫名奇妙的自豪感.
接了个给 hexo-butterfly 增加播放本地音乐的小单, 记录一下实现过程, 网上大多为添加第三方源或只是在单页面添加播放器
npm install --save hexo-tag-aplayer
source 路径, 例如path-to-your-blog/
└─ source/
└─ music/
├─ song1.mp3
├─ song2.mp3
├─ song3.mp3
└─ cover/
├─ song1.jpg
├─ song2.jpg
├─ song3.jpg
└─ lrs/
├─ song1.lrs
├─ song2.lrs
├─ song3.lrs
配置主题的 additional-js.pug 文件 (不选择配置 _config.yml 里的 inject 是因为各种神秘版本神秘兼容已经把我搞晕)
nano themes/butterfly/layout/includes/additional-js.pug
最后一行添加
div(id="global-aplayer")
link(rel="stylesheet", href="https://cdn.bootcdn.net/ajax/libs/aplayer/1.10.1/APlayer.min.css")
script(src="https://cdn.bootcdn.net/ajax/libs/aplayer/1.10.1/APlayer.min.js")
script.
window.onload = function() {
if (typeof APlayer !== 'undefined') {
const ap = new APlayer({
container: document.getElementById('global-aplayer'),
fixed: true,
autoplay: false,
theme: '#F57C00',
loop: 'all',
volume: 0.7,
mutex: true,
listFolded: true,
listMaxHeight: 300,
lrcType: 1, // 这里填 1 没用的可以试一下填 3
preload: auto,
audio: [
{
name: "song1",
artist: "artist1",
url: "/music/song1.mp3",
cover: "/cover/song1.jpg",
lrc: "/lrs/song1.lrc"
},
{
name: "song2",
artist: "artist2",
url: "/music/song2.mp3",
cover: "/cover/song2.jpg",
lrc: "/lrs/song2.lrc"
}
{
name: "song3",
artist: "artist3",
url: "/music/song3.mp3",
cover: "/cover/song3.jpg",
lrc: "/lrs/song3.lrc"
}
]
});
const apFixed = document.querySelector('.aplayer-fixed');
if (apFixed) {
apFixed.style.zIndex = '99999';
apFixed.style.bottom = '20px';
apFixed.style.right = '20px';
apFixed.style.width = '360px';
}
}
};
nano ./_config.yml
# or
nano ./_config_butterfly.yml
找到 inject 部分, 清空先前的配置避免冲突
inject:
head:
bottom:
hexo clean && npm run server
大功告成~~~~
第一版, 2022 年 9 月 16 日
版权所有 © 2022 Peaksol, Lumorian
任何人皆可复制和分发本协议的完整副本, 但不允许修改之.
通用餐饮代购协议是一份适用于餐饮代购环节中代理商为最终消费者提供的服务的协议.
就多数代购行为而言, 最终消费者多对代理商进行利益上的剥削; 相反, 通用餐饮代购协议力图保障代理商与最终消费者的共同利益.
通过使用代理商所提供的餐饮代购服务, 最终消费者接受并同意受到通用餐饮代购协议第一版的约束. 从合同解释的角度来看, 最终消费者获得来自代理商的餐饮代购服务的使用权的对价是接受本协议的条款, 代理商授予最终消费者此权利的对价是可以通过提供其根据本协议提供的服务而获得利益.
以下是对代理商所供服务的使用的条款和条件细则.
a) “本协议” 指通用餐饮代购协议第一版.
b) “食品经营商” 指支持使用电话或短信订购其外卖餐饮的个人或团体.
c) “代理商” 指提供餐饮代购服务的个人.
d) “最终消费者” 指使用代理商所提供的服务的个人.
e) “订单” 指通过代理商在特定食品经验商处订购的单份餐饮. 订单创建者可以是最终消费者或代理商本人.
f) “取件” 过程指订单在从食品经营运输至订单创建者的全过程中, 除食品经营商运输过程以外的所有运输过程.
a) 只有最终消费者接受本协议,且代理商同意为最终消费者提供服务,最终消费者才可使用代理商提供的服务。
b) 代理商为最终消费者提供的服务包括本协议第 2 条和第 3 条所述的服务。
c) 最终消费者有权随时停止接受本协议,代理商亦有权随时停止在本协议下提供其服务。但此类停止不影响截至该类停止发生之时仍未结束的服务,除非最终消费者明确表明结束该服务。
a) 最终消费者可免费在代理商处创建订单,订单应指明食品经营商名称,联系方式和预订餐饮。同一服务时段内,最终消费者不得创建多份订单。
b) 同一服务时段内,在代理商将订单提交至食品经营商前,最终消费者有权修改订单内容或取消订单;代理商将订单提交至食品经营商后,最终消费者不得再修改订单内容或取消订单。
c) 代理商仅负责签订单提交至食品经营商,且不承担食品经营商提出的任何费用,包括但不限于餐饮费,运输费。食品经营商对订单提出的任何费用由最终消费者承担。
a) 同一服务时段内,在代理商向某一食品经营商提交指向该食品经营商的所有订单时,若:
b) 代理商对 3a3 情况下的订单提供的免费代取件服务是可用的,如果:
c) 代理商对 3a2 和 3a3 情况下的订单提供的有偿代取件服务是可用的,如果:
d) 订单在代取件过程中出现的损失,须由为订单进行代取件的个人或集体进行承担。订单创建者可与为订单进行代取件的个人或集体就损失赔偿的具体事宜进行协商。
a) 代理商不对食品经营商嗯餐饮提供任何种类的品质担保。若食品经营商提供的餐饮未达到最终消费者的预期品质,代理商不对此承担任何责任。
b) 代理商不对最终消费者因食用食品经营商的餐饮而遭受的任何直接或间接的伤害和损失承担任何责任,即使代理商受到明示或暗示应对此负责。
条款和条件至此结束
这天我在我的 Arch 上玩 Galgame 的时候发现游戏能正常启动 (有声音) 但窗口不显示的情况, 简单查询发现是 Niri 对 XWayland 存在兼容性问题, 导致窗口无法正常显示 / 渲染, 下面简单说一下如何修复
gamescope 是独立的 Wayland 合成器, 可以绕过 Niri 的 XWayland 兼容性问题
sudo pacman -Syyu
sudo pacman -S gamescope
给游戏启动命令添加启动选项
# 全屏, 自适应分辨率
gamescope -f -- <command>
# 指定分辨率 + 全屏
gamescope -w 1920 -h 1080 -f -- <command>
如果是 Steam 上的 Galgame 的话同样也是给游戏添加启动参数, 将上面的命令 <command> 替换成 %command% 填入即可
我第一次在 GNU/Linux 中使用 tailscale 的 taildrop 时发现怎么都找不到发送过来的文件, 一直以为只是藏在了某个隐蔽的路径下, 直到翻看了官方文档才知道原来 GNU/Linux 端不会自动保存, 需要用户手动设置保存路径 (气笑了)
收文件
# 把接收文的目录设置为当前目录(. 表示当前)
sudo tailscale file get .
# 或保存到指定的某个目录
sudo tailscale file get ~/Downloads
发文件
tailscale file cp <files> <name-or-ip>:
补充一下 tailscale 的官方文档, 点击这里查看
环境 Golang,gcc
下载 MinGW-w64, 将压缩包解压, 注意路径不要含有中文或空格, 随后添加到系统环境变量 (重启终端)
#验证
gcc --version
下载 Golang
# 验证
go version
克隆 chatlog 源码 (此为二次开发版)
git clone https://github.com/teest114514/chatlog_alpha
开始编译
cd chatlog_alpha
# 为 Go 配置镜像加速 (临时生效)
$env:GOPROXY = "https://goproxy.cn,direct"
# 验证, 输出 https://goproxy.cn,direct 则说明成功
go env GOPROXY
# 开启 CGO
$env:CGO_ENABLED = 1
if (-not (Test-Path "bin")) { mkdir bin }; go build -o bin/chatlog.exe main.go
注意查看当前支持的微信版本, 截至到本文结束时, wx_key 支持全部 4.x 版本, 最高稳定支持 4.1.5.11 版本. 最新版能用但有点开盲盒的感觉所以个人还是推荐优先使用目前稳定支持的版本
首先检查网络连接状态, 查看网络连接, 如出现 ip 地址则说明连接
ip a
ping 一下网址看是否正常连接
ping baidu.com
连接 wifi
# 进入 wifi 连接模式
iwctl
# 连接你的 wifi, 回车后输入 wifi 密码后再次回车
station wlan0 connect <你的 wifi 名称>
# 退出
exit
同步时间
timedatectl set-ntp true
列出详细的硬盘信息, 记住你的设备名称, 我这边是 /dev/nvme0n1
lsblk -pf
分区, 上下左右进选择New -> Partition size: 1g -> Type -> EFI SystemNew -> Partition size: <你剩下的所有空间> -> Write -> Quite
cfdisk /dev/nvme0n1
再次列出详细的硬盘信息
lsblk -pf
# NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% # MOUNTPOINTS
# /dev/nvme0n1
# ├─/dev/nvme0n1p1 vfat FAT32 EFF6-F931 659.2M #35% /boot
# └─/dev/nvme0n1p2 btrfs 14ea5817-05e1-4798-bdec-8f98f9cb0a5a 206.4G #13% /home
格式化启动分区
mkfs.fat -F 32 /dev/nvme0n1p1
格式化 BTRFS 根目录
mkfs.btrfs /dev/nvme0n1p2
创建 BTRFS 分区子卷, 先挂载根分区, 再创建子卷
mount -t btrfs -o compress=zstd /dev/nvme01n1p2 /mnt && \
btrfs subvolume create /mnt/@ && \
btrfs subvolume create /mnt/@home && \
btrfs subvolume create /mnt/@swap
取消挂载
umount /mnt
正式挂载
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p2 /mnt && \
mount --mkdir -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p2 /mnt/home && \
mount --mkdir -t btrfs -o subvol=/@swap,compress=zstd /dev/nvme0n1p2 /mnt/swap && \
mount --mkdir /dev/nvme01np1 /mnt/boot
复查挂载 /mnt /mnt/home /mnt/swap /mnt/boot 存在即可
df -h
更新密钥
pacman -Sy archlinux-keyring
安装系统
pacstrap -K /mnt base base-devel linux linux-firmware btrfs-progs
安装必要软件, 若为 AMD 则将 intel-ucode 换为 amd-ucode
pacstrap /mnt networkmanager nano sudo intel-ucode
创建 swap 文件, 这边以 RedHat 官网文档为参考
| 系统中的 RAM 量 | 推荐的 swap 空间 | 如果允许休眠则推荐使用 swap 空间 |
|---|---|---|
| ⩽ 2 GB | RAM 量的 2 倍 | RAM 量的 3 倍 |
| > 2 GB – 8 GB | 与 RAM 量相等 | RAM 量的 2 倍 |
| > 8 GB – 64 GB | 至少 4 GB | RAM 量的 1.5 倍 |
| > 64 GB | 至少 4 GB | 不推荐休眠 |
我的电脑内存为 16GB 但这边我不需要休眠所以只设置 8GB
btrfs filesystem mkswapfile --size 8g --uuid clear /mnt/swap/swapfile
启动 swap
swapon /mnt/swap/swapfile
生成 fstab
genfstab -U /mnt > /mnt/etc/fstab
arch-chroot /mnt
设置主机名
nano /etc/hostname
设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
同步时间
hwclock --systohc
设置本地化
nano /etc/locale.gen
- #en_US.UTF-8 UTF-8
+ en_US.UTF-8 UTF-8
- #zh_CN.UTF-8 UTF-8
+ zh_CN.UTF-8 UTF-8
生成区域设置
locale-gen
编辑配置文件
nano /etc/locale.conf
+ LANG=en_US.UTF-8
设置 root 密码, 密码不会显示
passwd
安装引导程序
pacman -S grub efibootmgr os-prober
安装 grub
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=<你想要的任何名字>
编辑 grub, 若为 AMD 则将 iTCO_WDT 换为 sp5100_tco
nano /etc/default/grub
- GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quit"
+ GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog modprobe.blacklist=iTCO_WDT"
- #GRUB_DISABLE_OS_PROBER=false
+ GRUB_DISABLE_OS_PROBER=false
生成 grub 配置文件
grub-mkconfig -o /boot/grub/grub.cfg
退出 chroot
exit
重启
reboot
先联网
systemctl enable --now NetworkManager
无线网链接
nmcli dev wifi connect <你的 wifi 名称> password <你的 wifi 密码>
ping 一下确认网络已连接
ping baidu.com
先上成品图 
创建新用户
sudo useradd -m -G wheel -s /bin/bash 你的用户名
设置密码
sudo passwd 你的用户名
修改 visudo 默认编辑器, 会用 vi/vim 可跳过这一步
sudo nano ~/.bashrc
VISUAL="nano" ; export VISUAL
EDITOR="$VISUAL" ; export EDITOR
配置 sudo 权限
source ~/.bashrc && sudo visudo
- # %wheel ALL=(ALL) ALL
+ %wheel ALL=(ALL) ALL
国内环境优先配置镜像源, 这边推荐 tuna
sudo echo -e "Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/\$repo/os/\$arch" > /etc/pacman.d/mirrorlist
更新软件包缓存
sudo pacman -Syyu
安装必要的包, 根据自己需求做删减
sudo pacman -S --needed fuzzel mako niri xwayland-satellite base-devel git yazi fastfetch ffmpeg p7zip nano dms-shell noto-fonts-cjk wqy-microhei wqy-zenhei vlc vlc-plugins-all
安装 paru
git clone https://aur.archlinux.org/paru.git && cd paru && makepkg -si
部分耳熟能详的包名不会列在下面了
| 软件名 | 简述 |
|---|---|
| fuzzel | 应用程序启动器 |
| mako | 轻量级通知管理器 |
| niri | 平铺式窗口管理器 |
| xwayland-satellite | x11 应用的 Wayland 桥接工具 |
| yazi | 文件管理 |
| fastfetch | 系统信息获取工具 |
| alacritty-graphics | 现代终端模拟器 |
| tlp | 电源管理工具 |
先国际惯例 fastfech 一下
-` lumorian@Lumorian-Dell
.o+` ----------------------
`ooo/ OS: Arch Linux x86_64
`+oooo: Host: G3 3500
`+oooooo: Kernel: Linux 6.12.58-1-lts
-+oooooo+: Uptime: 9 days, 11 hours, 27 mins
`/:-:++oooo+: Packages: 912 (pacman), 9 (flatpak)
`/++++/+++++++: Shell: bash 5.3.3
`/++++++++++++++: Display (AUOED8F): 1920x1080 in 15", 120 Hz [Built-in]
`/+++ooooooooooooo/` Terminal: /dev/pts/0
./ooosssso++osssssso+` CPU: Intel(R) Core(TM) i5-10300H (8) @ 4.50 GHz
.oossssso-````/ossssss+` GPU 1: NVIDIA GeForce GTX 1650 Mobile / Max-Q [Discrete]
-osssssso. :ssssssso. GPU 2: Intel UHD Graphics @ 1.05 GHz [Integrated]
:osssssss/ osssso+++. Memory: 6.02 GiB / 15.42 GiB (39%)
/ossssssss/ +ssssooo/- Swap: 0 B / 8.00 GiB (0%)
`/ossssso+/:- -:/+osssso+- Disk (/): 51.18 GiB / 237.47 GiB (22%) - btrfs
`+sso+:-` `.-/+oso: Local IP (Mihomo): 198.18.0.1/30
`++:. `-/+/ Battery (DELL M4GWP06): 100% [AC Connected]
.` `/ Locale: zh_CN.UTF-8
启用 niri 和 mako
systemctl --user add-wants niri.service mako.service
sudo nano ~/.config/niri/config.kdl
在无任何{}内写入
spawn-at-startup "dms" "run"
sudo nano /etc/nanorc
set autoindent
set tabsize 4
set tabstospaces
set linenumbers
set constantshow
set mouse
set softwrap
bind M-L linenumbers main
set titlecolor bold,white
set numbercolor cyan
set keycolor green
set functioncolor yellow
set statuscolor cyan
include "/usr/share/nano/*.nanorc"
include "/usr/share/nano/extra/*.nanorc"
nano ~/.config/niri/config.kdl
最顶部添加, 不要放进任何{}内
prefer-no-csd
\\ 圆角配置段
window-rule {
geometry-corner-radius 12
clip-to-geometry true
}
通过 aur 安装 alacritty-graphics, 不选择 alacritty 是因为 yazi 的预览图片功能在 alacritty 会有问题
paru -S alacritty-graphics
nano ~/.config/niri/config.kdl
window-rule {
match app-id="Alacritty"
draw-border-with-background false
opacity 0.8
}
sudo pacman -S fcitx5 fcitx5-rime
配置主题, 想自己搭配的也可以试试这个网站
paru -S fcitx5-skin-ori-git
默认简体中文 + 半角标点
touch ~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml && nano ~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml
patch:
switches:
- name: simplification
reset: 1
states: [ 漢字, 汉字 ]
- name: full_shape
reset: 0
states: [ 半角, 全角 ]
punctuator:
half_shape:
"!": "!"
"\"": "\""
"#": "#"
"$": "$"
"%": "%"
"&": "&"
"'": "'"
"(": "("
")": ")"
"*": "*"
"+": "+"
",": ","
"-": "-"
".": "."
"/": "/"
":": ":"
";": ";"
"<": "<"
"=": "="
">": ">"
"?": "?"
"@": "@"
"[": "["
"\\": "\\"
"]": "]"
"^": "^"
"_": "_"
"`": "`"
"{": "{"
"|": "|"
"}": "}"
"~": "~"
full_shape:
"!": "!"
"\"": """
"#": "#"
"$": "$"
"%": "%"
"&": "&"
"'": "'"
"(": "("
")": ")"
"*": "*"
"+": "+"
",": ","
"-": "-"
".": "。"
"/": "/"
":": ":"
";": ";"
"<": "<"
"=": "="
">": ">"
"?": "?"
"@": "@"
"[": "["
"\\": "\"
"]": "]"
"^": "^"
"_": "_"
"`": "`"
"{": "{"
"|": "|"
"}": "}"
"~": "~"
使配置生效
方法 1: 通过 Fcitx5 界面
重新部署 或 Rime → 重新部署方法 2:
rime_deployer --build ~/.local/share/fcitx5/rime ~/.local/share/fcitx5/rime/build
sudo pacman -S flameshot
nano ~/.config/niri/config.kdl
\\ 设置 flameshot 快捷键 -c 参数是让你截取完后按下 enter 就能直接复制
binds {
Alt+A { spawn "flameshot" "gui" "-c"; }
}
sudo pacman -S tlp
sudo nano /etc/tlp.d/00-template.conf
START_CHARGE_THRESH_BAT0="70"
STOP_CHARGE_THRESH_BAT0="80"
\\ 如果你有第二块电池的话
START_CHARGE_THRESH_BAT1="70"
STOP_CHARGE_THRESH_BAT1="80"
sudo pacman -S ly
systemctl enable ly@tty2.service && systemctl disable getty@tty2.service
设置主题, 这边推荐我很喜欢的主题, 点击这里下载
sudo nano /etc/ly/config.ini
- animation = none
+ animation = dur_file
- dur_file_path = /etc/ly/example.dur
+ dur_file_path = /path/to/your/durl/file
sudo pacman -S obs-studio
安装音视频固件
sudo pacman -S pavucontrol sof-firmware alsa-ucm-conf alsa-firmware
安装, 启动 Pipewire
sudo pacman -S pipewire wireplumber pipewire-pulse pipewire-alsa pipewire-jack
systemctl --user --now enable pipewire pipewire-pulse wireplumber
sudo nano ~/.config/niri/config.kdl
在无任何{}内写入
spawn-sh-at-startup "dbus-update-activation-enviroment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=niri & /usr/lib/xdg-desktop-portal-gnome"