Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature requests #51

Open
23 of 37 tasks
sxyazi opened this issue Aug 12, 2023 · 128 comments
Open
23 of 37 tasks

Feature requests #51

sxyazi opened this issue Aug 12, 2023 · 128 comments

Comments

@sxyazi
Copy link
Owner

sxyazi commented Aug 12, 2023

Bugs

  • Exit selection mode on leave
  • Exit selection mode on yank
  • Trigger Refresh manually when rename, create, in case notify-rs doesn't update in time
  • Precache n+1 pages of mimetype instead of n for the better experience
  • Image preview on node-pty based terminal, like Hyper canary and VSCode

Features

@maxzinkus

This comment was marked as resolved.

@otakutyrant

This comment was marked as resolved.

@asim215

This comment was marked as resolved.

@otakutyrant

This comment was marked as resolved.

@sxyazi

This comment was marked as resolved.

@maxzinkus

This comment was marked as resolved.

@otakutyrant

This comment was marked as resolved.

@sxyazi

This comment was marked as resolved.

@otakutyrant

This comment was marked as resolved.

@sxyazi

This comment was marked as resolved.

@otakutyrant

This comment was marked as resolved.

@otakutyrant

This comment was marked as resolved.

@sxyazi

This comment was marked as resolved.

@otakutyrant

This comment was marked as resolved.

@sxyazi

This comment was marked as resolved.

@dan-da
Copy link

dan-da commented Sep 12, 2023

some feature requests:

  • a help screen to list key commands. (if not already existing)
  • onscreen indicator how to get to help screen. eg by pressing 'h' or '?' perhaps.
  • display contents of compressed files as if sub-directory. eg .zip, .tgz, etc.
  • preview for video files, eg .mp4. Could be static image or animation.
  • preview image for openoffice documents, eg .odt. (could be as simple as transform to pdf first)
  • preview image for latex documents.
  • load preview for a file/path passed as cli argument to yazi and cd to parent dir.
  • preview for .svg files
  • preview for .ps (postcript) files. (convert to pdf with ps2pdf?)
  • enter key should descend into directory.
  • pg-up, pg-down should move selection in files list.
  • copy, cut, paste of files to other directory. ctrl-c, ctrl-x, ctrl-v. like in a gui file manager.
  • key to change sort order
  • preview for markdown files (toggle between code view and rendered view)
  • .json file preview/highlighting
  • toggle between html code and preview, eg with lynx?

these are things I half hoped/expected might work as I tried out the program.

It is nice enough to want more. ;-)

@Eric-Song-Nop
Copy link
Contributor

some feature requests:

  • a help screen to list key commands. (if not already existing)
  • onscreen indicator how to get to help screen. eg by pressing 'h' or '?' perhaps.
  • display contents of compressed files as if sub-directory. eg .zip, .tgz, etc.
  • preview for video files, eg .mp4. Could be static image or animation.
  • preview image for openoffice documents, eg .odt. (could be as simple as transform to pdf first)
  • preview image for latex documents.
  • load preview for a file/path passed as cli argument to yazi and cd to parent dir.
  • preview for .svg files
  • preview for .ps (postcript) files. (convert to pdf with ps2pdf?)
  • enter key should descend into directory.
  • pg-up, pg-down should move selection in files list.
  • copy, cut, paste of files to other directory. ctrl-c, ctrl-x, ctrl-v. like in a gui file manager.
  • key to change sort order
  • preview for markdown files (toggle between code view and rendered view)
  • .json file preview/highlighting
  • toggle between html code and preview, eg with lynx?

these are things I half hoped/expected might work as I tried out the program.

It is nice enough to want more. ;-)

@dan-da Too many features are already implemented in yazi, make sure you go through the sample config for keymap and you will find many of them. Check what's already there before you really ask for a new feature.

@dan-da
Copy link

dan-da commented Sep 12, 2023

I built and ran the code and tried it out, and took the time to list my impressions. Every feature I listed is something that did not work for me. If there is some arcane way to make it work, that's fine, but it is not intuitive for me, and so that is feedback you can take or dismiss as you like. I've no idea what you mean about the 'sample config for keymap' and don't intend to investigate. As I said above, a simple onscreen indicator for how to get command-help would go a long way, but I don't see it, and the default key bindings are either not intuitive for me, or simply the expected functionality do not exist. I also highly doubt 'too many' features are implemented... seems an odd thing to say.

regardless this response to my feedback contribution does not encourage me to spend more time with this project.

@maxzinkus
Copy link

maxzinkus commented Sep 12, 2023

It's important to remember that open-source software authors don't "owe" anything to the community. @sxyazi shared this great project with us, and got a ton of feature requests really quickly, which they've been handling with grace.

This is not, afaik, their full-time job. Please don't act entitled in a repo like this.

EDIT: and thank you to maintainers @Eric-Song-Nop as well!

@sxyazi
Copy link
Owner Author

sxyazi commented Sep 13, 2023

@maxzinkus @Eric-Song-Nop

Thank you for these kind words, they give me the motivation to keep going!


Hey @dan-da, the config files for Yazi is mentioned in README, and it contains all the features and keybindings, along with docs.

a help screen to list key commands. (if not already existing)

You can press ~ to view the help screen.

onscreen indicator how to get to help screen. eg by pressing 'h' or '?' perhaps.

Good idea, but TUI space is precious. I'd like to add it to the README.

display contents of compressed files as if sub-directory. eg .zip, .tgz, etc.

I have plans to add this, but I haven't had enough time to complete it.

preview for video files, eg .mp4. Could be static image or animation.

If you've installed ffmpegthumbnailer as per the README, this should work. Currently, it only supports static images; GIF support has been noted in this issue.

.json file preview/highlighting

If you've installed jq as per the README, this should work.

enter key should descend into directory.
copy, cut, paste of files to other directory. ctrl-c, ctrl-x, ctrl-v. like in a gui file manager.
pg-up, pg-down should move selection in files list.

Yazi uses Vim keybindings by default. If you're not comfortable with them, you can create your own config file and modify them as you like. Please refer to the README for config details.

key to change sort order

Here are the default sorting keys, but of course, you can modify them as you wish:

# Sorting
{ on = [ ",", "a" ], exec = "sort alphabetical --dir_first", desc = "Sort alphabetically, directories first" },
{ on = [ ",", "A" ], exec = "sort alphabetical --reverse --dir_first", desc = "Sort alphabetically, directories first (reverse)" },
{ on = [ ",", "c" ], exec = "sort created --dir_first", desc = "Sort by creation time, directories first" },
{ on = [ ",", "C" ], exec = "sort created --reverse --dir_first", desc = "Sort by creation time, directories first (reverse)" },
{ on = [ ",", "m" ], exec = "sort modified --dir_first", desc = "Sort by modified time, directories first" },
{ on = [ ",", "M" ], exec = "sort modified --reverse --dir_first", desc = "Sort by modified time, directories first (reverse)" },
{ on = [ ",", "n" ], exec = "sort natural --dir_first", desc = "Sort naturally, directories first" },
{ on = [ ",", "N" ], exec = "sort natural --reverse --dir_first", desc = "Sort naturally, directories first (reverse)" },
{ on = [ ",", "s" ], exec = "sort size --dir_first", desc = "Sort by size, directories first" },
{ on = [ ",", "S" ], exec = "sort size --reverse --dir_first", desc = "Sort by size, directories first (reverse)" },

load preview for a file/path passed as cli argument to yazi and cd to parent dir.

Are you referring to yazi /your/path? If so, it is currently supported. You can see by running yazi --help.

preview for markdown files (toggle between code view and rendered view)

Markdown file preview is currently supported, but I'm not sure what you mean by "rendered view."

preview image for openoffice documents, eg .odt. (could be as simple as transform to pdf first)
preview image for latex documents.
preview for .svg files
preview for .ps (postcript) files. (convert to pdf with ps2pdf?)
toggle between html code and preview, eg with lynx?

These features will require Yazi's plugin system. I plan to invest time in developing the plugin system soon, allowing users to write their own plugins and supporting more file types.

@c02y
Copy link

c02y commented Sep 13, 2023

Features request:

  1. be able to show only the middle column, like ranger's viewmode
  2. be able to make two tabs side-by-side (two tabs both only show the middle column)
  3. set the default sort type (alphabetical/created/modified/natural/size) when opening yazi
  4. when sorting the list, show the details(created/modfifed/size) of all the files/dirs in the list
  5. be able to show all the size/date for the files/dirs in the list
  6. be able to get size of current selected files/dirs or all the files/dirs in the list
  7. be able to show the index for the list (can be set by default)

image

@sxyazi

This comment was marked as outdated.

@c02y

This comment was marked as outdated.

@sxyazi

This comment was marked as outdated.

@c02y

This comment was marked as outdated.

@ctem

This comment was marked as resolved.

@cbr9

This comment was marked as duplicate.

@Brixy

This comment was marked as resolved.

@sxyazi
Copy link
Owner Author

sxyazi commented Mar 23, 2024

@swaroopanand10

Hey @sxyazi Your solution for preview hiding and maximizing works perfectly, Thanks for that, but is there a way to either make text file previews wrap around, or add some kind of horizontal scrolling for them? because this feature will help to read files with very long lines easy.

Line wrapping and horizontal scrolling can both accomplish this task, but I'm not sure which is better, as I rarely use either. There is a discussion about it #265, feel free to leave your thoughts, and then we can move forward with it.

@nonetrix

So +1 for managing archives as if they where directories

how will this be done exactly? I could see two paths, one is using some API probably ported over from C or native to Rust, or another is to invoke the commands from the shell. First one would be more correct and probably more ideal, but might require much more effort if said bindings don't exist for every archive format.

There are two main factors blocking its implementation:

  1. Yazi does not yet have a virtual file system, which requires a certain level of abstraction that is unfamiliar to me, I need to find time to try it, but it is not a priority.
  2. Rust currently does not have a library like Golang's archiver, which integrates almost all archive formats and provides a consistent API. Yazi is written in Rust, so if we want to have this functionality, we may need to integrate and build these formats from scratch, this will require a lot of work to do.

Currently, you can achieve this using archivemount, it has some performance issues, but works.

@LinArcX

the first version of the audio preview using mpg123:

For sure, it is just playing a hovered audio file and if you skip to other files, the audio will stop playing. I'm still searching how to move forward/backward in an audio file with mpg123.

Yep when you switch files, Yazi will discard the tasks in the preview. I think implementing it as a previewer is not very reasonable and it should be implemented as a functional plugin.

@taylo2allen

For my use case, I have keybindings in a separate toml file which I have a script that appends the file to a copy of my keymap.toml, can you please add a command line argument to load a different keymap.toml, theme.toml, & yazi.toml file.

I think you can simply symlink a single keymap.toml configuration file in that script, and if you want to change the path for all three files at the same time when Yazi starts, use YAZI_CONFIG_HOME.

@analyticmind

I declared the variable local precount = #cx.active.preview.folder.files inside Status:position and then added inside the appropriate Span. It shows the correct count, but if I hover over a file, the status bar disappears completely

This is because folder could be nil when what you're previewing isn't a directory, so just adding a check should fix it:

local precount = cx.active.preview.folder and #cx.active.preview.folder.files or 0

@fmorroni

I started using yazi on neovim with the help of the plugin Rolv-Apneseth/tfm.nvim and it would be cool to have a way to search for a file/directory in interactive mode but starting from the project root, no matter where you're currently positioned.

Yazi can receive a directory as an argument when starting, like yazi /foo/bar. The simplest way I can think of to implement this is to pass the project's root directory to Yazi, which I believe is what the Neovim plugin needs to do.

@xzhang17

Is there any way to navigate the left column, i.e. the parent folders, directly on the screen instead of use the back arrow going to the parent folders?

@jebaum

as far as I can tell after reading all the configuration docs and the preset config files, there's no way to do this currently in yazi. in ranger, there is "move_parent 1" and "move_parent -1" which does exactly this, and I use it all the time. so big +1 to adding this to yazi

It can be easily implemented as a plugin with just a few lines of code. I've written one and adds it to the tips, https://yazi-rs.github.io/docs/tips#parent-arrow, feel free to use it.

@qrockz
Copy link

qrockz commented Mar 29, 2024

TermVisage
233488260-6e7ce3fe-7561-44f7-aafe-d7a708e14758

Thumbnail browsing/navigation for image/movie directories would be absolute amazing!

@magnetophon
Copy link

magnetophon commented Mar 29, 2024

@qrockz

TermVisage
Thumbnail browsing/navigation for image/movie directories would be absolute amazing!

@Sonico98 (Not sure if it's the sam Sonico...) made something amazing for this:
https://discord.com/channels/1136203602898194542/1146658361740369960/1216462142522523698

@teto
Copy link

teto commented Apr 3, 2024

I dont know if it's doable as a plugin but in nautilus when you search, nautilus search into subfolders as well.
I like the yazi search limited to the current folder and it should stay the default but I wouldn't mind from time to time to launch a deep search with the results appearing in yazi

@c02y
Copy link

c02y commented Apr 12, 2024

Is it able to get size of current file/dir or selected files/dirs?

I wrote a feature requests a few months ago, I decided to completely replace ranger with yazi recently, it seems I couldn't find anything like it in the doc or preset keymap.toml.
#51 (comment)

6. be able to get size of current selected files/dirs or all the files/dirs in the list

I can run = "sort size", but I simply want to get size instead of getting size and sorting the whole list.

@fmorroni
Copy link

Is it able to get size of current file/dir or selected files/dirs?

I wrote a feature requests a few months ago, I decided to completely replace ranger with yazi recently, it seems I couldn't find anything like it in the doc or preset keymap.toml.
#51 (comment)

6. be able to get size of current selected files/dirs or all the files/dirs in the list

I can run = "sort size", but I simply want to get size instead of getting size and sorting the whole list.

You can show the size of the files in the current directory with ms by default I think (search the command list for the word "size" and you should find it). I don't think you can show the combined size for the selected files tho

@c02y
Copy link

c02y commented Apr 12, 2024

@fmorroni I already set linemode = "size" in yazi.toml, but it won't show size of directories (this is the better way otherwise it will slow start time of yazi), and even if after I use sort size to get all the sizes of the list, when the content of a directory is changed, the size of the directory won't be updated, so I have to manually sort size again which will sort the list again.

So a command like get size for current file/dir or selected files/dirs would be really helpful.

@jebaum
Copy link

jebaum commented Apr 12, 2024

The way ranger handles this is nice - the number of entries in a directory is shown by default, not the total size. That's quick and cheap to get. Then you can use a keybind to calculate the size for a particular directory, or every directory in your CWD

@c02y
Copy link

c02y commented Apr 14, 2024

Feature request:

In ranger, there is a command like map da cut mode=add which will cut the item into a stack every time you run it, this is very useful when you try to cut multiple items, especially when they are in different places, and then paste them into one location.

This is very handy when working with parrent-arrow plugin, I use this kind of function a lot in ranger.

@fmorroni
Copy link

Feature request:

In ranger, there is a command like map da cut mode=add which will cut the item into a stack every time you run it, this is very useful when you try to cut multiple items, especially when they are in different places, and then paste them into one location.

This is very handy when working with parrent-arrow plugin, I use this kind of function a lot in ranger.

Correct me if I'm wrong, but this sound very similar to selecting the items with space and cutting them with x. What would be the advantage of the ranger method?
I haven't used the parent-arrow plugin, does selection not work while navigating the parent directory?

@c02y
Copy link

c02y commented Apr 14, 2024

@fmorroni you are right, I'm just used to cut mod=add one by one, forget that I can select them one by one and cut them all in one cut command. This works.

Thanks.

@c02y
Copy link

c02y commented Apr 14, 2024

Is it able to get size of current file/dir or selected files/dirs?

I wrote a feature requests a few months ago, I decided to completely replace ranger with yazi recently, it seems I couldn't find anything like it in the doc or preset keymap.toml. #51 (comment)

6. be able to get size of current selected files/dirs or all the files/dirs in the list

I can run = "sort size", but I simply want to get size instead of getting size and sorting the whole list.

I found another use case, then I use f to filter the files such as mp4 files, I need to select them all and get the total size of them all, now I select them all, but I don't know how to get the total size.

It is not the size of every selected files/dirs feature, it is the total size of selected files/dirs.

@sxyazi sxyazi mentioned this issue Apr 18, 2024
1 task
@bvr-yr
Copy link

bvr-yr commented Apr 22, 2024

may I ask if there is some estimated time point when mouse support gonna be added?
this is last thing stopping me from rm -rf ranger, I just got TOO used to scroll the previewer

also about Git Integration request: it's gonna be only status icons or full integration exposing stuff like last commit message, date, etc?

@jmlucjav
Copy link

Would it be possible to overwrite some config value in the command line? So yazi would use the .config/yazi config but some value(s) would be overwriten.

The use case is when using yazi in a two pane mode, I want to set mostly the same config but I change a couple of values. Now I have to have to config dirs, and use one for each yazi process, but woudl be nicer to have just one and overwrite certain values...

thanks!

@sxyazi sxyazi mentioned this issue Apr 26, 2024
1 task
@jmlucjav
Copy link

Another two requests regarding tabs:

  1. apparently there is no way to define tabs to be opened at startup in config file, could we have this?
  2. in a two pane mode, if you had tabs 1,2 in yazi process A, and tabs1,2 in yazi process B. When you moved betweeen tabs 1/2 in A, it would be desired B also moved to the same tab. Is this doable somehow with DDS I guess?

thanks!

@vasyakrg
Copy link

my feature request:

  • save last focus directory after quit and restore position in next start (example: YAZI_SAVE_LAST_DIR=true)
  • env YAZI_START_DIR - for focus dir after start (example: ~/work/dir1)

@UltraBlackLinux
Copy link

My feature request: Have yazi automatically cd into the entered directories, meaning that when you exit yazi, your PWD is the directory last used by yazi. Offering a cd open-with command doesn't seem to work, as the command is apparently spawned in a different thread
This would be useful because you don't always have that one single solution to deal with a file. If I want to execute a compiler in a directory I can't just set that up in yazi, it would be way too much work.

@fmorroni
Copy link

My feature request: Have yazi automatically cd into the entered directories, meaning that when you exit yazi, your PWD is the directory last used by yazi.

This already exists, that's how I have it set up. I'm not near my computer to check the config but it should be explained somewhere in the docs

@knuesel
Copy link

knuesel commented May 16, 2024

Yes that's what the shell wrapper described in https://yazi-rs.github.io/docs/quick-start does.

@c02y
Copy link

c02y commented May 17, 2024

Feature request or bug report:

I Sort by size for the list, the size of file/dir in the list will not be updated even I sort by size again, there are some kind of background tasks in other terminal session that will increase the file size such as downloading, unless I restart yazi.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests