#! /usr/bin/env python import os def rp_read_frames(): rp = os.popen('ratpoison -c fdump') framestring = rp.readline() rp.close() frames = framestring.strip().split(',') framelist = [] n = 0 for f in frames: if len(f) == 0: # skip continue l = f.split(' ') framelist.append([n] + l) n = n + 1 return framelist def rp_write_frames(fl): frames = ','.join(map(lambda f: '%s %s %s %s %s %s %s' % (f[1],f[2],f[3],f[4],f[5],f[6],f[7]), fl)) os.system('ratpoison -c "frestore %s"' % frames) def swap_frames(fl, a, b): fl[a][6], fl[b][6] = fl[b][6], fl[a][6] fl[a][7], fl[b][7] = fl[b][7], fl[a][7] def sort_frames(fl): s = map(lambda f: (int(f[7]), f[0]), fl) s.sort(); s.reverse() return map(lambda a: a[1], s) fl = rp_read_frames() sf = sort_frames(fl) if len(sf) > 1: swap_frames(fl, sf[0], sf[1]) rp_write_frames(fl)