2023-02-06
Nyxt 3 Pre-release 3
This release focuses on a lot of stability improvements to previous pre-releases while also adding a few new features. The features are mostly focused on refining our existing functionality. As an example; one of the most interesting is the evolution of the Lisp REPL. It is now supercharged with all sorts of fun interactive commands.
Please feel free to share your feedback on our GitHub issue tracker!
You can download Nyxt 3 Pre-release 3 here.
Nyxt has a new enhanced and interactive REPL!
Nyxt's describe
interface is vastly improved.
Note: many of the links below are designed to be opened in Nyxt.
3-pre-release-3
nyxt/repl-mode:lisp-repl
renamed torepl ( UNBOUND )
and redesigned to be more approachable with buttons and commands controlling cell formatting, deletion, cleaning, and movement.- New prediction capabilities. Nyxt can now predict your next command, it will show up automatically in the execute-command menu. Nyxt uses a stochastic model to generate predictions for what your next command will be. The model is stored locally and is cleared after every session.
- New
describe-mode
command (an alias fordescribe-class
). describe-command
became an alias fordescribe-function
.auto-mode
is now incorporated into Nyxt core, with its settings residing inmodable-buffer
now.- Support for key files and Yubikey locking in KeePassXC password interface.
- There are default rules for Gopher, Gemini, and Nyxt-internal-pages.
- The rules file is now moved to auto-rules.lisp (instead of the old auto-mode-rules.lisp).
- Startup is more robust against corrupted history files.
diff-mode
is removed.- History globality can be set on a per-buffer basis. See the
global-history-p
slot incontext-buffer
. backtrack-to-hubs-p
allows to revisit the "hub" URLs you often visit, instead of adding them to history anew.- nyxt:// pages can be linked from the outside Internet due to scheme security settings changes.
- When started with
--remote
and without--quit
, Nyxt now reads s-expression from standard input and sends it to the remote process. This avoids the performance penalty of a new process startup on each iteration.
Bindings
- Add
set-action-on-current-suggestion ( UNBOUND )
, bound toC-c C-j
by default.
Programming interface
define-configuration
automatically resolves class names and slot names even without package prefix.- Keybindings are also resolved to reasonable commands when necessary.
- Generate methods instead of functions in
define-parenscript
anddefine-parenscript-async
to ease hooking into those with, for example,:around
methods. after-init-hook
andafter-startup-hook
are browser slots, instead of global variables they used to be.- Allow the command argument to
ffi-add-context-menu-command
to be an arbitrary function. - New package nicknames:
time
forlocal-time
types
fortrivial-types
sym
fornsymbols
- The third value in the
object-attributes
is interpreted as display HTML for the suggestion. See the color-picker support as an example application for this feature. - Universal describe-* commands have been replaced with new sources for the
regular commands, such as
function-non-nyxt-source
,function-internal-source
and so on. - The
browser
class has aprofile
slot. - Renderers are now first class objects, see the
renderer
class. It's possible to change renderer from a same REPL session. set-url ( C-l )
andset-url-new-buffer ( M-l )
accept the:URL
keyword argument and load it when provided.- New
ffi-height
andffi-width
methods to unify most of the height & width methods used before. - Rename
prompter:return-actions
toactions-on-return
. - Rename
prompter:marks-actions
toactions-on-marks
. - Rename
prompter:selection-actions
toactions-on-current-suggestion
. - Rename
prompter:return-action
toactions-on-return
. - Rename
prompter:marks-actions
toactions-on-marks
. - Rename
prompter:selection-actions
toactions-on-current-suggestion
. - Rename
prompter:multi-selection-p
toenable-marks-p
. nyxt/prompt-buffer-mode:return-selection
renamed torun-action-on-return ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:cancel-input
renamed toquit-prompt-buffer ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:toggle-toggle-mark-backwards
renamed totoggle-mark-backwards ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:toggle-mark
renamed totoggle-mark-forwards ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:select-next-source
renamed tonext-source ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:select-previous-source
renamed toprevious-source ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:select-next-page
renamed tonext-page ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:select-previous-page
renamed toprevious-page ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:select-last
renamed tolast-suggestion ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:select-first
renamed tofirst-suggestion ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:select-next
renamed tonext-suggestion ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:select-previous
renamed toprevious-suggestion ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:set-selection-action
renamed toset-action-on-return ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:run-selection-action
renamed torun-action-on-current-suggestion ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:toggle-selection-actions-enabled
renamed totoggle-actions-on-current-suggestion-enabled ( UNBOUND )
. The default keybinding is the same.nyxt/prompt-buffer-mode:insert-selection
renamed toinsert-current-suggestion ( UNBOUND )
. The default keybinding is the same.
Bug fixes
- VI insert mode is triggered in more cases where it should be triggered.
- Invoke the right WebKit command when cutting text with
ffi-buffer-cut
- Fix the display of history suggestions when going forward in history.
- Security: all the non-ASCII domain names are shown as IDN punycodes in addition to aesthetic display in status buffer.
- The canceled page requests are stored to history, making it more consistent.
Did you enjoy this article? Register for our newsletter to receive the latest hacker news from the world of Lisp and browsers!
- Maximum one email per month
- Unsubscribe at any time