kernel-manager/usr/share/archlinux-kernel-manager/ui/AboutDialog.py
arcolinuxz b09f56fa6c update
2024-05-29 21:15:47 +02:00

67 lines
2 KiB
Python

# This class stores static information about the app, and is displayed in the about window
import os
import gi
import libs.functions as fn
gi.require_version("Gtk", "4.0")
from gi.repository import Gtk, Gio, Gdk
base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
class AboutDialog(Gtk.AboutDialog):
def __init__(self, manager_gui, **kwargs):
super().__init__(**kwargs)
website = "http://arcolinux.info/"
authors = ["Erik Dubois", "Fennec"]
program_name = "Arch Linux Kernel Manager"
comments = (
f"Add/Remove Officially supported Linux kernels on Arch based systems\n"
f"Powered by the Arch Linux Archive (a.k.a ALA)\n"
f"Community based Linux kernels are also supported\n"
f"Developed in Python with GTK 4\n"
)
icon_name = "akm-tux"
self.set_transient_for(manager_gui)
self.set_modal(True)
self.set_authors(authors)
self.set_program_name(program_name)
self.set_comments(comments)
self.set_website(website)
self.set_logo_icon_name(icon_name)
self.set_version("Version %s" % manager_gui.app_version)
self.connect("activate-link", self.on_activate_link)
tux_icon = Gdk.Texture.new_from_file(
file=Gio.File.new_for_path(
os.path.join(base_dir, "images/96x96/akm-tux.png")
)
)
self.set_logo(tux_icon)
def on_activate_link(self, about_dialog, uri):
try:
cmd = ["sudo", "-u", fn.sudo_username, "xdg-open", uri]
proc = fn.subprocess.Popen(
cmd,
shell=False,
stdout=fn.subprocess.PIPE,
stderr=fn.subprocess.STDOUT,
universal_newlines=True,
)
out, err = proc.communicate(timeout=50)
fn.logger.warning(out)
except Exception as e:
fn.logger.error("Exception in activate_link(): %s" % e)
return True