rt, niri中使用fcitx5中输入中文时在部分软件出现严重的候选框偏移的问题,出现该问题的软件包括: chrome cherry-studio vscode 问题如下图,越在屏幕下方的位置,偏移越严重 尝试过在启动命令后增加环境变量但是没有用 –ozone-platform=wayland –enable-wayland-ime –wayland-text-input-version=3 使用的是Debian13,即使重装系统仍然不行 有佬遇到过这个问题吗? 3 个帖子 - 3 位参与者 阅读完整话题
我用大模型写了shell脚本调用wlr-randr,能实现自动熄屏内置 但是断开外置,内置的死活不能点亮 // 监听显示器变化事件,并自动执行切换脚本 spawn-at-startup "sh" "-c" "niri msg --json event-stream | while read -r event; do echo \"$event\" | grep -q 'OutputsChanged' && ~/auto-switch-screen.sh; done" // 2. 新增:开机/登录后延迟 5 秒自动执行一次脚本(负责初始状态的切换) spawn-at-startup "sh" "-c" "sleep 5 && ~/auto-switch-screen.sh" #!/bin/bash # 将所有输出(包括报错)追加写入到日志文件中 exec >> ~/screen-switch.log 2>&1 echo "=== $(date) 脚本被触发 ===" # 第一次防抖:等待系统初步刷新显示器连接状态 sleep 2 # 提取纯显示器代号 connected_outputs=$(wlr-randr | grep "DP-3 ") echo "当前识别到的连接显示器: $connected_outputs" # 检查外接显示器 DP-3 if echo "$connected_outputs" | grep -q "DP-3"; then echo "判断结果:检测到外接显示器 DP-3,准备切换..." # 第二次防抖:避开热插拔瞬间的底层冲突 sleep 1 wlr-randr --output eDP-1 --off wlr-randr --output DP-3 --on else echo "判断结果:未检测到 DP-3,准备恢复内置屏 eDP-1..." # 第二次防抖 sleep 1 # 💡 核心改动:先强制关闭内置屏,再重新打开(重置状态) wlr-randr --output eDP-1 --off sleep 0.5 wlr-randr --output eDP-1 --on # 确保外置屏彻底关闭 wlr-randr --output DP-3 --off fi echo "命令执行完毕。" 1 个帖子 - 1 位参与者 阅读完整话题
折腾几个小时了,能自动熄屏内置,拔了外置的线,内置不能点亮,这种功能都没有原生的,怎么玩 #!/bin/bash 将所有输出(包括报错)追加写入到日志文件中 exec >> ~/screen-switch.log 2>&1 echo "=== $(date) 脚本被触发 ===" 第一次防抖:等待系统初步刷新显示器连接状态 sleep 2 提取纯显示器代号 connected_outputs=$(wlr-randr | grep "DP-3 ") echo "当前识别到的连接显示器: $connected_outputs" 检查外接显示器 DP-3 if echo "$connected_outputs" | grep -q "DP-3"; then echo "判断结果:检测到外接显示器 DP-3 ,准备切换..." # 第二次防抖:避开热插拔瞬间的底层冲突 sleep 1 wlr-randr --output eDP-1 --off wlr-randr --output DP-3 --on else echo "判断结果:未检测到 DP-3 ,准备恢复内置屏 eDP-1..." # 第二次防抖 sleep 1 # 💡 核心改动:先强制关闭内置屏,再重新打开(重置状态) wlr-randr --output eDP-1 --off sleep 0.5 wlr-randr --output eDP-1 --on # 确保外置屏彻底关闭 wlr-randr --output DP-3 --off fi echo "命令执行完毕。" // 监听显示器变化事件,并自动执行切换脚本 spawn-at-startup "sh" "-c" "niri msg --json event-stream | while read -r event; do echo "$event" | grep -q 'OutputsChanged' && ~/ auto-switch-screen.sh ; done" // 2. 新增:开机/登录后延迟 5 秒自动执行一次脚本(负责初始状态的切换) spawn-at-startup "sh" "-c" "sleep 5 && ~/ auto-switch-screen.sh "
折腾几个小时了,能自动熄屏内置,拔了外置的线,内置不能点亮,这种功能都没有原生的,怎么玩 #!/bin/bash 将所有输出(包括报错)追加写入到日志文件中 exec >> ~/screen-switch.log 2>&1 echo "=== $(date) 脚本被触发 ===" 第一次防抖:等待系统初步刷新显示器连接状态 sleep 2 提取纯显示器代号 connected_outputs=$(wlr-randr | grep "DP-3 ") echo "当前识别到的连接显示器: $connected_outputs" 检查外接显示器 DP-3 if echo "$connected_outputs" | grep -q "DP-3"; then echo "判断结果:检测到外接显示器 DP-3 ,准备切换..." # 第二次防抖:避开热插拔瞬间的底层冲突 sleep 1 wlr-randr --output eDP-1 --off wlr-randr --output DP-3 --on else echo "判断结果:未检测到 DP-3 ,准备恢复内置屏 eDP-1..." # 第二次防抖 sleep 1 # 💡 核心改动:先强制关闭内置屏,再重新打开(重置状态) wlr-randr --output eDP-1 --off sleep 0.5 wlr-randr --output eDP-1 --on # 确保外置屏彻底关闭 wlr-randr --output DP-3 --off fi echo "命令执行完毕。" // 监听显示器变化事件,并自动执行切换脚本 spawn-at-startup "sh" "-c" "niri msg --json event-stream | while read -r event; do echo "$event" | grep -q 'OutputsChanged' && ~/ auto-switch-screen.sh ; done" // 2. 新增:开机/登录后延迟 5 秒自动执行一次脚本(负责初始状态的切换) spawn-at-startup "sh" "-c" "sleep 5 && ~/ auto-switch-screen.sh "
折腾几个小时了,能自动熄屏内置,拔了外置的线,内置不能点亮,这种功能都没有原生的,怎么玩 #!/bin/bash 将所有输出(包括报错)追加写入到日志文件中 exec >> ~/screen-switch.log 2>&1 echo "=== $(date) 脚本被触发 ===" 第一次防抖:等待系统初步刷新显示器连接状态 sleep 2 提取纯显示器代号 connected_outputs=$(wlr-randr | grep "DP-3 ") echo "当前识别到的连接显示器: $connected_outputs" 检查外接显示器 DP-3 if echo "$connected_outputs" | grep -q "DP-3"; then echo "判断结果:检测到外接显示器 DP-3 ,准备切换..." # 第二次防抖:避开热插拔瞬间的底层冲突 sleep 1 wlr-randr --output eDP-1 --off wlr-randr --output DP-3 --on else echo "判断结果:未检测到 DP-3 ,准备恢复内置屏 eDP-1..." # 第二次防抖 sleep 1 # 💡 核心改动:先强制关闭内置屏,再重新打开(重置状态) wlr-randr --output eDP-1 --off sleep 0.5 wlr-randr --output eDP-1 --on # 确保外置屏彻底关闭 wlr-randr --output DP-3 --off fi echo "命令执行完毕。" // 监听显示器变化事件,并自动执行切换脚本 spawn-at-startup "sh" "-c" "niri msg --json event-stream | while read -r event; do echo "$event" | grep -q 'OutputsChanged' && ~/ auto-switch-screen.sh ; done" // 2. 新增:开机/登录后延迟 5 秒自动执行一次脚本(负责初始状态的切换) spawn-at-startup "sh" "-c" "sleep 5 && ~/ auto-switch-screen.sh "
niri 26.04 现已发布, background blur 特性现已经支持 加入以下配置快速启用新特性 Blur niri-wm.github.io niri blog.snemc.cn niri 26.04 发布:久等的背景模糊终于来了 | Snemc Blocg niri 26.04 是 scrollable-tiling Wayland compositor 的一次重要更新。最引人注目的新特性是长期呼声最高的 background blur 。 新特性 background-effect 配置块 :替代社区 fork 时代的旧语法,正式纳入 window-rule 和 lay... 1 个帖子 - 1 位参与者 阅读完整话题
”这是一次冒险,也是一次疯狂的折腾“ 导火索 自3月初开学以来,我因为不爱呆在宿舍,经常在工位的缘故,苦于笔记本的厚重(实际上是轻薄本,但依然很重),我渐渐适应了工位上mint系统。特别是他的热区功能,让我感到非常好用。于是乎,将近一个月,我发觉,我的日常生活已经可以完全使用linux来实现代替了。而这就是这篇文章产生的起点。 起点 Fedora 颜值拉满:Niri+ Dank Material Shell 一步到位 这个视频是我踏出这一步的开始,因为美观,好看。加上对linux的习惯。我选择了直接重装系统,不给自己留退路了。(实际上重要数据已经多地保存了,大家千万不要轻易尝试!!!)。于是乎,再第一次实验中,我选择了 fedora+dms+niri ,也就是视频中一模一样的配置。 错误发生在安装了dankGreeter之后,这只是一个适配的登陆UI。但是在我安装后,他就变成了全英文界面。虽然我也不是不能接受。重点是我不知道怎么调回来。视频的评论中有一些配置,但在我测试过之后,他也只有命令行的help提示变成了中文,其他的甚至包括浏览器都变成了全英文界面,这太难受了。同时我还不太适应fedora的包管理器,虽然dnf也不难用,但我对于apt已经用习惯了。于是乎,我决定重装系统,换成debian。 中道崩殂后的再次开始 这次重装系统,我谨慎了很多。比如,我没有去安装 dmsGreeter 了,哈哈哈。我生怕他又出问题。 先给大家展示一下我现在的桌面: 整体来说还是蛮不错的,那么接下来我会讲讲我在配置过程中遇到的一些问题,以及解决方法。我记录这些方法更多是在自己以后再重装电脑时,可以直接参考这篇文章来完成重装,而不用再花太多时间去临时解决问题了。如果我的文章可以帮到您,那自然是在好不过了。 1. fcitx5输入法的安装和配置 首先必然是最重要的,输入法,我选择了 fcitx5 ,因为他是目前linux上最主流的输入法框架了。安装也非常简单,直接在终端输入: 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 。完成这个功能后,就可以实现输入法的美化了。展示一下我目前的输入法界面: electron软件中的输入问题和自启动 在electron软件中的输入问题,主要是因为electron软件和wayland桌面环境的兼容性问题,就会出现输入法无法使用的问题。而且这个问题已经是个老问题了,很多人都遇到过。我也是在b站的某个评论区中刷到的。汇总一下就是下面的部分:编辑 /etc/environment 并添加以下几行后重新登录: 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 ,他的书写格式稍有不同展示如下: 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快照工具 这个工具,我就是执行某些操作时,不小心把环境搞得非常崩溃,所以使用他来实现快照,他不会备份用户数据,只会备份与你系统相关的文件,所以即使恢复了快照,你的用户数据也不会丢失。安装也非常简单,直接在终端输入: sudo apt install timeshift # 备份操作 sudo timeshift --create --comments "第一次快照" --tags D # 恢复操作 sudo timeshift --restore 上面是最基础的功能,更多的可以参考他的官方文档,这里的配置对我而言已经足够了。 6. dsearch服务配置 这个功能是 dms 自带的一个功能,但是在我使用的时候,他没有自启动注册为服务,所以我无法使用他的功能,他就类似于windows下的everything,但是没那么方便,因为我使用 super+space 后,还要多点一下文件,才会进入文件搜索界面,不然只会展示应用部分。 这个功能在dms的默认配置中,他的名字为 danksearch ,然后我们需要把它注册为服务。 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中打开扩展。 搜索picgo,在 大小 这个位置,你可以通过点击进入他的源代码。 如上所示,我们进入 ./dist/clipboard 下就可以看到 linux.sh 这个脚本,他就是系统调用xclip实现粘贴的关键,如果你使用的也是niri,你可以使用我这个代码去覆盖他原本的 linux.sh ,然后就可以在niri中使用vs-picgo的复制功能了。下面是我修改后的代码: #!/bin/sh dms cl paste > "$1" 2>/dev/null if [ ! -s "$1" ]; then echo "no image" exit 0 fi mimeType=$(file -b --mime-type "$1") if echo "$mimeType" | grep -q "^image/"; then echo "$1" exit 0 fi clipboard_text=$(head -n 1 "$1" | tr -d '\r\n' | sed 's/^[ \t]*//;s/[ \t]*$//') file_path=$(echo "$clipboard_text" | sed 's|^file://||') if [ -f "$file_path" ]; then file_mime=$(file -b --mime-type "$file_path") if echo "$file_mime" | grep -q "^image/"; then echo "$file_path" exit 0 fi fi echo "no image" 记录一些问题 opencode的自动复制功能,和niri的复制功能相冲突。如果opencode复制后,我在微信中就只能粘贴opencode的复制内容,即便重新在其他地方复制了也没用 如何配置腾讯会议录制功能?(这个问题可以往这里瞅, 在niri下实现腾讯会议(wemeet)屏幕共享的经验分享 ,这里有我和一些佬友的讨论过程,有人已经有解决方案了,但是我复刻了一边,只是失败了) 更好的图片编辑工具 debian笔记本盖盖子后,只熄屏,不会自动锁屏 缺少一个查看图片的工具,目前是使用浏览器来查看的,只能说能用而已 配置了yazi但是我觉得他并不好用,我还是比较喜欢GUI界面下的点点点。可能我需要的功能就是进入到文件夹下,然后可以方便的使用ghostty直接进入终端。 wps字体等问题 3 个帖子 - 2 位参与者 阅读完整话题