软件问题

缩放

niri 默认配置

编辑 ~/.config/niri/...,其中的 output - scale

但是对于 X11 旧应用,或没开启 Wayland 模式的 Electron 应用可能会变得模糊。这是因为 Wayland 把它们放大时用了简单的线性插值。

对策:

  1. 强制使用 Wayland 模式
    • Chrome/Edge: 地址栏输 chrome://flags  Preferred Ozone platform  Wayland。
    • VS Code / Electron 应用: 启动参数加 —ozone-platform=wayland。
    • Obsidian: 同样加参数。
  2. 如果必须用 X11 应用且不想模糊
    • 这很难办。Niri 目前处理 XWayland 缩放的方式就是拉伸。
    • 要么忍受模糊,要么把 scale 设为 1.0,然后去调整 字体大小 (Font Size) 而不是 屏幕缩放

调整 GTK 缩放

直接调整 GTK 的字体缩放因子:

# 1.2 表示字体放大 20%
gsettings set org.gnome.desktop.interface text-scaling-factor 1.2

flatpak 下的 obsidian

如果直接通过 kanshi 调整 scale,obsidian 在 flatpak 中通过 xwayland 兼容层运行,不支持 x11 的分数缩放,故直接 1.0 缩放,然后渲染为更大的,导致模糊。

解决方法:强制设置为 wayland

# 1. 允许访问 Wayland Socket (通常默认开启,但为了保险)
flatpak override --user --socket=wayland md.obsidian.Obsidian
 
# 2. 注入 Electron 标志,强制使用 Wayland 渲染
flatpak override --user --env=ELECTRON_OZONE_PLATFORM_HINT=wayland md.obsidian.Obsidian

可以通过 flatseal 可视化管理

无法打开软件

niri 熄屏后,发现 linuxqq、wechat、obsidian 全都打不开了……查了下资料,好像是对 electron 的兼容有问题,无解。

于是用 flatpak 重装了这些应用,除了 obsidian 都可以打开了。还是没办法,换回 kde 了

找到了解决方法:删除crash_files文件夹下的文件就好了,并将其设为只读可以避免问题复现。

sudo rm -rf ~/.config/QQ/crash_files/ && sudo chattr +i ...

输入法问题

漏字

在 obsidian 中打字会出现漏出字母(主要是元音)的现象:

如果应用(Obsidian)和输入法框架()之间的通信链路(即环境变量)被 Flatpak 沙盒切断或配置错误,应用可能只接收到部分错误的输入信号,导致预编辑的拼音字符丢失,最终输出的汉字也就不完整了。

解法:强制指定环境变量:

flatpak override --user --env=GTK_IM_MODULE=fcitx --env=QT_IM_MODULE=fcitx --env=XMODIFIERS=@im=fcitx md.obsidian.Obsidian

雾凇大写错误

Rime 自身也有一套逻辑处理 CapsLock。如果你发现按下 CapsLock 后输入法图标直接变灰(禁用了),可能是 Rime 的全局设置问题。

  1. 进入你的 Rime 配置目录(通常是 ~/.local/share/fcitx5/rime/)。

  2. 创建或编辑 default.custom.yaml

  3. 加入以下代码,强制 CapsLock 只做“切换大小写”,不干扰输入法状态:

patch:
  ascii_composer/good_old_caps_lock: true
  ascii_composer/switch_key:
    Caps_Lock: noop  # noop 代表不做任何 Rime 内部状态切换
  1. 保存后,右键点击输入法图标选择 “部署” (Deploy) 或重启 Fcitx5。

桌面环境

niri 还是不太行,先弃用了。

参看KDE Plasma,Sway配置

亮度

ddcutil setvcp 0x10 + 5 --display 1 # 变亮

软件使用

下载

aria2:多线程,走代理

qibit 下磁力

yt-dlp:下载视频

代理

参看设置代理

Java版本

可以用 archlinux-java 进行版本管理

archlinux-java status  
...
sudo archlinux-java set java-11-openjdk

Burp Suite 激活

参考 https://github.com/mikhailde/burpsuite-pro-archlinux

jdk-21 是可以的。

但是缩放有问题,编辑下 zshrc:

export JAVA_TOOL_OPTIONS="-Dsun.java2d.uiScale=2.0 -Dsun.java2d.dpiaware=false"
  • -Dsun.java2d.uiScale=2.0: 将 缩放强制设置为 200%。l
  • -Dsun.java2d.dpiaware=false: 这是关键。它告诉 不要尝试从操作系统(即 )获取 或缩放信息。

合并pdf

用 pdfunite

pdfunite input1.pdf input2.pdf input3.pdf output_combined.pdf

终端 vim 模式

# bash
set -o vi
# zsh
# 启用 Zsh 的 vi-mode
bindkey -v
 
# 可选:设置初始模式为 Insert 模式
# bindkey -a
 
# 提示:你可能需要重新定义一些快捷键,例如:
# bindkey '^[[A' history-beginning-search-backward

IDA-PRO

ida-pro安装:https://archive.org/details/ida-pro_91_x64linux

破解:https://github.com/CrackerCat/IDA-Patcher-

安装后,main.py 有一点问题,要改一下 now.year,然后sudo python main.y -p /opt/ida-pro 即可

系统管理

终止进程

pkill [-n] name 知道进程名的情况下使用,会自动查找对应进程.n 表示发送的信号

killall [-I] name 匹配更精细,I 表示忽视大小写终止 name 进程

ps aux | grep name or pgrep name 查找进程名

kill <pid> 给制定 pid 发送信号

查看程序错误信息

空间清理

archlinux 空间清理 pacman、yay 等包管理器会留下很多缓存:

# 彻底删除缓存
sudo pacman -Scc
 
# 仅保留最近的3个版本,删除其余所有(推荐配置)
paccache -r
 
# 删除所有已卸载包的缓存版本(清理幽灵依赖)
paccache -ruk0
 
# 递归删除所有孤立依赖
pacman -Rns $(pacman -Qtdq)

控制日志大小:

# 仅保留最近两周的日志
journalctl --vacuum-time=2weeks
 
# 或者限制日志总大小为 500M
journalctl --vacuum-size=500M

扫描占用:

ncdu /
# 重点看各种 cache

docker:

# 销毁所有未使用的镜像、容器、网络
docker system prune -a

终端中,程序运行会产生三种流:stdin,stderr,stdout,文件描述符分别为 0,1,2 而 stderr 一般不会直接显示,所以需要重定向出来看:

<command> 2> error.log

对于后台运行的程序,看系统服务日志:

journalctl -u name -f f 选项会滚动最新日志

部分程序有自定义日志文件:

tail -f /var/log/name/error.log