summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Vink <ivi@vinkies.net>2025-12-16 21:29:14 +0100
committerMike Vink <ivi@vinkies.net>2025-12-16 21:29:14 +0100
commit3ca34b6e489e53035dc11bf32c29ec00b272ecb5 (patch)
tree9dd83feff6b020df3158690608605d0e4f6f54ca
parent20681162fb2fd22ca3892168efbc5695bec25bd8 (diff)
broot
-rw-r--r--.config/broot/conf.hjson301
-rw-r--r--.config/broot/launcher/bash/br23
-rw-r--r--.config/broot/launcher/installed-v44
-rw-r--r--.config/broot/launcher/nushell/br155
-rw-r--r--.config/broot/shortcutrc.hjson54
-rw-r--r--.config/broot/skins/catppuccin-macchiato.hjson171
-rw-r--r--.config/broot/skins/catppuccin-mocha.hjson171
-rw-r--r--.config/broot/skins/dark-blue.hjson115
-rw-r--r--.config/broot/skins/dark-gruvbox.hjson88
-rw-r--r--.config/broot/skins/dark-orange.hjson110
-rw-r--r--.config/broot/skins/native-16.hjson132
-rw-r--r--.config/broot/skins/solarized-dark.hjson66
-rw-r--r--.config/broot/skins/solarized-light.hjson118
-rw-r--r--.config/broot/skins/white.hjson84
-rw-r--r--.config/broot/test/files16
-rw-r--r--.config/broot/verbs.hjson187
-rw-r--r--.config/shell/aliasrc4
17 files changed, 1797 insertions, 2 deletions
diff --git a/.config/broot/conf.hjson b/.config/broot/conf.hjson
new file mode 100644
index 0000000..e06c22c
--- /dev/null
+++ b/.config/broot/conf.hjson
@@ -0,0 +1,301 @@
+###############################################################
+# This configuration file lets you
+# - define new commands
+# - change the shortcut or triggering keys of built-in verbs
+# - change the colors
+# - set default values for flags
+# - set special behaviors on specific paths
+# - and more...
+#
+# Configuration documentation is available at
+# https://dystroy.org/broot
+#
+# This file's format is Hjson ( https://hjson.github.io/ ). Some
+# properties are commented out. To enable them, remove the `#`.
+#
+###############################################################
+
+###############################################################
+# Default flags
+# You can set up flags you want broot to start with by
+# default, for example `default_flags="-ihp"` if you usually want
+# to see hidden and gitignored files and the permissions (then
+# if you don't want the hidden files at a specific launch,
+# you can launch broot with `br -H`).
+# A popular flag is the `g` one which displays git related info.
+#
+# default_flags:
+
+###############################################################
+# Terminal's title
+# If you want the terminal's title to be updated when you change
+# directory, set a terminal_title pattern by uncommenting one of
+# the examples below and tuning it to your taste.
+#
+# terminal_title: "[broot] {git-name}"
+# terminal_title: "{file} 🐄"
+# terminal_title: "-= {file-name} =-"
+# reset_terminal_title_on_exit: false
+
+###############################################################
+# Date/Time format
+# If you want to change the format for date/time, uncomment the
+# following line and change it according to
+# https://docs.rs/chrono/0.4.11/chrono/format/strftime/index.html
+#
+# date_time_format: %Y/%m/%d %R
+
+###############################################################
+# uncomment to activate modal mode
+#
+# (you really should read https://dystroy.org/broot/modal/
+# before as it may not suit everybody even among vim users)
+#
+# You may start either in 'command' mode, or in 'input' mode
+#
+# modal: true
+# initial_mode: command
+
+###############################################################
+# Whether to mark the selected line with a triangle
+#
+show_selection_mark: true
+
+###############################################################
+# Column order
+# cols_order, if specified, must be a permutation of the following
+# array. You should keep the name column at the end as it has a
+# variable length.
+#
+# cols_order: [
+# mark
+# git
+# size
+# permission
+# date
+# count
+# branch
+# name
+# ]
+
+###############################################################
+# True Colors
+# If this parameter isn't set, broot tries to automatically
+# determine whether true colors (24 bits) are available.
+# As this process is unreliable, you may uncomment this setting
+# and set it to false or true if you notice the colors in
+# previewed images are too off.
+#
+# true_colors: false
+
+###############################################################
+# Icons
+# If you want to display icons in broot, uncomment this line
+# (see https://dystroy.org/broot/icons for installation and
+# troubleshooting)
+#
+# icon_theme: vscode
+
+###############################################################
+# Special paths
+# If some paths must be handled specially, uncomment (and change
+# this section as per the examples)
+# Setting "list":"never" on a dir prevents broot from looking at its
+# children when searching, unless the dir is the selected root.
+# Setting "sum":"never" on a dir prevents broot from looking at its
+# children when computing the total size and count of files.
+# Setting "show":"always" makes a file visible even if its name
+# starts with a dot.
+# Setting "list":"always" may be useful on a link to a directory
+# (they're otherwise not entered by broot unless selected)
+#
+special_paths: {
+ "/media" : {
+ list: "never"
+ sum: "never"
+ }
+ "~/.config": { "show": "always" }
+ "trav": {
+ show: always
+ list: "always",
+ sum: "never"
+ }
+ # "~/useless": { "show": "never" }
+ # "~/my-link-I-want-to-explore": { "list": "always" }
+}
+
+###############################################################
+# Quit on last cancel
+# You can usually cancel the last state change on escape.
+# If you want the escape key to quit broot when there's nothing
+# to cancel (for example when you just opened broot), uncomment
+# this parameter
+#
+# quit_on_last_cancel: true
+
+###############################################################
+# Search modes
+#
+# broot allows many search modes.
+# A search mode is defined by
+# - the way to search: 'fuzzy', 'exact', 'regex', or 'tokens'.
+# - where to search: file 'name', 'path', or file 'content'
+# A search pattern may for example be "fuzzy path" (default),
+# "regex content" or "exact path".
+#
+# The search mode is selected from its prefix. For example, if
+# you type "abc", the default mode is "fuzzy path". If you type
+# "/abc", the mode is "regex path". If you type "rn/abc", the mode
+# is "regex name".
+#
+# This mapping may be modified. You may want to dedicate the
+# empty prefix (the one which doesn't need a '/') to the
+# search mode you use most often. The example below makes it
+# easy to search on name rather than on the subpath.
+#
+# More information on
+# https://dystroy.org/broot/input/#the-filtering-pattern
+#
+# search_modes: {
+# <empty>: fuzzy name
+# /: regex name
+# }
+
+###############################################################
+# File Extension Colors
+#
+# uncomment and modify the next section if you want to color
+# file name depending on their extension
+#
+# ext_colors: {
+# png: rgb(255, 128, 75)
+# rs: yellow
+# }
+
+###############################################################
+# Max file size for content search
+#
+# Bigger files are ignored when searching their content. You
+# can specify this size either in ISO units (eg 5GB) or in
+# the old binary units (eg 44Kib)
+content_search_max_file_size: 10MB
+
+###############################################################
+# Max Panels Count
+#
+# Change this if you sometimes want to have more than 2 panels
+# open
+# max_panels_count: 2
+
+###############################################################
+# Update work dir
+#
+# By default, broot process' work dir is kept in sync with the
+# current's panel root. If you want to keep it unchanged,
+# uncomment this setting
+#
+# update_work_dir: false
+
+###############################################################
+# Kitty Keyboard extension
+#
+# If you want to use advanced keyboard shortcuts in Kitty
+# compatible terminals (Kitty, Wezterm), set this to true.
+#
+# This makes it possible to use shortcuts like 'space-n',
+# 'ctrl-alt-a-b', 'shift-space', etc.
+#
+enable_kitty_keyboard: false
+
+###############################################################
+# lines around matching line in filtered preview
+#
+# When searching the content of a file, you can have either
+# only the matching lines displayed, or some of the surrounding
+# ones too.
+#
+lines_before_match_in_preview: 1
+lines_after_match_in_preview: 1
+
+###############################################################
+# transformations before preview
+#
+# It's possible to define transformations to apply to some files
+# before calling one of the default preview renderers in broot.
+# Below are two examples that you may uncomment and adapt:
+#
+preview_transformers: [
+ // # Use mutool to render any PDF file as an image
+ // # In this example we use placeholders for the input and output files
+ // {
+ // input_extensions: [ "pdf" ] // case doesn't matter
+ // output_extension: png
+ // mode: image
+ // command: [ "mutool", "draw", "-w", "1000", "-o", "{output-path}", "{input-path}" ]
+ // }
+
+ // # Use LibreOffice to render Office files as images
+ // # In this example, {output-dir} is used to specify where LibreOffice must write the result
+ // {
+ // input_extensions: [ "xls", "xlsx", "doc", "docx", "ppt", "pptx", "ods", "odt", "odp" ]
+ // output_extension: png
+ // mode: image
+ // command: [
+ // "libreoffice", "--headless",
+ // "--convert-to", "png",
+ // "--outdir", "{output-dir}",
+ // "{input-path}"
+ // ]
+ // }
+
+ // # Use jq to beautify JSON
+ // # In this example, the command refers to neither the input nor the output,
+ // # so broot pipes them to the stdin and stdout of the jq process
+ // {
+ // input_extensions: [ "json" ]
+ // output_extension: json
+ // mode: text
+ // command: [ "jq" ]
+ // }
+]
+
+###############################################################
+# Imports
+#
+# While it's possible to have all configuration in one file,
+# it's more convenient to split it in several ones.
+# Importing also allows to set a condition on the terminal's
+# color, which makes it possible to have a different skin
+# chosen when your terminal has a light background and when
+# it has a light one.
+imports: [
+
+ # Verbs are better configured in verbs.hjson. But you
+ # can also add another files for your personal verbs
+ verbs.hjson
+ shortcutrc.hjson
+
+ # This file contains the skin to use when the terminal
+ # is dark (or when this couldn't be determined)
+ {
+ luma: [
+ dark
+ unknown
+ ]
+ # (un)comment to choose your preferred skin
+ file: skins/dark-blue.hjson
+ //file: skins/catppuccin-macchiato.hjson
+ //file: skins/catppuccin-mocha.hjson
+ //file: skins/dark-gruvbox.hjson
+ //file: skins/dark-orange.hjson
+ //file: skins/solarized-dark.hjson
+ }
+
+ # This skin is imported when your terminal is light
+ {
+ luma: light
+ # (un)comment to choose your preferred skin
+ //file: skins/solarized-light.hjson
+ file: skins/white.hjson
+ }
+]
diff --git a/.config/broot/launcher/bash/br b/.config/broot/launcher/bash/br
new file mode 100644
index 0000000..f8dbe93
--- /dev/null
+++ b/.config/broot/launcher/bash/br
@@ -0,0 +1,23 @@
+
+# This script was automatically generated by the broot program
+# More information can be found in https://github.com/Canop/broot
+# This function starts broot and executes the command
+# it produces, if any.
+# It's needed because some shell commands, like `cd`,
+# have no useful effect if executed in a subshell.
+function br {
+ local cmd cmd_file code
+ cmd_file=$(mktemp)
+ if broot --listen broot --outcmd "$cmd_file" "$@"; then
+ cmd=$(<"$cmd_file")
+ command rm -f "$cmd_file"
+ eval "$cmd"
+ if [ "$KAKOUNE_SESSION" ]
+ then echo "$cmd" | kak -p "$KAKOUNE_SESSION"
+ fi
+ else
+ code=$?
+ command rm -f "$cmd_file"
+ return "$code"
+ fi
+}
diff --git a/.config/broot/launcher/installed-v4 b/.config/broot/launcher/installed-v4
new file mode 100644
index 0000000..3f026af
--- /dev/null
+++ b/.config/broot/launcher/installed-v4
@@ -0,0 +1,4 @@
+
+This file tells broot the installation of the br function was done.
+If there's a problem and you want to install it again run
+ broot -- install
diff --git a/.config/broot/launcher/nushell/br b/.config/broot/launcher/nushell/br
new file mode 100644
index 0000000..8a860f1
--- /dev/null
+++ b/.config/broot/launcher/nushell/br
@@ -0,0 +1,155 @@
+
+# Launch broot
+#
+# Examples:
+# > br -hi some/path
+# > br
+# > br -sdp
+# > br -hi -c "vacheblan.svg;:open_preview" ..
+#
+# See https://dystroy.org/broot/install-br/
+export def --env br [
+ --cmd(-c): string # Semicolon separated commands to execute
+ --color: string = "auto" # Whether to have styles and colors (auto is default and usually OK) [possible values: auto, yes, no]
+ --conf: string # Semicolon separated paths to specific config files"),
+ --dates(-d) # Show the last modified date of files and directories"
+ --no-dates(-D) # Don't show the last modified date"
+ --only-folders(-f) # Only show folders
+ --no-only-folders(-F) # Show folders and files alike
+ --show-git-info(-g) # Show git statuses on files and stats on repo
+ --no-show-git-info(-G) # Don't show git statuses on files and stats on repo
+ --git-status # Only show files having an interesting git status, including hidden ones
+ --hidden(-h) # Show hidden files
+ --listen: string # Listen for commands on a given linux socket
+ --listen-auto # Listen for commands on a random linux socket
+ --no-hidden(-H) # Don't show hidden files
+ --height: int # Height (if you don't want to fill the screen or for file export)
+ --help # Print help information
+ --git-ignored(-i) # Show git ignored files
+ --no-git-ignored(-I) # Don't show git ignored files
+ --install # Install or reinstall the br shell function
+ --no-sort # Don't sort
+ --permissions(-p) # Show permissions
+ --no-permissions(-P) # Don't show permissions
+ --print-shell-function: string # Print to stdout the br function for a given shell
+ --sizes(-s) # Show the size of files and directories
+ --no-sizes(-S) # Don't show sizes
+ --set-install-state: path # Where to write the produced cmd (if any) [possible values: undefined, refused, installed]
+ --show-root-fs # Show filesystem info on top
+ --max-depth: int # Only show trees up to a certain depth
+ --sort-by-count # Sort by count (only show one level of the tree)
+ --sort-by-date # Sort by date (only show one level of the tree)
+ --sort-by-size # Sort by size (only show one level of the tree)
+ --sort-by-type # Same as sort-by-type-dirs-first
+ --sort-by-type-dirs-first # Sort by type, directories first (only show one level of the tree)
+ --sort-by-type-dirs-last # Sort by type, directories last (only show one level of the tree)
+ --trim-root(-t) # Trim the root too and don't show a scrollbar
+ --no-trim-root(-T) # Don't trim the root level, show a scrollbar
+ --version(-V) # Print version information
+ --whale-spotting(-w) # Sort by size, show ignored and hidden files
+ --write-default-conf: path # Write default conf files in given directory
+ file?: path # Root Directory
+] {
+ mut args = []
+ if $cmd != null { $args = ($args | append $'--cmd=($cmd)') }
+ if $color != null { $args = ($args | append $'--color=($color)') }
+ if $conf != null { $args = ($args | append $'--conf=($conf)') }
+ if $dates { $args = ($args | append $'--dates') }
+ if $no_dates { $args = ($args | append $'--no-dates') }
+ if $only_folders { $args = ($args | append $'--only-folders') }
+ if $no_only_folders { $args = ($args | append $'--no-only-folders') }
+ if $show_git_info { $args = ($args | append $'--show-git-info') }
+ if $no_show_git_info { $args = ($args | append $'--no-show-git-info') }
+ if $git_status { $args = ($args | append $'--git-status') }
+ if $hidden { $args = ($args | append $'--hidden') }
+ if $no_hidden { $args = ($args | append $'--no-hidden') }
+ if $height != null { $args = ($args | append $'--height=($height)') }
+ if $help { $args = ($args | append $'--help') }
+ if $git_ignored { $args = ($args | append $'--git-ignored') }
+ if $no_git_ignored { $args = ($args | append $'--no-git-ignored') }
+ if $install { $args = ($args | append $'--install') }
+ if $listen != null { $args = ($args | append $'--listen=($listen)') }
+ if $listen_auto { $args = ($args | append $'--listen-auto') }
+ if $no_sort { $args = ($args | append $'--no-sort') }
+ if $permissions { $args = ($args | append $'--permissions') }
+ if $no_permissions { $args = ($args | append $'--no-permissions') }
+ if $print_shell_function != null { $args = ($args | append $'--print-shell-function=($print_shell_function)') }
+ if $sizes { $args = ($args | append $'--sizes') }
+ if $no_sizes { $args = ($args | append $'--no-sizes') }
+ if $set_install_state != null { $args = ($args | append $'--set-install-state=($set_install_state)') }
+ if $show_root_fs { $args = ($args | append $'--show-root-fs') }
+ if $max_depth != null { $args = ($args | append $'--max-depth=($max_depth)') }
+ if $sort_by_count { $args = ($args | append $'--sort-by-count') }
+ if $sort_by_date { $args = ($args | append $'--sort-by-date') }
+ if $sort_by_size { $args = ($args | append $'--sort-by-size') }
+ if $sort_by_type { $args = ($args | append $'--sort-by-type') }
+ if $sort_by_type_dirs_first { $args = ($args | append $'--sort-by-type-dirs-first') }
+ if $sort_by_type_dirs_last { $args = ($args | append $'--sort-by-type-dirs-last') }
+ if $trim_root { $args = ($args | append $'--trim-root') }
+ if $no_trim_root { $args = ($args | append $'--no-trim-root') }
+ if $version { $args = ($args | append $'--version') }
+ if $whale_spotting { $args = ($args | append $'--whale-spotting') }
+ if $write_default_conf != null { $args = ($args | append $'--write-default-conf=($write_default_conf)') }
+
+ let cmd_file = (
+ if ($env.XDG_RUNTIME_DIR? | is-not-empty) { $env.XDG_RUNTIME_DIR } else { $nu.temp-path }
+ | path join $"broot-(random chars).tmp"
+ )
+
+ touch $cmd_file
+ if ($file == null) {
+ ^broot --outcmd $cmd_file ...$args
+ } else {
+ ^broot --outcmd $cmd_file ...$args $file
+ }
+ let $cmd = (open $cmd_file)
+ rm -p -f $cmd_file
+
+ if (not ($cmd | lines | is-empty)) {
+ cd ($cmd | parse -r `^cd\s+(?<quote>"|'|)(?<path>.+)\k<quote>[\s\r\n]*$` | get path | to text)
+ }
+}
+
+export extern broot [
+ --cmd(-c): string # Semicolon separated commands to execute
+ --color: string = "auto" # Whether to have styles and colors (auto is default and usually OK) [possible values: auto, yes, no]
+ --conf: string # Semicolon separated paths to specific config files"),
+ --dates(-d) # Show the last modified date of files and directories"
+ --no-dates(-D) # Don't show the last modified date"
+ --only-folders(-f) # Only show folders
+ --no-only-folders(-F) # Show folders and files alike
+ --show-git-info(-g) # Show git statuses on files and stats on repo
+ --no-show-git-info(-G) # Don't show git statuses on files and stats on repo
+ --git-status # Only show files having an interesting git status, including hidden ones
+ --hidden(-h) # Show hidden files
+ --no-hidden(-H) # Don't show hidden files
+ --height: int # Height (if you don't want to fill the screen or for file export)
+ --help # Print help information
+ --git-ignored(-i) # Show git ignored files
+ --no-git-ignored(-I) # Don't show git ignored files
+ --install # Install or reinstall the br shell function
+ --listen: string # Listen for commands on a given linux socket
+ --listen-auto # Listen for commands on a random linux socket
+ --no-sort # Don't sort
+ --outcmd: path # Write cd command in given path
+ --permissions(-p) # Show permissions
+ --no-permissions(-P) # Don't show permissions
+ --print-shell-function: string # Print to stdout the br function for a given shell
+ --sizes(-s) # Show the size of files and directories
+ --no-sizes(-S) # Don't show sizes
+ --set-install-state: path # Where to write the produced cmd (if any) [possible values: undefined, refused, installed]
+ --show-root-fs # Show filesystem info on top
+ --max-depth: int # Only show trees up to a certain depth
+ --sort-by-count # Sort by count (only show one level of the tree)
+ --sort-by-date # Sort by date (only show one level of the tree)
+ --sort-by-size # Sort by size (only show one level of the tree)
+ --sort-by-type # Same as sort-by-type-dirs-first
+ --sort-by-type-dirs-first # Sort by type, directories first (only show one level of the tree)
+ --sort-by-type-dirs-last # Sort by type, directories last (only show one level of the tree)
+ --trim-root(-t) # Trim the root too and don't show a scrollbar
+ --no-trim-root(-T) # Don't trim the root level, show a scrollbar
+ --version(-V) # Print version information
+ --whale-spotting(-w) # Sort by size, show ignored and hidden files
+ --write-default-conf: path # Write default conf files in given directory
+ file?: path # Root Directory
+]
diff --git a/.config/broot/shortcutrc.hjson b/.config/broot/shortcutrc.hjson
new file mode 100644
index 0000000..765bc33
--- /dev/null
+++ b/.config/broot/shortcutrc.hjson
@@ -0,0 +1,54 @@
+verbs: [
+{invocation: "bcf", execution: ":focus /Users/ivi/.config"}
+{invocation: "bsd", execution: ":focus /Users/ivi/.local/src/dotfiles"}
+{invocation: "bD", execution: ":focus /Users/ivi/Downloads"}
+{invocation: "bd", execution: ":focus /Users/ivi/Documents"}
+{invocation: "bdt", execution: ":focus /Users/ivi/.local/share"}
+{invocation: "brr", execution: ":focus /Users/ivi/.local/src"}
+{invocation: "bh", execution: ":focus /Users/ivi"}
+{invocation: "bm", execution: ":focus /Users/ivi/Music"}
+{invocation: "bmn", execution: ":focus /mnt"}
+{invocation: "bsc", execution: ":focus /Users/ivi/.local/bin"}
+{invocation: "bsrc", execution: ":focus /Users/ivi/.local/src"}
+{invocation: "bvv", execution: ":focus /Users/ivi/Videos"}
+{invocation: "bpro", execution: ":focus /Users/ivi/Programming"}
+{invocation: "bctx", execution: ":focus /Users/ivi/.local/state/context"}
+{invocation: "bnetw", execution: ":focus /Users/ivi/Programming/Pionative/clients/viya/aws-networking"}
+{invocation: "biavpc", execution: ":focus /Users/ivi/Programming/ThirdParty/aws-ia/terraform-aws-vpc"}
+{invocation: "bhub", execution: ":focus /Users/ivi/Programming/ThirdParty/aws-ia/terraform-aws-network-hubandspoke"}
+{invocation: "bquit", execution: ":focus /Users/ivi/Programming/Pionative/quickstart/templates"}
+{invocation: "bqui", execution: ":focus /Users/ivi/Programming/Pionative/quickstart"}
+{invocation: "bpnshs", execution: ":focus /Users/ivi/Programming/Pionative/pnsh"}
+{invocation: "bpi", execution: ":focus /Users/ivi/Programming/Pionative/pistarchio"}
+{invocation: "btgw", execution: ":focus /Users/ivi/Programming/ThirdParty/terraform-aws-modules/terraform-aws-transit-gateway"}
+{invocation: "bvpc", execution: ":focus /Users/ivi/Programming/ThirdParty/terraform-aws-modules/terraform-aws-vpc"}
+{invocation: "bmy", execution: ":focus /Users/ivi/.local/share/my"}
+{invocation: "barti", execution: ":focus /Users/ivi/Programming/Pionative/quickstart/library/terraform/aws/artifacts"}
+{invocation: "baet", execution: ":focus /Users/ivi/Programming/Pionative/clients/aet/pionative-infra"}
+{invocation: "bbudapest", execution: ":focus /Users/ivi/Programming/Pionative/quickstart/environments/budapest/pionative-infra"}
+{invocation: "bcapetown", execution: ":focus /Users/ivi/Programming/Pionative/quickstart/environments/capetown/pionative-infra"}
+{invocation: "bctc", execution: ":focus /Users/ivi/Programming/Pionative/clients/ctrlchain/pionative-infra"}
+{invocation: "bcuracao", execution: ":focus /Users/ivi/Programming/Pionative/clients/curacao/pionative-infra"}
+{invocation: "beme", execution: ":focus /Users/ivi/Programming/Pionative/clients/emendis/pionative-infra"}
+{invocation: "bevr", execution: ":focus /Users/ivi/Programming/Pionative/clients/evresys/pionative-infra"}
+{invocation: "bfix", execution: ":focus /Users/ivi/Programming/Pionative/clients/fixami/pionative-infra"}
+{invocation: "bdraad", execution: ":focus /Users/ivi/Programming/Pionative/clients/draad/pionative-infra"}
+{invocation: "bgra", execution: ":focus /Users/ivi/Programming/Pionative/clients/grasp/pionative-infra"}
+{invocation: "bimp", execution: ":focus /Users/ivi/Programming/Pionative/clients/impactbuying/pionative-infra"}
+{invocation: "bkcd", execution: ":focus /Users/ivi/Programming/Pionative/clients/kingscode/pionative-infra"}
+{invocation: "bnbs", execution: ":focus /Users/ivi/Programming/Pionative/clients/nubistar/pionative-infra"}
+{invocation: "bnxta", execution: ":focus /Users/ivi/Programming/Pionative/clients/nxtagency/pionative-infra"}
+{invocation: "bsr", execution: ":focus /Users/ivi/Programming/Pionative/clients/sunrock/pionative-infra"}
+{invocation: "bsydney", execution: ":focus /Users/ivi/Programming/Pionative/quickstart/environments/sydney/pionative-infra"}
+{invocation: "btgrs", execution: ":focus /Users/ivi/Programming/Pionative/clients/taggrs/pionative-infra"}
+{invocation: "bttt", execution: ":focus /Users/ivi/Programming/Pionative/clients/333travel/pionative-infra"}
+{invocation: "bviya", execution: ":focus /Users/ivi/Programming/Pionative/clients/viya/pionative-infra"}
+{invocation: "btam", execution: ":focus /Users/ivi/Programming/ThirdParty/terraform-aws-modules"}
+{invocation: "bstacks", execution: ":focus /Users/ivi/Programming/Pionative/quickstart/stacks"}
+{invocation: "blib", execution: ":focus /Users/ivi/Programming/Pionative/quickstart/library"}
+{invocation: "blibt", execution: ":focus /Users/ivi/Programming/Pionative/quickstart/library/terraform"}
+{invocation: "blibh", execution: ":focus /Users/ivi/Programming/Pionative/quickstart/library/helm"}
+{invocation: "bgha", execution: ":focus /Users/ivi/Programming/Pionative/github-actions"}
+{invocation: "bgosrc", execution: ":focus /opt/homebrew/Cellar/go/1.24.4/libexec/src"}
+{invocation: "bthird", execution: ":focus /Users/ivi/Programming/ThirdParty"}
+]
diff --git a/.config/broot/skins/catppuccin-macchiato.hjson b/.config/broot/skins/catppuccin-macchiato.hjson
new file mode 100644
index 0000000..21a3bf1
--- /dev/null
+++ b/.config/broot/skins/catppuccin-macchiato.hjson
@@ -0,0 +1,171 @@
+###############################################################
+# A skin for a terminal with a dark background
+# This skin uses RGB values so won't work for some
+# terminals.
+#
+# Created by Majixed
+# Based on the catppuccin-mocha theme by A. Taha Baki <atahabaki@pm.me>
+#
+# Doc at https://dystroy.org/broot/skins/
+###############################################################
+
+skin: {
+ input: rgb(202, 211, 245) none
+ # fg:none bg:$surface2
+ selected_line: none rgb(91, 96, 120)
+ # fg:$text bg:none
+ default: rgb(202, 211, 245) none
+ # fg:$overlay0 bg:none
+ tree: rgb(110, 115, 141) none
+ # fg:$sapphire bg:none
+ parent: rgb(125, 196, 228) none
+ file: none none
+#
+### PERMISSIONS
+#
+ perm__: rgb(184, 192, 224) none
+ # $peach
+ perm_r: rgb(245, 169, 127) none
+ # $maroon
+ perm_w: rgb(238, 153, 160) none
+ # $green
+ perm_x: rgb(166, 218, 149) none
+ # $teal
+ owner: rgb(139, 213, 202) none
+ # $sky
+ group: rgb(145, 215, 227) none
+#
+### DATE
+#
+ # $subtext1
+ dates: rgb(184, 192, 224) none
+#
+### DIRECTORY
+#
+ # $lavender
+ directory: rgb(183, 189, 248) none Bold
+ # $green
+ exe: rgb(166, 218, 149) none
+ # $yellow
+ link: rgb(238, 212, 159) none
+ # $subtext0
+ pruning: rgb(165, 173, 203) none Italic
+#
+### PREVIEW
+#
+ # fg:$text bg:$mantle
+ preview_title: rgb(202, 211, 245) rgb(30, 32, 48)
+ # fg:$text bg:$mantle
+ preview: rgb(202, 211, 245) rgb(30, 32, 48)
+ # fg:$overlay0
+ preview_line_number: rgb(110, 115, 141) none
+ # fg:$overlay0
+ preview_separator: rgb(110, 115, 141) none
+#
+### MATCH
+#
+ char_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
+ content_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
+ preview_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
+
+ # children count
+ # fg:$yellow bg:none
+ count: rgb(238, 212, 159) none
+ sparse: rgb(237, 135, 150) none
+ content_extract: rgb(237, 135, 150) none Italic
+#
+### GIT
+#
+ git_branch: rgb(245, 169, 127) none
+ git_insertions: rgb(245, 169, 127) none
+ git_deletions: rgb(245, 169, 127) none
+ git_status_current: rgb(245, 169, 127) none
+ git_status_modified: rgb(245, 169, 127) none
+ git_status_new: rgb(245, 169, 127) none Bold
+ git_status_ignored: rgb(245, 169, 127) none
+ git_status_conflicted: rgb(245, 169, 127) none
+ git_status_other: rgb(245, 169, 127) none
+ staging_area_title: rgb(245, 169, 127) none
+#
+### FLAG
+#
+ flag_label: rgb(237, 135, 150) none
+ flag_value: rgb(237, 135, 150) none Bold
+#
+### STATUS
+#
+ # fg:none #bg:$mantle
+ status_normal: none rgb(30, 32, 48)
+ # fg:$red bg:$mantle
+ status_italic: rgb(237, 135, 150) rgb(30, 32, 48) Italic
+ # fg:$maroon bg:$mantle
+ status_bold: rgb(238, 153, 160) rgb(30, 32, 48) Bold
+ # fg:$maroon bg:$mantle
+ status_ellipsis: rgb(238, 153, 160) rgb(30, 32, 48) Bold
+ # fg:$text bg:$red
+ status_error: rgb(202, 211, 245) rgb(237, 135, 150)
+ # fg:$maroon bg:$mantle
+ status_job: rgb(238, 153, 160) rgb(40, 38, 37)
+ # fg:$maroon bg:$mantle
+ status_code: rgb(238, 153, 160) rgb(30, 32, 48) Italic
+ # fg:$maroon bg:$mantle
+ mode_command_mark: rgb(238, 153, 160) rgb(30, 32, 48) Bold
+#
+### HELP
+#
+ # fg:$text
+ help_paragraph: rgb(202, 211, 245) none
+ # fg:$red
+ help_headers: rgb(237, 135, 150) none Bold
+ # fg:$peach
+ help_bold: rgb(245, 169, 127) none Bold
+ # fg:$yellow
+ help_italic: rgb(238, 212, 159) none Italic
+ # fg:green bg:$surface0
+ help_code: rgb(166, 218, 149) rgb(54, 58, 79)
+ # fg:$overlay0
+ help_table_border: rgb(110, 115, 141) none
+#
+### HEX
+#
+ # fg:$text
+ hex_null: rgb(202, 211, 245) none
+ # fg:$peach
+ hex_ascii_graphic: rgb(245, 169, 127) none
+ # fg:$green
+ hex_ascii_whitespace: rgb(166, 218, 149) none
+ # fg: teal
+ hex_ascii_other: rgb(139, 213, 202) none
+ # fg: red
+ hex_non_ascii: rgb(237, 135, 150) none
+
+ # fg:$text bg:$red
+ file_error: rgb(243, 60, 44) none
+#
+### PURPOSE
+#
+ purpose_normal: none none
+ purpose_italic: rgb(169, 90, 127) none Italic
+ purpose_bold: rgb(169, 90, 127) none Bold
+ purpose_ellipsis: none none
+#
+### SCROLLBAR
+#
+ # fg:$surface0
+ scrollbar_track: rgb(54, 58, 79) none
+ # fg:$surface1
+ scrollbar_thumb: rgb(91, 96, 120) none
+#
+### GOODTOBAD
+#
+ good_to_bad_0: rgb(166, 218, 149) none
+ good_to_bad_1: rgb(139, 213, 202) none
+ good_to_bad_2: rgb(145, 215, 227) none
+ good_to_bad_3: rgb(125, 196, 228) none
+ good_to_bad_4: rgb(138, 173, 244) none
+ good_to_bad_5: rgb(183, 189, 248) none
+ good_to_bad_6: rgb(198, 160, 246) none
+ good_to_bad_7: rgb(245, 169, 127) none
+ good_to_bad_8: rgb(238, 153, 160) none
+ good_to_bad_9: rgb(237, 135, 150) none
+}
diff --git a/.config/broot/skins/catppuccin-mocha.hjson b/.config/broot/skins/catppuccin-mocha.hjson
new file mode 100644
index 0000000..6ac1b92
--- /dev/null
+++ b/.config/broot/skins/catppuccin-mocha.hjson
@@ -0,0 +1,171 @@
+###############################################################
+# A skin for a terminal with a dark background
+# This skin uses RGB values so won't work for some
+# terminals.
+#
+# Created by A. Taha Baki <atahabaki@pm.me>
+# Based on the built-in gruvbox theme.
+#
+# Doc at https://dystroy.org/broot/skins/
+###############################################################
+
+skin: {
+ input: rgb(205, 214, 244) none
+ # fg:none bg:$surface2
+ selected_line: none rgb(88, 91, 112)
+ # fg:$text bg:none
+ default: rgb(205, 214, 244) none
+ # fg:$overlay0 bg:none
+ tree: rgb(108, 112, 134) none
+ # fg:$sapphire bg:none
+ parent: rgb(116, 199, 236) none
+ file: none none
+#
+### PERMISSIONS
+#
+ perm__: rgb(186, 194, 222) none
+ # $peach
+ perm_r: rgb(250, 179, 135) none
+ # $maroon
+ perm_w: rgb(235, 160, 172) none
+ # $green
+ perm_x: rgb(166, 227, 161) none
+ # $teal
+ owner: rgb(148, 226, 213) none
+ # $sky
+ group: rgb(137, 220, 235) none
+#
+### DATE
+#
+ # $subtext1
+ dates: rgb(186, 194, 222) none
+#
+### DIRECTORY
+#
+ # $lavender
+ directory: rgb(180, 190, 254) none Bold
+ # $green
+ exe: rgb(166, 227, 161) none
+ # $yellow
+ link: rgb(249, 226, 175) none
+ # $subtext0
+ pruning: rgb(166, 173, 200) none Italic
+#
+### PREVIEW
+#
+ # fg:$text bg:$mantle
+ preview_title: rgb(205, 214, 244) rgb(24, 24, 37)
+ # fg:$text bg:$mantle
+ preview: rgb(205, 214, 244) rgb(24, 24, 37)
+ # fg:$overlay0
+ preview_line_number: rgb(108, 112, 134) none
+ # fg:$overlay0
+ preview_separator: rgb(108, 112, 134) none
+#
+### MATCH
+#
+ char_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
+ content_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
+ preview_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
+
+ # children count
+ # fg:$yellow bg:none
+ count: rgb(249, 226, 175) none
+ sparse: rgb(243, 139, 168) none
+ content_extract: rgb(243, 139, 168) none Italic
+#
+### GIT
+#
+ git_branch: rgb(250, 179, 135) none
+ git_insertions: rgb(250, 179, 135) none
+ git_deletions: rgb(250, 179, 135) none
+ git_status_current: rgb(250, 179, 135) none
+ git_status_modified: rgb(250, 179, 135) none
+ git_status_new: rgb(250, 179, 135) none Bold
+ git_status_ignored: rgb(250, 179, 135) none
+ git_status_conflicted: rgb(250, 179, 135) none
+ git_status_other: rgb(250, 179, 135) none
+ staging_area_title: rgb(250, 179, 135) none
+#
+### FLAG
+#
+ flag_label: rgb(243, 139, 168) none
+ flag_value: rgb(243, 139, 168) none Bold
+#
+### STATUS
+#
+ # fg:none #bg:$mantle
+ status_normal: none rgb(24, 24, 37)
+ # fg:$red bg:$mantle
+ status_italic: rgb(243, 139, 168) rgb(24, 24, 37) Italic
+ # fg:$maroon bg:$mantle
+ status_bold: rgb(235, 160, 172) rgb(24, 24, 37) Bold
+ # fg:$maroon bg:$mantle
+ status_ellipsis: rgb(235, 160, 172) rgb(24, 24, 37) Bold
+ # fg:$text bg:$red
+ status_error: rgb(205, 214, 244) rgb(243, 139, 168)
+ # fg:$maroon bg:$mantle
+ status_job: rgb(235, 160, 172) rgb(40, 38, 37)
+ # fg:$maroon bg:$mantle
+ status_code: rgb(235, 160, 172) rgb(24, 24, 37) Italic
+ # fg:$maroon bg:$mantle
+ mode_command_mark: rgb(235, 160, 172) rgb(24, 24, 37) Bold
+#
+### HELP
+#
+ # fg:$text
+ help_paragraph: rgb(205, 214, 244) none
+ # fg:$red
+ help_headers: rgb(243, 139, 168) none Bold
+ # fg:$peach
+ help_bold: rgb(250, 179, 135) none Bold
+ # fg:$yellow
+ help_italic: rgb(249, 226, 175) none Italic
+ # fg:green bg:$surface0
+ help_code: rgb(166, 227, 161) rgb(49, 50, 68)
+ # fg:$overlay0
+ help_table_border: rgb(108, 112, 134) none
+#
+### HEX
+#
+ # fg:$text
+ hex_null: rgb(205, 214, 244) none
+ # fg:$peach
+ hex_ascii_graphic: rgb(250, 179, 135) none
+ # fg:$green
+ hex_ascii_whitespace: rgb(166, 227, 161) none
+ # fg: teal
+ hex_ascii_other: rgb(148, 226, 213) none
+ # fg: red
+ hex_non_ascii: rgb(243, 139, 168) none
+
+ # fg:$text bg:$red
+ file_error: rgb(251, 73, 52) none
+#
+### PURPOSE
+#
+ purpose_normal: none none
+ purpose_italic: rgb(177, 98, 134) none Italic
+ purpose_bold: rgb(177, 98, 134) none Bold
+ purpose_ellipsis: none none
+#
+### SCROLLBAR
+#
+ # fg:$surface0
+ scrollbar_track: rgb(49, 50, 68) none
+ # fg:$surface1
+ scrollbar_thumb: rgb(88, 91, 112) none
+#
+### GOODTOBAD
+#
+ good_to_bad_0: rgb(166, 227, 161) none
+ good_to_bad_1: rgb(148, 226, 213) none
+ good_to_bad_2: rgb(137, 220, 235) none
+ good_to_bad_3: rgb(116, 199, 236) none
+ good_to_bad_4: rgb(137, 180, 250) none
+ good_to_bad_5: rgb(180, 190, 254) none
+ good_to_bad_6: rgb(203, 166, 247) none
+ good_to_bad_7: rgb(250, 179, 135) none
+ good_to_bad_8: rgb(235, 160, 172) none
+ good_to_bad_9: rgb(243, 139, 168) none
+}
diff --git a/.config/broot/skins/dark-blue.hjson b/.config/broot/skins/dark-blue.hjson
new file mode 100644
index 0000000..6516a6e
--- /dev/null
+++ b/.config/broot/skins/dark-blue.hjson
@@ -0,0 +1,115 @@
+###############################################################
+# A skin for a terminal with a dark background
+#
+# To create your own skin, copy this file, change the entries
+# and import your skin file from the main conf file (look
+# for "imports")
+#
+# Doc at https://dystroy.org/broot/skins/
+###############################################################
+
+###############################################################
+# Skin
+# If you want to change the colors of broot,
+# uncomment the following block and start messing
+# with the various values.
+# A skin entry value is made of two parts separated with a '/':
+# The first one is the skin for the active panel.
+# The second one, optional, is the skin for non active panels.
+# You may find explanations and other skins on
+# https://dystroy.org/broot/skins
+###############################################################
+skin: {
+ default: gray(22) none / gray(20) none
+ tree: gray(8) None / gray(4) None
+ parent: gray(18) None / gray(13) None
+ file: gray(22) None / gray(15) None
+ directory: ansi(110) None bold / ansi(110) None
+ exe: Cyan None
+ link: Magenta None
+ pruning: gray(12) None Italic
+ perm__: gray(5) None
+ perm_r: ansi(94) None
+ perm_w: ansi(132) None
+ perm_x: ansi(65) None
+ owner: ansi(138) None
+ group: ansi(131) None
+ count: ansi(138) gray(4)
+ dates: ansi(66) None
+ sparse: ansi(214) None
+ content_extract: ansi(29) None
+ content_match: ansi(34) None
+ device_id_major: ansi(138) None
+ device_id_sep: ansi(102) None
+ device_id_minor: ansi(138) None
+ git_branch: ansi(178) None
+ git_insertions: ansi(28) None
+ git_deletions: ansi(160) None
+ git_status_current: gray(5) None
+ git_status_modified: ansi(28) None
+ git_status_new: ansi(94) None bold
+ git_status_ignored: gray(17) None
+ git_status_conflicted: ansi(88) None
+ git_status_other: ansi(88) None
+ selected_line: None gray(6) / None gray(4)
+ char_match: Green None
+ file_error: Red None
+ flag_label: gray(15) gray(2)
+ flag_value: ansi(178) gray(2) bold
+ input: White gray(2) / gray(15) None
+ status_error: gray(22) ansi(124)
+ status_job: ansi(220) gray(5)
+ status_normal: gray(20) gray(4) / gray(2) gray(2)
+ status_italic: ansi(178) gray(4) / gray(2) gray(2)
+ status_bold: ansi(178) gray(4) bold / gray(2) gray(2)
+ status_code: ansi(229) gray(4) / gray(2) gray(2)
+ status_ellipsis: gray(19) gray(1) / gray(2) gray(2)
+ purpose_normal: gray(20) gray(2)
+ purpose_italic: ansi(178) gray(2)
+ purpose_bold: ansi(178) gray(2) bold
+ purpose_ellipsis: gray(20) gray(2)
+ scrollbar_track: gray(7) None / gray(4) None
+ scrollbar_thumb: gray(22) None / gray(14) None
+ help_paragraph: gray(20) None
+ help_bold: ansi(178) None bold
+ help_italic: ansi(229) None
+ help_code: gray(21) gray(3)
+ help_headers: ansi(178) None
+ help_table_border: ansi(239) None
+ preview: gray(20) gray(1) / gray(18) gray(2)
+ preview_title: gray(23) gray(2) / gray(21) gray(2)
+ preview_line_number: gray(12) gray(3)
+ preview_separator: gray(5) None
+ preview_match: None ansi(29)
+ hex_null: gray(8) None
+ hex_ascii_graphic: gray(18) None
+ hex_ascii_whitespace: ansi(143) None
+ hex_ascii_other: ansi(215) None
+ hex_non_ascii: ansi(167) None
+ staging_area_title: gray(22) gray(2) / gray(20) gray(3)
+ mode_command_mark: gray(5) ansi(204) bold
+ good_to_bad_0: ansi(28)
+ good_to_bad_1: ansi(29)
+ good_to_bad_2: ansi(29)
+ good_to_bad_3: ansi(29)
+ good_to_bad_4: ansi(29)
+ good_to_bad_5: ansi(100)
+ good_to_bad_6: ansi(136)
+ good_to_bad_7: ansi(172)
+ good_to_bad_8: ansi(166)
+ good_to_bad_9: ansi(196)
+}
+
+###############################################################
+# Syntax Theme
+#
+# If you want to choose the theme used for preview, uncomment
+# one of the following lines:
+#
+# syntax_theme: GitHub
+# syntax_theme: SolarizedDark
+# syntax_theme: SolarizedLight
+syntax_theme: MochaDark
+# syntax_theme: OceanDark
+# syntax_theme: OceanLight
+
diff --git a/.config/broot/skins/dark-gruvbox.hjson b/.config/broot/skins/dark-gruvbox.hjson
new file mode 100644
index 0000000..77232ec
--- /dev/null
+++ b/.config/broot/skins/dark-gruvbox.hjson
@@ -0,0 +1,88 @@
+###############################################################
+# A skin for a terminal with a dark background
+# This skin uses RGB values so won't work for some
+# terminals.
+#
+#
+# (initially contributed by @basbebe)
+#
+# Doc at https://dystroy.org/broot/skins/
+###############################################################
+
+skin: {
+ default: rgb(235, 219, 178) none / rgb(189, 174, 147) none
+ tree: rgb(70, 70, 80) None / rgb(60, 60, 60) None
+ parent: rgb(235, 219, 178) none / rgb(189, 174, 147) none Italic
+ file: None None / None None Italic
+ directory: rgb(131, 165, 152) None Bold / rgb(131, 165, 152) None
+ exe: rgb(184, 187, 38) None
+ link: rgb(104, 157, 106) None
+ pruning: rgb(124, 111, 100) None Italic
+ perm__: None None
+ perm_r: rgb(215, 153, 33) None
+ perm_w: rgb(204, 36, 29) None
+ perm_x: rgb(152, 151, 26) None
+ owner: rgb(215, 153, 33) None Bold
+ group: rgb(215, 153, 33) None
+ count: rgb(69, 133, 136) rgb(50, 48, 47)
+ dates: rgb(168, 153, 132) None
+ sparse: rgb(250, 189,47) None
+ content_extract: ansi(29) None Italic
+ content_match: ansi(34) None Bold
+ git_branch: rgb(251, 241, 199) None
+ git_insertions: rgb(152, 151, 26) None
+ git_deletions: rgb(190, 15, 23) None
+ git_status_current: rgb(60, 56, 54) None
+ git_status_modified: rgb(152, 151, 26) None
+ git_status_new: rgb(104, 187, 38) None Bold
+ git_status_ignored: rgb(213, 196, 161) None
+ git_status_conflicted: rgb(204, 36, 29) None
+ git_status_other: rgb(204, 36, 29) None
+ selected_line: None rgb(60, 56, 54) / None rgb(50, 48, 47)
+ char_match: rgb(250, 189, 47) None
+ file_error: rgb(251, 73, 52) None
+ flag_label: rgb(189, 174, 147) None
+ flag_value: rgb(211, 134, 155) None Bold
+ input: rgb(251, 241, 199) None / rgb(189, 174, 147) None Italic
+ status_error: rgb(213, 196, 161) rgb(204, 36, 29)
+ status_job: rgb(250, 189, 47) rgb(60, 56, 54)
+ status_normal: None rgb(40, 38, 37) / None None
+ status_italic: rgb(211, 134, 155) rgb(40, 38, 37) Italic / None None
+ status_bold: rgb(211, 134, 155) rgb(40, 38, 37) Bold / None None
+ status_code: rgb(251, 241, 199) rgb(40, 38, 37) / None None
+ status_ellipsis: rgb(251, 241, 199) rgb(40, 38, 37) Bold / None None
+ purpose_normal: None None
+ purpose_italic: rgb(177, 98, 134) None Italic
+ purpose_bold: rgb(177, 98, 134) None Bold
+ purpose_ellipsis: None None
+ scrollbar_track: rgb(80, 73, 69) None / rgb(50, 48, 47) None
+ scrollbar_thumb: rgb(213, 196, 161) None / rgb(102, 92, 84) None
+ help_paragraph: None None
+ help_bold: rgb(214, 93, 14) None Bold
+ help_italic: rgb(211, 134, 155) None Italic
+ help_code: rgb(142, 192, 124) rgb(50, 48, 47)
+ help_headers: rgb(254, 128, 25) None Bold
+ help_table_border: rgb(80, 73, 69) None
+ preview_title: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(189, 174, 147) rgb(40, 40, 40)
+ preview: rgb(235, 219, 178) None / rgb(235, 219, 178) None
+ preview_line_number: rgb(124, 111, 100) rgb(40, 40, 40) / rgb(124, 111, 100) None
+ preview_separator: rgb(70, 70, 80) None / rgb(60, 60, 60) None
+ preview_match: None ansi(29) Bold
+ hex_null: rgb(189, 174, 147) None
+ hex_ascii_graphic: rgb(213, 196, 161) None
+ hex_ascii_whitespace: rgb(152, 151, 26) None
+ hex_ascii_other: rgb(254, 128, 25) None
+ hex_non_ascii: rgb(214, 93, 14) None
+ staging_area_title: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(189, 174, 147) rgb(40, 40, 40)
+ mode_command_mark: gray(5) ansi(204) Bold
+ good_to_bad_0: ansi(28)
+ good_to_bad_1: ansi(29)
+ good_to_bad_2: ansi(29)
+ good_to_bad_3: ansi(29)
+ good_to_bad_4: ansi(29)
+ good_to_bad_5: ansi(100)
+ good_to_bad_6: ansi(136)
+ good_to_bad_7: ansi(172)
+ good_to_bad_8: ansi(166)
+ good_to_bad_9: ansi(196)
+}
diff --git a/.config/broot/skins/dark-orange.hjson b/.config/broot/skins/dark-orange.hjson
new file mode 100644
index 0000000..f56f5a9
--- /dev/null
+++ b/.config/broot/skins/dark-orange.hjson
@@ -0,0 +1,110 @@
+###############################################################
+# A skin for a terminal with a dark background
+#
+# To create your own skin, copy this file, change the entries
+# and import your skin file from the main conf file (look
+# for "imports")
+#
+# Doc at https://dystroy.org/broot/skins/
+###############################################################
+
+###############################################################
+# Skin
+# If you want to change the colors of broot,
+# uncomment the following bloc and start messing
+# with the various values.
+# A skin entry value is made of two parts separated with a '/':
+# The first one is the skin for the active panel.
+# The second one, optional, is the skin for non active panels.
+# You may find explanations and other skins on
+# https://dystroy.org/broot/skins
+###############################################################
+skin: {
+ default: none none / gray(20) none
+ tree: ansi(94) None / gray(3) None
+ parent: gray(18) None / gray(13) None
+ file: gray(20) None / gray(15) None
+ directory: ansi(208) None Bold / ansi(172) None bold
+ exe: Cyan None
+ link: Magenta None
+ pruning: gray(12) None Italic
+ perm__: gray(5) None
+ perm_r: ansi(94) None
+ perm_w: ansi(132) None
+ perm_x: ansi(65) None
+ owner: ansi(138) None
+ group: ansi(131) None
+ count: ansi(136) gray(3)
+ dates: ansi(66) None
+ sparse: ansi(214) None
+ content_extract: ansi(29) None
+ content_match: ansi(34) None
+ git_branch: ansi(229) None
+ git_insertions: ansi(28) None
+ git_deletions: ansi(160) None
+ git_status_current: gray(5) None
+ git_status_modified: ansi(28) None
+ git_status_new: ansi(94) None Bold
+ git_status_ignored: gray(17) None
+ git_status_conflicted: ansi(88) None
+ git_status_other: ansi(88) None
+ selected_line: None gray(5) / None gray(4)
+ char_match: Yellow None
+ file_error: Red None
+ flag_label: gray(15) None
+ flag_value: ansi(208) None Bold
+ input: White None / gray(15) gray(2)
+ status_error: gray(22) ansi(124)
+ status_job: ansi(220) gray(5)
+ status_normal: gray(20) gray(3) / gray(2) gray(2)
+ status_italic: ansi(208) gray(3) / gray(2) gray(2)
+ status_bold: ansi(208) gray(3) Bold / gray(2) gray(2)
+ status_code: ansi(229) gray(3) / gray(2) gray(2)
+ status_ellipsis: gray(19) gray(1) / gray(2) gray(2)
+ purpose_normal: gray(20) gray(2)
+ purpose_italic: ansi(178) gray(2)
+ purpose_bold: ansi(178) gray(2) Bold
+ purpose_ellipsis: gray(20) gray(2)
+ scrollbar_track: gray(7) None / gray(4) None
+ scrollbar_thumb: gray(22) None / gray(14) None
+ help_paragraph: gray(20) None
+ help_bold: ansi(208) None Bold
+ help_italic: ansi(166) None
+ help_code: gray(21) gray(3)
+ help_headers: ansi(208) None
+ help_table_border: ansi(239) None
+ preview: gray(20) gray(1) / gray(18) gray(2)
+ preview_line_number: gray(12) gray(3)
+ preview_separator: ansi(94) None / gray(3) None
+ preview_match: None ansi(29)
+ hex_null: gray(11) None
+ hex_ascii_graphic: gray(18) None
+ hex_ascii_whitespace: ansi(143) None
+ hex_ascii_other: ansi(215) None
+ hex_non_ascii: ansi(167) None
+ good_to_bad_0: ansi(28)
+ good_to_bad_1: ansi(29)
+ good_to_bad_2: ansi(29)
+ good_to_bad_3: ansi(29)
+ good_to_bad_4: ansi(29)
+ good_to_bad_5: ansi(100)
+ good_to_bad_6: ansi(136)
+ good_to_bad_7: ansi(172)
+ good_to_bad_8: ansi(166)
+ good_to_bad_9: ansi(196)
+}
+
+
+###############################################################
+# Syntax Theme
+#
+# If you want to choose the theme used for preview, uncomment
+# one of the following lines:
+#
+# syntax_theme: GitHub
+syntax_theme: SolarizedDark
+# syntax_theme: SolarizedLight
+# syntax_theme: MochaDark
+# syntax_theme: OceanDark
+# syntax_theme: OceanLight
+
diff --git a/.config/broot/skins/native-16.hjson b/.config/broot/skins/native-16.hjson
new file mode 100644
index 0000000..a220c10
--- /dev/null
+++ b/.config/broot/skins/native-16.hjson
@@ -0,0 +1,132 @@
+###############################################################
+# 16 ANSI color theme. Colors in this theme are restricted from
+# ANSI color 0 - 15. This will allow the theme to adapt to your
+# terminal emulator's theme. Note that, for now, the preview
+# mode does not yet support this theme because of syntect not
+# having a 16 ansi color theme.
+#
+# More info at https://jeffkreeftmeijer.com/vim-16-color/
+# Doc at https://dystroy.org/broot/skins/
+###############################################################
+
+skin: {
+ directory: ansi(12)
+ file: ansi(7)
+ pruning: ansi(8) none italic
+ selected_line: none ansi(0)
+ tree: ansi(8)
+
+ # Search
+ char_match: ansi(3) none underlined
+ parent: ansi(4) none bold
+
+ # File properties
+ exe: ansi(2)
+ link: ansi(13)
+ sparse: ansi(12)
+
+ # Prompt
+ input: ansi(6)
+
+ # Status bar
+ status_bold: ansi(7) ansi(8) bold
+ status_code: ansi(10) ansi(8)
+ status_ellipsis: ansi(7) ansi(8)
+ status_error: ansi(7) ansi(8)
+ status_italic: ansi(7) ansi(8) italic
+ status_job: ansi(7) ansi(8)
+ status_normal: ansi(7) ansi(8)
+
+ # Flag status
+ flag_label: ansi(6)
+ flag_value: ansi(14) none bold
+
+ # Background
+ default: none none
+
+ # Scrollbar
+ scrollbar_track: ansi(0)
+ scrollbar_thumb: ansi(3)
+
+ # Git
+ git_branch: ansi(13)
+ git_deletions: ansi(1)
+ git_insertions: ansi(2)
+ git_status_conflicted: ansi(1)
+ git_status_current: ansi(6)
+ git_status_ignored: ansi(8)
+ git_status_modified: ansi(3)
+ git_status_new: ansi(2) none bold
+ git_status_other: ansi(5)
+
+ # Staging area
+ staging_area_title: ansi(3)
+
+ # Documentation
+ help_bold: ansi(7) none bold
+ help_code: ansi(4)
+ help_headers: ansi(3)
+ help_italic: ansi(7) none italic
+ help_paragraph: ansi(7)
+ help_table_border: ansi(8)
+
+ # Device column
+ device_id_major: ansi(5)
+ device_id_minor: ansi(5)
+ device_id_sep: ansi(5)
+
+ # Counts column
+ count: ansi(13)
+
+ # Dates column
+ dates: ansi(6)
+
+ # Permissions column
+ group: ansi(3)
+ owner: ansi(3)
+ perm__: ansi(8)
+ perm_r: ansi(3)
+ perm_w: ansi(1)
+ perm_x: ansi(2)
+
+ # Hex preview
+ hex_null: ansi(8)
+ hex_ascii_graphic: ansi(2)
+ hex_ascii_whitespace: ansi(3)
+ hex_ascii_other: ansi(4)
+ hex_non_ascii: ansi(5)
+
+ # Preview
+ # preview: none
+ # preview_line_number: none
+ # preview_match: none
+ # preview_title: none
+
+ # Used for displaying errors
+ file_error: ansi(1)
+
+ # Content searches
+ content_extract: ansi(7)
+ content_match: ansi(3) none underlined
+
+ # Used in status line
+ purpose_bold: ansi(0) ansi(7) bold
+ purpose_ellipsis: ansi(0)
+ purpose_italic: ansi(0) ansi(7) italic
+ purpose_normal: ansi(0)
+
+ # Modal indicator
+ mode_command_mark: ansi(7) ansi(4)
+
+ # File system occupation
+ good_to_bad_0: ansi(2)
+ good_to_bad_1: ansi(2)
+ good_to_bad_2: ansi(2)
+ good_to_bad_3: ansi(2)
+ good_to_bad_4: ansi(2)
+ good_to_bad_5: ansi(1)
+ good_to_bad_6: ansi(1)
+ good_to_bad_7: ansi(1)
+ good_to_bad_8: ansi(1)
+ good_to_bad_9: ansi(1)
+}
diff --git a/.config/broot/skins/solarized-dark.hjson b/.config/broot/skins/solarized-dark.hjson
new file mode 100644
index 0000000..fdea579
--- /dev/null
+++ b/.config/broot/skins/solarized-dark.hjson
@@ -0,0 +1,66 @@
+// contributed by [@danieltrautmann](https://github.com/danieltrautmann)
+//
+//
+// The Solarized Dark skin uses RGB values, so it might not work well with some
+// terminals
+//
+// Doc at https://dystroy.org/broot/skins/
+
+skin: {
+ default: "rgb(131, 148, 150) rgb(0, 43, 54) / rgb(131, 148, 150) rgb(7, 54, 66)" // base0 base03 / base01 base02
+ tree: "rgb(88, 110, 117) none" // base01 default
+ file: "none none" // default default
+ directory: "rgb(38, 139, 210) none bold" // blue default bold
+ exe: "rgb(211, 1, 2) none" // red default
+ link: "rgb(211, 54, 130) none" // magenta default
+ pruning: "rgb(88, 110, 117) none italic" // base01 default italic
+ perm__: "rgb(88, 110, 117) none" // base01 default
+ perm_r: "none none" // default default
+ perm_w: "none none" // default default
+ perm_x: "none none" // default default
+ owner: "rgb(88, 110, 117) none" // base01 default
+ group: "rgb(88, 110, 117) none" // base01 default
+ sparse: "none none" // default default
+ git_branch: "rgb(147, 161, 161) none" // base1 default
+ git_insertions: "rgb(133, 153, 0) none" // green default
+ git_deletions: "rgb(211, 1, 2) none" // red default
+ git_status_current: "none none" // default default
+ git_status_modified: "rgb(181, 137, 0) none" // yellow default
+ git_status_new: "rgb(133, 153, 0) none" // green default
+ git_status_ignored: "rgb(88, 110, 117) none" // base01 default
+ git_status_conflicted: "rgb(211, 1, 2) none" // red default
+ git_status_other: "rgb(211, 1, 2) none" // red default
+ selected_line: "none rgb(7, 54, 66)" // default base02
+ char_match: "rgb(133, 153, 0) none underlined" // green default underlined
+ file_error: "rgb(203, 75, 22) none italic" // orange default italic
+ flag_label: "none none" // default default
+ flag_value: "rgb(181, 137, 0) none bold" // yellow default bold
+ input: "none none" // default default
+ status_error: "rgb(203, 75, 22) rgb(7, 54, 66)" // orange base02
+ status_job: "rgb(108, 113, 196) rgb(7, 54, 66) bold" // violet base02 bold
+ status_normal: "none rgb(7, 54, 66)" // default base02
+ status_italic: "rgb(181, 137, 0) rgb(7, 54, 66)" // yellow base02
+ status_bold: "rgb(147, 161, 161) rgb(7, 54, 66) bold" // base1 base02 bold
+ status_code: "rgb(108, 113, 196) rgb(7, 54, 66)" // violet base02
+ status_ellipsis: "none rgb(7, 54, 66)" // default base02
+ scrollbar_track: "rgb(7, 54, 66) none" // base02 default
+ scrollbar_thumb: "none none" // default default
+ help_paragraph: "none none" // default default
+ help_bold: "rgb(147, 161, 161) none bold" // base1 default bold
+ help_italic: "rgb(147, 161, 161) none italic" // base1 default italic
+ help_code: "rgb(147, 161, 161) rgb(7, 54, 66)" // base1 base02
+ help_headers: "rgb(181, 137, 0) none" // yellow default
+ help_table_border: "none none" // default default
+ preview_title: "gray(20) rgb(0, 43, 54)"
+ staging_area_title: "gray(22) rgb(0, 43, 54)"
+ good_to_bad_0: "ansi(28)" // green
+ good_to_bad_1: "ansi(29)"
+ good_to_bad_2: "ansi(29)"
+ good_to_bad_3: "ansi(29)"
+ good_to_bad_4: "ansi(29)"
+ good_to_bad_5: "ansi(100)"
+ good_to_bad_6: "ansi(136)"
+ good_to_bad_7: "ansi(172)"
+ good_to_bad_8: "ansi(166)"
+ good_to_bad_9: "ansi(196)" // red
+}
diff --git a/.config/broot/skins/solarized-light.hjson b/.config/broot/skins/solarized-light.hjson
new file mode 100644
index 0000000..6e19275
--- /dev/null
+++ b/.config/broot/skins/solarized-light.hjson
@@ -0,0 +1,118 @@
+// contributed by [@danieltrautmann](https://github.com/danieltrautmann)
+//
+//
+// The Solarized Light skin uses RGB values, so it might not work well with some
+// terminals
+//
+// If you prefer to keep the background the same as your terminal background, change
+// the "default" entry to
+// default: "none none / rgb(147, 161, 161) none"
+//
+// Doc at https://dystroy.org/broot/skins/
+
+skin: {
+ // base00 default / base1 base2
+ default: "rgb(101, 123, 131) none / rgb(147, 161, 161) none"
+ // base1 default
+ tree: "rgb(147, 161, 161) none"
+ // default default
+ file: "none none"
+ // blue default bold
+ directory: "rgb(38, 139, 210) none bold"
+ // red default
+ exe: "rgb(211, 1, 2) none"
+ // magenta default
+ link: "rgb(211, 54, 130) none"
+ // base1 default italic
+ pruning: "rgb(147, 161, 161) none italic"
+ // base1 default
+ perm__: "rgb(147, 161, 161) none"
+ // default default
+ perm_r: "none none"
+ // default default
+ perm_w: "none none"
+ // default default
+ perm_x: "none none"
+ // base1 default
+ owner: "rgb(147, 161, 161) none"
+ // base1 default
+ group: "rgb(147, 161, 161) none"
+ // default default
+ sparse: "none none"
+ // base01 default
+ git_branch: "rgb(88, 110, 117) none"
+ // green default
+ git_insertions: "rgb(133, 153, 0) none"
+ // red default
+ git_deletions: "rgb(211, 1, 2) none"
+ // default default
+ git_status_current: "none none"
+ // yellow default
+ git_status_modified: "rgb(181, 137, 0) none"
+ // green default
+ git_status_new: "rgb(133, 153, 0) none"
+ // base1 default
+ git_status_ignored: "rgb(147, 161, 161) none"
+ // red default
+ git_status_conflicted: "rgb(211, 1, 2) none"
+ // red default
+ git_status_other: "rgb(211, 1, 2) none"
+ // default base2
+ selected_line: "none rgb(238, 232, 213)"
+ // green default underlined
+ char_match: "rgb(133, 153, 0) none underlined"
+ // orange default italic
+ file_error: "rgb(203, 75, 22) none italic"
+ // default default
+ flag_label: "none none"
+ // yellow default bold
+ flag_value: "rgb(181, 137, 0) none bold"
+ // default default
+ input: "none none"
+ // orange base2
+ status_error: "rgb(203, 75, 22) rgb(238, 232, 213)"
+ // violet base2 bold
+ status_job: "rgb(108, 113, 196) rgb(238, 232, 213) bold"
+ // default base2
+ status_normal: "none rgb(238, 232, 213)"
+ // yellow base2
+ status_italic: "rgb(181, 137, 0) rgb(238, 232, 213)"
+ // base01 base2 bold
+ status_bold: "rgb(88, 110, 117) rgb(238, 232, 213) bold"
+ // violet base2
+ status_code: "rgb(108, 113, 196) rgb(238, 232, 213)"
+ // default base2
+ status_ellipsis: "none rgb(238, 232, 213)"
+ // base2 default
+ scrollbar_track: "rgb(238, 232, 213) none"
+ // default default
+ scrollbar_thumb: "none none"
+ // default default
+ help_paragraph: "none none"
+ // base01 default bold
+ help_bold: "rgb(88, 110, 117) none bold"
+ // base01 default italic
+ help_italic: "rgb(88, 110, 117) none italic"
+ // base01 base2
+ help_code: "rgb(88, 110, 117) rgb(238, 232, 213)"
+ // yellow default
+ help_headers: "rgb(181, 137, 0) none"
+ // default default
+ help_table_border: "none none"
+ preview_title: "rgb(147, 161, 161) rgb(238, 232, 213)"
+ preview: "rgb(101, 123, 131) rgb(253, 246, 227) / rgb(147, 161, 161) rgb(238, 232, 213)"
+ preview_line_number: "rgb(147, 161, 161) rgb(238, 232, 213)"
+ preview_separator: "rgb(147, 161, 161) rgb(238, 232, 213)"
+ preview_match: "None ansi(29)"
+ staging_area_title: "gray(22) rgb(253, 246, 227)"
+ good_to_bad_0: ansi(28)
+ good_to_bad_1: ansi(29)
+ good_to_bad_2: ansi(29)
+ good_to_bad_3: ansi(29)
+ good_to_bad_4: ansi(29)
+ good_to_bad_5: ansi(100)
+ good_to_bad_6: ansi(136)
+ good_to_bad_7: ansi(172)
+ good_to_bad_8: ansi(166)
+ good_to_bad_9: ansi(196)
+}
diff --git a/.config/broot/skins/white.hjson b/.config/broot/skins/white.hjson
new file mode 100644
index 0000000..908e648
--- /dev/null
+++ b/.config/broot/skins/white.hjson
@@ -0,0 +1,84 @@
+###############################################################
+# A skin for a terminal with a white background
+#
+# To create your own skin, copy this file, change the entries
+# and import your skin file from the main conf file (look
+# for "imports")
+#
+# Doc at https://dystroy.org/broot/skins/
+###############################################################
+syntax_theme: base16-ocean.light
+
+skin: {
+ default: gray(1) None
+ tree: gray(7) None / gray(18) None
+ file: gray(3) None / gray(8) None
+ directory: ansi(25) None Bold / ansi(25) None
+ exe: ansi(130) None
+ link: Magenta None
+ pruning: gray(12) None Italic
+ perm__: gray(5) None
+ perm_r: ansi(94) None
+ perm_w: ansi(132) None
+ perm_x: ansi(65) None
+ owner: ansi(138) None
+ group: ansi(131) None
+ dates: ansi(66) None
+ sparse: ansi(214) None
+ git_branch: ansi(229) None
+ git_insertions: ansi(28) None
+ git_deletions: ansi(160) None
+ git_status_current: gray(5) None
+ git_status_modified: ansi(28) None
+ git_status_new: ansi(94) None Bold
+ git_status_ignored: gray(17) None
+ git_status_conflicted: ansi(88) None
+ git_status_other: ansi(88) None
+ selected_line: None gray(19) / None gray(21)
+ char_match: ansi(22) None
+ file_error: Red None
+ flag_label: gray(9) None
+ flag_value: ansi(166) None Bold
+ input: gray(1) None / gray(4) gray(20)
+ status_error: gray(22) ansi(124)
+ status_normal: gray(2) gray(20)
+ status_job: ansi(220) gray(5)
+ status_italic: ansi(166) gray(20)
+ status_bold: ansi(166) gray(20)
+ status_code: ansi(17) gray(20)
+ status_ellipsis: gray(19) gray(15)
+ purpose_normal: gray(20) gray(2)
+ purpose_italic: ansi(178) gray(2)
+ purpose_bold: ansi(178) gray(2) Bold
+ purpose_ellipsis: gray(20) gray(2)
+ scrollbar_track: gray(20) none
+ scrollbar_thumb: ansi(238) none
+ help_paragraph: gray(2) none
+ help_bold: ansi(202) none bold
+ help_italic: ansi(202) none italic
+ help_code: gray(5) gray(22)
+ help_headers: ansi(202) none
+ help_table_border: ansi(239) None
+ preview_title: gray(3) None / gray(5) None
+ preview: gray(5) gray(23) / gray(7) gray(23)
+ preview_line_number: gray(6) gray(20)
+ preview_separator: gray(7) None / gray(18) None
+ preview_match: None ansi(29) Underlined
+ hex_null: gray(15) None
+ hex_ascii_graphic: gray(2) None
+ hex_ascii_whitespace: ansi(143) None
+ hex_ascii_other: ansi(215) None
+ hex_non_ascii: ansi(167) None
+ staging_area_title: gray(8) None / gray(13) None
+ mode_command_mark: gray(15) ansi(204) Bold
+ good_to_bad_0: ansi(28)
+ good_to_bad_1: ansi(29)
+ good_to_bad_2: ansi(29)
+ good_to_bad_3: ansi(29)
+ good_to_bad_4: ansi(29)
+ good_to_bad_5: ansi(100)
+ good_to_bad_6: ansi(136)
+ good_to_bad_7: ansi(172)
+ good_to_bad_8: ansi(166)
+ good_to_bad_9: ansi(196)
+}
diff --git a/.config/broot/test/files b/.config/broot/test/files
new file mode 100644
index 0000000..5533b9c
--- /dev/null
+++ b/.config/broot/test/files
@@ -0,0 +1,16 @@
+mv /Users/ivi/.config/broot/conf.hjson
+mv /Users/ivi/.config/broot/files
+mv /Users/ivi/.config/broot/shortcutrc.hjson
+mv /Users/ivi/.config/broot/verbs.hjson
+mv /Users/ivi/.config/broot/skins/catppuccin-macchiato.hjson
+mv /Users/ivi/.config/broot/launcher/installed-v4
+mv /Users/ivi/.config/broot/skins/catppuccin-mocha.hjson
+mv /Users/ivi/.config/broot/skins/dark-blue.hjson
+mv /Users/ivi/.config/broot/skins/dark-gruvbox.hjson
+mv /Users/ivi/.config/broot/skins/dark-orange.hjson
+mv /Users/ivi/.config/broot/skins/native-16.hjson
+mv /Users/ivi/.config/broot/skins/solarized-dark.hjson
+mv /Users/ivi/.config/broot/skins/solarized-light.hjson
+mv /Users/ivi/.config/broot/skins/white.hjson
+mv /Users/ivi/.config/broot/launcher/bash/br
+mv /Users/ivi/.config/broot/launcher/nushell/br
diff --git a/.config/broot/verbs.hjson b/.config/broot/verbs.hjson
new file mode 100644
index 0000000..69518a5
--- /dev/null
+++ b/.config/broot/verbs.hjson
@@ -0,0 +1,187 @@
+###############################################################
+# This file contains the verb definitions for broot
+#
+# Some verbs here are examples and not enabled by default: you
+# need to uncomment them if you want to use them.
+#
+# Documentation at https://dystroy.org/broot/verbs/
+###############################################################
+
+verbs: [
+ {invocation: "bcf", execution: ":focus /Users/ivi/.config"}
+ # You should customize this standard opening of text files.
+ # If you edit text files in your terminal (vi, emacs, helix, eg.), then
+ # you'll find it convenient to change the 'key' from 'ctrl-e' to 'enter'.
+ #
+ # If $EDITOR isn't set on your computer, you should either set it using
+ # something similar to
+ # export EDITOR=/usr/local/bin/nvim
+ # or just replace it with your editor of choice in the 'execution'
+ # pattern.
+ # If your editor is able to open a file on a specific line, use {line}
+ # so that you may jump directly at the right line from a preview or
+ # a content search.
+ # Examples depending on your favourite editor:
+ # execution: "nvim +{line} {file}"
+ # execution: "helix {file}:{line}"
+ {
+ invocation: edit
+ shortcut: e
+ key: ctrl-e
+ apply_to: text_file
+ execution: ["sh", "-c", "if [ {line} = 0 ]; then exec $EDITOR {file}; else exec $EDITOR {file} +{line}; fi"]
+ leave_broot: false
+ }
+ {
+ invocation: edit
+ shortcut: e
+ key: enter
+ apply_to: text_file
+ execution: ["sh", "-c", "if [ {line} = 0 ]; then exec $EDITOR {file}; else exec $EDITOR {file} +{line}; fi"]
+ leave_broot: false
+ }
+
+ # Example 1: launching `tail -n` on the selected file (leaving broot)
+ {
+ name: tail_lines
+ invocation: tl {lines_count}
+ execution: "tail -f -n {lines_count} {file}"
+ }
+
+ # Example 2: creating a new file without leaving broot
+ # {
+ # name: touch
+ # invocation: touch {new_file}
+ # execution: "touch {directory}/{new_file}"
+ # leave_broot: false
+ # }
+
+ # A convenient shortcut to create new text files in
+ # the current directory or below
+ {
+ invocation: create {subpath}
+ execution: ["sh" "-c" "mkdir -p $(dirname {directory}/{subpath}); exec $EDITOR {directory}/{subpath}"]
+ leave_broot: false
+ }
+
+ {
+ invocation: git_diff
+ shortcut: gd
+ leave_broot: false
+ execution: "git difftool -y {file}"
+ }
+
+ {
+ key: alt-n
+ execution: ":panel_right"
+ }
+ {
+ key: alt-p
+ execution: ":panel_left_no_open"
+ }
+
+ # On ctrl-b, propose the creation of a copy of the selection.
+ # While this might occasionally be useful, this verb is mostly here
+ # as an example to demonstrate rare standard groups like {file-stem}
+ # and {file-dot-extension} and the auto_exec verb property which
+ # allows verbs to stay unexecuted until you hit enter
+ {
+ invocation: "backup {version}"
+ key: ctrl-b
+ leave_broot: false
+ auto_exec: false
+ execution: "cp -r {file} {parent}/{file-stem}-{version}{file-dot-extension}"
+ }
+
+ # By default, `rm` does the system rm, and completely removes
+ # the file. If you prefer to have the file moved to the system
+ # trash, you may use the ':trash' internal with the verb below:
+ # {
+ # invocation: "rm"
+ # internal: "trash"
+ # leave_broot: false
+ # }
+
+ # This verb lets you launch a terminal on ctrl-T
+ # (on exit you'll be back in broot)
+ {
+ invocation: terminal
+ key: ctrl-t
+ execution: "$SHELL"
+ set_working_dir: true
+ leave_broot: false
+ }
+
+ # Here's an example of a verb needing the shell capabilities.
+ # It copies all children of the currently selected directory
+ # to a destination you type.
+ # It uses a star, which needs the shell for expansion. That's
+ # why such verb must have the `from_shell: true` parameter.
+ # {
+ # invocation: "cpa {dest}"
+ # external: "cp -r {directory}/* {dest}"
+ # from_shell: true
+ # }
+
+ # Here's going to the work-dir root of the current git repository
+ # {
+ # invocation: gtr
+ # execution: ":focus {git-root}"
+ # }
+
+ # A popular set of shortcuts for going up and down:
+ #
+ {
+ key: ctrl-p
+ execution: ":line_up"
+ }
+ {
+ key: ctrl-n
+ execution: ":line_down"
+ }
+ {
+ key: ctrl-a
+ execution: ":input_go_to_start"
+ }
+ {
+ key: ctrl-e
+ execution: ":input_go_to_end"
+ }
+ { key: "alt-b", internal: ":input_go_word_left" }
+ { key: "alt-f", internal: ":input_go_word_right" }
+ { key: "alt-d", internal: ":input_del_word_right" }
+ # {
+ # key: ctrl-u
+ # execution: ":page_up"
+ # }
+ # {
+ # key: ctrl-d
+ # execution: ":page_down"
+ # }
+
+ # If you develop using git, you might like to often switch
+ # to the git status filter:
+ {
+ key: alt-g
+ execution: ":toggle_git_status"
+ }
+
+ {
+ invocation: grep {pattern}
+ execution: ["sh", "-c", "rg --vimgrep '{pattern}' '{directory}' | exec kgrep"]
+ leave_broot: false
+ }
+
+ # You can reproduce the bindings of Norton Commander
+ # on copying or moving to the other panel:
+ # {
+ # key: F5
+ # external: "cp -r {file} {other-panel-directory}"
+ # leave_broot: false
+ # }
+ # {
+ # key: F6
+ # external: "mv {file} {other-panel-directory}"
+ # leave_broot: false
+ # }
+]
diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc
index bac4cdf..2b1aba9 100644
--- a/.config/shell/aliasrc
+++ b/.config/shell/aliasrc
@@ -35,8 +35,8 @@ alias \
g="git" \
t="tofu" \
d="docker" \
- ga="git add " \
- gc="git commit " \
+ ga="git add " \
+ gc="git commit " \
trem="transmission-remote" \
YT="youtube-viewer" \
sdn="shutdown -h now" \