{"id":22898946,"url":"https://github.com/dwarfmaster/inter_list","last_synced_at":"2025-04-01T01:54:05.900Z","repository":{"id":18652243,"uuid":"21859263","full_name":"dwarfmaster/inter_list","owner":"dwarfmaster","description":"An interactive ncurses list.","archived":false,"fork":false,"pushed_at":"2014-12-20T10:58:40.000Z","size":552,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-07T02:48:19.017Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dwarfmaster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-15T12:48:04.000Z","updated_at":"2015-08-25T23:59:56.000Z","dependencies_parsed_at":"2022-08-05T00:15:35.971Z","dependency_job_id":null,"html_url":"https://github.com/dwarfmaster/inter_list","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwarfmaster%2Finter_list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwarfmaster%2Finter_list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwarfmaster%2Finter_list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwarfmaster%2Finter_list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dwarfmaster","download_url":"https://codeload.github.com/dwarfmaster/inter_list/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246569009,"owners_count":20798341,"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":[],"created_at":"2024-12-14T00:35:27.151Z","updated_at":"2025-04-01T01:54:05.884Z","avatar_url":"https://github.com/dwarfmaster.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NCurses List Selecter\nThis software aims to create a ncurses list-based interface out of any set of\ncli tools.\n\n## Interface.\nThe interface includes four parts. On the top of the screen is a status bar,\nalso refered to as the status bar. This line can be disabled. On the bottom of\nthe screen they are two lines. A bottom status bar, and a command line. The\nbottom bar can also be disabled, while the command line cannot. The command\nline is used to get textual input from the user. The rest of the screen is the\nlist.\n\n## Basic usage.\nWhen invoking this program, you must give it the path to a program via the\ncommand line. The stdout of the program will be read and interpreted as a set\nof commands (see next paragraph for available commands). The commands must be\nseparated by newlines.\n\n## Available commands.\n - `up    [nb]`  : move the selection up nb lines. nb defaults to 1.\n - `down  [nb]`  : move the selection down nb lines. nb defaults to 1.\n - `right [nb]`  : move the lines right nb characters. nb defaults to 1.\n - `left  [nb]`  : move the lines left nb characters. nb defaults to 1.\n - `begin`       : move the selection to the first line.\n - `end`         : move the selection to the last line.\n - `goto  [nb]`  : move the selection to le nb-eme line. If nb is out of range,\n                 the selection won't be moved.\n - `scroll mode` : set the scroll mode. mode must be either `pager`, `list` or\n                   `toggle`. If the scroll mode is `pager`, the list elements\n                   will be displayed page by page : when reaching the bottom of\n                   the screen, the selection will be placed on the top of the\n                   screen and new lines will be displayed, while in `list`\n                   mode, there will be a simple scrolling. `toggle` simply\n                   changes the actual scroll mode to the other one.\n - `hide mode id1 id2` : mode must be either `on`, `off` or `toggle`. If it is\n                   `on`, it will hide the lines which id is in [id1,id2]. If it\n                   is `off`, it will show the lines in [id1,id2]. Finally, if\n                   it is `toggle`, it will toggle the visibility of each line\n                   in [id1,id2].\n - `quit`        : end the program.\n - `exe str`     : str will be parsed as a command.\n - `map key cmd` : cmd will be executed when key combinaison is pressed. See\n                 keybinds paragraph for details of the syntax of key.\n - `feed prog`   : prog must the path to a program which will be spawned. Its\n                 stdout will be used to populate the list contents. See the\n                 feeding paragraph for details on how its output must be\n                 formatted.\n - `spawn prog`  : will spawn prog and read its output as a set of commands.\n - `term prog`   : prog will be spawned in a shell escape. It's stdout will be\n                 displayed to the used.\n - `refresh`     : redraw the screen.\n - `top [str]`   : set the contents of the top bar. If there is not str, the\n                   top bar will be disabled. There are symbols which will\n                   replaced by values : `%i` will be replaced by the index\n                   of the selected entry, `%I` will be replaced by the number\n                   of entries, `%n` will be replaced by the name of the\n                   selected entry and `%t` by its text.\n - `bot [str]`   : work the same as the top command, but for the bottom bar.\n - `color [part] [fg] [bg]` : define the background and foreground colors of a\n                            part of the interface. part can be either `top`,\n                            `bot`, `lst` or `sel`. `fg` and `bg` are colors,\n                            so they can be the name of any of the eight colors\n                            supported by ncurses.\n\n## Keybinds.\nTODO\n\n## Feeding\nThe feeding is the act of populating the list. It is done by a program setted\nby the `feed` command. The feeding program must output a list of entries, one\nin each line of its output. Each entry must include two parts, separated by a\ntabulation. The first part, which won't be displayed in the list, is the name\nof the entry. It cannot contain tabulations. It is used to refer to the entry\non the list. The second part is the string displayed in the list. It can\ncontains tabulations.\n\nNo sorting of any sort will be done : the entries will be displayed in the\norder they are outputed by the feeding program.\n\nUsing the feed command while there already was a feeding program setted will\nclear the list before setting the new feeding program.\n\n## Examples\nThe examples are here to show how to write scripts to use this program. For the\nmoment, there is only one. To execute it, you must launch the program with the\npath `examples/files/list.pl`, and then the directory you want to browse. The\ncontent of the directory will be displayed. You can move around with the arroy\nkey and the `return` key to open a file. If the file is a directory, its\ncontent will be displayed. If it is a regular file, it will be opened with vim.\nYou can change the action when opening a file by editing the\n`examples/files/open.pl` script.\n\n## TODO-list\n - [ ] write a complete documentation.\n - [X] let the user configure colors.\n - [X] handle UTF-8.\n - [ ] handle mouse.\n - [X] handle hiding.\n - [ ] handle combinaisons keybindings.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwarfmaster%2Finter_list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdwarfmaster%2Finter_list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwarfmaster%2Finter_list/lists"}