Как у приложения сохраняются настройки между запусками?

точка glenn jackman хорошо взята. Но, чтобы решить ваш случай использования, как насчет обратных сигналов? Например:

`echo $COMMAND`

Например, это работает:

COMMAND='ls /'
`echo $COMMAND`
3
задан 26 February 2018 в 12:59

4 ответа

Конечно, ответ мура является правильным и должен быть одобрен и принят.

Позвольте мне добавить несколько моментов для ясности:

Вы можете заставить AppImage создать все два каталога сам по себе, вызывая его с параметрами --appimage-portable-home и --appimage-portable-config. Это нужно сделать только один раз: ../some/path/to/my.AppImage --appimage-portable-home ../some/path/to/my.AppImage --appimage-portable-config Это создаст соответствующие (первоначально пустые) каталоги: AppImage тогда подумает, что ../some/path/to/my.AppImage.home/ - $HOME. AppImage также будет думать, что ../some/path/to/my.AppImage.config/ - $XDG_CONFIG_HOME. (BTW, $XDG_CONFIG_HOME очень часто по умолчанию $HOME/.config.) Если вы находите выше два параметра, которые слишком сложно запомнить, тогда запомните еще один: --appimage-help. Используя это, вы перечислите и объясните все остальные, которые доступны. Не каждое приложение использует $HOME или $XDG_CONFIG_HOME. В этом случае ваши вновь созданные каталоги останутся пустыми. В противном случае они будут заполнены полезной нагрузкой AppImage во время выполнения и при выходе ко всем настройкам, которые она хочет запомнить. Во многих приложениях используется только одна из двух переменных среды: $HOME или $XDG_CONFIG_HOME (и, следовательно, my.AppImage.home/ и my.AppImage.config/), а не оба. Некоторые приложения могут даже запутаться, если существуют обе каталоги портативных настроек ... Если вы переименовываете old.AppImage в new.AppImage, каталоги old.AppImage.home/ и old.AppImage.config/ немедленно прекращают работу. Вам нужно переименовать два каталога соответственно: new.AppImage.home/ и new.AppImage.config/. Если вы переименуете awesome.AppImage просто потрясающе, вам также нужно переименовать каталог awesome.AppImage.home/: а именно awesome.home/. Если вы переместите AppImage в новое место и хотите сохранить ранее используемые конфигурационные и домашние каталоги, вам также нужно их переместить. Если вы хотите избавиться от старой конфигурации и хотите, чтобы AppImage снова использовал «стандартные» пути для $HOME для $XDG_CONFIG_HOME, просто удалите эти каталоги еще раз. Если вы хотите, чтобы новая полезная нагрузка AppImage использовала те же настройки, что и ваша системная версия приложения с полезной нагрузкой, вам необходимо: сначала создать соответствующий пустой каталог; Найдите соответствующий каталог конфигурации установленного системой приложения; Скопируйте все содержимое этого каталога на новый пустой.
4
ответ дан 17 July 2018 в 19:58

Из AppImageKit README:

Специальные каталоги Обычно приложение, содержащееся внутри AppImage, будет хранить свои файлы конфигурации везде, где он обычно хранит их (чаще всего где-то внутри $HOME). Если вы вызываете AppImage, построенную с последней версией AppImageKit, и у вас есть один из этих специальных каталогов, тогда файлы конфигурации будут храниться вместе с AppImage. Это может быть полезно для переносных приложений, например, перенос AppImage на USB-накопитель вместе с его данными. Если есть каталог с тем же именем, что и AppImage plus .home, тогда $HOME будет автоматически установлен на него перед выполнением приложения полезной нагрузки. Если есть каталог с тем же именем, что и AppImage plus .config, тогда $XDG_CONFIG_HOME будет автоматически установлен на него перед выполнением приложения полезной нагрузки
5
ответ дан 17 July 2018 в 19:58

Конечно, ответ мура является правильным и должен быть одобрен и принят.

Позвольте мне добавить несколько моментов для ясности:

Вы можете заставить AppImage создать все два каталога сам по себе, вызывая его с параметрами --appimage-portable-home и --appimage-portable-config. Это нужно сделать только один раз: ../some/path/to/my.AppImage --appimage-portable-home ../some/path/to/my.AppImage --appimage-portable-config Это создаст соответствующие (первоначально пустые) каталоги: AppImage тогда подумает, что ../some/path/to/my.AppImage.home/ - $HOME. AppImage также будет думать, что ../some/path/to/my.AppImage.config/ - $XDG_CONFIG_HOME. (BTW, $XDG_CONFIG_HOME очень часто по умолчанию $HOME/.config.) Если вы находите выше два параметра, которые слишком сложно запомнить, тогда запомните еще один: --appimage-help. Используя это, вы перечислите и объясните все остальные, которые доступны. Не каждое приложение использует $HOME или $XDG_CONFIG_HOME. В этом случае ваши вновь созданные каталоги останутся пустыми. В противном случае они будут заполнены полезной нагрузкой AppImage во время выполнения и при выходе ко всем настройкам, которые она хочет запомнить. Во многих приложениях используется только одна из двух переменных среды: $HOME или $XDG_CONFIG_HOME (и, следовательно, my.AppImage.home/ и my.AppImage.config/), а не оба. Некоторые приложения могут даже запутаться, если существуют обе каталоги портативных настроек ... Если вы переименовываете old.AppImage в new.AppImage, каталоги old.AppImage.home/ и old.AppImage.config/ немедленно прекращают работу. Вам нужно переименовать два каталога соответственно: new.AppImage.home/ и new.AppImage.config/. Если вы переименуете awesome.AppImage просто потрясающе, вам также нужно переименовать каталог awesome.AppImage.home/: а именно awesome.home/. Если вы переместите AppImage в новое место и хотите сохранить ранее используемые конфигурационные и домашние каталоги, вам также нужно их переместить. Если вы хотите избавиться от старой конфигурации и хотите, чтобы AppImage снова использовал «стандартные» пути для $HOME для $XDG_CONFIG_HOME, просто удалите эти каталоги еще раз. Если вы хотите, чтобы новая полезная нагрузка AppImage использовала те же настройки, что и ваша системная версия приложения с полезной нагрузкой, вам необходимо: сначала создать соответствующий пустой каталог; Найдите соответствующий каталог конфигурации установленного системой приложения; Скопируйте все содержимое этого каталога на новый пустой.
4
ответ дан 23 July 2018 в 20:42
  • 1
    Я задавался вопросом, были ли они буквальными об использовании «того же имени, что и AppImage». Спасибо, что подтвердили. Вы знаете, поддерживает ли AppImages поддержку XDG_CACHE_HOME? – muru 1 March 2018 в 05:49
  • 2
    Когда запускается AppImage, он знает о его текущем имени и абсолютном пути. Затем он смотрит, существуют ли два названных каталога и есть какой-либо интересный контент для его чтения. - Я не думаю, что в настоящее время поддерживается XDG_CACHE_HOME. Если XDG_CACHE_HOME нет, приложение полезной нагрузки должно использовать HOME/.cache ... Вы видите прецедент для того, где вы хотите, чтобы AppImage использовал свой собственный XDG_CACHE_HOME? В этом случае вы можете отправить сообщение на свой трекер GitHub ... – Kurt Pfeifle 1 March 2018 в 05:56
  • 3
    Нет, просто интересно, почему была поддержка XDG_CONFIG_HOME без других каталогов XDG (кэш, данные). – muru 1 March 2018 в 06:15

Из AppImageKit README:

Специальные каталоги Обычно приложение, содержащееся внутри AppImage, будет хранить свои файлы конфигурации везде, где он обычно хранит их (чаще всего где-то внутри $HOME). Если вы вызываете AppImage, построенную с последней версией AppImageKit, и у вас есть один из этих специальных каталогов, тогда файлы конфигурации будут храниться вместе с AppImage. Это может быть полезно для переносных приложений, например, перенос AppImage на USB-накопитель вместе с его данными. Если есть каталог с тем же именем, что и AppImage plus .home, тогда $HOME будет автоматически установлен на него перед выполнением приложения полезной нагрузки. Если есть каталог с тем же именем, что и AppImage plus .config, тогда $XDG_CONFIG_HOME будет автоматически установлен на него перед выполнением приложения полезной нагрузки
5
ответ дан 23 July 2018 в 20:42

Другие вопросы по тегам:

Похожие вопросы: