Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Welcome Screen #13197

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
Open

Conversation

nik-rev
Copy link
Contributor

@nik-rev nik-rev commented Mar 26, 2025

When you launch helix with hx, you are greeted with... an empty void:
image

It's whatever if you already know your way around Helix, but what if it's your first time here? It's not very helpful. Some of the first things that I wanted to do when I launched Helix:

  • change the theme (to my beloved catppuccin)
  • open a file
  • how to actually use helix to edit text?

Here is a minimalist welcome screen I made:

image

Feel free to suggest what can be improved on it. My goal was to add a little bit of color but not too much.

The key here is information density. We don't want to overwhelm the new user with a bunch of info, so just having the most important bits should be a priority.

If you prefer the void, welcome screen can be disabled like this:

[editor]
welcome-screen = false

@ficcdaf
Copy link
Contributor

ficcdaf commented Mar 26, 2025

If the welcome screen is enabled can the scratch buffer still be used? For example what happens when the user starts typing -- is it just placeholder text?

I like it otherwise. I would definitely add a hint for how to quit as well as the space+? binding.

@kpbaks
Copy link
Contributor

kpbaks commented Mar 26, 2025

What about a link to the users config.toml as well?

@cotneit
Copy link
Contributor

cotneit commented Mar 26, 2025

I think mentioning :config-open would be better than including a link to config

@nik-rev
Copy link
Contributor Author

nik-rev commented Mar 26, 2025

If the welcome screen is enabled can the scratch buffer still be used? For example what happens when the user starts typing -- is it just placeholder text?

I like it otherwise. I would definitely add a hint for how to quit as well as the space+? binding.

I'll add both and :config-open

As soon as you make any modifications to the scratch document the welcome screen disappears

edit: The new welcome screen is in the post

@nik-rev nik-rev force-pushed the welcome-screen branch 2 times, most recently from 7986aa8 to 3ee8a6d Compare March 26, 2025 14:33
@davxy
Copy link
Contributor

davxy commented Mar 26, 2025

I suggest removing the to prefix from each sentence
And maybe also type before each command.
Also, why <space> is green while <enter> is shaded?
Thank you

@nik-rev
Copy link
Contributor Author

nik-rev commented Mar 26, 2025

I suggest removing the to prefix from each sentence And maybe also type before each command

If the to prefix is removed then...

"type :tutor learn helix"

doesn't quite read nicely

if we also remove type from each sentence, then it is potentially ambiguous.

What does this mean:

":tutor learn helix"

I think some users can be confused by that. We should keep the "type ..." in front of them

@nik-rev
Copy link
Contributor Author

nik-rev commented Mar 26, 2025

Also, why is green while is shaded?

I don't think <space> shaded looks good, looks out of place
I want to put less emphasis on <enter> but still include it because users may not know that they need to type that

@davxy
Copy link
Contributor

davxy commented Mar 26, 2025

I suggest removing the to prefix from each sentence And maybe also type before each command

If the to prefix is removed then...

"type :tutor learn helix"

doesn't quite read nicely

if we also remove type from each sentence, then it is potentially ambiguous.

What does this mean:

":tutor learn helix"

I think some users can be confused by that. We should keep the "type ..." in front of them

I was reading the items as a table

@ficcdaf
Copy link
Contributor

ficcdaf commented Mar 27, 2025

btw I don't think the type is necessary, it would look better without it

@jnns
Copy link

jnns commented Mar 27, 2025

I don't think <space> shaded looks good, looks out of place
I want to put less emphasis on <enter> but still include it because users may not know that they need to type that

I get your point, but there is an inconsistency with <enter> and <space> being color-coded differently. One could argue that the reason for this is that one is a keybinding and the other a command, but in that case :theme ought to be :theme<tab> as well.

@nik-rev
Copy link
Contributor Author

nik-rev commented Mar 27, 2025

I don't think <space> shaded looks good, looks out of place
I want to put less emphasis on <enter> but still include it because users may not know that they need to type that

I get your point, but there is an inconsistency with <enter> and <space> being color-coded differently. One could argue that the reason for this is that one is a keybinding and the other a command, but in that case :theme ought to be :theme<tab> as well.

Yes, that's a good idea! About <tab>.

I've updated the welcome screen to also remove the type prefix as well

nik-rev added 3 commits March 27, 2025 10:48
1. remove `type ` prefix
2. add `<tab>` to themes point
no need for such a complex solution, this is already pretty good
@q60
Copy link

q60 commented Mar 27, 2025

i think that <space>f is good but not so welcoming as it doesn't show hidden and untracked files by default. i suggest adding :o/:e to this screen and replacing to open a file text with to open file picker

@nik-rev
Copy link
Contributor Author

nik-rev commented Mar 27, 2025

i think that <space>f is good but not so welcoming as it doesn't show hidden and untracked files by default. i suggest adding :o/:e to this screen and replacing to open a file text with to open file picker

Since Helix has a file explorer now, I think space + e is good!

@nik-rev
Copy link
Contributor Author

nik-rev commented Mar 27, 2025

I've updated the welcome screen yet again, to remove all the to prefix as @davxy suggested as I agree it looks better without it

@q60
Copy link

q60 commented Mar 27, 2025

i think that <space>f is good but not so welcoming as it doesn't show hidden and untracked files by default. i suggest adding :o/:e to this screen and replacing to open a file text with to open file picker

Since Helix has a file explorer now, I think space + e is good!

damn i didn't know it exists, that's nice

@gj1118
Copy link
Contributor

gj1118 commented Mar 27, 2025

Can we also have a second column to present a list of , say, the most recent 5 files opened and present a short cut key to open them quickly? I am opening some files time and again . This will help me a lot.

@nik-rev
Copy link
Contributor Author

nik-rev commented Mar 27, 2025

Can we also have a second column to present a list of , say, the most recent 5 files opened and present a short cut key to open them quickly? I am opening some files time and again . This will help me a lot.

This PR is meant to add a welcome screen. Information that would be useful to someone opening Helix for the first time

What you're proposing would turn this welcome screen into more of a dashboard. The dashboard is a cool idea, but it was presented in the past and rejected: Adding a dashboard on startup · Issue #2339 · helix-editor/helix

I agree this would be useful, but it's out of scope for this PR + would likely need to wait for the plugin system

@john970
Copy link

john970 commented Mar 30, 2025

It might be better to have the description for space ? be “search all commands” vs “see all commands”

Or “command palette” which is how the docs refer to it, although maybe not very intuitive to new users.

I think this adds nice polish to Helix.

@nik-rev
Copy link
Contributor Author

nik-rev commented Mar 30, 2025

It might be better to have the description for space ? be “search all commands” vs “see all commands”

Or “command palette” which is how the docs refer to it, although maybe not very intuitive to new users.

I think this adds nice polish to Helix.

At the moment this sentence is the longest out of the 6 tips, most of them have about the same length

changing it "see" -> "search" adds an extra 3 characters which would make that line feel out of place due to not being around the same size as the other tips

I would say it's pretty self explanatory at the moment and changing "see" -> "search" does not offer much more clarity for it to be worth making it feel out of place

@glehmann
Copy link
Contributor

glehmann commented Apr 8, 2025

that's a very good thing to not let the user in front of an empty screen.

For the visual recognition, it might be good to also have the helix logo on the welcome screen. Something like
image
Could even be with the helix colors :-)

@nik-rev
Copy link
Contributor Author

nik-rev commented Apr 8, 2025

that's a very good thing to not let the user in front of an empty screen.

For the visual recognition, it might be good to also have the helix logo on the welcome screen. Something like image Could even be with the helix colors :-)

Hey, that looks pretty good! I did try using the :tutor Helix ASCII art logo but it feels a bit too "heavy" and really did not fit in. I like your logo, it is more minimalistic and lightweight.

and yeah, using the Helix colors for this would be cool. There is the risk that it'll look off with some color schemes, but since this is just a logo and not text I would say it is fine

@archseer do you prefer with or without the logo?

@glehmann
Copy link
Contributor

glehmann commented Apr 9, 2025

I did the tutorial too long ago, I forgot there was an ASCII logo in there…
Here is the one I generated, just in case :-)

**             
*****        ::
 ******** :::::
     **::::::: 
   ::::::::***=
:::::::    ====
::::    =======
:---========   
 =======--     
===== -------- 
==        -----
             --

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants