Table of Contents
i3 has been my window manager of choice for a while and I really enjoy its simplicity and ease of use. I use plenty of gtk applications, such as Firefox and Evolution, and configuring them within i3 can be confusing.
This post covers a few methods to change configurations for GNOME and gtk applications from i3.
Almost all of the gtk theming settings are available in lxappearance. You can change fonts, mouse cursors, icons, and colors. The application makes the changes easy to preview and you can install more icon sets if you wish.
Fedora already has lxappearance packaged and ready to go:
$ sudo dnf install lxappearance $ lxappearance
Although style changes are immediately applied in lxappearance, you need to restart all gtk applications to see the style changes there.
lxappearance writes GTK 2.0 and GTK 3.0 configuration files:
- GTK 2.0:
- GTK 3.0:
Recent versions of GNOME bundle all of the system settings into a single
gnome-control-center. This normally starts right up in
GNOME, but i3 is a little trickier since it doesn’t have some of the same
environment variables set:
$ gnome-control-center ** ERROR:../shell/cc-shell-model.c:458:cc_shell_model_set_panel_visibility: assertion failed: (valid)  837 abort (core dumped) gnome-control-center
The problem is a missing environment variable:
XDG_CURRENT_DESKTOP. We can
set that on the command line and everything works:
env XDG_CURRENT_DESKTOP=GNOME gnome-control-center
gnome-tweaks application has been around for a long time and it works
well from i3. Install it in Fedora and run it:
$ sudo dnf install gnome-tweaks $ gnome-tweaks
Although many of the configurations inside gnome-tweaks match up with lxappearance, gnome-tweaks offers an added benefit: it changes the configuration inside GNOME’s key-based configuration system (dconf). This is required for some applications, such as Firefox.
You can also open up
dconf-editor and make these changes manually in
/org/gnome/desktop/interface, but gnome-tweaks has a much more user-friendly
Photo credit: Julia Manzerova