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