diff options
| author | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2024-09-17 10:12:18 +0530 |
|---|---|---|
| committer | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2024-09-17 10:12:18 +0530 |
| commit | cbd5b66b89fba2ad23a9da7372cf916305efad1f (patch) | |
| tree | 0a5580244e3fe87b05c581681e558925d0635ad7 /nvim | |
| download | home-manager-config-cbd5b66b89fba2ad23a9da7372cf916305efad1f.tar.gz home-manager-config-cbd5b66b89fba2ad23a9da7372cf916305efad1f.zip | |
Initial commit.
Diffstat (limited to 'nvim')
| -rw-r--r-- | nvim/colorscheme.nix | 43 | ||||
| -rw-r--r-- | nvim/default.nix | 37 | ||||
| -rw-r--r-- | nvim/keybindings.lua | 8 | ||||
| -rw-r--r-- | nvim/options.lua | 23 | ||||
| -rw-r--r-- | nvim/plugins/comment.lua | 1 | ||||
| -rw-r--r-- | nvim/plugins/lualine/default.nix | 6 | ||||
| -rw-r--r-- | nvim/plugins/lualine/init.lua | 6 | ||||
| -rw-r--r-- | nvim/plugins/lualine/theme.nix | 15 | ||||
| -rw-r--r-- | nvim/plugins/nvim-tree.lua | 13 |
9 files changed, 152 insertions, 0 deletions
diff --git a/nvim/colorscheme.nix b/nvim/colorscheme.nix new file mode 100644 index 0000000..d053324 --- /dev/null +++ b/nvim/colorscheme.nix @@ -0,0 +1,43 @@ +# Using the stylix to have a consistent colorscheme +config: + +with config.lib.stylix.colors.withHashtag; +'' +-- Apply the color scheme +vim.cmd("highlight clear") +vim.cmd("syntax reset") + +-- Set terminal colors +vim.g.terminal_color_0 = "${base00}" +vim.g.terminal_color_1 = "${base08}" +vim.g.terminal_color_2 = "${base0B}" +vim.g.terminal_color_3 = "${base0A}" +vim.g.terminal_color_4 = "${base0D}" +vim.g.terminal_color_5 = "${base0E}" +vim.g.terminal_color_6 = "${base0C}" +vim.g.terminal_color_7 = "${base05}" +vim.g.terminal_color_8 = "${base03}" +vim.g.terminal_color_9 = "${base08}" +vim.g.terminal_color_10 = "${base0B}" +vim.g.terminal_color_11 = "${base0A}" +vim.g.terminal_color_12 = "${base0D}" +vim.g.terminal_color_13 = "${base0E}" +vim.g.terminal_color_14 = "${base0C}" +vim.g.terminal_color_15 = "${base07}" + +-- Set highlight groups +vim.api.nvim_set_hl(0, "Normal", { fg = "${base05}", bg = "${base00}" }) +vim.api.nvim_set_hl(0, "Comment", { fg = "${base03}", bg = "${base00}", italic = true }) +vim.api.nvim_set_hl(0, "Constant", { fg = "${base09}" }) +vim.api.nvim_set_hl(0, "String", { fg = "${base0B}" }) +vim.api.nvim_set_hl(0, "Identifier", { fg = "${base08}" }) +vim.api.nvim_set_hl(0, "Function", { fg = "${base0D}" }) +vim.api.nvim_set_hl(0, "Statement", { fg = "${base0E}" }) +vim.api.nvim_set_hl(0, "Keyword", { fg = "${base0E}" }) +vim.api.nvim_set_hl(0, "Type", { fg = "${base0A}" }) +vim.api.nvim_set_hl(0, "Special", { fg = "${base0C}" }) +vim.api.nvim_set_hl(0, "PreProc", { fg = "${base0A}" }) +vim.api.nvim_set_hl(0, "Underlined", { fg = "${base0B}", underline = true }) +vim.api.nvim_set_hl(0, "Error", { fg = "${base08}", bg = "${base00}", bold = true }) +vim.api.nvim_set_hl(0, "Todo", { fg = "${base0A}", bg = "${base00}", bold = true }) +'' diff --git a/nvim/default.nix b/nvim/default.nix new file mode 100644 index 0000000..f2589ae --- /dev/null +++ b/nvim/default.nix @@ -0,0 +1,37 @@ +{ pkgs, config, ... }: + +{ + programs.neovim = + let + toLua = str: "lua << EOF\n${str}\nEOF\n"; + toLuaFile = file: "lua << EOF\n${builtins.readFile file}\nEOF\n"; + in { + enable = true; + viAlias = true; + vimAlias = true; + vimdiffAlias = true; + + extraLuaConfig = '' +${import ./colorscheme.nix config} +${builtins.readFile ./options.lua} +${builtins.readFile ./keybindings.lua} +''; + plugins = with pkgs.vimPlugins; [ + { + plugin = comment-nvim; + config = toLuaFile ./plugins/comment.lua; + } + + { + plugin = lualine-nvim; + config = toLua (import ./plugins/lualine/default.nix config); + } + + nvim-web-devicons + { + plugin = nvim-tree-lua; + config = toLuaFile ./plugins/nvim-tree.lua; + } + ]; + }; +} diff --git a/nvim/keybindings.lua b/nvim/keybindings.lua new file mode 100644 index 0000000..d952736 --- /dev/null +++ b/nvim/keybindings.lua @@ -0,0 +1,8 @@ +-- Navigate splits +vim.keymap.set("n", "<C-h>", ":wincmd h<CR>", { silent = true }) +vim.keymap.set("n", "<C-j>", ":wincmd j<CR>", { silent = true }) +vim.keymap.set("n", "<C-k>", ":wincmd k<CR>", { silent = true }) +vim.keymap.set("n", "<C-l>", ":wincmd l<CR>", { silent = true }) + +-- NvimTree +vim.keymap.set("n", "<C-n>", ":NvimTreeToggle<CR>", { silent = true }) diff --git a/nvim/options.lua b/nvim/options.lua new file mode 100644 index 0000000..2897a69 --- /dev/null +++ b/nvim/options.lua @@ -0,0 +1,23 @@ +vim.g.mapleader = " " +vim.g.maplocalleader = " " + +vim.o.clipboard = "unnamedplus" + +vim.o.number = true +vim.o.list = true +vim.o.listchars = "tab:| ,trail:_,lead:_" + +vim.o.laststatus = 3 +vim.opt.fillchars = { eob = " " } + +vim.o.signcolumn = "auto" + +vim.o.tabstop = 2 +vim.o.shiftwidth = 2 +vim.o.expandtab = false + +vim.o.updatetime = 300 + +vim.o.termguicolors = true + +vim.o.mouse = "a" diff --git a/nvim/plugins/comment.lua b/nvim/plugins/comment.lua new file mode 100644 index 0000000..9086261 --- /dev/null +++ b/nvim/plugins/comment.lua @@ -0,0 +1 @@ +require("Comment").setup(); diff --git a/nvim/plugins/lualine/default.nix b/nvim/plugins/lualine/default.nix new file mode 100644 index 0000000..b6be39e --- /dev/null +++ b/nvim/plugins/lualine/default.nix @@ -0,0 +1,6 @@ +config: + +'' +${import ./theme.nix config} +${builtins.readFile ./init.lua} +'' diff --git a/nvim/plugins/lualine/init.lua b/nvim/plugins/lualine/init.lua new file mode 100644 index 0000000..36acda4 --- /dev/null +++ b/nvim/plugins/lualine/init.lua @@ -0,0 +1,6 @@ +require("lualine").setup { + options = { + globalstatus = true, + theme = theme + } +} diff --git a/nvim/plugins/lualine/theme.nix b/nvim/plugins/lualine/theme.nix new file mode 100644 index 0000000..26c420e --- /dev/null +++ b/nvim/plugins/lualine/theme.nix @@ -0,0 +1,15 @@ +config: + +with config.lib.stylix.colors.withHashtag; +'' +local theme = { + normal = { + a = { fg = "${base07}", bg = "${base0D}", gui = "bold" }, + b = { fg = "${base05}", bg = "${base01}" }, + c = { fg = "${base03}", bg = "${base00}" }, + }, + insert = { a = { fg = "${base07}", bg = "${base0B}", gui = "bold" } }, + visual = { a = { fg = "${base07}", bg = "${base0C}", gui = "bold" } }, + replace = { a = { fg = "${base07}", bg = "${base08}", gui = "bold" } }, + command = { a = { fg = "${base07}", bg = "${base0A}", gui = "bold" } }, +}'' diff --git a/nvim/plugins/nvim-tree.lua b/nvim/plugins/nvim-tree.lua new file mode 100644 index 0000000..1aa2e6e --- /dev/null +++ b/nvim/plugins/nvim-tree.lua @@ -0,0 +1,13 @@ +require("nvim-tree").setup { + filters = { + enable = false + }, + renderer = { + indent_markers = { + enable = true + }, + root_folder_label = function(path) + return vim.fn.fnamemodify(path, ":t") + end + } +} |
