summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/.alacritty.yml42
-rw-r--r--.config/nvim/after/ftdetect/prr.vim1
-rw-r--r--.config/nvim/init.vim233
-rw-r--r--.config/nvim/lua/git.lua35
-rw-r--r--.config/starship.toml23
-rw-r--r--cgit.css205
-rw-r--r--dot_alacritty.toml63
-rw-r--r--dot_clang-format10
-rw-r--r--dot_gitconfig49
-rw-r--r--dot_gitignore1
-rw-r--r--dot_mbsyncrc (renamed from mutt/.mbsyncrc)0
-rw-r--r--dot_neomutt/colors.muttrc (renamed from mutt/.neomutt/colors.muttrc)0
-rw-r--r--dot_neomutt/first.email (renamed from mutt/.neomutt/first.email)0
-rw-r--r--dot_neomutt/mailcap (renamed from mutt/.neomutt/mailcap)1
-rw-r--r--dot_neomuttrc (renamed from mutt/.neomuttrc)0
-rw-r--r--dot_oh-my-zsh/themes/jon.zsh-theme113
-rw-r--r--dot_tmux.conf (renamed from tmux/.tmux.conf)13
-rw-r--r--dot_vimrc100
-rw-r--r--dot_zshrc97
-rw-r--r--git/.gitconfig35
-rw-r--r--newsboat/config27
-rw-r--r--private_dot_config/atuin/config.toml92
-rw-r--r--private_dot_config/gh/config.yml12
-rw-r--r--private_dot_config/i3/config (renamed from .config/i3/config)0
-rw-r--r--private_dot_config/i3blocks/config (renamed from .config/i3blocks/config)0
-rw-r--r--[-rwxr-xr-x]private_dot_config/i3blocks/i3_battery.sh (renamed from .config/i3blocks/i3_battery.sh)0
-rw-r--r--private_dot_config/iamb/config.toml14
-rw-r--r--private_dot_config/nvim/after/ftdetect/.keep0
-rw-r--r--private_dot_config/nvim/after/ftplugin/dockerfile.vim (renamed from .config/nvim/after/ftplugin/dockerfile.vim)0
-rw-r--r--private_dot_config/nvim/after/ftplugin/json.vim (renamed from .config/nvim/after/ftplugin/json.vim)0
-rw-r--r--private_dot_config/nvim/after/ftplugin/markdown.vim (renamed from .config/nvim/after/ftplugin/markdown.vim)0
-rw-r--r--private_dot_config/nvim/after/syntax/antlr4.vim93
-rw-r--r--private_dot_config/nvim/after/syntax/jolie.vim59
-rw-r--r--private_dot_config/nvim/after/syntax/prr.vim (renamed from .config/nvim/after/syntax/prr.vim)0
-rw-r--r--private_dot_config/nvim/dot_netrwhist5
-rw-r--r--private_dot_config/nvim/init.lua242
-rw-r--r--private_dot_config/nvim/lua/dap_conf.lua52
-rw-r--r--private_dot_config/nvim/lua/evil_lualine.lua152
-rw-r--r--private_dot_config/nvim/lua/git.lua65
-rw-r--r--private_dot_config/nvim/lua/lsp_conf.lua (renamed from .config/nvim/lua/lsp_conf.lua)108
-rw-r--r--private_dot_config/nvim/plugin/packer_compiled.lua254
-rw-r--r--private_dot_config/redshift.conf (renamed from .config/redshift.conf)0
-rw-r--r--private_dot_config/rofi/config.rasi (renamed from .config/rofi/config.rasi)0
-rw-r--r--private_dot_config/starship.toml40
-rw-r--r--private_dot_config/zellij/config.kdl415
-rw-r--r--zsh/.zshrc40
-rw-r--r--zsh/lukerandall-d.zsh-theme28
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="?"
-