Skip to content

Add Support for buildapp for Linux #196

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 19 commits into
base: master
Choose a base branch
from

Conversation

Calebh101
Copy link

@Calebh101 Calebh101 commented May 16, 2025

I added a script called buildapp-linux.py that generates an executable for Linux users, similar to buildapp-select.py, officially supporting Debian-based distros. The script basically generates a payload, a main script, and an installer script. The main script handles things like extracting itself, handling temporary files/directories, and managing data. buildapp-linux also compiles a generated C file using gcc that extracts the main script from itself, then runs it. The installer script adds ProperTree to ~/.local/bin and creating a desktop entry.

Even though it doesn't have -select in the title (mainly for consistency), the desktop entry specifies the executable as supporting text/xml, which is associated with .plists in Linux, thus providing -select capabilities.

I also added two other new files: Scripts/linux-app.c and Scripts/icon.png. linux-app.c is the file containing the base source code for generating the executable, and icon.png is a 256x256 image extracted out of shortcut.icns that is used for the icon for the desktop entry. (I did this because Linux can't easily read .icns files without third-party tools.)

I also attached a link the documentation I wrote for buildapp-linux.py that you can add manually to the end of README.md or add it as a separate in the repository. (Or you can write your own if you really want to.) I made it with a similar in format as the section describing buildapp-select.py's usage. The documentation I wrote can be reformatted or edited if you'd like. ProperTree-buildapp-linux-Usage.md

Tested Linux distros:

  • Ubuntu 24.04 LTS
  • Ubuntu 25.04
  • Debian 12.11.0
  • Linux Mint Cinnamon 22.1
  • Linux Mint XFCE 22.1
  • Linux Mint Mate 22.1
  • Pop!_OS 22.04
  • Gentoo 20250518T165514Z

I will add more as time goes on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant