EDIT: Rewritten for clarity.
As far as the 2 things I miss (custom Menu's and Toolbars). I don't think MC needs custom Menu's (The Menu's are fairly well organized). It is a nice thing to have - and it's likely the easiest of the lot to implement --- as parsing what-amounts-to an INI file to generate a menu's contents is fairly straight forward --- since AFAIK most of MC's internal functions are exposed to the API. And while I do miss custom Toolbars. I think MC's bottom Button Bar could very likely fill those functional needs with much less work, as it would take advantage of the existing infrastructure.
Requirements:
- Multiple Button Bars.
- Hooks that can cause Button Bars to change, e.g. via Keyboard (Hotkeys|Modifier Keys), Mouse or directory changes|paths.
- Dialog to manage Button Bars.
There was a tool that I used to use, TwinKey, you could set folder paths (regex|glob) filters, and trigger events|changes.
E.g. One might filter on: "C:\DATA\Music\*\*\*", which would match: "C:\DATA\Music\ACDC\1980_Back in Black\" and change the tab color|tab icon or the background image of the file-panel, etc.
If we also consider:
1) Multiple Bars.
2) Multiple Root|Parent Bars.
3) with Child-Bars, that can inherit Buttons from the Root|Parent.
If you set the first row of a Root Button Bar as "Default Buttons", then it's Children BB's would automatically inherit and display those buttons. So that when you change|toggle between various Button Bars you would be able to, in effect, cause contextual changes to the MC interface.
You got kind of a custom toolbar with the quick launch bar. But you have to create user defined command if you want to place internal commands there.
I been planing and maybe adding a variation of that toolbar that would allow internal commands directly.
Button panel.
You can change how many rows of button you want and every row can have 4 actions. (Entire button panel switches if Ctrl, Shift, Ctrl+Shift is hold.. if you not disabled that)
You want more button bars. hmm Not sure if there are any room for them.
Not sure what you mean with root/parent bars.. is it if you press one button, the action for that button then "loads/sets" and entire new layout for all of the buttons in the button panel ? So you can have multiple layout that are shown in normal state and not just in the alternative (Ctrl, Shift, Ctrl+Shift states.)
This might be possible to create this with script hmm Or almost. A button panel can be reloaded in realtime. A script command to reload a button panel file might be needed.. The internals for it should (maybe) already be in place.
Sync Dirs.
I'm all for implementing a sync feature. Problem is that there are many corner cases issues with sync that needs to handled, like junctions and symlinks as you mention. One problem is that I do not use any sync tool my self (OneDrive/DropBox is enough for my needs) So I don't know all the strange issues/needs people have with sync. Finding all that takes a lot of research and testing and that takes a lot of time. So designing a sync feature require more time then I got at the moment. Like how should a sync feature work. should it match by files names, time, hash, what to do with conflict. show diff for conflict and how to do that. Does it do everything automatic, Do the user set up some kind of profile or is it semi manual (Sync panel left with panel right) and so on and much more.
Just the design to get everything in require more time then I got at the moment. But if anyone (I do not mean you.. Anyone who reads this) write up a 'design' and how something like this should work. What options and subfeatures it should have and how it should handle different issues that comes up. Then implementing it should be possible.