commit 79bb284ac3479f0481c7742060323a03ef455bea Author: ocbwoy3 Date: Thu Jan 22 21:06:21 2026 +0200 chore: init diff --git a/CONSTANTS.txt b/CONSTANTS.txt new file mode 100644 index 0000000..8b1e783 --- /dev/null +++ b/CONSTANTS.txt @@ -0,0 +1,18 @@ +1:1 dimensions + colors from deltarune in 1920x1080 fullscreen + +top bar: + width: 1312px + height: 182px + + text: #ffffff + + option items: + selected: #ffc90e + unselected: #614e6b + gap: 76px + top: 45px + + + selection soul offset frop top left: + x: 19 + y: 42 diff --git a/COPYRIGHT_NOTICE.txt b/COPYRIGHT_NOTICE.txt new file mode 100644 index 0000000..0f89a6b --- /dev/null +++ b/COPYRIGHT_NOTICE.txt @@ -0,0 +1,2 @@ +Asset & Copyright Disclaimer +DELTARUNE, its trademark and all related assets are Copyright (c) Toby Fox. diff --git a/DeltaruneQuickshell/DeltaruneTopbar.qml b/DeltaruneQuickshell/DeltaruneTopbar.qml new file mode 100644 index 0000000..6f31f1b --- /dev/null +++ b/DeltaruneQuickshell/DeltaruneTopbar.qml @@ -0,0 +1,69 @@ +pragma ComponentBehavior: Bound +import QtQuick + +import "topbar" + +Item { + id: topbar + implicitWidth: 1312 + implicitHeight: 182 + anchors.centerIn: parent + + property var iconSources: ["./item.png", "./equip.png", "./power.png", "./settings.png"] + property int iconCount: iconSources.length + property int selectedIndex: 0 + + function moveSelection(delta) { + if (iconCount <= 0) + return; + selectedIndex = (selectedIndex + delta + iconCount) % iconCount; + } + + onIconCountChanged: { + if (iconCount <= 0) { + selectedIndex = 0; + } else if (selectedIndex >= iconCount) { + selectedIndex = iconCount - 1; + } + } + + FocusScope { + id: focusScope + focus: true + anchors.fill: parent + Keys.onLeftPressed: topbar.moveSelection(-1) + Keys.onRightPressed: topbar.moveSelection(1) + Component.onCompleted: forceActiveFocus() + + Row { + id: iconRow + spacing: 76 + anchors.horizontalCenter: parent.horizontalCenter + y: 45 + + Repeater { + model: topbar.iconSources + + delegate: Item { + id: repeatitem + required property int index + width: 149 + height: 108 + + TopbarSettingIcon { + anchors.centerIn: parent + selected: topbar.selectedIndex == repeatitem.index + iconSource: topbar.iconSources[repeatitem.index] + } + + MouseArea { + anchors.fill: parent + onClicked: { + topbar.selectedIndex = repeatitem.index; + } + } + } + } + } + } +} diff --git a/DeltaruneQuickshell/border.png b/DeltaruneQuickshell/border.png new file mode 100644 index 0000000..f291e77 Binary files /dev/null and b/DeltaruneQuickshell/border.png differ diff --git a/DeltaruneQuickshell/topbar/TopbarSettingIcon.qml b/DeltaruneQuickshell/topbar/TopbarSettingIcon.qml new file mode 100644 index 0000000..ba8454b --- /dev/null +++ b/DeltaruneQuickshell/topbar/TopbarSettingIcon.qml @@ -0,0 +1,33 @@ +import QtQuick +import Qt5Compat.GraphicalEffects + +Item { + id: item + implicitWidth: 149 + implicitHeight: 108 + property url iconSource: "./settings.png" + property bool selected: false + readonly property color selectedColor: "#ffc90e" + readonly property color unselectedColor: "#614e6b" + state: selected ? "selected" : "" + + Image { + id: originalImage + source: item.iconSource + } + + ColorOverlay { + id: colorOverlay + anchors.fill: originalImage + source: originalImage + color: item.selected ? item.selectedColor : item.unselectedColor + } + + Image { + id: soul + source: "./soul.png" + x: 19 + y: 42 + visible: item.selected + } +} diff --git a/DeltaruneQuickshell/topbar/equip.png b/DeltaruneQuickshell/topbar/equip.png new file mode 100644 index 0000000..1423ff5 Binary files /dev/null and b/DeltaruneQuickshell/topbar/equip.png differ diff --git a/DeltaruneQuickshell/topbar/item.png b/DeltaruneQuickshell/topbar/item.png new file mode 100644 index 0000000..79c0b41 Binary files /dev/null and b/DeltaruneQuickshell/topbar/item.png differ diff --git a/DeltaruneQuickshell/topbar/power.png b/DeltaruneQuickshell/topbar/power.png new file mode 100644 index 0000000..02560d0 Binary files /dev/null and b/DeltaruneQuickshell/topbar/power.png differ diff --git a/DeltaruneQuickshell/topbar/settings.png b/DeltaruneQuickshell/topbar/settings.png new file mode 100644 index 0000000..0ffb8d3 Binary files /dev/null and b/DeltaruneQuickshell/topbar/settings.png differ diff --git a/DeltaruneQuickshell/topbar/soul.png b/DeltaruneQuickshell/topbar/soul.png new file mode 100644 index 0000000..b953cf8 Binary files /dev/null and b/DeltaruneQuickshell/topbar/soul.png differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..c52ff68 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# DeltaruneQuickshell + +A [Quickshell](https://quickshell.org/) shell inspired by Deltarune. diff --git a/shell.qml b/shell.qml new file mode 100644 index 0000000..194a6b3 --- /dev/null +++ b/shell.qml @@ -0,0 +1,19 @@ +import Quickshell // for PanelWindow +import QtQuick // for Text +import "DeltaruneQuickshell" + +PanelWindow { + anchors { + top: true + left: true + right: true + } + // exclusionMode:x ExclusionMode.Ignore + aboveWindows: true + focusable: false + + implicitHeight: 182 + color: "#000000" + + DeltaruneTopbar {} +}