GUI Automation (Workstation Startup)

Problem: It takes me 30-45 minutes just to login to everything and arrange all of my windows in their positions just to do my job every day. Also, if I reboot in the middle of my shift, I have to spend another 30-45 minutes logging in and setting up everything again.

Solution: I automated this process so it now only takes a couple of minutes. All I have to do it just run a script and it does everything for me. This is only a small sample of the things that I have done with GUI automation.

Tools utilized for this project

  • xdotool
  • wmctrl
  • autokey

Demo Video


Here is my playlist for starting up, positioning and logging into all of my various apps.

my-scripts/linux/liquid-web/g000-startday.sh

#! /bin/bash
# Start Day
##my-scripts/linux/liquid-web/g020-tabs-ouliner.sh
#my-scripts/linux/liquid-web/g001-autokey.sh
#sleep 1
my-scripts/linux/liquid-web/g030-salesforce-btm.sh
my-scripts/linux/liquid-web/g040-salesforce-top.sh
my-scripts/linux/liquid-web/g050-slack.sh
my-scripts/linux/liquid-web/g060-sidebar.sh
sleep 5
my-scripts/linux/liquid-web/g070-phone.sh
my-scripts/linux/liquid-web/g080-salesforce-productivity-tracker.sh
my-scripts/linux/liquid-web/g090-wallboard.sh
my-scripts/linux/liquid-web/g100-mes-alerts.sh
my-scripts/linux/liquid-web/g210-vscode.sh
my-scripts/linux/liquid-web/g220-notepadqq.sh

As you can see, there are many automation tasks in my playlist. I've divided them up so that I can run or rerun any part of my automation at any time should there be issues. As a sample, here is my phone app automation script:

my-scripts/linux/liquid-web/g070-phone.sh

#! /bin/bash
# Phone
google-chrome --app=https://phone.lwpages.com/phone/#/config &>/dev/null & disown
sleep 1
#sleep 15
WINDOW_ID=$(xdotool getactivewindow)
wmctrl -ir $WINDOW_ID -b remove,maximized_vert,maximized_horz
sleep 1
xdotool windowsize $WINDOW_ID 118 700
xdotool windowmove $WINDOW_ID 1656 0

#Login Beta
sleep 3
xdotool mousemove 100 100   #Mouse Reset
xdotool mousemove 1710 110  #Sign in Brian
xdotool click 1
#sleep 1.5;
sleep 2;
xdotool mousemove 900 480   #Select Brian
xdotool click 1
#sleep 0.5;
sleep 2;
xdotool mousemove 1710 600  #Activate
xdotool click 1
sleep 3
xdotool mousemove 1675 101  #Update
xdotool click 1
sleep 1
xdotool mousemove 3010 1430 #Remote Work
xdotool click 1
#sleep 2
sleep 7
xdotool mousemove 2700 1230 #Type Address
xdotool click 1
#sleep 0.5;
sleep 3;
xdotool type '123 Private Ave, Alien City, CA 48333, USA'
sleep 2
xdotool mousemove 2700 1255 #Select Address
xdotool click 1
sleep 2
xdotool mousemove 2700 1863 #Apt
xdotool click 1
sleep 0.5;
xdotool type 'Apt c40'
sleep 0.5;
xdotool mousemove 3070 1900 #Set Location
xdotool click 1
sleep 5
xdotool mousemove 1770 60   #Refresh
xdotool click 1