More standard tabline?

Is there a way to configure Nyxt to have a more traditional tabline. Don’t get me wrong I don’t mind it being on the bottom or the buffer style but I just hate not being able to see all my opened tabs at once so something more along the lines of Qutebrowser or Luakit’s tabline would be nice. Does anyone have an example configuration or some documentation that could help with this?

There is definitely a way. The status area (tabline) can be customized any way you like. For examples you can look at the default configuration in status.lisp. Basically you can override format-status-tabs with your own function that displays the tabs as you wish :slight_smile:

Please let me know if you need more help with this!

1 Like

Thank you, that’s exactly what I was looking for, I’m trying to use the code from the default status.lisp to base my custom status like on but it appears that they make use of a system called spinneret, I’m not too well versed in common lisp so is there a way I can have this package installed to use their exact config by default.

Spinneret doesn’t seem to be available from the user config, however cl-markup is, seems to works roughly the same as spinneret. You can call it with (markup:markup ...).

If you’re as a noob as I am, you can discover all available packages from init.lisp by calling (list-all-packages) in a repl.

After checking the repl it appears that while spinneret isn’t available quicklisp is available from the repl. which doesn’t make sense why (ql:quickload “spinneret”) doesn’t work since it should just install the package?

Is there a way to add multiple status lines (like on on the top of the screen and another at the bottom) or a way to layer the existing one so I can have multiple rows?

There is a way, but you’ll need a knowledge of GTK guts of Nyxt to accomplish that. It will also be hackish and can break with any update.

If you’re still curious, you can look at source/renderers/gtk.lisp file in Nyxt source, there most of status bar creation/positioning (as opposed to status bar filling in source/status.lisp) happens. I’m no help there, as some code in this file is old and hacks onto GTK, which I’m terribly unaware about :frowning:

The thing is… we switched markup libraries. The version you have mist probably has cl-markup, so use cl-markup for all the interface needs. However, all the versions that we’re to release are going to have spinneret. Actually, some releases should already have it.

What version are you on?

I’m on 2.0.0 but I’m trying to submit a pr to the void linux packaging system to update to 2.2.1, The issue is that I can’t seem to get 2.2.1 to build on my system as it keeps giving an error about quicklisp. I submitted an issue to the nyxt github about it and I’m still waiting for a assitance

I assume you’re trying to build nyxt from master? Then the environment variable has been renamed to NYXT_SUBMODULES (which should be set to true if you want to use them). Nyxt 2.0.0 didn’t use git submodules, but rather a sandboxed quicklisp when NYXT_INTERNAL_QUICKLISP=true was set.

EDIT: ok skimmed over that you tried to build 2.2.1 and not master, but it still uses NYXT_SUBMODULES

Will, have you managed to make this work? Did you hit a roadblock? Any tips for making this work?

I have a few workflows where I need visual tabs (hopefully tabs that can display window title updates like email interfaces) and this would be very useful.