diff --git a/dotfiles/.vimrc b/dotfiles/.vimrc index 8f76b6c..63e35f5 100644 --- a/dotfiles/.vimrc +++ b/dotfiles/.vimrc @@ -1,96 +1,95 @@ syntax on -set laststatus=2 "enable status bar -set number "turn on line numbers -set colorcolumn=80 "set color column on col 80 +set laststatus=2 +set number +set colorcolumn=80 set tw=80 set shiftwidth=4 set tabstop=4 -set autoindent "auto indents code -set smartindent "smart indents code -set hlsearch "highlight search -set smartcase "set search case based on search query -set noerrorbells "no error bells -set title "set title of vim based on file open -set mouse=a " enable mouse in vim -set nospell +set autoindent +set smartindent +set hlsearch +set smartcase +set ignorecase +set noerrorbells +set title +set mouse=a +set relativenumber +set splitright +set expandtab +set cursorline +set scrolloff=8 +set sidescrolloff=8 +" show candidates for vim commands with tab +set wildmenu set encoding=UTF-8 set guifont=FiraCode\ Nerd\ Font\ 18 +" lsp handled by coc +let g:ale_disable_lsp = 1 + call plug#begin('~/.vim/plugged') -Plug 'preservim/nerdtree' | Plug 'Xuyuanp/nerdtree-git-plugin' - -" Plug 'valloric/youcompleteme' - -Plug 'tabnine/YouCompleteMe' - -Plug 'sheerun/vim-polyglot' - -Plug 'vim-scripts/SQLUtilities' - -Plug 'itchyny/vim-gitbranch' - -Plug 'ap/vim-css-color' - -Plug 'wakatime/vim-wakatime' - -Plug 'itchyny/lightline.vim' - -Plug 'prettier/vim-prettier', { 'do': 'yarn install' } - -Plug 'jiangmiao/auto-pairs' - Plug 'mhinz/vim-startify' - -Plug 'alvan/vim-closetag' - -Plug 'MathSquared/vim-python-sql' - -Plug 'MaxMEllon/vim-jsx-pretty' - -Plug 'tpope/vim-commentary' - -Plug 'dense-analysis/ale' - -Plug 'shime/vim-livedown' - -Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } - -Plug '~/.fzf' - -Plug 'tpope/vim-fugitive' - Plug 'kristijanhusak/vim-carbon-now-sh' - -Plug 'prabirshrestha/vim-lsp' - +Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } +Plug 'junegunn/fzf.vim' Plug 'ryanoasis/vim-devicons' - - -Plug 'morhetz/gruvbox' -Plug 'dracula/vim', { 'as': 'dracula' } +Plug 'tpope/vim-fugitive' +Plug 'pechorin/any-jump.vim' +Plug 'tpope/vim-commentary' +Plug 'shime/vim-livedown' +Plug 'jiangmiao/auto-pairs' +Plug 'alvan/vim-closetag' +Plug 'MaxMEllon/vim-jsx-pretty' +Plug 'ap/vim-css-color' +Plug 'itchyny/lightline.vim' +Plug 'wakatime/vim-wakatime' +Plug 'itchyny/vim-gitbranch' +Plug 'preservim/nerdtree' | Plug 'Xuyuanp/nerdtree-git-plugin' +Plug 'prettier/vim-prettier', { 'do': 'yarn install' } +Plug 'sheerun/vim-polyglot' +Plug 'dense-analysis/ale' +Plug 'neoclide/coc.nvim', {'branch': 'release'} +Plug 'maximbaz/lightline-ale' +" On-demand lazy load +Plug 'liuchengxu/vim-which-key', { 'on': ['WhichKey', 'WhichKey!'] } +" colorschemes Plug 'joshdick/onedark.vim' Plug 'kaicataldo/material.vim', { 'branch': 'main' } +Plug 'sainnhe/sonokai' Plug 'romgrk/doom-one.vim' +Plug 'dracula/vim', { 'as': 'dracula' } call plug#end() -let g:doom_one_terminal_colors = v:true - +"------------------------------------------------------------------------------ +" Carbon Now +"------------------------------------------------------------------------------ " carbon now " let g:carbon_now_sh_base_url = 'http://localhost:8888' let g:carbon_now_sh_browser = 'firefox' - "jump to remembered position in file if available if has("autocmd") au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif endif +"------------------------------------------------------------------------------ "fzf -" +"------------------------------------------------------------------------------ " This is the default extra key bindings +let g:fzf_commands_expect = 'ctrl-enter' +let g:fzf_buffers_jump = 1 +let g:fzf_tags_command = 'ctags -R' +" This is the default option: +" - Preview window on the right with 50% width +" - CTRL-/ will toggle preview window. +" - Note that this array is passed as arguments to fzf#vim#with_preview function. +" - To learn more about preview window options, see `--preview-window` section of `man fzf`. +let g:fzf_preview_window = ['right:50%', 'ctrl-/'] +let g:fzf_layout = { 'window': { 'width': 0.8, 'height': 0.75 } } + let g:fzf_action = { \ 'ctrl-t': 'tab split', \ 'ctrl-x': 'split', @@ -109,10 +108,6 @@ let g:fzf_action = { \ 'ctrl-x': 'split', \ 'ctrl-v': 'vsplit' } -"Center of screen and popup -let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } } - - " Customize fzf colors to match your color scheme " - fzf#wrap translates this to a set of `--color` options let g:fzf_colors = @@ -136,7 +131,9 @@ let g:fzf_colors = " 'previous-history' instead of 'down' and 'up'. let g:fzf_history_dir = '~/.local/share/fzf-history' +"------------------------------------------------------------------------------ "livedown +"------------------------------------------------------------------------------ " should markdown preview get shown automatically upon opening markdown buffer let g:livedown_autorun = 0 " should the browser window pop-up upon previewing @@ -146,6 +143,9 @@ let g:livedown_port = 3001 " the browser to use, can also be firefox, chrome or other, depending on your executable let g:livedown_browser = "firefox" +"------------------------------------------------------------------------------ +"ale +"------------------------------------------------------------------------------ function! FormatShell(buffer) abort return { \ 'command': 'shfmt -i=0 -ci -sr' @@ -154,7 +154,6 @@ endfunction execute ale#fix#registry#Add('shfmt', 'FormatShell', ['sh'], 'shfmt for shell') -"ale let g:ale_linter_aliases = {'javascriptreact': ['css', 'javascript'], 'typescriptreact': ['css', 'javascript']} let g:ale_linters = {'javascriptreact': ['css', 'javascript'], 'typescriptreact': ['css', 'javascript'], 'python': ['pylint','pycodestyle', 'pydocstyle'], 'sh': ['shellcheck']} " Fix files with prettier, and then ESLint. @@ -163,7 +162,9 @@ let g:ale_fixers = {'*': ['remove_trailing_lines', 'trim_whitespace'], 'javascri let g:ale_fix_on_save = 1 let g:ale_virtualenv_dir_names = ['env'] +"------------------------------------------------------------------------------ "vim-closetag +"------------------------------------------------------------------------------ " filenames like *.xml, *.html, *.xhtml, ... " These are the file extensions where this plugin is enabled. let g:closetag_filenames = '*.html,*.xhtml,*.phtml,*.js,*.ts,*.jsx,*.tsx' @@ -195,7 +196,9 @@ let g:closetag_regions = { \ 'javascript.jsx': 'jsxRegion', \ } - +"------------------------------------------------------------------------------ +" YOUCOMPLETEME (replaced with coc) +"------------------------------------------------------------------------------ let g:ycm_autoclose_preview_window_after_insertion = 1 "close ycm help window after accepting option let g:ycm_language_server = \ [ @@ -212,6 +215,9 @@ let g:ycm_language_server = \ ] let g:ycm_autoclose_preview_window_after_completion = 1 +"------------------------------------------------------------------------------ +" WAKATIME +"------------------------------------------------------------------------------ let g:wakatime_PythonBinary = '/usr/bin/python' " (Default: 'python') let g:wakatime_OverrideCommandPrefix = '/usr/bin/wakatime' " (Default: '') @@ -220,13 +226,14 @@ let vim_markdown_preview_github=1 let vim_markdown_preview_toggle=1 let vim_markdown_preview_temp_file=0 +"------------------------------------------------------------------------------ "NERDTREE -"autocmd vimenter * NERDTree "launch nerdtree on vim start +"------------------------------------------------------------------------------ autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif let g:NERDTreeWinPos = "right" "open nerdtree on the right let NERDTreeShowHidden=0 "show hidden files use capital 'I' to toggle +let g:NERDTreeWinSize=45 "autocmd VimEnter * wincmd p "put the cursor back into the editing pane on start - let g:NERDTreeGitStatusIndicatorMapCustom = { \ 'Modified' :'✹', \ 'Staged' :'✚', @@ -244,14 +251,11 @@ let g:NERDTreeGitStatusUseNerdFonts = 1 autocmd BufEnter * if bufname('#') =~# "^NERD_tree_" && winnr('$') > 1 | b# | endif "avoid crashes when calling vim-plug functions while the cursor is on the NERDTree window let g:plug_window = 'noautocmd vertical topleft new' - " NERDTress File highlighting function! NERDTreeHighlightFile(extension, fg, bg, guifg, guibg) exec 'autocmd filetype nerdtree highlight ' . a:extension .' ctermbg='. a:bg .' ctermfg='. a:fg .' guibg='. a:guibg .' guifg='. a:guifg exec 'autocmd filetype nerdtree syn match ' . a:extension .' #^\s\+.*'. a:extension .'$#' endfunction - - "NERDTree hilight files by extension call NERDTreeHighlightFile('jade', 'green', 'none', 'green', '#282c34') call NERDTreeHighlightFile('ini', 'yellow', 'none', 'yellow', '#282c34') @@ -271,7 +275,6 @@ call NERDTreeHighlightFile('php', 'Magenta', 'none', '#ff00ff', '#282c34') call NERDTreeHighlightFile('cpp', 'blue', 'none', 'blue', '#282c34') call NERDTreeHighlightFile('h', 'cyan', 'none', 'cyan', '#282c34') call NERDTreeHighlightFile('txt', 'blue', 'none', 'red', '#282c34') - let g:NERDTreeColorMapCustom = { \ "Modified" : ["#528AB3", "NONE", "NONE", "NONE"], \ "Staged" : ["#538B54", "NONE", "NONE", "NONE"], @@ -280,37 +283,64 @@ let g:NERDTreeColorMapCustom = { \ "Clean" : ["#87939A", "NONE", "NONE", "NONE"] \ } +"------------------------------------------------------------------------------ "PRETTIER +"------------------------------------------------------------------------------ packloadall "enable prettier let g:prettier#autoformat = 1 let g:prettier#autoformat_require_pragma = 0 let g:prettier#exec_cmd_path = "/usr/bin/prettier" -"LIGHTLINE -" 'onedark', 'material', 'darcula' -let g:lightline = { - \ 'colorscheme': 'deus', - \ 'active': { - \ 'left': [ [ 'mode', 'paste' ], - \ [ 'fugitive', 'filename' ] ], - \ 'right': [ [ 'lineinfo' ], - \ [ 'percent' ], - \ [ 'charvaluehex', 'fileformat', 'fileencoding', 'filetype' ] ] - \ }, - \ 'component_function': { +"------------------------------------------------------------------------------ +" Lightline +"------------------------------------------------------------------------------ +let g:lightline = {} +" 'one', 'material', 'darcula', 'deus' +let g:lightline.colorscheme = "deus" +let g:lightline.component_function = { \ 'fugitive': 'MyFugitive', \ 'readonly': 'Readonly', \ 'modified': 'Modified', - \ 'filename': 'Filename' - \ - \ }, - \ 'component': { - \ 'charhexvalue': '0x%B' - \ }, - \ 'separator': { 'left': "\ue0b0", 'right': "\ue0b2" }, - \ 'subseparator': { 'left': "\ue0b1", 'right': "\ue0b3" } + \ 'filename': 'Filename', + \ 'cocstatus': 'coc#status', + \} + +let g:lightline.component = { 'charhexvalue': '0x%B' } +let g:lightline.separator = { 'left': "\ue0b0", 'right': "\ue0b2" } +let g:lightline.subseparator = { 'left': "\ue0b1", 'right': "\ue0b3" } + +let g:lightline.component_expand = { + \ 'linter_checking': 'lightline#ale#checking', + \ 'linter_infos': 'lightline#ale#infos', + \ 'linter_warnings': 'lightline#ale#warnings', + \ 'linter_errors': 'lightline#ale#errors', + \ 'linter_ok': 'lightline#ale#ok', \ } +let g:lightline.component_type = { + \ 'linter_checking': 'right', + \ 'linter_infos': 'right', + \ 'linter_warnings': 'warning', + \ 'linter_errors': 'error', + \ 'linter_ok': 'right', + \ } + +let g:lightline.active = { + \ 'left': [ [ 'mode', 'paste' ], + \ [ 'cocstatus', 'fugitive', 'filename' ] ], + \ 'right': [ [ 'linter_checking', 'linter_errors', 'linter_warnings', 'linter_infos', 'linter_ok' ], + \ [ 'lineinfo' ], + \ [ 'percent' ], + \ [ 'fileformat', 'fileencoding', 'filetype'] ] } + +let g:lightline#ale#indicator_checking = "\uf110 " +let g:lightline#ale#indicator_infos = "\uf129 " +let g:lightline#ale#indicator_warnings = "\uf071 " +let g:lightline#ale#indicator_errors = "\uf05e " +let g:lightline#ale#indicator_ok = "\uf00c " + +" Use autocmd to force lightline update. +autocmd User CocStatusChange,CocDiagnosticChange call lightline#update() function! Modified() if &filetype == "help" return "" @@ -344,35 +374,27 @@ function! Filename() \ ('' != Modified() ? ' ' . Modified() : '') endfunction +"------------------------------------------------------------------------------ "COLORSCHEME -if !has('gui_running') - set t_Co=256 -endif - - +"------------------------------------------------------------------------------ +set t_Co=256 +set termguicolors set noshowmode "disable default vim insert text at bottom let g:onedark_termcolors=256 "enable 256 colors -" packadd! onedark.vim "add onedark colorcheme may not work " colorscheme onedark "set colorsheme as onedark - "material theme " let g:material_theme_style = 'default' | 'palenight' | 'ocean' | 'lighter' | 'darker' | 'default-community' | 'palenight-community' | 'ocean-community' | 'lighter-community' | 'darker-community' let g:material_terminal_italics = 1 let g:material_theme_style = 'darker' -" let g:material_theme_style = 'default' +" let g:material_theme_style = 'darker-community' colorscheme material +let g:doom_one_terminal_colors = v:true +" colorscheme doom-one -"Tokyo night conifg -let g:tokyonight_style='night' -let g:tokyonight_transparent_background=1 -let g:tokyonight_enable_italic=1 - -"let g:molokai_original = 1 -let g:rehash256 = 1 - - -"bash language server +"------------------------------------------------------------------------------ +"""bash language server +"------------------------------------------------------------------------------ if executable('bash-language-server') au User lsp_setup call lsp#register_server({ \ 'name': 'bash-language-server', @@ -381,15 +403,180 @@ if executable('bash-language-server') \ }) endif +"------------------------------------------------------------------------------ +" NICE COC +"------------------------------------------------------------------------------ +set hidden +set nobackup +set nowritebackup +set cmdheight=2 +set updatetime=300 +" Don't pass messages to |ins-completion-menu|. +set shortmess+=c +" Always show the signcolumn, otherwise it would shift the text each time +" diagnostics appear/become resolved. +if has("nvim-0.5.0") || has("patch-8.1.1564") + " Recently vim can merge signcolumn and number column into one + set signcolumn=number +else + set signcolumn=yes +endif +inoremap + \ pumvisible() ? "\" : + \ check_back_space() ? "\" : + \ coc#refresh() +inoremap pumvisible() ? "\" : "\" +function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction +" Use to trigger completion. +if has('nvim') + inoremap coc#refresh() +else + inoremap coc#refresh() +endif +" Make auto-select the first completion item and notify coc.nvim to +" format on enter, could be remapped by other vim plugin +inoremap pumvisible() ? coc#_select_confirm() + \: "\u\\=coc#on_enter()\" +nmap [g (coc-diagnostic-prev) +nmap ]g (coc-diagnostic-next) +" GoTo code navigation. +nmap gd (coc-definition) +nmap gy (coc-type-definition) +nmap gi (coc-implementation) +nmap gr (coc-references) +" Use K to show documentation in preview window. +nnoremap K :call show_documentation() +function! s:show_documentation() + if (index(['vim','help'], &filetype) >= 0) + execute 'h '.expand('') + elseif (coc#rpc#ready()) + call CocActionAsync('doHover') + else + execute '!' . &keywordprg . " " . expand('') + endif +endfunction +" Highlight the symbol and its references when holding the cursor. +autocmd CursorHold * silent call CocActionAsync('highlight') +" Symbol renaming. +nmap rn (coc-rename) +" Formatting selected code. +xmap f (coc-format-selected) +nmap f (coc-format-selected) +augroup mygroup + autocmd! + " Setup formatexpr specified filetype(s). + autocmd FileType typescript,json,python,py,sh,bash setl formatexpr=CocAction('formatSelected') + " Update signature help on jump placeholder. + autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') +augroup end +" Applying codeAction to the selected region. +" Example: `aap` for current paragraph +xmap a (coc-codeaction-selected) +nmap a (coc-codeaction-selected) +" Remap keys for applying codeAction to the current buffer. +nmap ac (coc-codeaction) +" Apply AutoFix to problem on the current line. +nmap qf (coc-fix-current) +" Run the Code Lens action on the current line. +nmap cl (coc-codelens-action) +" Map function and class text objects +" NOTE: Requires 'textDocument.documentSymbol' support from the language server. +xmap if (coc-funcobj-i) +omap if (coc-funcobj-i) +xmap af (coc-funcobj-a) +omap af (coc-funcobj-a) +xmap ic (coc-classobj-i) +omap ic (coc-classobj-i) +xmap ac (coc-classobj-a) +omap ac (coc-classobj-a) +" Remap and for scroll float windows/popups. +if has('nvim-0.4.0') || has('patch-8.2.0750') + nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" +endif +" Use CTRL-S for selections ranges. +" Requires 'textDocument/selectionRange' support of language server. +nmap (coc-range-select) +xmap (coc-range-select) +" Add `:Format` command to format current buffer. +command! -nargs=0 Format :call CocActionAsync('format') +" Add `:Fold` command to fold current buffer. +command! -nargs=? Fold :call CocAction('fold', ) +" Add `:OR` command for organize imports of the current buffer. +command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') +" Add (Neo)Vim's native statusline support. +" NOTE: Please see `:h coc-status` for integrations with external plugins that +" provide custom statusline: lightline.vim, vim-airline. +set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} +" Mappings for CoCList +" Show all diagnostics. +nnoremap a :CocList diagnostics +" Manage extensions. +nnoremap e :CocList extensions +" Show commands. +nnoremap c :CocList commands +" Find symbol of current document. +nnoremap o :CocList outline +" Search workspace symbols. +nnoremap s :CocList -I symbols +" Do default action for next item. +nnoremap j :CocNext +" Do default action for previous item. +nnoremap k :CocPrev +" Resume latest coc list. +nnoremap p :CocListResume + +"------------------------------------------------------------------------------ +" custom commands +"------------------------------------------------------------------------------ +command! Reload execute "source ~/.vimrc" +command! Config execute ":e ~/.vimrc" +"------------------------------------------------------------------------------ "KEYBINDINGS -map :nohls -map :NERDTreeToggle -map :NERDTreeToggle -map (Prettier) -map :nohls +"------------------------------------------------------------------------------ +let mapleader = "\" map :! -map :ter++close -map :YcmShowDetailedDiagnostic +map :NERDTreeToggle map :LivedownToggle -map :FZF ~ +nnoremap :wa:vertical botright term ++kill=term +" fzf +nmap // :CocCommand fzf-preview.Lines +nmap ?? :CocCommand fzf-preview.BufferLines +nmap sf :FZF +" buffers +nmap bb :CocCommand fzf-preview.Buffers +nmap bB :CocCommand fzf-preview.AllBuffers +nmap bk :bdelete +nmap bn :enew +" git +nmap gg :tab term ++close lazygit +nmap gc :CocCommand fzf-preview.GitLogs +nmap gf :CocCommand fzf-preview.GitFiles +nmap gs :CocCommand fzf-preview.GitStatus +" help +nmap hc :CocCommand fzf-preview.CommandPalette +nmap hk :Maps +" any jump plugin +nmap j :AnyJump +" toggle/open +nmap on :NERDTreeToggle +nmap ot :vertical botright ter +" peek/preview +nmap pr :CocCommand fzf-preview.CocReferences +nmap pi :CocCommand fzf-preview.CocImplementations +nmap pd :CocCommand fzf-preview.CocDiagnostics +" search +nmap sc :nohls +"toggle coc outline +nmap to :CocOutline +"which key +set timeoutlen=400 +nnoremap :WhichKey '' diff --git a/dotfiles/.zshrc b/dotfiles/.zshrc index d47d7bb..0d0139c 100644 --- a/dotfiles/.zshrc +++ b/dotfiles/.zshrc @@ -10,12 +10,13 @@ fi #If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:/usr/local/bin:$PATH -export ZSH="/home/sudacode/.oh-my-zsh" +export ZSH="$HOME/.oh-my-zsh" export PATH="$HOME/scripts:$PATH" export PATH="$HOME/Work/scripts:$PATH" export PATH="$HOME/Work/rofi/:$PATH" export PATH="$HOME/.bin:$PATH" export PATH="$HOME/Projects/Python/Sudasong/src/:$PATH" +export PATH="$HOME/.local/bin:$PATH" export EDITOR=vim export VISUAL=vim @@ -223,29 +224,29 @@ PS2="===>" # # Add gem to PATH # export PATH=$PATH:/home/sudacode/.gem/ruby/2.7.0/bin -# +# # # Add go to PATH # export PATH=$PATH:/home/sudacode/go/bin -# +# # alias freud='cd /home/sudacode/' -# +# # # Add yarn to PATH # export PATH="$PATH:`yarn global bin`" -# +# # # set terminal color to 256 color -# export TERM=xterm-256color -# +export TERM=xterm-256color +# # export PATH=$PATH:/home/sudacode/.local/bin -# +# # add emacs to path export PATH=$PATH:/home/sudacode/.emacs.d/bin -# +# #Enable tab completions for flags in colorls source $(dirname $(gem which colorls))/tab_complete.sh -# +# # # add pythno to PATH # export PATH="$PATH:/usr/bin/python" -# +# # # add jdk-8 to path # export PATH="$PATH:/usr/lib/jvm/java-8-openjdk/bin" # export CLASSPATH="$CLASSPATH:/usr/share/java/mariadb-jdbc/mariadb-java-client.jar" @@ -261,7 +262,9 @@ ibus-daemon -drx export VISUAL=vim export XDG_CONFIG_HOME="$HOME/.config" export XDG_CACHE_DIR="$HOME/.cache" -export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" +# export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" + +bindkey '^ ' autosuggest-accept # source the Xmodmap file to get custom keybindings @@ -287,3 +290,10 @@ export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" # # <<< conda initialize <<< # neofetch + +# added by Snowflake SnowSQL installer +export PATH=/home/sudacode/.bin:$PATH + +export SSH_AUTH_SOCK="${XDG_RUNTIME_DIR}/yubikey-agent/yubikey-agent.sock" + +eval $(thefuck --alias) diff --git a/lvim/config.lua b/lvim/config.lua index 6cbc972..f369978 100644 --- a/lvim/config.lua +++ b/lvim/config.lua @@ -2,47 +2,22 @@ lvim.log.level = "warn" lvim.format_on_save = true lvim.colorscheme = "onedarker" - lvim.leader = "space" lvim.keys.normal_mode[""] = ":w" - --- custom settings -local init_custom_options = function() - local custom_options = { - relativenumber = true, - colorcolumn = "80", - scrolloff = 10, - ignorecase = true, - smartcase = true, - } - - for k, v in pairs(custom_options) do - vim.opt[k] = v - end -end -init_custom_options() - lvim.builtin.dashboard.active = true lvim.builtin.terminal.active = true - -- Nvimtree lvim.builtin.nvimtree.setup.view.side = "left" lvim.builtin.nvimtree.show_icons.git = 1 lvim.builtin.nvimtree.hide_dotfiles = 0 - -- Treesitter lvim.builtin.treesitter.highlight.enabled = true lvim.builtin.treesitter.matchup.enable = true lvim.builtin.treesitter.context_commentstring.enable = true - local components = require("lvim.core.lualine.components") - lvim.builtin.lualine.sections.lualine_a = { "mode" } lvim.builtin.lualine.sections.lualine_c = { components.python_env } -lvim.builtin.lualine.sections.lualine_y = { - components.location, -} - +lvim.builtin.lualine.sections.lualine_y = { components.location, } lvim.builtin.treesitter.ensure_installed = { "bash", "c", @@ -55,11 +30,14 @@ lvim.builtin.treesitter.ensure_installed = { "rust", "java", "yaml", + "dockerfile", + "markdown", + "make" } - lvim.builtin.treesitter.ignore_install = { "haskell" } lvim.builtin.treesitter.highlight.enabled = true +-- formatters local formatters = require "lvim.lsp.null-ls.formatters" formatters.setup { { exe = "black", filetypes = { "python" } }, @@ -72,20 +50,21 @@ formatters.setup { { exe = "shfmt", filetypes = { "shell", "sh" }, args = {'-i=0','-sr', '-ci'} }, } --- -- set additional linters +-- linters local linters = require "lvim.lsp.null-ls.linters" linters.setup { { exe = "flake8", filetypes = { "python" } }, { exe = "shellcheck", - fieltypes = { "shell" }, - args = { "--severity", "warning" }, - } + filetypes = { "shell", "sh" }, + args = { "--severity", "warning", "--shell", "/bin/bash", "--enable", "check-unassigned-uppercase,add-default-case,deprecate-which" }, + }, } +-- lsp signature cfg local lsp_signature_cfg = { debug = false, -- set to true to enable debug logging - log_path = vim.fn.stdpath("cache") .. "/lsp_signature.log", -- log dir when debug is on + -- log_path = vim.fn.stdpath("cache") .. "/lsp_signature.log", -- log dir when debug is on -- default is ~/.cache/nvim/lsp_signature.log verbose = false, -- show debug line number @@ -109,7 +88,7 @@ local lsp_signature_cfg = { hi_parameter = "LspSignatureActiveParameter", -- how your parameter will be highlight max_height = 20, -- max height of signature floating_window, if content is more than max_height, you can scroll down -- to view the hiding contents - max_width = 150, -- max_width of signature floating_window, line will be wrapped if exceed max_width + max_width = 120, -- max_width of signature floating_window, line will be wrapped if exceed max_width handler_opts = { border = "rounded" -- double, rounded, single, shadow, none }, @@ -122,11 +101,11 @@ local lsp_signature_cfg = { padding = '', -- character to pad on left and right of signature can be ' ', or '|' etc - transparency = nil, -- disabled by default, allow floating win transparent value 1~100 + transparency = 85, -- disabled by default, allow floating win transparent value 1~100 shadow_blend = 36, -- if you using shadow as border use this set the opacity shadow_guibg = 'Black', -- if you using shadow as border use this set the color e.g. 'Green' or '#121315' timer_interval = 200, -- default timer check interval set to lower value if you want to reduce latency - toggle_key = nil -- toggle signature on and off in insert mode, e.g. toggle_key = '' + toggle_key = '' -- toggle signature on and off in insert mode, e.g. toggle_key = '' } -- Additional Plugins @@ -150,7 +129,7 @@ lvim.plugins = { "rmagatti/goto-preview", config = function() require('goto-preview').setup { - width = 120; -- Width of the floating window + width = 100; -- Width of the floating window height = 25; -- Height of the floating window default_mappings = false; -- Bind default mappings debug = false; -- Print debug information @@ -188,6 +167,8 @@ lvim.plugins = { 'wakatime/vim-wakatime', 'ap/vim-css-color', "p00f/nvim-ts-rainbow", + "tzachar/cmp-tabnine", + "onsails/lspkind-nvim" } -- add jedi_language_server @@ -201,16 +182,96 @@ require'lspconfig'.sqlls.setup{} -- require('lspconfig').bashls.setup{} require'lspconfig'.bashls.setup{} +-- Setup 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, +-- }, +-- mapping = { +-- [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), +-- [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), +-- [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), +-- [''] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. +-- [''] = cmp.mapping({ +-- i = cmp.mapping.abort(), +-- c = cmp.mapping.close(), +-- }), +-- [''] = 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 = 'buffer' }, +-- }) +-- }) + +-- -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). +-- cmp.setup.cmdline('/', { +-- sources = { +-- { name = 'buffer' } +-- } +-- }) + +-- -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +-- cmp.setup.cmdline(':', { +-- sources = cmp.config.sources({ +-- { name = 'path' } +-- }, { +-- { name = 'cmdline' } +-- }) +-- }) + +-- Setup lspconfig. +local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) +-- Replace with each lsp server you've enabled. +require('lspconfig')['jedi_language_server'].setup { + capabilities = capabilities +} +require('lspconfig')['bashls'].setup { + capabilities = capabilities +} +require('lspconfig')['dockerls'].setup { + capabilities = capabilities +} +require('lspconfig')['jsonls'].setup { + capabilities = capabilities +} +require('lspconfig')['sumneko_lua'].setup { + capabilities = capabilities +} +require('lspconfig')['pyright'].setup { + capabilities = capabilities +} +require('lspconfig')['dotls'].setup { + capabilities = capabilities +} +require('lspconfig')['yamlls'].setup { + capabilities = capabilities +} +require('lspconfig')['html'].setup { + capabilities = capabilities +} +require('lspconfig')['eslint'].setup { + capabilities = capabilities +} + -- lsp_signature -require'lsp_signature'.setup() +-- require'lsp_signature'.setup(lsp_signature_cfg) require('goto-preview').setup { - width = 220; -- Width of the floating window - height = 55; -- Height of the floating window + width = 150; -- Width of the floating window + height = 45; -- Height of the floating window border = {"↖", "─" ,"┐", "│", "┘", "─", "└", "│"}; -- Border characters of the floating window default_mappings = true; -- Bind default mappings debug = false; -- Print debug information - opacity = nil; -- 0-100 opacity level of the floating window where 100 is fully transparent. + opacity = 55; -- 0-100 opacity level of the floating window where 100 is fully transparent. resizing_mappings = false; -- Binds arrow keys to resizing the floating window. post_open_hook = nil; -- A function taking two arguments, a buffer and a window to be ran as a hook. -- These two configs can also be passed down to the goto-preview definition and implementation calls for one off "peak" functionality. @@ -227,7 +288,7 @@ vim.g.symbols_outline = { auto_preview = true, position = 'right', relative_width = true, - width = 25, + width = 30, show_numbers = false, show_relative_numbers = false, show_symbol_details = true, @@ -273,89 +334,81 @@ vim.g.symbols_outline = { } } -vim.api.nvim_set_keymap("n", "ss", "SymbolsOutline", {noremap=true}) +-- lsp-kind +local lspkind = require('lspkind') +cmp.setup { + formatting = { + format = lspkind.cmp_format({ + with_text = false, -- do not show text alongside icons + maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters) --- Setup 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, - }, - mapping = { - [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), - [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), - [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), - [''] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. - [''] = cmp.mapping({ - i = cmp.mapping.abort(), - c = cmp.mapping.close(), - }), - [''] = 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 = 'buffer' }, - }) -}) - --- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). -cmp.setup.cmdline('/', { - sources = { - { name = 'buffer' } + -- The function below will be called before any actual modifications from lspkind + -- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30)) + -- before = function (entry, vim_item) + -- ... + -- return vim_item + -- end + }) } -}) - --- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). -cmp.setup.cmdline(':', { - sources = cmp.config.sources({ - { name = 'path' } - }, { - { name = 'cmdline' } - }) -}) - --- Setup lspconfig. -local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) --- Replace with each lsp server you've enabled. -require('lspconfig')['jedi_language_server'].setup { - capabilities = capabilities -} -require('lspconfig')['bashls'].setup { - capabilities = capabilities -} -require('lspconfig')['dockerls'].setup { - capabilities = capabilities -} -require('lspconfig')['jsonls'].setup { - capabilities = capabilities -} -require('lspconfig')['sumneko_lua'].setup { - capabilities = capabilities -} -require('lspconfig')['pyright'].setup { - capabilities = capabilities -} -require('lspconfig')['dotls'].setup { - capabilities = capabilities -} -require('lspconfig')['yamlls'].setup { - capabilities = capabilities -} -require('lspconfig')['html'].setup { - capabilities = capabilities -} -require('lspconfig')['eslint'].setup { - capabilities = capabilities } +-- tabnine +require'cmp'.setup { + sources = { + { name = 'cmp_tabnine' }, + }, +} + +local source_mapping = { + buffer = "[Buffer]", + nvim_lsp = "[LSP]", + nvim_lua = "[Lua]", + cmp_tabnine = "[TN]", + path = "[Path]", +} + +require'cmp'.setup { + sources = { + { name = 'cmp_tabnine' }, + }, + formatting = { + format = function(entry, vim_item) + vim_item.kind = lspkind.presets.default[vim_item.kind] + local menu = source_mapping[entry.source.name] + if entry.source.name == 'cmp_tabnine' then + if entry.completion_item.data ~= nil and entry.completion_item.data.detail ~= nil then + menu = entry.completion_item.data.detail .. ' ' .. menu + end + vim_item.kind = '' + end + vim_item.menu = menu + return vim_item + end + }, +} + +-- custom settings +local init_custom_options = function() + local custom_options = { + relativenumber = true, + colorcolumn = "80", + scrolloff = 10, + ignorecase = true, + smartcase = true, + tabstop = 4, + shiftwidth = 4, + undofile = false, + } + + for k, v in pairs(custom_options) do + vim.opt[k] = v + end +end +init_custom_options() + +-- move windows to right side of screen +vim.cmd("autocmd! BufEnter * if &ft ==# 'help' | wincmd L | endif") +vim.cmd("autocmd! BufEnter * if &ft ==# 'man' | wincmd L | endif") -- Autocommands (https://neovim.io/doc/user/autocmd.html) -- lvim.autocommands.custom_groups = { -- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" }, diff --git a/polybar-themes/sblocks/colors.ini b/polybar-themes/sblocks/colors.ini index a3c750e..2e4c365 100644 --- a/polybar-themes/sblocks/colors.ini +++ b/polybar-themes/sblocks/colors.ini @@ -12,9 +12,10 @@ ;; Use pywal.sh in scripts directory to use colors from an image/wallpaper. ;; main colors -background = #3B4252 +; background = #464b55 +background = "#24282f" ; background-alt = #4C566A -background-alt = "#464b55" +background-alt = #3B4252 foreground = #ECEFF4 ; foreground-alt = #E5E9F0 foreground-alt = "#abb2bf" diff --git a/polybar-themes/sblocks/config.ini b/polybar-themes/sblocks/config.ini index 3073667..df12bde 100644 --- a/polybar-themes/sblocks/config.ini +++ b/polybar-themes/sblocks/config.ini @@ -67,7 +67,7 @@ height = 40 ; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) ; the percentage can optionally be extended with a pixel offset like so: -; 50%:-10, this will result in an offset in the x or y direction +; 50%:-10, this will result in an offset in the x or y direction ; of 50% minus 10 pixels offset-x = 2.5% offset-y = 0% @@ -80,10 +80,10 @@ foreground = ${color.foreground} ; Background gradient (vertical steps) ; background-[0-9]+ = #aarrggbb -;;background-0 = +;;background-0 = ; Value used for drawing rounded corners -; Note: This shouldn't be used together with border-size because the border +; Note: This shouldn't be used together with border-size because the border ; doesn't get rounded ; Individual top/bottom values can be defined using: ; radius-{top,bottom} @@ -145,7 +145,7 @@ font-4 = "Source Han Sans JP:size=8;3" ; modules-center = xwindow xbacklight ; modules-right = ipc clock -modules-left = sep launcher sep i3-workspaces sep chrome flameshot color-picker +modules-left = sep launcher sep bspwm-workspaces sep chrome flameshot color-picker ; modules-left = sep launcher sep bspwm-workspaces sep chrome flameshot color-picker modules-center = title-icon title sep cust-mpd-icon cust-mpd-prev custom-mpd cust-mpd-next ; modules-right = color-switch sep alsa sep battery sep network sep date sep sysmenu sep @@ -163,7 +163,7 @@ dim-value = 1.0 ; If the value is empty or undefined, the atom value ; will be created from the following template: polybar-[BAR]_[MONITOR] ; NOTE: The placeholders are not available for custom values -wm-name = i3 +wm-name = bspwm ; Locale used to localize various module data (e.g. date) ; Expects a valid libc locale, for example: sv_SE.UTF-8 @@ -187,7 +187,7 @@ tray-detached = false ; Tray icon max size tray-maxsize = 24 -; Background color for the tray container +; Background color for the tray container ; ARGB color (e.g. #f00, #ff992a, #ddff1023) ; By default the tray container will use the bar ; background color. @@ -212,7 +212,7 @@ tray-scale = 1.0 ; Currently supported WM's: ; bspwm ; i3 (requires: `override-redirect = true`) -wm-restack = i3 +wm-restack = bspwm ; Set a DPI values used when rendering text ; This only affects scalable fonts @@ -224,8 +224,8 @@ enable-ipc = true ; Fallback click handlers that will be called if ; there's no matching module handler found. -click-left = -click-middle = +click-left = +click-middle = click-right = ; scroll-up = ; scroll-down = @@ -239,7 +239,7 @@ double-click-right = ; - pointer : Typically in the form of a hand ; - ns-resize : Up and down arrows, can be used to indicate scrolling cursor-click = pointer -cursor-scroll = +cursor-scroll = ;; WM Workspace Specific @@ -286,8 +286,8 @@ compositing-underline = over compositing-border = over ; Define fallback values used by all module formats -;format-foreground = -;format-background = +;format-foreground = +;format-background = ;format-underline = ;format-overline = ;format-spacing = diff --git a/ranger/rc.conf b/ranger/rc.conf index 25dbeb0..1952e5d 100644 --- a/ranger/rc.conf +++ b/ranger/rc.conf @@ -114,7 +114,7 @@ set preview_images true # Preview images in full color with the external command "ueberzug". # Images are shown by using a child window. # Only for users who run X11 in GNU/Linux. -set preview_images_method w3m +set preview_images_method ueberzug # Delay in seconds before displaying an image with the w3m method. # Increase it in case of experiencing display corruption. diff --git a/yt-dlp/config b/yt-dlp/config index 42a9d8d..2c2cf1f 100644 --- a/yt-dlp/config +++ b/yt-dlp/config @@ -4,7 +4,7 @@ --embed-subs # Always extract audio --x +# -x # Do not copy the mtime --no-mtime @@ -12,4 +12,3 @@ # Save all videos under YouTube directory in your home directory -o ~/Videos/YouTube/%(title)s.%(ext)s -