LINUX.ORG.RU

Перенос польовательских конфигов в XDG_*


0

1

не секрет, что с переносом файлов произошёл конфуз (виноват персонально я).

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

Параллельно ссылка на тикет: https://www.midnight-commander.org/ticket/2636

Зачем был осуществлён перенос конфигов: Для очистки $HOME от подкаталогов и для возможности указания других конфигов для запуска второго mc (например, для отладки или для рутового sudo).

Получилось, судя по отзывам и словленным помидорам, не совсем хорошо: ожидался перенос просто из ~/.mc в ~/.config/mc, но я раскидал файлы в ~/.cache/mc и в ~/.local/share/mc

В тикете #2636 развязалась дискуссия, что в куда надо переместить, что считать конфигами, а что считать кешем... Предлагаю обсудить это тут.

★★★★★
Ответ на: комментарий от geekless

Ну да, вроде раньше в /tmp/mc-%USERNAME писались скрипты для выполнения по F2->@

adriano32 ★★★
()

Согласен с предложенной схемой.

uju ★★
()
Ответ на: комментарий от boombick

> ЕМНИП, архивы он именно в кеш распаковывает

Кеш — это то, что может использоваться программой после перезапуска. А распакованный архив — просто куча временных файлов, которые должны лежать в /tmp/somedir/

geekless ★★
()

самое главное - не поддавайтесь на требования вернуть все в зад. эта свалка в ~/ реально задолбала. еще бы подговорить на перенос разработчиков KDE и Gnome, а остальные сами подтянутся.

Turbid ★★★★★
()
Ответ на: комментарий от Cancellor

> Всякие history

позиции редактора


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

деревья


Насчёт этого не понял.

geekless ★★
()
Ответ на: комментарий от adepto

> В ~/etc/mc , но думаю, моя точка зрения не будет популярна :)

XDF_CONFIG_HOME= ~/etc mc

тут вопрос стоит не в куда, а как именно удовлетворить по возможности большее число людей.

скажем так, опция для configure '--enable-xdg-configs[=yes]' была бы полезной? по умолчанию переносим в XDG_*; или конфигурим как '--disable-xdg-configs' и имеем старое ~/.mc

Slavaz ★★★★★
() автор топика

Я вижу три типа файлов: конфиги, динамические данные и кеш. Конфиги относительно статичны. Динамические данные, это которые запоминают позиции редакторов, хистори и пр. Кеш, это сами знаете что. Кстати, глючит часто, зараза, но тут это оффтопик.

Casus ★★★★★
()
Ответ на: комментарий от Casus

> Динамические данные, это которые запоминают позиции редакторов, хистори и пр.

Да. Но в спецификации XDG под них, кажется, ничего не предусмотрено. Никакого аналога /var.

geekless ★★
()
Ответ на: комментарий от Slavaz

XDF_CONFIG_HOME= ~/etc mc

А я вообще не понимаю что это такое. Т.е. мне либо пофиг, пусть будет как раньше, либо понимать, что считается конфигами, отделить их от котлет (динамических данных) и дать возможность указывать каким-то образом где делать кеш, не всегда есть место в /tmp

Casus ★★★★★
()
Ответ на: комментарий от geekless

> Насчёт этого не понял.

~/.mc/Tree - дерево каталогов. Зачем оно нужно - не знаю, но оно есть.

Cancellor ★★★★☆
()
Ответ на: комментарий от Shtsh

> А почему решили считать файл mc.ext кешем?
он в xdg_data, то бишь, в ~/local/share/mc.
Но да, это больше конфиг, чем данные . доступные для изменения сторонними утилитами...

В общем, именно с этим и надо определиться, что есть данные (сопровождающие скрипты), что есть конфиги, а что есть кеш.

Slavaz ★★★★★
() автор топика

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

{ «ini», &xdg_config, MC_CONFIG_FILE},
главный конфиг программы.

{ «filehighlight.ini», &xdg_config, MC_FHL_INI_FILE},
конфиг, описывающий группы файлов для подсветки

{ «hotlist», &xdg_config, MC_HOTLIST_FILE},
каталоги быстрого доступа (по ctrl+\)

{ «mc.keymap», &xdg_config, GLOBAL_KEYMAP_FILE},
привязки клавиш

{ «skins», &xdg_data, MC_SKINS_SUBDIR},
каталог. в котором валяются пользовательские скины

{ «fish», &xdg_data, FISH_PREFIX},
каталог, в котором валяются скрипты, засылаемые на удалённую машину при FISH-соединении

{ «bindings», &xdg_data, MC_FILEBIND_FILE},
привязки расширений/типов файлов к определённым действиям

{ «menu», &xdg_data, MC_USERMENU_FILE},
пользовательское меню

{ «bashrc», &xdg_data, «bashrc»},
{ «inputrc», &xdg_data, «inputrc»},
файлы, используемые только для сабшелла.

{ «extfs.d», &xdg_data, MC_EXTFS_DIR},
пользовательские скрипты для расширения возможностей extfs

{ «cedit» PATH_SEP_STR «Syntax», &xdg_data, EDIT_SYNTAX_FILE},
пользовательский файл подсветки синтаксиса в редакторе

{ «cedit» PATH_SEP_STR «menu», &xdg_data, EDIT_HOME_MENU},
пользовательское меню в редакторе

{ «cedit» PATH_SEP_STR «edit.indent.rc», &xdg_data, EDIT_DIR PATH_SEP_STR «edit.indent.rc»},
{ «cedit» PATH_SEP_STR «edit.spell.rc», &xdg_data, EDIT_DIR PATH_SEP_STR «edit.spell.rc»},
пользовательские внешние скрипты для расширения возможностей редактора

{ «history», &xdg_cache, MC_HISTORY_FILE},
истории полей ввода в диалогах

{ «panels.ini», &xdg_cache, MC_PANELS_FILE},
текущее состояние панелей.

{ «log», &xdg_cache, «mc.log»},
лог-файл (обычно не используется и нужен только разработчикам)

{ «filepos», &xdg_cache, MC_FILEPOS_FILE},
текущие позиции в ранее редактируемых файлах

{ «Tree», &xdg_cache, MC_TREESTORE_FILE},
сохранённое состояние дерева каталогов (при типе просмотра в панели как дерева каталогов)

{ «cedit» PATH_SEP_STR «cooledit.clip», &xdg_cache, EDIT_CLIP_FILE},
файл - «буфер обмена» для редактора mcedit

{ «cedit» PATH_SEP_STR «cooledit.temp», &xdg_cache, EDIT_TEMP_FILE},
временный файл для редактора (для внутренних нужд)

{ «cedit» PATH_SEP_STR «cooledit.block», &xdg_cache, EDIT_BLOCK_FILE},
файл для сохранения выдекленного текста в редакторе и передачи управления внешним утилитам. После отработки внешней утилиты содержимое файла будет записано вместо текущего выделения в редакторе

Slavaz ★★★★★
() автор топика

>В тикете #2636 развязалась дискуссия, что в куда надо переместить, что считать конфигами, а что считать кешем...

This paths needs by XDG compliant applications, but XDG is X Desktop Group and MC does not only a «X Desktop» application. It can be run in pure console, on servers, routers & etc.


Какие-то у вас оффтопные тикеты.

In particular it puts filepos, history and panels.ini into .cache.

filepos, history — в кэш. panels.ini — это конфиг.

Deleted
()
Ответ на: комментарий от Slavaz

>скажем так, опция для configure '--enable-xdg-configs[=yes]' была бы полезной?

Да.

anonymousss ★★
()
Ответ на: комментарий от geekless

временные файлы - это тоже отдельная песня. У нас есть тикет, в котором описывается ситуация забивания tmp под завязку (копирование ISO-образа через fish при /tmp = tmpfs). Правильным будет, конечно, вылечить fish от использования временных файлов, но всё равно останется проблема темпа - где-то надо хранить огроменный архив, на который через, например, ftp нажали enter - он сначала скачается в tmp, а потом на него натравится /usr/libexec/mc/extfs-helper list /tmp/mc-<user>/archivename.ext.

В общем, насчёт tmp - это тема для отдельного разговора.

Сейчас пока интересует упорядочивание файлов пользователя. Да и вообще - нужно ли? Может, всё в одну кучу свалить? То бишь, в ~/.config/mc ?

Slavaz ★★★★★
() автор топика
Ответ на: комментарий от Casus

Так кеш и не в /tmp, не? Ну и XDG_CACHE_HOME.

Deleted
()

>что считать конфигами, а что считать кешем... Предлагаю обсудить это тут.

Предлагаю оценивать по двум параметрам: а) возможность read-only, б) критичность потери. Если что-то терять не критично - однозначно в кеш. Если что-то используется в режиме readonly (за исключением специальных четко определенных случаев) - в конфиг. А share, мне кажется тут вообще не к месту.

Macil ★★★★★
()
Ответ на: комментарий от Deleted

> panels.ini — это конфиг.

Оно, может, и конфиг, тока ручками туды лазить необходимости нет. Всё настраивается через диалог, в отличие от ini. Плюс в этом panels.ini сохраняются текущие состояния панелей.

akk ★★★★★
()
Ответ на: комментарий от Macil

Чёрт, я уже забыл, что такое публичные дискуссии на абстрактные темы, где у каждого есть своё категоричное мнение. Slavaz, рекомендую впредь задавать конкретные вопросы, лучше с готовым списком вариантов.

Casus ★★★★★
()

всё временное в /tmp, чтобы гарантированно тёрлось при ребуте. не накапливалось не захлямляло и не фрагментировало home. всякие кэши тоже туда и по той же причине. XDG послать в 1X1.

gena2x ★★★
()
Ответ на: комментарий от gena2x

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

XDG послать в 1X1.

?

Slavaz ★★★★★
() автор топика
Ответ на: комментарий от akk

Конфиг это не только то, куда ты лазишь руками.

Deleted
()
Ответ на: комментарий от Slavaz

>> всякие кэши тоже туда и по той же причине.

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

Это прекрасно может лежать в /tmp, состояние между запусками отразит.

XDG послать в 1X1.

?

1X1 - это специально обозначение X11. Необходимо когда X11 используется в качестве места назначение во фразе «послать в ...».

gena2x ★★★
()

Конфиги в ~/.config/mc (точнее в $XDG_CONFIG_HOME/mc), в том числе mc.ext (как он в .local/share попал, это же КОНФИГ), кэш в ~/.cache (не надо в /tmp, у меня например ~/.cache в tmpfs смонтирован, то есть, тут уже забота пользователя, тереть/не тереть кэш).

Psych218 ★★★★★
()
Ответ на: комментарий от Psych218

> mc.ext
Согласен, принимается замечание.

Пока что намечается такой фронт работ:

Бранч 2636_xdg_configs_fix

В нём:
* перенести xdg_data/mc.ext в xdg_config/mc.ext

У кого что ещё есть из замечаний?

Slavaz ★★★★★
() автор топика
Ответ на: комментарий от Slavaz

Нахрен вообще было этот перенос затевать? .mc ничего не захламлял - просто мужно использовать нормальные программы просмотра папок которые не показывают файлы начинающиеся с точки (вроде mc).

gena2x ★★★
()
Ответ на: комментарий от gena2x

Я это к тому что бороться нужно не с ветряными мельницами в стиле Дон Кихота а с реальными проблемами.

gena2x ★★★
()
Ответ на: комментарий от gena2x

Вы к нам из какого века? Это «нахрен» уже давно должно быть и работать.

Deleted
()
Ответ на: комментарий от gena2x

> .mc ничего не захламлял

$ ls -d ~/.[^.]* | wc -l
160

И в самом деле. Захламить тут что-то нереально. Потому что это и так большая помойка, что с .mc, что нет.

Вот вы по жизни привыкли срать где попало или всё же в туалете?

папок


Убивать.

geekless ★★
()

Кстати, еще и формат файла mc.keymap изменили! Так что просто заменить его на старый, чтобы все работало, не выйдет!

Eddy_Em ☆☆☆☆☆
()

Верните рабочий mc!

Все ведь было отлично. Работало. И зачем ломать было?

Руки чешутся?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

> криворукие мудаки
Атто! Не без этого.

Обновился на свою голову - настройки послетали, не могу теперь разобрать, что мне сделать, чтобы ctrl+home в редакторе работал и некоторые другие сочетания клавиш.


https://www.midnight-commander.org/wiki/doc/keybindMigration

Кстати, еще и формат файла mc.keymap изменили! Так что просто заменить его на старый, чтобы все работало, не выйдет!


Если кто-нить напишет конвертер (перл, баш, Си - не важно) - не вопрос, включим в тарболл и к 4.8.1 распишем, что вызвать чтобы автоматом перегнать...

Slavaz ★★★★★
() автор топика
Ответ на: комментарий от Slavaz

Атто! Не без этого.

Я точно так же на точно такую же реплику жены отвечаю, когда в очередной раз запускаю в арче обновление и что-нибудь отваливается :)

https://www.midnight-commander.org/wiki/doc/keybindMigration

Это и так понятно, просто сравнивать все ключи - замучаешься.

Если кто-нить напишет конвертер (перл, баш, Си - не важно) - не вопрос, включим в тарболл и к 4.8.1 распишем, что вызвать чтобы автоматом перегнать...

А зачем портить-то было?

Вы еще на XML перейдите, точно ненавидеть буду!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от geekless

>> Вы еще на XML перейдите, точно ненавидеть буду!

Страшная угроза. :)

Лично форкну.

gena2x ★★★
()
Ответ на: комментарий от Slavaz

>Сейчас пока интересует упорядочивание файлов пользователя. Да и вообще - нужно ли? Может, всё в одну кучу свалить? То бишь, в ~/.config/mc ?
Плюсую. Максимум, кеш в ~/.cache отделить, да и то необязательно. На удобство это не повлияет, стандартом, вроде, не оговаривается.

fractaler ★★★★★
()
Ответ на: комментарий от Chaser_Andrey

> Привет слоупокам!

Ты блин ещё к консольному приложению примени гуилелайнесы по десигну гномового интерфейса. Вот блин весч получится! И 'стандартам' будет соответствовать.

gena2x ★★★
()
Ответ на: комментарий от gena2x

Каталоги XDG, по факту, никак не привязаны к гую. Это вообще та вещь, которую в юниксах следовало стандартизировать еще лет 15 назад. Везде в системе порядок, и только в хомяке любая программа гадит как хочет.

geekless ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.