Revert "fix(bar): defer update to next cycle"

This reverts commit 2fcd219c34.
This commit is contained in:
Lysec
2026-03-17 10:38:25 +01:00
parent 2fcd219c34
commit 46a3c7e2d4
24 changed files with 162 additions and 2459 deletions
+43 -99
View File
@@ -11,59 +11,46 @@
}
:root {
/* --- Core Palette Overrides --- */
/* Core Color Palette Overrides */
--zen-colors-primary: var(--base) !important;
--zen-primary-color: var(--base) !important;
--zen-colors-secondary: var(--surface) !important;
--zen-colors-tertiary: var(--overlay) !important;
--zen-colors-border: var(--primary) !important;
/* --- Internal Zen Color Variables --- */
--zen-primary-color: var(--primary) !important;
--zen-colors-primary: var(--base) !important;
--zen-colors-secondary: var(--surface) !important;
--zen-colors-tertiary: var(--base) !important;
/* --- Backgrounds --- */
/* Backgrounds */
--toolbar-bgcolor: var(--base) !important;
--newtab-background-color: var(--overlay) !important;
--zen-themed-toolbar-bg: var(--base) !important;
--zen-main-browser-background: var(--base) !important;
--toolbox-bgcolor-inactive: var(--base) !important;
--zen-urlbar-background: var(--surface) !important;
--zen-colors-input-bg: var(--surface) !important;
--zen-themed-toolbar-bg-transparent: transparent !important;
/* --- Text & Icons --- */
/* Text & Icons */
--lwt-text-color: var(--text) !important;
--toolbarbutton-icon-fill: var(--primary) !important;
--toolbar-field-color: var(--text) !important;
--toolbar-field-focus-color: var(--text) !important;
--toolbar-color: var(--text) !important;
--toolbox-textcolor: var(--text) !important;
--toolbox-textcolor-inactive: var(--text) !important;
--tab-selected-textcolor: var(--primary) !important;
--newtab-text-primary-color: var(--text) !important;
/* --- Popups, Menus & Sidebars --- */
/* Popups & Menus */
--arrowpanel-color: var(--text) !important;
--arrowpanel-background: var(--overlay) !important;
/* Sidebar Stuff */
--sidebar-text-color: var(--text) !important;
--lwt-sidebar-text-color: var(--text) !important;
--lwt-sidebar-background-color: var(--base) !important;
/* --- Tab Selection --- */
--tab-selected-textcolor: var(--primary) !important;
}
/* --- Sidebar & Layout --- */
/* Element Specific Overrides */
#navigator-toolbox,
#zen-tabbox-wrapper,
.sidebar-panel {
background-color: var(--base) !important;
}
#zen-sidebar-splitter {
background-color: var(--base) !important;
opacity: 1 !important;
#permissions-granted-icon {
color: var(--base) !important;
}
.sidebar-placesTree {
@@ -74,27 +61,29 @@
background-color: var(--surface) !important;
}
#zen-appcontent-navbar-container {
background-color: var(--base) !important;
#urlbar-background {
background-color: var(--surface) !important;
}
/* --- Navigation Controls --- */
.tab-background[selected=""] {
background: var(--overlay) !important;
}
#back-button .toolbarbutton-icon,
#forward-button .toolbarbutton-icon,
#reload-button .toolbarbutton-icon,
#stop-button .toolbarbutton-icon,
#PanelUI-menu-button .toolbarbutton-icon,
#unified-extensions-button .toolbarbutton-icon,
#nav-bar-overflow-button .toolbarbutton-icon,
#zen-toggle-compact-mode .toolbarbutton-icon {
fill: var(--primary) !important;
.content-shortcuts {
background-color: var(--surface) !important;
border-color: var(--secondary) !important;
}
.urlbarView-url {
color: var(--primary) !important;
}
#back-button[disabled] .toolbarbutton-icon,
#forward-button[disabled] .toolbarbutton-icon {
opacity: 0.3 !important;
#zenEditBookmarkPanelFaviconContainer {
background: var(--base) !important;
}
#zen-toast-container {
color: var(--primary) !important;
}
toolbar .toolbarbutton-1 {
@@ -109,65 +98,6 @@ toolbar .toolbarbutton-1 {
}
}
/* --- URL Bar --- */
#urlbar-input {
color: var(--text) !important;
}
#urlbar-input::selection {
background-color: var(--primary) !important;
color: var(--on_primary) !important;
}
.urlbar-background {
background-color: var(--base) !important;
}
#urlbar-input-container {
background-color: var(--base) !important;
}
.urlbarView-url {
color: var(--primary) !important;
}
.urlbarView-favicon {
background-color: var(--base) !important;
}
#urlbar-results {
background-color: var(--overlay) !important;
color: var(--text) !important;
}
/* --- UI Components --- */
#zen-toast-container {
color: var(--primary) !important;
}
#PanelUI-menu-button[open] .toolbarbutton-icon {
fill: var(--primary) !important;
}
#permissions-granted-icon {
color: var(--base) !important;
}
.tab-background[selected=""] {
background: var(--overlay) !important;
}
.content-shortcuts {
background-color: var(--surface) !important;
border-color: var(--secondary) !important;
}
#zenEditBookmarkPanelFaviconContainer {
background: var(--base) !important;
}
#TabsToolbar {
background-color: var(--base) !important;
}
@@ -175,3 +105,17 @@ toolbar .toolbarbutton-1 {
hbox#titlebar {
background-color: var(--base) !important;
}
#zen-appcontent-navbar-container {
background-color: var(--base) !important;
}
/* Zen toast/indicator contrast visibility issue fix */
#zen-toast-container {
color: var(--primary) !important;
}
/* Pane UI button visibility issue fix */
#PanelUI-menu-button[open] .toolbarbutton-icon {
fill: var(--primary) !important;
}
+3 -8
View File
@@ -142,18 +142,13 @@ Item {
}
}
// Initialize models — deferred via Timer (Qt.callLater can fire in same event cycle)
// to avoid re-entrant incubation: Component.onCompleted fires during finalization,
// Initialize models — deferred to next event-loop tick via Qt.callLater to avoid
// re-entrant incubation: Component.onCompleted fires during QQmlObjectCreator::finalize,
// and ListModel.append synchronously creates Repeater delegates whose own finalization
// can corrupt the V4 heap (SIGSEGV in QV4::Object::insertMember).
Timer {
id: initModelsTimer
interval: 0
onTriggered: root._initModels()
}
Component.onCompleted: {
Logger.d("Bar", "Bar Component.onCompleted for screen:", screen?.name);
initModelsTimer.restart();
Qt.callLater(root._initModels);
}
function _initModels() {
+2 -27
View File
@@ -72,33 +72,8 @@ Item {
Loader {
id: loader
anchors.fill: parent
asynchronous: false
// Deferred activation to prevent re-entrant incubation crash:
// When ListModel.append() creates this delegate, the Repeater is mid-incubation.
// If this Loader activates synchronously (asynchronous: false) during delegate
// finalization, it triggers nested QQmlIncubatorPrivate::incubate which corrupts
// the V4 heap (SIGSEGV in QV4::Object::insertMember).
// Deferring to the next event loop iteration breaks the nesting.
property bool _ready: false
active: _ready && root.checkWidgetExists() && (root.reloadCounter >= 0)
Timer {
id: activateTimer
interval: 0
onTriggered: loader._ready = true
}
Component.onCompleted: activateTimer.start()
// Reset _ready when reloadCounter changes to force a deferred re-activation
Connections {
target: root
function onReloadCounterChanged() {
loader._ready = false;
activateTimer.restart();
}
}
asynchronous: true
active: root.checkWidgetExists() && (root.reloadCounter >= 0)
sourceComponent: {
// Depend on reloadCounter to force re-fetch of component
+1 -1
View File
@@ -50,7 +50,7 @@ NIconButton {
// If using distro logo, don't use theme icon.
icon: (customIconPath === "" && !useDistroLogo) ? customIcon : ""
tooltipText: {
if (PanelService.getPanel("controlCenterPanel", screen)?.isPanelOpen) {
if (!screen || PanelService.getPanel("controlCenterPanel", screen)?.isPanelOpen) {
return "";
} else {
return I18n.tr("tooltips.open-control-center");
+1 -1
View File
@@ -408,7 +408,7 @@ Item {
}
onEntered: {
if ((isVertical || scrollingMode === "never") && !PanelService.getPanel("mediaPlayerPanel", screen)?.isPanelOpen) {
if (screen && (isVertical || scrollingMode === "never") && !PanelService.getPanel("mediaPlayerPanel", screen)?.isPanelOpen) {
TooltipService.show(root, title, BarService.getTooltipDirection(root.screen?.name));
}
}
+4 -19
View File
@@ -167,30 +167,15 @@ PanelWindow {
}
// When hidden changes, handle load/unload
// Defer content load when showing to avoid re-entrant incubation crash:
// barAutoHideStateChanged fires during workspace switch or window open. Setting
// contentLoaded=true synchronously triggers barLoader to create Bar+widgets.
// That nests QQmlIncubatorPrivate::incubate inside the signal handler, which
// can corrupt the V4 heap (SIGSEGV in QV4::Object::insertMember). Use Timer
// (not Qt.callLater - it can fire in same event cycle) to break the nesting.
onIsHiddenChanged: {
if (isHidden) {
// Start fade out, then unload after animation
unloadTimer.restart();
} else {
// Load immediately when showing
unloadTimer.stop();
deferredUnloadTimer.stop();
showContentTimer.restart();
}
}
Timer {
id: showContentTimer
interval: 0
onTriggered: {
if (!barWindow.isHidden) {
contentLoaded = true;
}
contentLoaded = true;
}
}
@@ -216,10 +201,10 @@ PanelWindow {
// Bar hidden — start debounced unload
deferredUnloadTimer.restart();
} else {
// Bar shown — cancel pending unload, defer content load (same nesting concern)
// Bar shown — cancel pending unload, ensure content is loaded
deferredUnloadTimer.stop();
if (!barWindow.isHidden) {
showContentTimer.restart();
barWindow.contentLoaded = true;
}
}
}
+8 -3
View File
@@ -447,6 +447,10 @@ SmartPanel {
delegate: NBox {
id: ethItem
HoverHandler {
id: itemHover
}
function getContentColors(defaultColors = [Color.mSurface, Color.mOnSurface]) {
if (modelData.connected) {
return [Color.mPrimary, Color.mOnPrimary];
@@ -569,6 +573,7 @@ SmartPanel {
// Info button on the right
NIconButton {
visible: itemHover.hovered
icon: "info"
tooltipText: I18n.tr("common.info")
baseSize: Style.baseWidgetSize * 0.75
@@ -615,9 +620,9 @@ SmartPanel {
visible: ethernetInfoExpanded && NetworkService.activeEthernetIf === modelData.ifname
Layout.fillWidth: true
color: Color.mSurfaceVariant
radius: Style.radiusXS
radius: Style.radiusS
border.width: Style.borderS
border.color: Style.boxBorderColor
border.color: Color.mOutline
implicitHeight: ethInfoGrid.implicitHeight + Style.margin2S
clip: true
Layout.topMargin: Style.marginXS
@@ -629,7 +634,7 @@ SmartPanel {
anchors.margins: Style.marginS
icon: ethernetDetailsGrid ? "layout-list" : "layout-grid"
tooltipText: ethernetDetailsGrid ? I18n.tr("tooltips.list-view") : I18n.tr("tooltips.grid-view")
baseSize: Style.baseWidgetSize * 0.65
baseSize: Style.baseWidgetSize * 0.8
onClicked: {
ethernetDetailsGrid = !ethernetDetailsGrid;
Settings.data.network.wifiDetailsViewMode = ethernetDetailsGrid ? "grid" : "list";
@@ -25,7 +25,6 @@ Popup {
height: Math.min(content.implicitHeight + padding * 2, maxHeight)
padding: Style.marginXL
modal: true
closePolicy: Popup.NoAutoClose
dim: false
anchors.centerIn: parent
@@ -32,7 +32,6 @@ Popup {
height: Math.min(content.implicitHeight + dialogPadding * 2, maxHeight)
padding: 0
modal: true
closePolicy: Popup.NoAutoClose
anchors.centerIn: parent
onOpened: {
@@ -26,7 +26,6 @@ Popup {
height: Math.min(content.implicitHeight + padding * 2, maxHeight)
padding: Style.marginXL
modal: true
closePolicy: Popup.NoAutoClose
dim: false
// Center in parent
@@ -37,8 +37,8 @@ Popup {
height: Math.min(800, contentColumn.implicitHeight + Style.margin2XL)
padding: Style.marginXL
modal: true
closePolicy: Popup.NoAutoClose
dim: false
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
anchors.centerIn: parent
// Helper function to get color from cached scheme data
@@ -370,6 +370,10 @@ Item {
NBox {
id: device
HoverHandler {
id: itemHover
}
readonly property bool canConnect: BluetoothService.canConnect(modelData)
readonly property bool canDisconnect: BluetoothService.canDisconnect(modelData)
readonly property bool canPair: BluetoothService.canPair(modelData)
@@ -484,7 +488,7 @@ Item {
}
NIconButton {
visible: modelData.connected && modelData.state !== BluetoothDeviceState.Disconnecting
visible: itemHover.hovered && modelData.connected && modelData.state !== BluetoothDeviceState.Disconnecting
icon: "info"
tooltipText: I18n.tr("common.info")
baseSize: Style.baseWidgetSize * 0.75
@@ -499,7 +503,7 @@ Item {
}
NIconButton {
visible: !root.showOnlyLists && (modelData.paired || modelData.trusted) && !modelData.connected && !isBusy && !modelData.blocked
visible: itemHover.hovered && !root.showOnlyLists && (modelData.paired || modelData.trusted) && !modelData.connected && !isBusy && !modelData.blocked
icon: "trash"
tooltipText: I18n.tr("common.unpair")
baseSize: Style.baseWidgetSize * 0.75
@@ -548,7 +552,7 @@ Item {
visible: device.isExpanded
Layout.fillWidth: true
implicitHeight: infoColumn.implicitHeight + Style.margin2S
radius: Style.radiusXS
radius: Style.radiusS
color: Color.mSurfaceVariant
border.width: Style.borderS
border.color: Style.boxBorderColor
@@ -648,6 +648,10 @@ Item {
NBox {
id: networkItem
HoverHandler {
id: itemHover
}
readonly property bool isBusy: NetworkService.connectingTo === modelData.ssid || NetworkService.disconnectingFrom === modelData.ssid || NetworkService.forgettingNetwork === modelData.ssid
readonly property bool isExpanded: root.infoSsid === modelData.ssid
readonly property bool isEnterprise: NetworkService.isEnterprise(modelData.security)
@@ -815,7 +819,7 @@ Item {
}
NIconButton {
visible: modelData.connected && NetworkService.disconnectingFrom !== modelData.ssid
visible: itemHover.hovered && modelData.connected && NetworkService.disconnectingFrom !== modelData.ssid
icon: "info"
tooltipText: I18n.tr("common.info")
baseSize: Style.baseWidgetSize * 0.75
@@ -834,7 +838,7 @@ Item {
}
NIconButton {
visible: !root.showOnlyLists && (modelData.existing || modelData.cached) && !modelData.connected && !networkItem.isBusy
visible: itemHover.hovered && !root.showOnlyLists && (modelData.existing || modelData.cached) && !modelData.connected && !networkItem.isBusy
icon: "trash"
tooltipText: I18n.tr("tooltips.forget-network")
baseSize: Style.baseWidgetSize * 0.75
@@ -879,7 +883,7 @@ Item {
visible: networkItem.isExpanded
Layout.fillWidth: true
implicitHeight: infoColumn.implicitHeight + Style.margin2S
radius: Style.radiusXS
radius: Style.radiusS
color: Color.mSurfaceVariant
border.width: Style.borderS
border.color: Style.boxBorderColor
@@ -7,7 +7,6 @@ import qs.Widgets
Popup {
id: root
modal: true
closePolicy: Popup.NoAutoClose
dim: true
anchors.centerIn: parent
@@ -7,7 +7,6 @@ import qs.Widgets
Popup {
id: root
modal: true
closePolicy: Popup.NoAutoClose
dim: true
anchors.centerIn: parent
@@ -34,7 +34,6 @@ Popup {
height: content.implicitHeight + padding * 2
padding: Style.marginXL
modal: true
closePolicy: Popup.NoAutoClose
dim: false
anchors.centerIn: parent
+5 -7
View File
@@ -257,11 +257,10 @@ PopupWindow {
contentHeight = tooltipText.implicitHeight;
}
const extraPad = isGridMode ? gridPaddingVertical : 0;
const tipWidth = Math.ceil(Math.min(contentWidth + ((padding + extraPad) * 2), maxWidth));
const tipWidth = Math.ceil(Math.min(contentWidth + (padding * 2), maxWidth));
root.implicitWidth = tipWidth;
const tipHeight = Math.ceil(contentHeight + ((padding + extraPad) * 2));
const tipHeight = Math.ceil(contentHeight + (padding * 2));
root.implicitHeight = tipHeight;
// Get target's global position and convert to screen-relative
@@ -499,11 +498,10 @@ PopupWindow {
contentHeight = tooltipText.implicitHeight;
}
const extraPad = isGridMode ? gridPaddingVertical : 0;
const tipWidth = Math.ceil(Math.min(contentWidth + ((padding + extraPad) * 2), maxWidth));
const tipWidth = Math.ceil(Math.min(contentWidth + (padding * 2), maxWidth));
root.implicitWidth = tipWidth;
const tipHeight = Math.ceil(contentHeight + ((padding + extraPad) * 2));
const tipHeight = Math.ceil(contentHeight + (padding * 2));
root.implicitHeight = tipHeight;
// Reposition based on current direction (screen-relative)
@@ -645,7 +643,7 @@ PopupWindow {
color: Color.mSurface
border.color: Color.mOutline
border.width: Style.borderS
radius: Math.min(Style.radiusS, Math.min(width, height) / 3)
radius: Style.radiusS
// Only show content when we have content
visible: root.text !== "" || root.isGridMode
+5 -1
View File
@@ -249,11 +249,15 @@ Singleton {
}
function syncWindows() {
const ws = backend && backend.windows ? backend.windows : [];
Logger.d("CompositorService", "syncWindows() from backend length:", ws.length);
windows.clear();
const ws = backend.windows;
for (var i = 0; i < ws.length; i++) {
windows.append(ws[i]);
}
Logger.d("CompositorService", "syncWindows() model count:", windows.count);
// Emit signal to notify listeners that window list has been updated
windowListChanged();
}
+3
View File
@@ -236,6 +236,7 @@ Item {
// Safe window update
function safeUpdateWindows() {
try {
Logger.d("HyprlandService", "safeUpdateWindows() start");
const windowsList = [];
windowCache = {};
@@ -246,6 +247,7 @@ Item {
}
const hlToplevels = Hyprland.toplevels.values;
Logger.d("HyprlandService", "safeUpdateWindows() toplevels:", hlToplevels.length);
let newFocusedIndex = -1;
// Get active workspaces to filter focus
@@ -294,6 +296,7 @@ Item {
}
windows = toSortedWindowList(windowsList);
Logger.d("HyprlandService", "safeUpdateWindows() windows after sort:", windows.length);
if (newFocusedIndex !== focusedWindowIndex) {
focusedWindowIndex = newFocusedIndex;
+60 -57
View File
@@ -20,7 +20,7 @@ Singleton {
readonly property bool hasInput: !!source
readonly property list<PwNode> sinks: deviceNodes.sinks
readonly property list<PwNode> sources: deviceNodes.sources
readonly property real maxVolume: Settings.data.audio.volumeOverdrive ? 1.5 : 1.0
readonly property real epsilon: 0.005
// Fallback state sourced from wpctl when PipeWire node values go stale.
@@ -30,10 +30,11 @@ Singleton {
property bool wpctlOutputMuted: true
function clampOutputVolume(vol: real): real {
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
if (vol === undefined || isNaN(vol)) {
return 0;
}
return Math.max(0, Math.min(root.maxVolume, vol));
return Math.max(0, Math.min(maxVolume, vol));
}
function refreshWpctlOutputState(): void {
@@ -68,9 +69,9 @@ Singleton {
return clampOutputVolume(wpctlOutputVolume);
}
if (!sink?.audio) {
return 0;
}
if (!sink?.audio)
return 0;
return clampOutputVolume(sink.audio.volume);
}
readonly property bool muted: {
@@ -82,14 +83,13 @@ Singleton {
// Input Volume - read directly from device
readonly property real inputVolume: {
if (!source?.audio) {
return 0;
}
if (!source?.audio)
return 0;
const vol = source.audio.volume;
if (vol === undefined || isNaN(vol)) {
return 0;
}
return Math.max(0, Math.min(root.maxVolume, vol));
if (vol === undefined || isNaN(vol))
return 0;
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
return Math.max(0, Math.min(maxVolume, vol));
}
readonly property bool inputMuted: source?.audio?.muted ?? true
@@ -299,9 +299,8 @@ Singleton {
}
function getAppKey(node): string {
if (!node || !node.properties) {
if (!node || !node.properties)
return "";
}
var props = node.properties;
var binary = props["application.process.binary"] || "";
if (binary) {
@@ -309,38 +308,30 @@ Singleton {
return parts[parts.length - 1].toLowerCase();
}
var appName = props["application.name"] || "";
if (appName) {
if (appName)
return appName.toLowerCase();
}
var appId = props["application.id"] || "";
if (appId) {
if (appId)
return appId.toLowerCase();
}
return "";
}
function setAppStreamVolume(appKey: string, volume: real): void {
if (!appKey) {
return;
}
if (!appKey)
return;
var o = appVolumeOverrides;
if (!o[appKey]) {
o[appKey] = {};
}
if (!o[appKey])
o[appKey] = {};
o[appKey].volume = volume;
appVolumeOverrides = o;
}
function setAppStreamMuted(appKey: string, muted: bool): void {
if (!appKey) {
return;
}
if (!appKey)
return;
var o = appVolumeOverrides;
if (!o[appKey]) {
o[appKey] = {};
}
if (!o[appKey])
o[appKey] = {};
o[appKey].muted = muted;
appVolumeOverrides = o;
}
@@ -351,24 +342,19 @@ Singleton {
function _applyAppOverrides(): void {
var streams = root.appStreams;
if (!streams) {
return;
}
if (!streams)
return;
var currentIds = {};
_isApplyingAppOverride = true;
for (var i = 0; i < streams.length; i++) {
var s = streams[i];
if (!s) {
continue;
}
if (!s)
continue;
currentIds[s.id] = true;
var key = getAppKey(s);
var ov = key ? appVolumeOverrides[key] : null;
if (!ov || !s.audio) {
continue;
}
if (!ov || !s.audio)
continue;
if (ov.volume !== undefined && Math.abs(s.audio.volume - ov.volume) > root.epsilon) {
s.audio.volume = ov.volume;
}
@@ -435,6 +421,9 @@ Singleton {
root.refreshWpctlOutputState();
}
}
stdout: StdioCollector {}
stderr: StdioCollector {}
}
Process {
@@ -448,6 +437,7 @@ Singleton {
}
stdout: StdioCollector {}
stderr: StdioCollector {}
}
Process {
@@ -465,6 +455,9 @@ Singleton {
}
root.refreshWpctlOutputState();
}
stdout: StdioCollector {}
stderr: StdioCollector {}
}
Process {
@@ -474,6 +467,9 @@ Singleton {
onExited: function (_code) {
root.refreshWpctlOutputState();
}
stdout: StdioCollector {}
stderr: StdioCollector {}
}
// Watch output device changes for clamping
@@ -499,12 +495,14 @@ Singleton {
return;
}
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
// If volume exceeds max, clamp it (but only if we didn't just set it)
if (vol > root.maxVolume) {
if (vol > maxVolume) {
root.isSettingOutputVolume = true;
Qt.callLater(() => {
if (root.sink?.audio && root.sink.audio.volume > root.maxVolume) {
root.sink.audio.volume = root.maxVolume;
if (root.sink?.audio && root.sink.audio.volume > maxVolume) {
root.sink.audio.volume = maxVolume;
}
root.isSettingOutputVolume = false;
});
@@ -537,12 +535,14 @@ Singleton {
return;
}
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
// If volume exceeds max, clamp it (but only if we didn't just set it)
if (vol > root.maxVolume) {
if (vol > maxVolume) {
root.isSettingInputVolume = true;
Qt.callLater(() => {
if (root.source?.audio && root.source.audio.volume > root.maxVolume) {
root.source.audio.volume = root.maxVolume;
if (root.source?.audio && root.source.audio.volume > maxVolume) {
root.source.audio.volume = maxVolume;
}
root.isSettingInputVolume = false;
});
@@ -555,10 +555,11 @@ Singleton {
if (!Pipewire.ready || (!sink?.audio && !wpctlAvailable)) {
return;
}
if (volume >= root.maxVolume) {
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
if (volume >= maxVolume) {
return;
}
setVolume(Math.min(root.maxVolume, volume + stepVolume));
setVolume(Math.min(maxVolume, volume + stepVolume));
}
function decreaseVolume() {
@@ -641,11 +642,11 @@ Singleton {
}
function getOutputIcon() {
if (muted) {
if (muted)
return "volume-mute";
}
const clampedVolume = Math.max(0, Math.min(volume, root.maxVolume));
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
const clampedVolume = Math.max(0, Math.min(volume, maxVolume));
// Show volume-x icon when volume is effectively 0% (within rounding threshold)
if (clampedVolume < root.epsilon) {
@@ -662,10 +663,11 @@ Singleton {
if (!Pipewire.ready || !source?.audio) {
return;
}
if (inputVolume >= root.maxVolume) {
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
if (inputVolume >= maxVolume) {
return;
}
setInputVolume(Math.min(root.maxVolume, inputVolume + stepVolume));
setInputVolume(Math.min(maxVolume, inputVolume + stepVolume));
}
function decreaseInputVolume() {
@@ -681,7 +683,8 @@ Singleton {
return;
}
const clampedVolume = Math.max(0, Math.min(root.maxVolume, newVolume));
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
const clampedVolume = Math.max(0, Math.min(maxVolume, newVolume));
const delta = Math.abs(clampedVolume - source.audio.volume);
if (delta < root.epsilon) {
return;
+11 -27
View File
@@ -196,42 +196,20 @@ Singleton {
// Track last workspace ID to detect actual workspace changes
property var lastWorkspaceId: null
// Workspace switch handler - show bar on the focused workspace screen
// Deferred via Timer to avoid re-entrant incubation: setScreenHidden emits
// barAutoHideStateChanged which triggers BarContentWindow to load bar content.
// Loading Bar+widgets synchronously during workspaceChanged nests QQmlIncubatorPrivate
// inside the signal handler, corrupting the V4 heap (SIGSEGV in QV4::Object::insertMember).
Timer {
id: workspaceShowBarTimer
interval: 0
property string pendingScreenName: ""
onTriggered: {
if (pendingScreenName === "")
return;
var screenName = pendingScreenName;
pendingScreenName = "";
setScreenHidden(screenName, false);
if (!root.isBarHovered(screenName)) {
barHoverStateChanged(screenName, false);
}
}
}
// Workspace switch handler - directly show bar on the focused workspace screen
Connections {
target: CompositorService
function onWorkspaceChanged() {
if (!Settings.data.bar.showOnWorkspaceSwitch)
return;
if (Settings.data.bar.displayMode !== "auto_hide")
return;
var ws = CompositorService.getCurrentWorkspace();
if (!ws || !ws.output) {
return;
}
var screenName = ws.output || "";
if (Settings.getBarDisplayModeForScreen(screenName) !== "auto_hide")
return;
// Only trigger if workspace actually changed
var currentWsId = ws.id;
if (currentWsId === root.lastWorkspaceId) {
@@ -239,10 +217,16 @@ Singleton {
}
root.lastWorkspaceId = currentWsId;
var screenName = ws.output || "";
Logger.d("BarService", "Workspace switched to:", currentWsId, "on screen:", screenName);
workspaceShowBarTimer.pendingScreenName = screenName;
workspaceShowBarTimer.restart();
// Show bar immediately
setScreenHidden(screenName, false);
// Only trigger hideTimer if not already hovered (e.g., mouse on trigger zone)
if (!root.isBarHovered(screenName)) {
barHoverStateChanged(screenName, false);
}
}
}
+1 -1
View File
@@ -167,7 +167,7 @@ ColumnLayout {
font.pointSize: root.fontSize * Style.uiScaleRatio
font.weight: root.fontWeight
onTextEdited: root.editingFinished()
onEditingFinished: root.editingFinished()
onAccepted: root.accepted()
// Override mouse handling to prevent propagation
-1866
View File
File diff suppressed because it is too large Load Diff
-329
View File
@@ -1,329 +0,0 @@
PID: 3846 (quickshell)
UID: 1000 (shelomoh)
GID: 1000 (shelomoh)
Signal: 11 (SEGV)
Timestamp: Tue 2026-03-17 09:34:27 EET (5min ago)
Command Line: build/src/quickshell -p ../noctalia-shell
Executable: /home/shelomoh/Downloads/noctalia-qs/build/src/quickshell
Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/app-ghostty-surface-transient-3507.scope
Unit: user@1000.service
User Unit: app-ghostty-surface-transient-3507.scope
Slice: user-1000.slice
Owner UID: 1000 (shelomoh)
Boot ID: d5c40a483efb425188b8fda02e442f92
Machine ID: e1f87fbe60e9410db9c53ecbd7ab103a
Hostname: shelomoh-laptop
Storage: /var/lib/systemd/coredump/core.quickshell.1000.d5c40a483efb425188b8fda02e442f92.3846.1773732867000000.zst (present)
Size on Disk: 33.6M
Message: Process 3846 (quickshell) of user 1000 dumped core.
Stack trace of thread 3846:
#0 0x00007f89515c1f53 _ZN3QV46Object12insertMemberEPNS_14StringOrSymbolEPKNS_8PropertyENS_18PropertyAttributesE (libQt6Qml.so.6 + 0x1c1f53)
#1 0x00007f895153f908 n/a (libQt6Qml.so.6 + 0x13f908)
#2 0x00007f89515c4c61 _ZN3QV46Object11internalPutENS_11PropertyKeyERKNS_5ValueEPS2_ (libQt6Qml.so.6 + 0x1c4c61)
#3 0x00007f89515c4aa0 _ZN3QV46Object11internalPutENS_11PropertyKeyERKNS_5ValueEPS2_ (libQt6Qml.so.6 + 0x1c4aa0)
#4 0x00007f895160b398 n/a (libQt6Qml.so.6 + 0x20b398)
#5 0x00007f895160b4a1 _ZN3QV47Runtime12StoreElement4callEPNS_15ExecutionEngineERKNS_5ValueES6_S6_ (libQt6Qml.so.6 + 0x20b4a1)
#6 0x00007f8936d2244d n/a (n/a + 0x0)
#7 0x00007f895164e266 n/a (libQt6Qml.so.6 + 0x24e266)
#8 0x00007f89515a3eb6 n/a (libQt6Qml.so.6 + 0x1a3eb6)
#9 0x00007f895160ea1d _ZN3QV47Runtime18CallPropertyLookup4callEPNS_15ExecutionEngineERKNS_5ValueEjPS4_i (libQt6Qml.so.6 + 0x20ea1d)
#10 0x00007f8936d23e27 n/a (n/a + 0x0)
#11 0x00007f895164e266 n/a (libQt6Qml.so.6 + 0x24e266)
#12 0x00007f8951596300 n/a (libQt6Qml.so.6 + 0x196300)
#13 0x00007f895159c909 _ZN3QV48Function4callEP7QObjectPPvPK9QMetaTypeiPNS_16ExecutionContextE (libQt6Qml.so.6 + 0x19c909)
#14 0x00007f89516f32b0 _ZN24QQmlJavaScriptExpression8evaluateEPPvPK9QMetaTypei (libQt6Qml.so.6 + 0x2f32b0)
#15 0x00007f895168a2cb _ZN25QQmlBoundSignalExpression8evaluateEPPv (libQt6Qml.so.6 + 0x28a2cb)
#16 0x00007f895168f80d n/a (libQt6Qml.so.6 + 0x28f80d)
#17 0x00007f895171cf58 _ZN12QQmlNotifier10emitNotifyEP20QQmlNotifierEndpointPPv (libQt6Qml.so.6 + 0x31cf58)
#18 0x00007f8950bd8b82 n/a (libQt6Core.so.6 + 0x1d8b82)
#19 0x00007f89516f1c36 _ZN20QQmlIncubatorPrivate8incubateER26QQmlInstantiationInterrupt (libQt6Qml.so.6 + 0x2f1c36)
#20 0x00007f89516f1e17 _ZN20QQmlIncubatorPrivate8incubateER26QQmlInstantiationInterrupt (libQt6Qml.so.6 + 0x2f1e17)
#21 0x00007f89516f2974 _ZN24QQmlIncubationController11incubateForEi (libQt6Qml.so.6 + 0x2f2974)
#22 0x000055faff9d58ff _ZN22QsIncubationController8incubateEv (/home/shelomoh/Downloads/noctalia-qs/build/src/quickshell + 0x76f8ff)
#23 0x00007f8950bc6474 _ZN7QObject5eventEP6QEvent (libQt6Core.so.6 + 0x1c6474)
#24 0x00007f8950b6bf48 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt6Core.so.6 + 0x16bf48)
#25 0x00007f8950b6c320 _ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData (libQt6Core.so.6 + 0x16c320)
#26 0x00007f8950e51e78 n/a (libQt6Core.so.6 + 0x451e78)
#27 0x00007f895361df4d n/a (libglib-2.0.so.0 + 0x5ef4d)
#28 0x00007f895361f617 n/a (libglib-2.0.so.0 + 0x60617)
#29 0x00007f895361f825 g_main_context_iteration (libglib-2.0.so.0 + 0x60825)
#30 0x00007f8950e4fcb2 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt6Core.so.6 + 0x44fcb2)
#31 0x00007f8950b76cf6 _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt6Core.so.6 + 0x176cf6)
#32 0x00007f8950b709f1 _ZN16QCoreApplication4execEv (libQt6Core.so.6 + 0x1709f1)
#33 0x000055faff759246 _ZN2qs6launch6launchERKNS0_10LaunchArgsEPPcP16QCoreApplication (/home/shelomoh/Downloads/noctalia-qs/build/src/quickshell + 0x4f3246)
#34 0x000055faff7537b9 launchFromCommand (/home/shelomoh/Downloads/noctalia-qs/build/src/quickshell + 0x4ed7b9)
#35 0x000055faff745007 _ZN2qs6launch4mainEiPPc (/home/shelomoh/Downloads/noctalia-qs/build/src/quickshell + 0x4df007)
#36 0x00007f89504366c1 n/a (libc.so.6 + 0x276c1)
#37 0x00007f89504367f9 __libc_start_main (libc.so.6 + 0x277f9)
#38 0x000055faff7472c5 _start (/home/shelomoh/Downloads/noctalia-qs/build/src/quickshell + 0x4e12c5)
Stack trace of thread 3847:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a23e4 n/a (libc.so.6 + 0x933e4)
#3 0x00007f895051c2f6 ppoll (libc.so.6 + 0x10d2f6)
#4 0x00007f895361f744 n/a (libglib-2.0.so.0 + 0x60744)
#5 0x00007f895361f825 g_main_context_iteration (libglib-2.0.so.0 + 0x60825)
#6 0x00007f8950e4fcb2 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt6Core.so.6 + 0x44fcb2)
#7 0x00007f8950b76cf6 _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt6Core.so.6 + 0x176cf6)
#8 0x00007f8950c9277e _ZN7QThread4execEv (libQt6Core.so.6 + 0x29277e)
#9 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#10 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#11 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3848:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a23e4 n/a (libc.so.6 + 0x933e4)
#3 0x00007f895051c2f6 ppoll (libc.so.6 + 0x10d2f6)
#4 0x00007f895361f744 n/a (libglib-2.0.so.0 + 0x60744)
#5 0x00007f895361f825 g_main_context_iteration (libglib-2.0.so.0 + 0x60825)
#6 0x00007f8950e4fcb2 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt6Core.so.6 + 0x44fcb2)
#7 0x00007f8950b76cf6 _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt6Core.so.6 + 0x176cf6)
#8 0x00007f8950c9277e _ZN7QThread4execEv (libQt6Core.so.6 + 0x29277e)
#9 0x00007f895257607e n/a (libQt6DBus.so.6 + 0x3707e)
#10 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#11 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#12 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3849:
#0 0x00007f895052706d syscall (libc.so.6 + 0x11806d)
#1 0x00007f895364ba2e g_cond_wait (libglib-2.0.so.0 + 0x8ca2e)
#2 0x00007f89535e522d n/a (libglib-2.0.so.0 + 0x2622d)
#3 0x00007f89535e529d g_async_queue_pop (libglib-2.0.so.0 + 0x2629d)
#4 0x00007f894c4af51c n/a (libpangoft2-1.0.so.0 + 0xc51c)
#5 0x00007f895365513c n/a (libglib-2.0.so.0 + 0x9613c)
#6 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#7 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3850:
#0 0x00007f895052706d syscall (libc.so.6 + 0x11806d)
#1 0x00007f895364ba2e g_cond_wait (libglib-2.0.so.0 + 0x8ca2e)
#2 0x00007f89535e522d n/a (libglib-2.0.so.0 + 0x2622d)
#3 0x00007f8953655607 n/a (libglib-2.0.so.0 + 0x96607)
#4 0x00007f895365513c n/a (libglib-2.0.so.0 + 0x9613c)
#5 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#6 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3851:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a23e4 n/a (libc.so.6 + 0x933e4)
#3 0x00007f895051c2f6 ppoll (libc.so.6 + 0x10d2f6)
#4 0x00007f895361f744 n/a (libglib-2.0.so.0 + 0x60744)
#5 0x00007f895361f825 g_main_context_iteration (libglib-2.0.so.0 + 0x60825)
#6 0x00007f895361f872 n/a (libglib-2.0.so.0 + 0x60872)
#7 0x00007f895365513c n/a (libglib-2.0.so.0 + 0x9613c)
#8 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#9 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3852:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a23e4 n/a (libc.so.6 + 0x933e4)
#3 0x00007f895051c2f6 ppoll (libc.so.6 + 0x10d2f6)
#4 0x00007f895361f744 n/a (libglib-2.0.so.0 + 0x60744)
#5 0x00007f895361f9d7 g_main_loop_run (libglib-2.0.so.0 + 0x609d7)
#6 0x00007f895388f0c4 n/a (libgio-2.0.so.0 + 0x1190c4)
#7 0x00007f895365513c n/a (libglib-2.0.so.0 + 0x9613c)
#8 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#9 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3856:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a268c n/a (libc.so.6 + 0x9368c)
#3 0x00007f89504a5068 pthread_cond_timedwait (libc.so.6 + 0x96068)
#4 0x00007f8950d362a5 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x3362a5)
#5 0x00007f8950c91189 n/a (libQt6Core.so.6 + 0x291189)
#6 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3867:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a268c n/a (libc.so.6 + 0x9368c)
#3 0x00007f89504a5068 pthread_cond_timedwait (libc.so.6 + 0x96068)
#4 0x00007f8950d362a5 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x3362a5)
#5 0x00007f8950c91189 n/a (libQt6Core.so.6 + 0x291189)
#6 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3897:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a268c n/a (libc.so.6 + 0x9368c)
#3 0x00007f89504a5068 pthread_cond_timedwait (libc.so.6 + 0x96068)
#4 0x00007f8950d362a5 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x3362a5)
#5 0x00007f8950c91189 n/a (libQt6Core.so.6 + 0x291189)
#6 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3889:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a23e4 n/a (libc.so.6 + 0x933e4)
#3 0x00007f8950529595 epoll_wait (libc.so.6 + 0x11a595)
#4 0x00007f8938027d0a n/a (libspa-support.so + 0x1bd0a)
#5 0x00007f893801263c n/a (libspa-support.so + 0x663c)
#6 0x00007f8953a12401 n/a (libpipewire-0.3.so.0 + 0x8b401)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3854:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a23e4 n/a (libc.so.6 + 0x933e4)
#3 0x00007f895051bdae __poll (libc.so.6 + 0x10cdae)
#4 0x00007f8953af3cf5 n/a (libQt6WaylandClient.so.6 + 0x6acf5)
#5 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#6 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#7 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3898:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a268c n/a (libc.so.6 + 0x9368c)
#3 0x00007f89504a5068 pthread_cond_timedwait (libc.so.6 + 0x96068)
#4 0x00007f8950d362a5 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x3362a5)
#5 0x00007f8950c91189 n/a (libQt6Core.so.6 + 0x291189)
#6 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3853:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a23e4 n/a (libc.so.6 + 0x933e4)
#3 0x00007f895051bdae __poll (libc.so.6 + 0x10cdae)
#4 0x00007f8953af3cf5 n/a (libQt6WaylandClient.so.6 + 0x6acf5)
#5 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#6 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#7 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3900:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a268c n/a (libc.so.6 + 0x9368c)
#3 0x00007f89504a5068 pthread_cond_timedwait (libc.so.6 + 0x96068)
#4 0x00007f8950d362a5 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x3362a5)
#5 0x00007f8950c91189 n/a (libQt6Core.so.6 + 0x291189)
#6 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3855:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a23e4 n/a (libc.so.6 + 0x933e4)
#3 0x00007f895051c2f6 ppoll (libc.so.6 + 0x10d2f6)
#4 0x00007f895361f744 n/a (libglib-2.0.so.0 + 0x60744)
#5 0x00007f895361f825 g_main_context_iteration (libglib-2.0.so.0 + 0x60825)
#6 0x00007f8950e4fcb2 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt6Core.so.6 + 0x44fcb2)
#7 0x00007f8950b76cf6 _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt6Core.so.6 + 0x176cf6)
#8 0x00007f8950c9277e _ZN7QThread4execEv (libQt6Core.so.6 + 0x29277e)
#9 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#10 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#11 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3899:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a268c n/a (libc.so.6 + 0x9368c)
#3 0x00007f89504a5068 pthread_cond_timedwait (libc.so.6 + 0x96068)
#4 0x00007f8950d362a5 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x3362a5)
#5 0x00007f8950c91189 n/a (libQt6Core.so.6 + 0x291189)
#6 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 3938:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a268c n/a (libc.so.6 + 0x9368c)
#3 0x00007f89504a5068 pthread_cond_timedwait (libc.so.6 + 0x96068)
#4 0x00007f8950d362a5 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x3362a5)
#5 0x00007f8950c91189 n/a (libQt6Core.so.6 + 0x291189)
#6 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 331554:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a268c n/a (libc.so.6 + 0x9368c)
#3 0x00007f89504a5068 pthread_cond_timedwait (libc.so.6 + 0x96068)
#4 0x00007f8950d362a5 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x3362a5)
#5 0x00007f8950c91189 n/a (libQt6Core.so.6 + 0x291189)
#6 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 4065:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a23e4 n/a (libc.so.6 + 0x933e4)
#3 0x00007f895051c2f6 ppoll (libc.so.6 + 0x10d2f6)
#4 0x00007f895361f744 n/a (libglib-2.0.so.0 + 0x60744)
#5 0x00007f895361f825 g_main_context_iteration (libglib-2.0.so.0 + 0x60825)
#6 0x00007f8950e4fcb2 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt6Core.so.6 + 0x44fcb2)
#7 0x00007f8950b76cf6 _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt6Core.so.6 + 0x176cf6)
#8 0x00007f8950c9277e _ZN7QThread4execEv (libQt6Core.so.6 + 0x29277e)
#9 0x00007f89529a2fc2 n/a (libQt6Quick.so.6 + 0x3a2fc2)
#10 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#11 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#12 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 331555:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a268c n/a (libc.so.6 + 0x9368c)
#3 0x00007f89504a5068 pthread_cond_timedwait (libc.so.6 + 0x96068)
#4 0x00007f8950d362a5 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x3362a5)
#5 0x00007f8950c91189 n/a (libQt6Core.so.6 + 0x291189)
#6 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 331556:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a268c n/a (libc.so.6 + 0x9368c)
#3 0x00007f89504a5068 pthread_cond_timedwait (libc.so.6 + 0x96068)
#4 0x00007f8950d362a5 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x3362a5)
#5 0x00007f8950c91189 n/a (libQt6Core.so.6 + 0x291189)
#6 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 4119:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a23e4 n/a (libc.so.6 + 0x933e4)
#3 0x00007f895051c2f6 ppoll (libc.so.6 + 0x10d2f6)
#4 0x00007f895361f744 n/a (libglib-2.0.so.0 + 0x60744)
#5 0x00007f895361f825 g_main_context_iteration (libglib-2.0.so.0 + 0x60825)
#6 0x00007f8950e4fcb2 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt6Core.so.6 + 0x44fcb2)
#7 0x00007f8950b76cf6 _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt6Core.so.6 + 0x176cf6)
#8 0x00007f8950c9277e _ZN7QThread4execEv (libQt6Core.so.6 + 0x29277e)
#9 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#10 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#11 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
Stack trace of thread 4533:
#0 0x00007f89504adf32 n/a (libc.so.6 + 0x9ef32)
#1 0x00007f89504a239c n/a (libc.so.6 + 0x9339c)
#2 0x00007f89504a268c n/a (libc.so.6 + 0x9368c)
#3 0x00007f89504a5068 pthread_cond_timedwait (libc.so.6 + 0x96068)
#4 0x00007f8950d362a5 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt6Core.so.6 + 0x3362a5)
#5 0x00007f8950c91189 n/a (libQt6Core.so.6 + 0x291189)
#6 0x00007f8950d31c7a n/a (libQt6Core.so.6 + 0x331c7a)
#7 0x00007f89504a597a n/a (libc.so.6 + 0x9697a)
#8 0x00007f89505292bc n/a (libc.so.6 + 0x11a2bc)
ELF object binary architecture: AMD x86-64
Failed to invoke gdb: No such file or directory