summaryrefslogtreecommitdiff
path: root/dotfiles-darwin
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles-darwin')
-rw-r--r--dotfiles-darwin/emacs/functions.el24
-rw-r--r--dotfiles-darwin/emacs/init.el5
2 files changed, 29 insertions, 0 deletions
diff --git a/dotfiles-darwin/emacs/functions.el b/dotfiles-darwin/emacs/functions.el
new file mode 100644
index 0000000..2339e3e
--- /dev/null
+++ b/dotfiles-darwin/emacs/functions.el
@@ -0,0 +1,24 @@
+;; -*- lexical-binding: t -*-
+
+(defun my/modify-frame-parameters (parameters &optional frame)
+ (when (frame-parameter frame 'fullscreen)
+ (toggle-frame-maximized))
+ (modify-frame-parameters frame (append parameters
+ '((height . 1.0) (top . 1.0)
+ (left . 0.0) (user-position t)))))
+
+(defun my/resize-frame (&optional frame)
+ "Interactively resize FRAME."
+ (interactive)
+ (let ((echo-keystrokes nil))
+ (set-transient-map
+ (let ((map (make-sparse-keymap)))
+ (dolist (elem `(("j" . ((width . ,(/ 2.0 3))))
+ ("k" . ((left . 1.0) (width . ,(/ 2.0 3))))
+ ("l" . ((left . 0.5) (width . 0.5)))))
+ (keymap-set map (car elem) (lambda ()
+ (interactive)
+ (my/modify-frame-parameters (cdr elem)))))
+ map)
+ t nil
+ "Use %k to resize the frame")))
diff --git a/dotfiles-darwin/emacs/init.el b/dotfiles-darwin/emacs/init.el
index a8c0ab2..a34ffe4 100644
--- a/dotfiles-darwin/emacs/init.el
+++ b/dotfiles-darwin/emacs/init.el
@@ -15,3 +15,8 @@
(when my/night-theme (load-theme my/night-theme :no-confirm :no-enable))
(run-at-time nil (* 15 60) #'my/maybe-switch-theme my/day-theme
my/night-theme #'my/macos-dark-p)))
+
+
+;; “Window” Management
+
+(keymap-global-set "C-c l" #'my/resize-frame)