termsaver
termsaver copied to clipboard
Support additional keybind to exit
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 exittermsaver
? Perhaps^Q
? -
termsaver
clears the terminal on exit. However, I need to restore thennn
window.
I could get around the first problem by restoring the default signal handler before spawning termsaver
. Can you handle the second issue?
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):
- 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)
- 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 :-)
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.
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.
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.