InstallWithPortal - desktop-entry-lib 5.0 documentation

Skip to content
Back to top
View this page

# InstallWithPortal

    import desktop_entry_lib
    import sys

    def main() -> None:
        entry = desktop_entry_lib.DesktopEntry()
        entry.Name.default_text = "My Name"
        entry.desktop_id = "com.example.App.Entry"
        entry.Exec = "firefox"

        path = input("Please enter the path to an icon file:")

        if path == "":
            print("You haven't entered a path", file=sys.stderr)
            sys.exit(1)

        try:
            with open(path, "rb") as f:
                icon = f.read()
        except FileNotFoundError:
            print(f"{path} was not found", file=sys.stderr)
            sys.exit(1)

        try:
            response = entry.install_with_portal("", icon)
        except ModuleNotFoundError:
            print('jeepney is not installed. Run "pip install jeepney"', file=sys.stderr)
            sys.exit(1)
        except desktop_entry_lib.InstallWithPortalsNotAvailable:
            print("The DynamicLauncher portal is not available", file=sys.stderr)
            sys.exit(1)
        except desktop_entry_lib.InstallWithPortalError as ex:
            print(f"An error occurred: {ex.message}", file=sys.stderr)
            sys.exit(1)
        except desktop_entry_lib.InstallWithPortalsCanceled:
            print("The user canceled the installation", file=sys.stderr)
            sys.exit(1)

        print(f"Your desktop entry was successfully installed with the name {response['Name']}.")

    if __name__ == "__main__":
        main()

View this example on Codeberg