Age | Commit message (Collapse) | Author |
|
|
|
|
|
* fix: restore line numbers
* clippy
|
|
Signed-off-by: Luterán Lajos <luteranlajos@protonmail.ch>
|
|
|
|
- make case_insensitive_ext option work with themes as well
|
|
- move a lot of methods into functions
- printing icons is moved to rendering section
|
|
|
|
- move a bunch of methods out into functions
|
|
* feat: add `case_sensitive_ext` option for mimetype, theme and icons
* Clone `CONFIG_T` instead of initializing it twice
* Reimplement without `CONFIG_T` as static ref
* Clippy & fmt
|
|
|
|
|
|
|
|
|
|
This adds two new commands as a base to enable users to use the output
of scripts to do certain actions in Joshuto.
The first command this adds is a third command to start a sub-process
beside `shell` and `spawn`, called `capture`. Like `shell`, `capture` is
running blocking but unlike `shell`, it does not release the terminal
but captures the `stdout` of the sub-process and stores it in an
`AppContext` attribute.
The second command added by this commit is `stdout`. This command takes
the output from the last `capture` run, stored in the `AppContext`
attribute, and uses it for some action. The action has to be specified
as a sub-command. As of now, only `stdout cd` is implemented. This
checks that the last output of `capture` is a single line of an existing
file or directory and then changes the working directory to that.
To get significant value from these new commands, `capture` needs to be
equipped with more variables to feed more information about Joshuto's
state into external scripts, and `stdout` needs to get some more
sub-commands.
|
|
* fix: escape `'` char during trash operations
* clippy
|
|
* Use a pager instead confirm_exit
Read the $PAGER environment variable. If it's not set, simply use 'less'.
* update mimetype config
Signed-off-by: Luterán Lajos <luteranlajos@protonmail.ch>
|
|
_Disclaimer: I'm the author of ratatui-image._
Use [ratatui-image](https://github.com/benjajaja/ratatui-image) crate to render images. No script or hook setup is required.
|
|
* Make mouse sup configurable instead of build feat
* Add mouse_support to docs
* Add mouse_support to default config
* Don't capture mouse on mouse_support = false
* Fmt pass
|
|
|
|
* fix: resolve clippy errors
* Update tests
* Style
|
|
* fix: selection style when lscolors enabled
Signed-off-by: Luterán Lajos <luteranlajos@protonmail.ch>
* make it readable
Signed-off-by: Luterán Lajos <luteranlajos@protonmail.ch>
* use unwrap_or_else() instead
Signed-off-by: Luterán Lajos <luteranlajos@protonmail.ch>
* fix some clippy warnings
Signed-off-by: Luterán Lajos <luteranlajos@protonmail.ch>
* Revert "fix some clippy warnings"
This reverts commit 1521b462c90b52dd9e7ebd50b27b99bcefb9be99.
* add ls_colors option to default config
Signed-off-by: Luterán Lajos <luteranlajos@protonmail.ch>
---------
Signed-off-by: Luterán Lajos <luteranlajos@protonmail.ch>
|
|
* feat lscolors support
Adds support for styling entries using the LS_COLORS environment
variable. This styling is gated behind a configuration variable. If its
enabled, any other styling for entries based on theme configuration is
ignored.
* feat lscolors apply cargo fmt and clippy edits
|
|
* Add command for printing embedded configs
* Typo
* Use doccomments instead of procmacro
* Typo
|
|
|
|
* feat: use `shadow-rs` to show detailed version information
* fix: fix lints and errors
|
|
|
|
|
|
|
|
Use a absolute path where it is needed. like:
{ keys = ["m", "w"], commands = ["shell swaymsg output * bg %p fit"] },
Signed-off-by: luteran42 <luteranlajos@protonmail.ch>
|
|
* custom_commands + fallback for the older configurations
1. Added custom_commands
2. Implemented custom_search
3. Implemented custom_serach_interactive
4. Added fallback for the command in the keymaps
* Docs + missing file
* Added two more joshuto scripts
---------
Co-authored-by: Tomasz Durda <edotdurda@e-science.pl>
Co-authored-by: Jeff Zhao <jeff.no.zhao@gmail.com>
|
|
* feat: add `focus_on_create` option
* Replace `PathBuf` with `Path`
* Minor clippy fix
|
|
- this tries to fix the issue where input thread
is lagging behind input due to failed message sending
|
|
* add: new cwd utility
* Use cwd::set_current_dir to update terminal with current working directory
---------
Co-authored-by: kennycallado <kennycallado@hotmail.com>
|
|
|
|
|
|
|
|
This implements a scrollable tab bar, like discussed in #233.
This makes tabs easier to read, better utilizes the space in the top-bar
and makes handling many tabs way easier.
The display of the current directory has been removed.
The current tab will show the directory always in full form.
The directories of other tabs will be shown in full form if there is
enough space, otherwise, they will be shown in a short form.
If the available space in the top-bar is still not sufficient, scroll
tags will be added at each end.
The long-form is currently defined as the full, absolute path.
The short-form is currently defined as the last directory element of the
path.
The tab-bar is configurable in terms of font styling and style character
(like dividers, prefixes, and postfixes).
Documentation has been created in a separate file.
Collateral impact:
* The `tilde_in_titlebar` option for `[display]` in `joshuto.toml`
has been removed.
(Because the "current dir display" has been removed.)
* The `display_mode` option for `[tabs]` in `joshuto.toml`
has been removed and with it, also the `tab_bar_mode` command.
The appearance of index-numbers in tags is not configurable anymore.
Numbers are shown if and only if there are more than one tab.
This feature can be re-introduced later in some other form if still
desired with the new tab-bar.
With the new tab-bar, this configuration option did not make sense the
way it was designed.
* The `max_len` option for `[tabs]` in `joshuto.toml`
has been removed. (Because tabs don't have a fixed width anymore.)
* The function/feature of shortening paths by replacing heading path
elements with their first character only has been removed.
(Because I expect that this hard-to-interpret representation of a path
will rarely be beneficial, now that there is a better space utilization in
the top bar.)
* The "old" tab-bar configuration options have been removed.
* A `AppStyleOptionsRaw` struct has been introduced to allow handling of
more complex default styling logic. Each styling attribute is defined
there as an `Option` to indicate if a styling option has been
set by the user or not.
* A `PathStyleIfSome` trait is now available in "utils" to patch ratatui
styles with another, _optional_ style.
|
|
* [fix] add mutex lock to preview threads
Do not spawn 100s of threads when I'm holding down the arrow key.
* [fix] add mutex lock to preview threads
Do not spawn 100s of threads when I'm holding down the arrow key.
|
|
* ✨ feat: extract common parts of selecting operations
BREAKING CHANGES: `:select` now uses substring matching,
instead of glob matching.
* feat: add supports for selecting files with glob and regex
* refactor: extract fzf operations
* feat: add supports for selecting files via fzf
* fix: all selections are toggled without a pattern
* refactor: extract common parts of filter operations
* feat: add supports for filtering files with glob and regex
* docs: add explanations for new commands
|
|
|
|
|
|
|
|
* feat: Add rename_file_append_ext command
* format code style
* swap functionality of two rename command
* rename_file_append_base finds the last dot pattern
|
|
* replace `structopt` with `clap`
* add subcommand for generating shell completions
* add subcommand for showing version
* add test cases for testing command line argument parser
|
|
- breaks existing keymap configs
-`command` field is renamed to `commands`
- now an array instead of a single string
|
|
|
|
* feat: add the regex support for the matcher
* feat: add functions for searching with regex
* feat: add commands for searching with regex and change the case sensitivity
* docs: add explanations for the new feature
|
|
|
|
files (#393)
* feat: Add struct and enum definitons for choosing case sensitivity of search
* feat: Implement `FromStr` for CaseSensitivity
* feat: Add a command to change the configuration of case sensitivity
* feat: Add case sensitivity support for search operations
* feat: Add case sensitivity support for selection operations
* docs: Add explanations for the new feature
* feat: Add case sensitivity support for searching with fzf
* docs: Add explanations for the new feature
* docs: Update documents
* feat: Refactor and add case sensitivity support for the filter operation
* refactor: Extract codes related to constructing the context for searching
* refactor: Extract the common component of searching, selecting and filtering files
* refactor: Change the module path and name
* feat: Use separate options for case sensitivity configurations
* feat: Add support for changing case sensitivity configurations at runtime
* docs: Add explanations for the new command
|