From b86f6ad5508846792d38ab23c0418315044956b8 Mon Sep 17 00:00:00 2001 From: linarphy Date: Fri, 5 Apr 2024 02:25:01 +0200 Subject: [PATCH] Major vim update --- private_dot_config/nvim/lazy-lock.json | 13 + private_dot_config/nvim/lua/plugins/lazy.lua | 12 + .../lua/plugins/nvim-lspconfig/eslint.lua | 1 + .../lua/plugins/nvim-lspconfig/settings.lua | 110 + .../lua/plugins/settings/cmp-nvim-lsp.lua | 3 + .../lua/plugins/settings/dashboard-nvim.lua | 77 + .../nvim/lua/plugins/settings/fzf-lua.lua | 10 + .../nvim/lua/plugins/settings/luasnip.lua | 3 + .../lua/plugins/settings/monokai_nvim.lua | 3 + .../lua/plugins/settings/nvim-lspconfig.lua | 16 + .../lua/plugins/settings/nvim-treesitter.lua | 22 + .../nvim/lua/plugins/settings/nvim_cmp.lua | 3 + .../lua/plugins/settings/vim-easy-align.lua | 3 + private_dot_config/python/pythonrc | 24 + private_dot_config/subversion/README.txt | 124 ++ private_dot_config/subversion/config | 189 ++ .../7aba78d62a89c29dbc6e029428d1f71f | 13 + .../svn.ssl.client-passphrase/.keep | 0 .../private_auth/svn.ssl.server/.keep | 0 .../private_auth/svn.username/.keep | 0 private_dot_config/subversion/servers | 136 ++ private_dot_config/zsh/dot_p10k.zsh | 1826 +++++++++++++++++ .../zsh/dot_zcompdump-archlinux-5.9 | 333 +-- private_dot_config/zsh/dot_zshenv | 4 + private_dot_config/zsh/dot_zshrc | 4 +- .../readonly_dot_zcompdump-archlinux-5.9.zwc | Bin 104208 -> 104544 bytes 26 files changed, 2764 insertions(+), 165 deletions(-) create mode 100644 private_dot_config/nvim/lazy-lock.json create mode 100644 private_dot_config/nvim/lua/plugins/lazy.lua create mode 100644 private_dot_config/nvim/lua/plugins/nvim-lspconfig/eslint.lua create mode 100644 private_dot_config/nvim/lua/plugins/nvim-lspconfig/settings.lua create mode 100644 private_dot_config/nvim/lua/plugins/settings/cmp-nvim-lsp.lua create mode 100644 private_dot_config/nvim/lua/plugins/settings/dashboard-nvim.lua create mode 100644 private_dot_config/nvim/lua/plugins/settings/fzf-lua.lua create mode 100644 private_dot_config/nvim/lua/plugins/settings/luasnip.lua create mode 100644 private_dot_config/nvim/lua/plugins/settings/monokai_nvim.lua create mode 100644 private_dot_config/nvim/lua/plugins/settings/nvim-lspconfig.lua create mode 100644 private_dot_config/nvim/lua/plugins/settings/nvim-treesitter.lua create mode 100644 private_dot_config/nvim/lua/plugins/settings/nvim_cmp.lua create mode 100644 private_dot_config/nvim/lua/plugins/settings/vim-easy-align.lua create mode 100644 private_dot_config/python/pythonrc create mode 100644 private_dot_config/subversion/README.txt create mode 100644 private_dot_config/subversion/config create mode 100644 private_dot_config/subversion/private_auth/svn.simple/7aba78d62a89c29dbc6e029428d1f71f create mode 100644 private_dot_config/subversion/private_auth/svn.ssl.client-passphrase/.keep create mode 100644 private_dot_config/subversion/private_auth/svn.ssl.server/.keep create mode 100644 private_dot_config/subversion/private_auth/svn.username/.keep create mode 100644 private_dot_config/subversion/servers create mode 100644 private_dot_config/zsh/dot_p10k.zsh diff --git a/private_dot_config/nvim/lazy-lock.json b/private_dot_config/nvim/lazy-lock.json new file mode 100644 index 0000000..cc1ab28 --- /dev/null +++ b/private_dot_config/nvim/lazy-lock.json @@ -0,0 +1,13 @@ +{ + "LuaSnip": { "branch": "master", "commit": "825a61bad1d60d917a7962d73cf3c683f4e0407e" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, + "dashboard-nvim": { "branch": "master", "commit": "681300934baf36f6184ca41f0b26aed22056d4ee" }, + "fzf-lua": { "branch": "main", "commit": "f430c5b3b1d531cff8d011474461ea3090e932e2" }, + "lazy.nvim": { "branch": "main", "commit": "bef521ac89c8d423f9d092e37b58e8af0c099309" }, + "monokai.nvim": { "branch": "master", "commit": "b8bd44d5796503173627d7a1fc51f77ec3a08a63" }, + "nvim-cmp": { "branch": "main", "commit": "ce16de5665c766f39c271705b17fff06f7bcb84f" }, + "nvim-lspconfig": { "branch": "master", "commit": "96e5711040df23583591391ce49e556b8cd248d8" }, + "nvim-treesitter": { "branch": "master", "commit": "1b050206e490a4146cdf25c7b38969c1711b5620" }, + "nvim-web-devicons": { "branch": "master", "commit": "3ee60deaa539360518eaab93a6c701fe9f4d82ef" }, + "vim-easy-align": { "branch": "master", "commit": "12dd6316974f71ce333e360c0260b4e1f81169c3" } +} \ No newline at end of file diff --git a/private_dot_config/nvim/lua/plugins/lazy.lua b/private_dot_config/nvim/lua/plugins/lazy.lua new file mode 100644 index 0000000..4d7b5d3 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/lazy.lua @@ -0,0 +1,12 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git" , + "clone" , + "--filter=blob:none" , + "https://github.com/folke/lazy.nvim.git", + "--branch=stable" , -- latest stable release + lazypath , + }) +end +vim.opt.rtp:prepend(lazypath) diff --git a/private_dot_config/nvim/lua/plugins/nvim-lspconfig/eslint.lua b/private_dot_config/nvim/lua/plugins/nvim-lspconfig/eslint.lua new file mode 100644 index 0000000..49fb5a2 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/nvim-lspconfig/eslint.lua @@ -0,0 +1 @@ +require'lspconfig'.eslint.setup{} diff --git a/private_dot_config/nvim/lua/plugins/nvim-lspconfig/settings.lua b/private_dot_config/nvim/lua/plugins/nvim-lspconfig/settings.lua new file mode 100644 index 0000000..8a8c621 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/nvim-lspconfig/settings.lua @@ -0,0 +1,110 @@ +--[[ +Settings for main nvim-lspconfg plugin +--]] + +-- Setup language servers. +local lspconfig = require('lspconfig') +local luasnip = require('luasnip') +lspconfig.pyright.setup {} +lspconfig.tsserver.setup {} +lspconfig.rust_analyzer.setup { + -- Server-specific settings. See `:help lspconfig-setup` + settings = { + ['rust-analyzer'] = {}, + }, +} + + +-- Global mappings. +-- See `:help vim.diagnostic.*` for documentation on any of the below functions +vim.keymap.set('n', 'ple', vim.diagnostic.open_float) +vim.keymap.set('n', 'pln', vim.diagnostic.goto_prev) +vim.keymap.set('n', 'pl?', vim.diagnostic.goto_next) +vim.keymap.set('n', 'plq', vim.diagnostic.setloclist) + +-- Use LspAttach autocommand to only map the following keys +-- after the language server attaches to the current buffer +vim.api.nvim_create_autocmd('LspAttach', { + group = vim.api.nvim_create_augroup('UserLspConfig', {}), + callback = function(ev) + -- Enable completion triggered by + vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' + + -- Buffer local mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local opts = { buffer = ev.buf } + vim.keymap.set('n', 'plD', vim.lsp.buf.declaration, opts) + vim.keymap.set('n', 'pld', vim.lsp.buf.definition, opts) + vim.keymap.set('n', 'plh', vim.lsp.buf.hover, opts) + vim.keymap.set('n', 'pli', vim.lsp.buf.implementation, opts) + vim.keymap.set('n', 'pls', vim.lsp.buf.signature_help, opts) + vim.keymap.set('n', 'plwa', vim.lsp.buf.add_workspace_folder, opts) + vim.keymap.set('n', 'plwr', vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set('n', 'plwl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, opts) + vim.keymap.set('n', 'plt', vim.lsp.buf.type_definition, opts) + vim.keymap.set('n', 'plr', vim.lsp.buf.rename, opts) + vim.keymap.set({ 'n', 'v' }, 'plca', vim.lsp.buf.code_action, opts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) + vim.keymap.set('n', 'pll', function() + vim.lsp.buf.format { async = true } + end, opts) + end, +}) + +-- Add additional capabilities supported by nvim-cmp +local capabilities = require("cmp_nvim_lsp").default_capabilities() + +local lspconfig = require('lspconfig') + +-- Enable some language servers with the additional completion capabilities offered by nvim-cmp +local servers = { 'rust_analyzer', 'tsserver' } +for _, lsp in ipairs(servers) do + lspconfig[lsp].setup { + -- on_attach = my_custom_on_attach, + capabilities = capabilities, + } +end + +-- nvim-cmp setup +local cmp = require 'cmp' +cmp.setup { + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), -- Up + [''] = cmp.mapping.scroll_docs(4), -- Down + -- C-b (back) C-f (forward) for snippet placeholder navigation. + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }, + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { 'i', 's' }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { 'i', 's' }), + }), + sources = { + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, +} diff --git a/private_dot_config/nvim/lua/plugins/settings/cmp-nvim-lsp.lua b/private_dot_config/nvim/lua/plugins/settings/cmp-nvim-lsp.lua new file mode 100644 index 0000000..fd8d049 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/settings/cmp-nvim-lsp.lua @@ -0,0 +1,3 @@ +return { + 'hrsh7th/cmp-nvim-lsp', +} diff --git a/private_dot_config/nvim/lua/plugins/settings/dashboard-nvim.lua b/private_dot_config/nvim/lua/plugins/settings/dashboard-nvim.lua new file mode 100644 index 0000000..3fefbd5 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/settings/dashboard-nvim.lua @@ -0,0 +1,77 @@ +return { + 'glepnir/dashboard-nvim', + event = 'VimEnter' , + config = function() + require('dashboard').setup({ + theme = 'doom', + config = { + header = { + '', + 'MMMMMMMMMWkdXMMMMMMMMMMMMMWXOd:\'.. ..\':oOXWMMMMMMMMMMMMMNxkWMMMMMMMMM', + 'MMMMMMMMMWo.;kNMMMMMMMMNOd:\'. .\':oONMMMMMMMMWO:.lWMMMMMMMMM', + 'MMMMMMMMMWo ;kNMMMNkc\' \'ckXMMMWO:. lWMMMMMMMMM', + 'MMMMMMMMMWo .;kKd\' \'oKO:. lWMMMMMMMMM', + 'MMMMMMMMMWo .xO:. :Ox\' lWMMMMMMMMM', + 'MMMMMMMMMWo .oKWMNk;. ;kNMMXd\' lWMMMMMMMMM', + 'MMMMMMMMMWo..oKWMMMMMNk;. ;kNMMMMMMXd\'.lWMMMMMMMMM', + 'MMMMMMMMMWOdKWMMMMMMMMMNk;. ;kNMMMMMMMMMWXxOWMMMMMMMMM', + 'MMMMMMMMMMMMMMMMMMMMMMMMMNk;. ;kNMMMMMMMMMMMMMMMMMMMMMMMMM', + 'MMMMMMMMMMMMMMMMMMMMMMMMMMMNk;. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMM', + 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk;. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', + 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk;. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', + 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk;. .;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', + 'XWMMMMMMMW0doooooooooooooooooooooooddddooooooooooooooooooooooooo0WMMMMMMMMX', + ',oKWMMMMMWd. ;kNMNk; oWMMMMMMXo\'', + '. .oKWMMMMk. ;kNMMMMMNk; .kMMMMMXd\' ', + '\' .oXWMMX; ;kNMMMMMMMMMNk; ;KMMWXd\' .', + 'c .oXWWx. ;kNMMMMMMMMMMMMMNk; .xWWXd\' :', + 'O. .oXNo ;kNMMMMMMMMMMMMMMMMMNk; lXXd\' .k', + 'No .oOc ;kNMMMMMMMMMMMMMMMMMMMMMNk; cOd\' lN', + 'MX: \'c;. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMNk; .;c\' ;KM', + 'MM0; ... ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk; ... ,0MM', + 'MMM0; .:kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk:. ,0MMM', + 'MMMMKc ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk; :KMMMM', + 'MMMMMNd. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk; .oXMMMMM', + 'MMMMMMW0:. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk; ;OWMMMMMM', + 'MMMMMMMMNl\'lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl\'lXMMMMMMMM', + '', + }, + center = { + { + icon = ' ' , + desc = 'Fichiers récents', + key = 'o', + keymap = ', f r', + action = 'lua require(\'fzf-lua\').oldfiles()', + }, + { + icon = ' ', + desc = 'Rechercher un fichier', + key = 'r', + keymap = ', f f', + action = 'lua require(\'fzf-lua\').files()', + }, + { + icon = ' ', + desc = 'Rechercher un mot', + key = 'm', + keymap = ', f w', + action = 'lua require(\'fzf-lua\').grep()', + }, + { + icon = ' ', + desc = 'Ouvrir des fichiers de configuration', + key = 'c', + keymap = ', i e', + action = 'lua vim.cmd( \'e ~/AppData/Local/nvim/init.lua\')', + }, + }, + footer = { + }, + } , + }) + end , + dependencies = { { + 'nvim-tree/nvim-web-devicons', + } } +} -- dashboard at start diff --git a/private_dot_config/nvim/lua/plugins/settings/fzf-lua.lua b/private_dot_config/nvim/lua/plugins/settings/fzf-lua.lua new file mode 100644 index 0000000..86b0233 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/settings/fzf-lua.lua @@ -0,0 +1,10 @@ +return { + 'ibhagwan/fzf-lua', + dependencies = { + 'nvim-tree/nvim-web-devicons', + } , + config = function() + require('fzf-lua').setup({ + }) + end +} -- use fzf with nvim diff --git a/private_dot_config/nvim/lua/plugins/settings/luasnip.lua b/private_dot_config/nvim/lua/plugins/settings/luasnip.lua new file mode 100644 index 0000000..7759690 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/settings/luasnip.lua @@ -0,0 +1,3 @@ +return { + 'L3MON4D3/LuaSnip', +} diff --git a/private_dot_config/nvim/lua/plugins/settings/monokai_nvim.lua b/private_dot_config/nvim/lua/plugins/settings/monokai_nvim.lua new file mode 100644 index 0000000..326cc77 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/settings/monokai_nvim.lua @@ -0,0 +1,3 @@ +return { + 'tanvirtin/monokai.nvim', +} -- colorscheme diff --git a/private_dot_config/nvim/lua/plugins/settings/nvim-lspconfig.lua b/private_dot_config/nvim/lua/plugins/settings/nvim-lspconfig.lua new file mode 100644 index 0000000..e85e6ee --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/settings/nvim-lspconfig.lua @@ -0,0 +1,16 @@ +return { + 'neovim/nvim-lspconfig', + event = { + 'BufReadPre', + 'BufNewFile', + }, + servers = { + settings = { + Lua = { + telemetry = { + enable = false, + }, + }, + }, + }, +} diff --git a/private_dot_config/nvim/lua/plugins/settings/nvim-treesitter.lua b/private_dot_config/nvim/lua/plugins/settings/nvim-treesitter.lua new file mode 100644 index 0000000..bba93a9 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/settings/nvim-treesitter.lua @@ -0,0 +1,22 @@ +return { + 'nvim-treesitter/nvim-treesitter', + version = false, + build = function() + require('nvim-treesitter.install').update( { + with_sync = true, + } )() + end, + opts = { + highlight = { + enable = true, + }, + indent = { + enable = true, + }, + ensure_installed = { + "all" + }, + sync_install = false, + auto_install = false, + } +} diff --git a/private_dot_config/nvim/lua/plugins/settings/nvim_cmp.lua b/private_dot_config/nvim/lua/plugins/settings/nvim_cmp.lua new file mode 100644 index 0000000..e692c63 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/settings/nvim_cmp.lua @@ -0,0 +1,3 @@ +return { + 'hrsh7th/nvim-cmp', +} diff --git a/private_dot_config/nvim/lua/plugins/settings/vim-easy-align.lua b/private_dot_config/nvim/lua/plugins/settings/vim-easy-align.lua new file mode 100644 index 0000000..83bcd49 --- /dev/null +++ b/private_dot_config/nvim/lua/plugins/settings/vim-easy-align.lua @@ -0,0 +1,3 @@ +return { + 'junegunn/vim-easy-align', +} diff --git a/private_dot_config/python/pythonrc b/private_dot_config/python/pythonrc new file mode 100644 index 0000000..cd954b6 --- /dev/null +++ b/private_dot_config/python/pythonrc @@ -0,0 +1,24 @@ +def is_vanilla() -> bool: + import sys + return not hasattr(__builtins__, '__IPYTHON__') and 'bpython' not in sys.argv[0] + + +def setup_history(): + import os + import atexit + import readline + from pathlib import Path + + if state_home := os.environ.get('XDG_STATE_HOME'): + state_home = Path(state_home) + else: + state_home = Path.home() / '.local' / 'state' + + history: Path = state_home / 'python_history' + + readline.read_history_file(str(history)) + atexit.register(readline.write_history_file, str(history)) + + +if is_vanilla(): + setup_history() diff --git a/private_dot_config/subversion/README.txt b/private_dot_config/subversion/README.txt new file mode 100644 index 0000000..8d157ed --- /dev/null +++ b/private_dot_config/subversion/README.txt @@ -0,0 +1,124 @@ +This directory holds run-time configuration information for Subversion +clients. The configuration files all share the same syntax, but you +should examine a particular file to learn what configuration +directives are valid for that file. + +The syntax is standard INI format: + + - Empty lines, and lines starting with '#', are ignored. + The first significant line in a file must be a section header. + + - A section starts with a section header, which must start in + the first column: + + [section-name] + + - An option, which must always appear within a section, is a pair + (name, value). There are two valid forms for defining an + option, both of which must start in the first column: + + name: value + name = value + + Whitespace around the separator (:, =) is optional. + + - Section and option names are case-insensitive, but case is + preserved. + + - An option's value may be broken into several lines. The value + continuation lines must start with at least one whitespace. + Trailing whitespace in the previous line, the newline character + and the leading whitespace in the continuation line is compressed + into a single space character. + + - All leading and trailing whitespace around a value is trimmed, + but the whitespace within a value is preserved, with the + exception of whitespace around line continuations, as + described above. + + - When a value is a boolean, any of the following strings are + recognised as truth values (case does not matter): + + true false + yes no + on off + 1 0 + + - When a value is a list, it is comma-separated. Again, the + whitespace around each element of the list is trimmed. + + - Option values may be expanded within a value by enclosing the + option name in parentheses, preceded by a percent sign and + followed by an 's': + + %(name)s + + The expansion is performed recursively and on demand, during + svn_option_get. The name is first searched for in the same + section, then in the special [DEFAULT] section. If the name + is not found, the whole '%(name)s' placeholder is left + unchanged. + + Any modifications to the configuration data invalidate all + previously expanded values, so that the next svn_option_get + will take the modifications into account. + +The syntax of the configuration files is a subset of the one used by +Python's ConfigParser module; see + + https://docs.python.org/3/library/configparser.html + +Configuration data in the Windows registry +========================================== + +On Windows, configuration data may also be stored in the registry. The +functions svn_config_read and svn_config_merge will read from the +registry when passed file names of the form: + + REGISTRY:/path/to/config-key + +The REGISTRY: prefix must be in upper case. The part must be +one of: + + HKLM for HKEY_LOCAL_MACHINE + HKCU for HKEY_CURRENT_USER + +The values in config-key represent the options in the [DEFAULT] section. +The keys below config-key represent other sections, and their values +represent the options. Only values of type REG_SZ whose name doesn't +start with a '#' will be used; other values, as well as the keys' +default values, will be ignored. + + +File locations +============== + +Typically, Subversion uses two config directories, one for site-wide +configuration, + + Unix: + /etc/subversion/servers + /etc/subversion/config + /etc/subversion/hairstyles + Windows: + %ALLUSERSPROFILE%\Application Data\Subversion\servers + %ALLUSERSPROFILE%\Application Data\Subversion\config + %ALLUSERSPROFILE%\Application Data\Subversion\hairstyles + REGISTRY:HKLM\Software\Tigris.org\Subversion\Servers + REGISTRY:HKLM\Software\Tigris.org\Subversion\Config + REGISTRY:HKLM\Software\Tigris.org\Subversion\Hairstyles + +and one for per-user configuration: + + Unix: + ~/.subversion/servers + ~/.subversion/config + ~/.subversion/hairstyles + Windows: + %APPDATA%\Subversion\servers + %APPDATA%\Subversion\config + %APPDATA%\Subversion\hairstyles + REGISTRY:HKCU\Software\Tigris.org\Subversion\Servers + REGISTRY:HKCU\Software\Tigris.org\Subversion\Config + REGISTRY:HKCU\Software\Tigris.org\Subversion\Hairstyles + diff --git a/private_dot_config/subversion/config b/private_dot_config/subversion/config new file mode 100644 index 0000000..cb8be97 --- /dev/null +++ b/private_dot_config/subversion/config @@ -0,0 +1,189 @@ +### This file configures various client-side behaviors. +### +### The commented-out examples below are intended to demonstrate +### how to use this file. + +### Section for authentication and authorization customizations. +[auth] +### Set password stores used by Subversion. They should be +### delimited by spaces or commas. The order of values determines +### the order in which password stores are used. +### Valid password stores: +### gnome-keyring (Unix-like systems) +### kwallet (Unix-like systems) +### gpg-agent (Unix-like systems) +### keychain (Mac OS X) +### windows-cryptoapi (Windows) +# password-stores = gpg-agent,gnome-keyring,kwallet +### To disable all password stores, use an empty list: +# password-stores = +### +### Set KWallet wallet used by Subversion. If empty or unset, +### then the default network wallet will be used. +# kwallet-wallet = +### +### Include PID (Process ID) in Subversion application name when +### using KWallet. It defaults to 'no'. +# kwallet-svn-application-name-with-pid = yes +### +### Set ssl-client-cert-file-prompt to 'yes' to cause the client +### to prompt for a path to a client cert file when the server +### requests a client cert but no client cert file is found in the +### expected place (see the 'ssl-client-cert-file' option in the +### 'servers' configuration file). Defaults to 'no'. +# ssl-client-cert-file-prompt = no +### +### The rest of the [auth] section in this file has been deprecated. +### Both 'store-passwords' and 'store-auth-creds' can now be +### specified in the 'servers' file in your config directory +### and are documented there. Anything specified in this section +### is overridden by settings specified in the 'servers' file. +# store-passwords = no +# store-auth-creds = no + +### Section for configuring external helper applications. +[helpers] +### Set editor-cmd to the command used to invoke your text editor. +### This will override the environment variables that Subversion +### examines by default to find this information ($EDITOR, +### et al). +# editor-cmd = editor (vi, emacs, notepad, etc.) +### Set diff-cmd to the absolute path of your 'diff' program. +### This will override the compile-time default, which is to use +### Subversion's internal diff implementation. +# diff-cmd = diff_program (diff, gdiff, etc.) +### Diff-extensions are arguments passed to an external diff +### program or to Subversion's internal diff implementation. +### Set diff-extensions to override the default arguments ('-u'). +# diff-extensions = -u -p +### Set diff3-cmd to the absolute path of your 'diff3' program. +### This will override the compile-time default, which is to use +### Subversion's internal diff3 implementation. +# diff3-cmd = diff3_program (diff3, gdiff3, etc.) +### Set diff3-has-program-arg to 'yes' if your 'diff3' program +### accepts the '--diff-program' option. +# diff3-has-program-arg = [yes | no] +### Set merge-tool-cmd to the command used to invoke your external +### merging tool of choice. Subversion will pass 5 arguments to +### the specified command: base theirs mine merged wcfile +# merge-tool-cmd = merge_command + +### Section for configuring tunnel agents. +[tunnels] +### Configure svn protocol tunnel schemes here. By default, only +### the 'ssh' scheme is defined. You can define other schemes to +### be used with 'svn+scheme://hostname/path' URLs. A scheme +### definition is simply a command, optionally prefixed by an +### environment variable name which can override the command if it +### is defined. The command (or environment variable) may contain +### arguments, using standard shell quoting for arguments with +### spaces. The command will be invoked as: +### svnserve -t +### where is the hostname part of the URL. If the URL +### specified a username and/or a port, those are included in the +### argument in the usual way: @:. +### If the built-in ssh scheme were not predefined, it could be +### defined as: +# ssh = $SVN_SSH ssh -q -- +### If you wanted to define a new 'rsh' scheme, to be used with +### 'svn+rsh:' URLs, you could do so as follows: +# rsh = rsh -- +### Or, if you wanted to specify a full path and arguments: +# rsh = /path/to/rsh -l myusername -- +### On Windows, if you are specifying a full path to a command, +### use a forward slash (/) or a paired backslash (\\) as the +### path separator. A single backslash will be treated as an +### escape for the following character. + +### Section for configuring miscellaneous Subversion options. +[miscellany] +### Set global-ignores to a set of whitespace-delimited globs +### which Subversion will ignore in its 'status' output, and +### while importing or adding files and directories. +### '*' matches leading dots, e.g. '*.rej' matches '.foo.rej'. +# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__ +# *.rej *~ #*# .#* .*.swp .DS_Store [Tt]humbs.db +### Set log-encoding to the default encoding for log messages +# log-encoding = latin1 +### Set use-commit-times to make checkout/update/switch/revert +### put last-committed timestamps on every file touched. +# use-commit-times = yes +### Set no-unlock to prevent 'svn commit' from automatically +### releasing locks on files. +# no-unlock = yes +### Set mime-types-file to a MIME type registry file, used to +### provide hints to Subversion's MIME type auto-detection +### algorithm. +# mime-types-file = /path/to/mime.types +### Set preserved-conflict-file-exts to a whitespace-delimited +### list of patterns matching file extensions which should be +### preserved in generated conflict file names. By default, +### conflict files use custom extensions. +# preserved-conflict-file-exts = doc ppt xls od? +### Set enable-auto-props to 'yes' to enable automatic properties +### for 'svn add' and 'svn import', it defaults to 'no'. +### Automatic properties are defined in the section 'auto-props'. +# enable-auto-props = yes +### Set enable-magic-file to 'no' to disable magic file detection +### of the file type when automatically setting svn:mime-type. It +### defaults to 'yes' if magic file support is possible. +# enable-magic-file = yes +### Set interactive-conflicts to 'no' to disable interactive +### conflict resolution prompting. It defaults to 'yes'. +# interactive-conflicts = no +### Set memory-cache-size to define the size of the memory cache +### used by the client when accessing a FSFS repository via +### ra_local (the file:// scheme). The value represents the number +### of MB used by the cache. +# memory-cache-size = 16 +### Set diff-ignore-content-type to 'yes' to cause 'svn diff' to +### attempt to show differences of all modified files regardless +### of their MIME content type. By default, Subversion will only +### attempt to show differences for files believed to have human- +### readable (non-binary) content. This option is especially +### useful when Subversion is configured (via the 'diff-cmd' +### option) to employ an external differencing tool which is able +### to show meaningful differences for binary file formats. [New +### in 1.9] +# diff-ignore-content-type = no + +### Section for configuring automatic properties. +[auto-props] +### The format of the entries is: +### file-name-pattern = propname[=value][;propname[=value]...] +### The file-name-pattern can contain wildcards (such as '*' and +### '?'). All entries which match (case-insensitively) will be +### applied to the file. Note that auto-props functionality +### must be enabled, which is typically done by setting the +### 'enable-auto-props' option. +# *.c = svn:eol-style=native +# *.cpp = svn:eol-style=native +# *.h = svn:keywords=Author Date Id Rev URL;svn:eol-style=native +# *.dsp = svn:eol-style=CRLF +# *.dsw = svn:eol-style=CRLF +# *.sh = svn:eol-style=native;svn:executable +# *.txt = svn:eol-style=native;svn:keywords=Author Date Id Rev URL; +# *.png = svn:mime-type=image/png +# *.jpg = svn:mime-type=image/jpeg +# Makefile = svn:eol-style=native + +### Section for configuring working copies. +[working-copy] +### Set to a list of the names of specific clients that should use +### exclusive SQLite locking of working copies. This increases the +### performance of the client but prevents concurrent access by +### other clients. Third-party clients may also support this +### option. +### Possible values: +### svn (the command line client) +# exclusive-locking-clients = +### Set to true to enable exclusive SQLite locking of working +### copies by all clients using the 1.8 APIs. Enabling this may +### cause some clients to fail to work properly. This does not have +### to be set for exclusive-locking-clients to work. +# exclusive-locking = false +### Set the SQLite busy timeout in milliseconds: the maximum time +### the client waits to get access to the SQLite database before +### returning an error. The default is 10000, i.e. 10 seconds. +### Longer values may be useful when exclusive locking is enabled. +# busy-timeout = 10000 diff --git a/private_dot_config/subversion/private_auth/svn.simple/7aba78d62a89c29dbc6e029428d1f71f b/private_dot_config/subversion/private_auth/svn.simple/7aba78d62a89c29dbc6e029428d1f71f new file mode 100644 index 0000000..379fb1f --- /dev/null +++ b/private_dot_config/subversion/private_auth/svn.simple/7aba78d62a89c29dbc6e029428d1f71f @@ -0,0 +1,13 @@ +K 8 +passtype +V 13 +gnome-keyring +K 15 +svn:realmstring +V 46 + SVN LESIA +K 8 +username +V 8 +groupe05 +END diff --git a/private_dot_config/subversion/private_auth/svn.ssl.client-passphrase/.keep b/private_dot_config/subversion/private_auth/svn.ssl.client-passphrase/.keep new file mode 100644 index 0000000..e69de29 diff --git a/private_dot_config/subversion/private_auth/svn.ssl.server/.keep b/private_dot_config/subversion/private_auth/svn.ssl.server/.keep new file mode 100644 index 0000000..e69de29 diff --git a/private_dot_config/subversion/private_auth/svn.username/.keep b/private_dot_config/subversion/private_auth/svn.username/.keep new file mode 100644 index 0000000..e69de29 diff --git a/private_dot_config/subversion/servers b/private_dot_config/subversion/servers new file mode 100644 index 0000000..4ab061d --- /dev/null +++ b/private_dot_config/subversion/servers @@ -0,0 +1,136 @@ +### This file specifies server-specific parameters, +### including HTTP proxy information, HTTP timeout settings, +### and authentication settings. +### +### The currently defined server options are: +### http-proxy-host Proxy host for HTTP connection +### http-proxy-port Port number of proxy host service +### http-proxy-username Username for auth to proxy service +### http-proxy-password Password for auth to proxy service +### http-proxy-exceptions List of sites that do not use proxy +### http-timeout Timeout for HTTP requests in seconds +### http-compression Whether to compress HTTP requests +### (yes/no/auto). +### http-max-connections Maximum number of parallel server +### connections to use for any given +### HTTP operation. +### http-chunked-requests Whether to use chunked transfer +### encoding for HTTP requests body. +### http-auth-types List of HTTP authentication types. +### ssl-authority-files List of files, each of a trusted CA +### ssl-trust-default-ca Trust the system 'default' CAs +### ssl-client-cert-file PKCS#12 format client certificate file +### ssl-client-cert-password Client Key password, if needed. +### ssl-pkcs11-provider Name of PKCS#11 provider to use. +### http-library Which library to use for http/https +### connections. +### http-bulk-updates Whether to request bulk update +### responses or to fetch each file +### in an individual request. +### store-passwords Specifies whether passwords used +### to authenticate against a +### Subversion server may be cached +### to disk in any way. +### store-ssl-client-cert-pp Specifies whether passphrase used +### to authenticate against a client +### certificate may be cached to disk +### in any way +### store-auth-creds Specifies whether any auth info +### (passwords, server certs, etc.) +### may be cached to disk. +### username Specifies the default username. +### +### Set store-passwords to 'no' to avoid storing new passwords on +### disk in any way, including in password stores. It defaults to +### 'yes', but Subversion will never save your password to disk in +### plaintext unless explicitly configured to do so. +### +### Set store-ssl-client-cert-pp to 'no' to avoid storing new ssl +### client certificate passphrases in the auth/ area of your +### config directory. It defaults to 'yes', but Subversion will +### never save your passphrase to disk in plaintext unless +### explicitly configured to do so. +### +### Set store-auth-creds to 'no' to avoid storing any new Subversion +### credentials in the auth/ area of your config directory. +### Note that this includes SSL server certificates. +### It defaults to 'yes'. +### +### Note that setting a 'store-*' option to 'no' only prevents +### saving of *new* passwords, passphrases or other credentials. +### It does not remove or invalidate existing stored credentials. +### To do that, see the 'svn auth --remove' command, or remove the +### cache files by hand as described in the Subversion book at +### http://svnbook.red-bean.com/nightly/en/svn.serverconfig.netmodel.html#svn.tour.initial.authn-cache-purge +### +### HTTP timeouts, if given, are specified in seconds. A timeout +### of 0, i.e. zero, causes a builtin default to be used. +### +### Most users will not need to explicitly set the http-library +### option, but valid values for the option include: +### 'serf': Serf-based module (Subversion 1.5 - present) +### Availability of these modules may depend on your specific +### Subversion distribution. +### +### The commented-out examples below are intended only to +### demonstrate how to use this file; any resemblance to actual +### servers, living or dead, is entirely coincidental. + +### In the 'groups' section, the URL of the repository you're +### trying to access is matched against the patterns on the right. +### If a match is found, the server options are taken from the +### section with the corresponding name on the left. + +[groups] +# group1 = *.collab.net +# othergroup = repository.blarggitywhoomph.com +# thirdgroup = *.example.com + +### Information for the first group: +# [group1] +# http-proxy-host = proxy1.some-domain-name.com +# http-proxy-port = 80 +# http-proxy-username = blah +# http-proxy-password = doubleblah +# http-timeout = 60 +# username = harry + +### Information for the second group: +# [othergroup] +# http-proxy-host = proxy2.some-domain-name.com +# http-proxy-port = 9000 +# No username and password for the proxy, so use the defaults below. + +### You can set default parameters in the 'global' section. +### These parameters apply if no corresponding parameter is set in +### a specifically matched group as shown above. Thus, if you go +### through the same proxy server to reach every site on the +### Internet, you probably just want to put that server's +### information in the 'global' section and not bother with +### 'groups' or any other sections. +### +### Most people might want to configure password caching +### parameters here, but you can also configure them per server +### group (per-group settings override global settings). +### +### If you go through a proxy for all but a few sites, you can +### list those exceptions under 'http-proxy-exceptions'. This only +### overrides defaults, not explicitly matched server names. +### +### 'ssl-authority-files' is a semicolon-delimited list of files, +### each pointing to a PEM-encoded Certificate Authority (CA) +### SSL certificate. See details above for overriding security +### due to SSL. +[global] +# http-proxy-exceptions = *.exception.com, www.internal-site.org +# http-proxy-host = defaultproxy.whatever.com +# http-proxy-port = 7000 +# http-proxy-username = defaultusername +# http-proxy-password = defaultpassword +# http-compression = auto +# No http-timeout, so just use the builtin default. +# ssl-authority-files = /path/to/CAcert.pem;/path/to/CAcert2.pem +# +# Password / passphrase caching parameters: +# store-passwords = no +# store-ssl-client-cert-pp = no diff --git a/private_dot_config/zsh/dot_p10k.zsh b/private_dot_config/zsh/dot_p10k.zsh new file mode 100644 index 0000000..05370c7 --- /dev/null +++ b/private_dot_config/zsh/dot_p10k.zsh @@ -0,0 +1,1826 @@ +# Generated by Powerlevel10k configuration wizard on 2023-08-02 at 02:03 CEST. +# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 47269. +# Wizard options: nerdfont-v3 + powerline, large icons, rainbow, unicode, 24h time, +# angled separators, sharp heads, flat tails, 1 line, sparse, many icons, concise, +# 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=( + os_icon # os identifier + dir # current directory + vcs # git status + # 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=( + 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) + 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 + # 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=moderate + + # 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='%242F╭─' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%242F├─' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%242F╰─' + # Connect right prompt lines with these symbols. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%242F─╮' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%242F─┤' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%242F─╯' + + # 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=242 + # 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='' + # The right end of right prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='' + # 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-version + .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='⭐' + + ######################[ 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 + + ######################################[ 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|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/blob/master/README.md#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=off + + # 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/blob/master/README.md#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/private_dot_config/zsh/dot_zcompdump-archlinux-5.9 b/private_dot_config/zsh/dot_zcompdump-archlinux-5.9 index f695d33..1976b6a 100644 --- a/private_dot_config/zsh/dot_zcompdump-archlinux-5.9 +++ b/private_dot_config/zsh/dot_zcompdump-archlinux-5.9 @@ -1,4 +1,4 @@ -#files: 819 version: 5.9 +#files: 823 version: 5.9 _comps=( '-' '_precommand' @@ -593,6 +593,7 @@ _comps=( 'iftop' '_iftop' 'ifup' '_net_interfaces' 'ijoin' '_ispell' +'img2sixel' '_img2sixel' 'import' '_imagemagick' 'inc' '_mh' 'includeres' '_psutils' @@ -1300,6 +1301,7 @@ _comps=( 'type' '_which' 'typeset' '_typeset' 'udevadm' '_udevadm' +'udisksctl' '_udisks2' 'ulimit' '_ulimit' 'uml_mconsole' '_uml' 'uml_moo' '_uml' @@ -1439,6 +1441,7 @@ _comps=( 'wl-paste' '_wl-paste' 'wodim' '_cdrecord' 'wpa_cli' '_wpa_cli' +'wpctl' '_wpctl' 'write' '_users_on' 'www' '_webbrowser' 'xargs' '_xargs' @@ -1509,6 +1512,7 @@ _comps=( 'ytalk' '_other_accounts' 'yt-dlp' '_yt-dlp' 'zargs' '_zargs' +'zathura' '_zathura' 'zcalc' '_zcalc' '-zcalc-line-' '_zcalc_line' 'zcat' '_zcat' @@ -1671,172 +1675,173 @@ bindkey '^[~' _bash_complete-word autoload -Uz _alacritty _asdf _bat _bootctl _busctl \ _cargo _chezmoi _coredumpctl _curl _glow \ - _hostnamectl _journalctl _kernel-install _libinput _localectl \ - _loginctl _machinectl _mako _makoctl _meson \ - _mkinitcpio _mpv _networkctl _ninja _nnn \ - _oomctl _pacman _paru _playerctl _pulseaudio \ - _resolvectl _rg _rustup _sd_hosts_or_user_at_host _sd_machines \ - _sd_outputmodes _sd_unit_files _sway _swayidle _swaylock \ - _swaymsg _systemctl _systemd _systemd-analyze _systemd-delta \ - _systemd-inhibit _systemd-nspawn _systemd-path _systemd-run _systemd-tmpfiles \ - _timedatectl _udevadm _wl-copy _wl-paste _yt-dlp \ - _cdr _all_labels _all_matches _alternative _approximate \ - _arg_compile _arguments _bash_completions _cache_invalid _call_function \ - _combination _complete _complete_debug _complete_help _complete_help_generic \ - _complete_tag _comp_locale _correct _correct_filename _correct_word \ - _describe _description _dispatch _expand _expand_alias \ - _expand_word _extensions _external_pwds _generic _guard \ - _history _history_complete_word _ignored _list _main_complete \ - _match _menu _message _most_recent_file _multi_parts \ - _next_label _next_tags _normal _nothing _numbers \ - _oldlist _pick_variant _prefix _read_comp _regex_arguments \ - _regex_words _requested _retrieve_cache _sep_parts _sequence \ - _set_command _setup _store_cache _sub_commands _tags \ - _user_expand _values _wanted _acpi _acpitool \ - _alsa-utils _analyseplugin _basenc _brctl _btrfs \ - _capabilities _chattr _chcon _choom _chrt \ - _cpupower _cryptsetup _dkms _e2label _ethtool \ - _findmnt _free _fuse_arguments _fusermount _fuse_values \ - _gpasswd _htop _iconvconfig _ionice _ipset \ - _iptables _iwconfig _kpartx _losetup _lsattr \ - _lsblk _lsns _lsusb _ltrace _mat \ - _mat2 _mdadm _mii-tool _modutils _mondo \ - _networkmanager _nsenter _opkg _perf _pidof \ - _pmap _qdbus _schedtool _selinux_contexts _selinux_roles \ - _selinux_types _selinux_users _setpriv _setsid _slabtop \ - _ss _sshfs _strace _sysstat _tload \ - _tpb _tracepath _tune2fs _uml _unshare \ - _valgrind _vserver _wakeup_capable_devices _wipefs _wpa_cli \ - _a2ps _aap _abcde _absolute_command_paths _ack \ - _adb _ansible _ant _antiword _apachectl \ - _apm _arch_archives _arch_namespace _arp _arping \ - _asciidoctor _asciinema _at _attr _augeas \ - _avahi _awk _base64 _basename _bash \ - _baudrates _baz _beep _bibtex _bind_addresses \ - _bison _bittorrent _bogofilter _bpf_filters _bpython \ - _bzip2 _bzr _cabal _cal _calendar \ - _canonical_paths _cat _ccal _cdcd _cdrdao \ - _cdrecord _chkconfig _chmod _chown _chroot \ - _chsh _cksum _clay _cmdambivalent _cmdstring \ - _cmp _column _comm _composer _compress \ - _configure _cowsay _cp _cpio _cplay \ - _crontab _cscope _csplit _cssh _ctags \ - _ctags_tags _curl _cut _cvs _darcs \ - _date _date_formats _dates _dbus _dconf \ - _dd _devtodo _df _dhclient _dict \ - _dict_words _diff _diff3 _diff_options _diffstat \ - _dig _directories _dir_list _django _dmesg \ - _dmidecode _dns_types _doas _domains _dos2unix \ - _drill _dropbox _dsh _dtruss _du \ - _dvi _ecasound _ed _elfdump _elinks \ - _email_addresses _enscript _entr _env _espeak \ - _etags _fakeroot _feh _fetchmail _ffmpeg \ - _figlet _file_modes _files _file_systems _find \ - _find_net_interfaces _finger _flac _flex _fmt \ - _fold _fortune _fsh _fuser _gcc \ - _gcore _gdb _gem _genisoimage _getconf \ - _getent _getfacl _getmail _getopt _ghostscript \ - _git _global _global_tags _gnu_generic _gnupod \ - _gnutls _go _gpg _gphoto2 _gprof \ - _gradle _graphicsmagick _grep _groff _groups \ - _growisofs _gsettings _guilt _gzip _have_glob_qual \ - _head _hexdump _host _hostname _hosts \ - _iconv _id _ifconfig _iftop _imagemagick \ - _initctl _init_d _install _iostat _ip \ - _ipsec _irssi _ispell _java _java_class \ - _joe _join _jq _killall _knock \ - _kvno _last _ldconfig _ldd _ld_debug \ - _less _lha _libvirt _links _list_files \ - _lldb _ln _loadkeys _locale _localedef \ - _locales _locate _logger _look _lp \ - _ls _lsof _lua _luarocks _lynx \ - _lz4 _lzop _mail _mailboxes _make \ - _man _md5sum _mencal _mh _mime_types \ - _mkdir _mkfifo _mknod _mktemp _module \ - _monotone _moosic _mosh _mount _mpc \ - _mt _mtools _mtr _mutt _mv \ - _my_accounts _myrepos _mysqldiff _mysql_utils _ncftp \ - _netcat _net_interfaces _netstat _newsgroups _nginx \ - _ngrep _nice _nkf _nl _nm \ - _nmap _npm _nslookup _numfmt _objdump \ - _object_files _od _openstack _opustools _other_accounts \ - _pack _pandoc _paste _patch _patchutils \ - _path_commands _path_files _pax _pbm _pdf \ - _perforce _perl _perl_basepods _perldoc _perl_modules \ - _pgids _pgrep _php _picocom _pids \ - _pine _ping _pip _pkgadd _pkg-config \ - _pkginfo _pkg_instance _pkgrm _pon _ports \ - _postfix _postgresql _postscript _pr _printenv \ - _printers _process_names _prove _ps _pspdf \ - _psutils _ptx _pump _pv _pwgen \ - _pydoc _python _python_modules _qemu _quilt \ - _rake _ranlib _rar _rclone _rcs \ - _readelf _readlink _remote_files _renice _ri \ - _rlogin _rm _rmdir _route _rrdtool \ - _rsync _rubber _ruby _runit _samba \ - _sccs _scons _screen _script _seafile \ - _sed _seq _service _services _setfacl \ - _sh _shasum _showmount _shred _shuf \ - _shutdown _signals _sisu _slrn _smartmontools \ - _socket _sort _spamassassin _split _sqlite \ - _sqsh _ssh _ssh_hosts _stat _stdbuf \ - _stgit _stow _strings _strip _stty \ - _su _subversion _sudo _surfraw _swaks \ - _swanctl _swift _sys_calls _sysctl _tac \ - _tail _tar _tar_archive _tardy _tcpdump \ - _tcptraceroute _tee _telnet _terminals _tex \ - _texi _texinfo _tidy _tiff _tilde_files \ - _timeout _time_zone _tin _tla _tmux \ - _todo.sh _toilet _top _topgit _totd \ - _touch _tput _tr _transmission _tree \ - _truncate _truss _tty _ttys _twidge \ - _twisted _umountable _unace _uname _unexpand \ - _uniq _unison _units _uptime _urls \ - _user_admin _user_at_host _users _users_on _vi \ - _vim _visudo _vmstat _vorbis _vpnc \ - _w _w3m _watch _wc _webbrowser \ - _wget _whereis _who _whois _wiggle \ - _xargs _xmlsoft _xmlstarlet _xmms2 _xxd \ - _xz _yafc _yodl _yp _zcat \ - _zdump _zfs _zfs_dataset _zfs_pool _zip \ - _zsh _acroread _code _dcop _eog \ - _evince _geany _gnome-gv _gqview _gv \ - _kdeconnect _kfmclient _matlab _mozilla _mplayer \ - _mupdf _nautilus _nedit _netscape _okular \ - _pdftk _qiv _rdesktop _setxkbmap _sublimetext \ - _urxvt _vnc _x_arguments _xauth _xautolock \ - _x_borderwidth _xclip _x_color _x_colormapid _x_cursor \ - _x_display _xdvi _x_extension _xfig _x_font \ - _xft_fonts _x_geometry _xinput _x_keysym _xloadimage \ - _x_locale _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 \ - _zeal _add-zle-hook-widget _add-zsh-hook _alias _aliases \ - __arguments _arrays _assign _autocd _bindkey \ - _brace_parameter _builtin _cd _command _command_names \ - _compadd _compdef _completers _condition _default \ - _delimiters _directory_stack _dirs _disable _dynamic_directory_name \ - _echotc _echoti _emulate _enable _equal \ - _exec _fc _file_descriptors _first _functions \ - _globflags _globqual_delims _globquals _hash _history_modifiers \ - _in_vared _jobs _jobs_bg _jobs_builtin _jobs_fg \ - _kill _limit _limits _math _math_params \ - _mere _module_math_func _options _options_set _options_unset \ - _parameter _parameters _precommand _print _prompt \ - _ps1234 _read _redirect _run-help _sched \ - _set _setopt _source _strftime _subscript \ - _suffix_alias_files _tcpsys _tilde _trap _ttyctl \ - _typeset _ulimit _unhash _user_math_func _value \ - _vared _vars _vcs_info _vcs_info_hooks _wait \ - _which _widgets _zargs _zattr _zcalc \ - _zcalc_line _zcompile _zed _zftp _zle \ - _zmodload _zmv _zparseopts _zpty _zsh-mime-handler \ - _zsocket _zstyle _ztodo + _hostnamectl _img2sixel _journalctl _kernel-install _libinput \ + _localectl _loginctl _machinectl _mako _makoctl \ + _meson _mkinitcpio _mpv _networkctl _ninja \ + _nnn _oomctl _pacman _paru _playerctl \ + _pulseaudio _resolvectl _rg _rustup _sd_hosts_or_user_at_host \ + _sd_machines _sd_outputmodes _sd_unit_files _sway _swayidle \ + _swaylock _swaymsg _systemctl _systemd _systemd-analyze \ + _systemd-delta _systemd-inhibit _systemd-nspawn _systemd-path _systemd-run \ + _systemd-tmpfiles _timedatectl _udevadm _udisks2 _wl-copy \ + _wl-paste _wpctl _yt-dlp _zathura _cdr \ + _all_labels _all_matches _alternative _approximate _arg_compile \ + _arguments _bash_completions _cache_invalid _call_function _combination \ + _complete _complete_debug _complete_help _complete_help_generic _complete_tag \ + _comp_locale _correct _correct_filename _correct_word _describe \ + _description _dispatch _expand _expand_alias _expand_word \ + _extensions _external_pwds _generic _guard _history \ + _history_complete_word _ignored _list _main_complete _match \ + _menu _message _most_recent_file _multi_parts _next_label \ + _next_tags _normal _nothing _numbers _oldlist \ + _pick_variant _prefix _read_comp _regex_arguments _regex_words \ + _requested _retrieve_cache _sep_parts _sequence _set_command \ + _setup _store_cache _sub_commands _tags _user_expand \ + _values _wanted _acpi _acpitool _alsa-utils \ + _analyseplugin _basenc _brctl _btrfs _capabilities \ + _chattr _chcon _choom _chrt _cpupower \ + _cryptsetup _dkms _e2label _ethtool _findmnt \ + _free _fuse_arguments _fusermount _fuse_values _gpasswd \ + _htop _iconvconfig _ionice _ipset _iptables \ + _iwconfig _kpartx _losetup _lsattr _lsblk \ + _lsns _lsusb _ltrace _mat _mat2 \ + _mdadm _mii-tool _modutils _mondo _networkmanager \ + _nsenter _opkg _perf _pidof _pmap \ + _qdbus _schedtool _selinux_contexts _selinux_roles _selinux_types \ + _selinux_users _setpriv _setsid _slabtop _ss \ + _sshfs _strace _sysstat _tload _tpb \ + _tracepath _tune2fs _uml _unshare _valgrind \ + _vserver _wakeup_capable_devices _wipefs _wpa_cli _a2ps \ + _aap _abcde _absolute_command_paths _ack _adb \ + _ansible _ant _antiword _apachectl _apm \ + _arch_archives _arch_namespace _arp _arping _asciidoctor \ + _asciinema _at _attr _augeas _avahi \ + _awk _base64 _basename _bash _baudrates \ + _baz _beep _bibtex _bind_addresses _bison \ + _bittorrent _bogofilter _bpf_filters _bpython _bzip2 \ + _bzr _cabal _cal _calendar _canonical_paths \ + _cat _ccal _cdcd _cdrdao _cdrecord \ + _chkconfig _chmod _chown _chroot _chsh \ + _cksum _clay _cmdambivalent _cmdstring _cmp \ + _column _comm _composer _compress _configure \ + _cowsay _cp _cpio _cplay _crontab \ + _cscope _csplit _cssh _ctags _ctags_tags \ + _curl _cut _cvs _darcs _date \ + _date_formats _dates _dbus _dconf _dd \ + _devtodo _df _dhclient _dict _dict_words \ + _diff _diff3 _diff_options _diffstat _dig \ + _directories _dir_list _django _dmesg _dmidecode \ + _dns_types _doas _domains _dos2unix _drill \ + _dropbox _dsh _dtruss _du _dvi \ + _ecasound _ed _elfdump _elinks _email_addresses \ + _enscript _entr _env _espeak _etags \ + _fakeroot _feh _fetchmail _ffmpeg _figlet \ + _file_modes _files _file_systems _find _find_net_interfaces \ + _finger _flac _flex _fmt _fold \ + _fortune _fsh _fuser _gcc _gcore \ + _gdb _gem _genisoimage _getconf _getent \ + _getfacl _getmail _getopt _ghostscript _git \ + _global _global_tags _gnu_generic _gnupod _gnutls \ + _go _gpg _gphoto2 _gprof _gradle \ + _graphicsmagick _grep _groff _groups _growisofs \ + _gsettings _guilt _gzip _have_glob_qual _head \ + _hexdump _host _hostname _hosts _iconv \ + _id _ifconfig _iftop _imagemagick _initctl \ + _init_d _install _iostat _ip _ipsec \ + _irssi _ispell _java _java_class _joe \ + _join _jq _killall _knock _kvno \ + _last _ldconfig _ldd _ld_debug _less \ + _lha _libvirt _links _list_files _lldb \ + _ln _loadkeys _locale _localedef _locales \ + _locate _logger _look _lp _ls \ + _lsof _lua _luarocks _lynx _lz4 \ + _lzop _mail _mailboxes _make _man \ + _md5sum _mencal _mh _mime_types _mkdir \ + _mkfifo _mknod _mktemp _module _monotone \ + _moosic _mosh _mount _mpc _mt \ + _mtools _mtr _mutt _mv _my_accounts \ + _myrepos _mysqldiff _mysql_utils _ncftp _netcat \ + _net_interfaces _netstat _newsgroups _nginx _ngrep \ + _nice _nkf _nl _nm _nmap \ + _npm _nslookup _numfmt _objdump _object_files \ + _od _openstack _opustools _other_accounts _pack \ + _pandoc _paste _patch _patchutils _path_commands \ + _path_files _pax _pbm _pdf _perforce \ + _perl _perl_basepods _perldoc _perl_modules _pgids \ + _pgrep _php _picocom _pids _pine \ + _ping _pip _pkgadd _pkg-config _pkginfo \ + _pkg_instance _pkgrm _pon _ports _postfix \ + _postgresql _postscript _pr _printenv _printers \ + _process_names _prove _ps _pspdf _psutils \ + _ptx _pump _pv _pwgen _pydoc \ + _python _python_modules _qemu _quilt _rake \ + _ranlib _rar _rclone _rcs _readelf \ + _readlink _remote_files _renice _ri _rlogin \ + _rm _rmdir _route _rrdtool _rsync \ + _rubber _ruby _runit _samba _sccs \ + _scons _screen _script _seafile _sed \ + _seq _service _services _setfacl _sh \ + _shasum _showmount _shred _shuf _shutdown \ + _signals _sisu _slrn _smartmontools _socket \ + _sort _spamassassin _split _sqlite _sqsh \ + _ssh _ssh_hosts _stat _stdbuf _stgit \ + _stow _strings _strip _stty _su \ + _subversion _sudo _surfraw _swaks _swanctl \ + _swift _sys_calls _sysctl _tac _tail \ + _tar _tar_archive _tardy _tcpdump _tcptraceroute \ + _tee _telnet _terminals _tex _texi \ + _texinfo _tidy _tiff _tilde_files _timeout \ + _time_zone _tin _tla _tmux _todo.sh \ + _toilet _top _topgit _totd _touch \ + _tput _tr _transmission _tree _truncate \ + _truss _tty _ttys _twidge _twisted \ + _umountable _unace _uname _unexpand _uniq \ + _unison _units _uptime _urls _user_admin \ + _user_at_host _users _users_on _vi _vim \ + _visudo _vmstat _vorbis _vpnc _w \ + _w3m _watch _wc _webbrowser _wget \ + _whereis _who _whois _wiggle _xargs \ + _xmlsoft _xmlstarlet _xmms2 _xxd _xz \ + _yafc _yodl _yp _zcat _zdump \ + _zfs _zfs_dataset _zfs_pool _zip _zsh \ + _acroread _code _dcop _eog _evince \ + _geany _gnome-gv _gqview _gv _kdeconnect \ + _kfmclient _matlab _mozilla _mplayer _mupdf \ + _nautilus _nedit _netscape _okular _pdftk \ + _qiv _rdesktop _setxkbmap _sublimetext _urxvt \ + _vnc _x_arguments _xauth _xautolock _x_borderwidth \ + _xclip _x_color _x_colormapid _x_cursor _x_display \ + _xdvi _x_extension _xfig _x_font _xft_fonts \ + _x_geometry _xinput _x_keysym _xloadimage _x_locale \ + _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 _zeal \ + _add-zle-hook-widget _add-zsh-hook _alias _aliases __arguments \ + _arrays _assign _autocd _bindkey _brace_parameter \ + _builtin _cd _command _command_names _compadd \ + _compdef _completers _condition _default _delimiters \ + _directory_stack _dirs _disable _dynamic_directory_name _echotc \ + _echoti _emulate _enable _equal _exec \ + _fc _file_descriptors _first _functions _globflags \ + _globqual_delims _globquals _hash _history_modifiers _in_vared \ + _jobs _jobs_bg _jobs_builtin _jobs_fg _kill \ + _limit _limits _math _math_params _mere \ + _module_math_func _options _options_set _options_unset _parameter \ + _parameters _precommand _print _prompt _ps1234 \ + _read _redirect _run-help _sched _set \ + _setopt _source _strftime _subscript _suffix_alias_files \ + _tcpsys _tilde _trap _ttyctl _typeset \ + _ulimit _unhash _user_math_func _value _vared \ + _vars _vcs_info _vcs_info_hooks _wait _which \ + _widgets _zargs _zattr _zcalc _zcalc_line \ + _zcompile _zed _zftp _zle _zmodload \ + _zmv _zparseopts _zpty _zsh-mime-handler _zsocket \ + _zstyle _ztodo autoload -Uz +X _call_program typeset -gUa _comp_assocs _comp_assocs=( '' ) -#omz revision: b81915d3293cc4657cec64202b9fd991b96b4ba2 +#omz revision: 9d529c41cc82580d0a947ce8bcf5ff7775585fe5 #omz fpath: /home/linarphy/.config/oh-my-zsh/plugins/zsh-syntax-highlighting /home/linarphy/.config/oh-my-zsh/plugins/zsh-autosuggestions /home/linarphy/.config/oh-my-zsh/plugins/git /home/linarphy/.config/oh-my-zsh/functions /home/linarphy/.config/oh-my-zsh/completions /home/linarphy/.config/oh-my-zsh/cache/completions /usr/local/share/zsh/site-functions /usr/share/zsh/site-functions /usr/share/zsh/functions/Calendar /usr/share/zsh/functions/Chpwd /usr/share/zsh/functions/Completion /usr/share/zsh/functions/Completion/Base /usr/share/zsh/functions/Completion/Linux /usr/share/zsh/functions/Completion/Unix /usr/share/zsh/functions/Completion/X /usr/share/zsh/functions/Completion/Zsh /usr/share/zsh/functions/Exceptions /usr/share/zsh/functions/MIME /usr/share/zsh/functions/Math /usr/share/zsh/functions/Misc /usr/share/zsh/functions/Newuser /usr/share/zsh/functions/Prompts /usr/share/zsh/functions/TCP /usr/share/zsh/functions/VCS_Info /usr/share/zsh/functions/VCS_Info/Backends /usr/share/zsh/functions/Zftp /usr/share/zsh/functions/Zle diff --git a/private_dot_config/zsh/dot_zshenv b/private_dot_config/zsh/dot_zshenv index bb6f8e0..ce31981 100644 --- a/private_dot_config/zsh/dot_zshenv +++ b/private_dot_config/zsh/dot_zshenv @@ -6,3 +6,7 @@ export GPG_TTY=$(tty) export QT_QPA_PLATFORM=wayland export QT_QPA_PLATFORMTHEME=qt5ct + +export PYTHONSTARTUP="$XDG_CONFIG_HOME"/python/pythonrc +export ZDOTDIR="$XDG_CONFIG_HOME/zsh" +export EDITOR=nvim diff --git a/private_dot_config/zsh/dot_zshrc b/private_dot_config/zsh/dot_zshrc index 79f148b..a70070f 100644 --- a/private_dot_config/zsh/dot_zshrc +++ b/private_dot_config/zsh/dot_zshrc @@ -108,8 +108,10 @@ source $ZSH/oh-my-zsh.sh # Example aliases # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" +alias vimdiff='nvim -d' +alias svn='svn --config-dir "$XDG_CONFIG_HOME"/subversion' # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. -[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh +[[ ! -f ${ZDOTDIR:-~}/.p10k.zsh ]] || source ${ZDOTDIR:-~}/.p10k.zsh . /opt/asdf-vm/asdf.sh diff --git a/private_dot_config/zsh/readonly_dot_zcompdump-archlinux-5.9.zwc b/private_dot_config/zsh/readonly_dot_zcompdump-archlinux-5.9.zwc index cde10f476a4a62875effed7d64f30ff079c8cd9c..b0ad3a86446b7b23be2b8673c68b6b0d70335ec7 100644 GIT binary patch delta 25699 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 WKT3%z;o|S}N|2}Q{r}|;P5uw|%NbAr delta 25397 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