From d93ab7e848bf0f4bc1087504eecd7c959d19bf6c Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Fri, 13 Sep 2024 13:52:38 -0400 Subject: Update :3 --- src/gizmo/wasp-cyclone.el | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/gizmo/wasp-cyclone.el (limited to 'src/gizmo/wasp-cyclone.el') diff --git a/src/gizmo/wasp-cyclone.el b/src/gizmo/wasp-cyclone.el new file mode 100644 index 00000000..d7a0d02d --- /dev/null +++ b/src/gizmo/wasp-cyclone.el @@ -0,0 +1,41 @@ +;;; wasp-cyclone --- Gizmocycling -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: + +(require 'wasp-utils) +(require 'wasp-friend) +(require 'wasp-heartrate) +(require 'wasp-chatsummary) + +(defconst w/gizmo-buffer-names + (list + w/friend-buffer + w/heartrate-buffer + w/chatsummary-buffer)) + +(defvar w/gizmo-windows (list)) + +(defun w/gizmo-tag-window () + "Tag the current window as containing a gizmo." + (interactive) + (when-let ((w (selected-window))) + (add-to-list 'w/gizmo-windows w))) + +(defun w/gizmo-cycle-window (w) + "Cycle the gizmo in W." + (when-let* + ((cur (buffer-name (window-buffer w))) + (idx (--find-index (equal it cur) w/gizmo-buffer-names)) + (bufs (-non-nil (-map #'get-buffer w/gizmo-buffer-names))) + (nidx (mod (+ idx 1) (length bufs))) + (buf (nth nidx bufs))) + (set-window-buffer w buf))) + +(defun w/gizmo-cycle () + "Cycle all gizmo-bearing windows." + (interactive) + (--each w/gizmo-windows + (w/gizmo-cycle-window it))) + +(provide 'wasp-cyclone) +;;; wasp-cyclone.el ends here -- cgit v1.2.3