Powerlevel10k est un thème pour Zsh. Il met l'accent sur la rapidité, la flexibilité et l'expérience prête à l'emploi.
exec zsh
.p10k configure
si l'assistant de configuration ne démarre pas automatiquement. Tapez p10k configure
pour accéder à l'assistant de configuration intégré directement depuis votre terminal.
Tous les styles, à l'exception de Pure, sont fonctionnellement équivalents. Ils affichent les mêmes informations et diffèrent uniquement par leur présentation.
L'assistant de configuration crée ~/.p10k.zsh
en fonction de vos préférences. Une personnalisation supplémentaire des invites peut être effectuée en modifiant ce fichier. Il contient de nombreux commentaires pour vous aider à naviguer dans les options de configuration.
Astuce : installez la police recommandée avant d'exécuter p10k configure
pour déverrouiller tous les styles d'invite.
FAQ :
Dépannage :
Lorsque vous appuyez sur ENTER , l'invite suivante apparaît instantanément. Avec Powerlevel10k, il n'y a pas de décalage d'invite. Si vous installez Cygwin sur Raspberry Pi, cd
dans un référentiel Linux Git et activez suffisamment de segments d'invite pour remplir quatre lignes d'invite des deux côtés de l'écran... attendez, c'est tout simplement fou et personne ne fait jamais ça. Probablement impossible aussi. Le fait est que l’invite Powerlevel10k est toujours rapide, peu importe ce que vous faites !
Notez comment l'effet de chaque commande est instantanément reflété par l'invite suivante.
Commande | Indicateur d'invite | Signification |
---|---|---|
timew start hack linux | ⌚ hack linux | suivi du temps activé dans timewarrior |
touch xy | ?2 | 2 fichiers non suivis dans le dépôt Git |
rm COPYING | !1 | 1 changement non organisé dans le dépôt Git |
echo 3.7.3 >.python-version | ? 3.7.3 | la version actuelle de python dans pyenv |
D'autres thèmes Zsh capables d'afficher les mêmes informations produisent un décalage d'invite ou une invite d'impression qui ne reflète pas l'état actuel du système, puis l'actualisent ultérieurement. Avec Powerlevel10k, vous obtenez des informations rapides et à jour.
FAQ : Est-ce vraiment rapide ?
Powerlevel10k comprend tous les paramètres de configuration Powerlevel9k.
La migration de Powerlevel9k vers Powerlevel10k est un processus simple. Tous vos paramètres de configuration POWERLEVEL9K
fonctionneront toujours. L'invite sera la même qu'avant (presque) mais elle sera beaucoup plus rapide (certainement).
FAQ :
Powerlevel10k peut produire la même invite que Pure. Tapez p10k configure
et sélectionnez Pure style.
Vous pouvez toujours utiliser les fonctionnalités Powerlevel10k telles que l'invite transitoire ou l'invite instantanée lorsque vous portez le style Pure.
Pour personnaliser l'invite, modifiez ~/.p10k.zsh
. Powerlevel10k ne reconnaît pas les paramètres de configuration Pure, vous devrez donc utiliser POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
au lieu de PURE_CMD_MAX_EXEC_TIME=3
, etc. Tous les paramètres pertinents se trouvent dans ~/.p10k.zsh
. Ce fichier contient de nombreux commentaires pour vous aider à vous y retrouver.
FAQ : Quel est le meilleur style d'invite dans l'assistant de configuration ?
Si votre ~/.zshrc
charge de nombreux plugins, ou peut-être juste quelques-uns lents (par exemple, pyenv ou nvm), vous avez peut-être remarqué que le démarrage de Zsh prend un certain temps.
Powerlevel10k peut supprimer le décalage de démarrage de Zsh même s'il n'est pas causé par un thème .
Cette fonctionnalité s'appelle Instant Prompt . Vous devez l'activer explicitement via p10k configure
ou manuellement. Il fait ce qui est écrit sur la boîte : imprime l'invite instantanément au démarrage de Zsh, vous permettant de commencer à taper pendant que les plugins sont encore en cours de chargement.
D'autres thèmes augmentent le décalage de démarrage de Zsh - certains beaucoup, d'autres un peu. Powerlevel10k le supprime carrément.
Si vous êtes curieux de savoir comment fonctionne Instant Prompt , consultez cette section dans zsh-bench.
FAQ : Comment configurer l'invite instantanée ?
Le comportement de certaines commandes dépend de l'environnement global. Par exemple, kubectl run ...
exécute une image sur le cluster défini par le contexte kubernetes actuel. Si vous changez fréquemment de contexte entre « prod » et « testing », vous souhaiterez peut-être afficher le contexte actuel dans l'invite Zsh. Si vous faites de même pour les informations d'identification AWS, Azure et Google Cloud, les invites seront assez encombrées.
Entrez Afficher sur commande . Cette fonctionnalité fait apparaître les segments d'invite uniquement lorsqu'ils sont pertinents pour la commande que vous êtes en train de saisir.
Les configurations créées par p10k configure
l'activation de l'affichage sur commande pour plusieurs segments d'invite par défaut. Voici le paramètre pertinent pour le contexte Kubernetes :
# Show prompt segment "kubecontext" only when the command you are typing invokes one of these tools.
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND= ' kubectl|helm|kubens '
Pour personnaliser le moment où différents segments d'invite sont affichés, ouvrez ~/.p10k.zsh
, recherchez SHOW_ON_COMMAND
et supprimez ces paramètres pour afficher les segments concernés sans condition, ou modifiez leurs valeurs.
Lorsque l'invite transitoire est activée via p10k configure
, Powerlevel10k réduira chaque invite lors de l'acceptation d'une ligne de commande.
L'invite transitoire facilite grandement le copier-coller d'une série de commandes à partir du défilement du terminal.
Astuce : Si vous activez l'invite transitoire, profitez de l'invite sur deux lignes. Vous bénéficierez d'un espace supplémentaire pour saisir des commandes sans l'inconvénient habituel d'une densité de défilement réduite. L'invite clairsemée (avec une ligne vide avant l'invite) fonctionne également très bien en combinaison avec une invite transitoire.
Le répertoire de travail actuel est peut-être le segment d'invite le plus important. Powerlevel10k s'efforce de mettre en évidence ses parties importantes et de le tronquer avec le moins de perte d'informations lorsque l'espace horizontal se raréfie.
Lorsque le répertoire complet ne rentre pas, le segment le plus à gauche est tronqué à son préfixe unique le plus court. Dans le screencast, ~/work
devient ~/wo
. Il ne pouvait pas être tronqué à ~/w
car cela serait ambigu (il y avait ~/wireguard
lors de l'enregistrement de la session). Le segment suivant -- projects
-- se transforme en p
car il n'y avait rien d'autre qui commençait par p
dans ~/work/
.
Les segments de répertoire sont affichés dans l'une des trois couleurs suivantes :
Astuce : Si vous copiez-collez un répertoire tronqué et appuyez sur TAB , il sera complété par l'original.
Dépannage : le répertoire est difficile à voir dans l'invite lors de l'utilisation du style Rainbow.
Powerlevel10k peut être configuré pour ressembler à n’importe quel autre thème Zsh.
Les émulations Pure, Powerlevel9k et robbyrussell sont intégrées. Pour émuler l'apparence d'autres thèmes, vous devrez écrire un fichier de configuration approprié. La meilleure façon de procéder est d'exécuter p10k configure
, de sélectionner le style le plus proche de votre objectif, puis de modifier ~/.p10k.zsh
.
La gamme complète d'apparences Powerlevel10k s'étend du spartiate :
À ridicule extravagant:
Powerlevel10k est livré avec des dizaines de segments d'invite intégrés de haute qualité qui peuvent afficher des informations provenant de diverses sources. Lorsque vous exécutez p10k configure
et choisissez n'importe quel style sauf Pure, bon nombre de ces segments sont activés par défaut tandis que d'autres peuvent être activés manuellement en ouvrant ~/.p10k.zsh
et en les décommentant. Vous pouvez activer autant de segments que vous le souhaitez. Cela ne ralentira pas votre invite ou le démarrage de Zsh.
Segment | Signification |
---|---|
anaconda | environnement virtuel de conda |
asdf | versions d'outils d'asdf |
aws | profil AWS |
aws_eb_env | environnement AWS Elastic Beanstalk |
azure | nom du compte Azure |
background_jobs | présence de jobs en arrière-plan |
battery | état de la batterie interne et niveau de charge (oui, les batteries sont littéralement incluses) |
command_execution_time | durée (temps de mur) de la dernière commande |
context | utilisateur@nom d'hôte |
cpu_arch | Architecture du processeur |
dir | répertoire de travail actuel |
direnv | statut direct |
disk_usage | utilisation du disque |
dotnet_version | version dotnet |
fvm | environnement Flutter de FVM |
gcloud | compte et projet Google Cloud cli |
goenv | aller à l'environnement de goenv |
google_app_cred | identifiants de l'application Google |
go_version | aller vers la version |
haskell_stack | version haskell de la pile |
ip | Adresse IP et utilisation de la bande passante pour une interface réseau spécifiée |
java_version | version Java |
jenv | environnement java de jenv |
kubecontext | contexte Kubernetes actuel |
laravel_version | version du framework laravel php |
load | Charge du processeur |
luaenv | environnement lua de luaenv |
midnight_commander | obus du commandant de minuit |
nix_shell | indicateur de coquille nix |
nnn | nnn coquille |
lf | si coquille |
chezmoi_shell | coquille chezmoi |
nodeenv | Environnement node.js de nodeenv |
nodenv | Environnement node.js de nodenv |
node_version | version node.js |
nordvpn | état de la connexion nordvpn |
nvm | Environnement node.js de NVM |
os_icon | le logo de votre système d'exploitation (pomme pour macOS, tourbillon pour Debian, etc.) |
package | name@version de package.json |
per_directory_history | Indicateur local/global Oh My Zsh par historique de répertoire |
perlbrew | version perl de perlbrew |
phpenv | environnement php de phpenv |
php_version | version php |
plenv | environnement perl de plenv |
prompt_char | symbole d'invite multifonctionnel ; change en fonction du mode vi : ❯ , ❮ , V , ▶ pour les modes insertion, commande, visuel et remplacement respectivement ; devient rouge en cas d'erreur |
proxy | proxy http/https/ftp à l'échelle du système |
public_ip | adresse IP publique |
pyenv | environnement python de pyenv |
ram | RAM libre |
ranger | coquille de ranger |
yazi | coquille de yazi |
rbenv | environnement rubis de rbenv |
rust_version | version rustique |
rvm | environnement Ruby de rvm |
scalaenv | version scala de scalaenv |
status | code de sortie de la dernière commande |
swap | troc d'occasion |
taskwarrior | nombre de tâches de TaskWarrior |
terraform | espace de travail Terraform |
terraform_version | version terraforme |
time | heure actuelle |
timewarrior | statut de suivi de TimeWarrior |
todo | choses à faire |
toolbox | nom de la boîte à outils |
vcs | Statut du dépôt Git |
vim_shell | vim shell ( :sh ) |
virtualenv | environnement python de venv |
vi_mode | mode vi (vous n'en avez pas besoin si vous avez activé prompt_char) |
vpn_ip | indicateur de réseau privé virtuel |
wifi | Vitesse Wi-Fi |
xplr | coque XPLR |
S'il n'y a pas de segment d'invite qui fait ce dont vous avez besoin, implémentez le vôtre. Powerlevel10k fournit une API publique pour définir des segments aussi rapides et flexibles que ceux intégrés.
Sous Linux, vous pouvez récupérer la température actuelle du processeur en lisant /sys/class/thermal/thermal_zone0/temp
. Le screencast montre comment définir un segment d'invite pour afficher cette valeur. Une fois le segment défini, vous pouvez l'utiliser comme n'importe quel autre segment. Tous les paramètres de personnalisation standard fonctionneront immédiatement.
Tapez p10k help segment
pour référence.
Remarque : Si vous modifiez les paramètres POWERLEVEL9K_*
dans un shell interactif déjà initialisé (par opposition à l'édition de ~/.p10k.zsh
), les modifications risquent de ne pas être immédiatement effectives. Pour appliquer les modifications, appelez p10k reload
. Le réglage de POWERLEVEL9K_DISABLE_HOT_RELOAD=false
élimine la nécessité d' p10k reload
mais entraîne une invite légèrement plus lente.
Astuce : Préfixez les noms de vos propres segments avec my_
pour éviter les conflits avec les futures versions de Powerlevel10k.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Les utilisateurs en Chine peuvent utiliser le miroir officiel sur gitee.com pour un téléchargement plus rapide.
Il s'agit de gitee.com.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
C'est le type d'installation le plus simple et il fonctionne même si vous utilisez un gestionnaire de plugins. Assurez-vous simplement de désactiver le thème actuel dans votre gestionnaire de plugins. Consultez le dépannage pour obtenir de l'aide.
Clonez le dépôt :
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
Les utilisateurs en Chine peuvent utiliser le miroir officiel sur gitee.com pour un téléchargement plus rapide.
Il s'agit de gitee.com.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
Ouvrez ~/.zshrc
, recherchez la ligne qui définit ZSH_THEME
et modifiez sa valeur en "powerlevel10k/powerlevel10k"
.
Ajoutez zstyle :prezto:module:prompt theme powerlevel10k
à ~/.zpreztorc
.
Ajoutez zmodule romkatv/powerlevel10k --use degit
à ~/.zimrc
et exécutez zimfw install
.
Ajoutez antibody bundle romkatv/powerlevel10k
à ~/.zshrc
.
Ajoutez romkatv/powerlevel10k
à ~/.zsh_plugins.txt
.
Ajoutez antigen theme romkatv/powerlevel10k
à ~/.zshrc
. Assurez-vous que antigen apply
quelque part après.
Ajoutez zplug romkatv/powerlevel10k, as:theme, depth:1
à ~/.zshrc
.
Ajoutez zgen load romkatv/powerlevel10k powerlevel10k
à ~/.zshrc
.
Ajoutez zplugin ice depth=1; zplugin light romkatv/powerlevel10k
vers ~/.zshrc
.
L’utilisation de glace depth=1
est facultative. Les autres types de glace ne sont ni recommandés ni officiellement pris en charge par Powerlevel10k.
Ajouter zinit ice depth=1; zinit light romkatv/powerlevel10k
vers ~/.zshrc
.
L’utilisation de glace depth=1
est facultative. Les autres types de glace ne sont ni recommandés ni officiellement pris en charge par Powerlevel10k.
Ajoutez zi ice depth=1; zi light romkatv/powerlevel10k
vers ~/.zshrc
.
L’utilisation de glace depth=1
est facultative. Les autres types de glace ne sont ni recommandés ni officiellement pris en charge par Powerlevel10k.
Ajoutez plug "romkatv/powerlevel10k"
à ~/.zshrc
.
brew install powerlevel10k
echo " source $( brew --prefix ) /share/powerlevel10k/powerlevel10k.zsh-theme " >> ~/.zshrc
yay -S --noconfirm zsh-theme-powerlevel10k-git
echo ' source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
zsh-theme-powerlevel10k-git référencé ci-dessus est le package officiel Powerlevel10k.
apk add zsh zsh-theme-powerlevel10k
mkdir -p ~ /.local/share/zsh/plugins
ln -s /usr/share/zsh/plugins/powerlevel10k ~ /.local/share/zsh/plugins/
Suivez les instructions sur cette page.
Lors de la première exécution, l'assistant de configuration Powerlevel10k vous posera quelques questions et configurera votre invite. S'il ne se déclenche pas automatiquement, tapez p10k configure
. L'assistant de configuration crée ~/.p10k.zsh
en fonction de vos préférences. Une personnalisation supplémentaire des invites peut être effectuée en modifiant ce fichier. Il contient de nombreux commentaires pour vous aider à naviguer dans les options de configuration.
FAQ :
Dépannage :
Si vous avez déjà utilisé Powerlevel9k, ne supprimez pas les options de configuration . Powerlevel10k les récupérera et vous fournira la même interface utilisateur d'invite à laquelle vous êtes habitué. Voir Compatibilité Powerlevel9k.
FAQ :
Dépannage : espaces supplémentaires ou manquants dans l'invite par rapport à Powerlevel9k.
Powerlevel10k ne nécessite pas de polices personnalisées mais peut en tirer parti si elles sont disponibles. Il fonctionne bien avec Nerd Fonts, Source Code Pro, Font Awesome, Powerline et même les polices système par défaut. Le choix complet d’options de style est disponible uniquement lors de l’utilisation des polices Nerd.
? Police recommandée : Meslo Nerd Font patchée pour Powerlevel10k. ?
Superbe police monospace conçue par Jim Lyles pour Bitstream, personnalisée par celui-ci pour Apple, personnalisée davantage par André Berg et enfin corrigée par votre serviteur avec des scripts personnalisés développés à l'origine par Ryan L McIntyre de Nerd Fonts. Contient tous les glyphes et symboles dont Powerlevel10k peut avoir besoin. Testé au combat sur des dizaines de terminaux différents sur tous les principaux systèmes d'exploitation.
FAQ : Comment a été créée la police recommandée ?
Si vous utilisez iTerm2 ou Termux, p10k configure
peut installer la police recommandée pour vous. Répondez simplement Yes
lorsqu'on vous demande si vous souhaitez installer Meslo Nerd Font .
Si vous utilisez un autre terminal, procédez à l’installation manuelle des polices. ?
MesloLGS NF
disponible pour toutes les applications de votre système.p10k configure
et répondez Yes
lorsqu'on vous demande si vous souhaitez installer Meslo Nerd Font . Vous pouvez également ouvrir iTerm2 → Preferences → Profiles → Text et définir Font sur MesloLGS NF
.MesloLGS NF
.fontFamily
sous module.exports.config
en MesloLGS NF
.terminal.integrated.fontFamily
dans la zone de recherche en haut de l'onglet Paramètres et définissez la valeur ci-dessous sur MesloLGS NF
. Consultez cette capture d'écran pour voir à quoi cela devrait ressembler ou consultez ce problème pour plus d'informations.MesloLGS NF Regular
.MesloLGS NF Regular
.MesloLGS NF Regular
.MesloLGS NF
.MesloLGS NF
.MesloLGS NF
.MesloLGS NF
.p10k configure
et répondez Yes
lorsqu'on vous demande si vous souhaitez installer Meslo Nerd Font .config
, allez dans Apparence , appuyez sur Ajouter une nouvelle police , appuyez sur Ouvrir la galerie , sélectionnez MesloLGS NF.css , appuyez sur importer et tapez exit
dans la vue d'accueil pour recharger la police.MesloLGS NF
.MesloLGS NF Regular
. Quittez la boîte de dialogue Préférences en cliquant sur Fermer .MesloLGS NF Regular
. Quittez la boîte de dialogue Préférences en cliquant sur Fermer .MesloLGS NF
. Si vous avez des sessions , vous devez modifier la police dans chacune d'elles via Paramètres → clic droit sur une session individuelle → Modifier la session → Paramètres du terminal → Paramètres de police .MesloLGS NF Regular
. Pour modifier la police des connexions de l'hôte distant, accédez à Preferences → Terminal Options → Look and Feel et remplacez Font: sous Terminal UI par MesloLGS NF Regular
.MesloLGS NF
.MesloLGS NF Regular
.MesloLGS NF
et cliquez sur OK . Cliquez sur OK pour enregistrer le profil. Sélectionnez le nouveau profil et cliquez sur Définir par défaut .~/.config/alacritty/alacritty.toml
et ajoutez-y la section suivante : [ font . normal ]
family = " MesloLGS NF "
~/.config/foot/foot.ini
et ajoutez-y la section suivante : font =MesloLGS NF: size =12
~/.config/kitty/kitty.conf
et ajoutez-y la ligne suivante : font_family MesloLGS NF
MesloLGS NF
. Nécessite une version PuTTY >= 0,75.$HOME/.config/wezterm/wezterm.lua
et ajoutez ce qui suit : local wezterm = require ' wezterm ' ;
return {
font = wezterm . font ( " MesloLGS NF " ),
}
~/.Xresources
et ajoutez-y la ligne suivante : URxvt.font: xft:MesloLGS NF:size=11
xrdb ~/.Xresources
pour la recharger. La nouvelle configuration est appliquée à tous les nouveaux terminaux.~/.Xresources
et ajoutez-y la ligne suivante : xterm*faceName: MesloLGS NF
xrdb ~/.Xresources
pour la recharger. La nouvelle configuration est appliquée à tous les nouveaux terminaux.~/.config/zed/settings.json
et définissez terminal.font_family
sur "MesloLGS NF"
. {
"terminal" : {
"font_family" : "MesloLGS NF"
} ,
// Other settings.
}
'MesloLGS NF'
(y compris les guillemets) et le CSS personnalisé (texte en ligne) comme suit : @font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Regular.ttf" );
font-weight : normal;
font-style : normal;
}
@font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Bold.ttf" );
font-weight : bold;
font-style : normal;
}
@font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Italic.ttf" );
font-weight : normal;
font-style : italic;
}
@font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Bold%20Italic.ttf" );
font-weight : bold;
font-style : italic;
}
~/.config/deepin/deepin-terminal/config.conf
et ajoutez-y la section suivante : [basic.interface.font]
value = " MesloLGS NF "
p10k configure
pour générer un nouveau ~/.p10k.zsh
. L'ancienne configuration peut ne pas fonctionner correctement avec la nouvelle police.Vous utilisez un autre terminal et savez comment définir la police correspondante ? Partagez vos connaissances en envoyant un PR pour élargir la liste !
Essayez Powerlevel10k dans Docker. Vous pouvez apporter en toute sécurité des modifications au système de fichiers tout en essayant le thème. Une fois que vous quittez Zsh, le conteneur est supprimé.
docker run -e TERM -e COLORTERM -e LC_ALL=C.UTF-8 -it --rm alpine sh -uec '
apk add git zsh nano vim
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo "source ~/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc
cd ~/powerlevel10k
exec zsh '
Astuce : Installez la police recommandée avant d'exécuter la commande Docker pour accéder à tous les styles d'invite.
Astuce : exécutez p10k configure
dans Docker pour essayer un style d'invite différent.
Powerlevel10k est publié sous licence MIT.
$HOME/.git
n'est-il pas affiché dans l'invite ?La commande pour mettre à jour Powerlevel10k dépend de la façon dont il a été installé.
Installation | Commande de mise à jour |
---|---|
Manuel | git -C ~/powerlevel10k pull |
Oh mon Zsh | git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull |
Prezto | zprezto-update |
Zim | zimfw update |
Antigène | antigen update |
Antidote | antidote update |
Zplug | zplug update |
Zgen | zgen update |
Plugin Z | zplugin update |
Zinite | zinit update |
Zi | zi update |
Zapper | zap update |
Homebrew | brew update && brew upgrade |
Arch Linux | yay -S --noconfirm zsh-theme-powerlevel10k-git |
Linux alpin | apk update && apk upgrade |
IMPORTANT : Redémarrez Zsh après la mise à jour de Powerlevel10k. N'utilisez pas source ~/.zshrc
.
Supprimez toutes les références à "p10k" de ~/.zshrc
. Vous pourriez avoir cet extrait en haut :
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
Et ceci en bas :
[[ ! -f ~ /.p10k.zsh ]] || source ~ /.p10k.zsh
Ceux-ci sont ajoutés par l'assistant de configuration. Retirez-les.
Supprimez toutes les références à "powerlevel10k" de ~/.zshrc
, ~/.zpreztorc
et ~/.zimrc
(certains de ces fichiers peuvent être manquants -- c'est normal). Ces références ont été ajoutées manuellement par vous-même lors de l'installation de Powerlevel10k. Reportez-vous aux instructions d'installation si vous avez besoin d'un rappel.
Vérifiez que toutes les références à "p10k" et "powerlevel10k" ont disparu de ~/.zshrc
, ~/.zpreztorc
et ~/.zimrc
.
grep -E ' p10k|powerlevel10k ' ~ /.zshrc ~ /.zpreztorc ~ /.zimrc 2> /dev/null
Si cette commande produit une sortie, il existe toujours des références à « p10k » ou « powerlevel10k ». Vous devez les supprimer.
Supprimez le fichier de configuration Powerlevel10k. Ce fichier est créé par l'assistant de configuration et peut contenir des modifications manuelles par vous-même.
rm -f ~ /.p10k.zsh
Supprimez les fichiers sources Powerlevel10k. Ces fichiers ont été téléchargés lorsque vous avez installé Powerlevel10k. La commande pour les supprimer dépend de la méthode d'installation que vous avez choisie. Reportez-vous aux instructions d'installation si vous avez besoin d'un rappel.
Installation | Commande de désinstallation |
---|---|
Manuel | rm -rf ~/powerlevel10k |
Oh mon Zsh | rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k |
Prezto | n / A |
Zim | zimfw uninstall |
Antigène | antigen purge romkatv/powerlevel10k |
Antidote | antidote purge romkatv/powerlevel10k |
Zplug | zplug clean |
Zgen | zgen reset |
Plugin Z | zplugin delete romkatv/powerlevel10k |
Zinite | zinit delete romkatv/powerlevel10k |
Zi | zi delete romkatv/powerlevel10k |
Zapper | zsh -ic 'zap clean' |
Homebrew | brew uninstall powerlevel10k |
Arch Linux | yay -R --noconfirm zsh-theme-powerlevel10k-git |
Linux alpin | apk del zsh-theme-powerlevel10k |
Redémarrez Zsh. N'utilisez pas source ~/.zshrc
.
Supprimez les fichiers de cache Powerlevel10k.
rm -rf -- " ${XDG_CACHE_HOME :- $HOME / .cache} " /p10k- * (N) " ${XDG_CACHE_HOME :- $HOME / .cache} " /gitstatus
uname -sm | tr ' [A-Z] ' ' [a-z] '
target_uname
par le résultat de la commande précédente : target_uname= " replace this with the output of the previous command "
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
GITSTATUS_CACHE_DIR= " $HOME " /powerlevel10k/gitstatus/usrbin ~ /powerlevel10k/gitstatus/install -f -s " ${target_uname % * } " -m " ${target_uname #* } "
~/powerlevel10k
de la machine connectée à Internet vers celle sans accès à Internet.source ~/powerlevel10k/powerlevel10k.zsh-theme
à ~/.zshrc
sur la machine sans accès à Internet : echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
~/.zshrc
sur la machine sans accès Internet définit ZSH_THEME
, supprimez cette ligne. sed -i.bak ' /^ZSH_THEME=/d ' ~ /.zshrc
Pour mettre à jour, supprimez ~/powerlevel10k
sur les deux machines et répétez les étapes 1 à 3.
La meilleure façon de demander de l’aide et de signaler des bugs est d’ouvrir un ticket.
Gitter est une autre option.
Si tout le reste échoue, envoyez un e-mail à [email protected].
Si nécessaire, chiffrez votre communication avec cette clé PGP.
Powerlevel10k définit l'invite et rien d'autre. Il définit les options liées aux invites et les paramètres PS1
et RPS1
.
Tout ce qui se trouve dans les zones en surbrillance sur la capture d'écran est produit par Powerlevel10k. Powerlevel10k n'a aucun contrôle sur le contenu ou les couleurs du terminal en dehors de ces zones.
Powerlevel10k n’affecte pas :
ls
.git
.PS1
et RPS1
.p10k
. # Add powerlevel10k to the list of Oh My Zsh themes.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM /themes/powerlevel10k
# Replace ZSH_THEME="powerlevel9k/powerlevel9k" with ZSH_THEME="powerlevel10k/powerlevel10k".
sed -i.bak ' s/powerlevel9k/powerlevel10k/g ' ~ /.zshrc
# Restart Zsh.
exec zsh
p10k configure
et choisissez votre style d'invite préféré.En rapport:
Oui. Voir zsh-bench ou une comparaison directe avec Powerlevel9k et Spaceship.
Consultez l'invite instantanée pour en savoir plus sur l'invite instantanée. Cette section explique comment vous pouvez l'activer et le configurer et répertorie les mises en garde dont vous devez être conscient.
L'invite instantanée peut être activée soit via p10k configure
, soit en ajoutant manuellement l'extrait de code suivant en haut de ~/.zshrc
:
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
Il est important que vous recopiez les lignes textuellement. Ne remplacez pas source
par autre chose, n'appelez pas zcompile
, ne redirigez pas la sortie, etc.
Lorsque l'invite instantanée est activée, pendant la durée de l'initialisation Zsh, l'entrée standard est redirigée vers /dev/null
et la sortie standard avec l'erreur standard est redirigée vers un fichier temporaire. Une fois Zsh entièrement initialisé, les descripteurs de fichiers standard sont restaurés et le contenu du fichier temporaire est imprimé.
Lorsque vous utilisez l'invite instantanée, vous devez vérifier attentivement toute sortie qui apparaît au démarrage de Zsh, car elle peut indiquer que l'initialisation a été modifiée, voire interrompue, par l'invite instantanée. Le code d'initialisation qui peut nécessiter une saisie dans la console, comme demander un mot de passe de trousseau de clés ou une confirmation [o/n] , doit être déplacé au-dessus du préambule de l'invite instantanée dans ~/.zshrc
. Le code d'initialisation qui s'imprime simplement sur la console mais ne le lit jamais fonctionnera correctement avec une invite instantanée, bien que la sortie qui a normalement des couleurs puisse apparaître sans couleur. Vous pouvez soit le laisser tel quel, supprimer la sortie ou le déplacer au-dessus du préambule de l'invite instantanée.
Voici un exemple de ~/.zshrc
qui s'interrompt lorsque l'invite instantanée est activée :
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
keychain id_rsa --agents ssh # asks for password
chatty-script # spams to stdout even when everything is fine
# ...
Version fixe :
keychain id_rsa --agents ssh # moved before instant prompt
# OK to perform console I/O before this point.
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
# From this point on, until zsh is fully initialized, console input won't work and
# console output may appear uncolored.
chatty-script > /dev/null # spam output suppressed
# ...
Si POWERLEVEL9K_INSTANT_PROMPT
n'est pas défini ou est défini sur verbose
, Powerlevel10k imprimera un avertissement lorsqu'il détectera la sortie de la console lors de l'initialisation pour attirer l'attention sur des problèmes potentiels. Vous pouvez faire taire cet avertissement (sans supprimer la sortie de la console) avec POWERLEVEL9K_INSTANT_PROMPT=quiet
. Ceci est recommandé si un code d'initialisation dans ~/.zshrc
s'imprime sur la console et qu'il est impossible de le déplacer au-dessus du préambule de l'invite instantanée ou de supprimer sa sortie. Vous pouvez désactiver complètement l'invite instantanée avec POWERLEVEL9K_INSTANT_PROMPT=off
. Faites ceci si l'invite instantanée interrompt l'initialisation de Zsh et que vous ne savez pas comment y remédier.
La valeur de POWERLEVEL9K_INSTANT_PROMPT
peut être modifiée en exécutant p10k configure
et en sélectionnant l'option appropriée sur l'écran d'invite instantanée . Vous pouvez également rechercher POWERLEVEL9K_INSTANT_PROMPT
dans le ~/.p10k.zsh
existant et y modifier sa valeur.
Remarque : L'invite instantanée nécessite Zsh >= 5.4. Vous pouvez l'activer même lorsque vous utilisez une ancienne version de Zsh, mais cela ne fera rien.
FAQ :
Si vous avez activé l'invite instantanée, vous devriez avoir ces lignes en haut de ~/.zshrc
:
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
Pour initialiser direnv, vous devez ajouter une ligne au-dessus de ce bloc et une ligne en dessous.
(( ${+commands[direnv]} )) && emulate zsh -c " $( direnv export zsh ) "
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
(( ${+commands[direnv]} )) && emulate zsh -c " $( direnv hook zsh ) "
Connexe : Comment exporter GPG_TTY lors de l'utilisation de l'invite instantanée ?
Vous pouvez exporter GPG_TTY
comme ceci n'importe où dans ~/.zshrc
:
export GPG_TTY= $TTY
Cela fonctionne que vous utilisiez ou non l'invite instantanée. Cela fonctionne même si vous n'utilisez pas powerlevel10k. En prime, c'est beaucoup plus rapide que l' export GPG_TTY=$(tty)
.
Connexe : Comment initialiser direnv lors de l'utilisation de l'invite instantanée ?
Lorsque vous utilisez le style Lean, Classic ou Rainbow, le statut de Git peut ressembler à ceci :
feature:master wip ⇣42⇡42 ⇠42⇢42 *42 merge ~42 +42 !42 ?42
Symbole | Signification | Source |
---|---|---|
feature | branche actuelle ; remplacé par #tag ou @commit si ce n'est pas sur une branche | git status --ignore-submodules=dirty |
master | succursale de suivi à distance ; affiché uniquement si différent de la succursale locale | git rev-parse --abbrev-ref --symbolic-full-name @{upstream} |
wip | le résumé du dernier commit contient "wip" ou "WIP" | git show --pretty=%s --no-patch HEAD |
= | à jour avec la télécommande (ni devant ni derrière) | git rev-list --count HEAD...@{upstream} |
⇣42 | autant de commits derrière la télécommande | git rev-list --right-only --count HEAD...@{upstream} |
⇡42 | autant de engagements avant la télécommande | git rev-list --left-only --count HEAD...@{upstream} |
⇠42 | autant d'engagements derrière la télécommande push | git rev-list --right-only --count HEAD...@{push} |
⇢42 | autant d'engagements avant le push distant | git rev-list --left-only --count HEAD...@{push} |
*42 | autant de cachettes | git stash list |
merge | état du référentiel | git status --ignore-submodules=dirty |
~42 | autant de conflits de fusion | git status --ignore-submodules=dirty |
+42 | ces nombreux changements par étapes | git status --ignore-submodules=dirty |
!42 | ces nombreux changements non mis en scène | git status --ignore-submodules=dirty |
?42 | autant de fichiers non suivis | git status --ignore-submodules=dirty |
─ | le nombre de fichiers préparés, non préparés ou non suivis est inconnu | echo $POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY ou git config --get bash.showDirtyState |
Connexe : Comment changer le format du statut Git ?
Pour changer le format du statut Git, ouvrez ~/.p10k.zsh
, recherchez my_git_formatter
et modifiez son code source.
Connexe : Que signifient les différents symboles dans le statut Git ?
$HOME/.git
n'est-il pas affiché dans l'invite ? Lors de l'utilisation de style maigre, classique ou arc-en-ciel, ~/.p10k.zsh
contient le paramètre suivant:
# Don't show Git status in prompt for repositories whose workdir matches this pattern.
# For example, if set to '~', the Git repository at $HOME/.git will be ignored.
# Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'.
typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN= ' ~ '
Pour voir le statut GIT pour $HOME/.git
dans l'invite, ouvrez ~/.p10k.zsh
et supprimez POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN
.
TL; DR: Lorsque l'état GIT dans l'invite est grisé, cela signifie que PowerLevel10k compose actuellement le statut GIT à jour en arrière-plan. L'invite sera automatiquement actualisée à la fin de ce calcul.
Lorsque votre répertoire actuel se situe dans un référentiel GIT, PowerLevel10k calcule l'état GIT à jour après chaque commande. Si le référentiel est grand ou si la machine est lente, ce calcul peut prendre un peu de temps. S'il prend plus de 10 millisecondes (configurable via POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS
), PowerLevel10k affiche le dernier statut GIT connu en gris et continue de calculer l'état GIT à jour en arrière-plan. Lorsque le calcul se termine, PowerLevel10K actualise l'invite avec de nouvelles informations, cette fois avec un statut git coloré.
Lors de l'utilisation du style arc-en-ciel , le statut GIT est affiché comme noir sur gris alors qu'il est toujours calculé. Selon la palette de couleurs terminales, cela peut être difficile à lire. Dans ce cas, vous voudrez peut-être changer la couleur d'arrière-plan en quelque chose de plus léger pour plus de contraste. Pour ce faire, ouvrez ~/.p10k.zsh
, recherchez POWERLEVEL9K_VCS_LOADING_BACKGROUND
, décommentez-le s'il est commenté et modifiez la valeur.
typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=244
Tapez source ~/.p10k.zsh
pour appliquer vos modifications à la session ZSH actuelle.
CONNEXES : Comment changer les couleurs des invites?
Lorsque vous utilisez un style maigre, classique ou arc-en-ciel, l'invite montre username@hostname
lorsque vous êtes connecté comme root ou via ssh. Il y a peu de valeur à afficher username
ou hostname
lorsque vous êtes connecté à votre machine locale en tant qu'utilisateur normal. Ainsi, l'absence de username@hostname
dans votre invite est une indication que vous travaillez localement et que vous n'êtes pas root. Vous pouvez cependant le changer.
Ouvert ~/.p10k.zsh
. Près du haut, vous pouvez voir les paramètres les plus importants qui définissent les segments affichés dans votre invite. Tous les segments invites généralement utiles y sont répertoriés. Certains d'entre eux sont activés, d'autres sont commentés. L'un d'eux vous intéresse.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
...
context # user@hostname
...
)
Recherchez le context
pour trouver la section dans la configuration qui répertorie les paramètres spécifiques à ce segment invite. Vous devriez voir les lignes suivantes:
# Don't show context unless running with privileges or in SSH.
# Tip: Remove the next line to always show context.
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
Si vous suivez la pointe et supprimez (ou commentez) la dernière ligne, vous verrez toujours username@hostname
dans invite. Vous pouvez modifier le format en username
unique ou modifier la couleur, en ajustant les valeurs des paramètres à proximité. Il existe de nombreux commentaires pour vous aider à naviguer.
Vous pouvez également déplacer context
vers une position différente dans POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
ou même vers POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
.
Les segments d'invite peuvent être configurés pour être affichées uniquement lorsque la commande actuelle que vous tapez invoque un outil pertinent.
# Show prompt segment "kubecontext" only when the command you are typing invokes
# invokes kubectl, helm, or kubens.
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND= ' kubectl|helm|kubens '
Les configurations créées par p10k configure
peuvent contenir des paramètres de ce type. Pour personnaliser lorsque différents segments d'invite sont affichés, ouvrez ~/.p10k.zsh
, recherchez SHOW_ON_COMMAND
et supprimez ces paramètres ou modifiez leurs valeurs.
Vous pouvez également définir une fonction dans ~/.zshrc
pour basculer l'affichage d'un segment rapide entre toujours et sur commande . Ceci est similaire à kubeon
/ kubeoff
de Kube-PS1.
function kube-toggle() {
if (( ${+POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND} )) ; then
unset POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND
else
POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND= ' kubectl|helm|kubens '
fi
p10k reload
if zle ; then
zle push-input
zle accept-line
fi
}
Invoquez cette fonction en tapant kube-toggle
. Vous pouvez également le lier à une clé en ajoutant deux autres lignes à ~/.zshrc
:
zle -N kube-toggle
bindkey ' ^] ' kube-toggle # ctrl-] to toggle kubecontext in powerlevel10k prompt
Vous pouvez soit modifier la palette de couleurs utilisée par votre terminal ou définir des couleurs via des paramètres de configuration PowerLevel10k.
La façon dont vous modifiez exactement la palette de couleurs terminales (palette de couleurs ou thème) dépend du type de terminal que vous utilisez. Regardez autour de vous dans les paramètres / préférences du terminal ou consultez la documentation.
Lorsque vous modifiez la palette de couleurs terminales, elle n'affecte généralement que les 16 premières couleurs, numérotées de 0 à 15. Afin de voir tout effet sur l'invite PowerLevel10K, vous devez utiliser un style d'invite qui utilise ces couleurs à faible nombre. Tapez p10k configure
et sélectionnez Rainbow , Lean → 8 couleurs ou pur → Original . D'autres styles utilisent des couleurs plus élevées, ils ont donc la même apparence dans n'importe quelle palette de couleurs terminales.
Ouvrir ~/.p10k.zsh
, rechercher "couleur", "premier plan" et "fond" et modifier les valeurs des paramètres appropriés. Par exemple, voici comment vous pouvez définir le premier segment de l'invite time
vers le rouge vif:
typeset -g POWERLEVEL9K_TIME_FOREGROUND=160
Les couleurs sont spécifiées en utilisant des nombres de 0 à 255. Les couleurs de 0 à 15 sont consultées différemment dans différentes terminaux. De nombreux terminaux prennent également en charge la personnalisation de ces couleurs à travers des palettes de couleurs (aka schémas de couleurs ou thèmes). Les couleurs de 16 à 255 sont toujours la même.
Tapez source ~/.p10k.zsh
pour appliquer vos modifications à la session ZSH actuelle.
Pour voir à quoi ressemblent les couleurs numérotées dans votre terminal, exécutez la commande suivante:
for i in {0..255} ; do print -Pn " %K{ $i } %k%F{ $i } ${(l : 3 :: 0 : )i} %f " ${ ${(M)$((i % 6)) :# 3} : + $' n ' } ; done
Si votre terminal prend en charge TrueColor, vous pouvez utiliser des couleurs 24 bits dans le format #RRGGBB
en plus des couleurs numérotées.
typeset -g POWERLEVEL9K_TIME_FOREGROUND= ' #FF0000 '
En rapport:
Par défaut, le terminal VScode peut remplacer arbitrairement la couleur de premier plan de votre choix par une couleur différente. Ce comportement peut être désactivé dans les paramètres VScode.
PowerLevel10k utilise Gitstatus comme backend derrière l'invite vcs
; Gitstatus engendre gitstatusd
et zsh
. Voir Gitstatus pour plus de détails. PowerLevel10k peut également engendrer zsh
pour effectuer un calcul sans bloquer l'invite. Pour éviter les risques de sécurité, ces processus de fond ne sont pas partagés par différents obus interactifs. Ils se terminent automatiquement lorsque le processus Parent zsh
se termine ou exécute exec(3)
.
Non, PowerLevel10k est toujours rapide, avec toute configuration que vous lui lancez. Si vous avez une latence invite notable lorsque vous utilisez PowerLevel10k, veuillez ouvrir un problème.
Oui. Voir Zsh-Bench.
PowerLevel10K a été fourchu de PowerLevel9k en mars 2019 après une discussion d'une semaine dans Powerlevel9k # 1170. PowerLevel9k était déjà un projet mature avec une grande base d'utilisateurs et un cycle de libération mesuré en mois. PowerLevel10k a été transféré pour itérer sur les améliorations des performances et les nouvelles fonctionnalités à un rythme beaucoup plus élevé.
PowerLevel9K et PowerLevel10k sont des projets indépendants. Lorsque vous en utilisez l'un, vous ne devez pas installer l'autre. Les problèmes doivent être déposés contre le projet que vous utilisez réellement. Il n'y a pas d'individus qui ont des droits dans les deux référentiels. Toutes les corrections de bogues et les nouvelles fonctionnalités engagées dans le référentiel PowerLevel9K sont portées vers PowerLevel10k.
Au fil du temps, pratiquement tout le code de PowerLevel10k a été réécrit. Il n'y a actuellement pas de chevauchement significatif entre les implémentations de PowerLevel9k et PowerLevel10k.
PowerLevel10k s'engage à maintenir la compatibilité arrière avec toutes les configurations indéfiniment. Cet engagement couvre tous les paramètres de configuration reconnus par PowerLevel9k (voir la compatibilité PowerLevel9k) et des paramètres supplémentaires que seul PowerLevel10k comprend. Les noms de tous les paramètres de PowerLevel10K commencent avec POWERLEVEL9K_
pour la cohérence.
Presque. Il y a quelques différences.
git
VCS est activé dans PowerLevel10k. Si vous avez besoin svn
et hg
, ajoutez-les à POWERLEVEL9K_VCS_BACKENDS
. Ces backends ne sont pas encore optimisés dans PowerLevel10k, donc leur permettre de rendre l'invite très lente .POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY=true
.POWERLEVEL9K_MODE
avant de s'approvisionner par le thème. Ce paramètre est ignoré par PowerLevel9K mais honoré par Powerlevel10k. Si vous souhaitez que votre invite regarde dans PowerLevel10k la même que dans PowerLevel9k, supprimez POWERLEVEL9K_MODE
.ZLE_RPROMPT_INDENT
. En conséquence, l'invite droite dans PowerLevel10k peut avoir un espace supplémentaire à la fin par rapport à PowerLevel9k. Définissez ZLE_RPROMPT_INDENT=0
si vous ne voulez pas cet espace. Plus de détails dans le dépannage.POWERLEVEL9K_LEGACY_ICON_SPACING=true
pour obtenir le même espacement que dans PowerLevel9k. Plus de détails dans le dépannage.Si vous remarquez d'autres modifications de l'apparence rapide lors du passage de PowerLevel9k à PowerLevel10K, veuillez ouvrir un problème.
Il y a autant d'opinions sur ce qui constitue la meilleure invite qu'il y a des gens. Cela se résume principalement à des préférences personnelles. Il existe cependant quelques implications cachées de différents choix.
Le style pur est une réplication exacte du thème ZSH pur. Il existe pour faciliter la migration des utilisateurs de ce thème. À moins que vous ne fassiez l'un d'eux, choisissez le style maigre plutôt que Pure.
Si vous souhaitez confiner des couleurs invites à la palette de couleurs terminales sélectionnée (par exemple, solarisé sombre ), utilisez l'arc-en-ciel , le maigre → 8 couleurs ou pur → original . D'autres styles utilisent des couleurs fixes et se ressemblent donc dans n'importe quelle palette de couleurs terminales.
Tous les styles sauf Pure ont une option pour utiliser ASCII Charset. L'invite sera moins jolie, mais rendra correctement avec toutes les polices et dans tous les endroits.
Si vous activez l'invite transitoire, profitez de l'invite à deux lignes. Vous bénéficierez de l'espace supplémentaire pour taper les commandes sans l'inconvénient habituel d'une densité de rebond réduite. Avoir toutes les commandes à partir du même décalage est également agréable.
De même, si vous activez l'invite transitoire, une invite clairsemée (avec une ligne vide avant l'invite) est un excellent choix.
Si vous utilisez Vi Keymap, choisissez Invite avec prompt_char
(illustré comme vert ❯
dans l'assistant). Ce symbole change en fonction du mode VI: ❯
, ❮
, V
, ▶
pour le mode d'insertion, de commande, visuel et de remplacement respectivement. Lorsqu'une commande échoue, le symbole devient rouge. Le style Lean a toujours prompt_char
dedans. Les styles arc-en-ciel et classiques ne l'ont que dans la configuration à deux lignes sans cadre gauche.
Si vous appréciez l'espace horizontal ou si vous préférez l'esthétique minimaliste:
Remarque : vous pouvez exécuter l'assistant de configuration autant de fois que vous le souhaitez. Tapez p10k configure
pour essayer un nouveau style d'invite.
Utilisez cette configuration.
Vous pouvez le télécharger, enregistrer sous ~/.p10k.zsh
et source ~/.p10k.zsh
à partir de ~/.zshrc
, ou source p10k-robbyrussell.zsh
directement à partir de votre référentiel cloné powerlevel10k
.
Non . Lorsque la commande se termine, l'état d'erreur est connu, mais il n'est plus possible de mettre à jour l'invite pour cette commande. C'est pourquoi l'état d'erreur pour chaque commande est reflété dans l'invite suivante .
Pour plus de détails, consultez cet article sur / r / zsh.
Zsh 5.3 ou plus nouveau devrait fonctionner. Le démarrage rapide nécessite Zsh> = 5.4.
Toutes les captures d'écran et les GIF animés ont été enregistrés dans GNOME Terminal avec la Palette de couleurs Dark et Tango Dark Recommandée avec une couleur d'arrière-plan personnalisée ( #171A1B
au lieu de #2E3436
- deux fois plus sombre).
La mise en évidence de la syntaxe, lorsqu'elle est présente, a été fournie par Zsh-Syntax-Highlighting.
La police recommandée est le produit de nombreuses personnes. Son origine est Bitstream Vera Sans Mono , qui a donné naissance à Menlo , qui à son tour a engendré Meslo . Enfin, des glyphes supplémentaires ont été ajoutés à Meslo avec des scripts alimentés à partir de polices de nerd. La police finale est publiée en vertu des termes de la licence Apache.
La police Meslolgs NF peut être recréée avec la commande suivante (nécessite git
et docker
):
git clone --depth=1 https://github.com/romkatv/nerd-fonts.git
cd nerd-fonts
./build ' Meslo/S/* '
Si tout se passe bien, quatre fichiers ttf
apparaîtront dans ./out
.
Il n'est actuellement ni facile ni recommandé d'emballer et de distribuer PowerLevel10k. Il n'y a aucune instruction que vous pouvez suivre qui vous permettrait de mettre à jour facilement votre package lorsque de nouvelles versions de PowerLevel10k sont publiées. Cela peut changer à l'avenir mais pas de temps.
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
source ~/.zshrc
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
Lors de l'ouverture d'un terminal ou du démarrage de Zsh manuellement, vous pouvez rencontrer ce message d'erreur:
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
typeset -p P9K_VERSION
pour vérifier si PowerLevel10k a été chargé.typeset -p P9K_VERSION
réussit et imprime quelque chose comme typeset P9K_VERSION=1.19.14
(la version pourrait être différente), supprimez la ligne suivante de ~/.zshrc
: ZSH_THEME= " powerlevel10k/powerlevel10k "
typeset -p P9K_VERSION
échoue avec l'erreur typeset: no such variable: P9K_VERSION
, exécutez la commande suivante: git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
exec zsh
. Si cela ressemble à un habitué ?
, c'est normal. Cela signifie que vous avez des fichiers non tracés dans le référentiel GIT actuel. Tapez git status
pour voir ces fichiers. Vous pouvez modifier ce symbole ou désactiver complètement l'affichage de fichiers non suivis. Recherchez untracked files
dans ~/.p10k.zsh
.
FAQ : Que signifie différents symboles dans le statut GIT?
Vous pouvez également obtenir un point d'interrogation étrange dans votre invite si la police de votre terminal manque des glyphes. Voir les icônes, les glyphes ou les symboles Powerline ne rendent pas.
Redémarrez votre terminal, installez la police recommandée et exécutez p10k configure
.
Il y a trois imperfections sur la capture d'écran. De gauche à droite:
Les thèmes ZSH n'ont pas de contrôle bas sur le contenu terminal. Tout ce que vous voyez à l'écran est fait de personnages monospace. Un segment invite de ligne électrique blanc est en texte sur fond blanc suivi par U + E0B0 (un triangle pointant à droite).
Si l'invite PowerLevel10k a des imperfections autour des symboles de ligne électrique, vous verrez exactement les mêmes imperfections avec tous les thèmes de ligne électrique (AgNoster, Powerlevel9k, Powerline, etc.)
Il y a plusieurs choses que vous pouvez essayer de gérer ces imperfections:
Une solution plus radicale consiste à passer au style invite sans arrière-plan. Tapez p10k configure
et sélectionnez Lean . Ce style a un look léger moderne. En prime, il ne souffre pas des imperfections qui affligent une invite de style Powerline.
Type echo 'u276F'
. Si vous obtenez une erreur disant "Zsh: personnage non dans la plage", votre paramètre ne prend pas en charge UTF-8. Vous devez le réparer. Si vous exécutez Zsh sur SSH, voyez ceci. Si vous exécutez ZSH localement, Google "Définissez les paramètres régionaux de l'UTF-8 dans votre système d'exploitation ".
Type echo 'u276F'
. Si vous obtenez une erreur disant "Zsh: personnage non dans la plage", consultez la section précédente.
Si la commande echo
imprime ❯
mais que le curseur est toujours au mauvais endroit, installez la police recommandée et exécutez p10k configure
.
Si cela n'aide pas, ajoutez unset ZLE_RPROMPT_INDENT
au bas de ~/.zshrc
.
Vous rencontrez toujours des problèmes ? Exécutez la commande suivante pour diagnostiquer le problème:
() {
emulate -L zsh
setopt err_return no_unset
local text
print -rl -- ' Select a part of your prompt from the terminal window and paste it below. ' ' '
read -r ' ?Prompt: ' text
local -i len= ${(m) # text}
local frame= " +- ${(pl. $len ..-.) :- } -+ "
print -lr -- $frame " | $text | " $frame
}
+------------------------------+
| romka@adam ✓ ~/powerlevel10k |
+------------------------------+
Si la sortie de la commande est alignée pour chaque partie de votre invite (gauche et droite), cela indique un bug dans le thème ou votre configuration. Utilisez cette commande pour le diagnostiquer:
print -rl -- ${(eq+)PROMPT} ${(eq+)RPROMPT}
Recherchez %{...%}
et les acerbotèges s'échappent dans la sortie. S'il y en a, ce sont les coupables probables. Ouvrez un problème si vous êtes coincé.
+-----------------------------+
| romka@adam ✓ ~/powerlevel10k |
+-----------------------------+
Ceci est généralement causé par un bogue terminal ou une erreur de configuration qui le fait imprimer des caractères ambiguës comme double largeur au lieu d'une seule largeur. Par exemple, ce problème.
+------------------------------+
| romka@adam ✓~/powerlevel10k |
+------------------------------+
Notez que cette invite est différente de l'original car il manque un espace après la coche.
Cela peut être causé par un bogue de bas niveau dans MacOS. Voir ce problème.
Cela peut également se produire si l'invite contient des glyphes désignés comme "larges" dans la norme Unicode et que votre terminal les affiche incorrectement comme non largeur. Les bornes souffrant de cette limitation comprennent Konsole, Hyper et le terminal VScode intégré. La solution consiste à utiliser un terminal différent ou à retirer tous les glyphes larges de l'invite.
+--------------------------------+
| romka@adam ✓ ~/powerlevel10k |
+--------------------------------+
Cela peut être causé par des paramètres régionaux mal configurés. Voir ce problème.
Voir le curseur est au mauvais endroit.
Voir le curseur est au mauvais endroit.
Lorsque PowerLevel10K démarre, il exécute automatiquement p10k configure
si aucun paramètres POWERLEVEL9K_*
n'est défini. En fonction de vos choix de style rapide, l'assistant de configuration crée ~/.p10k.zsh
avec un tas de paramètres POWERLEVEL9K_*
et ajoute une ligne à ~/.zshrc
pour s'approvisionner ce fichier. La prochaine fois que vous démarrez ZSH, l'assistant de configuration ne devrait pas s'exécuter automatiquement. Si c'est le cas, cela signifie que l'évaluation de ~/.zshrc
se termine prématurément avant d'atteindre la ligne qui s'approvisionne ~/.p10k.zsh
. Cela se produit le plus souvent en raison d'erreurs de syntaxe dans ~/.zshrc
. Ces erreurs sont cachées par l'écran de l'assistant de configuration, vous ne les remarquez donc pas. Lorsque vous quittez l'assistant de configuration, recherchez des messages d'erreur. Vous pouvez également utiliser POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true zsh
pour démarrer Zsh sans exécuter automatiquement l'assistant de configuration. Une fois que vous pouvez voir les erreurs, corrigez ~/.zshrc
pour vous en débarrasser.
Si la version Zsh est inférieure à 5.7.1 ou que la variable d'environnement COLORTERM
n'est ni 24bit
ni truecolor
, l'assistant de configuration n'offrira pas de style pur avec un schéma de couleurs snazzy. Correction : installer Zsh> = 5.7.1 et utiliser un terminal avec une prise en charge TrueColor. Vérifiez avec print -P '%F{#ff0000}red%f'
.
Si le terminal peut afficher moins de 256 couleurs, l'assistant de configuration préselect le style maigre avec 8 couleurs. Tous les autres styles nécessitent au moins 256 couleurs. Correction : utilisez un terminal avec une prise en charge des couleurs 256 et assurez-vous que la variable d'environnement TERM
est correctement définie. Vérifiez avec print $terminfo[colors]
.
S'il n'y a pas de paramètres régionaux UTF-8 sur le système, l'assistant de configuration n'offre pas des styles invites qui utilisent des caractères Unicode. Correction : installer un paramètre régional UTF-8. Vérifiez avec locale -a
.
Un autre cas dans lequel l'assistant de configuration peut ne pas offrir de styles d'invite Unicode est lorsque l'option de shell MULTIBYTE
est désactivée. Correction : activez l'option MULTIBYTE
, ou plutôt ne le désactivez pas (cette option est activée dans Zsh par défaut). Vérifiez avec print -r -- ${options[MULTIBYTE]}
.
Lorsque MULTIBYTE
est activé et qu'un paramètre local de l'UTF-8 est disponible, les premières questions posées par l'assistant de configuration évaluent les capacités de la police du terminal. Si vos réponses indiquent que certains glyphes ne rendent pas correctement, l'assistant de configuration n'offre pas des styles invites qui les utilisent. Correction : redémarrez votre terminal et installez la police recommandée. Vérifiez en exécutant p10k configure
et vérifier que tous les glyphes rendent correctement.
Une fois que vous avez téléchargé la police recommandée, vous pouvez l'installer comme n'importe quelle autre police. Google "Comment installer des polices sur votre système d'exploitation ".
tl; dr: ajouter ZLE_RPROMPT_INDENT=0
et POWERLEVEL9K_LEGACY_ICON_SPACING=true
to ~/.zshrc
pour obtenir le même espacement rapide que dans PowerLevel9k.
Lorsque vous utilisez PowerLevel10k avec une configuration PowerLevel9k, vous pouvez obtenir des espaces supplémentaires dans Invite ici et là. Ceux-ci viennent en deux saveurs.
TL; DR: Ajoutez ZLE_RPROMPT_INDENT=0
à ~/.zshrc
pour se débarrasser de cet espace.
De la documentation ZSH:
ZLE_RPROMPT_INDENT <S>
Si vous êtes défini, utilisé pour donner l'indentation entre le côté droit de l'invite droite dans l'éditeur de ligne tel que donné par
RPS1
ouRPROMPT
et le côté droit de l'écran. Si ce n'est pas défini, la valeur1
est utilisée.En règle générale, cela sera utilisé pour définir la valeur sur
0
afin que l'invite apparaisse à rinter avec le côté droit de l'écran.
PowerLevel10K respecte ce paramètre. Si vous définissez ZLE_RPROMPT_INDENT=1
(ou laissez-le non set, ce qui est la même chose que le régler sur 1
), vous obtiendrez un espace vide à droite de la droite. Si vous définissez ZLE_RPROMPT_INDENT=0
, votre invite ira au bord du terminal. C'est ainsi que cela fonctionne dans chaque thème sauf PowerLevel9k.
Problème PowerLevel9k: Powerlevel9k # 1292. Il a été corrigé dans la branche de développement de PowerLevel9k, mais le correctif n'a pas encore fait master
.
Ajoutez ZLE_RPROMPT_INDENT=0
à ~/.zshrc
pour obtenir le même espacement sur le bord droit de l'invite que dans PowerLevel9k.
Remarque: plusieurs versions de Zsh ont des bogues qui sont déclenchés lorsque vous définissez ZLE_RPROMPT_INDENT=0
. PowerLevel10k peut contourner ces bogues lors de l'utilisation du style d'invite Powerline. Si vous remarquez des artefacts visuels dans une position de curseur invite ou mauvaise, essayez de supprimer ZLE_RPROMPT_INDENT
de ~/.zshrc
.
TL; DR: Ajouter POWERLEVEL9K_LEGACY_ICON_SPACING=true
to ~/.zshrc
pour obtenir le même espacement autour des icônes que dans PowerLevel9k.
L'espacement autour des icônes de Powerlevel9K est incohérent.
Cette incohérence est une source constante de gêne, il a donc été fixé dans Powerlevel10k. Vous pouvez ajouter POWERLEVEL9K_LEGACY_ICON_SPACING=true
to ~/.zshrc
pour obtenir le même espacement autour des icônes que dans PowerLevel9k.
Remarque: Ce n'est pas une bonne idée de définir POWERLEVEL9K_LEGACY_ICON_SPACING
lors de l'utilisation p10k configure
.
source ~/.zshrc
C'est presque toujours une mauvaise idée de faire fonctionner source ~/.zshrc
, que vous utilisiez ou non PowerLevel10K. Cette commande peut entraîner des erreurs aléatoires, un mauvais comportement et un ralentissement progressif de Zsh.
Si vous avez apporté des modifications à ~/.zshrc
ou aux fichiers provenant de celui-ci, redémarrez ZSH pour les appliquer. La façon la plus fiable de le faire est de taper exit
, puis de démarrer une nouvelle session ZSH. Vous pouvez également utiliser exec zsh
. Bien qu'il ne soit pas exactement équivalent pour terminer le redémarrage ZSH, cette commande est beaucoup plus fiable que source ~/.zshrc
.
Voir des choses étranges se produire après avoir tapé source ~/.zshrc
.
Si les instructions d'installation n'ont pas fonctionné pour vous, essayez de désactiver votre thème actuel (afin de vous retrouver sans thème), puis d'installer manuellement PowerLevel10k.
~/.zshrc
et supprimer la ligne qui définit ZSH_THEME
. Cela pourrait ressembler à ceci: ZSH_THEME="powerlevel9k/powerlevel9k"
.~/.zshrc
et supprimez la commande zplug
qui fait référence à votre thème actuel. Par exemple, si vous utilisez actuellement PowerLevel9k, recherchez zplug bhilburn/powerlevel9k, use:powerlevel9k.zsh-theme
.~/.zpreztorc
et mettre zstyle :prezto:module:prompt theme off
. Supprimez toute autre commande qui définit theme
tel que zstyle :prezto:module:prompt theme powerlevel9k
.~/.zshrc
et supprimez la ligne qui définit antigen theme
. Cela pourrait ressembler à ceci: antigen theme powerlevel9k/powerlevel9k
.git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Cette méthode d'installation ne rendra rien de plus lent ou autrement sous-parole.
Dans le style arc-en-ciel, le répertoire de travail actuel est illustré avec du texte blanc brillant sur fond bleu. Le blanc est fixe et ressemble toujours à la même chose, mais l'apparence du "bleu" est définie par votre palette de couleurs terminales. S'il est très léger, il peut être difficile de voir du texte blanc dessus.
Il existe plusieurs façons de résoudre ce problème.
p10k configure
et choisissez un style d'invite plus lisible.POWERLEVEL9K_DIR_BACKGROUND
, POWERLEVEL9K_DIR_FOREGROUND
, POWERLEVEL9K_DIR_SHORTENED_FOREGROUND
, POWERLEVEL9K_DIR_ANCHOR_FOREGROUND
et POWERLEVEL9K_DIR_ANCHOR_BOLD
. Vous pouvez les trouver dans ~/.p10k.zsh
.Connexes : couleur de premier plan incorrecte dans le terminal VScode.
Par défaut, le terminal VScode peut remplacer arbitrairement la couleur de premier plan de votre choix par une couleur différente. Ce comportement peut être désactivé dans les paramètres VScode.
Lorsque vous redimensionnez une fenêtre terminale horizontalement dans les deux sens, vous pourriez voir cette image laide.
TL; DR: Ce problème se pose lorsqu'un terminal reflète l'invite zsh lors de la redimensionnement. Il n'est pas spécifique à Powerlevel10k. Voir l'atténuation.
Remarque: Cette section disait que le problème est causé par un bug dans Zsh. S'il est vrai qu'il est possible d'éviter le problème dans de nombreuses circonstances en modifiant ZSH, il ne peut pas être complètement résolu de cette façon. Il est donc injuste de blâmer Zsh.
Le problème se manifeste lorsque la distance verticale entre le début de l'invite actuelle et le curseur (désormais VD
) change lorsque la fenêtre du terminal est redimensionnée.
Lorsqu'une fenêtre de terminal se rétrécit horizontalement, il y a deux façons pour qu'un terminal de gérer les longues lignes qui ne s'adaptent plus: reflux ou tronqué .
Contenu terminal avant de rétrécir:
Terminal refléte le texte lors du rétrécissement:
Le terminal tronque le texte lors du rétrécissement:
La stratégie de refus peut modifier la hauteur du contenu terminal. Si un tel contenu se situe entre le début de l'invite actuelle et du curseur, ZSH imprimera l'invite sur la mauvaise ligne. La stratégie de troncature ne modifie jamais la hauteur du contenu terminal, elle ne déclenche donc pas ce problème.
Voyons comment le problème se déroule au ralenti. Nous allons commencer par lancer zsh -f
et colasser le code suivant:
function pause() { read -s }
functions -M pause 0
reset
print -l {1..3}
setopt prompt_subst
PROMPT= $' ${$((pause()))+}left>${(pl.$((COLUMNS-12))..-.)}<right n > '
Lorsque PROMPT
est élargie, il appelle pause
pour nous permettre d'observer l'état du terminal. Voici l'état initial:
Zsh garde une trace de la position du curseur par rapport au début de l'invite actuelle. Dans ce cas, il sait que le curseur est une ligne ci-dessous. Lorsque nous rétrécissons la fenêtre du terminal, cela ressemble à ceci:
À ce stade, le terminal envoie SIGWINCH
à Zsh pour le notifier des changements dans les dimensions du terminal. Notez que ce signal est envoyé après que le contenu du terminal ait été reflétré.
Lorsque Zsh reçoit SIGWINCH
, il tente d'effacer l'invite actuelle et de l'imprimer à nouveau. Il va à la position où il pense que l'invite actuelle est - une ligne au-dessus du curseur (!) - Efface tout le contenu terminal qui suit et imprime l'invite réexécutée. Cependant, après l'invite de redimensionnement n'est plus une ligne au-dessus du curseur. Ce sont deux lignes ci-dessus! Zsh finit par imprimer une nouvelle invite une ligne trop bas.
Dans ce cas, nous nous sommes retrouvés avec du contenu indésirable indésirable car VD
a augmenté . Lorsque vous réalisez la fenêtre du terminal, VD
peut également diminuer , ce qui entraînerait une nouvelle invite plus importante que prévu, effacez potentiellement le contenu utile dans le processus.
Voici quelques exemples supplémentaires où la fenêtre terminale de rétrécissement a augmenté VD
.
prompt_subst
. Notez que le curseur est inférieur à la ligne rapide (appuyez sur ESC-ENTER pour y arriver).prompt_subst
, pas d'invite droite. Ici, VD
est tenu d'augmenter lors du rétrécissement du terminal en raison de la ligne de commande. Ce correctif ZSH résout le problème sur certains terminaux. L'idée derrière le patch est d'utiliser la capacité du terminal sc
(enregistrer le curseur) avant d'imprimer l'invite et rc
(restauration curseur) pour remettre le curseur à la position d'origine lorsque l'invite doit être rafraîchie.
Le patch ne fonctionne que sur les bornes qui reflètent la position du curseur enregistré avec du texte lorsque la fenêtre du terminal est redimensionnée. Le patch n'a pas d'effet observable sur les terminaux qui ne reflètent pas le texte sur le redimensionnement (le zsh patch et non corrigé se comporte correctement) et sur les bornes qui reflètent le texte mais pas la position de curseur enregistrée (invite de redérapage zsh patchée et non corrigée à la même position incorrecte ). En d'autres termes, le correctif résout le problème de redimensionnement sur certains terminaux tout en gardant le comportement inchangé sur d'autres.
Il existe deux approches alternatives pour corriger le Zsh qui peut sembler fonctionner à première vue, mais en fait, non:
sc
, utilisez la capacité de terminal u7
pour interroger la position actuelle du curseur, puis cup
pour y revenir. Cela ne fonctionne pas parce que la position absolue du début de l'invite actuelle change lorsque le texte est reflétré.VD
basé sur de nouvelles dimensions terminales avant de tenter de rafraîchir l'invite. Cela ne fonctionne pas parce que Zsh ne sait pas si le terminal reflète du texte ou le tronque. If Zsh could somehow know that the terminal reflows text, this approach still wouldn't work on terminals that continuously reflow text and rapid-fire SIGWINCH
when the window is being resized. In such environment real terminal dimensions go out of sync with what Zsh thinks the dimensions are.There is no ETA for the patch making its way into upstream Zsh. See discussion.
There are a few mitigation options for this issue.
POWERLEVEL9K_TERM_SHELL_INTEGRATION=true
in ~/.p10k.zsh
.POWERLEVEL9K_SHOW_RULER=false
.POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
.POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX=''
, POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX=''
and POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX=''
.POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
. Right prompt on the last prompt line will cause resizing issues only when the cursor is below it. This isn't very common, so you might want to keep some elements in POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
provided that none of them are succeeded by newline
.When using Konsole with a non-monospace font, icons may be cut off on the right side. Here "non-monospace" refers to any font with glyphs wider than a single column, or wider than two columns for glyphs designated as "wide" in the Unicode standard.
The last line on the screenshot shows a cut off Arch Linux logo.
There are several mitigation options for this issue.
os_icon
prompt segment gets cut off, open ~/.p10k.zsh
, search for POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION
and change it as follows: typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION= ' ${P9K_CONTENT} ' # extra space at the end
~/.p10k.zsh
: typeset -g POWERLEVEL9K_LINUX_ARCH_ICON= ' Arch ' # plain "Arch" in place of a logo
os_icon
prompt segment gets cut off, open ~/.p10k.zsh
and remove os_icon
from POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
and POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
.Note : Non-monospace fonts are not officially supported by Konsole.
Some fonts have this incorrect dotted icon in bold typeface. There are two ways to fix this issue.
~/.p10k.zsh
, search for POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION
and remove %B
from its value. typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION= ' ${P9K_CONTENT} ' # not bold
Powerlevel10k uses gitstatusd to inspect the state of git repositories. The project relies on the libgit2 library, which has some gaps in its implementation. Under some conditions, this may result in discrepancies between the real state of a git repository (reflected by git status
) and what gets shown in the Powerlevel10k prompt.
Most notably, libgit2 does not support skipHash
. If you see incorrect git status in prompt, run git config -l
and check whether skipHash
is enabled. If it is, consider disabling it. Keep in mind that skipHash
may be implicitly enabled when activating certain git features, such as manyFiles
.