From b673498238860b49ab0f4bdd39707cbe70f1f32a Mon Sep 17 00:00:00 2001 From: lucy Date: Wed, 1 Apr 2026 19:11:18 +0200 Subject: [PATCH 01/15] clean repo to prep for native package man --- init.lua | 60 ---------------------- lazy-lock.json | 17 ------- lua/config/keymaps.lua | 36 ------------- lua/config/lazy.lua | 34 ------------- lua/plugins/coding.lua | 58 --------------------- lua/plugins/snacks.lua | 112 ----------------------------------------- lua/plugins/ui.lua | 74 --------------------------- 7 files changed, 391 deletions(-) delete mode 100644 init.lua delete mode 100644 lazy-lock.json delete mode 100644 lua/config/keymaps.lua delete mode 100644 lua/config/lazy.lua delete mode 100644 lua/plugins/coding.lua delete mode 100644 lua/plugins/snacks.lua delete mode 100644 lua/plugins/ui.lua diff --git a/init.lua b/init.lua deleted file mode 100644 index 8525326..0000000 --- a/init.lua +++ /dev/null @@ -1,60 +0,0 @@ -local opt = vim.opt -vim.g.mapleader = " " -vim.g.maplocalleader = "\\" -opt.number = true -opt.relativenumber = true - -opt.cursorline = true -opt.termguicolors = true -opt.winborder = "rounded" -opt.signcolumn = "yes" -vim.lsp.inlay_hint.enable = true -opt.tabstop = 8 -vim.opt.expandtab = true -vim.g.tinted_background_transparent = 1 - -opt.shiftwidth = 8 -vim.diagnostic.config({ - virtual_text = { - spacing = 4, - source = true, - }, -}) -require("config.lazy") -require("config.keymaps") -local default_theme = "base16-oceanicnext" - -local function get_tinty_theme() - local theme_name = vim.fn.system("cat ~/.local/share/tinted-theming/tinty/current_scheme") - - if vim.v.shell_error ~= 0 then - return default_theme - else - return vim.trim(theme_name) - end -end - -local function handle_focus_gained() - local new_theme_name = get_tinty_theme() - local current_theme_name = vim.g.colors_name - - if current_theme_name ~= new_theme_name then - vim.cmd("colorscheme " .. new_theme_name) - require("lualine").setup() - end - require("lualine").setup() -end - -local function main() - vim.o.termguicolors = true - vim.g.tinted_colorspace = 256 - local current_theme_name = get_tinty_theme() - - vim.cmd("colorscheme " .. current_theme_name) - - vim.api.nvim_create_autocmd("FocusGained", { - callback = handle_focus_gained, - }) -end - -main() diff --git a/lazy-lock.json b/lazy-lock.json deleted file mode 100644 index d84fcd7..0000000 --- a/lazy-lock.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "base16-nvim": { "branch": "master", "commit": "190397833e53fdfd5cf400c5baaf1a4e533158e5" }, - "blink.cmp": { "branch": "main", "commit": "451168851e8e2466bc97ee3e026c3dcb9141ce07" }, - "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, - "cord.nvim": { "branch": "master", "commit": "283e4a5bdafd0d6187f28e5b739cccab6b4c9c64" }, - "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" }, - "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, - "lspsaga.nvim": { "branch": "main", "commit": "562d9724e3869ffd1801c572dd149cc9f8d0cc36" }, - "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "25f609e7fca78af7cede4f9fa3af8a94b1c4950b" }, - "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" }, - "nvim-lspconfig": { "branch": "master", "commit": "8e2084bf5e40c79c1f42210a6ef96a0a4793a763" }, - "nvim-treesitter": { "branch": "main", "commit": "7caec274fd19c12b55902a5b795100d21531391f" }, - "nvim-web-devicons": { "branch": "master", "commit": "d7462543c9e366c0d196c7f67a945eaaf5d99414" }, - "snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" }, - "tinted-vim": { "branch": "main", "commit": "19b03f63f58ffc63aa8e26159a370d6514735581" } -} diff --git a/lua/config/keymaps.lua b/lua/config/keymaps.lua deleted file mode 100644 index a980275..0000000 --- a/lua/config/keymaps.lua +++ /dev/null @@ -1,36 +0,0 @@ -local map = vim.keymap.set - -map("n", "ff", function() - Snacks.picker.files() -end) -map("n", "lg", function() - Snacks.picker.grep() -end) - --- lsp keybinds -map("n", "K", " Lspsaga hover_doc") -map("n", "go", " Lspsaga goto_definition") -map("n", "gr", " Lspsaga finder") -map("n", "qf", " Lspsaga code_action") -map("n", "", function() - vim.lsp.buf.format() -end) --- bufferline keybinds -map("n", "", " BufferLineGoToBuffer 1 ") -map("n", "", " BufferLineGoToBuffer 2 ") -map("n", "", " BufferLineGoToBuffer 3 ") -map("n", "", " BufferLineGoToBuffer 4 ") -map("n", "", " BufferLineGoToBuffer 5 ") -map("n", "", " BufferLineGoToBuffer 6 ") -map("n", "", " BufferLineGoToBuffer 7 ") -map("n", "", " BufferLineGoToBuffer 8 ") -map("n", "", " BufferLineGoToBuffer 9 ") -map("n", "", " BufferLineGoToBuffer last ") -map("n", "w", " bdelete! ") - --- util keybinds -map("n", "t", " terminal ") -map("n", "", "Lspsaga term_toggle") -map("t", "", "") -map("n", "", "NvimTreeToggle") -map("n", "", " vim.b.completion != vim.b.completion ") diff --git a/lua/config/lazy.lua b/lua/config/lazy.lua deleted file mode 100644 index 17c756e..0000000 --- a/lua/config/lazy.lua +++ /dev/null @@ -1,34 +0,0 @@ --- Bootstrap lazy.nvim -local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" -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 }) - if vim.v.shell_error ~= 0 then - vim.api.nvim_echo({ - { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, - { out, "WarningMsg" }, - { "\nPress any key to exit..." }, - }, true, {}) - vim.fn.getchar() - os.exit(1) - end -end -vim.opt.rtp:prepend(lazypath) - --- Make sure to setup `mapleader` and `maplocalleader` before --- loading lazy.nvim so that mappings are correct. --- This is also a good place to setup other settings (vim.opt) - --- Setup lazy.nvim -require("lazy").setup({ - spec = { - -- import your plugins - { import = "plugins" }, - }, - -- Configure any other settings here. See the documentation for more details. - -- colorscheme that will be used when installing plugins. - install = { colorscheme = { "base16-catppuccin-mocha" } }, - -- automatically check for plugin updates - checker = { enabled = true }, - change_detection = { notify = false }, -}) diff --git a/lua/plugins/coding.lua b/lua/plugins/coding.lua deleted file mode 100644 index 7d01e46..0000000 --- a/lua/plugins/coding.lua +++ /dev/null @@ -1,58 +0,0 @@ -return { - { - "mason-org/mason-lspconfig.nvim", - opts = {}, - dependencies = { - { "mason-org/mason.nvim", opts = {} }, - "neovim/nvim-lspconfig", - }, - }, - - { - "saghen/blink.cmp", - -- optional: provides snippets for the snippet source - dependencies = { "neovim/nvim-lspconfig" }, - - -- use a release tag to download pre-built binaries - version = "1.*", - -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust - -- build = 'cargo build --release', - -- If you use nix, you can build from source using latest nightly rust with: - -- build = 'nix run .#build-plugin', - - ---@module 'blink.cmp' - ---@type blink.cmp.Config - opts = { - -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept) - -- 'super-tab' for mappings similar to vscode (tab to accept) - -- 'enter' for enter to accept - -- 'none' for no mappings - -- - -- All presets have the following mappings: - -- C-space: Open menu or open docs if already open - -- C-n/C-p or Up/Down: Select next/previous item - -- C-e: Hide menu - -- C-k: Toggle signature help (if signature.enabled = true) - -- - -- See :h blink-cmp-config-keymap for defining your own keymap - keymap = { preset = "default" }, - - appearance = { - nerd_font_variant = "mono", - }, - - -- (Default) Only show the documentation popup when manually triggered - completion = { - documentation = { auto_show = true }, - menu = { auto_show = false }, - }, - - sources = { - default = { "lsp", "path", "snippets", "buffer" }, - }, - - fuzzy = { implementation = "prefer_rust_with_warning" }, - }, - opts_extend = { "sources.default" }, - }, -} diff --git a/lua/plugins/snacks.lua b/lua/plugins/snacks.lua deleted file mode 100644 index 5a09c00..0000000 --- a/lua/plugins/snacks.lua +++ /dev/null @@ -1,112 +0,0 @@ -return { - { - "folke/snacks.nvim", - opts = { - dashboard = { - enabled = true, - width = 60, - row = nil, -- dashboard position. nil for center - col = nil, -- dashboard position. nil for center - pane_gap = 4, -- empty columns between vertical panes - autokeys = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", -- autokey sequence - -- These settings are used by some built-in sections - preset = { - -- Defaults to a picker that supports `fzf-lua`, `telescope.nvim` and `mini.pick` - ---@type fun(cmd:string, opts:table)|nil - pick = nil, - -- Used by the `keys` section to show keymaps. - -- Set your custom keymaps here. - -- When using a function, the `items` argument are the default keymaps. - ---@type snacks.dashboard.Item[] - keys = { - { - icon = " ", - key = "f", - desc = "Find File", - action = ":lua Snacks.dashboard.pick('files')", - }, - { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" }, - { - icon = " ", - key = "g", - desc = "Find Text", - action = ":lua Snacks.dashboard.pick('live_grep')", - }, - { - icon = " ", - key = "r", - desc = "Recent Files", - action = ":lua Snacks.dashboard.pick('oldfiles')", - }, - { - icon = " ", - key = "c", - desc = "Config", - action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})", - }, - { icon = " ", key = "s", desc = "Restore Session", section = "session" }, - { - icon = "󰒲 ", - key = "L", - desc = "Lazy", - action = ":Lazy", - enabled = package.loaded.lazy ~= nil, - }, - { icon = " ", key = "q", desc = "Quit", action = ":qa" }, - }, - -- Used by the `header` section - header = [[ - - - - ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ - ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ - ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ - ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ - ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ - ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ - ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ - ⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ - ⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄ - ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ - ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃ - -]], - }, - -- item field formatters - formats = { - icon = function(item) - if item.file and item.icon == "file" or item.icon == "directory" then - return Snacks.dashboard.icon(item.file, item.icon) - end - return { item.icon, width = 2, hl = "icon" } - end, - footer = { "%s", align = "center" }, - header = { "%s", align = "center" }, - file = function(item, ctx) - local fname = vim.fn.fnamemodify(item.file, ":~") - fname = ctx.width and #fname > ctx.width and vim.fn.pathshorten(fname) or fname - if #fname > ctx.width then - local dir = vim.fn.fnamemodify(fname, ":h") - local file = vim.fn.fnamemodify(fname, ":t") - if dir and file then - file = file:sub(-(ctx.width - #dir - 2)) - fname = dir .. "/…" .. file - end - end - local dir, file = fname:match("^(.*)/(.+)$") - return dir and { { dir .. "/", hl = "dir" }, { file, hl = "file" } } - or { { fname, hl = "file" } } - end, - }, - sections = { - { section = "header" }, - { section = "keys", gap = 1, padding = 1 }, - { section = "startup" }, - }, - }, - notifier = { enabled = true }, - statuscolumn = { enabled = true }, - }, - }, -} diff --git a/lua/plugins/ui.lua b/lua/plugins/ui.lua deleted file mode 100644 index 8e3b113..0000000 --- a/lua/plugins/ui.lua +++ /dev/null @@ -1,74 +0,0 @@ -return { - { - "vyfor/cord.nvim", - ---@type CordConfig - opts = { - display = { - theme = "atom", - }, - editor = { tooltip = "ur gay x3" }, - }, - }, - { - "tinted-theming/tinted-vim", - lazy = false, - priority = 1000, - }, - { - "lukas-reineke/indent-blankline.nvim", - main = "ibl", - ---@module "ibl" - ---@type ibl.config - opts = { - scope = { enabled = true }, - }, - }, - - { - "nvim-lualine/lualine.nvim", - dependencies = { "nvim-tree/nvim-web-devicons", "RRethy/base16-nvim" }, - opts = { - options = { - component_separators = { left = "", right = "" }, - section_separators = { left = "", right = "" }, - }, - sections = { - lualine_a = { "mode" }, - lualine_b = { "diagnostics" }, - lualine_c = { "filename", "branch", "navic" }, - lualine_x = { "lsp_status", "filetype" }, - lualine_y = { "progress" }, - lualine_z = { "location" }, - }, - }, - }, - - { - "nvim-treesitter/nvim-treesitter", - opts = { install_dir = vim.fn.stdpath("data") .. "/site" }, - lazy = false, - build = ":TSUpdate", - }, - { - "nvimdev/lspsaga.nvim", - dependencies = { - "nvim-treesitter/nvim-treesitter", -- for syntax highlighting inside the popup - }, - opts = { - symbol_in_winbar = { enable = true }, - lightbulb = { - enable = true, - sign = false, - }, - hover = { - max_width = 0.6, - open_link = "gx", - open_browser = "!google-chrome", - }, - }, - }, - { - "akinsho/bufferline.nvim", - opts = {}, - }, -} From 0b8813831f4bd00741962e04ccc6c4bf42aa8a65 Mon Sep 17 00:00:00 2001 From: lucy Date: Wed, 1 Apr 2026 19:58:56 +0200 Subject: [PATCH 02/15] fully set up! --- init.lua | 201 ++++++++++++++++++++++++++++++++++++++++++++ nvim-pack-lock.json | 32 +++++++ 2 files changed, 233 insertions(+) create mode 100644 init.lua create mode 100644 nvim-pack-lock.json diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..20a6807 --- /dev/null +++ b/init.lua @@ -0,0 +1,201 @@ +-- add plugins +vim.pack.add({ + "https://github.com/folke/snacks.nvim", + "https://github.com/nvim-lualine/lualine.nvim", + "https://github.com/RRethy/base16-nvim", + "https://github.com/akinsho/bufferline.nvim", + "https://github.com/nvimdev/lspsaga.nvim", + "https://github.com/neovim/nvim-lspconfig", + "https://github.com/nvim-treesitter/nvim-treesitter", +}) + + +require('lualine').setup() +require('bufferline').setup() +require('snacks').setup({ + notifier = { enabled = true }, + statuscolumn = { enabled = true }, + picker = {} +}) +require('lspsaga').setup({ + symbol_in_winbar = { enable = true }, + lightbulb = { + enable = true, + sign = false, + }, + hover = { + max_width = 0.6, + open_link = "gx", + open_browser = "!google-chrome", + } +}) +-- general options +local opt = vim.opt +vim.g.mapleader = " " +vim.g.maplocalleader = "\\" +opt.number = true +opt.relativenumber = true + +opt.cursorline = true +opt.termguicolors = true +opt.winborder = "rounded" +opt.signcolumn = "yes" +vim.lsp.inlay_hint.enable = true +opt.tabstop = 8 +vim.opt.expandtab = true +vim.g.tinted_background_transparent = 1 + +opt.shiftwidth = 8 +vim.diagnostic.config({ + virtual_text = { + spacing = 4, + source = true, + }, +}) +-- setup lualine +require('lualine').setup({ + options = { + component_separators = { left = "", right = "" }, + section_separators = { left = "", right = "" }, + }, + sections = { + lualine_a = { "mode" }, + lualine_b = { "diagnostics" }, + lualine_c = { "filename", "branch", "navic" }, + lualine_x = { "lsp_status", "filetype" }, + lualine_y = { "progress" }, + lualine_z = { "location" }, + }, +}) + + +-- keymaps +local map = vim.keymap.set + +map("n", "ff", function() + Snacks.picker.files() +end) +map("n", "lg", function() + Snacks.picker.grep() +end) + +-- lsp keybinds +map("n", "K", " Lspsaga hover_doc") +map("n", "go", " Lspsaga goto_definition") +map("n", "gr", " Lspsaga finder") +map("n", "qf", " Lspsaga code_action") +map("n", "", function() + vim.lsp.buf.format() +end) +-- bufferline keybinds +map("n", "", " BufferLineGoToBuffer 1 ") +map("n", "", " BufferLineGoToBuffer 2 ") +map("n", "", " BufferLineGoToBuffer 3 ") +map("n", "", " BufferLineGoToBuffer 4 ") +map("n", "", " BufferLineGoToBuffer 5 ") +map("n", "", " BufferLineGoToBuffer 6 ") +map("n", "", " BufferLineGoToBuffer 7 ") +map("n", "", " BufferLineGoToBuffer 8 ") +map("n", "", " BufferLineGoToBuffer 9 ") +map("n", "", " BufferLineGoToBuffer last ") +map("n", "w", " bdelete! ") + +-- util keybinds +map("n", "t", " terminal ") +map("n", "", "Lspsaga term_toggle") +map("t", "", "") +map("i", "", vim.lsp.completion.get, { desc = "trigger autocompletion" }) +-- lsp setup +vim.lsp.config('*', { + on_attach = function(client, bufnr) + vim.lsp.completion.enable(true, client.id, bufnr, { + autotrigger = true, + convert = function(item) + return { abbr = item.label:gsub("%b()", "") } + end, + }) + vim.keymap.set("i", "", vim.lsp.completion.get, { desc = "trigger autocompletion" }) + end +}) +vim.lsp.enable('lua_ls') +vim.lsp.enable('qmlls') +vim.lsp.enable('clangd') + +vim.o.complete = ".,o" -- use buffer and omnifunc +vim.o.completeopt = "fuzzy,menuone,noselect" -- add 'popup' for docs (sometimes) +vim.o.autocomplete = false +vim.o.pumheight = 7 + + +vim.api.nvim_create_autocmd("LspAttach", { + callback = function(ev) + vim.lsp.completion.enable(true, ev.data.client_id, ev.buf, { + -- Optional formating of items + convert = function(item) + -- Remove leading misc chars for abbr name, + -- and cap field to 25 chars + --local abbr = item.label + --abbr = abbr:match("[%w_.]+.*") or abbr + --abbr = #abbr > 25 and abbr:sub(1, 24) .. "…" or abbr + -- + -- Remove return value + --local menu = "" + + -- Only show abbr name, remove leading misc chars (bullets etc.), + -- and cap field to 15 chars + local abbr = item.label + abbr = abbr:gsub("%b()", ""):gsub("%b{}", "") + abbr = abbr:match("[%w_.]+.*") or abbr + abbr = #abbr > 15 and abbr:sub(1, 14) .. "…" or abbr + + -- Cap return value field to 15 chars + local menu = item.detail or "" + menu = #menu > 15 and menu:sub(1, 14) .. "…" or menu + + return { abbr = abbr, menu = menu } + end, + }) + end, +}) + + + + + +-- tinty function +local default_theme = "base16-oceanicnext" + +local function get_tinty_theme() + local theme_name = vim.fn.system("cat ~/.local/share/tinted-theming/tinty/current_scheme") + + if vim.v.shell_error ~= 0 then + return default_theme + else + return vim.trim(theme_name) + end +end + +local function handle_focus_gained() + local new_theme_name = get_tinty_theme() + local current_theme_name = vim.g.colors_name + + if current_theme_name ~= new_theme_name then + vim.cmd("colorscheme " .. new_theme_name) + require("lualine").setup() + end + require("lualine").setup() +end + +local function main() + vim.o.termguicolors = true + vim.g.tinted_colorspace = 256 + local current_theme_name = get_tinty_theme() + + vim.cmd("colorscheme " .. current_theme_name) + + vim.api.nvim_create_autocmd("FocusGained", { + callback = handle_focus_gained, + }) +end + +main() diff --git a/nvim-pack-lock.json b/nvim-pack-lock.json new file mode 100644 index 0000000..c2b10e0 --- /dev/null +++ b/nvim-pack-lock.json @@ -0,0 +1,32 @@ +{ + "plugins": { + "base16-nvim": { + "rev": "190397833e53fdfd5cf400c5baaf1a4e533158e5", + "src": "https://github.com/RRethy/base16-nvim" + }, + "bufferline.nvim": { + "rev": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3", + "src": "https://github.com/akinsho/bufferline.nvim" + }, + "lspsaga.nvim": { + "rev": "562d9724e3869ffd1801c572dd149cc9f8d0cc36", + "src": "https://github.com/nvimdev/lspsaga.nvim" + }, + "lualine.nvim": { + "rev": "47f91c416daef12db467145e16bed5bbfe00add8", + "src": "https://github.com/nvim-lualine/lualine.nvim" + }, + "nvim-lspconfig": { + "rev": "8e2084bf5e40c79c1f42210a6ef96a0a4793a763", + "src": "https://github.com/neovim/nvim-lspconfig" + }, + "nvim-treesitter": { + "rev": "c82bf96f0a773d85304feeb695e1e23b2207ac35", + "src": "https://github.com/nvim-treesitter/nvim-treesitter" + }, + "snacks.nvim": { + "rev": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e", + "src": "https://github.com/folke/snacks.nvim" + } + } +} From c3c64362df285cbc23d41fad815301942dee39ba Mon Sep 17 00:00:00 2001 From: lucy Date: Wed, 1 Apr 2026 20:33:53 +0200 Subject: [PATCH 03/15] make autocompletion possible --- init.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index 20a6807..a9d7522 100644 --- a/init.lua +++ b/init.lua @@ -117,16 +117,20 @@ vim.lsp.config('*', { vim.keymap.set("i", "", vim.lsp.completion.get, { desc = "trigger autocompletion" }) end }) +vim.lsp.config('qmlls', { + cmd = { "qmlls6" }, +}) vim.lsp.enable('lua_ls') vim.lsp.enable('qmlls') vim.lsp.enable('clangd') + vim.o.complete = ".,o" -- use buffer and omnifunc vim.o.completeopt = "fuzzy,menuone,noselect" -- add 'popup' for docs (sometimes) -vim.o.autocomplete = false +vim.o.autocomplete = true vim.o.pumheight = 7 - +-- setup autocomplete vim.api.nvim_create_autocmd("LspAttach", { callback = function(ev) vim.lsp.completion.enable(true, ev.data.client_id, ev.buf, { From 74048e84050b8ab034e65035f032cccbddce571e Mon Sep 17 00:00:00 2001 From: lucy Date: Fri, 3 Apr 2026 17:04:39 +0200 Subject: [PATCH 04/15] go back to base16-nvim for bufferline styling --- init.lua | 258 +++++++++++++++++++++++--------------------- nvim-pack-lock.json | 20 ++++ 2 files changed, 157 insertions(+), 121 deletions(-) diff --git a/init.lua b/init.lua index a9d7522..f42de96 100644 --- a/init.lua +++ b/init.lua @@ -1,34 +1,3 @@ --- add plugins -vim.pack.add({ - "https://github.com/folke/snacks.nvim", - "https://github.com/nvim-lualine/lualine.nvim", - "https://github.com/RRethy/base16-nvim", - "https://github.com/akinsho/bufferline.nvim", - "https://github.com/nvimdev/lspsaga.nvim", - "https://github.com/neovim/nvim-lspconfig", - "https://github.com/nvim-treesitter/nvim-treesitter", -}) - - -require('lualine').setup() -require('bufferline').setup() -require('snacks').setup({ - notifier = { enabled = true }, - statuscolumn = { enabled = true }, - picker = {} -}) -require('lspsaga').setup({ - symbol_in_winbar = { enable = true }, - lightbulb = { - enable = true, - sign = false, - }, - hover = { - max_width = 0.6, - open_link = "gx", - open_browser = "!google-chrome", - } -}) -- general options local opt = vim.opt vim.g.mapleader = " " @@ -43,49 +12,107 @@ opt.signcolumn = "yes" vim.lsp.inlay_hint.enable = true opt.tabstop = 8 vim.opt.expandtab = true -vim.g.tinted_background_transparent = 1 +vim.g.tinted_background_transparent = 0 opt.shiftwidth = 8 vim.diagnostic.config({ - virtual_text = { - spacing = 4, - source = true, - }, + virtual_text = { + spacing = 4, + source = true, + }, }) --- setup lualine -require('lualine').setup({ - options = { - component_separators = { left = "", right = "" }, - section_separators = { left = "", right = "" }, - }, - sections = { - lualine_a = { "mode" }, - lualine_b = { "diagnostics" }, - lualine_c = { "filename", "branch", "navic" }, - lualine_x = { "lsp_status", "filetype" }, - lualine_y = { "progress" }, - lualine_z = { "location" }, - }, +-- add plugins +vim.pack.add({ + "https://github.com/folke/snacks.nvim", + "https://github.com/nvim-lualine/lualine.nvim", + "https://github.com/RRethy/base16-nvim", + "https://github.com/akinsho/bufferline.nvim", + "https://github.com/nvimdev/lspsaga.nvim", + "https://github.com/neovim/nvim-lspconfig", + "https://github.com/nvim-treesitter/nvim-treesitter", + "https://github.com/vyfor/cord.nvim", + "https://github.com/mason-org/mason-lspconfig.nvim.git", + "https://github.com/mason-org/mason.nvim.git", + "https://github.com/nvim-tree/nvim-web-devicons", }) - +vim.lsp.config("qmlls", { + cmd = { "qmlls6" }, +}) +require("mason").setup() +require("mason-lspconfig").setup() +require("bufferline").setup({ + options = { + themable = true, + numbers = "ordinal", + indicator = { + style = "underline", + }, + }, +}) +require("lualine").setup() +require("snacks").setup({ + notifier = { enabled = true }, + statuscolumn = { enabled = true }, + picker = {}, +}) +require("lspsaga").setup({ + symbol_in_winbar = { enable = true }, + lightbulb = { + enable = true, + sign = false, + }, + hover = { + max_width = 0.6, + open_link = "gx", + open_browser = "!google-chrome", + }, +}) +require("cord").setup({ + display = { + theme = "atom", + }, + editor = { tooltip = "ur gay x3" }, +}) +require("lualine").setup({ + options = { + component_separators = { left = "", right = "" }, + section_separators = { left = "", right = "" }, + }, + sections = { + lualine_a = { "mode" }, + lualine_b = { "diagnostics" }, + lualine_c = { "filename", "branch", "navic" }, + lualine_x = { "lsp_status", "filetype" }, + lualine_y = { "progress" }, + lualine_z = { "location" }, + }, +}) -- keymaps local map = vim.keymap.set map("n", "ff", function() - Snacks.picker.files() + Snacks.picker.files() end) map("n", "lg", function() - Snacks.picker.grep() + Snacks.picker.grep() end) +map("n", "", "h") +map("n", "", "j") +map("n", "", "k") +map("n", "", "l") +map("n", "", ":vertical resize -5", { silent = true }) +map("n", "", ":vertical resize +5", { silent = true }) +map("n", "", ":resize +5", { silent = true }) +map("n", "", ":resize -5", { silent = true }) -- lsp keybinds map("n", "K", " Lspsaga hover_doc") map("n", "go", " Lspsaga goto_definition") map("n", "gr", " Lspsaga finder") map("n", "qf", " Lspsaga code_action") map("n", "", function() - vim.lsp.buf.format() + vim.lsp.buf.format() end) -- bufferline keybinds map("n", "", " BufferLineGoToBuffer 1 ") @@ -106,100 +133,89 @@ map("n", "", "Lspsaga term_toggle") map("t", "", "") map("i", "", vim.lsp.completion.get, { desc = "trigger autocompletion" }) -- lsp setup -vim.lsp.config('*', { - on_attach = function(client, bufnr) - vim.lsp.completion.enable(true, client.id, bufnr, { - autotrigger = true, - convert = function(item) - return { abbr = item.label:gsub("%b()", "") } - end, - }) - vim.keymap.set("i", "", vim.lsp.completion.get, { desc = "trigger autocompletion" }) - end +vim.lsp.config("*", { + on_attach = function(client, bufnr) + vim.lsp.completion.enable(true, client.id, bufnr, { + autotrigger = true, + convert = function(item) + return { abbr = item.label:gsub("%b()", "") } + end, + }) + vim.keymap.set("i", "", vim.lsp.completion.get, { desc = "trigger autocompletion" }) + end, }) -vim.lsp.config('qmlls', { - cmd = { "qmlls6" }, -}) -vim.lsp.enable('lua_ls') -vim.lsp.enable('qmlls') -vim.lsp.enable('clangd') - -vim.o.complete = ".,o" -- use buffer and omnifunc +vim.o.complete = ".,o" -- use buffer and omnifunc vim.o.completeopt = "fuzzy,menuone,noselect" -- add 'popup' for docs (sometimes) vim.o.autocomplete = true vim.o.pumheight = 7 -- setup autocomplete vim.api.nvim_create_autocmd("LspAttach", { - callback = function(ev) - vim.lsp.completion.enable(true, ev.data.client_id, ev.buf, { - -- Optional formating of items - convert = function(item) - -- Remove leading misc chars for abbr name, - -- and cap field to 25 chars - --local abbr = item.label - --abbr = abbr:match("[%w_.]+.*") or abbr - --abbr = #abbr > 25 and abbr:sub(1, 24) .. "…" or abbr - -- - -- Remove return value - --local menu = "" + callback = function(ev) + vim.lsp.completion.enable(true, ev.data.client_id, ev.buf, { + -- Optional formating of items + convert = function(item) + -- Remove leading misc chars for abbr name, + -- and cap field to 25 chars + --local abbr = item.label + --abbr = abbr:match("[%w_.]+.*") or abbr + --abbr = #abbr > 25 and abbr:sub(1, 24) .. "…" or abbr + -- + -- Remove return value + --local menu = "" - -- Only show abbr name, remove leading misc chars (bullets etc.), - -- and cap field to 15 chars - local abbr = item.label - abbr = abbr:gsub("%b()", ""):gsub("%b{}", "") - abbr = abbr:match("[%w_.]+.*") or abbr - abbr = #abbr > 15 and abbr:sub(1, 14) .. "…" or abbr + -- Only show abbr name, remove leading misc chars (bullets etc.), + -- and cap field to 15 chars + local abbr = item.label + abbr = abbr:gsub("%b()", ""):gsub("%b{}", "") + abbr = abbr:match("[%w_.]+.*") or abbr + abbr = #abbr > 15 and abbr:sub(1, 14) .. "…" or abbr - -- Cap return value field to 15 chars - local menu = item.detail or "" - menu = #menu > 15 and menu:sub(1, 14) .. "…" or menu + -- Cap return value field to 15 chars + local menu = item.detail or "" + menu = #menu > 15 and menu:sub(1, 14) .. "…" or menu - return { abbr = abbr, menu = menu } - end, - }) - end, + return { abbr = abbr, menu = menu } + end, + }) + end, }) - - - - -- tinty function local default_theme = "base16-oceanicnext" local function get_tinty_theme() - local theme_name = vim.fn.system("cat ~/.local/share/tinted-theming/tinty/current_scheme") + local theme_name = vim.fn.system("cat /home/lucy/.local/share/tinted-theming/tinty/current_scheme") - if vim.v.shell_error ~= 0 then - return default_theme - else - return vim.trim(theme_name) - end + if vim.v.shell_error ~= 0 then + return default_theme + else + return vim.trim(theme_name) + end end local function handle_focus_gained() - local new_theme_name = get_tinty_theme() - local current_theme_name = vim.g.colors_name + local new_theme_name = get_tinty_theme() + local current_theme_name = vim.g.colors_name - if current_theme_name ~= new_theme_name then - vim.cmd("colorscheme " .. new_theme_name) - require("lualine").setup() - end - require("lualine").setup() + if current_theme_name ~= new_theme_name then + vim.cmd("colorscheme " .. new_theme_name) + require("lualine").setup() + end + require("lualine").setup() end local function main() - vim.o.termguicolors = true - vim.g.tinted_colorspace = 256 - local current_theme_name = get_tinty_theme() + vim.o.termguicolors = true + vim.g.tinted_colorspace = 256 + local current_theme_name = get_tinty_theme() - vim.cmd("colorscheme " .. current_theme_name) + vim.cmd("colorscheme " .. current_theme_name) - vim.api.nvim_create_autocmd("FocusGained", { - callback = handle_focus_gained, - }) + vim.api.nvim_create_autocmd("FocusGained", { + callback = handle_focus_gained, + }) end main() diff --git a/nvim-pack-lock.json b/nvim-pack-lock.json index c2b10e0..e77dc2f 100644 --- a/nvim-pack-lock.json +++ b/nvim-pack-lock.json @@ -8,6 +8,10 @@ "rev": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3", "src": "https://github.com/akinsho/bufferline.nvim" }, + "cord.nvim": { + "rev": "283e4a5bdafd0d6187f28e5b739cccab6b4c9c64", + "src": "https://github.com/vyfor/cord.nvim" + }, "lspsaga.nvim": { "rev": "562d9724e3869ffd1801c572dd149cc9f8d0cc36", "src": "https://github.com/nvimdev/lspsaga.nvim" @@ -16,6 +20,14 @@ "rev": "47f91c416daef12db467145e16bed5bbfe00add8", "src": "https://github.com/nvim-lualine/lualine.nvim" }, + "mason-lspconfig.nvim": { + "rev": "25f609e7fca78af7cede4f9fa3af8a94b1c4950b", + "src": "https://github.com/mason-org/mason-lspconfig.nvim.git" + }, + "mason.nvim": { + "rev": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65", + "src": "https://github.com/mason-org/mason.nvim.git" + }, "nvim-lspconfig": { "rev": "8e2084bf5e40c79c1f42210a6ef96a0a4793a763", "src": "https://github.com/neovim/nvim-lspconfig" @@ -24,9 +36,17 @@ "rev": "c82bf96f0a773d85304feeb695e1e23b2207ac35", "src": "https://github.com/nvim-treesitter/nvim-treesitter" }, + "nvim-web-devicons": { + "rev": "40e9d5a6cc3db11b309e39593fc7ac03bb844e38", + "src": "https://github.com/nvim-tree/nvim-web-devicons" + }, "snacks.nvim": { "rev": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e", "src": "https://github.com/folke/snacks.nvim" + }, + "tinted-vim": { + "rev": "19b03f63f58ffc63aa8e26159a370d6514735581", + "src": "https://github.com/tinted-theming/tinted-vim" } } } From 500367ddf31232cabd74dcf4008bd89ab37524d9 Mon Sep 17 00:00:00 2001 From: lucy Date: Fri, 3 Apr 2026 17:08:41 +0200 Subject: [PATCH 05/15] remove nvim-dev-webicons and disable bufferline icons --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index f42de96..6cf3f77 100644 --- a/init.lua +++ b/init.lua @@ -33,7 +33,6 @@ vim.pack.add({ "https://github.com/vyfor/cord.nvim", "https://github.com/mason-org/mason-lspconfig.nvim.git", "https://github.com/mason-org/mason.nvim.git", - "https://github.com/nvim-tree/nvim-web-devicons", }) vim.lsp.config("qmlls", { @@ -46,6 +45,7 @@ require("bufferline").setup({ themable = true, numbers = "ordinal", indicator = { + icon = '', style = "underline", }, }, From 491bd8660d9aef6c32a11247b1a1a82e17163379 Mon Sep 17 00:00:00 2001 From: lucy Date: Sat, 4 Apr 2026 11:35:19 +0200 Subject: [PATCH 06/15] disable fuck ass swapfiles --- init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/init.lua b/init.lua index 6cf3f77..f93452c 100644 --- a/init.lua +++ b/init.lua @@ -13,6 +13,7 @@ vim.lsp.inlay_hint.enable = true opt.tabstop = 8 vim.opt.expandtab = true vim.g.tinted_background_transparent = 0 +opt.swapfile = false opt.shiftwidth = 8 vim.diagnostic.config({ From 1b851a35d89a0db335984b2ab42c080167eefc2c Mon Sep 17 00:00:00 2001 From: lucy Date: Tue, 7 Apr 2026 19:26:43 +0200 Subject: [PATCH 07/15] scratch native completion and go with blink.cmp --- init.lua | 68 +++++++++++---------------------------------- nvim-pack-lock.json | 5 ++++ 2 files changed, 21 insertions(+), 52 deletions(-) diff --git a/init.lua b/init.lua index f93452c..c925644 100644 --- a/init.lua +++ b/init.lua @@ -26,7 +26,7 @@ vim.diagnostic.config({ vim.pack.add({ "https://github.com/folke/snacks.nvim", "https://github.com/nvim-lualine/lualine.nvim", - "https://github.com/RRethy/base16-nvim", + "https://github.com/RRethy/base16-nvim", "https://github.com/akinsho/bufferline.nvim", "https://github.com/nvimdev/lspsaga.nvim", "https://github.com/neovim/nvim-lspconfig", @@ -34,19 +34,31 @@ vim.pack.add({ "https://github.com/vyfor/cord.nvim", "https://github.com/mason-org/mason-lspconfig.nvim.git", "https://github.com/mason-org/mason.nvim.git", + { src = "https://github.com/Saghen/blink.cmp", version = "v1" }, }) vim.lsp.config("qmlls", { cmd = { "qmlls6" }, }) +require("blink.cmp").setup({ + fuzzy = { implementation = "prefer_rust_with_warning" }, + completion = { + menu = { + auto_show = false, + }, + }, + sources = { + default = { "lsp", "path", "snippets", "buffer" }, + }, +}) require("mason").setup() require("mason-lspconfig").setup() require("bufferline").setup({ options = { - themable = true, + themable = true, numbers = "ordinal", indicator = { - icon = '', + icon = "", style = "underline", }, }, @@ -89,6 +101,7 @@ require("lualine").setup({ lualine_z = { "location" }, }, }) + -- keymaps local map = vim.keymap.set @@ -133,55 +146,6 @@ map("n", "t", " terminal ") map("n", "", "Lspsaga term_toggle") map("t", "", "") map("i", "", vim.lsp.completion.get, { desc = "trigger autocompletion" }) --- lsp setup -vim.lsp.config("*", { - on_attach = function(client, bufnr) - vim.lsp.completion.enable(true, client.id, bufnr, { - autotrigger = true, - convert = function(item) - return { abbr = item.label:gsub("%b()", "") } - end, - }) - vim.keymap.set("i", "", vim.lsp.completion.get, { desc = "trigger autocompletion" }) - end, -}) - -vim.o.complete = ".,o" -- use buffer and omnifunc -vim.o.completeopt = "fuzzy,menuone,noselect" -- add 'popup' for docs (sometimes) -vim.o.autocomplete = true -vim.o.pumheight = 7 - --- setup autocomplete -vim.api.nvim_create_autocmd("LspAttach", { - callback = function(ev) - vim.lsp.completion.enable(true, ev.data.client_id, ev.buf, { - -- Optional formating of items - convert = function(item) - -- Remove leading misc chars for abbr name, - -- and cap field to 25 chars - --local abbr = item.label - --abbr = abbr:match("[%w_.]+.*") or abbr - --abbr = #abbr > 25 and abbr:sub(1, 24) .. "…" or abbr - -- - -- Remove return value - --local menu = "" - - -- Only show abbr name, remove leading misc chars (bullets etc.), - -- and cap field to 15 chars - local abbr = item.label - abbr = abbr:gsub("%b()", ""):gsub("%b{}", "") - abbr = abbr:match("[%w_.]+.*") or abbr - abbr = #abbr > 15 and abbr:sub(1, 14) .. "…" or abbr - - -- Cap return value field to 15 chars - local menu = item.detail or "" - menu = #menu > 15 and menu:sub(1, 14) .. "…" or menu - - return { abbr = abbr, menu = menu } - end, - }) - end, -}) -- tinty function local default_theme = "base16-oceanicnext" diff --git a/nvim-pack-lock.json b/nvim-pack-lock.json index e77dc2f..fd15508 100644 --- a/nvim-pack-lock.json +++ b/nvim-pack-lock.json @@ -4,6 +4,11 @@ "rev": "190397833e53fdfd5cf400c5baaf1a4e533158e5", "src": "https://github.com/RRethy/base16-nvim" }, + "blink.cmp": { + "rev": "78336bc89ee5365633bcf754d93df01678b5c08f", + "src": "https://github.com/Saghen/blink.cmp", + "version": "'v1'" + }, "bufferline.nvim": { "rev": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3", "src": "https://github.com/akinsho/bufferline.nvim" From c6a756fea70352f8472b94efdc4c4624aa0b4bfb Mon Sep 17 00:00:00 2001 From: lucy Date: Thu, 9 Apr 2026 16:45:21 +0200 Subject: [PATCH 08/15] add dashboard --- init.lua | 128 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 116 insertions(+), 12 deletions(-) diff --git a/init.lua b/init.lua index c925644..0dd41ed 100644 --- a/init.lua +++ b/init.lua @@ -14,6 +14,7 @@ opt.tabstop = 8 vim.opt.expandtab = true vim.g.tinted_background_transparent = 0 opt.swapfile = false +opt.winborder = "single" opt.shiftwidth = 8 vim.diagnostic.config({ @@ -36,7 +37,19 @@ vim.pack.add({ "https://github.com/mason-org/mason.nvim.git", { src = "https://github.com/Saghen/blink.cmp", version = "v1" }, }) +-- function to set colorsceme +local default_theme = "base16-oceanicnext" +local function get_tinty_theme() + local theme_name = vim.fn.system("cat /home/lucy/.local/share/tinted-theming/tinty/current_scheme") + if vim.v.shell_error ~= 0 then + return default_theme + else + return vim.trim(theme_name) + end +end +vim.cmd("colorscheme " .. get_tinty_theme()) +-- set up qmlls to point to the right binary vim.lsp.config("qmlls", { cmd = { "qmlls6" }, }) @@ -63,11 +76,113 @@ require("bufferline").setup({ }, }, }) -require("lualine").setup() require("snacks").setup({ notifier = { enabled = true }, statuscolumn = { enabled = true }, picker = {}, + styles = { + dashboard = { + wo = { + statusline = "%!v:lua.require'lualine'.statusline()", -- Use lualine + }, + }, + }, + dashboard = { + enabled = true, + width = 60, + row = nil, -- dashboard position. nil for center + col = nil, -- dashboard position. nil for center + pane_gap = 4, -- empty columns between vertical panes + autokeys = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", -- autokey sequence + -- These settings are used by some built-in sections + preset = { + -- Defaults to a picker that supports `fzf-lua`, `telescope.nvim` and `mini.pick` + ---@type fun(cmd:string, opts:table)|nil + pick = nil, + -- Used by the `keys` section to show keymaps. + -- Set your custom keymaps here. + -- When using a function, the `items` argument are the default keymaps. + ---@type snacks.dashboard.Item[] + keys = { + { + icon = " ", + key = "f", + desc = "Find File", + action = ":lua Snacks.dashboard.pick('files')", + }, + { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" }, + { + icon = " ", + key = "g", + desc = "Find Text", + action = ":lua Snacks.dashboard.pick('live_grep')", + }, + { + icon = " ", + key = "r", + desc = "Recent Files", + action = ":lua Snacks.dashboard.pick('oldfiles')", + }, + { + icon = " ", + key = "c", + desc = "Config", + action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})", + }, + { icon = " ", key = "s", desc = "Restore Session", section = "session" }, + { + icon = "󰒲 ", + key = "L", + desc = "Lazy", + action = ":Lazy", + enabled = package.loaded.lazy ~= nil, + }, + { icon = " ", key = "q", desc = "Quit", action = ":qa" }, + }, + -- Used by the `header` section + header = [[ + ⠀⠀⠀⠀⠀⠀⣠⡤⠶⠒⠛⠉⠙⠛⠒⠶⢤⣀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠋⠁⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠈⠙⢦⡀⠀⠀⠀ +⠀⠀⠀⠀⣀⣠⠤⠤⡴⠻⢓⣶⠦⠤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀ +⣀⡠⠴⠊⠁⠀⠀⠀⠀⠀⠒⠽⠀⠀⠀⠉⢙⠒⢢⡄⠀⠀⠀⠀⠀⠀⠀⠈⢷⡀ +⠘⢆⠉⠑⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢆⠁⣠⠎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣇ +⠀⠈⠓⠦⠁⢀⣀⠀⠀⠀⠀⠀⠀⣀⣀⢸⡊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻ +⠀⠀⠀⡸⠀⠉⠀⠙⠆⠀⠀⠀⠏⠀⠈⠀⢇⠀⠀⠀⠀⠀⠀⠀⢀⠔⠀⠀⠀⣼ +⠀⠀⠀⠹⣄⠀⠠⣤⡡⠪⡭⠃⡤⢤⡄⡰⠋⠀⠀⠀⣀⡠⠴⠊⠁⠀⠀⠀⢠⠇ +⠀⠀⢠⢿⣠⠟⠓⠛⠉⠛⡟⠛⠛⠛⠛⠒⠒⠚⠉⠉⠁⠀⠀⠀⠀⠀⢀⡴⠋⠀ +⠀⠀⠈⠛⢯⣀⣀⣀⡤⠤⠤⠤⢤⣤⣀⣀⣀⣀⣀⣀⣀⣤⠤⠴⠒⠋⠁⠀⠀⠀ +]], + }, + -- item field formatters + formats = { + icon = function(item) + if item.file and item.icon == "file" or item.icon == "directory" then + return Snacks.dashboard.icon(item.file, item.icon) + end + return { item.icon, width = 2, hl = "icon" } + end, + footer = { "%s", align = "center" }, + header = { "%s", align = "center" }, + file = function(item, ctx) + local fname = vim.fn.fnamemodify(item.file, ":~") + fname = ctx.width and #fname > ctx.width and vim.fn.pathshorten(fname) or fname + if #fname > ctx.width then + local dir = vim.fn.fnamemodify(fname, ":h") + local file = vim.fn.fnamemodify(fname, ":t") + if dir and file then + file = file:sub(-(ctx.width - #dir - 2)) + fname = dir .. "/…" .. file + end + end + local dir, file = fname:match("^(.*)/(.+)$") + return dir and { { dir .. "/", hl = "dir" }, { file, hl = "file" } } or { { fname, hl = "file" } } + end, + }, + sections = { + { section = "header" }, + { section = "keys", gap = 1, padding = 1 }, + }, + }, }) require("lspsaga").setup({ symbol_in_winbar = { enable = true }, @@ -148,17 +263,6 @@ map("t", "", "") map("i", "", vim.lsp.completion.get, { desc = "trigger autocompletion" }) -- tinty function -local default_theme = "base16-oceanicnext" - -local function get_tinty_theme() - local theme_name = vim.fn.system("cat /home/lucy/.local/share/tinted-theming/tinty/current_scheme") - - if vim.v.shell_error ~= 0 then - return default_theme - else - return vim.trim(theme_name) - end -end local function handle_focus_gained() local new_theme_name = get_tinty_theme() From 5f24a28eb914eba786a809bda706b2f321b9235b Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 13 Apr 2026 10:21:58 +0200 Subject: [PATCH 09/15] change lualine config --- init.lua | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/init.lua b/init.lua index 0dd41ed..9499097 100644 --- a/init.lua +++ b/init.lua @@ -12,7 +12,7 @@ opt.signcolumn = "yes" vim.lsp.inlay_hint.enable = true opt.tabstop = 8 vim.opt.expandtab = true -vim.g.tinted_background_transparent = 0 +vim.g.tinted_background_transparent = 1 opt.swapfile = false opt.winborder = "single" @@ -27,7 +27,7 @@ vim.diagnostic.config({ vim.pack.add({ "https://github.com/folke/snacks.nvim", "https://github.com/nvim-lualine/lualine.nvim", - "https://github.com/RRethy/base16-nvim", + "https://github.com/tinted-theming/tinted-vim", "https://github.com/akinsho/bufferline.nvim", "https://github.com/nvimdev/lspsaga.nvim", "https://github.com/neovim/nvim-lspconfig", @@ -80,13 +80,6 @@ require("snacks").setup({ notifier = { enabled = true }, statuscolumn = { enabled = true }, picker = {}, - styles = { - dashboard = { - wo = { - statusline = "%!v:lua.require'lualine'.statusline()", -- Use lualine - }, - }, - }, dashboard = { enabled = true, width = 60, @@ -204,15 +197,15 @@ require("cord").setup({ }) require("lualine").setup({ options = { - component_separators = { left = "", right = "" }, - section_separators = { left = "", right = "" }, + section_separators = { left = "", right = "" }, + component_separators = { left = "|", right = "|" }, }, sections = { lualine_a = { "mode" }, lualine_b = { "diagnostics" }, lualine_c = { "filename", "branch", "navic" }, - lualine_x = { "lsp_status", "filetype" }, - lualine_y = { "progress" }, + lualine_x = { "lsp_status", "filetype", "filesize" }, + lualine_y = { "" }, lualine_z = { "location" }, }, }) From bda58fea24ae4ee887d206f8f67e7bebe2986e47 Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 13 Apr 2026 10:45:05 +0200 Subject: [PATCH 10/15] replace bufferline with lualine --- init.lua | 367 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 184 insertions(+), 183 deletions(-) diff --git a/init.lua b/init.lua index 9499097..4894add 100644 --- a/init.lua +++ b/init.lua @@ -18,122 +18,111 @@ opt.winborder = "single" opt.shiftwidth = 8 vim.diagnostic.config({ - virtual_text = { - spacing = 4, - source = true, - }, + virtual_text = { + spacing = 4, + source = true, + }, }) -- add plugins vim.pack.add({ - "https://github.com/folke/snacks.nvim", - "https://github.com/nvim-lualine/lualine.nvim", - "https://github.com/tinted-theming/tinted-vim", - "https://github.com/akinsho/bufferline.nvim", - "https://github.com/nvimdev/lspsaga.nvim", - "https://github.com/neovim/nvim-lspconfig", - "https://github.com/nvim-treesitter/nvim-treesitter", - "https://github.com/vyfor/cord.nvim", - "https://github.com/mason-org/mason-lspconfig.nvim.git", - "https://github.com/mason-org/mason.nvim.git", - { src = "https://github.com/Saghen/blink.cmp", version = "v1" }, + "https://github.com/folke/snacks.nvim", + "https://github.com/nvim-lualine/lualine.nvim", + "https://github.com/tinted-theming/tinted-vim", + "https://github.com/nvimdev/lspsaga.nvim", + "https://github.com/neovim/nvim-lspconfig", + "https://github.com/nvim-treesitter/nvim-treesitter", + "https://github.com/vyfor/cord.nvim", + "https://github.com/mason-org/mason-lspconfig.nvim.git", + "https://github.com/mason-org/mason.nvim.git", + { src = "https://github.com/Saghen/blink.cmp", version = "v1" }, }) -- function to set colorsceme local default_theme = "base16-oceanicnext" local function get_tinty_theme() - local theme_name = vim.fn.system("cat /home/lucy/.local/share/tinted-theming/tinty/current_scheme") + local theme_name = vim.fn.system("cat /home/lucy/.local/share/tinted-theming/tinty/current_scheme") - if vim.v.shell_error ~= 0 then - return default_theme - else - return vim.trim(theme_name) - end + if vim.v.shell_error ~= 0 then + return default_theme + else + return vim.trim(theme_name) + end end vim.cmd("colorscheme " .. get_tinty_theme()) -- set up qmlls to point to the right binary vim.lsp.config("qmlls", { - cmd = { "qmlls6" }, + cmd = { "qmlls6" }, }) require("blink.cmp").setup({ - fuzzy = { implementation = "prefer_rust_with_warning" }, - completion = { - menu = { - auto_show = false, - }, - }, - sources = { - default = { "lsp", "path", "snippets", "buffer" }, - }, + fuzzy = { implementation = "prefer_rust_with_warning" }, + completion = { + menu = { + auto_show = false, + }, + }, + sources = { + default = { "lsp", "path", "snippets", "buffer" }, + }, }) require("mason").setup() require("mason-lspconfig").setup() -require("bufferline").setup({ - options = { - themable = true, - numbers = "ordinal", - indicator = { - icon = "", - style = "underline", - }, - }, -}) require("snacks").setup({ - notifier = { enabled = true }, - statuscolumn = { enabled = true }, - picker = {}, - dashboard = { - enabled = true, - width = 60, - row = nil, -- dashboard position. nil for center - col = nil, -- dashboard position. nil for center - pane_gap = 4, -- empty columns between vertical panes - autokeys = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", -- autokey sequence - -- These settings are used by some built-in sections - preset = { - -- Defaults to a picker that supports `fzf-lua`, `telescope.nvim` and `mini.pick` - ---@type fun(cmd:string, opts:table)|nil - pick = nil, - -- Used by the `keys` section to show keymaps. - -- Set your custom keymaps here. - -- When using a function, the `items` argument are the default keymaps. - ---@type snacks.dashboard.Item[] - keys = { - { - icon = " ", - key = "f", - desc = "Find File", - action = ":lua Snacks.dashboard.pick('files')", - }, - { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" }, - { - icon = " ", - key = "g", - desc = "Find Text", - action = ":lua Snacks.dashboard.pick('live_grep')", - }, - { - icon = " ", - key = "r", - desc = "Recent Files", - action = ":lua Snacks.dashboard.pick('oldfiles')", - }, - { - icon = " ", - key = "c", - desc = "Config", - action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})", - }, - { icon = " ", key = "s", desc = "Restore Session", section = "session" }, - { - icon = "󰒲 ", - key = "L", - desc = "Lazy", - action = ":Lazy", - enabled = package.loaded.lazy ~= nil, - }, - { icon = " ", key = "q", desc = "Quit", action = ":qa" }, - }, - -- Used by the `header` section - header = [[ + notifier = { enabled = true }, + statuscolumn = { enabled = true }, + picker = {}, + dashboard = { + enabled = true, + width = 60, + row = nil, -- dashboard position. nil for center + col = nil, -- dashboard position. nil for center + pane_gap = 4, -- empty columns between vertical panes + autokeys = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", -- autokey sequence + -- These settings are used by some built-in sections + preset = { + -- Defaults to a picker that supports `fzf-lua`, `telescope.nvim` and `mini.pick` + ---@type fun(cmd:string, opts:table)|nil + pick = nil, + -- Used by the `keys` section to show keymaps. + -- Set your custom keymaps here. + -- When using a function, the `items` argument are the default keymaps. + ---@type snacks.dashboard.Item[] + keys = { + { + icon = " ", + key = "f", + desc = "Find File", + action = ":lua Snacks.dashboard.pick('files')", + }, + { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" }, + { + icon = " ", + key = "g", + desc = "Find Text", + action = ":lua Snacks.dashboard.pick('live_grep')", + }, + { + icon = " ", + key = "r", + desc = "Recent Files", + action = ":lua Snacks.dashboard.pick('oldfiles')", + }, + { + icon = " ", + key = "c", + desc = "Config", + action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})", + }, + { icon = " ", key = "s", desc = "Restore Session", section = "session" }, + { + icon = "󰒲 ", + key = "L", + desc = "Lazy", + action = ":Lazy", + enabled = package.loaded.lazy ~= nil, + }, + { icon = " ", key = "q", desc = "Quit", action = ":qa" }, + }, + -- Used by the `header` section + header = [[ ⠀⠀⠀⠀⠀⠀⣠⡤⠶⠒⠛⠉⠙⠛⠒⠶⢤⣀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠋⠁⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠈⠙⢦⡀⠀⠀⠀ ⠀⠀⠀⠀⣀⣠⠤⠤⡴⠻⢓⣶⠦⠤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀ @@ -145,79 +134,91 @@ require("snacks").setup({ ⠀⠀⢠⢿⣠⠟⠓⠛⠉⠛⡟⠛⠛⠛⠛⠒⠒⠚⠉⠉⠁⠀⠀⠀⠀⠀⢀⡴⠋⠀ ⠀⠀⠈⠛⢯⣀⣀⣀⡤⠤⠤⠤⢤⣤⣀⣀⣀⣀⣀⣀⣀⣤⠤⠴⠒⠋⠁⠀⠀⠀ ]], - }, - -- item field formatters - formats = { - icon = function(item) - if item.file and item.icon == "file" or item.icon == "directory" then - return Snacks.dashboard.icon(item.file, item.icon) - end - return { item.icon, width = 2, hl = "icon" } - end, - footer = { "%s", align = "center" }, - header = { "%s", align = "center" }, - file = function(item, ctx) - local fname = vim.fn.fnamemodify(item.file, ":~") - fname = ctx.width and #fname > ctx.width and vim.fn.pathshorten(fname) or fname - if #fname > ctx.width then - local dir = vim.fn.fnamemodify(fname, ":h") - local file = vim.fn.fnamemodify(fname, ":t") - if dir and file then - file = file:sub(-(ctx.width - #dir - 2)) - fname = dir .. "/…" .. file - end - end - local dir, file = fname:match("^(.*)/(.+)$") - return dir and { { dir .. "/", hl = "dir" }, { file, hl = "file" } } or { { fname, hl = "file" } } - end, - }, - sections = { - { section = "header" }, - { section = "keys", gap = 1, padding = 1 }, - }, - }, + }, + -- item field formatters + formats = { + icon = function(item) + if item.file and item.icon == "file" or item.icon == "directory" then + return Snacks.dashboard.icon(item.file, item.icon) + end + return { item.icon, width = 2, hl = "icon" } + end, + footer = { "%s", align = "center" }, + header = { "%s", align = "center" }, + file = function(item, ctx) + local fname = vim.fn.fnamemodify(item.file, ":~") + fname = ctx.width and #fname > ctx.width and vim.fn.pathshorten(fname) or fname + if #fname > ctx.width then + local dir = vim.fn.fnamemodify(fname, ":h") + local file = vim.fn.fnamemodify(fname, ":t") + if dir and file then + file = file:sub(-(ctx.width - #dir - 2)) + fname = dir .. "/…" .. file + end + end + local dir, file = fname:match("^(.*)/(.+)$") + return dir and { { dir .. "/", hl = "dir" }, { file, hl = "file" } } or + { { fname, hl = "file" } } + end, + }, + sections = { + { section = "header" }, + { section = "keys", gap = 1, padding = 1 }, + }, + }, }) require("lspsaga").setup({ - symbol_in_winbar = { enable = true }, - lightbulb = { - enable = true, - sign = false, - }, - hover = { - max_width = 0.6, - open_link = "gx", - open_browser = "!google-chrome", - }, + symbol_in_winbar = { enable = true }, + lightbulb = { + enable = true, + sign = false, + }, + hover = { + max_width = 0.6, + open_link = "gx", + open_browser = "!google-chrome", + }, }) require("cord").setup({ - display = { - theme = "atom", - }, - editor = { tooltip = "ur gay x3" }, + display = { + theme = "atom", + }, + editor = { tooltip = "ur gay x3" }, }) require("lualine").setup({ - options = { - section_separators = { left = "", right = "" }, - component_separators = { left = "|", right = "|" }, - }, - sections = { - lualine_a = { "mode" }, - lualine_b = { "diagnostics" }, - lualine_c = { "filename", "branch", "navic" }, - lualine_x = { "lsp_status", "filetype", "filesize" }, - lualine_y = { "" }, - lualine_z = { "location" }, - }, + options = { + section_separators = { left = "", right = "" }, + component_separators = { left = "|", right = "|" }, + globalstatus = true, + always_divide_middle = true, + }, + sections = { + lualine_a = { "mode" }, + lualine_b = { "diagnostics" }, + lualine_c = { "filename", "filesize", }, + lualine_x = { "lsp_status", "filetype" }, + lualine_y = { "" }, + lualine_z = { "location" }, + }, + tabline = { + lualine_a = { { 'buffers', mode = 2, show_modified_status = true, } }, + lualine_b = { 'branch' }, + lualine_c = {}, + lualine_x = {}, + lualine_y = {}, + lualine_z = { 'tabs' } + } }) + -- keymaps local map = vim.keymap.set map("n", "ff", function() - Snacks.picker.files() + Snacks.picker.files() end) map("n", "lg", function() - Snacks.picker.grep() + Snacks.picker.grep() end) map("n", "", "h") @@ -234,19 +235,19 @@ map("n", "go", " Lspsaga goto_definition") map("n", "gr", " Lspsaga finder") map("n", "qf", " Lspsaga code_action") map("n", "", function() - vim.lsp.buf.format() + vim.lsp.buf.format() end) --- bufferline keybinds -map("n", "", " BufferLineGoToBuffer 1 ") -map("n", "", " BufferLineGoToBuffer 2 ") -map("n", "", " BufferLineGoToBuffer 3 ") -map("n", "", " BufferLineGoToBuffer 4 ") -map("n", "", " BufferLineGoToBuffer 5 ") -map("n", "", " BufferLineGoToBuffer 6 ") -map("n", "", " BufferLineGoToBuffer 7 ") -map("n", "", " BufferLineGoToBuffer 8 ") -map("n", "", " BufferLineGoToBuffer 9 ") -map("n", "", " BufferLineGoToBuffer last ") +-- buffer keybinds +map("n", "", " LualineBuffersJump! 1 ") +map("n", "", " LualineBuffersJump! 2 ") +map("n", "", " LualineBuffersJump! 3 ") +map("n", "", " LualineBuffersJump! 4 ") +map("n", "", " LualineBuffersJump! 5 ") +map("n", "", " LualineBuffersJump! 6 ") +map("n", "", " LualineBuffersJump! 7 ") +map("n", "", " LualineBuffersJump! 8 ") +map("n", "", " LualineBuffersJump! 9 ") +map("n", "", " LualineBuffersJump! last ") map("n", "w", " bdelete! ") -- util keybinds @@ -258,26 +259,26 @@ map("i", "", vim.lsp.completion.get, { desc = "trigger autocompletion" -- tinty function local function handle_focus_gained() - local new_theme_name = get_tinty_theme() - local current_theme_name = vim.g.colors_name + local new_theme_name = get_tinty_theme() + local current_theme_name = vim.g.colors_name - if current_theme_name ~= new_theme_name then - vim.cmd("colorscheme " .. new_theme_name) - require("lualine").setup() - end - require("lualine").setup() + if current_theme_name ~= new_theme_name then + vim.cmd("colorscheme " .. new_theme_name) + require("lualine").setup() + end + require("lualine").setup() end local function main() - vim.o.termguicolors = true - vim.g.tinted_colorspace = 256 - local current_theme_name = get_tinty_theme() + vim.o.termguicolors = true + vim.g.tinted_colorspace = 256 + local current_theme_name = get_tinty_theme() - vim.cmd("colorscheme " .. current_theme_name) + vim.cmd("colorscheme " .. current_theme_name) - vim.api.nvim_create_autocmd("FocusGained", { - callback = handle_focus_gained, - }) + vim.api.nvim_create_autocmd("FocusGained", { + callback = handle_focus_gained, + }) end main() From b7e41268e41b92da4620316765af8dddf04bb91e Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 13 Apr 2026 22:08:13 +0200 Subject: [PATCH 11/15] remove dashboard --- init.lua | 99 +------------------------------------------------------- 1 file changed, 1 insertion(+), 98 deletions(-) diff --git a/init.lua b/init.lua index 4894add..32d70b9 100644 --- a/init.lua +++ b/init.lua @@ -12,7 +12,7 @@ opt.signcolumn = "yes" vim.lsp.inlay_hint.enable = true opt.tabstop = 8 vim.opt.expandtab = true -vim.g.tinted_background_transparent = 1 +vim.g.tinted_background_transparent = 0 opt.swapfile = false opt.winborder = "single" @@ -69,103 +69,6 @@ require("snacks").setup({ notifier = { enabled = true }, statuscolumn = { enabled = true }, picker = {}, - dashboard = { - enabled = true, - width = 60, - row = nil, -- dashboard position. nil for center - col = nil, -- dashboard position. nil for center - pane_gap = 4, -- empty columns between vertical panes - autokeys = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", -- autokey sequence - -- These settings are used by some built-in sections - preset = { - -- Defaults to a picker that supports `fzf-lua`, `telescope.nvim` and `mini.pick` - ---@type fun(cmd:string, opts:table)|nil - pick = nil, - -- Used by the `keys` section to show keymaps. - -- Set your custom keymaps here. - -- When using a function, the `items` argument are the default keymaps. - ---@type snacks.dashboard.Item[] - keys = { - { - icon = " ", - key = "f", - desc = "Find File", - action = ":lua Snacks.dashboard.pick('files')", - }, - { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" }, - { - icon = " ", - key = "g", - desc = "Find Text", - action = ":lua Snacks.dashboard.pick('live_grep')", - }, - { - icon = " ", - key = "r", - desc = "Recent Files", - action = ":lua Snacks.dashboard.pick('oldfiles')", - }, - { - icon = " ", - key = "c", - desc = "Config", - action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})", - }, - { icon = " ", key = "s", desc = "Restore Session", section = "session" }, - { - icon = "󰒲 ", - key = "L", - desc = "Lazy", - action = ":Lazy", - enabled = package.loaded.lazy ~= nil, - }, - { icon = " ", key = "q", desc = "Quit", action = ":qa" }, - }, - -- Used by the `header` section - header = [[ - ⠀⠀⠀⠀⠀⠀⣠⡤⠶⠒⠛⠉⠙⠛⠒⠶⢤⣀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠋⠁⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠈⠙⢦⡀⠀⠀⠀ -⠀⠀⠀⠀⣀⣠⠤⠤⡴⠻⢓⣶⠦⠤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀ -⣀⡠⠴⠊⠁⠀⠀⠀⠀⠀⠒⠽⠀⠀⠀⠉⢙⠒⢢⡄⠀⠀⠀⠀⠀⠀⠀⠈⢷⡀ -⠘⢆⠉⠑⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢆⠁⣠⠎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣇ -⠀⠈⠓⠦⠁⢀⣀⠀⠀⠀⠀⠀⠀⣀⣀⢸⡊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻ -⠀⠀⠀⡸⠀⠉⠀⠙⠆⠀⠀⠀⠏⠀⠈⠀⢇⠀⠀⠀⠀⠀⠀⠀⢀⠔⠀⠀⠀⣼ -⠀⠀⠀⠹⣄⠀⠠⣤⡡⠪⡭⠃⡤⢤⡄⡰⠋⠀⠀⠀⣀⡠⠴⠊⠁⠀⠀⠀⢠⠇ -⠀⠀⢠⢿⣠⠟⠓⠛⠉⠛⡟⠛⠛⠛⠛⠒⠒⠚⠉⠉⠁⠀⠀⠀⠀⠀⢀⡴⠋⠀ -⠀⠀⠈⠛⢯⣀⣀⣀⡤⠤⠤⠤⢤⣤⣀⣀⣀⣀⣀⣀⣀⣤⠤⠴⠒⠋⠁⠀⠀⠀ -]], - }, - -- item field formatters - formats = { - icon = function(item) - if item.file and item.icon == "file" or item.icon == "directory" then - return Snacks.dashboard.icon(item.file, item.icon) - end - return { item.icon, width = 2, hl = "icon" } - end, - footer = { "%s", align = "center" }, - header = { "%s", align = "center" }, - file = function(item, ctx) - local fname = vim.fn.fnamemodify(item.file, ":~") - fname = ctx.width and #fname > ctx.width and vim.fn.pathshorten(fname) or fname - if #fname > ctx.width then - local dir = vim.fn.fnamemodify(fname, ":h") - local file = vim.fn.fnamemodify(fname, ":t") - if dir and file then - file = file:sub(-(ctx.width - #dir - 2)) - fname = dir .. "/…" .. file - end - end - local dir, file = fname:match("^(.*)/(.+)$") - return dir and { { dir .. "/", hl = "dir" }, { file, hl = "file" } } or - { { fname, hl = "file" } } - end, - }, - sections = { - { section = "header" }, - { section = "keys", gap = 1, padding = 1 }, - }, - }, }) require("lspsaga").setup({ symbol_in_winbar = { enable = true }, From ae096acfe92055a1c95552e3d1eacd0f1f245d29 Mon Sep 17 00:00:00 2001 From: lucy Date: Thu, 16 Apr 2026 10:25:20 +0200 Subject: [PATCH 12/15] replace fuck shit qmlls with new lsp --- init.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/init.lua b/init.lua index 32d70b9..23d0d93 100644 --- a/init.lua +++ b/init.lua @@ -49,9 +49,10 @@ local function get_tinty_theme() end vim.cmd("colorscheme " .. get_tinty_theme()) -- set up qmlls to point to the right binary -vim.lsp.config("qmlls", { - cmd = { "qmlls6" }, -}) +vim.lsp.config.qml = { + cmd = { "qml-language-server" }, +} +vim.lsp.enable("qml") require("blink.cmp").setup({ fuzzy = { implementation = "prefer_rust_with_warning" }, completion = { @@ -90,7 +91,7 @@ require("cord").setup({ }) require("lualine").setup({ options = { - section_separators = { left = "", right = "" }, + section_separators = { left = "", right = "" }, component_separators = { left = "|", right = "|" }, globalstatus = true, always_divide_middle = true, From 7c8a25e8251610ef677e97dcceab002004d9f432 Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 20 Apr 2026 19:15:58 +0200 Subject: [PATCH 13/15] meow --- init.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/init.lua b/init.lua index 23d0d93..f7be10a 100644 --- a/init.lua +++ b/init.lua @@ -50,8 +50,11 @@ end vim.cmd("colorscheme " .. get_tinty_theme()) -- set up qmlls to point to the right binary vim.lsp.config.qml = { + name = "qml-language-server", + filetypes = { "qml" }, cmd = { "qml-language-server" }, } + vim.lsp.enable("qml") require("blink.cmp").setup({ fuzzy = { implementation = "prefer_rust_with_warning" }, From 563475c7214c01f1f6583495784a607f7bae55a9 Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 25 May 2026 13:40:10 +0200 Subject: [PATCH 14/15] remove cursorline --- init.lua | 49 +++++++------------------------------------------ 1 file changed, 7 insertions(+), 42 deletions(-) diff --git a/init.lua b/init.lua index f7be10a..f5a9159 100644 --- a/init.lua +++ b/init.lua @@ -5,14 +5,14 @@ vim.g.maplocalleader = "\\" opt.number = true opt.relativenumber = true -opt.cursorline = true +opt.cursorline = false opt.termguicolors = true opt.winborder = "rounded" opt.signcolumn = "yes" vim.lsp.inlay_hint.enable = true opt.tabstop = 8 vim.opt.expandtab = true -vim.g.tinted_background_transparent = 0 +vim.g.tinted_background_transparent = 1 opt.swapfile = false opt.winborder = "single" @@ -37,25 +37,16 @@ vim.pack.add({ { src = "https://github.com/Saghen/blink.cmp", version = "v1" }, }) -- function to set colorsceme -local default_theme = "base16-oceanicnext" -local function get_tinty_theme() - local theme_name = vim.fn.system("cat /home/lucy/.local/share/tinted-theming/tinty/current_scheme") +vim.cmd("colorscheme " .. vim.fn.system("cat /home/lucy/.local/share/tinted-theming/tinty/current_scheme")) - if vim.v.shell_error ~= 0 then - return default_theme - else - return vim.trim(theme_name) - end -end -vim.cmd("colorscheme " .. get_tinty_theme()) -- set up qmlls to point to the right binary -vim.lsp.config.qml = { - name = "qml-language-server", +vim.lsp.config.qmlls = { + name = "qmlls", filetypes = { "qml" }, - cmd = { "qml-language-server" }, + cmd = { "qmlls6" }, } -vim.lsp.enable("qml") +vim.lsp.enable("qmlls") require("blink.cmp").setup({ fuzzy = { implementation = "prefer_rust_with_warning" }, completion = { @@ -163,29 +154,3 @@ map("n", "", "Lspsaga term_toggle") map("t", "", "") map("i", "", vim.lsp.completion.get, { desc = "trigger autocompletion" }) --- tinty function - -local function handle_focus_gained() - local new_theme_name = get_tinty_theme() - local current_theme_name = vim.g.colors_name - - if current_theme_name ~= new_theme_name then - vim.cmd("colorscheme " .. new_theme_name) - require("lualine").setup() - end - require("lualine").setup() -end - -local function main() - vim.o.termguicolors = true - vim.g.tinted_colorspace = 256 - local current_theme_name = get_tinty_theme() - - vim.cmd("colorscheme " .. current_theme_name) - - vim.api.nvim_create_autocmd("FocusGained", { - callback = handle_focus_gained, - }) -end - -main() From 482984f1f27835368768a13a2d60b91da4c4e85b Mon Sep 17 00:00:00 2001 From: lucy Date: Thu, 28 May 2026 20:32:46 +0200 Subject: [PATCH 15/15] swap qmlls for qml-lsp --- init.lua | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/init.lua b/init.lua index f5a9159..328dfe5 100644 --- a/init.lua +++ b/init.lua @@ -38,15 +38,14 @@ vim.pack.add({ }) -- function to set colorsceme vim.cmd("colorscheme " .. vim.fn.system("cat /home/lucy/.local/share/tinted-theming/tinty/current_scheme")) +-- setup superior (?) lsp +vim.lsp.config("qml-language-server", { + cmd = { "qml-language-server" }, + filetypes = { "qml" }, + root_markers = { { "qmldir", "shell.qml" }, ".git" }, +}) --- set up qmlls to point to the right binary -vim.lsp.config.qmlls = { - name = "qmlls", - filetypes = { "qml" }, - cmd = { "qmlls6" }, -} - -vim.lsp.enable("qmlls") +vim.lsp.enable("qml-language-server") require("blink.cmp").setup({ fuzzy = { implementation = "prefer_rust_with_warning" }, completion = {