diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | README.md | 7 | ||||
| -rw-r--r-- | nvim/after/plugin/keymap/explorer.lua | 9 | ||||
| -rw-r--r-- | nvim/after/plugin/keymap/telescope.lua | 24 | ||||
| -rw-r--r-- | nvim/after/plugin/statusline.lua | 30 | ||||
| -rw-r--r-- | nvim/after/plugin/tabline.lua | 10 | ||||
| -rw-r--r-- | nvim/init.lua | 50 | ||||
| -rw-r--r-- | nvim/lua/colorscheme.lua | 1 | ||||
| -rw-r--r-- | nvim/lua/keymap.lua | 22 | ||||
| -rw-r--r-- | nvim/lua/plugins.lua | 85 | ||||
| -rw-r--r-- | nvim/lua/telescope.lua | 2 | ||||
| -rw-r--r-- | tmux/remote.tmux.conf | 3 | ||||
| -rw-r--r-- | tmux/theme.tmux.conf | 10 | ||||
| -rw-r--r-- | tmux/tmux.conf | 33 |
14 files changed, 287 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f8ba0cc --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +*packer_compiled.lua @@ -1 +1,6 @@ -# dotfiles
\ No newline at end of file +# Dotfiles + +My personal configuration of various programs + +* neovim +* tmux diff --git a/nvim/after/plugin/keymap/explorer.lua b/nvim/after/plugin/keymap/explorer.lua new file mode 100644 index 0000000..00ded39 --- /dev/null +++ b/nvim/after/plugin/keymap/explorer.lua @@ -0,0 +1,9 @@ +local Remap = require("keymap") + +-- TODO: move to separate config file +vim.g.netrw_liststyle = 3 +vim.g.netrw_banner = 0 + +Remap.nnoremap("<leader>ef", function() + vim.cmd('Vexplore') +end) diff --git a/nvim/after/plugin/keymap/telescope.lua b/nvim/after/plugin/keymap/telescope.lua new file mode 100644 index 0000000..f55ffec --- /dev/null +++ b/nvim/after/plugin/keymap/telescope.lua @@ -0,0 +1,24 @@ +local Remap = require("keymap") +local builtin = require('telescope.builtin') +local nnoremap = Remap.nnoremap + +-- find file +nnoremap("<Leader>ff", function() + builtin.find_files() +end) + +-- find buffer +nnoremap("<leader>fb", function() + builtin.buffers() +end) + +-- grep find +nnoremap("<Leader>gf", function() + builtin.live_grep() +end) + +-- -- find git, lists git pickers +-- TODO: write picker +-- nnoremap("<leader>fg", function() +-- builtin. +-- end) diff --git a/nvim/after/plugin/statusline.lua b/nvim/after/plugin/statusline.lua new file mode 100644 index 0000000..369ad7b --- /dev/null +++ b/nvim/after/plugin/statusline.lua @@ -0,0 +1,30 @@ +require('lualine').setup({ + options = { + theme = 'auto', + globalstatus = true, + }, + -- tabline = { + -- lualine_a = {}, + -- lualine_b = {}, + -- lualine_c = {}, + -- lualine_x = {}, + -- lualine_y = {}, + -- lualine_z = {} + -- }, + -- winbar = { + -- lualine_a = {}, + -- lualine_b = {}, + -- lualine_c = {'filename'}, + -- lualine_x = {}, + -- lualine_y = {}, + -- lualine_z = {} + -- }, + -- inactive_winbar = { + -- lualine_a = {}, + -- lualine_b = {}, + -- lualine_c = {'filename'}, + -- lualine_x = {'location'}, + -- lualine_y = {}, + -- lualine_z = {} + -- }, +}) diff --git a/nvim/after/plugin/tabline.lua b/nvim/after/plugin/tabline.lua new file mode 100644 index 0000000..c975d94 --- /dev/null +++ b/nvim/after/plugin/tabline.lua @@ -0,0 +1,10 @@ +require('bufferline').setup({ + options = { + mode = "tabs", + show_tab_indicators = false, + hover = { + enabled = true, + delay = 200 + } + } +}) diff --git a/nvim/init.lua b/nvim/init.lua new file mode 100644 index 0000000..58e8625 --- /dev/null +++ b/nvim/init.lua @@ -0,0 +1,50 @@ +-- ==================== +-- NVIM CONFIG +-- ==================== + +HOME = os.getenv("HOME") + +require('keymap') +require('plugins') +require('colorscheme') +-- require('statusline') +-- require('bufferline') + +-- General Config +vim.opt.number = true +vim.opt.relativenumber = true +vim.opt.cursorline = true +vim.opt.linebreak = true +vim.opt.title = true +vim.opt.showmatch = true +vim.opt.showmode = false +vim.opt.mouse = "anv" + +-- Status line +vim.opt.laststatus = 3 + +vim.opt.showtabline = 2 + +vim.opt.list = true +vim.opt.listchars = "tab:▸ ,trail:·,nbsp:·,extends:+,lead:·" + +-- tab settings +vim.opt.tabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.softtabstop = 4 +vim.opt.expandtab = true + +-- search +vim.opt.ignorecase = true +vim.opt.smartcase = true + +-- Bell +vim.opt.errorbells = false +vim.opt.visualbell = true + +-- term settings +vim.opt.termguicolors = true + + +-- leader +vim.g.mapleader = " " diff --git a/nvim/lua/colorscheme.lua b/nvim/lua/colorscheme.lua new file mode 100644 index 0000000..1d79a5f --- /dev/null +++ b/nvim/lua/colorscheme.lua @@ -0,0 +1 @@ +vim.cmd("colorscheme catppuccin-mocha") diff --git a/nvim/lua/keymap.lua b/nvim/lua/keymap.lua new file mode 100644 index 0000000..883321b --- /dev/null +++ b/nvim/lua/keymap.lua @@ -0,0 +1,22 @@ +-- Provides convienent lua methods for binding keys +-- Source: Primeagen +local M = {} + +local function bind(op, outer_opts) + outer_opts = outer_opts or {noremap = true} + return function(lhs, rhs, opts) + opts = vim.tbl_extend("force", + outer_opts, + opts or {} + ) + vim.keymap.set(op, lhs, rhs, opts) + end +end + +M.nmap = bind("n", {noremap = false}) +M.nnoremap = bind("n") +M.vnoremap = bind("v") +M.xnoremap = bind("x") +M.inoremap = bind("i") + +return M diff --git a/nvim/lua/plugins.lua b/nvim/lua/plugins.lua new file mode 100644 index 0000000..47024bd --- /dev/null +++ b/nvim/lua/plugins.lua @@ -0,0 +1,85 @@ +return require('packer').startup(function(use) + use 'wbthomason/packer.nvim' -- package manager + use 'neovim/nvim-lspconfig' -- config for lsp + + -- common dependacy + use "nvim-lua/plenary.nvim" + + -- git + use 'tpope/vim-fugitive' -- close to native git command integrations + + + use { + 'nvim-telescope/telescope.nvim', tag = '0.1.0', -- fuzzy finder + requires = { {'nvim-lua/plenary.nvim'}, {'nvim-tree/nvim-web-devicons'} } + } + + -- completion + -- TODO:config completion and setup binds + use 'hrsh7th/nvim-cmp' + use { + 'hrsh7th/cmp-nvim-lsp', + requires = { {'hrsh7th/nvim-cmp'}, {'neovim/nvim-lspconfig'} } + } + use { + 'hrsh7th/cmp-path', + requires = { 'hrsh7th/nvim-cmp' } + } + use { + 'kdheepak/cmp-latex-symbols', + requires = { 'hrsh7th/nvim-cmp' } + } + + + -- pandoc + use 'vim-pandoc/vim-pandoc' + use 'vim-pandoc/vim-pandoc-syntax' + + -- tree sitter + use { + 'nvim-treesitter/nvim-treesitter', + run = ':TSUpdate' + } + + use { + 'numToStr/Comment.nvim', -- faster commentting + config = function() + require('Comment').setup() + end + } + + use 'habamax/vim-godot' + + -- TODO: configure tree-sitter to color current indentation level + use { + 'lukas-reineke/indent-blankline.nvim', -- show indentation levels + config = function() + require('indent_blankline').setup { + show_current_context = true, + show_current_context_start = true + } + end + } + + -- statusline/bufferline + use { + 'nvim-lualine/lualine.nvim', -- lualine + requires = { 'nvim-tree/nvim-web-devicons', opt = true }, + config = function() + require('lualine').setup() + end + } + use { + 'akinsho/bufferline.nvim', -- bufferline + tag = "v3.*", + requires = 'nvim-tree/nvim-web-devicons', + config = function() + require('bufferline').setup() + end + } + + -- cosmetic + use { "catppuccin/nvim", as = "catppuccin" } -- colorscheme + -- use 'kyazdani42/nvim-web-devicons' + +end) diff --git a/nvim/lua/telescope.lua b/nvim/lua/telescope.lua new file mode 100644 index 0000000..37d03a3 --- /dev/null +++ b/nvim/lua/telescope.lua @@ -0,0 +1,2 @@ +-- require("telescope").setup({ +-- }) diff --git a/tmux/remote.tmux.conf b/tmux/remote.tmux.conf new file mode 100644 index 0000000..3eb5161 --- /dev/null +++ b/tmux/remote.tmux.conf @@ -0,0 +1,3 @@ +# vim:fileencoding=utf-8:ft=tmux + +set -g prefix C-b diff --git a/tmux/theme.tmux.conf b/tmux/theme.tmux.conf new file mode 100644 index 0000000..7286ff9 --- /dev/null +++ b/tmux/theme.tmux.conf @@ -0,0 +1,10 @@ +# vim:fileencoding=utf-8:ft=tmux + +set -g pane-border-lines heavy +set -g clock-mode-style 24 +set -g monitor-bell on +set -g monitor-activity on + + +# Statusbar +set -g status-position top diff --git a/tmux/tmux.conf b/tmux/tmux.conf new file mode 100644 index 0000000..c86cc6c --- /dev/null +++ b/tmux/tmux.conf @@ -0,0 +1,33 @@ +set -g mouse on +unbind C-b +set -g prefix C-a +set-option -sg escape-time 10 +set -g status-keys vi +set -g base-index 1 +set -g pane-base-index 1 +set -g default-shell /bin/zsh + +set -g mode-keys vi + +set -g editor $EDITOR +set -g renumber-windows on + + +#vi bindings +unbind-key h +unbind-key j +unbind-key k +unbind-key l +bind-key h select-pane -L +bind-key j select-pane -D +bind-key k select-pane -U +bind-key l select-pane -R + +# Pane splitting +bind | split-window -h +bind _ split-window -v + + +# Sourcing +source-file ~/.config/tmux/theme.tmux.conf +if-shell 'test -n "$SSH_CLIENT"' 'source-file ~/.config/tmux/remote.tmux.conf' |
