I am a pharmacist who works in a local hospital.

In light of the increasing threat from cyber crime, I started seeking knowledge and more secured operating system in order to make myself and the patients' personal information secured. About 9 months ago i landed on Linux and think this will be the ultimate solution. I spent at least 4 hours per week to explore this system. I picked UBUNTU first and then moved to Debian.

During the process of learning, I am impressed by the effort made by the whole Linux community. There's tons of fine articles with picture instructions and online video tutorials for learning Linux. Those things really helped me a lot.

However, I face difficulties in memorizing shell code combination and constructing pipe command. My occupation cause heavy memory burden. I have to memorize drug's brand name, generic name , dosage for different age and condition, drug-drug interaction, etc. Because there are more drugs entering the market, my memory capacity got saturated all the time.

When I go back to my Linux environment I can hardly remember the command and options I learned last time. I did tried alias but thins just go even more chaotic. Now 9 months passed and I still don't consider myself a good user and manager of my personal Linux system. I did want to persuade my colleague to replace the old xp machine(totally not patched) but in this condition I can't do it.

After some struggle I started utilizing mindmap to visualize the command sets of Linux without a GUI.

Below is an example(which reflect my poor progress in Linux) my poor mindmap The tool I use is Freeplane. hopage:https://www.freeplane.org/wiki/index.php/Home

It's opensource and most of the editing job can be done with only with only keyboard commands. The .mm file pretty much resembles the html and can be transformed into jpeg, html and other formats.

In the mindmap above, it shows commands and options in a tree-shaped layout and can add little icons to visualize the function of these commands and options, which make them easier to find and memorize.

If you think the screen is too messy, you can collapse all nodes to the root and browse with arrow key to the target command. enter image description here Or if you got the key word for the command then hit [ctrl]+F to find it directly.

The mindmap helped me organizing the commands and have many possibilities. There are three plans I propose and I hope you can tell me whether they are possible or not.

Plan A: Make and share Good Mindmaps

(no web page, no new software, no GUI modifying, just make mindmaps)

The mindmaps will reflect the structure of your thoughts and perception. Since there are so many skilled Linux users on this site, may be we can encourage them to share their unique mindmaps which perfectly adapted to their current task.

And then we will have mindmaps for server managers, mindmaps for software developers, mindmaps for security testers and more and more. All we need is a space to store and display those mindmaps. Or maybe we can put a ditro-specific mindmap for linux beginners in every linux install images.

Here is an example of my working scenario enter image description here

Plan B: Build a html format mindmap with links to the manual page

(one webpage, no new software, no GUI modifying,)

The vast foundation of Linux manual page is a precious heirloom of Linux family. We can create a mindmap mentioned in plan A in html format and link each command with manual page by hyperlinks. enter image description here This will make the mindmaps more interactive and maybe the users will find what they need without wandering on the internet.

Besides, this mindmap web page can have a column to store the command for the user, this will be useful when he is trying to forge a complex pipe command with unfamiliar functions.

The mindmap web page can be stored locally with manpage int the installation packge. It can even be displayed on websites of developing applications which don't have a stable GUI.(or they don't want a GUI) The mindmaps are actually "what you see is what you get" type of display coupled with graphical information.

Plan C: Integrate the mindmap function with Linux Cli terminal

(modify the exisisting software, one for all and all for one)

This might be the most challenging one in these plans. We upgrade the Linux terminal to the next level by integrating the mindmap browsing interface mentioned in plan B into it.

The user will not need to switch from browser to terminal, and when he complete his command he can execute it directly without copying and pasting. enter image description here

As mentioned in plane B, mindmaps can be a "what you see is what you get" user interface with graphical information. Maybe this will decrease the needs for GUI in many Linux applications.

The GUI development cost a lot and always can not satisfy everyone. Moreover, one slight change in the GUI may cause huge complaint from the users. With so much troubles in GUI, why not just build one single mindmap user interface for all Linux applications, and let developers of all linux applications make their mindmpas for this one single user interface?

I believe this will not only benefit the beginners but also the skilled Linux users. Event the develop team's burden may be eased because lesser demand on GUIs.

So here's my questions : Is it possible? Will it be safe and won't cause any security issues?

If you do consider it possible, then please tell me Who I should contact with?(I'll send email to Bash & Debian team when i finish this post )

Lastly, I would like to thank you, computer scientists around the world. Your effort made our jobs easier and more evidence based.(Like pubmed ,a website works pretty much like the the stack overflow and it's extensions) Maybe you would do a little more for me and for yourself by answering these questions?

  • I disagree with the close votes. I don't think the OP is asking "How would I implement this GUI?" It seems more like a question of "Would a UI design like this be practical, understandable, and maintainable, given the complexity of the system it reflects?" Dec 15 '17 at 16:49
  • ...however, I do think OP might find a better audience for this post on a Linux-specific forum/site. Dec 15 '17 at 16:49
  • 1
    Thank you for your comment and suggestions, I am actually planning to make a series of forum or blog post to make things more detailed, I did tried make a post Ubuntu forum. Your opinions from your professional knowledge will help me make better decisions.
    – pharmboy
    Dec 16 '17 at 4:50

I actually like your concept, although I don't expect that this will be adopted widely.

Similar concepts of "executable documentation" exist in the form of, for example, Jupyter and Matlab/Mathematica workbooks. Typically, these include the (filtered/prepared) output of the command back in the tool itself, so the user never actually sees a terminal.

Who I should contact with?(I'll send email to Bash & Debian team when i finish this post)

A more successful approach would be to build a small prototype before reaching out to anybody; in fact, it's probably the only viable road. Extend a open source mind mapper (freemind comes to mind) to support calling an external process where the program name and arguments are specified via subnodes in the document. Host your stuff on GitHub for visibility, either as a fork or a derived project.

  • Thank you for your answer! Since I am not a computer scientist with programming capability, I think I'll create a post with more details and examples of these three plans at a Linux Forum. I'll update the link to that post when I finish it.
    – pharmboy
    Dec 15 '17 at 1:46

To make these idea more clear, I created a google blog to display details about these ideas at "Mind Map User Interface Prototypes"https://mmuiprotos.blogspot.tw/


For the plane A in my question, I consider it's completely possible. From now on I'll call plan A as "Mind map PSEUDO user interface". It acts like user interface but are actually not UIs. In the following post I described how to use this pseudo user interface.

Mind Map Pseudo User Interface 01- changing Linux system settings

Mind Map Pseudo User Interface 02-Using Command line based applications

And I proposed a solution for a command line based app which is under development, which applys to all platforms. Mind Map Pseudo User Interface 03- for applications under development and have no GUIs


For the plan B and c, the real mind map user interface, I consider them not so accessible for now.

But still,I have to thank you people for your attention and responses. If you meet someone who is developing applications and you consider it useful, please do share it with them.

Not the answer you're looking for? Browse other questions tagged or ask your own question.