2

I am running/using mate 1.20.2 amd using caja as my file and folder explorer (GUI-based) .

I have tried to figure out where caja puts it preferences but have failed.

$ caja --version
MATE caja 1.20.2

I tried to first see in .config/caja if it has what I'm looking for -

~/.config/mate$ ls
eom  panel2.d

Neither of the two folders had anything interesting contents.

Then I tried -

:~/.cache/mate$ ls
background

and even there I couldn't find any info.

I also looked at dpkg -L caja and saw /usr/share/metainfo/caja.appdata.xml but could not find anything which explains where it might be.

Even the F1 built right in caja doesn't tell anything .

Can somebody help to find out where it is ?

5
  • $HOME/.config/caja/ : accels, desktop-metadata* May 15, 2018 at 7:38
  • 1
    And at least some preferences are in the gsettings/dconf database.
    – muru
    May 15, 2018 at 13:34
  • but the "open with" configuration is not there either :(
    – U.V.
    Mar 18, 2019 at 11:49
  • that is what I was trying to say and I'm now at 1.20.4 . I guess we have to look at 1.22.x release or beyond for that feature.
    – shirish
    Mar 18, 2019 at 15:12
  • oh no, not so long. mine is full of BS and almost unusable. I really need to clean this up!!!
    – U.V.
    Jun 5, 2020 at 11:06

2 Answers 2

2

Sorry, this is a long answer. I hope you learn something from it, but I tried to most directly answer your question in the next paragraph and then use the rest of the answer to elaborate on what this means for editing settings outside the caja GUI itself.

A lot of caja's info and settings can usually be found stored in a dconf GVariant database (a binary file), the same as many other GUI programs use. The file is likely stored in ~/.config/dconf/user.

Not all of Caja's functionality is changed using dconf (for instance, file associations are handled separately and independently of Caja itself per freedesktop.org's specifications), but in a general sense the dconf database is likely where you need to be looking.

Note that the following presumes caja is using dconf, which is only true when $GSETTINGS_BACKEND is not set or is set to dconf in caja's environment (it uses dconf in probably at least 90% of all installs, and by default in Debian/Ubuntu/Mint). If the variable is set equal to gconf, the same basic idea applies but different tools are used and the settings are likely saved in XML files under ~/.gconf instead of in a binary database.

For most users, dconf has largely replaced gconf for a few years and MATE uses dconf by default. One can also directly use the gsettings CLI tool to largely bypass this confusion (technically MATE is using gsettings (a part of GIO), which can use either), but the dconf syntax is very nice. Nearly everyone using MATE will be using dconf, and this can be easily adapted to using gconf if necessary as it mostly works similarly from a user perspective.

You can use either a GUI like dconf-editor or a CLI program like dconf to manipulate dconf's database. For simple edits I tend to prefer the GUI, despite not being a huge fan of its Gnome3-style look (personally). However, the dconf CLI tool is quite handy if you want to use a text editor to tweak things or want to do changes programmatically. Thus, the following is a run-down on the dconf CLI tool and a few suggestions based on how I've used it in the past.

In Debian (and presumably Ubuntu, Linux Mint, and so forth), the dconf-editor GUI is in the dconf-editor package, while the CLI tool is in dconf-cli. In the distant past when I used Mint, this also was true.

For CLI usage, a few examples can be handy. So using dconf (the CLI tool), to dump all settings for caja, you can do

$ dconf dump /org/mate/caja/

Where /org/mate/caja/ is the internal 'key' in the database file. Note that the dconf tool requires that all keys end with trailing slashes. If you want, you can redirect dconf's output to a file, edit the file more traditionally, and then restore it:

$ dconf dump /org/mate/caja/ > cajaprefs.txt
$ $EDITOR cajaprefs.txt
$ dconf load /org/mate/caja/ < cajaprefs.txt

…Where $EDITOR is your editor of choice (I like emacs a lot, but the MATE default editor would be pluma).

Somewhat interestingly, dconf load [PATH] restores the data passed on stdin. Due to this, I use < to take input from a file, but one could also do cat cajaprefs.txt | dconf load /org/mate/caja/. My method simply avoids a cat process being spawned but they should both function the same way.

By substituting / for /org/mate/caja/, one could also export the entire database in text form. Note that this can potentially be dangerous if misused, but it's also quite handy sometimes for searching through the database.

You can also read or write an individual setting with single commands, such as:

$ dconf read /org/mate/caja/preferences/use-iec-units
false
$ dconf write /org/mate/caja/preferences/use-iec-units true

Note that I think you may have to restart caja for these settings to stick if applied outside its own GUI. It can vary between programs how they deal with manual changes to the dconf database. I use Caja, but within FVWM instead of MATE these days so it's possible some background service isn't running that would normally handle things like this.

dconf help or dconf help [COMMAND] can be useful in figuring out further usage.

Additionally, you can find the system-wide defaults and the general schema information in the system's schema directory. This is often either the value of $GSETTINGS_SCHEMA_DIR, or usually /usr/share/glib-2.0/schemas/org.mate.caja.gschema.xml if not set. Debian uses this path and so does Mint last I checked. These XML files also usually include a textual description of what various settings actually do, which is a handy reference point. You can also read the descriptions using external tools like this one if that's more your cup of tea than looking at XML files.

0

I think this is now in the mime configuration. There are many locations which roughly relate to the number of repetitions in the open with dialog! Probably the algorithm is not clean enough for the many repititions of the config file.

  • /home/user/.config/mimeapps.list
  • /home/user/.local/share/applications/mimeinfo.cache
  • /var/lib/flatpak/exports/share/applications/mimeinfo.cache
  • /var/lib/snapd/desktop/applications/mimeinfo.cache
  • /usr/share/applications/mimeinfo.cache
  • /usr/share/mime/mime.cache

for xfce4 there is an extra app /usr/bin/xfce4-mime-settings

The way to get more insight is to check what the filemanager(caja) or the mime-settings app is reading:
strace caja |& grep -E "stat|access|open" | grep -v ENOENT | grep mime

however this is still a tedious job. I managed to move some config files out of the way and it got a bit better but not yet perfect :(

2
  • $HOME/.config/mimeapps.list is the relevant information. I managed to open text/directory with my preferred app
    – U.V.
    Jun 5, 2020 at 12:02
  • 1
    Were they looking for default program settings? Because I don't see where they specified that in the question
    – Wyatt Ward
    Jun 5, 2020 at 18:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.