Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

Notable changes to Syncshell for Omarchy are documented here.

## 0.2.3 - 2026-10-19

- qualify Omarchy palette references for compatibility with Omarchy 4.0.5 and
Qt 6.12
- fix nested submenu dismissal and preserve unsaved folder-sharing selections
during background refreshes

## 0.2.2 - 2026-10-06

- render unaccepted remote-device names as plain text in Illogical Impulse and
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,8 @@ See [CHANGELOG.md](CHANGELOG.md) for details.
| Release | Date | What changed |
| ------- | ---------- | ------------------------------------------------------- |
| Future | TBD | mature alpha DMS, II, Caelestia, and Waybar adapters |
| 0.2.3 | 2026-10-19 | support Omarchy 4.0.5 and Qt 6.12 palette references |
| | | fix submenu dismissal and preserve sharing selections |
| 0.2.2 | 2026-10-06 | secure pending-device dismissal confirmations |
| 0.2.1 | 2026-10-05 | render pending device names as plain text in adapters |
| 0.2.0 | 2026-10-05 | improve multi-folder navigation, search, and filtering |
Expand Down
7 changes: 4 additions & 3 deletions hosts/omarchy/OmarchyPanel.qml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import QtQuick
import Quickshell
import Quickshell.Io
import qs.Commons
import qs.Commons as Commons
import qs.Ui
import "ui"
import "ui/UiConstants.js" as UiConstants
Expand All @@ -17,8 +18,8 @@ Panel {
ipcTarget: moduleName

readonly property var syncthing: bar && bar.shell && moduleName ? bar.shell.serviceFor(moduleName) : null
readonly property color foreground: bar ? bar.foreground : Color.foreground
readonly property color urgent: bar ? bar.urgent : Color.urgent
readonly property color foreground: bar ? bar.foreground : Commons.Color.foreground
readonly property color urgent: bar ? bar.urgent : Commons.Color.urgent
readonly property color warning: syncthing ? syncthing.warning : ThemePaletteModel.DefaultYellow
readonly property color success: syncthing ? syncthing.success : ThemePaletteModel.DefaultGreen
readonly property color syncActivityColor: syncthing ? syncthing.syncActivityColor : ThemePaletteModel.DefaultCyan
Expand Down Expand Up @@ -220,7 +221,7 @@ Panel {
if (state === "SYNCING")
return warning;
if (state === "UNKNOWN")
return Color.muted;
return Commons.Color.muted;
if (state === "ERROR")
return urgent;
return success;
Expand Down
3 changes: 2 additions & 1 deletion hosts/omarchy/controllers/SettingsController.qml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import QtQuick
import Quickshell
import Quickshell.Io
import qs.Commons
import qs.Commons as Commons
import "../models/SettingsModel.js" as SettingsModel

QtObject {
Expand Down Expand Up @@ -437,7 +438,7 @@ QtObject {
}

property Connections themeConnections: Connections {
target: Color
target: Commons.Color
function onBackgroundChanged() {
root.scheduleThemeRefresh();
}
Expand Down
5 changes: 3 additions & 2 deletions hosts/omarchy/ui/AcceptRemoteDeviceForm.qml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import qs.Commons
import qs.Commons as Commons
import qs.Ui

Item {
Expand All @@ -12,9 +13,9 @@ Item {
property var device
property bool submitting: false
property string nameText: ""
property color foreground: Color.foreground
property color foreground: Commons.Color.foreground
property color dim: Qt.darker(foreground, 1.5)
property color urgent: Color.urgent
property color urgent: Commons.Color.urgent
property string fontFamily: Style.font.family

signal canceled
Expand Down
5 changes: 3 additions & 2 deletions hosts/omarchy/ui/AddFolderForm.qml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import qs.Commons
import qs.Commons as Commons
import qs.Ui

Item {
Expand All @@ -10,9 +11,9 @@ Item {
property var controller
property var syncthing
property bool folderPickerRunning: false
property color foreground: Color.foreground
property color foreground: Commons.Color.foreground
property color dim: Qt.darker(foreground, 1.5)
property color urgent: Color.urgent
property color urgent: Commons.Color.urgent
required property color warning
property string fontFamily: Style.font.family
property alias pathText: addPathField.text
Expand Down
5 changes: 3 additions & 2 deletions hosts/omarchy/ui/AddRemoteDeviceForm.qml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import QtQuick
import QtQuick.Controls
import qs.Commons
import qs.Commons as Commons
import qs.Ui

Item {
Expand All @@ -12,9 +13,9 @@ Item {
property string sourceId: ""
property string deviceId: ""
property string deviceName: ""
property color foreground: Color.foreground
property color foreground: Commons.Color.foreground
property color dim: Qt.darker(foreground, 1.5)
property color urgent: Color.urgent
property color urgent: Commons.Color.urgent
required property color warning
property string fontFamily: Style.font.family
readonly property bool popupOpen: sourceSelector.popupOpen
Expand Down
11 changes: 6 additions & 5 deletions hosts/omarchy/ui/BusyButton.qml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import QtQuick
import qs.Commons
import qs.Commons as Commons
import qs.Ui

Item {
Expand All @@ -16,12 +17,12 @@ Item {
property bool bordered: false
property bool focusable: false
property bool hasCursor: false
property color foreground: Color.foreground
property color foreground: Commons.Color.foreground
property color busyForeground: foreground
property color disabledForeground: Qt.darker(foreground, 1.6)
property color tooltipBackground: Color.tooltip.background
property color tooltipForeground: Color.tooltip.text
property color tooltipBorder: Color.tooltip.border
property color tooltipBackground: Commons.Color.tooltip.background
property color tooltipForeground: Commons.Color.tooltip.text
property color tooltipBorder: Commons.Color.tooltip.border
property string fontFamily: Style.font.family
property real fontSize: Style.font.body
property real iconSize: Style.font.icon
Expand Down Expand Up @@ -88,7 +89,7 @@ Item {
visible: !root.interactive
color: "transparent"
radius: Style.cornerRadius
borderSpec: root.bordered ? Border.controlSpec("normal", root.inertForeground, Color.accent) : Border.none()
borderSpec: root.bordered ? Border.controlSpec("normal", root.inertForeground, Commons.Color.accent) : Border.none()

HoverHandler {
id: inertHover
Expand Down
17 changes: 9 additions & 8 deletions hosts/omarchy/ui/ChoiceDialog.qml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ pragma ComponentBehavior: Bound

import QtQuick
import qs.Commons
import qs.Commons as Commons
import qs.Ui

FocusScope {
Expand All @@ -16,8 +17,8 @@ FocusScope {
property int initialChoice: 0
property string busyText: "Applying Syncthing setting..."
property string fontFamily: Style.font.family
readonly property var cardBorderSpec: Border.surfaceSpec("menu", "border", Color.menu.border, Math.max(1, Style.space(1)))
readonly property var selectedBorderSpec: Border.surfaceSpec("menu", "selected-border", Color.menu.selectedBorder, 0)
readonly property var cardBorderSpec: Border.surfaceSpec("menu", "border", Commons.Color.menu.border, Math.max(1, Style.space(1)))
readonly property var selectedBorderSpec: Border.surfaceSpec("menu", "selected-border", Commons.Color.menu.selectedBorder, 0)

signal actionRequested(int index)

Expand Down Expand Up @@ -48,7 +49,7 @@ FocusScope {

Rectangle {
anchors.fill: parent
color: Color.menu.scrim
color: Commons.Color.menu.scrim

MouseArea {
anchors.fill: parent
Expand All @@ -59,7 +60,7 @@ FocusScope {
height: content.implicitHeight + Style.spacing.panelPadding * 2
anchors.centerIn: parent
radius: Style.cornerRadius
color: Color.menu.background
color: Commons.Color.menu.background
borderSpec: root.cardBorderSpec

MouseArea {
Expand All @@ -80,7 +81,7 @@ FocusScope {
bottomPadding: Style.spacing.sm
text: root.message
textFormat: Text.PlainText
color: Color.menu.text
color: Commons.Color.menu.text
font.family: root.fontFamily
font.pixelSize: Style.font.body
wrapMode: Text.Wrap
Expand All @@ -98,7 +99,7 @@ FocusScope {
width: content.width
height: Math.max(Style.space(40), choiceText.implicitHeight + Style.spacing.md * 2)
radius: Style.cornerRadius
color: root.selectedChoice === index ? Color.menu.selectedBackground : "transparent"
color: root.selectedChoice === index ? Commons.Color.menu.selectedBackground : "transparent"
borderSpec: root.selectedChoice === index ? root.selectedBorderSpec : Border.none()

Text {
Expand All @@ -109,7 +110,7 @@ FocusScope {
anchors.margins: Style.spacing.md
text: choiceRow.modelData
textFormat: Text.PlainText
color: root.selectedChoice === choiceRow.index ? Color.menu.selectedText : Color.menu.text
color: root.selectedChoice === choiceRow.index ? Commons.Color.menu.selectedText : Commons.Color.menu.text
font.family: root.fontFamily
font.pixelSize: Style.font.caption
wrapMode: Text.Wrap
Expand All @@ -132,7 +133,7 @@ FocusScope {
topPadding: Style.spacing.sm
text: root.busyText
textFormat: Text.PlainText
color: Util.alpha(Color.menu.text, 0.66)
color: Util.alpha(Commons.Color.menu.text, 0.66)
font.family: root.fontFamily
font.pixelSize: Style.font.caption
horizontalAlignment: Text.AlignRight
Expand Down
15 changes: 8 additions & 7 deletions hosts/omarchy/ui/CompactConfirmDialog.qml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ pragma ComponentBehavior: Bound

import QtQuick
import qs.Commons
import qs.Commons as Commons
import qs.Ui

Item {
Expand All @@ -15,11 +16,11 @@ Item {
property bool confirmFirst: false
property bool equalWidthActions: false
property bool destructiveConfirmation: true
property color background: Color.background
property color foreground: Color.foreground
property color background: Commons.Color.background
property color foreground: Commons.Color.foreground
property color scrim: Util.alpha(background, 0.7)
property color selectedBackground: Util.alpha(Color.foreground, 0.08)
property color selectedText: Color.accent
property color selectedBackground: Util.alpha(Commons.Color.foreground, 0.08)
property color selectedText: Commons.Color.accent
property string fontFamily: Style.font.family

signal canceled
Expand Down Expand Up @@ -113,15 +114,15 @@ Item {

width: root.equalWidthActions ? (actions.width - actions.spacing) / 2 : Style.space(76)
height: Style.spacing.controlHeight
color: actionButton.selected ? (actionButton.destructive ? Util.alpha(Color.urgent, 0.22) : root.selectedBackground) : "transparent"
borderSpec: Border.flat(actionButton.destructive ? (actionButton.selected ? Color.urgent : Util.alpha(Color.urgent, 0.56)) : (actionButton.selected ? root.selectedText : Util.alpha(root.foreground, 0.38)), Style.normalBorderWidth)
color: actionButton.selected ? (actionButton.destructive ? Util.alpha(Commons.Color.urgent, 0.22) : root.selectedBackground) : "transparent"
borderSpec: Border.flat(actionButton.destructive ? (actionButton.selected ? Commons.Color.urgent : Util.alpha(Commons.Color.urgent, 0.56)) : (actionButton.selected ? root.selectedText : Util.alpha(root.foreground, 0.38)), Style.normalBorderWidth)
radius: 0

Text {
anchors.centerIn: parent
text: actionButton.modelData.text
textFormat: Text.PlainText
color: actionButton.destructive ? (actionButton.selected ? Color.urgent : root.foreground) : (actionButton.selected ? root.selectedText : root.foreground)
color: actionButton.destructive ? (actionButton.selected ? Commons.Color.urgent : root.foreground) : (actionButton.selected ? root.selectedText : root.foreground)
font.family: root.fontFamily
font.pixelSize: Style.font.caption
}
Expand Down
9 changes: 5 additions & 4 deletions hosts/omarchy/ui/DeviceCard.qml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import QtQuick
import qs.Commons
import qs.Commons as Commons
import qs.Ui

BorderSurface {
Expand All @@ -10,8 +11,8 @@ BorderSurface {
property bool mutationBusy: false
property bool actionBusy: false
property string stateLabel: "DISCONNECTED"
property color stateColor: Color.muted
property color foreground: Color.foreground
property color stateColor: Commons.Color.muted
property color foreground: Commons.Color.foreground
property color dim: Qt.darker(foreground, 1.5)
required property color warning
property string fontFamily: Style.font.family
Expand All @@ -33,7 +34,7 @@ BorderSurface {

implicitHeight: nameActions.implicitHeight + details.implicitHeight + Style.space(14)
color: "transparent"
borderSpec: Border.controlSpec("normal", cardBorderColor, Color.accent)
borderSpec: Border.controlSpec("normal", cardBorderColor, Commons.Color.accent)
radius: Style.cornerRadius

Row {
Expand Down Expand Up @@ -95,7 +96,7 @@ BorderSurface {
width: implicitWidth
height: nameActions.height
color: "transparent"
borderSpec: Border.withWidth(Border.controlSpec("normal", root.stateColor, Color.accent), "0 0 1 1")
borderSpec: Border.withWidth(Border.controlSpec("normal", root.stateColor, Commons.Color.accent), "0 0 1 1")
radius: 0

Text {
Expand Down
5 changes: 3 additions & 2 deletions hosts/omarchy/ui/DeviceFoldersForm.qml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import QtQuick
import qs.Commons
import qs.Commons as Commons
import qs.Ui

Item {
Expand All @@ -10,8 +11,8 @@ Item {
property var device
property bool submitting: false
property var draftFolderIds: []
property color foreground: Color.foreground
property color urgent: Color.urgent
property color foreground: Commons.Color.foreground
property color urgent: Commons.Color.urgent
required property color warning
property string fontFamily: Style.font.family
readonly property bool popupOpen: folderPicker.popupOpen
Expand Down
9 changes: 5 additions & 4 deletions hosts/omarchy/ui/FolderCard.qml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import QtQuick
import qs.Commons
import qs.Commons as Commons
import qs.Ui

BorderSurface {
Expand All @@ -16,9 +17,9 @@ BorderSurface {
property string activityDots: ""
property string activityDetail: ""
property string activityAction: ""
property color foreground: Color.foreground
property color foreground: Commons.Color.foreground
property color dim: Qt.darker(foreground, 1.5)
property color urgent: Color.urgent
property color urgent: Commons.Color.urgent
required property color warning
required property color success
required property color syncColor
Expand All @@ -40,7 +41,7 @@ BorderSurface {

implicitHeight: nameActions.implicitHeight + details.implicitHeight + Style.space(14)
color: "transparent"
borderSpec: Border.controlSpec("normal", cardBorderColor, Color.accent)
borderSpec: Border.controlSpec("normal", cardBorderColor, Commons.Color.accent)
radius: Style.cornerRadius

Row {
Expand Down Expand Up @@ -102,7 +103,7 @@ BorderSurface {
width: implicitWidth
height: nameActions.height
color: "transparent"
borderSpec: Border.withWidth(Border.controlSpec("normal", root.stateColor, Color.accent), "0 0 1 1")
borderSpec: Border.withWidth(Border.controlSpec("normal", root.stateColor, Commons.Color.accent), "0 0 1 1")
radius: 0

Text {
Expand Down
5 changes: 3 additions & 2 deletions hosts/omarchy/ui/FolderOverview.qml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Layouts
import qs.Commons
import qs.Commons as Commons
import qs.Ui

Column {
Expand All @@ -12,9 +13,9 @@ Column {
required property Item cardAnchor
property Item addTrigger: addFolderButton
property var syncthing: null
property color foreground: Color.foreground
property color foreground: Commons.Color.foreground
property color dim: Qt.darker(foreground, 1.5)
property color urgent: Color.urgent
property color urgent: Commons.Color.urgent
required property color warning
required property color success
required property color syncColor
Expand Down
Loading
Loading