#!/usr/bin/env ruby laptop_mode = `xrandr` =~ /DP-0\s+disconnected/ wmctrl_out = IO.popen(%w[wmctrl -Gl]) {|io| io.read} term_idx = 0 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 =~ /\s-\slilyterm$/i #if title =~ /\s:\sbash$/i if title =~ /josh@/i # lilyterm in fluxbox: #3840,0,834,580 #4676,0,834,580 #3840,607,834,563 #4676,607,834,563 # konsole in KDE: #3844,29,827,567 #4678,29,827,567 #3844,629,827,567 #4678,629,827,567 # xfce4-terminal in xfce4: #term_sizes = %w[ # 3840,0,825,567 # 4671,0,825,567 # 3840,599,825,567 # 4671,599,825,567 #] ## xfce4-terminal in xfce4: #term_sizes = %w[ # 3840,0,829,576 # 4671,0,829,576 # 3840,599,829,576 # 4671,599,829,576 #] ## gnome-terminal in xfce4: #term_sizes = %w[ # 3840,0,827,578 # 4671,0,827,578 # 3840,603,827,560 # 4671,603,827,560 #] ## konsole in kde5 on arch: #term_sizes = %w[ # 3844,29,824,578 # 4676,29,824,578 # 3844,640,824,560 # 4676,640,824,560 #] ## gnome-terminal in KDE5 on arch: #term_sizes = %w[ # 3840,0,827,578 # 4671,0,827,578 # 3840,605,827,560 # 4671,605,827,560 #] # xfce4-terminal in KDE5 on Kubuntu 17.04: #term_sizes = %w[ # 3840,0,826,578 # 4674,0,826,578 # 3840,611,826,560 # 4674,611,826,560 #] #if term_idx < term_sizes.size # geom_line = term_sizes[term_idx] # if laptop_mode # parts = geom_line.split(",") # parts[0] = (parts[0].to_i - 1920 * 2).to_s # geom_line = parts.join(",") # end # system(*%W[wmctrl -ir #{id} -e 0,#{geom_line}]) #end # Activate the Window sleep 0.1 system(*%W[wmctrl -i -a #{id}]) sleep 0.1 case term_idx when 0 system("xte", "keydown Super_L", "keydown Shift_L", "key Left", "keyup Shift_L", "keyup Super_L") when 1 system("xte", "keydown Super_L", "keydown Shift_L", "key Right", "keyup Shift_L", "keyup Super_L") when 2 system("xte", "keydown Super_L", "keydown Control_L", "key Left", "keyup Control_L", "keyup Super_L") when 3 system("xte", "keydown Super_L", "keydown Control_L", "key Right", "keyup Control_L", "keyup Super_L") end term_idx += 1 end end end