feat: Make resolution configurable (#582)
This commit is contained in:
parent
2f5f01dbb2
commit
5bf54a4158
@ -1,6 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
: "${XRES:=""}"
|
||||
: "${YRES:=""}"
|
||||
: "${VERIFY:=""}"
|
||||
: "${REGION:=""}"
|
||||
: "${MANUAL:=""}"
|
||||
@ -2073,6 +2075,12 @@ prepareInstall() {
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -z "$YRES" ] && YRES="720"
|
||||
[ -z "$XRES" ] && XRES="1280"
|
||||
|
||||
XHEX=$(printf '%x\n' "$XRES")
|
||||
YHEX=$(printf '%x\n' "$YRES")
|
||||
|
||||
local username="Docker"
|
||||
local password="*"
|
||||
|
||||
@ -2118,13 +2126,14 @@ prepareInstall() {
|
||||
echo " OrgName=\"Windows for Docker\""
|
||||
echo " ProductKey=$key"
|
||||
echo ""
|
||||
echo "[LicenseFilePrintData]"
|
||||
echo " AutoMode=PerServer"
|
||||
echo " AutoUsers=5"
|
||||
echo ""
|
||||
echo "[Identification]"
|
||||
echo " JoinWorkgroup = WORKGROUP"
|
||||
echo ""
|
||||
echo "[Display]"
|
||||
echo " BitsPerPel=32"
|
||||
echo " XResolution=$XRES"
|
||||
echo " YResolution=$YRES"
|
||||
echo ""
|
||||
echo "[Networking]"
|
||||
echo " InstallDefaultComponents=Yes"
|
||||
echo ""
|
||||
@ -2140,6 +2149,17 @@ prepareInstall() {
|
||||
echo ""
|
||||
} | unix2dos > "$target/WINNT.SIF"
|
||||
|
||||
if [[ "$driver" == "2k3" ]]; then
|
||||
{ echo "[Components]"
|
||||
echo " TerminalServer=On"
|
||||
echo ""
|
||||
echo "[LicenseFilePrintData]"
|
||||
echo " AutoMode=PerServer"
|
||||
echo " AutoUsers=5"
|
||||
echo ""
|
||||
} | unix2dos >> "$target/WINNT.SIF"
|
||||
fi
|
||||
|
||||
{ echo "Windows Registry Editor Version 5.00"
|
||||
echo ""
|
||||
echo "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Security]"
|
||||
@ -2157,18 +2177,12 @@ prepareInstall() {
|
||||
echo "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]"
|
||||
echo "\"LimitBlankPasswordUse\"=dword:00000000"
|
||||
echo ""
|
||||
echo "[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\srvWiz]"
|
||||
echo "@=dword:00000000"
|
||||
echo ""
|
||||
echo "[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Tour]"
|
||||
echo "\"RunCount\"=dword:00000000"
|
||||
echo ""
|
||||
echo "[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]"
|
||||
echo "\"HideFileExt\"=dword:00000000"
|
||||
echo ""
|
||||
echo "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ServerOOBE\SecurityOOBE]"
|
||||
echo "\"DontLaunchSecurityOOBE\"=dword:00000000"
|
||||
echo ""
|
||||
echo "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]"
|
||||
echo "\"DefaultUserName\"=\"$username\""
|
||||
echo "\"DefaultDomainName\"=\"Dockur\""
|
||||
@ -2178,15 +2192,31 @@ prepareInstall() {
|
||||
echo ""
|
||||
echo "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{23A77BF7-ED96-40EC-AF06-9B1F4867732A}\0000]"
|
||||
echo "\"DefaultSettings.BitsPerPel\"=dword:00000020"
|
||||
echo "\"DefaultSettings.XResolution\"=dword:00000780"
|
||||
echo "\"DefaultSettings.YResolution\"=dword:00000438"
|
||||
echo "\"DefaultSettings.XResolution\"=dword:00000$XHEX"
|
||||
echo "\"DefaultSettings.YResolution\"=dword:00000$YHEX"
|
||||
echo ""
|
||||
echo "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current\System\CurrentControlSet\Control\VIDEO\{23A77BF7-ED96-40EC-AF06-9B1F4867732A}\0000]"
|
||||
echo "\"DefaultSettings.BitsPerPel\"=dword:00000020"
|
||||
echo "\"DefaultSettings.XResolution\"=dword:00000$XHEX"
|
||||
echo "\"DefaultSettings.YResolution\"=dword:00000$YHEX"
|
||||
echo ""
|
||||
echo "[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]"
|
||||
echo "\"ScreenSaver\"=\"reg add \\\"HKCU\\\\Control Panel\\\\Desktop\\\" /f /v \\\"SCRNSAVE.EXE\\\" /t REG_SZ /d \\\"off\\\"\""
|
||||
echo "\"ScreenSaverOff\"=\"reg add \\\"HKCU\\\\Control Panel\\\\Desktop\\\" /f /v \\\"ScreenSaveActive\\\" /t REG_SZ /d \\\"0\\\"\""
|
||||
echo "$oem"
|
||||
echo ""
|
||||
} | unix2dos > "$dir/\$OEM\$/install.reg"
|
||||
|
||||
if [[ "$driver" == "2k3" ]]; then
|
||||
{ echo "[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\srvWiz]"
|
||||
echo "@=dword:00000000"
|
||||
echo ""
|
||||
echo "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ServerOOBE\SecurityOOBE]"
|
||||
echo "\"DontLaunchSecurityOOBE\"=dword:00000000"
|
||||
echo ""
|
||||
} | unix2dos >> "$dir/\$OEM\$/install.reg"
|
||||
fi
|
||||
|
||||
{ echo "Set WshShell = WScript.CreateObject(\"WScript.Shell\")"
|
||||
echo "Set WshNetwork = WScript.CreateObject(\"WScript.Network\")"
|
||||
echo "Set oMachine = GetObject(\"WinNT://\" & WshNetwork.ComputerName)"
|
||||
|
@ -119,10 +119,11 @@ finishInstall() {
|
||||
fi
|
||||
|
||||
rm -f "$STORAGE/windows.old"
|
||||
rm -f "$STORAGE/windows.type"
|
||||
rm -f "$STORAGE/windows.vga"
|
||||
rm -f "$STORAGE/windows.base"
|
||||
rm -f "$STORAGE/windows.boot"
|
||||
rm -f "$STORAGE/windows.mode"
|
||||
rm -f "$STORAGE/windows.type"
|
||||
|
||||
cp -f /run/version "$STORAGE/windows.ver"
|
||||
|
||||
@ -155,6 +156,10 @@ finishInstall() {
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "${VGA:-}" ] && [[ "${VGA:-}" != "virtio" ]] && [[ "${VGA:-}" != "ramfb" ]]; then
|
||||
echo "$VGA" > "$STORAGE/windows.vga"
|
||||
fi
|
||||
|
||||
if [ -n "${DISK_TYPE:-}" ] && [[ "${DISK_TYPE:-}" != "scsi" ]]; then
|
||||
echo "$DISK_TYPE" > "$STORAGE/windows.type"
|
||||
fi
|
||||
@ -613,6 +618,12 @@ updateXML() {
|
||||
local language="$2"
|
||||
local culture region user admin pass keyboard
|
||||
|
||||
[ -z "$YRES" ] && YRES="720"
|
||||
[ -z "$XRES" ] && XRES="1280"
|
||||
|
||||
sed -i "s/<VerticalResolution>1080<\/VerticalResolution>/<VerticalResolution>$YRES<\/VerticalResolution>/g" "$asset"
|
||||
sed -i "s/<HorizontalResolution>1920<\/HorizontalResolution>/<HorizontalResolution>$XRES<\/HorizontalResolution>/g" "$asset"
|
||||
|
||||
culture=$(getLanguage "$language" "culture")
|
||||
|
||||
if [ -n "$culture" ] && [[ "${culture,,}" != "en-us" ]]; then
|
||||
@ -967,10 +978,14 @@ bootWindows() {
|
||||
|
||||
rm -rf "$TMP"
|
||||
|
||||
[[ "${PLATFORM,,}" == "arm64" ]] && VGA="virtio-gpu"
|
||||
if [ -s "$STORAGE/windows.vga" ] && [ -f "$STORAGE/windows.vga" ]; then
|
||||
[ -z "${VGA:-}" ] && VGA=$(<"$STORAGE/windows.vga")
|
||||
else
|
||||
[ -z "${VGA:-}" ] && [[ "${PLATFORM,,}" == "arm64" ]] && VGA="virtio-gpu"
|
||||
fi
|
||||
|
||||
if [ -s "$STORAGE/windows.type" ] && [ -f "$STORAGE/windows.type" ]; then
|
||||
DISK_TYPE=$(<"$STORAGE/windows.type")
|
||||
[ -z "${DISK_TYPE:-}" ] && DISK_TYPE=$(<"$STORAGE/windows.type")
|
||||
fi
|
||||
|
||||
if [ -s "$STORAGE/windows.mode" ] && [ -f "$STORAGE/windows.mode" ]; then
|
||||
|
@ -3,8 +3,8 @@ set -Eeuo pipefail
|
||||
|
||||
: "${SAMBA:="Y"}"
|
||||
|
||||
[[ "$SAMBA" != [Yy1]* ]] && return 0
|
||||
[[ "$NETWORK" != [Yy1]* ]] && return 0
|
||||
[[ "$SAMBA" == [Nn]* ]] && return 0
|
||||
[[ "$NETWORK" == [Nn]* ]] && return 0
|
||||
|
||||
hostname="host.lan"
|
||||
interface="dockerbridge"
|
||||
|
Loading…
Reference in New Issue
Block a user