When I first started at my current job, I was using my personal laptop. Being a stickler for the separation between work-time and non-work-time, I would routinely open GitLab, ClickUp, Slack, Localhost, MAMP and VS Code in the morning and promptly close all those windows come 6 o'clock. I did this manually every day for weeks.
Eventually, I decided to write something that I can run once so that everything I needed open will open quickly.
1. Opening links in Safari
I wrote a Python script that uses the
webbrowser module to open the websites I needed. It looks like this
# work.py import webbrowser websites = [ '<https://app.clickup.com>', '<https://app.slack.com>', '<https://gitlab.com>', '<http://localhost:3000/>' ] for website in websites: webbrowser.open_new(website)
webbrowser module will open the provided links with the default browser
2. Opening MAMP
I use MAMP to start my local server and database. I'm able to do this from the command line by using this snippet
cd /Applications/MAMP/bin && ./start.sh. Make sure to substitute the path for MAMP for its path on your machine. I aliased this command in my
bash_profile file with the alias
startm. Now in my terminal I can run
startm and the MAMP server will start. This also saves me some space in my Dock because having too many icons at the bottom stresses me out. Alternatively, to close the server I use
stopm which is aliased to
cd /Applications/MAMP/bin && ./stop.sh
# .bash_profile alias startm='cd /Applications/MAMP/bin && ./start.sh' alias stopm='cd /Applications/MAMP/bin && ./stop.sh'
3. Opening VS Code
VS Code has a command line utility that allows us to launch it with the working directory right from the terminal. To make sure this utility is running, open the Command Palette on Code by clicking on
⇧⌘P on a Mac, and search for 'shell'. Then, click on "Shell Command: Install 'code' command in PATH" and the
code utility will be available.
Note: this may require restarting the terminal
4. Navigating to different projects
I work on a couple of different projects on a given day, so I have aliases for quickly cd'ing into those directories. You can choose the appropriate names as you see fit.
# .bash_profile alias project1='cd /projects/project1'
Here, we can even go further and couple this command with the
code command which will navigate us into the project's package and launch it on Code. This would look like this:
# .bash_profile alias project1='cd /projects/project1 && code .'
5. Putting it all together in one command
Now that I set up my
.bash_profile and made sure the
code utility is installed, I aliased one more command that will allow me to prep for the work day in four letters:
# .bash_profile alias work='python ~/work.py && startm && project1'
So now I just type
work into my terminal, go to get myself a coffee then sit down to start the day. What programs or websites would you substitute for your workflow?
Thank you for reading. Let me know how I can make this article better. Until next time 👋
Cover photo by Sara Codair on Unsplash.
Top comments (22)
One thing I do in my own laptop is make a separate account for my work user and another one for my personal user. That way I don't need to worry about one thing interfering with the other.
That's a good idea as well
Great post and idea! I recently got into shell scripts as well trying to automate some stuff.
Not yet ready to share the full code because is quite trashy 👀 but this is a little snippet making, changing, and opening a directory in code for a fresh new project.
Really loved finding out about tput setaf changing the color of the text in the terminal, it makes it look cooler.
Also nice trick
source ~/.new-sh-script.shin the zsh config file and it loads the
new(or any other function) in the terminal as a command.
This is really cool! That's gonna be a very useful script. I look forward to seeing the final result 😄
This changed my life with
EG put all your projects in a project directory, add it to your
CDPATH, and you can tab complete your project directory names with
cdfrom any path any time.
Well, that is especially helpful while working from home.
8:59 AM - Home
9:00 AM - Work!!
I do something similar on may Mac using Alfred - I just enter 'work' and it pops open all my email, editor, browser and Slack/Teams, etc. Lazy for the win!
That's awesome! I tried using Alfred some time ago but couldn't get used to it.
Cool post! I usually put all my command in one python script, and run it after opening my workstation.
My favorite one 🤓
Did something similar to this - automation for the win! Saves a ton of time as well.
Reading this article makes me want to automate my whole workflow it would save me a ton of time that would be better spent doing other things.
This is very neat and really productive. thanks
Thanks for this information! 😊
Thanks for reading Pavel 😄
Nice! I also have similar startup script except I use browser's built in tab restore feature to restore my browser session with all tabs.
I do this too! I also start a toggl timer via their rest api. And I create standard 'getting started' checklist via the todoist.
Great Article. A note for people who use Macbook's, you can use Automator tool which is inbuilt inside the system. Will really help you avoid 5-6 clicks in the morning.
I'll have to take a look at the automator, thanks