A Bit More About My Setup
I run the base of my system on nixos-19.09
, but then selectively install most of my day-to-day packages as my local user via home-manager
. A couple of these packages, including Firefox, are pulled from nixos-unstable
(motivation for Firefox).
It’s kind of non-standard, which was one reason I wanted to see if anyone else was experiencing this issue.
Missing GSettings Key
Duplicating your commands, I get a very different result.
❯ echo $NIX_GSETTINGS_OVERRIDES_DIR
/nix/store/0ynzj1ff07hr9pz3w3wa4ls2fw6dkg54-elementary-gsettings-desktop-schemas/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
❯ cd $NIX_GSETTINGS_OVERRIDES_DIR
❯ rg "show-type-column" # Outputs nothing
If I check out my GTK installation, I find that it’s not elementary-gsettings-schemas
that’s at fault here.
❯ cd /nix/store/v1172q7ilr3d5fjxkfn5vk8gn1kv6pz9-gtk+3-3.24.10/share/gsettings-schemas/gtk+3-3.24.10/glib-2.0/schemas/
❯ rg "show-type-column" # Also outputs nothing
Firefox Wrapper
Interestingly, my Firefox wrapper is very different from yours, completely lacking the XDG_DATA_DIRS
lines.
❯ cat ~/.nix-profile/bin/firefox
#! /nix/store/rm1hz1lybxangc8sdl7xvzs5dcvigvf7-bash-4.4-p23/bin/bash -e
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+':'}'/nix/store/g4vw6iwchva8mfs3njgz6lxjivrxqlrq-systemd-243.3-lib/lib:/nix/store/mv0pflsj7slsjpxaxfabsd0albdxwy3h-libpulseaudio-12.2/lib:/nix/store/g4vw6iwchva8mfs3njgz6lxjivrxqlrq-systemd-243.3-lib/lib64:/nix/store/mv0pflsj7slsjpxaxfabsd0albdxwy3h-libpulseaudio-12.2/lib64'
export GTK_PATH=$GTK_PATH${GTK_PATH:+:}'/nix/store/8fw0izf75d24c9wl3a4wi01bqwihmb8a-libcanberra-0.30/lib/gtk-2.0/'
export PATH=$PATH${PATH:+':'}'/nix/store/3f56wixyly6mxi62gm2iwsgvwbzb2grm-firefox-71.0/bin'
export MOZ_APP_LAUNCHER='firefox'
export MOZ_SYSTEM_DIR='/nix/store/3f56wixyly6mxi62gm2iwsgvwbzb2grm-firefox-71.0/lib/mozilla'
export SNAP_NAME='firefox'
export MOZ_LEGACY_PROFILES='1'
export MOZ_ALLOW_DOWNGRADE='1'
exec "/nix/store/av1722752dvq43cgkal3wj5vk6dl60b4-firefox-71.0/bin/firefox" "${extraFlagsArray[@]}" "$@"
GTK_MODULES
Tests
GTK_MODULES
is set in my environment, but GTK3_MODULES
isn’t.
❯ env | grep GTK_MODULES
GTK_MODULES=:pantheon-filechooser-module
❯ env | grep GTK3_MODULES # No output
Attempting to unset things in various ways doesn’t change the results.
❯ firefox # Crash
❯ env firefox # Crash
❯ env -u NIX_GSETTINGS_OVERRIDES_DIR firefox # Works
❯ env -u GTK_MODULES firefox # Crash
❯ env -u GTK3_MODULES firefox # Crash
❯ env -u GTK_MODULES -u GTK3_MODULES firefox # Crash
A Fix, But I Don’t Understand Why
The fact that my Firefox wrapper was missing the XDG_DATA_DIRS
directives made me think that the problem might be with Firefox, and not Pantheon. So I switched over to Firefox from nixos-19.09
(which is currently the same version as the one in nixos-unstable
), and…
It works!
No crash when opening up the file chooser, and I’m definitely getting the Pantheon chooser rather than the default GTK one. Except that my hypothesis about the missing XDG_DATA_DIRS
export is wrong.
❯ cat ~/.nix-profile/bin/firefox
#! /nix/store/rm1hz1lybxangc8sdl7xvzs5dcvigvf7-bash-4.4-p23/bin/bash -e
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+':'}'/nix/store/g4vw6iwchva8mfs3njgz6lxjivrxqlrq-systemd-243.3-lib/lib:/nix/store/mv0pflsj7slsjpxaxfabsd0albdxwy3h-libpulseaudio-12.2/lib:/nix/store/g4vw6iwchva8mfs3njgz6lxjivrxqlrq-systemd-243.3-lib/lib64:/nix/store/mv0pflsj7slsjpxaxfabsd0albdxwy3h-libpulseaudio-12.2/lib64'
export GTK_PATH=$GTK_PATH${GTK_PATH:+:}'/nix/store/8fw0izf75d24c9wl3a4wi01bqwihmb8a-libcanberra-0.30/lib/gtk-2.0/'
export PATH=$PATH${PATH:+':'}'/nix/store/ay73153bvfffwly41d533w863xhxgsd6-firefox-71.0/bin'
export MOZ_APP_LAUNCHER='firefox'
export MOZ_SYSTEM_DIR='/nix/store/ay73153bvfffwly41d533w863xhxgsd6-firefox-71.0/lib/mozilla'
export SNAP_NAME='firefox'
export MOZ_LEGACY_PROFILES='1'
export MOZ_ALLOW_DOWNGRADE='1'
exec "/nix/store/1gwjx0z9q939kd2c8bh5fablc7mzfhi8-firefox-71.0/bin/firefox" "${extraFlagsArray[@]}" "$@"
So at this point I’m thinking it’s an issue with the version of Firefox in nixos-unstable
, but I’m at a total loss as to what it could be (outside of unhelpfully flapping my arms and exclaiming, “but they’re different somehow!”).
Any suggestions about how I could try drilling down further?