Compare commits

..

6 Commits

28 changed files with 104 additions and 602 deletions
+2
View File
@@ -181,3 +181,5 @@ fi
# ble.sh
# https://github.com/akinomyoga/ble.sh#13-set-up-bashrc
[[ ${BLE_VERSION-} ]] && ble-attach
if command -v wt >/dev/null 2>&1; then eval "$(command wt config shell init bash)"; fi
+2 -16
View File
@@ -1,4 +1,4 @@
#? Config file for btop v.1.4.7
#? Config file for btop v.1.4.6
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
@@ -14,11 +14,6 @@ truecolor = true
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = false
#* Option to disable presets. Either the default preset, custom presets, or all presets.
#* "Off" All presets are enabled.
#* "Default" preset is disabled.#* "Custom" presets are disabled.#* "All" presets are disabled.
disable_presets = "Off"
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use whitespace " " as separator between different presets.
@@ -29,9 +24,6 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = false
#* Disable all mouse events.
disable_mouse = false
#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = true
@@ -100,9 +92,6 @@ proc_left = false
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = false
#* Should the process list follow the selected process when detailed view is open.
proc_follow_detailed = true
#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = false
@@ -219,9 +208,6 @@ io_graph_combined = false
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""
#* Swap the positions of the upload and download speed graphs. When true, upload will be on top.
swap_upload_download = false
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100
@@ -264,7 +250,7 @@ rsmi_measure_pcie_speeds = true
#* Horizontally mirror the GPU graph.
gpu_mirror_graph = true
#* Set which GPU vendors to show. Available values are "nvidia amd intel apple"
#* Set which GPU vendors to show. Available values are "nvidia amd intel"
shown_gpus = "nvidia amd intel"
#* Custom gpu0 model name, empty string to disable.
@@ -1,123 +0,0 @@
[delta "catppuccin-latte"]
blame-palette = "#eff1f5 #e6e9ef #dce0e8 #ccd0da #bcc0cc"
commit-decoration-style = "#9ca0b0" bold box ul
light = true
file-decoration-style = "#9ca0b0"
file-style = "#4c4f69"
hunk-header-decoration-style = "#9ca0b0" box ul
hunk-header-file-style = bold
hunk-header-line-number-style = bold "#6c6f85"
hunk-header-style = file line-number syntax
line-numbers-left-style = "#9ca0b0"
line-numbers-minus-style = bold "#d20f39"
line-numbers-plus-style = bold "#40a02b"
line-numbers-right-style = "#9ca0b0"
line-numbers-zero-style = "#9ca0b0"
# 35% red 65% base
minus-emph-style = bold syntax "#e5a2b3"
# 20% red 80% base
minus-style = syntax "#e9c4cf"
# 35% green 65% base
plus-emph-style = bold syntax "#b2d5ae"
# 20% green 80% base
plus-style = syntax "#cce1cd"
map-styles = \
bold purple => syntax "#cbb1f2", \
bold blue => syntax "#a6c1f5", \
bold cyan => syntax "#9dd7ef", \
bold yellow => syntax "#eacfa9"
# Should match the name of the bat theme
syntax-theme = Catppuccin Latte
[delta "catppuccin-frappe"]
blame-palette = "#303446 #292c3c #232634 #414559 #51576d"
commit-decoration-style = "#737994" bold box ul
dark = true
file-decoration-style = "#737994"
file-style = "#c6d0f5"
hunk-header-decoration-style = "#737994" box ul
hunk-header-file-style = bold
hunk-header-line-number-style = bold "#a5adce"
hunk-header-style = file line-number syntax
line-numbers-left-style = "#737994"
line-numbers-minus-style = bold "#e78284"
line-numbers-plus-style = bold "#a6d189"
line-numbers-right-style = "#737994"
line-numbers-zero-style = "#737994"
# 35% red 65% base
minus-emph-style = bold syntax "#704f5c"
# 20% red 80% base
minus-style = syntax "#544452"
# 35% green 65% base
plus-emph-style = bold syntax "#596b5e"
# 20% green 80% base
plus-style = syntax "#475453"
map-styles = \
bold purple => syntax "#66597e", \
bold blue => syntax "#505d81", \
bold cyan => syntax "#546b7a", \
bold yellow => syntax "#6f6860"
# Should match the name of the bat theme
syntax-theme = Catppuccin Frappe
[delta "catppuccin-macchiato"]
blame-palette = "#24273a #1e2030 #181926 #363a4f #494d64"
commit-decoration-style = "#6e738d" bold box ul
dark = true
file-decoration-style = "#6e738d"
file-style = "#cad3f5"
hunk-header-decoration-style = "#6e738d" box ul
hunk-header-file-style = bold
hunk-header-line-number-style = bold "#a5adcb"
hunk-header-style = file line-number syntax
line-numbers-left-style = "#6e738d"
line-numbers-minus-style = bold "#ed8796"
line-numbers-plus-style = bold "#a6da95"
line-numbers-right-style = "#6e738d"
line-numbers-zero-style = "#6e738d"
# 35% red 65% base
minus-emph-style = bold syntax "#6a485a"
# 20% red 80% base
minus-style = syntax "#4c3a4c"
# 35% green 65% base
plus-emph-style = bold syntax "#51655a"
# 20% green 80% base
plus-style = syntax "#3e4b4c"
map-styles = \
bold purple => syntax "#5c517c", \
bold blue => syntax "#47557b", \
bold cyan => syntax "#4a6475", \
bold yellow => syntax "#6a635d"
# Should match the name of the bat theme
syntax-theme = Catppuccin Macchiato
[delta "catppuccin-mocha"]
blame-palette = "#1e1e2e #181825 #11111b #313244 #45475a"
commit-decoration-style = "#6c7086" bold box ul
dark = true
file-decoration-style = "#6c7086"
file-style = "#cdd6f4"
hunk-header-decoration-style = "#6c7086" box ul
hunk-header-file-style = bold
hunk-header-line-number-style = bold "#a6adc8"
hunk-header-style = file line-number syntax
line-numbers-left-style = "#6c7086"
line-numbers-minus-style = bold "#f38ba8"
line-numbers-plus-style = bold "#a6e3a1"
line-numbers-right-style = "#6c7086"
line-numbers-zero-style = "#6c7086"
# 35% red 65% base
minus-emph-style = bold syntax "#694559"
# 20% red 80% base
minus-style = syntax "#493447"
# 35% green 65% base
plus-emph-style = bold syntax "#4e6356"
# 20% green 80% base
plus-style = syntax "#394545"
map-styles = \
bold purple => syntax "#5b4e74", \
bold blue => syntax "#445375", \
bold cyan => syntax "#446170", \
bold yellow => syntax "#6b635b"
# Should match the name of the bat theme
syntax-theme = Catppuccin Mocha
@@ -1 +0,0 @@
complete -c dev-switch -f -a '(git worktree list --porcelain 2>/dev/null | string match "worktree *" | string replace "worktree " "" | while read -l p; basename $p; end)'
@@ -1 +0,0 @@
complete -c pandoc -f -a '(string match -r ".*\\.md\$" -- (ls))'
+2
View File
@@ -0,0 +1,2 @@
# worktrunk completions for fish
complete --keep-order --exclusive --command wt --arguments "(test -n \"\$WORKTRUNK_BIN\"; or set -l WORKTRUNK_BIN (type -P wt 2>/dev/null); and COMPLETE=fish \$WORKTRUNK_BIN -- (commandline --current-process --tokenize --cut-at-cursor) (commandline --current-token))"
-52
View File
@@ -1,52 +0,0 @@
function __dev_repo_name
# Use the main worktree (first entry) for consistent naming across worktrees
set -l lines (git worktree list --porcelain | string replace -rf "^worktree " "")
basename $lines[1]
end
function __dev_create_session -a session dir
if test -z "$dir"
set dir (pwd)
end
if not tmux has-session -t "$session" 2>/dev/null
# Unset any devbox environment variables so they can be re-sourced
# in the new directory.
set -l shell env
for var in (set --names --export | string match 'DEVBOX_*')
set -a shell -u $var
end
set -a shell (command -s fish) --login
tmux new-session -d -s "$session" -c "$dir" -n dev $shell
# Ensure that new panes in this session also start with the clean environment.
tmux set-option -t "$session" default-command (string join ' ' -- $shell)
set -l left (tmux display-message -t "$session:dev" -p '#{pane_id}')
tmux split-window -h -t "$left" -c "$dir" $shell
set -l right (tmux display-message -t "$session:dev" -p '#{pane_id}')
tmux split-window -v -t "$right" -c "$dir" $shell
set -l bottom_right (tmux display-message -t "$session:dev" -p '#{pane_id}')
tmux send-keys -t "$left" 'vim' Enter
tmux send-keys -t "$right" 'claude' Enter
tmux select-pane -t "$bottom_right"
end
end
function __dev_attach_session -a session
if test -z "$TMUX"
tmux attach-session -t "$session"
else
set -l current_session (tmux display-message -p '#S')
if test "$current_session" != "$session"
tmux switch-client -t "$session"
end
end
end
function __dev_wt_session_name -a repo branch
set -l name "$repo-"(string replace -a '/' '-' -- $branch | string replace -a '\\' '-')
string replace -a '.' '-' -- $name
end
+1 -1
View File
@@ -1,4 +1,4 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:4300
SETUVAR fish_user_paths:/home/tgrosinger/go/bin\x1e/home/tgrosinger/\x2enpm\x2dglobal/bin\x1e/home/tgrosinger/\x2edotfiles/bin/linux
SETUVAR fish_user_paths:/home/tgrosinger/\x2edotfiles/bin/linux
-74
View File
@@ -1,74 +0,0 @@
function dev-wt -d "Switch to a tmux dev session for a worktree, creating it if needed" -a name
set -l repo (__dev_repo_name 2>/dev/null)
if test -z "$repo"
echo "Not in a git repository"
return 1
end
# Default to current branch when no argument given
if test -z "$name"
set name (git branch --show-current 2>/dev/null)
if test -z "$name"
echo "Usage: dev-wt [worktree-name]"
return 1
end
end
set -l wt_path ""
set -l wt_branch ""
# Search for worktree by directory basename or branch name
set -l current_path ""
set -l current_branch ""
for line in (git worktree list --porcelain)
if string match -q "worktree *" -- $line
set current_path (string replace "worktree " "" -- $line)
set current_branch ""
else if string match -q "branch *" -- $line
set current_branch (string replace "branch refs/heads/" "" -- $line)
if test (basename "$current_path") = "$name"; or test "$current_branch" = "$name"
set wt_path $current_path
set wt_branch $current_branch
break
end
end
end
# If worktree not found, create it
if test -z "$wt_path"
set -l main_wt_path (git worktree list --porcelain | head -1 | string replace "worktree " "")
set -l parent_dir (dirname "$main_wt_path")
set wt_path "$parent_dir/$repo-$name"
set wt_branch "$name"
if test -d "$wt_path"
echo "Error: directory already exists: $wt_path"
return 1
end
# Create branch from main if it doesn't exist
if not git rev-parse --verify "$wt_branch" >/dev/null 2>&1
echo "Creating branch '$wt_branch' from main..."
git branch "$wt_branch" main
end
echo "Creating worktree at $wt_path..."
git worktree add "$wt_path" "$wt_branch"
# Run repo-specific setup hook if present
set -l setup_hook "$main_wt_path/.worktree-setup.sh"
if test -x "$setup_hook"
echo "Running worktree setup hook..."
bash "$setup_hook" "$wt_path" "$main_wt_path" "$wt_branch"
end
end
if test -z "$wt_branch"
echo "Worktree '$name' has no branch (detached HEAD)"
return 1
end
set -l session (__dev_wt_session_name $repo $wt_branch)
__dev_create_session $session $wt_path
__dev_attach_session $session
end
+28 -4
View File
@@ -1,5 +1,29 @@
function dev -d "Create and attach to a tmux dev session for the current directory"
set -l session (basename (pwd) | string replace -a '.' '-')
__dev_create_session $session
__dev_attach_session $session
function dev -d "Create and attach to a tmux dev session for the current git branch"
set -l branch (git branch --show-current 2>/dev/null)
if test -z "$branch"
echo "Not in a git repository"
return 1
end
set -l session (string replace -a '/' '-' -- $branch | string replace -a '\\' '-')
if not tmux has-session -t "$session" 2>/dev/null
tmux new-session -d -s "$session" -c (pwd) -n dev
tmux split-window -h -t "$session:dev" -c (pwd)
tmux split-window -v -t "$session:dev.0" -c (pwd)
tmux split-window -v -t "$session:dev.2" -c (pwd)
tmux send-keys -t "$session:dev.1" 'vim' Enter
tmux send-keys -t "$session:dev.2" 'claude' Enter
tmux send-keys -t "$session:dev.3" 'pnpm i && pnpm dev' Enter
tmux select-pane -t "$session:dev.0"
end
if test -z "$TMUX"
exec tmux attach-session -t "$session"
else
set -l current_session (tmux display-message -p '#S')
if test "$current_session" != "$session"
exec tmux switch-client -t "$session"
end
end
end
-7
View File
@@ -1,7 +0,0 @@
function pandoc -d "Convert a markdown file to docx using pandoc in podman" -a input
set -l output (string replace -r '\.md$' '.docx' $input)
podman run --rm -v "$(pwd):/data:z" \
--userns keep-id:uid=1000,gid=1000 \
pandoc/core:3.8-alpine --from markdown --to docx -o "/data/$output" "/data/$input"
end
-45
View File
@@ -1,45 +0,0 @@
function __create_session
set session "process-compose"
set dir "/home/tgrosinger/obsidian"
if not tmux has-session -t "$session" 2>/dev/null
# Unset any devbox environment variables so they can be re-sourced
# in the new directory.
set -l shell env
for var in (set --names --export | string match 'DEVBOX_*')
set -a shell -u $var
end
set -a shell (command -s fish) --login
tmux new-session -d -s "$session" -c "$dir" -n dev $shell
# Ensure that new panes in this session also start with the clean environment.
tmux set-option -t "$session" default-command (string join ' ' -- $shell)
set -l left (tmux display-message -t "$session:dev" -p '#{pane_id}')
tmux split-window -h -t "$left" -c "$dir" $shell
set -l right (tmux display-message -t "$session:dev" -p '#{pane_id}')
tmux send-keys -t "$left" 'devbox services attach' Enter
tmux select-pane -t "$right"
end
end
function __attach_session
set session "process-compose"
if test -z "$TMUX"
tmux attach-session -t "$session"
else
set -l current_session (tmux display-message -p '#S')
if test "$current_session" != "$session"
tmux switch-client -t "$session"
end
end
end
function pc -d "Create and attach to a tmux session for process compose in Obsidian"
__create_session
__attach_session
end
-4
View File
@@ -1,4 +0,0 @@
function record -d "Capture a screen recording with no audio"
wf-recorder -c libopenh264 --no-audio -g "$(slurp)" -f output.mp4
end
@@ -1,7 +0,0 @@
function reencode -d "Re-encode a video to VBR with no audio" -a input
set -l name (string replace -r '\.[^.]+$' '' $input)
set -l ext (string replace -r '.*\.' '' $input)
set -l output "$name-reenc.$ext"
ffmpeg -i $input -c:v libopenh264 -crf 23 -preset slow -an $output
end
+15
View File
@@ -0,0 +1,15 @@
# worktrunk shell integration for fish
# Sources full integration from binary on first use.
# Docs: https://worktrunk.dev/config/#shell-integration
# Check: wt config show | Uninstall: wt config shell uninstall
function wt
command wt config shell init fish | source
# Check both command exit code ($pipestatus[1]) and source exit code ($pipestatus[2])
# If source fails, the function isn't replaced and we'd infinite-loop calling ourselves
set -l wt_status $pipestatus[1]
set -l source_status $pipestatus[2]
test $wt_status -eq 0; or return $wt_status
test $source_status -eq 0; or return $source_status
wt $argv
end
-3
View File
@@ -7,9 +7,6 @@ promptToReturnFromSubprocess: false # removes "press enter to return to lazygit"
notARepository: 'skip'
git:
autoForwardBranches: "none"
pagers:
- pager: delta --paging=never --line-numbers --hyperlinks --hyperlinks-file-link-format="lazygit-edit://{path}:{line}"
- pager: delta --paging=never --line-numbers --no-gitconfig --light
os:
editPreset: "nvim"
gui:
@@ -1,7 +0,0 @@
{
// markdownlint-cli2 base config used by nvim-lint (see lua/plugins/markdown.lua).
"config": {
// Disable line-length errors; long lines are soft-wrapped on purpose.
"MD013": false
}
}
+32 -30
View File
@@ -1,44 +1,46 @@
{
"LazyVim": { "branch": "main", "commit": "83d90f339defdb109a6ede333865a66ffc7ef6aa" },
"SchemaStore.nvim": { "branch": "main", "commit": "1ccbd3720b5064146b16d7761957da302ea1e86f" },
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
"CopilotChat.nvim": { "branch": "main", "commit": "21bdecb25aa72119d11d7fc08c7e0ce323f1b540" },
"LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" },
"SchemaStore.nvim": { "branch": "main", "commit": "fb7b9034285a5658c746faa12eff8c1c9d9b11b1" },
"blink-copilot": { "branch": "main", "commit": "7ad8209b2f880a2840c94cdcd80ab4dc511d4f39" },
"blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"catppuccin": { "branch": "main", "commit": "426dbebe06b5c69fd846ceb17b42e12f890aedf1" },
"code-review.nvim": { "branch": "main", "commit": "ed91462e20bd08c3be71efb11a4a7d00459f0b47" },
"conform.nvim": { "branch": "master", "commit": "dca1a190aa85f9065979ef35802fb77131911106" },
"diffview.nvim": { "branch": "main", "commit": "fe01c7c3f11575c8d732fc0c1d52890d33ce41c0" },
"catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" },
"conform.nvim": { "branch": "master", "commit": "238f542a118984a88124fc915d5b981680418707" },
"copilot.lua": { "branch": "master", "commit": "0ab400d547814b04b39a069208ff7b40ab22dfb5" },
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"focus.nvim": { "branch": "master", "commit": "8732b45ceef77b576e60442e768437bce7915107" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "42d6aed4e94e0f0bbced16bbdcc42f57673bd75e" },
"grug-far.nvim": { "branch": "main", "commit": "21790e59dd0109a92a70cb874dd002af186314f5" },
"grug-far.nvim": { "branch": "main", "commit": "794f03c97afc7f4b03fb6ec5111be507df1850cf" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" },
"lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" },
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "1423254f58a3407a5afd5ade0ccd901f3eecc6ba" },
"mason.nvim": { "branch": "main", "commit": "e54f5bf5f12c560da31c17eee5b3e1bd369f3ff9" },
"mini.ai": { "branch": "main", "commit": "7e10ce8468c0fce4f527ae2c0e5c484f7667f73d" },
"mini.diff": { "branch": "main", "commit": "0ee0459152b141c0e1b0931eb6949105be4850a9" },
"mini.icons": { "branch": "main", "commit": "bac6317300e205335df425296570d84322730067" },
"mini.pairs": { "branch": "main", "commit": "42387c7fe68fc0b6e95eaf37f1bb76e7bffaa0d9" },
"mini.surround": { "branch": "main", "commit": "2715e04bea3ec9244f15b421dc5b18c0fe326210" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "80c0130c5f16b551865a69e832f1feadeedb5fbe" },
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
"mini.ai": { "branch": "main", "commit": "bfb26d9072670c3aaefab0f53024b2f3729c8083" },
"mini.diff": { "branch": "main", "commit": "6010e588e9ed14724880f244d7fa3df8f0be3f46" },
"mini.icons": { "branch": "main", "commit": "efc85e42262cd0c9e1fdbf806c25cb0be6de115c" },
"mini.pairs": { "branch": "main", "commit": "d5a29b6254dad07757832db505ea5aeab9aad43a" },
"mini.surround": { "branch": "main", "commit": "cc7b9d0a056b5fa6915ffac1cb91f29bf7c96f69" },
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-ansible": { "branch": "main", "commit": "c7f595d568b588942d4d0c37b5cd6cae3764a148" },
"nvim-lint": { "branch": "master", "commit": "eab58b48eb11d7745c11c505e0f3057165902461" },
"nvim-lspconfig": { "branch": "master", "commit": "451d4ef9abd4f0f08e379ef0d55d1c391b6125a7" },
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e" },
"nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" },
"nvim-ansible": { "branch": "main", "commit": "bba61168b7aef735e7f950fdfece5ef6c388eacf" },
"nvim-lint": { "branch": "master", "commit": "ca6ea12daf0a4d92dc24c5c9ae22a1f0418ade37" },
"nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" },
"nvim-treesitter": { "branch": "main", "commit": "8aada0e3940c573e38b417a226b43bc8675f8958" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "baa6b4ec28c8be5e4a96f9b1b6ae9db85ec422f8" },
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"render-markdown.nvim": { "branch": "main", "commit": "629eb9533ec989d9d5c6cab8f3ad5372422c24e0" },
"sidekick.nvim": { "branch": "main", "commit": "208e1c5b8170c01fd1d07df0139322a76479b235" },
"snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"render-markdown.nvim": { "branch": "main", "commit": "c54380dd4d8d1738b9691a7c349ecad7967ac12e" },
"sidekick.nvim": { "branch": "main", "commit": "c2bdf8cfcd87a6be5f8b84322c1b5052e78e302e" },
"snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
"tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
"vim-tmux-navigator": { "branch": "master", "commit": "e41c431a0c7b7388ae7ba341f01a0d217eb3a432" },
"vim-tmux-navigator": { "branch": "master", "commit": "c45243dc1f32ac6bcf6068e5300f3b2b237e576a" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}
+2
View File
@@ -1,5 +1,7 @@
{
"extras": [
"lazyvim.plugins.extras.ai.copilot",
"lazyvim.plugins.extras.ai.copilot-chat",
"lazyvim.plugins.extras.ai.sidekick",
"lazyvim.plugins.extras.coding.mini-surround",
"lazyvim.plugins.extras.editor.mini-diff",
-7
View File
@@ -1,10 +1,3 @@
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here
vim.keymap.set("n", "<leader>aP", function()
Snacks.picker.files({
cwd = vim.fn.expand("~/.claude/plans"),
title = "Claude plans",
})
end, { desc = "Find Claude plan" })
@@ -1,72 +0,0 @@
-- Cheatsheet
--
-- Workflow: open a plan/diff from Claude Code, mark it up, copy, paste back.
-- Works inside Diffview buffers as well.
--
-- Keymaps:
-- <leader>rc Add comment at cursor or visual selection
-- <leader>rp Preview all comments (editable buffer)
-- <leader>ry Copy review to clipboard (paste into Claude Code)
-- <leader>rs Show comments at cursor
-- <leader>rl List all comments (Telescope/fzf/quickfix)
-- <leader>rd Delete comment at cursor
-- <leader>rx Clear all comments
-- <leader>rw Save review to file
--
-- Inside the comment input window: <C-s> submits, <Esc> or q cancels.
-- (Terminals can't distinguish <C-CR> from <CR>, so we bind <C-s> instead.)
return {
{
"folke/which-key.nvim",
opts = {
spec = {
{ "<leader>r", group = "review" },
},
},
},
{
"choplin/code-review.nvim",
cmd = {
"CodeReviewComment",
"CodeReviewShowComment",
"CodeReviewList",
"CodeReviewPreview",
"CodeReviewSave",
"CodeReviewCopy",
"CodeReviewClear",
"CodeReviewDeleteComment",
},
keys = {
{ "<leader>rc", mode = { "n", "v" }, desc = "Code review: add comment" },
{ "<leader>rp", desc = "Code review: preview" },
{ "<leader>ry", desc = "Code review: copy to clipboard" },
{ "<leader>rs", desc = "Code review: show at cursor" },
{ "<leader>rl", desc = "Code review: list comments" },
{ "<leader>rd", desc = "Code review: delete at cursor" },
{ "<leader>rx", desc = "Code review: clear all" },
{ "<leader>rw", desc = "Code review: save to file" },
},
opts = {
ui = {
input_window = {
title = " Add Comment (C-s to submit) ",
},
},
output = {
-- Flat format optimized for pasting into AI assistants like Claude Code:
-- path/to/file.lua:L42: comment text
format = "minimal",
},
},
init = function()
vim.api.nvim_create_autocmd("User", {
pattern = "CodeReviewInputEnter",
callback = function(ev)
local funcs = require("code-review").get_input_buffer_functions(ev.data.buf)
vim.keymap.set({ "i", "n" }, "<C-s>", funcs.submit, { buffer = ev.data.buf })
end,
})
end,
},
}
@@ -1,62 +0,0 @@
-- Cheatsheet
--
-- Keymaps:
-- <leader>gv Toggle working-tree diff (uncommitted changes vs HEAD)
-- <leader>gV File history for the whole branch
-- <leader>gH File history for the current file (archaeology)
--
-- DiffviewOpen — compare two states, flat list of changed files:
-- :DiffviewOpen uncommitted changes
-- :DiffviewOpen HEAD~3 last 3 commits + uncommitted
-- :DiffviewOpen main...feature PR-style: what feature adds vs main
--
-- DiffviewFileHistory — browse commits over time, pick one to see its diff:
-- :DiffviewFileHistory every commit reachable from HEAD
-- :DiffviewFileHistory % only commits touching current file
-- :DiffviewFileHistory path/to/dir only commits touching that path
-- :DiffviewFileHistory --range=main..HEAD only commits on this branch
--
-- Inside the view: q closes, <tab>/<s-tab> next/prev file, g? for full help.
return {
{
"dlyongemallo/diffview.nvim",
cmd = {
"DiffviewOpen",
"DiffviewClose",
"DiffviewToggleFiles",
"DiffviewFocusFiles",
"DiffviewRefresh",
"DiffviewFileHistory",
},
keys = {
{
"<leader>gv",
function()
if next(require("diffview.lib").views) == nil then
vim.cmd("DiffviewOpen")
else
vim.cmd("DiffviewClose")
end
end,
desc = "Diffview toggle (working tree)",
},
{ "<leader>gV", "<cmd>DiffviewFileHistory<cr>", desc = "Diffview file history (branch)" },
{ "<leader>gH", "<cmd>DiffviewFileHistory %<cr>", desc = "Diffview file history (current file)" },
},
opts = {
-- Attach LSP to the working-tree side so gd/references/diagnostics work.
default_args = {
DiffviewOpen = { "--imply-local" },
DiffviewFileHistory = { "--imply-local" },
},
enhanced_diff_hl = true,
view = {
merge_tool = {
layout = "diff3_mixed",
disable_diagnostics = true,
},
},
},
},
}
@@ -1,12 +0,0 @@
return {
-- Point markdownlint-cli2 at a global config so MD013 (line-length) stays
-- disabled everywhere. The linter runs over stdin, so it can't reliably
-- auto-discover a per-project config; pass --config explicitly instead.
{
"mfussenegger/nvim-lint",
opts = function()
local config = vim.fn.stdpath("config") .. "/.markdownlint-cli2.jsonc"
require("lint").linters["markdownlint-cli2"].args = { "--config", config, "-" }
end,
},
}
@@ -1,20 +0,0 @@
return {
"folke/persistence.nvim",
init = function()
vim.api.nvim_create_autocmd("VimEnter", {
group = vim.api.nvim_create_augroup("PersistenceAutoload", { clear = true }),
nested = true,
callback = function()
if vim.fn.argc() == 0 then
require("persistence").load()
end
end,
})
vim.api.nvim_create_autocmd({ "BufWritePost", "FocusLost" }, {
group = vim.api.nvim_create_augroup("PersistenceCrashSave", { clear = true }),
callback = function()
require("persistence").save()
end,
})
end,
}
-3
View File
@@ -243,9 +243,6 @@ bindsym $mod+Shift+s exec grim -c -g "$(slurp)" - | satty --early-exit --output-
# Possible fix for using web clipper.
for_window [class="obsidian"] focus_on_window_activation focus
# Handy transcribing
bindsym $mod+o exec handy --toggle-transcription
#
# Theme
#
-10
View File
@@ -57,12 +57,7 @@
mnemonicPrefix = true
renames = true
[include]
path = /home/tgrosinger/.config/delta/themes/catppuccin.gitconfig
[delta]
# Does not behave well for comments
#features = catppuccin-latte
navigate = true
light = true
side-by-side = true
@@ -98,8 +93,3 @@
[init]
defaultBranch = main
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
+1 -13
View File
@@ -14,11 +14,7 @@ set -g set-clipboard on
### Reload the config with r
bind-key r source-file ~/.tmux.conf\; display-message "Reloaded config"
### Kill the current session
bind-key X confirm-before -p "Kill session #S? (y/n)" kill-session
### Mouse mode on by default; toggle with prefix + m
set -g mouse on
### Toggle Mouse Mode
bind-key m set-window-option mouse\; display-message "mouse support is now #{?mouse,on,off}"
### Open LazyGit in a popup
@@ -77,14 +73,6 @@ set -g @catppuccin_window_status_enable "no"
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'catppuccin/tmux'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
# Session persistence (resurrect + continuum)
set -g @continuum-restore 'on'
set -g @continuum-save-interval '10'
set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-strategy-nvim 'session'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
+16 -25
View File
@@ -6,15 +6,6 @@ echo "Installing homebrew"
# NOTE: Do not brew install anything with a dependency on node.
# Instead, install with npm -g.
#
# NPM configured with a different home directory to avoid conflicting with devbox global.
#
# npm config set prefix $HOME/.npm-global
# fish_add_path $HOME/.npm-global/bin
# npm install -g @anthropic-ai/sandbox-runtime
# NOTE: claude was installed using the install script:
# curl -fsSL https://claude.ai/install.sh | bash
brew install \
anomalyco/tap/opencode \
@@ -37,8 +28,10 @@ brew install \
restic \
ripgrep \
stow \
tmux
tmux \
worktrunk
#crane \
#deno \
#go \
#gron \
#hadolint \
@@ -47,9 +40,6 @@ brew install \
#stripe-cli \
#visidata \
# OpenAI Codex
brew install --cask codex
brew services start atuin
# Previously these were installed with npm because I didn't want to use brew to
@@ -58,10 +48,12 @@ brew services start atuin
#npm install -g mjml
#npm install -g jsonlint
# Install ble.sh
# https://github.com/akinomyoga/ble.sh
# Install system packages
sudo dnf install \
alacritty \
bubblewrap \
copyq \
direnv \
distrobox \
@@ -71,7 +63,6 @@ sudo dnf install \
podman \
qalculate qalculate-gtk \ # Homebrew version installs x11 and waylany in brew.
slurp \
socat \
wf-recorder
# Install tailscale
@@ -81,20 +72,20 @@ sudo dnf install \
# https://github.com/Satty-org/Satty
# Install flatpaks
flatpak install flathub com.github.jeromerobert.pdfarranger
flatpak install flathub fr.handbrake.ghb
flatpak install io.dbeaver.DBeaverCommunity
flatpak install flathub org.gimp.GIMP
flatpak install flathub org.gnucash.GnuCash
flatpak install flathub org.kde.digikam
flatpak install flathub org.libreoffice.LibreOffice
flatpak install flathub org.kde.okular
flatpak install flathub org.inkscape.Inkscape
flatpak install flathub org.kde.kdenlive
flatpak install flathub org.kde.skanpage
flatpak install flathub org.gimp.GIMP
flatpak install flathub org.gimp.GIMP.Plugin.GMic
flatpak install flathub org.gnucash.GnuCash
flatpak install flathub org.inkscape.Inkscape
flatpak install flathub org.jellyfin.JellyfinDesktop
flatpak install flathub org.kde.digikam
flatpak install flathub org.kde.kdenlive
flatpak install flathub org.kde.okular
flatpak install flathub org.kde.skanpage
flatpak install flathub org.libreoffice.LibreOffice
flatpak install flathub org.musicbrainz.Picard
flatpak install flathub fr.handbrake.ghb
flatpak install flathub com.github.jeromerobert.pdfarranger
# Install devbox
# https://www.jetify.com/docs/devbox/installing-devbox