[科技杂谈]科技心得杂谈
未读
一次“简单”的部署:为 Venera Sub Web UI 踩过的那些坑
本文作者分享了为漫画阅读器Venera开发订阅管理工具并部署时遇到的系列问题。开发过程顺利,仅用数小时完成核心功能,但部署时接连遭遇依赖冲突:服务器Glibc版本过旧、缺少GUI库文件。改用Docker后,又发现无头应用仍需X11虚拟屏幕(Xvfb),导致镜像臃肿至1.1GB。最终遇到数据持久化问题,因Docker挂载点导致系统rename操作跨文件系统失败,通过统一挂载整个用户目录解决。此次经历凸显了部署运维的复杂性,底层机制与容器化环境可能引发意外挑战,需细致应对。
[科技杂谈]科技心得杂谈
未读
通过PID锁定PipeWire ID,以解决PipeWire元数据无法很好定位不同软件的问题
文章提出一种在 Linux 下通过“进程 PID→PipeWire sink-input ID→音量或播放控制”的稳定链路,绕开 PipeWire 元数据可能缺失或重复的问题。先用 pgrep 拿到目标应用的 PID,再用 pactl list sink-inputs 搜出含该 PID 的段落,正则提取 Sink Input # 后面的数字即 PipeWire ID。拿到 ID 后,音量调节直接 pactl set-sink-input-volume 完成;播放/暂停、上/下曲等功能则用 D-Bus MPRIS 接口发送 PlayPause、Next 等调用。文中给出完整 Python 例子(含异步封装和日志),可直接用于 yesplaymusic 等支持 MPRIS 与 PipeWire 的播放器。
Wayland下的Sunshine+虚拟屏幕配置
文章记录作者在买了台一加平板后,想让它充当 Linux 副屏的折腾经过。核心需求是在 Wayland 下生成一块虚拟显示器,以便通过 Sunshine 把桌面串到平板。主流方法在 X11 好办,Wayland 则需绕弯。实现方案:在启动时让内核把指定 GPU 输出口当作不存在的显示器,然后加载预先准备的 EDID(分辨率/帧率可选,不填更简单)——步骤就是准备 EDID 文件→放到 /usr/lib/firmware/edid→把 drm.edid_firmware=HDMI-A-1:edid/myvirt.bin video=HDMI-A-1:e 写进内核启动参数,更新 grub 或 systemd-boot 后重启系统→桌面已出现该虚拟显示器→Sunshine 里填对应显示器 ID 完成串流。用毕可在 KDE 设置里直接关掉虚拟显示器节省资源。
Linux下Steam无法添加外置库(驱动器)
文章指出 Steam 出现“Cannot add library folder because of missing execute permissions”是因为外置分区挂载时用了包含 noexec 的默认参数,导致无法执行脚本。解决方法:编辑 /etc/fstab,在对应挂载行的参数末尾补加 exec,且确保 exec 出现在 user/users 之后;保存生效即可让 Steam 正常创建并运行脚本。
定位Linux下环境变量来自哪个文件
文章介绍了快速定位系统中被遗忘的环境变量来源的方法:先用 printenv 查看变量键值,再用一条统一的 grep 命令搜索所有常见配置文件(/etc/environment、~/.bashrc 等)中的 export 语句或变量值;示例以 fcitx5 相关变量演示,几秒内即可查到 /etc/environment 已集中设置,避免重复配置。
KDE下输入法配置的小细节
文章记录作者在 Arch+KDE Plasma 下以 Fcitx5 为框架配置中文输入的完整踩坑过程:先用 pacman 安装 fcitx5-im、configtool、chinese-addons、可选的 moegirl 词库与 Material 主题;在系统设置里启用 Fcitx5,KDE 自动写入环境变量,如仍被某些应用忽略,可手动在 /etc/environment 补充 GTK_IM_MODULE、QT_IM_MODULE 等六行以保证 GTK/Qt/游戏引擎识别;Wayland 下若 Chromium 类应用不生效,启动时加四个 Ozone/Wayland IME 参数;最后提醒在全局配置里把“开机自动激活”打开,免去手动 Ctrl+Space,同时列出无法切换、候选不显示、输入法图标丢失等常见故障的逐项检查要点。
Wayland下的KDE,软件置顶&OSD功能丢失的解决办法
文章解释了在 Wayland 下“窗口置顶”功能失效的根因:Wayland 协议不允许客户端直接操控窗口管理行为,而相关扩展未统一或尚未普及;GNOME 不支持“always-on-top”,KDE 则部分支持。作者提供的解决方案是借助 KDE 的“窗口规则”:在 KDE Plasma 的“系统设置→窗口管理→窗口规则”里建立一条匹配规则,按标题关键字把特定窗口强制置为“始终置顶”,并分享了可直接导入的 .kwinrule 配置示例;同理,第三方 Bilibili 客户端通过标题添加 “[Wayland置顶]” 标记,再由规则触发,也能实现 Wayland 环境下的置顶。
Linux下无法显示表情文字
文章提供了在 Linux 各发行版安装 Noto Color Emoji 彩色表情字体的命令:Ubuntu/Debian 用 `apt install fonts-noto-color-emoji`;Fedora 用 `dnf install google-noto-emoji-color-fonts`;CentOS/RHEL 先装 EPEL 再 `yum install google-noto-emoji-color-fonts`;Arch/Manjaro 用 `pacman -S noto-fonts-emoji`;openSUSE 用 `zypper install google-noto-emoji-color-fonts`。安装后可通过 `fc-list | grep "Noto Color Emoji"` 验证字体是否已注册。
Linux下中文字体显示异常(日文字形)
文章指出,系统使用 Noto 字体时常把日文字形排在中文之前,导致中文显示异常。解决方法是编辑 /etc/fonts/conf.d/64-language-selector-prefer.conf,将 Noto Sans CJK SC 与 Noto Sans Mono CJK SC 的优先级置于 JP 或 TC 之前,保存后即可恢复正确中文字形。
记录在LXC容器内配置docker和1panel面板
用户为了在家庭NAS上搜索并管理老照片,决定用Immich建一个私图库,并选了“特权LXC + 1Panel + Docker”这套组合。过程中踩了四个坑:最初普通LXC不能挂SMB,重建特权LXC后又连不上终端;配置/etc/fstab后SMB搞定;装1Panel、加第三方应用源后能在商店找到Immich;点安装却遇到Docker容器起不来且日志为空,最后在宿主机上改LXC配置(lxc.cgroup2.devices.allow: a 并把 lxc.cap.drop 置空)重启容器后才一切正常。经验是在特权LXC里跑Docker记得补这两条参数。