From ee0b50aa448034ffead149e86ee7f023b88eb01f Mon Sep 17 00:00:00 2001 From: Varris Date: Sun, 4 Jun 2023 02:19:26 +0200 Subject: [PATCH] update. Split neovim config into several files --- configuration.nix | 7 +- flake.nix | 4 +- overlay.nix | 0 pkgs/gruvbox-plus-icon-pack/default.nix | 0 user/configs/cava/default.nix | 0 user/configs/kvantum/default.nix | 0 user/configs/neovim/config/init.lua | 3 + .../neovim/config/lua/plugins/autopairs.lua | 1 + .../neovim/config/lua/plugins/bufferline.lua | 16 + .../configs/neovim/config/lua/plugins/cmp.lua | 122 ++++++++ .../neovim/config/lua/plugins/colorizer.lua | 1 + .../neovim/config/lua/plugins/colorscheme.lua | 6 + .../neovim/config/lua/plugins/comment.lua | 1 + .../neovim/config/lua/plugins/dressing.lua | 1 + .../neovim/config/lua/plugins/init.lua | 14 + .../neovim/config/lua/plugins/lspconfig.lua | 35 +++ .../neovim/config/lua/plugins/lualine.lua | 5 + .../neovim/config/lua/plugins/neo-tree.lua | 36 +++ .../neovim/config/lua/plugins/smartsplits.lua | 1 + .../neovim/config/lua/plugins/surround.lua | 1 + .../neovim/config/lua/plugins/telescope.lua | 13 + .../neovim/config/lua/plugins/treesitter.lua | 3 + .../neovim/config/lua/plugins/trouble.lua | 1 + .../neovim/config/lua/plugins/which-key.lua | 3 + user/configs/neovim/config/lua/remaps.lua | 12 + user/configs/neovim/config/lua/settings.lua | 24 ++ user/configs/neovim/default.nix | 12 +- user/configs/neovim/init.lua | 284 ------------------ user/configs/rofi/default.nix | 0 user/configs/rofi/theme.rasi | 0 user/configs/tmux/default.nix | 0 user/configs/wayland/hyprland/default.nix | 4 +- user/configs/wayland/waybar/style.css | 0 user/configs/xdg-mime.nix | 0 user/home.nix | 2 +- 35 files changed, 315 insertions(+), 297 deletions(-) mode change 100644 => 100755 overlay.nix mode change 100644 => 100755 pkgs/gruvbox-plus-icon-pack/default.nix mode change 100644 => 100755 user/configs/cava/default.nix mode change 100644 => 100755 user/configs/kvantum/default.nix create mode 100755 user/configs/neovim/config/init.lua create mode 100755 user/configs/neovim/config/lua/plugins/autopairs.lua create mode 100755 user/configs/neovim/config/lua/plugins/bufferline.lua create mode 100755 user/configs/neovim/config/lua/plugins/cmp.lua create mode 100755 user/configs/neovim/config/lua/plugins/colorizer.lua create mode 100755 user/configs/neovim/config/lua/plugins/colorscheme.lua create mode 100755 user/configs/neovim/config/lua/plugins/comment.lua create mode 100755 user/configs/neovim/config/lua/plugins/dressing.lua create mode 100755 user/configs/neovim/config/lua/plugins/init.lua create mode 100755 user/configs/neovim/config/lua/plugins/lspconfig.lua create mode 100755 user/configs/neovim/config/lua/plugins/lualine.lua create mode 100755 user/configs/neovim/config/lua/plugins/neo-tree.lua create mode 100755 user/configs/neovim/config/lua/plugins/smartsplits.lua create mode 100755 user/configs/neovim/config/lua/plugins/surround.lua create mode 100755 user/configs/neovim/config/lua/plugins/telescope.lua create mode 100755 user/configs/neovim/config/lua/plugins/treesitter.lua create mode 100755 user/configs/neovim/config/lua/plugins/trouble.lua create mode 100755 user/configs/neovim/config/lua/plugins/which-key.lua create mode 100755 user/configs/neovim/config/lua/remaps.lua create mode 100755 user/configs/neovim/config/lua/settings.lua mode change 100644 => 100755 user/configs/neovim/default.nix delete mode 100644 user/configs/neovim/init.lua mode change 100644 => 100755 user/configs/rofi/default.nix mode change 100644 => 100755 user/configs/rofi/theme.rasi mode change 100644 => 100755 user/configs/tmux/default.nix mode change 100644 => 100755 user/configs/wayland/hyprland/default.nix mode change 100644 => 100755 user/configs/wayland/waybar/style.css mode change 100644 => 100755 user/configs/xdg-mime.nix diff --git a/configuration.nix b/configuration.nix index b6852c9..7210f39 100755 --- a/configuration.nix +++ b/configuration.nix @@ -68,7 +68,7 @@ keyMap = "us-acentos"; }; - chaotic.mesa-git.enable = true; # requires --impure for now + #chaotic.mesa-git.enable = true; # requires --impure for now hardware.opengl = { enable = true; @@ -128,11 +128,6 @@ ]; }; - chaotic.gamescope = { - enable = true; - package = pkgs.gamescope_git; - }; - programs = { dconf.enable = true; hyprland.enable = true; diff --git a/flake.nix b/flake.nix index 1eb1fa1..cb00d0c 100755 --- a/flake.nix +++ b/flake.nix @@ -37,7 +37,6 @@ overlays = [ self.overlays.default inputs.chaotic-nyx.overlays.default - inputs.hyprland.overlays.default inputs.hyprland-contrib.overlays.default inputs.hyprpicker.overlays.default ]; @@ -67,8 +66,9 @@ useGlobalPkgs = true; }; } - inputs.chaotic-nyx.nixosModules.default inputs.grub2-themes.nixosModules.default + inputs.chaotic-nyx.nixosModules.default + inputs.hyprland.nixosModules.default ]; }; }; diff --git a/overlay.nix b/overlay.nix old mode 100644 new mode 100755 diff --git a/pkgs/gruvbox-plus-icon-pack/default.nix b/pkgs/gruvbox-plus-icon-pack/default.nix old mode 100644 new mode 100755 diff --git a/user/configs/cava/default.nix b/user/configs/cava/default.nix old mode 100644 new mode 100755 diff --git a/user/configs/kvantum/default.nix b/user/configs/kvantum/default.nix old mode 100644 new mode 100755 diff --git a/user/configs/neovim/config/init.lua b/user/configs/neovim/config/init.lua new file mode 100755 index 0000000..db3b396 --- /dev/null +++ b/user/configs/neovim/config/init.lua @@ -0,0 +1,3 @@ +require("settings") +require("plugins") +require("remaps") diff --git a/user/configs/neovim/config/lua/plugins/autopairs.lua b/user/configs/neovim/config/lua/plugins/autopairs.lua new file mode 100755 index 0000000..7faf5be --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/autopairs.lua @@ -0,0 +1 @@ +require("nvim-autopairs").setup({}) diff --git a/user/configs/neovim/config/lua/plugins/bufferline.lua b/user/configs/neovim/config/lua/plugins/bufferline.lua new file mode 100755 index 0000000..1cd0dd7 --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/bufferline.lua @@ -0,0 +1,16 @@ +require("bufferline").setup({ + options = { + show_tab_indicators = true, + -- separator_style = { "", "" }, + indicator = { style = "icon", icon = "" }, + color_icons = true, + offsets = { + { + filetype = "neo-tree", + text = "File Explorer", + text_align = "center", + separator = true, + }, + }, + }, +}) diff --git a/user/configs/neovim/config/lua/plugins/cmp.lua b/user/configs/neovim/config/lua/plugins/cmp.lua new file mode 100755 index 0000000..ebdc94f --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/cmp.lua @@ -0,0 +1,122 @@ +local cmp = require("cmp") + +local lspkind = require("lspkind") +local luasnip = require("luasnip") + +require("luasnip.loaders.from_vscode").lazy_load() + +local has_words_before = function() + unpack = unpack or table.unpack + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil +end + + +cmp.setup({ + preselect = cmp.PreselectMode.None, + formatting = { + format = lspkind.cmp_format({ + mode = "symbol_text", + + symbol_map = { + Text = "󰉿", + Method = "󰆧", + Function = "󰊕", + Constructor = "", + Field = "", + Variable = "󰀫", + Class = "", + Interface = "", + Module = "", + Property = "", + Unit = "", + Value = "󰎠", + Enum = "", + Keyword = "󰌋", + Snippet = "", + Color = "󰏘", + File = "󰈙", + Reference = "󰈇", + Folder = "󰉋", + EnumMember = "", + Constant = "󰏿", + Struct = "", + Event = "", + Operator = "󰆕", + TypeParameter = "" + }, + }), + }, + + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end, + }, + + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + + sources = cmp.config.sources({ + { name = "buffer" }, + { name = "path" }, + { name = "nvim_lsp" }, + { name = "nvim_lsp_signature_help"}, + { name = "luasnip" }, + }), + + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = false }), + + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + -- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable() + -- they way you will only jump inside the snippet region + elseif luasnip.expand_or_locally_jumpable() then + luasnip.expand_or_jump() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, { "i", "s" }), + + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }), +}) + +local cmp_autopairs = require('nvim-autopairs.completion.cmp') +cmp.event:on( + 'confirm_done', + cmp_autopairs.on_confirm_done() +) + +cmp.setup.cmdline(":", { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = "path" }, + { name = "cmdline" }, + }) +}) + +cmp.setup.cmdline("/", { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = "buffer" }, + }) +}) diff --git a/user/configs/neovim/config/lua/plugins/colorizer.lua b/user/configs/neovim/config/lua/plugins/colorizer.lua new file mode 100755 index 0000000..b09e4f3 --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/colorizer.lua @@ -0,0 +1 @@ +require("colorizer").setup({}) diff --git a/user/configs/neovim/config/lua/plugins/colorscheme.lua b/user/configs/neovim/config/lua/plugins/colorscheme.lua new file mode 100755 index 0000000..ff353c5 --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/colorscheme.lua @@ -0,0 +1,6 @@ +require("gruvbox").setup({ + --transparent_mode = true +}) +vim.cmd("colorscheme gruvbox") + + diff --git a/user/configs/neovim/config/lua/plugins/comment.lua b/user/configs/neovim/config/lua/plugins/comment.lua new file mode 100755 index 0000000..5e62812 --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/comment.lua @@ -0,0 +1 @@ +require("Comment").setup({}) diff --git a/user/configs/neovim/config/lua/plugins/dressing.lua b/user/configs/neovim/config/lua/plugins/dressing.lua new file mode 100755 index 0000000..f28e212 --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/dressing.lua @@ -0,0 +1 @@ +require("dressing").setup() diff --git a/user/configs/neovim/config/lua/plugins/init.lua b/user/configs/neovim/config/lua/plugins/init.lua new file mode 100755 index 0000000..8e416ff --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/init.lua @@ -0,0 +1,14 @@ +require("plugins.colorscheme") +require("plugins.lualine") +require("plugins.bufferline") +require("plugins.treesitter") +require("plugins.lspconfig") +require("plugins.cmp") +require("plugins.telescope") +require("plugins.colorizer") +require("plugins.dressing") +require("plugins.autopairs") +require("plugins.comment") +require("plugins.smartsplits") +require("plugins.trouble") +require("plugins.which-key") diff --git a/user/configs/neovim/config/lua/plugins/lspconfig.lua b/user/configs/neovim/config/lua/plugins/lspconfig.lua new file mode 100755 index 0000000..f68c4ef --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/lspconfig.lua @@ -0,0 +1,35 @@ +local capabilities = require('cmp_nvim_lsp').default_capabilities() +capabilities.textDocument.completion.completionItem.snippetSupport = true + +local lspconfig = require("lspconfig") + +lspconfig.rnix.setup { capabilities = capabilities } + +lspconfig.lua_ls.setup { + capabilities = capabilities, + settings = { + Lua = { + runtime = { version = "LuaJIT" }, + diagnostics = { globals = { "vim" } }, + workspace = { + library = vim.api.nvim_get_runtime_file("", true), + checkThirdParty = false + }, + telemetry = { enable = false }, + }, + }, +} + +lspconfig.clangd.setup { capabilities = capabilities } +lspconfig.rust_analyzer.setup { capabilities = capabilities } +lspconfig.zls.setup { capabilities = capabilities } +lspconfig.jedi_language_server.setup { capabilities = capabilities } +lspconfig.bashls.setup { capabilities = capabilities } + +lspconfig.cssls.setup { + capabilities = capabilities, + cmd = { "css-languageserver", "--stdio" }, + settings = { + css = { validate = false }, + } +} diff --git a/user/configs/neovim/config/lua/plugins/lualine.lua b/user/configs/neovim/config/lua/plugins/lualine.lua new file mode 100755 index 0000000..2f93c76 --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/lualine.lua @@ -0,0 +1,5 @@ +require("lualine").setup({ + options = { + theme = "gruvbox_dark", + } +}) diff --git a/user/configs/neovim/config/lua/plugins/neo-tree.lua b/user/configs/neovim/config/lua/plugins/neo-tree.lua new file mode 100755 index 0000000..fc8dfba --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/neo-tree.lua @@ -0,0 +1,36 @@ +require("neo-tree").setup({ + default_component_configs = { + icon = { + folder_empty = "󰜌", + folder_empty_open = "󰜌", + }, + git_status = { + symbols = { + renamed = "󰁕", + unstaged = "󰄱", + }, + }, + }, + + document_symbols = { + kinds = { + File = { icon = "󰈙", hl = "Tag" }, + Namespace = { icon = "󰌗", hl = "Include" }, + Package = { icon = "󰏖", hl = "Label" }, + Class = { icon = "󰌗", hl = "Include" }, + Property = { icon = "󰆧", hl = "@property" }, + Enum = { icon = "󰒻", hl = "@number" }, + Function = { icon = "󰊕", hl = "Function" }, + String = { icon = "󰀬", hl = "String" }, + Number = { icon = "󰎠", hl = "Number" }, + Array = { icon = "󰅪", hl = "Type" }, + Object = { icon = "󰅩", hl = "Type" }, + Key = { icon = "󰌋", hl = "" }, + Struct = { icon = "󰌗", hl = "Type" }, + Operator = { icon = "󰆕", hl = "Operator" }, + TypeParameter = { icon = "󰊄", hl = "Type" }, + StaticMethod = { icon = '󰠄 ', hl = 'Function' }, + } + }, +}) + diff --git a/user/configs/neovim/config/lua/plugins/smartsplits.lua b/user/configs/neovim/config/lua/plugins/smartsplits.lua new file mode 100755 index 0000000..402e34d --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/smartsplits.lua @@ -0,0 +1 @@ +require("smart-splits").setup() diff --git a/user/configs/neovim/config/lua/plugins/surround.lua b/user/configs/neovim/config/lua/plugins/surround.lua new file mode 100755 index 0000000..6f4fafa --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/surround.lua @@ -0,0 +1 @@ +require('nvim-surround').setup() diff --git a/user/configs/neovim/config/lua/plugins/telescope.lua b/user/configs/neovim/config/lua/plugins/telescope.lua new file mode 100755 index 0000000..aec54b2 --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/telescope.lua @@ -0,0 +1,13 @@ +local telescope = require("telescope") +telescope.setup({ + extensions = { + ["ui-select"] = { + require("telescope.themes").get_dropdown {} + }, + }, +}) + +telescope.load_extension("fzf") +telescope.load_extension("ui-select") +telescope.load_extension("undo") + diff --git a/user/configs/neovim/config/lua/plugins/treesitter.lua b/user/configs/neovim/config/lua/plugins/treesitter.lua new file mode 100755 index 0000000..b4b46bf --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/treesitter.lua @@ -0,0 +1,3 @@ +require("nvim-treesitter.configs").setup({ + highlight = { enable = true }, +}) diff --git a/user/configs/neovim/config/lua/plugins/trouble.lua b/user/configs/neovim/config/lua/plugins/trouble.lua new file mode 100755 index 0000000..38ef1e9 --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/trouble.lua @@ -0,0 +1 @@ +require("trouble").setup() diff --git a/user/configs/neovim/config/lua/plugins/which-key.lua b/user/configs/neovim/config/lua/plugins/which-key.lua new file mode 100755 index 0000000..e104cb2 --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/which-key.lua @@ -0,0 +1,3 @@ +vim.o.timeoutlen = 100 + +require("which-key").setup() diff --git a/user/configs/neovim/config/lua/remaps.lua b/user/configs/neovim/config/lua/remaps.lua new file mode 100755 index 0000000..4e7d1d3 --- /dev/null +++ b/user/configs/neovim/config/lua/remaps.lua @@ -0,0 +1,12 @@ +local telescope_builtin = require("telescope.builtin") +local map = vim.keymap.set + +map( "n", "", "BufferLineCyclePrev", { desc = "Prev buffer" }) +map( "n", "", "BufferLineCycleNext", { desc = "Next buffer" }) +map( {"n", "i" }, "", "noh",{ desc = "Escape and clear hlsearch"}) +map( "n", "ff", telescope_builtin.find_files, { desc = "Find Files" }) +map( "n", "fb", telescope_builtin.buffers, { desc = "List Buffers" }) +map( "n", "fh", telescope_builtin.help_tags, { desc = "Help Tags" }) +map( "n", "fp", telescope_builtin.git_files, { desc = "Find Files (Git)" }) +map( "n", "", "NeoTreeFocusToggle", { desc = "Open NeoTree" }) +map( {"n", "x"}, "ga", ":EasyAlign", { desc = "Align text" }) diff --git a/user/configs/neovim/config/lua/settings.lua b/user/configs/neovim/config/lua/settings.lua new file mode 100755 index 0000000..4a2a6a9 --- /dev/null +++ b/user/configs/neovim/config/lua/settings.lua @@ -0,0 +1,24 @@ +vim.g.mapleader = " " + +-- 4 space tabs +vim.o.expandtab = true +vim.o.shiftwidth = 2 +vim.o.tabstop = 2 +vim.o.smartindent = true + +vim.o.background = "dark" +vim.o.clipboard = "unnamedplus" +vim.o.termguicolors = true +vim.o.ignorecase = true +vim.o.smartcase = true +vim.o.lazyredraw = true +vim.o.wrap = false +vim.o.scrolloff = 8 + +vim.o.swapfile = false +vim.o.backup = false +vim.o.undodir = os.getenv("HOME") .. "/.local/share/nvim/undodir" +vim.o.undofile = true + +vim.wo.number = true +vim.wo.relativenumber = true diff --git a/user/configs/neovim/default.nix b/user/configs/neovim/default.nix old mode 100644 new mode 100755 index 02f6892..1979a83 --- a/user/configs/neovim/default.nix +++ b/user/configs/neovim/default.nix @@ -19,12 +19,14 @@ which-key-nvim smart-splits-nvim legendary-nvim + vim-easy-align vim-fugitive telescope-nvim telescope-fzf-native-nvim telescope-ui-select-nvim + telescope-undo-nvim nvim-lspconfig nvim-treesitter.withAllGrammars @@ -36,20 +38,26 @@ cmp-nvim-lsp cmp-path cmp_luasnip + cmp-nvim-lsp-signature-help friendly-snippets lspkind-nvim ]; - extraLuaConfig = builtins.readFile ./init.lua; - extraPackages = with pkgs; [ + nodePackages.bash-language-server clang-tools lua-language-server + python3Packages.jedi-language-server rnix-lsp rust-analyzer nodePackages.vscode-css-languageserver-bin zls ]; }; + + xdg.configFile.nvim = { + source = ./config; + recursive = true; + }; } diff --git a/user/configs/neovim/init.lua b/user/configs/neovim/init.lua deleted file mode 100644 index 3ed73a7..0000000 --- a/user/configs/neovim/init.lua +++ /dev/null @@ -1,284 +0,0 @@ -vim.g.mapleader = " " - --- 4 space tabs -vim.o.expandtab = true -vim.o.shiftwidth = 2 -vim.o.tabstop = 2 -vim.o.smartindent = true - -vim.o.background = "dark" -vim.o.clipboard = "unnamedplus" -vim.o.termguicolors = true -vim.o.ignorecase = true -vim.o.smartcase = true -vim.o.lazyredraw = true -vim.o.timeoutlen = 100 - -vim.wo.number = true -vim.wo.relativenumber = true - -require("gruvbox").setup({ - transparent_mode = true -}) -vim.cmd("colorscheme gruvbox") - -require("lualine").setup({ - options = { - theme = "gruvbox_dark", - } -}) - -require("dressing").setup() - -require("bufferline").setup({ - options = { - show_tab_indicators = true, - -- separator_style = { "", "" }, - indicator = { style = "icon", icon = "▎" }, - color_icons = true, - offsets = { - { - filetype = "neo-tree", - text = "File Explorer", - text_align = "center", - separator = true, - }, - }, - }, -}) - -require("colorizer").setup({}) -require("nvim-autopairs").setup({}) -require("Comment").setup({}) - -require("neo-tree").setup({ - default_component_configs = { - icon = { - folder_empty = "󰜌", - folder_empty_open = "󰜌", - }, - git_status = { - symbols = { - renamed = "󰁕", - unstaged = "󰄱", - }, - }, - }, - document_symbols = { - kinds = { - File = { icon = "󰈙", hl = "Tag" }, - Namespace = { icon = "󰌗", hl = "Include" }, - Package = { icon = "󰏖", hl = "Label" }, - Class = { icon = "󰌗", hl = "Include" }, - Property = { icon = "󰆧", hl = "@property" }, - Enum = { icon = "󰒻", hl = "@number" }, - Function = { icon = "󰊕", hl = "Function" }, - String = { icon = "󰀬", hl = "String" }, - Number = { icon = "󰎠", hl = "Number" }, - Array = { icon = "󰅪", hl = "Type" }, - Object = { icon = "󰅩", hl = "Type" }, - Key = { icon = "󰌋", hl = "" }, - Struct = { icon = "󰌗", hl = "Type" }, - Operator = { icon = "󰆕", hl = "Operator" }, - TypeParameter = { icon = "󰊄", hl = "Type" }, - StaticMethod = { icon = '󰠄 ', hl = 'Function' }, - } - }, -}) - -require("nvim-treesitter.configs").setup({ - highlight = { enable = true, }, -}) - - -require("smart-splits").setup() - -require("trouble").setup() - -local telescope = require("telescope") -telescope.setup({ - extensions = { - ["ui-select"] = { - require("telescope.themes").get_dropdown {} - }, - }, -}) -local telescope_builtin = require("telescope.builtin") -telescope.load_extension("fzf") -telescope.load_extension("ui-select") - -require('nvim-surround').setup() - -local capabilities = require('cmp_nvim_lsp').default_capabilities() -capabilities.textDocument.completion.completionItem.snippetSupport = true - -local lspconfig = require("lspconfig") - -lspconfig.rnix.setup { capabilities = capabilities } - -lspconfig.lua_ls.setup { - capabilities = capabilities, - settings = { - Lua = { - runtime = { version = "LuaJIT" }, - diagnostics = { globals = { "vim" } }, - workspace = { - library = vim.api.nvim_get_runtime_file("", true), - checkThirdParty = false - }, - telemetry = { enable = false }, - }, - }, -} - -lspconfig.clangd.setup { capabilities = capabilities } -lspconfig.rust_analyzer.setup { capabilities = capabilities } -lspconfig.zls.setup { capabilities = capabilities } - -lspconfig.cssls.setup { - capabilities = capabilities, - cmd = { "css-languageserver", "--stdio" }, - settings = { - css = { validate = false }, - } -} - -require("luasnip.loaders.from_vscode").lazy_load() - -local has_words_before = function() - unpack = unpack or table.unpack - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil -end - -local cmp = require("cmp") - -local lspkind = require("lspkind") -local luasnip = require("luasnip") -cmp.setup({ - preselect = cmp.PreselectMode.None, - formatting = { - format = lspkind.cmp_format({ - mode = "symbol_text", - - symbol_map = { - Text = "󰉿", - Method = "󰆧", - Function = "󰊕", - Constructor = "", - Field = "", - Variable = "󰀫", - Class = "", - Interface = "", - Module = "", - Property = "", - Unit = "", - Value = "󰎠", - Enum = "", - Keyword = "󰌋", - Snippet = "", - Color = "󰏘", - File = "󰈙", - Reference = "󰈇", - Folder = "󰉋", - EnumMember = "", - Constant = "󰏿", - Struct = "", - Event = "", - Operator = "󰆕", - TypeParameter = "" - }, - }), - }, - - snippet = { - expand = function(args) - require('luasnip').lsp_expand(args.body) - end, - }, - - window = { - completion = cmp.config.window.bordered(), - documentation = cmp.config.window.bordered(), - }, - - sources = cmp.config.sources({ - { name = "buffer" }, - { name = "path" }, - { name = "nvim_lsp" }, - { name = "luasnip" }, - }), - - mapping = cmp.mapping.preset.insert({ - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.abort(), - [''] = cmp.mapping.confirm({ select = false }), - - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - -- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable() - -- they way you will only jump inside the snippet region - elseif luasnip.expand_or_locally_jumpable() then - luasnip.expand_or_jump() - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, { "i", "s" }), - - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { "i", "s" }), - }), -}) - -local cmp_autopairs = require('nvim-autopairs.completion.cmp') -cmp.event:on( - 'confirm_done', - cmp_autopairs.on_confirm_done() -) - -cmp.setup.cmdline(":", { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ - { name = "path" }, - { name = "cmdline" }, - }) -}) - -cmp.setup.cmdline("/", { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ - { name = "buffer" }, - }) -}) - --- keymaps -require("which-key").setup() -require("legendary").setup({ - keymaps = { - { "", "BufferLineCyclePrev", description = "Prev buffer" }, - { "", "BufferLineCycleNext", description = "Next buffer" }, - { "", "noh", description = "Escape and clear hlsearch", mode = { "n", "i" } }, - { "ff", telescope_builtin.find_files, description = "Find Files" }, - { "fg", telescope_builtin.live_grep, description = "Live Grep" }, - { "fb", telescope_builtin.buffers, description = "List Buffers" }, - { "fh", telescope_builtin.help_tags, description = "Help Tags" }, - { "fc", telescope_builtin.git_files, description = "Find Files (Git)" }, - { "", "NeoTreeFocusToggle", description = "Open NeoTree" }, - }, - - extensions = { - smart_splits = {}, - } -}) diff --git a/user/configs/rofi/default.nix b/user/configs/rofi/default.nix old mode 100644 new mode 100755 diff --git a/user/configs/rofi/theme.rasi b/user/configs/rofi/theme.rasi old mode 100644 new mode 100755 diff --git a/user/configs/tmux/default.nix b/user/configs/tmux/default.nix old mode 100644 new mode 100755 diff --git a/user/configs/wayland/hyprland/default.nix b/user/configs/wayland/hyprland/default.nix old mode 100644 new mode 100755 index 8ed46b8..b91b958 --- a/user/configs/wayland/hyprland/default.nix +++ b/user/configs/wayland/hyprland/default.nix @@ -137,7 +137,7 @@ in exec-once = ${xwaylandSetPrimary}/bin/xwayland-setprimary.sh exec-once = ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 exec-once = ${pkgs.swww}/bin/swww-daemon - exec-once = ${pkgs.arrpc}/bin/arRPC + exec-once = $pkgs.arrpc}/bin/arRPC exec = ${wob-voldaemon}/bin/wob-volumeindicator.sh; exec = pkill waybar; ${pkgs.waybar_hyprland}/bin/waybar @@ -171,7 +171,7 @@ in bind = ${modKey}, F, fullscreen bind = ${modKey} SHIFT, Q, killactive - bind = ${modKey}, D, exec, ${pkgs.rofi-wayland}/bin/rofi -show drun -show-icons + bind = ${modKey}, D, exec, ${pkgs.rofi-wayland}/bin/rofi -show drun -p Applications -show-icons bind = ${modKey}, Q, exec, ${pkgs.firefox}/bin/firefox diff --git a/user/configs/wayland/waybar/style.css b/user/configs/wayland/waybar/style.css old mode 100644 new mode 100755 diff --git a/user/configs/xdg-mime.nix b/user/configs/xdg-mime.nix old mode 100644 new mode 100755 diff --git a/user/home.nix b/user/home.nix index 83f51eb..50badba 100755 --- a/user/home.nix +++ b/user/home.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs, inputs, ... }: { imports = [ ./configs/beets