summaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorAmin Bandali <bandali@gnu.org>2020-04-25 16:06:36 -0400
committerAmin Bandali <bandali@gnu.org>2020-04-25 16:10:23 -0400
commit1eb203130bcee485d5abaead5dc7ee723a49d864 (patch)
tree659d3c4c42f97272fd18082a65eaf0ee7376f765 /lisp
parent8146824a5a0175e7e51e5cba82ef88cf105ef50d (diff)
downloadconfigs-1eb203130bcee485d5abaead5dc7ee723a49d864.tar.gz
configs-1eb203130bcee485d5abaead5dc7ee723a49d864.tar.xz
configs-1eb203130bcee485d5abaead5dc7ee723a49d864.zip
Assimilate 8 drones
Assimilate boxquote v2.1-1-g7e47e0e Assimilate expand-region 0.11.0-36-gea6b4cb Assimilate hl-todo v3.1.1-2-g3bba459 Assimilate orgalist b436971 Assimilate page-break-lines 0.11-29-g314b397 Assimilate unkillable-scratch 1.0.0-5-gb24c2a7 Assimilate which-key v3.4.0-24-g8b49ae9 Assimilate yasnippet 0.14.0-6-g5b1217a Also, remove some unused (use-package ...) forms.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/bandali-message.el4
-rw-r--r--lisp/bandali-multi-term.el81
-rw-r--r--lisp/bandali-projectile.el67
-rw-r--r--lisp/bandali-theme.el3
-rw-r--r--lisp/bandali-yasnippet.el26
5 files changed, 180 insertions, 1 deletions
diff --git a/lisp/bandali-message.el b/lisp/bandali-message.el
index be88049..ca30dc4 100644
--- a/lisp/bandali-message.el
+++ b/lisp/bandali-message.el
@@ -115,5 +115,9 @@
(gnus-harvest-install 'message-x)
(gnus-harvest-install))))
+(use-package orgalist
+ :after message
+ :hook (message-mode . orgalist-mode))
+
(provide 'bandali-message)
;;; bandali-message.el ends here
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 <bandali@gnu.org>
+;; 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 <https://www.gnu.org/licenses/>.
+
+;;; 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)
+ ("<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>")))
+
+(provide 'bandali-multi-term)
+;;; bandali-multi-term.el ends here
diff --git a/lisp/bandali-projectile.el b/lisp/bandali-projectile.el
new file mode 100644
index 0000000..41504e6
--- /dev/null
+++ b/lisp/bandali-projectile.el
@@ -0,0 +1,67 @@
+;;; bandali-projectile.el --- bandali's Projectile setup -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2020 Amin Bandali
+
+;; Author: Amin Bandali <bandali@gnu.org>
+;; Keywords: convenience
+
+;; 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 <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; My Projectile setup.
+
+;;; Code:
+
+(use-package projectile
+ :disabled
+ :defer 0.5
+ :bind-keymap ("C-c p" . projectile-command-map)
+ :config
+ (projectile-mode)
+
+ (defun b/projectile-mode-line-fun ()
+ "Report project name and type in the modeline."
+ (let ((project-name (projectile-project-name))
+ (project-type (projectile-project-type)))
+ (format "%s%s"
+ projectile-mode-line-prefix
+ (if project-type
+ (format ":%s" project-type)
+ ""))))
+ (setq projectile-mode-line-function 'b/projectile-mode-line-fun)
+
+ (defun my-projectile-invalidate-cache (&rest _args)
+ ;; ignore the args to `magit-checkout'
+ (projectile-invalidate-cache nil))
+
+ (eval-after-load 'magit-branch
+ '(progn
+ (advice-add 'magit-checkout
+ :after #'my-projectile-invalidate-cache)
+ (advice-add 'magit-branch-and-checkout
+ :after #'my-projectile-invalidate-cache)))
+
+ (when (featurep 'which-key)
+ (which-key-add-key-based-replacements
+ "C-c p" "projectile"
+ "C-c p s" "projectile/search"
+ "C-c p x" "projectile/execute"
+ "C-c p 4" "projectile/other-window"))
+ :custom
+ (projectile-completion-system 'ivy)
+ (projectile-mode-line-prefix " proj"))
+
+(provide 'bandali-projectile)
+;;; bandali-projectile.el ends here
diff --git a/lisp/bandali-theme.el b/lisp/bandali-theme.el
index 87fc231..13be391 100644
--- a/lisp/bandali-theme.el
+++ b/lisp/bandali-theme.el
@@ -51,7 +51,8 @@
"For use with the `doom-tomorrow-night' theme.")
(eval-when-compile
- (declare-function exwm-systemtray--refresh "exwm-systemtray"))
+ (declare-function exwm-systemtray--refresh "exwm-systemtray")
+ (declare-function erc-hl-nicks-reset-face-table "erc-hl-nicks"))
(defun b/lights-on ()
"Enable my favourite light theme."
diff --git a/lisp/bandali-yasnippet.el b/lisp/bandali-yasnippet.el
new file mode 100644
index 0000000..6cdbc7a
--- /dev/null
+++ b/lisp/bandali-yasnippet.el
@@ -0,0 +1,26 @@
+(use-package yasnippet
+ :defer 0.6
+ :config
+ (declare-function yas-reload-all
+ "yasnippet" (&optional no-jit interactive))
+ (declare-function yas-maybe-expand-abbrev-key-filter
+ "yasnippet" (cmd))
+
+ (defconst yas-verbosity-cur yas-verbosity)
+ (setq yas-verbosity 2)
+ (add-to-list 'yas-snippet-dirs "~/src/git/guix/etc/snippets" t)
+ (yas-reload-all)
+ (setq yas-verbosity yas-verbosity-cur)
+
+ (defun b/yas-maybe-expand-abbrev-key-filter (cmd)
+ (when (and (yas-maybe-expand-abbrev-key-filter cmd)
+ (not (bound-and-true-p git-commit-mode)))
+ cmd))
+ (defconst b/yas-maybe-expand
+ '(menu-item "" yas-expand :filter b/yas-maybe-expand-abbrev-key-filter))
+ (define-key yas-minor-mode-map
+ (kbd "SPC") b/yas-maybe-expand)
+
+ (yas-global-mode))
+
+(provide 'bandali-yasnippet)