diff --git a/Brewfile b/Brewfile index 7afab47..91d3908 100644 --- a/Brewfile +++ b/Brewfile @@ -6,7 +6,7 @@ brew "dockerfile-language-server" brew "dust" brew "eza" brew "fd" -brew "fisher +brew "fisher" brew "fzf" brew "gh" brew "git" diff --git a/config/bat/config b/config/bat/config new file mode 100644 index 0000000..067abd7 --- /dev/null +++ b/config/bat/config @@ -0,0 +1,3 @@ +--theme="ansi" +--italic-text=always +--map-syntax "*.ignore:Git Ignore" diff --git a/config/commitlint/.commitlintrc.json b/config/commitlint/.commitlintrc.json new file mode 100644 index 0000000..577981c --- /dev/null +++ b/config/commitlint/.commitlintrc.json @@ -0,0 +1,2 @@ +{ "extends": ["@commitlint/config-conventional"] } + diff --git a/config/fish/completions/bun.fish b/config/fish/completions/bun.fish index a5c51ae..e262bb6 100644 --- a/config/fish/completions/bun.fish +++ b/config/fish/completions/bun.fish @@ -33,7 +33,7 @@ function __fish__get_bun_bun_js_files end set -l bun_install_boolean_flags yarn production optional development no-save dry-run force no-cache silent verbose global -set -l bun_install_boolean_flags_descriptions "Write a yarn.lock file (yarn v1)" "Don't install devDependencies" "Add dependency to optionalDependencies" "Add dependency to devDependencies" "Don't install devDependencies" "Don't install anything" "Always request the latest versions from the registry & reinstall all dependencies" "Ignore manifest cache entirely" "Don't output anything" "Excessively verbose logging" "Use global folder" +set -l bun_install_boolean_flags_descriptions "Write a yarn.lock file (yarn v1)" "Don't install devDependencies" "Add dependency to optionalDependencies" "Add dependency to devDependencies" "Don't update package.json or save a lockfile" "Don't install anything" "Always request the latest versions from the registry & reinstall all dependencies" "Ignore manifest cache entirely" "Don't output anything" "Excessively verbose logging" "Use global folder" set -l bun_builtin_cmds_without_run dev create help bun upgrade discord install remove add init pm x set -l bun_builtin_cmds_accepting_flags create help bun upgrade discord run init link unlink pm x @@ -183,3 +183,4 @@ complete -c bun -n "__fish_use_subcommand" -a "unlink" -d "Unregister a local np complete -c bun -n "__fish_use_subcommand" -a "pm" -d "Additional package management utilities" -f complete -c bun -n "__fish_use_subcommand" -a "x" -d "Execute a package binary, installing if needed" -f complete -c bun -n "__fish_use_subcommand" -a "outdated" -d "Display the latest versions of outdated dependencies" -f +complete -c bun -n "__fish_use_subcommand" -a "publish" -d "Publish your package from local to npm" -f diff --git a/config/fish/conf.d/xdg.fish b/config/fish/conf.d/0_xdg.fish similarity index 100% rename from config/fish/conf.d/xdg.fish rename to config/fish/conf.d/0_xdg.fish diff --git a/config/fish/conf.d/editor_environment.fish b/config/fish/conf.d/editor_environment.fish index 7052328..a8eb745 100644 --- a/config/fish/conf.d/editor_environment.fish +++ b/config/fish/conf.d/editor_environment.fish @@ -1,3 +1,3 @@ -set -q EDITOR || set -x EDITOR nvim +set -q EDITOR || set -x EDITOR hx set -q VISUAL || set -x VISUAL $EDITOR -set -q MANPAGER || set -x MANPAGER "$EDITOR +Man!" +set -q MANPAGER || set -x MANPAGER "nvim +Man!" diff --git a/config/fish/conf.d/fzf.fish b/config/fish/conf.d/fzf.fish index 3508ff7..cb69894 100644 --- a/config/fish/conf.d/fzf.fish +++ b/config/fish/conf.d/fzf.fish @@ -1,6 +1,6 @@ # fzf.fish is only meant to be used in interactive mode. If not in interactive mode and not in CI, skip the config to speed up shell startup if not status is-interactive && test "$CI" != true - exit + exit end # Because of scoping rules, to capture the shell variables exactly as they are, we must read diff --git a/config/fish/conf.d/fzf_default_opts.fish b/config/fish/conf.d/fzf_default_opts.fish new file mode 100644 index 0000000..75745f3 --- /dev/null +++ b/config/fish/conf.d/fzf_default_opts.fish @@ -0,0 +1 @@ +export FZF_DEFAULT_OPTS_FILE="$XDG_CONFIG_HOME/fzf/config" diff --git a/config/fish/fish_variables b/config/fish/fish_variables index 0f87fe6..98a3d66 100644 --- a/config/fish/fish_variables +++ b/config/fish/fish_variables @@ -33,4 +33,4 @@ SETUVAR fish_pager_color_description:yellow\x1e\x2di SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan SETUVAR fish_pager_color_selected_background:\x2dr -SETUVAR fish_user_paths:/opt/homebrew/bin +SETUVAR fish_user_paths:/Users/chrisvanderloo/\x2ecargo/bin\x1e/opt/homebrew/opt/rustup/bin\x1e/Users/chrisvanderloo/\x2elocal/share/mise/installs/npm\x2dcommitlint\x2dcli/19\x2e7\x2e1/bin\x1e/opt/homebrew/bin diff --git a/config/fzf/config b/config/fzf/config new file mode 100644 index 0000000..9be87fa --- /dev/null +++ b/config/fzf/config @@ -0,0 +1,9 @@ +--color=16 +--color=gutter:-1 +--no-mouse +--margin=1 +--cycle +--layout=reverse +--height=~60% +--preview-window=wrap +--marker="*" diff --git a/config/ghostty/config b/config/ghostty/config index 3595e1a..0fd0547 100644 --- a/config/ghostty/config +++ b/config/ghostty/config @@ -7,7 +7,7 @@ adjust-cell-height = 6 adjust-font-baseline = -2 # bg -background-opacity = 0.95 +background-opacity = 0.9 background-blur-radius = 20 # window diff --git a/config/helix/config.toml b/config/helix/config.toml index 7ac5f7e..7ec7012 100644 --- a/config/helix/config.toml +++ b/config/helix/config.toml @@ -1,4 +1,4 @@ -theme = "catppuccin_latte_transparent" +theme = "catppuccin_dynamic_transparent" [keys.normal] S-k = "hover" diff --git a/config/helix/languages.toml b/config/helix/languages.toml index e44461b..30b207a 100644 --- a/config/helix/languages.toml +++ b/config/helix/languages.toml @@ -5,6 +5,7 @@ args = ["stdio"] [language-server.astro-ls] command = "astro-ls" args = ["--stdio"] +config = { typescript = { tsdk = ".local/share/pnpm/global/5/node_modules/typescript/lib" } } [language-server.biome] command = "biome" @@ -44,7 +45,7 @@ name = "astro" scope = "source.astro" injection-regex = "astro" file-types = ["astro"] -language-servers = ["astro-ls", { name = "typescript-language-server", except-features = [ "format" ] }] +language-servers = ["astro-ls"] formatter = { command = "prettier", args = ["--plugin", "prettier-plugin-astro", "--parser", "astro"] } auto-format = true @@ -72,3 +73,9 @@ name = "javascript" language-servers = [ { name = "typescript-language-server", except-features = [ "format" ] }, "tailwindcss-language-server", "biome"] indent = { tab-width = 2, unit = " " } auto-format = true + +[[language]] +name = "json" +language-servers = [ { name = "typescript-language-server", except-features = [ "format" ] }, "tailwindcss-language-server", "biome"] +indent = { tab-width = 2, unit = " " } +auto-format = true diff --git a/config/helix/themes/catppuccin_dynamic_transparent.toml b/config/helix/themes/catppuccin_dynamic_transparent.toml new file mode 120000 index 0000000..62a4b63 --- /dev/null +++ b/config/helix/themes/catppuccin_dynamic_transparent.toml @@ -0,0 +1 @@ +/Users/chrisvanderloo/.config/helix/themes/catppuccin_latte_transparent.toml \ No newline at end of file diff --git a/config/mise/config.toml b/config/mise/config.toml index c1f29cb..274d9fd 100644 --- a/config/mise/config.toml +++ b/config/mise/config.toml @@ -16,13 +16,22 @@ helm = "latest" aws-iam-authenticator = "latest" cloudflared = "latest" pkl = "latest" -rust = "latest" pulumi = "latest" neovim = "latest" 1password-cli = "latest" -python = "3" +python = "latest" gleam = "latest" yarn = "latest" +"npm:@astrojs/language-server" = "latest" +"npm:@prisma/language-server" = "latest" +"npm:typescript-language-server" = "latest" +"npm:typescript" = "latest" +"npm:prettier-plugin-astro" = "latest" +"npm:tailwindcss-language-server" = "latest" +"npm:prettier" = "latest" +"npm:@commitlint/cli" = "latest" +"npm:@commitlint/config-conventional" = "latest" +rust = "latest" [settings] experimental = true diff --git a/config/starship.toml b/config/starship.toml index 12c1294..4975e56 100644 --- a/config/starship.toml +++ b/config/starship.toml @@ -6,6 +6,8 @@ add_newline = false format = '''$directory$git_branch$git_commit$git_state$git_status$cmd_duration$fill$all$character$prompt''' +command_timeout = 1000 + [fill] symbol = " " @@ -186,3 +188,6 @@ symbol = " " [spack] symbol = "🅢 " + +[swift] +disabled = true diff --git a/config/zed/keymap.json b/config/zed/keymap.json index 6316228..4815d18 100644 --- a/config/zed/keymap.json +++ b/config/zed/keymap.json @@ -1,75 +1,74 @@ [ - { - "context": "Dock", - "bindings": { - "ctrl-w h": ["workspace::ActivatePaneInDirection", "Left"], - "ctrl-w l": ["workspace::ActivatePaneInDirection", "Right"], - "ctrl-w k": ["workspace::ActivatePaneInDirection", "Up"], - "ctrl-w j": ["workspace::ActivatePaneInDirection", "Down"] - } - }, - { - "context": "EmptyPane || SharedScreen", - "bindings": { - "space f": "file_finder::Toggle", - "space /": "pane::DeploySearch", - "space g": [ - "task::Spawn", - { - "task_name": "Lazygit" - } - ], - "space c": [ - "task::Spawn", - { - "task_name": "Lazydocker" - } - ], - "space k": [ - "task::Spawn", - { - "task_name": "k9s" - } - ], - "space r": "task::Spawn" - } - }, - { - "context": "Editor && VimControl && !VimWaiting && !menu", - "bindings": { - "shift-k": "editor::Hover", - "space f": "file_finder::Toggle", - "space d": "diagnostics::Deploy", - "space /": "pane::DeploySearch", - "space s": "outline::Toggle", - "space shift-s": "project_symbols::Toggle", - "space g": [ - "task::Spawn", - { - "task_name": "Lazygit" - } - ], - "space c": [ - "task::Spawn", - { - "task_name": "Lazydocker" - } - ], - "space k": [ - "task::Spawn", - { - "task_name": "k9s" - } - ], - "space r": "task::Spawn" - } - }, - { - "context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting", - "bindings": { - "g a": "editor::ToggleCodeActions", - "space a": "editor::ToggleCodeActions", - "g r": "editor::Rename" - } - } + { + "context": "EmptyPane || not_editing || (vim_mode == normal && vim_operator == none && !VimWaiting)", + "bindings": { + "space f": "file_finder::Toggle", + "space /": "pane::DeploySearch", + "space s": "outline::Toggle", + "space S": "project_symbols::Toggle", + "space e": "project_panel::ToggleFocus", + "space g": "git_panel::ToggleFocus", + "space o": "outline_panel::ToggleFocus", + "space t": "terminal_panel::ToggleFocus", + "space b": "git::Branch", + "space d": "diagnostics::Deploy", + "space r": "task::Spawn", + "space c": "git::ExpandCommitEditor", + "space k": [ + "task::Spawn", + { + "task_name": "k9s" + } + ] + } + }, + { + "context": "Dock", + "bindings": { + "ctrl-w h": "workspace::ActivatePaneLeft", + "ctrl-w l": "workspace::ActivatePaneRight", + "ctrl-w k": "workspace::ActivatePaneUp", + "ctrl-w j": "workspace::ActivatePaneDown" + } + }, + { + "context": "Editor && VimControl && !VimWaiting && !menu", + "bindings": { + "shift-k": "editor::Hover" + } + }, + // { + // "context": "GitPanel && !CommitEditor", + // "bindings": { + // "f": "git::Fetch", + // "p": "git::Pull", + // "P": "git::Push", + // "c": "git::ExpandCommitEditor", + // ".": "git::StageAll", + // "s": "git::ToggleStaged" + // } + // }, + { + "context": "Dock && !Editor", + "bindings": { + "ctrl-d": ["workspace::SendKeystrokes", "j j j j j j"], + "ctrl-u": ["workspace::SendKeystrokes", "k k k k k k"] + } + }, + { + "context": "ProjectPanel && not_editing", + "bindings": { + "n": "project_panel::NewFile", + "N": "project_panel::NewDirectory" + } + }, + { + "context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting", + "bindings": { + "g a": "editor::ToggleCodeActions", + "space a": "editor::ToggleCodeActions", + "g r": "editor::Rename", + "g n": "repl::Run" + } + } ] diff --git a/config/zed/settings.json b/config/zed/settings.json index e6422b4..940066c 100644 --- a/config/zed/settings.json +++ b/config/zed/settings.json @@ -1,128 +1,223 @@ { - "icon_theme": "Material Icon Theme", - "base_keymap": "VSCode", - "telemetry": { - "diagnostics": true, - "metrics": true - }, - "theme": { - "mode": "system", + // Theme + "icon_theme": { + "mode": "dark", "light": "Catppuccin Latte", "dark": "Catppuccin Mocha" }, - "features": { - "edit_prediction_provider": "copilot" + "theme": { + "mode": "dark", + "light": "Catppuccin Latte", + "dark": "Catppuccin Macchiato" }, - "relative_line_numbers": true, + + // Buffer "buffer_font_family": "MonaspiceNe Nerd Font Mono", "tab_size": 2, + "ui_font_size": 15, + "buffer_font_size": 14, + + // Tabs "tabs": { - "file_icons": true + "file_icons": true, + "git_status": true }, - "ui_font_size": 15, - "buffer_font_size": 14.0, + "tab_bar": { + "show_nav_history_buttons": false + }, + + // Vim stuff "vim_mode": true, + "relative_line_numbers": true, + "vertical_scroll_margin": 20, + "terminal": { "dock": "right", - "alternate_scroll": "off", - "blinking": "terminal_controlled", - "copy_on_select": false, "env": { "EDITOR": "zed --wait", "VISUAL": "zed --wait", "MANPAGER": "zed --wait +Man!" }, "font_family": "MonaspiceNe Nerd Font Mono", - "font_size": 14, - "option_as_meta": false, - "working_directory": "current_project_directory", - "line_height": "standard" + "line_height": "standard", + "working_directory": "current_project_directory" + }, + + "jupyter": { + "kernel_selections": { + "python": "python3", + "typescript": "deno", + "javascript": "deno" + } }, + "languages": { "Astro": { "language_servers": [ "astro-language-server", "biome", "tailwindcss-language-server", - "..." + "!prettier" ], - "prettier": { - "allowed": false + "code_actions_on_format": { + "source.fixAll.biome": true + }, + "formatter": { + "language_server": { + "name": "biome" + } } }, - "JavaScript": { - "language_servers": [ - "!typescript-language-server", - "vtsls", - "biome", - "..." - ], - "prettier": { - "allowed": false - } + "Rust": { + "tab_size": 4, + "formatter": "language_server", + "format_on_save": "language_server", + "language_servers": ["rust-analyzer"] + }, + "Prisma": { + "formatter": { + "language_server": { + "name": "prisma-language-server" + } + }, + "language_servers": ["prisma-language-server"] }, "JSON": { - "language_servers": ["biome", "..."], - "prettier": { - "allowed": false + "language_servers": ["vtsls", "biome", "!prettier", "..."], + "code_actions_on_format": { + "source.fixAll.biome": true + }, + "formatter": { + "language_server": { + "name": "biome" + } } }, "JSONC": { - "language_servers": ["biome", "..."], - "prettier": { - "allowed": false + "language_servers": ["vtsls", "biome", "!prettier", "..."], + "code_actions_on_format": { + "source.fixAll.biome": true + }, + "formatter": { + "language_server": { + "name": "biome" + } } }, - "Prisma": { + "JavaScript": { + "language_servers": [ + "vtsls", + "biome", + "tailwindcss-language-server", + "!eslint", + "!prettier", + "!typescript-language-server", + "..." + ], + "code_actions_on_format": { + "source.fixAll.biome": true, + "source.organizeImports.biome": true + }, "formatter": { "language_server": { - "name": "prisma-language-server" + "name": "biome" } - }, - "language_servers": ["prisma-language-server", "!biome"] + } }, "TSX": { "language_servers": [ - "!typescript-language-server", "vtsls", "biome", "tailwindcss-language-server", + "!eslint", + "!prettier", + "!typescript-language-server", "..." ], - "prettier": { - "allowed": false + "code_actions_on_format": { + "source.fixAll.biome": true, + "source.organizeImports.biome": true + }, + "formatter": { + "language_server": { + "name": "biome" + } } }, "TypeScript": { "language_servers": [ - "!typescript-language-server", "vtsls", "biome", "tailwindcss-language-server", + "!eslint", + "!prettier", + "!typescript-language-server", "..." ], - "prettier": { - "allowed": false + "code_actions_on_format": { + "source.fixAll.biome": true, + "source.organizeImports.biome": true + }, + "formatter": { + "language_server": { + "name": "biome" + } } } }, - "formatter": { - "language_server": { - "name": "biome" + + "lsp": { + "rust-analyzer": { + "initialization_options": { + "check": { + "command": "clippy" + } + } + }, + "tailwindcss-language-server": { + "classFunctions": ["twMerge", "twJoin"] } }, - "language_servers": ["!typescript-language-server", "!eslint", "!prettier"], - "code_actions_on_format": { - "source.fixAll.biome": true, - "source.organizeImports.biome": true - }, + "file_types": { "JSONC": ["tsconfig*.json"] }, - "assistant": { + + "features": { + "edit_prediction_provider": "copilot" + }, + + "agent": { + "profiles": { + "write": { + "name": "Write", + "tools": { + "copy_path": true, + "create_directory": true, + "create_file": true, + "delete_path": true, + "diagnostics": true, + "edit_file": true, + "fetch": true, + "list_directory": true, + "move_path": true, + "now": true, + "find_path": true, + "read_file": true, + "grep": true, + "terminal": true, + "thinking": true, + "web_search": true, + "open": true + }, + "enable_all_context_servers": true, + "context_servers": {} + } + }, + "default_profile": "write", "default_model": { "provider": "copilot_chat", - "model": "gpt-4o" + "model": "gpt-4.1" }, "version": "2", "provider": null diff --git a/config/zsh/.zshenv b/config/zsh/.zshenv index 12e23a1..14493bd 100644 --- a/config/zsh/.zshenv +++ b/config/zsh/.zshenv @@ -12,7 +12,7 @@ export XDG_STATE_HOME=$HOME/.local/state export EDITOR=${EDITOR:-hx} export VISUAL=${VISUAL:-hx} -export MANPAGER=${MANPAGER:-hx +Man!} +export MANPAGER=${MANPAGER:-nvim +Man!} export PNPM_BIN="$HOME/.local/share/pnpm" export MISE_BIN="$HOME/.local/share/mise/shims" export PATH="$MISE_BIN:$PNPM_BIN:$PATH"