The gtk abstraction

GTK/QT apps need to read some config files in order to properly render their windows in a graphical session. There are some qt5 abstractions already, but it looks like the gtk abstraction is missing. Here's what I've been using for some years now:

# vim:syntax=apparmor

  abi <abi/3.0>,

  /usr/share/themes/{,**} r,

  /usr/share/gtksourceview-[0-9]*/ r,
  /usr/share/gtksourceview-[0-9]*/** r,

  /usr/share/gtk-3.0/ r,
  /usr/share/gtk-3.0/settings.ini r,

  /etc/gtk-2.0/ r,
  /etc/gtk-2.0/gtkrc r,
  /etc/gtk-3.0/ r,
  /etc/gtk-3.0/*.conf r,

  /etc/gtk/gtkrc r,

  owner @{HOME}/.gtk r,
  owner @{HOME}/.gtkrc r,
  owner @{HOME}/.gtkrc-2.0 r,
  owner @{HOME}/.gtk-bookmarks r,
  owner @{HOME}/.config/gtkrc r,
  owner @{HOME}/.config/gtkrc-2.0 r,
  owner @{HOME}/.config/gtk-3.0/ rw,
  owner @{HOME}/.config/gtk-3.0/settings.ini r,
  owner @{HOME}/.config/gtk-3.0/bookmarks r,
  owner @{HOME}/.config/gtk-3.0/gtk.css r,

  # for gtk file dialog
  owner @{HOME}/.config/gtk-2.0/ rw,
  owner @{HOME}/.config/gtk-2.0/gtkfilechooser.ini* rw,

  # .Xauthority file required for X connections
  owner @{HOME}/.Xauthority r,

  # Xsession errors file
  owner @{HOME}/.xsession-errors w,

The *gtk* rules are basically the location of the GTK config files I found on the internet when I was trying to compose this abstraction. Some of the paths are missing in Debian, but different distros can use (or were using) them. Since GTK apps use themes, the abstraction also include the whole /usr/share/themes/ dir. I'm not sure whether this should be tightened. The .Xauthority file is generally needed when you deal with GUI apps under Xserver. Also since all GUI apps redirect output/error to the .xsession-errors file, this file also was included here. This rule also makes the #65 (closed) obsolete.

I haven't tested this abstraction with gtk4 (I currently don't have any gtk4 app), but probably some new rules will have to be added in the future to cover gtk4.

What do you think?