<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://nik.me/feed.xml" rel="self" type="application/atom+xml" /><link href="https://nik.me/" rel="alternate" type="text/html" /><updated>2026-03-05T22:35:56+00:00</updated><id>https://nik.me/feed.xml</id><title type="html">Nik’s Crappy Blog</title><subtitle>Thoughts and observations... usually geeky.</subtitle><author><name>Nik</name></author><entry><title type="html">Bookmarklet to Toggle Google Accounts</title><link href="https://nik.me/toggle-google-accounts-bookmarklet/" rel="alternate" type="text/html" title="Bookmarklet to Toggle Google Accounts" /><published>2019-07-31T00:00:00+00:00</published><updated>2019-07-31T00:00:00+00:00</updated><id>https://nik.me/toggle-google-accounts-bookmarklet</id><content type="html" xml:base="https://nik.me/toggle-google-accounts-bookmarklet/">&lt;p&gt;I use Google Apps at work and also have a personal Google account for many other things. Switching between these accounts can be annoying, as can dealing with clicking on share links that open in the wrong account.&lt;/p&gt;

&lt;p&gt;To get around this, I put together this bookmarklet that switches between two accounts automatically. You’ll need to be logged into both accounts at once in order for this to work.&lt;/p&gt;

&lt;p&gt;To make it work, create a new bookmark and paste in the JS &lt;a href=&quot;https://gist.github.com/nikjft/0f12cd7832f742dccba56ae2f4959752&quot;&gt;from this gist&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I’ve only tested this in Chrome, but it ought to work in other browsers. Also, if you have three or more accounts, this will just switch between the first two.&lt;/p&gt;</content><author><name>Nik</name></author><summary type="html">I use Google Apps at work and also have a personal Google account for many other things. Switching between these accounts can be annoying, as can dealing with clicking on share links that open in the wrong account. To get around this, I put together this bookmarklet that switches between two accounts automatically. You’ll need to be logged into both accounts at once in order for this to work. To make it work, create a new bookmark and paste in the JS from this gist. I’ve only tested this in Chrome, but it ought to work in other browsers. Also, if you have three or more accounts, this will just switch between the first two.</summary></entry><entry><title type="html">A Better Keyboard</title><link href="https://nik.me/a-better-keyboard/" rel="alternate" type="text/html" title="A Better Keyboard" /><published>2019-04-09T00:00:00+00:00</published><updated>2019-04-09T00:00:00+00:00</updated><id>https://nik.me/a-better-keyboard</id><content type="html" xml:base="https://nik.me/a-better-keyboard/">&lt;p&gt;I’d heard a lot of complaints about how bad the 2015+ MacBook keyboards were. Well, for the first time, I’m using one daily, and I have to agree. I don’t think I’m slower typing on it (if anything, the short travel makes it pretty easy to pound out a sentence), but it’s harder on the fingers and just doesn’t feel “good.” So far no problems with stuck keys, but it’s only been a few weeks.&lt;/p&gt;

&lt;p&gt;Of course, when I get home and break out my Chromebook, I’m immediately struck at how nice its keyboard is. Keys have short travel, so it still feels speedy, but are satisfyingly responsive and smooth feeling.&lt;/p&gt;

&lt;p&gt;Here’s the thing… my Chromebook cost me about $350. This MacBook pro is, what, a $2,000 computer?&lt;/p&gt;

&lt;p&gt;Just too bad. Apple’s put style way too far forward at the sake of a pleasant day-to-day experience. (And don’t even get me started on the touch bar, lack of a touch screen… I could go on.)&lt;/p&gt;</content><author><name>Nik</name></author><category term="mac" /><category term="chromebook" /><summary type="html">I’d heard a lot of complaints about how bad the 2015+ MacBook keyboards were. Well, for the first time, I’m using one daily, and I have to agree. I don’t think I’m slower typing on it (if anything, the short travel makes it pretty easy to pound out a sentence), but it’s harder on the fingers and just doesn’t feel “good.” So far no problems with stuck keys, but it’s only been a few weeks. Of course, when I get home and break out my Chromebook, I’m immediately struck at how nice its keyboard is. Keys have short travel, so it still feels speedy, but are satisfyingly responsive and smooth feeling. Here’s the thing… my Chromebook cost me about $350. This MacBook pro is, what, a $2,000 computer? Just too bad. Apple’s put style way too far forward at the sake of a pleasant day-to-day experience. (And don’t even get me started on the touch bar, lack of a touch screen… I could go on.)</summary></entry><entry><title type="html">Having fun with Jekyll</title><link href="https://nik.me/having-fun-with-jekyll/" rel="alternate" type="text/html" title="Having fun with Jekyll" /><published>2019-04-08T00:00:00+00:00</published><updated>2019-04-08T00:00:00+00:00</updated><id>https://nik.me/having-fun-with-jekyll</id><content type="html" xml:base="https://nik.me/having-fun-with-jekyll/">&lt;p&gt;A new CMS is always a present. New toys, new things to learn…&lt;/p&gt;

&lt;p&gt;So far, I’ve added &lt;a href=&quot;/search&quot;&gt;full text search&lt;/a&gt; via client-side JS (didn’t know how good that could be!), “oranged” up the theme, and the usual array of troubleshooting to get analytics, 404s, and all that jazz working correctly. End result: this blog’s more functional than the Tumblr platform. (Sad.)&lt;/p&gt;

&lt;p&gt;As I expected, Jekyll’s lack of a server-side CMS is troublesome, since it’s a multi-step process to post anything. I can’t just “share” from my phone to Tumblr. (Not that I ever did that anyhow!)&lt;/p&gt;

&lt;p&gt;Unexpectedly, I’m really liking using git for content management and syncing of posts between devices. It’s fast, I have a huge amount of control… just really cool.&lt;/p&gt;

&lt;p&gt;Next up is seeing about whether a &lt;a href=&quot;https://nodered.org&quot;&gt;node-red server&lt;/a&gt; fills in that critical automation gap so I can start wiring in IFTTT webhooks to get everyone playing nicely with one another.&lt;/p&gt;</content><author><name>Nik</name></author><category term="jekyll" /><category term="inside-baseball" /><summary type="html">A new CMS is always a present. New toys, new things to learn… So far, I’ve added full text search via client-side JS (didn’t know how good that could be!), “oranged” up the theme, and the usual array of troubleshooting to get analytics, 404s, and all that jazz working correctly. End result: this blog’s more functional than the Tumblr platform. (Sad.) As I expected, Jekyll’s lack of a server-side CMS is troublesome, since it’s a multi-step process to post anything. I can’t just “share” from my phone to Tumblr. (Not that I ever did that anyhow!) Unexpectedly, I’m really liking using git for content management and syncing of posts between devices. It’s fast, I have a huge amount of control… just really cool. Next up is seeing about whether a node-red server fills in that critical automation gap so I can start wiring in IFTTT webhooks to get everyone playing nicely with one another.</summary></entry><entry><title type="html">Changing CMSes Again!</title><link href="https://nik.me/hello-world/" rel="alternate" type="text/html" title="Changing CMSes Again!" /><published>2019-04-01T21:32:44+00:00</published><updated>2019-04-01T21:32:44+00:00</updated><id>https://nik.me/hello-world</id><content type="html" xml:base="https://nik.me/hello-world/">&lt;h2 id=&quot;hello-world&quot;&gt;Hello World!&lt;/h2&gt;

&lt;p&gt;Working on trying something new… static sites are all the rage, so I’m pimping things out with:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Jekyll&lt;/li&gt;
  &lt;li&gt;GitHub&lt;/li&gt;
  &lt;li&gt;Netlify&lt;/li&gt;
  &lt;li&gt;CodeAnywhere&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s right, a full CI process, multiple virtual servers, and distributed source control for a blog that’s had one post since the end of 2016. (Two, counting this one!)&lt;/p&gt;

&lt;p&gt;And you wouldn’t believe how much work it was to get this all working nicely on my Chromebook Plus, which is running on an ARM processor.&lt;/p&gt;

&lt;p&gt;Oh, and yes, every download link is broken. That’s actually not entirely my fault - most were hosted on Google Drive and they killed the ability to share web server style links. If there’s an applet or script you want, email me.&lt;/p&gt;

&lt;p&gt;Hey, a boy has to have a hobby…&lt;/p&gt;</content><author><name>Nik</name></author><category term="jekyll" /><category term="inside-baseball" /><summary type="html">Hello World! Working on trying something new… static sites are all the rage, so I’m pimping things out with: Jekyll GitHub Netlify CodeAnywhere That’s right, a full CI process, multiple virtual servers, and distributed source control for a blog that’s had one post since the end of 2016. (Two, counting this one!) And you wouldn’t believe how much work it was to get this all working nicely on my Chromebook Plus, which is running on an ARM processor. Oh, and yes, every download link is broken. That’s actually not entirely my fault - most were hosted on Google Drive and they killed the ability to share web server style links. If there’s an applet or script you want, email me. Hey, a boy has to have a hobby…</summary></entry><entry><title type="html">Email to app for an app with no web service (2Do)</title><link href="https://nik.me/email-to-app-for-an-app-with-no-web-service-2do/" rel="alternate" type="text/html" title="Email to app for an app with no web service (2Do)" /><published>2018-11-28T19:58:36+00:00</published><updated>2018-11-28T19:58:36+00:00</updated><id>https://nik.me/email-to-app-for-an-app-with-no-web-service-2do</id><content type="html" xml:base="https://nik.me/email-to-app-for-an-app-with-no-web-service-2do/">&lt;p&gt;I personally am a big fan of &lt;a href=&quot;https://www.2doapp.com/&quot;&gt;2Do&lt;/a&gt; as a daily task manager. I’ve tried a lot of alternatives, but that’s always where I end up. But unlike most task managers these days, it’s app-only, there’s no web service. So if I want to use some of the great tools out there (like &lt;a href=&quot;https://www.taskclone.com/&quot;&gt;TaskClone&lt;/a&gt;, which is a killer tool for any hardcore Evernote junkie), I’m stuck. Sure, I can AppleScript some stuff on a Mac, but now that I’m moving more and more onto Chromebooks, that’s not such a great option.&lt;/p&gt;&lt;p&gt;Well, I do have one device that runs 2Do and is turned on pretty much all the time: My phone. Since I have an Android phone, 2Do’s iOS email-to-task won’t work for me, but Android’s nothing if not a deep bag of tricks, so by stringing together &lt;a href=&quot;https://tasker.joaoapps.com/&quot;&gt;Tasker&lt;/a&gt;, &lt;a href=&quot;https://joaoapps.com/join/&quot;&gt;Join&lt;/a&gt;, and &lt;a href=&quot;https://www.zapier.com/&quot;&gt;Zapier&lt;/a&gt;, I have a fully functional email-to-2Do utility.&lt;/p&gt;
&lt;!--more--&gt;
&lt;p&gt;&lt;b&gt;The steps:&lt;/b&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;A Zapier email task that connects to&amp;hellip;&lt;br/&gt;&lt;/li&gt;&lt;li&gt;A Join API webhook that&amp;hellip;&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Triggers a Tasker profile that&amp;hellip;&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Sends an app intent to 2Do&amp;hellip;&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Which creates a task&lt;br/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Step 1: Get your Join API Key&lt;/p&gt;&lt;p&gt;Log into Join (on the web), click on API, and copy your API key (hidden in this screenshot for obvious reasons).&lt;/p&gt;&lt;figure data-orig-width=&quot;1032&quot; data-orig-height=&quot;547&quot; class=&quot;tmblr-full&quot;&gt;&lt;img src=&quot;https://66.media.tumblr.com/9583648c2294074dad18451b9511da15/tumblr_inline_pix59znyMm1r4dp1n_540.png&quot; data-orig-width=&quot;1032&quot; data-orig-height=&quot;547&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Step 2: Create a Tasker task&lt;/p&gt;&lt;p&gt;The Tasker setup simply looks for a Join message and triggers an Intent called “com.google.android.gms.actions.CREATE_NOTE”.&lt;/p&gt;&lt;figure data-orig-width=&quot;1080&quot; data-orig-height=&quot;1920&quot; class=&quot;tmblr-full&quot;&gt;&lt;img src=&quot;https://66.media.tumblr.com/a9d775a7391e80909073e967d01219a8/tumblr_inline_pix5tfP9Ou1r4dp1n_540.png&quot; data-orig-width=&quot;1080&quot; data-orig-height=&quot;1920&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;figure data-orig-width=&quot;1080&quot; data-orig-height=&quot;1920&quot; class=&quot;tmblr-full&quot;&gt;&lt;img src=&quot;https://66.media.tumblr.com/83b5b6cc572f8b359b882a52f1e6dab8/tumblr_inline_pix5u3ANsX1r4dp1n_540.png&quot; data-orig-width=&quot;1080&quot; data-orig-height=&quot;1920&quot;/&gt;&lt;/figure&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;And finally, a Zapier zap that just receives an email and forwards it on to a webhook - just pass in the API Key and your device names as request variables.&lt;/p&gt;&lt;figure data-orig-width=&quot;379&quot; data-orig-height=&quot;385&quot; class=&quot;tmblr-full&quot;&gt;&lt;img src=&quot;https://66.media.tumblr.com/b70e7518268e758d3284682a19d829d9/tumblr_inline_pix5xcPzMO1r4dp1n_540.png&quot; data-orig-width=&quot;379&quot; data-orig-height=&quot;385&quot;/&gt;&lt;/figure&gt;&lt;hr&gt;&lt;figure class=&quot;tmblr-full&quot; data-orig-height=&quot;737&quot; data-orig-width=&quot;801&quot;&gt;&lt;img src=&quot;https://66.media.tumblr.com/eb5a30492cb19da3528b1e6af0118c02/tumblr_inline_pix5ythCIC1r4dp1n_540.png&quot; data-orig-height=&quot;737&quot; data-orig-width=&quot;801&quot;/&gt;&lt;/figure&gt;&lt;p&gt;Now you just send an email to the address Zapier provides, and the email subject will get pushed right into 2Do.&lt;/p&gt;&lt;p&gt;This works easily enough with any other app that accepts intents. Just edit the setup as necessary.&lt;/p&gt;&lt;p&gt;One small issue with this approach is that there’s no way to parse things out so that the task name is the subject and add the email body as a note - instead I have to cram everything into one line. Not horrible from a “just toss it into the inbox and triage it later” point of view, but not ideal. Maybe I can talk 2Do’s developer into adding some custom intents to handle this, or better yet, a Tasker plugin!&lt;/p&gt;</content><author><name>Nik</name></author><summary type="html">I personally am a big fan of 2Do as a daily task manager. I’ve tried a lot of alternatives, but that’s always where I end up. But unlike most task managers these days, it’s app-only, there’s no web service. So if I want to use some of the great tools out there (like TaskClone, which is a killer tool for any hardcore Evernote junkie), I’m stuck. Sure, I can AppleScript some stuff on a Mac, but now that I’m moving more and more onto Chromebooks, that’s not such a great option.Well, I do have one device that runs 2Do and is turned on pretty much all the time: My phone. Since I have an Android phone, 2Do’s iOS email-to-task won’t work for me, but Android’s nothing if not a deep bag of tricks, so by stringing together Tasker, Join, and Zapier, I have a fully functional email-to-2Do utility.</summary></entry><entry><title type="html">My Keyboard Maestro Macros and AppleScripts I use the most</title><link href="https://nik.me/my-keyboard-maestro-macros-and-applescripts-i-use/" rel="alternate" type="text/html" title="My Keyboard Maestro Macros and AppleScripts I use the most" /><published>2016-05-07T16:18:46+00:00</published><updated>2016-05-07T16:18:46+00:00</updated><id>https://nik.me/my-keyboard-maestro-macros-and-applescripts-i-use</id><content type="html" xml:base="https://nik.me/my-keyboard-maestro-macros-and-applescripts-i-use/">&lt;p&gt;As one of the three readers of my blog, you&amp;rsquo;ve no doubt realized I&amp;rsquo;m on a bit of a Keyboard Maestro kick these days. I&amp;rsquo;ve been a KM user since 2010, a QuicKeys user before that, and a rabid AppleScripter before then. I’ve built up a tremendous library of scripts and macros in that time, many of which I’ve shared on this blog. However, of these macros, there&amp;rsquo;s a handful that have proven truly &amp;ldquo;sticky&amp;rdquo; and that I continue to expand upon and use on a daily or near-daily basis. I though my few readers might get more benefit from learning about these truly indispensable scripts and macros than the more esoteric mini-programs that I&amp;rsquo;ve posted here.&lt;/p&gt;

&lt;p&gt;I haven&amp;rsquo;t posted all of these scripts and macros because most of them are fairly obvious in how they work, and enough have very specific settings for my networks, or even contain sensitive information (app tokens and such), that I didn&amp;rsquo;t want to go through the effort and &amp;ldquo;sanitize&amp;rdquo; them. But if you want to see any specific ones, sound off in the comments or bug me on the Keyboard Maestro forum and I&amp;rsquo;ll be glad to help you out.&lt;/p&gt;
&lt;!--more--&gt;
&lt;h3&gt;Apps:&lt;/h3&gt;

&lt;p&gt;I do not have hotkeys for opening apps, I leave that to LaunchBar. I do however have some that hide apps when they go to the background since they hog the screen and don&amp;rsquo;t use drag-and-drop much (if at all), specifically TurboTax, Keyboard Maestro Editor, Google Music (in Fluid), and Parallels Desktop.&lt;/p&gt;

&lt;p&gt;Bring all windows to front: With Finder and Terminal, activating the app will also bring all of its windows to the front. This keeps me from opening lots of superfluous windows, and probably meets some expectation I have from back in the &amp;ldquo;layered apps&amp;rdquo; days of Classic MacOS.&lt;/p&gt;

&lt;p&gt;Send to LaunchBar: For some of my most frequently used apps, I have an AppleScript that mimics LaunchBar’s “instant send” feature and just places the file I’m working on into LaunchBar.&lt;/p&gt;

&lt;p&gt;For Outlook (a program I use all the time and basically despise), I have a macro that breaks me out of search mode, goes back to the Mail view, and clicks on the top mailbox. This is normally a multi-step ordeal of de-selecting and re-selecting things. I use this fifty times a day if I use it once.&lt;/p&gt;

&lt;p&gt;I also have a set of macros for Outlook that more or less replicate SaneBox’s “SaneLater” folders - letting me put messages in deferred folders that are then recovered anywhere from an hour later to the following week.&lt;/p&gt;

&lt;p&gt;Clean and email Word doc: I spend a lot of time dealing with change tracking and comments in MS Office documents. I hate accidentally mailing a file with change tracking still enabled or, worse still, compromising comments or change notes. This script takes the Word document I’m viewing and makes a copy without any change notes, comments, or embedded authoring information, and then creates a new email in Outlook with the file attached.&lt;/p&gt;

&lt;p&gt;Evernote: I have about twenty scripts I’ve written for Evernote, but the AppleScript support for Evernote hasn’t been attended to for many versions and has simply decayed over time to the point that it’s unreliable.&lt;/p&gt;

&lt;h3&gt;Finder:&lt;/h3&gt;

&lt;p&gt;Maybe the Finder’s an app, but it gets its own category for me.&lt;/p&gt;

&lt;p&gt;Send: Typing a &amp;ldquo;⌘→”, gives me a palette of operations I can carry out on the current selection. These include folders I frequently move things to, compressing (zip and 7z), emailing, posting to Slack, backing up to cloud storage, and uploading to my common SFTP destinations.&lt;/p&gt;

&lt;p&gt;New File from Template: This creates a new file in the current folder based on some templates I have stored in my documents folder - just duplicates the file to my current folder. (I have one for Evernote, too, that places the file in a note as an attachment.)&lt;/p&gt;

&lt;p&gt;Group selection in folder: This is a handy little script that takes my currently selected items and puts them all in a newly-created folder. Great for gathering up a handful of downloaded attachments, or cleaning up a cluttered folder.&lt;/p&gt;

&lt;p&gt;Terminal tab: This script opens a terminal tab with the prompt in the current Finder folder. There are many like this, but this one is mine and works just the way I want it to.&lt;/p&gt;

&lt;p&gt;Archive old files on add: This is a folder action that triggers when I add a new file. It takes every file in that folder that&amp;rsquo;s more than 14 days old (either by added, created or modified dates) and puts them in an &amp;quot;Old Files&amp;rdquo; folder in a date-stamped folder for the month and year. I use this in my Downloads folder and my &amp;ldquo;Outbox&amp;rdquo; folder, which is sort of a temporary storage space for work in progress files. Then I can easily clean up my older files by looking at the date of their containing folders. I have a similar folder action for the Desktop that puts old desktop items in the Outbox folder (which, in turn, ages them out after 14 days).&lt;/p&gt;

&lt;h3&gt;Web:&lt;/h3&gt;

&lt;p&gt;There are macros for all my browsers (Firefox, Chrome, Safari) that will let me take the current URL and open it in another browser (via a palette).&lt;/p&gt;

&lt;p&gt;I also have a little macro to trigger an AppleScript that closes tabs to the left of the current browser tab. There&amp;rsquo;s already a menu item to close tabs to the right, but not the left. Go figure. Now I have both.&lt;/p&gt;

&lt;p&gt;Print-like-a-normal-person: Chrome&amp;rsquo;s standard print dialog is a travesty. I use KM to make CMD+P open a standard Mac print dialog. I&amp;rsquo;ve done the same in other programs that march to their own printing drum.&lt;/p&gt;

&lt;p&gt;I have a macro for Chrome that&amp;rsquo;s rather single-purpose, but it goes through the process to buy a monthly work-sponsored bus pass. This is one of the more esoteric ones that I&amp;rsquo;m really glad I did. It&amp;rsquo;s about eight steps which is just enough that I&amp;rsquo;d put it off until I could pay more attention. Once I found myself with an expired pass as I got on the bus, I put this together so that I can just select it in the status menu and get it done right away.&lt;/p&gt;

&lt;h3&gt;Text Expansions&lt;/h3&gt;

&lt;p&gt;I gave up TextExpander a few years ago out of a desire to cut down on the number of oddball apps I ran on my Mac, and moved all my text expansions to Keyboard Maestro. Of these expansions, I&amp;rsquo;ve found myself using a number of them frequently, and a much greater number infrequently-to-never. The ones I use a lot are:&lt;/p&gt;

&lt;p&gt;Email signatures: I have them for work, for personal accounts, and a couple for specific purposes (e.g. business-type communications from my personal email).&lt;/p&gt;

&lt;p&gt;Conference call information: Automatically insert my join.me phone number and link, I use it all the time when setting up meetings at work.&lt;/p&gt;

&lt;p&gt;Programming/scripting text expansions: Mostly just for Script Editor, AppleScript and JavaScript, really. It includes a combination of common functions (dialogs, tell app&amp;hellip;) and routines I use and re-use all the time (escape clipboard, sorting, etc.).&lt;/p&gt;

&lt;p&gt;Things I like to misspell: I get certain words wrong all the time. This helps. Only downside is that I still don&amp;rsquo;t spell them correctly so when I&amp;rsquo;m on another computer/phone/tablet, I&amp;rsquo;m out of luck.&lt;/p&gt;

&lt;p&gt;Special characters: If I type &amp;ldquo;;cc” (all my text expansions are prefixed by a semicolon), I get a palette of my most frequently used special characters - keyboard shortcut keys, ellipses, checkboxes, arrows, Mac keyboard modifier key symbols, fun ASCII shruggies and other complex goofs, and my favorite emoji characters.&lt;/p&gt;

&lt;p&gt;Date and time stamps: I have a handful of different date stamp and time stamp formats that I use for naming files, taking notes, adding comments to things.&lt;/p&gt;

&lt;h3&gt;Locations:&lt;/h3&gt;

&lt;p&gt;Home and Work: I have wifi-triggered macros for home and work that open or close certain applications, set my default printer, and (in the case of work), mute my computer so that if I have a video on in the browser or something it doesn&amp;rsquo;t bother my co-workers.&lt;/p&gt;

&lt;p&gt;I also have a set of macros triggered by the same networks that simply enable and disable macro groups for each location. These macro groups contain repeating scheduled macros that do things specific to each location - notably kicking off my time tracking macro while I’m in the office.&lt;/p&gt;

&lt;p&gt;Tethering: When I use my phone&amp;rsquo;s hotspot mode, I have a macro that quits all my bandwidth hogging apps that sync things (email, Google Drive, Box Sync, Evernote, Google Music Manager) and pauses CrashPlan&amp;rsquo;s backups. Then there&amp;rsquo;s another that re-starts these things when I re-connect.&lt;/p&gt;

&lt;h3&gt;Paste:&lt;/h3&gt;

&lt;p&gt;I have a steadily growing set of macros, all with the hotkey of CTRL+OPT+V. This ends up bringing up a selection palette where I can paste in a variety of ways. Some of them get used more than others, but they&amp;rsquo;re all useful:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Totally Plain Text: This runs a BBEdit text factory that straightens quotes, zaps gremlins, removes leading and trailing white space, wraps hard line breaks, and cuts everything down to emoji-less ASCII.&lt;/li&gt;
&lt;li&gt;Paste by typing clipboard: this types out each individual character on the clipboard to get around applications that seem to think it’s a security risk to paste into a field.&lt;/li&gt;
&lt;li&gt;Clean and expand URL: This goes through an array of routines to resolve shortened or redirected urls, strip affiliate and GTM codes, and otherwise make it pretty.&lt;/li&gt;
&lt;li&gt;Shorten and decorate URL: This does the opposite, it creates a short URL and adds Google Analytics tracking codes to it.&lt;/li&gt;
&lt;li&gt;Paste image at various sizes: If I copy an image (often a screenshot), this makes it easy to shrink to a more reasonable size as a courtesy when I&amp;rsquo;m pasting it inline in an email or to Slack. My current sizes are 50%, 500px, and 1024px, more come and go now and again.&lt;/li&gt;
&lt;li&gt;Paste HTML as Markdown, Markdown as HTML, rich text as HTML/Markdown, HTML/Markdown as rich text, etc&amp;hellip; Every possibly gyration of dealing with styled text. All are powered by textutil and PanDoc (which is a bother to install, but so much more useful than multimarkdown).&lt;/li&gt;
&lt;li&gt;HTML and URL encode/decode: Turn text strings into URL or HTML-safe text, or alternatively undo the same. I spend no small amount of time dealing with web services and paths for HTML files, so this is a big time saver.&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Miscellaneous:&lt;/h3&gt;

&lt;p&gt;Presentation Mode: I give a fair number of presentations and demos, so I have a gloriously complex AppleScript that gets my computer ready:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;Moves my desktop contents into a single tidy folder&lt;/li&gt;
&lt;li&gt;Turns off sleep mode, screen dimming and any screensavers&lt;/li&gt;
&lt;li&gt;Sets a boring corporate desktop picture&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;This script acts as a toggle, so if I run it again, desktop icons are restored to their original position, power settings are set back to where they were, and the desktop picture is restored. This is a dangerous script, though, as it&amp;rsquo;s a simple recipe for quickly exhausting my MacBook&amp;rsquo;s battery life.&lt;/p&gt;

&lt;p&gt;Placeholder text and images: In order to mock up websites, I have a handful of generators for FPO content, including a steadily growing array of Lorem Ipsum type generators (the original, plus one based on Noam Chomsky’s writings, another on late-90’s internet hype, and a new one I put together based on the current presidential campaign hyperbole), an FPO image/link generator (using fpoimg.com), and a random name generator for filling out forms.&lt;/p&gt;

&lt;p&gt;Lock Screen: Simple macro - just locks my screen via a keyboard shortcut. I use it before I go to the bathroom at work so people don&amp;rsquo;t see what&amp;rsquo;s on my screen. Good habit to get into.&lt;/p&gt;</content><author><name>Nik</name></author><summary type="html">As one of the three readers of my blog, you&amp;rsquo;ve no doubt realized I&amp;rsquo;m on a bit of a Keyboard Maestro kick these days. I&amp;rsquo;ve been a KM user since 2010, a QuicKeys user before that, and a rabid AppleScripter before then. I’ve built up a tremendous library of scripts and macros in that time, many of which I’ve shared on this blog. However, of these macros, there&amp;rsquo;s a handful that have proven truly &amp;ldquo;sticky&amp;rdquo; and that I continue to expand upon and use on a daily or near-daily basis. I though my few readers might get more benefit from learning about these truly indispensable scripts and macros than the more esoteric mini-programs that I&amp;rsquo;ve posted here. I haven&amp;rsquo;t posted all of these scripts and macros because most of them are fairly obvious in how they work, and enough have very specific settings for my networks, or even contain sensitive information (app tokens and such), that I didn&amp;rsquo;t want to go through the effort and &amp;ldquo;sanitize&amp;rdquo; them. But if you want to see any specific ones, sound off in the comments or bug me on the Keyboard Maestro forum and I&amp;rsquo;ll be glad to help you out.</summary></entry><entry><title type="html">Fancy Keyboard Maestro Custom HTML Prompts</title><link href="https://nik.me/fancy-keyboard-maestro-custom-html-prompts/" rel="alternate" type="text/html" title="Fancy Keyboard Maestro Custom HTML Prompts" /><published>2016-04-09T20:25:42+00:00</published><updated>2016-04-09T20:25:42+00:00</updated><id>https://nik.me/fancy-keyboard-maestro-custom-html-prompts</id><content type="html" xml:base="https://nik.me/fancy-keyboard-maestro-custom-html-prompts/">&lt;figure data-orig-width=&quot;540&quot; data-orig-height=&quot;276&quot; class=&quot;tmblr-full&quot;&gt;&lt;img src=&quot;https://66.media.tumblr.com/5c2401c8916ebfd190de988153200e7e/tumblr_inline_o5dviwcBWM1r4dp1n_540.png&quot; alt=&quot;image&quot; data-orig-width=&quot;540&quot; data-orig-height=&quot;276&quot;/&gt;&lt;/figure&gt;&lt;p&gt;A library of Custom HTML Prompt macros with some CSS and JS to make them look pretty and Mac-like as well as have some interface functions that aren’t provided by the standard KM dialogs. &lt;br/&gt;&lt;/p&gt;&lt;p&gt;Specifically:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A El-Capitan-style alert box with multiple buttons&lt;br/&gt;&lt;/li&gt;&lt;li&gt;A multiple checkboxes dialog to select multiple items from a pick-list&lt;br/&gt;&lt;/li&gt;&lt;li&gt;A type-ahead box to select from a pick-list (like a combo-box)&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This requires a little bit of extra installation work. You’ll need to move the html-elements folder to ~/Library/Application Support/Keyboard Maestro. If you want it somewhere else, you can edit the variable in the macros themselves.&lt;/p&gt;&lt;p&gt;Download: &lt;a href=&quot;http://ift.tt/22krmhG&quot;&gt;Fancy HTML Prompts.zip&lt;/a&gt; (zip, 240312 bytes)&lt;/p&gt;</content><author><name>Nik</name></author><category term="software" /><category term="files" /><category term="scripts" /><summary type="html">A library of Custom HTML Prompt macros with some CSS and JS to make them look pretty and Mac-like as well as have some interface functions that aren’t provided by the standard KM dialogs. Specifically:A El-Capitan-style alert box with multiple buttonsA multiple checkboxes dialog to select multiple items from a pick-listA type-ahead box to select from a pick-list (like a combo-box)This requires a little bit of extra installation work. You’ll need to move the html-elements folder to ~/Library/Application Support/Keyboard Maestro. If you want it somewhere else, you can edit the variable in the macros themselves.Download: Fancy HTML Prompts.zip (zip, 240312 bytes)</summary></entry><entry><title type="html">It Gets Used - The Benefits of Integrated Marketing Automation</title><link href="https://nik.me/it-gets-used-the-benefits-of-integrated/" rel="alternate" type="text/html" title="It Gets Used - The Benefits of Integrated Marketing Automation" /><published>2016-03-30T16:59:31+00:00</published><updated>2016-03-30T16:59:31+00:00</updated><id>https://nik.me/it-gets-used-the-benefits-of-integrated</id><content type="html" xml:base="https://nik.me/it-gets-used-the-benefits-of-integrated/">&lt;a href=&quot;https://www.bluemodus.com/bluemodus-blog/march-2016/it-gets-used-the-benefits-of-integrated-marketin&quot;&gt;It Gets Used - The Benefits of Integrated Marketing Automation&lt;/a&gt;&lt;br/&gt;&lt;p&gt;I know marketing automation’s a little off the usual track of my blog, but I thought I’d share my latest blog post on BlueModus.&lt;/p&gt;</content><author><name>Nik</name></author><summary type="html">It Gets Used - The Benefits of Integrated Marketing AutomationI know marketing automation’s a little off the usual track of my blog, but I thought I’d share my latest blog post on BlueModus.</summary></entry><entry><title type="html">Giphy Search as a Custom HTML Prompt Tech Demo for Keyboard Maestro</title><link href="https://nik.me/giphy-search-as-a-custom-html-prompt-tech-demo-for/" rel="alternate" type="text/html" title="Giphy Search as a Custom HTML Prompt Tech Demo for Keyboard Maestro" /><published>2016-03-26T14:25:45+00:00</published><updated>2016-03-26T14:25:45+00:00</updated><id>https://nik.me/giphy-search-as-a-custom-html-prompt-tech-demo-for</id><content type="html" xml:base="https://nik.me/giphy-search-as-a-custom-html-prompt-tech-demo-for/">&lt;p&gt;
&lt;p&gt;This macro takes a search term and gives a selection of gifs from Giphy to select from. Clicking on a gif will save its URL to the clipboard (suitable for pasting into Slack or your other chat tool of choice), or option-clicking will both save the URL and download the gif directly.&lt;/p&gt;
&lt;p&gt;Doing this in Keyboard Maestro necessitated a few goofy (&amp;ldquo;goophy?&amp;rdquo;) things to make it work:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;I had to rely on JavaScript to insert the content from the Giphy search results (stored as a KM variable) into the HTML prompt - Keyboard Maestro only lets you pre-populate form fields with macro values.&lt;/li&gt;
&lt;li&gt;Again, JS events were required for selecting the gif (no surprise since they aren&amp;rsquo;t form fields), but I was able to use KM itself to check whether the option key was down to prompt a download.&lt;/li&gt;
&lt;li&gt;For my scripting, I had to rely on a combination of JXA and plain-old AppleScript. JXA was a good choice for the Giphy querying - JavaScript does very nicely with JSON parsing and iterators compared to AppleScript; but JXA still can&amp;rsquo;t deal with alias paths and the Finder can&amp;rsquo;t handle POSIX paths - so just to be able to create a unique file name it required me to use old-school AppleScript.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
Ultimately, this is a great example of how Keyboard Maestro can be used to build what is essentially a mini-application. There are certainly things that perform better or give more features, but as a toolkit to string together a lot of pieces and parts, it&amp;rsquo;s fantastic.&lt;/p&gt;

&lt;p&gt;This also makes me want to see KM expand to include web services into its vast arsenal of capabilities. Consuming JSON or even permitting variables to be stored in JSON has some real potetial as well.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href=&quot;http://ift.tt/1Talbw8&quot;&gt;Giphy Search.kmmacros.zip&lt;/a&gt; (zip, 9220 bytes)&lt;/p&gt;</content><author><name>Nik</name></author><category term="software" /><category term="files" /><category term="scripts" /><summary type="html">This macro takes a search term and gives a selection of gifs from Giphy to select from. Clicking on a gif will save its URL to the clipboard (suitable for pasting into Slack or your other chat tool of choice), or option-clicking will both save the URL and download the gif directly. Doing this in Keyboard Maestro necessitated a few goofy (&amp;ldquo;goophy?&amp;rdquo;) things to make it work: I had to rely on JavaScript to insert the content from the Giphy search results (stored as a KM variable) into the HTML prompt - Keyboard Maestro only lets you pre-populate form fields with macro values. Again, JS events were required for selecting the gif (no surprise since they aren&amp;rsquo;t form fields), but I was able to use KM itself to check whether the option key was down to prompt a download. For my scripting, I had to rely on a combination of JXA and plain-old AppleScript. JXA was a good choice for the Giphy querying - JavaScript does very nicely with JSON parsing and iterators compared to AppleScript; but JXA still can&amp;rsquo;t deal with alias paths and the Finder can&amp;rsquo;t handle POSIX paths - so just to be able to create a unique file name it required me to use old-school AppleScript. Ultimately, this is a great example of how Keyboard Maestro can be used to build what is essentially a mini-application. There are certainly things that perform better or give more features, but as a toolkit to string together a lot of pieces and parts, it&amp;rsquo;s fantastic. This also makes me want to see KM expand to include web services into its vast arsenal of capabilities. Consuming JSON or even permitting variables to be stored in JSON has some real potetial as well. Download: Giphy Search.kmmacros.zip (zip, 9220 bytes)</summary></entry><entry><title type="html">Preview Chrome in Marked</title><link href="https://nik.me/preview-chrome-in-marked/" rel="alternate" type="text/html" title="Preview Chrome in Marked" /><published>2016-01-18T20:36:16+00:00</published><updated>2016-01-18T20:36:16+00:00</updated><id>https://nik.me/preview-chrome-in-marked</id><content type="html" xml:base="https://nik.me/preview-chrome-in-marked/">&lt;p&gt;Working on editing some Markdown in Chrome for your blog? This &lt;a href=&quot;http://www.keyboardmaestro.com&quot;&gt;Keyboard Maestro&lt;/a&gt; macro lets you preview what you’re writing in Chrome with &lt;a href=&quot;http://marked2app.com/&quot;&gt;Marked 2&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;This only works with sites that use regular text areas or editable web content blocks. Sites and apps that rely on custom JavaScript or iframes will generally fail - this includes Tumblr, Google Docs, and Disqus to name a few.&lt;/p&gt;&lt;p&gt;Download: &lt;a href=&quot;http://ift.tt/1JVvyRM&quot;&gt;Preview current Chrome text field in Marked.kmmacros&lt;/a&gt; (kmmacros, 6621 bytes)&lt;br/&gt;&lt;/p&gt;</content><author><name>Nik</name></author><category term="software" /><category term="files" /><category term="scripts" /><summary type="html">Working on editing some Markdown in Chrome for your blog? This Keyboard Maestro macro lets you preview what you’re writing in Chrome with Marked 2.This only works with sites that use regular text areas or editable web content blocks. Sites and apps that rely on custom JavaScript or iframes will generally fail - this includes Tumblr, Google Docs, and Disqus to name a few.Download: Preview current Chrome text field in Marked.kmmacros (kmmacros, 6621 bytes)</summary></entry></feed>