- Delete deprecated system/ configuration files - Update projects/dotemacs/modules/ with reorganized config - Add .opencode/ directory for agent state - Clean up attachments and unused documentation files
86 lines
2.2 KiB
Org Mode
86 lines
2.2 KiB
Org Mode
#+TITLE: Shell Configuration
|
|
#+PROPERTY: header-args :tangle yes
|
|
|
|
* Shell
|
|
|
|
** Bash completion
|
|
|
|
#+begin_src elisp
|
|
(use-package bash-completion
|
|
:config
|
|
(require 'bash-completion)
|
|
(bash-completion-setup)
|
|
)
|
|
#+end_src
|
|
|
|
#+begin_src elisp
|
|
(defvar shell-dynamic-complete-functions t)
|
|
#+end_src
|
|
|
|
** Eshell
|
|
|
|
Add programmable bash completion to Emacs shell-mode
|
|
#+begin_src elisp :tangle yes
|
|
(require 'bash-completion)
|
|
(add-hook 'eshell-mode-hook
|
|
(lambda ()
|
|
(add-hook 'completion-at-point-functions
|
|
'bash-completion-capf-nonexclusive nil t
|
|
)
|
|
)
|
|
)
|
|
#+end_src
|
|
|
|
Use colors in eshell
|
|
#+begin_src elisp :tangle yes
|
|
(use-package xterm-color
|
|
:commands (xterm-color-filter)
|
|
)
|
|
|
|
(use-package eshell
|
|
:after xterm-color
|
|
:config
|
|
(define-key eshell-hist-mode-map (kbd "M-r") #'consult-history)
|
|
(add-hook 'eshell-mode-hook
|
|
(lambda ()
|
|
(setenv "TERM" "xterm-256color")))
|
|
(add-hook 'eshell-before-prompt-hook (setq xterm-color-preserve-properties t))
|
|
(add-to-list 'eshell-preoutput-filter-functions 'xterm-color-filter)
|
|
(setq eshell-output-filter-functions
|
|
(remove 'eshell-handle-ansi-color eshell-output-filter-functions)
|
|
)
|
|
)
|
|
#+end_src
|
|
|
|
Eshell completion
|
|
#+begin_src elisp :tangle yes
|
|
(add-hook 'eshell-mode-hook
|
|
(lambda ()
|
|
(add-hook 'completion-at-point-functions
|
|
'bash-completion-capf-nonexclusive nil t)))
|
|
#+end_src
|
|
|
|
Emulate A Terminal (EAT)
|
|
#+begin_src elisp :tangle yes
|
|
(use-package eat
|
|
:config
|
|
;; For `eat-eshell-mode'.
|
|
(add-hook 'eshell-load-hook #'eat-eshell-mode)
|
|
|
|
;; For `eat-eshell-visual-command-mode'.
|
|
(add-hook 'eshell-load-hook #'eat-eshell-visual-command-mode)
|
|
)
|
|
#+end_src
|
|
|
|
* Server Actuation (Bash Integration)
|
|
|
|
Ensure that emacsclient always opens in a GUI frame by default when called from the shell.
|
|
|
|
#+begin_src bash :tangle ~/.bash_aliases
|
|
# Use emacsclient to open files in the GUI, starting daemon if needed
|
|
alias em="emacsclient -c -a ''"
|
|
|
|
# Set emacsclient as the default editor
|
|
export EDITOR="emacsclient -c -a ''"
|
|
export VISUAL="emacsclient -c -a ''"
|
|
#+end_src |