{"id":13683076,"url":"https://github.com/jaclu/tmux-menus","last_synced_at":"2025-04-30T12:33:12.146Z","repository":{"id":38302508,"uuid":"425347798","full_name":"jaclu/tmux-menus","owner":"jaclu","description":"Tmux plugin, Popup menus to help with managing your environment","archived":false,"fork":false,"pushed_at":"2024-11-01T14:00:35.000Z","size":657,"stargazers_count":312,"open_issues_count":3,"forks_count":10,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-01T14:34:47.486Z","etag":null,"topics":["popup-dialog","tmux","tmux-plugin","tmux-plugins"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaclu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-06T21:02:30.000Z","updated_at":"2024-11-01T13:57:54.000Z","dependencies_parsed_at":"2023-12-10T21:31:05.059Z","dependency_job_id":"7d39ece4-138d-424c-bc9e-cfd06bfa665d","html_url":"https://github.com/jaclu/tmux-menus","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaclu%2Ftmux-menus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaclu%2Ftmux-menus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaclu%2Ftmux-menus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaclu%2Ftmux-menus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaclu","download_url":"https://codeload.github.com/jaclu/tmux-menus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224211911,"owners_count":17274342,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["popup-dialog","tmux","tmux-plugin","tmux-plugins"],"created_at":"2024-08-02T13:01:59.708Z","updated_at":"2025-04-30T12:33:12.124Z","avatar_url":"https://github.com/jaclu.png","language":"Shell","funding_links":[],"categories":["Shell","Plugins"],"sub_categories":[],"readme":"# Tmux-Menus\n\n\u003cimg width=\"250\" alt=\"main\"\nsrc=\"https://github.com/user-attachments/assets/ee328ee0-1b02-42dc-84db-a3f7f3004d28\" /\u003e\n\u003cimg width=\"250\" alt=\"main-styled\"\nsrc=\"https://github.com/user-attachments/assets/8361f74a-3eee-4053-9f87-f044a8304822\" /\u003e\n\n## Summary\n\nPopup menus to help with managing the tmux environment. If so desired,\n[styling](docs/Styling.md) can be used.\n\nNot too hard to adapt to fit your needs. Items that some\nmight find slightly redundant are included, easier to remove excess for more\nexperienced users, then add more for newbies.\n\n\u003cdetails\u003e\n\u003csummary\u003eRecent Changes\u003c/summary\u003e\n\u003cbr\u003e\n\n## Recent Changes\n\n- Prevent tmux variables from being expanded in `Display Menu Commands`\n- Moved Layouts and Split window into Windows menu\n- Main menu help displays kind of an about box info, about what version of the\n  plugin is used\n- `Display menu commands` Rotates between displaying commands and all matching\n  prefix and root binds.\n- Added parameter `@menus_border_type` for Styling\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003ePurpose\u003c/summary\u003e\n\u003cbr\u003e\n\n## Purpose\n\nTmux provides a few basic popup menus by default, but they're quite limited and\ndifficult to extend due to their complex, mouse-based one-liner implementations.\nA more integrated, user-friendly approach with better navigation and flexibility\nseemed like the right solution.\n\nNot solely meant for beginners, I use it myself all the time:\n\n- Using `Display menu commands` as a reminder of shortcuts for common tasks\n- When connecting using terminals without much support for Meta or even lacking arrows,\n  this gives access to all the actions that aren't available with the\n  regular shortcuts. For instance, when running the built in Terminal on\n  MacOS the console keyboard is pretty limited.\n- Tasks that would need external scripts to avoid hard-to-read\n  complex bind one-liners, such as killing the current session without getting\n  disconnected.\n- When direct typing would be much longer.\n  Example: Kill the server directly with 12 keys:\n  `\u003cprefix\u003e : kill-ser \u003ctab\u003e \u003center\u003e`\n  with the menus 5 keys: `\u003cprefix\u003e \\ A x y`\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eUsage\u003c/summary\u003e\n\u003cbr\u003e\n\n## Usage\n\nOnce installed, hit the trigger to get the main menu to pop up.\nThe default is `\u003cprefix\u003e \\` see Configuration below for how to change it.\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eScreenshots of some menus\u003c/summary\u003e\n\u003cbr\u003e\n\n## Screenshots\n\nThe white one is generated with whiptail, as can be seen whiptail menus use a lot\nmore screen real estate. However if they don't fit they are scrollable unlike\nthe tmux menus, if they don't fit, they are just not displayed.\nThe rest are generated by the tmux built-in `display-menu`\n\n\u003cimg width=\"265\" alt=\"Handling Pane\"\nsrc=\"https://github.com/user-attachments/assets/de10519c-31a4-41db-8086-0be80b66576d\" /\u003e\n\u003cimg width=\"297\" alt=\"Handling Window\"\nsrc=\"https://github.com/user-attachments/assets/80e6c6a5-b024-4ca2-97ff-70493a30e4d3\" /\u003e\n\u003cimg width=\"337\" alt=\"Help summary\"\nsrc=\"https://github.com/user-attachments/assets/30aadd57-2226-4fdf-a148-896918bf9760\" /\u003e\n\u003cimg width=\"264\" alt=\"Missing Keys\"\nsrc=\"https://github.com/user-attachments/assets/2f37532c-6877-45b9-b7ec-8e9ad659ed33\" /\u003e\n\u003cimg width=\"270\" alt=\"Missing Keys-whiptail\"\nsrc=\"https://github.com/user-attachments/assets/a657ca58-61d7-45ad-8521-3a2341313497\" /\u003e\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eDependencies \u0026 Compatibility\u003c/summary\u003e\n\n## Dependencies \u0026 Compatibility\n\n| Version    | Notice                                                                                                                             |\n| ---------- | ---------------------------------------------------------------------------------------------------------------------------------- |\n| 3.4        | Styling can be used.                                                                                                               |\n| 3.2        | Menu location fully available.                                                                                                     |\n| 3.0 - 3.1c | Menu centering is not supported, it's displayed top left if C is selected.                                                         |\n| \u003c 3.0      | Needs `whiptail` or `dialog` (see below). Menu location and styling settings are ignored.                                          |\n| 1.8        | tpm is not available, so the plugin needs to be initialized by running [path to tmux-menus]/menus.tmux directly from the conf file |\n\nThe above table covers compatibility for the general tool. Some menu items\nhas a min tmux version set, if the running tmux doesn't match this,\nthat item will be skipped. If it turns out that incorrect limits have been set\non some feature, please let me know!\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eInstalling\u003c/summary\u003e\n\n## Via TPM (recommended)\n\nThe easiest way to install `tmux-menus` is via the [Tmux Plugin\nManager](https://github.com/tmux-plugins/tpm).\n\n1. Add plugin to the list of TPM plugins in `.tmux.conf`:\n\n   ```tmux\n   set -g @plugin 'jaclu/tmux-menus'\n   ```\n\n2. Hit `\u003cprefix\u003e + I` to install the plugin and activate it. The plugin should now\n   be usable.\n\n## Manual Installation\n\n1. Clone the repository\n\n   ```sh\n   git clone https://github.com/jaclu/tmux-menus ~/clone/path\n   ```\n\n2. Add this line to the bottom of `.tmux.conf`\n\n   ```tmux\n   run-shell ~/clone/path/menus.tmux\n   ```\n\n3. Reload the `tmux` environment\n\n   ```sh\n   # type this inside tmux\n   $ tmux source-file ~/.tmux.conf\n   ```\n\nThe plugin should now be activated.\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eConfiguration\u003c/summary\u003e\n\n## Configuration\n\n### Boolean parameters\n\nAll boolean parameters accept the following values:\n\n- `Yes` `True` `1`\n- `No` `False` `0`\n\nThis is case-insensitive, meaning any combination of uppercase and lowercase\nletters is accepted.\n\n### Display menus\n\nThe default trigger is `\u003cprefix\u003e \\` The trigger is configured like this:\n\n```tmux\nset -g @menus_trigger 'Space'\n```\n\nNote: Non-standard keys, such as the default backslash (`\\`), must be prefixed with `\\`\n(e.g., `\\\\`) to prevent confusion in tmux.\n\nHandling special keys becomes more complex when using quotes:\n\n- Inside single quotes, both `'\\'` and `'\\\\'` work.\n- Inside double quotes, only `\"\\\\\"` is valid.\n\nTo avoid unexpected errors when switching between quoting styles, it's recommended\nto always prefix special keys with `\\` inside both single and double quotes,\nas well as when not using quotes.\n\n### Display without using prefix\n\n```tmux\nset -g @menus_without_prefix 'Yes'\n```\n\nThis boolean parameter defaults to `No`\n\nUse this in order to trigger menus without first hitting `\u003cprefix\u003e`\n\n### Pointer to the config file\n\n```tmux\nset -g @menus_config_file '~/.configs/tmux.conf'\n```\n\nIn the main menu, the tmux config file to be reloaded.\nThe default location for this is:\n\n1. `@menus_config_file` - if this is defined in the tmux config file, it will be used.\n2. `$TMUX_CONF` - if this is present in the environment, it will be used.\n3. `$XDG_CONFIG_HOME/tmux/tmux.conf` - if `$XDG_CONFIG_HOME` is defined.\n4. `~/.tmux.conf` - Default if none of the above are set.\n\nWhen a reload is requested, the conf file will be prompted for, defaulting\nto the first match above. It can be manually changed.\n\n### Menu location\n\nThe default locations are: `C` for tmux \u003e= 3.2 `P` otherwise. If whiptail/dialog\nis used, menu location is ignored\n\n```tmux\nset -g @menus_location_x 'W'\nset -g @menus_location_y 'S'\n```\n\nFor all location options see the tmux man page, search for `display-menu`.\nThe basic options are:\n\n| Value | Flag | Meaning                                        |\n| ----- | ---- | ---------------------------------------------- |\n| C     | Both | The centre of the terminal (tmux 3.2 or newer) |\n| R     | -x   | The right side of the terminal                 |\n| P     | Both | The bottom left of the pane                    |\n| M     | Both | The mouse position                             |\n| W     | Both | The window position on the status line         |\n| S     | -y   | The line above or below the status line        |\n\n### Disable caching\n\n```tmux\nset -g @menus_use_cache 'No'\n```\n\nThis boolean parameter defaults to `Yes`\n\nBy default menu items are cached.\n\nDisabling caching also disables the Custom Menus feature.\n\nTo be more precise, items listed inside `static_content()` are cached.\nSome items need to be freshly generated each time a menu is displayed,\nthose items are defines in `dynamic_content()` see\n[scripts/pane_move.sh](items/pane_move.sh) for an example of this. In that case,\n\"Swap current pane with marked\" is only displayed if there is a marked pane.\n\nThe plugin remembers what tmux version was used last time.\nIf another version is detected as the plugin is initialized, the entire\ncache is dropped, so that the right version dependent items can be\nselected as the cache is re-populated.\nSame if a menu script is changed, if the script is newer than the cache,\nthat cache item is regenerated.\n\n### Use Hint Overlays\n\n```tmux\nset -g @menus_use_hint_overlays 'No'\n```\n\nThis boolean parameter defaults to `Yes`\n\nThis feature is not available when whiptail / dialog is used.\n\nSome menu items will display tmux dialogs, where each have their own rather complex\nset of special key bindings - choose-buffer, choose-client, choose-tree and\ncustomize-mode\n\nWhen entering such a dialog, per default an overlay will first be presented lisitng\nthe keys available for that dialog, if it fits on screen.\n\nUse this setting to disable the overlay feature.\n\nIf `@menus_use_hint_overlays` is enabled, there is a support option\n`@menus_show_key_hints` (defaults to 'No') that also can be toggled.\nIf `@menus_use_hint_overlays` is disabled, `@menus_show_key_hints` is ignored.\n\n#### Show Key Hints\n\n```tmux\nset -g @menus_show_key_hints 'Yes'\n```\n\nThis boolean parameter defaults to `No`\n\nRelated to `@menus_use_hint_overlays` Since those key-listings tend to be rather long\nthey might not fit on screen, and thus be silently skipped.\nEnabling this will offer an extra option `Key Hints` on each menu featuring an\nalternative that will display such a dialog, and mentioning which item on that\nmenu it is related to.\n\nThis Key Hint will display the dialog the normal way, giving a warning if the\nscreen is to small, mentioning required screen size.\n\nIt will also serve as a hint as to what menu entries are expected to display an overlay.\n\n### Logging\n\nPer default logging is disabled. If this is desired, provide a log file name\nlike this:\n\n```tmux\nset -g @menus_log_file '~/tmp/tmux-menus.log'\n```\n\n### Display menu commands\n\n```tmux\nset -g @menus_display_commands 'Yes'\n```\n\nThis boolean parameter defaults to `No`\n\nThis feature is not available when whiptail / dialog is used or caching is disabled.\n\nIf set to true each menu will include an extra item `Display Commands` with the\nshortcut `!`\n\nPressing this will display what commands are used for each action.\n\nPressing this again will display all matching prefix and root binds.\nIf multiple key binds matches, all of them will be listed.\n\nBe aware that the menu will be taller when using this, so make sure the screen is\nlarge enough to handle it!\n\nIf this is defined, there is a support setting that can be used:\n\n```tmux\nset -g @menus_display_cmds_cols 160\n```\n\nThis is the maximum line length that will be used to display commands.\nIt defaults to `75` but can be changed if the display is really wide or narrow.\n\nIf the displayed command doesn't fit on one line, it will be split in chunks, if\npossible it will be split on the last white space before `@menus_display_cmds_cols`\nlength. If no white space is found, the cmd will be split at the indicated max length.\n\nIn case this is set too wide, and the line doesn't fit on the display, tmux will\ncut the line ending it with `\u003e`.\n\nSuch lines are truncated. And the entire command was not displayed.\n\nIf commands end with `\u003e` it is recommended to use a narrower setting for\n`@menus_display_cmds_cols`\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eScreen might be too small\u003c/summary\u003e\n\u003cbr\u003e\n\n## Screen might be too small\n\ntmux does not give any error if a menu doesn't fit the available screen,\nit just does not display the menu.\n\nThe only hint is that the menu is terminated instantaneously.\n\nSince this test is far from perfect, and some computers are really slow,\nthe current assumption is that if it was displayed \u003c 0.1 seconds,\nit was likely due to screen size.\nOn really slow systems, the cut-off is 0.5 seconds, since they would typically\nneed \u003e 0.1 just to process the menu.\nIn that case this error will be displayed on the status-bar:\n\n```tmux\ntmux-menus ERROR: Screen might be too small\n```\n\nIt will also be displayed if the menu is closed right away intentionally\nor unintentionally, so there will no doubt sometimes be false positives.\nIf it doesn't happen the next time the menu is attempted, it can be ignored.\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eUsing Styling for menus\u003c/summary\u003e\n\u003cbr\u003e\n\n## Using Styling for menus\n\nSee [docs/Styling.md](docs/Styling.md)\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCustom menus\u003c/summary\u003e\n\u003cbr\u003e\n\n## Custom Menus\n\nWhile the initial assumption was that users wanting to modify the menus would fork\nthe repository and make changes directly, a feature was added to allow menus to\nbe added dynamically based on user requests.\n\nFor details on how to use this feature, see the documentation:\n[docs/CustomMenus.md](docs/CustomMenus.md)\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003ewhiptail / dialog\u003c/summary\u003e\n\u003cbr\u003e\n\n## whiptail / dialog - alternate tools for displaying menus\n\nFor tmux \u003c 3.0 the tmux feature`display-menu` is not available.\n\nIf found `whiptail` or `dialog` will be used to display menus.\n\nThe preferred option is whiptail, but if not found dialog will be used instead.\nIf neither is available, this plugin will abort displaying an error message.\n\nSince these are full-screen apps, when either is used, the current (if any)\ntask is suspended, dialogs are run, and when done the suspended task is reactivated.\n\nThe menu system works the same using external menu handlers, however the menu\nshortcuts are not as convenient, since they do not differentiate between upper\nand lower case letters,\nand does not at all support special keys like 'Left' or 'Home'\n\nTo use external dialog handling on modern tmuxes set this env variable:\n\n- for `whiptail` use `export TMUX_MENUS_HANDLER=1`\n- for `dialog` use `export TMUX_MENUS_HANDLER=2`\n\nIn most cases whiptail is installed by default on Linux distros. If not, install\nit using the package manager.\nOne gotcha is that in the Red Hat universe the package is not called whiptail,\nthe package containing whiptail is called `newt`.\n\nMacOS does not come with whiptail, but it is available in the Homebrew package `newt`.\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eModifications\u003c/summary\u003e\n\u003cbr\u003e\n\n## Modifications\n\nEach menu is a standalone script, making it easy to edit. Once saved,\nthe updated content will be displayed the next time the menu is triggered.\n\n**Fast development with minimal hassle!**\n\nIf an edited menu fails to load, you can run it directly from the command\nline to check for syntax errors:\n\n```bash\n./items/sessions.sh\n```\n\nThis will immediately execute the menu and display any errors in the terminal.\n\nIf `@menus_log_file` is set—either in the tmux configuration or hardcoded in\n`scripts/helpers_minimal.sh` (around line 355, look for assignment of cfg_log_file)\nlogging can be used within menus:\n\n```bash\nlog_it \"foo is now [$foo]\"\n```\n\nIf monitoring a log file in a separate terminal is impractical,\nyou can set the log file to `/dev/stderr` to make `log_it` behave like `echo`.\n\nUsing `/dev/stderr` instead of `/dev/stdout` prevents unintended errors if\n`log_it` is called during string assignments.\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMenu building\u003c/summary\u003e\n\u003cbr\u003e\n\n## Menu building\n\nEach item consists of at least two parameters\n\n- min tmux version for this item, set to 0.0 if assumed to always work\n- Type of menu item, see below\n- Additional parameters depending on the item type\n\nItem types and their parameters\n\n- M - Open another menu\n  - shortcut for this item, or \"\" if none wanted\n  - label\n  - menu script\n- C - run tmux Command\n  - shortcut for this item, or \"\" if none wanted\n  - label\n  - tmux command\n- E - run External command\n  - shortcut for this item, or \"\" if none wanted\n  - label\n  - external command\n- T - Display text line\n  - text to display. Any initial \"-\" (making it unselectable in tmux menus)\n    will be skipped if whiptail is used, since a leading \"-\" would cause it to crash.\n- S - Separator/Spacer line line\n  - no parameters\n\n### Sample script\n\n```shell\n#!/bin/sh\n\nstatic_content() {\n  # Be aware:\n  #   'set -- \\' creates a new set of parameters for menu_generate_part\n  #   'set -- \"$@\" \\' should be used when appending parameters\n\n  set -- \\\n    0.0 M Left \"Back to Main menu  $nav_home\" \"main.sh\" \\\n    0.0 S \\\n    0.0 T \"Example of a line extending action\" \\\n    2.0 C \"r\" \"Rename this session\" \"command-prompt -I '#S' \\\n        'rename-session -- \\\"%%\\\"'\" \\\n    0.0 S \\\n    0.0 T \"Example of action reloading the menu\" \\\n    1.8 C \"z\" \"Zoom pane toggle\" \"resize-pane -Z $menu_reload\"\n\n  menu_generate_part 1 \"$@\"\n}\n\nmenu_name=\"Simple Test\"\n\n#  Full path to tmux-menux plugin\n#  This script is assumed to have been placed in the items folder of\n#  this repo, if not, D_TM_BASE_PATH needs to bechanged the path of the repo\nD_TM_BASE_PATH=\"$(dirname -- \"$(dirname -- \"$(realpath \"$0\")\")\")\"\n\n# shellcheck source=scripts/dialog_handling.sh\n. \"$D_TM_BASE_PATH\"/scripts/dialog_handling.sh\n\n\n```\n\n### Complex param building for menu items\n\nIf whilst building the dialog, a break is needed, to check somecondition, just\npause the `set --` param assignments, do the check and then resume param assignment\nusing `set -- \"$@\"`\n\nSomething like this:\n\n```shell\n...\n    1.8 C z \"Zoom pane toggle\" \"resize-pane -Z $menu_reload\"\n\nif tmux display-message -p '#{pane_marked_set}' | grep -q '1'; then\n    set -- \"$@\" \\\n        2.1 C s \"Swap current pane with marked\" \"swap-pane $menu_reload\"\nfi\n\nset -- \"$@\" \\\n    1.7 C p \"Swap pane with prev\" \"swap-pane -U $menu_reload\" \\\n...\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eContributions\u003c/summary\u003e\n\u003cbr\u003e\n\n## Contributions\n\nContributions are welcome, and they're appreciated.\nEvery little bit helps, and credit is always given.\n\nThe best way to send feedback is to file an\n[issue](https://github.com/jaclu/tmux-menus/issues)\n\n\u003c/details\u003e\n\n## Thanks to\n\n- [cmon1701](https://github.com/cmon1701) For notifying me that the plugin listing\n  used hardcoded path assumptions - Addressed i release 2.1.3\n- [sumskyi](https://github.com/sumskyi) for notifying me that the boolean check\n  error message for invalid values lacked the significant info about what variable\n  contained the incorrect value. Addressed in release 2.0.2\n- [GaikwadPratik](https://github.com/GaikwadPratik) for notifying me that the\n  Disable caching feature was broken\n- [Tony Soloveyv](https://github.com/tony-sol) for spotting an unintentional\n  shortcut change in the main menu\n- [JuanGarcia345](https://github.com/JuanGarcia345) for suggesting to make\n  menu-cache optional.\n- [phdoerfler](https://github.com/phdoerfler) for noticing TMUX_BIN was often not set,\n  I had it defined in my .tmux.conf, so totally missed such errors, in future testing I\n  will make sure not to rely on env variables.\n- [giddie](https://github.com/giddie) for suggesting \"Re-spawn current pane\"\n- [wilddog64](https://github.com/wilddog64) for suggesting adding a prefix\n  to the curl that probes public IP\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaclu%2Ftmux-menus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaclu%2Ftmux-menus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaclu%2Ftmux-menus/lists"}