emacs.d/modulos/move-border.el
2022-06-18 01:19:35 +02:00

64 lines
1.6 KiB
EmacsLisp

;;; move-border.el --- Move border to resize windows
;; Copyright (C) Unknown
;; Author: Unknown
;; Maintainer: Guillaume Gelin <contact@ramnes.eu>
;; Created 5 sep 2008
;; Keywords: window border
;; Homepage: https://github.com/ramnes/move-border
;; This file is not part of GNU Emacs.
;;; Commentary:
;; Add commands to move border
;; instead of using the built-in
;; window resizing functions
;;; Code:
(defun xor (b1 b2)
(or (and b1 b2)
(and (not b1) (not b2))))
(defun move-border-left-or-right (arg dir)
"General function covering move-border-left and move-border-right. If DIR is
t, then move left, otherwise move right."
(interactive)
(if (null arg) (setq arg 3))
(let ((left-edge (nth 0 (window-edges))))
(if (xor (= left-edge 0) dir)
(shrink-window arg t)
(enlarge-window arg t))))
(defun move-border-up-or-down (arg dir)
"General function covering move-border-up and move-border-down. If DIR is
t, then move up, otherwise move down."
(interactive)
(if (null arg) (setq arg 3))
(let ((top-edge (nth 1 (window-edges))))
(if (xor (= top-edge 0) dir)
(shrink-window arg nil)
(enlarge-window arg nil))))
(defun move-border-left (arg)
(interactive "P")
(move-border-left-or-right arg t))
(defun move-border-right (arg)
(interactive "P")
(move-border-left-or-right arg nil))
(defun move-border-up (arg)
(interactive "P")
(move-border-up-or-down arg t))
(defun move-border-down (arg)
(interactive "P")
(move-border-up-or-down arg nil))
(provide 'move-border)
;;; move-border.el ends here