#2467·ImageGlass

[Linux] Name sort differs from Dolphin when basename is prefix of another (extension included in compare)

Author: M4tEdCreated Sep 18, 2026Updated Sep 18, 2026

Windows OS version

N/A - CachyOS Linux / KDE Dolphin 26.08.1

ImageGlass version

10.0.6.906 linux-x64 AppImage

ImageGlass release

Classic

1️⃣ Steps to reproduce

  1. Create folder with park.jpg and park 2.jpg (same extension).
  2. In ImageGlass Settings > Image > Image loading order = Name (default), Ascending.
  3. Open park.jpg in ImageGlass, navigate next/prev, or check gallery order.
  4. Compare with Dolphin sorted by Name, or sort -V / ls -v.

Same with park.jpg vs park - 2.jpg.

2️⃣ Actual behavior

  • ImageGlass shows park 2.jpg first, park.jpg second.
  • ImageGlass shows park - 2.jpg first, park.jpg second.

3️⃣ Expected behavior

  • Dolphin / Explorer / sort -V / ls -v show park.jpg first, park 2.jpg second.
  • Dolphin shows park.jpg first, park - 2.jpg second.

4️⃣ Screenshots / Video / Sample image file

No image format issue — filenames suffice:

park.jpg
park 2.jpg
park - 2.jpg

5️⃣ Additional context

Suspected root cause in source/ImageGlass.Lib/Common/ServiceProviders/FileSearchService/FileSearchProvider.cs (SortEntries() / SortFiles()):

cs
.ThenBy(f => Path.GetFileName(f), filePathComparer)

uses full filename with StringNaturalComparer (OrdinalIgnoreCase), so park.jpg vs park 2.jpg compares pos 4: '.' (46) vs ' ' (32). Space wins.

Dolphin/Explorer/sort -V sort basename first, extension second (park is prefix of park 2, shorter-first).

Suggested fix:

cs
.ThenBy(f => Path.GetFileNameWithoutExtension(f), filePathComparer)
.ThenBy(f => Path.GetExtension(f), StringComparer.OrdinalIgnoreCase)

Config: igconfig.json: ImageLoadingOrder: Name, ImageLoadingOrderType: Asc, EnableExplorerSortOrder: false. EnableExplorerSortOrder is Windows-only (Win32FileSearchProvider), so no workaround on Linux.