惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
月光博客
月光博客
AI
AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
CXSECURITY Database RSS Feed - CXSecurity.com
WordPress大学
WordPress大学
GbyAI
GbyAI
L
Lohrmann on Cybersecurity
O
OpenAI News
Schneier on Security
Schneier on Security
P
Palo Alto Networks Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
W
WeLiveSecurity
L
LINUX DO - 最新话题
人人都是产品经理
人人都是产品经理
S
Security Affairs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
Arctic Wolf
Recorded Future
Recorded Future
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
TaoSecurity Blog
TaoSecurity Blog
C
Check Point Blog
Scott Helme
Scott Helme
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Vercel News
Vercel News
The Hacker News
The Hacker News
Y
Y Combinator Blog
Latest news
Latest news
SecWiki News
SecWiki News
Hugging Face - Blog
Hugging Face - Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
Webroot Blog
Webroot Blog
Google DeepMind News
Google DeepMind News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
Cisco Blogs
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题

Hacker News: Best

madhadron - The seven programming ur-languages GitHub - smol-machines/smolvm: Tool to build & run portable, lightweight, self-contained virtual machines. I Measured Claude 4.7's New Tokenizer. Here's What It Costs You. Introducing Claude Design by Anthropic Labs It Is Time to Ban the Sale of Precise Geolocation The creative software industry has declared war on Adobe Isaac Asimov: The Last Question Newly unsealed records reveal Amazon’s price-fixing tactics, California attorney general claims Clojure - Documentary Android CLI and skills: Build Android apps 3x faster using any agent Qwen3.6-35B-A3B on my laptop drew me a better pelican than Claude Opus 4.7 Codex for almost everything Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? Virginia Bans Sale of Geolocation Data YouTube now lets you turn off Shorts Burgers | マクドナルド公式 ChatGPT for Excel Ask HN: Who is using OpenClaw? Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Open Source Isn't Dead. The Future of Everything is Lies, I Guess: New Jobs Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests IPv6 – Google Your Backpack Got Worse On Purpose Good sleep, good learning, good life Fixing a 20-year-old bug in Enlightenment E16. Does Gas Town 'steal' usage from users' LLM credits & paid services to improve itself? Tell HN: Fiverr left customer files public and searchable Cybersecurity Looks Like Proof of Work Now Getting the Flock out Release OpenSSL 4.0.0 · openssl/openssl Internet será irrespirable los días de fútbol y otros deportes. Telefónica extiende los bloqueos a Champions, tenis y golf. Automate work with routines - Claude Code Docs The Future of Everything is Lies, I Guess: Work Thousands of rare concert recordings are landing on the Internet Archive — listen now What is jj and why should I care? Backblaze has quietly stopped backing up your data Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Codex Hacked a Samsung TV The Future of Everything is Lies, I Guess: Safety GitHub - sterlingcrispin/nothing-ever-happens: Polymarket bot that buys "No" on all non-sports markets. For entertainment only, mostly a meme. Make tmux Pretty and Usable - Ham Vocke Microsoft isn't removing Copilot from Windows 11, it's just renaming it Servo is now available on crates.io - Servo aims to empower developers with a lightweight, high-performance alternative for embedding web technologies in applications. We May Be Living Through the Most Consequential Hundred Days in Cyber History, and Almost Nobody Has Noticed All elementary functions from a single binary operator 奈拜提耶市 Seven countries now generate 100% of their electricity from renewable energy Pro Max 5x Quota Exhausted in 1.5 Hours Despite Moderate Usage Tell HN: docker pull fails in spain due to football cloudflare block Bring Back Idiomatic Design @adlrocha - How the "AI Loser" may end up winning Apple update turns Czech mate for locked-out iPhone user Cache TTL silently regressed from 1h to 5m around early March 2026, causing quota and cost inflation The peril of laziness lost AI Will Be Met With Violence, and Nothing Good Will Come of It Center for Responsible, Decentralized Intelligence at Berkeley The disturbing white paper Red Hat is trying to erase from the internet – OSnews The Future of Everything is Lies, I Guess: Annoyances 447 Terabytes per Square Centimetre at Zero Retention Energy: Non-Volatile Memory at the Atomic Scale on Fluorographane Show HN: Pardonned.com – A searchable database of US Pardons 20 Years on AWS and Never Not My Job Artemis II crew splashes down near San Diego after historic moon mission Molotov Cocktail Is Hurled at Home of Sam Altman, OpenAI’s CEO France to ditch Windows for Linux to reduce reliance on US tech On filing the corners off my MacBooks Installing every* Firefox extension Chimpanzees in Uganda locked in vicious 'civil war', say researchers linux/Documentation/process/coding-assistants.rst at master · torvalds/linux GitHub - callumlocke/json-formatter: Makes JSON easy to read. A compelling title that is cryptic enough to get you to take action on it GitHub - Keychron/Keychron-Keyboards-Hardware-Design: Industrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms. [ANNOUNCE] WireGuardNT v0.11 and WireGuard for Windows v0.6 Released 1D-Chess Helium Is Hard to Replace FBI used iPhone notification data to retrieve deleted Signal messages Microsoft suspends dev accounts for high-profile open source projects Why you can’t trust Privacy & Security Serenity Forge (@serenityforge.com) A new trick brings stability to quantum operations OpenAI Backs Bill That Would Limit Liability for AI-Enabled Mass Deaths or Financial Disasters Netflix Prices Went Up Again – I Bought a DVD Player Instead DOJ Wants to Scrap Watergate-Era Rule That Makes Presidential Records Public EFF is Leaving X How NASA built Artemis II’s fault-tolerant computer Meta removes ads for social media addiction litigation How Pizza Tycoon simulated traffic on a 25 MHz CPU Claude mixes up who said what, and that's not OK Reallocating $100/Month Claude Code spend to Zed and OpenRouter Help Keep Thunderbird Alive! Why Are Flock Employees Watching Our Children? The Pentagon Threatened Pope Leo XIV’s Ambassador With the Avignon Papacy Fragments: April 2 Native Instant Space Switching on MacOS Bitcoin miners are losing $19,000 on every BTC produced as difficulty drops 7.8% God sleeps in the minerals Apple Silicon and Virtual Machines: Beating the 2 VM Limit
macOS Needs Its Grid Back
ranebo · 2026-06-01 · via Hacker News: Best

Two decades ago I had a better Mac desktop experience than I have today. I only had a single low res (by todays standards) screen, yet I felt like Hugh Jackman in Swordfish - deftly navigating more than nine displays without thinking, muscle and spatial memory working seamlessly together.

TLDR; I built an app to return macOS spaces to its Pre-Lion Grid-enabled Glory. Read on for the increasingly rare experience of an actual human dropping a bit of nostalgia, the thinking behind why make this and some issues encountered along the way. Or just download it here

2006

Around the time I was experimenting with Japanese toilets, I was also experimenting with desktop operating systems. I had spent most of my developer career up to that point using Windows but had begun trying desktop Linux and then macOS after a popular presentation enticed me enough to buy a Mac just so I could start using TextMate.

Textmate (and its revolutionary text-snippets) were the catalyst to my migration but funnily enough I don’t remember continuing to use it for very long. Other editors quickly caught up but I stayed with macOS. My career also moved into iOS development so it wasn’t really a choice after that. In any case one thing from that era did stay with me long term.

OSX 10.5 Leopard (image found on Internet Archive) Spaces (image found on OSXDaily archives)

macOS Leopard Spaces

The big OS release in 2006 was macOS 10.5 Leopard. It had a bunch of feature releases, the most notable probably being Time Machine. But 20 years on I still don’t use nor miss Time Machine. I miss what John Sciracusa’s epic review labelled a grab bag item. I miss Spaces.

Spaces introduced virtual desktops to macOS and allowed you to arrange them in a customisable grid. Anyone who has used virtual desktops in this way knows the benefit. It allows you to treat them like actual displays in spatial locations. I always favoured a 3x3 grid and treated it like I had 9 screens. Centre screen was my web browser, the screen above my web editor so I could flip back and forth with a single key press. Top left was Xcode, the screen below the iOS simulator. The other screens had other allocated applications/purposes that I don’t exactly remember (mail/itunes/chat etc…) but the benefits were obvious, I could move from one screen to another without thinking, it became muscle memory like I was looking at actual separate physical displays.

I found this grid layout so useful I ended up incorporating it into other applications I built, the grid of 16 sequencing screens you could navigate in my Drum Machine EasyBeats was directly inspired by Apple’s screens.

2011 macOS Lion

With the release of macOS Lion, Apple introduced Mission Control, its new take on virtual desktops that inexplicably restricted them to a horizontal line only. I remember thinking at first that I just hadn’t seen the setting somewhere, Apple wouldn’t just completely change how I used my computer right? right?

Wrong. So Wrong.

A single row was/is such a step backwards. If I wanted to get to a particular screen via the keyboard I now had to endure sliding horizontally the whole way. If I remembered the direct keyboard shortcut I could jump directly, but did I leave my browser on screen 7 or 8? This new layout completely destroyed any hope I had of maintaining spatial memory.

I wasn’t alone in my frustration. Alternative solutions popped up but the best of them Total Spaces caused me weird slowdowns and relied on modifying the system dock which was a no go once that eventually required bypassing system integrity protection.

Over time I gave up, and learned to deal with it. An iOS developer had little choice in the matter, and later when I moved onto a new chapter with my current employer I had already bought the extra physical screens and well… just dealt with it :sadface:.

But but window managers…

Right now I know some readers are just shouting at their screen “Learn Yabai/Aerospace/whatever”. I’ve tried them all and come away realising they are not for me. I think that its that I don’t particularly like “windows on a desktop” as a concept. It feels like shuffling between papers on a desk, sure the papers can be organised neatly, but I really just want different workstations where everything is as I left it. I like macOS “fullscreen” apps, I sometimes put them in split mode but I really like the concept of dedicated areas for one task only.

A Solution Appears

Any way like I said, I had learnt to deal with it and merely occasionally complained to my colleagues about maybe moving back to Linux with my next work machine. That was until a couple of months ago, when I saw that someone had managed to remove the animation from macOS when you move from one space to another, without needing system edits. This animation clearly annoyed some people but never really bothered me. However as soon as I saw a space move without an animation I instantly realised I could solve my complaints.

Passion still has a place?

A common discussion with my tech career aligned friends is, in this new age of LLM code generation, does good software have value? If anyone can create software by simply describing it, does it (or will it) make sense to try to make paid software anymore? I think so. I think there is still real value in someone really refining something to the best it can be, making design decisions about how something should behave. I no longer make my living as an indie developer, but I did for a long time and I’m not sure much of what set a good app apart from the pack has changed.

Take a look at any of those knockoff games that flood app stores. Most of the time the problem with them isn’t that they aren’t original or too simple, the problem is the person or team that built them doesn’t care. Caring is what makes the creator “waste” time hunting down things that don’t quite feel right or worry about performance issues most users will never notice.

Anyway I really care about grid based navigation of virtual desktops.

Control aint easy

I like the idea of a lightweight wrapper around the native spaces, with support for desktops or fullscreen apps. Just with a grid to navigate. But there is a reason pretty much all solutions that controlled native spaces died out. macOS keeps most of the mission control apis locked down. Its not simply a matter of calling a documented api to add a new desktop, or re-arrange them around. But the ability to move to a space instantly meant I could just create a model that took the single row native spaces and presented them like a grid.

So with the help of an LLM I had an ugly but working prototype within a day. It worked and I was elated, it was instantly something I would have paid money for only days earlier. But after using it for a couple of days, I realised I wanted a much more polished tool.

Build something real

I decided to spend my very limited free time on it. About a month later I got it to the point where I was pretty happy with it. I decided to name it GridLion, for no reason other than it’s a grid and my issues with macOS Lion I mentioned above. I’ve had feedback this name is terrible, which may be right, but I also think that people value names way too much 😂. Anyway I won’t spend a lot of time talking about features implemented etc… as that’s better found over at the app page. Instead I think it is much more interesting to read about roadblocks and unexpected situations.

Permission Hurdles

It’s funny how you only notice how backwards something is when you are trying to make it easier for others.

To allow this app to capture global keyboard shortcuts and navigate spaces it needs the macOS “Accessibility” permission. This is totally reasonable, I wouldn’t want software unbeknownst to me the ability to capture key presses. But the flow of how this is approved could be done better like it is on iOS. In iOS if you request a permission, a prompt appears and asks for that permission, if you approve it enables the permission. Done, pretty easy. On macOS however its a whole song and dance. Request permission, user gets a prompt to open accessibility setting or deny. If they approve, the settings open, then the user has to find the specific little toggle and enable it. Another security prompt then done. Why isn’t this at most 2 prompts?

Things get worse however if you want small previews of your spaces ( I do, and most people will I suspect ). This requires enabling the “Screen and System Audio Recording” permission. Like before a dialog pops up asking for permission, which upon approval then leads to another where again you have to find the correct toggle, switch it on where you have to approve yet another dialog, that this time quits and reopens the app. sigh The worst bit of all is that should the user have made it past all these hurdles, because Gridlion needs to create previews of non visible windows/screens you get the scariest dialog yet:

1 2 3 4 Scary dialog for taking a screenshot

Thats last one is a pretty effective dialog. I even hesitate to click it and I wrote the app 😬. Its a bit excessive for the tiny space preview snapshots but this is what you get when you are trying to do something that should be integrated in the OS. Not much can be done about this except making sure that the app builds trust by never touching the network unless requested (update checking if desired and license key validation).

The app works without that permission, but I think the upgrade is worth it personally.

Without Previews With Previews

No AppStore for you!

I’ve only ever sold software through the iOS AppStore. I started it all up so long ago that I don’t remember the hurdles of setting it up. But since GridLion calls private APIs to get space information it’s not permitted on the AppStore. So I had a quick look around at potential solutions.

My first instinct was just to setup website that used Stripe apis and included GST for Australian customers. I am Australian and had done this for a couple of SAAS projects in the past but after being spoilt with the completely hands off nature of various AppStores I was more interested in that sort of service.

Easy Peasy?

Apparently what I wanted was a Merchant of Record. Someone to handle purchases, taxes and refunds. There seems to be three main companies providing this service: Paddle, GumRoad and Lemon Squeezy. I was attracted to LemonSqueezy due to their License code API. Upon purchase they give the customer a license key, and provide methods for activating/deactivating/validating.

I had naively thought I could just create an account, link my Stripe (I believe Stripe acquired/bought/something them) and be selling in minutes. The process however is a bit more drawn out than that. You need to demonstrate to Lemon Squeezy that you are reputable, selling something of actual value/use. There was a few screen casts sent and some social media account proof needed. It was not a problem for me but I could see someone just starting out encountering some roadblocks here.

In retrospect I fully understand these kind of requirements. It’s easy for someone with good intentions to forget about those out there with bad intentions, and since it’s actually LemonSqueezy that deals with the customer ( at least with regards to payments ) they are right to take measures to protect their reputation.

That said even before approval, you have full access to a test account which meant integrating with the app was really easy to setup and test. This all pretty low risk experiment for me but I must admit that I’m looking forward to seeing if this a viable way to sell software outside the app store (Yes yes I know it was this way for decades 😅).

LLMs don’t care about UX

I use LLMs all the time in my day job. I use them as coding assistants and I build products around their services, but this is the first time I’ve used them on a personal native app project and I found the experience… interesting. LLMs are like super fast ships, you set them off in a certain direction but without a good feedback loop they will go off course. You plot the GPS for Venice but arrive at the Venetian, sure it looks the part, but it’s not what you wanted.

Feedback loops depend on the project. With my day job, I’m generally working with concrete targets, correct api results or large dataset queries. If a plan is well specced, the LLM can often see immediately if a result isn’t as desired, then iterate. The bulk of my time is spent reviewing.

This project has been very different. So much of a user interface is about feel, so for anything user facing a human has to be in the loop. It has me questioning the actual gains here. On the one hand, since I haven’t really been doing native mac/iOS work for nearly 10 years the LLM has certainly helped me, but at the same time I think me 10 years ago would have made the same app in the same amount of time and gained a lot more insight along the way.

It does nearly everything I want

I’m the number one user so I have attempted to add everything I wanted.

  • Easy to navigate and rearrange grid of spaces
  • Fast/Stable with no slowdowns
  • Display specific settings (grid size, hotkeys etc…)

But some things remain. If you want to move a space from one display to another or a window from one space to another there are no reliable apis for that. Fortunately since GridLion works with Mission Control, you can just use mission control to do such tasks but it does niggle at me a little bit I can’t simply do it myself.

Lastly the ability to have certain applications always appear in a grid location on load. This was a feature of the original macOS spaces but perhaps wouldn’t even be useful for me anymore. Setup/Re-arranging is fast and I rarely restart. Also If you look at the screenshots above you’ll see that I often have many VSCode windows open and I’m not sure how that would have been handled. In any case I’ll probably keep working on a solution in the future.

macOS native

All this said, I would be very happy if next macOS they announced grid based spaces returning. This should be an OS feature again. Until then though feel free to give GridLion a try.