feat: write desktop file

This commit is contained in:
aclist 2026-07-11 16:32:24 +09:00
parent caf071f997
commit 0084af4959

View File

@ -1,10 +1,15 @@
import stat
import textwrap
from pathlib import Path
from dzgui.const.constants import APP_NAME
from dzgui.util.dirs import copy_dzgui_to_xdg_data, find_icon_resource, make_parents
def get_share_path(exe_path: Path) -> Path:
return exe_path.parent.parent
def write_desktop_file(exe_path: Path) -> None:
icon = find_icon_resource()
@ -21,13 +26,17 @@ def write_desktop_file(exe_path: Path) -> None:
copy_dzgui_to_xdg_data(exe_path)
share_path = exe_path.parent.parent
file = share_path.joinpath("applications/dzgui.desktop")
make_parents(file)
file.write_text(textwrap.dedent(template))
share_path = get_share_path(exe_path)
desktop_file = share_path.joinpath("applications/dzgui.desktop")
make_parents(desktop_file)
desktop_file.write_text(textwrap.dedent(template))
desktop_file.chmod(desktop_file.stat().st_mode | stat.S_IEXEC)
return desktop_file
def write_desktop_shortcut(exe_path: Path) -> None:
# TODO: symlink the above, /Desktop
# TODO: dynamically link to prior option in UI
pass
def write_desktop_shortcut(desktop_file: Path) -> None:
# NOTE: necessarily depends on the above (UI blocks creation without XDG entry first)
link = Path.home().joinpath(f"Desktop/{APP_NAME}.desktop")
if link.exists():
link.unlink()
link.symlink_to(desktop_file)