README: Moving Dev Guide to Github wiki

pull/22/head
Ben Hilburn 10 years ago
parent 008512cc79
commit 3a857c276d

@ -48,6 +48,7 @@ like with a normal installation and default settings:
- [Gaps Between Segments](#gaps-between-segments) - [Gaps Between Segments](#gaps-between-segments)
- [Meta](#meta) - [Meta](#meta)
- [Kudos](#kudos) - [Kudos](#kudos)
- [Developing](#developing)
- [Contributions / Bugs / Contact](#contributions--bugs--contact) - [Contributions / Bugs / Contact](#contributions--bugs--contact)
<!-- END doctoc generated TOC please keep comment here to allow auto update --> <!-- END doctoc generated TOC please keep comment here to allow auto update -->
@ -414,6 +415,11 @@ This theme wouldn't have happened without inspiration from the original [agnoste
Before creating this theme, I also tried [jeremyFreeAgent's theme](https://github.com/jeremyFreeAgent/oh-my-zsh-powerline-theme) and [maverick2000's theme, ZSH2000](https://github.com/maverick2000/zsh2000). Before creating this theme, I also tried [jeremyFreeAgent's theme](https://github.com/jeremyFreeAgent/oh-my-zsh-powerline-theme) and [maverick2000's theme, ZSH2000](https://github.com/maverick2000/zsh2000).
#### Developing
Documentation for developers is kept on the [Powerlevel9k Github
wiki](https://github.com/bhilburn/powerlevel9k/wiki/Developers'-Guide).
#### Contributions / Bugs / Contact #### Contributions / Bugs / Contact
If you have any requests or bug reports, please use the tracker in this Github If you have any requests or bug reports, please use the tracker in this Github
@ -423,56 +429,3 @@ I'm happy to accept code contributions from anyone who has a bug fix, new featur
If you would like to contact me directly, you can find my e-mail address on my If you would like to contact me directly, you can find my e-mail address on my
[Github profile page](https://github.com/bhilburn). [Github profile page](https://github.com/bhilburn).
#### Developers Guide
The theme has grown a lot lately, so I think a little explanation would be
helpful.
##### Basic Knowledge
Our main entry point are the `PROMPT` and `RPROMPT` variables, which are
interpreted by zsh itself. All that this (and any other) theme does is
filling these two variables with control instructions (like defining
colors, etc.) and ready-to-use data. So within this theme we collect a
whole bunch of information to put in that variables. You can find
`PROMPT` and `RPROMPT` at the very end of the `powerlevel9k.zsh-theme`.
This simple diagram may explain the invoking order better:
```
+-----+ +---------+
| Zsh |--->| $PROMPT |
+-----+ +---------+
|
V
+---------------------+ +------------+ +---------------------+
| build_left_prompt() |--->| prompt_*() |->| $1_prompt_segment() |
+---------------------+ +------------+ +---------------------+
```
##### Adding Segments
Feel free to add your own segments. Every segment gets called with an
orientation as first parameter (`left` or `right`), so we can figure
out on which side we should draw the segment. This information is
used at the time we call the actual segment-drawing function:
`$1_prompt_segment`. To make the magic color-overwrite mechanism to
work, we have to pass our function name as first argument. Usually
this is just `$0`. Second parameter is a default background color,
third the default foreground color. And finally we pass our content
to the function. So our function could look somewhat like this:
```zsh
prompt_echo() {
local content='Hello World!'
$1_prompt_segment $0 blue red $content
}
```
At this point we can overwrite our blue-on-red segment by putting
POWERLEVEL9K_ECHO_FOREGROUND="200"
POWERLEVEL9K_ECHO_BACKGROUND="040"
in our `~/.zshrc`. We now have a pink-on-green segment. Yay!

Loading…
Cancel
Save