From 58921f92ba8a6458a072aba2716ce07fdb002897 Mon Sep 17 00:00:00 2001 From: rin2yh Date: Sun, 28 Jun 2026 00:44:44 +0900 Subject: [PATCH 1/3] chore: align wezterm theme with ghostty, tune claude code settings - wezterm: port ghostty's default ANSI palette + fg/bg/cursor for visual parity, enable default hyperlink_rules so raw URLs become Cmd-clickable, recolor tab_bar/window_frame with the same palette - claude code: pin model to claude-opus-4-7[1m], switch tui to fullscreen, enable agent push notifs, suppress workflow usage warning --- home/claude/settings.json | 9 +++++-- home/wezterm/wezterm.lua | 55 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/home/claude/settings.json b/home/claude/settings.json index 92ee377..920e788 100644 --- a/home/claude/settings.json +++ b/home/claude/settings.json @@ -91,6 +91,7 @@ ], "defaultMode": "plan" }, + "model": "claude-opus-4-7[1m]", "statusLine": { "type": "command", "command": "~/.claude/statusline.js" @@ -173,7 +174,11 @@ "effortLevel": "xhigh", "showClearContextOnPlanAccept": true, "autoUpdatesChannel": "latest", + "tui": "fullscreen", "skipDangerousModePermissionPrompt": true, - "voiceEnabled": false, - "skipAutoPermissionPrompt": true + "skipWorkflowUsageWarning": true, + "inputNeededNotifEnabled": false, + "agentPushNotifEnabled": true, + "skipAutoPermissionPrompt": true, + "voiceEnabled": false } diff --git a/home/wezterm/wezterm.lua b/home/wezterm/wezterm.lua index 70d2567..fe0e6f1 100644 --- a/home/wezterm/wezterm.lua +++ b/home/wezterm/wezterm.lua @@ -17,12 +17,41 @@ config.send_composed_key_when_right_alt_is_pressed = false config.window_background_opacity = 0.85 config.macos_window_background_blur = 20 --- weztermのデフォルト背景は真っ黒(#000000)でghosttyより暗く沈むため、 --- ghosttyのデフォルト背景色(#292c33)に合わせる +-- weztermのデフォルトはANSI greenが鮮やか(緑寄りの印象)になるため、 +-- ghosttyの内蔵デフォルトpalette (Tomorrow系/One Darkの混合, 既存builtinに一致なし) を直接移植 +-- 値は `ghostty +show-config --default` から取得 config.colors = { - background = "#292c33", + foreground = "#ffffff", + background = "#282c34", + cursor_bg = "#ffffff", + cursor_fg = "#000000", + cursor_border = "#ffffff", + ansi = { + "#1d1f21", + "#cc6666", + "#b5bd68", + "#f0c674", + "#81a2be", + "#b294bb", + "#8abeb7", + "#c5c8c6", + }, + brights = { + "#666666", + "#d54e53", + "#b9ca4a", + "#e7c547", + "#7aa6da", + "#c397d8", + "#70c0b1", + "#eaeaea", + }, } +-- claude codeなどが出力する素のURL文字列をSUPER+クリックで開けるようにする +-- (weztermはデフォルトでhyperlink_rulesが空 = URLを認識しない) +config.hyperlink_rules = wezterm.default_hyperlink_rules() + -- WebGpuだとDock(launchd)起動時にGPUコンテキスト初期化に失敗して -- 透過が効かないことがあるため、描画をOpenGLに固定する config.front_end = "OpenGL" @@ -42,6 +71,26 @@ config.inactive_pane_hsb = { config.use_fancy_tab_bar = true config.hide_tab_bar_if_only_one_tab = true +-- タブバー/タイトルバーの色を ghostty palette に揃える +-- (デフォルトのteal/purple系を消し、palette black / bg / 8 / 7 / foreground の無彩色寄りで構成) +local tab_idle = { bg_color = "#1d1f21", fg_color = "#666666" } +local tab_hover = { bg_color = "#282c34", fg_color = "#c5c8c6" } +config.window_frame = { + active_titlebar_bg = "#1d1f21", + inactive_titlebar_bg = "#1d1f21", +} +config.colors.tab_bar = { + background = "#1d1f21", + active_tab = { + bg_color = "#282c34", + fg_color = "#ffffff", + }, + inactive_tab = tab_idle, + inactive_tab_hover = tab_hover, + new_tab = tab_idle, + new_tab_hover = tab_hover, +} + -- "1:" のインデックスを消して、タブ名(無ければプログラム名)だけ表示する wezterm.on("format-tab-title", function(tab) local title = tab.tab_title From 45f54a7872cf637e58aa7301212b299d6b5be575 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 29 Jun 2026 07:19:36 +0000 Subject: [PATCH 2/3] refactor(nvim): migrate mini.deps to vim.pack and MiniMisc.safely mini.deps development is frozen in the latest mini.nvim, which recommends vim.pack for plugin management and MiniMisc.safely() in place of MiniDeps.now()/later(). - init.lua: install mini.nvim via vim.pack; set up mini.misc early so the MiniMisc global is available before other modules load - replace MiniDeps.add(...) with vim.pack.add(...); the treesitter post_checkout hook is reproduced with a PackChanged autocmd, and the ts-comments depends edge is covered by the existing treesitter add - replace now()/later() with MiniMisc.safely('now'/'later', ...) everywhere - drop the redundant mini.misc.setup() in nav.lua and the MiniDeps luarc global Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01RhQR9TdszBTQ2XEZMbbCoz --- home/nvim/.luarc.json | 1 - home/nvim/init.lua | 22 +++++++--------------- home/nvim/lua/appearance.lua | 20 ++++++++++---------- home/nvim/lua/edit.lua | 28 ++++++++++++++-------------- home/nvim/lua/git.lua | 6 +++--- home/nvim/lua/lsp/init.lua | 4 ++-- home/nvim/lua/nav.lua | 14 ++++++-------- home/nvim/lua/terminal.lua | 4 ++-- 8 files changed, 44 insertions(+), 55 deletions(-) diff --git a/home/nvim/.luarc.json b/home/nvim/.luarc.json index 4947621..4233aca 100644 --- a/home/nvim/.luarc.json +++ b/home/nvim/.luarc.json @@ -3,7 +3,6 @@ "runtime.version": "LuaJIT", "diagnostics.globals": [ "vim", - "MiniDeps", "MiniIcons", "MiniTrailspace", "MiniGit", diff --git a/home/nvim/init.lua b/home/nvim/init.lua index d4aa853..a7e353c 100644 --- a/home/nvim/init.lua +++ b/home/nvim/init.lua @@ -1,21 +1,13 @@ vim.loader.enable() --- Clone 'mini.nvim' manually in a way that it gets managed by 'mini.deps' -local path_package = vim.fn.stdpath('data') .. '/site/' -local mini_path = path_package .. 'pack/deps/start/mini.nvim' -if vim.uv.fs_stat(mini_path) == nil then - vim.cmd('echo "Installing `mini.nvim`" | redraw') - local clone_cmd = { - 'git', 'clone', '--filter=blob:none', - 'https://github.com/echasnovski/mini.nvim', mini_path - } - vim.fn.system(clone_cmd) - vim.cmd('packadd mini.nvim | helptags ALL') - vim.cmd('echo "Installed `mini.nvim`" | redraw') -end +-- mini.deps は最新の mini.nvim で開発が凍結されたため、プラグイン管理は +-- Neovim 組み込みの vim.pack に移行。mini.nvim 本体も vim.pack で入れる。 +vim.pack.add({ 'https://github.com/echasnovski/mini.nvim' }) --- Set up 'mini.deps' (customize to your liking) -require('mini.deps').setup({ path = { package = path_package } }) +-- 各モジュールは MiniDeps.now/later の代わりに MiniMisc.safely を使う。 +-- MiniMisc グローバルは require('mini.misc').setup() で生成されるため、 +-- 他モジュールを読み込む前にここでセットアップしておく。 +require('mini.misc').setup() -- keymaps -- jkで抜ける系 diff --git a/home/nvim/lua/appearance.lua b/home/nvim/lua/appearance.lua index 764574d..8dcdbcc 100644 --- a/home/nvim/lua/appearance.lua +++ b/home/nvim/lua/appearance.lua @@ -2,10 +2,10 @@ vim.o.winbar = " %m %f " -local now, later = MiniDeps.now, MiniDeps.later +local safely = MiniMisc.safely -- colorscheme -now(function() +safely('now', function() vim.pack.add({ 'https://github.com/folke/tokyonight.nvim' }) require("tokyonight").setup({ style = "storm", @@ -25,33 +25,33 @@ now(function() vim.cmd.colorscheme('tokyonight') end) -later(function() +safely('later', function() vim.pack.add({ 'https://github.com/vim-jp/vimdoc-ja' }) vim.opt.helplang:prepend('ja') end) -- Simple plugins -now(function() +safely('now', function() require('mini.icons').setup() MiniIcons.mock_nvim_web_devicons() end) -later(require('mini.indentscope').setup) +safely('later', require('mini.indentscope').setup) -- statusline -now(function() +safely('now', function() require('mini.statusline').setup() vim.opt.laststatus = 3 vim.opt.cmdheight = 0 end) -- notify -now(function() +safely('now', function() require('mini.notify').setup() vim.notify = require('mini.notify').make_notify({}) end) -- hipatterns -later(function() +safely('later', function() local hipatterns = require('mini.hipatterns') local hi_words = require('mini.extra').gen_highlighter.words hipatterns.setup({ @@ -65,7 +65,7 @@ later(function() end) -- trailspace -later(function() +safely('later', function() require('mini.trailspace').setup() vim.api.nvim_create_user_command( 'Trim', @@ -78,7 +78,7 @@ later(function() end) -- clue (全体のキーバインドヒント) -later(function() +safely('later', function() local function mode_nx(keys) return { mode = 'n', keys = keys }, { mode = 'x', keys = keys } end diff --git a/home/nvim/lua/edit.lua b/home/nvim/lua/edit.lua index d8b79e2..fc87663 100644 --- a/home/nvim/lua/edit.lua +++ b/home/nvim/lua/edit.lua @@ -70,18 +70,20 @@ vim.api.nvim_create_user_command('CopyPath', function() print("Copied: " .. path) end, {}) -local add, now, later = MiniDeps.add, MiniDeps.now, MiniDeps.later +local safely = MiniMisc.safely -- treesitter -now(function() - add({ - source = 'https://github.com/nvim-treesitter/nvim-treesitter', - hooks = { - post_checkout = function() +safely('now', function() + -- mini.deps の hooks.post_checkout 相当: install/update 時に parser を更新 + vim.api.nvim_create_autocmd('PackChanged', { + callback = function(ev) + if ev.data.spec.name == 'nvim-treesitter' + and (ev.data.kind == 'install' or ev.data.kind == 'update') then vim.cmd.TSUpdate() end - }, + end, }) + vim.pack.add({ 'https://github.com/nvim-treesitter/nvim-treesitter' }) require('nvim-treesitter').install({ 'lua', 'vim', 'markdown', 'markdown_inline', 'bash', 'yaml', 'zsh', 'tsx', 'typescript', 'html', @@ -112,11 +114,9 @@ now(function() }) end) -later(function() - add({ - source = 'https://github.com/folke/ts-comments.nvim', - depends = { 'nvim-treesitter/nvim-treesitter' }, - }) +safely('later', function() + -- nvim-treesitter は treesitter ブロックで既に追加済み (depends 相当) + vim.pack.add({ 'https://github.com/folke/ts-comments.nvim' }) require('ts-comments').setup() end) @@ -126,8 +126,8 @@ vim.opt.foldlevel = 99 -- Simple plugins for _, name in ipairs({ 'pairs', 'surround', 'move', 'bracketed', 'jump2d' }) do - later(require('mini.' .. name).setup) + safely('later', require('mini.' .. name).setup) end -- basics -now(require('mini.basics').setup) +safely('now', require('mini.basics').setup) diff --git a/home/nvim/lua/git.lua b/home/nvim/lua/git.lua index 7b744f2..b54c24c 100644 --- a/home/nvim/lua/git.lua +++ b/home/nvim/lua/git.lua @@ -1,10 +1,10 @@ -- Git系 -local later = MiniDeps.later +local safely = MiniMisc.safely -later(require('mini.diff').setup) +safely('later', require('mini.diff').setup) -later(function() +safely('later', function() require('mini.git').setup() vim.keymap.set({ 'n', 'x' }, 'gs', MiniGit.show_at_cursor, { desc = 'Show at cursor' }) diff --git a/home/nvim/lua/lsp/init.lua b/home/nvim/lua/lsp/init.lua index 1efa001..eb468d8 100644 --- a/home/nvim/lua/lsp/init.lua +++ b/home/nvim/lua/lsp/init.lua @@ -1,8 +1,8 @@ -- config of lsp -local now = MiniDeps.now +local safely = MiniMisc.safely -now(function() +safely('now', function() vim.pack.add({ 'https://github.com/pcolladosoto/tinygo.nvim' }) local tinygo = require("tinygo") tinygo.setup({}) diff --git a/home/nvim/lua/nav.lua b/home/nvim/lua/nav.lua index 99bb04f..a6642df 100644 --- a/home/nvim/lua/nav.lua +++ b/home/nvim/lua/nav.lua @@ -1,14 +1,12 @@ -- 探索系 -local now, later = MiniDeps.now, MiniDeps.later +local safely = MiniMisc.safely -- starter -now(require('mini.starter').setup) - --- misc -now(function() - require('mini.misc').setup() +safely('now', require('mini.starter').setup) +-- misc (mini.misc.setup() は init.lua で実行済み) +safely('now', function() MiniMisc.setup_restore_cursor() vim.api.nvim_create_user_command('Zoom', function() MiniMisc.zoom(0, {}) @@ -17,7 +15,7 @@ now(function() end) -- files -now(function() +safely('now', function() require('mini.files').setup() -- mini.files.setup() がハイライトを上書きするため、setup() 後に再設定 @@ -43,7 +41,7 @@ now(function() end) -- pick -later(function() +safely('later', function() local prev_paste = vim.paste require('mini.pick').setup() diff --git a/home/nvim/lua/terminal.lua b/home/nvim/lua/terminal.lua index 2bfa544..b3d705b 100644 --- a/home/nvim/lua/terminal.lua +++ b/home/nvim/lua/terminal.lua @@ -1,10 +1,10 @@ -- Terminal系 -local later = MiniDeps.later +local safely = MiniMisc.safely vim.pack.add({ 'https://github.com/akinsho/toggleterm.nvim' }) -later(function() +safely('later', function() require('toggleterm').setup({ -- `open_mapping` を に設定すると ciw など operator-pending の -- キーシーケンスに割り込むため未設定。th/tv/tf や 1..5 を使う。 From 1ffc8d9a2f863f17666d2e955b33f8b8a7ffc54d Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 29 Jun 2026 07:31:43 +0000 Subject: [PATCH 3/3] ci: only run nix build/fmt when nix files change Gate the CI workflow with a path filter so the nixfmt check and the (expensive) macOS darwin build only run when nix-relevant files change. PRs that touch only non-nix files (nvim lua, wezterm, README, etc.) no longer trigger wasteful build/fmt runs. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01WhHQrJp4TeYPZ2buJGSKHg --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 004d5f5..922af3b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,6 +3,10 @@ name: CI on: pull_request: branches: [main] + paths: + - "**/*.nix" + - "flake.lock" + - ".github/workflows/ci.yml" concurrency: group: ci-${{ github.ref }}