hiran wrote: ↑Thu May 30, 2024 6:17 am
MrFlibble wrote: ↑Thu May 30, 2024 1:28 am
Appimage has it's uses, but doesn't install. It makes a lump with all that's required to execute without unpacking as such, but no desktop icons or app menu entries. No better than fixing the conf dir thing and making a binary as we do AFAICT.
True again. It has the same flaw as pyinstaller. It just doesn't do the installer part.
Meanwhile I like running .appimage both for games or other stuff but I use to launch them via terminal.
But looking at this video it just could be so much easier:
https://www.youtube.com/watch?v=nzZ6Ikc7juw
And here is how to add this to the menu?
https://www.youtube.com/watch?v=KUiCnwhUo1M
I too usually launch Appimages from a terminal, having usually symlinked them with nice names in ~/bin. I don't think it makes sense to wrap a pyinstaller in an appimage.
One thing I just noticed though... Appimage files can have icons embedded, which show up for me in Thunar (I never browsed to ~/bin the fluffy way before! Those icons work through symlinks on Xfce4, but there's still no sane way to make them appear nicely in the app menus. It would be VERY shiny indeed to have the icon appear in file browsers for the pyinstaller binary. On the plus side, I understand using --icon pathto/iconfile.ico should work on windoze and mac.
Adding even pyinstaller binaries to the apps menu is a doddle with most desktops, but there's no "one instruction to solve them all", and neither is there a way to get a nice menu icon short of providing one, and getting the user to select it when they create their launcher. Else they just get the default 'cogs' icon or whatever.
So, a quick scout around:-
Flet looks good at a glance, but might need a GUI rewrite and looks fairly heavy with license, and has some ugly dependencies. Using a battleship factory to build a canoe!
A quick play with Nuitka
https://nuitka.net, which I pip installed in the builder venv.
https://nuitka.net. The executable turned out 21 megs, so 50% larger. Seems to launch/render a tad faster. License may not be compatible.
Code: Select all
python -m nuitka --linux-icon=OoJSC256x256.png --follow-imports DebugConsole.py
However slick, it did not have a desktop icon in Thunar.
A desktop file and icon could be emitted by our program I suppose, making it 'self-install', with the possibility of menu oprphans as mentioned before... Unless the same 'click to install me' moves our blob to ~/.local/bin, leaving it hard for Captain Numpty to fumble, and easy for Doctor Knowsthesystem to pluck it out.
https://python-appimage.readthedocs.io/en/latest/apps/ hints at something I'd thought about... to cover as many distros old and new as possible, due to libc headaches, building with an older system can be a good idea. A way to get that done using actions, without changing direction, might be to use kvm-qemu with a small headless linux image from e.g. lilnuxcontainers. IIRC that would not be much different to what I did recently to make an Alpine32 version of the debugger.
I still feel a simple scripted installer on linux is the most distro agnostic thing, and the path of least resistance. As long as it checks arch, asks whether to use user local, system local, or system, checks the $PATH, warns if not there, and can invoke sudo or doas intelligently, it will cover the bloomin' lot.
I've got my stackoverflow reading list lined up for: read system variables, sanity check path strings, create paths with parents etc. in python. All those thing I did in a few moments with shell script. Plus sidem I think I can do it cross-platform in python.