Posts for: #Tools

Omarchy 用户常用的 mise 命令

mise 来自法语 “mise en place”,意思是把东西准备妥当。厨师开工前备好食材,mise 则在进入项目时备好正确版本的 Node.js、Python、Go 等工具,以及环境变量和任务。

它解决的问题很直接:不同项目需要不同版本;换电脑后,开发环境很难重新配齐;nvm、pyenv、rbenv 各管一摊。项目把配置写进 mise.toml,mise 会按目录自动切换。

普通用户常用这些命令:

mise ls                    # 查看已安装及当前使用的工具
mise use node@22           # 给当前项目安装并指定 Node.js 22
mise use -g node@22        # 设置全局默认版本
mise install               # 安装项目声明的全部工具
mise outdated              # 查看哪些工具可以升级
mise up                    # 升级 mise 管理的工具
mise run test              # 运行 mise.toml 里的 test 任务
mise doctor                # 检查配置和环境问题

临时用某个版本运行命令,可以写:

mise x node@22 -- node app.js

在 Omarchy 里,更新所有 mise 工具还可以用:

omarchy update mise

进入一个配置好 mise.toml 的项目,通常只需运行:

mise install
mise run test

用 AeroSpace 给 Mac 加上 Omarchy 式的平铺和快捷键

在 Omarchy 上习惯了 Super+Return 开终端,新窗口自动排在当前窗口旁边。回到 Mac 上想要同样的东西,发现缺两块:macOS 不会自动平铺新窗口,Alacritty 也没有分屏。

AeroSpace 一个工具补上两块。它是 i3 风格的平铺窗口管理器,不用关 SIP,自带全局快捷键,所以 yabai 和 skhd 都不用装。

brew install --cask nikitabobko/tap/aerospace

配置是一个 toml 文件,放在 ~/.config/aerospace/aerospace.toml。我配的键:

  • Cmd+Return:新开一个 Alacritty 窗口,自动平铺到当前窗口旁边
  • Cmd+Shift+Return:开浏览器
  • Cmd+Shift+F:开 Finder
  • Alt+H/J/K/L:切焦点,加 Shift 移动窗口
  • Alt+1 到 9:切工作区,加 Shift 把窗口送过去
  • Alt+F 全屏,Alt+R 进 resize 模式

开终端那一条走的是 alacritty msg create-window,在已经跑着的 Alacritty 进程里开新窗口,没在跑就用 open -a 拉起:

[mode.main.binding]
cmd-enter = 'exec-and-forget /Applications/Alacritty.app/Contents/MacOS/alacritty msg create-window || open -a Alacritty'
cmd-shift-enter = 'exec-and-forget open -a "Brave Origin"'
cmd-shift-f = 'exec-and-forget open -a Finder'

系统设置、Raycast 和 Finder 的复制进度窗设成浮动,其余全部平铺。首次启动要给 Accessibility 权限,给了才能动窗口。

[阅读全文]

VPS 从 NixOS 迁出后,我会选 Debian

我有一些服务放在虚拟主机上,以前一直跑 NixOS。最近我把 NixOS desktop 都删掉了,服务器上的 NixOS 还在,但我已经不再每天碰它。

NixOS 的配置能进 Git,换机器能重建,升级和回滚也有边界。服务多、机器多、配置经常改时,这一套很有用。

我现在的 VPS 规模不大,服务也相对稳定。上服务器多半是续证书、查日志、升级服务,或者处理故障。NixOS 的配置语言、包版本和模块机制,成了额外一层要记住的东西。

这次我会选 Debian。

Debian stable 的包不会频繁换大版本,安全更新会继续进入。Debian 13 的完整支持到 2028 年,LTS 到 2030 年。Debian 的发布页 也把 stable 作为生产环境的推荐版本。

Ubuntu 也可以。某个服务的官方安装文档只覆盖 Ubuntu,或者需要更近的新版本时,我会直接用 Ubuntu。Ubuntu Server 26.04 LTS 的免费安全和维护更新到 2031 年。官方支持周期在这里。

Arch 留给桌面。它采用滚动发布,系统要完整升级,部分升级不受支持。ArchWiki 的维护要求,对无人盯着的 VPS 不合适。

我会新开一台 Debian 13 虚拟主机迁服务,不在旧机上硬改发行版。服务配置放 Docker Compose,数据做异机备份;新机先恢复和验证,再切域名。旧 NixOS 机器留到恢复流程跑通后再下线。

先从最简单的一台开始。

TeamAI:给 AI 编程工具加一层团队协作

TeamAI 是腾讯开源的命令行工具。它把 Claude Code、Cursor、Codex、CodeBuddy 等 Agent 的 skills、rules、hooks、MCP 和团队知识放进一个共享 Git 仓库,通过评审后同步到成员本机。

资料日期:2026-09-08。功能与命令来自项目文档;Stars、Forks、Issue 数量是当天快照,未实际安装验证。

协议快照版本技术栈
MIT约 1.7k Stars、121 Forks0.22.0TypeScript / Node.js

它解决什么问题

个人 Agent 已经能做很多事,但一次踩坑、一个有效的 skill,常常只留在某个人的电脑上。不同工具的配置路径不一致,MCP 和 hooks 也难统一管理。

TeamAI 把这层团队工作方式放进 Git:团队维护 Harness(skills、rules、agents、hooks、MCP、env 等)和 learnings;成员通过 pull 获取更新;新增内容经 Merge Request 评审后再分发。它也会收集摩擦信号,支持回顾、周报和看板。

它不提供模型推理,也不是 Cursor、Claude Code 或 Codex 的替代品。它运行在这些工具旁边。

三层能力

层要解决的问题命令或功能
Team Execution让每个 Agent 使用团队约定init、pull、push;skills、rules、agents、hooks、MCP、env、packages
Team Context让 Agent 理解团队背景recall、learnings、代码库图谱、teamwiki、culture.md
Team Improvement把执行中的经验带回团队摩擦信号、session save、digest、dashboard、KB Health

分发与管理还包括 Roles、Tags、Sources、Packages 和 skill exclude。

[阅读全文]

Bark 是什么:给 iPhone 推自定义通知的极简通道

开源 App + 可选自建后端,用一条 HTTP 请求把消息打到系统通知栏。对「AI agent 跑完任务提醒我」这种场景,往往比钉钉/飞书/Telegram 机器人更短、更贴锁屏。

iOS onlyHTTP → APNs开源 + 免费
接收端是 Bark App(系统推送)你发请求,后端转苹果推送App 与 bark-server 均开源;公共服长期维护承诺

一句话

Bark(Finb/Bark)是一款 iOS App:装好后你会得到一个设备 key,之后任何脚本/服务器/Agent 只要访问类似 https://api.day.app/你的key/标题/内容 的 URL(或 POST JSON),消息就会以系统推送出现在 iPhone 上——App 不必一直在前台跑。

它解决的不是「团队 IM」,而是「把事件打到我自己的手机锁屏」。所以你说适合 AI agent 任务完成推送,方向是对的。

它怎么工作

步骤内容
1 · APPApp Store 装 Bark,打开拿到 device key(也可扫码/复制推送 URL)。
2 · 请求脚本对公共服 api.day.app 或自建 bark-server 发 GET/POST。
3 · 转发bark-server 把消息交给 Apple APNs(系统推送通道)。
4 · 到达iOS 弹出通知;可分组、点按跳 URL、归档历史等。

相对「自己接 APNs」:你不用管苹果开发者证书、HTTP/2、token 刷新。公共 Bark 把这些藏在 App/官方后端里;自建时多数人仍可继续用官方 App 的 APNs 能力(按项目文档部署 bark-server)。

[阅读全文]

从 Omarchy 截图,贴进远程 Mac 上的 herdr

问题

我的日常是:坐在 Linux(Omarchy)前面,ssh 到 Mac,在 Mac 上跑 herdr,里面开 Claude Code / Codex。

在 Linux 上截图,想贴给 agent 看,贴不过去。没有报错,没有 [Image #1],什么都没发生。

原因

SSH 只传文字。截图在 Linux 的剪贴板里,Mac 根本看不到。

ssh mac 之后再运行 herdr,herdr 整个跑在 Mac 上。它读的是 Mac 的剪贴板,不是我面前这台机器的。

这不是 Omarchy 的问题,也不是 herdr 的 bug。是架构决定的。

解法:反过来跑

在 Linux 上也装一个 herdr,用它作为客户端去连 Mac:

herdr --remote username@host

这样 herdr 客户端在 Linux 上运行,UI 从 Mac 那边流过来。剪贴板在本地,所以图片可以桥接过去:按 Ctrl+V,herdr 把 PNG 通过 SSH 传到 Mac,再把 Mac 上的文件路径贴进 agent 的输入框。agent 读路径就行。

谁跑在哪

这样做以后 herdr 两边都有,但分工不一样:

[阅读全文]

Omarchy 触摸板滚动加速

在 ThinkPad 上跑 Omarchy,触摸板滚动一直比 Mac 慢而平:手指快慢不同,页面走的距离都差不多。今天让 AI 查了一下,原因和改法都很短。

原因

Hyprland 把触摸板交给 libinput 处理。libinput 默认只给鼠标指针做加速,双指滚动是线性的,手指走多少页面走多少。Omarchy 在这之上还乘了一个 0.4 的系数(input.touchpad.scroll_factor),所以整体又慢了一截。Mac 的手感来自两样东西:一条按手速变化的加速曲线,加上抬手后的惯性滑动。

改法

libinput 有一个“custom”配置,可以给滚动单独画一条曲线。Hyprland 通过 accel_profile 和 scroll_points 两个选项把它暴露出来,Omarchy 的 Lua 配置里用 hl.device 可以只对触摸板生效,不影响小红点和外接鼠标。

在 ~/.config/hypr/input.lua 末尾加了这一段:

hl.device({
  name = "elan06b6:00-04f3:335a-touchpad",
  accel_profile = "custom 0.5 0 0.5 1.05 1.7 2.5 3.4 4.4 5.5",
  scroll_points = "0.5 0 0.4 0.9 1.5 2.3 3.3 4.5 6.0 7.8 10",
})

两行曲线的格式一样:第一个数是步长,后面是各个采样点的输出值。横轴是手指速度,纵轴是页面速度。慢慢滑的时候接近一比一,甩得快的时候往上翘。

设备名用 hyprctl devices 查。保存后 Hyprland 自动重载,hyprctl configerrors 为空就是生效了。

两个注意点

  • 换成 custom 之后,触摸板的指针加速也一起换掉了,所以 accel_profile 后面必须同时给一条指针曲线,不然指针会变成没有加速。
  • 曲线上的数字是起点,要靠手感调。想让快甩更猛就调大 scroll_points 后面几个数;想让慢滑更细就调小前面几个。整体都嫌慢的话,第二个旋钮是 Omarchy 默认的 scroll_factor = 0.4,改到 0.6 试试。

惯性滑动改不了。那是每个应用自己决定的,GTK 应用和 Chromium 有,其他不一定有,合成器这层没有开关。

[阅读全文]

我理解的 Omarchy

今天下决心,把日常工作的电脑从 Mac 切换到了 Linux。

想这么做其实已经有些日子了,手边也有几台设备分别装着 Debian(喜欢了很多年)、NixOS(去年接触到之后,非常喜欢这个发行版的理念),但始终觉得还是有些许不方便。这次的“临门一脚”,是 Omarchy 推动的。

我大概半年多前第一次用 Omarchy,那时觉得这个发行版带着作者 DHH 非常强烈的观点——他喜欢的软件、习惯的配置,而我也有些偏执的喜好,于是只是浅尝辄止。

我也想了想,为什么最近两周 Omarchy 会在 X 上爆火,我觉得的几个原因有:

  • DHH 的个人魅力——他有着极强的感染力,而且几十年持续创造输出,Ruby on Rails、Basecamp、Hey 等作品背后都是他。在 Omarchy 发布后,他极高强度地开发、宣传。最近更是组建了基金会,十几天时间里,募集了超过 1300 万美金——包括我在 Caoz 群里认识了几十年的 xdanger 也捐了 100 万美金。
  • Omarchy 的尝试成本很低——找一台旧笔记本电脑,插上启动 U 盘,几分钟时间就能装好,所有东西都按照 DHH 的品味,所谓“大厨精选”帮你装好了,可以快速开箱即用——这里其实解决了 Linux 桌面一直以来的大问题:选择过多导致普通用户无从下手。
  • AI first 的操作系统这样的说法,现阶段还是挺占便宜的,很多用户好奇心起就会试试。而且确实,AI 时代,每个人应该都能有一台真正顺手的,适合自己的电脑,这时的 AI first 很合理。
  • AI 极大降低了开发、支持、使用、改进的成本。例如:内置了 Omarchy Skill,你可以通过问 AI 直接得到如何修改配置等问题的准确做法。例如:当系统里有软件出错时,调用分析 skill,直接分析日志和代码,最后提交 PR 给开发者——挺好的闭环,也极大鼓励了用户的参与。
  • 很好的插件机制,用户几句话就能做出自己需要的小插件,成就感很强,容易激发参与感和传播。
  • 审美在线。很漂亮的系统,截图在社交媒体被广泛传播。

而且,据说后续 Omarchy 会改用 nix 来做包管理——那就真是我心目中完美的桌面系统了——我本来昨天想让 AI 往这个方向做的,听说之后,停下了任务,省 token 了。

怎么给 Omarchy 提 PR

太长不看

Omarchy 装机自带一份给 AI 助手看的贡献指南,在仓库的 default/agents/skills/omarchy/contributing.md。跟 Claude 说"帮我给 Omarchy 报个 bug",或者"把这个修法提成 PR",它会读这份文件,自己走完收日志、截图、fork、跑测试、开 PR 的全过程。

下面是它照做的规矩,自己动手也一样。

去哪提

Omarchy 的代码在 omacom/omarchy。issue 只收确认过的 bug,模板第一行写着 “an open source gift, not a product you bought from a vendor”。功能建议去 Discussions 的 Suggestions 分类,手册修改去 Manual 分类,不确定是不是 bug 去 Discord。求助发到 Issues 会被关掉。

规矩

它没有 CONTRIBUTING.md,代码规范在根目录的 AGENTS.md:命令一律 omarchy- 开头,bash 字符串判断用 [[ ]]、数字用 (( )),缩进两空格,shebang 只能 #!/bin/bash。不合规会被打回。

动手

报 bug 带上这两条的输出,日志可传到 logs.omarchy.org,24 小时过期:

omarchy version
omarchy debug --no-sudo --print

指南点名要截图,用 omarchy capture screenshot,只能在网页上拖进去。

[阅读全文]

Quickshell 是什么

Linux 上做桌面部件的工具箱,官网 quickshell.org。状态栏、通知弹窗、锁屏、音量面板、壁纸切换器,这些东西用它来写。

它解决什么

上一篇讲 Hyprland 时提过,那种窗口管理器只管窗口怎么摆,状态栏、通知、锁屏都要另外找程序拼。常见的拼法是 Waybar 加 mako 加 hyprlock,各是各的程序,各有各的配置格式,样式对不齐,之间也不通消息。

Quickshell 换一个思路:这些部件全都自己写,用同一种语言,跑在同一个进程里。状态栏上的音量图标和按音量键弹出的那个提示,可以共用一份状态。

用什么写

QML,Qt 的界面语言。长这样:

import Quickshell
import QtQuick

PanelWindow {
  anchors {
    top: true
    left: true
    right: true
  }
  implicitHeight: 30
  Text {
    anchors.centerIn: parent
    text: "hello world"
  }
}

这段就是屏幕顶部一条 30 像素高的栏,中间写着一行字。anchors 指定贴哪几条边,贴住之后 Quickshell 会自动向窗口管理器申请这块空间,其他窗口不会被它盖住。

QML 是声明式的:你写界面长什么样、数据变了界面怎么跟着变,不用自己写"收到消息 → 找到那个控件 → 改它的文字"这种流程。

存盘就生效

配置放在 ~/.config/quickshell/,每个子目录里有一个 shell.qml 就算一套配置。跑起来之后编辑文件,存盘界面立刻变,不用重启。改一个像素挪一下位置,改完扭头就能看见。

自带的接口

写桌面部件要拿系统数据。Quickshell 内置了这些:

  • PipeWire:音量、当前播放设备
  • MPRIS:正在放什么歌,暂停下一首
  • 系统托盘:那些图标
  • PAM:验证密码,锁屏要用
  • 蓝牙
  • Hyprland 和 i3/Sway:当前工作区、窗口标题这类窗口管理器内部状态

官方只内置了 Hyprland 和 i3 两家的接口。用别的窗口管理器,得自己通过 socket 或者调命令去拿。

代价

  • 得会写代码。Waybar 改个配置文件就能用,Quickshell 是让你自己写一个状态栏出来
  • 从空白开始。它是工具箱不是成品,装完什么都没有
  • API 还在变。官方明说后续版本会有破坏性改动,升级时要照迁移指南改配置

现状

LGPL 3 开源,主力开发者 outfoxxed。源码在 GitHub,文档在 quickshell.org/docs。Wayland 和 X11 都支持。

[阅读全文]