私はcursesにかなり慣れていないので、Pythonでいくつかの異なることを試しています.
ウィンドウを初期化し、window オブジェクトに scrollok を設定しました。文字列を追加でき、ウィンドウの最後に addstr() でエラーが発生しないようにスクロールが機能します。
私が欲しいのは、プログラムの終了後に端末プログラム (この場合は tmux または KDE Konsole) のプログラム出力をスクロールして戻る機能です。
私のコードでは、endwin() 呼び出しをスキップすると、少なくとも出力を確認できますが、端末を操作状態に戻すにはリセット呼び出しが必要です。
また、プログラムの実行中であっても、curses ウィンドウが下にスクロールした後、Konsole をスクロールして最初の出力を表示することができません。
#!/usr/bin/env python2
import curses
import time
win = curses.initscr()
win.scrollok(True)
(h,w)=win.getmaxyx()
h = h + 10
while h > 0:
win.addstr("[h=%d] This is a sample string. After 1 second, it will be lost\n" % h)
h = h - 1
win.refresh()
time.sleep(0.05)
time.sleep(1.0)
curses.endwin()