{"id":19907876,"url":"https://github.com/leosunmo/yofi","last_synced_at":"2025-05-03T02:31:03.584Z","repository":{"id":144245438,"uuid":"205253924","full_name":"leosunmo/yofi","owner":"leosunmo","description":"Define Rofi menus using YAML","archived":false,"fork":false,"pushed_at":"2024-06-13T19:47:14.000Z","size":15,"stargazers_count":8,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-26T17:04:13.194Z","etag":null,"topics":["go","golang","i3","i3wm","rofi","yaml"],"latest_commit_sha":null,"homepage":"","language":"Go","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/leosunmo.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-29T21:33:32.000Z","updated_at":"2025-02-09T00:23:17.000Z","dependencies_parsed_at":"2024-11-12T20:46:18.537Z","dependency_job_id":"efa8cef6-bb96-499c-bc57-e190dc8b85f6","html_url":"https://github.com/leosunmo/yofi","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/leosunmo%2Fyofi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leosunmo%2Fyofi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leosunmo%2Fyofi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leosunmo%2Fyofi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leosunmo","download_url":"https://codeload.github.com/leosunmo/yofi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252133678,"owners_count":21699581,"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":["go","golang","i3","i3wm","rofi","yaml"],"created_at":"2024-11-12T20:44:10.372Z","updated_at":"2025-05-03T02:31:03.326Z","avatar_url":"https://github.com/leosunmo.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yofi - YAML defined Rofi menus\nYofi is a simple project that allows you to build Rofi menus in a YAML configuration file.\n\n## Usage\nBy default yofi looks for a `menu.yaml` file in the current directory, otherwise you can specify the YAML file as an argument.\nFor example, to run the shutdown menu, `yofi shutdown-menu.yaml`.\n\n## YAML config options\nHere's all of the options available.\n```yaml\n---\noptions:\n  stdout: true   # Print the final selection or script output to STDOUT\napp:\n- name: main   # Menu name\n  message: |   # Messages displayed at the top of the Rofi box\n    hello there!\n    This is multiline!\n  prompt: 'Select'   # Customise the prompt\n  items:\n    - name: \"Shutdown\"   # Name of the button in Rofi\n      command: shutdown-script   # Command to execute\n      confirm: Sure you want to shutdown?  # A confirmation box with this text will appear when this menu item is selected\n    - name: \"Other menu\"\n      menu: other-menu\n    - name: script not in path\n      command: ./not-in-path.sh   # If you want to execute a local script, use \"./\", by default it will search for the command in $PATH\n    - name: script doesn't exist\n      command: doesntexist   # Graceful exit with Rofi error message at the top of the screen.\n    - name: i3\n      command: i3  # Finds the executable using $PATH\n      args:        # Run \"i3\" which these arguments\n        - --version\n    - name: fail-script  # This script will fail and display a Rofi style error message\n      command: ./fail.sh\n- name: other-menu\n  message: This is another menu, select \"no\" to go back\n  items:\n    - name: \"Yes\" \n      return: \"This message will return to stdout\"   # Customise returned string, if not set, menu \"name\" is returned\n    - name: \"No\" \n      menu: main   # return to menu \"main\"\n  prompt: 'Y/N'\n```\n\n## Building\nDownload [Go](https://golang.org/dl/) and follow the [instructions](https://golang.org/doc/install#install)\n\nTL;DR installing 1.12.9 on Ubuntu-like systems:\n```\nwget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz\ntar -C /usr/local -xzf go1.12.9.linux-amd64.tar.gz\n\necho \"export PATH=$PATH:/usr/local/go/bin\" \u003e\u003e ~/.basrc # or ~/.profile\n\ngo version\n```\n\nClone this repo and build it.\n```\ngit clone https://github.com/leosunmo/yofi.git\ncd yofi\n\ngo build .\n```\n\nOr just use `go get` to install the binary only\n```\ngo get github.com/leosunmo/yofi\n\nwhich yofi\n# ~/go/bin/yofi\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleosunmo%2Fyofi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleosunmo%2Fyofi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleosunmo%2Fyofi/lists"}