{"id":13514639,"url":"https://github.com/robobenklein/zinc","last_synced_at":"2025-09-09T06:31:34.294Z","repository":{"id":63361865,"uuid":"155907891","full_name":"robobenklein/zinc","owner":"robobenklein","description":"A blazing-fast, pure ZSH, mixed asynchronous powerline prompt that's easily extensible and extremely configurable.","archived":false,"fork":false,"pushed_at":"2023-08-30T03:18:56.000Z","size":415,"stargazers_count":35,"open_issues_count":6,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-03T12:32:13.259Z","etag":null,"topics":["async","powerline","zsh","zsh-async","zsh-theme"],"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/robobenklein.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":"2018-11-02T18:40:25.000Z","updated_at":"2024-01-27T03:20:52.000Z","dependencies_parsed_at":"2024-11-01T18:31:23.401Z","dependency_job_id":"ee886728-fb04-45e0-b164-52ca9610ceb1","html_url":"https://github.com/robobenklein/zinc","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/robobenklein%2Fzinc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robobenklein%2Fzinc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robobenklein%2Fzinc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robobenklein%2Fzinc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robobenklein","download_url":"https://codeload.github.com/robobenklein/zinc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232400127,"owners_count":18517351,"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":["async","powerline","zsh","zsh-async","zsh-theme"],"created_at":"2024-08-01T05:00:59.579Z","updated_at":"2025-01-03T21:49:39.909Z","avatar_url":"https://github.com/robobenklein.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"\n# ZINC\n\nInspired by Powerlevel9K, Agnoster, and friends this is a powerline theme written from scratch in pure ZSH. It supports mixed async segments using zsh-async as a backend.\n\n![ZINC Prompt Screenshot](presets/p10k-zsh-f-git-demo.png)\n\nZINC is ZSH software, not just shell scripts. (See https://github.com/zdharma/Zsh-100-Commits-Club )\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n\n- [Quickstart and Documentation](#quickstart-and-documentation)\n- [Why ZINC?](#why-zinc)\n- [Note about Icons and Symbols](#note-about-icons-and-symbols)\n- [Performance](#performance)\n- [GitLab vs GitHub](#gitlab-vs-github)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Quickstart and Documentation\n\nVisit the GitLab / GitHub Wiki! There you'll find docs about how to install and configure ZINC.\n\nIf you're looking for the individual segment options, look in the `zsdoc` folder in this repo. Each segment has it's docs autogenerated by Zshelldoc.\n\n## Why ZINC?\n\n - ZINC is configured and structured very differently from other themes\n   - ZSH associations (/dictionaries) are used for almost all options\n   - There's no central icon or segment registration\n   - Segments are free to do as they please\n - ZINC is a very small and lean code base that's quick to load.\n - ZINC is easily extensible (works via shell functions and zsh's `fpath`)\n - ZINC is completely customizable (make your own segments with a standard API!)\n\nZINC was built to support mixed async and non-async segments from the ground up. Git/HG/SVN information is loaded asynchronously, so your prompt is usable near instantly even on slow systems!\n\nAlso, async segments are smart:\n\n - redrawing the prompt doesn't start duplicate jobs\n - async output can be cached differently per-segment\n - custom async segments are easy to implement (3 shell functions) and require no changes or calls to ZINC code\n\n## Note about Icons and Symbols\n\nIf you're in it for the super-fancy icons from Nerd-Fonts, etc, Powerlevel9K is still a better choice as the advanced Icon registry and alternative font support is not present in ZINC by default.\n\nOfficial ZINC segments will only use Unicode, UTF-8, and icons from the powerline patched fonts in order to both ease setup/configuration and simplify a lot of the code for speed.\n\nSince it's supposed to be super easy to modify and make your own segments, we've left custom font icons up to the users for usage.\n\n## Performance\n\n - Only functions that get used are loaded via ZSH's `fpath` autoload functionality\n - **There are no external calls in the main thread.** Program calls and shell forking is all done in an async worker.\n - Prompt segments can be compiled to ZSH word code for better startup time. (Just execute `prompt_zinc_compile`)\n - ZSH builtins and binary modules are used instead of GNU utils / external binaries.\n\nPerformance comparison: (Mar. 2019) using [zsh-prompt-benchmark](https://github.com/romkatv/zsh-prompt-benchmark)\n\nZINC:\n```\n************************************************************\n                Prompt Benchmark Results\n************************************************************\nWarmup prompts (skipped)  5\nBenchmarked prompts       1841\nTotal time                5.002s\nTime per prompt           2.7ms\n************************************************************\n```\n\nPowerlevel9K: https://github.com/bhilburn/powerlevel9k\n```\n************************************************************\n                Prompt Benchmark Results\n************************************************************\nWarmup prompts (skipped)  5\nBenchmarked prompts       28\nTotal time                5.037s\nTime per prompt           179.9ms\n************************************************************\n```\n\nPure: https://github.com/sindresorhus/pure\n```\n************************************************************\n                Prompt Benchmark Results\n************************************************************\nWarmup prompts (skipped)  5\nBenchmarked prompts       3130\nTotal time                5.001s\nTime per prompt           1.6ms\n************************************************************\n```\n\n\u003e All tests done with Git information enabled and with the same git repo state on a machine using an nvme SSD.\n\n## GitLab vs GitHub\n\nZINC started on [GitLab](https://gitlab.com/robobenklein/zinc), but is mirrored to GitHub for availability purposes. Both the repo and the wiki are mirrored. (So `robobenklein/zinc` works in plugin managers with GitHub as the default.)\n\nIssues should be reported on [GitLab](https://gitlab.com/robobenklein/zinc/issues), as it has a slightly better issue tracker and allows things like file attachments.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobobenklein%2Fzinc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobobenklein%2Fzinc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobobenklein%2Fzinc/lists"}