# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only

# Unified minimal abstraction for all UI application regardless of the desktop environment.

# When supported in apparmor, condition will be used in this abstraction to filter
# resources specific for supported DE.

  abi <abi/4.0>,

  include <abstractions/accessibility>
  include <abstractions/desktop-files>
  include <abstractions/fonts>
  include <abstractions/gschemas>
  include <abstractions/gtk-strict>
  include <abstractions/icons>
  include <abstractions/mime>
  include <abstractions/qt5>
  include <abstractions/recently-used>
  include <abstractions/themes>
  include <abstractions/user-dirs>
  include <abstractions/wayland>
  include <abstractions/X-strict>
  include <abstractions/xdg-desktop>

  # if @{DE} == gnome

    include if exists <abstractions/gnome-base>

  # else if @{DE} == kde

    include <abstractions/kde-base>

  # else if @{DE} == xfce

    include <abstractions/xfce-base>

  # end

  /usr/share/desktop-base/{,**} r,
  /usr/share/hwdata/*.ids r, # FIXME: a bit too wide
  /usr/share/icu/@{int}.@{int}/*.dat r,
  /usr/share/poppler/{,**} r,

  include if exists <abstractions/desktop.d>

# vim:syntax=apparmor
