UP | HOME

Screen patches

Table of Contents

Screen

I like to use the st terminal with GNU screen, however there are some things about screen that I do not like, thus I made some patches.

source code at Enocstocks/screen.

Development findings

I found fairly easy to navigate within the source code, however I found some algorithms artificially difficult to understand, i.e. the code is not that difficult per se but it has one letter variables and some pointers magic, which makes more difficult to understand the code. The aforementioned code seems to be pretty old code, logic and algorithms that haven not been modify in years, that may be the why the code feels "arcane", some functions use K&R C syntax.

Patches

Alt keys support

alt-keys-b4e5968f.patch: For the current master branch (b4e5968f).

I had to update screen, and I could not do it without this patch. It is really helpful for me though. I just had to port this patch to the master branch, I was amazed how much it has changed, the old code has been deracinated, nonetheless the code remains, in essence, the same.

I feel rather confused, it has been superficially improved, and yet it has not changed; the worst is that it is not modular anymore, it was as easy as modifying a macro definition to remove features, it is not possible anymore. Anyways, it looks better, that is a plus, I guess.

Old patches

alt-keys.patch: for version 4.9.0 (I have not tested in other versions).

For source code check the branch add-alt. This patch adds support for the Alt+key keybinding within screen and in the configuration file, the notation is @key (e.g @v for alt+v), these keybindings can be used in the global keybinding or in the copy mode. Please check the source code for more information about the implementation.

This patch breaks the translation map feature, I compiled screen without translation map support, nonetheless you can continue using the translation but it may have some unexpected behavior. I noticed that arrow keys misbehave when this patch is used with the translation maps (you will lost access to the arrows keys but up arrow).