# Ledger Live AppImage on Linux Mint — Persistent Launcher & Update Workflow

## 🎯 Objective

Create and maintain a stable Ledger Live setup on Linux Mint that:

- uses a **custom persistent icon**
- survives **log out / reboot**
- continues to work after **AppImage updates**
- avoids repeated manual configuration

---

## 🧩 Overview

Ledger Live is run as an AppImage stored in a fixed location, with a `.desktop` launcher pointing to:

- a **static AppImage filename**
- a **separate, permanent icon file**

This ensures updates only affect the binary, not the launcher or icon.

---

## ⚙️ Folder Structure

<div class="relative w-full mt-4 mb-1" id="bkmrk-%7E%2Fappimages%2F%E2%94%9C%E2%94%80%E2%94%80-ledg"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%7E%2Fappimages%2F%E2%94%9C%E2%94%80%E2%94%80-ledg-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">~/AppImages/  
├── ledger-live.AppImage  
└── icons/  
└── ledger.png</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>- `ledger-live.AppImage` → replaced on updates
- `ledger.png` → permanent icon (never changes)

---

## 🧾 Desktop Launcher

Location:

<div class="relative w-full mt-4 mb-1" id="bkmrk-%7E%2Fdesktop%2Fledger-liv"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%7E%2Fdesktop%2Fledger-liv-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">~/Desktop/ledger-live.desktop</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Contents:

<div class="relative w-full mt-4 mb-1" id="bkmrk-%5Bdesktop-entry%5Dtype%3D"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%5Bdesktop-entry%5Dtype%3D-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">[Desktop Entry]  
Type=Application  
Name=Ledger Live  
Exec=/home/coolbaron/AppImages/ledger-live.AppImage  
Icon=/home/coolbaron/AppImages/icons/ledger.png  
Terminal=false  
Categories=Finance;</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 🧠 Key Principle

The setup separates responsibilities:

- **AppImage = replaceable component (software)**
- **Icon = static asset (visual identity)**
- **Launcher = fixed reference (glue)**

---

# 🔄 Update Workflow

## 1. Download new version

Saved to:

<div class="relative w-full mt-4 mb-1" id="bkmrk-%7E%2Fdownloads%2Fledger-l"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%7E%2Fdownloads%2Fledger-l-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">~/Downloads/ledger-live-desktop-&lt;version&gt;.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 2. Verify download (recommended)

<div class="relative w-full mt-4 mb-1" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">ls</span> <span class="ͼu">-lh</span> ~/Downloads | <span class="ͼs">grep</span> ledger</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Expected size: ~150MB+

---

## 3. Replace existing AppImage (safe method)

<div class="relative w-full mt-4 mb-1" id="bkmrk-mv-%7E%2Fdownloads%2Fledge"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">mv</span> ~/Downloads/ledger-live-desktop-2*.AppImage ~/AppImages/ledger-live.AppImage  
<span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 4. Test before use

<div class="relative w-full mt-4 mb-1" id="bkmrk-%7E%2Fappimages%2Fledger-l"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%7E%2Fappimages%2Fledger-l-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 🖼️ Icon Handling

Icon location:

<div class="relative w-full mt-4 mb-1" id="bkmrk-%2Fhome%2Fcoolbaron%2Fappi"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-%2Fhome%2Fcoolbaron%2Fappi-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">/home/coolbaron/AppImages/icons/ledger.png</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>### ✔ Behaviour

- Not affected by updates
- Not tied to Ledger Live version
- No need to re-download

### ❗ Do NOT

- delete or move the icon
- change the icon path

---

# ⚡ Auto vs Manual Updates

## 🧠 In-App Auto Update Behaviour

When clicking **“Update” inside Ledger Live**:

- downloads a new AppImage (usually to `~/Downloads` or `/tmp`)
- launches the new version
- does **not reliably**: 
    - replace existing AppImage
    - preserve filename
    - remove older versions

---

## ⚠️ Impact on This Setup

Your launcher points to:

<div class="relative w-full mt-4 mb-1" id="bkmrk-exec%3D%2Fhome%2Fcoolbaron"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-exec%3D%2Fhome%2Fcoolbaron-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">Exec=/home/coolbaron/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>If auto-update downloads a new version:

- Desktop shortcut → still opens old version
- New version → only runs manually
- Multiple AppImages may accumulate

---

## ❌ Why Auto Update Is Not Ideal

- breaks single-file structure
- introduces version drift
- creates duplicate binaries
- reduces predictability

---

## ✅ Recommended Approach — Manual Update

<div class="relative w-full mt-4 mb-1" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-2"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-3"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">mv</span> ~/Downloads/ledger-live-desktop-2*.AppImage ~/AppImages/ledger-live.AppImage  
<span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>### ✔ Benefits

- deterministic behaviour
- single source of truth
- launcher always correct
- no duplicates

---

## 🔁 Optional Hybrid Approach

1. Allow Ledger Live to download update
2. Then manually replace:

<div class="relative w-full mt-4 mb-1" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C-2"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C-3"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">ls</span> <span class="ͼu">-lh</span> ~/Downloads | <span class="ͼs">grep</span> ledger  
<span class="ͼs">mv</span> ~/Downloads/ledger-live-desktop-2*.AppImage ~/AppImages/ledger-live.AppImage  
<span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## ⚠️ Common Pitfalls

### Corrupted AppImage (e.g. 75 bytes)

Symptoms:

<div class="relative w-full mt-4 mb-1" id="bkmrk-ls--lh-%7E%2Fappimages%2Fl"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ls--lh-%7E%2Fappimages%2Fl-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">ls</span> <span class="ͼu">-lh</span> ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Shows very small file size

➡️ Cause:

- incomplete download
- incorrect wildcard match

➡️ Fix:

- delete file
- re-download
- move explicitly

---

### Duplicate AppImages

<div class="relative w-full mt-4 mb-1" id="bkmrk-ledger-live-desktop-"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ledger-live-desktop--1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">ledger-live-desktop-2.x.x.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>➡️ Remove duplicates and keep:

<div class="relative w-full mt-4 mb-1" id="bkmrk-ledger-live.appimage-1"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ledger-live.appimage-2"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

### Launcher failure

Error:

> “There was an error launching the application”

➡️ Cause:

- broken AppImage

➡️ Fix:

- replace AppImage

---

## 🧪 Verification Commands

<div class="relative w-full mt-4 mb-1" id="bkmrk-ls--lh-%7E%2Fappimages%2Fl-2"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ls--lh-%7E%2Fappimages%2Fl-3"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">ls</span> <span class="ͼu">-lh</span> ~/AppImages/ledger-live.AppImage  
<span class="ͼs">ls</span> <span class="ͼu">-l</span> ~/AppImages/icons/ledger.png  
<span class="ͼs">cat</span> ~/Desktop/ledger-live.desktop</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 🔧 Troubleshooting

<div class="relative w-full mt-4 mb-1" id="bkmrk-chmod-%2Bx-%7E%2Fdesktop%2Fl"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-chmod-%2Bx-%7E%2Fdesktop%2Fl-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/Desktop/ledger-live.desktop  
cinnamon <span class="ͼu">--replace</span> &amp;</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 💡 Maintenance Notes

- Only one AppImage should exist
- Icon remains unchanged indefinitely
- Launcher requires no further edits

---

## ✅ Conclusion

This setup provides a clean, reliable, and controlled way to run Ledger Live on Linux Mint.

By separating:

- executable (AppImage)
- icon (static asset)
- launcher (fixed reference)

you achieve a **stable, repeatable, low-maintenance workflow**.

---

## 🔁 Update Command (Final)

<div class="relative w-full mt-4 mb-1" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-4"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-5"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">mv</span> ~/Downloads/ledger-live-desktop-2*.AppImage ~/AppImages/ledger-live.AppImage  
<span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## 💡 Guiding Principle

> One AppImage. One path. One launcher.