This is a long and basic answer, but I've also covered the Ctrl-D issue you listed in the OP's reply below
I see great confusion here of terminal and shell. Scrolling is not done by your shell, but by your terminal. What screen
and tmux
do, is to add another terminal on top of your your gnome-terminal for each subwindow (that may sound weird at first but a terminal is not exactly what you see but really just a device, often under /dev/pts/, where a process can read bytes from and write bytes to).
As screen runs its pseudo-terminal(s) on top of your gnome-terminal, it has no chance to intercepting the keys that gnome-terminal already intercepts. It needs to have its own shortcut keys, and you as the user are not supposed to press the shortcut keys that gnome-terminal understands. You can, but the result will not be what you expected as gnome-terminal does not know of the mess that screen created.
You might indeed have shortcuts only intercepted by your shell (not by the terminal where the shell reads its characters from), but those should not be affected unless they involve Ctrl-A (the only key intercepted by screen on top of the keys which are intercepted by the terminal subsystem (e.g. Ctrl-C)). They should work just the same way. Some of the shortcuts usually interpreted by that bash
shell are Ctrl-A (inside screen, you must use Ctrl-A a) to move the cursor to the beginning of the edited command, and Ctrl-E (works inside screen just the same way as not inside screen) to move to the end.
I know it's sounds complicated, but it's really dead simple because a terminal is just a file that you can write bytes to and read bytes from. Here's an excellent article that covers many related things if you are interested: http://www.linusakesson.net/programming/tty/index.php
To concern e.g. the Ctrl-D (a key combination supposed to be interpreted by the shell) issue, you should check that the characters generated by Ctrl-D are the same both on a gnome-terminal and a screen-terminal. You can see the character for example with cat
. I suspect that they are indeed the same (it is so on my system), and if yes, that means that screen launched another shell than gnome-terminal normally does. In this case, find out what shell is launched by a gnome-terminal natively, and launch this shell (with same command-line arguments) in your screen-session, too.
tmux
may be what you are looking for.