ConEmu Environment variables - Переменные Окружения

Список переменных окружения устанавливаемых в ConEmu

Имя Пример Описание
ConEmuDir C:\ConEmu папка, содержащая ConEmu.exe
ConEmuDrive C: диск с двоеточием, содержащий ConEmu.exe
ConEmuBaseDir C:\ConEmu\ConEmu папка, содержащая ConEmuC.exe
ConEmuBaseDirShort C:\ConEmu\ConEmu то же что и ConEmuBaseDir, но с короткими путями (например C:\PROGRA~1\...)
ConEmuWorkDir C:\Users рабочая папка, где был запущен ваш shell
ConEmuWorkDrive C: диск с двоеточием, где был запущен ваш shell
ConEmuArgs вариант аргументы, с которыми был запущен ConEmu.exe
ConEmuConfig вариант имя активной конфигурации, читайте про ключ /config
ConEmuBuild 141126c текущий билд ConEmu
ConEmuPID число PID (ИД процесса) ConEmu GUI
ConEmuServerPID number PID (ИД процесса) ConEmuC сервера
ConEmuHWND 0x8HEXDGTS дескриптор главного окна ConEmu
ConEmuDrawHWND 0x8HEXDGTS дескриптор дескриптор окна виртуальной консоли (дочернее окно ConEmu), окно отрисовки текста консоли
ConEmuBackHWND 0x8HEXDGTS подложка для окна отрисовки, может быть больше окна отрисовки при наличии «padding» или «scrollbars»
ConEmuIsAdmin ADMIN или не задана устанавливается для тех табов/сплитов, которые запущены с повышенными полномочиями (UAC)
ConEmuANSI ON или OFF установлено в ON если доступен «ANSI X3.64»
ConEmuHooks Enabled,OFF,NOARG,NOSTART можно временно отключить установку inject-ов на время запуска длинных команд или инициализационных скриптов
ConEmuFakeDT 2014-12-31 that will cheat system and local current time for console processes
ConEmuMacroResult вариант устанавливается из плагина ConEmu’s Far Manager после выполнения GUI Macro
ConEmuCpCvt perl.exe:1252:1251 изменить кодовую страницу выводимого текста
ConEmuDefaultCp 1251 установить кодовую страницу вместо использования chcp

Изменения PATH

Settings page Environment has an options ‘Add %ConEmuDir% to %PATH%’, ‘Add %ConEmuBaseDir% to %PATH%’ and edit box for settings user-defined environment variables.

Variables %ConEmuDir% and %ConEmuBaseDir% are set by default to allow easily run executables and scripts and macros from ConEmu’s folders. For example:

ConEmuC -GuiMacro Progress 3

or

csudo dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess

Debug purposed variables

Name Example Description
ConEmuSleepIndicator TITLE, NUM or OFF Turns on monitoring feature of ‘Sleep in background’, when ConEmuSleepIndicator=NUM ConEmu will turn off NumLock when going sleep and turn on NumLock when full active back, when ConEmuSleepIndicator=TITLE - state will be shown in the TabBar or window title.
ConEmuReportExe perl.exe Shows message box like ‘perl.exe loaded’ when perl.exe started inside ConEmu tab; option ‘Inject ConEmuHk’ must be enabled

Export variables

When you start new console - it inherits environment strings (%PATH% also) from parent process (ConEmu GUI).

When you change %PATH% in your shell - it applies to this shell and its children processes (that is started in current console/tab).

If you need to fixate this temporarily environment changes - you may execute

ConEmuC /export PATH

This will ‘copy’ your current %PATH% value to ConEmu GUI and it will be applied to all new ConEmu’s consoles.

Full syntax of Export command

ConEmuC /EXPORT[=CON|ALL] [Var1 [Var2 [...]]]
ConEmuC /export[=CON|ALL] [Var1 [Var2 [...]]]
  VarN        - may contains one trailing/middle asterisk (sort of filemask support).
  /export     - export to all processes of current console and ConEmu GUI
  /export=CON - export to all processes of current console only
  /export=GUI - export to ConEmu GUI only
  /export=ALL - export to all processes of opened tabs and ConEmu GUI
  • Note! ‘Inject ConEmuHk’ required to set variables.
  • Some shells may ignores environment changes by /EXPORT=ALL because of their features.
  • Shells comments
  • ‘Far Manager’ & ‘TCC/LE’ - OK;
  • ‘cmd’ - fails partially (required to run smth from active cmd, for example “cmd /k exit”, to ‘apply’ changes);
  • ‘bash’ - fails completely (seems, it does not support outside changing of env.vars).

Disabling hooks temporarily

You may temporarily disable injects when running ‘long’ batches or initialization scripts:

cmd /k set ConEmuHooks=OFF & "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" -new_console:sV -new_console:t:SDK & set ConEmuHooks=

Actually, ConEmuHooks may be set to comma-delimited set of OFF,NOARG,NOSTART or simple Enabled. So if you want temporarily disable processing of -new_console and start (which both are forcing command into the new ConEmu tab) you may set the following:

set ConEmuHooks=NOARG,NOSTART

Cheating system time

Environment variable “ConEmuFakeDT”. That will cheat system and local current time for console processes. Use carefully! Console applications will think that time was freezed! ‘Inject ConEmuHk’ must be on! Some examples (cmd):

set ConEmuFakeDT=%DATE% %TIME%
set ConEmuFakeDT=2013-12-31T23:59:59.99
set ConEmuFakeDT=2013-01-31 9:0:0
set ConEmuFakeDT=2013-11-30

ConEmuCpCvt

Codepage hack to force output CP conversion.

If some command uses wrong CP while converting ANSI to Unicode (the example may be perl.exe from git add -p) set variable to correct its output. Use asterisk for all apps. This hack affects ONLY WriteConsoleW function calls.

Format:
<exename>:<badcp>:<goodcp>[;<exename>:<badcp>:<goodcp>[...]]
Example:
set ConEmuCpCvt=perl.exe:1252:1251;*:850:866;

ConEmuDefaultCp

Codepage hack to change output CP if you don’t want to use chcp.

If you can’t use chcp <codepage> to change whole console CP output, you may change it using environment variable ConEmuDefaultCp. It will affect only WriteFile and WriteConsoleA functions. So, if you need to run several apps in one console simultaneously…

set ConEmuDefaultCp=1251
ConEmuC -fork -c App1.exe
set ConEmuDefaultCp=866
ConEmuC -fork -c App2.exe
set ConEmuDefaultCp=