Ho trovato molto interessante, come al solito, il video di Prot che mostra come gestire la posizione e la visualizzazione dei buffer, il tutto senza l’ausilio di pacchetti aggiuntivi, di seguito il video
Ye, visto il video, molto bello.
Per adesso io utilizzo la seguente config
(setq display-buffer-alist
'(;; no window
("*Pwndoc Export*"
(display-buffer-no-window)
(allow-no-window . t)
)
("*Async Shell Command*"
(display-buffer-no-window)
(allow-no-window . t)
)
("*commands-history*"
(display-buffer-no-window)
(allow-no-window . t)
)
))
Molto minimale. Nello specifico odio quando Emacs fa spawnare delle finestre così a cavolo.
Nel caso di EXWM ci sono poi altre cose che possono essere fattte. Nello specifico ci sono un paio di hook interessanti.
(add-hook 'exwm-update-title-hook #'my/exwm-update-title)
(add-hook 'exwm-manage-finish-hook #'my/configure-window-by-class)
Questo per cambiare il titolo di un buffer. Tipo qui di default avrei “burp-StartBurp” e io lo cambio con “burp”.
(defun my/exwm-update-title ()
(interactive)
(pcase exwm-class-name
("burp-StartBurp"
(exwm-workspace-rename-buffer "burp"))
))
E questo per rendere una particolare window floating. Il pcase fa un conditional match sulla classe della finestra, che sarebbe il nome del buffer in EXWM.
(defun my/configure-window-by-class ()
(interactive)
(pcase exwm-class-name
("Emacs"
(exwm-floating-toggle-floating)
(exwm-layout-toggle-mode-line)
(call-interactively #'exwm-input-release-keyboard)
)
))
Per altri riferimenti consiglio il video di System Crafter
https://systemcrafters.net/emacs-desktop-environment/optimizing-window-placement/
Io l’ho trovata molto comoda riguardo vterm, anzichè aprirlo in un nuovo buffer di default, mi trovo molto bene sopratutto per azioni veloci ad aprirlo in basso:
(defun my-display-buffer-below-and-focus (buffer alist)
"Display BUFFER below selected and give it focus."
(let ((window (display-buffer-below-selected buffer alist)))
(select-window window)
window))
(use-package window
:config
(setq display-buffer-alist
`(("\\`\\*\\(Completions\\|vterm\\|eshell\\)\\*\\'"
my-display-buffer-below-and-focus
(window-height . 25)))))
Come combinazione uso C-z RET, ho trovato utile rimappare la funzione suspend-frame poichè in exwm non si può utilizzare
Voglio troppo provare anche io EXWM, anche io il vterm lo voglio in basso e senza riaprire una nuova finestra/buffer
È davvero una bella esperienza, è quel qualcosa in più che cominci a sentir mancare quando utilizzi emacs sempre di più. La mia configurazione di EXWM è ancora molto ridotta mi sono limitato ad impostare i keybindings che in genere di I3 e di stumpwm di default