diff --git a/config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml index 85ca9bc..6006454 100644 --- a/config/alacritty/alacritty.toml +++ b/config/alacritty/alacritty.toml @@ -3,18 +3,11 @@ import = [ "~/.config/alacritty/dank-theme.toml" ] [font] size = 13 -offset = { x = 0, y = 5 } - -[font.normal] -family = "Hack Nerd Font" - -[font.bold] -family = "Hack Nerd Font" - -[font.italic] -family = "Hack Nerd Font" +offset = { x = 0, y = 3 } +normal = { family = "JetBrainsMono Nerd Font", style = "Regular" } [window] +opacity = 0.99 padding.x = 10 padding.y = 10 decorations = "None" @@ -22,3 +15,37 @@ decorations = "None" [cursor] style.shape = "Beam" style.blinking = "Always" + +# Kanagawa Wave Alacritty Colors + +[colors.normal] +black = '#090618' +red = '#c34043' +green = '#76946a' +yellow = '#c0a36e' +blue = '#7e9cd8' +magenta = '#957fb8' +cyan = '#6a9589' +white = '#c8c093' + +[colors.bright] +black = '#727169' +red = '#e82424' +green = '#98bb6c' +yellow = '#e6c384' +blue = '#7fb4ca' +magenta = '#938aa9' +cyan = '#7aa89f' +white = '#dcd7ba' + +[colors.selection] +background = '#2d4f67' +foreground = '#c8c093' + +[[colors.indexed_colors]] +index = 16 +color = '#ffa066' + +[[colors.indexed_colors]] +index = 17 +color = '#ff5d62' diff --git a/config/fish/config.fish b/config/fish/config.fish index 8192297..611d9d7 100644 --- a/config/fish/config.fish +++ b/config/fish/config.fish @@ -126,9 +126,9 @@ function pp set -l selection (cat "$project_file" | awk -F'/' '{print $NF "\t" $0}' | fzf --height 40% --reverse --header="Select Project" --with-nth=1 --delimiter=(printf '\t') | cut -f2) if test -n "$selection" + clear cd "$selection" commandline -f repaint # Ensures the prompt updates after cd - hx end end end @@ -196,29 +196,29 @@ set -g __fish_git_prompt_char_stagedstate '●' set -g __fish_git_prompt_char_untrackedfiles '' # Auto-attach to tmux on interactive shell start -# if status is-interactive && not set -q TMUX -# # Get all session names matching shell, shell-2, shell-3 etc -# set sessions (tmux list-sessions -F '#S' 2>/dev/null) +if status is-interactive && not set -q TMUX + # Get all session names matching shell, shell-2, shell-3 etc + set sessions (tmux list-sessions -F '#S' 2>/dev/null) -# if test (count $sessions) -eq 0 -# tmux new-session -s shell -# else -# # Check if any shell session is unattached and attach it -# set target (tmux list-sessions -F '#{session_name} #{session_attached}' 2>/dev/null \ -# | grep '^shell' | grep ' 0$' | head -1 | awk '{print $1}') + if test (count $sessions) -eq 0 + tmux new-session -s shell + else + # Check if any shell session is unattached and attach it + set target (tmux list-sessions -F '#{session_name} #{session_attached}' 2>/dev/null \ + | grep '^shell' | grep ' 0$' | head -1 | awk '{print $1}') -# if test -n "$target" -# tmux attach -t $target -# else -# # All shell sessions attached — find next number -# set nums 1 -# for s in $sessions -# if string match -rq '^shell-(\d+)$' $s -# set nums $nums (string replace 'shell-' '' $s) -# end -# end -# set next (math (string join \n $nums | sort -n | tail -1) + 1) -# tmux new-session -s shell-$next -# end -# end -# end + if test -n "$target" + tmux attach -t $target + else + # All shell sessions attached — find next number + set nums 1 + for s in $sessions + if string match -rq '^shell-(\d+)$' $s + set nums $nums (string replace 'shell-' '' $s) + end + end + set next (math (string join \n $nums | sort -n | tail -1) + 1) + tmux new-session -s shell-$next + end + end +end diff --git a/config/nvim/init.lua b/config/nvim/init.lua index 37b0005..a4ff848 100644 --- a/config/nvim/init.lua +++ b/config/nvim/init.lua @@ -6,7 +6,7 @@ vim.o.relativenumber = true -- Show relative line numbers vim.o.cursorline = true -- Highlight the line where the cursor is vim.o.wrap = false -- Don't wrap long lines to the next line vim.o.list = true -- Show invisible characters (tabs, trailing spaces) -vim.o.scrolloff = 20 -- Keep 20 lines above/below cursor when scrolling +vim.o.scrolloff = 15 -- Keep 15 lines above/below cursor when scrolling vim.o.winborder = 'rounded' -- Use rounded borders for floating windows vim.o.ignorecase = true -- Ignore case in search patterns vim.o.smartcase = true -- ...unless search contains an uppercase letter diff --git a/config/nvim/lua/autocmds/init.lua b/config/nvim/lua/autocmds/init.lua index 20b3417..f3a00e3 100644 --- a/config/nvim/lua/autocmds/init.lua +++ b/config/nvim/lua/autocmds/init.lua @@ -63,6 +63,28 @@ vim.api.nvim_create_autocmd('LspAttach', { end, }) +-- Define highlight groups +vim.api.nvim_set_hl(0, "TodoFix", { fg = "#FF5555", bold = true }) +vim.api.nvim_set_hl(0, "TodoTodo", { fg = "#FFB86C", bold = true }) +vim.api.nvim_set_hl(0, "TodoNote", { fg = "#A8D8FF", bold = true }) +vim.api.nvim_set_hl(0, "TodoInfo", { fg = "#98DB6F", bold = true }) + +-- Match and highlight keywords in comments +local keywords = { + { pattern = "FIX:.*", group = "TodoFix" }, + { pattern = "TODO:.*", group = "TodoTodo" }, + { pattern = "NOTE:.*", group = "TodoNote" }, + { pattern = "INFO:.*", group = "TodoInfo" }, +} + +vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost" }, { + callback = function() + for _, kw in ipairs(keywords) do + vim.fn.matchadd(kw.group, kw.pattern) + end + end, +}) + -- Format: whole file or visual selection via :Fc local function smart_format() local mode = vim.fn.mode() diff --git a/config/nvim/lua/plugins/init.lua b/config/nvim/lua/plugins/init.lua index ca8ffd9..95e3907 100644 --- a/config/nvim/lua/plugins/init.lua +++ b/config/nvim/lua/plugins/init.lua @@ -2,10 +2,10 @@ vim.pack.add({ { src = "https://github.com/ibhagwan/fzf-lua" }, { src = "https://github.com/neovim/nvim-lspconfig" }, { src = "https://github.com/romus204/tree-sitter-manager.nvim" }, - { src = "https://github.com/catppuccin/nvim", name = "catppuccin" }, - { src = "https://github.com/tribela/transparent.nvim" } + { src = "https://github.com/rebelot/kanagawa.nvim" }, + { src = "https://github.com/tribela/transparent.nvim" }, }) -vim.cmd(":colorscheme catppuccin-nvim") +vim.cmd(":colorscheme kanagawa") require("tree-sitter-manager").setup({})