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

Miller Columns #465

Open
MggMuggins opened this issue Apr 2, 2017 · 49 comments
Open

Miller Columns #465

MggMuggins opened this issue Apr 2, 2017 · 49 comments

Comments

@MggMuggins
Copy link

So I'd been using PCManFM for a while, and thought I'd download this, to see what the differences are, and I fell in love with it immediately. It has all the features I like about PCManFM, with a, if I may say, nicer-looking UI. For a while now, I've been wanting a file manager for linux that has a feature called Miller Columns. There is a wikipedia article on them, and they are a central feature of OSX's Finder. I only found one FM that had miller columns for linux, and hated it, so I was wondering how much work it would be to implement them in this one. I have a scrap or two of programming experience, and would be willing to help out (I might fork and try anyway...), but It would be nice to get an "official" viewpoint on things.
Thanks, ~Sam

@tsujan
Copy link
Member

tsujan commented Apr 2, 2017

Thanks for your suggestion!

I don't think this is very popular feature. Path buttons are there for users to be able to open any folder inside a path (by middle clicking) without need to have all folders opened. IMO, "Miller columns" are untidy.

Also see #459 (comment).

@tsujan
Copy link
Member

tsujan commented Apr 2, 2017

You are very welcome to make PR's for LXQt, in general, and for pcmanfm-qt, in particular. We'll surely need your programming skills :)

@ghost
Copy link

ghost commented Apr 3, 2017

Miller Columns are useful. It's navigation by just a single click, not a fight between going forth and back and forth and… And it's a feature I miss since I've migrated 5-6 years ago from Mac. At that time Dolphin had it and then dropped shortly after my migration.

@tsujan
Copy link
Member

tsujan commented Apr 3, 2017

It's navigation by just a single click, not a fight between going forth and back and forth

Haven't you used path buttons?

@ghost
Copy link

ghost commented Apr 3, 2017

They're fine, but no Millers. With Miller, say in Home, by just a click you're in Documents, by another click you're in Downloads, by another click back in Documents again and so on. Without Millers, you need to go back and forth (many clicks) no matter what you use. In other words, Millers makes all the folders in current directory (consecutively) behave as if they're bookmarks.

@tsujan
Copy link
Member

tsujan commented Apr 3, 2017

OK. I understand.

If I correctly remember, Dolphin removed it because its code wasn't "maintainable"according to KDE devs.

Anyway, it seems we should wait a long time until pcmanfm-qt is restructured.

@MggMuggins
Copy link
Author

Millers don't seem to fit very well with tabbed navigation. Tabs aren't something I tend to use anyway, since you have to skip between and you can't easily drag files around.
@AcarBurak, how much programming experience have you got? I'd like to try and work on a FileManger to have millers, but my skills are not yet at a level where I can conceivably build that kind of application on my own. You can see some examples of some of my programming on my Github, if you'd like.

@ghost
Copy link

ghost commented Apr 3, 2017

@MggMuggins, sadly none.

Yes, I've forgotten the ease with which one can also drag&drop anything anywhere with Millers.

@tsujan
Copy link
Member

tsujan commented Apr 3, 2017

If I'm wrong about its popularity, I could work on it but:
(1) It isn't a good time now, as mentioned above (see the link); and
(2) Split view has priority over this, IMO.

@ghost
Copy link

ghost commented Apr 3, 2017

I could work on it

Brilliant!

If I'm wrong about its popularity

That may be due to its nonexistance. Besides, such a feature would make pcman a unique fm, usefully unique.

@tsujan
Copy link
Member

tsujan commented Apr 3, 2017

@AcarBurak
I work with Dolphin for a while (under KDE) and use the kind of DND that you mentioned with its split view. Since I know about Miller columns only theoretically, I'm curious to know what important advantages it may have over the split view. Do you know of any?

@ghost
Copy link

ghost commented Apr 3, 2017

As I've tried to explain before, let's say you're in Home:

Desktop
Documents
Downloads
Music
Pictures
Public
Templates
Videos

By just a single click, you're in, say, Desktop, but at the same time the other folders are there too like so:

Desktop...........File1
........................File2
Documents
Downloads
Music
Pictures
Public
Templates
Videos

Obviously the files will be shown in a new column, not like above. You surely know the true representation: https://i.stack.imgur.com/NBkm1.jpg

That is, you don't have to go back to Home and click Downloads to get there. Just click Downloads while the folders in Desktop in front of you.

Desktop
Documents
Downloads.......Down1
........................Down2
........................Down3
Music
Pictures
Public
Templates
Videos

This also makes, as mentioned by MggMuggins, copying and moving things around easier as well.

It's like having the bookmarks functionality in the main view as well. Now, Bookmarks (on the left side pane) makes navigating easier, right? You click one of them and you're there and you click another one you're there. Yet Millers are better as you can't drag&drop anything to Bookmarks on the side pane for instance.

Does that make sense?

@MggMuggins
Copy link
Author

It's very useful for visualizing the file tree and being able to move things around. In my opinion, a split view is only useful in a networking situation (think FileZilla) where you have your local machine on one side and the remote host on the other. Usually I would use two windows to simulate the dual-pane approach, and be able to see the whole file tree. It's also useful for quickly and easily changing your purpose for a window. I hope that all makes sense...

@ghost
Copy link

ghost commented Apr 3, 2017

I would use two windows to simulate the dual-pane approach

So would I. Otherwise I would be forced to use the fm always with double width (in a split view capable fm).

@ghost
Copy link

ghost commented Apr 3, 2017

I've just seen that pantheon-files uses Millers, but I can't contaminate my system with GTK cruft! You may try it, @tsujan.

@tsujan
Copy link
Member

tsujan commented Apr 3, 2017

@MggMuggins, @AcarBurak
Thanks! After reading your comments, I'm convinced that it's a nice feature. I may try pantheon-files to get familiar with it.

@ghost
Copy link

ghost commented Apr 3, 2017

Right, have found that qt5 app with Millers:
http://tuxdiary.com/2015/10/12/dfilemanager/

It has an AUR if you're on Arch:
https://aur.archlinux.org/packages/dfilemanager-git/

@tsujan
Copy link
Member

tsujan commented Apr 3, 2017

I played with pantheon-files just for a few minutes and should say Miller columns are impressive. It's one of those features that are addictive. I wonder why it's so rare!

@tsujan
Copy link
Member

tsujan commented Apr 3, 2017

@AcarBurak, thank you for the dfilemanager link! I don't know how good it is (it seems very good at first glance) but dfilemanager is definitely a source of inspiration.

@ghost
Copy link

ghost commented Apr 3, 2017

Glad to hear that.

@tsujan
Copy link
Member

tsujan commented Apr 3, 2017

This is getting more and more exciting to me! dfilemanager has room for improvements but it not only has features not found in other Linux FM's but can also be a great source of inspiration for Qt programmers. Let's have a screenshot of its Miller columns:

dfilemanager

Pantheon-file is also a decent FM.

I happily admit I was a fool thinking Dolphin and PCManFM-Qt were even beginning to exhaust possibilities in FM ;)

@ghost
Copy link

ghost commented Apr 3, 2017

dfilemanager … but can also be a great source of inspiration for Qt programmers.

Out of curiosity, could you elaborate a bit?

@tsujan
Copy link
Member

tsujan commented Apr 3, 2017

Out of curiosity, could you elaborate a bit?

(1) It seems to have no dependency on either KDE or GLib;
(2) Its Miller code may be fixed and used elsewhere;
(3) I like it's "cover flow" and will look into its code;
(4) It's just a few minutes that I started to play with it; don't know what I might find later ;)

@ghost
Copy link

ghost commented Apr 3, 2017

Well well well! I wonder if all this results with a new fm, better than anything else?! Or a SuperPCManFM-Qt?

@tsujan
Copy link
Member

tsujan commented Apr 3, 2017

I wonder if all this results with a new fm...

For now, I have a feeling that its code is promising; so I'll study it.

@MggMuggins
Copy link
Author

My experience with Pantheon was that it was rather limited in what it could do and the miller columns did not work as well as I would have liked.
I am not going to try that DFM now because of a lot of issues with it's dependencies, but I may give it a shot at a later time. It looks promising.
What I really like about PCManFM is it's speed and resource cost. It's by far the lightest FM I've worked with, and probably works the best too. After installing this port, I like it even better because the gui isn't so rough. :P I'd love to see a columns view incorporated into this program, since I like so many other things about it.

@tsujan
Copy link
Member

tsujan commented Apr 4, 2017

While fixing bugs in DFM (there are many), I also took a look at its column code. It seems to me that its implementation for pcmanfm-qt needs fundamental changes. Such a work can't be started until @PCMan's project for making libfm-qt independent from libfm is complete, the current PR's are changed accordingly, and enough tests are done. That may take a long time, of which I have no estimation.

@ghost
Copy link

ghost commented Apr 4, 2017

So instead of incorporating some DFM features into pcman, do you think it's easier/desirable/reasonable to incorporate some pcman features (mainly custom actions, I guess) into DFM?

@tsujan
Copy link
Member

tsujan commented Apr 4, 2017

So instead of incorporating some DFM features into pcman, do you think it's easier/desirable/reasonable to incorporate some pcman features (mainly custom actions, I guess) into DFM?

I work on DFM mostly for fun. IMO, pcmanfm-qt will be the best if it's made independent from libfm. The lack of Miller columns isn't a serious drawback and might be fixed later.

@MggMuggins
Copy link
Author

What does libfm do? I'd be more interested in adding DFM functionality into PCManFM instead of the other way around, for some of the reasons I stated above. DFM seems to have a lot of backend behind-the-scenes stuff that would really slow things down, although I have no actual way to gauge this.
What is it about the column code that doesn't seem compatible?

@tsujan
Copy link
Member

tsujan commented Apr 4, 2017

What does libfm do?

libfm is the core library that does the job of file management. There are some bugs that can be fixed only by using GLib in libfm-qt directly and that's the plan.

I'd be more interested in adding DFM functionality into PCManFM instead of the other way around

No one said that. DFM is not for use; it's rather an interesting experiment. This site is only about pcmanfm-qt.

What is it about the column code that doesn't seem compatible?

See "folderview.cpp" in libfm-qt's source.

@MggMuggins
Copy link
Author

I meant adding some of the functionality that DFM has to PCManFM.

@tsujan
Copy link
Member

tsujan commented Apr 5, 2017

I meant adding some of the functionality that DFM has to PCManFM.

I know. I tried to explain why that couldn't be done in the near future.

Some features of DFM are specific to it, some aren't. Its "cover flow" is very nice but doesn't seem suitable for a light FM like pcmanfm-qt. I also like the way it only uses Qt for file management but pcmanfm-qt is far more advanced in that regard because it uses GLib. Perhaps its "Recent folders" pane could also be implemented in pcmanfm-qt. "Inline renaming" is a good feature too... All in all, nothing can be done before the fundamental change I mentioned above.

@MggMuggins
Copy link
Author

A few things I'd like:
Inline Renaming
Miller Columns (Duh...)
And things I don't:
Recent Folders
Cover Flow

@tsujan
Copy link
Member

tsujan commented Apr 5, 2017

Any feature that might be added will be optional. LXQt tries not to enforce new features.

@ghost
Copy link

ghost commented Apr 5, 2017

I too find Cover Flow and Recent Folders, at best, unnecessary! Though an option to retain previous state (tabs, window) like spacefm would be fine.

@tsujan
Copy link
Member

tsujan commented Apr 5, 2017

Please open new issues for features other that Miller columns. An issue about "inline renaming" should be already opened.

@MggMuggins
Copy link
Author

I did some looking and a search for an issue for inline renaming and couldn't find anything. Mind if I open one?

@tsujan
Copy link
Member

tsujan commented Apr 5, 2017

Open it! If an older one is found later, the "duplicate" flag could be added.

@tsujan
Copy link
Member

tsujan commented Nov 17, 2017

Just wanted to say that I haven't forgotten this. pcmanfm-qt/libfm-qt needed lots of fixes and elementary features but now, I think it's good to focus on this and see if it's possible without a radical change to the current code. How difficult or easy it might be, I have no estimation yet; will report back here if there's a progress.

@tsujan
Copy link
Member

tsujan commented Nov 17, 2017

Not intending to raise hopes at all, I did some dirty and elementary work:

columns

The big obstacle is that both libfm-qt and pcmanfm-qt are tuned to a single list-view. For example, there's only one launcher per tab and, "worse" than that, the mere existence of tabs means single folders under them (and because of that, all panes of the above screenshot show one and the same folder -- I just cheated and moved the scrollbars). Therefore, it isn't possible to add a "column view" without radical and backward-incompatible changes -- and the same would be true for a split view.

Although I like this challenge, I'm not sure I could find time for it because the amount of the required work seems enormous ;) So, no promise.

@MggMuggins
Copy link
Author

How do you mean launcher? Could you post the code that is being used for that in a gist (or repo) someplace so I can take a look?

@tsujan
Copy link
Member

tsujan commented Nov 17, 2017

FileLauncher is the class that opens files/folders (see libfm-qt → filelauncher.cpp). It was just one example in my comment. Everything is tuned to a single list-view. Filtering and searching are two other examples.

I didn't say it's impossible to add a "Column View"; I said it's impossible without radical and backward-incompatible changes. Consider the example of inline renaming. Of course, it needed several changes but the job was done inside the current code structure -- I did it in an hour. That isn't the case with "Column View"; it needs a lot of time....

@tsujan
Copy link
Member

tsujan commented Nov 17, 2017

To see how the code structure could affect such things, take a look at dfilemanager → columnview.cpp. Implementing a column view is a piece of cake there but dfilemanager is far behind pcmanfm-qt in other respects -- actually, its code structure dictates that too.

@tsujan
Copy link
Member

tsujan commented Jan 21, 2019

Update:

We have a split view now but it doesn't make adding of Miller columns easier. Not only lots of code should have been added before the split view became possible, but also a change in the code structure was needed. Moreover, several problems showed up after that and were fixed one by one.

With that experience, I have no incentive to work on Miller Columns (for now). So, this might remain open indefinitely unless another programmer does something about it.

@glpzzz
Copy link

glpzzz commented Jan 2, 2020

Miller Columns are useful. It's navigation by just a single click, not a fight between going forth and back and forth and… And it's a feature I miss since I've migrated 5-6 years ago from Mac. At that time Dolphin had it and then dropped shortly after my migration.

check ranger, is CLI, but great!

@grahamperrin
Copy link

Thanks,

#465 (comment)

… pantheon-files uses Millers, …

#465 (comment)

… qt5 app with Millers:
http://tuxdiary.com/2015/10/12/dfilemanager

https://web.archive.org/web/20210116024026/http://tuxdiary.com/2015/10/12/dfilemanager/

FreeBSD

sysutils/py-ranger

As far as I can tell, neither DFileManager nor Pantheon Files is ported.

Graphical file manager utilizing Miller Columns | The FreeBSD Forums

@tsujan
Copy link
Member

tsujan commented Oct 17, 2021

@grahamperrin
This is pcmanfm-qt's bug tracker. Please don't use it for other purposes.

@wups
Copy link

wups commented Nov 21, 2021

The tree view does basically the same thing. It is just limited to directories, while Miller Columns display both files and directories.
If jumping directly to or drag&drop to any directory in some parent directory of the current view is the main reason for this feature, the tree view does the trick.

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

5 participants