Changing MacOS Desktop Background Colors With Keyboard Maestro

Introduction

On my Apple MacOS, I prefer to use solid colors for my desktop backgrounds instead of pictures. There’s a few reasons for this.

First, and primarily, I record training videos for Pluralsight. Having a solid color for a background eliminates any visual distractions for the viewers.

Second, using a solid color provides a visual queue to which desktop space I’m working in. My previous post Moving Between Multiple MacOS Desktop Spaces With Keyboard Maestro, I documented how I like to have multiple spaces across my three external monitors. The first space for business apps, second for coding, and final space for video recording or other tasks.

I’ve noticed that when I first boot my MacBook, it doesn’t always restore the same colors I had when I shut down. One monitor might have a blue background, another might be dark gray. This happens often enough to be annoying, and something I want to easily correct.

There are also times when I’m working under different lighting conditions than normal, and a darker black background, or a very light gray may work better. Having the ability to change this easily was important to me.

If you read my last few posts, you saw how powerful Keyboard Maestro | @KeyboardMaestro is. So I turned to it and was happy to say I found a solution, although I admit it’s a bit of a workaround.

Before we get started, be aware Keyboard Maestro is a paid app. However it’s a one time purchase of only $36 (US). Well worth the investment for everything it does.

Additionally, this won’t be a step by step tutorial on how to use Keyboard Maestro. The Keyboard Maestro website, YouTube, and the internet have a plethora of those on the basic use of the Keyboard Maestro application. This post will focus on the solution I came up with.

OK, let’s go see how to add some color to our lives!

Setting The Background

Before you can proceed, you will first need a transparent PNG file. You can create your own, or grab one from the web. I found one at Wikimedia Commons. You can download the smallest size, then save it to your Documents folder (or some other common location, I went with Documents).

Next, start a new macro. I chose to bind this first one to Ctrl+Option+Shift+G, as I’ll be using it for a Gray background.

Next, add an action of Set Desktop Image. For the image file, select the transparent PNG file you created (or downloaded).

Set it to Fit to screen, then set the background to the color you want. In the image below, I chose a dark gray color.

Now you can repeat this, adding additional macros for each color you want to add. I have macros for dark gray, green, dark red, blue, and a light gray almost white in color. Normally I use dark gray for my "business" spaces, blue for my development spaces, and dark red or dark green for the third desktop space, depending on my mood. I can also change easily if lighting conditions would make a certain color easier to on my eyes.

As you can see, the workaround is to use a transparent image and set a background color. True, I could manually go set a background color each time directly through the MacOS Change Desktop Background interface, but that’s time consuming compared to a simple key combination.

Using with Pictures Too!

Here I chose a transparent image, but you could if you wished use this with normal pictures. When working from home, you may want a background of your family. At a company meeting, you may want to quickly change this to your company logo. If you are about to do some screen sharing, you may want just a solid background color, like I showed in this post.

Conclusion

This becomes a very handy tool for situations when, upon booting, MacOS doesn’t restore my colors correctly, or for changing them to meet my needs at the moment.

I hope you found this Keyboard Maestro macro to change your desktop background colors as useful as I do. If so, please share this post with your friends, family, and anyone else who uses an Apple Mac product.

Disclaimer, this was in no way a paid advertisement for Keyboard Maestro. I received no compensation for doing this post. In fact I purchased Keyboard Maestro with my own hard earned money. I just think its a great tool and wanted to share this technique to change multiple desktop spaces simultaneously with you.

I record video training courses for Pluralsight, including several on the Apple MacOS platform. You’ll find a list of my courses with links on my About Me page.

If you don’t have a Pluralsight subscription, just go to my list of courses on Pluralsight . At the top is a Try For Free button you can use to get a free 10 day subscription to Pluralsight, with which you can watch my courses, or any other course on the site.

Advertisement

Moving Between Multiple MacOS Desktop Spaces With Keyboard Maestro

Introduction

Like many people, I use Apple’s multiple desktop spaces feature on MacOS. I use the first space for "business". My email reader, to do task list, social media, notes app, and the like goes here.

My second space is used for development. VSCode and related apps go into this spot. My third spot is either used for video recording, or other tasks as needed.

The MacOS spaces feature works in one of two ways. In the older method all desktop spaces were tied together. You used CTRL+Left Arrow or CTRL+Right Arrow to move between them, and the spaces on all monitors changed together. You got one menu bar across the top of the primary monitor.

You can actually change MacOS to revert back to this behavior, but I like having a menu bar on each display so don’t like to use it.

In the current, default mode each monitor has a space that is independent of the others. I can change the current space on one monitor, but the others remain as they were. Each monitor has its own menu bar across the top.

I have three monitors connected to my MacBook, and it can be annoying to have to change the space on each monitor individually, when the majority of the time I want to change them all together. Sadly there is no method built into MacOS to do this.

I finally found a way to accomplish this using Keyboard Maestro | @KeyboardMaestro. Be aware Keyboard Maestro is a paid app, but a one time purchase of only $36 (US). Well worth the investment for everything it does.

Just a preface first, this won’t be a step by step tutorial on how to use Keyboard Maestro. The Keyboard Maestro website, YouTube, and the internet contain a vast collection on the basic use of the Keyboard Maestro application. This post will focus on the solution I came up with.

OK, with that out of the way let’s see how to change desktop spaces simultaneously.

Changing Spaces On All Monitors

Changing the desktop space requires a few steps, as you’ll see in the image below.

In the first action I used Move or Click Mouse and changed it to Move Only, to relocate the mouse to an absolute position on my first monitor. I started with the leftmost monitor in my setup.

You can use the Get button found in the move mouse action to easily capture the coordinates. I just moved the mouse over to the middle of the monitor to grab the position.

Next, I have a Type a Keystroke action, and have it press CTRL+Right Arrow. I then have a Pause action, to make the macro wait one second before proceeding.

I found without the pause, my Mac was running so fast it didn’t have time to figure out where the cursor was before processing the CTRL+Right Arrow keystroke, so it wasn’t always changing the correct monitors desktop space. Adding the Pause fixed this.

For the second monitor I have another Mouse Move (but no click) that just moves the cursor 2000 pixels over from the last mouse position, which was on monitor 1. This is enough to move the mouse over to monitor 2.

I then have another keystroke action to press CTRL+Right Arrow, then another pause. I repeat these steps for the remaining monitors.

I suppose I could have positioned the mouse in an absolute position for all my monitors, but to me this will make the macro easier to reuse in other setups.

At the very end I added a final Mouse Move action to reposition the mouse over the center of my primary monitor. This way I’ll know where it is each time and won’t have to hunt it down.

I tied this macro to CTRL+F12. Now I can move the spaces for all my monitors one screen to the right with one key press.

Moving Left

To move everything back to the left, I duplicated the macro. Then I simply changed all of the keystroke actions to press CTRL+Left Arrow. Finally I bound the macro to CTRL+F11.

Disabling Changing On Some Spaces

If you are familiar with Keyboard Maestro, you may have noticed three actions toward the bottom that are disabled. Originally I had all three external monitors, plus the internal monitor on my MacBook, changing together.

As my MacBook tends to sit off to the side, I primarily use the internal monitor to hold the Apple Messages app in case my wife (aka she-who-must-be-obeyed) sends me a text. It lets me notice and respond quickly.

I also leave the Apple Home app on this monitor so I can turn the lights and fans in my house on and off easily. When I play music the Apple Music app sits here too. I opted to disable desktop space changing on this monitor, although I left the actions in the macro but disabled in case I should ever want to turn them back on.

It also serves as an example that you can opt to change some, but not all, desktop spaces at the same time.

Don’t Go Too Fast

Be aware you need to give Keyboard Maestro time to process the macro. You cannot rapidly press CTRL+F12 CTRL+F12 CTRL+F12… quickly and have the macro work right.

It’s best to press the activation keystroke (CTRL+F12 in my case), let go of the keyboard until all the spaces have changed, then press it again.

Even with that slight limitation, it is still far faster than having to move your mouse to each monitor and use the built in CTRL+Left/Right arrow keystrokes.

Also be aware I chose CTRL+F12 and CTRL+F11 for my activation keystrokes. You are free to pick any key combination that is not currently in use on your Mac.

Conclusion

I hope you’ll find this Keyboard Maestro macro as useful as I do. If so, please share this post with your friends, family, and anyone else who uses an Apple Mac product.

Disclaimer, this was in no way a paid advertisement for Keyboard Maestro. I received no compensation for doing this post. In fact I purchased Keyboard Maestro with my own hard earned money. I just think its a great tool and wanted to share this technique to change multiple desktop spaces simultaneously with you.

I record video training courses for Pluralsight, including several on the Apple MacOS platform. You’ll find a list of my courses with links on my About Me page.

If you don’t have a Pluralsight subscription, just go to my list of courses on Pluralsight . At the top is a Try For Free button you can use to get a free 10 day subscription to Pluralsight, with which you can watch my courses, or any other course on the site.

Opening Multiple Apps on MacOS With Keyboard Maestro

Introduction

When I sit down at my Apple MacBook to begin my workday, there are a variety of apps I open and use daily. I also use multiple monitors, so I can spread my work out. When done manually, this required me to open each app, move it to the monitor I wanted, then repeat. Very time consuming.

I wanted a way to automate this, and found Keyboard Maestro | @KeyboardMaestro to be the best solution. It was easy to setup, and I could trigger things off a simple keyboard combination.

Be aware Keyboard Maestro is a paid app, but a one time purchase of only $36 (US). Well worth the investment for everything it does.

Just a preface, this won’t be a step by step tutorial on how to use Keyboard Maestro. The Keyboard Maestro website, YouTube, and the internet have a plethora of those on the basic use of the Keyboard Maestro application. This post will focus on the solution I came up with.

OK, that said let’s see how to open multiple apps.

Opening and Positioning an App

Opening an app in Keyboard Maestro requires three basic steps. First, use the Activate Application action. This will open the app if it’s not already open, or bring it to the foreground if it’s open already. If you’ve already got the app open when you create the action, you can easily pick it in the Activate action’s app picker list inside the Keyboard Maestro editor.

Next, you need a Pause action. This is needed to give the app time to fully open before you attempt to move it in the next step. For most apps around 3 seconds was sufficient. Some apps loaded quickly, and I could reduce the pause time to one or two seconds. A few I had to bump up to four or five seconds. You’ll just have to play with this, as it is quite dependant on the app, the speed of your Mac, and even the internet for apps that require access to the web.

Finally I added a Move Window action, then changed it to Move and Resize Front Window. You can manually enter the top corner coordinates, followed by the width and height.

Far easier though is to have the app positioned where you want it, then use the Get button, found in the Move and Resize Front Window action. This turns the mouse into cross hairs, and you have five seconds to draw a box around the app. This will get the coordinates and paste them into the action. From there you can make any minor tweaks.

Now, repeat! Repeat these three steps for each application you want to open. Here is a screen shot of my list.

There’s one more action, just off the bottom of the screen, a Move Mouse action.

After opening up my apps I wanted to position the mouse in a spot where I knew it would be.

IMPORTANT!!! Keep Your Hands Off The Keyboard and Mouse!!!

One important thing, make sure not to touch the keyboard or mouse while these macros are running. Otherwise you might interrupt the workflow and apps won’t open correctly or may not be where you want them positioned.

Of course if that happens its not a big deal, you can just run the macro a second time to get everything positioned right, but best not to waste the time if you can avoid it.

Variations

This app saves me a lot of time every day. I carry my MacBook onto a sunroom / porch I have on the back of my house, plug it in to my monitors (don’t worry the sunroom is secure), and run the Keyboard Maestro macro. Sure, it takes about a minute to run and open everything, but that is far faster than doing it manually. In addition I can do other tasks while it is running, such as plugging in my iPads and setting them on my desk, or sitting my Windows / Linux laptop in its docking station.

Because this is tied to a keyboard combination, I can have multiple versions. For the sunroom I enjoy working on I use Ctrl+Shift+Option+Cmd+P to start my work day. In addition to the sunroom, I also have an actual home office where Ctrl+Shift+Option+Cmd+O opens and positions everything. In addition, my in-laws kindly gave me a corner in a spare room to setup a small desk with some monitors so I can work when we visit there, using Ctrl+Shift+Option+Cmd+D. (D is the first letter of the town they live in, in case you were wondering.)

Finally I have yet a fourth version to open my apps when I am using only the internal monitor of my MacBook, with no external monitors attached. For it I use Ctrl+Shift+Option+Cmd+L (L for Laptop Only).

During the course of the day I’ll wind up moving applications around on the screen, dragging between monitors, and the like. At some point I like to refresh everything to put my apps back where I had them at the start of the day. I can of course run the full Ctrl+Shift+Option+Cmd+P (for example) and it works just fine.

However, if I know all the apps are already open, there is no sense in giving each one time to open. So I created a duplicate of the original macro, and simply removed all of the pause actions. I then use Ctrl+Option+Cmd+P to activate it. I did the same for the other macros, creating a version without the pause, and the only difference being the faster (much faster!) version doesn’t include Shift as part of the activation.

Thanks to MacGeekGab

I need to give a shout out to my favorite Apple podcast Mac Geek Gab | @MacGeekGab. In a past episode one of the hosts (I believe it was Dave) mentioned using Keyboard Maestro to do this very thing, although didn’t go into any details.

That gave me the inspiration to tackle this challenge. Through some trial and error, along with persistance, I was able to come up with a solution that worked for me.

Conclusion

If you are an Apple Mac user and don’t have Keyboard Maestro, it is a worth while investment. As a matter of fact, I have some upcoming posts in which I’ll document a few other things I use it for!

The same goes for Mac Geek Gab, if you aren’t listening to their podcast, you should!

Disclaimer, this was in no way a paid advertisement from either Keyboard Maestro or Mac Geek Gab. I received no compensation for doing this post. In fact I purchased Keyboard Maestro with my own hard earned money, and even donate to Mac Geek Gab. I just think they are both great tools and wanted to share them with you.

I record video training courses for Pluralsight, including several on the Apple MacOS platform. You’ll find a list of my courses with links on my About Me page.

If you don’t have a Pluralsight subscription, just go to my list of courses on Pluralsight . At the top is a Try For Free button you can use to get a free 10 day subscription to Pluralsight, with which you can watch my courses, or any other course on the site.

VeraCrypt on the Command Line for macOS

Introduction

Automation is the key to success, especially in the DevOps world. In addition, security is an ever increasing need in today’s world of hacks and ransomware.

In my last two posts I showed how to use the encryption utility, VeraCrypt, to create encrypted containers and drives to securely store data. In this, and the next two posts, we’ll see how we can automate VeraCrypt from the command line.

We’ll cover the basics. Creating a container, mounting a container (aka volume), getting a list of mounted volumes, and finally dismounting your volumes.

As it turns out, the command line syntax is a bit different for all the major operating systems. In this post we’ll focus on macOS, in the next two posts we’ll cover Windows and Linux.

Prerequisites

Naturally, you’ll have to have VeraCrypt installed. You can find out more in my first post of the series, VeraCrypt – A Powerful Encryption Utility.

The next requirement applies to macOS. In order for macOS to be able to read the variety of filesystems VeraCrypt supports, you need to install a free utility, macFUSE.

It’s free, fast to install and takes very little in the way of system resources. It’s compatible with macOS BigSur and Catalina, and probably older versions too, check their site if you have that need.

Code Samples

While I will be providing samples here, you should also check out the project I have on GitHub that goes with this post, VeraCrypt-CommandLine-Examples.

I’ll update it over time as needed, and it may be easier for you to download, or cut and paste from it.

OK, let’s get started!

Creating a Container

First off, let’s look at the long line of code needed to create a container. Please note that while your blog reader may wrap the command below, it should be one line in your shell script.

/Applications/VeraCrypt.app/contents/MacOS/VeraCrypt --text --create "/Users/arcanecode/Documents/temp/vctest.vc" --size "200M" --password MySuperSecurePassword1! --volume-type normal --encryption AES --hash sha-512 --filesystem exfat --pim 0 --keyfiles "" --random-source /Users/arcanecode/Documents/temp/randomdata.txt

OK, that’s a bit hard to read, so let me break it out into each part below.

The first item is the path to the VeraCrypt application, assuming you installed it in the default location.

/Applications/VeraCrypt.app/contents/MacOS/VeraCrypt

The --text parameter says we want to use VeraCrypt in text mode, not GUI. Note, the –text parameter must be the FIRST parameter you pass in, or it will not work.

--text

We next tell VeraCrypt we want to create a new file container, and where it is to be stored at. For this demo, I’ve created a temp folder in my Documents directory.

You’ll want to change this to the location where you store your volumes. In addition, you’ll also want to change the user folder from arcanecode to your username.

--create "/Users/arcanecode/Documents/temp/vctest.vc"

Next we indicate how big we want our container to be. If you just list a number, VeraCrypt assumes you mean bytes, but you can also affix M for megabytes, G gigabytes, K kilobytes, and so on.

Here I’m going to keep it small for demo purposes and use 200 megabytes.

--size "200M"

Now we provide our password. Normally you would not want to hard code it, but rather pass it into your script as a parameter.

I wanted to keep this demo simple though, and focus on VeraCrypt so I’ve just hard coded it I’m using the same “super secure” password I’ve used in my last few posts.

--password MySuperSecurePassword1!

Next is the volume type, normal or hidden. My previous blog post talks about hidden types, and if you are going to do a hidden volume I would suggest using the GUI in order to assure it is done right.

For this demo we’ll go with a normal volume

--volume-type normal

Now we pick the encryption type. There are quite a few, so refer to the VeraCrypt documentation for a full list. Here we’re using AES.

--encryption AES

Next up, for the encryption method we picked it needs to know the hashing algorithm. For AES I suggest SHA-512.

--hash sha-512

In order to keep this container portable across other OS’s (Windows and Linux) we’ll format using exfat. Be aware though that to use exfat on a Mac, you’ll have to install macFUSE (see the prerequisites section above.)

--filesystem exfat

The PIM is a special number that allows you to specify the number of times hashing algorithm executes. It’s a bit more complex than that, if you want full details see the VeraCrypt documentation.

For now, we can pass it the value of 0 (zero), which tells it to use the default value for the PIM.

--pim 0

You can mount a volume in VeraCrypt using a keyfile, as opposed to a password. We’ve not done that here, so we’ll just pass in an empty string to indicate we won’t use a keyfile.

--keyfiles ""

As a final parameter, you need to provide random data for VeraCrypt to use when generating its hashes. It needs at least 320 characters, but you can give more.

I’ve provided a sample one as part of this demo (see the GitHub code samples), I just randomly smacked keys on my keyboard with my eyes closed. I’d suggest creating one of your own for production, but for just testing and learning (I’m assuming you’ll throw away the vault when you are done) then the one here will be OK.

--random-source /Users/arcanecode/Documents/temp/randomdata.txt

OK, that’s everything you need to create a volume. Now that it’s created, let’s mount it.

Mounting a VeraCrypt Volume

Here is the full command line to mount. (As before, it should be on a single line, ignore any wrapping done by your browser).

/Applications/VeraCrypt.app/contents/MacOS/VeraCrypt --text --mount "/Users/arcanecode/Documents/temp/vctest.vc" /Volumes/vctest --password MySuperSecurePassword1! --pim 0 --keyfiles "" --protect-hidden no --slot 1 --verbose

Let’s start breaking it down. First, as before, is the full path to the VeraCrypt app.

/Applications/VeraCrypt.app/contents/MacOS/VeraCrypt

As with all of these commands, the --text parameter must come first to let VeraCrypt know we want to use text mode and not the GUI

--text

The mount parameter actually has two values that need to be passed in.

First we pass in the name of the file to mount.

Second we need to provide a mount point. This will let macOS treat it like any other drive you might plug in.

In macOS, use /Volumes then add on a name. For simplicity I usually use the name of the file (without any extension), but it doesn’t have to be.

In reality though, it doesn’t make a real difference as macOS overrides the name you provide, and instead uses “Untitled”, “Untitled 2”, and so on.

--mount "/Users/arcanecode/Documents/temp/vctest.vc" /Volumes/vctest

Next is our “super secure” password. If your password has spaces, you’ll need to wrap this in double quote marks.

--password MySuperSecurePassword1!

If you overrode the default PIM when creating your volume, you’ll need to provide it. Otherwise, we can pass it the value of 0 (zero), which tells it to use the default value

--pim 0

If you created your volume using a keyfile or files, provide them here. Otherwise, you can just pass in an empty string to indicate no keyfile is needed.

--keyfiles ""

If this volume contained a hidden volume, you would need to let VeraCrypt know by using a value of yes, plus some other parameters.

In this case there is no hidden partition in our volume, so we can just give a value of no.

--protect-hidden no

OPTIONAL!
Slot is an optional parameter. If you look at the VeraCrypt GUI in macOS, down the left side are a series of slot numbers. If you omit this parameter, VeraCrypt will mount in the first empty slot.

However you can specify a slot, which can be useful if you want to make sure certain volumes always mount in a specific slot. You can then use the slot number when you want to dismount your volumes.

--slot 1

OPTIONAL!
Verbose is also an optional parameter, but I often include it just to see what is going on under the covers. You can use it with any of the commands in this post, I just included it on this one for example purposes.

If you intend to make this into a script then I would suggest omitting it once your script is debugged and working.

--verbose

OK, hopefully all is going well, and you’ve created and mounted your volume. Let’s next see how to get a list, from the command line, of all your mounted volumes.

Listing Mounted Volumes

Here’s the command line to see what is mounted on your Mac.

/Applications/VeraCrypt.app/contents/MacOS/VeraCrypt --text --list

As with other commands you have seen, we start with the full path to the VeraCrypt application. We then use --text to let VeraCrypt know not to use the GUI.

We finish with --list, which tells VeraCrypt to display a list of all mounted containers. This will include the slot number, volume name, and mount directory.

Mom always taught me to put away my toys when I was done playing with them, so in the next section we’ll see how to unmount your volumes once you are done with them.

Dismounting VeraCrypt Volumes

There are four ways to dismount a volume. Three of them will dismount a specific volume, the final will dismount all volumes.

All ways follow the same pattern. Give the path to the VeraCrypt app, followed by the --text parameter to tell VeraCrypt not to launch the GUI.

Finally we give the --dismount to let VeraCrypt know we want to unload our volume. The value passed into the –dismount parameter varies, and will be explained below.

Method 1: Slot Number

/Applications/VeraCrypt.app/contents/MacOS/VeraCrypt --text --dismount --slot 1

With the first method, you provide the slot number. If you mounted a volume and used the slot number parameter, for example your personal file vault is always in slot 5, then this can be an easy way to dismount.

On the other hand, if you let VeraCrypt load in the first available slot, you’ll either have to look at the GUI, or run the list command in the previous section, to learn the slot number.

Method 2: Volume Name

/Applications/VeraCrypt.app/contents/MacOS/VeraCrypt --text --dismount "/Volumes/Untitled"

Using the volume list command or looking at the “Mount Directory” column in the GUI, you can pass in that value to unmount. Because this is typically “Untitled”, “Untitled 1” and so on, it can be of an issue trying to be reliable in unmounting the right volume.

Method 3: Volume File Name

/Applications/VeraCrypt.app/contents/MacOS/VeraCrypt --text --dismount "/Users/arcanecode/Documents/temp/vctest.vc"

This method is the most reliable. Since you know the name of the file you mounted, you can just provide the same file name to unmount.

VeraCrypt doesn’t care what slot it is loaded into, it uses the file name to find it.

The winner – Method 3!

For the reasons above, I highly suggest Method 3 be your go to method for dismounting volumes in your scripts. It is the most reliable, and easiest to understand when looking at the scripts.

But wait, there’s more!

Dismounting ALL Volumes

There is one final method, you can dismount all of the VeraCrypt volumes you have mounted.

/Applications/VeraCrypt.app/contents/MacOS/VeraCrypt --text --dismount

If you use just the --dismount parameter, and pass in no values, then VeraCrypt will attempt to dismount ALL volumes you have loaded.

This can be a useful command to run when you’re shutting down your Mac, to ensure all volumes are properly shutdown.

If you don’t have any volumes mounted, then VeraCrypt basically shrugs it’s shoulders, does nothing, and ends.

Conclusion

In this post, we learned how to create, mount, and dismount VeraCrypt volumes from the command line in macOS. In addition, we also saw how to get a listing of volumes currently mounted.

In the next two posts we’ll see how to do the same things, but in Windows, then Linux.

Cut and Copy Fast and Easy with PopClip for macOS

Introduction

Everyone has little tools they find useful, tools that make using their computers easier. Often they are time savers, even ones that only save a second or two will add up over time.

I thought I’d spend a few posts talking about some of my favorites. In this first post we’ll talk about a tool to make cutting and copying text into the clipboard fast and easy on an Apple Mac – PopClip.

PopClip for macOS

Cut and / or Copy of text is something we all do a thousand times a day. Even though it’s fast action, anything we can do to make it even faster adds up by the end of the day.

On the Apple Mac, I found PopClip to be a fantastic tool. It’s available in Apple’s App store, for the reasonable cost of $12.99.

So how does it work? Well it’s pretty simple. Start by highlighting text, here I’ve opened the basic text editor on my MacBook and highlighted part of a sentence.

When you highlight text, you will see a little toolbar automatically appears or “pops up”, without having to right click or take any other action.

Here PopClip is giving us the option of cutting and copying the text. I also happened to have something in the clipboard, so the option to paste that in also appears.

The magnifying glass will launch our default browser and use your default search engine and do a search on the selected text.

But wait, there’s more!

In addition to the standard cut / copy / paste, PopClip offers a vast array of extensions. In the following screen shot, I’ve added the braces extension.

With the braces extension added, you can now see additional options added to PopClip’s bar. For this shot, instead of clicking copy I’ll be clicking on the Square Brackets button.

This will copy the the text into my clipboard, adding brackets around it. Then when I paste it, the pasted text now is surrounded by brackets as you can see above.

The braces are just one of over a hundred extensions available to you with PopClip.

Conclusion

I realize it may seem simple, but once you try it you will be amazed at how much nicer cut and copy becomes on your Mac. In addition the vast array of extensions will make other operations you frequently do, such as surrounding text with braces, fast.

In the next post we’ll look at a similar tool for Windows, then over the next few posts highlight some other tools I find very useful in my daily life.

Formatting A Drive as exFAT on Windows, macOS and Linux

Introduction

In my previous blog post, Sharing a Drive Between Windows, macOS and Linux, I described how to setup the three operating systems to read a drive that had been formatted as exFAT. The exFAT format is readable by all three, and making it easy to share files between different operating systems.

A natural question that follows is, “how do I format a drive as exFAT?”

In this article I’ll show how to format an external drive as exFAT. I’ll be using an 8gb thumb drive, but I’ve used this technique with both thumb drives as well as the larger external multi-terabyte hard drives.

Windows

Windows is the easiest of the three to format a drive for exFAT. First, insert the drive into a USB port. This will typically open the Windows File Explorer, but if not, open it.

Now right click on the drive letter for the USB drive, and click on Format. The format dialog will appear.

In the second drop down you can pick the file system. Use it to select exFAT. You can also enter a new volume label if you want. Simply click the Start button to kick off the format process.

You will of course get a warning that all the data on the drive will be lost, simply click on OK to proceed.

Once done Windows will let you know. Just click OK and your drive is ready to use.

Apple macOS

There’s a few more steps to formatting a drive to exFAT in macOS, but it’s still pretty simple. Start by opening Finder, then go to the Applications. In Applications, open the Utilities folder.

Inside the Utilities, launch the Disk Utility. If you’ve not done so, connect the USB drive you want to format as exFAT.

On the left side of the Disk Utility is a list of drives, click on the USB drive in the list.

Above the drive info area are a series of command buttons. Click on the Erase button. Note you need to click on the icon, not the Erase label.

In the dialog that appears, you can change the label if you wish. The important box is the Format one. You can use the blue arrow to bring up the list, and change it to exFAT.

Once exFAT is selected, you can click the Erase button on the lower right.

Once done, macOS will let you know. Just click Done, and the drive will be ready for you to use.

I’ve used this technique with macOS versions from High Sierra onward.

Linux

For this section, I’m using screen shots from my Kubuntu 20.10 computer. The techniques will work with most Ubuntu/Debian based installs. To make it more portable to other versions, we’ll do most of it using the command line.

Note, these instructions assume you’ve already followed the instructions in my previous blog post, and installed the exFAT utilities.

Start by opening up a terminal window, and entering the following command:

df

Your output will look something like this:

Filesystem     1K-blocks     Used Available Use% Mounted on
tmpfs             805596     1752    803844   1% /run
/dev/sda2      244568380 18388480 213686844   8% /
tmpfs            4027972      128   4027844   1% /dev/shm
tmpfs               5120        4      5116   1% /run/lock
tmpfs               4096        0      4096   0% /sys/fs/cgroup
/dev/sda1         523248     7984    515264   2% /boot/efi
tmpfs             805592      108    805484   1% /run/user/1000
/dev/sdb1        7815648       96   7815552   1% /media/arcanecode/4ECB-E340

For this exercise, I’ll be using the /dev/sdb1 drive which is my 8gb thumb drive.

Before we can proceed, we’ll have to unmount the drive. The command is simple.

sudo umount /dev/sdb1

Now that the drive has been unmounted, we can format it using the mkfs utility.

sudo mkfs.exfat /dev/sdb1

Once formatting is complete, we can check its status using the fsck command.

sudo fsck /dev/sdb1

Your output will vary depending on the drive you formatted, but it will resemble something like this:

fsck from util-linux 2.36
exfatfsck 1.3.0
Checking file system on /dev/sdb1.
File system version           1.0
Sector size                 512 bytes
Cluster size                 32 KB
Volume size                7633 MB
Used space                 3041 KB
Available space            7631 MB
Totally 1 directories and 3 files.
File system checking finished. No errors found.

A benefit of using fsck is that will also remount the drive for you, making it ready to use.

You can verify it again using your systems file explorer. Here I’m using Dolphin, the explorer built into Kubuntu.

Navigate to the drive, right click on it, and pick Properties.

In the properties window it will show you the file system. As you can see, it has been formatted to exFAT.

Conclusion

In this post we saw how to format a drive for exFAT on three operating systems. You can now format a drive using any of the OS’s, and be able to use it across all of them.

Sharing a Drive Between Windows, macOS and Linux

I have a lot of computers, on which I use a variety of operating systems. Some run Windows 10, my Apple macBooks all run macOS, and on others I have a variety of Linux distros, primarily Ubuntu based.

I would like the ability to share external drives, such as thumb drives or external SSD drives, between them. To get that compatibility across OS’s, I need to format those drives in a file format called exFAT.

exFAT is a replacement for the older FAT32, but has the benefits of other file systems such as NTFS. I can have long file names, and store files bigger than four gigabytes in size to name a few.

Windows and macOS both support exFAT out of the box. I can just plug in an exFAT drive into them, and both will let me read and write to them. (Note that not all drives come formatted as exFAT, you may need to reformat them to the exFAT system). Linux, however is another story.

To allow Linux to read an exFAT drive you need to install the exfat-utils utility. On Ubuntu based distros it’s pretty easy, just open up a terminal and enter the following command, all on one line.

sudo apt-get install exfat-fuse exfat-utils

For other distros you can use their native installer, such as yum, to install the exfat-utils. After that you can simply plug an exFAT thumb drive or SSD into your Linux box and it will know how to read and write to the drive.

Supressing “The certificate Couldn’t Be Verified” message Using the Microsoft Remote Desktop Application on Apple macOS

Introduction

In my previous blog post, Using the Microsoft Remote Desktop Application on Apple MacOS, I showed how easy it is to connect to one of your Windows computers from your Mac.

I frequently use the Microsoft Remote Desktop application on my Apple MacBook Pro to connect to one of my Windows computers. It presents a nice interface that’s easy to use and setup.

Once you’ve added your computer to the Microsoft Remote Desktop application (you’ll find the instructions in my previous post), all you have to do is double click on it to access your remote computer.

Here is the launching point, note that for security reasons in all of the images in this article I’ve blurred out the name of my computer and replaced it with <name>.

There is one irritating behavior. When connecting to a computer it frequently displays the following message: “You are connecting to the RDP host <name>. The certificate couldn’t be verified back to a root certificate. Your connection may not be secure. Do you want to continue?

Having to stop every time and click Continue is really annoying. Especially if you are on your home network, connecting to a computer you own and trust. There’s an easy fix though!

Suppressing the Warning Message

Simply click the Show Certificate button to display the certificate information.

Once you review, simply put a check mark in the “Always trust...” checkbox (pointed to by the arrow) then click Continue.

Since you are changing the trust certificates for your MacBook (or other Apple Mac computer, like the Mac Mini), macOS will prompt you to enter your admin password. Do so, then continue.

From here on out, all you need to do to connect to your remote computer is double click on it, and (if you’ve not saved it within the remote desktop program) enter your credentials. No more having to click to continue past the “certificate couldn’t be verified” message.

Conclusion

I’ll wrap this up with two quick notes. First, this works on the last several versions of macOS including Big Sur.

Second, while I’ve used Windows as the example, this will work with any OS (such as various Linux distros) that support RDP (Remote Desktop Protocol). Sadly, macOS does not support RDP so you cannot connect to another Mac from the Microsoft Remote Desktop application.

Closing All Finder Windows at Once in Apple macOS

Close All Windows

It’s not uncommon for me to have multiple Finder windows open at once on my Mac. Often I’m cleaning up my drive, moving files from downloads to where I want them.

When I’m done, I naturally want to close all my Finder windows. Normally, if you go to the File menu in Finder, you’ll see an option to close the current window.

It can be annoying, and potentially time-consuming to go to every Finder window and close it. Even if I close using the red X button, I still have to go to each Finder window. It’d be nice to just close them all at once.

This is yet another instance where the OPTION key will be our friend. Simply hold down the OPTION key and the menu option will update.

You can simply click Close All and all open Finder windows will be exited. Alternatively, you can also press CMD+OPTION+W on the keyboard and all your Finder windows will be closed.

As an added bonus, this not only works in Finder but with any application that allows you to have multiple copies of the program open. For example, I opened up multiple copies of BBEdit and using the OPTION key enabled the Close All Windows choice. Do note though, the shortcut key may vary with each application.

This technique works on Big Sur, Catalina, and other recent versions of Apple macOS.

Skip The Countdown When Shutting Down Apple macOS

Shut Down macOS immediately

I’m sure any macOS user knows how to shut down their Apple computer. Just go to the Apple menu in the upper left, click on it, and pick Shut Down…

Doing so pops up a dialog with a count down timer. You can skip the 60 second count down timer by clicking the Shut Down button.

It’s possible though to skip this dialog and shut down your Mac immediately. The trick to this is, as with my previous blog post, using the OPTION key.

With the above menu open, simply hold down the OPTION button. When you do the menu updates.

The change is very subtle, so look closely. The three periods after “Shut Down” disappear. Now when you click shut down, the shut down dialog is by-passed. Your macBook will now shut down immediately.

This technique works on Big Sur, Catalina, as well as several previous versions of macOS.

Moving A File in Apple macOS

Move File Here

I’ve been using Windows since version 2, before that MSDOS all the way back to the earliest version. Thus working in the Microsoft world is very comfortable to me. My earliest exposure to Microsoft was with GWBASIC running on a Radio Shack (Tandy) TRS-80 Model 1.

I’ve been regularly using various distros of Linux for at least five years, perhaps longer, before that I used various UNIX or UNIX based systems. One of the earliest was CP/M on my Commdore 128, or later AmigaOS.

macOS is relatively new to me, I bought my first Mac about 3 years ago. The macOS GUI is very different in terms of commands from Windows or Linux. There are many things that aren’t intuitive to someone coming from another platform. Even though they may seem easy to an experienced Apple user, they took me some time to figure out. I thought I’d spend a few blog post helping out others who are experienced computer users, but relatively new to macOS.

One that befuddled me at first was very simple, moving a file to a different folder. Turns out it’s fairly simple when you know how.

First, open Finder and go to the file you want to move. Right click and pick Copy.

Now go to the folder you want to move the file to. If you right click, you’ll see the Paste option you may have seen before.

Now here comes the secret. Press and hold the OPTION key. When you do, the menu will update.

While the OPTION key is being held down, the Paste option changes to Move Item Here. Click on it and the file will be moved.

As I stated before, this may seem normal to a long time Apple user, but having menus change by holding a key isn’t something normally done in Windows or most Linux distros. As a new macOS user, it never occurred to me to hold down the OPTION key.

Using the OPTION key can unlock all kinds of new menu options, as you will see in upcoming posts.

Note this technique works in Big Sur, Catalina, as well the last several versions of macOS before that.

Getting Started with PowerShell Core on Linux and macOS

My newest course, Getting Started with PowerShell Core on Linux and macOS, is now live on Pluralsight! This course is my eighteenth in a long line of Pluralsight courses.

I begin the course explaining the difference between PowerShell for Windows (version 5.1) and the all-new PowerShell Core (version 6.2 was used for this course), which works not only on Windows but on Linux and macOS as well. I then show how to install PowerShell Core, along with a few other key components such as Visual Studio Code, on both Linux and macOS.

Not familiar with PowerShell? No problem! I quickly cover the basics of PowerShell including cmdlets, the use of the pipeline, how to write functions, and how to put those functions in reusable scripts.

As if that weren’t enough, I show how to do some “cool things” with PowerShell Core, including working with Docker containers, SQL Server, and Azure.

For the course, I primarily used Ubuntu 19.04 and macOS Mojave. The code was also tested on Ubuntu 18.04 LTS and 18.10, as well as macOS High Sierra. In addition, I tested the Linux installs on a variety of distributions including CentOS, Manjaro, and more. The samples include markdown files with information on how to install on these other distributions.

All of the samples are included in the downloadable components of the course on Pluralsight. New with this course I have the samples also available on my GitHub site. As I move into the future the GitHub codebase will be updated with new samples and information.

Also included in the samples are several markdown files that have additional information not included in the course, such as setting VSCode on Windows to use PowerShell Core instead of Windows PowerShell 5.1 as the default terminal.

While you are up on my GitHub site be sure to check out the full list of repositories, I have a lot of examples on it, including some from previous courses such as my recent Reporting Services course. (For a full list of my courses just check out the About ArcaneCode page on this site.)

Note the sample file on Pluralsight will remain static, so if someone watches the course their samples will reflect what is in the course. For the latest updated samples see the GitHub site referenced above.

What? You don’t have a Pluralsight subscription yet? Well, no worries dear reader, just email me, free @ arcanetc.com and I can send you a code good for 30 days with which you can watch all 18 of my courses, plus anyone else’s course at Pluralsight.