aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBobby <[email protected]>2022-11-06 02:03:59 -0500
committerBobby <[email protected]>2022-11-06 02:03:59 -0500
commiteb1610e6daaadd6792b4b57e372cf7ea237b949a (patch)
treea6ee0f4c88a80ced76073dbd409bc1a96cd06064 /src
parentcc117cf27d280843ee724c1cd59003bedb2823b0 (diff)
downloadtexty-eb1610e6daaadd6792b4b57e372cf7ea237b949a.tar.xz
texty-eb1610e6daaadd6792b4b57e372cf7ea237b949a.zip
chore: added keybindings
Diffstat (limited to 'src')
-rw-r--r--src/config/defaults.py35
-rw-r--r--src/texty.py46
2 files changed, 72 insertions, 9 deletions
diff --git a/src/config/defaults.py b/src/config/defaults.py
index 87bd5fb..557ea61 100644
--- a/src/config/defaults.py
+++ b/src/config/defaults.py
@@ -1,7 +1,42 @@
PREFERENCES_FILE = "texty.prefs"
+
DEFAULT_PREFS = {
"width": 800,
"height": 600,
"x_pos": "center",
"y_pos": "center",
}
+
+KEYBINDS = {
+ "New Text File": f"meta-N", # New Text File
+ "New Window": f"meta-Shift-N", # New Window
+ "New Tab": f"meta-T", # New Tab
+ "Open File": f"meta-O", # Open File
+ "Save": f"meta-S", # Save
+ "Save As": f"meta-Shift-S", # Save As
+ "Close": f"meta-W", # Close
+ "Quit": f"meta-Q", # Quit
+ "Undo": f"meta-Z", # Undo
+ "Redo": f"meta-Shift-Z", # Redo
+ "Cut": f"meta-X", # Cut
+ "Copy": f"meta-C", # Copy
+ "Paste": f"meta-V", # Paste
+ "Paste and Match Style": f"meta-Shift-V", # Paste and Match Style
+ "Select All": f"meta-A", # Select All
+ "Find": f"meta-F", # Find
+ "Find Next": f"meta-G", # Find Next
+ "Find Previous": f"meta-Shift-G", # Find Previous
+ "Replace": f"meta-R", # Replace
+ "Go To Line": f"meta-L", # Go To Line
+ "Word Wrap": f"meta-Shift-W", # Word Wrap
+ "Print Preview": f"meta-Shift-P", # Print Preview
+ "Print": f"meta-P", # Print
+ "Maximize": f"meta-M", # Maximize
+}
+
+MAC_KEYBINDS = {
+ "Preferences": f"meta-,", # Preferences
+ "Hide Texty": f"meta-H", # Hide Texty
+ "Hide Others": f"meta-Shift-H", # Hide Others
+ "Show All": f"meta-Shift-A", # Show All
+}
diff --git a/src/texty.py b/src/texty.py
index 26626ed..3b043e5 100644
--- a/src/texty.py
+++ b/src/texty.py
@@ -8,7 +8,7 @@ import tkinter as tk
import click
-from config.defaults import DEFAULT_PREFS, PREFERENCES_FILE
+from config.defaults import DEFAULT_PREFS, KEYBINDS, MAC_KEYBINDS, PREFERENCES_FILE
from helpers.preferences import PreferenceManager
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
@@ -20,23 +20,28 @@ class Texty(tk.Tk):
self.title("Texty")
self.debug = debug
self.prefs = PreferenceManager(DEFAULT_PREFS, PREFERENCES_FILE)
-
- if self.debug:
- logging.info("Running in debug mode. Preferences will not be saved.")
- self.prefs.reset()
- self.set_geometry()
self.protocol("WM_DELETE_WINDOW", self.on_close)
self.system = self.call("tk", "windowingsystem")
- if self.system == "aqua":
- self.option_add("*tearOff", False)
+ self.log("Running Texty on %s" % self.system)
+
+ self.option_add("*tearOff", False)
+ self.log("Tearoff disabled")
# Bind Resize, Move, and Close
self.bind("<Configure>", self.save_prefs)
self.bind("<Destroy>", self.save_prefs)
+ self.log("Resize, Move, and Close bindings set to save preferences.")
+
+ # Set Geometry
+ self.set_geometry()
# Create Menu Bar
self.bind_menu()
+ def log(self, message):
+ if self.debug:
+ logging.info(message)
+
def set_geometry(self):
width = self.prefs.get("width")
height = self.prefs.get("height")
@@ -51,6 +56,9 @@ class Texty(tk.Tk):
else self.prefs.get("y_pos")
)
self.geometry(f"{width}x{height}+{x_pos}+{y_pos}")
+ self.log(
+ "Window geometry set to {}x{}+{}+{}".format(width, height, x_pos, y_pos)
+ )
def save_prefs(self, event):
if not self.debug:
@@ -61,7 +69,25 @@ class Texty(tk.Tk):
self.prefs.save()
def bind_menu(self):
- pass
+ menubar = tk.Menu(self)
+
+ meta = "Command" if self.system == "aqua" else "Control"
+ keybinds = {k: v.replace("meta", meta) for k, v in KEYBINDS.items()}
+ mac_keybinds = {k: v.replace("meta", meta) for k, v in MAC_KEYBINDS.items()}
+ self.log("Keybinds set to %s" % keybinds)
+
+ if self.system == "aqua":
+ self.log("MacOS detected, Additional Keybinds set to %s" % mac_keybinds)
+ appmenu = tk.Menu(menubar, name="apple")
+ menubar.add_cascade(menu=appmenu)
+ appmenu.add_command(label="About Texty")
+ appmenu.add_separator()
+ self.createcommand("tk::mac::ShowPreferences", self.show_preferences)
+
+ self.config(menu=menubar)
+
+ def show_preferences(self):
+ print("Show Preferences")
def on_close(self):
if self.system == "aqua":
@@ -73,6 +99,8 @@ class Texty(tk.Tk):
@click.command()
@click.option("--debug", is_flag=True, help="Enable debug mode.")
def main(debug):
+ if debug:
+ logging.info("Running in debug mode. Preferences will not be saved.")
texty = Texty(debug=debug)
texty.protocol("WM_DELETE_WINDOW", texty.on_close)
texty.mainloop()