diff --git a/eww_laptop/scripts/music_control2 b/eww_laptop/scripts/music_control2 index 42dca7f..41bee9f 100755 --- a/eww_laptop/scripts/music_control2 +++ b/eww_laptop/scripts/music_control2 @@ -1,3 +1,3 @@ #!/bin/bash -echo $(playerctl -p ncspot,%any metadata mpris:artUrl) +echo $(playerctl -p spofity_player,%any metadata mpris:artUrl) diff --git a/nvim/lua/config/autocmds.lua b/nvim/lua/config/autocmds.lua index 9093a0c..b8e9cc3 100644 --- a/nvim/lua/config/autocmds.lua +++ b/nvim/lua/config/autocmds.lua @@ -10,3 +10,45 @@ -- vim.cmd("set norelativenumber") -- end, -- }) + +-- nvim-tree is also there in modified buffers so this function filter it out +local modifiedBufs = function(bufs) + local t = 0 + for k, v in pairs(bufs) do + if v.name:match("NvimTree_") == nil then + t = t + 1 + end + end + return t +end + +vim.api.nvim_create_autocmd("BufEnter", { + nested = true, + callback = function() + if #vim.api.nvim_list_wins() == 1 and + vim.api.nvim_buf_get_name(0):match("NvimTree_") ~= nil and + modifiedBufs(vim.fn.getbufinfo({ bufmodified = 1 })) == 0 then + vim.cmd "quit" + end + end +}) + +local function open_nvim_tree(data) + + -- buffer is a directory + local directory = vim.fn.isdirectory(data.file) == 1 + + if not directory then + return + end + + -- change to the directory + if directory then + vim.cmd.cd(data.file) + end + + -- open the tree + require("nvim-tree.api").tree.open() +end + +vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree }) diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua index 6a8835e..5c1029b 100644 --- a/nvim/lua/config/keymaps.lua +++ b/nvim/lua/config/keymaps.lua @@ -36,7 +36,7 @@ map("n", "", ':lua require("dap").continue()', opts) map("n", "", ':lua require("dap").close() :lua require("dapui").toggle()', opts) -- file tree -map("n", "f", ":Neotree action=focus toggle=true", opts) +map("n", "f", ":NvimTreeToggle", opts) -- toggle terminal map("n", "", ":lua require('toggleterm').toggle(1)", opts) diff --git a/nvim/lua/plugins/cmp.lua b/nvim/lua/plugins/cmp.lua index 8f60f32..d21fe7a 100644 --- a/nvim/lua/plugins/cmp.lua +++ b/nvim/lua/plugins/cmp.lua @@ -29,8 +29,9 @@ return { dependencies = { "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-buffer", - "hrsh7th/cmp-path", + "FelipeLema/cmp-async-path", "saadparwaiz1/cmp_luasnip", + "Saecki/crates.nvim", { "roobert/tailwindcss-colorizer-cmp.nvim", config = true }, }, opts = function() @@ -113,10 +114,11 @@ return { }, }, sources = cmp.config.sources({ - { name = "nvim_lsp" }, - { name = "luasnip" }, - { name = "buffer" }, - { name = "path" }, + { name = "nvim_lsp", priority = 99 }, + { name = "luasnip", priority = 10, max_item_count = 3 }, + { name = "buffer", priority = 5, max_item_count = 2, keyword_length = 5 }, + { name = "async_path", priority = 0, max_item_count = 2, keyword_length = 3, trigger_characters = {} }, + { name = "crates" }, }), formatting = { preselect = cmp.PreselectMode.None, diff --git a/nvim/lua/plugins/disabled.lua b/nvim/lua/plugins/disabled.lua index 0e680b8..06ce54b 100644 --- a/nvim/lua/plugins/disabled.lua +++ b/nvim/lua/plugins/disabled.lua @@ -1,4 +1,5 @@ return { - -- { "L3MON4D3/LuaSnip", enabled = false }, - -- { "hrsh7th/nvim-cmp", enabled = false }, + { + { "nvim-neo-tree/neo-tree.nvim", enabled = false }, + }, } diff --git a/nvim/lua/plugins/lsp.lua b/nvim/lua/plugins/lsp.lua index 0369d90..31844d8 100644 --- a/nvim/lua/plugins/lsp.lua +++ b/nvim/lua/plugins/lsp.lua @@ -4,8 +4,8 @@ return { lazy = true, event = { "BufReadPre", "BufNewFile" }, dependencies = { - { "folke/neoconf.nvim", cmd = "Neoconf", config = true }, - { "folke/neodev.nvim", opts = { experimental = { pathStrict = true } } }, + { "folke/neoconf.nvim", cmd = "Neoconf", config = true }, + { "folke/neodev.nvim", opts = { experimental = { pathStrict = true } } }, "mason.nvim", "williamboman/mason-lspconfig.nvim", "lvimuser/lsp-inlayhints.nvim", @@ -82,10 +82,11 @@ return { }, }, }, - staticcheck = {}, texlab = {}, - gopls = {}, - sqls = {}, + gopls = { + staticcheck = true, + }, + sqlls = {}, taplo = {}, lemminx = {}, yamlls = {}, diff --git a/nvim/lua/plugins/nvimtree.lua b/nvim/lua/plugins/nvimtree.lua new file mode 100644 index 0000000..e1134bb --- /dev/null +++ b/nvim/lua/plugins/nvimtree.lua @@ -0,0 +1,102 @@ +return { + { + "nvim-tree/nvim-tree.lua", + lazy = true, + opts = { + on_attach = function(bufnr) + local api = require("nvim-tree.api") + local function opts(desc) + return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } + end + vim.keymap.set("n", "", api.tree.change_root_to_node, opts("CD")) + vim.keymap.set("n", "", api.node.open.replace_tree_buffer, opts("Open: In Place")) + vim.keymap.set("n", "", api.node.show_info_popup, opts("Info")) + vim.keymap.set("n", "", api.fs.rename_sub, opts("Rename: Omit Filename")) + vim.keymap.set("n", "", api.node.open.tab, opts("Open: New Tab")) + vim.keymap.set("n", "", api.node.open.vertical, opts("Open: Vertical Split")) + vim.keymap.set("n", "", api.node.open.horizontal, opts("Open: Horizontal Split")) + vim.keymap.set("n", "", api.node.navigate.parent_close, opts("Close Directory")) + vim.keymap.set("n", "", api.node.open.edit, opts("Open")) + vim.keymap.set("n", "", api.node.open.preview, opts("Open Preview")) + vim.keymap.set("n", ">", api.node.navigate.sibling.next, opts("Next Sibling")) + vim.keymap.set("n", "<", api.node.navigate.sibling.prev, opts("Previous Sibling")) + vim.keymap.set("n", ".", api.node.run.cmd, opts("Run Command")) + vim.keymap.set("n", "-", api.tree.change_root_to_parent, opts("Up")) + vim.keymap.set("n", "a", api.fs.create, opts("Create")) + vim.keymap.set("n", "bmv", api.marks.bulk.move, opts("Move Bookmarked")) + vim.keymap.set("n", "B", api.tree.toggle_no_buffer_filter, opts("Toggle No Buffer")) + vim.keymap.set("n", "c", api.fs.copy.node, opts("Copy")) + vim.keymap.set("n", "C", api.tree.toggle_git_clean_filter, opts("Toggle Git Clean")) + vim.keymap.set("n", "[c", api.node.navigate.git.prev, opts("Prev Git")) + vim.keymap.set("n", "]c", api.node.navigate.git.next, opts("Next Git")) + vim.keymap.set("n", "d", api.fs.remove, opts("Delete")) + vim.keymap.set("n", "D", api.fs.trash, opts("Trash")) + vim.keymap.set("n", "E", api.tree.expand_all, opts("Expand All")) + vim.keymap.set("n", "e", api.fs.rename_basename, opts("Rename: Basename")) + vim.keymap.set("n", "]e", api.node.navigate.diagnostics.next, opts("Next Diagnostic")) + vim.keymap.set("n", "[e", api.node.navigate.diagnostics.prev, opts("Prev Diagnostic")) + vim.keymap.set("n", "", api.live_filter.clear, opts("Clean Filter")) + vim.keymap.set("n", "F", api.live_filter.start, opts("Filter")) + vim.keymap.set("n", "g?", api.tree.toggle_help, opts("Help")) + vim.keymap.set("n", "gy", api.fs.copy.absolute_path, opts("Copy Absolute Path")) + vim.keymap.set("n", "H", api.tree.toggle_hidden_filter, opts("Toggle Dotfiles")) + vim.keymap.set("n", "I", api.tree.toggle_gitignore_filter, opts("Toggle Git Ignore")) + vim.keymap.set("n", "J", api.node.navigate.sibling.last, opts("Last Sibling")) + vim.keymap.set("n", "K", api.node.navigate.sibling.first, opts("First Sibling")) + vim.keymap.set("n", "m", api.marks.toggle, opts("Toggle Bookmark")) + vim.keymap.set("n", "o", api.node.open.edit, opts("Open")) + vim.keymap.set("n", "O", api.node.open.no_window_picker, opts("Open: No Window Picker")) + vim.keymap.set("n", "p", api.fs.paste, opts("Paste")) + vim.keymap.set("n", "P", api.node.navigate.parent, opts("Parent Directory")) + vim.keymap.set("n", "q", api.tree.close, opts("Close")) + vim.keymap.set("n", "r", api.fs.rename, opts("Rename")) + vim.keymap.set("n", "R", api.tree.reload, opts("Refresh")) + vim.keymap.set("n", "s", api.node.run.system, opts("Run System")) + vim.keymap.set("n", "S", api.tree.search_node, opts("Search")) + vim.keymap.set("n", "U", api.tree.toggle_custom_filter, opts("Toggle Hidden")) + vim.keymap.set("n", "W", api.tree.collapse_all, opts("Collapse")) + vim.keymap.set("n", "x", api.fs.cut, opts("Cut")) + vim.keymap.set("n", "y", api.fs.copy.filename, opts("Copy Name")) + vim.keymap.set("n", "Y", api.fs.copy.relative_path, opts("Copy Relative Path")) + vim.keymap.set("n", "<2-LeftMouse>", api.node.open.edit, opts("Open")) + vim.keymap.set("n", "<2-RightMouse>", api.tree.change_root_to_node, opts("CD")) + end, + respect_buf_cwd = true, + view = { + centralize_selection = false, + side = "right", + }, + renderer = { + group_empty = true, + special_files = { "cargo.toml", "makefile", "readme.md", "readme.md" }, + symlink_destination = true, + }, + hijack_directories = { + enable = true, + auto_open = true, + }, + update_focused_file = { + enable = true, + -- update_cwd = true, + update_root = false, + ignore_list = {}, + }, + system_open = { + cmd = "", + args = {}, + }, + actions = { + use_system_clipboard = true, + change_dir = { + enable = true, + global = false, + restrict_above_cwd = false, + }, + expand_all = { + max_folder_discovery = 300, + exclude = {}, + }, + }, + }, + }, +} diff --git a/nvim/lua/plugins/plugins.lua b/nvim/lua/plugins/plugins.lua index ec74cb0..09c190b 100644 --- a/nvim/lua/plugins/plugins.lua +++ b/nvim/lua/plugins/plugins.lua @@ -106,26 +106,9 @@ return { ) end, }, - { - "nvim-neo-tree/neo-tree.nvim", - opts = { - close_if_last_window = true, - filesystem = { - group_empty_dirs = true, - }, - window = { - mappings = { - ["f"] = "close_window", - ["l"] = "", - }, - position = "right", - scan_mode = "deep", - }, - }, - }, { "echasnovski/mini.ai", - enabled = false, + diabled = true, }, { "rcarriga/nvim-notify", @@ -133,13 +116,28 @@ return { top_down = false, }, }, - { - "elkowar/yuck.vim", - }, { "jbyuki/instant.nvim", config = function() vim.cmd("let g:instant_username = 'dashie'") end, }, + { + "nvim-treesitter/nvim-treesitter", + opts = { + textobjects = { + select = { + enable = true, + lookahead = true, + keymaps = { + -- You can use the capture groups defined in textobjects.scm + ["af"] = "@function.outer", + ["if"] = "@function.inner", + ["ac"] = "@class.outer", + ["ic"] = "@class.inner", + }, + }, + }, + }, + }, }