diff --git a/desktop-config.sh b/desktop-config.sh index d283195..6ed250b 100644 --- a/desktop-config.sh +++ b/desktop-config.sh @@ -3,7 +3,11 @@ cp -r $(pwd)/home/.gitconfig ~ cp -r $(pwd)/home/.p10k.zsh ~ cp -r $(pwd)/home/.zsh ~ cp -r $(pwd)/home/.wakeonlan ~ +cp -r $(pwd)/home/.vimrc ~ +rm ~/.zshrc-very-old +mv ~/.zshrc-old ~/.zshrc-very-old +mv ~/.zshrc ~/.zshrc-old ln ~/.zsh/zshrc ~/.zshrc cp -r $(pwd)/etc/* /etc diff --git a/home/.configs/nvim/init.vim b/home/.configs/nvim/init.vim new file mode 100644 index 0000000..3837ae2 --- /dev/null +++ b/home/.configs/nvim/init.vim @@ -0,0 +1,302 @@ +syntax on " syntax highlighting +set nocompatible " disable compatibility to old-time vi +set showmatch " show matching +set ignorecase " case insensitive +set mouse=v " middle-click paste with +set hlsearch " highlight search +set incsearch " incremental search +set tabstop=4 " number of columns occupied by a tab +set softtabstop=4 " see multiple spaces as tabstops so does the right thing +set expandtab " converts tabs to white space +set shiftwidth=4 " width for autoindents +set autoindent " indent a new line the same amount as the line just typed +set number " add line numbers +set wildmode=longest,list " get bash-like tab completions +set cc=110 " set an 80 column border for good coding style +filetype plugin indent on "allow auto-indenting depending on file type +syntax on " syntax highlighting +set mouse=a " enable mouse click +filetype plugin on +set cursorline " highlight current cursorline +set ttyfast " Speed up scrolling in Vim +set fdm=syntax " foldingmethod syntax +set spell " enable spell check (may need to download language package) +" set noswapfile " disable creating swap file +" set backupdir=~/.cache/vim " Directory to store backup files. + +" colorscheme base16-default-dark + +" let g:indentLine_setColors = 0 +let g:indentLine_char = '│' + +call plug#begin() + +Plug 'lambdalisue/suda.vim' +Plug 'preservim/nerdcommenter' +Plug 'mhinz/vim-startify' +Plug 'neoclide/coc.nvim', {'branch': 'release'} +Plug 'nvim-tree/nvim-tree.lua' +Plug 'psliwka/vim-smoothie' " scorll with STRG + d or STRG + u +Plug 'nvim-lualine/lualine.nvim' " nicer status line +Plug 'neovim/nvim-lspconfig' " lsp config for easy setup of LSP +Plug 'romgrk/barbar.nvim' " tabs for buffers +Plug 'EdenEast/nightfox.nvim' " Vim-Plug +"Plug 'Yggdroot/indentLine' +Plug 'numToStr/FTerm.nvim' " floating terminal, toggle with +Plug 'kdheepak/lazygit.nvim' +Plug 'hrsh7th/cmp-nvim-lsp' +Plug 'goolord/alpha-nvim' +Plug 'hrsh7th/cmp-buffer' +Plug 'hrsh7th/cmp-path' +Plug 'hrsh7th/cmp-cmdline' +Plug 'hrsh7th/nvim-cmp' +Plug 'nvim-tree/nvim-web-devicons' +Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } +Plug 'junegunn/fzf.vim' + +call plug#end() + +" Use and to navigate through popup menu" +inoremap pumvisible() ? "\" : "\" +inoremap pumvisible() ? "\" : "\" + +" Set completeopt to have a better completion experience" +set completeopt=menuone,noinsert,noselect + +" Avoid showing message extra message when using completion" +set shortmess+=c + + +" hit f3 to toggle search highlighting" +nnoremap :set hlsearch! + +" is a variable that is by default '/' and is supposed to be +" used before user made mappings as it seems. It can be changed to +" whatever i want. +" + +" clipboard copy paste +" " Copy to clipboard +vnoremap y "+y +nnoremap Y "+yg_ +nnoremap y "+y +nnoremap yy "+yy + +" " Paste from clipboard +"nnoremap p "+p +"nnoremap P "+P +"vnoremap p "+p +"vnoremap P "+P + +" vsplit with , then " +map " :vsplit + +" split with , then %" +map % :split + +" :W to save file as root" +command W :SudaWrite + +" :E to open file as root" +command E :SudaRead + +" Open NvimTree with f5" +nnoremap :NvimTreeToggle + +" Move to previous/next" +nnoremap BufferPrevious +nnoremap BufferNext +" Re-order to previous/next" +nnoremap BufferMovePrevious +nnoremap > BufferMoveNext +" Goto buffer in position..." +nnoremap BufferGoto 1 +nnoremap BufferGoto 2 +nnoremap BufferGoto 3 +nnoremap BufferGoto 4 +nnoremap BufferGoto 5 +nnoremap BufferGoto 6 +nnoremap BufferGoto 7 +nnoremap BufferGoto 8 +nnoremap BufferGoto 9 +nnoremap BufferLast +" Pin/unpin buffer" +nnoremap BufferPin +" Close buffer" +nnoremap BufferClose +" Wipeout buffer +" :BufferWipeout +" Close commands +" :BufferCloseAllButCurrent +" :BufferCloseAllButVisible +" :BufferCloseAllButPinned +" :BufferCloseAllButCurrentOrPinned +" :BufferCloseBuffersLeft +" :BufferCloseBuffersRight +" Magic buffer-picking mode +nnoremap BufferPick +" Sort automatically by..." +nnoremap bb BufferOrderByBufferNumber +nnoremap bd BufferOrderByDirectory +nnoremap bl BufferOrderByLanguage +nnoremap bw BufferOrderByWindowNumber + +" Other: +" :BarbarEnable - enables barbar (enabled by default) +" :BarbarDisable - very bad command, should never be used +" +nnoremap :terminal + +" packages" +packadd termdebug + +color carbonfox + +let g:lazygit_floating_window_winblend = 0 " transparency of floating window +let g:lazygit_floating_window_scaling_factor = 0.9 " scaling factor for floating window +let g:lazygit_floating_window_corner_chars = ['╭', '╮', '╰', '╯'] " customize lazygit popup window corner characters +let g:lazygit_floating_window_use_plenary = 0 " use plenary.nvim to manage floating window if available +let g:lazygit_use_neovim_remote = 1 " fallback to 0 if neovim-remote is not installed + +let g:lazygit_use_custom_config_file_path = 0 " config file path is evaluated if this value is 1 +let g:lazygit_config_file_path = '' " custom config file path + +" setup mapping to call :LazyGit +nnoremap gg :LazyGit + +"------------------------------------------------------ +lua << END +require('alpha').setup(require('alpha.themes.startify').config) + +-- disable netrw at the very start of your init.lua (strongly advised) +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 + +-- set termguicolors to enable highlight groups +vim.opt.termguicolors = true + +-- empty setup using defaults +require("nvim-tree").setup() + +require'lspconfig'.clangd.setup{} +require'lspconfig'.rust_analyzer.setup{} + +require('lualine').setup { + options = { + icons_enabled = true, + theme = 'auto', + component_separators = { left = '', right = ''}, + section_separators = { left = '', right = ''}, + disabled_filetypes = { + statusline = {}, + winbar = {}, + }, + ignore_focus = {}, + always_divide_middle = true, + globalstatus = false, + refresh = { + statusline = 1000, + tabline = 1000, + winbar = 1000, + } + }, + sections = { + lualine_a = {'mode'}, + lualine_b = {'branch', 'diff', 'diagnostics'}, + lualine_c = {'filename'}, + lualine_d = {'diagnostics'}, + + + lualine_x = {'encoding', 'fileformat', 'filetype', 'filesize'}, + lualine_y = {'progress'}, + lualine_z = {'location'} + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = {'filename'}, + lualine_x = {'location'}, + lualine_y = {}, + lualine_z = {} + }, + tabline = {}, + winbar = {}, + inactive_winbar = {}, + extensions = {} +} + +require'FTerm'.setup({ +border = 'single', +dimensions = { + height = 0.9, + width = 0.9, + }, +}) + +-- Set up nvim-cmp. +local cmp = require'cmp' + +cmp.setup({ +snippet = { + -- REQUIRED - you must specify a snippet engine + expand = function(args) + vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. + -- require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + -- require('snippy').expand_snippet(args.body) -- For `snippy` users. + -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. + end, + }, + window = { + -- completion = cmp.config.window.bordered(), + -- documentation = cmp.config.window.bordered(), + }, + 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 = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'vsnip' }, -- For vsnip users. + -- { name = 'luasnip' }, -- For luasnip users. + -- { name = 'ultisnips' }, -- For ultisnips users. + -- { name = 'snippy' }, -- For snippy users. + }, { + { name = 'buffer' }, + }) + }) + +-- Set configuration for specific filetype. +cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources({ + { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it. + }, { + { name = 'buffer' }, + }) + }) + +-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline({ '/', '?' }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } + } + }) + +-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' } + }, { + { name = 'cmdline' } + }) + }) + +-- Example keybindings +vim.keymap.set('n', '', 'lua require("FTerm").toggle()') +vim.keymap.set('t', '', 'lua require("FTerm").toggle()') + +END diff --git a/home/.vimrc b/home/.vimrc new file mode 100644 index 0000000..106507e --- /dev/null +++ b/home/.vimrc @@ -0,0 +1,22 @@ +syntax on + +set mouse=v +"set clipboard=unnamedplus +set number +set nocompatible + +" set timeout to wait for shortcuts with a prefix +set timeout timeoutlen=200 +noremap oo o +noremap OO O + +" F3 to toggle highlight. +let hlstate=0 +nnoremap :if (hlstate%2 == 0) \| nohlsearch \| else \| set hlsearch \| endif \| let hlstate=hlstate+1 + +let mapleader = " " " map leader to space +" copy to system clipboard when leader is used. (note, install gvim for this) +noremap y "+y +noremap yy "+yy +noremap p "+p +noremap P "+P diff --git a/server-config.sh b/server-config.sh new file mode 100644 index 0000000..b4e1696 --- /dev/null +++ b/server-config.sh @@ -0,0 +1,11 @@ +#!/bin/bash +cp -r $(pwd)/home/.zsh-server ~ +cp -r $(pwd)/home/.vimrc ~ + +rm ~/.zshrc-very-old +mv ~/.zshrc-old ~/.zshrc-very-old +mv ~/.zshrc ~/.zshrc-old +ln ~/.zsh-server/zshrc ~/.zshrc + +cp -r $(pwd)/etc/* /etc +cp -r $(pwd)/usr/* /usr