Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
980b45f
opencode.nvim: better keymaps for diffing, session management, and me…
tbanh-hs Feb 21, 2026
cb4e63d
misc
tbanh-hs Feb 21, 2026
3048ad4
misc
tbanh-hs Feb 26, 2026
602cdca
misc
tbanh-hs Feb 28, 2026
febdd6a
nvim-surround: keymaps option deprecated
tbanh-hs Feb 28, 2026
b021b0a
opencode: tui.json
tbanh-hs Feb 28, 2026
e86be0a
misc
tbanh-hs Feb 28, 2026
2df8135
reformat opencode theme to use defs for better maintainability
tbanh-hs Feb 28, 2026
d9a0dc5
nvim-colorizer: update setup options to new format
tbanh-hs Mar 3, 2026
3191ec2
opencode.nvim: move options to opts table
tbanh-hs Mar 6, 2026
84a0184
nvim-colorizer: disable for opencode and opencode_output filetypes
tbanh-hs Mar 6, 2026
34ee470
opencode: add colors for diff add/remove bg in transparent theme
tbanh-hs Mar 7, 2026
48e90ff
opencode.nvim: add keymaps to match opencode's keymap for canceling a…
tbanh-hs Mar 7, 2026
b86c4dd
snacks: refactor to separate out modules to their owns files,
tbanh-hs Mar 7, 2026
c67de96
Separate out the git-related plugins
tbanh-hs Mar 7, 2026
afb4dae
Move the snacks.gh.actions custom action to `after/plugin` so it gets…
tbanh-hs Mar 7, 2026
678aac6
misc
tbanh-hs Mar 7, 2026
9f3c1aa
add gh-dash
tbanh-hs Mar 7, 2026
daf96f7
replace diffview with codediff
tbanh-hs Mar 7, 2026
0efb16d
nvim: create autocmd for gh-dash, update gh-dash config
tbanh-hs Mar 7, 2026
0b81f99
.gitconfig
tbanh-hs Mar 7, 2026
4fd7f0b
update gh-dash keybinds
tbanh-hs Mar 8, 2026
b00a3aa
misc
tbanh-hs Mar 8, 2026
1f81b67
snacks(gh_diff): add fullscreen layout
tbanh-hs Mar 8, 2026
79fc714
CodeDiff: fix keybind to show file history
tbanh-hs Mar 8, 2026
5bffb6d
clean up custom gh_actions
tbanh-hs Mar 8, 2026
c9dd83c
gh-dash: update colors
tbanh-hs Mar 8, 2026
c56e431
codediff.nvim: update keymaps
tbanh-hs Mar 11, 2026
e64a3c1
ignore opencode bun and package.json
tbanh-hs Mar 14, 2026
2f170cc
gh-dash: add section + adjust colors
tbanh-hs Mar 14, 2026
0687f4b
opencode.nvim: output set to markdown filetype
tbanh-hs Mar 17, 2026
775d238
obsidian.nvim: clean up deprecated options
tbanh-hs Mar 17, 2026
dbfaf7e
nvim: autoread
tbanh-hs Mar 19, 2026
0e8b613
misc
tbanh-hs Mar 21, 2026
81d8525
nvim: replace git-conflict with conflict-marker
tbanh-hs Mar 21, 2026
8775a66
misc
tbanh-hs Mar 25, 2026
64bcd58
codediff: use localleader
tbanh-hs Mar 31, 2026
25d2aa0
`:restart` keybind + lazygit fullscreen
tbanh-hs Mar 31, 2026
d6ed3fa
nvim: remove ayu and catppuccin colorschemes, add evergarden colorscheme
tbanh-hs Mar 31, 2026
89f2077
snacks: focus list for gh_diff, gh_actions, and git_diff
tbanh-hs Apr 1, 2026
9c08596
nvim: use built-in incremental selection (0.12+)
tbanh-hs Apr 2, 2026
beb77c1
opencode: add permissions for external_directory to .config/opencode …
tbanh-hs Apr 3, 2026
0a60d6b
fix: remove typescript-tools as we can't override <leader>co
tbanh-hs Apr 3, 2026
a7d793f
nvim: swap nvim-autopairs for blink.pairs
tbanh-hs Apr 4, 2026
1f42153
nvim: remove evergarden, add lume
tbanh-hs Apr 4, 2026
238f063
lualine: prevent layout shifts
tbanh-hs Apr 4, 2026
9bfa1d8
everforest: organize highlight overrides
tbanh-hs Apr 4, 2026
36782d3
copilot: swap from copilot.lua to copilot lsp (nvim-lspconfig)
tbanh-hs Apr 6, 2026
358e779
misc
tbanh-hs Apr 6, 2026
109145f
misc
tbanh-hs Apr 6, 2026
f833618
opencode: use jsonc instead of json
tbanh-hs Apr 6, 2026
3cc9b5e
opencode: update leader key to ctrl+o
tbanh-hs Apr 6, 2026
58b385d
delete lume.nvim
tbanh-hs Apr 6, 2026
8750cab
misc
tbanh-hs Apr 6, 2026
46e2462
wezterm: add italics support
tbanh-hs Apr 8, 2026
707e8ab
everforest: override palette
tbanh-hs Apr 8, 2026
97cc830
misc
tbanh-hs Apr 8, 2026
7a7811b
gh-dash update
tbanh-hs Apr 10, 2026
851d5e9
revert back to nvim-autopairs, blink.pairs did not behave the way I w…
tbanh-hs Apr 10, 2026
26037c7
misc
tbanh-hs Apr 10, 2026
06655e0
yazi: remove git-files plugin
tbanh-hs Apr 10, 2026
0da53aa
misc
tbanh-hs Apr 12, 2026
8f3c834
nvim: add back typescript-tools
tbanh-hs Apr 12, 2026
5f820c7
misc
tbanh-hs Apr 12, 2026
60bd071
tmux: remove tmux-fingers; add opencode keybinding
tbanh-hs Apr 14, 2026
710dd24
tmux: floating tmux to C-/, bind-key / and ? for searching in copy mode
tbanh-hs Apr 14, 2026
8f6f3fb
sesh: add window for opencode
tbanh-hs Apr 15, 2026
f865f92
zsh: only autostart tmux in standalone terminals, not in IDEs
tbanh-hs Apr 15, 2026
642856a
misc
tbanh-hs Apr 15, 2026
705f35d
fix: <Esc> snacks picker closes all pickers, e.g. Explorer + ivy, pre…
tbanh-hs Apr 16, 2026
ede3ae7
customize snacks dashboard
tbanh-hs Apr 16, 2026
02fe86f
misc: C-c for snacks explorer to cancel, quicly choose ts lsp in maso…
tbanh-hs Apr 17, 2026
0d570e8
opencode: tmux/sesh to continue session; update keybindings for scrol…
tbanh-hs Apr 18, 2026
f738e2a
opencode: everforest but transparent
tbanh-hs Apr 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .chezmoiignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@ README.md
**/.DS_Store
**/.git
**/hubspot.init.lua
**/hubspot-init.lua
**/hubspot
**/node_modules
**/opencode-api-key.sh
**/bun.lock
**/opencode/commands
**/opencode/package.json
**/opencode/package-lock.json
.config/nvim/spell
.config/nvim/.claude
.config/nvim/lazy-lock.json
Expand Down
4 changes: 2 additions & 2 deletions dot_config/btop/btop.conf
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ update_ms = 2000

#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "memory"
proc_sorting = "cpu direct"

#* Reverse sorting order, True or False.
proc_reversed = false
Expand Down Expand Up @@ -190,7 +190,7 @@ disk_free_priv = false
show_io_stat = true

#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = true
io_mode = false

#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = false
Expand Down
140 changes: 140 additions & 0 deletions dot_config/gh-dash/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# yaml-language-server: $schema=https://gh-dash.dev/schema.json

prSections:
- title: My Pull Requests
filters: author:@me is:open
- title: Needs My Review
filters: review-requested:@me is:open
- title: Involved
filters: -author:@me involves:@me is:open
- title: All (recent 2 weeks)
filters: is:open updated:>={{ nowModify "-2w" }}

issuesSections:
- title: My Issues
filters: author:@me is:open
- title: Assigned
filters: assignee:@me is:open
- title: Involved
filters: involves:@me -author:@me is:open

notificationsSections:
- title: All
filters: ""
- title: Created
filters: reason:author
- title: Participating
filters: reason:participating
- title: Mentioned
filters: reason:mention
- title: Review Requested
filters: reason:review-requested
- title: Assigned
filters: reason:assign
- title: Subscribed
filters: reason:subscribed
- title: Team Mentioned
filters: reason:team-mention

repo:
branchesRefetchIntervalSeconds: 30
prsRefetchIntervalSeconds: 60

defaults:
preview:
open: true
width: 0.45
prsLimit: 20
prApproveComment: LGTM
issuesLimit: 20
notificationsLimit: 20
view: prs
layout:
prs:
updatedAt:
width: 5
createdAt:
width: 5
repo:
width: 20
author:
width: 15
authorIcon:
hidden: false
assignees:
width: 20
hidden: true
base:
width: 15
hidden: true
lines:
width: 15
issues:
updatedAt:
width: 5
createdAt:
width: 5
repo:
width: 15
creator:
width: 10
creatorIcon:
hidden: false
assignees:
width: 20
hidden: true
refetchIntervalMinutes: 30

keybindings:
prs:
- key: C
name: code review
command: >
nvim -c ':lua Snacks.picker.gh_diff({ repo = "{{.RepoName}}", pr = "{{.PrNumber}}", focus = "list", on_close = function() vim.cmd("qa") end})'
- key: "d"
name: "view (nvim)"
command: nvim -c "autocmd User CodeDiffClose qa" -c ":CodeDiff origin/{{.BaseRefName}} origin/{{.HeadRefName}}"
- key: T
name: github actions | enhance
command: ENHANCE_THEME=overnight_slumber gh enhance -R {{.RepoName}} {{.PrNumber}}
universal:
- key: g
name: lazygit
command: cd {{.RepoPath}} && echo {{.RepoPath}} && lazygit
- key: "ctrl+f"
builtin: pageDown
- key: "ctrl+b"
builtin: pageUp

theme:
ui:
sectionsShowCount: true
table:
showSeparator: false # horizontal line separating each item in table
compact: false # compact table rows
colors:
text:
primary: "#cdcecf"
secondary: "#71839b"
inverted: "#131a24"
faint: "#71839b"
warning: "#dbc074"
success: "#81b29a"
error: "#c94f6d"
actor: "#63cdcf"
background:
selected: "#2b3b51"
border:
primary: "#2b3b51"
secondary: "#393b44"
faint: "#2b3b51"

pager:
diff: ""

confirmQuit: false
showAuthorIcons: true
smartFilteringAtLaunch: true
includeReadNotifications: true

repoPaths: {}
3 changes: 2 additions & 1 deletion dot_config/ghostty/config
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ background-blur = true
background-blur-radius = 30

# Font
font-size = 12
font-family = JetBrains Mono
font-size = 14
font-feature = -calt, -liga, -dlig, zero

# Functionality
Expand Down
6 changes: 6 additions & 0 deletions dot_config/nvim/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,9 @@

A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.

## Useful Links

- [my-neovim-pluginlist](https://github.com/yutkat/my-neovim-pluginlist)
- A list of plugins by category. Plugins are shown by stars, last commit, and
commit activity
2 changes: 1 addition & 1 deletion dot_config/nvim/lazyvim.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"extras": [
"lazyvim.plugins.extras.ai.copilot",
"lazyvim.plugins.extras.ai.copilot-native",
"lazyvim.plugins.extras.ai.sidekick",
"lazyvim.plugins.extras.coding.luasnip",
"lazyvim.plugins.extras.coding.neogen",
Expand Down
31 changes: 31 additions & 0 deletions dot_config/nvim/lua/config/autocmds.lua
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,26 @@ end, {
desc = "Toggle btop in terminal",
})

usercmd("Gh", function()
if vim.fn.executable("gh") == 1 then
Snacks.terminal.toggle({ "gh", "dash" }, {
win = vim.g.floating_terminal and {
style = "float",
} or {
style = "terminal",
width = 0,
height = 0,
},
})
else
Snacks.notify.error("gh-dash is not installed. Please install it with: `gh extension install dlvhdr/gh-dash`", {
title = "gh-dash",
})
end
end, {
desc = "Toggle gh-dash in terminal",
})

autocmd("User", {
desc = "Add which key for Git Conflict",
pattern = "GitConflictDetected",
Expand Down Expand Up @@ -153,3 +173,14 @@ autocmd("BufEnter", {
})
end,
})

local mdx_id = augroup("mdx", {
clear = false,
})
autocmd("BufEnter", {
group = mdx_id,
pattern = "*.mdx",
callback = function()
vim.o.filetype = "markdown"
end,
})
26 changes: 26 additions & 0 deletions dot_config/nvim/lua/config/keymaps.lua
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,32 @@ set("n", "<leader>so", ":SearchInBrowser<CR>", {
set("n", "<leader>fw", vim.lsp.buf.add_workspace_folder, { desc = "Add workspace folder" })
set("n", "<leader>fW", vim.lsp.buf.remove_workspace_folder, { desc = "Remove workspace folder" })

-- LSP Selection Ranges, only works for 0.12+
set({ "n", "x" }, "<M-o>", function()
if vim.treesitter.get_parser(nil, nil, { error = false }) then
require("vim.treesitter._select").select_parent(vim.v.count1)
else
vim.lsp.buf.selection_range(vim.v.count1)
end
end, { desc = "Select parent (outer) node" })

set({ "n", "x" }, "<M-i>", function()
if vim.treesitter.get_parser(nil, nil, { error = false }) then
require("vim.treesitter._select").select_child(vim.v.count1)
else
vim.lsp.buf.selection_range(-vim.v.count1)
end
end, { desc = "Select child (inner) node" })

-- Restart neovim, only works for 0.12+
set({ "n", "i", "v" }, "<leader>qr", function()
if vim.fn.has("nvim-0.12") == 0 then
print("Neovim 0.12 or higher is required to restart")
return
end
vim.cmd("restart | silent! lua require('persistence').load()")
end, { desc = "Restart Neovim" })

-- LazyVim specific
del("n", "<leader>L")
set("n", "<leader>Nl", function()
Expand Down
3 changes: 3 additions & 0 deletions dot_config/nvim/lua/config/options.lua
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ vim.cmd("autocmd InsertLeave * set nu rnu")
-- Minimal number of screen lines to keep above and below the cursor.
vim.opt.scrolloff = 10

-- Keep system clipboard separate from vim clipboard
vim.opt.clipboard = ""

-- wezterm won't let vim read from clipboard
Expand Down Expand Up @@ -46,6 +47,8 @@ local unique_id = vim.fn.fnamemodify(workspace_path, ":t") .. "_" .. vim.fn.sha2
local shadafile = cache_dir .. "/myshada/" .. unique_id .. ".shada"
vim.opt.shadafile = shadafile

vim.o.autoread = true

-- Personal - controls floating terminal for various plugins.
vim.g.floating_terminal = false

Expand Down
27 changes: 15 additions & 12 deletions dot_config/nvim/lua/plugins/ai/copilot.lua
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
local disabled_filetypes = {
"markdown",
}

return {
"zbirenbaum/copilot.lua",
"neovim/nvim-lspconfig",
opts = {
---@type SuggestionConfig
---@diagnostic disable-next-line: missing-fields
suggestion = {
---@diagnostic disable-next-line: missing-fields
keymap = {
accept = false,
dismiss = "<C-c>",
servers = {
copilot = {
on_attach = function(client, bufnr)
local ft = vim.bo[bufnr].filetype
if vim.tbl_contains(disabled_filetypes, ft) then
vim.schedule(function()
vim.lsp.buf_detach_client(bufnr, client.id)
end)
end
end,
},
},
filetypes = {
yaml = true,
gitcommit = true,
},
},
}
Loading