aboutsummaryrefslogtreecommitdiffstats
path: root/config/ags/modules/overview/actions.js
diff options
context:
space:
mode:
authorJa.KooLit <jimmielovejay@gmail.com>2024-05-05 00:12:26 +0900
committerGitHub <noreply@github.com>2024-05-05 00:12:26 +0900
commit962a09dd0088cd01cbf3e678c4c500ff5087e4e4 (patch)
tree92f8977ed345ba8a39141ff7d36f423efd46f43a /config/ags/modules/overview/actions.js
parente27bc1e75280f02a0798e7150d7e7c775ee1aff6 (diff)
parente29068df76f763a999b9013ece32c8adb299b29f (diff)
Merge branch 'experimental-ags' into main
Diffstat (limited to 'config/ags/modules/overview/actions.js')
-rw-r--r--config/ags/modules/overview/actions.js28
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
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage