emacs: experiment with some window-management-related key bindings
[~bandali/configs] / .emacs.d / init.el
index 490df15..a90ab7c 100644 (file)
@@ -1,6 +1,6 @@
 ;;; init.el --- Amin Bandali's Emacs config -*- lexical-binding: t -*-
 
-;; Copyright (C) 2018-2019  Amin Bandali <bandali@gnu.org>
+;; Copyright (C) 2018-2019  Amin Bandali <mab@gnu.org>
 
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
@@ -482,7 +482,6 @@ For disabling the behaviour for certain buffers and/or modes."
  ("s-p"     . beginning-of-buffer)
  ("s-n"     . end-of-buffer)
 
- ("M-o"     . other-window)
  ("M-O"     . facemenu-keymap)
 
  :map emacs-lisp-mode-map
@@ -843,7 +842,7 @@ For disabling the behaviour for certain buffers and/or modes."
    ("M-p"      . outline-previous-visible-heading)
    ("M-n"      . outline-next-visible-heading)
    :prefix-map a/outline-prefix-map
-   :prefix "s-o"
+   :prefix "s-O"
    ("TAB" . outline-toggle-children)
    ("a"   . outline-hide-body)
    ("H"   . outline-hide-body)
@@ -1301,7 +1300,7 @@ For disabling the behaviour for certain buffers and/or modes."
     "C-c P 4" "projectile/other-window"
     "C-c q"   "boxquote"
     "s-g"     "magit"
-    "s-o"     "outline"
+    "s-O"     "outline"
     "s-t"     "themes")
 
   ;; prefixes for major modes
@@ -1611,6 +1610,27 @@ For disabling the behaviour for certain buffers and/or modes."
 (use-package emojify
   :hook (erc-mode . emojify-mode))
 
+(use-feature window
+  :bind
+  (("s-o"   . other-window)
+   ("M-o"   . other-window)
+   ("s-/ ." . split-window-right)
+   ("s-/ ," . split-window-below)
+   ("s-/ 0" . delete-window)
+   ("s-q"   . delete-window)))
+
+(use-feature windmove
+  :defer 0.6
+  :bind
+  (("s-h" . windmove-left)
+   ("s-j" . windmove-down)
+   ("s-k" . windmove-up)
+   ("s-l" . windmove-right)
+   ("s-H" . windmove-swap-states-left)
+   ("s-J" . windmove-swap-states-down)
+   ("s-K" . windmove-swap-states-up)
+   ("s-L" . windmove-swap-states-right)))
+
 \f
 ;;; Email (with Gnus)
 
@@ -1877,23 +1897,22 @@ For disabling the behaviour for certain buffers and/or modes."
 
 (use-feature gnus-msg
   :config
-  (defvar a/gnu-signature "Amin Bandali | GNU Webmaster
-https://www.gnu.org/people/webmeisters.html#bandali
-GPG Key: BE62 7373 8E61 6D6D 1B3A  08E8 A21A 0202 4881 6103")
-  (defvar a/uw-signature "Amin Bandali | https://aminb.org
-Master of Mathematics Student
+  (defvar a/uw-signature "Amin Bandali, MMath Student
 Cheriton School of Computer Science
-University of Waterloo")
-  (defvar a/csc-signature "Amin Bandali | Termcom, CSC
-https://csclub.uwaterloo.ca/~abandali")
+University of Waterloo
+https://shemshak.org/~amin")
+  (defvar a/csc-signature "Amin Bandali
+Termcom, Computer Science Club
+University of Waterloo
+https://shemshak.org/~amin")
   (setq gnus-posting-styles
         '((".*"
            (address "amin@shemshak.org")
            (body "\nBest,\n")
            (eval (setq a/message-cite-say-hi t)))
           ("nnimap\\+gnu:.*"
-           (address "bandali@gnu.org")
-           (signature a/gnu-signature)
+           (address "mab@gnu.org")
+           (organization "GNU Project")
            (eval (set (make-local-variable 'message-user-fqdn) "fencepost.gnu.org")))
           ((header "subject" "ThankCRM")
            (to "webmasters-comment@gnu.org")
@@ -1901,11 +1920,13 @@ https://csclub.uwaterloo.ca/~abandali")
            (eval (setq a/message-cite-say-hi nil)))
           ("nnimap\\+uw:.*"
            (address "abandali@uwaterloo.ca")
+           (organization "University of Waterloo")
            (signature a/uw-signature))
           ("nnimap\\+uw:INBOX"
            (gcc "\"nnimap+uw:Sent Items\""))
           ("nnimap\\+csc:.*"
            (address "abandali@csclub.uwaterloo.ca")
+           (organization "Computer Science Club, University of Waterloo")
            (signature a/csc-signature)
            (gcc "nnimap+csc:Sent")))))
 
@@ -1976,7 +1997,7 @@ https://csclub.uwaterloo.ca/~abandali")
         message-subscribed-address-functions
         '(gnus-find-subscribed-addresses)
         message-dont-reply-to-names
-        "\\(\\(amin@\\(shemshak\\|bndl\\)\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|aminb?\\|mab\\)@gnu\\.org\\)\\|\\(a\\(min\\.\\)?bandali@uwaterloo\\.ca\\)\\|\\(abandali@csclub\\.uwaterloo\\.ca\\)\\)")
+        "\\(\\(amin@\\(shemshak\\|bndl\\)\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(mab\\|bandali\\|aminb?\\)@gnu\\.org\\)\\|\\(a\\(min\\.\\)?bandali@uwaterloo\\.ca\\)\\|\\(abandali@csclub\\.uwaterloo\\.ca\\)\\)")
   (require 'company-ebdb)
   :hook (;; (message-setup . mml-secure-message-sign-pgpmime)
          (message-mode . flyspell-mode)