Put the second display-menu in a separate config file or in script? Or use {} instead of quotes and you should not need to escape?
On Fri, 16 Aug 2024 at 20:15, Timur <timurklept...@gmail.com> wrote: > Hi! > I am trying to figure out a solution for creating a menu, with (in theory) > indefinite amount of nested items, but it logically fails to work in a > single command > > The moment i realized, that you can feed keystrokes into the terminal and > there is a relatively simple way of creating menus, i immediately thought > of binding a set of frequently used commands to a menu items, which has > proven to be decently comfortable doing routine operations. > > Consequently, the list of commands (or mostly just set of keys and control > characters) has been growing, and it became obvious, that it will be much > easier to distribute commands by their logical "belonging" (like for > database or logs scraping) to its own menu item, where each of them will be > opening "next menu". First approach was to create a set of bash scripts, > where each of them will create menu, while items of a "first menu" only > calling those scripts. Recently, it started to be quite exhausting to edit > or add new items, which inspired me to write a script, which will compose a > single command, based on the file (with its own syntax), where each menu > item described. > > Turns out, that a single tmux display-menu command is reasonably limited. > First layer is quite easy to accomplish, but specifying a display-menu as > one of the commands of a menu item require to pass all further arguments in > a single string. > For example: > display-menu 'first layer' none 'display-menu "second layer" none > "send-keys \"some keys\""' > Second layer already causes some complications for certain characters to > be sent in "send-keys", but it can be bypassed using something that i > certainly do not have name for: "escaping out of the main string" - "\'" > \\special_char "\'" > Escaping a single quote inside of the double quotes in order to tell tmux > to treat this quote not as the end of send-keys string is already too much, > but works! > > Is there a way to query a tmux to create a menu with more than two levels > deep? Third level in a single command would be a string, that is already in > a string of an outer menu, where a whole send-keys needs to be quoted, > while keys to be sent is also needs to be separately quoted. I am sure > there is a deeply undocumented ways of doing something like that, and it > probably can be put in a for loop with 0 readability, but would be glad to > hear, if there are any plans for improving menus functionality. Or any > other ways of implementing nested menu items using only tmux, without any > external code to create them > > -- > You received this message because you are subscribed to the Google Groups > "tmux-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to tmux-users+unsubscr...@googlegroups.com. > To view this discussion on the web, visit > https://groups.google.com/d/msgid/tmux-users/b1240c78-93ef-4d78-bdf1-cb5a4f30049bn%40googlegroups.com > <https://groups.google.com/d/msgid/tmux-users/b1240c78-93ef-4d78-bdf1-cb5a4f30049bn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "tmux-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to tmux-users+unsubscr...@googlegroups.com. To view this discussion on the web, visit https://groups.google.com/d/msgid/tmux-users/CAEdLfcH_52e-F7AJ-F5gv5hd8HK%3DzLjYQ%2BOqWHdFfiiUi1Ooww%40mail.gmail.com.