From a51a1c82dc6c8f5c9c3173159a56c079c166accc Mon Sep 17 00:00:00 2001 From: Eriq Taing Date: Mon, 11 May 2026 23:39:17 -0400 Subject: [PATCH] Added interactions into config --- common/Config.qml | 180 ++++++++++++++++++++++++---------------------- 1 file changed, 96 insertions(+), 84 deletions(-) diff --git a/common/Config.qml b/common/Config.qml index 6c3b286..c50b8e7 100644 --- a/common/Config.qml +++ b/common/Config.qml @@ -6,89 +6,101 @@ import Quickshell import Quickshell.Io Singleton { - id: root - property string filePath: Directories.shellConfigPath - property alias options: configOptionsJsonAdpater - property bool ready: false + id: root + property string filePath: Directories.shellConfigPath + property alias options: configOptionsJsonAdpater + property bool ready: false - FileView { - path: root.filePath - watchChanges: true - onFileChanged: reload() - onLoaded: root.ready = true - onLoadFailed: error => { - if (error == FileViewError.FileNotFound) { - writeAdapter(); - } + FileView { + path: root.filePath + watchChanges: true + onFileChanged: reload() + onLoaded: root.ready = true + onLoadFailed: error => { + if (error == FileViewError.FileNotFound) { + writeAdapter(); + } + } + + JsonAdapter { + id: configOptionsJsonAdpater + + property JsonObject appearance: JsonObject { + property bool extraBackgroundTint: true + property int fakeScreenRounding: 2 + property bool transparency: false + property JsonObject wallpaperTheming: JsonObject { + property bool enableAppsAndShell: true + property bool enableQtApps: true + property bool enableTerminal: true + } + property JsonObject palette: JsonObject { + property string type: "auto" // Allowed: auto, scheme-content, scheme-expressive, scheme-fidelity, scheme-fruit-salad, scheme-monochrome, scheme-neutral, scheme-rainbow, scheme-tonal-spot + } + } + + property JsonObject background: JsonObject { + property bool enabled: true + property string wallpaperPath: "/usr/share/hydro-os/DefaultBackground.png" + property string thumbnailPath: "" + } + + property JsonObject interactions: JsonObject { + property JsonObject scrolling: JsonObject { + property bool fasterTouchpadScroll: false // Enable faster scrolling with touchpad + property int mouseScrollDeltaThreshold: 120 // delta >= this then it gets detected as mouse scroll rather than touchpad + property int mouseScrollFactor: 120 + property int touchpadScrollFactor: 450 + } + property JsonObject deadPixelWorkaround: JsonObject { // Hyprland leaves out 1 pixel on the right for interactions + property bool enable: false + } + } + + property JsonObject bar: JsonObject { + property int height: 45 + property bool bottom: false // Instead of top + property int cornerStyle: 0 // 0: Hug | 1: Float | 2: Plain rectangle + property bool borderless: false // true for no grouping of items + property string topLeftIcon: "spark" // Options: distro, spark + property bool showBackground: true + property bool verbose: true + property JsonObject resources: JsonObject { + property bool alwaysShowSwap: true + property bool alwaysShowCpu: false + } + property list screenList: [] // List of names, like "eDP-1", find out with 'hyprctl monitors' command + property JsonObject utilButtons: JsonObject { + property bool showScreenSnip: true + property bool showColorPicker: false + property bool showMicToggle: false + property bool showKeyboardToggle: true + property bool showDarkModeToggle: true + property bool showPerformanceProfileToggle: false + } + property JsonObject workspaces: JsonObject { + property bool monochromeIcons: true + property int shown: 10 + property bool showAppIcons: true + property bool alwaysShowNumbers: false + property int showNumberDelay: 300 // milliseconds + } + } + + property JsonObject osd: JsonObject { + property int timeout: 1000 + } + + property JsonObject time: JsonObject { + // https://doc.qt.io/qt-6/qtime.html#toString + property string format: "hh:mm" + property string dateFormat: "ddd, dd/MM" + } + + property JsonObject windows: JsonObject { + property bool showTitlebar: true // Client-side decoration for shell apps + property bool centerTitle: true + } + } } - - JsonAdapter { - id: configOptionsJsonAdpater - - property JsonObject appearance: JsonObject { - property bool extraBackgroundTint: true - property int fakeScreenRounding: 2 - property bool transparency: false - property JsonObject wallpaperTheming: JsonObject { - property bool enableAppsAndShell: true - property bool enableQtApps: true - property bool enableTerminal: true - } - property JsonObject palette: JsonObject { - property string type: "auto" // Allowed: auto, scheme-content, scheme-expressive, scheme-fidelity, scheme-fruit-salad, scheme-monochrome, scheme-neutral, scheme-rainbow, scheme-tonal-spot - } - } - - property JsonObject background: JsonObject { - property bool enabled: true - property string wallpaperPath: "/usr/share/hydro-os/DefaultBackground.png" - property string thumbnailPath: "" - } - - property JsonObject bar: JsonObject { - property int height: 45 - property bool bottom: false // Instead of top - property int cornerStyle: 0 // 0: Hug | 1: Float | 2: Plain rectangle - property bool borderless: false // true for no grouping of items - property string topLeftIcon: "spark" // Options: distro, spark - property bool showBackground: true - property bool verbose: true - property JsonObject resources: JsonObject { - property bool alwaysShowSwap: true - property bool alwaysShowCpu: false - } - property list screenList: [] // List of names, like "eDP-1", find out with 'hyprctl monitors' command - property JsonObject utilButtons: JsonObject { - property bool showScreenSnip: true - property bool showColorPicker: false - property bool showMicToggle: false - property bool showKeyboardToggle: true - property bool showDarkModeToggle: true - property bool showPerformanceProfileToggle: false - } - property JsonObject workspaces: JsonObject { - property bool monochromeIcons: true - property int shown: 10 - property bool showAppIcons: true - property bool alwaysShowNumbers: false - property int showNumberDelay: 300 // milliseconds - } - } - - property JsonObject osd: JsonObject { - property int timeout: 1000 - } - - property JsonObject time: JsonObject { - // https://doc.qt.io/qt-6/qtime.html#toString - property string format: "hh:mm" - property string dateFormat: "ddd, dd/MM" - } - - property JsonObject windows: JsonObject { - property bool showTitlebar: true // Client-side decoration for shell apps - property bool centerTitle: true - } - } - } -} \ No newline at end of file +}