Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa87ed97c1
|
||
|
|
a3cd27dba3
|
||
|
|
0812b28527
|
||
|
|
9bf870449b
|
||
|
|
9be4d24d6d
|
||
|
|
a317bfb36f
|
||
|
|
0f888ffe31
|
||
|
|
41ddd9052a |
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
面向中国开发者的 [Omarchy](https://omarchy.org) 下游发行版:完整保留 Omarchy 的 Arch + Hyprland 桌面体验,为中国网络环境、中文使用习惯与国内 AI 服务做系统级增强。
|
面向中国开发者的 [Omarchy](https://omarchy.org) 下游发行版:完整保留 Omarchy 的 Arch + Hyprland 桌面体验,为中国网络环境、中文使用习惯与国内 AI 服务做系统级增强。
|
||||||
|
|
||||||
当前版本 `4.0.0.alpha-cn.1`(基于上游 `quattro` 分支构建的基线 ISO)。
|
当前版本 `4.0.0.alpha-cn.4`(基于上游 `quattro` 分支构建的基线 ISO)。
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
@@ -15,8 +15,6 @@
|
|||||||
- Btrfs + Snapper 更新前快照与系统回滚
|
- Btrfs + Snapper 更新前快照与系统回滚
|
||||||
- archiso 离线安装镜像,支持无人值守安装与双系统引导
|
- archiso 离线安装镜像,支持无人值守安装与双系统引导
|
||||||
|
|
||||||
OmarchyCN 增强(开发中,按路线图逐步交付):
|
|
||||||
|
|
||||||
- **中国镜像管理**:Arch / npm / pip / Cargo / Go 等软件源测速、自动选择与故障切换
|
- **中国镜像管理**:Arch / npm / pip / Cargo / Go 等软件源测速、自动选择与故障切换
|
||||||
- **中文环境开箱即用**:zh_CN locale、思源黑体 / 宋体字体栈、高分屏分数缩放预设
|
- **中文环境开箱即用**:zh_CN locale、思源黑体 / 宋体字体栈、高分屏分数缩放预设
|
||||||
- **中文输入法**:Fcitx5 + Rime 预配置,Wayland / GTK / Qt / Electron 全栈兼容,快捷键冲突自动处理
|
- **中文输入法**:Fcitx5 + Rime 预配置,Wayland / GTK / Qt / Electron 全栈兼容,快捷键冲突自动处理
|
||||||
|
|||||||
@@ -107,6 +107,14 @@ deepcode)
|
|||||||
command=(deepcode)
|
command=(deepcode)
|
||||||
[[ -n ${prompt:-} ]] && command+=("$prompt")
|
[[ -n ${prompt:-} ]] && command+=("$prompt")
|
||||||
;;
|
;;
|
||||||
|
dim)
|
||||||
|
# `dim exec` is the documented one-shot prompt form
|
||||||
|
if [[ -n ${prompt:-} ]]; then
|
||||||
|
command=(dim exec "$prompt")
|
||||||
|
else
|
||||||
|
command=(dim)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unsupported default agent: $agent" >&2
|
echo "Unsupported default agent: $agent" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -40,7 +40,10 @@ proto=$(cn_ai_harness_field "$harness" protocol)
|
|||||||
if [[ $proto == "native" ]]; then
|
if [[ $proto == "native" ]]; then
|
||||||
omarchy-cn-ai-profile-create "$name" "$harness" "$provider" "$model"
|
omarchy-cn-ai-profile-create "$name" "$harness" "$provider" "$model"
|
||||||
omarchy-cn-ai-profile-use "$name"
|
omarchy-cn-ai-profile-use "$name"
|
||||||
echo "$harness 自管鉴权:首次启动时按其官方流程登录/配置"
|
echo "$harness 自管鉴权:首次启动时在 CLI 内完成官方登录"
|
||||||
|
if gum confirm "立即启动并完成官方登录?"; then
|
||||||
|
exec omarchy-cn-ai-launch "$name"
|
||||||
|
fi
|
||||||
echo "完成。启动: omarchycn ai launch"
|
echo "完成。启动: omarchycn ai launch"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -32,6 +32,17 @@ fi
|
|||||||
|
|
||||||
case "$source_type" in
|
case "$source_type" in
|
||||||
aur)
|
aur)
|
||||||
|
# Offline installs leave only offline.db in sync; without the official
|
||||||
|
# repo dbs yay treats repo deps as AUR. Upgrades must go through the
|
||||||
|
# omarchy-update pipeline (pacman guard).
|
||||||
|
if [[ ! -f /var/lib/pacman/sync/core.db ]]; then
|
||||||
|
if [[ ! -t 0 ]]; then
|
||||||
|
echo "首次安装应用前请先完成一次系统更新: omarchy-update" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "首次安装应用前需要完成一次系统更新。"
|
||||||
|
omarchy-update
|
||||||
|
fi
|
||||||
omarchy-pkg-aur-add "$(jq -r '.package' <<<"$entry")"
|
omarchy-pkg-aur-add "$(jq -r '.package' <<<"$entry")"
|
||||||
;;
|
;;
|
||||||
webapp)
|
webapp)
|
||||||
|
|||||||
Executable
+23
@@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# omarchy:summary=Install Kimi Code with the official installer script
|
||||||
|
# omarchy:examples=omarchycn kimi install
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
if omarchy-cmd-present kimi; then
|
||||||
|
echo "Kimi Code 已安装"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
installer=$(mktemp)
|
||||||
|
trap 'rm -f "$installer"' EXIT
|
||||||
|
curl -fsSL https://code.kimi.com/kimi-code/install.sh -o "$installer"
|
||||||
|
bash "$installer"
|
||||||
|
|
||||||
|
# The official installer only touches .bashrc PATH; expose kimi now
|
||||||
|
if [[ ! -x $HOME/.kimi-code/bin/kimi ]]; then
|
||||||
|
echo "kimi binary missing after the official installer" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
mkdir -p "$HOME/.local/bin"
|
||||||
|
ln -sf "$HOME/.kimi-code/bin/kimi" "$HOME/.local/bin/kimi"
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# omarchy:summary=Set and launch the default coding agent
|
# omarchy:summary=Set and launch the default coding agent
|
||||||
# omarchy:args=[pi|omp|opencode|ori|claude|codex|grok|agy|copilot|crush|kimi|deepcode]
|
# omarchy:args=[pi|omp|opencode|ori|claude|codex|grok|agy|copilot|crush|kimi|deepcode|dim]
|
||||||
# omarchy:examples=omarchy default agent | omarchy default agent codex | omarchy default agent kimi
|
# omarchy:examples=omarchy default agent | omarchy default agent codex | omarchy default agent kimi
|
||||||
|
|
||||||
installing=false
|
installing=false
|
||||||
@@ -36,8 +36,9 @@ agy | antigravity | antigravity-cli | gemini | gemini-cli) agent="agy"; name="An
|
|||||||
copilot | github-copilot) agent="copilot"; name="GitHub Copilot" ;;
|
copilot | github-copilot) agent="copilot"; name="GitHub Copilot" ;;
|
||||||
kimi | kimi-code) agent="kimi"; name="Kimi Code" ;;
|
kimi | kimi-code) agent="kimi"; name="Kimi Code" ;;
|
||||||
deepcode | deep-code) agent="deepcode"; name="Deep Code"; agent_package="npm:@vegamo/deepcode-cli" ;;
|
deepcode | deep-code) agent="deepcode"; name="Deep Code"; agent_package="npm:@vegamo/deepcode-cli" ;;
|
||||||
|
dim | dimcode | dim-agent) agent="dim"; name="Dim Agent"; agent_package="npm:dimcode" ;;
|
||||||
*)
|
*)
|
||||||
echo "Usage: omarchy-default-agent <pi|omp|opencode|ori|claude|codex|grok|agy|copilot|crush|kimi|deepcode>"
|
echo "Usage: omarchy-default-agent <pi|omp|opencode|ori|claude|codex|grok|agy|copilot|crush|kimi|deepcode|dim>"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -50,13 +51,10 @@ if [[ $agent == "kimi" ]]; then
|
|||||||
if [[ $installing == "false" ]]; then
|
if [[ $installing == "false" ]]; then
|
||||||
exec omarchy-launch-floating-terminal-with-presentation omarchy-default-agent --install kimi
|
exec omarchy-launch-floating-terminal-with-presentation omarchy-default-agent --install kimi
|
||||||
fi
|
fi
|
||||||
installer=$(mktemp)
|
if ! omarchy-cn-kimi-install; then
|
||||||
if ! curl -fsSL https://code.kimi.com/kimi-code/install.sh -o "$installer" || ! bash "$installer"; then
|
|
||||||
rm -f "$installer"
|
|
||||||
echo "Could not install $name with the official installer" >&2
|
echo "Could not install $name with the official installer" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
rm -f "$installer"
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [[ $installing == "false" ]] && ! mise where "$agent_package" &>/dev/null; then
|
if [[ $installing == "false" ]] && ! mise where "$agent_package" &>/dev/null; then
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"_verified": "2026-08-24",
|
"_verified": "2026-08-25",
|
||||||
"harnesses": {
|
"harnesses": {
|
||||||
"claude-code": {
|
"claude-code": {
|
||||||
"display_name": "Claude Code",
|
"display_name": "Claude Code",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"kimi-code": {
|
"kimi-code": {
|
||||||
"display_name": "Kimi Code CLI",
|
"display_name": "Kimi Code CLI",
|
||||||
"command": "kimi",
|
"command": "kimi",
|
||||||
"install": "doc:https://www.kimi.com/code/docs/en/",
|
"install": "omarchy-cn-kimi-install",
|
||||||
"config_method": "native",
|
"config_method": "native",
|
||||||
"protocol": "native"
|
"protocol": "native"
|
||||||
},
|
},
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
4
|
5
|
||||||
|
|||||||
@@ -141,6 +141,7 @@
|
|||||||
"setup.default.agent.copilot": {"icon":"","label":"Copilot","checked":"[[ \"$(omarchy-default-agent)\" == \"copilot\" ]]","action":"omarchy-default-agent copilot"},
|
"setup.default.agent.copilot": {"icon":"","label":"Copilot","checked":"[[ \"$(omarchy-default-agent)\" == \"copilot\" ]]","action":"omarchy-default-agent copilot"},
|
||||||
"setup.default.agent.crush": {"icon":"","label":"Crush","checked":"[[ \"$(omarchy-default-agent)\" == \"crush\" ]]","action":"omarchy-default-agent crush"},
|
"setup.default.agent.crush": {"icon":"","label":"Crush","checked":"[[ \"$(omarchy-default-agent)\" == \"crush\" ]]","action":"omarchy-default-agent crush"},
|
||||||
"setup.default.agent.deepcode": {"icon":"","label":"Deep Code","checked":"[[ \"$(omarchy-default-agent)\" == \"deepcode\" ]]","action":"omarchy-default-agent deepcode"},
|
"setup.default.agent.deepcode": {"icon":"","label":"Deep Code","checked":"[[ \"$(omarchy-default-agent)\" == \"deepcode\" ]]","action":"omarchy-default-agent deepcode"},
|
||||||
|
"setup.default.agent.dim": {"icon":"","label":"Dim Agent","checked":"[[ \"$(omarchy-default-agent)\" == \"dim\" ]]","action":"omarchy-default-agent dim"},
|
||||||
"setup.default.agent.grok": {"icon":"","iconFont":"omarchy","label":"Grok","checked":"[[ \"$(omarchy-default-agent)\" == \"grok\" ]]","action":"omarchy-default-agent grok"},
|
"setup.default.agent.grok": {"icon":"","iconFont":"omarchy","label":"Grok","checked":"[[ \"$(omarchy-default-agent)\" == \"grok\" ]]","action":"omarchy-default-agent grok"},
|
||||||
"setup.default.agent.kimi": {"icon":"","label":"Kimi Code","checked":"[[ \"$(omarchy-default-agent)\" == \"kimi\" ]]","action":"omarchy-default-agent kimi"},
|
"setup.default.agent.kimi": {"icon":"","label":"Kimi Code","checked":"[[ \"$(omarchy-default-agent)\" == \"kimi\" ]]","action":"omarchy-default-agent kimi"},
|
||||||
"setup.default.agent.omp": {"icon":"","iconFont":"omarchy","label":"omp","checked":"[[ \"$(omarchy-default-agent)\" == \"omp\" ]]","action":"omarchy-default-agent omp"},
|
"setup.default.agent.omp": {"icon":"","iconFont":"omarchy","label":"omp","checked":"[[ \"$(omarchy-default-agent)\" == \"omp\" ]]","action":"omarchy-default-agent omp"},
|
||||||
@@ -240,11 +241,15 @@
|
|||||||
"install.terminal.ghostty": {"icon":"","label":"Ghostty","disabled":"omarchy-pkg-present ghostty","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-terminal ghostty'"},
|
"install.terminal.ghostty": {"icon":"","label":"Ghostty","disabled":"omarchy-pkg-present ghostty","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-terminal ghostty'"},
|
||||||
"install.terminal.kitty": {"icon":"","label":"Kitty","disabled":"omarchy-pkg-present kitty","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-terminal kitty'"},
|
"install.terminal.kitty": {"icon":"","label":"Kitty","disabled":"omarchy-pkg-present kitty","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-terminal kitty'"},
|
||||||
"install.ai.chatgpt": {"icon":"","iconFont":"omarchy","label":"ChatGPT Desktop","disabled":"omarchy-pkg-present openai-codex-desktop","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-ai-chatgpt"},
|
"install.ai.chatgpt": {"icon":"","iconFont":"omarchy","label":"ChatGPT Desktop","disabled":"omarchy-pkg-present openai-codex-desktop","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-ai-chatgpt"},
|
||||||
|
"install.ai.deep-code": {"icon":"","label":"Deep Code","disabled":"omarchy-cmd-present deepcode","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-mise-install npm:@vegamo/deepcode-cli deepcode && deepcode'"},
|
||||||
"install.ai.dictation": {"icon":"","label":"语音听写","disabled":"omarchy-pkg-present voxtype-bin","action":"omarchy-launch-floating-terminal-with-presentation omarchy-voxtype-install"},
|
"install.ai.dictation": {"icon":"","label":"语音听写","disabled":"omarchy-pkg-present voxtype-bin","action":"omarchy-launch-floating-terminal-with-presentation omarchy-voxtype-install"},
|
||||||
|
"install.ai.dim": {"icon":"","label":"Dim Agent","disabled":"omarchy-cmd-present dim","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-mise-install npm:dimcode dim && dim'"},
|
||||||
"install.ai.grok-bot": {"icon":"","iconFont":"omarchy","label":"Grok Bot","disabled":"omarchy-pkg-present grok-bot","action":"omarchy-install-and-launch 'Grok Bot' grok-bot grok-bot"},
|
"install.ai.grok-bot": {"icon":"","iconFont":"omarchy","label":"Grok Bot","disabled":"omarchy-pkg-present grok-bot","action":"omarchy-install-and-launch 'Grok Bot' grok-bot grok-bot"},
|
||||||
|
"install.ai.kimi-code": {"icon":"","label":"Kimi Code","disabled":"omarchy-cmd-present kimi","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-cn-kimi-install && kimi'"},
|
||||||
"install.ai.lm-studio": {"icon":"","iconFont":"omarchy","label":"LM Studio","disabled":"omarchy-pkg-present lmstudio-bin","action":"omarchy-install-app 'LM Studio' lmstudio-bin"},
|
"install.ai.lm-studio": {"icon":"","iconFont":"omarchy","label":"LM Studio","disabled":"omarchy-pkg-present lmstudio-bin","action":"omarchy-install-app 'LM Studio' lmstudio-bin"},
|
||||||
"install.ai.ollama": {"icon":"","iconFont":"omarchy","label":"Ollama","disabled":"omarchy-cmd-present ollama","action":"if omarchy-cmd-present nvidia-smi; then ollama_pkg=ollama-cuda; elif omarchy-cmd-present rocminfo; then ollama_pkg=ollama-rocm; else ollama_pkg=ollama; fi; omarchy-install-app Ollama \"$ollama_pkg\""},
|
"install.ai.ollama": {"icon":"","iconFont":"omarchy","label":"Ollama","disabled":"omarchy-cmd-present ollama","action":"if omarchy-cmd-present nvidia-smi; then ollama_pkg=ollama-cuda; elif omarchy-cmd-present rocminfo; then ollama_pkg=ollama-rocm; else ollama_pkg=ollama; fi; omarchy-install-app Ollama \"$ollama_pkg\""},
|
||||||
"install.ai.t3-code": {"icon":"","iconFont":"omarchy","label":"T3 Code","disabled":"omarchy-pkg-present t3code-bin","action":"omarchy-install-and-launch 'T3 Code' t3code-bin t3code"},
|
"install.ai.t3-code": {"icon":"","iconFont":"omarchy","label":"T3 Code","disabled":"omarchy-pkg-present t3code-bin","action":"omarchy-install-and-launch 'T3 Code' t3code-bin t3code"},
|
||||||
|
"install.ai.cn-hub": {"icon":"","label":"国产模型组合 (AI Hub)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-cn-ai-setup"},
|
||||||
"install.gaming.steam": {"icon":"","label":"Steam","disabled":"omarchy-pkg-present steam","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-steam"},
|
"install.gaming.steam": {"icon":"","label":"Steam","disabled":"omarchy-pkg-present steam","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-steam"},
|
||||||
"install.gaming.retroarch": {"icon":"","label":"RetroArch","disabled":"omarchy-pkg-present retroarch","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-retroarch"},
|
"install.gaming.retroarch": {"icon":"","label":"RetroArch","disabled":"omarchy-pkg-present retroarch","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-retroarch"},
|
||||||
"install.gaming.minecraft": {"icon":"","label":"Minecraft","disabled":"omarchy-pkg-present minecraft-launcher","action":"omarchy-install-and-launch Minecraft minecraft-launcher minecraft-launcher"},
|
"install.gaming.minecraft": {"icon":"","label":"Minecraft","disabled":"omarchy-pkg-present minecraft-launcher","action":"omarchy-install-and-launch Minecraft minecraft-launcher minecraft-launcher"},
|
||||||
|
|||||||
@@ -248,7 +248,7 @@ assertDeepEqual(
|
|||||||
defaultItems
|
defaultItems
|
||||||
.filter(item => item.parent === 'setup.default.agent')
|
.filter(item => item.parent === 'setup.default.agent')
|
||||||
.map(item => item.label),
|
.map(item => item.label),
|
||||||
['Antigravity', 'Claude', 'Codex', 'Copilot', 'Crush', 'Deep Code', 'Grok', 'Kimi Code', 'omp', 'OpenCode', 'Ori', 'Pi', '国产模型组合 (AI Hub)'],
|
['Antigravity', 'Claude', 'Codex', 'Copilot', 'Crush', 'Deep Code', 'Dim Agent', 'Grok', 'Kimi Code', 'omp', 'OpenCode', 'Ori', 'Pi', '国产模型组合 (AI Hub)'],
|
||||||
'menu sorts coding agents alphabetically'
|
'menu sorts coding agents alphabetically'
|
||||||
)
|
)
|
||||||
const expectedDefaults = {
|
const expectedDefaults = {
|
||||||
|
|||||||
Reference in New Issue
Block a user