From 193a05b4d57ce0c32579535ae946a1271280abf4 Mon Sep 17 00:00:00 2001 From: Vincent Hanewinkel Date: Wed, 26 Nov 2025 11:12:46 +0100 Subject: [PATCH] add Icon --- OtpViewer.py | 8 +++++++- otp-icon.ico | Bin 0 -> 17065 bytes otp-icon.png | Bin 0 -> 4293 bytes png2icon.py | 3 +++ 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 otp-icon.ico create mode 100644 otp-icon.png create mode 100644 png2icon.py diff --git a/OtpViewer.py b/OtpViewer.py index 0f330c8..edc734c 100644 --- a/OtpViewer.py +++ b/OtpViewer.py @@ -2,12 +2,18 @@ import pyotp, time import tkinter as tk from tkinter import simpledialog, messagebox from dotenv import load_dotenv +import sys import os load_dotenv() email = os.getenv("ACCOUND") seed = os.getenv("OTP_SEED") +def resource_path(filename): + if hasattr(sys, 'frozen'): # PyInstaller-EXE + return os.path.join(sys._MEIPASS, filename) + return os.path.join(os.path.dirname(__file__), filename) + def set_env_value(key, value, path=".env"): lines = [] found = False @@ -100,6 +106,6 @@ otp_menu.add_command(label="Beenden", command=root.destroy) menubar.add_cascade(label="Optionen", menu=otp_menu) - +root.iconbitmap(resource_path("otp-icon.ico")) update() root.mainloop() diff --git a/otp-icon.ico b/otp-icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..508a4d18d80f386064c50d8102ba57c9e8bb709f GIT binary patch literal 17065 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 literal 0 HcmV?d00001 diff --git a/otp-icon.png b/otp-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dd68cf515d9c25b270056c1a59e7274b525e0683 GIT binary patch literal 4293 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 literal 0 HcmV?d00001 diff --git a/png2icon.py b/png2icon.py new file mode 100644 index 0000000..a007457 --- /dev/null +++ b/png2icon.py @@ -0,0 +1,3 @@ +from PIL import Image +img = Image.open("otp-icon.png") +img.save("otp-icon.ico") \ No newline at end of file