diff --git a/config/fish/aliases.fish b/config/fish/aliases.fish index 1416482..d33affe 100644 --- a/config/fish/aliases.fish +++ b/config/fish/aliases.fish @@ -23,6 +23,8 @@ end alias vim=nvim alias cat="bat -Pp" +alias lg=lazygit +alias ls=eza alias k="kubectl" alias kp="kubectl get pods -A" @@ -39,4 +41,4 @@ end # Volume control (pipewire) function vol wpctl set-volume @DEFAULT_SINK@ $argv% 2>&1 > /dev/null -end \ No newline at end of file +end diff --git a/config/vim/init.lua b/config/vim/init.lua index 63c76c5..e39be3a 100644 --- a/config/vim/init.lua +++ b/config/vim/init.lua @@ -15,26 +15,44 @@ local rtp = vim.opt.rtp rtp:prepend(lazypath) require('lazy').setup({ - { 'airblade/vim-gitgutter' }, -- show git changes in the gutter + { 'lewis6991/gitsigns.nvim' }, -- show git changes in the gutter { 'hashivim/vim-terraform' }, -- terraform syntax highlighting { 'junegunn/fzf', run = 'fzf#install()' }, - {'junegunn/fzf.vim'}, + { 'junegunn/fzf.vim' }, { 'EdenEast/nightfox.nvim' }, -- nightfox theme { 'nvim-treesitter/nvim-treesitter' }, -- treesitter, makes syntax highlighting better - { 'scrooloose/nerdcommenter' }, -- easy commenting + { 'numToStr/Comment.nvim' }, -- easy commenting { 'tpope/vim-fugitive' }, -- git integration with :G{git cmd} { 'itchyny/lightline.vim' }, -- statusline { 'wookayin/fzf-ripgrep.vim' }, -- fzf ripgrep integration, for "/" { 'yuki-yano/fzf-preview.vim' }, -- fzf preview { 'fatih/vim-go' }, -- go syntax highlighting - { "ellisonleao/glow.nvim" }, -- markdown preview using :Glow + { 'OXY2DEV/markview.nvim' }, -- markdown preview in-buffer { 'rhysd/git-messenger.vim' }, -- Show git messages under cursor + { + 'kdheepak/lazygit.nvim', + dependencies = { 'nvim-lua/plenary.nvim' } + }, { 'onsails/lspkind.nvim' }, -- lsp kind, makes autocomplete look better { 'hrsh7th/vim-vsnip' }, { 'nvim-lua/plenary.nvim' }, -- lua utility functions + { + 'nvim-telescope/telescope.nvim', + dependencies = { 'nvim-lua/plenary.nvim' } + }, + { + 'nvim-telescope/telescope-fzf-native.nvim', + build = 'make' + }, + { 'stevearc/conform.nvim' }, + { 'lukas-reineke/indent-blankline.nvim' }, + { + 'folke/todo-comments.nvim', + dependencies = { 'nvim-lua/plenary.nvim' } + }, { "ccntrq/autoreload.nvim", opts = {}, -- make sure setup is called with defaults @@ -44,13 +62,8 @@ require('lazy').setup({ dependencies = { 'kyazdani42/nvim-web-devicons' } }, { -- adds a file explorer similar to vscode - "nvim-neo-tree/neo-tree.nvim", - branch = "v3.x", - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended - "MunifTanjim/nui.nvim", - } + 'nvim-tree/nvim-tree.lua', + dependencies = { 'nvim-tree/nvim-web-devicons' } }, { -- adds diagnostics for files "folke/trouble.nvim", @@ -96,6 +109,7 @@ vim.opt.mouse = 'a' vim.opt.clipboard = 'unnamed' vim.opt.scrolloff = 17 vim.opt.colorcolumn = '80' +vim.opt.signcolumn = 'yes' vim.g.terraform_fmt_on_save = true -- keybindings @@ -103,17 +117,20 @@ local opts = { noremap = true, silent = true } -vim.api.nvim_set_keymap('n', 't', ':Neotree toggle', opts) +vim.api.nvim_set_keymap('n', 'tt', ':NvimTreeToggle', opts) vim.api.nvim_set_keymap('n', 'qqq', ':qall', opts) -vim.api.nvim_set_keymap('n', '', ':Files', opts) +vim.api.nvim_set_keymap('n', '', ':Telescope find_files', opts) vim.api.nvim_set_keymap('n', '/', ':Rg', opts) vim.api.nvim_set_keymap('n', 'v', ':vsplit', opts) vim.api.nvim_set_keymap('n', 'h', ':split', opts) vim.api.nvim_set_keymap('n', 'b', ':Buffers', opts) +vim.api.nvim_set_keymap('n', '', ':bprev', opts) +vim.api.nvim_set_keymap('n', '', ':bnext', opts) vim.api.nvim_set_keymap('t', '', '', opts) vim.api.nvim_set_keymap('n', 'd', ':Trouble diagnostics toggle', opts) vim.api.nvim_set_keymap('n', 'g', ':GitMessenger', opts) +vim.api.nvim_set_keymap('n', 'lg', ':LazyGit', opts) vim.api.nvim_set_keymap('n', 'd', '"_d', opts) vim.api.nvim_set_keymap('v', 'd', '"_d', opts) vim.api.nvim_set_keymap('n', 'c', '"_c', opts) @@ -122,21 +139,49 @@ vim.api.nvim_set_keymap('v', 'c', '"_c', opts) -- plugins setup require("nvim-lsp-installer").setup {} -require("neo-tree").setup { - close_on_open = false, - close_if_last_window = true, - window = { +require('gitsigns').setup() +require('telescope').setup() +require('telescope').load_extension('fzf') +require('ibl').setup() +require('Comment').setup({ + toggler = { line = 'c' }, + opleader = { line = 'c' }, +}) +require('todo-comments').setup() + +require('conform').setup({ + format_on_save = { timeout_ms = 500, lsp_fallback = true }, + formatters_by_ft = { + go = { 'gofmt' }, + python = { 'black' }, + terraform = { 'terraform_fmt' }, + sh = { 'shfmt' }, + json = { 'jq' }, + yaml = { 'prettier' }, + }, +}) + +vim.api.nvim_create_autocmd('BufEnter', { + nested = true, + callback = function() + if #vim.api.nvim_list_wins() == 1 and require('nvim-tree.utils').is_nvim_tree_buf() then + vim.cmd('quit') + end + end +}) + +require('nvim-tree').setup({ + view = { width = 40, - side = "left", - auto_resize = true, - mappings = { - ["o"] = "open" - } + side = 'left', }, - filesystem = { - hijack_netrw_behavior = "open_current" + hijack_netrw = true, + actions = { + open_file = { + quit_on_open = false, + } } -} +}) -- Auto reload files when they change require("autoreload").setup({ @@ -224,4 +269,4 @@ vim.diagnostic.config { underline = true } -vim.cmd('colorscheme murphy') +vim.cmd('colorscheme carbonfox') diff --git a/install-scripts/01-install-packages.sh b/install-scripts/01-install-packages.sh index 8911b90..5a79f9f 100755 --- a/install-scripts/01-install-packages.sh +++ b/install-scripts/01-install-packages.sh @@ -1,6 +1,14 @@ #!/bin/bash set -e # exit on error +exclude() { + PACKAGES=( $(printf '%s\n' "${PACKAGES[@]}" | grep -vxE "$(IFS='|'; echo "$*")") ) +} + +replace() { + PACKAGES=("${PACKAGES[@]/$1/$2}") +} + PACKAGES=( "tmux" "neovim" @@ -9,7 +17,9 @@ PACKAGES=( "curl" "bat" "go" + "eza" "ripgrep" + "lazygit" ) # if MacOS install Homebrew @@ -40,7 +50,8 @@ fi # if debian or ubuntu install if [ -f /etc/debian_version ]; then # replace "go" with "golang" for debian - PACKAGES=("${PACKAGES[@]/go/golang}") + replace go golang + exclude lazygit # install packages export DEBIAN_FRONTEND=noninteractive @@ -62,12 +73,14 @@ fi # if RHEL/CentOS/Fedora install if [ -f /etc/redhat-release ]; then + exclude curl lazygit + # install packages sudo dnf install -y "${PACKAGES[@]}" fi # if Gentoo if [ -f /etc/gentoo-release ]; then - PACKAGES=("${PACKAGES[@]/git/dev-vcs\/git}") + replace git dev-vcs/git sudo emerge "${PACKAGES[@]}" -fi \ No newline at end of file +fi