Manjaro cli menu

@pux has been developing cool cli toolbox that has similar functionality to bmenu. We decided to join forces and make the best cli tool we can.

This thread is for discussing ideas about this.

8 Likes

I like the visual design of toolbox better, dark numbers with highlighted background and the lines to separate menu entries. But its highlighted numbers don't match with PacUI for example.

I also like the look of the toolbox. Highlighted numbers is a good idea.

First i want to make a big shout out to @excalibur1234 , because of their great work on PacUI i was able to learn a lot about Bash. Thank you!
Also i was trying to contribute to PacUI with some code to bring in Snap and Flatpak support among other small things, so if anybody is interested to help out, please feel free to do so. You can find our conversation here:


Does anybody have other ideas how to design the UI?
@eugen-b has a good point that it doesn't match the look of PacUI.

@excalibur1234, do you want to join efforts too, since you are already maintaining pacui which is a key component of bmenu and toolbox menu?

In some submenus of bmenu like mhwd-tui, I think we should use more fzf. I coded it originally with bash select and arrays, but fzf is just plain better solution.

In initmenu, we could maybe use enable --now

instead of having start and enable separately.

I like single key actions like those in the main menu of bmenu. The problem with this approach is that it limits the size of the menu significantly. Single menu can't have that many different options, because you run out of keys. And it is difficult to have redundancies like pacui has.

1 Like

if it is only the design, pacui could be easily adjusted.

here is a first prototype:

what do you think?

4 Likes

Looks good. Personally I prefer the non cut lines as separators. I think the buttons (highlight color) should have uniform width, so that single digit buttons are as wide as the double digit ones.

that is a problem.

on the one hand, i like having to pressing a single button to open a submenu/option (e.g. pressing "1" opens the first submenu/option).
on the other hand, pacui uses a different approach, which enables more menu options, but requires 2 buttons presses to open a submenu/option.

i am hesitant to change this in pacui, because people already got used to it (i think). but we could make a poll and ask them....


i think we should find a very similar design and way of controlling all CLI applications (how many buttons do i need to press to select a submenu?) and how fzf is used (i could give you a tutorial in how i use it, if you are interested).
this would make parts of the code more similar (and therefore let us easier read each other's code) and the user thinks it is a single coherent application.

1 Like

the non-cut/non-dashed/solid line as the last version of pacui has used had i bad disadvantage:
when i opened pacui in a tty, i could not see those lines. you can test it yourself.

the non-cut/non-dashed/solid outlines are made from unicode characters. if your terminal / tty does not support unicode, you have to fall back to ANSI characters. this is what the latest version of pacui (released an hour ago) does.
i want to be able to open pacui in tty, because i have experienced cases, in which manjaro did not boot my DE anymore. i used pacui to roll back the latest updates and could reboot again with a DE.

i agree that dashed/cut lines look less good, though.

We could check if "$TERM" == "linux" and switch to ansi characters if yes? I agree it must work in TTY

i get this in yakuake with my custom zsh:

~ > echo "$TERM"
xterm-256color

looks like it is not as simple.

of course, we could try to read the source code of e.g. fzf and find out how they did the new "no-unicode" feature, which lets them switch between a dashed and solid line.
however, the problem is that fzf is written in go and ruby and not BASH.

@pux @Chrysostomus
let's list all the important points/features of UI and control/handling, which we think should match between toolbox, bmenu, and pacui.

then, we can talk about the pros and cons of every bullet point and decide together.

first of all, which CLI applications should have a uniform design and handling?

How so? We only want know if we are in TTY, and in TTY $TERM is linux

Pacui and bmenu (which would incorporate design and features from toolbox menu). Bmenu submenus include mhwd-tui, brandr and initmenu

I think the "main window" and some other functions of bmenu like the mhwd menu for example.
Basically everything that gives the user a menu to chose from?

my tty (with my custom zsh) has the same output...

because i have this line in my .zshrc:
export TERM=xterm-256color

in pacui, i use the following line to determine, whether it is run inside a tty:
if ( tty | grep tty &>/dev/null )

1 Like

Zshrc is not the place to set $TERM, but people do it anyway so it is a valid design consideration

CLI applicatiosn: toolbox, pacui, Bmenu, mhwd-tui, brandr and initmenu.

what should we talk about?
what design aspects and what control aspects?

design:

  1. dashed or solid outline or both

  2. lines between every menu entry or outlines only or outlines + lines between some menu entries

  3. how should the title look like (and what to contain)

  4. have a vertical center (dashed or solid) line in the middle or not

control:

  1. what keys to use to call help and quit

  2. open submenus/options with a single button press or requiring a button press + ENTER

  3. use fzf and use it in a similar way/layout, so it looks familiar

please list more bullet points ...

2 Likes

ok, here my opinions:

design:

  1. i prefer a dashed line, because it is the simplest solution from a programmer's point of view. it looks less good than solid lines, though.
    if we want to use both, i fear that we would need to create 2 menus in the BASH scriipt and switch between them. this would duplicate code.

  2. i think having only outlines makes pacui a mess (too many menu entries, which can get confusing really fast). having lines between every menu entry would make pacui's UI higher (i.e. requiring more lines in a terminal). i had complaints about pacui's hight before.
    therefore, i think we should each do it as we like it.

  3. pacui's title contains "pacui - package manager". i think the titles should either contain only the function of an application (i.e. "package manager", "file browser", ...) or name + function.

  4. i do not mind having a vertical center line. i prefer it the way pacui is currently set up, but i could easily change that.
    it would require making the UI of pacui a little wider, but i think this is ok. btw, we should probably use the same width for all our applications!

control:

  1. we should choose uniform keys. i do not mind what they are.

  2. it looks like i do not really like the way it is in pacui and @Chrysostomus does not like it the way it is in bmenu. we should talk about it, i do not mind.
    however, if we want to change it in pacui, i want to make a poll and ask the users what they prefer. i am hesitant to do such a change against the opinion of a majority of users.

  3. i can teach you how pacui uses fzf. then, you could use fzf in a similar way (it should look similar and handle similar, though). if we find a better way than i currently use in pacui, i am open to changes there, too.

design:

  1. personally I prefer dashed lines, but I'm not sure what is better for the eyes if you look longer at it
  2. The benefit of lines between every entry is that number highlighting looks nicer imho, but on the other hand it requires more space. I think the vertical lines as separators make it easier to distinguish between the entries.
  3. Not sure about that one
  4. Was covered in 2 :stuck_out_tongue:

control:

  1. I prefer the way of PacUI
  2. I can see the benefit of having a single button navigation. On the other hand it is limiting as @Chrysostomus pointed out and personally i prefer to press enter because i often type something wrong
  3. I think this would be the best solution

Forum kindly sponsored by