forked from Shinonome/alt-illogical-impulse
ac6d3adeb9
BREAKING CHANGE: Remove external dots-hyprland dependency - Imported all essential configs from dots-hyprland/installer-replication - Added complete configs/ directory with: - hypr/ - Hyprland configuration - quickshell/ - Quickshell widgets and config - applications/ - Application configurations - scripts/ - Utility scripts - matugen/ - Material You theming - Updated flake.nix to use local ./configs instead of external repo - Simplified update-flake script (removed external repo management) - Updated README to reflect self-contained architecture - All builds pass with local configurations Benefits: - No external repository dependencies - Faster builds (no network dependencies) - Version controlled configs in single repo - Easier maintenance and development - Complete installer replication in one place
72 lines
2.0 KiB
QML
72 lines
2.0 KiB
QML
import QtQuick
|
|
import Quickshell
|
|
import Quickshell.Hyprland
|
|
import Quickshell.Io
|
|
pragma Singleton
|
|
pragma ComponentBehavior: Bound
|
|
|
|
Singleton {
|
|
id: root
|
|
property bool barOpen: true
|
|
property bool sidebarLeftOpen: false
|
|
property bool sidebarRightOpen: false
|
|
property bool mediaControlsOpen: false
|
|
property bool osdBrightnessOpen: false
|
|
property bool osdVolumeOpen: false
|
|
property bool oskOpen: false
|
|
property bool overviewOpen: false
|
|
property bool sessionOpen: false
|
|
property bool workspaceShowNumbers: false
|
|
property bool superReleaseMightTrigger: true
|
|
property bool screenLocked: false
|
|
property bool screenLockContainsCharacters: false
|
|
|
|
property real screenZoom: 1
|
|
onScreenZoomChanged: {
|
|
Quickshell.execDetached(["hyprctl", "keyword", "cursor:zoom_factor", root.screenZoom.toString()]);
|
|
}
|
|
Behavior on screenZoom {
|
|
NumberAnimation { duration: 200; easing.type: Easing.OutCubic }
|
|
// animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this)
|
|
}
|
|
|
|
// When user is not reluctant while pressing super, they probably don't need to see workspace numbers
|
|
onSuperReleaseMightTriggerChanged: {
|
|
workspaceShowNumbersTimer.stop()
|
|
}
|
|
|
|
Timer {
|
|
id: workspaceShowNumbersTimer
|
|
interval: 500 // Config.options.bar.workspaces.showNumberDelay
|
|
// interval: 0
|
|
repeat: false
|
|
onTriggered: {
|
|
workspaceShowNumbers = true
|
|
}
|
|
}
|
|
|
|
GlobalShortcut {
|
|
name: "workspaceNumber"
|
|
description: "Hold to show workspace numbers, release to show icons"
|
|
|
|
onPressed: {
|
|
workspaceShowNumbersTimer.start()
|
|
}
|
|
onReleased: {
|
|
workspaceShowNumbersTimer.stop()
|
|
workspaceShowNumbers = false
|
|
}
|
|
}
|
|
|
|
IpcHandler {
|
|
target: "zoom"
|
|
|
|
function zoomIn() {
|
|
screenZoom = Math.min(screenZoom + 0.4, 3.0)
|
|
}
|
|
|
|
function zoomOut() {
|
|
screenZoom = Math.max(screenZoom - 0.4, 1)
|
|
}
|
|
}
|
|
} |