mirror of
https://git.sr.ht/~magic_rb/dotfiles
synced 2024-12-01 20:46:12 +01:00
04d61eb94a
Signed-off-by: magic_rb <magic_rb@redalder.org>
1.8 KiB
1.8 KiB
Windows and Frames
(add-to-list 'default-frame-alist '(alpha-background . 80))
Disable window changing using the mouse, it saves me from accidental switches.
(defun cv/mouse-set-point (fun event &optional promote)
(let ((window (posn-window (event-start event))))
(when (equal window (selected-window))
(funcall fun event promote))))
(advice-add 'mouse-set-point :around 'cv/mouse-set-point)
(defun cv/mouse-drag-region (fun event)
(let ((window-end (posn-window (event-end event))))
(when (equal window-end (selected-window))
(funcall fun event))))
(advice-add 'mouse-drag-region :around 'cv/mouse-drag-region)
(defun cv/mouse-set-region (fun event)
(let ((window (posn-window (event-start event))))
(when (equal window (selected-window))
(funcall fun event))))
(advice-add 'mouse-set-region :around 'cv/mouse-set-region)
(defun maybe-delete-frame-buffer (frame)
"When a dedicated FRAME is deleted, also kill its buffer.
A dedicated frame contains a single window whose buffer is not
displayed anywhere else."
(let ((windows (window-list frame)))
(when (eq 1 (length windows))
(let ((buffer (window-buffer (car windows))))
(when (eq 1 (length (get-buffer-window-list buffer nil t)))
(when (frame-parameter frame 'unsplittable)
(with-current-buffer buffer
(when (equal major-mode #'vterm-mode) (kill-process (get-buffer-process buffer)))
(kill-buffer buffer))))))))
(add-to-list 'delete-frame-functions #'maybe-delete-frame-buffer)