mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-29 16:02:51 -05:00
niri: add workspace assignment helper
This commit is contained in:
@@ -39,6 +39,11 @@ Singleton {
|
|||||||
|
|
||||||
signal windowUrgentChanged
|
signal windowUrgentChanged
|
||||||
|
|
||||||
|
function setWorkspaces(newMap) {
|
||||||
|
root.workspaces = newMap
|
||||||
|
allWorkspaces = Object.values(newMap).sort((a, b) => a.idx - b.idx)
|
||||||
|
}
|
||||||
|
|
||||||
Component.onCompleted: fetchOutputs()
|
Component.onCompleted: fetchOutputs()
|
||||||
|
|
||||||
Timer {
|
Timer {
|
||||||
@@ -280,8 +285,7 @@ Singleton {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
root.workspaces = newWorkspaces
|
setWorkspaces(newWorkspaces)
|
||||||
allWorkspaces = Object.values(newWorkspaces).sort((a, b) => a.idx - b.idx)
|
|
||||||
|
|
||||||
focusedWorkspaceIndex = allWorkspaces.findIndex(w => w.is_focused)
|
focusedWorkspaceIndex = allWorkspaces.findIndex(w => w.is_focused)
|
||||||
if (focusedWorkspaceIndex >= 0) {
|
if (focusedWorkspaceIndex >= 0) {
|
||||||
@@ -325,18 +329,15 @@ Singleton {
|
|||||||
updatedWorkspaces[id] = updatedWs
|
updatedWorkspaces[id] = updatedWs
|
||||||
}
|
}
|
||||||
|
|
||||||
root.workspaces = updatedWorkspaces
|
setWorkspaces(updatedWorkspaces)
|
||||||
|
|
||||||
focusedWorkspaceId = data.id
|
focusedWorkspaceId = data.id
|
||||||
focusedWorkspaceIndex = Object.values(updatedWorkspaces).findIndex(w => w.id === data.id)
|
focusedWorkspaceIndex = allWorkspaces.findIndex(w => w.id === data.id)
|
||||||
|
|
||||||
if (focusedWorkspaceIndex >= 0) {
|
if (focusedWorkspaceIndex >= 0) {
|
||||||
const ws = Object.values(updatedWorkspaces)[focusedWorkspaceIndex]
|
currentOutput = allWorkspaces[focusedWorkspaceIndex].output || ""
|
||||||
currentOutput = ws.output || ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
allWorkspaces = Object.values(updatedWorkspaces).sort((a, b) => a.idx - b.idx)
|
|
||||||
|
|
||||||
updateCurrentOutputWorkspaces()
|
updateCurrentOutputWorkspaces()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -377,7 +378,7 @@ Singleton {
|
|||||||
for (const id in root.workspaces) {
|
for (const id in root.workspaces) {
|
||||||
updatedWorkspaces[id] = id === focusedWindow.workspace_id ? updatedWs : root.workspaces[id]
|
updatedWorkspaces[id] = id === focusedWindow.workspace_id ? updatedWs : root.workspaces[id]
|
||||||
}
|
}
|
||||||
root.workspaces = updatedWorkspaces
|
setWorkspaces(updatedWorkspaces)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -395,7 +396,7 @@ Singleton {
|
|||||||
for (const id in root.workspaces) {
|
for (const id in root.workspaces) {
|
||||||
updatedWorkspaces[id] = id === data.workspace_id ? updatedWs : root.workspaces[id]
|
updatedWorkspaces[id] = id === data.workspace_id ? updatedWs : root.workspaces[id]
|
||||||
}
|
}
|
||||||
root.workspaces = updatedWorkspaces
|
setWorkspaces(updatedWorkspaces)
|
||||||
}
|
}
|
||||||
|
|
||||||
const updatedWindows = []
|
const updatedWindows = []
|
||||||
@@ -533,9 +534,7 @@ Singleton {
|
|||||||
for (const id in root.workspaces) {
|
for (const id in root.workspaces) {
|
||||||
updatedWorkspaces[id] = id === data.id ? updatedWs : root.workspaces[id]
|
updatedWorkspaces[id] = id === data.id ? updatedWs : root.workspaces[id]
|
||||||
}
|
}
|
||||||
root.workspaces = updatedWorkspaces
|
setWorkspaces(updatedWorkspaces)
|
||||||
|
|
||||||
allWorkspaces = Object.values(updatedWorkspaces).sort((a, b) => a.idx - b.idx)
|
|
||||||
|
|
||||||
windowUrgentChanged()
|
windowUrgentChanged()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user