Dépannage
Index de la documentation (anglais) · Présentation du projet
🇺🇸 English · 🇨🇳 简体中文 · 🇭🇰 繁體中文 · 🇯🇵 日本語 · 🇰🇷 한국어 · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇧🇷 Português
Cette page est une traduction de TROUBLESHOOTING.md, dans son état au commit
68169b9. Si la version anglaise a changé depuis, ou si les deux diffèrent, la version anglaise fait foi. Les messages de macOS sont accompagnés de leur texte anglais d’origine.
Que faire quand Corta ne s’installe pas, ne démarre pas, ou fait quelque chose que votre terminal précédent ne faisait pas. Chaque entrée dit ce que vous verrez, pourquoi, et la solution — et la dernière section explique comment revenir proprement à votre ancien terminal si rien de tout cela n’aide, car un rapport qui dit « je suis revenu en arrière, et voici pourquoi » est l’une des choses les plus utiles que vous puissiez envoyer.
Si une entrée ici est fausse ou manquante, ouvrez une issue avec le modèle Installation blocker ou Went back to my old terminal : https://github.com/noah-qin/Corta/issues/new/choose.
Installation
« Impossible d’ouvrir Corta, car Apple ne peut pas vérifier la présence de logiciels malveillants » ("Corta can't be opened because Apple cannot check it for malicious software")
Les versions officielles sont signées avec un Developer ID et notarisées. Une version compilée depuis les sources peut ne pas l’être. Pour une version téléchargée, vérifiez sa somme de contrôle ainsi que les contrôles de l’image et de l’app ci-dessous, puis signalez le message exact avec la version.
« Corta est endommagé et ne peut pas être ouvert » ("Corta is damaged and can't be opened")
L’image disque est peut-être incomplète, modifiée ou rejetée par la validation de signature de macOS. Vérifiez-la d’abord
avec le fichier .sha256 publié à côté. Gardez les deux fichiers dans le dossier de téléchargement et remplacez x.y.z
par la version téléchargée :
shasum -a 256 -c Corta-x.y.z.dmg.sha256
Une non-correspondance signifie qu’il faut télécharger à nouveau. Chaque paquet de version est vérifié avec son fichier
compagnon avant publication (corta-release-check), donc une non-correspondance est une raison de s’arrêter et de
retélécharger. Si la somme de contrôle correspond, vérifiez l’image et l’app copiée. Remplacez x.y.z par la version
téléchargée dans toutes les commandes, et lancez-les depuis le dossier de téléchargement :
spctl -a -t open --context context:primary-signature -v Corta-x.y.z.dmg
xcrun stapler validate Corta-x.y.z.dmg
spctl --assess --type exec /Applications/Corta.app
xcrun stapler validate /Applications/Corta.app
Joignez à votre rapport la version, l’erreur de macOS et ces résultats. Ne contournez pas Gatekeeper pour tester une version. Les versions jusqu’à la 1.1.8 conservent leurs sommes de contrôle ZIP d’origine ; utilisez le nom de fichier de cette version.
Corta propose de se déplacer dans /Applications
Corta a été lancé depuis ~/Downloads ou un autre dossier. Il fonctionne de n’importe où ; /Applications est l’endroit
où les mises à jour Sparkle et Spotlight s’attendent à le trouver. Répondez non et il ne demandera plus — ou mettez
suggest-applications-folder = false dans ~/.config/corta/config.
Ouvert directement depuis l’image disque, macOS exécute Corta depuis un emplacement temporaire en lecture seule, donc il ne peut pas se déplacer lui-même ; il vous demande plutôt de le faire glisser dans Applications. Si un Corta plus récent s’y trouve déjà, il propose d’ouvrir celui-là plutôt que de le remplacer par la copie plus ancienne.
Il y a deux icônes Corta dans le Dock
L’une d’elles est une version de développement. Le Finder l’appelle Corta Dev, la barre des menus CortaDev, son
icône a un fond orange plutôt que bleu, et son identifiant de bundle est dev.noahqin.Corta.dev. Elle garde sa
configuration et son état dans ~/Library/Application Support/Corta Dev/, jamais dans ~/.config/corta/config ni
~/Library/Application Support/Corta/, et elle n’a pas d’élément de menu « Rechercher les mises à jour… » — c’est donc
celle à l’icône bleue qui est le Corta installé, quel que soit leur ordre d’apparition. Quitter ou supprimer l’une laisse
l’autre intacte. Seules les personnes qui compilent Corta depuis les sources en ont une (CONTRIBUTING.md,
« Developing Corta in Corta »).
« Cette version de Corta nécessite macOS 26.0 ou ultérieur » ("This version of Corta requires macOS 26.0 or later")
La cible de déploiement de Corta est macOS 26.0, et il utilise des API Metal 4 et Core Text de cette version. Il n’existe
pas de version pour les systèmes antérieurs, et le projet n’en prévoit pas (DESIGN.md §6).
« Vous ne pouvez pas ouvrir l’application “Corta” car elle n’est pas prise en charge sur ce type de Mac » ("You can't open the application "Corta" because it is not supported on this type of Mac")
Depuis la 1.1.0, Corta est compilé uniquement pour les puces Apple — un Mac doté d’une puce M1 ou ultérieure
(DECISIONS.md D21). Un Mac Intel ne peut pas l’exécuter. La 1.0.1 est la dernière version pour les Mac Intel, et elle
reste disponible sur la page de la version 1.0.1 : téléchargez
Corta-1.0.1.zip, vérifiez-le et remplacez la copie dans /Applications. Un Mac Intel qui exécute déjà une 1.0.x ne se
voit pas proposer la 1.1.0 par Rechercher les mises à jour…, il continue donc de fonctionner tel quel ; ce message
n’apparaît que si une archive plus récente a été téléchargée et ouverte à la main.
Pour savoir quelle puce équipe un Mac, choisissez menu Pomme ▸ À propos de ce Mac : la ligne Puce nomme une puce Apple (M1, M2, …) sur les Mac à puce Apple, et une ligne Processeur nomme un processeur Intel.
Démarrage
La fenêtre s’ouvre vide, ou s’ouvre puis se ferme
Lancez depuis Terminal.app pour voir pourquoi :
/Applications/Corta.app/Contents/MacOS/Corta
Un volet qui ne peut pas lancer son shell affiche une vue d’échec avec un bouton Réessayer plutôt qu’une zone vide ; si vous voyez une zone vide sans vue d’échec, c’est un bug de rendu qui mérite un rapport avec la sortie de la console.
Le shell n’est pas celui que j’attendais, ou n’a pas de PATH
Corta lance $SHELL depuis l’environnement avec lequel il a été lancé (sinon /bin/zsh) en tant que shell de connexion
(-l), donc ~/.zprofile et ~/.zshrc s’exécutent tous les deux. Un $SHELL qui n’existe plus se rabat sur
/bin/zsh, puis sur /bin/sh, avec un avis dans le volet indiquant quel échelon a été utilisé. Si des commandes qui
fonctionnent dans Terminal.app sont « introuvables » dans Corta, vérifiez la valeur de SHELL dans l’environnement avec
lequel les applications graphiques sont lancées (launchctl getenv SHELL) : une valeur définie là s’applique à toutes
les apps et survit à la session qui l’a définie. Lancez launchctl unsetenv SHELL puis relancez.
Un préréglage (Shell ▸ Nouveau volet avec préréglage) ou preset.<name>.shell dans le fichier de configuration
remplace ce choix pour un volet.
Corta a restauré les fenêtres d’hier et je n’en voulais pas
restore-windows = false dans ~/.config/corta/config, ou décochez-le dans Réglages ▸ Général. Une restauration qui a
fait planter l’app n’est pas retentée : la disposition enregistrée est abandonnée et une seule nouvelle fenêtre s’ouvre.
Les Réglages indiquent qu’ils ne peuvent pas lire le fichier de configuration
~/.config/corta/config existe mais n’est pas du texte UTF-8 — généralement un octet enregistré par un éditeur dans un
autre encodage — ou vous ne pouvez pas le lire. Corta conserve les réglages qu’il a et refuse d’écrire le fichier, car
l’écrire en remplacerait tout le contenu. Réenregistrez le fichier en UTF-8 (ou supprimez la ligne fautive) ; Corta le
prend en compte dès qu’il le relit. L’intégration du shell fait de même pour un fichier rc qu’elle ne peut pas lire : elle
le signale et n’y touche pas.
Saisie et rendu
Effacer l’écran ne laisse qu’un curseur, sans invite
Mettez Corta à jour si ⌘K efface une invite en attente. Avec l’intégration du shell et un marqueur de fin d’invite prête, Effacer l’écran conserve désormais l’invite affichée et la saisie non envoyée, y compris son curseur d’édition. Il n’envoie ni Retour, ni Contrôle-L, ni aucune autre saisie. Activez l’intégration du shell pour un shell sans marqueurs d’invite ; les sessions zsh locales standard la chargent automatiquement avec les suggestions fournies. Le réaffichage par Contrôle-L du shell reste une alternative quand ce shell le configure. Un programme sur l’écran alternatif, ou un éditeur multiligne dont l’invite est déjà dans l’historique, est volontairement laissé intact.
Les suggestions de dossiers s’arrêtent après un dossier se terminant par /
Seuls les sous-dossiers sont des candidats ; un dossier ne contenant que des fichiers n’a pas de suggestion suivante. Tapez
une partie du nom d’un sous-dossier ou appuyez de nouveau sur Tab quand des candidats sont visibles. Tab insère le chemin sans
l’exécuter ; Retour lance cd. Les dossiers cachés demandent un point au début. S’il manque un sous-dossier connu, vérifiez
l’accès à ce dossier et comparez avec la complétion native du shell après avoir désactivé directory-completion. Si la
différence persiste, signalez la forme exacte du chemin et le shell.
L’historique des commandes s’ouvre loin du terminal
Fermez-le puis rouvrez-le dans la version actuelle de Corta. Il s’ouvre centré sur la fenêtre qui l’appelle, dans la zone utilisable de cet écran ; il n’est pas placé au centre de l’écran entier. À propos de Corta est l’exception voulue : il s’ouvre au milieu de l’écran, comme la fenêtre À propos des autres apps. Une fenêtre déjà ouverte garde la position que vous avez choisie.
Tab ne fait rien dans le menu des commandes slash de Claude Code
Corrigé dans la 1.0.0 (B02) ; la v0.1.1 a le bug. S’il réapparaît sur une version plus récente, signalez-le avec la
version de Claude Code : la correction tient à la façon dont insertTab(_:) issu d’une fenêtre de candidats atteint le
programme enfant, et une nouvelle interface de candidats pourrait l’acheminer autrement.
⌥ tape é, ø, – au lieu d’agir comme Meta
C’est le comportement par défaut de macOS, et Corta le conserve. Mettez option-as-meta = true pour que ⌥ envoie ESC +
touche, comme la touche Alt d’un clavier de PC. Les touches spéciales (flèches, touches de fonction) transmettent ⌥ comme
modificateur xterm dans tous les cas.
Les couleurs ou TERM semblent incorrects via ssh
Corta annonce volontairement TERM=xterm-256color (docs/DECISIONS.md D08). Partager cette valeur de TERM n’implique pas
une compatibilité xterm complète. Vérifiez l’environnement distant avec printf '%s\n' "$TERM" et comparez un cas
minimal de reproduction ; Conformance (en anglais) recense les séquences prises en
charge et les échecs restants.
Un glyphe est dessiné plus petit que ses voisins
Un caractère absent de la police choisie vient de PingFang SC ou d’Apple Color Emoji. Un glyphe de secours peut être mis à l’échelle pour rester dans ses cellules de terminal, si bien que sa taille visible peut différer de celle des glyphes voisins. Ajustez la taille de police dans Réglages ▸ Apparence et comparez l’aperçu. Si un glyphe est rogné ou mal aligné, signalez son texte, la police, la taille de police, l’échelle d’affichage et une capture d’écran.
La police que j’ai choisie n’est pas celle qui est dessinée
font-family désigne une famille, pas un style (JetBrains Mono, pas JetBrainsMono-Regular). Corta ne l’utilise que si
elle est installée et que ses styles normal, gras et italique avancent de la même largeur sur tout l’ASCII imprimable ;
sinon, il dessine la police système à largeur fixe et Réglages ▸ Apparence affiche une ligne État de la police
indiquant quelle vérification a échoué. Une police installée pendant que Corta tourne apparaît aussitôt dans la liste ;
Réessayer revérifie celle qui est configurée.
Du chinois, du japonais ou du coréen dessiné dans une autre police que celle choisie sous Police CJK
(font-family-cjk) signifie que cette famille n’est pas installée ou n’a pas de caractères CJK ; la ligne sous le menu le
dit, et c’est la police de la langue du système qui dessine à la place. Un caractère absent de la police choisie vient
aussi de la police de la langue du système. La police CJK n’est pas utilisée tant que
Utiliser d’autres polices pour les caractères manquants est désactivé.
Les images de kitten icat ne s’affichent pas, ou s’affichent au mauvais endroit
Corta implémente la transmission directe (dans le flux) du protocole graphique de Kitty en RGB, RGBA et PNG. La
transmission par fichier (t=f, t=t, t=s), les images d’animation et le placement par caractères de substitution
Unicode ne sont pas implémentés, et la transmission par fichier ne le sera pas : un flux distant désignant un fichier
local à lire est exactement ce que rejette le modèle de menaces (SECURITY.md §1). Essayez
kitten icat --transfer-mode=stream picture.png pour demander explicitement la transmission directe. Une image doit
respecter les limites de 8192 pixels par côté et de 16 millions de pixels ; les images invalides ou trop grandes sont refusées.
Un Retour vide dessine une marque de commande verte ou rouge
Un Retour vide n’est pas une commande, et les hooks d’intégration actuels n’en enregistrent aucune. Un bloc de fichier de démarrage installé par un Corta plus ancien peut encore en signaler une : ouvrez Réglages ▸ Terminal ▸ Intégration du shell, choisissez Mettre à jour, puis ouvrez un nouveau shell. Les shells existants gardent les anciennes fonctions jusqu’à leur redémarrage, et les marques déjà dessinées restent. Seul le bloc Corta balisé du fichier de démarrage est mis à jour. Les sessions zsh locales standard utilisant les hooks automatiques reçoivent la version fournie au démarrage d’un nouveau shell.
Comportements différents des autres terminaux
La copie se fait dès que je termine ma sélection
copy-on-select est activé par défaut et confirme par une étiquette dans le coin du volet. Mettez-le à false pour ⌘C uniquement.
Un programme a dit avoir copié dans mon presse-papiers, et rien n’a été copié
L’écriture OSC 52 est désactivée par défaut : sinon n’importe quelle sortie de programme pourrait mettre dans le
presse-papiers un texte que vous colleriez ensuite. allow-clipboard-write = true l’active, et c’est ce dont ont besoin
tmux et une session ssh distante. Le sens lecture n’existe sous aucun réglage.
Fermer une fenêtre me demande si je suis sûr
Quelque chose dans cette fenêtre a encore une tâche au premier plan. confirm-close = false désactive la question partout.
Le badge d’un volet distant indique « Distant : hôte inconnu », ou un tmux local « Distant ? »
Le badge tire le nom de l’hôte du rapport OSC 7 du shell distant lui-même, ou — pour une connexion ouverte depuis la
feuille de connexion — de la destination que vous y avez saisie. Il ne le lit jamais dans une ligne de commande ssh tapée
à l’invite (alias, noms de ~/.ssh/config et chaînes de rebond seraient tous mal lus) ni dans le texte de l’invite. Sans
l’un ou l’autre, un volet ssh indique hôte inconnu, ce qui est la vérité. Pour obtenir l’hôte, placez aussi le bloc
d’intégration du shell de Réglages ▸ Terminal dans le ~/.zshrc de la machine distante ; il émet l’OSC 7 que lit le
badge. Un tmux ou un screen au premier plan affiche Distant ? parce que la session à laquelle il est attaché peut
elle-même se trouver sur une autre machine, et rien ici ne permet de le savoir — c’est une incertitude, pas une accusation.
Parcourir les fichiers distants… indique un échec d’authentification, mais ssh fonctionne dans le volet
La connexion SFTP demande un mot de passe ou une phrase secrète de clé dans une boîte de dialogue sur sa fenêtre ; une
boîte refusée ou annulée aboutit à cette erreur. Vérifiez l’utilisateur et le port dans le formulaire — les User et
Port propres à un alias ne s’appliquent que si ces champs sont vides — et la clé, si vous en avez choisi une : une clé
choisie est la seule proposée. Si aucune boîte de dialogue n’est apparue, le serveur a refusé toutes les méthodes que ssh
pouvait essayer ; ssh -v avec le même utilisateur, le même port et la même clé dans un terminal montre lesquelles.
Parcourir les fichiers distants… indique qu’une clé d’hôte n’a pas pu être vérifiée
Un hôte vu pour la première fois vous demande de faire confiance à sa clé, dans une boîte de dialogue qui affiche
l’empreinte. Cette erreur signifie que la clé a changé depuis que vous lui avez fait confiance — un serveur réinstallé,
ou quelqu’un au milieu. ssh refuse tant que l’ancienne ligne n’est pas retirée de ~/.ssh/known_hosts
(ssh-keygen -R <host>) ; demandez d’abord à l’administrateur du serveur.
L’historique des commandes affiche « (texte de la commande plus dans l’historique) »
Le texte d’une commande est récupéré dans la grille, pas stocké : une fois sa ligne d’invite sortie au-delà de
scrollback-lines, l’entrée garde son heure, son statut et son dossier, mais le texte a disparu, et Remplir et Exécuter
ne sont pas proposés pour elle. Augmentez scrollback-lines si cela arrive souvent.
Je ne peux pas remonter jusqu’au début d’une longue exécution
scrollback-lines (10 000 par défaut) est un plafond par session, et il compte les lignes physiques — une ligne de
200 colonnes repliée à 100 colonnes en compte deux. La sortie plus ancienne que le plafond est supprimée à mesure qu’elle
arrive ; la pastille en haut indique jusqu’où remonte la vue. Augmentez le plafond (jusqu’à 1 000 000 ; la mémoire
occupée par l’historique ancien compressé dépend du texte et de la charge). Une cellule stockée fait 16 octets avant
compression, ce qui n’est pas une estimation de la mémoire résidente. Une charge mesurée de 100 000 lignes de 120 colonnes
a ajouté environ 11 Mio de mémoire résidente ; voir
Performance (en anglais). Exportez la sortie que vous devez conserver au-delà du
plafond configuré.
La Saisie clavier sécurisée est activée mais mon outil de macros fonctionne encore
Le cadenas dans la barre de titre indique quand elle est engagée, ce qui n’est le cas que tant qu’une fenêtre de terminal Corta est la fenêtre active et que Corta est l’application active. Dans toute autre application, et tant que les Réglages sont la fenêtre active, les frappes sont transmises normalement — c’est le principe, et c’est pourquoi l’indicateur suit l’état engagé plutôt que le réglage.
Une icône de proxy de dossier manque sur un montage réseau
Corta vérifie en arrière-plan le dossier local signalé. Si le montage est lent ou si deux vérifications sont déjà en attente, il laisse l’icône de proxy absente pour que la sortie et l’interaction au clavier puissent continuer. Vérifiez le montage séparément ; changer de dossier après son rétablissement déclenche une nouvelle vérification.
Un volet s’ouvre dans le dossier personnel au lieu d’un dossier réseau
Un nouveau volet, ou une fenêtre restaurée au lancement, ne démarre dans le dossier demandé que si celui-ci répond dans un
court délai. Un volume réseau qui ne répond plus est considéré comme absent, si bien que le volet s’ouvre dans le dossier
personnel plutôt que de figer Corta. Le même délai s’applique au ⌘-clic ou au survol d’une référence path:line à cet
endroit : elle n’est pas proposée comme lien. Reconnectez le volume, puis faites cd vers lui ou ouvrez-y un nouveau volet.
L’édition à distance redemande après une demande d’envoi
Le fichier local a changé après la version montrée par la demande initiale. Approuvez explicitement la nouvelle modification. Une ancienne entrée gérée sans empreinte du contenu distant demande aussi une décision de conflit une fois. Une comparaison de contenu peut repérer des changements distants même quand la taille et l’horodatage sont inchangés.
Un envoi d’édition à distance redemande après une longue attente
La connexion s’est bloquée. Une fois connecté, chaque opération d’édition à distance dispose de 120 secondes ; ensuite Corta ferme la connexion et propose à nouveau l’envoi. Approuvez-le pour réessayer sur une nouvelle connexion. Un très gros fichier sur un lien lent peut aussi atteindre la limite : copiez-le plutôt avec le navigateur SFTP.
Apparence et barre d’état
Le curseur ne clignote pas
Le clignotement est désactivé par défaut : activez Faire clignoter le curseur dans Réglages ▸ Apparence ▸ Curseur. Il s’interrompt quand le volet est inactif, masqué ou remonté dans l’historique. Un programme du terminal peut changer la forme ou le clignotement pour lui-même avec DECSCUSR ; Réinitialiser le terminal revient au style configuré.
La barre d’état n’affiche aucun débit réseau, ou le mauvais
Les débits nécessitent deux mesures, laissez donc quelques secondes après avoir activé la barre. auto mesure une
interface principale ; quand un VPN ou plusieurs adaptateurs en font la mauvaise, saisissez le nom de l’interface dans
Réglages ▸ Terminal. Une interface explicitement indiquée qui n’existe pas n’affiche aucun débit. La barre rend toujours
compte du Mac local, y compris dans un volet SSH, et les niveaux thermiques sont des classifications de macOS, pas des
températures. Une fenêtre étroite peut tronquer la barre ; cliquez dessus pour voir toutes les valeurs choisies.
L’éditeur de thème refuse d’enregistrer
Une couleur HEX invalide désactive Enregistrer. Si le thème personnalisé a été modifié dans le fichier de configuration pendant que l’éditeur était ouvert, fermez et rouvrez l’éditeur avant d’enregistrer, pour ne pas écraser cette modification.
L’interface est dans la mauvaise langue
Corta suit la langue que macOS choisit pour lui (Réglages Système ▸ Général ▸ Langue et région ▸ Applications). Redémarrez Corta après l’avoir changée. Le format des nombres suit la région et peut différer de la langue.
Mises à jour
Rechercher les mises à jour… ne trouve rien
Corta compare des numéros de build, pas des chaînes de version, avec appcast.xml sur la branche main. Une version
étiquetée et en brouillon mais pas encore publiée n’est pas dans le flux ; une fois publiée, la chaîne de publication signe
et vérifie le flux, ouvre une pull request, attend la CI et la fusionne en squash ou active la fusion automatique. Une
vérification du flux en échec ou bloquée peut retarder la livraison, laissez donc un peu de temps après l’apparition de la
version sur GitHub. update-auto-check = false ne désactive que la vérification quotidienne en arrière-plan ; l’élément
de menu fonctionne toujours.
Revenir à votre ancien terminal
Quittez Corta avant de supprimer ses fichiers. Examinez les copies gérées de l’édition à distance pour y repérer du travail non enregistré avant de supprimer les données de l’app :
- Intégration du shell, si vous l’avez installée depuis Réglages ▸ Terminal : supprimez-la là, ou effacez le bloc
entre
# >>> Corta shell integration >>>et# <<< Corta shell integration <<<dans le fichier de démarrage de votre shell —~/.zshrc; pour bash dans~/.bashrcet~/.bash_profile(ou~/.bash_login/~/.profile) ; ou~/.config/fish/config.fish. Rien d’autre dans ce fichier n’appartient à Corta. - La Saisie clavier sécurisée se libère d’elle-même quand Corta quitte. Si Corta a été forcé à quitter alors qu’une fenêtre était active et que la saisie semble bloquée ailleurs, lancez et quittez Corta une fois ; le compteur est rééquilibré à la sortie.
- Réglages et état :
~/.config/corta/(le fichier de configuration) et~/Library/Application Support/Corta/(disposition des fenêtres, historique des dossiers et copies gérées de l’édition à distance). Ne les supprimez qu’après avoir conservé les modifications locales dont vous avez encore besoin. Le moteur de rendu garde aussi des fichiers de cache jetables dans~/Library/Caches/dev.noahqin.Corta/; ils peuvent être supprimés. - Placez
Corta.appdans la Corbeille.
Ensuite, si vous le voulez bien, ouvrez une issue avec le formulaire Went back to my old terminal et dites ce qui vous a fait revenir. Aucune reproduction n’est nécessaire. Une fonctionnalité manquante, un bug de rendu et « ça me semblait simplement plus lent » sont autant de réponses sur lesquelles le projet peut agir.