Skip to content

[Bug]: "Add Desktop Entry" Works on GNOME but Not on KDE Plasma #4012

@thiagocf84

Description

@thiagocf84

Describe the bug

Bug Report: "Add Desktop Entry" Works on GNOME but Not on KDE Plasma

Describe the bug

The "Add Desktop Entry" button works perfectly on GNOME but completely fails to create desktop shortcuts on KDE Plasma. This creates an inconsistent user experience across desktop environments.

Expected behavior

  • Clicking "Add Desktop Entry" should create a desktop shortcut on KDE Plasma, just like it does on GNOME
  • The functionality should be consistent across desktop environments

Actual behavior

  • GNOME: Desktop shortcut is created successfully ✅
  • KDE Plasma: No desktop shortcut is created, button appears to do nothing ❌

To Reproduce

Environment Setup:

  • OS: openSUSE Tumbleweed
  • Desktop Environment: KDE Plasma
  • Bottles Installation: Flatpak

Steps:

  1. Install any Windows application in a Bottles container (e.g., MetaTrader 5)
  2. Navigate to the bottle's Programs section
  3. Click the three dots (⋮) next to the installed program
  4. Select "Add Desktop Entry"
  5. Check desktop for shortcut creation

Results:

  • Expected: Desktop shortcut appears
  • Actual: No desktop shortcut is created

System Information

  • Bottles Version: 51.24 (Flatpak stable)
  • Installation Method: Flatpak (com.usebottles.bottles)
  • Desktop Environment: KDE Plasma
  • Display Protocol: X11
  • Distribution: openSUSE Tumbleweed
  • Kernel Version: 6.15.7-1-default

Additional Context

  • The same functionality works perfectly on GNOME desktop environment
  • CRITICAL FINDING: Desktop directory exists and is functional (~/Área de trabalho/ contains working KDE shortcuts)
  • Root cause confirmed: Bottles is NOT using xdg-user-dir DESKTOP to detect the correct desktop path
  • Impact: Affects all non-English KDE installations (Portuguese, Spanish, German, French, etc.)
  • No .desktop files created anywhere: Neither in applications menu nor in desktop directory
  • Installation via Flatpak stable channel (version 51.24)
  • This is a localization/internationalization bug affecting international users
  • Related to issues [Bug]: Program -> Add Desktop Entry partly works on KDE Plasma #1722 and "Add Desktop Entry" is misleading  #2756, but this identifies the specific technical cause

Proposed Solution

Bottles must use XDG Base Directory Specification instead of hardcoded paths:

Current (broken) approach:

desktop_path = os.path.expanduser("~/Desktop/")

Correct approach:

import subprocess
desktop_path = subprocess.check_output(['xdg-user-dir', 'DESKTOP']).decode().strip()

This will properly handle:

  • English: ~/Desktop/
  • Portuguese: ~/Área de trabalho/
  • German: ~/Schreibtisch/
  • French: ~/Bureau/
  • Spanish: ~/Escritorio/
  • And all other localized desktop folder names

Debugging Information

Please run these commands and include the output:

# System Information Output:
Desktop: KDE
Session: KDE
Session Type: x11

# Bottles Installation:
Bottles com.usebottles.bottles 51.24 stable system

# Desktop directory detection:
xdg-user-dir DESKTOP = /home/[username]/Área de trabalho

# Desktop directory contents (WORKING - has KDE default shortcuts):
total 16
drwxr-xr-x. 1 [user] [user]   70 jul 22 08:35 .
drwx------. 1 [user] [user]  514 jul 25 14:59 ..
-rw-r--r--. 1 [user] [user]   50 jul 22 08:35 .directory
-rw-r--r--. 1 [user] [user] 2401 jul 22 08:35 Home.desktop
-rw-r--r--. 1 [user] [user] 4510 jul 25 08:35 trash.desktop

# No bottles-related .desktop files found in ~/.local/share/applications/
# No MetaTrader-related .desktop files found in desktop directory
# CONCLUSION: Desktop directory exists and is functional, but Bottles is not using it

Proposed Solution

The issue likely stems from KDE Plasma having different requirements or paths for desktop shortcut creation compared to GNOME. Investigation needed into:

  1. KDE-specific desktop entry creation APIs
  2. Different path requirements for KDE vs GNOME
  3. Potential permission or integration differences

This affects user experience consistency and should be addressed to maintain feature parity across desktop environments.

To Reproduce

  1. Install any Windows application in a Bottles container (e.g., MetaTrader 5)
  2. Navigate to the bottle's Programs section
  3. Click the three dots (⋮) next to the installed program
  4. Select "Add Desktop Entry"
  5. Check desktop for shortcut creation

Package

Flatpak from Flathub

Distribution

OpenSUSE Tumbleweed 20250722

Debugging Information

Official Package: true
Version: '51.24'
DE/WM: plasma6
Display:
    X.org: true
    X.org (port): :0
    Wayland: false
Graphics:
    vendors:
        amd:
            vendor: amd
            envs:
                DRI_PRIME: '1'
            icd: /usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/radeon_icd.x86_64.json:/usr/lib/i386-linux-gnu/GL/vulkan/icd.d/radeon_icd.i686.json
    prime:
        integrated: null
        discrete: null
Kernel:
    Type: Linux
    Version: 6.15.7-1-default
Disk:
    Total: 2832089088
    Free: 2831921152
RAM:
    MemTotal: 5.3GiB
    MemAvailable: 1.7GiB
Bottles_envs: null

Troubleshooting Logs

Additional context

  • The same functionality works perfectly on GNOME desktop environment
  • CRITICAL FINDING: Desktop directory exists and is functional (~/Área de trabalho/ contains working KDE shortcuts)
  • Root cause confirmed: Bottles is NOT using xdg-user-dir DESKTOP to detect the correct desktop path
  • Impact: Affects all non-English KDE installations (Portuguese, Spanish, German, French, etc.)
  • No .desktop files created anywhere: Neither in applications menu nor in desktop directory
  • Installation via Flatpak stable channel (version 51.24)
  • This is a localization/internationalization bug affecting international users
  • Related to issues [Bug]: Program -> Add Desktop Entry partly works on KDE Plasma #1722 and "Add Desktop Entry" is misleading  #2756, but this identifies the specific technical cause

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions