diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml new file mode 100644 index 0000000..0897bed --- /dev/null +++ b/.config/alacritty/alacritty.toml @@ -0,0 +1,22 @@ +import = [ +"~/.config/alacritty/catppuccin-latte.toml" +] + +[env] +TERM = "xterm-256color" + +[font] +size = 14.0 + +[font.normal] +family = "FiraCode Nerd Font Mono" +style = "Light" + +[window] +opacity = 0.95 +option_as_alt = "Both" +dynamic_padding = true + +[window.padding] +x = 2 +y = 2 diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml deleted file mode 100644 index 7642c8e..0000000 --- a/.config/alacritty/alacritty.yml +++ /dev/null @@ -1,17 +0,0 @@ -import: - - ~/.config/alacritty/catppuccin/catppuccin-frappe.yml - -env: - TERM: tmux-256color - -window: - padding: - x: 2 - y: 2 - opacity: 0.85 - -font: - normal: - family: FiraCode Nerd Font Mono - style: Light - size: 10.0 diff --git a/.config/alacritty/catppuccin-latte.toml b/.config/alacritty/catppuccin-latte.toml new file mode 100644 index 0000000..2255dfd --- /dev/null +++ b/.config/alacritty/catppuccin-latte.toml @@ -0,0 +1,75 @@ +[colors.primary] +background = "#EFF1F5" +foreground = "#4C4F69" +dim_foreground = "#4C4F69" +bright_foreground = "#4C4F69" + +[colors.cursor] +text = "#EFF1F5" +cursor = "#DC8A78" + +[colors.vi_mode_cursor] +text = "#EFF1F5" +cursor = "#7287FD" + +[colors.search.matches] +foreground = "#EFF1F5" +background = "#6C6F85" + +[colors.search.focused_match] +foreground = "#EFF1F5" +background = "#40A02B" + +[colors.footer_bar] +foreground = "#EFF1F5" +background = "#6C6F85" + +[colors.hints.start] +foreground = "#EFF1F5" +background = "#DF8E1D" + +[colors.hints.end] +foreground = "#EFF1F5" +background = "#6C6F85" + +[colors.selection] +text = "#EFF1F5" +background = "#DC8A78" + +[colors.normal] +black = "#5C5F77" +red = "#D20F39" +green = "#40A02B" +yellow = "#DF8E1D" +blue = "#1E66F5" +magenta = "#EA76CB" +cyan = "#179299" +white = "#ACB0BE" + +[colors.bright] +black = "#6C6F85" +red = "#D20F39" +green = "#40A02B" +yellow = "#DF8E1D" +blue = "#1E66F5" +magenta = "#EA76CB" +cyan = "#179299" +white = "#BCC0CC" + +[colors.dim] +black = "#5C5F77" +red = "#D20F39" +green = "#40A02B" +yellow = "#DF8E1D" +blue = "#1E66F5" +magenta = "#EA76CB" +cyan = "#179299" +white = "#ACB0BE" + +[[colors.indexed_colors]] +index = 16 +color = "#FE640B" + +[[colors.indexed_colors]] +index = 17 +color = "#DC8A78" diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index efe7eb3..a393426 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -1,4 +1,6 @@ require("core.variables") require('core.package_manager') require('plugins.remote-theme') +require('winbar') +require('core.theme') require('impatient') diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 970f01c..9264cc3 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,51 +1,51 @@ { - "LuaSnip": { "branch": "master", "commit": "80a8528f084a97b624ae443a6f50ff8074ba486b" }, + "LuaSnip": { "branch": "master", "commit": "2463d687fe704b76eb0aa3bb34e95f69a5bb0362" }, "bufferline.nvim": { "branch": "main", "commit": "243893ba9d5d1049dd451a25cab32ec7f8f67bcf" }, - "catppuccin": { "branch": "main", "commit": "40dc9f0621c55bd40da4ad0731fac44d15bb393a" }, + "catppuccin": { "branch": "main", "commit": "b901cf144573b293b6cefeb1ac8c97d5d239ee7a" }, + "cinnamon.nvim": { "branch": "master", "commit": "c406ffda3a0302f32c23b24ab756ea20467d6578" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "3d8912ebeb56e5ae08ef0906e3a54de1c66b92f1" }, "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, - "compiler-explorer.nvim": { "branch": "master", "commit": "ee8e7a2808bdad67cd2acb61b5c9ffa7735c7ec9" }, - "copilot.lua": { "branch": "master", "commit": "1a8032ae496916ccc7a7a52ee79194fbef29f462" }, - "dressing.nvim": { "branch": "master", "commit": "1f2d1206a03bd3add8aedf6251e4534611de577f" }, - "fidget.nvim": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" }, - "friendly-snippets": { "branch": "main", "commit": "43727c2ff84240e55d4069ec3e6158d74cb534b6" }, + "copilot.lua": { "branch": "master", "commit": "858bbfa6fa81c88fb1f64107d7981f1658619e0a" }, + "dressing.nvim": { "branch": "master", "commit": "94b0d24483d56f3777ee0c8dc51675f21709318c" }, + "fidget.nvim": { "branch": "main", "commit": "a4a7edfea37e557dbff5509ee374ffb57051bba9" }, + "friendly-snippets": { "branch": "main", "commit": "53d3df271d031c405255e99410628c26a8f0d2b0" }, + "gruvbox.nvim": { "branch": "main", "commit": "4176b0b720db0c90ab4030e5c1b4893faf41fd51" }, "impatient.nvim": { "branch": "main", "commit": "47302af74be7b79f002773011f0d8e85679a7618" }, - "lazy.nvim": { "branch": "main", "commit": "4c75c8eeb957a99aa44ce8e526c04340ab358c5e" }, - "leap.nvim": { "branch": "main", "commit": "5efe985cf68fac3b6a6dfe7a75fbfaca8db2af9c" }, - "lualine.nvim": { "branch": "master", "commit": "7533b0ead663d80452210c0c089e5105089697e5" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "e7b64c11035aa924f87385b72145e0ccf68a7e0a" }, - "mason-nvim-dap.nvim": { "branch": "main", "commit": "6148b51db945b55b3b725da39eaea6441e59dff8" }, - "mason.nvim": { "branch": "main", "commit": "cd7835b15f5a4204fc37e0aa739347472121a54c" }, - "nerdy.nvim": { "branch": "main", "commit": "061b0c8b5d56dcc9d3aba90be94593070f299878" }, - "none-ls.nvim": { "branch": "main", "commit": "dc9b7e28f5573a1a2225ffb33893d23d3e052ed6" }, - "nvim-autopairs": { "branch": "master", "commit": "f6c71641f6f183427a651c0ce4ba3fb89404fa9e" }, - "nvim-cmp": { "branch": "main", "commit": "d3a3056204e1a9dbb7c7fe36c114dc43b681768c" }, - "nvim-colorizer.lua": { "branch": "master", "commit": "dde3084106a70b9a79d48f426f6d6fec6fd203f7" }, - "nvim-dap": { "branch": "master", "commit": "92dc531eea2c9a3ef504a5c8ac0decd1fa59a6a3" }, + "lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" }, + "leap.nvim": { "branch": "main", "commit": "47262a9beadd6945f51b0a4fc2d005aaa2095f04" }, + "lualine.nvim": { "branch": "master", "commit": "566b7036f717f3d676362742630518a47f132fff" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "56e435e09f8729af2d41973e81a0db440f8fe9c9" }, + "mason-nvim-dap.nvim": { "branch": "main", "commit": "9e82ded0515186edd4f69e4ce6b1a5f1b55b47e9" }, + "mason.nvim": { "branch": "main", "commit": "a09da6ac634926a299dd439da08bdb547a8ca011" }, + "nerdy.nvim": { "branch": "main", "commit": "548437ebcea9106156e7ea3a5612ee6444a1aba4" }, + "none-ls.nvim": { "branch": "main", "commit": "e7382de51b4cf629e56f1fa18192e716e5ba8145" }, + "nvim-autopairs": { "branch": "master", "commit": "9fd41181693dd4106b3e414a822bb6569924de81" }, + "nvim-cmp": { "branch": "main", "commit": "538e37ba87284942c1d76ed38dd497e54e65b891" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" }, + "nvim-dap": { "branch": "master", "commit": "f0dca670fa059eb89dda8869a6310c804241345c" }, "nvim-dap-ui": { "branch": "master", "commit": "34160a7ce6072ef332f350ae1d4a6a501daf0159" }, "nvim-ghost.nvim": { "branch": "main", "commit": "a1ca0b2dac59881066d7ac9373cf64d59ba29d6a" }, - "nvim-lspconfig": { "branch": "master", "commit": "e49b1e90c1781ce372013de3fa93a91ea29fc34a" }, - "nvim-tmux-navigation": { "branch": "main", "commit": "543f090a45cef28156162883d2412fffecb6b750" }, - "nvim-treesitter": { "branch": "master", "commit": "eb3faef3a44641e5875581e901b0a8df8da2bde4" }, - "nvim-treesitter-context": { "branch": "master", "commit": "7227dca17316384e9b62bd6fc6b4d892572d6d4e" }, - "nvim-web-devicons": { "branch": "master", "commit": "3af745113ea537f58c4b1573b64a429fefad9e07" }, - "oil.nvim": { "branch": "master", "commit": "4088efb8ff664b6f1624aab5dac6c3fe11d3962c" }, - "plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" }, + "nvim-lspconfig": { "branch": "master", "commit": "0d9e870d01894c592d7ea93cfe0fa451916d9a7f" }, + "nvim-tmux-navigation": { "branch": "main", "commit": "d9efffa413a530bdea3783af4fea86be84940283" }, + "nvim-treesitter": { "branch": "master", "commit": "362ebd3a210f20aab80be05557f216cbaf4531e6" }, + "nvim-treesitter-context": { "branch": "master", "commit": "652ec514d6ba8bc4a3c2de76c855fe668e2c7196" }, + "nvim-web-devicons": { "branch": "master", "commit": "43aa2ddf476012a2155f5f969ee55ab17174da7a" }, + "oil.nvim": { "branch": "master", "commit": "523b61430cb7365f8f86609c2ea60e48456bac63" }, + "plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" }, "presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" }, - "tailwind-sorter.nvim": { "branch": "main", "commit": "efc34952eb0a20520f12c8a273ea44298c11a4fa" }, - "tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "bc25c56083939f274edcfe395c6ff7de23b67c50" }, "telescope.nvim": { "branch": "master", "commit": "7011eaae0ac1afe036e30c95cf80200b8dc3f21a" }, - "todo-comments.nvim": { "branch": "main", "commit": "3094ead8edfa9040de2421deddec55d3762f64d1" }, - "undotree": { "branch": "master", "commit": "0e11ba7325efbbb3f3bebe06213afa3e7ec75131" }, - "vim-jukit": { "branch": "master", "commit": "4d1f4e4c3923464e12f86fce49eb198b6e61a2a9" }, - "vim-obsession": { "branch": "master", "commit": "fe9d3e1a9a50171e7d316a52e1e56d868e4c1fe5" }, + "themery.nvim": { "branch": "main", "commit": "1005a58801276d29c4b1e11244cf7631250f9143" }, + "todo-comments.nvim": { "branch": "main", "commit": "4a6737a8d70fe1ac55c64dfa47fcb189ca431872" }, + "typst.vim": { "branch": "main", "commit": "308e7737d09de8c1100320ddc6bc270615ae791a" }, + "undotree": { "branch": "master", "commit": "36ff7abb6b60980338344982ad4cdf03f7961ecd" }, + "vim-alloy": { "branch": "master", "commit": "5bd57c4890be39e221dd3e1f6735457dce454bbd" }, "vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" }, - "vimtex": { "branch": "master", "commit": "cbb20643b7bfe721902dac5760bf0d4889fb5f7e" }, - "which-key.nvim": { "branch": "main", "commit": "ce741eb559c924d72e3a67d2189ad3771a231414" }, - "zen-mode.nvim": { "branch": "main", "commit": "cb73b8bd0ef9d765b942db09dc762c603a89ae44" } + "vimtex": { "branch": "master", "commit": "6179414f2eb3db977a513b7b19c23e7e62a0f388" }, + "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }, + "zen-mode.nvim": { "branch": "main", "commit": "50e2e2a36cc97847d9ab3b1a3555ba2ef6839b50" } } \ No newline at end of file diff --git a/.config/nvim/lua/core/theme.lua b/.config/nvim/lua/core/theme.lua new file mode 100644 index 0000000..c814c32 --- /dev/null +++ b/.config/nvim/lua/core/theme.lua @@ -0,0 +1,38 @@ +-- Themery block +-- This block will be replaced by Themery. +require("catppuccin").setup({ +flavour = "latte", -- latte, frappe, macchiato, mocha +styles = { +comments = { "italic" }, +conditionals = { "italic" }, +}, +integrations = { +cmp = true, +treesitter = true, +treesitter_context = true, +fidget = true, +telescope = true, +leap = true, +mason = true, +native_lsp = { +enabled = true, +virtual_text = { +errors = { "italic" }, +hints = { "italic" }, +warnings = { "italic" }, +information = { "italic" }, +}, +underlines = { +errors = { "underline" }, +hints = { "underline" }, +warnings = { "underline" }, +information = { "underline" }, +}, +}, +}, +}) + + +vim.cmd("colorscheme catppuccin-latte") +vim.g.theme_id = 4 +-- end themery block diff --git a/.config/nvim/lua/plugins/autopairs.lua b/.config/nvim/lua/plugins/autopairs.lua new file mode 100644 index 0000000..c24b33d --- /dev/null +++ b/.config/nvim/lua/plugins/autopairs.lua @@ -0,0 +1,10 @@ +local Rule = require('nvim-autopairs.rule') +local npairs = require('nvim-autopairs') + +npairs.setup({ + map_cr = true, + map_bs = true, + check_ts = true, + enable_check_bracket_line = true, + ignored_next_char = "[%w]" +}) diff --git a/.config/nvim/lua/plugins/bufferline.lua b/.config/nvim/lua/plugins/bufferline.lua index 81bee4d..ea0c1d5 100644 --- a/.config/nvim/lua/plugins/bufferline.lua +++ b/.config/nvim/lua/plugins/bufferline.lua @@ -34,7 +34,7 @@ require("bufferline").setup({ icon = "▎", style = "icon", }, - buffer_close_icon = '', + buffer_close_icon = '', modified_icon = '●', close_icon = '', left_trunc_marker = '', diff --git a/.config/nvim/lua/plugins/catppuccin.lua b/.config/nvim/lua/plugins/catppuccin.lua deleted file mode 100644 index b2f8e34..0000000 --- a/.config/nvim/lua/plugins/catppuccin.lua +++ /dev/null @@ -1,41 +0,0 @@ ---local colorscheme = "onedark" - -require("catppuccin").setup({ - flavour = "frappe", -- latte, frappe, macchiato, mocha - styles = { - comments = { "italic" }, - conditionals = { "italic" }, - }, - integrations = { - cmp = true, - treesitter = true, - treesitter_context = true, - fidget = true, - telescope = true, - leap = true, - mason = true, - native_lsp = { - enabled = true, - virtual_text = { - errors = { "italic" }, - hints = { "italic" }, - warnings = { "italic" }, - information = { "italic" }, - }, - underlines = { - errors = { "underline" }, - hints = { "underline" }, - warnings = { "underline" }, - information = { "underline" }, - }, - }, - }, -}) - - -local colorscheme = "catppuccin" - -local status_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme) -if not status_ok then - return -end diff --git a/.config/nvim/lua/plugins/cmp.lua b/.config/nvim/lua/plugins/cmp.lua index 5732f1b..5ad0408 100644 --- a/.config/nvim/lua/plugins/cmp.lua +++ b/.config/nvim/lua/plugins/cmp.lua @@ -14,33 +14,33 @@ local check_backspace = function() return col == 0 or vim.fn.getline("."):sub(col, col):match "%s" end ---   פּ ﯟ   some other good icons +-- 󰃐 󰆩 󰙅 󰛡  󰅲 some other good icons local kind_icons = { - Text = "", + Text = "󰉿", Method = "m", - Function = "", + Function = "󰊕", Constructor = "", Field = "", - Variable = "", - Class = "", + Variable = "󰆧", + Class = "󰌗", Interface = "", Module = "", Property = "", Unit = "", - Value = "", + Value = "󰎠", Enum = "", - Keyword = "", + Keyword = "󰌋", Snippet = "", - Color = "", - File = "", + Color = "󰏘", + File = "󰈙", Reference = "", - Folder = "", + Folder = "󰉋", EnumMember = "", - Constant = "", + Constant = "󰇽", Struct = "", Event = "", - Operator = "", - TypeParameter = "", + Operator = "󰆕", + TypeParameter = "󰊄", Copilot = "", DB = "󰆼", } @@ -110,20 +110,19 @@ cmp.setup { fields = { "kind", "abbr", "menu" }, format = function(entry, vim_item) -- Kind icons - --vim_item.kind = string.format("%s", kind_icons[vim_item.kind]) - if vim.tbl_contains({ "nvim_lsp" }, entry.source.name) then - tailwind = require("tailwindcss-colorizer-cmp") - return tailwind.formatter(entry, vim_item) - else - vim_item.kind = string.format('[%s %s]', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind - vim_item.menu = ({ - nvim_lsp = "[LSP]", - ["vim-dadbod-completion"] = "[󰆼]", - nvim_lua = "[LSP]", - path = "[Path]", - })[entry.source.name] - return vim_item - end + -- if vim.tbl_contains({ "nvim_lsp" }, entry.source.name) then + -- tailwind = require("tailwindcss-colorizer-cmp") + -- return tailwind.formatter(entry, vim_item) + -- else + vim_item.kind = string.format('[%s %s]', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind + vim_item.menu = ({ + nvim_lsp = "[LSP]", + ["vim-dadbod-completion"] = "[󰆼]", + nvim_lua = "[LSP]", + path = "[Path]", + })[entry.source.name] + return vim_item + -- end end, }, sorting = { @@ -195,7 +194,13 @@ cmp.setup { }, experimental = { - ghost_text = true, + ghost_text = false, native_menu = false, }, } + +local cmp_autopairs = require('nvim-autopairs.completion.cmp') +cmp.event:on( + 'confirm_done', + cmp_autopairs.on_confirm_done() +) diff --git a/.config/nvim/lua/plugins/lazy.lua b/.config/nvim/lua/plugins/lazy.lua index ef3d301..6d6c167 100644 --- a/.config/nvim/lua/plugins/lazy.lua +++ b/.config/nvim/lua/plugins/lazy.lua @@ -5,15 +5,19 @@ lazy.setup({ 'lewis6991/impatient.nvim', -------------------------------------------THEMES------------------------------------------ + { + 'zaldih/themery.nvim', + config = function() + require('plugins.themery') + end + }, { 'catppuccin/nvim', name = "catppuccin", lazy = false, priority = 1000, - config = function() - require('plugins.catppuccin') - end }, + { "ellisonleao/gruvbox.nvim", priority = 1000 }, -------------------------------------------------------QOL--------------------------------- { "zbirenbaum/copilot.lua", @@ -46,6 +50,17 @@ lazy.setup({ }, { + 'declancm/cinnamon.nvim', + config = function() + require('cinnamon').setup { + scroll_limit = 10000, + always_scroll = true, + } + end + }, + + { + "folke/which-key.nvim", event = "VeryLazy", init = function() @@ -80,7 +95,6 @@ lazy.setup({ --Change add and remove surroundings from words 'tpope/vim-surround', - 'tpope/vim-obsession', { 'NvChad/nvim-colorizer.lua', @@ -89,22 +103,22 @@ lazy.setup({ end }, - { - "roobert/tailwindcss-colorizer-cmp.nvim", - event = "VeryLazy", - config = function() - require("tailwindcss-colorizer-cmp").setup({ - color_square_width = 2, - }) - end - }, - { - 'laytan/tailwind-sorter.nvim', - event = "VeryLazy", - dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-lua/plenary.nvim' }, - build = 'cd formatter && bun i && bun run build', - config = true, - }, + -- { + -- "roobert/tailwindcss-colorizer-cmp.nvim", + -- event = "VeryLazy", + -- config = function() + -- require("tailwindcss-colorizer-cmp").setup({ + -- color_square_width = 2, + -- }) + -- end + -- }, + -- { + -- 'laytan/tailwind-sorter.nvim', + -- event = "VeryLazy", + -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-lua/plenary.nvim' }, + -- build = 'cd formatter && bun i && bun run build', + -- config = true, + -- }, --Database integration -- 'tpope/vim-dadbod', -- { @@ -135,42 +149,35 @@ lazy.setup({ -- Rename variable pop up 'stevearc/dressing.nvim', - { - 'krady21/compiler-explorer.nvim', - event = "VeryLazy", - config = function() - require("compiler-explorer").setup({ - url = "https://godbolt.org", - infer_lang = true, -- Try to infer possible language based on file extension. - line_match = { - highlight = true, -- highlight the matching line(s) in the other buffer. - jump = true, -- move the cursor in the other buffer to the first matching line. - }, - open_qflist = true, -- Open qflist after compilation if there are diagnostics. - split = "split", -- How to split the window after the second compile (split/vsplit). - compiler_flags = "", -- Default flags passed to the compiler. - job_timeout_ms = 25000, -- Timeout for libuv job in milliseconds. - languages = { -- Language specific default compiler/flags - c = { - compiler = "cg132" - } - }, - }) - end - }, - { - 'luk400/vim-jukit', - ft = {'python','ipynb'}, - }, + -- { + -- 'krady21/compiler-explorer.nvim', + -- event = "VeryLazy", + -- config = function() + -- require("compiler-explorer").setup({ + -- url = "https://godbolt.org", + -- infer_lang = true, -- Try to infer possible language based on file extension. + -- line_match = { + -- highlight = true, -- highlight the matching line(s) in the other buffer. + -- jump = true, -- move the cursor in the other buffer to the first matching line. + -- }, + -- open_qflist = true, -- Open qflist after compilation if there are diagnostics. + -- split = "split", -- How to split the window after the second compile (split/vsplit). + -- compiler_flags = "", -- Default flags passed to the compiler. + -- job_timeout_ms = 25000, -- Timeout for libuv job in milliseconds. + -- languages = { -- Language specific default compiler/flags + -- c = { + -- compiler = "cg132" + -- } + -- }, + -- }) + -- end + -- }, { 'windwp/nvim-autopairs', config = function() - require('nvim-autopairs').setup({ - map_cr = true, - map_bs = true, - }) + require 'plugins.autopairs' end }, @@ -211,17 +218,7 @@ lazy.setup({ }, --LSP Status - { - 'j-hui/fidget.nvim', - tag = 'legacy', - config = function() - require('fidget').setup { - window = { - blend = 0, - } - } - end - }, + 'j-hui/fidget.nvim', { "rcarriga/nvim-dap-ui", @@ -298,6 +295,8 @@ lazy.setup({ end }, + 'kaarmu/typst.vim', + --Sticky headers { 'nvim-treesitter/nvim-treesitter-context', @@ -306,6 +305,8 @@ lazy.setup({ end }, + "runoshun/vim-alloy", + --Tabs { 'akinsho/bufferline.nvim', diff --git a/.config/nvim/lua/plugins/themery.lua b/.config/nvim/lua/plugins/themery.lua new file mode 100644 index 0000000..576cddc --- /dev/null +++ b/.config/nvim/lua/plugins/themery.lua @@ -0,0 +1,93 @@ +require("themery").setup({ + themes = { { + name = "Gruvbox dark", + colorscheme = "gruvbox", + before = [[ + vim.opt.background = "dark" + ]], + }, + { + name = "Gruvbox light", + colorscheme = "gruvbox", + before = [[ + vim.opt.background = "light" + ]] + }, + { + name = "Catppuccin Frappe", + colorscheme = "catppuccin-frappe", + before = [[ + require("catppuccin").setup({ + flavour = "frappe", -- latte, frappe, macchiato, mocha + styles = { + comments = { "italic" }, + conditionals = { "italic" }, + }, + integrations = { + cmp = true, + treesitter = true, + treesitter_context = true, + fidget = true, + telescope = true, + leap = true, + mason = true, + native_lsp = { + enabled = true, + virtual_text = { + errors = { "italic" }, + hints = { "italic" }, + warnings = { "italic" }, + information = { "italic" }, + }, + underlines = { + errors = { "underline" }, + hints = { "underline" }, + warnings = { "underline" }, + information = { "underline" }, + }, + }, + }, + }) + ]] + }, + { + name = "Catppuccin Latte", + colorscheme = "catppuccin-latte", + before = [[ + require("catppuccin").setup({ + flavour = "latte", -- latte, frappe, macchiato, mocha + styles = { + comments = { "italic" }, + conditionals = { "italic" }, + }, + integrations = { + cmp = true, + treesitter = true, + treesitter_context = true, + fidget = true, + telescope = true, + leap = true, + mason = true, + native_lsp = { + enabled = true, + virtual_text = { + errors = { "italic" }, + hints = { "italic" }, + warnings = { "italic" }, + information = { "italic" }, + }, + underlines = { + errors = { "underline" }, + hints = { "underline" }, + warnings = { "underline" }, + information = { "underline" }, + }, + }, + }, + }) + ]] + }, + }, + themeConfigFile = "~/.config/nvim/lua/core/theme.lua", -- Described below + livePreview = true, -- Apply theme while browsing. Default to true. +}) diff --git a/.config/nvim/lua/winbar.lua b/.config/nvim/lua/winbar.lua new file mode 100644 index 0000000..243670d --- /dev/null +++ b/.config/nvim/lua/winbar.lua @@ -0,0 +1,71 @@ +local folder_icon = "󰉋" + +local M = {} + +--- Window bar that shows the current file path (in a fancy way). +---@return string +function M.render() + -- Get the path and expand variables. + local path = vim.fs.normalize(vim.fn.expand '%:p' --[[@as string]]) + + -- Replace slashes by arrows. + local separator = ' %#WinbarSeparator# ' + + local prefix, prefix_path = '', '' + + -- If the window gets too narrow, shorten the path and drop the prefix. + if vim.api.nvim_win_get_width(0) < math.floor(vim.o.columns / 3) then + path = vim.fn.pathshorten(path) + else + -- For some special folders, add a prefix instead of the full path (making + -- sure to pick the longest prefix). + ---@type table + local special_dirs = { + DOTFILES = "/Users/afonso/.config", + HOME = vim.env.HOME, + PROJECTS = "/Users/afonso/projects", + ["University"] = "/Users/afonso/projects/University", + ["Personal"] = "/Users/afonso/projects/Personal", + } + for dir_name, dir_path in pairs(special_dirs) do + if vim.startswith(path, vim.fs.normalize(dir_path)) and #dir_path > #prefix_path then + prefix, prefix_path = dir_name, dir_path + end + end + if prefix ~= '' then + path = path:gsub('^' .. prefix_path, '') + prefix = string.format('%%#WinBarSpecial#%s %s%s', folder_icon, prefix, separator) + end + end + + -- Remove leading slash. + path = path:gsub('^/', '') + + return table.concat { + ' ', + prefix, + table.concat( + vim.iter.map(function(segment) + return string.format('%%#Winbar#%s', segment) + end, vim.split(path, '/')), + separator + ), + } +end + +vim.api.nvim_create_autocmd('BufWinEnter', { + group = vim.api.nvim_create_augroup('mariasolos/winbar', { clear = true }), + desc = 'Attach winbar', + callback = function(args) + if + not vim.api.nvim_win_get_config(0).zindex -- Not a floating window + and vim.bo[args.buf].buftype == '' -- Normal buffer + and vim.api.nvim_buf_get_name(args.buf) ~= '' -- Has a file name + and not vim.wo[0].diff -- Not in diff mode + then + vim.wo.winbar = "%{%v:lua.require'winbar'.render()%}" + end + end, +}) + +return M diff --git a/.config/tmux/tmux_plugins.conf b/.config/tmux/tmux_plugins.conf index f131165..5d831b6 100644 --- a/.config/tmux/tmux_plugins.conf +++ b/.config/tmux/tmux_plugins.conf @@ -9,7 +9,7 @@ set -g @plugin 'tmux-plugins/tmux-continuum' set -g @plugin 'tomhey/tmux-remote-sessions' # Plugin settings -set -g @catppuccin_flavour 'frappe' +set -g @catppuccin_flavour 'latte' set -g @catppuccin_window_tabs_enabled on set -g @resurrect-strategy-nvim 'session' set -g @resurrect-capture-pane-contents 'on' diff --git a/.config/zsh/main.zsh b/.config/zsh/main.zsh new file mode 100644 index 0000000..19c1040 --- /dev/null +++ b/.config/zsh/main.zsh @@ -0,0 +1,45 @@ + +HISTSIZE=10000000 +SAVEHIST=10000000 +setopt BANG_HIST # Treat the '!' character specially during expansion. +setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format. +setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits. +setopt SHARE_HISTORY # Share history between all sessions. +setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history. +setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again. +setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate. +setopt HIST_FIND_NO_DUPS # Do not display a line previously found. +setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space. +setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file. +setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry. +setopt HIST_VERIFY + +export EDITOR=nvim +export READER=mupdf + +# Add paths +export PATH="/opt/homebrew/bin:$PATH" +export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH" +export PATH="$HOME/.bun/bin:$PATH" +export PATH="$HOME/go/bin:$PATH" +export PATH="$HOME/.local/share/nvim/mason/bin:$PATH" +export PATH="$HOME/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin:$PATH" +export PATH="$HOME/.local/bin:$PATH" +export PATH="$HOME/.cargo/bin:$PATH" +export PATH="$HOME/.ghcup/bin:$PATH" +export PATH="/usr/bin/vendor_perl:$PATH" + +if [ "$(arch)" = "arm64" ]; then + eval "$(/opt/homebrew/bin/brew shellenv)" +else + eval "$(/usr/local/bin/brew shellenv)" +fi + +[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh + +# bun +export BUN_INSTALL="$HOME/.bun" +export PATH="$BUN_INSTALL/bin:$PATH" + +# opam configuration +source $HOME/.opam/opam-init/init.zsh > /dev/null 2>&1 || true diff --git a/.config/zsh/overrides.zsh b/.config/zsh/overrides.zsh new file mode 100644 index 0000000..accfb29 --- /dev/null +++ b/.config/zsh/overrides.zsh @@ -0,0 +1,2 @@ +ZSH_AUTOSUGGEST_STRATEGY=(match_prev_cmd history completion) +ZSH_TMUX_AUTOSTART=true diff --git a/.config/zsh/qol.zsh b/.config/zsh/qol.zsh index fc28619..e723104 100644 --- a/.config/zsh/qol.zsh +++ b/.config/zsh/qol.zsh @@ -1,8 +1,5 @@ # ~/.config/zsh/qol.zsh -bindkey '^H' backward-kill-path-component -bindkey '^[[3;5~' kill-word - backup() { cp $1 $1.bak } diff --git a/.ssh/config b/.ssh/config index faef381..8f8c605 100644 --- a/.ssh/config +++ b/.ssh/config @@ -1,5 +1,6 @@ IdentityFile ~/.ssh/id_ed25519_sk IdentityFile ~/.ssh/id_ed25519_sk_secondary +IdentityFile ~/.ssh/id_rsa Host gon ControlMaster auto