Linux – gnome-terminal do not start

gnome-terminallinux-mintlocale

I faced the problem when terminal do not start. I have look at related issue when locale do not supported. I have tried to update it, regenerate it – nothing help. Finally I have found next error message in /var/log/syslog

Dec 31 00:45:43 kes-X751SA console-kit-daemon[2215]: (process:3545): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Dec 31 00:45:48 kes-X751SA org.gnome.Terminal[2464]: Locale not supported.
Dec 31 00:45:57 kes-X751SA console-kit-daemon[2215]: (process:3562): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

Here is not clear. If I have wrong locale which locale is not supported??
How to check which locales are supported? How to apply supported locale?

Best Answer

Straight from the "Troubleshooting" section of the nosh Guide, under the "GNOME Terminal refuses to start" heading:

  • The GNOME Terminal server requires that a UTF-8 locale be configured in its LANG environment variable, and refuses to start if it is not. It cannot be just the C locale.

Note that the GNOME Terminal server is the org.gnome.Terminal service started, indirectly via the DBUS Broker, under your per-user service manager. It runs a program named gnome-terminal-server which is actually what provides the terminal emulator. It is not the gnome-terminal client command that you are directly running, which is just a control program for that server.

  • If you are letting the per-user/session DBUS broker spawn the server processes directly, which is the old but not recommended way of doing things, you need to ensure that your per-user/session DBUS broker is itself running in a UTF-8 locale.

    Since there are so many varied ways in which the DBUS broker can be invoked, exactly how you do this is beyond the scope of this answer.

  • If your DBUS broker is simply passing things along to a proper per-user service manager, which is the new and now recommended way of doing things, you need to ensure that the service definition for your per-user org.gnome.Terminal service sets a UTF-8 locale.

    How you do this depends from what per-user service manager you have. With nosh service management, for just one example, one just tweaks its service environment directory ($HOME/.config/service-bundles/services/org.gnome.Terminal/service/env) with the set-service-env command:

    system-control --user set-service-env org.gnome.Terminal LANG en_GB.UTF-8

    If you have systemd doing per-user service management, for another example, you'll need to inject an Environment= setting into /lib/systemd/user/gnome-terminal-server.service using the "drop-in" mechanism, which the systemd people do not document for per-user services.

You of course make sure that that locale actually exists as a locale definition on your system, too. It is no good adjusting to UTF-8 locale if there is no such UTF-8 locale definition present.

Further reading

Related Question