;;; 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
("s-p" . beginning-of-buffer)
("s-n" . end-of-buffer)
- ("M-o" . other-window)
("M-O" . facemenu-keymap)
:map emacs-lisp-mode-map
("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)
;; ’ can be part of a word
(setq ispell-local-dictionary-alist
`((nil "[[:alpha:]]" "[^[:alpha:]]"
- "['\x2019]" nil ("-B") nil utf-8)))
+ "['\x2019]" nil ("-B") nil utf-8))
+ ispell-program-name (executable-find "hunspell"))
;; don't send ’ to the subprocess
(defun endless/replace-apostrophe (args)
(cons (replace-regexp-in-string
"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
:token nday-students-token
:subscribed-channels '(general)
:full-and-display-names t)
- (add-to-list 'swiper-font-lock-exclude 'slack-message-buffer-mode t)
+ (with-eval-after-load 'swiper
+ (add-to-list 'swiper-font-lock-exclude 'slack-message-buffer-mode t))
(setq lui-time-stamp-format "[%Y-%m-%d %H:%M:%S]"
lui-time-stamp-only-when-changed-p t
lui-time-stamp-position 'right)
(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)
(use-feature gnus-msg
:config
- (defvar a/gnu-signature "Amin Bandali | GNU Webmaster
-https://bandali.eu.org | https://gnu.org
-GPG Key: BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103")
(defvar a/uw-signature "Amin Bandali, MMath Student
Cheriton School of Computer Science
University of Waterloo
-https://bandali.eu.org")
- (defvar a/csc-signature "Amin Bandali | Termcom, CSC
-https://csclub.uwaterloo.ca/~abandali/")
+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")
(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")))))
(use-feature sendmail
:config
- (setq sendmail-program "/usr/bin/msmtp"
+ (setq sendmail-program (executable-find "msmtp")
;; message-sendmail-extra-arguments '("-v" "-d")
mail-specify-envelope-from t
mail-envelope-from 'header))
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)