コード例 #1
0
def main():
    logfile="___log-nest-layout"
    dumpfile="___scs-nest-layout-dump-%d"%os.getpid()
    if not os.path.exists(tmpdir):
        os.makedirs(tmpdir)
    logfile=os.path.join(tmpdir,logfile)
    dumpfile=os.path.join(tmpdir,dumpfile)
    sys.stdout=open(logfile,'w')
    sys.stderr=sys.stdout
    session=sys.argv[1]
    tlayout=sys.argv[2]

    scs=ScreenSaver(session)
    homelayout,homelayoutname=scs.get_layout_number()
    while True:
        regions=sc.get_regions(scs.pid)
        try:
            focusminsize="%s %s"%(regions[3][0], regions[3][1])
            regions_c=regions[0]
            foff=regions[1]
            rsize=tuple([int(regions[4+foff][1]),int(regions[4+foff][2])])
            hsize=int(regions[2][0]),int(regions[2][1])
            if regions[4][0]:
                break
        except Exception,x:
            print(x)
            sys.exit(2)
            pass
コード例 #2
0
ファイル: layout.py プロジェクト: stevefoga/screen-session
        date_file_tuple = (lastmod_date, f)
        layhist.redo.append(date_file_tuple)
    layhist.redo.sort(reverse = True)

    layhist.current = glob.glob(os.path.join(tdir, 'L*'))
    return layhist



    pass

if __name__ == '__main__':
    mode = (sys.argv)[1]
    session = (sys.argv)[2]
    ss = ScreenSaver(session)
    layout = ss.get_layout_number()[0]
    
    setup_dirs(session, layout)

    if mode in ('undo', 'redo'):
        try:
            targ = int((sys.argv)[3])
        except:
            targ = 1
        if mode == 'undo':
            targ = -targ

        layhist = get_layout_history(session, layout)

        try:
            if targ > 0:
コード例 #3
0
        regions_new.regions.append((window, str(x), str(y)))

    regions_new.regions = regions_new.regions + regions_dst.regions[regions_dst.focus_offset+1:]
    
    print('destination regions: '+ str(regions_dst.regions))
    print('source regions: ' + str(regions_src.regions))
    print('new regions: ' + str(regions_new.regions))

    sc.layout_begin(session)
    sc.layout_load_dump(open(src_dumpfile, 'r'))
    sc.layout_load_regions(regions_new, None, dst_term_size[0], dst_term_size[1])
    sc.layout_end()

    remove(src_dumpfile)
    remove(regions_file_dst)
    remove(regions_file_src)
    sc.cleanup()

if __name__ == '__main__':
    logfile = os.path.join(tmpdir, '___log_nest-layout')
    sys.stdout = open(logfile, 'w')
    sys.stderr = sys.stdout

    session = (sys.argv)[1]
    src_layout = (sys.argv)[2]

    scs = ScreenSaver(session)
    dst_layout = scs.get_layout_number()[0]

    nest_layout(session, src_layout, dst_layout)
コード例 #4
0
 if no_end:
     lock_and_com_file = os.path.join(lltmpdir,
                                      '%s' % session.split('.', 1)[0])
     if os.path.exists(lock_and_com_file):
         try:
             f = open(lock_and_com_file, 'r')
             pid = f.readline().strip()
             tmpwin = f.readline().strip()
             tmplay = f.readline().strip()
             cwin = f.readline().strip()
             if tmpwin != '-1':
                 cwin = ss.get_number_and_title()[0]
             else:
                 cwin = '-1'
             clay = f.readline().strip()
             clay = ss.get_layout_number()[0]
             f.close()
             if layout_checkpoint:
                 import layout
                 layout.setup_dirs(session, clay)
                 layout.layout_checkpoint(session, clay)
             f = open(lock_and_com_file, 'w')
             f.write(
                 str(pid) + '\n' + str(tmpwin) + '\n' + str(tmplay) + '\n' +
                 str(cwin) + '\n' + str(clay) + '\n' + str(title_width) +
                 '\n' + str(height))
             f.close()
             from signal import SIGINT
             os.kill(int(pid), SIGINT)
             if tmplay != '-1':
                 ss.command_at(False, 'layout select %s' % tmplay)
コード例 #5
0
 if no_end:
     lock_and_com_file = os.path.join(lltmpdir, '%s' %
             session.split('.', 1)[0])
     if os.path.exists(lock_and_com_file):
         try:
             f = open(lock_and_com_file, 'r')
             pid = f.readline().strip()
             tmpwin = f.readline().strip()
             tmplay = f.readline().strip()
             cwin = f.readline().strip()
             if tmpwin != '-1':
                 cwin = ss.get_number_and_title()[0]
             else:
                 cwin = '-1'
             clay = f.readline().strip()
             clay = ss.get_layout_number()[0]
             f.close()
             if layout_checkpoint:
                 import layout
                 layout.setup_dirs(session, clay)
                 layout.layout_checkpoint(session, clay)
             f = open(lock_and_com_file, 'w')
             f.write(str(pid) + '\n' + str(tmpwin) + '\n' + str(tmplay) +
                     '\n' + str(cwin) + '\n' + str(clay) + '\n' + str(title_width) +
                     '\n' + str(height))
             f.close()
             from signal import SIGINT
             os.kill(int(pid), SIGINT)
             if tmplay != '-1':
                 ss.command_at(False, 'layout select %s' % tmplay)
             elif tmpwin != '-1':
コード例 #6
0
def run(session, requirecleanup_win, requirecleanup_lay, curwin, curlay,
        height, select_other = False):
    global lock_and_com_file, mru_file
    lltmpdir = os.path.join(tmpdir, '___layoutlist')
    try:
        os.makedirs(lltmpdir)
    except:
        pass

    signal.signal(signal.SIGINT, handler)
    session = session.split('.', 1)[0]

    ret = 0
    ss = ScreenSaver(session)
    wnum = os.getenv('WINDOW')
    if requirecleanup_lay:
        lnum = ss.get_layout_number()[0]
    else:
        lnum = None

    mru_file = os.path.join(lltmpdir, '%s_MRU' % session)
    if select_other:
        mru_layouts = pickle.load(open(mru_file, 'r'))
        num, title = mru_layouts[1]
        tmp = mru_layouts[0]
        mru_layouts[0] = mru_layouts[1]
        mru_layouts[1] = tmp
        ss.command_at(False, 'eval "layout select %s" "layout title"' %
                      num)
        pickle.dump(mru_layouts, open(mru_file, 'w'))
        return ret
    if NO_END:
        lock_and_com_file = os.path.join(lltmpdir, '%s' %
                session)
        f = open(lock_and_com_file, 'w')
        f.write(str(os.getpid()) + '\n')
        if requirecleanup_win and not requirecleanup_lay:
            f.write(wnum + '\n')
        else:
            f.write('-1\n')
        if requirecleanup_lay:
            f.write(lnum + '\n')
        else:
            f.write('-1\n')
        f.close()

    try:
        try:
            layinfo = list(sc.gen_layout_info(ss, sc.dumpscreen_layout_info(ss)))
        finally:
            sc.cleanup()
    except:
        sys.stderr.write('Layouts dumping error.\n')
        return 1
    screen = curses.initscr()
    (laytable, pos_start) = create_table(ss, screen, curlay, layinfo,
            lnum, height)
    try:
        curses.start_color()
    except:
        curses.endwin()
        sys.stderr.write('start_color() failed!\n')
        return 1

    curses.noecho()

    #screen.notimeout(1)

    try:
        choice = menu_table(
            ss,
            screen,
            lnum,
            curwin,
            curlay,
            layinfo,
            laytable,
            pos_start[0],
            pos_start[1],
            height,
            )
        if requirecleanup_lay and choice == lnum:
            choice = curlay
    except Exception:
        import traceback
        traceback.print_exc(file=sys.stderr)
        choice = curlay
        ret = 1
    curses.endwin()
    if NO_END:
        from util import remove
        remove(lock_and_com_file)
    if requirecleanup_lay:
        ss.command_at(False,
                      'eval "layout select %s" "layout remove %s" "at \"%s\#\" kill" "layout title"' %
                      (choice, lnum, wnum))
    elif requirecleanup_win:
        ss.command_at(False,
                      'eval "select %s" "layout select %s" "at \"%s\#\" kill" "layout title"' %
                      (curwin, choice, wnum))
    else:
        ss.command_at(False, 'eval "layout select %s" "layout title"' %
                      choice)
    return ret