Fixing Image Capture with PLIST Edit

Image Capture is an application included with macOS, which acts as a general image ingester, and scanner interface. You plug a device in, and Image capture looks at all the files available on it, then gives you the option to download them to your chosen location, or application.

The basic UI, is this:

Image Capture in macOS High Sierra

Or at least, that’s how it looked.

The most salient point is that option “Make subfolders per camera”. What that does when checked, is that whatever folder you choose to copy files into, Image Capture will first make a folder with the name of your device. Great if you’re copying images in for the first time, but if you already have a previously established folder for device images, not something you’d want to have enabled.

What went wrong:

In recent versions of macOS, this checkable menu option is no longer visible, which means you lose the ability to control that aspect of the software, and the default is to create the device subfolder. *eugh*

Anyway, a bit of research online indicted tht the setting might be controlled in the .plist file for Image Capture, located at:

~/Library/Preferences/com.apple.Image_Capture.plist

…and sure enough

The nefarious property

Fir enough, I’ll open it in a text editor, and just change <true/> to <false/>

Except… it’s a binary .plist file, and opens as garbage text. Yes, only Apple could make a plain text XML preference file system, into binary files that require a special developer tool to modify them.

So, off to the Mac App Store, and there’s a simple tool PLIST Edit. $10, done.

Open the plist file in it, change the value to False, save, relaunch Image Capture, and:

Prodigal menu returns

Make subfolders per camera is back. Huzzah.

An Unmasked Face

An unmasked face is a jackboot.
A brownshirt,
and a straight-armed salute.

An unmasked face is an act
of oppression.

HFS+ and APFS Permissions for SMB Filesharing.

There’s a problem I encountered with Mac-based filesharing over SMB where HFS+ and APFS formatted disks would behave differently from each other when mounted remotely.

While HFS+ disks worked as expected, APFS disks would have issues with write permissions – everything would look correct, but creating folders would result in folders that couldn’t be written to, or renamed.

All the disks had the same permissions and setting on the file server – all had:

  • (Machine Admin user): Read & Write
  • staff: Read & Write
  • everyone: read only

And they were set to “Ignore Ownership”.

That ownership issue appears to be the problem – I had to enable ownership for the APFS volumes, and then add a dedicated filesharing user to the file server, add that user with read & write permissions to the APFS drives, and then apply permissions to the enclosed items.

Once that was done, it all worked as expected.

Studio Residence 2023

Modelling experiments to create an artist’s studio, with an attached residence to fit within local council regulations for a secondary dwelling – maximum residential floorspace of 65sqm. The roof is omitted. The major building volume is 6x7x21m HWD, plus the staircase & laundry side pods.

This version has a residential floor area of just under 50sqm. The residence is accessed via a staircase from the Office / Studio level, to a locking front door accessing the kitchen. Optional access would be via the balcony, again to the kitchen.

The basic configuration is:

  • Upstairs:
    • One bedroom
    • One bathroom (with laundry)
    • Kitchen
    • Library / sitting room with sofa bed for guest accommodation.
  • Downstairs:
    • Gallery / Photo Studio
    • Office / Digital Studio
      • Kitchenette
    • Bathroom

The doubling-up of kitchens / bathrooms is to ensure the residential and non-residential components are independently complete, to defuse suggestions that the entire building is functionally a single residential space.

Accessibility Concerns

All clearances – doorways, bed circulation, bathroom etc have been designed to exceed standard wheelchair-accessible 86cm requirements. All internal doors are sliding pocket doors.

The main bedroom is sized for a queen bed with all sides wheelchair-accessible, the Library can fit a double bed with all sides wheelchair-accessible.

Two locations have been designed to accomodate retrofitting of an inter-floor wheelchair-accessible elevator, should one be required.

The downstairs studio bathrooms feature two stalls of standard accessible dimensions. The larger of them has space beside the toilet for a compact shower-station.

Stray

Stray is a puzzle / traversal game, with a couple of coordination challenges, in which the player controls a cat.

Apart from how much fun driving the cat is, including moments where knocking things off shelves is a major mechanic, the most impressive thing about this game is how breathtakingly beautiful it is.

For folks who’ve lived in reclaimed warehouse spaces, this boho-scrap look will be familiar – I remember there were folks at Glebe’s Cyberspace warehouse who came close to this look with their spaces.

The whole game is infused with this beautiful melancholy, that leaves me in mind of Linklater’s adaptation of Philip K. Dick’s A Scanner Darkly.

The pain…
… so unexpected and undeserved…
… had, for some reason,
cleared away the cobwebs.
I realized I didn’t hate the cabinet door.
I hated my life, my house, my family…
– Are you okay, Daddy?
– What happened?
… my backyard…
… my power mower.
Nothing would ever change.
Nothing new could ever be expected.
It had to end, and it did.
Now in the dark world where I dwell…
… ugly things and surprising things
and sometimes little wondrous things…
… spill out at me constantly…
… and I can count on nothing.

I’m taking this game’s art direction as an inspiration for some architectural modelling I’m doing – moving away from whitebox Modernism, and to a more cozy retro-boho style. Dark wood, patterned wallpaper, etc.

Fixing a Wacom Intuos 4 under macOS Ventura, with Keyboard Maestro.

Among the various changes happening in macOS under macOS 13 Ventura, is a problem with Wacom’s Intuos 4 graphics tablets. Following is a way to use Stairways Software’s Keyboard Maestro to solve the particular glitch thrown up by this hardware / driver / operating system combination.

The Symptom:

Upon waking from sleep, the OLED screens on larger size Wacom Intuos 4 tablets my be unresponsive. While all the hardware appears to function, and the controls for the screen brightness are accessible, the screens themselves remain inert.

The Cause:

The problem appears to be a result of the driver not working correctly over the sleep / wake cycle.

Troubleshooting:

I contacted Wacom support, and despite their driver notes showing device compatibility for my tablet clearly written:

…the support representative claimed that the Intuos 4 XL became unsupported after the previous driver, which does not support macOS Ventura.

To be clear, if it’s “unsupported”, one would question why the driver settings show this:

…that “Tablet Light Brightness” feature? Those OLED screens were removed from Wacom tablets after the Intuos 4. There are no newer tablets with those screens, so if the tablet isn’t supported by the driver, why is that there?

We could also check out the Wacom Centre app, which is used to… well it doesn’t really seem to do anything necessary. It’s effectively a thing that checks for driver update status, and provides shortcuts to the Wacom System Settings pane.


That’s “unsupported”? Really?

So on to…

The Solution.

Fixing this problem is a simple matter of quitting and re-launching the tablet driver. You can use Wacom Tablet Utility to do this manually, or you can use Keyboard Maestro to add a set of events to do this as a menu command, or as something that runs automatically upon wake, thus:

So what this macro is doing is it’s triggered by either the Keyboard Maestro menulet app, OR triggered by waking up from sleep. It waits 20 seconds, so that the wake process is out of the way and settled if it’s triggered by a Wake event, then it quits the driver, waits, and launches it again. You’ll need to reveal hidden files and folders to navigate to it, in order to populate the app’s location.

Problem solved.

2022 – A Wrapup

2022 started with a sense of doom as the full ramifications of dropping border restrictions into Qld became apparent. That continued throughout the year, and for a full year I don’t think I attended a single restaurant in-person. I’m still in a mask whenever I visit any establishment of any kind. Those in charge of protecting our health have definitely decided that endemic sickness is cheaper than trying to prevent infection. The chief medical officer referred to it as a “reaping” of vulnerable people. Reaping of course being something done deliberately after sowing.

We had a release of a rescue lizard from the end of the previous year, and there was general lizardyness throughout summer.

Laser eye therapy – this was a big thing for the early part of the year. It’s unpleasant, somewhat painful, but the least nasty one could hope for. They repaired a spot of retinal detachment that had appeared, as well as some congenital retinal stuff I’ve had for years. Hopefully it will mean the problem is solved.

Covid shots continued, fourth and fifth doses. I injured my foot by wearing slippers… which is very me.

Bike-wise, I became more adventurous with maintenance. I pulled the chain for a deep clean, adjusted the brake callipers, pulled the wheels, and bought a standing trainer so I could get more exercise without having to actually travel outdoors where the plague people live.

In sculpture / welding progress, I had practice, made some improvements, but the setup and packdown time has really defeated me. For little individual tasks I expect to be able to work here, but needing a consistent, repeatable setup, this just isn’t going to work. The heat and fatigue just get to be too much.

Speaking of heat and weather – we had flooding of the river, unending rain, and then our roof flooded as a result of the air conditioner being set up in a way that caused it to never stop running, attracting so much condensation to its ducting that it shorted out our lighting circuit.

Domesticity led me to do a few things I should have done 7 years ago, and buy some storage furniture. I managed to hack together a nifty laundry hamper  from a shallow IKEA cupboard, as well as add some glass fronted cupboards above. This allowed me to bring a bunch of stuff home from storage – things like movies, games and (a small number of) books.

Storage cleanup was a big chunk of the year, sorting, reboxing, and stacking things to the ceiling in the storage tank. Seeing your life catalogued and labelled in an anonymous metal shed produces some mixed emotions.

I had some big writing projects this year – the first was a submission to the Australian Competition & Consumer Commission about Apple and eBook publishing. The second, a grant application to the Australia Council. The grant application has been particularly disappointing, both from the perspective of it being unsuccessful, but more so from the feedback being so generic that it reads like it wasn’t actually written in response to my actual application. In particular, a comment to include relevant support material, when I had included the maximum allowed support material raises a lot of red flags that the support material wasn’t even accessed.

Technology continued to be a struggle. I found  some interesting automation technologies that really opened up the possibilities for how I could do things, and build complex workflows. It’s empowering, which a lot of technology really isn’t any more. The end of the year also brought a constant struggle with system instability, which I suspect is due to my mouse.

I built a nice little stand out of gal plumbing pipe, that lifts my display, and gives me a bit of extra desk space.

My Xbox headsets broke over and over, so I bought an expensive Bang & Olufsen one to replace it. It’s pretty nice.

In terms of space, we looked at a few houses, they were all terrible for various reasons.

Of course the big thing throughout the year was Russia invading and pillaging Ukraine. The world feels like it’s just tipping over the precipice and everyone is more concerned with making sure the champagne fountains don’t spill.

 

The State of The Art (during Covid).

Covid has been a hard time for the arts, and for artists. For people with compromised immune systems, or who live with people with compromised immune systems, this has been even harder. Life has become one giant exercise in existential fear, as we see policy makers embark on a brave new era in which eugenics, expressed as “the majority of deaths are in people with comorbidities”, is the order of the day.

In this brave new world, public health has been replaced with personal responsibility – not a responsibility to protect your fellow citizen, but rather, a responsibility to protect yourself, and shoulder the sole burden for doing so. Society at large has absolved itself of any obligation to change in order to protect the vulnerable, and the costs that would entail.

The best practices recommended – universal mask-wearing, purifiers for air conditioning systems, working from home, are all being abandoned, seemingly on the basis that if we just “get back to normal”, that life will somehow become normal, in fundamentally abnormal times.

And so, the vulnerable cower in our homes, afraid of the very air outside, knowing that Covid, which hangs in said air exactly as cigarette smoke does, could waft in through an open window, courtesy of a neighbour.


Making art under these circumstances is difficult at best. More so when your process is industrial – metal fabrication, for example.

Prior to Covid, I had worked around a lack of studio space by moving my practice into Virtual Reality – and that worked really well, resulting in the Noosa Mnemonic project with Noosa Library Service. Unfortunately, this was one of the first casualties of Covid, as getting people together in a room, while sharing a device pressed against their faces, wasn’t Covid-safe.

I received an Arts Qld resilience grant early in Covid, to try to build an accessible storage cabinet within my carport. While the grant was acquitted to the satisfaction of the managing arts organisation, the project ran into the very problems it was trying to solve – I couldn’t build it in the space I had available to build it. To be clear, with an appropriate space to lay out the parts during construction, and leave them laid out over multiple sessions, I could definitely build it. Nothing about the construction is beyond me from a technical perspective, and if my carport was a garage, it would be a solvable problem.

I moved on to attempting to work around this, buying a human-weight-rated folding wheelchair ramp, to allow me to roll my welder, and air compressor up a step and into the townhouse so they can be securely stored indoors when not in use. With this setup, I have endeavoured to continue with preparations for my next series of works – doing small experiments, and learning the wiles of my welder.

This was another learning experience. I’ve been able to reduce the setup and packdown time to fifteen minutes each way. However, that hasn’t solved the fundamental problem – I’m working in a carport open to the communal driveway, and to the street. Therefore, I can’t set a work up, and walk away from it (and thousands of dollars of equipment) for lunch, or to think etc.


So that’s where we are, in the third year of Covid. My practice is largely revolving around digital processes – rebuilding workflows, and reworking material created before the plague times. In physical works, I’ve mostly been buying and testing gear, for the longer-term goal of getting back into fabrication, once I have a space in which to work. Along with that, has been a months-long process of re-organising my storage facility space, to better arrange all the materials I’ve been accumulating over the years, as well as all the possessions from my old life in Sydney that never found room in what was supposed to be temporary accomodation when I moved to Noosa.

To be fair, there have been some significant achievements during this Covid era. Surfing The Deathline was completed in its final single-volume form – the completion of a project I’ve been working at, on and off, for a little over twenty years.

Alongside that, was making the momentous leap to being fully-independent in selling my eBooks, via a Fastspring-powered general e-commerce store, rather than being reliant on an Apple, Google, or Amazon specific eBook store. Getting this working correctly was a long process, and it’s amazing the sheer amount of time that can seem to vanish on just research, finding out if a thing can be done, then how to do it.

Notwithstanding the time-suck, this is something I’ve been planning towards for a number of years, even prior to Covid. I now have control over the sale of my works – I can set whatever prices I like, and no one can ruin the appearance of the sales experience.


So, this is a roundabout way of saying that while it looks like things have been quiet here (I’m sure everyone’s exhibition records have been pretty sparse for the past couple of years), stuff has been happening, it’s just stuff that stays within the walls of home.

Time Machine Duplication

To duplicate a Time Machine Drive, and Re-integrate it to the backup process:

  1. Switch off automatic backups.
  2. Copy the source drive using SuperDuper (the only utility that can properly clone a Time Machine volume) with the Backup All Files option.
  3. Wait hours or days for the copy to complete*.
  4. Add the drive in the time machine  prefpane
  5. terminal
    1. Inherit the backup (do this by dragging the actual computer name folder from Finder into Terminal after typing the inheritbackup – the full path will then be populated):
      sudo tmutil inheritbackup /Volumes/(The Backup Drive)/Backups.backupdb/(The Computer's Name on the Backup Drive)
    2. Associate the Boot Drive (again, drag the boot disk’s entry in the latest backup entry of the duplicated Time Machine volume, from Finder, to the Terminal window, and it will populate the area in brackets – make sure you check the number and spacing of forward slashes):
      sudo tmutil associatedisk -a / /(the path to the the last backup of the boot drive on the backup drive)
    3. Associate each backed-up non-boot volume (dragging again from Finder to the Terminal window for both of these):
      sudo tmutil associatedisk -a /Volumes/(Non-Boot Disk) /(The path to the most recent backup of the Non-Boot Disk)
  6. Open a terminal window and start recording the TMUtil log output:
    1. log stream --style syslog --predicate 'senderImagePath contains[cd] "TimeMachine"' --info
  7. Run a Time Machine backup manually and watch the terminal log to make sure each part of the backup is being connected correctly. Look for Inheritance Scans and watch the sizes of the backups, to make sure it’s not doing complete fresh backups.

Special Note: holding down the Option key in Terminal, allows you to place the cursor insertion point wherever you click in the text.

If this helped you, maybe go buy one of my eBooks.

* When I say days, I mean it can take days. Or, indeed in one case, weeks.

Fixing Capture One, with Keyboard Maestro.

Capture One is a RAW photo developer, editor and Digital Asset Manager app. It’s my current go-to as a long-term replacement for Apple’s long-discontinued Aperture.

In general, it has better image processing than Aperture, but falls down a bit on the DAM side of things. It can’t import directly from iOS devices, and doesn’t have export to iOS device integration through iTunes. It also lacks Aperture’s “Flag” option, which is super helpful for doing a first pass through a shoot, and flagging images as keep, or not, before filtering for flagged, and going on to subsequent passes for assigning star ratings.

The biggest problem from a fast workflow perspective, is in how it handles a multiple-display setup. You have your thumbnail Browser window open on one screen, and the image Viewer window open on another. When you click on a thumbnail, although the image is displayed in the Viewer, the application’s focus remains on the Browser. This means keyboard shortcuts to control the zoom level of the image are captured by the  Browser window, and not passed through to the Viewer. As can be seen in this video:

The workaround was to have to manually click on the Viewer window, to bring it into focus, then do the zoom keyboard shortcuts, and back and forth for every image.

This really defeats the purpose of shortcuts, which are designed to minimise unnecessary mouse movement.

I spent almost a year holding off committing to Capture One (after purchasing it) over this, before discovering Keyboard Maestro.

What Keyboard Maestro does is sit in the background, capture keystrokes, and use them to trigger various workflows & macros.

In this case, I configured it to listen for the keyboard shortcuts I had previously used in Capture One for the zoom-to-100%, & zoom-to-fit commands. I then configured it to generate two keystrokes in succession, in response to each of those original keyboard shortcuts.

  • The first, is the keyboard shortcut to make the Viewer the active window.
  • The second, is a reassigned shortcut for zoom-to-100% & zoom-to-fit respectively.
Use a Group to limit the macro’s scope to Capture One.
Set up the chain of keystrokes, triggered by the first.

So, the process now is:

Select a thumbnail, then:

  • Press the Key originally used to zoom to 100%.
    • Keyboard Maestro grabs the keystroke, and uses it as a trigger to fire off:
      • Keyboard Shortcut to make the Viewer window active, then
      • Reassigned Keyboard Shortcut to set the Viewer zoom to 100%.

Or:

  • Press the Key originally used to zoom to fit.
    • Keyboard Maestro grabs the keystroke, and uses it as a trigger to fire off:
      • Keyboard Shortcut to make the Viewer window active, then
      • Reassigned Keyboard Shortcut to set the Viewer zoom to fit.

The neat thing, is that using the shortcut to make the Viewer active while the Viewer is already active doesn’t seem to cause any problems, so there’s no need for conditional logic to test which window is currently active.

All in all, this is an elegant solution to a problem that seemed hopeless.

If this helped you, maybe go buy one of my eBooks.