Common Settings and Easy Configuration

Common Settings and Easy Configuration

Common settings and easy configuration recently landed in Nyxt! Now it is possible to set the value of any class/slot from the UI! You don't need to know any Lisp.

When you first start Nyxt, our new *help* page presents you with some helpful buttons to click on:

If you click on Common settings, you'll be presented with a simple menu where you can select your favorite keybinding scheme, home page URL, and zoom level.

Your settings will automatically be saved and reloaded whenever you start Nyxt!

Don't worry about overwriting changes to your init.lisp file, these changes are automatically stored in a separate auto-config.lisp file. This file is loaded before your init.lisp file so that you can always override any configuration.

Here's what would be appended to your auto-config.lisp file if you clicked on Use Emacs in the common settings screen.

(DEFINE-CONFIGURATION WEB-BUFFER
  ((DEFAULT-MODES '(EMACS-MODE CERTIFICATE-EXCEPTION-MODE WEB-MODE BASE-MODE))))

No magic. Transparent, straightforward Lisp.

Beyond customization of common settings, we've added the ability to customize any class or slot from the describe-slot and describe-class commands.

Below you can see an example of how we can customize a class:

Every single slot marked with Configure will allow you to input whatever value you like. Anything that is introspectable is customizable!

Let's run through an example: let's change the height of our status buffer.

First you would find the slot that you are interested in, in this case the status buffer height slot.

Then you would view the current value, the default form, and the documentation. From this screen, you can press Configure. After pressing Configure, you will be prompted for a new value. Input any valid value you would like.

After you supply your new value, any new windows (even after restarting Nyxt) will utilize the new value for the status buffer height! That's it!

Please note: configuration changes only affect new instances of an object, not existing ones.

Thanks for reading :-)