bfabiszewski / kterm

gtk+ terminal emulator with embedded virtual keyboard for Kindle
GNU General Public License v3.0
218 stars 21 forks source link

Don't show blinking cursor on non-Kindle builds #22

Closed tux-linux closed 3 years ago

tux-linux commented 3 years ago

Hi, I have ported KTerm (really great software, BTW) over to Kobos for my InkBox/KoBox project, it works all good but it would be great if the cursor was not blinking. Not sure if it's a good thing for those screens... I have a Kindle myself, and the cursor doesn't blink. So I think it's possible to do that in casual builds. I just don't know how. Do you have any pointers? Thanks!

bfabiszewski commented 3 years ago

Look at VteCursorBlinkMode. As GTK+ on kindle uses largely modified theme it is possible that blinking is disabled at system level. I never really checked that. Anyway it should be possible to disable it in user's gtkrc file with gtk-cursor-blink = 0. You could also modify kterm to disable it at the application level with VTE_CURSOR_BLINK_OFF mode.

Now I noticed that InkBox is Qt based. Does it mean that you ported kterm to QT? As kterm is tightly linked to vte that would mean a total rewrite. Is there any repo to see that?

tux-linux commented 3 years ago

Now I noticed that InkBox is Qt based. Does it mean that you ported kterm to QT? As kterm is tightly linked to vte that would mean a total rewrite. Is there any repo to see that?

No. Of course not! If it was, I'm not sure if it would have been KTerm after all the modifications that I would have done. I have InkBox OS, which is an operating system that can run on different Kobo models (tested on Glo, Touch and Mini), that starts the Qt GUI at boot. It's based on Alpine Linux 3.10, which makes it a lot easier to install software (including a compiler) when you need it. Now, I'm designing a KoBox subsystem for InkBox OS, which you can learn more here: https://www.mobileread.com/forums/showthread.php?t=336433 . I'll be using https://github.com/schuhumi/fbink-xdamage to draw to the eInk screen, because it works very well. So I'm programming things now to make a new app in the Qt side of things that would launch KTerm in the X server. All is tested and working, I just need to implement it properly now. Touch will be handled (yes, strange combination) by a VNC client (written in Qt, because that's where touch input works!) that speaks to a local VNC server (which doesn't refresh frames or anything because compared to fbink-xdamage it's a little distorted). And that works well too. So I needed a terminal emulator, and xterm is ok, but seeing that KTerm had a built-in keyboard, I went for it and compiled it on the Kobo. Works no problem, and it's only that blinking cursor... So thanks for the pointer, I'll put that gtkrc file in the home directory and I'll see what happens!

Edit: PoC if you want to see PXL_20210417_193756972.jpg

tux-linux commented 3 years ago

Look at VteCursorBlinkMode. As GTK+ on kindle uses largely modified theme it is possible that blinking is disabled at system level. I never really checked that. Anyway it should be possible to disable it in user's gtkrc file with gtk-cursor-blink = 0. You could also modify kterm to disable it at the application level with VTE_CURSOR_BLINK_OFF mode.

Now I noticed that InkBox is Qt based. Does it mean that you ported kterm to QT? As kterm is tightly linked to vte that would mean a total rewrite. Is there any repo to see that?

Wow, that worked perfectly. I just put that in ~/.gtkrc-2.0 and wheee, it works! Thanks!

bfabiszewski commented 3 years ago

Glad it worked! Thanks for detailed explanation! I was intrigued by porting kterm to Qt ;D I see your setup is quite complex. Nice job to have it all working together. Good luck!

tux-linux commented 3 years ago

@bfabiszewski If you'd like to see what it's become, almost three months later: https://www.youtube.com/watch?v=KaBj7acHRHk KTerm is featured at around 20:30

bfabiszewski commented 3 years ago

Your project is impressive! Thanks for using kterm. And crediting me in the video.