Repository navigation
Expand file tree
/
Copy pathmain.py
More file actions
59 lines (48 loc) · 1.86 KB
/
Copy pathmain.py
File metadata and controls
59 lines (48 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import threading
import sys
from ui import RewriterApp
from text_processor import TextProcessor
from logger import default_logger, log_stream
from pynput import keyboard
IS_MAC = sys.platform == "darwin"
MODIFIER_KEY = keyboard.Key.cmd if IS_MAC else keyboard.Key.ctrl
class Rewriter:
def __init__(self):
self.ui = RewriterApp(log_stream)
self.text_processor = TextProcessor(self.ui)
self.running = True
self.listener = None
def setup_hotkeys(self):
def on_activate_correction():
self.text_processor.get_selected_text()
def on_activate_quit():
self.stop()
correction_key = self.ui.settings.get("correction_hotkey", "d")
quit_key = self.ui.settings.get("quit_hotkey", "q")
self.listener = keyboard.GlobalHotKeys({
f'<ctrl>+<alt>+h': on_activate_correction,
f'<ctrl>+<alt>+q': on_activate_quit
})
self.listener.start()
default_logger.info(f"Hotkeys registered: Correction: {MODIFIER_KEY}+alt+{correction_key}, Quit: {MODIFIER_KEY}+alt+{quit_key}")
def run(self):
default_logger.info("Starting Rewriter...")
default_logger.info(f"Press {MODIFIER_KEY}+alt+d to rewrite text.")
default_logger.info(f"Press {MODIFIER_KEY}+alt+q to quit the app.")
self.setup_hotkeys()
# Run the UI
self.ui.run()
def stop(self):
self.running = False
if self.listener:
self.listener.stop()
self.text_processor.stop()
self.ui.quit_app()
default_logger.info("Shutting down Rewriter...")
self.ui.root.quit() # Force quit the Tkinter root
self.ui.root.destroy() # Destroy the Tkinter root
sys.exit(0)
if __name__ == "__main__":
default_logger.info("Starting Rewriter application")
app = Rewriter()
app.run()