diff options
Diffstat (limited to 'mac/.config')
| -rw-r--r-- | mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua | 69 | ||||
| -rw-r--r-- | mac/.config/TheSiahxyz/lua/TheSiahxyz/snippets/diary.lua | 32 | ||||
| -rw-r--r-- | mac/.config/git/ignore | 2 | ||||
| -rw-r--r-- | mac/.config/shell/aliasrc | 2 | ||||
| -rw-r--r-- | mac/.config/zsh/scripts.zsh | 10 |
5 files changed, 111 insertions, 4 deletions
diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua index 52ceb01..36bd545 100644 --- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua +++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua @@ -260,6 +260,75 @@ return { }, }, { + "greggh/claude-code.nvim", + dependencies = { + "nvim-lua/plenary.nvim", -- Required for git operations + }, + config = function() + require("claude-code").setup({ + -- Terminal window settings + window = { + split_ratio = 0.3, -- Percentage of screen for the terminal window (height for horizontal, width for vertical splits) + position = "vertical", -- Position of the window: "botright", "topleft", "vertical", "float", etc. + enter_insert = true, -- Whether to enter insert mode when opening Claude Code + hide_numbers = true, -- Hide line numbers in the terminal window + hide_signcolumn = true, -- Hide the sign column in the terminal window + + -- Floating window configuration (only applies when position = "float") + float = { + width = "80%", -- Width: number of columns or percentage string + height = "80%", -- Height: number of rows or percentage string + row = "center", -- Row position: number, "center", or percentage string + col = "center", -- Column position: number, "center", or percentage string + relative = "editor", -- Relative to: "editor" or "cursor" + border = "rounded", -- Border style: "none", "single", "double", "rounded", "solid", "shadow" + }, + }, + -- File refresh settings + refresh = { + enable = true, -- Enable file change detection + updatetime = 100, -- updatetime when Claude Code is active (milliseconds) + timer_interval = 1000, -- How often to check for file changes (milliseconds) + show_notifications = true, -- Show notification when files are reloaded + }, + -- Git project settings + git = { + use_git_root = true, -- Set CWD to git root when opening Claude Code (if in git project) + }, + -- Shell-specific settings + shell = { + separator = "&&", -- Command separator used in shell commands + pushd_cmd = "pushd", -- Command to push directory onto stack (e.g., 'pushd' for bash/zsh, 'enter' for nushell) + popd_cmd = "popd", -- Command to pop directory from stack (e.g., 'popd' for bash/zsh, 'exit' for nushell) + }, + -- Command settings + command = "claude", -- Command used to launch Claude Code + -- Command variants + command_variants = { + -- Conversation management + continue = "--continue", -- Resume the most recent conversation + resume = "--resume", -- Display an interactive conversation picker + + -- Output options + verbose = "--verbose", -- Enable verbose logging with full turn-by-turn output + }, + -- Keymaps + keymaps = { + toggle = { + normal = "<C-,>", -- Normal mode keymap for toggling Claude Code, false to disable + terminal = "<C-,>", -- Terminal mode keymap for toggling Claude Code, false to disable + variants = { + continue = "<leader>cC", -- Normal mode keymap for Claude Code with continue flag + verbose = "<leader>cV", -- Normal mode keymap for Claude Code with verbose flag + }, + }, + window_navigation = true, -- Enable window navigation keymaps (<C-h/j/k/l>) + scrolling = true, -- Enable scrolling keymaps (<C-f/b>) for page up/down + }, + }) + end, + }, + { "NickvanDyke/opencode.nvim", dependencies = { -- Recommended for `ask()` and `select()`. diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/snippets/diary.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/snippets/diary.lua index 90528a1..f1c636b 100644 --- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/snippets/diary.lua +++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/snippets/diary.lua @@ -3,15 +3,46 @@ local ls = require("luasnip") local s = ls.snippet local i = ls.insert_node local f = ls.function_node +local c = ls.choice_node +local t = ls.text_node local fmt = require("luasnip.extras.fmt").fmta +local function bgm_list() + local handle = io.popen("ssh root@thesiah.xyz 'ls /var/www/thesiah/bgm/' 2>/dev/null") + if not handle then + return nil + end + + local result = handle:read("*a") + handle:close() + + if not result or result == "" then + return nil + end + + local choices = {} + for filename in result:gmatch("[^\r\n]+") do + table.insert(choices, t(filename)) + end + + if #choices == 0 then + return nil + end + + return choices +end + +local bgm_choices = bgm_list() +local bgm_node = bgm_choices and c(2, bgm_choices) or i(2, "bgm") + local diary_snippet = s( "diary", fmt( [[--- title: <title> date: <date> +bgm: <bgm> --- <story> @@ -21,6 +52,7 @@ date: <date> date = f(function() return os.date("%Y-%m-%d") end, {}), + bgm = bgm_node, story = i(3), } ) diff --git a/mac/.config/git/ignore b/mac/.config/git/ignore index 2121586..7c177dc 100644 --- a/mac/.config/git/ignore +++ b/mac/.config/git/ignore @@ -119,3 +119,5 @@ thesiah.mom # thesiah.mom */thesiah/thesiah.mom + +**/.claude/settings.local.json diff --git a/mac/.config/shell/aliasrc b/mac/.config/shell/aliasrc index f263206..64783f8 100644 --- a/mac/.config/shell/aliasrc +++ b/mac/.config/shell/aliasrc @@ -383,7 +383,7 @@ alias skype='skypeforlinux' # ssh alias gts="ssh $THESIAH_SERVER" -alias wwr="ssh recordings" +alias wwr="ssh diary" # sudo alias su='sudo su -l root' diff --git a/mac/.config/zsh/scripts.zsh b/mac/.config/zsh/scripts.zsh index f92a6c4..ac59ca6 100644 --- a/mac/.config/zsh/scripts.zsh +++ b/mac/.config/zsh/scripts.zsh @@ -388,9 +388,13 @@ EOF ) [[ -z "${SELECTED_DIRS// }" ]] && return if [[ "$(echo "$SELECTED_DIRS" | wc -l)" -eq 1 ]]; then - cd "$SELECTED_DIRS" - if [[ -n "$(git -C "$SELECTED_DIRS" status --porcelain)" ]]; then - git status --porcelain 2>/dev/null + if [[ -n "$TMUX" ]]; then + opensessions "$SELECTED_DIRS" + else + cd "$SELECTED_DIRS" || return + if [[ -n "$(git -C "$SELECTED_DIRS" status --porcelain 2>/dev/null)" ]]; then + git status --porcelain + fi fi else opensessions "$SELECTED_DIRS" |
