Перейти к содержанию

Глава 8: Настройки и персонализация

По-настоящему эффективный файловый менеджер должен адаптироваться к вашему рабочему процессу, а не заставлять вас адаптироваться к его настройкам по умолчанию. У каждого инженера, системного администратора, цифрового архивиста и творческого профессионала есть своя мышечная память, требования к дисплею и рабочие привычки: некоторые строго полагаются на традиционные функциональные клавиши Norton Commander/Total Commander (F1–F10), в то время как другие ожидают встроенных ярлыков macOS (Cmd+C, Cmd+V, Cmd+V, Cmd+O); некоторые требуют динамической автоматической подгонки столбцов с субпиксельными типографскими метриками, в то время как другим нужны жесткие, фиксированные границы столбцов; некоторые требуют агрессивного мониторинга событий файловой системы в реальном времени, в то время как другие работают в общих сетевых ресурсах с высокой задержкой, где пассивный опрос является обязательным.

ATBCmder спроектирован с нуля для обеспечения полной настраиваемости. Благодаря модульному Диалогу настроек (Cmd+, / ⌘, / cm_Options), интуитивно понятному Редактору горячих клавиш с обнаружением конфликтов в реальном времени, интеллектуальному Обработчику автоматической подгонки столбцов, настраиваемым Связям файлов с внешними макросами токенов и переносимым Пакетам конфигурации ZIP (cm_ExportConfiguration), ATBCmder позволяет вам точно настроить каждый аспект вашей двухпанельной среды и беспрепятственно перенести индивидуальные настройки на все ваши системы Mac.


1. Визуальное краткое руководство: Центр настроек и матрица команд

ATBCmder централизует все пользовательские настройки в единую архитектуру настроек, состоящую из 16 специализированных страниц конфигурации, изолированного механизма сопоставления горячих клавиш и атомарного уровня хранения XML.

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                          ATBCMDER PREFERENCES CENTER (Cmd+,)                           │
├──────────────────────┬─────────────────────────────────────────────────────────────────┤
│  CATEGORY NAVIGATION │  ACTIVE CONFIGURATION PAGE                                      │
├──────────────────────┼─────────────────────────────────────────────────────────────────┤
│  • General           │  Column Auto-Fit Mode:                                          │
│  • Hotkeys           │  [ Average Mode (Smart Padding)                       ▼ ]       │
│  • Language          │                                                                 │
│  • File Views        │  Average Mode Padding Factor: [ 1.25x ]                         │
│  • Auto Refresh      │                                                                 │
│  • Operations        │  Sorting Behavior:                                              │
│  • Packer            │  [X] Natural (numeric) sorting: photo1.jpg < photo10.jpg        │
│  • Plugins           │  [X] Case-sensitive sorting                                     │
│  • Directory Hotlist │  Folder Position: [ Folders First                     ▼ ]       │
│  • Favorite Tabs     │                                                                 │
│  • Editor            │  Thumbnail Generation:                                          │
│  • Viewer            │  Default Size: [ 128 px ]   Cache: [~/.cache/atbcmder]          │
│  • Toolbar           │                                                                 │
│  • Middle Toolbar    │  Date/Time Format:                                              │
│  • Log               │  Long Format: [ %Y-%m-%d %H:%M:%S                             ] │
│  • Quick Search      │                                                                 │
│  • Semantic Filter   │  [ Revert Changes ]                   [ Apply ] [ OK ] [Cancel] │
├──────────────────────┴─────────────────────────────────────────────────────────────────┤
│  CONFIG BACKEND:  atbcmder.xml  |  atbcmder_hotkeys.xml  |  favtabs.xml  |  hotlist.xml│
│  PORTABILITY:     cm_ExportConfiguration (ZIP)  ➔  cm_ImportConfiguration (ZIP)        │
└────────────────────────────────────────────────────────────────────────────────────────┘

Шпаргалка по настройкам и настройке двойной матрицы

Действие Сочетание клавиш macOS Классическая клавиша Commander Идентификатор команды Описание
Открыть настройки Cmd+, / ⌘, Alt+O / ⌥O cm_Options Открывает главное многостраничное диалоговое окно настроек.
Настройка горячих клавиш Cmd+, ➔ Сочетания клавиш — cm_Options (Сочетания клавиш) Прямой доступ к таблице привязки сочетаний клавиш.
Настройка ассоциаций файлов Меню: Конфигурация — cm_FileAssoc Сопоставляет расширения файлов внутренним или внешним средствам просмотра/редактированию.
Настройка горячего списка каталогов Ctrl+Shift+D / ⌃⇧D Ctrl+Shift+D cm_ConfigDirHotList Редактирует сохраненные закладки папок и активные горячие клавиши (Ctrl+D для открытия горячего списка).
Настройка избранных вкладок Меню: Конфигурация — cm_ConfigFavoriteTabs Управляет сохраненными наборами вкладок папок с двумя панелями.
Настроить архиваторы Меню: Конфигурация — cm_ConfigArchivers Настраивает исполняемые файлы внешнего архиватора и правила сжатия.
Экспорт конфигурации Меню: Конфигурация — cm_ExportConfiguration Экспортирует все XML-файлы конфигурации в портативный пакет .zip.
Импортировать конфигурацию Меню: Конфигурация — cm_ImportConfiguration Восстанавливает XML-файлы конфигурации из пакета .zip.
Открыть каталог конфигурации Меню: Конфигурация — cm_OpenConfigDirectory Перемещает активную панель непосредственно в папку конфигурации ATBCmder.
Немедленное сохранение настроек Меню: Конфигурация — cm_ConfigSaveSettings Немедленно сбрасывает все изменения конфигурации в памяти на диск.
Сохранить положение окна Меню: Конфигурация — cm_ConfigSavePos Сохраняет текущую геометрию окна и пропорции разделителя.
Переключить подсказки к файлам Настройки: Просмотры файлов — (Настройки) Включает или отключает подробные всплывающие подсказки метаданных.
Предоставление системных разрешений Меню: Конфигурация — cm_GrantFilesystemAccess Запускает руководство по вводу в эксплуатацию полного доступа к песочнице приложения macOS.

2. Анатомия и навигация диалога настроек (Cmd+, / cm_Options)

Центральным пунктом управления ATBCmder является Диалог настроек. Вы можете вызвать его в любое время, нажав Cmd+, (⌘,) в macOS, выбрав ATBCmder ➔ Настройки... в меню приложения или выполнив cm_Options через семантическую панель команд (/).

2.1 Структура диалога и модель взаимодействия

В диалоговом окне «Настройки» используется разделенный макет «основной-подробный», разработанный для ясности и доступности с клавиатуры:

  1. Список навигации по категориям (слева): вертикальный переключатель с читаемым интерфейсным шрифтом размером 14 пикселей и фиксированной боковой панелью размером 195 пикселей. Перемещайтесь между категориями с помощью клавиш со стрелками Up и Down или щелкайте мышью.
  2. Область многоуровневой прокрутки страниц (справа): обширная панель конфигурации, заключенная в безрамочный QScrollArea. При переключении категорий соответствующая страница настроек плавно появляется, не вызывая изменения размера диалогового окна или мерцания окна.
  3. Матрица кнопок действий (внизу):
  4. ОК: проверяет все поля ввода на всех страницах, записывает измененные настройки на диск (atbcmder.xml), запускает повторный перевод и обновление темы, а также закрывает диалоговое окно.
  5. Применить: немедленно фиксирует все измененные параметры, не закрывая диалоговое окно. Это идеально подходит для тестирования шрифтов пользовательского интерфейса, вариантов тем, заполнения столбцов и интервалов автоматического обновления в реальном времени.
  6. Отмена: отменяет все несохраненные изменения, внесенные в текущем сеансе. Если вы просмотрели тему без применения, ATBCmder автоматически откатит интерфейс к предыдущей теме.
┌────────────────────────────────────────────────────────────────────────────┐
│ Preferences Dialog Sidebar Navigation                                      │
├────────────────────────────────────────────────────────────────────────────┤
│  [ General ]         Basic UI, file lists, confirmation prompts, theme     │
│  [ Hotkeys ]         Keyboard shortcuts, context scoping, conflict manager │
│  [ Language ]        30+ real-time GUI translations without restart        │
│  [ File Views ]      Sorting rules, column auto-fitting, datetime formats  │
│  [ Auto Refresh ]    File monitoring events, polling, background sleep     │
│  [ Operations ]      Collision defaults (overwrite/rename), permissions    │
│  [ Packer ]          Archive formats (ZIP, 7Z, TAR), external binaries     │
│  [ Directory Hotlist]Bookmarks management, target panels, drag-and-drop    │
│  [ Favorite Tabs ]   Dual-panel workspace sets, layout persistence         │
│  [ Editor ]          Internal code editor typography, external editor CLI  │
│  [ Viewer ]          Universal Lister fonts, image rendering, external CLI │
│  [ Toolbar ]         Main button bar layout, custom commands, icon picker  │
│  [ Middle Toolbar ]  Middle splitter button bar, quick actions             │
│  [ Log ]             Operation audit trails, file logging, rotation        │
│  [ Quick Search ]    In-panel letter search, matching algorithms           │
│  [ Semantic Filter ] Natural language command input, spotlight integration │
│  [ Tabs ]            Folder tab bar styling, close buttons, locking rules  │
└────────────────────────────────────────────────────────────────────────────┘

2.2 Каталог страниц комплексной конфигурации

Каждая страница в диалоговом окне «Настройки» относится к определенной функциональной области:

Страница Модуль реализации Основные элементы управления конфигурацией
Общие page_general.py Видимость скрытых файлов, значки файлов, диалоговые окна подтверждения удаления/перезаписи, интеграция с системной корзиной, размер буфера копирования/перемещения (4 КБ–10 МБ), выбор темы, глобальный размер шрифта, переключение свертывания в трей и глобальная горячая клавиша отображения/скрытия окна (Cmd+Opt+H).
Сочетания клавиш page_hotkeys.py Многоконтекстный поиск команд, привязка основного и дополнительного сочетания клавиш, автоматические предупреждения о столкновении ярлыков и сброс настроек к заводским настройкам.
Язык page_language.py Динамический выбор локализации, поддерживающий более 30 языков (английский, немецкий, французский, упрощенный китайский, японский, русский, испанский и т. д.) с мгновенным переводом пользовательского интерфейса в реальном времени.
Просмотры файлов page_fileview.py Чувствительная к регистру и естественная числовая сортировка, расположение сортировки папок (сначала папки, сначала файлы, смешанные), размещение новых/обновленных файлов, режимы автоматического подбора столбцов (фиксированный, средний, максимальный), ползунок коэффициента заполнения и настраиваемые форматы даты и времени.
Автообновление page_auto_refresh.py Мониторинг создания/удаления/переименования файловой системы, мониторинг изменения атрибутов файлов, резервный интервал опроса таймера, переключатель отключения при фоновом режиме и список фильтров исключения каталогов.
Операции page_operations.py Политики конфликтов файлов по умолчанию (Спросить, Перезаписать, Пропустить, Перезаписать старые, Автоматическое переименование объекта), политики конфликтов каталогов (Спросить, Объединение, Перезаписать, Пропустить), предварительное выделение свободного пространства, обработку символических ссылок, сохранение разрешений/меток времени и проверку.
Упаковщик page_packer.py Формат архива сжатия по умолчанию (zip, 7z, tar.gz, tar.bz2, tar.xz, tar), пути к внешним исполняемым файлам для 7-Zip, GNU Tar, Gzip, Утилиты Bzip2 и XZ.
Горячий список каталогов page_hotlist.py Интерактивный менеджер закладок: добавляйте, удаляйте и изменяйте порядок (Drag & Drop) избранных каталогов, указывайте целевые пути с двумя панелями и назначайте клавиши быстрого доступа.
Избранные вкладки page_favorite_tabs.py Менеджер снимков рабочей области: сохраняйте, переименовывайте, меняйте порядок и восстанавливайте макеты каталогов с несколькими вкладками и двумя панелями.
Редактор page_editor.py Семейство шрифтов внутреннего редактора кода, размер шрифта, ширина табуляции, перенос слов и переключение номеров строк; Путь к исполняемому файлу внешнего редактора и аргументы командной строки.
Просмотрщик page_viewer.py Типографика текста Universal Lister, позиции табуляции, поля, перенос строк, видимость курсора, параметры рендеринга изображений (автоповорот EXIF, режимы масштабирования, сетка прозрачности) и инструмент CLI внешнего средства просмотра.
Панель инструментов page_toolbar.py Настройка верхней панели кнопок: ползунок размера значков (16–64 пикселей), ползунок размера панели, стиль плоских кнопок, переключение подписей, дерево иерархии команд и настраиваемый диалог выбора значков.
Средняя панель инструментов page_toolbar.py Конфигурация панели инструментов с центральным вертикальным разделителем: размеры значков, кнопки действий и изменение порядка макета.
Журнал page_log.py Ведение журнала оперативного аудита: назначение файла журнала, замена пути токена, максимальный размер файла журнала, поведение ротации журналов и фильтры событий конкретных операций (копирование, перемещение, удаление, распаковка).
Быстрый поиск page_quicksearch.py Режим быстрого поиска с клавиатуры (точное совпадение, начало, конец, подстановочные знаки), чувствительность к регистру и тайм-аут автоматического закрытия.
Семантический фильтр page_semantic_filter.py Поведение встроенной панели команд на естественном языке (/), серверные части поставщика поиска и устранение отказов от предложений.
Вкладки page_tabs.py Внешний вид вкладок папок: видимость кнопки закрытия, многострочное расположение вкладок по сравнению с вкладками с прокруткой, поведение навигации по заблокированным вкладкам и подтверждения закрытия вкладок.

2.3 Темы в реальном времени и динамическое переключение языков

В отличие от устаревших утилит, которые требуют закрытия и перезапуска приложения после изменения настроек внешнего вида, ATBCmder поддерживает горячую замену тем и локализацию:

  1. Предварительный просмотр темы: откройте Общие, выберите Classic, Light, Dark или macOS Native (Stylish) и мгновенно наблюдайте за изменением стиля окна с помощью внедрения таблицы стилей Qt. Если вы нажмете Отмена, предыдущая тема будет автоматически восстановлена.
  2. Мгновенный перевод. Откройте Язык, выберите предпочтительный диалект из списка, в котором более 30 переведенных языков, и нажмите Применить. Заголовок окна, боковая панель категорий, меню, кнопки, строки состояния и диалоговые подсказки немедленно перерисовываются на целевой язык с помощью динамического конвейера перевода tr() ATBCmder.

Language Settings Рис. 7.1. Страница «Языковые настройки», обеспечивающая мгновенную локализацию без перезапуска на более чем 30 поддерживаемых языках.


3. Настройка сочетаний клавиш и управление конфликтами

Эффективность клавиатуры — основная философия управления файлами с двумя панелями. Редактор горячих клавиш ATBCmder (page_hotkeys.py) обеспечивает полный контроль над аккордами быстрого доступа, обеспечивая при этом строгую изоляцию контекста и предотвращение коллизий.

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                              HOTKEY CONFIGURATION PAGE                                 │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  Hotkey Context: [ FilePanel                                                 ▼ ]       │
│  Filter Commands: [ copy                                                     ] ⌧       │
├──────────────────────┬────────────────────────┬───────────────────┬────────────────────┤
│ Command ID           │ Description            │ Primary Shortcut  │ Secondary Shortcut │
├──────────────────────┼────────────────────────┼───────────────────┼────────────────────┤
│ cm_Copy              │ Copy Files or Folders  │ F5                │ Cmd+C              │
│ cm_CopySamePanel     │ Duplicate File in Pane │ Shift+F5          │ Cmd+D              │
│ cm_CopyRightPanel     │ Copy to Right Panel    │ Alt+F5            │                   │
│ cm_CopyFullNamesToClip│ Copy Full Path Names   │ Ctrl+Shift+C      │ Cmd+Opt+C         │
├──────────────────────┴────────────────────────┴───────────────────┴────────────────────┤
│  [ Edit Shortcut... ]           [ Clear Shortcuts ]            [ Reset to Defaults ]   │
└────────────────────────────────────────────────────────────────────────────────────────┘

3.1 Изоляция контекста и определение области действия

Чтобы избежать исчерпания сочетаний клавиш, ATBCmder разделяет комбинации клавиш на Области контекста. Ярлык, определенный в одном контексте, не мешает идентичным клавишам в несвязанных окнах:

  • Основное: глобальные ярлыки приложений, доступные во всех окнах (например, Cmd+, для настроек, Cmd+Q для выхода).
  • FilePanel: активен, когда левый или правый список файлов находится в фокусе клавиатуры (например, F5 копируется, Space вычисляет размер каталога, Backspace переходит к родительскому каталогу).
  • Просмотр: активен внутри Universal Lister (F3): управляет кодировкой текста, переключением шестнадцатеричного представления (2 / шестнадцатеричный режим), масштабированием изображения и воспроизведением мультимедиа.
  • Редактор: активен во встроенном текстовом редакторе (F4): управляет подсветкой синтаксиса, отступами, поиском/заменой (Cmd+F) и сохранением файлов (Cmd+S).
  • Differ: активен внутри параллельного файла Diff: навигация по фрагментам (F7/F8), строковая синхронизация и операции слияния.
  • FindFiles: активен в диалоговом окне поиска с несколькими фильтрами: запуск новых поисков, навигация по результатам и подача в список.
  • MultiRename: активно в инструменте пакетного множественного переименования: манипулирование счетчиками, вставка токенов и выполнение.

3.2 Архитектура двойной привязки (первичный и вторичный ярлыки)

ATBCmder позволяет назначать две отдельные комбинации клавиш для каждой команды:

  • Основной ярлык: ваш основной аккорд мышечной памяти (например, F5 для пользователей классической версии Commander).
  • Вторичный ярлык: альтернативный аккорд (например, Cmd+C для встроенной эргономики macOS).

Оба ярлыка остаются активными одновременно в указанном контексте. При навигации по меню ATBCmder автоматически отображает основной ярлык рядом с текстом пункта меню для наглядности.


3.3 Пошаговый рецепт: настройка сочетания клавиш

Следуйте этому практическому руководству, чтобы повторно привязать существующую команду или назначить дополнительный ярлык:

  1. Нажмите Cmd+, (⌘,), чтобы открыть настройки, и выберите Сочетания клавиш на левой боковой панели.
  2. Выберите соответствующий Контекст горячей клавиши из раскрывающегося списка (например, FilePanel).
  3. Введите имя команды или ключевое слово в поле Фильтровать команды (например, Wipe или Терминал). Таблица фильтрует соответствующие записи в режиме реального времени.
  4. Дважды щелкните строку команды или выберите строку и нажмите Редактировать....
  5. В диалоговом окне Редактировать горячую клавишу: – Щелкните внутри поля Основное сочетание клавиш и нажмите нужную комбинацию клавиш (например, Ctrl+Alt+T). ATBCmder аккуратно захватывает аккорд, ограничивая последовательность одним одновременным аккордом.

  6. (Необязательно) Щелкните внутри поля Дополнительный ярлык и нажмите альтернативную комбинацию (например, Cmd+Shift+T).

  7. Нажмите Сохранить.
┌────────────────────────────────────────────────────┐
│ Edit Hotkey Dialog                                 │
├────────────────────────────────────────────────────┤
│ Command:             cm_RunTerm - Run Terminal     │
│ Primary Shortcut:    [ Ctrl+J                    ] │
│ Secondary Shortcut:  [ Cmd+Opt+T                 ] │
│                                                    │
│                           [ Cancel ]    [ Save ]   │
└────────────────────────────────────────────────────┘

3.4 Автоматическое обнаружение столкновений и предупреждение о конфликтах

Если вы попытаетесь назначить ключевой аккорд, который уже востребован другой командой в том же контексте, немедленно вмешается механизм обнаружения столкновений ATBCmder. В диалоговом окне предупреждения отображается конфликтующее назначение:

[!ВНИМАНИЕ] Обнаружен конфликт ярлыков Ярлык Ctrl+M уже назначен cm_MultiRename в контексте FilePanel. Хотите перезаписать его и переназначить Ctrl+M на cm_MarkCurrentExtension?

  • Нажатие кнопки Да автоматически отменяет привязку Ctrl+M от старой команды и применяет ее к вновь выбранной команде.
  • Нажатие кнопки Нет отменяет редактирование, сохраняя существующие привязки без изменений.

3.5 Горячая клавиша глобального отображения/скрытия окна (Cmd+Opt+H / Ctrl+Alt+H)

Для опытных пользователей, которые предпочитают, чтобы ATBCmder работал незаметно в фоновом режиме:

  1. Откройте Настройки ➔ Общие.
  2. Установите флажок Свернуть в системный трей.
  3. Найдите Горячую клавишу «Показать/Скрыть окно» (по умолчанию: Ctrl+Alt+H / ⌘⌥H).
  4. Щелкните поле последовательности, чтобы зарегистрировать любой пользовательский аккорд глобальных горячих клавиш.
  5. Нажмите Применить.

Теперь вы можете мгновенно вызвать ATBCmder на передний план или отклонить его на задний план из любой точки macOS, даже при работе в других полноэкранных приложениях.


4. Просмотр файлов, режимы столбцов и управление миниатюрами

Страница Просмотры файлов (page_fileview.py) управляет отображением, измерением, сортировкой и представлением каталогов на двойных панелях.

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                              FILE VIEWS CONFIGURATION                                  │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  Sorting Rules:                                                                        │
│  [X] Case-sensitive sorting             [X] Natural (numeric) sorting                  │
│  [ ] Special sorting rules                                                             │
│  Folder sort mode:        [ Folders first                                    ▼ ]       │
│  New files position:      [ Sorted                                           ▼ ]       │
│  Updated files position:  [ Top                                              ▼ ]       │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  Column Widths & Auto-Fit Engine:                                                      │
│  Column auto-fit mode:    [ Average mode                                     ▼ ]       │
│  Average mode padding:    [ 1.20x ]  (Range: 1.00x - 5.00x)                            │
│  Hint: In Fixed mode, drag column dividers to save exact pixel widths per side.        │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  Date/Time Formatting:                                                                 │
│  Long datetime format:    [ %Y-%m-%d %H:%M:%S                                ]         │
│  Sync dirs format:        [ %Y.%m.%d %H:%M:%S                                ]         │
└────────────────────────────────────────────────────────────────────────────────────────┘

4.1 Механизм автоматической подгонки колонок: три режима

Файловые менеджеры с двумя панелями часто сталкиваются с проблемами разной длины имен файлов: слишком широкие столбцы вызывают горизонтальную прокрутку, а слишком узкие столбцы обрезают важные расширения файлов. ATBCmder решает эту проблему с помощью трех различных вариантов автоподбора:

  1. Фиксированный режим (fixed):
  2. Отключает автоматический перерасчет.
  3. Ширина столбцов остается именно там, где вы их расположили.
  4. Перетаскивание вручную: когда вы перетаскиваете вертикальную границу между заголовками столбцов (например, между Name и Ext), ATBCmder фиксирует точную ширину в пикселях и сохраняет ее отдельно для каждой стороны панели (column_widths_left и column_widths_right в atbcmder.xml).
  5. Средний режим (average — рекомендуемый по умолчанию):
  6. Оценивает среднюю типографскую ширину (QFontMetrics) всех имен файлов, видимых в каталоге.
  7. Умножает среднюю ширину на настроенный вами коэффициент заполнения (ползунок регулируется от 1.0x до 5.0x, по умолчанию 1.0x–1.25x), добавляя 40 пикселей для значков типов файлов и визуальной передышки.
  8. Предотвращает вытеснение всех остальных столбцов за пределы экрана при именах файлов с крайними выбросами (например, одно имя файла журнала длиной 120 символов).
  9. Режим максимальной ширины (max): – Сканирует записи каталога и расширяет столбец, чтобы он соответствовал самому широкому имени файла плюс безопасное дополнение (+50 пикселей).

  10. Гарантирует, что нулевые имена файлов будут обрезаны многоточием (...), что идеально подходит для медиа-архивов и наборов научных данных.

Tip

Большая оптимизация каталогов: В каталогах, содержащих десятки тысяч элементов, измерение каждой отдельной строки приведет к зависанию интерфейса. ATBCmder автоматически применяет интеллектуальную пошаговую выборку (_MAX_SAMPLE = 200), оценивая равномерно распределенное подмножество строк для расчета показателей типографики менее чем за 2 миллисекунды, игнорируя при этом маркеры родительского каталога (..).


4.2 Параметры сортировки файлов

Точная настройка порядка элементов внутри представлений таблицы:

  • Естественная (числовая) сортировка: если эта функция включена, числа в строках сравниваются математически: file1.txt, file2.txt, file10.txt (вместо алфавитных file1.txt, file10.txt, file2.txt).
  • Сортировка с учетом регистра: если этот флажок установлен, символы верхнего регистра предшествуют символам нижнего регистра в соответствии с порядковыми значениями ASCII/Unicode (File.txt сортируется перед apple.txt). Если флажок снят, сортировка не учитывает регистр.
  • Режим сортировки папок:
  • Folders first: каталоги сгруппированы в верхней части панели над всеми файлами.
  • Files first: файлы отображаются первыми, а каталоги располагаются внизу.
  • Mixed: файлы и папки сортируются по алфавиту в единой последовательности.
  • Положение новых и обновленных файлов: укажите, где будут появляться вновь созданные или недавно измененные файлы во время текущих обновлений файловой системы (Sorted, Top или Bottom).

4.3 Представление сетки миниатюр и механика кэширования

Для фотографов, дизайнеров и видеоредакторов ATBCmder предоставляет встроенный режим Сетка миниатюр (cm_ThumbnailsView), заменяющий ряды таблиц визуальным предварительным просмотром изображений.

Thumbnail Grid View Рисунок 7.2: Высокопроизводительный просмотр миниатюр, отображающий предварительный просмотр изображений с настраиваемым интервалом сетки.

Размер и динамическое масштабирование

  • Размер миниатюр по умолчанию: настраивается от 48 до 512 пикселей (по умолчанию: 128 пикселей).
  • Интерактивное масштабирование: на трекпадах Apple используйте стандартные жесты сведением двумя пальцами или удерживайте Ctrl при прокрутке колеса мыши для динамического масштабирования миниатюр в реальном времени.

Многоуровневая архитектура кэширования

Создание миниатюр для 48-мегапиксельных фотографий RAW с высоким разрешением или сложных векторных изображений SVG требует большого количества ресурсов ЦП. ATBCmder использует надежную двухуровневую архитектуру кэширования:

  1. Кэш LRU в памяти: сохраняет 500 распакованных объектов QPixmap в оперативной памяти для мгновенной и плавной прокрутки со скоростью 60 кадров в секунду.
  2. Постоянный дисковый кэш: хранится локально в каталоге пользовательского кэша:
  3. Путь macOS/Linux: ~/.cache/atbcmder/thumbnails/
  4. Ключи кэша генерируются с помощью криптографических хешей SHA-256, объединяющих путь к файлу, временную метку изменения файла (mtime), запрошенный размер пикселя и версию схемы кэша: $\(\text{Ключ кэша} = \text{SHA256}(\text{filepath} + \text{mtime} + \text{size} + \text{version})\)$

  5. Если файл изображения редактируется или обновляется на диске, его временная метка меняется, что немедленно делает устаревшие записи кэша недействительными и запускает автоматический фоновый повторный рендеринг.

  6. Фоновые рабочие потоки. Обработка изображений переносится в выделенный рабочий пул QThread с использованием конвейеров Pillow (PIL) или аппаратного ускорения QImage, гарантируя, что двухпанельный интерфейс никогда не заикается во время тяжелого пакетного импорта.

4.4 Пользовательское форматирование даты и времени

ATBCmder позволяет вам определять собственные строки форматирования меток времени, используя стандартный синтаксис Python ATB_INL_0000:

  • Длинный формат даты и времени (по умолчанию: %Y-%m-%d %H:%M:%S): управляет отображением даты в виде полного столбца (2026-09-06 14:30:00).
  • Формат каталогов синхронизации (по умолчанию: %Y.%m.%d %H:%M:%S): управляет представлением метки времени в диалоговом окне Directory Synchronizer.
Токен Описание Пример вывода
%Y 4-значный год 2026
%m Двухзначный месяц (01–12) 09
%d Двузначный день месяца (01–31) 06
%H 2-значный час в 24-часовом формате (00–23) 14
%I 2-значный час в 12-часовом формате (01–12) 02
%p Обозначение AM/PM PM
%M 2-значные минуты (00–59) 30
%S 2-значная секунда (00–59) 15

5. Автоматическое обновление файловой системы и мониторинг чувствительности

При совместной работе над общими базами кода, загрузке ресурсов браузера или выполнении задач фоновой компиляции содержимое каталога постоянно меняется. Страница Автообновление (page_auto_refresh.py) обеспечивает баланс точности пользовательского интерфейса в реальном времени с потреблением ресурсов ЦП и батареи.

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                              AUTO-REFRESH CONFIGURATION                                │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  [X] Refresh file list:                                                                │
│      [X] When files are created, deleted or renamed                                    │
│      [X] When size, date or attributes change                                          │
│      Polling interval (seconds): [ 5 ]                                                 │
├────────────────────────────────────────────────────────────────────────────────────────┤
│  Disable auto-refresh:                                                                 │
│      [X] When application is in the background                                         │
│      [X] For the following paths and their subdirectories:                             │
│          ┌──────────────────────────────────────────────────────────────────────────┐  │
│          │ /Volumes/NetworkShare/LargeMediaArchive                                  │  │
│          │ /Users/username/Developer/linux-kernel/                                  │  │
│          │ /Users/username/work/heavy_project/node_modules/                         │  │
│          └──────────────────────────────────────────────────────────────────────────┘  │
└────────────────────────────────────────────────────────────────────────────────────────┘

5.1 Триггеры событий и резервный вариант опроса

ATBCmder сочетает в себе встроенный мониторинг событий операционной системы с интеллектуальным резервным опросом:

  • Мониторинг событий (watch_file_name_change): использует встроенные уведомления ядра ОС (macOS FSEvents / kqueue) для обнаружения создания, удаления и переименования файлов с нулевой нагрузкой на процессор.
  • Мониторинг атрибутов (watch_attributes_change): отслеживает увеличение размера файла, обновление меток времени и настройку режима разрешений.
  • Интервал возврата опроса (attr_poll_interval): настраивается от 1 до 60 секунд (по умолчанию: 5 секунд). Почему необходим опрос? Удаленные сетевые хранилища (SMB, CIFS, NFS, SFTP VFS) часто не выдают собственные события файловой системы ОС, когда удаленные клиенты вносят изменения. Таймер фонового опроса гарантирует, что списки удаленных панелей никогда не устареют.

5.2 Экономия заряда батареи и процессора: отключить в фоновом режиме

На ноутбуках MacOS, работающих от аккумулятора, активные средства наблюдения за файловой системой могут потреблять ненужную энергию.

  • Проверка Когда приложение находится в фоновом режиме (watch_only_foreground) автоматически приостанавливает все активные таймеры опроса и наблюдатели событий в тот момент, когда ATBCmder теряет фокус окна.
  • Когда вы снова переключаетесь на ATBCmder, панели немедленно выполняют одно скоординированное обновление, мгновенно обновляя все списки каталогов.

5.3 Фильтры исключения путей

Каталоги с высокой обработкой — такие как node_modules, репозитории метаданных Git (.git), кэши артефактов компиляции (target/, build/) и файлы локальных баз данных — генерируют тысячи событий на диске в минуту.

  1. Установите флажок Для следующих путей и их подкаталогов (watch_exclude_dirs).
  2. Введите один абсолютный путь к каталогу в каждой строке в текстовой области исключения:

    /Users/username/Developer/project/node_modules
    /Users/username/Developer/linux/.git
    /Volumes/ProductionNAS/RenderingQueue
    

  3. Нажмите Применить. ATBCmder игнорирует события файловой системы, происходящие внутри этих деревьев путей, устраняя нежелательные обновления пользовательского интерфейса и пиковые нагрузки на процессор.


6. Пользовательские ассоциации файлов и интеграция внешних инструментов

Двойной щелчок по файлу или нажатие Enter обычно открывает его с помощью системного приложения по умолчанию. Система ассоциаций файлов ATBCmder (cm_FileAssoc / file_associations.py) позволяет определять пользовательские действия для конкретных шаблонов файлов, сопоставляя их внутренним командам или внешним терминалам/приложениям с графическим интерфейсом.

6.1 Специфика архитектуры и шаблона

Ассоциации файлов оцениваются в порядке специфичности шаблона: сначала сопоставляется самый длинный и наиболее конкретный шаблон:

\[\text{Порядок специфичности: } \texttt{*.min.js} \longrightarrow \texttt{*.js} \longrightarrow \texttt{text/*} \longrightarrow \texttt{*}\]

Каждая ассоциация может содержать несколько действий (например, «Открыть в VS Code», «Просмотр шестнадцатеричного кода», «Запустить в Python»), одно из которых обозначено как основное действие по умолчанию, инициируемое Enter.


6.2 Замены макросов токенов для внешних команд

При запуске внешних инструментов или сценариев командной строки ATBCmder автоматически заменяет макросы токенов метаданными активного файла:

Макро-токен Значение Пример значения
%f Полный абсолютный путь к выбранному файлу /Users/username/Documents/report.pdf
%d Путь к каталогу, содержащему файл /Users/username/Documents
%n Базовое имя файла без расширения report
%e Расширение файла без начальной точки pdf

6.3 Практические рецепты ассоциаций

Рецепт 1. Откройте скрипты Python в коде Visual Studio

  • Шаблон: *.py
  • Метка: Edit in VS Code
  • Команда: code %f
  • Тип действия: команда внешней оболочки.

Рецепт 2. Запустите скрипт Python в терминале

  • Шаблон: *.py
  • Метка: Execute Script
  • Команда: python3 %f
  • Тип действия: команда внешней оболочки.

Рецепт 3. Просмотр Markdown в специальном средстве предварительного просмотра

  • Шаблон: *.md
  • Метка: Preview in Typora
  • Команда: open -a Typora %f
  • Тип действия: команда внешней оболочки.

Рецепт 4. Сравните файл с противоположной панелью в Beyond Compare

  • Шаблон: *
  • Метка: Compare with Target
  • Команда: bcomp %f %d
  • Тип действия: команда внешней оболочки.

7. Настройка панели инструментов и средней панели инструментов

ATBCmder предоставляет две настраиваемые панели инструментов: Основную панель инструментов, расположенную под строкой меню, и Среднюю панель инструментов, встроенную вертикально в разделитель, разделяющий две файловые панели.

Middle Toolbar Рис. 7.3. Страница параметров средней панели инструментов, на которой можно настроить кнопки-разделители и триггеры быстрых действий.

7.1 Настройка внешнего вида панели инструментов

Откройте Настройки ➔ Панель инструментов или Настройки ➔ Средняя панель инструментов:

  • Ползунок размера панели: регулирует высоту/ширину панели инструментов от 16 до 64 пикселей.
  • Ползунок размера значка: масштабирует значки кнопок с 16 до 64 пикселей (по умолчанию: 24 пикселя).
  • Плоские кнопки: переключает современные плоские кнопки без полей на классические выпуклые кнопки.
  • Показать подписи: текстовые метки отображаются под значками на панели инструментов или рядом с ними.

7.2 Добавление элементов и встроенный инструмент выбора значков

Элементы панели инструментов организованы в виде иерархического дерева, поддерживающего три типа элементов:

  1. Разделитель: вставляет визуальную разделительную линию или разделитель между группами кнопок.
  2. Внутренняя команда: выберите любую из более чем 230 команд ATB_INL_0000 ATBCmder, используя поле команды автозаполнения.
  3. Внешняя команда: укажите внешнюю команду оболочки, рабочий каталог и токены параметров (%f, %d).

Встроенный инструмент выбора значков (IconPickerDialog)

При настройке пользовательских кнопок нажмите кнопку предварительного просмотра значка, чтобы открыть встроенный Панель значков:

  • Имеет мгновенный фильтр поиска по сотням связанных значков SVG и PNG.
  • Отображает значки в единой сетке с предварительным просмотром в высоком разрешении и названиями элементов активов.
┌────────────────────────────────────────────────────────────────────────┐
│ Icon Picker Dialog                                                     │
├────────────────────────────────────────────────────────────────────────┤
│ Search: [ terminal                                                   ] │
├──────────────────────────────────────────────────────┬─────────────────┤
│  ┌────┐   ┌────┐   ┌────┐   ┌────┐   ┌────┐   ┌────┐ │ PREVIEW:        │
│  │ 💻 │   │ 🖥️ │   │ ⌨️ │   │ ⚙️ │   │ 📁 │   │ 🔍 │ │                  │
│  └────┘   └────┘   └────┘   └────┘   └────┘   └────┘ │      💻         │
│  cm_RunTerm  console  terminal  bash   sh      zsh   │                 │
│  ┌────┐   ┌────┐   ┌────┐   ┌────┐   ┌────┐   ┌────┐ │ Name: cm_RunTerm│
│  │ 📄 │   │ ✏️ │   │ ✂️ │   │ 📋 │   │ 🗑️ │   │ 🔒 │ │ Size: 48x48     │
│  └────┘   └────┘   └────┘   └────┘   └────┘   └────┘ │ Format: SVG/PNG │
├──────────────────────────────────────────────────────┴─────────────────┤
│                                                [ Cancel ]  [ Select ]  │
└────────────────────────────────────────────────────────────────────────┘

7.3 Настройка списка избранных каталогов и избранных вкладок

  • Горячий список каталогов (page_hotlist.py): управляйте закладками Ctrl+D. Добавляйте текущие пути, меняйте порядок закладок с помощью перетаскивания, настраивайте синхронизацию целевой панели и назначайте клавиши доступа.
  • Избранные вкладки (page_favorite_tabs.py): сохраняйте полные макеты рабочего пространства с двумя панелями и несколькими вкладками. Восстановите свои точные наборы каталогов для разработки или редактирования фотографий одним щелчком мыши.

Directory Hotlist Рисунок 7.4: Управление закладками и путями горячего списка каталогов.


8. Переносимость конфигурации и режим изолированного тестирования

Независимо от того, переходите ли вы на новый Mac, выделяете парк машин для разработки или делитесь с коллегами настраиваемыми сочетаниями клавиш, ATBCmder упрощает резервное копирование и развертывание конфигурации.

8.1 Архитектура хранения конфигурации

ATBCmder хранит все пользовательские настройки в четко структурированных, удобочитаемых XML-файлах, расположенных в стандартном каталоге конфигурации операционной системы:

  • Стандартный путь macOS: ~/Library/Настройки/atbcmder/

  • Путь к песочнице приложения macOS: ~/Library/Containers/com.aitobox.atbcmder/Data/Library/Настройки/atbcmder/

  • Путь Linux/UNIX: ~/.config/atbcmder/

  • Команда прямого доступа: Выполните cm_OpenConfigDirectory (или выберите Конфигурация ➔ Открыть каталог конфигурации в меню), чтобы мгновенно перейти из активной панели непосредственно в эту папку.

~/Library/Preferences/atbcmder/
├── atbcmder.xml          # Core application configuration, geometry, themes, view rules
├── atbcmder_hotkeys.xml  # User keyboard shortcut overrides and custom bindings
├── favtabs.xml           # Saved favorite folder tab layouts and paths
├── hotlist.xml           # Directory Hotlist (Ctrl+D) bookmarks hierarchy
└── history.xml           # Recent directory jumps, command line history, search history

8.2 Экспорт пакетов конфигурации (cm_ExportConfiguration)

Чтобы создать универсальную портативную резервную копию вашей среды ATBCmder:

  1. Выберите Конфигурация ➔ Экспортировать конфигурацию... в строке меню (или выполните cm_ExportConfiguration).
  2. Выберите каталог назначения и выберите имя файла (по умолчанию: atbcmder-config.zip).
  3. Нажмите Сохранить.

ATBCmder сбрасывает все ожидающие изменения памяти на диск, собирает все XML-файлы конфигурации (atbcmder.xml, atbcmder_hotkeys.xml, favtabs.xml, hotlist.xml) и упаковывает их в атомарный сжатый ZIP-архив.


8.3 Импорт пакетов конфигурации (cm_ImportConfiguration)

Чтобы восстановить резервную копию конфигурации на новом компьютере или вернуться к заведомо исправному состоянию:

  1. Выберите Конфигурация ➔ Импортировать конфигурацию... в строке меню (или выполните cm_ImportConfiguration).
  2. Выберите ранее экспортированный архив atbcmder-config.zip.
  3. Подтвердите предупреждение:

    При импорте все текущие настройки будут заменены содержимым выбранного файла. Продолжать?

  4. Нажмите Да.

ATBCmder безопасно распаковывает архив, проверяет, что все извлеченные файлы имеют допустимую конфигурацию XML, заменяет файлы активного диска, перезагружает внутренний синглтон Config() и немедленно обновляет как файловые панели, так и макеты столбцов — и все это без необходимости перезапуска приложения.

Important

Корпоративная безопасность: защита от обхода ATBCmder обеспечивает строгую проверку прохождения пути во время импорта конфигурации (очистка zipfile). Любой элемент архива, содержащий разделители путей (/, \), обходы каталогов (..) или расширения файлов, отличные от XML, немедленно отклоняется, защищая вашу операционную систему от злонамеренного вмешательства в архив.


8.4 Изолированный тестовый режим (ATBCmder_test.sh)

При разработке пользовательских плагинов, экспериментировании с агрессивными переназначениями горячих клавиш или тестировании бета-конфигураций вам следует избегать изменения повседневной конфигурации драйверов.

ATBCmder поддерживает полное перенаправление конфигурации через переменную среды ATBCMDER_CONFIG_PATH. В репозиторий проекта включен специальный сценарий тестирования:

# Launch ATBCmder in completely isolated test mode:
./scripts/ATBCmder_test.sh

Как работает режим изолированного тестирования:

  1. Предоставляет чистый временный тестовый каталог по адресу tests/.test_config/.
  2. Копирует заводские базовые настройки из src/atbcmder/resources/test_config.xml в tests/.test_config/atbcmder.xml.
  3. Устанавливает export ATBCMDER_CONFIG_PATH="$(pwd)/tests/.test_config".
  4. Создает ATBCmder в Python. Любые настройки, измененные или удаленные во время сеанса, влияют только на временный тестовый каталог, оставляя ваши личные файлы ~/Library/Настройки/atbcmder/ на 100% нетронутыми.

9. ⚡ Советы профессионалов и подробное описание: расширенная настройка

Совет для профессионалов 1. Автоматическое создание точечных файлов с помощью Chezmoi/Ansible

Поскольку ATBCmder сериализует все состояние в стандартные XML-файлы UTF-8, вы можете проверить свою конфигурацию в репозитории точечных файлов Git и управлять ею с помощью таких инструментов, как Chezmoi, GNU Stow или Ansible:

# Example: Adding ATBCmder configuration to Chezmoi dotfiles manager
chezmoi add ~/Library/Preferences/atbcmder/atbcmder.xml
chezmoi add ~/Library/Preferences/atbcmder/atbcmder_hotkeys.xml

Совет для профессионалов 2. Настройка высокопроизводительного наблюдателя за сетями

При работе на корпоративных файловых серверах SMB/NFS, содержащих миллионы файлов, активный рекурсивный мониторинг событий может вызвать перегрузку сети.

  1. Откройте Настройки ➔ Автообновление.
  2. Снимите флажок При изменении размера, даты или атрибутов.
  3. Установите для Интервала опроса значение ATB_INL_0000 или 30 секунд.
  4. Добавьте корень сетевого подключения (/Volumes/EnterpriseShare) в Список исключений путей.
  5. Используйте обновление панели вручную (Ctrl+R / ⌘R), если требуется немедленная синхронизация.

Совет для профессионалов 3: переменные среды внешней команды

При настройке пользовательских кнопок внешней панели инструментов или ассоциаций файлов ATBCmder автоматически наследует среду вашей пользовательской оболочки (PATH, HOME, USER). Вы можете вызывать утилиты командной строки, установленные через Homebrew (/opt/homebrew/bin/), напрямую, не указывая полные абсолютные пути к исполняемым файлам.

Совет для профессионалов 4: Настройка всплывающих подсказок к файлам

ATBCmder включает в себя обширные плавающие всплывающие подсказки с метаданными, которые отображают размеры файлов, данные EXIF, битрейт аудио и количество членов архива при наведении курсора на элементы. Вы можете включить или отключить всплывающие подсказки в Настройки ➔ Просмотр файлов.

Helpful Tooltips Рисунок 7.5: Подсказки с богатыми метаданными, отображающие подробные свойства файла при наведении курсора мыши.


10. Безопасность и системные оповещения

[!ВНИМАНИЕ] Проверка перезаписи ярлыков Перезапись основного ярлыка в контексте Main или FilePanel немедленно отменяет его привязку к исходной команде. Если вы случайно отменили привязку важных команд, таких как F5 (Копировать) или Enter (Открыть), используйте кнопку Восстановить настройки по умолчанию в редакторе горячих клавиш, чтобы восстановить заводские сочетания клавиш.

[!ВНИМАНИЕ] Импорт конфигурации заменяет все настройки Восстановление пакета конфигурации через cm_ImportConfiguration полностью перезаписывает текущие файлы atbcmder.xml, favtabs.xml и hotlist.xml. Всегда экспортируйте резервную копию существующей конфигурации перед импортом внешнего архива.

Important

Песочница приложений macOS и полный доступ к диску Если ATBCmder работает в песочнице приложения macOS, он не может читать файлы конфигурации или каталоги вне своего контейнера без явного разрешения пользователя. Если вы столкнулись с ошибками разрешений при доступе к внешним дискам, запустите cm_GrantFilesystemAccess, чтобы завершить процесс регистрации полного доступа к диску macOS.


11. Справочник по командам настройки и настроек основной двойной матрицы

Категория Описание действия Сочетание клавиш macOS Классическая клавиша Commander Идентификатор команды
Предпочтения Открыть диалоговое окно основных настроек Cmd+, / ⌘, Alt+O / ⌥O cm_Options
Предпочтения Сохранить настройки в XML прямо сейчас Меню: Конфигурация — cm_ConfigSaveSettings
Предпочтения Сохранить положение и размер окна Меню: Конфигурация — cm_ConfigSavePos
Предпочтения Переключить всплывающие подсказки для файлов Настройки ➔ Просмотр файлов — (Настройки)
Предпочтения Предоставление разрешений на весь диск Меню: Конфигурация — cm_GrantFilesystemAccess
Сочетания клавиш Открыть страницу редактора горячих клавиш Cmd+, ➔ Сочетания клавиш — cm_Options
Сочетания клавиш Глобальная горячая клавиша «Показать/Скрыть окно» Ctrl+Alt+H / ⌘⌥H Ctrl+Alt+H (Глобальная системная горячая клавиша)
Ассоциации Открыть диспетчер ассоциаций файлов Меню: Конфигурация — cm_FileAssoc
Закладки Менеджер горячих списков каталогов Ctrl+Shift+D / ⌃⇧D Ctrl+Shift+D cm_ConfigDirHotList
Закладки Добавить текущий каталог в список избранных Меню: Закладки — cm_AddDirToHotlist
Вкладки папок Менеджер вкладок избранных папок Меню: Конфигурация — cm_ConfigFavoriteTabs
Вкладки папок Сохранить текущие вкладки как набор избранных Меню: Вкладки — cm_SaveFavoriteTabs
Архиваторы Настройка двоичных файлов архиватора Меню: Конфигурация — cm_ConfigArchivers
Мобильность Экспортировать конфигурацию в ZIP Меню: Конфигурация — cm_ExportConfiguration
Мобильность Импорт конфигурации из ZIP Меню: Конфигурация — cm_ImportConfiguration
Мобильность Открыть папку конфигурации Меню: Конфигурация — cm_OpenConfigDirectory
Режимы просмотра Переключить вид сетки миниатюр Ctrl+Shift+F1 / ⌃⇧F1 Ctrl+Shift+F1 cm_ThumbnailsView
Режимы просмотра Обновить список активных панелей Ctrl+R / ⌃R Ctrl+R cm_Refresh

Готовы освоить все горячие клавиши и матрицы команд во всем приложении?

Перейти к Главе 9: Справочник горячих клавиш →