mur*_*uru 8

来自AppImageKit 自述文件

特殊目录

通常,包含在 AppImage 中的应用程序会将其配置文件存储在它通常存储它们的任何地方(最常见的是在里面的某个地方$HOME)。如果您调用使用最新版本的 AppImageKit 构建的 AppImage 并拥有这些特殊目录之一,那么配置文件将与 AppImage 一起存储。这对于便携式用例很有用,例如,在 U 盘上携带 AppImage 及其数据。

  • 如果存在与 AppImage plus 同名的目录.home,则$HOME在执行有效载荷应用程序之前会自动设置为该目录
  • 如果存在与 AppImage plus 同名的目录.config,则$XDG_CONFIG_HOME在执行有效载荷应用程序之前会自动设置为该目录


Kur*_*fle 8

@muru 的回答当然是正确的,应该被赞成和接受。

为了清楚起见,让我补充几点:

  • 您可以通过使用--appimage-portable-home--appimage-portable-config参数调用 AppImage 来让 AppImage 自己创建这两个目录。这必须只做一次:

    ../some/path/to/my.AppImage --appimage-portable-home
    ../some/path/to/my.AppImage --appimage-portable-config
    
    Run Code Online (Sandbox Code Playgroud)

    这将创建相应的(最初为空的)目录:

    1. 然后 AppImage 会认为../some/path/to/my.AppImage.home/$HOME.
    2. AppImage 也会认为../some/path/to/my.AppImage.config/$XDG_CONFIG_HOME.

      (顺便说一句,$XDG_CONFIG_HOME经常默认为$HOME/.config.)

  • 如果你觉得上面两个参数太难记住,那就记住另一个:--appimage-help. 使用它将列出并解释所有其他可用的。

  • 并非每个应用程序都使用$HOME$XDG_CONFIG_HOME。在这种情况下,您新创建的目录将保持为空。否则,它们将在运行时和退出到它想要记住的所有设置时由 AppImage 的有效负载填充。

  • 许多应用程序只使用两个环境变量之一,$HOME或者$XDG_CONFIG_HOME(因此my.AppImage.home/分别使用my.AppImage.config/),而不是两者。

  • 如果两个可移植设置目录都存在,某些应用程序甚至可能会感到困惑...

  • 如果您将old.AppImageto重命名new.AppImageold.AppImage.home/old.AppImage.config/目录将立即停止工作。您需要相应地重命名这两个目录:new.AppImage.home/new.AppImage.config/.

  • 如果您将awesome.AppImage重命名为简单的awesome,则您也必须将awesome.AppImage.home/目录重命名为:即awesome.home/.

  • 如果您将 AppImage 移动到新位置并希望保留以前使用的配置和主目录,您也必须移动这些。

  • 如果你想摆脱旧的配置并想让 AppImage 再次使用“标准”路径$HOME$XDG_CONFIG_HOME那么只需再次删除这些目录。

  • 如果您希望新 AppImage 的有效负载使用与系统安装的有效负载应用程序版本相同的设置,那么您应该:

    1. 先创建相关的空目录;
    2. 找到系统安装的应用程序的相应配置目录;
    3. 将该目录的所有内容复制到新的空目录中。