From d4176fa946664cf5cddec1b814ebc4fd061f9f66 Mon Sep 17 00:00:00 2001 From: cashmere Date: Thu, 13 Nov 2025 03:03:01 +0100 Subject: add better ibuffer management --- config.org | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) (limited to 'config.org') diff --git a/config.org b/config.org index 41b2803..13adf53 100644 --- a/config.org +++ b/config.org @@ -312,6 +312,123 @@ (280 . "#b4befe")))) #+end_src +* ibuffer + +ibuffer is an integrated buffer management suite. + +If you have Emacs for a long time open or just like me, like to switch between different projects on a constant, keeping a good overview over you buffers is important. + +That's why I added the settings which I found [[https://olddeuteronomy.github.io/post/emacs-ibuffer-config/][here]]. + +I adjusted the config accordingly to my modes which I use on a frequent. + +#+begin_src emacs-lisp +(use-package ibuffer + :straight nil + :config + (setq ibuffer-expert t) + (setq ibuffer-display-summary nil) + (setq ibuffer-use-other-window nil) + (setq ibuffer-show-empty-filter-groups nil) + (setq ibuffer-default-sorting-mode 'filename/process) + (setq ibuffer-title-face 'font-lock-doc-face) + (setq ibuffer-use-header-line t) + (setq ibuffer-default-shrink-to-minimum-size nil) + (setq ibuffer-formats + '((mark modified read-only locked " " + (name 30 30 :left :elide) + " " + (size 9 -1 :right) + " " + (mode 16 16 :left :elide) + " " filename-and-process) + (mark " " + (name 16 -1) + " " filename))) + (setq ibuffer-saved-filter-groups + '(("Main" + ("Directories" (mode . dired-mode)) + ("Rust" (or + (mode . rust-mode) + (mode . rust-ts-mode))) + ("Python" (or + (mode . python-ts-mode) + (mode . c-mode) + (mode . python-mode))) + ("Nix" (or + (mode . nix-mode) + (mode . nix-ts-mode))) + ("Scripts" (or + (mode . shell-script-mode) + (mode . shell-mode) + (mode . sh-mode) + (mode . lua-mode) + (mode . bat-mode))) + ("Config" (or + (mode . conf-mode) + (mode . conf-toml-mode) + (mode . toml-ts-mode) + (mode . conf-windows-mode) + (name . "^\\.clangd$") + (name . "^\\.gitignore$") + (name . "^Doxyfile$") + (name . "^config\\.toml$") + (mode . yaml-mode))) + ("Web" (or + (mode . mhtml-mode) + (mode . html-mode) + (mode . web-mode) + (mode . nxml-mode))) + ("CSS" (or + (mode . css-mode) + (mode . sass-mode))) + ("JS" (or + (mode . js-mode) + (mode . rjsx-mode))) + ("Markup" (or + (mode . markdown-mode) + (mode . adoc-mode))) + ("Org" (mode . org-mode)) + ("LaTeX" (name . "\.tex$")) + ("Magit" (or + (mode . magit-blame-mode) + (mode . magit-cherry-mode) + (mode . magit-diff-mode) + (mode . magit-log-mode) + (mode . magit-process-mode) + (mode . magit-status-mode))) + ("Elfeed" (or + (mode . elfeed-search-mode) + (mode . elfeed-show-mode))) + ("Fundamental" (or + (mode . fundamental-mode) + (mode . text-mode))) + ("Emacs" (or + (mode . emacs-lisp-mode) + (name . "^\\*Help\\*$") + (name . "^\\*Custom.*") + (name . "^\\*Org Agenda\\*$") + (name . "^\\*info\\*$") + (name . "^\\*scratch\\*$") + (name . "^\\*Backtrace\\*$") + (name . "^\\*Messages\\*$")))))) + :hook + (ibuffer-mode . (lambda () + (ibuffer-switch-to-saved-filter-groups "Main")))) +#+end_src + +** nerd-icons-ibuffer + +To spice things up, I enabled the same Nerd Icons which are visible in dired to ibuffer. + +Not necessary but an eyecandy to look at! + +#+begin_src emacs-lisp +(use-package nerd-icons-ibuffer + :ensure t + :hook (ibuffer-mode . nerd-icons-ibuffer-mode)) +#+end_src + * smerge-mode #+begin_src emacs-lisp -- cgit v1.3.1