Commit graph

1083 commits

Author SHA1 Message Date
romkatv
182f0f7162 support true color
In order to use true color with Powerlevel10k you need ZSH >= 5.7 and a terminal that supports true
color. Here's how you can check whether you are covered.

    if autoload -U is-at-least && is-at-least 5.7; then
      echo "ZSH $ZSH_VERSION: supports true color"
    else
      echo "ZSH $ZSH_VERSION: does not support true color"
    fi

    if [[ $COLORTERM == (24bit|truecolor) || ${terminfo[colors]} -eq 16777216 ]]; then
      echo "Terminal supports true color"
    else
      echo "Terminal does not support true color"
    fi

To use true color with Powerlevel10k, use `#ffffff` format when specifying colors.

    POWERLEVEL9K_TIME_FOREGROUND='red'      # by name (type `getColorCode foreground` to list all)
    POWERLEVEL9K_TIME_BACKGROUND='001'      # by decimal code (usually 001 to 256)
    POWERLEVEL9K_TIME_BACKGROUND='#ff0000'  # by hex code (#000000 to #ffffff)

In order to be able to use the same configuration from a terminal without true color support,
add this to your ~/.zshrc:

    if [[ $COLORTERM != (24bit|truecolor) && ${terminfo[colors]} -ne 16777216 ]]; then
      zmodload zsh/nearcolor
    fi

When using a true color terminal, `#ffffff` will render as true color. When on an older terminal,
it'll render as the closest available color. Neat!

Fixes #62.
2019-04-30 12:56:24 +02:00
romkatv
361eec6f95 replace all -v checks with equivalents (trying to port to zsh 5.2) 2019-04-30 12:51:34 +02:00
Roman Perepelitsa
96f5482a8d
partial rollback of the previous commit: ${(P):-X} is not the same as ${(P)${:-X}} 2019-04-30 12:20:23 +02:00
romkatv
6ef8e2f0cf simplify: ${(x)${:-y}} => ${(x):-y} 2019-04-30 11:54:00 +02:00
romkatv
d29c30af3b move zsh version check to the top 2019-04-29 11:27:41 +02:00
romkatv
5fc6fca402 call "zle -R" after every "zle reset-prompt" 2019-04-25 10:24:53 +02:00
Ming Aldrich-Gan
91b2526c02 Add LINUX_RASPBIAN_ICON (Raspberry Pi icon) as an OS_ICON candidate 2019-04-05 11:35:01 -04:00
Sam Miller
2801642436 Add VCS_LOADING_ICON to the icons map 2019-04-01 18:14:52 -07:00
romkatv
d9505ef195 add extra diagnostics for old shells 2019-03-30 09:32:26 +01:00
Caleb Maclennan
20de3ac8fd
Always expand GIT_DIR to absolute path 2019-03-27 12:09:42 +03:00
Caleb Maclennan
983d9a4480
Obey GIT_DIR if set for vcsh compatability 2019-03-27 12:03:40 +03:00
romkatv
43b984494d print HEAD instead of commit if not available; do not call zle when illegal to do so 2019-03-24 18:05:48 +01:00
Mohammed Abdel Ra'ouf
b0e48cbdc8 add node_version only inside project folder option 2019-03-22 14:45:52 +02:00
romkatv
3fd0e63776 don't kill timer when subshells exit 2019-03-22 12:39:59 +01:00
romkatv
88d81a215f formatting 2019-03-22 10:01:16 +01:00
romkatv
a56b2c17d2 restore the copyright from the origin of powerlevel9k 2019-03-22 10:00:27 +01:00
romkatv
fc9c4b6f36 fix incoming changes in git prompt 2019-03-21 17:38:49 +01:00
romkatv
0ecf2636b4 stop using typeset when declaring functions; it's stupid 2019-03-21 15:02:41 +01:00
romkatv
573c172c97 make extended git styling options consistent with the existing styling options 2019-03-20 14:47:29 +01:00
romkatv
db48e0d62f simpler ws handling in git 2019-03-19 23:47:19 +01:00
romkatv
c04536ce70 restore "loading" git status 2019-03-19 23:39:07 +01:00
romkatv
ea13f92993 support individual styling for all parts of git prompt 2019-03-19 19:40:18 +01:00
romkatv
506598b521 support segments with multiple text elements 2019-03-19 17:56:56 +01:00
romkatv
604de18654 bail if someone tries to interpet powerlevel9k.zsh-theme with sh 2019-03-19 15:40:30 +01:00
romkatv
f0770b414e get rid of unwanted whitespaces; this time the wanted whitespaces should remain 2019-03-18 23:41:48 +01:00
romkatv
724f0e6d50 optimize prompt_context 2019-03-18 22:39:15 +01:00
romkatv
c38edde025 Revert "remove superfluous spaces from rprompt; optimize context"
This reverts commit a97892bc72.
2019-03-18 22:36:20 +01:00
romkatv
a97892bc72 remove superfluous spaces from rprompt; optimize context 2019-03-18 22:11:55 +01:00
romkatv
1164e3e2a2 add caching to simple_dir 2019-03-18 19:52:53 +01:00
romkatv
01f151fa1f bug fix: correctly handle consecutive segments without background 2019-03-18 17:46:08 +01:00
romkatv
85e9f4955b expand string parameters with (g::) where appropriate 2019-03-18 17:24:56 +01:00
romkatv
6e7ba25046 optimze prompt compiler 2019-03-18 16:08:37 +01:00
romkatv
bf0b128652 optimize left_prompt_segment further 2019-03-18 14:25:10 +01:00
romkatv
013b96efd3 optimize left_prompt_segment 2019-03-18 14:11:38 +01:00
romkatv
4af61b5fda make left and right more consistent 2019-03-17 15:52:18 +01:00
romkatv
1c6cb6bd50 simplify code a little 2019-03-17 15:06:46 +01:00
romkatv
0e8989019e close fifo descriptor on exec and ensure timer process exits 2019-03-17 14:01:30 +01:00
romkatv
ab43f19909 remove _P9K_H* stuff that is no longer necessary 2019-03-17 08:46:33 +01:00
romkatv
472f241598 fix regression in truncate_with_package_name; fixes #29 2019-03-17 08:07:29 +01:00
romkatv
1e2c81f696 move segment renderring logic to prompt expansion time 2019-03-16 21:04:41 +01:00
romkatv
d8ef83b59a be more aggressive in attempt to maintain correct prompt options 2019-03-16 14:10:19 +01:00
Barrett Brown
972bb3be6a
Specify command rm to bypass any aliases 2019-03-15 16:05:12 -04:00
romkatv
e413af55bb stupid typo 2019-03-15 20:41:45 +01:00
romkatv
753fb3feb5 bug fix: accidentally defined function named "local"... oops! 2019-03-15 20:37:56 +01:00
romkatv
bad4e62e93 kill timer process on exit 2019-03-15 19:14:10 +01:00
romkatv
5c816e13ca cleanup 2019-03-15 17:00:14 +01:00
romkatv
3153b33ade better quoting 2019-03-15 16:37:05 +01:00
romkatv
146d6cd232 make dir formatting a little less broken 2019-03-15 14:37:26 +01:00
romkatv
42f50bb9f6 escape properly 2019-03-15 14:11:53 +01:00
romkatv
ac04d7b952 speed up background_jobs 2019-03-14 23:38:39 +01:00
romkatv
44e5b8bcc1 Merge branch 'master' of github.com:romkatv/powerlevel10k 2019-03-14 20:43:37 +01:00
romkatv
264a10fb0d support tags and revisions in gitstatus-powered vcs segment; respect vcs hooks 2019-03-14 20:43:33 +01:00
Roman Perepelitsa
6defc51073
another shot in the dark 2019-03-14 19:59:19 +01:00
Roman Perepelitsa
1b8c1f177b
fix prompt_virtualenv 2019-03-14 19:55:13 +01:00
romkatv
8f2fae5a38 shot in the dark 2019-03-14 19:28:30 +01:00
romkatv
af9c7adfd0 fix linux distro icons 2019-03-14 18:00:10 +01:00
romkatv
20c4c6873e fix background_jobs; the segment now refreshes when jobs complete 2019-03-14 13:17:50 +01:00
romkatv
2d877f95fd fix POWERLEVEL9K_SHORTEN_DELIMITER 2019-03-14 08:23:19 +01:00
romkatv
46d70094e2 suppress "no such command: tput" on startup 2019-03-14 07:52:21 +01:00
romkatv
0fa2f7ba65 bail out when the theme is being sourced second time 2019-03-13 22:00:15 +01:00
romkatv
5ffc8f881c better init 2019-03-13 20:21:43 +01:00
romkatv
8de106d0e3 count suspended jobs too 2019-03-13 19:20:11 +01:00
romkatv
630ca49cf4 speed up prompt scaffolding 2019-03-13 18:52:22 +01:00
romkatv
ef1f958f2c fix vim_mode segment 2019-03-13 18:28:41 +01:00
romkatv
5ee0054298 don't read configuration options until the first precmd; plus massive refactoring and cleanup 2019-03-13 17:04:27 +01:00
romkatv
c9ee989e38 honor POWERLEVEL9K_MAX_CACHE_SIZE 2019-03-12 14:00:52 +01:00
romkatv
a0d2449c43 speed up time, date and custom prompts. saves 2.5ms overall 2019-03-12 08:29:33 +01:00
romkatv
afc1a07a71 add POWERLEVEL9K_EXPERIMENTAL_TIME_REALTIME 2019-03-11 19:12:53 +01:00
romkatv
14366ed0ce make git-is-slow stickier 2019-03-11 18:20:39 +01:00
romkatv
0aa667dbf8 fix bugs reported in https://github.com/romkatv/powerlevel10k/issues/9 2019-03-10 20:09:37 +01:00
romkatv
aad3301049 do not reset prompt after prompt_powerlevel9k_teardown 2019-03-08 14:24:42 +01:00
romkatv
ab913d8930 simplify and speed up caching 2019-03-08 12:24:50 +01:00
romkatv
02d836d6dc minor opitimization 2019-03-07 02:14:22 +01:00
romkatv
3241152934 define POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY; some cleanup 2019-03-07 00:56:54 +01:00
romkatv
1858bbdd20 wip 2019-03-06 23:04:06 +01:00
romkatv
00bc22e194 remove unnecessary caching 2019-03-04 18:12:23 +01:00
romkatv
a6eb14db5e space between >>! and the file name 2019-03-04 11:55:16 +01:00
romkatv
eaa555c00f bug fix: support POWERLEVEL9K_STATUS_VERBOSE=false 2019-03-04 03:22:14 +01:00
romkatv
da8f412197 use mkport in a portable way 2019-03-04 03:02:16 +01:00
romkatv
9e75070a88 make it work when CLOBBER is unset 2019-03-04 01:20:56 +01:00
romkatv
8f1dcdca84 formatting 2019-03-03 12:59:54 +01:00
romkatv
f20faf175b do not set POWERLEVEL9K_VCS_STATUS_COMMAND 2019-03-03 09:46:35 +01:00
romkatv
ab072ffe19 make it work with zplugin 2019-03-03 00:33:02 +01:00
romkatv
82635636f7 merge upstream 2019-03-02 17:22:06 +01:00
romkatv
e54b52ad26 fix how jobs are counted 2019-03-02 12:09:48 +01:00
Dominik Ritter
3057e8fc07 Backport @wrboyce fix for truncating dir with package name from #1158 2019-03-01 23:31:21 +01:00
romkatv
8cb27f335b remove useless assoc array 2019-03-01 21:56:50 +01:00
romkatv
ceae2d7422 remove most things 2019-03-01 21:45:36 +01:00
romkatv
71b763b692 start forking into powerlevel10k 2019-03-01 21:18:05 +01:00
romkatv
3122bec34b comment 2019-03-01 19:11:29 +01:00
romkatv
4c8f483cb5 change gitstatus protocol 2019-03-01 17:04:04 +01:00
romkatv
34f4658e5f change gitstatus protocol to something more suitable for daemon 2019-03-01 02:37:28 +01:00
romkatv
9d7aa4e530 move default prompt definitions to the top 2019-02-28 18:21:09 +01:00
romkatv
0b56d123ec speed up joins; get rid of _p9k_memoize_icon 2019-02-28 17:21:01 +01:00
romkatv
c344b4ee9d speed up the cache-miss branch of {left,right}_prompt_segment 2019-02-28 13:54:04 +01:00
romkatv
27a599e03e add dir-writable indicator to the dir prompt key 2019-02-28 08:37:24 +01:00
romkatv
77b319c0d3 update POWERLEVEL9K_VCS_STATUS_COMMAND example 2019-02-28 07:55:08 +01:00
romkatv
d9d8d8fc22 remove junk line 2019-02-28 07:54:15 +01:00
romkatv
46a4e1333e fix cache_key in vcs 2019-02-27 20:32:29 +01:00
romkatv
405a66b315 speed up the cache-miss branch of prompt_vcs 2019-02-27 20:16:35 +01:00
romkatv
42b44bbb8e add alternative vcs mode that doesn't use vcs_info 2019-02-27 18:43:21 +01:00
Dominik Ritter
613b798bb3
Merge pull request #1126 from Shini31/master
Use ip command for VPN segment - fix #1125
2019-02-26 00:07:51 +01:00
romkatv
e5b954fcae speed up by using globals instead of stdout and by caching basic prompt elements 2019-02-25 12:23:03 +01:00
romkatv
7611cfda98 bug fix: add current background to the cache key in {right,left}_prompt_segment 2019-02-25 07:04:33 +01:00
romkatv
968e1a618c add caching to speed up prompt generation 2019-02-24 20:16:04 +01:00
Dominik Ritter
dcd7718c62
Merge pull request #1149 from dritter/HaoZeke-fix-RVM
Fix RVM
2019-02-09 17:46:40 +01:00
Dominik Ritter
06151eeba9 Merge remote-tracking branch 'ben/master' into HEAD 2019-02-03 19:52:29 +01:00
Dominik Ritter
40e04e053c Parse IPs properly
This is done if we want to show a public IP, internal IP, or a VPN.
In the VPN case, what we actually want is to display an indicator
that a VPN is active, instead of the VPN IP itself. We parse the
IP here anyway, because we want to save some specific code there.
2019-02-03 19:20:14 +01:00
Dominik Ritter
22f6495005
Merge pull request #1151 from Wuestengecko/bugfix-1150
[Bugfix] Only abbreviate $HOME at the beginning of cwd
2019-02-02 00:48:54 +01:00
Dominik Ritter
08798d12ad
Merge pull request #1147 from dritter/fix_newlines_in_zsh57
Fix newlines in ZSH 5.7
2019-02-01 23:52:56 +01:00
Wuestengecko
8f60309386
Only abbreviate $HOME at the beginning of cwd
Fixes #1150
2019-02-01 17:43:52 +01:00
Dominik Ritter
5c7d1009de
Merge pull request #1148 from dritter/remove_nodeenv_disable_prompt
Remove checking for NODEENV_DISABLE_PROMPT
2019-02-01 17:06:10 +01:00
Dominik Ritter
bd340d4a88
Merge pull request #966 from ytang/fix-rprompt-icons-cut-off
[Bugfix] Fix icons cut off in RPROMPT segments
2019-02-01 14:19:02 +01:00
Dominik Ritter
2f05bbbb47 Remove checking for NODEENV_DISABLE_PROMPT
This variable is none of our buisness.
2019-02-01 11:09:42 +01:00
Dominik Ritter
020287dd75 Fix Segment endings if followed by newline 2019-02-01 11:01:59 +01:00
Ythildir
1a1572669c Fix white arrow on newline 2019-02-01 10:34:11 +01:00
HaoZeke
58f70e57e6 rvm: Use @natemccurdy review suggestions 2019-01-25 08:36:12 +01:00
HaoZeke
a41f2e81ae rvm: Only show version and patchset 2019-01-25 08:21:10 +01:00
HaoZeke
1da5fd2ed7 Revert "Huge performance improvement if you use rvm segment."
This reverts commit 643555a30c.

This does allow rvm to be detected even without using the depreciated
gemset settings.
2019-01-25 08:18:20 +01:00
Dominik Ritter
081000c49e Replace call to basename with ZSH internals #1128 2019-01-23 22:47:10 +01:00
Dominik Ritter
747b94b1b6 Match VPN interface fuzzy on Linux 2019-01-23 19:10:46 +01:00
Dominik Ritter
bde4337992 Match VPN Interface fuzzy 2019-01-23 18:56:07 +01:00
Dominik Ritter
54a985cb11 Simplify code that checks if a VPN is running 2019-01-23 01:02:42 +01:00
Dominik Ritter
480ade162b Improve tests 2019-01-23 01:01:49 +01:00
Dominik Ritter
da50151d24 Fix regular expression 2019-01-21 19:48:28 +01:00
Dominik Ritter
9b73c8bd9c Add tests 2019-01-21 19:46:53 +01:00
Ymage
ee7416962d Remove $VIRTUAL_ENV_DISABLE_PROMPT testing 2019-01-09 17:00:05 +01:00
Ymage
12e9724860 Merge with @dritter proposal 2019-01-07 09:18:34 +01:00
Ymage
a8db401808 [Bugfix] virtualenv prompt displaying
Fix #1127
2019-01-03 12:07:27 +01:00
Shini31
a8fa0332d2 Use ip command for VPN segment - fix #1125 2018-12-30 11:26:04 +01:00
Josselin Auguste
5c412b4d42 Update VIRTUAL_ENV_DISABLE_PROMPT value
Following prezto update
2018-11-18 19:54:03 +01:00
Dominik Ritter
5abac53698
Merge pull request #1037 from dritter/fix_vpn_ip_segment
Fix vpn_ip segment
2018-11-16 21:02:29 +01:00
Dominik Ritter
993de7aef9 Fix vpn_ip segment 2018-10-25 18:48:37 +02:00
Dominik Ritter
dc731f10e6 Make truncate with package name work without setting shorten length 2018-10-25 08:17:29 +02:00
Yang Tang
a98fa7ff54
Merge branch 'master' into fix-rprompt-icons-cut-off 2018-10-12 11:29:50 -04:00
Ben Hilburn
572b7a1299 Removing rbenv from default LPROMPT list. 2018-09-06 09:38:34 -04:00
Yang Tang
877ef61773 Fix icons cut off in RPROMPT segments 2018-08-22 14:37:52 -04:00
Dominik Ritter
2700cb46f5 Merge remote-tracking branch 'docwhat/pr/sudo-check' into prepare_066 2018-08-10 22:12:49 +02:00
Christian Höltje
3fb0383956 Use SUDO_COMMAND to check for sudo
`sudo -n true` only checks that we _could_ use `sudo`, not if we are in
a sudo session.

closes #852
2018-08-10 10:41:01 -04:00
Dominik Ritter
6daef84c60 Merge branch 'fix_colors' into prepare_066 2018-08-09 23:22:33 +02:00
Dominik Ritter
52ce9930bb Fix foreground colors in right prompt segments 2018-08-09 23:20:48 +02:00
Dominik Ritter
e0630d7573 Merge branch 'fix_colors' into prepare_066 2018-08-09 00:28:50 +02:00
Dominik Ritter
27fe2c6571 Make use of helper function in left_end_segment 2018-08-08 23:36:40 +02:00
Dominik Ritter
6f5827009f Fix colors for visual identifiers
Make the visual identifier color use numerical color codes as well. This
way colors like "purple3" work as visual identifier color.
2018-08-08 23:18:36 +02:00
Dominik Ritter
c7e543ff23 Merge branch 'fix_colors' into prepare_066 2018-08-08 02:03:03 +02:00
Dominik Ritter
93324c0600 Improve naming of variables
As a side effect this should improve the performance slightly, as we get
the fore- and background color codes as early as possible, and store the
result, so that we don't have to recalculate the color code all over.
2018-08-07 22:00:11 +02:00
Dominik Ritter
02506893a9 Remove duplicate variable 2018-08-07 21:58:32 +02:00
Dominik Ritter
bf9082bea9 Fix bug so that the segment separator of left middle has the right color
In short: the current background color was the unfiltered color and is
used to print the next segment separator. If the user set a color like
"purple3" that would result in a white segment separator as Terminal
Emulators do not understand the color "purple3".
2018-08-07 21:25:06 +02:00
Dominik Ritter
ebbdb3c1c0 Make purpose clear of backgroundColor and foregroundColor functions
The functions just start the colors, they do not end them. It seems
too much to have a function that terminates a color.
2018-08-07 21:21:15 +02:00
Dominik Ritter
3b8f0abdb2 Merge remote-tracking branch 'docwhat/pr/sudo-check' into prepare_066 2018-08-06 00:26:23 +02:00