summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--ghostty/.local/share/ghostty/themes/melange_dark.txt21
-rw-r--r--ghostty/.local/share/ghostty/themes/melange_light.txt21
-rw-r--r--ghostty/Library/Application Support/com.mitchellh.ghostty/config51
-rw-r--r--ncmpcpp/.config/ncmpcpp/config1
-rw-r--r--neovide/.config/neovide/config.toml3
-rw-r--r--neovim/.config/nvim/ginit.vim8
-rw-r--r--neovim/.config/nvim/lua/config/colourscheme.lua2
-rw-r--r--neovim/.config/nvim/lua/config/lazy.lua3
-rw-r--r--neovim/.config/nvim/lua/config/lualine.lua216
-rw-r--r--neovim/.config/nvim/lua/plugins/aider.lua23
-rw-r--r--neovim/.config/nvim/lua/plugins/codecompanion.lua31
-rw-r--r--neovim/.config/nvim/lua/plugins/gen.lua7
-rw-r--r--neovim/.config/nvim/lua/plugins/goyo.lua16
-rw-r--r--neovim/.config/nvim/lua/plugins/lspsaga.lua6
-rw-r--r--neovim/.config/nvim/lua/plugins/lualine.lua (renamed from neovim/.config/nvim/lua/plugins/galaxyline.lua)30
-rw-r--r--neovim/.config/nvim/lua/plugins/neogit.lua8
-rw-r--r--neovim/.config/nvim/lua/plugins/noice.lua94
-rw-r--r--neovim/.config/nvim/lua/plugins/none_ls.lua32
-rw-r--r--neovim/.config/nvim/lua/plugins/nvim_cmp.lua18
-rw-r--r--neovim/.config/nvim/lua/plugins/nvim_dap.lua6
-rw-r--r--neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua113
-rw-r--r--neovim/.config/nvim/lua/plugins/tabby.lua1
-rw-r--r--neovim/.config/nvim/lua/plugins/telescope.lua45
-rw-r--r--neovim/.config/nvim/lua/plugins/vim_svelte_plugin.lua6
-rw-r--r--neovim/.config/nvim/lua/settings.lua47
-rw-r--r--starship/.config/starship.toml224
-rw-r--r--tmux/.tmux.conf56
-rw-r--r--wezterm/.wezterm.lua4
-rw-r--r--zsh/.zshenv5
-rw-r--r--zsh/.zshrc12
31 files changed, 1020 insertions, 91 deletions
diff --git a/.gitignore b/.gitignore
index 3c02d41..df67901 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
neovim/.local/share/nvim/site/pack/
neovim/.config/nvim/lazy-lock.json
.DS_Store
+.aider*
diff --git a/ghostty/.local/share/ghostty/themes/melange_dark.txt b/ghostty/.local/share/ghostty/themes/melange_dark.txt
new file mode 100644
index 0000000..dffef20
--- /dev/null
+++ b/ghostty/.local/share/ghostty/themes/melange_dark.txt
@@ -0,0 +1,21 @@
+background = #292522
+foreground = #ECE1D7
+cursor-color = #ECE1D7
+selection-background = #403A36
+selection-foreground = #ECE1D7
+palette = 0=#34302C
+palette = 1=#BD8183
+palette = 2=#78997A
+palette = 3=#E49B5D
+palette = 4=#7F91B2
+palette = 5=#B380B0
+palette = 6=#7B9695
+palette = 7=#C1A78E
+palette = 8=#867462
+palette = 9=#D47766
+palette = 10=#85B695
+palette = 11=#EBC06D
+palette = 12=#A3A9CE
+palette = 13=#CF9BC2
+palette = 14=#89B3B6
+palette = 15=#ECE1D7
diff --git a/ghostty/.local/share/ghostty/themes/melange_light.txt b/ghostty/.local/share/ghostty/themes/melange_light.txt
new file mode 100644
index 0000000..2b2baff
--- /dev/null
+++ b/ghostty/.local/share/ghostty/themes/melange_light.txt
@@ -0,0 +1,21 @@
+background = #F1F1F1
+foreground = #54433A
+cursor-color = #54433A
+selection-background = #D9D3CE
+selection-foreground = #54433A
+palette = 0=#E9E1DB
+palette = 1=#C77B8B
+palette = 2=#6E9B72
+palette = 3=#BC5C00
+palette = 4=#7892BD
+palette = 5=#BE79BB
+palette = 6=#739797
+palette = 7=#7D6658
+palette = 8=#A98A78
+palette = 9=#BF0021
+palette = 10=#3A684A
+palette = 11=#A06D00
+palette = 12=#465AA4
+palette = 13=#904180
+palette = 14=#3D6568
+palette = 15=#54433A
diff --git a/ghostty/Library/Application Support/com.mitchellh.ghostty/config b/ghostty/Library/Application Support/com.mitchellh.ghostty/config
new file mode 100644
index 0000000..3a0a70b
--- /dev/null
+++ b/ghostty/Library/Application Support/com.mitchellh.ghostty/config
@@ -0,0 +1,51 @@
+# This is the configuration file for Ghostty.
+#
+# This template file has been automatically created at the following
+# path since Ghostty couldn't find any existing config files on your system:
+#
+# /Users/michael/Library/Application Support/com.mitchellh.ghostty/config
+#
+# The template does not set any default options, since Ghostty ships
+# with sensible defaults for all options. Users should only need to set
+# options that they want to change from the default.
+#
+# Run `ghostty +show-config --default --docs` to view a list of
+# all available config options and their default values.
+#
+# Additionally, each config option is also explained in detail
+# on Ghostty's website, at https://ghostty.org/docs/config.
+
+# Config syntax crash course
+# ==========================
+# # The config file consists of simple key-value pairs,
+# # separated by equals signs.
+font-family = SarasaFixedJ Nerd Font Mono
+font-size = 13
+# window-padding-x = 2
+#
+# # Spacing around the equals sign does not matter.
+# # All of these are identical:
+# key=value
+# key= value
+# key =value
+# key = value
+#
+# # Any line beginning with a # is a comment. It's not possible to put
+# # a comment after a config option, since it would be interpreted as a
+# # part of the value. For example, this will have a value of "#123abc":
+# background = #123abc
+#
+# # Empty values are used to reset config keys to default.
+# key =
+#
+# # Some config options have unique syntaxes for their value,
+# # which is explained in the docs for that config option.
+# # Just for example:
+# resize-overlay-duration = 4s 200ms
+theme = light:nord-light,dark:nord
+macos-titlebar-style = native
+shell-integration-features = title,sudo,cursor
+font-thicken = true
+font-thicken-strength = 0
+confirm-close-surface = false
+macos-option-as-alt = left
diff --git a/ncmpcpp/.config/ncmpcpp/config b/ncmpcpp/.config/ncmpcpp/config
new file mode 100644
index 0000000..eba20f5
--- /dev/null
+++ b/ncmpcpp/.config/ncmpcpp/config
@@ -0,0 +1 @@
+song_columns_list_format = (20)[green]{a} (11f)[blue]{yr} (20)[blue]{b} (3f)[blue]{dE:D#}|{} (3f)[cyan]{n:#} (45)[cyan]{t} (7f)[magenta]{lr}
diff --git a/neovide/.config/neovide/config.toml b/neovide/.config/neovide/config.toml
new file mode 100644
index 0000000..33e1804
--- /dev/null
+++ b/neovide/.config/neovide/config.toml
@@ -0,0 +1,3 @@
+fork = true
+frame = "transparent"
+tabs = false
diff --git a/neovim/.config/nvim/ginit.vim b/neovim/.config/nvim/ginit.vim
index fb39590..da8ff9a 100644
--- a/neovim/.config/nvim/ginit.vim
+++ b/neovim/.config/nvim/ginit.vim
@@ -1,8 +1,14 @@
if exists('g:GtkGuiLoaded')
call rpcnotify(1, 'Gui', 'Font', 'Iosevka SS10 12')
call rpcnotify(1, 'Gui', 'Option', 'Tabline', 1)
+elseif exists("g:neovide")
+ set guifont=SarasaMonoCL\ Nerd\ Font\ Propo:h14
+ let g:neovide_cursor_animation_length = 0
+ let g:neovide_position_animation_length = 0
+ let g:neovide_scroll_animation_length = 0
+ let g:neovide_theme = 'auto'
else
- GuiFont Iosevka SS10:h12
+ GuiFont SarasaMonoCL Nerd Font Propo:h14
endif
if has('autocmd') && exists('g:GtkGuiLoaded')
diff --git a/neovim/.config/nvim/lua/config/colourscheme.lua b/neovim/.config/nvim/lua/config/colourscheme.lua
index edba16f..6450d46 100644
--- a/neovim/.config/nvim/lua/config/colourscheme.lua
+++ b/neovim/.config/nvim/lua/config/colourscheme.lua
@@ -1,4 +1,4 @@
-local colorscheme = "xcode"
+local colorscheme = "nord"
vim.o.background = "light"
local ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme)
if not ok then
diff --git a/neovim/.config/nvim/lua/config/lazy.lua b/neovim/.config/nvim/lua/config/lazy.lua
index 7e08cf4..fd90ac4 100644
--- a/neovim/.config/nvim/lua/config/lazy.lua
+++ b/neovim/.config/nvim/lua/config/lazy.lua
@@ -1,5 +1,6 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+---@diagnostic disable-next-line: undefined-field
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
@@ -29,7 +30,7 @@ require("lazy").setup({
},
-- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins.
- install = { colorscheme = { "xcode" }, missing = true },
+ install = { colorscheme = { "nord" }, missing = true },
-- automatically check for plugin updates
checker = { enabled = true, notify = false },
})
diff --git a/neovim/.config/nvim/lua/config/lualine.lua b/neovim/.config/nvim/lua/config/lualine.lua
new file mode 100644
index 0000000..5155bda
--- /dev/null
+++ b/neovim/.config/nvim/lua/config/lualine.lua
@@ -0,0 +1,216 @@
+-- Eviline config for lualine
+-- Author: shadmansaleh
+-- Credit: glepnir
+local lualine = require('lualine')
+
+-- Color table for highlights
+--stylua: ignore
+local colors = {
+ bg = 'StatusLine',
+ fg = 'StatusLine',
+ yellow = vim.g.terminal_color_11,
+ cyan = vim.g.terminal_color_14,
+ darkblue = vim.g.terminal_color_4,
+ green = vim.g.terminal_color_10,
+ orange = vim.g.terminal_color_3,
+ violet = vim.g.terminal_color_5,
+ magenta = vim.g.terminal_color_13,
+ blue = vim.g.terminal_color_12,
+ red = vim.g.terminal_color_9,
+}
+
+local conditions = {
+ buffer_not_empty = function()
+ return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
+ end,
+ hide_in_width = function()
+ return vim.fn.winwidth(0) > 80
+ end,
+ check_git_workspace = function()
+ local filepath = vim.fn.expand('%:p:h')
+ local gitdir = vim.fn.finddir('.git', filepath .. ';')
+ return gitdir and #gitdir > 0 and #gitdir < #filepath
+ end,
+}
+
+-- Config
+local config = {
+ options = {
+ -- Disable sections and component separators
+ component_separators = '',
+ section_separators = '',
+ theme = 'nord',
+ },
+ sections = {
+ -- these are to remove the defaults
+ lualine_a = {},
+ lualine_b = {},
+ lualine_y = {},
+ lualine_z = {},
+ -- These will be filled later
+ lualine_c = {},
+ lualine_x = {},
+ },
+ inactive_sections = {
+ -- these are to remove the defaults
+ lualine_a = {},
+ lualine_b = {},
+ lualine_y = {},
+ lualine_z = {},
+ lualine_c = {},
+ lualine_x = {},
+ },
+ extensions = { 'lazy', 'neo-tree' },
+}
+
+-- Inserts a component in lualine_c at left section
+local function ins_left(component)
+ table.insert(config.sections.lualine_c, component)
+end
+
+-- Inserts a component in lualine_x at right section
+local function ins_right(component)
+ table.insert(config.sections.lualine_x, component)
+end
+
+ins_left {
+ function()
+ return '▊'
+ end,
+ color = { fg = colors.blue }, -- Sets highlighting of component
+ padding = { left = 0, right = 1 }, -- We don't need space before this
+}
+
+ins_left {
+ -- mode component
+ function()
+ return ''
+ end,
+ color = function()
+ -- auto change color according to neovims mode
+ local mode_color = {
+ n = colors.red,
+ i = colors.green,
+ v = colors.blue,
+ [''] = colors.blue,
+ V = colors.blue,
+ c = colors.magenta,
+ no = colors.red,
+ s = colors.orange,
+ S = colors.orange,
+ [''] = colors.orange,
+ ic = colors.yellow,
+ R = colors.violet,
+ Rv = colors.violet,
+ cv = colors.red,
+ ce = colors.red,
+ r = colors.cyan,
+ rm = colors.cyan,
+ ['r?'] = colors.cyan,
+ ['!'] = colors.red,
+ t = colors.red,
+ }
+ return { fg = mode_color[vim.fn.mode()] }
+ end,
+ padding = { right = 1 },
+}
+
+ins_left {
+ -- filesize component
+ 'filesize',
+ cond = conditions.buffer_not_empty,
+}
+
+ins_left {
+ 'filetype',
+ cond = conditions.buffer_not_empty,
+ icon_only = true,
+}
+
+ins_left {
+ 'filename',
+ cond = conditions.buffer_not_empty,
+ color = { fg = colors.magenta, gui = 'bold' },
+}
+
+ins_left { 'location' }
+
+ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } }
+
+ins_left {
+ 'diagnostics',
+ sources = { 'nvim_diagnostic' },
+ symbols = { error = ' ', warn = ' ', info = ' ' },
+ diagnostics_color = {
+ error = { fg = colors.red },
+ warn = { fg = colors.yellow },
+ info = { fg = colors.cyan },
+ },
+}
+
+-- Insert mid section. You can make any number of sections in neovim :)
+-- for lualine it's any number greater then 2
+ins_left {
+ function()
+ return '%='
+ end,
+}
+
+ins_left {
+ -- Lsp server name .
+ function()
+ local msg = 'No Active Lsp'
+ local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
+ local clients = vim.lsp.get_clients()
+ if next(clients) == nil then
+ return msg
+ end
+ for _, client in ipairs(clients) do
+ local filetypes = client.config.filetypes
+ if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
+ return client.name
+ end
+ end
+ return msg
+ end,
+ cond = function()
+ local tbl = { ['dashboard'] = true, [''] = true }
+ if tbl[vim.bo.filetype] then
+ return false
+ elseif next(vim.lsp.get_clients()) == nil then
+ return false
+ end
+ return true
+ end,
+ icon = '⚙ LSP:',
+ color = { fg = colors.fg, gui = 'bold' },
+}
+
+ins_right {
+ 'branch',
+ icon = '',
+ color = { fg = colors.violet, gui = 'bold' },
+}
+
+ins_right {
+ 'diff',
+ -- Is it me or the symbol for modified us really weird
+ symbols = { added = ' ', modified = '󰝤 ', removed = ' ' },
+ diff_color = {
+ added = { fg = colors.green },
+ modified = { fg = colors.orange },
+ removed = { fg = colors.red },
+ },
+ cond = conditions.hide_in_width,
+}
+
+ins_right {
+ function()
+ return '▊'
+ end,
+ color = { fg = colors.blue },
+ padding = { left = 1 },
+}
+
+-- Now don't forget to initialize lualine
+lualine.setup(config)
diff --git a/neovim/.config/nvim/lua/plugins/aider.lua b/neovim/.config/nvim/lua/plugins/aider.lua
new file mode 100644
index 0000000..0aa6745
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/aider.lua
@@ -0,0 +1,23 @@
+return {
+ {
+ "ddzero2c/aider.nvim",
+ config = function()
+ require("aider").setup({
+ command = 'aider', -- Path to aider command
+ model = 'ollama_chat/qwen2.5-coder:3b', -- AI model to use
+ mode = 'diff', -- Edit mode: 'diff' or 'inline'
+ -- Floating window options
+ float_opts = {
+ relative = 'editor',
+ width = 0.8, -- 80% of editor width
+ height = 0.8, -- 80% of editor height
+ style = 'minimal',
+ border = 'rounded',
+ title = ' Aider ',
+ title_pos = 'center',
+ },
+ })
+ vim.keymap.set({ 'v', 'n' }, 'ga', ':AiderEdit<CR>', { noremap = true, silent = true })
+ end
+ }
+}
diff --git a/neovim/.config/nvim/lua/plugins/codecompanion.lua b/neovim/.config/nvim/lua/plugins/codecompanion.lua
new file mode 100644
index 0000000..b05497c
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/codecompanion.lua
@@ -0,0 +1,31 @@
+return {
+ {
+ "olimorris/codecompanion.nvim",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ "nvim-treesitter/nvim-treesitter",
+ },
+ opts = {
+ adapters = {
+ qwen = function()
+ return require('codecompanion.adapters').extend('ollama', {
+ name = 'qwen',
+ schema = {
+ model = {
+ default = 'qwen2.5-coder:3b',
+ },
+ },
+ })
+ end,
+ },
+ strategies = {
+ chat = {
+ adapter = 'qwen',
+ },
+ inline = {
+ adapter = 'qwen',
+ },
+ },
+ },
+ },
+}
diff --git a/neovim/.config/nvim/lua/plugins/gen.lua b/neovim/.config/nvim/lua/plugins/gen.lua
new file mode 100644
index 0000000..55e85b6
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/gen.lua
@@ -0,0 +1,7 @@
+return {
+ 'David-Kunz/gen.nvim',
+ opts = {
+ model = 'qwen2.5-coder:3b',
+ display_mode = 'split',
+ }
+}
diff --git a/neovim/.config/nvim/lua/plugins/goyo.lua b/neovim/.config/nvim/lua/plugins/goyo.lua
index bfe797a..5f70048 100644
--- a/neovim/.config/nvim/lua/plugins/goyo.lua
+++ b/neovim/.config/nvim/lua/plugins/goyo.lua
@@ -17,14 +17,12 @@ return {
vim.opt.scrolloff = 999
vim.opt.laststatus = 0
- local gl = require('galaxyline')
- local gls = gl.section
- gls.left = {}
- gls.mid = {}
- gls.right = {}
+ require('lualine').hide()
vim.cmd('Limelight')
- vim.cmd('VimRToggleFullscreen')
+ if vim.fn.exists('g:gui_vimr') == 1 then
+ vim.cmd('VimRToggleFullscreen')
+ end
end
local goyo_leave = function()
@@ -36,10 +34,12 @@ return {
vim.opt.showmode = true
vim.opt.showcmd = true
vim.opt.scrolloff = 5
- dofile(script_path() .. '../config/galaxyline.lua')
+ require('lualine').hide({ unhide = true })
vim.opt.laststatus = 3
vim.cmd('Limelight!')
- vim.cmd('VimRToggleFullscreen')
+ if vim.fn.exists('g:gui_vimr') == 1 then
+ vim.cmd('VimRToggleFullscreen')
+ end
end
local goyo_augroup = vim.api.nvim_create_augroup('Goyo', { clear = true })
diff --git a/neovim/.config/nvim/lua/plugins/lspsaga.lua b/neovim/.config/nvim/lua/plugins/lspsaga.lua
index 53bff94..27173ec 100644
--- a/neovim/.config/nvim/lua/plugins/lspsaga.lua
+++ b/neovim/.config/nvim/lua/plugins/lspsaga.lua
@@ -11,7 +11,11 @@ return {
},
lightbulb = {
virtual_text = false,
- }
+ },
+ diagnostic = {
+ diagnostic_only_current = true,
+ border_follow = false,
+ },
},
keys = {
{ "gh", "<cmd>Lspsaga finder<CR>", desc = "Lspsaga finder" },
diff --git a/neovim/.config/nvim/lua/plugins/galaxyline.lua b/neovim/.config/nvim/lua/plugins/lualine.lua
index d3f8ba7..5f538d1 100644
--- a/neovim/.config/nvim/lua/plugins/galaxyline.lua
+++ b/neovim/.config/nvim/lua/plugins/lualine.lua
@@ -1,13 +1,12 @@
return {
{
- 'nvimdev/galaxyline.nvim',
- branch = 'main',
+ 'nvim-lualine/lualine.nvim',
dependencies = {
{
'nvim-tree/nvim-web-devicons',
},
{
- "catppuccin/nvim",
+ 'catppuccin/nvim',
name = "catppuccin",
priority = 1000,
lazy = false,
@@ -16,6 +15,26 @@ return {
},
},
{
+ 'rebelot/kanagawa.nvim',
+ priority = 1000,
+ lazy = false,
+ },
+ {
+ 'neanias/everforest-nvim',
+ priority = 1000,
+ lazy = false,
+ },
+ {
+ 'savq/melange-nvim',
+ priority = 1000,
+ lazy = false,
+ },
+ {
+ 'shaunsingh/nord.nvim',
+ priority = 1000,
+ lazy = false,
+ },
+ {
'navarasu/onedark.nvim',
lazy = false,
priority = 1000,
@@ -45,6 +64,7 @@ return {
group = colorscheme_rules_augroup,
callback = function()
vim.api.nvim_set_hl(0, 'WinSeparator', { link = 'VertSplit', force = 1, default = 1 })
+ vim.api.nvim_set_hl(0, 'NotifyBackground', { link = 'Normal', force = 1, default = 1 })
end,
})
end,
@@ -66,7 +86,7 @@ return {
},
event = { 'BufEnter', 'VimEnter' },
config = function()
- require('config.galaxyline')
+ require('config.lualine')
end,
- },
+ }
}
diff --git a/neovim/.config/nvim/lua/plugins/neogit.lua b/neovim/.config/nvim/lua/plugins/neogit.lua
index a0a3f90..43dcf02 100644
--- a/neovim/.config/nvim/lua/plugins/neogit.lua
+++ b/neovim/.config/nvim/lua/plugins/neogit.lua
@@ -7,11 +7,8 @@ return {
'sindrets/diffview.nvim',
},
opts = {
- disable_commit_confirmation = true,
- auto_refresh = true,
- kind = 'tab',
commit_editor = {
- kind = 'auto',
+ staged_diff_split_kind = "auto",
},
integrations = {
-- Neogit only provides inline diffs. If you want a more traditional way to look at diffs, you can use `sindrets/diffview.nvim`.
@@ -26,7 +23,8 @@ return {
-- }
-- }
--
- diffview = true
+ diffview = true,
+ telescope = true,
}
},
keys = {
diff --git a/neovim/.config/nvim/lua/plugins/noice.lua b/neovim/.config/nvim/lua/plugins/noice.lua
new file mode 100644
index 0000000..004b868
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/noice.lua
@@ -0,0 +1,94 @@
+return {
+ {
+ 'folke/noice.nvim',
+ event = 'VeryLazy',
+ opts = {
+ lsp = {
+ -- override markdown rendering so that **cmp** and other plugins use **Treesitter**
+ override = {
+ ['vim.lsp.util.convert_input_to_markdown_lines'] = true,
+ ['vim.lsp.util.stylize_markdown'] = true,
+ ['cmp.entry.get_documentation'] = true, -- requires hrsh7th/nvim-cmp
+ },
+ progress = {
+ enabled = false,
+ },
+ },
+ -- you can enable a preset for easier configuration
+ presets = {
+ bottom_search = true, -- use a classic bottom cmdline for search
+ command_palette = true, -- position the cmdline and popupmenu together
+ long_message_to_split = true, -- long messages will be sent to a split
+ inc_rename = false, -- enables an input dialog for inc-rename.nvim
+ lsp_doc_border = false, -- add a border to hover docs and signature help
+ },
+ popupmenu = {
+ enabled = true,
+ backend = "cmp",
+ },
+ views = {
+ cmdline_popup = {
+ position = {
+ row = 5,
+ col = '50%',
+ },
+ size = {
+ width = 60,
+ height = 'auto',
+ },
+ },
+ popupmenu = {
+ relative = 'editor',
+ position = {
+ row = 8,
+ col = '50%',
+ },
+ size = {
+ width = 60,
+ height = 10,
+ },
+ border = {
+ style = 'rounded',
+ padding = { 0, 1 },
+ },
+ win_options = {
+ winhighlight = { Normal = 'Normal', FloatBorder = 'DiagnosticInfo' },
+ },
+ },
+ },
+ routes = {
+ {
+ filter = {
+ event = 'lsp',
+ kind = 'progress',
+ cond = function(message)
+ local client = vim.tbl_get(message.opts, 'progress', 'client')
+ return client == 'null-ls'
+ end,
+ },
+ opts = {
+ skip = true,
+ },
+ },
+ {
+ filter = {
+ event = 'msg_show',
+ kind = '',
+ find = 'written',
+ },
+ opts = {
+ skip = true,
+ },
+ },
+ },
+ },
+ dependencies = {
+ -- if you lazy-load any plugin below, make sure to add proper `module='...'` entries
+ 'MunifTanjim/nui.nvim',
+ -- OPTIONAL:
+ -- `nvim-notify` is only needed, if you want to use the notification view.
+ -- If not available, we use `mini` as the fallback
+ 'rcarriga/nvim-notify',
+ },
+ },
+}
diff --git a/neovim/.config/nvim/lua/plugins/none_ls.lua b/neovim/.config/nvim/lua/plugins/none_ls.lua
new file mode 100644
index 0000000..2ca16b9
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/none_ls.lua
@@ -0,0 +1,32 @@
+return {
+ {
+ 'nvimtools/none-ls.nvim',
+ dependencies = {
+ {
+ 'davidmh/cspell.nvim',
+ },
+ },
+ config = function ()
+ local cspell = require('cspell')
+ local null_ls = require('null-ls')
+
+ null_ls.setup {
+ sources = {
+ cspell.diagnostics.with({
+ diagnostics_postprocess = function(diagnostic)
+ diagnostic.severity = vim.diagnostic.severity.HINT
+ end,
+ }),
+ cspell.code_actions,
+ null_ls.builtins.diagnostics.djlint,
+ null_ls.builtins.formatting.djlint,
+ null_ls.builtins.code_actions.gitsigns,
+ },
+ should_attach = function(bufnr)
+ local bufname = vim.api.nvim_buf_get_name(bufnr)
+ return not bufname:match("gen.nvim")
+ end,
+ }
+ end,
+ }
+}
diff --git a/neovim/.config/nvim/lua/plugins/nvim_cmp.lua b/neovim/.config/nvim/lua/plugins/nvim_cmp.lua
index f0a4f95..320b684 100644
--- a/neovim/.config/nvim/lua/plugins/nvim_cmp.lua
+++ b/neovim/.config/nvim/lua/plugins/nvim_cmp.lua
@@ -40,6 +40,17 @@ return {
local cmp = require('cmp')
local lspkind = require('lspkind')
cmp.setup({
+ enabled = function()
+ -- disable completion in comments
+ local context = require 'cmp.config.context'
+ -- keep command mode completion enabled when cursor is in a comment
+ if vim.api.nvim_get_mode().mode == 'c' then
+ return true
+ else
+ return not context.in_treesitter_capture("comment")
+ and not context.in_syntax_group("Comment")
+ end
+ end,
snippet = {
-- REQUIRED - you must specify a snippet engine
expand = function(args)
@@ -91,7 +102,12 @@ return {
sources = cmp.config.sources({
{ name = 'path' }
}, {
- { name = 'cmdline' }
+ {
+ name = 'cmdline',
+ option = {
+ ignore_cmds = { 'Man', '!' },
+ },
+ },
})
})
end,
diff --git a/neovim/.config/nvim/lua/plugins/nvim_dap.lua b/neovim/.config/nvim/lua/plugins/nvim_dap.lua
index 0de8468..f94fd0f 100644
--- a/neovim/.config/nvim/lua/plugins/nvim_dap.lua
+++ b/neovim/.config/nvim/lua/plugins/nvim_dap.lua
@@ -37,10 +37,10 @@ return {
local pythonPath = function()
local cwd = vim.loop.cwd()
- if vim.fn.executable(cwd .. '/venv/bin/python') == 1 then
- return cwd .. '/venv/bin/python'
+ if vim.fn.executable(cwd .. '/.venv/bin/python') == 1 then
+ return cwd .. '/.venv/bin/python'
else
- return '/Users/michael/.pyenv/shims/python3'
+ return '/opt/homebrew/bin/python3'
end
end
diff --git a/neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua b/neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua
index 48a86c6..ebea05a 100644
--- a/neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua
+++ b/neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua
@@ -1,25 +1,46 @@
return {
{
+ dependencies = {
+ { 'williamboman/mason.nvim' },
+ { 'williamboman/mason-lspconfig.nvim' },
+ },
'neovim/nvim-lspconfig',
lazy = false,
priority = 800,
config = function()
- local nvim_lsp = require('lspconfig')
+ require("mason").setup()
+ require("mason-lspconfig").setup()
local capabilities = require('cmp_nvim_lsp').default_capabilities()
-- Use a loop to conveniently call 'setup' on multiple servers and
-- map buffer local keybindings when the language server attaches
local servers = { "bashls", "clangd", "cssls", "dockerls", "gopls", "htmx", "jsonls", "marksman",
- "phpactor", "psalm", "ruff", "rust_analyzer", "taplo", "yamlls" }
+ "ruff", "rust_analyzer", "taplo", "ts_ls", "ty", "yamlls" }
for _, lsp in ipairs(servers) do
- nvim_lsp[lsp].setup {
+ vim.lsp.config(lsp, {
capabilities = capabilities,
flags = {
debounce_text_changes = 150,
- }
- }
+ },
+ })
+ vim.lsp.enable(lsp)
end
- require 'lspconfig'.lua_ls.setup {
+ vim.lsp.config('basedpyright', {
+ settings = {
+ basedpyright = {
+ disableOrganizeImports = true,
+ },
+ python = {
+ analysis = {
+ ignore = { '*' },
+ },
+ },
+ }
+ })
+
+ vim.lsp.enable('basedpyright')
+
+ vim.lsp.config('lua_ls', {
on_init = function(client)
local path = client.workspace_folders[1].name
if vim.loop.fs_stat(path .. '/.luarc.json') or vim.loop.fs_stat(path .. '/.luarc.jsonc') then
@@ -35,7 +56,7 @@ return {
-- Make the server aware of Neovim runtime files
workspace = {
checkThirdParty = false,
- library = {
+ library = {
vim.env.VIMRUNTIME
-- Depending on the usage, you might want to add additional paths here.
-- "${3rd}/luv/library"
@@ -59,60 +80,32 @@ return {
},
capabilities = capabilities,
- }
+ })
+
+ vim.lsp.enable('lua_ls')
- require 'lspconfig'.html.setup {
+ vim.lsp.config('html', {
filetypes = { 'html', 'htmldjango' },
capabilities = capabilities,
flags = {
debounce_text_changes = 150,
},
- }
+ })
- require 'lspconfig'.ts_ls.setup {
- filetypes = { 'typescript', 'typescriptreact', 'typescript.tsx' },
- capabilities = capabilities,
- flags = {
- debounce_text_changes = 150,
- },
- }
+ vim.lsp.enable('html')
- require 'lspconfig'.pylsp.setup {
- settings = {
- pylsp = {
- plugins = {
- autopep8 = {
- enabled = false,
- },
- black = {
- enabled = false,
- },
- mccabe = {
- enabled = false,
- },
- pycodestyle = {
- enabled = false,
- },
- pyflakes = {
- enabled = false,
- },
- pylsp_mypy = {
- enabled = true,
- },
- ruff = {
- enabled = false,
- },
- yapf = {
- enabled = false,
- },
- }
- }
- },
+ vim.lsp.config('intelephense', {
+ filetypes = { 'php' },
capabilities = capabilities,
flags = {
debounce_text_changes = 150,
},
- }
+ init_options = {
+ licenceKey = '~/.config/intelephense/licence.txt',
+ },
+ })
+
+ vim.lsp.enable('intelephense')
-- Use LspAttach autocommand to only map the following keys
-- after the language server attaches to the current buffer
@@ -145,6 +138,28 @@ return {
end,
desc = 'LSP: Disable hover capability from Ruff',
})
+
+ -- Disable diagnostics for gen.nvim
+ vim.api.nvim_create_autocmd({ "LspAttach" }, {
+ group = vim.api.nvim_create_augroup("lsp_disable", { clear = true }),
+ pattern = 'gen.nvim',
+ callback = function(args)
+ vim.diagnostic.enable(false, { bufnr = args.buf })
+ end,
+ })
+
+ vim.api.nvim_create_autocmd({ "BufWritePost" }, {
+ pattern = '*.py',
+ callback = function()
+ vim.lsp.buf.code_action {
+ context = {
+ only = { 'source.fixAll.ruff' },
+ },
+ apply = true,
+ }
+ vim.lsp.buf.format { async = true }
+ end
+ })
end,
},
}
diff --git a/neovim/.config/nvim/lua/plugins/tabby.lua b/neovim/.config/nvim/lua/plugins/tabby.lua
index 0aa271e..b51c859 100644
--- a/neovim/.config/nvim/lua/plugins/tabby.lua
+++ b/neovim/.config/nvim/lua/plugins/tabby.lua
@@ -4,6 +4,7 @@ return {
dependencies = {
'nvim-tree/nvim-web-devicons',
},
+ cond = function() return vim.fn.has('gui_running') == 0 end,
config = function()
local theme = {
fill = 'TabLineFill',
diff --git a/neovim/.config/nvim/lua/plugins/telescope.lua b/neovim/.config/nvim/lua/plugins/telescope.lua
index 6a81359..08729ca 100644
--- a/neovim/.config/nvim/lua/plugins/telescope.lua
+++ b/neovim/.config/nvim/lua/plugins/telescope.lua
@@ -1,13 +1,52 @@
return {
{
'nvim-telescope/telescope.nvim',
+ tag = '0.1.8',
dependencies = {
- 'nvim-lua/plenary.nvim',
+ {
+ 'nvim-lua/plenary.nvim',
+ },
+ {
+ "nvim-telescope/telescope-live-grep-args.nvim",
+ -- This will not install any breaking changes.
+ -- For major updates, this must be adjusted manually.
+ version = "^1.0.0",
+ },
},
+ cmd = "Telescope",
keys = {
- { '<F3>', '<cmd>Telescope buffers<CR>', desc = 'Telescope buffers' },
+ { '<F3>', '<cmd>Telescope buffers<CR>', desc = 'Telescope buffers' },
{ '<F4>', '<cmd>Telescope find_files<CR>', desc = 'Telescope find files' },
- { '<F6>', '<cmd>Telescope live_grep<CR>', desc = 'Telescope live grep' },
+ { '<F6>', '<cmd>Telescope live_grep<CR>', desc = 'Telescope live grep' },
},
+ config = function()
+ local telescope = require("telescope")
+ local lga_actions = require("telescope-live-grep-args.actions")
+
+ -- first setup telescope
+ telescope.setup({
+ extensions = {
+ live_grep_args = {
+ auto_quoting = true, -- enable/disable auto-quoting
+ -- define mappings, e.g.
+ mappings = { -- extend mappings
+ i = {
+ ["<C-k>"] = lga_actions.quote_prompt(),
+ ["<C-i>"] = lga_actions.quote_prompt({ postfix = " --iglob " }),
+ -- freeze the current list and start a fuzzy search in the frozen list
+ ["<C-space>"] = lga_actions.to_fuzzy_refine,
+ },
+ },
+ -- ... also accepts theme settings, for example:
+ -- theme = "dropdown", -- use dropdown theme
+ -- theme = { }, -- use own theme spec
+ -- layout_config = { mirror=true }, -- mirror preview pane
+ }
+ }
+ })
+
+ -- then load the extension
+ telescope.load_extension("live_grep_args")
+ end
},
}
diff --git a/neovim/.config/nvim/lua/plugins/vim_svelte_plugin.lua b/neovim/.config/nvim/lua/plugins/vim_svelte_plugin.lua
new file mode 100644
index 0000000..edcf7b6
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/vim_svelte_plugin.lua
@@ -0,0 +1,6 @@
+return {
+ {
+ 'leafOfTree/vim-svelte-plugin',
+ ft = 'svelte',
+ }
+}
diff --git a/neovim/.config/nvim/lua/settings.lua b/neovim/.config/nvim/lua/settings.lua
index 4d3c601..cb55779 100644
--- a/neovim/.config/nvim/lua/settings.lua
+++ b/neovim/.config/nvim/lua/settings.lua
@@ -1,7 +1,8 @@
-- General settings
vim.g.loaded_python_provider = 1
-vim.g.python3_host_prog = '/Users/michael/.pyenv/shims/python3'
+vim.g.python3_host_prog = '/opt/homebrew/bin/python3'
+vim.g.loaded_node_provider = 0
vim.g.loaded_perl_provider = 0
vim.g.loaded_ruby_provider = 0
@@ -25,7 +26,7 @@ vim.opt.linebreak = true
vim.opt.showbreak = '↪ '
vim.opt.breakindent = true
vim.opt.termguicolors = true
-vim.cmd[[
+vim.cmd [[
syntax on
filetype on
filetype plugin on
@@ -39,10 +40,29 @@ vim.opt.shortmess:append 'c'
vim.opt.signcolumn = 'yes'
vim.opt.laststatus = 3
+if vim.g.neovide then
+ vim.g.neovide_input_macos_option_key_is_meta = 'only_left'
+end
+
+if vim.g.neovide then
+ vim.keymap.set('n', '<D-s>', ':w<CR>') -- Save
+ vim.keymap.set('v', '<D-c>', '"+y') -- Copy
+ vim.keymap.set('n', '<D-v>', '"+P') -- Paste normal mode
+ vim.keymap.set('v', '<D-v>', '"+P') -- Paste visual mode
+ vim.keymap.set('c', '<D-v>', '<C-R>+') -- Paste command mode
+ vim.keymap.set('i', '<D-v>', '<ESC>l"+Pli') -- Paste insert mode
+end
+
+-- Allow clipboard copy paste in neovim
+vim.api.nvim_set_keymap('', '<D-v>', '+p<CR>', { noremap = true, silent = true })
+vim.api.nvim_set_keymap('!', '<D-v>', '<C-R>+', { noremap = true, silent = true })
+vim.api.nvim_set_keymap('t', '<D-v>', '<C-R>+', { noremap = true, silent = true })
+vim.api.nvim_set_keymap('v', '<D-v>', '<C-R>+', { noremap = true, silent = true })
+
-- Autocommands
local indent_rules_augroup = vim.api.nvim_create_augroup('Indents', {})
-vim.api.nvim_create_autocmd( { 'FileType' }, {
+vim.api.nvim_create_autocmd({ 'FileType' }, {
pattern = { 'make', 'sh', 'zsh' },
group = indent_rules_augroup,
callback = function()
@@ -52,7 +72,7 @@ vim.api.nvim_create_autocmd( { 'FileType' }, {
vim.opt_local.expandtab = false
end
})
-vim.api.nvim_create_autocmd( { 'FileType' }, {
+vim.api.nvim_create_autocmd({ 'FileType' }, {
pattern = { 'go' },
group = indent_rules_augroup,
callback = function()
@@ -62,7 +82,7 @@ vim.api.nvim_create_autocmd( { 'FileType' }, {
vim.opt_local.expandtab = false
end
})
-vim.api.nvim_create_autocmd( { 'FileType' }, {
+vim.api.nvim_create_autocmd({ 'FileType' }, {
pattern = { 'javascript', 'lua' },
group = indent_rules_augroup,
callback = function()
@@ -73,7 +93,7 @@ vim.api.nvim_create_autocmd( { 'FileType' }, {
})
local wrap_rules_augroup = vim.api.nvim_create_augroup('Wrap', {})
-vim.api.nvim_create_autocmd( { 'FileType' }, {
+vim.api.nvim_create_autocmd({ 'FileType' }, {
pattern = { 'markdown', 'rst', 'text' },
group = wrap_rules_augroup,
callback = function()
@@ -82,7 +102,7 @@ vim.api.nvim_create_autocmd( { 'FileType' }, {
})
local terminal_rules_augroup = vim.api.nvim_create_augroup('Terminal', {})
-vim.api.nvim_create_autocmd( { 'TermOpen' }, {
+vim.api.nvim_create_autocmd({ 'TermOpen' }, {
pattern = { '*' },
group = terminal_rules_augroup,
callback = function()
@@ -98,7 +118,7 @@ vim.api.nvim_create_autocmd( { 'TermOpen' }, {
})
-- Terminal
-vim.cmd[[
+vim.cmd [[
tnoremap <Esc> <C-\><C-n>
tnoremap <A-h> <C-\><C-N><C-w>h
tnoremap <A-j> <C-\><C-N><C-w>j
@@ -144,4 +164,15 @@ if vim.fn.has('gui_running') == 1 then
vim.keymap.set('n', '<S-D-}>', '<cmd>tabn<CR>', { noremap = true, silent = true })
vim.keymap.set('v', '<S-D-}>', '<cmd>tabn<CR>', { noremap = true, silent = true })
vim.keymap.set('i', '<S-D-}>', '<Esc><cmd>tabn<CR>', { noremap = true, silent = true })
+ vim.keymap.set('n', '<M-S-{>', '<cmd>tabp<CR>', { noremap = true, silent = true })
+ vim.keymap.set('v', '<M-S-{>', '<cmd>tabp<CR>', { noremap = true, silent = true })
+ vim.keymap.set('i', '<M-S-{>', '<Esc><cmd>tabp<CR>', { noremap = true, silent = true })
+ vim.keymap.set('n', '<M-S-}>', '<cmd>tabn<CR>', { noremap = true, silent = true })
+ vim.keymap.set('v', '<M-S-}>', '<cmd>tabn<CR>', { noremap = true, silent = true })
+ vim.keymap.set('i', '<M-S-}>', '<Esc><cmd>tabn<CR>', { noremap = true, silent = true })
end
+
+vim.diagnostic.config({
+ underline = { severity = vim.diagnostic.severity.ERROR },
+ virtual_text = false,
+})
diff --git a/starship/.config/starship.toml b/starship/.config/starship.toml
new file mode 100644
index 0000000..dc911de
--- /dev/null
+++ b/starship/.config/starship.toml
@@ -0,0 +1,224 @@
+[aws]
+symbol = " "
+
+[buf]
+symbol = " "
+
+[bun]
+symbol = " "
+
+[c]
+symbol = " "
+
+[conda]
+symbol = " "
+
+[crystal]
+symbol = " "
+
+[dart]
+symbol = " "
+
+[directory]
+read_only = " 󰌾"
+
+[docker_context]
+symbol = " "
+
+[elixir]
+symbol = " "
+
+[elm]
+symbol = " "
+
+[fennel]
+symbol = " "
+
+[fossil_branch]
+symbol = " "
+
+[git_branch]
+symbol = " "
+
+[golang]
+symbol = " "
+
+[guix_shell]
+symbol = " "
+
+[haskell]
+symbol = " "
+
+[haxe]
+symbol = " "
+
+[hg_branch]
+symbol = " "
+
+[hostname]
+ssh_symbol = " "
+
+[java]
+symbol = " "
+
+[julia]
+symbol = " "
+
+[kotlin]
+symbol = " "
+
+[lua]
+symbol = " "
+
+[memory_usage]
+symbol = "󰍛 "
+
+[meson]
+symbol = "󰔷 "
+
+[nim]
+symbol = "󰆥 "
+
+[nix_shell]
+symbol = " "
+
+[nodejs]
+symbol = " "
+disabled = true
+
+[ocaml]
+symbol = " "
+
+[os.symbols]
+Alpaquita = " "
+Alpine = " "
+AlmaLinux = " "
+Amazon = " "
+Android = " "
+Arch = " "
+Artix = " "
+CentOS = " "
+Debian = " "
+DragonFly = " "
+Emscripten = " "
+EndeavourOS = " "
+Fedora = " "
+FreeBSD = " "
+Garuda = "󰛓 "
+Gentoo = " "
+HardenedBSD = "󰞌 "
+Illumos = "󰈸 "
+Kali = " "
+Linux = " "
+Mabox = " "
+Macos = " "
+Manjaro = " "
+Mariner = " "
+MidnightBSD = " "
+Mint = " "
+NetBSD = " "
+NixOS = " "
+OpenBSD = "󰈺 "
+openSUSE = " "
+OracleLinux = "󰌷 "
+Pop = " "
+Raspbian = " "
+Redhat = " "
+RedHatEnterprise = " "
+RockyLinux = " "
+Redox = "󰀘 "
+Solus = "󰠳 "
+SUSE = " "
+Ubuntu = " "
+Unknown = " "
+Void = " "
+Windows = "󰍲 "
+
+[package]
+symbol = "󰏗 "
+
+[perl]
+symbol = " "
+
+[php]
+symbol = " "
+
+[pijul_channel]
+symbol = " "
+
+[python]
+symbol = "󰌠 "
+
+[rlang]
+symbol = "󰟔 "
+
+[ruby]
+symbol = " "
+
+[rust]
+symbol = "󱘗 "
+
+[scala]
+symbol = " "
+
+[swift]
+symbol = " "
+
+[zig]
+symbol = " "
+
+[palettes.catppuccin_latte]
+rosewater = "#dc8a78"
+flamingo = "#dd7878"
+pink = "#ea76cb"
+mauve = "#8839ef"
+red = "#d20f39"
+maroon = "#e64553"
+peach = "#fe640b"
+yellow = "#df8e1d"
+green = "#40a02b"
+teal = "#179299"
+sky = "#04a5e5"
+sapphire = "#209fb5"
+blue = "#1e66f5"
+lavender = "#7287fd"
+text = "#4c4f69"
+subtext1 = "#5c5f77"
+subtext0 = "#6c6f85"
+overlay2 = "#7c7f93"
+overlay1 = "#8c8fa1"
+overlay0 = "#9ca0b0"
+surface2 = "#acb0be"
+surface1 = "#bcc0cc"
+surface0 = "#ccd0da"
+base = "#eff1f5"
+mantle = "#e6e9ef"
+crust = "#dce0e8"
+
+[palettes.catppuccin_mocha]
+rosewater = "#f5e0dc"
+flamingo = "#f2cdcd"
+pink = "#f5c2e7"
+mauve = "#cba6f7"
+red = "#f38ba8"
+maroon = "#eba0ac"
+peach = "#fab387"
+yellow = "#f9e2af"
+green = "#a6e3a1"
+teal = "#94e2d5"
+sky = "#89dceb"
+sapphire = "#74c7ec"
+blue = "#89b4fa"
+lavender = "#b4befe"
+text = "#cdd6f4"
+subtext1 = "#bac2de"
+subtext0 = "#a6adc8"
+overlay2 = "#9399b2"
+overlay1 = "#7f849c"
+overlay0 = "#6c7086"
+surface2 = "#585b70"
+surface1 = "#45475a"
+surface0 = "#313244"
+base = "#1e1e2e"
+mantle = "#181825"
+crust = "#11111b"
diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf
new file mode 100644
index 0000000..2187745
--- /dev/null
+++ b/tmux/.tmux.conf
@@ -0,0 +1,56 @@
+set-option -as terminal-features ',xterm-256color:RGB'
+setw -g mode-keys vi
+
+# List of plugins
+set -g @plugin 'tmux-plugins/tpm'
+set -g @plugin 'AngryMorrocoy/tmux-neolazygit'
+set -g @plugin 'tmux-plugins/tmux-open'
+set -g @plugin 'tmux-plugins/tmux-pain-control'
+set -g @plugin 'tmux-plugins/tmux-sensible'
+set -g @plugin 'tmux-plugins/tmux-yank'
+
+# DESIGN TWEAKS
+
+# don't do anything when a 'bell' rings
+set -g visual-activity off
+set -g visual-bell off
+set -g visual-silence off
+setw -g monitor-activity off
+set -g bell-action none
+
+# clock mode
+setw -g clock-mode-colour colour1
+
+# copy mode
+setw -g mode-style 'fg=colour1 bg=colour18 bold'
+
+# pane borders
+set -g pane-border-style 'fg=colour7 dim'
+set -g pane-active-border-style 'fg=colour7'
+
+# statusbar
+set -g status-position bottom
+set -g status-justify left
+set -g status-style 'fg=terminal'
+set -g status-left '#[fg=colour0 bold bg=colour7] #S #[fg=terminal bg=terminal]'
+set -g status-right '%Y-%m-%d %H:%M '
+set -g status-right-length 50
+set -g status-left-length 25
+
+setw -g window-status-current-style 'fg=colour15 bg=colour2 bold'
+setw -g window-status-current-format ' #I #W #F '
+
+setw -g window-status-style 'fg=colour1 dim'
+setw -g window-status-format ' #I #[fg=terminal dim]#W #[fg=colour1 dim]#F '
+
+setw -g window-status-bell-style 'fg=colour2 bg=colour9 bold'
+
+# messages
+set -g message-style 'fg=terminal bg=terminal bold'
+
+# titles
+set -g set-titles on
+set -g set-titles-string "#W"
+
+# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
+run '~/.tmux/plugins/tpm/tpm'
diff --git a/wezterm/.wezterm.lua b/wezterm/.wezterm.lua
index b99a500..df1b874 100644
--- a/wezterm/.wezterm.lua
+++ b/wezterm/.wezterm.lua
@@ -5,7 +5,7 @@ local wezterm = require 'wezterm'
local config = wezterm.config_builder()
-- This is where you actually apply your config choices
-config.font = wezterm.font 'SarasaFixedSC Nerd Font Mono'
+config.font = wezterm.font 'SarasaTermCL Nerd Font Mono'
config.font_size = 13
config.window_frame = {
-- The font used in the tab bar.
@@ -18,7 +18,7 @@ config.window_frame = {
}
-- For example, changing the color scheme:
-config.color_scheme = 'iTerm2 Light Background'
+config.color_scheme = 'Apple Classic'
-- and finally, return the configuration to wezterm
return config
diff --git a/zsh/.zshenv b/zsh/.zshenv
index 122763d..bc88c29 100644
--- a/zsh/.zshenv
+++ b/zsh/.zshenv
@@ -15,5 +15,10 @@ if [[ -d $HOME/Library/Python/3.12/bin ]] && [[ ! $PATH == *"$HOME/Library/Pytho
}
export EDITOR="nvim"
+export AWS_PROFILE=krotos
+export CMAKE_C_COMPILER=/usr/bin/clang
+export CMAKE_CXX_COMPILER=/usr/bin/clang++
. "$HOME/.cargo/env"
+
+export OLLAMA_API_BASE=http://127.0.0.1:11434
diff --git a/zsh/.zshrc b/zsh/.zshrc
index cf09c44..cae971a 100644
--- a/zsh/.zshrc
+++ b/zsh/.zshrc
@@ -26,9 +26,6 @@ bindkey '^r' history-incremental-search-backward
# PROMPT='%~ > '
-export PYENV_ROOT="$HOME/.pyenv"
-[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
-eval "$(pyenv init -)"
if command -v ngrok &>/dev/null; then
eval "$(ngrok completion)"
fi
@@ -38,3 +35,12 @@ test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell
eval $(thefuck --alias)
eval "$(starship init zsh)"
+
+alias rm="rm -I"
+
+# bun completions
+[ -s "/Users/michael/.bun/_bun" ] && source "/Users/michael/.bun/_bun"
+
+# bun
+export BUN_INSTALL="$HOME/.bun"
+export PATH="$BUN_INSTALL/bin:$PATH"