как на быструю дату входного тока и время с быстрым словом?

Существует дополнение в fcitx где можно связать слово с некоторой другой строкой как "улыбка ( ・∀・ )" вводимый в в ~/.config/fcitx/data/QuickPhrase.mb. Когда Вы вводите smile это производит ( ・∀・ )'

Я хочу то же самое, но функцию, а не слово; я хочу, чтобы это произвело текущую метку времени.

Например: когда я ввел "время", оно производит текущее время "03.08.2016 11:15", одну минуту спустя, когда я ввел "время", оно производит "03.08.2016 11:16"

3
задан 23 August 2016 в 05:02

1 ответ

В этом сообщении:

  1. Введение
  2. QuickPhrase_Time.py сценарий
  3. xclip ярлык

1. Введение

Плагин, к которому OP относится к, является QuickPhrase и может быть установлен через sudo apt-get install fcitx-modules fcitx-module-quickphrase-editor. Это использует ~/.config/fcitx/data/QuickPhrase.mb сохранить фразы.

Основная цель здесь состоит в том, чтобы иметь простой способ вставить строку, которая содержит текущее время в текст, зарегистрировал того пользователя, в настоящее время редактирует. Ниже существует два решения.


2. Сценарий QuickPhrase_Time.py

Этот сценарий непрерывно редактирует строку в файле конфигурации, который имеет time_now фраза, и добавляет текущее время к строке. Этот сценарий предназначен, чтобы быть запущенным автоматически на входе в систему GUI.

Использование просто:

 python /path/to/QuickPhrase_Timer.py

Источник сценария

Также доступный как Суть GitHub, обновленные версии, вероятно, пойдут туда.

#!/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 __name__ == '__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. ярлык xclip

В случае, если вышеупомянутый сценарий Python не будет работать на Вас, вот обходное решение: свяжите команду ниже с сочетанием клавиш

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

По существу то, что это делает, является выводом копий date к Вашему буферу обмена, который можно затем выпустить через ярлык Ctrl+V (который характерен для большинства приложений как ярлык вставки).

Этот подход не полагается fctix или любой другой метод ввода, следовательно более гибок и надежен.

Отметьте это xclip не установлен по умолчанию. Получите его через sudo apt-get install xclip

5
ответ дан 1 December 2019 в 15:35

Другие вопросы по тегам:

Похожие вопросы: