Хотя я не уверен, какую оболочку вы используете, предполагая bash, вам нужно указать $HOME
, а не ~
, так как кроме интерактивной командной строки небезопасно использовать ~
где-либо еще.
Некоторые местоположения, такие как внутренние скрипты, ~
также будут работать, но определение их внутри переменной может привести к неожиданным результатам, как вы уже поняли.
Вы также можете вернуться назад $PATH
, чтобы увидеть содержимое.
echo $PATH
Вы увидите, что в вашей текущей реализации он будет включать путь ~/.local/bin
вместо собственного -, расширенного /root/.local/bin
, поскольку ~
воспринимается буквально.
Мне удалось решить ее с помощью следующего:
displayManager.defaultSession = "myxmonad";
displayManager.session = [
{
manage = "desktop";
name = "myxmonad";
start = ''exec $HOME/.xsession'';
}
];
Ответ нашел здесь:https://discourse.nixos.org/t/opening-i3-from-home-manager-automatically/4849/2