emacs: use custom function for killing current buffer
[~bandali/configs] / .emacs.d / init.el
index a043652..e36e204 100644 (file)
@@ -1,6 +1,6 @@
-;;; init.el --- bandali's emacs configuration -*- lexical-binding: t -*-
+;;; init.el --- mab's emacs configuration -*- lexical-binding: t -*-
 
 
-;; Copyright (C) 2018-2020  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
 
 ;; 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
@@ -82,7 +82,7 @@
 ;;; whoami
 
 (setq user-full-name "Amin Bandali"
 ;;; whoami
 
 (setq user-full-name "Amin Bandali"
-      user-mail-address "bandali@gnu.org")
+      user-mail-address "mab@gnu.org")
 
 \f
 ;;; comment macro
 
 \f
 ;;; comment macro
@@ -226,6 +226,12 @@ For disabling the behaviour for certain buffers and/or modes."
   (make-local-variable 'mouse-autoselect-window)
   (setq mouse-autoselect-window nil))
 
   (make-local-variable 'mouse-autoselect-window)
   (setq mouse-autoselect-window nil))
 
+(defun b/kill-current-buffer ()
+  "Kill the current buffer."
+  ;; also see https://redd.it/64xb3q
+  (interactive)
+  (kill-buffer (current-buffer)))
+
 \f
 ;;; Defaults
 
 \f
 ;;; Defaults
 
@@ -451,12 +457,26 @@ For disabling the behaviour for certain buffers and/or modes."
   :config (pixel-scroll-mode 1))
 
 (use-package epg-config
   :config (pixel-scroll-mode 1))
 
 (use-package epg-config
+  :config
+  ;; ask for GPG passphrase in minibuffer
+  ;; this will fail if gpg>=2.1 is not available
+  (if (version< "27" emacs-version)
+      (setq epg-pinentry-mode 'loopback)
+    (setq epa-pinentry-mode 'loopback))
   :custom
   (epg-gpg-program (executable-find "gpg")))
 
 (use-package epg
   :after epg-config)
 
   :custom
   (epg-gpg-program (executable-find "gpg")))
 
 (use-package epg
   :after epg-config)
 
+(use-package pinentry
+  :demand
+  :after (epa epg server)
+  :config
+  ;; workaround for systemd-based distros:
+  ;; (setq pinentry--socket-dir server-socket-dir)
+  (pinentry-start))
+
 (use-package auth-source
   :custom
   (auth-sources '("~/.authinfo.gpg"))
 (use-package auth-source
   :custom
   (auth-sources '("~/.authinfo.gpg"))
@@ -483,7 +503,7 @@ For disabling the behaviour for certain buffers and/or modes."
  ("C-S-h C" . describe-char)
  ("C-S-h F" . describe-face)
 
  ("C-S-h C" . describe-char)
  ("C-S-h F" . describe-face)
 
- ("C-x k"   . kill-this-buffer)
+ ("C-x k"   . b/kill-current-buffer)
  ("C-x K"   . kill-buffer)
  ("C-x s"   . save-buffer)
  ("C-x S"   . save-some-buffers)
  ("C-x K"   . kill-buffer)
  ("C-x s"   . save-buffer)
  ("C-x S"   . save-some-buffers)
@@ -2115,7 +2135,7 @@ This function is intended for use with `ivy-ignore-buffers'."
              (nnimap-address "127.0.0.1")
              (nnimap-server-port 143)
              (nnimap-authenticator plain)
              (nnimap-address "127.0.0.1")
              (nnimap-server-port 143)
              (nnimap-authenticator plain)
-             (nnimap-user "bandali@gnu.local")
+             (nnimap-user "mab@gnu.local")
              (nnimap-inbox "INBOX")
              (nnimap-split-methods 'nnimap-split-fancy)
              (nnimap-split-fancy (|
              (nnimap-inbox "INBOX")
              (nnimap-split-methods 'nnimap-split-fancy)
              (nnimap-split-fancy (|
@@ -2398,7 +2418,7 @@ https://shemshak.org/~amin")
   (defvar b/uw-signature "Amin Bandali, MMath Student
 Cheriton School of Computer Science
 University of Waterloo
   (defvar b/uw-signature "Amin Bandali, MMath Student
 Cheriton School of Computer Science
 University of Waterloo
-https://bndl.org")
+https://bandali.eu.org")
   (defvar b/csc-signature "Amin Bandali
 Systems Committee
 Computer Science Club, University of Waterloo
   (defvar b/csc-signature "Amin Bandali
 Systems Committee
 Computer Science Club, University of Waterloo
@@ -2406,9 +2426,11 @@ https://csclub.uwaterloo.ca/~abandali")
   (setq gnus-message-replysign t
         gnus-posting-styles
         '((".*"
   (setq gnus-message-replysign t
         gnus-posting-styles
         '((".*"
-           (address "bandali@gnu.org"))
+           (address "mab@gnu.org"))
           ("nnimap\\+gnu:l\\..*"
            (signature nil))
           ("nnimap\\+gnu:l\\..*"
            (signature nil))
+          ("nnimap\\+gnu:.*"
+           (organization "GNU"))
           ((header "subject" "ThankCRM")
            (to "webmasters-comment@gnu.org")
            (body "")
           ((header "subject" "ThankCRM")
            (to "webmasters-comment@gnu.org")
            (body "")
@@ -2515,7 +2537,7 @@ https://csclub.uwaterloo.ca/~abandali")
         message-subscribed-address-functions
         '(gnus-find-subscribed-addresses)
         message-dont-reply-to-names
         message-subscribed-address-functions
         '(gnus-find-subscribed-addresses)
         message-dont-reply-to-names
-        "\\(\\(\\(amin\\|mab\\)@shemshak\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|mab\\|aminb?\\)@gnu\\.org\\)\\|\\(a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca\\)\\)")
+        "\\(\\(\\(amin\\|mab\\)@shemshak\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(mab\\|bandali\\|aminb?\\)@gnu\\.org\\)\\|\\(a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca\\)\\)")
   ;; (require 'company-ebdb)
   :hook (;; (message-setup . mml-secure-message-sign-pgpmime)
          (message-mode . flyspell-mode)
   ;; (require 'company-ebdb)
   :hook (;; (message-setup . mml-secure-message-sign-pgpmime)
          (message-mode . flyspell-mode)
@@ -2669,6 +2691,7 @@ https://csclub.uwaterloo.ca/~abandali")
     (erc-cmd-DEOP (format "%s" (erc-current-nick))))
   (add-to-list 'erc-modules 'keep-place)
   (add-to-list 'erc-modules 'notifications)
     (erc-cmd-DEOP (format "%s" (erc-current-nick))))
   (add-to-list 'erc-modules 'keep-place)
   (add-to-list 'erc-modules 'notifications)
+  (add-to-list 'erc-modules 'smiley)
   (add-to-list 'erc-modules 'spelling)
   (add-to-list 'erc-modules 'scrolltoplace)
   (erc-update-modules))
   (add-to-list 'erc-modules 'spelling)
   (add-to-list 'erc-modules 'scrolltoplace)
   (erc-update-modules))