”这是一次冒险,也是一次疯狂的折腾“

导火索

自3月初开学以来,我因为不爱呆在宿舍,经常在工位的缘故,苦于笔记本的厚重(实际上是轻薄本,但依然很重),我渐渐适应了工位上mint系统。特别是他的热区功能,让我感到非常好用。于是乎,将近一个月,我发觉,我的日常生活已经可以完全使用linux来实现代替了。而这就是这篇文章产生的起点。

起点

Fedora 颜值拉满:Niri+ Dank Material Shell 一步到位

这个视频是我踏出这一步的开始,因为美观,好看。加上对linux的习惯。我选择了直接重装系统,不给自己留退路了。(实际上重要数据已经多地保存了,大家千万不要轻易尝试!!!)。于是乎,再第一次实验中,我选择了fedora+dms+niri,也就是视频中一模一样的配置。❌错误发生在安装了dankGreeter之后,这只是一个适配的登陆UI。但是在我安装后,他就变成了全英文界面。虽然我也不是不能接受。重点是我不知道怎么调回来。视频的评论中有一些配置,但在我测试过之后,他也只有命令行的help提示变成了中文,其他的甚至包括浏览器都变成了全英文界面,这太难受了。同时我还不太适应fedora的包管理器,虽然dnf也不难用,但我对于apt已经用习惯了。于是乎,我决定重装系统,换成debian。

中道崩殂后的再次开始

这次重装系统,我谨慎了很多。比如,我没有去安装dmsGreeter了,哈哈哈。我生怕他又出问题。
先给大家展示一下我现在的桌面:
迁移Debian并配置niri桌面的一系列配置以及问题-2026-04-17-22-31-44

整体来说还是蛮不错的,那么接下来我会讲讲我在配置过程中遇到的一些问题,以及解决方法。我记录这些方法更多是在自己以后再重装电脑时,可以直接参考这篇文章来完成重装,而不用再花太多时间去临时解决问题了。如果我的文章可以帮到您,那自然是在好不过了。

1. fcitx5输入法的安装和配置

首先必然是最重要的,输入法,我选择了fcitx5,因为他是目前linux上最主流的输入法框架了。安装也非常简单,直接在终端输入:

1
sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk2 fcitx5-frontend-gtk3 fcitx5-frontend-qt5

命令很简单,上面就可以完成安装,接着是fcitx5在niri中的默认启动和配置,这里其实有几个问题,一个是美化,一个是在electron软件中的输入问题,还一个就是自启动问题。
我会逐步讲解。

美化

在美化这一部分,我选择了fcitx5-themes-candlelight这个仓库,这个仓库提供了很多简单的美化主题,而且操作简单,跟着README文档一步步操作就可以了。安装完成后,重启输入法,就可以看到新的主题了。我使用的是macOS-dark。完成这个功能后,就可以实现输入法的美化了。展示一下我目前的输入法界面:迁移Debian并配置niri桌面的一系列配置以及问题-2026-04-18-15-00-04

electron软件中的输入问题和自启动

在electron软件中的输入问题,主要是因为electron软件和wayland桌面环境的兼容性问题,就会出现输入法无法使用的问题。而且这个问题已经是个老问题了,很多人都遇到过。我也是在b站的某个评论区中刷到的。汇总一下就是下面的部分:编辑 /etc/environment 并添加以下几行后重新登录:

1
2
3
4
5
6
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
QT_IM_MODULES="wayland;fcitx"
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus

在niri中,由于配置文件格式的不同。则可以修改~/.config/niri/config.kdl,他的书写格式稍有不同展示如下:

1
2
3
4
5
6
7
8
9
10
11
spawn-at-startup "fcitx5" "-d" "--replace" //自启动输入法
environment {

XDG_CURRENT_DESKTOP "niri"
XMODIFIERS "@im=fcitx"
GTK_IM_MODULE "fcitx"
QT_IM_MODULE "fcitx"
SDL_IM_MODULE "fcitx"
GLFW_IM_MODULE "ibus" // GLFW Wayland 下通常使用 ibus 协议与 fcitx5 通信

}

完成这个配置后,注销重新登陆,fcitx5就会自动启动。然后就在各种地方使用输入法了。

2. 截图功能

由于我在win和mint下都习惯于使用snipaste这个超强工具,既有截图,贴图和编辑功能。所以我理所当然的也下载了他,但是似乎,他在wayland下适配的并不好,截图虽然能截下来,但是整体界面都糅杂在一起,非常的不美观。所以呢,还是选择了暂时先使用dms中自带的截图功能,虽然功能不多,但胜在能用。他主要有三个基本快捷键。

ctrl+super+PrtSc:全屏截图
alt+super+PrtSc:当前区域截图
PrtSc:自选窗口截图

我已经习惯了使用f1键来打开截图,所以多配置了一个快捷键。他截图后,使用space会保存到系统的Pictures/Screenshots文件夹中,使用enter或者ctrl+c会直接复制到剪贴板中。这个功能对我而言已经足够了。至于后续的图片编辑和贴图功能,我觉得可以等以后有需要了再说了。

3. 翻译功能

这个的话,我就懒得去配置了,win下我使用有道词典的全屏翻译,现在由于没有合适的全屏获取工具,所以就使用浏览器的沉浸式翻译工具,对我而言也够用了。使用的翻译引擎则是L站为所有佬友提供的Deeplx工具,大爱L站。

4. 配置微信小程序开发工具

这个最开始我还尝试了把仓库拉下来自己编译一次,结果发现实在没必要,直接下载github别人仓库打包好的AppImage就可以直接使用了。我这里展示一下仓库地址,有需要的直接去release下载即可。

5. timeshift快照工具

这个工具,我就是执行某些操作时,不小心把环境搞得非常崩溃,所以使用他来实现快照,他不会备份用户数据,只会备份与你系统相关的文件,所以即使恢复了快照,你的用户数据也不会丢失。安装也非常简单,直接在终端输入:

1
2
3
4
5
6
sudo apt install timeshift

# 备份操作
sudo timeshift --create --comments "第一次快照" --tags D
# 恢复操作
sudo timeshift --restore

上面是最基础的功能,更多的可以参考他的官方文档,这里的配置对我而言已经足够了。

6. dsearch服务配置

这个功能是dms自带的一个功能,但是在我使用的时候,他没有自启动注册为服务,所以我无法使用他的功能,他就类似于windows下的everything,但是没那么方便,因为我使用super+space后,还要多点一下文件,才会进入文件搜索界面,不然只会展示应用部分。

这个功能在dms的默认配置中,他的名字为danksearch,然后我们需要把它注册为服务。

1
2
3
mkdir -p ~/.config/systemd/user
wget https://raw.githubusercontent.com/AvengeMedia/danksearch/refs/heads/master/assets/dsearch.service -O ~/.config/systemd/user/dsearch.service
systemctl --user enable --now dsearch

完成这个操作后,注销重新登录,就可以使用super+space来直接进入文件搜索界面了。当然,他会占用一个端口,你也可以直接进入web界面访问他的详细信息:http://localhost:43654/docs,在这你就可以直接看到网页了。

vs-picgo在linux下的使用

这个工具在linux下的使用,和windows下的使用是一样的,唯一不同的是在linux下,他会调用系统的剪贴板来实现复制功能,而这个库,它实际上在5年前就已经停止维护了。所以他只默认调用了xclip这个工具来实现复制功能,而在wayland桌面环境下,xclip是无法使用的。所以我修改了他的源码,在vscode中打开扩展。
迁移Debian并配置niri桌面的一系列配置以及问题-2026-04-18-16-01-49
搜索picgo,在大小这个位置,你可以通过点击进入他的源代码。
迁移Debian并配置niri桌面的一系列配置以及问题-2026-04-18-16-03-07

如上所示,我们进入./dist/clipboard下就可以看到linux.sh这个脚本,他就是系统调用xclip实现粘贴的关键,如果你使用的也是niri,你可以使用我这个代码去覆盖他原本的linux.sh,然后就可以在niri中使用vs-picgo的复制功能了。下面是我修改后的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh

# 1. dms cl paste 会将剪贴板内容写入 PicGo 提供的临时文件 $1
dms cl paste > "$1" 2>/dev/null

# 检查文件是否为空
if [ ! -s "$1" ]; then
echo "no image"
exit 0
fi

# 2. 检查剪贴板里是不是直接就是图片二进制数据
mimeType=$(file -b --mime-type "$1")
if echo "$mimeType" | grep -q "^image/"; then
echo "$1"
exit 0
fi

# 3. 如果剪贴板内容是文本,读取文本的第一行(去掉回车换行等空白字符)
clipboard_text=$(head -n 1 "$1" | tr -d '\r\n' | sed 's/^[ \t]*//;s/[ \t]*$//')

# 4. 去除路径可能带有的 file:// 前缀(如果有的话)
file_path=$(echo "$clipboard_text" | sed 's|^file://||')

# 5. 判断提取出来的文本是不是一个真实存在的本地文件路径
if [ -f "$file_path" ]; then
# 进一步确认这个本地文件是不是图片
file_mime=$(file -b --mime-type "$file_path")
if echo "$file_mime" | grep -q "^image/"; then
# 是真实的本地图片,直接把路径交给 PicGo
echo "$file_path"
exit 0
fi
fi

# 如果以上都不符合,说明剪贴板里真的没有图片
echo "no image"

记录一些问题

  • opencode的自动复制功能,和niri的复制功能相冲突。如果opencode复制后,我在微信中就只能粘贴opencode的复制内容,即便重新在其他地方复制了也没用
  • 如何配置腾讯会议录制功能?(这个问题可以往这里瞅,L站,这里有我和一些佬友的讨论过程,有人已经有解决方案了,但是我复刻了一边,只是失败了)
  • 更好的图片编辑工具
  • debian笔记本盖盖子后,只熄屏,不会自动锁屏
  • 缺少一个查看图片的工具,目前是使用浏览器来查看的,只能说能用而已
  • 配置了yazi但是我觉得他并不好用,我还是比较喜欢GUI界面下的点点点。可能我需要的功能就是进入到文件夹下,然后可以方便的使用ghostty直接进入终端。
  • wps字体等问题