O problema
Um script não é necessário.
O problema não é que um arquivo .desktop não possa executar comandos com subshells, já que
Exec=/bin/bash -c "echo $(date) > ~/out.txt"
funciona perfeitamente em um arquivo .desktop .
Brincando com o comando, cheguei à conclusão de que o % -character está causando o problema. Não tenho explicação para isso, e até agora não consegui encontrar informações sobre como resolver ou escapar disso.
Por isso fui procurar um comando para obter o tempo sem usando o caractere suspeito.
Como alternativa, use o Ruby para a data & amp; tempo
Isso me leva a Ruby , que produz a data atual & amp; hora do comando:
$ ruby -e 'puts Time.now.inspect'
2016-05-29 16:12:36 +0200
Quando editamos a saída um pouco com awk , removendo espaços e delimitadores, temos exatamente o que queremos, e um comando de trabalho no .desktop arquivo, já que não usamos % :
Exec=/bin/bash -c "gedit ~/$(ruby -e 'puts Time.now.inspect' | awk -F'[: -]' '{print }')"
Nota!
Sem dúvida, o comando pode ser "encantado" um pouco, eu provavelmente vou editar a resposta um pouco hoje ou amanhã.