What is TERM outside tmux? This program is using 1047h to switch to alternate screen mode which unless you are using a very old terminfo is not in the xterm entry, so it's probably a bad idea to rely on it working.
Anyway please try this which adds it to tmux: Index: input.c =================================================================== RCS file: /cvs/src/usr.bin/tmux/input.c,v retrieving revision 1.53 diff -u -p -r1.53 input.c --- input.c 10 Jul 2012 11:53:01 -0000 1.53 +++ input.c 11 Jul 2012 07:40:40 -0000 @@ -1254,8 +1254,12 @@ input_csi_dispatch(struct input_ctx *ict case 1005: screen_write_utf8mousemode(&ictx->ctx, 0); break; + case 47: + case 1047: + window_pane_alternate_off(wp, &ictx->cell, 0); + break; case 1049: - window_pane_alternate_off(wp, &ictx->cell); + window_pane_alternate_off(wp, &ictx->cell, 1); break; case 2004: screen_write_bracketpaste(&ictx->ctx, 0); @@ -1309,8 +1313,12 @@ input_csi_dispatch(struct input_ctx *ict case 1005: screen_write_utf8mousemode(&ictx->ctx, 1); break; + case 47: + case 1047: + window_pane_alternate_on(wp, &ictx->cell, 0); + break; case 1049: - window_pane_alternate_on(wp, &ictx->cell); + window_pane_alternate_on(wp, &ictx->cell, 1); break; case 2004: screen_write_bracketpaste(&ictx->ctx, 1); Index: tmux.h =================================================================== RCS file: /cvs/src/usr.bin/tmux/tmux.h,v retrieving revision 1.348 diff -u -p -r1.348 tmux.h --- tmux.h 11 Jul 2012 07:10:15 -0000 1.348 +++ tmux.h 11 Jul 2012 07:40:42 -0000 @@ -2065,10 +2065,10 @@ int window_pane_spawn(struct window_pa const char *, const char *, struct environ *, struct termios *, char **); void window_pane_resize(struct window_pane *, u_int, u_int); -void window_pane_alternate_on( - struct window_pane *, struct grid_cell *); -void window_pane_alternate_off( - struct window_pane *, struct grid_cell *); +void window_pane_alternate_on(struct window_pane *, + struct grid_cell *, int); +void window_pane_alternate_off(struct window_pane *, + struct grid_cell *, int); int window_pane_set_mode( struct window_pane *, const struct window_mode *); void window_pane_reset_mode(struct window_pane *); Index: window.c =================================================================== RCS file: /cvs/src/usr.bin/tmux/window.c,v retrieving revision 1.82 diff -u -p -r1.82 window.c --- window.c 10 Jul 2012 11:53:01 -0000 1.82 +++ window.c 11 Jul 2012 07:40:42 -0000 @@ -862,7 +862,8 @@ window_pane_resize(struct window_pane *w * history is not updated */ void -window_pane_alternate_on(struct window_pane *wp, struct grid_cell *gc) +window_pane_alternate_on(struct window_pane *wp, struct grid_cell *gc, + int cursor) { struct screen *s = &wp->base; u_int sx, sy; @@ -876,8 +877,10 @@ window_pane_alternate_on(struct window_p wp->saved_grid = grid_create(sx, sy, 0); grid_duplicate_lines(wp->saved_grid, 0, s->grid, screen_hsize(s), sy); - wp->saved_cx = s->cx; - wp->saved_cy = s->cy; + if (cursor) { + wp->saved_cx = s->cx; + wp->saved_cy = s->cy; + } memcpy(&wp->saved_cell, gc, sizeof wp->saved_cell); grid_view_clear(s->grid, 0, 0, sx, sy); @@ -889,7 +892,8 @@ window_pane_alternate_on(struct window_p /* Exit alternate screen mode and restore the copied grid. */ void -window_pane_alternate_off(struct window_pane *wp, struct grid_cell *gc) +window_pane_alternate_off(struct window_pane *wp, struct grid_cell *gc, + int cursor) { struct screen *s = &wp->base; u_int sx, sy; @@ -910,10 +914,12 @@ window_pane_alternate_off(struct window_ /* Restore the grid, cursor position and cell. */ grid_duplicate_lines(s->grid, screen_hsize(s), wp->saved_grid, 0, sy); - s->cx = wp->saved_cx; + if (cursor) + s->cx = wp->saved_cx; if (s->cx > screen_size_x(s) - 1) s->cx = screen_size_x(s) - 1; - s->cy = wp->saved_cy; + if (cursor) + s->cy = wp->saved_cy; if (s->cy > screen_size_y(s) - 1) s->cy = screen_size_y(s) - 1; memcpy(gc, &wp->saved_cell, sizeof *gc); On Wed, Jul 11, 2012 at 12:19:57AM -0700, Kevin Tran wrote: > Ok got it. > > > > On Jul 10, 2012, at 11:38 PM, Nicholas Marriott wrote: > > > You need to restart tmux entirely with -vvvv so you get the server log too. > > > > > > On Tue, Jul 10, 2012 at 03:28:11PM -0700, Kevin Tran wrote: > >> When I did that it created a file called tmux-client-41746.log with 2 > >> lines: > >> 15:27:37:haitran:~ $ cat tmux-client-41746.log > >> client got 3 > >> client got 4 > >> > >> On Jun 24, 2012, at 2:49 AM, Nicholas Marriott wrote: > >> > >>> Looks like it clears the screen. Kill tmux entirely, run tmux with > >>> -vvvv, then reproduce the problem and send me the logs from the current > >>> directory please. > >>> > >>> > >>> > >>> On Sat, Jun 23, 2012 at 07:11:10PM -0700, Kevin Tran wrote: > >>>> typescript follows: > >>>> > >>>> Script started on Sat Jun 23 19:09:49 2012 > >>>> ]7;file://ktmacbookpro/Users/haitran]7;file://ktmacbookpro/Users/haitran]7;file://ktmacbookpro/Users/haitran]7;file://ktmacbookpro/Users/haitran]7;file://ktmacbookpro/Users/haitran[0;32m19:09:50:haitran:~ > >>>> $ [0mpython pudb_usage.py > >>>> 7[?47h)0[?25l[0;39;49m[H[1;1H[0;30;47mPuDB 2012.1 - ?:help > >>>> n:next s:step into b:breakpoint o:output t:run to cursor !:python > >>>> shell [2;1H[0;1;37;49m > >>>> [0;31;49m [0;37;49m 1 [0;35;49mdef[0;1;37;49m > >>>> [0;1;37;49mfunction[0;1;37;49m():[0;1;37;49m > >>>> [0;30;47m > >>>> [0;30;4;47mV[0;30;47mariables: > >>>> [3;1H[0;1;37;49m>[0;31;49m [0;1;37;43m 2 import pudb; > >>>> pudb.set_trace() > >>>> [0;30;47m [0;1;37;44mReturn: [0;30;46mNoneType > >>>> [4;1H[0;1;37;49m [0;31;49m [0;37;49m 3 [0;1;37;49m > >>>> > >>>> [0;30;47m [0;1;34;49mpudb: [0;1;37;49m<module 'pudb' from > >>>> '/usr/local/Cel[5;1H[0;1;37;49m [0;31;49m [0;37;49m 4 [0;1;37;49m > >>>> > > >> > >>>> [0;30;47m [0;1;37;49m > >>>> lar/python/2.7.1/lib/python2.7/site-pac[6;1H[0;1;37;49m [0;31;49m > >>>> [0;37;49m 5 [0;32;49m# filler line[0;1;37;49m > >>>> [0;30;47m > >>>> [0;1;37;49m kages/pudb/__init__.pyc'> [7;1H[0;1;37;49m > >>>> [0;31;49m [0;37;49m 6 [0;32;49m# filler line[0;1;37;49m > >>>> > >>>> [0;30;47m [0;1;37;49m > >>>> [8;1H[0;1;37;49m [0;31;49m [0;37;49m 7 [0;32;49m# filler > >>>> line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [9;1H[0;1;37;49m [0;31;49m [0;37;49m 8 [0;32;49m# > >>>> filler line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [10;1H[0;1;37;49m [0;31;49m [0;37;49m 9 [0;32;4 > 9 > >> m# > >>>> filler line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [11;1H[0;1;37;49m [0;31;49m [0;37;49m10 > >>>> [0;32;49m# filler line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [12;1H[0;1;37;49m [0;31;49m > >>>> [0;37;49m11 [0;32;49m# filler line[0;1;37;49m > >>>> [0;30;47m > >>>> [0;1;37;49m > >>>> [13;1H[0;1;37;49m [0;31;49m [0;37;49m12 [0;32;49m# filler > >>>> line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [14;1H[0;1;37;49m [0;31;49m [0;37;49m13 [0;32;49m# > >>>> filler line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > > >> > >>>> [15;1H[0;1;37;49m [0;31;49m > >>>> [0;37;49m14 [0;32;49m# filler line[0;1;37;49m > >>>> [0;30;47m > >>>> [0;1;37;49m > >>>> [16;1H[0;1;37;49m [0;31;49m [0;37;49m15 [0;32;49m# filler > >>>> line[0;1;37;49m > >>>> [0;30;47m [0;30;4;47mS[0;30;47mtack: > >>>> [17;1H[0;1;37;49m [0;31;49m [0;37;49m16 > >>>> [0;32;49m# filler line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> <module>[0;1;36;49m pudb_usage.py:21 [18;1H[0;1;37;49m > >>>> [0;31;49m [0;37;49m17 [0;32;49m# filler line[0;1;37;49m > >>>> > >>>> [0;30;47m [0;1;37;1;49m>> function[0;1;36;49m pudb_usage.py:2 > >>>> [19;1H[0;1;37;49m [0;31;49m [0;37;49m18 [0;32;49m# > > >> fi > >>>> ller line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [20;1H[0;1;37;49m [0;31;49m [0;37;49m19 > >>>> [0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [21;1H[0;1;37;49m [0;31;49m [0;37;49m20 > >>>> [0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [22;1H[0;1;37;49m [0;31;49m [0;37;49m21 > >>>> [0;1;37;49mfunction[0;1;37;49m()[0;1;37;49m > >>>> [0;30;47m > >>>> [0;1;37;49m > >>>> [23;1H[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [24;1H[0 > ;1 > >> ;37 > >>>> ;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [25;1H[0;1;37;49m > >>>> > >>>> [0;30;47m [0;1;37;49m > >>>> [26;1H[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [27;1H[0;1;37;49m > >>>> > >>>> [0;30;47m [0;1;37;49m > >>>> [28;1H[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [29;1H[0;1;37;49m > >>>> > >>>> [0;30;47m > [ > >> 0;3 > >>>> 0;4;47mB[0;30;47mreakpoints: > >>>> [30;1H[0;1;37;49m > >>>> [0;30;47m [0;39;49m > >>>> [31;1H[0;1;37;49m > >>>> > >>>> [0;30;47m [0;39;49m > >>>> [32;1H[0;1;37;49m > >>>> [0;30;47m [0;39;49m > >>>> [33;1H[0;1;37;49m > >>>> > >>>> [0;30;47m [0;39;49m > >>>> [34;1H[0;1;37;49m > >>>> [0;30;47m [0;39;49m > >>>> [35;1H[0;1;37;49m > >>>> > > >> > >>>> [0;30;47m [0;39;49m > >>>> [0;39;49m[4h > >>>> [4l[0;39;49m[?1002l[?1000l[?25h[?47l8 > >>>> [?25hHit Ctrl-D to return to PuDB. > >>>> [0;34mIn [[1;34m1[0;34m]: [0m > >>>> Do you really want to exit ([y]/n)? > >>>> 7[?47h[?25l[0;39;49m[H[1;1H[0;30;47mPuDB 2012.1 - ?:help n:next > >>>> s:step into b:breakpoint o:output t:run to cursor !:python shell > >>>> [2;1H[0;1;37;49m [0;31;49m > >>>> [0;37;49m 1 [0;35;49mdef[0;1;37;49m > >>>> [0;1;37;49mfunction[0;1;37;49m():[0;1;37;49m > >>>> [0;30;47m > >>>> [0;30;4;47mV[0;30;47mariables: > >>>> [3;1H[0;1;37;49m>[0;31;49m [0;1;37;43m 2 import pudb; > >>>> pudb.set_trace() > >>>> [0;30;47m [0;1;37;44mReturn: [0;30;46mNoneType > >>>> [4;1H[0;1;37;49m [0;31;49m [0;37;49m 3 [0;1;37;49m > >>>> > >>>> [0;30;47m [0;1;34;49mpudb: [0;1;37;49m<module 'pudb' from > >>>> '/usr/local/Cel[5;1H[0;1;37;49m [0;31;49m [0;37;49m 4 [0;1;37;49m > >>>> > > >> > >>>> [0;30;47m [0;1;37;49m > >>>> lar/python/2.7.1/lib/python2.7/site-pac[6;1H[0;1;37;49m [0;31;49m > >>>> [0;37;49m 5 [0;32;49m# filler line[0;1;37;49m > >>>> [0;30;47m > >>>> [0;1;37;49m kages/pudb/__init__.pyc'> [7;1H[0;1;37;49m > >>>> [0;31;49m [0;37;49m 6 [0;32;49m# filler line[0;1;37;49m > >>>> > >>>> [0;30;47m [0;1;37;49m > >>>> [8;1H[0;1;37;49m [0;31;49m [0;37;49m 7 [0;32;49m# filler > >>>> line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [9;1H[0;1;37;49m [0;31;49m [0;37;49m 8 [0;32;49m# > >>>> filler line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [10;1H[0;1;37;49m [0;31;49m [0;37;49m 9 > >>>> [0;32;49m# > > >> fi > >>>> ller line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [11;1H[0;1;37;49m [0;31;49m [0;37;49m10 > >>>> [0;32;49m# filler line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [12;1H[0;1;37;49m [0;31;49m > >>>> [0;37;49m11 [0;32;49m# filler line[0;1;37;49m > >>>> [0;30;47m > >>>> [0;1;37;49m > >>>> [13;1H[0;1;37;49m [0;31;49m [0;37;49m12 [0;32;49m# filler > >>>> line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [14;1H[0;1;37;49m [0;31;49m [0;37;49m13 [0;32;49m# > >>>> filler line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > > >> > >>>> [15;1H[0;1;37;49m [0;31;49m > >>>> [0;37;49m14 [0;32;49m# filler line[0;1;37;49m > >>>> [0;30;47m > >>>> [0;1;37;49m > >>>> [16;1H[0;1;37;49m [0;31;49m [0;37;49m15 [0;32;49m# filler > >>>> line[0;1;37;49m > >>>> [0;30;47m [0;30;4;47mS[0;30;47mtack: > >>>> [17;1H[0;1;37;49m [0;31;49m [0;37;49m16 > >>>> [0;32;49m# filler line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> <module>[0;1;36;49m pudb_usage.py:21 [18;1H[0;1;37;49m > >>>> [0;31;49m [0;37;49m17 [0;32;49m# filler line[0;1;37;49m > >>>> > >>>> [0;30;47m [0;1;37;1;49m>> function[0;1;36;49m pudb_usage.py:2 > >>>> [19;1H[0;1;37;49m [0;31;49m [0;37;49m18 [0;32;49m# fi > l > >> le > >>>> r line[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [20;1H[0;1;37;49m [0;31;49m [0;37;49m19 [0;1;37;49m > >>>> > >>>> [0;30;47m [0;1;37;49m > >>>> [21;1H[0;1;37;49m [0;31;49m [0;37;49m20 [0;1;37;49m > >>>> > >>>> [0;30;47m [0;1;37;49m > >>>> [22;1H[0;1;37;49m [0;31;49m [0;37;49m21 > >>>> [0;1;37;49mfunction[0;1;37;49m()[0;1;37;49m > >>>> [0;30;47m > >>>> [0;1;37;49m > >>>> [23;1H[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [24;1H[0;1; > 37 > >> ;49 > >>>> m > >>>> [0;30;47m [0;1;37;49m > >>>> [25;1H[0;1;37;49m > >>>> [0;30;47m > >>>> [0;1;37;49m > >>>> [26;1H[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [27;1H[0;1;37;49m > >>>> > >>>> [0;30;47m [0;1;37;49m > >>>> [28;1H[0;1;37;49m > >>>> [0;30;47m [0;1;37;49m > >>>> [29;1H[0;1;37;49m > >>>> > >>>> [0;30;47m [0 > ;3 > >> 0;4 > >>>> ;47mB[0;30;47mreakpoints: > >>>> [30;1H[0;1;37;49m > >>>> [0;30;47m [0;39;49m > >>>> [31;1H[0;1;37;49m > >>>> > >>>> [0;30;47m [0;39;49m > >>>> [32;1H[0;1;37;49m > >>>> [0;30;47m [0;39;49m > >>>> [33;1H[0;1;37;49m > >>>> > >>>> [0;30;47m [0;39;49m > >>>> [34;1H[0;1;37;49m > >>>> [0;30;47m [0;39;49m > >>>> [35;1H[0;1;37;49m > >>>> > > >> > >>>> [0;30;47m [0;39;49m > >>>> [0;39;49m[4h > >>>> [4l[0;39;49m[?1002l[?1000l[?25h[?47l8 > >>>> [?25hTraceback (most recent call last): > >>>> File "pudb_usage.py", line 21, in <module> > >>>> function() > >>>> File "pudb_usage.py", line 2, in function > >>>> import pudb; pudb.set_trace() > >>>> File "/usr/local/Cellar/python/2.7.1/lib/python2.7/bdb.py", line 52, in > >>>> trace_dispatch > >>>> return self.dispatch_return(frame, arg) > >>>> File "/usr/local/Cellar/python/2.7.1/lib/python2.7/bdb.py", line 85, in > >>>> dispatch_return > >>>> self.user_return(frame, arg) > >>>> File > >>>> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pudb/debugger.py", > >>>> line 253, in user_return > >>>> self.interaction(frame) > >>>> File > >>>> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pudb/debugger.py", > >>>> line 208, in interaction > >>>> self.ui.call_with_ui(self.ui.interaction, exc_tuple) > >>>> File > >>>> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pudb/debugger.py", > >>>> line 1242, in call_with_ui > >>>> return f(*args, **kwargs) > >>>> File > >>>> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pudb/debugger.py", > >>>> line 1361, in interaction > >>>> self.event_loop() > >>>> File > >>>> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/pudb/debugger.py", > >>>> line 1314, in event_loop > >>>> keys = self.screen.get_input() > >>>> File > >>>> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/urwid/raw_display.py", > >>>> line 284, in get_input > >>>> self._wait_for_input_ready(self._next_timeout) > >>>> File > >>>> "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/urwid/raw_display.py", > >>>> line 422, in _wait_for_input_ready > >>>> fd_list, [], fd_list) > >>>> KeyboardInterrupt > >>>> ]7;file://ktmacbookpro/Users/haitran]7;file://ktmacbookpro/Users/haitran]7;file://ktmacbookpro/Users/haitran]7;file://ktmacbookpro/Users/haitran]7;file://ktmacbookpro/Users/haitran[0;32m19:09:58:haitran:~ > >>>> $ [0mexit > >>>> exit > >>>> > >>>> Script done on Sat Jun 23 19:10:01 2012 > >>>> > >>>> > >>>> On Jun 23, 2012, at 12:08 AM, Nicholas Marriott wrote: > >>>> > >>>>> Ok, run the program in script inside tmux and send me the typescript > >>>>> file please. > >>>>> > >>>>> > >>>>> On Fri, Jun 22, 2012 at 06:05:01PM -0700, Kevin Tran wrote: > >>>>>> I think my $TERM is correct. Inside tmux $TERM is screen-256color. > >>>>>> > >>>>>> On Jun 22, 2012, at 3:46 PM, Nicholas Marriott wrote: > >>>>>> > >>>>>>> Your TERM is probably wrong, it needs to be "screen" inside tmux. > >>>>>>> > >>>>>>> > >>>>>>> On Fri, Jun 22, 2012 at 02:59:42PM -0700, Kevin Tran wrote: > >>>>>>>> I am running: > >>>>>>>> python 2.7.1 > >>>>>>>> pudb==2012.1 > >>>>>>>> urwid==1.0.1 > >>>>>>>> pigments==1.5 > >>>>>>>> tmux==1.6 > >>>>>>>> When I use pudb in a tmux session, the python shell shows at the > >>>>>>>> bottom > >>>>>>>> when it should clear the screen. > >>>>>>>> Screenshots > >>>>>>>> Outside of a tmux session: [1]http://imgur.com/uZHpG > >>>>>>>> Inside a tmux session: [2]http://imgur.com/tjirf > >>>>>>>> What's happening? Is this a problem with tmux or with pudb? How do > >>>>>>>> you fix > >>>>>>>> this? > >>>>>>>> > >>>>>>>> References > >>>>>>>> > >>>>>>>> Visible links > >>>>>>>> 1. http://imgur.com/uZHpG > >>>>>>>> 2. http://imgur.com/tjirf > >>>>>>> > >>>>>>>> ------------------------------------------------------------------------------ > >>>>>>>> Live Security Virtual Conference > >>>>>>>> Exclusive live event will cover all the ways today's security and > >>>>>>>> threat landscape has changed and how IT managers can respond. > >>>>>>>> Discussions > >>>>>>>> will include endpoint security, mobile security and the latest in > >>>>>>>> malware > >>>>>>>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > >>>>>>> > >>>>>>>> _______________________________________________ > >>>>>>>> tmux-users mailing list > >>>>>>>> tmux-users@lists.sourceforge.net > >>>>>>>> https://lists.sourceforge.net/lists/listinfo/tmux-users > >>>>>>> > >>>>>> > >>>> > >> > ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users