evsar3 / sshfs-win-manager

A GUI for SSHFS-Win (https://github.com/billziss-gh/sshfs-win)
MIT License
1.11k stars 85 forks source link

Add support for advanced options #13

Closed augustin closed 3 years ago

augustin commented 4 years ago

sshfs has a umask option that can be used to set the general umask. SSHFS-Win-Manager sets create_umask here, but it does not set the main umask or have any option for that.

Could either an advanced UI option for this be added, or (even better) support for adding arbitrary command line flags to the SSHFS invocation be added?

evsar3 commented 4 years ago

Hello @augustin

At the first moment I was thinking in release a minimum of configs to be set while using the app, so I decided to use a permissive default set of options. In some opened issues people are requesting for some advanced options that I actually don't needed at the beginning. I will make such feature, but it will take a while because I just got into a very important project in my job and I have not much time to play with the Manager.

The repository is open for anyone that wants to help to improve it, including you.

evsar3 commented 4 years ago

Hello @augustin

Very happy to announce that we have a starting point for implementing the advanced UI.

Advanced UI first look:

image

augustin commented 4 years ago

Excellent!

s1eepwalker commented 4 years ago

release please

bradacjan commented 4 years ago

@evsar3 : The "Advanced UI first look:" seems very useful.

We really miss the -o rellinks option, which might stop us from using this project altogether. If you could release some basic version with this advanced UI, we could then implement (and pull request) a change that will add more options to the command – it should not be very hard.

But the scope is a bit too big for us without that Advanced section you have already implemented.

evsar3 commented 4 years ago

@bradacjan I'm gonna release a beta version with what I have until now this weekend.

bradacjan commented 4 years ago

@evsar3 That sounds amazing, thank you!

I like your project, it is a very nice UI on top of a useful technology, making it easier to use.

evsar3 commented 4 years ago

This feature is availabe in v1.0.2-beta.1 release

evsar3 commented 4 years ago

Let's test it guys! Feedback, please! Thank you all!

evsar3 commented 4 years ago

Hi, me again!

Just to say that pull requests would be very appreciated! This file contains the list of params available in the advanced tab. Additions and/or corrections would be very nice!

😁

zardini123 commented 4 years ago

@evsar3 This is fantastic! This is such an exciting project!

Currently I am dealing with trying to optimize sshfs to run at a decent speed. There is two options that are important to optimize speed that aren't directly mentioned in the sshfs manpage, but is actually inherited from ssh. The two options are compression and ciphers. sshfs does have an option already for compression, that being just -C (it can also be set via -o compression=yes/no).

According to this StackExchange post there are some ciphers that are different from the default that can help speed significantly. Though I believe not all clients support all ciphers, and what ciphers are supported can be found by running ssh -Q cipher.

It'd be great to have the ability to add a "blank" argument so users can write any custom argument they want and reap the consequences.

But for an eventual ciphers argument, it'd be great to display a list of available ciphers as a list to choose from, instead of having to write out the name.

Thank you very much! I'm excited to hear what you think!

evsar3 commented 4 years ago

@zardini123 Thank you for supporting this project!

It'd be great to have the ability to add a "blank" argument so users can write any custom argument they want and reap the consequences.

I'm actually thinking in making all fields just a empty key/value fields. This demands less maintenance and keep stuff simple (it still missing the FUSE options of the man in the list). However, the options/values listing is more user-friendly for not experienced users. In order to make this feature 100% ready, all ssh/sshfs options must be mapped. What do you think?

zardini123 commented 4 years ago

If the drop-down-based key/value approach were to be "100% ready" (i.e. have all options available to users), it'd need the sshfs options, the FUSE options (which are listed in the sshfs manpage), and select ssh options. I believe that's fairly excessive amount of options to deal with, and there are many ssh options I believe most users would not ever need to use.

I do think having the dropdowns for some select (commonly used) options would be fantastic! My current gripe is one cannot see the description of the option until after selecting it. So maybe there is a way to adjust the UI so one can see the options and their associated descriptions at the same time.

Maybe the explainshell project can provide some ideas of scraping man pages to get information. This could be useful for a manual options listing (providing users with clarification and verification of their choices) and for a drop-down options listing.

Having dedicated sections for specific options would be a good way to go about it too. For example the Ciphers option for ssh I was talking about earlier could be under a section "SSH Options", and Ciphers would be its own dedicated dropdown. Compression could be something as simple as a toggle switch (with a full description of what the option does by hovering one's mouse over it).

Along with being able to adjust options, I think some users would benefit seeing exactly what command is being ran (for example with the Mac sshfs wrapper). I'm not personally not a fan of this wrapper as there are options added that users have no control disabling, but displaying the command is an idea.

evsar3 commented 4 years ago

I will take a look if I find a Vue component that fits this requirements, otherwise I will have to code one.

zardini123 commented 4 years ago

I was looking around the source for the project and found that there are multiple options being added when running sshfs. Some of these options are large_read, allow_other (eek), and max_readahead=1GB.

With the eventual addition of the command line parameters section, may you remove all options that aren't directly required for sshfs-win-manager to function? Its very difficult to optimize performance of my sshfs mount when there are options added that I cannot disable.

Thank you very much!

evsar3 commented 4 years ago

Implemented suggestions from @zardini123 on disable all default arguments when advanced params is enabled (https://github.com/evsar3/sshfs-win-manager/commit/2597062d9c81f9c803ab94a3806b3feb76f0aec7).

evsar3 commented 4 years ago

New features and updates on v1.1.0-beta.1 release

zardini123 commented 4 years ago

Hi @evsar3! These are some fantastic features you've added so far! This is very exciting!

Couple of things relating to advanced parameters:

The advanced parameter window cannot be adjusted in size. Due to that I am unable to fully read the descriptions of many options. image

One, or many, blank options can be added and will not be filtered out when starting the connection, resulting in sshfs failing due to multiple empty -o options.

image

Has a place to manually write options been added? If so, I cannot see where it is.

Thanks!

zardini123 commented 4 years ago

As an addendum to my last comment, if you switch from an option that uses a parameter, and an option that doesn't (i.e. from max_read to large_read), the text from the option with the parameter persists, and is un-editable. Not a critical bug, but can be confusing to users about options that don't require arguments.

evsar3 commented 4 years ago

Great feedback @zardini123!

I'm gonna work on these suggestions this week. I want to release a stable version next weekend.

evsar3 commented 4 years ago

I moved the description of the param outside of the field, removed field value when the param doesn't accept a value and filtered empty params on saving.

sshfs-win-manager

zardini123 commented 4 years ago

That is super sleek! Fantastic work!

evsar3 commented 3 years ago

Version v1.2 is out! Update now!