{"id":19903668,"url":"https://github.com/regolith-linux/remontoire","last_synced_at":"2025-03-01T07:22:00.534Z","repository":{"id":37022773,"uuid":"230026694","full_name":"regolith-linux/remontoire","owner":"regolith-linux","description":"A keybinding viewer for i3 and other programs.","archived":false,"fork":false,"pushed_at":"2024-08-25T16:24:58.000Z","size":80,"stargazers_count":68,"open_issues_count":2,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-29T18:48:38.283Z","etag":null,"topics":["i3-wm","tiling-window-manager","vala"],"latest_commit_sha":null,"homepage":"","language":"Vala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/regolith-linux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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":"2019-12-25T02:07:47.000Z","updated_at":"2024-07-14T11:49:53.000Z","dependencies_parsed_at":"2023-12-19T04:22:34.668Z","dependency_job_id":"99989149-2dcf-4609-ae0b-075e949c5178","html_url":"https://github.com/regolith-linux/remontoire","commit_stats":{"total_commits":56,"total_committers":5,"mean_commits":11.2,"dds":0.0714285714285714,"last_synced_commit":"68d562c78d6e0094ca744bd7161c308f583e93e4"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regolith-linux%2Fremontoire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regolith-linux%2Fremontoire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regolith-linux%2Fremontoire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regolith-linux%2Fremontoire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/regolith-linux","download_url":"https://codeload.github.com/regolith-linux/remontoire/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241331022,"owners_count":19945278,"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":["i3-wm","tiling-window-manager","vala"],"created_at":"2024-11-12T20:24:49.954Z","updated_at":"2025-03-01T07:22:00.513Z","avatar_url":"https://github.com/regolith-linux.png","language":"Vala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Remontoire\n\n## Summary\n\n\u003ctable\u003e\u003ctr\u003e\u003ctd\u003e\n\u003cp\u003eRemontoire is a small (~71Kb) GTK app for presenting keybinding hints in a compact form suitable for tiling window environments.  It is intended for use with the i3 window manager but it's also able to display keybindings from any suitably formatted config file.\u003c/p\u003e\n\n\u003cp\u003eThe program functions by scanning and parsing comments in a specific format (described directly below), then displaying them in a one-layer categorized list view.  The program stores the state of which sections are expanded, allowing for use on screens with limited resolution.\u003c/p\u003e\n\u003c/td\u003e\u003ctd\u003e\u003cimg src=\"https://regolith-linux.org/regolith-site-r14-beta/docs/reference/releases/regolith-remontoire-screenshot-131.png\"/\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n## Model\n\nRemontoire utilizes the concept of a `category` to group items, `action` to denote the human description, and `keybinding` to define the specific keys corresponding to the action.  The format is designed to be both easily parsable by program but also readable in it's native form by people:\n\n```\n## \u003ccategory\u003e // \u003caction\u003e // \u003ckeybinding\u003e ## \u003creserved for user notes\u003e\n```\n\nText within `\u003ccategory\u003e`, `\u003caction\u003e`, and `\u003ckeybinding\u003e` must not contain the sequences `##`, `//`, or line feeds.\n\nExamples:\n\n```\n...\n## Navigate // Relative Window // \u003cSuper\u003e ↑ ↓ ← → ##\nbindsym $mod+Left focus left\n...\n```\n\n```\n...\n## Launch // Application // \u003cSuper\u003e Space ## some extra notes that are ignored by Remontoire but maybe of interest to those reading the config file.\nbindsym $mod+space exec $i3-wm.program.launcher.app\n```\n\nAny line that doesn't contain the structure listed here will be ignored.\n\n## Usage\n\n```\nUsage:\n  remontoire [OPTION?]\n\nHelp Options:\n  -h, --help                           Show help options\n\nApplication Options:\n  -v, --version                        Display version number\n  -s, --socket=\u003cSocket URI\u003e            Socket path for i3\n  -c \u003cPath to config file\u003e             Config file\n  -i \u003cRead from standard input\u003e        Read from standard input\n  -t \u003cPath to style file\u003e              CSS file\n  -p \u003ccomment line prefix\u003e             Prefix of comment line\n\n```\n\nWith `-s`, Remontoire communicates with i3 via domain sockets to retrieve the active i3 config file.  To determine the socket path on a system running i3:\n```bash\n$ i3 --get-socketpath\n```\n\nOr altogether:\n```bash\n$ remontoire -s `i3 --get-socketpath`\n```\n\nRemontoire can also be passed a file path and will read from that instead of the i3 socket.  In this mode, Remontoire can be used to display keybindings from any file that utilize the comment format.\n\n```bash\n$ remontoire -c /etc/something/interesting.conf\n```\n\nAs a third option to provide your config files, Remontoire can read from STDIN. Use this option\nif you want to pass in the contents of multiple config files.\n\nOnce executed Remontoire will display a sticky floating window on the right-center of the primary monitor. Upon first launch, all categories are collapsed.  User selections to open categories are persisted across instantiations of the program.\n\n### Toggle\n\nIt is suggested to use a small shell script to allow the dialog to be toggled on and off with a hotkey.  Here is one such script from Regolith:\n\n```\n#!/bin/bash\n# If remontoire is running, kill it.  Otherwise start it.\n\nremontoire_PID=$(pidof remontoire)\n\nif [ -z \"$remontoire_PID\" ]; then\n    /usr/bin/remontoire -s $(printenv I3SOCK) \u0026\nelse\n    kill $remontoire_PID\nfi\n```\n\n## Configuration\n\nRemontoire utilizes GLib settings to store configuration using the namespace `org.regolith-linux.remontoire`.  The following settings are available for user customization:\n\n### Window Position\n```\nwindow-position \u003cnorth|south|east|west\u003e\n```\n\n#### Example\n\n```bash\n$ gsettings set org.regolith-linux.remontoire window-position \"west\"\n```\n\n### Padding\n\nVertical and horizontal padding can be specified independently, allowing for bars or other UI widgets to be accounted for when placing the window.  The keys for padding are `window-padding-width` and `window-padding-height` and the value units are pixels.\n\n#### Example\n\n```bash\n$ gsettings set org.regolith-linux.remontoire window-padding-width 10\n$ gsettings set org.regolith-linux.remontoire window-padding-height 20\n```\n\n## Style\n\nYou can specify a custom CSS file to change the look of the dialog.  The built-in CSS as of version 1.3.0:\n\n```css\n.window {\n  margin: 4px;\n}\n\n*:selected {\n  background-color: @theme_bg_color;\n  color: @theme_text_color;\n}\n\n.category {\n  padding-top: 2px;\n  padding-bottom: 2px;\n  font-weight: bold;\n  font-size: .95em;\n  color: @theme_unfocused_fg_color;\n}\n\n.action {\n  padding-right: 10px;\n  padding-left: 15px;\n  font-weight: lighter;\n}\n\n.error {\n  padding: 15px;\n  font-size: 1.2em;\n  font-weight: bold;\n}\n\n.metakey {\n  font-family: monospace;\n  font-weight: normal;\n  background-color: @insensitive_bg_color;\n  border: 1px solid;\n  border-color: @insensitive_base_color;\n  color: @theme_unfocused_fg_color;\n\n  padding: 2px;\n  margin: 2px;\n  font-size: .9em;\n}\n\n.rangekey {\n  font-family: monospace;\n  font-weight: normal;\n  background-color: @insensitive_bg_color;\n  border: 1px solid;\n  border-color: @insensitive_base_color;\n  color: @theme_unfocused_fg_color;\n\n  padding: 2px;\n  margin: 2px;\n  font-size: .9em;\n}\n\n.key {\n  font-family: monospace;\n  font-weight: normal;\n  background-color: @insensitive_bg_color;\n  border: 1px solid;\n  border-color: @insensitive_base_color;\n  color: @theme_unfocused_fg_color;\n\n  padding: 2px;\n  margin: 2px;\n  font-size: .9em;\n}\n\n.detail {\n  margin: 2px;\n}\n```\n\n## Using Remontoire to view keybindings for arbitrary config files\n\nSince Remontoire parses comments and not actual keybindings, it can be used as a keybinding viewer for any app that stores keybindings in plain text and supports comments, like Sway or Vim. Use the `-c` or  `-i` options documented above to supply the config files. If config doesn't use `#` as a comment prefix, you use the `-p` option to supply comment prefix to go immediately before '##'. Here's an example of parsing a comment using Vim's quote character as a prefix:\n\n    echo '\"## Category // Description // \u003cSuper\u003e J ##' | remontoire -i -p '\"'\n\n## Install Package\n\n### Ubuntu\n\nRemontoire is available from the Regolith Linux `stable` PPA:\n\n```\n$ sudo add-apt-repository ppa:regolith-linux/stable\n$ sudo apt install remontoire\n```\n\n### openSUSE\n\nRemontoire is available from the X11:Utilities devel project:\n\n```\n$ sudo zypper ar -f obs://X11:Utilities X11Utilities\n$ sudo zypper ref\n$ sudo zypper in remontoire\n```\n\n## Build from Source\n\nMeson, Vala and Gtk+ libraries are required to build.  After downloading sources, from within the project root, execute the following:\n\n```bash\n$ meson build\n$ cd build\n$ ninja\n$ src/remontoire -c \u003cpath to your config\u003e\n... or ...\n$ src/remontoire -s `i3 --get-socketpath`\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fregolith-linux%2Fremontoire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fregolith-linux%2Fremontoire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fregolith-linux%2Fremontoire/lists"}