U &J^)@sPddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddZ zddl Z ddl TWne k re dYnXdZ edZed Zed ed Zed ed ZeddZeddZeddZede Zede ZejesedeZejes.ede ZejesHedeZdZdZdeZdZeee je<ee jee<e e ede!e ejZ"ddZ#dd Z$d!d"Z%d#d$Z&de"d%d&fe"d'd(efffd)d*Z'd+d,Z(d-d.Z)d/d0Z*d1d2Z+d3d4Z,d5d6Z-d7d8Z.d9d:Z/d;d<Z0d=d>Z1d?d@Z2dAdBZ3e4dCkrLe3dS)D)print_functionNcCstd|tddS)Nz ERROR: %s)printsysexit)msgr /usr/lib/byobu/include/config.pyerror%s r )*z(Could not import the python snack moduleZbyobuHOMEUSERBYOBU_CONFIG_DIRz/.byobu BYOBU_RUN_DIRz /.cache/byobu BYOBU_BACKENDtmuxZ 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/pocCsXzr,r)rrrrr?rA)TextboxrDrFrGrHrI) rJr8r7titletextrTbuttonstrNrOrrr messageboxs rZcCsttdtd}|}||dtd}tdd|ddd}t|t dd t ffdd }t |t d d d }| |dd|j |dddd| |}dS)Nz/help.z.txtzrC)rTZwrapMenurPr>z Byobu Helpr,r=rrAr?d)r%DOCrreadr'replace getesckeyrUrDrBrErFrGrHrI)rJrKr*rWrYrNrObuttonrrr helpsrdc Csi}i}i}tdtdfD]}tj|rztt|||Wn tk rdt d|YnXt dkrd|d|df}n d|d |d |d |d f}| D],}| d r| d d}d||<qd||<qqg}t|}t|D]}t|||g}||q|S)N/status/status/statuszInvalid configuration [%s]rz%s %s tmux_left tmux_rightz %s %s %s %sscreen_upper_leftscreen_upper_rightscreen_lower_leftscreen_lower_right#r 1)SHARErrr"r#execr%r`rr rsplit startswithralistkeyssortedr3rC) statusglolocr*itemsirMruZwindowrrr readstatuss.          r|cCsvd}i}i}tttd||||D]@}|drJ|dd}||dkrd|d|7}q0|d|7}q0|S)Nrnrermr z #)rqr%rpr`rrrsra)srwnewrxryr{rrr genstatusstrings   rc Csi}td}|D]}|d||d<qdD]}|tr*zt|d}Wn"tk rhttdd}YnX|}|zt|d}Wntk rt|d}YnX|D]:}|d |rt||}| d ||fq| |q|jq*dS) Nrfrr)rgrhrirjrkrlrrerza+z%s=z%s="%s" ) rrsrr%rrp readlinesr'rwrite) rzrwr"r{keyr*lineslvalrrr writestatuss,   rc Cst}td}tddd}d}|D]0}|ddkrJ|j|d||dd|d}q"t|tdd ftd d tffdd }t|td dd}|j|dddddd||dd|j|dddd| | d krd}|D]*}|ddkr| |d|d<|d}qt |t dS)Nrn rrSr)ZselectedApplyapplyrQrRr>r:r,r=)r=rrr) anchorLeftZ anchorTopr@)r=rrrr?r^)r|LabelZ CheckboxTreerCrDrBrErFrGrHrIZ getEntryValuerr+) rJrKZitemlistZrlrcountitemrNrOrrr togglestatuss,   $  rcCs|d}|rBtdgdkr td}t|ddtd|tdfd }d Std gdkrZtd }t|ddd|tdfd }d SdS)Nrnzbyobu-launcher-uninstallrz/Byobu will not be launched next time you login.r6r,ZMessager])rXezbyobu-launcher-installz9Byobu will be launched automatically next time you login.r^)r(r)rBrZ)rJrKrLoutrcrrr installsrcCsDt|d}z||Wntk r6|YdSX|dS)Na)r%rIOErrorr')pr~r*rrr appendtofiles rcCsd}tdkrDtd}tj|r>t|D]}|dr(|}q(qztSn6td}tj|rvt|D]}|dr`|}q`ntS|dkrtS||dd}|d krd }|S) Nrnrz/keybindings.tmuxzset -g prefix z /keybindingszescape ^r`r}) rrrr"r#r%rsDEF_ESCfind)liner"rescrrr rbs(      rbcCs4|r0ttjd}tjdd|g|d|dS)Nrz byobu-ctrl-ar)stdout)isalphar%rdevnullr(r)r')rZnullfrrr setesckey9s rc Csftdtdd}ttd}t|tddftddtffdd }t|td dd }|j|d d dd d|j|dd dd||dd|dd}|r&| }|dkr | }t |dkr| |d|dks|dkr| t zt| } | t Wntk rd} YnXqd }q|||} | dkrbt| t| dkrbd SdS)Nr,r)rWr9zEscape key: ctrl-rrrQrRr>r;r=r)rrrr)rr@)rr^ZTIMERr\Zfoor)ZEntryrbrrBrDrErFrGZsetTimerrunvaluelensetrr3rZ popWindowrHrr+) rJrKrZesclrNrOZloopZwhichrZdummyrcrrr chgescAs> $          rcCsjtjtdrdSz&tdtD]}d|kr"WdSq"Wntk rPYdSXtjdtrfdSdS)Nz/disable-autolaunchrz %s/.profilez byobu-launchrz/etc/profile.d/Z97-%s.sh)rr"r#rr%r rPKG)rrrr autolaunchgsrcCst}t}|ddtd|tdt}d}|dkrt|||}|dkr^t||}q6|dkrrt||}q6|dkrt ||}q6|dkr6t |||}t}q6| t dd S) z$This is the main loop of our utilityrrzByobu Configuration Menuz6 between elements | selects | exitsr^r,r<r=N)r4Z SnackScreenZ drawRootTextrBZ pushHelpLinerrPrdrrrZfinishrr)rKrJrLtagrrr mainus&     r__main__)5Z __future__rrros.pathtimestringr(gettextglobr Zsnackrrgetenvr r rrrZBYOBU_SOCKETDIRrrpr_r"r#rZRELOADr&rEordZhotkeysbindtextdomain textdomainrBrr+r4rPrZrdr|rrrrrrbrrrr__name__rrrr st              $  &