Hyper: 5bc8e0b (on canary) breaks <esc> key

Created on 27 Oct 2019  路  20Comments  路  Source: vercel/hyper

  • [ ] I am on the latest Hyper.app version
  • [x] I have searched the issues of this repo and believe that this is not a duplicate

  • OS version and name: Linux

  • Hyper.app version: 6f96d9f (latest commit on canary branch)
  • Link of a Gist with the contents of your .hyper.js: N/A
  • Relevant information from devtools _(CMD+ALT+I on macOS, CTRL+SHIFT+I elsewhere)_: N/A
  • The issue is reproducible in vanilla Hyper.app: yes

Issue

Commit 5bc8e0b introduces in each of the app/keymaps files the properties editor:search and editor:search-close. The value for the latter, "esc", is unfortunate because it's global, is an extremely relevant key for vim users, and also factors into terminal shortcuts (at least when using bash).

Might it be possible to enable editor:search-close only when actually searching? This would keep it from interfering when not using the search feature. Alternatively, might a different key sequence be used (such as shift+esc)?

Regression

Most helpful comment

This comment got my esc key working again on the canary channel:

https://github.com/vercel/hyper/issues/3217#issuecomment-646773120

Adding this to the config

  keymaps: {
    'editor:break': 'esc',
  },

All 20 comments

@El-Dringo-Brannde what do you think?

I agree with @lispy, this is why I cannot exit the edit mode of vim. I thought it was the problem of vim before.

same problem happen to me

It also affects Esc-0 terminal codes for F10 (and my ability to exit Midnight Commander :P)

I looked into this a bit and thought about the possible solutions (including already mentioned ones)

using shift+esc
easy to do, might not be intuitive at first for users

capture esc only when search is open
best case scenario, I tried to come up with some genric way where commands would be able to return a value indicating whether the event should be caught or not. But as the commands go through
mousetrap>renderer rpc emit>ipc send>main rpc emit>execCommand>webcontents send>renderer rpc on>store dispatch
it seems a bit hard to do while keeping it generic and without impacting plugins.

  • One way to do this specifically for search could be to dispatch the search close action from the mousetrap bind call with a reference to the keyboard event and setting e.catched as false if the search bar is already closed. This can be done directly without going through ipc as the main process doesn't really do much for this command.
  • This could be done with a commandHandler also instead of putting it in the mousetrap bind call

Let esc event go to both xterm and search box
We can set e.catched as false when the command key is esc this would cause both search box to close and xterm to get the esc event. though this might cause accidental esc keys for people who just wanted to close the search

@Stanzilla @ivanwonder what do you guys think about this.


P.S. While reasearching this I noticed that most of the commands don't really need to be passed to ipc as main process just emits them back (with changed name), We can also consider putting these commands in a separate list and emitting them directly.

One other thing to consider for the 3rd option is putting special keys/combos which are commonly needed by terminal e.g. esc, ctrl+c, ctrl+d etc. in a list and letting them go to both xterm and commands.

I like the only capture when search is open solution

What approach do you think we should use to implement that solution.

Also any thoughts on the stuff in P.S. ?

How does hyper-search implement it?

BTW, I think hyper-search is much beautiful than this implement.

Don't really know atm :/

How does hyper-search implement it?

BTW, I think hyper-search is much beautiful than this implement.

Agreed, it looks better. But it'd be a bit more work to replicate it compared to fixing the esc thing now. Maybe we can take a look at it later.

Do we really need to merge it if we could achieve it by a plugin?
We could just revert it!

And this implement would confuse hyper-search user.

In my opinion this feature should and always should have been baseline

I also think that search should be provide out of the box, And using xterm search method seems better than the custom implementation in hyper-search.

The second solution that captures ESC looks good for me.

The second solution that captures ESC looks good for me.

can you try out #4407 once

@LabhanshAgrawal error when running yarn in your project 馃槀.
Error: Generated checksum for "chromedriver-v8.0.0-darwin-x64.zip" did not match expected checksum.

@LabhanshAgrawal error when running yarn in your project 馃槀.
Error: Generated checksum for "chromedriver-v8.0.0-darwin-x64.zip" did not match expected checksum.

That's a spectron installation issue, see https://github.com/electron-userland/spectron/issues/265

Any chance to get a new canary version that contains the fix to this problem?
As a Vim user I really need the ESC key :/

Any chance to get a new canary version that contains the fix to this problem?
As a Vim user I really need the ESC key :/

Not sure about a release. You can get the latest ci build from https://github.com/vercel/hyper/actions/runs/136614828

This comment got my esc key working again on the canary channel:

https://github.com/vercel/hyper/issues/3217#issuecomment-646773120

Adding this to the config

  keymaps: {
    'editor:break': 'esc',
  },
Was this page helpful?
0 / 5 - 0 ratings

Related issues

hxnt picture hxnt  路  3Comments

weabot picture weabot  路  3Comments

juicygoose picture juicygoose  路  3Comments

daenuprobst picture daenuprobst  路  3Comments

legomushroom picture legomushroom  路  3Comments