Hi! I’m pretty new to Doom Emacs, and Emacs in general, having only been using it for a couple of weeks. There are times where I would like to customize the configuration of a package, but I’ve been having trouble doing it without having to maintain a whole copy of the original config.el for that package. I must be doing something wrong, but I’m not sure what.
For an easy example, I would like to customize the display of ibuffer. I’m just looking to change the order of some columns, and create additional views to switch out others.
What happened?
I put the following into my personal config.el:
(after! ibuffer
(setq ibuffer-formats
;; Buffer name view
((mark modified read-only locked
" " (size 9 -1 :right)
" " (mode 16 16 :left :elide)
" " name)
;; File name and process view
(mark modified read-only locked
" " (size 9 -1 :right)
" " (mode 16 16 :left :elide)
" " filename-and-process)
;; minimal view
(mark modified read-only locked " " name " " filename)))
This kind of works, but the problem is that having this in my private config.el seems to completely override the one in emacs/ibuffer/config.el, and I wound up losing the projectile groups and the human-readable formatting for the size field.
I thought that in order to get it working correctly, I had to copy the whole emacs/ibuffer/config.el code into my private config.el and make the few changes I wanted to the (setq ibuffer-formats...)
section. But either I messed something up in the copy process or doing that just doesn’t work, because it started complaining about a variable not being set in the after! block.
What did you expect to happen?
I thought that putting the code to override only the ibuffer-formats section would not wipe out everything else from the ibuffer config.el.
System information
generated Mar 24, 2024 11:20:30
system MacOS 13.6.5 Darwin 22.6.0 arm64 mac
emacs 29.1 EMACSDIR=~/.config/emacs/
EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs
doom 3.0.0-pre PROFILE=_@0 grafted, HEAD -> master, origin/master, origin/HEAD
bea8127 2024-03-05 01:21:09 -0500 ~/.config/doom/
shell /bin/zsh
features ACL GMP GNUTLS JSON LIBXML2 MODULES NOTIFY KQUEUE PDUMPER SQLITE3 THREADS
TOOLKIT_SCROLL_BARS TREE_SITTER XIM ZLIB
traits gui server-running envvar-file
modules :config use-package :completion company vertico :ui doom doom-dashboard
hl-todo indent-guides modeline nav-flash ophints (popup +defaults)
(vc-gutter +pretty) vi-tilde-fringe workspaces :editor (evil +everywhere)
file-templates fold snippets :emacs dired electric undo vc :term vterm
:checkers syntax :tools (eval +overlay) lookup magit :os macos :lang
common-lisp emacs-lisp (graphql +lsp) hy lua markdown org python racket
(scheme +guile) sh :config (default +bindings +smartparens)
packages (janet-mode)
I feel like I’m just doing something wrong, but I’m not sure what it is. I’ve tried looking on the Doom Emacs Documentation site, but it seems to be missing a lot of information.
Any information or help is appreciated.