he)ddlmZddlZddlZddlZddlZddlZddlZddlZddl Z dZ ddl Z ddl dZ ejdZejdZejd ed zZejd ed zZejd dZejddZejddZedze zZedze zZej0j3esedzezZej0j3esedze zZej0j3esedzezZdZdZdezZdZeee j>e<ee j>ee<ej@e edzejBe ejZ"dZ#dZ$dZ%dZ&de"d d!fe"d"d#efffd$Z'd%Z(d&Z)d'Z*d(Z+d)Z,d*Z-d+Z.d,Z/d-Z0d.Z1d/Z2d0Z3e4d1k(re3yy#e $r e dYwxYw)2)print_functionNcJtd|ztjdy)Nz ERROR: %s)printsysexit)msgs /usr/lib/byobu/include/config.pyerrorr %s{S!)*z(Could not import the python snack modulebyobuHOMEUSERBYOBU_CONFIG_DIRz/.byobu BYOBU_RUN_DIRz /.cache/byobu BYOBU_BACKENDtmux SOCKETDIRz/var/run/screen BYOBU_PREFIXz/usrz/share/z /share/doc//z/share/doc/packages/AzIf you are using the default set of keybindings, press or to activate these changes. Otherwise, exit this session and start a new one.z%s/reload-requiredz/poc ddl}ddl}ddl}ddl}|j d|j ||j d}|S#t$rYywxYw)Nrhh1234)fcntltermiosstructosunpackioctl TIOCGWINSZ Exception)fdrrrr crs r ioctl_GWINSZr'LsQ  }}T5;;r7+=+=vFG"   s=A A  A c > tjjtstjtdt t d}|jtdk(r'tjtdddddtzgyy#t$rYywxYw) Niwscreenz-Xat0sourcez %s/profile) r pathexistsrmakedirsopen RELOAD_FLAGcloser subprocesscallr$)fs r reload_requiredr7Ys|  ( );;% ;!'')h ??M4sHlM]>]^_sB B BBctdxstdxs td}|sW tjtjtj}t|}tj ||s tdtdf}t|ddz t|ddz fS#t $rYBwxYw#t $rd}Y>wxYw)NrrLINESCOLUMNS)P) r'r r1ctermidO_RDONLYr3r$envint)r&r%s r terminal_sizerCgs1o;a;LO   bkk*2R288B<  Ws9~&2 BqEAIBqEAI&&  2s$AB6C6 CC CCc*|r td}n td}tddd}|jtdd|jtdd |jtd d |j|d t|d dtffd}t |tddd }|j |ddd|j |ddd|j|jdk(ry|jS)Nz.Byobu currently launches at login (toggle off)z4Byobu currently does not launch at login (toggle on)<r)heightwidth returnExitzHelp -- Quick Start GuideToggle status notificationsr9Change escape sequenceExitrcompactz Byobu Configuration Menur)rMr9rMr9paddingrrrr) _Listboxappend ButtonBarESCGridFormadd buttonPressedrunOncecurrent) snackScreensize isInstalled installtextlibbgs r menure}sBC+HI+ QbQ/1 ( )1-1 * +Q/1 % &*; vvs35qA k1891a@r1a&r1a&QYY[!V+ r OkayokayCancelcancelct||||}t||d}t||dd} | j|ddd| j|ddd|j | j S) NscrollrrOr9r)rrrrrQrS)TextboxrWrYrZr[r\) r^rHrGtitletextrlbuttonstrcrds r messageboxrrso UFD0 Wa0 k5!Q'q!Q %r1a& %%r cttdztzdz}|j}|j |j dt d}tdd|dd}t|tdd tffd }t|td d d }|j|dd|j|ddd|j|j}y)Nz/help.z.txtzrC)rlwrapMenurerOz Byobu Helpr9rMrrSrQd)r1DOCrreadr3replace getesckeyrmrWrTrXrYrZr[r\)r^r_r6rorqrcrdbuttons r helpr~s #.= (6 12  Za0 RT!!, qy&#68!D k1\?Aq1q!Qr1a&  199; ' r c i}i}i}tdztdzfD]}tjj |s# t t |j||tdk(r|dd|d}n|dd|d d|d d|d }|jD]0}|jd r|jd d }d||<,d||<2g}t|j}t!|D]#}t#|||g}|j%|%|S#t$rtd|zYwxYw)N/status/status/statuszInvalid configuration [%s]r tmux_left tmux_rightscreen_upper_leftscreen_upper_rightscreen_lower_leftscreen_lower_right#r,1)SHARErr r.r/execr1rzr$r rsplit startswithr{listkeyssortedrBrV) statusglolocr6itemsirbrwindows r readstatusrs^    # #%5 %A BQWW^^A,ac"v;'\): ;E !45s;O7PRUViRjloqEmF GE KKMq||C 3 QVAYVAY    V[[] ,Q q NA &))F # , & *+,s$D$$D>=D>cd}i}i}tttdzj||||j D]>}|j dr|j dd}||dk(r |d|zz }7|d|zz }@|S)Nrrrrrz #)rr1rrzrrr{)srnewrrrs r genstatusstringrs   d5# #$))+S#6 a&,,.Q\\#yyb1 AY!^#'>3$(?3  r ci}tdz}|D] }|d||d<dD]}|jts t|d}|j }|j t|d}|D]K}|jd |zr$t||}|j|d |d ;|j|M|jy#t$rtt dzd}YwxYw#t$rt|d}YwxYw) Nrrr)rrrrrrrrr)za+z%s=z="z" ) rrrr1r$r readlinesr3rwrite) rrr.rkeyr6lineslvals r writestatusrs 9$ Q1&1, } S^^M", T3A ;;=5779 T3A q||ECK 3 'SWWc3 '(WWQZ  77%  , U% %s+A,  T4As# C' C4C10C14D  D crt}td}tdd}d}|D])}|ddk7r|j|d||d|dz}+t |t dd ft d d t ffd }t|t d dd}|j|ddddd|j|dd|j|ddd|j|jd k7rBd}|D]&}|ddk7r|j|d|d<|dz}(t|ty)Nr rrkr)selectedApplyapplyrhrirOrJr9rM)rMrrr) anchorLeft anchorToprR)rMrrrrQrx)rLabel CheckboxTreerVrWrTrXrYrZr[r\ getEntryValuerr7) r^r_itemlistrlrcountitemrcrds r togglestatusrsF L Bi"Q  T !W]88DGUT!W8- !)% qz73ak8S5QR\]^ k1:;QBr1aALAq!Qr1a&QYY[!X- %d 1gmooe$Q'DG 195h r c d}|rItjdgdk(r td}t|ddtd|tdf }y tjd gdk(r td }t|ddd|tdf }y )Nrzbyobu-launcher-uninstallrz/Byobu will not be launched next time you login.rFr9Messagerw)rpezbyobu-launcher-installz9Byobu will be launched automatically next time you login.rx)r4r5rTrr)r^r_r`outr}s r installrs __012a7 < =3 k2q!I,qym U& __./0A5 F G3 k2q)SAfI= R& r ct|d} |j||jy#t$r|jYywxYw)Na)r1rIOErrorr3)prr6s r appendtofilersH !S\ ''!*  '') s0A  A cd}tdk(rStdz}tjj |r%t |D]}|j ds|}nYtStdz}tjj |r%t |D]}|j ds|}ntS|dk(rtS||jddz}|d k(rd }|S) Nrrz/keybindings.tmuxzset -g prefix z /keybindingszescape ^r`r) rrr r.r/r1rDEF_ESCfind)liner.rescs r r|r|s V / /$WW^^D Jq||$% T > N *$WW^^D Jq||I T >BJ . DIIcNQ 3J # r c|jrEttjd}t j dd|g||j yy)Nr)z byobu-ctrl-ar*)stdout)isalphar1r devnullr4r5r3)rnullfs r setesckeyr9s>KKM rzz3 % //>8S1%@++- r cxtdtd}ttd}t |tddftddt ffd }t |td dd }|j|d d dd |j|dd d|j|dd|jdd}|r|j}|dk(r|j}t|dkDr|j|d|dk(s|dk(r|jt t|j} |jtnd }|r|j!|j#} | dk7r)t%|jt'| dk(ry y#t$rd} Y`wxYw)Nr9r)rorIzEscape key: ctrl-rrrhrirOrKrMr)rrrr)rrR)rrxTIMERr\foor)Entryr|rrTrWrXrYrZsetTimerrunvaluelensetrrBr$ popWindowr[rr7) r^r_resclrcrdloopwhichrdummyr}s r chgescrAs QY[Q/ a#$% qz73ak8S5QR\]^ k1561=tQa6sAqQr1aC  %%'% g 3 #hlGGCFO SjC4KGGG  EGGG 4# $   5 ! h CIIK v    Es'.F++ F98F9ctjjtdzry t dt zD]}d|vsy tjjdtzryy#t $rYywxYw)Nz/disable-autolaunchrz %s/.profilez byobu-launchrz/etc/profile.d/Z97-%s.sh)r r.r/rr1rr$PKG)rs r autolaunchrgswGGNN#&;;<  =4'( d  GGNN-34    sA/A/A// A;:A;ct}t}|jddtd|j tdt }d}|dkDret |||}|dk(r t||}n@|dk(r t||}n.|dk(r t||}n|dk(rt|||}t }|dkDre|jtjdy ) z$This is the main loop of our utilityrrzByobu Configuration Menuz6 between elements | selects | exitsrxr9rLrMN)rC SnackScreen drawRootTextrT pushHelpLinerrer~rrrfinishrr)r_r^r`tags r mainrus} !Q"< => !TUV|  Qw [$ ,#AX k4 3 ax k4 (3 ax  T "3 ax dK 03; Qw !r __main__)5 __future__rrr os.pathtimestringr4gettextglobr snackr$rgetenvrrrrrBYOBU_SOCKETDIRrrryr.r/rRELOADr2rXordhotkeysbindtextdomain textdomainrTr'r7rCrerrr~rrrrrrr|rrrr__name__r r rsX4&    3  ryyryy299/ 1AB /4/+AB  /62 "))K):;ryy0 y 3&]"S( ww~~e C % ' ww~~c,,s2 ww~~c##  f"m4  X c c#hsEEM*3 OO   ',(@AAfIW]K^abckalnvx{`|J}&   8   4 2   4# L   . z 3123s G88 H H