From ff544f48fb95e5bc06c4fb4c1cb468793a211fe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Sat, 18 Mar 2023 15:21:17 +0100 Subject: [PATCH] core: update ChangeLog and release notes (closes #1238) --- ChangeLog.adoc | 10 +++++++- ReleaseNotes.adoc | 65 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 73 insertions(+), 2 deletions(-) diff --git a/ChangeLog.adoc b/ChangeLog.adoc index d568eac0a..39b478058 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -20,10 +20,15 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes] New features:: + * core: use human readable key bindings, separate keys with comma in combos, remove modifier "meta2-" (issue #1238, task #10317) + * core: make keys normal options, so they are shown and can be updated with `/set` and `/fset` commands (task #12427, task #11783) + * core: add key kbd:[Alt+K] (upper case) to grab raw key and its command (issue #1238) + * core: add option `key` in command `/debug` (issue #1238) + * core: force ctrl keys to lower case when they are added (issue #1875) * core: add access to hashtable properties in evaluation of expressions (issue #1888) * core: display similar command names when a command is unknown (issue #1877) - * core: force ctrl keys to lower case when they are added (issue #1875) * core, plugins: make many identifiers case sensitive (issue #1872, issue #398, bug #32213) + * api: add function config_set_version (issue #1238) * alias: use lower case for default aliases (issue #1872) * irc: add command `/rules` (issue #1864) * irc: add command `/knock` (issue #7) @@ -32,11 +37,14 @@ New features:: Bug fixes:: + * core: display a specific error when trying to bind a key without area in mouse context + * core: fix display of key with command `/key bindctxt ` * core: fix crash in case of NULL message sent to function gui_chat_printf_y_date_tags (issue #1883) * core: allow command `/input move_next_word` going to the end of line (issue #1881) * core: ignore incomplete ctrl/meta/meta2 codes in keys * core: fix display glitch in command errors when a wide char is set in option weechat.look.command_chars (issue #1871) * api: readjust string size in function string_dyn_free when string is not freed + * buflist: do not display keys added in default context on first load * fset: remove scroll to top of fset buffer when options are added or removed (issue #1892) * irc: fix join of channels in "autojoin" server option on first connection to server if auto reconnection is performed (issue #1873) * typing: fix crash when pointer buffer is not received in callback for signal "input_text_changed" (issue #1869) diff --git a/ReleaseNotes.adoc b/ReleaseNotes.adoc index b30748267..f14502b7a 100644 --- a/ReleaseNotes.adoc +++ b/ReleaseNotes.adoc @@ -20,8 +20,71 @@ https://weechat.org/files/changelog/ChangeLog-devel.html[ChangeLog] [[v3.9]] == Version 3.9 (under dev) +[[v3.9_key_bindings_improvements]] +=== Key bindings improvements + +The format of key bindings has changed to be more user-friendly, and this is +a breaking change: legacy keys are automatically converted, but some triggers, +plugins or scripts might need manual changes. + +Overview of new features: + +- use of alias for keys (`meta-left` instead of `meta2-1;3D`) +- use comma to separate keys in combos (`meta-w,meta-up` instead of + `meta-wmeta-meta2-A`) +- control keys are converted to lower keys (`ctrl-a` instead of `ctrl-A`) +- keys are normal options, so they are shown and can be updated with `/set` + and `/fset` commands +- command `/key` without arguments opens the fset buffer with all keys + +See https://specs.weechat.org/specs/2023-002-key-bindings-improvements.html[Key bindings improvements specification] +for more information. + +[[v3.9_new_key_format]] +==== New key format + +Aliases are now used for keys, like `f1`, `home`, `return`, etc. + +In addition, a comma is now required between different keys, for example `ctrl-cb` +is not valid any more and must be replaced by `ctrl-c,b`. + +The keys in weechat.conf are automatically converted from legacy format on first +run or upgrade with a legacy configuration file. + +For keys bound in external plugins or scripts, WeeChat tries to convert them +on-the-fly to stay compatible, but this can not work in all cases (this is a +breaking change). + +The following fixes are done on keys when they are defined: + +- transform upper case ctrl keys to lower case +- replace space char by `space` +- replace `meta2-` by `meta-[` (modifier `meta2-` doesn't exist any more) +- mouse modifiers are now in this order: `alt-` then `ctrl-`. + +A warning is displayed when a raw key or invalid key is added. + +For example `meta-[A` (which should be `up`) or `ctrl-ca` (missing comma, it +should be `ctrl-c,a`). + +[[v3.9_grab_raw_key]] +==== Grab raw key and command + +New key kbd:[Alt+K] (upper case) is added to grab raw key and its command. + +Most of times this command is not needed, and the existing key kbd:[Alt+k] +(lower case) is preferred, as it returns the key using the new aliases. + +For example: + +- key kbd:[Alt+k] then up arrow displays: `up /input history_previous` +- key kbd:[Alt+K] then up arrow displays: `meta-[A` + +Raw keys have higher priority than key with alias (they are looked first); +they can still be used and bound, but this is not recommended. + +They should be used only in case of problem with the new aliases or with your +terminal. + [[v3.9_ctrl_keys_lower_case]] -=== Control keys as lower case +==== Control keys as lower case Keys using the kbd:[Ctrl] key and a letter are now automatically converted to lower case. +