Изменение домашнего каталога GNUPG на NixOS

Вопрос или проблема

Я настраиваю NixOS 24.05 и использую эквивалентную версию Home Manager. Я пытаюсь переместить директорию для GNUPG в $HOME/.local/share/gnupg, также известную как $XDG_DATA_HOME/gnupg. Я знаю, что XDG_DATA_HOME установлен правильно перед тем, как задать этот вопрос. Выполнение gpgconf --list-dirs дает мне следующий вывод:

sysconfdir:/etc/gnupg
bindir:/nix/store/wfwk6kv1mp5v94dly55c3ql1rwsqrky0-gnupg-2.4.5/bin
libexecdir:/nix/store/wfwk6kv1mp5v94dly55c3ql1rwsqrky0-gnupg-2.4.5/libexec
libdir:/nix/store/wfwk6kv1mp5v94dly55c3ql1rwsqrky0-gnupg-2.4.5/lib/gnupg
datadir:/nix/store/wfwk6kv1mp5v94dly55c3ql1rwsqrky0-gnupg-2.4.5/share/gnupg
localedir:/nix/store/wfwk6kv1mp5v94dly55c3ql1rwsqrky0-gnupg-2.4.5/share/locale
socketdir:/run/user/1000/gnupg
dirmngr-socket:/run/user/1000/gnupg/S.dirmngr
keyboxd-socket:/run/user/1000/gnupg/S.keyboxd
agent-ssh-socket:/run/user/1000/gnupg/S.gpg-agent.ssh
agent-extra-socket:/run/user/1000/gnupg/S.gpg-agent.extra
agent-browser-socket:/run/user/1000/gnupg/S.gpg-agent.browser
agent-socket:/run/user/1000/gnupg/S.gpg-agent
homedir:/home/hanna/.gnupg

При установке переменной окружения GNUPGHOME или использовании опции programs.gpg.homedir в Home Manager ни одно из этих действий не изменило установку homedir в gpgconf, и поэтому директория всегда создается по этому пути.

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

Я не знаю, разобрались ли вы с этим или нет, но различные xdg директории можно декларативно определить в home-manager, включив xdg. Пример конфигурации может выглядеть так:

{ config, lib, pkgs, ... }:

{
  xdg = {
    enable = true;

    cacheHome = "${config.home.homeDirectory}/.cache";
    configHome = "${config.home.homeDirectory}/.config";
    dataHome = "${config.home.homeDirectory}/.local/share";
    stateHome = "${config.home.homeDirectory}/.local/state";

    userDirs = {
      enable = true;

      createDirectories = true;
    };
  };

  home.packages = with pkgs; [
    xdg-utils
    xdg-user-dirs
  ];
}

Затем вы можете установить programs.gpg.homedir в желаемую директорию XDG. Например:

...
programs.gpg = {
  enable = true;
  homedir = "${config.xdg.dataHome}/gnupg";
};
...

Не забудьте либо выполнить сборку при загрузке (и перезагрузиться), либо сборку переключения; в последнем случае вам нужно будет выйти из сессии и войти обратно, чтобы изменения вступили в силу.

Ответ или решение

Для изменения домашнего каталога GNUPG на NixOS, особенно в контексте версии 24.05 и использования Home Manager, необходимо выполнить несколько шагов. Ваша цель заключается в перемещении директории GNUPG в указанное вами место — $HOME/.local/share/gnupg, что соответствует переменной окружения $XDG_DATA_HOME. Приведем подробную инструкцию по настройке.

1. Убедитесь, что переменная окружения XDG_DATA_HOME установлена правильно

Перед тем, как начать, проверьте, что переменная XDG_DATA_HOME настроена корректно. Вы можете сделать это, выполнив команду в терминале:

echo $XDG_DATA_HOME

Если вывод соответствует ~/.local/share, тогда вы на правильном пути.

2. Включите поддержку xdg в Home Manager

Вам необходимо активировать пакет xdg в конфигурации Home Manager. Это делается путем добавления блока xdg с необходимыми настройками в ваш конфигурационный файл Home Manager. Пример конфигурации может выглядеть следующим образом:

{ config, lib, pkgs, ... }:

{
  xdg = {
    enable = true;

    cacheHome = "${config.home.homeDirectory}/.cache";
    configHome = "${config.home.homeDirectory}/.config";
    dataHome = "${config.home.homeDirectory}/.local/share";
    stateHome = "${config.home.homeDirectory}/.local/state";

    userDirs = {
      enable = true;

      createDirectories = true;
    };
  };

  home.packages = with pkgs; [
    xdg-utils
    xdg-user-dirs
  ];
}

3. Установите новый домашний каталог для GPG

Теперь вы можете установить новый путь для директории GNUPG в конфигурации Home Manager. Добавьте следующий блок в ваш файл конфигурации:

programs.gpg = {
  enable = true;
  homedir = "${config.xdg.dataHome}/gnupg";
};

4. Примените изменения

После внесения изменений не забудьте применить их. Вы можете сделать это двумя способами:

  • Перезагрузка системы (rebuild and reboot).
  • Переключение конфигурации Nix, что требует выхода из текущей сессии и повторного входа:
home-manager switch

5. Проверьте настройки GNUPG

После внести правки и перезагрузки (или переключения конфигурации), проверьте, правильно ли изменились настройки. Используйте команду:

gpgconf --list-dirs

В выводе должно отображаться новое значение для homedir, соответствующее вашему установленному пути.

Заключение

Следуя вышеизложенным шагам, вы сможете успешно изменить домашний каталог GNUPG на NixOS, настроив его в соответствии с стандартами XDG. Если после выполнения всех инструкций изменения не вступают в силу, убедитесь, что вы не запускаете GPG из сеанса, который был активен до применения изменений.

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

Оцените материал
Добавить комментарий

Капча загружается...