Update gui.py

This commit is contained in:
Token2
2025-08-17 10:01:28 +02:00
committed by GitHub
parent 679b85b405
commit fe26347134

27
gui.py
View File

@@ -3,14 +3,33 @@ import re
import subprocess import subprocess
import sys import sys
import tkinter as tk import tkinter as tk
import shutil
from tkinter import messagebox, simpledialog, ttk from tkinter import messagebox, simpledialog, ttk
def detect_terminal():
candidates = [
("gnome-terminal", ["--"]), # modern Ubuntu defaults
("x-terminal-emulator", ["-e"]),# Debian/Ubuntu wrapper
("xterm", ["-e"]),
("konsole", ["-e"]),
("lxterminal", ["-e"]),
("tilix", ["-e"]),
("mate-terminal", ["-e"]),
]
for term, flag in candidates:
if shutil.which(term):
return term, flag
return None, None
# Define the command to execute # Define the command to execute
FIDO_COMMAND = "./fido2-manage.sh" FIDO_COMMAND = "./fido2-manage.sh"
# Checks the terminal emulator from which "gui.py" is executed # Checks the terminal emulator from which "gui.py" is executed
# and sets it for the subprocess commands # and sets it for the subprocess commands
TERM = os.environ.get("TERM", "x-terminal-emulator") TERM, TERM_FLAG = detect_terminal()
if TERM is None:
messagebox.showerror("Error", "No supported terminal emulator found. Please install xterm or gnome-terminal.")
# Command below for Windows # Command below for Windows
# FIDO_COMMAND = 'fido2-manage-ui.exe' # FIDO_COMMAND = 'fido2-manage-ui.exe'
@@ -96,7 +115,7 @@ def execute_info_command(device_digit):
if sys.platform.startswith("win"): if sys.platform.startswith("win"):
subprocess.Popen(["start", "cmd", "/c"] + command, shell=True) subprocess.Popen(["start", "cmd", "/c"] + command, shell=True)
elif sys.platform.startswith("linux"): elif sys.platform.startswith("linux"):
subprocess.Popen([TERM, "-e"] + command) subprocess.Popen([TERM] + TERM_FLAG + command)
return return
@@ -286,7 +305,7 @@ def change_pin():
if sys.platform.startswith("win"): if sys.platform.startswith("win"):
subprocess.Popen(["start", "cmd", "/c"] + command, shell=True) subprocess.Popen(["start", "cmd", "/c"] + command, shell=True)
elif sys.platform.startswith("linux"): elif sys.platform.startswith("linux"):
subprocess.Popen([TERM, "-e"] + command) subprocess.Popen([TERM] + TERM_FLAG + command)
pass pass
@@ -368,7 +387,7 @@ def show_output_in_new_window(output, device_digit):
if sys.platform.startswith("win"): if sys.platform.startswith("win"):
subprocess.Popen(["start", "cmd", "/c"] + command, shell=True) subprocess.Popen(["start", "cmd", "/c"] + command, shell=True)
elif sys.platform.startswith("linux"): elif sys.platform.startswith("linux"):
subprocess.Popen([TERM, "-e"] + command) subprocess.Popen([TERM] + TERM_FLAG + command)
# Create the "Show Value" button # Create the "Show Value" button
show_value_button = tk.Button( show_value_button = tk.Button(