diff options
Diffstat (limited to 'config')
| -rw-r--r-- | config/broot/conf.hjson | 337 | ||||
| l--------- | config/broot/launcher/bash/br | 1 | ||||
| -rw-r--r-- | config/broot/skins/native-16.hjson | 132 | ||||
| -rw-r--r-- | config/broot/verbs.hjson | 200 | ||||
| -rw-r--r-- | config/openbox/rc-templ.xml | 2 |
5 files changed, 671 insertions, 1 deletions
diff --git a/config/broot/conf.hjson b/config/broot/conf.hjson new file mode 100644 index 0000000..e84fc75 --- /dev/null +++ b/config/broot/conf.hjson @@ -0,0 +1,337 @@ +############################################################### +# 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: "--max-depth=1 --sort-by-type -sdpig" + +############################################################### +# 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: true + +############################################################### +# 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) + jpg: rgb(255, 128, 75) + gif: rgb(255, 128, 75) + svg: rgb(255, 128, 75) + webp: rgb(255, 128, 75) + tiff: rgb(255, 128, 75) + tif: rgb(255, 128, 75) + bmp: rgb(255, 128, 75) + jpeg: rgb(255, 128, 75) + + + rs: cyan + c: cyan + cpp: cyan + h: cyan + hpp: cyan + py: cyan + sh: cyan + md: cyan + html: cyan + css: cyan + js: cyan + xml: cyan + go: cyan + php: cyan + + json: yellow + conf: yellow + yaml: yellow + ini: 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 three 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" ] + // } + + // # Use zmore to preview compressed text files + // { + // input_extensions: [ "gz", "z", "tgz" ] // case doesn't matter + // output_extension: txt + // mode: text + // command: [ "zmore" ] + // } +] + +############################################################### +# 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 + file: skins/native-16.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 120000 index 0000000..6ca0ab9 --- /dev/null +++ b/config/broot/launcher/bash/br @@ -0,0 +1 @@ +/home/aura/.local/share/broot/launcher/bash/1
\ No newline at end of file diff --git a/config/broot/skins/native-16.hjson b/config/broot/skins/native-16.hjson new file mode 100644 index 0000000..4dceda5 --- /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(13) + file: ansi(7) + pruning: ansi(8) none italic + selected_line: none ansi(8) + tree: ansi(8) + + # Search + char_match: ansi(2) none underlined + parent: ansi(13) none bold + + # File properties + exe: ansi(2) + link: ansi(13) + sparse: ansi(12) + + # Prompt + input: ansi(15) + + # 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(13) ansi(8) bold + status_job: ansi(7) ansi(8) + status_normal: ansi(7) ansi(8) + + # Flag status + flag_label: ansi(13) + 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 + 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) + purpose_normal: ansi(0) + + # Modal indicator + mode_command_mark: ansi(7) ansi(4) + + # File system occupation + good_to_bad_0: ansi(10) + good_to_bad_1: ansi(10) + good_to_bad_2: ansi(2) + good_to_bad_3: ansi(3) + good_to_bad_4: ansi(3) + good_to_bad_5: ansi(3) + good_to_bad_6: ansi(3) + good_to_bad_7: ansi(1) + good_to_bad_8: ansi(1) + good_to_bad_9: ansi(9) +} diff --git a/config/broot/verbs.hjson b/config/broot/verbs.hjson new file mode 100644 index 0000000..8ea42ff --- /dev/null +++ b/config/broot/verbs.hjson @@ -0,0 +1,200 @@ +############################################################### +# 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: + # external: "nvim +{line} {file:space-separated}" + # external: "helix {file}:{line}" + { + invocation: edit + shortcut: e + key: ctrl-e + apply_to: text_file + external: "$EDITOR {file:space-separated}" + leave_broot: false + } + + # Example 1: launching `tail -n` on the selected file (leaving broot) + # { + # name: tail_lines + # invocation: tl {lines_count} + # external: "tail -f -n {lines_count} {file}" + # } + + # Example 2: creating a new file without leaving broot + # { + # name: touch + # invocation: touch {new_file} + # external: "touch {directory}/{new_file}" + # leave_broot: false + # } + + # Zip selected file(s) into a new archive named <name>.zip + # This can be called on the staging area after having staged several + # files or directories + { + invocation: "zip {name}" + external: [ + "zip" + "-r" + "{name:path-from-directory}.zip" + "{file:space-separated}" + ] + leave_broot: false + working_dir: "{root}" + } + + # A convenient shortcut to create a new text file 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}" + } + + { + invocation: depth {depth} + execution: ":set_max_depth {depth}" + } + + { + invocation: goto {where} + execution: ":focus {where}" + } + + # 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 + } + + # Scroll the rightest panel on alt-pagedown and alt-pageup, + # while keeping the focus on your current panel + { + key: alt-pagedown + internal: page_down + impacted_panel: right + } + { + key: alt-pageup + internal: page_up + impacted_panel: right + } + + + # 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 + # } +] + diff --git a/config/openbox/rc-templ.xml b/config/openbox/rc-templ.xml index ca3f465..b7527a0 100644 --- a/config/openbox/rc-templ.xml +++ b/config/openbox/rc-templ.xml @@ -456,7 +456,7 @@ <mousebind button="Left" action="Drag"> <action name="Move"/> </mousebind> - <mousebind button="W-Left" action="Click"> + <mousebind button="A-Left" action="Click"> <action name="ToggleAlwaysOnTop"/> </mousebind> <mousebind button="Left" action="DoubleClick"> |
