emacs: fix multi-term C-c C-j binding
[~bandali/configs] / .emacs.d / init.el
index bc58c27..87199e9 100644 (file)
@@ -93,7 +93,9 @@
 ;; Not necessary when using straight.el
 ;;   (C-h v straight-package-neutering-mode RET)
 
 ;; Not necessary when using straight.el
 ;;   (C-h v straight-package-neutering-mode RET)
 
-(comment
+(when (and
+       (not (featurep 'straight))
+       (version< emacs-version "27"))
   (setq package-enable-at-startup nil)
   ;; (package-initialize)
   )
   (setq package-enable-at-startup nil)
   ;; (package-initialize)
   )
   (exec-path-from-shell-copy-env "SSH_AGENT_PID")
   (exec-path-from-shell-copy-env "SSH_AUTH_SOCK"))
 
   (exec-path-from-shell-copy-env "SSH_AGENT_PID")
   (exec-path-from-shell-copy-env "SSH_AUTH_SOCK"))
 
-
 ;; only one custom theme at a time
 (comment
   (defadvice load-theme (before clear-previous-themes activate)
 ;; only one custom theme at a time
 (comment
   (defadvice load-theme (before clear-previous-themes activate)
@@ -443,6 +444,14 @@ For disabling the behaviour for certain buffers and/or modes."
 ;; allow scrolling in Isearch
 (setq isearch-allow-scroll t)
 
 ;; allow scrolling in Isearch
 (setq isearch-allow-scroll t)
 
+(use-feature vc
+  :bind ("C-x v C-=" . vc-ediff))
+
+(use-feature ediff
+  :config (add-hook 'ediff-after-quit-hook-internal 'winner-undo)
+  :custom ((ediff-window-setup-function 'ediff-setup-windows-plain)
+           (ediff-split-window-function 'split-window-horizontally)))
+
 \f
 ;;; General bindings
 
 \f
 ;;; General bindings
 
@@ -457,7 +466,7 @@ For disabling the behaviour for certain buffers and/or modes."
 
  ("C-c F m" . make-frame-command)
  ("C-c F d" . delete-frame)
 
  ("C-c F m" . make-frame-command)
  ("C-c F d" . delete-frame)
- ("C-c F D" . delete-other-frames)
+ ("C-c F D" . server-edit)
 
  ("C-c o"   . other-window)
 
 
  ("C-c o"   . other-window)
 
@@ -626,6 +635,7 @@ For disabling the behaviour for certain buffers and/or modes."
   (nconc magit-section-initial-visibility-alist
          '(([unpulled status] . show)
            ([unpushed status] . show)))
   (nconc magit-section-initial-visibility-alist
          '(([unpulled status] . show)
            ([unpushed status] . show)))
+  :custom (magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1)
   :custom-face (magit-diff-file-heading ((t (:weight normal)))))
 
 ;; recently opened files
   :custom-face (magit-diff-file-heading ((t (:weight normal)))))
 
 ;; recently opened files
@@ -886,6 +896,7 @@ For disabling the behaviour for certain buffers and/or modes."
 
 ;; highlight uncommitted changes in the left fringe
 (use-package diff-hl
 
 ;; highlight uncommitted changes in the left fringe
 (use-package diff-hl
+  :defer 0.6
   :config
   (setq diff-hl-draw-borders nil)
   (global-diff-hl-mode)
   :config
   (setq diff-hl-draw-borders nil)
   (global-diff-hl-mode)
@@ -1369,13 +1380,17 @@ For disabling the behaviour for certain buffers and/or modes."
 
 (use-package multi-term
   :defer 0.6
 
 (use-package multi-term
   :defer 0.6
-  :bind (("C-c a s m" . multi-term-dedicated-toggle)
+  :bind (("C-c a s m m" . multi-term)
+         ("C-c a s m d" . multi-term-dedicated-toggle)
+         ("C-c a s m p" . multi-term-prev)
+         ("C-c a s m n" . multi-term-next)
          :map term-mode-map
          :map term-mode-map
-         ("C-c C-j" . term-char-mode)
-         :map term-raw-map
-         ("C-c C-j" . term-line-mode))
+         ("C-c C-j" . term-char-mode))
   :config
   :config
-  (setq multi-term-program "/bin/screen"
+  (setq multi-term-program "screen"
+        multi-term-program-switches (concat "-c"
+                                            (getenv "XDG_CONFIG_HOME")
+                                            "/screen/screenrc")
         ;; TODO: add separate bindings for connecting to existing
         ;; session vs. always creating a new one
         multi-term-dedicated-select-after-open-p t
         ;; TODO: add separate bindings for connecting to existing
         ;; session vs. always creating a new one
         multi-term-dedicated-select-after-open-p t
@@ -1384,19 +1399,36 @@ For disabling the behaviour for certain buffers and/or modes."
         term-bind-key-alist
         '(("C-c C-c" . term-interrupt-subjob)
           ("C-c C-e" . term-send-esc)
         term-bind-key-alist
         '(("C-c C-c" . term-interrupt-subjob)
           ("C-c C-e" . term-send-esc)
+          ("C-c C-j" . term-line-mode)
           ("C-k" . kill-line)
           ("C-k" . kill-line)
-          ("C-y" . term-paste)
+          ;; ("C-y" . term-paste)
+          ("C-y" . term-send-raw)
           ("M-f" . term-send-forward-word)
           ("M-b" . term-send-backward-word)
           ("M-p" . term-send-up)
           ("M-n" . term-send-down)
           ("M-f" . term-send-forward-word)
           ("M-b" . term-send-backward-word)
           ("M-p" . term-send-up)
           ("M-n" . term-send-down)
+          ("M-j" . term-send-raw-meta)
+          ("M-y" . term-send-raw-meta)
+          ("M-/" . term-send-raw-meta)
+          ("M-0" . term-send-raw-meta)
+          ("M-1" . term-send-raw-meta)
+          ("M-2" . term-send-raw-meta)
+          ("M-3" . term-send-raw-meta)
+          ("M-4" . term-send-raw-meta)
+          ("M-5" . term-send-raw-meta)
+          ("M-6" . term-send-raw-meta)
+          ("M-7" . term-send-raw-meta)
+          ("M-8" . term-send-raw-meta)
+          ("M-9" . term-send-raw-meta)
           ("<C-backspace>" . term-send-backward-kill-word)
           ("<M-DEL>" . term-send-backward-kill-word)
           ("M-d" . term-send-delete-word)
           ("M-," . term-send-raw)
           ("M-." . comint-dynamic-complete))
         term-unbind-key-alist
           ("<C-backspace>" . term-send-backward-kill-word)
           ("<M-DEL>" . term-send-backward-kill-word)
           ("M-d" . term-send-delete-word)
           ("M-," . term-send-raw)
           ("M-." . comint-dynamic-complete))
         term-unbind-key-alist
-        '("C-z" "C-x" "C-c" "C-h" "C-y" "<ESC>")))
+        '("C-z" "C-x" "C-c" "C-h"
+          ;; "C-y"
+          "<ESC>")))
 
 (use-package page-break-lines
   :defer 0.5
 
 (use-package page-break-lines
   :defer 0.5
@@ -1520,19 +1552,19 @@ For disabling the behaviour for certain buffers and/or modes."
             (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 "amin@bndl.org"))
-     (nnimap "uwaterloo"
+            (nnimap-user "amin@bndl.local"))
+     (nnimap "uw"
              (nnimap-stream plain)
              (nnimap-address "127.0.0.1")
              (nnimap-server-port 143)
              (nnimap-authenticator plain)
              (nnimap-stream plain)
              (nnimap-address "127.0.0.1")
              (nnimap-server-port 143)
              (nnimap-authenticator plain)
-             (nnimap-user "abandali@uwaterloo.ca"))
-     (nnimap "csclub"
+             (nnimap-user "abandali@uw.local"))
+     (nnimap "csc"
              (nnimap-stream plain)
              (nnimap-address "127.0.0.1")
              (nnimap-server-port 143)
              (nnimap-authenticator plain)
              (nnimap-stream plain)
              (nnimap-address "127.0.0.1")
              (nnimap-server-port 143)
              (nnimap-authenticator plain)
-             (nnimap-user "abandali@csclub.uw")))
+             (nnimap-user "abandali@csc.uw.local")))
    gnus-message-archive-group "nnimap+amin:Sent"
    gnus-parameters
    '(("gnu\\.deepspec"
    gnus-message-archive-group "nnimap+amin:Sent"
    gnus-parameters
    '(("gnu\\.deepspec"
@@ -1679,12 +1711,12 @@ For disabling the behaviour for certain buffers and/or modes."
            (to "webmasters-comment@gnu.org")
            (body "Added  to 2019supporters.html.\n\nMoving to campaigns.\n\n-amin\n")
            (eval (setq a/message-cite-say-hi nil)))
            (to "webmasters-comment@gnu.org")
            (body "Added  to 2019supporters.html.\n\nMoving to campaigns.\n\n-amin\n")
            (eval (setq a/message-cite-say-hi nil)))
-          ("nnimap\\+uwaterloo:.*"
+          ("nnimap\\+uw:.*"
            (address "abandali@uwaterloo.ca")
            (address "abandali@uwaterloo.ca")
-           (gcc "\"nnimap+uwaterloo:Sent Items\""))
-          ("nnimap\\+csclub:.*"
+           (gcc "\"nnimap+uw:Sent Items\""))
+          ("nnimap\\+csc:.*"
            (address "abandali@csclub.uwaterloo.ca")
            (address "abandali@csclub.uwaterloo.ca")
-           (gcc "nnimap+csclub:Sent")))))
+           (gcc "nnimap+csc:Sent")))))
 
 (use-feature gnus-topic
   :hook (gnus-group-mode . gnus-topic-mode)
 
 (use-feature gnus-topic
   :hook (gnus-group-mode . gnus-topic-mode)
@@ -1699,6 +1731,15 @@ For disabling the behaviour for certain buffers and/or modes."
   :config
   (setq gnus-permanently-visible-groups "\\(:INBOX$\\|:gnu$\\)"))
 
   :config
   (setq gnus-permanently-visible-groups "\\(:INBOX$\\|:gnu$\\)"))
 
+(use-feature gnus-win
+  :config
+  (setq gnus-use-full-window nil))
+
+(use-feature gnus-dired
+  :commands gnus-dired-mode
+  :init
+  (add-hook 'dired-mode-hook 'gnus-dired-mode))
+
 (use-feature mm-decode
   :config
   (setq mm-discouraged-alternatives '("text/html" "text/richtext")))
 (use-feature mm-decode
   :config
   (setq mm-discouraged-alternatives '("text/html" "text/richtext")))