Существует дополнение в fcitx
где можно связать слово с некоторой другой строкой как "улыбка ( ・∀・ )" вводимый в в ~/.config/fcitx/data/QuickPhrase.mb
. Когда Вы вводите smile
это производит ( ・∀・ )'
Я хочу то же самое, но функцию, а не слово; я хочу, чтобы это произвело текущую метку времени.
Например: когда я ввел "время", оно производит текущее время "03.08.2016 11:15", одну минуту спустя, когда я ввел "время", оно производит "03.08.2016 11:16"
В этом сообщении:
QuickPhrase_Time.py
сценарийxclip
ярлыкПлагин, к которому OP относится к, является QuickPhrase и может быть установлен через sudo apt-get install fcitx-modules fcitx-module-quickphrase-editor
. Это использует ~/.config/fcitx/data/QuickPhrase.mb
сохранить фразы.
Основная цель здесь состоит в том, чтобы иметь простой способ вставить строку, которая содержит текущее время в текст, зарегистрировал того пользователя, в настоящее время редактирует. Ниже существует два решения.
Этот сценарий непрерывно редактирует строку в файле конфигурации, который имеет 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)
В случае, если вышеупомянутый сценарий Python не будет работать на Вас, вот обходное решение: свяжите команду ниже с сочетанием клавиш
xclip -sel clip <<< $( date +%Y-%m-%d\ %I:%M )
По существу то, что это делает, является выводом копий date
к Вашему буферу обмена, который можно затем выпустить через ярлык Ctrl+V (который характерен для большинства приложений как ярлык вставки).
Этот подход не полагается fctix
или любой другой метод ввода, следовательно более гибок и надежен.
Отметьте это xclip
не установлен по умолчанию. Получите его через sudo apt-get install xclip