Skip to content

Commit 7199fbd

Browse files
committed
fix: sync WhaleOS crash fixes and desktop improvements from patch-1
- main.cpp: remove deferred geometry timer that caused crash on close - systemmanager.h: remove wl-paste/xclip ghost window spawning, use pure QClipboard for copy/paste (fixes ghost windows) - Remove obsolete: clipboard-sync.sh, patch-gui-service.sh, warm-desert.png - Simplified AgentsApp, AppsApp, FileManagerApp, McpApp, ProvidersApp, SettingsApp, SkillsApp with Cyber Glass theme consistency - api.js: cleaned up unused endpoints
1 parent aa56962 commit 7199fbd

23 files changed

Lines changed: 3409 additions & 3198 deletions

packages/whaleos/AgentsApp.qml

Lines changed: 32 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,8 @@ Rectangle {
128128
// Coordination Button
129129
Rectangle {
130130
width: coordBtnRow.width + 28; height: Math.round(36 * root.sf); radius: Math.round(8 * root.sf)
131-
color: coordBtnMa.containsMouse ? Qt.rgba(0, 0, 0, 0.05) : Qt.rgba(0, 0, 0, 0.02)
132-
border.color: root.borderColor; border.width: 1
131+
color: coordBtnMa.containsMouse ? Qt.rgba(1, 1, 1, 0.08) : Qt.rgba(1, 1, 1, 0.04)
132+
border.color: Qt.rgba(1, 1, 1, 0.1); border.width: 1
133133

134134
Row {
135135
id: coordBtnRow; anchors.centerIn: parent; spacing: Math.round(6 * root.sf)
@@ -196,7 +196,7 @@ Rectangle {
196196

197197
Text {
198198
text: "Multi-Agent Coordination"
199-
font.pixelSize: Math.round(16 * root.sf); font.weight: Font.DemiBold; color: root.textPrimary
199+
font.pixelSize: Math.round(16 * root.sf); font.weight: Font.DemiBold; color: "#fff"
200200
}
201201

202202
Text {
@@ -214,8 +214,8 @@ Rectangle {
214214
// Auto button
215215
Rectangle {
216216
width: Math.round(80 * root.sf); height: Math.round(30 * root.sf); radius: root.radiusSm
217-
color: coordMode === "auto" ? root.accentBlue : Qt.rgba(0, 0, 0, 0.04)
218-
border.color: coordMode === "auto" ? root.accentBlue : root.borderColor; border.width: 1
217+
color: coordMode === "auto" ? root.accentBlue : Qt.rgba(1, 1, 1, 0.06)
218+
border.color: coordMode === "auto" ? root.accentBlue : Qt.rgba(1, 1, 1, 0.1); border.width: 1
219219

220220
Text { anchors.centerIn: parent; text: "Auto"; font.pixelSize: Math.round(12 * root.sf); font.weight: Font.Medium; color: coordMode === "auto" ? "#fff" : root.textSecondary }
221221
MouseArea { anchors.fill: parent; cursorShape: Qt.PointingHandCursor; onClicked: coordMode = "auto" }
@@ -224,8 +224,8 @@ Rectangle {
224224
// Manual button
225225
Rectangle {
226226
width: Math.round(80 * root.sf); height: Math.round(30 * root.sf); radius: root.radiusSm
227-
color: coordMode === "manual" ? root.accentBlue : Qt.rgba(0, 0, 0, 0.04)
228-
border.color: coordMode === "manual" ? root.accentBlue : root.borderColor; border.width: 1
227+
color: coordMode === "manual" ? root.accentBlue : Qt.rgba(1, 1, 1, 0.06)
228+
border.color: coordMode === "manual" ? root.accentBlue : Qt.rgba(1, 1, 1, 0.1); border.width: 1
229229

230230
Text { anchors.centerIn: parent; text: "Manual"; font.pixelSize: Math.round(12 * root.sf); font.weight: Font.Medium; color: coordMode === "manual" ? "#fff" : root.textSecondary }
231231
MouseArea { anchors.fill: parent; cursorShape: Qt.PointingHandCursor; onClicked: coordMode = "manual" }
@@ -263,7 +263,7 @@ Rectangle {
263263
Row { spacing: Math.round(8 * root.sf)
264264
Text {
265265
text: modelData.name || "Agent"
266-
font.pixelSize: Math.round(14 * root.sf); font.weight: Font.DemiBold; color: root.textPrimary
266+
font.pixelSize: Math.round(14 * root.sf); font.weight: Font.DemiBold; color: "#fff"
267267
}
268268
// DEFAULT badge
269269
Rectangle {
@@ -284,7 +284,7 @@ Rectangle {
284284
// Toggle switch
285285
Rectangle {
286286
width: Math.round(44 * root.sf); height: Math.round(24 * root.sf); radius: 12
287-
color: modelData.enabled ? root.accentBlue : Qt.rgba(0, 0, 0, 0.15)
287+
color: modelData.enabled ? root.accentBlue : Qt.rgba(1, 1, 1, 0.15)
288288

289289
Behavior on color { ColorAnimation { duration: 200 } }
290290

@@ -327,8 +327,8 @@ Rectangle {
327327

328328
Rectangle {
329329
width: capText.width + 14; height: Math.round(22 * root.sf); radius: 4
330-
color: Qt.rgba(0, 0, 0, 0.03)
331-
border.color: root.borderColor; border.width: 1
330+
color: Qt.rgba(1, 1, 1, 0.06)
331+
border.color: Qt.rgba(1, 1, 1, 0.08); border.width: 1
332332

333333
Text {
334334
id: capText; anchors.centerIn: parent
@@ -347,8 +347,8 @@ Rectangle {
347347

348348
Rectangle {
349349
width: delRow.width + 16; height: Math.round(26 * root.sf); radius: root.radiusSm
350-
color: delMa.containsMouse ? Qt.rgba(0.94, 0.27, 0.27, 0.15) : Qt.rgba(0, 0, 0, 0.03)
351-
border.color: root.borderColor; border.width: 1
350+
color: delMa.containsMouse ? Qt.rgba(0.94, 0.27, 0.27, 0.15) : Qt.rgba(1, 1, 1, 0.04)
351+
border.color: Qt.rgba(1, 1, 1, 0.06); border.width: 1
352352

353353
Row {
354354
id: delRow; anchors.centerIn: parent; spacing: Math.round(4 * root.sf)
@@ -386,19 +386,7 @@ Rectangle {
386386
var ctx = getContext("2d");
387387
ctx.clearRect(0, 0, width, height);
388388
ctx.fillStyle = "#666";
389-
var rx = 8, ry = 10, rw = 32, rh = 28, rr = 6;
390-
ctx.beginPath();
391-
ctx.moveTo(rx + rr, ry);
392-
ctx.lineTo(rx + rw - rr, ry);
393-
ctx.arcTo(rx + rw, ry, rx + rw, ry + rr, rr);
394-
ctx.lineTo(rx + rw, ry + rh - rr);
395-
ctx.arcTo(rx + rw, ry + rh, rx + rw - rr, ry + rh, rr);
396-
ctx.lineTo(rx + rr, ry + rh);
397-
ctx.arcTo(rx, ry + rh, rx, ry + rh - rr, rr);
398-
ctx.lineTo(rx, ry + rr);
399-
ctx.arcTo(rx, ry, rx + rr, ry, rr);
400-
ctx.closePath();
401-
ctx.fill();
389+
ctx.beginPath(); ctx.roundRect(8, 10, 32, 28, [6]); ctx.fill();
402390
ctx.fillStyle = "#1f1f1f";
403391
ctx.beginPath(); ctx.arc(18, 22, 4, 0, Math.PI * 2); ctx.fill();
404392
ctx.beginPath(); ctx.arc(30, 22, 4, 0, Math.PI * 2); ctx.fill();
@@ -452,8 +440,8 @@ Rectangle {
452440
width: Math.min(parent.width - Math.round(48 * root.sf), Math.round(400 * root.sf))
453441
height: dlgCol.height + Math.round(40 * root.sf)
454442
radius: root.radiusLg
455-
color: root.bgElevated
456-
border.color: root.borderColor; border.width: 1
443+
color: Qt.rgba(0.08, 0.08, 0.13, 0.98)
444+
border.color: Qt.rgba(1, 1, 1, 0.1); border.width: 1
457445

458446
MouseArea { anchors.fill: parent } // prevent click-through
459447

@@ -464,28 +452,28 @@ Rectangle {
464452
// Header
465453
RowLayout {
466454
width: parent.width
467-
Text { text: "Create New Agent"; font.pixelSize: Math.round(16 * root.sf); font.weight: Font.Bold; color: root.textPrimary; Layout.fillWidth: true }
455+
Text { text: "Create New Agent"; font.pixelSize: Math.round(16 * root.sf); font.weight: Font.Bold; color: "#fff"; Layout.fillWidth: true }
468456
Rectangle {
469457
width: Math.round(24 * root.sf); height: Math.round(24 * root.sf); radius: 12
470-
color: closeDlgMa.containsMouse ? Qt.rgba(0,0,0,0.04) : "transparent"
458+
color: closeDlgMa.containsMouse ? Qt.rgba(1,1,1,0.1) : "transparent"
471459
Text { anchors.centerIn: parent; text: ""; font.pixelSize: Math.round(12 * root.sf); color: root.textMuted }
472460
MouseArea { id: closeDlgMa; anchors.fill: parent; hoverEnabled: true; cursorShape: Qt.PointingHandCursor; onClicked: showNewAgent = false }
473461
}
474462
}
475463

476-
Rectangle { width: parent.width; height: 1; color: root.borderColor }
464+
Rectangle { width: parent.width; height: 1; color: Qt.rgba(1,1,1,0.06) }
477465

478466
// Name *
479467
Column { width: parent.width; spacing: Math.round(4 * root.sf)
480468
Text { text: "Name *"; font.pixelSize: Math.round(11 * root.sf); font.weight: Font.Medium; color: root.textMuted }
481469
Rectangle {
482470
width: parent.width; height: Math.round(36 * root.sf); radius: root.radiusSm
483-
color: Qt.rgba(0, 0, 0, 0.04); border.color: dlgNameInput.activeFocus ? root.accentBlue : root.borderColor; border.width: 1
471+
color: Qt.rgba(0, 0, 0, 0.3); border.color: dlgNameInput.activeFocus ? Qt.rgba(0.35, 0.55, 1.0, 0.4) : Qt.rgba(1, 1, 1, 0.1); border.width: 1
484472
TextInput {
485473
id: dlgNameInput; anchors.fill: parent; anchors.margins: Math.round(10 * root.sf); verticalAlignment: TextInput.AlignVCenter
486-
color: root.textPrimary; font.pixelSize: Math.round(12 * root.sf); clip: true
474+
color: "#fff"; font.pixelSize: Math.round(12 * root.sf); clip: true
487475
onTextChanged: newName = text
488-
Text { anchors.fill: parent; text: "Agent name..."; color: Qt.rgba(0,0,0,0.3); font.pixelSize: Math.round(12 * root.sf); visible: !parent.text; verticalAlignment: Text.AlignVCenter }
476+
Text { anchors.fill: parent; text: "Agent name..."; color: Qt.rgba(1,1,1,0.2); font.pixelSize: Math.round(12 * root.sf); visible: !parent.text; verticalAlignment: Text.AlignVCenter }
489477
}
490478
}
491479
}
@@ -495,12 +483,12 @@ Rectangle {
495483
Text { text: "Description"; font.pixelSize: Math.round(11 * root.sf); font.weight: Font.Medium; color: root.textMuted }
496484
Rectangle {
497485
width: parent.width; height: Math.round(60 * root.sf); radius: root.radiusSm
498-
color: Qt.rgba(0, 0, 0, 0.04); border.color: dlgDescInput.activeFocus ? root.accentBlue : root.borderColor; border.width: 1
486+
color: Qt.rgba(0, 0, 0, 0.3); border.color: dlgDescInput.activeFocus ? Qt.rgba(0.35, 0.55, 1.0, 0.4) : Qt.rgba(1, 1, 1, 0.1); border.width: 1
499487
TextInput {
500488
id: dlgDescInput; anchors.fill: parent; anchors.margins: Math.round(10 * root.sf); verticalAlignment: TextInput.AlignTop
501-
color: root.textPrimary; font.pixelSize: Math.round(12 * root.sf); clip: true; wrapMode: TextInput.WrapAnywhere
489+
color: "#fff"; font.pixelSize: Math.round(12 * root.sf); clip: true; wrapMode: TextInput.WrapAnywhere
502490
onTextChanged: newDescription = text
503-
Text { anchors.fill: parent; text: "What does this agent do?"; color: Qt.rgba(0,0,0,0.3); font.pixelSize: Math.round(12 * root.sf); visible: !parent.text }
491+
Text { anchors.fill: parent; text: "What does this agent do?"; color: Qt.rgba(1,1,1,0.2); font.pixelSize: Math.round(12 * root.sf); visible: !parent.text }
504492
}
505493
}
506494
}
@@ -510,15 +498,15 @@ Rectangle {
510498
Text { text: "System Prompt (optional)"; font.pixelSize: Math.round(11 * root.sf); font.weight: Font.Medium; color: root.textMuted }
511499
Rectangle {
512500
width: parent.width; height: Math.round(72 * root.sf); radius: root.radiusSm
513-
color: Qt.rgba(0, 0, 0, 0.04); border.color: sysPromptInput.activeFocus ? root.accentBlue : root.borderColor; border.width: 1
501+
color: Qt.rgba(0, 0, 0, 0.3); border.color: Qt.rgba(1, 1, 1, 0.1); border.width: 1
514502
Flickable {
515503
anchors.fill: parent; anchors.margins: Math.round(10 * root.sf); clip: true
516504
contentHeight: sysPromptInput.contentHeight
517505
TextEdit {
518506
id: sysPromptInput; width: parent.width
519-
color: root.textPrimary; font.pixelSize: Math.round(12 * root.sf); wrapMode: TextEdit.WrapAnywhere
507+
color: "#fff"; font.pixelSize: Math.round(12 * root.sf); wrapMode: TextEdit.WrapAnywhere
520508
onTextChanged: newSystemPrompt = text
521-
Text { text: "Custom system prompt..."; color: Qt.rgba(0,0,0,0.3); font.pixelSize: Math.round(12 * root.sf); visible: !parent.text }
509+
Text { text: "Custom system prompt..."; color: Qt.rgba(1,1,1,0.2); font.pixelSize: Math.round(12 * root.sf); visible: !parent.text }
522510
}
523511
}
524512
}
@@ -529,11 +517,10 @@ Rectangle {
529517
Text { text: "Capabilities"; font.pixelSize: Math.round(11 * root.sf); font.weight: Font.Medium; color: root.textMuted }
530518
Rectangle {
531519
width: parent.width; height: Math.round(36 * root.sf); radius: root.radiusSm
532-
color: Qt.rgba(0, 0, 0, 0.04); border.color: dlgCapsInput.activeFocus ? root.accentBlue : root.borderColor; border.width: 1
520+
color: Qt.rgba(0, 0, 0, 0.3); border.color: Qt.rgba(1, 1, 1, 0.1); border.width: 1
533521
TextInput {
534-
id: dlgCapsInput
535522
anchors.fill: parent; anchors.margins: Math.round(10 * root.sf); verticalAlignment: TextInput.AlignVCenter
536-
color: root.textPrimary; font.pixelSize: Math.round(12 * root.sf); clip: true; text: "general, code, tools"
523+
color: "#fff"; font.pixelSize: Math.round(12 * root.sf); clip: true; text: "general, code, tools"
537524
onTextChanged: newCapabilities = text
538525
}
539526
}
@@ -546,8 +533,8 @@ Rectangle {
546533

547534
Rectangle {
548535
width: Math.round(80 * root.sf); height: Math.round(34 * root.sf); radius: root.radiusSm
549-
color: cancelMa.containsMouse ? Qt.rgba(0, 0, 0, 0.08) : Qt.rgba(0, 0, 0, 0.04)
550-
border.color: root.borderColor; border.width: 1
536+
color: cancelMa.containsMouse ? Qt.rgba(1, 1, 1, 0.08) : Qt.rgba(1, 1, 1, 0.04)
537+
border.color: Qt.rgba(1, 1, 1, 0.1); border.width: 1
551538
Text { anchors.centerIn: parent; text: "Cancel"; font.pixelSize: Math.round(12 * root.sf); color: root.textSecondary }
552539
MouseArea { id: cancelMa; anchors.fill: parent; hoverEnabled: true; cursorShape: Qt.PointingHandCursor; onClicked: showNewAgent = false }
553540
}

packages/whaleos/AppsApp.qml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Rectangle {
7777
width: Math.round(56 * root.sf); height: Math.round(22 * root.sf); radius: 11
7878
color: modelData.enabled ?
7979
Qt.rgba(0.13, 0.77, 0.37, 0.15) :
80-
Qt.rgba(0, 0, 0, 0.04)
80+
Qt.rgba(1, 1, 1, 0.06)
8181
Text {
8282
anchors.centerIn: parent
8383
text: modelData.enabled ? "On" : "Off"
@@ -104,9 +104,9 @@ Rectangle {
104104
Repeater {
105105
model: [
106106
{ label: "Run", color: root.accentBlue },
107-
{ label: "Toggle", color: Qt.rgba(0,0,0,0.03) },
108-
{ label: "Delete", color: Qt.rgba(0,0,0,0.03) },
109-
{ label: "Edit", color: Qt.rgba(0,0,0,0.03) }
107+
{ label: "Toggle", color: Qt.rgba(1,1,1,0.06) },
108+
{ label: "Delete", color: Qt.rgba(1,1,1,0.06) },
109+
{ label: "Edit", color: Qt.rgba(1,1,1,0.06) }
110110
]
111111

112112
delegate: Rectangle {

0 commit comments

Comments
 (0)