|
@chcp 65001 > nul |
|
@echo off |
|
if .%1==./? ( |
|
echo %0 [/?] [mode [sep]] |
|
echo Sets a Powerline-like prompt |
|
echo /? This help |
|
echo mode A mode for your prompt |
|
echo sep A seperator for your prompt |
|
echo. |
|
echo Modes: |
|
echo nerdfonts A NerdFonts prompt |
|
echo blog A Unicode-only prompt |
|
echo legacy A Unicode-only colored prompt |
|
echo powerline Same as legacy, but the default seperator is from Powerline |
|
echo nerdfonts2 A 2-line NerdFonts prompt |
|
echo blog2 A 2-line Unicode-only prompt |
|
echo legacy2 A 2-line Unicode-only colored prompt |
|
echo powerline2 Same as blog2, but the default seperator is from Powerline |
|
echo. |
|
echo Notes: |
|
echo - This script puts name of your host in %appdata%\CMDPowerline\hostname because UserDomain return very capitalized hostname. |
|
echo After loading this prompt, a environment variable ^%UserDomainC^% is created. |
|
echo - This script sets encoding to UTF-8 so it can use Unicode symbols. |
|
echo - If an unknown mode is used, the script fallbacs to legacy prompt. |
|
echo - This script also sets the title to CMD[#] at ^%cd^%. As it cleans the Administrator: prefix, I added a # to title. |
|
echo - In Terminus, the prompt also reports current directory. |
|
exit /b 0 |
|
) |
|
set $PostFix=$E[0m |
|
if defined TERMINUS_PLUGINS set $PostFix=$E]1377;CurrentDir=$P |
|
if not exist %appdata%\CMDPowerline\ md %appdata%\CMDPowerline || echo Can not make directory %appdata%\CMDPowerline\. >&2 |
|
if not exist %appdata%\CMDPowerline\hostname (hostname > %appdata%\CMDPowerline\hostname) || echo Can not make file %appdata%\CMDPowerline\hostname. >&2 |
|
if exist %appdata%\CMDPowerline\hostname set /p UserDomainC=<%appdata%\CMDPowerline\hostname |
|
if .%1==.nerdfonts (call :nerdfonts %2 & set $sep= & set $postfix= & exit /b 0) |
|
if .%1==.powerline (call :powerline %2 & set $sep= & set $postfix= & exit /b 0) |
|
if .%1==.blog (call :blog %2 & set $sep= & set $postfix= & exit /b 0) |
|
if .%1==.nerdfonts2 (call :nerdfonts2 %2 & set $sep= & set $postfix= & exit /b 0) |
|
if .%1==.powerline2 (call :powerline2 %2 & set $sep= & set $postfix= & exit /b 0) |
|
if .%1==.legacy2 (call :legacy2 %2 & set $sep= & set $postfix= & exit /b 0) |
|
if .%1==.blog2 (call :blog2 %2 & set $sep= & set $postfix= & exit /b 0) |
|
call :legacy %2 |
|
exit /b 0 |
|
rem =========[1 Line Mode]======== |
|
:nerdfonts SEP |
|
if .%1==. (set $sep=) else set $sep=%1 |
|
openfiles >nul 2>&1 |
|
if ERRORLEVEL 1 ( |
|
prompt $E]2;CMD$Sat$S$P$E\$E[43;30m$T$E[0;33;46m%$sep%$E[30;46m%UserName%$E[36;45m%$sep%$E[94m$E[39;45m%UserDomainC%$E[39;35;103m%$sep%$E[39;103;30m$M$+$P$E[0;93m%$sep%$E[0m$S%$PostFix% |
|
) else ( |
|
prompt $E]2;#CMD$Sat$S$P$E\$E[43;30m$T$E[0;33;101m%$sep%$E[30;101m%UserName%$E[91;45m%$sep%$E[94m$E[39;45m%UserDomainC%$E[39;35;103m%$sep%$E[39;103;30m$M$+$P$E[0;93m%$sep%$E[0m$S%$PostFix% |
|
) |
|
exit /b 0 |
|
:legacy SEP |
|
if .%1==. (set $sep=▶) else set $sep=%1 |
|
openfiles >nul 2>&1 |
|
if ERRORLEVEL 1 ( |
|
prompt $E]2;CMD$Sat$S$P$E\$E[43;30m$T$E[0;33;46m%$sep%$E[30;46m%UserName%$E[36;45m%$sep%$E[45;39m%UserDomainC%$E[39;35;103m%$sep%$E[39;103;30m$M$+$P$E[0;93m%$sep%$E[0m$S%$PostFix% |
|
) else ( |
|
prompt $E]2;#CMD$Sat$S$P$E\$E[43;30m$T$E[0;33;101m%$sep%$E[30;101m%UserName%$E[91;45m%$sep%$E[45;39m%UserDomainC%$E[39;35;103m%$sep%$E[39;103;30m$M$+$P$E[0;93m%$sep%$E[0m$S%$PostFix% |
|
) |
|
exit /b 0 |
|
:powerline SEP |
|
if .%1==. (set $sep=) else set $sep=%1 |
|
call :legacy %$sep% |
|
exit /b 0 |
|
:blog SEP |
|
if .%1==. (set $sep=⟩) else set $sep=%1 |
|
openfiles >nul 2>&1 |
|
if ERRORLEVEL 1 ( |
|
prompt $E]2;CMD$Sat$S$P$E\$T%$sep%%UserName%%$sep%%UserDomainC%%$sep%$M$+$P%$sep%%$PostFix% |
|
) else ( |
|
prompt $E]2;#CMD$Sat$S$P$E\$T%$sep%!%UserName%%$sep%%UserDomainC%%$sep%$M$+$P%$sep%%$PostFix% |
|
) |
|
exit /b 0 |
|
rem =========[2 Line Mode]======== |
|
:nerdfonts2 SEP |
|
if .%1==. (set $sep=) else set $sep=%1 |
|
openfiles >nul 2>&1 |
|
if ERRORLEVEL 1 ( |
|
prompt $E]2;CMD$Sat$S$P$E\╭──$E[43;30m%$SEP%$E[30m$T$E[0;33;46m%$sep%$E[30;46m%UserName%$E[36;45m%$sep%$E[94m$E[39;45m%UserDomainC%$E[39;35;103m%$sep%$E[39;103;30m$M$+$P$E[0;93m%$sep%$E[0m$_╰▶$S%$PostFix% |
|
) else ( |
|
prompt $E]2;#CMD$Sat$S$P$E\╭──$E[43;30m%$SEP%$E[30m$T$E[0;33;101m%$sep%$E[30;101m%UserName%$E[91;45m%$sep%$E[94m$E[39;45m%UserDomainC%$E[39;35;103m%$sep%$E[39;103;30m$M$+$P$E[0;93m%$sep%$E[0m$_╰▶$S%$PostFix% |
|
) |
|
exit /b 0 |
|
:legacy2 SEP |
|
if .%1==. (set $sep=▶) else set $sep=%1 |
|
openfiles >nul 2>&1 |
|
if ERRORLEVEL 1 ( |
|
prompt $E]2;CMD$Sat$S$P$E\╭──$E[43;30m%$SEP%30m$T$E[0;33;46m%$sep%$E[30;46m%UserName%$E[36;45m%$sep%$E[45;39m%UserDomainC%$E[39;35;103m%$sep%$E[39;103;30m$M$+$P$E[0;93m%$sep%$E[0m$_╰▶$S%$PostFix% |
|
) else ( |
|
prompt $E]2;#CMD$Sat$S$P$E\╭──$E[43;30m%$SEP%30m$T$E[0;33;101m%$sep%$E[30;101m%UserName%$E[91;45m%$sep%$E[45;39m%UserDomainC%$E[39;35;103m%$sep%$E[39;103;30m$M$+$P$E[0;93m%$sep%$E[0m$_╰▶$S%$PostFix% |
|
) |
|
exit /b 0 |
|
:powerline2 SEP |
|
if .%1==. (set $sep=) else set $sep=%1 |
|
call :legacy2 %$sep% |
|
exit /b 0 |
|
:blog2 SEP |
|
if .%1==. (set $sep=⟩) else set $sep=%1 |
|
openfiles >nul 2>&1 |
|
if ERRORLEVEL 1 ( |
|
prompt $E]2;CMD$Sat$S$P$E\╭──%$sep%$T%$sep%%UserName%%$sep%%UserDomainC%%$sep%$M$+$P%$sep%$_╰▶$S%$PostFix% |
|
) else ( |
|
prompt $E]2;#CMD$Sat$S$P$E\╭──%$sep%$T%$sep%!%UserName%%$sep%%UserDomainC%%$sep%$M$+$P%$sep%$_╰▶$S%$PostFix% |
|
) |
|
exit /b 0 |