diff --git a/dot_config/broot/conf.hjson b/dot_config/broot/conf.hjson new file mode 100644 index 0000000..70d0f6d --- /dev/null +++ b/dot_config/broot/conf.hjson @@ -0,0 +1,299 @@ +############################################################### +# 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} =-" + +############################################################### +# 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: { +# : 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 + + # 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/dot_config/broot/launcher/bash/br b/dot_config/broot/launcher/bash/br new file mode 100644 index 0000000..1f9cd7b --- /dev/null +++ b/dot_config/broot/launcher/bash/br @@ -0,0 +1,20 @@ + +# 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 --outcmd "$cmd_file" "$@"; then + cmd=$(<"$cmd_file") + command rm -f "$cmd_file" + eval "$cmd" + else + code=$? + command rm -f "$cmd_file" + return "$code" + fi +} diff --git a/dot_config/broot/launcher/installed-v4 b/dot_config/broot/launcher/installed-v4 new file mode 100644 index 0000000..3f026af --- /dev/null +++ b/dot_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/dot_config/broot/skins/catppuccin-macchiato.hjson b/dot_config/broot/skins/catppuccin-macchiato.hjson new file mode 100644 index 0000000..21a3bf1 --- /dev/null +++ b/dot_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 +# +# 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/dot_config/broot/skins/catppuccin-mocha.hjson b/dot_config/broot/skins/catppuccin-mocha.hjson new file mode 100644 index 0000000..6ac1b92 --- /dev/null +++ b/dot_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 +# 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/dot_config/broot/skins/dark-blue.hjson b/dot_config/broot/skins/dark-blue.hjson new file mode 100644 index 0000000..7dbc7f4 --- /dev/null +++ b/dot_config/broot/skins/dark-blue.hjson @@ -0,0 +1,116 @@ +############################################################### +# 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: MochaDark +# syntax_theme: OceanDark +# syntax_theme: OceanLight + diff --git a/dot_config/broot/skins/dark-gruvbox.hjson b/dot_config/broot/skins/dark-gruvbox.hjson new file mode 100644 index 0000000..e62d583 --- /dev/null +++ b/dot_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) rgb(40, 40, 40) / rgb(235, 219, 178) rgb(40, 40, 40) + preview_line_number: rgb(124, 111, 100) None / rgb(124, 111, 100) rgb(40, 40, 40) + 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/dot_config/broot/skins/dark-orange.hjson b/dot_config/broot/skins/dark-orange.hjson new file mode 100644 index 0000000..8e2f845 --- /dev/null +++ b/dot_config/broot/skins/dark-orange.hjson @@ -0,0 +1,111 @@ +############################################################### +# 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: SolarizedDark +# syntax_theme: MochaDark +# syntax_theme: OceanDark +# syntax_theme: OceanLight + diff --git a/dot_config/broot/skins/native-16.hjson b/dot_config/broot/skins/native-16.hjson new file mode 100644 index 0000000..a220c10 --- /dev/null +++ b/dot_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/dot_config/broot/skins/solarized-dark.hjson b/dot_config/broot/skins/solarized-dark.hjson new file mode 100644 index 0000000..fdea579 --- /dev/null +++ b/dot_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/dot_config/broot/skins/solarized-light.hjson b/dot_config/broot/skins/solarized-light.hjson new file mode 100644 index 0000000..6e19275 --- /dev/null +++ b/dot_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/dot_config/broot/skins/white.hjson b/dot_config/broot/skins/white.hjson new file mode 100644 index 0000000..908e648 --- /dev/null +++ b/dot_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/dot_config/broot/verbs.hjson b/dot_config/broot/verbs.hjson new file mode 100644 index 0000000..a7a9c78 --- /dev/null +++ b/dot_config/broot/verbs.hjson @@ -0,0 +1,161 @@ +############################################################### +# 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: [ + + # 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: "$EDITOR {file}" + 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: "$EDITOR {directory}/{subpath}" + leave_broot: false + } + + { + invocation: git_diff + shortcut: gd + leave_broot: false + execution: "git difftool -y {file}" + } + + # 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 an example of a shortcut bringing you to your home directory + # { + # invocation: home + # key: ctrl-home + # execution: ":focus ~" + # } + + # 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-k + # execution: ":line_up" + # } + # { + # key: ctrl-j + # execution: ":line_down" + # } + # { + # 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" + # } + + # 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 + # } +] +