From 823de2dd9ed613e4e2e228bc97d98699606b5e3c Mon Sep 17 00:00:00 2001 From: 2Shirt <2xShirt@gmail.com> Date: Fri, 10 May 2019 20:33:46 -0600 Subject: [PATCH] Added disable Fast Startup enable Hibernation * Addresses issue #87 --- .bin/Scripts/functions/setup.py | 11 +++++++++++ .bin/Scripts/settings/setup.py | 8 ++++++++ .bin/Scripts/system_setup.py | 28 ++++++++++++++++++++-------- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/.bin/Scripts/functions/setup.py b/.bin/Scripts/functions/setup.py index e4a8823c..51e2f3bc 100644 --- a/.bin/Scripts/functions/setup.py +++ b/.bin/Scripts/functions/setup.py @@ -85,6 +85,11 @@ def create_system_restore_point(): run_program(cmd) +def disable_fast_startup(): + """Disable Fast Startup.""" + write_registry_settings(SETTINGS_FAST_STARTUP, all_users=True) + + def disable_windows_telemetry(): """Disable Windows 10 telemetry settings with O&O ShutUp10.""" extract_item('ShutUp10', silent=True) @@ -95,6 +100,12 @@ def disable_windows_telemetry(): run_program(cmd) +def enable_hibernation(): + """Enable hibernation.""" + cmd = ['powercfg', '/hibernation', 'on'] + run_program(cmd) + + def enable_regback(): """Enable RegBack.""" write_registry_settings(SETTINGS_REGBACK, all_users=True) diff --git a/.bin/Scripts/settings/setup.py b/.bin/Scripts/settings/setup.py index 72d6a56f..8fd6a5c4 100644 --- a/.bin/Scripts/settings/setup.py +++ b/.bin/Scripts/settings/setup.py @@ -155,6 +155,14 @@ SETTINGS_EXPLORER_USER = { }, } +# Fast Startup +SETTINGS_FAST_STARTUP = { + # Disable Fast Startup + r'SOFTWARE\Policies\Microsoft\Windows\System': { + 'DWORD Items': {'HiberbootEnabled': 0}, + }, + } + # LibreOffice LIBREOFFICE_XCU_DATA = ''' diff --git a/.bin/Scripts/system_setup.py b/.bin/Scripts/system_setup.py index 1359b69b..a9185da8 100644 --- a/.bin/Scripts/system_setup.py +++ b/.bin/Scripts/system_setup.py @@ -73,9 +73,9 @@ SETUP_ACTIONS = OrderedDict({ 'Classic Start': {'New': True, 'Fab': True, 'Cur': False, 'HW': False, 'Function': config_classicstart, 'Win10 only': True,}, 'Explorer (user)': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': config_explorer_user, 'Win10 only': True,}, 'Explorer (system)': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': config_explorer_system, 'Win10 only': True,}, - #'Disable Fast Startup': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': TODO, 'Win10 only': True,}, - #'Enable Hibernation': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': TODO, 'Win10 only': True,}, 'Disable telemetry': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': disable_windows_telemetry, 'Win10 only': True,}, + 'Disable Fast Startup': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': disable_fast_startup, 'If answer': 'Fast-Hiber', 'Win10 only': True,}, + 'Enable Hibernation': {'New': True, 'Fab': True, 'Cur': True, 'HW': False, 'Function': enable_hibernation, 'If answer': 'Fast-Hiber', 'Win10 only': True,}, 'Enable RegBack': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': enable_regback, 'Win10 only': True,}, 'Windows 10 Updates': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': config_windows_updates, 'Win10 only': True,}, 'Enable BSoD mini dumps': {'New': True, 'Fab': True, 'Cur': True, 'HW': True, 'Function': enable_mini_dumps,}, @@ -133,16 +133,19 @@ SETUP_ACTION_KEYS = ( ) SETUP_QUESTIONS = { # AV - 'ESET': {'New': None, 'Fab': None, 'Cur': None, 'HW': False}, - 'MSE': {'New': None, 'Fab': None, 'Cur': None, 'HW': False}, + 'ESET': {'New': None, 'Fab': None, 'Cur': None, 'HW': False}, + 'MSE': {'New': None, 'Fab': None, 'Cur': None, 'HW': False}, + + # Fast Startup / Hibernation + 'Fast-Hiber': {'New': None, 'Fab': None, 'Cur': None, 'HW': False}, # LibreOffice - 'LibreOffice':{'New': None, 'Fab': None, 'Cur': None, 'HW': False}, + 'LibreOffice': {'New': None, 'Fab': None, 'Cur': None, 'HW': False}, # Ninite - 'Base': {'New': True, 'Fab': True, 'Cur': True, 'HW': False}, - 'Missing': {'New': False, 'Fab': True, 'Cur': False, 'HW': False}, - 'Standard': {'New': True, 'Fab': True, 'Cur': False, 'HW': False}, + 'Base': {'New': True, 'Fab': True, 'Cur': True, 'HW': False}, + 'Missing': {'New': False, 'Fab': True, 'Cur': False, 'HW': False}, + 'Standard': {'New': True, 'Fab': True, 'Cur': False, 'HW': False}, } # pylint: enable=bad-whitespace,line-too-long @@ -196,6 +199,15 @@ def get_answers(setup_mode): if answers['LibreOffice'] is None: answers['LibreOffice'] = ask('Install LibreOffice?') + if answers['Fast-Hiber'] is None: + if global_vars['OS']['Version'] == '10': + print_standard(' ') + print_standard('Disable Fast Startup and enable Hibernation?') + print_standard(' Recommended for SSDs, optional for HDDs') + answers['Fast-Hiber'] = ask(' Proceed?') + else: + answers['Fast-Hiber'] = False + return answers