Ich denke, dass .desktop-Dateien ihre Exec=
Befehle nicht in einer vollständigen / regulären Shell ausführen. Wenn Sie also mehrere Befehle verwenden möchten, müssen Sie explizit eine Shell mit diesen Befehlen ausführen. Zum Beispiel sollten diese funktionieren:
Exec=sh -c "sleep 5; notify-send test-delay"
Oder in deinem Fall:
Exec=sh -c "sleep 20; setxkbmap -option caps:none"