├── .bak ├── vim │ ├── README.md │ └── vimrc ├── scripts │ ├── setup_git │ ├── setup_tmux │ ├── setup_gnupg │ ├── setup_zsh │ ├── setup_yubi │ ├── setup_vim │ └── setup ├── yubikey │ ├── yubi-profile.sh │ └── yubitouch.sh ├── gnupg │ └── gpg-agent.conf ├── README.md ├── aliases.sh ├── slate ├── zsh │ ├── my-theme.zsh-theme │ └── zshrc.sh ├── git │ └── git.conf ├── tmux │ ├── .tmux.conf │ └── tmux.conf └── .bak-vimrc ├── .config ├── broot │ ├── conf.toml │ ├── launcher │ │ ├── installed-v4 │ │ └── bash │ │ │ └── br │ ├── skins │ │ ├── white.hjson │ │ ├── native-16.hjson │ │ ├── dark-gruvbox.hjson │ │ ├── solarized-light.hjson │ │ ├── dark-orange.hjson │ │ ├── dark-blue.hjson │ │ ├── solarized-dark.hjson │ │ ├── catppuccin-mocha.hjson │ │ └── catppuccin-macchiato.hjson │ ├── verbs.hjson │ └── conf.hjson ├── gh │ ├── hosts.yml │ └── config.yml ├── nvim │ ├── plugin │ │ └── packer_compiled.lua │ ├── lua │ │ ├── .bak.neotree.lua │ │ ├── screenshots.lua │ │ ├── init.lua │ │ ├── .bak.nu_init.lua │ │ ├── telescope_init.lua │ │ ├── colors.lua │ │ ├── config │ │ │ └── autocmds.lua │ │ ├── lsp.lua │ │ ├── guihua.lua │ │ ├── treesitter_init.lua │ │ ├── _plugins.lua │ │ ├── evil_lualine.lua │ │ └── golang.lua │ └── init.vim ├── atuin │ ├── atuin-receipt.json │ └── config.toml ├── alacritty │ └── alacritty.toml └── deltadiff │ └── themes.gitconfig ├── .stow-local-ignore ├── .dotfiles ├── ghostty.sh ├── envs.sh ├── completions.sh ├── paths.sh ├── nuon.sh ├── aliases.sh └── zellij-completions ├── ghostty └── config ├── .gitignore └── .zshrc /.bak/vim/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.config/broot/conf.toml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.stow-local-ignore: -------------------------------------------------------------------------------- 1 | ghostty/ 2 | -------------------------------------------------------------------------------- /.bak/scripts/setup_git: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo " * .gitconfig" 4 | cp ./git/git.conf ~/.gitconfig 5 | -------------------------------------------------------------------------------- /.bak/scripts/setup_tmux: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo " * .tmux.conf" 4 | cp ./tmux/tmux.conf ~/.tmux.conf 5 | -------------------------------------------------------------------------------- /.bak/yubikey/yubi-profile.sh: -------------------------------------------------------------------------------- 1 | export SSH_AGENT_PID="" 2 | export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) 3 | -------------------------------------------------------------------------------- /.config/gh/hosts.yml: -------------------------------------------------------------------------------- 1 | github.com: 2 | git_protocol: ssh 3 | users: 4 | fidiego: 5 | user: fidiego 6 | -------------------------------------------------------------------------------- /.config/nvim/plugin/packer_compiled.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fidiego/dotfiles/master/.config/nvim/plugin/packer_compiled.lua -------------------------------------------------------------------------------- /.bak/gnupg/gpg-agent.conf: -------------------------------------------------------------------------------- 1 | pinentry-program /usr/bin/pinentry 2 | default-cache-ttl 600 3 | enable-ssh-support 4 | max-cache-ttl 7200 5 | -------------------------------------------------------------------------------- /.bak/scripts/setup_gnupg: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo " * .gnupg/gpg-agent.conf" 4 | cp ./gnupg/gpg-agent.conf ~/.gnupg/gpg-agent.conf 5 | -------------------------------------------------------------------------------- /.bak/scripts/setup_zsh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo " * .zshrc" 4 | cp ./zsh/zshrc.sh ~/.zshrc 5 | cp ./zsh/my-theme.zsh-theme ~/.oh-my-zsh/themes/my-theme.zsh-theme 6 | -------------------------------------------------------------------------------- /.config/broot/launcher/installed-v4: -------------------------------------------------------------------------------- 1 | 2 | This file tells broot the installation of the br function was done. 3 | If there's a problem and you want to install it again run 4 | broot -- install 5 | -------------------------------------------------------------------------------- /.bak/scripts/setup_yubi: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo " * yubi-profile.sh" 4 | cp ./yubikey/yubi-profile.sh ~/.dotfiles/.yubi-profile 5 | 6 | echo " * yubitouch.sh" 7 | cp ./yubikey/yubitouch.sh /usr/local/bin/yubitouch.sh 8 | -------------------------------------------------------------------------------- /.dotfiles/ghostty.sh: -------------------------------------------------------------------------------- 1 | # Ghostty shell integration for zsh. This should be at the top of your zshrc! 2 | if [ -n "${GHOSTTY_RESOURCES_DIR}" ]; then 3 | builtin source "${GHOSTTY_RESOURCES_DIR}/shell-integration/bash/ghostty.zsh" 4 | fi 5 | -------------------------------------------------------------------------------- /.dotfiles/envs.sh: -------------------------------------------------------------------------------- 1 | export EDITOR="nvim" 2 | export K9S_EDITOR="nvim" 3 | 4 | # 5 | # Git 6 | # 7 | export GIT_EDITOR="nvim" 8 | 9 | # 10 | # gpg 11 | # 12 | # 13 | export GPG_TTY=$(tty) 14 | 15 | # 16 | # ssh 17 | # 18 | export SSH_KEY_PATH="~/.ssh/rsa_id" 19 | -------------------------------------------------------------------------------- /.config/nvim/lua/.bak.neotree.lua: -------------------------------------------------------------------------------- 1 | require('neo-tree').setup { 2 | filesystem = { 3 | filtered_items = { 4 | visible = true, -- This is what you want: If you set this to `true`, all "hide" just mean "dimmed out" 5 | hide_dotfiles = false, 6 | hide_gitignored = true, 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /.config/atuin/atuin-receipt.json: -------------------------------------------------------------------------------- 1 | {"binaries":["atuin"],"binary_aliases":{},"cdylibs":[],"cstaticlibs":[],"install_layout":"flat","install_prefix":"/Users/fd/.atuin/bin","modify_path":true,"provider":{"source":"cargo-dist","version":"0.25.1"},"source":{"app_name":"atuin","name":"atuin","owner":"atuinsh","release_type":"github"},"version":"18.4.0"} 2 | -------------------------------------------------------------------------------- /.config/nvim/lua/screenshots.lua: -------------------------------------------------------------------------------- 1 | require("freeze-code").setup({ 2 | freeze_path = vim.fn.exepath("freeze"), -- where is freeze installed 3 | freeze_config = { -- configuration options for `freeze` command 4 | output = "freeze", 5 | config = "user", 6 | theme = "default", 7 | show_line_numbers = true 8 | }, 9 | }) 10 | -------------------------------------------------------------------------------- /ghostty/config: -------------------------------------------------------------------------------- 1 | theme = "Adventure" 2 | 3 | font-family = "" 4 | font-family = "PragmataPro Mono" 5 | font-size = "17" 6 | font-thicken = true 7 | font-thicken-strength = 0 8 | # font-feature = -calt 9 | # font-feature = -liga 10 | font-feature = -dlig 11 | 12 | link = "" 13 | link-url = true 14 | 15 | mouse-shift-capture = "always" 16 | -------------------------------------------------------------------------------- /.bak/README.md: -------------------------------------------------------------------------------- 1 | # Dotfiles 2 | 3 | My dotfiles 4 | 5 | ### Vim 6 | - vundle 7 | - python 8 | - go 9 | - jsx 10 | - tmux nav 11 | 12 | **N.B.** You may need to run `git config --global core.autocrlf input` before installing bundles and whatnot 13 | 14 | ### tmux 15 | - theme 16 | - pane nav 17 | - custom footer 18 | - custom mappings 19 | 20 | -------------------------------------------------------------------------------- /.bak/scripts/setup_vim: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo " * install vundle" 4 | curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ 5 | https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim 6 | 7 | echo " * ~/.vim" 8 | mkdir ~/.vim 9 | 10 | echo " * .vimrc" 11 | cp ./vim/vimrc ~/.vimrc 12 | 13 | echo " installing theme" 14 | mkdir ~/.vim/colors 15 | cp ./vim/colors/monokai.vim ~/.vim/colors/ 16 | 17 | ls ~/.vim 18 | -------------------------------------------------------------------------------- /.dotfiles/completions.sh: -------------------------------------------------------------------------------- 1 | # zellij completions 2 | source ~/.dotfiles/zellij-completions.sh 3 | 4 | # homebrew completions 5 | FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}" 6 | 7 | # bun completions 8 | # [ -s "/Users/fd/.bun/_bun" ] && source "/Users/fd/.bun/_bun" 9 | 10 | # # fzf completions 11 | # source <(fzf --zsh) 12 | 13 | # zoxide 14 | eval "$(zoxide init zsh)" 15 | 16 | # nuon 17 | # source <(nuon completion zsh) 18 | -------------------------------------------------------------------------------- /.config/broot/launcher/bash/br: -------------------------------------------------------------------------------- 1 | 2 | # This script was automatically generated by the broot program 3 | # More information can be found in https://github.com/Canop/broot 4 | # This function starts broot and executes the command 5 | # it produces, if any. 6 | # It's needed because some shell commands, like `cd`, 7 | # have no useful effect if executed in a subshell. 8 | function br { 9 | local cmd cmd_file code 10 | cmd_file=$(mktemp) 11 | if broot --outcmd "$cmd_file" "$@"; then 12 | cmd=$(<"$cmd_file") 13 | command rm -f "$cmd_file" 14 | eval "$cmd" 15 | else 16 | code=$? 17 | command rm -f "$cmd_file" 18 | return "$code" 19 | fi 20 | } 21 | -------------------------------------------------------------------------------- /.config/nvim/lua/init.lua: -------------------------------------------------------------------------------- 1 | require('gitsigns').setup() 2 | 3 | local colors = require('colors') 4 | 5 | vim.opt.termguicolors = true 6 | vim.opt.cursorline = true 7 | 8 | -- Line number colors (cool up, warm down) 9 | vim.api.nvim_set_hl(0, 'LineNrAbove', { fg = colors.success }) -- teal #5BBFB5 10 | vim.api.nvim_set_hl(0, 'LineNr', { fg = colors.text, bold = true }) 11 | vim.api.nvim_set_hl(0, 'LineNrBelow', { fg = colors.error }) -- red #FF8383 12 | 13 | -- Tab colors (Nuon-themed) 14 | vim.api.nvim_set_hl(0, 'TabLine', { fg = colors.subtle, bg = colors.bg }) 15 | vim.api.nvim_set_hl(0, 'TabLineSel', { fg = colors.text, bg = colors.accent, bold = true }) 16 | vim.api.nvim_set_hl(0, 'TabLineFill', { bg = colors.bg }) 17 | -------------------------------------------------------------------------------- /.dotfiles/paths.sh: -------------------------------------------------------------------------------- 1 | PATH="$PATH:$HOME/.local/bin" 2 | PATH="$PATH:$HOME/bin" 3 | 4 | # homebrew 5 | export PATH="/usr/local/sbin:$PATH" 6 | export PATH="/opt/homebrew/bin:$PATH" 7 | export PATH="/opt/homebrew/sbin:$PATH" 8 | 9 | # psql client 10 | export PATH="$PATH:/usr/local/opt/libpq/bin" 11 | 12 | # rust 13 | export PATH="$PATH:$HOME/.cargo/bin" 14 | 15 | # golang 16 | export GOPATH="$HOME/go" 17 | export PATH="$PATH:$GOPATH/bin" 18 | 19 | # atuin 20 | export PATH="$PATH:$HOME/.atuin/bin/env" 21 | 22 | # bun 23 | export BUN_INSTALL="$HOME/.bun" 24 | export PATH="$BUN_INSTALL/bin:$PATH" 25 | 26 | # psql: via brew 27 | export PATH="$PATH:/opt/homebrew/opt/postgresql@17/bin/" 28 | # export PATH="$PATH:/opt/homebrew/opt/postgresql@15/bin/" 29 | -------------------------------------------------------------------------------- /.config/nvim/lua/.bak.nu_init.lua: -------------------------------------------------------------------------------- 1 | require("nu").setup({ 2 | use_lsp_features = true, -- requires https://github.com/jose-elias-alvarez/null-ls.nvim 3 | -- lsp_feature: all_cmd_names is the source for the cmd name completion. 4 | -- It can be 5 | -- * a string, which is interpreted as a shell command and the returned list is the source for completions (requires plenary.nvim) 6 | -- * a list, which is the direct source for completions (e.G. all_cmd_names = {"echo", "to csv", ...}) 7 | -- * a function, returning a list of strings and the return value is used as the source for completions 8 | all_cmd_names = [[nu -c 'help commands | get name | str join "\n"']] 9 | }) 10 | 11 | vim.keymap.set('n', 'K', vim.lsp.buf.hover, { buffer = true }) 12 | -------------------------------------------------------------------------------- /.bak/aliases.sh: -------------------------------------------------------------------------------- 1 | # system stuff aliases 2 | alias ...='cd ../.. ' 3 | alias ..='cd .. ' 4 | alias allusers='cut -d: -f1 /etc/passwd' 5 | alias c='clear ' 6 | alias cl='clear && ls -A' 7 | alias cll='clear && ls -lA' 8 | alias la='ls -A' 9 | alias ll='ls -lA' 10 | alias lt='ls -Alth' 11 | alias ltr='ls -Altrh' 12 | 13 | # git 14 | alias gtst='git status ' 15 | alias gtdf='git diff ' 16 | alias branch='git rev-parse --abbrev-ref HEAD' 17 | 18 | # python 19 | alias pyserve='python -m SimpleHTTPServer ' 20 | alias pyserve3='python -m http.server' 21 | alias wenv='source /usr/local/bin/virtualenvwrapper.sh' 22 | 23 | # vim 24 | alias mvim='mvim -v ' # open mvim in visual mode OSX 25 | alias rmswp='rm -i `find . | grep .swp$`' # to remove stray swapfiles 26 | 27 | # OSX 28 | alias beep='tput bel' 29 | alias chrome='open -a "Google Chrome" ' 30 | alias cpwd='pwd | pbcopy' 31 | -------------------------------------------------------------------------------- /.config/nvim/lua/telescope_init.lua: -------------------------------------------------------------------------------- 1 | -- You dont need to set any of these options. These are the default ones. Only 2 | -- the loading is important 3 | require('telescope').setup { 4 | extensions = { 5 | fzf = { 6 | fuzzy = true, -- false will only do exact matching 7 | override_generic_sorter = true, -- override the generic sorter 8 | override_file_sorter = true, -- override the file sorter 9 | case_mode = "smart_case", -- or "ignore_case" or "respect_case" 10 | -- the default case_mode is "smart_case" 11 | } 12 | } 13 | } 14 | -- To get fzf loaded and working with telescope, you need to call 15 | -- load_extension, somewhere after setup function: 16 | require('telescope').load_extension('fzf') 17 | require('telescope').load_extension("frecency") 18 | 19 | require('neoclip').setup() 20 | -------------------------------------------------------------------------------- /.bak/scripts/setup: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mkdir ~/.dotfiles 4 | cp ./aliases.sh ~/.dotfiles/aliases.sh 5 | cp ./yubikey/yubi-profile.sh ~/.dotfiles/yubi-profile.sh 6 | 7 | echo "" 8 | echo " *** setting up zsh *** " 9 | echo " ⚠️ this overrides ~/.zshrc *** " 10 | echo "" 11 | ./scripts/setup_zsh 12 | 13 | 14 | echo "" 15 | echo " *** setting up gitconfig *** " 16 | echo " ⚠️ this overrides ~/gitconfig *** " 17 | echo "" 18 | ./scripts/setup_git 19 | 20 | echo "" 21 | echo " *** setting up vim configs *** " 22 | echo "" 23 | ./scripts/setup_vim 24 | 25 | echo "" 26 | echo " *** setting up tmux configs *** " 27 | echo "" 28 | ./scripts/setup_tmux 29 | 30 | echo "" 31 | echo " *** setting up yubikey *** " 32 | echo "" 33 | ./scripts/setup_yubi 34 | 35 | 36 | echo "" 37 | echo " *** setting up gpg-agent: OS X *** " 38 | echo " ⚠️ this overrides ~/.gnupg/gpg-agent.conf *** " 39 | echo "" 40 | ./scripts/setup_gnupg 41 | -------------------------------------------------------------------------------- /.bak/slate: -------------------------------------------------------------------------------- 1 | #### 2 | # Resize Bindings 3 | #### 4 | # Full Screen 5 | bind m:cmd;alt;ctrl push right bar-resize:screenSizeX 6 | 7 | # throw to monitor 8 | bind left:ctrl;alt throw next 9 | bind right:ctrl;alt throw next 10 | 11 | # Half Size 12 | bind right:cmd;alt;ctrl push right bar-resize:screenSizeX/2 13 | bind left:cmd;alt;ctrl push left bar-resize:screenSizeX/2 14 | bind down:cmd;alt;ctrl push down bar-resize:screenSizeY/2 15 | bind up:cmd;alt;ctrl push up bar-resize:screenSizeY/2 16 | 17 | # Quarter Height 18 | bind down:cmd;alt;ctrl;shift push down bar-resize:screenSizeY/4 19 | 20 | # Quarter Size 21 | bind right:cmd;alt;shift corner bottom-right resize:screenSizeX/2;screenSizeY/2 22 | bind left:cmd;alt;shift corner top-left resize:screenSizeX/2;screenSizeY/2 23 | bind down:cmd;alt;shift corner bottom-left resize:screenSizeX/2;screenSizeY/2 24 | bind up:cmd;alt;shift corner top-right resize:screenSizeX/2;screenSizeY/2 25 | -------------------------------------------------------------------------------- /.config/nvim/lua/colors.lua: -------------------------------------------------------------------------------- 1 | -- Nuon-inspired color palette for nvim 2 | -- Based on $NUON_ROOT/pkg/cli/styles/colors.go (dark theme) 3 | 4 | local M = {} 5 | 6 | -- Primary palette (from Nuon CLI) 7 | M.primary = '#D6B0FC' -- darkPrimaryColor 8 | M.secondary = '#99B7FF' -- darkSecondaryColor 9 | M.accent = '#8040BF' -- darkAccentColor 10 | M.text = '#FFFFFF' -- darkTextColor 11 | M.subtle = '#B9B9B9' -- darkSubtleColor 12 | M.success = '#5BBFB5' -- darkSuccessColor 13 | M.warning = '#FFBD7F' -- darkWarningColor 14 | M.error = '#FF8383' -- darkErrorColor 15 | M.info = '#527FE8' -- darkInfoColor 16 | M.bg = '#1B242C' -- darkPrimaryBGColor 17 | M.border = '#4F4F4F' -- darkBorderInactiveColor 18 | 19 | -- Aliases for compatibility with evil_lualine 20 | M.fg = M.text 21 | M.yellow = M.warning 22 | M.cyan = '#008080' 23 | M.darkblue = '#081633' 24 | M.green = M.success 25 | M.orange = '#FF8800' 26 | M.violet = M.primary 27 | M.magenta = M.accent 28 | M.blue = M.secondary 29 | M.red = M.error 30 | 31 | return M 32 | -------------------------------------------------------------------------------- /.config/gh/config.yml: -------------------------------------------------------------------------------- 1 | # The current version of the config schema 2 | version: 1 3 | # What protocol to use when performing git operations. Supported values: ssh, https 4 | git_protocol: https 5 | # What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment. 6 | editor: 7 | # When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled 8 | prompt: enabled 9 | # Preference for editor-based interactive prompting. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled 10 | prefer_editor_prompt: disabled 11 | # A pager program to send command output to, e.g. "less". If blank, will refer to environment. Set the value to "cat" to disable the pager. 12 | pager: 13 | # Aliases allow you to create nicknames for gh commands 14 | aliases: 15 | co: pr checkout 16 | # The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport. 17 | http_unix_socket: 18 | # What web browser gh should use when opening URLs. If blank, will refer to environment. 19 | browser: 20 | -------------------------------------------------------------------------------- /.config/nvim/lua/config/autocmds.lua: -------------------------------------------------------------------------------- 1 | -- 2 | -- Editor Theme 3 | -- 4 | vim.api.nvim_command("colorscheme cyberdream") 5 | 6 | -- 7 | -- Theme for NeoTree 8 | -- 9 | 10 | local colors = { 11 | fg = "#76787d", 12 | bg = "#252829", 13 | } 14 | 15 | -- change the background color of floating windows and borders. 16 | vim.api.nvim_create_autocmd('ColorScheme', { 17 | callback = function() 18 | vim.cmd('highlight NormalFloat guibg=none guifg=none') 19 | vim.cmd('highlight FloatBorder guifg=' .. colors.fg .. ' guibg=none') 20 | vim.cmd('highlight NormalNC guibg=none guifg=none') 21 | end, 22 | }) 23 | 24 | -- change neotree background colors 25 | -- Default: NeoTreeNormal xxx ctermfg=223 ctermbg=232 guifg=#d4be98 guibg=#141617 26 | vim.api.nvim_create_autocmd('ColorScheme', { 27 | callback = function() 28 | vim.cmd('highlight NeoTreeNormal guibg=#1d2021') 29 | vim.cmd('highlight NeoTreeFloatNormal guifg=#1d2021 guibg=#141617') 30 | vim.cmd('highlight NeoTreeFloatBorder guifg=#958272 guibg=#1d2021') 31 | vim.cmd('highlight NeoTreeEndOfBuffer guibg=#1d2021') -- 1d2021 32 | end, 33 | }) 34 | 35 | -- resize neovim split when terminal is resized 36 | vim.api.nvim_command('autocmd VimResized * wincmd =') 37 | 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .claude/ 2 | 3 | .tbls.yml 4 | dbdoc/ 5 | 6 | # Our things 7 | .cd-reminder 8 | 9 | # Created by https://www.toptal.com/developers/gitignore/api/vim,osx 10 | # Edit at https://www.toptal.com/developers/gitignore?templates=vim,osx 11 | 12 | ### OSX ### 13 | # General 14 | .DS_Store 15 | .AppleDouble 16 | .LSOverride 17 | 18 | # Icon must end with two \r 19 | Icon 20 | 21 | 22 | # Thumbnails 23 | ._* 24 | 25 | # Files that might appear in the root of a volume 26 | .DocumentRevisions-V100 27 | .fseventsd 28 | .Spotlight-V100 29 | .TemporaryItems 30 | .Trashes 31 | .VolumeIcon.icns 32 | .com.apple.timemachine.donotpresent 33 | 34 | # Directories potentially created on remote AFP share 35 | .AppleDB 36 | .AppleDesktop 37 | Network Trash Folder 38 | Temporary Items 39 | .apdisk 40 | 41 | ### Vim ### 42 | # Swap 43 | [._]*.s[a-v][a-z] 44 | !*.svg # comment out if you don't need vector files 45 | [._]*.sw[a-p] 46 | [._]s[a-rt-v][a-z] 47 | [._]ss[a-gi-z] 48 | [._]sw[a-p] 49 | 50 | # Session 51 | Session.vim 52 | Sessionx.vim 53 | *.vim 54 | 55 | # Temporary 56 | .netrwhist 57 | *~ 58 | # Auto-generated tag files 59 | tags 60 | # Persistent undo 61 | [._]*.un~ 62 | 63 | # End of https://www.toptal.com/developers/gitignore/api/vim,osx 64 | -------------------------------------------------------------------------------- /.config/nvim/lua/lsp.lua: -------------------------------------------------------------------------------- 1 | vim.lsp.config.inlay_hints = { 2 | enabled = true 3 | } 4 | vim.lsp.config.codelens = { 5 | enabled = true 6 | } 7 | 8 | vim.lsp.enable('taplo') 9 | -- vim.lsp.config.gopls.setup({}) 10 | vim.lsp.enable('ts_ls') 11 | vim.lsp.enable('terraformls') 12 | vim.lsp.enable('tflint') 13 | -- vim.lsp.config.jedi_language_server.setup({}) 14 | vim.lsp.enable('lua_ls') 15 | vim.lsp.enable('helm_ls') 16 | vim.lsp.enable('bashls') 17 | 18 | -- python: configure and enable 19 | vim.lsp.config('pyright', { 20 | settings = { 21 | pyright = { 22 | -- Using Ruff's import organizer 23 | disableOrganizeImports = true, 24 | }, 25 | python = { 26 | analysis = { 27 | -- Ignore all files for analysis to exclusively use Ruff for linting 28 | ignore = { '*' }, 29 | }, 30 | }, 31 | }, 32 | }) 33 | 34 | vim.lsp.config('ruff', { 35 | init_options = { 36 | settings = { 37 | logLevel = 'debug', 38 | } 39 | }, 40 | }) 41 | 42 | vim.lsp.enable('pyright') 43 | vim.lsp.enable('ruff') 44 | 45 | -- vim.lsp.enable("nuon") 46 | -- vim.lsp.start({ 47 | -- name = "nuon", 48 | -- cmd = { "/Users/fd/.local/bin/nuon-lsp" }, -- Update with your actual path 49 | -- root_dir = vim.fn.getcwd() 50 | -- }) 51 | -------------------------------------------------------------------------------- /.config/nvim/lua/guihua.lua: -------------------------------------------------------------------------------- 1 | -- default icons for panel 2 | -- will be tbl_deep_extend() if you override any of those 3 | local icons = { 4 | panel_icons = { 5 | section_separator = '─', --'', 6 | line_num_left = ':', --'', 7 | line_num_right = '', --', 8 | 9 | range_left = '', --'', 10 | range_right = '', 11 | inner_node = '', --├○', 12 | folded = '◉', 13 | unfolded = '○', 14 | 15 | outer_node = '', -- '╰○', 16 | bracket_left = '', -- ⟪', 17 | bracket_right = '', -- '⟫', 18 | }, 19 | syntax_icons = { 20 | var = ' ', -- "👹", -- Vampaire 21 | method = 'ƒ ', -- "🍔", -- mac 22 | ['function'] = ' ', -- "🤣", -- Fun 23 | ['arrow_function'] = ' ', -- "🤣", -- Fun 24 | parameter = '', -- Pi 25 | associated = '🤝', 26 | namespace = '🚀', 27 | type = ' ', 28 | field = '🏈', 29 | interface = '', 30 | module = '📦', 31 | flag = '🎏', 32 | } 33 | } 34 | 35 | -- 36 | require('guihua.maps').setup({ 37 | maps = { 38 | close_view = '', 39 | send_qf = '', 40 | save = '', 41 | jump_to_list = 'k', 42 | jump_to_preview = 'j', 43 | prev = '', 44 | next = '', 45 | pageup = '', 46 | pagedown = '', 47 | confirm = '', 48 | split = '', 49 | vsplit = '', 50 | tabnew = '', 51 | } 52 | }) 53 | -------------------------------------------------------------------------------- /.config/nvim/lua/treesitter_init.lua: -------------------------------------------------------------------------------- 1 | vim.treesitter.language.register('markdown', 'mdx') 2 | 3 | require'nvim-treesitter.configs'.setup { 4 | -- A list of parser names, or "all" (the five listed parsers should always be installed) 5 | ensure_installed = { "rust", "lua", "vim", "vimdoc", "query", "go", "markdown" }, 6 | 7 | -- Install parsers synchronously (only applied to `ensure_installed`) 8 | sync_install = false, 9 | 10 | -- Automatically install missing parsers when entering buffer 11 | -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally 12 | auto_install = true, 13 | 14 | -- List of parsers to ignore installing (for "all") 15 | ignore_install = { "javascript" }, 16 | 17 | ---- If you need to change the installation directory of the parsers (see -> Advanced Setup) 18 | -- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")! 19 | 20 | highlight = { 21 | enable = true, 22 | 23 | -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to 24 | -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is 25 | -- the name of the parser) 26 | -- list of language that will be disabled 27 | -- disable = { }, 28 | -- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files 29 | -- disable = function(lang, buf) 30 | -- local max_filesize = 100 * 1024 -- 100 KB 31 | -- local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) 32 | -- if ok and stats and stats.size > max_filesize then 33 | -- return true 34 | -- end 35 | -- end, 36 | 37 | -- Setting this to true will run `:h syntax` and tree-sitter at the same time. 38 | -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). 39 | -- Using this option may slow down your editor, and you may see some duplicate highlights. 40 | -- Instead of true it can also be a list of languages 41 | additional_vim_regex_highlighting = false, 42 | }, 43 | } 44 | -------------------------------------------------------------------------------- /.bak/yubikey/yubitouch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Bash script for setting or clearing touch requirements for 4 | # cryptographic operations the OpenPGP application on a YubiKey 4. 5 | # 6 | # Author: Alessio Di Mauro 7 | 8 | GCA=$(which gpg-connect-agent) 9 | DO=0 10 | UIF=0 11 | 12 | PE=$(which pinentry) 13 | PE_PROMPT="SETPROMPT Admin PIN\nGETPIN\nBYE" 14 | 15 | if [ -z "$GCA" ] 16 | then 17 | echo "Can not find gpg-connect-agent. Aborting..."; 18 | exit 1; 19 | fi 20 | 21 | if [ $# -lt 2 ] || [ $# -gt 3 ] 22 | then 23 | echo "Wrong parameters" 24 | echo "usage: yubitouch {sig|aut|dec} {off|on|fix} [admin_pin]"; 25 | exit 1; 26 | fi 27 | 28 | if [ "$1" == "sig" ] 29 | then 30 | DO="D6" 31 | elif [ "$1" == "dec" ] 32 | then 33 | DO="D7" 34 | elif [ "$1" == "aut" ] 35 | then 36 | DO="D8" 37 | else 38 | echo "Invalid value $1 (must be sig, aut, dec). Aborting..." 39 | exit 1 40 | fi 41 | 42 | if [ "$2" == "off" ] 43 | then 44 | UIF="00"; 45 | elif [ "$2" == "on" ] 46 | then 47 | UIF="01" 48 | elif [ "$2" == "fix" ] 49 | then 50 | UIF="02"; 51 | else 52 | echo "Invalid value $2 (must be off, on, fix). Aborting..." 53 | exit 1 54 | fi 55 | 56 | if [ $# -eq 3 ] 57 | then 58 | PIN="$3" 59 | elif [ -z "$PE" ] 60 | then 61 | echo -e "Pinentry not present\nFalling back to regular stdin.\nBe careful!" 62 | echo "Enter your admin PIN: " 63 | read PIN 64 | else 65 | PIN="$(echo -e $PE_PROMPT | $PE | sed -n '/^D .*/s/^D //p')" 66 | fi 67 | 68 | if [ -z "$PIN" ] 69 | then 70 | echo "Empty PIN. Aborting..." 71 | exit 1 72 | fi 73 | 74 | PIN_LEN=${#PIN} 75 | PIN_LEN=$(printf %02x $PIN_LEN) 76 | 77 | PIN=$(echo -n "$PIN" | xxd -ps | sed 's/[[:xdigit:]]\{2\}/& /g') 78 | 79 | $GCA --hex "scd reset" /bye > /dev/null 80 | 81 | VERIFY=$($GCA --hex "scd apdu 00 20 00 83 $PIN_LEN $PIN" /bye) 82 | if ! echo $VERIFY | grep -q "90 00" 83 | then 84 | echo "Verification failed, wrong pin?" 85 | exit 1 86 | fi 87 | 88 | PUT=$($GCA --hex "scd apdu 00 da 00 $DO 02 $UIF 20" /bye) 89 | if ! echo $PUT | grep -q "90 00" 90 | then 91 | echo "Unable to change mode. Set to fix?" 92 | exit 1 93 | fi 94 | 95 | echo "All done!" 96 | exit 0 97 | -------------------------------------------------------------------------------- /.bak/zsh/my-theme.zsh-theme: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | # # 3 | # # #README 4 | # # 5 | 6 | 7 | ########## COLOR ########### 8 | for COLOR in CYAN WHITE YELLOW MAGENTA BLACK BLUE RED DEFAULT GREEN GREY; do 9 | eval PR_$COLOR='%{$fg[${(L)COLOR}]%}' 10 | eval PR_BRIGHT_$COLOR='%{$fg_bold[${(L)COLOR}]%}' 11 | done 12 | PR_RESET="%{$reset_color%}" 13 | RED_START="${PR_RESET}${PR_GREY}<${PR_RESET}${PR_RED}<${PR_BRIGHT_RED}<${PR_RESET} " 14 | RED_END="${PR_RESET}${PR_BRIGHT_RED}>${PR_RESET}${PR_RED}>${PR_GREY}>${PR_RESET} " 15 | GREEN_END="${PR_RESET}${PR_BRIGHT_GREEN}>${PR_RESET}${PR_GREEN}>${PR_GREY}>${PR_RESET} " 16 | GREEN_BASE_START="${PR_RESET}${PR_GREEN}>${PR_BRIGHT_GREEN}>${PR_RESET}" 17 | GREEN_START_P1="${PR_RESET}${GREEN_BASE_START}${PR_RESET} " 18 | DIVISION="${PR_RESET}${PR_RED} < ${PR_RESET}" 19 | VCS_DIRTY_COLOR="${PR_RESET}${PR_YELLOW}" 20 | VCS_CLEAN_COLOR="${PR_RESET}${PR_GREEN}" 21 | VCS_SUFIX_COLOR="${PR_RESET}${PR_RED}› ${PR_RESET}" 22 | # ########## COLOR ########### 23 | 24 | 25 | # ########## GIT ########### 26 | ZSH_THEME_GIT_PROMPT_PREFIX="${PR_RESET}${PR_RED}‹git:" 27 | ZSH_THEME_GIT_PROMPT_SUFFIX="" 28 | ZSH_THEME_GIT_PROMPT_DIRTY="${VCS_DIRTY_COLOR} ✘ ${VCS_SUFIX_COLOR}" 29 | ZSH_THEME_GIT_PROMPT_CLEAN="${VCS_CLEAN_COLOR} ✔ ${VCS_SUFIX_COLOR}" 30 | ZSH_THEME_GIT_PROMPT_ADDED="${PR_RESET}${PR_YELLOW} ✚ ${PR_RESET}" 31 | ZSH_THEME_GIT_PROMPT_MODIFIED="${PR_RESET}${PR_YELLOW} ✹ ${PR_RESET}" 32 | ZSH_THEME_GIT_PROMPT_DELETED="${PR_RESET}${PR_YELLOW} ✖ ${PR_RESET}" 33 | ZSH_THEME_GIT_PROMPT_RENAMED="${PR_RESET}${PR_YELLOW} ➜ ${PR_RESET}" 34 | ZSH_THEME_GIT_PROMPT_UNMERGED="${PR_RESET}${PR_YELLOW} ═ ${PR_RESET}" 35 | ZSH_THEME_GIT_PROMPT_UNTRACKED="${PR_RESET}${PR_YELLOW} ✭ ${PR_RESET}" 36 | # ########## GIT ########### 37 | 38 | # Context: user@directory or just directory 39 | prompt_context () { 40 | if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then 41 | echo -n "${PR_RESET}${PR_GREEN}$USER${PR_RESET}@${PR_CYAN}%m${PR_RESET} %~% ${PR_RESET}" 42 | else 43 | echo -n "${PR_RESET}${PR_BRIGHT_YELLOW} %~% ${PR_RESET}" 44 | fi 45 | } 46 | 47 | set_prompt () { 48 | # required for the prompt 49 | setopt prompt_subst 50 | autoload zsh/terminfo 51 | 52 | # ######### PROMPT ######### 53 | PROMPT='${PR_RED}%D{%d-%m-%Y}${PR_RESET} :: ${PR_YELLOW}%*${PR_RESET} $(git_prompt_info) 54 | $(prompt_context) 55 | ${GREEN_START_P1}' 56 | RPROMPT='omg hello' 57 | RPROMPT='${PR_YELLOW} ${GREEN_END}${PR_RESET}' 58 | # ######### PROMPT ######### 59 | } 60 | 61 | set_prompt 62 | -------------------------------------------------------------------------------- /.bak/git/git.conf: -------------------------------------------------------------------------------- 1 | [alias] 2 | br = branch 3 | co = checkout 4 | lg = log --color --date=local --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%C(bold blue)<%an>%Creset' --abbrev-commit 5 | log = log --topo-order --decorate 6 | st = status -sb 7 | up = fetch --all --prune 8 | pup = !git fetch --all --prune && git pull 9 | recentb = "!r() { refbranch=$1 count=$2; git for-each-ref --sort=-committerdate refs/heads --format='%(refname:short)|%(HEAD)%(color:yellow)%(refname:short)|%(color:bold green)%(committerdate:relative)|%(color:blue)%(subject)|%(color:magenta)%(authorname)%(color:reset)' --color=always --count=${count:-20} | while read line; do branch=$(echo \"$line\" | awk 'BEGIN { FS = \"|\" }; { print $1 }' | tr -d '*'); ahead=$(git rev-list --count \"${refbranch:-origin/master}..${branch}\"); behind=$(git rev-list --count \"${branch}..${refbranch:-origin/master}\"); colorline=$(echo \"$line\" | sed 's/^[^|]*|//'); echo \"$ahead|$behind|$colorline\" | awk -F'|' -vOFS='|' '{$5=substr($5,1,70)}1' ; done | ( echo \"ahead|behind||branch|lastcommit|message|author\\n\" && cat) | column -ts'|';}; r" 10 | rcb = !git for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))' 11 | 12 | [diff] 13 | renames = copy 14 | colorMoved = default 15 | 16 | [color] 17 | branch = auto 18 | diff = auto 19 | interactive = auto 20 | status = auto 21 | 22 | [color "branch"] 23 | current = yellow reverse 24 | local = yellow 25 | remote = green 26 | 27 | [color "diff"] 28 | frag = magenta bold 29 | meta = yellow bold 30 | new = green bold 31 | old = red bold 32 | 33 | [color "status"] 34 | added = yellow 35 | changed = green 36 | untracked = cyan 37 | 38 | [core] 39 | whitespace = space-before-tab,trailing-space,cr-at-eol 40 | ignorecase = false 41 | excludesfile = /Users/freddiego/.gitignore_global 42 | editor = vim 43 | pager = delta 44 | 45 | [interactive] 46 | diffFilter = delta --color-only 47 | 48 | [delta] 49 | navigate = true # use n and N to move between diff sections 50 | 51 | [merge] 52 | conflictstyle = diff3 53 | 54 | 55 | [fetch] 56 | prune = true 57 | 58 | [pack] 59 | threads = 0 60 | 61 | [push] 62 | default = current 63 | 64 | [user] 65 | name = Fred Diego 66 | email = fred@thedivestudios.com 67 | 68 | [difftool "sourcetree"] 69 | cmd = opendiff \"$LOCAL\" \"$REMOTE\" 70 | path = 71 | 72 | [mergetool "sourcetree"] 73 | cmd = /Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\" 74 | trustExitCode = true 75 | [init] 76 | defaultBranch = main 77 | -------------------------------------------------------------------------------- /.config/broot/skins/white.hjson: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # A skin for a terminal with a white background 3 | # 4 | # To create your own skin, copy this file, change the entries 5 | # and import your skin file from the main conf file (look 6 | # for "imports") 7 | # 8 | # Doc at https://dystroy.org/broot/skins/ 9 | ############################################################### 10 | syntax_theme: base16-ocean.light 11 | 12 | skin: { 13 | default: gray(1) None 14 | tree: gray(7) None / gray(18) None 15 | file: gray(3) None / gray(8) None 16 | directory: ansi(25) None Bold / ansi(25) None 17 | exe: ansi(130) None 18 | link: Magenta None 19 | pruning: gray(12) None Italic 20 | perm__: gray(5) None 21 | perm_r: ansi(94) None 22 | perm_w: ansi(132) None 23 | perm_x: ansi(65) None 24 | owner: ansi(138) None 25 | group: ansi(131) None 26 | dates: ansi(66) None 27 | sparse: ansi(214) None 28 | git_branch: ansi(229) None 29 | git_insertions: ansi(28) None 30 | git_deletions: ansi(160) None 31 | git_status_current: gray(5) None 32 | git_status_modified: ansi(28) None 33 | git_status_new: ansi(94) None Bold 34 | git_status_ignored: gray(17) None 35 | git_status_conflicted: ansi(88) None 36 | git_status_other: ansi(88) None 37 | selected_line: None gray(19) / None gray(21) 38 | char_match: ansi(22) None 39 | file_error: Red None 40 | flag_label: gray(9) None 41 | flag_value: ansi(166) None Bold 42 | input: gray(1) None / gray(4) gray(20) 43 | status_error: gray(22) ansi(124) 44 | status_normal: gray(2) gray(20) 45 | status_job: ansi(220) gray(5) 46 | status_italic: ansi(166) gray(20) 47 | status_bold: ansi(166) gray(20) 48 | status_code: ansi(17) gray(20) 49 | status_ellipsis: gray(19) gray(15) 50 | purpose_normal: gray(20) gray(2) 51 | purpose_italic: ansi(178) gray(2) 52 | purpose_bold: ansi(178) gray(2) Bold 53 | purpose_ellipsis: gray(20) gray(2) 54 | scrollbar_track: gray(20) none 55 | scrollbar_thumb: ansi(238) none 56 | help_paragraph: gray(2) none 57 | help_bold: ansi(202) none bold 58 | help_italic: ansi(202) none italic 59 | help_code: gray(5) gray(22) 60 | help_headers: ansi(202) none 61 | help_table_border: ansi(239) None 62 | preview_title: gray(3) None / gray(5) None 63 | preview: gray(5) gray(23) / gray(7) gray(23) 64 | preview_line_number: gray(6) gray(20) 65 | preview_separator: gray(7) None / gray(18) None 66 | preview_match: None ansi(29) Underlined 67 | hex_null: gray(15) None 68 | hex_ascii_graphic: gray(2) None 69 | hex_ascii_whitespace: ansi(143) None 70 | hex_ascii_other: ansi(215) None 71 | hex_non_ascii: ansi(167) None 72 | staging_area_title: gray(8) None / gray(13) None 73 | mode_command_mark: gray(15) ansi(204) Bold 74 | good_to_bad_0: ansi(28) 75 | good_to_bad_1: ansi(29) 76 | good_to_bad_2: ansi(29) 77 | good_to_bad_3: ansi(29) 78 | good_to_bad_4: ansi(29) 79 | good_to_bad_5: ansi(100) 80 | good_to_bad_6: ansi(136) 81 | good_to_bad_7: ansi(172) 82 | good_to_bad_8: ansi(166) 83 | good_to_bad_9: ansi(196) 84 | } 85 | -------------------------------------------------------------------------------- /.bak/zsh/zshrc.sh: -------------------------------------------------------------------------------- 1 | # If you come from bash you might have to change your $PATH. 2 | # export PATH=$HOME/bin:/usr/local/bin:$PATH 3 | 4 | # Path to your oh-my-zsh installation. 5 | export ZSH=~/.oh-my-zsh 6 | 7 | # Set name of the theme to load. Optionally, if you set this to "random" 8 | # it'll load a random theme each time that oh-my-zsh is loaded. 9 | # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes 10 | ZSH_THEME="my-theme" 11 | 12 | # Set list of themes to load 13 | # Setting this variable when ZSH_THEME=random 14 | # cause zsh load theme from this variable instead of 15 | # looking in ~/.oh-my-zsh/themes/ 16 | # An empty array have no effect 17 | # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) 18 | 19 | # Uncomment the following line to use case-sensitive completion. 20 | # CASE_SENSITIVE="true" 21 | 22 | # Uncomment the following line to use hyphen-insensitive completion. Case 23 | # sensitive completion must be off. _ and - will be interchangeable. 24 | # HYPHEN_INSENSITIVE="true" 25 | 26 | # Uncomment the following line to disable bi-weekly auto-update checks. 27 | # DISABLE_AUTO_UPDATE="true" 28 | 29 | # Uncomment the following line to change how often to auto-update (in days). 30 | # export UPDATE_ZSH_DAYS=13 31 | 32 | # Uncomment the following line to disable colors in ls. 33 | # DISABLE_LS_COLORS="true" 34 | 35 | # Uncomment the following line to disable auto-setting terminal title. 36 | # DISABLE_AUTO_TITLE="true" 37 | 38 | # Uncomment the following line to enable command auto-correction. 39 | # ENABLE_CORRECTION="true" 40 | 41 | # Uncomment the following line to display red dots whilst waiting for completion. 42 | # COMPLETION_WAITING_DOTS="true" 43 | 44 | # Uncomment the following line if you want to disable marking untracked files 45 | # under VCS as dirty. This makes repository status check for large repositories 46 | # much, much faster. 47 | # DISABLE_UNTRACKED_FILES_DIRTY="true" 48 | 49 | # Uncomment the following line if you want to change the command execution time 50 | # stamp shown in the history command output. 51 | # The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" 52 | # HIST_STAMPS="mm/dd/yyyy" 53 | 54 | # Would you like to use another custom folder than $ZSH/custom? 55 | # ZSH_CUSTOM=/path/to/new-custom-folder 56 | 57 | # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) 58 | # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ 59 | # Example format: plugins=(rails git textmate ruby lighthouse) 60 | # Add wisely, as too many plugins slow down shell startup. 61 | plugins=( 62 | git 63 | ) 64 | 65 | source $ZSH/oh-my-zsh.sh 66 | source ~/.dotfiles/aliases.sh 67 | source ~/.dotfiles/yubi-profile.sh 68 | source ~/.dotfiles/paths.sh 69 | 70 | # User configuration 71 | 72 | # export MANPATH="/usr/local/man:$MANPATH" 73 | 74 | # You may need to manually set your language environment 75 | # export LANG=en_US.UTF-8 76 | 77 | # Preferred editor for local and remote sessions 78 | if [[ -n $SSH_CONNECTION ]]; then 79 | export EDITOR='vim' 80 | else 81 | export EDITOR='mvim' 82 | fi 83 | 84 | # Compilation flags 85 | # export ARCHFLAGS="-arch x86_64" 86 | 87 | # ssh 88 | # export SSH_KEY_PATH="~/.ssh/rsa_id" 89 | -------------------------------------------------------------------------------- /.dotfiles/nuon.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # find a better place for these 4 | export AWS_REGION=us-west-2 5 | export AWS_PROFILE=stage.NuonAdmin 6 | 7 | # nuon dev things 8 | export NUON_ROOT="/Users/fd/nuon/mono" 9 | export NUON_DISABLE_TELEMETRY="true" 10 | export NUON_PREVIEW="true" 11 | 12 | # alias for mono repo 13 | alias mono="z ~/nuon/mono && clear && figlet 'Nuon Mono' | lolcat" 14 | alias byoc="z ~/nuon/byoc && clear && figlet 'BYOC ~= Nuon' | lolcat" 15 | alias demo="z ~/nuon/demo && clear && figlet 'demos' | lolcat" 16 | alias nuon-go="z ~/nuon/nuon-go && clear && figlet 'nuon-go' | lolcat" 17 | # alias nuondev="nuon -f ~/.seed.yml " # superceded by nb 18 | # alias ns="nuon -f ~/.stage " 19 | 20 | # 21 | # Functions 22 | # 23 | 24 | # good morning: sso login 25 | function gmnuon() { 26 | arg="$1" 27 | if [ "$arg" = "--help" ]; then 28 | echo "gmnuon [--reset-gen] [--all] [--keep-db]" 29 | fi 30 | 31 | # echo "$@" 32 | # if [[ "$@" == "*--keep-db*" ]]; then 33 | # keep_db="true" 34 | # echo "will keep db" 35 | # else 36 | # keep_db="false" 37 | # echo "won't keep db" 38 | # fi 39 | 40 | set -u 41 | set -o pipefail 42 | set -e 43 | 44 | mono 45 | 46 | figlet -f cybermedium "Init AWS" | lolcat 47 | nuonctl scripts exec init-aws 48 | 49 | figlet -f cybermedium "Init Kubeconfig" | lolcat 50 | nuonctl scripts exec init-kubeconfig 51 | 52 | figlet -f cybermedium "go mod download" | lolcat 53 | go mod download 54 | 55 | if [ "$arg" = "--reset" ]; then 56 | figlet -f pepper "Resetting Podman VM" | lolcat 57 | nuonctl scripts exec reset-podman-vm 58 | 59 | figlet -f pepper "Resetting Dependencies" | lolcat 60 | nuonctl scripts exec reset-dependencies 61 | 62 | figlet -f pepper "Resetting Generated Code" | lolcat 63 | nuonctl scripts exec reset-generated-code 64 | fi 65 | } 66 | 67 | # compile and run nounctl 68 | function nctl () { 69 | ~/nuon/mono/run-nuonctl.sh "$@" 70 | } 71 | 72 | # get token for env 73 | function nuontoken() { 74 | env="${1:-dev}" 75 | seedfile=~/.seed.yml 76 | if [[ $env == 'dev' ]]; then 77 | seedfile=~/.seed.yml 78 | elif [[ $env == 'stage' ]]; then 79 | seedfile=~/.stage 80 | elif [[ $env == 'prod' ]]; then 81 | seedfile=~/.nuon 82 | fi 83 | token=`cat $seedfile | grep token | cut -d ' ' -f 2` 84 | echo -n $token 85 | } 86 | 87 | # compile and run nuon 88 | function nb () { 89 | mv /tmp/nb /tmp/nb-bak 90 | cd ~/nuon/mono/bins/cli 91 | /usr/bin/time -a -o ~/.scratch/builds/nb/`date -Idate`.txt go build -o /tmp/nb . 92 | cd - > /dev/null 93 | /tmp/nb -f ~/.seed.yml "$@" 94 | } 95 | 96 | # compile and run nuon w/ stage 97 | function ns () { 98 | cd ~/nuon/mono/bins/cli 99 | go build -o /tmp/ns . 100 | cd - > /dev/null 101 | /tmp/ns -f ~/.stage "$@" 102 | } 103 | 104 | function aws_creds() { 105 | path_to_file="$1" 106 | AWS_ACCESS_KEY_ID=`cat $path_to_file | jq -r '.Credentials.AccessKeyId'` 107 | AWS_SECRET_ACCESS_KEY=`cat $path_to_file | jq -r '.Credentials.SecretAccessKey'` 108 | AWS_SESSION_TOKEN=`cat $path_to_file | jq -r '.Credentials.SessionToken'` 109 | echo AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID" AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY" AWS_SESSION_TOKEN="$AWS_SESSION_TOKEN" 110 | } 111 | 112 | # function noun_env() 113 | # { 114 | # echo 115 | # echo "settinge env vars from seed file: "$1 116 | # echo 117 | # seed_file = '~/.'$1'.yml' 118 | # nuon_api_token = $(cat $seed_file | grep "api_token" | cut -d ' ' -f 2) 119 | # nuon_org = $(cat $seed_file | grep org | cut -d ' ' -f 2) 120 | # } 121 | # 122 | # 123 | export NGROK_AUTHTOKEN=32MXnLwZFMxxgLbkUHEjH_5q9R4AdLbzWA7Y14sNtdK 124 | -------------------------------------------------------------------------------- /.config/broot/skins/native-16.hjson: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # 16 ANSI color theme. Colors in this theme are restricted from 3 | # ANSI color 0 - 15. This will allow the theme to adapt to your 4 | # terminal emulator's theme. Note that, for now, the preview 5 | # mode does not yet support this theme because of syntect not 6 | # having a 16 ansi color theme. 7 | # 8 | # More info at https://jeffkreeftmeijer.com/vim-16-color/ 9 | # Doc at https://dystroy.org/broot/skins/ 10 | ############################################################### 11 | 12 | skin: { 13 | directory: ansi(12) 14 | file: ansi(7) 15 | pruning: ansi(8) none italic 16 | selected_line: none ansi(0) 17 | tree: ansi(8) 18 | 19 | # Search 20 | char_match: ansi(3) none underlined 21 | parent: ansi(4) none bold 22 | 23 | # File properties 24 | exe: ansi(2) 25 | link: ansi(13) 26 | sparse: ansi(12) 27 | 28 | # Prompt 29 | input: ansi(6) 30 | 31 | # Status bar 32 | status_bold: ansi(7) ansi(8) bold 33 | status_code: ansi(10) ansi(8) 34 | status_ellipsis: ansi(7) ansi(8) 35 | status_error: ansi(7) ansi(8) 36 | status_italic: ansi(7) ansi(8) italic 37 | status_job: ansi(7) ansi(8) 38 | status_normal: ansi(7) ansi(8) 39 | 40 | # Flag status 41 | flag_label: ansi(6) 42 | flag_value: ansi(14) none bold 43 | 44 | # Background 45 | default: none none 46 | 47 | # Scrollbar 48 | scrollbar_track: ansi(0) 49 | scrollbar_thumb: ansi(3) 50 | 51 | # Git 52 | git_branch: ansi(13) 53 | git_deletions: ansi(1) 54 | git_insertions: ansi(2) 55 | git_status_conflicted: ansi(1) 56 | git_status_current: ansi(6) 57 | git_status_ignored: ansi(8) 58 | git_status_modified: ansi(3) 59 | git_status_new: ansi(2) none bold 60 | git_status_other: ansi(5) 61 | 62 | # Staging area 63 | staging_area_title: ansi(3) 64 | 65 | # Documentation 66 | help_bold: ansi(7) none bold 67 | help_code: ansi(4) 68 | help_headers: ansi(3) 69 | help_italic: ansi(7) none italic 70 | help_paragraph: ansi(7) 71 | help_table_border: ansi(8) 72 | 73 | # Device column 74 | device_id_major: ansi(5) 75 | device_id_minor: ansi(5) 76 | device_id_sep: ansi(5) 77 | 78 | # Counts column 79 | count: ansi(13) 80 | 81 | # Dates column 82 | dates: ansi(6) 83 | 84 | # Permissions column 85 | group: ansi(3) 86 | owner: ansi(3) 87 | perm__: ansi(8) 88 | perm_r: ansi(3) 89 | perm_w: ansi(1) 90 | perm_x: ansi(2) 91 | 92 | # Hex preview 93 | hex_null: ansi(8) 94 | hex_ascii_graphic: ansi(2) 95 | hex_ascii_whitespace: ansi(3) 96 | hex_ascii_other: ansi(4) 97 | hex_non_ascii: ansi(5) 98 | 99 | # Preview 100 | # preview: none 101 | # preview_line_number: none 102 | # preview_match: none 103 | # preview_title: none 104 | 105 | # Used for displaying errors 106 | file_error: ansi(1) 107 | 108 | # Content searches 109 | content_extract: ansi(7) 110 | content_match: ansi(3) none underlined 111 | 112 | # Used in status line 113 | purpose_bold: ansi(0) ansi(7) bold 114 | purpose_ellipsis: ansi(0) 115 | purpose_italic: ansi(0) ansi(7) italic 116 | purpose_normal: ansi(0) 117 | 118 | # Modal indicator 119 | mode_command_mark: ansi(7) ansi(4) 120 | 121 | # File system occupation 122 | good_to_bad_0: ansi(2) 123 | good_to_bad_1: ansi(2) 124 | good_to_bad_2: ansi(2) 125 | good_to_bad_3: ansi(2) 126 | good_to_bad_4: ansi(2) 127 | good_to_bad_5: ansi(1) 128 | good_to_bad_6: ansi(1) 129 | good_to_bad_7: ansi(1) 130 | good_to_bad_8: ansi(1) 131 | good_to_bad_9: ansi(1) 132 | } 133 | -------------------------------------------------------------------------------- /.dotfiles/aliases.sh: -------------------------------------------------------------------------------- 1 | # system stuff aliases 2 | 3 | alias ....='cd ../../.. ' 4 | alias ...='cd ../.. ' 5 | alias ..='cd .. ' 6 | # eza: alias ls w/ flags 7 | alias ls="eza --icons" 8 | 9 | alias allusers='cut -d: -f1 /etc/passwd' 10 | alias clear=' clear ' 11 | alias c=' clear ' 12 | alias cl=' clear && ls -A' 13 | alias cll=' clear && ls -lA' 14 | alias la='ls -A' 15 | alias ll='ls -lA' 16 | alias lt='ls -Alth' 17 | alias ltr='ls -Altrh' 18 | 19 | # git 20 | alias branch='echo -n `git rev-parse --abbrev-ref HEAD`' 21 | alias g='git ' 22 | 23 | # python 24 | alias python='/usr/local/bin/python3.12' 25 | alias pyserve='python -m http.server' 26 | alias wenv='source /usr/local/bin/virtualenvwrapper.sh' 27 | alias qr='~/.venvs/qr/bin/python ~/code/qr/qr.py' 28 | alias uuid='python3 -c "import uuid, sys; sys.stdout.write(str(uuid.uuid4()))"' 29 | 30 | alias rmswp='rm -i `find . | grep .swp$`' # to remove stray swapfiles 31 | 32 | # OSX 33 | alias beep='tput bel' 34 | alias chrome='open -a "Google Chrome" ' 35 | alias cpwd='pwd | pbcopy' 36 | 37 | 38 | # utils 39 | alias code="clear && cd ~/code && figlet 'fd.code' | lolcat" 40 | # 41 | # Zellij 42 | # 43 | # we have functions here to wrap certain commands we care about in zellij. 44 | # these commands we want to run in a zellij window with `zellij run ...` so 45 | # what we want to do is run the command with zellij run and pass all the args 46 | 47 | alias zj='zellij' 48 | 49 | _gopass() { 50 | if [[ -z "${ZELLIJ}" ]]; then 51 | gopass "$@" 52 | elif [[ "$1" == "show" ]]; then 53 | zellij run -f -c -- gopass "$@" 54 | fi 55 | } 56 | alias gopass="_gopass " 57 | 58 | 59 | # 60 | # Github Functions 61 | # 62 | alias gitrmmerged=' git branch -r --merged main | egrep -v "master|main" | xargs git branch -d' 63 | 64 | # 65 | # cd with reminder 66 | # 67 | 68 | # reminder_cd() { 69 | # builtin cd "$@" && { [ ! -f .cd-reminder ] || cat .cd-reminder 1>&2; } 70 | # } 71 | 72 | # alias cd=reminder_cd 73 | 74 | 75 | alias tf="terraform " 76 | alias tftr="TF_LOG=TRACE terraform " 77 | alias tfdb="TF_LOG=DEBUG terraform " 78 | 79 | 80 | ## log printer 81 | lugger() { 82 | while read -r line; do 83 | local has_ter=`echo $line | grep ' terraform: '` 84 | local has_del=`echo $line | grep ' -> '` 85 | local first_ch=`printf "%.2s" "$line"` 86 | if [ "$first_ch" = "{\"" ]; then 87 | # the line is pure json 88 | newline=`echo -n $line | perl -pe's/[\x00-\x1F]/ sprintf "\\u%04X", ord $& /eg'` 89 | (jq --color-output --sort-keys <<< $newline || jq -R '. as $line | try (fromjson) catch $line' <<< $newline ) || echo '::> '$line 90 | elif [ "$has_ter" ]; then 91 | # the line is terraform 92 | newline="${line#* terraform: }" 93 | local first_chn=`printf "%.2s" "$newline"` 94 | if [ "$first_chn" = "{\"" ]; then 95 | (jq --color-output --sort-keys <<< $newline || jq -R '. as $line | try (fromjson) catch $line' <<< $newline ) || echo '::> '$newline 96 | else 97 | echo $line 98 | fi 99 | elif [ "$has_del" ]; then 100 | # the line is -> delimited 101 | newline="${line#* -> }" 102 | local first_chn=`printf "%.2s" "$newline"` 103 | if [ "$first_chn" = "{\"" ]; then 104 | (jq --color-output --sort-keys <<< $newline || jq -R '. as $line | try (fromjson) catch $line' <<< $newline ) || echo '::> '$newline 105 | else 106 | echo $line 107 | fi 108 | else 109 | echo $line 110 | fi 111 | done 112 | echo "\n::> Lugger is Done <::\n" 113 | } 114 | 115 | 116 | alias flushdns="sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder" 117 | alias ghostty="/Applications/Ghostty.app/Contents/MacOS/ghostty" 118 | 119 | # used like this: `git co -b branch-name-`timestamp` 120 | alias timestamp="date -Iminutes | sed 's/://g' | sed 's/-//g'" 121 | -------------------------------------------------------------------------------- /.zshrc: -------------------------------------------------------------------------------- 1 | # If you come from bash you might have to change your $PATH. 2 | # export PATH=$HOME/bin:/usr/local/bin:$PATH 3 | 4 | # 5 | # paths 6 | # 7 | # sourced here so they can be used in the rest of the file 8 | source ~/.dotfiles/paths.sh 9 | 10 | # 11 | # Path to your oh-my-zsh installation. 12 | # 13 | export ZSH=~/.oh-my-zsh 14 | 15 | # Set name of the theme to load. Optionally, if you set this to "random" 16 | # it'll load a random theme each time that oh-my-zsh is loaded. 17 | # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes 18 | ZSH_THEME="nuon" 19 | 20 | # Set list of themes to load 21 | # Setting this variable when ZSH_THEME=random 22 | # cause zsh load theme from this variable instead of 23 | # looking in ~/.oh-my-zsh/themes/ 24 | # An empty array have no effect 25 | # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) 26 | 27 | # Uncomment the following line to use case-sensitive completion. 28 | # CASE_SENSITIVE="true" 29 | 30 | # Uncomment the following line to use hyphen-insensitive completion. Case 31 | # sensitive completion must be off. _ and - will be interchangeable. 32 | # HYPHEN_INSENSITIVE="true" 33 | 34 | # Uncomment the following line to disable bi-weekly auto-update checks. 35 | # DISABLE_AUTO_UPDATE="true" 36 | 37 | # Uncomment the following line to change how often to auto-update (in days). 38 | # export UPDATE_ZSH_DAYS=13 39 | 40 | # Uncomment the following line to disable colors in ls. 41 | # DISABLE_LS_COLORS="true" 42 | 43 | # Uncomment the following line to disable auto-setting terminal title. 44 | # DISABLE_AUTO_TITLE="true" 45 | 46 | # Uncomment the following line to enable command auto-correction. 47 | # ENABLE_CORRECTION="true" 48 | 49 | # Uncomment the following line to display red dots whilst waiting for completion. 50 | # COMPLETION_WAITING_DOTS="true" 51 | 52 | # Uncomment the following line if you want to disable marking untracked files 53 | # under VCS as dirty. This makes repository status check for large repositories 54 | # much, much faster. 55 | # DISABLE_UNTRACKED_FILES_DIRTY="true" 56 | 57 | # Uncomment the following line if you want to change the command execution time 58 | # stamp shown in the history command output. 59 | # The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" 60 | # HIST_STAMPS="mm/dd/yyyy" 61 | HISTIGNORE="clear:git st:ls:git pup:mono" 62 | 63 | # Would you like to use another custom folder than $ZSH/custom? 64 | # ZSH_CUSTOM=/path/to/new-custom-folder 65 | 66 | # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) 67 | # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ 68 | # Example format: plugins=(rails git textmate ruby lighthouse) 69 | # Add wisely, as too many plugins slow down shell startup. 70 | plugins=( 71 | git 72 | zsh-vim-mode 73 | ) 74 | 75 | source $ZSH/oh-my-zsh.sh 76 | 77 | # User configuration 78 | # export MANPATH="/usr/local/man:$MANPATH" 79 | 80 | # You may need to manually set your language environment 81 | # export LANG=en_US.UTF-8 82 | 83 | # Preferred editor for local and remote sessions 84 | if [[ -n $SSH_CONNECTION ]]; then 85 | export EDITOR='vim' 86 | else 87 | export EDITOR='nvim' 88 | fi 89 | 90 | # 91 | # source our dotfiles 92 | # 93 | source ~/.dotfiles/aliases.sh 94 | source ~/.dotfiles/envs.sh 95 | source ~/.dotfiles/completions.sh 96 | source ~/.dotfiles/nuon.sh 97 | source ~/.dotfiles/ai.sh 98 | 99 | 100 | # Atuin 101 | source "$HOME/.atuin/bin/env" 102 | eval "$(atuin init zsh --disable-up-arrow)" 103 | 104 | # Broot 105 | source /Users/`whoami`/.config/broot/launcher/bash/br 106 | 107 | # 108 | # aws cli: completions executed here something gets overwritten otherwise 109 | # 110 | source ~/.local/bin/aws_zsh_completer.sh 111 | 112 | export NVM_DIR="$HOME/.nvm" 113 | [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 114 | [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion 115 | 116 | # enable ssh agent 117 | if [ -z "$SSH_AUTH_SOCK" ] ; then 118 | eval `ssh-agent` 119 | ssh-add 120 | fi 121 | -------------------------------------------------------------------------------- /.config/broot/skins/dark-gruvbox.hjson: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # A skin for a terminal with a dark background 3 | # This skin uses RGB values so won't work for some 4 | # terminals. 5 | # 6 | # 7 | # (initially contributed by @basbebe) 8 | # 9 | # Doc at https://dystroy.org/broot/skins/ 10 | ############################################################### 11 | 12 | skin: { 13 | default: rgb(235, 219, 178) none / rgb(189, 174, 147) none 14 | tree: rgb(70, 70, 80) None / rgb(60, 60, 60) None 15 | parent: rgb(235, 219, 178) none / rgb(189, 174, 147) none Italic 16 | file: None None / None None Italic 17 | directory: rgb(131, 165, 152) None Bold / rgb(131, 165, 152) None 18 | exe: rgb(184, 187, 38) None 19 | link: rgb(104, 157, 106) None 20 | pruning: rgb(124, 111, 100) None Italic 21 | perm__: None None 22 | perm_r: rgb(215, 153, 33) None 23 | perm_w: rgb(204, 36, 29) None 24 | perm_x: rgb(152, 151, 26) None 25 | owner: rgb(215, 153, 33) None Bold 26 | group: rgb(215, 153, 33) None 27 | count: rgb(69, 133, 136) rgb(50, 48, 47) 28 | dates: rgb(168, 153, 132) None 29 | sparse: rgb(250, 189,47) None 30 | content_extract: ansi(29) None Italic 31 | content_match: ansi(34) None Bold 32 | git_branch: rgb(251, 241, 199) None 33 | git_insertions: rgb(152, 151, 26) None 34 | git_deletions: rgb(190, 15, 23) None 35 | git_status_current: rgb(60, 56, 54) None 36 | git_status_modified: rgb(152, 151, 26) None 37 | git_status_new: rgb(104, 187, 38) None Bold 38 | git_status_ignored: rgb(213, 196, 161) None 39 | git_status_conflicted: rgb(204, 36, 29) None 40 | git_status_other: rgb(204, 36, 29) None 41 | selected_line: None rgb(60, 56, 54) / None rgb(50, 48, 47) 42 | char_match: rgb(250, 189, 47) None 43 | file_error: rgb(251, 73, 52) None 44 | flag_label: rgb(189, 174, 147) None 45 | flag_value: rgb(211, 134, 155) None Bold 46 | input: rgb(251, 241, 199) None / rgb(189, 174, 147) None Italic 47 | status_error: rgb(213, 196, 161) rgb(204, 36, 29) 48 | status_job: rgb(250, 189, 47) rgb(60, 56, 54) 49 | status_normal: None rgb(40, 38, 37) / None None 50 | status_italic: rgb(211, 134, 155) rgb(40, 38, 37) Italic / None None 51 | status_bold: rgb(211, 134, 155) rgb(40, 38, 37) Bold / None None 52 | status_code: rgb(251, 241, 199) rgb(40, 38, 37) / None None 53 | status_ellipsis: rgb(251, 241, 199) rgb(40, 38, 37) Bold / None None 54 | purpose_normal: None None 55 | purpose_italic: rgb(177, 98, 134) None Italic 56 | purpose_bold: rgb(177, 98, 134) None Bold 57 | purpose_ellipsis: None None 58 | scrollbar_track: rgb(80, 73, 69) None / rgb(50, 48, 47) None 59 | scrollbar_thumb: rgb(213, 196, 161) None / rgb(102, 92, 84) None 60 | help_paragraph: None None 61 | help_bold: rgb(214, 93, 14) None Bold 62 | help_italic: rgb(211, 134, 155) None Italic 63 | help_code: rgb(142, 192, 124) rgb(50, 48, 47) 64 | help_headers: rgb(254, 128, 25) None Bold 65 | help_table_border: rgb(80, 73, 69) None 66 | preview_title: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(189, 174, 147) rgb(40, 40, 40) 67 | preview: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(235, 219, 178) rgb(40, 40, 40) 68 | preview_line_number: rgb(124, 111, 100) None / rgb(124, 111, 100) rgb(40, 40, 40) 69 | preview_separator: rgb(70, 70, 80) None / rgb(60, 60, 60) None 70 | preview_match: None ansi(29) Bold 71 | hex_null: rgb(189, 174, 147) None 72 | hex_ascii_graphic: rgb(213, 196, 161) None 73 | hex_ascii_whitespace: rgb(152, 151, 26) None 74 | hex_ascii_other: rgb(254, 128, 25) None 75 | hex_non_ascii: rgb(214, 93, 14) None 76 | staging_area_title: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(189, 174, 147) rgb(40, 40, 40) 77 | mode_command_mark: gray(5) ansi(204) Bold 78 | good_to_bad_0: ansi(28) 79 | good_to_bad_1: ansi(29) 80 | good_to_bad_2: ansi(29) 81 | good_to_bad_3: ansi(29) 82 | good_to_bad_4: ansi(29) 83 | good_to_bad_5: ansi(100) 84 | good_to_bad_6: ansi(136) 85 | good_to_bad_7: ansi(172) 86 | good_to_bad_8: ansi(166) 87 | good_to_bad_9: ansi(196) 88 | } 89 | -------------------------------------------------------------------------------- /.config/broot/skins/solarized-light.hjson: -------------------------------------------------------------------------------- 1 | // contributed by [@danieltrautmann](https://github.com/danieltrautmann) 2 | // 3 | // 4 | // The Solarized Light skin uses RGB values, so it might not work well with some 5 | // terminals 6 | // 7 | // If you prefer to keep the background the same as your terminal background, change 8 | // the "default" entry to 9 | // default: "none none / rgb(147, 161, 161) none" 10 | // 11 | // Doc at https://dystroy.org/broot/skins/ 12 | 13 | skin: { 14 | // base00 default / base1 base2 15 | default: "rgb(101, 123, 131) none / rgb(147, 161, 161) none" 16 | // base1 default 17 | tree: "rgb(147, 161, 161) none" 18 | // default default 19 | file: "none none" 20 | // blue default bold 21 | directory: "rgb(38, 139, 210) none bold" 22 | // red default 23 | exe: "rgb(211, 1, 2) none" 24 | // magenta default 25 | link: "rgb(211, 54, 130) none" 26 | // base1 default italic 27 | pruning: "rgb(147, 161, 161) none italic" 28 | // base1 default 29 | perm__: "rgb(147, 161, 161) none" 30 | // default default 31 | perm_r: "none none" 32 | // default default 33 | perm_w: "none none" 34 | // default default 35 | perm_x: "none none" 36 | // base1 default 37 | owner: "rgb(147, 161, 161) none" 38 | // base1 default 39 | group: "rgb(147, 161, 161) none" 40 | // default default 41 | sparse: "none none" 42 | // base01 default 43 | git_branch: "rgb(88, 110, 117) none" 44 | // green default 45 | git_insertions: "rgb(133, 153, 0) none" 46 | // red default 47 | git_deletions: "rgb(211, 1, 2) none" 48 | // default default 49 | git_status_current: "none none" 50 | // yellow default 51 | git_status_modified: "rgb(181, 137, 0) none" 52 | // green default 53 | git_status_new: "rgb(133, 153, 0) none" 54 | // base1 default 55 | git_status_ignored: "rgb(147, 161, 161) none" 56 | // red default 57 | git_status_conflicted: "rgb(211, 1, 2) none" 58 | // red default 59 | git_status_other: "rgb(211, 1, 2) none" 60 | // default base2 61 | selected_line: "none rgb(238, 232, 213)" 62 | // green default underlined 63 | char_match: "rgb(133, 153, 0) none underlined" 64 | // orange default italic 65 | file_error: "rgb(203, 75, 22) none italic" 66 | // default default 67 | flag_label: "none none" 68 | // yellow default bold 69 | flag_value: "rgb(181, 137, 0) none bold" 70 | // default default 71 | input: "none none" 72 | // orange base2 73 | status_error: "rgb(203, 75, 22) rgb(238, 232, 213)" 74 | // violet base2 bold 75 | status_job: "rgb(108, 113, 196) rgb(238, 232, 213) bold" 76 | // default base2 77 | status_normal: "none rgb(238, 232, 213)" 78 | // yellow base2 79 | status_italic: "rgb(181, 137, 0) rgb(238, 232, 213)" 80 | // base01 base2 bold 81 | status_bold: "rgb(88, 110, 117) rgb(238, 232, 213) bold" 82 | // violet base2 83 | status_code: "rgb(108, 113, 196) rgb(238, 232, 213)" 84 | // default base2 85 | status_ellipsis: "none rgb(238, 232, 213)" 86 | // base2 default 87 | scrollbar_track: "rgb(238, 232, 213) none" 88 | // default default 89 | scrollbar_thumb: "none none" 90 | // default default 91 | help_paragraph: "none none" 92 | // base01 default bold 93 | help_bold: "rgb(88, 110, 117) none bold" 94 | // base01 default italic 95 | help_italic: "rgb(88, 110, 117) none italic" 96 | // base01 base2 97 | help_code: "rgb(88, 110, 117) rgb(238, 232, 213)" 98 | // yellow default 99 | help_headers: "rgb(181, 137, 0) none" 100 | // default default 101 | help_table_border: "none none" 102 | preview_title: "rgb(147, 161, 161) rgb(238, 232, 213)" 103 | preview: "rgb(101, 123, 131) rgb(253, 246, 227) / rgb(147, 161, 161) rgb(238, 232, 213)" 104 | preview_line_number: "rgb(147, 161, 161) rgb(238, 232, 213)" 105 | preview_separator: "rgb(147, 161, 161) rgb(238, 232, 213)" 106 | preview_match: "None ansi(29)" 107 | staging_area_title: "gray(22) rgb(253, 246, 227)" 108 | good_to_bad_0: ansi(28) 109 | good_to_bad_1: ansi(29) 110 | good_to_bad_2: ansi(29) 111 | good_to_bad_3: ansi(29) 112 | good_to_bad_4: ansi(29) 113 | good_to_bad_5: ansi(100) 114 | good_to_bad_6: ansi(136) 115 | good_to_bad_7: ansi(172) 116 | good_to_bad_8: ansi(166) 117 | good_to_bad_9: ansi(196) 118 | } 119 | -------------------------------------------------------------------------------- /.config/broot/skins/dark-orange.hjson: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # A skin for a terminal with a dark background 3 | # 4 | # To create your own skin, copy this file, change the entries 5 | # and import your skin file from the main conf file (look 6 | # for "imports") 7 | # 8 | # Doc at https://dystroy.org/broot/skins/ 9 | ############################################################### 10 | 11 | ############################################################### 12 | # Skin 13 | # If you want to change the colors of broot, 14 | # uncomment the following bloc and start messing 15 | # with the various values. 16 | # A skin entry value is made of two parts separated with a '/': 17 | # The first one is the skin for the active panel. 18 | # The second one, optional, is the skin for non active panels. 19 | # You may find explanations and other skins on 20 | # https://dystroy.org/broot/skins 21 | ############################################################### 22 | skin: { 23 | default: none none / gray(20) none 24 | tree: ansi(94) None / gray(3) None 25 | parent: gray(18) None / gray(13) None 26 | file: gray(20) None / gray(15) None 27 | directory: ansi(208) None Bold / ansi(172) None bold 28 | exe: Cyan None 29 | link: Magenta None 30 | pruning: gray(12) None Italic 31 | perm__: gray(5) None 32 | perm_r: ansi(94) None 33 | perm_w: ansi(132) None 34 | perm_x: ansi(65) None 35 | owner: ansi(138) None 36 | group: ansi(131) None 37 | count: ansi(136) gray(3) 38 | dates: ansi(66) None 39 | sparse: ansi(214) None 40 | content_extract: ansi(29) None 41 | content_match: ansi(34) None 42 | git_branch: ansi(229) None 43 | git_insertions: ansi(28) None 44 | git_deletions: ansi(160) None 45 | git_status_current: gray(5) None 46 | git_status_modified: ansi(28) None 47 | git_status_new: ansi(94) None Bold 48 | git_status_ignored: gray(17) None 49 | git_status_conflicted: ansi(88) None 50 | git_status_other: ansi(88) None 51 | selected_line: None gray(5) / None gray(4) 52 | char_match: Yellow None 53 | file_error: Red None 54 | flag_label: gray(15) None 55 | flag_value: ansi(208) None Bold 56 | input: White None / gray(15) gray(2) 57 | status_error: gray(22) ansi(124) 58 | status_job: ansi(220) gray(5) 59 | status_normal: gray(20) gray(3) / gray(2) gray(2) 60 | status_italic: ansi(208) gray(3) / gray(2) gray(2) 61 | status_bold: ansi(208) gray(3) Bold / gray(2) gray(2) 62 | status_code: ansi(229) gray(3) / gray(2) gray(2) 63 | status_ellipsis: gray(19) gray(1) / gray(2) gray(2) 64 | purpose_normal: gray(20) gray(2) 65 | purpose_italic: ansi(178) gray(2) 66 | purpose_bold: ansi(178) gray(2) Bold 67 | purpose_ellipsis: gray(20) gray(2) 68 | scrollbar_track: gray(7) None / gray(4) None 69 | scrollbar_thumb: gray(22) None / gray(14) None 70 | help_paragraph: gray(20) None 71 | help_bold: ansi(208) None Bold 72 | help_italic: ansi(166) None 73 | help_code: gray(21) gray(3) 74 | help_headers: ansi(208) None 75 | help_table_border: ansi(239) None 76 | preview: gray(20) gray(1) / gray(18) gray(2) 77 | preview_line_number: gray(12) gray(3) 78 | preview_separator: ansi(94) None / gray(3) None 79 | preview_match: None ansi(29) 80 | hex_null: gray(11) None 81 | hex_ascii_graphic: gray(18) None 82 | hex_ascii_whitespace: ansi(143) None 83 | hex_ascii_other: ansi(215) None 84 | hex_non_ascii: ansi(167) None 85 | good_to_bad_0: ansi(28) 86 | good_to_bad_1: ansi(29) 87 | good_to_bad_2: ansi(29) 88 | good_to_bad_3: ansi(29) 89 | good_to_bad_4: ansi(29) 90 | good_to_bad_5: ansi(100) 91 | good_to_bad_6: ansi(136) 92 | good_to_bad_7: ansi(172) 93 | good_to_bad_8: ansi(166) 94 | good_to_bad_9: ansi(196) 95 | } 96 | 97 | 98 | ############################################################### 99 | # Syntax Theme 100 | # 101 | # If you want to choose the theme used for preview, uncomment 102 | # one of the following lines: 103 | # 104 | # syntax_theme: GitHub 105 | # syntax_theme: SolarizedDark 106 | # syntax_theme: SolarizedLight 107 | syntax_theme: SolarizedDark 108 | # syntax_theme: MochaDark 109 | # syntax_theme: OceanDark 110 | # syntax_theme: OceanLight 111 | 112 | -------------------------------------------------------------------------------- /.config/nvim/lua/_plugins.lua: -------------------------------------------------------------------------------- 1 | -- This file can be loaded by calling `lua require('_plugins')` from your init.vim 2 | 3 | -- Only required if you have packer configured as `opt` 4 | vim.cmd [[packadd packer.nvim]] 5 | 6 | return require('packer').startup(function(use) 7 | -- Packer can manage itself 8 | use 'wbthomason/packer.nvim' 9 | 10 | -- 11 | -- Editor enhancements 12 | -- 13 | 14 | -- which key: key binding hints 15 | use 'folke/which-key.nvim' 16 | 17 | -- fonts and icons 18 | use 'ryanoasis/vim-devicons' 19 | use "nvim-tree/nvim-web-devicons" 20 | use { 21 | 'nvim-lualine/lualine.nvim', 22 | requires = { 'nvim-tree/nvim-web-devicons', opt = true } 23 | } 24 | 25 | -- easy align (gai) 26 | use 'junegunn/vim-easy-align' 27 | 28 | -- fzf fuzzy file search/navigation 29 | use 'junegunn/fzf' 30 | use 'junegunn/fzf.vim' 31 | 32 | -- 33 | -- telscope 34 | -- 35 | use 'nvim-telescope/telescope.nvim' 36 | 37 | -- telscope plugins/extensions 38 | use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' } 39 | use { "nvim-telescope/telescope-frecency.nvim" } 40 | use { 41 | "AckslD/nvim-neoclip.lua", 42 | requires = { 43 | {'nvim-telescope/telescope.nvim'}, 44 | }, 45 | } 46 | use { 47 | 'LukasPietzschmann/telescope-tabs', 48 | requires = { 'nvim-telescope/telescope.nvim' }, 49 | config = function() 50 | require'telescope-tabs'.setup{ 51 | } 52 | end 53 | } 54 | 55 | use "jmacadie/telescope-hierarchy.nvim" 56 | 57 | -- fern: file navigator 58 | use 'lambdalisue/vim-fern' 59 | use 'lambdalisue/nerdfont.vim' 60 | use 'lambdalisue/vim-fern-git-status' 61 | use 'lambdalisue/vim-fern-hijack' 62 | use 'lambdalisue/vim-fern-renderer-nerdfont' 63 | use 'LumaKernel/fern-mapping-fzf.vim' 64 | use 'yuki-yano/fern-preview.vim' 65 | 66 | -- 67 | -- LSP 68 | -- 69 | use 'nvim-treesitter/nvim-treesitter' 70 | use 'neovim/nvim-lspconfig' 71 | use 'prabirshrestha/vim-lsp' 72 | use 'prabirshrestha/async.vim' 73 | use 'prabirshrestha/asyncomplete.vim' 74 | use 'prabirshrestha/asyncomplete-lsp.vim' 75 | use { 76 | "cuducos/yaml.nvim", 77 | ft = { "yaml" }, -- optional 78 | requires = { 79 | "nvim-treesitter/nvim-treesitter", 80 | "nvim-telescope/telescope.nvim" -- optional 81 | }, 82 | } 83 | 84 | -- screenshots 85 | -- use "AlejandroSuero/freeze-code.nvim" 86 | 87 | -- git 88 | use 'tpope/vim-fugitive' 89 | use 'tpope/vim-rhubarb' 90 | use 'lewis6991/gitsigns.nvim' 91 | 92 | -- 93 | -- theme 94 | -- 95 | use "scottmckendry/cyberdream.nvim" 96 | 97 | -- 98 | -- file-type specific 99 | -- 100 | 101 | -- golang 102 | use 'ray-x/go.nvim' 103 | use 'ray-x/guihua.lua' 104 | use 'mfussenegger/nvim-dap' 105 | use 'nvim-neotest/nvim-nio' 106 | use { "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap", "nvim-neotest/nvim-nio"} } 107 | 108 | -- python 109 | -- all lsps now 110 | 111 | -- justfiles 112 | use 'NoahTheDuke/vim-just' 113 | 114 | -- terraform 115 | use 'hashivim/vim-terraform' 116 | 117 | -- prettier 118 | use 'prettier/vim-prettier' 119 | 120 | -- formatter 121 | use 'sbdchd/neoformat' 122 | 123 | -- comments 124 | use 'tpope/vim-commentary' 125 | 126 | -- lua 127 | use 'nvim-lua/plenary.nvim' 128 | 129 | -- helm 130 | use 'towolf/vim-helm' 131 | 132 | -- nvim gui components 133 | use 'MunifTanjim/nui.nvim' 134 | 135 | -- 136 | -- Generative AI 137 | -- 138 | -- 139 | use 'stevearc/dressing.nvim' 140 | use 'MeanderingProgrammer/render-markdown.nvim' 141 | 142 | use { 143 | 'yetone/avante.nvim', 144 | branch = 'main', 145 | run = 'make', 146 | config = function() 147 | require('avante').setup( 148 | { 149 | opts = { 150 | providers = { 151 | claude = { 152 | endpoint = "https://api.anthropic.com", 153 | model = "claude-sonnet-4-20250514", 154 | -- model = "claude-opus-4-20250514", 155 | timeout = 30000, -- Timeout in milliseconds 156 | disable_tools = true, -- disable tools! 157 | extra_request_body = { 158 | temperature = 0, 159 | max_tokens = 4096, 160 | } 161 | } 162 | } 163 | } 164 | } 165 | ) 166 | end 167 | } 168 | 169 | end) 170 | -------------------------------------------------------------------------------- /.bak/tmux/.tmux.conf: -------------------------------------------------------------------------------- 1 | # set Zsh as your default Tmux shell 2 | set-option -g default-shell /bin/zsh 3 | 4 | # set to vi mode 5 | set-window-option -g mode-keys vi 6 | 7 | # Tmux should be pretty, we need 256 color for that 8 | set -g default-terminal "xterm-256color" 9 | set-window-option -g xterm-keys on 10 | 11 | # command delay? We don't want that, make it short 12 | set -sg escape-time 1 13 | 14 | # Change cursor in vim to distinguish between insert and command mode 15 | set-option -g terminal-overrides '*88col*:colors=88,*256col*:colors=256,xterm*:XT:Ms=\E]52;%p1%s;%p2%s\007:Cc=\E]12;%p1%s\007:Cr=\E]112\007:Cs=\E]50;CursorShape=%?%p1%{3}%<%t%{0}%e%p1%{2}%-%;%d\007' 16 | 17 | # Allow us to reload our Tmux configuration while using Tmux 18 | bind r source-file ~/.tmux.conf \; display "Reloaded!" 19 | 20 | # bind HJKL to pane switching 21 | # bind -r -n C-h select-pane -L 22 | # bind -r -n C-j select-pane -D 23 | # bind -r -n C-k select-pane -U 24 | # bind -r -n C-l select-pane -R 25 | 26 | # Smart pane switching with awareness of Vim splits. 27 | # See: https://github.com/christoomey/vim-tmux-navigator 28 | is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ 29 | | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" 30 | bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" 31 | bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" 32 | bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" 33 | bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" 34 | bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" 35 | 36 | # for moving tabs around 37 | # source: https://superuser.com/questions/343572/how-do-i-reorder-tmux-windows/552493#552493 38 | 39 | bind-key -n C-S-Left swap-window -t -1 40 | bind-key -n C-S-Right swap-window -t +1 41 | 42 | # Footer coloring 43 | 44 | set -g default-terminal "screen-256color" 45 | 46 | set -g status-bg blue 47 | set -g status-fg black 48 | 49 | set -g status-justify left 50 | set -g status-interval 1 51 | 52 | # messaging 53 | set -g message-fg black 54 | set -g message-bg yellow 55 | set -g message-command-fg blue 56 | set -g message-command-bg black 57 | 58 | #window mode 59 | setw -g mode-bg colour6 60 | setw -g mode-fg colour0 61 | 62 | # window status 63 | setw -g window-status-format " #F#I:#W#F " 64 | setw -g window-status-current-format " #F#I:#W#F " 65 | setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W " 66 | setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W " 67 | setw -g window-status-current-bg colour0 68 | setw -g window-status-current-fg colour11 69 | setw -g window-status-current-attr dim 70 | setw -g window-status-bg green 71 | setw -g window-status-fg black 72 | setw -g window-status-attr reverse 73 | 74 | # Info on left (I don't have a session display for now) 75 | set -g status-left '' 76 | 77 | # loud or quiet? 78 | set-option -g visual-activity off 79 | set-option -g visual-bell off 80 | set-option -g visual-silence off 81 | set-window-option -g monitor-activity off 82 | set-option -g bell-action none 83 | 84 | set -g default-terminal "screen-256color" 85 | 86 | # The modes { 87 | setw -g clock-mode-colour colour135 88 | setw -g mode-attr bold 89 | setw -g mode-fg colour196 90 | setw -g mode-bg colour238 91 | 92 | # } 93 | # The panes { 94 | 95 | set -g pane-border-bg colour235 96 | set -g pane-border-fg colour238 97 | set -g pane-active-border-bg colour236 98 | set -g pane-active-border-fg colour51 99 | 100 | # } 101 | # The statusbar { 102 | 103 | set -g status-position bottom 104 | set -g status-bg colour234 105 | set -g status-fg colour137 106 | set -g status-attr dim 107 | set -g status-left '' 108 | set -g status-right '#[fg=black,bg=white,bold] %d/%m/%y #[fg=white,bg=black,bold] %H:%M:%S ' 109 | set -g status-right-length 50 110 | set -g status-left-length 20 111 | 112 | setw -g window-status-current-fg colour81 113 | setw -g window-status-current-bg colour238 114 | setw -g window-status-current-attr bold 115 | setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F ' 116 | 117 | setw -g window-status-fg colour138 118 | setw -g window-status-bg colour235 119 | setw -g window-status-attr none 120 | setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F ' 121 | 122 | setw -g window-status-bell-attr bold 123 | setw -g window-status-bell-fg colour255 124 | setw -g window-status-bell-bg colour1 125 | 126 | # } 127 | 128 | # The messages { 129 | 130 | set -g message-attr bold 131 | set -g message-fg colour232 132 | set -g message-bg colour166 133 | 134 | # } 135 | -------------------------------------------------------------------------------- /.config/broot/skins/dark-blue.hjson: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # A skin for a terminal with a dark background 3 | # 4 | # To create your own skin, copy this file, change the entries 5 | # and import your skin file from the main conf file (look 6 | # for "imports") 7 | # 8 | # Doc at https://dystroy.org/broot/skins/ 9 | ############################################################### 10 | 11 | ############################################################### 12 | # Skin 13 | # If you want to change the colors of broot, 14 | # uncomment the following block and start messing 15 | # with the various values. 16 | # A skin entry value is made of two parts separated with a '/': 17 | # The first one is the skin for the active panel. 18 | # The second one, optional, is the skin for non active panels. 19 | # You may find explanations and other skins on 20 | # https://dystroy.org/broot/skins 21 | ############################################################### 22 | skin: { 23 | default: gray(22) none / gray(20) none 24 | tree: gray(8) None / gray(4) None 25 | parent: gray(18) None / gray(13) None 26 | file: gray(22) None / gray(15) None 27 | directory: ansi(110) None bold / ansi(110) None 28 | exe: Cyan None 29 | link: Magenta None 30 | pruning: gray(12) None Italic 31 | perm__: gray(5) None 32 | perm_r: ansi(94) None 33 | perm_w: ansi(132) None 34 | perm_x: ansi(65) None 35 | owner: ansi(138) None 36 | group: ansi(131) None 37 | count: ansi(138) gray(4) 38 | dates: ansi(66) None 39 | sparse: ansi(214) None 40 | content_extract: ansi(29) None 41 | content_match: ansi(34) None 42 | device_id_major: ansi(138) None 43 | device_id_sep: ansi(102) None 44 | device_id_minor: ansi(138) None 45 | git_branch: ansi(178) None 46 | git_insertions: ansi(28) None 47 | git_deletions: ansi(160) None 48 | git_status_current: gray(5) None 49 | git_status_modified: ansi(28) None 50 | git_status_new: ansi(94) None bold 51 | git_status_ignored: gray(17) None 52 | git_status_conflicted: ansi(88) None 53 | git_status_other: ansi(88) None 54 | selected_line: None gray(6) / None gray(4) 55 | char_match: Green None 56 | file_error: Red None 57 | flag_label: gray(15) gray(2) 58 | flag_value: ansi(178) gray(2) bold 59 | input: White gray(2) / gray(15) None 60 | status_error: gray(22) ansi(124) 61 | status_job: ansi(220) gray(5) 62 | status_normal: gray(20) gray(4) / gray(2) gray(2) 63 | status_italic: ansi(178) gray(4) / gray(2) gray(2) 64 | status_bold: ansi(178) gray(4) bold / gray(2) gray(2) 65 | status_code: ansi(229) gray(4) / gray(2) gray(2) 66 | status_ellipsis: gray(19) gray(1) / gray(2) gray(2) 67 | purpose_normal: gray(20) gray(2) 68 | purpose_italic: ansi(178) gray(2) 69 | purpose_bold: ansi(178) gray(2) bold 70 | purpose_ellipsis: gray(20) gray(2) 71 | scrollbar_track: gray(7) None / gray(4) None 72 | scrollbar_thumb: gray(22) None / gray(14) None 73 | help_paragraph: gray(20) None 74 | help_bold: ansi(178) None bold 75 | help_italic: ansi(229) None 76 | help_code: gray(21) gray(3) 77 | help_headers: ansi(178) None 78 | help_table_border: ansi(239) None 79 | preview: gray(20) gray(1) / gray(18) gray(2) 80 | preview_title: gray(23) gray(2) / gray(21) gray(2) 81 | preview_line_number: gray(12) gray(3) 82 | preview_separator: gray(5) None 83 | preview_match: None ansi(29) 84 | hex_null: gray(8) None 85 | hex_ascii_graphic: gray(18) None 86 | hex_ascii_whitespace: ansi(143) None 87 | hex_ascii_other: ansi(215) None 88 | hex_non_ascii: ansi(167) None 89 | staging_area_title: gray(22) gray(2) / gray(20) gray(3) 90 | mode_command_mark: gray(5) ansi(204) bold 91 | good_to_bad_0: ansi(28) 92 | good_to_bad_1: ansi(29) 93 | good_to_bad_2: ansi(29) 94 | good_to_bad_3: ansi(29) 95 | good_to_bad_4: ansi(29) 96 | good_to_bad_5: ansi(100) 97 | good_to_bad_6: ansi(136) 98 | good_to_bad_7: ansi(172) 99 | good_to_bad_8: ansi(166) 100 | good_to_bad_9: ansi(196) 101 | } 102 | 103 | ############################################################### 104 | # Syntax Theme 105 | # 106 | # If you want to choose the theme used for preview, uncomment 107 | # one of the following lines: 108 | # 109 | # syntax_theme: GitHub 110 | # syntax_theme: SolarizedDark 111 | # syntax_theme: SolarizedLight 112 | syntax_theme: MochaDark 113 | # syntax_theme: MochaDark 114 | # syntax_theme: OceanDark 115 | # syntax_theme: OceanLight 116 | 117 | -------------------------------------------------------------------------------- /.bak/tmux/tmux.conf: -------------------------------------------------------------------------------- 1 | # set Zsh as your default Tmux shell 2 | # set-option -g default-shell /bin/zsh 3 | 4 | # set to vi mode 5 | set-window-option -g mode-keys vi 6 | 7 | # Tmux should be pretty, we need 256 color for that 8 | set -g default-terminal "xterm-256color" 9 | set-window-option -g xterm-keys on 10 | 11 | # command delay? We don't want that, make it short 12 | set -sg escape-time 1 13 | 14 | # Change cursor in vim to distinguish between insert and command mode 15 | set-option -g terminal-overrides '*88col*:colors=88,*256col*:colors=256,xterm*:XT:Ms=\E]52;%p1%s;%p2%s\007:Cc=\E]12;%p1%s\007:Cr=\E]112\007:Cs=\E]50;CursorShape=%?%p1%{3}%<%t%{0}%e%p1%{2}%-%;%d\007' 16 | 17 | # Allow us to reload our Tmux configuration while using Tmux 18 | bind r source-file ~/.tmux.conf \; display "Reloaded!" 19 | 20 | # bind HJKL to pane switching 21 | # bind -r -n C-h select-pane -L 22 | # bind -r -n C-j select-pane -D 23 | # bind -r -n C-k select-pane -U 24 | # bind -r -n C-l select-pane -R 25 | 26 | # Smart pane switching with awareness of Vim splits. 27 | # See: https://github.com/christoomey/vim-tmux-navigator 28 | is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ 29 | | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" 30 | bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" 31 | bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" 32 | bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" 33 | bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" 34 | # bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" 35 | 36 | # for moving tabs around 37 | # source: https://superuser.com/questions/343572/how-do-i-reorder-tmux-windows/552493#552493 38 | 39 | bind-key -n C-S-Left swap-window -t -1 40 | bind-key -n C-S-Right swap-window -t +1 41 | 42 | # Footer coloring 43 | 44 | set -g default-terminal "screen-256color" 45 | 46 | set -g status-style bg=blue 47 | set -g status-style fg=black 48 | 49 | set -g status-justify left 50 | set -g status-interval 1 51 | 52 | # messaging 53 | set -g message-style fg=black 54 | set -g message-style bg=yellow 55 | set -g message-command-style fg=blue 56 | set -g message-command-style bg=black 57 | 58 | #window mode 59 | setw -g mode-style bg=colour6 60 | setw -g mode-style fg=colour0 61 | 62 | # window status 63 | setw -g window-status-format " #F#I:#W#F " 64 | setw -g window-status-current-format " #F#I:#W#F " 65 | setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W " 66 | setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W " 67 | setw -g window-status-current-style bg=colour0 68 | setw -g window-status-current-style fg=colour11 69 | setw -g window-status-current-style dim 70 | setw -g window-status-style bg=green 71 | setw -g window-status-style fg=black 72 | setw -g window-status-style reverse 73 | 74 | # Info on left (I don't have a session display for now) 75 | set -g status-left '' 76 | 77 | # loud or quiet? 78 | set-option -g visual-activity off 79 | set-option -g visual-bell off 80 | set-option -g visual-silence off 81 | set-window-option -g monitor-activity off 82 | set-option -g bell-action none 83 | 84 | set -g default-terminal "screen-256color" 85 | 86 | # The modes { 87 | setw -g clock-mode-colour colour135 88 | setw -g mode-style bold 89 | setw -g mode-style fg=colour196 90 | setw -g mode-style bg=colour238 91 | 92 | # } 93 | # The panes { 94 | 95 | set -g pane-border-style bg=colour235 96 | set -g pane-border-style fg=colour238 97 | set -g pane-active-border-style bg=colour236 98 | set -g pane-active-border-style fg=colour51 99 | 100 | # } 101 | # The statusbar { 102 | 103 | set -g status-position bottom 104 | set -g status-style bg=colour234 105 | set -g status-style fg=colour137 106 | set -g status-style dim 107 | set -g status-left '' 108 | set -g status-right '#(whoami)@#(hostname) #[fg=black,bg=white,bold] %d/%m/%y #[fg=white,bg=black,bold] %H:%M:%S ' 109 | set -g status-right-length 50 110 | set -g status-left-length 20 111 | 112 | setw -g window-status-current-style fg=colour81 113 | setw -g window-status-current-style bg=colour238 114 | setw -g window-status-current-style bold 115 | setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F ' 116 | 117 | setw -g window-status-style fg=colour138 118 | setw -g window-status-style bg=colour235 119 | setw -g window-status-style none 120 | setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F ' 121 | 122 | setw -g window-status-bell-style bold 123 | setw -g window-status-bell-style fg=colour255 124 | setw -g window-status-bell-style bg=colour1 125 | 126 | # } 127 | 128 | # The messages { 129 | 130 | set -g message-style bold 131 | set -g message-style fg=colour232 132 | set -g message-style bg=colour166 133 | 134 | # } 135 | -------------------------------------------------------------------------------- /.config/broot/skins/solarized-dark.hjson: -------------------------------------------------------------------------------- 1 | // contributed by [@danieltrautmann](https://github.com/danieltrautmann) 2 | // 3 | // 4 | // The Solarized Dark skin uses RGB values, so it might not work well with some 5 | // terminals 6 | // 7 | // Doc at https://dystroy.org/broot/skins/ 8 | 9 | skin: { 10 | default: "rgb(131, 148, 150) rgb(0, 43, 54) / rgb(131, 148, 150) rgb(7, 54, 66)" // base0 base03 / base01 base02 11 | tree: "rgb(88, 110, 117) none" // base01 default 12 | file: "none none" // default default 13 | directory: "rgb(38, 139, 210) none bold" // blue default bold 14 | exe: "rgb(211, 1, 2) none" // red default 15 | link: "rgb(211, 54, 130) none" // magenta default 16 | pruning: "rgb(88, 110, 117) none italic" // base01 default italic 17 | perm__: "rgb(88, 110, 117) none" // base01 default 18 | perm_r: "none none" // default default 19 | perm_w: "none none" // default default 20 | perm_x: "none none" // default default 21 | owner: "rgb(88, 110, 117) none" // base01 default 22 | group: "rgb(88, 110, 117) none" // base01 default 23 | sparse: "none none" // default default 24 | git_branch: "rgb(147, 161, 161) none" // base1 default 25 | git_insertions: "rgb(133, 153, 0) none" // green default 26 | git_deletions: "rgb(211, 1, 2) none" // red default 27 | git_status_current: "none none" // default default 28 | git_status_modified: "rgb(181, 137, 0) none" // yellow default 29 | git_status_new: "rgb(133, 153, 0) none" // green default 30 | git_status_ignored: "rgb(88, 110, 117) none" // base01 default 31 | git_status_conflicted: "rgb(211, 1, 2) none" // red default 32 | git_status_other: "rgb(211, 1, 2) none" // red default 33 | selected_line: "none rgb(7, 54, 66)" // default base02 34 | char_match: "rgb(133, 153, 0) none underlined" // green default underlined 35 | file_error: "rgb(203, 75, 22) none italic" // orange default italic 36 | flag_label: "none none" // default default 37 | flag_value: "rgb(181, 137, 0) none bold" // yellow default bold 38 | input: "none none" // default default 39 | status_error: "rgb(203, 75, 22) rgb(7, 54, 66)" // orange base02 40 | status_job: "rgb(108, 113, 196) rgb(7, 54, 66) bold" // violet base02 bold 41 | status_normal: "none rgb(7, 54, 66)" // default base02 42 | status_italic: "rgb(181, 137, 0) rgb(7, 54, 66)" // yellow base02 43 | status_bold: "rgb(147, 161, 161) rgb(7, 54, 66) bold" // base1 base02 bold 44 | status_code: "rgb(108, 113, 196) rgb(7, 54, 66)" // violet base02 45 | status_ellipsis: "none rgb(7, 54, 66)" // default base02 46 | scrollbar_track: "rgb(7, 54, 66) none" // base02 default 47 | scrollbar_thumb: "none none" // default default 48 | help_paragraph: "none none" // default default 49 | help_bold: "rgb(147, 161, 161) none bold" // base1 default bold 50 | help_italic: "rgb(147, 161, 161) none italic" // base1 default italic 51 | help_code: "rgb(147, 161, 161) rgb(7, 54, 66)" // base1 base02 52 | help_headers: "rgb(181, 137, 0) none" // yellow default 53 | help_table_border: "none none" // default default 54 | preview_title: "gray(20) rgb(0, 43, 54)" 55 | staging_area_title: "gray(22) rgb(0, 43, 54)" 56 | good_to_bad_0: "ansi(28)" // green 57 | good_to_bad_1: "ansi(29)" 58 | good_to_bad_2: "ansi(29)" 59 | good_to_bad_3: "ansi(29)" 60 | good_to_bad_4: "ansi(29)" 61 | good_to_bad_5: "ansi(100)" 62 | good_to_bad_6: "ansi(136)" 63 | good_to_bad_7: "ansi(172)" 64 | good_to_bad_8: "ansi(166)" 65 | good_to_bad_9: "ansi(196)" // red 66 | } 67 | -------------------------------------------------------------------------------- /.config/broot/verbs.hjson: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # This file contains the verb definitions for broot 3 | # 4 | # Some verbs here are examples and not enabled by default: you 5 | # need to uncomment them if you want to use them. 6 | # 7 | # Documentation at https://dystroy.org/broot/verbs/ 8 | ############################################################### 9 | 10 | verbs: [ 11 | 12 | # You should customize this standard opening of text files. 13 | # If you edit text files in your terminal (vi, emacs, helix, eg.), then 14 | # you'll find it convenient to change the 'key' from 'ctrl-e' to 'enter'. 15 | # 16 | # If $EDITOR isn't set on your computer, you should either set it using 17 | # something similar to 18 | # export EDITOR=/usr/local/bin/nvim 19 | # or just replace it with your editor of choice in the 'execution' 20 | # pattern. 21 | # If your editor is able to open a file on a specific line, use {line} 22 | # so that you may jump directly at the right line from a preview or 23 | # a content search. 24 | # Examples depending on your favourite editor: 25 | # execution: "nvim +{line} {file}" 26 | # execution: "helix {file}:{line}" 27 | { 28 | invocation: edit 29 | shortcut: e 30 | key: ctrl-e 31 | apply_to: text_file 32 | execution: "$EDITOR {file}" 33 | leave_broot: false 34 | } 35 | 36 | # Example 1: launching `tail -n` on the selected file (leaving broot) 37 | # { 38 | # name: tail_lines 39 | # invocation: tl {lines_count} 40 | # execution: "tail -f -n {lines_count} {file}" 41 | # } 42 | 43 | # Example 2: creating a new file without leaving broot 44 | # { 45 | # name: touch 46 | # invocation: touch {new_file} 47 | # execution: "touch {directory}/{new_file}" 48 | # leave_broot: false 49 | # } 50 | 51 | # A convenient shortcut to create new text files in 52 | # the current directory or below 53 | { 54 | invocation: create {subpath} 55 | execution: "$EDITOR {directory}/{subpath}" 56 | leave_broot: false 57 | } 58 | 59 | { 60 | invocation: git_diff 61 | shortcut: gd 62 | leave_broot: false 63 | execution: "git difftool -y {file}" 64 | } 65 | 66 | # On ctrl-b, propose the creation of a copy of the selection. 67 | # While this might occasionally be useful, this verb is mostly here 68 | # as an example to demonstrate rare standard groups like {file-stem} 69 | # and {file-dot-extension} and the auto_exec verb property which 70 | # allows verbs to stay unexecuted until you hit enter 71 | { 72 | invocation: "backup {version}" 73 | key: ctrl-b 74 | leave_broot: false 75 | auto_exec: false 76 | execution: "cp -r {file} {parent}/{file-stem}-{version}{file-dot-extension}" 77 | } 78 | 79 | # By default, `rm` does the system rm, and completely removes 80 | # the file. If you prefer to have the file moved to the system 81 | # trash, you may use the ':trash' internal with the verb below: 82 | # { 83 | # invocation: "rm" 84 | # internal: "trash" 85 | # leave_broot: false 86 | # } 87 | 88 | # This verb lets you launch a terminal on ctrl-T 89 | # (on exit you'll be back in broot) 90 | { 91 | invocation: terminal 92 | key: ctrl-t 93 | execution: "$SHELL" 94 | set_working_dir: true 95 | leave_broot: false 96 | } 97 | 98 | # Here's an example of a verb needing the shell capabilities. 99 | # It copies all children of the currently selected directory 100 | # to a destination you type. 101 | # It uses a star, which needs the shell for expansion. That's 102 | # why such verb must have the `from_shell: true` parameter. 103 | # { 104 | # invocation: "cpa {dest}" 105 | # external: "cp -r {directory}/* {dest}" 106 | # from_shell: true 107 | # } 108 | 109 | # Here's an example of a shortcut bringing you to your home directory 110 | # { 111 | # invocation: home 112 | # key: ctrl-home 113 | # execution: ":focus ~" 114 | # } 115 | 116 | # Here's going to the work-dir root of the current git repository 117 | # { 118 | # invocation: gtr 119 | # execution: ":focus {git-root}" 120 | # } 121 | 122 | # A popular set of shortcuts for going up and down: 123 | # 124 | # { 125 | # key: ctrl-k 126 | # execution: ":line_up" 127 | # } 128 | # { 129 | # key: ctrl-j 130 | # execution: ":line_down" 131 | # } 132 | # { 133 | # key: ctrl-u 134 | # execution: ":page_up" 135 | # } 136 | # { 137 | # key: ctrl-d 138 | # execution: ":page_down" 139 | # } 140 | 141 | # If you develop using git, you might like to often switch 142 | # to the git status filter: 143 | # { 144 | # key: alt-g 145 | # execution: ":toggle_git_status" 146 | # } 147 | 148 | # You can reproduce the bindings of Norton Commander 149 | # on copying or moving to the other panel: 150 | # { 151 | # key: F5 152 | # external: "cp -r {file} {other-panel-directory}" 153 | # leave_broot: false 154 | # } 155 | # { 156 | # key: F6 157 | # external: "mv {file} {other-panel-directory}" 158 | # leave_broot: false 159 | # } 160 | ] 161 | 162 | -------------------------------------------------------------------------------- /.bak/.bak-vimrc: -------------------------------------------------------------------------------- 1 | " ----- 2 | " .vimrc 3 | " 4 | " sets up vundle and install plugins 5 | " also sets some language specific 6 | " things like indenting and syntax highlighting 7 | " 8 | 9 | set nocompatible " be iMproved 10 | filetype off " required! 11 | 12 | " Vundle: package management 13 | set rtp+=~/.vim/bundle/Vundle.vim/ 14 | call vundle#rc() 15 | 16 | " somewhat meta 17 | Bundle 'gmarik/vundle' 18 | 19 | " other plugins 20 | Bundle 'airblade/vim-gitgutter' 21 | Bundle 'chr4/nginx.vim' 22 | Bundle 'christoomey/vim-tmux-navigator' 23 | Bundle 'fatih/vim-go' 24 | Bundle 'kien/rainbow_parentheses.vim' 25 | Bundle 'lepture/vim-jinja' 26 | Bundle 'luochen1990/rainbow' 27 | Bundle 'mxw/vim-jsx' 28 | Bundle 'pangloss/vim-javascript' 29 | Bundle 'plasticboy/vim-markdown' 30 | Bundle 'preservim/nerdcommenter' 31 | Bundle 'prettier/vim-prettier' 32 | Bundle 'sbdchd/neoformat' 33 | Bundle 'scrooloose/nerdtree' 34 | Bundle 'stephpy/vim-yaml' 35 | Bundle 'vim-scripts/django.vim' 36 | Bundle 'vim-syntastic/syntastic' 37 | 38 | 39 | """ General 40 | colorscheme monokai 41 | 42 | 43 | " leader 44 | " follow the leader 45 | let mapleader = "," 46 | let g:mapleader = "," 47 | 48 | " never in my life have i used ex mode 49 | " i'm not sure what it is and at this point i'm too afraid to ask 50 | nnoremap Q 51 | nnoremap q 52 | 53 | " ruler 54 | set ruler 55 | 56 | " set line under cursor 57 | set cursorline 58 | 59 | " set max col width 60 | set colorcolumn=100 61 | 62 | " copy to clipboard 63 | set clipboard=unnamed 64 | 65 | " fold 66 | set foldmethod=indent 67 | set foldlevel=99 68 | nnoremap za 69 | 70 | " turn highlighting on 71 | set hlsearch 72 | 73 | " autoread/autoreload changed files 74 | " I git rebase a lot so this is useful 75 | set autoread 76 | 77 | " other stuff 78 | set background=dark 79 | set expandtab 80 | set modeline 81 | set number 82 | 83 | syntax on 84 | filetype indent plugin on 85 | 86 | 87 | 88 | """ 89 | """ Jinja 90 | au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm,*.yaml set ft=jinja 91 | 92 | """ 93 | """ Javascript settings 94 | """ 95 | 96 | autocmd FileType javascript setlocal shiftwidth=2 tabstop=2 97 | 98 | " prettier lint files on save 99 | autocmd BufWritePre *.js Neoformat 100 | autocmd BufWritePre *.jsx Neoformat 101 | let g:neoformat_try_formatprg = 1 102 | let g:jsx_ext_required = 0 103 | 104 | " max line length that prettier will wrap on 105 | let g:prettier#config#print_width = 100 106 | let g:prettier#config#tab_width = 2 107 | let g:prettier#config#use_tabs = 'false' 108 | let g:prettier#config#semi = 'true' 109 | let g:prettier#config#single_quote = 'true' 110 | let g:prettier#config#bracket_spacing = 'false' 111 | let g:prettier#config#jsx_bracket_same_line = 'true' 112 | let g:prettier#config#trailing_comma = 'es5' 113 | let g:prettier#config#parser = 'flow' 114 | let g:prettier#config#config_precedence = 'prefer-file' 115 | autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md Prettier 116 | 117 | """ 118 | """ Python Settings 119 | """ 120 | autocmd FileType python set shiftwidth=4 softtabstop=4 tabstop=4 121 | " highlight all python syntax 122 | let python_highlight_all = 1 123 | let g:syntastic_python_checkers=['flake8'] 124 | 125 | 126 | """ HTML Settings 127 | " html autocomplete 128 | autocmd FileType html set omnifunc=htmlcomplete#CompleteTags 129 | " !tidy -mi -html -wrap 0 % 130 | 131 | " ctrl p settings 132 | let g:ctrlp_working_path_mode = 'a' 133 | let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files -co --exclude-standard'] 134 | 135 | " nerd tree settings 136 | let NERDTreeIgnore = ['\.pyc$'] 137 | map :NERDTreeToggle 138 | 139 | " nerdcommneter settings 140 | 141 | """ Trim Whitespace on Save 142 | " White space noise 143 | function TrimWhiteSpace() 144 | %s/\s*$// 145 | '' 146 | :endfunction 147 | 148 | set list listchars=tab:»·,trail:· 149 | 150 | autocmd FileWritePre * call TrimWhiteSpace() 151 | autocmd FileAppendPre * call TrimWhiteSpace() 152 | autocmd FilterWritePre * call TrimWhiteSpace() 153 | autocmd BufWritePre * call TrimWhiteSpace() 154 | map :call TrimWhiteSpace() 155 | map! :call TrimWhiteSpace() 156 | 157 | 158 | """ Rainbow Parens Configs 159 | let g:rainbow_conf = { 160 | \ 'guifgs': ['firebrick', 'seagreen3', 'darkorange3', 'royalblue3'], 161 | \ 'ctermfgs': ['lightmagenta', 'lightblue', 'lightyellow', 'lightcyan'], 162 | \ 'operators': '_,_', 163 | \ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold'], 164 | \ 'separately': { 165 | \ '*': {}, 166 | \ 'tex': { 167 | \ 'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/'], 168 | \ }, 169 | \ 'lisp': { 170 | \ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick', 'darkorchid3'], 171 | \ }, 172 | \ 'vim': { 173 | \ 'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/', 'start=/{/ end=/}/ fold', 'start=/(/ end=/)/ containedin=vimFuncBody', 'start=/\[/ end=/\]/ containedin=vimFuncBody', 'start=/{/ end=/}/ fold containedin=vimFuncBody'], 174 | \ }, 175 | \ 'html': { 176 | \ 'parentheses': ['start=/\v\<((area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)[ >])@!\z([-_:a-zA-Z0-9]+)(\s+[-_:a-zA-Z0-9]+(\=("[^"]*"|'."'".'[^'."'".']*'."'".'|[^ '."'".'"><=`]*))?)*\>/ end=## fold'], 177 | \ }, 178 | \ 'css': 0, 179 | \ } 180 | \} 181 | 182 | 183 | " rainbow parenthesis 184 | let g:rainbow_active = 1 185 | -------------------------------------------------------------------------------- /.config/broot/skins/catppuccin-mocha.hjson: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # A skin for a terminal with a dark background 3 | # This skin uses RGB values so won't work for some 4 | # terminals. 5 | # 6 | # Created by A. Taha Baki 7 | # Based on the built-in gruvbox theme. 8 | # 9 | # Doc at https://dystroy.org/broot/skins/ 10 | ############################################################### 11 | 12 | skin: { 13 | input: rgb(205, 214, 244) none 14 | # fg:none bg:$surface2 15 | selected_line: none rgb(88, 91, 112) 16 | # fg:$text bg:none 17 | default: rgb(205, 214, 244) none 18 | # fg:$overlay0 bg:none 19 | tree: rgb(108, 112, 134) none 20 | # fg:$sapphire bg:none 21 | parent: rgb(116, 199, 236) none 22 | file: none none 23 | # 24 | ### PERMISSIONS 25 | # 26 | perm__: rgb(186, 194, 222) none 27 | # $peach 28 | perm_r: rgb(250, 179, 135) none 29 | # $maroon 30 | perm_w: rgb(235, 160, 172) none 31 | # $green 32 | perm_x: rgb(166, 227, 161) none 33 | # $teal 34 | owner: rgb(148, 226, 213) none 35 | # $sky 36 | group: rgb(137, 220, 235) none 37 | # 38 | ### DATE 39 | # 40 | # $subtext1 41 | dates: rgb(186, 194, 222) none 42 | # 43 | ### DIRECTORY 44 | # 45 | # $lavender 46 | directory: rgb(180, 190, 254) none Bold 47 | # $green 48 | exe: rgb(166, 227, 161) none 49 | # $yellow 50 | link: rgb(249, 226, 175) none 51 | # $subtext0 52 | pruning: rgb(166, 173, 200) none Italic 53 | # 54 | ### PREVIEW 55 | # 56 | # fg:$text bg:$mantle 57 | preview_title: rgb(205, 214, 244) rgb(24, 24, 37) 58 | # fg:$text bg:$mantle 59 | preview: rgb(205, 214, 244) rgb(24, 24, 37) 60 | # fg:$overlay0 61 | preview_line_number: rgb(108, 112, 134) none 62 | # fg:$overlay0 63 | preview_separator: rgb(108, 112, 134) none 64 | # 65 | ### MATCH 66 | # 67 | char_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic 68 | content_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic 69 | preview_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic 70 | 71 | # children count 72 | # fg:$yellow bg:none 73 | count: rgb(249, 226, 175) none 74 | sparse: rgb(243, 139, 168) none 75 | content_extract: rgb(243, 139, 168) none Italic 76 | # 77 | ### GIT 78 | # 79 | git_branch: rgb(250, 179, 135) none 80 | git_insertions: rgb(250, 179, 135) none 81 | git_deletions: rgb(250, 179, 135) none 82 | git_status_current: rgb(250, 179, 135) none 83 | git_status_modified: rgb(250, 179, 135) none 84 | git_status_new: rgb(250, 179, 135) none Bold 85 | git_status_ignored: rgb(250, 179, 135) none 86 | git_status_conflicted: rgb(250, 179, 135) none 87 | git_status_other: rgb(250, 179, 135) none 88 | staging_area_title: rgb(250, 179, 135) none 89 | # 90 | ### FLAG 91 | # 92 | flag_label: rgb(243, 139, 168) none 93 | flag_value: rgb(243, 139, 168) none Bold 94 | # 95 | ### STATUS 96 | # 97 | # fg:none #bg:$mantle 98 | status_normal: none rgb(24, 24, 37) 99 | # fg:$red bg:$mantle 100 | status_italic: rgb(243, 139, 168) rgb(24, 24, 37) Italic 101 | # fg:$maroon bg:$mantle 102 | status_bold: rgb(235, 160, 172) rgb(24, 24, 37) Bold 103 | # fg:$maroon bg:$mantle 104 | status_ellipsis: rgb(235, 160, 172) rgb(24, 24, 37) Bold 105 | # fg:$text bg:$red 106 | status_error: rgb(205, 214, 244) rgb(243, 139, 168) 107 | # fg:$maroon bg:$mantle 108 | status_job: rgb(235, 160, 172) rgb(40, 38, 37) 109 | # fg:$maroon bg:$mantle 110 | status_code: rgb(235, 160, 172) rgb(24, 24, 37) Italic 111 | # fg:$maroon bg:$mantle 112 | mode_command_mark: rgb(235, 160, 172) rgb(24, 24, 37) Bold 113 | # 114 | ### HELP 115 | # 116 | # fg:$text 117 | help_paragraph: rgb(205, 214, 244) none 118 | # fg:$red 119 | help_headers: rgb(243, 139, 168) none Bold 120 | # fg:$peach 121 | help_bold: rgb(250, 179, 135) none Bold 122 | # fg:$yellow 123 | help_italic: rgb(249, 226, 175) none Italic 124 | # fg:green bg:$surface0 125 | help_code: rgb(166, 227, 161) rgb(49, 50, 68) 126 | # fg:$overlay0 127 | help_table_border: rgb(108, 112, 134) none 128 | # 129 | ### HEX 130 | # 131 | # fg:$text 132 | hex_null: rgb(205, 214, 244) none 133 | # fg:$peach 134 | hex_ascii_graphic: rgb(250, 179, 135) none 135 | # fg:$green 136 | hex_ascii_whitespace: rgb(166, 227, 161) none 137 | # fg: teal 138 | hex_ascii_other: rgb(148, 226, 213) none 139 | # fg: red 140 | hex_non_ascii: rgb(243, 139, 168) none 141 | 142 | # fg:$text bg:$red 143 | file_error: rgb(251, 73, 52) none 144 | # 145 | ### PURPOSE 146 | # 147 | purpose_normal: none none 148 | purpose_italic: rgb(177, 98, 134) none Italic 149 | purpose_bold: rgb(177, 98, 134) none Bold 150 | purpose_ellipsis: none none 151 | # 152 | ### SCROLLBAR 153 | # 154 | # fg:$surface0 155 | scrollbar_track: rgb(49, 50, 68) none 156 | # fg:$surface1 157 | scrollbar_thumb: rgb(88, 91, 112) none 158 | # 159 | ### GOODTOBAD 160 | # 161 | good_to_bad_0: rgb(166, 227, 161) none 162 | good_to_bad_1: rgb(148, 226, 213) none 163 | good_to_bad_2: rgb(137, 220, 235) none 164 | good_to_bad_3: rgb(116, 199, 236) none 165 | good_to_bad_4: rgb(137, 180, 250) none 166 | good_to_bad_5: rgb(180, 190, 254) none 167 | good_to_bad_6: rgb(203, 166, 247) none 168 | good_to_bad_7: rgb(250, 179, 135) none 169 | good_to_bad_8: rgb(235, 160, 172) none 170 | good_to_bad_9: rgb(243, 139, 168) none 171 | } 172 | -------------------------------------------------------------------------------- /.config/broot/skins/catppuccin-macchiato.hjson: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # A skin for a terminal with a dark background 3 | # This skin uses RGB values so won't work for some 4 | # terminals. 5 | # 6 | # Created by Majixed 7 | # Based on the catppuccin-mocha theme by A. Taha Baki 8 | # 9 | # Doc at https://dystroy.org/broot/skins/ 10 | ############################################################### 11 | 12 | skin: { 13 | input: rgb(202, 211, 245) none 14 | # fg:none bg:$surface2 15 | selected_line: none rgb(91, 96, 120) 16 | # fg:$text bg:none 17 | default: rgb(202, 211, 245) none 18 | # fg:$overlay0 bg:none 19 | tree: rgb(110, 115, 141) none 20 | # fg:$sapphire bg:none 21 | parent: rgb(125, 196, 228) none 22 | file: none none 23 | # 24 | ### PERMISSIONS 25 | # 26 | perm__: rgb(184, 192, 224) none 27 | # $peach 28 | perm_r: rgb(245, 169, 127) none 29 | # $maroon 30 | perm_w: rgb(238, 153, 160) none 31 | # $green 32 | perm_x: rgb(166, 218, 149) none 33 | # $teal 34 | owner: rgb(139, 213, 202) none 35 | # $sky 36 | group: rgb(145, 215, 227) none 37 | # 38 | ### DATE 39 | # 40 | # $subtext1 41 | dates: rgb(184, 192, 224) none 42 | # 43 | ### DIRECTORY 44 | # 45 | # $lavender 46 | directory: rgb(183, 189, 248) none Bold 47 | # $green 48 | exe: rgb(166, 218, 149) none 49 | # $yellow 50 | link: rgb(238, 212, 159) none 51 | # $subtext0 52 | pruning: rgb(165, 173, 203) none Italic 53 | # 54 | ### PREVIEW 55 | # 56 | # fg:$text bg:$mantle 57 | preview_title: rgb(202, 211, 245) rgb(30, 32, 48) 58 | # fg:$text bg:$mantle 59 | preview: rgb(202, 211, 245) rgb(30, 32, 48) 60 | # fg:$overlay0 61 | preview_line_number: rgb(110, 115, 141) none 62 | # fg:$overlay0 63 | preview_separator: rgb(110, 115, 141) none 64 | # 65 | ### MATCH 66 | # 67 | char_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic 68 | content_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic 69 | preview_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic 70 | 71 | # children count 72 | # fg:$yellow bg:none 73 | count: rgb(238, 212, 159) none 74 | sparse: rgb(237, 135, 150) none 75 | content_extract: rgb(237, 135, 150) none Italic 76 | # 77 | ### GIT 78 | # 79 | git_branch: rgb(245, 169, 127) none 80 | git_insertions: rgb(245, 169, 127) none 81 | git_deletions: rgb(245, 169, 127) none 82 | git_status_current: rgb(245, 169, 127) none 83 | git_status_modified: rgb(245, 169, 127) none 84 | git_status_new: rgb(245, 169, 127) none Bold 85 | git_status_ignored: rgb(245, 169, 127) none 86 | git_status_conflicted: rgb(245, 169, 127) none 87 | git_status_other: rgb(245, 169, 127) none 88 | staging_area_title: rgb(245, 169, 127) none 89 | # 90 | ### FLAG 91 | # 92 | flag_label: rgb(237, 135, 150) none 93 | flag_value: rgb(237, 135, 150) none Bold 94 | # 95 | ### STATUS 96 | # 97 | # fg:none #bg:$mantle 98 | status_normal: none rgb(30, 32, 48) 99 | # fg:$red bg:$mantle 100 | status_italic: rgb(237, 135, 150) rgb(30, 32, 48) Italic 101 | # fg:$maroon bg:$mantle 102 | status_bold: rgb(238, 153, 160) rgb(30, 32, 48) Bold 103 | # fg:$maroon bg:$mantle 104 | status_ellipsis: rgb(238, 153, 160) rgb(30, 32, 48) Bold 105 | # fg:$text bg:$red 106 | status_error: rgb(202, 211, 245) rgb(237, 135, 150) 107 | # fg:$maroon bg:$mantle 108 | status_job: rgb(238, 153, 160) rgb(40, 38, 37) 109 | # fg:$maroon bg:$mantle 110 | status_code: rgb(238, 153, 160) rgb(30, 32, 48) Italic 111 | # fg:$maroon bg:$mantle 112 | mode_command_mark: rgb(238, 153, 160) rgb(30, 32, 48) Bold 113 | # 114 | ### HELP 115 | # 116 | # fg:$text 117 | help_paragraph: rgb(202, 211, 245) none 118 | # fg:$red 119 | help_headers: rgb(237, 135, 150) none Bold 120 | # fg:$peach 121 | help_bold: rgb(245, 169, 127) none Bold 122 | # fg:$yellow 123 | help_italic: rgb(238, 212, 159) none Italic 124 | # fg:green bg:$surface0 125 | help_code: rgb(166, 218, 149) rgb(54, 58, 79) 126 | # fg:$overlay0 127 | help_table_border: rgb(110, 115, 141) none 128 | # 129 | ### HEX 130 | # 131 | # fg:$text 132 | hex_null: rgb(202, 211, 245) none 133 | # fg:$peach 134 | hex_ascii_graphic: rgb(245, 169, 127) none 135 | # fg:$green 136 | hex_ascii_whitespace: rgb(166, 218, 149) none 137 | # fg: teal 138 | hex_ascii_other: rgb(139, 213, 202) none 139 | # fg: red 140 | hex_non_ascii: rgb(237, 135, 150) none 141 | 142 | # fg:$text bg:$red 143 | file_error: rgb(243, 60, 44) none 144 | # 145 | ### PURPOSE 146 | # 147 | purpose_normal: none none 148 | purpose_italic: rgb(169, 90, 127) none Italic 149 | purpose_bold: rgb(169, 90, 127) none Bold 150 | purpose_ellipsis: none none 151 | # 152 | ### SCROLLBAR 153 | # 154 | # fg:$surface0 155 | scrollbar_track: rgb(54, 58, 79) none 156 | # fg:$surface1 157 | scrollbar_thumb: rgb(91, 96, 120) none 158 | # 159 | ### GOODTOBAD 160 | # 161 | good_to_bad_0: rgb(166, 218, 149) none 162 | good_to_bad_1: rgb(139, 213, 202) none 163 | good_to_bad_2: rgb(145, 215, 227) none 164 | good_to_bad_3: rgb(125, 196, 228) none 165 | good_to_bad_4: rgb(138, 173, 244) none 166 | good_to_bad_5: rgb(183, 189, 248) none 167 | good_to_bad_6: rgb(198, 160, 246) none 168 | good_to_bad_7: rgb(245, 169, 127) none 169 | good_to_bad_8: rgb(238, 153, 160) none 170 | good_to_bad_9: rgb(237, 135, 150) none 171 | } 172 | -------------------------------------------------------------------------------- /.bak/vim/vimrc: -------------------------------------------------------------------------------- 1 | " ----- 2 | " .vimrc 3 | " 4 | " defines plugins 5 | " sets some language specific things like indenting and syntax highlighting 6 | " 7 | 8 | set nocompatible " be iMproved 9 | filetype off " required! 10 | 11 | " Plug: package management 12 | call plug#begin('~/.vim/plugged') 13 | 14 | " plugins 15 | Plug 'airblade/vim-gitgutter' 16 | Plug 'chr4/nginx.vim' 17 | Plug 'christoomey/vim-tmux-navigator' 18 | Plug 'davidhalter/jedi-vim' 19 | Plug 'hashivim/vim-terraform' 20 | Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } 21 | Plug 'junegunn/fzf.vim' 22 | Plug 'kien/rainbow_parentheses.vim' 23 | Plug 'luochen1990/rainbow' 24 | Plug 'mxw/vim-jsx' 25 | Plug 'pangloss/vim-javascript' 26 | Plug 'plasticboy/vim-markdown' 27 | Plug 'prettier/vim-prettier' 28 | Plug 'psf/black', { 'branch': 'stable' } 29 | Plug 'sbdchd/neoformat' 30 | Plug 'scrooloose/nerdtree' 31 | Plug 'stephpy/vim-yaml' 32 | Plug 'tpope/vim-commentary' 33 | Plug 'vim-airline/vim-airline' 34 | Plug 'vim-syntastic/syntastic' 35 | 36 | call plug#end() 37 | 38 | """ General 39 | " colorscheme monokai 40 | 41 | " leader 42 | " follow the leader 43 | let mapleader = "," 44 | let g:mapleader = "," 45 | nnoremap :GFiles 46 | 47 | " coc 48 | nmap gd (coc-definition) 49 | nmap gr (coc-references) 50 | 51 | " never in my life have i used ex mode 52 | " i'm not sure what it is and at this point i'm too afraid to ask 53 | nnoremap Q 54 | 55 | " backspace 56 | set backspace=indent,eol,start 57 | 58 | " ruler 59 | set ruler 60 | 61 | " set line under cursor 62 | set cursorline 63 | 64 | " copy to clipboard 65 | set clipboard=unnamed 66 | 67 | " fold 68 | set foldmethod=indent 69 | set foldlevel=99 70 | nnoremap za 71 | autocmd FileType json setlocal foldmethod=syntax 72 | 73 | " turn highlighting on 74 | set hlsearch 75 | 76 | " autoread/autoreload changed files 77 | " I git rebase a lot so this is useful 78 | set autoread 79 | 80 | " other stuff 81 | set background=dark 82 | set expandtab 83 | set modeline 84 | set number 85 | 86 | syntax on 87 | filetype indent plugin on 88 | 89 | """ 90 | """ Javascript settings 91 | """ 92 | 93 | autocmd FileType javascript setlocal shiftwidth=2 tabstop=2 94 | 95 | " prettier lint files on save 96 | autocmd BufWritePre *.ts Neoformat 97 | autocmd BufWritePre *.js Neoformat 98 | autocmd BufWritePre *.tsx Neoformat 99 | autocmd BufWritePre *.jsx Neoformat 100 | 101 | let g:neoformat_try_formatprg = 1 102 | let g:jsx_ext_required = 0 103 | 104 | " max line length that prettier will wrap on 105 | let g:prettier#config#print_width = 100 106 | let g:prettier#config#tab_width = 2 107 | let g:prettier#config#use_tabs = 'false' 108 | let g:prettier#config#semi = 'true' 109 | let g:prettier#config#single_quote = 'true' 110 | let g:prettier#config#bracket_spacing = 'false' 111 | let g:prettier#config#jsx_bracket_same_line = 'true' 112 | let g:prettier#config#trailing_comma = 'es5' 113 | let g:prettier#config#parser = 'flow' 114 | let g:prettier#config#config_precedence = 'prefer-file' 115 | autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md Prettier 116 | 117 | """ 118 | """ Python Settings 119 | """ 120 | autocmd FileType python set shiftwidth=4 softtabstop=4 tabstop=4 121 | " highlight all python syntax 122 | let python_highlight_all = 1 123 | let g:syntastic_python_checkers=['flake8'] 124 | autocmd BufWritePre *.py execute ':Black' 125 | 126 | 127 | """ HTML Settings 128 | " html autocomplete 129 | autocmd FileType html set omnifunc=htmlcomplete#CompleteTags 130 | 131 | " ctrl p settings 132 | let g:ctrlp_working_path_mode = 'a' 133 | let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files -co --exclude-standard'] 134 | 135 | " nerd tree settings 136 | let NERDTreeIgnore = ['\.pyc$'] 137 | map :NERDTreeToggle 138 | 139 | " nerdcommneter settings 140 | 141 | """ Trim Whitespace on Save 142 | " White space noise 143 | function TrimWhiteSpace() 144 | %s/\s*$// 145 | '' 146 | :endfunction 147 | 148 | set list listchars=tab:>-,trail:· 149 | " set listchars=tab:→\ ,eol:↲,nbsp:␣,trail:•,extends:⟩,precedes:⟨ 150 | 151 | autocmd FileWritePre * call TrimWhiteSpace() 152 | autocmd FileAppendPre * call TrimWhiteSpace() 153 | autocmd FilterWritePre * call TrimWhiteSpace() 154 | autocmd BufWritePre * call TrimWhiteSpace() 155 | map :call TrimWhiteSpace() 156 | map! :call TrimWhiteSpace() 157 | 158 | 159 | """ Rainbow Parens Configs 160 | let g:rainbow_conf = { 161 | \ 'guifgs': ['firebrick', 'seagreen3', 'darkorange3', 'royalblue3'], 162 | \ 'ctermfgs': ['lightmagenta', 'lightblue', 'lightyellow', 'lightcyan'], 163 | \ 'operators': '_,_', 164 | \ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold'], 165 | \ 'separately': { 166 | \ '*': {}, 167 | \ 'tex': { 168 | \ 'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/'], 169 | \ }, 170 | \ 'lisp': { 171 | \ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick', 'darkorchid3'], 172 | \ }, 173 | \ 'vim': { 174 | \ 'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/', 'start=/{/ end=/}/ fold', 'start=/(/ end=/)/ containedin=vimFuncBody', 'start=/\[/ end=/\]/ containedin=vimFuncBody', 'start=/{/ end=/}/ fold containedin=vimFuncBody'], 175 | \ }, 176 | \ 'html': { 177 | \ 'parentheses': ['start=/\v\<((area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)[ >])@!\z([-_:a-zA-Z0-9]+)(\s+[-_:a-zA-Z0-9]+(\=("[^"]*"|'."'".'[^'."'".']*'."'".'|[^ '."'".'"><=`]*))?)*\>/ end=## fold'], 178 | \ }, 179 | \ 'css': 0, 180 | \ } 181 | \} 182 | 183 | 184 | " rainbow parenthesis 185 | let g:rainbow_active = 1 186 | -------------------------------------------------------------------------------- /.config/nvim/lua/evil_lualine.lua: -------------------------------------------------------------------------------- 1 | -- Eviline config for lualine 2 | -- Author: shadmansaleh 3 | -- Credit: glepnir 4 | local lualine = require('lualine') 5 | local colors = require('colors') 6 | 7 | local conditions = { 8 | buffer_not_empty = function() 9 | return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 10 | end, 11 | hide_in_width = function() 12 | return vim.fn.winwidth(0) > 80 13 | end, 14 | check_git_workspace = function() 15 | local filepath = vim.fn.expand('%:p:h') 16 | local gitdir = vim.fn.finddir('.git', filepath .. ';') 17 | return gitdir and #gitdir > 0 and #gitdir < #filepath 18 | end, 19 | } 20 | 21 | -- Config 22 | local config = { 23 | options = { 24 | -- Disable sections and component separators 25 | component_separators = '', 26 | section_separators = '', 27 | theme = { 28 | -- We are going to use lualine_c an lualine_x as left and 29 | -- right section. Both are highlighted by c theme . So we 30 | -- are just setting default looks o statusline 31 | normal = { c = { fg = colors.fg, bg = colors.bg } }, 32 | inactive = { c = { fg = colors.fg, bg = colors.bg } }, 33 | }, 34 | }, 35 | sections = { 36 | -- these are to remove the defaults 37 | lualine_a = {}, 38 | lualine_b = {}, 39 | lualine_y = {}, 40 | lualine_z = {}, 41 | -- These will be filled later 42 | lualine_c = {}, 43 | lualine_x = {}, 44 | }, 45 | inactive_sections = { 46 | -- these are to remove the defaults 47 | lualine_a = {}, 48 | lualine_b = {}, 49 | lualine_y = {}, 50 | lualine_z = {}, 51 | lualine_c = {}, 52 | lualine_x = {}, 53 | }, 54 | } 55 | 56 | -- Inserts a component in lualine_c at left section 57 | local function ins_left(component) 58 | table.insert(config.sections.lualine_c, component) 59 | end 60 | 61 | -- Inserts a component in lualine_x at right section 62 | local function ins_right(component) 63 | table.insert(config.sections.lualine_x, component) 64 | end 65 | 66 | ins_left { 67 | function() 68 | return '▊' 69 | end, 70 | color = { fg = colors.blue }, -- Sets highlighting of component 71 | padding = { left = 0, right = 1 }, -- We don't need space before this 72 | } 73 | 74 | ins_left { 75 | -- mode component 76 | function() 77 | return '' 78 | end, 79 | color = function() 80 | -- auto change color according to neovims mode 81 | local mode_color = { 82 | n = colors.red, 83 | i = colors.green, 84 | v = colors.blue, 85 | [''] = colors.blue, 86 | V = colors.blue, 87 | c = colors.magenta, 88 | no = colors.red, 89 | s = colors.orange, 90 | S = colors.orange, 91 | [''] = colors.orange, 92 | ic = colors.yellow, 93 | R = colors.violet, 94 | Rv = colors.violet, 95 | cv = colors.red, 96 | ce = colors.red, 97 | r = colors.cyan, 98 | rm = colors.cyan, 99 | ['r?'] = colors.cyan, 100 | ['!'] = colors.red, 101 | t = colors.red, 102 | } 103 | return { fg = mode_color[vim.fn.mode()] } 104 | end, 105 | padding = { right = 1 }, 106 | } 107 | 108 | ins_left { 109 | -- filesize component 110 | 'filesize', 111 | cond = conditions.buffer_not_empty, 112 | } 113 | 114 | ins_left { 115 | 'filename', 116 | cond = conditions.buffer_not_empty, 117 | color = { fg = colors.magenta, gui = 'bold' }, 118 | } 119 | 120 | ins_left { 'location' } 121 | 122 | ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } } 123 | 124 | ins_left { 125 | 'diagnostics', 126 | sources = { 'nvim_diagnostic' }, 127 | symbols = { error = ' ', warn = ' ', info = ' ' }, 128 | diagnostics_color = { 129 | color_error = { fg = colors.red }, 130 | color_warn = { fg = colors.yellow }, 131 | color_info = { fg = colors.cyan }, 132 | }, 133 | } 134 | 135 | -- Insert mid section. You can make any number of sections in neovim :) 136 | -- for lualine it's any number greater then 2 137 | ins_left { 138 | function() 139 | return '%=' 140 | end, 141 | } 142 | 143 | ins_left { 144 | -- Lsp server name . 145 | function() 146 | local msg = 'No Active Lsp' 147 | local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype') 148 | local clients = vim.lsp.get_clients() 149 | if next(clients) == nil then 150 | return msg 151 | end 152 | for _, client in ipairs(clients) do 153 | local filetypes = client.config.filetypes 154 | if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then 155 | return client.name 156 | end 157 | end 158 | return msg 159 | end, 160 | icon = ' LSP:', 161 | color = { fg = '#ffffff', gui = 'bold' }, 162 | } 163 | 164 | -- Add components to right sections 165 | ins_right { 166 | 'o:encoding', -- option component same as &encoding in viml 167 | fmt = string.upper, -- I'm not sure why it's upper case either ;) 168 | cond = conditions.hide_in_width, 169 | color = { fg = colors.green, gui = 'bold' }, 170 | } 171 | 172 | ins_right { 173 | 'fileformat', 174 | fmt = string.upper, 175 | icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh 176 | color = { fg = colors.green, gui = 'bold' }, 177 | } 178 | 179 | ins_right { 180 | 'branch', 181 | icon = '', 182 | color = { fg = colors.violet, gui = 'bold' }, 183 | } 184 | 185 | ins_right { 186 | 'diff', 187 | -- Is it me or the symbol for modified us really weird 188 | symbols = { added = ' ', modified = '󰝤 ', removed = ' ' }, 189 | diff_color = { 190 | added = { fg = colors.green }, 191 | modified = { fg = colors.orange }, 192 | removed = { fg = colors.red }, 193 | }, 194 | cond = conditions.hide_in_width, 195 | } 196 | 197 | ins_right { 198 | function() 199 | return '▊' 200 | end, 201 | color = { fg = colors.blue }, 202 | padding = { left = 1 }, 203 | } 204 | 205 | -- Now don't forget to initialize lualine 206 | lualine.setup(config) 207 | -------------------------------------------------------------------------------- /.config/nvim/init.vim: -------------------------------------------------------------------------------- 1 | lua require('_plugins') 2 | lua require('telescope_init') 3 | lua require('treesitter_init') 4 | lua require('evil_lualine') 5 | lua require('config.autocmds') 6 | lua require('golang') 7 | lua require('lsp') 8 | lua require('cyberdream') 9 | " lua require('screenshots') 10 | lua require('guihua') 11 | lua require('init') 12 | 13 | """ 14 | """ Global Settings 15 | """ 16 | " set number 17 | set number relativenumber 18 | " set loaded_netrw = 1 19 | " set loaded_netrwPlugin = 1 20 | 21 | " Clipboard 22 | set clipboard=unnamedplus 23 | 24 | " fold 25 | set foldmethod=indent 26 | set foldlevel=99 27 | nnoremap za 28 | autocmd FileType json setlocal foldmethod=syntax 29 | 30 | " leader: follow the leader 31 | let mapleader = "," 32 | let g:mapleader = "," 33 | 34 | " file explorer commands 35 | " nnoremap :GFiles . 36 | " nnoremap :Files . 37 | " nnoremap * :Ag =expand("") 38 | 39 | 40 | " 41 | " fern settings 42 | " 43 | nnoremap :Fern . -drawer 44 | nnoremap :Fern . -reveal=% 45 | let g:fern#renderer = "nerdfont" 46 | 47 | function! s:fern_settings() abort 48 | nmap p (fern-action-preview:toggle) 49 | nmap (fern-action-preview:auto:toggle) 50 | nmap (fern-action-preview:scroll:down:half) 51 | nmap (fern-action-preview:scroll:up:half) 52 | endfunction 53 | 54 | function! s:fern_settings() abort 55 | nmap (fern-quit-or-close-preview) fern_preview#smart_preview("\(fern-action-preview:close)", ":q\") 56 | nmap q (fern-quit-or-close-preview) 57 | endfunction 58 | 59 | augroup fern-settings 60 | autocmd! 61 | autocmd FileType fern call s:fern_settings() 62 | augroup END 63 | 64 | 65 | " 66 | " Telescope 67 | " 68 | " file find/nav 69 | nnoremap fb Telescope buffers 70 | nnoremap ff Telescope find_files 71 | nnoremap fg Telescope live_grep 72 | nnoremap fh Telescope help_tags 73 | nnoremap fr Telescope frecency workspace=CWD 74 | " lsp 75 | nnoremap gd Telescope lsp_definitions 76 | nnoremap gf Telescope git_files 77 | nnoremap gi Telescope lsp_implementations 78 | nnoremap gr Telescope lsp_references 79 | nnoremap gs Telescope git_status 80 | nnoremap gy Telescope lsp_type_definitions 81 | nnoremap ghi Telescope hierarchy incoming_calls 82 | nnoremap gho Telescope hierarchy outgoing_calls 83 | " clipboard and tabs 84 | nnoremap nc Telescope neoclip 85 | nnoremap tt Telescope telescope-tabs list_tabs theme=cursor 86 | 87 | 88 | " 89 | " Render Markdown 90 | " 91 | nnoremap rd :RenderMarkdown disable 92 | nnoremap re :RenderMarkdown enable 93 | 94 | " LSP: standalones 95 | " most commands are run w/ telescope but there are a few we want to keep 96 | " available w/out 97 | nnoremap gD :tab lsp_definition 98 | autocmd FileType go nmap gD :tab LspDefinition 99 | autocmd FileType go nmap gd (lsp-definition) 100 | nnoremap gD :tab LspDefinition 101 | 102 | 103 | """ 104 | """ 105 | """ 106 | autocmd BufNewFile,BufRead *.service* set ft=systemd 107 | 108 | """ 109 | """ terraform 110 | """ 111 | autocmd BufWritePre *.tf TerraformFmt 112 | 113 | """ 114 | """ Go Settings 115 | """ 116 | " also see lua/golang.lua 117 | autocmd FileType go setlocal shiftwidth=4 tabstop=4 118 | augroup LspGo 119 | au! 120 | autocmd User lsp_setup call lsp#register_server({ 121 | \ 'name': 'gopls', 122 | \ 'cmd': {server_info->['gopls']}, 123 | \ 'whitelist': ['go'], 124 | \ }) 125 | autocmd FileType go setlocal omnifunc=lsp#complete 126 | autocmd FileType go nmap gD (lsp-definition) 127 | autocmd FileType go nmap gd (lsp-definition) 128 | autocmd FileType go nmap ,n (lsp-next-error) 129 | autocmd FileType go nmap ,p (lsp-previous-error) 130 | augroup END 131 | 132 | 133 | """ 134 | """ Python Settings 135 | """ 136 | augroup LspPython 137 | " let g:python3_host_prog = '/usr/local/bin/python3' 138 | " let g:vim_isort_python_version = 'python3' 139 | " let g:syntastic_python_checkers=['flake8'] 140 | aug python 141 | au! 142 | autocmd BufWritePre *.py Neoformat ruff 143 | aug END 144 | " 145 | let g:jedi#use_tabs_not_buffers = 1 146 | let g:jedi#goto_command = "d" 147 | let g:jedi#goto_assignments_command = "g" 148 | let g:jedi#goto_stubs_command = "s" 149 | let g:jedi#goto_definitions_command = "" 150 | let g:jedi#documentation_command = "K" 151 | let g:jedi#usages_command = "n" 152 | let g:jedi#completions_command = "" 153 | let g:jedi#rename_command = "r" 154 | let g:jedi#rename_command_keep_name = "R" 155 | augroup END 156 | 157 | 158 | 159 | """ 160 | """ Easy Align 161 | """ 162 | " Start interactive EasyAlign in visual mode (e.g. vipga) 163 | xmap ga (EasyAlign) 164 | " Start interactive EasyAlign for a motion/text object (e.g. gaip) 165 | nmap ga (EasyAlign) 166 | 167 | 168 | """ 169 | """ Javascript settings 170 | """ 171 | 172 | autocmd FileType javascript setlocal shiftwidth=2 tabstop=2 173 | 174 | 175 | let g:neoformat_try_formatprg = 1 176 | let g:jsx_ext_required = 0 177 | 178 | " max line length that prettier will wrap on 179 | let g:prettier#config#print_width = 100 180 | let g:prettier#config#tab_width = 2 181 | let g:prettier#config#use_tabs = 'false' 182 | let g:prettier#config#semi = 'true' 183 | let g:prettier#config#single_quote = 'true' 184 | let g:prettier#config#bracket_spacing = 'false' 185 | " let g:prettier#config#jsx_bracket_same_line = 'true' 186 | let g:prettier#config#trailing_comma = 'es5' 187 | let g:prettier#config#parser = 'flow' 188 | let g:prettier#config#config_precedence = 'prefer-file' 189 | 190 | autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.mdx,*.tcss Prettier 191 | 192 | """ 193 | """ Whitespace Settings 194 | """ 195 | 196 | " default 197 | set tabstop=2 shiftwidth=2 expandtab 198 | 199 | " Trim whitespace on save 200 | function TrimWhiteSpace() 201 | %s/\s*$// 202 | '' 203 | :endfunction 204 | 205 | set list listchars=tab:>-,trail:· 206 | " set listchars=tab:→\ ,eol:↲,nbsp:␣,trail:•,extends:⟩,precedes:⟨ 207 | 208 | autocmd FileWritePre * call TrimWhiteSpace() 209 | autocmd FileAppendPre * call TrimWhiteSpace() 210 | autocmd FilterWritePre * call TrimWhiteSpace() 211 | autocmd BufWritePre * call TrimWhiteSpace() 212 | map :call TrimWhiteSpace() 213 | map! :call TrimWhiteSpace() 214 | -------------------------------------------------------------------------------- /.config/alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | # theme 2 | # good high contrast ones: 3 | # - blood_moon 4 | # - github_dark_high_contrast 5 | # - hyper 6 | 7 | import = ["/Users/fd/.config/alacritty/themes/themes/hyper.toml"] 8 | 9 | [font] 10 | size = 16.0 11 | 12 | [font.normal] 13 | family = "PragmataProMono Nerd Font" 14 | # family = "IosevkaTerm" 15 | 16 | 17 | [[keyboard.bindings]] 18 | chars = "\u001Ba" 19 | key = "A" 20 | mods = "Alt" 21 | 22 | [[keyboard.bindings]] 23 | chars = "\u001Bb" 24 | key = "B" 25 | mods = "Alt" 26 | 27 | [[keyboard.bindings]] 28 | chars = "\u001Bc" 29 | key = "C" 30 | mods = "Alt" 31 | 32 | [[keyboard.bindings]] 33 | chars = "\u001Bd" 34 | key = "D" 35 | mods = "Alt" 36 | 37 | [[keyboard.bindings]] 38 | chars = "\u001Be" 39 | key = "E" 40 | mods = "Alt" 41 | 42 | [[keyboard.bindings]] 43 | chars = "\u001Bf" 44 | key = "F" 45 | mods = "Alt" 46 | 47 | [[keyboard.bindings]] 48 | chars = "\u001Bg" 49 | key = "G" 50 | mods = "Alt" 51 | 52 | [[keyboard.bindings]] 53 | chars = "\u001Bh" 54 | key = "H" 55 | mods = "Alt" 56 | 57 | [[keyboard.bindings]] 58 | chars = "\u001Bi" 59 | key = "I" 60 | mods = "Alt" 61 | 62 | [[keyboard.bindings]] 63 | chars = "\u001Bj" 64 | key = "J" 65 | mods = "Alt" 66 | 67 | [[keyboard.bindings]] 68 | chars = "\u001Bk" 69 | key = "K" 70 | mods = "Alt" 71 | 72 | [[keyboard.bindings]] 73 | chars = "\u001Bl" 74 | key = "L" 75 | mods = "Alt" 76 | 77 | [[keyboard.bindings]] 78 | chars = "\u001Bm" 79 | key = "M" 80 | mods = "Alt" 81 | 82 | [[keyboard.bindings]] 83 | chars = "\u001Bn" 84 | key = "N" 85 | mods = "Alt" 86 | 87 | [[keyboard.bindings]] 88 | chars = "\u001Bo" 89 | key = "O" 90 | mods = "Alt" 91 | 92 | [[keyboard.bindings]] 93 | chars = "\u001Bp" 94 | key = "P" 95 | mods = "Alt" 96 | 97 | [[keyboard.bindings]] 98 | chars = "\u001Bq" 99 | key = "Q" 100 | mods = "Alt" 101 | 102 | [[keyboard.bindings]] 103 | chars = "\u001Br" 104 | key = "R" 105 | mods = "Alt" 106 | 107 | [[keyboard.bindings]] 108 | chars = "\u001Bs" 109 | key = "S" 110 | mods = "Alt" 111 | 112 | [[keyboard.bindings]] 113 | chars = "\u001Bt" 114 | key = "T" 115 | mods = "Alt" 116 | 117 | [[keyboard.bindings]] 118 | chars = "\u001Bu" 119 | key = "U" 120 | mods = "Alt" 121 | 122 | [[keyboard.bindings]] 123 | chars = "\u001Bv" 124 | key = "V" 125 | mods = "Alt" 126 | 127 | [[keyboard.bindings]] 128 | chars = "\u001Bw" 129 | key = "W" 130 | mods = "Alt" 131 | 132 | [[keyboard.bindings]] 133 | chars = "\u001Bx" 134 | key = "X" 135 | mods = "Alt" 136 | 137 | [[keyboard.bindings]] 138 | chars = "\u001By" 139 | key = "Y" 140 | mods = "Alt" 141 | 142 | [[keyboard.bindings]] 143 | chars = "\u001Bz" 144 | key = "Z" 145 | mods = "Alt" 146 | 147 | [[keyboard.bindings]] 148 | chars = "\u001BA" 149 | key = "A" 150 | mods = "Alt|Shift" 151 | 152 | [[keyboard.bindings]] 153 | chars = "\u001BB" 154 | key = "B" 155 | mods = "Alt|Shift" 156 | 157 | [[keyboard.bindings]] 158 | chars = "\u001BC" 159 | key = "C" 160 | mods = "Alt|Shift" 161 | 162 | [[keyboard.bindings]] 163 | chars = "\u001BD" 164 | key = "D" 165 | mods = "Alt|Shift" 166 | 167 | [[keyboard.bindings]] 168 | chars = "\u001BE" 169 | key = "E" 170 | mods = "Alt|Shift" 171 | 172 | [[keyboard.bindings]] 173 | chars = "\u001BF" 174 | key = "F" 175 | mods = "Alt|Shift" 176 | 177 | [[keyboard.bindings]] 178 | chars = "\u001BG" 179 | key = "G" 180 | mods = "Alt|Shift" 181 | 182 | [[keyboard.bindings]] 183 | chars = "\u001BH" 184 | key = "H" 185 | mods = "Alt|Shift" 186 | 187 | [[keyboard.bindings]] 188 | chars = "\u001BI" 189 | key = "I" 190 | mods = "Alt|Shift" 191 | 192 | [[keyboard.bindings]] 193 | chars = "\u001BJ" 194 | key = "J" 195 | mods = "Alt|Shift" 196 | 197 | [[keyboard.bindings]] 198 | chars = "\u001BK" 199 | key = "K" 200 | mods = "Alt|Shift" 201 | 202 | [[keyboard.bindings]] 203 | chars = "\u001BL" 204 | key = "L" 205 | mods = "Alt|Shift" 206 | 207 | [[keyboard.bindings]] 208 | chars = "\u001BM" 209 | key = "M" 210 | mods = "Alt|Shift" 211 | 212 | [[keyboard.bindings]] 213 | chars = "\u001BN" 214 | key = "N" 215 | mods = "Alt|Shift" 216 | 217 | [[keyboard.bindings]] 218 | chars = "\u001BO" 219 | key = "O" 220 | mods = "Alt|Shift" 221 | 222 | [[keyboard.bindings]] 223 | chars = "\u001BP" 224 | key = "P" 225 | mods = "Alt|Shift" 226 | 227 | [[keyboard.bindings]] 228 | chars = "\u001BQ" 229 | key = "Q" 230 | mods = "Alt|Shift" 231 | 232 | [[keyboard.bindings]] 233 | chars = "\u001BR" 234 | key = "R" 235 | mods = "Alt|Shift" 236 | 237 | [[keyboard.bindings]] 238 | chars = "\u001BS" 239 | key = "S" 240 | mods = "Alt|Shift" 241 | 242 | [[keyboard.bindings]] 243 | chars = "\u001BT" 244 | key = "T" 245 | mods = "Alt|Shift" 246 | 247 | [[keyboard.bindings]] 248 | chars = "\u001BU" 249 | key = "U" 250 | mods = "Alt|Shift" 251 | 252 | [[keyboard.bindings]] 253 | chars = "\u001BV" 254 | key = "V" 255 | mods = "Alt|Shift" 256 | 257 | [[keyboard.bindings]] 258 | chars = "\u001BW" 259 | key = "W" 260 | mods = "Alt|Shift" 261 | 262 | [[keyboard.bindings]] 263 | chars = "\u001BX" 264 | key = "X" 265 | mods = "Alt|Shift" 266 | 267 | [[keyboard.bindings]] 268 | chars = "\u001BY" 269 | key = "Y" 270 | mods = "Alt|Shift" 271 | 272 | [[keyboard.bindings]] 273 | chars = "\u001BZ" 274 | key = "Z" 275 | mods = "Alt|Shift" 276 | 277 | [[keyboard.bindings]] 278 | chars = "\u001B1" 279 | key = "Key1" 280 | mods = "Alt" 281 | 282 | [[keyboard.bindings]] 283 | chars = "\u001B2" 284 | key = "Key2" 285 | mods = "Alt" 286 | 287 | [[keyboard.bindings]] 288 | chars = "\u001B3" 289 | key = "Key3" 290 | mods = "Alt" 291 | 292 | [[keyboard.bindings]] 293 | chars = "\u001B4" 294 | key = "Key4" 295 | mods = "Alt" 296 | 297 | [[keyboard.bindings]] 298 | chars = "\u001B5" 299 | key = "Key5" 300 | mods = "Alt" 301 | 302 | [[keyboard.bindings]] 303 | chars = "\u001B6" 304 | key = "Key6" 305 | mods = "Alt" 306 | 307 | [[keyboard.bindings]] 308 | chars = "\u001B7" 309 | key = "Key7" 310 | mods = "Alt" 311 | 312 | [[keyboard.bindings]] 313 | chars = "\u001B8" 314 | key = "Key8" 315 | mods = "Alt" 316 | 317 | [[keyboard.bindings]] 318 | chars = "\u001B9" 319 | key = "Key9" 320 | mods = "Alt" 321 | 322 | [[keyboard.bindings]] 323 | chars = "\u001B0" 324 | key = "Key0" 325 | mods = "Alt" 326 | 327 | [[keyboard.bindings]] 328 | chars = "\u0000" 329 | key = "Space" 330 | mods = "Control" 331 | 332 | # [[keyboard.bindings]] 333 | # chars = "\u001B`" 334 | # key = "Grave" 335 | # mods = "Alt" 336 | 337 | # [[keyboard.bindings]] 338 | # chars = "\u001B~" 339 | # key = "Grave" 340 | # mods = "Alt|Shift" 341 | 342 | [[keyboard.bindings]] 343 | chars = "\u001B." 344 | key = "Period" 345 | mods = "Alt" 346 | 347 | [[keyboard.bindings]] 348 | chars = "\u001B*" 349 | key = "Key8" 350 | mods = "Alt|Shift" 351 | 352 | [[keyboard.bindings]] 353 | chars = "\u001B#" 354 | key = "Key3" 355 | mods = "Alt|Shift" 356 | 357 | [[keyboard.bindings]] 358 | chars = "\u001B>" 359 | key = "Period" 360 | mods = "Alt|Shift" 361 | 362 | [[keyboard.bindings]] 363 | chars = "\u001B<" 364 | key = "Comma" 365 | mods = "Alt|Shift" 366 | 367 | [[keyboard.bindings]] 368 | chars = "\u001B_" 369 | key = "Minus" 370 | mods = "Alt|Shift" 371 | 372 | [[keyboard.bindings]] 373 | chars = "\u001B%" 374 | key = "Key5" 375 | mods = "Alt|Shift" 376 | 377 | [[keyboard.bindings]] 378 | chars = "\u001B^" 379 | key = "Key6" 380 | mods = "Alt|Shift" 381 | 382 | [[keyboard.bindings]] 383 | chars = "\u001B\\" 384 | key = "Backslash" 385 | mods = "Alt" 386 | 387 | [[keyboard.bindings]] 388 | chars = "\u001B|" 389 | key = "Backslash" 390 | mods = "Alt|Shift" 391 | 392 | [window] 393 | option_as_alt = "Both" 394 | -------------------------------------------------------------------------------- /.config/nvim/lua/golang.lua: -------------------------------------------------------------------------------- 1 | vim.lsp.enable('gopls') 2 | 3 | require('go').setup({ 4 | disable_defaults = false, -- true|false when true set false to all boolean settings and replace all tables 5 | -- settings with {}; string will be set to ''. user need to setup ALL the settings 6 | -- It is import to set ALL values in your own config if set value to true otherwise the plugin may not work 7 | go = 'go', -- go command, can be go[default] or e.g. go1.18beta1 8 | goimports = 'gopls', -- goimports command, can be gopls[default] or either goimports or golines if need to split long lines 9 | gofmt = 'gopls', -- gofmt through gopls: alternative is gofumpt, goimports, golines, gofmt, etc 10 | fillstruct = 'gopls', -- set to fillstruct if gopls fails to fill struct 11 | max_line_len = 0, -- max line length in golines format, Target maximum line length for golines 12 | tag_transform = false, -- can be transform option("snakecase", "camelcase", etc) check gomodifytags for details and more options 13 | tag_options = 'json=omitempty', -- sets options sent to gomodifytags, i.e., json=omitempty 14 | gotests_template = "", -- sets gotests -template parameter (check gotests for details) 15 | gotests_template_dir = "", -- sets gotests -template_dir parameter (check gotests for details) 16 | gotest_case_exact_match = true, -- true: run test with ^Testname$, false: run test with TestName 17 | comment_placeholder = '', -- comment_placeholder your cool placeholder e.g. 󰟓     18 | icons = {breakpoint = '🧘', currentpos = '🏃'}, -- setup to `false` to disable icons setup 19 | verbose = true, -- output loginf in messages 20 | 21 | lsp_semantic_highlights = true, -- use highlights from gopls 22 | lsp_cfg = false, -- true: use non-default gopls setup specified in go/lsp.lua 23 | -- false: do nothing 24 | -- if lsp_cfg is a table, merge table with with non-default gopls setup in go/lsp.lua, e.g. 25 | -- lsp_cfg = {settings={gopls={matcher='CaseInsensitive', ['local'] = 'your_local_module_path', gofumpt = true }}} 26 | lsp_gofumpt = true, -- true: set default gofmt in gopls format to gofumpt 27 | -- false: do not set default gofmt in gopls format to gofumpt 28 | lsp_on_attach = nil, -- nil: use on_attach function defined in go/lsp.lua, 29 | -- when lsp_cfg is true 30 | -- if lsp_on_attach is a function: use this function as on_attach function for gopls 31 | lsp_keymaps = true, -- set to false to disable gopls/lsp keymap 32 | lsp_codelens = true, -- set to false to disable codelens, true by default, you can use a function 33 | -- function(bufnr) 34 | -- vim.api.nvim_buf_set_keymap(bufnr, "n", "F", "lua vim.lsp.buf.formatting()", {noremap=true, silent=true}) 35 | -- end 36 | -- to setup a table of codelens 37 | null_ls = { -- set to false to disable null-ls setup 38 | golangci_lint = { 39 | method = {"NULL_LS_DIAGNOSTICS_ON_SAVE", "NULL_LS_DIAGNOSTICS_ON_OPEN"}, -- when it should run 40 | -- disable = {'errcheck', 'staticcheck'}, -- linters to disable empty by default 41 | -- enable = {'govet', 'ineffassign','revive', 'gosimple'}, -- linters to enable; empty by default 42 | severity = vim.diagnostic.severity.INFO, -- severity level of the diagnostics 43 | }, 44 | }, 45 | diagnostic = { -- set diagnostic to false to disable vim.diagnostic.config setup, 46 | -- true: default nvim setup 47 | hdlr = false, -- hook lsp diag handler and send diag to quickfix 48 | underline = true, 49 | virtual_text = { spacing = 2, prefix = '' }, -- virtual text setup 50 | signs = {'', '', '', ''}, -- set to true to use default signs, an array of 4 to specify custom signs 51 | update_in_insert = false, 52 | }, 53 | -- if you need to setup your ui for input and select, you can do it here 54 | -- go_input = require('guihua.input').input -- set to vim.ui.input to disable guihua input 55 | -- go_select = require('guihua.select').select -- vim.ui.select to disable guihua select 56 | lsp_document_formatting = true, 57 | -- set to true: use gopls to format 58 | -- false if you want to use other formatter tool(e.g. efm, nulls) 59 | lsp_inlay_hints = { 60 | enable = true, -- this might be only field apply to neovim > 0.10 61 | }, 62 | gopls_cmd = "~/go/bin/gopls", -- if you need to specify gopls path and cmd, e.g {"/home/user/lsp/gopls", "-logfile","/var/log/gopls.log" } 63 | gopls_remote_auto = true, -- add -remote=auto to gopls 64 | gocoverage_sign = "█", 65 | sign_priority = 5, -- change to a higher number to override other signs 66 | dap_debug = true, -- set to false to disable dap 67 | dap_debug_keymap = true, -- true: use keymap for debugger defined in go/dap.lua 68 | -- false: do not use keymap in go/dap.lua. you must define your own. 69 | -- Windows: Use Visual Studio keymap 70 | dap_debug_gui = {}, -- bool|table put your dap-ui setup here set to false to disable 71 | dap_debug_vt = { enabled = true, enabled_commands = true, all_frames = true }, -- bool|table put your dap-virtual-text setup here set to false to disable 72 | 73 | dap_port = 38697, -- can be set to a number, if set to -1 go.nvim will pick up a random port 74 | dap_timeout = 15, -- see dap option initialize_timeout_sec = 15, 75 | dap_retries = 20, -- see dap option max_retries 76 | -- build_tags = "tag1,tag2", -- set default build tags 77 | textobjects = true, -- enable default text objects through treesittter-text-objects 78 | test_runner = 'go', -- one of {`go`, `dlv`, `ginkgo`, `gotestsum`} 79 | verbose_tests = true, -- set to add verbose flag to tests deprecated, see '-v' option 80 | run_in_floaterm = false, -- set to true to run in a float window. :GoTermClose closes the floatterm 81 | -- float term recommend if you use gotestsum ginkgo with terminal color 82 | 83 | floaterm = { -- position 84 | posititon = 'auto', -- one of {`top`, `bottom`, `left`, `right`, `center`, `auto`} 85 | width = 0.45, -- width of float window if not auto 86 | height = 0.98, -- height of float window if not auto 87 | title_colors = 'tokyo', -- default to nord, one of {'nord', 'tokyo', 'dracula', 'rainbow', 'solarized ', 'monokai'} 88 | -- can also set to a list of colors to define colors to choose from 89 | -- e.g {'#D8DEE9', '#5E81AC', '#88C0D0', '#EBCB8B', '#A3BE8C', '#B48EAD'} 90 | }, 91 | trouble = false, -- true: use trouble to open quickfix 92 | test_efm = false, -- errorfomat for quickfix, default mix mode, set to true will be efm only 93 | luasnip = false, -- enable included luasnip snippets. you can also disable while add lua/snips folder to luasnip load 94 | -- Do not enable this if you already added the path, that will duplicate the entries 95 | on_jobstart = function(cmd) _=cmd end, -- callback for stdout 96 | on_stdout = function(err, data) _, _ = err, data end, -- callback when job started 97 | on_stderr = function(err, data) _, _ = err, data end, -- callback for stderr 98 | on_exit = function(code, signal, output) _, _, _ = code, signal, output end, -- callback for jobexit, output : string 99 | iferr_vertical_shift = 4 -- defines where the cursor will end up vertically from the begining of if err statement 100 | }) 101 | 102 | local format_sync_grp = vim.api.nvim_create_augroup("GoFormat", {}) 103 | vim.api.nvim_create_autocmd("BufWritePre", { 104 | pattern = "*.go", 105 | callback = function() 106 | require('go.format').goimports() 107 | end, 108 | group = format_sync_grp, 109 | }) 110 | -------------------------------------------------------------------------------- /.config/atuin/config.toml: -------------------------------------------------------------------------------- 1 | ## where to store your database, default is your system data directory 2 | ## linux/mac: ~/.local/share/atuin/history.db 3 | ## windows: %USERPROFILE%/.local/share/atuin/history.db 4 | # db_path = "~/.history.db" 5 | 6 | ## where to store your encryption key, default is your system data directory 7 | ## linux/mac: ~/.local/share/atuin/key 8 | ## windows: %USERPROFILE%/.local/share/atuin/key 9 | # key_path = "~/.key" 10 | 11 | ## where to store your auth session token, default is your system data directory 12 | ## linux/mac: ~/.local/share/atuin/session 13 | ## windows: %USERPROFILE%/.local/share/atuin/session 14 | # session_path = "~/.session" 15 | 16 | ## date format used, either "us" or "uk" 17 | # dialect = "us" 18 | 19 | ## default timezone to use when displaying time 20 | ## either "l", "local" to use the system's current local timezone, or an offset 21 | ## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]" 22 | ## for example: "+9", "-05", "+03:30", "-01:23:45", etc. 23 | # timezone = "local" 24 | 25 | ## enable or disable automatic sync 26 | # auto_sync = true 27 | 28 | ## enable or disable automatic update checks 29 | # update_check = true 30 | 31 | ## address of the sync server 32 | # sync_address = "https://api.atuin.sh" 33 | 34 | ## how often to sync history. note that this is only triggered when a command 35 | ## is ran, so sync intervals may well be longer 36 | ## set it to 0 to sync after every command 37 | # sync_frequency = "10m" 38 | 39 | ## which search mode to use 40 | ## possible values: prefix, fulltext, fuzzy, skim 41 | # search_mode = "fuzzy" 42 | 43 | ## which filter mode to use 44 | ## possible values: global, host, session, directory 45 | # filter_mode = "global" 46 | 47 | ## With workspace filtering enabled, Atuin will filter for commands executed 48 | ## in any directory within a git repository tree (default: false) 49 | # workspaces = false 50 | 51 | ## which filter mode to use when atuin is invoked from a shell up-key binding 52 | ## the accepted values are identical to those of "filter_mode" 53 | ## leave unspecified to use same mode set in "filter_mode" 54 | filter_mode_shell_up_key_binding = "session" 55 | 56 | ## which search mode to use when atuin is invoked from a shell up-key binding 57 | ## the accepted values are identical to those of "search_mode" 58 | ## leave unspecified to use same mode set in "search_mode" 59 | # search_mode_shell_up_key_binding = "fuzzy" 60 | 61 | ## which style to use 62 | ## possible values: auto, full, compact 63 | style = "compact" 64 | 65 | ## the maximum number of lines the interface should take up 66 | ## set it to 0 to always go full screen 67 | # inline_height = 0 68 | 69 | ## Invert the UI - put the search bar at the top , Default to `false` 70 | # invert = false 71 | 72 | ## enable or disable showing a preview of the selected command 73 | ## useful when the command is longer than the terminal width and is cut off 74 | # show_preview = true 75 | 76 | ## what to do when the escape key is pressed when searching 77 | ## possible values: return-original, return-query 78 | # exit_mode = "return-original" 79 | 80 | ## possible values: emacs, subl 81 | # word_jump_mode = "emacs" 82 | 83 | ## characters that count as a part of a word 84 | # word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" 85 | 86 | ## number of context lines to show when scrolling by pages 87 | # scroll_context_lines = 1 88 | 89 | ## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts 90 | ## alt-0 .. alt-9 91 | # ctrl_n_shortcuts = false 92 | 93 | ## default history list format - can also be specified with the --format arg 94 | # history_format = "{time}\t{command}\t{duration}" 95 | 96 | ## prevent commands matching any of these regexes from being written to history. 97 | ## Note that these regular expressions are unanchored, i.e. if they don't start 98 | ## with ^ or end with $, they'll match anywhere in the command. 99 | ## For details on the supported regular expression syntax, see 100 | ## https://docs.rs/regex/latest/regex/#syntax 101 | history_filter = [ 102 | # "^secret-cmd", 103 | # "^innocuous-cmd .*--secret=.+", 104 | # "^git st$", 105 | "^c$", 106 | "^clear$", 107 | "^ls$", 108 | ] 109 | 110 | ## prevent commands run with cwd matching any of these regexes from being written 111 | ## to history. Note that these regular expressions are unanchored, i.e. if they don't 112 | ## start with ^ or end with $, they'll match anywhere in CWD. 113 | ## For details on the supported regular expression syntax, see 114 | ## https://docs.rs/regex/latest/regex/#syntax 115 | # cwd_filter = [ 116 | # "^/very/secret/area", 117 | # ] 118 | 119 | ## Configure the maximum height of the preview to show. 120 | ## Useful when you have long scripts in your history that you want to distinguish 121 | ## by more than the first few lines. 122 | # max_preview_height = 4 123 | 124 | ## Configure whether or not to show the help row, which includes the current Atuin 125 | ## version (and whether an update is available), a keymap hint, and the total 126 | ## amount of commands in your history. 127 | # show_help = true 128 | 129 | ## Configure whether or not to show tabs for search and inspect 130 | # show_tabs = true 131 | 132 | ## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include 133 | ## 1. AWS key id 134 | ## 2. Github pat (old and new) 135 | ## 3. Slack oauth tokens (bot, user) 136 | ## 4. Slack webhooks 137 | ## 5. Stripe live/test keys 138 | # secrets_filter = true 139 | 140 | ## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit. 141 | # This applies for new installs. Old installs will keep the old behaviour unless configured otherwise. 142 | enter_accept = true 143 | 144 | ## Defaults to "emacs". This specifies the keymap on the startup of `atuin 145 | ## search`. If this is set to "auto", the startup keymap mode in the Atuin 146 | ## search is automatically selected based on the shell's keymap where the 147 | ## keybinding is defined. If this is set to "emacs", "vim-insert", or 148 | ## "vim-normal", the startup keymap mode in the Atuin search is forced to be 149 | ## the specified one. 150 | # keymap_mode = "auto" 151 | 152 | ## Cursor style in each keymap mode. If specified, the cursor style is changed 153 | ## in entering the cursor shape. Available values are "default" and 154 | ## "{blink,steady}-{block,underline,bar}". 155 | # keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" } 156 | 157 | # network_connect_timeout = 5 158 | # network_timeout = 5 159 | 160 | ## Timeout (in seconds) for acquiring a local database connection (sqlite) 161 | # local_timeout = 5 162 | 163 | ## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc. 164 | ## Alternatively, set env NO_MOTION=true 165 | # prefers_reduced_motion = false 166 | 167 | [stats] 168 | ## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl 169 | # common_subcommands = [ 170 | # "apt", 171 | # "cargo", 172 | # "composer", 173 | # "dnf", 174 | # "docker", 175 | # "git", 176 | # "go", 177 | # "ip", 178 | # "kubectl", 179 | # "nix", 180 | # "nmcli", 181 | # "npm", 182 | # "pecl", 183 | # "pnpm", 184 | # "podman", 185 | # "port", 186 | # "systemctl", 187 | # "tmux", 188 | # "yarn", 189 | # ] 190 | 191 | ## Set commands that should be totally stripped and ignored from stats 192 | # common_prefix = ["sudo"] 193 | 194 | ## Set commands that will be completely ignored from stats 195 | # ignored_commands = [ 196 | # "cd", 197 | # "ls", 198 | # "vi" 199 | # ] 200 | 201 | [keys] 202 | # Defaults to true. If disabled, using the up/down key won't exit the TUI when scrolled past the first/last entry. 203 | # scroll_exits = false 204 | 205 | [sync] 206 | # Enable sync v2 by default 207 | # This ensures that sync v2 is enabled for new installs only 208 | # In a later release it will become the default across the board 209 | records = true 210 | 211 | [preview] 212 | ## which preview strategy to use to calculate the preview height (respects max_preview_height). 213 | ## possible values: auto, static 214 | ## auto: length of the selected command. 215 | ## static: length of the longest command stored in the history. 216 | # strategy = "auto" 217 | 218 | [daemon] 219 | ## Enables using the daemon to sync. Requires the daemon to be running in the background. Start it with `atuin daemon` 220 | # enabled = false 221 | 222 | ## How often the daemon should sync in seconds 223 | # sync_frequency = 300 224 | 225 | ## The path to the unix socket used by the daemon (on unix systems) 226 | ## linux/mac: ~/.local/share/atuin/atuin.sock 227 | ## windows: Not Supported 228 | # socket_path = "~/.local/share/atuin/atuin.sock" 229 | 230 | ## Use systemd socket activation rather than opening the given path (the path must still be correct for the client) 231 | ## linux: false 232 | ## mac/windows: Not Supported 233 | # systemd_socket = false 234 | 235 | ## The port that should be used for TCP on non unix systems 236 | # tcp_port = 8889 237 | -------------------------------------------------------------------------------- /.config/broot/conf.hjson: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # This configuration file lets you 3 | # - define new commands 4 | # - change the shortcut or triggering keys of built-in verbs 5 | # - change the colors 6 | # - set default values for flags 7 | # - set special behaviors on specific paths 8 | # - and more... 9 | # 10 | # Configuration documentation is available at 11 | # https://dystroy.org/broot 12 | # 13 | # This file's format is Hjson ( https://hjson.github.io/ ). Some 14 | # properties are commented out. To enable them, remove the `#`. 15 | # 16 | ############################################################### 17 | 18 | ############################################################### 19 | # Default flags 20 | # You can set up flags you want broot to start with by 21 | # default, for example `default_flags="-ihp"` if you usually want 22 | # to see hidden and gitignored files and the permissions (then 23 | # if you don't want the hidden files at a specific launch, 24 | # you can launch broot with `br -H`). 25 | # A popular flag is the `g` one which displays git related info. 26 | # 27 | # default_flags: 28 | 29 | ############################################################### 30 | # Terminal's title 31 | # If you want the terminal's title to be updated when you change 32 | # directory, set a terminal_title pattern by uncommenting one of 33 | # the examples below and tuning it to your taste. 34 | # 35 | # terminal_title: "[broot] {git-name}" 36 | # terminal_title: "{file} 🐄" 37 | # terminal_title: "-= {file-name} =-" 38 | 39 | ############################################################### 40 | # Date/Time format 41 | # If you want to change the format for date/time, uncomment the 42 | # following line and change it according to 43 | # https://docs.rs/chrono/0.4.11/chrono/format/strftime/index.html 44 | # 45 | # date_time_format: %Y/%m/%d %R 46 | 47 | ############################################################### 48 | # uncomment to activate modal mode 49 | # 50 | # (you really should read https://dystroy.org/broot/modal/ 51 | # before as it may not suit everybody even among vim users) 52 | # 53 | # You may start either in 'command' mode, or in 'input' mode 54 | # 55 | # modal: true 56 | # initial_mode: command 57 | 58 | ############################################################### 59 | # Whether to mark the selected line with a triangle 60 | # 61 | show_selection_mark: true 62 | 63 | ############################################################### 64 | # Column order 65 | # cols_order, if specified, must be a permutation of the following 66 | # array. You should keep the name column at the end as it has a 67 | # variable length. 68 | # 69 | # cols_order: [ 70 | # mark 71 | # git 72 | # size 73 | # permission 74 | # date 75 | # count 76 | # branch 77 | # name 78 | # ] 79 | 80 | ############################################################### 81 | # True Colors 82 | # If this parameter isn't set, broot tries to automatically 83 | # determine whether true colors (24 bits) are available. 84 | # As this process is unreliable, you may uncomment this setting 85 | # and set it to false or true if you notice the colors in 86 | # previewed images are too off. 87 | # 88 | # true_colors: false 89 | 90 | ############################################################### 91 | # Icons 92 | # If you want to display icons in broot, uncomment this line 93 | # (see https://dystroy.org/broot/icons for installation and 94 | # troubleshooting) 95 | # 96 | # icon_theme: vscode 97 | 98 | ############################################################### 99 | # Special paths 100 | # If some paths must be handled specially, uncomment (and change 101 | # this section as per the examples) 102 | # Setting "list":"never" on a dir prevents broot from looking at its 103 | # children when searching, unless the dir is the selected root. 104 | # Setting "sum":"never" on a dir prevents broot from looking at its 105 | # children when computing the total size and count of files. 106 | # Setting "show":"always" makes a file visible even if its name 107 | # starts with a dot. 108 | # Setting "list":"always" may be useful on a link to a directory 109 | # (they're otherwise not entered by broot unless selected) 110 | # 111 | special_paths: { 112 | "/media" : { 113 | list: "never" 114 | sum: "never" 115 | } 116 | "~/.config": { "show": "always" } 117 | "trav": { 118 | show: always 119 | list: "always", 120 | sum: "never" 121 | } 122 | # "~/useless": { "show": "never" } 123 | # "~/my-link-I-want-to-explore": { "list": "always" } 124 | } 125 | 126 | ############################################################### 127 | # Quit on last cancel 128 | # You can usually cancel the last state change on escape. 129 | # If you want the escape key to quit broot when there's nothing 130 | # to cancel (for example when you just opened broot), uncomment 131 | # this parameter 132 | # 133 | # quit_on_last_cancel: true 134 | 135 | ############################################################### 136 | # Search modes 137 | # 138 | # broot allows many search modes. 139 | # A search mode is defined by 140 | # - the way to search: 'fuzzy', 'exact', 'regex', or 'tokens'. 141 | # - where to search: file 'name', 'path', or file 'content' 142 | # A search pattern may for example be "fuzzy path" (default), 143 | # "regex content" or "exact path". 144 | # 145 | # The search mode is selected from its prefix. For example, if 146 | # you type "abc", the default mode is "fuzzy path". If you type 147 | # "/abc", the mode is "regex path". If you type "rn/abc", the mode 148 | # is "regex name". 149 | # 150 | # This mapping may be modified. You may want to dedicate the 151 | # empty prefix (the one which doesn't need a '/') to the 152 | # search mode you use most often. The example below makes it 153 | # easy to search on name rather than on the subpath. 154 | # 155 | # More information on 156 | # https://dystroy.org/broot/input/#the-filtering-pattern 157 | # 158 | # search_modes: { 159 | # : fuzzy name 160 | # /: regex name 161 | # } 162 | 163 | ############################################################### 164 | # File Extension Colors 165 | # 166 | # uncomment and modify the next section if you want to color 167 | # file name depending on their extension 168 | # 169 | # ext_colors: { 170 | # png: rgb(255, 128, 75) 171 | # rs: yellow 172 | # } 173 | 174 | ############################################################### 175 | # Max file size for content search 176 | # 177 | # Bigger files are ignored when searching their content. You 178 | # can specify this size either in ISO units (eg 5GB) or in 179 | # the old binary units (eg 44Kib) 180 | content_search_max_file_size: 10MB 181 | 182 | ############################################################### 183 | # Max Panels Count 184 | # 185 | # Change this if you sometimes want to have more than 2 panels 186 | # open 187 | # max_panels_count: 2 188 | 189 | ############################################################### 190 | # Update work dir 191 | # 192 | # By default, broot process' work dir is kept in sync with the 193 | # current's panel root. If you want to keep it unchanged, 194 | # uncomment this setting 195 | # 196 | # update_work_dir: false 197 | 198 | ############################################################### 199 | # Kitty Keyboard extension 200 | # 201 | # If you want to use advanced keyboard shortcuts in Kitty 202 | # compatible terminals (Kitty, Wezterm), set this to true. 203 | # 204 | # This makes it possible to use shortcuts like 'space-n', 205 | # 'ctrl-alt-a-b', 'shift-space', etc. 206 | # 207 | enable_kitty_keyboard: false 208 | 209 | ############################################################### 210 | # lines around matching line in filtered preview 211 | # 212 | # When searching the content of a file, you can have either 213 | # only the matching lines displayed, or some of the surrounding 214 | # ones too. 215 | # 216 | lines_before_match_in_preview: 1 217 | lines_after_match_in_preview: 1 218 | 219 | ############################################################### 220 | # Imports 221 | # 222 | # While it's possible to have all configuration in one file, 223 | # it's more convenient to split it in several ones. 224 | # Importing also allows to set a condition on the terminal's 225 | # color, which makes it possible to have a different skin 226 | # chosen when your terminal has a light background and when 227 | # it has a light one. 228 | imports: [ 229 | 230 | # Verbs are better configured in verbs.hjson. But you 231 | # can also add another files for your personal verbs 232 | verbs.hjson 233 | 234 | # This file contains the skin to use when the terminal 235 | # is dark (or when this couldn't be determined) 236 | { 237 | luma: [ 238 | dark 239 | unknown 240 | ] 241 | # (un)comment to choose your preferred skin 242 | file: skins/dark-blue.hjson 243 | //file: skins/catppuccin-macchiato.hjson 244 | //file: skins/catppuccin-mocha.hjson 245 | //file: skins/dark-gruvbox.hjson 246 | //file: skins/dark-orange.hjson 247 | //file: skins/solarized-dark.hjson 248 | } 249 | 250 | # This skin is imported when your terminal is light 251 | { 252 | luma: light 253 | # (un)comment to choose your preferred skin 254 | //file: skins/solarized-light.hjson 255 | file: skins/white.hjson 256 | } 257 | ] 258 | -------------------------------------------------------------------------------- /.config/deltadiff/themes.gitconfig: -------------------------------------------------------------------------------- 1 | # To use these themes, first include this file in your own gitconfig file: 2 | # 3 | # [include] 4 | # path = PATH/TO/delta/themes.gitconfig 5 | # 6 | # Then, in your own gitconfig file, activate the chosen theme, e.g. 7 | # 8 | # [delta] 9 | # features = kingfisher 10 | # 11 | # Please add your own themes to this file, and open a PR. 12 | # 13 | # Instructions: 14 | # 15 | # 1. The name of the theme must be the name of some sort of wild organism: 16 | # mammal, bird, plant, mollusk -- whatever. It can be in any language. 17 | # 18 | # 2. Use `delta --show-config` to list all the style settings that are active in 19 | # your current delta environment, but only include settings in your theme 20 | # that are essential to its appearance. 21 | # 22 | # 3. Include either `dark = true` or `light = true` according to whether it is 23 | # designed for a light or dark terminal background. (This marks a feature as 24 | # a "theme", causing it to be picked up by `delta --show-themes`). 25 | # 26 | # 4. Feel free to include a comment line indicating who is the author of the 27 | # theme. E.g. a link to your github user page. 28 | 29 | [delta "colibri"] 30 | # author: https://github.com/pablospe 31 | # Based on woolly-mammoth: https://github.com/Kr1ss-XD. 32 | commit-decoration-style = 130 box 33 | dark = true 34 | file-decoration-style = "#606018" overline 35 | file-added-label = [●] 36 | file-copied-label = [C] 37 | file-modified-label = [+] 38 | file-removed-label = [⛌] 39 | file-renamed-label = [→] 40 | file-style = 232 bold 184 41 | hunk-header-style = syntax bold italic 237 42 | line-numbers = true 43 | line-numbers-left-format = "{nm:>1}┊" 44 | line-numbers-left-style = red 45 | line-numbers-minus-style = red bold 46 | line-numbers-plus-style = green bold 47 | line-numbers-right-format = " {np:>1}┊" 48 | line-numbers-right-style = green 49 | line-numbers-zero-style = "#545474" italic 50 | minus-emph-style = normal "#80002a" 51 | minus-style = normal "#5e0000" 52 | plus-emph-style = syntax bold "#007e5e" 53 | plus-style = syntax "#003500" 54 | syntax-theme = OneHalfDark 55 | whitespace-error-style = "#80002a" reverse 56 | zero-style = syntax 57 | blame-format = "{author:<18} ({commit:>7}) ┊{timestamp:^16}┊ " 58 | 59 | [delta "collared-trogon"] 60 | # author: https://github.com/clnoll 61 | commit-decoration-style = bold box ul 62 | dark = true 63 | file-decoration-style = none 64 | file-style = omit 65 | hunk-header-decoration-style = "#022b45" box ul 66 | hunk-header-file-style = "#999999" 67 | hunk-header-line-number-style = bold "#003300" 68 | hunk-header-style = file line-number syntax 69 | line-numbers = true 70 | line-numbers-left-style = "#022b45" 71 | line-numbers-minus-style = "#80002a" 72 | line-numbers-plus-style = "#003300" 73 | line-numbers-right-style = "#022b45" 74 | line-numbers-zero-style = "#999999" 75 | minus-emph-style = normal "#80002a" 76 | minus-style = normal "#330011" 77 | plus-emph-style = syntax "#003300" 78 | plus-style = syntax "#001a00" 79 | syntax-theme = Nord 80 | 81 | [delta "coracias-caudatus"] 82 | # author: https://github.com/clnoll 83 | commit-decoration-style = ol "#7536ff" 84 | commit-style = "#200078" 85 | file-decoration-style = none 86 | file-style = omit 87 | hunk-header-decoration-style = "#cfd6ff" ul 88 | hunk-header-file-style = "#858dff" 89 | hunk-header-line-number-style = "#7536ff" 90 | hunk-header-style = file line-number syntax 91 | light = true 92 | line-numbers = true 93 | line-numbers-left-format = "{nm:>4} ." 94 | line-numbers-left-style = "#e3ab02" 95 | line-numbers-minus-style = "#ff38b6" 96 | line-numbers-plus-style = "#00e0c2" 97 | line-numbers-right-format = "{np:>4} " 98 | line-numbers-right-style = white 99 | line-numbers-zero-style = "#cccccc" 100 | minus-emph-style = bold "#ff3838" "#ffe3f7" 101 | minus-style = "#ff0080" 102 | plus-emph-style = "#008a81" bold "#00ffbf" 103 | plus-style = syntax "#cffff3" 104 | syntax-theme = GitHub 105 | 106 | [delta "hoopoe"] 107 | # author: https://github.com/dandavison 108 | light = true 109 | pink = "#ffe0e0" 110 | dark-pink = "#ffc0c0" 111 | green = "#d0ffd0" 112 | dark-green = "#a0efa0" 113 | dark-green-2 = "#067a00" 114 | minus-style = normal hoopoe.pink 115 | minus-emph-style = normal hoopoe.dark-pink 116 | minus-non-emph-style = minus-style 117 | plus-style = syntax hoopoe.green 118 | plus-emph-style = syntax hoopoe.dark-green 119 | plus-non-emph-style = plus-style 120 | minus-empty-line-marker-style = minus-style 121 | plus-empty-line-marker-style = plus-style 122 | commit-decoration-style = blue ol 123 | commit-style = raw 124 | file-style = omit 125 | hunk-header-decoration-style = blue box 126 | hunk-header-file-style = red 127 | hunk-header-line-number-style = hoopoe.dark-green-2 128 | hunk-header-style = file line-number syntax 129 | syntax-theme = GitHub 130 | zero-style = syntax 131 | 132 | [delta "tangara-chilensis"] 133 | # author: https://github.com/clnoll 134 | commit-decoration-style = bold box ul "#34fd50" 135 | dark = true 136 | file-decoration-style = none 137 | file-style = omit 138 | hunk-header-decoration-style = "#00b494" box ul 139 | hunk-header-file-style = "#999999" 140 | hunk-header-line-number-style = bold "#03a4ff" 141 | hunk-header-style = file line-number syntax 142 | line-numbers = true 143 | line-numbers-left-style = black 144 | line-numbers-minus-style = "#B10036" 145 | line-numbers-plus-style = "#03a4ff" 146 | line-numbers-right-style = black 147 | line-numbers-zero-style = "#999999" 148 | minus-emph-style = normal "#de004e" 149 | minus-style = normal "#990017" 150 | plus-emph-style = syntax "#03a4ff" 151 | plus-style = syntax "#450eff" 152 | side-by-side = true 153 | syntax-theme = Vibrant Sunburst 154 | 155 | [delta "villsau"] 156 | # author: https://github.com/torarnv 157 | dark = true 158 | file-style = omit 159 | hunk-header-decoration-style = omit 160 | hunk-header-file-style = magenta 161 | hunk-header-line-number-style = dim magenta 162 | hunk-header-style = file line-number syntax 163 | line-numbers = false 164 | minus-emph-style = bold red 52 165 | minus-empty-line-marker-style = normal "#3f0001" 166 | minus-non-emph-style = dim red 167 | minus-style = bold red 168 | plus-emph-style = bold green 22 169 | plus-empty-line-marker-style = normal "#002800" 170 | plus-non-emph-style = dim green 171 | plus-style = bold green 172 | syntax-theme = OneHalfDark 173 | whitespace-error-style = reverse red 174 | zero-style = dim syntax 175 | 176 | [delta "woolly-mammoth"] 177 | # author: https://github.com/Kr1ss-XD 178 | commit-decoration-style = 232 130 box 179 | commit-style = 232 bold italic 130 180 | dark = true 181 | file-added-label = [+] 182 | file-copied-label = [C] 183 | file-decoration-style = "#606018" overline 184 | file-modified-label = [M] 185 | file-removed-label = [-] 186 | file-renamed-label = [R] 187 | file-style = 232 bold 184 188 | hunk-header-decoration-style = none 189 | hunk-header-style = syntax bold italic 237 190 | line-numbers = true 191 | line-numbers-left-format = "{nm:>1}┊" 192 | line-numbers-left-style = red 193 | line-numbers-minus-style = red italic black 194 | line-numbers-plus-style = green italic black 195 | line-numbers-right-format = "{np:>1}┊" 196 | line-numbers-right-style = green 197 | line-numbers-zero-style = "#545474" italic 198 | minus-emph-style = syntax bold "#780000" 199 | minus-style = syntax "#400000" 200 | plus-emph-style = syntax bold "#007800" 201 | plus-style = syntax "#004000" 202 | syntax-theme = Vibrant Sunburst 203 | whitespace-error-style = "#280050" reverse 204 | zero-style = syntax 205 | blame-format = "{author:<18} ({commit:>7}) ┊{timestamp:^16}┊ " 206 | blame-palette = "#101010 #200020 #002800 #000028 #202000 #280000 #002020 #002800 #202020" 207 | 208 | [delta "calochortus-lyallii"] 209 | # author: https://github.com/manojkarthick 210 | commit-decoration-style = none 211 | dark = true 212 | file-added-label = [+] 213 | file-copied-label = [C] 214 | file-decoration-style = none 215 | file-modified-label = [M] 216 | file-removed-label = [-] 217 | file-renamed-label = [R] 218 | file-style = 232 bold 184 219 | hunk-header-decoration-style = none 220 | hunk-header-file-style = "#999999" 221 | hunk-header-line-number-style = bold "#03a4ff" 222 | hunk-header-style = file line-number syntax 223 | line-numbers = true 224 | line-numbers-left-style = black 225 | line-numbers-minus-style = "#B10036" 226 | line-numbers-plus-style = "#03a4ff" 227 | line-numbers-right-style = black 228 | line-numbers-zero-style = "#999999" 229 | minus-emph-style = syntax bold "#780000" 230 | minus-style = syntax "#400000" 231 | plus-emph-style = syntax bold "#007800" 232 | plus-style = syntax "#004000" 233 | whitespace-error-style = "#280050" reverse 234 | zero-style = syntax 235 | syntax-theme = Nord 236 | 237 | [delta "mantis-shrimp"] 238 | #author: https://github.com/2kabhishek 239 | dark = true 240 | side-by-side = false 241 | keep-plus-minus-markers = true 242 | hyperlinks = true 243 | file-added-label = [+] 244 | file-copied-label = [==] 245 | file-modified-label = [*] 246 | file-removed-label = [-] 247 | file-renamed-label = [->] 248 | file-style = omit 249 | zero-style = syntax 250 | syntax-theme = Monokai Extended 251 | commit-decoration-style ="#11ce16" box 252 | commit-style = "#ffd21a" bold italic 253 | hunk-header-decoration-style = "#1688f0" box ul 254 | hunk-header-file-style = "#c63bee" ul bold 255 | hunk-header-line-number-style = "#ffd21a" box bold 256 | hunk-header-style = file line-number syntax bold italic 257 | line-numbers = true 258 | line-numbers-left-format = "{nm:>1}|" 259 | line-numbers-left-style = "#1688f0" 260 | line-numbers-minus-style = "#ff0051" bold 261 | line-numbers-plus-style = "#03e57f" bold 262 | line-numbers-right-format = "{np:>1}|" 263 | line-numbers-right-style = "#1688f0" 264 | line-numbers-zero-style = "#aaaaaa" italic 265 | minus-emph-style = syntax bold "#b80000" 266 | minus-style = syntax "#5d001e" 267 | plus-emph-style = syntax bold "#007800" 268 | plus-style = syntax "#004433" 269 | whitespace-error-style = "#280050" 270 | 271 | [delta "mantis-shrimp-lite"] 272 | #author: https://github.com/2kabhishek 273 | dark = true 274 | side-by-side = true 275 | keep-plus-minus-markers = true 276 | file-added-label = [+] 277 | file-copied-label = [==] 278 | file-modified-label = [*] 279 | file-removed-label = [-] 280 | file-renamed-label = [->] 281 | file-style = omit 282 | zero-style = syntax 283 | syntax-theme = Monokai Extended 284 | commit-decoration-style = green box 285 | commit-style = yellow bold italic 286 | hunk-header-decoration-style = blue box ul 287 | hunk-header-file-style = purple ul bold 288 | hunk-header-line-number-style = yellow box bold 289 | hunk-header-style = file line-number syntax bold italic 290 | line-numbers = true 291 | line-numbers-left-format = "{nm:>1}|" 292 | line-numbers-left-style = blue 293 | line-numbers-minus-style = red bold 294 | line-numbers-plus-style = green bold 295 | line-numbers-right-format = "{np:>1}|" 296 | line-numbers-right-style = blue 297 | line-numbers-zero-style = white italic 298 | minus-emph-style = syntax bold red 299 | plus-emph-style = syntax bold green 300 | whitespace-error-style = purple bold 301 | 302 | [delta "zebra-dark"] 303 | minus-style = syntax "#330f0f" 304 | minus-emph-style = syntax "#4f1917" 305 | plus-style = syntax "#0e2f19" 306 | plus-emph-style = syntax "#174525" 307 | map-styles = \ 308 | bold purple => syntax "#330f29", \ 309 | bold blue => syntax "#271344", \ 310 | bold cyan => syntax "#0d3531", \ 311 | bold yellow => syntax "#222f14" 312 | zero-style = syntax 313 | whitespace-error-style = "#aaaaaa" 314 | 315 | [delta "zebra-light"] 316 | minus-style = syntax "#fbdada" 317 | minus-emph-style = syntax "#f6b6b6" 318 | plus-style = syntax "#d6ffd6" 319 | plus-emph-style = syntax "#adffad" 320 | map-styles = \ 321 | bold purple => syntax "#feecf7", \ 322 | bold blue => syntax "#e5dff6", \ 323 | bold cyan => syntax "#d8fdf6", \ 324 | bold yellow => syntax "#f4ffe0" 325 | zero-style = syntax 326 | whitespace-error-style = "#aaaaaa" 327 | 328 | [delta "chameleon"] 329 | #author: https://github.com/AirOnSkin 330 | dark = true 331 | line-numbers = true 332 | side-by-side = true 333 | keep-plus-minus-markers = false 334 | syntax-theme = Nord 335 | file-style = "#434C5E" bold 336 | file-decoration-style = "#434C5E" ul 337 | file-added-label = [+] 338 | file-copied-label = [==] 339 | file-modified-label = [*] 340 | file-removed-label = [-] 341 | file-renamed-label = [->] 342 | hunk-header-style = omit 343 | line-numbers-left-format = " {nm:>3} │" 344 | line-numbers-left-style = red 345 | line-numbers-right-format = " {np:>3} │" 346 | line-numbers-right-style = green 347 | line-numbers-minus-style = red italic black 348 | line-numbers-plus-style = green italic black 349 | line-numbers-zero-style = "#434C5E" italic 350 | minus-style = bold red 351 | minus-emph-style = bold "#202020" "#FF5555" 352 | minus-non-emph-style = bold 353 | plus-style = bold green 354 | plus-emph-style = bold "#202020" "#50FA7B" 355 | plus-non-emph-style = bold 356 | zero-style = syntax 357 | blame-code-style = syntax 358 | blame-format = "{author:<18} ({commit:>9}) {timestamp:^16}" 359 | blame-palette = "#2E3440" "#3B4252" "#434C5E" "#4C566A" 360 | merge-conflict-begin-symbol = ~ 361 | merge-conflict-end-symbol = ~ 362 | merge-conflict-ours-diff-header-style = "#F1FA8C" bold 363 | merge-conflict-ours-diff-header-decoration-style = "#434C5E" box 364 | merge-conflict-theirs-diff-header-style = "#F1FA8C" bold 365 | merge-conflict-theirs-diff-header-decoration-style = "#434C5E" box 366 | 367 | [delta "gruvmax-fang"] 368 | # author: https://github.com/maxfangx 369 | # General appearance 370 | dark = true 371 | syntax-theme = gruvbox-dark 372 | # File 373 | file-style = "#FFFFFF" bold 374 | file-added-label = [+] 375 | file-copied-label = [==] 376 | file-modified-label = [*] 377 | file-removed-label = [-] 378 | file-renamed-label = [->] 379 | file-decoration-style = "#434C5E" ul 380 | file-decoration-style = "#84786A" ul 381 | # No hunk headers 382 | hunk-header-style = omit 383 | # Line numbers 384 | line-numbers = true 385 | line-numbers-left-style = "#84786A" 386 | line-numbers-right-style = "#84786A" 387 | line-numbers-minus-style = "#A02A11" 388 | line-numbers-plus-style = "#479B36" 389 | line-numbers-zero-style = "#84786A" 390 | line-numbers-left-format = " {nm:>3} │" 391 | line-numbers-right-format = " {np:>3} │" 392 | # Diff contents 393 | inline-hint-style = syntax 394 | minus-style = syntax "#330011" 395 | minus-emph-style = syntax "#80002a" 396 | minus-non-emph-style = syntax auto 397 | plus-style = syntax "#001a00" 398 | plus-emph-style = syntax "#003300" 399 | plus-non-emph-style = syntax auto 400 | whitespace-error-style = "#FB4934" reverse 401 | # Commit hash 402 | commit-decoration-style = normal box 403 | commit-style = "#ffffff" bold 404 | # Blame 405 | blame-code-style = syntax 406 | blame-format = "{author:>18} ({commit:>8}) {timestamp:<13} " 407 | blame-palette = "#000000" "#1d2021" "#282828" "#3c3836" 408 | # Merge conflicts 409 | merge-conflict-begin-symbol = ⌃ 410 | merge-conflict-end-symbol = ⌄ 411 | merge-conflict-ours-diff-header-style = "#FABD2F" bold 412 | merge-conflict-theirs-diff-header-style = "#FABD2F" bold overline 413 | merge-conflict-ours-diff-header-decoration-style = '' 414 | merge-conflict-theirs-diff-header-decoration-style = '' 415 | 416 | [delta "discord"] 417 | commit-style = omit 418 | file-style = 34 ul 419 | file-decoration-style = none 420 | hunk-header-style = omit 421 | minus-style = 31 422 | minus-non-emph-style = 31 423 | minus-emph-style = 40 424 | minus-empty-line-marker-style = 31 425 | zero-style = 30 426 | plus-style = 32 427 | plus-non-emph-style = 32 428 | plus-emph-style = 40 429 | grep-file-style = 34 430 | grep-line-number-style = 34 431 | whitespace-error-style = 41 432 | blame-code-style = omit 433 | true-color = never 434 | file-modified-label = changed: 435 | right-arrow = > 436 | hyperlinks = false 437 | keep-plus-minus-markers = true 438 | diff-stat-align-width = 10 439 | syntax-theme = none 440 | width = variable 441 | 442 | [delta "mellow-barbet"] 443 | # author: https://github.com/kvrohit 444 | # To configure terminal colors see https://github.com/kvrohit/mellow.nvim#terminals 445 | dark = true 446 | syntax-theme = base16 447 | line-numbers = true 448 | side-by-side = true 449 | file-style = brightwhite 450 | file-decoration-style = none 451 | file-added-label = [+] 452 | file-copied-label = [==] 453 | file-modified-label = [*] 454 | file-removed-label = [-] 455 | file-renamed-label = [->] 456 | hunk-header-decoration-style = "#3e3e43" box ul 457 | plus-style = brightgreen black 458 | plus-emph-style = black green 459 | minus-style = brightred black 460 | minus-emph-style = black red 461 | line-numbers-minus-style = brightred 462 | line-numbers-plus-style = brightgreen 463 | line-numbers-left-style = "#3e3e43" 464 | line-numbers-right-style = "#3e3e43" 465 | line-numbers-zero-style = "#57575f" 466 | zero-style = syntax 467 | whitespace-error-style = black bold 468 | blame-code-style = syntax 469 | blame-palette = "#161617" "#1b1b1d" "#2a2a2d" "#3e3e43" 470 | merge-conflict-begin-symbol = ~ 471 | merge-conflict-end-symbol = ~ 472 | merge-conflict-ours-diff-header-style = yellow bold 473 | merge-conflict-ours-diff-header-decoration-style = "#3e3e43" box 474 | merge-conflict-theirs-diff-header-style = yellow bold 475 | merge-conflict-theirs-diff-header-decoration-style = "#3e3e43" box 476 | 477 | [delta "arctic-fox"] 478 | # author: https://github.com/anthony-halim 479 | dark = true 480 | syntax-theme = Nord 481 | file-added-label = [+] 482 | file-copied-label = [==] 483 | file-modified-label = [*] 484 | file-removed-label = [-] 485 | file-renamed-label = [->] 486 | file-style = omit 487 | hunk-header-decoration-style = "#5E81AC" ul 488 | hunk-header-file-style = blue ul bold 489 | hunk-header-line-number-style = yellow box bold 490 | hunk-header-style = file line-number syntax bold italic 491 | plus-style = brightgreen 492 | plus-emph-style = black green 493 | minus-style = brightred 494 | minus-emph-style = black red 495 | line-numbers = true 496 | line-numbers-minus-style = brightred 497 | line-numbers-plus-style = brightgreen 498 | line-numbers-left-style = "#5E81AC" 499 | line-numbers-right-style = "#5E81AC" 500 | line-numbers-zero-style = "#4C566A" 501 | zero-style = syntax 502 | whitespace-error-style = black bold 503 | blame-code-style = syntax 504 | blame-format = "{author:<18} {commit:<6} {timestamp:<15}" 505 | blame-palette = "#2E3440" "#3B4252" "#434C5E" 506 | merge-conflict-begin-symbol = ~ 507 | merge-conflict-end-symbol = ~ 508 | merge-conflict-ours-diff-header-style = yellow bold 509 | merge-conflict-ours-diff-header-decoration-style = "#5E81AC" box 510 | merge-conflict-theirs-diff-header-style = yellow bold 511 | merge-conflict-theirs-diff-header-decoration-style = "#5E81AC" box 512 | 513 | [delta "corvus"] 514 | # author: https://github.com/evilwaveforms 515 | dark = true 516 | commit-style = "#949494" 517 | file-style = omit 518 | syntax-theme = none 519 | hunk-header-decoration-style = "#949494" ul 520 | hunk-header-file-style = "#949494" 521 | hunk-header-style = "#949494" 522 | line-numbers = true 523 | line-numbers-left-style = "#949494" 524 | line-numbers-right-style = "#949494" 525 | line-numbers-left-format = "{nm:>2}|" 526 | line-numbers-right-format = "{np:>3} " 527 | line-numbers-plus-style = "#54c047" 528 | line-numbers-minus-style = bold "#591102" 529 | plus-style = "#54c047" 530 | plus-emph-style = bold "#54c047" 531 | plus-non-emph-style = dim "#54c047" 532 | minus-style = normal "#591102" 533 | minus-emph-style = normal "#591102" 534 | minus-non-emph-style = bold "#591102" 535 | blame-code-style = omit 536 | blame-format = "{author:<18} {commit:<6} {timestamp:<15}" 537 | blame-palette = "#000000" "#343434" 538 | zero-style = dim 539 | 540 | [delta "platypus"] 541 | # Author: https://github.com/sarpuser 542 | dark = true 543 | side-by-side = true 544 | true-color = always 545 | file-added-label = [+] 546 | file-copied-label = [==] 547 | file-modified-label = [M] 548 | file-removed-label = [-] 549 | file-renamed-label = [->] 550 | file-style = "#ff9b00" ul bold 551 | file-decoration-style = "#ea00ff" box ul 552 | zero-style = syntax 553 | syntax-theme = Solarized (dark) 554 | commit-decoration-style ="#ea00ff" ul 555 | hunk-header-decoration-style = omit 556 | hunk-header-file-style = "#ff9b00" ul bold 557 | hunk-header-line-number-style = "#ffd21a" bold 558 | hunk-header-style = line-number syntax bold italic 559 | line-numbers = true 560 | line-numbers-left-format = "{nm:>1}|" 561 | line-numbers-left-style = "#ea00ff" 562 | line-numbers-minus-style = "#ff0051" bold 563 | line-numbers-plus-style = "#1ac71e" bold 564 | line-numbers-right-format = "{np:>1}|" 565 | line-numbers-right-style = "#ea00ff" 566 | line-numbers-zero-style = "#aaaaaa" italic 567 | minus-emph-style = syntax bold "#b80000" 568 | minus-style = syntax "#5d001e" 569 | plus-emph-style = syntax bold "#1a861a" 570 | plus-style = syntax "#2a5e37" 571 | whitespace-error-style = "#280050" 572 | wrap-max-lines = unlimited 573 | wrap-right-percent = 1 574 | -------------------------------------------------------------------------------- /.dotfiles/zellij-completions: -------------------------------------------------------------------------------- 1 | #compdef zellij 2 | 3 | autoload -U is-at-least 4 | 5 | _zellij() { 6 | typeset -A opt_args 7 | typeset -a _arguments_options 8 | local ret=1 9 | 10 | if is-at-least 5.2; then 11 | _arguments_options=(-s -S -C) 12 | else 13 | _arguments_options=(-s -C) 14 | fi 15 | 16 | local context curcontext="$curcontext" state line 17 | _arguments "${_arguments_options[@]}" \ 18 | '*--max-panes=[Maximum panes on screen, caution: opening more panes will close old ones]:MAX_PANES: ' \ 19 | '*--data-dir=[Change where zellij looks for plugins]:DATA_DIR:_files' \ 20 | '*--server=[Run server listening at the specified socket path]:SERVER:_files' \ 21 | '*-s+[Specify name of a new session]:SESSION: ' \ 22 | '*--session=[Specify name of a new session]:SESSION: ' \ 23 | '*-l+[Name of a predefined layout inside the layout directory or the path to a layout file]:LAYOUT:_files' \ 24 | '*--layout=[Name of a predefined layout inside the layout directory or the path to a layout file]:LAYOUT:_files' \ 25 | '*-c+[Change where zellij looks for the configuration file]:CONFIG:_files' \ 26 | '*--config=[Change where zellij looks for the configuration file]:CONFIG:_files' \ 27 | '*--config-dir=[Change where zellij looks for the configuration directory]:CONFIG_DIR:_files' \ 28 | '-h[Print help information]' \ 29 | '--help[Print help information]' \ 30 | '-V[Print version information]' \ 31 | '--version[Print version information]' \ 32 | '*-d[Specify emitting additional debug information]' \ 33 | '*--debug[Specify emitting additional debug information]' \ 34 | ":: :_zellij_commands" \ 35 | "*::: :->zellij" \ 36 | && ret=0 37 | case $state in 38 | (zellij) 39 | words=($line[1] "${words[@]}") 40 | (( CURRENT += 1 )) 41 | curcontext="${curcontext%:*:*}:zellij-command-$line[1]:" 42 | case $line[1] in 43 | (options) 44 | _arguments "${_arguments_options[@]}" \ 45 | '*--simplified-ui=[Allow plugins to use a more simplified layout that is compatible with more fonts (true or false)]:SIMPLIFIED_UI:(true false)' \ 46 | '*--theme=[Set the default theme]:THEME: ' \ 47 | '*--default-mode=[Set the default mode]:DEFAULT_MODE:((normal\:"In `Normal` mode, input is always written to the terminal, except for the shortcuts leading to other modes" 48 | locked\:"In `Locked` mode, input is always written to the terminal and all shortcuts are disabled except the one leading back to normal mode" 49 | resize\:"`Resize` mode allows resizing the different existing panes" 50 | pane\:"`Pane` mode allows creating and closing panes, as well as moving between them" 51 | tab\:"`Tab` mode allows creating and closing tabs, as well as moving between them" 52 | scroll\:"`Scroll` mode allows scrolling up and down within a pane" 53 | enter-search\:"`EnterSearch` mode allows for typing in the needle for a search in the scroll buffer of a pane" 54 | search\:"`Search` mode allows for searching a term in a pane (superset of `Scroll`)" 55 | rename-tab\:"`RenameTab` mode allows assigning a new name to a tab" 56 | rename-pane\:"`RenamePane` mode allows assigning a new name to a pane" 57 | session\:"`Session` mode allows detaching sessions" 58 | move\:"`Move` mode allows moving the different existing panes within a tab" 59 | prompt\:"`Prompt` mode allows interacting with active prompts" 60 | tmux\:"`Tmux` mode allows for basic tmux keybindings functionality"))' \ 61 | '*--default-shell=[Set the default shell]:DEFAULT_SHELL:_files' \ 62 | '*--default-layout=[Set the default layout]:DEFAULT_LAYOUT:_files' \ 63 | '*--layout-dir=[Set the layout_dir, defaults to subdirectory of config dir]:LAYOUT_DIR:_files' \ 64 | '*--theme-dir=[Set the theme_dir, defaults to subdirectory of config dir]:THEME_DIR:_files' \ 65 | '*--mouse-mode=[Set the handling of mouse events (true or false) Can be temporarily bypassed by the \[SHIFT\] key]:MOUSE_MODE:(true false)' \ 66 | '*--pane-frames=[Set display of the pane frames (true or false)]:PANE_FRAMES:(true false)' \ 67 | '*--mirror-session=[Mirror session when multiple users are connected (true or false)]:MIRROR_SESSION:(true false)' \ 68 | '*--on-force-close=[Set behaviour on force close (quit or detach)]:ON_FORCE_CLOSE:(quit detach)' \ 69 | '*--scroll-buffer-size=[]:SCROLL_BUFFER_SIZE: ' \ 70 | '*--copy-command=[Switch to using a user supplied command for clipboard instead of OSC52]:COPY_COMMAND: ' \ 71 | '(--copy-command)*--copy-clipboard=[OSC52 destination clipboard]:COPY_CLIPBOARD:(system primary)' \ 72 | '*--copy-on-select=[Automatically copy when selecting text (true or false)]:COPY_ON_SELECT:(true false)' \ 73 | '*--scrollback-editor=[Explicit full path to open the scrollback editor (default is $EDITOR or $VISUAL)]:SCROLLBACK_EDITOR:_files' \ 74 | '*--session-name=[The name of the session to create when starting Zellij]:SESSION_NAME: ' \ 75 | '*--attach-to-session=[Whether to attach to a session specified in "session-name" if it exists]:ATTACH_TO_SESSION:(true false)' \ 76 | '*--auto-layout=[Whether to lay out panes in a predefined set of layouts whenever possible]:AUTO_LAYOUT:(true false)' \ 77 | '(--mouse-mode)*--disable-mouse-mode[Disable handling of mouse events]' \ 78 | '(--pane-frames)*--no-pane-frames[Disable display of pane frames]' \ 79 | '-h[Print help information]' \ 80 | '--help[Print help information]' \ 81 | && ret=0 82 | ;; 83 | (setup) 84 | _arguments "${_arguments_options[@]}" \ 85 | '*--dump-layout=[Dump the specified layout file to stdout]:DUMP_LAYOUT: ' \ 86 | '*--dump-swap-layout=[Dump the specified swap layout file to stdout]:DUMP_SWAP_LAYOUT: ' \ 87 | '*--dump-plugins=[Dump the builtin plugins to DIR or "DATA DIR" if unspecified]:DIR:_files' \ 88 | '*--generate-completion=[Generates completion for the specified shell]:SHELL: ' \ 89 | '*--generate-auto-start=[Generates auto-start script for the specified shell]:SHELL: ' \ 90 | '*--dump-config[Dump the default configuration file to stdout]' \ 91 | '*--clean[Disables loading of configuration file at default location, loads the defaults that zellij ships with]' \ 92 | '*--check[Checks the configuration of zellij and displays currently used directories]' \ 93 | '-h[Print help information]' \ 94 | '--help[Print help information]' \ 95 | && ret=0 96 | ;; 97 | (list-sessions) 98 | _arguments "${_arguments_options[@]}" \ 99 | '-h[Print help information]' \ 100 | '--help[Print help information]' \ 101 | && ret=0 102 | ;; 103 | (attach) 104 | _arguments "${_arguments_options[@]}" \ 105 | '*--index=[Number of the session index in the active sessions ordered creation date]:INDEX: ' \ 106 | '*-c[Create a session if one does not exist]' \ 107 | '*--create[Create a session if one does not exist]' \ 108 | '-h[Print help information]' \ 109 | '--help[Print help information]' \ 110 | '::session-name -- Name of the session to attach to:' \ 111 | ":: :_zellij__attach_commands" \ 112 | "*::: :->attach" \ 113 | && ret=0 114 | 115 | case $state in 116 | (attach) 117 | words=($line[2] "${words[@]}") 118 | (( CURRENT += 1 )) 119 | curcontext="${curcontext%:*:*}:zellij-attach-command-$line[2]:" 120 | case $line[2] in 121 | (options) 122 | _arguments "${_arguments_options[@]}" \ 123 | '*--simplified-ui=[Allow plugins to use a more simplified layout that is compatible with more fonts (true or false)]:SIMPLIFIED_UI:(true false)' \ 124 | '*--theme=[Set the default theme]:THEME: ' \ 125 | '*--default-mode=[Set the default mode]:DEFAULT_MODE:((normal\:"In `Normal` mode, input is always written to the terminal, except for the shortcuts leading to other modes" 126 | locked\:"In `Locked` mode, input is always written to the terminal and all shortcuts are disabled except the one leading back to normal mode" 127 | resize\:"`Resize` mode allows resizing the different existing panes" 128 | pane\:"`Pane` mode allows creating and closing panes, as well as moving between them" 129 | tab\:"`Tab` mode allows creating and closing tabs, as well as moving between them" 130 | scroll\:"`Scroll` mode allows scrolling up and down within a pane" 131 | enter-search\:"`EnterSearch` mode allows for typing in the needle for a search in the scroll buffer of a pane" 132 | search\:"`Search` mode allows for searching a term in a pane (superset of `Scroll`)" 133 | rename-tab\:"`RenameTab` mode allows assigning a new name to a tab" 134 | rename-pane\:"`RenamePane` mode allows assigning a new name to a pane" 135 | session\:"`Session` mode allows detaching sessions" 136 | move\:"`Move` mode allows moving the different existing panes within a tab" 137 | prompt\:"`Prompt` mode allows interacting with active prompts" 138 | tmux\:"`Tmux` mode allows for basic tmux keybindings functionality"))' \ 139 | '*--default-shell=[Set the default shell]:DEFAULT_SHELL:_files' \ 140 | '*--default-layout=[Set the default layout]:DEFAULT_LAYOUT:_files' \ 141 | '*--layout-dir=[Set the layout_dir, defaults to subdirectory of config dir]:LAYOUT_DIR:_files' \ 142 | '*--theme-dir=[Set the theme_dir, defaults to subdirectory of config dir]:THEME_DIR:_files' \ 143 | '*--mouse-mode=[Set the handling of mouse events (true or false) Can be temporarily bypassed by the \[SHIFT\] key]:MOUSE_MODE:(true false)' \ 144 | '*--pane-frames=[Set display of the pane frames (true or false)]:PANE_FRAMES:(true false)' \ 145 | '*--mirror-session=[Mirror session when multiple users are connected (true or false)]:MIRROR_SESSION:(true false)' \ 146 | '*--on-force-close=[Set behaviour on force close (quit or detach)]:ON_FORCE_CLOSE:(quit detach)' \ 147 | '*--scroll-buffer-size=[]:SCROLL_BUFFER_SIZE: ' \ 148 | '*--copy-command=[Switch to using a user supplied command for clipboard instead of OSC52]:COPY_COMMAND: ' \ 149 | '(--copy-command)*--copy-clipboard=[OSC52 destination clipboard]:COPY_CLIPBOARD:(system primary)' \ 150 | '*--copy-on-select=[Automatically copy when selecting text (true or false)]:COPY_ON_SELECT:(true false)' \ 151 | '*--scrollback-editor=[Explicit full path to open the scrollback editor (default is $EDITOR or $VISUAL)]:SCROLLBACK_EDITOR:_files' \ 152 | '*--session-name=[The name of the session to create when starting Zellij]:SESSION_NAME: ' \ 153 | '*--attach-to-session=[Whether to attach to a session specified in "session-name" if it exists]:ATTACH_TO_SESSION:(true false)' \ 154 | '*--auto-layout=[Whether to lay out panes in a predefined set of layouts whenever possible]:AUTO_LAYOUT:(true false)' \ 155 | '(--mouse-mode)*--disable-mouse-mode[Disable handling of mouse events]' \ 156 | '(--pane-frames)*--no-pane-frames[Disable display of pane frames]' \ 157 | '-h[Print help information]' \ 158 | '--help[Print help information]' \ 159 | && ret=0 160 | ;; 161 | (help) 162 | _arguments "${_arguments_options[@]}" \ 163 | '*::subcommand -- The subcommand whose help message to display:' \ 164 | && ret=0 165 | ;; 166 | esac 167 | ;; 168 | esac 169 | ;; 170 | (kill-session) 171 | _arguments "${_arguments_options[@]}" \ 172 | '-h[Print help information]' \ 173 | '--help[Print help information]' \ 174 | '::target-session -- Name of target session:' \ 175 | && ret=0 176 | ;; 177 | (kill-all-sessions) 178 | _arguments "${_arguments_options[@]}" \ 179 | '*-y[Automatic yes to prompts]' \ 180 | '*--yes[Automatic yes to prompts]' \ 181 | '-h[Print help information]' \ 182 | '--help[Print help information]' \ 183 | && ret=0 184 | ;; 185 | (action) 186 | _arguments "${_arguments_options[@]}" \ 187 | '-h[Print help information]' \ 188 | '--help[Print help information]' \ 189 | ":: :_zellij__action_commands" \ 190 | "*::: :->action" \ 191 | && ret=0 192 | 193 | case $state in 194 | (action) 195 | words=($line[1] "${words[@]}") 196 | (( CURRENT += 1 )) 197 | curcontext="${curcontext%:*:*}:zellij-action-command-$line[1]:" 198 | case $line[1] in 199 | (write) 200 | _arguments "${_arguments_options[@]}" \ 201 | '-h[Print help information]' \ 202 | '--help[Print help information]' \ 203 | '*::bytes:' \ 204 | && ret=0 205 | ;; 206 | (write-chars) 207 | _arguments "${_arguments_options[@]}" \ 208 | '-h[Print help information]' \ 209 | '--help[Print help information]' \ 210 | ':chars:' \ 211 | && ret=0 212 | ;; 213 | (resize) 214 | _arguments "${_arguments_options[@]}" \ 215 | '-h[Print help information]' \ 216 | '--help[Print help information]' \ 217 | ':resize:' \ 218 | '::direction:' \ 219 | && ret=0 220 | ;; 221 | (focus-next-pane) 222 | _arguments "${_arguments_options[@]}" \ 223 | '-h[Print help information]' \ 224 | '--help[Print help information]' \ 225 | && ret=0 226 | ;; 227 | (focus-previous-pane) 228 | _arguments "${_arguments_options[@]}" \ 229 | '-h[Print help information]' \ 230 | '--help[Print help information]' \ 231 | && ret=0 232 | ;; 233 | (move-focus) 234 | _arguments "${_arguments_options[@]}" \ 235 | '-h[Print help information]' \ 236 | '--help[Print help information]' \ 237 | ':direction:' \ 238 | && ret=0 239 | ;; 240 | (move-focus-or-tab) 241 | _arguments "${_arguments_options[@]}" \ 242 | '-h[Print help information]' \ 243 | '--help[Print help information]' \ 244 | ':direction:' \ 245 | && ret=0 246 | ;; 247 | (move-pane) 248 | _arguments "${_arguments_options[@]}" \ 249 | '-h[Print help information]' \ 250 | '--help[Print help information]' \ 251 | '::direction:' \ 252 | && ret=0 253 | ;; 254 | (move-pane-backwards) 255 | _arguments "${_arguments_options[@]}" \ 256 | '-h[Print help information]' \ 257 | '--help[Print help information]' \ 258 | && ret=0 259 | ;; 260 | (clear) 261 | _arguments "${_arguments_options[@]}" \ 262 | '-h[Print help information]' \ 263 | '--help[Print help information]' \ 264 | && ret=0 265 | ;; 266 | (dump-screen) 267 | _arguments "${_arguments_options[@]}" \ 268 | '*-f[Dump the pane with full scrollback]' \ 269 | '*--full[Dump the pane with full scrollback]' \ 270 | '-h[Print help information]' \ 271 | '--help[Print help information]' \ 272 | ':path:' \ 273 | && ret=0 274 | ;; 275 | (edit-scrollback) 276 | _arguments "${_arguments_options[@]}" \ 277 | '-h[Print help information]' \ 278 | '--help[Print help information]' \ 279 | && ret=0 280 | ;; 281 | (scroll-up) 282 | _arguments "${_arguments_options[@]}" \ 283 | '-h[Print help information]' \ 284 | '--help[Print help information]' \ 285 | && ret=0 286 | ;; 287 | (scroll-down) 288 | _arguments "${_arguments_options[@]}" \ 289 | '-h[Print help information]' \ 290 | '--help[Print help information]' \ 291 | && ret=0 292 | ;; 293 | (scroll-to-bottom) 294 | _arguments "${_arguments_options[@]}" \ 295 | '-h[Print help information]' \ 296 | '--help[Print help information]' \ 297 | && ret=0 298 | ;; 299 | (scroll-to-top) 300 | _arguments "${_arguments_options[@]}" \ 301 | '-h[Print help information]' \ 302 | '--help[Print help information]' \ 303 | && ret=0 304 | ;; 305 | (page-scroll-up) 306 | _arguments "${_arguments_options[@]}" \ 307 | '-h[Print help information]' \ 308 | '--help[Print help information]' \ 309 | && ret=0 310 | ;; 311 | (page-scroll-down) 312 | _arguments "${_arguments_options[@]}" \ 313 | '-h[Print help information]' \ 314 | '--help[Print help information]' \ 315 | && ret=0 316 | ;; 317 | (half-page-scroll-up) 318 | _arguments "${_arguments_options[@]}" \ 319 | '-h[Print help information]' \ 320 | '--help[Print help information]' \ 321 | && ret=0 322 | ;; 323 | (half-page-scroll-down) 324 | _arguments "${_arguments_options[@]}" \ 325 | '-h[Print help information]' \ 326 | '--help[Print help information]' \ 327 | && ret=0 328 | ;; 329 | (toggle-fullscreen) 330 | _arguments "${_arguments_options[@]}" \ 331 | '-h[Print help information]' \ 332 | '--help[Print help information]' \ 333 | && ret=0 334 | ;; 335 | (toggle-pane-frames) 336 | _arguments "${_arguments_options[@]}" \ 337 | '-h[Print help information]' \ 338 | '--help[Print help information]' \ 339 | && ret=0 340 | ;; 341 | (toggle-active-sync-tab) 342 | _arguments "${_arguments_options[@]}" \ 343 | '-h[Print help information]' \ 344 | '--help[Print help information]' \ 345 | && ret=0 346 | ;; 347 | (new-pane) 348 | _arguments "${_arguments_options[@]}" \ 349 | '(-f --floating)*-d+[Direction to open the new pane in]:DIRECTION: ' \ 350 | '(-f --floating)*--direction=[Direction to open the new pane in]:DIRECTION: ' \ 351 | '(-d --direction)-p+[]:PLUGIN: ' \ 352 | '(-d --direction)--plugin=[]:PLUGIN: ' \ 353 | '*--cwd=[Change the working directory of the new pane]:CWD:_files' \ 354 | '*-n+[Name of the new pane]:NAME: ' \ 355 | '*--name=[Name of the new pane]:NAME: ' \ 356 | '*-f[Open the new pane in floating mode]' \ 357 | '*--floating[Open the new pane in floating mode]' \ 358 | '*-c[Close the pane immediately when its command exits]' \ 359 | '*--close-on-exit[Close the pane immediately when its command exits]' \ 360 | '*-s[Start the command suspended, only running it after the you first press ENTER]' \ 361 | '*--start-suspended[Start the command suspended, only running it after the you first press ENTER]' \ 362 | '-h[Print help information]' \ 363 | '--help[Print help information]' \ 364 | '*::command:' \ 365 | && ret=0 366 | ;; 367 | (edit) 368 | _arguments "${_arguments_options[@]}" \ 369 | '(-f --floating)*-d+[Direction to open the new pane in]:DIRECTION: ' \ 370 | '(-f --floating)*--direction=[Direction to open the new pane in]:DIRECTION: ' \ 371 | '*-l+[Open the file in the specified line number]:LINE_NUMBER: ' \ 372 | '*--line-number=[Open the file in the specified line number]:LINE_NUMBER: ' \ 373 | '*--cwd=[Change the working directory of the editor]:CWD:_files' \ 374 | '*-f[Open the new pane in floating mode]' \ 375 | '*--floating[Open the new pane in floating mode]' \ 376 | '-h[Print help information]' \ 377 | '--help[Print help information]' \ 378 | ':file:' \ 379 | && ret=0 380 | ;; 381 | (switch-mode) 382 | _arguments "${_arguments_options[@]}" \ 383 | '-h[Print help information]' \ 384 | '--help[Print help information]' \ 385 | ':input-mode:' \ 386 | && ret=0 387 | ;; 388 | (toggle-pane-embed-or-floating) 389 | _arguments "${_arguments_options[@]}" \ 390 | '-h[Print help information]' \ 391 | '--help[Print help information]' \ 392 | && ret=0 393 | ;; 394 | (toggle-floating-panes) 395 | _arguments "${_arguments_options[@]}" \ 396 | '-h[Print help information]' \ 397 | '--help[Print help information]' \ 398 | && ret=0 399 | ;; 400 | (close-pane) 401 | _arguments "${_arguments_options[@]}" \ 402 | '-h[Print help information]' \ 403 | '--help[Print help information]' \ 404 | && ret=0 405 | ;; 406 | (rename-pane) 407 | _arguments "${_arguments_options[@]}" \ 408 | '-h[Print help information]' \ 409 | '--help[Print help information]' \ 410 | ':name:' \ 411 | && ret=0 412 | ;; 413 | (undo-rename-pane) 414 | _arguments "${_arguments_options[@]}" \ 415 | '-h[Print help information]' \ 416 | '--help[Print help information]' \ 417 | && ret=0 418 | ;; 419 | (go-to-next-tab) 420 | _arguments "${_arguments_options[@]}" \ 421 | '-h[Print help information]' \ 422 | '--help[Print help information]' \ 423 | && ret=0 424 | ;; 425 | (go-to-previous-tab) 426 | _arguments "${_arguments_options[@]}" \ 427 | '-h[Print help information]' \ 428 | '--help[Print help information]' \ 429 | && ret=0 430 | ;; 431 | (close-tab) 432 | _arguments "${_arguments_options[@]}" \ 433 | '-h[Print help information]' \ 434 | '--help[Print help information]' \ 435 | && ret=0 436 | ;; 437 | (go-to-tab) 438 | _arguments "${_arguments_options[@]}" \ 439 | '-h[Print help information]' \ 440 | '--help[Print help information]' \ 441 | ':index:' \ 442 | && ret=0 443 | ;; 444 | (go-to-tab-name) 445 | _arguments "${_arguments_options[@]}" \ 446 | '*-c[Create a tab if one does not exist]' \ 447 | '*--create[Create a tab if one does not exist]' \ 448 | '-h[Print help information]' \ 449 | '--help[Print help information]' \ 450 | ':name:' \ 451 | && ret=0 452 | ;; 453 | (rename-tab) 454 | _arguments "${_arguments_options[@]}" \ 455 | '-h[Print help information]' \ 456 | '--help[Print help information]' \ 457 | ':name:' \ 458 | && ret=0 459 | ;; 460 | (undo-rename-tab) 461 | _arguments "${_arguments_options[@]}" \ 462 | '-h[Print help information]' \ 463 | '--help[Print help information]' \ 464 | && ret=0 465 | ;; 466 | (new-tab) 467 | _arguments "${_arguments_options[@]}" \ 468 | '*-l+[Layout to use for the new tab]:LAYOUT:_files' \ 469 | '*--layout=[Layout to use for the new tab]:LAYOUT:_files' \ 470 | '*--layout-dir=[Default folder to look for layouts]:LAYOUT_DIR:_files' \ 471 | '*-n+[Name of the new tab]:NAME: ' \ 472 | '*--name=[Name of the new tab]:NAME: ' \ 473 | '*-c+[Change the working directory of the new tab]:CWD:_files' \ 474 | '*--cwd=[Change the working directory of the new tab]:CWD:_files' \ 475 | '-h[Print help information]' \ 476 | '--help[Print help information]' \ 477 | && ret=0 478 | ;; 479 | (previous-swap-layout) 480 | _arguments "${_arguments_options[@]}" \ 481 | '-h[Print help information]' \ 482 | '--help[Print help information]' \ 483 | && ret=0 484 | ;; 485 | (next-swap-layout) 486 | _arguments "${_arguments_options[@]}" \ 487 | '-h[Print help information]' \ 488 | '--help[Print help information]' \ 489 | && ret=0 490 | ;; 491 | (query-tab-names) 492 | _arguments "${_arguments_options[@]}" \ 493 | '-h[Print help information]' \ 494 | '--help[Print help information]' \ 495 | && ret=0 496 | ;; 497 | (help) 498 | _arguments "${_arguments_options[@]}" \ 499 | '*::subcommand -- The subcommand whose help message to display:' \ 500 | && ret=0 501 | ;; 502 | esac 503 | ;; 504 | esac 505 | ;; 506 | (run) 507 | _arguments "${_arguments_options[@]}" \ 508 | '(-f --floating)*-d+[Direction to open the new pane in]:DIRECTION: ' \ 509 | '(-f --floating)*--direction=[Direction to open the new pane in]:DIRECTION: ' \ 510 | '*--cwd=[Change the working directory of the new pane]:CWD:_files' \ 511 | '*-n+[Name of the new pane]:NAME: ' \ 512 | '*--name=[Name of the new pane]:NAME: ' \ 513 | '*-f[Open the new pane in floating mode]' \ 514 | '*--floating[Open the new pane in floating mode]' \ 515 | '*-c[Close the pane immediately when its command exits]' \ 516 | '*--close-on-exit[Close the pane immediately when its command exits]' \ 517 | '*-s[Start the command suspended, only running after you first presses ENTER]' \ 518 | '*--start-suspended[Start the command suspended, only running after you first presses ENTER]' \ 519 | '-h[Print help information]' \ 520 | '--help[Print help information]' \ 521 | '*::command -- Command to run:' \ 522 | && ret=0 523 | ;; 524 | (edit) 525 | _arguments "${_arguments_options[@]}" \ 526 | '*-l+[Open the file in the specified line number]:LINE_NUMBER: ' \ 527 | '*--line-number=[Open the file in the specified line number]:LINE_NUMBER: ' \ 528 | '(-f --floating)*-d+[Direction to open the new pane in]:DIRECTION: ' \ 529 | '(-f --floating)*--direction=[Direction to open the new pane in]:DIRECTION: ' \ 530 | '*--cwd=[Change the working directory of the editor]:CWD:_files' \ 531 | '*-f[Open the new pane in floating mode]' \ 532 | '*--floating[Open the new pane in floating mode]' \ 533 | '-h[Print help information]' \ 534 | '--help[Print help information]' \ 535 | ':file:' \ 536 | && ret=0 537 | ;; 538 | (convert-config) 539 | _arguments "${_arguments_options[@]}" \ 540 | '-h[Print help information]' \ 541 | '--help[Print help information]' \ 542 | ':old-config-file:' \ 543 | && ret=0 544 | ;; 545 | (convert-layout) 546 | _arguments "${_arguments_options[@]}" \ 547 | '-h[Print help information]' \ 548 | '--help[Print help information]' \ 549 | ':old-layout-file:' \ 550 | && ret=0 551 | ;; 552 | (convert-theme) 553 | _arguments "${_arguments_options[@]}" \ 554 | '-h[Print help information]' \ 555 | '--help[Print help information]' \ 556 | ':old-theme-file:' \ 557 | && ret=0 558 | ;; 559 | (help) 560 | _arguments "${_arguments_options[@]}" \ 561 | '*::subcommand -- The subcommand whose help message to display:' \ 562 | && ret=0 563 | ;; 564 | esac 565 | ;; 566 | esac 567 | } 568 | 569 | (( $+functions[_zellij_commands] )) || 570 | _zellij_commands() { 571 | local commands; commands=( 572 | 'options:Change the behaviour of zellij' \ 573 | 'setup:Setup zellij and check its configuration' \ 574 | 'list-sessions:List active sessions' \ 575 | 'ls:List active sessions' \ 576 | 'attach:Attach to a session' \ 577 | 'a:Attach to a session' \ 578 | 'kill-session:Kill the specific session' \ 579 | 'k:Kill the specific session' \ 580 | 'kill-all-sessions:Kill all sessions' \ 581 | 'ka:Kill all sessions' \ 582 | 'action:Send actions to a specific session' \ 583 | 'ac:Send actions to a specific session' \ 584 | 'run:Run a command in a new pane' \ 585 | 'r:Run a command in a new pane' \ 586 | 'edit:Edit file with default $EDITOR / $VISUAL' \ 587 | 'e:Edit file with default $EDITOR / $VISUAL' \ 588 | 'convert-config:' \ 589 | 'convert-layout:' \ 590 | 'convert-theme:' \ 591 | 'help:Print this message or the help of the given subcommand(s)' \ 592 | ) 593 | _describe -t commands 'zellij commands' commands "$@" 594 | } 595 | (( $+functions[_zellij__action_commands] )) || 596 | _zellij__action_commands() { 597 | local commands; commands=( 598 | 'write:Write bytes to the terminal' \ 599 | 'write-chars:Write characters to the terminal' \ 600 | 'resize:\[increase|decrease\] the focused panes area at the \[left|down|up|right\] border' \ 601 | 'focus-next-pane:Change focus to the next pane' \ 602 | 'focus-previous-pane:Change focus to the previous pane' \ 603 | 'move-focus:Move the focused pane in the specified direction. \[right|left|up|down\]' \ 604 | 'move-focus-or-tab:Move focus to the pane or tab (if on screen edge) in the specified direction \[right|left|up|down\]' \ 605 | 'move-pane:Change the location of the focused pane in the specified direction or rotate forwrads \[right|left|up|down\]' \ 606 | 'move-pane-backwards:Rotate the location of the previous pane backwards' \ 607 | 'clear:Clear all buffers for a focused pane' \ 608 | 'dump-screen:Dump the focused pane to a file' \ 609 | 'edit-scrollback:Open the pane scrollback in your default editor' \ 610 | 'scroll-up:Scroll up in the focused pane' \ 611 | 'scroll-down:Scroll down in focus pane' \ 612 | 'scroll-to-bottom:Scroll down to bottom in focus pane' \ 613 | 'scroll-to-top:Scroll up to top in focus pane' \ 614 | 'page-scroll-up:Scroll up one page in focus pane' \ 615 | 'page-scroll-down:Scroll down one page in focus pane' \ 616 | 'half-page-scroll-up:Scroll up half page in focus pane' \ 617 | 'half-page-scroll-down:Scroll down half page in focus pane' \ 618 | 'toggle-fullscreen:Toggle between fullscreen focus pane and normal layout' \ 619 | 'toggle-pane-frames:Toggle frames around panes in the UI' \ 620 | 'toggle-active-sync-tab:Toggle between sending text commands to all panes on the current tab and normal mode' \ 621 | 'new-pane:Open a new pane in the specified direction \[right|down\] If no direction is specified, will try to use the biggest available space' \ 622 | 'edit:Open the specified file in a new zellij pane with your default EDITOR' \ 623 | 'switch-mode:Switch input mode of all connected clients \[locked|pane|tab|resize|move|search|session\]' \ 624 | 'toggle-pane-embed-or-floating:Embed focused pane if floating or float focused pane if embedded' \ 625 | 'toggle-floating-panes:Toggle the visibility of all fdirectionloating panes in the current Tab, open one if none exist' \ 626 | 'close-pane:Close the focused pane' \ 627 | 'rename-pane:Renames the focused pane' \ 628 | 'undo-rename-pane:Remove a previously set pane name' \ 629 | 'go-to-next-tab:Go to the next tab' \ 630 | 'go-to-previous-tab:Go to the previous tab' \ 631 | 'close-tab:Close the current tab' \ 632 | 'go-to-tab:Go to tab with index \[index\]' \ 633 | 'go-to-tab-name:Go to tab with name \[name\]' \ 634 | 'rename-tab:Renames the focused pane' \ 635 | 'undo-rename-tab:Remove a previously set tab name' \ 636 | 'new-tab:Create a new tab, optionally with a specified tab layout and name' \ 637 | 'previous-swap-layout:' \ 638 | 'next-swap-layout:' \ 639 | 'query-tab-names:Query all tab names' \ 640 | 'help:Print this message or the help of the given subcommand(s)' \ 641 | ) 642 | _describe -t commands 'zellij action commands' commands "$@" 643 | } 644 | (( $+functions[_zellij__attach_commands] )) || 645 | _zellij__attach_commands() { 646 | local commands; commands=( 647 | 'options:Change the behaviour of zellij' \ 648 | 'help:Print this message or the help of the given subcommand(s)' \ 649 | ) 650 | _describe -t commands 'zellij attach commands' commands "$@" 651 | } 652 | (( $+functions[_zellij__action__clear_commands] )) || 653 | _zellij__action__clear_commands() { 654 | local commands; commands=() 655 | _describe -t commands 'zellij action clear commands' commands "$@" 656 | } 657 | (( $+functions[_zellij__action__close-pane_commands] )) || 658 | _zellij__action__close-pane_commands() { 659 | local commands; commands=() 660 | _describe -t commands 'zellij action close-pane commands' commands "$@" 661 | } 662 | (( $+functions[_zellij__action__close-tab_commands] )) || 663 | _zellij__action__close-tab_commands() { 664 | local commands; commands=() 665 | _describe -t commands 'zellij action close-tab commands' commands "$@" 666 | } 667 | (( $+functions[_zellij__convert-config_commands] )) || 668 | _zellij__convert-config_commands() { 669 | local commands; commands=() 670 | _describe -t commands 'zellij convert-config commands' commands "$@" 671 | } 672 | (( $+functions[_zellij__convert-layout_commands] )) || 673 | _zellij__convert-layout_commands() { 674 | local commands; commands=() 675 | _describe -t commands 'zellij convert-layout commands' commands "$@" 676 | } 677 | (( $+functions[_zellij__convert-theme_commands] )) || 678 | _zellij__convert-theme_commands() { 679 | local commands; commands=() 680 | _describe -t commands 'zellij convert-theme commands' commands "$@" 681 | } 682 | (( $+functions[_zellij__action__dump-screen_commands] )) || 683 | _zellij__action__dump-screen_commands() { 684 | local commands; commands=() 685 | _describe -t commands 'zellij action dump-screen commands' commands "$@" 686 | } 687 | (( $+functions[_zellij__action__edit_commands] )) || 688 | _zellij__action__edit_commands() { 689 | local commands; commands=() 690 | _describe -t commands 'zellij action edit commands' commands "$@" 691 | } 692 | (( $+functions[_zellij__edit_commands] )) || 693 | _zellij__edit_commands() { 694 | local commands; commands=() 695 | _describe -t commands 'zellij edit commands' commands "$@" 696 | } 697 | (( $+functions[_zellij__action__edit-scrollback_commands] )) || 698 | _zellij__action__edit-scrollback_commands() { 699 | local commands; commands=() 700 | _describe -t commands 'zellij action edit-scrollback commands' commands "$@" 701 | } 702 | (( $+functions[_zellij__action__focus-next-pane_commands] )) || 703 | _zellij__action__focus-next-pane_commands() { 704 | local commands; commands=() 705 | _describe -t commands 'zellij action focus-next-pane commands' commands "$@" 706 | } 707 | (( $+functions[_zellij__action__focus-previous-pane_commands] )) || 708 | _zellij__action__focus-previous-pane_commands() { 709 | local commands; commands=() 710 | _describe -t commands 'zellij action focus-previous-pane commands' commands "$@" 711 | } 712 | (( $+functions[_zellij__action__go-to-next-tab_commands] )) || 713 | _zellij__action__go-to-next-tab_commands() { 714 | local commands; commands=() 715 | _describe -t commands 'zellij action go-to-next-tab commands' commands "$@" 716 | } 717 | (( $+functions[_zellij__action__go-to-previous-tab_commands] )) || 718 | _zellij__action__go-to-previous-tab_commands() { 719 | local commands; commands=() 720 | _describe -t commands 'zellij action go-to-previous-tab commands' commands "$@" 721 | } 722 | (( $+functions[_zellij__action__go-to-tab_commands] )) || 723 | _zellij__action__go-to-tab_commands() { 724 | local commands; commands=() 725 | _describe -t commands 'zellij action go-to-tab commands' commands "$@" 726 | } 727 | (( $+functions[_zellij__action__go-to-tab-name_commands] )) || 728 | _zellij__action__go-to-tab-name_commands() { 729 | local commands; commands=() 730 | _describe -t commands 'zellij action go-to-tab-name commands' commands "$@" 731 | } 732 | (( $+functions[_zellij__action__half-page-scroll-down_commands] )) || 733 | _zellij__action__half-page-scroll-down_commands() { 734 | local commands; commands=() 735 | _describe -t commands 'zellij action half-page-scroll-down commands' commands "$@" 736 | } 737 | (( $+functions[_zellij__action__half-page-scroll-up_commands] )) || 738 | _zellij__action__half-page-scroll-up_commands() { 739 | local commands; commands=() 740 | _describe -t commands 'zellij action half-page-scroll-up commands' commands "$@" 741 | } 742 | (( $+functions[_zellij__action__help_commands] )) || 743 | _zellij__action__help_commands() { 744 | local commands; commands=() 745 | _describe -t commands 'zellij action help commands' commands "$@" 746 | } 747 | (( $+functions[_zellij__attach__help_commands] )) || 748 | _zellij__attach__help_commands() { 749 | local commands; commands=() 750 | _describe -t commands 'zellij attach help commands' commands "$@" 751 | } 752 | (( $+functions[_zellij__help_commands] )) || 753 | _zellij__help_commands() { 754 | local commands; commands=() 755 | _describe -t commands 'zellij help commands' commands "$@" 756 | } 757 | (( $+functions[_zellij__kill-all-sessions_commands] )) || 758 | _zellij__kill-all-sessions_commands() { 759 | local commands; commands=() 760 | _describe -t commands 'zellij kill-all-sessions commands' commands "$@" 761 | } 762 | (( $+functions[_zellij__kill-session_commands] )) || 763 | _zellij__kill-session_commands() { 764 | local commands; commands=() 765 | _describe -t commands 'zellij kill-session commands' commands "$@" 766 | } 767 | (( $+functions[_zellij__list-sessions_commands] )) || 768 | _zellij__list-sessions_commands() { 769 | local commands; commands=() 770 | _describe -t commands 'zellij list-sessions commands' commands "$@" 771 | } 772 | (( $+functions[_zellij__action__move-focus_commands] )) || 773 | _zellij__action__move-focus_commands() { 774 | local commands; commands=() 775 | _describe -t commands 'zellij action move-focus commands' commands "$@" 776 | } 777 | (( $+functions[_zellij__action__move-focus-or-tab_commands] )) || 778 | _zellij__action__move-focus-or-tab_commands() { 779 | local commands; commands=() 780 | _describe -t commands 'zellij action move-focus-or-tab commands' commands "$@" 781 | } 782 | (( $+functions[_zellij__action__move-pane_commands] )) || 783 | _zellij__action__move-pane_commands() { 784 | local commands; commands=() 785 | _describe -t commands 'zellij action move-pane commands' commands "$@" 786 | } 787 | (( $+functions[_zellij__action__move-pane-backwards_commands] )) || 788 | _zellij__action__move-pane-backwards_commands() { 789 | local commands; commands=() 790 | _describe -t commands 'zellij action move-pane-backwards commands' commands "$@" 791 | } 792 | (( $+functions[_zellij__action__new-pane_commands] )) || 793 | _zellij__action__new-pane_commands() { 794 | local commands; commands=() 795 | _describe -t commands 'zellij action new-pane commands' commands "$@" 796 | } 797 | (( $+functions[_zellij__action__new-tab_commands] )) || 798 | _zellij__action__new-tab_commands() { 799 | local commands; commands=() 800 | _describe -t commands 'zellij action new-tab commands' commands "$@" 801 | } 802 | (( $+functions[_zellij__action__next-swap-layout_commands] )) || 803 | _zellij__action__next-swap-layout_commands() { 804 | local commands; commands=() 805 | _describe -t commands 'zellij action next-swap-layout commands' commands "$@" 806 | } 807 | (( $+functions[_zellij__attach__options_commands] )) || 808 | _zellij__attach__options_commands() { 809 | local commands; commands=() 810 | _describe -t commands 'zellij attach options commands' commands "$@" 811 | } 812 | (( $+functions[_zellij__options_commands] )) || 813 | _zellij__options_commands() { 814 | local commands; commands=() 815 | _describe -t commands 'zellij options commands' commands "$@" 816 | } 817 | (( $+functions[_zellij__action__page-scroll-down_commands] )) || 818 | _zellij__action__page-scroll-down_commands() { 819 | local commands; commands=() 820 | _describe -t commands 'zellij action page-scroll-down commands' commands "$@" 821 | } 822 | (( $+functions[_zellij__action__page-scroll-up_commands] )) || 823 | _zellij__action__page-scroll-up_commands() { 824 | local commands; commands=() 825 | _describe -t commands 'zellij action page-scroll-up commands' commands "$@" 826 | } 827 | (( $+functions[_zellij__action__previous-swap-layout_commands] )) || 828 | _zellij__action__previous-swap-layout_commands() { 829 | local commands; commands=() 830 | _describe -t commands 'zellij action previous-swap-layout commands' commands "$@" 831 | } 832 | (( $+functions[_zellij__action__query-tab-names_commands] )) || 833 | _zellij__action__query-tab-names_commands() { 834 | local commands; commands=() 835 | _describe -t commands 'zellij action query-tab-names commands' commands "$@" 836 | } 837 | (( $+functions[_zellij__action__rename-pane_commands] )) || 838 | _zellij__action__rename-pane_commands() { 839 | local commands; commands=() 840 | _describe -t commands 'zellij action rename-pane commands' commands "$@" 841 | } 842 | (( $+functions[_zellij__action__rename-tab_commands] )) || 843 | _zellij__action__rename-tab_commands() { 844 | local commands; commands=() 845 | _describe -t commands 'zellij action rename-tab commands' commands "$@" 846 | } 847 | (( $+functions[_zellij__action__resize_commands] )) || 848 | _zellij__action__resize_commands() { 849 | local commands; commands=() 850 | _describe -t commands 'zellij action resize commands' commands "$@" 851 | } 852 | (( $+functions[_zellij__run_commands] )) || 853 | _zellij__run_commands() { 854 | local commands; commands=() 855 | _describe -t commands 'zellij run commands' commands "$@" 856 | } 857 | (( $+functions[_zellij__action__scroll-down_commands] )) || 858 | _zellij__action__scroll-down_commands() { 859 | local commands; commands=() 860 | _describe -t commands 'zellij action scroll-down commands' commands "$@" 861 | } 862 | (( $+functions[_zellij__action__scroll-to-bottom_commands] )) || 863 | _zellij__action__scroll-to-bottom_commands() { 864 | local commands; commands=() 865 | _describe -t commands 'zellij action scroll-to-bottom commands' commands "$@" 866 | } 867 | (( $+functions[_zellij__action__scroll-to-top_commands] )) || 868 | _zellij__action__scroll-to-top_commands() { 869 | local commands; commands=() 870 | _describe -t commands 'zellij action scroll-to-top commands' commands "$@" 871 | } 872 | (( $+functions[_zellij__action__scroll-up_commands] )) || 873 | _zellij__action__scroll-up_commands() { 874 | local commands; commands=() 875 | _describe -t commands 'zellij action scroll-up commands' commands "$@" 876 | } 877 | (( $+functions[_zellij__setup_commands] )) || 878 | _zellij__setup_commands() { 879 | local commands; commands=() 880 | _describe -t commands 'zellij setup commands' commands "$@" 881 | } 882 | (( $+functions[_zellij__action__switch-mode_commands] )) || 883 | _zellij__action__switch-mode_commands() { 884 | local commands; commands=() 885 | _describe -t commands 'zellij action switch-mode commands' commands "$@" 886 | } 887 | (( $+functions[_zellij__action__toggle-active-sync-tab_commands] )) || 888 | _zellij__action__toggle-active-sync-tab_commands() { 889 | local commands; commands=() 890 | _describe -t commands 'zellij action toggle-active-sync-tab commands' commands "$@" 891 | } 892 | (( $+functions[_zellij__action__toggle-floating-panes_commands] )) || 893 | _zellij__action__toggle-floating-panes_commands() { 894 | local commands; commands=() 895 | _describe -t commands 'zellij action toggle-floating-panes commands' commands "$@" 896 | } 897 | (( $+functions[_zellij__action__toggle-fullscreen_commands] )) || 898 | _zellij__action__toggle-fullscreen_commands() { 899 | local commands; commands=() 900 | _describe -t commands 'zellij action toggle-fullscreen commands' commands "$@" 901 | } 902 | (( $+functions[_zellij__action__toggle-pane-embed-or-floating_commands] )) || 903 | _zellij__action__toggle-pane-embed-or-floating_commands() { 904 | local commands; commands=() 905 | _describe -t commands 'zellij action toggle-pane-embed-or-floating commands' commands "$@" 906 | } 907 | (( $+functions[_zellij__action__toggle-pane-frames_commands] )) || 908 | _zellij__action__toggle-pane-frames_commands() { 909 | local commands; commands=() 910 | _describe -t commands 'zellij action toggle-pane-frames commands' commands "$@" 911 | } 912 | (( $+functions[_zellij__action__undo-rename-pane_commands] )) || 913 | _zellij__action__undo-rename-pane_commands() { 914 | local commands; commands=() 915 | _describe -t commands 'zellij action undo-rename-pane commands' commands "$@" 916 | } 917 | (( $+functions[_zellij__action__undo-rename-tab_commands] )) || 918 | _zellij__action__undo-rename-tab_commands() { 919 | local commands; commands=() 920 | _describe -t commands 'zellij action undo-rename-tab commands' commands "$@" 921 | } 922 | (( $+functions[_zellij__action__write_commands] )) || 923 | _zellij__action__write_commands() { 924 | local commands; commands=() 925 | _describe -t commands 'zellij action write commands' commands "$@" 926 | } 927 | (( $+functions[_zellij__action__write-chars_commands] )) || 928 | _zellij__action__write-chars_commands() { 929 | local commands; commands=() 930 | _describe -t commands 'zellij action write-chars commands' commands "$@" 931 | } 932 | 933 | _zellij "$@" 934 | function zr () { zellij run --name "$*" -- zsh -ic "$*";} 935 | function zrf () { zellij run --name "$*" --floating -- zsh -ic "$*";} 936 | function ze () { zellij edit "$*";} 937 | function zef () { zellij edit --floating "$*";} 938 | --------------------------------------------------------------------------------