termsaver icon indicating copy to clipboard operation
termsaver copied to clipboard

Support additional keybind to exit

Open jarun opened this issue 7 years ago • 5 comments

I am trying to integrate termsaver in nnn as the default termsaver. I am facing 2 problems:

  • nnn disables ^C at start. Would it be possible to support an additional keybind to exit termsaver? Perhaps ^Q?

  • termsaver clears the terminal on exit. However, I need to restore the nnn window.

jarun avatar Jun 04 '17 20:06 jarun

I could get around the first problem by restoring the default signal handler before spawning termsaver. Can you handle the second issue?

jarun avatar Jun 04 '17 21:06 jarun

The clearing of the screen was a default behavior to "start the terminal over"... I can see 2 easy way outs here (both require coding though):

  1. add an option to avoid clearing the terminal on exit (this might leave the dirt from the screensaver work though, I think this is less elegant)
  2. Add hooks to termsaver, to allow you to extend how you want it to start/finish (eg. call another script, etc), then it's your choice on what you want to do with it.

Any interest in contributing to the code? Otherwise I will add this to the bucket list :-)

brunobraga avatar Jun 04 '17 22:06 brunobraga

I think it would be great to use an alternative like curses, so that there are no incremental prints and user is in his context when he quits. For the time being I chose vlock which keeps the screen clean.

Any interest in contributing to the code? Otherwise I will add this to the bucket list :-)

I would be glad to do so but am on a constant time crunch myself due to around 7 live projects.

jarun avatar Jun 04 '17 23:06 jarun

yeah, curses is very good, I just wanted to keep it simple with stdout, which worked just fine but no doubt floods the terminal screen... Switching to curses is a bit of redesign, but something to consider depending on the screensaver (I actually haven't seen much need for it, apart from making Matrix flow downward instead of upward, lol).

Thanks anyway. Will leave this open and when I can work on it, will add the hooks functionality, might help others in doing more stuff with this as well.

brunobraga avatar Jun 04 '17 23:06 brunobraga

And I almost missed it, nnn uses ncurses too. Though it's in C you may be able to take some cues from the initcurses() and existcurses() functions.

jarun avatar Jun 05 '17 05:06 jarun