Add an option to hide the power save warning at startup (#282)
* add an option to hide the power save warning at startup * Fixed stuff and made it positive * Changed description and name of switch * Fixed tab * Fixed name of element (my bad) * Check power saver mode state when switching * Warning set to true by default --------- Co-authored-by: Jeffry Samuel <jeffrysamuer@gmail.com>
This commit is contained in:
parent
6e0ae393a4
commit
603fdb8150
@ -110,6 +110,7 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
instance_idle_timer = Gtk.Template.Child()
|
instance_idle_timer = Gtk.Template.Child()
|
||||||
|
|
||||||
background_switch = Gtk.Template.Child()
|
background_switch = Gtk.Template.Child()
|
||||||
|
powersaver_warning_switch = Gtk.Template.Child()
|
||||||
remote_connection_switch = Gtk.Template.Child()
|
remote_connection_switch = Gtk.Template.Child()
|
||||||
remote_connection_entry = Gtk.Template.Child()
|
remote_connection_entry = Gtk.Template.Child()
|
||||||
remote_bearer_token_entry = Gtk.Template.Child()
|
remote_bearer_token_entry = Gtk.Template.Child()
|
||||||
@ -253,6 +254,15 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
logger.debug("Switching run on background")
|
logger.debug("Switching run on background")
|
||||||
self.set_hide_on_close(switch.get_active())
|
self.set_hide_on_close(switch.get_active())
|
||||||
self.save_server_config()
|
self.save_server_config()
|
||||||
|
|
||||||
|
@Gtk.Template.Callback()
|
||||||
|
def switch_powersaver_warning(self, switch, user_data):
|
||||||
|
logger.debug("Switching powersaver warning banner")
|
||||||
|
if switch.get_active():
|
||||||
|
self.banner.set_revealed(Gio.PowerProfileMonitor.dup_default().get_power_saver_enabled())
|
||||||
|
else:
|
||||||
|
self.banner.set_revealed(False)
|
||||||
|
self.save_server_config()
|
||||||
|
|
||||||
@Gtk.Template.Callback()
|
@Gtk.Template.Callback()
|
||||||
def closing_app(self, user_data):
|
def closing_app(self, user_data):
|
||||||
@ -493,6 +503,7 @@ Generate a title following these rules:
|
|||||||
'run_remote': self.ollama_instance.remote,
|
'run_remote': self.ollama_instance.remote,
|
||||||
'local_port': self.ollama_instance.local_port,
|
'local_port': self.ollama_instance.local_port,
|
||||||
'run_on_background': self.background_switch.get_active(),
|
'run_on_background': self.background_switch.get_active(),
|
||||||
|
'powersaver_warning': self.powersaver_warning_switch.get_active(),
|
||||||
'model_tweaks': self.ollama_instance.tweaks,
|
'model_tweaks': self.ollama_instance.tweaks,
|
||||||
'ollama_overrides': self.ollama_instance.overrides,
|
'ollama_overrides': self.ollama_instance.overrides,
|
||||||
'idle_timer': self.ollama_instance.idle_timer_delay
|
'idle_timer': self.ollama_instance.idle_timer_delay
|
||||||
@ -772,6 +783,9 @@ Generate a title following these rules:
|
|||||||
elif extension == 'pdf':
|
elif extension == 'pdf':
|
||||||
self.attach_file(file.get_path(), 'pdf')
|
self.attach_file(file.get_path(), 'pdf')
|
||||||
|
|
||||||
|
def power_saver_toggled(self, monitor):
|
||||||
|
self.banner.set_revealed(monitor.get_power_saver_enabled() and self.powersaver_warning_switch.get_active())
|
||||||
|
|
||||||
def prepare_alpaca(self, local_port:int, remote_url:str, remote:bool, tweaks:dict, overrides:dict, bearer_token:str, idle_timer_delay:int, save:bool, show_launch_dialog:bool):
|
def prepare_alpaca(self, local_port:int, remote_url:str, remote:bool, tweaks:dict, overrides:dict, bearer_token:str, idle_timer_delay:int, save:bool, show_launch_dialog:bool):
|
||||||
#Show launch dialog
|
#Show launch dialog
|
||||||
if show_launch_dialog:
|
if show_launch_dialog:
|
||||||
@ -828,10 +842,7 @@ Generate a title following these rules:
|
|||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
self.banner.set_revealed(Gio.PowerProfileMonitor.dup_default().get_power_saver_enabled())
|
|
||||||
Gio.PowerProfileMonitor.dup_default().connect("notify::power-saver-enabled", lambda monitor, *_: self.banner.set_revealed(monitor.get_power_saver_enabled()))
|
|
||||||
self.banner.connect('button-clicked', lambda *_: self.banner.set_revealed(False))
|
|
||||||
|
|
||||||
message_widget.window = self
|
message_widget.window = self
|
||||||
chat_widget.window = self
|
chat_widget.window = self
|
||||||
model_widget.window = self
|
model_widget.window = self
|
||||||
@ -883,13 +894,24 @@ Generate a title following these rules:
|
|||||||
try:
|
try:
|
||||||
with open(os.path.join(config_dir, "server.json"), "r", encoding="utf-8") as f:
|
with open(os.path.join(config_dir, "server.json"), "r", encoding="utf-8") as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
self.background_switch.set_active(data['run_on_background'])
|
self.background_switch.set_active(data['run_on_background'])
|
||||||
if 'idle_timer' not in data:
|
if 'idle_timer' not in data:
|
||||||
data['idle_timer'] = 0
|
data['idle_timer'] = 0
|
||||||
|
if 'powersaver_warning' not in data:
|
||||||
|
data['powersaver_warning'] = True
|
||||||
|
self.powersaver_warning_switch.set_active(data['powersaver_warning'])
|
||||||
threading.Thread(target=self.prepare_alpaca, args=(data['local_port'], data['remote_url'], data['run_remote'], data['model_tweaks'], data['ollama_overrides'], data['remote_bearer_token'], round(data['idle_timer']), False, True)).start()
|
threading.Thread(target=self.prepare_alpaca, args=(data['local_port'], data['remote_url'], data['run_remote'], data['model_tweaks'], data['ollama_overrides'], data['remote_bearer_token'], round(data['idle_timer']), False, True)).start()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(e)
|
logger.error(e)
|
||||||
threading.Thread(target=self.prepare_alpaca, args=(11435, '', False, {'temperature': 0.7, 'seed': 0, 'keep_alive': 5}, {}, '', 0, True, True)).start()
|
threading.Thread(target=self.prepare_alpaca, args=(11435, '', False, {'temperature': 0.7, 'seed': 0, 'keep_alive': 5}, {}, '', 0, True, True)).start()
|
||||||
|
self.powersaver_warning_switch.set_active(True)
|
||||||
else:
|
else:
|
||||||
threading.Thread(target=self.prepare_alpaca, args=(11435, '', False, {'temperature': 0.7, 'seed': 0, 'keep_alive': 5}, {}, '', 0, True, False)).start()
|
threading.Thread(target=self.prepare_alpaca, args=(11435, '', False, {'temperature': 0.7, 'seed': 0, 'keep_alive': 5}, {}, '', 0, True, False)).start()
|
||||||
|
self.powersaver_warning_switch.set_active(True)
|
||||||
self.welcome_dialog.present(self)
|
self.welcome_dialog.present(self)
|
||||||
|
|
||||||
|
if self.powersaver_warning_switch.get_active():
|
||||||
|
self.banner.set_revealed(Gio.PowerProfileMonitor.dup_default().get_power_saver_enabled())
|
||||||
|
|
||||||
|
Gio.PowerProfileMonitor.dup_default().connect("notify::power-saver-enabled", lambda monitor, *_: self.power_saver_toggled(monitor))
|
||||||
|
self.banner.connect('button-clicked', lambda *_: self.banner.set_revealed(False))
|
||||||
|
@ -263,6 +263,12 @@
|
|||||||
<property name="title" translatable="yes">Run Alpaca In Background</property>
|
<property name="title" translatable="yes">Run Alpaca In Background</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="AdwSwitchRow" id="powersaver_warning_switch">
|
||||||
|
<signal name="notify::active" handler="switch_powersaver_warning"/>
|
||||||
|
<property name="title" translatable="yes">Show Power Saver Warning</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user