DC - Файл конфигурации doublecmd.xml

# 2.17. Файл конфигурации doublecmd.xml

## Содержание

1. Описание
2. Расположение
3. Параметры, изменяемые вручную
4. Индекс

## 1. Описание

Главные настройки Double Commander хранятся в XML файле с именем `doublecmd.xml`.

(наверх)

## 2. Расположение

Файл `doublecmd.xml` может быть расположен в разных местах:

- Домашний каталог пользователя.
- Каталог программы, обычно в случае использования как портативной версии.
- Мы можем задать каталог с помощью параметра командной строки при запуске приложения.

Подробнее узнать про параметр командной строки `--config-dir` можно по этой ссылке.

Расположение задаётся в настройках: Настройки > Параметры... > выбираем в дереве > устанавливаем параметр Месторасположение файлов конфигурации.

Ещё один способ быстро выяснить, где находится `doublecmd.xml` текущего экземпляра Double Commander, это использовать меню избранных каталогов. В конце его имеется дополнительный раздел под названием "Специальные каталоги", далее выбираем "Каталог Double Commander..." и "%DC_CONFIG_PATH%". Здесь мы найдём `doublecmd.xml`, который приложение использует в данный момент.

(наверх)

## 3. Параметры, изменяемые вручную

Подавляющее большинство параметров Double Commander может быть изменено через интерфейс приложения.

Мы просто нажимаем в главном меню Настройки > Параметры и получаем окно с настройками, разложенными по категориям.

Так что, как правило, нам не придётся вручную редактировать содержимое файла конфигурации.

Но есть несколько параметров, которые могут быть изменены только ручным редактированием `doublecmd.xml`.

ПРЕДУПРЕЖДЕНИЕ: Мы не будем редактировать файл пока Double Commander запущен! Не только потому, что в любом случае значения из него будут прочитаны только при запуске приложения, но и потому, что после закрытия DC наши изменения будут перезаписаны значениями текущей сессии. Если нужно изменить файл `doublecmd.xml` вручную, мы должны убедиться, что закрыли Double Commander, затем отредактировать файл и запустить приложение.
Есть альтернативное решение, подробнее смотрите здесь (но для применения изменений некоторых параметров всё равно может потребоваться перезапустить приложение).

Таблица ниже содержит описание параметров, изменение которых возможно только вручную.

Параметры, требующие изменения вручную
Тег | Описание
--- | ---
в <AutoRefresh>:
<Mode> | Возможность удалить просматриваемые каталоги. "Просматриваемый каталог" – это каталог, на который Double Commander создаёт своего рода хук, поэтому может отслеживать любые изменения в нём. Таким образом, он может обновить отображаемое содержимое файловой панели, если оно изменилось. Этот параметр позволяет контролировать, как Double Commander будет реагировать на попытку удалить один из таких "просматриваемых каталогов" (даже в неактивной вкладке).
Значение | Описание
--- | ---
0 | Блокировать удаление просматриваемых каталогов.
1 | Не мешать удалению просматриваемых каталогов (по умолчанию).
2 | Отслеживать не каталог, а весь диск целиком: нет проблем с блокировкой открытых в DC каталогов, но может нагружать процессор.
Пример: `<Mode>1</Mode>`
в <Behaviours>:
<ActiveRight> | При запуске Double Commander активной будет правая панель.
Значение | Описание
--- | ---
True | Правая панель
False | Левая панель (по умолчанию)
Пример: `<ActiveRight>True</ActiveRight>`
<ConfirmQuit> | Подтверждать закрытие Double Commander (`True`) или нет (`False`). По умолчанию `False`.
в <Colors>:
<gBorderFrameWidth> | Мы можем настроить DC так, чтобы он рисовал рамку вокруг курсора. Параметр `<gBorderFrameWidth>` позволяет нам задать ширину линий. Чтобы включить курсор-рамку, мы должны перейти в Настройки > Параметры... > Цвета > Файловые панели и отметить параметр Курсор-рамка. Пример: `<gBorderFrameWidth>1</gBorderFrameWidth>`
в <Editor>:
<FindWordAtCursor> | Встроенный редактор и инструмент сравнения: если ничего не выделено, в диалоге поиска и замены будет использоваться слово под курсором (`True`) или текст из истории поиска (`False`). По умолчанию `True`.
в <FileOperations>:
<AutoExtractOpenMask> | Предположим, мы "вошли" в сжатый файл в активной панели и просматриваем его содержимое. Файлы с расширением, заданным в этом параметре, при нажатии `Enter` или двойном щелчке мыши будут автоматически распакованы из архива и выполнены в соответствии с файловыми ассоциациями (вместо показа окна свойств). Пример: `<AutoExtractOpenMask>*.txt;*.mp3;*.mp4</AutoExtractOpenMask>`
<DefaultDropEffect> | Действие по умолчанию при перетаскивании файлов мышью: копирование (`True`) или перемещение (`False`) файлов. По умолчанию `True`.
<LongNameAlert> | Предупредить, если целевой путь длиннее максимальной длины для пути (некоторые программы не смогут получить доступ к файлу/каталогу с таким длинным именем). В Windows это значение (MAX_PATH) составляет 260 символов. По умолчанию `True`.
<NtfsHourTimeDelay> | При сравнении даты и времени игнорировать разницу во времени ровно один час (при использовании внутренних команд cm_CompareDirectories или cm_SyncDirs). Это полезно при сравнении файлов и папок на разделах с NTFS и FAT32, поскольку метки времени на томах с NTFS меняются при переходе с летнего или на летнее время: т.е. файлы на NTFS идентичны файлам на разделе с FAT32, хотя мы явно видим один час разницы.
Значение | Описание
--- | ---
True | Разрешить, разница ровно в один час будет считаться как то же время
False | Запретить (по умолчанию)
Пример: `<NtfsHourTimeDelay>True</NtfsHourTimeDelay>`
<Sounds> | Включает звуковые уведомления при завершении файловых операций. Возможное содержимое тега `<Sounds>` полностью:
    <Sounds Duration="-1">
      <Copy>C:\Windows\Media\Alarm01.wav</Copy>
      <Move>C:\Windows\Media\Alarm01.wav</Move>
      <Wipe>C:\Windows\Media\Alarm01.wav</Wipe>
      <Delete>C:\Windows\Media\Alarm01.wav</Delete>
      <Split>C:\Windows\Media\Alarm01.wav</Split>
      <Combine>C:\Windows\Media\Alarm01.wav</Combine>
    </Sounds>
`Duration` – минимальное время (в секундах), которое должна продолжаться файловая операция. Дополнительные значения: 0 – включено всегда, -1 отключает звуковые уведомления. Файловые операции: копировать, переместить, стереть, удалить файлы, разрезать файл и собрать файлы. Если для какой-то операции не нужно звуковое оповещение, то просто уберите (или не добавляйте) соответствующую строку. Поддерживаются переменные окружения. Поддерживаемые форматы аудио: - Windows (функция `sndPlaySoundW` из Windows API): .wav. - macOS (Core Audio API): .aac, .adts, .ac3, .caf, .mp3, .m4a и .mp4 (с AAC или ALAC), .wav. - Linux и другие Unix-подобные системы: Double Commander может использовать библиотеку GStreamer (в первую очередь, `libgstreamer-1.0.so.0`) или библиотеку SDL2 (`libSDL2-2.0.so.0`). GStreamer поддерживает большинство популярных форматов аудио, с SDL2 мы можем использовать только .wav. В Haiku доступно использование только SDL2.
в <FileOperations><Options>:
<CopyAttributes> | Windows: если `True`, при копировании/перемещении файлов будут скопированы атрибуты исходного файла; если `False`, также будут скопированы атрибуты исходного файла и Double Commander установит атрибут "архивный". Linux и другие: используйте параметр Копировать атрибуты в диалоговом окне копирования/перемещения. По умолчанию `True`.
<CopyTime> | Windows: если `True`, при копировании/перемещении файлов будут скопированы отметки времени (дата создания, дата изменения, дата последнего доступа) исходного файла, в противном случае будет скопирована только дата модификации и использоваться текущая дата для остальных. Linux и другие: используйте параметр Копировать дату/время в диалоговом окне копирования/перемещения. По умолчанию `True`.
<CopyXattributes> | Копировать расширенные атрибуты файловой системы при копировании/перемещении файлов или нет. Windows: Если `True`, также будут скопированы атрибуты сжатый и зашифрованный. Linux и другие Unix-подобные системы: Double Commander будет копировать расширенные атрибуты файловой системы (xattr, т.е. именованные атрибуты). По умолчанию `True`.
в <FilesViews>:
<ExtraLineSpan> | Параметр позволяет добавить несколько дополнительных пикселей по высоте для каждого элемента в файловых панелях. Значение задаётся непосредственно в пикселях. По умолчанию равно 2. Пример: `<ExtraLineSpan>2</ExtraLineSpan>`
<FolderPrefix> и <FolderPostfix> | По умолчанию DC показывает квадратные скобки вокруг имён папок (это опциональный параметр в Список файлов > Список файлов (дополнительно)), но мы можем использовать вместо них любые символы. Примечание: В XML некоторые специальные символы зарезервированы как часть разметки и мы не можем использовать их как есть. Существует пять предопределённых сущностей: `<` должен быть записан как `&lt;`, `>` как `&gt;`, `&` как `&amp;`, `'` как `&apos;` и `"` как `&quot;`.
<RenameConfirmMouse> | Параметр меняет действие щелчка мыши при переименовании файла под курсором: если `True`, щелчок мыши вне поля редактирования имени подтвердит переименование файла (как в Проводнике Windows), в противном случае щелчок мыши будет работать аналогично клавише `Esc`. По умолчанию `False`. В обоих случаях для подтверждения операции мы по-прежнему можем использовать кнопку справа от поля редактирования.
в <FilesViews><ColumnsView>:
<AutoSaveWidth> | Когда мы вручную с помощью мыши изменяем ширину колонки, по умолчанию DC применяет изменения для обеих панелей и сохраняет новое значение для последующих запусков. Если мы хотим отключить такое поведение и использовать изменения только в текущей сессии, то должны заменить `True` на `False`, т.е. использовать `<AutoSaveWidth>False</AutoSaveWidth>`.
<LongInStatus> | Если выбран подробный вид и нет выделенных файлов, то в строке состояния отображается имя файла под курсором (`True`) или количество файлов (`False`, по умолчанию). Если `True`, строка состояния также будет показывать количество файлов, когда курсор находится на пункте "..". Для ссылок дополнительно будут отображаться целевые объекты.
<TitleStyle> | Изменение вида панели заголовков колонок. Значение по умолчанию зависит от ОС.
Значение | Описание
--- | ---
0 | tsLazarus: Значение Lazarus по умолчанию.
1 | tsStandard: Более контрастный вид, как у сетки Delphi.
2 | tsNative: Попытаться установить вид, соответствующий текущей теме набора виджетов.
Пример: `<TitleStyle>2</TitleStyle>`
во всех тегах <Fonts>:
<Quality> | Задаёт тип растеризации шрифта. Другими словами, определяет качество шрифта. Есть много тегов `<Font>`, можно менять не для всей программы, а индивидуально.
Значение | Описание
--- | ---
0 | Default: Используются системные настройки (по умолчанию).
1 | Draft: Включает масштабирование для растровых шрифтов; размер шрифта можно увеличивать, но со снижением качества. Также шрифт поддерживает начертания жирный, курсив, подчёркнутый и зачёркнутый, если это необходимо. Качество получается ниже, чем при использовании Proof.
2 | Proof: Качество отрисовки символов имеет важное значение, поэтому для растровых шрифтов отключается масштабирование и подбирается ближайший по размеру.
3 | NonAntialiased: Не использовать сглаживание.
4 | Antialiased: Шрифт всегда сглаживается, если поддерживает это. Размер шрифта не может быть слишком маленьким или слишком большим.
5 | ClearType: Шрифт отображается с использованием технологии сглаживания ClearType.
6 | ClearTypeNatural: Шрифт отображается с использованием технологии сглаживания Natural ClearType.
Пример: `<Quality>1</Quality>`
в <History>:
Атрибут Count в <History><DirHistory> | Атрибут `Count` позволяет указать количество записей из списка посещённых каталогов, которые будут отображаться в выпадающем меню (команда cm_DirHistory). По умолчанию 30. При использовании древовидного меню значение атрибута будет проигнорировано.
в <Icons>:
<CustomIcons> | Параметр определяет, какие значки будут использоваться для дисков, папок и архивов. Задаётся как сумма следующих значений:
Элемент | Из системы | Пользовательские
--- | --- | ---
Диски | 0 | 1 (только Windows)
Папки | 0 | 2 (все, кроме Haiku)
Архивы | 0 | 4 (Windows, Linux и FreeBSD)
Если мы хотим... ...все из системы: 0 + 0 + 0= 0, тогда `<CustomIcons>0</CustomIcons>` ...все пользовательские: 1 + 2 + 4 = 7, тогда `<CustomIcons>7</CustomIcons>` ...пользовательские для дисков, остальные из системы: 1 + 0 + 0 = 1, тогда `<CustomIcons>1</CustomIcons>` и т.д... Для пользовательских значков используются следующие ("XxX" – это размеры значков):
Элемент | Расположение
--- | ---
Диски | %commander_path%\pixmaps\theme\XxX\devices\
Папки | %commander_path%\pixmaps\theme\XxX\places\folder.png
Архивы | %commander_path%\pixmaps\theme\XxX\mimetypes\package-x-generic.png
<DiskAlpha> | Задаёт уровень прозрачности для значков отмонтированных дисков.
Значение | Описание
--- | ---
от 1 до 99 | Уровень прозрачности (по умолчанию 50).
0 или 100 | Запретить функцию.
<ToolSize> | Размер значков панели инструментов во встроенном редакторе, просмотрщике и инструменте сравнения, допустимые значения: 16, 24 или 32.
в <Layout>:
<ShowColonAfterDrive> | Только Windows: показать двоеточие после букв дисков в панели кнопок дисков и в списке дисков. По умолчанию `False`.
<UppercaseDriveLetter> | Только Windows: использовать заглавные буквы в панели кнопок дисков и в списке дисков. По умолчанию `False`. Примечание: Параметр не меняет буквы дисков в ранее сохранённой истории и настройках (избранное, кнопки и так далее).
в <Miscellaneous>:
<DecimalSeparator> | Параметр позволяет указать предпочитаемый символ десятичного разделителя (т.е. разделителя целой и дробной частей числа) вместо значения из ваших региональных настроек. Мы можем указать любой символ из таблицы ASCII с кодом от U+0000 до U+007F (подразумевается использование печатных символов, т.е. от U+0020 до U+007F).
<DoubleClickEditPath> | Параметр позволяет выбрать действие двойного щелчка по панели текущего пути: показать избранные каталоги (`False`, по умолчанию) или редактировать текущий путь (`True`).
<SystemItemProperties> | Linux/FreeBSD: значение `True` позволяет использовать диалоговое окно свойств файла файлового менеджера, который указан как программа по умолчанию в настройках среды рабочего стола (если это возможно), иначе Double Commander будет использовать собственное окно свойств. По умолчанию `False`.
в <SyncDirs>:
<DateTimeFormat> | Параметр позволяет указать предпочитаемый формат даты и времени в инструменте синхронизации каталогов. Символы форматирования даты и времени описаны здесь. Значение по умолчанию `yyyy.mm.dd hh:nn:ss`.
Атрибут Save в <SyncDirs><Asymmetric> | Синхронизация каталогов: сохранять или нет асимметричный режим по умолчанию. Если мы хотим сохранять состояние режима, тогда `<Asymmetric Save="True">`, в противном случае `<Asymmetric Save="False">` (по умолчанию).
Атрибут Save в <SyncDirs><FileMask> | Синхронизация каталогов: по умолчанию Double Commander сохраняет последнюю использованную маску файлов как маску для следующего запуска инструмента синхронизации (если это не шаблон поиска), чтобы запретить такое поведение, мы можем заменить `True` на `False` (`<FileMask Save="False">`) и указать в значении `<FileMask>` предпочитаемую маску файлов или "*" (т.е. все файлы).
в <Viewer>:
<AutoCopy> | Встроенный просмотрщик: включает (`True`) или выключает (`False`) автоматическое копирование выделенного текста в буфер обмена. По умолчанию `True`.
<ExtraLineSpan> | Встроенный просмотрщик: параметр позволяет добавить несколько дополнительных пикселей по высоте для каждой строки. Значение задаётся непосредственно в пикселях. По умолчанию 0. Пример: `<ExtraLineSpan>2</ExtraLineSpan>`
<ImageExifRotate> | Double Commander способен распознавать формат метаданных EXIF, которые могут быть в файлах изображений JPEG. Среди метаданных есть флаг ориентации, который может быть использован для просмотра изображения в том положении, в котором оно было сделано: портрет, пейзаж, перевёрнутое, зеркальное и т.д. Тег `ImageExifRotate` определяет, будет ли Double Commander учитывать эту информацию при просмотре изображения или нет.
Значение | Описание
--- | ---
True | Использовать встроенный в файл изображения флаг ориентации (по умолчанию).
False | Игнорировать флаг ориентации.
Пример: `<ImageExifRotate>True</ImageExifRotate>`
<JpegQuality> | Встроенный просмотрщик: значение качества, которое Double Commander будет использовать по умолчанию при сохранении в формат JPEG (команды Сохранить и Сохранить как...). По умолчанию 80.
<LeftMargin> | Встроенный просмотрщик: параметр позволяет добавить пространство между левой границей окна и границей текста. Значение задаётся непосредственно в пикселях. По умолчанию 4. Пример: `<LeftMargin>4</LeftMargin>`
<MaxCodeSize> | Встроенный просмотрщик: ограничивает максимальный размер файла для автоматического выбора режима просмотра кода (отображение текста с подсветкой синтаксиса требует больше ресурсов, чем отображение простого текста). Значение параметра игнорируется, когда мы принудительно включаем режим просмотра кода в окне просмотрщика. Размер задаётся в мегабайтах, значение по умолчанию 128.
<MaxTextWidth> | Встроенный просмотрщик: задать максимальное количество символов в одной строке до принудительного переноса на новую. Диапазон значений от 80 до 16384, по умолчанию 1024. Пример: `<MaxTextWidth>1024</MaxTextWidth>`
<SynEditMask> | Встроенный просмотрщик: параметр позволяет управлять списком расширений файлов для режима просмотра кода (конечно, в пределах доступного списка). Мы можем указать маски файлов (через точку с запятой ";" без пробелов), которые автоматически будут открываться в этом режиме вместо обычного текста, или имя шаблона поиска для исключения. Также мы можем отключить автоматическое открытие файлов в этом режиме, задав пустую строку. Значение по умолчанию "*".
<TabSpaces> | Встроенный просмотрщик: задать ширину табуляции. Диапазон значений от 1 до 32, по умолчанию 8. Пример: `<TabSpaces>4</TabSpaces>`

(наверх)

## 4. Индекс

Атрибут Count (<DirHistory>) Атрибут Save (<Asymmetric>) Атрибут Save (<FileMask>) ActiveRight AutoCopy AutoExtractOpenMask AutoSaveWidth ConfirmQuit CopyAttributes CopyTime CopyXattributes CustomIcons DateTimeFormat | DecimalSeparator DefaultDropEffect DiskAlpha DoubleClickEditPath ExtraLineSpan (<FilesViews>) ExtraLineSpan (<Viewer>) FindWordAtCursor FolderPrefix и FolderPostfix gBorderFrameWidth ImageExifRotate JpegQuality LeftMargin LongInStatus LongNameAlert | MaxCodeSize MaxTextWidth Mode NtfsHourTimeDelay Quality RenameConfirmMouse ShowColonAfterDrive Sounds SynEditMask SystemItemProperties TabSpaces TitleStyle ToolSize UppercaseDriveLetter

(наверх)