summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authoraura <nw@moneybot.cc>2026-05-13 03:38:13 +0200
committeraura <nw@moneybot.cc>2026-05-13 03:38:13 +0200
commita5003496fae29e95ba58062fa2a094f0e5c53c4d (patch)
tree8b1109ea4fb4c3b0b6f1f65a558ad40d368931fd /config
parent9e2e988236e7180c9299b20b503b143e35d3b198 (diff)
cool
Diffstat (limited to 'config')
-rw-r--r--config/broot/conf.hjson337
l---------config/broot/launcher/bash/br1
-rw-r--r--config/broot/skins/native-16.hjson132
-rw-r--r--config/broot/verbs.hjson200
-rw-r--r--config/openbox/rc-templ.xml2
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">