Compare commits

...

3 Commits

Author SHA1 Message Date
92ff95b2e6
Remove obsolete shell popup shortcut
Using `project-shell` as a replacement.
2025-07-14 17:27:29 +02:00
072fd2887b
Show default eshell buffer in normal window 2025-07-14 17:26:13 +02:00
a8446ce820
Abandon shell side windows
I need more shells that the side window can handle, so let's use normal windows for that.
2025-07-14 17:25:29 +02:00
3 changed files with 5 additions and 57 deletions

18
init.el
View File

@ -408,23 +408,6 @@
(display-buffer-reuse-window
display-buffer-pop-up-window)))
;; Inspired by masteringemacs and
;; https://www.gnu.org/software/emacs/manual/html_node/elisp/Frame-Layouts-with-Side-Windows.html
(add-to-list 'display-buffer-alist
'("^\\*eshell-side\\*"
display-buffer-in-side-window
(side . bottom)
(slot . -1)
(window-height . 0.33)
(window-parameters . ((no-other-window . t)))))
(add-to-list 'display-buffer-alist
'("^\\*shell-side\\*"
display-buffer-in-side-window
(side . bottom)
(slot . 1)
(window-height . 0.33)
(window-parameters . ((no-other-window . t)))))
(add-to-list 'display-buffer-alist
'("shell\\*"
(display-buffer-reuse-window
@ -475,7 +458,6 @@ split horizontally again, but this extra work should not matter much."
(use-package db-utils
:commands (endless/fill-or-unfill
db/run-or-hide-shell
db/gnus
db/org-agenda
db/scratch

View File

@ -36,11 +36,13 @@ eshell buffer."
(let ((current-dir (expand-file-name default-directory)))
(cl-flet ((in-eshell-buffer-p ()
(and (derived-mode-p 'eshell-mode)
(string-match-p "^\\*eshell-side\\*" (buffer-name)))))
(string-match-p "^\\*eshell\\*" (buffer-name)))))
(if (and (not arg)
(in-eshell-buffer-p))
(bury-buffer)
(progn
(bury-buffer)
(delete-window))
(unless (in-eshell-buffer-p)
(if-let ((eshell-window (cl-find-if (lambda (window)
@ -49,7 +51,7 @@ eshell buffer."
(window-list-1))))
(select-window eshell-window)
;; No running eshell found, open new one.
(--if-let (display-buffer (let ((eshell-buffer-name "*eshell-side*")) (eshell)))
(--if-let (display-buffer (let ((eshell-buffer-name "*eshell*")) (eshell)))
(select-window it)
(error "Could not start eshell (`display-buffer' returned nil)"))))

View File

@ -90,42 +90,6 @@ If already in *ansi-term* buffer, bury it."
(user-error "Cannot open default refile file: file «%s» does not exist" db/org-default-refile-file))
(find-file db/org-default-refile-file))
(defun db/run-or-hide-shell (arg)
"Opens a shell buffer in new window if not already in one.
Otherwise, closes the current shell window.
The buffer's name has to start with *shell-side* to be recognized by
this function. Otherwise the current buffer is not treated as a shell
buffer.
With ARG, switch to `default-directory' of the current buffer first."
(interactive "P")
(cl-flet ((change-to-shell ()
(if-let ((shell-window (cl-find-if (lambda (window)
(with-current-buffer (window-buffer window)
(and (derived-mode-p 'shell-mode)
(string-match-p "^\\*shell-side\\*" (buffer-name)))))
(window-list-1))))
(select-window shell-window)
(--if-let (display-buffer (shell (get-buffer-create "*shell-side*")))
(select-window it)
(error "Could not start shell (`display-buffer' returned nil)")))))
(if (not arg)
;; toggle shell window
(if (and (derived-mode-p 'shell-mode)
(string-match-p "^\\*shell-side\\*" (buffer-name)))
(bury-buffer)
(change-to-shell))
;; unconditionally go to shell, and also change to cwd
(let ((current-dir (expand-file-name default-directory)))
(change-to-shell)
(end-of-line)
(comint-kill-input)
(insert (format "cd '%s'" current-dir))
(comint-send-input)))))
(defun db/ement-connect ()
"Connect to my matrix account."
(interactive)