BNU-FZH

fengzhenhua@outlook.com

ArchLinux是一款灵活、强大、可定制的Linux发行版,提供丰富的软件包和工具,支持滚动更新和多种桌面环境,拥有庞大的社区支持和方便的包管理器,适合各种用户需求和使用场景。Endeavour 是一个基于ArchLinux的轻量级和用户友好的发行版,预装了桌面环境和预配置的软件包,旨在提供一个无忧的ArchLinux体验。

阅读全文 »

随着Fcitx5的升级,它的功能不断完善,根据 Fcitx5 ArchWiki 的记录,我的 Gnome Wayland环境(其他桌面环境请参考前述Fcitx5 ArchWiki)需要做出如下设置:

  1. 修改整体环境变量 /etc/environment, 去掉 GTK_IM_MODULE=fcitx, 但是务必保留 XMODIFIERS=@im=fcitx 和 QT_IM_MODULE=fcitx , 于是我的 environment 文件为:
/etc/environment
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
# 为支持Xwayland支持Fcitx5
XMODIFIERS=@im=fcitx
# 2026年10月24日,已经按官方推荐不再设置这一变量
# GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
# set nvidia force GBM as a backend
GBM_BACKEND=nvidia-drm
__GLX_VENDOR_LIBRARY_NAME=nvidia
MUTTER_DEBUG_KMS_THREAD_TYPE=user
# For firefox language
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
  1. 为支持运动于Xwayland的GTK软件,在~/.config/gtk-3.0/settings.ini和~/.config/gtk-4.0/settings.ini中添加:
1
2
[Settings]
gtk-im-module=fcitx
  1. Gnome Wayland 输入框精准定位

由于Gnome的工作原理,使得Fcitx5暂时不能完成在一些程序中的输入框精准定位和无法在gnome-shell UI上显示候选窗口,则需要安装插件gnome-shell-extension-kimpanel-git, 即

1
paru -S gnome-shell-extension-kimpanel-git
  1. 参考文献:

2026年10月25日我决定升级一下我的 Next 主题,因为2026年的更新一直没有做,有些性能改善和bug修复肯定有不少,并且版本号从 NexT 8.21.0 一路升级到了 NexT 8.29.0, 但是在 8.22.0 的 Bug Fixes 部分记录了一项改动

1
Use auto-fill in link-grid

这个操作的逻辑是根据浏览器的缩放程度自动判断link-grid的列数,但是对于我的博客来讲,我希望维持原来的两列。于是使用diary -tu升级主题后,进一步修改themes/source/css/_common/scaffolding/tags/link-grid.styl 文件中

修改这个自动判断模式
1
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));

为

恢复为原来的两列模式
1
grid-template-columns: 1fr 1fr;

完成上述修改后,依次执行:

注意依次执行下述命令
1
2
3
4
5
6
7
8
9
diary -tu
cd ~/.DY_SCE/fungzhenhua.github.io.local/
yarn upgrade
hexo clear
hexo g
git add .
git commit -m "theme update"
git push -f
diary -d

[!WARNING] 由于hexo-renderer-pandoc插件内部硬编码了--mathjax, 而当前Pandoc 3.11中已经标记--mathjax为Deprecated,所以编译时会出现警告提示。这个问题等下次升级Pandoc后或许将变的不可执行,所以需要等hexo-renderer-pandoc升级后解决,这点需要特别注意。

2026年9月19日,第43届全国中学生物理竞赛在山东大学中心校区举行,近日竞赛成绩已公布。淄博市在此次竞赛中表现优异,共有3人获得一等奖,24人获得二等奖,20人获得三等奖。其中,淄博实验中学的高二学生孔令旭和丁信嘉,以及桓台一中高三学生田真旭荣获全国一等奖。冯振华和曹子明两位老师荣获“山东省物理竞赛优秀指导教师”称号,淄博实验中学和桓台一中则被授予 “金牌学校”称号。

复赛进入考场前师生合影留念

左起:蔺昕泽、张晧宇、石旭冬、宋锦尧、蔡郑锦晖、王泽畅、冯振华(教练)、乐轩羽、张汝森、孔令旭、丁信喜、陈淇威、李泽佳

入场前冯教练进行考前动员

考前动员

省一等奖获得者孔令旭、丁信嘉与冯振华老师合影

左起:丁信嘉、冯振华(教练)、孔令旭

考后复盘

考后复盘

第43届全国中学生物理竞赛淄博实验中学成绩

  • 省一等奖:孔令旭(高二)、丁信嘉(高二)
  • 省二等奖:陈淇威(高二)、宋锦尧(高二)、张汝森(高二)、王泽畅(高二)、张浩宇(高一)、蔺昕泽(高一)
  • 省三等奖:石旭冬(高一)、蔡郑锦晖(高二)、乐轩羽(高一)

令人欣喜的是,本届全国中学生物理竞赛中,实验中学参赛的选手全部为高一和高二的学生,没有高三学生参赛。与此同时,其他学校获得省一等奖的多为高三学生,因此高二的两位同学荣获省一等奖尤为难得,特此表示祝贺!去年,淄博实验中学进入复赛的高三学生有6人,高二学生只有2人,而今年高二学生有8人进入复赛,高一学生也有4人进入复赛。这样的佳绩离不开同学们的辛勤付出和努力,祝愿学生们在未来不断突破自我,取得更加辉煌的成就。

众所周知 Gnome 桌面环境非常成熟,但是每次大版本升级都会导致大量的插件失效,如果等足够长的时间再更新则不能保证系统处理最新状态,如果不等则无法正常工作,不同的插件需要等的时间也不一样。基于上述考虑,我决定从 Gnome3 切换到 Cosmic 桌面环境,其优点是 Cosmic 从零开始使用 rust 语言创建,所以其安全性高、速度快。但是, Cosmic 是一款可以工作中使用,然而还在发展中的新系统,所以就有了本文,本文的目的是记录从使用到完善过程中的问题。

删除 Gnome 切换到 Cosmic

  1. 启用Cosmic显示管理器cosmic-greeter
1
sudo systemctl enable cosmic-greeter
  1. cosmic-files和Gnome都需要gvfs, 所以需要保留gvfs, 只删除Gnome, 最安全的方法是在删除列表中排除 gvfs, 即
1
sudo pacman -Rns gnome gnome-shell gnome-browser-connector gnome-shell-extension-blur-my-shell obs-gnome-screencast --assume-installed gvfs
  1. 后续清理
1
sudo pacman -Rns $(pacman -Qtdq)
  1. 停用并禁用GDM
1
sudo systemctl disable --now gdm.service

移除WhiteSur主题

  1. 切换到WhiteSur源目录
如果已经删除了源目录,则用下述命令重新下载
1
2
git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git
cd WhiteSur-gtk-theme
  1. 移除GTK主题: ./install.sh -r

  2. 移除GDM登录主题:sudo ./tweak.sh -g -r

  3. 移除Libadwaita主题: ./install.sh -l -r

  4. 移除Firefox主题: ./tweak.sh -f -r, 需要选关闭Firefox再执行这条命令。

  5. 手动删除残留文件:

1
2
3
4
5
# 删除系统级残留(需要管理员权限)
sudo rm -rf /usr/share/themes/WhiteSur*

# 删除用户级残留
rm -rf ~/.themes/WhiteSur*

多媒体

尽管Cosmic中也有默认的音乐播放器和视频播放器,但是仍然不好用,于是需要安装简洁、轻量级的音乐播放器Amberol和视频播放器Celluloid, 执行命令

1
sudo pacman -S amberol celluloid

设置截屏快捷键

  1. 打开Cosmic设置

  2. 进入输入设备(Input Devices)→键盘(Keyboard)

  3. 点击查看和自定义快捷键(View and customize shortcuts)

  4. 在列表中找到系统快捷键类别,然后在右侧列表向下滚动找到截图(Take a screensh)选项。

  5. 进入截图后,选中添加另一个快捷键 。

  6. 按下F7, 则使用F7打开截图设置完毕。

Cosmic 主题

打开网站Cosmic Themes, 选中合适的主题下载到你想要的目录。然后点击设置→外观→导入,选中下载的主题,则主题设置完毕。

问题汇总

每次开机密钥环总是要求输密码

cosmic-greeter基于greetd, 其PAM 配置文件通常是/etc/pam.d/cosmic-greeter。不过,根据Arch Wiki的讨论,其打包配置有时会复用/etc/pam.d/login这个文件。 因此,为了确保生效,需要同时检查并编辑这两个文件。

  1. 检查两个文件:
1
ls -l /etc/pam.d/cosmic-greeter /etc/pam.d/login

[!WARNING] 如果/etc/pam.d/cosmic-greeter不存在,可以参照其他显示管理器的做法,创建一个指向login的符号链接,或直接编辑/etc/pam.d/login。

  1. 编辑PAM文件以集成gnome-keyring: 向上一步确定的PAM(两个), 中添加pam_gnome_kerying.so模块。在login和cosmic-greeter文件中添加以下两行内容:
  • 在auth部分的末尾添加:
1
auth optional pam_gnome_kerying.so
  • 在session部分的末尾添加:
1
session optional pam_gnome_kerying.so auto_start

[!WARNING] 注意: 添加时请保持文件原有结构,将新行插入到对应区块的末尾。一个配置好的文件示例片段如下:

1
2
3
4
5
6
7
#%PAM-1.0
auth requisite pam_nologin.so
auth include system-local-login
auth optional pam_gnome_keyring.so
account include system-local-login
session include system-local-login
session optional pam_gnome_keyring.so auto_start

[!WARNING] 自动解锁成功的关键:登录系统使用的密码,必须和“登录”密钥环(Login Kerying)的密码完全一致。如果不一致,则需要使用seahorse工具手动修改密钥环的密码,使之与登录密码匹配。事实上我仅修改了login文件,测试成功了。同时,Cosmic桌面环境正在开发自己的原生密钥环服务oo7, 待其成熟后也可以迁移到oo7提供的pam_oo7.so模块用于自动解锁。

文件管理器不显示移动硬盘

这个问题主要是由于原来系统安装的是Gnome3, 当删除Gnome3后也把cosmic-file依赖的gvfs,udisks2和gvfs-mtp卸载了,于是安装这三个命令后问题解决:

1
sudo pacman -S gvfs gvfs-mtp udisks2

系统没有移除U盘选项

这主要是因为cosmic-file当前不支持该功能,但可以使用专门用于管理驱动的小程序cosmic-ext-applet-drives-git来解决这个问题。

1
paru -S cosmic-ext-applet-drives-git

由于此小程序依赖于 libcosmic,但我使用 git@github.com 配置的 SSH 帐号执行上述命令时未成功。因此,我将 ~/.gitconfig 文件中与 https://github.com 相关的 SSH 命令注释掉,直接使用 https 协议进行下载。

Guake终端下Fcitx5输入面板4k显示器下过小的问题

  1. 打开Fcitx5配置

  2. 切换到附加组件

  3. 切换到经典用户界面

  4. 所有字体设置为15

  5. 勾选在X11上针对不同屏幕使用单独的DPI

  6. 固定 Wayland 的字体 DPI 为 192

  7. 不勾选在Wayland下启用分数缩放

  8. 点确定, 然后找到Fcitx5在状态栏中的图标,右键,重新启动Fcitx5.

参考资料

今天决定把我的 Thinkpad T490 的双系统改为单一的 Windows10LTSC2021, 原因是我的台式机已经配置了 ArchLinux + Windows11 双系统,平时的办公主力为 ArchLinux , 如果笔记本使用 Windows10LTSC2021, 则在 Windows 下的工作直接使用笔记本办公即可。但是,在安装完成 Windows10LTSC2021 后发现输入法的候选框不显示,这是 Windows10LTSC2021 的一个已知的 Bug, 其根本原因在于,微软在精简这个版本时,不小心删除了新版自由软件拼音输入法所依赖的 桌面桥运动时(Desktop Bridge Runtime) 组件。因为缺少必要的运行库,所以输入法就无法正常显示候选框。

方案一:切换到旧版输入法

这是最快捷的临时解决方案,能让输入法立刻恢复正常,操作步骤为:

  • 在任务栏右下角右键点击“中/英”输入法图标,选择设置
  • 在设置窗口中点击常规
  • 找到兼容性部分,打开使用以前版本的微软拼音输入法开关。

方案二:安装缺失的依赖库(更彻底)

这是从根源上解决问题的方法,并且已经被广泛验证有效。其步骤为:

  1. 下载文件:依赖库文件Microsoft.VCLibs https://dl.lancdn.com/landian/soft/vclibs
  2. 解压文件:将下载的压缩包解压,你会得到两个.Appx格式的文件。
  3. 放置文件:将这两个.Appx文件复制到C:盘的目录下。
  4. 安装文件:
    • 右键点击开始菜单,选择Windows PowerShell(管理员)或终端(管理员)
    • 在打开的窗口中,根据你的系统类型,输入以下命令并回车
      • 64位系统
        PowerShell
        1
        Add-AppxPackage -Path "C:\Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe.Appx"
      • 32位系统
        PowerShell
        1
        Add-AppxPackage -Path "C:\Microsoft.VCLibs.140.00_14.0.30704.0_x86__8wekyb3d8bbwe.Appx"
  5. 重启电脑:命令执行成功后,重启电脑即可生效。

[!WARNING] 如果提示“部署失败”或“资源正在使用中”,可以重启电脑后再试一次。

当前稀沃白板在中学普及度很高,教师每天都要讲课并书写板书,将每个阶段的讲义合成为一个PDF文件发给学生是一个非常有意义的工作。为实现此目的我编写了在Linux下合成PDF的Shell脚本seewo.sh, 其源码为

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
#! /bin/sh
#
# Program : seewo.sh
# Author : fengzhenhua
# Email : fengzhenhua@outlook.com
# Date : 2026-06-23 11:02
# CopyRight: Copyright (C) 2026-2030 Zhen-Hua Feng(冯振华)
# License : Distributed under terms of the MIT license.
# Seewo Board Synthesizer: Automated Teaching Whiteboard Content Compiler
#
# 调入私有函数库
source ~/.Share_Fun/Share_Fun_KeySudo.sh
source ~/.Share_Fun/Share_Fun_Install.sh
# 保存脚本变量
SW_ARGS=( "$0" "$@" )
SW_VERSION="${SW_ARGS[0]##*/}-V1.7"
SFI_INSTALL ${SW_ARGS[1]} ${SW_ARGS[0]} $SW_VERSION
GIT_DEPEND imagemagick
# 输出PDF文件命名
if [[ ${SW_ARGS[1]} == "" ]] ; then
OUTNAME=${PWD##*/}
else
OUTNAME=${SW_ARGS[1]}
fi
shopt -s globstar nullglob # globstar 确保目录穿透深度,nullglob 确保没有匹配到文件,通配符返回空
SW_FILES=( **/*.{png,jpg,jpeg} )
shopt -u globstar nullglob # 恢复默认设置
# 如果未发现图片则不执行操作,发现图片则合成pdf
if [ ${#SW_FILES[@]} -gt 0 ]; then
readarray -t sorted < <(printf '%s\n' "${SW_FILES[@]}" | sort -V)
magick "${sorted[@]}" "./${OUTNAME}.pdf"
else
echo "当前目录及各级子目录内均未发现PNG、JPG和JPEG格式图片,不执行合成操作!"
fi

[!WARNING] 私有函数库Share_Fun_KeySudo与Share_Fun_Install可以到fungzhenhua/script下载,如果不安装则注释掉source的两行及GIT_DEPEND行,同时自行安装好imagemagick即可。

直接复制Word中的图片可能会因为剪贴板格式转换或Word默认的压缩机制导致画质下降和背景丢失。

docx 文档提取高清图片

为了提取无损且高清的原图,可以将.docx文件修改为.zip后解压。这种方法能够确保图像不失真。这是因为现代的 .docx 文件本质上是一个包含多种资源(包括原始图片)的压缩包。通过解压,可以直接获取未经任何处理的原始高清图片。

操作步骤:

  • 备份文档:建议先复制一份需要提取图片的Word文档。
  • 更改后缀名:将文档的后缀名从 .docx 改为 .zip(如果看不到后缀名,需在文件夹选项中开启“显示文件扩展名”)。
  • 解压文件:使用解压缩软件(如7-Zip、WinRAR等)打开或解压该ZIP文件。
  • 提取图片:在解压出的文件夹中,依次进入 word → media 目录。这里存放了文档中所有的原始图片,您可以直接将它们复制出来。
  • 注:此方法仅适用于 .docx 格式,不适用于老旧的 .doc 格式。

doc 文档提取高清图片

由于老旧的 .doc 格式并非基于 XML 的压缩包结构,因此无法直接使用“修改后缀为 ZIP”的方法。一种最简便的方法是使用MsOffice将.doc文档转换为.docx文档,然后再修改后缀为.zip, 使用解压缩软件解压缩。另一种方法是另存为网页,这是最古老且最可靠的方法,能够很好的保留图片的原始画质。

操作步骤:

  • 用 Word 打开需要提取图片的 .doc 文档。
  • 点击左上角的“文件” → “另存为”。
  • 选择好保存位置,在 “保存类型” 下拉菜单中,选择 “网页 (*.htm; *.html)”(注意:请勿选择 “单个文件网页”),然后点击保存。
  • 保存后,系统会在同目录下自动生成一个名为 “[文档名]_files” 的文件夹。打开该文件夹,里面就整齐排列着文档中的所有原始高清图片。

问题描述

今天使用 Neovim 打开它自己的配置文件时,出现报错信息

1
LSP[lua_ls] Your workspace is set to `/home/foobar`. Lua language server refused to load this directory. Please check your configuration.[learn more here](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder)

这个错误信息的意思是,Lua 语言服务器(lua_ls)被你的编辑器(如 VS Code 或 Neovim)告知,要将整个 /home/foobar 目录作为工作区进行扫描,而服务器由于性能或安全方面的考量,拒绝了这个指令。这通常是一个配置问题,可以通过正确设置工作区解决。

解决方案

在你的Neovim配置目录下创建.luarc.json文件,明确告诉lua_ls这就是项目根据目录。即

~/.config/nvim/.luarc.json
1
2
3
4
5
6
7
8
9
{
"$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
"runtime.version": "Lua 5.1",
"workspace.ignoreDir": [
"node_modules",
".git",
"dist"
]
}

其中:runtime.version一行,指明了兼容Lua 5.1版本。同时使用workspace.ignoreDir来忽略无关目录,以提高性能,所以需要配置这个忽略列表。

为什么之前会报错?

  • 默认情况下,nvim-lspconfig 的 lua_ls 如果没有找到项目根目录,会回退到使用当前工作目录(vim.loop.cwd())。如果你是在主目录下启动 Neovim(例如直接运行 nvim ~/.config/nvim/init.lua),那么当前工作目录就是 /home/foobar,导致 lua_ls 被设置为扫描整个主目录,从而触发拒绝。

  • 创建 .luarc.json 后,root_pattern 会优先匹配,从而正确设置工作区。

  • 按上述步骤操作后,错误信息就会消失,LSP 功能也能正常使用。

今天打开msn的网页时,遇到了问题:

[!WARNING] www.msn.cn 启用了被称为 HTTP 严格传输安全(HSTS)的安全策略,Firefox 只能与其建立安全连接。您无法为此网站添加例外,以访问此网站。

这个问题的根源在于网站启用了一项名为 HTTP 严格传输安全 (HSTS) 的安全策略。这本身是一种网站保护用户安全的机制,可以强制浏览器始终使用加密的 HTTPS 连接。简单来说,主要原因是 www.msn.cn 很可能被加入了各大浏览器(包括 Firefox)共同维护的“HSTS 预加载列表”中。这个列表被硬编码在浏览器里,针对列表中的网站,浏览器会强制执行 HTTPS 连接,并且不允许用户添加例外,所以您无法通过常规方式访问。要解决这个问题,您可以尝试以下几个方法

在 Firefox 中清除网站HSTS记录

如果您的电脑本地并没有访问过 www.msn.cn 的历史记录,可以尝试通过“忘记此网站”功能来清除可能存在的 HSTS 策略:

  1. 按下 Ctrl + H 打开 Firefox 浏览器中的历史记录侧边栏。
  2. 在侧边栏的搜索框中输入 msn.cn 查找相关记录。
  3. 右键点击搜索结果并选择“忘记此网站”。
  4. 在弹出的确认框中再次点击“忘记”。

[!WARNING] 此操作会清除 Firefox 本地存储的关于该网站的所有信息,包括强制的 HSTS 规则。

修改高级配置

  1. 在 Firefox 地址栏输入 about:config 并回车。
  2. 点击“接受风险并继续”按钮。
  3. 在搜索框中输入 network.stricttransportsecurity.preloadlist。
  4. 双击找到的首选项,将其值从 true 改为 false。
  5. 修改后,无需重启 Firefox,即可再次尝试访问 msn.cn。

[!WARNING] 如果以上方法都无法解决问题,您可以通过修改 Firefox 的高级配置来强制禁用整个 HSTS 预加载列表。请注意,这会显著降低您浏览器访问其他网站的安全性,请您谨慎操作并自行承担风险。