feat: Implement interactive shortcut selection

This commit enhances your experience for setting a keyboard shortcut. Instead of typing the shortcut as a string, you are now prompted to press the desired key combination directly.

The `src/config.py` module has been updated to:
- Use `keyboard.read_hotkey()` to capture the key combination you press.
- Display the captured shortcut for confirmation.
- Save the shortcut only after you confirm it is correct.

This provides a more intuitive and less error-prone way for you to configure your preferred shortcut.
This commit is contained in:
google-labs-jules[bot]
2025-08-09 22:17:15 +00:00
parent 3aad8080f4
commit 31c79a36fc
3 changed files with 32 additions and 4 deletions

View File

@@ -6,6 +6,6 @@ REM Activate the virtual environment
call venv\Scripts\activate.bat call venv\Scripts\activate.bat
REM Run your main Python script (replace main.py with your script name if different) REM Run your main Python script (replace main.py with your script name if different)
start "OopsWrongLang" /B pythonw src\main.pyw start "OopsWrongLang" /B python src\main.pyw
echo application is running in the background. you can close this window. echo application is running in the background. you can close this window.
pause pause

26
src/config.py Normal file
View File

@@ -0,0 +1,26 @@
import os
import keyboard
CONFIG_FILE = "shortcut.txt"
def get_shortcut():
"""
Retrieves the shortcut from the config file.
If the file doesn't exist, it prompts the user to create one by pressing the desired keys.
"""
if not os.path.exists(CONFIG_FILE):
print("It seems this is the first time you are running the application.")
while True:
print("Please press the key combination you want to use as a shortcut and then press ESC.")
shortcut = keyboard.read_hotkey(suppress=False)
print(f"You pressed: {shortcut}")
confirm = input("Is this correct? (y/n): ").lower()
if confirm == 'y':
with open(CONFIG_FILE, "w") as f:
f.write(shortcut)
return shortcut
else:
print("Let's try again.")
else:
with open(CONFIG_FILE, "r") as f:
return f.read().strip()

View File

@@ -8,6 +8,7 @@ import threading
import pystray import pystray
from PIL import Image from PIL import Image
import re import re
from config import get_shortcut
def convert_en_characters(input_str): def convert_en_characters(input_str):
""" """
@@ -136,9 +137,10 @@ def main():
tray_thread = threading.Thread(target=setup_tray, daemon=True) tray_thread = threading.Thread(target=setup_tray, daemon=True)
tray_thread.start() tray_thread.start()
# Register the keyboard shortcut (Ctrl + Space) # Register the keyboard shortcut
keyboard.add_hotkey('ctrl+space', on_shortcut) shortcut = get_shortcut()
print("Press Ctrl + Space to convert text to Persian.") keyboard.add_hotkey(shortcut, on_shortcut)
print(f"Press {shortcut} to convert text to Persian.")
# Keep the script running # Keep the script running
keyboard.wait() keyboard.wait()