Subject: [bug#45064] [PATCH 0/2] Set environment variables for GTK+ input methods via profile startup files

From: Leo Prikler <[email-masked]>
Date: Mon, 07 Dec 2020 13:09:05 +0100

Hello, 宋文武!

As the author of [1] I might be a bit biased, but I have a few
questions regarding this patch set:
1. Will it correctly pick up IM_MODULE_FILEs at system level if you
also happen to have GTK+ applications installed at user level?
  a. What about multi-profile setups, where more than one profile
contains GTK+ applications?
  b. What about `guix environment`?
2. Which purpose would sourcing those files offer other than setting
environment variables?  What would be permissible actions?  Remember,
that those would be executed whenever the user spawns a shell, so while
you could put stuff like `fc-cache -r` in there, I personally think you
ought not to.

I believe a proper fix for GTK would be to allow setting multiple
IM_MODULE_FILEs instead of a single one and using search paths.  [1]
was merely meant to have a reasonable default when installing ibus
system-wide, it can not (and will not) help you if you also happen to
have stuff in another profile.

Regards,
Leo

Am Sonntag, den 06.12.2020, 13:40 +0800 schrieb [email-masked]:
> From: 宋文武 <[email-masked]>
> 
> Hello, Guix!
> 
> To use GTK+ input methods, currently we need set
> ‘GUIX_GTK2_IM_MODULE_FILE’ and ‘GUIX_GTK3_IM_MODULE_FILE’ manually in
> .xsession or .bash_profile, we also having a patch [1] that set them
> for gnome via ‘gnome-desktop-service-type’.  But I think the right
> place to set them is the ‘gtk-im-modules’ profile hook, so the first
> patch make ‘etc/profile’ source files in ‘etc/profile.d/*.sh’, and
> the
> second patch add ‘etc/profile.d/gtk2-im-modules.sh’ and
> ‘etc/profile.d/gtk3-im-modules.sh’.  The first patch is also useful
> for packages that provide profile startup files (eg: nix).
> 
> Thanks!
> 
> [1] <https://issues.guix.gnu.org/44354>
> 
> Sou Bunnbu (宋文武) (2):
>   profiles: Load application specific startup files.
>   profiles: gtk-im-modules: Set environment variables for input
> methods.
> 
>  guix/build/profiles.scm | 13 ++++++++++++-
>  guix/profiles.scm       | 12 ++++++++++--
>  2 files changed, 22 insertions(+), 3 deletions(-)
>