#clash #ssh

Clash 开启 TUN 模式后,SSH 经常连不上服务器,通常是因为代理服务商默认禁止转发 22 端口流量。

之前一直是通过给每个服务器域名或 IP 加 DIRECT 白名单,后来发现更省事的做法是直接按端口分流,将 22 端口设为直连。

在 Clash Verge 的配置扩展(如订阅的 Rules 或全局 Merge)中添加前置规则,订阅更新也不会被覆盖:

prepend:
  - DST-PORT,22,DIRECT
#omarchy #wechat

在 Omarchy 里面运行微信的话,如果是 dwindle 模式,默认窗口平铺的话,微信 App 的宽度有点大。 可以通过脚本把宽度固定回去,也可以在 Hyprland 配置里预置启动时的 width 比例; 微信里点开的窗口也可以设置 floating 模式,例如打开微信里面的图片通过 floating window 显示,这样更符合个人习惯。

相关代码:omarchy-fix-wechat-width

~/.config/hypr/hyprland.lua 示例:

-- WeChat: start at a ~700px chat column in the scrolling layout (workspace 3).
o.window("wechat", { scrolling_width = 0.37 })

-- WeChat popups (image/video preview, etc.): float them instead of tiling.
-- `negative:` passes when the regex fails, so the main "Weixin"
-- window keeps tiling.
o.window({ class = "^wechat$", title = "negative:^Weixin$" }, { float = true })
#monorepo #difit #code-review

最近公司代码整合成 monorepo,同时包含前端和后端。一个 feature vibe coding 出来的 diff 太大,GitHub / GitLab 的 web UI review 显示内容太多, 效果就不是显示内容太多, 效果就不是那么好了.

经过调研, 发现 difit 工具挺不错的, 目前正在使用

  • UI 风格和交互像 github PR 一样
  • 可以通过左侧的 tree 之间点击父节点,标记这个子节点都 reviewed
  • Review comment 会转变成 prompt, 可以集合一起发送给 AI Agent
  • 由于 difit 是本地启动一个 web 段服务, 所以每次修改只需要 commit, 不需要 push
npx difit --clean @ main
## `@` 是当前 HEAD。
## --clean reviewed 标记清除
#apple-watch #battery

Apple Watch 耗电一直比较快,有时候撑不过一天。发现屏幕一直亮着,之前没管过。搜了一下,改了两个设置:

  • Settings > Display & Brightness > Always On → Off
  • Settings > Display & Brightness > Wake Duration → Wake for 15 Seconds

先记一下,看看效果。

#omarchy #linux

公司的显示器接了 HDMI 转换头,有时锁屏后再点亮就会花屏、颜色错乱。之前让 AI 写了个 fix-monitor-colors 脚本修复,起初在 terminal 里手动跑就行,但桌面焦点常常不在 terminal,每次都得先切过去再跑。

后来想直接在 Omarchy Menu 里面加一个快捷启动项会更方便,直接让 AI 改去做,然后它在 ~/.config/omarchy/extensions/omarchy-menu.jsonc 里配置一个菜单项就行了

只踩了一个坑:脚本在 dotfiles/bin,PATH 加在 .bashrc 里;而菜单命令是非交互 login shell,会跳过 .bashrc。把 PATH 挪到 .bash_profile 就好了。

@dhh 最近在 X 上推广的 Omarchy quattro 话题很热。当年没跟上 Rails 的脚步,这次总算抢先用上了他做的 Omarchy ——用下来非常好用,不愧是写出 Rails 的那个男人。#Omarchy

#fcitx #tmux #omarchy

foot + tmux 里突然无法切换中文输入法,浏览器等别的应用却都正常。查了一圈发现是快捷键冲突:omarchy 里 tmux 的 prefix 默认是 C-Space,而 fcitx5 切换输入法的默认触发键也是 Ctrl+Space。在 tmux 里按 Ctrl+Space 会被 tmux 先截走当成 prefix 用,fcitx5 的切换就不生效了。

默认的 Ctrl+Space 跟 tmux prefix 冲突,既然要输入中文,干脆只保留 rime 一个输入法(DefaultIM=rime,去掉 keyboard-us),再从 fcitx5 的 TriggerKeys 里删掉 Control+space,不在系统层切换输入法。中文/英文切换直接在 rime 里用 Shift,跟我的输入习惯更贴合,tmux 保留 C-Space 前缀,各不相争。

闲置时还有之前的 fcitx-idle-english 脚本自动切回英文。

#fcitx #ime #linux

中文输入法在组词时会进入预编辑(preedit / composition)状态:拼音已打出,字还没上屏。一旦停在中文模式,有些场景就很别扭——比如浏览器里搜英文关键词,一打就进组词;Launcher 里找应用名时也一样。

于是试了个想法:空闲时自动切回英文。用 AI 写了个脚本 fcitx-idle-english,先用用看,看看能不能适应这个模式。

#ai #linux #wechat-devtools

在 Omarchy Linux 上,微信开发者工具的界面比之前在 Ubuntu 上大很多,又没有调整整个窗口缩放的快捷键;问了 AI 后,它找到了一个启动参数,还直接帮我写进 .desktop 启动器,从 Launcher 打开时就会自动缩小,挺有意思。

Exec=wechat-devtools --force-device-scale-factor=0.85 %U

现在的工作方式已经完全变了:有什么不懂,先问 AI。感觉自己解决问题的能力也变强了。

#agentic-coding #yolo-mode #superpowers

在 agentic coding 时,现在更倾向于直接开启 YOLO mode,这样不容易漏掉确认,效率更高。

然后通过 git worktree 开发多个 feature,或者跨项目开发,使用 superpowers 定义好 spec 然后让 Agent 执行,最后直接看效果。

下面是 Claude 和 Gemini 开启 YOLO mode 的命令。

claude --dangerously-skip-permissions
gemini --yolo # Ctrl + Y
#ai #agents #design

最近的开发方式已经变成 Agent First:本站绝大部分代码由 agent 编写,人负责 review 和把方向。为了让 agent 更稳定、高效地工作,我为这个网站添加了 AGENTS.md 与 DESIGN.md 来探索和实践。

设计文档的组织可参考 GitHub 的 awesome-design-md。

#first

I should publish more thoughts and record them on my website.