15.3.1 GPU 工作较重时外接鼠标会卡顿,触摸板不卡
mba m1
mba m1
如图。好像是升级系统后出现的,基本上每天都出现,出现只能重启才能解决。鼠标往右拖才能拖到最左侧去。
MacOS:15.3
DayBar 是一款在菜单栏显示本地日期和提醒事件的应用。
点击菜单栏中的 DayBar ,即可查看日历、日历事件和提醒事项,并支持与 Apple 日历同步。
它将日历和提醒功能整合到状态栏菜单,方便管理和查看,同时让提醒事项呈现为简洁美观的待办事项。
📥 下载链接: https://apps.apple.com/app/daybar/6739052447
💬 反馈意见: https://github.com/jaywcjlove/daybar
我用了 macmini m4 和一台 pve 小主机做开发。小主机也支持远程登陆进去
这样 mac 只需要负责我的用户 ui 操作的内存和算力,而小主机内存和硬盘无限量供应。
再无内存硬盘焦虑,紧巴巴的过日子的时代一去不复返。
无需扩展硬盘全部都在远端
无需安装 win 等虚拟机了,pve 直接安装各种系统
开发环境和生产部署环境完全一致,无“在我电脑上是好的啊?”的顾虑
性价比极高,内存每➕16G 仅需 200 多吧,硬盘➕1T 仅需 300 多
同时拥有 mac 的便捷 ui 操作和 linux 的专业开发环境
同时可以安装群晖,体验群晖强大的生态,兼顾影音娱乐和收藏小姐姐
综合费用 5K 但是比加到 macmini 上感觉更好用一些
Mac 系统,大家有什么 todolist 软件推荐嘛,欢迎评论区分享
I hope that you enjoyed Saturday’s Mac Riddles, episode 295. Here are my solutions to them.
Visible vapour (cloud) after I (i-) sync with remote storage (what iCloud is and does).
From SoundJam (it originated as a jukebox player of this name) it brought everything from lectures (in iTunes U to 2017) to tracks (music, of course) until broken up in 2019 (when its features were dispersed in successors including Music).
√-1 (in maths, i) spider’s threads (a web) brought single-click sites (what it did) until 1 came along (it worked until iCloud came in 2012).
Their names all start with the letter i.
I look forward to your putting alternative cases.
大家好,很高兴向大家推荐一款全新的 macOS 应用 - Xactions ,它是一款强大的自动化执行者,专为提升工作效率而设计。借助于 Xactions 的自动化实现,可以帮你从繁琐、重复的劳动中解放出来,让你专注于更重要的事情。
App Store 下载链接: https://apps.apple.com/cn/app/xactions/id6470151108
主要功能:
欢迎通过上面的下载链接体验 Xactions app ,并通过邮件和我们反馈任何你遇到的问题: support@trolltechX.com
下面是 30 个兑换码:
Here are this weekend’s Mac riddles to entertain you through family time, shopping and recreation.
1: Visible vapour after I sync with remote storage.
2: From SoundJam it brought everything from lectures to tracks until broken up in 2019.
3: √-1 spider’s threads brought single-click sites until 1 came along.
To help you cross-check your solutions, or confuse you further, there’s a common factor between them.
I’ll post my solutions first thing on Monday morning.
Please don’t post your solutions as comments here: it spoils it for others.
I hope that you enjoyed Saturday’s Mac Riddles, episode 294. Here are my solutions to them.
Cool colour (blue) with a liking for sugar (a sweet tooth) for connecting keyboards and mice (what it’s used for).
Although never inside a Mac (no Mac has been offered with an internal Blu-ray drive), its laser can burn over 25 GB (its blue laser can write 25 GB or more to each disc).
Hue of the first in 1998 (the colour of the first iMac released in 1998) that became five the following year (its 1999 successor came in five colours), and is now seven (Apple silicon iMacs come in seven colours).
They are all based on the colour blue.
I look forward to your putting alternative cases.
Yesterday’s brief history of ColorSync was one of the most interesting in this series to research. In most cases, these brief histories cover well-trodden ground, with several previous accounts to provide a framework for my collection of screenshots and personal experience. On this occasion, even Wikipedia was vague and brief. Yet at the time ColorSync’s role was of great importance, as faithful colour reproduction was so essential to the creatives and businesses that relied on Macs.
It’s also a richly multi-disciplinary field, drawing on neurophysiology, physics, colour science and perceptual psychology. Key concepts like the modelling of colour appearance have grown into lengthy and highly technical books, several of which I seem to have collected over the years. They also provide absorbing accounts of the lengthy journey over several centuries to bring basics such as colour order systems.
In 1615, the Flemish physicist Franciscus Aguilonius, also known as François d’Aguilon, (1567-1617) was the first to propose a colour line extending from white (albus) to black (niger), passing through the primaries of yellow (flavus), red (rubeus), and blue (caeruleus). Below that are secondary combinations of orange (aureus) and purple (purpureus), with green (viridis). This was published in his six volume treatise on optics, whose title page and illustrations were designed by Peter Paul Rubens.
In the early twentieth century, Albert Henry Munsell (1858-1918) devised a system closer to those used to specify colour today. This shows the circle of ten hues, here displayed with values of 5 and chromas of 6. The vertical value scale ranging from 0 to 10 is shown in neutral colours, from black to white. A wedge of constant 5PB hue is then shown at a fixed value of 5, the chromas ranging from 0 (grey) to 12 (pure colour).
Contemporary designers are also familiar with the Pantone System of swatches of standardised colours, that have become standards in several sectors such as process colour printing.
The problem tackled by ColorSync is that no device used with computers can represent the full range of colours, each having its own range or gamut. For colour to appear consistent in the image captured by a scanner or camera, on the display used to adjust settings such as white point and balance, and in the final printed page, colours have to be adjusted or mapped to look right on that device. To do that each device has its own colour profile, and a colour management system adjusts colours on each according to the desired quality and goals of the operator.
Most of the principles involved were known before the arrival of Macs. But when Apple, Adobe, Agfa, Microsoft, Kodak, Silicon Graphics, Sun and Taligent (an Apple-IBM partnership) sat down together in 1993 as the International Colour Consortium, they had a lot of work to do before photographers and designers could have confidence that their work would survive the journey into print retaining what appeared to be faithful colour.
ColorSync and colour management is but one example of the broad range of fields that form the basis of what we do on our Macs, from floating point computation to Unicode text. With the marketing drive to sell modern computers as appliances, we have lost sight of what goes into them. Just as with transport history, our view of what happened is largely superficial and limited to the tangible in collections of hardware.
This misleads us into thinking that today’s Artificial Intelligence is somehow capable of replacing human research and discovery when all it can really do is rehash what we have created in the past. If any of today’s much-vaunted large language models could have started to tackle the problems addressed by ColorSync during the 1990s, do you seriously think that they would have come up with the solutions embedded in Mac OS X less than a decade later? For without prior knowledge won by humans, we’d still be wrestling with the number of rs in the word strawberry.
Let’s celebrate human achievement and empower that instead.
Here are this weekend’s Mac riddles to entertain you through family time, shopping and recreation.
1: Cool colour with a liking for sugar for connecting keyboards and mice.
2: Although never inside a Mac, its laser can burn over 25 GB.
3: Hue of the first in 1998 that became five the following year, and is now seven.
To help you cross-check your solutions, or confuse you further, there’s a common factor between them.
I’ll post my solutions first thing on Monday morning.
Please don’t post your solutions as comments here: it spoils it for others.
Each colour output device, such as a printer, has a limited range of colours that it can reproduce, its gamut. To ensure that output best matches expectations, it’s necessary to adjust colours to a device colour profile using a colour management system. When Apple released the Macintosh II in 1987, colour management was in its infancy. With the development of colour output devices like inkjet printers, Xerox, Apple and other manufacturers realised its importance. Apple therefore recruited Robin D. Myers and together with Gary Starkweather they started work on what was to become the first version of ColorSync, released in January 1993.
That year Apple, Adobe, Microsoft, Kodak and others co-founded the International Color Consortium (ICC) to develop ColorSync into an open cross-platform colour management system, and worked on improvements to version 1.0. Although ColorSync was being integrated more with the Mac System, its use remained optional until the release of Mac OS X, and until then plenty of software simply ignored it.
ColorSync 1.2 brought support for Apple’s new PowerPC-based Macs, then in March 1995 ColorSync 2.0 brought major improvements, and was followed by 2.5, probably released with System 7.6.1 in 1997.
ColorSync is seen here in the later days of Classic Mac OS in 2001, managing colour profiles for devices, and providing colour management workflows.
ColorSync 2.0 used a new format for device profiles that had been developed by the ICC for use over a wide range of platforms and devices, although it retained backward compatibility with version 1.0 profiles. In addition to supporting input devices (scanners, cameras), displays, and output devices (printers), these new profiles also supported device links for batch processing, colour space conversions, and abstract devices for subjective transformations. Embedded profiles contained additional information indicating desired quality and rendering intent for colour matching. Printing to a ColorSync-aware printer driver became transparent for apps, allowing them to get the most from the built-in colour management in Mac OS.
With the release of Mac OS X 10.0 Cheetah in 2001, ColorSync came of age and was fully integrated at last, and had won its place in System Prefs. Version 4.0 was soon released in Mac OS X 10.1 Puma that September.
ColorSync Utility provided a rich range of tools for managing device profiles, and repairing any that had become damaged.
The following sequence of screenshots shows the calibration of an Apple Studio Display using Display Calibrator in Mac OS X 10.2 Jaguar in 2003.
ColorSync Utility’s features continued to grow, with the addition of a colour calculator in Mac OS X 10.4 Tiger, and improved visualisation of profiles, seen here in Mac OS X 10.5 Leopard in May 2009.
Colour profiles for printers were often specific not just to the printer, but also to the type of paper used, as with these in Mac OS X 10.7 Lion in 2011.
Since then, the demand for quality colour printing has steadily declined, and by macOS Monterey in 2021, ColorSync Utility was growing neglected, and its Calculator was and remains dysfunctional. The Display Calibrator app is now buried deep in /System/Library/ColorSync/Calibrators. A new colour calibration tool, Pro Display Calibrator, is tucked away in /System/Library/CoreServices to support Apple’s Pro Display XDR, but little has been done to develop the capabilities of the Studio Display since its introduction in 2022.
ColorSync version 4.13.0 carries on managing colour in macOS Sequoia 15, an unsung triumph of science and engineering.
Robin D. Myers’ early history
David Hayward Print Hints: Syncing Up With ColorSync 2.0, develop issue 23, September 1995
Apple, ColorSync on Mac OS X, Technical Note TN2035, 8 October 2005
Alas ColorSync Utility!
Although it may not seem that winter is drawing to a close, Spring isn’t that far away, and now is the best time to start planning your Spring cleaning. That’s an opportunity to give your Mac a good physical clean, and to catch up on software housekeeping as outlined in this article. Ideally you should spend a little time each month or so doing the housekeeping on your Mac. Although it’s usually a rewarding investment of your time, it’s often neglected. If you can’t follow the little-and-often principle, at least set aside some time once a year.
Housekeeping can tackle different types of maintenance, among them
If you prefer, you can leave most of those to a paid-for housekeeping utility, but most of those now require a substantial subscription, and placing your trust in them. As I’d never choose to invite someone in to tidy through my personal papers and possessions and discard any they think I don’t need, you might want to consider whether you’d trust software to do the same task with your files and data. While I might not be as thorough as a housekeeping app, I’m responsible for making my own errors.
If you don’t remove many old apps from your Mac, this shouldn’t involve much work. If, like me, you have a large library migrated from old Macs and regularly try out new apps, then they can leave significant amounts of junk. The more obvious locations to check in both the top-level Library folder and that in your Home folder include Application Support and Preferences. Don’t forget disused and unnecessary logs in ~/Library/Logs. Any that haven’t been modified for the last year or so should be disposable, and any from apps you no longer use can also be cleared away. There’s more detail here.
Almost all App Store apps and many others now run in their own sandbox, and macOS creates for them a container folder stored in ~/Library/Containers. These are a complex hybrid of real and symlinked folders and files that form the contents of the app’s sandbox. In some cases they may contain documents and other files of more lasting value, so you shouldn’t remove or tamper with them unless you’re sure you know what you’re doing. Similar containers in ~/Library/Daemon Containers are for helper services, while those in Group Folders are shared across apps. There’s more detail here. Containers and Daemon Containers are protected in Sonoma and later, and Group Containers are in Sequoia.
You’ll find further discussion of cleaning up from apps here, and old preference settings here.
Finding and removing duplicate files has long been one of the mainstays of Mac housekeeping. Not only did they waste space on the disk they were stored on, but they wasted it again when they were backed up. The activity has even won its own name: deduplication. Since APFS came to Macs, that has changed. One of its more subtle features is the clone file, making deduplication at best questionable, if not a waste of time and effort.
Unlike hard links, clone files are separate files, with their own inodes, but when first created they share the same data. If you then make changes to either the original or the copy, only the changed data is saved. The more changes are made to a clone, the more new data blocks it uses, until eventually all its data could be different, and the two files each occupy their own space, equal to the sum of the sizes of those two files.
Clone files can only exist in the same volume, though. Copy one of them to another volume, and the whole file is copied. Clone files don’t take any additional space in a snapshot, and Time Machine backups should recognise cloned files, and only back up one set of data for them. So not only do clone files not waste any space on their volume, but they don’t waste any in backups either. This is explained in more detail here.
You’re better off spending your time organising your working documents and other files more efficiently than trying to deduplicate in APFS. When you want to identify which files are occupying the most space on disk, DaisyDisk from the App Store is justly popular.
Many of us have accumulated thousands of old messages in our email clients, such as Apple’s Mail. While we don’t want to lose access to those old emails, we don’t do anything to archive them properly and get them out of the way of our active emails. All good email clients, even Mail, support the archiving of old messages to keep them for reference and get them out of our current Inboxes and Sent mailboxes. There are also apps dedicated to doing this, including Moth Software’s Mail Archiver X.
The Messages app is more of a problem, although for most it’s usually a matter of removing old movies, images and other large attachments. macOS, iOS and iPadOS provide useful aids to identifying the largest and removing them without having to trawl though hundreds of old messages. In macOS, open the Storage section of General in System Settings, and click on the Info button for Messages. Although Storage isn’t often an accurate measure of space used on disk, for which you should rely on Disk Utility, its individual tools can be useful.
Archiving the contents of data shared in iCloud is more complex, and explored here.
Although duplicate files may not be worth pursuing in APFS, you are more likely to come across duplicates that can be removed from media libraries, particularly those used by Photos. Recent versions have a Duplicates feature in Photos’ Utilities collection that offers to merge what seem to be identical images to save space and make your library more efficient. There are also third-party apps that claim to do that even better.
All apps that make snapshots are supposed to remove them automatically, in the case of Time Machine after 24 hours. Sometimes, usually because of a minor error in them, one or more snapshots escapes this. Left for more than another day or two, its size will steadily increase until it could occupy the whole of that container.
Checking old snapshots is quick and simple in Disk Utility. If you haven’t already enabled their display, select the Show APFS Snapshots item in its View menu. Then select each of the mounted volumes in turn, and the main window will list all the snapshots on that volume. If any are older than intended, you can select them and use the contextual menu from Control-click to delete them. Don’t try deleting any on the volume Time Machine uses to store its backups, though, as snapshots there are its backups and should be maintained by Time Machine.
When you’re doing your housekeeping you should also take the opportunity to check through some of System Settings to ensure they’re up to date. This applies particularly to Privacy & Security, and General > Login Items & Extensions.
Privacy & Security allows apps to access protected data, from Calendars to Reminders, or features that could be abused, from the camera to audio recording. One of the more important is Full Disk Access, where you’ll see strange entries, typically including XProtect, which you didn’t add and doesn’t need full disk access anyway. Don’t forget to check through those apps given access to Location Services in the top section.
Login Items & Extensions controls which apps and their services are opened automatically when you log in, and among other things puts some of them into the right side of the menu bar. Background items are other services that run in the background, but can be difficult to identify. Extensions are a varied collection of tools that do anything from adding to contextual menus to augmenting Quick Look or Spotlight. To see which are enabled, you need to click the Info symbol for each.
Good housekeeping isn’t about freeing up disk space, it’s about making your Mac more efficient in use.
Apple has just released an update to XProtect for all supported versions of macOS, bringing it to version 5287. As usual, Apple doesn’t release information about what security issues this update might add or change.
This version adds two new rules for MACOS.FLUFFYFERRET.CT and MACOS.TAILGATOR, together with a complete set of UUIDs for all existing rules.
You can check whether this update has been installed by opening System Information via About This Mac, and selecting the Installations item under Software.
A full listing of security data file versions is given by SilentKnight, LockRattler and SystHist for El Capitan to Sequoia available from their product page. If your Mac hasn’t yet installed this update, you can force it using SilentKnight, LockRattler, or at the command line.
If you want to install this as a named update in SilentKnight, its label is XProtectPlistConfigData_10_15-5287
.
This update is now also available for Sequoia via iCloud. If you want to check that manually, use the Terminal commandsudo xprotect check
then entering your admin password. If that returns version 5287 but your Mac still has an older version installed, you can force the update usingsudo xprotect update
This version is now available via Software Update, softwareupdate
, or in SilentKnight as well. If your Mac is running Sequoia and you download it that way, rather than using iCloud, then once it’s installed you’ll need to run the update
command for that to take correctly.
I have updated the reference pages here which are accessed directly from LockRattler 4.2 and later using its Check blog button.
Updated 2240 GMT 5 February 2025 with iCloud release.
I hope that you enjoyed Saturday’s Mac Riddles, episode 293. Here are my solutions to them.
42 (an integer number), 3.14159 (a floating-point number), 0x2A (a hexadecimal number), but not x (a symbol).
Forty (Roman numerals XL) has formulas (a feature of Excel) to be pre-eminent (to excel) against Apple’s digits (Numbers, its main competitor on macOS).
One of six (the spreadsheet module was one of six in AppleWorks) in a cider press (an apple works) that died in 2007 (when it was officially discontinued to make way for the iWork suite).
They are all spreadsheets that have run in macOS.
I look forward to your putting alternative cases.
Here are this weekend’s Mac riddles to entertain you through family time, shopping and recreation.
1: 42, 3.14159, 0x2A, but not x.
2: Forty has formulas to be pre-eminent against Apple’s digits.
3: One of six in a cider press that died in 2007.
To help you cross-check your solutions, or confuse you further, there’s a common factor between them.
I’ll post my solutions first thing on Monday morning.
Please don’t post your solutions as comments here: it spoils it for others.
Do you occasionally double-click on a folder in a Finder column view, expecting it to open that folder in a new window? If so, somewhere deep in your neurones are a few that still remember how the Finder worked in Classic Mac OS, quite differently to that in modern macOS. This article traces its history.
In the original Macintosh human interface, the Finder was its centre, the scene of all interactions between the user and the computer, apart from applications. There were no diversions like a Dock, and little by way of ornament.
Even when it had gained colour with the Macintosh II and Colour QuickDraw, the Finder in Classic Mac OS was a clean and spartan environment, with no toolbar, no traffic lights, just basic controls. At the top left is the close button, and the drag resizer is at the bottom right. But its biggest difference from today’s Finder was that double-clicking a folder within a window opened that folder in a new Finder window, according to its underlying spatial metaphor, hence its name. If you double-clicked with the Option key held, the previous window was automatically closed as the new window opened on top.
Thus, each Finder window could only show the contents of a single folder, and that location couldn’t be changed within that window. Navigating from one folder to another was accomplished by opening windows. It wasn’t uncommon to end up with stacks of half a dozen or more, each displaying the contents of a different folder, and Steve Jobs once unjustly criticised this as turning the user into a window janitor.
Note in this screenshot from 1999, showing Mac OS 9.0, the printer and disk icons on the upper right of the Desktop, and the Trash can at the bottom right. There was no Dock until Mac OS X inherited it from NeXTSTEP.
Here’s another example, this time from 2001. The upper window here shows the top level of a bootable disk, Scratch1, with its custom System Folder icon containing the bootable System for Mac OS 9.1.
Mac OS X 10.0 Cheetah brought with it the distinctive blue-and-white Aqua look, traffic lights at the top left, and the first toolbar. This view shows its tools being edited, and how its special folders and locations including iDisk, a precursor to iCloud, were arranged in the toolbar rather than any sidebar. This replaced the Classic spatial metaphor with an interface more akin to a browser, a move that proved unpopular with some.
By Mac OS X 10.3 Panther, the sidebar was added. The original Aqua style is here being progressively replaced by brushed metal, and it worked more like NeXTSTEP than Classic Mac OS. Two of its three view types are shown here: Icon and Column views, the third being List view, and those remain today, with the addition of what was originally Cover Flow and became Gallery view after Mojave.
Optical disks added tools for ejection, and to burn writable media from the Finder’s toolbar. The Finder’s Preferences were starting to offer subtle customisations including ‘spring-loading’ using drag-and-drop.
In 2007, Mac OS X Leopard introduced bespoke icons for certain document types, such as images, with a thumbnail preview. Categories offered in the sidebar included Devices such as disks, Places for popular folders, and quick access to some Spotlight search categories.
These are the toolbar options for OS X 10.11 El Capitan from 2016, still with support for optical disk burning, to which are added Finder Tags (also a category in the sidebar) and the new Share tool.
The Finder also has the privilege of featuring one of the oldest obvious bugs in macOS, affecting the width of column views, as demonstrated below in macOS 10.15 Catalina of 2019, and still present in Sequoia.
The Finder underwent its last major redesign in macOS 11 Big Sur, when all traces of brushed metal were removed, icons were changed, and every corner became rounded. It’s a far cry from the original spatial metaphor.
Wikipedia on changing style in the Aqua interface style.
Apple has overnight released an update to XProtect for all supported versions of macOS, bringing it to version 5286. As usual, Apple doesn’t release information about what security issues this update might add or change.
This version removes the rule for MACOS.1afcb8b, and adds three new rules for MACOS.FROSTYFERRET.UI, MULTI.FROSTYFERRET.CMDCODES and MACOS.FRIENDLYFERRET.SECD. It seems the animal of the week is a ferret.
You can check whether this update has been installed by opening System Information via About This Mac, and selecting the Installations item under Software.
A full listing of security data file versions is given by SilentKnight, LockRattler and SystHist for El Capitan to Sequoia available from their product page. If your Mac hasn’t yet installed this update, you can force it using SilentKnight, LockRattler, or at the command line.
If you want to install this as a named update in SilentKnight, its label is XProtectPlistConfigData_10_15-5286
.
This update is also available for Sequoia only via iCloud. If you want to check that manually, use the Terminal commandsudo xprotect check
then entering your admin password. If that returns version 5286 but your Mac still has an older version installed, you can force the update usingsudo xprotect update
This version is now available via Software Update, softwareupdate
, or in SilentKnight as well. If your Mac is running Sequoia and you download it that way, rather than using iCloud, then once it’s installed you’ll need to run the update
command for that to take correctly.
I have updated the reference pages here which are accessed directly from LockRattler 4.2 and later using its Check blog button.
Early today Apple released an update to XProtect for macOS Sequoia only bringing it to version 5286. As usual, Apple doesn’t release information about what security issues this update might add or change. Macs running earlier versions of macOS should still be using version 5285.
This version removes the rule for MACOS.1afcb8b, and adds three new rules for MACOS.FROSTYFERRET.UI, MULTI.FROSTYFERRET.CMDCODES and MACOS.FRIENDLYFERRET.SECD. It seems the animal of the week is a ferret.
You can check whether this update has been installed by opening System Information via About This Mac, and selecting the Installations item under Software.
This update is now available for Sequoia only via iCloud. If you want to check that manually, use the Terminal commandsudo xprotect check
then entering your admin password. If that returns version 5286 but your Mac still has an older version installed, you can force the update usingsudo xprotect update
Currently, this new version isn’t available via Software Update, softwareupdate
, or in SilentKnight, and is only available via iCloud connections to Macs running Sequoia.
I hope that you enjoyed Saturday’s Mac Riddles, episode 292. Here are my solutions to them.
Paul’s (Paul Brainerd was the founder of Aldus Corporation, its developer) creator (a maker) of an errand boy (a page) now forty years old (released in July 1985) but dead for twenty-four of them (it was bought by competitor Adobe and killed in 2001, in favour of InDesign).
Drawing without aid (freehand) came three years later (it was released in 1988), only to suffer the same fate (although it escaped Adobe until 2005, it was then killed in favour of Illustrator).
Lovers’ quarrel (a tiff) over thousands of incompatible file formats (a popular joke explanation of its name, which actually comes from Tag Image File Format) from an Italian printer (TIFF was originally developed by Aldus Corporation, which was named after the famous Italian printer Aldus Pius Manutius, c 1449/52-1515).
I look forward to your putting alternative cases.
One of the better trends in recent versions of macOS has been to make apps more self-contained, and to disperse their dependent files less. It’s not that long ago that any app of substance needed its own folder in either of the Library/Application Support folders, in various more obscure locations, as well as in the user’s ~/Library/Preferences folder. When you migrate from one Mac to the next, this leads to inherited clutter that requires painstaking manual clean-up.
This in turn has led to a flourishing industry hiring out housekeeping services and other utilities that attempt to perform the clean uninstall that is surely the responsibility of any app that scatters its files to the four corners of your Mac. After all, if it doesn’t know what files it installs, it shouldn’t be offered to the public.
A few remaining apps that still come as Installer packages may offer uninstaller scripts, and macOS now automatically removes any system extensions installed by an app when that app is removed. LaunchAgents, LaunchDaemons and other helper executables that used to require installation of their property lists into Library folders can now retain them within the app bundle. Containerisation of sandboxed and some other apps has the useful side-effect that it can provide clues as to what might need to be removed with an app, but in other respects can confuse instead of clarifying.
Apple’s motivation for these changes in macOS is more about improving security, and less about convenience to the user. Containers are the sandbox within which an app is constrained. Keeping more of an app’s components inside its bundle gives them the protection afforded by the CDHashes in its signature, and verification against those obtained during notarization, making it far harder for those components to be hijacked maliciously.
Starting from the premise that an app developer should know full well what their app does install and where those files are to be found, wouldn’t it be best for that app to provide a list? Perhaps a property list of the app’s manifest of files it installs outside its bundle might be a workable solution? Then a user who wants to completely uninstall an app can use that list to hunt and remove stragglers like a private log file tucked away in ~/Library/Logs. This would also facilitate the task of cleaning up using a housekeeping utility or app remover.
A simple example might be my app Mints. In normal use, the only file it installs outside the app bundle is that containing its preference settings, in ~/Library/Preferences/co.eclecticlight.Mints.plist. However, it does have a feature that will create a folder of test files inside ~/MintsSpotlightTest4syzFiles, and provides a button to delete that folder and its contents.
A manifest property list might provide two entries to account for those:
A person or app wanting to clean up after the removal of Mints should then delete the first and, if the second is present, should delete that too. As Mints isn’t sandboxed, no folder should be created in ~/Library/Containers, and it doesn’t write private logs in ~/Library/Logs either, so there’s no point in checking for its mortal remains in either of those locations.
Almost every app already has a Resources folder inside its app bundle, which should be a suitable place to save this manifest.plist file, although as that is deleted when the app is removed, it would perhaps be most helpful for those manifests to be copied into a separate folder in /Library for reference and later use once the app has gone.
I’d be interested to read your opinions, and suggestions for better alternatives.
Here are this weekend’s Mac riddles to entertain you through family time, shopping and recreation.
1: Paul’s creator of an errand boy now forty years old but dead for twenty-four of them.
2: Drawing without aid came three years later, only to suffer the same fate.
3: Lovers’ quarrel over thousands of incompatible file formats from an Italian printer.
To help you cross-check your solutions, or confuse you further, there’s a common factor between them.
I’ll post my solutions first thing on Monday morning.
Please don’t post your solutions as comments here: it spoils it for others.
It always happens when you’re in a rush to eject an external disk, or when you’re trying to run First Aid in Disk Utility: you’re told that a volume or disk can’t be unmounted or ejected because “one or more programs may be using it” or similar excuses. Not that macOS gives you the slightest idea as to which programs are. This article looks at what you can do next.
Whatever you do, don’t just pull the cable of an external disk: not only will your Mac complain, but you could end up damaging the contents of its files, or even the file system on that volume.
This is often offered as an option in the dialog, and if it’s available it’s worth trying if you don’t have the time to carry out a more orderly unmounting. macOS should then identify the processes that are accessing the disk, and terminate their access. That can take time, and seldom appears successful even if you allow a minute or two for it to complete. However, when it does work, it’s likely to be the simplest solution.
In Disk Utility, this is usually the best option, and if necessary you can try several times. You should also double-check that you’re trying the correct volume: if it’s one of the current boot volume group, System or Data, then you’re better off running First Aid in Recovery mode anyway.
When all else fails, the next step is to identify what’s using files on that volume or disk, so you can decide whether to force quit that process in Activity Monitor. Don’t do that blindly, as you could end up killing processes that your Mac does need to run.
To discover which files are open on any volume, use the commandsudo lsof /Volumes/myVol
where myVol is the name of the volume. If you’re unsure how to enter a volume name containing a space, locate it in the Finder’s listing for your Mac, and drag and drop that into Terminal. Once you’ve entered that, type your admin user password at the prompt, and you’ll see a list with entries likemds 367 root 33r DIR 1,28 192 2 /Volumes/External2
mds 367 root 35u REG 1,28 0 87 /Volumes/External2/.Spotlight-V100/Store-V2/3DD5246F-9AEA-4F0E-9A53-AA63783C3C70/journalExclusion
which are the files and directories open on that volume. This needs to be run using sudo
, as otherwise you won’t see any files that are opened by processes running as root, which are most often the culprits. Some recommend using grep
, but that shouldn’t be necessary, as lsof
is capable of its own filtering.
The information given about each open file contains, from the left:
mds
, the Spotlight metadata server;If you’d rather use an app, then my personal favourite is Sloth from here. Although it’s not notarized, it does everything that I’d want in terms of matching lsof
or fuser
‘s features. Most importantly, if you click its padlock at the lower right and authenticate, it will show all processes running as root.
If your Mac is running Sequoia, getting Sloth through its security checks is a bit of pain (and intentionally so). You can do this the ‘official way’ by downloading the app, unZipping it, and moving it into your Applications folder. When you try to run it, that will be denied and you’ll end up having to give it your individual authorisation in Privacy & Security settings. Alternatively, you can run the risk and cheat by stripping the com.apple.quarantine extended attribute from its Zip file first, so it doesn’t undergo full first run checks. Although that may be simpler, it also forces you to place complete trust in the app you’ve downloaded.
Once you know which processes are accessing files on that volume, you can decide whether to open the listing in one of Activity Monitor’s views, such as CPU or Disk, select that process, and click on the Stop tool to kill it.
When you’ve decided that the only way to do what you need is inside a virtual machine (VM), working out how to accomplish that might appear challenging. Because all macOS virtualisers on Apple silicon Macs use features built into macOS, they’re also similar in use. This article explains how to get started.
VMs for macOS on Apple silicon Macs consist of a bundle folder, containing key files often named:
Some virtualisers also store a property list or other files such as config.pvs and VmInfo.pvi containing settings for the VM.
Even a small, basic VM requires more than 40 GB of storage space. If it’s kept in a location that’s backed up by Time Machine or a third-party equivalent, it may quickly fill those backups. At the very least, a folder containing VMs should be excluded from normal backups, and perhaps copied to separate storage once a day.
VMs will also be included in any snapshots made of that volume. To avoid that penalty, they should be stored in their own volume that doesn’t have snapshots made of it, as well as being excluded from normal backups.
VMs are built from the complete image of an Apple silicon Mac boot disk provided in an IPSW file, currently around 16.5 GB but significantly smaller in older versions. Those should only be downloaded from Apple’s servers. Several sites provide links to those, including Mr. Macintosh, who also includes most beta-releases.
Most virtualisers also give direct access to the current release of macOS in its IPSW file, as that’s a feature provided by the API.
In this phase, the VM bundle folder is created with a unique MachineIdentifier, and the contents of the IPSW file are installed into the disk image. The latter is usually fastest from a file in the same volume, and some virtualisers follow Apple’s example of moving the IPSW inside the bundle to perform that, rather than copying it there and deleting that copy once the VM has been created.
The only control for this stage is to set the size of the disk image in Disk.img. As that’s stored as a sparse file, it’s wise not to skimp and end up with a VM that can’t update itself, for example. For recent macOS, a prudent minimum is 50 GB, and 100 GB gives ample room for the VM to contain additional apps, and for a functional Home folder.
At the end of this phase, the new VM is bootable, and ready for its first run, during which macOS will be personalised and the VM configured. Some virtualisers proceed directly to that first run, in which case their initial settings for it will then be used to run macOS.
This follows the same sequence as the first run on a brand new Mac that has just been unboxed, starting with language and keyboard localisation, passing through migration and Apple Account, and ending in the running VM.
Migration during initial setup isn’t possible, as the VM has no access to any host storage, and if run later faces similar challenges. Although you may enable Location Services, VMs appear unable to use them, possibly because of their inability to use Wi-Fi settings. One of the first checks to perform in a new VM is to switch Time Zone selection to manual and set the correct zone.
Apple Account and iCloud access only work in Sequoia guests running on Sequoia hosts, and will fail for all other combinations.
As with other runs of a VM, you get to choose how many virtual CPU cores it will use, how much memory it will be allocated, display, network and other settings. Those aren’t built into the VM in the way that its size is, although some virtualisers let you save a VM’s settings as its default.
Traditionally, like Macs, VMs have been quitted by shutting them down, but most virtualisers also let you close a VM in a suspended state.
All virtualisers should offer you a free choice of the number of virtual CPU cores, memory, network connections, and possibly display options. GPU access can’t be controlled directly, though.
Although it’s possible to run a VM in just a single CPU core, that’s slow and incapable of anything useful. In practice a minimum of 3 is wise, and using substantial apps is better with 4-6. Those must be balanced against the need for cores by the host. Similar considerations apply to memory, where 8 GB is barely sufficient, and 16 GB preferable.
Virtualisers should offer bridged networking, giving the VM its own IP address rather than sharing the host’s using NAT.
VMs running older versions of macOS have more limited features. One simple way to enrich a VM is to run it through Screen Sharing, either locally on the same Mac, or if you prefer over a local network. This can add features such as:
The only time that you should never use this is when you’re going to update macOS in the VM. That will disconnect Screen Sharing and could lead to problems during or after the update.
One of the common purposes of VMs is to run quick tests whose effects you don’t want to be permanent. One method of doing this is to maintain a collection of VMs with different versions of macOS installed. When you want to test one out, duplicate that VM in the Finder (Command-D), run the copy, then when you’ve finished with it, delete it. Because duplicating the VM in the same volume results in file cloning, this is almost instant, and uses relatively little real storage space, while preserving the original.
This is also a useful technique when you want to test a potentially destructive process, as you can make as many duplicates of the original as you want. The only caution is that duplicated VMs have identical MachineIdentifiers, and you should never try running two VMs with the same MachineIdentifier at the same time.
One excellent reason for using a VM is to study potentially malicious software, and defences against it. It’s relatively easy to lock a VM down and ensure it’s completely isolated from the host, except in the limited data exchanged between its Virtio drivers.
To prepare a VM for use in isolation, start with a regular VM built using the version of macOS to be used in tests. Duplicate that, and running it with shared folders, load it up with any software to be used during the tests. Shut the VM down, and open it in Recovery mode to change its security, disable SIP and customise it in any other way you require, then shut it down again.
Open that VM using ViableS, deciding then whether you want it to have a network connection. That VM is then running in a sandbox, with no shared folders, and as isolated from the host as possible.
Once you have set a VM up, you may want to run it using the same settings and with a minimum of fuss. My free Vimy runs VMs configured using Viable from a double-click, with a minimum of overhead; Vimy itself uses less than 50 MB of memory. That uses a property list containing settings such as the number of virtual CPU cores and memory, saved inside the VM bundle folder.
Virtualisation on this site.
I hope that you enjoyed Saturday’s Mac Riddles, episode 291. Here are my solutions to them.
Lead-free (although a ‘pencil’ it has no lead) stylus (what it is) for early pros (announced on 9 September 2015 with the first iPad Pro, and works with early Pro models) would have been ideal for Acontius (who wrote an oath to bind Cydippe in marriage, see this article).
Eleventh (OS X 10.11, released 30 September 2015) vertical granite wall (named after this 1 km wall of rock in Yosemite) first took 47 days to climb, now less than four hours (it took Warren Harding 47 days to climb it first in 1958, but can now be climbed freestyle in under 4 hours).
Rootless (an alternative name for System Integrity Protection), I came in 2015 (introduced in El Capitan) and still won’t go without csrutil (the command tool used to disable SIP).
I look forward to your putting alternative cases.