diff --git a/arrange-windows b/arrange-windows new file mode 100755 index 0000000..648651d --- /dev/null +++ b/arrange-windows @@ -0,0 +1,23 @@ +#!/usr/bin/env ruby + +TERM_SIZES = %w[ + 3840,0,829,576 + 4671,0,829,576 + 3840,599,829,576 + 4671,599,829,576 +] + +term_idx = 0 +wmctrl_out = IO.popen(%w[wmctrl -Gl]) {|io| io.read} +wmctrl_out.each_line do |line| + if line =~ /^(\S+)\s+((?:\d+\s+){5})(\S.*)$/ + id, geom, title = $1, $2, $3.strip + _, x, y, width, height = geom.split(/\s+/).map(&:to_i) + if title =~ /josh@/i + if term_idx < TERM_SIZES.size + system(*%W[wmctrl -ir #{id} -e 0,#{TERM_SIZES[term_idx]}]) + term_idx += 1 + end + end + end +end