fcitx
にはアドオンがあり、~/.config/fcitx/data/QuickPhrase.mb
に入力された「smile(・∀・)」のような他の文字列に単語を関連付けることができます。 smile
と入力すると、(・∀・) `が出力されます。
同じことをしたいのですが、Wordではなく関数が必要です。現在のタイムスタンプを出力したい。
例:「time」を入力すると、現在の時刻「2016-08-03 11:15」が出力され、1分後、「time」を入力すると「2016-08-0311:16」が出力されます。
この投稿では:
QuickPhrase_Time.py
スクリプトxclip
ショートカットOPが参照するプラグインは QuickPhrase であり、Sudo apt-get install fcitx-modules fcitx-module-quickphrase-editor
を介してインストールできます。 ~/.config/fcitx/data/QuickPhrase.mb
を使用してフレーズを保存します。
ここでの主な目的は、ユーザーが現在編集しているテキストファイルに現在の時刻を含む文字列を簡単に挿入する方法を用意することです。以下に2つの解決策があります。
このスクリプトは、time_now
句を含む構成ファイルの行を継続的に編集し、現在の時刻を行に追加します。このスクリプトは起動することを目的としています GUIへのログイン時に自動的に 。
使い方は簡単です:
python /path/to/QuickPhrase_Timer.py
Github Gist としても利用可能で、更新されたバージョンがそこに行く可能性があります。
#!/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
から入手してください