Software

An inactive checkbox is always a bit of a mystery to me.
Why is it inactive? How do I get it to activate so I can select it? More often than not, it takes me a couple of tries fiddling around with other preferences to finally activate the checkbox and be able to select it.
It shouldn’t be that way.

And now I realize I’ve been guilty of having such an inactive checkbox in Yoink‘s preferences myself:

Yoink 3.2 Preferences Inactive CheckboxThe inactive checkbox “Show window near mouse pointer (…)” is inactive and needs extra steps to be activated

It’s exactly what I dislike. What was I thinking?
As a new user who has no idea how these preferences are connected, you just don’t know how to get that checkbox active and, more importantly, how to change the setting available behind the inactive checkbox.
In the worst case, it’d take three steps to activate it. You’d have to:

  1. Select the checkbox “Automatically show when” (if it wasn’t active before)
  2. Change “mouse pointer is at edge of screen” to “drag starts”
  3. and then you’d finally be able to access the newly active checkbox
If I launch Yoink for the first time, I have no idea what’s going on. That’s not a very good user experience.
So with the upcoming update v3.2.1, the checkbox will always be active, and it’s much clearer how these two options are connected:

Yoink 3.2.1 Preferences Active CheckboxIn Yoink v3.2.1, the checkbox is always accessible, eliminating extra steps to be able to select it.

Obviously, not all cases are the same and sometimes, in some places, there might be a good reason to have a checkbox inactive.
But here, it was clearly the wrong choice.

[Update 27.10.2016: I published a follow-up here.]

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – –

Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most).
Thank you 🙂

Read more

In my app ScreenFloat, I use the command line tool screencapture via NSTask to create screenshots. On OS X El Capitan and earlier versions of Apple’s operating system, this worked perfectly fine. Now, on macOS Sierra, I’ve been getting reports that screenshot creation didn’t work anymore, so I investigated.

At first I thought it might be the keyboard shortcut API that has undergone some changes, but that doesn’t seem to be the case, as I saw something actually occurred when I pressed the keyboard shortcut – Xcode’s console printed:

screencapture: cannot run two interactive screen captures at a time

Since I was absolutely sure I’m not launching screencapture via NSTasktwice, I took to Console.app to see if anything unusual was reported there. And there it was:

Sandbox Violation of ScreenFloat on macOS SierraThe output in Console.app when trying to launch an interactive screencapture with NSTask.

deny mach-register

So registering a global Mach service is denied on macOS Sierra. In the back of my mind, I remembered a temporary exception entitlement, but it wasn’t quite the same – com.apple.security.temporary-exception.mach-lookup.global-name. I tried adding it to ScreenFloat’s entitlements file, with com.apple.screencapture.interactive as its value (this temporary entitlement expects an array of string values), but that didn’t help – the same denial and console output occurred. On a hunch, I tried using …mach-register.global-name instead of …mach-lookup.global-name and – tada – it worked!

So I’m all set, right? Well…

Temporary Exception Entitlements

Apple offers a couple of temporary exception entitlements. They may or may not be granted to your app during Apple’s review process. But going through the list, it’s clear that …mach-register.global-name is nowhere to be found, so it’s kind of a private entitlement – which makes it even less likely for it to be granted to your app.

Digging Further

Seeing as the sandbox denial points explicitly to com.apple.screencapture.interactive, not just com.apple.screencapture generally, I tried creating a non-interactive screencapture session with NSTask. To my surprise, it worked – without the entitlement.

So I tried a different command line utility – which. (which will return the executable path to the given command line utility, for example, which screencapture would return /usr/sbin/screencapture). Again, it worked. And again, without the entitlement.

It makes me believe (and hope) that the behavior we see for com.apple.screencapture.interactive is not desired, so I’ve filed a bug report with Apple in the hopes that they can set the record straight soon.

For now, I hope ScreenFloat will be granted the temporary entitlement just so it is functional again on macOS Sierra for the time being. However, if this is in fact the desired behavior, I will have to write my own screencapture utility so ScreenFloat can remain on the Mac App Store.

Bug Reporting

For anyone who’s interested or in a position to view it, here’s the bug report I’ve filed with Apple: rdar://27610157. I do hope to get an answer soon.

Update August 2nd, 2016

As I stated above, com.apple.security.temporary-exception.mach-register.global-name isn’t documented anywhere. Which is also the reason you get an error when trying to submit an app with such an entitlement to iTunes Connect:

ERROR ITMS-90285

So, no dice on the temporary exception. Having to write my own screenshot utility seems more and more likely. I hope I can make it in time for macOS Sierra.

Update September 9th, 2016

The temporary exception is now valid and will go through to Apple’s App Review without a hitch. My own solution is not necessary at this time, but I’m still going to be working on it – you never know.

 

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – –

Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most). Thank you 🙂

Read more

SiriMote App Icon

Today, I’ve updated SiriMote to version 1.2.

What Is SiriMote?

With SiriMote, you can control your Mac with your Apple TV Siri Remote:

  • Control your Mac’s volume
  • Control iTunes (play/pause, next or previous track, fast forward, rewind)
  • Control Keynote (next or previous slide)
  • Control QuickTime Player (play/pause, fast forward, rewind)
  • Control VLC Player (play/pause, next or previous track, fast forward, rewind)
  • Control Microsoft PowerPoint (start/stop slideshow, next or previous slide)
  • Control any Mac app that reacts to your Mac’s keyboard’s media keys

What’s New in SiriMote 1.2?

Most notably, SiriMote 1.2 lets you put your Mac (or its display) to sleep using your remote.
Press and hold the remote’s Home button for a second, and the following bezel will appear:

SiriMote's Sleep Options Bezel

It’s a little larger than usual, because I figured you’d like to be able to read it from afar. It then lets you choose between putting only your Mac’s display to sleep or the entire system.
You can wake your Mac’s display again with any button of the remote – waking from system sleep currently only works with a keyboard or mouse/trackpad, not the remote.

SiriMote is now localized in German, Sparkle (used for the update mechanism) has been updated to version 1.14.0.
I’ve also switched to Auto-Layout instead of NSView’s autoresizing mechanism, which you can read about in this  What I… blog post.

As you can see in the screenshot above, the Siri Remote is now not a graphic anymore, but drawn entirely in code, allowing for absolutely free resizing (which you can read about a bit here). The code for it will be open sourced soon.

Pricing and Availability

SiriMote is a freeware application, which means you can download and use it without limitations for free. If you like it, please consider taking a look at my other apps – thank you!
The app is available for download from SiriMote’s website (direct download).
SiriMote requires OS X El Capitan 10.11 or newer and an Apple TV Siri Remote.

If you’re interested in writing about SiriMote, you can download the press kit here, which contains screenshots and further information.

 

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – – 

Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most).
Thank you 🙂

Read more

Yoink Mac App Icon

I’m happy to tell you that today, Yoink 3.2 is available for download from the Mac App Store.
It’s a free upgrade for everyone who’s purchased it before.
You can download a 15-day trial for the app here, even if you’ve tried it before.

What Is Yoink?

Yoink simplifies and improves drag and drop on your Mac.

Simplify.

It simplifies drag and drop by providing a temporary place for files you drag, so you can navigate more easily to the destination of the files.
It’s especially useful when trying to move or copy files between different windows, Spaces or (fullscreen) applications.

Moving a file with Yoink

When you start moving a file in Finder, or app-content like an image from a website, Yoink appears at the edge of your screen, offering a temporary place for you to drag the files to.
Without having to keep the mouse button pressed, you can now get to the destination of your file quicker and easier.

Improve.

Drag and drop is improved in several ways, including:

  • Collect multiple files from different locations you’d like to move to one destination without having to go back and forth
  • Split up a multiple-files-drag so you can move files to different places without having to go back and forth
  • Copy files to multiple locations more efficiently

Customize.

You can customize Yoink’s behavior so it fits in perfectly with your workflow. Aside from having to option to show it at either edge of your screen (at the top, center or bottom), you can set it up to only appear when you drag files to the edge of your screen or to appear directly at your mouse cursor when you start dragging, making drag and drop even faster.

Yoink appearing at the mouse cursor

For applications where you don’t need Yoink, add them to a “blacklist”, so Yoink doesn’t interfere with your work.
A keyboard shortcut (by default, F5) lets you manually show or hide it, should you need it anyways.

What’s New in Yoink 3.2?

Force Touch Support

Force Touch in Yoink allows for quick actions, i.e. selecting all files, revealing files in Finder, QuickLooking files, splitting up Stacks and pinning files to Yoink, all available with one Force Click.

Yoink's Force Touch Preferences

For instance, Force Touch makes dragging out all files at once a much nicer process than before. Force Click onto one file and all are selected. Ease up one pressure level and start to drag, and you’ll drag all files instantly.
Additionally, Yoink can give you haptic feedback when dragging to it, so you know when you’ve entered Yoink’s window with files.

Deletion Warning

Yoink does not keep a copy of the files you add to it behind the scenes, so it’s important for users to know that if they Trash a file that’s in Yoink, it will be gone if it’s deleted.

Trash warning in Yoink 3.2

This one-time-per-app-launch warning notifies the user about what’s going on.

UI Enhancements

In previous versions of Yoink, when you moved your mouse cursor over a file, this happened:

Yoink 3 Icon Behavior

Some users felt that this results in a moving target (as the icon moves away), and that is definitely a bad user experience (in my defence, I didn’t think of it creating a moving target, because not only the icon, but also the background can be dragged).
Anyway, point taken, I’ve changed it to a simpler, and in the end calmer, animation:

Yoink 3.2 Icon Animation

What you can also see in the two GIFs above, I’ve changed the lock icon so it’s easier to tell if a file is pinned to Yoink or not.
Speaking of the lock, I’ve added a new animation that will let you know that the file can not be removed because it’s currently pinned to Yoink:

Yoink Lock Icon Jiggle

Further Improvements

  • File paths can be copied from Yoink’s contextual menu
  • Reduce Motion Setting
  • Text snippets can now contain images
  • Performance and resource management improvements when accepting files, dragging files out, clearing all items, splitting up stacks, opening the “Open With” menu
  • When Yoink is shown on a different screen than the mouse cursor, the keyboard shortcut (by default, F5) summons it to the screen of the cursor
  • Yoink reflects changes in the Finder’s “Show all filename extensions” setting
  • Mails dragged from Yoink work again with all applications. To create an event in iCal from a mail message, keep the option-key pressed as you drag the mail out of Yoink
  • When a file is re-saved in Finder, Yoink updates its QuickLook Preview Icon
  • When a snippet is added to Yoink, it has a proper filename instead of “Snippet”
  • And many more improvements and bug fixes throughout the application

Pricing and Availability

Yoink 3.2 is available for purchase on the Mac App Store for the price of $6.99 / £4.99 / €6,99.
It is a free update for existing customers of the app.
You can download a free, 15-day demo version here, even if you’ve tried Yoink before.
Yoink runs on Macs with OS X Lion 10.7.3 or newer. OS X Yosemite or newer is recommended.

If you’re interested in writing about Yoink, you can download the press kit here, which contains screenshots, links to a short video and further information. Promo codes are available to members of the press at press (at) eternalstorms (dot) at.

Yoink Usage Tips

To get the most out of Yoink, I’m collecting useful tips and tricks for you on this website.

I’m looking forward to hearing from you and to see what you think about Yoink 3.2. If you like the app, please consider leaving a little review on the Mac App Store, it would help me out a lot!
Should you have trouble with it or have any feedback or questions, please be sure to get in touch, I’d love to hear from you! Thank you.

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – –

Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most).
Thank you 🙂

Read more