pragma Singleton pragma ComponentBehavior: Bound import QtQuick import Quickshell import qs.modules.common.models.hyprland Singleton { id: root readonly property string shaderPath: Quickshell.shellPath("services/hyprlandAntiFlashbangShader/anti-flashbang.glsl") readonly property string weakShaderPath: Quickshell.shellPath("services/hyprlandAntiFlashbangShader/anti-flashbang-weak.glsl") property bool enabled: confOpt.value == shaderPath || weak property bool weak: confOpt.value == weakShaderPath function enable() { HyprlandConfig.setMany({ "decoration:screen_shader": root.shaderPath, "debug:damage_tracking": 1, // Turn off dmg tracking to prevent weird flashes. 1 = monitor only }); } function enableWeak() { HyprlandConfig.setMany({ "decoration:screen_shader": root.weakShaderPath, "debug:damage_tracking": 1, }); } function disable() { HyprlandConfig.resetMany([ "decoration:screen_shader", "debug:damage_tracking" ]); } function toggle() { if (root.enabled) disable() else enable() } function cycle() { if (!enabled) { enableWeak(); } else if (weak) { enable(); } else { disable(); } } HyprlandConfigOption { id: confOpt key: "decoration:screen_shader" } }