Skip to content

Commit deb67e8

Browse files
committed
Auto-relaunch albert-code.bat in Windows Terminal when running in legacy conhost
1 parent 850e952 commit deb67e8

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

‎README.md‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,12 @@ Le lanceur crée automatiquement un environnement virtuel Python (`.venv/`), ins
3232
Sous Windows, utiliser `albert-code.bat` à la place de `albert-code.sh`.
3333

3434
> [!WARNING]
35-
> **Sous Windows : ne pas lancer Albert Code dans l'invite de commande classique (`cmd.exe`) ni dans une fenêtre PowerShell standard.** L'interface en terminal (Textual) ne s'y affiche pas et l'application semble figée. Installer [Windows Terminal](https://aka.ms/terminal) (gratuit, Microsoft Store) et y lancer le `.bat`. Albert Code détecte ce cas au démarrage et affiche un message explicite plutôt que de geler.
35+
> **Sous Windows : Albert Code a besoin de Windows Terminal pour afficher son interface.** L'invite de commande classique (`cmd.exe`) et la fenêtre PowerShell standard ne savent pas afficher la TUI Textual.
36+
>
37+
> Le `.bat` se débrouille tout seul dans la plupart des cas :
38+
> - Si tu lances `albert-code.bat` depuis `cmd.exe` ou PowerShell **avec [Windows Terminal](https://aka.ms/terminal) installé**, le script se relance automatiquement dans une fenêtre Windows Terminal.
39+
> - Si Windows Terminal n'est **pas installé**, Albert Code affiche un message clair plutôt que de geler. Installer Windows Terminal (gratuit, Microsoft Store) résout le problème.
40+
> - Le mode programmatique `albert-code.bat -p "ton prompt"` fonctionne dans n'importe quelle console car il n'utilise pas la TUI.
3641
3742
## 3 - Utilisation
3843

‎albert-code.bat‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@echo off
2+
setlocal enabledelayedexpansion
23
REM Lanceur albert-code -- Windows
34
REM Cree le venv Python au premier lancement, puis lance albert-code.
45
REM Usage : albert-code.bat [options] [PROMPT]
@@ -9,6 +10,31 @@ REM Supprimer le \ final pour eviter les doubles \ dans les chemins
910
if "%SCRIPT_DIR:~-1%"=="\" set SCRIPT_DIR=%SCRIPT_DIR:~0,-1%
1011
set VENV_DIR=%SCRIPT_DIR%\.venv
1112

13+
REM ---- Auto-relancement dans Windows Terminal ----
14+
REM L'invite de commande classique (cmd.exe / conhost legacy) ne sait pas
15+
REM afficher la TUI Textual. Si Windows Terminal (wt.exe) est installe et
16+
REM qu'on est encore en legacy, on relance le script dans une nouvelle fenetre
17+
REM Windows Terminal. Les flags non-interactifs (-h, -v, --setup, -p) restent
18+
REM dans la fenetre courante car ils n'ont pas besoin de TUI.
19+
if not "%WT_SESSION%"=="" goto :skip_wt_relaunch
20+
set _ALBERT_INTERACTIVE=1
21+
for %%A in (%*) do (
22+
if /i "%%~A"=="-h" set _ALBERT_INTERACTIVE=
23+
if /i "%%~A"=="--help" set _ALBERT_INTERACTIVE=
24+
if /i "%%~A"=="-v" set _ALBERT_INTERACTIVE=
25+
if /i "%%~A"=="--version" set _ALBERT_INTERACTIVE=
26+
if /i "%%~A"=="--setup" set _ALBERT_INTERACTIVE=
27+
if /i "%%~A"=="-p" set _ALBERT_INTERACTIVE=
28+
if /i "%%~A"=="--prompt" set _ALBERT_INTERACTIVE=
29+
)
30+
if not defined _ALBERT_INTERACTIVE goto :skip_wt_relaunch
31+
where wt >nul 2>&1
32+
if errorlevel 1 goto :skip_wt_relaunch
33+
echo Windows Terminal detecte, relancement pour un affichage correct de la TUI...
34+
start "" wt.exe new-tab --title "Albert Code" -d "%CD%" cmd.exe /k "%~f0" %*
35+
exit /b 0
36+
:skip_wt_relaunch
37+
1238
REM Verifier que python est disponible
1339
where python >nul 2>&1
1440
if errorlevel 1 (

0 commit comments

Comments
 (0)