1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 21:42:51 -05:00

feat: add workspace rename dialog (#1429)

* feat: add workspace rename dialog

- Adds a modal dialog to rename the current workspace
- Supports both Niri (via IPC socket) and Hyprland (via hyprctl dispatch)
- Default keybinding: Ctrl+Shift+R to open the dialog
- Pre-fills with current workspace name
- Allows setting empty name to reset to default

* refactor: wrap WorkspaceRenameModal in LazyLoader

Reduces memory footprint when the modal is not in use.
This commit is contained in:
Kamil Chmielewski
2026-01-23 19:46:34 +01:00
committed by GitHub
parent 775b381987
commit b3ea28c5c4
9 changed files with 321 additions and 1 deletions

View File

@@ -1292,4 +1292,41 @@ Item {
target: "desktopWidget"
}
IpcHandler {
function open(): string {
if (!workspaceRenameModalLoader || !workspaceRenameModalLoader.item) {
return "WORKSPACE_RENAME_MODAL_NOT_FOUND";
}
workspaceRenameModalLoader.active = true;
const ws = NiriService.workspaces[NiriService.focusedWorkspaceId];
workspaceRenameModalLoader.item.show(ws?.name || "");
return "WORKSPACE_RENAME_MODAL_OPENED";
}
function close(): string {
if (!workspaceRenameModalLoader || !workspaceRenameModalLoader.item) {
return "WORKSPACE_RENAME_MODAL_NOT_FOUND";
}
workspaceRenameModalLoader.item.hide();
return "WORKSPACE_RENAME_MODAL_CLOSED";
}
function toggle(): string {
if (!workspaceRenameModalLoader || !workspaceRenameModalLoader.item) {
return "WORKSPACE_RENAME_MODAL_NOT_FOUND";
}
if (workspaceRenameModalLoader.item.shouldBeVisible) {
workspaceRenameModalLoader.item.hide();
return "WORKSPACE_RENAME_MODAL_CLOSED";
} else {
workspaceRenameModalLoader.active = true;
const ws = NiriService.workspaces[NiriService.focusedWorkspaceId];
workspaceRenameModalLoader.item.show(ws?.name || "");
return "WORKSPACE_RENAME_MODAL_OPENED";
}
}
target: "workspace-rename"
}
}