Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defcommand repack-group-numbers (&optional preserved) ()
- "Ensure that used group numbers do not have gaps; ignore PRESERVED group numbers."
- (let ((groups (remove-if
- (lambda (x) (member (group-number x) preserved))
- (sort1 (screen-groups (current-screen))
- #'<
- :key #'group-number))))
- (labels
- ((repack (&optional items (idx 1))
- (cond
- ((null items)
- nil)
- ((= idx (group-number (car items)))
- (repack (cdr items) (1+ idx)))
- ((member idx (mapcar #'group-number groups))
- (repack items (1+ idx)))
- (t (progn
- (setf (group-number (car items)) idx)
- (repack (cdr items) (1+ idx)))))))
- (repack groups))))
Advertisement
Add Comment
Please, Sign In to add comment