Skip to content

Releases: kamiyaa/joshuto

0.8.5

06 Dec 21:58
Compare
Choose a tag to compare
0.8.5 Pre-release
Pre-release

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
  • Add github actions workflow
  • 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
  • Fix tab cycling crash
  • Fix menu clearing not working for all use cases

0.8.3

10 Apr 20:02
Compare
Choose a tag to compare
0.8.3 Pre-release
Pre-release

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

16 Mar 20:28
Compare
Choose a tag to compare
0.8.2 Pre-release
Pre-release

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

01 Mar 20:07
Compare
Choose a tag to compare
0.8.1 Pre-release
Pre-release

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)
  • input config rework
    • no longer require users to configure with integer keycodes
    • users now use letters like most other configs

0.8.0

28 Jun 02:30
Compare
Choose a tag to compare
0.8.0 Pre-release
Pre-release

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

19 Apr 23:21
Compare
Choose a tag to compare
0.7.1 Pre-release
Pre-release

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 to unicode_width

  • switched from mime_detective back to tree_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

13 Jan 18:50
Compare
Choose a tag to compare
0.7.0 Pre-release
Pre-release

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 and silent 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
  • 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 in joshuto.toml
  • theme support!
    • check out theme.toml under config/ to see how you can color your files :)
  • switched from keymap.conf back to keymap.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

05 Jan 02:37
Compare
Choose a tag to compare
0.6.0 Pre-release
Pre-release

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 been ncurses::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

02 Jan 16:20
Compare
Choose a tag to compare
0.5.0 Pre-release
Pre-release

Lots of refactoring again.

Changes:

  • switched from .toml to .conf for keybinding configuration
    • it is more extensible because we can do key -> command rather than command -> key, allowing for dynamic commands
  • 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 of mime_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 inside keymap.conf for changing directories
  • clean up code

0.4.0

24 Dec 19:17
Compare
Choose a tag to compare
0.4.0 Pre-release
Pre-release

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