ฉันจะใช้เฉพาะจอแสดงผลภายนอกที่เปิดฝา MacBook Pro บน Lion ได้อย่างไร


28

ขออภัยสำหรับชื่อเรื่องที่ยาก แต่ปัญหาของฉันคือ:

  • เมื่อผมอยู่ที่โต๊ะทำงานของฉันฉันจะชอบที่จะใช้เพียงจอแสดงผลภายนอก
  • ด้วยท่าทางที่ดีใน Lion ฉันได้ตัดสินใจว่าฉันต้องการใช้ trackpad ภายในบน MacBook ของฉัน
  • หากต้องการสัมผัสแทร็คแพดทางกายภาพต้องเปิดฝาปิด MacBook Pro ของฉัน

สิ่งนี้เคยเป็นเค้กชิ้นหนึ่งที่มี Snow Leopard และด้านล่าง - คุณเสียบจอแสดงผลภายนอกปิดฝาเสียบอุปกรณ์ USB หรือกดปุ่มบนแป้นพิมพ์ที่เชื่อมต่อเพื่อปลุกเครื่องและเมื่อมันตื่นขึ้นมาและใช้งาน จอแสดงผลภายนอกเปิดฝาอีกครั้งและหน้าจอภายในจะปิดอยู่

น่าเสียดายที่ Lion ตรวจพบเมื่อ MacBook Pro ของฉันเปิดอยู่และคิดว่ามันมีประโยชน์โดยการเปิดใช้งานหน้าจอ มีวิธีปิดใช้งานหรือไม่ มีวิธีใดที่จะหลอก Lion ให้คิดได้ว่าฝาของฉันปิด


1
ทำไมคุณไม่ต้องการอสังหาริมทรัพย์ที่มีหน้าจอพิเศษจากจอแสดงผลภายใน
CajunLuke

5
@CajunLuke มันใช้งานได้ไม่ดีนัก จอแสดงผลหลายจอจะดีที่สุดเมื่อพวกเขานั่งถัดจากกันและอยู่ห่างจากดวงตาของคุณ อีกทั้งยังดีที่สุดเมื่อจอแสดงผลสองจอที่อยู่ติดกันมีมิติทางกายภาพและความละเอียดเท่ากันตามขอบที่แบ่งปัน ด้วย MacBook Pro ของฉันไม่เป็นเช่นนั้นและฉันคิดว่ามันน่ารำคาญที่ต้องจัดการมันและมันก็น่าหงุดหงิดเมื่อตัวชี้ของฉันหายไปที่หน้าจออื่น
Kyle Cronin

1
บางคนต้องการสิ่งนี้เพื่อการระบายความร้อนที่ดีขึ้นรวมถึงการรับสัญญาณเสาอากาศ WiFi ขาตั้งในแนวตั้งสามารถช่วยได้ แต่เป็นสิ่งที่อาจช่วยเพิ่มความปรารถนาของ Kyle ในการควบคุมหน้าจอโดยไม่ขึ้นกับเซ็นเซอร์ความใกล้ชิดของจอแสดงผล (และไม่จำเป็นต้องซื้อหรือวางแทร็คแพดบนพื้นผิวการทำงานของเขา)
bmike

คำตอบ:


17

คำแนะนำของ Mac OS X ได้ค้นพบคำสั่งที่จะทำให้สิ่งนี้ :

หากต้องการกลับไปสู่พฤติกรรม pre-Lion ให้ป้อนคำสั่งต่อไปนี้ใน Terminal:

sudo nvram boot-args="iog=0x0" 

หากต้องการยกเลิกการเปลี่ยนแปลงประเภทนี้ให้พิมพ์คำสั่งต่อไปนี้หรือกดทับ PRAM (กด Cmd + Opt + p + r เมื่อเปิดเครื่อง):

sudo nvram -d boot-args 

4
เร็ว ๆ นี้: คุณต้องรีสตาร์ทคอมพิวเตอร์ก่อนจึงจะสามารถใช้งานได้
ดาเมียนวิลสัน

1
น่าเสียดายที่ฉันได้รับข้อความแสดงข้อผิดพลาดนี้ใน High Sierra: "nvram: ข้อผิดพลาดในการรับตัวแปร - 'boot-args': (iokit / common) ข้อผิดพลาดทั่วไป"
OMA

เมื่อวันที่ Mojave (10.14.4) ได้รับนี้:nvram: Error setting variable - 'boot-args': (iokit/common) not permitted
Ramazan Polat

17

ฉันทำตามคำแนะนำของ Olivier เพื่อจัดเรียงจอภาพของฉันเพื่อกำจัดเส้นขอบทั่วไป:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันเลือกที่ด้านล่างขวาเพราะฉันเก็บแท่นวางไว้ที่ด้านซ้ายมือของหน้าจอของฉันและฉันใช้มุมขวาบนของฉันเป็นมุมที่ร้อนแรงในการนอนหลับจอแสดงผล ฉันย้ายแถบเมนูไปยังหน้าจอเดสก์ท็อปของฉันและหน้าจอ MacBook ก็จางลงอย่างสมบูรณ์

มีอีกทางเลือกหนึ่งที่ฉันได้ยินคือใช้แม่เหล็กเพื่อทำให้ MacBook ของคุณคิดว่าฝาปิด ใช้งานได้ - ฉันวางตัวอย่างของแม่เหล็กตู้เย็นใกล้ด้านล่างซ้ายของแป้นพิมพ์และแน่นอนว่า MacBook ของฉันคิดว่าฉันปิดจอแสดงผลแล้ว น่าเสียดายที่ Mac OS X ปิดการใช้งานคีย์บอร์ดและแทร็กแพดเมื่อมันคิดว่าจอแสดงผลปิดดังนั้นตัวเลือกนี้ใช้งานไม่ได้สำหรับฉัน


คุณรู้วิธีทำให้หน้าจอภายนอกเป็นค่าเริ่มต้นหรือไม่ดังนั้น windows จึงไม่โผล่ขึ้นมาบนหน้าจอแล็ปท็อป
Szabolcs

1
ไม่เป็นไรฉันค้นหาคำหลักที่ไม่ถูกต้อง คุณเพียงแค่ต้องลากแถบเมนูสีขาว
Szabolcs

4

Quick WorkAround (ไม่ใช่โซลูชันจริง)

เพียงตรวจสอบตัวเลือก "Mirror Displays" ในการตั้งค่าการแสดงผล ดูภาพหน้าจอด้านล่าง

การตั้งค่าการแสดงผล - การแสดงกระจก

จากนั้นลดความสว่างของ Macbook ให้เหลือศูนย์


มีปัญหาหลายอย่างกับสิ่งนี้ มีประโยชน์ในการปิดการใช้งานหน้าจอที่ไม่ได้ใช้และวิธีการนี้จะสูญเสียพวกเขา 1) ปลดปล่อย VRAM เพราะไม่จำเป็นต้องใช้บัฟเฟอร์หน้าจอ (โดยเฉพาะอย่างยิ่งหน้าจอเรตินาที่มีความละเอียดสูง), 2) มันป้องกันหน้าต่างจากการบังเอิญโผล่ขึ้นมาที่นั่น 3) ปิดฝาโดยอัตโนมัติย้ายหน้าต่างหน้าจอแล็ปท็อปทั้งหมดไปยังจอแสดงผลภายนอก
Alexander - Reinstate Monica

ฉันคิดว่าคุณพลาดจุดที่เขาพูดเพื่อสะท้อนการแสดง นี่อาจยังใช้ทรัพยากรเพิ่มเติมบางอย่าง แต่ข้อเสียจริงที่นี่คือ จำกัด การแก้ปัญหาที่คุณสามารถใช้ได้ สำหรับฉันมันใช้งานได้ดีแม้ว่า (ทั้งหน้าจอทำงาน 3360x1890 ซึ่งเป็นสิ่งที่ฉันต้องการ)
therealsix

ไร้ประโยชน์หากคุณมีหน้าจอภายนอก 2 หน้า
ทั่วไป

2

ฉันรู้ว่านี่เป็น kludge เล็กน้อย แต่การทำงานของฉันสำหรับปัญหานี้คือการควบคุมความสว่างบน macbook ของฉันค้างไว้จนกว่าหน้าจอจะมืด

เช่นเดียวกับคุณฉันชอบทำงานบนจอแสดงผลขนาดใหญ่ขึ้นและพิมพ์ด้วยแป้นพิมพ์แล็ปท็อปของฉันต่อไป (เมื่อจอแสดงผลแล็ปท็อปเปิดเพียงบางส่วนและเปิดเพียงพอที่ฉันสามารถใช้แป้นพิมพ์แล็ปท็อปได้)

อย่างไรก็ตามวิธีนี้ใช้ได้ผลสำหรับฉัน

Re: ".. และมันน่าผิดหวังเมื่อตัวชี้ของฉันหายไปที่หน้าจออื่น .. "

ฉันได้รับสิ่งนั้นโดยคลิกที่ตัวเลือก "การแสดงผลแบบมิเรอร์" ใน System Prefs> Display> Arrangement

หวังว่านี่จะช่วยได้


3
"จอแสดงผลมิเรอร์" จะไม่ทำงานหากจอแสดงผลภายนอกของคุณมีความละเอียดที่ดีกว่าจอแสดงผลภายในของคุณ ฉันใช้โซลูชันเดียวกับคุณ (ลดแสงหน้าจอ) แต่ฉันจัดเรียงจอภาพเพื่อให้มีเส้นขอบทั่วไปน้อยมากเพื่อไม่ให้ตัวชี้ของฉันหาย
โอลิเวียร์

1
Re: "Mirror display" คุณพูดถูกฉันควรจะพูดถึงว่าจอภาพซัมซุงภายนอกขนาดใหญ่กว่า 22 "ของฉันมีความละเอียด 1680x1050 ที่แน่นอนเหมือนกับ 2011 2011 15" MacBook Pro
user1556373

@olivier: จอแสดงผล Mirror ใช้งานได้หากจอแสดงผลภายนอกมีความละเอียดที่ดีกว่า หลังจากเปิดใช้งาน "มิเรอร์ที่แสดง" ให้ไปที่แท็บ "หน้าจอ" และเลือกการแสดงผลที่มีความละเอียดที่ดีขึ้นในเมนูแบบเลื่อนลง "ปรับให้เหมาะสม" จากนั้นคุณจะได้รับความละเอียดดั้งเดิมของคุณในมอนิเตอร์ความละเอียดสูงกว่าและในจอภาพภายในคุณจะได้ภาพเดียวกัน แต่ลดขนาดลงเหลือความละเอียดต่ำกว่า
OMA

2

ไม่แน่ใจว่าใช้งานได้กับไลออนหรือไม่ แต่ถ้าคุณปิดฝาและเสียบอุปกรณ์ USB มันจะเปิดจอมอนิเตอร์ของคุณและคุณสามารถเปิดฝาแล้วจอมอนิเตอร์ภายนอกของคุณจะเปิดและฝาจะปิด


2

ฉันพบปัญหาเดียวกันเมื่อไม่นานมานี้และนี่คือสิ่งที่ฉันทำ:

ก่อนอื่นฉันทำมิเรอร์จอแสดงผลตามที่แนะนำไว้แล้ว ไม่นานหลังจากนั้นฉันก็ตระหนักว่าการปิดหน้าจอสว่างของ macbook นั้นอยู่ที่มุมตาของฉัน สิ่งนี้ต้องการให้ฉันฆ่าความสว่างบนหน้าจอของ macbook แต่เป็นคนขี้เกียจที่ฉันเป็นฉันเกลียดที่จะต้องปรับความสว่างด้วยตนเองทุกครั้งที่ฉันถอด / เสียบจอภาพภายนอก ดังนั้นฉันสงสัยว่ามีวิธีที่จะทำให้กระบวนการเป็นไปโดยอัตโนมัติหรือไม่ ฉันพบแอพฟรีที่เรียกว่าControl Planeซึ่งให้ฉันตั้งค่า "บริบท" ขึ้นอยู่กับว่าอุปกรณ์บางอย่าง (จอภาพฮาร์ดไดรฟ์ ฯลฯ ) เสียบอยู่หรือไม่ไม่ว่าจะเป็นเครือข่าย Wi-Fi บางตัวที่อยู่ในระยะ ฯลฯ และตามบริบทเหล่านี้ให้เรียกใช้เชลล์สคริปต์บางตัว ดังนั้นสิ่งที่ฉันต้องทำก็คือเขียน applescript (เรียกว่าkillBrightness.scpt) จะฆ่าความสว่างบนหน้าจอ MacBook และเชลล์สคริปต์การเรียกkillBrightness.scpt; และเรียกเชลล์สคริปต์นี้ในบริบทที่ต้องการ

killBrightness.scpt

tell application "System Preferences" to set current pane to pane "Displays"

tell application "System Events"
    tell process "System Preferences"
        repeat with theWindow in windows
            if title of theWindow as string is "Color LCD" then
                tell tab group 1 of theWindow
                    tell slider 1 of group 2
                        set value to 0
                    end tell
                end tell
            end if
        end repeat
    end tell
end tell

tell application "System Preferences" to quit

เชลล์สคริปต์

#!/bin/sh

osascript /path/to/killBrightness.scpt

เนื่องจากฉันเสียบจอภาพที่แตกต่างกันจำนวนมากลงใน macbook ของฉันฉันสังเกตเห็นว่าเมื่อเสียบจอภาพที่มีอัตราส่วนภาพแตกต่างกัน windows ของฉันก็จะปิดขอบหน้าจอ วิธีแก้ปัญหานี้ก็คือการปรับขนาดหน้าต่าง แต่ก็ไม่มีประสิทธิภาพสูงเมื่อคุณใช้แอพและหน้าต่างจำนวนมากอย่างที่ฉันทำ นอกจากนี้ฉันยังขี้เกียจเหมือนฉันไม่ชอบวิธีแก้ปัญหานั้น ดังนั้นด้วยความช่วยเหลือของเพื่อน ๆ ที่ Stack Overflow ฉันจึงสามารถใช้ AppleScript (เรียกว่าresizer.scpt) นี้เพื่อปรับขนาดหน้าต่างทั้งหมดของแอพเกือบทั้งหมดโดยอัตโนมัติ (ข้อแม้คือแอปพลิเคชันบางตัวไม่ใช้ที่ถูกต้อง ตะขอเฟรมเวิร์ก UI ดังนั้นจึงค่อนข้างยากในการปรับขนาด):

resizer.scpt:

property blacklist : {"Finder", "Preview", "Console", "AppleScript Editor", "Spotify", "TaskCoach", "Skype", "VirtualBox"}
property buttonApps : {"LyX", "Eclipse"}
property buttonMaps : {{name:"LyX", Button:1, pname:"lyx"}, {name:"Eclipse", Button:2, pname:"eclipse"}, {name:"Spotify", Button:3, pname:"Spotify"}, {name:"TaskCoach", Button:3, pname:"TaskCoach"}}

tell application "Finder" to set theBounds to bounds of window of desktop

tell application "System Events"
    set bids to bundle identifier of processes where background only is false
end tell

repeat with bid in bids
    tell application id bid
        if name is not in blacklist then
            set appName to name as string
            if name is "Terminal" then
                set newBounds to {0, 0, (item 3 of theBounds) - 10, item 4 of theBounds}
                repeat with theWindow in windows
                    if visible of theWindow is true then
                        set bounds of theWindow to newBounds
                    end if
                end repeat
            else if name is not in buttonApps then
                try
                    repeat with theWindow in windows
                        if visible of theWindow is true then
                            set bounds of theWindow to theBounds
                        end if
                    end repeat
                end try
            else if name is in buttonApps then
                -- get the buttonNumber
                repeat with buttonApp in buttonMaps
                    if (name of buttonApp as string) is appName then
                        set theButton to Button of buttonApp
                    end if
                end repeat
                tell application "System Events"
                    repeat with theProcess in (processes where bundle identifier is bid)
                        try
                            tell theProcess to tell window 1 to click button theButton
                        end try
                    end repeat
                end tell
            end if
        end if
    end tell
end repeat

ตอนนี้สิ่งที่ฉันต้องทำก็คือเขียนเชลล์สคริปที่คล้ายกันเพื่อโทรresizer.scptและใส่มันเข้าไปใน ControlPlane และฉันก็พร้อมที่จะขี้เกียจอีกครั้ง!

หวังว่านี่จะช่วยได้

PS: ฉันลืมที่จะพูดถึงก่อนหน้านี้ทั้งหมดนี้ทำบน MacBook Pro ขนาด 15 นิ้วของฉันใช้ Lion


ฉันจะเพิ่ม upvote อีกถ้ามันเป็นไปได้ ขอบคุณ!
noamtm

2

อีกวิธีหนึ่งคือสลัมคือวางแม่เหล็กเฟอร์ไรต์ที่อ่อนแอมาก (เช่นแม่เหล็กติดตู้เย็น) ใกล้กับเซ็นเซอร์เอฟเฟกต์ฮอลล์ของแล็ปท็อป

สิ่งนี้มีประโยชน์ในการจำลองโหมด macshell ในขณะที่เปิดฝาเพื่อปรับปรุงประสิทธิภาพการทำความเย็น

อย่าใช้แม่เหล็กนีโอดิเมียมที่แข็งแรง การทำเช่นนี้อาจทำให้เซ็นเซอร์เอฟเฟกต์ฮอลล์เสียหายได้

เพื่อแยกความแตกต่าง: แม่เหล็กเฟอร์ไรต์อ่อนแอและทำจากสารประกอบสีดำแม่เหล็กนีโอไดเมียมมีความแข็งแรงมากและมักชุบด้วยนิกเกิลโดยมีลักษณะเป็นสีเงินเงางาม

! [ใส่คำอธิบายภาพที่นี่


Hi! ฉันจะแยกความแตกต่างระหว่างทั้งสองได้อย่างไร คุณได้รับของคุณอยู่ที่ไหน
ankii

@ankiiiiiii แม่เหล็กเฟอร์ไรต์อ่อนและทำจากสารประกอบสีดำแม่เหล็กนีโอไดเมียมีความแข็งแรงมากและมักจะชุบด้วยนิกเกิลโดยมีลักษณะเป็นสีเงินเงางาม
gatosec

1

นี่เป็นการรวมกันของการโพสต์ / ความคิดเห็นอื่น ๆ ที่นี่ในที่เดียว ฉันใช้ MacBook Pro ที่ใช้ El Capitan

ข้อดีของวิธีนี้เหนือคำสั่งเทอร์มินัล:

  1. ไม่จำเป็นต้องรีสตาร์ท
  2. ไม่มีการดัดแปลง boot-args

ขั้นตอน:

  1. เสียบและเปิดจอภาพภายนอก
  2. ไปที่การตั้งค่าระบบ -> จอแสดงผล -> การจัดเรียง
    • ยกเลิกการเลือก "มิเรอร์แสดง"
    • ลากแถบเมนูสีขาวจากจอแสดงผล macbook ไปยังจอภาพภายนอก ( อ้างอิงกับภาพหน้าจอ ) ทำให้จอภาพภายนอกเป็นจอแสดงผลหลัก
    • จัดเรียงกล่องสีน้ำเงินเพื่อให้สัมผัสเฉพาะมุม (ภาพหน้าจอที่จัดทำโดย Kyle Cronin ในโพสต์ด้านบน) วิธีนี้จะช่วยป้องกันไม่ให้เมาส์เคลื่อนที่ระหว่างหน้าจอ
  3. ปิดตัวเลือกการแสดงและแตะปุ่มหรี่ของ macbook (เช่นF1) จนกระทั่งหน้าจอเป็นสีดำ

เลิกทำขั้นตอน (รักษาการเก็บรักษาไว้สำหรับภายหลัง):

  1. แตะปุ่มหน้าจอที่สว่างขึ้นบน MacBook (เช่นF2)
  2. ถอดปลั๊กจอภาพภายนอก

เลิกทำตามขั้นตอน (เพื่อเปลี่ยนกลับเป็นค่าเริ่มต้นหากเสียบใหม่อีกครั้ง):

  1. แตะปุ่มหน้าจอที่สว่างขึ้นบน MacBook (เช่นF2)
  2. ไปที่การตั้งค่าระบบ -> จอแสดงผล -> การจัดเรียง
    • ลากแถบเมนูสีขาวกลับไปที่จอแสดงผล macbook
    • ลากกล่องสีน้ำเงินกลับเข้าที่
    • ตรวจสอบตัวเลือกการแสดงกระจก
  3. ถอดปลั๊กจอภาพภายนอก

หน้าจอสีดำไม่ได้หมายถึงไม่ได้ใช้งาน: ระบบของคุณจะรู้ว่ามีและมีการเรนเดอร์บนหน้าจอแล็ปท็อปของคุณด้วย ที่จริงแล้วเมื่อมัน blakc สิ่งเดียวที่ออกไปคือแสงฉากหลังของคุณ
belka

0

อัปเดต 2019

ตั้งแต่ OS X El Capitan การป้องกันความสมบูรณ์ของระบบ (SIP)จะไม่ยอมให้เปลี่ยนแปลงตัวเลือก nvram ยังboot-args="iog=0x0"ไม่ทำงานอีกต่อไป

เพื่อแก้ไขปัญหานี้ฉันพบวิธีแก้ปัญหานี้:

  1. ไปที่โหมดการกู้คืน: รีบูตเครื่องค้างไว้+ Rจนกระทั่งโลโก้ Apple ปรากฏขึ้น
  2. ไปที่ Utilities> Terminal
  3. ชนิด csrutil disable
  4. รีบูต Mac
  5. เปิดเทอร์มินัลแล้วพิมพ์ sudo nvram boot-args="niog=1"
  6. รีบูตเครื่องเมื่อปิดฝา
  7. เข้าสู่ระบบด้วยผู้ใช้ของคุณและคุณสามารถเปิดฝา
  8. เพื่อเหตุผลด้านความปลอดภัยให้ไปที่โหมดการกู้คืนอีกครั้งพิมพ์csrutil enableและรีบูต

เลิกทำ (หลายตัวเลือก):

  • sudo nvram -d boot-argsไปยังสถานีและประเภท
  • ... หรือรีบูตและกดปุ่มสี่ปุ่มเหล่านี้พร้อมกัน: + + P+ Rเพื่อรีเซ็ต NVRAM ของคุณ

-1

นี่คือวิธีที่ฉันบรรลุเป้าหมายนี้

  1. เชื่อมต่อ MacBook กับสายไฟ (อุปกรณ์ชาร์จ)
  2. เชื่อมต่อกับแป้นพิมพ์ภายนอก + เมาส์
  3. พลิกฝา MacBook ลง
  4. ตอนนี้คลิกที่ปุ่มคีย์บอร์ด
  5. ตอนนี้คุณกำลังใช้จอแสดงผลภายนอกเท่านั้นเคอร์เซอร์ของคุณจะไม่เข้ากับจอแสดงผลอื่น ตอนนี้มีเพียงจอแสดงผลเดียว

มันใช้งานไม่ได้ หลังจากปิดฝาคอมพิวเตอร์จะเข้าสู่โหมดสลีปจากนั้นจะไม่ตื่นขึ้นมาอีกถ้าฉันกดปุ่มในแป้นพิมพ์ภายนอกหรือปุ่มในเมาส์บลูทู ธ มันจะไม่ปลุกจนกว่าคุณจะเปิดฝาอีกครั้ง
OMA

เชื่อมต่อกับเครื่องชาร์จหรือไม่?
Siraj Alam

พยายามเชื่อมต่อและไม่ได้เชื่อมต่อ
OMA

สิ่งนี้ควรใช้งานได้ (ถ้าคุณกำลังชาร์จไฟ) - แต่มันไม่เป็นประโยชน์เพราะเขาบอกว่าเขาต้องการเปิดหน้าจอ
therealsix

-2

เมื่อคุณต่อจอภาพภายนอกเข้ากับจอภาพแล้วในบางครั้งคุณจะเห็นการตั้งค่าจอภาพเพิ่มเติมนี้ แต่ถ้าคุณไม่ต้องการใช้หน้าจอแล็ปท็อปเพียงปิดฝาของ macbook pro และทำงานบนหน้าจอขนาดใหญ่ขึ้น แล็ปท็อปไม่เข้าสู่โหมดสลีป นี่คือการปล่อยสิงโต


ฉันเชื่อว่าไคล์กำลังถามว่าเขาจะทำอย่างไรกับการเปิดฝา
เควินเฉิ

มันใช้งานไม่ได้ การปิดฝาทำให้คอมพิวเตอร์ทั้งหมดเข้าสู่โหมดสลีปตามปกติดังนั้นจอแสดงผลภายนอกจึงว่างเปล่าเช่นกัน
OMA
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.