Skip to content

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

Description

@M4tEd

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()):

.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:

.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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions