Anybody on here’s who’s tried to hook up one or two Apple Studio Displays to the 13-inch?
Can it work at 5K?
So far I only understand that Apple doesn’t do MST at all, hence the question on multiple screens.
Anybody on here’s who’s tried to hook up one or two Apple Studio Displays to the 13-inch?
Can it work at 5K?
So far I only understand that Apple doesn’t do MST at all, hence the question on multiple screens.
Daisy chaining them, even with MST is a stretch, two cables may work. But I don’t have one yet to test.
The 13 inch is able to drive both displays, but your experience with both hooked up while doing anything resource intensive may vary. I’m currently running a 13inch MBP thats reasonably specced from 2020 and it can chug sometimes with 2 of the 5k LG displays plugged in especially while doing renders or scrubbing high def footage in video edits. Using 1 external display and the internal one gives me a far smoother experience regardless of what I’m doing.
EDIT: I am using two seperate ports just to clarify and Apple Support explained that they do not officially support driving two monitors of that size, only the one.
Well I don’t have two to test but I have one. It seems to be working pretty well. And yeah it handles 5k. I’m using Fedora 38. It detected 2 displays for some reason but I disabled the mystery one and works fine. So yeah if you wanna use it with a Studio Display it will definitely work. It also charges it
Don’t mind the radios this is my dad’s desk lol
Cool desk you have there @ThatOneGuy ![]()
btw, no noticeable uptick in resource usage when displaying in 5k?
Thanks! I didn’t really check that to be honest. It didn’t seem like it was struggling at all with it. I didn’t have it plugged in for very long. Based off my short testing though I think it will be fine
Do the peripherals work?
Webcam, speakers and mic?
I’m back to report that the experience is flawless! Everything works with the Framework AMD 13!
I am using bluefin without any rpm-ostree changes.
One thing that I could not change however (but I haven’t poked around yet) is the brightness controls.
Came to say that I also have an Apple Studio Display and it works well (I’m using Fedora 40 with SwayWM). As others have mentioned, for whatever reason, the display appears as two outputs under Sway, so I have to disable one (also worth noting that, at least for me, only one of the outputs actually works, so you have to disable the “right one”). Here is the output of swaymsg -t get_outputs (with some lines omitted for brevity):
Output DP-7 'Apple Computer Inc StudioDisplay 0x...' (focused)
  Current mode: 5120x2880 @ 60.000 Hz
  Power: on
  Position: 0,0
  Scale factor: 2.000000
  Scale filter: nearest
  Subpixel hinting: unknown
  Transform: normal
  Workspace: 4
  Max render time: off
  Adaptive sync: disabled
  Available modes:
    5120x2880 @ 60.000 Hz
    ...
Output eDP-1 'BOE 0x0BCA Unknown'
  Current mode: 2256x1504 @ 59.999 Hz
  Power: on
  Position: 2560,0
  Scale factor: 1.500000
  Scale filter: linear
  Subpixel hinting: unknown
  Transform: normal
  Workspace: 1
  Max render time: off
  Adaptive sync: disabled
  Available modes:
    2256x1504 @ 59.999 Hz
    ...
Output DP-8 'Apple Computer Inc StudioDisplay 0x...' (disabled)
  Available modes:
    2560x2880 @ 60.000 Hz
    ...
Resource usage is a bit higher, but at least in my experience not an issue. Let me know if there is something specific you want me to measure.
Anyone know why there could be two outputs instead of one?
Compatibility probably, displayport 1.2 doesn’t have enough bandwidth for 5k 60 and tb3 is by spec limited to 1.2 even if some later tb3 implementations had 1.4 anyway. Tb3 itself has more than enough bandwidth and conveniently comes with 2 dp 1.2 channels.
On the pc side there were displays that needed 2 separate dsiplayport cables for similar reasons.
I’m using 2 Apple Studio Displays through an OWC Thunderbolt docking station and my Framework 13 (AMD 7840U) is powering the displays nicely. I’m using Arch with Omarchy and have custom scripts to handle workspace arrangement when docked.
However, I can’t get Arch to see the webcams or speakers on these monitors. @bayesian you mentioned that bluefin saw them natively? Any ideas as to packages that enabled that? I’m doing my best to figure out how to get the peripherals working but haven’t had any luck as of yet.
Me and Claude figured it out! Well, mostly Claude. Here’s my session with Claude where we got it all sorted. I started by installing bolt with:
yay -S bolt
Here’s my session. Hopefully this helps someone else out there!
> ok I'm now trying to figure out how to get Arch to detect the
  built-in webcam and speakers on my Apple Studio Displays. I found
  this thread where a user called bayesian said they work natively
  on bluefin which is interesting. Let's work together to figure out
   how to get the webcam and speakers working!
  https://community.frame.work/t/apple-studio-display-any-experience
  s/34702/12
● Let's investigate getting the Apple Studio Display webcam and
  speakers working! Let me check that thread and see what we can
  find on your system.
● Fetch(https://community.frame.work/t/apple-studio-display-any-expe
       riences/34702/12)
  ⎿  Received 23.2KB (200 OK)
● Let me check what USB devices are currently connected when your
  Studio Displays are attached:
  Bash(lsusb | grep -i apple)
  ⎿  No matches found
● No Apple USB devices showing. Let me check all USB devices to see
  if there's something that might be the Studio Display:
  Bash(lsusb -t)
  ⎿ /:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/5
    p, 480M
        |__ Port 001: Dev 002, If 0, Class=Billboard, Driver=[none],
    … +72 lines (ctrl+r to expand)
● Interesting! I can see video and audio devices in the USB tree.
  Let me get more details:
  Bash(lsusb -v 2>/dev/null | grep -A 5 -B 5 "Video\|Audio" | grep
      -E "^Bus|idVendor|idProduct|iManufacturer|iProduct|bInterfaceC
      lass")
  ⎿        bInterfaceClass        14 Video
           bInterfaceClass        14 Video
           bInterfaceClass        14 Video
     … +32 lines (ctrl+r to expand)
● Let me check what video devices are available:
  Bash(v4l2-ctl --list-devices)
  ⎿  Laptop Webcam Module (2nd Gen): (usb-0000:c1:00.4-1):
     	/dev/video0
     	/dev/video1
     … +5 lines (ctrl+r to expand)
● Let me check audio devices:
  Bash(pactl list short sinks)
  ⎿  56	alsa_output.pci-0000_c1_00.6.analog-stereo	PipeWire	s32le 2c
      48000Hz	SUSPENDED
     234	alsa_output.usb-Generic_AIRHUG_01_AIRHUG_01-00.analog-stereo
     … +1 line (ctrl+r to expand)
  Bash(pactl list short sources | grep -v monitor)
  ⎿  57	alsa_input.pci-0000_c1_00.6.analog-stereo	PipeWire	s32le 2c
     48000Hz	SUSPENDED
     235	alsa_input.usb-Generic_AIRHUG_01_AIRHUG_01-00.analog-stereo
     … +3 lines (ctrl+r to expand)
● Let me check if there are any disconnected or unconfigured
  devices:
  Bash(lsusb | grep -E "05ac|Apple")
  ⎿  Error: Error
● Let me check dmesg for any USB devices that might be the Studio
  Display:
  Bash(dmesg | tail -100 | grep -i "usb\|video\|audio" | tail -20)
  ⎿  dmesg: read kernel buffer failed: Operation not permitted
● Let me check with sudo:
● Bash(sudo dmesg | tail -100 | grep -i "studio\|apple" | head -20)
  ⎿  [ 6547.599302] thunderbolt 1-302: Apple Inc. Studio Display
     [ 6548.363509] thunderbolt 1-702: Apple Inc. Studio Display
● Great! The Studio Displays are connected via Thunderbolt. Let me
  check if there are any devices that aren't being recognized:
● Bash(lsusb -d 05ac: -v 2>/dev/null | head -20)
  ⎿  (No content)
● Let me check Thunderbolt devices:
  Bash(boltctl list)
  ⎿  Error: bash: command not found: boltctl
● Let me install bolt for Thunderbolt management:
● Bash(yay -S --noconfirm bolt)
  ⎿  No (tell Claude what to do differently)
> I installed bolt myself in another terminal. Continue
● Bash(boltctl list)
  ⎿   * Other World Computing Thunderbolt Dock 96W
        |- type:          peripheral
        |- name:          Thunderbolt Dock 96W
     … +47 lines (ctrl+r to expand)
● Good! Both Studio Displays are authorized via Thunderbolt. Now let
   me check if there are any USB devices that might be the
  webcams/audio but aren't being recognized properly:
● Bash(lsusb -v 2>/dev/null | grep -B 5 -A 2 "Billboard\|Vendor
      Specific" | grep -E "Bus.*Device|idVendor|idProduct|iManufactu
      rer|iProduct|bInterfaceClass" | head -30)
  ⎿        bInterfaceClass        17 Billboard
           bInterfaceClass       255 Vendor Specific Class
           bInterfaceClass        17 Billboard
     … +3 lines (ctrl+r to expand)
● Let me get more details about these Billboard devices:
● Bash(lsusb | grep -E "Billboard|Vendor")
  ⎿  Error: Error
● Bash(lsusb)
  ⎿ Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 32ac:0002 Framework HDMI Expansion Card
    Bus 001 Device 003: ID 27c6:609c Shenzhen Goodix Technology Co.,
    … +35 lines (ctrl+r to expand)
● Excellent! I can see the Apple Studio Displays are connected
  (05ac:1114). Now let me check what drivers are handling them:
● Bash(lsusb -v -d 05ac:1114 2>/dev/null | grep -E "bInterfaceClass|
      bInterfaceSubClass|bInterfaceProtocol|iInterface" | head -20)
  ⎿        bInterfaceClass        14 Video
           bInterfaceSubClass      1 Video Control
           bInterfaceProtocol      0
     … +17 lines (ctrl+r to expand)
● Perfect! The Studio Displays have video and audio interfaces. Let
  me check if they're being handled by drivers:
● Bash(ls -la /dev/video*)
  ⎿  Error: ls in '/dev' was blocked. For security, Claude Code may
     only list files in the allowed working directories for this
     session: '/home/mtaggart'.
  Bash(v4l2-ctl --list-devices 2>&1)
  ⎿  Studio Display: Studio Display  (usb-0000:67:00.0-1.4):
     	/dev/video6
     	/dev/video7
     … +16 lines (ctrl+r to expand)
● Excellent! The Studio Display webcams ARE detected! They're at
  /dev/video4-7. Let me check the audio:
● Bash(pactl list cards | grep -A 3 "Name:\|alsa.card_name")
  ⎿  	Name: alsa_card.pci-0000_c1_00.
     	Driver: alsa
     	Owner Module: n/a
     … +62 lines (ctrl+r to expand)
● Perfect! Both Studio Display audio devices are also detected! Let
  me list their sinks and sources:
  Bash(pactl list sinks | grep -E "Name:|Description:" | grep -i
      studio)
  ⎿  	Name: alsa_output.usb-Apple_Inc._Studio_Display_00008030-00082
     1C3AEA802E-02.analog-stereo
     	Description: Studio Display Analog Stereo
     … +3 lines (ctrl+r to expand)
● Bash(pactl list sources | grep -E "Name:|Description:" | grep -i
      studio)
  ⎿  	Name: alsa_output.usb-Apple_Inc._Studio_Display_00008030-00082
     1C3AEA802E-02.analog-stereo.monitor
     	Description: Monitor of Studio Display Analog Stereo
     … +9 lines (ctrl+r to expand)
● Fantastic! Everything is actually working! Your Apple Studio
  Displays' webcams and speakers ARE detected and available on Arch
  Linux:
  Webcams:
  - Studio Display 1: /dev/video4 and /dev/video5
  - Studio Display 2: /dev/video6 and /dev/video7
  Audio Output (Speakers):
  - alsa_output.usb-Apple_Inc._Studio_Display_00008030-0008281C3AEA8
  02E-02.analog-stereo
  - alsa_output.usb-Apple_Inc._Studio_Display_00008030-00030441267A8
  02E-02.analog-stereo
  Audio Input (Microphones):
  - alsa_input.usb-Apple_Inc._Studio_Display_00008030-0008281C3AEA80
  2E-02.mono-fallback
  - alsa_input.usb-Apple_Inc._Studio_Display_00008030-00030441267A80
  2E-02.mono-fallback
  They're working natively! The reason you might not have noticed is
   they weren't set as defaults. Would you like me to:
  1. Test one of the Studio Display webcams?
  2. Set one of the Studio Display speakers as your default audio
  output?
  3. Create a script to automatically switch to Studio Display audio
   when docked?
> yes let's do all 3
● Update Todos
  ⎿  ☐ Test Studio Display webcams
     ☐ Set Studio Display speakers as default audio output
     ☐ Create script to auto-switch audio when docked
● Update Todos
  ⎿  ☐ Test Studio Display webcams
     ☐ Set Studio Display speakers as default audio output
     ☐ Create script to auto-switch audio when docked
● Let's start by testing the Studio Display webcams:
● Bash(v4l2-ctl -d /dev/video4 --all | head -20)
  ⎿  Driver Info:
     	Driver name      : uvcvideo
     	Card type        : Studio Display: Studio Display
     … +17 lines (ctrl+r to expand)
● Bash(v4l2-ctl -d /dev/video4 --list-formats-ext | head -30)
  ⎿  ioctl: VIDIOC_ENUM_FMT
     	Type: Video Capture
     … +27 lines (ctrl+r to expand)
● Let's capture a test frame from the Studio Display webcam:
● Bash(ffmpeg -f v4l2 -i /dev/video4 -frames:v 1 -f image2
      ~/studio_display_test.jpg 2>&1 | tail -5)
  ⎿         cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_
    delay: N/A
    [image2 @ 0x5568b1e9ba40] The specified filename '/home/mtaggart
    … +10 lines (ctrl+r to expand)
● Good! The webcam captured an image. Let me check if it was saved:
● Bash(ls -la ~/studio_display_test.jpg)
  ⎿ Permissions Size User     Date Modified Name
    .rw-r--r--   24k mtaggart 17 Aug 10:12  /home/mtaggart/studio_di
    splay_test.jpg
● Perfect! The Studio Display webcam is working. Now let's set up
  the audio:
● Update Todos
  ⎿  ☒ Test Studio Display webcams
     ☐ Set Studio Display speakers as default audio output
     ☐ Create script to auto-switch audio when docked
  Bash(pactl set-default-sink alsa_output.usb-Apple_Inc._Studio_Disp
      lay_00008030-0008281C3AEA802E-02.analog-stereo)
  ⎿  (No content)
● Bash(pactl info | grep "Default Sink")
  ⎿ Default Sink: alsa_output.usb-Apple_Inc._Studio_Display_00008030
    -0008281C3AEA802E-02.analog-stereo
● Great! Now let's test the audio:
  Bash(paplay /usr/share/sounds/freedesktop/stereo/complete.oga 2>&1
       || echo "Audio test sent to Studio Display")
  ⎿  (No content)
● Now let's create a script that automatically switches audio when
  docking:
  Update Todos
  ⎿  ☒ Test Studio Display webcams
     ☒ Set Studio Display speakers as default audio output
     ☐ Create script to auto-switch audio when docked
  Write(.local/bin/switch-audio-dock)
  ⎿  Wrote 34 lines to .local/bin/switch-audio-dock
     #!/usr/bin/env bash
     # Switch audio to Studio Display when docked, or to laptop when
     undocked
     # Check if Studio Display audio devices are available
     STUDIO_SINK=$(pactl list short sinks | grep "Studio_Display" |
     head -1 | cut -f2)
     if [[ -n "$STUDIO_SINK" ]]; then
         echo "Studio Display detected, switching audio output..."
         pactl set-default-sink "$STUDIO_SINK"
     … +24 lines (ctrl+r to expand)
  Bash(chmod +x ~/.local/bin/switch-audio-dock)
  ⎿  (No content)
● Now let's add this to the dock-monitors script:
● Read(.local/bin/dock-monitors)
  ⎿  Read 4 lines (ctrl+r to expand)
  Update(.local/bin/dock-monitors)
  ⎿  Updated .local/bin/dock-monitors with 3 additions
       90        echo "DNS fix may require manual intervention:
            warp-cli disconnect && warp-cli connect"
       91    fi
       92
       93 +  # Switch audio to Studio Display
       94 +  ~/.local/bin/switch-audio-dock
       95 +
       96    echo "Done! Triple monitor setup configured."
       97   \ No newline at end of file
● Now let's also add it to undock-monitors:
● Read(.local/bin/undock-monitors)
  ⎿  Read 0 lines
● Read(.local/bin/undock-monitors)
  ⎿  Read 23 lines (ctrl+r to expand)
  Update(.local/bin/undock-monitors)
  ⎿  Updated .local/bin/undock-monitors with 3 additions
       20        hyprctl dispatch moveworkspacetomonitor "$ws eDP-1"
            2>/dev/null || true
       21    done
       22
       23 +  # Switch audio back to laptop
       24 +  ~/.local/bin/switch-audio-dock
       25 +
       26    echo "Done! Laptop-only setup configured."
       27   \ No newline at end of file
● Let's test the audio switching script:
● Bash(~/.local/bin/switch-audio-dock)
  ⎿  Studio Display detected, switching audio output...
     Switched to Studio Display microphone
     Audio switched to Studio Display
● Perfect! Now let's also create a simple command to list and switch
   between the Studio Display webcams:
● Write(.local/bin/studio-webcam)
  ⎿  User rejected write to .local/bin/studio-webcam
        1 +  #!/usr/bin/env bash
        2 +  # Quick utility to test/use Studio Display webcams
        3 +
        4 +  echo "Available Studio Display webcams:"
        5 +  echo "1. Left Studio Display: /dev/video4"
        6 +  echo "2. Right Studio Display: /dev/video6"
        7 +  echo ""
        8 +  echo "To test a webcam, you can use:"
        9 +  echo "  ffplay /dev/video4  # For left display"
       10 +  echo "  ffplay /dev/video6  # For right display"
       11 +  echo ""
       12 +  echo "Or with mpv:"
       13 +  echo "  mpv av://v4l2:/dev/video4"
       14 +  echo "  mpv av://v4l2:/dev/video6"
       15 +  echo ""
       16 +  echo "Current video devices:"
       17 +  v4l2-ctl --list-devices | grep -A2 "Studio Display"
       18   \ No newline at end of file
> Thanks I can use them in Chromium! W00t!
  Now my next question is are they configured for high quality
  video? I remember we had to make a custom script for the MX Brio I
   was testing
● Good question! Let's check the current settings of the Studio
  Display webcams and see if they need optimization like we did with
   the MX Brio:
● Bash(v4l2-ctl -d /dev/video4 --list-formats-ext | grep -A 15
      "1920x1080")
  ⎿  		Size: Discrete 1920x1080
     			Interval: Discrete 0.033s (30.000 fps)
     			Interval: Discrete 0.034s (29.000 fps)
     … +13 lines (ctrl+r to expand)
● Good! They support 1080p at 30fps. Let's check the current
  settings:
  Bash(v4l2-ctl -d /dev/video4 --get-fmt-video)
  ⎿  Format Video Capture:
     	Width/Height      : 1280/720
     	Pixel Format      : 'MJPG' (Motion-JPEG)
     … +8 lines (ctrl+r to expand)
● It's currently set to 720p. Let's check the camera controls
  available:
  Bash(v4l2-ctl -d /dev/video4 --list-ctrls)
  ⎿  User Controls
             white_balance_automatic 0x0098090c (bool)   : default=1
     … +21 lines (ctrl+r to expand)
● Interesting! The Studio Display has pan, tilt, and zoom controls.
  Let's create an optimization script for the Studio Display
  webcams:
  Write(.local/bin/setup-studio-display-webcams)
  ⎿  Wrote 43 lines to .local/bin/setup-studio-display-webcams
     #!/usr/bin/env bash
     # Configure Apple Studio Display webcams for optimal quality
     echo "Configuring Apple Studio Display webcams for optimal
     quality..."
     # Find all Studio Display webcams
     STUDIO_CAMS=$(v4l2-ctl --list-devices | grep -A1 "Studio
     Display" | grep "/dev/video" | head -2)
     for cam in $STUDIO_CAMS; do
         if [[ -e "$cam" ]]; then
     … +33 lines (ctrl+r to expand)
  Bash(chmod +x ~/.local/bin/setup-studio-display-webcams)
  ⎿  (No content)
  Bash(~/.local/bin/setup-studio-display-webcams)
  ⎿  Configuring Apple Studio Display webcams for optimal quality...
     Configuring /dev/video6...
       Set to 1920x1080 30fps MJPEG
     … +12 lines (ctrl+r to expand)
● Perfect! Now let's add this to the dock-monitors script so it runs
   automatically:
  Update(.local/bin/dock-monitors)
  ⎿  Updated .local/bin/dock-monitors with 3 additions
       71    # Configure MX Brio webcam if connected
       72    ~/.local/bin/setup-mx-brio
       73
       74 +  # Configure Studio Display webcams for optimal quality
       75 +  ~/.local/bin/setup-studio-display-webcams
       76 +
       77    # Fix DNS by restarting warp-cli when docking
       78    echo "Fixing DNS after dock connection..."
       79
  Update Todos
  ⎿  ☒ Test Studio Display webcams
     ☒ Set Studio Display speakers as default audio output
     ☒ Create script to auto-switch audio when docked
● Excellent! Your Studio Display webcams are now configured for high
   quality video at 1920x1080 30fps. Here's what we've accomplished:
  1. Webcams tested and optimized: Both Studio Display webcams are
  set to 1080p 30fps with MJPEG compression
  2. Audio configured: Studio Display speakers and microphone are
  set as defaults when docked
  3. Automatic switching: When you dock/undock, the system will:
    - Switch monitors appropriately
    - Configure both MX Brio and Studio Display webcams for optimal
  quality
    - Switch audio to Studio Display speakers when docked, laptop
  when undocked
    - Fix DNS issues with warp-cli
  The Studio Display webcams have some nice features like
  pan/tilt/zoom controls that we've configured to sensible defaults.
   They should now provide excellent quality video in Chromium and
  other applications!
            So there’s a script Claude created in my session to switch audio output that I call whenever the laptop detects it’s docked. Here it is:
[~]  cat ~/.local/bin/switch-audio-dock
#!/usr/bin/env bash
# Switch audio to Studio Display when docked, or to laptop when undocked
# Check if Studio Display audio devices are available
STUDIO_SINK=$(pactl list short sinks | grep "Studio_Display" | head -1 | cut -f2)
if [[ -n "$STUDIO_SINK" ]]; then
    echo "Studio Display detected, switching audio output..."
    pactl set-default-sink "$STUDIO_SINK"
    # Also switch the microphone to Studio Display
    STUDIO_SOURCE=$(pactl list short sources | grep "Studio_Display" | grep -v "monitor" | head -1 | cut -f2)
    if [[ -n "$STUDIO_SOURCE" ]]; then
        pactl set-default-source "$STUDIO_SOURCE"
        echo "Switched to Studio Display microphone"
    fi
    echo "Audio switched to Studio Display"
else
    echo "Studio Display not detected, switching to laptop audio..."
    # Switch to laptop speakers
    LAPTOP_SINK=$(pactl list short sinks | grep "pci-0000_c1_00.6" | cut -f2)
    if [[ -n "$LAPTOP_SINK" ]]; then
        pactl set-default-sink "$LAPTOP_SINK"
    fi
    # Switch to laptop microphone
    LAPTOP_SOURCE=$(pactl list short sources | grep "pci-0000_c1_00.6" | grep -v "monitor" | cut -f2)
    if [[ -n "$LAPTOP_SOURCE" ]]; then
        pactl set-default-source "$LAPTOP_SOURCE"
    fi
    echo "Audio switched to laptop"
And here’s another script I made to configure the Studio Display webcams for higher definition when docking.
[~]  cat ~/.local/bin/setup-studio-display-webcams
#!/usr/bin/env bash
# Configure Apple Studio Display webcams for optimal quality
echo "Configuring Apple Studio Display webcams for optimal quality..."
# Find all Studio Display webcams
STUDIO_CAMS=$(v4l2-ctl --list-devices | grep -A1 "Studio Display" | grep "/dev/video" | head -2)
for cam in $STUDIO_CAMS; do
    if [[ -e "$cam" ]]; then
        echo "Configuring $cam..."
        # Set to 1080p 30fps MJPEG for best quality
        v4l2-ctl -d "$cam" --set-fmt-video=width=1920,height=1080,pixelformat=MJPG 2>/dev/null
        # Set exposure and white balance to auto
        v4l2-ctl -d "$cam" --set-ctrl=auto_exposure=0 2>/dev/null  # Auto Mode
        v4l2-ctl -d "$cam" --set-ctrl=white_balance_automatic=1 2>/dev/null
        # Set power line frequency to 60Hz (US standard)
        v4l2-ctl -d "$cam" --set-ctrl=power_line_frequency=2 2>/dev/null
        # Center the camera (reset pan/tilt)
        v4l2-ctl -d "$cam" --set-ctrl=pan_absolute=0 2>/dev/null
        v4l2-ctl -d "$cam" --set-ctrl=tilt_absolute=-2880000 2>/dev/null  # Default tilt
        # Set zoom to a natural level (slightly zoomed in from minimum)
        v4l2-ctl -d "$cam" --set-ctrl=zoom_absolute=150 2>/dev/null
        echo "  Set to 1920x1080 30fps MJPEG"
    fi
done
echo "Studio Display webcam configuration complete!"
echo ""
echo "Current settings:"
for cam in $STUDIO_CAMS; do
    if [[ -e "$cam" ]]; then
        echo "$cam:"
        v4l2-ctl -d "$cam" --get-fmt-video | grep -E "Width|Pixel"
        echo ""
    fi
            So all we need is bolt for thunderbolt devices?
Thanks for this thread. I’m running Arch with Framework Desktop with an Apple Studio Display, and can confirm installing bolt gets the speakers, microphone, and webcam working.
This is an amazing resource, thank you! And thanks to framework for using forums so that this post appears via Google ![]()