diff options
47 files changed, 2202 insertions, 517 deletions
diff --git a/.config/.alacritty.yml b/.config/.alacritty.yml deleted file mode 100644 index 2603373..0000000 --- a/.config/.alacritty.yml +++ /dev/null @@ -1,42 +0,0 @@ -shell: - program: /usr/bin/tmux - args: - - new - -font: - size: 7 - normal: - # family: DejaVuSansMono - # family: UbuntuMono - # style: Nerd - family: FiraMono - style: Normal - -colors: - primary: - background: "0x000000" - foreground: "0xc1c1c1" - - cursor: - text: "0x424242" - cursor: "0x808080" - - normal: - black: "0x080808" - red: "0xaf005f" - green: "0x5faf00" - yellow: "0xf1c40f" - blue: "0x5fafd7" - magenta: "0x808080" - cyan: "0x2ecc71" - white: "0xf2f2f2" - - bright: - black: "0x6a6a6a" - red: "0xe74c3c" - green: "0xafd700" - yellow: "0xf1c40f" - blue: "0xffaf00" - magenta: "0xffaf00" - cyan: "0x00afaf" - white: "0x5f8787" diff --git a/.config/nvim/after/ftdetect/prr.vim b/.config/nvim/after/ftdetect/prr.vim deleted file mode 100644 index 15a474c..0000000 --- a/.config/nvim/after/ftdetect/prr.vim +++ /dev/null @@ -1 +0,0 @@ -au BufNewFile,BufRead *.prr set filetype=prr diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim deleted file mode 100644 index de139f0..0000000 --- a/.config/nvim/init.vim +++ /dev/null @@ -1,233 +0,0 @@ -autocmd! bufwritepost .vimrc source % - -call plug#begin('~/.vim/plugged') - -Plug 'cespare/vim-toml', { 'branch': 'main' } -Plug 'rust-lang/rust.vim' -Plug 'nvim-lua/plenary.nvim' -Plug 'lewis6991/gitsigns.nvim' -Plug 'nvim-lualine/lualine.nvim' -Plug 'kyazdani42/nvim-web-devicons' -Plug 'luochen1990/rainbow' " color parentheses -Plug 'mg979/vim-visual-multi', {'branch': 'master'} -Plug 'tpope/vim-fugitive' " git extension for commit logs and etc. -Plug 'editorconfig/editorconfig-vim' -Plug 'ap/vim-css-color' -Plug 'Yggdroot/indentLine' - -Plug 'google/vim-searchindex' - -Plug 'kazhala/close-buffers.nvim' -Plug 'numToStr/Comment.nvim' - -Plug 'matze/vim-move' - -Plug 'togglebyte/togglerust' " Debug Rust projects - -Plug 'chriskempson/base16-vim' - -if has('nvim') - " Plug 'rktjmp/lush.nvim' - Plug 'dcariotti/gruvbox.nvim' - - Plug 'nvim-telescope/telescope.nvim' - Plug 'neovim/nvim-lspconfig' - - Plug 'hrsh7th/nvim-cmp' - Plug 'hrsh7th/cmp-nvim-lsp' - Plug 'saadparwaiz1/cmp_luasnip' - Plug 'L3MON4D3/LuaSnip' - - " Plug 'ms-jpq/coq_nvim', {'branch': 'coq'} - " Plug 'ms-jpq/coq.artifacts', {'branch': 'artifacts'} - Plug 'kyazdani42/nvim-tree.lua' - Plug 'ray-x/lsp_signature.nvim' - Plug 'folke/todo-comments.nvim' - Plug 'saecki/crates.nvim' - "Plug 'gelguy/wilder.nvim', { 'do': ':UpdateRemotePlugins' } - Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} - - "Plug 'sakhnik/nvim-gdb', { 'do': ':!./install.sh' } - - Plug 'jose-elias-alvarez/null-ls.nvim' - Plug 'folke/trouble.nvim' - Plug 'folke/lsp-colors.nvim' - - - Plug 'sindrets/diffview.nvim' - - Plug 'windwp/nvim-ts-autotag' - - " Used as light theme - Plug 'yorik1984/newpaper.nvim' -endif - - -call plug#end() " required - -syntax on - -set runtimepath+=~/.vim-plugins/LanguageClient-neovim - -set completeopt=menu,menuone,noselect - -set clipboard=unnamed -set mouse=a " click with mouse -set wildmenu -set wildmode=full -set wildignore=*~,*.png,*.jpg,*.gif,Thumbs.db,*.min.js,*.swp,*.o,vendor - -set number " number of the current line -set relativenumber " relative number, ..-2 -1 x 1 2, where x is current line -set textwidth=80 -set colorcolumn=80 -set nowrap -set fo-=t - -set tabstop=4 -set shiftwidth=4 -set expandtab " convert tabs in spaces - -set ai " auto indent -set autoread - -set encoding=UTF-8 -set history=1000 -set wildignore+=*.pyc - -set hlsearch " highlight search -set incsearch - -set nowritebackup -set laststatus=2 - -set list " spaces as characters -set listchars=eol:⏎,tab:»·,trail:ˑ,nbsp:⎵ - -set foldmethod=indent - -set splitright " split on right side -set splitbelow -set lazyredraw -set ttyfast - -set noswapfile - -" rust -" let g:rustfmt_autosave = 1 -" let g:rustfmt_emit_files = 1 -" let g:rustfmt_fail_silently = 0 -" let g:rust_clip_command = 'xclip -selection clipboard' - -set termguicolors -set background=dark - -if has('nvim') - colorscheme gruvbox - - let base16colorspace=256 - colorscheme base16-irblack - - highlight LineNr guibg=NONE - highlight CursorLine guibg=NONE - highlight CursorLineNr guibg=NONE guifg=YELLOW - highlight StatusLine guibg=#111111 guifg=YELLOW - highlight StatusLineNC guibg=NONE guifg=#dddddd - - lua require('git') - let g:coq_settings = { 'auto_start': v:true } - lua require('lsp_conf') - - lua require('nvim-tree').setup({ actions = { open_file = { quit_on_open = true } } }) - lua require('todo-comments').setup() - lua require('crates').setup() - - lua require('nvim-treesitter.configs').setup({ highlight = { enable = true, }, }) - - lua require('lsp-colors').setup() - - lua require('Comment').setup() - - lua require('diffview').setup() - ca do DiffviewOpen - ca dc DiffviewClose - ca dh DiffviewFileHistory - - set cursorline " need for Neovim 0.6 for highlight CursorLineNr -else - colorscheme gruvbox -endif - -" Figure out the system Python for Neovim. -if exists("$VIRTUAL_ENV") - let g:python3_host_prog=substitute(system("which -a python3 | head -n2 | tail -n1"), "\n", '', 'g') -else - let g:python3_host_prog=substitute(system("which python3"), "\n", '', 'g') -endif - -" indentline -let g:indentLine_char = '¦' -let g:vim_json_syntax_conceal = 0 - -let g:netrw_liststyle=1 - -filetype plugin indent on -set nocompatible - -set showcmd " show commands at bottom - -" nvim-tree -nnoremap <C-t> :NvimTreeToggle<CR> - -" vim-move -let g:move_key_modifier = 'C' - -" ------------ -" MAPS -" ----------- -let mapleader = "," - -nnoremap j gj -nnoremap k gk - -nnoremap tn :tabnew<cr> -ca rt RainbowToggle - -nnoremap <leader>xx :TroubleToggle<cr> - -" buffers -nnoremap ]b :bnext<CR> -nnoremap [b :bprev<CR> -nnoremap <leader>b <cmd>Telescope buffers<cr> - -" tabs -nnoremap ]t :tabn<CR> -nnoremap [t :tabp<CR> - -" only one window -nnoremap <leader>o :only<CR> - - -nnoremap <leader>ff <cmd>Telescope find_files<cr> -nnoremap <leader>fg <cmd>Telescope live_grep<cr> -nnoremap <leader>fh <cmd>Telescope help_tags<cr> - -nnoremap <leader>pa :set paste<CR> -nnoremap <leader>npa :set nopaste<CR> - - -nmap <leader>cr :Cargo run<CR> -nmap <F6> :EditorConfigReload<CR> - -if &diff - "Get from remote - nnoremap dr :diffget<Space>RE<CR> - "Get from base - nnoremap db :diffget<Space>BA<CR> - "Get from local - nnoremap dl :diffget<Space>LO<CR> -endif - -packadd termdebug -let g:termdebug_wide = 1 -let g:TermDebugging = 0 diff --git a/.config/nvim/lua/git.lua b/.config/nvim/lua/git.lua deleted file mode 100644 index 987a70e..0000000 --- a/.config/nvim/lua/git.lua +++ /dev/null @@ -1,35 +0,0 @@ -require('gitsigns').setup { - signs = { - -- add = {hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'}, - -- change = {hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, - -- delete = {hl = 'GitSignsDelete', text = '_', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, - -- topdelete = {hl = 'GitSignsDelete', text = '‾', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, - -- changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, - add = {hl = 'GitSignsAdd' , text = '+', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'}, - change = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, - delete = {hl = 'GitSignsDelete', text = '-', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, - topdelete = {hl = 'GitSignsDelete', text = '-', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, - changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, - untracked = {hl = 'GitSignsUntracked' , text = '+', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'}, - }, - keymaps = { - -- Default keymap options - noremap = true, - - ['n ]c'] = { expr = true, "&diff ? ']c' : '<cmd>lua require\"gitsigns.actions\".next_hunk()<CR>'"}, - ['n [c'] = { expr = true, "&diff ? '[c' : '<cmd>lua require\"gitsigns.actions\".prev_hunk()<CR>'"}, - - ['n hs'] = '<cmd>lua require"gitsigns".stage_hunk()<CR>', - ['v hs'] = '<cmd>lua require"gitsigns".stage_hunk({vim.fn.line("."), vim.fn.line("v")})<CR>', - ['n hS'] = '<cmd>lua require"gitsigns".stage_buffer()<CR>', - ['n hu'] = '<cmd>lua require"gitsigns".undo_stage_hunk()<CR>', - ['n hp'] = '<cmd>lua require"gitsigns".preview_hunk()<CR>', - ['n hB'] = '<cmd>lua require"gitsigns".blame_line{full=true}<CR>', - }, - signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` - --numhl = true, -- Toggle with `:Gitsigns toggle_numhl` - watch_gitdir = { - interval = 1000, - follow_files = true - }, -} diff --git a/.config/starship.toml b/.config/starship.toml deleted file mode 100644 index 344b069..0000000 --- a/.config/starship.toml +++ /dev/null @@ -1,23 +0,0 @@ -add_newline = false - -[directory] -truncation_length = 15 -style = "cyan" - -[line_break] -disabled = true - -[custom.docker] -description = "Shows the docker symbol if the current directory has Dockerfile or docker-compose.yml files" -command = "echo 🐳" -files = ["Dockerfile", "docker-compose.yml", "docker-compose.yaml"] -when = """ command -v docker &> /dev/null; exit (echo $?); """ - -[custom.ssh_keys] -description = "SSH key count" -when = "ssh-add -l | grep -v -q 'no identities'" -command = "ssh-add -l | grep -v 'no identities' | wc -l" -format = "$symbol[$output]($style) " -shell = ["bash", "--noprofile", "--norc"] -symbol = "🔑" -style = "bold fg:green" diff --git a/cgit.css b/cgit.css new file mode 100644 index 0000000..298580a --- /dev/null +++ b/cgit.css @@ -0,0 +1,205 @@ +:root { + --bg_h: #1d2021; + --bg: #282828; + --bg_s: #32302f; + --bg1: #3c3836; + --bg2: #504945; + --bg3: #665c54; + --bg4: #7c6f64; + + --fg: #fbf1c7; + --fg1: #ebdbb2; + --fg2: #d5c4a1; + --fg3: #bdae93; + --fg4: #a89984; + + --red: #fb4934; + --green: #b8bb26; + --yellow: #fabd2f; + --blue: #83a598; + --purple: #d3869b; + --aqua: #8ec07c; + --gray: #928374; + --orange: #fe8019; + + --red-dim: #cc2412; + --green-dim: #98971a; + --yellow-dim: #d79921; + --blue-dim: #458588; + --purple-dim: #b16286; + --aqua-dim: #689d6a; + --gray-dim: #a89984; + --orange-dim: #d65d0e; +} + +body, #cgit, .path, div#cgit table.blob td.hashes, +div#cgit table.blob td.lines, div#cgit div.cgit-panel table, +div#cgit table.diffstat { + background: var(--bg) !important; + color: var(--fg) !important; + border: none +} + +a { + color: var(--fg) !important; + text-decoration: underline !important; +} + +select, input { + border: none; + background: var(--bg2); + color: var(--fg); +} + +/**************/ +/*** TABLES ***/ +/**************/ + +div#cgit table.tabs td { + padding-bottom: 1em; + vertical-align: bottom; +} + +div#cgit table.tabs td a { + padding: 2px 0.75em; + color: #aaa; + font-size: 110%; +} +div#cgit table.tabs td a:first-child { + padding: 0; +} + +div#cgit table.tabs td a.active { + background: var(--bg) !important; + color: var(--yellow) !important; +} + +div#cgit table.tabs, div#cgit div.content, +div#cgit table#header td.sub { + border: none; +} +div#cgit table#header td.sub.right{ + display: none; +} +div#cgit table#header td.logo { + width: 96px; + vertical-align: top; +} + +div#cgit table#header td.logo img { + width: 150px; +} + +div#cgit table.list tr.nohover, +div#cgit table.list tr:nth-child(2n) { + background: var(--bg) !important; +} + +div#cgit table.list tr:nth-child(2n+1) { + background: var(--bg_s) !important; +} + +div#cgit table.list tr:hover:not(.nohover) { + background: var(--bg1) !important; +} + +/************/ +/*** CODE ***/ +/************/ +div#cgit table.blob td.linenumbers, +div#cgit table.blob { + border-color: var(--gray); +} + +div#cgit table.blob td.linenumbers a { + color: var(--gray) !important; + text-decoration: none !important; +} + +.markdown-body code, .markdown-body tt, +.markdown-body .highlight pre, .markdown-body pre { + background: var(--bg1) !important; +} + +/************/ +/*** AGES ***/ +/************/ +.age-hours { + color: var(--aqua) !important; +} + +.age-days { + color: var(--aqua-dim) !important; +} + +.age-weeks { + color: var(--fg) !important; +} + +.age-months { + color: var(--fg2) !important; +} + +.age-years { + color: var(--fg4) !important; +} + +/******************/ +/*** DECORATORS ***/ +/******************/ +div#cgit a.branch-deco { + background: var(--aqua); + border: none; + color: var(--bg) !important; + margin-left: 5px; +} + +div#cgit a.deco { + background: var(--yellow); + border: none; + color: var(--bg) !important; +} + +div#cgit a.tag-deco { + background: var(--gray); + border: none; + color: var(--bg) !important; +} + +/************/ +/*** DIFF ***/ +/************/ +div#cgit table.diff td div.hunk { + color: var(--blue); +} + +div#cgit table.diff td div.del { + color: var(--red); +} + +div#cgit table.diff td div.add { + color: var(--green); +} + +div#cgit table.diff td div.ctx { + color: var(--gray); +} + +div#cgit table.diff td div.head { + color: var(--fg); +} + +div#cgit table.diffstat td.graph td.add { + background: var(--green); +} + +div#cgit table.diffstat td.graph td.rem { + background: var(--red); +} +div#cgit .footer { + padding-top: 3em; +} + +div#cgit .path { + padding-bottom: 1em; +} diff --git a/dot_alacritty.toml b/dot_alacritty.toml new file mode 100644 index 0000000..aa44a24 --- /dev/null +++ b/dot_alacritty.toml @@ -0,0 +1,63 @@ +[colors.bright] +black = "#6a6a6a" +blue = "#ffaf00" +cyan = "#00afaf" +green = "#afd700" +magenta = "#ffaf00" +red = "#e74c3c" +white = "#5f8787" +yellow = "#f1c40f" + +[colors.cursor] +cursor = "#808080" +text = "#424242" + +[colors.normal] +black = "#333333" +blue = "#5fafd7" +cyan = "#2ecc71" +green = "#5faf00" +magenta = "#808080" +red = "#af005f" +white = "#f2f2f2" +yellow = "#f1c40f" + +[colors.primary] +background = "#000000" +foreground = "#f1f1f1" + +# [colors.primary] +# background= "#ffffff" +# foreground= "#1F2328" +# +# [colors.normal] +# black= "#24292f" +# red= "#cf222e" +# green= "#116329" +# yellow= "#4d2d00" +# blue= "#0969da" +# magenta= "#8250df" +# cyan= "#1b7c83" +# white= "#6e7781" +# +# [colors.bright] +# black= "#57606a" +# red= "#a40e26" +# green= "#1a7f37" +# yellow= "#633c01" +# blue= "#218bff" +# magenta= "#8250df" +# cyan= "#1b7c83" +# white= "#6e7781" + +[font] +size = 12.5 + +[font.normal] +family = "FiraCodeNerdFont" +style = "Regular" + +[shell] +# args = ["new"] +# program = "/usr/bin/tmux" +program = "/usr/local/bin/zellij" diff --git a/dot_clang-format b/dot_clang-format new file mode 100644 index 0000000..0b87256 --- /dev/null +++ b/dot_clang-format @@ -0,0 +1,10 @@ +--- +AlwaysBreakAfterReturnType: All +BasedOnStyle: Mozilla +IndentWidth: 4 +IndentAccessModifiers: false +AccessModifierOffset: -4 +Standard: Cpp11 +TabWidth: 4 +AlwaysBreakAfterDefinitionReturnType: All +AlignAfterOpenBracket: BlockIndent diff --git a/dot_gitconfig b/dot_gitconfig new file mode 100644 index 0000000..57155d0 --- /dev/null +++ b/dot_gitconfig @@ -0,0 +1,49 @@ +[user] + name = Santo Cariotti + email = santo@dcariotti.me + signingkey = C9B7C8FD3701C2C6 +[alias] + amend = commit --amend --verbose + ci = commit --verbose + co = checkout + cp = cherry-pick + di = diff + dis = diff --staged + fd = "!f() { git log --grep=$1; }; f" + logs = log --graph --branches --remotes --tags --pretty=format':%C(yellow)%h%C(green)%d%Creset %C(cyan)%an <%ae> %Creset%C(white)%aD %C(red)(%ar)\n%s%Creset\n' + st = status +[credential] + helper = store +[core] + editor = nvim + ; pager = bat -n --style=plain + ; pager = delta + excludesFile = ~/.gitignore +[init] + defaultBranch = main +[grep] + lineNumber = true +[color "grep"] + lineNumber = yellow + match = red bold + filename = cyan +[merge] + tool = nvimdiff + conflictstyle = diff3 +[mergetool] + prompt = false +; [interactive] +; diffFilter = delta --color-only +; [delta] +; features = line-numbers decorations +[pull] + rebase = false +[diff] + ; external = difft + algorithm = histogram +[safe] + directory = /home/santo/Documents/Notes +[url "git@github.com:"] + pushInsteadOf = "https://github.com/" + pushInsteadOf = "github:" + pushInsteadOf = "git://github.com/" diff --git a/dot_gitignore b/dot_gitignore new file mode 100644 index 0000000..7a6353d --- /dev/null +++ b/dot_gitignore @@ -0,0 +1 @@ +.envrc diff --git a/mutt/.mbsyncrc b/dot_mbsyncrc index cb2ed55..cb2ed55 100644 --- a/mutt/.mbsyncrc +++ b/dot_mbsyncrc diff --git a/mutt/.neomutt/colors.muttrc b/dot_neomutt/colors.muttrc index 750a86d..750a86d 100644 --- a/mutt/.neomutt/colors.muttrc +++ b/dot_neomutt/colors.muttrc diff --git a/mutt/.neomutt/first.email b/dot_neomutt/first.email index c394da9..c394da9 100644 --- a/mutt/.neomutt/first.email +++ b/dot_neomutt/first.email diff --git a/mutt/.neomutt/mailcap b/dot_neomutt/mailcap index dea866b..06f3de1 100644 --- a/mutt/.neomutt/mailcap +++ b/dot_neomutt/mailcap @@ -1,3 +1,4 @@ text/html; xdg-open %s &> /dev/null &; nametemplate=%s.html application/*; xdg-open %s &> /dev/null &; image/*; xdg-open %s &> /dev/null &; + diff --git a/mutt/.neomuttrc b/dot_neomuttrc index 7ca9cde..7ca9cde 100644 --- a/mutt/.neomuttrc +++ b/dot_neomuttrc diff --git a/dot_oh-my-zsh/themes/jon.zsh-theme b/dot_oh-my-zsh/themes/jon.zsh-theme new file mode 100644 index 0000000..e06f45d --- /dev/null +++ b/dot_oh-my-zsh/themes/jon.zsh-theme @@ -0,0 +1,113 @@ +autoload -Uz colors && colors + +# Git status symbols +ZSH_THEME_GIT_PROMPT_CONFLICTED='⚠' +ZSH_THEME_GIT_PROMPT_AHEAD='⇡' +ZSH_THEME_GIT_PROMPT_BEHIND='⇣' +ZSH_THEME_GIT_PROMPT_DIVERGED='⇕' +# ZSH_THEME_GIT_PROMPT_UP_TO_DATE='✓' +ZSH_THEME_GIT_PROMPT_UNTRACKED='?' +ZSH_THEME_GIT_PROMPT_STASHED='$' +ZSH_THEME_GIT_PROMPT_MODIFIED='!' +ZSH_THEME_GIT_PROMPT_STAGED='+' +# ZSH_THEME_GIT_PROMPT_RENAMED='»' +# ZSH_THEME_GIT_PROMPT_DELETED='✘' +ZSH_THEME_GIT_PROMPT_TYPECHANGED='~' + +# Function to get git branch name +git_branch_name() { + local branch=$(git symbolic-ref HEAD 2> /dev/null) + if [[ -n "$branch" ]]; then + echo "${branch#refs/heads/}" + else + # If not on a branch, get the hash + echo "$(git rev-parse --short HEAD 2> /dev/null)" + fi +} + +# Function to get git status symbols +git_prompt_status() { + local git_status="" + + if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then + if [[ -n $(git ls-files --other --exclude-standard 2>/dev/null) ]]; then + git_status+="${ZSH_THEME_GIT_PROMPT_UNTRACKED}" + fi + if $(git rev-parse --verify refs/stash >/dev/null 2>&1); then + git_status+="${ZSH_THEME_GIT_PROMPT_STASHED}" + fi + if $(git diff --name-status 2>/dev/null | grep -q "M"); then + git_status+="${ZSH_THEME_GIT_PROMPT_MODIFIED}" + fi + if $(git diff --staged --name-status 2>/dev/null | grep -q "M"); then + git_status+="${ZSH_THEME_GIT_PROMPT_STAGED}" + fi + # if $(git diff --name-status 2>/dev/null | grep -q "R"); then + # git_status+="${ZSH_THEME_GIT_PROMPT_RENAMED}" + # fi + # if $(git diff --name-status 2>/dev/null | grep -q "D"); then + # git_status+="${ZSH_THEME_GIT_PROMPT_DELETED}" + # fi + if $(git diff --name-status 2>/dev/null | grep -q "T"); then + git_status+="${ZSH_THEME_GIT_PROMPT_TYPECHANGED}" + fi + if $(git status 2>/dev/null | grep -q "Unmerged"); then + git_status+="${ZSH_THEME_GIT_PROMPT_CONFLICTED}" + fi + if $(git status 2>/dev/null | grep -q "Your branch is ahead"); then + git_status+="${ZSH_THEME_GIT_PROMPT_AHEAD}" + fi + if $(git status 2>/dev/null | grep -q "Your branch is behind"); then + git_status+="${ZSH_THEME_GIT_PROMPT_BEHIND}" + fi + if $(git status 2>/dev/null | grep -q "have diverged"); then + git_status+="${ZSH_THEME_GIT_PROMPT_DIVERGED}" + fi + # if [[ -z "$git_status" && -z $(git status --porcelain 2>/dev/null) ]]; then + # git_status+="${ZSH_THEME_GIT_PROMPT_UP_TO_DATE}" + # fi + fi + echo "$git_status" +} + +# Function to get git info with symbols +git_prompt_info() { + if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then + local branch=$(git_branch_name) + local git_status_symbols=$(git_prompt_status) + echo "[${branch}${git_status_symbols}]" + fi +} + +# Function to get path (full path or truncated if in git repo) +get_path_info() { + if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then + # In git repo - show repo name + path within repo + local git_root=$(git rev-parse --show-toplevel) + local git_dirname=$(basename "$git_root") + local path_within_repo="${PWD#$git_root}" + + if [[ -z "$path_within_repo" ]]; then + # We're in the git root directory + echo "$git_dirname" + else + # We're in a subdirectory of the git repo + echo "$git_dirname$path_within_repo" + fi + else + # Not in git repo - show full path relative to $HOME + echo "%~" + fi +} + +# Basic prompt +PROMPT='%{$fg_bold[black]%}[%*] ' # Show current time in HH:MM +PROMPT+='%{$fg[yellow]%}%n%{$reset_color%}@%F{#D7005F}%m' +if [[ "$PWD" != "$HOME" ]]; then + PROMPT+='%{$fg_bold[black]%}:%{$fg[yellow]%}$(get_path_info) ' # Dynamic path display +fi + +# Add git info to prompt +PROMPT+='%F{#D7005F}$(git_prompt_info) ' # Git prompt with symbols +PROMPT+='%{$fg[red]%}| ' # Pipe separator +PROMPT+='%{$reset_color%}' # Reset color diff --git a/tmux/.tmux.conf b/dot_tmux.conf index 68bd0dd..12655bc 100644 --- a/tmux/.tmux.conf +++ b/dot_tmux.conf @@ -13,12 +13,18 @@ set-option -s set-clipboard off bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy -se c -i" +bind -n M-Left select-pane -L +bind -n M-Right select-pane -R +bind -n M-Up select-pane -U +bind -n M-Down select-pane -D + + set -g status-left '' -#set -g status-right "%a %d/%m/%Y %H:%M" +# set -g status-right "%a %d/%m/%Y %H:%M" set -g status-right '' -set -g status-bg colour234 -set -g status-fg yellow +set -g status-bg colour82 +set -g status-fg colour16 set -g renumber-windows on set -g history-file ~/.tmux_history @@ -42,4 +48,3 @@ bind -r L resize-pane -R 10 # Source the vim tmuxline #if-shell "test -f ~/.tmuxline" "source ~/.tmuxline" - diff --git a/dot_vimrc b/dot_vimrc new file mode 100644 index 0000000..0be5812 --- /dev/null +++ b/dot_vimrc @@ -0,0 +1,100 @@ +autocmd! bufwritepost .vimrc source % + +set completeopt=menu,menuone,noselect + +set clipboard=unnamed + +" copy with `y` to clipboard +ca ce set clipboard+=unnamedplus +ca cd set clipboard-=unnamedplus + +set mouse=a " click with mouse +set wildmenu +set wildmode=full +set wildignore=*~,*.png,*.jpg,*.gif,Thumbs.db,*.min.js,*.swp,*.o,vendor,*.pyc + +set number " number of the current line +"set relativenumber " relative number, ..-2 -1 x 1 2, where x is current line +set textwidth=80 +set colorcolumn=80 +set nowrap +set fo-=t + +set tabstop=4 +set shiftwidth=4 +set expandtab " convert tabs in spaces + +set ai " auto indent +set autoread + +set encoding=UTF-8 +set history=1000 + +set hlsearch " highlight search +set incsearch + +set nowritebackup +set laststatus=2 + +"set list " spaces as characters +"set listchars=eol:⏎,tab:»·,trail:ˑ,nbsp:⎵ + +set foldmethod=indent + +set splitright " split on right side +set splitbelow +set lazyredraw +set ttyfast + +set noswapfile + +set termguicolors +set background=dark + +" Figure out the system Python for Neovim. +if exists("$VIRTUAL_ENV") + let g:python3_host_prog=substitute(system("which -a python3 | head -n2 | tail -n1"), "\n", '', 'g') +else + let g:python3_host_prog=substitute(system("which python3"), "\n", '', 'g') +endif + +filetype plugin indent on +set nocompatible + +set showcmd " show commands at bottom + +" nvim-tree +nnoremap <C-t> :NvimTreeToggle<CR> + +" ------------ +" MAPS +" ----------- +nnoremap j gj +nnoremap k gk + +nnoremap tn :tabnew<cr> + +" buffers +nnoremap ]b :bnext<CR> +nnoremap [b :bprev<CR> + +" tabs +nnoremap ]t :tabn<CR> +nnoremap [t :tabp<CR> + +" only one window +nnoremap <leader>o :only<CR> + + +nnoremap <leader>pa :set paste<CR> +nnoremap <leader>npa :set nopaste<CR> + + +if &diff + "Get from remote + nnoremap dr :diffget<Space>RE<CR> + "Get from base + nnoremap db :diffget<Space>BA<CR> + "Get from local + nnoremap dl :diffget<Space>LO<CR> +endif diff --git a/dot_zshrc b/dot_zshrc new file mode 100644 index 0000000..35b20a1 --- /dev/null +++ b/dot_zshrc @@ -0,0 +1,97 @@ +# now use Starship instead of oh-my-zsh theme +export ZSH="/home/santo/.oh-my-zsh" +# ZSH_THEME="pure" +ZSH_THEME="jon" +plugins=( + git + zsh-autosuggestions + zsh-syntax-highlighting + # shrink-path + forgit + kubectl +) + +source $ZSH/oh-my-zsh.sh + +# eval "$(starship init zsh)" + +# export NVM_DIR="$HOME/.nvm" +# [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +# [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion +# +export PATH=$PATH:/home/santo/.local/bin/:/usr/local/go/bin:/home/santo/go/bin/ + +[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh + +export WORKON_HOME=$HOME/.virtualenvs +# source /usr/share/virtualenvwrapper/virtualenvwrapper.sh + +eval "$(direnv hook zsh)" +eval "$(zoxide init zsh)" + +# Install Ruby Gems to ~/gems +export GEM_HOME="$HOME/.gems" +export PATH="$HOME/.gem/ruby/2.7.0/bin:$PATH" + +# Java stuff +export PATH=$PATH:/opt/gradle/gradle-7.4/bin + +# Scala +export PATH="$PATH:/home/santo/.local/share/coursier/bin" + +alias mutt=neomutt +alias gap="git add -p" +alias cat="bat -p" +alias ls=lsd +# alias vim=nvim +export TERM=xterm-256color + +fpath+=${ZDOTDIR:-~}/.zsh_functions + +# Generated for envman. Do not edit. +[ -s "$HOME/.config/envman/load.sh" ] && source "$HOME/.config/envman/load.sh" + +export PATH="$HOME/.poetry/bin:/usr/bin/jolie:$PATH" +export JOLIE_HOME="/usr/lib/jolie" +# export PATH="$HOME/.virtualenvs/cc/bin/path:$PATH" +export DFT_DISPLAY=inline +eval "$(atuin init zsh)" +#eval `ssh-agent -s` > /dev/null +xsetroot -solid "#080808" + +source "$HOME/.cargo/env" + +# fnm +export PATH="/home/santo/.local/share/fnm:$PATH" +eval "`fnm env`" + +# OCaml +eval $(opam env) + +# Debian +export DEBFULLNAME="Santo Cariotti" +export DEBEMAIL="santo@dcariotti.me" + + +# export BAT_THEME="gruvbox-light" +export BAT_THEME="gruvbox-dark" + +# pnpm +export PNPM_HOME="/home/santo/.local/share/pnpm" +case ":$PATH:" in + *":$PNPM_HOME:"*) ;; + *) export PATH="$PNPM_HOME:$PATH" ;; +esac +# pnpm end + +# UV +alias uvx="uv tool run" + +alias fd="fdfind" + +alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg" +complete -F _quilt_completion -o filenames dquilt + +alias cz="chezmoi" + +# . "$HOME/.local/bin/env" diff --git a/git/.gitconfig b/git/.gitconfig deleted file mode 100644 index 0e9b0bb..0000000 --- a/git/.gitconfig +++ /dev/null @@ -1,35 +0,0 @@ -[user] - name = Santo Cariotti - email = santo@dcariotti.me - signingkey = C9B7C8FD3701C2C6 -[alias] - ci = commit - co = checkout - logs = log --graph --branches --remotes --tags --pretty=format':%C(yellow)%h%C(green)%d%Creset %s %C(yellow)|%Creset %C(cyan)%an <%ae> %C(yellow)| %C(white)%aD %C(red)(%ar)%Creset' - st = status - fd = "!f() { git log --grep=$1; }; f" - amend = commit --amend -[credential] - helper = store -[core] - editor = nvim - pager = delta -[init] - defaultBranch = main -[grep] - lineNumber = true -[color "grep"] - lineNumber = yellow - match = red bold - filename = cyan -[merge] - tool = vimdiff - conflictstyle = diff3 -[mergetool] - prompt = false -[interactive] - diffFilter = delta --color-only -[delta] - features = side-by-side line-numbers decorations -[pull] - rebase = false diff --git a/newsboat/config b/newsboat/config deleted file mode 100644 index 710b41f..0000000 --- a/newsboat/config +++ /dev/null @@ -1,27 +0,0 @@ -show-read-feeds true - -unbind-key J -unbind-key K -unbind-key n -unbind-key p -unbind-key l -unbind-key R - -bind-key j down -bind-key k up -bind-key J next-unread -bind-key K prev-unread -bind-key l next -bind-key h prev -bind-key L toggle-show-read-feeds -bind-key S reload-all -bind-key i quit # I often use this instead of 'q' -bind-key SPACE open - -color listnormal color15 black -color listfocus color120 color236 bold -color listnormal_unread color48 black -color listfocus_unread color120 color236 bold -color info color232 color49 reverse - -browser "xdg-open '%u'" diff --git a/private_dot_config/atuin/config.toml b/private_dot_config/atuin/config.toml new file mode 100644 index 0000000..b84151a --- /dev/null +++ b/private_dot_config/atuin/config.toml @@ -0,0 +1,92 @@ +## where to store your database, default is your system data directory +## linux/mac: ~/.local/share/atuin/history.db +## windows: %USERPROFILE%/.local/share/atuin/history.db +# db_path = "~/.history.db" + +## where to store your encryption key, default is your system data directory +## linux/mac: ~/.local/share/atuin/key +## windows: %USERPROFILE%/.local/share/atuin/key +# key_path = "~/.key" + +## where to store your auth session token, default is your system data directory +## linux/mac: ~/.local/share/atuin/session +## windows: %USERPROFILE%/.local/share/atuin/session +# session_path = "~/.session" + +## date format used, either "us" or "uk" +# dialect = "us" + +## enable or disable automatic sync +# auto_sync = true + +## enable or disable automatic update checks +# update_check = true + +## address of the sync server +# sync_address = "https://api.atuin.sh" + +## how often to sync history. note that this is only triggered when a command +## is ran, so sync intervals may well be longer +## set it to 0 to sync after every command +# sync_frequency = "1h" + +## which search mode to use +## possible values: prefix, fulltext, fuzzy, skim +# search_mode = "fuzzy" + +## which filter mode to use +## possible values: global, host, session, directory +# filter_mode = "global" + +## which filter mode to use when atuin is invoked from a shell up-key binding +## the accepted values are identical to those of "filter_mode" +## leave unspecified to use same mode set in "filter_mode" +# filter_mode_shell_up_key_binding = "global" + +## which style to use +## possible values: auto, full, compact +# style = "auto" + +## the maximum number of lines the interface should take up +## set it to 0 to always go full screen +# inline_height = 0 + +## enable or disable showing a preview of the selected command +## useful when the command is longer than the terminal width and is cut off +# show_preview = false + +## what to do when the escape key is pressed when searching +## possible values: return-original, return-query +# exit_mode = "return-original" + +## possible values: emacs, subl +# word_jump_mode = "emacs" + +## characters that count as a part of a word +# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + +## number of context lines to show when scrolling by pages +# scroll_context_lines = 1 + +## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts +## alt-0 .. alt-9 +# ctrl_n_shortcuts = false + +## prevent commands matching any of these regexes from being written to history. +## Note that these regular expressions are unanchored, i.e. if they don't start +## with ^ or end with $, they'll match anywhere in the command. +## For details on the supported regular expression syntax, see +## https://docs.rs/regex/latest/regex/#syntax +# history_filter = [ +# "^secret-cmd", +# "^innocuous-cmd .*--secret=.+" +# ] + +## prevent commands run with cwd matching any of these regexes from being written +## to history. Note that these regular expressions are unanchored, i.e. if they don't +## start with ^ or end with $, they'll match anywhere in CWD. +## For details on the supported regular expression syntax, see +## https://docs.rs/regex/latest/regex/#syntax +# cwd_filter = [ +# "^/very/secret/area" +# ] diff --git a/private_dot_config/gh/config.yml b/private_dot_config/gh/config.yml new file mode 100644 index 0000000..aaec3a0 --- /dev/null +++ b/private_dot_config/gh/config.yml @@ -0,0 +1,12 @@ +# What protocol to use when performing git operations. Supported values: ssh, https +git_protocol: https +# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment. +editor: nvim +# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled +prompt: enabled +# A pager program to send command output to, e.g. "less". Set the value to "cat" to disable the pager. +pager: +# Aliases allow you to create nicknames for gh commands +aliases: + co: pr checkout +version: "1" diff --git a/.config/i3/config b/private_dot_config/i3/config index bd31c31..bd31c31 100644 --- a/.config/i3/config +++ b/private_dot_config/i3/config diff --git a/.config/i3blocks/config b/private_dot_config/i3blocks/config index d099c7c..d099c7c 100644 --- a/.config/i3blocks/config +++ b/private_dot_config/i3blocks/config diff --git a/.config/i3blocks/i3_battery.sh b/private_dot_config/i3blocks/i3_battery.sh index 97ea493..97ea493 100755..100644 --- a/.config/i3blocks/i3_battery.sh +++ b/private_dot_config/i3blocks/i3_battery.sh diff --git a/private_dot_config/iamb/config.toml b/private_dot_config/iamb/config.toml new file mode 100644 index 0000000..3d2939a --- /dev/null +++ b/private_dot_config/iamb/config.toml @@ -0,0 +1,14 @@ +default_profile = "deb" + +[profiles.deb] +user_id = "@santo:matrix.debian.social" +url = "https://matrix.debian.social" +rooms = [] + +[macros.normal] +"q" = ":chats<Enter>" +"v" = "<C-w>m" +"ZZ" = "<Esc>:q<Enter>" + +[settings.notifications] +enabled = true diff --git a/private_dot_config/nvim/after/ftdetect/.keep b/private_dot_config/nvim/after/ftdetect/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/private_dot_config/nvim/after/ftdetect/.keep diff --git a/.config/nvim/after/ftplugin/dockerfile.vim b/private_dot_config/nvim/after/ftplugin/dockerfile.vim index b388056..b388056 100644 --- a/.config/nvim/after/ftplugin/dockerfile.vim +++ b/private_dot_config/nvim/after/ftplugin/dockerfile.vim diff --git a/.config/nvim/after/ftplugin/json.vim b/private_dot_config/nvim/after/ftplugin/json.vim index b388056..b388056 100644 --- a/.config/nvim/after/ftplugin/json.vim +++ b/private_dot_config/nvim/after/ftplugin/json.vim diff --git a/.config/nvim/after/ftplugin/markdown.vim b/private_dot_config/nvim/after/ftplugin/markdown.vim index b388056..b388056 100644 --- a/.config/nvim/after/ftplugin/markdown.vim +++ b/private_dot_config/nvim/after/ftplugin/markdown.vim diff --git a/private_dot_config/nvim/after/syntax/antlr4.vim b/private_dot_config/nvim/after/syntax/antlr4.vim new file mode 100644 index 0000000..8f6c412 --- /dev/null +++ b/private_dot_config/nvim/after/syntax/antlr4.vim @@ -0,0 +1,93 @@ +if exists('b:current_syntax') + finish +endif + +command -nargs=* HiLink highlight link <args> + +syntax match antlr4EventId +[a-zA-Z_][a-zA-Z0-9_]*+ contained +syntax match antlr4ParName +\<[a-z][a-zA-Z0-9_]*\>+ containedin=antlr4RHS +syntax match antlr4LexName +\<[A-Z][a-zA-Z0-9_]*\>+ containedin=antlr4RHS +syntax match antlr4Assign /[a-zA-Z]\++\?=/ containedin=antlr4RHS + +if exists('g:antlr4_highlight_punctuation') + syntax match antlr4Punctuation +[\-():;]+ +endif + +syntax include @included syntax/java.vim + +syntax region antlr4RHS start=+:+ end=+;+ extend + +syntax region antlr4Embed start=+{+ end=+}?\?+ contains=@included,antlr4Variable keepend + \ containedin=antlr4RHS +syntax region antlr4Embed start=+\[+ end=+\]+ contains=@included,antlr4Variable keepend + + +syntax match antlr4Repeat +[+*]+ containedin=antlr4RHS +syntax match antlr4Condition +?+ containedin=antlr4RHS +syntax match antlr4Option "|" containedin=antlr4RHS + +" Use specifically containedin=javaParenT so it will be highlighted inside +" parens +syntax match antlr4Variable contained +\$[a-zA-Z_][a-zA-Z0-9_]*+ containedin=javaParenT + +syntax match antlr4Keyword /@\(\(parser\|lexer\)::\)\?\(header\|members\)/ +syntax match antlr4Keyword /@after/ + +syntax match antlr4Escape +\\[nrvt]+ +syntax match antlr4Escape +\\u[0-9a-fA-F]\{4}+ +syntax match antlr4Escape +\\u{[0-9a-fA-F]\{4}}+ +syntax match antlr4Escape +\\p{.\{-}}+ + +syntax match antlr4SetEscape +\\-+ containedin=antlr4RHS + +syntax keyword antlr4Keyword grammar +syntax keyword antlr4Keyword lexer parser options +syntax keyword antlr4Keyword fragment tokens +syntax keyword antlr4Keyword returns locals throws catch finally mode options + +syntax keyword antlr4Import import + +syntax keyword antlr4Operation skip more popMode mode pushMode type channel + \ containedin=antlr4RHS + +syntax region antlr4Set start=+\[+ end=+\]+ contained + \ contains=antlr4Escape,antlr4SetEscape containedin=antlr4RHS +syntax region antlr4Attr start="<" end=">" + \ containedin=antlr4RHS +syntax region antlr4String start=+'+ end=+'+ containedin=antlr4RHS contains=antlr4Escape + +syntax region antlr4Comment start=+/\*+ end=+\*/+ + \ containedin=antlr4RHS +syntax region antlr4Comment start=+//+ end=+$+ + \ containedin=antlr4RHS + +syntax region antlr4Event start=+#+ end=+$+ + \ containedin=antlr4RHS contains=antlr4EventId + +HiLink antlr4Comment Comment +HiLink antlr4Keyword KeyWord +HiLink antlr4ParName Type +HiLink antlr4LexName Macro +HiLink antlr4Attr Special +HiLink antlr4Assign Statement +HiLink antlr4Set Character +HiLink antlr4String String + +if exists('g:antlr4_highlight_punctuation') + HiLink antlr4Punctuation Operator +endif + +HiLink antlr4Repeat Repeat +HiLink antlr4Condition Conditional +HiLink antlr4Option Delimiter +HiLink antlr4Import PreProc +HiLink antlr4Escape Special +HiLink antlr4SetEscape antlr4Escape +HiLink antlr4Operation Function +HiLink antlr4EventId Function +HiLink antlr4Annotation KeyWord +HiLink antlr4Variable Special + +delcommand HiLink + +let b:current_syntax = 'antlr4' diff --git a/private_dot_config/nvim/after/syntax/jolie.vim b/private_dot_config/nvim/after/syntax/jolie.vim new file mode 100644 index 0000000..c7b3a21 --- /dev/null +++ b/private_dot_config/nvim/after/syntax/jolie.vim @@ -0,0 +1,59 @@ +if exists("b:current_syntax") + finish +endif + +syn keyword jolieBoolean true false +syn keyword jolieDefinitionTypes inputPort outputPort interface type define service +syn keyword jolieKeyword location Location protocol Protocol interfaces Interfaces aggregates Aggregates redirects Redirects class Jolie JavaScript Java OneWay oneWay RequestResponse requestResponse execution +syn keyword jolieOtherKeyword constants cH instanceof execution comp concurrent nullProcess single sequential main foreign java init cset is_defined embed embedded extender courier forward install undef include synchronized throws throw from import as +syn keyword jolieConditional if else +syn keyword jolieRepeat while for foreach until in +syn keyword jolieException throw +syn keyword jolieStatement forward scope provide +syn keyword jolieType void bool int string long double any raw +syn keyword jolieKeywordModifiers csets global +syn match jolieOperators "(<<|&&|\|\||+|-|/|*|=|==|++|-|+=|-=|*=|/=|!|%=|%)" + +syn match jolieSpecialChar contained "\\." + +syn region jolieString start=+"+ end=+"+ contains=jolieSpecialChar + +syn match jolieNumber "\<\d\+\>" + +syn match jolieMethodInvocation "\<\(\w\+\)@\(\w\+\)\>" contains=jolieMethodName,jolieClassName + +syn match jolieMethodName "\w\+@"me=e-1 contained +syn match jolieClassName "@\w\+\>"ms=s+1 contained + +syn match jolieMethodName2 "\(\w\+\)(" + +syn keyword jolieTodo contained TODO FIXME +syn region jolieComment start="/\*" end="\*/" contains=jolieTodo +syn match jolieLineComment "//.*" + +let b:current_syntax = "jolie" + +hi def link jolieBoolean Boolean +hi def link jolieComment Comment +hi def link jolieLineComment Comment +hi def link jolieDefinitionTypes Keyword +hi def link jolieKeyword Keyword +hi def link jolieOtherKeyword Keyword + +hi def link jolieOperators Operator + +hi def link jolieConditional Conditional +hi def link jolieRepeat Repeat +hi def link jolieException Exception +hi def link jolieStatement Statement +hi def link jolieType Type + +hi def link jolieKeywordModifiers StorageClass + +hi def link jolieString String + +hi def link jolieNumber Number + +hi def link jolieMethodName Function +hi def link jolieClassName Type +hi def link jolieMethodName2 Function diff --git a/.config/nvim/after/syntax/prr.vim b/private_dot_config/nvim/after/syntax/prr.vim index 43a0557..43a0557 100644 --- a/.config/nvim/after/syntax/prr.vim +++ b/private_dot_config/nvim/after/syntax/prr.vim diff --git a/private_dot_config/nvim/dot_netrwhist b/private_dot_config/nvim/dot_netrwhist new file mode 100644 index 0000000..987ad58 --- /dev/null +++ b/private_dot_config/nvim/dot_netrwhist @@ -0,0 +1,5 @@ +let g:netrw_dirhistmax =10 +let g:netrw_dirhistcnt =3 +let g:netrw_dirhist_3='/var/www/html/riflessi/img/base' +let g:netrw_dirhist_2='/var/www/html/riflessi/img' +let g:netrw_dirhist_1='/var/www/html/riflessi/img/base' diff --git a/private_dot_config/nvim/init.lua b/private_dot_config/nvim/init.lua new file mode 100644 index 0000000..29608d4 --- /dev/null +++ b/private_dot_config/nvim/init.lua @@ -0,0 +1,242 @@ +-- Auto-reload Neovim configuration on save +vim.cmd [[ + augroup packer_user_config + autocmd! + autocmd BufWritePost init.lua source <afile> | PackerCompile + augroup end +]] + +require('packer').startup(function(use) + -- Packer can manage itself + use 'wbthomason/packer.nvim' + + -- use 'cespare/vim-toml' -- TOML syntax highlighting + use 'rust-lang/rust.vim' -- Rust language support + use 'nvim-lua/plenary.nvim' -- Lua utilities for plugins + use 'lewis6991/gitsigns.nvim' -- Git integration (show signs in gutter) + use 'kyazdani42/nvim-web-devicons'-- File icons + use 'mg979/vim-visual-multi' -- Multi-cursor support + use 'tpope/vim-fugitive' -- Git wrapper for commands like :Git + use 'ap/vim-css-color' -- Show color preview for CSS colors + -- use 'lukas-reineke/indent-blankline.nvim' -- Display vertical indentation lines + use 'google/vim-searchindex' -- Show search match count + use 'numToStr/Comment.nvim' -- Easily comment/uncomment lines + -- use 'togglebyte/togglerust' -- Rust debugging tools + -- use 'chriskempson/base16-vim' -- Base16 color schemes + use 'NLKNguyen/papercolor-theme' -- PaperColor theme + -- use 'projekt0n/github-nvim-theme' + use 'Shatur/neovim-ayu' + use 'nvim-telescope/telescope.nvim' -- Fuzzy finder + use 'neovim/nvim-lspconfig' -- LSP configuration for multiple languages + use 'hrsh7th/nvim-cmp' -- Autocompletion engine + use 'hrsh7th/cmp-nvim-lsp' -- LSP source for nvim-cmp + use 'saadparwaiz1/cmp_luasnip' -- Snippet completion for nvim-cmp + use 'L3MON4D3/LuaSnip' -- Snippet engine + use 'kyazdani42/nvim-tree.lua' -- File explorer + use 'ray-x/lsp_signature.nvim' -- Show function signatures as you type + use 'folke/todo-comments.nvim' -- Highlight and search TODO comments + use 'saecki/crates.nvim' -- Rust crate version management + use { + 'nvim-treesitter/nvim-treesitter', + run = ':TSUpdate' -- Update treesitter parsers + } + use 'folke/trouble.nvim' -- Diagnostics and references list + use 'folke/lsp-colors.nvim' -- Adds missing LSP diagnostics highlight groups + use 'sindrets/diffview.nvim' -- Git diff and history viewer + + use 'mfussenegger/nvim-dap' -- Debug Adapter Protocol client implementation + use 'leoluz/nvim-dap-go' -- Neovim DAP extension for Go + use 'nvim-neotest/nvim-nio' + use 'rcarriga/nvim-dap-ui' + + use 'koraa/proverif.vim' + + use { + 'nvim-lualine/lualine.nvim', + requires = { 'nvim-tree/nvim-web-devicons', opt = true } + } + + -- Automatically set up the configuration after cloning packer.nvim + if packer_bootstrap then + require('packer').sync() + end +end) + +-- General Neovim settings + +-- Configure completion options (menu, menuone, noselect) +vim.opt.completeopt = "menu,menuone,noselect" + +-- Enable system clipboard access +vim.opt.clipboard = "unnamedplus" + +-- Enable mouse support in all modes +vim.opt.mouse = "a" + +-- Enable command-line completion features +vim.opt.wildmenu = true +vim.opt.wildmode = { "longest", "list", "full" } + +-- Ignore certain file types when using wildmenu for file navigation +vim.opt.wildignore = "*.png,*.jpg,*.gif,*.swp,*.o,*.pyc,vendor" + +-- Show absolute line numbers +-- vim.opt.number = true + +-- Show relative line numbers +-- vim.opt.relativenumber = true + +-- Set text width to 80 characters +vim.opt.textwidth = 80 + +-- Highlight a column at 80 characters +vim.opt.colorcolumn = "80" + +-- Disable line wrapping +vim.opt.wrap = false + +-- Set tab width and shift width to 4 spaces +vim.opt.tabstop = 4 +vim.opt.shiftwidth = 4 + +-- Use spaces instead of tabs +vim.opt.expandtab = true + +-- Automatically indent new lines to match the previous line +vim.opt.autoindent = true + +-- Automatically reload files if they are modified outside of Neovim +vim.opt.autoread = true + +-- Set UTF-8 as the default encoding +vim.opt.encoding = "UTF-8" + +-- Set the history size for command line and search +vim.opt.history = 1000 + +-- Highlight search matches +vim.opt.hlsearch = true + +-- Incrementally search while typing +vim.opt.incsearch = true + +-- Disable backup file creation +vim.opt.backup = false + +-- Set the status line to always be visible +vim.opt.laststatus = 2 + +-- Show invisible characters (e.g., tabs, spaces, etc.) +vim.opt.list = true + +vim.opt.showmatch = true + +-- Define characters for different invisible characters +vim.opt.listchars = { eol = '⏎', tab = '» ', trail = 'ˑ', nbsp = '⎵' } +vim.cmd([[match Error /\s\+$/]]) +vim.api.nvim_create_autocmd("FileType", { + pattern = { "go", "c", "cpp" }, + callback = function() + vim.opt.autoindent = true + vim.opt.expandtab = false + vim.opt.tabstop = 4 + vim.opt.shiftwidth = 4 + end, +}) + + +-- Use indent-based folding +vim.opt.foldmethod = "indent" + +-- Open vertical splits to the right of the current window +vim.opt.splitright = true + +-- Open horizontal splits below the current window +vim.opt.splitbelow = true + +-- Optimize screen redrawing for performance +vim.opt.lazyredraw = true + +-- Disable swapfile creation +vim.opt.swapfile = false + +-- Enable 24-bit RGB color in the terminal +vim.opt.termguicolors = true + +-- Set background to dark mode +vim.opt.background = "dark" + +-- Highlight the current line +vim.opt.cursorline = true + +-- **Highlight settings** +-- Set custom highlights for various UI components +-- vim.cmd('colorscheme github_dark_default') +vim.cmd('colorscheme ayu') +vim.cmd [[ + highlight Normal guibg=NONE + " highlight NormalNC guibg=#111111 + highlight NonText guibg=NONE + highlight LineNr guibg=NONE + highlight CursorLine guibg=NONE + highlight CursorLineNr guibg=NONE guifg=Yellow + highlight StatusLineNC guibg=#0d1117 guifg=#cacaca + highlight Error guibg=red guifg=#000000 + "highlight StatusLine guibg=#000000 guifg=Yellow + "highlight StatusLineNC guibg=#000000 guifg=Yellow + highlight SignColumn guibg=NONE + highlight GitGutterChange guifg=#f1c40f guibg=#000000 + highlight GitGutterAdd guifg=#2ecc71 guibg=#000000 + highlight GitGutterDelete guifg=#e74c3c guibg=#000000 +]] + +-- Keybindings +vim.g.mapleader = "," -- Set the leader key to "," +vim.api.nvim_set_keymap('n', 'j', 'gj', { noremap = true }) -- Move down visually wrapped lines +vim.api.nvim_set_keymap('n', 'k', 'gk', { noremap = true }) -- Move up visually wrapped lines + +---- Buffers +vim.api.nvim_set_keymap('n', ']b', ':bnext<CR>', { noremap = true, silent = true }) -- Move to the next buffer +vim.api.nvim_set_keymap('n', '[b', ':bprev<CR>', { noremap = true, silent = true }) -- Move to the previous buffer +vim.api.nvim_set_keymap('n', '<leader>b', '<cmd>Telescope buffers<CR>', { noremap = true, silent = true }) -- List and switch to buffers using Telescope + +---- Tabs +vim.api.nvim_set_keymap('n', 'tn', ':tabnew<CR>', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', ']t', ':tabn<CR>', { noremap = true, silent = true }) -- Move to the next tab +vim.api.nvim_set_keymap('n', '[t', ':tabp<CR>', { noremap = true, silent = true }) -- Move to the previous tab + +vim.api.nvim_set_keymap('n', '<leader>o', ':only<CR>', { noremap = true }) -- Close all other windows +vim.api.nvim_set_keymap('n', '<A-t>', ':NvimTreeToggle<CR>', { noremap = true }) -- Toggle NvimTree file explorer +vim.api.nvim_set_keymap('n', '<leader>pa', ':set paste<CR>', { noremap = true }) -- Enable paste mode +vim.api.nvim_set_keymap('n', '<leader>npa', ':set nopaste<CR>', { noremap = true }) -- Disable paste mode +vim.api.nvim_set_keymap('n', '<leader>cr', ':Cargo run<CR>', { noremap = true }) -- Run `cargo run` for Rust projects +vim.api.nvim_set_keymap('n', '<space>d', '<cmd>Trouble diagnostics<cr>', { noremap = true }) -- Toggle Trouble diagnostic window +vim.api.nvim_set_keymap('n', '<leader>ff', '<cmd>Telescope find_files<cr>', { noremap = true }) -- Find files with Telescope +vim.api.nvim_set_keymap('n', '<leader>fg', '<cmd>Telescope live_grep<cr>', { noremap = true }) -- Live grep with Telescope +vim.api.nvim_set_keymap('n', '<leader>fh', '<cmd>Telescope help_tags<cr>', { noremap = true }) -- Search help tags with Telescope +vim.api.nvim_set_keymap('n', '<C-i>', ':lua vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())<CR>', { noremap = true }) + +-- Custom command aliases for Diffview +vim.api.nvim_create_user_command('Do', 'DiffviewOpen', {}) +vim.api.nvim_create_user_command('Dc', 'DiffviewClose', {}) +vim.api.nvim_create_user_command('Dh', 'DiffviewFileHistory', {}) + + +-- Plugin configuration +require('nvim-tree').setup { actions = { open_file = { quit_on_open = true } } } +require('todo-comments').setup {} +require('crates').setup {} +require('nvim-treesitter.configs').setup { highlight = { enable = true } } +require('lsp-colors').setup {} +require('Comment').setup() +-- require("ibl").setup { indent = {char = "¦"} } +-- vim.cmd.highlight('clear @ibl.scope.underline.1') + +-- General settings from ~/.config/nvim/lua/ +require('git') -- Load git-related settings +require('lsp_conf') -- Load LSP configuration +require('dap_conf') +require('evil_lualine') + +-- Set up language client for Go +vim.g.LanguageClient_serverCommands = { go = { 'gopls' } } diff --git a/private_dot_config/nvim/lua/dap_conf.lua b/private_dot_config/nvim/lua/dap_conf.lua new file mode 100644 index 0000000..2346e6a --- /dev/null +++ b/private_dot_config/nvim/lua/dap_conf.lua @@ -0,0 +1,52 @@ +local dap, dapui = require('dap'), require('dapui') +local dapgo = require('dap-go') +dapui.setup() +dapgo.setup() +dap.listeners.before.attach.dapui_config = function() + dapui.open() +end +dap.listeners.before.launch.dapui_config = function() + dapui.open() +end + +dap.adapters.gdb = { + type = "executable", + command = "gdb", + args = { "--interpreter=dap", "--eval-command", "set print pretty on" } +} + +local configurations = {'c', 'cpp', 'rust'} + +for _, conf in ipairs(configurations) do + dap.configurations[conf] = { + { + name = "Launch", + type = "gdb", + request = "launch", + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + cwd = "${workspaceFolder}", + stopAtBeginningOfMainSubprogram = false, + }, + } +end + +-- Include the next few lines until the comment only if you feel you need it +dap.listeners.before.event_terminated.dapui_config = function() + dapui.close() +end +dap.listeners.before.event_exited.dapui_config = function() + dapui.close() +end +-- Include everything after this + + +vim.keymap.set('n', '<F12>', function() require('dap').continue() end) +vim.keymap.set('n', '<F5>', function() require('dap').step_over() end) +vim.keymap.set('n', '<F6>', function() require('dap').step_into() end) +vim.keymap.set('n', '<F7>', function() require('dap').step_out() end) +vim.keymap.set('n', '<C-K>', function() require('dap').toggle_breakpoint() end) +vim.api.nvim_create_user_command('DapRepeat',function() require('dap').run_last() end, {}) +vim.api.nvim_create_user_command('DapOpen',function() dapui.open() end, {}) +vim.api.nvim_create_user_command('DapClose',function() dapui.close() end, {}) diff --git a/private_dot_config/nvim/lua/evil_lualine.lua b/private_dot_config/nvim/lua/evil_lualine.lua new file mode 100644 index 0000000..b38e283 --- /dev/null +++ b/private_dot_config/nvim/lua/evil_lualine.lua @@ -0,0 +1,152 @@ +-- Eviline config for lualine +-- Author: shadmansaleh +-- Credit: glepnir +local lualine = require('lualine') + +-- Color table for highlights +-- stylua: ignore +local colors = { + bg = '#202328', + fg = '#bbc2cf', + yellow = '#ECBE7B', + cyan = '#008080', + darkblue = '#081633', + green = '#98be65', + orange = '#FF8800', + violet = '#a9a1e1', + magenta = '#c678dd', + blue = '#51afef', + red = '#ec5f67', +} + +local conditions = { + buffer_not_empty = function() + return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 + end, + hide_in_width = function() + return vim.fn.winwidth(0) > 80 + end, + check_git_workspace = function() + local filepath = vim.fn.expand('%:p:h') + local gitdir = vim.fn.finddir('.git', filepath .. ';') + return gitdir and #gitdir > 0 and #gitdir < #filepath + end, +} + +-- Config +local config = { + options = { + -- Disable sections and component separators + component_separators = '', + section_separators = '', + theme = { + -- We are going to use lualine_c an lualine_x as left and + -- right section. Both are highlighted by c theme . So we + -- are just setting default looks o statusline + normal = { c = { fg = colors.fg, bg = colors.bg } }, + inactive = { c = { fg = colors.fg, bg = colors.bg } }, + }, + }, + sections = { + -- these are to remove the defaults + lualine_a = {}, + lualine_b = {}, + lualine_y = {}, + lualine_z = {}, + -- These will be filled later + lualine_c = {}, + lualine_x = {}, + }, + inactive_sections = { + -- these are to remove the defaults + lualine_a = {}, + lualine_b = {}, + lualine_y = {}, + lualine_z = {}, + lualine_c = {}, + lualine_x = {}, + }, +} + +-- Inserts a component in lualine_c at left section +local function ins_left(component) + table.insert(config.sections.lualine_c, component) +end + +-- Inserts a component in lualine_x at right section +local function ins_right(component) + table.insert(config.sections.lualine_x, component) +end + +ins_left { + 'filename', + cond = conditions.buffer_not_empty, + path = 3, + color = { fg = colors.magenta, gui = 'bold' }, +} + +ins_left { + -- filesize component + 'filesize', + cond = conditions.buffer_not_empty, +} + +ins_left { 'location' } + +ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } } +ins_left { + 'diagnostics', + sources = { 'nvim_diagnostic' }, + symbols = { error = ' ', warn = ' ', info = ' ' }, + diagnostics_color = { + error = { fg = colors.red }, + warn = { fg = colors.yellow }, + info = { fg = colors.cyan }, + }, +} + +-- Insert mid section. You can make any number of sections in neovim :) +-- for lualine it's any number greater then 2 +ins_left { + function() + return '%=' + end, +} + +-- Add components to right sections +ins_right { 'lsp_status' } + +ins_right { + 'o:encoding', -- option component same as &encoding in viml + fmt = string.upper, -- I'm not sure why it's upper case either ;) + cond = conditions.hide_in_width, + color = { fg = colors.green, gui = 'bold' }, +} + +ins_right { + 'fileformat', + fmt = string.upper, + icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh + color = { fg = colors.green, gui = 'bold' }, +} + +ins_right { + 'branch', + icon = '', + color = { fg = colors.violet, gui = 'bold' }, +} + +ins_right { + 'diff', + -- Is it me or the symbol for modified us really weird + symbols = { added = ' ', modified = ' ', removed = ' ' }, + diff_color = { + added = { fg = colors.green }, + modified = { fg = colors.orange }, + removed = { fg = colors.red }, + }, + cond = conditions.hide_in_width, +} + +-- Now don't forget to initialize lualine +lualine.setup(config) diff --git a/private_dot_config/nvim/lua/git.lua b/private_dot_config/nvim/lua/git.lua new file mode 100644 index 0000000..da6bbdd --- /dev/null +++ b/private_dot_config/nvim/lua/git.lua @@ -0,0 +1,65 @@ +require('gitsigns').setup { + signs = { + add = { text = '+' }, + change = { text = '~' }, + delete = { text = '-' }, + topdelete = { text = '-' }, + changedelete = { text = '~' }, + untracked = { text = '┆' }, + }, + signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` + numhl = false, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` + word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` + watch_gitdir = { + follow_files = true + }, + attach_to_untracked = true, + current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` + current_line_blame_opts = { + virt_text = true, + virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' + delay = 1000, + ignore_whitespace = false, + }, + current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>', + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, -- Use default + max_file_length = 40000, -- Disable if file is longer than this (in lines) + preview_config = { + -- Options passed to nvim_open_win + border = 'single', + style = 'minimal', + relative = 'cursor', + row = 0, + col = 1 + }, + on_attach = function(bufnr) + local gs = package.loaded.gitsigns + local function map(mode, l, r, opts) + opts = opts or {} + opts.buffer = bufnr + vim.keymap.set(mode, l, r, opts) + end + + map('n', ']c', function() + if vim.wo.diff then return ']c' end + vim.schedule(function() gs.next_hunk() end) + return '<Ignore>' + end, {expr=true}) + + map('n', '[c', function() + if vim.wo.diff then return '[c' end + vim.schedule(function() gs.prev_hunk() end) + return '<Ignore>' + end, {expr=true}) + + map('n', 'hs', gs.stage_hunk) + map('v', 'hs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end) + map('n', 'hS', gs.stage_buffer) + map('n', 'hu', gs.undo_stage_hunk) + map('n', 'hp', gs.preview_hunk) + map('n', 'hB', gs.blame_line) + end +} diff --git a/.config/nvim/lua/lsp_conf.lua b/private_dot_config/nvim/lua/lsp_conf.lua index 591f51e..15fa695 100644 --- a/.config/nvim/lua/lsp_conf.lua +++ b/private_dot_config/nvim/lua/lsp_conf.lua @@ -1,83 +1,93 @@ local nvim_lsp = require('lspconfig') --- local coq = require('coq') --- - -local capabilities = require("cmp_nvim_lsp").default_capabilities() -local null_ls = require("null-ls") local trouble = require("trouble") --- Redefine sign. -local signs = { Error = 'E', Warning = 'W', Hint = 'H', Information = 'I' } +local capabilities = require("cmp_nvim_lsp").default_capabilities() -for type, icon in pairs(signs) do - local hl = 'LspDiagnosticsSign' .. type - vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' }) -end +-- Redefine LSP diagnostic signs +-- local signs = { Error = 'E', Warning = 'W', Hint = 'H', Information = 'I' } +-- +-- for type, icon in pairs(signs) do +-- local hl = 'DiagnosticSign' .. type +-- vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' }) +-- end ---local function vim.keymap.set(...) vim.api.nvim_vim.keymap.set(bufnr, ...) end local opts = { noremap=true, silent=true } -null_ls.setup({ - debug = false, - sources = { - -- Python - null_ls.builtins.formatting.black, - null_ls.builtins.formatting.isort, - null_ls.builtins.diagnostics.ruff, - -- null_ls.builtins.diagnostics.flake8, - -- Rust - null_ls.builtins.formatting.rustfmt, - -- C - null_ls.builtins.formatting.clang_format, - -- JS/TS - null_ls.builtins.formatting.prettier, - }, - on_attach = common_on_attach -}) - --- Setup lspconfig. - +-- Setup lsp_signature for function signature help require "lsp_signature".setup() ---- Use a loop to conveniently call 'setup' on multiple servers and --- map buffer local keybindings when the language server attaches - +-- Common on_attach function to handle keymaps and settings for all LSPs local common_on_attach = function(client, bufnr) - -- Mappings. + -- Key mappings vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "ga", "<cmd>lua vim.lsp.buf.code_action()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "<space>e", "<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>", opts) + -- Use vim.diagnostic.open_float for showing line diagnostics (replacing deprecated call) + vim.api.nvim_buf_set_keymap(bufnr, "n", "<space>e", "<cmd>lua vim.diagnostic.open_float()<CR>", opts) vim.keymap.set('n', '<A-f>', '<cmd>lua vim.lsp.buf.format {async = true}<cr>', opts) - vim.cmd "autocmd BufWritePre <buffer> lua vim.lsp.buf.format {async = true}" - -- lsp_status.on_attach(client) + -- Autoformat on save + vim.cmd("autocmd BufWritePre <buffer> lua vim.lsp.buf.format {async = true}") end +-- LSP servers setup +local servers = { + 'clangd', + 'gopls', + 'jdtls', + 'metals', + 'ocamllsp', + 'ruff', + 'rust_analyzer', + -- 'hls', +} -local servers = { 'pyright', 'rust_analyzer', 'tsserver', 'clangd' } --- local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.offsetEncoding = { "utf-16" } + for _, lsp in ipairs(servers) do - nvim_lsp[lsp].setup { - capabilities = capabilities, - on_attach = common_on_attach, - flags = { - debounce_text_changes = 150, + nvim_lsp[lsp].setup { + capabilities = capabilities, + on_attach = common_on_attach, + flags = { + debounce_text_changes = 150, + } } - } end +nvim_lsp.ts_ls.setup { + capabilities = capabilities, + on_attach = common_on_attach, + filetypes = { "typescript", "typescriptreact", "typescript.tsx" }, + cmd = { "typescript-language-server", "--stdio" } +} + +-- nvim_lsp.pyright.setup { +-- settings = { +-- pyright = { +-- -- Using Ruff's import organizer +-- disableOrganizeImports = true, +-- }, +-- python = { +-- analysis = { +-- -- Ignore all files for analysis to exclusively use Ruff for linting +-- ignore = { '*' }, +-- }, +-- }, +-- }, +-- } + +vim.lsp.inlay_hint.enable(true, { 0 }) + +-- Trouble setup trouble.setup({ use_diagnostic_signs = true, auto_close = true, auto_open = false }) - --- nvim-cmp setup +-- nvim-cmp setup for autocompletion local luasnip = require 'luasnip' local cmp = require 'cmp' cmp.setup { diff --git a/private_dot_config/nvim/plugin/packer_compiled.lua b/private_dot_config/nvim/plugin/packer_compiled.lua new file mode 100644 index 0000000..9d220c4 --- /dev/null +++ b/private_dot_config/nvim/plugin/packer_compiled.lua @@ -0,0 +1,254 @@ +-- Automatically generated packer.nvim plugin loader code + +if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return +end + +vim.api.nvim_command('packadd packer.nvim') + +local no_errors, error_msg = pcall(function() + +_G._packer = _G._packer or {} +_G._packer.inside_compile = true + +local time +local profile_info +local should_profile = false +if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end +else + time = function(chunk, start) end +end + +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end + if threshold then + table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)') + end + + _G._packer.profile_output = results +end + +time([[Luarocks path setup]], true) +local package_path_str = "/home/santo/.cache/nvim/packer_hererocks/2.1.1741730670/share/lua/5.1/?.lua;/home/santo/.cache/nvim/packer_hererocks/2.1.1741730670/share/lua/5.1/?/init.lua;/home/santo/.cache/nvim/packer_hererocks/2.1.1741730670/lib/luarocks/rocks-5.1/?.lua;/home/santo/.cache/nvim/packer_hererocks/2.1.1741730670/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/santo/.cache/nvim/packer_hererocks/2.1.1741730670/lib/lua/5.1/?.so" +if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str +end + +if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern +end + +time([[Luarocks path setup]], false) +time([[try_loadstring definition]], true) +local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s), name, _G.packer_plugins[name]) + if not success then + vim.schedule(function() + vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) + end) + end + return result +end + +time([[try_loadstring definition]], false) +time([[Defining packer_plugins]], true) +_G.packer_plugins = { + ["Comment.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/Comment.nvim", + url = "https://github.com/numToStr/Comment.nvim" + }, + LuaSnip = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/LuaSnip", + url = "https://github.com/L3MON4D3/LuaSnip" + }, + ["cmp-nvim-lsp"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp", + url = "https://github.com/hrsh7th/cmp-nvim-lsp" + }, + cmp_luasnip = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/cmp_luasnip", + url = "https://github.com/saadparwaiz1/cmp_luasnip" + }, + ["crates.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/crates.nvim", + url = "https://github.com/saecki/crates.nvim" + }, + ["diffview.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/diffview.nvim", + url = "https://github.com/sindrets/diffview.nvim" + }, + ["gitsigns.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/gitsigns.nvim", + url = "https://github.com/lewis6991/gitsigns.nvim" + }, + ["lsp-colors.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/lsp-colors.nvim", + url = "https://github.com/folke/lsp-colors.nvim" + }, + ["lsp_signature.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/lsp_signature.nvim", + url = "https://github.com/ray-x/lsp_signature.nvim" + }, + ["lualine.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/lualine.nvim", + url = "https://github.com/nvim-lualine/lualine.nvim" + }, + ["neovim-ayu"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/neovim-ayu", + url = "https://github.com/Shatur/neovim-ayu" + }, + ["nvim-cmp"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-cmp", + url = "https://github.com/hrsh7th/nvim-cmp" + }, + ["nvim-dap"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-dap", + url = "https://github.com/mfussenegger/nvim-dap" + }, + ["nvim-dap-go"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-dap-go", + url = "https://github.com/leoluz/nvim-dap-go" + }, + ["nvim-dap-ui"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-dap-ui", + url = "https://github.com/rcarriga/nvim-dap-ui" + }, + ["nvim-lspconfig"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", + url = "https://github.com/neovim/nvim-lspconfig" + }, + ["nvim-nio"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-nio", + url = "https://github.com/nvim-neotest/nvim-nio" + }, + ["nvim-tree.lua"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-tree.lua", + url = "https://github.com/kyazdani42/nvim-tree.lua" + }, + ["nvim-treesitter"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-treesitter", + url = "https://github.com/nvim-treesitter/nvim-treesitter" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-web-devicons", + url = "https://github.com/kyazdani42/nvim-web-devicons" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/packer.nvim", + url = "https://github.com/wbthomason/packer.nvim" + }, + ["papercolor-theme"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/papercolor-theme", + url = "https://github.com/NLKNguyen/papercolor-theme" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/plenary.nvim", + url = "https://github.com/nvim-lua/plenary.nvim" + }, + ["proverif.vim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/proverif.vim", + url = "https://github.com/koraa/proverif.vim" + }, + ["rust.vim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/rust.vim", + url = "https://github.com/rust-lang/rust.vim" + }, + ["telescope.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/telescope.nvim", + url = "https://github.com/nvim-telescope/telescope.nvim" + }, + ["todo-comments.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/todo-comments.nvim", + url = "https://github.com/folke/todo-comments.nvim" + }, + ["trouble.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/trouble.nvim", + url = "https://github.com/folke/trouble.nvim" + }, + ["vim-css-color"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/vim-css-color", + url = "https://github.com/ap/vim-css-color" + }, + ["vim-fugitive"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/vim-fugitive", + url = "https://github.com/tpope/vim-fugitive" + }, + ["vim-searchindex"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/vim-searchindex", + url = "https://github.com/google/vim-searchindex" + }, + ["vim-visual-multi"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/vim-visual-multi", + url = "https://github.com/mg979/vim-visual-multi" + } +} + +time([[Defining packer_plugins]], false) + +_G._packer.inside_compile = false +if _G._packer.needs_bufread == true then + vim.cmd("doautocmd BufRead") +end +_G._packer.needs_bufread = false + +if should_profile then save_profiles() end + +end) + +if not no_errors then + error_msg = error_msg:gsub('"', '\\"') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') +end diff --git a/.config/redshift.conf b/private_dot_config/redshift.conf index 7d76847..7d76847 100644 --- a/.config/redshift.conf +++ b/private_dot_config/redshift.conf diff --git a/.config/rofi/config.rasi b/private_dot_config/rofi/config.rasi index 55fb62d..55fb62d 100644 --- a/.config/rofi/config.rasi +++ b/private_dot_config/rofi/config.rasi diff --git a/private_dot_config/starship.toml b/private_dot_config/starship.toml new file mode 100644 index 0000000..328ae61 --- /dev/null +++ b/private_dot_config/starship.toml @@ -0,0 +1,40 @@ +add_newline = false + +[character] +success_symbol = '[\$](bold green)' +error_symbol = '[\$](bold red)' + +[directory] +truncation_length = 4 +style = "cyan" + +[line_break] +disabled = true + +[custom.ssh_keys] +disabled = true +description = "SSH key count" +when = "ssh-add -l | grep -v -q 'no identities'" +command = "ssh-add -l | grep -v 'no identities' | wc -l" +format = "$symbol[$output]($style) " +shell = ["bash", "--noprofile", "--norc"] +symbol = "🔑" +style = "bold fg:green" + +[gcloud] +disabled = true + +[username] +style_user = 'fg:11 bold' +style_root = 'cyan bold' +format = '[$user]($style)' +disabled = false +show_always = true + +[hostname] +ssh_only = false +format = '[$ssh_symbol](bold blue)@[$hostname](bold red) ' +disabled = false + +[package] +disabled = true diff --git a/private_dot_config/zellij/config.kdl b/private_dot_config/zellij/config.kdl new file mode 100644 index 0000000..65b5e1d --- /dev/null +++ b/private_dot_config/zellij/config.kdl @@ -0,0 +1,415 @@ +// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true" +ui { + pane_frames { + hide_session_name true + } +} + +keybinds { + normal { + // uncomment this and adjust key if using copy_on_select=false + // bind "Alt c" { Copy; } + } + locked { + bind "Ctrl g" { SwitchToMode "Normal"; } + } + resize { + bind "Ctrl n" { SwitchToMode "Normal"; } + bind "h" "Left" { Resize "Increase Left"; } + bind "j" "Down" { Resize "Increase Down"; } + bind "k" "Up" { Resize "Increase Up"; } + bind "l" "Right" { Resize "Increase Right"; } + bind "H" { Resize "Decrease Left"; } + bind "J" { Resize "Decrease Down"; } + bind "K" { Resize "Decrease Up"; } + bind "L" { Resize "Decrease Right"; } + bind "=" "+" { Resize "Increase"; } + bind "-" { Resize "Decrease"; } + } + pane { + bind "Ctrl p" { SwitchToMode "Normal"; } + bind "h" "Left" { MoveFocus "Left"; } + bind "l" "Right" { MoveFocus "Right"; } + bind "j" "Down" { MoveFocus "Down"; } + bind "k" "Up" { MoveFocus "Up"; } + bind "p" { SwitchFocus; } + bind "n" { NewPane; SwitchToMode "Normal"; } + bind "d" { NewPane "Down"; SwitchToMode "Normal"; } + bind "r" { NewPane "Right"; SwitchToMode "Normal"; } + bind "x" { CloseFocus; SwitchToMode "Normal"; } + bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; } + bind "z" { TogglePaneFrames; SwitchToMode "Normal"; } + bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; } + bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; } + bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;} + } + move { + bind "Ctrl h" { SwitchToMode "Normal"; } + bind "n" "Tab" { MovePane; } + bind "p" { MovePaneBackwards; } + bind "h" "Left" { MovePane "Left"; } + bind "j" "Down" { MovePane "Down"; } + bind "k" "Up" { MovePane "Up"; } + bind "l" "Right" { MovePane "Right"; } + } + tab { + bind "Ctrl t" { SwitchToMode "Normal"; } + bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; } + bind "h" "Left" "Up" "k" { GoToPreviousTab; } + bind "l" "Right" "Down" "j" { GoToNextTab; } + bind "n" { NewTab; SwitchToMode "Normal"; } + bind "x" { CloseTab; SwitchToMode "Normal"; } + bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; } + bind "b" { BreakPane; SwitchToMode "Normal"; } + bind "]" { BreakPaneRight; SwitchToMode "Normal"; } + bind "[" { BreakPaneLeft; SwitchToMode "Normal"; } + bind "1" { GoToTab 1; SwitchToMode "Normal"; } + bind "2" { GoToTab 2; SwitchToMode "Normal"; } + bind "3" { GoToTab 3; SwitchToMode "Normal"; } + bind "4" { GoToTab 4; SwitchToMode "Normal"; } + bind "5" { GoToTab 5; SwitchToMode "Normal"; } + bind "6" { GoToTab 6; SwitchToMode "Normal"; } + bind "7" { GoToTab 7; SwitchToMode "Normal"; } + bind "8" { GoToTab 8; SwitchToMode "Normal"; } + bind "9" { GoToTab 9; SwitchToMode "Normal"; } + bind "Tab" { ToggleTab; } + } + scroll { + bind "Ctrl s" { SwitchToMode "Normal"; } + bind "e" { EditScrollback; SwitchToMode "Normal"; } + bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; } + bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } + bind "j" "Down" { ScrollDown; } + bind "k" "Up" { ScrollUp; } + bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } + bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } + bind "d" { HalfPageScrollDown; } + bind "u" { HalfPageScrollUp; } + // uncomment this and adjust key if using copy_on_select=false + // bind "Alt c" { Copy; } + } + search { + bind "Ctrl s" { SwitchToMode "Normal"; } + bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } + bind "j" "Down" { ScrollDown; } + bind "k" "Up" { ScrollUp; } + bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } + bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } + bind "d" { HalfPageScrollDown; } + bind "u" { HalfPageScrollUp; } + bind "n" { Search "down"; } + bind "p" { Search "up"; } + bind "c" { SearchToggleOption "CaseSensitivity"; } + bind "w" { SearchToggleOption "Wrap"; } + bind "o" { SearchToggleOption "WholeWord"; } + } + entersearch { + bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; } + bind "Enter" { SwitchToMode "Search"; } + } + renametab { + bind "Ctrl c" { SwitchToMode "Normal"; } + bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; } + } + renamepane { + bind "Ctrl c" { SwitchToMode "Normal"; } + bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; } + } + session { + bind "Ctrl o" { SwitchToMode "Normal"; } + bind "Ctrl s" { SwitchToMode "Scroll"; } + bind "d" { Detach; } + bind "w" { + LaunchOrFocusPlugin "session-manager" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } + bind "c" { + LaunchOrFocusPlugin "configuration" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } + bind "p" { + LaunchOrFocusPlugin "plugin-manager" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } + } + tmux { + bind "[" { SwitchToMode "Scroll"; } + bind "Ctrl b" { Write 2; SwitchToMode "Normal"; } + bind "\"" { NewPane "Down"; SwitchToMode "Normal"; } + bind "%" { NewPane "Right"; SwitchToMode "Normal"; } + bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; } + bind "c" { NewTab; SwitchToMode "Normal"; } + bind "," { SwitchToMode "RenameTab"; } + bind "p" { GoToPreviousTab; SwitchToMode "Normal"; } + bind "n" { GoToNextTab; SwitchToMode "Normal"; } + bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; } + bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; } + bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; } + bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; } + bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; } + bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; } + bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; } + bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; } + bind "o" { FocusNextPane; } + bind "d" { Detach; } + bind "Space" { NextSwapLayout; } + bind "x" { CloseFocus; SwitchToMode "Normal"; } + } + shared_except "locked" { + bind "Ctrl g" { SwitchToMode "Locked"; } + bind "Ctrl q" { Quit; } + bind "Alt f" { ToggleFloatingPanes; } + bind "Alt n" { NewPane; } + bind "Alt i" { MoveTab "Left"; } + bind "Alt o" { MoveTab "Right"; } + bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; } + bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; } + bind "Alt j" "Alt Down" { MoveFocus "Down"; } + bind "Alt k" "Alt Up" { MoveFocus "Up"; } + bind "Alt =" "Alt +" { Resize "Increase"; } + bind "Alt -" { Resize "Decrease"; } + bind "Alt [" { PreviousSwapLayout; } + bind "Alt ]" { NextSwapLayout; } + } + shared_except "normal" "locked" { + bind "Enter" "Esc" { SwitchToMode "Normal"; } + } + shared_except "pane" "locked" { + bind "Ctrl p" { SwitchToMode "Pane"; } + } + shared_except "resize" "locked" { + bind "Ctrl n" { SwitchToMode "Resize"; } + } + shared_except "scroll" "locked" { + bind "Ctrl s" { SwitchToMode "Scroll"; } + } + shared_except "session" "locked" { + bind "Ctrl o" { SwitchToMode "Session"; } + } + shared_except "tab" "locked" { + bind "Ctrl t" { SwitchToMode "Tab"; } + } + shared_except "move" "locked" { + bind "Ctrl h" { SwitchToMode "Move"; } + } + shared_except "tmux" "locked" { + bind "Ctrl b" { SwitchToMode "Tmux"; } + } +} + +// Plugin aliases - can be used to change the implementation of Zellij +// changing these requires a restart to take effect +plugins { + tab-bar location="zellij:tab-bar" + status-bar location="zellij:status-bar" + strider location="zellij:strider" + compact-bar location="zellij:compact-bar" + session-manager location="zellij:session-manager" + welcome-screen location="zellij:session-manager" { + welcome_screen true + } + filepicker location="zellij:strider" { + cwd "/" + } + configuration location="zellij:configuration" + plugin-manager location="zellij:plugin-manager" +} + +// Plugins to load in the background when a new session starts +load_plugins { + // "file:/path/to/my-plugin.wasm" + // "https://example.com/my-plugin.wasm" +} + +// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP +// eg. when terminal window with an active zellij session is closed +// (Requires restart) +// Options: +// - detach (Default) +// - quit +// +// on_force_close "quit" + +// Send a request for a simplified ui (without arrow fonts) to plugins +// Options: +// - true +// - false (Default) +// +simplified_ui true + +// Choose the path to the default shell that zellij will use for opening new panes +// Default: $SHELL +// +// default_shell "fish" + +// Choose the path to override cwd that zellij will use for opening new panes +// +// default_cwd "" + +// Toggle between having pane frames around the panes +// Options: +// - true (default) +// - false +// +pane_frames false + +// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible +// Options: +// - true (default) +// - false +// +// auto_layout true + +// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected +// (Requires restart) +// Options: +// - true (default) +// - false +// +// session_serialization false + +// Whether pane viewports are serialized along with the session, default is false +// (Requires restart) +// Options: +// - true +// - false (default) +// +// serialize_pane_viewport true + +// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0 +// defaults to the scrollback size. If this number is higher than the scrollback size, it will +// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true. +// (Requires restart) +// +// scrollback_lines_to_serialize 10000 + +// Define color themes for Zellij +// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes +// Once these themes are defined, one of them should to be selected in the "theme" section of this file +// +// themes { +// dracula { +// fg 248 248 242 +// bg 40 42 54 +// red 255 85 85 +// green 80 250 123 +// yellow 241 250 140 +// blue 98 114 164 +// magenta 255 121 198 +// orange 255 184 108 +// cyan 139 233 253 +// black 0 0 0 +// white 255 255 255 +// } +// } + +// Choose the theme that is specified in the themes section. +// Default: default +// +theme "default" + +// The name of the default layout to load on startup +// Default: "default" +// (Requires restart) +// +default_layout "compact" + +// Choose the mode that zellij uses when starting up. +// Default: normal +// +// default_mode "locked" + +// Toggle enabling the mouse mode. +// On certain configurations, or terminals this could +// potentially interfere with copying text. +// (Requires restart) +// Options: +// - true (default) +// - false +// +// mouse_mode false + +// Configure the scroll back buffer size +// This is the number of lines zellij stores for each pane in the scroll back +// buffer. Excess number of lines are discarded in a FIFO fashion. +// (Requires restart) +// Valid values: positive integers +// Default value: 10000 +// +// scroll_buffer_size 10000 + +// Provide a command to execute when copying text. The text will be piped to +// the stdin of the program to perform the copy. This can be used with +// terminal emulators which do not support the OSC 52 ANSI control sequence +// that will be used by default if this option is not set. +// Examples: +// +// copy_command "xclip -selection clipboard" // x11 +// copy_command "wl-copy" // wayland +// copy_command "pbcopy" // osx + +// Choose the destination for copied text +// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard. +// Does not apply when using copy_command. +// Options: +// - system (default) +// - primary +// +// copy_clipboard "primary" + +// Enable or disable automatic copy (and clear) of selection when releasing mouse +// Default: true +// +// copy_on_select false + +// Path to the default editor to use to edit pane scrollbuffer +// Default: $EDITOR or $VISUAL +// +scrollback_editor "/usr/local/bin/nvim" + +// When attaching to an existing session with other users, +// should the session be mirrored (true) +// or should each user have their own cursor (false) +// (Requires restart) +// Default: false +// +// mirror_session true + +// The folder in which Zellij will look for layouts +// (Requires restart) +// +// layout_dir "/path/to/my/layout_dir" + +// The folder in which Zellij will look for themes +// (Requires restart) +// +// theme_dir "/path/to/my/theme_dir" + +// Enable or disable the rendering of styled and colored underlines (undercurl). +// May need to be disabled for certain unsupported terminals +// (Requires restart) +// Default: true +// +// styled_underlines false + +// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know +// metadata info on this session) +// (Requires restart) +// Default: false +// +// disable_session_metadata true + +// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it) +// (Requires restart) +// Default: true (if the host terminal supports it) +// +// support_kitty_keyboard_protocol false diff --git a/zsh/.zshrc b/zsh/.zshrc deleted file mode 100644 index 557ff07..0000000 --- a/zsh/.zshrc +++ /dev/null @@ -1,40 +0,0 @@ -# now use Starship instead of oh-my-zsh theme -export ZSH="/home/dcariotti/.oh-my-zsh" -#ZSH_THEME="essembeh" -ZSH_THEME="lukerandall-d" -plugins=( - git - zsh-autosuggestions - zsh-syntax-highlighting -) - -source $ZSH/oh-my-zsh.sh - -#eval "$(starship init zsh)" - -export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm -[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion - -export PATH=$PATH:/usr/local/go/bin - -[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh - -export WORKON_HOME=$HOME/.virtualenvs -source /usr/share/virtualenvwrapper/virtualenvwrapper.sh - -eval "$(direnv hook zsh)" -eval "$(jump shell)" -eval "$(mcfly init zsh)" - -# Install Ruby Gems to ~/gems -export GEM_HOME="$HOME/.gems" -export PATH="$HOME/.gem/ruby/2.7.0/bin:$PATH" -alias mutt=neomutt -alias gap="git add -p" -export TERM=xterm-256color - -fpath+=${ZDOTDIR:-~}/.zsh_functions - -# Generated for envman. Do not edit. -[ -s "$HOME/.config/envman/load.sh" ] && source "$HOME/.config/envman/load.sh" diff --git a/zsh/lukerandall-d.zsh-theme b/zsh/lukerandall-d.zsh-theme deleted file mode 100644 index 75a7606..0000000 --- a/zsh/lukerandall-d.zsh-theme +++ /dev/null @@ -1,28 +0,0 @@ -# ZSH Theme - Preview: https://cl.ly/f701d00760f8059e06dc -# Thanks to gallifrey, upon whose theme this is based - -local return_code="%(?..%{$fg_bold[red]%}%? ↵%{$reset_color%})" - -function my_git_prompt_info() { - ref=$(git symbolic-ref HEAD 2> /dev/null) || return - GIT_STATUS=$(git_prompt_status) - [[ -n $GIT_STATUS ]] && GIT_STATUS=" $GIT_STATUS" - echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$GIT_STATUS$ZSH_THEME_GIT_PROMPT_SUFFIX" -} - -function path() { - echo ${${:-/${(j:/:)${(M)${(s:/:)${(D)PWD:h}}#(|.)[^.]}}/${PWD:t}}//\/~/\~} -} - -PROMPT='%{$fg_bold[green]%}%n@%m%{$reset_color%} %{$fg_bold[yellow]%}$(path)%{$reset_color%} $(my_git_prompt_info)%{$reset_color%}%B$%b ' -RPS1="${return_code}" - -ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[cyan]%}(" -ZSH_THEME_GIT_PROMPT_SUFFIX=") %{$reset_color%}" -ZSH_THEME_GIT_PROMPT_UNTRACKED="%%" -ZSH_THEME_GIT_PROMPT_ADDED="+" -ZSH_THEME_GIT_PROMPT_MODIFIED="*" -ZSH_THEME_GIT_PROMPT_RENAMED="~" -ZSH_THEME_GIT_PROMPT_DELETED="!" -ZSH_THEME_GIT_PROMPT_UNMERGED="?" - |