Final auto-cpufreq & power_helper improvements
This commit is contained in:
parent
0aef161528
commit
fc5ac16fd6
|
@ -298,21 +298,8 @@ def deploy_daemon():
|
||||||
# deploy cpufreqctl script func call
|
# deploy cpufreqctl script func call
|
||||||
cpufreqctl()
|
cpufreqctl()
|
||||||
|
|
||||||
if which("bluetoothctl") is not None:
|
# turn off bluetooth on boot
|
||||||
print("* Turn off bluetooth on boot")
|
bluetooth_disable()
|
||||||
btconf = Path("/etc/bluetooth/main.conf")
|
|
||||||
try:
|
|
||||||
orig_set = "AutoEnable=true"
|
|
||||||
change_set = "AutoEnable=false"
|
|
||||||
with btconf.open(mode="r+") as f:
|
|
||||||
content = f.read()
|
|
||||||
f.seek(0)
|
|
||||||
f.truncate()
|
|
||||||
f.write(content.replace(orig_set, change_set))
|
|
||||||
except Exception as e:
|
|
||||||
print(f"\nERROR:\nWas unable to turn off bluetooth on boot\n{repr(e)}")
|
|
||||||
else:
|
|
||||||
print("* Turn off bluetooth on boot [skipping] (package providing bluetooth access is not present)")
|
|
||||||
|
|
||||||
auto_cpufreq_stats_path.touch(exist_ok=True)
|
auto_cpufreq_stats_path.touch(exist_ok=True)
|
||||||
|
|
||||||
|
@ -329,16 +316,6 @@ def deploy_daemon():
|
||||||
|
|
||||||
call("/usr/bin/auto-cpufreq-install", shell=True)
|
call("/usr/bin/auto-cpufreq-install", shell=True)
|
||||||
|
|
||||||
# ToDo: change to be a warning and move to power_helper?
|
|
||||||
def bt_snap():
|
|
||||||
if os.getenv("PKG_MARKER") == "SNAP":
|
|
||||||
try:
|
|
||||||
print("\n* Turn off bluetooth on boot")
|
|
||||||
call("rfkill block bluetooth", shell=True)
|
|
||||||
except:
|
|
||||||
print("n\nERROR:\nWas unable to turn off bluetooth on boot")
|
|
||||||
|
|
||||||
|
|
||||||
# remove auto-cpufreq daemon
|
# remove auto-cpufreq daemon
|
||||||
def remove():
|
def remove():
|
||||||
|
|
||||||
|
@ -349,21 +326,8 @@ def remove():
|
||||||
|
|
||||||
print("\n" + "-" * 21 + " Removing auto-cpufreq daemon " + "-" * 22 + "\n")
|
print("\n" + "-" * 21 + " Removing auto-cpufreq daemon " + "-" * 22 + "\n")
|
||||||
|
|
||||||
if which("bluetoothctl") is not None:
|
# turn on bluetooth on boot
|
||||||
print("* Turn on bluetooth on boot")
|
bluetooth_enable()
|
||||||
btconf = "/etc/bluetooth/main.conf"
|
|
||||||
try:
|
|
||||||
orig_set = "AutoEnable=true"
|
|
||||||
change_set = "AutoEnable=false"
|
|
||||||
with open(btconf, "r+") as f:
|
|
||||||
content = f.read()
|
|
||||||
f.seek(0)
|
|
||||||
f.truncate()
|
|
||||||
f.write(content.replace(change_set, orig_set))
|
|
||||||
except Exception as e:
|
|
||||||
print(f"\nERROR:\nWas unable to turn on bluetooth on boot\n{repr(e)}")
|
|
||||||
else:
|
|
||||||
print("* Turn on bluetooth on boot [skipping] (package providing bluetooth access is not present)")
|
|
||||||
|
|
||||||
# output warning if gnome power profile is stopped
|
# output warning if gnome power profile is stopped
|
||||||
gnome_power_rm_reminder()
|
gnome_power_rm_reminder()
|
||||||
|
@ -1086,6 +1050,7 @@ def daemon_running_msg():
|
||||||
print(
|
print(
|
||||||
'ERROR: auto-cpufreq is running in daemon mode.\n\nMake sure to stop the deamon before running with --live or --monitor mode'
|
'ERROR: auto-cpufreq is running in daemon mode.\n\nMake sure to stop the deamon before running with --live or --monitor mode'
|
||||||
)
|
)
|
||||||
|
footer()
|
||||||
|
|
||||||
# check if auto-cpufreq --daemon is running
|
# check if auto-cpufreq --daemon is running
|
||||||
def running_daemon():
|
def running_daemon():
|
||||||
|
|
|
@ -13,6 +13,12 @@ if sys.argv[0] == "power_helper.py":
|
||||||
else:
|
else:
|
||||||
app_name="auto-cpufreq"
|
app_name="auto-cpufreq"
|
||||||
|
|
||||||
|
def header():
|
||||||
|
print("\n------------------------- auto-cpufreq: Power helper -------------------------\n")
|
||||||
|
|
||||||
|
def helper_opts():
|
||||||
|
print("\nFor full list of options run: python3 power_helper.py --help")
|
||||||
|
|
||||||
# detect if gnome power profile service is running
|
# detect if gnome power profile service is running
|
||||||
if os.getenv('PKG_MARKER') != "SNAP":
|
if os.getenv('PKG_MARKER') != "SNAP":
|
||||||
gnome_power_stats = call(["systemctl", "is-active", "--quiet", "power-profiles-daemon"])
|
gnome_power_stats = call(["systemctl", "is-active", "--quiet", "power-profiles-daemon"])
|
||||||
|
@ -49,26 +55,86 @@ def gnome_power_disable_live():
|
||||||
# disable gnome >= 40 power profiles (install)
|
# disable gnome >= 40 power profiles (install)
|
||||||
def gnome_power_svc_disable():
|
def gnome_power_svc_disable():
|
||||||
if(gnome_power_stats == 0):
|
if(gnome_power_stats == 0):
|
||||||
print("\n* Disabling GNOME power profiles")
|
print("* Disabling GNOME power profiles")
|
||||||
call(["systemctl", "stop", "power-profiles-daemon"])
|
call(["systemctl", "stop", "power-profiles-daemon"])
|
||||||
call(["systemctl", "disable", "power-profiles-daemon"])
|
call(["systemctl", "disable", "power-profiles-daemon"])
|
||||||
call(["systemctl", "mask", "power-profiles-daemon"])
|
call(["systemctl", "mask", "power-profiles-daemon"])
|
||||||
call(["systemctl", "daemon-reload"])
|
call(["systemctl", "daemon-reload"])
|
||||||
|
else:
|
||||||
|
print("* GNOME power profiles already disabled")
|
||||||
|
|
||||||
# enable gnome >= 40 power profiles (uninstall)
|
# enable gnome >= 40 power profiles (uninstall)
|
||||||
def gnome_power_svc_enable():
|
def gnome_power_svc_enable():
|
||||||
if(gnome_power_stats != 0):
|
if(gnome_power_stats != 0):
|
||||||
print("\n* Enabling GNOME power profiles")
|
print("* Enabling GNOME power profiles")
|
||||||
call(["systemctl", "unmask", "power-profiles-daemon"])
|
call(["systemctl", "unmask", "power-profiles-daemon"])
|
||||||
call(["systemctl", "start", "power-profiles-daemon"])
|
call(["systemctl", "start", "power-profiles-daemon"])
|
||||||
call(["systemctl", "enable", "power-profiles-daemon"])
|
call(["systemctl", "enable", "power-profiles-daemon"])
|
||||||
call(["systemctl", "daemon-reload"])
|
call(["systemctl", "daemon-reload"])
|
||||||
|
else:
|
||||||
|
print("* GNOME power profiles already enabled")
|
||||||
|
|
||||||
|
|
||||||
# gnome power profiles current status
|
# gnome power profiles current status
|
||||||
def gnome_power_svc_status():
|
def gnome_power_svc_status():
|
||||||
print("\n* GNOME power profiles status")
|
print("* GNOME power profiles status")
|
||||||
call(["systemctl", "status", "power-profiles-daemon"])
|
call(["systemctl", "status", "power-profiles-daemon"])
|
||||||
|
|
||||||
|
|
||||||
|
# disable bluetooth on boot
|
||||||
|
def bluetooth_disable():
|
||||||
|
if os.getenv("PKG_MARKER") == "SNAP":
|
||||||
|
bluetooth_notif_snap()
|
||||||
|
elif which("bluetoothctl") is not None:
|
||||||
|
print("* Turn off bluetooth on boot")
|
||||||
|
btconf = Path("/etc/bluetooth/main.conf")
|
||||||
|
try:
|
||||||
|
orig_set = "AutoEnable=true"
|
||||||
|
change_set = "AutoEnable=false"
|
||||||
|
with btconf.open(mode="r+") as f:
|
||||||
|
content = f.read()
|
||||||
|
f.seek(0)
|
||||||
|
f.truncate()
|
||||||
|
f.write(content.replace(orig_set, change_set))
|
||||||
|
except Exception as e:
|
||||||
|
print(f"\nERROR:\nWas unable to turn off bluetooth on boot\n{repr(e)}")
|
||||||
|
else:
|
||||||
|
print("* Turn off bluetooth on boot [skipping] (package providing bluetooth access is not present)")
|
||||||
|
|
||||||
|
|
||||||
|
# enable bluetooth on boot
|
||||||
|
def bluetooth_enable():
|
||||||
|
if os.getenv("PKG_MARKER") == "SNAP":
|
||||||
|
bluetooth_on_notif_snap()
|
||||||
|
if which("bluetoothctl") is not None:
|
||||||
|
print("* Turn on bluetooth on boot")
|
||||||
|
btconf = "/etc/bluetooth/main.conf"
|
||||||
|
try:
|
||||||
|
orig_set = "AutoEnable=true"
|
||||||
|
change_set = "AutoEnable=false"
|
||||||
|
with open(btconf, "r+") as f:
|
||||||
|
content = f.read()
|
||||||
|
f.seek(0)
|
||||||
|
f.truncate()
|
||||||
|
f.write(content.replace(change_set, orig_set))
|
||||||
|
except Exception as e:
|
||||||
|
print(f"\nERROR:\nWas unable to turn on bluetooth on boot\n{repr(e)}")
|
||||||
|
else:
|
||||||
|
print("* Turn on bluetooth on boot [skipping] (package providing bluetooth access is not present)")
|
||||||
|
|
||||||
|
|
||||||
|
# turn off bluetooth on snap message
|
||||||
|
def bluetooth_notif_snap():
|
||||||
|
print("\n* Unable to turn off bluetooth on boot due to Snap package restrictions!")
|
||||||
|
print("\nSteps to perform this action using auto-cpufreq: power_helper script:")
|
||||||
|
print("python3 power_helper.py --bluetooth_boot_off")
|
||||||
|
|
||||||
|
# turn off bluetooth on snap message
|
||||||
|
def bluetooth_on_notif_snap():
|
||||||
|
print("\n* Unable to turn on bluetooth on boot due to Snap package restrictions!")
|
||||||
|
print("\nSteps to perform this action using auto-cpufreq: power_helper script:")
|
||||||
|
print("python3 power_helper.py --bluetooth_boot_on")
|
||||||
|
|
||||||
# gnome power removal reminder
|
# gnome power removal reminder
|
||||||
def gnome_power_rm_reminder():
|
def gnome_power_rm_reminder():
|
||||||
if gnome_power_stats != 0:
|
if gnome_power_stats != 0:
|
||||||
|
@ -80,15 +146,17 @@ def gnome_power_rm_reminder():
|
||||||
print("cd auto-cpufreq/auto_cpufreq")
|
print("cd auto-cpufreq/auto_cpufreq")
|
||||||
print("python3 power_helper.py --gnome-power-enable")
|
print("python3 power_helper.py --gnome-power-enable")
|
||||||
|
|
||||||
|
|
||||||
def gnome_power_rm_reminder_snap():
|
def gnome_power_rm_reminder_snap():
|
||||||
print("\n----------------------------------- Warning -----------------------------------\n")
|
print("\n----------------------------------- Warning -----------------------------------\n")
|
||||||
print("\nUnable to detect state of GNOME Power Profiles daemon service!")
|
print("Unable to detect state of GNOME Power Profiles daemon service!")
|
||||||
print("Now it's recommended to enable this service.")
|
print("Now it's recommended to enable this service.")
|
||||||
print("\nSteps to perform this action using auto-cpufreq: power_helper script:")
|
print("\nSteps to perform this action using auto-cpufreq: power_helper script:")
|
||||||
print("git clone https://github.com/AdnanHodzic/auto-cpufreq.git")
|
print("git clone https://github.com/AdnanHodzic/auto-cpufreq.git")
|
||||||
print("cd auto-cpufreq/auto_cpufreq")
|
print("cd auto-cpufreq/auto_cpufreq")
|
||||||
print("python3 power_helper.py --gnome-power-enable")
|
print("python3 power_helper.py --gnome-power-enable")
|
||||||
|
|
||||||
|
|
||||||
def valid_options():
|
def valid_options():
|
||||||
print("--gnome-power-enable\t\tEnable GNOME Power Profiles daemon")
|
print("--gnome-power-enable\t\tEnable GNOME Power Profiles daemon")
|
||||||
print("--gnome-power-disable\t\tDisable GNOME Power Profiles daemon\n")
|
print("--gnome-power-disable\t\tDisable GNOME Power Profiles daemon\n")
|
||||||
|
@ -99,31 +167,45 @@ def valid_options():
|
||||||
@click.option("--gnome_power_enable", is_flag=True, help="Enable GNOME Power profiles service")
|
@click.option("--gnome_power_enable", is_flag=True, help="Enable GNOME Power profiles service")
|
||||||
@click.option("--gnome_power_disable", is_flag=True, help="Disable GNOME Power profiles service")
|
@click.option("--gnome_power_disable", is_flag=True, help="Disable GNOME Power profiles service")
|
||||||
@click.option("--gnome_power_status", is_flag=True, help="Get status of GNOME Power profiles service")
|
@click.option("--gnome_power_status", is_flag=True, help="Get status of GNOME Power profiles service")
|
||||||
def main(gnome_power_enable, gnome_power_disable, gnome_power_status):
|
@click.option("--bluetooth_boot_on", is_flag=True, help="Turn on Bluetooth on boot")
|
||||||
|
@click.option("--bluetooth_boot_off", is_flag=True, help="Turn off Bluetooth on boot")
|
||||||
|
def main(gnome_power_enable, gnome_power_disable, gnome_power_status, bluetooth_boot_off, bluetooth_boot_on):
|
||||||
|
|
||||||
root_check()
|
root_check()
|
||||||
if len(sys.argv) == 1:
|
if len(sys.argv) == 1:
|
||||||
print("\n------------------------- auto-cpufreq: Power helper -------------------------\n")
|
header()
|
||||||
print("Unrecognized option!\n\nRun: \"" + app_name + " --help\" for list of available options.")
|
print("Unrecognized option!\n\nRun: \"" + app_name + " --help\" for list of available options.")
|
||||||
footer()
|
footer()
|
||||||
else:
|
else:
|
||||||
if gnome_power_enable:
|
if gnome_power_enable:
|
||||||
footer()
|
header()
|
||||||
root_check()
|
root_check()
|
||||||
print("Enabling GNOME Power Profiles")
|
|
||||||
gnome_power_svc_enable()
|
gnome_power_svc_enable()
|
||||||
|
helper_opts()
|
||||||
footer()
|
footer()
|
||||||
elif gnome_power_disable:
|
elif gnome_power_disable:
|
||||||
footer()
|
header()
|
||||||
root_check()
|
root_check()
|
||||||
print("Disabling GNOME Power Profiles")
|
|
||||||
gnome_power_svc_disable()
|
gnome_power_svc_disable()
|
||||||
|
helper_opts()
|
||||||
footer()
|
footer()
|
||||||
elif gnome_power_status:
|
elif gnome_power_status:
|
||||||
footer()
|
header()
|
||||||
root_check()
|
root_check()
|
||||||
print("Status of GNOME Power Profiles")
|
|
||||||
gnome_power_svc_status()
|
gnome_power_svc_status()
|
||||||
|
helper_opts()
|
||||||
|
footer()
|
||||||
|
elif bluetooth_boot_off:
|
||||||
|
header()
|
||||||
|
root_check()
|
||||||
|
bluetooth_disable()
|
||||||
|
helper_opts()
|
||||||
|
footer()
|
||||||
|
elif bluetooth_boot_on:
|
||||||
|
header()
|
||||||
|
root_check()
|
||||||
|
bluetooth_enable()
|
||||||
|
helper_opts()
|
||||||
footer()
|
footer()
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -154,8 +154,7 @@ def main(config, daemon, debug, install, live, log, monitor, stats, version, don
|
||||||
root_check()
|
root_check()
|
||||||
running_daemon()
|
running_daemon()
|
||||||
gnome_power_detect_snap()
|
gnome_power_detect_snap()
|
||||||
# ToDo: move elsewhere after func revamp
|
bluetooth_notif_snap()
|
||||||
#bt_snap()
|
|
||||||
gov_check()
|
gov_check()
|
||||||
run("snapctl set daemon=enabled", shell=True)
|
run("snapctl set daemon=enabled", shell=True)
|
||||||
run("snapctl start --enable auto-cpufreq", shell=True)
|
run("snapctl start --enable auto-cpufreq", shell=True)
|
||||||
|
|
Loading…
Reference in New Issue