 (ke/bind-key-to-dired-and-c-map ke/opinel-prefix "s" 'ke/opinel-get-services-status)
 (ke/bind-key-to-dired-and-c-map ke/opinel-prefix "x" 'ke/run-opinel-remote-command)
 
+;; Eshell
+(defun eshell/ke-compile (argument)
+  (ke/compile argument :pre-make (ke/generate-bear-command)))
+
 (provide 'init-orange)

      (lambda (arg0 arg1)
        (ke/notify (format "Compilation is over ['%s']" (ke/trim-string arg1)))))

(cl-defun ke/compile (argument &key (parallel-jobs 2) (silent t) (alternative-compiler nil) (pre-make nil))
  "KE Compilation System, calls 'compile without cluttering the default values"
  (interactive "sTarget: ")
  (ke/with-compilation-path
   (let* ((full-path (ke/find-where-to-compile (if (eq major-mode 'dired-mode)
                                                   (dired-current-directory)
                                                 (file-name-directory buffer-file-name))))
          (compile-command (concat pre-make " make -C \""
                                   full-path
                                   "\" "

;; Set the bear command
(defun ke/generate-bear-command ()
  "Return a compatible bear command for the buffer"
  (let* ((full-path (ke/find-where-to-compile (ke/pwd))))
    (concat ke/bear-path " -o " full-path "/compile_commands.json -- ")))

(defmacro ke/create-compilation-function (argument)
