¿Cómo crear la opción para insertar una marca de tiempo?

8

Al editar documentos de texto, necesito poner marcas de tiempo con frecuencia. Pensé en automatizarlo de 2 maneras diferentes. Ninguno de estos parece estar funcionando.

  1. Usando nautilus-actions

Configuré una nueva acción de contexto derecho que ejecuta el comando date|xclip

ingrese la descripción de la imagen aquí

Este contexto correcto no aparece cuando hago clic derecho en otras aplicaciones (como terminal o navegador). Además, cuando aparece, y hago clic en él, no hace nada.

  1. Usando el atajo de teclado

Configuré un nuevo atajo de teclado que se supone que ejecuta el datecomando pero no lo hace.

ingrese la descripción de la imagen aquí

Cualquier puntero?

Gracias.

usuario13107
fuente

Respuestas:

11

Los atajos de teclado de GNOME deberían funcionar.

He aquí por qué lo que intentó no funcionó: el método abreviado de teclado ejecuta el datecomando, pero no hace nada con la salida (que simplemente se descarta). Usted debe tubería que xclip, como date | xclippara copiarlo a la selección X ( no portapapeles). Luego puede pegarlo en su documento haciendo clic con el botón central. Si desea poder usar Ctrl-V, use date | xclip -selection cpara copiarlo en el portapapeles real.

Otra alternativa es usar xdotoolpara escribir la fecha directamente en su documento. Asignar a su atajo

xdotool type "$(date)"

Luego, cuando presiona la tecla de acceso directo, calculará la fecha actual y escribirá los caracteres en su documento.

Para el formato ISO 8601, use xdotool type "$(date --rfc-3339=s)".


Si no funciona: debido a que estos son comandos de shell (a diferencia de los ejecutables), es posible que deba pasar el comando bashal especificarlos en su acceso directo. Su comando sería entonces:

bash -c 'xdotool type "$(date --rfc-3339=s)"'
Caracol mecánico
fuente
Gracias. Lo intenté. Pero no está funcionando. Le asigné el atajo a CTRL +; y hago clic en esta combinación particular en el escritorio y luego hago clic en CTRL + V (digamos en gmail) pero no se pega. ¿Tengo que reiniciar la computadora portátil?
user13107
@ user13107: Resulta que, de forma predeterminada, xclipcopia el texto no en el portapapeles, sino en la selección X. Para pegarlo, haga clic con el botón central en lugar de Ctrl-V.
Caracol mecánico el
El uso bash -chizo el truco, pero hay algún tipo de retraso en la escritura. Cuando hago clic en el acceso directo, la marca de tiempo completa no se escribe con xdotool. Algunos números iniciales se comen, por ejemplo, 1-07 15:14:35+08:00o013-01-07 15:14:35+08:00
user13107
1
@ user13107 Tuve el mismo problema. Después de algunas pruebas y errores, terminé con el comando bash -c 'date | xclip -selection clipboard && xdotool key 'ctrl+v''que funciona perfectamente.
Immanuel Weihnachten
1
@ user13107, esto se debe a que no usa xdotool --clearmodifiers, algunas teclas se escriben con Ctrl (por ejemplo, espacio, se traga). Algunos caracteres no se escribirán (p :. Ej ., Que se desplaza), pero estoy usando el siguiente comando: xdotool type --clearmodifiers $(date "+%Y-%m-%d,%H-%I")que funciona para mí.
Tomasz Gandor
3

He estado usando esto con éxito como un atajo de teclado personalizado asignado a Ctrl+Shift+D:

bash -c 'sleep 0.3 && xdotool type "$(date -u +%Y-%m-%d_%H:%M:%SZ)"'

Descubrí que agregar un ligero retraso resolvió los problemas con la falta de caracteres iniciales, y no contamina mi portapapeles.

Tenga en cuenta que estoy usando una versión ligeramente personalizada del formato RFC 3339 / ISO 8601: a menudo lo uso en contextos donde quiero evitar el espacio en datela salida RFC 3339, pero encuentro Tque separa la fecha de la hora en Las marcas de tiempo ISO 8601 son poco intuitivas y difíciles de leer, por lo que creo que un guión bajo funciona bien.

Gabriel Grant
fuente
1
bash -c 'xdotool keyup super && xdotool type "$(date +%Y.%m.%d)"'

Lo uso Super+Qcomo acceso directo y necesito borrar el supermodificador antes de enviarlo date. Lo intenté --clearmodifierspero eso provocaría unity dashque apareciera después de que se ejecutara el acceso directo [1]

[1] La razón unity dashque aparecerá después es antes de que superse restaure si --clearmodifiersse usa.man xdotool

CLEARMODIFIERS
       Any command taking the --clearmodifiers flag will attempt to clear any
       active input modifiers during the command and restore them afterwards.
Sungam
fuente