powerlevel10k/internal/notes.md

198 lines
5.3 KiB
Markdown
Raw Normal View History

2020-04-06 08:27:02 +00:00
battery: use the same technique as in vpn_ip to avoid reset=2.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
implement fake gitstatus api on top of vcs_info (or plain git?) + worker and use it if there is no
gitstatus.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-02-28 10:48:42 +00:00
- call vcs_info on worker. the tricky question is what to display while "loading".
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-02-07 11:18:38 +00:00
- add _SHOW_SYSTEM to all *env segments.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-02-11 10:56:16 +00:00
- support states in SHOW_ON_COMMAND: POWERLEVEL9K_SEGMENT_STATE_SHOW_ON_COMMAND='...'
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
add POWERLEVEL9K_${SEGMENT}_${STATE}_SHOW_IN_DIR='pwd_pattern'; implement the same way as
SHOW_ON_UPGLOB. how should it interact with POWERLEVEL9K_${SEGMENT}_DISABLED_DIR_PATTERN?
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
add `p10k upglob`; returns 0 on match and sets REPLY to the directory where match was found.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
when directory cannot be shortened any further, start chopping off segments from the left and
replacing the chopped off part with `…`. e.g., `…/x/anchor/y/anchor`. the shortest dir
representation is thus `…/last` or `…/last` depending on whether the last segment is an anchor.
the replacement parameter's value is `…/` (with a slash) to allow for `x/anchor/y/anchor`.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-02-14 17:47:35 +00:00
- add to faq: how do i display an environment variable in prompt? link it from "extensible"
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-02-14 17:47:35 +00:00
- add to faq: how do i display an icon in prompt? link it from "extensible"
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-02-15 14:09:18 +00:00
- add root_indicator to config templates
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-02-15 14:09:18 +00:00
- test chruby and add it to config templates
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-02-15 14:09:18 +00:00
- add ssh to config templates
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-02-15 14:09:18 +00:00
- add swift version to config templates; see if there is a good pattern for PROJECT_ONLY
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-02-15 14:09:18 +00:00
- add swiftenv
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-02-24 11:26:00 +00:00
- add faq: how to customize directory shortening? mention POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER,
2020-04-06 08:27:02 +00:00
POWERLEVEL9K_DIR_MAX_LENGTH and co., and truncate_to_last.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
fix a bug in zsh: https://github.com/romkatv/powerlevel10k/issues/502. to reproduce:
```zsh
emulate zsh -o prompt_percent -c 'print -P "%F{#ff0000}red%F{green}%B bold green"'
```
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
add `p10k explain` that prints something like this:
```text
segment icons meaning
2020-04-06 17:52:13 +00:00
---
---
---
---
---
---
---
---
--
2020-04-06 08:27:02 +00:00
status ✔ ✘ exit code of the last command
```
implement it the hard way: for every enabled segment go over all its {state,icon} pairs, resolve
the icon (if not absolute), apply VISUAL_IDENTIFIER_EXPANSION, remove leading and trailing
whitespace and print without formatting (sort of like `print -P | cat`); print segment names in
green and icons in bold; battery can have an unlimited number of icons, so `...` would be needed
(based on total length of concatenated icons rather than the number of icons); user-defined
segments would have "unknown" icons by default (yellow and not bold); can allow them to
participate by defining `explainprompt_foo` that populates array `reply` with strings like this:
'-s STATE -i LOCK_ICON +r'; the first element must be segment description.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
add `docker_context` prompt segment; similar to `kubecontext`; the data should come from
`currentContext` field in `~/.docker/config.json` (according to
https://github.com/starship/starship/issues/995); there is also `DOCKER_CONTEXT`; more info:
https://docs.docker.com/engine/reference/commandline/context_use; also
https://github.com/starship/starship/pull/996.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-27 06:52:49 +00:00
support `env`, `ionice` and `strace` precommands in `parser.zsh`.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 08:53:36 +00:00
Add ruler to configuration wizard. Options: `─`, `·`, `╌`, `┄`, `▁`, `═`.
2020-04-06 17:52:13 +00:00
2020-04-06 08:53:36 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 08:53:36 +00:00
Add frame styles to the wizard.
```text
╭─
╰─
┌─
└─
┏━
┗━
╔═
╚═
▛▀
▙▄
```
Prompt connection should have matching options.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
Add `POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_MIRROR_SEPARATOR`. If set, left segments get separated with
`POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR` followed by `POWERLEVEL9K_LEFT_SEGMENT_MIRROR_SEPARATOR`.
Each is drawn without background. The first with the foreground of left segment, the second with
2020-06-15 15:56:32 +00:00
the background of right segment. To insert space in between, embed it in
`POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_MIRROR_SEPARATOR`.
2020-04-06 08:27:02 +00:00
`POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR` is unused.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
Add *Segment Connection* screen to configuration wizard with options *Fused*, *Touching* and
*Disjoint*. The last two differ by the absence/presence of space between `SEGMENT_SEPARATOR` and
`SEGMENT_MIRROR_SEPARATOR`.
*Fused* requires line separator (there is already a screen for it) but the other two options require
two filled separators similar to heads and tail. Figure out how to present this choice.
2020-04-06 17:52:13 +00:00
2020-04-06 08:27:02 +00:00
---
2020-04-06 17:52:13 +00:00
2020-04-06 09:02:00 +00:00
Optimize auto-wizard check.
```text
time ( repeat 1000 [[ -z "${parameters[(I)POWERLEVEL9K_*~(POWERLEVEL9K_MODE|POWERLEVEL9K_CONFIG_FILE)]}" ]] )
user=0.21s system=0.05s cpu=99% total=0.264
time ( repeat 1000 [[ -z "${parameters[(I)POWERLEVEL9K_*]}" ]] )
user=0.17s system=0.00s cpu=99% total=0.175
```
2020-05-09 13:13:01 +00:00
---
Add the equivalent of `P9K_PYTHON_VERSION` to all `*env` segments where it makes sense.
2020-05-18 04:44:28 +00:00
---
Define `P9K_ICON` on initialization. Fill it with `$icon`. Duplicate every key that ends in `_ICON`.
Respect `POWERLEVEL9K_VCS_STASH_ICON` overrides but not anything with segment name or state.
Define `POWERLEVEL9K_VCS_*` parameters in config templates for all symbols used in
`my_git_formatter`. Add missing entries to `icons`. Use `$P9K_ICON[...]` within `my_git_formatter`.
Add a screen to the wizard to choose between clear and circled icons.
2020-06-15 15:56:32 +00:00
---
Add a screen to the wizard asking whether to set `POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~'`.
Show it only if there is `$HOME/.git`. By default this parameter should be commented out.