Releases: kamiyaa/joshuto
0.8.5
Changes
There has been lots of changes and features added in this release:
- support for lexical sorting, reverse sorting and mtime sorting
- file paths are now relative instead of absolute when opening files
- fixed bitwise issue on MacOS
- Thank you to @austinhyde !
- Add github actions workflow
- Thank you to @UsairimIsani !
- Fix various io worker issues
- IO workers forgets to start when user is on a textfield
- IO workers are now more informative
- Commands now use an enum instead of polymorphism/trait/dynamic dispatch
- Add Cargo.lock
- Add devicon support
- Thank you to @SaeedAnas !
- Fix tab cycling crash
- Fix menu clearing not working for all use cases
0.8.3
This release fixes many bugs and stability:
- Fix cut not working
- Reduce filesystem queries by adding a soft-reload function
- Formerly, we were reloading on every cursor update by accident
- Fix cursor position in textfield
- This is for renaming files, etc.
0.8.2
This release is mostly fixes and stability.
- Fix opening files not working
set_mode
works again- Add widget for showing tabs open
- Fix cursor resetting after io operations or a reload
- Remove old code
- Fix preview not loading when opening new tabs
- IO error handling is better
0.8.1
A very big refactor release
ncurses
dependency has been dropped in favour of tui-rs and termion- fs_extra dependency has been removed in favour of in-house solution
- more versatility and preserves permission bits on cut/copy/paste
- input thread rework
- no more busy waiting with
ncurses::timeout(0)
- no more busy waiting with
- input config rework
- no longer require users to configure with integer keycodes
- users now use letters like most other configs
0.8.0
Notable changes
- have a working command line, but still have improvements
- tab autocomplete mostly works
- file operations now work properly most of the time with a proper progression bar
- certain keys are now mappable (e.g. backspace, tab, enter)
TODOs
- command line should not have to use quotes to escape spaces and such like ranger
- command line doesn't show run off text
- preview support is still not performing well
- listen for fs changes so directory contents are up to date
0.7.1
I'm going to only do a minor version bump or else I'm gonna start running out of numbers before 1.0.0
xd.
This release took a while to come out because I busy with school.
-
reworked the way directory contents are printed
- can now specify prefixes for specific files for them to stand out
-
certain structs are now static via lazy_static
-
getting user input is more stable now and support unicode character
-
switched from
wcwidth
tounicode_width
-
switched from
mime_detective
back totree_magic
for mimetype parsing -
fix a lot of issues with file IO (specifically cut/copy/paste)
-
refactored how sorting works
-
search now can go back and forth with
search_next
/search_prev
-
reworked all commands to return back a result which gets printed on
Err
-
removed preview support
- can currently only preview directory
0.7.0
0.7.0
Lots of features and changes in this release.
Changes:
- support for file search
- support for creating new directories
- environment variables now supported in
keymap.toml
for changing directories - shows modified time
mimetypes.toml
got big changes- now supports mimetypes and extensions configuration
- joshuto will check extensions first before mimetypes
- now has options
fork
andsilent
for programs you want to run without stopping joshuto or messing up joshuto's UI from terminal output
- tab support!
- not the most elegant so far, but works
- can now select multiple files and open all of them with a program
preview_list
has been completely removed to preview directories- instead a dynamic approach as been added so that files can be previewed as well
- file previews!
- currently hardcoded to only work on text files and requires
head
command to work. TM
- currently hardcoded to only work on text files and requires
- better scrolling!
- scrolling used to stop the cursor in a single spot around the 6th row.
- now it can move up and down and only causes the screen to "scroll" when it reaches the
scroll_offset
threshold configured injoshuto.toml
- theme support!
- check out
theme.toml
underconfig/
to see how you can color your files :)
- check out
- switched from
keymap.conf
back tokeymap.toml
with a new approach to mapping keys - file operations now run in the background (paste)
- shows progress bar
- user input now still works when file operations are running in the background
- change directory now actually changes cwd as intended
- horizontal line is no longer using dashes, but the default horizontal line
- fix cutting overwrite files
0.6.0
0.6.0
This version feels pretty stable.
I can use it over ranger most of the time now.
Some notable changes are:
- fix crash when resizing terminal
- printing the extension of file if name is too long
- fix crash when toggling hidden files
- renaming files now work
- can set cursor the start/end of file name or start from scratch
- fix crash with newline characters in filename
- support for wide character editing
- support for custom keymapping is added back
- support for selection is added back
- paste no longer stops main thread
- fix deleting symlinks recursively
- moving files across filesystems now work
- moving files no longer does unnecessary copies (when on the same filesystem)
- remove dependency on
fs::DirEntry
as this caused large amounts of unnecessary open directories, preventing unmounting of filesystems - fix
u32
type cast when it should have beenncurses::chtype
type cast depending on the system configuration of ncurses
TODOs
- searching for files
- theming support
- better logic for displaying directory listings
- particularly not forcing the cursor to be between index 0-offset
- add support for parsing ~/ and expanding inside keymap.conf for changing directories
- clean ups
0.5.0
Lots of refactoring again.
Changes:
- switched from .toml to .conf for keybinding configuration
- it is more extensible because we can do
key -> command
rather thancommand -> key
, allowing for dynamic commands
- it is more extensible because we can do
- use ncurses panels rather than windows for prompting user input
- refactor previous commands to make use of polymorphism/traits
- I had this in mind already, just didn't know how to do it in Rust, haha
- switch from
tree_magic
in favour ofmime_guess
- most common file operations are now working (might be unstable and cause index out of bounds though)
- cut, copy, paste, delete, rename
TODOs
- fix crash when terminal is too small
- port over more commands from previous release
- better logic for displaying directory listings
- particularly not forcing the cursor to be between index 0-offset
- add support for parsing
~/
and expanding insidekeymap.conf
for changing directories - clean up code
0.4.0
There has been major refactoring and changes since 0.2.0.
The code is still messy, but it can at least be worked upon now.
There are now configuration files for general settings, custom keymapping and mimetype app launching.
Sorting code is settling down.
Some TODOs still:
- add more commands/finish implementing existing commands
- Ctrl/Alt not working
- add panels to UI for composite keybindings