История изменений
Исправление
geekless,
(текущая версия)
:
Тогда предлагаю фичу в таком виде:
1. Какие настройки использовать per-directory.
- Формат списка панели.
- Порядок сортировки.
- Показ скрытых файлов.
- Показ backup-файлов.
2. Как будут определяться действующие параметры отображения.
Для панели параметры настроек, перечисленных выше, хранятся в двух экземплярах:
- Effective. Действующее значение настройки, определяющее вид панели.
- Hidden. Скрытое значение.
Когда пользователь изменяет значение настроек через интерфейс программы, в Effective и Hidden записывается одинаковое значение.
Когда пользователь заходит в каталог, происходит следующее:
- Определяется, задано ли для данного каталога переопределение настройки. Если задано, значение Effective устанавливается равным этому переопределенному значению.
- Если переопределение не задано, происходит присваивание Effective = Hidden.
3. Как и где хранить настройки per-directory.
Заманчивой на первый взгляд выглядит идея хранить их в скрытом файле непосредственно в целевом каталоге, но этот способ имеет недостатки:
- При доступе по сети скачивание файла при каждом заходе в каталог может быть нежелательно. Придётся отключать эту фичу для удаленных ФС, что нарушает консистентность поведения ФМ.
- Невозможно сделать настойку одновременно per-user, per-directory и per-profile.
- Невозможно простым способом реализовать наследование per-directory настроки в подкаталоги.
Поэтому я предлагаю хранить все такие настройки в файле ${XDG_CONFIG_HOME}/mc/per-directory. Файл состоит из строк вида «маска настройка=значение». Например:
/home/vadim show_dot_files=false
/home/vadim/Downloads/** sort_order=mtime
Что думаете? Стоит писать патч?
Исходная версия
geekless,
:
Тогда предлагаю фичу в таком виде:
1. Какие настройки использовать per-directory.
- Формат списка панели.
- Порядок сортировки.
- Показ скрытых файлов.
- Показ backup-файлов.
2. Как будут определяться действующие параметры отображения.
Для панели параметры настроек, перечисленных выше, хранятся в двух экземплярах:
- Effective. Действующее значение настройки, определяющее вид панели.
- Hidden. Скрытое значение.
Когда пользователь изменяет значение настроек через интерфейс программы, в Effective и Hidden записывается одинаковое значение.
Когда пользователь заходит в каталог, происходит следующее:
- Определяется, задано ли для данного каталога переопределение настройки. Если задано, значение Effective устанавливается равным этому переопределенному значению.
- Если переопределение не задано, происходит присваивание Effective = Hidden.
3. Как и где хранить настройки per-directory.
Заманчивой на первый взгляд выглядит идея хранить их в скрытом файле непосредственно в целевом каталоге, но этот способ имеет недостатки:
- При доступе по сети скачивание файла при каждом заходе в каталог может быть нежелательно. Придётся отключать эту фичу для удаленных ФС, что нарушает консистентность поведения ФМ.
- Невозможно сделать настойку одновременно per-user, per-directory и per-profile.
- Невозможно простым спосбом реализовать наследование per-directory настроке в подкаталоги.
Поэтому я предлагаю хранить все такие настройки в файле ${XDG_CONFIG_HOME}/mc/per-directory. Файл состоит из строк вида «маска настройка=значение». Например:
/home/vadim show_dot_files=false
/home/vadim/Downloads/** sort_order=mtime
Что думаете? Стоит писать патч?