diff options
| author | Ja.KooLit <jimmielovejay@gmail.com> | 2024-05-04 15:42:48 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-04 15:42:48 +0900 |
| commit | 1127bae8815e1b60b637d0c88832bddae7cc5a1a (patch) | |
| tree | 2501119e4914f79535e5bd1e12d64fc6754337c6 /config/ags/modules/overview/actions.js | |
| parent | 5e304d31a220a64338e5cb84e397d1a102855260 (diff) | |
| parent | dc9f0cd58454b4cb33a704b11e4cc8a7c6594e67 (diff) | |
Merge pull request #231 from SherLock707/dev_overview
Added ags overview widget
Diffstat (limited to 'config/ags/modules/overview/actions.js')
| -rw-r--r-- | config/ags/modules/overview/actions.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/config/ags/modules/overview/actions.js b/config/ags/modules/overview/actions.js new file mode 100644 index 00000000..766cf454 --- /dev/null +++ b/config/ags/modules/overview/actions.js @@ -0,0 +1,28 @@ +import * as Utils from 'resource:///com/github/Aylur/ags/utils.js'; +import Hyprland from 'resource:///com/github/Aylur/ags/service/hyprland.js'; + +function moveClientToWorkspace(address, workspace) { + Utils.execAsync(['bash', '-c', `hyprctl dispatch movetoworkspacesilent ${workspace},address:${address} &`]); +} + +export function dumpToWorkspace(from, to) { + if (from == to) return; + Hyprland.clients.forEach(client => { + if (client.workspace.id == from) { + moveClientToWorkspace(client.address, to); + } + }); +} + +export function swapWorkspace(workspaceA, workspaceB) { + if (workspaceA == workspaceB) return; + const clientsA = []; + const clientsB = []; + Hyprland.clients.forEach(client => { + if (client.workspace.id == workspaceA) clientsA.push(client.address); + if (client.workspace.id == workspaceB) clientsB.push(client.address); + }); + + clientsA.forEach((address) => moveClientToWorkspace(address, workspaceB)); + clientsB.forEach((address) => moveClientToWorkspace(address, workspaceA)); +}
\ No newline at end of file |
