Skip to content

Conversation

@shawntz
Copy link

@shawntz shawntz commented Sep 2, 2025

This PR adds seamless Apple Studio Display webcam support to Omarchy with a simple Thunderbolt-only setup - no special cables required @dhh πŸ‘€ 🀞!

βœ… Key Features

  • πŸ”Œ Thunderbolt-Only Setup: Works with ONLY the Apple Studio Display's included Thunderbolt cable
  • πŸŽ₯ 1080p Webcam Activation: Configures the 12MP Ultra Wide camera at optimal 1080p 30fps MJPEG quality
  • πŸ”Š Smart Audio Switching: Automatically switches audio between Studio Display and laptop when docking/undocking
  • βš™οΈ Omarchy Menu Integration: Added to Setup > Video menu for easy access and one-click setup + enablement
  • βœ… Tested Hardware: Framework Laptop 13 with AMD 7040 Series

πŸ›  Changes Made

  1. New Script: bin/omarchy-setup-apple-studio-display-webcam

    • Installs bolt package for Thunderbolt management
    • Configures webcam with optimal v4l2 settings
    • Handles audio device switching automatically
  2. Menu Integration: Updated bin/omarchy-menu

    • Added "Video" option to the Omarchy Setup menu
    • Created show_setup_video_menu() function
    • Clean navigation: Setup > Video > 🍎 Studio Webcam

🎯 Why This Matters

This integration provides a one-click solution that works straight out of the box with just the Thunderbolt cable that comes with the display.

πŸ§ͺ Testing

  • Navigation works seamlessly through Omarchy menu system
  • Script handles missing dependencies gracefully
  • Audio switching works for both docked and undocked states
  • Webcam settings persist and work with all video apps (Zoom, Teams, Meet, etc.)

🌟 Omarchy menu navigation path: Main Menu β†’ Setup β†’ Video β†’ 🍎 Studio Webcam

πŸ“’ Acknowledgements

Shout out to @mikeytag for the invaluable code supplied on the Framework Community Forum, here: https://community.frame.work/t/apple-studio-display-any-experiences/34702

…pport

Adds `omarchy-setup-apple-studio-display-webcam` script that configures
Apple Studio Display webcam for optimal 1080p video quality using only
the included Thunderbolt cable. No special DisplayPort + USB-A adapters
required.

Key features:
  - Activates 12MP Ultra Wide camera at 1080p 30fps MJPEG
  - Auto-configures exposure, white balance, and positioning
  - Switches audio between Studio Display and laptop automatically
  - Integrates with Omarchy's Setup > Video menu for easy access
  - Tested on Framework Laptop 13 with AMD 7040 Series
@mikeytag
Copy link

mikeytag commented Sep 2, 2025

Love this! I wasn't sure how to include it in Omarchy. Thank you @shawntz!

@NixBiks
Copy link

NixBiks commented Sep 4, 2025

Great @shawntz ! Does the Framework 13 also get powered by the Thunderbolt cable?

@shawntz
Copy link
Author

shawntz commented Sep 4, 2025

@NixBiks yes indeed! ⚑⚑

@NixBiks
Copy link

NixBiks commented Sep 25, 2025

Did you have any issues with your Apple Studio Display flickering when you make changes to your windows? It happens all the time for me when connecting to my Framework 13 AMD Ryzen AI 9 HX 370. I can't run youtube in a browser for instance then the monitor goes to black. Running hyprctl monitors all also shows the studio display twice.

@shawntz
Copy link
Author

shawntz commented Sep 25, 2025

@NixBiks -- I haven't encountered the flickering issue, in fact I didn't have any performance issues. I'm on the Ryzen 7 model. What slot in your framework are you using the USB-C expansion card in? I'm sure you've seen this, but in case not, there's a schematic on the framework docs that shows which of the 4 slots are high power delivery. I wonder if this issue is resolved when using a high power delivery slot and/or trying out a different USB-C expansion card.

As for the duplicate monitor listing in hyprctl, I believe this is a known issue but not sure if/how it makes a difference.

Curious to hear whether any of these changes make a different (or not).

@NixBiks
Copy link

NixBiks commented Sep 26, 2025

@NixBiks -- I haven't encountered the flickering issue, in fact I didn't have any performance issues. I'm on the Ryzen 7 model. What slot in your framework are you using the USB-C expansion card in? I'm sure you've seen this, but in case not, there's a schematic on the framework docs that shows which of the 4 slots are high power delivery. I wonder if this issue is resolved when using a high power delivery slot and/or trying out a different USB-C expansion card.

As for the duplicate monitor listing in hyprctl, I believe this is a known issue but not sure if/how it makes a difference.

Curious to hear whether any of these changes make a different (or not).

Unfortunately not. It connected fine but as soon as I tried to open windows then it started to go into a connect/disconnect loop. It's a brand new Framework 13 AMD Ryzen AI 9 HX 370. And in fact; now it can't connect at all any longer. I've reached out to customer support.

And just to be clear - it is unrelated to your implementation here.

@shawntz
Copy link
Author

shawntz commented Oct 5, 2025

@NixBiks -- I haven't encountered the flickering issue, in fact I didn't have any performance issues. I'm on the Ryzen 7 model. What slot in your framework are you using the USB-C expansion card in? I'm sure you've seen this, but in case not, there's a schematic on the framework docs that shows which of the 4 slots are high power delivery. I wonder if this issue is resolved when using a high power delivery slot and/or trying out a different USB-C expansion card.
As for the duplicate monitor listing in hyprctl, I believe this is a known issue but not sure if/how it makes a difference.
Curious to hear whether any of these changes make a different (or not).

Unfortunately not. It connected fine but as soon as I tried to open windows then it started to go into a connect/disconnect loop. It's a brand new Framework 13 AMD Ryzen AI 9 HX 370. And in fact; now it can't connect at all any longer. I've reached out to customer support.

And just to be clear - it is unrelated to your implementation here.

Sorry to hear about this -- I hope this ends up being a simple fix from framework support πŸ™

@NixBiks
Copy link

NixBiks commented Oct 5, 2025

It actually stopped working with my MacBook Pro M3 as well. Not sure if the Framework caused any issues or if it was just a crazy coincidence that it started happening just when I started using my FW13. Monitor sent off for repair/replacement after numerous hours of debugging - at least my insurance covers it.

I'll give an update when I have a working Studio Display to try out again.

@shawntz
Copy link
Author

shawntz commented Oct 5, 2025

Wow that's wild -- definitely sounds like Apple's problem to resolve. Glad you had Apple Care to cover. I've been regularly swapping my Studio Display between my Mac Studio, MacBook Pro, and Framework without friction, so I hope your situation was a fluke and that things run smoothly when your display returns. Keep me posted -- curious to hear how things turn out @NixBiks ✌️

@NixBiks
Copy link

NixBiks commented Oct 5, 2025

That's giving me hope. Wasn't apple care - not that it matters.

It was the weirdest thing. The display worked with a Mac Studio but not with two MacBook Pros or the FW13. And it worked sometimes with my iPhone.

My MacBook Pro worked with another Studio Display though so yeah. I'll give an update later and stop bloating this PR anymore πŸ˜†

@shawntz
Copy link
Author

shawntz commented Oct 25, 2025

Hey @NixBiks -- any updates on this? Hope your Studio Display is working again! πŸ™

@NixBiks
Copy link

NixBiks commented Oct 25, 2025

Hey @NixBiks -- any updates on this? Hope your Studio Display is working again! πŸ™

Yesterday it was concluded totally damaged unfortunately. I decided to go with a Dell Ultrawide instead this time.

@shawntz
Copy link
Author

shawntz commented Oct 27, 2025

Wow - that's crazy; so sorry to hear about that. Hope the Dell Ultrawide treats you better!

@brupm
Copy link

brupm commented Oct 28, 2025

@shawntz would love to nominate this branch to get merged, I'm currently unable to use the Studio Display web cam.

@dhh
Copy link
Member

dhh commented Oct 28, 2025

I'd like to get a comprehensive solution wrapped up that isn't just about the studio display, but all thunderbolt Apple setups: #934

@shawntz
Copy link
Author

shawntz commented Oct 28, 2025

@shawntz would love to nominate this branch to get merged, I'm currently unable to use the Studio Display web cam.

@brupm -- thanks! i'll do some additional testing later to see what's going on with the studio display web cam and get back to you.

@shawntz
Copy link
Author

shawntz commented Oct 28, 2025

I'd like to get a comprehensive solution wrapped up that isn't just about the studio display, but all thunderbolt Apple setups: #934

I can try to adjust to be more generic / applicable to thunderbolt Apple setups; currently i have access to test on

  • Apple Studio Display
  • Apple 27-inch Thunderbolt Display (2016 model)

but don't have access to an Apple Pro Display XDR.

Are you suggesting an extended Omarchy menu option where the user can just enable "Apple Thunderbolt Displays", which then handles the necessary tooling required for the above accessories?

I can also try and tackle some of the more general issues in #934 , but also want to avoid going down a rabbit hole of creating solutions for very specific edge cases. @dhh, if there's a specific todo-list of must haves vs. nice to haves that you envisage being part of this menu, i'd be happy to pour some effort into a comprehensive solution that we could test across our array of Apple displays. LMK, thx!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants