Home

Awesome

climenu

C application for creating interactive text menus with custom buttons. Menus can be read from config files or stdin, navigate using keys, and execute shell commands easily. Useful for simplifying command execution and organization, but can also be used to quickly create more advanced menu applications.<br><br> Do not question why it's called climenu when it creates tuis.

If you're looking for something even simpler, I also made cmenu, which is pretty much just a terminal dmenu clone.

Basic example (example.conf):

https://github.com/10xJSChad/climenu/assets/48174610/e9f5be09-ea46-42a6-803d-6b3e71315952

climenu in a file explorer (explorer.sh):

https://github.com/10xJSChad/climenu/assets/48174610/f4361d28-c396-419e-8892-9184aa2852e9

<br>

Features:

<br>
Usage:
 climenu [ENTRIES PATH] [UPDATE INTERVAL]
 If no entries file is provided, climenu
 will attempt to read entries from stdin.

Keys:
  Navigate: JK, UP/DOWN arrows.
  Select:   Space, Enter
  Exit:     CTRL+C, Q

Entry types:
 [Header]: Defines a menu header with a text description.
 [Entry]:  Defines a button with a label and a shell command to execute.
 
Entry properties:
 [Header] and [Entry]:
   <str>:   Specifies the text to display for the header or button.
   fgcolor: foreground color. [black,blue,cyan,green,magenta,red,white,yellow]
   bgcolor: background color. [black,blue,cyan,green,magenta,red,white,yellow]
   runstr:  Execute the entry string and display the result [true]

 [Entry]:
   <exec>:    Specifies the shell command to execute when the button is pressed.
   exit:      Exit after executing an entry command. [true]
   wait:      Waits for a key press after executing the command. [true]
   colormode: When the entry should be displayed in color. [selected]

Roadmap:

Contribution Guidelines:

<br>
Requirements:
  Linux (Other *nix-es probably work fine, too)
  A C compiler.

Building:
  cc climenu.c