Skip to content

Inconsistent touch response behavior within multiple pane screen session #328

@redyoshi49q

Description

@redyoshi49q

When running a newly created screen session with vertically and/or horizontally split panes, the touch screen can be used to select a pane within screen, but many touch screen interactions with command line programs (notably scrolling) do not function for programs such as less and man that are run inside of screen windows, even though such interactions work as expected when tested outside of screen (emacs is a notable exception; both cursor placement and scrolling function as expected for an emacs instance that's running inside of a screen window).

However, if a screen session is detached and then reattached, the touch screen interacts differently for both screen and the programs that are run inside of it. screen panes can no longer be selected with the touch screen (requiring the use of the C-a Tab key combo instead), but programs that are run within screen windows (less, man, etc.) appear to interact with the touch screen in the same way that they would if they were run outside of a screen session. An exception to this generalization is the bash shell itself; while bash doesn't accept input from the touch screen when run outside of screen, a bash instance that is running inside of a reattached screen session seems to process movement across the touch screen as if presses of the arrow keys were being made.

I imagine that it might not be technically feasible to allow the touch screen's input to reliably affect both screen (through selecting window panes) and apps running inside of screen (through scrolling and other interactions) at the same time. In any case, it may be desirable to adjust the behavior of screen in Termux such that the behavior of newly spawned screen sessions and newly attached screen sessions is the same in order to create a more consistent user experience.

In case it's of relevance, I quote my Termux environment's .inputrc below. I have a few other environment files (including a .bashrc and .screenrc), but no others seem potentially related to this issue; let me know if you'd like to see any other files.

$include /etc/inputrc

"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char
"\eOC": forward-word
"\eOD": backward-word
"\C-H": kill-whole-line
"\C-_": kill-whole-line

C-p: history-search-backward
C-n: history-search-forward
#C-p: previous-history
#C-n: next-history
C-f: forward-word
C-b: backward-word
C-k: kill-line
C-y: yank
#C-_: undo // apparently, C-Backspace maps to this in mintty(?)

$if Bash
	Space: magic-space
$endif

#set horizontal-scroll-mode on

On a final note, I greatly appreciate the implementation of screen in Termux; I had sorely missed the utility and familiarity of screen previous to that.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions