{"id":15209461,"url":"https://github.com/const-void/rose-pine-man","last_synced_at":"2025-08-23T06:10:48.327Z","repository":{"id":252570722,"uuid":"840693078","full_name":"const-void/rose-pine-man","owner":"const-void","description":"Soho vibes for man pages ","archived":false,"fork":false,"pushed_at":"2024-10-13T20:01:47.000Z","size":669,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-19T17:16:56.711Z","etag":null,"topics":["bash","man","rose-pine","theme","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/const-void.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":"2024-08-10T11:52:17.000Z","updated_at":"2025-06-26T05:21:20.000Z","dependencies_parsed_at":"2025-02-14T12:31:54.950Z","dependency_job_id":"81230f48-0820-4cca-9450-4236425385e9","html_url":"https://github.com/const-void/rose-pine-man","commit_stats":null,"previous_names":["const-void/rose-pine-man"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/const-void/rose-pine-man","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/const-void%2Frose-pine-man","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/const-void%2Frose-pine-man/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/const-void%2Frose-pine-man/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/const-void%2Frose-pine-man/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/const-void","download_url":"https://codeload.github.com/const-void/rose-pine-man/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/const-void%2Frose-pine-man/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271745695,"owners_count":24813516,"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","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bash","man","rose-pine","theme","zsh"],"created_at":"2024-09-28T07:40:20.020Z","updated_at":"2025-08-23T06:10:48.305Z","avatar_url":"https://github.com/const-void.png","language":"Shell","readme":"# rose-pine-man\nrose-pine color theme for `man` page viewing.\n\n![rose-pine-man](https://github.com/const-void/rose-pine-man/blob/main/doc/rose-pine-man.png)\n\n\n# Key features\n* Rose-pine colors are available for terminal use beyond man colors\n* Customizable + tweakable _truecolor_ man themes\n* Functions to help us learn about truecolor terminal colors\n\n# Quick Installation\nClone + add to `.zshrc`\n```zsh\n$ mkdir -p ~/.config/zsh/\n$ cd ~/.config/zsh\n$ git clone https://github.com/const-void/rose-pine-man.git\n$ vi ~/.zshrc\n...\nsource ~/.config/zsh/rose-pine-man/rose-pine-man.zsh\n...\n$ . ~/.zshrc\n$ man zsh\n```\n\n![rose-pine-man](https://github.com/const-void/rose-pine-man/blob/main/doc/rose-pine-man.png)\n\nWant to try other `rose-pine` themes or a `custom` one? We got you.  Need a transparent background? You are good.\n\n\n## rose-pine-moon\n```zsh\n# ~/.zshrc\nsource ~/.config/zsh/rose-pine-man/rose-pine-man.zsh\ncolorize_man rose-pine-moon\n# colorize_man rose-pine-moon transparent \n```\n\n\n![rose-pine-moon-man](https://github.com/const-void/rose-pine-man/blob/main/doc/rose-pine-moon-man.png)\n\n\n\n## rose-pine-dawn\n```zsh\n# ~/.zshrc\nsource ~/.config/zsh/rose-pine-man/rose-pine-man.zsh\ncolorize_man rose-pine-dawn\n# colorize_man rose-pine-dawn transparent\n```\n\n![rose-pine-dawn-man](https://github.com/const-void/rose-pine-man/blob/main/doc/rose-pine-dawn-man.png)\n\n## customized theme\n```zsh\n# ~/.zshrc\nsource ~/.config/zsh/rose-pine-man/rose-pine-man.zsh\ncolorize_man custom\n# colorize_man custom transparent\n```\n\nPlease see the tips+tricks section for customization hints!\n\n## transparency?\nBy default, we set the background to match the rose-pine theme.  However, if you are running a terminal with transparency and want to keep the transparency setting, simply pass in `transparent` as an optional second parameter. This activates logic that ignores setting background colors - only your terminal emulator can do actual transparency (alacritty et)\n\n```zsh\n# ~/.zshrc\nsource ~/.config/zsh/rose-pine-man/rose-pine-man.zsh\ncolorize_man rose-pine-moon transparent\n```\n\n## Credits\n* oh-my-zsh -- https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/colored-man-pages/colored-man-pages.plugin.zsh\n* less termcap -- https://unix.stackexchange.com/questions/108699/documentation-on-less-termcap-variables/108840#108840\n* terminal truecolor -- https://github.com/termstandard/colors\n\n### Try out different themes on the fly!\nTo try a different theme on the fly:\n```zsh\n$ colorize_man rose-pine\n$ man zsh\n$ colorize_man rose-pine-moon\n$ man zsh\n$ colorize_man rose-pine-dawn\n$ man zsh\n$ colorize_man custom\n$ man zsh\n\n## Settings that respect transparency\n$ colorize_man rose-pine transparent\n$ man zsh\n$ colorize_man rose-pine-moon transparent\n$ man zsh\n$ colorize_man rose-pine-dawn transparent\n$ man zsh\n```\n\n# Terminal notes\n**Assumptions:**\n* Terminal is truecolor ready...there are NO checks...use your eyes! (for now)\n* Tested with `zsh` on OSX w/alacritty\n* ANSI control character separator is `;`\n* ANSI escape control character is `\\033`\n\n\n**Term notes:**\n* OSX `Terminal.app` does not support true-color...at all.  Avoid for now.\n\n# Tips and tricks\nSome handy helper functions are included, prefixed with `term16m` to indicate they require truecolor (16 million colors) support.  \n\nTo use, invoke functions as commands inside an interactive terminal, and explore color theming! \n\nColor theming takes some trial and error.\n\n## Testing \nWhen tweaking colors, it can be helpful to quickly test. \n\nCheck out colors used by current color settings / theme...\n```zsh\n$ term16m_man_color_test\n```\n\nSee all the themes in one go...handy when customizing!  Note, this will reset your theme to the default.\n```zsh\n$ term16m_man_theme_color_test\n```\n\n## Trying out new colors\nWant to try different colors? No problem. `rose-pine.zsh` is intended to be modified by you! You do you. \n\nTheme colors are simply ANSI RGB values separated by \";\" stored in the following environment variables:\n\n| Variable              | Color Value                          |\n| --------------------- | ------------------------------------ |\n| `MAN_THEME_BG`        | Default background color (base)      |\n| `MAN_THEME_TXT`       | Default foreground color             |\n| `MAN_THEME_BG2`       | Secondary background color  (base+)  |\n| `MAN_THEME_UNDERLINE` | Color that replaces underline        |\n| `MAN_THEME_BOLD`      | Color that replaces bold             |\n| `MAN_THEME_BLINK`     | Color that replaces blink            |\n| `MAN_THEME_REVERSE`   | Color that replaces reverse          |\n\nTo change colors, simply set the above to ANSI RGB, where a byte is an integer 0-255.\n```zsh\n$ MAN_THEME_\u003csetting\u003e=\"\u003cred byte\u003e;\u003cgreen byte\u003e;\u003cblue byte\u003e\"\n$ man zsh\n```\n\n## Try out a completely new color\nFirst, to get a feel for what an ANSI RGB value looks like:\n```zsh\n$ term16m_rgb_to_ansi_rgb 255 128 237\n255;128;237\n```\n\nSimple enough, right? \n\nWe know that finding RGB out in the wild is tough! So we have a helper function to convert hex to r;g;b:\n```zsh\n$ term16m_hex_to_ansi_rgb '#ff80ed'\n255;128;237\n```\n\nThen set, say, text, to the color you like...`MAN_THEME_TXT`is super dramatic, so let's try that!\n```zsh\n$ MAN_THEME_TXT=\"255;128;237\"\n$ man zsh\n```\n\nIf things go crazy, reset your theme to one of the defaults\n```zsh\n$ colorize_man rose-pine\n$ man zsh\n```\n\n## Persisting customizations.\nAny customization / exploration we have done is temporary. \n\n### Lazy way\nOne way to persist custom themes is to simply override settings in your `.zshrc`:\n```zsh\n$ vi ~/.zshrc\n...\nsource ~/.config/zsh/rose-pine-man/rose-pine-man.zsh\nMAN_THEME_TXT=\"255;128;237\"\n...\n```\n\nWhile the above works and is quick, we lose the ability to try out themes, and in some cases...could be problematic.\n\n### Themeable way\nInstead, let's copy `rose-pine-man.zsh` to somewhere else, so we can make changes to that secondary location, without having our updates overwritten by updates to the `rose-pine-man` github repository.  \n\nNever fear--customizing login shell scripts is a time honored tradition!  So let's roll up our sleeves and get to it, and make _our_ theme, truly _yours_.\n\n## Make and use local copy\n```zsh\n$ cp ~/.config/zsh/rose-pine-man/rose-pine-man.zsh ~/.config/zsh/custom-man.zsh\n$ vi ~/.zshrc\n...\n# source ~/.config/zsh/rose-pine-man/rose-pine-man.zsh\nsource ~/.config/zsh/custom-man.zsh\ncolorize_man custom\n...\n$ . ~/.zshrc\n```\n\nIf we ever need to revert back, comment the line containing `custom-man.zsh` and uncomment `rose-pine-man.zsh`.\n\n\n## Applying custom colors\nLocations intended for us to customize have been identified by a `CUSTOMIZE-FOR-YOU` token.  For custom colors, there are two steps:\n1. Add your custom color\n2. Apply your custom color to the custom theme\n\n### Add custom color\nThe first step is to add custom colors..look for the second `CUSTOMIZE-FOR-YOU` token, and add your own colors!\n```zsh\n$ vi ~/.config/zsh/custom-man.zsh\n...\n##\n# CUSTOMIZE-FOR-YOU\n# suggest prefixing with my_\u003ccolor name\u003e but...you do you!\nmy_hot_pink=\"255;128;237\"\nmy_color_name_1=\"\u003cr\u003e;\u003cg\u003e;\u003cb\u003e\"\nmy_color_name_2=\"\u003cr\u003e;\u003cg\u003e;\u003cb\u003e\"\nmy_color_name_3=\"\u003cr\u003e;\u003cg\u003e;\u003cb\u003e\"\n...\n```\n\n### Apply custom color\nNow let's add our new custom colors to the custom theme.  Look for the first `CUSTOMIZE-FOR-YOU` token, and update with your desired color combination!\n```zsh\n...\n##\n# CUSTOMIZE-FOR-YOU\n#   Modify the below with your own colors!\n#   Suggest using variables, but feel free to use \u003cvar\u003e=\"r;g;b\"...you do you!\n\"custom\")\n  export MAN_THEME_BG=$my_color_name\n  export MAN_THEME_TXT=$my_hot_pink\n  export MAN_THEME_BG2=$rose_pine_highlight_med\n  export MAN_THEME_UNDERLINE=$my_other_color_name\n  export MAN_THEME_BOLD=$rose_pine_iris\n  export MAN_THEME_BLINK=$rose_pine_love\n  export MAN_THEME_REVERSE=$rose_pine_rose  \n...\n```\n\n### Try custom theme out\nSave, reload via `. ~/.zshrc`, and try it out! \n\nA common pattern is recommended to make edits in one terminal window or with one editor, and in another terminal window, reload and try out the changes!\n```zsh\n$ . ~/.zshrc\n$ colorize_man custom      #just in case we missed a step...\n$ term16m_man_color_test\n$ man ls\n```\n\n## Update default theme\nWe have put good work into our custom theme, so let's update `custom-man.zsh` to use our custom theme by default. Doing so will also make your `.zshrc` process a tiny bit faster.  \n\nUsing the editor of your choice...\n\nChange **from:**\n```zsh\nfunction colorize_man() {\n  local theme=\"rose-pine\" #default\n  ...\n```\n**To:**\n```zsh\nfunction colorize_man() {\n  local theme=\"custom\" #default\n  ...\n```\n\nUpdate your `.zshrc`...no need to specify custom!  \n```zsh\n...\n# source ~/.config/zsh/rose-pine-man/rose-pine-man.zsh\nsource ~/.config/zsh/custom-man.zsh\n...\n```\n\nRemember to reload your `.zshrc`:\n```zsh\n$ . ~/.zshrc\n$ term16m_man_color_test\n$ man ls\n```\n\n## Create new themes\nTo apply new themes...this part is not so elegant and...may change in the future! But, for the adventurous...read on!\n\nFirst, decide on a theme name; remember, kebab-case looks nice!  From here:\n* Next, we will add our theme name such that `colorize_man` recognizes the parameter.\n* Next, add your theme _to_ `colorize_man`\n* Finally, add your theme to `term16m_man_theme_color_test`\n\n\n### Add your new theme to the list of recognized themes\n```zsh\n...\n case \"${theme_input}\" in\n      ...\n      \"my-theme-name\") theme=${theme_input}\n      ;;\n      ...\n...\n```\n\n### Add your theme \n```zsh\n...\n    \"my-theme-name\")\n      export MAN_THEME_BG=$color1\n      export MAN_THEME_TXT=$color2\n      export MAN_THEME_BG2=$color3\n      export MAN_THEME_UNDERLINE=$color4\n      export MAN_THEME_BOLD=$color5\n      export MAN_THEME_BLINK=$color6\n      export MAN_THEME_REVERSE=$color7\n    ;;\n...\n```\n\n### Add your theme `term16m_man_theme_color_test()`\n```zsh\nfunction term16m_man_theme_color_test() {\n  ...\n   term16m_man_theme_test my-theme-name\n  ...\n```\n\n### Test out your theme\nRemember to reload your `.zshrc`:\n```zsh\n$ . ~/.zshrc\n$ color_man my-theme-name\n$ term16m_man_color_test\n$ man ls\n```\n\n# How it works\n`man` colors are applied via the `less` pager.  For whatever reason, the `less` pager has _undocumented_ environment variables that apply arbitrary text strings (that we have chosen to render true-color enabled ANSI terminal tokens) to different bits and pieces of the source man documents. \n\nNote that  environment variable names are case sensitive!\n\n| Less environment variable | Function              |\n| ------------------------- | --------------------- |\n| LESS_TERMCAP_md           | Activate bold         |\n| LESS_TERMCAP_mb           | Activate blink        |\n| LESS_TERMCAP_me           | Inactivate bold/blink |\n| LESS_TERMCAP_so           | Activate stand-out    |\n| LESS_TERMCAP_se           | Inactivate stand-out  |\n| LESS_TERMCAP_us           | Activate underline    |\n| LESS_TERMCAP_ue           | Inactivate underline  |\n\nNote that setting a global `export LESS_TERMCAP_md` can negatively impact other colorization functions that feed text through `less` -  for ex, `chroma` / `pygments` etc can render askew.  \n\nInstead of setting these environment variables globally, we use the `zsh` builtin `env` - this allows us to pass in an array of settings that apply once, to a _specific_ command, and protect the global less environment from our `man` color shenanigans.\n\nWe bundle all of the above in a  `function man()`...this way, we have better control over how the actual `man` command executes...including the ability to set a different default background/foreground text value!\n\n# To-Dos\n* Document how to use beyond `man`\n* Theme check / application is inelegant - load from `~/.config/zsh/theme`\n* Confirm linux compatibility\n* Confirm `bash` compatibility \n","funding_links":[],"categories":["Plugins"],"sub_categories":["ZSH on Windows"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconst-void%2Frose-pine-man","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconst-void%2Frose-pine-man","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconst-void%2Frose-pine-man/lists"}