# =========== #
#    Rules    #
# =========== #

#=================================================
# Windows rules
#=================================================

for_window [app_id="blueman-manager"] floating enable, resize set 40ppt 40ppt, move position center
for_window [app_id="Proton Pass"] floating enable, resize set 40ppt 40ppt, move position right top

# WHY: le sélecteur portal doit flotter et rester centré.
# CONTRACT: seul l'app_id dédié au wrapper Yazi reçoit ce placement ;
# la bordure serveur garantit la même politique que les autres flottantes.
for_window [app_id="labfy-yazi-filechooser"] floating enable, border pixel 2, move position center

# WHY: l'identifiant GTK de Swappy 1.8.0 est me.jtheoof.swappy (source
# application.c). La règle ne cible aucune autre fenêtre GTK.
# CONTRACT: garder l'éditeur accessible sur la sortie active, redimensionnable,
# avec la bordure serveur et les coins SwayFX déjà configurés globalement.
for_window [app_id="me.jtheoof.swappy"] floating enable, resize set 70ppt 70ppt, move position center, border pixel 2

# WHY: la mise à jour interactive doit rester lisible sans modifier le tiling.
# CONTRACT: installation et aperçu partagent cet app_id dédié ; les autres Kitty
# conservent leur placement. La taille relative reste adaptée à la sortie active.
for_window [app_id="^labfy-update-center$"] floating enable, resize set 65ppt 60ppt, move position center, border pixel 2

#=================================================
# Lardon
#=================================================

for_window [app_id="lardon-freecad-log"] floating enable
for_window [app_id="lardon-freecad-log"] resize set width 850 px height 360 px
for_window [app_id="lardon-freecad-log"] move position center
for_window [app_id="lardon-freecad-log"] border pixel 2

# WHY: les fenêtres CSD peuvent ignorer default_floating_border.
# CONTRACT: toute fenêtre créée flottante utilise une bordure serveur de 2 px,
# sans barre de titre ; client.* fournit Lavender au focus et Mocha hors focus.
# Les transitions ultérieures sont traitées par l'abonné IPC d'opacité existant.
for_window [floating] border pixel 2
