73 lines
1.3 KiB
QML
73 lines
1.3 KiB
QML
pragma Singleton
|
|
|
|
import QtQuick
|
|
import Quickshell
|
|
import Quickshell.Io
|
|
import ZShell
|
|
import qs.Config
|
|
|
|
Singleton {
|
|
id: root
|
|
|
|
property alias enabled: props.enabled
|
|
|
|
function setHyprConf(): void {
|
|
Hypr.extras.applyOptions({
|
|
"animations.enabled": 0,
|
|
"decoration.shadow.enabled": 0,
|
|
"decoration.blur.enabled": 0,
|
|
"general.border_size": 0,
|
|
"decoration.rounding": 0
|
|
});
|
|
}
|
|
|
|
onEnabledChanged: {
|
|
if (enabled) {
|
|
setHyprConf();
|
|
if (Config.utilities.toasts.gameModeChanged)
|
|
Toaster.toast(qsTr("Game mode enabled"), qsTr("Disabled Hyprland animations, blur, shadows and corner radius"), "gamepad");
|
|
} else {
|
|
Hypr.extras.message("reload");
|
|
if (Config.utilities.toasts.gameModeChanged)
|
|
Toaster.toast(qsTr("Game mode disabled"), qsTr("Hyprland settings restored"), "gamepad");
|
|
}
|
|
}
|
|
|
|
PersistentProperties {
|
|
id: props
|
|
|
|
property bool enabled: Hypr.options.animations.enabled === 0
|
|
|
|
reloadableId: "gamemode"
|
|
}
|
|
|
|
Connections {
|
|
function onConfigReloaded(): void {
|
|
if (props.enabled)
|
|
root.setHyprConf();
|
|
}
|
|
|
|
target: Hypr
|
|
}
|
|
|
|
IpcHandler {
|
|
function disable(): void {
|
|
props.enabled = false;
|
|
}
|
|
|
|
function enable(): void {
|
|
props.enabled = true;
|
|
}
|
|
|
|
function isEnabled(): bool {
|
|
return props.enabled;
|
|
}
|
|
|
|
function toggle(): void {
|
|
props.enabled = !props.enabled;
|
|
}
|
|
|
|
target: "gameMode"
|
|
}
|
|
}
|