o &ŸJ^×)ã@sLddlmZddlZddlZddlZddlZddlZddlZddlZddl Z dd„Z z ddl Z ddl TWn e yAe dƒYnwdZ e d¡Ze d ¡Ze d ed ¡Ze d ed ¡Ze dd¡Ze dd¡Ze dd¡Zede Zede Zej e¡sˆedeZej e¡s”ede Zej e¡s edeZdZdZdeZdZeeƒe je<ee jeeƒ<e  e ed¡e !e ¡ejZ"dd„Z#dd „Z$d!d"„Z%d#d$„Z&de"d%ƒd&fe"d'ƒd(efffd)d*„Z'd+d,„Z(d-d.„Z)d/d0„Z*d1d2„Z+d3d4„Z,d5d6„Z-d7d8„Z.d9d:„Z/d;d<„Z0d=d>„Z1d?d@„Z2dAdB„Z3e4dCkr$e3ƒdSdS)Dé)Úprint_functionNcCstd|ƒt d¡dS)Nz ERROR: %sé)ÚprintÚsysÚexit)Úmsg©rú /usr/lib/byobu/include/config.pyÚerror%s r )Ú*z(Could not import the python snack moduleÚbyobuÚHOMEÚUSERÚBYOBU_CONFIG_DIRz/.byobuÚ BYOBU_RUN_DIRz /.cache/byobuÚ BYOBU_BACKENDÚtmuxÚ SOCKETDIRz/var/run/screenÚ BYOBU_PREFIXz/usrz/share/z /share/doc/ú/z/share/doc/packages/ÚAz—If 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-requiredúz/pocCsTzddl}ddl}ddl}ddl}| d| ||jd¡¡}W|Sty)YdSw)NrÚhhÚ1234)ÚfcntlÚtermiosÚstructÚosÚunpackÚioctlÚ TIOCGWINSZÚ Exception)ÚfdrrrrÚcrrrr Ú ioctl_GWINSZLs þÿr$c Csnz,tj t¡s t td¡ttdƒ}| ¡tdkr*t   tdddddtg¡WdSWdSt y6YdSw) NiíÚwÚscreenz-XÚatÚ0Úsourcez %s/profile) rÚpathÚexistsrÚmakedirsÚopenÚ RELOAD_FLAGÚcloserÚ subprocessÚcallr!)Úfrrr Úreload_requiredYs    ÿ ÿr3cCs¨tdƒp tdƒp tdƒ}|s,zt t ¡tj¡}t|ƒ}t |¡Wn ty+Ynw|sDz tdtdf}Wn tyCd}Ynwt|ddƒt|ddƒfS)NrréÚLINESÚCOLUMNS)ééPé) r$rr-ÚctermidÚO_RDONLYr/r!ÚenvÚint)r#r"rrr Ú terminal_sizegs  ÿ ÿ r>cCsÊ|rtdƒ}ntdƒ}tdddd}| tdƒd¡| tdƒd ¡| td ƒd ¡| |d ¡t|d dtffdd}t|tdƒdd ƒ}|j|dddd|j|dddd| | ¡¡dkradS|  ¡S)Nz.Byobu currently launches at login (toggle off)z4Byobu currently does not launch at login (toggle on)éé<r)ÚheightÚwidthÚ returnExitzHelp -- Quick Start GuideúToggle status notificationsr4úChange escape sequenceééÚExitr©Úcompactz Byobu Configuration Menur)rGr4rGr4©Úpadding©rrrr) Ú_ÚListboxÚappendÚ ButtonBarÚESCÚGridFormÚaddÚ buttonPressedÚrunOnceÚcurrent)Ú snackScreenÚsizeÚ isInstalledÚ installtextÚliÚbbÚgrrr Úmenu}s  r_ÚOkayÚokayÚCancelÚcancelc Cs^t||||d}t||dd}t||ddƒ} | j|dddd| j|dddd| |  ¡¡S) N©ÚscrollrrIr4r)rrrrrKrM)ÚTextboxrQrSrTrUrV) rXrBrAÚtitleÚtextreÚbuttonsÚtr]r^rrr Ú messagebox‘s rkcCs¤ttdtdƒ}| ¡}| ¡| dtƒd¡}tdd|ddd}t|t dƒd t ffdd }t |t d ƒd d ƒ}|  |dd¡|j |dddd|  | ¡¡}dS)Nz/help.z.txtzréCé)reÚwrapÚMenur_rIz Byobu Helpr4rGrrMrKéd)r-ÚDOCrÚreadr/ÚreplaceÚ getesckeyrfrQrNrRrSrTrUrV)rXrYr2rhrjr]r^Úbuttonrrr Úhelpšsrvc Csi}i}i}tdtdfD]^}tj |¡rlz tt|ƒ ¡||ƒWnty1t d|ƒYnwt dkrAd|d|df}nd|d |d |d |d f}|  ¡D]}|  d ¡rg|  d d¡}d||<qUd||<qUqg}t| ¡ƒ}t|ƒD]}t||ƒ|g}| |¡qy|S)Nú/status/statusú/statuszInvalid configuration [%s]rz%s %sÚ tmux_leftÚ tmux_rightz %s %s %s %sÚscreen_upper_leftÚscreen_upper_rightÚscreen_lower_leftÚscreen_lower_rightú#Úr(Ú1)ÚSHARErrr*r+Úexecr-rrr!r rÚsplitÚ startswithrsÚlistÚkeysÚsortedr=rP) ÚstatusÚgloÚlocr2ÚitemsÚir\r‡Úwindowrrr Ú readstatus¨s2  ÿ      €   rcCsvd}i}i}tttdƒ ¡||ƒ|| ¡D] }| d¡r%| dd¡}||dkr2|d|7}q|d|7}q|S)Nr€rwrrú z #)rƒr-r‚rrr„r…rs)Úsr‰ÚnewrŠr‹rrrr ÚgenstatusstringÄs   r“c Csði}td}|D] }|d||d<qdD]`}| t¡ruzt|dƒ}Wnty3ttddƒ}Ynw| ¡}| ¡zt|dƒ}WntyQt|dƒ}Ynw|D]}| d |¡rlt||ƒ}|  d ||f¡qT|  |¡qT|jqdS) Nrxrr)ryrzr{r|r}r~Úrrwr%za+z%s=z%s="%s" ) rr…rr-r!r‚Ú readlinesr/r“Úwrite) rŒr‰r*rÚkeyr2ÚlinesÚlÚvalrrr Ú writestatusÓs4  ÿ ÿ  €îr›c Cstƒ}tdƒ}tddd}d}|D]}|ddkr%|j|d||dd|d}qt|tdƒd ftd ƒd tffdd }t|td ƒddƒ}|j|dddddd| |dd¡|j|dddd|  |  ¡¡d krŠd}|D]}|ddkr~|  |¡d|d<|d}qmt |ƒt ƒdS)Nr€é rrdréÿÿÿÿ)ÚselectedÚApplyÚapplyrbrcrIrDr4rG)rGrrr)Ú anchorLeftÚ anchorToprL)rGrrrrKrp)rÚLabelÚ CheckboxTreerPrQrNrRrSrTrUrVÚ getEntryValuer›r3) rXrYÚitemlistÚrlr”ÚcountÚitemr]r^rrr Ú togglestatusís,   $  rªcCsxd}|r!t dg¡dkrtdƒ}t|ddtdƒ|tdƒfd }d St d g¡dkr-td ƒ}t|ddd|tdƒfd }d S)Nr€zbyobu-launcher-uninstallrz/Byobu will not be launched next time you login.r@r4ÚMessagero)riéezbyobu-launcher-installz9Byobu will be launched automatically next time you login.rp)r0r1rNrk)rXrYrZÚoutrurrr Úinstallsr®cCsBt|dƒ}z| |¡Wnty| ¡YdSw| ¡dS)NÚa)r-r–ÚIOErrorr/)Úpr‘r2rrr Ú appendtofiles  þr²cCs¦d}tdkr!td}tj |¡rt|ƒD] }| d¡r|}qntStd}tj |¡r:t|ƒD] }| d¡r8|}q/ntS|dkrBtS|| d¡d}|d krQd }|S) Nr€rz/keybindings.tmuxzset -g prefix z /keybindingszescape ú^rú`r) rrrr*r+r-r…ÚDEF_ESCÚfind)Úliner*r™Úescrrr rts0   €þ   €þrtcCs8| ¡rttjdƒ}tjdd|g|d| ¡dSdS)Nr%z byobu-ctrl-ar&)Ústdout)Úisalphar-rÚdevnullr0r1r/)r—Únullfrrr Ú setesckey9s   ür½c CsZtdtƒdd}ttdƒƒ}t|tdƒdftdƒdtffdd }t|td ƒdd ƒ}|j|d d dd d|j|dd dd| |dd¡| d¡d}|r|  ¡}|dkr‹|  ¡}t |ƒdkre|  |d¡|dksm|dkrr|  t ¡z t|  ¡ƒ} |  t ¡Wn tyŠd} Ynwd }|sL| ¡| |¡} | dkr«t|  ¡ƒtƒ| dkr«d SdS)Nr4r)rhrCzEscape key: ctrl-rŸr rbrcrIrErGr)rrrr)r¡rL)r¡rpÚTIMERrú\Úfoor)ÚEntryrtr£rNrQrRrSrTÚsetTimerÚrunÚvalueÚlenÚsetrµr=r!Ú popWindowrUr½r3) rXrYr¸Úesclr]r^ÚloopÚwhichršÚdummyrurrr ÚchgescAsB $     þï  rÌcCshtj td¡r dSztdtƒD] }d|vrWdSqWn ty'YdSwtj dt¡r2dSdS)Nz/disable-autolaunchrz %s/.profilez byobu-launchrz/etc/profile.d/Z97-%s.sh)rr*r+rr-r r!ÚPKG)r·rrr Ú autolaunchgsÿÿ ÿrÎcCs¾tƒ}tƒ}| ddtdƒ¡| tdƒ¡tƒ}d}|dkrTt|||ƒ}|dkr/t||ƒ}n!|dkr9t||ƒ}n|dkrCt ||ƒ}n |dkrPt |||ƒ}tƒ}|dks|  ¡t   d¡d S) z$This is the main loop of our utilityrrzByobu Configuration Menuz6 between elements | selects | exitsrpr4rFrGN)r>Ú SnackScreenÚ drawRootTextrNÚ pushHelpLinerÎr_rvrªrÌr®Úfinishrr)rYrXrZÚtagrrr Úmainus(     ö rÔÚ__main__)5Ú __future__rrrÚos.pathÚtimeÚstringr0ÚgettextÚglobr Úsnackr!rÍÚgetenvr rrrrÚBYOBU_SOCKETDIRrr‚rqr*r+rµÚRELOADr.rRÚordÚhotkeysÚbindtextdomainÚ textdomainrNr$r3r>r_rkrvrr“r›rªr®r²rtr½rÌrÎrÔÚ__name__rrrr Úsz    ÿ               $  &  ÿ