blob: 8bcd9c4ada695e6b3658a6e6b363886082bbe87b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
;; -*- lexical-binding: t; -*-
(require 'all-the-icons)
;;;; term
(defalias 'term 'ansi-term)
;;;; eshell
(defun eshell-open-buffer ()
"Opens eshell in the bottom
side window."
(interactive)
(let ((curr-buffer (current-buffer))
(eshell (eshell)))
(switch-to-buffer curr-buffer)
(display-buffer-in-side-window (get-buffer eshell) '((side . top)))
(switch-to-buffer-other-window eshell)))
(defun bd/get-prompt-path ()
(abbreviate-file-name (eshell/pwd)))
(defun bd/eshell-prompt ()
"Assemble a shell prompt including host, git
status, and path."
(concat
"\n"
(propertize (system-name) 'face `(:foreground "#edb54b"))
(format " %s " (all-the-icons-fileicon "gn"))
(propertize (bd/get-prompt-path) 'face `(:foreground "#33859d"))
(propertize (format-time-string " %a, %R") 'face `(:foreground "#888ba5"))
(propertize "\n> " 'face `(:foreground "#c33027"))))
(require 'esh-mode)
(keymap-global-set "C-z C-e" 'eshell-open-buffer)
(keymap-set eshell-mode-map "C-q" 'delete-window) ; mostly for side window
(keymap-set eshell-mode-map "<tab>" 'completion-at-point) ; mostly for side window
(setopt eshell-prompt-function 'bd/eshell-prompt
eshell-prompt-regexp "^> "
eshell-scroll-to-bottom-on-input 'this
eshell-banner-message (concat "\n" (propertize " " 'display (create-image (expand-file-name "~/.config/emacs/images/raven.png") 'png nil :scale 0.2 :align-to "center")) "\n"))
;;;; shell
(require 'shell)
(keymap-set shell-mode-map "C-c C-k" #'comint-clear-buffer)
(setopt shell-command-prompt-show-cwd t
shell-highlight-undef-enable t
shell-kill-buffer-on-exit t
comint-prompt-read-only t)
(provide 'bd--shells)
|