(in-package :stumpwm) (defun push-w (w) (move-windows-to-group (list w) ".tag-store")) (defun tagged-p (w tag) (or (equal tag "T") (find tag (window-tags w) :test 'equalp))) (defun tagged-any-p (w argtags) (let* ((tag (if (stringp argtags) (remove "" (cl-ppcre:split " " (string-upcase argtags)) :test 'equalp) (mapcar 'string-upcase argtags)))) (intersection tag (cons "T" (window-tags w)) :test 'equalp))) (defun tag-re-p (w tre) (find-if (lambda (tag) (cl-ppcre:scan tre tag)) (cons "T" (window-tags w))))