You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.4 KiB
36 lines
1.4 KiB
(defun kde-current-activity () |
|
"Returns the current KDE activity" |
|
(substring (shell-command-to-string "qdbus org.kde.ActivityManager /ActivityManager/Activities org.kde.ActivityManager.Activities.CurrentActivity") 0 -1) |
|
) |
|
|
|
(defun kde-current-activity-name () |
|
"Returns the name of the current KDE activity" |
|
(substring (shell-command-to-string (concat "qdbus org.kde.ActivityManager /ActivityManager/Activities org.kde.ActivityManager.Activities.ActivityName " (kde-current-activity))) 0 -1)) |
|
|
|
(defun X-window-id-belongs-to-activity (window-id activity) |
|
(= (shell-command (concat "xprop -id " window-id " | grep _KDE_NET_WM_ACTIVITIES | grep " activity ">/dev/null")) 0) |
|
) |
|
|
|
(defun select-frame-on-activity (activity) |
|
(setq framelist (frame-list)) |
|
(setq done nil) |
|
(while (and framelist (not done)) |
|
(setq cur (car framelist)) |
|
(setq cur-id (cdr (assq 'window-id (frame-parameters cur)))) |
|
(if cur-id (if (X-window-id-belongs-to-activity cur-id activity) (progn; |
|
(setq done 't) (select-frame cur)) )) |
|
(setq framelist (cdr framelist))) |
|
done |
|
) |
|
|
|
(defun select-X-frame () |
|
(setq framelist (frame-list)) |
|
(setq done nil) |
|
(while (and framelist (not done)) |
|
(setq cur (car framelist)) |
|
(setq cur-id (cdr (assq 'window-id (frame-parameters cur)))) |
|
(if cur-id (progn; |
|
(setq done 't) (raise-frame cur))) |
|
(setq framelist (cdr framelist))) |
|
done |
|
)
|
|
|