Kakoune needs a splash screen!

Well, of course not – but other editors have a splash screen, so why not Kakoune?

In this screenshot, the picture on the left is Nicolas Rougier’s splash screen for Elegant Emacs (a prelude to his amazing work on Nano Emacs). This is a streamlined version of the default GNU Emacs welcome screen, and has been well appreciated in the Emacs community.

The window on the right is my terminal running Kakoune. I use a light theme, but the colors of the splash screen are fully customizable.

Details here:

Splash plugin

5 Likes

Huh, nice work! Gotta find something new and even more stupid to do too make kakoune look good. What happens if you have a to small window to display the entire thing? Also could you make the window?

Not sure I understand your question about making a window (creating a buffer?). Kakoune automatically creates a scratch buffer named *scratch* when you run kak without reading any file, or when you delete all of your buffers.

The scratch buffer automatically created contains two lines:

*** this is a *scratch* buffer which won’t be automatically saved ***
*** use it for notes or open a file buffer with the :edit command ***

The plugin just replaces these two lines with eye candy. No new buffer is created, as splash content is supposed to be disposed of anyway.

About terminal window size: if it is too small to display the totality of splash content, this content is just truncated. Splash content is usually small enough (18 lines x 76 columns) to show up correctly, however.

Sorry, I probably worded my question badly. I was just thinking of the box that you display the text in when I wrote window, my bad. Would you be open for a pr trying to center that box on the screen and maybe opt to just show the K on small screens

Hmm… I’d rather you fork the project than accepting a pull request, because I do not like centering that much. Although most splash screens are centered in the display window, graphic designers will tell you that left or right alignment is superior to centering because the visual cues to alignment are stronger than in the latter case.

I also prefer the current positioning because most of us read from left to right and from top to bottom. Finally, the modeline is often visually heavier to the right, hence moving the box from the center to the left actually improves visual balance.

To each their own :slight_smile:

I forked the plugin, my version is here. It centers the box, removes the splash once you start editing the buffer (or on to small screens) and renders the text triangles using NERD triangles as the unicode ones aren’t full height on all fonts

Screenshot

2 Likes

with the splash screen I’d like the scratch buffer to be empty.

Like just no spash screen or like mine that removes all content as soon as you do anything at all? Or just that it shouldn’t affect the scratch buffer and display the splash screen in some other way?

This looks better on my setup (with NERD fonts). Especially like the auto clear once you start editing. Nice touch!

1 Like

Edit: Also splash.kak seems to override/‘ruin’ my syntax highlighting? Syntax highlighting not working on systemd overrides · Issue #4060 · mawww/kakoune · GitHub.
I was wondering if I could make Kakoune display a random quote from a list. I remember hacking together a code snippet in Nano Emacs to do this but not sure how it works in Kakoune.

I wonder if something can be done for commands to be actionable with the mouse.

For that I’m thinking we could create a hook and in that test if the mouse lines up with any of the command texts. That wouldn’t be too complicated

One question is just what hook we should use. There is no hook for when the cursor moved in normal mode but maybe mouse clicks trigger the RawKey hook? If none of those work we could also try NormalIdle.

@ftonneau I’m wondering if it can be done using info -style modal -markup

1 Like

Yes, of course. That would be another way to do it!

I’ve found about the Vim’s :intro command. It is the command responsible of the splash screen.

https://vimdoc.sourceforge.net/htmldoc/starting.html#:intro