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?