• Tech Tips

    Wooshy + Keyboard Maestro = Incredible Power

    UPDATE: I have a more reliable way of doing this with Applescript + KM. I will post someday when I have time.

    I don’t have time to write a full post, but this is too good to not share quickly.

    Wooshy lets you find+click elements on the screen by their hover text (in addition to many other features). This means you can target buttons that would be hard to target, like a color picker box (see below).

    Keyboard Maestro lets you programmatically invoke/use Wooshy.

    Using both, you can target virtually anything on the screen with a high degree of accuracy.

    Here’s a visual example. Note that the steps in purple are easily be automated with Keyboard Maestro. Also it’s worth noting you can target all of the text on the hover text for even more accuracy (so I’d have KM search for “Set the text color, Option-click for Color wheel” in the example below. Each keystroke takes more time, so it may not be worth it.

    Example showing Wooshy targeting a button with no label

    The following KM macro doesn’t have any safety checks (and I really hate using Pause), but it does illustrate the potential:

    Keyboard Maestro macro to use wooshy to set a text color

  • Development,  Tech Tips

    Using Dataview with Charts in Obsidian

    Obsidian is my third most used application after Keyboard Maestro and Alfred. I’ve been using the dataview plugin since I got started with Obsidian. It’s an incredible plugin that gives you the ability to treat your notes like database records. In this example I’ll show how I use dataview to make my projects queryable, and then how I use Obsidian-Charts to make some bar charts of this data.

    Using Dataview Variables

    Here’s an example of a Project file in my Obsidian vault:

    Example project file in Obsidian

  • Tech Tips

    Obsidian Daily Note Implementation v2

    Here’s what my current Obsidian Daily Note looks like:

    Example of an Obsidian daily note

    I’m pleased with this, having come from a pretty bland Daily Note setup prior to this. I’ll explain the setup:

    Requirements

    As of July 15, 2022 this only works as expected if you edit in regular source mode, not live preview mode (the live preview won’t show the styling; see https://www.reddit.com/r/ObsidianMD/comments/vz2mw5/comment/ig9g0k9)

    Template File

    I set up the “Daily notes” plugin as follows:

  • Tech Tips

    Clipboard Manipulation using Keyboard Maestro

    Keyboard Maestro has many triggers; these are responsible for executing macros. One such trigger is “The System Clipboard Changes“. I don’t use it often, despite how incredibly useful it is. It does exactly what it says: if a macro uses this trigger, Keyboard Maestro will execute the macro any time the clipboard content changes (when you “copy” something).

    Here’s a quick example showing the usefulness.

    There is a specific issue I have with Microsoft Outlook webmail within Google Chrome. Our email system leverages urldefense.com to alter all external links in the interface (see below). If I’m clicking a link, that’s fine, but if I want to copy a link’s URL it’s annoying to have to clean up the URL to remove the urldefense cruft.

    Everything I’ve marked with an “x” is added by urldefense.

    The macro is simple. I leverage The System Clipboard Changes trigger to trigger the macro. The macro is inside of a macro group that is only activated for Google Chrome. I use an If Then Else action to determine if the URL is a target for manipulation. Finally, I use a Search and Replace action with some regular expressions to strip off the urldefense cruft.

    Clipboard change macro

  • Tech Tips

    Using Keyboard Maestro to Set a Window Size for Recording

    This is a quick one, folks. This simple KM macro sets the front (active) window to a specific size. I use it to prepare a window for screen recording.

    Image of Macro:
    Screen recording window size

    Text of Macro:

    Resize window to 1280×720

    Triggered by any of the following:

    • The Status Menu is selected

    Will execute the following actions:

    • Resize Front Window to Pixels
    • To: 1280 horizontally, 720 vertically.
    • Notify on failure.
  • Tech Tips

    Correcting Date Tags using sed in an Entire Obsidian Vault

    I’ve been using Obsidian for about 8 months. It wasn’t until today that I realized I’ve been using hierarchical tags incorrectly since day one!

    The Problem

    In my templater templates I was using the following:

    The result of this is:

    Unfortunately there are two problems with this. First, there is no need for that extra tag at the end; it’s already covered by the first combo tag.

    Second, the hierarchy is backwards! This leads to:

    Houston, we have a problem! What I really was after was a tag structure like this:

    The Fix

    Thankfully, Obsidian stores all of the files on the filesystem natively, which means you can manipulate them using whatever tools you’d like.

    Enter sed, a stream editor. Using sed and find, I was able to quickly resolve both of the issues above.

    If I’d taken a little more time I would have handled both problems in one shot, but I did not. I fixed problem 2, then problem 1.

    First, I cd’d into the root directory of my vault. Then…

    Finally, I updated all of my templater templates to drop the second tag and fix the first to be in the right order.

    Obsidian picked up all of the changes immediately, which were reflected in the tag pane. Much cleaner!

    Obsidian Tags

  • Tech Tips

    Editing Web Content in VS Code

    Okay, so it’s not quite as amazing as the title suggests, but this solution is worth sharing.

    I work a lot in Bookstack. It’s a fantastic documentation system built with Laravel. I edit all pages in markdown. There is a markdown pane on the left and a preview on the right. I love the UI (shown below) but unfortunately I cannot move around in the editor like I can in PHPStorm or VS Code, where I have Vim support.Bookstack edit screen

    I have a Chrome extension called Wasavi, which is incredible for editing text areas in an inline virtual Vim window. Unfortunately, though, it doesn’t show realtime feedback in the preview pane until I save and close out of the virtual editor.

    It occurred to me it’d be useful to just pop into VS Code quickly to edit the doc, then bring those edits back into the Bookstack editor in Chrome. At first I dismissed the idea as being “too much work.” After thinking about it for a moment, though, I realized I could MacGyver this relatively quickly with my favorite Mac application, Keyboard Maestro.

    Here’s what I came up with. As with most things, I am sure I’ll tweak this over time to make it better, faster, less “error”-prone, etc. I have added a README comment and renamed most actions so it’s (hopefully) easy to understand the approach.

    Bookstack VS Code Macro

     

  • Tech Tips

    One-handed Gmail Inbox Culling with Keyboard Maestro

    Keyboard Maestro proves, once again, why it’s at the top spot on my most recommended Mac applications list.

    My normal procedure for culling (deleting unwanted) emails in Gmail is (with list on left and email preview on right):

    1. Open the first email (opens in right pane)
    2. If deleting, press “#” (⇧3)
    3. Else, if skipping, press “j” to move down to the next email (standard Gmail behavior, I think; and it’s intuitive if you’re used to Vim)
    4. Repeat steps 2 and 3.

    I realized today how much I dislike hitting “#” with my left hand while browsing with my right.

  • Development

    Testing Cookie Modification in Laravel 8

    If there’s a better way to pass a cookie from one request to another, in a phpunit feature test in Laravel, please let me know! Here’s one way to handle it: