[Proposal] GUI for Ratarmount
Hi!
Is it possible to ask, if there will be (or if there already is) a GUI interface for Ratarmount?
It could give more whitespread and easy to use for "daily" PC users for such cool tool
Thank you
Hi there,
That is definitely an idea I have thought of several times over the years. There is not yet such a GUI. Personally, I do have experience programming in Qt, but it is quite a beast when it comes to distributing Qt programs, although it should work with AppImage in theory.
Issues I see are:
- What should the GUI even be like? Something like 7zFM or PeaZip, which basically are like file browsers?
- But, because of FUSE, the GUI is already provided by any explorer the user already has installed, such as Caja. Isn't that enough?
- This would leave the command line interface, which has gotten quite many options over the years. It might be nice to have a GUI to make these options more discoverable, maybe even show a kind of preview to visualize e.g. the
--recursion-depthand other options. - Having a GUI for the command line interface but then using normal FUSE and the standard file browser might also be confusing. So, maybe do offer an option to use the built-in file browser and/or FUSE mount a given archive...
Personally, I would recommend simply adding ratarmount to your file browser context menu, e.g., for Caja like so:
mkdir -p ~/.config/caja/scripts/
ln -s "$( which ratarmount )" ~/.config/caja/scripts/ratarmount
Thanks for your answer!
I found such program with GUI but for MacOS only :( so i thought it can look's bit similar and more functionality added little by little to it (means more buttons\check marks\settings described in Examples) -> https://github.com/ivoronin/ArchiveMounter
AppImage and\or .deb will be overwhelm to cover many different Linux distros
Sadly i'm bad in programming myself, but could help in translation to other language tho
Today I learned that ninfs has something like this, very similar to ArchiveMounter:
Personally, I'd also like a file explorer so that it could be used as a replacement for xarchiver but that could and probably should only be the next step.
Just wondering, do you think a TUI would work?
Screenshot made with argparse-tui, a fork of trogon, both of which use Textual.
Unfortunately, there are some rough edges. At least trogon seems to bind Ctrl+C to the quit action to work around this issue, which would be a blocker for me. But, these are some things I noticed:
- The short ratarmount description at the top is cut off and therefore confusing.
- Even with
pathlib.Pathargparse argument type, path selection is hard to use.- Tab completion does not work
- There is no file dialog.
- Drag & drop does work though, but it pastes the path with
', which gets translated to''"'"'path''"'"'in the shown command line: https://github.com/Textualize/trogon/issues/110
- Boolean arguments look distracting because the
--recursiveis repeated, once as a header, and once for the check box. - Grouping information gets completely lost.
- Advanced group options should be hidden by default
--transformshows two text boxes without explanation. It would be nice to have them prepended by labelsSearch RegExandReplacement. Themetavarhas this information in allcaps in argparse.- The color scheme is gray on gray, which is hard to read.
- Trogon has not received updates for 5 months, and no new release for 10 months, which seems a bit long for a project with almost 3k stars: https://github.com/Textualize/trogon/issues/86 https://github.com/Textualize/trogon/issues/112#issuecomment-3123898024. It seems the author is on a sabbatical. Then again, pyfilesystems2 has also been abandoned without notice for 3 years.
- Trogon does not support argparse, but only click. Having to depend on an even less-known and less-maintained fork, argparse-tui, irks me.
But for literally a two-line change (without fallbacks and error checking in case the module is not installed), it is already a very nice result. The search support is nice, so is the mouse support.
A TUI would have the benefit of not requiring me to bundle Qt.
(Pyside exists, but it is one large module. It would have been nicer to be able to install only the Qt core and Qt widget libraries to reduce bloat. For the AppImage, I can simply delete the bloat that is not needed, but for a pip install, this will quickly fill dozens of megabytes if PySide is not installed via the system package manager. PySide6-Essentials states it includes only the essentials Qt modules, but that is grossly wrong. Why would QtTest be an essential module for runtime. Same for QtSql and QtQuick. The latter is one of the biggest bloats because of the bundled web engine.)
Then there are lots of small details that cannot be expected with something generic such as trogon because the information simply is not part of argparse:
- Show default values as placeholder in text boxes, grayed out. Currently, it is shown in white.
- Only show applicable options for subcommands such as
--unmount,--commit-overlay, ... - Show versions and oss attributions in menu instead as an option, show oss as tree of versions?
- Need to check further command line options and change them from str
pathlib.Path. Then again, some are paths to folders that can simply be automatically created. Although these paths should not be files as that would lead to errors. - Some options should be conflated, e.g., show the recursion depth option as a suboption to recursion instead of it being an independent option.
- Some options such as
--index foldersare unconventional comma-separated lists of paths and therefore won't correctly map to a nice list of input boxes expecting paths.- Same for
--parallelization, which can accept per-backend integers in an ad-hoch dictionary.
- Same for
- Many integer option values have applicable min, max ranges, which are not reflected.
- Debug level could be a nice labeled slider: errors, warnings, info, debug, trace
- Fuse options could be a list of predefined known keys and values, and maybe allow freeform fields for unknown addons.
--prefixis kinda deprecated and should not be shown or map to--fuse.- Command running: Show progress bar and log, but quit after it finishes and not
-f? If we do not quit, we could add modification options and unmounting though .. - Maybe dynamically search for indexes of specified files and show version and metadata information (creation options, gzip indexes available)! Maybe even select argument options based on those or at least show conflicts and differing ones! Do not mount until those are resolved (or
-cis specified)! - Dynamically show detected file formats for inputs.
- Include ReadMe.md instead of referring to GitHub because markdown can be rendered inside textual.
- Show simple preview for to explain default union mount when more than one input is given vs.
--disable-union-mountMounted/ Mounted/ ... Archive 1 files... Archive1/ ... Archive 2 files... -> ... Archive 1 files... ... ... - Backends priority order could be a nice list for with up an down arrows for reordering. Maybe always show the full list, or would that lead to different behavior?
- Make copying work with ctrl+shift+c, and maybe ctrl+c. Only quit on third ctrl+c?
- Some options are exclusive, e.g.,
--index-filedisables--index-folders.- Probably should also forbid
--index-filewhen there are multiple input files!
- Probably should also forbid
Hi! TUI seems cool, but not many "daily" users that jumped from WIndows to Linux can get it correctly (i mean - even seeing command line is scare dark hole for them)
Anyhow, on my opinion having this is fine