diff --git a/lisp/apps.el b/lisp/apps.el
index 5cea8b0ed7c751de5ee06d9ec9188ffab5def1ff..d18490137947b5c803851065b2073863beaba3be 100644
--- a/lisp/apps.el
+++ b/lisp/apps.el
@@ -43,17 +43,29 @@
     "gd" 'magit-diff-range))
 
 ;;; Shell
-(use-package eshell
+;; (use-package eshell
+;;   :ensure nil
+;;   :init
+;;   (setq eshell-scroll-to-bottom-on-input 'all
+;;         eshell-scroll-to-bottom-on-output 'all
+;;         eshell-kill-processes-on-exit t
+;;         eshell-hist-ignoredups t
+;;         eshell-input-filter (lambda (input) (not (string-match-p "\\`\\s-+" input)))
+;;         eshell-prompt-regexp "^.* 位 "
+;;         eshell-glob-case-insensitive t
+;;         eshell-error-if-no-glob t)
+;;   :config
+;;   (user/set-global-leader-key "'" 'eshell/toggle-eshell))
+
+(use-package aweshell
   :ensure nil
-  :init
-  (setq eshell-scroll-to-bottom-on-input 'all
-        eshell-scroll-to-bottom-on-output 'all
-        eshell-kill-processes-on-exit t
-        eshell-hist-ignoredups t
-        eshell-input-filter (lambda (input) (not (string-match-p "\\`\\s-+" input)))
-        eshell-prompt-regexp "^.* 位 "
-        eshell-glob-case-insensitive t
-        eshell-error-if-no-glob t))
+  :load-path "site-lisp/aweshell"
+  :config
+  (user/set-global-leader-key*
+    "'" 'aweshell-dedicated-toggle
+    "ts" 'aweshell-toggle)
+  :custom
+  (aweshell-dedicated-window-height 20))
 
 ;;; Rime
 (use-package rime