[
  {
    "path": ".config/Thunar/accels.scm",
    "content": "; thunar GtkAccelMap rc-file         -*- scheme -*-\n; this file is an automated accelerator map dump\n;\n; (gtk_accel_path \"<Actions>/ThunarLauncher/delete-3\" \"<Shift>KP_Delete\")\n; (gtk_accel_path \"<Actions>/ThunarBookmarks/f3d2655a47ed2d96a4d42982b2dc9e6a\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/delete\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/invert-selection\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/open-in-new-tab\" \"<Primary><Shift>p\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/delete-2\" \"<Shift>Delete\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/zoom-in\" \"<Primary>KP_Add\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/empty-trash\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/open\" \"<Primary>o\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/reload\" \"<Primary>r\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-side-pane-menu\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/open-network\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/contents/help-menu\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/move-to-trash\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/back-alt\" \"BackSpace\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/paste\" \"<Primary>v\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/switch-next-tab\" \"<Primary>Page_Down\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/open-file-menu\" \"F10\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-as-compact-list\" \"<Primary>3\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/about\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/open-computer\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/clear-directory-specific-settings\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/open-file-system\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/open-parent\" \"<Alt>Up\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-menu\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/properties\" \"<Alt>Return\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/open-in-new-window\" \"<Primary><Shift>o\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/back\" \"<Alt>Left\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/trash-delete\" \"Delete\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/sendto-menu\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarBookmarks/032e8787b6807c1d9537dac4e85f5015\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/reload-alt\" \"F5\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/zoom-out-alt\" \"<Primary>minus\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/select-by-pattern\" \"<Primary>s\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/configure-columns\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/create-document\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/close-tab\" \"<Primary>w\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-side-pane-tree\" \"<Primary>e\")\n; (gtk_accel_path \"<Actions>/ThunarShortcutsPane/sendto-shortcuts\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/rename\" \"F2\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/toggle-side-pane\" \"F9\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/open-home\" \"<Alt>Home\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/open-location-alt\" \"<Alt>d\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/open-templates\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/execute\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/close-window\" \"<Primary>q\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/cut\" \"<Primary>x\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/sendto-desktop\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/zoom-in-alt2\" \"<Primary>equal\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-location-selector-toolbar\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/select-all-files\" \"<Primary>a\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/open-with-other\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/zoom-out\" \"<Primary>KP_Subtract\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/duplicate\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-side-pane-shortcuts\" \"<Primary>b\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/edit-menu\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/contents\" \"F1\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/preferences\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/zoom-in-alt1\" \"<Primary>plus\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/switch-previous-tab\" \"<Primary>Page_Up\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-location-selector-menu\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-statusbar\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/close-all-windows\" \"<Primary><Shift>w\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/open-trash\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/restore\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/open-desktop\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/create-folder\" \"<Primary><Shift>n\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/open-location\" \"<Primary>l\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-menubar\" \"<Primary>m\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/zoom-reset-alt\" \"<Primary>0\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-as-detailed-list\" \"<Primary>2\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-as-icons\" \"<Primary>1\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/new-window\" \"<Primary>n\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/forward\" \"<Alt>Right\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/copy\" \"<Primary>c\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/file-menu\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarStandardView/make-link\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/new-tab\" \"<Primary>t\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/go-menu\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/view-location-selector-pathbar\" \"\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/show-hidden\" \"<Primary>h\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/zoom-reset\" \"<Primary>KP_0\")\n; (gtk_accel_path \"<Actions>/ThunarLauncher/trash-delete-2\" \"KP_Delete\")\n; (gtk_accel_path \"<Actions>/ThunarWindow/detach-tab\" \"\")\n"
  },
  {
    "path": ".config/Thunar/uca.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<actions>\n<action>\n\t<icon>utilities-terminal</icon>\n\t<name>Open Terminal Here</name>\n\t<unique-id>1660516775939738-1</unique-id>\n\t<command>exo-open --working-directory %f --launch TerminalEmulator</command>\n\t<description>Example for a custom action</description>\n\t<patterns>*</patterns>\n\t<startup-notify/>\n\t<directories/>\n</action>\n</actions>\n"
  },
  {
    "path": ".config/btop/btop.conf",
    "content": "#? Config file for btop v. 1.2.12\n\n#* Name of a btop++/bpytop/bashtop formatted \".theme\" file, \"Default\" and \"TTY\" for builtin themes.\n#* Themes should be placed in \"../share/btop/themes\" relative to binary or \"$HOME/.config/btop/themes\"\ncolor_theme = \"/home/amitgold/.config/btop/themes/catppuccin.theme\"\n\n#* If the theme set background should be shown, set to False if you want terminal background transparency.\ntheme_background = True\n\n#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.\ntruecolor = True\n\n#* Set to true to force tty mode regardless if a real tty has been detected or not.\n#* Will force 16-color mode and TTY theme, set all graph symbols to \"tty\" and swap out other non tty friendly symbols.\nforce_tty = False\n\n#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.\n#* Format: \"box_name:P:G,box_name:P:G\" P=(0 or 1) for alternate positions, G=graph symbol to use for box.\n#* Use withespace \" \" as separator between different presets.\n#* Example: \"cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty\"\npresets = \"cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty\"\n\n#* Set to True to enable \"h,j,k,l,g,G\" keys for directional control in lists.\n#* Conflicting keys for h:\"help\" and k:\"kill\" is accessible while holding shift.\nvim_keys = True\n\n#* Rounded corners on boxes, is ignored if TTY mode is ON.\nrounded_corners = True\n\n#* Default symbols to use for graph creation, \"braille\", \"block\" or \"tty\".\n#* \"braille\" offers the highest resolution but might not be included in all fonts.\n#* \"block\" has half the resolution of braille but uses more common characters.\n#* \"tty\" uses only 3 different symbols but will work with most fonts and should work in a real TTY.\n#* Note that \"tty\" only has half the horizontal resolution of the other two, so will show a shorter historical view.\ngraph_symbol = \"braille\"\n\n# Graph symbol to use for graphs in cpu box, \"default\", \"braille\", \"block\" or \"tty\".\ngraph_symbol_cpu = \"default\"\n\n# Graph symbol to use for graphs in cpu box, \"default\", \"braille\", \"block\" or \"tty\".\ngraph_symbol_mem = \"default\"\n\n# Graph symbol to use for graphs in cpu box, \"default\", \"braille\", \"block\" or \"tty\".\ngraph_symbol_net = \"default\"\n\n# Graph symbol to use for graphs in cpu box, \"default\", \"braille\", \"block\" or \"tty\".\ngraph_symbol_proc = \"default\"\n\n#* Manually set which boxes to show. Available values are \"cpu mem net proc\", separate values with whitespace.\nshown_boxes = \"cpu mem net proc\"\n\n#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.\nupdate_ms = 2000\n\n#* Processes sorting, \"pid\" \"program\" \"arguments\" \"threads\" \"user\" \"memory\" \"cpu lazy\" \"cpu direct\",\n#* \"cpu lazy\" sorts top process over time (easier to follow), \"cpu direct\" updates top process directly.\nproc_sorting = \"pid\"\n\n#* Reverse sorting order, True or False.\nproc_reversed = False\n\n#* Show processes as a tree.\nproc_tree = False\n\n#* Use the cpu graph colors in the process list.\nproc_colors = True\n\n#* Use a darkening gradient in the process list.\nproc_gradient = True\n\n#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.\nproc_per_core = False\n\n#* Show process memory as bytes instead of percent.\nproc_mem_bytes = True\n\n#* Show cpu graph for each process.\nproc_cpu_graphs = True\n\n#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)\nproc_info_smaps = False\n\n#* Show proc box on left side of screen instead of right.\nproc_left = False\n\n#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).\nproc_filter_kernel = False\n\n#* Sets the CPU stat shown in upper half of the CPU graph, \"total\" is always available.\n#* Select from a list of detected attributes from the options menu.\ncpu_graph_upper = \"total\"\n\n#* Sets the CPU stat shown in lower half of the CPU graph, \"total\" is always available.\n#* Select from a list of detected attributes from the options menu.\ncpu_graph_lower = \"total\"\n\n#* Toggles if the lower CPU graph should be inverted.\ncpu_invert_lower = True\n\n#* Set to True to completely disable the lower CPU graph.\ncpu_single_graph = False\n\n#* Show cpu box at bottom of screen instead of top.\ncpu_bottom = False\n\n#* Shows the system uptime in the CPU box.\nshow_uptime = True\n\n#* Show cpu temperature.\ncheck_temp = True\n\n#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.\ncpu_sensor = \"Auto\"\n\n#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.\nshow_coretemp = True\n\n#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.\n#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.\n#* Format \"x:y\" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.\n#* Example: \"4:0 5:1 6:3\"\ncpu_core_map = \"\"\n\n#* Which temperature scale to use, available values: \"celsius\", \"fahrenheit\", \"kelvin\" and \"rankine\".\ntemp_scale = \"celsius\"\n\n#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.\nbase_10_sizes = False\n\n#* Show CPU frequency.\nshow_cpu_freq = True\n\n#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.\n#* Special formatting: /host = hostname | /user = username | /uptime = system uptime\nclock_format = \"%X\"\n\n#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.\nbackground_update = True\n\n#* Custom cpu model name, empty string to disable.\ncustom_cpu_name = \"\"\n\n#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace \" \".\n#* Begin line with \"exclude=\" to change to exclude filter, otherwise defaults to \"most include\" filter. Example: disks_filter=\"exclude=/boot /home/user\".\ndisks_filter = \"\"\n\n#* Show graphs instead of meters for memory values.\nmem_graphs = True\n\n#* Show mem box below net box instead of above.\nmem_below_net = False\n\n#* Count ZFS ARC in cached and available memory.\nzfs_arc_cached = True\n\n#* If swap memory should be shown in memory box.\nshow_swap = True\n\n#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.\nswap_disk = True\n\n#* If mem box should be split to also show disks info.\nshow_disks = True\n\n#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.\nonly_physical = True\n\n#* Read disks list from /etc/fstab. This also disables only_physical.\nuse_fstab = True\n\n#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)\nzfs_hide_datasets = False\n\n#* Set to true to show available disk space for privileged users.\ndisk_free_priv = False\n\n#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.\nshow_io_stat = True\n\n#* Toggles io mode for disks, showing big graphs for disk read/write speeds.\nio_mode = False\n\n#* Set to True to show combined read/write io graphs in io mode.\nio_graph_combined = False\n\n#* Set the top speed for the io graphs in MiB/s (100 by default), use format \"mountpoint:speed\" separate disks with whitespace \" \".\n#* Example: \"/mnt/media:100 /:20 /boot:1\".\nio_graph_speeds = \"\"\n\n#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.\nnet_download = 100\n\nnet_upload = 100\n\n#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.\nnet_auto = True\n\n#* Sync the auto scaling for download and upload to whichever currently has the highest scale.\nnet_sync = True\n\n#* Starts with the Network Interface specified here.\nnet_iface = \"\"\n\n#* Show battery stats in top right if battery is present.\nshow_battery = True\n\n#* Which battery to use if multiple are present. \"Auto\" for auto detection.\nselected_battery = \"Auto\"\n\n#* Set loglevel for \"~/.config/btop/btop.log\" levels are: \"ERROR\" \"WARNING\" \"INFO\" \"DEBUG\".\n#* The level set includes all lower levels, i.e. \"DEBUG\" will show all logging info.\nlog_level = \"WARNING\""
  },
  {
    "path": ".config/btop/themes/catppuccin.theme",
    "content": "theme[main_bg]=\"#1E1E2E\"\ntheme[main_fg]=\"#CDD6F4\"\ntheme[title]=\"#CDD6F4\"\ntheme[hi_fg]=\"#89B4FA\"\ntheme[selected_bg]=\"#45475A\"\ntheme[selected_fg]=\"#89B4FA\"\ntheme[inactive_fg]=\"#7F849C\"\ntheme[graph_text]=\"#F5E0DC\"\ntheme[meter_bg]=\"#45475A\"\ntheme[proc_misc]=\"#F5E0DC\"\ntheme[cpu_box]=\"#74C7EC\"\ntheme[mem_box]=\"#A6E3A1\"\ntheme[net_box]=\"#CBA6F7\"\ntheme[proc_box]=\"#F2CDCD\"\ntheme[div_line]=\"#6C7086\"\ntheme[temp_start]=\"#F9E2AF\"\ntheme[temp_mid]=\"#FAB387\"\ntheme[temp_end]=\"#F38BA8\"\ntheme[cpu_start]=\"#74C7EC\"\ntheme[cpu_mid]=\"#89DCEB\"\ntheme[cpu_end]=\"#94E2D5\"\ntheme[free_start]=\"#94E2D5\"\ntheme[free_mid]=\"#94E2D5\"\ntheme[free_end]=\"#A6E3A1\"\ntheme[cached_start]=\"#F5C2E7\"\ntheme[cached_mid]=\"#F5C2E7\"\ntheme[cached_end]=\"#CBA6F7\"\ntheme[available_start]=\"#F5E0DC\"\ntheme[available_mid]=\"#F2CDCD\"\ntheme[available_end]=\"#F2CDCD\"\ntheme[used_start]=\"#FAB387\"\ntheme[used_mid]=\"#FAB387\"\ntheme[used_end]=\"#F38BA8\"\ntheme[download_start]=\"#B4BEFE\"\ntheme[download_mid]=\"#B4BEFE\"\ntheme[download_end]=\"#CBA6F7\"\ntheme[upload_start]=\"#B4BEFE\"\ntheme[upload_mid]=\"#B4BEFE\"\ntheme[upload_end]=\"#CBA6F7\"\ntheme[process_start]=\"#74C7EC\"\ntheme[process_mid]=\"#89DCEB\"\ntheme[process_end]=\"#94E2D5\"\n"
  },
  {
    "path": ".config/discocss/custom.css",
    "content": "/**\n * @name Catppuccin\n * @author Catppuccin\n * @version 0.0.8\n * @description 🎮 Soothing pastel theme for Discord\n * @website https://github.com/catppuccin\n * @source https://github.com/catppuccin/discord\n **/\n\n:root {\n\t/*                 H     S     L */\n\t--rosewater_hsl:  10,  56%,  91%;\n\t--flamingo_hsl:    0,  59%,  88%;\n\t--mauve_hsl:     279,  70%,  83%;\n\t--pink_hsl:      316,  72%,  86%;\n\t--maroon_hsl:    349,  60%,  77%;\n\t--red_hsl:       342,  79%,  75%;\n\t--peach_hsl:      24,  88%,  78%;\n\t--yellow_hsl:     41,  88%,  84%;\n\t--green_hsl:     128,  58%,  79%;\n\t--teal_hsl:      171,  53%,  81%;\n\t--blue_hsl:      207,  93%,  79%;\n\t--sky_hsl:       189,  71%,  73%;\n\t--lavender_hsl:  238, 100%,  89%;\n\t--black0_hsl:    254,  25%,  10%;\n\t--black1_hsl:    249,  23%,  12%;\n\t--black2_hsl:    240,  21%,  15%;\n\t--black3_hsl:    249,  18%,  22%;\n\t--black4_hsl:    254,  12%,  36%;\n\t--gray0_hsl:     247,   8%,  46%;\n\t--gray1_hsl:     274,  11%,  59%;\n\t--gray2_hsl:     285,  10%,  75%;\n\t--white_hsl:     220,  38%,  89%;\n}\n\n:root {\n\t--rosewater: hsl(var(--rosewater_hsl));\n\t--flamingo: hsl(var(--flamingo_hsl));\n\t--mauve: hsl(var(--mauve_hsl));\n\t--pink: hsl(var(--pink_hsl));\n\t--maroon: hsl(var(--maroon_hsl));\n\t--red: hsl(var(--red_hsl));\n\t--peach: hsl(var(--peach_hsl));\n\t--yellow: hsl(var(--yellow_hsl));\n\t--green: hsl(var(--green_hsl));\n\t--teal: hsl(var(--teal_hsl));\n\t--blue: hsl(var(--blue_hsl));\n\t--sky: hsl(var(--sky_hsl));\n\t--lavender: hsl(var(--lavender_hsl));\n\t--black0: hsl(var(--black0_hsl));\n\t--black1: hsl(var(--black1_hsl));\n\t--black2: hsl(var(--black2_hsl));\n\t--black3: hsl(var(--black3_hsl));\n\t--black4: hsl(var(--black4_hsl));\n\t--gray0: hsl(var(--gray0_hsl));\n\t--gray1: hsl(var(--gray1_hsl));\n\t--gray2: hsl(var(--gray2_hsl));\n\t--white: hsl(var(--white_hsl));\n\t--mauve-o10: hsl(var(--mauve_hsl), .1);\n\t--pink-o20: hsl(var(--pink_hsl), .2);\n}\n\n.theme-dark {\n\t--header-primary: var(--white) !important;\n\t--header-secondary: var(--rosewater) !important;\n\t--background-primary: var(--black2) !important;\n\t--background-primary-alt: var(--black2) !important;\n\t--background-mobile-primary: var(--black2) !important;\n\t--background-secondary: var(--black1) !important;\n\t--background-secondary-alt: var(--black1) !important;\n\t--background-mobile-secondary: var(--black1) !important;\n\t--background-tertiary: var(--black0) !important;\n\t--background-floating: var(--black2) !important;\n\t--background-mentioned: var(--mauve-o10) !important;\n\t--background-mentioned-hover: var(--pink-o20) !important;\n\t--background-accent: var(--gray0) !important;\n\t--background-modifier-selected: var(--black2) !important;\n\t--background-modifier-accent: var(--black2) !important;\n\t--background-modifier-hover: var(--black3) !important;\n\t--text-normal: var(--white) !important;\n\t--text-muted: var(--gray0) !important;\n\t--text-link: var(--sky) !important;\n\t--channels-default: var(--gray0) !important;\n\t--channeltextarea-background: var(--black3) !important;\n\t--activity-card-background: var(--black2) !important;\n\t--interactive-normal: var(--white) !important;\n\t--interactive-muted: var(--black3) !important;\n\t--interactive-hover: var(--gray2) !important;\n\t--interactive-active: var(--rosewater) !important;\n\t--scrollbar-thin-thumb: var(--black0) !important;\n\t--scrollbar-thin-track: transparent !important;\n\t--scrollbar-auto-thumb: var(--black0) !important;\n\t--scrollbar-auto-track: var(--black3) !important;\n\t--scrollbar-auto-scrollbar-color-thumb: var(--black1) !important;\n\t--scrollbar-auto-scrollbar-color-track: var(--black3) !important;\n\t--deprecated-store-bg: var(--black0) !important;\n\t--input-background: var(--black3) !important;\n}\n\n/* Mentions */\n.mentioned-Tre-dv .mention.interactive {\n\tcolor: var(--white) !important;\n}\n\n.mentioned-Tre-dv::before {\n\tbackground-color: var(--white) !important;\n}\n\n/* Home */\n.container-2cd8Mz {\n\tbackground-color: var(--black2) !important;\n}\n\n/* Autocomplete popup */\n.autocomplete-3NRXG8 {\n\tbackground-color: var(--black2) !important;\n}\n\n.wrapper-1NNaWG.categoryHeader-OpJ1Ly {\n\tbackground-color: var(--black2) !important;\n}\n\n.autocomplete-3NRXG8 {\n\tbackground-color: var(--black2) !important;\n}\n\n/* Autocomplete popup selection */\n.selected-3H3-RC {\n\tbackground-color: var(--black3) !important;\n}\n\n/* Search: Items */\n.container-2McqkF {\n\tbackground-color: var(--black0) !important;\n}\n\n.searchOption-351dTI:hover {\n\tbackground-color: var(--black3) !important;\n}\n\n/* Search: No shadows */\n.option-ayUoaq:after {\n\tbackground: none !important;\n}\n\n/* Search: in-section */\n.queryContainer-ZunrLZ {\n\tbackground-color: var(--black0) !important;\n}\n\n/* Search: History */\n.option-ayUoaq:hover {\n\tbackground-color: var(--black3) !important;\n}\n\n/* Search: Little Icon Thingy */\n.searchFilter-2UfsDk,\n.searchAnswer-23w-CH {\n\tbackground-color: var(--black3) !important;\n}\n\n/* IN ORDER: New-Unreads-Btn,jumpToPresentBar,CTRL+K */\n.bar-2eAyLE,.jumpToPresentBar-1cEnH0,.input-3r5zZY {\n\tbackground-color: var(--gray0) !important;\n}\n\n/* New Message Bar */\n.newMessagesBar-1hF-9G:before {\n\tcontent: \"\";\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tbackground: var(--gray0) !important;\n\tborder-radius:0 0 3px 3px;\n}\n\n/* New Messages Flag */\n.isUnread-3Lojb- {\n\tborder-color: var(--gray0) !important;\n}\n\n.unreadPill-3nEWYM {\n\tbackground-color: var(--gray0) !important;\n}\n\n.unreadPillCapStroke-1nE1Q8 {\n\tfill: var(--gray0) !important;\n\tcolor: var(--gray0) !important;\n}\n\n.isUnread-3Lojb- .content-3spvdd {\n\tcolor: var(--gray0) !important;\n}\n\n/* Server Modals */\n.root-g14mjS,\n.separator-2lLxgC {\n\tbackground-color: var(--black2) !important;\n}\n\n.footer-31IekZ {\n\tbackground-color: var(--black1) !important;\n}\n\n/* Boost Page */\n.perksModal-CLcR1c {\n\tbackground-color: var(--black1) !important;\n}\n\n.tierMarkerBackground-G8FoN4 {\n\tbackground-color: var(--black2) !important;\n}\n\n/* Emoji Popout */\n.popoutContainer-2wbmiM {\n\tbackground-color: var(--black1) !important;\n}\n\n/* Presence Buttons */\n.lookFilled-yCfaCM.colorGrey-2iAG-B,\n.lookFilled-yCfaCM.colorPrimary-2AuQVo {\n\tbackground-color: var(--black3) !important;\n}\n\n/* Primary Card */\n.cardPrimary-3qRT__ {\n\tbackground-color: var(--black1) !important;\n}\n\n/* Payment Page Boxes */\n.paymentPane-ut5qKZ,\n.paginator-1eqD2g,\n.payment-2bOh4k,\n.codeRedemptionRedirect-3SBiCp {\n\tbackground-color: var(--black1) !important;\n}\n\n.bottomDivider-ZmTm-j {\n\tborder-bottom-color: var(--black2) !important;\n}\n\n/* Spotify Invite */\n.invite-3uuHYQ {\n\tbackground-color: var(--black1) !important;\n}\n\n/* Edit Attachment */\n.footer-VCsJQY {\n\tbackground-color: var(--black1) !important;\n}\n\n/* Spoilers */\n.spoilerText-27bIiA.hidden-3B-Rum,\n.inlineContent-2YnoDy {\n\tbackground-color: var(--black3) !important;\n}\n\n/* Stream Preview */\n.streamPreview-I7itZ6 {\n\tbackground-color: var(--black2) !important;\n}\n\n/* Selection */\n::-moz-selection {\n\tcolor: var(--white) !important;\n\tbackground: var(--black4) !important;\n}\n\n::selection {\n\tcolor: var(--white) !important;\n\tbackground: var(--black4) !important;\n}\n\n/* Delete Message Confirmation */\n.message-G6O-Wv {\n\tbackground-color: var(--black2) !important;\n\tbox-shadow: 0 0 0 1px hsla(var(--black3_hsl), 0.6), 0 2px 10px 0 hsla(var(--black3_hsl), 0.1) !important;\n}\n\n/* Command Option */\n.pill-1HLSrc,\n.optionKey-1tfFt_ {\n\tbackground-color: var(--black2) !important;\n}\n\n/* Volume Slider */\n.tooltipContent-Nejnvh {\n\tbackground-color: var(--black2) !important;\n}\n\n.grabber-2GQyvM {\n\tbackground-color: var(--white) !important;\n}\n\n.bar-1Bhnl9 {\n\tbackground-color: var(--gray0) !important;\n}\n\n.tooltipPointer-3L49xb {\n\tborder-top-color: var(--black2) !important;\n}\n\n/* Call Page */\n.tile-2TcwiO {\n\tbackground-color: var(--black0) !important;\n}\n\n.button-3Vyz67 {\n\tbackground-color: var(--black2) !important;\n}\n\n.buttonColor-28DXIe,\n.colorable-3rVGna.primaryDark-2UJt1G {\n\tbackground-color: var(--black2) !important;\n}\n\n.emptyPreview-1SMLD4 {\n\tbackground: var(--black0) !important;\n}\n\n/* Reactors List */\n.scroller-2GkvCq {\n\tbackground: var(--black1) !important;\n}\n\n.reactionDefault-1Sjj1f:hover,\n.reactionSelected-1aMb2K {\n\tbackground-color: var(--black2) !important;\n}\n\n.reactors-1VXca7 {\n\tbackground-color: var(--black2) !important;\n}\n"
  },
  {
    "path": ".config/discocss/preload.js",
    "content": "module.exports = () => {\n  const fs = require(\"fs\");\n  const confDir = \"/home/amitgold/.config/discocss\";\n  const cssFile = \"/home/amitgold/.config/discocss/custom.css\";\n\n  function reload(style) {\n    style.innerHTML = fs.readFileSync(cssFile);\n  }\n\n  function inject({ document, window }) {\n    window.addEventListener(\"load\", () => {\n      const style = document.createElement(\"style\");\n      reload(style);\n      document.head.appendChild(style);\n\n      fs.watch(confDir, {}, () => reload(style));\n    });\n  }\n\n  inject(require(\"electron\").webFrame.context);\n};\n\nmodule.exports.mw = (mainWindow) => {\n  mainWindow.setBackgroundColor(\"#00000000\");\n};\n\nmodule.exports.mo = (options) => {\n  options.transparent = true;\n  if (process.platform === \"linux\") {\n    options.frame = true;\n  }\n};\n"
  },
  {
    "path": ".config/dunst/dunstrc",
    "content": "[global]\n    follow = mouse\n    indicate_hidden = yes\n\n    offset = 10x10\n\n    notification_height = 0\n\n    separator_height = 2\n\n    padding = 8\n    horizontal_padding = 8\n    text_icon_padding = 0\n    frame_width = 2\n\n    frame_color = \"#89B4FA\"\n    separator_color = frame\n\n    sort = yes\n    idle_threshold = 120\n    font = monospace 10\n    line_height = 0\n    markup = full\n    alignment = left\n    vertical_alignment = center\n    show_age_threshold = 60\n    word_wrap = yes\n    stack_duplicates = true\n    hide_duplicate_count = false\n\n    show_indicators = yes\n\n    min_icon_size = 0\n    max_icon_size = 64\n\n    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/\n\n    dmenu = /usr/bin/wofi -p dunst:\n    browser = /usr/bin/firefox --new-tab\n\n    title = Dunst\n    class = Dunst\n\n    corner_radius = 10\n    timeout = 5\n\n[urgency_low]\n    background = \"#1E1E2E\"\n    foreground = \"#CDD6F4\"\n\n[urgency_normal]\n    background = \"#1E1E2E\"\n    foreground = \"#CDD6F4\"\n\n[urgency_critical]\n    background = \"#1E1E2E\"\n    foreground = \"#CDD6F4\"\n    frame_color = \"#FAB387\"\n"
  },
  {
    "path": ".config/fontconfig/fonts.conf",
    "content": "<?xml version=\"1.0\"?>\n<!DOCTYPE fontconfig SYSTEM \"urn:fontconfig:fonts.dtd\">\n<fontconfig>\n  <alias>\n    <family>monospace</family>\n    <prefer><family>LigaIosevka Nerd Font</family></prefer>\n  </alias>\n\n  <alias>\n    <family>sans-serif</family>\n    <prefer><family>Fira Sans</family></prefer>\n  </alias>\n</fontconfig>\n"
  },
  {
    "path": ".config/hypr/hyprland.conf",
    "content": "#### Hyprland Config ####\n\nexec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP\nexec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP\nexec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1\nexec-once=wlsunset -S 6:00 -s 18:30\nexec-once=swaybg -m fill -i ~/.config/hypr/wallpapers/kurz.png\nexec-once=waybar\nexec-once=blueman-applet\nexec-once=dunst\nexec-once=udev-block-notify\nexec-once=~/.config/hypr/scripts/sleep.sh\nexec-once=echo us > /tmp/kb_layout\nexec-once=hyprctl setcursor Catppuccin-Cursor 10\n\nmonitor=,preferred,auto,1\nmonitor=HDMI-A-2,preferred,auto,1,mirror,eDP-1\n\ninput {\n    kb_layout=us\n    kb_variant=\n    kb_model=\n    kb_options=\n    kb_rules=\n\n    follow_mouse=1\n    float_switch_override_focus=true\n\n    touchpad {\n        natural_scroll=yes\n    }\n}\n\ngeneral {\n    sensitivity=1.0 # for mouse cursor\n    main_mod=SUPER\n    layout=dwindle\n\n    gaps_in=5\n    gaps_out=10\n    border_size=2\n\n    col.active_border=0xb3cba6f7\n    col.inactive_border=0xb3313244\n\n    apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse)\n}\n\ndecoration {\n    rounding=5\n    blur=true\n    blur_size=10 # minimum 1\n    blur_passes=4 # minimum 1, more passes = more resource intensive.\n    blur_new_optimizations=true\n    # Your blur \"amount\" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts.\n    # if you want heavy blur, you need to up the blur_passes.\n    # the more passes, the more you can up the blur_size without noticing artifacts.\n}\n\nanimations {\n    enabled=1\n    animation=windows,1,4,default\n    animation=border,1,10,default\n    animation=fade,1,10,default\n    animation=workspaces,1,4,default\n}\n\ndwindle {\n    pseudotile=0 # enable pseudotiling on dwindle\n    force_split=2\n}\n\nmaster {\n    new_is_master=false\n}\n\ngestures {\n    workspace_swipe=yes\n}\n\nmisc {\n    disable_hyprland_logo=true\n    disable_splash_rendering=true\n    mouse_move_enables_dpms=true\n    no_vfr=false\n}\n\nwindowrule=float,blueman\nwindowrule=float,Anydesk\nwindowrule=float,file_progress\nwindowrule=float,confirm\nwindowrule=float,dialog\nwindowrule=float,download\nwindowrule=float,notification\nwindowrule=float,error\nwindowrule=float,splash\nwindowrule=float,confirmreset\nwindowrule=float,title:Open File\nwindowrule=float,title:branchdialog\nwindowrule=float,minecraft-launcher\n\nblurls=gtk-layer-shell\nblurls=lockscreen\n\nbind=SUPER,T,exec,kitty\nbind=SUPER,B,exec,firefox\nbind=SUPER,E,exec,thunar\nbind=SUPER,Q,killactive,\nbind=SUPERSHIFT,Q,exec,hyprctl kill\nbind=SUPERCTRL,Q,exit,\nbind=SUPER,V,togglefloating,\nbind=SUPER,F,fullscreen,\nbind=SUPER,A,exec,wofi --show drun -I -m -i\nbind=SUPER,P,exec,~/.config/hypr/scripts/logout.sh\nbind=SUPERSHIFT,B,exec,~/.config/hypr/scripts/toggle_bluetooth.sh\n\nbind=SUPER,hebrew_aleph,exec,kitty\nbind=SUPER,hebrew_nun,exec,firefox\nbind=SUPER,hebrew_kuf,exec,thunar\nbind=SUPER,slash,killactive,\nbind=SUPERSHIFT,slash,exec,hyprctl kill\nbind=SUPERSHIFT,slash,exit,\nbind=SUPER,hebrew_he,togglefloating,\nbind=SUPER,hebrew_kaph,fullscreen,\nbind=SUPER,hebrew_shin,exec,wofi --show drun -I -m -i\nbind=SUPER,hebrew_pe,exec,~/.config/hypr/scripts/logout.sh\nbind=SUPERSHIFT,hebrew_nun,exec,~/.config/hypr/scripts/toggle_bluetooth.sh\n\nbind=ALT,Space,exec,wofi-emoji\nbind=ALT,C,exec,wofi-calc\nbind=ALT,hebrew_bet,exec,wofi-calc\n\nbind=,Print,exec,grim -g \"$(slurp)\" $HOME/Pictures/Screenshots/$(date +'%s.png')\nbind=SHIFT,Print,exec,grim $HOME/Pictures/Screenshots/$(date +'%s.png')\n\nbind=SUPER,C,exec,~/.config/hypr/scripts/caffeine.sh\nbind=SUPER,hebrew_bet,exec,~/.config/hypr/scripts/caffeine.sh\n\nbindr=ALTSHIFT,Shift_L,exec,~/.config/hypr/scripts/switch_kb_layout.sh\n\nbind=SUPER,H,movefocus,l\nbind=SUPER,J,movefocus,d\nbind=SUPER,K,movefocus,u\nbind=SUPER,L,movefocus,r\n\nbind=SUPERSHIFT,H,movewindow,l\nbind=SUPERSHIFT,J,movewindow,d\nbind=SUPERSHIFT,K,movewindow,u\nbind=SUPERSHIFT,L,movewindow,r\n\nbind=SUPERCTRL,L,resizeactive,70 0\nbind=SUPERCTRL,H,resizeactive,-70 0\nbind=SUPERCTRL,K,resizeactive,0 -70\nbind=SUPERCTRL,J,resizeactive,0 70\n\n\nbind=SUPER,hebrew_yod,movefocus,l\nbind=SUPER,hebrew_chet,movefocus,d\nbind=SUPER,hebrew_lamed,movefocus,u\nbind=SUPER,hebrew_finalkaf,movefocus,r\n\nbind=SUPERSHIFT,hebrew_yod,movewindow,l\nbind=SUPERSHIFT,hebrew_chet,movewindow,d\nbind=SUPERSHIFT,hebrew_lamed,movewindow,u\nbind=SUPERSHIFT,hebrew_finalkaf,movewindow,r\n\nbind=SUPERCTRL,hebrew_yod,resizeactive,70 0\nbind=SUPERCTRL,hebrew_chet,resizeactive,-70 0\nbind=SUPERCTRL,hebrew_lamed,resizeactive,0 -70\nbind=SUPERCTRL,hebrew_finalkaf,resizeactive,0 70\n\nbind=SUPERSHIFT,P,pseudo\n\nbind=SUPER,Space,layoutmsg,swapwithmaster\n\nbind=SUPER,comma,splitratio,-0.1\nbind=SUPER,period,splitratio,+0.1\n\nbind=SUPER,hebrew_taw,splitratio,-0.1\nbind=SUPER,hebrew_finalzade,splitratio,+0.1\n\nbind=SUPER,I,workspace,-1\nbind=SUPER,O,workspace,+1\nbind=SUPERSHIFT,I,movetoworkspace,-1\nbind=SUPERSHIFT,O,movetoworkspace,+1\n\n# bind=SUPER,backslash,swapactiveworkspaces,eDP1 \n\nbind=SUPER,hebrew_finalnun,workspace,-1\nbind=SUPER,hebrew_finalmem,workspace,+1\nbind=SUPERSHIFT,hebrew_finalnun,movetoworkspace,-1\nbind=SUPERSHIFT,hebrew_finalmem,movetoworkspace,+1\n\nbind=,XF86AudioRaiseVolume,exec,~/.config/hypr/scripts/volume_ctl.sh up\nbind=,XF86AudioLowerVolume,exec,~/.config/hypr/scripts/volume_ctl.sh down \nbind=,XF86AudioMute,exec,~/.config/hypr/scripts/volume_ctl.sh mute \nbind=,XF86MonBrightnessDown,exec,~/.config/hypr/scripts/brightness_ctl.sh down \nbind=,XF86MonBrightnessUp,exec,~/.config/hypr/scripts/brightness_ctl.sh up \nbind=SHIFT,XF86MonBrightnessUp,exec,~/.config/hypr/scripts/brightness_ctl.sh max\n\nbind=SUPER,semicolon,exec,playerctl play-pause\nbind=SUPER,hebrew_finalpe,exec,playerctl play-pause\nbind=SUPER,bracketleft,exec,playerctl next\nbind=SUPER,bracketright,exec,playerctl previous\n\nbind=SUPER,1,workspace,1\nbind=SUPER,2,workspace,2\nbind=SUPER,3,workspace,3\nbind=SUPER,4,workspace,4\nbind=SUPER,5,workspace,5\nbind=SUPER,6,workspace,6\nbind=SUPER,7,workspace,7\nbind=SUPER,8,workspace,8\nbind=SUPER,9,workspace,9\nbind=SUPER,0,workspace,10\n\nbind=SUPERSHIFT,1,movetoworkspace,1\nbind=SUPERSHIFT,2,movetoworkspace,2\nbind=SUPERSHIFT,3,movetoworkspace,3\nbind=SUPERSHIFT,4,movetoworkspace,4\nbind=SUPERSHIFT,5,movetoworkspace,5\nbind=SUPERSHIFT,6,movetoworkspace,6\nbind=SUPERSHIFT,7,movetoworkspace,7\nbind=SUPERSHIFT,8,movetoworkspace,8\nbind=SUPERSHIFT,9,movetoworkspace,9\nbind=SUPERSHIFT,0,movetoworkspace,10\n\nbind=SUPER,mouse_down,workspace,e-1\nbind=SUPER,mouse_up,workspace,e+1\nbindm=SUPER,mouse:272,movewindow\nbindm=SUPER,mouse:273,resizewindow\n"
  },
  {
    "path": ".config/hypr/scripts/brightness_ctl.sh",
    "content": "#!/usr/bin/env bash\n\n# You can call this script like this:\n# $ ./brightnessControl.sh up\n# $ ./brightnessControl.sh down\n\n# Script inspired by these wonderful people:\n# https://github.com/dastorm/volume-notification-dunst/blob/master/volume.sh\n# https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a\n\n\nfunction get_brightness {\n\tbrightnessctl -m | awk -F, '{print substr($4, 0, length($4)-1)}'\n}\n\nfunction send_notification {\n  icon=\"preferences-system-brightness-lock\"\n  brightness=$(get_brightness)\n  # Make the bar with the special character ─ (it's not dash -)\n  # https://en.wikipedia.org/wiki/Box-drawing_character\n  bar=$(seq -s \"─\" 0 $(((brightness - 1) / 4)) | sed 's/[0-9]//g')\n  space=$(seq --separator=\" \" 0 \"$(((100 - brightness) / 4))\" | sed 's/[0-9]//g')\n  # Send the notification\n  dunstify -i \"$icon\" -r 5555 -u normal \"|$bar$space| $brightness%\"\n}\n\n\ncase $1 in\n  up)\n    # increase the backlight by 5%\n    brightnessctl set 5%+\n    send_notification\n    ;;\n  down)\n    # decrease the backlight by 5%\n    brightnessctl set 5%-\n    send_notification\n    ;;\n  max)\n    brightnessctl set 100%\n    send_notification\n    ;;\n  blank)\n    brightnessctl set 0%\n    send_notification\n    ;;\nesac\n"
  },
  {
    "path": ".config/hypr/scripts/caffeine.sh",
    "content": "#!/bin/sh\n\nif pgrep -x sleep.sh > /dev/null; then\n\tdunstify -r 4444 -i /usr/share/icons/Papirus-Dark/symbolic/status/my-caffeine-on-symbolic.svg \"Caffeine Enabled\"\n    killall swayidle\n    ~/.config/hypr/scripts/lock_on_sleep.sh &\nelse\n\tdunstify -r 4444 -i /usr/share/icons/Papirus-Dark/symbolic/status/my-caffeine-off-symbolic.svg \"Caffeine Disabled\"\n    killall swayidle\n    ~/.config/hypr/scripts/sleep.sh &\nfi\n"
  },
  {
    "path": ".config/hypr/scripts/lock.sh",
    "content": "#!/bin/sh\n\nswaylock \\\n    --hide-keyboard-layout \\\n    --indicator-radius 100 \\\n    --indicator-thickness 7 \\\n    --ring-color cba6f7 \\\n    --ring-ver-color 89b4fa \\\n    --ring-wrong-color f38ba8 \\\n    --ring-clear-color a6e3a1 \\\n    --key-hl-color 1e1e2e \\\n    --bs-hl-color eba0ac \\\n    --text-color 11111b \\\n    --text-caps-lock-color 11111b \\\n    --line-color 00000000 \\\n    --line-ver-color 00000000 \\\n    --line-wrong-color 00000000 \\\n    --line-clear-color 00000000 \\\n    --separator-color 00000000 \\\n    --inside-color cba6f7 \\\n    --inside-ver-color 89b4fa\\\n    --inside-wrong-color f38ba8 \\\n    --inside-clear-color a6e3a1 \\\n    --color 1e1e2e80 \\\n    --clock \\\n    --indicator\n"
  },
  {
    "path": ".config/hypr/scripts/lock_on_sleep.sh",
    "content": "#!/bin/sh\n\nswayidle -w before-sleep \"$HOME/.config/hypr/scripts/lock.sh\"\n"
  },
  {
    "path": ".config/hypr/scripts/logout.sh",
    "content": "#!/bin/sh\nwlogout --protocol layer-shell -b 5 -T 400 -B 400\n"
  },
  {
    "path": ".config/hypr/scripts/sleep.sh",
    "content": "#!/bin/sh\nswayidle -w \\\n        before-sleep \"$HOME/.config/hypr/scripts/lock.sh\" \\\n        timeout 160 'temp=$(brightnessctl g); brightnessctl set $((temp / 2))' \\\n            resume 'temp=$(brightnessctl g); brightnessctl set $((temp * 2))' \\\n        timeout 300 \"$HOME/.config/hypr/scripts/lock.sh & sleep 0.1 && hyprctl dispatch dpms off\" \\\n            resume 'hyprctl dispatch dpms on' \\\n        timeout 600 'systemctl suspend' \\\n            resume 'hyprctl dispatch dpms on'\n"
  },
  {
    "path": ".config/hypr/scripts/switch_kb_layout.sh",
    "content": "#!/bin/sh\n\nlayout_f=/tmp/kb_layout\n\ncase $(cat \"$layout_f\") in \n  us)\n    hyprctl keyword input:kb_layout il\n    echo il > $layout_f\n    ;;\n  il)\n    hyprctl keyword input:kb_layout us\n    echo us > $layout_f\n    ;;\nesac\n"
  },
  {
    "path": ".config/hypr/scripts/toggle_bluetooth.sh",
    "content": "#!/bin/sh\n\nstate=$(bluetoothctl -- show | grep Powered | awk '{ print $2 }')\n\nif [[ $state == 'yes' ]]; then\n    bluetoothctl -- power off\nelse\n    bluetoothctl -- power on\nfi\n"
  },
  {
    "path": ".config/hypr/scripts/volume_ctl.sh",
    "content": "#!/usr/bin/env bash\n\n# You can call this script like this:\n# $ ./volumeControl.sh up\n# $ ./volumeControl.sh down\n# $ ./volumeControl.sh mute\n\n# Script modified from these wonderful people:\n# https://github.com/dastorm/volume-notification-dunst/blob/master/volume.sh\n# https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a\n\nfunction get_volume {\n  pactl get-sink-volume @DEFAULT_SINK@ | head -n 1 | cut -f 2 -d '/' | cut -d '%' -f 1 | xargs\n}\n\nfunction is_mute {\n  amixer get Master | grep '%' | grep -oE '[^ ]+$' | grep off > /dev/null\n}\n\nfunction send_notification {\n  iconSound=\"audio-volume-high\"\n  iconMuted=\"audio-volume-muted\"\n  if is_mute ; then\n    dunstify -i $iconMuted -r 2593 -u normal \"Muted\"\n  else\n    volume=$(get_volume)\n    # Make the bar with the special character ─ (it's not dash -)\n    # https://en.wikipedia.org/wiki/Box-drawing_character\n    bar=$(seq --separator=\"─\" 0 \"$(((volume - 1) / 4))\" | sed 's/[0-9]//g')\n    space=$(seq --separator=\" \" 0 \"$(((100 - volume) / 4))\" | sed 's/[0-9]//g')\n    # Send the notification\n    dunstify -i $iconSound -r 2593 -u normal \"|$bar$space| $volume%\"\n  fi\n}\n\ncase $1 in\n  up)\n    # set the volume on (if it was muted)\n    amixer -D pipewire set Master on > /dev/null\n    # up the volume (+ 5%)\n    pactl set-sink-volume @DEFAULT_SINK@ +5% > /dev/null\n    send_notification\n    canberra-gtk-play -i audio-volume-change -d \"changeVolume\"\n    ;;\n  down)\n    amixer -D pipewire set Master on > /dev/null\n    pactl set-sink-volume @DEFAULT_SINK@ -5% > /dev/null\n    send_notification\n    canberra-gtk-play -i audio-volume-change -d \"changeVolume\"\n    ;;\n  mute)\n    # toggle mute\n    amixer -D pipewire set Master 1+ toggle > /dev/null\n    send_notification\n    ;;\nesac\n"
  },
  {
    "path": ".config/kitty/kitty.conf",
    "content": "# vim:ft=kitty\n\nscrollback_pager bash -c \"exec nvim 63<&0 0</dev/null -u NONE -c 'map <silent> q :qa!<CR>' -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 </dev/fd/63 -e \\\"s/'$'\\x1b'']8;;file:[^\\]*[\\]//g\\\" && sleep 0.01 && printf \\\"'$'\\x1b'']2;\\\"'\"\n\nbackground_opacity 0.8\nwindow_padding_width 15\nallow_remote_control yes\nenable_audio_bell no\nurl_style single\ntab_bar_style powerline\n\nmap kitty_mod+o     next_tab\nmap kitty_mod+i     previous_tab\nmap kitty_mod+t     new_tab\nmap kitty_mod+q     close_tab\nmap kitty_mod+.     move_tab_forward\nmap kitty_mod+,     move_tab_backward\nmap kitty_mod+alt+t set_tab_title\n\nmap kitty_mod+up        scroll_line_up\nmap kitty_mod+k         scroll_line_up\nmap kitty_mod+down      scroll_line_down\nmap kitty_mod+j         scroll_line_down\nmap kitty_mod+u \t      scroll_page_up\nmap kitty_mod+d \t      scroll_page_down\nmap kitty_mod+home      scroll_home\nmap kitty_mod+end       scroll_end\nmap kitty_mod+h         show_scrollback\n\nmap ctrl+backspace send_text all \\x17\n\n# The basic colors\nforeground              #CDD6F4\nbackground              #1E1E2E\nselection_foreground    #1E1E2E\nselection_background    #F5E0DC\n\n# Cursor colors\ncursor                  #F5E0DC\ncursor_text_color       #1E1E2E\n\n# URL underline color when hovering with mouse\nurl_color               #F5E0DC\n\n# Kitty window border colors\nactive_border_color     #B4BEFE\ninactive_border_color   #6C7086\nbell_border_color       #F9E2AF\n\n# OS Window titlebar colors\nwayland_titlebar_color system\nmacos_titlebar_color system\n\n# Tab bar colors\nactive_tab_foreground   #11111B\nactive_tab_background   #CBA6F7\ninactive_tab_foreground #CDD6F4\ninactive_tab_background #181825\ntab_bar_background      #11111B\n\n# Colors for marks (marked text in the terminal)\nmark1_foreground #1E1E2E\nmark1_background #B4BEFE\nmark2_foreground #1E1E2E\nmark2_background #CBA6F7\nmark3_foreground #1E1E2E\nmark3_background #74C7EC\n\n# The 16 terminal colors\n\n# black\ncolor0 #45475A\ncolor8 #585B70\n\n# red\ncolor1 #F38BA8\ncolor9 #F38BA8\n\n# green\ncolor2  #A6E3A1\ncolor10 #A6E3A1\n\n# yellow\ncolor3  #F9E2AF\ncolor11 #F9E2AF\n\n# blue\ncolor4  #89B4FA\ncolor12 #89B4FA\n\n# magenta\ncolor5  #F5C2E7\ncolor13 #F5C2E7\n\n# cyan\ncolor6  #94E2D5\ncolor14 #94E2D5\n\n# white\ncolor7  #BAC2DE\ncolor15 #A6ADC8\n"
  },
  {
    "path": ".config/lf/colors",
    "content": "# vim:ft=dircolors\n# (This is not a dircolors file but it helps to highlight colors and comments)\n\n# default values from dircolors\n# (entries with a leading # are not implemented in lf)\n# #no     00              # NORMAL\n# fi      00              # FILE\n# #rs     0               # RESET\n# di      01;34           # DIR\n# ln      01;36           # LINK\n# #mh     00              # MULTIHARDLINK\n# pi      40;33           # FIFO\n# so      01;35           # SOCK\n# #do     01;35           # DOOR\n# bd      40;33;01        # BLK\n# cd      40;33;01        # CHR\n# or      40;31;01        # ORPHAN\n# #mi     00              # MISSING\n# su      37;41           # SETUID\n# sg      30;43           # SETGID\n# #ca     30;41           # CAPABILITY\n# tw      30;42           # STICKY_OTHER_WRITABLE\n# ow      34;42           # OTHER_WRITABLE\n# st      37;44           # STICKY\n# ex      01;32           # EXEC\n\n# default values from lf (with matching order)\n# ln      01;36   # LINK\n# or      31;01   # ORPHAN\n# tw      01;34   # STICKY_OTHER_WRITABLE\n# ow      01;34   # OTHER_WRITABLE\n# st      01;34   # STICKY\n# di      01;34   # DIR\n# pi      33      # FIFO\n# so      01;35   # SOCK\n# bd      33;01   # BLK\n# cd      33;01   # CHR\n# su      01;32   # SETUID\n# sg      01;32   # SETGID\n# ex      01;32   # EXEC\n# fi      00      # FILE\n\n# file types (with matching order)\nln      01;36   # LINK\nor      31;01   # ORPHAN\ntw      34      # STICKY_OTHER_WRITABLE\now      34      # OTHER_WRITABLE\nst      01;34   # STICKY\ndi      01;34   # DIR\npi      33      # FIFO\nso      01;35   # SOCK\nbd      33;01   # BLK\ncd      33;01   # CHR\nsu      01;32   # SETUID\nsg      01;32   # SETGID\nex      01;32   # EXEC\nfi      00      # FILE\n\n# archives or compressed (dircolors defaults)\n*.tar   01;31\n*.tgz   01;31\n*.arc   01;31\n*.arj   01;31\n*.taz   01;31\n*.lha   01;31\n*.lz4   01;31\n*.lzh   01;31\n*.lzma  01;31\n*.tlz   01;31\n*.txz   01;31\n*.tzo   01;31\n*.t7z   01;31\n*.zip   01;31\n*.z     01;31\n*.dz    01;31\n*.gz    01;31\n*.lrz   01;31\n*.lz    01;31\n*.lzo   01;31\n*.xz    01;31\n*.zst   01;31\n*.tzst  01;31\n*.bz2   01;31\n*.bz    01;31\n*.tbz   01;31\n*.tbz2  01;31\n*.tz    01;31\n*.deb   01;31\n*.rpm   01;31\n*.jar   01;31\n*.war   01;31\n*.ear   01;31\n*.sar   01;31\n*.rar   01;31\n*.alz   01;31\n*.ace   01;31\n*.zoo   01;31\n*.cpio  01;31\n*.7z    01;31\n*.rz    01;31\n*.cab   01;31\n*.wim   01;31\n*.swm   01;31\n*.dwm   01;31\n*.esd   01;31\n\n# image formats (dircolors defaults)\n*.jpg   01;35\n*.jpeg  01;35\n*.mjpg  01;35\n*.mjpeg 01;35\n*.gif   01;35\n*.bmp   01;35\n*.pbm   01;35\n*.pgm   01;35\n*.ppm   01;35\n*.tga   01;35\n*.xbm   01;35\n*.xpm   01;35\n*.tif   01;35\n*.tiff  01;35\n*.png   01;35\n*.svg   01;35\n*.svgz  01;35\n*.mng   01;35\n*.pcx   01;35\n*.mov   01;35\n*.mpg   01;35\n*.mpeg  01;35\n*.m2v   01;35\n*.mkv   01;35\n*.webm  01;35\n*.ogm   01;35\n*.mp4   01;35\n*.m4v   01;35\n*.mp4v  01;35\n*.vob   01;35\n*.qt    01;35\n*.nuv   01;35\n*.wmv   01;35\n*.asf   01;35\n*.rm    01;35\n*.rmvb  01;35\n*.flc   01;35\n*.avi   01;35\n*.fli   01;35\n*.flv   01;35\n*.gl    01;35\n*.dl    01;35\n*.xcf   01;35\n*.xwd   01;35\n*.yuv   01;35\n*.cgm   01;35\n*.emf   01;35\n*.ogv   01;35\n*.ogx   01;35\n\n# audio formats (dircolors defaults)\n*.aac   00;36\n*.au    00;36\n*.flac  00;36\n*.m4a   00;36\n*.mid   00;36\n*.midi  00;36\n*.mka   00;36\n*.mp3   00;36\n*.mpc   00;36\n*.ogg   00;36\n*.ra    00;36\n*.wav   00;36\n*.oga   00;36\n*.opus  00;36\n*.spx   00;36\n*.xspf  00;36\n"
  },
  {
    "path": ".config/lf/icons",
    "content": "# vim:ft=conf\n\n# These examples require Nerd Fonts or a compatible font to be used.\n# See https://www.nerdfonts.com for more information.\n\n# default values from lf (with matching order)\n# ln      l       # LINK\n# or      l       # ORPHAN\n# tw      t       # STICKY_OTHER_WRITABLE\n# ow      d       # OTHER_WRITABLE\n# st      t       # STICKY\n# di      d       # DIR\n# pi      p       # FIFO\n# so      s       # SOCK\n# bd      b       # BLK\n# cd      c       # CHR\n# su      u       # SETUID\n# sg      g       # SETGID\n# ex      x       # EXEC\n# fi      -       # FILE\n\n# file types (with matching order)\nln             # LINK\nor             # ORPHAN\ntw      t       # STICKY_OTHER_WRITABLE\now             # OTHER_WRITABLE\nst      t       # STICKY\ndi             # DIR\npi      p       # FIFO\nso      s       # SOCK\nbd      b       # BLK\ncd      c       # CHR\nsu      u       # SETUID\nsg      g       # SETGID\nex             # EXEC\nfi             # FILE\n\n# file extensions (vim-devicons)\n*.styl          \n*.sass          \n*.scss          \n*.htm           \n*.html          \n*.slim          \n*.haml          \n*.ejs           \n*.css           \n*.less          \n*.md            \n*.mdx           \n*.markdown      \n*.rmd           \n*.json          \n*.webmanifest   \n*.js            \n*.mjs           \n*.jsx           \n*.rb            \n*.gemspec       \n*.rake          \n*.php           \n*.py            \n*.pyc           \n*.pyo           \n*.pyd           \n*.coffee        \n*.mustache      \n*.hbs           \n*.conf          \n*.ini           \n*.yml           \n*.yaml          \n*.toml          \n*.bat           \n*.mk            \n*.jpg           \n*.jpeg          \n*.bmp           \n*.png           \n*.webp          \n*.gif           \n*.ico           \n*.twig          \n*.cpp           \n*.c++           \n*.cxx           \n*.cc            \n*.cp            \n*.c             \n*.cs            \n*.h             \n*.hh            \n*.hpp           \n*.hxx           \n*.hs            \n*.lhs           \n*.nix           \n*.lua           \n*.java          \n*.sh            \n*.fish          \n*.bash          \n*.zsh           \n*.ksh           \n*.csh           \n*.awk           \n*.ps1           \n*.ml            λ\n*.mli           λ\n*.diff          \n*.db            \n*.sql           \n*.dump          \n*.clj           \n*.cljc          \n*.cljs          \n*.edn           \n*.scala         \n*.go            \n*.dart          \n*.xul           \n*.sln           \n*.suo           \n*.pl            \n*.pm            \n*.t             \n*.rss           \n'*.f#'          \n*.fsscript      \n*.fsx           \n*.fs            \n*.fsi           \n*.rs            \n*.rlib          \n*.d             \n*.erl           \n*.hrl           \n*.ex            \n*.exs           \n*.eex           \n*.leex          \n*.heex          \n*.vim           \n*.ai            \n*.psd           \n*.psb           \n*.ts            \n*.tsx           \n*.jl            \n*.pp            \n*.vue           ﵂\n*.elm           \n*.swift         \n*.xcplayground  \n*.tex           ﭨ\n*.r             ﳒ\n*.rproj         鉶\n*.sol           ﲹ\n*.pem           \n\n# file names (vim-devicons) (case-insensitive not supported in lf)\n*gruntfile.coffee       \n*gruntfile.js           \n*gruntfile.ls           \n*gulpfile.coffee        \n*gulpfile.js            \n*gulpfile.ls            \n*mix.lock               \n*dropbox                \n*.ds_store              \n*.gitconfig             \n*.gitignore             \n*.gitattributes         \n*.gitlab-ci.yml         \n*.bashrc                \n*.zshrc                 \n*.zshenv                \n*.zprofile              \n*.vimrc                 \n*.gvimrc                \n*_vimrc                 \n*_gvimrc                \n*.bashprofile           \n*favicon.ico            \n*license                \n*node_modules           \n*react.jsx              \n*procfile               \n*dockerfile             \n*docker-compose.yml     \n*rakefile               \n*config.ru              \n*gemfile                \n*makefile               \n*cmakelists.txt         \n*robots.txt             ﮧ\n\n# file names (case-sensitive adaptations)\n*Gruntfile.coffee       \n*Gruntfile.js           \n*Gruntfile.ls           \n*Gulpfile.coffee        \n*Gulpfile.js            \n*Gulpfile.ls            \n*Dropbox                \n*.DS_Store              \n*LICENSE                \n*React.jsx              \n*Procfile               \n*Dockerfile             \n*Docker-compose.yml     \n*Rakefile               \n*Gemfile                \n*Makefile               \n*CMakeLists.txt         \n\n# file patterns (vim-devicons) (patterns not supported in lf)\n# .*jquery.*\\.js$         \n# .*angular.*\\.js$        \n# .*backbone.*\\.js$       \n# .*require.*\\.js$        \n# .*materialize.*\\.js$    \n# .*materialize.*\\.css$   \n# .*mootools.*\\.js$       \n# .*vimrc.*               \n# Vagrantfile$            \n\n# file patterns (file name adaptations)\n*jquery.min.js          \n*angular.min.js         \n*backbone.min.js        \n*require.min.js         \n*materialize.min.js     \n*materialize.min.css    \n*mootools.min.js        \n*vimrc                  \nVagrantfile             \n\n# archives or compressed (extensions from dircolors defaults)\n*.tar   \n*.tgz   \n*.arc   \n*.arj   \n*.taz   \n*.lha   \n*.lz4   \n*.lzh   \n*.lzma  \n*.tlz   \n*.txz   \n*.tzo   \n*.t7z   \n*.zip   \n*.z     \n*.dz    \n*.gz    \n*.lrz   \n*.lz    \n*.lzo   \n*.xz    \n*.zst   \n*.tzst  \n*.bz2   \n*.bz    \n*.tbz   \n*.tbz2  \n*.tz    \n*.deb   \n*.rpm   \n*.jar   \n*.war   \n*.ear   \n*.sar   \n*.rar   \n*.alz   \n*.ace   \n*.zoo   \n*.cpio  \n*.7z    \n*.rz    \n*.cab   \n*.wim   \n*.swm   \n*.dwm   \n*.esd   \n\n# image formats (extensions from dircolors defaults)\n*.jpg   \n*.jpeg  \n*.mjpg  \n*.mjpeg \n*.gif   \n*.bmp   \n*.pbm   \n*.pgm   \n*.ppm   \n*.tga   \n*.xbm   \n*.xpm   \n*.tif   \n*.tiff  \n*.png   \n*.svg   \n*.svgz  \n*.mng   \n*.pcx   \n*.mov   \n*.mpg   \n*.mpeg  \n*.m2v   \n*.mkv   \n*.webm  \n*.ogm   \n*.mp4   \n*.m4v   \n*.mp4v  \n*.vob   \n*.qt    \n*.nuv   \n*.wmv   \n*.asf   \n*.rm    \n*.rmvb  \n*.flc   \n*.avi   \n*.fli   \n*.flv   \n*.gl    \n*.dl    \n*.xcf   \n*.xwd   \n*.yuv   \n*.cgm   \n*.emf   \n*.ogv   \n*.ogx   \n\n# audio formats (extensions from dircolors defaults)\n*.aac   \n*.au    \n*.flac  \n*.m4a   \n*.mid   \n*.midi  \n*.mka   \n*.mp3   \n*.mpc   \n*.ogg   \n*.ra    \n*.wav   \n*.oga   \n*.opus  \n*.spx   \n*.xspf  \n\n# other formats\n*.pdf   \n"
  },
  {
    "path": ".config/lf/lfrc",
    "content": "set shell bash\nset shellopts '-eu'\nset icons\nset relativenumber\nset scrolloff 10\nset ifs \"\\n\"\nset previewer less\n\n\nmap a push :mkdir<space>\nmap C clear\nmap c cut\nmap d delete\nmap D trash\nmap o &mimeopen $f\nmap O $mimeopen --ask $f\nmap <a-n> newfold\nmap ` push :open-with<space>\n\ncmd open-with %\"$@\" \"$fx\"\ncmd trash %trash-put $fx\ncmd mkdir %mkdir \"$@\"\n\ncmd newfold ${{\n    set -f\n    read newd\n    printf \"Directory name: \"\n    mkdir -- \"$newd\"\n    mv -- $fx \"$newd\"\n}}\n\ncmd j %{{\n    result=\"$(zoxide query --exclude \"${PWD}\" -- \"$@\")\"\n    lf -remote \"send ${id} cd '${result}'\"\n}}\n\ncmd ji ${{\n    result=\"$(zoxide query -i -- \"$@\")\"\n    lf -remote \"send ${id} cd '${result}'\"\n}}\n\ncmd fzf_jump ${{\n    res=\"$(find . -maxdepth 1 | fzf --reverse --header='Jump to location' | sed 's/\\\\/\\\\\\\\/g;s/\"/\\\\\"/g')\"\n    if [ -d \"$res\" ] ; then\n        cmd=\"cd\"\n    elif [ -f \"$res\" ] ; then\n        cmd=\"select\"\n    else\n        exit 0\n    fi\n    lf -remote \"send $id $cmd \\\"$res\\\"\"\n}}\nmap <c-f> :fzf_jump\n\ncmd fzf_search ${{\n    res=\"$( \\\n        RG_PREFIX=\"rg --column --line-number --no-heading --color=always \\\n            --smart-case \"\n        FZF_DEFAULT_COMMAND=\"$RG_PREFIX ''\" \\\n            fzf --bind \"change:reload:$RG_PREFIX {q} || true\" \\\n            --ansi --layout=reverse --header 'Search in files' \\\n            | cut -d':' -f1\n    )\"\n    [ ! -z \"$res\" ] && lf -remote \"send $id select \\\"$res\\\"\"\n}}\nmap gs :fzf_search\n\ncmd extract ${{\n    set -f\n    case $f in\n        *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;\n        *.tar.gz|*.tgz) tar xzvf $f;;\n        *.tar.xz|*.txz) tar xJvf $f;;\n        *.zip) unzip $f;;\n        *.rar) unrar x $f;;\n        *.7z) 7z x $f;;\n    esac\n}}\n\n# compress current file or selected files with tar and gunzip\ncmd tar ${{\n    set -f\n    mkdir $1\n    cp -r $fx $1\n    tar czf $1.tar.gz $1\n    rm -rf $1\n}}\n\n# compress current file or selected files with zip\ncmd zip ${{\n    set -f\n    mkdir $1\n    cp -r $fx $1\n    zip -r $1.zip $1\n    rm -rf $1\n}}\n\ncmd on-cd &{{\n    # '&' commands run silently in background (which is what we want here),\n    # but are not connected to stdout.\n    # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty\n    printf \"\\033]0; $(pwd | sed \"s|$HOME|~|\") - lf\\007\" > /dev/tty\n}}\non-cd\n\ncmd open ${{\n    case $(file --mime-type -Lb $f) in\n        text/*) $EDITOR $fx;;\n        *) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;;\n    esac\n}}\n\ncmd select-files ${{\n    { echo \"$fs\"; find -L \"$(pwd)\" -mindepth 1 -maxdepth 1 -type f; } |\n        if [ \"$lf_hidden\" = \"false\" ]; then\n          # remove any hidden files so you only select files you can see.\n          grep -v '/\\.[^/]\\+$'\n        else\n          cat\n        fi |\n        sed '/^$/d' | sort | uniq -u |\n        xargs -d '\\n' -r -I{} lf -remote \"send $id toggle {}\"\n}}\n\ncmd select-dirs ${{\n    { echo \"$fs\"; find -L \"$(pwd)\" -mindepth 1 -maxdepth 1 -type d; } |\n        if [ \"$lf_hidden\" = \"false\" ]; then\n          grep -v '/\\.[^/]\\+$'\n        else\n          cat\n        fi |\n        sed '/^$/d' | sort | uniq -u |\n        xargs -d '\\n' -r -I{} lf -remote \"send $id toggle {}\"\n}}\n\n\ncmd cut-add %{{\n    files=$(lf -remote load | tail -n +2)\n    newline=$'\\n'\n\n    # change to $fx to add current file when no toggled\n    # files exist.\n    if [ -n \"$files\" ]; then\n        new_files=$(echo \"$files${newline}$fs\" | sort | uniq)\n    else\n        new_files=$fs\n    fi\n    # remove empty lines from the file list, because they keep messing\n    # up the selection.\n    new_files=$(echo \"$new_files\" | sed --quiet -e '/^$/d' -e 'p')\n\n    lf -remote \"save${newline}move${newline}${new_files}${newline}\"\n    lf -remote \"send $id unselect${newline}send $id sync\"\n}}\n\ncmd cut-remove %{{\n    files=$(lf -remote load)\n    operation=$(echo \"$files\" | head -n1)\n\n    if [ \"$operation\" != \"move\" ]; then\n        lf -remote \"send $id echoerr no files in cut list.\"\n        exit 1\n    fi\n\n    files=$(echo \"$files\" | tail -n +2)\n    newline=$'\\n'\n\n    # change to $fx to remove current file when no toggled\n    # files exist.\n    if [ -n \"$files\" ]; then\n        # here we want all files in $files that aren't in $fs, making sure\n        # that none of the entries in $fs are included, even when they aren't\n        # in $files. To do this we concatenate $files and $fs (twice), printing\n        # only the uniqe lines.\n        new_files=$(echo \"$files$newline$fs$newline$fs\" | sort | uniq -u)\n    else\n        new_files=$files\n    fi\n    new_files=$(echo \"$new_files\" | sed --quiet -e '/^$/d' -e 'p')\n\n    lf -remote \"save${newline}move${newline}${new_files}${newline}\"\n    lf -remote \"send $id unselect${newline}send $id sync\"\n}}\n\ncmd yank-dirname $dirname -- \"$f\" | head -c-1 | xclip -i -selection clipboard\ncmd yank-path $printf '%s' \"$fx\" | xclip -i -selection clipboard\ncmd yank-basename $basename -a -- $fx | head -c-1 | xclip -i -selection clipboard\n"
  },
  {
    "path": ".config/nvim/init.lua",
    "content": "require(\"user.options\")\nrequire(\"user.keymaps\")\nrequire(\"user.plugins\")\nrequire(\"user.autocommands\")\nrequire(\"user.colorscheme\")\nrequire(\"user.cmp\")\nrequire(\"user.telescope\")\nrequire(\"user.treesitter\")\nrequire(\"user.autopairs\")\nrequire(\"user.comment\")\nrequire(\"user.gitsigns\")\nrequire(\"user.nvim-tree\")\nrequire(\"user.bufferline\")\nrequire(\"user.lualine\")\nrequire(\"user.toggleterm\")\nrequire(\"user.project\")\nrequire(\"user.impatient\")\nrequire(\"user.illuminate\")\nrequire(\"user.indentline\")\nrequire(\"user.alpha\")\nrequire(\"user.lsp\")\nrequire(\"user.dap\")\nrequire(\"user.colorizer\")\nrequire(\"user.cutlass\")\nrequire(\"user.substitute\")\nrequire(\"user.autotag\")\nrequire(\"user.whichkey\")\nrequire(\"user.trouble\")\nrequire(\"user.testing\")\nrequire(\"user.diffview\")\nrequire(\"user.surround\")\nrequire(\"user.smart-splits\")\nrequire(\"user.live-command\")\n"
  },
  {
    "path": ".config/nvim/lua/user/alpha.lua",
    "content": "local status_ok, alpha = pcall(require, \"alpha\")\nif not status_ok then\n\treturn\nend\n\nlocal dashboard = require(\"alpha.themes.dashboard\")\nlocal fortune = require(\"alpha.fortune\")\n\n-- Inspired by https://github.com/glepnir/dashboard-nvim with my own flair\nlocal header = {\n\t[[                                                                   ]],\n\t[[      ████ ██████           █████      ██                    ]],\n\t[[     ███████████             █████                            ]],\n\t[[     █████████ ███████████████████ ███   ███████████  ]],\n\t[[    █████████  ███    █████████████ █████ ██████████████  ]],\n\t[[   █████████ ██████████ █████████ █████ █████ ████ █████  ]],\n\t[[ ███████████ ███    ███ █████████ █████ █████ ████ █████ ]],\n\t[[██████  █████████████████████ ████ █████ █████ ████ ██████]],\n}\n\n-- Make the header a bit more fun with some color!\nlocal function colorize_header()\n\tlocal catppuccin = require(\"catppuccin.palettes\").get_palette()\n\tlocal colors = {\n\t\tcatppuccin.red,\n\t\tcatppuccin.red,\n\t\tcatppuccin.peach,\n\t\tcatppuccin.yellow,\n\t\tcatppuccin.green,\n\t\tcatppuccin.sky,\n\t\tcatppuccin.blue,\n\t\tcatppuccin.mauve,\n\t\tcatppuccin.overlay0,\n\t}\n\tfor i, color in pairs(colors) do\n\t\tlocal cmd = \"hi StartLogo\" .. i .. \" guifg=\" .. color\n\t\tvim.cmd(cmd)\n\tend\n\n\tlocal lines = {}\n\n\tfor i, chars in pairs(header) do\n\t\tlocal line = {\n\t\t\ttype = \"text\",\n\t\t\tval = chars,\n\t\t\topts = {\n\t\t\t\thl = \"StartLogo\" .. i,\n\t\t\t\tshrink_margin = false,\n\t\t\t\tposition = \"center\",\n\t\t\t},\n\t\t}\n\n\t\ttable.insert(lines, line)\n\tend\n\n\treturn lines\nend\n\ndashboard.section.buttons.val = {\n\tdashboard.button(\"f\", \" \" .. \" Find file\", \":Telescope find_files <CR>\"),\n\tdashboard.button(\"e\", \" \" .. \" New file\", \":ene <BAR> startinsert <CR>\"),\n\tdashboard.button(\"p\", \" \" .. \" Find project\", \":lua require('telescope').extensions.projects.projects()<CR>\"),\n\tdashboard.button(\"r\", \" \" .. \" Recent files\", \":Telescope oldfiles <CR>\"),\n\tdashboard.button(\"t\", \" \" .. \" Find text\", \":Telescope live_grep <CR>\"),\n\tdashboard.button(\"c\", \" \" .. \" Config\", \":e ~/.config/nvim/init.lua <CR>\"),\n\tdashboard.button(\"q\", \" \" .. \" Quit\", \":qa<CR>\"),\n}\n\n-- Everyone could use a good fortune cookie from time to time, right?\ndashboard.section.footer.val = fortune()\ndashboard.section.footer.opts.hl = \"StartLogo9\"\n\n-- Hide all the unnecessary visual elements while on the dashboard, and add\n-- them back when leaving the dashboard.\nlocal group = vim.api.nvim_create_augroup(\"CleanDashboard\", {})\n\nvim.api.nvim_create_autocmd(\"User\", {\n\tgroup = group,\n\tpattern = \"AlphaReady\",\n\tcallback = function()\n\t\tvim.opt.showtabline = 0\n\t\tvim.opt.showmode = false\n\t\tvim.opt.laststatus = 0\n\t\tvim.opt.showcmd = false\n\t\tvim.opt.ruler = false\n\tend,\n})\n\nvim.api.nvim_create_autocmd(\"BufUnload\", {\n\tgroup = group,\n\tpattern = \"<buffer>\",\n\tcallback = function()\n\t\tvim.opt.showtabline = 2\n\t\tvim.opt.showmode = true\n\t\tvim.opt.laststatus = 3\n\t\tvim.opt.showcmd = true\n\t\tvim.opt.ruler = true\n\tend,\n})\n\nalpha.setup({\n\tlayout = {\n\t\t{ type = \"padding\", val = 8 },\n\t\t{ type = \"group\", val = colorize_header() },\n\t\t{ type = \"padding\", val = 3 },\n\t\tdashboard.section.buttons,\n\t\t{ type = \"padding\", val = 1 },\n\t\tdashboard.section.footer,\n\t},\n\topts = { margin = 5 },\n})\n"
  },
  {
    "path": ".config/nvim/lua/user/autocommands.lua",
    "content": "-- Use 'q' to quit from common plugins\nvim.api.nvim_create_autocmd({ \"FileType\" }, {\n  pattern = { \"qf\", \"help\", \"man\", \"lspinfo\", \"spectre_panel\", \"lir\" },\n  callback = function()\n    vim.cmd [[\n      nnoremap <silent> <buffer> q :close<CR> \n      set nobuflisted \n    ]]\n  end,\n})\n\n-- Remove statusline and tabline when in Alpha\nvim.api.nvim_create_autocmd({ \"User\" }, {\n  pattern = { \"AlphaReady\" },\n  callback = function()\n    vim.cmd [[\n      set showtabline=0 | autocmd BufUnload <buffer> set showtabline=2\n      set laststatus=0 | autocmd BufUnload <buffer> set laststatus=3\n    ]]\n  end,\n})\n\n-- Set wrap and spell in markdown and gitcommit\nvim.api.nvim_create_autocmd({ \"FileType\" }, {\n  pattern = { \"gitcommit\", \"markdown\" },\n  callback = function()\n    vim.opt_local.wrap = true\n    vim.opt_local.spell = true\n  end,\n})\n\nvim.cmd \"autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif\"\n\n-- Fixes Autocomment\nvim.api.nvim_create_autocmd({ \"BufWinEnter\" }, {\n  callback = function()\n    vim.cmd \"set formatoptions-=cro\"\n  end,\n})\n\n-- Highlight Yanked Text\nvim.api.nvim_create_autocmd({ \"TextYankPost\" }, {\n  callback = function()\n    vim.highlight.on_yank { higroup = \"Visual\", timeout = 200 }\n  end,\n})\n\n\nvim.api.nvim_create_autocmd({ \"InsertEnter\" }, {\n  callback = function()\n    vim.opt_local.relativenumber = false\n  end,\n})\n\nvim.api.nvim_create_autocmd({ \"InsertLeave\" }, {\n  callback = function()\n    vim.opt_local.relativenumber = true\n  end,\n})\n"
  },
  {
    "path": ".config/nvim/lua/user/autopairs.lua",
    "content": "-- Setup nvim-cmp.\nlocal status_ok, npairs = pcall(require, \"nvim-autopairs\")\nif not status_ok then\n  return\nend\n\nnpairs.setup {\n  check_ts = true, -- treesitter integration\n  disable_filetype = { \"TelescopePrompt\" },\n}\n\nlocal cmp_autopairs = require \"nvim-autopairs.completion.cmp\"\nlocal cmp_status_ok, cmp = pcall(require, \"cmp\")\nif not cmp_status_ok then\n  return\nend\ncmp.event:on(\"confirm_done\", cmp_autopairs.on_confirm_done {})\n"
  },
  {
    "path": ".config/nvim/lua/user/autotag.lua",
    "content": "local status_ok, autotag = pcall(require, \"nvim-ts-autotag\")\nif not status_ok then\n  return\nend\n\nautotag.setup()\n"
  },
  {
    "path": ".config/nvim/lua/user/bufferline.lua",
    "content": "local status_ok, bufferline = pcall(require, \"bufferline\")\nif not status_ok then\n\treturn\nend\n\nbufferline.setup({\n\toptions = {\n\t\tclose_command = \"Bdelete! %d\", -- can be a string | function, see \"Mouse actions\"\n\t\tright_mouse_command = \"Bdelete! %d\", -- can be a string | function, see \"Mouse actions\"\n\t\toffsets = { { filetype = \"NvimTree\", text = \"\", padding = 1 } },\n\t\tseparator_style = \"thin\", -- | \"thick\" | \"thin\" | { 'any', 'any' },\n\t\tnumbers = \"ordinal\",\n\t\tdiagnostics = \"nvim_lsp\",\n\t},\n\thighlights = {\n\t\tfill = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"#ff0000\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t},\n\t\tbackground = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"TabLine\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t},\n\n\t\tbuffer_visible = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"TabLine\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t},\n\n\t\tclose_button = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"TabLine\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t},\n\t\tclose_button_visible = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"TabLine\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t},\n\n\t\ttab_selected = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"Normal\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"Normal\" },\n\t\t},\n\t\ttab = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"TabLine\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t},\n\t\ttab_close = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"TabLineSel\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"Normal\" },\n\t\t},\n\n\t\tduplicate_selected = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"TabLineSel\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLineSel\" },\n\t\t\titalic = true,\n\t\t},\n\t\tduplicate_visible = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"TabLine\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t\titalic = true,\n\t\t},\n\t\tduplicate = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"TabLine\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t\titalic = true,\n\t\t},\n\n\t\tmodified = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"TabLine\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t},\n\t\tmodified_selected = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"Normal\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"Normal\" },\n\t\t},\n\t\tmodified_visible = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"TabLine\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t},\n\n\t\tseparator = {\n\t\t\tfg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"TabLine\" },\n\t\t},\n\t\tseparator_selected = {\n\t\t\tfg = { attribute = \"bg\", highlight = \"Normal\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"Normal\" },\n\t\t},\n\t\tindicator_selected = {\n\t\t\tfg = { attribute = \"fg\", highlight = \"LspDiagnosticsDefaultHint\" },\n\t\t\tbg = { attribute = \"bg\", highlight = \"Normal\" },\n\t\t},\n\t},\n})\n\nvim.cmd([[\nnnoremap <silent><leader>1 <cmd>lua require(\"bufferline\").go_to_buffer(1, true)<cr>\nnnoremap <silent><leader>2 <cmd>lua require(\"bufferline\").go_to_buffer(2, true)<cr>\nnnoremap <silent><leader>3 <cmd>lua require(\"bufferline\").go_to_buffer(3, true)<cr>\nnnoremap <silent><leader>4 <cmd>lua require(\"bufferline\").go_to_buffer(4, true)<cr>\nnnoremap <silent><leader>5 <cmd>lua require(\"bufferline\").go_to_buffer(5, true)<cr>\nnnoremap <silent><leader>6 <cmd>lua require(\"bufferline\").go_to_buffer(6, true)<cr>\nnnoremap <silent><leader>7 <cmd>lua require(\"bufferline\").go_to_buffer(7, true)<cr>\nnnoremap <silent><leader>8 <cmd>lua require(\"bufferline\").go_to_buffer(8, true)<cr>\nnnoremap <silent><leader>9 <cmd>lua require(\"bufferline\").go_to_buffer(9, true)<cr>\nnnoremap <silent><leader>0 <cmd>lua require(\"bufferline\").go_to_buffer(10, true)<cr>\nnnoremap <silent><leader>$ <cmd>lua require(\"bufferline\").go_to_buffer(-1, true)<cr>\n]])\n"
  },
  {
    "path": ".config/nvim/lua/user/cmp.lua",
    "content": "local cmp_status_ok, cmp = pcall(require, \"cmp\")\nif not cmp_status_ok then\n\treturn\nend\n\nlocal snip_status_ok, luasnip = pcall(require, \"luasnip\")\nif not snip_status_ok then\n\treturn\nend\n\nrequire(\"luasnip/loaders/from_vscode\").lazy_load()\n\nlocal check_backspace = function()\n\tlocal col = vim.fn.col(\".\") - 1\n\treturn col == 0 or vim.fn.getline(\".\"):sub(col, col):match(\"%s\")\nend\n\nlocal kind_icons = {\n\tText = \"\",\n\tMethod = \"\",\n\tFunction = \"\",\n\tConstructor = \"\",\n\tField = \"\",\n\tVariable = \"\",\n\tClass = \"\",\n\tInterface = \"\",\n\tModule = \"\",\n\tProperty = \"\",\n\tUnit = \"\",\n\tValue = \"\",\n\tEnum = \"\",\n\tKeyword = \"\",\n\tSnippet = \"\",\n\tColor = \"\",\n\tFile = \"\",\n\tReference = \"\",\n\tFolder = \"\",\n\tEnumMember = \"\",\n\tConstant = \"\",\n\tStruct = \"\",\n\tEvent = \"\",\n\tOperator = \"\",\n\tTypeParameter = \"\",\n}\n\ncmp.setup({\n\tsnippet = {\n\t\texpand = function(args)\n\t\t\tluasnip.lsp_expand(args.body) -- For `luasnip` users.\n\t\tend,\n\t},\n\n\tmapping = cmp.mapping.preset.insert({\n\t\t[\"<C-k>\"] = cmp.mapping.select_prev_item(),\n\t\t[\"<C-j>\"] = cmp.mapping.select_next_item(),\n\t\t[\"<C-b>\"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { \"i\", \"c\" }),\n\t\t[\"<C-f>\"] = cmp.mapping(cmp.mapping.scroll_docs(1), { \"i\", \"c\" }),\n\t\t[\"<C-Space>\"] = cmp.mapping(cmp.mapping.complete(), { \"i\", \"c\" }),\n\t\t[\"<C-e>\"] = cmp.mapping({\n\t\t\ti = cmp.mapping.abort(),\n\t\t\tc = cmp.mapping.close(),\n\t\t}),\n\t\t-- Accept currently selected item. If none selected, `select` first item.\n\t\t-- Set `select` to `false` to only confirm explicitly selected items.\n\t\t[\"<CR>\"] = cmp.mapping.confirm({ select = false }),\n\t\t[\"<Tab>\"] = cmp.mapping(function(fallback)\n\t\t\tif cmp.visible() then\n\t\t\t\tcmp.select_next_item()\n\t\t\telseif luasnip.expandable() then\n\t\t\t\tluasnip.expand()\n\t\t\telseif luasnip.expand_or_jumpable() then\n\t\t\t\tluasnip.expand_or_jump()\n\t\t\telseif check_backspace() then\n\t\t\t\tfallback()\n\t\t\telse\n\t\t\t\tfallback()\n\t\t\tend\n\t\tend, {\n\t\t\t\"i\",\n\t\t\t\"s\",\n\t\t}),\n\t\t[\"<S-Tab>\"] = cmp.mapping(function(fallback)\n\t\t\tif cmp.visible() then\n\t\t\t\tcmp.select_prev_item()\n\t\t\telseif luasnip.jumpable(-1) then\n\t\t\t\tluasnip.jump(-1)\n\t\t\telse\n\t\t\t\tfallback()\n\t\t\tend\n\t\tend, {\n\t\t\t\"i\",\n\t\t\t\"s\",\n\t\t}),\n\t}),\n\tformatting = {\n\t\tfields = { \"kind\", \"abbr\", \"menu\" },\n\t\tformat = function(entry, vim_item)\n\t\t\tvim_item.kind = kind_icons[vim_item.kind]\n\t\t\tvim_item.menu = ({\n\t\t\t\tnvim_lsp = \"\",\n\t\t\t\tnvim_lua = \"\",\n\t\t\t\tluasnip = \"\",\n\t\t\t\tbuffer = \"\",\n\t\t\t\tpath = \"\",\n\t\t\t\temoji = \"\",\n\t\t\t\tcmp_tabnine = \"\",\n\t\t\t})[entry.source.name]\n\t\t\treturn vim_item\n\t\tend,\n\t},\n\tsources = {\n\t\t{ name = \"nvim_lsp_signature_help\" },\n\t\t{ name = \"nvim_lsp\" },\n\t\t{ name = \"nvim_lua\" },\n\t\t{ name = \"luasnip\" },\n\t\t{ name = \"buffer\" },\n\t\t{ name = \"path\" },\n\t\t{ name = \"cmp_tabnine\" },\n\t},\n\tconfirm_opts = {\n\t\tbehavior = cmp.ConfirmBehavior.Replace,\n\t\tselect = false,\n\t},\n\twindow = {\n\t\tcompletion = cmp.config.window.bordered(),\n\t\tdocumentation = cmp.config.window.bordered(),\n\t},\n\tenabled = function()\n\t\treturn vim.api.nvim_buf_get_option(0, \"buftype\") ~= \"prompt\" or require(\"cmp_dap\").is_dap_buffer()\n\tend,\n\texperimental = {\n\t\tghost_text = true,\n\t},\n})\n\ncmp.setup.cmdline(\":\", {\n\tmapping = cmp.mapping.preset.cmdline(),\n\tsources = cmp.config.sources({\n\t\t{ name = \"path\" },\n\t}, {\n\t\t{ name = \"cmdline\" },\n\t}),\n})\n\ncmp.setup.filetype({ \"dap-repl\", \"dapui_watches\" }, {\n\tsources = {\n\t\t{ name = \"dap\" },\n\t},\n})\n\ncmp.setup.cmdline(\"/\", {\n\tmapping = cmp.mapping.preset.cmdline(),\n\tsources = {\n\t\t{ name = \"buffer\" },\n\t},\n})\n"
  },
  {
    "path": ".config/nvim/lua/user/colorizer.lua",
    "content": "local status_ok, colorizer = pcall(require, \"colorizer\")\nif not status_ok then\n  return\nend\n\ncolorizer.setup()\n"
  },
  {
    "path": ".config/nvim/lua/user/colorscheme.lua",
    "content": "local status_ok, theme = pcall(require, \"catppuccin\")\nif not status_ok then\n\treturn\nend\n\nvim.g.catppuccin_flavour = \"mocha\"\n\ntheme.setup({\n\ttransparent_background = false,\n\tintegrations = {\n\t\tdap = {\n\t\t\tenabled = true,\n\t\t\tenable_ui = true,\n\t\t},\n\t\tvim_sneak = true,\n\t\tts_rainbow = true,\n\t\twhich_key = true,\n\t},\n})\n\nvim.cmd([[colorscheme catppuccin]])\n\nlocal colors = require(\"catppuccin.palettes\").get_palette()\n\nvim.cmd([[\nhi def IlluminatedWordText guibg=#45475A\nhi def IlluminatedWordWrite guibg=#45475A\nhi def IlluminatedWordRead guibg=#45475A\n]])\n\nvim.g.terminal_color_0 = colors.surface1\nvim.g.terminal_color_8 = colors.surface2\n\nvim.g.terminal_color_1 = colors.red\nvim.g.terminal_color_9 = colors.red\n\nvim.g.terminal_color_2 = colors.green\nvim.g.terminal_color_10 = colors.green\n\nvim.g.terminal_color_3 = colors.yellow\nvim.g.terminal_color_11 = colors.yellow\n\nvim.g.terminal_color_4 = colors.blue\nvim.g.terminal_color_12 = colors.blue\n\nvim.g.terminal_color_5 = colors.magenta\nvim.g.terminal_color_13 = colors.magenta\n\nvim.g.terminal_color_6 = colors.cyan\nvim.g.terminal_color_14 = colors.cyan\n\nvim.g.terminal_color_7 = colors.subtext1\nvim.g.terminal_color_15 = colors.subtext0\n"
  },
  {
    "path": ".config/nvim/lua/user/comment.lua",
    "content": "local status_ok, comment = pcall(require, \"Comment\")\nif not status_ok then\n\treturn\nend\n\ncomment.setup({\n\tpre_hook = require(\"ts_context_commentstring.integrations.comment_nvim\").create_pre_hook(),\n})\n"
  },
  {
    "path": ".config/nvim/lua/user/cutlass.lua",
    "content": "local status_ok, cutlass = pcall(require, \"cutlass\")\nif not status_ok then\n\treturn\nend\n\ncutlass.setup({\n\tcut_key = \"m\",\n\texclude = { \"ns\", \"nS\" },\n})\n"
  },
  {
    "path": ".config/nvim/lua/user/dap.lua",
    "content": "local dap_status_ok, dap = pcall(require, \"dap\")\nif not dap_status_ok then\n\treturn\nend\n\nlocal dap_ui_status_ok, dapui = pcall(require, \"dapui\")\nif not dap_ui_status_ok then\n\treturn\nend\n\nlocal python_ok, python = pcall(require, \"dap-python\")\nif not python_ok then\n\treturn\nend\n\npython.setup(\"/usr/bin/python\")\npython.test_runner = \"pytest\"\n\nlocal js_ok, js = pcall(require, \"dap-vscode-js\")\nif not js_ok then\n\treturn\nend\n\njs.setup({\n\tadapters = { \"pwa-node\" },\n})\n\nfor _, language in ipairs({ \"typescript\", \"javascript\" }) do\n\tdap.configurations[language] = {\n\t\t{\n\t\t\ttype = \"pwa-node\",\n\t\t\trequest = \"launch\",\n\t\t\tname = \"Launch file\",\n\t\t\tprogram = \"${file}\",\n\t\t\tcwd = \"${workspaceFolder}\",\n\t\t},\n\t\t{\n\t\t\ttype = \"pwa-node\",\n\t\t\trequest = \"attach\",\n\t\t\tname = \"Attach\",\n\t\t\tprocessId = require(\"dap.utils\").pick_process,\n\t\t\tcwd = \"${workspaceFolder}\",\n\t\t},\n\t\t{\n\t\t\ttype = \"pwa-node\",\n\t\t\trequest = \"launch\",\n\t\t\tname = \"Debug Jest Tests\",\n\t\t\t-- trace = true, -- include debugger info\n\t\t\truntimeExecutable = \"node\",\n\t\t\truntimeArgs = {\n\t\t\t\t\"./node_modules/jest/bin/jest.js\",\n\t\t\t\t\"--runInBand\",\n\t\t\t},\n\t\t\trootPath = \"${workspaceFolder}\",\n\t\t\tcwd = \"${workspaceFolder}\",\n\t\t\tconsole = \"integratedTerminal\",\n\t\t\tinternalConsoleOptions = \"neverOpen\",\n\t\t},\n\t}\nend\n\ndapui.setup({\n\tlayouts = {\n\t\t{\n\n\t\t\telements = {\n\t\t\t\t{\n\t\t\t\t\tid = \"scopes\",\n\t\t\t\t\tsize = 0.25, -- Can be float or integer > 1\n\t\t\t\t},\n\t\t\t\t{ id = \"breakpoints\", size = 0.25 },\n\t\t\t},\n\t\t\tsize = 40,\n\t\t\tposition = \"right\", -- Can be \"left\", \"right\", \"top\", \"bottom\"\n\t\t},\n\t},\n})\n\nvim.fn.sign_define(\"DapBreakpoint\", { text = \"\", texthl = \"DiagnosticSignError\", linehl = \"\", numhl = \"\" })\n\ndap.listeners.after.event_initialized[\"dapui_config\"] = function()\n\tdapui.open()\nend\n\ndap.listeners.before.event_terminated[\"dapui_config\"] = function()\n\tdapui.close()\nend\n\ndap.listeners.before.event_exited[\"dapui_config\"] = function()\n\tdapui.close()\nend\n"
  },
  {
    "path": ".config/nvim/lua/user/diffview.lua",
    "content": "local status_ok, diff = pcall(require, \"diffview\")\nif not status_ok then\n  return\nend\n\ndiff.setup()\n"
  },
  {
    "path": ".config/nvim/lua/user/gitsigns.lua",
    "content": "local status_ok, gitsigns = pcall(require, \"gitsigns\")\nif not status_ok then\n  return\nend\n\ngitsigns.setup {\n  signs = {\n    add = { hl = \"GitSignsAdd\", text = \"▎\", numhl = \"GitSignsAddNr\", linehl = \"GitSignsAddLn\" },\n    change = { hl = \"GitSignsChange\", text = \"▎\", numhl = \"GitSignsChangeNr\", linehl = \"GitSignsChangeLn\" },\n    delete = { hl = \"GitSignsDelete\", text = \"契\", numhl = \"GitSignsDeleteNr\", linehl = \"GitSignsDeleteLn\" },\n    topdelete = { hl = \"GitSignsDelete\", text = \"契\", numhl = \"GitSignsDeleteNr\", linehl = \"GitSignsDeleteLn\" },\n    changedelete = { hl = \"GitSignsChange\", text = \"▎\", numhl = \"GitSignsChangeNr\", linehl = \"GitSignsChangeLn\" },\n  },\n}\n"
  },
  {
    "path": ".config/nvim/lua/user/illuminate.lua",
    "content": "local status_ok, illuminate = pcall(require, \"illuminate\")\nif not status_ok then\n\treturn\nend\n\nilluminate.configure({\n\tfiletypes_denylist = {\n\t\t\"alpha\",\n\t\t\"NvimTree\",\n\t\t\"qf\"\n\t},\n})\n\nvim.api.nvim_set_keymap(\"n\", \"<a-n>\", '<cmd>lua require\"illuminate\".next_reference{wrap=true}<cr>', { noremap = true })\nvim.api.nvim_set_keymap(\n\t\"n\",\n\t\"<a-p>\",\n\t'<cmd>lua require\"illuminate\".next_reference{reverse=true,wrap=true}<cr>',\n\t{ noremap = true }\n)\n"
  },
  {
    "path": ".config/nvim/lua/user/impatient.lua",
    "content": "local status_ok, impatient = pcall(require, \"impatient\")\nif not status_ok then\n  return\nend\n\nimpatient.enable_profile()\n"
  },
  {
    "path": ".config/nvim/lua/user/indentline.lua",
    "content": "local status_ok, indent_blankline = pcall(require, \"indent_blankline\")\nif not status_ok then\n  return\nend\n\nindent_blankline.setup {\n  char = \"▏\",\n  show_trailing_blankline_indent = false,\n  show_first_indent_level = true,\n  use_treesitter = true,\n  show_current_context = true,\n  buftype_exclude = { \"terminal\", \"nofile\" },\n  filetype_exclude = {\n    \"help\",\n    \"packer\",\n    \"NvimTree\",\n  },\n}\n"
  },
  {
    "path": ".config/nvim/lua/user/keymaps.lua",
    "content": "-- Shorten function name\nlocal keymap = vim.keymap.set\n-- Silent keymap option\nlocal opts = { silent = true }\n\n--Remap space as leader key\nkeymap(\"\", \"<Space>\", \"<Nop>\", opts)\nvim.g.mapleader = \" \"\n\nvim.g.camelcasemotion_key = \"-\"\nvim.cmd([[ let g:sneak#label = 1 ]])\n\n-- Modes\n--   normal_mode = \"n\",\n--   insert_mode = \"i\",\n--   visual_mode = \"v\",\n--   visual_block_mode = \"x\",\n--   term_mode = \"t\",\n--   command_mode = \"c\",\n\n-- Normal --\n-- Better window navigation\nkeymap(\"n\", \"<C-h>\", \"<C-w>h\", opts)\nkeymap(\"n\", \"<C-j>\", \"<C-w>j\", opts)\nkeymap(\"n\", \"<C-k>\", \"<C-w>k\", opts)\nkeymap(\"n\", \"<C-l>\", \"<C-w>l\", opts)\n\n-- Resize with arrows\nkeymap(\"n\", \"<C-Up>\", \"<cmd> lua require('smart-splits').resize_up(2)<CR>\", opts)\nkeymap(\"n\", \"<C-Down>\", \"<cmd> lua require('smart-splits').resize_down(2)<CR>\", opts)\nkeymap(\"n\", \"<C-Left>\", \"<cmd> lua require('smart-splits').resize_left(2)<CR>\", opts)\nkeymap(\"n\", \"<C-Right>\", \"<cmd> lua require('smart-splits').resize_right(2)<CR>\", opts)\n\n-- Navigate buffers\nkeymap(\"n\", \"<S-l>\", \":bnext<CR>\", opts)\nkeymap(\"n\", \"<S-h>\", \":bprevious<CR>\", opts)\n\n-- Stop search highlight on ESC\nkeymap(\"n\", \"<ESC>\", \":nohlsearch<CR>\", opts)\n\n-- Move text up and down\nkeymap(\"n\", \"<A-k>\", \"<Esc>:m .-2<CR>==\", opts)\nkeymap(\"n\", \"<A-j>\", \"<Esc>:m .+1<CR>==\", opts)\n\n-- Close buffers\nkeymap(\"n\", \"<S-q>\", \"<cmd>Bdelete!<CR>\", opts)\n\n-- Better paste\nkeymap(\"v\", \"p\", '\"_dP', opts)\n\n-- Insert new line without insert mode\nkeymap(\"n\", \"go\", \"o<ESC>\", opts)\nkeymap(\"n\", \"gO\", \"O<ESC>\", opts)\n\n-- Remap marks\nkeymap(\"n\", \"gm\", \"m\", opts)\n\n-- Insert --\n-- Press jk fast to enter\nkeymap(\"i\", \"jk\", \"<ESC>\", opts)\n\n-- Paste\nkeymap(\"i\", \"<C-v>\", \"<ESC>pi\", opts)\n\n-- Move in insert mode\nkeymap(\"i\", \"<A-h>\", \"<Left>\", opts)\nkeymap(\"i\", \"<A-j>\", \"<Down>\", opts)\nkeymap(\"i\", \"<A-k>\", \"<Up>\", opts)\nkeymap(\"i\", \"<A-l>\", \"<Right>\", opts)\n\n-- Delete word\nkeymap(\"i\", \"<C-BS>\", \"<C-w>\", opts)\n\nkeymap(\"t\", \"<C-BS>\", \"<C-w>\", opts)\n\n-- Visual --\n-- Stay in indent mode\nkeymap(\"v\", \"<\", \"<gv\", opts)\nkeymap(\"v\", \">\", \">gv\", opts)\n\n-- Move text up and down\nkeymap(\"v\", \"<A-j>\", \":m .+1<CR>==\", opts)\nkeymap(\"v\", \"<A-k>\", \":m .-2<CR>==\", opts)\n\n-- Visual Block --\n-- Move text up and down\nkeymap(\"x\", \"J\", \":move '>+1<CR>gv-gv\", opts)\nkeymap(\"x\", \"K\", \":move '<-2<CR>gv-gv\", opts)\n"
  },
  {
    "path": ".config/nvim/lua/user/live-command.lua",
    "content": "local status_ok, live = pcall(require, \"live-command\")\nif not status_ok then\n\treturn\nend\n\nlive.setup({\n\tcommands = {\n\t\tNorm = { cmd = \"norm\" },\n\t\tG = { cmd = \"g\" },\n\t\tS = { cmd = \"s\" },\n\t\tMac = {\n\t\t\tcmd = \"norm\",\n\t\t\t-- This will transform \":5Mac a\" into \":norm 5@a\"\n\t\t\targs = function(opts)\n\t\t\t\treturn (opts.count == -1 and \"\" or opts.count) .. \"@\" .. opts.args\n\t\t\tend,\n\t\t\trange = \"\",\n\t\t},\n\t},\n})\n"
  },
  {
    "path": ".config/nvim/lua/user/lsp/handlers.lua",
    "content": "local M = {}\n\nlocal status_cmp_ok, cmp_nvim_lsp = pcall(require, \"cmp_nvim_lsp\")\nif not status_cmp_ok then\n\treturn\nend\n\nM.capabilities = cmp_nvim_lsp.default_capabilities()\n\nM.setup = function()\n\tlocal signs = {\n\t\t{ name = \"DiagnosticSignError\", text = \"\" },\n\t\t{ name = \"DiagnosticSignWarn\", text = \"\" },\n\t\t{ name = \"DiagnosticSignHint\", text = \"\" },\n\t\t{ name = \"DiagnosticSignInfo\", text = \"\" },\n\t}\n\n\tfor _, sign in ipairs(signs) do\n\t\tvim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = \"\" })\n\tend\n\n\tlocal config = {\n\t\tvirtual_text = false, -- disable virtual text\n\t\tsigns = {\n\t\t\tactive = signs, -- show signs\n\t\t},\n\t\tupdate_in_insert = true,\n\t\tunderline = true,\n\t\tseverity_sort = true,\n\t\tfloat = {\n\t\t\tfocusable = true,\n\t\t\tstyle = \"minimal\",\n\t\t\tborder = \"rounded\",\n\t\t\tsource = \"always\",\n\t\t\theader = \"\",\n\t\t\tprefix = \"\",\n\t\t},\n\t}\n\n\tvim.diagnostic.config(config)\n\n\tvim.lsp.handlers[\"textDocument/hover\"] = vim.lsp.with(vim.lsp.handlers.hover, {\n\t\tborder = \"rounded\",\n\t})\n\n\tvim.lsp.handlers[\"textDocument/signatureHelp\"] = vim.lsp.with(vim.lsp.handlers.signature_help, {\n\t\tborder = \"rounded\",\n\t})\nend\n\nlocal function lsp_keymaps(bufnr)\n\tlocal opts = { noremap = true, silent = true }\n\tlocal keymap = vim.api.nvim_buf_set_keymap\n\tkeymap(bufnr, \"n\", \"gD\", \"<cmd>lua vim.lsp.buf.declaration()<CR>\", opts)\n\tkeymap(bufnr, \"n\", \"gd\", \"<cmd>lua vim.lsp.buf.definition()<CR>\", opts)\n\tkeymap(bufnr, \"n\", \"K\", \"<cmd>lua vim.lsp.buf.hover()<CR>\", opts)\n\tkeymap(bufnr, \"n\", \"gI\", \"<cmd>lua vim.lsp.buf.implementation()<CR>\", opts)\n\tkeymap(bufnr, \"n\", \"gr\", \"<cmd>lua vim.lsp.buf.references()<CR>\", opts)\n\tkeymap(bufnr, \"n\", \"gl\", \"<cmd>lua vim.diagnostic.open_float()<CR>\", opts)\nend\n\nM.on_attach = function(client, bufnr)\n\tlsp_keymaps(bufnr)\n\tlocal status_ok, illuminate = pcall(require, \"illuminate\")\n\tif not status_ok then\n\t\treturn\n\tend\n\tilluminate.on_attach(client)\nend\n\nreturn M\n"
  },
  {
    "path": ".config/nvim/lua/user/lsp/init.lua",
    "content": "local status_ok, _ = pcall(require, \"lspconfig\")\nif not status_ok then\n\treturn\nend\n\nrequire(\"user.lsp.mason\")\nrequire(\"user.lsp.handlers\").setup()\nrequire(\"user.lsp.null-ls\")\n"
  },
  {
    "path": ".config/nvim/lua/user/lsp/mason.lua",
    "content": "local status_ok, mason = pcall(require, \"mason\")\nif not status_ok then\n\treturn\nend\n\nlocal servers = {\n\t\"sumneko_lua\",\n\t\"cssls\",\n\t\"html\",\n\t\"tsserver\",\n\t\"pyright\",\n\t\"bashls\",\n\t\"jsonls\",\n\t\"hls\",\n\t\"rust_analyzer\",\n}\n\nlocal mason_lspconfig_status_ok, mason_lspconfig = pcall(require, \"mason-lspconfig\")\nif not mason_lspconfig_status_ok then\n\treturn\nend\n\nmason.setup()\nmason_lspconfig.setup()\n\nlocal lspconfig_status_ok, lspconfig = pcall(require, \"lspconfig\")\nif not lspconfig_status_ok then\n\treturn\nend\n\nlocal opts = {}\n\nfor _, server in pairs(servers) do\n\topts = {\n\t\ton_attach = require(\"user.lsp.handlers\").on_attach,\n\t\tcapabilities = require(\"user.lsp.handlers\").capabilities,\n\t}\n\n\tif server == \"sumneko_lua\" then\n\t\tlocal sumneko_opts = require(\"user.lsp.settings.sumneko_lua\")\n\t\topts = vim.tbl_deep_extend(\"force\", sumneko_opts, opts)\n\telseif server == \"pyright\" then\n\t\tlocal pyright_opts = require(\"user.lsp.settings.pyright\")\n\t\topts = vim.tbl_deep_extend(\"force\", pyright_opts, opts)\n\telseif server == \"hls\" then\n\t\tlocal hls_opts = require(\"user.lsp.settings.hls\")\n\t\topts = vim.tbl_deep_extend(\"force\", hls_opts, opts)\n\telseif server == \"jsonls\" then\n\t\tlocal jsonls_opts = require(\"user.lsp.settings.jsonls\")\n\t\topts = vim.tbl_deep_extend(\"force\", jsonls_opts, opts)\n\tend\n\n\tlspconfig[server].setup(opts)\nend\n"
  },
  {
    "path": ".config/nvim/lua/user/lsp/null-ls.lua",
    "content": "local null_ls_status_ok, null_ls = pcall(require, \"null-ls\")\nif not null_ls_status_ok then\n\treturn\nend\n\n-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting\nlocal formatting = null_ls.builtins.formatting\n-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics\nlocal diagnostics = null_ls.builtins.diagnostics\n\nlocal augroup = vim.api.nvim_create_augroup(\"LspFormatting\", {})\n\nnull_ls.setup({\n\tdebug = false,\n\tsources = {\n\t\tformatting.prettierd.with({\n\t\t\textra_filetypes = { \"toml\" },\n\t\t\tenv = {\n\t\t\t\tPRETTIERD_DEFAULT_CONFIG = vim.fn.expand(\"~/.config/nvim/lua/user/lsp/settings/prettier.json\"),\n\t\t\t},\n\t\t}),\n\t\tformatting.rustfmt,\n\t\tformatting.black.with({ extra_args = { \"--fast\" } }),\n\t\tformatting.stylua,\n\t\tformatting.shfmt.with({\n\t\t\textra_filetypes = { \"zsh\" },\n\t\t}),\n\t\tdiagnostics.shellcheck,\n\t\tdiagnostics.pylint,\n\t},\n\ton_attach = function(client, bufnr)\n\t\tif client.supports_method(\"textDocument/formatting\") then\n\t\t\tvim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })\n\t\t\tvim.api.nvim_create_autocmd(\"BufWritePre\", {\n\t\t\t\tgroup = augroup,\n\t\t\t\tbuffer = bufnr,\n\t\t\t\tcallback = function()\n\t\t\t\t\tvim.lsp.buf.format({\n\t\t\t\t\t\tbufnr = bufnr,\n\t\t\t\t\t\tasync = true,\n\t\t\t\t\t\tfilter = function(client)\n\t\t\t\t\t\t\treturn client.name == \"null-ls\"\n\t\t\t\t\t\tend,\n\t\t\t\t\t})\n\t\t\t\tend,\n\t\t\t})\n\t\tend\n\tend,\n})\n"
  },
  {
    "path": ".config/nvim/lua/user/lsp/settings/hls.lua",
    "content": "return {\n  settings = {\n    haskell = {\n      plugin = {\n        rename = {\n          config = {\n            crossModule = true\n          }\n        }\n      },\n    },\n  },\n}\n"
  },
  {
    "path": ".config/nvim/lua/user/lsp/settings/jsonls.lua",
    "content": "return {\n\tsettings = {\n\t\tjson = {\n\t\t\tschemas = require('schemastore').json.schemas(),\n\t\t\tvalidate = { enable = true },\n\t\t},\n\t}\n}\n"
  },
  {
    "path": ".config/nvim/lua/user/lsp/settings/prettier.json",
    "content": "{\n    \"tabWidth\": 4\n}\n"
  },
  {
    "path": ".config/nvim/lua/user/lsp/settings/pyright.lua",
    "content": "return {\n  settings = {\n    python = {\n      analysis = {\n        typeCheckingMode = \"off\",\n      },\n    },\n  },\n}\n"
  },
  {
    "path": ".config/nvim/lua/user/lsp/settings/sumneko_lua.lua",
    "content": "return {\n  settings = {\n    Lua = {\n      diagnostics = {\n        globals = { \"vim\" },\n      },\n      workspace = {\n        library = {\n          [vim.fn.expand \"$VIMRUNTIME/lua\"] = true,\n          [vim.fn.stdpath \"config\" .. \"/lua\"] = true,\n        },\n      },\n      telemetry = {\n        enable = false,\n      },\n    },\n  },\n}\n"
  },
  {
    "path": ".config/nvim/lua/user/lualine.lua",
    "content": "local status_ok, lualine = pcall(require, \"lualine\")\nif not status_ok then\n\treturn\nend\n\nlocal null_ls_status_ok, null_ls = pcall(require, \"null-ls\")\nif not null_ls_status_ok then\n\treturn\nend\n\nlocal hide_in_width = function()\n\treturn vim.fn.winwidth(0) > 80\nend\n\nlocal diagnostics = {\n\t\"diagnostics\",\n\tsources = { \"nvim_diagnostic\" },\n\tsections = { \"error\", \"warn\" },\n\tsymbols = { error = \" \", warn = \" \" },\n\tcolored = false,\n\talways_visible = true,\n}\n\nlocal diff = {\n\t\"diff\",\n\tcolored = false,\n\tsymbols = { added = \"樂\", modified = \" \", removed = \" \" },\n\tcond = hide_in_width,\n}\n\nlocal filetype = {\n\t\"filetype\",\n\ticons_enabled = true,\n}\n\nlocal location = {\n\t\"location\",\n\tpadding = { right = 1, left = 0 },\n}\n\nlocal branch = { \"branch\", icon = \"\" }\n\nlocal lsp = {\n\tfunction()\n\t\tlocal buf_clients = vim.lsp.buf_get_clients()\n\t\tif next(buf_clients) == nil then\n\t\t\treturn \"no lsp\"\n\t\tend\n\t\tlocal buf_ft = vim.bo.filetype\n\t\tlocal buf_client_names = {}\n\n\t\t-- add client\n\t\tfor _, client in pairs(buf_clients) do\n\t\t\tif client.name ~= \"null-ls\" then\n\t\t\t\ttable.insert(buf_client_names, client.name)\n\t\t\tend\n\t\tend\n\n\t\tlocal s = require(\"null-ls.sources\")\n\t\tlocal available_sources = s.get_available(buf_ft)\n\t\tlocal providers = {}\n\t\tfor _, source in ipairs(available_sources) do\n\t\t\tfor method in pairs(source.methods) do\n\t\t\t\tproviders[method] = providers[method] or {}\n\t\t\t\ttable.insert(providers[method], source.name)\n\t\t\tend\n\t\tend\n\n\t\t-- add formatter\n\t\tlocal supported_formatters = providers[null_ls.methods.FORMATTING] or {}\n\t\tvim.list_extend(buf_client_names, supported_formatters)\n\n\t\t-- add linter\n\t\tlocal supported_linters = providers[null_ls.methods.DIAGNOSTICS] or {}\n\t\tvim.list_extend(buf_client_names, supported_linters)\n\n\t\tlocal unique_client_names = vim.fn.uniq(buf_client_names)\n\t\treturn table.concat(unique_client_names, \", \")\n\tend,\n}\n\nlocal spaces = function()\n\treturn \"spaces: \" .. vim.api.nvim_buf_get_option(0, \"shiftwidth\")\nend\n\nlualine.setup({\n\toptions = {\n\t\tglobalstatus = true,\n\t\ticons_enabled = true,\n\t\ttheme = \"auto\",\n\t\tcomponent_separators = \"|\",\n\t\tsection_separators = { left = \"\", right = \"\" },\n\t\tdisabled_filetypes = { \"alpha\", \"dashboard\" },\n\t\talways_divide_middle = true,\n\t},\n\tsections = {\n\t\tlualine_a = { \"mode\" },\n\t\tlualine_b = { branch },\n\t\tlualine_c = { diagnostics },\n\t\tlualine_x = { lsp, diff, \"encoding\", spaces, filetype },\n\t\tlualine_y = { \"progress\" },\n\t\tlualine_z = { location },\n\t},\n})\n"
  },
  {
    "path": ".config/nvim/lua/user/nvim-tree.lua",
    "content": "local status_ok, nvim_tree = pcall(require, \"nvim-tree\")\nif not status_ok then\n  return\nend\n\nlocal config_status_ok, nvim_tree_config = pcall(require, \"nvim-tree.config\")\nif not config_status_ok then\n  return\nend\n\nlocal tree_cb = nvim_tree_config.nvim_tree_callback\n\nnvim_tree.setup {\n  update_focused_file = {\n    enable = true,\n    update_cwd = true,\n  },\n  renderer = {\n    root_folder_modifier = \":t\",\n    icons = {\n      glyphs = {\n        default = \"\",\n        symlink = \"\",\n        folder = {\n          arrow_open = \"\",\n          arrow_closed = \"\",\n          default = \"\",\n          open = \"\",\n          empty = \"\",\n          empty_open = \"\",\n          symlink = \"\",\n          symlink_open = \"\",\n        },\n        git = {\n          unstaged = \"\",\n          staged = \"S\",\n          unmerged = \"\",\n          renamed = \"➜\",\n          untracked = \"U\",\n          deleted = \"\",\n          ignored = \"◌\",\n        },\n      },\n    },\n  },\n  diagnostics = {\n    enable = true,\n    show_on_dirs = true,\n    icons = {\n      hint = \"\",\n      info = \"\",\n      warning = \"\",\n      error = \"\",\n    },\n  },\n  view = {\n    width = 30,\n    side = \"left\",\n    mappings = {\n      list = {\n        { key = { \"l\", \"<CR>\", \"o\" }, cb = tree_cb \"edit\" },\n        { key = \"h\", cb = tree_cb \"close_node\" },\n        { key = \"v\", cb = tree_cb \"vsplit\" },\n      },\n    },\n  },\n}\n"
  },
  {
    "path": ".config/nvim/lua/user/options.lua",
    "content": "vim.opt.backup = false -- creates a backup file\nvim.opt.clipboard = \"unnamedplus\" -- allows neovim to access the system clipboard\nvim.opt.cmdheight = 1 -- more space in the neovim command line for displaying messages\nvim.opt.completeopt = { \"menuone\", \"noselect\" } -- mostly just for cmp\nvim.opt.conceallevel = 0 -- so that `` is visible in markdown files\nvim.opt.fileencoding = \"utf-8\" -- the encoding written to a file\nvim.opt.hlsearch = true -- highlight all matches on previous search pattern\nvim.opt.ignorecase = true -- ignore case in search patterns\nvim.opt.mouse = \"a\" -- allow the mouse to be used in neovim\nvim.opt.pumheight = 10 -- pop up menu height\nvim.opt.showmode = false -- we don't need to see things like -- INSERT -- anymore\nvim.opt.showtabline = 0 -- always show tabs\nvim.opt.smartcase = true -- smart case\nvim.opt.smartindent = true -- make indenting smarter again\nvim.opt.splitbelow = true -- force all horizontal splits to go below current window\nvim.opt.splitright = true -- force all vertical splits to go to the right of current window\nvim.opt.swapfile = false -- creates a swapfile\nvim.opt.termguicolors = true -- set term gui colors (most terminals support this)\nvim.opt.timeoutlen = 300 -- time to wait for a mapped sequence to complete (in milliseconds)\nvim.opt.undofile = true -- enable persistent undo\nvim.opt.updatetime = 300 -- faster completion (4000ms default)\nvim.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\nvim.opt.expandtab = true -- convert tabs to spaces\nvim.opt.shiftwidth = 4 -- the number of spaces inserted for each indentation\nvim.opt.tabstop = 4 -- insert 2 spaces for a tab\nvim.opt.cursorline = true -- highlight the current line\nvim.opt.relativenumber = true -- set relative numbered lines\nvim.opt.number = true -- set numbered lines\nvim.opt.laststatus = 3\nvim.opt.showcmd = false\nvim.opt.ruler = false\nvim.opt.numberwidth = 2 -- set number column width to 2 {default 4}\nvim.opt.signcolumn = \"yes\" -- always show the sign column, otherwise it would shift the text each time\nvim.opt.wrap = false -- display lines as one long line\nvim.opt.scrolloff = 8 -- is one of my fav\nvim.opt.sidescrolloff = 8\nvim.opt.guifont = \"monospace:h7\" -- the font used in graphical neovim applications\nvim.opt.fillchars.eob = \" \"\nvim.opt.shortmess:append(\"c\")\nvim.opt.whichwrap:append(\"<,>,[,],h,l\")\nvim.opt.iskeyword:append(\"-\")\n\nvim.g.neovide_transparency = 0.8\nvim.g.neovide_floating_opacity = 0.9\n"
  },
  {
    "path": ".config/nvim/lua/user/plugins.lua",
    "content": "local fn = vim.fn\n\n-- Automatically install packer\nlocal install_path = fn.stdpath(\"data\") .. \"/site/pack/packer/start/packer.nvim\"\nif fn.empty(fn.glob(install_path)) > 0 then\n\tPACKER_BOOTSTRAP = fn.system({\n\t\t\"git\",\n\t\t\"clone\",\n\t\t\"--depth\",\n\t\t\"1\",\n\t\t\"https://github.com/wbthomason/packer.nvim\",\n\t\tinstall_path,\n\t})\n\tprint(\"Installing packer close and reopen Neovim...\")\n\tvim.cmd([[packadd packer.nvim]])\nend\n\n-- Autocommand that reloads neovim whenever you save the plugins.lua file\nvim.cmd([[\n  augroup packer_user_config\n    autocmd!\n    autocmd BufWritePost plugins.lua source <afile> | PackerSync\n  augroup end\n]])\n\n-- Use a protected call so we don't error out on first use\nlocal status_ok, packer = pcall(require, \"packer\")\nif not status_ok then\n\treturn\nend\n\n-- Have packer use a popup window\npacker.init({\n\tdisplay = {\n\t\topen_fn = function()\n\t\t\treturn require(\"packer.util\").float({ border = \"rounded\" })\n\t\tend,\n\t},\n})\n\n-- Install your plugins here\nreturn packer.startup(function(use)\n\t-- My plugins here\n\tuse({ \"wbthomason/packer.nvim\" }) -- Have packer manage itself\n\tuse({ \"nvim-lua/plenary.nvim\" }) -- Useful lua functions used by lots of plugins\n\tuse(\"rcarriga/nvim-notify\")\n\tuse(\"tpope/vim-repeat\")\n\tuse({ \"JoosepAlviste/nvim-ts-context-commentstring\" })\n\tuse({ \"moll/vim-bbye\" })\n\tuse({ \"ahmedkhalf/project.nvim\" })\n\tuse({ \"lewis6991/impatient.nvim\" })\n\n\tuse(\"ThePrimeagen/vim-be-good\")\n\n\t-- UI\n\tuse({ \"goolord/alpha-nvim\" })\n\tuse({ \"nvim-lualine/lualine.nvim\" })\n\tuse({ \"lukas-reineke/indent-blankline.nvim\" })\n\tuse({ \"akinsho/bufferline.nvim\" })\n\tuse(\"folke/which-key.nvim\")\n\t-- use({ \"stevearc/dressing.nvim\" })\n\tuse({ \"norcalli/nvim-colorizer.lua\" })\n\tuse({ \"akinsho/toggleterm.nvim\", tag = \"*\" })\n\tuse(\"windwp/nvim-spectre\")\n\tuse({ \"kyazdani42/nvim-web-devicons\" })\n\tuse({ \"kyazdani42/nvim-tree.lua\" })\n\tuse({\n\t\t\"folke/trouble.nvim\",\n\t\trequires = \"kyazdani42/nvim-web-devicons\",\n\t})\n\tuse(\"mrjones2014/smart-splits.nvim\")\n\tuse(\"p00f/nvim-ts-rainbow\")\n\n\t-- Movement\n\t-- use(\"ggandor/leap.nvim\")\n\tuse(\"justinmk/vim-sneak\")\n\tuse(\"bkad/CamelCaseMotion\")\n\tuse(\"andymass/vim-matchup\")\n\n\t-- Editing\n\tuse({\n\t\t\"kylechui/nvim-surround\",\n\t\ttag = \"*\", -- Use for stability; omit to use `main` branch for the latest features\n\t})\n\tuse({ \"Darazaki/indent-o-matic\" })\n\tuse(\"gbprod/cutlass.nvim\")\n\tuse(\"gbprod/substitute.nvim\")\n\tuse({ \"numToStr/Comment.nvim\" })\n\tuse(\"windwp/nvim-ts-autotag\")\n\tuse({ \"windwp/nvim-autopairs\" }) -- Autopairs, integrates with both cmp and treesitter\n\tuse(\"smjonas/live-command.nvim\")\n\n\t-- Colorschemes\n\tuse({ \"catppuccin/nvim\", as = \"catppuccin\" })\n\n\t-- cmp plugins\n\tuse({ \"hrsh7th/nvim-cmp\" }) -- The completion plugin\n\tuse({ \"hrsh7th/cmp-buffer\" }) -- buffer completions\n\tuse({ \"hrsh7th/cmp-path\" }) -- path completions\n\tuse({ \"saadparwaiz1/cmp_luasnip\" }) -- snippet completions\n\tuse({ \"hrsh7th/cmp-nvim-lsp\" })\n\tuse({ \"hrsh7th/cmp-nvim-lua\" })\n\tuse({\n\t\t\"tzachar/cmp-tabnine\",\n\t\trun = \"./install.sh\",\n\t\trequires = \"hrsh7th/nvim-cmp\",\n\t})\n\tuse(\"rcarriga/cmp-dap\")\n\tuse(\"hrsh7th/cmp-cmdline\")\n\tuse(\"hrsh7th/cmp-nvim-lsp-signature-help\")\n\n\t-- snippets\n\tuse({ \"L3MON4D3/LuaSnip\" }) --snippet engine\n\tuse({ \"rafamadriz/friendly-snippets\" }) -- a bunch of snippets to use\n\n\t-- LSP\n\tuse({ \"neovim/nvim-lspconfig\" }) -- enable LSP\n\tuse({ \"williamboman/mason.nvim\" }) -- simple to use language server installer\n\tuse(\"williamboman/mason-lspconfig.nvim\")\n\tuse({ \"jose-elias-alvarez/null-ls.nvim\" }) -- for formatters and linters\n\tuse({ \"RRethy/vim-illuminate\" })\n\tuse(\"b0o/schemastore.nvim\")\n\n\t-- Testing\n\tuse({\n\t\t\"nvim-neotest/neotest\",\n\t\trequires = {\n\t\t\t\"nvim-lua/plenary.nvim\",\n\t\t\t\"nvim-treesitter/nvim-treesitter\",\n\t\t\t\"antoinemadec/FixCursorHold.nvim\",\n\t\t\t\"nvim-neotest/neotest-vim-test\",\n\t\t\t\"vim-test/vim-test\",\n\t\t\t\"haydenmeade/neotest-jest\",\n\t\t\t\"nvim-neotest/neotest-python\",\n\t\t},\n\t})\n\n\t-- Text objects\n\tuse(\"michaeljsmith/vim-indent-object\")\n\tuse(\"kana/vim-textobj-user\")\n\tuse(\"kana/vim-textobj-entire\")\n\tuse(\"nvim-treesitter/nvim-treesitter-textobjects\")\n\tuse(\"RRethy/nvim-treesitter-textsubjects\")\n\n\t-- Telescope\n\tuse({ \"nvim-telescope/telescope.nvim\" })\n\tuse({ \"nvim-telescope/telescope-fzf-native.nvim\", run = \"make\" })\n\n\t-- Treesitter\n\tuse({\n\t\t\"nvim-treesitter/nvim-treesitter\",\n\t\trun = \":TSUpdate\",\n\t})\n\tuse(\"nvim-treesitter/nvim-treesitter-context\")\n\n\t-- Git\n\tuse({ \"lewis6991/gitsigns.nvim\" })\n\tuse(\"sindrets/diffview.nvim\")\n\n\t-- DAP\n\tuse({ \"mfussenegger/nvim-dap\" })\n\tuse({ \"rcarriga/nvim-dap-ui\" })\n\t--[[ use({ \"ravenxrz/DAPInstall.nvim\" }) ]]\n\tuse(\"mfussenegger/nvim-dap-python\")\n\tuse({ \"mxsdev/nvim-dap-vscode-js\", requires = { \"mfussenegger/nvim-dap\" } })\n\tuse({\n\t\t\"microsoft/vscode-js-debug\",\n\t\topt = true,\n\t\trun = \"npm install --legacy-peer-deps && npm run compile\",\n\t})\n\n\t-- Automatically set up your configuration after cloning packer.nvim\n\t-- Put this at the end after all plugins\n\tif PACKER_BOOTSTRAP then\n\t\trequire(\"packer\").sync()\n\tend\nend)\n"
  },
  {
    "path": ".config/nvim/lua/user/project.lua",
    "content": "local status_ok, project = pcall(require, \"project_nvim\")\nif not status_ok then\n\treturn\nend\nproject.setup()\n\nlocal tele_status_ok, telescope = pcall(require, \"telescope\")\nif not tele_status_ok then\n\treturn\nend\n\ntelescope.load_extension('projects')\n"
  },
  {
    "path": ".config/nvim/lua/user/smart-splits.lua",
    "content": "local status_ok, splits = pcall(require, \"smart-splits\")\nif not status_ok then\n\treturn\nend\n\nsplits.setup({})\n"
  },
  {
    "path": ".config/nvim/lua/user/substitute.lua",
    "content": "local status_ok, substitute = pcall(require, \"substitute\")\nif not status_ok then\n\treturn\nend\n\nsubstitute.setup()\n\nvim.keymap.set(\"n\", \"<leader>y\", \"<cmd>lua require('substitute').operator()<cr>\", { noremap = true })\nvim.keymap.set(\"n\", \"<leader>yy\", \"<cmd>lua require('substitute').line()<cr>\", { noremap = true })\nvim.keymap.set(\"n\", \"<leader>Y\", \"<cmd>lua require('substitute').eol()<cr>\", { noremap = true })\n"
  },
  {
    "path": ".config/nvim/lua/user/surround.lua",
    "content": "local status_ok, surround = pcall(require, \"nvim-surround\")\nif not status_ok then\n\treturn\nend\n\nsurround.setup()\n"
  },
  {
    "path": ".config/nvim/lua/user/telescope.lua",
    "content": "local status_ok, telescope = pcall(require, \"telescope\")\nif not status_ok then\n\treturn\nend\n\nlocal actions = require(\"telescope.actions\")\n\ntelescope.setup({\n\tdefaults = {\n\n\t\tprompt_prefix = \" \",\n\t\tselection_caret = \" \",\n\t\tpath_display = { \"smart\" },\n\t\tfile_ignore_patterns = { \".git/\", \"node_modules\" },\n\n\t\tmappings = {\n\t\t\ti = {\n\t\t\t\t[\"<Down>\"] = actions.cycle_history_next,\n\t\t\t\t[\"<Up>\"] = actions.cycle_history_prev,\n\t\t\t\t[\"<C-j>\"] = actions.move_selection_next,\n\t\t\t\t[\"<C-k>\"] = actions.move_selection_previous,\n\t\t\t\t[\"<leader>c\"] = actions.close,\n\t\t\t},\n\t\t},\n\t},\n\textensions = {\n\t\tfzf = {\n\t\t\tfuzzy = true,\n\t\t\toverride_generic_sorter = true,\n\t\t\toverride_file_sorter = true,\n\t\t\tcase_mode = \"smart_case\",\n\t\t},\n\t},\n})\n\ntelescope.load_extension(\"fzf\")\n"
  },
  {
    "path": ".config/nvim/lua/user/testing.lua",
    "content": "local status_ok, neotest = pcall(require, \"neotest\")\nif not status_ok then\n\treturn\nend\n\nneotest.setup({\n\tadapters = {\n\t\trequire(\"neotest-python\")({\n\t\t\tdap = { justMyCode = false },\n\t\t}),\n\t\trequire(\"neotest-jest\"),\n\t\trequire(\"neotest-vim-test\")({\n\t\t\tignore_file_types = { \"python\", \"javascript\", \"typescript\" },\n\t\t}),\n\t},\n})\n"
  },
  {
    "path": ".config/nvim/lua/user/toggleterm.lua",
    "content": "local status_ok, toggleterm = pcall(require, \"toggleterm\")\nif not status_ok then\n\treturn\nend\n\ntoggleterm.setup({\n\tsize = 20,\n\topen_mapping = [[<c-\\>]],\n\thide_numbers = true,\n\tshade_terminals = true,\n\tshading_factor = 2,\n\tstart_in_insert = true,\n\tinsert_mappings = true,\n\tpersist_size = true,\n\tdirection = \"float\",\n\tclose_on_exit = true,\n\tshell = vim.o.shell,\n\tfloat_opts = {\n\t\tborder = \"curved\",\n\t},\n})\n\nfunction _G.set_terminal_keymaps()\n\tlocal opts = { noremap = true }\n\t-- vim.api.nvim_buf_set_keymap(0, \"t\", \"<esc>\", [[<C-\\><C-n>]], opts)\n\tvim.api.nvim_buf_set_keymap(0, \"t\", \"<C-h>\", [[<C-\\><C-n><C-W>h]], opts)\n\tvim.api.nvim_buf_set_keymap(0, \"t\", \"<C-j>\", [[<C-\\><C-n><C-W>j]], opts)\n\tvim.api.nvim_buf_set_keymap(0, \"t\", \"<C-k>\", [[<C-\\><C-n><C-W>k]], opts)\n\tvim.api.nvim_buf_set_keymap(0, \"t\", \"<C-l>\", [[<C-\\><C-n><C-W>l]], opts)\nend\n\nvim.cmd(\"autocmd! TermOpen term://* lua set_terminal_keymaps()\")\n\nlocal Terminal = require(\"toggleterm.terminal\").Terminal\nlocal lazygit = Terminal:new({ cmd = \"lazygit\", hidden = true })\n\nfunction _LAZYGIT_TOGGLE()\n\tlazygit:toggle()\nend\n"
  },
  {
    "path": ".config/nvim/lua/user/treesitter.lua",
    "content": "local status_ok, configs = pcall(require, \"nvim-treesitter.configs\")\nif not status_ok then\n\treturn\nend\n\nconfigs.setup({\n\tensure_installed = \"all\", -- one of \"all\" or a list of languages\n\tignore_install = { \"\" }, -- List of parsers to ignore installing\n\thighlight = {\n\t\tenable = true, -- false will disable the whole extension\n\t\tdisable = {}, -- list of language that will be disabled\n\t},\n\tautopairs = {\n\t\tenable = true,\n\t},\n\tcontext_commentstring = {\n\t\tenable = true,\n\t\tenable_autocmd = false,\n\t},\n\tindent = { enable = true, disable = { \"python\", \"css\" } },\n\tmatchup = {\n\t\tenable = true,\n\t},\n\ttextobjects = {\n\t\tselect = {\n\t\t\tenable = true,\n\t\t\t-- automatically jump forward to textobj, similar to targets.vim\n\t\t\tlookahead = true,\n\n\t\t\tkeymaps = {\n\t\t\t\t-- you can use the capture groups defined in textobjects.scm\n\t\t\t\t[\"af\"] = \"@call.outer\",\n\t\t\t\t[\"if\"] = \"@call.inner\",\n\t\t\t\t[\"ab\"] = \"@block.outer\",\n\t\t\t\t[\"ib\"] = \"@block.inner\",\n\t\t\t},\n\t\t},\n\t},\n\ttextsubjects = {\n\t\tenable = true,\n\t\tprev_selection = \",\", -- (Optional) keymap to select the previous selection\n\t\tkeymaps = {\n\t\t\t[\".\"] = \"textsubjects-smart\",\n\t\t\t[\";\"] = \"textsubjects-container-outer\",\n\t\t\t[\"i;\"] = \"textsubjects-container-inner\",\n\t\t},\n\t},\n\trainbow = {\n\t\tenable = true,\n\t\textended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean\n\t\tmax_file_lines = nil, -- Do not enable for files with more than n lines, int\n\t}\n})\n\nvim.g.matchup_matchparen_offscreen = { method = \"popup\" }\n"
  },
  {
    "path": ".config/nvim/lua/user/trouble.lua",
    "content": "local status_ok, trouble = pcall(require, \"trouble\")\nif not status_ok then\n  return\nend\n\ntrouble.setup()\n\n\n"
  },
  {
    "path": ".config/nvim/lua/user/whichkey.lua",
    "content": "local status_ok, which_key = pcall(require, \"which-key\")\nif not status_ok then\n\treturn\nend\n\nlocal setup = {\n\tplugins = {\n\t\tmarks = true, -- shows a list of your marks on ' and `\n\t\tregisters = true, -- shows your registers on \" in NORMAL or <C-r> in INSERT mode\n\t\tspelling = {\n\t\t\tenabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions\n\t\t\tsuggestions = 20, -- how many suggestions should be shown in the list?\n\t\t},\n\t\t-- the presets plugin, adds help for a bunch of default keybindings in Neovim\n\t\t-- No actual key bindings are created\n\t\tpresets = {\n\t\t\toperators = false, -- adds help for operators like d, y, ... and registers them for motion / text object completion\n\t\t\tmotions = true, -- adds help for motions\n\t\t\ttext_objects = true, -- help for text objects triggered after entering an operator\n\t\t\twindows = true, -- default bindings on <c-w>\n\t\t\tnav = true, -- misc bindings to work with windows\n\t\t\tz = true, -- bindings for folds, spelling and others prefixed with z\n\t\t\tg = true, -- bindings for prefixed with g\n\t\t},\n\t},\n\t-- add operators that will trigger motion and text object completion\n\t-- to enable all native operators, set the preset / operators plugin above\n\t-- operators = { gc = \"Comments\" },\n\tkey_labels = {\n\t\t-- override the label used to display some keys. It doesn't effect WK in any other way.\n\t\t-- For example:\n\t\t-- [\"<space>\"] = \"SPC\",\n\t\t-- [\"<cr>\"] = \"RET\",\n\t\t-- [\"<tab>\"] = \"TAB\",\n\t},\n\ticons = {\n\t\tbreadcrumb = \"»\", -- symbol used in the command line area that shows your active key combo\n\t\tseparator = \"➜\", -- symbol used between a key and it's label\n\t\tgroup = \"+\", -- symbol prepended to a group\n\t},\n\tpopup_mappings = {\n\t\tscroll_down = \"<c-d>\", -- binding to scroll down inside the popup\n\t\tscroll_up = \"<c-u>\", -- binding to scroll up inside the popup\n\t},\n\twindow = {\n\t\tborder = \"rounded\", -- none, single, double, shadow\n\t\tposition = \"bottom\", -- bottom, top\n\t\tmargin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left]\n\t\tpadding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left]\n\t\twinblend = 0,\n\t},\n\tlayout = {\n\t\theight = { min = 4, max = 25 }, -- min and max height of the columns\n\t\twidth = { min = 20, max = 50 }, -- min and max width of the columns\n\t\tspacing = 3, -- spacing between columns\n\t\talign = \"left\", -- align columns left, center or right\n\t},\n\tignore_missing = true, -- enable this to hide mappings for which you didn't specify a label\n\thidden = { \"<silent>\", \"<cmd>\", \"<Cmd>\", \"<CR>\", \"call\", \"lua\", \"^:\", \"^ \" }, -- hide mapping boilerplate\n\tshow_help = true, -- show help message on the command line when the popup is visible\n\ttriggers = \"auto\", -- automatically setup triggers\n\t-- triggers = {\"<leader>\"} -- or specify a list manually\n\ttriggers_blacklist = {\n\t\t-- list of mode / prefixes that should never be hooked by WhichKey\n\t\t-- this is mostly relevant for key maps that start with a native binding\n\t\t-- most people should not need to change this\n\t\ti = { \"j\", \"k\" },\n\t\tv = { \"j\", \"k\" },\n\t},\n}\n\nlocal opts = {\n\tmode = \"n\", -- NORMAL mode\n\tprefix = \"<leader>\",\n\tbuffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings\n\tsilent = true, -- use `silent` when creating keymaps\n\tnoremap = true, -- use `noremap` when creating keymaps\n\tnowait = true, -- use `nowait` when creating keymaps\n}\n\nlocal mappings = {\n\t[\"a\"] = { \"<cmd>Alpha<cr>\", \"Alpha\" },\n\t[\"b\"] = {\n\t\t\"<cmd>lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false})<cr>\",\n\t\t\"Buffers\",\n\t},\n\t[\"e\"] = { \"<cmd>NvimTreeToggle<cr>\", \"Explorer\" },\n\t[\"w\"] = { \"<cmd>w!<CR>\", \"Save\" },\n\t[\"W\"] = { \"<cmd>noa w!<CR>\", \"Save without formatting\" },\n\t[\"q\"] = { \"<cmd>q!<CR>\", \"Quit\" },\n\t[\"c\"] = { \"<cmd>Bdelete!<CR>\", \"Close Buffer\" },\n\t[\"h\"] = { \"<cmd>TroubleToggle<cr>\", \"Trouble\" },\n\t[\"f\"] = {\n\t\t\"<cmd>lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false})<cr>\",\n\t\t\"Find files\",\n\t},\n\t[\"F\"] = { \"<cmd>Telescope live_grep theme=ivy<cr>\", \"Find Text\" },\n\t[\"P\"] = { \"<cmd>lua require('telescope').extensions.projects.projects()<cr>\", \"Projects\" },\n\t[\"r\"] = { \"<cmd>Telescope oldfiles<CR>\", \"Recent Files\" },\n\n\tp = {\n\t\tname = \"Packer\",\n\t\tc = { \"<cmd>PackerCompile<cr>\", \"Compile\" },\n\t\ti = { \"<cmd>PackerInstall<cr>\", \"Install\" },\n\t\ts = { \"<cmd>PackerSync<cr>\", \"Sync\" },\n\t\tS = { \"<cmd>PackerStatus<cr>\", \"Status\" },\n\t\tu = { \"<cmd>PackerUpdate<cr>\", \"Update\" },\n\t},\n\n\tg = {\n\t\tname = \"Git\",\n\t\tg = { \"<cmd>lua _LAZYGIT_TOGGLE()<CR>\", \"Lazygit\" },\n\t\tj = { \"<cmd>lua require 'gitsigns'.next_hunk()<cr>\", \"Next Hunk\" },\n\t\tk = { \"<cmd>lua require 'gitsigns'.prev_hunk()<cr>\", \"Prev Hunk\" },\n\t\tl = { \"<cmd>lua require 'gitsigns'.blame_line()<cr>\", \"Blame\" },\n\t\tp = { \"<cmd>lua require 'gitsigns'.preview_hunk()<cr>\", \"Preview Hunk\" },\n\t\tr = { \"<cmd>lua require 'gitsigns'.reset_hunk()<cr>\", \"Reset Hunk\" },\n\t\tR = { \"<cmd>lua require 'gitsigns'.reset_buffer()<cr>\", \"Reset Buffer\" },\n\t\ts = { \"<cmd>lua require 'gitsigns'.stage_hunk()<cr>\", \"Stage Hunk\" },\n\t\tu = {\n\t\t\t\"<cmd>lua require 'gitsigns'.undo_stage_hunk()<cr>\",\n\t\t\t\"Undo Stage Hunk\",\n\t\t},\n\t\to = { \"<cmd>Telescope git_status<cr>\", \"Open changed file\" },\n\t\tb = { \"<cmd>Telescope git_branches<cr>\", \"Checkout branch\" },\n\t\tc = { \"<cmd>Telescope git_commits<cr>\", \"Checkout commit\" },\n\t\td = {\n\t\t\t\"<cmd>DiffviewOpen<cr>\",\n\t\t\t\"Diff\",\n\t\t},\n\t\th = { \"<cmd>DiffviewFileHistory<cr>\", \"File History\" },\n\t\tC = { \"<cmd>DiffviewClose<cr>\", \"Close diffview\" },\n\t},\n\n\tl = {\n\t\tname = \"LSP\",\n\t\ta = { \"<cmd>lua vim.lsp.buf.code_action()<cr>\", \"Code Action\" },\n\t\td = {\n\t\t\t\"<cmd>Telescope diagnostics bufnr=0<cr>\",\n\t\t\t\"Document Diagnostics\",\n\t\t},\n\t\tw = {\n\t\t\t\"<cmd>Telescope diagnostics<cr>\",\n\t\t\t\"Workspace Diagnostics\",\n\t\t},\n\t\tf = { \"<cmd>lua vim.lsp.buf.format{async=true}<cr>\", \"Format\" },\n\t\ti = { \"<cmd>LspInfo<cr>\", \"Info\" },\n\t\tI = { \"<cmd>Mason<cr>\", \"Installer Info\" },\n\t\tj = {\n\t\t\t\"<cmd>lua vim.lsp.diagnostic.goto_next()<CR>\",\n\t\t\t\"Next Diagnostic\",\n\t\t},\n\t\tk = {\n\t\t\t\"<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>\",\n\t\t\t\"Prev Diagnostic\",\n\t\t},\n\t\tl = { \"<cmd>lua vim.lsp.codelens.run()<cr>\", \"CodeLens Action\" },\n\t\tq = { \"<cmd>lua vim.lsp.diagnostic.set_loclist()<cr>\", \"Quickfix\" },\n\t\tr = { \"<cmd>lua vim.lsp.buf.rename()<cr>\", \"Rename\" },\n\t\ts = { \"<cmd>Telescope lsp_document_symbols<cr>\", \"Document Symbols\" },\n\t\tS = {\n\t\t\t\"<cmd>Telescope lsp_dynamic_workspace_symbols<cr>\",\n\t\t\t\"Workspace Symbols\",\n\t\t},\n\t},\n\n\ts = {\n\t\tname = \"Search\",\n\t\tb = { \"<cmd>Telescope git_branches<cr>\", \"Checkout branch\" },\n\t\th = { \"<cmd>Telescope help_tags<cr>\", \"Find Help\" },\n\t\tM = { \"<cmd>Telescope man_pages<cr>\", \"Man Pages\" },\n\t\tr = { \"<cmd>Telescope oldfiles<cr>\", \"Open Recent File\" },\n\t\tR = { \"<cmd>Telescope registers<cr>\", \"Registers\" },\n\t\tk = { \"<cmd>Telescope keymaps<cr>\", \"Keymaps\" },\n\t\tC = { \"<cmd>Telescope commands<cr>\", \"Commands\" },\n\t\ts = { \"<cmd>lua require('spectre').open()<cr>\", \"Search and replace\" },\n\t},\n\n\td = {\n\t\tname = \"Debug\",\n\t\tb = { \"<cmd>lua require'dap'.toggle_breakpoint()<cr>\", \"Toggle Breakpoint\" },\n\t\tc = { \"<cmd>lua require'dap'.continue()<cr>\", \"Continue\" },\n\t\ti = { \"<cmd>lua require'dap'.step_into()<cr>\", \"Step Into\" },\n\t\to = { \"<cmd>lua require'dap'.step_over()<cr>\", \"Step Over\" },\n\t\tO = { \"<cmd>lua require'dap'.step_out()<cr>\", \"Step Out\" },\n\t\tr = { \"<cmd>lua require'dap'.repl.toggle()<cr>\", \"Toggle Repl\" },\n\t\tt = { \"<cmd>lua require'dap'.terminate()<cr>\", \"Terminate\" },\n\t\tu = { \"<cmd>lua require'dapui'.toggle()<CR>\", \"Toggle UI\" },\n\t},\n\n\tt = {\n\t\tname = \"Testing\",\n\t\tt = { \"<cmd>lua require('neotest').run.run()<cr>\", \"Test Nearest\" },\n\t\tf = { \"<cmd>lua require('neotest').run.run(vim.fn.expand('%'))<cr>\", \"Test Entire File\" },\n\t\ts = { \"<cmd>lua require('neotest').run.stop()<cr>\", \"Stop Test Jobs\" },\n\t\td = { \"<cmd>lua require('neotest').run.run({strategy = 'dap'})<cr>\", \"Debug Nearest Test\" },\n\t\ta = { \"<cmd>lua require('neotest').run.attach()<cr>\", \"Attach to Nearest Test\" },\n\t\te = { \"<cmd>lua require('neotest').summary.toggle()<cr>\", \"Toggle Summary\" },\n\t\to = { \"<cmd>lua require('neotest').output.open({ enter = true })<cr>\", \"Open Test Output\" },\n\t},\n\n\tT = {\n\t\tname = \"Terminal\",\n\t\tf = { \"<cmd>ToggleTerm direction=float<cr>\", \"Float\" },\n\t\th = { \"<cmd>ToggleTerm size=10 direction=horizontal<cr>\", \"Horizontal\" },\n\t\tv = { \"<cmd>ToggleTerm size=80 direction=vertical<cr>\", \"Vertical\" },\n\t},\n}\n\nwhich_key.setup(setup)\nwhich_key.register(mappings, opts)\n"
  },
  {
    "path": ".config/nvim/plugin/packer_compiled.lua",
    "content": "-- Automatically generated packer.nvim plugin loader code\n\nif vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then\n  vim.api.nvim_command('echohl WarningMsg | echom \"Invalid Neovim version for packer.nvim! | echohl None\"')\n  return\nend\n\nvim.api.nvim_command('packadd packer.nvim')\n\nlocal no_errors, error_msg = pcall(function()\n\n_G._packer = _G._packer or {}\n_G._packer.inside_compile = true\n\nlocal time\nlocal profile_info\nlocal should_profile = false\nif should_profile then\n  local hrtime = vim.loop.hrtime\n  profile_info = {}\n  time = function(chunk, start)\n    if start then\n      profile_info[chunk] = hrtime()\n    else\n      profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6\n    end\n  end\nelse\n  time = function(chunk, start) end\nend\n\nlocal function save_profiles(threshold)\n  local sorted_times = {}\n  for chunk_name, time_taken in pairs(profile_info) do\n    sorted_times[#sorted_times + 1] = {chunk_name, time_taken}\n  end\n  table.sort(sorted_times, function(a, b) return a[2] > b[2] end)\n  local results = {}\n  for i, elem in ipairs(sorted_times) do\n    if not threshold or threshold and elem[2] > threshold then\n      results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'\n    end\n  end\n  if threshold then\n    table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')\n  end\n\n  _G._packer.profile_output = results\nend\n\ntime([[Luarocks path setup]], true)\nlocal 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\"\nlocal install_cpath_pattern = \"/home/amitgold/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so\"\nif not string.find(package.path, package_path_str, 1, true) then\n  package.path = package.path .. ';' .. package_path_str\nend\n\nif not string.find(package.cpath, install_cpath_pattern, 1, true) then\n  package.cpath = package.cpath .. ';' .. install_cpath_pattern\nend\n\ntime([[Luarocks path setup]], false)\ntime([[try_loadstring definition]], true)\nlocal function try_loadstring(s, component, name)\n  local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])\n  if not success then\n    vim.schedule(function()\n      vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})\n    end)\n  end\n  return result\nend\n\ntime([[try_loadstring definition]], false)\ntime([[Defining packer_plugins]], true)\n_G.packer_plugins = {\n  CamelCaseMotion = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/CamelCaseMotion\",\n    url = \"https://github.com/bkad/CamelCaseMotion\"\n  },\n  [\"Comment.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/Comment.nvim\",\n    url = \"https://github.com/numToStr/Comment.nvim\"\n  },\n  [\"FixCursorHold.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/FixCursorHold.nvim\",\n    url = \"https://github.com/antoinemadec/FixCursorHold.nvim\"\n  },\n  LuaSnip = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/LuaSnip\",\n    url = \"https://github.com/L3MON4D3/LuaSnip\"\n  },\n  [\"alpha-nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/alpha-nvim\",\n    url = \"https://github.com/goolord/alpha-nvim\"\n  },\n  [\"bufferline.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/bufferline.nvim\",\n    url = \"https://github.com/akinsho/bufferline.nvim\"\n  },\n  catppuccin = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/catppuccin\",\n    url = \"https://github.com/catppuccin/nvim\"\n  },\n  [\"cmp-buffer\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-buffer\",\n    url = \"https://github.com/hrsh7th/cmp-buffer\"\n  },\n  [\"cmp-cmdline\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-cmdline\",\n    url = \"https://github.com/hrsh7th/cmp-cmdline\"\n  },\n  [\"cmp-dap\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-dap\",\n    url = \"https://github.com/rcarriga/cmp-dap\"\n  },\n  [\"cmp-nvim-lsp\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp\",\n    url = \"https://github.com/hrsh7th/cmp-nvim-lsp\"\n  },\n  [\"cmp-nvim-lsp-signature-help\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-signature-help\",\n    url = \"https://github.com/hrsh7th/cmp-nvim-lsp-signature-help\"\n  },\n  [\"cmp-nvim-lua\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua\",\n    url = \"https://github.com/hrsh7th/cmp-nvim-lua\"\n  },\n  [\"cmp-path\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-path\",\n    url = \"https://github.com/hrsh7th/cmp-path\"\n  },\n  [\"cmp-tabnine\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp-tabnine\",\n    url = \"https://github.com/tzachar/cmp-tabnine\"\n  },\n  cmp_luasnip = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/cmp_luasnip\",\n    url = \"https://github.com/saadparwaiz1/cmp_luasnip\"\n  },\n  [\"cutlass.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/cutlass.nvim\",\n    url = \"https://github.com/gbprod/cutlass.nvim\"\n  },\n  [\"diffview.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/diffview.nvim\",\n    url = \"https://github.com/sindrets/diffview.nvim\"\n  },\n  [\"friendly-snippets\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/friendly-snippets\",\n    url = \"https://github.com/rafamadriz/friendly-snippets\"\n  },\n  [\"gitsigns.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/gitsigns.nvim\",\n    url = \"https://github.com/lewis6991/gitsigns.nvim\"\n  },\n  [\"impatient.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/impatient.nvim\",\n    url = \"https://github.com/lewis6991/impatient.nvim\"\n  },\n  [\"indent-blankline.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim\",\n    url = \"https://github.com/lukas-reineke/indent-blankline.nvim\"\n  },\n  [\"indent-o-matic\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/indent-o-matic\",\n    url = \"https://github.com/Darazaki/indent-o-matic\"\n  },\n  [\"live-command.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/live-command.nvim\",\n    url = \"https://github.com/smjonas/live-command.nvim\"\n  },\n  [\"lualine.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/lualine.nvim\",\n    url = \"https://github.com/nvim-lualine/lualine.nvim\"\n  },\n  [\"mason-lspconfig.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim\",\n    url = \"https://github.com/williamboman/mason-lspconfig.nvim\"\n  },\n  [\"mason.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/mason.nvim\",\n    url = \"https://github.com/williamboman/mason.nvim\"\n  },\n  neotest = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/neotest\",\n    url = \"https://github.com/nvim-neotest/neotest\"\n  },\n  [\"neotest-jest\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/neotest-jest\",\n    url = \"https://github.com/haydenmeade/neotest-jest\"\n  },\n  [\"neotest-python\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/neotest-python\",\n    url = \"https://github.com/nvim-neotest/neotest-python\"\n  },\n  [\"neotest-vim-test\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/neotest-vim-test\",\n    url = \"https://github.com/nvim-neotest/neotest-vim-test\"\n  },\n  [\"null-ls.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/null-ls.nvim\",\n    url = \"https://github.com/jose-elias-alvarez/null-ls.nvim\"\n  },\n  [\"nvim-autopairs\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-autopairs\",\n    url = \"https://github.com/windwp/nvim-autopairs\"\n  },\n  [\"nvim-cmp\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-cmp\",\n    url = \"https://github.com/hrsh7th/nvim-cmp\"\n  },\n  [\"nvim-colorizer.lua\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua\",\n    url = \"https://github.com/norcalli/nvim-colorizer.lua\"\n  },\n  [\"nvim-dap\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-dap\",\n    url = \"https://github.com/mfussenegger/nvim-dap\"\n  },\n  [\"nvim-dap-python\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-dap-python\",\n    url = \"https://github.com/mfussenegger/nvim-dap-python\"\n  },\n  [\"nvim-dap-ui\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-dap-ui\",\n    url = \"https://github.com/rcarriga/nvim-dap-ui\"\n  },\n  [\"nvim-dap-vscode-js\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-dap-vscode-js\",\n    url = \"https://github.com/mxsdev/nvim-dap-vscode-js\"\n  },\n  [\"nvim-lspconfig\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-lspconfig\",\n    url = \"https://github.com/neovim/nvim-lspconfig\"\n  },\n  [\"nvim-notify\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-notify\",\n    url = \"https://github.com/rcarriga/nvim-notify\"\n  },\n  [\"nvim-spectre\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-spectre\",\n    url = \"https://github.com/windwp/nvim-spectre\"\n  },\n  [\"nvim-surround\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-surround\",\n    url = \"https://github.com/kylechui/nvim-surround\"\n  },\n  [\"nvim-tree.lua\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-tree.lua\",\n    url = \"https://github.com/kyazdani42/nvim-tree.lua\"\n  },\n  [\"nvim-treesitter\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-treesitter\",\n    url = \"https://github.com/nvim-treesitter/nvim-treesitter\"\n  },\n  [\"nvim-treesitter-context\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-treesitter-context\",\n    url = \"https://github.com/nvim-treesitter/nvim-treesitter-context\"\n  },\n  [\"nvim-treesitter-textobjects\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-treesitter-textobjects\",\n    url = \"https://github.com/nvim-treesitter/nvim-treesitter-textobjects\"\n  },\n  [\"nvim-treesitter-textsubjects\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-treesitter-textsubjects\",\n    url = \"https://github.com/RRethy/nvim-treesitter-textsubjects\"\n  },\n  [\"nvim-ts-autotag\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag\",\n    url = \"https://github.com/windwp/nvim-ts-autotag\"\n  },\n  [\"nvim-ts-context-commentstring\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-ts-context-commentstring\",\n    url = \"https://github.com/JoosepAlviste/nvim-ts-context-commentstring\"\n  },\n  [\"nvim-ts-rainbow\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-ts-rainbow\",\n    url = \"https://github.com/p00f/nvim-ts-rainbow\"\n  },\n  [\"nvim-web-devicons\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/nvim-web-devicons\",\n    url = \"https://github.com/kyazdani42/nvim-web-devicons\"\n  },\n  [\"packer.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/packer.nvim\",\n    url = \"https://github.com/wbthomason/packer.nvim\"\n  },\n  [\"plenary.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/plenary.nvim\",\n    url = \"https://github.com/nvim-lua/plenary.nvim\"\n  },\n  [\"project.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/project.nvim\",\n    url = \"https://github.com/ahmedkhalf/project.nvim\"\n  },\n  [\"schemastore.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/schemastore.nvim\",\n    url = \"https://github.com/b0o/schemastore.nvim\"\n  },\n  [\"smart-splits.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/smart-splits.nvim\",\n    url = \"https://github.com/mrjones2014/smart-splits.nvim\"\n  },\n  [\"substitute.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/substitute.nvim\",\n    url = \"https://github.com/gbprod/substitute.nvim\"\n  },\n  [\"telescope-fzf-native.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/telescope-fzf-native.nvim\",\n    url = \"https://github.com/nvim-telescope/telescope-fzf-native.nvim\"\n  },\n  [\"telescope.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/telescope.nvim\",\n    url = \"https://github.com/nvim-telescope/telescope.nvim\"\n  },\n  [\"toggleterm.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/toggleterm.nvim\",\n    url = \"https://github.com/akinsho/toggleterm.nvim\"\n  },\n  [\"trouble.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/trouble.nvim\",\n    url = \"https://github.com/folke/trouble.nvim\"\n  },\n  [\"vim-bbye\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-bbye\",\n    url = \"https://github.com/moll/vim-bbye\"\n  },\n  [\"vim-be-good\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-be-good\",\n    url = \"https://github.com/ThePrimeagen/vim-be-good\"\n  },\n  [\"vim-illuminate\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-illuminate\",\n    url = \"https://github.com/RRethy/vim-illuminate\"\n  },\n  [\"vim-indent-object\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-indent-object\",\n    url = \"https://github.com/michaeljsmith/vim-indent-object\"\n  },\n  [\"vim-matchup\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-matchup\",\n    url = \"https://github.com/andymass/vim-matchup\"\n  },\n  [\"vim-repeat\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-repeat\",\n    url = \"https://github.com/tpope/vim-repeat\"\n  },\n  [\"vim-sneak\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-sneak\",\n    url = \"https://github.com/justinmk/vim-sneak\"\n  },\n  [\"vim-test\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-test\",\n    url = \"https://github.com/vim-test/vim-test\"\n  },\n  [\"vim-textobj-entire\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-textobj-entire\",\n    url = \"https://github.com/kana/vim-textobj-entire\"\n  },\n  [\"vim-textobj-user\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/vim-textobj-user\",\n    url = \"https://github.com/kana/vim-textobj-user\"\n  },\n  [\"vscode-js-debug\"] = {\n    loaded = false,\n    needs_bufread = false,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/opt/vscode-js-debug\",\n    url = \"https://github.com/microsoft/vscode-js-debug\"\n  },\n  [\"which-key.nvim\"] = {\n    loaded = true,\n    path = \"/home/amitgold/.local/share/nvim/site/pack/packer/start/which-key.nvim\",\n    url = \"https://github.com/folke/which-key.nvim\"\n  }\n}\n\ntime([[Defining packer_plugins]], false)\n\n_G._packer.inside_compile = false\nif _G._packer.needs_bufread == true then\n  vim.cmd(\"doautocmd BufRead\")\nend\n_G._packer.needs_bufread = false\n\nif should_profile then save_profiles() end\n\nend)\n\nif not no_errors then\n  error_msg = error_msg:gsub('\"', '\\\\\"')\n  vim.api.nvim_command('echohl ErrorMsg | echom \"Error in packer_compiled: '..error_msg..'\" | echom \"Please check your config for correctness\" | echohl None')\nend\n"
  },
  {
    "path": ".config/sddm-sugar-candy/theme.conf",
    "content": "[General]\n\nBackground=\"Backgrounds/kurz.png\"\n## 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)\n\nDimBackgroundImage=\"0.0\"\n## Double between 0 and 1 used for the alpha channel of a darkening overlay. Use to darken your background image on the fly.\n\nScaleImageCropped=\"true\"\n## 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).\n\nScreenWidth=\"1920\"\nScreenHeight=\"1080\"\n## Adjust to your resolution to help SDDM speed up on calculations\n\n\n\n## [Blur Settings]\n\nFullBlur=\"false\"\nPartialBlur=\"false\"\n## 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.\n\nBlurRadius=\"80\"\n## 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.\n\n\n\n## [Design Customizations]\n\nHaveFormBackground=\"true\"\n## 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.\n\nFormPosition=\"left\"\n## Position of the form which takes roughly 1/3 of screen estate. Can be left, center or right.\n\nBackgroundImageHAlignment=\"center\"\n## 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.\n\nBackgroundImageVAlignment=\"center\"\n## As before but for the vertical position of the background picture relative to its visible area.\n\nMainColor=\"#cdd6f4\"\n## 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)\n## Colors can be HEX or Qt names (e.g. red/salmon/blanchedalmond). See https://doc.qt.io/qt-5/qml-color.html\n\nAccentColor=\"#cba6f7\"\n## Used for elements in focus/hover/pressed. Should be contrasting to the background and the MainColor to achieve the best effect.\n\nBackgroundColor=\"#11111B\"\n## 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.\n\nOverrideLoginButtonTextColor=\"\"\n## 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.\n\nInterfaceShadowSize=\"6\"\n## 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.\n\nInterfaceShadowOpacity=\"0.6\"\n## 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.\n\nRoundCorners=\"5\"\n## Integer in pixels. Radius of the input fields and the login button. Empty for square. Can cause bad antialiasing of the fields.\n\nScreenPadding=\"0\"\n## 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!\n\nFont=\"FiraSans\"\n## 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\n\nFontSize=\"\"\n## Only set a fixed value if fonts are way too small for your resolution. Preferrably kept empty.\n\n\n\n## [Interface Behavior]\n\nForceRightToLeft=\"false\"\n## 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).\n\nForceLastUser=\"true\"\n## Have the last successfully logged in user appear automatically in the username field.\n\nForcePasswordFocus=\"true\"\n## Give automatic focus to the password field. Together with ForceLastUser this makes for the fastest login experience.\n\nForceHideCompletePassword=\"false\"\n## If you don't like to see any character at all not even while being entered set this to true.\n\nForceHideVirtualKeyboardButton=\"false\"\n## 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\n\nForceHideSystemButtons=\"false\"\n## Completely disable and hide any power buttons on the greeter.\n\nAllowEmptyPassword=\"false\"\n## Enable login for users without a password. This is discouraged. Makes the login button always enabled.\n\nAllowBadUsernames=\"false\"\n## 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.\n\n\n\n## [Locale Settings]\n\nLocale=\"\"\n## 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.\n\nHourFormat=\"HH:mm\"\n## 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\n\nDateFormat=\"dddd, d of MMMM\"\n## 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\n\n\n\n## [Translations]\n\nHeaderText=\"Welcome!\"\n## Header can be empty to not display any greeting at all. Keep it short.\n\n## 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.\n\nTranslatePlaceholderUsername=\"\"\nTranslatePlaceholderPassword=\"\"\nTranslateShowPassword=\"\"\nTranslateLogin=\"\"\nTranslateLoginFailedWarning=\"\"\nTranslateCapslockWarning=\"\"\nTranslateSession=\"\"\nTranslateSuspend=\"\"\nTranslateHibernate=\"\"\nTranslateReboot=\"\"\nTranslateShutdown=\"\"\nTranslateVirtualKeyboardButton=\"\"\n## These don't necessarily need to translate anything. You can enter whatever you want here.\n"
  },
  {
    "path": ".config/spicetify/Extensions/catppuccin-mocha.js",
    "content": "// Color map\nlet colorPalette = {\n  rosewater: \"#f5e0dc\",\n  flamingo: \"#f2cdcd\",\n  pink: \"#f5c2e7\",\n  maroon: \"#eba0ac\",\n  red: \"#f38ba8\",\n  peach: \"#fab387\",\n  yellow: \"#f9e2af\",\n  green: \"#a6e3a1\",\n  teal: \"#94e2d5\",\n  blue: \"#89b4fa\",\n  sky: \"#89dceb\",\n  lavender: \"#b4befe\",\n  white: \"#d9e0ee\"\n}\n\n// waitForElement borrowed from:\n// https://github.com/morpheusthewhite/spicetify-themes/blob/master/Dribbblish/dribbblish.js\nfunction waitForElement(els, func, timeout = 100) {\n  const queries = els.map(el => document.querySelector(el));\n  if (queries.every(a => a)) {\n    func(queries);\n  } else if (timeout > 0) {\n    setTimeout(waitForElement, 300, els, func, --timeout);\n  }\n}\n\n// Return the color label for a given hex color value\nfunction getKeyByValue(object, value) {\n  return Object.keys(object).find(key => object[key] === value.trim());\n}\n\n// Used to select matching equalizer-animated-COLOR.gif\nwaitForElement([\".Root\"], (root) => {\n  let spiceEq = getComputedStyle(document.querySelector(\":root\")).getPropertyValue(\"--spice-equalizer\");\n  let eqColor = getKeyByValue(colorPalette, spiceEq);\n  root[0].classList.add(`catppuccin-eq-${eqColor}`);\n});\n"
  },
  {
    "path": ".config/spicetify/Themes/catppuccin-mocha/assets/.gitkeep",
    "content": ""
  },
  {
    "path": ".config/spicetify/Themes/catppuccin-mocha/color.ini",
    "content": "[rosewater]\ntext               = F5E0DC\nsubtext            = CDD6F4\naccent             = FAE3B0\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 414559\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6C7086\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F38BA8\nequalizer          = F5E0DC\nmisc               = 585B70\n\n[flamingo]\ntext               = F2CDCD\nsubtext            = CDD6F4\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = F2CDCD\nmisc               = 585B70\n\n[mauve]\ntext               = CBA6F7\nsubtext            = CDD6F4\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = CBA6F7\nmisc               = 585B70\n\n[pink]\ntext               = F5C2E7\nsubtext            = CDD6F4\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = F5C2E7\nmisc               = 585B70\n\n[maroon]\ntext               = EBA0AC\nsubtext            = CDD6F4\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = EBA0AC\nmisc               = 585B70\n\n[red]\ntext               = F38BA8\nsubtext            = CDD6F4\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = F38BA8\nmisc               = 585B70\n\n[peach]\ntext               = FAB387\nsubtext            = CDD6F4\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = FAB387\nmisc               = 585B70\n\n[yellow]\ntext               = F9E2AF\nsubtext            = CDD6F4\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = F9E2AF\nmisc               = 585B70\n\n[green]\ntext               = A6E3A1\nsubtext            = CDD6F4\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = A6E3A1\nmisc               = 585B70\n\n[teal]\ntext               = 94E2D5\nsubtext            = CDD6F4\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = 94E2D5\nmisc               = 585B70\n\n[blue]\ntext               = 89B4FA\nsubtext            = CDD6F4\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = 89B4FA\nmisc               = 585B70\n\n[sky]\ntext               = 89DCEB\nsubtext            = CDD6F4\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = 89DCEB\nmisc               = 585B70\n\n[lavender]\ntext               = B4BEFE\nsubtext            = BAC2DE\nmain               = 1E1E2E\nsidebar            = 181825\nplayer             = 11111B\ncard               = 313244\nshadow             = 181825\nselected-row       = 585B70\nbutton             = 7F849C\nbutton-active      = 9399B2\nbutton-disabled    = 6E6C7E\ntab-active         = 313244\nnotification       = 313244\nnotification-error = F28FAD\nequalizer          = B4BEFE\nmisc               = 585B70\n"
  },
  {
    "path": ".config/spicetify/Themes/catppuccin-mocha/user.css",
    "content": "/* Color Pallette */\n/* Note: These variables should be used ONLY when needed across ALL of the color palettes. */\n:root {\n  /* Morning */\n  --flamingo: #f2cdcd;\n  --mauve: #cba6f7;\n  --pink: #f5c2e7;\n  --maroon: #eba0ac;\n  --red: #f38ba8;\n  --peach: #fab387;\n  --yellow: #f9e2af;\n  --green: #a6e3a1;\n  --teal: #94e2d5;\n  --blue: #89b4fa;\n  --sky: #89dceb;\n  /* Night */\n  /* --black-0: #161320; */\n  --crust: #11111B;\n  /* --black-1: #1A1826; */\n  --mantle: #181825;\n  /* --black-2: #1E1E2E;  */\n  --base: #1E1E2E;\n  /* --black-3: #302D41; */\n  --surface0: #313244;\n  /* --black-4: #575268;  */\n  --surface1: #45475A; \n  /* --gray-0: #6E6C7E;  */\n  --overlay0: #6C7086;\n  /* --gray-1: #988BA2; */\n  ---overlay1: #7f849C;\n  /* --gray-2: #C3BAC6; */\n  --overlay2: #9399B2;\n  /* --white: #D9E0EE; */\n  --white: #d9e0ee;\n  --lavender: #b4befe;\n  --rosewater: #f5e0dc;\n}\n\n/* Buttons */\n.main-playButton-PlayButton.main-playButton-primary {\n    color: var(--spice-player);\n}\n\n.main-button-primary {\n    background-color: var(--spice-main);\n}\n.main-button-primary:active,\n.main-button-primary:focus,\n.main-button-primary:hover {\n    background-color: var(--spice-sidebar);\n}\n\n.main-view-container button:hover > div[class^='ButtonInner-sc-'] {\n    background-color: var(--spice-button);\n}\n\n.control-button-heart[aria-checked=\"true\"],\n.main-addButton-active,\n.main-addButton-active:focus,\n.main-addButton-active:hover {\n    color: var(--red);\n}\n\n.main-addButton-active:hover {\n    -webkit-transform: scale(1.06);\n    transform: scale(1.06);\n}\n\n/* Progress bar */\n.x-progressBar-progressBarBg > div > div {\n    background-color: var(--spice-text);\n}\n\n/* Top bars */\n.main-entityHeader-backgroundColor,\n.main-actionBarBackground-background,\n.main-view-container main[aria-label=\"Spotify – Web Player\"] > div:first-child {\n    display: none;\n}\n\n.main-topBar-background {\n    background-color: var(--spice-main) !important;\n}\n\n.main-entityHeader-withBackgroundImage {\n    background-color: rgba(var(--spice-rgb-player), 0.2);\n}\n\n/* Sidebar */\n.main-navBar-navBar li:hover > div,\n.main-navBar-navBar li:hover > a:not(.main-navBar-navBarLinkActive),\n.spicetify-playlist-list li:hover {\n    background-color: var(--spice-main);\n}\n\n#spicetify-sticky-list li:hover > div {\n    border-radius: 4px;\n}\n\n/* Scrollbar */\n.os-theme-spotify > .os-scrollbar-horizontal,\n.os-theme-spotify > .os-scrollbar-vertical {\n    padding: 4px;\n}\n\n.os-theme-spotify.os-host-transition\n    > .os-scrollbar-horizontal\n    > .os-scrollbar-track\n    > .os-scrollbar-handle,\n.os-theme-spotify.os-host-transition\n    > .os-scrollbar-vertical\n    > .os-scrollbar-track\n    > .os-scrollbar-handle {\n    background-color: var(--decorative-base);\n    border-radius: 6px;\n}\n\n::-webkit-scrollbar {\n    width: 0.5em;\n}\n::-webkit-scrollbar-thumb {\n    background-color: #575268;\n    border-radius: 4px;\n}\n\n/* Home */\n.main-home-homeHeader {\n    display: none;\n}\n\n.main-home-content\n    > section:first-child\n    > .main-gridContainer-gridContainer\n    > div {\n    background-color: var(--spice-card);\n}\n.main-home-content\n    > section:first-child\n    > .main-gridContainer-gridContainer\n    > div:hover {\n    background-color: var(--spice-misc);\n}\n\n.main-gridContainer-gridContainer > div,\n.main-gridContainer-gridContainer > div > div > div {\n    border-radius: 6px;\n}\n\n/* Cards */\n.main-card-card {\n    border-radius: 6px;\n}\n\n.main-card-imageContainer {\n    margin: -16px -16px 16px -16px;\n}\n\n.main-cardImage-imageWrapper,\n.main-cardImage-image {\n    border-radius: 6px 6px 0 0;\n}\n\n/* Settings */\ninput:checked~.x-toggle-indicatorWrapper {\n  background-color: var(---overlay1);\n}\n\ninput:hover:not([disabled]):not(:active)~.x-toggle-indicatorWrapper {\n  background-color: var(--spice-button-active);\n}\n\nselect option:checked {\n  color: var(--spice-text);\n  font-weight: bold;\n}\n\n/* Animated equalizer */\n/* EQ color classes are specified here in case the js extension is not moved over\n * The default green eq will be used in this case */\n.catppuccin-eq-rosewater .main-trackList-playingIcon,\n.catppuccin-eq-flamingo .main-trackList-playingIcon,\n.catppuccin-eq-mauve .main-trackList-playingIcon,\n.catppuccin-eq-pink .main-trackList-playingIcon,\n.catppuccin-eq-maroon .main-trackList-playingIcon,\n.catppuccin-eq-red .main-trackList-playingIcon,\n.catppuccin-eq-peach .main-trackList-playingIcon,\n.catppuccin-eq-yellow .main-trackList-playingIcon,\n.catppuccin-eq-green .main-trackList-playingIcon,\n.catppuccin-eq-teal .main-trackList-playingIcon,\n.catppuccin-eq-blue .main-trackList-playingIcon,\n.catppuccin-eq-sky .main-trackList-playingIcon,\n.catppuccin-eq-lavender .main-trackList-playingIcon,\n.catppuccin-eq-white .main-trackList-playingIcon {\n    background-size: cover;\n    padding-left: 100%;\n}\n\n.catppuccin-eq-rosewater .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-rosewater.gif\");\n}\n.catppuccin-eq-flamingo .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-flamingo.gif\");\n}\n.catppuccin-eq-mauve .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-mauve.gif\");\n}\n.catppuccin-eq-pink .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-pink.gif\");\n}\n.catppuccin-eq-maroon .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-maroon.gif\");\n}\n.catppuccin-eq-red .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-red.gif\");\n}\n.catppuccin-eq-peach .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-peach.gif\");\n}\n.catppuccin-eq-yellow .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-yellow.gif\");\n}\n.catppuccin-eq-green .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-green.gif\");\n}\n.catppuccin-eq-teal .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-teal.gif\");\n}\n.catppuccin-eq-blue .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-blue.gif\");\n}\n.catppuccin-eq-sky .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-sky.gif\");\n}\n.catppuccin-eq-lavender .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-lavender.gif\");\n}\n.catppuccin-eq-lavender .main-trackList-playingIcon {\n    background-image: url(\"equalizer-animated-white.gif\");\n}\n\n/* For that small dot on podcasts that notify us of new episodes */\n.main-home-content\n    > section:first-child\n    > .main-gridContainer-gridContainer\n    > div\n    span[aria-label],\nspan[aria-label=\"New episode\"],\nspan[aria-label=\"New Podcast Episode\"] {\n    background: var(--spice-accent, var(--spice-text));\n}\n\n/* Modals */\n.GenericModal[aria-label=\"Already added\"] > div {\n    background-color: var(--spice-card);\n    color: var(--spice-subtext);\n}\n\n.GenericModal[aria-label=\"Already added\"] button:first-child {\n    color: var(--spice-button-active);\n}\n\n.GenericModal[aria-label=\"Already added\"] button:first-child:hover {\n    color: var(--spice-notification-error);\n}\n\n.GenericModal[aria-label=\"Already added\"] button:last-child:hover > div {\n    background-color: var(--spice-button);\n}\n\n\n"
  },
  {
    "path": ".config/waybar/config.jsonc",
    "content": "{\n    \"layer\": \"top\",\n    \"position\": \"top\",\n    \"height\": 0,\n    \"modules-left\": [\"clock\", \"wlr/workspaces\"],\n    \"modules-center\": [\"hyprland/window\"],\n    \"modules-right\": [\n        \"tray\",\n        \"custom/caffeine\",\n        \"custom/updates\",\n        \"custom/language\",\n        \"network\",\n        \"backlight\",\n        \"pulseaudio\",\n        \"battery\"\n    ],\n\n    \"hyprland/window\": {\n        \"format\": \"{}\"\n    },\n    \"wlr/workspaces\": {\n        \"disable-scroll\": true,\n        \"all-outputs\": true,\n        \"on-click\": \"activate\",\n        //\"format\": \"{icon}\",\n        \"persistent_workspaces\": {\n            \"1\": [],\n            \"2\": [],\n            \"3\": [],\n            \"4\": [],\n            \"5\": [],\n            \"6\": [],\n            \"7\": [],\n            \"8\": [],\n            \"9\": [],\n            \"10\": []\n        }\n    },\n    \"custom/caffeine\": {\n        \"exec\": \"~/.config/waybar/scripts/caffeine.sh\",\n        \"return-type\": \"json\",\n        \"interval\": 3,\n        \"format-icons\": [\"﯈\", \"\"],\n        \"format\": \"{icon}\"\n    },\n    \"custom/updates\": {\n        \"exec\": \"(checkupdates ; paru -Qua) | wc -l\",\n        \"interval\": 7200,\n        \"format\": \" {}\"\n    },\n    \"custom/language\": {\n        \"exec\": \"cat /tmp/kb_layout\",\n        \"interval\": 3,\n        \"format\": \" {}\"\n    },\n    \"tray\": {\n        \"icon-size\": 13,\n        \"spacing\": 10\n    },\n    \"backlight\": {\n        \"device\": \"intel_backlight\",\n        \"format\": \"{icon} {percent}%\",\n        \"format-icons\": [\"\", \"\", \"\"],\n        \"on-scroll-up\": \"brightnessctl set 1%+\",\n        \"on-scroll-down\": \"brightnessctl set 1%-\",\n        \"min-length\": 6\n    },\n    \"battery\": {\n        \"states\": {\n            \"good\": 95,\n            \"warning\": 30,\n            \"critical\": 20\n        },\n        \"format\": \"{icon} {capacity}%\",\n        \"format-charging\": \" {capacity}%\",\n        \"format-plugged\": \" {capacity}%\",\n        \"format-alt\": \"{time} {icon}\",\n        \"format-icons\": [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"]\n    },\n    \"clock\": {\n        \"format\": \"{: %R   %d/%m}\",\n        \"tooltip-format\": \"<big>{:%Y %B}</big>\\n<tt><small>{calendar}</small></tt>\"\n    },\n    \"network\": {\n        \"format-wifi\": \"直 {essid}\",\n        \"format-ethernet\": \" {essid}\",\n        \"format-linked\": \"{ifname} (No IP) \",\n        \"format-disconnected\": \"睊 Disconnected\",\n        \"tooltip-format-wifi\": \"Signal Strenght: {signalStrength}% | Down Speed: {bandwidthDownBits}, Up Speed: {bandwidthUpBits}\",\n        \"on-click\": \"wofi-wifi-menu\"\n    },\n    \"pulseaudio\": {\n        \"format\": \"{icon} {volume}%\",\n        \"format-muted\": \"ﱝ Muted\",\n        \"on-click\": \"/home/amitgold/.config/hypr/scripts/volume_ctl.sh mute\",\n        \"scroll-step\": 1,\n        \"format-icons\": {\n            \"headphone\": \"\",\n            \"hands-free\": \"\",\n            \"headset\": \"\",\n            \"phone\": \"\",\n            \"portable\": \"\",\n            \"car\": \"\",\n            \"default\": [\"\", \"\", \"墳\", \"\"]\n        }\n    }\n}\n"
  },
  {
    "path": ".config/waybar/scripts/caffeine.sh",
    "content": "#!/bin/sh\n\nif pgrep -x sleep.sh > /dev/null; then\n  echo '{ \"percentage\": 0 }'\nelse\n  echo '{ \"percentage\": 100 }'\nfi\n"
  },
  {
    "path": ".config/waybar/style.css",
    "content": "* {\n    border: none;\n    border-radius: 0;\n    font-family: monospace;\n    font-weight: bold;\n    font-size: 14px;\n    min-height: 0;\n}\n\nwindow#waybar {\n    background: rgba(21, 18, 27, 0);\n    color: #cdd6f4;\n}\n\ntooltip {\n    background: #1e1e2e;\n    border-radius: 10px;\n    border-width: 2px;\n    border-style: solid;\n    border-color: #11111b;\n}\n\n#workspaces button {\n    padding: 5px;\n    color: #313244;\n    margin-right: 5px;\n}\n\n#workspaces button.active {\n    color: #a6adc8;\n}\n\n#workspaces button.focused {\n    color: #a6adc8;\n    background: #eba0ac;\n    border-radius: 10px;\n}\n\n#workspaces button.urgent {\n    color: #11111b;\n    background: #a6e3a1;\n    border-radius: 10px;\n}\n\n#workspaces button:hover {\n    background: #11111b;\n    color: #cdd6f4;\n    border-radius: 10px;\n}\n\n#custom-language,\n#custom-updates,\n#custom-caffeine,\n#window,\n#clock,\n#battery,\n#pulseaudio,\n#network,\n#workspaces,\n#tray,\n#backlight {\n    background: #1e1e2e;\n    padding: 0px 10px;\n    margin: 3px 0px;\n    margin-top: 10px;\n    border: 1px solid #181825;\n}\n\n#tray {\n    border-radius: 10px;\n    margin-right: 10px;\n}\n\n#workspaces {\n    background: #1e1e2e;\n    border-radius: 10px;\n    margin-left: 10px;\n    padding-right: 0px;\n    padding-left: 5px;\n}\n\n#custom-caffeine {\n    color: #89dceb;\n    border-radius: 10px 0px 0px 10px;\n    border-right: 0px;\n    margin-left: 10px;\n}\n\n#custom-language {\n    color: #f38ba8;\n    border-left: 0px;\n    border-right: 0px;\n}\n\n#custom-updates {\n    color: #f5c2e7;\n    border-left: 0px;\n    border-right: 0px;\n}\n\n#window {\n    border-radius: 10px;\n    margin-left: 60px;\n    margin-right: 60px;\n}\n\n#clock {\n    color: #f9e2af;\n    border-radius: 10px;\n    margin-left: 10px;\n}\n\n#network {\n    color: #fab387;\n    border-left: 0px;\n    border-right: 0px;\n}\n\n#pulseaudio {\n    color: #89b4fa;\n    border-left: 0px;\n    border-right: 0px;\n}\n\n#battery {\n    color: #a6e3a1;\n    border-radius: 0 10px 10px 0;\n    margin-right: 10px;\n    border-left: 0px;\n}\n\n#backlight {\n    color: #cba6f7;\n    border-left: 0px;\n    border-right: 0px;\n}\n"
  },
  {
    "path": ".config/wlogout/layout",
    "content": "{\n    \"label\" : \"lock\",\n    \"action\" : \"~/.config/hypr/scripts/lock.sh\",\n    \"text\" : \"Lock\",\n    \"keybind\" : \"l\"\n}\n{\n    \"label\" : \"reboot\",\n    \"action\" : \"systemctl reboot\",\n    \"text\" : \"Reboot\",\n    \"keybind\" : \"r\"\n}\n{\n    \"label\" : \"shutdown\",\n    \"action\" : \"systemctl poweroff\",\n    \"text\" : \"Shutdown\",\n    \"keybind\" : \"s\"\n}\n{\n    \"label\" : \"logout\",\n    \"action\" : \"hyprctl dispatch exit 0\",\n    \"text\" : \"Logout\",\n    \"keybind\" : \"e\"\n}\n{\n    \"label\" : \"suspend\",\n    \"action\" : \"systemctl suspend\",\n    \"text\" : \"Suspend\",\n    \"keybind\" : \"u\"\n}\n"
  },
  {
    "path": ".config/wlogout/style.css",
    "content": "window {\n    font-family: monospace;\n    font-size: 14pt;\n    color: #cdd6f4; /* text */\n    background-color: rgba(30, 30, 46, 0.5);\n}\n\nbutton {\n    background-repeat: no-repeat;\n    background-position: center;\n    background-size: 25%;\n    border: none;\n    background-color: rgba(30, 30, 46, 0);\n    margin: 5px;\n    transition: box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out;\n}\n\nbutton:hover {\n    background-color: rgba(49, 50, 68, 0.1);\n}\n\nbutton:focus {\n    background-color: #cba6f7;\n    color: #1e1e2e;\n}\n\n#lock {\n    background-image: image(url(\"./lock.png\"));\n}\n#lock:focus {\n    background-image: image(url(\"./lock-hover.png\"));\n}\n\n#logout {\n    background-image: image(url(\"./logout.png\"));\n}\n#logout:focus {\n    background-image: image(url(\"./logout-hover.png\"));\n}\n\n#suspend {\n    background-image: image(url(\"./sleep.png\"));\n}\n#suspend:focus {\n    background-image: image(url(\"./sleep-hover.png\"));\n}\n\n#shutdown {\n    background-image: image(url(\"./power.png\"));\n}\n#shutdown:focus {\n    background-image: image(url(\"./power-hover.png\"));\n}\n\n#reboot {\n    background-image: image(url(\"./restart.png\"));\n}\n#reboot:focus {\n    background-image: image(url(\"./restart-hover.png\"));\n}\n"
  },
  {
    "path": ".config/wofi/config",
    "content": "width=800\nheight=400\nlocation=center\nshow=drun\nprompt=Search...\nfilter_rate=100\nallow_markup=true\nno_actions=true\nhalign=fill\norientation=vertical\ncontent_halign=fill\ninsensitive=true\nallow_images=true\nimage_size=28\ngtk_dark=true\n"
  },
  {
    "path": ".config/wofi/style.css",
    "content": "@define-color clear rgba(0, 0, 0, 0.0);\n@define-color primary rgba(0, 0, 0, 0.75);\n\nwindow {\n    margin: 2px;\n    border: 2px solid;\n    border-color: #313244;\n    background-color: #1e1e2e;\n    border-radius: 10px;\n    font-family: monospace;\n    font-size: 14px;\n}\n\n#input {\n    padding: 2px;\n    margin: 4px;\n    margin-bottom: 8px;\n    border: none;\n    color: @foreground;\n    background-color: #313244;\n   \toutline: none;\n}\n\n#inner-box {\n    margin: 2px;\n    border: 0px solid;\n    background-color: @clear;\n    border-radius: 8px;\n}\n\n#outer-box {\n    margin: 5px;\n    border: none;\n    border-radius: 8px;\n    background-color: @clear;\n}\n\n#scroll {\n    margin: 0px;\n    border: none;\n}\n\n#text:selected {\n    color: @foreground;\n    margin: 0px 0px;\n    border: none;\n    border-radius: 8px;\n}\n\n#entry {\n    margin: 0px 0px;\n    border: none;\n    border-radius: 0px;\n    background-color: transparent;\n}\n\n#entry:selected {\n    margin: 0px 0px;\n    border: none;\n    border-radius: 8px;\n    background-color: #585b70;\n}\n"
  },
  {
    "path": ".config/wofi/wifi",
    "content": "# Config for wofi-wifi-menu\n\n# position values:\n# 1 2 3\n# 8 0 4\n# 7 6 5\nPOSITION=3\n\n#y-offset\nYOFF=10\n\n#x-offset\nXOFF=-65\n\n#fields to be displayed\nFIELDS=SSID,IN-USE,BARS,SECURITY\n"
  },
  {
    "path": ".config/xfce4/helpers.rc",
    "content": "TerminalEmulator=kitty\nTerminalEmulatorDismissed=true\n"
  },
  {
    "path": ".config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<channel name=\"thunar\" version=\"1.0\">\n  <property name=\"last-view\" type=\"string\" value=\"ThunarDetailsView\"/>\n  <property name=\"last-icon-view-zoom-level\" type=\"string\" value=\"THUNAR_ZOOM_LEVEL_100_PERCENT\"/>\n  <property name=\"last-window-maximized\" type=\"bool\" value=\"true\"/>\n  <property name=\"last-separator-position\" type=\"int\" value=\"170\"/>\n  <property name=\"misc-single-click\" type=\"bool\" value=\"false\"/>\n  <property name=\"last-show-hidden\" type=\"bool\" value=\"false\"/>\n  <property name=\"misc-open-new-window-as-tab\" type=\"bool\" value=\"false\"/>\n  <property name=\"last-details-view-zoom-level\" type=\"string\" value=\"THUNAR_ZOOM_LEVEL_38_PERCENT\"/>\n  <property name=\"last-details-view-column-widths\" type=\"string\" value=\"126,124,72,114,1209,76,112,70,112,62\"/>\n  <property name=\"last-sort-column\" type=\"string\" value=\"THUNAR_COLUMN_DATE_MODIFIED\"/>\n  <property name=\"last-sort-order\" type=\"string\" value=\"GTK_SORT_DESCENDING\"/>\n  <property name=\"misc-middle-click-in-tab\" type=\"bool\" value=\"true\"/>\n  <property name=\"last-details-view-visible-columns\" type=\"string\" value=\"THUNAR_COLUMN_DATE_ACCESSED,THUNAR_COLUMN_DATE_MODIFIED,THUNAR_COLUMN_NAME,THUNAR_COLUMN_PERMISSIONS,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_TYPE\"/>\n  <property name=\"misc-confirm-close-multiple-tabs\" type=\"bool\" value=\"false\"/>\n</channel>\n"
  },
  {
    "path": ".config/zsh/catppuccin-tty.sh",
    "content": "#!/usr/bin/env bash\n\nif [ \"$TERM\" = \"linux\" ]; then\n\tprintf %b '\\e]P011111B' # set background color to \"Base\"\n\tprintf %b '\\e]P8585B70' # set bright black to \"Surface2\"\n\n\tprintf %b '\\e]P7BAC2DE' # set text color to \"Text\"\n\tprintf %b '\\e]PFA6ADC8' # set bright white to \"Subtext0\"\n\n\tprintf %b '\\e]P1F38BA8' # set red to \"Red\"\n\tprintf %b '\\e]P9F38BA8' # set bright red to \"Red\"\n\n\tprintf %b '\\e]P2A6E3A1' # set green to \"Green\"\n\tprintf %b '\\e]PAA6E3A1' # set bright green to \"Green\"\n\n\tprintf %b '\\e]P3F9E2AF' # set yellow to \"Yellow\"\n\tprintf %b '\\e]PBF9E2AF' # set bright yellow to \"Yellow\"\n\n\tprintf %b '\\e]P489B4FA' # set blue to \"Blue\"\n\tprintf %b '\\e]PC89B4FA' # set bright blue to \"Blue\"\n\n\tprintf %b '\\e]P5F5C2E7' # set magenta to \"Pink\"\n\tprintf %b '\\e]PDF5C2E7' # set bright magenta to \"Pink\"\n\n\tprintf %b '\\e]P694E2D5' # set cyan to \"Teal\"\n\tprintf %b '\\e]PE94E2D5' # set bright cyan to \"Teal\"\n\n\tclear\nfi\n"
  },
  {
    "path": ".gitconfig",
    "content": "[user]\n\temail = amit.wifi@gmail.com\n\tname = Amit Goldenberg\n"
  },
  {
    "path": ".gtkrc-2.0",
    "content": "# DO NOT EDIT! This file will be overwritten by LXAppearance.\n# Any customization should be done in ~/.gtkrc-2.0.mine instead.\n\ninclude \"/home/amitgold/.gtkrc-2.0.mine\"\ngtk-theme-name=\"Catppuccin-Mocha-Mauve\"\ngtk-icon-theme-name=\"Papirus-Dark\"\ngtk-font-name=\"Cantarell 11\"\ngtk-cursor-theme-name=\"Catppuccin-Cursor\"\ngtk-cursor-theme-size=0\ngtk-toolbar-style=GTK_TOOLBAR_BOTH\ngtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR\ngtk-button-images=1\ngtk-menu-images=1\ngtk-enable-event-sounds=1\ngtk-enable-input-feedback-sounds=1\ngtk-xft-antialias=1\ngtk-xft-hinting=1\ngtk-xft-hintstyle=\"hintfull\"\n"
  },
  {
    "path": ".icons/Catppuccin-Cursor/index.theme",
    "content": "[Icon Theme]\nName=\"Simp1e-Catppuccin\"\n"
  },
  {
    "path": ".icons/default/index.theme",
    "content": "# This file is written by LXAppearance. Do not edit.\n[Icon Theme]\nName=Default\nComment=Default Cursor Theme\nInherits=Catppuccin-Cursor\n"
  },
  {
    "path": ".lessfilter",
    "content": "#! /usr/bin/env sh\n# this is a example of .lessfilter, you can change it\nmime=$(file -bL --mime-type \"$1\")\ncategory=${mime%%/*}\nkind=${mime##*/}\n\nif [ -d \"$1\" ]; then\n\texa --git -hl --color=always --icons \"$1\"\n# elif [ \"$category\" = image ]; then\n  # kitty +kitten icat --place 30x30@0x0 --silent --transfer-mode file \"$1\"\n# elif [ \"$kind\" = vnd.openxmlformats-officedocument.spreadsheetml.sheet ] || \\\n# \t[ \"$kind\" = vnd.ms-excel ]; then\n# \tin2csv \"$1\" | xsv table | bat -ltsv --color=always\nelif [ \"$category\" = text ]; then\n\tbat --color=always \"$1\"\nelse\n\t# lesspipe.sh \"$1\" | bat --color=always\n  echo \"Can't preview file\"\nfi\n# lesspipe.sh don't use exa, bat and chafa, it use ls and exiftool. so we create a lessfilter.\n"
  },
  {
    "path": ".local/bin/nvim_kitty",
    "content": "#!/bin/env sh\n\nif [[ $TERM == 'xterm-kitty' ]]; then\n\tkitty @ set-spacing padding=0\n\tnvim \"$@\"\n\tkitty @ set-spacing padding=default\nelse\n\tnvim \"$@\"\nfi\n"
  },
  {
    "path": ".local/bin/spotify-adblock",
    "content": "#!/bin/sh\n\nLD_PRELOAD=/usr/lib/spotify-adblock.so spotify\n"
  },
  {
    "path": ".local/bin/wrappedhl",
    "content": "#!/bin/sh\n\ncd ~\n\nexport _JAVA_AWT_WM_NONREPARENTING=1\nexport XCURSOR_SIZE=24\n\nexport LIBVA_DRIVER_NAME=nvidia\nexport XDG_SESSION_TYPE=wayland\nexport GBM_BACKEND=nvidia-drm\nexport __GLX_VENDOR_LIBRARY_NAME=nvidia\nexport WLR_NO_HARDWARE_CURSORS=1\n\nexec Hyprland\n"
  },
  {
    "path": ".local/share/applications/discord.desktop",
    "content": "[Desktop Entry]\nName=Discord\nStartupWMClass=discord\nComment=All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone.\nGenericName=Internet Messenger\nExec=/usr/bin/discocss\nIcon=discord\nType=Application\nCategories=Network;InstantMessaging;\nPath=/usr/bin\nPath=/usr/bin\n"
  },
  {
    "path": ".local/share/applications/nvim.desktop",
    "content": "[Desktop Entry]\nName=Neovim\nGenericName=Text Editor\nGenericName[de]=Texteditor\nGenericName[fr]=Éditeur de texte\nGenericName[ru]=Текстовый редактор\nGenericName[sr]=Едитор текст\nGenericName[tr]=Metin Düzenleyici\nComment=Edit text files\nComment[af]=Redigeer tekslêers\nComment[am]=የጽሑፍ ፋይሎች ያስተካክሉ\nComment[ar]=حرّر ملفات نصية\nComment[az]=Mətn fayllarını redaktə edin\nComment[be]=Рэдагаваньне тэкставых файлаў\nComment[bg]=Редактиране на текстови файлове\nComment[bn]=টেক্স্ট ফাইল এডিট করুন\nComment[bs]=Izmijeni tekstualne datoteke\nComment[ca]=Edita fitxers de text\nComment[cs]=Úprava textových souborů\nComment[cy]=Golygu ffeiliau testun\nComment[da]=Redigér tekstfiler\nComment[de]=Textdateien bearbeiten\nComment[el]=Επεξεργασία αρχείων κειμένου\nComment[en_CA]=Edit text files\nComment[en_GB]=Edit text files\nComment[es]=Edita archivos de texto\nComment[et]=Redigeeri tekstifaile\nComment[eu]=Editatu testu-fitxategiak\nComment[fa]=ویرایش پرونده‌های متنی\nComment[fi]=Muokkaa tekstitiedostoja\nComment[fr]=Éditer des fichiers texte\nComment[ga]=Eagar comhad Téacs\nComment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો\nComment[he]=ערוך קבצי טקסט\nComment[hi]=पाठ फ़ाइलें संपादित करें\nComment[hr]=Uređivanje tekstualne datoteke\nComment[hu]=Szövegfájlok szerkesztése\nComment[id]=Edit file teks\nComment[it]=Modifica file di testo\nComment[ja]=テキストファイルを編集します\nComment[kn]=ಪಠ್ಯ ಕಡತಗಳನ್ನು ಸಂಪಾದಿಸು\nComment[ko]=텍스트 파일을 편집합니다\nComment[lt]=Redaguoti tekstines bylas\nComment[lv]=Rediģēt teksta failus\nComment[mk]=Уреди текстуални фајлови\nComment[ml]=വാചക രചനകള് തിരുത്തുക\nComment[mn]=Текст файл боловсруулах\nComment[mr]=गद्य फाइल संपादित करा\nComment[ms]=Edit fail teks\nComment[nb]=Rediger tekstfiler\nComment[ne]=पाठ फाइललाई संशोधन गर्नुहोस्\nComment[nl]=Tekstbestanden bewerken\nComment[nn]=Rediger tekstfiler\nComment[no]=Rediger tekstfiler\nComment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ\nComment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ\nComment[pl]=Edytor plików tekstowych\nComment[pt]=Editar ficheiros de texto\nComment[pt_BR]=Edite arquivos de texto\nComment[ro]=Editare fişiere text\nComment[ru]=Редактирование текстовых файлов\nComment[sk]=Úprava textových súborov\nComment[sl]=Urejanje datotek z besedili\nComment[sq]=Përpuno files teksti\nComment[sr]=Уређујте текст фајлове\nComment[sr@Latn]=Izmeni tekstualne datoteke\nComment[sv]=Redigera textfiler\nComment[ta]=உரை கோப்புகளை தொகுக்கவும்\nComment[th]=แก้ไขแฟ้มข้อความ\nComment[tk]=Metin faýllary editle\nComment[tr]=Metin dosyaları düzenleyin\nComment[uk]=Редактор текстових файлів\nComment[vi]=Soạn thảo tập tin văn bản\nComment[wa]=Asspougnî des fitchîs tecses\nComment[zh_CN]=编辑文本文件\nComment[zh_TW]=編輯文字檔\nTryExec=nvim\nExec=kitty sh -c \"nvim %F\"\nTerminal=false\nType=Application\nKeywords=Text;editor;\nKeywords[fr]=Texte;éditeur;\nKeywords[ru]=текст;текстовый редактор;\nKeywords[sr]=Текст;едитор;\nKeywords[tr]=Metin;düzenleyici;\nIcon=nvim\nCategories=Utility;TextEditor;\nStartupNotify=false\nMimeType=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++;\n"
  },
  {
    "path": ".local/share/applications/spotify.desktop",
    "content": "[Desktop Entry]\nType=Application\nName=Spotify\nGenericName=Music Player\nIcon=spotify-client\nTryExec=spotify\nExec=env LD_PRELOAD=/usr/lib/spotify-adblock.so spotify %U\nTerminal=false\nMimeType=x-scheme-handler/spotify;\nCategories=Audio;Music;Player;AudioVideo;\nStartupWMClass=spotify\n"
  },
  {
    "path": ".p10k-tty.zsh",
    "content": "# Generated by Powerlevel10k configuration wizard on 2022-08-22 at 14:16 IDT.\n# Based on romkatv/powerlevel10k/config/p10k-lean-8colors.zsh, checksum 16080.\n# Wizard options: ascii, lean_8colors, 24h time, 2 lines, dotted, white-ornaments,\n# compact, concise, transient_prompt, instant_prompt=verbose.\n# Type `p10k configure` to generate another config.\n#\n# Config for Powerlevel10k with 8-color lean prompt style. Type `p10k configure` to generate\n# your own config based on it.\n#\n# Tip: Looking for a nice color? Here's a one-liner to print colormap.\n#\n#   for i in {0..255}; do print -Pn \"%K{$i}  %k%F{$i}${(l:3::0:)i}%f \" ${${(M)$((i%6)):#3}:+$'\\n'}; done\n\n# Temporarily change options.\n'builtin' 'local' '-a' 'p10k_config_opts'\n[[ ! -o 'aliases'         ]] || p10k_config_opts+=('aliases')\n[[ ! -o 'sh_glob'         ]] || p10k_config_opts+=('sh_glob')\n[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')\n'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'\n\n() {\n  emulate -L zsh -o extended_glob\n\n  # Unset all configuration options. This allows you to apply configuration changes without\n  # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.\n  unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'\n\n  # Zsh >= 5.1 is required.\n  autoload -Uz is-at-least && is-at-least 5.1 || return\n\n  # The list of segments shown on the left. Fill it with the most important segments.\n  typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(\n    # =========================[ Line #1 ]=========================\n    # os_icon               # os identifier\n    dir                     # current directory\n    vcs                     # git status\n    # =========================[ Line #2 ]=========================\n    newline                 # \\n\n    prompt_char             # prompt symbol\n  )\n\n  # The list of segments shown on the right. Fill it with less important segments.\n  # Right prompt on the last prompt line (where you are typing your commands) gets\n  # automatically hidden when the input line reaches it. Right prompt above the\n  # last prompt line gets hidden if it would overlap with left prompt.\n  typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(\n    # =========================[ Line #1 ]=========================\n    status                  # exit code of the last command\n    command_execution_time  # duration of the last command\n    background_jobs         # presence of background jobs\n    direnv                  # direnv status (https://direnv.net/)\n    asdf                    # asdf version manager (https://github.com/asdf-vm/asdf)\n    virtualenv              # python virtual environment (https://docs.python.org/3/library/venv.html)\n    anaconda                # conda environment (https://conda.io/)\n    pyenv                   # python environment (https://github.com/pyenv/pyenv)\n    goenv                   # go environment (https://github.com/syndbg/goenv)\n    nodenv                  # node.js version from nodenv (https://github.com/nodenv/nodenv)\n    nvm                     # node.js version from nvm (https://github.com/nvm-sh/nvm)\n    nodeenv                 # node.js environment (https://github.com/ekalinin/nodeenv)\n    # node_version          # node.js version\n    # go_version            # go version (https://golang.org)\n    # rust_version          # rustc version (https://www.rust-lang.org)\n    # dotnet_version        # .NET version (https://dotnet.microsoft.com)\n    # php_version           # php version (https://www.php.net/)\n    # laravel_version       # laravel php framework version (https://laravel.com/)\n    # java_version          # java version (https://www.java.com/)\n    # package               # name@version from package.json (https://docs.npmjs.com/files/package.json)\n    rbenv                   # ruby version from rbenv (https://github.com/rbenv/rbenv)\n    rvm                     # ruby version from rvm (https://rvm.io)\n    fvm                     # flutter version management (https://github.com/leoafarias/fvm)\n    luaenv                  # lua version from luaenv (https://github.com/cehoffman/luaenv)\n    jenv                    # java version from jenv (https://github.com/jenv/jenv)\n    plenv                   # perl version from plenv (https://github.com/tokuhirom/plenv)\n    phpenv                  # php version from phpenv (https://github.com/phpenv/phpenv)\n    scalaenv                # scala version from scalaenv (https://github.com/scalaenv/scalaenv)\n    haskell_stack           # haskell version from stack (https://haskellstack.org/)\n    kubecontext             # current kubernetes context (https://kubernetes.io/)\n    terraform               # terraform workspace (https://www.terraform.io)\n    # terraform_version     # terraform version (https://www.terraform.io)\n    aws                     # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)\n    aws_eb_env              # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)\n    azure                   # azure account name (https://docs.microsoft.com/en-us/cli/azure)\n    gcloud                  # google cloud cli account and project (https://cloud.google.com/)\n    google_app_cred         # google application credentials (https://cloud.google.com/docs/authentication/production)\n    toolbox                 # toolbox name (https://github.com/containers/toolbox)\n    context                 # user@hostname\n    nordvpn                 # nordvpn connection status, linux only (https://nordvpn.com/)\n    ranger                  # ranger shell (https://github.com/ranger/ranger)\n    nnn                     # nnn shell (https://github.com/jarun/nnn)\n    xplr                    # xplr shell (https://github.com/sayanarijit/xplr)\n    vim_shell               # vim shell indicator (:sh)\n    midnight_commander      # midnight commander shell (https://midnight-commander.org/)\n    nix_shell               # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)\n    # vpn_ip                # virtual private network indicator\n    # load                  # CPU load\n    # disk_usage            # disk usage\n    # ram                   # free RAM\n    # swap                  # used swap\n    todo                    # todo items (https://github.com/todotxt/todo.txt-cli)\n    timewarrior             # timewarrior tracking status (https://timewarrior.net/)\n    taskwarrior             # taskwarrior task count (https://taskwarrior.org/)\n    time                    # current time\n    # =========================[ Line #2 ]=========================\n    newline                 # \\n\n    # ip                    # ip address and bandwidth usage for a specified network interface\n    # public_ip             # public IP address\n    # proxy                 # system-wide http/https/ftp proxy\n    # battery               # internal battery\n    # wifi                  # wifi speed\n    # example               # example user-defined segment (see prompt_example function below)\n  )\n\n  # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you.\n  typeset -g POWERLEVEL9K_MODE=ascii\n  # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid\n  # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added.\n  typeset -g POWERLEVEL9K_ICON_PADDING=none\n\n  # Basic style options that define the overall look of your prompt. You probably don't want to\n  # change them.\n  typeset -g POWERLEVEL9K_BACKGROUND=                            # transparent background\n  typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE=  # no surrounding whitespace\n  typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' '  # separate segments with a space\n  typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR=        # no end-of-line symbol\n\n  # When set to true, icons appear before content on both sides of the prompt. When set\n  # to false, icons go after content. If empty or not set, icons go before content in the left\n  # prompt and after content in the right prompt.\n  #\n  # You can also override it for a specific segment:\n  #\n  #   POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false\n  #\n  # Or for a specific segment in specific state:\n  #\n  #   POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false\n  typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=true\n\n  # Add an empty line before each prompt.\n  typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false\n\n  # Connect left prompt lines with these symbols.\n  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=\n  typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX=\n  typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX=\n  # Connect right prompt lines with these symbols.\n  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX=\n  typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX=\n  typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX=\n\n  # The left end of left prompt.\n  typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=\n  # The right end of right prompt.\n  typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL=\n\n  # Ruler, a.k.a. the horizontal line before each prompt. If you set it to true, you'll\n  # probably want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false above and\n  # POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' below.\n  typeset -g POWERLEVEL9K_SHOW_RULER=false\n  typeset -g POWERLEVEL9K_RULER_CHAR='-'        # reasonable alternative: '·'\n  typeset -g POWERLEVEL9K_RULER_FOREGROUND=7\n\n  # Filler between left and right prompt on the first prompt line. You can set it to '·' or '-'\n  # to make it easier to see the alignment between left and right prompt and to separate prompt\n  # from command output. It serves the same purpose as ruler (see above) without increasing\n  # the number of prompt lines. You'll probably want to set POWERLEVEL9K_SHOW_RULER=false\n  # if using this. You might also like POWERLEVEL9K_PROMPT_ADD_NEWLINE=false for more compact\n  # prompt.\n  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR='.'\n  if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then\n    # The color of the filler.\n    typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=7\n    # Add a space between the end of left prompt and the filler.\n    typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=' '\n    # Add a space between the filler and the start of right prompt.\n    typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL=' '\n    # Start filler from the edge of the screen if there are no left segments on the first line.\n    typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'\n    # End filler on the edge of the screen if there are no right segments on the first line.\n    typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}'\n  fi\n\n  #################################[ os_icon: os identifier ]##################################\n  # OS identifier color.\n  typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐'\n\n  ################################[ prompt_char: prompt symbol ]################################\n  # Green prompt symbol if the last command succeeded.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=2\n  # Red prompt symbol if the last command failed.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=1\n  # Default prompt symbol.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='>'\n  # Prompt symbol in command vi mode.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='<'\n  # Prompt symbol in visual vi mode.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V'\n  # Prompt symbol in overwrite vi mode.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='^'\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true\n  # No line terminator if prompt_char is the last segment.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=''\n  # No line introducer if prompt_char is the first segment.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=\n\n  ##################################[ dir: current directory ]##################################\n  # Default current directory color.\n  typeset -g POWERLEVEL9K_DIR_FOREGROUND=4\n  # If directory is too long, shorten some of its segments to the shortest possible unique\n  # prefix. The shortened directory can be tab-completed to the original.\n  typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique\n  # Replace removed segment suffixes with this symbol.\n  typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=\n  # Color of the shortened directory segments.\n  typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=4\n  # Color of the anchor directory segments. Anchor segments are never shortened. The first\n  # segment is always an anchor.\n  typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=4\n  # Set to true to display anchor directory segments in bold.\n  typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=false\n  # Don't shorten directories that contain any of these files. They are anchors.\n  local anchor_files=(\n    .bzr\n    .citc\n    .git\n    .hg\n    .node-version\n    .python-version\n    .go-version\n    .ruby-version\n    .lua-version\n    .java-version\n    .perl-version\n    .php-version\n    .tool-version\n    .shorten_folder_marker\n    .svn\n    .terraform\n    CVS\n    Cargo.toml\n    composer.json\n    go.mod\n    package.json\n    stack.yaml\n  )\n  typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER=\"(${(j:|:)anchor_files})\"\n  # If set to \"first\" (\"last\"), remove everything before the first (last) subdirectory that contains\n  # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is\n  # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first)\n  # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers\n  # and other directories don't.\n  #\n  # Optionally, \"first\" and \"last\" can be followed by \":<offset>\" where <offset> is an integer.\n  # This moves the truncation point to the right (positive offset) or to the left (negative offset)\n  # relative to the marker. Plain \"first\" and \"last\" are equivalent to \"first:0\" and \"last:0\"\n  # respectively.\n  typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false\n  # Don't shorten this many last directory segments. They are anchors.\n  typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1\n  # Shorten directory if it's longer than this even if there is space for it. The value can\n  # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,\n  # directory will be shortened only when prompt doesn't fit or when other parameters demand it\n  # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).\n  # If set to `0`, directory will always be shortened to its minimum length.\n  typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80\n  # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this\n  # many columns for typing commands.\n  typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40\n  # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least\n  # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.\n  typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50\n  # If set to true, embed a hyperlink into the directory. Useful for quickly\n  # opening a directory in the file manager simply by clicking the link.\n  # Can also be handy when the directory is shortened, as it allows you to see\n  # the full directory that was used in previous commands.\n  typeset -g POWERLEVEL9K_DIR_HYPERLINK=false\n\n  # Enable special styling for non-writable directories. See POWERLEVEL9K_LOCK_ICON and\n  # POWERLEVEL9K_DIR_CLASSES below.\n  typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v2\n\n  # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON\n  # and POWERLEVEL9K_DIR_CLASSES below.\n  typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3\n\n  # The default icon shown next to non-writable and non-existent directories when\n  # POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3.\n  # typeset -g POWERLEVEL9K_LOCK_ICON='⭐'\n\n  # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different\n  # directories. It must be an array with 3 * N elements. Each triplet consists of:\n  #\n  #   1. A pattern against which the current directory ($PWD) is matched. Matching is done with\n  #      extended_glob option enabled.\n  #   2. Directory class for the purpose of styling.\n  #   3. An empty string.\n  #\n  # Triplets are tried in order. The first triplet whose pattern matches $PWD wins.\n  #\n  # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories\n  # acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_DIR_CLASSES=(\n  #     '~/work(|/*)'  WORK     ''\n  #     '~(|/*)'       HOME     ''\n  #     '*'            DEFAULT  '')\n  #\n  # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one\n  # of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or\n  # WORK_NON_EXISTENT.\n  #\n  # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an\n  # option to define custom colors and icons for different directory classes.\n  #\n  #   # Styling for WORK.\n  #   typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=4\n  #   typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=4\n  #   typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=4\n  #\n  #   # Styling for WORK_NOT_WRITABLE.\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=4\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=4\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=4#\n  #\n  #   Styling for WORK_NON_EXISTENT.\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=4\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=4\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=4\n  #\n  # If a styling parameter isn't explicitly defined for some class, it falls back to the classless\n  # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls\n  # back to POWERLEVEL9K_DIR_FOREGROUND.\n  #\n  typeset -g POWERLEVEL9K_DIR_CLASSES=()\n\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '\n\n  #####################################[ vcs: git status ]######################################\n  # Branch icon. Set this parameter to '\\uF126 ' for the popular Powerline branch icon.\n  typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=\n\n  # Untracked files icon. It's really a question mark, your font isn't broken.\n  # Change the value of this parameter to show a different icon.\n  typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'\n\n  # Formatter for Git status.\n  #\n  # Example output: master wip <42>42 *42 merge ~42 +42 !42 ?42.\n  #\n  # You can edit the function to customize how Git status looks.\n  #\n  # VCS_STATUS_* parameters are set by gitstatus plugin. See reference:\n  # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.\n  function my_git_formatter() {\n    emulate -L zsh\n\n    if [[ -n $P9K_CONTENT ]]; then\n      # If P9K_CONTENT is not empty, use it. It's either \"loading\" or from vcs_info (not from\n      # gitstatus plugin). VCS_STATUS_* parameters are not available in this case.\n      typeset -g my_git_format=$P9K_CONTENT\n      return\n    fi\n\n    if (( $1 )); then\n      # Styling for up-to-date Git status.\n      local       meta='%f'   # default foreground\n      local      clean='%2F'  # green foreground\n      local   modified='%3F'  # yellow foreground\n      local  untracked='%4F'  # blue foreground\n      local conflicted='%1F'  # red foreground\n    else\n      # Styling for incomplete and stale Git status.\n      local       meta='%f'  # default foreground\n      local      clean='%f'  # default foreground\n      local   modified='%f'  # default foreground\n      local  untracked='%f'  # default foreground\n      local conflicted='%f'  # default foreground\n    fi\n\n    local res\n\n    if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then\n      local branch=${(V)VCS_STATUS_LOCAL_BRANCH}\n      # If local branch name is at most 32 characters long, show it in full.\n      # Otherwise show the first 12 .. the last 12.\n      # Tip: To always show local branch name in full without truncation, delete the next line.\n      (( $#branch > 32 )) && branch[13,-13]=\"..\"  # <-- this line\n      res+=\"${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\\%/%%}\"\n    fi\n\n    if [[ -n $VCS_STATUS_TAG\n          # Show tag only if not on a branch.\n          # Tip: To always show tag, delete the next line.\n          && -z $VCS_STATUS_LOCAL_BRANCH  # <-- this line\n        ]]; then\n      local tag=${(V)VCS_STATUS_TAG}\n      # If tag name is at most 32 characters long, show it in full.\n      # Otherwise show the first 12 .. the last 12.\n      # Tip: To always show tag name in full without truncation, delete the next line.\n      (( $#tag > 32 )) && tag[13,-13]=\"..\"  # <-- this line\n      res+=\"${meta}#${clean}${tag//\\%/%%}\"\n    fi\n\n    # Display the current Git commit if there is no branch and no tag.\n    # Tip: To always display the current Git commit, delete the next line.\n    [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] &&  # <-- this line\n      res+=\"${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}\"\n\n    # Show tracking branch name if it differs from local branch.\n    if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then\n      res+=\"${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\\%/%%}\"\n    fi\n\n    # Display \"wip\" if the latest commit's summary contains \"wip\" or \"WIP\".\n    if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then\n      res+=\" ${modified}wip\"\n    fi\n\n    # <42 if behind the remote.\n    (( VCS_STATUS_COMMITS_BEHIND )) && res+=\" ${clean}<${VCS_STATUS_COMMITS_BEHIND}\"\n    # >42 if ahead of the remote; no leading space if also behind the remote: <42>42.\n    (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=\" \"\n    (( VCS_STATUS_COMMITS_AHEAD  )) && res+=\"${clean}>${VCS_STATUS_COMMITS_AHEAD}\"\n    # <-42 if behind the push remote.\n    (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=\" ${clean}<-${VCS_STATUS_PUSH_COMMITS_BEHIND}\"\n    (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=\" \"\n    # ->42 if ahead of the push remote; no leading space if also behind: <-42->42.\n    (( VCS_STATUS_PUSH_COMMITS_AHEAD  )) && res+=\"${clean}->${VCS_STATUS_PUSH_COMMITS_AHEAD}\"\n    # *42 if have stashes.\n    (( VCS_STATUS_STASHES        )) && res+=\" ${clean}*${VCS_STATUS_STASHES}\"\n    # 'merge' if the repo is in an unusual state.\n    [[ -n $VCS_STATUS_ACTION     ]] && res+=\" ${conflicted}${VCS_STATUS_ACTION}\"\n    # ~42 if have merge conflicts.\n    (( VCS_STATUS_NUM_CONFLICTED )) && res+=\" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}\"\n    # +42 if have staged changes.\n    (( VCS_STATUS_NUM_STAGED     )) && res+=\" ${modified}+${VCS_STATUS_NUM_STAGED}\"\n    # !42 if have unstaged changes.\n    (( VCS_STATUS_NUM_UNSTAGED   )) && res+=\" ${modified}!${VCS_STATUS_NUM_UNSTAGED}\"\n    # ?42 if have untracked files. It's really a question mark, your font isn't broken.\n    # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.\n    # Remove the next line if you don't want to see untracked files at all.\n    (( VCS_STATUS_NUM_UNTRACKED  )) && res+=\" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}\"\n    # \"-\" if the number of unstaged files is unknown. This can happen due to\n    # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower\n    # than the number of files in the Git index, or due to bash.showDirtyState being set to false\n    # in the repository config. The number of staged and untracked files may also be unknown\n    # in this case.\n    (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=\" ${modified}-\"\n\n    typeset -g my_git_format=$res\n  }\n  functions -M my_git_formatter 2>/dev/null\n\n  # Don't count the number of unstaged, untracked and conflicted files in Git repositories with\n  # more than this many files in the index. Negative value means infinity.\n  #\n  # If you are working in Git repositories with tens of millions of files and seeing performance\n  # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output\n  # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's\n  # config: `git config bash.showDirtyState false`.\n  typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1\n\n  # Don't show Git status in prompt for repositories whose workdir matches this pattern.\n  # For example, if set to '~', the Git repository at $HOME/.git will be ignored.\n  # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'.\n  typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~'\n\n  # Disable the default Git status formatting.\n  typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true\n  # Install our own Git status formatter.\n  typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}'\n  typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}'\n  # Enable counters for staged, unstaged, etc.\n  typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1\n\n  # Icon color.\n  typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=2\n  typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=\n  # Custom icon.\n  typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION=\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_VCS_PREFIX='%fon '\n\n  # Show status of repositories of these types. You can add svn and/or hg if you are\n  # using them. If you do, your prompt may become slow even when your current directory\n  # isn't in an svn or hg reposotiry.\n  typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)\n\n  # These settings are used for repositories other than Git or when gitstatusd fails and\n  # Powerlevel10k has to fall back to using vcs_info.\n  typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=2\n  typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=2\n  typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=3\n\n  ##########################[ status: exit code of the last command ]###########################\n  # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and\n  # style them independently from the regular OK and ERROR state.\n  typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true\n\n  # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as\n  # it will signify success by turning green.\n  typeset -g POWERLEVEL9K_STATUS_OK=false\n  typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2\n  typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='ok'\n\n  # Status when some part of a pipe command fails but the overall exit status is zero. It may look\n  # like this: 1|0.\n  typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true\n  typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2\n  typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='ok'\n\n  # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as\n  # it will signify error by turning red.\n  typeset -g POWERLEVEL9K_STATUS_ERROR=false\n  typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=1\n  typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='err'\n\n  # Status when the last command was terminated by a signal.\n  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true\n  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=1\n  # Use terse signal names: \"INT\" instead of \"SIGINT(2)\".\n  typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false\n  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION=\n\n  # Status when some part of a pipe command fails and the overall exit status is also non-zero.\n  # It may look like this: 1|0.\n  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true\n  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=1\n  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='err'\n\n  ###################[ command_execution_time: duration of the last command ]###################\n  # Show duration of the last command if takes at least this many seconds.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3\n  # Show this many fractional digits. Zero means round to seconds.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0\n  # Execution time color.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=3\n  # Duration format: 1d 2h 3m 4s.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'\n  # Custom icon.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION=\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%ftook '\n\n  #######################[ background_jobs: presence of background jobs ]#######################\n  # Don't show the number of background jobs.\n  typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false\n  # Background jobs color.\n  typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=1\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######################[ direnv: direnv status (https://direnv.net/) ]########################\n  # Direnv color.\n  typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=3\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]###############\n  # Default asdf color. Only used to display tools for which there is no color override (see below).\n  # Tip:  Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND.\n  typeset -g POWERLEVEL9K_ASDF_FOREGROUND=6\n\n  # There are four parameters that can be used to hide asdf tools. Each parameter describes\n  # conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at\n  # least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to\n  # hide a tool, it gets shown.\n  #\n  # Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and\n  # POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands:\n  #\n  #   asdf local  python 3.8.1\n  #   asdf global python 3.8.1\n  #\n  # After running both commands the current python version is 3.8.1 and its source is \"local\" as\n  # it takes precedence over \"global\". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false,\n  # it'll hide python version in this case because 3.8.1 is the same as the global version.\n  # POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't\n  # contain \"local\".\n\n  # Hide tool versions that don't come from one of these sources.\n  #\n  # Available sources:\n  #\n  # - shell   `asdf current` says \"set by ASDF_${TOOL}_VERSION environment variable\"\n  # - local   `asdf current` says \"set by /some/not/home/directory/file\"\n  # - global  `asdf current` says \"set by /home/username/file\"\n  #\n  # Note: If this parameter is set to (shell local global), it won't hide tools.\n  # Tip:  Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES.\n  typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global)\n\n  # If set to false, hide tool versions that are the same as global.\n  #\n  # Note: The name of this parameter doesn't reflect its meaning at all.\n  # Note: If this parameter is set to true, it won't hide tools.\n  # Tip:  Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW.\n  typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false\n\n  # If set to false, hide tool versions that are equal to \"system\".\n  #\n  # Note: If this parameter is set to true, it won't hide tools.\n  # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM.\n  typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true\n\n  # If set to non-empty value, hide tools unless there is a file matching the specified file pattern\n  # in the current directory, or its parent directory, or its grandparent directory, and so on.\n  #\n  # Note: If this parameter is set to empty value, it won't hide tools.\n  # Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments.\n  # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB.\n  #\n  # Example: Hide nodejs version when there is no package.json and no *.js files in the current\n  # directory, in `..`, in `../..` and so on.\n  #\n  #   typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json'\n  typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB=\n\n  # Ruby version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=1\n  # typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Python version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=6\n  # typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Go version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=6\n  # typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Node.js version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=2\n  # typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Rust version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # .NET Core version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=5\n  # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Flutter version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Lua version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Java version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Perl version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=6\n  # typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Erlang version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=1\n  # typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Elixir version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=5\n  # typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Postgres version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=6\n  # typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # PHP version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=5\n  # typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Haskell version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=3\n  # typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Julia version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=2\n  # typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########\n  # NordVPN connection indicator color.\n  typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=6\n  # Hide NordVPN connection indicator when not connected.\n  typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION=\n  typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION=\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################\n  # Ranger shell color.\n  typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]#######################\n  # Nnn shell color.\n  typeset -g POWERLEVEL9K_NNN_FOREGROUND=3\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]##################\n  # xplr shell color.\n  typeset -g POWERLEVEL9K_XPLR_FOREGROUND=3\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########################[ vim_shell: vim shell indicator (:sh) ]###########################\n  # Vim shell indicator color.\n  typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=3\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]######\n  # Midnight Commander shell color.\n  typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=3\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]##\n  # Nix shell color.\n  typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=4\n\n  # Tip: If you want to see just the icon without \"pure\" and \"impure\", uncomment the next line.\n  # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##################################[ disk_usage: disk usage ]##################################\n  # Colors for different levels of disk usage.\n  typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=2\n  typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=3\n  typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=1\n  # Thresholds for different levels of disk usage (percentage points).\n  typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90\n  typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95\n  # If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent.\n  typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ######################################[ ram: free RAM ]#######################################\n  # RAM color.\n  typeset -g POWERLEVEL9K_RAM_FOREGROUND=2\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #####################################[ swap: used swap ]######################################\n  # Swap color.\n  typeset -g POWERLEVEL9K_SWAP_FOREGROUND=3\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ######################################[ load: CPU load ]######################################\n  # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.\n  typeset -g POWERLEVEL9K_LOAD_WHICH=5\n  # Load color when load is under 50%.\n  typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=2\n  # Load color when load is between 50% and 70%.\n  typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=3\n  # Load color when load is over 70%.\n  typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=1\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################\n  # Todo color.\n  typeset -g POWERLEVEL9K_TODO_FOREGROUND=4\n  # Hide todo when the total number of tasks is zero.\n  typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true\n  # Hide todo when the number of tasks after filtering is zero.\n  typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false\n\n  # Todo format. The following parameters are available within the expansion.\n  #\n  # - P9K_TODO_TOTAL_TASK_COUNT     The total number of tasks.\n  # - P9K_TODO_FILTERED_TASK_COUNT  The number of tasks after filtering.\n  #\n  # These variables correspond to the last line of the output of `todo.sh -p ls`:\n  #\n  #   TODO: 24 of 42 tasks shown\n  #\n  # Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT.\n  #\n  # typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############\n  # Timewarrior color.\n  typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=4\n  # If the tracked task is longer than 24 characters, truncate and append \"..\".\n  # Tip: To always display tasks without truncation, delete the following parameter.\n  # Tip: To hide task names and display just the icon when time tracking is enabled, set the\n  # value of the following parameter to \"\".\n  typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+..}'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]##############\n  # Taskwarrior color.\n  typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=6\n\n  # Taskwarrior segment format. The following parameters are available within the expansion.\n  #\n  # - P9K_TASKWARRIOR_PENDING_COUNT   The number of pending tasks: `task +PENDING count`.\n  # - P9K_TASKWARRIOR_OVERDUE_COUNT   The number of overdue tasks: `task +OVERDUE count`.\n  #\n  # Zero values are represented as empty parameters.\n  #\n  # The default format:\n  #\n  #   '${P9K_TASKWARRIOR_OVERDUE_COUNT:+\"!$P9K_TASKWARRIOR_OVERDUE_COUNT/\"}$P9K_TASKWARRIOR_PENDING_COUNT'\n  #\n  # typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##################################[ context: user@hostname ]##################################\n  # Context color when running with privileges.\n  typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1\n  # Context color in SSH without privileges.\n  typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=7\n  # Default context color (no privileges, no SSH).\n  typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=7\n\n  # Context format when running with privileges: bold user@hostname.\n  typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m'\n  # Context format when in SSH without privileges: user@hostname.\n  typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m'\n  # Default context format (no privileges, no SSH): user@hostname.\n  typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'\n\n  # Don't show context unless running with privileges or in SSH.\n  # Tip: Remove the next line to always show context.\n  typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_CONTEXT_PREFIX='%fwith '\n\n  ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]###\n  # Python virtual environment color.\n  typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=6\n  # Don't show Python version next to the virtual environment name.\n  typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false\n  # If set to \"false\", won't show virtualenv if pyenv is already shown.\n  # If set to \"if-different\", won't show virtualenv if it's the same as pyenv.\n  typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false\n  # Separate environment name from Python version only with a space.\n  typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #####################[ anaconda: conda environment (https://conda.io/) ]######################\n  # Anaconda environment color.\n  typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=6\n\n  # Anaconda segment format. The following parameters are available within the expansion.\n  #\n  # - CONDA_PREFIX                 Absolute path to the active Anaconda/Miniconda environment.\n  # - CONDA_DEFAULT_ENV            Name of the active Anaconda/Miniconda environment.\n  # - CONDA_PROMPT_MODIFIER        Configurable prompt modifier (see below).\n  # - P9K_ANACONDA_PYTHON_VERSION  Current python version (python --version).\n  #\n  # CONDA_PROMPT_MODIFIER can be configured with the following command:\n  #\n  #   conda config --set env_prompt '({default_env}) '\n  #\n  # The last argument is a Python format string that can use the following variables:\n  #\n  # - prefix       The same as CONDA_PREFIX.\n  # - default_env  The same as CONDA_DEFAULT_ENV.\n  # - name         The last segment of CONDA_PREFIX.\n  # - stacked_env  Comma-separated list of names in the environment stack. The first element is\n  #                always the same as default_env.\n  #\n  # Note: '({default_env}) ' is the default value of env_prompt.\n  #\n  # The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER\n  # without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former\n  # is empty.\n  typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\\(}% }%\\)}:-${CONDA_PREFIX:t}}'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################\n  # Pyenv color.\n  typeset -g POWERLEVEL9K_PYENV_FOREGROUND=6\n  # Hide python version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global)\n  # If set to false, hide python version if it's the same as global:\n  # $(pyenv version-name) == $(pyenv global).\n  typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide python version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true\n\n  # Pyenv segment format. The following parameters are available within the expansion.\n  #\n  # - P9K_CONTENT                Current pyenv environment (pyenv version-name).\n  # - P9K_PYENV_PYTHON_VERSION   Current python version (python --version).\n  #\n  # The default format has the following logic:\n  #\n  # 1. Display just \"$P9K_CONTENT\" if it's equal to \"$P9K_PYENV_PYTHON_VERSION\" or\n  #    starts with \"$P9K_PYENV_PYTHON_VERSION/\".\n  # 2. Otherwise display \"$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION\".\n  typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################\n  # Goenv color.\n  typeset -g POWERLEVEL9K_GOENV_FOREGROUND=6\n  # Hide go version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global)\n  # If set to false, hide go version if it's the same as global:\n  # $(goenv version-name) == $(goenv global).\n  typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide go version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########\n  # Nodenv color.\n  typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2\n  # Hide node version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global)\n  # If set to false, hide node version if it's the same as global:\n  # $(nodenv version-name) == $(nodenv global).\n  typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide node version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############\n  # Nvm color.\n  typeset -g POWERLEVEL9K_NVM_FOREGROUND=2\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############\n  # Nodeenv color.\n  typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2\n  # Don't show Node version next to the environment name.\n  typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false\n  # Separate environment name from Node version only with a space.\n  typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER=\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##############################[ node_version: node.js version ]###############################\n  # Node version color.\n  typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=2\n  # Show node version only when in a directory tree containing package.json.\n  typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######################[ go_version: go version (https://golang.org) ]########################\n  # Go version color.\n  typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=6\n  # Show go version only when in a go project subdirectory.\n  typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #################[ rust_version: rustc version (https://www.rust-lang.org) ]##################\n  # Rust version color.\n  typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=4\n  # Show rust version only when in a rust project subdirectory.\n  typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################\n  # .NET version color.\n  typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=5\n  # Show .NET version only when in a .NET project subdirectory.\n  typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #####################[ php_version: php version (https://www.php.net/) ]######################\n  # PHP version color.\n  typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=5\n  # Show PHP version only when in a PHP project subdirectory.\n  typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ laravel_version: laravel php framework version (https://laravel.com/) ]###########\n  # Laravel version color.\n  typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=1\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ####################[ java_version: java version (https://www.java.com/) ]####################\n  # Java version color.\n  typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=4\n  # Show java version only when in a java project subdirectory.\n  typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true\n  # Show brief version.\n  typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]####\n  # Package color.\n  typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=6\n  # Package format. The following parameters are available within the expansion.\n  #\n  # - P9K_PACKAGE_NAME     The value of `name` field in package.json.\n  # - P9K_PACKAGE_VERSION  The value of `version` field in package.json.\n  #\n  # typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\\%/%%}@${P9K_PACKAGE_VERSION//\\%/%%}'\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############\n  # Rbenv color.\n  typeset -g POWERLEVEL9K_RBENV_FOREGROUND=1\n  # Hide ruby version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global)\n  # If set to false, hide ruby version if it's the same as global:\n  # $(rbenv version-name) == $(rbenv global).\n  typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide ruby version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######################[ rvm: ruby version from rvm (https://rvm.io) ]########################\n  # Rvm color.\n  typeset -g POWERLEVEL9K_RVM_FOREGROUND=1\n  # Don't show @gemset at the end.\n  typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false\n  # Don't show ruby- at the front.\n  typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############\n  # Fvm color.\n  typeset -g POWERLEVEL9K_FVM_FOREGROUND=4\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]###########\n  # Lua color.\n  typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=4\n  # Hide lua version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global)\n  # If set to false, hide lua version if it's the same as global:\n  # $(luaenv version-name) == $(luaenv global).\n  typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide lua version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################\n  # Java color.\n  typeset -g POWERLEVEL9K_JENV_FOREGROUND=4\n  # Hide java version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global)\n  # If set to false, hide java version if it's the same as global:\n  # $(jenv version-name) == $(jenv global).\n  typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide java version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############\n  # Perl color.\n  typeset -g POWERLEVEL9K_PLENV_FOREGROUND=6\n  # Hide perl version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global)\n  # If set to false, hide perl version if it's the same as global:\n  # $(plenv version-name) == $(plenv global).\n  typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide perl version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############\n  # PHP color.\n  typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=5\n  # Hide php version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global)\n  # If set to false, hide php version if it's the same as global:\n  # $(phpenv version-name) == $(phpenv global).\n  typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide php version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]#######\n  # Scala color.\n  typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=1\n  # Hide scala version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global)\n  # If set to false, hide scala version if it's the same as global:\n  # $(scalaenv version-name) == $(scalaenv global).\n  typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide scala version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]###########\n  # Haskell color.\n  typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=3\n  # Hide haskell version if it doesn't come from one of these sources.\n  #\n  #   shell:  version is set by STACK_YAML\n  #   local:  version is set by stack.yaml up the directory tree\n  #   global: version is set by the implicit global project (~/.stack/global-project/stack.yaml)\n  typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local)\n  # If set to false, hide haskell version if it's the same as in the implicit global project.\n  typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############\n  # Show kubecontext only when the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show kubecontext.\n  typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern'\n\n  # Kubernetes context classes for the purpose of using different colors, icons and expansions with\n  # different contexts.\n  #\n  # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element\n  # in each pair defines a pattern against which the current kubernetes context gets matched.\n  # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)\n  # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters,\n  # you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The\n  # first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(\n  #     '*prod*'  PROD\n  #     '*test*'  TEST\n  #     '*'       DEFAULT)\n  #\n  # If your current kubernetes context is \"deathray-testing/default\", its class is TEST\n  # because \"deathray-testing/default\" doesn't match the pattern '*prod*' but does match '*test*'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=3\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'\n  typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(\n      # '*prod*'  PROD    # These values are examples that are unlikely\n      # '*test*'  TEST    # to match your needs. Customize them as needed.\n      '*'       DEFAULT)\n  typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=5\n  # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext\n  # segment. Parameter expansions are very flexible and fast, too. See reference:\n  # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.\n  #\n  # Within the expansion the following parameters are always available:\n  #\n  # - P9K_CONTENT                The content that would've been displayed if there was no content\n  #                              expansion defined.\n  # - P9K_KUBECONTEXT_NAME       The current context's name. Corresponds to column NAME in the\n  #                              output of `kubectl config get-contexts`.\n  # - P9K_KUBECONTEXT_CLUSTER    The current context's cluster. Corresponds to column CLUSTER in the\n  #                              output of `kubectl config get-contexts`.\n  # - P9K_KUBECONTEXT_NAMESPACE  The current context's namespace. Corresponds to column NAMESPACE\n  #                              in the output of `kubectl config get-contexts`. If there is no\n  #                              namespace, the parameter is set to \"default\".\n  # - P9K_KUBECONTEXT_USER       The current context's user. Corresponds to column AUTHINFO in the\n  #                              output of `kubectl config get-contexts`.\n  #\n  # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),\n  # the following extra parameters are available:\n  #\n  # - P9K_KUBECONTEXT_CLOUD_NAME     Either \"gke\" or \"eks\".\n  # - P9K_KUBECONTEXT_CLOUD_ACCOUNT  Account/project ID.\n  # - P9K_KUBECONTEXT_CLOUD_ZONE     Availability zone.\n  # - P9K_KUBECONTEXT_CLOUD_CLUSTER  Cluster.\n  #\n  # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example,\n  # if P9K_KUBECONTEXT_CLUSTER is \"gke_my-account_us-east1-a_my-cluster-01\":\n  #\n  #   - P9K_KUBECONTEXT_CLOUD_NAME=gke\n  #   - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account\n  #   - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a\n  #   - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01\n  #\n  # If P9K_KUBECONTEXT_CLUSTER is \"arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01\":\n  #\n  #   - P9K_KUBECONTEXT_CLOUD_NAME=eks\n  #   - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012\n  #   - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1\n  #   - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01\n  typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=\n  # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.\n  POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'\n  # Append the current context's namespace if it's not \"default\".\n  POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'\n\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%fat '\n\n  ################[ terraform: terraform workspace (https://www.terraform.io) ]#################\n  # Don't show terraform workspace if it's literally \"default\".\n  typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false\n  # POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element\n  # in each pair defines a pattern against which the current terraform workspace gets matched.\n  # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)\n  # that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters,\n  # you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The\n  # first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(\n  #     '*prod*'  PROD\n  #     '*test*'  TEST\n  #     '*'       OTHER)\n  #\n  # If your current terraform workspace is \"project_test\", its class is TEST because \"project_test\"\n  # doesn't match the pattern '*prod*' but does match '*test*'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=2\n  #   typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'\n  typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(\n      # '*prod*'  PROD    # These values are examples that are unlikely\n      # '*test*'  TEST    # to match your needs. Customize them as needed.\n      '*'         OTHER)\n  typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=4\n  # typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #############[ terraform_version: terraform version (https://www.terraform.io) ]##############\n  # Terraform version color.\n  typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=4\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#\n  # Show aws only when the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show aws.\n  typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi|terragrunt'\n\n  # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element\n  # in each pair defines a pattern against which the current AWS profile gets matched.\n  # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)\n  # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,\n  # you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The\n  # first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_AWS_CLASSES=(\n  #     '*prod*'  PROD\n  #     '*test*'  TEST\n  #     '*'       DEFAULT)\n  #\n  # If your current AWS profile is \"company_test\", its class is TEST\n  # because \"company_test\" doesn't match the pattern '*prod*' but does match '*test*'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=2\n  #   typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'\n  typeset -g POWERLEVEL9K_AWS_CLASSES=(\n      # '*prod*'  PROD    # These values are examples that are unlikely\n      # '*test*'  TEST    # to match your needs. Customize them as needed.\n      '*'       DEFAULT)\n  typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=3\n  # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # AWS segment format. The following parameters are available within the expansion.\n  #\n  # - P9K_AWS_PROFILE  The name of the current AWS profile.\n  # - P9K_AWS_REGION   The region associated with the current AWS profile.\n  typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\\%/%%}}'\n\n  #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#\n  # AWS Elastic Beanstalk environment color.\n  typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########\n  # Show azure only when the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show azure.\n  typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt'\n  # Azure account name color.\n  typeset -g POWERLEVEL9K_AZURE_FOREGROUND=4\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########\n  # Show gcloud only when the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show gcloud.\n  typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil'\n  # Google cloud color.\n  typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=4\n\n  # Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or\n  # POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative\n  # enough. You can use the following parameters in the expansions. Each of them corresponds to the\n  # output of `gcloud` tool.\n  #\n  #   Parameter                | Source\n  #   -------------------------|--------------------------------------------------------------------\n  #   P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)'\n  #   P9K_GCLOUD_ACCOUNT       | gcloud config get-value account\n  #   P9K_GCLOUD_PROJECT_ID    | gcloud config get-value project\n  #   P9K_GCLOUD_PROJECT_NAME  | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)'\n  #\n  # Note: ${VARIABLE//\\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'.\n  #\n  # Obtaining project name requires sending a request to Google servers. This can take a long time\n  # and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud\n  # prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets\n  # set and gcloud prompt segment transitions to state COMPLETE.\n  #\n  # You can customize the format, icon and colors of gcloud segment separately for states PARTIAL\n  # and COMPLETE. You can also hide gcloud in state PARTIAL by setting\n  # POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and\n  # POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty.\n  typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\\%/%%}'\n  typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\\%/%%}'\n\n  # Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name\n  # this often. Negative value disables periodic polling. In this mode project name is retrieved\n  # only when the current configuration, account or project id changes.\n  typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]#\n  # Show google_app_cred only when the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show google_app_cred.\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt'\n\n  # Google application credentials classes for the purpose of using different colors, icons and\n  # expansions with different credentials.\n  #\n  # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first\n  # element in each pair defines a pattern against which the current kubernetes context gets\n  # matched. More specifically, it's P9K_CONTENT prior to the application of context expansion\n  # (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION\n  # parameters, you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order.\n  # The first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(\n  #     '*:*prod*:*'  PROD\n  #     '*:*test*:*'  TEST\n  #     '*'           DEFAULT)\n  #\n  # If your current Google application credentials is \"service_account deathray-testing x@y.com\",\n  # its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=3\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID'\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(\n      # '*:*prod*:*'  PROD    # These values are examples that are unlikely\n      # '*:*test*:*'  TEST    # to match your needs. Customize them as needed.\n      '*'             DEFAULT)\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=5\n  # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by\n  # google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference:\n  # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.\n  #\n  # You can use the following parameters in the expansion. Each of them corresponds to one of the\n  # fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS.\n  #\n  #   Parameter                        | JSON key file field\n  #   ---------------------------------+---------------\n  #   P9K_GOOGLE_APP_CRED_TYPE         | type\n  #   P9K_GOOGLE_APP_CRED_PROJECT_ID   | project_id\n  #   P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email\n  #\n  # Note: ${VARIABLE//\\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'.\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\\%/%%}'\n\n  ##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]###############\n  # Toolbox color.\n  typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=3\n  # Don't display the name of the toolbox if it matches fedora-toolbox-*.\n  typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}'\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='%fin '\n\n  ###############################[ public_ip: public IP address ]###############################\n  # Public IP color.\n  typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=6\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ########################[ vpn_ip: virtual private network indicator ]#########################\n  # VPN IP color.\n  typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=3\n  # When on VPN, show just an icon without the IP address.\n  # Tip: To display the private IP address when on VPN, remove the next line.\n  typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=\n  # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN\n  # to see the name of the interface.\n  typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*'\n  # If set to true, show one segment per matching network interface. If set to false, show only\n  # one segment corresponding to the first matching network interface.\n  # Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION.\n  typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ ip: ip address and bandwidth usage for a specified network interface ]###########\n  # IP color.\n  typeset -g POWERLEVEL9K_IP_FOREGROUND=4\n  # The following parameters are accessible within the expansion:\n  #\n  #   Parameter             | Meaning\n  #   ----------------------+-------------------------------------------\n  #   P9K_IP_IP             | IP address\n  #   P9K_IP_INTERFACE      | network interface\n  #   P9K_IP_RX_BYTES       | total number of bytes received\n  #   P9K_IP_TX_BYTES       | total number of bytes sent\n  #   P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt\n  #   P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt\n  #   P9K_IP_RX_RATE        | receive rate (since last prompt)\n  #   P9K_IP_TX_RATE        | send rate (since last prompt)\n  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}'\n  # Show information for the first network interface whose name matches this regular expression.\n  # Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces.\n  typeset -g POWERLEVEL9K_IP_INTERFACE='[ew].*'\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #########################[ proxy: system-wide http/https/ftp proxy ]##########################\n  # Proxy color.\n  typeset -g POWERLEVEL9K_PROXY_FOREGROUND=2\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################################[ battery: internal battery ]#################################\n  # Show battery in red when it's below this level and not connected to power supply.\n  typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20\n  typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1\n  # Show battery in green when it's charging or fully charged.\n  typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2\n  # Show battery in yellow when it's discharging.\n  typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3\n  # Battery pictograms going from low to high level of charge.\n  typeset -g POWERLEVEL9K_BATTERY_STAGES=('battery')\n  # Don't show the remaining time to charge/discharge.\n  typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false\n\n  #####################################[ wifi: wifi speed ]#####################################\n  # WiFi color.\n  typeset -g POWERLEVEL9K_WIFI_FOREGROUND=4\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Use different colors and icons depending on signal strength ($P9K_WIFI_BARS).\n  #\n  #   # Wifi colors and icons for different signal strength levels (low to high).\n  #   typeset -g my_wifi_fg=(4 4 4 4 4)                                # <-- change these values\n  #   typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi')     # <-- change these values\n  #\n  #   typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps'\n  #   typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}'\n  #\n  # The following parameters are accessible within the expansions:\n  #\n  #   Parameter             | Meaning\n  #   ----------------------+---------------\n  #   P9K_WIFI_SSID         | service set identifier, a.k.a. network name\n  #   P9K_WIFI_LINK_AUTH    | authentication protocol such as \"wpa2-psk\" or \"none\"; empty if unknown\n  #   P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second\n  #   P9K_WIFI_RSSI         | signal strength in dBm, from -120 to 0\n  #   P9K_WIFI_NOISE        | noise in dBm, from -120 to 0\n  #   P9K_WIFI_BARS         | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE)\n\n  ####################################[ time: current time ]####################################\n  # Current time color.\n  typeset -g POWERLEVEL9K_TIME_FOREGROUND=6\n  # Format for the current time: 09:51:02. See `man 3 strftime`.\n  typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'\n  # If set to true, time will update when you hit enter. This way prompts for the past\n  # commands will contain the start times of their commands as opposed to the default\n  # behavior where they contain the end times of their preceding commands.\n  typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false\n  # Custom icon.\n  typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION=\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_TIME_PREFIX='%fat '\n\n  # Example of a user-defined prompt segment. Function prompt_example will be called on every\n  # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or\n  # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and green text greeting the user.\n  #\n  # Type `p10k help segment` for documentation and a more sophisticated example.\n  function prompt_example() {\n    p10k segment -f 2 -i '*' -t 'hello, %n'\n  }\n\n  # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job\n  # is to generate the prompt segment for display in instant prompt. See\n  # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.\n  #\n  # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function\n  # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k\n  # will replay these calls without actually calling instant_prompt_*. It is imperative that\n  # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this\n  # rule is not observed, the content of instant prompt will be incorrect.\n  #\n  # Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If\n  # instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt.\n  function instant_prompt_example() {\n    # Since prompt_example always makes the same `p10k segment` calls, we can call it from\n    # instant_prompt_example. This will give us the same `example` prompt segment in the instant\n    # and regular prompts.\n    prompt_example\n  }\n\n  # User-defined prompt segments can be customized the same way as built-in segments.\n  # typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=208\n  # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt\n  # when accepting a command line. Supported values:\n  #\n  #   - off:      Don't change prompt when accepting a command line.\n  #   - always:   Trim down prompt when accepting a command line.\n  #   - same-dir: Trim down prompt when accepting a command line unless this is the first command\n  #               typed after changing current working directory.\n  typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always\n\n  # Instant prompt mode.\n  #\n  #   - off:     Disable instant prompt. Choose this if you've tried instant prompt and found\n  #              it incompatible with your zsh configuration files.\n  #   - quiet:   Enable instant prompt and don't print warnings when detecting console output\n  #              during zsh initialization. Choose this if you've read and understood\n  #              https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.\n  #   - verbose: Enable instant prompt and print a warning when detecting console output during\n  #              zsh initialization. Choose this if you've never tried instant prompt, haven't\n  #              seen the warning, or if you are unsure what this all means.\n  typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose\n\n  # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized.\n  # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload\n  # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you\n  # really need it.\n  typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true\n\n  # If p10k is already loaded, reload configuration.\n  # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.\n  (( ! $+functions[p10k] )) || p10k reload\n}\n\n# Tell `p10k configure` which file it should overwrite.\ntypeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a}\n\n(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}\n'builtin' 'unset' 'p10k_config_opts'\n"
  },
  {
    "path": ".p10k.zsh",
    "content": "# Generated by Powerlevel10k configuration wizard on 2022-09-19 at 01:26 IDT.\n# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 53041.\n# Wizard options: nerdfont-complete + powerline, small icons, rainbow, unicode,\n# 24h time, slanted separators, slanted heads, flat tails, 2 lines, dotted, left frame,\n# lightest-ornaments, sparse, many icons, concise, transient_prompt,\n# instant_prompt=verbose.\n# Type `p10k configure` to generate another config.\n#\n# Config for Powerlevel10k with powerline prompt style with colorful background.\n# Type `p10k configure` to generate your own config based on it.\n#\n# Tip: Looking for a nice color? Here's a one-liner to print colormap.\n#\n#   for i in {0..255}; do print -Pn \"%K{$i}  %k%F{$i}${(l:3::0:)i}%f \" ${${(M)$((i%6)):#3}:+$'\\n'}; done\n\n# Temporarily change options.\n'builtin' 'local' '-a' 'p10k_config_opts'\n[[ ! -o 'aliases'         ]] || p10k_config_opts+=('aliases')\n[[ ! -o 'sh_glob'         ]] || p10k_config_opts+=('sh_glob')\n[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')\n'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'\n\n() {\n  emulate -L zsh -o extended_glob\n\n  # Unset all configuration options. This allows you to apply configuration changes without\n  # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.\n  unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'\n\n  # Zsh >= 5.1 is required.\n  autoload -Uz is-at-least && is-at-least 5.1 || return\n\n  # The list of segments shown on the left. Fill it with the most important segments.\n  typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(\n    # =========================[ Line #1 ]=========================\n    os_icon                 # os identifier\n    dir                     # current directory\n    vcs                     # git status\n    # =========================[ Line #2 ]=========================\n    newline                 # \\n\n    # prompt_char           # prompt symbol\n  )\n\n  # The list of segments shown on the right. Fill it with less important segments.\n  # Right prompt on the last prompt line (where you are typing your commands) gets\n  # automatically hidden when the input line reaches it. Right prompt above the\n  # last prompt line gets hidden if it would overlap with left prompt.\n  typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(\n    # =========================[ Line #1 ]=========================\n    status                  # exit code of the last command\n    command_execution_time  # duration of the last command\n    background_jobs         # presence of background jobs\n    direnv                  # direnv status (https://direnv.net/)\n    asdf                    # asdf version manager (https://github.com/asdf-vm/asdf)\n    virtualenv              # python virtual environment (https://docs.python.org/3/library/venv.html)\n    anaconda                # conda environment (https://conda.io/)\n    pyenv                   # python environment (https://github.com/pyenv/pyenv)\n    goenv                   # go environment (https://github.com/syndbg/goenv)\n    nodenv                  # node.js version from nodenv (https://github.com/nodenv/nodenv)\n    nvm                     # node.js version from nvm (https://github.com/nvm-sh/nvm)\n    nodeenv                 # node.js environment (https://github.com/ekalinin/nodeenv)\n    # node_version          # node.js version\n    # go_version            # go version (https://golang.org)\n    # rust_version          # rustc version (https://www.rust-lang.org)\n    # dotnet_version        # .NET version (https://dotnet.microsoft.com)\n    # php_version           # php version (https://www.php.net/)\n    # laravel_version       # laravel php framework version (https://laravel.com/)\n    # java_version          # java version (https://www.java.com/)\n    # package               # name@version from package.json (https://docs.npmjs.com/files/package.json)\n    rbenv                   # ruby version from rbenv (https://github.com/rbenv/rbenv)\n    rvm                     # ruby version from rvm (https://rvm.io)\n    fvm                     # flutter version management (https://github.com/leoafarias/fvm)\n    luaenv                  # lua version from luaenv (https://github.com/cehoffman/luaenv)\n    jenv                    # java version from jenv (https://github.com/jenv/jenv)\n    plenv                   # perl version from plenv (https://github.com/tokuhirom/plenv)\n    phpenv                  # php version from phpenv (https://github.com/phpenv/phpenv)\n    scalaenv                # scala version from scalaenv (https://github.com/scalaenv/scalaenv)\n    haskell_stack           # haskell version from stack (https://haskellstack.org/)\n    kubecontext             # current kubernetes context (https://kubernetes.io/)\n    terraform               # terraform workspace (https://www.terraform.io)\n    # terraform_version     # terraform version (https://www.terraform.io)\n    aws                     # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)\n    aws_eb_env              # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)\n    azure                   # azure account name (https://docs.microsoft.com/en-us/cli/azure)\n    gcloud                  # google cloud cli account and project (https://cloud.google.com/)\n    google_app_cred         # google application credentials (https://cloud.google.com/docs/authentication/production)\n    toolbox                 # toolbox name (https://github.com/containers/toolbox)\n    context                 # user@hostname\n    nordvpn                 # nordvpn connection status, linux only (https://nordvpn.com/)\n    ranger                  # ranger shell (https://github.com/ranger/ranger)\n    nnn                     # nnn shell (https://github.com/jarun/nnn)\n    xplr                    # xplr shell (https://github.com/sayanarijit/xplr)\n    vim_shell               # vim shell indicator (:sh)\n    midnight_commander      # midnight commander shell (https://midnight-commander.org/)\n    nix_shell               # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)\n    vi_mode                 # vi mode (you don't need this if you've enabled prompt_char)\n    # vpn_ip                # virtual private network indicator\n    # load                  # CPU load\n    # disk_usage            # disk usage\n    # ram                   # free RAM\n    # swap                  # used swap\n    todo                    # todo items (https://github.com/todotxt/todo.txt-cli)\n    timewarrior             # timewarrior tracking status (https://timewarrior.net/)\n    taskwarrior             # taskwarrior task count (https://taskwarrior.org/)\n    time                    # current time\n    # =========================[ Line #2 ]=========================\n    newline\n    # ip                    # ip address and bandwidth usage for a specified network interface\n    # public_ip             # public IP address\n    # proxy                 # system-wide http/https/ftp proxy\n    # battery               # internal battery\n    # wifi                  # wifi speed\n    # example               # example user-defined segment (see prompt_example function below)\n  )\n\n  # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you.\n  typeset -g POWERLEVEL9K_MODE=nerdfont-complete\n  # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid\n  # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added.\n  typeset -g POWERLEVEL9K_ICON_PADDING=none\n\n  # When set to true, icons appear before content on both sides of the prompt. When set\n  # to false, icons go after content. If empty or not set, icons go before content in the left\n  # prompt and after content in the right prompt.\n  #\n  # You can also override it for a specific segment:\n  #\n  #   POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false\n  #\n  # Or for a specific segment in specific state:\n  #\n  #   POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false\n  typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=\n\n  # Add an empty line before each prompt.\n  typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true\n\n  # Connect left prompt lines with these symbols. You'll probably want to use the same color\n  # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below.\n  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%244F╭─'\n  typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%244F├─'\n  typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%244F╰─'\n  # Connect right prompt lines with these symbols.\n  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX=\n  typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX=\n  typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX=\n\n  # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or\n  # '─'. The last two make it easier to see the alignment between left and right prompt and to\n  # separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false\n  # for more compact prompt if using using this option.\n  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR='·'\n  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND=\n  typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND=\n  if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then\n    # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE\n    # ornaments defined above.\n    typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=244\n    # Start filler from the edge of the screen if there are no left segments on the first line.\n    typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'\n    # End filler on the edge of the screen if there are no right segments on the first line.\n    typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}'\n  fi\n\n  # Separator between same-color segments on the left.\n  typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\\u2571'\n  # Separator between same-color segments on the right.\n  typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\\u2571'\n  # Separator between different-color segments on the left.\n  typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\\uE0BC'\n  # Separator between different-color segments on the right.\n  typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\\uE0BA'\n  # The right end of left prompt.\n  typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\\uE0BC'\n  # The left end of right prompt.\n  typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\\uE0BA'\n  # The left end of left prompt.\n  typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=''\n  # The right end of right prompt.\n  typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL=''\n  # Left prompt terminator for lines without any segments.\n  typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=\n\n  #################################[ os_icon: os identifier ]##################################\n  # OS identifier color.\n  typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=232\n  typeset -g POWERLEVEL9K_OS_ICON_BACKGROUND=7\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐'\n\n  ################################[ prompt_char: prompt symbol ]################################\n  # Transparent background.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND=\n  # Green prompt symbol if the last command succeeded.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76\n  # Red prompt symbol if the last command failed.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196\n  # Default prompt symbol.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯'\n  # Prompt symbol in command vi mode.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮'\n  # Prompt symbol in visual vi mode.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V'\n  # Prompt symbol in overwrite vi mode.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶'\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true\n  # No line terminator if prompt_char is the last segment.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=\n  # No line introducer if prompt_char is the first segment.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=\n  # No surrounding whitespace.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE=\n\n  ##################################[ dir: current directory ]##################################\n  # Current directory background color.\n  typeset -g POWERLEVEL9K_DIR_BACKGROUND=4\n  # Default current directory foreground color.\n  typeset -g POWERLEVEL9K_DIR_FOREGROUND=254\n  # If directory is too long, shorten some of its segments to the shortest possible unique\n  # prefix. The shortened directory can be tab-completed to the original.\n  typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique\n  # Replace removed segment suffixes with this symbol.\n  typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=\n  # Color of the shortened directory segments.\n  typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=250\n  # Color of the anchor directory segments. Anchor segments are never shortened. The first\n  # segment is always an anchor.\n  typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=255\n  # Display anchor directory segments in bold.\n  typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true\n  # Don't shorten directories that contain any of these files. They are anchors.\n  local anchor_files=(\n    .bzr\n    .citc\n    .git\n    .hg\n    .node-version\n    .python-version\n    .go-version\n    .ruby-version\n    .lua-version\n    .java-version\n    .perl-version\n    .php-version\n    .tool-version\n    .shorten_folder_marker\n    .svn\n    .terraform\n    CVS\n    Cargo.toml\n    composer.json\n    go.mod\n    package.json\n    stack.yaml\n  )\n  typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER=\"(${(j:|:)anchor_files})\"\n  # If set to \"first\" (\"last\"), remove everything before the first (last) subdirectory that contains\n  # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is\n  # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first)\n  # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers\n  # and other directories don't.\n  #\n  # Optionally, \"first\" and \"last\" can be followed by \":<offset>\" where <offset> is an integer.\n  # This moves the truncation point to the right (positive offset) or to the left (negative offset)\n  # relative to the marker. Plain \"first\" and \"last\" are equivalent to \"first:0\" and \"last:0\"\n  # respectively.\n  typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false\n  # Don't shorten this many last directory segments. They are anchors.\n  typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1\n  # Shorten directory if it's longer than this even if there is space for it. The value can\n  # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,\n  # directory will be shortened only when prompt doesn't fit or when other parameters demand it\n  # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).\n  # If set to `0`, directory will always be shortened to its minimum length.\n  typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80\n  # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this\n  # many columns for typing commands.\n  typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40\n  # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least\n  # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.\n  typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50\n  # If set to true, embed a hyperlink into the directory. Useful for quickly\n  # opening a directory in the file manager simply by clicking the link.\n  # Can also be handy when the directory is shortened, as it allows you to see\n  # the full directory that was used in previous commands.\n  typeset -g POWERLEVEL9K_DIR_HYPERLINK=false\n\n  # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON\n  # and POWERLEVEL9K_DIR_CLASSES below.\n  typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3\n\n  # The default icon shown next to non-writable and non-existent directories when\n  # POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3.\n  # typeset -g POWERLEVEL9K_LOCK_ICON='⭐'\n\n  # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different\n  # directories. It must be an array with 3 * N elements. Each triplet consists of:\n  #\n  #   1. A pattern against which the current directory ($PWD) is matched. Matching is done with\n  #      extended_glob option enabled.\n  #   2. Directory class for the purpose of styling.\n  #   3. An empty string.\n  #\n  # Triplets are tried in order. The first triplet whose pattern matches $PWD wins.\n  #\n  # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories\n  # acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_DIR_CLASSES=(\n  #     '~/work(|/*)'  WORK     ''\n  #     '~(|/*)'       HOME     ''\n  #     '*'            DEFAULT  '')\n  #\n  # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one\n  # of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or\n  # WORK_NON_EXISTENT.\n  #\n  # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an\n  # option to define custom colors and icons for different directory classes.\n  #\n  #   # Styling for WORK.\n  #   typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_DIR_WORK_BACKGROUND=4\n  #   typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=254\n  #   typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=250\n  #   typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=255\n  #\n  #   # Styling for WORK_NOT_WRITABLE.\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_BACKGROUND=4\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=254\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=250\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=255\n  #\n  #   # Styling for WORK_NON_EXISTENT.\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_BACKGROUND=4\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=254\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=250\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=255\n  #\n  # If a styling parameter isn't explicitly defined for some class, it falls back to the classless\n  # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls\n  # back to POWERLEVEL9K_DIR_FOREGROUND.\n  #\n  # typeset -g POWERLEVEL9K_DIR_CLASSES=()\n\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_DIR_PREFIX='in '\n\n  #####################################[ vcs: git status ]######################################\n  # Version control system colors.\n  typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2\n  typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3\n  typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2\n  typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3\n  typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8\n\n  # Branch icon. Set this parameter to '\\uF126 ' for the popular Powerline branch icon.\n  typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\\uF126 '\n\n  # Untracked files icon. It's really a question mark, your font isn't broken.\n  # Change the value of this parameter to show a different icon.\n  typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'\n\n  # Formatter for Git status.\n  #\n  # Example output: master wip ⇣42⇡42 *42 merge ~42 +42 !42 ?42.\n  #\n  # You can edit the function to customize how Git status looks.\n  #\n  # VCS_STATUS_* parameters are set by gitstatus plugin. See reference:\n  # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.\n  function my_git_formatter() {\n    emulate -L zsh\n\n    if [[ -n $P9K_CONTENT ]]; then\n      # If P9K_CONTENT is not empty, use it. It's either \"loading\" or from vcs_info (not from\n      # gitstatus plugin). VCS_STATUS_* parameters are not available in this case.\n      typeset -g my_git_format=$P9K_CONTENT\n      return\n    fi\n\n    # Styling for different parts of Git status.\n    local       meta='%7F' # white foreground\n    local      clean='%0F' # black foreground\n    local   modified='%0F' # black foreground\n    local  untracked='%0F' # black foreground\n    local conflicted='%1F' # red foreground\n\n    local res\n\n    if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then\n      local branch=${(V)VCS_STATUS_LOCAL_BRANCH}\n      # If local branch name is at most 32 characters long, show it in full.\n      # Otherwise show the first 12 … the last 12.\n      # Tip: To always show local branch name in full without truncation, delete the next line.\n      (( $#branch > 32 )) && branch[13,-13]=\"…\"  # <-- this line\n      res+=\"${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\\%/%%}\"\n    fi\n\n    if [[ -n $VCS_STATUS_TAG\n          # Show tag only if not on a branch.\n          # Tip: To always show tag, delete the next line.\n          && -z $VCS_STATUS_LOCAL_BRANCH  # <-- this line\n        ]]; then\n      local tag=${(V)VCS_STATUS_TAG}\n      # If tag name is at most 32 characters long, show it in full.\n      # Otherwise show the first 12 … the last 12.\n      # Tip: To always show tag name in full without truncation, delete the next line.\n      (( $#tag > 32 )) && tag[13,-13]=\"…\"  # <-- this line\n      res+=\"${meta}#${clean}${tag//\\%/%%}\"\n    fi\n\n    # Display the current Git commit if there is no branch and no tag.\n    # Tip: To always display the current Git commit, delete the next line.\n    [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] &&  # <-- this line\n      res+=\"${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}\"\n\n    # Show tracking branch name if it differs from local branch.\n    if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then\n      res+=\"${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\\%/%%}\"\n    fi\n\n    # Display \"wip\" if the latest commit's summary contains \"wip\" or \"WIP\".\n    if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then\n      res+=\" ${modified}wip\"\n    fi\n\n    # ⇣42 if behind the remote.\n    (( VCS_STATUS_COMMITS_BEHIND )) && res+=\" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}\"\n    # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.\n    (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=\" \"\n    (( VCS_STATUS_COMMITS_AHEAD  )) && res+=\"${clean}⇡${VCS_STATUS_COMMITS_AHEAD}\"\n    # ⇠42 if behind the push remote.\n    (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=\" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}\"\n    (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=\" \"\n    # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42.\n    (( VCS_STATUS_PUSH_COMMITS_AHEAD  )) && res+=\"${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}\"\n    # *42 if have stashes.\n    (( VCS_STATUS_STASHES        )) && res+=\" ${clean}*${VCS_STATUS_STASHES}\"\n    # 'merge' if the repo is in an unusual state.\n    [[ -n $VCS_STATUS_ACTION     ]] && res+=\" ${conflicted}${VCS_STATUS_ACTION}\"\n    # ~42 if have merge conflicts.\n    (( VCS_STATUS_NUM_CONFLICTED )) && res+=\" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}\"\n    # +42 if have staged changes.\n    (( VCS_STATUS_NUM_STAGED     )) && res+=\" ${modified}+${VCS_STATUS_NUM_STAGED}\"\n    # !42 if have unstaged changes.\n    (( VCS_STATUS_NUM_UNSTAGED   )) && res+=\" ${modified}!${VCS_STATUS_NUM_UNSTAGED}\"\n    # ?42 if have untracked files. It's really a question mark, your font isn't broken.\n    # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.\n    # Remove the next line if you don't want to see untracked files at all.\n    (( VCS_STATUS_NUM_UNTRACKED  )) && res+=\" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}\"\n    # \"─\" if the number of unstaged files is unknown. This can happen due to\n    # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower\n    # than the number of files in the Git index, or due to bash.showDirtyState being set to false\n    # in the repository config. The number of staged and untracked files may also be unknown\n    # in this case.\n    (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=\" ${modified}─\"\n\n    typeset -g my_git_format=$res\n  }\n  functions -M my_git_formatter 2>/dev/null\n\n  # Don't count the number of unstaged, untracked and conflicted files in Git repositories with\n  # more than this many files in the index. Negative value means infinity.\n  #\n  # If you are working in Git repositories with tens of millions of files and seeing performance\n  # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output\n  # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's\n  # config: `git config bash.showDirtyState false`.\n  typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1\n\n  # Don't show Git status in prompt for repositories whose workdir matches this pattern.\n  # For example, if set to '~', the Git repository at $HOME/.git will be ignored.\n  # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'.\n  typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~'\n\n  # Disable the default Git status formatting.\n  typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true\n  # Install our own Git status formatter.\n  typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter()))+${my_git_format}}'\n  # Enable counters for staged, unstaged, etc.\n  typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_VCS_PREFIX='on '\n\n  # Show status of repositories of these types. You can add svn and/or hg if you are\n  # using them. If you do, your prompt may become slow even when your current directory\n  # isn't in an svn or hg reposotiry.\n  typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)\n\n  ##########################[ status: exit code of the last command ]###########################\n  # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and\n  # style them independently from the regular OK and ERROR state.\n  typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true\n\n  # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as\n  # it will signify success by turning green.\n  typeset -g POWERLEVEL9K_STATUS_OK=true\n  typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔'\n  typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2\n  typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0\n\n  # Status when some part of a pipe command fails but the overall exit status is zero. It may look\n  # like this: 1|0.\n  typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true\n  typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔'\n  typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2\n  typeset -g POWERLEVEL9K_STATUS_OK_PIPE_BACKGROUND=0\n\n  # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as\n  # it will signify error by turning red.\n  typeset -g POWERLEVEL9K_STATUS_ERROR=true\n  typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘'\n  typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=3\n  typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=1\n\n  # Status when the last command was terminated by a signal.\n  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true\n  # Use terse signal names: \"INT\" instead of \"SIGINT(2)\".\n  typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false\n  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘'\n  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=3\n  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_BACKGROUND=1\n\n  # Status when some part of a pipe command fails and the overall exit status is also non-zero.\n  # It may look like this: 1|0.\n  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true\n  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘'\n  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=3\n  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_BACKGROUND=1\n\n  ###################[ command_execution_time: duration of the last command ]###################\n  # Execution time color.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=0\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=3\n  # Show duration of the last command if takes at least this many seconds.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3\n  # Show this many fractional digits. Zero means round to seconds.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0\n  # Duration format: 1d 2h 3m 4s.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took '\n\n  #######################[ background_jobs: presence of background jobs ]#######################\n  # Background jobs color.\n  typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=6\n  typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=0\n  # Don't show the number of background jobs.\n  typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######################[ direnv: direnv status (https://direnv.net/) ]########################\n  # Direnv color.\n  typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=3\n  typeset -g POWERLEVEL9K_DIRENV_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]###############\n  # Default asdf color. Only used to display tools for which there is no color override (see below).\n  # Tip:  Override these parameters for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND and\n  # POWERLEVEL9K_ASDF_${TOOL}_BACKGROUND.\n  typeset -g POWERLEVEL9K_ASDF_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_BACKGROUND=7\n\n  # There are four parameters that can be used to hide asdf tools. Each parameter describes\n  # conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at\n  # least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to\n  # hide a tool, it gets shown.\n  #\n  # Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and\n  # POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands:\n  #\n  #   asdf local  python 3.8.1\n  #   asdf global python 3.8.1\n  #\n  # After running both commands the current python version is 3.8.1 and its source is \"local\" as\n  # it takes precedence over \"global\". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false,\n  # it'll hide python version in this case because 3.8.1 is the same as the global version.\n  # POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't\n  # contain \"local\".\n\n  # Hide tool versions that don't come from one of these sources.\n  #\n  # Available sources:\n  #\n  # - shell   `asdf current` says \"set by ASDF_${TOOL}_VERSION environment variable\"\n  # - local   `asdf current` says \"set by /some/not/home/directory/file\"\n  # - global  `asdf current` says \"set by /home/username/file\"\n  #\n  # Note: If this parameter is set to (shell local global), it won't hide tools.\n  # Tip:  Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES.\n  typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global)\n\n  # If set to false, hide tool versions that are the same as global.\n  #\n  # Note: The name of this parameter doesn't reflect its meaning at all.\n  # Note: If this parameter is set to true, it won't hide tools.\n  # Tip:  Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW.\n  typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false\n\n  # If set to false, hide tool versions that are equal to \"system\".\n  #\n  # Note: If this parameter is set to true, it won't hide tools.\n  # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM.\n  typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true\n\n  # If set to non-empty value, hide tools unless there is a file matching the specified file pattern\n  # in the current directory, or its parent directory, or its grandparent directory, and so on.\n  #\n  # Note: If this parameter is set to empty value, it won't hide tools.\n  # Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments.\n  # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB.\n  #\n  # Example: Hide nodejs version when there is no package.json and no *.js files in the current\n  # directory, in `..`, in `../..` and so on.\n  #\n  #   typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json'\n  typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB=\n\n  # Ruby version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_RUBY_BACKGROUND=1\n  # typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Python version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_PYTHON_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Go version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_GOLANG_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Node.js version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_NODEJS_BACKGROUND=2\n  # typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Rust version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_RUST_BACKGROUND=208\n  # typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # .NET Core version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_BACKGROUND=5\n  # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Flutter version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_FLUTTER_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Lua version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_LUA_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Java version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=1\n  typeset -g POWERLEVEL9K_ASDF_JAVA_BACKGROUND=7\n  # typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Perl version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_PERL_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Erlang version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_ERLANG_BACKGROUND=1\n  # typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Elixir version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_ELIXIR_BACKGROUND=5\n  # typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Postgres version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_POSTGRES_BACKGROUND=6\n  # typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # PHP version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_PHP_BACKGROUND=5\n  # typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Haskell version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_HASKELL_BACKGROUND=3\n  # typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Julia version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_JULIA_BACKGROUND=2\n  # typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########\n  # NordVPN connection indicator color.\n  typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=7\n  typeset -g POWERLEVEL9K_NORDVPN_BACKGROUND=4\n  # Hide NordVPN connection indicator when not connected.\n  typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION=\n  typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION=\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################\n  # Ranger shell color.\n  typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3\n  typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]#######################\n  # Nnn shell color.\n  typeset -g POWERLEVEL9K_NNN_FOREGROUND=0\n  typeset -g POWERLEVEL9K_NNN_BACKGROUND=6\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]##################\n  # xplr shell color.\n  typeset -g POWERLEVEL9K_XPLR_FOREGROUND=0\n  typeset -g POWERLEVEL9K_XPLR_BACKGROUND=6\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########################[ vim_shell: vim shell indicator (:sh) ]###########################\n  # Vim shell indicator color.\n  typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=0\n  typeset -g POWERLEVEL9K_VIM_SHELL_BACKGROUND=2\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]######\n  # Midnight Commander shell color.\n  typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=3\n  typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]##\n  # Nix shell color.\n  typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=0\n  typeset -g POWERLEVEL9K_NIX_SHELL_BACKGROUND=4\n\n  # Tip: If you want to see just the icon without \"pure\" and \"impure\", uncomment the next line.\n  # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##################################[ disk_usage: disk usage ]##################################\n  # Colors for different levels of disk usage.\n  typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=3\n  typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND=0\n  typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=0\n  typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND=3\n  typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=7\n  typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND=1\n  # Thresholds for different levels of disk usage (percentage points).\n  typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90\n  typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95\n  # If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent.\n  typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ vi_mode: vi mode (you don't need this if you've enabled prompt_char) ]###########\n  # Foreground color.\n  typeset -g POWERLEVEL9K_VI_MODE_FOREGROUND=0\n  # Text and color for normal (a.k.a. command) vi mode.\n  typeset -g POWERLEVEL9K_VI_COMMAND_MODE_STRING=NORMAL\n  typeset -g POWERLEVEL9K_VI_MODE_NORMAL_BACKGROUND=2\n  # Text and color for visual vi mode.\n  typeset -g POWERLEVEL9K_VI_VISUAL_MODE_STRING=VISUAL\n  typeset -g POWERLEVEL9K_VI_MODE_VISUAL_BACKGROUND=4\n  # Text and color for overtype (a.k.a. overwrite and replace) vi mode.\n  typeset -g POWERLEVEL9K_VI_OVERWRITE_MODE_STRING=OVERTYPE\n  typeset -g POWERLEVEL9K_VI_MODE_OVERWRITE_BACKGROUND=3\n  # Text and color for insert vi mode.\n  typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING=\n  typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=8\n\n  ######################################[ ram: free RAM ]#######################################\n  # RAM color.\n  typeset -g POWERLEVEL9K_RAM_FOREGROUND=0\n  typeset -g POWERLEVEL9K_RAM_BACKGROUND=3\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #####################################[ swap: used swap ]######################################\n  # Swap color.\n  typeset -g POWERLEVEL9K_SWAP_FOREGROUND=0\n  typeset -g POWERLEVEL9K_SWAP_BACKGROUND=3\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ######################################[ load: CPU load ]######################################\n  # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.\n  typeset -g POWERLEVEL9K_LOAD_WHICH=5\n  # Load color when load is under 50%.\n  typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=0\n  typeset -g POWERLEVEL9K_LOAD_NORMAL_BACKGROUND=2\n  # Load color when load is between 50% and 70%.\n  typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=0\n  typeset -g POWERLEVEL9K_LOAD_WARNING_BACKGROUND=3\n  # Load color when load is over 70%.\n  typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=0\n  typeset -g POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND=1\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################\n  # Todo color.\n  typeset -g POWERLEVEL9K_TODO_FOREGROUND=0\n  typeset -g POWERLEVEL9K_TODO_BACKGROUND=8\n  # Hide todo when the total number of tasks is zero.\n  typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true\n  # Hide todo when the number of tasks after filtering is zero.\n  typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false\n\n  # Todo format. The following parameters are available within the expansion.\n  #\n  # - P9K_TODO_TOTAL_TASK_COUNT     The total number of tasks.\n  # - P9K_TODO_FILTERED_TASK_COUNT  The number of tasks after filtering.\n  #\n  # These variables correspond to the last line of the output of `todo.sh -p ls`:\n  #\n  #   TODO: 24 of 42 tasks shown\n  #\n  # Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT.\n  #\n  # typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############\n  # Timewarrior color.\n  typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=255\n  typeset -g POWERLEVEL9K_TIMEWARRIOR_BACKGROUND=8\n\n  # If the tracked task is longer than 24 characters, truncate and append \"…\".\n  # Tip: To always display tasks without truncation, delete the following parameter.\n  # Tip: To hide task names and display just the icon when time tracking is enabled, set the\n  # value of the following parameter to \"\".\n  typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…}'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]##############\n  # Taskwarrior color.\n  typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=0\n  typeset -g POWERLEVEL9K_TASKWARRIOR_BACKGROUND=6\n\n  # Taskwarrior segment format. The following parameters are available within the expansion.\n  #\n  # - P9K_TASKWARRIOR_PENDING_COUNT   The number of pending tasks: `task +PENDING count`.\n  # - P9K_TASKWARRIOR_OVERDUE_COUNT   The number of overdue tasks: `task +OVERDUE count`.\n  #\n  # Zero values are represented as empty parameters.\n  #\n  # The default format:\n  #\n  #   '${P9K_TASKWARRIOR_OVERDUE_COUNT:+\"!$P9K_TASKWARRIOR_OVERDUE_COUNT/\"}$P9K_TASKWARRIOR_PENDING_COUNT'\n  #\n  # typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##################################[ context: user@hostname ]##################################\n  # Context color when running with privileges.\n  typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1\n  typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=0\n  # Context color in SSH without privileges.\n  typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=3\n  typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_BACKGROUND=0\n  # Default context color (no privileges, no SSH).\n  typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=3\n  typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=0\n\n  # Context format when running with privileges: user@hostname.\n  typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m'\n  # Context format when in SSH without privileges: user@hostname.\n  typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m'\n  # Default context format (no privileges, no SSH): user@hostname.\n  typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'\n\n  # Don't show context unless running with privileges or in SSH.\n  # Tip: Remove the next line to always show context.\n  typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with '\n\n  ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]###\n  # Python virtual environment color.\n  typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=0\n  typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=4\n  # Don't show Python version next to the virtual environment name.\n  typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false\n  # If set to \"false\", won't show virtualenv if pyenv is already shown.\n  # If set to \"if-different\", won't show virtualenv if it's the same as pyenv.\n  typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false\n  # Separate environment name from Python version only with a space.\n  typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #####################[ anaconda: conda environment (https://conda.io/) ]######################\n  # Anaconda environment color.\n  typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=4\n\n  # Anaconda segment format. The following parameters are available within the expansion.\n  #\n  # - CONDA_PREFIX                 Absolute path to the active Anaconda/Miniconda environment.\n  # - CONDA_DEFAULT_ENV            Name of the active Anaconda/Miniconda environment.\n  # - CONDA_PROMPT_MODIFIER        Configurable prompt modifier (see below).\n  # - P9K_ANACONDA_PYTHON_VERSION  Current python version (python --version).\n  #\n  # CONDA_PROMPT_MODIFIER can be configured with the following command:\n  #\n  #   conda config --set env_prompt '({default_env}) '\n  #\n  # The last argument is a Python format string that can use the following variables:\n  #\n  # - prefix       The same as CONDA_PREFIX.\n  # - default_env  The same as CONDA_DEFAULT_ENV.\n  # - name         The last segment of CONDA_PREFIX.\n  # - stacked_env  Comma-separated list of names in the environment stack. The first element is\n  #                always the same as default_env.\n  #\n  # Note: '({default_env}) ' is the default value of env_prompt.\n  #\n  # The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER\n  # without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former\n  # is empty.\n  typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\\(}% }%\\)}:-${CONDA_PREFIX:t}}'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################\n  # Pyenv color.\n  typeset -g POWERLEVEL9K_PYENV_FOREGROUND=0\n  typeset -g POWERLEVEL9K_PYENV_BACKGROUND=4\n  # Hide python version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global)\n  # If set to false, hide python version if it's the same as global:\n  # $(pyenv version-name) == $(pyenv global).\n  typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide python version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true\n\n  # Pyenv segment format. The following parameters are available within the expansion.\n  #\n  # - P9K_CONTENT                Current pyenv environment (pyenv version-name).\n  # - P9K_PYENV_PYTHON_VERSION   Current python version (python --version).\n  #\n  # The default format has the following logic:\n  #\n  # 1. Display just \"$P9K_CONTENT\" if it's equal to \"$P9K_PYENV_PYTHON_VERSION\" or\n  #    starts with \"$P9K_PYENV_PYTHON_VERSION/\".\n  # 2. Otherwise display \"$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION\".\n  typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################\n  # Goenv color.\n  typeset -g POWERLEVEL9K_GOENV_FOREGROUND=0\n  typeset -g POWERLEVEL9K_GOENV_BACKGROUND=4\n  # Hide go version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global)\n  # If set to false, hide go version if it's the same as global:\n  # $(goenv version-name) == $(goenv global).\n  typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide go version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########\n  # Nodenv color.\n  typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2\n  typeset -g POWERLEVEL9K_NODENV_BACKGROUND=0\n  # Hide node version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global)\n  # If set to false, hide node version if it's the same as global:\n  # $(nodenv version-name) == $(nodenv global).\n  typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide node version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############\n  # Nvm color.\n  typeset -g POWERLEVEL9K_NVM_FOREGROUND=0\n  typeset -g POWERLEVEL9K_NVM_BACKGROUND=5\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############\n  # Nodeenv color.\n  typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2\n  typeset -g POWERLEVEL9K_NODEENV_BACKGROUND=0\n  # Don't show Node version next to the environment name.\n  typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false\n  # Separate environment name from Node version only with a space.\n  typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER=\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##############################[ node_version: node.js version ]###############################\n  # Node version color.\n  typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=7\n  typeset -g POWERLEVEL9K_NODE_VERSION_BACKGROUND=2\n  # Show node version only when in a directory tree containing package.json.\n  typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######################[ go_version: go version (https://golang.org) ]########################\n  # Go version color.\n  typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=255\n  typeset -g POWERLEVEL9K_GO_VERSION_BACKGROUND=2\n  # Show go version only when in a go project subdirectory.\n  typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #################[ rust_version: rustc version (https://www.rust-lang.org) ]##################\n  # Rust version color.\n  typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=0\n  typeset -g POWERLEVEL9K_RUST_VERSION_BACKGROUND=208\n  # Show rust version only when in a rust project subdirectory.\n  typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################\n  # .NET version color.\n  typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=7\n  typeset -g POWERLEVEL9K_DOTNET_VERSION_BACKGROUND=5\n  # Show .NET version only when in a .NET project subdirectory.\n  typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #####################[ php_version: php version (https://www.php.net/) ]######################\n  # PHP version color.\n  typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=0\n  typeset -g POWERLEVEL9K_PHP_VERSION_BACKGROUND=5\n  # Show PHP version only when in a PHP project subdirectory.\n  typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ laravel_version: laravel php framework version (https://laravel.com/) ]###########\n  # Laravel version color.\n  typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=1\n  typeset -g POWERLEVEL9K_LARAVEL_VERSION_BACKGROUND=7\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############\n  # Rbenv color.\n  typeset -g POWERLEVEL9K_RBENV_FOREGROUND=0\n  typeset -g POWERLEVEL9K_RBENV_BACKGROUND=1\n  # Hide ruby version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global)\n  # If set to false, hide ruby version if it's the same as global:\n  # $(rbenv version-name) == $(rbenv global).\n  typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide ruby version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ####################[ java_version: java version (https://www.java.com/) ]####################\n  # Java version color.\n  typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=1\n  typeset -g POWERLEVEL9K_JAVA_VERSION_BACKGROUND=7\n  # Show java version only when in a java project subdirectory.\n  typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true\n  # Show brief version.\n  typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]####\n  # Package color.\n  typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=0\n  typeset -g POWERLEVEL9K_PACKAGE_BACKGROUND=6\n\n  # Package format. The following parameters are available within the expansion.\n  #\n  # - P9K_PACKAGE_NAME     The value of `name` field in package.json.\n  # - P9K_PACKAGE_VERSION  The value of `version` field in package.json.\n  #\n  # typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\\%/%%}@${P9K_PACKAGE_VERSION//\\%/%%}'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######################[ rvm: ruby version from rvm (https://rvm.io) ]########################\n  # Rvm color.\n  typeset -g POWERLEVEL9K_RVM_FOREGROUND=0\n  typeset -g POWERLEVEL9K_RVM_BACKGROUND=240\n  # Don't show @gemset at the end.\n  typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false\n  # Don't show ruby- at the front.\n  typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############\n  # Fvm color.\n  typeset -g POWERLEVEL9K_FVM_FOREGROUND=0\n  typeset -g POWERLEVEL9K_FVM_BACKGROUND=4\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]###########\n  # Lua color.\n  typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=0\n  typeset -g POWERLEVEL9K_LUAENV_BACKGROUND=4\n  # Hide lua version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global)\n  # If set to false, hide lua version if it's the same as global:\n  # $(luaenv version-name) == $(luaenv global).\n  typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide lua version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################\n  # Java color.\n  typeset -g POWERLEVEL9K_JENV_FOREGROUND=1\n  typeset -g POWERLEVEL9K_JENV_BACKGROUND=7\n  # Hide java version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global)\n  # If set to false, hide java version if it's the same as global:\n  # $(jenv version-name) == $(jenv global).\n  typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide java version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############\n  # Perl color.\n  typeset -g POWERLEVEL9K_PLENV_FOREGROUND=0\n  typeset -g POWERLEVEL9K_PLENV_BACKGROUND=4\n  # Hide perl version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global)\n  # If set to false, hide perl version if it's the same as global:\n  # $(plenv version-name) == $(plenv global).\n  typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide perl version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############\n  # PHP color.\n  typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=0\n  typeset -g POWERLEVEL9K_PHPENV_BACKGROUND=5\n  # Hide php version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global)\n  # If set to false, hide php version if it's the same as global:\n  # $(phpenv version-name) == $(phpenv global).\n  typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide PHP version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]#######\n  # Scala color.\n  typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=0\n  typeset -g POWERLEVEL9K_SCALAENV_BACKGROUND=1\n  # Hide scala version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global)\n  # If set to false, hide scala version if it's the same as global:\n  # $(scalaenv version-name) == $(scalaenv global).\n  typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide scala version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]###########\n  # Haskell color.\n  typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=0\n  typeset -g POWERLEVEL9K_HASKELL_STACK_BACKGROUND=3\n\n  # Hide haskell version if it doesn't come from one of these sources.\n  #\n  #   shell:  version is set by STACK_YAML\n  #   local:  version is set by stack.yaml up the directory tree\n  #   global: version is set by the implicit global project (~/.stack/global-project/stack.yaml)\n  typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local)\n  # If set to false, hide haskell version if it's the same as in the implicit global project.\n  typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ terraform: terraform workspace (https://www.terraform.io) ]#################\n  # Don't show terraform workspace if it's literally \"default\".\n  typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false\n  # POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element\n  # in each pair defines a pattern against which the current terraform workspace gets matched.\n  # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)\n  # that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters,\n  # you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The\n  # first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(\n  #     '*prod*'  PROD\n  #     '*test*'  TEST\n  #     '*'       OTHER)\n  #\n  # If your current terraform workspace is \"project_test\", its class is TEST because \"project_test\"\n  # doesn't match the pattern '*prod*' but does match '*test*'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=2\n  #   typeset -g POWERLEVEL9K_TERRAFORM_TEST_BACKGROUND=0\n  #   typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'\n  typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(\n      # '*prod*'  PROD    # These values are examples that are unlikely\n      # '*test*'  TEST    # to match your needs. Customize them as needed.\n      '*'         OTHER)\n  typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=4\n  typeset -g POWERLEVEL9K_TERRAFORM_OTHER_BACKGROUND=0\n  # typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #############[ terraform_version: terraform version (https://www.terraform.io) ]##############\n  # Terraform version color.\n  typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=4\n  typeset -g POWERLEVEL9K_TERRAFORM_VERSION_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ terraform_version: It shows active terraform version (https://www.terraform.io) ]#################\n  typeset -g POWERLEVEL9K_TERRAFORM_VERSION_SHOW_ON_COMMAND='terraform|tf'\n\n  #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############\n  # Show kubecontext only when the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show kubecontext.\n  typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern'\n\n  # Kubernetes context classes for the purpose of using different colors, icons and expansions with\n  # different contexts.\n  #\n  # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element\n  # in each pair defines a pattern against which the current kubernetes context gets matched.\n  # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)\n  # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters,\n  # you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The\n  # first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(\n  #     '*prod*'  PROD\n  #     '*test*'  TEST\n  #     '*'       DEFAULT)\n  #\n  # If your current kubernetes context is \"deathray-testing/default\", its class is TEST\n  # because \"deathray-testing/default\" doesn't match the pattern '*prod*' but does match '*test*'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=0\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_BACKGROUND=2\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'\n  typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(\n      # '*prod*'  PROD    # These values are examples that are unlikely\n      # '*test*'  TEST    # to match your needs. Customize them as needed.\n      '*'       DEFAULT)\n  typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=7\n  typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_BACKGROUND=5\n  # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext\n  # segment. Parameter expansions are very flexible and fast, too. See reference:\n  # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.\n  #\n  # Within the expansion the following parameters are always available:\n  #\n  # - P9K_CONTENT                The content that would've been displayed if there was no content\n  #                              expansion defined.\n  # - P9K_KUBECONTEXT_NAME       The current context's name. Corresponds to column NAME in the\n  #                              output of `kubectl config get-contexts`.\n  # - P9K_KUBECONTEXT_CLUSTER    The current context's cluster. Corresponds to column CLUSTER in the\n  #                              output of `kubectl config get-contexts`.\n  # - P9K_KUBECONTEXT_NAMESPACE  The current context's namespace. Corresponds to column NAMESPACE\n  #                              in the output of `kubectl config get-contexts`. If there is no\n  #                              namespace, the parameter is set to \"default\".\n  # - P9K_KUBECONTEXT_USER       The current context's user. Corresponds to column AUTHINFO in the\n  #                              output of `kubectl config get-contexts`.\n  #\n  # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),\n  # the following extra parameters are available:\n  #\n  # - P9K_KUBECONTEXT_CLOUD_NAME     Either \"gke\" or \"eks\".\n  # - P9K_KUBECONTEXT_CLOUD_ACCOUNT  Account/project ID.\n  # - P9K_KUBECONTEXT_CLOUD_ZONE     Availability zone.\n  # - P9K_KUBECONTEXT_CLOUD_CLUSTER  Cluster.\n  #\n  # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example,\n  # if P9K_KUBECONTEXT_CLUSTER is \"gke_my-account_us-east1-a_my-cluster-01\":\n  #\n  #   - P9K_KUBECONTEXT_CLOUD_NAME=gke\n  #   - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account\n  #   - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a\n  #   - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01\n  #\n  # If P9K_KUBECONTEXT_CLUSTER is \"arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01\":\n  #\n  #   - P9K_KUBECONTEXT_CLOUD_NAME=eks\n  #   - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012\n  #   - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1\n  #   - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01\n  typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=\n  # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.\n  POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'\n  # Append the current context's namespace if it's not \"default\".\n  POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'\n\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at '\n\n  #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#\n  # Show aws only when the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show aws.\n  typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi|terragrunt'\n\n  # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element\n  # in each pair defines a pattern against which the current AWS profile gets matched.\n  # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)\n  # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,\n  # you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The\n  # first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_AWS_CLASSES=(\n  #     '*prod*'  PROD\n  #     '*test*'  TEST\n  #     '*'       DEFAULT)\n  #\n  # If your current AWS profile is \"company_test\", its class is TEST\n  # because \"company_test\" doesn't match the pattern '*prod*' but does match '*test*'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28\n  #   typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'\n  typeset -g POWERLEVEL9K_AWS_CLASSES=(\n      # '*prod*'  PROD    # These values are examples that are unlikely\n      # '*test*'  TEST    # to match your needs. Customize them as needed.\n      '*'       DEFAULT)\n  typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=7\n  typeset -g POWERLEVEL9K_AWS_DEFAULT_BACKGROUND=1\n  # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # AWS segment format. The following parameters are available within the expansion.\n  #\n  # - P9K_AWS_PROFILE  The name of the current AWS profile.\n  # - P9K_AWS_REGION   The region associated with the current AWS profile.\n  typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\\%/%%}}'\n\n  #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#\n  # AWS Elastic Beanstalk environment color.\n  typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2\n  typeset -g POWERLEVEL9K_AWS_EB_ENV_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########\n  # Show azure only when the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show azure.\n  typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt'\n  # Azure account name color.\n  typeset -g POWERLEVEL9K_AZURE_FOREGROUND=7\n  typeset -g POWERLEVEL9K_AZURE_BACKGROUND=4\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########\n  # Show gcloud only when the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show gcloud.\n  typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil'\n  # Google cloud color.\n  typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=7\n  typeset -g POWERLEVEL9K_GCLOUD_BACKGROUND=4\n\n  # Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or\n  # POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative\n  # enough. You can use the following parameters in the expansions. Each of them corresponds to the\n  # output of `gcloud` tool.\n  #\n  #   Parameter                | Source\n  #   -------------------------|--------------------------------------------------------------------\n  #   P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)'\n  #   P9K_GCLOUD_ACCOUNT       | gcloud config get-value account\n  #   P9K_GCLOUD_PROJECT_ID    | gcloud config get-value project\n  #   P9K_GCLOUD_PROJECT_NAME  | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)'\n  #\n  # Note: ${VARIABLE//\\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'.\n  #\n  # Obtaining project name requires sending a request to Google servers. This can take a long time\n  # and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud\n  # prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets\n  # set and gcloud prompt segment transitions to state COMPLETE.\n  #\n  # You can customize the format, icon and colors of gcloud segment separately for states PARTIAL\n  # and COMPLETE. You can also hide gcloud in state PARTIAL by setting\n  # POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and\n  # POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty.\n  typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\\%/%%}'\n  typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\\%/%%}'\n\n  # Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name\n  # this often. Negative value disables periodic polling. In this mode project name is retrieved\n  # only when the current configuration, account or project id changes.\n  typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]#\n  # Show google_app_cred only when the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show google_app_cred.\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt'\n\n  # Google application credentials classes for the purpose of using different colors, icons and\n  # expansions with different credentials.\n  #\n  # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first\n  # element in each pair defines a pattern against which the current kubernetes context gets\n  # matched. More specifically, it's P9K_CONTENT prior to the application of context expansion\n  # (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION\n  # parameters, you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order.\n  # The first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(\n  #     '*:*prod*:*'  PROD\n  #     '*:*test*:*'  TEST\n  #     '*'           DEFAULT)\n  #\n  # If your current Google application credentials is \"service_account deathray-testing x@y.com\",\n  # its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=28\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID'\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(\n      # '*:*prod*:*'  PROD    # These values are examples that are unlikely\n      # '*:*test*:*'  TEST    # to match your needs. Customize them as needed.\n      '*'             DEFAULT)\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=7\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by\n  # google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference:\n  # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.\n  #\n  # You can use the following parameters in the expansion. Each of them corresponds to one of the\n  # fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS.\n  #\n  #   Parameter                        | JSON key file field\n  #   ---------------------------------+---------------\n  #   P9K_GOOGLE_APP_CRED_TYPE         | type\n  #   P9K_GOOGLE_APP_CRED_PROJECT_ID   | project_id\n  #   P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email\n  #\n  # Note: ${VARIABLE//\\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'.\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\\%/%%}'\n\n  ##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]###############\n  # Toolbox color.\n  typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=0\n  typeset -g POWERLEVEL9K_TOOLBOX_BACKGROUND=3\n  # Don't display the name of the toolbox if it matches fedora-toolbox-*.\n  typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}'\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='in '\n\n  ###############################[ public_ip: public IP address ]###############################\n  # Public IP color.\n  typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=7\n  typeset -g POWERLEVEL9K_PUBLIC_IP_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ########################[ vpn_ip: virtual private network indicator ]#########################\n  # VPN IP color.\n  typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=0\n  typeset -g POWERLEVEL9K_VPN_IP_BACKGROUND=6\n  # When on VPN, show just an icon without the IP address.\n  # Tip: To display the private IP address when on VPN, remove the next line.\n  typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=\n  # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN\n  # to see the name of the interface.\n  typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*'\n  # If set to true, show one segment per matching network interface. If set to false, show only\n  # one segment corresponding to the first matching network interface.\n  # Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION.\n  typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ ip: ip address and bandwidth usage for a specified network interface ]###########\n  # IP color.\n  typeset -g POWERLEVEL9K_IP_BACKGROUND=4\n  typeset -g POWERLEVEL9K_IP_FOREGROUND=0\n  # The following parameters are accessible within the expansion:\n  #\n  #   Parameter             | Meaning\n  #   ----------------------+-------------------------------------------\n  #   P9K_IP_IP             | IP address\n  #   P9K_IP_INTERFACE      | network interface\n  #   P9K_IP_RX_BYTES       | total number of bytes received\n  #   P9K_IP_TX_BYTES       | total number of bytes sent\n  #   P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt\n  #   P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt\n  #   P9K_IP_RX_RATE        | receive rate (since last prompt)\n  #   P9K_IP_TX_RATE        | send rate (since last prompt)\n  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'\n  # Show information for the first network interface whose name matches this regular expression.\n  # Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces.\n  typeset -g POWERLEVEL9K_IP_INTERFACE='[ew].*'\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #########################[ proxy: system-wide http/https/ftp proxy ]##########################\n  # Proxy color.\n  typeset -g POWERLEVEL9K_PROXY_FOREGROUND=4\n  typeset -g POWERLEVEL9K_PROXY_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################################[ battery: internal battery ]#################################\n  # Show battery in red when it's below this level and not connected to power supply.\n  typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20\n  typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1\n  # Show battery in green when it's charging or fully charged.\n  typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2\n  # Show battery in yellow when it's discharging.\n  typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3\n  # Battery pictograms going from low to high level of charge.\n  typeset -g POWERLEVEL9K_BATTERY_STAGES='\\uf58d\\uf579\\uf57a\\uf57b\\uf57c\\uf57d\\uf57e\\uf57f\\uf580\\uf581\\uf578'\n  # Don't show the remaining time to charge/discharge.\n  typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false\n  typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0\n\n  #####################################[ wifi: wifi speed ]#####################################\n  # WiFi color.\n  typeset -g POWERLEVEL9K_WIFI_FOREGROUND=0\n  typeset -g POWERLEVEL9K_WIFI_BACKGROUND=4\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Use different colors and icons depending on signal strength ($P9K_WIFI_BARS).\n  #\n  #   # Wifi colors and icons for different signal strength levels (low to high).\n  #   typeset -g my_wifi_fg=(0 0 0 0 0)                                # <-- change these values\n  #   typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi')     # <-- change these values\n  #\n  #   typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps'\n  #   typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}'\n  #\n  # The following parameters are accessible within the expansions:\n  #\n  #   Parameter             | Meaning\n  #   ----------------------+---------------\n  #   P9K_WIFI_SSID         | service set identifier, a.k.a. network name\n  #   P9K_WIFI_LINK_AUTH    | authentication protocol such as \"wpa2-psk\" or \"none\"; empty if unknown\n  #   P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second\n  #   P9K_WIFI_RSSI         | signal strength in dBm, from -120 to 0\n  #   P9K_WIFI_NOISE        | noise in dBm, from -120 to 0\n  #   P9K_WIFI_BARS         | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE)\n\n  ####################################[ time: current time ]####################################\n  # Current time color.\n  typeset -g POWERLEVEL9K_TIME_FOREGROUND=0\n  typeset -g POWERLEVEL9K_TIME_BACKGROUND=7\n  # Format for the current time: 09:51:02. See `man 3 strftime`.\n  typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'\n  # If set to true, time will update when you hit enter. This way prompts for the past\n  # commands will contain the start times of their commands as opposed to the default\n  # behavior where they contain the end times of their preceding commands.\n  typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_TIME_PREFIX='at '\n\n  # Example of a user-defined prompt segment. Function prompt_example will be called on every\n  # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or\n  # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and yellow text on red background\n  # greeting the user.\n  #\n  # Type `p10k help segment` for documentation and a more sophisticated example.\n  function prompt_example() {\n    p10k segment -b 1 -f 3 -i '⭐' -t 'hello, %n'\n  }\n\n  # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job\n  # is to generate the prompt segment for display in instant prompt. See\n  # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.\n  #\n  # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function\n  # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k\n  # will replay these calls without actually calling instant_prompt_*. It is imperative that\n  # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this\n  # rule is not observed, the content of instant prompt will be incorrect.\n  #\n  # Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If\n  # instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt.\n  function instant_prompt_example() {\n    # Since prompt_example always makes the same `p10k segment` calls, we can call it from\n    # instant_prompt_example. This will give us the same `example` prompt segment in the instant\n    # and regular prompts.\n    prompt_example\n  }\n\n  # User-defined prompt segments can be customized the same way as built-in segments.\n  typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=3\n  typeset -g POWERLEVEL9K_EXAMPLE_BACKGROUND=1\n  # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt\n  # when accepting a command line. Supported values:\n  #\n  #   - off:      Don't change prompt when accepting a command line.\n  #   - always:   Trim down prompt when accepting a command line.\n  #   - same-dir: Trim down prompt when accepting a command line unless this is the first command\n  #               typed after changing current working directory.\n  typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always\n\n  # Instant prompt mode.\n  #\n  #   - off:     Disable instant prompt. Choose this if you've tried instant prompt and found\n  #              it incompatible with your zsh configuration files.\n  #   - quiet:   Enable instant prompt and don't print warnings when detecting console output\n  #              during zsh initialization. Choose this if you've read and understood\n  #              https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.\n  #   - verbose: Enable instant prompt and print a warning when detecting console output during\n  #              zsh initialization. Choose this if you've never tried instant prompt, haven't\n  #              seen the warning, or if you are unsure what this all means.\n  typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose\n\n  # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized.\n  # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload\n  # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you\n  # really need it.\n  typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true\n\n  # If p10k is already loaded, reload configuration.\n  # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.\n  (( ! $+functions[p10k] )) || p10k reload\n}\n\n# Tell `p10k configure` which file it should overwrite.\ntypeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a}\n\n(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}\n'builtin' 'unset' 'p10k_config_opts'\n"
  },
  {
    "path": ".profile",
    "content": "export EDITOR=nvim_kitty\nexport VISUAL=nvim_kitty\nexport QT_QPA_PLATFORMTHEME=qt5ct \nexport BAT_THEME=\"Catppuccin-mocha\"\nexport GDK_CORE_DEVICE_EVENTS=1\n\nexport PATH=/home/amitgold/.local/bin:$PATH\nsource $HOME/.ghcup/env\n\nexport FZF_DEFAULT_OPTS=\" \\\n--color=bg+:-1,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \\\n--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \\\n--color=marker:#f5e0dc,fg+:#a6e3a1,prompt:#cba6f7,hl+:#f38ba8\"\n\n# Colorful man pages\nexport LESS_TERMCAP_mb=$'\\e[1;32m'\nexport LESS_TERMCAP_md=$'\\e[1;32m'\nexport LESS_TERMCAP_me=$'\\e[0m'\nexport LESS_TERMCAP_se=$'\\e[0m'\nexport LESS_TERMCAP_so=$'\\e[01;33m'\nexport LESS_TERMCAP_ue=$'\\e[0m'\nexport LESS_TERMCAP_us=$'\\e[1;4;31m'\nexport LESS=-R\n"
  },
  {
    "path": ".zshrc",
    "content": "# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.\n# Initialization code that may require console input (password prompts, [y/n]\n# confirmations, etc.) must go above this block; everything else may go below.\nif [[ -r \"${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh\" ]]; then\n  source \"${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh\" > /dev/null\nfi\n\n# Basic auto/tab complete:\nautoload -U compinit\nzstyle ':completion:*' menu select\nzmodload zsh/complist\ncompinit\n_comp_options+=(globdots)               # Include hidden files.\n\nalias rm='rm -I'\nalias mv='mv -i'\nalias cp='cp -i'\nalias ls='exa --icons --color=auto'\nalias ll='ls -alhF'\nalias lt='ls -hFT'\nalias grep='grep --color=auto'\nalias nvim=nvim_kitty\nalias vim='nvim'\nalias sudo='sudo '\nalias checkupdates='checkupdates && paru -Qua'\nalias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'\nalias lzconf='lazygit --git-dir=$HOME/.dotfiles --work-tree=$HOME'\nalias j=\"z\"\nalias ji=\"zi\"\nalias ..='cd ..'\nalias ...='cd ../..'\nalias ....='cd ../../..'\nalias icat=\"kitty +kitten icat\"\nalias du=\"du -h\"\n\nconfup() {\n  config commit -m \"update\" && config push\n}\n\naliasexp() {\n  if [[ $ZSH_VERSION ]]; then\n    # shellcheck disable=2154  # aliases referenced but not assigned\n    [ ${aliases[$1]+x} ] && printf '%s\\n' \"${aliases[$1]}\" && return\n  else  # bash\n    [ \"${BASH_ALIASES[$1]+x}\" ] && printf '%s\\n' \"${BASH_ALIASES[$1]}\" && return\n  fi\n  false  # Error: alias not defined\n}\n\ngitrelease() {\n  MASTER=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')\n\tgit push && git checkout $MASTER && git merge develop && git push && git checkout develop\n}\n\nlf() {\n  tmp=\"$(mktemp)\"\n  command lf -last-dir-path=\"$tmp\" \"$@\"\n  if [ -f \"$tmp\" ]; then\n      dir=\"$(cat \"$tmp\")\"\n      rm -f \"$tmp\"\n      if [ -d \"$dir\" ]; then\n          if [ \"$dir\" != \"$(pwd)\" ]; then\n              cd \"$dir\"\n          fi\n      fi\n  fi\n}\n\n#\n# # ex - archive extractor\n# # usage: ex <file>\nex ()\n{\n  if [ -f $1 ] ; then\n    case $1 in\n      *.tar.bz2)   tar xjf $1   ;;\n      *.tar.gz)    tar xzf $1   ;;\n      *.tar.xz)    tar xJf $1   ;;\n      *.bz2)       bunzip2 $1   ;;\n      *.rar)       unrar x $1     ;;\n      *.gz)        gunzip $1    ;;\n      *.tar)       tar xf $1    ;;\n      *.tbz2)      tar xjf $1   ;;\n      *.tgz)       tar xzf $1   ;;\n      *.zip)       unzip $1     ;;\n      *.Z)         uncompress $1;;\n      *.7z)        7z x $1      ;;\n      *)           echo \"'$1' cannot be extracted via ex()\" ;;\n    esac\n  else\n    echo \"'$1' is not a valid file\"\n  fi\n}\n\n# Settings\nbindkey -v\nbindkey \"^[[1;5C\" forward-word\nbindkey \"^[[1;5D\" backward-word\n\nZVM_KEYTIMEOUT=0.1\nZVM_VI_HIGHLIGHT_BACKGROUND=white\nZVM_VI_HIGHLIGHT_FOREGROUND=black\nZVM_VI_INSERT_ESCAPE_BINDKEY=jk\n\nzstyle ':fzf-tab:*' fzf-flags --height 40%\nzstyle ':fzf-tab:complete:*:*' fzf-preview 'less ${(Q)realpath}'\nexport LESSOPEN='|~/.lessfilter %s'\n\nbindkey '^H' backward-kill-word\nbindkey '^[[3;5~' kill-word\n\n#local WORDCHARS='*?_[]~=&;!#$%^(){}<>'\nautoload -U select-word-style\nselect-word-style bash\n\nHISTFILE=~/.zsh_history\nHISTSIZE=10000000\nSAVEHIST=10000000\nKEYTIMEOUT=5\n\n# Environment variables\nsource ~/.profile\nexport SHELL=zsh\n\nif [ \"$TERM\" = \"linux\" ]; then\n  [[ ! -f ~/.p10k-tty.zsh ]] || source ~/.p10k-tty.zsh\nelse\n  [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh\nfi\n\nsource /usr/share/zsh/plugins/zsh-autopair/autopair.zsh\nsource ~/.config/zsh/catppuccin-tty.sh\nsource /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh 2>/dev/null\nsource /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2>/dev/null\nsource /usr/share/zsh/plugins/zsh-vi-mode/zsh-vi-mode.plugin.zsh\nzvm_after_init_commands+=('source /usr/share/fzf/completion.zsh && source /usr/share/fzf/key-bindings.zsh && autopair-init')\neval \"$(zoxide init zsh)\"\nsource /usr/share/zsh/plugins/fzf-tab-git/fzf-tab.zsh 2>/dev/null\nsource /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme\n"
  },
  {
    "path": "README.md",
    "content": "<h1 align=\"center\">AmitGold's dotfiles</h1>\n<img src='.screenshot.png'>\n\n## Starring!\n\n-   **Catppuccin Mocha**\n-   **Hyprland**\n-   **Papirus Icons**\n-   **Waybar**\n-   **Firefox**\n-   **Kitty**\n-   **Neovim**\n-   **Wofi**\n\n## Installation\n\n### Desktop\n\n```\nparu -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\n```\n\n### Applications\n\n```\nparu -S thunar firefox deluge-gtk kitty wdisplays discord discocss spotify spicetify timeshift eog pavucontrol celluloid file-roller\n```\n\n### Terminal\n\n```\nparu -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\n```\n"
  }
]