ショートカットでスクリプトのテキストを別のアプリケーションに貼り付ける

ショートカットでスクリプトのテキストを別のアプリケーションに貼り付ける

私が達成したいことが何であるかを説明します。私たちは2段階認証プロセスを使用しており、TOTPトークンを生成してFirefoxのいくつかのショートカットに貼り付けるスクリプトを作成したいと思います。だからこんなスクリプトを作成しました。

#!/bin/sh

echo $(oathtool --totp some-seed)

ただし、このスクリプトにショートカットを割り当てると、コンソール以外の場所ではPINを印刷できません。いいですね。これを試してみると、素朴であることはわかりますが、私の目標を達成するための最良の方法は何ですか?

答え1

あなたはそれを使用することができますxclip

oathtool --totp some-seed | xclip

コマンドの出力はXのデフォルト選択にあり、マウスの中央ボタンをクリックして貼り付けることができます。

+を使用してFirefoxにCtrl貼り付けるためにクリップボードに送信することもできます。V

some_command | xclip -selection clipboard

xdotoolまたは指示に従って使用してくださいこの質問には

答え2

ここに一つあります。効果的なソリューション痛みはありません。

sendkeysここからスクリプトをインストールします。https://github.com/kyoto/sendkeys

あなたの場合は、次のようにします。

oathtool --totp some-seed | xargs sendkeys.sh 'Firefox'

oathtoolこれにより、開いているFirefoxウィンドウに出力が送信されます。

このスクリプトはタイトルに基づいてウィンドウを検索します。したがって、Libreoffice Writerにスクリプトを送信するには、「Writer」を使用します。

答え3

次のxbindkeys操作はxvkbdコマンドを使用し、クリップボードを妨げません。

xvkbdは、Xウィンドウシステム用の仮想(グラフィックス)キーボードプログラムです。

xvkbd -xsendevent -text `oathtool 00`

答え4

組み合わせることができますxbindkeysそしてxdoツールキーをバインドして、フォーカスがあるすべてのアプリケーションにコマンド出力を挿入します。Ctrl++などのキーを選択しShiftて、F1次のように入力します~/.xbindkeysrc

"xdotool type $(oathtool --totp some-seed)"
control+shift+F1

xbindkeysセッションでプログラムを開始する必要があります。デスクトップ環境を使用している場合は、ランチャーに追加してください。たとえば、スクリプトからセッションを開始する場合は、スクリプト~/.xinitrcxbindkeysそこに追加します。

関連情報