# Which package includes \`org.gtk.gtk4.Settings.FileChooser\`?

**URL:** https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063
**Category:** Help
**Created:** [January 10, 2024, 11:11am UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063 "2024-01-10T11:11:38Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![TornaxO7](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tornaxo7/32/8409_2.png) [@TornaxO7](https://discourse.nixos.org/u/TornaxO7)
#### Post date: [January 10, 2024, 11:11am UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/1 "2024-01-10T11:11:38Z")

</div>

Hello guys! I’m trying to compile a rust-program with `cargo run` but I’m getting the follow error message:

```auto
(flakeshot:172220): GLib-GIO-ERROR **: 12:09:24.675: Settings schema 'org.gtk.gtk4.Settings.FileChooser' is not installed
Trace/breakpoint trap: oops, process 'cargo' core dumped

```

may I ask which package includes this `org.gtk.gtk4.Settings.FileChooser`?

[Here’s the devShell`](https://github.com/eneoli/flakeshot/blob/5473dbb08c9e8b766e83270f8f3379828f88ae2f/flake.nix#L79) I’m using.

---

<div class="post-metadata">

### Author: ![bowmanjd](https://discourse.nixos.org/user_avatar/discourse.nixos.org/bowmanjd/32/11323_2.png) [@bowmanjd](https://discourse.nixos.org/u/bowmanjd)
#### Post date: [January 10, 2024, 11:21am UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/2 "2024-01-10T11:21:36Z")

</div>

I would think `gtk4`. Which you already have in the build inputs. So, hmmmm…

---

<div class="post-metadata">

### Author: ![TornaxO7](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tornaxo7/32/8409_2.png) [@TornaxO7](https://discourse.nixos.org/u/TornaxO7)
#### Post date: [January 10, 2024, 11:22am UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/3 "2024-01-10T11:22:33Z")

</div>

but `gtk4` is already included.

---

<div class="post-metadata">

### Author: ![bowmanjd](https://discourse.nixos.org/user_avatar/discourse.nixos.org/bowmanjd/32/11323_2.png) [@bowmanjd](https://discourse.nixos.org/u/bowmanjd)
#### Post date: [January 10, 2024, 11:24am UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/4 "2024-01-10T11:24:38Z")

</div>

Yes, I see that now. What happens if you do something like `find /nix/store -name *FileChooser*`

---

<div class="post-metadata">

### Author: ![TornaxO7](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tornaxo7/32/8409_2.png) [@TornaxO7](https://discourse.nixos.org/u/TornaxO7)
#### Post date: [January 10, 2024, 11:26am UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/5 "2024-01-10T11:26:19Z")

</div>

> [@bowmanjd](#):
>
> find /nix/store -name _FileChooser_

```auto
/nix/store/6qp789r70ka5ahxfzrr9l3h6szclsgsr-gtk+3-3.24.38/share/gsettings-schemas/gtk+3-3.24.38/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
/nix/store/vv2cg9d8552rb8bwax0g89va7cgi7xdk-gtk4-4.10.4/share/gsettings-schemas/gtk4-4.10.4/glib-2.0/schemas/org.gtk.gtk4.Settings.FileChooser.gschema.xml
/nix/store/k3i7m5ch2b250jd4q214gx5rraaqlaid-gtk+3-3.24.38/share/gsettings-schemas/gtk+3-3.24.38/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
/nix/store/jswnsgpzzl9k2nrh2155jrryzd5ifln7-gtk4-4.10.4/share/gsettings-schemas/gtk4-4.10.4/glib-2.0/schemas/org.gtk.gtk4.Settings.FileChooser.gschema.xml
/nix/store/5pzqljy5fy7rsbrxicrqdlz3hvb25jhr-gtk+3-3.24.38/share/gsettings-schemas/gtk+3-3.24.38/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
/nix/store/5gdc4xw769fg44f7wp6yxhrhc3n99frh-gtk4-4.12.3/share/gsettings-schemas/gtk4-4.12.3/glib-2.0/schemas/org.gtk.gtk4.Settings.FileChooser.gschema.xml
/nix/store/b58rkvfpkhw66jj6njc5d5xw6hyywfly-gtk+3-3.24.38/share/gsettings-schemas/gtk+3-3.24.38/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
/nix/store/2x3zx0jyna3isnhvbq2s9xlhdn4jhdz0-gtk4-4.12.3/share/gsettings-schemas/gtk4-4.12.3/glib-2.0/schemas/org.gtk.gtk4.Settings.FileChooser.gschema.xml
/nix/store/zidry78k7kjxd7cpxvj4pqcklsfdh9li-xdg-desktop-portal-1.18.2/share/dbus-1/interfaces/org.freedesktop.impl.portal.FileChooser.xml
/nix/store/zidry78k7kjxd7cpxvj4pqcklsfdh9li-xdg-desktop-portal-1.18.2/share/dbus-1/interfaces/org.freedesktop.portal.FileChooser.xml
/nix/store/g4cjh6i91sy02sn50h414x77yrbzrrig-gtk+3-3.24.38/share/gsettings-schemas/gtk+3-3.24.38/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml

```

looks like it’s in `gtk4`.

---

<div class="post-metadata">

### Author: ![bowmanjd](https://discourse.nixos.org/user_avatar/discourse.nixos.org/bowmanjd/32/11323_2.png) [@bowmanjd](https://discourse.nixos.org/u/bowmanjd)
#### Post date: [January 10, 2024, 11:27am UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/6 "2024-01-10T11:27:32Z")

</div>

Yeah, hopefully someone more experienced than I will chime in, but my best guess is that you need to get the dev output somehow? [Nixpkgs 23.11 manual | Nix & NixOS](https://nixos.org/manual/nixpkgs/stable/#chap-multiple-output)

---

<div class="post-metadata">

### Author: ![bowmanjd](https://discourse.nixos.org/user_avatar/discourse.nixos.org/bowmanjd/32/11323_2.png) [@bowmanjd](https://discourse.nixos.org/u/bowmanjd)
#### Post date: [January 10, 2024, 11:29am UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/7 "2024-01-10T11:29:39Z")

</div>

Also wondering if you need glib in your inputs, so it has access to gtk4?

---

<div class="post-metadata">

### Author: ![TornaxO7](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tornaxo7/32/8409_2.png) [@TornaxO7](https://discourse.nixos.org/u/TornaxO7)
#### Post date: [January 10, 2024, 11:40am UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/8 "2024-01-10T11:40:18Z")

</div>

I also added `glib` to `nativeBuildInputs`. Still getting the error.

---

<div class="post-metadata">

### Author: ![TornaxO7](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tornaxo7/32/8409_2.png) [@TornaxO7](https://discourse.nixos.org/u/TornaxO7)
#### Post date: [January 10, 2024, 11:50am UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/9 "2024-01-10T11:50:24Z")

</div>

Ok, I followed [this](https://discourse.nixos.org/t/gtk-file-dialog-causes-segfaults-glib-gio-error-settings-schema-org-gtk-settings-filechooser-does-not-contain-a-key-named-show-type-column/6853/2) post and executed

```auto
rm -rf ~/.local/share/glib-2.0/schemas

```

with

```auto
mkdir -p ~/.local/share/glib-2.0/schemas
cp -pi /nix/store/...-gtk+3-3.<LATEST>/share/gsettings-schemas/gtk+3-3.*/glib-2.0/schemas/gschemas.compiled ~/.local/share/glib-2.0/schema/

```

as the next step but with `gtk4` instead of gtk+3.3.  
Now I’m getting

```auto
(flakeshot:72854): GLib-GIO-ERROR **: 12:48:00.442: No GSettings schemas are installed on the system

```

---

<div class="post-metadata">

### Author: ![anon23399578](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/a/d78d45/32.png) [@anon23399578](https://discourse.nixos.org/u/anon23399578)
#### Post date: [January 10, 2024, 11:59am UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/10 "2024-01-10T11:59:58Z")

</div>

You need to add [`wrapGAppsHook4`](https://nixos.org/manual/nixpkgs/stable/#ssec-gnome-hooks) to your `nativeBuildInputs`.

---

<div class="post-metadata">

### Author: ![TornaxO7](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tornaxo7/32/8409_2.png) [@TornaxO7](https://discourse.nixos.org/u/TornaxO7)
#### Post date: [January 10, 2024, 12:01pm UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/11 "2024-01-10T12:01:23Z")

</div>

[Added](https://github.com/eneoli/flakeshot/blob/63ee749f529997b84cff68719034cacedd3476cb/flake.nix#L42) but I’m still getting

````auto
(flakeshot:72854): GLib-GIO-ERROR **: 12:48:00.442: No GSettings schemas are installed on the system```
````

---

<div class="post-metadata">

### Author: ![jtojnar](https://discourse.nixos.org/user_avatar/discourse.nixos.org/jtojnar/32/70_2.png) [@jtojnar](https://discourse.nixos.org/u/jtojnar)
#### Post date: [January 10, 2024, 2:38pm UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/12 "2024-01-10T14:38:24Z")

</div>

The [GNOME section of the Nixpkgs manual](https://nixos.org/manual/nixpkgs/stable/#sec-language-gnome) explains what you need, in this case it is adding appropriate paths to `XDG_DATA_DIRS` environment variable. `wrapGAppsHook4` does do this correctly but [only for built derivations](https://github.com/NixOS/nixpkgs/blob/65676856ac717c356f8ab7d5e055ec46d290a611/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh#L18), not `devShell`s, so it will not help you with `cargo run`.

There is no mechanism for shells at the moment, you will need to apply a hack like `shellHook` from [Python + Qt woes - #2 by jtojnar](https://discourse.nixos.org/t/python-qt-woes/11808/2) with `gappsWrapperArgs` instead of `qtWrapperArgs` if you want to make it work.

* * *

> [@TornaxO7](#):
>
> with
> 
> ```auto
> mkdir -p ~/.local/share/glib-2.0/schemas
> cp -pi /nix/store/...-gtk+3-3.<LATEST>/share/gsettings-schemas/gtk+3-3.*/glib-2.0/schemas/gschemas.compiled ~/.local/share/glib-2.0/schema/
> 
> ```

Do not do that, it will break GTK programs if the schema is ever updated.

---

<div class="post-metadata">

### Author: ![TornaxO7](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tornaxo7/32/8409_2.png) [@TornaxO7](https://discourse.nixos.org/u/TornaxO7)
#### Post date: [January 10, 2024, 5:21pm UTC](https://discourse.nixos.org/t/which-package-includes-org-gtk-gtk4-settings-filechooser/38063/13 "2024-01-10T17:21:01Z")

</div>

damn… thank you for your answer!
