[3/3] menuconfig: reclaim vertical space

Message ID 20230311114248.36587-3-adobriyan@gmail.com
State New
Headers
Series [1/3] menuconfig: delete shadows, prepare for vertical space reclaim |

Commit Message

Alexey Dobriyan March 11, 2023, 11:42 a.m. UTC
  Menuconfig has lots of vertical space wasted: on my system there are
17 lines of useful information about config options and 14 lines of
useless fluff: legend, horizontal separators and shadows.

Sitation is even worse on smaller terminals because fixed vertical
lines do not go away, but config option lines do, further decreasing
informational density. Minimum reasonable 80×24 text console has only
10(!) lines of menus presented which is less than half of the screen.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---
 scripts/kconfig/lxdialog/menubox.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Randy Dunlap March 13, 2023, 12:29 a.m. UTC | #1
On 3/11/23 03:42, Alexey Dobriyan wrote:
> Menuconfig has lots of vertical space wasted: on my system there are
> 17 lines of useful information about config options and 14 lines of
> useless fluff: legend, horizontal separators and shadows.
> 
> Sitation is even worse on smaller terminals because fixed vertical

  Situation

> lines do not go away, but config option lines do, further decreasing
> informational density. Minimum reasonable 80×24 text console has only
> 10(!) lines of menus presented which is less than half of the screen.
> 
> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> ---
>  scripts/kconfig/lxdialog/menubox.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 


Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>

Thanks.
  
Masahiro Yamada March 21, 2023, 6:02 a.m. UTC | #2
On Sat, Mar 11, 2023 at 8:43 PM Alexey Dobriyan <adobriyan@gmail.com> wrote:
>
> Menuconfig has lots of vertical space wasted: on my system there are
> 17 lines of useful information about config options and 14 lines of
> useless fluff: legend, horizontal separators and shadows.
>
> Sitation is even worse on smaller terminals because fixed vertical
> lines do not go away, but config option lines do, further decreasing
> informational density. Minimum reasonable 80×24 text console has only
> 10(!) lines of menus presented which is less than half of the screen.



I think nconfig is a better fit for your system.


In my understanding, the concept of menuconfig
is to use a similar appearance to the 'dialog' tool
although we have largely modified the code.




>
> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> ---
>  scripts/kconfig/lxdialog/menubox.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/kconfig/lxdialog/menubox.c b/scripts/kconfig/lxdialog/menubox.c
> index 5eb67c04821f..dc608914c636 100644
> --- a/scripts/kconfig/lxdialog/menubox.c
> +++ b/scripts/kconfig/lxdialog/menubox.c
> @@ -183,14 +183,14 @@ int dialog_menu(const char *title, const char *prompt,
>         if (height < MENUBOX_HEIGTH_MIN || width < MENUBOX_WIDTH_MIN)
>                 return -ERRDISPLAYTOOSMALL;
>
> -       height -= 4;
> +       height -= 2;
>         menu_height = height - 10;
>
>         max_choice = MIN(menu_height, item_count());
>
>         /* center dialog box on screen */
> -       x = (getmaxx(stdscr) - width) / 2;
> -       y = (getmaxy(stdscr) - height) / 2;
> +       x = 0;
> +       y = 2;
>
>         dialog = newwin(height, width, y, x);
>         keypad(dialog, TRUE);
> --
> 2.39.2
>


You missed to adjust dialog_textbox().


(1) Run 'make menuconfig'
(2) Press < Help > button to show help message
(3) Press < Exit > button to get back


When you do (2) and (3), please make sure
the size of the grey window is not changed.

This is how the current menuconfig works.



I want to leave the blue frame.
My personal preference is

  height -= 3;
  width -= 2;



--
Best Regards
Masahiro Yamada
  

Patch

diff --git a/scripts/kconfig/lxdialog/menubox.c b/scripts/kconfig/lxdialog/menubox.c
index 5eb67c04821f..dc608914c636 100644
--- a/scripts/kconfig/lxdialog/menubox.c
+++ b/scripts/kconfig/lxdialog/menubox.c
@@ -183,14 +183,14 @@  int dialog_menu(const char *title, const char *prompt,
 	if (height < MENUBOX_HEIGTH_MIN || width < MENUBOX_WIDTH_MIN)
 		return -ERRDISPLAYTOOSMALL;
 
-	height -= 4;
+	height -= 2;
 	menu_height = height - 10;
 
 	max_choice = MIN(menu_height, item_count());
 
 	/* center dialog box on screen */
-	x = (getmaxx(stdscr) - width) / 2;
-	y = (getmaxy(stdscr) - height) / 2;
+	x = 0;
+	y = 2;
 
 	dialog = newwin(height, width, y, x);
 	keypad(dialog, TRUE);