Re: nano: make configuring key bindings easier for users

Steef Boerrigter <[email protected]> Tue, 5 May 2026 16:49:15 -0400
Newsgroups gmane.editors.nano.devel
Message-ID <CAFe6kZsLQYd+8CLxkaZ01dFDpEfTjQ3pJ5qhUVaC2WnhAPqkNA@mail.gmail.com>
--000000000000e092f10651182e2b
Content-Type: multipart/alternative; boundary="000000000000e092f10651182e29"

--000000000000e092f10651182e29
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi again,

I realized I made a mistake.
Both versions of the nanorc file were being saved in the folder which holds
the syntax files.
I added a configure option that lets the user choose the modern key
settings. The correct settings file is then installed to
/usr/local/etc/nanorc accordingly.

Let me know if you need me to repackage all changes into a single commit.

Steef


On Tue, May 5, 2026 at 1:37=E2=80=AFPM Steef Boerrigter <[email protected]>=
 wrote:

> Hi,
>
> I spent a significant amount of time figuring out how to configure nano
> key bindings to fit them to my needs.
> I found a lot of bindings and command names that are basically hidden in
> the source code and I don't think that is a good idea.
> What I did is to take out all the hard-coded key bindings and put all
> commands in well-organized nanorc file. That way, a user has much more
> overview of the available commands and better control of which key they d=
o
> and don't want to have configured.
>
> The sample.nanorc file (and some command line option) support more modern
> key strokes. I created two different nanorc examples, that, hopefully, be=
st
> reflect the exact configuration one would have obtained if using the
> configuration options at the bottom of that file.
>
> I hope you like what I did.
>
> Best regards,
> Met vriendelijke groet,
> Steef Boerrigter
>
>

--000000000000e092f10651182e29
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi again,</div><div><br></div><div>I realized I made =
a mistake.</div><div>Both versions of the nanorc file were being saved in t=
he folder which holds the syntax files.</div><div>I added a configure optio=
n that lets the user choose the modern key settings. The correct settings f=
ile is then installed to /usr/local/etc/nanorc accordingly.</div><div><br><=
/div><div>Let me know if you need me to repackage all changes into a single=
 commit.<br></div><div><br></div><div>Steef</div><div><br></div></div><br><=
div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"g=
mail_attr">On Tue, May 5, 2026 at 1:37=E2=80=AFPM Steef Boerrigter &lt;<a h=
ref=3D"mailto:[email protected]">[email protected]</a>&gt; wrote:<br></div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>Hi,=
</div><div><br></div><div>I spent a significant amount of time figuring out=
 how to configure nano key bindings to fit them to my needs.</div><div>I fo=
und a lot of bindings and command names that are basically hidden in the so=
urce code and I don&#39;t think that is a good idea.</div><div>What I did i=
s to take out all the hard-coded key bindings and put all commands in well-=
organized  nanorc file. That way, a user has much more overview of the avai=
lable commands and better control of which key they do and don&#39;t want t=
o have configured.</div><div><br></div><div>The sample.nanorc file (and som=
e command line option) support more modern key strokes. I created two diffe=
rent nanorc examples, that, hopefully, best reflect the exact configuration=
 one would have obtained if using the configuration options at the bottom o=
f that file.</div><div><br></div><div>I hope you like what I did.</div><div=
><br></div><div>Best regards,</div><div>Met vriendelijke groet,</div><div>S=
teef Boerrigter</div><div><br></div></div>
</blockquote></div>

--000000000000e092f10651182e29--

--000000000000e092f10651182e2b
Content-Type: text/x-patch; charset="US-ASCII"; name="nanorc_installation.patch"
Content-Disposition: attachment; filename="nanorc_installation.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mot3p0hb0>
X-Attachment-Id: f_mot3p0hb0

ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA4ZTc3MWI5YS4u
MzdmMjM0YTEgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAg
LTMwOCw2ICszMDgsMTMgQEAgaWYgdGVzdCAieCRlbmFibGVfbmFub3JjIiAhPSB4bm87IHRoZW4K
IAluYW5vcmNfc3VwcG9ydD15ZXMKIGZpCiAKK0FDX0FSR19FTkFCTEUobW9kZXJuLWNvbmZpZywK
K0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1tb2Rlcm4tY29uZmlnXSwgW0luc3RhbGwgbW9kZXJu
Lm5hbm9yYyBhcyB0aGUgc3lzdGVtIG5hbm9yYyBpbnN0ZWFkIG9mIG9yaWdpbmFsLm5hbm9yY10p
KQoraWYgdGVzdCAieCRlbmFibGVfbW9kZXJuX2NvbmZpZyIgPSB4eWVzICYmIHRlc3QgIngkbmFu
b3JjX3N1cHBvcnQiICE9IHh5ZXM7IHRoZW4KKwlBQ19NU0dfRVJST1IoWworICAqKiogIC0tZW5h
YmxlLW1vZGVybi1jb25maWcgbmVlZHMgLS1lbmFibGUtbmFub3JjIHRvIHdvcmtdKQorZmkKKwog
QUNfQVJHX0VOQUJMRShvcGVyYXRpbmdkaXIsCiBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLW9w
ZXJhdGluZ2Rpcl0sIFtEaXNhYmxlIHRoZSBzZXR0aW5nIG9mIGFuIG9wZXJhdGluZyBkaXJlY3Rv
cnldKSkKIGlmIHRlc3QgIngkZW5hYmxlX3RpbnkiID0geHllczsgdGhlbgpAQCAtMzg1LDYgKzM5
Miw3IEBAIGZpCiAKIEFNX0NPTkRJVElPTkFMKFVTRV9DT0xPUiwgdGVzdCB4JGNvbG9yX3N1cHBv
cnQgPSB4eWVzKQogQU1fQ09ORElUSU9OQUwoVVNFX05BTk9SQywgdGVzdCB4JG5hbm9yY19zdXBw
b3J0ID0geHllcykKK0FNX0NPTkRJVElPTkFMKFVTRV9NT0RFUk5fQ09ORklHLCB0ZXN0IHgkZW5h
YmxlX21vZGVybl9jb25maWcgPSB4eWVzKQogCiBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8g
ZW5hYmxlIFVURi04IHN1cHBvcnRdKQogQUNfQVJHX0VOQUJMRSh1dGY4LCBBU19IRUxQX1NUUklO
RyhbLS1lbmFibGUtdXRmOF0sIFtFbmFibGUgVVRGLTggc3VwcG9ydF0pKQpkaWZmIC0tZ2l0IGEv
ZG9jL01ha2VmaWxlLmFtIGIvZG9jL01ha2VmaWxlLmFtCmluZGV4IDAwYjlkMWRjLi5lOWZmMmMz
YiAxMDA2NDQKLS0tIGEvZG9jL01ha2VmaWxlLmFtCisrKyBiL2RvYy9NYWtlZmlsZS5hbQpAQCAt
NiwxMSArNiwzMiBAQCBkaXN0X2h0bWxfREFUQSA9IGZhcS5odG1sCiBkaXN0X21hbl9NQU5TID0g
bmFuby4xIHJuYW5vLjEKIGh0bWxfcGFnZXMgPSBuYW5vLjEuaHRtbCBybmFuby4xLmh0bWwKIAor
aW5mb19URVhJTkZPUyA9IG5hbm8udGV4aQorCitCVUlMVF9TT1VSQ0VTICs9IG5hbm8uaHRtbAor
ZGlzdF9odG1sX0RBVEEgKz0gbmFuby5odG1sCisKK0FNX01BS0VJTkZPSFRNTEZMQUdTID0gLS1u
by1zcGxpdCAtYyBIRUFERVJTPTAKKworRVhUUkFfRElTVCA9ICQoQlVJTFRfU09VUkNFUykgJChp
bmZvX1RFWElORk9TKQorCitpZiBVU0VfTU9ERVJOX0NPTkZJRworTkFOT1JDX1NPVVJDRSA9IG1v
ZGVybi5uYW5vcmMKK2Vsc2UKK05BTk9SQ19TT1VSQ0UgPSBvcmlnaW5hbC5uYW5vcmMKK2VuZGlm
CisKIGlmIFVTRV9OQU5PUkMKIGRpc3RfbWFuX01BTlMgKz0gbmFub3JjLjUKIGh0bWxfcGFnZXMg
Kz0gbmFub3JjLjUuaHRtbAotcGtnZGF0YV9EQVRBID0gb3JpZ2luYWwubmFub3JjIG1vZGVybi5u
YW5vcmMKLUVYVFJBX0RJU1QgKz0gb3JpZ2luYWwubmFub3JjLmluIG1vZGVybi5uYW5vcmMuaW4K
K0VYVFJBX0RJU1QgKz0gb3JpZ2luYWwubmFub3JjLmluIG1vZGVybi5uYW5vcmMuaW4gb3JpZ2lu
YWwubmFub3JjIG1vZGVybi5uYW5vcmMKKworaW5zdGFsbC1kYXRhLWxvY2FsOgorCSQoTUtESVJf
UCkgJChERVNURElSKSQoc3lzY29uZmRpcikKKwkkKElOU1RBTExfREFUQSkgJChOQU5PUkNfU09V
UkNFKSAkKERFU1RESVIpJChzeXNjb25mZGlyKS9uYW5vcmMKKwordW5pbnN0YWxsLWxvY2FsOgor
CXJtIC1mICQoREVTVERJUikkKHN5c2NvbmZkaXIpL25hbm9yYwogZW5kaWYKIAogbmFuby4xLmh0
bWw6IG5hbm8uMQpAQCAtMjQsMTIgKzQ1LDMgQEAgaWYgR1JPRkZfSFRNTAogQlVJTFRfU09VUkNF
UyArPSAkKGh0bWxfcGFnZXMpCiBkaXN0X2h0bWxfREFUQSArPSAkKGh0bWxfcGFnZXMpCiBlbmRp
ZgotCi1pbmZvX1RFWElORk9TID0gbmFuby50ZXhpCi0KLUJVSUxUX1NPVVJDRVMgKz0gbmFuby5o
dG1sCi1kaXN0X2h0bWxfREFUQSArPSBuYW5vLmh0bWwKLQotQU1fTUFLRUlORk9IVE1MRkxBR1Mg
PSAtLW5vLXNwbGl0IC1jIEhFQURFUlM9MAotCi1FWFRSQV9ESVNUID0gJChCVUlMVF9TT1VSQ0VT
KSAkKGluZm9fVEVYSU5GT1MpCg==
--000000000000e092f10651182e2b--