Hello,
This question/remark is more oriented towards users of guix home on foreign distributions.
I'm using guix home on Fedora, and guix home really put my system in shambles (I had no cursor,
and I couldn't log in to KDE or GNOME, on X11 or Wayland, at all).
It took me a while to understand that the reason was that overriding the XDG environment variables
without having the "default" as fallbacks made all programs unable to find their data
(such as GSettingsSchemas for GTK apps), or cursors.
I had to add the following lines to my .bash_profile in order to get the system back:
#+begin_src bash
# Added in my .bash_profile, so that $GUIX_HOME/setup prepends the extra guix directories to defaults
export XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
export XDG_CONFIG_DIRS="/etc/xdg"
export XCURSOR_PATH="$HOME/.local/share/icons:$HOME/.icons:/usr/share/icons:/usr/share/pixmaps"
#+end_src
Is it a known issue for the testers on foreign distributions ?
I wonder how Nix home manager handles this...
Also, I still need to manually export ~GUILE_LOAD_PATH=$HOME/.config/guix/current/share/guile/site/3.0~
to get the guix home commands found. Where is this supposed to happen in sourced guix home files ?
I'd like to see whether there is something weird on my system
Regards,
Gerry Agbobada
On 2021-09-22 11:00, Gerry Agbobada wrote:
> Hello,>> This question/remark is more oriented towards users of guix home on foreign distributions. > I'm using guix home on Fedora, and guix home really put my system in shambles (I had no cursor, > and I couldn't log in to KDE or GNOME, on X11 or Wayland, at all). > It took me a while to understand that the reason was that overriding the XDG environment variables> without having the "default" as fallbacks made all programs unable to find their data> (such as GSettingsSchemas for GTK apps), or cursors.
Hi Gerry, I have something like that in ~/.guix-home/setup-environment
--8<---------------cut here---------------start------------->8---
case $XDG_DATA_DIRS in
*$HOME_ENVIRONMENT/profile/share*) ;;
*) export XDG_DATA_DIRS=$HOME_ENVIRONMENT/profile/share:$XDG_DATA_DIRS ;;
esac
--8<---------------cut here---------------end--------------->8---
And the same for XDG_CONFIG_DIRS and XCURSOR_PATH, so it only adds some
pathes, but not override.
>> I had to add the following lines to my .bash_profile in order to get the system back:>> #+begin_src bash> # Added in my .bash_profile, so that $GUIX_HOME/setup prepends the extra guix directories to defaults> export XDG_DATA_DIRS="/usr/local/share/:/usr/share/"> export XDG_CONFIG_DIRS="/etc/xdg"> export XCURSOR_PATH="$HOME/.local/share/icons:$HOME/.icons:/usr/share/icons:/usr/share/pixmaps"> #+end_src>> Is it a known issue for the testers on foreign distributions ? > I wonder how Nix home manager handles this...
I know that Xinglu uses Guix Home on Nix and some other folks on Debian
and Arch, nobody reported anything similar yet.
If you can reproduce it on a fresh Fedora installation with minimal Guix
Home config, please share detailed info and I'll try to reproduce it on
a virtual machine.
>> Also, I still need to manually export ~GUILE_LOAD_PATH=$HOME/.config/guix/current/share/guile/site/3.0~> to get the guix home commands found. Where is this supposed to happen in sourced guix home files ?> I'd like to see whether there is something weird on my system
It's ok, I move Guix Home from rde repo to guix repo and this code won't
be needed in the future, so I removed it and made a post on rde-devel.
https://lists.sr.ht/~abcdw/rde-devel/%3C87a6l3fndr.fsf%40trop.in%3E#%3C874kbbfmuz.fsf@trop.in%3E
You can either set them manually until upstreaming process is finished
or use Guix Home from guix repo:
--8<---------------cut here---------------start------------->8---
Generation 114 Sep 17 2021 13:33:55 (current)
rde 31f8003
repository URL: https://git.sr.ht/~abcdw/rde
branch: without-guix-home
commit: 31f800353a781cef25fc80c05ad824a068a049c8
guix a2324d8
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: wip-guix-home
commit: a2324d8b56eabf8117bca220a507cc791edffd2e
--8<---------------cut here---------------end--------------->8---
>> Regards,>> Gerry Agbobada
Hello,
> And the same for XDG_CONFIG_DIRS and XCURSOR_PATH, so it only adds some> pathes, but not override.
The issue is that all those paths are left empty by default on Fedora (33/34/35) in the shipped /etc/profile.d files,
and when they are empty, most programs just use the default values that I added in my `.bash_profile`.
The setup in $GUIX_HOME appends the custom values to an empty original one, and once those environment
variables are defined, Fedora stopped looking for data and cursors in the default folders entirely.
I think it’d be pretty easy to test in a VM:
- get Fedora with KDE spin (so you boot into Plasma workspace, with Breeze theme and cursors)
- install guix-home and generate a profile
- logout and login again.
I think this is going to be enough to see that the cursor won’t be the pretty one, but the default X one,
because `XCURSOR_PATH` being non-empty will prevent Fedora and/or KDE from finding the Breeze
cursor directory for your user.
> It's ok, I move Guix Home from rde repo to guix repo and this code won't> be needed in the future, so I removed it and made a post on rde-devel.> https://lists.sr.ht/~abcdw/rde-devel/%3C87a6l3fndr.fsf%40trop.in%3E#%3C874kbbfmuz.fsf@trop.in%3E
Thanks, that’s good to know!
Have a nice day,
--
Gerry Agbobada
On 2021-09-22 16:04, Gerry Agbobada wrote:
> Hello,>>>> And the same for XDG_CONFIG_DIRS and XCURSOR_PATH, so it only adds some>> pathes, but not override.>> The issue is that all those paths are left empty by default on Fedora (33/34/35) in the shipped /etc/profile.d files,> and when they are empty, most programs just use the default values that I added in my `.bash_profile`.>> The setup in $GUIX_HOME appends the custom values to an empty original one, and once those environment> variables are defined, Fedora stopped looking for data and cursors in the default folders entirely.
Seems like a missbehavior on Fedora side and should reported to their
bug tracker. For now the solution will be what you mentioned above, but
better not to override the value of variables, but append/prepend to
them, so the values provided by Guix Home won't be lost.
>> I think it’d be pretty easy to test in a VM:> - get Fedora with KDE spin (so you boot into Plasma workspace, with Breeze theme and cursors)> - install guix-home and generate a profile> - logout and login again.>> I think this is going to be enough to see that the cursor won’t be the pretty one, but the default X one,> because `XCURSOR_PATH` being non-empty will prevent Fedora and/or KDE from finding the Breeze> cursor directory for your user.>
Ok, I'll take a look, when will have some free time.
>> It's ok, I move Guix Home from rde repo to guix repo and this code>> won't be needed in the future, so I removed it and made a post on>> rde-devel.>> https://lists.sr.ht/~abcdw/rde-devel/%3C87a6l3fndr.fsf%40trop.in%3E#%3C874kbbfmuz.fsf@trop.in%3E>>> Thanks, that’s good to know!>> Have a nice day,
Thank you, you too!)