20260522 Getting back into it...
Kernel Mailing List Setup neomutt + lei + b4
So here I am now, behind the terminal. I've been away from the keyboard for around 12 months now. I recently got brave enough to open the laptop and start coding again. doing a few Hackerranks to get the head thinking in algorithms again. I've been missing all the updates to lkml so I got neomutt working with some new tools. for pulling out patches from the mailing list.
So I couldn't help but notice this: flipper one and so I'll be checking in on the rk3576 patches. Then gotta decide which SBC to get, and getting up to speed with linux-rockchip over the coming weeks. Loads to do so watch this space for updates.
What was installed
sudo dnf install b4 neomutt lei- b4 kernel patch tool: fetches, applies, and sends patch series
- neomutt terminal mail client (aliased as
mutt) - lei Local Email Interface (from public-inbox); pulls mail from lore.kernel.org into local Maildir
Directory structure created
~/Mail/
├── rk3576/ # RK3576-tagged patches (rockchip + media lists, 3 months)
├── linux-rockchip/ # full linux-rockchip list (1 month)
├── linux-s390/ # s390 list (1 month)
├── kvm/ # KVM list (1 month)
└── lkml/ # LKML (3 days firehose, keep window short)
lei setup
Add lore.kernel.org remotes (done once)
lei add-external https://lore.kernel.org/linux-s390/
lei add-external https://lore.kernel.org/kvm/
lei add-external https://lore.kernel.org/linux-kernel/
lei add-external https://lore.kernel.org/linux-rockchip/
lei add-external https://lore.kernel.org/linux-media/Create saved searches (done once)
lei q -o ~/Mail/linux-s390 --threads --save \
'(l:linux-s390.vger.kernel.org) AND rt:1.month.ago..'
lei q -o ~/Mail/kvm --threads --save \
'(l:kvm.vger.kernel.org) AND rt:1.month.ago..'
lei q -o ~/Mail/lkml --threads --save \
'(l:linux-kernel.vger.kernel.org) AND rt:3.days.ago..'
lei q -o ~/Mail/linux-rockchip --threads --save \
'(l:linux-rockchip.lists.infradead.org) AND rt:1.month.ago..'
# RK3576-specific: subject-filtered across rockchip + media lists
lei q -o ~/Mail/rk3576 --threads --save \
'(l:linux-rockchip.lists.infradead.org OR l:linux-media.vger.kernel.org) AND (s:rk3576 OR s:RK3576) AND rt:3.months.ago..'Daily refresh
lei up --all # refresh every saved search
lei up ~/Mail/rk3576 # refresh just onePut in cron for automation: 0 * * * * lei up --all
Query syntax quick reference
l:list.addresslist address (dots not @)rt:1.month.ago..received time window (open-ended = up to now)s:keywordsubject contains keywordAND/ORboolean operatorslei ls-searchlist all saved searcheslei ls-externallist configured remotes
neomutt config (~/.muttrc)
Key settings explained: I didn't really like doing some of the defaults so put together something saner. This may yet need more refinement, if anybody got any tips on this, give me a shout!
set mbox_type = Maildir # lei produces Maildir, not mbox
set folder = ~/Mail # root of all mailboxes
set spoolfile = ~/Mail/rk3576 # which mailbox opens by default
set sort = threads # group messages into threads essential for patches
set sort_aux = last-date-received
set collapse_all # start with threads collapsed
set pager_stop = yes # don't auto-advance to next message at end of page
unset markers # no + markers on wrapped lines (patches look cleaner)
Keybindings configured
| Key | Action |
|---|---|
j / k |
next / previous thread |
J / K |
next / previous single message |
[ / ] |
previous / next thread |
n |
next unread thread |
<space> (index) |
jump to next unread mailbox |
<space> (pager) |
page down through message |
g / G |
first / last entry |
Ctrl+N / Ctrl+P |
next / previous mailbox in sidebar |
Ctrl+O |
open highlighted mailbox in sidebar |
d |
delete (asks for confirmation) |
q |
back / quit |
h |
show full headers (find Message-ID for b4) |
Reload config without restarting
From within neomutt: :source ~/.muttrc
b4 working with patches
Pull and apply a patch series
# find message-id: open message in neomutt, press h, look at Message-ID: header
# e.g. 20260420-rk3576-pwm-v5-0-ae7cfbbe5427@collabora.com
# download latest revision as ready-to-apply mbox (folds in Reviewed-by etc.)
b4 am <message-id>
git am ./v5_series-name.mbx
# fetch and apply in one step
b4 shazam <message-id>Compare revisions (review what changed v4 → v5)
b4 diff <message-id>Send your own patches
b4 prep -n my-feature -f origin/master # start a tracked series
# ... write commits ...
b4 prep --edit-cover # write cover letter
b4 prep --auto-to-cc # fill To:/Cc: via get_maintainer.pl
b4 send --dry-run # preview
b4 send # sendFind maintainers for a file/patch
./scripts/get_maintainer.pl <file-or-patch>
./scripts/get_maintainer.pl arch/s390/Kernel list etiquette (enforced, not optional)
- Plain text only no HTML
- Reply inline/interleaved, trim quoted text, never top-post
- Wrap prose at 72–75 columns
- Patches sent in-reply-to the cover letter (b4 handles this)
- One logical change per patch; explain the why in the commit message