web-dev-qa-db-fra.com

comment entrer rapidement la date et l'heure actuelles avec un mot rapide?

Il y a un addon dans fcitx où vous pouvez associer un mot à une autre chaîne comme "smile (・ ∀ ・)" entrée à ~/.config/fcitx/data/QuickPhrase.mb. Lorsque vous tapez smile, il affiche (・ ∀ ・) `

Je veux la même chose mais une fonction plutôt qu'un mot; Je veux qu'il produise un horodatage actuel.

Par exemple: lorsque j'entre "heure", il sort l'heure actuelle "2016-08-03 11:15", une minute plus tard, quand j'entre "heure", il sort "2016-08-03 11:16"

3
dindom

Dans cet article :

  1. Introduction
  2. QuickPhrase_Time.py script
  3. xclip raccourci

1. Introduction

Le plugin auquel OP fait référence est QuickPhrase et peut être installé via Sudo apt-get install fcitx-modules fcitx-module-quickphrase-editor. Il utilise ~/.config/fcitx/data/QuickPhrase.mb pour stocker des phrases.

L'objectif principal ici est d'avoir un moyen simple d'insérer une chaîne contenant l'heure actuelle dans le texte déposé que l'utilisateur est en train de modifier. Ci-dessous, il existe deux solutions.


2. Script QuickPhrase_Time.py

Ce script modifie en continu la ligne du fichier de configuration qui a time_now phrase, et ajoute l'heure actuelle à la ligne. Ce script est destiné à être lancé automatiquement lors de la connexion à l'interface graphique .

L'utilisation est simple:

 python /path/to/QuickPhrase_Timer.py

Source de script

Également disponible sous la forme Github Gist , les versions mises à jour y seront probablement disponibles.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import subprocess
import time
import os


def run_cmd(cmdlist):
    """ Reusable function for running external commands """
    new_env = dict( os.environ ) 
    new_env['LC_ALL'] = 'C' 
    try:
        stdout = subprocess.check_output(cmdlist,env=new_env)
    except subprocess.CalledProcessError:
        pass
    else:
        if stdout:
            return stdout

if __== '__main__':
    user_home = os.path.expanduser('~')
    config_file = '.config/fcitx/data/QuickPhrase.mb'
    config_full_path = os.path.join(user_home,config_file)
    found = None

    while True:
         lines = []
         time.sleep(1)
         with open(config_full_path) as f:
              for line in f:
                  lines.append(line.strip())
                  if line.startswith('time_now'):
                      found = True
         # print(lines)
         if found:
             with open(config_full_path,'w') as f:
                  for line in lines:
                      if line.startswith('time_now'):
                         time_now = run_cmd(['date', 
                                             '+%Y-%m-%d %I:%M'
                                             ]).decode().strip()
                         line = 'time_now ' + time_now + '\n'
                      else:
                         line = line + '\n'
                      f.write(line)

3. raccourci xclip

Dans le cas où le script python ne fonctionnera pas pour vous, voici une solution: liez la commande ci-dessous à un raccourci clavier

xclip -sel clip <<< $( date +%Y-%m-%d\ %I:%M )

Essentiellement, cela copie les sorties de date dans votre presse-papiers, que vous pouvez ensuite publier via Ctrl+V raccourci (qui est courant pour la plupart des applications en tant que raccourci de collage).

Cette approche ne repose pas sur fctix ou sur toute autre méthode d'entrée, elle est donc plus flexible et fiable.

Notez que xclip n'est pas installé par défaut. Obtenez-le via Sudo apt-get install xclip

5
Sergiy Kolodyazhnyy