Make MacOS 26 consistently bad (unironically)

🚀 Read this awesome post from Hacker News 📖

📂 **Category**:

✅ **What You’ll Learn**:

Alongside the various bugs you get, one of the issues of upgrading to MacOS 26 is that it has one of the most notorious inconsistency issues in windows corners. I’m not sure what exactly pushes product designers to like the excessive roundness1. One of the ugliest roundness examples I’ve ever seen is the current one in the YouTube UI design. I believe that UI design is the most influential field ever since designers just try to follow whatever big companies do (in fact I see this a lot in my work, when two designers are having an argument, one of them would resolve it to, let’s see how apple draw that button), which means that we are probably going to see this ugly effect elsewhere very soon.

../i/2026-03-27_19-51-20_screenshot.png Anyway, many I had to upgrade recently to MacOS 26 too. And I found the edges ugly, like everyone else did. However, what’s even uglier, is the inconsistency. Many people try to resolve this by disabling MacOS system integrity, which results in making them possibly vulnerable2. Arguable, since you just loose security over /root, which is not a big deal if someone already gained access to your machine, at least for me.. The reason why you need to disable SIP, is that to edit the dynamic libraries that system apps like Safari (which has crazy bad corners) use, you need to edit under the root. To me though, I don’t find the corners so bad, but I find the inconsistency very annoying. So I think a better solution to this is; instead of making everything roundless, make everything more rounded. I forked a solution that makes things roundless to modify it to have my approach. It’s simply as follows:

#import 
#import 

static CGFloat kDesiredCornerRadius = 23.0;

static double swizzled_cornerRadius(id self, SEL _cmd) 
    // Only apply to third-party GUI apps; skip CLI tools, daemons, and Apple system apps
    NSString *bid = [[NSBundle mainBundle] bundleIdentifier];
    if (!bid 

static double swizzled_getCachedCornerRadius(id self, SEL _cmd) 💬

static CGSize swizzled_topCornerSize(id self, SEL _cmd)  [bid hasPrefix:@"com.apple."]) return;

    Class cls = NSClassFromString(@"NSThemeFrame");
    if (!cls) return;

    Method m1 = class_getInstanceMethod(cls, @selector(_cornerRadius));
    if (m1) method_setImplementation(m1, (IMP)swizzled_cornerRadius);

    Method m2 = class_getInstanceMethod(cls, @selector(_getCachedWindowCornerRadius));
    if (m2) method_setImplementation(m2, (IMP)swizzled_getCachedCornerRadius);

    Method m3 = class_getInstanceMethod(cls, @selector(_topCornerSize));
    if (m3) method_setImplementation(m3, (IMP)swizzled_topCornerSize);

    Method m4 = class_getInstanceMethod(cls, @selector(_bottomCornerSize));
    if (m4) method_setImplementation(m4, (IMP)swizzled_bottomCornerSize);


static CGSize swizzled_bottomCornerSize(id self, SEL _cmd) 

__attribute__((constructor))
static void init(void)  [bid hasPrefix:@"com.apple."]) return;

    Class cls = NSClassFromString(@"NSThemeFrame");
    if (!cls) return;

    Method m1 = class_getInstanceMethod(cls, @selector(_cornerRadius));
    if (m1) method_setImplementation(m1, (IMP)swizzled_cornerRadius);

    Method m2 = class_getInstanceMethod(cls, @selector(_getCachedWindowCornerRadius));
    if (m2) method_setImplementation(m2, (IMP)swizzled_getCachedCornerRadius);

    Method m3 = class_getInstanceMethod(cls, @selector(_topCornerSize));
    if (m3) method_setImplementation(m3, (IMP)swizzled_topCornerSize);

    Method m4 = class_getInstanceMethod(cls, @selector(_bottomCornerSize));
    if (m4) method_setImplementation(m4, (IMP)swizzled_bottomCornerSize);

Then compile, sign, and store:

clang -arch arm64e -arch x86_64 -dynamiclib -framework AppKit \
  -o SafariCornerTweak.dylib \
  SafariCornerTweak.m

sudo mkdir -p /usr/local/lib/
sudo cp SafariCornerTweak.dylib /usr/local/lib/
sudo codesign -f -s - /usr/local/lib/SafariCornerTweak.dylib
cp com.local.dyld-inject.plist ~/Library/LaunchAgents/com.local.dyld-inject.plist

You can have this plist too to load it in once your computer loads:


  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 version="1.0">

  Label
  com.local.dyld-inject
  ProgramArguments
  
    launchctl
    setenv
    DYLD_INSERT_LIBRARIES
    /usr/local/lib/SafariCornerTweak.dylib
  
  RunAtLoad
  

Load it:

launchctl load ~/Library/LaunchAgents/com.local.dyld-inject.plist

Now at least everything is consistently bad. #Programming

Footnotes

⚡ **What’s your take?**
Share your thoughts in the comments below!

#️⃣ **#MacOS #consistently #bad #unironically**

🕒 **Posted on**: 1774639868

🌟 **Want more?** Click here for more info! 🌟

By

Leave a Reply

Your email address will not be published. Required fields are marked *