Make Custom Fonts Available to LibreOffice Flatpak

To make a custom font available in LibreOffice Flatpak, install its font file in your Linux user fonts directory, then fully close and reopen LibreOffice. Flatpak exposes the standard per-user font directory to sandboxed apps, so you usually do not need to grant LibreOffice extra filesystem access or copy fonts into the Flatpak installation itself.

On most Linux desktops, the user font folder is ~/.local/share/fonts. If your system sets XDG_DATA_HOME to a different location, the corresponding folder is $XDG_DATA_HOME/fonts. Flatpak exposes that host directory inside the sandbox as /run/host/user-fonts. These paths are documented in the Flatpak desktop integration documentation.

What should you prepare before installing the font?

Use a desktop font file such as .ttf or .otf that you are permitted to install. Web font files such as .woff and .woff2 are intended for web pages and are not the right format for this workflow. If a font download arrives as a ZIP archive, extract it first and locate the actual font file. Do not copy the ZIP itself into the fonts folder.

For a family with regular, bold, italic, and bold italic styles, install each supplied style file. A single regular font file will not necessarily provide the other weights or italic forms. Font names shown in LibreOffice can differ from the filename, so note the family name from the font’s publisher or preview before testing.

How do you install a font for your Linux user?

  1. Create the font folder if it does not exist. In a terminal, run:
    font_dir="${XDG_DATA_HOME:-$HOME/.local/share}/fonts"
    mkdir -p "$font_dir"
    This follows the XDG data directory when one is configured and otherwise uses the standard location under your home directory.
  2. Copy the extracted font file into that folder. Replace the example filename with the actual path to your font:
    cp "$HOME/Downloads/ExampleSans-Regular.ttf" "$font_dir/"
    You can also use your file manager: open the home folder, press Ctrl+H if hidden folders are not visible, then open .local/share/fonts and copy the font file there. For a custom XDG_DATA_HOME, use its fonts subfolder instead.
  3. Close LibreOffice completely and reopen it. Save open documents first, then use File > Exit or close every LibreOffice window. A document window disappearing may not always stop every background LibreOffice process. If needed, run flatpak kill org.libreoffice.LibreOffice after saving; this stops the Flatpak app so it can rebuild its font list when launched again.
A Linux file manager shows ExampleSans-Regular.ttf being copied into the user fonts folder at .local/share/fonts.
Copy the extracted TTF or OTF file into the user font directory, not into the downloaded ZIP archive.

Does LibreOffice need a font cache refresh?

Often, restarting LibreOffice is enough. If the font still does not appear, refresh the host fontconfig cache and launch LibreOffice again:

fc-cache -f

Run this command in your normal Linux desktop session, not inside LibreOffice. It asks fontconfig to rebuild its font cache. If your system does not have the fc-cache command, use the font installation or refresh option provided by your Linux distribution, or log out and back in before testing again.

Flatpak exposes host font directories to apps, but it does not expose the host’s fontconfig configuration files. As a result, a host-specific fontconfig customization may not carry into LibreOffice’s runtime. The standard user font directory is the first place to test because it is explicitly included in Flatpak’s documented font paths.

A Linux terminal displays fc-cache -f followed by flatpak kill org.libreoffice.LibreOffice.
If a restart alone does not refresh the font list, rebuild the host font cache and then restart the Flatpak app.

How can you confirm the font is available in Writer?

  1. Open LibreOffice Writer and create a blank test document.
  2. Type a short sample containing uppercase and lowercase letters, numbers, punctuation, and any accented or non-Latin characters you need.
  3. Select the sample and open the font name box on the formatting toolbar. Search for the font’s family name and select it. LibreOffice’s help explains that the font box can select a listed font or accept a font name; the selected font applies to the current selection or to new text at the cursor.
  4. Check the visible result and save a test copy. If the text changes shape and line wrapping responds as expected, the font is active in the application. For work that depends on page layout, also inspect print preview or export a temporary PDF and compare line breaks and page count.
LibreOffice Writer shows Example Sans selected in the font name dropdown above a short sample paragraph.
Select the font family in Writer and apply it to a short sample before changing an entire document.
LibreOffice print preview shows a one-page document formatted with a custom sans-serif font.
Check the final page layout in print preview when line breaks and pagination matter.

What if the font is missing or the document still looks wrong?

Start by checking the simple causes. Confirm the font file is actually inside the active user fonts folder and is not still compressed in an archive. Verify that you used the family name rather than assuming the filename is the name Writer will list. Make sure every LibreOffice window and background process was closed before reopening it.

If you have fontconfig tools installed, you can check whether the host recognizes the family by running fc-list : family | grep -i "Example Sans" and replacing the sample name. If no result appears, the issue is on the host side: verify the directory, file format, file permissions, and whether the downloaded font is valid. If the host lists it but Writer does not, refresh the cache, restart LibreOffice again, and confirm the app ID is the Flathub LibreOffice Flatpak. Flathub lists the application as org.libreoffice.LibreOffice.

A font can also be available while some characters remain unchanged. The chosen typeface may not contain every glyph needed for your sample text; LibreOffice or the runtime can display missing characters using fallback fonts. Test the exact scripts and symbols used in your document, and choose a family with the required glyph coverage if squares or visibly different characters remain.

Avoid broad sandbox overrides such as granting LibreOffice read access to your entire home directory just to install a font. The standard font location is designed for this use. If an unusual distribution or custom Flatpak setup does not expose it, review that system’s Flatpak configuration before adding a narrowly scoped, read-only permission.

How do you know the fix is complete?

The fix is complete when the font family appears in Writer’s font list, applies to selected text, and renders the characters and page layout you need. Reopen the saved test document to ensure the selection persists. Keep in mind that installing a font locally does not guarantee that another computer has it; recipients who lack the typeface may see substituted fonts and different line breaks. Check the font’s license and the document format’s font-handling options before distributing files that rely on it.

For reference, the LibreOffice Font Name help describes font selection in the toolbar, while the Flathub LibreOffice listing identifies the Flatpak package.

Leave a Comment

Connect LibreOffice Base to PostgreSQL with the Built-In Wizard

Connect LibreOffice Base to PostgreSQL with the Built-In Wizard

Use Base’s direct PostgreSQL option to enter your server details, sign in, save an ODB connection file, and troubleshoot common access errors.

Make Custom Fonts Available to LibreOffice Flatpak

Make Custom Fonts Available to LibreOffice Flatpak

Install a font in your Linux user font folder, restart LibreOffice Flatpak, and confirm it appears in Writer without weakening the app sandbox.

Stop LibreOffice Save Crashes on Sonoma: Work Locally First

Stop LibreOffice Save Crashes on Sonoma: Work Locally First

Protect your work and isolate network-drive save crashes in LibreOffice on macOS Sonoma with a local-first workflow, permission checks, and targeted tests.

Keep CSV IDs Intact in Calc by Importing Them as Text

Keep CSV IDs Intact in Calc by Importing Them as Text

Preserve leading zeros in Calc by setting ID columns to Text during CSV import, checking the preview, and verifying the saved data.

LibreOffice Document Locked by Unknown User: A Safe Fix

LibreOffice Document Locked by Unknown User: A Safe Fix

Find the cause of a LibreOffice document lock, safely clear a stale lock file, and confirm that you can edit and save without losing changes.

Speed Up Writer by Hiding and Compressing Document Images

Speed Up Writer by Hiding and Compressing Document Images

Make image-heavy Writer files easier to edit: test a reversible display setting, compress oversized pictures in a copy, and verify the saved layout.

Speed Up LibreOffice Startup on Windows 11 and Linux

Speed Up LibreOffice Startup on Windows 11 and Linux

Find out whether a slow launch comes from extensions, profile settings, or the system, then test the safest fix without losing LibreOffice data.

Save LibreOffice Documents Directly to Nextcloud with WebDAV

Save LibreOffice Documents Directly to Nextcloud with WebDAV

Connect LibreOffice to Nextcloud over WebDAV, save the server copy with Ctrl+S, and understand how AutoRecovery differs from cloud syncing.

Bluetooth Adapter Missing on Pardus 23? Start with These Checks

Bluetooth Adapter Missing on Pardus 23? Start with These Checks

Find out whether Pardus 23 is blocking Bluetooth, missing BlueZ, or failing to detect adapter firmware, then confirm the controller works.

Set Gooroom Browser Isolation Through Your Organization’s Policy

Set Gooroom Browser Isolation Through Your Organization’s Policy

Learn how Gooroom separates trusted and untrusted browsing, what users can change, and how an administrator can safely update site policies.