# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2026 Łukasz Kozak <lakis.kozak@gmail.com>
# SPDX-License-Identifier: GPL-2.0-only

abi <abi/4.0>,

include <tunables/global>

@{exec_path}  = @{bin}/plasma-apply-{colorscheme,cursortheme,desktoptheme,lookandfeel,wallpaperimage}
@{exec_path} += @{lib}/plasma-apply-aurorae @{lib}/@{multiarch}/libexec/plasma-apply-aurorae
@{exec_path} += @{lib}/plasma-changeicons @{lib}/@{multiarch}/libexec/plasma-changeicons
@{att} = ""
profile plasma-apply /{{,usr/}bin/plasma-apply-{colorscheme,cursortheme,desktoptheme,lookandfeel,wallpaperimage},{,usr/}lib{,exec,32,64}/plasma-apply-aurorae,{,usr/}lib{,exec,32,64}/*-linux-gnu*/libexec/plasma-apply-aurorae,{,usr/}lib{,exec,32,64}/plasma-changeicons,{,usr/}lib{,exec,32,64}/*-linux-gnu*/libexec/plasma-changeicons,{,usr/}lib{,exec,32,64}/plasma-apply-aurorae,{,usr/}lib{,exec,32,64}/*-linux-gnu*/libexec/plasma-apply-aurorae,{,usr/}lib{,exec,32,64}/plasma-changeicons,{,usr/}lib{,exec,32,64}/*-linux-gnu*/libexec/plasma-changeicons} {
  include <abstractions/base-strict>
  include <abstractions/common/kde>
  include <abstractions/kde-globals-write>

  @{exec_path} mrix,

  @{bin}/kbuildsycoca{,5,6} px,
  @{bin}/xrdb              rpx,

  /{,usr/}lib{,exec,32,64}/*-linux-gnu*/libexec/kwin-applywindowdecoration Px,
  /{,usr/}lib{,exec,32,64}/kwin-applywindowdecoration Px,

  @{sh_path} r,

  /usr/share/plasma/look-and-feel/{,**} r,
  /usr/share/plasma/desktoptheme/{,**} r,

        @{HOMEDIRS}/ r,
  owner @{HOME}/ r,

  owner @{user_config_dirs}/gtkrc@{atomic} rwlk -> @{user_config_dirs}/#@{int},
  owner @{user_config_dirs}/gtkrc-2.0@{atomic} rwlk -> @{user_config_dirs}/#@{int},
  owner @{user_config_dirs}/kcminputrc@{atomic} rwlk -> @{user_config_dirs}/#@{int},
  owner @{user_config_dirs}/plasmarc@{atomic} rwlk -> @{user_config_dirs}/#@{int},
  owner @{user_config_dirs}/Trolltech.conf@{atomic} rwlk -> @{user_config_dirs}/#@{int},

  owner @{user_share_dirs}/plasma/look-and-feel/{,**} r,
  owner @{user_share_dirs}/plasma/desktoptheme/{,**} r,
  owner @{user_share_dirs}/wallpapers/{,**} r,

  owner @{tmp}/#@{int} rw,
  owner @{tmp}/plasma-apply-*.@{rand6} rwl -> @{tmp}/#@{int},

  @{PROC}/sys/kernel/random/boot_id r,

  /dev/tty rw,

  include if exists <local/plasma-apply>
}

# vim:syntax=apparmor
