summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCanop <cano.petrole@gmail.com>2022-07-04 20:49:55 +0200
committerCanop <cano.petrole@gmail.com>2022-07-04 20:49:55 +0200
commit5666e6b9fb827c07c6c21fbe0fc60f538e1aaf60 (patch)
treec5e271b91edcde4da7dcfd8f0d9f0899ca2a16bd
parentc688a083b46628f1a9c7a23d1765016177514be4 (diff)
default conf is now a directory
and not just a file, thanks to imports. And it contains skin files. Fix #431 Fix #340
-rw-r--r--CHANGELOG.md4
-rw-r--r--Cargo.lock20
-rw-r--r--Cargo.toml1
-rw-r--r--resources/default-conf.hjson374
-rw-r--r--resources/default-conf/conf.hjson166
-rw-r--r--resources/default-conf/dark-blue-skin.hjson106
-rw-r--r--resources/default-conf/dark-orange-skin.hjson100
-rw-r--r--resources/default-conf/sol-dark.hjson50
-rw-r--r--resources/default-conf/verbs.hjson126
-rw-r--r--resources/default-conf/white-skin.hjson66
-rw-r--r--src/cli/args.rs4
-rw-r--r--src/cli/mod.rs9
-rw-r--r--src/conf/conf.rs23
-rw-r--r--src/conf/default.rs34
-rw-r--r--src/conf/mod.rs8
-rw-r--r--src/pattern/search_mode.rs2
16 files changed, 692 insertions, 401 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b17fc36..08941dd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,8 @@
### next
-Major Feature: imports
+#### Major Feature: imports
A configuration file can now import one or several other ones.
An import can have a condition on the terminal's background color, which makes it possible to import either a dark or a light theme depending on the current terminal settings.
-You're also encouraged to split your configuration in several files.
+You're also encouraged to split your configuration in several files, as is now done for the default configuration.
### v1.13.3 - 2022-06-19
<a name="v1.13.2"></a>
diff --git a/Cargo.lock b/Cargo.lock
index 132a9dc..91d4dd3 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -161,6 +161,7 @@ dependencies = [
"glob",
"id-arena",
"image",
+ "include_dir",
"is_executable",
"lazy-regex",
"lfs-core",
@@ -856,6 +857,25 @@ dependencies = [
]
[[package]]
+name = "include_dir"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "482a2e29200b7eed25d7fdbd14423326760b7f6658d21a4cf12d55a50713c69f"
+dependencies = [
+ "include_dir_macros",
+]
+
+[[package]]
+name = "include_dir_macros"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e074c19deab2501407c91ba1860fa3d6820bfde307db6d8cb851b55a10be89b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
name = "indexmap"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/Cargo.toml b/Cargo.toml
index bbd3115..d3d3606 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -40,6 +40,7 @@ git2 = { version="0.14", default-features=false }
glob = "0.3"
id-arena = "2.2.1"
image = "0.24"
+include_dir = "0.7"
lazy-regex = "2.2.2"
libc = "0.2"
memmap = "0.7"
diff --git a/resources/default-conf.hjson b/resources/default-conf.hjson
deleted file mode 100644
index 33fe8ed..0000000
--- a/resources/default-conf.hjson
+++ /dev/null
@@ -1,374 +0,0 @@
-###############################################################
-# 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 you can launch `br -H`)
- # A popular flag is the `g` one which displays git related info.
- #
- # default_flags:
-
- ###############################################################
- # 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)
- #
- # modal: true
-
- ###############################################################
- # 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 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)
- #
- # special_paths: {
- # "/media/slow-backup-disk" : no-enter
- # "/home/dys/useless" : hide
- # "/home/dys/my-link-I-want-to-explore" : enter
- # }
-
- ###############################################################
- # 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
- # }
-
- ###############################################################
- # Verbs and shortcuts
- # You can define your own commands which would be applied to
- # the selection.
- # You'll also find below verbs that you can customize or enable.
- verbs: [
-
- # 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 standard recommended command for editing files, that you
- # can customize.
- # If $EDITOR isn't set on your computer, you should either set it using
- # something similar to
- # export EDITOR=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.
- # Example:
- # execution: nvim +{line} {file}
- {
- invocation: edit
- shortcut: e
- execution: "$EDITOR +{line} {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 not executed 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}"
- }
-
- # 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 shortcut bringing you to your home directory
- # {
- # invocation: home
- # key: ctrl-home
- # execution: ":focus ~"
- # }
-
- # 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: ctrl-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
- # }
- ]
-
- ###############################################################
- # 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
- ###############################################################
- # If you only want to set the default color and a transparent
- # background, uncomment this simplified skin:
- # skin: {
- # default: none none / gray(20) none
- # }
- #
- # To experiment with a whole skin, uncomment this one:
- # skin: {
- # default: gray(23) 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_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
- # }
-
-
- ###############################################################
- # 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 Panels Count
- #
- # Change this if you sometimes want to have more than 2 panels
- # open
- # max_panels_count: 2
-
-
- ###############################################################
- # Syntax Theme
- #
- # If you want to choose the them used for preview, uncomment
- # one of the following lines:
- #
- # syntax_theme: base16-ocean.light
- # syntax_theme: base16-ocean.dark
- # syntax_theme: base16-mocha.dark
- # syntax_theme: base16-mocha.light
- # syntax_theme: InspiredGitHub
- # syntax_theme: "Solarized (dark)"
- # syntax_theme: "Solarized (light)"
-}
diff --git a/resources/default-conf/conf.hjson b/resources/default-conf/conf.hjson
new file mode 100644
index 0000000..6612f11
--- /dev/null
+++ b/resources/default-conf/conf.hjson
@@ -0,0 +1,166 @@
+###############################################################
+# 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 you can launch `br -H`)
+ # A popular flag is the `g` one which displays git related info.
+ #
+ # default_flags:
+
+ ###############################################################
+ # 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)
+ #
+ # modal: true
+
+ ###############################################################
+ # 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 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)
+ #
+ # special_paths: {
+ # "/media/slow-backup-disk" : no-enter
+ # "/home/dys/useless" : hide
+ # "/home/dys/my-link-I-want-to-explore" : enter
+ # }
+
+ ###############################################################
+ # 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 Panels Count
+ #
+ # Change this if you sometimes want to have more than 2 panels
+ # open
+ # max_panels_count: 2
+
+ imports: [
+ verbs.hjson
+ {
+ luma: [
+ dark
+ unknown
+ ]
+ file: dark-blue-skin.hjson
+ }
+ {
+ luma: light
+ file: white-skin.hjson
+ }
+ ]
+}
diff --git a/resources/default-conf/dark-blue-skin.hjson b/resources/default-conf/dark-blue-skin.hjson
new file mode 100644
index 0000000..58f952c
--- /dev/null
+++ b/resources/default-conf/dark-blue-skin.hjson
@@ -0,0 +1,106 @@
+###############################################################
+# 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")
+###############################################################
+{
+
+ ###############################################################
+ # 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: gray(22) gray(2) / gray(20) gray(2)
+ 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_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
+
+ }
+
+ ###############################################################
+ # Syntax Theme
+ #
+ # If you want to choose the them 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/resources/default-conf/dark-orange-skin.hjson b/resources/default-conf/dark-orange-skin.hjson
new file mode 100644
index 0000000..646f7ca
--- /dev/null
+++ b/resources/default-conf/dark-orange-skin.hjson
@@ -0,0 +1,100 @@
+###############################################################
+# 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")
+###############################################################
+{
+
+ ###############################################################
+ # 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_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
+ }
+
+
+ ###############################################################
+ # Syntax Theme
+ #
+ # If you want to choose the them 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/resources/default-conf/sol-dark.hjson b/resources/default-conf/sol-dark.hjson
new file mode 100644
index 0000000..5da4b0f
--- /dev/null
+++ b/resources/default-conf/sol-dark.hjson
@@ -0,0 +1,50 @@
+{
+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" //