X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/8146824a5a0175e7e51e5cba82ef88cf105ef50d..1eb203130bcee485d5abaead5dc7ee723a49d864:/lisp/bandali-multi-term.el diff --git a/lisp/bandali-multi-term.el b/lisp/bandali-multi-term.el new file mode 100644 index 0000000..1e02e36 --- /dev/null +++ b/lisp/bandali-multi-term.el @@ -0,0 +1,81 @@ +;;; bandali-multi-term.el --- bandali's multi-term setup -*- lexical-binding: t; -*- + +;; Copyright (C) 2020 Amin Bandali + +;; Author: Amin Bandali +;; Keywords: terminals + +;; 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 +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; My multi-term configuration. + +;;; Code: + +(use-package multi-term + :disabled + :defer 0.6 + :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 + ("C-c C-j" . term-char-mode)) + :config + (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 + multi-term-dedicated-window-height 20 + multi-term-dedicated-max-window-height 30 + 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-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-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) + ("" . term-send-backward-kill-word) + ("" . 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" + ""))) + +(provide 'bandali-multi-term) +;;; bandali-multi-term.el ends here