# Linux Image Loading Fix Obsidian plugin that fixes image loading issues on Linux (Ubuntu). ## Problem On **Linux**, especially **Ubuntu** and derivatives (Pop!_OS, Linux Mint, etc.), Obsidian (an Electron/Chromium app) often fails to display local images. The issue has been reported since **2022** (v1.0.0) and remains unfixed. The root cause is twofold: 1. **Broken `app://` protocol** — Electron/Chromium cannot resolve paths with non-ASCII characters: emoji, diacritics, Cyrillic, CJK, etc. 2. **Missing image codecs** — some Linux Electron builds lack codecs for PNG, JPEG, WebP, causing status 0 or decode failures. Affects **Snap**, **Flatpak**, and **DEB** packages. **AppImage** is slightly more stable but not immune. ARM systems also affected. This is an upstream Electron/Chromium bug. The Obsidian team cannot fix it directly. This plugin provides a reliable workaround. ## How it works The plugin intercepts markdown rendering (MarkdownPostProcessor), finds all `` elements, reads the image file directly from disk via `vault.adapter.readBinary()` and replaces `src` with a Blob URL (`blob:...`). This bypasses the broken `app://` protocol. ## Features - Loads images bypassing the `app://` protocol - Supports png, jpg, gif, webp, svg, bmp - Automatic processing when opening a page ## Installation ### Symlink (recommended for development) ```bash ln -s "$PWD" /home/death/Documents/TEST-VAULT-3/.obsidian/plugins/linux-image-rendering-fix ``` After `npm run build`, Obsidian picks up the new `main.js` on plugin reload. ### Copy files Copy `main.js`, `manifest.json`, `styles.css` to the plugin directory: ```text /.obsidian/plugins/linux-image-rendering-fix/ ``` ## Issues Bug reports and feature requests: https://github.com/Evgene-Kopylov/linux-image-rendering-fix/issues ## Development Development happens on GitLab: https://gitlab.com/Evgene-Kopylov/linux-image-rendering-fix ```bash npm install npm run dev # watch mode npm run build # production build npm run lint # ESLint npm run test # Vitest ``` ## License LGPL-3.0