Repository: AmitGolden/dotfiles Branch: main Commit: 559d0fd26a22 Files: 159 Total size: 333.4 KB Directory structure: gitextract__k_sodj9/ ├── .config/ │ ├── Thunar/ │ │ ├── accels.scm │ │ └── uca.xml │ ├── btop/ │ │ ├── btop.conf │ │ └── themes/ │ │ └── catppuccin.theme │ ├── discocss/ │ │ ├── custom.css │ │ └── preload.js │ ├── dunst/ │ │ └── dunstrc │ ├── fontconfig/ │ │ └── fonts.conf │ ├── hypr/ │ │ ├── hyprland.conf │ │ └── scripts/ │ │ ├── brightness_ctl.sh │ │ ├── caffeine.sh │ │ ├── lock.sh │ │ ├── lock_on_sleep.sh │ │ ├── logout.sh │ │ ├── sleep.sh │ │ ├── switch_kb_layout.sh │ │ ├── toggle_bluetooth.sh │ │ └── volume_ctl.sh │ ├── kitty/ │ │ └── kitty.conf │ ├── lf/ │ │ ├── colors │ │ ├── icons │ │ └── lfrc │ ├── nvim/ │ │ ├── init.lua │ │ ├── lua/ │ │ │ └── user/ │ │ │ ├── alpha.lua │ │ │ ├── autocommands.lua │ │ │ ├── autopairs.lua │ │ │ ├── autotag.lua │ │ │ ├── bufferline.lua │ │ │ ├── cmp.lua │ │ │ ├── colorizer.lua │ │ │ ├── colorscheme.lua │ │ │ ├── comment.lua │ │ │ ├── cutlass.lua │ │ │ ├── dap.lua │ │ │ ├── diffview.lua │ │ │ ├── gitsigns.lua │ │ │ ├── illuminate.lua │ │ │ ├── impatient.lua │ │ │ ├── indentline.lua │ │ │ ├── keymaps.lua │ │ │ ├── live-command.lua │ │ │ ├── lsp/ │ │ │ │ ├── handlers.lua │ │ │ │ ├── init.lua │ │ │ │ ├── mason.lua │ │ │ │ ├── null-ls.lua │ │ │ │ └── settings/ │ │ │ │ ├── hls.lua │ │ │ │ ├── jsonls.lua │ │ │ │ ├── prettier.json │ │ │ │ ├── pyright.lua │ │ │ │ └── sumneko_lua.lua │ │ │ ├── lualine.lua │ │ │ ├── nvim-tree.lua │ │ │ ├── options.lua │ │ │ ├── plugins.lua │ │ │ ├── project.lua │ │ │ ├── smart-splits.lua │ │ │ ├── substitute.lua │ │ │ ├── surround.lua │ │ │ ├── telescope.lua │ │ │ ├── testing.lua │ │ │ ├── toggleterm.lua │ │ │ ├── treesitter.lua │ │ │ ├── trouble.lua │ │ │ └── whichkey.lua │ │ └── plugin/ │ │ └── packer_compiled.lua │ ├── sddm-sugar-candy/ │ │ └── theme.conf │ ├── spicetify/ │ │ ├── Extensions/ │ │ │ └── catppuccin-mocha.js │ │ └── Themes/ │ │ └── catppuccin-mocha/ │ │ ├── assets/ │ │ │ └── .gitkeep │ │ ├── color.ini │ │ └── user.css │ ├── waybar/ │ │ ├── config.jsonc │ │ ├── scripts/ │ │ │ └── caffeine.sh │ │ └── style.css │ ├── wlogout/ │ │ ├── layout │ │ └── style.css │ ├── wofi/ │ │ ├── config │ │ ├── style.css │ │ └── wifi │ ├── xfce4/ │ │ ├── helpers.rc │ │ └── xfconf/ │ │ └── xfce-perchannel-xml/ │ │ └── thunar.xml │ └── zsh/ │ └── catppuccin-tty.sh ├── .gitconfig ├── .gtkrc-2.0 ├── .icons/ │ ├── Catppuccin-Cursor/ │ │ ├── cursors/ │ │ │ ├── all-scroll │ │ │ ├── bd_double_arrow │ │ │ ├── bottom_left_corner │ │ │ ├── bottom_right_corner │ │ │ ├── bottom_side │ │ │ ├── bottom_tee │ │ │ ├── cell │ │ │ ├── center_ptr │ │ │ ├── circle │ │ │ ├── closedhand │ │ │ ├── col-resize │ │ │ ├── color-picker │ │ │ ├── context-menu │ │ │ ├── copy │ │ │ ├── cross │ │ │ ├── crosshair │ │ │ ├── dnd-ask │ │ │ ├── dnd-copy │ │ │ ├── dnd-link │ │ │ ├── dnd-move │ │ │ ├── dnd-no-drop │ │ │ ├── dot │ │ │ ├── dotbox │ │ │ ├── draft │ │ │ ├── fd_double_arrow │ │ │ ├── hand │ │ │ ├── help │ │ │ ├── left_ptr │ │ │ ├── left_ptr_watch │ │ │ ├── left_side │ │ │ ├── left_tee │ │ │ ├── link │ │ │ ├── ll_angle │ │ │ ├── lr_angle │ │ │ ├── not-allowed │ │ │ ├── openhand │ │ │ ├── pencil │ │ │ ├── pirate │ │ │ ├── pointer-move │ │ │ ├── right_ptr │ │ │ ├── right_side │ │ │ ├── right_tee │ │ │ ├── row-resize │ │ │ ├── sb_down_arrow │ │ │ ├── sb_h_double_arrow │ │ │ ├── sb_left_arrow │ │ │ ├── sb_right_arrow │ │ │ ├── sb_up_arrow │ │ │ ├── sb_v_double_arrow │ │ │ ├── size_all │ │ │ ├── text │ │ │ ├── top_left_corner │ │ │ ├── top_right_corner │ │ │ ├── top_side │ │ │ ├── top_tee │ │ │ ├── ul_angle │ │ │ ├── ur_angle │ │ │ ├── vertical-text │ │ │ ├── watch │ │ │ ├── x-cursor │ │ │ ├── zoom-in │ │ │ └── zoom-out │ │ └── index.theme │ └── default/ │ └── index.theme ├── .lessfilter ├── .local/ │ ├── bin/ │ │ ├── nvim_kitty │ │ ├── spotify-adblock │ │ └── wrappedhl │ └── share/ │ └── applications/ │ ├── discord.desktop │ ├── nvim.desktop │ └── spotify.desktop ├── .p10k-tty.zsh ├── .p10k.zsh ├── .profile ├── .zshrc └── README.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: .config/Thunar/accels.scm ================================================ ; thunar GtkAccelMap rc-file -*- scheme -*- ; this file is an automated accelerator map dump ; ; (gtk_accel_path "/ThunarLauncher/delete-3" "KP_Delete") ; (gtk_accel_path "/ThunarBookmarks/f3d2655a47ed2d96a4d42982b2dc9e6a" "") ; (gtk_accel_path "/ThunarLauncher/delete" "") ; (gtk_accel_path "/ThunarStandardView/invert-selection" "") ; (gtk_accel_path "/ThunarLauncher/open-in-new-tab" "p") ; (gtk_accel_path "/ThunarLauncher/delete-2" "Delete") ; (gtk_accel_path "/ThunarWindow/zoom-in" "KP_Add") ; (gtk_accel_path "/ThunarWindow/empty-trash" "") ; (gtk_accel_path "/ThunarLauncher/open" "o") ; (gtk_accel_path "/ThunarWindow/reload" "r") ; (gtk_accel_path "/ThunarWindow/view-side-pane-menu" "") ; (gtk_accel_path "/ThunarWindow/open-network" "") ; (gtk_accel_path "/ThunarWindow/contents/help-menu" "") ; (gtk_accel_path "/ThunarLauncher/move-to-trash" "") ; (gtk_accel_path "/ThunarStandardView/back-alt" "BackSpace") ; (gtk_accel_path "/ThunarLauncher/paste" "v") ; (gtk_accel_path "/ThunarWindow/switch-next-tab" "Page_Down") ; (gtk_accel_path "/ThunarWindow/open-file-menu" "F10") ; (gtk_accel_path "/ThunarWindow/view-as-compact-list" "3") ; (gtk_accel_path "/ThunarWindow/about" "") ; (gtk_accel_path "/ThunarWindow/open-computer" "") ; (gtk_accel_path "/ThunarWindow/clear-directory-specific-settings" "") ; (gtk_accel_path "/ThunarWindow/open-file-system" "") ; (gtk_accel_path "/ThunarWindow/open-parent" "Up") ; (gtk_accel_path "/ThunarWindow/view-menu" "") ; (gtk_accel_path "/ThunarStandardView/properties" "Return") ; (gtk_accel_path "/ThunarLauncher/open-in-new-window" "o") ; (gtk_accel_path "/ThunarStandardView/back" "Left") ; (gtk_accel_path "/ThunarLauncher/trash-delete" "Delete") ; (gtk_accel_path "/ThunarWindow/sendto-menu" "") ; (gtk_accel_path "/ThunarBookmarks/032e8787b6807c1d9537dac4e85f5015" "") ; (gtk_accel_path "/ThunarWindow/reload-alt" "F5") ; (gtk_accel_path "/ThunarWindow/zoom-out-alt" "minus") ; (gtk_accel_path "/ThunarStandardView/select-by-pattern" "s") ; (gtk_accel_path "/ThunarStandardView/configure-columns" "") ; (gtk_accel_path "/ThunarStandardView/create-document" "") ; (gtk_accel_path "/ThunarWindow/close-tab" "w") ; (gtk_accel_path "/ThunarWindow/view-side-pane-tree" "e") ; (gtk_accel_path "/ThunarShortcutsPane/sendto-shortcuts" "") ; (gtk_accel_path "/ThunarStandardView/rename" "F2") ; (gtk_accel_path "/ThunarWindow/toggle-side-pane" "F9") ; (gtk_accel_path "/ThunarWindow/open-home" "Home") ; (gtk_accel_path "/ThunarWindow/open-location-alt" "d") ; (gtk_accel_path "/ThunarWindow/open-templates" "") ; (gtk_accel_path "/ThunarLauncher/execute" "") ; (gtk_accel_path "/ThunarWindow/close-window" "q") ; (gtk_accel_path "/ThunarLauncher/cut" "x") ; (gtk_accel_path "/ThunarLauncher/sendto-desktop" "") ; (gtk_accel_path "/ThunarWindow/zoom-in-alt2" "equal") ; (gtk_accel_path "/ThunarWindow/view-location-selector-toolbar" "") ; (gtk_accel_path "/ThunarStandardView/select-all-files" "a") ; (gtk_accel_path "/ThunarLauncher/open-with-other" "") ; (gtk_accel_path "/ThunarWindow/zoom-out" "KP_Subtract") ; (gtk_accel_path "/ThunarStandardView/duplicate" "") ; (gtk_accel_path "/ThunarWindow/view-side-pane-shortcuts" "b") ; (gtk_accel_path "/ThunarWindow/edit-menu" "") ; (gtk_accel_path "/ThunarWindow/contents" "F1") ; (gtk_accel_path "/ThunarWindow/preferences" "") ; (gtk_accel_path "/ThunarWindow/zoom-in-alt1" "plus") ; (gtk_accel_path "/ThunarWindow/switch-previous-tab" "Page_Up") ; (gtk_accel_path "/ThunarWindow/view-location-selector-menu" "") ; (gtk_accel_path "/ThunarWindow/view-statusbar" "") ; (gtk_accel_path "/ThunarWindow/close-all-windows" "w") ; (gtk_accel_path "/ThunarWindow/open-trash" "") ; (gtk_accel_path "/ThunarLauncher/restore" "") ; (gtk_accel_path "/ThunarWindow/open-desktop" "") ; (gtk_accel_path "/ThunarStandardView/create-folder" "n") ; (gtk_accel_path "/ThunarWindow/open-location" "l") ; (gtk_accel_path "/ThunarWindow/view-menubar" "m") ; (gtk_accel_path "/ThunarWindow/zoom-reset-alt" "0") ; (gtk_accel_path "/ThunarWindow/view-as-detailed-list" "2") ; (gtk_accel_path "/ThunarWindow/view-as-icons" "1") ; (gtk_accel_path "/ThunarWindow/new-window" "n") ; (gtk_accel_path "/ThunarStandardView/forward" "Right") ; (gtk_accel_path "/ThunarLauncher/copy" "c") ; (gtk_accel_path "/ThunarWindow/file-menu" "") ; (gtk_accel_path "/ThunarStandardView/make-link" "") ; (gtk_accel_path "/ThunarWindow/new-tab" "t") ; (gtk_accel_path "/ThunarWindow/go-menu" "") ; (gtk_accel_path "/ThunarWindow/view-location-selector-pathbar" "") ; (gtk_accel_path "/ThunarWindow/show-hidden" "h") ; (gtk_accel_path "/ThunarWindow/zoom-reset" "KP_0") ; (gtk_accel_path "/ThunarLauncher/trash-delete-2" "KP_Delete") ; (gtk_accel_path "/ThunarWindow/detach-tab" "") ================================================ FILE: .config/Thunar/uca.xml ================================================ utilities-terminal Open Terminal Here 1660516775939738-1 exo-open --working-directory %f --launch TerminalEmulator Example for a custom action * ================================================ FILE: .config/btop/btop.conf ================================================ #? Config file for btop v. 1.2.12 #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" color_theme = "/home/amitgold/.config/btop/themes/catppuccin.theme" #* If the theme set background should be shown, set to False if you want terminal background transparency. theme_background = True #* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. truecolor = True #* Set to true to force tty mode regardless if a real tty has been detected or not. #* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. force_tty = False #* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. #* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. #* Use withespace " " as separator between different presets. #* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" #* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. #* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. vim_keys = True #* Rounded corners on boxes, is ignored if TTY mode is ON. rounded_corners = True #* Default symbols to use for graph creation, "braille", "block" or "tty". #* "braille" offers the highest resolution but might not be included in all fonts. #* "block" has half the resolution of braille but uses more common characters. #* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. #* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. graph_symbol = "braille" # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". graph_symbol_cpu = "default" # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". graph_symbol_mem = "default" # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". graph_symbol_net = "default" # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". graph_symbol_proc = "default" #* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace. shown_boxes = "cpu mem net proc" #* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. update_ms = 2000 #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. proc_sorting = "pid" #* Reverse sorting order, True or False. proc_reversed = False #* Show processes as a tree. proc_tree = False #* Use the cpu graph colors in the process list. proc_colors = True #* Use a darkening gradient in the process list. proc_gradient = True #* If process cpu usage should be of the core it's running on or usage of the total available cpu power. proc_per_core = False #* Show process memory as bytes instead of percent. proc_mem_bytes = True #* Show cpu graph for each process. proc_cpu_graphs = True #* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) proc_info_smaps = False #* Show proc box on left side of screen instead of right. proc_left = False #* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). proc_filter_kernel = False #* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. #* Select from a list of detected attributes from the options menu. cpu_graph_upper = "total" #* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. #* Select from a list of detected attributes from the options menu. cpu_graph_lower = "total" #* Toggles if the lower CPU graph should be inverted. cpu_invert_lower = True #* Set to True to completely disable the lower CPU graph. cpu_single_graph = False #* Show cpu box at bottom of screen instead of top. cpu_bottom = False #* Shows the system uptime in the CPU box. show_uptime = True #* Show cpu temperature. check_temp = True #* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. cpu_sensor = "Auto" #* Show temperatures for cpu cores also if check_temp is True and sensors has been found. show_coretemp = True #* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. #* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. #* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. #* Example: "4:0 5:1 6:3" cpu_core_map = "" #* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". temp_scale = "celsius" #* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. base_10_sizes = False #* Show CPU frequency. show_cpu_freq = True #* Draw a clock at top of screen, formatting according to strftime, empty string to disable. #* Special formatting: /host = hostname | /user = username | /uptime = system uptime clock_format = "%X" #* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. background_update = True #* Custom cpu model name, empty string to disable. custom_cpu_name = "" #* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". #* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". disks_filter = "" #* Show graphs instead of meters for memory values. mem_graphs = True #* Show mem box below net box instead of above. mem_below_net = False #* Count ZFS ARC in cached and available memory. zfs_arc_cached = True #* If swap memory should be shown in memory box. show_swap = True #* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. swap_disk = True #* If mem box should be split to also show disks info. show_disks = True #* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. only_physical = True #* Read disks list from /etc/fstab. This also disables only_physical. use_fstab = True #* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) zfs_hide_datasets = False #* Set to true to show available disk space for privileged users. disk_free_priv = False #* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. show_io_stat = True #* Toggles io mode for disks, showing big graphs for disk read/write speeds. io_mode = False #* Set to True to show combined read/write io graphs in io mode. io_graph_combined = False #* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". #* Example: "/mnt/media:100 /:20 /boot:1". io_graph_speeds = "" #* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. net_download = 100 net_upload = 100 #* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. net_auto = True #* Sync the auto scaling for download and upload to whichever currently has the highest scale. net_sync = True #* Starts with the Network Interface specified here. net_iface = "" #* Show battery stats in top right if battery is present. show_battery = True #* Which battery to use if multiple are present. "Auto" for auto detection. selected_battery = "Auto" #* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". #* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. log_level = "WARNING" ================================================ FILE: .config/btop/themes/catppuccin.theme ================================================ theme[main_bg]="#1E1E2E" theme[main_fg]="#CDD6F4" theme[title]="#CDD6F4" theme[hi_fg]="#89B4FA" theme[selected_bg]="#45475A" theme[selected_fg]="#89B4FA" theme[inactive_fg]="#7F849C" theme[graph_text]="#F5E0DC" theme[meter_bg]="#45475A" theme[proc_misc]="#F5E0DC" theme[cpu_box]="#74C7EC" theme[mem_box]="#A6E3A1" theme[net_box]="#CBA6F7" theme[proc_box]="#F2CDCD" theme[div_line]="#6C7086" theme[temp_start]="#F9E2AF" theme[temp_mid]="#FAB387" theme[temp_end]="#F38BA8" theme[cpu_start]="#74C7EC" theme[cpu_mid]="#89DCEB" theme[cpu_end]="#94E2D5" theme[free_start]="#94E2D5" theme[free_mid]="#94E2D5" theme[free_end]="#A6E3A1" theme[cached_start]="#F5C2E7" theme[cached_mid]="#F5C2E7" theme[cached_end]="#CBA6F7" theme[available_start]="#F5E0DC" theme[available_mid]="#F2CDCD" theme[available_end]="#F2CDCD" theme[used_start]="#FAB387" theme[used_mid]="#FAB387" theme[used_end]="#F38BA8" theme[download_start]="#B4BEFE" theme[download_mid]="#B4BEFE" theme[download_end]="#CBA6F7" theme[upload_start]="#B4BEFE" theme[upload_mid]="#B4BEFE" theme[upload_end]="#CBA6F7" theme[process_start]="#74C7EC" theme[process_mid]="#89DCEB" theme[process_end]="#94E2D5" ================================================ FILE: .config/discocss/custom.css ================================================ /** * @name Catppuccin * @author Catppuccin * @version 0.0.8 * @description 🎮 Soothing pastel theme for Discord * @website https://github.com/catppuccin * @source https://github.com/catppuccin/discord **/ :root { /* H S L */ --rosewater_hsl: 10, 56%, 91%; --flamingo_hsl: 0, 59%, 88%; --mauve_hsl: 279, 70%, 83%; --pink_hsl: 316, 72%, 86%; --maroon_hsl: 349, 60%, 77%; --red_hsl: 342, 79%, 75%; --peach_hsl: 24, 88%, 78%; --yellow_hsl: 41, 88%, 84%; --green_hsl: 128, 58%, 79%; --teal_hsl: 171, 53%, 81%; --blue_hsl: 207, 93%, 79%; --sky_hsl: 189, 71%, 73%; --lavender_hsl: 238, 100%, 89%; --black0_hsl: 254, 25%, 10%; --black1_hsl: 249, 23%, 12%; --black2_hsl: 240, 21%, 15%; --black3_hsl: 249, 18%, 22%; --black4_hsl: 254, 12%, 36%; --gray0_hsl: 247, 8%, 46%; --gray1_hsl: 274, 11%, 59%; --gray2_hsl: 285, 10%, 75%; --white_hsl: 220, 38%, 89%; } :root { --rosewater: hsl(var(--rosewater_hsl)); --flamingo: hsl(var(--flamingo_hsl)); --mauve: hsl(var(--mauve_hsl)); --pink: hsl(var(--pink_hsl)); --maroon: hsl(var(--maroon_hsl)); --red: hsl(var(--red_hsl)); --peach: hsl(var(--peach_hsl)); --yellow: hsl(var(--yellow_hsl)); --green: hsl(var(--green_hsl)); --teal: hsl(var(--teal_hsl)); --blue: hsl(var(--blue_hsl)); --sky: hsl(var(--sky_hsl)); --lavender: hsl(var(--lavender_hsl)); --black0: hsl(var(--black0_hsl)); --black1: hsl(var(--black1_hsl)); --black2: hsl(var(--black2_hsl)); --black3: hsl(var(--black3_hsl)); --black4: hsl(var(--black4_hsl)); --gray0: hsl(var(--gray0_hsl)); --gray1: hsl(var(--gray1_hsl)); --gray2: hsl(var(--gray2_hsl)); --white: hsl(var(--white_hsl)); --mauve-o10: hsl(var(--mauve_hsl), .1); --pink-o20: hsl(var(--pink_hsl), .2); } .theme-dark { --header-primary: var(--white) !important; --header-secondary: var(--rosewater) !important; --background-primary: var(--black2) !important; --background-primary-alt: var(--black2) !important; --background-mobile-primary: var(--black2) !important; --background-secondary: var(--black1) !important; --background-secondary-alt: var(--black1) !important; --background-mobile-secondary: var(--black1) !important; --background-tertiary: var(--black0) !important; --background-floating: var(--black2) !important; --background-mentioned: var(--mauve-o10) !important; --background-mentioned-hover: var(--pink-o20) !important; --background-accent: var(--gray0) !important; --background-modifier-selected: var(--black2) !important; --background-modifier-accent: var(--black2) !important; --background-modifier-hover: var(--black3) !important; --text-normal: var(--white) !important; --text-muted: var(--gray0) !important; --text-link: var(--sky) !important; --channels-default: var(--gray0) !important; --channeltextarea-background: var(--black3) !important; --activity-card-background: var(--black2) !important; --interactive-normal: var(--white) !important; --interactive-muted: var(--black3) !important; --interactive-hover: var(--gray2) !important; --interactive-active: var(--rosewater) !important; --scrollbar-thin-thumb: var(--black0) !important; --scrollbar-thin-track: transparent !important; --scrollbar-auto-thumb: var(--black0) !important; --scrollbar-auto-track: var(--black3) !important; --scrollbar-auto-scrollbar-color-thumb: var(--black1) !important; --scrollbar-auto-scrollbar-color-track: var(--black3) !important; --deprecated-store-bg: var(--black0) !important; --input-background: var(--black3) !important; } /* Mentions */ .mentioned-Tre-dv .mention.interactive { color: var(--white) !important; } .mentioned-Tre-dv::before { background-color: var(--white) !important; } /* Home */ .container-2cd8Mz { background-color: var(--black2) !important; } /* Autocomplete popup */ .autocomplete-3NRXG8 { background-color: var(--black2) !important; } .wrapper-1NNaWG.categoryHeader-OpJ1Ly { background-color: var(--black2) !important; } .autocomplete-3NRXG8 { background-color: var(--black2) !important; } /* Autocomplete popup selection */ .selected-3H3-RC { background-color: var(--black3) !important; } /* Search: Items */ .container-2McqkF { background-color: var(--black0) !important; } .searchOption-351dTI:hover { background-color: var(--black3) !important; } /* Search: No shadows */ .option-ayUoaq:after { background: none !important; } /* Search: in-section */ .queryContainer-ZunrLZ { background-color: var(--black0) !important; } /* Search: History */ .option-ayUoaq:hover { background-color: var(--black3) !important; } /* Search: Little Icon Thingy */ .searchFilter-2UfsDk, .searchAnswer-23w-CH { background-color: var(--black3) !important; } /* IN ORDER: New-Unreads-Btn,jumpToPresentBar,CTRL+K */ .bar-2eAyLE,.jumpToPresentBar-1cEnH0,.input-3r5zZY { background-color: var(--gray0) !important; } /* New Message Bar */ .newMessagesBar-1hF-9G:before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: var(--gray0) !important; border-radius:0 0 3px 3px; } /* New Messages Flag */ .isUnread-3Lojb- { border-color: var(--gray0) !important; } .unreadPill-3nEWYM { background-color: var(--gray0) !important; } .unreadPillCapStroke-1nE1Q8 { fill: var(--gray0) !important; color: var(--gray0) !important; } .isUnread-3Lojb- .content-3spvdd { color: var(--gray0) !important; } /* Server Modals */ .root-g14mjS, .separator-2lLxgC { background-color: var(--black2) !important; } .footer-31IekZ { background-color: var(--black1) !important; } /* Boost Page */ .perksModal-CLcR1c { background-color: var(--black1) !important; } .tierMarkerBackground-G8FoN4 { background-color: var(--black2) !important; } /* Emoji Popout */ .popoutContainer-2wbmiM { background-color: var(--black1) !important; } /* Presence Buttons */ .lookFilled-yCfaCM.colorGrey-2iAG-B, .lookFilled-yCfaCM.colorPrimary-2AuQVo { background-color: var(--black3) !important; } /* Primary Card */ .cardPrimary-3qRT__ { background-color: var(--black1) !important; } /* Payment Page Boxes */ .paymentPane-ut5qKZ, .paginator-1eqD2g, .payment-2bOh4k, .codeRedemptionRedirect-3SBiCp { background-color: var(--black1) !important; } .bottomDivider-ZmTm-j { border-bottom-color: var(--black2) !important; } /* Spotify Invite */ .invite-3uuHYQ { background-color: var(--black1) !important; } /* Edit Attachment */ .footer-VCsJQY { background-color: var(--black1) !important; } /* Spoilers */ .spoilerText-27bIiA.hidden-3B-Rum, .inlineContent-2YnoDy { background-color: var(--black3) !important; } /* Stream Preview */ .streamPreview-I7itZ6 { background-color: var(--black2) !important; } /* Selection */ ::-moz-selection { color: var(--white) !important; background: var(--black4) !important; } ::selection { color: var(--white) !important; background: var(--black4) !important; } /* Delete Message Confirmation */ .message-G6O-Wv { background-color: var(--black2) !important; box-shadow: 0 0 0 1px hsla(var(--black3_hsl), 0.6), 0 2px 10px 0 hsla(var(--black3_hsl), 0.1) !important; } /* Command Option */ .pill-1HLSrc, .optionKey-1tfFt_ { background-color: var(--black2) !important; } /* Volume Slider */ .tooltipContent-Nejnvh { background-color: var(--black2) !important; } .grabber-2GQyvM { background-color: var(--white) !important; } .bar-1Bhnl9 { background-color: var(--gray0) !important; } .tooltipPointer-3L49xb { border-top-color: var(--black2) !important; } /* Call Page */ .tile-2TcwiO { background-color: var(--black0) !important; } .button-3Vyz67 { background-color: var(--black2) !important; } .buttonColor-28DXIe, .colorable-3rVGna.primaryDark-2UJt1G { background-color: var(--black2) !important; } .emptyPreview-1SMLD4 { background: var(--black0) !important; } /* Reactors List */ .scroller-2GkvCq { background: var(--black1) !important; } .reactionDefault-1Sjj1f:hover, .reactionSelected-1aMb2K { background-color: var(--black2) !important; } .reactors-1VXca7 { background-color: var(--black2) !important; } ================================================ FILE: .config/discocss/preload.js ================================================ module.exports = () => { const fs = require("fs"); const confDir = "/home/amitgold/.config/discocss"; const cssFile = "/home/amitgold/.config/discocss/custom.css"; function reload(style) { style.innerHTML = fs.readFileSync(cssFile); } function inject({ document, window }) { window.addEventListener("load", () => { const style = document.createElement("style"); reload(style); document.head.appendChild(style); fs.watch(confDir, {}, () => reload(style)); }); } inject(require("electron").webFrame.context); }; module.exports.mw = (mainWindow) => { mainWindow.setBackgroundColor("#00000000"); }; module.exports.mo = (options) => { options.transparent = true; if (process.platform === "linux") { options.frame = true; } }; ================================================ FILE: .config/dunst/dunstrc ================================================ [global] follow = mouse indicate_hidden = yes offset = 10x10 notification_height = 0 separator_height = 2 padding = 8 horizontal_padding = 8 text_icon_padding = 0 frame_width = 2 frame_color = "#89B4FA" separator_color = frame sort = yes idle_threshold = 120 font = monospace 10 line_height = 0 markup = full alignment = left vertical_alignment = center show_age_threshold = 60 word_wrap = yes stack_duplicates = true hide_duplicate_count = false show_indicators = yes min_icon_size = 0 max_icon_size = 64 icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/:/usr/share/icons/Papirus-Dark/16x16/actions/:/usr/share/icons/Papirus-Dark/16x16/animations/:/usr/share/icons/Papirus-Dark/16x16/apps/:/usr/share/icons/Papirus-Dark/16x16/categories/:/usr/share/icons/Papirus-Dark/16x16/emblems/:/usr/share/icons/Papirus-Dark/16x16/emotes/:/usr/share/icons/Papirus-Dark/16x16/devices/mimetypes:/usr/share/icons/Papirus-Dark/16x16/panel/:/usr/share/icons/Papirus-Dark/16x16/places/ dmenu = /usr/bin/wofi -p dunst: browser = /usr/bin/firefox --new-tab title = Dunst class = Dunst corner_radius = 10 timeout = 5 [urgency_low] background = "#1E1E2E" foreground = "#CDD6F4" [urgency_normal] background = "#1E1E2E" foreground = "#CDD6F4" [urgency_critical] background = "#1E1E2E" foreground = "#CDD6F4" frame_color = "#FAB387" ================================================ FILE: .config/fontconfig/fonts.conf ================================================ monospace LigaIosevka Nerd Font sans-serif Fira Sans ================================================ FILE: .config/hypr/hyprland.conf ================================================ #### Hyprland Config #### exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once=wlsunset -S 6:00 -s 18:30 exec-once=swaybg -m fill -i ~/.config/hypr/wallpapers/kurz.png exec-once=waybar exec-once=blueman-applet exec-once=dunst exec-once=udev-block-notify exec-once=~/.config/hypr/scripts/sleep.sh exec-once=echo us > /tmp/kb_layout exec-once=hyprctl setcursor Catppuccin-Cursor 10 monitor=,preferred,auto,1 monitor=HDMI-A-2,preferred,auto,1,mirror,eDP-1 input { kb_layout=us kb_variant= kb_model= kb_options= kb_rules= follow_mouse=1 float_switch_override_focus=true touchpad { natural_scroll=yes } } general { sensitivity=1.0 # for mouse cursor main_mod=SUPER layout=dwindle gaps_in=5 gaps_out=10 border_size=2 col.active_border=0xb3cba6f7 col.inactive_border=0xb3313244 apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse) } decoration { rounding=5 blur=true blur_size=10 # minimum 1 blur_passes=4 # minimum 1, more passes = more resource intensive. blur_new_optimizations=true # Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts. # if you want heavy blur, you need to up the blur_passes. # the more passes, the more you can up the blur_size without noticing artifacts. } animations { enabled=1 animation=windows,1,4,default animation=border,1,10,default animation=fade,1,10,default animation=workspaces,1,4,default } dwindle { pseudotile=0 # enable pseudotiling on dwindle force_split=2 } master { new_is_master=false } gestures { workspace_swipe=yes } misc { disable_hyprland_logo=true disable_splash_rendering=true mouse_move_enables_dpms=true no_vfr=false } windowrule=float,blueman windowrule=float,Anydesk windowrule=float,file_progress windowrule=float,confirm windowrule=float,dialog windowrule=float,download windowrule=float,notification windowrule=float,error windowrule=float,splash windowrule=float,confirmreset windowrule=float,title:Open File windowrule=float,title:branchdialog windowrule=float,minecraft-launcher blurls=gtk-layer-shell blurls=lockscreen bind=SUPER,T,exec,kitty bind=SUPER,B,exec,firefox bind=SUPER,E,exec,thunar bind=SUPER,Q,killactive, bind=SUPERSHIFT,Q,exec,hyprctl kill bind=SUPERCTRL,Q,exit, bind=SUPER,V,togglefloating, bind=SUPER,F,fullscreen, bind=SUPER,A,exec,wofi --show drun -I -m -i bind=SUPER,P,exec,~/.config/hypr/scripts/logout.sh bind=SUPERSHIFT,B,exec,~/.config/hypr/scripts/toggle_bluetooth.sh bind=SUPER,hebrew_aleph,exec,kitty bind=SUPER,hebrew_nun,exec,firefox bind=SUPER,hebrew_kuf,exec,thunar bind=SUPER,slash,killactive, bind=SUPERSHIFT,slash,exec,hyprctl kill bind=SUPERSHIFT,slash,exit, bind=SUPER,hebrew_he,togglefloating, bind=SUPER,hebrew_kaph,fullscreen, bind=SUPER,hebrew_shin,exec,wofi --show drun -I -m -i bind=SUPER,hebrew_pe,exec,~/.config/hypr/scripts/logout.sh bind=SUPERSHIFT,hebrew_nun,exec,~/.config/hypr/scripts/toggle_bluetooth.sh bind=ALT,Space,exec,wofi-emoji bind=ALT,C,exec,wofi-calc bind=ALT,hebrew_bet,exec,wofi-calc bind=,Print,exec,grim -g "$(slurp)" $HOME/Pictures/Screenshots/$(date +'%s.png') bind=SHIFT,Print,exec,grim $HOME/Pictures/Screenshots/$(date +'%s.png') bind=SUPER,C,exec,~/.config/hypr/scripts/caffeine.sh bind=SUPER,hebrew_bet,exec,~/.config/hypr/scripts/caffeine.sh bindr=ALTSHIFT,Shift_L,exec,~/.config/hypr/scripts/switch_kb_layout.sh bind=SUPER,H,movefocus,l bind=SUPER,J,movefocus,d bind=SUPER,K,movefocus,u bind=SUPER,L,movefocus,r bind=SUPERSHIFT,H,movewindow,l bind=SUPERSHIFT,J,movewindow,d bind=SUPERSHIFT,K,movewindow,u bind=SUPERSHIFT,L,movewindow,r bind=SUPERCTRL,L,resizeactive,70 0 bind=SUPERCTRL,H,resizeactive,-70 0 bind=SUPERCTRL,K,resizeactive,0 -70 bind=SUPERCTRL,J,resizeactive,0 70 bind=SUPER,hebrew_yod,movefocus,l bind=SUPER,hebrew_chet,movefocus,d bind=SUPER,hebrew_lamed,movefocus,u bind=SUPER,hebrew_finalkaf,movefocus,r bind=SUPERSHIFT,hebrew_yod,movewindow,l bind=SUPERSHIFT,hebrew_chet,movewindow,d bind=SUPERSHIFT,hebrew_lamed,movewindow,u bind=SUPERSHIFT,hebrew_finalkaf,movewindow,r bind=SUPERCTRL,hebrew_yod,resizeactive,70 0 bind=SUPERCTRL,hebrew_chet,resizeactive,-70 0 bind=SUPERCTRL,hebrew_lamed,resizeactive,0 -70 bind=SUPERCTRL,hebrew_finalkaf,resizeactive,0 70 bind=SUPERSHIFT,P,pseudo bind=SUPER,Space,layoutmsg,swapwithmaster bind=SUPER,comma,splitratio,-0.1 bind=SUPER,period,splitratio,+0.1 bind=SUPER,hebrew_taw,splitratio,-0.1 bind=SUPER,hebrew_finalzade,splitratio,+0.1 bind=SUPER,I,workspace,-1 bind=SUPER,O,workspace,+1 bind=SUPERSHIFT,I,movetoworkspace,-1 bind=SUPERSHIFT,O,movetoworkspace,+1 # bind=SUPER,backslash,swapactiveworkspaces,eDP1 bind=SUPER,hebrew_finalnun,workspace,-1 bind=SUPER,hebrew_finalmem,workspace,+1 bind=SUPERSHIFT,hebrew_finalnun,movetoworkspace,-1 bind=SUPERSHIFT,hebrew_finalmem,movetoworkspace,+1 bind=,XF86AudioRaiseVolume,exec,~/.config/hypr/scripts/volume_ctl.sh up bind=,XF86AudioLowerVolume,exec,~/.config/hypr/scripts/volume_ctl.sh down bind=,XF86AudioMute,exec,~/.config/hypr/scripts/volume_ctl.sh mute bind=,XF86MonBrightnessDown,exec,~/.config/hypr/scripts/brightness_ctl.sh down bind=,XF86MonBrightnessUp,exec,~/.config/hypr/scripts/brightness_ctl.sh up bind=SHIFT,XF86MonBrightnessUp,exec,~/.config/hypr/scripts/brightness_ctl.sh max bind=SUPER,semicolon,exec,playerctl play-pause bind=SUPER,hebrew_finalpe,exec,playerctl play-pause bind=SUPER,bracketleft,exec,playerctl next bind=SUPER,bracketright,exec,playerctl previous bind=SUPER,1,workspace,1 bind=SUPER,2,workspace,2 bind=SUPER,3,workspace,3 bind=SUPER,4,workspace,4 bind=SUPER,5,workspace,5 bind=SUPER,6,workspace,6 bind=SUPER,7,workspace,7 bind=SUPER,8,workspace,8 bind=SUPER,9,workspace,9 bind=SUPER,0,workspace,10 bind=SUPERSHIFT,1,movetoworkspace,1 bind=SUPERSHIFT,2,movetoworkspace,2 bind=SUPERSHIFT,3,movetoworkspace,3 bind=SUPERSHIFT,4,movetoworkspace,4 bind=SUPERSHIFT,5,movetoworkspace,5 bind=SUPERSHIFT,6,movetoworkspace,6 bind=SUPERSHIFT,7,movetoworkspace,7 bind=SUPERSHIFT,8,movetoworkspace,8 bind=SUPERSHIFT,9,movetoworkspace,9 bind=SUPERSHIFT,0,movetoworkspace,10 bind=SUPER,mouse_down,workspace,e-1 bind=SUPER,mouse_up,workspace,e+1 bindm=SUPER,mouse:272,movewindow bindm=SUPER,mouse:273,resizewindow ================================================ FILE: .config/hypr/scripts/brightness_ctl.sh ================================================ #!/usr/bin/env bash # You can call this script like this: # $ ./brightnessControl.sh up # $ ./brightnessControl.sh down # Script inspired by these wonderful people: # https://github.com/dastorm/volume-notification-dunst/blob/master/volume.sh # https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a function get_brightness { brightnessctl -m | awk -F, '{print substr($4, 0, length($4)-1)}' } function send_notification { icon="preferences-system-brightness-lock" brightness=$(get_brightness) # Make the bar with the special character ─ (it's not dash -) # https://en.wikipedia.org/wiki/Box-drawing_character bar=$(seq -s "─" 0 $(((brightness - 1) / 4)) | sed 's/[0-9]//g') space=$(seq --separator=" " 0 "$(((100 - brightness) / 4))" | sed 's/[0-9]//g') # Send the notification dunstify -i "$icon" -r 5555 -u normal "|$bar$space| $brightness%" } case $1 in up) # increase the backlight by 5% brightnessctl set 5%+ send_notification ;; down) # decrease the backlight by 5% brightnessctl set 5%- send_notification ;; max) brightnessctl set 100% send_notification ;; blank) brightnessctl set 0% send_notification ;; esac ================================================ FILE: .config/hypr/scripts/caffeine.sh ================================================ #!/bin/sh if pgrep -x sleep.sh > /dev/null; then dunstify -r 4444 -i /usr/share/icons/Papirus-Dark/symbolic/status/my-caffeine-on-symbolic.svg "Caffeine Enabled" killall swayidle ~/.config/hypr/scripts/lock_on_sleep.sh & else dunstify -r 4444 -i /usr/share/icons/Papirus-Dark/symbolic/status/my-caffeine-off-symbolic.svg "Caffeine Disabled" killall swayidle ~/.config/hypr/scripts/sleep.sh & fi ================================================ FILE: .config/hypr/scripts/lock.sh ================================================ #!/bin/sh swaylock \ --hide-keyboard-layout \ --indicator-radius 100 \ --indicator-thickness 7 \ --ring-color cba6f7 \ --ring-ver-color 89b4fa \ --ring-wrong-color f38ba8 \ --ring-clear-color a6e3a1 \ --key-hl-color 1e1e2e \ --bs-hl-color eba0ac \ --text-color 11111b \ --text-caps-lock-color 11111b \ --line-color 00000000 \ --line-ver-color 00000000 \ --line-wrong-color 00000000 \ --line-clear-color 00000000 \ --separator-color 00000000 \ --inside-color cba6f7 \ --inside-ver-color 89b4fa\ --inside-wrong-color f38ba8 \ --inside-clear-color a6e3a1 \ --color 1e1e2e80 \ --clock \ --indicator ================================================ FILE: .config/hypr/scripts/lock_on_sleep.sh ================================================ #!/bin/sh swayidle -w before-sleep "$HOME/.config/hypr/scripts/lock.sh" ================================================ FILE: .config/hypr/scripts/logout.sh ================================================ #!/bin/sh wlogout --protocol layer-shell -b 5 -T 400 -B 400 ================================================ FILE: .config/hypr/scripts/sleep.sh ================================================ #!/bin/sh swayidle -w \ before-sleep "$HOME/.config/hypr/scripts/lock.sh" \ timeout 160 'temp=$(brightnessctl g); brightnessctl set $((temp / 2))' \ resume 'temp=$(brightnessctl g); brightnessctl set $((temp * 2))' \ timeout 300 "$HOME/.config/hypr/scripts/lock.sh & sleep 0.1 && hyprctl dispatch dpms off" \ resume 'hyprctl dispatch dpms on' \ timeout 600 'systemctl suspend' \ resume 'hyprctl dispatch dpms on' ================================================ FILE: .config/hypr/scripts/switch_kb_layout.sh ================================================ #!/bin/sh layout_f=/tmp/kb_layout case $(cat "$layout_f") in us) hyprctl keyword input:kb_layout il echo il > $layout_f ;; il) hyprctl keyword input:kb_layout us echo us > $layout_f ;; esac ================================================ FILE: .config/hypr/scripts/toggle_bluetooth.sh ================================================ #!/bin/sh state=$(bluetoothctl -- show | grep Powered | awk '{ print $2 }') if [[ $state == 'yes' ]]; then bluetoothctl -- power off else bluetoothctl -- power on fi ================================================ FILE: .config/hypr/scripts/volume_ctl.sh ================================================ #!/usr/bin/env bash # You can call this script like this: # $ ./volumeControl.sh up # $ ./volumeControl.sh down # $ ./volumeControl.sh mute # Script modified from these wonderful people: # https://github.com/dastorm/volume-notification-dunst/blob/master/volume.sh # https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a function get_volume { pactl get-sink-volume @DEFAULT_SINK@ | head -n 1 | cut -f 2 -d '/' | cut -d '%' -f 1 | xargs } function is_mute { amixer get Master | grep '%' | grep -oE '[^ ]+$' | grep off > /dev/null } function send_notification { iconSound="audio-volume-high" iconMuted="audio-volume-muted" if is_mute ; then dunstify -i $iconMuted -r 2593 -u normal "Muted" else volume=$(get_volume) # Make the bar with the special character ─ (it's not dash -) # https://en.wikipedia.org/wiki/Box-drawing_character bar=$(seq --separator="─" 0 "$(((volume - 1) / 4))" | sed 's/[0-9]//g') space=$(seq --separator=" " 0 "$(((100 - volume) / 4))" | sed 's/[0-9]//g') # Send the notification dunstify -i $iconSound -r 2593 -u normal "|$bar$space| $volume%" fi } case $1 in up) # set the volume on (if it was muted) amixer -D pipewire set Master on > /dev/null # up the volume (+ 5%) pactl set-sink-volume @DEFAULT_SINK@ +5% > /dev/null send_notification canberra-gtk-play -i audio-volume-change -d "changeVolume" ;; down) amixer -D pipewire set Master on > /dev/null pactl set-sink-volume @DEFAULT_SINK@ -5% > /dev/null send_notification canberra-gtk-play -i audio-volume-change -d "changeVolume" ;; mute) # toggle mute amixer -D pipewire set Master 1+ toggle > /dev/null send_notification ;; esac ================================================ FILE: .config/kitty/kitty.conf ================================================ # vim:ft=kitty scrollback_pager bash -c "exec nvim 63<&0 0 q :qa!' -c 'set shell=bash scrollback=100000 termguicolors laststatus=0 clipboard+=unnamedplus' -c 'autocmd TermEnter * stopinsert' -c 'autocmd TermClose * call cursor(max([0,INPUT_LINE_NUMBER-1])+CURSOR_LINE, CURSOR_COLUMN)' -c 'terminal sed map C clear map c cut map d delete map D trash map o &mimeopen $f map O $mimeopen --ask $f map newfold map ` push :open-with cmd open-with %"$@" "$fx" cmd trash %trash-put $fx cmd mkdir %mkdir "$@" cmd newfold ${{ set -f read newd printf "Directory name: " mkdir -- "$newd" mv -- $fx "$newd" }} cmd j %{{ result="$(zoxide query --exclude "${PWD}" -- "$@")" lf -remote "send ${id} cd '${result}'" }} cmd ji ${{ result="$(zoxide query -i -- "$@")" lf -remote "send ${id} cd '${result}'" }} cmd fzf_jump ${{ res="$(find . -maxdepth 1 | fzf --reverse --header='Jump to location' | sed 's/\\/\\\\/g;s/"/\\"/g')" if [ -d "$res" ] ; then cmd="cd" elif [ -f "$res" ] ; then cmd="select" else exit 0 fi lf -remote "send $id $cmd \"$res\"" }} map :fzf_jump cmd fzf_search ${{ res="$( \ RG_PREFIX="rg --column --line-number --no-heading --color=always \ --smart-case " FZF_DEFAULT_COMMAND="$RG_PREFIX ''" \ fzf --bind "change:reload:$RG_PREFIX {q} || true" \ --ansi --layout=reverse --header 'Search in files' \ | cut -d':' -f1 )" [ ! -z "$res" ] && lf -remote "send $id select \"$res\"" }} map gs :fzf_search cmd extract ${{ set -f case $f in *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;; *.tar.gz|*.tgz) tar xzvf $f;; *.tar.xz|*.txz) tar xJvf $f;; *.zip) unzip $f;; *.rar) unrar x $f;; *.7z) 7z x $f;; esac }} # compress current file or selected files with tar and gunzip cmd tar ${{ set -f mkdir $1 cp -r $fx $1 tar czf $1.tar.gz $1 rm -rf $1 }} # compress current file or selected files with zip cmd zip ${{ set -f mkdir $1 cp -r $fx $1 zip -r $1.zip $1 rm -rf $1 }} cmd on-cd &{{ # '&' commands run silently in background (which is what we want here), # but are not connected to stdout. # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty printf "\033]0; $(pwd | sed "s|$HOME|~|") - lf\007" > /dev/tty }} on-cd cmd open ${{ case $(file --mime-type -Lb $f) in text/*) $EDITOR $fx;; *) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;; esac }} cmd select-files ${{ { echo "$fs"; find -L "$(pwd)" -mindepth 1 -maxdepth 1 -type f; } | if [ "$lf_hidden" = "false" ]; then # remove any hidden files so you only select files you can see. grep -v '/\.[^/]\+$' else cat fi | sed '/^$/d' | sort | uniq -u | xargs -d '\n' -r -I{} lf -remote "send $id toggle {}" }} cmd select-dirs ${{ { echo "$fs"; find -L "$(pwd)" -mindepth 1 -maxdepth 1 -type d; } | if [ "$lf_hidden" = "false" ]; then grep -v '/\.[^/]\+$' else cat fi | sed '/^$/d' | sort | uniq -u | xargs -d '\n' -r -I{} lf -remote "send $id toggle {}" }} cmd cut-add %{{ files=$(lf -remote load | tail -n +2) newline=$'\n' # change to $fx to add current file when no toggled # files exist. if [ -n "$files" ]; then new_files=$(echo "$files${newline}$fs" | sort | uniq) else new_files=$fs fi # remove empty lines from the file list, because they keep messing # up the selection. new_files=$(echo "$new_files" | sed --quiet -e '/^$/d' -e 'p') lf -remote "save${newline}move${newline}${new_files}${newline}" lf -remote "send $id unselect${newline}send $id sync" }} cmd cut-remove %{{ files=$(lf -remote load) operation=$(echo "$files" | head -n1) if [ "$operation" != "move" ]; then lf -remote "send $id echoerr no files in cut list." exit 1 fi files=$(echo "$files" | tail -n +2) newline=$'\n' # change to $fx to remove current file when no toggled # files exist. if [ -n "$files" ]; then # here we want all files in $files that aren't in $fs, making sure # that none of the entries in $fs are included, even when they aren't # in $files. To do this we concatenate $files and $fs (twice), printing # only the uniqe lines. new_files=$(echo "$files$newline$fs$newline$fs" | sort | uniq -u) else new_files=$files fi new_files=$(echo "$new_files" | sed --quiet -e '/^$/d' -e 'p') lf -remote "save${newline}move${newline}${new_files}${newline}" lf -remote "send $id unselect${newline}send $id sync" }} cmd yank-dirname $dirname -- "$f" | head -c-1 | xclip -i -selection clipboard cmd yank-path $printf '%s' "$fx" | xclip -i -selection clipboard cmd yank-basename $basename -a -- $fx | head -c-1 | xclip -i -selection clipboard ================================================ FILE: .config/nvim/init.lua ================================================ require("user.options") require("user.keymaps") require("user.plugins") require("user.autocommands") require("user.colorscheme") require("user.cmp") require("user.telescope") require("user.treesitter") require("user.autopairs") require("user.comment") require("user.gitsigns") require("user.nvim-tree") require("user.bufferline") require("user.lualine") require("user.toggleterm") require("user.project") require("user.impatient") require("user.illuminate") require("user.indentline") require("user.alpha") require("user.lsp") require("user.dap") require("user.colorizer") require("user.cutlass") require("user.substitute") require("user.autotag") require("user.whichkey") require("user.trouble") require("user.testing") require("user.diffview") require("user.surround") require("user.smart-splits") require("user.live-command") ================================================ FILE: .config/nvim/lua/user/alpha.lua ================================================ local status_ok, alpha = pcall(require, "alpha") if not status_ok then return end local dashboard = require("alpha.themes.dashboard") local fortune = require("alpha.fortune") -- Inspired by https://github.com/glepnir/dashboard-nvim with my own flair local header = { [[  ]], [[ ████ ██████ █████ ██ ]], [[ ███████████ █████  ]], [[ █████████ ███████████████████ ███ ███████████ ]], [[ █████████ ███ █████████████ █████ ██████████████ ]], [[ █████████ ██████████ █████████ █████ █████ ████ █████ ]], [[ ███████████ ███ ███ █████████ █████ █████ ████ █████ ]], [[██████ █████████████████████ ████ █████ █████ ████ ██████]], } -- Make the header a bit more fun with some color! local function colorize_header() local catppuccin = require("catppuccin.palettes").get_palette() local colors = { catppuccin.red, catppuccin.red, catppuccin.peach, catppuccin.yellow, catppuccin.green, catppuccin.sky, catppuccin.blue, catppuccin.mauve, catppuccin.overlay0, } for i, color in pairs(colors) do local cmd = "hi StartLogo" .. i .. " guifg=" .. color vim.cmd(cmd) end local lines = {} for i, chars in pairs(header) do local line = { type = "text", val = chars, opts = { hl = "StartLogo" .. i, shrink_margin = false, position = "center", }, } table.insert(lines, line) end return lines end dashboard.section.buttons.val = { dashboard.button("f", " " .. " Find file", ":Telescope find_files "), dashboard.button("e", " " .. " New file", ":ene startinsert "), dashboard.button("p", " " .. " Find project", ":lua require('telescope').extensions.projects.projects()"), dashboard.button("r", " " .. " Recent files", ":Telescope oldfiles "), dashboard.button("t", " " .. " Find text", ":Telescope live_grep "), dashboard.button("c", " " .. " Config", ":e ~/.config/nvim/init.lua "), dashboard.button("q", " " .. " Quit", ":qa"), } -- Everyone could use a good fortune cookie from time to time, right? dashboard.section.footer.val = fortune() dashboard.section.footer.opts.hl = "StartLogo9" -- Hide all the unnecessary visual elements while on the dashboard, and add -- them back when leaving the dashboard. local group = vim.api.nvim_create_augroup("CleanDashboard", {}) vim.api.nvim_create_autocmd("User", { group = group, pattern = "AlphaReady", callback = function() vim.opt.showtabline = 0 vim.opt.showmode = false vim.opt.laststatus = 0 vim.opt.showcmd = false vim.opt.ruler = false end, }) vim.api.nvim_create_autocmd("BufUnload", { group = group, pattern = "", callback = function() vim.opt.showtabline = 2 vim.opt.showmode = true vim.opt.laststatus = 3 vim.opt.showcmd = true vim.opt.ruler = true end, }) alpha.setup({ layout = { { type = "padding", val = 8 }, { type = "group", val = colorize_header() }, { type = "padding", val = 3 }, dashboard.section.buttons, { type = "padding", val = 1 }, dashboard.section.footer, }, opts = { margin = 5 }, }) ================================================ FILE: .config/nvim/lua/user/autocommands.lua ================================================ -- Use 'q' to quit from common plugins vim.api.nvim_create_autocmd({ "FileType" }, { pattern = { "qf", "help", "man", "lspinfo", "spectre_panel", "lir" }, callback = function() vim.cmd [[ nnoremap q :close set nobuflisted ]] end, }) -- Remove statusline and tabline when in Alpha vim.api.nvim_create_autocmd({ "User" }, { pattern = { "AlphaReady" }, callback = function() vim.cmd [[ set showtabline=0 | autocmd BufUnload set showtabline=2 set laststatus=0 | autocmd BufUnload set laststatus=3 ]] end, }) -- Set wrap and spell in markdown and gitcommit vim.api.nvim_create_autocmd({ "FileType" }, { pattern = { "gitcommit", "markdown" }, callback = function() vim.opt_local.wrap = true vim.opt_local.spell = true end, }) vim.cmd "autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif" -- Fixes Autocomment vim.api.nvim_create_autocmd({ "BufWinEnter" }, { callback = function() vim.cmd "set formatoptions-=cro" end, }) -- Highlight Yanked Text vim.api.nvim_create_autocmd({ "TextYankPost" }, { callback = function() vim.highlight.on_yank { higroup = "Visual", timeout = 200 } end, }) vim.api.nvim_create_autocmd({ "InsertEnter" }, { callback = function() vim.opt_local.relativenumber = false end, }) vim.api.nvim_create_autocmd({ "InsertLeave" }, { callback = function() vim.opt_local.relativenumber = true end, }) ================================================ FILE: .config/nvim/lua/user/autopairs.lua ================================================ -- Setup nvim-cmp. local status_ok, npairs = pcall(require, "nvim-autopairs") if not status_ok then return end npairs.setup { check_ts = true, -- treesitter integration disable_filetype = { "TelescopePrompt" }, } local cmp_autopairs = require "nvim-autopairs.completion.cmp" local cmp_status_ok, cmp = pcall(require, "cmp") if not cmp_status_ok then return end cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done {}) ================================================ FILE: .config/nvim/lua/user/autotag.lua ================================================ local status_ok, autotag = pcall(require, "nvim-ts-autotag") if not status_ok then return end autotag.setup() ================================================ FILE: .config/nvim/lua/user/bufferline.lua ================================================ local status_ok, bufferline = pcall(require, "bufferline") if not status_ok then return end bufferline.setup({ options = { close_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions" right_mouse_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions" offsets = { { filetype = "NvimTree", text = "", padding = 1 } }, separator_style = "thin", -- | "thick" | "thin" | { 'any', 'any' }, numbers = "ordinal", diagnostics = "nvim_lsp", }, highlights = { fill = { fg = { attribute = "fg", highlight = "#ff0000" }, bg = { attribute = "bg", highlight = "TabLine" }, }, background = { fg = { attribute = "fg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" }, }, buffer_visible = { fg = { attribute = "fg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" }, }, close_button = { fg = { attribute = "fg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" }, }, close_button_visible = { fg = { attribute = "fg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" }, }, tab_selected = { fg = { attribute = "fg", highlight = "Normal" }, bg = { attribute = "bg", highlight = "Normal" }, }, tab = { fg = { attribute = "fg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" }, }, tab_close = { fg = { attribute = "fg", highlight = "TabLineSel" }, bg = { attribute = "bg", highlight = "Normal" }, }, duplicate_selected = { fg = { attribute = "fg", highlight = "TabLineSel" }, bg = { attribute = "bg", highlight = "TabLineSel" }, italic = true, }, duplicate_visible = { fg = { attribute = "fg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" }, italic = true, }, duplicate = { fg = { attribute = "fg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" }, italic = true, }, modified = { fg = { attribute = "fg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" }, }, modified_selected = { fg = { attribute = "fg", highlight = "Normal" }, bg = { attribute = "bg", highlight = "Normal" }, }, modified_visible = { fg = { attribute = "fg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" }, }, separator = { fg = { attribute = "bg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" }, }, separator_selected = { fg = { attribute = "bg", highlight = "Normal" }, bg = { attribute = "bg", highlight = "Normal" }, }, indicator_selected = { fg = { attribute = "fg", highlight = "LspDiagnosticsDefaultHint" }, bg = { attribute = "bg", highlight = "Normal" }, }, }, }) vim.cmd([[ nnoremap 1 lua require("bufferline").go_to_buffer(1, true) nnoremap 2 lua require("bufferline").go_to_buffer(2, true) nnoremap 3 lua require("bufferline").go_to_buffer(3, true) nnoremap 4 lua require("bufferline").go_to_buffer(4, true) nnoremap 5 lua require("bufferline").go_to_buffer(5, true) nnoremap 6 lua require("bufferline").go_to_buffer(6, true) nnoremap 7 lua require("bufferline").go_to_buffer(7, true) nnoremap 8 lua require("bufferline").go_to_buffer(8, true) nnoremap 9 lua require("bufferline").go_to_buffer(9, true) nnoremap 0 lua require("bufferline").go_to_buffer(10, true) nnoremap $ lua require("bufferline").go_to_buffer(-1, true) ]]) ================================================ FILE: .config/nvim/lua/user/cmp.lua ================================================ local cmp_status_ok, cmp = pcall(require, "cmp") if not cmp_status_ok then return end local snip_status_ok, luasnip = pcall(require, "luasnip") if not snip_status_ok then return end require("luasnip/loaders/from_vscode").lazy_load() local check_backspace = function() local col = vim.fn.col(".") - 1 return col == 0 or vim.fn.getline("."):sub(col, col):match("%s") end local kind_icons = { Text = "", Method = "", Function = "", Constructor = "", Field = "", Variable = "", Class = "", Interface = "", Module = "", Property = "", Unit = "", Value = "", Enum = "", Keyword = "", Snippet = "", Color = "", File = "", Reference = "", Folder = "", EnumMember = "", Constant = "", Struct = "", Event = "", Operator = "", TypeParameter = "", } cmp.setup({ snippet = { expand = function(args) luasnip.lsp_expand(args.body) -- For `luasnip` users. end, }, mapping = cmp.mapping.preset.insert({ [""] = cmp.mapping.select_prev_item(), [""] = cmp.mapping.select_next_item(), [""] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }), [""] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }), [""] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }), [""] = cmp.mapping({ i = cmp.mapping.abort(), c = cmp.mapping.close(), }), -- Accept currently selected item. If none selected, `select` first item. -- Set `select` to `false` to only confirm explicitly selected items. [""] = cmp.mapping.confirm({ select = false }), [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() elseif luasnip.expandable() then luasnip.expand() elseif luasnip.expand_or_jumpable() then luasnip.expand_or_jump() elseif check_backspace() then fallback() 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", }), }), formatting = { fields = { "kind", "abbr", "menu" }, format = function(entry, vim_item) vim_item.kind = kind_icons[vim_item.kind] vim_item.menu = ({ nvim_lsp = "", nvim_lua = "", luasnip = "", buffer = "", path = "", emoji = "", cmp_tabnine = "", })[entry.source.name] return vim_item end, }, sources = { { name = "nvim_lsp_signature_help" }, { name = "nvim_lsp" }, { name = "nvim_lua" }, { name = "luasnip" }, { name = "buffer" }, { name = "path" }, { name = "cmp_tabnine" }, }, confirm_opts = { behavior = cmp.ConfirmBehavior.Replace, select = false, }, window = { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered(), }, enabled = function() return vim.api.nvim_buf_get_option(0, "buftype") ~= "prompt" or require("cmp_dap").is_dap_buffer() end, experimental = { ghost_text = true, }, }) cmp.setup.cmdline(":", { mapping = cmp.mapping.preset.cmdline(), sources = cmp.config.sources({ { name = "path" }, }, { { name = "cmdline" }, }), }) cmp.setup.filetype({ "dap-repl", "dapui_watches" }, { sources = { { name = "dap" }, }, }) cmp.setup.cmdline("/", { mapping = cmp.mapping.preset.cmdline(), sources = { { name = "buffer" }, }, }) ================================================ FILE: .config/nvim/lua/user/colorizer.lua ================================================ local status_ok, colorizer = pcall(require, "colorizer") if not status_ok then return end colorizer.setup() ================================================ FILE: .config/nvim/lua/user/colorscheme.lua ================================================ local status_ok, theme = pcall(require, "catppuccin") if not status_ok then return end vim.g.catppuccin_flavour = "mocha" theme.setup({ transparent_background = false, integrations = { dap = { enabled = true, enable_ui = true, }, vim_sneak = true, ts_rainbow = true, which_key = true, }, }) vim.cmd([[colorscheme catppuccin]]) local colors = require("catppuccin.palettes").get_palette() vim.cmd([[ hi def IlluminatedWordText guibg=#45475A hi def IlluminatedWordWrite guibg=#45475A hi def IlluminatedWordRead guibg=#45475A ]]) vim.g.terminal_color_0 = colors.surface1 vim.g.terminal_color_8 = colors.surface2 vim.g.terminal_color_1 = colors.red vim.g.terminal_color_9 = colors.red vim.g.terminal_color_2 = colors.green vim.g.terminal_color_10 = colors.green vim.g.terminal_color_3 = colors.yellow vim.g.terminal_color_11 = colors.yellow vim.g.terminal_color_4 = colors.blue vim.g.terminal_color_12 = colors.blue vim.g.terminal_color_5 = colors.magenta vim.g.terminal_color_13 = colors.magenta vim.g.terminal_color_6 = colors.cyan vim.g.terminal_color_14 = colors.cyan vim.g.terminal_color_7 = colors.subtext1 vim.g.terminal_color_15 = colors.subtext0 ================================================ FILE: .config/nvim/lua/user/comment.lua ================================================ local status_ok, comment = pcall(require, "Comment") if not status_ok then return end comment.setup({ pre_hook = require("ts_context_commentstring.integrations.comment_nvim").create_pre_hook(), }) ================================================ FILE: .config/nvim/lua/user/cutlass.lua ================================================ local status_ok, cutlass = pcall(require, "cutlass") if not status_ok then return end cutlass.setup({ cut_key = "m", exclude = { "ns", "nS" }, }) ================================================ FILE: .config/nvim/lua/user/dap.lua ================================================ local dap_status_ok, dap = pcall(require, "dap") if not dap_status_ok then return end local dap_ui_status_ok, dapui = pcall(require, "dapui") if not dap_ui_status_ok then return end local python_ok, python = pcall(require, "dap-python") if not python_ok then return end python.setup("/usr/bin/python") python.test_runner = "pytest" local js_ok, js = pcall(require, "dap-vscode-js") if not js_ok then return end js.setup({ adapters = { "pwa-node" }, }) for _, language in ipairs({ "typescript", "javascript" }) do dap.configurations[language] = { { type = "pwa-node", request = "launch", name = "Launch file", program = "${file}", cwd = "${workspaceFolder}", }, { type = "pwa-node", request = "attach", name = "Attach", processId = require("dap.utils").pick_process, cwd = "${workspaceFolder}", }, { type = "pwa-node", request = "launch", name = "Debug Jest Tests", -- trace = true, -- include debugger info runtimeExecutable = "node", runtimeArgs = { "./node_modules/jest/bin/jest.js", "--runInBand", }, rootPath = "${workspaceFolder}", cwd = "${workspaceFolder}", console = "integratedTerminal", internalConsoleOptions = "neverOpen", }, } end dapui.setup({ layouts = { { elements = { { id = "scopes", size = 0.25, -- Can be float or integer > 1 }, { id = "breakpoints", size = 0.25 }, }, size = 40, position = "right", -- Can be "left", "right", "top", "bottom" }, }, }) vim.fn.sign_define("DapBreakpoint", { text = "", texthl = "DiagnosticSignError", linehl = "", numhl = "" }) dap.listeners.after.event_initialized["dapui_config"] = function() dapui.open() end dap.listeners.before.event_terminated["dapui_config"] = function() dapui.close() end dap.listeners.before.event_exited["dapui_config"] = function() dapui.close() end ================================================ FILE: .config/nvim/lua/user/diffview.lua ================================================ local status_ok, diff = pcall(require, "diffview") if not status_ok then return end diff.setup() ================================================ FILE: .config/nvim/lua/user/gitsigns.lua ================================================ local status_ok, gitsigns = pcall(require, "gitsigns") if not status_ok then return end gitsigns.setup { signs = { add = { hl = "GitSignsAdd", text = "▎", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" }, change = { hl = "GitSignsChange", text = "▎", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" }, delete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" }, topdelete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" }, changedelete = { hl = "GitSignsChange", text = "▎", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" }, }, } ================================================ FILE: .config/nvim/lua/user/illuminate.lua ================================================ local status_ok, illuminate = pcall(require, "illuminate") if not status_ok then return end illuminate.configure({ filetypes_denylist = { "alpha", "NvimTree", "qf" }, }) vim.api.nvim_set_keymap("n", "", 'lua require"illuminate".next_reference{wrap=true}', { noremap = true }) vim.api.nvim_set_keymap( "n", "", 'lua require"illuminate".next_reference{reverse=true,wrap=true}', { noremap = true } ) ================================================ FILE: .config/nvim/lua/user/impatient.lua ================================================ local status_ok, impatient = pcall(require, "impatient") if not status_ok then return end impatient.enable_profile() ================================================ FILE: .config/nvim/lua/user/indentline.lua ================================================ local status_ok, indent_blankline = pcall(require, "indent_blankline") if not status_ok then return end indent_blankline.setup { char = "▏", show_trailing_blankline_indent = false, show_first_indent_level = true, use_treesitter = true, show_current_context = true, buftype_exclude = { "terminal", "nofile" }, filetype_exclude = { "help", "packer", "NvimTree", }, } ================================================ FILE: .config/nvim/lua/user/keymaps.lua ================================================ -- Shorten function name local keymap = vim.keymap.set -- Silent keymap option local opts = { silent = true } --Remap space as leader key keymap("", "", "", opts) vim.g.mapleader = " " vim.g.camelcasemotion_key = "-" vim.cmd([[ let g:sneak#label = 1 ]]) -- Modes -- normal_mode = "n", -- insert_mode = "i", -- visual_mode = "v", -- visual_block_mode = "x", -- term_mode = "t", -- command_mode = "c", -- Normal -- -- Better window navigation keymap("n", "", "h", opts) keymap("n", "", "j", opts) keymap("n", "", "k", opts) keymap("n", "", "l", opts) -- Resize with arrows keymap("n", "", " lua require('smart-splits').resize_up(2)", opts) keymap("n", "", " lua require('smart-splits').resize_down(2)", opts) keymap("n", "", " lua require('smart-splits').resize_left(2)", opts) keymap("n", "", " lua require('smart-splits').resize_right(2)", opts) -- Navigate buffers keymap("n", "", ":bnext", opts) keymap("n", "", ":bprevious", opts) -- Stop search highlight on ESC keymap("n", "", ":nohlsearch", opts) -- Move text up and down keymap("n", "", ":m .-2==", opts) keymap("n", "", ":m .+1==", opts) -- Close buffers keymap("n", "", "Bdelete!", opts) -- Better paste keymap("v", "p", '"_dP', opts) -- Insert new line without insert mode keymap("n", "go", "o", opts) keymap("n", "gO", "O", opts) -- Remap marks keymap("n", "gm", "m", opts) -- Insert -- -- Press jk fast to enter keymap("i", "jk", "", opts) -- Paste keymap("i", "", "pi", opts) -- Move in insert mode keymap("i", "", "", opts) keymap("i", "", "", opts) keymap("i", "", "", opts) keymap("i", "", "", opts) -- Delete word keymap("i", "", "", opts) keymap("t", "", "", opts) -- Visual -- -- Stay in indent mode keymap("v", "<", "", ">gv", opts) -- Move text up and down keymap("v", "", ":m .+1==", opts) keymap("v", "", ":m .-2==", opts) -- Visual Block -- -- Move text up and down keymap("x", "J", ":move '>+1gv-gv", opts) keymap("x", "K", ":move '<-2gv-gv", opts) ================================================ FILE: .config/nvim/lua/user/live-command.lua ================================================ local status_ok, live = pcall(require, "live-command") if not status_ok then return end live.setup({ commands = { Norm = { cmd = "norm" }, G = { cmd = "g" }, S = { cmd = "s" }, Mac = { cmd = "norm", -- This will transform ":5Mac a" into ":norm 5@a" args = function(opts) return (opts.count == -1 and "" or opts.count) .. "@" .. opts.args end, range = "", }, }, }) ================================================ FILE: .config/nvim/lua/user/lsp/handlers.lua ================================================ local M = {} local status_cmp_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") if not status_cmp_ok then return end M.capabilities = cmp_nvim_lsp.default_capabilities() M.setup = function() local signs = { { name = "DiagnosticSignError", text = "" }, { name = "DiagnosticSignWarn", text = "" }, { name = "DiagnosticSignHint", text = "" }, { name = "DiagnosticSignInfo", text = "" }, } for _, sign in ipairs(signs) do vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" }) end local config = { virtual_text = false, -- disable virtual text signs = { active = signs, -- show signs }, update_in_insert = true, underline = true, severity_sort = true, float = { focusable = true, style = "minimal", border = "rounded", source = "always", header = "", prefix = "", }, } vim.diagnostic.config(config) vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded", }) vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded", }) end local function lsp_keymaps(bufnr) local opts = { noremap = true, silent = true } local keymap = vim.api.nvim_buf_set_keymap keymap(bufnr, "n", "gD", "lua vim.lsp.buf.declaration()", opts) keymap(bufnr, "n", "gd", "lua vim.lsp.buf.definition()", opts) keymap(bufnr, "n", "K", "lua vim.lsp.buf.hover()", opts) keymap(bufnr, "n", "gI", "lua vim.lsp.buf.implementation()", opts) keymap(bufnr, "n", "gr", "lua vim.lsp.buf.references()", opts) keymap(bufnr, "n", "gl", "lua vim.diagnostic.open_float()", opts) end M.on_attach = function(client, bufnr) lsp_keymaps(bufnr) local status_ok, illuminate = pcall(require, "illuminate") if not status_ok then return end illuminate.on_attach(client) end return M ================================================ FILE: .config/nvim/lua/user/lsp/init.lua ================================================ local status_ok, _ = pcall(require, "lspconfig") if not status_ok then return end require("user.lsp.mason") require("user.lsp.handlers").setup() require("user.lsp.null-ls") ================================================ FILE: .config/nvim/lua/user/lsp/mason.lua ================================================ local status_ok, mason = pcall(require, "mason") if not status_ok then return end local servers = { "sumneko_lua", "cssls", "html", "tsserver", "pyright", "bashls", "jsonls", "hls", "rust_analyzer", } local mason_lspconfig_status_ok, mason_lspconfig = pcall(require, "mason-lspconfig") if not mason_lspconfig_status_ok then return end mason.setup() mason_lspconfig.setup() local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") if not lspconfig_status_ok then return end local opts = {} for _, server in pairs(servers) do opts = { on_attach = require("user.lsp.handlers").on_attach, capabilities = require("user.lsp.handlers").capabilities, } if server == "sumneko_lua" then local sumneko_opts = require("user.lsp.settings.sumneko_lua") opts = vim.tbl_deep_extend("force", sumneko_opts, opts) elseif server == "pyright" then local pyright_opts = require("user.lsp.settings.pyright") opts = vim.tbl_deep_extend("force", pyright_opts, opts) elseif server == "hls" then local hls_opts = require("user.lsp.settings.hls") opts = vim.tbl_deep_extend("force", hls_opts, opts) elseif server == "jsonls" then local jsonls_opts = require("user.lsp.settings.jsonls") opts = vim.tbl_deep_extend("force", jsonls_opts, opts) end lspconfig[server].setup(opts) end ================================================ FILE: .config/nvim/lua/user/lsp/null-ls.lua ================================================ local null_ls_status_ok, null_ls = pcall(require, "null-ls") if not null_ls_status_ok then return end -- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting local formatting = null_ls.builtins.formatting -- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics local diagnostics = null_ls.builtins.diagnostics local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) null_ls.setup({ debug = false, sources = { formatting.prettierd.with({ extra_filetypes = { "toml" }, env = { PRETTIERD_DEFAULT_CONFIG = vim.fn.expand("~/.config/nvim/lua/user/lsp/settings/prettier.json"), }, }), formatting.rustfmt, formatting.black.with({ extra_args = { "--fast" } }), formatting.stylua, formatting.shfmt.with({ extra_filetypes = { "zsh" }, }), diagnostics.shellcheck, diagnostics.pylint, }, on_attach = function(client, bufnr) if client.supports_method("textDocument/formatting") then vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) vim.api.nvim_create_autocmd("BufWritePre", { group = augroup, buffer = bufnr, callback = function() vim.lsp.buf.format({ bufnr = bufnr, async = true, filter = function(client) return client.name == "null-ls" end, }) end, }) end end, }) ================================================ FILE: .config/nvim/lua/user/lsp/settings/hls.lua ================================================ return { settings = { haskell = { plugin = { rename = { config = { crossModule = true } } }, }, }, } ================================================ FILE: .config/nvim/lua/user/lsp/settings/jsonls.lua ================================================ return { settings = { json = { schemas = require('schemastore').json.schemas(), validate = { enable = true }, }, } } ================================================ FILE: .config/nvim/lua/user/lsp/settings/prettier.json ================================================ { "tabWidth": 4 } ================================================ FILE: .config/nvim/lua/user/lsp/settings/pyright.lua ================================================ return { settings = { python = { analysis = { typeCheckingMode = "off", }, }, }, } ================================================ FILE: .config/nvim/lua/user/lsp/settings/sumneko_lua.lua ================================================ return { settings = { Lua = { diagnostics = { globals = { "vim" }, }, workspace = { library = { [vim.fn.expand "$VIMRUNTIME/lua"] = true, [vim.fn.stdpath "config" .. "/lua"] = true, }, }, telemetry = { enable = false, }, }, }, } ================================================ FILE: .config/nvim/lua/user/lualine.lua ================================================ local status_ok, lualine = pcall(require, "lualine") if not status_ok then return end local null_ls_status_ok, null_ls = pcall(require, "null-ls") if not null_ls_status_ok then return end local hide_in_width = function() return vim.fn.winwidth(0) > 80 end local diagnostics = { "diagnostics", sources = { "nvim_diagnostic" }, sections = { "error", "warn" }, symbols = { error = " ", warn = " " }, colored = false, always_visible = true, } local diff = { "diff", colored = false, symbols = { added = "樂", modified = " ", removed = " " }, cond = hide_in_width, } local filetype = { "filetype", icons_enabled = true, } local location = { "location", padding = { right = 1, left = 0 }, } local branch = { "branch", icon = "" } local lsp = { function() local buf_clients = vim.lsp.buf_get_clients() if next(buf_clients) == nil then return "no lsp" end local buf_ft = vim.bo.filetype local buf_client_names = {} -- add client for _, client in pairs(buf_clients) do if client.name ~= "null-ls" then table.insert(buf_client_names, client.name) end end local s = require("null-ls.sources") local available_sources = s.get_available(buf_ft) local providers = {} for _, source in ipairs(available_sources) do for method in pairs(source.methods) do providers[method] = providers[method] or {} table.insert(providers[method], source.name) end end -- add formatter local supported_formatters = providers[null_ls.methods.FORMATTING] or {} vim.list_extend(buf_client_names, supported_formatters) -- add linter local supported_linters = providers[null_ls.methods.DIAGNOSTICS] or {} vim.list_extend(buf_client_names, supported_linters) local unique_client_names = vim.fn.uniq(buf_client_names) return table.concat(unique_client_names, ", ") end, } local spaces = function() return "spaces: " .. vim.api.nvim_buf_get_option(0, "shiftwidth") end lualine.setup({ options = { globalstatus = true, icons_enabled = true, theme = "auto", component_separators = "|", section_separators = { left = "", right = "" }, disabled_filetypes = { "alpha", "dashboard" }, always_divide_middle = true, }, sections = { lualine_a = { "mode" }, lualine_b = { branch }, lualine_c = { diagnostics }, lualine_x = { lsp, diff, "encoding", spaces, filetype }, lualine_y = { "progress" }, lualine_z = { location }, }, }) ================================================ FILE: .config/nvim/lua/user/nvim-tree.lua ================================================ local status_ok, nvim_tree = pcall(require, "nvim-tree") if not status_ok then return end local config_status_ok, nvim_tree_config = pcall(require, "nvim-tree.config") if not config_status_ok then return end local tree_cb = nvim_tree_config.nvim_tree_callback nvim_tree.setup { update_focused_file = { enable = true, update_cwd = true, }, renderer = { root_folder_modifier = ":t", icons = { glyphs = { default = "", symlink = "", folder = { arrow_open = "", arrow_closed = "", default = "", open = "", empty = "", empty_open = "", symlink = "", symlink_open = "", }, git = { unstaged = "", staged = "S", unmerged = "", renamed = "➜", untracked = "U", deleted = "", ignored = "◌", }, }, }, }, diagnostics = { enable = true, show_on_dirs = true, icons = { hint = "", info = "", warning = "", error = "", }, }, view = { width = 30, side = "left", mappings = { list = { { key = { "l", "", "o" }, cb = tree_cb "edit" }, { key = "h", cb = tree_cb "close_node" }, { key = "v", cb = tree_cb "vsplit" }, }, }, }, } ================================================ FILE: .config/nvim/lua/user/options.lua ================================================ vim.opt.backup = false -- creates a backup file vim.opt.clipboard = "unnamedplus" -- allows neovim to access the system clipboard vim.opt.cmdheight = 1 -- more space in the neovim command line for displaying messages vim.opt.completeopt = { "menuone", "noselect" } -- mostly just for cmp vim.opt.conceallevel = 0 -- so that `` is visible in markdown files vim.opt.fileencoding = "utf-8" -- the encoding written to a file vim.opt.hlsearch = true -- highlight all matches on previous search pattern vim.opt.ignorecase = true -- ignore case in search patterns vim.opt.mouse = "a" -- allow the mouse to be used in neovim vim.opt.pumheight = 10 -- pop up menu height vim.opt.showmode = false -- we don't need to see things like -- INSERT -- anymore vim.opt.showtabline = 0 -- always show tabs vim.opt.smartcase = true -- smart case vim.opt.smartindent = true -- make indenting smarter again vim.opt.splitbelow = true -- force all horizontal splits to go below current window vim.opt.splitright = true -- force all vertical splits to go to the right of current window vim.opt.swapfile = false -- creates a swapfile vim.opt.termguicolors = true -- set term gui colors (most terminals support this) vim.opt.timeoutlen = 300 -- time to wait for a mapped sequence to complete (in milliseconds) vim.opt.undofile = true -- enable persistent undo vim.opt.updatetime = 300 -- faster completion (4000ms default) vim.opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited vim.opt.expandtab = true -- convert tabs to spaces vim.opt.shiftwidth = 4 -- the number of spaces inserted for each indentation vim.opt.tabstop = 4 -- insert 2 spaces for a tab vim.opt.cursorline = true -- highlight the current line vim.opt.relativenumber = true -- set relative numbered lines vim.opt.number = true -- set numbered lines vim.opt.laststatus = 3 vim.opt.showcmd = false vim.opt.ruler = false vim.opt.numberwidth = 2 -- set number column width to 2 {default 4} vim.opt.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time vim.opt.wrap = false -- display lines as one long line vim.opt.scrolloff = 8 -- is one of my fav vim.opt.sidescrolloff = 8 vim.opt.guifont = "monospace:h7" -- the font used in graphical neovim applications vim.opt.fillchars.eob = " " vim.opt.shortmess:append("c") vim.opt.whichwrap:append("<,>,[,],h,l") vim.opt.iskeyword:append("-") vim.g.neovide_transparency = 0.8 vim.g.neovide_floating_opacity = 0.9 ================================================ FILE: .config/nvim/lua/user/plugins.lua ================================================ local fn = vim.fn -- Automatically install packer local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" if fn.empty(fn.glob(install_path)) > 0 then PACKER_BOOTSTRAP = fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path, }) print("Installing packer close and reopen Neovim...") vim.cmd([[packadd packer.nvim]]) end -- Autocommand that reloads neovim whenever you save the plugins.lua file vim.cmd([[ augroup packer_user_config autocmd! autocmd BufWritePost plugins.lua source | PackerSync augroup end ]]) -- Use a protected call so we don't error out on first use local status_ok, packer = pcall(require, "packer") if not status_ok then return end -- Have packer use a popup window packer.init({ display = { open_fn = function() return require("packer.util").float({ border = "rounded" }) end, }, }) -- Install your plugins here return packer.startup(function(use) -- My plugins here use({ "wbthomason/packer.nvim" }) -- Have packer manage itself use({ "nvim-lua/plenary.nvim" }) -- Useful lua functions used by lots of plugins use("rcarriga/nvim-notify") use("tpope/vim-repeat") use({ "JoosepAlviste/nvim-ts-context-commentstring" }) use({ "moll/vim-bbye" }) use({ "ahmedkhalf/project.nvim" }) use({ "lewis6991/impatient.nvim" }) use("ThePrimeagen/vim-be-good") -- UI use({ "goolord/alpha-nvim" }) use({ "nvim-lualine/lualine.nvim" }) use({ "lukas-reineke/indent-blankline.nvim" }) use({ "akinsho/bufferline.nvim" }) use("folke/which-key.nvim") -- use({ "stevearc/dressing.nvim" }) use({ "norcalli/nvim-colorizer.lua" }) use({ "akinsho/toggleterm.nvim", tag = "*" }) use("windwp/nvim-spectre") use({ "kyazdani42/nvim-web-devicons" }) use({ "kyazdani42/nvim-tree.lua" }) use({ "folke/trouble.nvim", requires = "kyazdani42/nvim-web-devicons", }) use("mrjones2014/smart-splits.nvim") use("p00f/nvim-ts-rainbow") -- Movement -- use("ggandor/leap.nvim") use("justinmk/vim-sneak") use("bkad/CamelCaseMotion") use("andymass/vim-matchup") -- Editing use({ "kylechui/nvim-surround", tag = "*", -- Use for stability; omit to use `main` branch for the latest features }) use({ "Darazaki/indent-o-matic" }) use("gbprod/cutlass.nvim") use("gbprod/substitute.nvim") use({ "numToStr/Comment.nvim" }) use("windwp/nvim-ts-autotag") use({ "windwp/nvim-autopairs" }) -- Autopairs, integrates with both cmp and treesitter use("smjonas/live-command.nvim") -- Colorschemes use({ "catppuccin/nvim", as = "catppuccin" }) -- cmp plugins use({ "hrsh7th/nvim-cmp" }) -- The completion plugin use({ "hrsh7th/cmp-buffer" }) -- buffer completions use({ "hrsh7th/cmp-path" }) -- path completions use({ "saadparwaiz1/cmp_luasnip" }) -- snippet completions use({ "hrsh7th/cmp-nvim-lsp" }) use({ "hrsh7th/cmp-nvim-lua" }) use({ "tzachar/cmp-tabnine", run = "./install.sh", requires = "hrsh7th/nvim-cmp", }) use("rcarriga/cmp-dap") use("hrsh7th/cmp-cmdline") use("hrsh7th/cmp-nvim-lsp-signature-help") -- snippets use({ "L3MON4D3/LuaSnip" }) --snippet engine use({ "rafamadriz/friendly-snippets" }) -- a bunch of snippets to use -- LSP use({ "neovim/nvim-lspconfig" }) -- enable LSP use({ "williamboman/mason.nvim" }) -- simple to use language server installer use("williamboman/mason-lspconfig.nvim") use({ "jose-elias-alvarez/null-ls.nvim" }) -- for formatters and linters use({ "RRethy/vim-illuminate" }) use("b0o/schemastore.nvim") -- Testing use({ "nvim-neotest/neotest", requires = { "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter", "antoinemadec/FixCursorHold.nvim", "nvim-neotest/neotest-vim-test", "vim-test/vim-test", "haydenmeade/neotest-jest", "nvim-neotest/neotest-python", }, }) -- Text objects use("michaeljsmith/vim-indent-object") use("kana/vim-textobj-user") use("kana/vim-textobj-entire") use("nvim-treesitter/nvim-treesitter-textobjects") use("RRethy/nvim-treesitter-textsubjects") -- Telescope use({ "nvim-telescope/telescope.nvim" }) use({ "nvim-telescope/telescope-fzf-native.nvim", run = "make" }) -- Treesitter use({ "nvim-treesitter/nvim-treesitter", run = ":TSUpdate", }) use("nvim-treesitter/nvim-treesitter-context") -- Git use({ "lewis6991/gitsigns.nvim" }) use("sindrets/diffview.nvim") -- DAP use({ "mfussenegger/nvim-dap" }) use({ "rcarriga/nvim-dap-ui" }) --[[ use({ "ravenxrz/DAPInstall.nvim" }) ]] use("mfussenegger/nvim-dap-python") use({ "mxsdev/nvim-dap-vscode-js", requires = { "mfussenegger/nvim-dap" } }) use({ "microsoft/vscode-js-debug", opt = true, run = "npm install --legacy-peer-deps && npm run compile", }) -- Automatically set up your configuration after cloning packer.nvim -- Put this at the end after all plugins if PACKER_BOOTSTRAP then require("packer").sync() end end) ================================================ FILE: .config/nvim/lua/user/project.lua ================================================ local status_ok, project = pcall(require, "project_nvim") if not status_ok then return end project.setup() local tele_status_ok, telescope = pcall(require, "telescope") if not tele_status_ok then return end telescope.load_extension('projects') ================================================ FILE: .config/nvim/lua/user/smart-splits.lua ================================================ local status_ok, splits = pcall(require, "smart-splits") if not status_ok then return end splits.setup({}) ================================================ FILE: .config/nvim/lua/user/substitute.lua ================================================ local status_ok, substitute = pcall(require, "substitute") if not status_ok then return end substitute.setup() vim.keymap.set("n", "y", "lua require('substitute').operator()", { noremap = true }) vim.keymap.set("n", "yy", "lua require('substitute').line()", { noremap = true }) vim.keymap.set("n", "Y", "lua require('substitute').eol()", { noremap = true }) ================================================ FILE: .config/nvim/lua/user/surround.lua ================================================ local status_ok, surround = pcall(require, "nvim-surround") if not status_ok then return end surround.setup() ================================================ FILE: .config/nvim/lua/user/telescope.lua ================================================ local status_ok, telescope = pcall(require, "telescope") if not status_ok then return end local actions = require("telescope.actions") telescope.setup({ defaults = { prompt_prefix = " ", selection_caret = " ", path_display = { "smart" }, file_ignore_patterns = { ".git/", "node_modules" }, mappings = { i = { [""] = actions.cycle_history_next, [""] = actions.cycle_history_prev, [""] = actions.move_selection_next, [""] = actions.move_selection_previous, ["c"] = actions.close, }, }, }, extensions = { fzf = { fuzzy = true, override_generic_sorter = true, override_file_sorter = true, case_mode = "smart_case", }, }, }) telescope.load_extension("fzf") ================================================ FILE: .config/nvim/lua/user/testing.lua ================================================ local status_ok, neotest = pcall(require, "neotest") if not status_ok then return end neotest.setup({ adapters = { require("neotest-python")({ dap = { justMyCode = false }, }), require("neotest-jest"), require("neotest-vim-test")({ ignore_file_types = { "python", "javascript", "typescript" }, }), }, }) ================================================ FILE: .config/nvim/lua/user/toggleterm.lua ================================================ local status_ok, toggleterm = pcall(require, "toggleterm") if not status_ok then return end toggleterm.setup({ size = 20, open_mapping = [[]], hide_numbers = true, shade_terminals = true, shading_factor = 2, start_in_insert = true, insert_mappings = true, persist_size = true, direction = "float", close_on_exit = true, shell = vim.o.shell, float_opts = { border = "curved", }, }) function _G.set_terminal_keymaps() local opts = { noremap = true } -- vim.api.nvim_buf_set_keymap(0, "t", "", [[]], opts) vim.api.nvim_buf_set_keymap(0, "t", "", [[h]], opts) vim.api.nvim_buf_set_keymap(0, "t", "", [[j]], opts) vim.api.nvim_buf_set_keymap(0, "t", "", [[k]], opts) vim.api.nvim_buf_set_keymap(0, "t", "", [[l]], opts) end vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()") local Terminal = require("toggleterm.terminal").Terminal local lazygit = Terminal:new({ cmd = "lazygit", hidden = true }) function _LAZYGIT_TOGGLE() lazygit:toggle() end ================================================ FILE: .config/nvim/lua/user/treesitter.lua ================================================ local status_ok, configs = pcall(require, "nvim-treesitter.configs") if not status_ok then return end configs.setup({ ensure_installed = "all", -- one of "all" or a list of languages ignore_install = { "" }, -- List of parsers to ignore installing highlight = { enable = true, -- false will disable the whole extension disable = {}, -- list of language that will be disabled }, autopairs = { enable = true, }, context_commentstring = { enable = true, enable_autocmd = false, }, indent = { enable = true, disable = { "python", "css" } }, matchup = { enable = true, }, textobjects = { select = { enable = true, -- automatically jump forward to textobj, similar to targets.vim lookahead = true, keymaps = { -- you can use the capture groups defined in textobjects.scm ["af"] = "@call.outer", ["if"] = "@call.inner", ["ab"] = "@block.outer", ["ib"] = "@block.inner", }, }, }, textsubjects = { enable = true, prev_selection = ",", -- (Optional) keymap to select the previous selection keymaps = { ["."] = "textsubjects-smart", [";"] = "textsubjects-container-outer", ["i;"] = "textsubjects-container-inner", }, }, rainbow = { enable = true, extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean max_file_lines = nil, -- Do not enable for files with more than n lines, int } }) vim.g.matchup_matchparen_offscreen = { method = "popup" } ================================================ FILE: .config/nvim/lua/user/trouble.lua ================================================ local status_ok, trouble = pcall(require, "trouble") if not status_ok then return end trouble.setup() ================================================ FILE: .config/nvim/lua/user/whichkey.lua ================================================ local status_ok, which_key = pcall(require, "which-key") if not status_ok then return end local setup = { plugins = { marks = true, -- shows a list of your marks on ' and ` registers = true, -- shows your registers on " in NORMAL or in INSERT mode spelling = { enabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions suggestions = 20, -- how many suggestions should be shown in the list? }, -- the presets plugin, adds help for a bunch of default keybindings in Neovim -- No actual key bindings are created presets = { operators = false, -- adds help for operators like d, y, ... and registers them for motion / text object completion motions = true, -- adds help for motions text_objects = true, -- help for text objects triggered after entering an operator windows = true, -- default bindings on nav = true, -- misc bindings to work with windows z = true, -- bindings for folds, spelling and others prefixed with z g = true, -- bindings for prefixed with g }, }, -- add operators that will trigger motion and text object completion -- to enable all native operators, set the preset / operators plugin above -- operators = { gc = "Comments" }, key_labels = { -- override the label used to display some keys. It doesn't effect WK in any other way. -- For example: -- [""] = "SPC", -- [""] = "RET", -- [""] = "TAB", }, icons = { breadcrumb = "»", -- symbol used in the command line area that shows your active key combo separator = "➜", -- symbol used between a key and it's label group = "+", -- symbol prepended to a group }, popup_mappings = { scroll_down = "", -- binding to scroll down inside the popup scroll_up = "", -- binding to scroll up inside the popup }, window = { border = "rounded", -- none, single, double, shadow position = "bottom", -- bottom, top margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left] padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left] winblend = 0, }, layout = { height = { min = 4, max = 25 }, -- min and max height of the columns width = { min = 20, max = 50 }, -- min and max width of the columns spacing = 3, -- spacing between columns align = "left", -- align columns left, center or right }, ignore_missing = true, -- enable this to hide mappings for which you didn't specify a label hidden = { "", "", "", "", "call", "lua", "^:", "^ " }, -- hide mapping boilerplate show_help = true, -- show help message on the command line when the popup is visible triggers = "auto", -- automatically setup triggers -- triggers = {""} -- or specify a list manually triggers_blacklist = { -- list of mode / prefixes that should never be hooked by WhichKey -- this is mostly relevant for key maps that start with a native binding -- most people should not need to change this i = { "j", "k" }, v = { "j", "k" }, }, } local opts = { mode = "n", -- NORMAL mode prefix = "", buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings silent = true, -- use `silent` when creating keymaps noremap = true, -- use `noremap` when creating keymaps nowait = true, -- use `nowait` when creating keymaps } local mappings = { ["a"] = { "Alpha", "Alpha" }, ["b"] = { "lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false})", "Buffers", }, ["e"] = { "NvimTreeToggle", "Explorer" }, ["w"] = { "w!", "Save" }, ["W"] = { "noa w!", "Save without formatting" }, ["q"] = { "q!", "Quit" }, ["c"] = { "Bdelete!", "Close Buffer" }, ["h"] = { "TroubleToggle", "Trouble" }, ["f"] = { "lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false})", "Find files", }, ["F"] = { "Telescope live_grep theme=ivy", "Find Text" }, ["P"] = { "lua require('telescope').extensions.projects.projects()", "Projects" }, ["r"] = { "Telescope oldfiles", "Recent Files" }, p = { name = "Packer", c = { "PackerCompile", "Compile" }, i = { "PackerInstall", "Install" }, s = { "PackerSync", "Sync" }, S = { "PackerStatus", "Status" }, u = { "PackerUpdate", "Update" }, }, g = { name = "Git", g = { "lua _LAZYGIT_TOGGLE()", "Lazygit" }, j = { "lua require 'gitsigns'.next_hunk()", "Next Hunk" }, k = { "lua require 'gitsigns'.prev_hunk()", "Prev Hunk" }, l = { "lua require 'gitsigns'.blame_line()", "Blame" }, p = { "lua require 'gitsigns'.preview_hunk()", "Preview Hunk" }, r = { "lua require 'gitsigns'.reset_hunk()", "Reset Hunk" }, R = { "lua require 'gitsigns'.reset_buffer()", "Reset Buffer" }, s = { "lua require 'gitsigns'.stage_hunk()", "Stage Hunk" }, u = { "lua require 'gitsigns'.undo_stage_hunk()", "Undo Stage Hunk", }, o = { "Telescope git_status", "Open changed file" }, b = { "Telescope git_branches", "Checkout branch" }, c = { "Telescope git_commits", "Checkout commit" }, d = { "DiffviewOpen", "Diff", }, h = { "DiffviewFileHistory", "File History" }, C = { "DiffviewClose", "Close diffview" }, }, l = { name = "LSP", a = { "lua vim.lsp.buf.code_action()", "Code Action" }, d = { "Telescope diagnostics bufnr=0", "Document Diagnostics", }, w = { "Telescope diagnostics", "Workspace Diagnostics", }, f = { "lua vim.lsp.buf.format{async=true}", "Format" }, i = { "LspInfo", "Info" }, I = { "Mason", "Installer Info" }, j = { "lua vim.lsp.diagnostic.goto_next()", "Next Diagnostic", }, k = { "lua vim.lsp.diagnostic.goto_prev()", "Prev Diagnostic", }, l = { "lua vim.lsp.codelens.run()", "CodeLens Action" }, q = { "lua vim.lsp.diagnostic.set_loclist()", "Quickfix" }, r = { "lua vim.lsp.buf.rename()", "Rename" }, s = { "Telescope lsp_document_symbols", "Document Symbols" }, S = { "Telescope lsp_dynamic_workspace_symbols", "Workspace Symbols", }, }, s = { name = "Search", b = { "Telescope git_branches", "Checkout branch" }, h = { "Telescope help_tags", "Find Help" }, M = { "Telescope man_pages", "Man Pages" }, r = { "Telescope oldfiles", "Open Recent File" }, R = { "Telescope registers", "Registers" }, k = { "Telescope keymaps", "Keymaps" }, C = { "Telescope commands", "Commands" }, s = { "lua require('spectre').open()", "Search and replace" }, }, d = { name = "Debug", b = { "lua require'dap'.toggle_breakpoint()", "Toggle Breakpoint" }, c = { "lua require'dap'.continue()", "Continue" }, i = { "lua require'dap'.step_into()", "Step Into" }, o = { "lua require'dap'.step_over()", "Step Over" }, O = { "lua require'dap'.step_out()", "Step Out" }, r = { "lua require'dap'.repl.toggle()", "Toggle Repl" }, t = { "lua require'dap'.terminate()", "Terminate" }, u = { "lua require'dapui'.toggle()", "Toggle UI" }, }, t = { name = "Testing", t = { "lua require('neotest').run.run()", "Test Nearest" }, f = { "lua require('neotest').run.run(vim.fn.expand('%'))", "Test Entire File" }, s = { "lua require('neotest').run.stop()", "Stop Test Jobs" }, d = { "lua require('neotest').run.run({strategy = 'dap'})", "Debug Nearest Test" }, a = { "lua require('neotest').run.attach()", "Attach to Nearest Test" }, e = { "lua require('neotest').summary.toggle()", "Toggle Summary" }, o = { "lua require('neotest').output.open({ enter = true })", "Open Test Output" }, }, T = { name = "Terminal", f = { "ToggleTerm direction=float", "Float" }, h = { "ToggleTerm size=10 direction=horizontal", "Horizontal" }, v = { "ToggleTerm size=80 direction=vertical", "Vertical" }, }, } which_key.setup(setup) which_key.register(mappings, opts) ================================================ FILE: .config/nvim/plugin/packer_compiled.lua ================================================ -- Automatically generated packer.nvim plugin loader code if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') return end vim.api.nvim_command('packadd packer.nvim') local no_errors, error_msg = pcall(function() _G._packer = _G._packer or {} _G._packer.inside_compile = true local time local profile_info local should_profile = false if should_profile then local hrtime = vim.loop.hrtime profile_info = {} time = function(chunk, start) if start then profile_info[chunk] = hrtime() else profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 end end else time = function(chunk, start) end end local function save_profiles(threshold) local sorted_times = {} for chunk_name, time_taken in pairs(profile_info) do sorted_times[#sorted_times + 1] = {chunk_name, time_taken} end table.sort(sorted_times, function(a, b) return a[2] > b[2] end) local results = {} for i, elem in ipairs(sorted_times) do if not threshold or threshold and elem[2] > threshold then results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' end end if threshold then table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)') end _G._packer.profile_output = results end time([[Luarocks path setup]], true) local package_path_str = "/home/amitgold/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/amitgold/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/amitgold/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/amitgold/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" local install_cpath_pattern = "/home/amitgold/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" if not string.find(package.path, package_path_str, 1, true) then package.path = package.path .. ';' .. package_path_str end if not string.find(package.cpath, install_cpath_pattern, 1, true) then package.cpath = package.cpath .. ';' .. install_cpath_pattern end time([[Luarocks path setup]], false) time([[try_loadstring definition]], true) local function try_loadstring(s, component, name) local success, result = pcall(loadstring(s), name, _G.packer_plugins[name]) if not success then vim.schedule(function() vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) end) end return result end time([[try_loadstring definition]], false) time([[Defining packer_plugins]], true) _G.packer_plugins = { CamelCaseMotion = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/CamelCaseMotion", url = "https://github.com/bkad/CamelCaseMotion" }, ["Comment.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/Comment.nvim", url = "https://github.com/numToStr/Comment.nvim" }, ["FixCursorHold.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/FixCursorHold.nvim", url = "https://github.com/antoinemadec/FixCursorHold.nvim" }, LuaSnip = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/LuaSnip", url = "https://github.com/L3MON4D3/LuaSnip" }, ["alpha-nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/alpha-nvim", url = "https://github.com/goolord/alpha-nvim" }, ["bufferline.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/bufferline.nvim", url = "https://github.com/akinsho/bufferline.nvim" }, catppuccin = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/catppuccin", url = "https://github.com/catppuccin/nvim" }, ["cmp-buffer"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-buffer", url = "https://github.com/hrsh7th/cmp-buffer" }, ["cmp-cmdline"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-cmdline", url = "https://github.com/hrsh7th/cmp-cmdline" }, ["cmp-dap"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-dap", url = "https://github.com/rcarriga/cmp-dap" }, ["cmp-nvim-lsp"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp", url = "https://github.com/hrsh7th/cmp-nvim-lsp" }, ["cmp-nvim-lsp-signature-help"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-signature-help", url = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help" }, ["cmp-nvim-lua"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua", url = "https://github.com/hrsh7th/cmp-nvim-lua" }, ["cmp-path"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-path", url = "https://github.com/hrsh7th/cmp-path" }, ["cmp-tabnine"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-tabnine", url = "https://github.com/tzachar/cmp-tabnine" }, cmp_luasnip = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp_luasnip", url = "https://github.com/saadparwaiz1/cmp_luasnip" }, ["cutlass.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/cutlass.nvim", url = "https://github.com/gbprod/cutlass.nvim" }, ["diffview.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/diffview.nvim", url = "https://github.com/sindrets/diffview.nvim" }, ["friendly-snippets"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/friendly-snippets", url = "https://github.com/rafamadriz/friendly-snippets" }, ["gitsigns.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/gitsigns.nvim", url = "https://github.com/lewis6991/gitsigns.nvim" }, ["impatient.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/impatient.nvim", url = "https://github.com/lewis6991/impatient.nvim" }, ["indent-blankline.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim", url = "https://github.com/lukas-reineke/indent-blankline.nvim" }, ["indent-o-matic"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/indent-o-matic", url = "https://github.com/Darazaki/indent-o-matic" }, ["live-command.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/live-command.nvim", url = "https://github.com/smjonas/live-command.nvim" }, ["lualine.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/lualine.nvim", url = "https://github.com/nvim-lualine/lualine.nvim" }, ["mason-lspconfig.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim", url = "https://github.com/williamboman/mason-lspconfig.nvim" }, ["mason.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/mason.nvim", url = "https://github.com/williamboman/mason.nvim" }, neotest = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/neotest", url = "https://github.com/nvim-neotest/neotest" }, ["neotest-jest"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/neotest-jest", url = "https://github.com/haydenmeade/neotest-jest" }, ["neotest-python"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/neotest-python", url = "https://github.com/nvim-neotest/neotest-python" }, ["neotest-vim-test"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/neotest-vim-test", url = "https://github.com/nvim-neotest/neotest-vim-test" }, ["null-ls.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/null-ls.nvim", url = "https://github.com/jose-elias-alvarez/null-ls.nvim" }, ["nvim-autopairs"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-autopairs", url = "https://github.com/windwp/nvim-autopairs" }, ["nvim-cmp"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-cmp", url = "https://github.com/hrsh7th/nvim-cmp" }, ["nvim-colorizer.lua"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua", url = "https://github.com/norcalli/nvim-colorizer.lua" }, ["nvim-dap"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-dap", url = "https://github.com/mfussenegger/nvim-dap" }, ["nvim-dap-python"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-dap-python", url = "https://github.com/mfussenegger/nvim-dap-python" }, ["nvim-dap-ui"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-dap-ui", url = "https://github.com/rcarriga/nvim-dap-ui" }, ["nvim-dap-vscode-js"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-dap-vscode-js", url = "https://github.com/mxsdev/nvim-dap-vscode-js" }, ["nvim-lspconfig"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", url = "https://github.com/neovim/nvim-lspconfig" }, ["nvim-notify"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-notify", url = "https://github.com/rcarriga/nvim-notify" }, ["nvim-spectre"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-spectre", url = "https://github.com/windwp/nvim-spectre" }, ["nvim-surround"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-surround", url = "https://github.com/kylechui/nvim-surround" }, ["nvim-tree.lua"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-tree.lua", url = "https://github.com/kyazdani42/nvim-tree.lua" }, ["nvim-treesitter"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-treesitter", url = "https://github.com/nvim-treesitter/nvim-treesitter" }, ["nvim-treesitter-context"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-treesitter-context", url = "https://github.com/nvim-treesitter/nvim-treesitter-context" }, ["nvim-treesitter-textobjects"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-treesitter-textobjects", url = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects" }, ["nvim-treesitter-textsubjects"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-treesitter-textsubjects", url = "https://github.com/RRethy/nvim-treesitter-textsubjects" }, ["nvim-ts-autotag"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag", url = "https://github.com/windwp/nvim-ts-autotag" }, ["nvim-ts-context-commentstring"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-ts-context-commentstring", url = "https://github.com/JoosepAlviste/nvim-ts-context-commentstring" }, ["nvim-ts-rainbow"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-ts-rainbow", url = "https://github.com/p00f/nvim-ts-rainbow" }, ["nvim-web-devicons"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-web-devicons", url = "https://github.com/kyazdani42/nvim-web-devicons" }, ["packer.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/packer.nvim", url = "https://github.com/wbthomason/packer.nvim" }, ["plenary.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/plenary.nvim", url = "https://github.com/nvim-lua/plenary.nvim" }, ["project.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/project.nvim", url = "https://github.com/ahmedkhalf/project.nvim" }, ["schemastore.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/schemastore.nvim", url = "https://github.com/b0o/schemastore.nvim" }, ["smart-splits.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/smart-splits.nvim", url = "https://github.com/mrjones2014/smart-splits.nvim" }, ["substitute.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/substitute.nvim", url = "https://github.com/gbprod/substitute.nvim" }, ["telescope-fzf-native.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/telescope-fzf-native.nvim", url = "https://github.com/nvim-telescope/telescope-fzf-native.nvim" }, ["telescope.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/telescope.nvim", url = "https://github.com/nvim-telescope/telescope.nvim" }, ["toggleterm.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/toggleterm.nvim", url = "https://github.com/akinsho/toggleterm.nvim" }, ["trouble.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/trouble.nvim", url = "https://github.com/folke/trouble.nvim" }, ["vim-bbye"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-bbye", url = "https://github.com/moll/vim-bbye" }, ["vim-be-good"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-be-good", url = "https://github.com/ThePrimeagen/vim-be-good" }, ["vim-illuminate"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-illuminate", url = "https://github.com/RRethy/vim-illuminate" }, ["vim-indent-object"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-indent-object", url = "https://github.com/michaeljsmith/vim-indent-object" }, ["vim-matchup"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-matchup", url = "https://github.com/andymass/vim-matchup" }, ["vim-repeat"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-repeat", url = "https://github.com/tpope/vim-repeat" }, ["vim-sneak"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-sneak", url = "https://github.com/justinmk/vim-sneak" }, ["vim-test"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-test", url = "https://github.com/vim-test/vim-test" }, ["vim-textobj-entire"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-textobj-entire", url = "https://github.com/kana/vim-textobj-entire" }, ["vim-textobj-user"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-textobj-user", url = "https://github.com/kana/vim-textobj-user" }, ["vscode-js-debug"] = { loaded = false, needs_bufread = false, path = "/home/amitgold/.local/share/nvim/site/pack/packer/opt/vscode-js-debug", url = "https://github.com/microsoft/vscode-js-debug" }, ["which-key.nvim"] = { loaded = true, path = "/home/amitgold/.local/share/nvim/site/pack/packer/start/which-key.nvim", url = "https://github.com/folke/which-key.nvim" } } time([[Defining packer_plugins]], false) _G._packer.inside_compile = false if _G._packer.needs_bufread == true then vim.cmd("doautocmd BufRead") end _G._packer.needs_bufread = false if should_profile then save_profiles() end end) if not no_errors then error_msg = error_msg:gsub('"', '\\"') vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') end ================================================ FILE: .config/sddm-sugar-candy/theme.conf ================================================ [General] Background="Backgrounds/kurz.png" ## Path relative to the theme root directory. Most standard image file formats are allowed including support for transparency. (e.g. background.jpeg/illustration.GIF/Foto.png/undraw.svgz) DimBackgroundImage="0.0" ## Double between 0 and 1 used for the alpha channel of a darkening overlay. Use to darken your background image on the fly. ScaleImageCropped="true" ## Whether the image should be cropped when scaled proportionally. Setting this to false will fit the whole image instead, possibly leaving white space. This can be exploited beautifully with illustrations (try it with "undraw.svg" included in the theme). ScreenWidth="1920" ScreenHeight="1080" ## Adjust to your resolution to help SDDM speed up on calculations ## [Blur Settings] FullBlur="false" PartialBlur="false" ## Enable or disable the blur effect; if HaveFormBackground is set to true then PartialBlur will trigger the BackgroundColor of the form element to be partially transparent and blend with the blur. BlurRadius="80" ## Set the strength of the blur effect. Anything above 100 is pretty strong and might slow down the rendering time. 0 is like setting false for any blur. ## [Design Customizations] HaveFormBackground="true" ## Have a full opacity background color behind the form that takes slightly more than 1/3 of screen estate; if PartialBlur is set to true then HaveFormBackground will trigger the BackgroundColor of the form element to be partially transparent and blend with the blur. FormPosition="left" ## Position of the form which takes roughly 1/3 of screen estate. Can be left, center or right. BackgroundImageHAlignment="center" ## Horizontal position of the background picture relative to its visible area. Applies when ScaleImageCropped is set to false or when HaveFormBackground is set to true and FormPosition is either left or right. Can be left, center or right; defaults to center if none is passed. BackgroundImageVAlignment="center" ## As before but for the vertical position of the background picture relative to its visible area. MainColor="#cdd6f4" ## Used for all elements when not focused/hovered etc. Usually the best effect is achieved by having this be either white or a very dark grey like #444 (not black for smoother antialias) ## Colors can be HEX or Qt names (e.g. red/salmon/blanchedalmond). See https://doc.qt.io/qt-5/qml-color.html AccentColor="#cba6f7" ## Used for elements in focus/hover/pressed. Should be contrasting to the background and the MainColor to achieve the best effect. BackgroundColor="#11111B" ## Used for the user and session selection background as well as for ScreenPadding and FormBackground when either is true. If PartialBlur and FormBackground are both enabled this color will blend with the blur effect. OverrideLoginButtonTextColor="" ## The text of the login button may become difficult to read depending on your color choices. Use this option to set it independently for legibility. InterfaceShadowSize="6" ## Integer used as multiplier. Size of the shadow behind the user and session selection background. Decrease or increase if it looks bad on your background. Initial render can be slow no values above 5-7. InterfaceShadowOpacity="0.6" ## Double between 0 and 1. Alpha channel of the shadow behind the user and session selection background. Decrease or increase if it looks bad on your background. RoundCorners="5" ## Integer in pixels. Radius of the input fields and the login button. Empty for square. Can cause bad antialiasing of the fields. ScreenPadding="0" ## Integer in pixels. Increase or delete this to have a padding of color BackgroundColor all around your screen. This makes your login greeter appear as if it was a canvas. Cool! Font="FiraSans" ## If you want to choose a custom font it will have to be available to the X root user. See https://wiki.archlinux.org/index.php/fonts#Manual_installation FontSize="" ## Only set a fixed value if fonts are way too small for your resolution. Preferrably kept empty. ## [Interface Behavior] ForceRightToLeft="false" ## Revert the layout either because you would like the login to be on the right hand side or SDDM won't respect your language locale for some reason. This will reverse the current position of FormPosition if it is either left or right and in addition position some smaller elements on the right hand side of the form itself (also when FormPosition is set to center). ForceLastUser="true" ## Have the last successfully logged in user appear automatically in the username field. ForcePasswordFocus="true" ## Give automatic focus to the password field. Together with ForceLastUser this makes for the fastest login experience. ForceHideCompletePassword="false" ## If you don't like to see any character at all not even while being entered set this to true. ForceHideVirtualKeyboardButton="false" ## Do not show the button for the virtual keyboard at all. This will completely disable functionality for the virtual keyboard even if it is installed and activated in sddm.conf ForceHideSystemButtons="false" ## Completely disable and hide any power buttons on the greeter. AllowEmptyPassword="false" ## Enable login for users without a password. This is discouraged. Makes the login button always enabled. AllowBadUsernames="false" ## Do not change this! Uppercase letters are generally not allowed in usernames. This option is only for systems that differ from this standard! Also shows username as is instead of capitalized. ## [Locale Settings] Locale="" ## The time and date locale should usually be set in your system settings. Only hard set this if something is not working by default or you want a seperate locale setting in your login screen. HourFormat="HH:mm" ## Defaults to Locale.ShortFormat - Accepts "long" or a custom string like "hh:mm A". See http://doc.qt.io/qt-5/qml-qtqml-date.html DateFormat="dddd, d of MMMM" ## Defaults to Locale.LongFormat - Accepts "short" or a custom string like "dddd, d 'of' MMMM". See http://doc.qt.io/qt-5/qml-qtqml-date.html ## [Translations] HeaderText="Welcome!" ## Header can be empty to not display any greeting at all. Keep it short. ## SDDM may lack proper translation for every element. Suger defaults to SDDM translations. Please help translate SDDM as much as possible for your language: https://github.com/sddm/sddm/wiki/Localization. These are in order as they appear on screen. TranslatePlaceholderUsername="" TranslatePlaceholderPassword="" TranslateShowPassword="" TranslateLogin="" TranslateLoginFailedWarning="" TranslateCapslockWarning="" TranslateSession="" TranslateSuspend="" TranslateHibernate="" TranslateReboot="" TranslateShutdown="" TranslateVirtualKeyboardButton="" ## These don't necessarily need to translate anything. You can enter whatever you want here. ================================================ FILE: .config/spicetify/Extensions/catppuccin-mocha.js ================================================ // Color map let colorPalette = { rosewater: "#f5e0dc", flamingo: "#f2cdcd", pink: "#f5c2e7", maroon: "#eba0ac", red: "#f38ba8", peach: "#fab387", yellow: "#f9e2af", green: "#a6e3a1", teal: "#94e2d5", blue: "#89b4fa", sky: "#89dceb", lavender: "#b4befe", white: "#d9e0ee" } // waitForElement borrowed from: // https://github.com/morpheusthewhite/spicetify-themes/blob/master/Dribbblish/dribbblish.js function waitForElement(els, func, timeout = 100) { const queries = els.map(el => document.querySelector(el)); if (queries.every(a => a)) { func(queries); } else if (timeout > 0) { setTimeout(waitForElement, 300, els, func, --timeout); } } // Return the color label for a given hex color value function getKeyByValue(object, value) { return Object.keys(object).find(key => object[key] === value.trim()); } // Used to select matching equalizer-animated-COLOR.gif waitForElement([".Root"], (root) => { let spiceEq = getComputedStyle(document.querySelector(":root")).getPropertyValue("--spice-equalizer"); let eqColor = getKeyByValue(colorPalette, spiceEq); root[0].classList.add(`catppuccin-eq-${eqColor}`); }); ================================================ FILE: .config/spicetify/Themes/catppuccin-mocha/assets/.gitkeep ================================================ ================================================ FILE: .config/spicetify/Themes/catppuccin-mocha/color.ini ================================================ [rosewater] text = F5E0DC subtext = CDD6F4 accent = FAE3B0 main = 1E1E2E sidebar = 181825 player = 11111B card = 414559 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6C7086 tab-active = 313244 notification = 313244 notification-error = F38BA8 equalizer = F5E0DC misc = 585B70 [flamingo] text = F2CDCD subtext = CDD6F4 main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = F2CDCD misc = 585B70 [mauve] text = CBA6F7 subtext = CDD6F4 main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = CBA6F7 misc = 585B70 [pink] text = F5C2E7 subtext = CDD6F4 main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = F5C2E7 misc = 585B70 [maroon] text = EBA0AC subtext = CDD6F4 main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = EBA0AC misc = 585B70 [red] text = F38BA8 subtext = CDD6F4 main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = F38BA8 misc = 585B70 [peach] text = FAB387 subtext = CDD6F4 main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = FAB387 misc = 585B70 [yellow] text = F9E2AF subtext = CDD6F4 main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = F9E2AF misc = 585B70 [green] text = A6E3A1 subtext = CDD6F4 main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = A6E3A1 misc = 585B70 [teal] text = 94E2D5 subtext = CDD6F4 main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = 94E2D5 misc = 585B70 [blue] text = 89B4FA subtext = CDD6F4 main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = 89B4FA misc = 585B70 [sky] text = 89DCEB subtext = CDD6F4 main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = 89DCEB misc = 585B70 [lavender] text = B4BEFE subtext = BAC2DE main = 1E1E2E sidebar = 181825 player = 11111B card = 313244 shadow = 181825 selected-row = 585B70 button = 7F849C button-active = 9399B2 button-disabled = 6E6C7E tab-active = 313244 notification = 313244 notification-error = F28FAD equalizer = B4BEFE misc = 585B70 ================================================ FILE: .config/spicetify/Themes/catppuccin-mocha/user.css ================================================ /* Color Pallette */ /* Note: These variables should be used ONLY when needed across ALL of the color palettes. */ :root { /* Morning */ --flamingo: #f2cdcd; --mauve: #cba6f7; --pink: #f5c2e7; --maroon: #eba0ac; --red: #f38ba8; --peach: #fab387; --yellow: #f9e2af; --green: #a6e3a1; --teal: #94e2d5; --blue: #89b4fa; --sky: #89dceb; /* Night */ /* --black-0: #161320; */ --crust: #11111B; /* --black-1: #1A1826; */ --mantle: #181825; /* --black-2: #1E1E2E; */ --base: #1E1E2E; /* --black-3: #302D41; */ --surface0: #313244; /* --black-4: #575268; */ --surface1: #45475A; /* --gray-0: #6E6C7E; */ --overlay0: #6C7086; /* --gray-1: #988BA2; */ ---overlay1: #7f849C; /* --gray-2: #C3BAC6; */ --overlay2: #9399B2; /* --white: #D9E0EE; */ --white: #d9e0ee; --lavender: #b4befe; --rosewater: #f5e0dc; } /* Buttons */ .main-playButton-PlayButton.main-playButton-primary { color: var(--spice-player); } .main-button-primary { background-color: var(--spice-main); } .main-button-primary:active, .main-button-primary:focus, .main-button-primary:hover { background-color: var(--spice-sidebar); } .main-view-container button:hover > div[class^='ButtonInner-sc-'] { background-color: var(--spice-button); } .control-button-heart[aria-checked="true"], .main-addButton-active, .main-addButton-active:focus, .main-addButton-active:hover { color: var(--red); } .main-addButton-active:hover { -webkit-transform: scale(1.06); transform: scale(1.06); } /* Progress bar */ .x-progressBar-progressBarBg > div > div { background-color: var(--spice-text); } /* Top bars */ .main-entityHeader-backgroundColor, .main-actionBarBackground-background, .main-view-container main[aria-label="Spotify – Web Player"] > div:first-child { display: none; } .main-topBar-background { background-color: var(--spice-main) !important; } .main-entityHeader-withBackgroundImage { background-color: rgba(var(--spice-rgb-player), 0.2); } /* Sidebar */ .main-navBar-navBar li:hover > div, .main-navBar-navBar li:hover > a:not(.main-navBar-navBarLinkActive), .spicetify-playlist-list li:hover { background-color: var(--spice-main); } #spicetify-sticky-list li:hover > div { border-radius: 4px; } /* Scrollbar */ .os-theme-spotify > .os-scrollbar-horizontal, .os-theme-spotify > .os-scrollbar-vertical { padding: 4px; } .os-theme-spotify.os-host-transition > .os-scrollbar-horizontal > .os-scrollbar-track > .os-scrollbar-handle, .os-theme-spotify.os-host-transition > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle { background-color: var(--decorative-base); border-radius: 6px; } ::-webkit-scrollbar { width: 0.5em; } ::-webkit-scrollbar-thumb { background-color: #575268; border-radius: 4px; } /* Home */ .main-home-homeHeader { display: none; } .main-home-content > section:first-child > .main-gridContainer-gridContainer > div { background-color: var(--spice-card); } .main-home-content > section:first-child > .main-gridContainer-gridContainer > div:hover { background-color: var(--spice-misc); } .main-gridContainer-gridContainer > div, .main-gridContainer-gridContainer > div > div > div { border-radius: 6px; } /* Cards */ .main-card-card { border-radius: 6px; } .main-card-imageContainer { margin: -16px -16px 16px -16px; } .main-cardImage-imageWrapper, .main-cardImage-image { border-radius: 6px 6px 0 0; } /* Settings */ input:checked~.x-toggle-indicatorWrapper { background-color: var(---overlay1); } input:hover:not([disabled]):not(:active)~.x-toggle-indicatorWrapper { background-color: var(--spice-button-active); } select option:checked { color: var(--spice-text); font-weight: bold; } /* Animated equalizer */ /* EQ color classes are specified here in case the js extension is not moved over * The default green eq will be used in this case */ .catppuccin-eq-rosewater .main-trackList-playingIcon, .catppuccin-eq-flamingo .main-trackList-playingIcon, .catppuccin-eq-mauve .main-trackList-playingIcon, .catppuccin-eq-pink .main-trackList-playingIcon, .catppuccin-eq-maroon .main-trackList-playingIcon, .catppuccin-eq-red .main-trackList-playingIcon, .catppuccin-eq-peach .main-trackList-playingIcon, .catppuccin-eq-yellow .main-trackList-playingIcon, .catppuccin-eq-green .main-trackList-playingIcon, .catppuccin-eq-teal .main-trackList-playingIcon, .catppuccin-eq-blue .main-trackList-playingIcon, .catppuccin-eq-sky .main-trackList-playingIcon, .catppuccin-eq-lavender .main-trackList-playingIcon, .catppuccin-eq-white .main-trackList-playingIcon { background-size: cover; padding-left: 100%; } .catppuccin-eq-rosewater .main-trackList-playingIcon { background-image: url("equalizer-animated-rosewater.gif"); } .catppuccin-eq-flamingo .main-trackList-playingIcon { background-image: url("equalizer-animated-flamingo.gif"); } .catppuccin-eq-mauve .main-trackList-playingIcon { background-image: url("equalizer-animated-mauve.gif"); } .catppuccin-eq-pink .main-trackList-playingIcon { background-image: url("equalizer-animated-pink.gif"); } .catppuccin-eq-maroon .main-trackList-playingIcon { background-image: url("equalizer-animated-maroon.gif"); } .catppuccin-eq-red .main-trackList-playingIcon { background-image: url("equalizer-animated-red.gif"); } .catppuccin-eq-peach .main-trackList-playingIcon { background-image: url("equalizer-animated-peach.gif"); } .catppuccin-eq-yellow .main-trackList-playingIcon { background-image: url("equalizer-animated-yellow.gif"); } .catppuccin-eq-green .main-trackList-playingIcon { background-image: url("equalizer-animated-green.gif"); } .catppuccin-eq-teal .main-trackList-playingIcon { background-image: url("equalizer-animated-teal.gif"); } .catppuccin-eq-blue .main-trackList-playingIcon { background-image: url("equalizer-animated-blue.gif"); } .catppuccin-eq-sky .main-trackList-playingIcon { background-image: url("equalizer-animated-sky.gif"); } .catppuccin-eq-lavender .main-trackList-playingIcon { background-image: url("equalizer-animated-lavender.gif"); } .catppuccin-eq-lavender .main-trackList-playingIcon { background-image: url("equalizer-animated-white.gif"); } /* For that small dot on podcasts that notify us of new episodes */ .main-home-content > section:first-child > .main-gridContainer-gridContainer > div span[aria-label], span[aria-label="New episode"], span[aria-label="New Podcast Episode"] { background: var(--spice-accent, var(--spice-text)); } /* Modals */ .GenericModal[aria-label="Already added"] > div { background-color: var(--spice-card); color: var(--spice-subtext); } .GenericModal[aria-label="Already added"] button:first-child { color: var(--spice-button-active); } .GenericModal[aria-label="Already added"] button:first-child:hover { color: var(--spice-notification-error); } .GenericModal[aria-label="Already added"] button:last-child:hover > div { background-color: var(--spice-button); } ================================================ FILE: .config/waybar/config.jsonc ================================================ { "layer": "top", "position": "top", "height": 0, "modules-left": ["clock", "wlr/workspaces"], "modules-center": ["hyprland/window"], "modules-right": [ "tray", "custom/caffeine", "custom/updates", "custom/language", "network", "backlight", "pulseaudio", "battery" ], "hyprland/window": { "format": "{}" }, "wlr/workspaces": { "disable-scroll": true, "all-outputs": true, "on-click": "activate", //"format": "{icon}", "persistent_workspaces": { "1": [], "2": [], "3": [], "4": [], "5": [], "6": [], "7": [], "8": [], "9": [], "10": [] } }, "custom/caffeine": { "exec": "~/.config/waybar/scripts/caffeine.sh", "return-type": "json", "interval": 3, "format-icons": ["﯈", ""], "format": "{icon}" }, "custom/updates": { "exec": "(checkupdates ; paru -Qua) | wc -l", "interval": 7200, "format": " {}" }, "custom/language": { "exec": "cat /tmp/kb_layout", "interval": 3, "format": " {}" }, "tray": { "icon-size": 13, "spacing": 10 }, "backlight": { "device": "intel_backlight", "format": "{icon} {percent}%", "format-icons": ["", "", ""], "on-scroll-up": "brightnessctl set 1%+", "on-scroll-down": "brightnessctl set 1%-", "min-length": 6 }, "battery": { "states": { "good": 95, "warning": 30, "critical": 20 }, "format": "{icon} {capacity}%", "format-charging": " {capacity}%", "format-plugged": " {capacity}%", "format-alt": "{time} {icon}", "format-icons": ["", "", "", "", "", "", "", "", "", "", ""] }, "clock": { "format": "{: %R  %d/%m}", "tooltip-format": "{:%Y %B}\n{calendar}" }, "network": { "format-wifi": "直 {essid}", "format-ethernet": " {essid}", "format-linked": "{ifname} (No IP) ", "format-disconnected": "睊 Disconnected", "tooltip-format-wifi": "Signal Strenght: {signalStrength}% | Down Speed: {bandwidthDownBits}, Up Speed: {bandwidthUpBits}", "on-click": "wofi-wifi-menu" }, "pulseaudio": { "format": "{icon} {volume}%", "format-muted": "ﱝ Muted", "on-click": "/home/amitgold/.config/hypr/scripts/volume_ctl.sh mute", "scroll-step": 1, "format-icons": { "headphone": "", "hands-free": "", "headset": "", "phone": "", "portable": "", "car": "", "default": ["", "", "墳", ""] } } } ================================================ FILE: .config/waybar/scripts/caffeine.sh ================================================ #!/bin/sh if pgrep -x sleep.sh > /dev/null; then echo '{ "percentage": 0 }' else echo '{ "percentage": 100 }' fi ================================================ FILE: .config/waybar/style.css ================================================ * { border: none; border-radius: 0; font-family: monospace; font-weight: bold; font-size: 14px; min-height: 0; } window#waybar { background: rgba(21, 18, 27, 0); color: #cdd6f4; } tooltip { background: #1e1e2e; border-radius: 10px; border-width: 2px; border-style: solid; border-color: #11111b; } #workspaces button { padding: 5px; color: #313244; margin-right: 5px; } #workspaces button.active { color: #a6adc8; } #workspaces button.focused { color: #a6adc8; background: #eba0ac; border-radius: 10px; } #workspaces button.urgent { color: #11111b; background: #a6e3a1; border-radius: 10px; } #workspaces button:hover { background: #11111b; color: #cdd6f4; border-radius: 10px; } #custom-language, #custom-updates, #custom-caffeine, #window, #clock, #battery, #pulseaudio, #network, #workspaces, #tray, #backlight { background: #1e1e2e; padding: 0px 10px; margin: 3px 0px; margin-top: 10px; border: 1px solid #181825; } #tray { border-radius: 10px; margin-right: 10px; } #workspaces { background: #1e1e2e; border-radius: 10px; margin-left: 10px; padding-right: 0px; padding-left: 5px; } #custom-caffeine { color: #89dceb; border-radius: 10px 0px 0px 10px; border-right: 0px; margin-left: 10px; } #custom-language { color: #f38ba8; border-left: 0px; border-right: 0px; } #custom-updates { color: #f5c2e7; border-left: 0px; border-right: 0px; } #window { border-radius: 10px; margin-left: 60px; margin-right: 60px; } #clock { color: #f9e2af; border-radius: 10px; margin-left: 10px; } #network { color: #fab387; border-left: 0px; border-right: 0px; } #pulseaudio { color: #89b4fa; border-left: 0px; border-right: 0px; } #battery { color: #a6e3a1; border-radius: 0 10px 10px 0; margin-right: 10px; border-left: 0px; } #backlight { color: #cba6f7; border-left: 0px; border-right: 0px; } ================================================ FILE: .config/wlogout/layout ================================================ { "label" : "lock", "action" : "~/.config/hypr/scripts/lock.sh", "text" : "Lock", "keybind" : "l" } { "label" : "reboot", "action" : "systemctl reboot", "text" : "Reboot", "keybind" : "r" } { "label" : "shutdown", "action" : "systemctl poweroff", "text" : "Shutdown", "keybind" : "s" } { "label" : "logout", "action" : "hyprctl dispatch exit 0", "text" : "Logout", "keybind" : "e" } { "label" : "suspend", "action" : "systemctl suspend", "text" : "Suspend", "keybind" : "u" } ================================================ FILE: .config/wlogout/style.css ================================================ window { font-family: monospace; font-size: 14pt; color: #cdd6f4; /* text */ background-color: rgba(30, 30, 46, 0.5); } button { background-repeat: no-repeat; background-position: center; background-size: 25%; border: none; background-color: rgba(30, 30, 46, 0); margin: 5px; transition: box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out; } button:hover { background-color: rgba(49, 50, 68, 0.1); } button:focus { background-color: #cba6f7; color: #1e1e2e; } #lock { background-image: image(url("./lock.png")); } #lock:focus { background-image: image(url("./lock-hover.png")); } #logout { background-image: image(url("./logout.png")); } #logout:focus { background-image: image(url("./logout-hover.png")); } #suspend { background-image: image(url("./sleep.png")); } #suspend:focus { background-image: image(url("./sleep-hover.png")); } #shutdown { background-image: image(url("./power.png")); } #shutdown:focus { background-image: image(url("./power-hover.png")); } #reboot { background-image: image(url("./restart.png")); } #reboot:focus { background-image: image(url("./restart-hover.png")); } ================================================ FILE: .config/wofi/config ================================================ width=800 height=400 location=center show=drun prompt=Search... filter_rate=100 allow_markup=true no_actions=true halign=fill orientation=vertical content_halign=fill insensitive=true allow_images=true image_size=28 gtk_dark=true ================================================ FILE: .config/wofi/style.css ================================================ @define-color clear rgba(0, 0, 0, 0.0); @define-color primary rgba(0, 0, 0, 0.75); window { margin: 2px; border: 2px solid; border-color: #313244; background-color: #1e1e2e; border-radius: 10px; font-family: monospace; font-size: 14px; } #input { padding: 2px; margin: 4px; margin-bottom: 8px; border: none; color: @foreground; background-color: #313244; outline: none; } #inner-box { margin: 2px; border: 0px solid; background-color: @clear; border-radius: 8px; } #outer-box { margin: 5px; border: none; border-radius: 8px; background-color: @clear; } #scroll { margin: 0px; border: none; } #text:selected { color: @foreground; margin: 0px 0px; border: none; border-radius: 8px; } #entry { margin: 0px 0px; border: none; border-radius: 0px; background-color: transparent; } #entry:selected { margin: 0px 0px; border: none; border-radius: 8px; background-color: #585b70; } ================================================ FILE: .config/wofi/wifi ================================================ # Config for wofi-wifi-menu # position values: # 1 2 3 # 8 0 4 # 7 6 5 POSITION=3 #y-offset YOFF=10 #x-offset XOFF=-65 #fields to be displayed FIELDS=SSID,IN-USE,BARS,SECURITY ================================================ FILE: .config/xfce4/helpers.rc ================================================ TerminalEmulator=kitty TerminalEmulatorDismissed=true ================================================ FILE: .config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml ================================================ ================================================ FILE: .config/zsh/catppuccin-tty.sh ================================================ #!/usr/bin/env bash if [ "$TERM" = "linux" ]; then printf %b '\e]P011111B' # set background color to "Base" printf %b '\e]P8585B70' # set bright black to "Surface2" printf %b '\e]P7BAC2DE' # set text color to "Text" printf %b '\e]PFA6ADC8' # set bright white to "Subtext0" printf %b '\e]P1F38BA8' # set red to "Red" printf %b '\e]P9F38BA8' # set bright red to "Red" printf %b '\e]P2A6E3A1' # set green to "Green" printf %b '\e]PAA6E3A1' # set bright green to "Green" printf %b '\e]P3F9E2AF' # set yellow to "Yellow" printf %b '\e]PBF9E2AF' # set bright yellow to "Yellow" printf %b '\e]P489B4FA' # set blue to "Blue" printf %b '\e]PC89B4FA' # set bright blue to "Blue" printf %b '\e]P5F5C2E7' # set magenta to "Pink" printf %b '\e]PDF5C2E7' # set bright magenta to "Pink" printf %b '\e]P694E2D5' # set cyan to "Teal" printf %b '\e]PE94E2D5' # set bright cyan to "Teal" clear fi ================================================ FILE: .gitconfig ================================================ [user] email = amit.wifi@gmail.com name = Amit Goldenberg ================================================ FILE: .gtkrc-2.0 ================================================ # DO NOT EDIT! This file will be overwritten by LXAppearance. # Any customization should be done in ~/.gtkrc-2.0.mine instead. include "/home/amitgold/.gtkrc-2.0.mine" gtk-theme-name="Catppuccin-Mocha-Mauve" gtk-icon-theme-name="Papirus-Dark" gtk-font-name="Cantarell 11" gtk-cursor-theme-name="Catppuccin-Cursor" gtk-cursor-theme-size=0 gtk-toolbar-style=GTK_TOOLBAR_BOTH gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-button-images=1 gtk-menu-images=1 gtk-enable-event-sounds=1 gtk-enable-input-feedback-sounds=1 gtk-xft-antialias=1 gtk-xft-hinting=1 gtk-xft-hintstyle="hintfull" ================================================ FILE: .icons/Catppuccin-Cursor/index.theme ================================================ [Icon Theme] Name="Simp1e-Catppuccin" ================================================ FILE: .icons/default/index.theme ================================================ # This file is written by LXAppearance. Do not edit. [Icon Theme] Name=Default Comment=Default Cursor Theme Inherits=Catppuccin-Cursor ================================================ FILE: .lessfilter ================================================ #! /usr/bin/env sh # this is a example of .lessfilter, you can change it mime=$(file -bL --mime-type "$1") category=${mime%%/*} kind=${mime##*/} if [ -d "$1" ]; then exa --git -hl --color=always --icons "$1" # elif [ "$category" = image ]; then # kitty +kitten icat --place 30x30@0x0 --silent --transfer-mode file "$1" # elif [ "$kind" = vnd.openxmlformats-officedocument.spreadsheetml.sheet ] || \ # [ "$kind" = vnd.ms-excel ]; then # in2csv "$1" | xsv table | bat -ltsv --color=always elif [ "$category" = text ]; then bat --color=always "$1" else # lesspipe.sh "$1" | bat --color=always echo "Can't preview file" fi # lesspipe.sh don't use exa, bat and chafa, it use ls and exiftool. so we create a lessfilter. ================================================ FILE: .local/bin/nvim_kitty ================================================ #!/bin/env sh if [[ $TERM == 'xterm-kitty' ]]; then kitty @ set-spacing padding=0 nvim "$@" kitty @ set-spacing padding=default else nvim "$@" fi ================================================ FILE: .local/bin/spotify-adblock ================================================ #!/bin/sh LD_PRELOAD=/usr/lib/spotify-adblock.so spotify ================================================ FILE: .local/bin/wrappedhl ================================================ #!/bin/sh cd ~ export _JAVA_AWT_WM_NONREPARENTING=1 export XCURSOR_SIZE=24 export LIBVA_DRIVER_NAME=nvidia export XDG_SESSION_TYPE=wayland export GBM_BACKEND=nvidia-drm export __GLX_VENDOR_LIBRARY_NAME=nvidia export WLR_NO_HARDWARE_CURSORS=1 exec Hyprland ================================================ FILE: .local/share/applications/discord.desktop ================================================ [Desktop Entry] Name=Discord StartupWMClass=discord Comment=All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone. GenericName=Internet Messenger Exec=/usr/bin/discocss Icon=discord Type=Application Categories=Network;InstantMessaging; Path=/usr/bin Path=/usr/bin ================================================ FILE: .local/share/applications/nvim.desktop ================================================ [Desktop Entry] Name=Neovim GenericName=Text Editor GenericName[de]=Texteditor GenericName[fr]=Éditeur de texte GenericName[ru]=Текстовый редактор GenericName[sr]=Едитор текст GenericName[tr]=Metin Düzenleyici Comment=Edit text files Comment[af]=Redigeer tekslêers Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ Comment[ar]=حرّر ملفات نصية Comment[az]=Mətn fayllarını redaktə edin Comment[be]=Рэдагаваньне тэкставых файлаў Comment[bg]=Редактиране на текстови файлове Comment[bn]=টেক্স্ট ফাইল এডিট করুন Comment[bs]=Izmijeni tekstualne datoteke Comment[ca]=Edita fitxers de text Comment[cs]=Úprava textových souborů Comment[cy]=Golygu ffeiliau testun Comment[da]=Redigér tekstfiler Comment[de]=Textdateien bearbeiten Comment[el]=Επεξεργασία αρχείων κειμένου Comment[en_CA]=Edit text files Comment[en_GB]=Edit text files Comment[es]=Edita archivos de texto Comment[et]=Redigeeri tekstifaile Comment[eu]=Editatu testu-fitxategiak Comment[fa]=ویرایش پرونده‌های متنی Comment[fi]=Muokkaa tekstitiedostoja Comment[fr]=Éditer des fichiers texte Comment[ga]=Eagar comhad Téacs Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો Comment[he]=ערוך קבצי טקסט Comment[hi]=पाठ फ़ाइलें संपादित करें Comment[hr]=Uređivanje tekstualne datoteke Comment[hu]=Szövegfájlok szerkesztése Comment[id]=Edit file teks Comment[it]=Modifica file di testo Comment[ja]=テキストファイルを編集します Comment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು Comment[ko]=텍스트 파일을 편집합니다 Comment[lt]=Redaguoti tekstines bylas Comment[lv]=Rediģēt teksta failus Comment[mk]=Уреди текстуални фајлови Comment[ml]=വാചക രചനകള് തിരുത്തുക Comment[mn]=Текст файл боловсруулах Comment[mr]=गद्य फाइल संपादित करा Comment[ms]=Edit fail teks Comment[nb]=Rediger tekstfiler Comment[ne]=पाठ फाइललाई संशोधन गर्नुहोस् Comment[nl]=Tekstbestanden bewerken Comment[nn]=Rediger tekstfiler Comment[no]=Rediger tekstfiler Comment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ Comment[pl]=Edytor plików tekstowych Comment[pt]=Editar ficheiros de texto Comment[pt_BR]=Edite arquivos de texto Comment[ro]=Editare fişiere text Comment[ru]=Редактирование текстовых файлов Comment[sk]=Úprava textových súborov Comment[sl]=Urejanje datotek z besedili Comment[sq]=Përpuno files teksti Comment[sr]=Уређујте текст фајлове Comment[sr@Latn]=Izmeni tekstualne datoteke Comment[sv]=Redigera textfiler Comment[ta]=உரை கோப்புகளை தொகுக்கவும் Comment[th]=แก้ไขแฟ้มข้อความ Comment[tk]=Metin faýllary editle Comment[tr]=Metin dosyaları düzenleyin Comment[uk]=Редактор текстових файлів Comment[vi]=Soạn thảo tập tin văn bản Comment[wa]=Asspougnî des fitchîs tecses Comment[zh_CN]=编辑文本文件 Comment[zh_TW]=編輯文字檔 TryExec=nvim Exec=kitty sh -c "nvim %F" Terminal=false Type=Application Keywords=Text;editor; Keywords[fr]=Texte;éditeur; Keywords[ru]=текст;текстовый редактор; Keywords[sr]=Текст;едитор; Keywords[tr]=Metin;düzenleyici; Icon=nvim Categories=Utility;TextEditor; StartupNotify=false MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; ================================================ FILE: .local/share/applications/spotify.desktop ================================================ [Desktop Entry] Type=Application Name=Spotify GenericName=Music Player Icon=spotify-client TryExec=spotify Exec=env LD_PRELOAD=/usr/lib/spotify-adblock.so spotify %U Terminal=false MimeType=x-scheme-handler/spotify; Categories=Audio;Music;Player;AudioVideo; StartupWMClass=spotify ================================================ FILE: .p10k-tty.zsh ================================================ # Generated by Powerlevel10k configuration wizard on 2022-08-22 at 14:16 IDT. # Based on romkatv/powerlevel10k/config/p10k-lean-8colors.zsh, checksum 16080. # Wizard options: ascii, lean_8colors, 24h time, 2 lines, dotted, white-ornaments, # compact, concise, transient_prompt, instant_prompt=verbose. # Type `p10k configure` to generate another config. # # Config for Powerlevel10k with 8-color lean prompt style. 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. autoload -Uz is-at-least && is-at-least 5.1 || return # The list of segments shown on the left. Fill it with the most important segments. typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( # =========================[ Line #1 ]========================= # os_icon # os identifier dir # current directory vcs # git status # =========================[ Line #2 ]========================= newline # \n prompt_char # prompt symbol ) # The list of segments shown on the right. Fill it with less important segments. # Right prompt on the last prompt line (where you are typing your commands) gets # automatically hidden when the input line reaches it. Right prompt above the # last prompt line gets hidden if it would overlap with left prompt. typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( # =========================[ Line #1 ]========================= status # exit code of the last command command_execution_time # duration of the last command background_jobs # presence of background jobs direnv # direnv status (https://direnv.net/) asdf # asdf version manager (https://github.com/asdf-vm/asdf) virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) anaconda # conda environment (https://conda.io/) pyenv # python environment (https://github.com/pyenv/pyenv) goenv # go environment (https://github.com/syndbg/goenv) nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) # node_version # node.js version # go_version # go version (https://golang.org) # rust_version # rustc version (https://www.rust-lang.org) # dotnet_version # .NET version (https://dotnet.microsoft.com) # php_version # php version (https://www.php.net/) # laravel_version # laravel php framework version (https://laravel.com/) # java_version # java version (https://www.java.com/) # package # name@version from package.json (https://docs.npmjs.com/files/package.json) rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) rvm # ruby version from rvm (https://rvm.io) fvm # flutter version management (https://github.com/leoafarias/fvm) luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) jenv # java version from jenv (https://github.com/jenv/jenv) plenv # perl version from plenv (https://github.com/tokuhirom/plenv) 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) 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) # 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/) time # current time # =========================[ Line #2 ]========================= newline # \n # 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=ascii # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added. typeset -g POWERLEVEL9K_ICON_PADDING=none # Basic style options that define the overall look of your prompt. You probably don't want to # change them. typeset -g POWERLEVEL9K_BACKGROUND= # transparent background typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol # 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=true # Add an empty line before each prompt. typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false # Connect left prompt lines with these symbols. typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX= typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX= typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX= # Connect right prompt lines with these symbols. typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX= typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX= typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX= # 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= # Ruler, a.k.a. the horizontal line before each prompt. If you set it to true, you'll # probably want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false above and # POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' below. typeset -g POWERLEVEL9K_SHOW_RULER=false typeset -g POWERLEVEL9K_RULER_CHAR='-' # reasonable alternative: '·' typeset -g POWERLEVEL9K_RULER_FOREGROUND=7 # Filler between left and right prompt on the first prompt line. You can set it to '·' or '-' # to make it easier to see the alignment between left and right prompt and to separate prompt # from command output. It serves the same purpose as ruler (see above) without increasing # the number of prompt lines. You'll probably want to set POWERLEVEL9K_SHOW_RULER=false # if using this. You might also like POWERLEVEL9K_PROMPT_ADD_NEWLINE=false for more compact # prompt. typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR='.' if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then # The color of the filler. typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=7 # Add a space between the end of left prompt and the filler. typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=' ' # Add a space between the filler and the start of right prompt. typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL=' ' # 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 #################################[ os_icon: os identifier ]################################## # OS identifier color. typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND= # Custom icon. # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐' ################################[ prompt_char: prompt symbol ]################################ # Green prompt symbol if the last command succeeded. typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=2 # Red prompt symbol if the last command failed. typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=1 # 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= ##################################[ dir: current directory ]################################## # Default current directory color. typeset -g POWERLEVEL9K_DIR_FOREGROUND=4 # 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=4 # Color of the anchor directory segments. Anchor segments are never shortened. The first # segment is always an anchor. typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=4 # Set to true to display anchor directory segments in bold. typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=false # 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 directories. See POWERLEVEL9K_LOCK_ICON and # POWERLEVEL9K_DIR_CLASSES below. typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v2 # 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_FOREGROUND=4 # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=4 # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=4 # # # Styling for WORK_NOT_WRITABLE. # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐' # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=4 # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=4 # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=4# # # Styling for WORK_NON_EXISTENT. # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐' # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=4 # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=4 # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=4 # # 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='%fin ' #####################################[ vcs: git status ]###################################### # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon. typeset -g POWERLEVEL9K_VCS_BRANCH_ICON= # 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 if (( $1 )); then # Styling for up-to-date Git status. local meta='%f' # default foreground local clean='%2F' # green foreground local modified='%3F' # yellow foreground local untracked='%4F' # blue foreground local conflicted='%1F' # red foreground else # Styling for incomplete and stale Git status. local meta='%f' # default foreground local clean='%f' # default foreground local modified='%f' # default foreground local untracked='%f' # default foreground local conflicted='%f' # default foreground fi 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 # <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}" # <-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(1)))+${my_git_format}}' typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}' # Enable counters for staged, unstaged, etc. typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 # Icon color. typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=2 typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR= # Custom icon. typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION= # Custom prefix. # typeset -g POWERLEVEL9K_VCS_PREFIX='%fon ' # 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 reposotiry. typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) # These settings are used for repositories other than Git or when gitstatusd fails and # Powerlevel10k has to fall back to using vcs_info. typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=2 typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=2 typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=3 ##########################[ 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=false typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2 typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='ok' # 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_FOREGROUND=2 typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='ok' # 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=false typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=1 typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='err' # Status when the last command was terminated by a signal. typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=1 # 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= # 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_FOREGROUND=1 typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='err' ###################[ command_execution_time: duration of the last command ]################### # 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 # Execution time color. typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=3 # 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='%ftook ' #######################[ background_jobs: presence of background jobs ]####################### # Don't show the number of background jobs. typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false # Background jobs color. typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=1 # Custom icon. # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐' #######################[ direnv: direnv status (https://direnv.net/) ]######################## # Direnv color. typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=3 # 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 this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND. typeset -g POWERLEVEL9K_ASDF_FOREGROUND=6 # 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=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=6 # 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=6 # 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=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=4 # 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=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=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=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=4 # 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=6 # 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=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=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=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=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=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=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=6 # 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 # 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=3 # Custom icon. # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]################## # xplr shell color. typeset -g POWERLEVEL9K_XPLR_FOREGROUND=3 # 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=3 # 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 # 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=4 # 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='⭐' ##################################[ disk_usage: disk usage ]################################## # Colors for different levels of disk usage. typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=2 typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=3 typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=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='⭐' ######################################[ ram: free RAM ]####################################### # RAM color. typeset -g POWERLEVEL9K_RAM_FOREGROUND=2 # Custom icon. # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐' #####################################[ swap: used swap ]###################################### # Swap color. typeset -g POWERLEVEL9K_SWAP_FOREGROUND=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=2 # Load color when load is between 50% and 70%. typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=3 # Load color when load is over 70%. typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=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=4 # 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=4 # 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=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='⭐' ##################################[ context: user@hostname ]################################## # Context color when running with privileges. typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1 # Context color in SSH without privileges. typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=7 # Default context color (no privileges, no SSH). typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=7 # Context format when running with privileges: bold user@hostname. typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%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='%fwith ' ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]### # Python virtual environment color. typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=6 # 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=6 # 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=6 # 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=6 # 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 # 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=2 # 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 # 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=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=6 # 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=4 # 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=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=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 # Custom icon. # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' ####################[ java_version: java version (https://www.java.com/) ]#################### # Java version color. typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=4 # 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=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='⭐' #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]############## # Rbenv color. typeset -g POWERLEVEL9K_RBENV_FOREGROUND=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='⭐' #######################[ rvm: ruby version from rvm (https://rvm.io) ]######################## # Rvm color. typeset -g POWERLEVEL9K_RVM_FOREGROUND=1 # 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=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=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=4 # 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=6 # 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='⭐' ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############ # PHP color. typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=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=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=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='⭐' #############[ 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' # 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=3 # 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=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='%fat ' ################[ 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_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_VISUAL_IDENTIFIER_EXPANSION='⭐' #############[ terraform_version: terraform version (https://www.terraform.io) ]############## # Terraform version color. typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=4 # Custom icon. # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' #[ 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=2 # 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=3 # 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 # 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' # Azure account name color. typeset -g POWERLEVEL9K_AZURE_FOREGROUND=4 # Custom icon. # typeset -g POWERLEVEL9K_AZURE_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=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=3 # 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=5 # 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=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='%fin ' ###############################[ public_ip: public IP address ]############################### # Public IP color. typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=6 # 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=3 # 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]*' # 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_FOREGROUND=4 # 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_IP${P9K_IP_RX_RATE:+ %2F<$P9K_IP_RX_RATE}${P9K_IP_TX_RATE:+ %3F>$P9K_IP_TX_RATE}' # 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=2 # 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=('battery') # Don't show the remaining time to charge/discharge. typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false #####################################[ wifi: wifi speed ]##################################### # WiFi color. typeset -g POWERLEVEL9K_WIFI_FOREGROUND=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=(4 4 4 4 4) # <-- 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=6 # 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='%fat ' # 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 green text greeting the user. # # Type `p10k help segment` for documentation and a more sophisticated example. function prompt_example() { p10k segment -f 2 -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=208 # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐' # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt # when accepting a command line. Supported values: # # - off: Don't change prompt when accepting a command line. # - always: Trim down prompt when accepting a command line. # - same-dir: Trim down prompt when accepting a command line unless this is the first command # typed after changing current working directory. typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always # Instant prompt mode. # # - off: Disable instant prompt. Choose this if you've tried instant prompt and found # it incompatible with your zsh configuration files. # - quiet: Enable instant prompt and don't print warnings when detecting console output # during zsh initialization. Choose this if you've read and understood # https://github.com/romkatv/powerlevel10k/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' ================================================ FILE: .p10k.zsh ================================================ # Generated by Powerlevel10k configuration wizard on 2022-09-19 at 01:26 IDT. # Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 53041. # Wizard options: nerdfont-complete + powerline, small icons, rainbow, unicode, # 24h time, slanted separators, slanted heads, flat tails, 2 lines, dotted, left frame, # lightest-ornaments, sparse, many icons, concise, transient_prompt, # instant_prompt=verbose. # Type `p10k configure` to generate another config. # # Config for Powerlevel10k with powerline prompt style with colorful background. # Type `p10k configure` to generate your own config based on it. # # Tip: Looking for a nice color? Here's a one-liner to print colormap. # # for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done # Temporarily change options. 'builtin' 'local' '-a' 'p10k_config_opts' [[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') [[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') [[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') 'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' () { emulate -L zsh -o extended_glob # Unset all configuration options. This allows you to apply configuration changes without # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' # Zsh >= 5.1 is required. autoload -Uz is-at-least && is-at-least 5.1 || return # The list of segments shown on the left. Fill it with the most important segments. typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( # =========================[ Line #1 ]========================= os_icon # os identifier dir # current directory vcs # git status # =========================[ Line #2 ]========================= newline # \n # prompt_char # prompt symbol ) # The list of segments shown on the right. Fill it with less important segments. # Right prompt on the last prompt line (where you are typing your commands) gets # automatically hidden when the input line reaches it. Right prompt above the # last prompt line gets hidden if it would overlap with left prompt. typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( # =========================[ Line #1 ]========================= status # exit code of the last command command_execution_time # duration of the last command background_jobs # presence of background jobs direnv # direnv status (https://direnv.net/) asdf # asdf version manager (https://github.com/asdf-vm/asdf) virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) anaconda # conda environment (https://conda.io/) pyenv # python environment (https://github.com/pyenv/pyenv) goenv # go environment (https://github.com/syndbg/goenv) nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) # node_version # node.js version # go_version # go version (https://golang.org) # rust_version # rustc version (https://www.rust-lang.org) # dotnet_version # .NET version (https://dotnet.microsoft.com) # php_version # php version (https://www.php.net/) # laravel_version # laravel php framework version (https://laravel.com/) # java_version # java version (https://www.java.com/) # package # name@version from package.json (https://docs.npmjs.com/files/package.json) rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) rvm # ruby version from rvm (https://rvm.io) fvm # flutter version management (https://github.com/leoafarias/fvm) luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) jenv # java version from jenv (https://github.com/jenv/jenv) plenv # perl version from plenv (https://github.com/tokuhirom/plenv) 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) 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) 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/) time # current time # =========================[ Line #2 ]========================= newline # ip # ip address and bandwidth usage for a specified network interface # public_ip # public IP address # proxy # system-wide http/https/ftp proxy # battery # internal battery # wifi # wifi speed # example # example user-defined segment (see prompt_example function below) ) # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you. typeset -g POWERLEVEL9K_MODE=nerdfont-complete # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added. typeset -g POWERLEVEL9K_ICON_PADDING=none # When set to true, icons appear before content on both sides of the prompt. When set # to false, icons go after content. If empty or not set, icons go before content in the left # prompt and after content in the right prompt. # # You can also override it for a specific segment: # # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false # # Or for a specific segment in specific state: # # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT= # Add an empty line before each prompt. typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true # Connect left prompt lines with these symbols. You'll probably want to use the same color # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below. typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%244F╭─' typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%244F├─' typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%244F╰─' # Connect right prompt lines with these symbols. typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX= typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX= typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX= # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or # '─'. The last two make it easier to see the alignment between left and right prompt and to # separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false # for more compact prompt if using using this option. typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR='·' typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND= typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND= if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE # ornaments defined above. typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=244 # Start filler from the edge of the screen if there are no left segments on the first line. typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' # End filler on the edge of the screen if there are no right segments on the first line. typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}' fi # Separator between same-color segments on the left. typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\u2571' # Separator between same-color segments on the right. typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\u2571' # Separator between different-color segments on the left. typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0BC' # Separator between different-color segments on the right. typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0BA' # The right end of left prompt. typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0BC' # The left end of right prompt. typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0BA' # 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 system 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 '\uF126 ' 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 # ⇣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}" # ⇠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 reposotiry. 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='⭐' ##################[ 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 # 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='⭐' ##################################[ 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='⭐' ##################################[ 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 # 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='⭐' ############[ 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' # 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' # Azure account name color. typeset -g POWERLEVEL9K_AZURE_FOREGROUND=7 typeset -g POWERLEVEL9K_AZURE_BACKGROUND=4 # Custom icon. # typeset -g POWERLEVEL9K_AZURE_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]*' # 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='\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578' # 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=always # Instant prompt mode. # # - off: Disable instant prompt. Choose this if you've tried instant prompt and found # it incompatible with your zsh configuration files. # - quiet: Enable instant prompt and don't print warnings when detecting console output # during zsh initialization. Choose this if you've read and understood # https://github.com/romkatv/powerlevel10k/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' ================================================ FILE: .profile ================================================ export EDITOR=nvim_kitty export VISUAL=nvim_kitty export QT_QPA_PLATFORMTHEME=qt5ct export BAT_THEME="Catppuccin-mocha" export GDK_CORE_DEVICE_EVENTS=1 export PATH=/home/amitgold/.local/bin:$PATH source $HOME/.ghcup/env export FZF_DEFAULT_OPTS=" \ --color=bg+:-1,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \ --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \ --color=marker:#f5e0dc,fg+:#a6e3a1,prompt:#cba6f7,hl+:#f38ba8" # Colorful man pages export LESS_TERMCAP_mb=$'\e[1;32m' export LESS_TERMCAP_md=$'\e[1;32m' export LESS_TERMCAP_me=$'\e[0m' export LESS_TERMCAP_se=$'\e[0m' export LESS_TERMCAP_so=$'\e[01;33m' export LESS_TERMCAP_ue=$'\e[0m' export LESS_TERMCAP_us=$'\e[1;4;31m' export LESS=-R ================================================ FILE: .zshrc ================================================ # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" > /dev/null fi # Basic auto/tab complete: autoload -U compinit zstyle ':completion:*' menu select zmodload zsh/complist compinit _comp_options+=(globdots) # Include hidden files. alias rm='rm -I' alias mv='mv -i' alias cp='cp -i' alias ls='exa --icons --color=auto' alias ll='ls -alhF' alias lt='ls -hFT' alias grep='grep --color=auto' alias nvim=nvim_kitty alias vim='nvim' alias sudo='sudo ' alias checkupdates='checkupdates && paru -Qua' alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' alias lzconf='lazygit --git-dir=$HOME/.dotfiles --work-tree=$HOME' alias j="z" alias ji="zi" alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias icat="kitty +kitten icat" alias du="du -h" confup() { config commit -m "update" && config push } aliasexp() { if [[ $ZSH_VERSION ]]; then # shellcheck disable=2154 # aliases referenced but not assigned [ ${aliases[$1]+x} ] && printf '%s\n' "${aliases[$1]}" && return else # bash [ "${BASH_ALIASES[$1]+x}" ] && printf '%s\n' "${BASH_ALIASES[$1]}" && return fi false # Error: alias not defined } gitrelease() { MASTER=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@') git push && git checkout $MASTER && git merge develop && git push && git checkout develop } lf() { tmp="$(mktemp)" command lf -last-dir-path="$tmp" "$@" if [ -f "$tmp" ]; then dir="$(cat "$tmp")" rm -f "$tmp" if [ -d "$dir" ]; then if [ "$dir" != "$(pwd)" ]; then cd "$dir" fi fi fi } # # # ex - archive extractor # # usage: ex ex () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xjf $1 ;; *.tar.gz) tar xzf $1 ;; *.tar.xz) tar xJf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xf $1 ;; *.tbz2) tar xjf $1 ;; *.tgz) tar xzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1;; *.7z) 7z x $1 ;; *) echo "'$1' cannot be extracted via ex()" ;; esac else echo "'$1' is not a valid file" fi } # Settings bindkey -v bindkey "^[[1;5C" forward-word bindkey "^[[1;5D" backward-word ZVM_KEYTIMEOUT=0.1 ZVM_VI_HIGHLIGHT_BACKGROUND=white ZVM_VI_HIGHLIGHT_FOREGROUND=black ZVM_VI_INSERT_ESCAPE_BINDKEY=jk zstyle ':fzf-tab:*' fzf-flags --height 40% zstyle ':fzf-tab:complete:*:*' fzf-preview 'less ${(Q)realpath}' export LESSOPEN='|~/.lessfilter %s' bindkey '^H' backward-kill-word bindkey '^[[3;5~' kill-word #local WORDCHARS='*?_[]~=&;!#$%^(){}<>' autoload -U select-word-style select-word-style bash HISTFILE=~/.zsh_history HISTSIZE=10000000 SAVEHIST=10000000 KEYTIMEOUT=5 # Environment variables source ~/.profile export SHELL=zsh if [ "$TERM" = "linux" ]; then [[ ! -f ~/.p10k-tty.zsh ]] || source ~/.p10k-tty.zsh else [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh fi source /usr/share/zsh/plugins/zsh-autopair/autopair.zsh source ~/.config/zsh/catppuccin-tty.sh source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh 2>/dev/null source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2>/dev/null source /usr/share/zsh/plugins/zsh-vi-mode/zsh-vi-mode.plugin.zsh zvm_after_init_commands+=('source /usr/share/fzf/completion.zsh && source /usr/share/fzf/key-bindings.zsh && autopair-init') eval "$(zoxide init zsh)" source /usr/share/zsh/plugins/fzf-tab-git/fzf-tab.zsh 2>/dev/null source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme ================================================ FILE: README.md ================================================

AmitGold's dotfiles

## Starring! - **Catppuccin Mocha** - **Hyprland** - **Papirus Icons** - **Waybar** - **Firefox** - **Kitty** - **Neovim** - **Wofi** ## Installation ### Desktop ``` paru -S hyprland-bin waybar-hyprland-git sddm sddm-sugar-candy-git wlogout wofi dunst papirus-icon-theme catppuccin-gtk-theme-mocha polkit-gnome wlsunset swayidle udev-block-notify blueman-applet brightnessctl swaylock-effects wofi-emoji wofi-calc wofi-wifi-menu-git playerctl grim slurp pipewire wireplumber xdg-desktop-portal-wlr wl-copy networkmanager ``` ### Applications ``` paru -S thunar firefox deluge-gtk kitty wdisplays discord discocss spotify spicetify timeshift eog pavucontrol celluloid file-roller ``` ### Terminal ``` paru -S zsh zsh-theme-powerlevel10k zoxide neovim zsh-autosuggestions fzf lf trash-cli exa ripgrep btop zsh-autopair-git zsh-vi-mode fzf-tab-git zsh-syntax-highlighting lazygit bat lesspipe fd nodejs-neovim python-neovim ```