Comment créer une option pour insérer un horodatage?

8

Lors de la modification de documents texte, je dois mettre fréquemment des horodatages. J'ai pensé à l'automatiser de 2 manières différentes. Aucun de ceux-ci ne semble fonctionner.

  1. Utiliser les actions nautilus

J'ai mis en place une nouvelle action contextuelle qui exécute la commande date|xclip

entrez la description de l'image ici

Ce contexte droit n'apparaît pas lorsque je clique avec le bouton droit dans d'autres applications (comme un terminal ou un navigateur). D'ailleurs quand il apparaît, et que je clique dessus, ça ne fait rien.

  1. Utilisation du raccourci clavier

J'ai configuré un nouveau raccourci clavier qui est censé exécuter la datecommande mais ne le fait pas.

entrez la description de l'image ici

Des pointeurs?

Merci.

user13107
la source

Réponses:

11

Les raccourcis clavier GNOME devraient fonctionner.

Voici pourquoi ce que vous avez essayé n'a pas fonctionné: votre raccourci clavier exécute la datecommande, mais ne fait rien avec la sortie (qui est simplement supprimée). Vous devez le diriger vers xclip, comme date | xclippour le copier dans la sélection X ( pas dans le presse-papiers). Vous pouvez ensuite le coller dans votre document en cliquant avec le bouton central. Si vous voulez pouvoir utiliser Ctrl-V, utilisez plutôt le date | xclip -selection ccopier dans le presse-papiers réel.

Une autre alternative consiste à xdotoolsaisir directement la date dans votre document. Attribuer à votre raccourci

xdotool type "$(date)"

Ensuite, lorsque vous appuyez sur la touche de raccourci, il calcule la date actuelle et saisit les caractères dans votre document.

Pour le format ISO 8601, utilisez xdotool type "$(date --rfc-3339=s)".


Si cela ne fonctionne pas: Parce que ce sont des commandes shell (par opposition aux exécutables), vous devrez peut-être passer la commande à bashlors de leur spécification dans votre raccourci. Votre commande serait alors:

bash -c 'xdotool type "$(date --rfc-3339=s)"'
Escargot mécanique
la source
Merci. Essayé. Mais ça ne marche pas. J'ai attribué le raccourci à CTRL +; et je clique sur cette combinaison particulière sur le bureau, puis je clique sur CTRL + V (disons dans gmail) mais ça ne colle pas. Dois-je redémarrer l'ordinateur portable?
user13107
@ user13107: Il s'avère que par défaut, xclipcopie le texte non pas dans le presse-papiers, mais dans la sélection X. Pour le coller, utilisez le clic du milieu plutôt que Ctrl-V.
Escargot mécanique
L'utilisation a bash -cfait l'affaire mais il y a une sorte de retard dans la frappe. Lorsque je clique sur le raccourci, l'horodatage complet n'est pas tapé à l'aide de xdotool. Certains nombres initiaux sont mangés, par exemple 1-07 15:14:35+08:00ou013-01-07 15:14:35+08:00
user13107
1
@ user13107 J'ai eu le même problème. Après quelques essais et erreurs, je me suis retrouvé avec la commande bash -c 'date | xclip -selection clipboard && xdotool key 'ctrl+v''qui fonctionne parfaitement.
Immanuel Weihnachten
1
@ user13107 - c'est parce que vous n'utilisez pas xdotool --clearmodifiers- certaines touches sont tapées avec le Ctrl (par exemple - espace, il est avalé). Certains caractères ne seront pas saisis (par exemple :- qui est décalé), mais j'utilise une commande suivante: xdotool type --clearmodifiers $(date "+%Y-%m-%d,%H-%I")qui fonctionne pour moi.
Tomasz Gandor
3

J'ai utilisé avec succès ceci comme raccourci clavier personnalisé attribué à Ctrl+Shift+D:

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

J'ai trouvé que l'ajout d'un léger retard a résolu les problèmes avec les caractères initiaux manquants et ne pollue pas mon presse-papiers.

Notez que j'utilise une version légèrement personnalisée du format RFC 3339 / ISO 8601: je l'utilise souvent dans des contextes où je veux éviter l'espace dans datela sortie RFC 3339 de, mais je trouve le Tqui sépare la date de l'heure dans Les horodatages ISO 8601 sont plutôt peu intuitifs et difficiles à lire, donc je trouve qu'un trait de soulignement fonctionne bien.

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

J'utilise Super+Qcomme raccourci et je dois effacer le supermodificateur avant d'envoyer le date. J'ai essayé --clearmodifiersmais cela ferait apparaître le unity dashmessage après l'exécution du raccourci [1]

[1] La raison unity dashqui apparaîtrait ensuite est avant que le supersoit restauré si --clearmodifiersest utilisé.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
la source