diff --git a/Changelog.md b/Changelog.md index b095b0a3669ea1ef39735bca093935f715ae4ca5..d71f46e39ec64612c1bcb9bc564a5662e8f5c906 100644 --- a/Changelog.md +++ b/Changelog.md @@ -15,6 +15,7 @@ OpenCore Changelog - Fixed issues with default boot path selection on some boards - Update builtin firmware versions - Fixed `AdviseWindows` not setting `FirmwareFeatures` in NVRAM +- Added `TakeoffDelay` option for improved action hotkey support #### v0.5.4 - Added Enter key handling in boot menu for quick proceed diff --git a/Docs/Configuration.pdf b/Docs/Configuration.pdf index ef25bf0359a5b2fc7ba22d41869a44ed087eed99..5379e1447963943b9f1e8da45a3a07bc2035a8cb 100644 Binary files a/Docs/Configuration.pdf and b/Docs/Configuration.pdf differ diff --git a/Docs/Configuration.tex b/Docs/Configuration.tex index 6e6be0cb4ef6b9a3f8cb368078b222e4925cd0dc..96cdd0309b735c4453a539d78bf4b205022dbc40 100755 --- a/Docs/Configuration.tex +++ b/Docs/Configuration.tex @@ -2110,9 +2110,9 @@ behaviour that does not go to any other sections \texttt{PollAppleHotKeys}\\ \textbf{Type}: \texttt{plist\ boolean}\\ \textbf{Failsafe}: \texttt{false}\\ - \textbf{Description}: Enable modifier hotkey handling in boot picker. + \textbf{Description}: Enable \texttt{modifier hotkey} handling in boot picker. - In addition to action hotkeys, which are partially described in \texttt{UsePicker} + In addition to \texttt{action hotkeys}, which are partially described in \texttt{UsePicker} section and are normally handled by Apple BDS, there exist modifier keys, which are handled by operating system bootloader, namely \texttt{boot.efi}. These keys allow to change operating system behaviour by providing different boot modes. @@ -2122,7 +2122,7 @@ behaviour that does not go to any other sections permissive manner from within boot picker. Such extensions include the support of tapping on keys in addition to holding and pressing \texttt{Shift} along with other keys instead of just \texttt{Shift} alone, which is not detectible on many - PS/2 keyboards. This list of known hotkeys includes: + PS/2 keyboards. This list of known \texttt{modifier hotkeys} includes: \begin{itemize} \tightlist \item \texttt{CMD+C+MINUS} --- disable board compatibility checking. @@ -2163,6 +2163,18 @@ behaviour that does not go to any other sections \textbf{Failsafe}: \texttt{false}\\ \textbf{Description}: Show simple boot picker to allow boot entry selection. +\item + \texttt{TakeoffDelay}\\ + \textbf{Type}: \texttt{plist\ integer}, 32 bit\\ + \textbf{Failsafe}: \texttt{0}\\ + \textbf{Description}: Delay in microseconds performed before handling + picker startup and \texttt{action hotkeys}. + + Introducing a delay may give extra time to hold the right \texttt{action hotkey} + sequence to e.g. boot to recovery mode. On some platforms setting this option to + at least \texttt{5000-10000} microseconds may be necessary to access + \texttt{action hotkeys} at all due to the nature of the keyboard driver. + \item \texttt{Timeout}\\ \textbf{Type}: \texttt{plist\ integer}, 32 bit\\ @@ -2185,8 +2197,9 @@ behaviour that does not go to any other sections test driver. OpenCore built-in boot picker contains a set of actions chosen during the boot process. - The list of supported actions is similar to Apple BDS and currently consists of the following - options: + The list of supported actions is similar to Apple BDS and in general can be accessed by + holding \texttt{action hotkeys} during boot process. Currently the following actions are + considered: \begin{itemize} \tightlist diff --git a/Docs/Differences/Differences.pdf b/Docs/Differences/Differences.pdf index 85a0919b42b67f728f5fae14d56ff4e998298a22..422a0ca1c766cc071c523979eb4256d8a020da2c 100644 Binary files a/Docs/Differences/Differences.pdf and b/Docs/Differences/Differences.pdf differ diff --git a/Docs/Differences/Differences.tex b/Docs/Differences/Differences.tex index 0832292e1a3b08311edef568ac1a7307007a5822..27fb066b01bcf373a5476c97cf8ae9aeae6b2590 100644 --- a/Docs/Differences/Differences.tex +++ b/Docs/Differences/Differences.tex @@ -1,7 +1,7 @@ \documentclass[]{article} %DIF LATEXDIFF DIFFERENCE FILE %DIF DEL PreviousConfiguration.tex Fri Jan 17 12:56:17 2020 -%DIF ADD ../Configuration.tex Sat Jan 25 14:22:59 2020 +%DIF ADD ../Configuration.tex Sat Feb 1 15:08:10 2020 \usepackage{lmodern} \usepackage{amssymb,amsmath} @@ -2170,9 +2170,9 @@ behaviour that does not go to any other sections \texttt{PollAppleHotKeys}\\ \textbf{Type}: \texttt{plist\ boolean}\\ \textbf{Failsafe}: \texttt{false}\\ - \textbf{Description}: Enable modifier hotkey handling in boot picker. + \textbf{Description}: Enable \DIFdelbegin \DIFdel{modifier hotkey }\DIFdelend \DIFaddbegin \texttt{\DIFadd{modifier hotkey}} \DIFaddend handling in boot picker. - In addition to action hotkeys, which are partially described in \texttt{UsePicker} + In addition to \DIFdelbegin \DIFdel{action hotkeys}\DIFdelend \DIFaddbegin \texttt{\DIFadd{action hotkeys}}\DIFaddend , which are partially described in \texttt{UsePicker} section and are normally handled by Apple BDS, there exist modifier keys, which are handled by operating system bootloader, namely \texttt{boot.efi}. These keys allow to change operating system behaviour by providing different boot modes. @@ -2182,7 +2182,7 @@ behaviour that does not go to any other sections permissive manner from within boot picker. Such extensions include the support of tapping on keys in addition to holding and pressing \texttt{Shift} along with other keys instead of just \texttt{Shift} alone, which is not detectible on many - PS/2 keyboards. This list of known hotkeys includes: + PS/2 keyboards. This list of known \DIFdelbegin \DIFdel{hotkeys }\DIFdelend \DIFaddbegin \texttt{\DIFadd{modifier hotkeys}} \DIFaddend includes: \begin{itemize} \tightlist \item \texttt{CMD+C+MINUS} --- disable board compatibility checking. @@ -2224,7 +2224,21 @@ behaviour that does not go to any other sections \textbf{Description}: Show simple boot picker to allow boot entry selection. \item - \texttt{Timeout}\\ + \DIFaddbegin \texttt{\DIFadd{TakeoffDelay}}\\ + \textbf{\DIFadd{Type}}\DIFadd{: }\texttt{\DIFadd{plist\ integer}}\DIFadd{, 32 bit}\\ + \textbf{\DIFadd{Failsafe}}\DIFadd{: }\texttt{\DIFadd{0}}\\ + \textbf{\DIFadd{Description}}\DIFadd{: Delay in microseconds performed before handling + picker startup and }\texttt{\DIFadd{action hotkeys}}\DIFadd{. +} + + \DIFadd{Introducing a delay may give extra time to hold the right }\texttt{\DIFadd{action hotkey}} + \DIFadd{sequence to e.g. boot to recovery mode. On some platforms setting this option to + at least }\texttt{\DIFadd{5000-10000}} \DIFadd{microseconds may be necessary to access + }\texttt{\DIFadd{action hotkeys}} \DIFadd{at all due to the nature of the keyboard driver. +} + +\item + \DIFaddend \texttt{Timeout}\\ \textbf{Type}: \texttt{plist\ integer}, 32 bit\\ \textbf{Failsafe}: \texttt{0}\\ \textbf{Description}: Timeout in seconds in boot picker before @@ -2245,8 +2259,9 @@ behaviour that does not go to any other sections test driver. OpenCore built-in boot picker contains a set of actions chosen during the boot process. - The list of supported actions is similar to Apple BDS and currently consists of the following - options: + The list of supported actions is similar to Apple BDS and \DIFdelbegin \DIFdel{currently consists of the following options}\DIFdelend \DIFaddbegin \DIFadd{in general can be accessed by + holding }\texttt{\DIFadd{action hotkeys}} \DIFadd{during boot process. Currently the following actions are + considered}\DIFaddend : \begin{itemize} \tightlist diff --git a/Docs/Sample.plist b/Docs/Sample.plist index 72e86f2162edf4c92c7acaee56841fd6d3e17c77..55a6d0dbfd739d89db549a0e381d47fa806f1b84 100644 --- a/Docs/Sample.plist +++ b/Docs/Sample.plist @@ -577,6 +577,8 @@ ShowPicker + TakeoffDelay + 0 Timeout 5 UsePicker diff --git a/Docs/SampleFull.plist b/Docs/SampleFull.plist index 7246732503452a480f5ad6c85051686bb7669e21..8a2adc360a7dfd631902984d033e33aea1f8ea40 100644 --- a/Docs/SampleFull.plist +++ b/Docs/SampleFull.plist @@ -577,6 +577,8 @@ ShowPicker + TakeoffDelay + 0 Timeout 5 UsePicker diff --git a/Platform/OpenCore/OpenCoreMisc.c b/Platform/OpenCore/OpenCoreMisc.c index 14707c211b0c4f2e6b5c66d784465fe08faa8a4e..1e02af74a38f0faa26d4f9dbd12592c71e7912eb 100644 --- a/Platform/OpenCore/OpenCoreMisc.c +++ b/Platform/OpenCore/OpenCoreMisc.c @@ -518,6 +518,7 @@ OcMiscBoot ( Context->ScanPolicy = Config->Misc.Security.ScanPolicy; Context->LoadPolicy = OC_LOAD_DEFAULT_POLICY; Context->TimeoutSeconds = Config->Misc.Boot.Timeout; + Context->TakeoffDelay = Config->Misc.Boot.TakeoffDelay; Context->StartImage = StartImage; Context->CustomBootGuid = CustomBootGuid; Context->ExcludeHandle = LoadHandle;