# LinuxPA, Linux Portable Apps Launcher

**URL:** <https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184>\
**Category:** Using AppImages\
**Created:** [April 19, 2017, 6:46pm UTC](https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184 "2017-04-19T18:46:46Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![CalebQ42](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.appimage.org/calebq42/32/151_2.png) [@CalebQ42](https://discourse.appimage.org/u/CalebQ42)\
**Post date:** [April 19, 2017, 6:46pm UTC](https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184/1 "2017-04-19T18:46:46Z")

</div>

[Github page](http://github.com/CalebQ42/LinuxPA)

I wanted to share my work with the AppImage community, a [PortableApps.com](http://PortableApps.com) type launcher for linux Apps. It’s a fairly simple project I started when I decided I didn’t feel like digging around my flash drive to see what apps I have. As AppImages are platform independent and will work just fine off a flash drive it’s a natural match. Some of the features are:

- Auto-updating
- GTK-based UI (should work on most DEs)
- Run Windows apps via wine
- Categorical organization
- `common.sh`
- Runs before apps (so you can set environment variables such as HOME)
- Can make most AppImages truly portable
- Download AppImages (Still a bit iffy 🙂)
- Made with GoLang (compiles into a single executable)

To download head to [Github Releases](http://github.com/CalebQ42/LinuxPA)

---

<div class="post-metadata">

**Author:** ![Royi](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.appimage.org/royi/32/150_2.png) [@Royi](https://discourse.appimage.org/u/Royi)\
**Post date:** [May 28, 2018, 9:08pm UTC](https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184/2 "2018-05-28T21:08:17Z")

</div>

This is lovely.

I really look into PortableApps experience in Linux.

Could you integrate automatically the `.home` and `.config` features of AppImage?  
Also could you integrate using Sand Boxing (Using [FireJail](https://github.com/netblue30/firejail) like [`appimaged`](https://github.com/AppImage/appimaged))?

---

<div class="post-metadata">

**Author:** ![CalebQ42](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.appimage.org/calebq42/32/151_2.png) [@CalebQ42](https://discourse.appimage.org/u/CalebQ42)\
**Post date:** [May 29, 2018, 3:35am UTC](https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184/3 "2018-05-29T03:35:52Z")

</div>

I believe I already have support for the .home and .config directories, the code is there at least and I might have just forgot to add it in settings. I’ll definitely look into sand-boxing through FireJail and I’ll also look at appimaged since it seems to have some features I’d like to dissect. Thanks for the suggestions, I’ve been looking for a reason to work on this lately.

---

<div class="post-metadata">

**Author:** ![Royi](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.appimage.org/royi/32/150_2.png) [@Royi](https://discourse.appimage.org/u/Royi)\
**Post date:** [May 29, 2018, 4:04am UTC](https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184/4 "2018-05-29T04:04:42Z")

</div>

@CalebQ42,  
Just don’t imitate’s `appimaged` Daemon service.  
Keep things portable even for the menu system (Nothing to be installed system wide).

---

<div class="post-metadata">

**Author:** ![CalebQ42](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.appimage.org/calebq42/32/151_2.png) [@CalebQ42](https://discourse.appimage.org/u/CalebQ42)\
**Post date:** [May 29, 2018, 4:40am UTC](https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184/5 "2018-05-29T04:40:07Z")

</div>

Definitely not, I’m more interested in how it gets information such as MIME, name, and icon and seeing if I can use that method. Might not be anything I can integrate into LinuxPA, but I’ll look into it.

---

<div class="post-metadata">

**Author:** ![Royi](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.appimage.org/royi/32/150_2.png) [@Royi](https://discourse.appimage.org/u/Royi)\
**Post date:** [May 29, 2018, 5:09am UTC](https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184/6 "2018-05-29T05:09:32Z")

</div>

I think you should have a look at this:

[How Do I Associate a File Type with an AppImage?](https://askubuntu.com/questions/819782/how-do-i-associate-a-file-type-with-an-appimage)

It seems he describes how to get MIME support.  
Though I’d be happy if you make this optional.

---

<div class="post-metadata">

**Author:** ![probono](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.appimage.org/probono/32/81_2.png) [@probono](https://discourse.appimage.org/u/probono)\
**Post date:** [May 30, 2018, 5:30am UTC](https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184/7 "2018-05-30T05:30:38Z")

</div>

Check out [libappimage](https://github.com/AppImage/AppImageKit) and [libappimageupdate](https://github.com/AppImage/AppImageUpdate).

---

<div class="post-metadata">

**Author:** ![Royi](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.appimage.org/royi/32/150_2.png) [@Royi](https://discourse.appimage.org/u/Royi)\
**Post date:** [May 30, 2018, 6:54am UTC](https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184/8 "2018-05-30T06:54:02Z")

</div>

> [@CalebQ42](#):
>
> Definitely not, I’m more interested in how it gets information such as MIME, name, and icon and seeing if I can use that method. Might not be anything I can integrate into LinuxPA, but I’ll look into it.

This is what I meant.  
I didn’t mean replicate being a Daemon which is wrong in my opinion.  
I meant just the features of MIME registration etc…

---

<div class="post-metadata">

**Author:** ![probono](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.appimage.org/probono/32/81_2.png) [@probono](https://discourse.appimage.org/u/probono)\
**Post date:** [May 30, 2018, 3:18pm UTC](https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184/9 "2018-05-30T15:18:46Z")

</div>

> [@Royi](#):
>
> I didn’t mean replicate being a Daemon which is wrong in my opinion.

Well the thing that you want (something in the “system tray”) is basically appimaged with a tiny GUI to manually launch and to stop it, and to set the watched directories (the directory in which it itself resides being the default). Correct?

---

<div class="post-metadata">

**Author:** ![CalebQ42](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.appimage.org/calebq42/32/151_2.png) [@CalebQ42](https://discourse.appimage.org/u/CalebQ42)\
**Post date:** [July 2, 2018, 4:49am UTC](https://discourse.appimage.org/t/linuxpa-linux-portable-apps-launcher/184/10 "2018-07-02T04:49:24Z")

</div>

Just wanted to give a quick update on progress:  
So at the moment I’m having “fun” learning/figuring out how to use make/cmake with cgo to allow me to build LinuxPA with the necessary AppImageKit C library to keep it as a single executable. At the moment It’s not going great, but there have been some glimmers of hope.  
Option 2, which is actually what I REALLY want to do, is to find a way to get the information in a more pure go way. I have found a way for type 1 appimages, but have yet to find a way to do it with type 2 appimages (there doesn’t seem to be a squashfs library for go anywhere and programs that do work with squashfs just call the necessary commands, which won’t work due to the ELF header.  
Option 3, which would require a rework of a couple things, particularly updating, is to just package LinuxPA as an AppImage itself. Would definitely work, and would probably be really easy, but I’m hoping I can make one of the above options work (because I like to make things hard on myself. Plus it makes building the app a bit easier)
