mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-03-29 21:52:05 +02:00
feat(wm): add locked containers per workspace
This commit adds the concept of locked container indexes to komorebi workspaces. When a container index is locked, it can only be displaced by manual user actual - usually when another container is moved there, and when this happens, that container becomes the locked container. In the locked state, the container at the locked index should never be displaced by new windows opening or existing windows around it being closed. When the total number of containers on a workspace falls below the number of the locked index, the locked index will be removed. A locked index can be identified by a special border color linked to the new WindowKind::UnfocusedLocked variant. The implementation of locked container indexes is backed by a new data structure called a LockedDeque, which is a VecDeque with an auxiliary HashSet which keeps track of locked indices. A new komorebic command "toggle-lock" has been added to support programmatic use of this feature, as well as the LockMonitorWorkspaceContainer and UnlockMonitorWorkspaceContainer SocketMessage variants which can be used by status bars.
This commit is contained in:
54
schema.json
54
schema.json
@@ -2211,6 +2211,38 @@
|
||||
"Mantle",
|
||||
"Crust"
|
||||
]
|
||||
},
|
||||
"unfocused_locked_border": {
|
||||
"description": "Border colour when the container is unfocused and locked (default: Red)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Rosewater",
|
||||
"Flamingo",
|
||||
"Pink",
|
||||
"Mauve",
|
||||
"Red",
|
||||
"Maroon",
|
||||
"Peach",
|
||||
"Yellow",
|
||||
"Green",
|
||||
"Teal",
|
||||
"Sky",
|
||||
"Sapphire",
|
||||
"Blue",
|
||||
"Lavender",
|
||||
"Text",
|
||||
"Subtext1",
|
||||
"Subtext0",
|
||||
"Overlay2",
|
||||
"Overlay1",
|
||||
"Overlay0",
|
||||
"Surface2",
|
||||
"Surface1",
|
||||
"Surface0",
|
||||
"Base",
|
||||
"Mantle",
|
||||
"Crust"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2700,6 +2732,28 @@
|
||||
"Base0E",
|
||||
"Base0F"
|
||||
]
|
||||
},
|
||||
"unfocused_locked_border": {
|
||||
"description": "Border colour when the container is unfocused and locked (default: Base08)",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Base00",
|
||||
"Base01",
|
||||
"Base02",
|
||||
"Base03",
|
||||
"Base04",
|
||||
"Base05",
|
||||
"Base06",
|
||||
"Base07",
|
||||
"Base08",
|
||||
"Base09",
|
||||
"Base0A",
|
||||
"Base0B",
|
||||
"Base0C",
|
||||
"Base0D",
|
||||
"Base0E",
|
||||
"Base0F"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user