SadieDragon / TPR-Hints-Tool

A tool to aide with use of the TPR hints.
0 stars 1 forks source link

Possible Cross-Platform Incompatibility: Tkinter is sometimes not standard #3

Closed SadieDragon closed 1 day ago

SadieDragon commented 3 weeks ago

Overview

The unix (posix) children sometimes decide that Tkinter is not a default lib that it needs to install. This creates the obvious issue that this tool is built on Tkinter, but some people on a unix (posix) system may not be aware of this, which is an end-user hazard.

Tasks to Complete

Further Information

Unix/Posix includes: ChromeOS (apparently), MacOS, Debian, Ubuntu, Arch, (other linuxes) Look at the comments below for current gathered information. [I will update this later to consolidate this information.]

OG TEXT:

I can fix this. And if I distribute this, I need to fix it, because mac is posix.

SadieDragon commented 3 weeks ago

Correction:

I am going to start this out as a "Linux incompatible, but Mac can if you use the system python instead of the homebrew python."

Thank you jaq for finding this gaping error.

SadieDragon commented 3 weeks ago

Ok fine, and if it's any form of "I am using it on my phone" that does not currently work, either.

SadieDragon commented 3 weeks ago

Covers all pieces of this tool.

Unix compatibility for the file distributor could easily be obtained by coding in a cli program instead; I chose the focus solely on the graphics for ease of use.

SadieDragon commented 3 weeks ago

@jaqque Could I request a linux script (using shell) which takes user input to choose the target folders for the spoiler log, and the gci file? I know my tool(s) for that are currently incomplete, it can wait until after I finish mine. But using (ba)sh would probably be a bit simpler? Maybe? or what are your thoughts on that?

jaqque commented 3 weeks ago

Anything bash can do, python can do natively. If targeting a Linux CLI, the python script, or it's wrapper, can accept command line arguments or be passed environmental variables. If it is intended to be launched as a GUI program, while inside the desktop GUI experience (think like https://wiki.archlinux.org/title/Desktop_entries) then keeping everything in the GUI across all platforms keeps user support easier.

SadieDragon commented 3 weeks ago

This is my thought. I suppose the target question for Tkinter support in Linux is "do i brute force install tkinter?" I worry about forcing an install of that, though it is a dependency. You know my lack of self confidence and the thought of distribution is a bit daunting.

jaqque commented 3 weeks ago

List instructions on how to install it apt install python3-tk for instance. Assume whomever is running linux knows how to search their package repositories. If someone provides instructions for a different distro, update the documentation.

SadieDragon commented 3 weeks ago

That is actually, a super fair solution; would this cover MacOS as well?

jaqque commented 3 weeks ago

More or less, yes. Current versions of macOS ship tkinter with the bundled python.

SadieDragon commented 3 weeks ago

Will probably also include "Hey. Please actually use the bundled instead of homebrew. thx."

SadieDragon commented 3 weeks ago

Pulling the suggestion of explain how to do it into a new issue to pin

jaqque commented 3 weeks ago

Alpine: apk add python3-tk Arch: pacman -Sy tk Fedora/Red Hat: dnf install python3-tkinter OpenSUSE: zypper in -y python-tk (does OpenSUSE still use zypper?)

SadieDragon commented 2 weeks ago

Linked in the new repo for the file distributor.

SadieDragon commented 2 weeks ago

Wait this was not one I was supposed to hammer, SORRY

Ecconia commented 1 week ago

Got it running on Manjaro 6.1.94-1 with KDE Plasma 6, I am not sure what installed dependencies, but it just ran fine. (Uses pacman as dependency manager).

Screenshot_20240706_110614

Looking at above message, the Arch instructions are the correct one for running on Manjaro. tk is installed for me. Nothing requires it, so idk what installed it originally.

SadieDragon commented 1 day ago

As much love as this has garnered, this is completely overwritten by the current work implementing a new library that needs installed anyway. Cross compatibility not a problem anymore.