From 8c5234c8004596b2cdefcd8afa1c1061774677d7 Mon Sep 17 00:00:00 2001 From: Dmitry <124861781+ada-dmitry@users.noreply.github.com> Date: Thu, 11 Dec 2025 12:09:10 +0300 Subject: [PATCH] Add comprehensive Zsh configuration files including aliases, completion settings, environment variables, custom functions, keybindings, shell options, plugins, and prompt configuration - Created aliases for navigation, file management, system commands, and Git operations - Configured completion settings with caching and custom formatting - Set environment variables for editor, history, and various programming languages - Implemented custom functions for navigation, file extraction, and process management - Defined keybindings for efficient command line navigation and editing - Established shell options for enhanced history management and command correction - Integrated various plugins for improved functionality, including FZF, autosuggestions, and syntax highlighting - Configured Powerlevel10k theme for a visually appealing prompt --- .gitignore | 1 - alacritty/.config/alacritty/alacritty.toml | 157 ++ nvim/.config/nvim/.stylua.toml | 6 + nvim/.config/nvim/LICENSE | 24 + nvim/.config/nvim/README.md | 9 + nvim/.config/nvim/init.lua | 37 + nvim/.config/nvim/lazy-lock.json | 29 + nvim/.config/nvim/lua/autocmds.lua | 1 + nvim/.config/nvim/lua/chadrc.lua | 24 + nvim/.config/nvim/lua/configs/conform.lua | 15 + nvim/.config/nvim/lua/configs/lazy.lua | 47 + nvim/.config/nvim/lua/configs/lspconfig.lua | 6 + nvim/.config/nvim/lua/mappings.lua | 10 + nvim/.config/nvim/lua/options.lua | 6 + nvim/.config/nvim/lua/plugins/init.lua | 28 + .../nvim/pack/github/start/copilot.vim | 1 + privoxy/.config/privoxy/config | 41 + zsh/.config/zsh/.p10k.zsh | 1844 +++++++++++++ zsh/.config/zsh/.zcompdump | 2395 +++++++++++++++++ zsh/.config/zsh/.zshrc | 45 + zsh/.config/zsh/config/.p10k.zsh | 269 ++ zsh/.config/zsh/config/aliases.zsh | 174 ++ zsh/.config/zsh/config/completion.zsh | 94 + zsh/.config/zsh/config/env.zsh | 79 + zsh/.config/zsh/config/functions.zsh | 181 ++ zsh/.config/zsh/config/keybindings.zsh | 87 + zsh/.config/zsh/config/options.zsh | 48 + zsh/.config/zsh/config/plugins.zsh | 100 + zsh/.config/zsh/config/prompt.zsh | 24 + 29 files changed, 5781 insertions(+), 1 deletion(-) create mode 100644 alacritty/.config/alacritty/alacritty.toml create mode 100644 nvim/.config/nvim/.stylua.toml create mode 100644 nvim/.config/nvim/LICENSE create mode 100644 nvim/.config/nvim/README.md create mode 100644 nvim/.config/nvim/init.lua create mode 100644 nvim/.config/nvim/lazy-lock.json create mode 100644 nvim/.config/nvim/lua/autocmds.lua create mode 100644 nvim/.config/nvim/lua/chadrc.lua create mode 100644 nvim/.config/nvim/lua/configs/conform.lua create mode 100644 nvim/.config/nvim/lua/configs/lazy.lua create mode 100644 nvim/.config/nvim/lua/configs/lspconfig.lua create mode 100644 nvim/.config/nvim/lua/mappings.lua create mode 100644 nvim/.config/nvim/lua/options.lua create mode 100644 nvim/.config/nvim/lua/plugins/init.lua create mode 160000 nvim/.config/nvim/pack/github/start/copilot.vim create mode 100644 privoxy/.config/privoxy/config create mode 100644 zsh/.config/zsh/.p10k.zsh create mode 100644 zsh/.config/zsh/.zcompdump create mode 100644 zsh/.config/zsh/.zshrc create mode 100644 zsh/.config/zsh/config/.p10k.zsh create mode 100644 zsh/.config/zsh/config/aliases.zsh create mode 100644 zsh/.config/zsh/config/completion.zsh create mode 100644 zsh/.config/zsh/config/env.zsh create mode 100644 zsh/.config/zsh/config/functions.zsh create mode 100644 zsh/.config/zsh/config/keybindings.zsh create mode 100644 zsh/.config/zsh/config/options.zsh create mode 100644 zsh/.config/zsh/config/plugins.zsh create mode 100644 zsh/.config/zsh/config/prompt.zsh diff --git a/.gitignore b/.gitignore index fe1fc80..3643f64 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,6 @@ # Config files */.env */.env.local -*/.config/ # Editor config */.vscode/ diff --git a/alacritty/.config/alacritty/alacritty.toml b/alacritty/.config/alacritty/alacritty.toml new file mode 100644 index 0000000..b2eb780 --- /dev/null +++ b/alacritty/.config/alacritty/alacritty.toml @@ -0,0 +1,157 @@ +# Alacritty configuration generated from kitty settings, with Nord color scheme +# See https://alacritty.org/config-alacritty.html (TOML format) + +[general] +live_config_reload = true + +[terminal.shell] +program = "/usr/bin/zsh" +args = ["-l", "-c", "tmux new-session -A -s main"] + +[window] +opacity = 0.85 +decorations = "Full" +startup_mode = "Maximized" +# dimensions are in columns/lines; omitted to use terminal defaults +# padding can be added if desired: +padding = { x = 10, y = 5 } + +[font] +size = 14.0 + +[font.normal] +family = "FiraCode Nerd Font Mono" +style = "Regular" + +[font.bold] +family = "FiraCode Nerd Font Mono" +style = "Bold" + +[font.italic] +family = "FiraCode Nerd Font Mono" +style = "Italic" + +[scrolling] +history = 10000 +multiplier = 5 + +[selection] +save_to_clipboard = true +semantic_escape_chars = "@-./_~?&=%+#" + +[mouse] +hide_when_typing = false + +[cursor] +# kitty: beam + blinking +blink_interval = 500 +thickness = 0.15 + +[cursor.style] +shape = "Beam" +blinking = "On" + +[bell] +# Disable visual bell by setting duration to 0; keep a valid easing to satisfy parser +animation = "EaseOutExpo" +duration = 0 + +# Nord color scheme +# https://www.nordtheme.com/ +[colors.primary] +background = "#2E3440" +foreground = "#D8DEE9" + +[colors.cursor] +text = "#2E3440" +cursor = "#D8DEE9" + +[colors.selection] +text = "#D8DEE9" +background = "#434C5E" + +[colors.normal] +black = "#3B4252" +red = "#BF616A" +green = "#A3BE8C" +yellow = "#EBCB8B" +blue = "#81A1C1" +magenta = "#B48EAD" +cyan = "#88C0D0" +white = "#E5E9F0" + +[colors.bright] +black = "#4C566A" +red = "#BF616A" +green = "#A3BE8C" +yellow = "#EBCB8B" +blue = "#81A1C1" +magenta = "#B48EAD" +cyan = "#8FBCBB" +white = "#ECEFF4" + +# Key bindings translated where possible +[[keyboard.bindings]] +key = "C" +mods = "Control|Shift" +action = "Copy" + +[[keyboard.bindings]] +key = "V" +mods = "Control|Shift" +action = "Paste" + +[[keyboard.bindings]] +key = "Enter" +mods = "Control|Shift" +action = "SpawnNewInstance" + +[[keyboard.bindings]] +key = "F11" +mods = "Control|Shift" +action = "ToggleFullscreen" + +[[keyboard.bindings]] +key = "Equals" +mods = "Control|Shift" +action = "IncreaseFontSize" + +[[keyboard.bindings]] +key = "Minus" +mods = "Control|Shift" +action = "DecreaseFontSize" + +[[keyboard.bindings]] +key = "Key0" +mods = "Control|Shift" +action = "ResetFontSize" + +[[keyboard.bindings]] +key = "Up" +mods = "Control|Shift" +action = "ScrollLineUp" + +[[keyboard.bindings]] +key = "Down" +mods = "Control|Shift" +action = "ScrollLineDown" + +[[keyboard.bindings]] +key = "PageUp" +mods = "Control|Shift" +action = "ScrollPageUp" + +[[keyboard.bindings]] +key = "PageDown" +mods = "Control|Shift" +action = "ScrollPageDown" + +[[keyboard.bindings]] +key = "Home" +mods = "Control|Shift" +action = "ScrollToTop" + +[[keyboard.bindings]] +key = "End" +mods = "Control|Shift" +action = "ScrollToBottom" diff --git a/nvim/.config/nvim/.stylua.toml b/nvim/.config/nvim/.stylua.toml new file mode 100644 index 0000000..ecb6dca --- /dev/null +++ b/nvim/.config/nvim/.stylua.toml @@ -0,0 +1,6 @@ +column_width = 120 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 2 +quote_style = "AutoPreferDouble" +call_parentheses = "None" diff --git a/nvim/.config/nvim/LICENSE b/nvim/.config/nvim/LICENSE new file mode 100644 index 0000000..fdddb29 --- /dev/null +++ b/nvim/.config/nvim/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/nvim/.config/nvim/README.md b/nvim/.config/nvim/README.md new file mode 100644 index 0000000..769fbdf --- /dev/null +++ b/nvim/.config/nvim/README.md @@ -0,0 +1,9 @@ +**This repo is supposed to be used as config by NvChad users!** + +- The main nvchad repo (NvChad/NvChad) is used as a plugin by this repo. +- So you just import its modules , like `require "nvchad.options" , require "nvchad.mappings"` +- So you can delete the .git from this repo ( when you clone it locally ) or fork it :) + +# Credits + +1) Lazyvim starter https://github.com/LazyVim/starter as nvchad's starter was inspired by Lazyvim's . It made a lot of things easier! diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua new file mode 100644 index 0000000..e861b68 --- /dev/null +++ b/nvim/.config/nvim/init.lua @@ -0,0 +1,37 @@ +vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/" +vim.g.mapleader = " " + +-- bootstrap lazy and all plugins +local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" + +if not vim.uv.fs_stat(lazypath) then + local repo = "https://github.com/folke/lazy.nvim.git" + vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath } +end + +vim.opt.rtp:prepend(lazypath) + +local lazy_config = require "configs.lazy" + +-- load plugins +require("lazy").setup({ + { + "NvChad/NvChad", + lazy = false, + branch = "v2.5", + import = "nvchad.plugins", + }, + + { import = "plugins" }, +}, lazy_config) + +-- load theme +dofile(vim.g.base46_cache .. "defaults") +dofile(vim.g.base46_cache .. "statusline") + +require "options" +require "autocmds" + +vim.schedule(function() + require "mappings" +end) diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json new file mode 100644 index 0000000..472117a --- /dev/null +++ b/nvim/.config/nvim/lazy-lock.json @@ -0,0 +1,29 @@ +{ + "LuaSnip": { "branch": "master", "commit": "3732756842a2f7e0e76a7b0487e9692072857277" }, + "NvChad": { "branch": "v2.5", "commit": "eb209a4a82aecabe609d8206b865e00a760fb644" }, + "base46": { "branch": "v3.0", "commit": "45b336ec52615dd1a3aa47848d894616dd6293a5" }, + "cmp-async-path": { "branch": "main", "commit": "b8aade3a0626f2bc1d3cd79affcd7da9f47f7ab1" }, + "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" }, + "cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" }, + "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, + "conform.nvim": { "branch": "master", "commit": "cde4da5c1083d3527776fee69536107d98dae6c9" }, + "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "gitsigns.nvim": { "branch": "main", "commit": "20ad4419564d6e22b189f6738116b38871082332" }, + "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, + "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, + "mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" }, + "menu": { "branch": "main", "commit": "7a0a4a2896b715c066cfbe320bdc048091874cc6" }, + "minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" }, + "nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" }, + "nvim-cmp": { "branch": "main", "commit": "d78fb3b64eedb701c9939f97361c06483af575e0" }, + "nvim-lspconfig": { "branch": "master", "commit": "2010fc6ec03e2da552b4886fceb2f7bc0fc2e9c0" }, + "nvim-tree.lua": { "branch": "master", "commit": "1eda2569394f866360e61f590f1796877388cb8a" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "telescope.nvim": { "branch": "master", "commit": "3a12a853ebf21ec1cce9a92290e3013f8ae75f02" }, + "ui": { "branch": "v3.0", "commit": "bea2af0a76c1098fac0988ad296aa028cad2a333" }, + "volt": { "branch": "main", "commit": "620de1321f275ec9d80028c68d1b88b409c0c8b1" }, + "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } +} diff --git a/nvim/.config/nvim/lua/autocmds.lua b/nvim/.config/nvim/lua/autocmds.lua new file mode 100644 index 0000000..d2db0bb --- /dev/null +++ b/nvim/.config/nvim/lua/autocmds.lua @@ -0,0 +1 @@ +require "nvchad.autocmds" diff --git a/nvim/.config/nvim/lua/chadrc.lua b/nvim/.config/nvim/lua/chadrc.lua new file mode 100644 index 0000000..9fb8e8b --- /dev/null +++ b/nvim/.config/nvim/lua/chadrc.lua @@ -0,0 +1,24 @@ +-- This file needs to have same structure as nvconfig.lua +-- https://github.com/NvChad/ui/blob/v3.0/lua/nvconfig.lua +-- Please read that file to know all available options :( + +---@type ChadrcConfig +local M = {} + +M.base46 = { + theme = "nord", + + -- hl_override = { + -- Comment = { italic = true }, + -- ["@comment"] = { italic = true }, + -- }, +} + +-- M.nvdash = { load_on_startup = true } +-- M.ui = { +-- tabufline = { +-- lazyload = false +-- } +-- } + +return M diff --git a/nvim/.config/nvim/lua/configs/conform.lua b/nvim/.config/nvim/lua/configs/conform.lua new file mode 100644 index 0000000..35ba6cf --- /dev/null +++ b/nvim/.config/nvim/lua/configs/conform.lua @@ -0,0 +1,15 @@ +local options = { + formatters_by_ft = { + lua = { "stylua" }, + -- css = { "prettier" }, + -- html = { "prettier" }, + }, + + -- format_on_save = { + -- -- These options will be passed to conform.format() + -- timeout_ms = 500, + -- lsp_fallback = true, + -- }, +} + +return options diff --git a/nvim/.config/nvim/lua/configs/lazy.lua b/nvim/.config/nvim/lua/configs/lazy.lua new file mode 100644 index 0000000..cd170bd --- /dev/null +++ b/nvim/.config/nvim/lua/configs/lazy.lua @@ -0,0 +1,47 @@ +return { + defaults = { lazy = true }, + install = { colorscheme = { "nvchad" } }, + + ui = { + icons = { + ft = "", + lazy = "󰂠 ", + loaded = "", + not_loaded = "", + }, + }, + + performance = { + rtp = { + disabled_plugins = { + "2html_plugin", + "tohtml", + "getscript", + "getscriptPlugin", + "gzip", + "logipat", + "netrw", + "netrwPlugin", + "netrwSettings", + "netrwFileHandlers", + "matchit", + "tar", + "tarPlugin", + "rrhelper", + "spellfile_plugin", + "vimball", + "vimballPlugin", + "zip", + "zipPlugin", + "tutor", + "rplugin", + "syntax", + "synmenu", + "optwin", + "compiler", + "bugreport", + "ftplugin", + }, + }, + }, +} diff --git a/nvim/.config/nvim/lua/configs/lspconfig.lua b/nvim/.config/nvim/lua/configs/lspconfig.lua new file mode 100644 index 0000000..20a0cce --- /dev/null +++ b/nvim/.config/nvim/lua/configs/lspconfig.lua @@ -0,0 +1,6 @@ +require("nvchad.configs.lspconfig").defaults() + +local servers = { "html", "cssls" } +vim.lsp.enable(servers) + +-- read :h vim.lsp.config for changing options of lsp servers diff --git a/nvim/.config/nvim/lua/mappings.lua b/nvim/.config/nvim/lua/mappings.lua new file mode 100644 index 0000000..783b78f --- /dev/null +++ b/nvim/.config/nvim/lua/mappings.lua @@ -0,0 +1,10 @@ +require "nvchad.mappings" + +-- add yours here + +local map = vim.keymap.set + +map("n", ";", ":", { desc = "CMD enter command mode" }) +map("i", "jk", "") + +-- map({ "n", "i", "v" }, "", " w ") diff --git a/nvim/.config/nvim/lua/options.lua b/nvim/.config/nvim/lua/options.lua new file mode 100644 index 0000000..738f20b --- /dev/null +++ b/nvim/.config/nvim/lua/options.lua @@ -0,0 +1,6 @@ +require "nvchad.options" + +-- add yours here! + +-- local o = vim.o +-- o.cursorlineopt ='both' -- to enable cursorline! diff --git a/nvim/.config/nvim/lua/plugins/init.lua b/nvim/.config/nvim/lua/plugins/init.lua new file mode 100644 index 0000000..d028655 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/init.lua @@ -0,0 +1,28 @@ +return { + { + "stevearc/conform.nvim", + -- event = 'BufWritePre', -- uncomment for format on save + opts = require "configs.conform", + }, + + -- These are some examples, uncomment them if you want to see them work! + { + "neovim/nvim-lspconfig", + config = function() + require "configs.lspconfig" + end, + }, + + -- test new blink + -- { import = "nvchad.blink.lazyspec" }, + + -- { + -- "nvim-treesitter/nvim-treesitter", + -- opts = { + -- ensure_installed = { + -- "vim", "lua", "vimdoc", + -- "html", "css" + -- }, + -- }, + -- }, +} diff --git a/nvim/.config/nvim/pack/github/start/copilot.vim b/nvim/.config/nvim/pack/github/start/copilot.vim new file mode 160000 index 0000000..da369d9 --- /dev/null +++ b/nvim/.config/nvim/pack/github/start/copilot.vim @@ -0,0 +1 @@ +Subproject commit da369d90cfd6c396b1d0ec259836a1c7222fb2ea diff --git a/privoxy/.config/privoxy/config b/privoxy/.config/privoxy/config new file mode 100644 index 0000000..5039034 --- /dev/null +++ b/privoxy/.config/privoxy/config @@ -0,0 +1,41 @@ +# Privoxy Configuration +# Minimal config with only active settings + +# Configuration directories +confdir /etc/privoxy +logdir /var/log/privoxy + +# Actions and filters +actionsfile match-all.action +actionsfile default.action +actionsfile user.action + +filterfile default.filter +filterfile user.filter + +# Logging +logfile logfile + +# Network settings +listen-address 127.0.0.1:8118 + +# SOCKS5 proxy forwarding +forward-socks5 / ada_proxy:5i3BSdxgE1FBh7kI@150.241.116.110:40724 . + +# Security settings +toggle 1 +enable-remote-toggle 0 +enable-remote-http-toggle 0 +enable-edit-actions 0 +enforce-blocks 0 +buffer-limit 4096 +enable-proxy-authentication-forwarding 0 + +# Connection settings +forwarded-connect-retries 0 +accept-intercepted-requests 0 +allow-cgi-request-crunching 0 +split-large-forms 0 +keep-alive-timeout 5 +tolerate-pipelining 1 +socket-timeout 300 diff --git a/zsh/.config/zsh/.p10k.zsh b/zsh/.config/zsh/.p10k.zsh new file mode 100644 index 0000000..e0f86f7 --- /dev/null +++ b/zsh/.config/zsh/.p10k.zsh @@ -0,0 +1,1844 @@ +# Generated by Powerlevel10k configuration wizard on 2025-12-07 at 18:23 MSK. +# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 49619. +# Wizard options: nerdfont-v3 + powerline, small icons, rainbow, unicode, +# angled separators, sharp heads, sharp tails, 2 lines, disconnected, left frame, +# lightest-ornaments, sparse, many icons, fluent, transient_prompt, +# instant_prompt=verbose. +# Type `p10k configure` to generate another config. +# +# Config for Powerlevel10k with powerline prompt style with colorful background. +# Type `p10k configure` to generate your own config based on it. +# +# Tip: Looking for a nice color? Here's a one-liner to print colormap. +# +# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done + +# Temporarily change options. +'builtin' 'local' '-a' 'p10k_config_opts' +[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') +[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') +[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') +'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' + +() { + emulate -L zsh -o extended_glob + + # Unset all configuration options. This allows you to apply configuration changes without + # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. + unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' + + # Zsh >= 5.1 is required. + [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return + + # The list of segments shown on the left. Fill it with the most important segments. + typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( + # =========================[ Line #1 ]========================= + os_icon # os identifier + dir # current directory + vcs # git status + # =========================[ Line #2 ]========================= + newline # \n + # prompt_char # prompt symbol + ) + + # The list of segments shown on the right. Fill it with less important segments. + # Right prompt on the last prompt line (where you are typing your commands) gets + # automatically hidden when the input line reaches it. Right prompt above the + # last prompt line gets hidden if it would overlap with left prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( + # =========================[ Line #1 ]========================= + status # exit code of the last command + command_execution_time # duration of the last command + background_jobs # presence of background jobs + direnv # direnv status (https://direnv.net/) + asdf # asdf version manager (https://github.com/asdf-vm/asdf) + virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) + anaconda # conda environment (https://conda.io/) + pyenv # python environment (https://github.com/pyenv/pyenv) + goenv # go environment (https://github.com/syndbg/goenv) + nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) + nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) + nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) + # node_version # node.js version + # go_version # go version (https://golang.org) + # rust_version # rustc version (https://www.rust-lang.org) + # dotnet_version # .NET version (https://dotnet.microsoft.com) + # php_version # php version (https://www.php.net/) + # laravel_version # laravel php framework version (https://laravel.com/) + # java_version # java version (https://www.java.com/) + # package # name@version from package.json (https://docs.npmjs.com/files/package.json) + rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) + rvm # ruby version from rvm (https://rvm.io) + fvm # flutter version management (https://github.com/leoafarias/fvm) + luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) + jenv # java version from jenv (https://github.com/jenv/jenv) + plenv # perl version from plenv (https://github.com/tokuhirom/plenv) + perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew) + phpenv # php version from phpenv (https://github.com/phpenv/phpenv) + scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) + haskell_stack # haskell version from stack (https://haskellstack.org/) + kubecontext # current kubernetes context (https://kubernetes.io/) + terraform # terraform workspace (https://www.terraform.io) + # terraform_version # terraform version (https://www.terraform.io) + aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) + aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) + azure # azure account name (https://docs.microsoft.com/en-us/cli/azure) + gcloud # google cloud cli account and project (https://cloud.google.com/) + google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) + toolbox # toolbox name (https://github.com/containers/toolbox) + context # user@hostname + nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) + ranger # ranger shell (https://github.com/ranger/ranger) + yazi # yazi shell (https://github.com/sxyazi/yazi) + nnn # nnn shell (https://github.com/jarun/nnn) + lf # lf shell (https://github.com/gokcehan/lf) + xplr # xplr shell (https://github.com/sayanarijit/xplr) + vim_shell # vim shell indicator (:sh) + midnight_commander # midnight commander shell (https://midnight-commander.org/) + nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) + chezmoi_shell # chezmoi shell (https://www.chezmoi.io/) + vi_mode # vi mode (you don't need this if you've enabled prompt_char) + # vpn_ip # virtual private network indicator + # load # CPU load + # disk_usage # disk usage + # ram # free RAM + # swap # used swap + todo # todo items (https://github.com/todotxt/todo.txt-cli) + timewarrior # timewarrior tracking status (https://timewarrior.net/) + taskwarrior # taskwarrior task count (https://taskwarrior.org/) + per_directory_history # Oh My Zsh per-directory-history local/global indicator + # cpu_arch # CPU architecture + # time # current time + # =========================[ Line #2 ]========================= + newline + # ip # ip address and bandwidth usage for a specified network interface + # public_ip # public IP address + # proxy # system-wide http/https/ftp proxy + # battery # internal battery + # wifi # wifi speed + # example # example user-defined segment (see prompt_example function below) + ) + + # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you. + typeset -g POWERLEVEL9K_MODE=nerdfont-v3 + # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid + # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added. + typeset -g POWERLEVEL9K_ICON_PADDING=none + + # When set to true, icons appear before content on both sides of the prompt. When set + # to false, icons go after content. If empty or not set, icons go before content in the left + # prompt and after content in the right prompt. + # + # You can also override it for a specific segment: + # + # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false + # + # Or for a specific segment in specific state: + # + # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false + typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT= + + # Add an empty line before each prompt. + typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true + + # Connect left prompt lines with these symbols. You'll probably want to use the same color + # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%244F╭─' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%244F├─' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%244F╰─' + # Connect right prompt lines with these symbols. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX= + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX= + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX= + + # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or + # '─'. The last two make it easier to see the alignment between left and right prompt and to + # separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false + # for more compact prompt if using this option. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND= + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND= + if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then + # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE + # ornaments defined above. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=244 + # Start filler from the edge of the screen if there are no left segments on the first line. + typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' + # End filler on the edge of the screen if there are no right segments on the first line. + typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}' + fi + + # Separator between same-color segments on the left. + typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\uE0B1' + # Separator between same-color segments on the right. + typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\uE0B3' + # Separator between different-color segments on the left. + typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0' + # Separator between different-color segments on the right. + typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2' + # To remove a separator between two segments, add "_joined" to the second segment name. + # For example: POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(os_icon context_joined) + + # The right end of left prompt. + typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0' + # The left end of right prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B2' + # The left end of left prompt. + typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B2' + # The right end of right prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0' + # Left prompt terminator for lines without any segments. + typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= + + #################################[ os_icon: os identifier ]################################## + # OS identifier color. + typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=232 + typeset -g POWERLEVEL9K_OS_ICON_BACKGROUND=7 + # Custom icon. + # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐' + + ################################[ prompt_char: prompt symbol ]################################ + # Transparent background. + typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND= + # Green prompt symbol if the last command succeeded. + typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76 + # Red prompt symbol if the last command failed. + typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196 + # Default prompt symbol. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯' + # Prompt symbol in command vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮' + # Prompt symbol in visual vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V' + # Prompt symbol in overwrite vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶' + typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true + # No line terminator if prompt_char is the last segment. + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= + # No line introducer if prompt_char is the first segment. + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= + # No surrounding whitespace. + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE= + + ##################################[ dir: current directory ]################################## + # Current directory background color. + typeset -g POWERLEVEL9K_DIR_BACKGROUND=4 + # Default current directory foreground color. + typeset -g POWERLEVEL9K_DIR_FOREGROUND=254 + # If directory is too long, shorten some of its segments to the shortest possible unique + # prefix. The shortened directory can be tab-completed to the original. + typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique + # Replace removed segment suffixes with this symbol. + typeset -g POWERLEVEL9K_SHORTEN_DELIMITER= + # Color of the shortened directory segments. + typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=250 + # Color of the anchor directory segments. Anchor segments are never shortened. The first + # segment is always an anchor. + typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=255 + # Display anchor directory segments in bold. + typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true + # Don't shorten directories that contain any of these files. They are anchors. + local anchor_files=( + .bzr + .citc + .git + .hg + .node-version + .python-version + .go-version + .ruby-version + .lua-version + .java-version + .perl-version + .php-version + .tool-versions + .mise.toml + .shorten_folder_marker + .svn + .terraform + CVS + Cargo.toml + composer.json + go.mod + package.json + stack.yaml + ) + typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})" + # If set to "first" ("last"), remove everything before the first (last) subdirectory that contains + # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is + # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first) + # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers + # and other directories don't. + # + # Optionally, "first" and "last" can be followed by ":" where is an integer. + # This moves the truncation point to the right (positive offset) or to the left (negative offset) + # relative to the marker. Plain "first" and "last" are equivalent to "first:0" and "last:0" + # respectively. + typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false + # Don't shorten this many last directory segments. They are anchors. + typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 + # Shorten directory if it's longer than this even if there is space for it. The value can + # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty, + # directory will be shortened only when prompt doesn't fit or when other parameters demand it + # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below). + # If set to `0`, directory will always be shortened to its minimum length. + typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80 + # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this + # many columns for typing commands. + typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40 + # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least + # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands. + typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50 + # If set to true, embed a hyperlink into the directory. Useful for quickly + # opening a directory in the file manager simply by clicking the link. + # Can also be handy when the directory is shortened, as it allows you to see + # the full directory that was used in previous commands. + typeset -g POWERLEVEL9K_DIR_HYPERLINK=false + + # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON + # and POWERLEVEL9K_DIR_CLASSES below. + typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3 + + # The default icon shown next to non-writable and non-existent directories when + # POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3. + # typeset -g POWERLEVEL9K_LOCK_ICON='⭐' + + # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different + # directories. It must be an array with 3 * N elements. Each triplet consists of: + # + # 1. A pattern against which the current directory ($PWD) is matched. Matching is done with + # extended_glob option enabled. + # 2. Directory class for the purpose of styling. + # 3. An empty string. + # + # Triplets are tried in order. The first triplet whose pattern matches $PWD wins. + # + # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories + # acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_DIR_CLASSES=( + # '~/work(|/*)' WORK '' + # '~(|/*)' HOME '' + # '*' DEFAULT '') + # + # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one + # of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or + # WORK_NON_EXISTENT. + # + # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an + # option to define custom colors and icons for different directory classes. + # + # # Styling for WORK. + # typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_BACKGROUND=4 + # typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=254 + # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=250 + # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=255 + # + # # Styling for WORK_NOT_WRITABLE. + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_BACKGROUND=4 + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=254 + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=250 + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=255 + # + # # Styling for WORK_NON_EXISTENT. + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_BACKGROUND=4 + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=254 + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=250 + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=255 + # + # If a styling parameter isn't explicitly defined for some class, it falls back to the classless + # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls + # back to POWERLEVEL9K_DIR_FOREGROUND. + # + # typeset -g POWERLEVEL9K_DIR_CLASSES=() + + # Custom prefix. + # typeset -g POWERLEVEL9K_DIR_PREFIX='in ' + + #####################################[ vcs: git status ]###################################### + # Version control background colors. + typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2 + typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3 + typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2 + typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3 + typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8 + + # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon. + typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 ' + + # Untracked files icon. It's really a question mark, your font isn't broken. + # Change the value of this parameter to show a different icon. + typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?' + + # Formatter for Git status. + # + # Example output: master wip ⇣42⇡42 *42 merge ~42 +42 !42 ?42. + # + # You can edit the function to customize how Git status looks. + # + # VCS_STATUS_* parameters are set by gitstatus plugin. See reference: + # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh. + function my_git_formatter() { + emulate -L zsh + + if [[ -n $P9K_CONTENT ]]; then + # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from + # gitstatus plugin). VCS_STATUS_* parameters are not available in this case. + typeset -g my_git_format=$P9K_CONTENT + return + fi + + # Styling for different parts of Git status. + local meta='%7F' # white foreground + local clean='%0F' # black foreground + local modified='%0F' # black foreground + local untracked='%0F' # black foreground + local conflicted='%1F' # red foreground + + local res + + if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then + local branch=${(V)VCS_STATUS_LOCAL_BRANCH} + # If local branch name is at most 32 characters long, show it in full. + # Otherwise show the first 12 … the last 12. + # Tip: To always show local branch name in full without truncation, delete the next line. + (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line + res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}" + fi + + if [[ -n $VCS_STATUS_TAG + # Show tag only if not on a branch. + # Tip: To always show tag, delete the next line. + && -z $VCS_STATUS_LOCAL_BRANCH # <-- this line + ]]; then + local tag=${(V)VCS_STATUS_TAG} + # If tag name is at most 32 characters long, show it in full. + # Otherwise show the first 12 … the last 12. + # Tip: To always show tag name in full without truncation, delete the next line. + (( $#tag > 32 )) && tag[13,-13]="…" # <-- this line + res+="${meta}#${clean}${tag//\%/%%}" + fi + + # Display the current Git commit if there is no branch and no tag. + # Tip: To always display the current Git commit, delete the next line. + [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] && # <-- this line + res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}" + + # Show tracking branch name if it differs from local branch. + if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then + res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" + fi + + # Display "wip" if the latest commit's summary contains "wip" or "WIP". + if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then + res+=" ${modified}wip" + fi + + if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then + # ⇣42 if behind the remote. + (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}" + # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42. + (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " + (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}" + elif [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then + # Tip: Uncomment the next line to display '=' if up to date with the remote. + # res+=" ${clean}=" + fi + + # ⇠42 if behind the push remote. + (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}" + (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " + # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42. + (( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}" + # *42 if have stashes. + (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}" + # 'merge' if the repo is in an unusual state. + [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}" + # ~42 if have merge conflicts. + (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}" + # +42 if have staged changes. + (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}" + # !42 if have unstaged changes. + (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}" + # ?42 if have untracked files. It's really a question mark, your font isn't broken. + # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon. + # Remove the next line if you don't want to see untracked files at all. + (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}" + # "─" if the number of unstaged files is unknown. This can happen due to + # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower + # than the number of files in the Git index, or due to bash.showDirtyState being set to false + # in the repository config. The number of staged and untracked files may also be unknown + # in this case. + (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}─" + + typeset -g my_git_format=$res + } + functions -M my_git_formatter 2>/dev/null + + # Don't count the number of unstaged, untracked and conflicted files in Git repositories with + # more than this many files in the index. Negative value means infinity. + # + # If you are working in Git repositories with tens of millions of files and seeing performance + # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output + # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's + # config: `git config bash.showDirtyState false`. + typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1 + + # Don't show Git status in prompt for repositories whose workdir matches this pattern. + # For example, if set to '~', the Git repository at $HOME/.git will be ignored. + # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'. + typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~' + + # Disable the default Git status formatting. + typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true + # Install our own Git status formatter. + typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter()))+${my_git_format}}' + # Enable counters for staged, unstaged, etc. + typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 + + # Custom icon. + # typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_VCS_PREFIX='on ' + + # Show status of repositories of these types. You can add svn and/or hg if you are + # using them. If you do, your prompt may become slow even when your current directory + # isn't in an svn or hg repository. + typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) + + ##########################[ status: exit code of the last command ]########################### + # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and + # style them independently from the regular OK and ERROR state. + typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true + + # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as + # it will signify success by turning green. + typeset -g POWERLEVEL9K_STATUS_OK=true + typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔' + typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2 + typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0 + + # Status when some part of a pipe command fails but the overall exit status is zero. It may look + # like this: 1|0. + typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true + typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔' + typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2 + typeset -g POWERLEVEL9K_STATUS_OK_PIPE_BACKGROUND=0 + + # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as + # it will signify error by turning red. + typeset -g POWERLEVEL9K_STATUS_ERROR=true + typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘' + typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=3 + typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=1 + + # Status when the last command was terminated by a signal. + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true + # Use terse signal names: "INT" instead of "SIGINT(2)". + typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘' + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=3 + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_BACKGROUND=1 + + # Status when some part of a pipe command fails and the overall exit status is also non-zero. + # It may look like this: 1|0. + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘' + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=3 + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_BACKGROUND=1 + + ###################[ command_execution_time: duration of the last command ]################### + # Execution time color. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=0 + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=3 + # Show duration of the last command if takes at least this many seconds. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3 + # Show this many fractional digits. Zero means round to seconds. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 + # Duration format: 1d 2h 3m 4s. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s' + # Custom icon. + # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took ' + + #######################[ background_jobs: presence of background jobs ]####################### + # Background jobs color. + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=6 + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=0 + # Don't show the number of background jobs. + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false + # Custom icon. + # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ direnv: direnv status (https://direnv.net/) ]######################## + # Direnv color. + typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=3 + typeset -g POWERLEVEL9K_DIRENV_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]############### + # Default asdf color. Only used to display tools for which there is no color override (see below). + # Tip: Override these parameters for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND and + # POWERLEVEL9K_ASDF_${TOOL}_BACKGROUND. + typeset -g POWERLEVEL9K_ASDF_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_BACKGROUND=7 + + # There are four parameters that can be used to hide asdf tools. Each parameter describes + # conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at + # least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to + # hide a tool, it gets shown. + # + # Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and + # POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands: + # + # asdf local python 3.8.1 + # asdf global python 3.8.1 + # + # After running both commands the current python version is 3.8.1 and its source is "local" as + # it takes precedence over "global". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false, + # it'll hide python version in this case because 3.8.1 is the same as the global version. + # POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't + # contain "local". + + # Hide tool versions that don't come from one of these sources. + # + # Available sources: + # + # - shell `asdf current` says "set by ASDF_${TOOL}_VERSION environment variable" + # - local `asdf current` says "set by /some/not/home/directory/file" + # - global `asdf current` says "set by /home/username/file" + # + # Note: If this parameter is set to (shell local global), it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES. + typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global) + + # If set to false, hide tool versions that are the same as global. + # + # Note: The name of this parameter doesn't reflect its meaning at all. + # Note: If this parameter is set to true, it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW. + typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false + + # If set to false, hide tool versions that are equal to "system". + # + # Note: If this parameter is set to true, it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM. + typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true + + # If set to non-empty value, hide tools unless there is a file matching the specified file pattern + # in the current directory, or its parent directory, or its grandparent directory, and so on. + # + # Note: If this parameter is set to empty value, it won't hide tools. + # Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB. + # + # Example: Hide nodejs version when there is no package.json and no *.js files in the current + # directory, in `..`, in `../..` and so on. + # + # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json' + typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB= + + # Ruby version from asdf. + typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_RUBY_BACKGROUND=1 + # typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Python version from asdf. + typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_PYTHON_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Go version from asdf. + typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_GOLANG_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Node.js version from asdf. + typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_NODEJS_BACKGROUND=2 + # typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Rust version from asdf. + typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_RUST_BACKGROUND=208 + # typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar' + + # .NET Core version from asdf. + typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_BACKGROUND=5 + # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Flutter version from asdf. + typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_FLUTTER_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Lua version from asdf. + typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_LUA_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Java version from asdf. + typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=1 + typeset -g POWERLEVEL9K_ASDF_JAVA_BACKGROUND=7 + # typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Perl version from asdf. + typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_PERL_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Erlang version from asdf. + typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_ERLANG_BACKGROUND=1 + # typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Elixir version from asdf. + typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_ELIXIR_BACKGROUND=5 + # typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Postgres version from asdf. + typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_POSTGRES_BACKGROUND=6 + # typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar' + + # PHP version from asdf. + typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_PHP_BACKGROUND=5 + # typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Haskell version from asdf. + typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_HASKELL_BACKGROUND=3 + # typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Julia version from asdf. + typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_JULIA_BACKGROUND=2 + # typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar' + + ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]########### + # NordVPN connection indicator color. + typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=7 + typeset -g POWERLEVEL9K_NORDVPN_BACKGROUND=4 + # Hide NordVPN connection indicator when not connected. + typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION= + typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION= + # Custom icon. + # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]################## + # Ranger shell color. + typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3 + typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ####################[ yazi: yazi shell (https://github.com/sxyazi/yazi) ]##################### + # Yazi shell color. + typeset -g POWERLEVEL9K_YAZI_FOREGROUND=3 + typeset -g POWERLEVEL9K_YAZI_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]####################### + # Nnn shell color. + typeset -g POWERLEVEL9K_NNN_FOREGROUND=0 + typeset -g POWERLEVEL9K_NNN_BACKGROUND=6 + # Custom icon. + # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################[ lf: lf shell (https://github.com/gokcehan/lf) ]####################### + # lf shell color. + typeset -g POWERLEVEL9K_LF_FOREGROUND=0 + typeset -g POWERLEVEL9K_LF_BACKGROUND=6 + # Custom icon. + # typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]################## + # xplr shell color. + typeset -g POWERLEVEL9K_XPLR_FOREGROUND=0 + typeset -g POWERLEVEL9K_XPLR_BACKGROUND=6 + # Custom icon. + # typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########################[ vim_shell: vim shell indicator (:sh) ]########################### + # Vim shell indicator color. + typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=0 + typeset -g POWERLEVEL9K_VIM_SHELL_BACKGROUND=2 + # Custom icon. + # typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]###### + # Midnight Commander shell color. + typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=3 + typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]## + # Nix shell color. + typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=0 + typeset -g POWERLEVEL9K_NIX_SHELL_BACKGROUND=4 + + # Display the icon of nix_shell if PATH contains a subdirectory of /nix/store. + # typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false + + # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line. + # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION= + + # Custom icon. + # typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]################## + # chezmoi shell color. + typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=0 + typeset -g POWERLEVEL9K_CHEZMOI_SHELL_BACKGROUND=4 + # Custom icon. + # typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################################[ disk_usage: disk usage ]################################## + # Colors for different levels of disk usage. + typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=3 + typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND=0 + typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=0 + typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND=3 + typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=7 + typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND=1 + # Thresholds for different levels of disk usage (percentage points). + typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90 + typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95 + # If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent. + typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false + # Custom icon. + # typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ vi_mode: vi mode (you don't need this if you've enabled prompt_char) ]########### + # Foreground color. + typeset -g POWERLEVEL9K_VI_MODE_FOREGROUND=0 + # Text and color for normal (a.k.a. command) vi mode. + typeset -g POWERLEVEL9K_VI_COMMAND_MODE_STRING=NORMAL + typeset -g POWERLEVEL9K_VI_MODE_NORMAL_BACKGROUND=2 + # Text and color for visual vi mode. + typeset -g POWERLEVEL9K_VI_VISUAL_MODE_STRING=VISUAL + typeset -g POWERLEVEL9K_VI_MODE_VISUAL_BACKGROUND=4 + # Text and color for overtype (a.k.a. overwrite and replace) vi mode. + typeset -g POWERLEVEL9K_VI_OVERWRITE_MODE_STRING=OVERTYPE + typeset -g POWERLEVEL9K_VI_MODE_OVERWRITE_BACKGROUND=3 + # Text and color for insert vi mode. + typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING= + typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=8 + # Custom icon. + # typeset -g POWERLEVEL9K_VI_MODE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################################[ ram: free RAM ]####################################### + # RAM color. + typeset -g POWERLEVEL9K_RAM_FOREGROUND=0 + typeset -g POWERLEVEL9K_RAM_BACKGROUND=3 + # Custom icon. + # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################################[ swap: used swap ]###################################### + # Swap color. + typeset -g POWERLEVEL9K_SWAP_FOREGROUND=0 + typeset -g POWERLEVEL9K_SWAP_BACKGROUND=3 + # Custom icon. + # typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################################[ load: CPU load ]###################################### + # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15. + typeset -g POWERLEVEL9K_LOAD_WHICH=5 + # Load color when load is under 50%. + typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=0 + typeset -g POWERLEVEL9K_LOAD_NORMAL_BACKGROUND=2 + # Load color when load is between 50% and 70%. + typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=0 + typeset -g POWERLEVEL9K_LOAD_WARNING_BACKGROUND=3 + # Load color when load is over 70%. + typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=0 + typeset -g POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND=1 + # Custom icon. + # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################ + # Todo color. + typeset -g POWERLEVEL9K_TODO_FOREGROUND=0 + typeset -g POWERLEVEL9K_TODO_BACKGROUND=8 + # Hide todo when the total number of tasks is zero. + typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true + # Hide todo when the number of tasks after filtering is zero. + typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false + + # Todo format. The following parameters are available within the expansion. + # + # - P9K_TODO_TOTAL_TASK_COUNT The total number of tasks. + # - P9K_TODO_FILTERED_TASK_COUNT The number of tasks after filtering. + # + # These variables correspond to the last line of the output of `todo.sh -p ls`: + # + # TODO: 24 of 42 tasks shown + # + # Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT. + # + # typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT' + + # Custom icon. + # typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############ + # Timewarrior color. + typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=255 + typeset -g POWERLEVEL9K_TIMEWARRIOR_BACKGROUND=8 + + # If the tracked task is longer than 24 characters, truncate and append "…". + # Tip: To always display tasks without truncation, delete the following parameter. + # Tip: To hide task names and display just the icon when time tracking is enabled, set the + # value of the following parameter to "". + typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…}' + + # Custom icon. + # typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]############## + # Taskwarrior color. + typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=0 + typeset -g POWERLEVEL9K_TASKWARRIOR_BACKGROUND=6 + + # Taskwarrior segment format. The following parameters are available within the expansion. + # + # - P9K_TASKWARRIOR_PENDING_COUNT The number of pending tasks: `task +PENDING count`. + # - P9K_TASKWARRIOR_OVERDUE_COUNT The number of overdue tasks: `task +OVERDUE count`. + # + # Zero values are represented as empty parameters. + # + # The default format: + # + # '${P9K_TASKWARRIOR_OVERDUE_COUNT:+"!$P9K_TASKWARRIOR_OVERDUE_COUNT/"}$P9K_TASKWARRIOR_PENDING_COUNT' + # + # typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT' + + # Custom icon. + # typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]####### + # Color when using local/global history. + typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=0 + typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_BACKGROUND=5 + typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=0 + typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_BACKGROUND=3 + + # Tip: Uncomment the next two lines to hide "local"/"global" text and leave just the icon. + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_CONTENT_EXPANSION='' + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_CONTENT_EXPANSION='' + + # Custom icon. + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################################[ cpu_arch: CPU architecture ]################################ + # CPU architecture color. + typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=0 + typeset -g POWERLEVEL9K_CPU_ARCH_BACKGROUND=3 + + # Hide the segment when on a specific CPU architecture. + # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION= + # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION= + + # Custom icon. + # typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################################[ context: user@hostname ]################################## + # Context color when running with privileges. + typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1 + typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=0 + # Context color in SSH without privileges. + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=3 + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_BACKGROUND=0 + # Default context color (no privileges, no SSH). + typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=3 + typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=0 + + # Context format when running with privileges: user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m' + # Context format when in SSH without privileges: user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m' + # Default context format (no privileges, no SSH): user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m' + + # Don't show context unless running with privileges or in SSH. + # Tip: Remove the next line to always show context. + typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION= + + # Custom icon. + # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with ' + + ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]### + # Python virtual environment color. + typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=4 + # Don't show Python version next to the virtual environment name. + typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false + # If set to "false", won't show virtualenv if pyenv is already shown. + # If set to "if-different", won't show virtualenv if it's the same as pyenv. + typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false + # Separate environment name from Python version only with a space. + typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER= + # Custom icon. + # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################[ anaconda: conda environment (https://conda.io/) ]###################### + # Anaconda environment color. + typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=0 + typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=4 + + # Anaconda segment format. The following parameters are available within the expansion. + # + # - CONDA_PREFIX Absolute path to the active Anaconda/Miniconda environment. + # - CONDA_DEFAULT_ENV Name of the active Anaconda/Miniconda environment. + # - CONDA_PROMPT_MODIFIER Configurable prompt modifier (see below). + # - P9K_ANACONDA_PYTHON_VERSION Current python version (python --version). + # + # CONDA_PROMPT_MODIFIER can be configured with the following command: + # + # conda config --set env_prompt '({default_env}) ' + # + # The last argument is a Python format string that can use the following variables: + # + # - prefix The same as CONDA_PREFIX. + # - default_env The same as CONDA_DEFAULT_ENV. + # - name The last segment of CONDA_PREFIX. + # - stacked_env Comma-separated list of names in the environment stack. The first element is + # always the same as default_env. + # + # Note: '({default_env}) ' is the default value of env_prompt. + # + # The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER + # without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former + # is empty. + typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\(}% }%\)}:-${CONDA_PREFIX:t}}' + + # Custom icon. + # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################ + # Pyenv color. + typeset -g POWERLEVEL9K_PYENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_PYENV_BACKGROUND=4 + # Hide python version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global) + # If set to false, hide python version if it's the same as global: + # $(pyenv version-name) == $(pyenv global). + typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide python version if it's equal to "system". + typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true + + # Pyenv segment format. The following parameters are available within the expansion. + # + # - P9K_CONTENT Current pyenv environment (pyenv version-name). + # - P9K_PYENV_PYTHON_VERSION Current python version (python --version). + # + # The default format has the following logic: + # + # 1. Display just "$P9K_CONTENT" if it's equal to "$P9K_PYENV_PYTHON_VERSION" or + # starts with "$P9K_PYENV_PYTHON_VERSION/". + # 2. Otherwise display "$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION". + typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}' + + # Custom icon. + # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################ + # Goenv color. + typeset -g POWERLEVEL9K_GOENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_GOENV_BACKGROUND=4 + # Hide go version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global) + # If set to false, hide go version if it's the same as global: + # $(goenv version-name) == $(goenv global). + typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide go version if it's equal to "system". + typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]########## + # Nodenv color. + typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2 + typeset -g POWERLEVEL9K_NODENV_BACKGROUND=0 + # Hide node version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global) + # If set to false, hide node version if it's the same as global: + # $(nodenv version-name) == $(nodenv global). + typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide node version if it's equal to "system". + typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]############### + # Nvm color. + typeset -g POWERLEVEL9K_NVM_FOREGROUND=0 + typeset -g POWERLEVEL9K_NVM_BACKGROUND=5 + # If set to false, hide node version if it's the same as default: + # $(nvm version current) == $(nvm version default). + typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false + # If set to false, hide node version if it's equal to "system". + typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############ + # Nodeenv color. + typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2 + typeset -g POWERLEVEL9K_NODEENV_BACKGROUND=0 + # Don't show Node version next to the environment name. + typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false + # Separate environment name from Node version only with a space. + typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER= + # Custom icon. + # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############################[ node_version: node.js version ]############################### + # Node version color. + typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=7 + typeset -g POWERLEVEL9K_NODE_VERSION_BACKGROUND=2 + # Show node version only when in a directory tree containing package.json. + typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ go_version: go version (https://golang.org) ]######################## + # Go version color. + typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=255 + typeset -g POWERLEVEL9K_GO_VERSION_BACKGROUND=2 + # Show go version only when in a go project subdirectory. + typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #################[ rust_version: rustc version (https://www.rust-lang.org) ]################## + # Rust version color. + typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=0 + typeset -g POWERLEVEL9K_RUST_VERSION_BACKGROUND=208 + # Show rust version only when in a rust project subdirectory. + typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################ + # .NET version color. + typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=7 + typeset -g POWERLEVEL9K_DOTNET_VERSION_BACKGROUND=5 + # Show .NET version only when in a .NET project subdirectory. + typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################[ php_version: php version (https://www.php.net/) ]###################### + # PHP version color. + typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=0 + typeset -g POWERLEVEL9K_PHP_VERSION_BACKGROUND=5 + # Show PHP version only when in a PHP project subdirectory. + typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ laravel_version: laravel php framework version (https://laravel.com/) ]########### + # Laravel version color. + typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=1 + typeset -g POWERLEVEL9K_LARAVEL_VERSION_BACKGROUND=7 + # Custom icon. + # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]############## + # Rbenv color. + typeset -g POWERLEVEL9K_RBENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_RBENV_BACKGROUND=1 + # Hide ruby version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global) + # If set to false, hide ruby version if it's the same as global: + # $(rbenv version-name) == $(rbenv global). + typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide ruby version if it's equal to "system". + typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ####################[ java_version: java version (https://www.java.com/) ]#################### + # Java version color. + typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=1 + typeset -g POWERLEVEL9K_JAVA_VERSION_BACKGROUND=7 + # Show java version only when in a java project subdirectory. + typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true + # Show brief version. + typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false + # Custom icon. + # typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]#### + # Package color. + typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=0 + typeset -g POWERLEVEL9K_PACKAGE_BACKGROUND=6 + + # Package format. The following parameters are available within the expansion. + # + # - P9K_PACKAGE_NAME The value of `name` field in package.json. + # - P9K_PACKAGE_VERSION The value of `version` field in package.json. + # + # typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}' + + # Custom icon. + # typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ rvm: ruby version from rvm (https://rvm.io) ]######################## + # Rvm color. + typeset -g POWERLEVEL9K_RVM_FOREGROUND=0 + typeset -g POWERLEVEL9K_RVM_BACKGROUND=240 + # Don't show @gemset at the end. + typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false + # Don't show ruby- at the front. + typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false + # Custom icon. + # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############ + # Fvm color. + typeset -g POWERLEVEL9K_FVM_FOREGROUND=0 + typeset -g POWERLEVEL9K_FVM_BACKGROUND=4 + # Custom icon. + # typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]########### + # Lua color. + typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_LUAENV_BACKGROUND=4 + # Hide lua version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global) + # If set to false, hide lua version if it's the same as global: + # $(luaenv version-name) == $(luaenv global). + typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide lua version if it's equal to "system". + typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################ + # Java color. + typeset -g POWERLEVEL9K_JENV_FOREGROUND=1 + typeset -g POWERLEVEL9K_JENV_BACKGROUND=7 + # Hide java version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global) + # If set to false, hide java version if it's the same as global: + # $(jenv version-name) == $(jenv global). + typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide java version if it's equal to "system". + typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############ + # Perl color. + typeset -g POWERLEVEL9K_PLENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_PLENV_BACKGROUND=4 + # Hide perl version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global) + # If set to false, hide perl version if it's the same as global: + # $(plenv version-name) == $(plenv global). + typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide perl version if it's equal to "system". + typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############ + # Perlbrew color. + typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67 + # Show perlbrew version only when in a perl project subdirectory. + typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true + # Don't show "perl-" at the front. + typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false + # Custom icon. + # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############ + # PHP color. + typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_PHPENV_BACKGROUND=5 + # Hide php version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global) + # If set to false, hide php version if it's the same as global: + # $(phpenv version-name) == $(phpenv global). + typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide PHP version if it's equal to "system". + typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]####### + # Scala color. + typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_SCALAENV_BACKGROUND=1 + # Hide scala version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global) + # If set to false, hide scala version if it's the same as global: + # $(scalaenv version-name) == $(scalaenv global). + typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide scala version if it's equal to "system". + typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]########### + # Haskell color. + typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=0 + typeset -g POWERLEVEL9K_HASKELL_STACK_BACKGROUND=3 + + # Hide haskell version if it doesn't come from one of these sources. + # + # shell: version is set by STACK_YAML + # local: version is set by stack.yaml up the directory tree + # global: version is set by the implicit global project (~/.stack/global-project/stack.yaml) + typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local) + # If set to false, hide haskell version if it's the same as in the implicit global project. + typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true + # Custom icon. + # typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ terraform: terraform workspace (https://www.terraform.io) ]################# + # Don't show terraform workspace if it's literally "default". + typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false + # POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current terraform workspace gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' OTHER) + # + # If your current terraform workspace is "project_test", its class is TEST because "project_test" + # doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=2 + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_BACKGROUND=0 + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' OTHER) + typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=4 + typeset -g POWERLEVEL9K_TERRAFORM_OTHER_BACKGROUND=0 + # typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #############[ terraform_version: terraform version (https://www.terraform.io) ]############## + # Terraform version color. + typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=4 + typeset -g POWERLEVEL9K_TERRAFORM_VERSION_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ terraform_version: It shows active terraform version (https://www.terraform.io) ]################# + typeset -g POWERLEVEL9K_TERRAFORM_VERSION_SHOW_ON_COMMAND='terraform|tf' + + #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# + # Show kubecontext only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show kubecontext. + typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl' + + # Kubernetes context classes for the purpose of using different colors, icons and expansions with + # different contexts. + # + # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current kubernetes context gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' DEFAULT) + # + # If your current kubernetes context is "deathray-testing/default", its class is TEST + # because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=0 + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_BACKGROUND=2 + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=7 + typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_BACKGROUND=5 + # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext + # segment. Parameter expansions are very flexible and fast, too. See reference: + # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. + # + # Within the expansion the following parameters are always available: + # + # - P9K_CONTENT The content that would've been displayed if there was no content + # expansion defined. + # - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the + # output of `kubectl config get-contexts`. + # - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the + # output of `kubectl config get-contexts`. + # - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE + # in the output of `kubectl config get-contexts`. If there is no + # namespace, the parameter is set to "default". + # - P9K_KUBECONTEXT_USER The current context's user. Corresponds to column AUTHINFO in the + # output of `kubectl config get-contexts`. + # + # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS), + # the following extra parameters are available: + # + # - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks". + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID. + # - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone. + # - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster. + # + # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example, + # if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01": + # + # - P9K_KUBECONTEXT_CLOUD_NAME=gke + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account + # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a + # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 + # + # If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01": + # + # - P9K_KUBECONTEXT_CLOUD_NAME=eks + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012 + # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1 + # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 + typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION= + # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME. + POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}' + # Append the current context's namespace if it's not "default". + POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}' + + # Custom prefix. + typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at ' + + #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# + # Show aws only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show aws. + typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|pulumi|terragrunt' + + # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current AWS profile gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_AWS_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' DEFAULT) + # + # If your current AWS profile is "company_test", its class is TEST + # because "company_test" doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28 + # typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_AWS_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=7 + typeset -g POWERLEVEL9K_AWS_DEFAULT_BACKGROUND=1 + # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # AWS segment format. The following parameters are available within the expansion. + # + # - P9K_AWS_PROFILE The name of the current AWS profile. + # - P9K_AWS_REGION The region associated with the current AWS profile. + typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\%/%%}}' + + #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]# + # AWS Elastic Beanstalk environment color. + typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2 + typeset -g POWERLEVEL9K_AWS_EB_ENV_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]########## + # Show azure only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show azure. + typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt' + + # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current azure account name gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_AZURE_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_AZURE_CLASSES defines the account class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_AZURE_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' OTHER) + # + # If your current azure account is "company_test", its class is TEST because "company_test" + # doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_AZURE_TEST_FOREGROUND=2 + # typeset -g POWERLEVEL9K_AZURE_TEST_BACKGROUND=0 + # typeset -g POWERLEVEL9K_AZURE_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_AZURE_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_AZURE_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' OTHER) + + # Azure account name color. + typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=7 + typeset -g POWERLEVEL9K_AZURE_OTHER_BACKGROUND=4 + # Custom icon. + # typeset -g POWERLEVEL9K_AZURE_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]########### + # Show gcloud only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show gcloud. + typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil' + # Google cloud color. + typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=7 + typeset -g POWERLEVEL9K_GCLOUD_BACKGROUND=4 + + # Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or + # POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative + # enough. You can use the following parameters in the expansions. Each of them corresponds to the + # output of `gcloud` tool. + # + # Parameter | Source + # -------------------------|-------------------------------------------------------------------- + # P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)' + # P9K_GCLOUD_ACCOUNT | gcloud config get-value account + # P9K_GCLOUD_PROJECT_ID | gcloud config get-value project + # P9K_GCLOUD_PROJECT_NAME | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)' + # + # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'. + # + # Obtaining project name requires sending a request to Google servers. This can take a long time + # and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud + # prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets + # set and gcloud prompt segment transitions to state COMPLETE. + # + # You can customize the format, icon and colors of gcloud segment separately for states PARTIAL + # and COMPLETE. You can also hide gcloud in state PARTIAL by setting + # POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and + # POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty. + typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\%/%%}' + typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\%/%%}' + + # Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name + # this often. Negative value disables periodic polling. In this mode project name is retrieved + # only when the current configuration, account or project id changes. + typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60 + + # Custom icon. + # typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]# + # Show google_app_cred only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show google_app_cred. + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt' + + # Google application credentials classes for the purpose of using different colors, icons and + # expansions with different credentials. + # + # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first + # element in each pair defines a pattern against which the current kubernetes context gets + # matched. More specifically, it's P9K_CONTENT prior to the application of context expansion + # (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION + # parameters, you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order. + # The first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( + # '*:*prod*:*' PROD + # '*:*test*:*' TEST + # '*' DEFAULT) + # + # If your current Google application credentials is "service_account deathray-testing x@y.com", + # its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=28 + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID' + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( + # '*:*prod*:*' PROD # These values are examples that are unlikely + # '*:*test*:*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=7 + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_BACKGROUND=4 + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by + # google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference: + # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. + # + # You can use the following parameters in the expansion. Each of them corresponds to one of the + # fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS. + # + # Parameter | JSON key file field + # ---------------------------------+--------------- + # P9K_GOOGLE_APP_CRED_TYPE | type + # P9K_GOOGLE_APP_CRED_PROJECT_ID | project_id + # P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email + # + # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'. + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\%/%%}' + + ##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]############### + # Toolbox color. + typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=0 + typeset -g POWERLEVEL9K_TOOLBOX_BACKGROUND=3 + # Don't display the name of the toolbox if it matches fedora-toolbox-*. + typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}' + # Custom icon. + # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='in ' + + ###############################[ public_ip: public IP address ]############################### + # Public IP color. + typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=7 + typeset -g POWERLEVEL9K_PUBLIC_IP_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ########################[ vpn_ip: virtual private network indicator ]######################### + # VPN IP color. + typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=0 + typeset -g POWERLEVEL9K_VPN_IP_BACKGROUND=6 + # When on VPN, show just an icon without the IP address. + # Tip: To display the private IP address when on VPN, remove the next line. + typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION= + # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN + # to see the name of the interface. + typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)' + # If set to true, show one segment per matching network interface. If set to false, show only + # one segment corresponding to the first matching network interface. + # Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION. + typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false + # Custom icon. + # typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ ip: ip address and bandwidth usage for a specified network interface ]########### + # IP color. + typeset -g POWERLEVEL9K_IP_BACKGROUND=4 + typeset -g POWERLEVEL9K_IP_FOREGROUND=0 + # The following parameters are accessible within the expansion: + # + # Parameter | Meaning + # ----------------------+------------------------------------------- + # P9K_IP_IP | IP address + # P9K_IP_INTERFACE | network interface + # P9K_IP_RX_BYTES | total number of bytes received + # P9K_IP_TX_BYTES | total number of bytes sent + # P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt + # P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt + # P9K_IP_RX_RATE | receive rate (since last prompt) + # P9K_IP_TX_RATE | send rate (since last prompt) + typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='${P9K_IP_RX_RATE:+⇣$P9K_IP_RX_RATE }${P9K_IP_TX_RATE:+⇡$P9K_IP_TX_RATE }$P9K_IP_IP' + # Show information for the first network interface whose name matches this regular expression. + # Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces. + typeset -g POWERLEVEL9K_IP_INTERFACE='[ew].*' + # Custom icon. + # typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #########################[ proxy: system-wide http/https/ftp proxy ]########################## + # Proxy color. + typeset -g POWERLEVEL9K_PROXY_FOREGROUND=4 + typeset -g POWERLEVEL9K_PROXY_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################################[ battery: internal battery ]################################# + # Show battery in red when it's below this level and not connected to power supply. + typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20 + typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1 + # Show battery in green when it's charging or fully charged. + typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2 + # Show battery in yellow when it's discharging. + typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3 + # Battery pictograms going from low to high level of charge. + typeset -g POWERLEVEL9K_BATTERY_STAGES='\UF008E\UF007A\UF007B\UF007C\UF007D\UF007E\UF007F\UF0080\UF0081\UF0082\UF0079' + # Don't show the remaining time to charge/discharge. + typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false + typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0 + + #####################################[ wifi: wifi speed ]##################################### + # WiFi color. + typeset -g POWERLEVEL9K_WIFI_FOREGROUND=0 + typeset -g POWERLEVEL9K_WIFI_BACKGROUND=4 + # Custom icon. + # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use different colors and icons depending on signal strength ($P9K_WIFI_BARS). + # + # # Wifi colors and icons for different signal strength levels (low to high). + # typeset -g my_wifi_fg=(0 0 0 0 0) # <-- change these values + # typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values + # + # typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps' + # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}' + # + # The following parameters are accessible within the expansions: + # + # Parameter | Meaning + # ----------------------+--------------- + # P9K_WIFI_SSID | service set identifier, a.k.a. network name + # P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"; empty if unknown + # P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second + # P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0 + # P9K_WIFI_NOISE | noise in dBm, from -120 to 0 + # P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE) + + ####################################[ time: current time ]#################################### + # Current time color. + typeset -g POWERLEVEL9K_TIME_FOREGROUND=0 + typeset -g POWERLEVEL9K_TIME_BACKGROUND=7 + # Format for the current time: 09:51:02. See `man 3 strftime`. + typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}' + # If set to true, time will update when you hit enter. This way prompts for the past + # commands will contain the start times of their commands as opposed to the default + # behavior where they contain the end times of their preceding commands. + typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false + # Custom icon. + # typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_TIME_PREFIX='at ' + + # Example of a user-defined prompt segment. Function prompt_example will be called on every + # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or + # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and yellow text on red background + # greeting the user. + # + # Type `p10k help segment` for documentation and a more sophisticated example. + function prompt_example() { + p10k segment -b 1 -f 3 -i '⭐' -t 'hello, %n' + } + + # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job + # is to generate the prompt segment for display in instant prompt. See + # https://github.com/romkatv/powerlevel10k#instant-prompt. + # + # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function + # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k + # will replay these calls without actually calling instant_prompt_*. It is imperative that + # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this + # rule is not observed, the content of instant prompt will be incorrect. + # + # Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If + # instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt. + function instant_prompt_example() { + # Since prompt_example always makes the same `p10k segment` calls, we can call it from + # instant_prompt_example. This will give us the same `example` prompt segment in the instant + # and regular prompts. + prompt_example + } + + # User-defined prompt segments can be customized the same way as built-in segments. + typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=3 + typeset -g POWERLEVEL9K_EXAMPLE_BACKGROUND=1 + # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt + # when accepting a command line. Supported values: + # + # - off: Don't change prompt when accepting a command line. + # - always: Trim down prompt when accepting a command line. + # - same-dir: Trim down prompt when accepting a command line unless this is the first command + # typed after changing current working directory. + typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always + + # Instant prompt mode. + # + # - off: Disable instant prompt. Choose this if you've tried instant prompt and found + # it incompatible with your zsh configuration files. + # - quiet: Enable instant prompt and don't print warnings when detecting console output + # during zsh initialization. Choose this if you've read and understood + # https://github.com/romkatv/powerlevel10k#instant-prompt. + # - verbose: Enable instant prompt and print a warning when detecting console output during + # zsh initialization. Choose this if you've never tried instant prompt, haven't + # seen the warning, or if you are unsure what this all means. + typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose + + # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized. + # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload + # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you + # really need it. + typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true + + # If p10k is already loaded, reload configuration. + # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true. + (( ! $+functions[p10k] )) || p10k reload +} + +# Tell `p10k configure` which file it should overwrite. +typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a} + +(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} +'builtin' 'unset' 'p10k_config_opts' diff --git a/zsh/.config/zsh/.zcompdump b/zsh/.config/zsh/.zcompdump new file mode 100644 index 0000000..fbb88b7 --- /dev/null +++ b/zsh/.config/zsh/.zcompdump @@ -0,0 +1,2395 @@ +#files: 1229 version: 5.9 + +_comps=( +'-' '_precommand' +'.' '_source' +'5g' '_go' +'5l' '_go' +'6g' '_go' +'6l' '_go' +'8g' '_go' +'8l' '_go' +'a2dismod' '_a2utils' +'a2dissite' '_a2utils' +'a2enmod' '_a2utils' +'a2ensite' '_a2utils' +'a2ps' '_a2ps' +'aaaa' '_hosts' +'aap' '_aap' +'abcde' '_abcde' +'ack' '_ack' +'ack2' '_ack' +'ack-grep' '_ack' +'ack-standalone' '_ack' +'acpi' '_acpi' +'acpitool' '_acpitool' +'acroread' '_acroread' +'adb' '_adb' +'add-zle-hook-widget' '_add-zle-hook-widget' +'add-zsh-hook' '_add-zsh-hook' +'admin' '_sccs' +'afew' '_afew' +'age' '_age' +'alacritty' '_alacritty' +'ali' '_mh' +'alias' '_alias' +'amaya' '_webbrowser' +'analyseplugin' '_analyseplugin' +'android' '_android' +'animate' '_imagemagick' +'anno' '_mh' +'ansible' '_ansible' +'ansible-config' '_ansible' +'ansible-console' '_ansible' +'ansible-doc' '_ansible' +'ansible-galaxy' '_ansible' +'ansible-inventory' '_ansible' +'ansible-playbook' '_ansible' +'ansible-pull' '_ansible' +'ansible-vault' '_ansible' +'ant' '_ant' +'antiword' '_antiword' +'aodh' '_openstack' +'aoss' '_precommand' +'apache2ctl' '_apachectl' +'apachectl' '_apachectl' +'aplay' '_alsa-utils' +'apm' '_apm' +'appletviewer' '_java' +'apropos' '_man' +'apt' '_apt' +'apt-cache' '_apt' +'apt-cdrom' '_apt' +'apt-config' '_apt' +'apt-file' '_apt-file' +'apt-get' '_apt' +'aptitude' '_aptitude' +'apt-mark' '_apt' +'apt-move' '_apt-move' +'apt-show-versions' '_apt-show-versions' +'apvlv' '_pdf' +'archlinux-java' '_archlinux-java' +'arduino-ctags' '_ctags' +'arecord' '_alsa-utils' +'arena' '_webbrowser' +'_arguments' '__arguments' +'arp' '_arp' +'arping' '_arping' +'-array-value-' '_value' +'artisan' '_artisan' +'asciidoctor' '_asciidoctor' +'asciinema' '_asciinema' +'ash' '_sh' +'-assign-parameter-' '_assign' +'at' '_at' +'atach' '_atach' +'atq' '_at' +'atrm' '_at' +'attr' '_attr' +'augtool' '_augeas' +'auto-apt' '_auto-apt' +'autoload' '_typeset' +'avahi-browse' '_avahi' +'avahi-browse-domains' '_avahi' +'avahi-resolve' '_avahi' +'avahi-resolve-address' '_avahi' +'avahi-resolve-host-name' '_avahi' +'avdmanager' '_avdmanager' +'awk' '_awk' +'axi-cache' '_axi-cache' +'b2sum' '_md5sum' +'barbican' '_openstack' +'base32' '_base64' +'base64' '_base64' +'basename' '_basename' +'basenc' '_basenc' +'bash' '_bash' +'batch' '_at' +'baz' '_baz' +'beadm' '_beadm' +'beep' '_beep' +'bg' '_jobs_bg' +'bibtex' '_bibtex' +'bindkey' '_bindkey' +'bison' '_bison' +'bitcoin-cli' '_bitcoin-cli' +'blkid' '_blkid' +'bluetooth' '_tlp-radio-device' +'bluetoothctl' '_bluetoothctl' +'bmake' '_make' +'bogofilter' '_bogofilter' +'bogotune' '_bogofilter' +'bogoutil' '_bogofilter' +'bootctl' '_bootctl' +'bower' '_bower' +'bpython' '_bpython' +'bpython2' '_bpython' +'bpython2-gtk' '_bpython' +'bpython2-urwid' '_bpython' +'bpython3' '_bpython' +'bpython3-gtk' '_bpython' +'bpython3-urwid' '_bpython' +'bpython-gtk' '_bpython' +'bpython-urwid' '_bpython' +'-brace-parameter-' '_brace_parameter' +'brctl' '_brctl' +'bsdconfig' '_bsdconfig' +'bsdgrep' '_grep' +'bsdinstall' '_bsdinstall' +'bsdtar' '_tar' +'btdownloadcurses' '_bittorrent' +'btdownloadgui' '_bittorrent' +'btdownloadheadless' '_bittorrent' +'btlaunchmany' '_bittorrent' +'btlaunchmanycurses' '_bittorrent' +'btmakemetafile' '_bittorrent' +'btreannounce' '_bittorrent' +'btrename' '_bittorrent' +'btrfs' '_btrfs' +'bts' '_bts' +'btshowmetainfo' '_bittorrent' +'bttrack' '_bittorrent' +'bug' '_bug' +'buildhash' '_ispell' +'builtin' '_builtin' +'bundle' '_bundle' +'bunzip2' '_bzip2' +'burst' '_mh' +'busctl' '_busctl' +'bwrap' '_bwrap' +'bzcat' '_bzip2' +'bzegrep' '_grep' +'bzfgrep' '_grep' +'bzgrep' '_grep' +'bzip2' '_bzip2' +'bzip2recover' '_bzip2' +'bzr' '_bzr' +'c++' '_gcc' +'cabal' '_cabal' +'caffeinate' '_caffeinate' +'cal' '_cal' +'calendar' '_calendar' +'cap' '_cap' +'cask' '_cask' +'cat' '_cat' +'catchsegv' '_precommand' +'cc' '_gcc' +'ccache' '_ccache' +'ccal' '_ccal' +'cd' '_cd' +'cdbs-edit-patch' '_cdbs-edit-patch' +'cdc' '_sccs' +'cdcd' '_cdcd' +'cdr' '_cdr' +'cdrdao' '_cdrdao' +'cdrecord' '_cdrecord' +'ceilometer' '_openstack' +'certtool' '_gnutls' +'cf' '_cf' +'cftp' '_twisted' +'chage' '_users' +'chatblade' '_chatblade' +'chattr' '_chattr' +'chcon' '_chcon' +'chcpu' '_chcpu' +'chdir' '_cd' +'chflags' '_chflags' +'chfn' '_users' +'chgrp' '_chown' +'chimera' '_webbrowser' +'chkconfig' '_chkconfig' +'chkstow' '_stow' +'chmem' '_chmem' +'chmod' '_chmod' +'choc' '_choc' +'choom' '_choom' +'chown' '_chown' +'chpass' '_chsh' +'chpasswd' '_chpasswd' +'chromium' '_chromium' +'chroot' '_chroot' +'chrt' '_chrt' +'chsh' '_chsh' +'ci' '_rcs' +'cifsiostat' '_sysstat' +'cinder' '_openstack' +'ckeygen' '_twisted' +'cksum' '_cksum' +'clang' '_gcc' +'clang++' '_gcc' +'clang-check' '_clang-check' +'clang-format' '_clang-format' +'clang-tidy' '_clang-tidy' +'clay' '_clay' +'clear' '_nothing' +'cloudkitty' '_openstack' +'clusterdb' '_postgresql' +'cmake' '_cmake' +'cmp' '_cmp' +'co' '_rcs' +'code' '_code' +'coffee' '_coffee' +'column' '_column' +'comb' '_sccs' +'combine' '_imagemagick' +'combinediff' '_patchutils' +'comm' '_comm' +'-command-' '_autocd' +'command' '_command' +'-command-line-' '_normal' +'comp' '_mh' +'compadd' '_compadd' +'compdef' '_compdef' +'composer' '_composer' +'composer.phar' '_composer' +'composite' '_imagemagick' +'compress' '_compress' +'conan' '_conan' +'conch' '_twisted' +'concourse' '_concourse' +'-condition-' '_condition' +'config.status' '_configure' +'configure' '_configure' +'console' '_console' +'convert' '_imagemagick' +'coreadm' '_coreadm' +'coredumpctl' '_coredumpctl' +'cowsay' '_cowsay' +'cowthink' '_cowsay' +'cp' '_cp' +'cpio' '_cpio' +'cplay' '_cplay' +'cppcheck' '_cppcheck' +'cpupower' '_cpupower' +'createdb' '_postgresql' +'createuser' '_postgresql' +'crontab' '_crontab' +'crsh' '_cssh' +'cryptsetup' '_cryptsetup' +'cscope' '_cscope' +'csh' '_sh' +'csplit' '_csplit' +'cssh' '_cssh' +'csup' '_csup' +'ctags' '_ctags' +'ctags-exuberant' '_ctags' +'ctags-universal' '_ctags' +'cu' '_cu' +'curl' '_curl' +'cut' '_cut' +'cvs' '_cvs' +'cvsup' '_cvsup' +'cygcheck' '_cygcheck' +'cygcheck.exe' '_cygcheck' +'cygpath' '_cygpath' +'cygpath.exe' '_cygpath' +'cygrunsrv' '_cygrunsrv' +'cygrunsrv.exe' '_cygrunsrv' +'cygserver' '_cygserver' +'cygserver.exe' '_cygserver' +'cygstart' '_cygstart' +'cygstart.exe' '_cygstart' +'dad' '_dad' +'dak' '_dak' +'darcs' '_darcs' +'dart' '_dart' +'dash' '_sh' +'date' '_date' +'dbus-launch' '_dbus' +'dbus-monitor' '_dbus' +'dbus-send' '_dbus' +'dch' '_debchange' +'dchroot' '_dchroot' +'dchroot-dsa' '_dchroot-dsa' +'dconf' '_dconf' +'dcop' '_dcop' +'dcopclient' '_dcop' +'dcopfind' '_dcop' +'dcopobject' '_dcop' +'dcopref' '_dcop' +'dcopstart' '_dcop' +'dcut' '_dcut' +'dd' '_dd' +'debchange' '_debchange' +'debcheckout' '_debcheckout' +'debdiff' '_debdiff' +'debfoster' '_debfoster' +'debian-distro-info' '_distro_info' +'deborphan' '_deborphan' +'debsign' '_debsign' +'debsnap' '_debsnap' +'debuild' '_debuild' +'declare' '_typeset' +'-default-' '_default' +'defaults' '_defaults' +'delta' '_sccs' +'designate' '_openstack' +'devtodo' '_devtodo' +'df' '_df' +'dget' '_dget' +'dhclient' '_dhclient' +'dhclient3' '_dhclient' +'dhcpcd' '_dhcpcd' +'dhcpinfo' '_dhcpinfo' +'diana' '_diana' +'dict' '_dict' +'diff' '_diff' +'diff3' '_diff3' +'diffstat' '_diffstat' +'dig' '_dig' +'dillo' '_webbrowser' +'dircmp' '_directories' +'direnv' '_direnv' +'dirs' '_dirs' +'disable' '_disable' +'disown' '_jobs_fg' +'display' '_imagemagick' +'dist' '_mh' +'distrobox' '_distrobox' +'distrobox-assemble' '_distrobox-assemble' +'distrobox-create' '_distrobox-create' +'distrobox-enter' '_distrobox-enter' +'distrobox-ephemeral' '_distrobox-ephemeral' +'distrobox-export' '_distrobox-export' +'distrobox-generate-entry' '_distrobox-generate-entry' +'distrobox-host-exec' '_distrobox-host-exec' +'distrobox-init' '_distrobox-init' +'distrobox-list' '_distrobox-list' +'distrobox-rm' '_distrobox-rm' +'distrobox-stop' '_distrobox-stop' +'distrobox-upgrade' '_distrobox-upgrade' +'distro-info' '_distro_info' +'django-admin' '_django' +'django-admin.py' '_django' +'dkms' '_dkms' +'dladm' '_dladm' +'dlocate' '_dlocate' +'dmake' '_make' +'dmesg' '_dmesg' +'dmidecode' '_dmidecode' +'dnf' '_dnf' +'dnf-2' '_dnf' +'dnf-3' '_dnf' +'dnf4' '_dnf' +'dnf5' '_dnf5' +'doas' '_doas' +'docpad' '_docpad' +'domainname' '_yp' +'do-release-upgrade' '_do-release-upgrade' +'dos2unix' '_dos2unix' +'dosdel' '_floppy' +'dosread' '_floppy' +'dpatch-edit-patch' '_dpatch-edit-patch' +'dpkg' '_dpkg' +'dpkg-buildpackage' '_dpkg-buildpackage' +'dpkg-cross' '_dpkg-cross' +'dpkg-deb' '_dpkg' +'dpkg-query' '_dpkg' +'dpkg-reconfigure' '_dpkg' +'dpkg-repack' '_dpkg-repack' +'dpkg-source' '_dpkg_source' +'dput' '_dput' +'drill' '_drill' +'dropbox' '_dropbox' +'dropdb' '_postgresql' +'dropuser' '_postgresql' +'drush' '_drush' +'dscverify' '_dscverify' +'dsh' '_dsh' +'dtrace' '_dtrace' +'dtruss' '_dtruss' +'du' '_du' +'dumpadm' '_dumpadm' +'dumper' '_dumper' +'dumper.exe' '_dumper' +'dupload' '_dupload' +'dvibook' '_dvi' +'dviconcat' '_dvi' +'dvicopy' '_dvi' +'dvidvi' '_dvi' +'dvipdf' '_dvi' +'dvips' '_dvi' +'dviselect' '_dvi' +'dvitodvi' '_dvi' +'dvitype' '_dvi' +'dwb' '_webbrowser' +'e2label' '_e2label' +'eatmydata' '_precommand' +'ecasound' '_ecasound' +'ecdsautil' '_ecdsautil' +'echotc' '_echotc' +'echoti' '_echoti' +'ed' '_ed' +'egrep' '_grep' +'elfdump' '_elfdump' +'elinks' '_elinks' +'emacs' '_emacs' +'emacsclient' '_emacsclient' +'emulate' '_emulate' +'emulator' '_emulator' +'enable' '_enable' +'enscript' '_enscript' +'entr' '_entr' +'env' '_env' +'envdir' '_envdir' +'eog' '_eog' +'epdfview' '_pdf' +'epsffit' '_psutils' +'-equal-' '_equal' +'erb' '_ruby' +'espeak' '_espeak' +'etags' '_etags' +'ethtool' '_ethtool' +'eu-nm' '_nm' +'eu-objdump' '_objdump' +'eu-readelf' '_readelf' +'eu-strings' '_strings' +'eval' '_precommand' +'eview' '_vim' +'evim' '_vim' +'evince' '_evince' +'ex' '_vi' +'exec' '_exec' +'expand' '_unexpand' +'explodepkg' '_pkgtool' +'export' '_typeset' +'exportfs' '_exportfs' +'express' '_webbrowser' +'extcheck' '_java' +'extractres' '_psutils' +'fab' '_fab' +'fail2ban-client' '_fail2ban-client' +'fail2ban-regex' '_fail2ban-regex' +'fakeroot' '_fakeroot' +'fallocate' '_fallocate' +'false' '_nothing' +'fastfetch' '_fastfetch' +'fc' '_fc' +'fc-list' '_xft_fonts' +'fc-match' '_xft_fonts' +'fd' '_fd' +'feh' '_feh' +'fetch' '_fetch' +'fetchmail' '_fetchmail' +'ffind' '_ffind' +'ffmpeg' '_ffmpeg' +'fg' '_jobs_fg' +'fgrep' '_grep' +'figlet' '_figlet' +'filterdiff' '_patchutils' +'find' '_find' +'findaffix' '_ispell' +'findmnt' '_findmnt' +'finger' '_finger' +'fink' '_fink' +'firefox' '_mozilla' +'firewall-cmd' '_firewalld' +'firewall-offline-cmd' '_firewalld' +'-first-' '_first' +'fixdlsrps' '_psutils' +'fixfmps' '_psutils' +'fixmacps' '_psutils' +'fixpsditps' '_psutils' +'fixpspps' '_psutils' +'fixscribeps' '_psutils' +'fixtpps' '_psutils' +'fixwfwps' '_psutils' +'fixwpps' '_psutils' +'fixwwps' '_psutils' +'flac' '_flac' +'flatpak' '_flatpak' +'fleetctl' '_fleetctl' +'flex' '_flex' +'flex++' '_flex' +'flipdiff' '_patchutils' +'flist' '_mh' +'flists' '_mh' +'float' '_typeset' +'flowadm' '_flowadm' +'flutter' '_flutter' +'fly' '_concourse' +'fmadm' '_fmadm' +'fmt' '_fmt' +'fmttest' '_mh' +'fned' '_zed' +'fnext' '_mh' +'fold' '_fold' +'folder' '_mh' +'folders' '_mh' +'fortune' '_fortune' +'forw' '_mh' +'fprev' '_mh' +'free' '_free' +'freebsd-make' '_make' +'freebsd-update' '_freebsd-update' +'freezer' '_openstack' +'fsh' '_fsh' +'fstat' '_fstat' +'fs_usage' '_fs_usage' +'ftp' '_hosts' +'functions' '_typeset' +'fuser' '_fuser' +'fusermount' '_fusermount' +'fwhois' '_whois' +'fw_update' '_fw_update' +'fwupdmgr' '_fwupdmgr' +'g++' '_gcc' +'galeon' '_webbrowser' +'gas' '_gas' +'gawk' '_awk' +'gb2sum' '_md5sum' +'gbase32' '_base64' +'gbase64' '_base64' +'gbasename' '_basename' +'gcat' '_cat' +'gcc' '_gcc' +'gccgo' '_go' +'gchgrp' '_chown' +'gchmod' '_chmod' +'gchown' '_chown' +'gchroot' '_chroot' +'gcksum' '_cksum' +'gcmp' '_cmp' +'gcomm' '_comm' +'gcore' '_gcore' +'gcp' '_cp' +'gcut' '_cut' +'gdate' '_date' +'gdb' '_gdb' +'gdd' '_dd' +'gdf' '_df' +'gdiff' '_diff' +'gdu' '_du' +'geany' '_geany' +'gegrep' '_grep' +'gem' '_gem' +'genisoimage' '_genisoimage' +'genv' '_env' +'get' '_sccs' +'getafm' '_psutils' +'getclip' '_getclip' +'getclip.exe' '_getclip' +'getconf' '_getconf' +'getent' '_getent' +'getfacl' '_getfacl' +'getfacl.exe' '_getfacl' +'getfattr' '_attr' +'getmail' '_getmail' +'getopt' '_getopt' +'getopts' '_vars' +'gex' '_vim' +'gexpand' '_unexpand' +'gfgrep' '_grep' +'gfind' '_find' +'gfmt' '_fmt' +'gfold' '_fold' +'ggetopt' '_getopt' +'ggrep' '_grep' +'ggv' '_gnome-gv' +'ghc' '_ghc' +'ghci' '_ghc' +'ghc-pkg' '_ghc' +'ghead' '_head' +'ghostscript' '_ghostscript' +'ghostview' '_pspdf' +'gid' '_id' +'ginstall' '_install' +'gist' '_gist' +'git' '_git' +'git-buildpackage' '_git-buildpackage' +'git-cvsserver' '_git' +'git-flow' '_git-flow' +'gitk' '_git' +'git-pulls' '_git-pulls' +'git-receive-pack' '_git' +'git-revise' '_git-revise' +'git-shell' '_git' +'git-upload-archive' '_git' +'git-upload-pack' '_git' +'git-wtf' '_git-wtf' +'gjoin' '_join' +'glance' '_openstack' +'glances' '_glances' +'gln' '_ln' +'global' '_global' +'glocate' '_locate' +'gls' '_ls' +'gm' '_graphicsmagick' +'gmake' '_make' +'gmd5sum' '_md5sum' +'gmkdir' '_mkdir' +'gmkfifo' '_mkfifo' +'gmknod' '_mknod' +'gmktemp' '_mktemp' +'gmplayer' '_mplayer' +'gmv' '_mv' +'gnl' '_nl' +'gnocchi' '_openstack' +'gnome-gv' '_gnome-gv' +'gnumfmt' '_numfmt' +'gnupod_addsong' '_gnupod' +'gnupod_addsong.pl' '_gnupod' +'gnupod_check' '_gnupod' +'gnupod_check.pl' '_gnupod' +'gnupod_INIT' '_gnupod' +'gnupod_INIT.pl' '_gnupod' +'gnupod_search' '_gnupod' +'gnupod_search.pl' '_gnupod' +'gnutls-cli' '_gnutls' +'gnutls-cli-debug' '_gnutls' +'gnutls-serv' '_gnutls' +'go' '_golang' +'god' '_od' +'gofmt' '_go' +'google' '_google' +'gpasswd' '_gpasswd' +'gpaste' '_paste' +'gpatch' '_patch' +'gpg' '_gpg' +'gpg2' '_gpg' +'gpgconf' '_gpgconf' +'gpgv' '_gpg' +'gpg-zip' '_gpg' +'gphoto2' '_gphoto2' +'gprintenv' '_printenv' +'gprof' '_gprof' +'gqview' '_gqview' +'gradle' '_gradle' +'gradlew' '_gradle' +'grail' '_webbrowser' +'greadlink' '_readlink' +'grep' '_grep' +'grepdiff' '_patchutils' +'grep-excuses' '_grep-excuses' +'grm' '_rm' +'grmdir' '_rmdir' +'groff' '_groff' +'groupadd' '_user_admin' +'groupdel' '_groups' +'groupmod' '_user_admin' +'groups' '_users' +'growisofs' '_growisofs' +'grpcurl' '_grpcurl' +'gs' '_ghostscript' +'gsbj' '_pspdf' +'gsdj' '_pspdf' +'gsdj500' '_pspdf' +'gsed' '_sed' +'gseq' '_seq' +'gsettings' '_gsettings' +'gsha1sum' '_md5sum' +'gsha224sum' '_md5sum' +'gsha256sum' '_md5sum' +'gsha384sum' '_md5sum' +'gsha512sum' '_md5sum' +'gshred' '_shred' +'gshuf' '_shuf' +'gslj' '_pspdf' +'gslp' '_pspdf' +'gsnd' '_pspdf' +'gsort' '_sort' +'gsplit' '_split' +'gstat' '_gstat' +'gstdbuf' '_stdbuf' +'gstrings' '_strings' +'gstty' '_stty' +'gsum' '_cksum' +'gtac' '_tac' +'gtail' '_tail' +'gtar' '_tar' +'gtee' '_tee' +'gtimeout' '_timeout' +'gtk4-launch' '_gtk-launch' +'gtk-launch' '_gtk-launch' +'gtouch' '_touch' +'gtr' '_tr' +'gtty' '_tty' +'guilt' '_guilt' +'guilt-add' '_guilt' +'guilt-applied' '_guilt' +'guilt-delete' '_guilt' +'guilt-files' '_guilt' +'guilt-fold' '_guilt' +'guilt-fork' '_guilt' +'guilt-header' '_guilt' +'guilt-help' '_guilt' +'guilt-import' '_guilt' +'guilt-import-commit' '_guilt' +'guilt-init' '_guilt' +'guilt-new' '_guilt' +'guilt-next' '_guilt' +'guilt-patchbomb' '_guilt' +'guilt-pop' '_guilt' +'guilt-prev' '_guilt' +'guilt-push' '_guilt' +'guilt-rebase' '_guilt' +'guilt-refresh' '_guilt' +'guilt-rm' '_guilt' +'guilt-series' '_guilt' +'guilt-status' '_guilt' +'guilt-top' '_guilt' +'guilt-unapplied' '_guilt' +'guname' '_uname' +'gunexpand' '_unexpand' +'guniq' '_uniq' +'gunzip' '_gzip' +'guptime' '_uptime' +'gv' '_gv' +'gview' '_vim' +'gvim' '_vim' +'gvimdiff' '_vim' +'gwc' '_wc' +'gwho' '_who' +'gxargs' '_xargs' +'gzcat' '_gzip' +'gzegrep' '_grep' +'gzfgrep' '_grep' +'gzgrep' '_grep' +'gzilla' '_webbrowser' +'gzip' '_gzip' +'hash' '_hash' +'hd' '_hexdump' +'hdiutil' '_hdiutil' +'head' '_head' +'heat' '_openstack' +'hello' '_hello' +'help' '_sccs' +'hexdump' '_hexdump' +'hilite' '_precommand' +'histed' '_zed' +'history' '_fc' +'hledger' '_hledger' +'homestead' '_homestead' +'host' '_host' +'hostname' '_hostname' +'hostnamectl' '_hostnamectl' +'hotjava' '_webbrowser' +'htop' '_htop' +'http' '_httpie' +'https' '_httpie' +'hwinfo' '_hwinfo' +'ibus' '_ibus' +'iceweasel' '_mozilla' +'icombine' '_ispell' +'iconv' '_iconv' +'iconvconfig' '_iconvconfig' +'id' '_id' +'identify' '_imagemagick' +'ifconfig' '_ifconfig' +'ifdown' '_net_interfaces' +'iftop' '_iftop' +'ifup' '_net_interfaces' +'ijoin' '_ispell' +'import' '_imagemagick' +'inc' '_mh' +'includeres' '_psutils' +'include-what-you-use' '_include-what-you-use' +'inetadm' '_inetadm' +'info' '_texinfo' +'infocmp' '_terminals' +'initctl' '_initctl' +'initdb' '_postgresql' +'insmod' '_modutils' +'install' '_install' +'install-info' '_texinfo' +'installpkg' '_pkgtool' +'integer' '_typeset' +'interdiff' '_patchutils' +'invoke-rc.d' '_invoke-rc.d' +'inxi' '_inxi' +'ionice' '_ionice' +'iostat' '_iostat' +'ip' '_ip' +'ip6tables' '_iptables' +'ip6tables-restore' '_iptables' +'ip6tables-save' '_iptables' +'ipadm' '_ipadm' +'ipcmk' '_ipcmk' +'ipcrm' '_ipcrm' +'ipcs' '_ipcs' +'ipfw' '_ipfw' +'ipkg' '_opkg' +'ipsec' '_ipsec' +'ipset' '_ipset' +'iptables' '_iptables' +'iptables-restore' '_iptables' +'iptables-save' '_iptables' +'irb' '_ruby' +'ironic' '_openstack' +'irssi' '_irssi' +'isag' '_sysstat' +'ispell' '_ispell' +'iwconfig' '_iwconfig' +'iwyu' '_include-what-you-use' +'jadetex' '_tex' +'jail' '_jail' +'jar' '_java' +'jarsigner' '_java' +'java' '_java' +'javac' '_java' +'javadoc' '_java' +'javah' '_java' +'javap' '_java' +'jdb' '_java' +'jest' '_jest' +'jest.js' '_jest' +'jexec' '_jexec' +'jls' '_jls' +'jmeter' '_jmeter' +'jmeter-plugins' '_jmeter-plugins' +'jobs' '_jobs_builtin' +'joe' '_joe' +'join' '_join' +'jonas' '_jonas' +'jot' '_jot' +'journalctl' '_journalctl' +'jq' '_jq' +'jrnl' '_jrnl' +'kak' '_kak' +'kdeconnect-cli' '_kdeconnect' +'kdump' '_kdump' +'kernel-install' '_kernel-install' +'keystone' '_openstack' +'keytool' '_java' +'kfmclient' '_kfmclient' +'kill' '_kill' +'killall' '_killall' +'killall5' '_killall' +'kioclient' '_kfmclient' +'kitchen' '_kitchen' +'kldload' '_kld' +'kldunload' '_kld' +'knife' '_knife' +'knock' '_knock' +'konqueror' '_webbrowser' +'kpartx' '_kpartx' +'kpdf' '_pdf' +'ksh' '_sh' +'ksh88' '_sh' +'ksh93' '_sh' +'ktrace' '_ktrace' +'kvno' '_kvno' +'l3build' '_l3build' +'last' '_last' +'lastb' '_last' +'latex' '_tex' +'latexmk' '_tex' +'ldap' '_ldap' +'ldattach' '_ldattach' +'ldconfig' '_ldconfig' +'ldconfig.real' '_ldconfig' +'ldd' '_ldd' +'less' '_less' +'let' '_math' +'lftp' '_ncftp' +'lha' '_lha' +'libinput' '_libinput' +'light' '_webbrowser' +'lighty-disable-mod' '_lighttpd' +'lighty-enable-mod' '_lighttpd' +'lilypond' '_lilypond' +'limit' '_limit' +'links' '_links' +'links2' '_links' +'lintian' '_lintian' +'lintian-info' '_lintian' +'linux' '_uml' +'lldb' '_lldb' +'llvm-g++' '_gcc' +'llvm-gcc' '_gcc' +'llvm-objdump' '_objdump' +'llvm-otool' '_otool' +'ln' '_ln' +'loadkeys' '_loadkeys' +'local' '_typeset' +'locale' '_locale' +'localectl' '_localectl' +'localedef' '_localedef' +'locate' '_locate' +'log' '_nothing' +'logger' '_logger' +'loginctl' '_loginctl' +'logname' '_nothing' +'look' '_look' +'losetup' '_losetup' +'lp' '_lp' +'lpadmin' '_lp' +'lpinfo' '_lp' +'lpoptions' '_lp' +'lpq' '_lp' +'lpr' '_lp' +'lprm' '_lp' +'lpstat' '_lp' +'ls' '_ls' +'lsattr' '_lsattr' +'lsblk' '_lsblk' +'lscfg' '_lscfg' +'lscpu' '_lscpu' +'lsdev' '_lsdev' +'lsdiff' '_patchutils' +'lsipc' '_lsipc' +'lslocks' '_lslocks' +'lslogins' '_lslogins' +'lslv' '_lslv' +'lsmem' '_lsmem' +'lsmod' '_modutils' +'lsns' '_lsns' +'lsof' '_lsof' +'lspv' '_lspv' +'lsusb' '_lsusb' +'lsvg' '_lsvg' +'ltrace' '_ltrace' +'lua' '_lua' +'luarocks' '_luarocks' +'lunchy' '_lunchy' +'lynx' '_lynx' +'lz4' '_lz4' +'lz4c' '_lz4' +'lz4c32' '_lz4' +'lz4cat' '_lz4' +'lzcat' '_xz' +'lzma' '_xz' +'lzop' '_lzop' +'m-a' '_module-assistant' +'mac2unix' '_dos2unix' +'machinectl' '_machinectl' +'madison' '_madison' +'magnum' '_openstack' +'mail' '_mail' +'Mail' '_mail' +'mailx' '_mail' +'make' '_make' +'makeinfo' '_texinfo' +'make-kpkg' '_make-kpkg' +'makepkg' '_pkgtool' +'man' '_man' +'manage.py' '_django' +'manila' '_openstack' +'mark' '_mh' +'mat' '_mat' +'mat2' '_mat2' +'-math-' '_math' +'matlab' '_matlab' +'mattrib' '_mtools' +'mc' '_mc' +'mcd' '_mtools' +'mcookie' '_mcookie' +'mcopy' '_mtools' +'md2' '_cksum' +'md4' '_cksum' +'md5' '_cksum' +'md5sum' '_md5sum' +'mdadm' '_mdadm' +'mdel' '_mtools' +'mdeltree' '_mtools' +'mdfind' '_mdfind' +'mdir' '_mtools' +'mdls' '_mdls' +'mdu' '_mtools' +'mdutil' '_mdutil' +'members' '_members' +'mencal' '_mencal' +'mere' '_mere' +'merge' '_rcs' +'mergechanges' '_mergechanges' +'metaflac' '_flac' +'mformat' '_mtools' +'mgv' '_pspdf' +'mhfixmsg' '_mh' +'mhlist' '_mh' +'mhmail' '_mh' +'mhn' '_mh' +'mhparam' '_mh' +'mhpath' '_mh' +'mhshow' '_mh' +'mhstore' '_mh' +'middleman' '_middleman' +'mii-tool' '_mii-tool' +'mina' '_mina' +'mistral' '_openstack' +'mix' '_mix' +'mixerctl' '_mixerctl' +'mkcert' '_mkcert' +'mkdir' '_mkdir' +'mkfifo' '_mkfifo' +'mkisofs' '_growisofs' +'mknod' '_mknod' +'mksh' '_sh' +'mkshortcut' '_mkshortcut' +'mkshortcut.exe' '_mkshortcut' +'mktemp' '_mktemp' +'mktunes' '_gnupod' +'mktunes.pl' '_gnupod' +'mkzsh' '_mkzsh' +'mkzsh.exe' '_mkzsh' +'mlabel' '_mtools' +'mlocate' '_locate' +'mmd' '_mtools' +'mmm' '_webbrowser' +'mmount' '_mtools' +'mmove' '_mtools' +'modinfo' '_modutils' +'modprobe' '_modutils' +'module' '_module' +'module-assistant' '_module-assistant' +'mogrify' '_imagemagick' +'monasca' '_openstack' +'mondoarchive' '_mondo' +'montage' '_imagemagick' +'moosic' '_moosic' +'Mosaic' '_webbrowser' +'mosh' '_mosh' +'mount' '_mount' +'mozilla' '_mozilla' +'mozilla-firefox' '_mozilla' +'mozilla-xremote-client' '_mozilla' +'mpc' '_mpc' +'mplayer' '_mplayer' +'mpstat' '_sysstat' +'mr' '_myrepos' +'mrd' '_mtools' +'mread' '_mtools' +'mren' '_mtools' +'msgchk' '_mh' +'mssh' '_mssh' +'mt' '_mt' +'mtn' '_monotone' +'mtoolstest' '_mtools' +'mtr' '_mtr' +'mtype' '_mtools' +'munchlist' '_ispell' +'mupdf' '_mupdf' +'murano' '_openstack' +'mush' '_mail' +'mussh' '_mussh' +'mutt' '_mutt' +'mux' '_tmuxinator' +'mv' '_mv' +'mvim' '_vim' +'mvn' '_mvn' +'mvnDebug' '_mvn' +'mx' '_hosts' +'mysql' '_mysql_utils' +'mysqladmin' '_mysql_utils' +'mysqldiff' '_mysqldiff' +'mysqldump' '_mysql_utils' +'mysqlimport' '_mysql_utils' +'mysqlshow' '_mysql_utils' +'nail' '_mail' +'nano' '_nano' +'nanoc' '_nanoc' +'native2ascii' '_java' +'nautilus' '_nautilus' +'nawk' '_awk' +'nc' '_netcat' +'ncal' '_cal' +'ncftp' '_ncftp' +'ncl' '_nedit' +'nedit' '_nedit' +'nedit-nc' '_nedit' +'neo' '_neo' +'neofetch' '_neofetch' +'netcat' '_netcat' +'netrik' '_webbrowser' +'netscape' '_netscape' +'netstat' '_netstat' +'networkctl' '_networkctl' +'networkQuality' '_networkQuality' +'networksetup' '_networksetup' +'neutron' '_openstack' +'new' '_mh' +'newgrp' '_groups' +'next' '_mh' +'nfc' '_tlp-radio-device' +'nft' '_nftables' +'nginx' '_nginx' +'ngrep' '_ngrep' +'nice' '_nice' +'nkf' '_nkf' +'nl' '_nl' +'nm' '_nm' +'nmap' '_nmap' +'nmblookup' '_samba' +'nmcli' '_networkmanager' +'nocorrect' '_precommand' +'node' '_node' +'noglob' '_precommand' +'nohup' '_precommand' +'nova' '_openstack' +'npm' '_npm' +'ns' '_hosts' +'nsenter' '_nsenter' +'nslookup' '_nslookup' +'ntalk' '_other_accounts' +'numfmt' '_numfmt' +'nvim' '_vim' +'nvm' '_nvm' +'_nvme' '_nvme' +'nvme' '_nvme' +'nvram' '_nvram' +'objdump' '_objdump' +'od' '_od' +'odme' '_object_classes' +'odmget' '_object_classes' +'odmshow' '_object_classes' +'ogg123' '_vorbis' +'oggdec' '_vorbis' +'oggenc' '_vorbis' +'ogginfo' '_vorbis' +'oksh' '_sh' +'okular' '_okular' +'oomctl' '_oomctl' +'open' '_open' +'openssl' '_openssl' +'openstack' '_openstack' +'openvpn3' '_openvpn3' +'opera' '_webbrowser' +'opera-next' '_webbrowser' +'opkg' '_opkg' +'optirun' '_optirun' +'opusdec' '_opustools' +'opusenc' '_opustools' +'opusinfo' '_opustools' +'osascript' '_osascript' +'osc' '_osc' +'otool' '_otool' +'p11-kit' '_p11-kit' +'p4' '_perforce' +'p4d' '_perforce' +'pacat' '_pulseaudio' +'pack' '_pack' +'packf' '_mh' +'pacmd' '_pulseaudio' +'pactl' '_pulseaudio' +'padsp' '_pulseaudio' +'pandoc' '_pandoc' +'paplay' '_pulseaudio' +'-parameter-' '_parameter' +'parec' '_pulseaudio' +'parecord' '_pulseaudio' +'parsehdlist' '_urpmi' +'passwd' '_users' +'paste' '_paste' +'pasuspender' '_pulseaudio' +'patch' '_patch' +'patool' '_patool' +'pax' '_pax' +'pbcopy' '_pbcopy' +'pbpaste' '_pbcopy' +'pbuilder' '_pbuilder' +'pcat' '_pack' +'pcp-htop' '_htop' +'pcred' '_pids' +'pdf2dsc' '_pdf' +'pdf2ps' '_pdf' +'pdffonts' '_pdf' +'pdfimages' '_pdf' +'pdfinfo' '_pdf' +'pdfjadetex' '_tex' +'pdflatex' '_tex' +'pdfopt' '_pdf' +'pdftex' '_tex' +'pdftexi2dvi' '_texinfo' +'pdftk' '_pdftk' +'pdftopbm' '_pdf' +'pdftops' '_pdf' +'pdftotext' '_pdf' +'pdksh' '_sh' +'perf' '_perf' +'periscope' '_periscope' +'perl' '_perl' +'perldoc' '_perldoc' +'pfctl' '_pfctl' +'pfexec' '_pfexec' +'pfiles' '_pids' +'pflags' '_pids' +'pg_config' '_postgresql' +'pg_ctl' '_postgresql' +'pg_dump' '_postgresql' +'pg_dumpall' '_postgresql' +'pg_isready' '_postgresql' +'pgrep' '_pgrep' +'pg_restore' '_postgresql' +'pg_upgrade' '_postgresql' +'phing' '_phing' +'php' '_php' +'pick' '_mh' +'picocom' '_picocom' +'pidof' '_pidof' +'pidstat' '_sysstat' +'pigz' '_gzip' +'pine' '_pine' +'pinef' '_pine' +'pinfo' '_texinfo' +'ping' '_ping' +'ping6' '_ping' +'piuparts' '_piuparts' +'pixz' '_pixz' +'pkcon' '_pkcon' +'pkg' '_pkg5' +'pkg_add' '_bsd_pkg' +'pkgadd' '_pkgadd' +'pkg-config' '_pkg-config' +'pkg_create' '_bsd_pkg' +'pkg_delete' '_bsd_pkg' +'pkgin' '_pkgin' +'pkg_info' '_bsd_pkg' +'pkginfo' '_pkginfo' +'pkgrm' '_pkgrm' +'pkgtool' '_pkgtool' +'pkill' '_pgrep' +'play' '_play' +'pldd' '_pids' +'plutil' '_plutil' +'pm2' '_pm2' +'pmake' '_make' +'pman' '_perl_modules' +'pmap' '_pmap' +'pmcat' '_perl_modules' +'pmdesc' '_perl_modules' +'pmeth' '_perl_modules' +'pmexp' '_perl_modules' +'pmfunc' '_perl_modules' +'pmload' '_perl_modules' +'pmls' '_perl_modules' +'pmpath' '_perl_modules' +'pmvers' '_perl_modules' +'podgrep' '_perl_modules' +'podman' '_podman' +'podpath' '_perl_modules' +'podtoc' '_perl_modules' +'poff' '_pon' +'policytool' '_java' +'pon' '_pon' +'popd' '_directory_stack' +'port' '_port' +'portaudit' '_portaudit' +'portlint' '_portlint' +'portmaster' '_portmaster' +'portsnap' '_portsnap' +'postconf' '_postfix' +'postgres' '_postgresql' +'postmaster' '_postgresql' +'postqueue' '_postfix' +'postsuper' '_postfix' +'powerd' '_powerd' +'pr' '_pr' +'pre-commit' '_pre-commit' +'prev' '_mh' +'print' '_print' +'printenv' '_printenv' +'printf' '_print' +'procstat' '_procstat' +'prompt' '_prompt' +'protoc' '_protoc' +'prove' '_prove' +'prs' '_sccs' +'prstat' '_prstat' +'prt' '_sccs' +'prun' '_pids' +'ps' '_ps' +'ps2ascii' '_pspdf' +'ps2epsi' '_postscript' +'ps2pdf' '_postscript' +'ps2pdf12' '_postscript' +'ps2pdf13' '_postscript' +'ps2pdf14' '_postscript' +'ps2pdfwr' '_postscript' +'ps2ps' '_postscript' +'psbook' '_psutils' +'pscp' '_pscp' +'pscp.exe' '_pscp' +'psed' '_sed' +'psig' '_pids' +'psmerge' '_psutils' +'psmulti' '_postscript' +'psnup' '_psutils' +'psql' '_postgresql' +'psresize' '_psutils' +'psselect' '_psutils' +'pstack' '_pids' +'pstoedit' '_pspdf' +'pstop' '_pids' +'pstops' '_psutils' +'pstotgif' '_pspdf' +'pswrap' '_postscript' +'ptree' '_ptree' +'ptx' '_ptx' +'pulseaudio' '_pulseaudio' +'pump' '_pump' +'pushd' '_cd' +'putclip' '_putclip' +'putclip.exe' '_putclip' +'pv' '_pv' +'pwait' '_pids' +'pwdx' '_pids' +'pwgen' '_pwgen' +'pygmentize' '_pygmentize' +'pyhtmlizer' '_twisted' +'qdbus' '_qdbus' +'qiv' '_qiv' +'qmk' '_qmk' +'qtplay' '_qtplay' +'querybts' '_bug' +'quilt' '_quilt' +'r' '_fc' +'rails' '_rails' +'rake' '_rake' +'ralio' '_ralio' +'ranlib' '_ranlib' +'rar' '_rar' +'rc' '_sh' +'rcctl' '_rcctl' +'rclone' '_rclone' +'rcp' '_rlogin' +'rcs' '_rcs' +'rcsdiff' '_rcs' +'rdesktop' '_rdesktop' +'rdfind' '_rdfind' +'read' '_read' +'readelf' '_readelf' +'readlink' '_readlink' +'readonly' '_typeset' +'readshortcut' '_readshortcut' +'readshortcut.exe' '_readshortcut' +'rebootin' '_rebootin' +'rec' '_redis-cli' +'-redirect-' '_redirect' +'-redirect-,<,bunzip2' '_bzip2' +'-redirect-,<,bzip2' '_bzip2' +'-redirect-,>,bzip2' '_bzip2' +'-redirect-,<,compress' '_compress' +'-redirect-,>,compress' '_compress' +'-redirect-,-default-,-default-' '_files' +'-redirect-,<,gunzip' '_gzip' +'-redirect-,<,gzip' '_gzip' +'-redirect-,>,gzip' '_gzip' +'-redirect-,<,uncompress' '_compress' +'-redirect-,<,unxz' '_xz' +'-redirect-,<,xz' '_xz' +'-redirect-,>,xz' '_xz' +'redis-cli' '_redis-cli' +'refile' '_mh' +'rehash' '_hash' +'reindexdb' '_postgresql' +'reload' '_initctl' +'removepkg' '_pkgtool' +'remsh' '_rlogin' +'renice' '_renice' +'repl' '_mh' +'reportbug' '_bug' +'reprepro' '_reprepro' +'resolvectl' '_resolvectl' +'restart' '_initctl' +'restic' '_restic' +'retawq' '_webbrowser' +'rev' '_rev' +'rfkill' '_rfkill' +'rg' '_rg' +'rgrep' '_grep' +'rgview' '_vim' +'rgvim' '_vim' +'ri' '_ri' +'rkt' '_rkt' +'rlogin' '_rlogin' +'rm' '_rm' +'rmadison' '_madison' +'rmd160' '_cksum' +'rmdel' '_sccs' +'rmdir' '_rmdir' +'rmf' '_mh' +'rmic' '_java' +'rmid' '_java' +'rmiregistry' '_java' +'rmlint' '_rmlint' +'rmlint.sh' '_rmlint' +'rmm' '_mh' +'rmmod' '_modutils' +'route' '_route' +'rpm' '_rpm' +'rpmbuild' '_rpm' +'rpmkeys' '_rpm' +'rpmquery' '_rpm' +'rpmsign' '_rpm' +'rpmspec' '_rpm' +'rpmverify' '_rpm' +'rrdtool' '_rrdtool' +'rsh' '_rlogin' +'rslsync' '_rslsync' +'rspec' '_rspec' +'rsvm' '_rsvm' +'rsync' '_rsync' +'rtin' '_tin' +'rubber' '_rubber' +'rubber-info' '_rubber' +'rubber-pipe' '_rubber' +'rubocop' '_rubocop' +'ruby' '_ruby' +'ruby-mri' '_ruby' +'run0' '_run0' +'run-help' '_run-help' +'run-on-ac' '_tlp-run-on' +'run-on-bat' '_tlp-run-on' +'rup' '_hosts' +'rusage' '_precommand' +'rview' '_vim' +'rvim' '_vim' +'rwho' '_hosts' +'rxvt' '_urxvt' +'s2p' '_sed' +'sact' '_sccs' +'sadf' '_sysstat' +'sahara' '_openstack' +'sar' '_sysstat' +'savecore' '_savecore' +'say' '_say' +'sbt' '_sbt' +'sbuild' '_sbuild' +'scala' '_scala' +'scalac' '_scala' +'scan' '_mh' +'sccs' '_sccs' +'sccsdiff' '_sccs' +'sched' '_sched' +'schedtool' '_schedtool' +'schroot' '_schroot' +'scl' '_scl' +'scons' '_scons' +'scp' '_ssh' +'screen' '_screen' +'screencapture' '_screencapture' +'script' '_script' +'scriptreplay' '_script' +'scrub' '_scrub' +'scselect' '_scselect' +'sc_usage' '_sc_usage' +'scutil' '_scutil' +'sdd' '_sdd' +'sdkmanager' '_sdkmanager' +'seaf-cli' '_seafile' +'sed' '_sed' +'senlin' '_openstack' +'seq' '_seq' +'serialver' '_java' +'service' '_service' +'set' '_set' +'setcap' '_setcap' +'setfacl' '_setfacl' +'setfacl.exe' '_setfacl' +'setfattr' '_attr' +'setopt' '_setopt' +'setpriv' '_setpriv' +'setsid' '_setsid' +'setxkbmap' '_setxkbmap' +'sfdx' '_sfdx' +'sftp' '_ssh' +'sh' '_sh' +'sha1' '_cksum' +'sha1sum' '_md5sum' +'sha224sum' '_md5sum' +'sha256' '_cksum' +'sha256sum' '_md5sum' +'sha384' '_cksum' +'sha384sum' '_md5sum' +'sha512' '_cksum' +'sha512sum' '_md5sum' +'sha512t256' '_cksum' +'shallow-backup' '_shallow-backup' +'shasum' '_shasum' +'shellcheck' '_shellcheck' +'shift' '_arrays' +'show' '_mh' +'showchar' '_psutils' +'showmount' '_showmount' +'showoff' '_showoff' +'shred' '_shred' +'shuf' '_shuf' +'shutdown' '_shutdown' +'signify' '_signify' +'sisu' '_sisu' +'skein1024' '_cksum' +'skein256' '_cksum' +'skein512' '_cksum' +'skipstone' '_webbrowser' +'skopeo' '_skopeo' +'slabtop' '_slabtop' +'slitex' '_tex' +'slocate' '_locate' +'slogin' '_ssh' +'slrn' '_slrn' +'smartctl' '_smartmontools' +'smbclient' '_samba' +'smbcontrol' '_samba' +'smbstatus' '_samba' +'smit' '_smit' +'smitty' '_smit' +'snapper' '_snapper' +'snoop' '_snoop' +'soa' '_hosts' +'socket' '_socket' +'sockstat' '_sockstat' +'softwareupdate' '_softwareupdate' +'sort' '_sort' +'sortm' '_mh' +'source' '_source' +'spamassassin' '_spamassassin' +'split' '_split' +'splitdiff' '_patchutils' +'sqlite' '_sqlite' +'sqlite3' '_sqlite' +'sqsh' '_sqsh' +'sr' '_surfraw' +'srm' '_srm' +'srptool' '_gnutls' +'ss' '_ss' +'ssh' '_ssh' +'ssh-add' '_ssh' +'ssh-agent' '_ssh' +'ssh-copy-id' '_ssh' +'sshfs' '_sshfs' +'ssh-keygen' '_ssh' +'ssh-keyscan' '_ssh' +'stack' '_stack' +'star' '_tar' +'start' '_initctl' +'stat' '_stat' +'status' '_initctl' +'stdbuf' '_stdbuf' +'stg' '_stgit' +'stop' '_initctl' +'stow' '_stow' +'strace' '_strace' +'strace64' '_strace' +'strftime' '_strftime' +'strings' '_strings' +'strip' '_strip' +'strongswan' '_ipsec' +'stty' '_stty' +'su' '_su' +'subl' '_sublimetext' +'subliminal' '_subliminal' +'-subscript-' '_subscript' +'sudo' '_sudo' +'sudoedit' '_sudo' +'sum' '_cksum' +'supervisorctl' '_supervisorctl' +'supervisord' '_supervisord' +'surfraw' '_surfraw' +'SuSEconfig' '_SUSEconfig' +'sv' '_runit' +'svcadm' '_svcadm' +'svccfg' '_svccfg' +'svcprop' '_svcprop' +'svcs' '_svcs' +'svm' '_svm' +'svn' '_subversion' +'svnadmin' '_subversion' +'svnadmin-static' '_subversion' +'svn-buildpackage' '_svn-buildpackage' +'svnlite' '_subversion' +'svnliteadmin' '_subversion' +'swaks' '_swaks' +'swanctl' '_swanctl' +'swaplabel' '_swaplabel' +'swapoff' '_swapoff' +'swapon' '_swapon' +'swift' '_swift' +'swiftc' '_swift' +'sw_vers' '_sw_vers' +'sync' '_nothing' +'sysclean' '_sysclean' +'sysctl' '_sysctl' +'sysmerge' '_sysmerge' +'syspatch' '_syspatch' +'sysrc' '_sysrc' +'systat' '_systat' +'systemctl' '_systemctl' +'systemd-analyze' '_systemd-analyze' +'systemd-ask-password' '_systemd' +'systemd-cat' '_systemd' +'systemd-cgls' '_systemd' +'systemd-cgtop' '_systemd' +'systemd-delta' '_systemd-delta' +'systemd-detect-virt' '_systemd' +'systemd-inhibit' '_systemd-inhibit' +'systemd-machine-id-setup' '_systemd' +'systemd-notify' '_systemd' +'systemd-nspawn' '_systemd-nspawn' +'systemd-path' '_systemd-path' +'systemd-resolve' '_resolvectl' +'systemd-run' '_systemd-run' +'systemd-tmpfiles' '_systemd-tmpfiles' +'systemd-tty-ask-password-agent' '_systemd' +'system_profiler' '_system_profiler' +'sysupgrade' '_sysupgrade' +'tac' '_tac' +'tacker' '_openstack' +'tail' '_tail' +'talk' '_other_accounts' +'tar' '_tar' +'tardy' '_tardy' +'tcpdump' '_tcpdump' +'tcp_open' '_tcpsys' +'tcptraceroute' '_tcptraceroute' +'tcsh' '_sh' +'tda' '_devtodo' +'tdd' '_devtodo' +'tde' '_devtodo' +'tdr' '_devtodo' +'teamocil' '_teamocil' +'tee' '_tee' +'telnet' '_telnet' +'tex' '_tex' +'texi2any' '_texinfo' +'texi2dvi' '_texinfo' +'texi2pdf' '_texinfo' +'texindex' '_texinfo' +'tg' '_topgit' +'thor' '_thor' +'tidy' '_tidy' +'tig' '_git' +'-tilde-' '_tilde' +'time' '_precommand' +'timedatectl' '_timedatectl' +'timeout' '_timeout' +'times' '_nothing' +'tin' '_tin' +'tkconch' '_twisted' +'tkinfo' '_texinfo' +'tla' '_tla' +'tload' '_tload' +'tlp' '_tlp' +'tlp-rdw' '_tlp-rdw' +'tlp-stat' '_tlp-stat' +'tmux' '_tmux' +'tmuxinator' '_tmuxinator' +'tmuxp' '_tmuxp' +'todo' '_devtodo' +'todo.sh' '_todo.sh' +'toilet' '_toilet' +'_toolbox' '_toolbox' +'toolbox' '_toolbox' +'top' '_top' +'totdconfig' '_totd' +'touch' '_touch' +'tox' '_tox' +'tpb' '_tpb' +'tpkg-debarch' '_toolchain-source' +'tpkg-install' '_toolchain-source' +'tpkg-install-libc' '_toolchain-source' +'tpkg-make' '_toolchain-source' +'tpkg-update' '_toolchain-source' +'tput' '_tput' +'tr' '_tr' +'tracepath' '_tracepath' +'tracepath6' '_tracepath' +'traceroute' '_hosts' +'transmission-remote' '_transmission' +'trap' '_trap' +'trash' '_trash' +'tree' '_tree' +'trial' '_twisted' +'trove' '_openstack' +'true' '_nothing' +'truncate' '_truncate' +'truss' '_truss' +'trust' '_trust' +'tryaffix' '_ispell' +'tsc' '_tsc' +'ts-node' '_ts-node' +'tty' '_tty' +'ttyctl' '_ttyctl' +'tunctl' '_uml' +'tune2fs' '_tune2fs' +'tunes2pod' '_gnupod' +'tunes2pod.pl' '_gnupod' +'twidge' '_twidge' +'twist' '_twisted' +'twistd' '_twisted' +'txt' '_hosts' +'type' '_which' +'typeset' '_typeset' +'ubuntu-distro-info' '_distro_info' +'udevadm' '_udevadm' +'udisksctl' '_udisksctl' +'ufw' '_ufw' +'ulimit' '_ulimit' +'uml_mconsole' '_uml' +'uml_moo' '_uml' +'uml_switch' '_uml' +'umount' '_mount' +'unace' '_unace' +'unalias' '_aliases' +'uname' '_uname' +'uncompress' '_compress' +'unexpand' '_unexpand' +'unfunction' '_functions' +'unget' '_sccs' +'unhash' '_unhash' +'uniq' '_uniq' +'unison' '_unison' +'units' '_units' +'unix2dos' '_dos2unix' +'unix2mac' '_dos2unix' +'unlimit' '_limits' +'unlz4' '_lz4' +'unlzma' '_xz' +'unpack' '_pack' +'unpigz' '_gzip' +'unrar' '_rar' +'unset' '_vars' +'unsetopt' '_setopt' +'unshare' '_unshare' +'unwrapdiff' '_patchutils' +'unxz' '_xz' +'unzip' '_zip' +'update-alternatives' '_update-alternatives' +'update-rc.d' '_update-rc.d' +'upgradepkg' '_pkgtool' +'upower' '_upower' +'uptime' '_uptime' +'urpme' '_urpmi' +'urpmf' '_urpmi' +'urpmi' '_urpmi' +'urpmi.addmedia' '_urpmi' +'urpmi.removemedia' '_urpmi' +'urpmi.update' '_urpmi' +'urpmq' '_urpmi' +'urxvt' '_urxvt' +'urxvt256c' '_urxvt' +'urxvt256cc' '_urxvt' +'urxvt256c-ml' '_urxvt' +'urxvt256c-mlc' '_urxvt' +'urxvtc' '_urxvt' +'usbconfig' '_usbconfig' +'uscan' '_uscan' +'useradd' '_user_admin' +'userdel' '_users' +'usermod' '_user_admin' +'uuidd' '_uuidd' +'uuidgen' '_uuidgen' +'uuidparse' '_uuidparse' +'vacuumdb' '_postgresql' +'val' '_sccs' +'valgrind' '_valgrind' +'-value-' '_value' +'-value-,ADB_TRACE,-default-' '_adb' +'-value-,ANDROID_LOG_TAGS,-default-' '_adb' +'-value-,ANDROID_SERIAL,-default-' '_adb' +'-value-,ANSIBLE_INVENTORY_ENABLED,-default-' '_ansible' +'-value-,ANSIBLE_STDOUT_CALLBACK,-default-' '_ansible' +'-value-,ANT_ARGS,-default-' '_ant' +'-value-,CFLAGS,-default-' '_gcc' +'-value-,CMAKE_GENERATOR,-default-' '_cmake' +'-value-,CPPFLAGS,-default-' '_gcc' +'-value-,CXXFLAGS,-default-' '_gcc' +'-value-,DBUS_SESSION_BUS_ADDRESS,-default-' '_sd_bus_address' +'-value-,DBUS_SYSTEM_BUS_ADDRESS,-default-' '_sd_bus_address' +'-value-,-default-,-command-' '_zargs' +'-value-,-default-,-default-' '_value' +'-value-,DISPLAY,-default-' '_x_display' +'-value-,GREP_OPTIONS,-default-' '_grep' +'-value-,GZIP,-default-' '_gzip' +'-value-,LANG,-default-' '_locales' +'-value-,LANGUAGE,-default-' '_locales' +'-value-,LD_DEBUG,-default-' '_ld_debug' +'-value-,LDFLAGS,-default-' '_gcc' +'-value-,LESSCHARSET,-default-' '_less' +'-value-,LESS,-default-' '_less' +'-value-,LOOPDEV_DEBUG,-default-' '_losetup' +'-value-,LPDEST,-default-' '_printers' +'-value-,MPD_HOST,-default' '_mpc' +'-value-,P4CLIENT,-default-' '_perforce' +'-value-,P4MERGE,-default-' '_perforce' +'-value-,P4PORT,-default-' '_perforce' +'-value-,P4USER,-default-' '_perforce' +'-value-,PERLDOC,-default-' '_perldoc' +'-value-,PRINTER,-default-' '_printers' +'-value-,PROMPT2,-default-' '_ps1234' +'-value-,PROMPT3,-default-' '_ps1234' +'-value-,PROMPT4,-default-' '_ps1234' +'-value-,PROMPT,-default-' '_ps1234' +'-value-,PS1,-default-' '_ps1234' +'-value-,PS2,-default-' '_ps1234' +'-value-,PS3,-default-' '_ps1234' +'-value-,PS4,-default-' '_ps1234' +'-value-,RPROMPT2,-default-' '_ps1234' +'-value-,RPROMPT,-default-' '_ps1234' +'-value-,RPS1,-default-' '_ps1234' +'-value-,RPS2,-default-' '_ps1234' +'-value-,SPROMPT,-default-' '_ps1234' +'-value-,TERM,-default-' '_terminals' +'-value-,TERMINFO_DIRS,-default-' '_dir_list' +'-value-,TZ,-default-' '_time_zone' +'-value-,VALGRIND_OPTS,-default-' '_valgrind' +'-value-,WWW_HOME,-default-' '_urls' +'-value-,XML_CATALOG_FILES,-default-' '_xmlsoft' +'-value-,XZ_DEFAULTS,-default-' '_xz' +'-value-,XZ_OPT,-default-' '_xz' +'-vared-' '_in_vared' +'vared' '_vared' +'varlinkctl' '_varlinkctl' +'vboxheadless' '_virtualbox' +'VBoxHeadless' '_virtualbox' +'vboxmanage' '_virtualbox' +'VBoxManage' '_virtualbox' +'vcsh' '_vcsh' +'vcs_info_hookadd' '_vcs_info' +'vcs_info_hookdel' '_vcs_info' +'vi' '_vi' +'view' '_vi' +'vim' '_vim' +'vim-addons' '_vim-addons' +'vimdiff' '_vim' +'vipw' '_vipw' +'virsh' '_libvirt' +'virt-admin' '_libvirt' +'virt-host-validate' '_libvirt' +'virt-pki-validate' '_libvirt' +'virt-xml-validate' '_libvirt' +'visudo' '_visudo' +'vitrage' '_openstack' +'vmctl' '_vmctl' +'vmstat' '_vmstat' +'vncserver' '_vnc' +'vncviewer' '_vnc' +'vnstat' '_vnstat' +'vorbiscomment' '_vorbis' +'vpnc' '_vpnc' +'vpnc-connect' '_vpnc' +'vserver' '_vserver' +'w' '_w' +'w3m' '_w3m' +'wait' '_wait' +'wajig' '_wajig' +'wanna-build' '_wanna-build' +'watch' '_watch' +'watcher' '_openstack' +'wc' '_wc' +'wdctl' '_wdctl' +'wemux' '_wemux' +'wget' '_wget' +'wg-quick' '_wg-quick' +'what' '_sccs' +'whatis' '_man' +'whence' '_which' +'where' '_which' +'whereis' '_whereis' +'which' '_which' +'who' '_who' +'whoami' '_nothing' +'whois' '_whois' +'whom' '_mh' +'wifi' '_tlp-radio-device' +'wiggle' '_wiggle' +'wipefs' '_wipefs' +'wl-copy' '_wl-copy' +'wl-paste' '_wl-paste' +'wodim' '_cdrecord' +'wpa_cli' '_wpa_cli' +'wpctl' '_wpctl' +'write' '_users_on' +'wwan' '_tlp-radio-device' +'www' '_webbrowser' +'xargs' '_xargs' +'xattr' '_attr' +'xauth' '_xauth' +'xautolock' '_xautolock' +'xclip' '_xclip' +'xcode-select' '_xcode-select' +'xdpyinfo' '_x_utils' +'xdvi' '_xdvi' +'xelatex' '_tex' +'xetex' '_tex' +'xev' '_x_utils' +'xfd' '_x_utils' +'xfig' '_xfig' +'xfontsel' '_x_utils' +'xfreerdp' '_rdesktop' +'xhost' '_x_utils' +'xinput' '_xinput' +'xkill' '_x_utils' +'xli' '_xloadimage' +'xloadimage' '_xloadimage' +'xlsatoms' '_x_utils' +'xlsclients' '_x_utils' +'xml' '_xmlstarlet' +'xmllint' '_xmlsoft' +'xmlstarlet' '_xmlstarlet' +'xmms2' '_xmms2' +'xmodmap' '_xmodmap' +'xmosaic' '_webbrowser' +'xon' '_x_utils' +'xournal' '_xournal' +'xpdf' '_xpdf' +'xping' '_hosts' +'xprop' '_x_utils' +'xrandr' '_xrandr' +'xrdb' '_x_utils' +'xscreensaver-command' '_xscreensaver' +'xsel' '_xsel' +'xset' '_xset' +'xsetbg' '_xloadimage' +'xsetroot' '_x_utils' +'xsltproc' '_xmlsoft' +'xterm' '_xterm' +'xtightvncviewer' '_vnc' +'xtp' '_imagemagick' +'xv' '_xv' +'xview' '_xloadimage' +'xvnc4viewer' '_vnc' +'xvncviewer' '_vnc' +'xwd' '_x_utils' +'xwininfo' '_x_utils' +'xwit' '_xwit' +'xwud' '_x_utils' +'xxd' '_xxd' +'xz' '_xz' +'xzcat' '_xz' +'yafc' '_yafc' +'yamllint' '_yamllint' +'yarn' '_yarn' +'yash' '_sh' +'yast' '_yast' +'yast2' '_yast' +'ypbind' '_yp' +'ypcat' '_yp' +'ypmatch' '_yp' +'yppasswd' '_yp' +'yppoll' '_yp' +'yppush' '_yp' +'ypserv' '_yp' +'ypset' '_yp' +'ypwhich' '_yp' +'ypxfr' '_yp' +'ytalk' '_other_accounts' +'yum' '_yum' +'yumdb' '_yum' +'zargs' '_zargs' +'zcalc' '_zcalc' +'-zcalc-line-' '_zcalc_line' +'zcash-cli' '_zcash-cli' +'zcat' '_zcat' +'zcompile' '_zcompile' +'zcp' '_zmv' +'zdb' '_zfs' +'zdelattr' '_zattr' +'zdump' '_zdump' +'zeal' '_zeal' +'zed' '_zed' +'zegrep' '_grep' +'zen' '_webbrowser' +'zf_chgrp' '_chown' +'zf_chmod' '_chmod' +'zf_chown' '_chown' +'zfgrep' '_grep' +'zf_ln' '_ln' +'zf_mkdir' '_mkdir' +'zf_mv' '_mv' +'zf_rm' '_rm' +'zf_rmdir' '_rmdir' +'zfs' '_zfs' +'zgetattr' '_zattr' +'zgrep' '_grep' +'zinit' '_zinit' +'zip' '_zip' +'zipinfo' '_zip' +'zle' '_zle' +'zlistattr' '_zattr' +'zln' '_zmv' +'zlogin' '_zlogin' +'zmail' '_mail' +'zmodload' '_zmodload' +'zmv' '_zmv' +'zone' '_hosts' +'zoneadm' '_zoneadm' +'zoxide' '_zoxide' +'zparseopts' '_zparseopts' +'zpool' '_zpool' +'zpty' '_zpty' +'zramctl' '_zramctl' +'zsetattr' '_zattr' +'zsh' '_zsh' +'zsh-mime-handler' '_zsh-mime-handler' +'zsocket' '_zsocket' +'zstat' '_stat' +'zstyle' '_zstyle' +'ztodo' '_ztodo' +'zun' '_openstack' +'zxpdf' '_xpdf' +'zypper' '_zypper' +) + +_services=( +'bzcat' 'bunzip2' +'dch' 'debchange' +'gchgrp' 'chgrp' +'gchown' 'chown' +'gnupod_addsong.pl' 'gnupod_addsong' +'gnupod_check.pl' 'gnupod_check' +'gnupod_INIT.pl' 'gnupod_INIT' +'gnupod_search.pl' 'gnupod_search' +'gpg2' 'gpg' +'gzcat' 'gunzip' +'https' 'http' +'iceweasel' 'firefox' +'lzcat' 'unxz' +'lzma' 'xz' +'Mail' 'mail' +'mailx' 'mail' +'mktunes.pl' 'mktunes' +'nail' 'mail' +'ncl' 'nc' +'nedit-nc' 'nc' +'pcat' 'unpack' +'-redirect-,<,bunzip2' 'bunzip2' +'-redirect-,<,bzip2' 'bzip2' +'-redirect-,>,bzip2' 'bunzip2' +'-redirect-,<,compress' 'compress' +'-redirect-,>,compress' 'uncompress' +'-redirect-,<,gunzip' 'gunzip' +'-redirect-,<,gzip' 'gzip' +'-redirect-,>,gzip' 'gunzip' +'-redirect-,<,uncompress' 'uncompress' +'-redirect-,<,unxz' 'unxz' +'-redirect-,<,xz' 'xz' +'-redirect-,>,xz' 'unxz' +'remsh' 'rsh' +'slogin' 'ssh' +'svnadmin-static' 'svnadmin' +'svnlite' 'svn' +'svnliteadmin' 'svnadmin' +'tunes2pod.pl' 'tunes2pod' +'unlzma' 'unxz' +'vboxheadless' 'vboxheadless' +'VBoxHeadless' 'vboxheadless' +'vboxmanage' 'vboxmanage' +'VBoxManage' 'vboxmanage' +'xelatex' 'latex' +'xetex' 'tex' +'xzcat' 'unxz' +'zf_chgrp' 'chgrp' +'zf_chown' 'chown' +) + +_patcomps=( +'*/(init|rc[0-9S]#).d/*' '_init_d' +) + +_postpatcomps=( +'_*' '_compadd' +'c++-*' '_gcc' +'g++-*' '_gcc' +'gcc-*' '_gcc' +'gem[0-9.]#' '_gem' +'lua[0-9.-]##' '_lua' +'(p[bgpn]m*|*top[bgpn]m)' '_pbm' +'php[0-9.-]' '_php' +'pip[0-9.]#' '_pip' +'pydoc[0-9.]#' '_pydoc' +'python[0-9.]#' '_python' +'qemu(|-system-*)' '_qemu' +'rmlint.*.sh' '_rmlint' +'(ruby|[ei]rb)[0-9.]#' '_ruby' +'shasum(|5).*' '_shasum' +'(texi(2*|ndex))' '_texi' +'(tiff*|*2tiff|pal2rgb)' '_tiff' +'-value-,CCACHE_*,-default-' '_ccache' +'-value-,CGO*,-default-' '_golang' +'-value-,(ftp|http(|s))_proxy,-default-' '_urls' +'-value-,GO*,-default-' '_golang' +'-value-,LC_*,-default-' '_locales' +'-value-,*path,-default-' '_directories' +'-value-,*PATH,-default-' '_dir_list' +'-value-,RUBY(LIB|OPT|PATH),-default-' '_ruby' +'*/X11(|R<4->)/*' '_x_arguments' +'yodl(|2*)' '_yodl' +'zf*' '_zftp' +) + +_compautos=( +'_call_program' '+X' +) + +zle -C _bash_complete-word .complete-word _bash_completions +zle -C _bash_list-choices .list-choices _bash_completions +zle -C _complete_debug .complete-word _complete_debug +zle -C _complete_help .complete-word _complete_help +zle -C _complete_tag .complete-word _complete_tag +zle -C _correct_filename .complete-word _correct_filename +zle -C _correct_word .complete-word _correct_word +zle -C _expand_alias .complete-word _expand_alias +zle -C _expand_word .complete-word _expand_word +zle -C _fzf-tab-apply complete-word _fzf-tab-apply +zle -C _history-complete-newer .complete-word _history_complete_word +zle -C _history-complete-older .complete-word _history_complete_word +zle -C _list_expansions .list-choices _expand_word +zle -C _most_recent_file .complete-word _most_recent_file +zle -C _next_tags .list-choices _next_tags +zle -C _read_comp .complete-word _read_comp +bindkey '^X^R' _read_comp +bindkey '^X?' _complete_debug +bindkey '^XC' _correct_filename +bindkey '^Xa' _expand_alias +bindkey '^Xc' _correct_word +bindkey '^Xd' _list_expansions +bindkey '^Xe' _expand_word +bindkey '^Xh' _complete_help +bindkey '^Xm' _most_recent_file +bindkey '^Xn' _next_tags +bindkey '^Xt' _complete_tag +bindkey '^X~' _bash_list-choices +bindkey '^[,' _history-complete-newer +bindkey '^[/' _history-complete-older +bindkey '^[~' _bash_complete-word + +autoload -Uz _afew _age _android _archlinux-java _artisan \ + _atach _avdmanager _bitcoin-cli _blkid _bower \ + _bundle _cap _cask _ccache _cf \ + _chatblade _chcpu _chmem _choc _chpasswd \ + _chromium _clang-check _clang-format _clang-tidy _cmake \ + _coffee _conan _concourse _console _cppcheck \ + _dad _dart _dget _dhcpcd _diana \ + _direnv _distro_info _docpad _do-release-upgrade _drush \ + _ecdsautil _emacs _emacsclient _emulator _envdir \ + _exportfs _fab _fail2ban-client _fail2ban-regex _fallocate \ + _ffind _fleetctl _flutter _fwupdmgr _gas \ + _ghc _gist _git-flow _git-pulls _git-revise \ + _git-wtf _glances _golang _google _gpgconf \ + _grpcurl _gtk-launch _hello _hledger _homestead \ + _httpie _ibus _include-what-you-use _inxi _ipcmk \ + _ipcrm _ipcs _jest _jmeter _jmeter-plugins \ + _jonas _jrnl _kak _kitchen _knife \ + _l3build _language_codes _ldattach _lilypond _lscpu \ + _lsipc _lslocks _lslogins _lsmem _lunchy \ + _mc _mcookie _middleman _mina _mix \ + _mkcert _mssh _mussh _mvn _nano \ + _nanoc _neo _neofetch _networkQuality _nftables \ + _node _nvm _openssl _openvpn3 _optirun \ + _patool _periscope _pgsql_utils _phing _pixz \ + _pkcon _play _pm2 _port _pre-commit \ + _protoc _pygmentize _qmk _rails _ralio \ + _rdfind _redis-cli _rev _rfkill _rkt \ + _rmlint _rslsync _rspec _rsvm _rubocop \ + _sbt _scala _screencapture _scrub _sdd \ + _sdkmanager _setcap _sfdx _shallow-backup _shellcheck \ + _showoff _srm _stack _subliminal _supervisorctl \ + _supervisord _svm _swaplabel _swapoff _swapon \ + _teamocil _thor _tmuxinator _tmuxp _tox \ + _tsc _ts-node _udisksctl _ufw _uuidd \ + _uuidgen _uuidparse _vipw _virtualbox _vnstat \ + _wdctl _wemux _wg-quick _xsel _yamllint \ + _yarn _zcash-cli _zinit _zramctl _alacritty \ + _bluetoothctl _bootctl _busctl _bwrap _code \ + _coredumpctl _curl _distrobox _distrobox-assemble _distrobox_containers \ + _distrobox-create _distrobox-enter _distrobox-ephemeral _distrobox-export _distrobox-generate-entry \ + _distrobox-host-exec _distrobox_images _distrobox-init _distrobox-list _distrobox-rm \ + _distrobox_running_containers _distrobox-stop _distrobox-upgrade _dkms _fastfetch \ + _fd _firewalld _flatpak _hostnamectl _insmod \ + _journalctl _kernel-install _libinput _localectl _loginctl \ + _lsmod _machinectl _networkctl _nvme _oomctl \ + _p11-kit _podman _pulseaudio _rclone _resolvectl \ + _restic _rg _rmmod _run0 _sd_bus_address \ + _sd_hosts_or_user_at_host _sd_machines _sd_outputmodes _sd_unit_files _skopeo \ + _snapper _systemctl _systemd _systemd-analyze _systemd-delta \ + _systemd-inhibit _systemd-nspawn _systemd-path _systemd-run _systemd-tmpfiles \ + _timedatectl _toolbox _trust _udevadm _udisks2 \ + _upower _varlinkctl _wl-copy _wl-paste _wpctl \ + _zoxide _a2ps _a2utils _aap _abcde \ + _absolute_command_paths _ack _acpi _acpitool _acroread \ + _adb _add-zle-hook-widget _add-zsh-hook _alias _aliases \ + _all_labels _all_matches _alsa-utils _alternative _analyseplugin \ + _ansible _ant _antiword _apachectl _apm \ + _approximate _apt _apt-file _aptitude _apt-move \ + _apt-show-versions _arch_archives _arch_namespace _arg_compile __arguments \ + _arguments _arp _arping _arrays _asciidoctor \ + _asciinema _assign _at _attr _augeas \ + _auto-apt _autocd _avahi _awk _axi-cache \ + _base64 _basename _basenc _bash _bash_completions \ + _baudrates _baz _beadm _beep _be_name \ + _bibtex _bind_addresses _bindkey _bison _bittorrent \ + _bogofilter _bpf_filters _bpython _brace_parameter _brctl \ + _bsdconfig _bsd_disks _bsdinstall _bsd_pkg _btrfs \ + _bts _bug _builtin _bzip2 _bzr \ + _cabal _cache_invalid _caffeinate _cal _calendar \ + _call_function _canonical_paths _capabilities _cat _ccal \ + _cd _cdbs-edit-patch _cdcd _cdr _cdrdao \ + _cdrecord _chattr _chcon _chflags _chkconfig \ + _chmod _choom _chown _chroot _chrt \ + _chsh _cksum _clay _cmdambivalent _cmdstring \ + _cmp _code _column _combination _comm \ + _command _command_names _compadd _compdef _complete \ + _complete_debug _complete_help _complete_help_generic _completers _complete_tag \ + _comp_locale _composer _compress _condition _configure \ + _coreadm _correct _correct_filename _correct_word _cowsay \ + _cp _cpio _cplay _cpupower _crontab \ + _cryptsetup _cscope _csplit _cssh _csup \ + _ctags _ctags_tags _cu _curl _cut \ + _cvs _cvsup _cygcheck _cygpath _cygrunsrv \ + _cygserver _cygstart _dak _darcs _date \ + _date_formats _dates _dbus _dchroot _dchroot-dsa \ + _dconf _dcop _dcut _dd _deb_architectures \ + _debbugs_bugnumber _debchange _debcheckout _deb_codenames _debdiff \ + _deb_files _debfoster _deborphan _deb_packages _debsign \ + _debsnap _debuild _default _defaults _delimiters \ + _describe _description _devtodo _df _dhclient \ + _dhcpinfo _dict _dict_words _diff _diff3 \ + _diff_options _diffstat _dig _directories _directory_stack \ + _dir_list _dirs _disable _dispatch _django \ + _dkms _dladm _dlocate _dmesg _dmidecode \ + _dnf _dnf5 _dns_types _doas _domains \ + _dos2unix _dpatch-edit-patch _dpkg _dpkg-buildpackage _dpkg-cross \ + _dpkg-repack _dpkg_source _dput _drill _dropbox \ + _dscverify _dsh _dtrace _dtruss _du \ + _dumpadm _dumper _dupload _dvi _dynamic_directory_name \ + _e2label _ecasound _echotc _echoti _ed \ + _elfdump _elinks _email_addresses _emulate _enable \ + _enscript _entr _env _eog _equal \ + _espeak _etags _ethtool _evince _exec \ + _expand _expand_alias _expand_word _extensions _external_pwds \ + _fakeroot _fbsd_architectures _fbsd_device_types _fc _feh \ + _fetch _fetchmail _ffmpeg _figlet _file_descriptors \ + _file_flags _file_modes _files _file_systems _find \ + _findmnt _find_net_interfaces _finger _fink _first \ + _flac _flex _floppy _flowadm _fmadm \ + _fmt _fold _fortune _free _freebsd-update \ + _fsh _fstat _fs_usage _functions _fuse_arguments \ + _fuser _fusermount _fuse_values _fw_update _gcc \ + _gcore _gdb _geany _gem _generic \ + _genisoimage _getclip _getconf _getent _getfacl \ + _getmail _getopt _ghostscript _git _git-buildpackage \ + _global _global_tags _globflags _globqual_delims _globquals \ + _gnome-gv _gnu_generic _gnupod _gnutls _go \ + _gpasswd _gpg _gphoto2 _gprof _gqview \ + _gradle _graphicsmagick _grep _grep-excuses _groff \ + _groups _growisofs _gsettings _gstat _guard \ + _guilt _gv _gzip _hash _have_glob_qual \ + _hdiutil _head _hexdump _history _history_complete_word \ + _history_modifiers _host _hostname _hosts _htop \ + _hwinfo _iconv _iconvconfig _id _ifconfig \ + _iftop _ignored _imagemagick _inetadm _initctl \ + _init_d _install _in_vared _invoke-rc.d _ionice \ + _iostat _ip _ipadm _ipfw _ipsec \ + _ipset _iptables _irssi _ispell _iwconfig \ + _jail _jails _java _java_class _jexec \ + _jls _jobs _jobs_bg _jobs_builtin _jobs_fg \ + _joe _join _jot _jq _kdeconnect \ + _kdump _kfmclient _kill _killall _kld \ + _knock _kpartx _ktrace _ktrace_points _kvno \ + _last _ldap _ldconfig _ldd _ld_debug \ + _less _lha _libvirt _lighttpd _limit \ + _limits _links _lintian _list _list_files \ + _lldb _ln _loadkeys _locale _localedef \ + _locales _locate _logger _logical_volumes _login_classes \ + _look _losetup _lp _ls _lsattr \ + _lsblk _lscfg _lsdev _lslv _lsns \ + _lsof _lspv _lsusb _lsvg _ltrace \ + _lua _luarocks _lynx _lz4 _lzop \ + _mac_applications _mac_files_for_application _madison _mail _mailboxes \ + _main_complete _make _make-kpkg _man _mat \ + _mat2 _match _math _math_params _matlab \ + _md5sum _mdadm _mdfind _mdls _mdutil \ + _members _mencal _menu _mere _mergechanges \ + _message _mh _mii-tool _mime_types _mixerctl \ + _mkdir _mkfifo _mknod _mkshortcut _mktemp \ + _mkzsh _module _module-assistant _module_math_func _modutils \ + _mondo _monotone _moosic _mosh _most_recent_file \ + _mount _mozilla _mpc _mplayer _mt \ + _mtools _mtr _multi_parts _mupdf _mutt \ + _mv _my_accounts _myrepos _mysqldiff _mysql_utils \ + _nautilus _nbsd_architectures _ncftp _nedit _netcat \ + _net_interfaces _netscape _netstat _networkmanager _networksetup \ + _newsgroups _next_label _next_tags _nginx _ngrep \ + _nice _nkf _nl _nm _nmap \ + _normal _nothing _npm _nsenter _nslookup \ + _numbers _numfmt _nvram _objdump _object_classes \ + _object_files _obsd_architectures _od _okular _oldlist \ + _open _openstack _opkg _options _options_set \ + _options_unset _opustools _osascript _osc _other_accounts \ + _otool _pack _pandoc _parameter _parameters \ + _paste _patch _patchutils _path_commands _path_files \ + _pax _pbcopy _pbm _pbuilder _pdf \ + _pdftk _perf _perforce _perl _perl_basepods \ + _perldoc _perl_modules _pfctl _pfexec _pgids \ + _pgrep _php _physical_volumes _pick_variant _picocom \ + _pidof _pids _pine _ping _pip \ + _piuparts _pkg5 _pkgadd _pkg-config _pkgin \ + _pkginfo _pkg_instance _pkgrm _pkgtool _plutil \ + _pmap _pon _portaudit _portlint _portmaster \ + _ports _portsnap _postfix _postgresql _postscript \ + _powerd _pr _precommand _prefix _print \ + _printenv _printers _process_names _procstat _prompt \ + _prove _prstat _ps _ps1234 _pscp \ + _pspdf _psutils _ptree _ptx _pump \ + _putclip _pv _pwgen _pydoc _python \ + _python_modules _qdbus _qemu _qiv _qtplay \ + _quilt _rake _ranlib _rar _rcctl \ + _rclone _rcs _rdesktop _read _read_comp \ + _readelf _readlink _readshortcut _rebootin _redirect \ + _regex_arguments _regex_words _remote_files _renice _reprepro \ + _requested _retrieve_cache _retrieve_mac_apps _ri _rlogin \ + _rm _rmdir _route _routing_domains _routing_tables \ + _rpm _rrdtool _rsync _rubber _ruby \ + _run-help _runit _samba _savecore _say \ + _sbuild _sccs _sched _schedtool _schroot \ + _scl _scons _screen _script _scselect \ + _sc_usage _scutil _seafile _sed _selinux_contexts \ + _selinux_roles _selinux_types _selinux_users _sep_parts _seq \ + _sequence _service _services _set _set_command \ + _setfacl _setopt _setpriv _setsid _setup \ + _setxkbmap _sh _shasum _showmount _shred \ + _shuf _shutdown _signals _signify _sisu \ + _slabtop _slrn _smartmontools _smit _snoop \ + _socket _sockstat _softwareupdate _sort _source \ + _spamassassin _split _sqlite _sqsh _ss \ + _ssh _sshfs _ssh_hosts _stat _stdbuf \ + _stgit _store_cache _stow _strace _strftime \ + _strings _strip _stty _su _sub_commands \ + _sublimetext _subscript _subversion _sudo _suffix_alias_files \ + _surfraw _SUSEconfig _svcadm _svccfg _svcprop \ + _svcs _svcs_fmri _svn-buildpackage _swaks _swanctl \ + _swift _sw_vers _sys_calls _sysclean _sysctl \ + _sysmerge _syspatch _sysrc _sysstat _systat \ + _system_profiler _sysupgrade _tac _tags _tail \ + _tar _tar_archive _tardy _tcpdump _tcpsys \ + _tcptraceroute _tee _telnet _terminals _tex \ + _texi _texinfo _tidy _tiff _tilde \ + _tilde_files _timeout _time_zone _tin _tla \ + _tload _tmux _todo.sh _toilet _toolchain-source \ + _top _topgit _totd _touch _tpb \ + _tput _tr _tracepath _transmission _trap \ + _trash _tree _truncate _truss _tty \ + _ttyctl _ttys _tune2fs _twidge _twisted \ + _typeset _ulimit _uml _umountable _unace \ + _uname _unexpand _unhash _uniq _unison \ + _units _unshare _update-alternatives _update-rc.d _uptime \ + _urls _urpmi _urxvt _usbconfig _uscan \ + _user_admin _user_at_host _user_expand _user_math_func _users \ + _users_on _valgrind _value _values _vared \ + _vars _vcs_info _vcs_info_hooks _vi _vim \ + _vim-addons _visudo _vmctl _vmstat _vnc \ + _volume_groups _vorbis _vpnc _vserver _w \ + _w3m _wait _wajig _wakeup_capable_devices _wanna-build \ + _wanted _watch _watch-snoop _wc _webbrowser \ + _wget _whereis _which _who _whois \ + _widgets _wiggle _wipefs _wpa_cli _xargs \ + _x_arguments _xauth _xautolock _x_borderwidth _xclip \ + _xcode-select _x_color _x_colormapid _x_cursor _x_display \ + _xdvi _x_extension _xfig _x_font _xft_fonts \ + _x_geometry _xinput _x_keysym _xloadimage _x_locale \ + _xmlsoft _xmlstarlet _xmms2 _x_modifier _xmodmap \ + _x_name _xournal _xpdf _xrandr _x_resource \ + _xscreensaver _x_selection_timeout _xset _xt_arguments _xterm \ + _x_title _xt_session_id _x_utils _xv _x_visual \ + _x_window _xwit _xxd _xz _yafc \ + _yast _yodl _yp _yum _zargs \ + _zattr _zcalc _zcalc_line _zcat _zcompile \ + _zdump _zeal _zed _zfs _zfs_dataset \ + _zfs_pool _zftp _zip _zle _zlogin \ + _zmodload _zmv _zoneadm _zones _zparseopts \ + _zpty _zsh _zsh-mime-handler _zsocket _zstyle \ + _ztodo _zypper +autoload -Uz +X _call_program + +typeset -gUa _comp_assocs +_comp_assocs=( '' ) diff --git a/zsh/.config/zsh/.zshrc b/zsh/.config/zsh/.zshrc new file mode 100644 index 0000000..75b8296 --- /dev/null +++ b/zsh/.config/zsh/.zshrc @@ -0,0 +1,45 @@ +# ════════════════════════════════════════════════════════════ +# Ada's Modular ZSH Configuration +# ════════════════════════════════════════════════════════════ + +# ═══ Powerlevel10k Instant Prompt ══════════════════════════ +# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. +# Initialization code that may require console input (password prompts, [y/n] +# confirmations, etc.) must go above this block; everything else may go below. +if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then + source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" +fi + +# Путь к конфигурации zsh +export ZDOTDIR="${ZDOTDIR:-${HOME}/.config/zsh}" +ZSH_CONFIG_DIR="${ZDOTDIR}/config" + +# ═══ Zinit (Plugin Manager) ════════════════════════════════ +# Автоматическая установка zinit при первом запуске +ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git" +if [[ ! -d "$ZINIT_HOME" ]]; then + print -P "%F{blue}▓▒░ Установка zinit...%f" + mkdir -p "$(dirname $ZINIT_HOME)" + git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME" +fi + +# Загрузка zinit +source "${ZINIT_HOME}/zinit.zsh" + +# ═══ Загрузка модулей ══════════════════════════════════════ +# Порядок загрузки важен! +source "${ZSH_CONFIG_DIR}/env.zsh" # Переменные окружения +source "${ZSH_CONFIG_DIR}/options.zsh" # Настройки оболочки +source "${ZSH_CONFIG_DIR}/plugins.zsh" # Плагины через zinit +source "${ZSH_CONFIG_DIR}/completion.zsh" # Автодополнение +source "${ZSH_CONFIG_DIR}/aliases.zsh" # Алиасы +source "${ZSH_CONFIG_DIR}/functions.zsh" # Пользовательские функции +source "${ZSH_CONFIG_DIR}/keybindings.zsh" # Горячие клавиши +source "${ZSH_CONFIG_DIR}/prompt.zsh" # Настройка промпта (starship) + +# ═══ Локальные настройки (опционально) ═════════════════════ +# Для машинно-специфичных настроек +[[ -f "${ZSH_CONFIG_DIR}/local.zsh" ]] && source "${ZSH_CONFIG_DIR}/local.zsh" + +# To customize prompt, run `p10k configure` or edit ~/.config/zsh/.p10k.zsh. +[[ ! -f ~/.config/zsh/.p10k.zsh ]] || source ~/.config/zsh/.p10k.zsh diff --git a/zsh/.config/zsh/config/.p10k.zsh b/zsh/.config/zsh/config/.p10k.zsh new file mode 100644 index 0000000..e8d6918 --- /dev/null +++ b/zsh/.config/zsh/config/.p10k.zsh @@ -0,0 +1,269 @@ +# ════════════════════════════════════════════════════════════ +# Powerlevel10k Configuration (Nord Theme) +# ════════════════════════════════════════════════════════════ +# Сгенерировано для Ada's dotfiles +# Для полной настройки запустите: p10k configure + +# Временно отключить опции для безопасной загрузки +'builtin' 'local' '-a' 'p10k_config_opts' +[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') +[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') +[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') +'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' + +() { + emulate -L zsh -o extended_glob + + # Unset all configuration options. This allows you to apply configuration changes without + # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. + unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' + + # Zsh >= 5.1 is required. + autoload -Uz is-at-least && is-at-least 5.1 || return + + # ═══ Prompt Elements ═══════════════════════════════════════ + # Левая часть промпта + typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( + os_icon # иконка ОС + dir # текущая директория + vcs # git status + newline # перенос строки + prompt_char # символ промпта + ) + + # Правая часть промпта + typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( + status # код возврата последней команды + command_execution_time # время выполнения команды + background_jobs # фоновые задачи + direnv # direnv + asdf # asdf version manager + virtualenv # python virtualenv + anaconda # anaconda + pyenv # pyenv + goenv # goenv + nodenv # nodenv + nvm # nvm + nodeenv # nodeenv + node_version # node version + go_version # go version + rust_version # rust version + dotnet_version # .NET version + php_version # php version + laravel_version # laravel version + java_version # java version + package # package version (package.json) + rbenv # rbenv + rvm # rvm + fvm # fvm + luaenv # luaenv + jenv # jenv + plenv # plenv + perlbrew # perlbrew + phpenv # phpenv + scalaenv # scalaenv + haskell_stack # haskell stack + kubecontext # kubernetes context + terraform # terraform workspace + aws # aws profile + aws_eb_env # aws elastic beanstalk + azure # azure account + gcloud # google cloud + google_app_cred # google application credentials + toolbox # toolbox + context # user@hostname + nordvpn # nordvpn + ranger # ranger + nnn # nnn + lf # lf + xplr # xplr + vim_shell # vim shell + midnight_commander # midnight commander + nix_shell # nix shell + vi_mode # vi mode indicator + vpn_ip # vpn ip + load # cpu load + disk_usage # disk usage + ram # ram usage + swap # swap usage + todo # todo items + timewarrior # timewarrior + taskwarrior # taskwarrior + time # время + newline # перенос строки + ) + + # ═══ Стиль ═════════════════════════════════════════════════ + # Стиль промпта: (lean|classic|rainbow|pure) + typeset -g POWERLEVEL9K_MODE='nerdfont-v3' + typeset -g POWERLEVEL9K_ICON_PADDING=moderate + + # Prompt style + typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='' + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='' + typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='' + typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='' + typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR=' ' + typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR=' ' + typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION='' + typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=true + + # ═══ Nord Colors ═══════════════════════════════════════════ + # Nord color palette + local nord0='#2E3440' # Polar Night - darkest + local nord1='#3B4252' # Polar Night + local nord2='#434C5E' # Polar Night + local nord3='#4C566A' # Polar Night - brightest + local nord4='#D8DEE9' # Snow Storm + local nord5='#E5E9F0' # Snow Storm + local nord6='#ECEFF4' # Snow Storm - brightest + local nord7='#8FBCBB' # Frost - cyan + local nord8='#88C0D0' # Frost - bright cyan + local nord9='#81A1C1' # Frost - blue + local nord10='#5E81AC' # Frost - dark blue + local nord11='#BF616A' # Aurora - red + local nord12='#D08770' # Aurora - orange + local nord13='#EBCB8B' # Aurora - yellow + local nord14='#A3BE8C' # Aurora - green + local nord15='#B48EAD' # Aurora - purple + + # ═══ OS Icon ═══════════════════════════════════════════════ + typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=$nord8 + typeset -g POWERLEVEL9K_OS_ICON_BACKGROUND=$nord1 + + # ═══ Prompt Character ══════════════════════════════════════ + typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=$nord14 + typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=$nord11 + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯' + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮' + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V' + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶' + typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='' + + # ═══ Directory ═════════════════════════════════════════════ + typeset -g POWERLEVEL9K_DIR_FOREGROUND=$nord4 + typeset -g POWERLEVEL9K_DIR_BACKGROUND=$nord2 + typeset -g POWERLEVEL9K_DIR_SHORTENED=true + typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique + typeset -g POWERLEVEL9K_SHORTEN_DELIMITER='' + typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=$nord3 + typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=$nord4 + typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true + typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 + + # Special directories + typeset -g POWERLEVEL9K_DIR_CLASSES=( + '~/Documents(|/*)' DOCUMENTS + '~/Downloads(|/*)' DOWNLOADS + '~(|/*)' HOME + '*' DEFAULT + ) + typeset -g POWERLEVEL9K_DIR_DOCUMENTS_FOREGROUND=$nord13 + typeset -g POWERLEVEL9K_DIR_DOWNLOADS_FOREGROUND=$nord12 + typeset -g POWERLEVEL9K_DIR_HOME_FOREGROUND=$nord8 + typeset -g POWERLEVEL9K_DIR_DEFAULT_FOREGROUND=$nord4 + + # ═══ Git ═══════════════════════════════════════════════════ + typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=$nord14 + typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=$nord1 + typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=$nord8 + typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=$nord1 + typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=$nord13 + typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=$nord1 + typeset -g POWERLEVEL9K_VCS_CONFLICTED_FOREGROUND=$nord11 + typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=$nord1 + + typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='' + typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@' + typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?' + typeset -g POWERLEVEL9K_VCS_UNSTAGED_ICON='!' + typeset -g POWERLEVEL9K_VCS_STAGED_ICON='+' + typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON='⇣' + typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON='⇡' + typeset -g POWERLEVEL9K_VCS_STASH_ICON='*' + typeset -g POWERLEVEL9K_VCS_TAG_ICON='#' + + # ═══ Status ════════════════════════════════════════════════ + typeset -g POWERLEVEL9K_STATUS_OK=false + typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=$nord11 + typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=$nord1 + + # ═══ Command Execution Time ════════════════════════════════ + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3 + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=1 + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=$nord13 + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=$nord1 + + # ═══ Background Jobs ═══════════════════════════════════════ + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=$nord12 + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=$nord1 + + # ═══ Context (user@host) ═══════════════════════════════════ + typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=$nord4 + typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=$nord2 + typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=$nord11 + typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=$nord1 + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=$nord13 + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_BACKGROUND=$nord1 + typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m' + + # Don't show context unless running with privileges or in SSH. + typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION= + + # ═══ Virtualenv ════════════════════════════════════════════ + typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=$nord9 + typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=$nord1 + typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false + typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER= + + # ═══ Node Version ══════════════════════════════════════════ + typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=$nord14 + typeset -g POWERLEVEL9K_NODE_VERSION_BACKGROUND=$nord1 + typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true + + # ═══ Go Version ════════════════════════════════════════════ + typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=$nord8 + typeset -g POWERLEVEL9K_GO_VERSION_BACKGROUND=$nord1 + typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true + + # ═══ Rust Version ══════════════════════════════════════════ + typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=$nord12 + typeset -g POWERLEVEL9K_RUST_VERSION_BACKGROUND=$nord1 + typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true + + # ═══ Kubernetes ════════════════════════════════════════════ + typeset -g POWERLEVEL9K_KUBECONTEXT_FOREGROUND=$nord9 + typeset -g POWERLEVEL9K_KUBECONTEXT_BACKGROUND=$nord1 + typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_DEFAULT_NAMESPACE=true + + # ═══ Terraform ═════════════════════════════════════════════ + typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=$nord15 + typeset -g POWERLEVEL9K_TERRAFORM_BACKGROUND=$nord1 + + # ═══ Time ══════════════════════════════════════════════════ + typeset -g POWERLEVEL9K_TIME_FOREGROUND=$nord4 + typeset -g POWERLEVEL9K_TIME_BACKGROUND=$nord2 + typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}' + + # ═══ Transient Prompt ══════════════════════════════════════ + typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always + typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose + + # ═══ Другие настройки ══════════════════════════════════════ + typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=false + typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true + + # ═══ Finalization ══════════════════════════════════════════ + (( ! $+functions[p10k] )) || p10k reload +} + +# Применить временные опции обратно +(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} +'builtin' 'unset' 'p10k_config_opts' diff --git a/zsh/.config/zsh/config/aliases.zsh b/zsh/.config/zsh/config/aliases.zsh new file mode 100644 index 0000000..e0ea7c8 --- /dev/null +++ b/zsh/.config/zsh/config/aliases.zsh @@ -0,0 +1,174 @@ +# ════════════════════════════════════════════════════════════ +# Aliases +# ════════════════════════════════════════════════════════════ + +# ═══ Навигация ═════════════════════════════════════════════ +alias ..='cd ..' +alias ...='cd ../..' +alias ....='cd ../../..' +alias .....='cd ../../../..' + +# Быстрый переход в часто используемые директории +alias dl='cd ~/Downloads' +alias dt='cd ~/Desktop' +alias doc='cd ~/Documents' +alias dev='cd ~/dev' + +# zoxide - умная навигация (если установлен) +if command -v zoxide &>/dev/null; then + alias cd='z' # заменить cd на z + alias cdi='zi' # интерактивный выбор через fzf + alias cdq='zoxide query' + alias cdr='zoxide remove' +fi + +# ═══ Списки файлов ═════════════════════════════════════════ +# Использовать eza если доступен, иначе ls с цветами +if command -v eza &>/dev/null; then + alias ls='eza --icons --group-directories-first' + alias ll='eza -l --icons --group-directories-first --git' + alias la='eza -la --icons --group-directories-first --git' + alias lt='eza --tree --level=2 --icons' + alias l='eza -lah --icons --group-directories-first --git' +else + alias ls='ls --color=auto --group-directories-first' + alias ll='ls -lh --color=auto --group-directories-first' + alias la='ls -lAh --color=auto --group-directories-first' + alias l='ls -lah --color=auto --group-directories-first' +fi + +# ═══ Безопасность ══════════════════════════════════════════ +alias rm='rm -i' +alias cp='cp -i' +alias mv='mv -i' + +# ═══ Системные команды ═════════════════════════════════════ +alias grep='grep --color=auto' +alias fgrep='fgrep --color=auto' +alias egrep='egrep --color=auto' + +alias df='df -h' +alias du='du -h' +alias free='free -h' + +# Быстрый доступ к редактору +alias v='${EDITOR}' +alias vim='nvim' +alias vi='nvim' + +# ═══ Сеть ══════════════════════════════════════════════════ +alias ping='ping -c 5' +alias ports='netstat -tulanp' +# myip определена как функция в functions.zsh (более полная версия) +alias localip="ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v 127.0.0.1" + +# Proxy +alias proxy-on='export http_proxy="http://127.0.0.1:8118" https_proxy="http://127.0.0.1:8118" HTTP_PROXY="http://127.0.0.1:8118" HTTPS_PROXY="http://127.0.0.1:8118" && echo "Proxy enabled"' +alias proxy-off='unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY && echo "Proxy disabled"' +alias proxy-status='env | grep -i proxy' + +# ═══ Git ═══════════════════════════════════════════════════ +alias g='git' +alias gs='git status' +alias gst='git --no-pager status' # без пейджера +alias ga='git add' +alias gaa='git add .' +alias gc='git commit' +alias gcm='git commit -m' +alias gp='git push' +alias gpl='git pull' +alias gd='git diff' +alias gco='git checkout' +alias gb='git branch' +alias gl='git log --oneline --graph --decorate' +alias glog='git log --oneline --graph --decorate --all' + +# ═══ Docker ════════════════════════════════════════════════ +if command -v docker &>/dev/null; then + alias d='docker' + alias dc='docker-compose' + alias dps='docker ps' + alias dpsa='docker ps -a' + alias di='docker images' + alias dex='docker exec -it' + alias dlog='docker logs -f' + alias dstop='docker stop $(docker ps -aq)' + alias drm='docker rm $(docker ps -aq)' + alias drmi='docker rmi $(docker images -q)' + alias dclean='docker system prune -af --volumes' +fi + +# ═══ Kubectl ═══════════════════════════════════════════════ +if command -v kubectl &>/dev/null; then + alias k='kubectl' + alias kgp='kubectl get pods' + alias kgs='kubectl get services' + alias kgd='kubectl get deployments' + alias kdp='kubectl describe pod' + alias kds='kubectl describe service' + alias kdd='kubectl describe deployment' + alias kl='kubectl logs -f' + alias kex='kubectl exec -it' +fi + +# ═══ Ruby (rbenv) ══════════════════════════════════════════ +if command -v rbenv &>/dev/null; then + alias rb='ruby' + alias be='bundle exec' + alias bi='bundle install' + alias bu='bundle update' +fi + +# ═══ Python ════════════════════════════════════════════════ +alias py='python3' +alias pip='pip3' +alias venv='python3 -m venv' +alias activate='source venv/bin/activate' + +# ═══ Node.js ═══════════════════════════════════════════════ +alias ni='npm install' +alias nid='npm install --save-dev' + +alias nig='npm install -g' +alias nr='npm run' +alias ns='npm start' +alias nt='npm test' + +# ═══ Утилиты ═══════════════════════════════════════════════ +alias zshrc='${EDITOR} ~/.config/zsh/.zshrc' +alias reload='source ~/.config/zsh/.zshrc' +alias path='echo $PATH | tr ":" "\n"' +alias h='history' +alias c='clear' +alias x='exit' +alias rsend='sudo rsync -avhP --stats' +alias wakemac='ssh vps "wakeonlan -i 192.168.1.255 FC:34:97:E1:08:E9"' + +# Быстрое обновление системы (для разных дистрибутивов) +if command -v apt &>/dev/null; then + alias update='sudo apt update && sudo apt upgrade -y' +elif command -v pacman &>/dev/null; then + alias update='sudo pacman -Syu' +elif command -v dnf &>/dev/null; then + alias update='sudo dnf upgrade -y' +elif command -v zypper &>/dev/null; then + alias update='sudo zypper refresh && sudo zypper update -y' +fi + +# Универсальная установка пакетов (для разных дистрибутивов) +if command -v apt &>/dev/null; then + alias install='sudo apt install -y' +elif command -v pacman &>/dev/null; then + alias install='sudo pacman -S --noconfirm' +elif command -v dnf &>/dev/null; then + alias install='sudo dnf install -y' +elif command -v zypper &>/dev/null; then + alias install='sudo zypper install -y' +fi + +# ═══ Прочее ════════════════════════════════════════════════ +# weather определена как функция в functions.zsh (более полная версия) +alias cheat='curl cheat.sh' +alias timer='echo "Timer started. Stop with Ctrl-D." && date && time cat && date' +alias lidon='sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target' +alias lidoff='sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target' diff --git a/zsh/.config/zsh/config/completion.zsh b/zsh/.config/zsh/config/completion.zsh new file mode 100644 index 0000000..62e480b --- /dev/null +++ b/zsh/.config/zsh/config/completion.zsh @@ -0,0 +1,94 @@ +# ════════════════════════════════════════════════════════════ +# Completion Settings +# ════════════════════════════════════════════════════════════ + +# ═══ Инициализация ═════════════════════════════════════════ +autoload -Uz compinit + +# Проверять новые автодополнения раз в день +if [[ -n ${ZDOTDIR}/.zcompdump(#qN.mh+24) ]]; then + compinit + touch ${ZDOTDIR}/.zcompdump +else + compinit -C +fi + +# ═══ Кэш дополнений ════════════════════════════════════════ +zstyle ':completion:*' use-cache on +zstyle ':completion:*' cache-path "${XDG_CACHE_HOME}/zsh/zcompcache" + +# Создать директорию для кэша если не существует +[[ ! -d "${XDG_CACHE_HOME}/zsh" ]] && mkdir -p "${XDG_CACHE_HOME}/zsh" + +# ═══ Меню выбора ═══════════════════════════════════════════ +zstyle ':completion:*' menu select +zstyle ':completion:*' group-name '' +zstyle ':completion:*' verbose yes + +# ═══ Форматирование ════════════════════════════════════════ +zstyle ':completion:*:descriptions' format '%F{blue}-- %d --%f' +zstyle ':completion:*:messages' format '%F{purple}-- %d --%f' +zstyle ':completion:*:warnings' format '%F{red}-- no matches found --%f' +zstyle ':completion:*:corrections' format '%F{yellow}-- %d (errors: %e) --%f' + +# ═══ Сопоставление ═════════════════════════════════════════ +zstyle ':completion:*' matcher-list \ + 'm:{a-zA-Z}={A-Za-z}' \ + 'r:|[._-]=* r:|=*' \ + 'l:|=* r:|=*' + +# ═══ Цвета ═════════════════════════════════════════════════ +zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} +zstyle ':completion:*' list-colors '' + +# ═══ Процессы ══════════════════════════════════════════════ +zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01' +zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w" + +# Не предлагать уже использованные опции +zstyle ':completion:*:*:kill:*' ignore-line yes + +# ═══ Команды ═══════════════════════════════════════════════ +# Игнорировать внутренние функции (начинающиеся с _) +zstyle ':completion:*:functions' ignored-patterns '_*' + +# ═══ Директории ════════════════════════════════════════════ +zstyle ':completion:*' special-dirs true +zstyle ':completion:*' list-dirs-first true + +# Игнорировать родительскую директорию +zstyle ':completion:*:cd:*' ignore-parents parent pwd + +# ═══ Хосты ═════════════════════════════════════════════════ +zstyle ':completion:*:ssh:*' hosts off +zstyle ':completion:*:scp:*' hosts off + +# Читать хосты из ~/.ssh/config +if [[ -f ~/.ssh/config ]]; then + h=() + if [[ -r ~/.ssh/config ]]; then + h=(${${${(@M)${(f)"$(cat ~/.ssh/config)"}:#Host *}#Host }:#*[*?]*}) + fi + zstyle ':completion:*:ssh:*' hosts $h + zstyle ':completion:*:scp:*' hosts $h +fi + +# ═══ Man страницы ══════════════════════════════════════════ +zstyle ':completion:*:manuals' separate-sections true +zstyle ':completion:*:manuals.(^1*)' insert-sections true + +# ═══ Автодополнение для sudo ═══════════════════════════════ +zstyle ':completion:*:sudo:*' command-path \ + /usr/local/sbin \ + /usr/local/bin \ + /usr/sbin \ + /usr/bin \ + /sbin \ + /bin + +# ═══ Массивы ═══════════════════════════════════════════════ +zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters + +# ═══ Расширения ════════════════════════════════════════════ +zstyle ':completion:*' squeeze-slashes true +zstyle ':completion:*' expand yes diff --git a/zsh/.config/zsh/config/env.zsh b/zsh/.config/zsh/config/env.zsh new file mode 100644 index 0000000..9154dd0 --- /dev/null +++ b/zsh/.config/zsh/config/env.zsh @@ -0,0 +1,79 @@ +# ════════════════════════════════════════════════════════════ +# Environment Variables +# ════════════════════════════════════════════════════════════ + +# ═══ Основные пути ═════════════════════════════════════════ +export EDITOR="${EDITOR:-nvim}" +export VISUAL="${VISUAL:-nvim}" +export PAGER="less" + +# ═══ XDG Base Directories ══════════════════════════════════ +export XDG_CONFIG_HOME="${HOME}/.config" +export XDG_DATA_HOME="${HOME}/.local/share" +export XDG_CACHE_HOME="${HOME}/.cache" +export XDG_STATE_HOME="${HOME}/.local/state" + +# ═══ История команд ════════════════════════════════════════ +export HISTFILE="${XDG_STATE_HOME}/zsh/history" +export HISTSIZE=50000 +export SAVEHIST=50000 + +# Создать директорию для истории если не существует +[[ ! -d "$(dirname $HISTFILE)" ]] && mkdir -p "$(dirname $HISTFILE)" + +# ═══ Less ══════════════════════════════════════════════════ +export LESS='-R -M -i -j10' +export LESSHISTFILE="${XDG_CACHE_HOME}/less/history" + +# ═══ Ruby (rbenv) ══════════════════════════════════════════ +if [[ -d "${HOME}/.rbenv" ]]; then + export PATH="${HOME}/.rbenv/bin:${PATH}" + command -v rbenv &>/dev/null && eval "$(rbenv init - zsh)" +fi + +# ═══ Node.js ═══════════════════════════════════════════════ +# Если используете nvm +export NVM_DIR="${XDG_CONFIG_HOME}/nvm" +[[ -s "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh" --no-use # Ленивая загрузка + +# ═══ Python ════════════════════════════════════════════════ +# Отключить создание .pyc файлов +export PYTHONDONTWRITEBYTECODE=1 +# export PYENV_ROOT="$HOME/.pyenv" +# export PATH="$PYENV_ROOT/bin:$PATH" + +# ═══ Go ════════════════════════════════════════════════════ +export GOPATH="${HOME}/go" +export PATH="${GOPATH}/bin:${PATH}" + +# ═══ Rust ══════════════════════════════════════════════════ +export CARGO_HOME="${HOME}/.cargo" +export PATH="${CARGO_HOME}/bin:${PATH}" + +# ═══ Локальные бинарники ═══════════════════════════════════ +export PATH="${HOME}/.local/bin:${PATH}" + +# ═══ Цвета ═════════════════════════════════════════════════ +export CLICOLOR=1 +export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43' + +# ═══ FZF ═══════════════════════════════════════════════════ +export FZF_DEFAULT_OPTS=" + --height 40% + --layout=reverse + --border + --inline-info + --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 + --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc + --color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 +" + +# Использовать fd вместо find если доступен +if command -v fd &>/dev/null; then + export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git' + export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" +fi + +if command -v zoxide &>/dev/null; then + eval "$(zoxide init zsh)" +fi diff --git a/zsh/.config/zsh/config/functions.zsh b/zsh/.config/zsh/config/functions.zsh new file mode 100644 index 0000000..12c5ba5 --- /dev/null +++ b/zsh/.config/zsh/config/functions.zsh @@ -0,0 +1,181 @@ +# ════════════════════════════════════════════════════════════ +# Custom Functions +# ════════════════════════════════════════════════════════════ + +# ═══ Навигация ═════════════════════════════════════════════ + +# mkcd - создать директорию и перейти в неё +mkcd() { + mkdir -p "$1" && cd "$1" +} + +# up - подняться на N уровней вверх +up() { + local d="" + local limit="${1:-1}" + for ((i=1; i<=limit; i++)); do + d="../$d" + done + + if [[ -z "$d" ]]; then + d=.. + fi + + cd "$d" || return +} + +# ═══ Поиск ═════════════════════════════════════════════════ + +# ff - быстрый поиск файлов +ff() { + if command -v fd &>/dev/null; then + fd "$@" + else + find . -iname "*$1*" + fi +} + +# fh - поиск в истории команд с fzf +fh() { + if command -v fzf &>/dev/null; then + print -z $(history -n 1 | fzf --tac --no-sort) + else + history | grep "$1" + fi +} + +# ═══ Файлы и директории ════════════════════════════════════ + +# extract - универсальная распаковка (если плагин не загружен) +if ! command -v extract &>/dev/null; then + extract() { + if [[ -f $1 ]]; then + case $1 in + *.tar.bz2) tar xjf "$1" ;; + *.tar.gz) tar xzf "$1" ;; + *.tar.xz) tar xJf "$1" ;; + *.bz2) bunzip2 "$1" ;; + *.rar) unrar x "$1" ;; + *.gz) gunzip "$1" ;; + *.tar) tar xf "$1" ;; + *.tbz2) tar xjf "$1" ;; + *.tgz) tar xzf "$1" ;; + *.zip) unzip "$1" ;; + *.Z) uncompress "$1" ;; + *.7z) 7z x "$1" ;; + *) echo "'$1' cannot be extracted via extract()" ;; + esac + else + echo "'$1' is not a valid file" + fi + } +fi + +# backup - создать резервную копию файла +backup() { + if [[ -f $1 ]]; then + cp "$1"{,.backup-$(date +%Y%m%d-%H%M%S)} + echo "Backup created: $1.backup-$(date +%Y%m%d-%H%M%S)" + else + echo "File not found: $1" + fi +} + +# ═══ Размер файлов ═════════════════════════════════════════ + +# dirsize - показать размер директории +dirsize() { + du -sh "${1:-.}" 2>/dev/null || echo "Directory not found" +} + +# largest - показать N самых больших файлов в директории +largest() { + local num=${1:-10} + du -ah "${2:-.}" | sort -rh | head -n "$num" +} + +# ═══ Процессы ══════════════════════════════════════════════ + +# psgrep - поиск процессов +psgrep() { + ps aux | grep -v grep | grep -i -e VSZ -e "$1" +} + +# kill процесс по имени +killp() { + local pid + pid=$(ps aux | grep -v grep | grep "$1" | awk '{print $2}') + if [[ -n $pid ]]; then + echo "Killing process: $1 (PID: $pid)" + kill -9 "$pid" + else + echo "Process not found: $1" + fi +} + +# ═══ Сеть ══════════════════════════════════════════════════ + +# myip - показать все IP адреса +myip() { + echo "External IP: $(curl -s ifconfig.me)" + echo "Local IPs:" + ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v 127.0.0.1 +} + +# ports - показать открытые порты +openports() { + sudo netstat -tulanp | grep LISTEN +} + +# ═══ Git ═══════════════════════════════════════════════════ + +# gitignore - скачать .gitignore для языка +gitignore() { + if [[ -z $1 ]]; then + echo "Usage: gitignore " + return 1 + fi + curl -sL "https://www.toptal.com/developers/gitignore/api/$1" -o .gitignore + echo ".gitignore created for: $1" +} + +# gclone - клонировать репозиторий и перейти в него +gclone() { + if [[ -z $1 ]]; then + echo "Usage: gclone " + return 1 + fi + + local repo_name=$(basename "$1" .git) + git clone "$1" && cd "$repo_name" || return +} + +# ═══ Разработка ════════════════════════════════════════════ + +# serve - быстрый HTTP сервер +serve() { + local port="${1:-8000}" + if command -v python3 &>/dev/null; then + echo "Starting server on http://localhost:$port" + python3 -m http.server "$port" + else + echo "Python3 not found" + fi +} + +# json - форматировать JSON +json() { + if [[ -f $1 ]]; then + python3 -m json.tool "$1" + else + echo "$1" | python3 -m json.tool + fi +} + +# ═══ Утилиты ═══════════════════════════════════════════════ + +# weather - погода для города +weather() { + local city="${1:-Moscow}" + curl -s "wttr.in/$city?format=3" +} diff --git a/zsh/.config/zsh/config/keybindings.zsh b/zsh/.config/zsh/config/keybindings.zsh new file mode 100644 index 0000000..fec848d --- /dev/null +++ b/zsh/.config/zsh/config/keybindings.zsh @@ -0,0 +1,87 @@ +# ════════════════════════════════════════════════════════════ +# Keybindings +# ════════════════════════════════════════════════════════════ + +# ═══ Режим редактирования ══════════════════════════════════ +# Использовать emacs режим (можно переключить на vi) +bindkey -e + +# Для vi режима раскомментируйте: +# bindkey -v + +# ═══ Навигация по строке ═══════════════════════════════════ +bindkey '^A' beginning-of-line # Ctrl+A - начало строки +bindkey '^E' end-of-line # Ctrl+E - конец строки +bindkey '^[[H' beginning-of-line # Home - начало строки +bindkey '^[[F' end-of-line # End - конец строки + +# ═══ Редактирование ════════════════════════════════════════ +bindkey '^K' kill-line # Ctrl+K - удалить до конца +bindkey '^U' backward-kill-line # Ctrl+U - удалить до начала +bindkey '^W' backward-kill-word # Ctrl+W - удалить слово назад +bindkey '^Y' yank # Ctrl+Y - вставить + +# ═══ Навигация по словам ═══════════════════════════════════ +bindkey '^[[1;5C' forward-word # Ctrl+Right - вперёд на слово +bindkey '^[[1;5D' backward-word # Ctrl+Left - назад на слово +bindkey '^[^[[C' forward-word # Alt+Right - вперёд на слово +bindkey '^[^[[D' backward-word # Alt+Left - назад на слово + +# ═══ История команд ════════════════════════════════════════ +# Обычная навигация по истории (без фильтрации) +bindkey '^P' up-history # Ctrl+P - предыдущая команда (без фильтра) +bindkey '^N' down-history # Ctrl+N - следующая команда (без фильтра) + +# Стрелки вверх/вниз - с фильтрацией по началу строки +bindkey '^[[A' up-line-or-search # Up - предыдущая команда (с фильтром) +bindkey '^[[B' down-line-or-search # Down - следующая команда (с фильтром) + +# Поиск в истории (если загружен history-substring-search) +if (( $+functions[history-substring-search-up] )); then + # Alt+Up/Down для поиска подстроки в истории + bindkey '^[[1;3A' history-substring-search-up # Alt+Up + bindkey '^[[1;3B' history-substring-search-down # Alt+Down +fi + +# ═══ Автодополнение ════════════════════════════════════════ +bindkey '^I' complete-word # Tab - автодополнение +bindkey '^[[Z' reverse-menu-complete # Shift+Tab - назад по меню + +# Принять автопредложение (если загружен autosuggestions) +if (( $+widgets[autosuggest-accept] )); then + bindkey '^F' autosuggest-accept # Ctrl+F - принять предложение + bindkey '^[[C' forward-char # Right - вперёд на символ (не принимая) + bindkey '^ ' autosuggest-accept # Ctrl+Space - принять предложение +fi + +# ═══ FZF ═══════════════════════════════════════════════════ +# FZF key-bindings загружаются в plugins.zsh +# Здесь можно переопределить привязки если нужно +if command -v fzf &>/dev/null; then + # Привязки уже установлены в plugins.zsh через key-bindings.zsh + # Можно добавить дополнительные кастомные привязки здесь + : +fi +# ═══ Полезные команды ══════════════════════════════════════ +bindkey '^L' clear-screen # Ctrl+L - очистить экран +bindkey '^X^E' edit-command-line # Ctrl+X Ctrl+E - редактировать в $EDITOR + +# Загрузить edit-command-line если нужно +autoload -Uz edit-command-line +zle -N edit-command-line + +# ═══ Дополнительные привязки ═══════════════════════════════ +bindkey '^D' delete-char-or-list # Ctrl+D - удалить символ или показать список +bindkey '^H' backward-delete-char # Ctrl+H - удалить символ назад +bindkey '^?' backward-delete-char # Backspace - удалить символ назад + +# ═══ Копирование/вставка (xclip) ══════════════════════════ +if command -v xclip &>/dev/null; then + # Скопировать текущую команду в буфер обмена + function _copy_command_to_clipboard() { + echo -n "$BUFFER" | xclip -selection clipboard + zle -M "Copied to clipboard" + } + zle -N _copy_command_to_clipboard + bindkey '^X^C' _copy_command_to_clipboard # Ctrl+X Ctrl+C +fi diff --git a/zsh/.config/zsh/config/options.zsh b/zsh/.config/zsh/config/options.zsh new file mode 100644 index 0000000..4583a5a --- /dev/null +++ b/zsh/.config/zsh/config/options.zsh @@ -0,0 +1,48 @@ +# ════════════════════════════════════════════════════════════ +# Shell Options +# ════════════════════════════════════════════════════════════ + +# ═══ История ═══════════════════════════════════════════════ +setopt EXTENDED_HISTORY # Записывать timestamp в историю +setopt HIST_EXPIRE_DUPS_FIRST # Удалять дубликаты в первую очередь +setopt HIST_IGNORE_DUPS # Не записывать дубликаты подряд +setopt HIST_IGNORE_ALL_DUPS # Удалить старую запись если новая - дубликат +setopt HIST_FIND_NO_DUPS # Не показывать дубликаты при поиске +setopt HIST_IGNORE_SPACE # Не записывать команды начинающиеся с пробела +setopt HIST_SAVE_NO_DUPS # Не сохранять дубликаты +setopt HIST_REDUCE_BLANKS # Убирать лишние пробелы +setopt HIST_VERIFY # Показывать команду перед выполнением из истории +setopt SHARE_HISTORY # Делиться историей между сессиями + +# ═══ Навигация ═════════════════════════════════════════════ +setopt AUTO_CD # cd в директорию просто набрав её имя +setopt AUTO_PUSHD # Автоматически делать pushd +setopt PUSHD_IGNORE_DUPS # Не добавлять дубликаты в стек директорий +setopt PUSHD_SILENT # Не печатать стек после pushd/popd +setopt PUSHD_TO_HOME # pushd без аргументов = pushd $HOME + +# ═══ Дополнение ════════════════════════════════════════════ +setopt ALWAYS_TO_END # Курсор в конец при автодополнении +setopt AUTO_MENU # Показывать меню при повторном tab +setopt AUTO_LIST # Автоматически показывать список вариантов +setopt COMPLETE_IN_WORD # Дополнять внутри слова +unsetopt MENU_COMPLETE # Не вставлять первый вариант автоматически + +# ═══ Глобы и расширения ════════════════════════════════════ +setopt EXTENDED_GLOB # Расширенный синтаксис глобов +setopt GLOB_DOTS # Включать скрытые файлы в глобы +setopt NOMATCH # Ошибка если паттерн не совпал +setopt NUMERIC_GLOB_SORT # Сортировать числовые имена файлов численно + +# ═══ Работа с командами ════════════════════════════════════ +setopt CORRECT # Исправлять опечатки в командах +setopt CORRECT_ALL # Исправлять опечатки в аргументах +setopt INTERACTIVE_COMMENTS # Разрешить комментарии в интерактивном режиме +setopt MULTIOS # Множественные перенаправления +setopt LONG_LIST_JOBS # Подробный вывод jobs + +# ═══ Другое ════════════════════════════════════════════════ +setopt NOTIFY # Сообщать о завершении фоновых задач немедленно +setopt NO_BEEP # Отключить звуковые сигналы +setopt NO_HUP # Не убивать фоновые задачи при выходе +setopt PROMPT_SUBST # Разрешить подстановки в промпте diff --git a/zsh/.config/zsh/config/plugins.zsh b/zsh/.config/zsh/config/plugins.zsh new file mode 100644 index 0000000..86cd248 --- /dev/null +++ b/zsh/.config/zsh/config/plugins.zsh @@ -0,0 +1,100 @@ +# ════════════════════════════════════════════════════════════ +# Plugins (via Zinit) +# ════════════════════════════════════════════════════════════ + +# ═══ Powerlevel10k Theme ═══════════════════════════════════ +# Загружаем ПЕРВЫМ для instant prompt +zinit ice depth=1 +zinit light romkatv/powerlevel10k + +# ═══ Turbo Mode ════════════════════════════════════════════ +# Плагины загружаются асинхронно для ускорения старта + +# ═══ FZF key-bindings ══════════════════════════════════════ +# Загружаем ПЕРВЫМ, чтобы виджеты были определены до syntax-highlighting +if command -v fzf &>/dev/null; then + # Попробовать разные пути установки fzf + if [[ -f /usr/share/fzf/key-bindings.zsh ]]; then + source /usr/share/fzf/key-bindings.zsh + elif [[ -f /usr/share/doc/fzf/examples/key-bindings.zsh ]]; then + source /usr/share/doc/fzf/examples/key-bindings.zsh + elif [[ -f ~/.fzf.zsh ]]; then + source ~/.fzf.zsh + fi +fi + +# ═══ Автодополнение ════════════════════════════════════════ +# zsh-completions - дополнительные автодополнения +zinit ice wait lucid blockf atpull'zinit creinstall -q .' +zinit light zsh-users/zsh-completions + +# ═══ Автопредложения ═══════════════════════════════════════ +# zsh-autosuggestions - предложения из истории +zinit ice wait lucid atload'_zsh_autosuggest_start' +zinit light zsh-users/zsh-autosuggestions + +# Настройки autosuggestions +export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=#585b70' +export ZSH_AUTOSUGGEST_STRATEGY=(history completion) +export ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20 + +# ═══ История ═══════════════════════════════════════════════ +# zsh-history-substring-search - поиск в истории +zinit ice wait lucid +zinit light zsh-users/zsh-history-substring-search + +# ═══ FZF ═══════════════════════════════════════════════════ +# fzf - интерактивный поиск +if command -v fzf &>/dev/null; then + # fzf-tab - fzf для автодополнения + zinit ice wait lucid + zinit light Aloxaf/fzf-tab + + # Настройки fzf-tab + zstyle ':fzf-tab:*' fzf-command fzf + zstyle ':fzf-tab:*' fzf-pad 4 + zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath 2>/dev/null || ls -1 --color=always $realpath' + zstyle ':fzf-tab:complete:*:*' fzf-preview 'less ${(Q)realpath} 2>/dev/null || eza -1 --color=always ${(Q)realpath} 2>/dev/null || ls -1 --color=always ${(Q)realpath}' +fi + +# ═══ Навигация ═════════════════════════════════════════════ +# zoxide - умный cd с историей +if command -v zoxide &>/dev/null; then + eval "$(zoxide init zsh)" +fi + +# ═══ Git ═══════════════════════════════════════════════════ +# Быстрые git алиасы и функции +zinit ice wait lucid +zinit snippet OMZ::plugins/git/git.plugin.zsh + +# ═══ Дополнительные инструменты ════════════════════════════ +# sudo - нажать ESC дважды чтобы добавить sudo +zinit ice wait lucid +zinit snippet OMZ::plugins/sudo/sudo.plugin.zsh + +# extract - универсальная распаковка архивов +zinit ice wait lucid +zinit snippet OMZ::plugins/extract/extract.plugin.zsh + +# colored-man-pages - цветные man страницы +zinit ice wait lucid +zinit snippet OMZ::plugins/colored-man-pages/colored-man-pages.plugin.zsh + +# docker - автодополнение для docker +if command -v docker &>/dev/null; then + zinit ice wait lucid as'completion' + zinit snippet OMZP::docker +fi + +# kubectl - автодополнение для kubectl +if command -v kubectl &>/dev/null; then + zinit ice wait lucid as'completion' + zinit snippet OMZ::plugins/kubectl/kubectl.plugin.zsh +fi + +# ═══ Подсветка синтаксиса (ПОСЛЕДНИЙ плагин) ═══════════════ +# zsh-syntax-highlighting - ОБЯЗАТЕЛЬНО загружать последним +# Это гарантирует, что все виджеты уже определены +zinit ice wait lucid atinit'zpcompinit; zpcdreplay' +zinit light zsh-users/zsh-syntax-highlighting diff --git a/zsh/.config/zsh/config/prompt.zsh b/zsh/.config/zsh/config/prompt.zsh new file mode 100644 index 0000000..6acacf2 --- /dev/null +++ b/zsh/.config/zsh/config/prompt.zsh @@ -0,0 +1,24 @@ +# ════════════════════════════════════════════════════════════ +# Prompt Configuration (Powerlevel10k) +# ════════════════════════════════════════════════════════════ + +# ═══ Powerlevel10k Instant Prompt ══════════════════════════ +# Должен быть в самом начале ~/.zshrc для мгновенного промпта +# Перенесен сюда для модульности, но в идеале должен быть раньше + +# Включить Powerlevel10k instant prompt. Должно быть близко к началу ~/.config/zsh/.zshrc. +# Инициализация кода, который может требовать ввод консоли или печать, должна идти выше этого блока. +if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then + source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" +fi + +# ═══ Powerlevel10k Theme ═══════════════════════════════════ +# Загрузка через zinit (будет установлена автоматически) +# Примечание: этот блок должен быть в plugins.zsh, но оставлен здесь для ясности +# zinit ice depth=1 +# zinit light romkatv/powerlevel10k + +# ═══ P10k Configuration ════════════════════════════════════ +# Загрузка конфигурации p10k +# Для настройки запустите: p10k configure +[[ -f ~/.config/zsh/.p10k.zsh ]] && source ~/.config/zsh/.p10k.zsh