私はターミネーターをターミナルエミュレータとして使用していますが、とても好きなので、1つだけやりたいのですが、どうすればいいのかわかりません。
そのため、右クリックして「環境設定」に進み、カラープロファイルとフォントを選択する方法を知っています。その後、設定が完了したら、デフォルト設定にアクセスしているイニシエータインスタンスに行った更新(色/フォントなど)が反映されます。これを行いたいのですが、設定ファイルを手動で編集し、アクティブな~/.config/terminator/config
ターミネータセッションで設定ファイルを再ロードしてから、エミュレータを再起動せずにその変更を反映するだけです。
これを行う方法はありますか? --実際のプログラムを閉じることなく、設定ファイルからそれ自身を再ロードするように指示するコマンドの一種をターミネータに送信します。 GUIを介して設定を手動で編集すると、プロセスを再起動せずに変更が反映されるため、これが可能であると思います。
答え1
コマンドラインソリューションではありませんが、[基本設定]ダイアログボックスを開いて閉じて、ターミネータを終了せずにプロファイルを手動で再ロードできます。
答え2
ソースコードに移動して独自のソリューションを作成したい場合は、ターミネータがPythonで書かれているので、ソースコードに移動するのは簡単です。次を見つけました。
にはterminatorlib
モジュールがありますterminal.py
。クラスで次の2行を実行すると、目的のTerminal
効果が得られます。
self.config.base.reload()
self.reconfigure()
たとえば、左マウスボタンイベントを処理するon_buttonpress
クラス部分に次のようなものを含めることができます。Terminal
if event.button == self.MOUSEBUTTON_LEFT:
# Ctrl+leftclick on a URL should open it
if self.config["link_single_click"] or event.get_state() & Gdk.ModifierType.CONTROL_MASK == Gdk.ModifierType.CONTROL_MASK:
# Check new OSC-8 method first
url = self.vte.hyperlink_check_event(event)
dbg('url: %s' % url)
if url:
self.open_url(url, prepare=False)
else:
dbg('OSC-8 URL not detected dropping back to regex match')
url = self.vte.match_check_event(event)
if url[0]:
self.open_url(url, prepare=True)
else:
dbg("No regex match, discard event.")
self.config.base.reload() # <------ reload config file
self.reconfigure() # <------ refresh terminal profile
terminatorlib
私のコンピュータでは、/usr/lib/python3.11/site-packages/terminatorlib
もちろん実行しているものが見つかりますsudo find / -name terminatorlib
。
修正する:これを追加したようです。出身地(ここ);したがって、ソースからビルドするか、次のリリースを待つかにかかわらず、コードを直接書く必要はありません。 :)
答え3
sudo apt-get install xdotool
私はxdotool()のターミネーターを使ってウィンドウを設定することによって色スキームを変更するためのステップを実行するためにプログラム的にマウスを動かすために非常に盲目的で壊れやすいスクリプトを書いています。マウスを画面のx座標とy座標に移動します。これは試行錯誤によって純粋に見つかりました。座標が他のコンピュータでも同じかどうかはわかりません。 Ubuntu 20を使用しています。
#!/bin/bash
if [ "$1" != "light" ] && [ "$1" != "dark" ]; then
echo "Need to pass \"light\" or \"dark\" as arg"
exit 1
fi
xdotool mousemove 100 100
xdotool click 3
xdotool mousemove 140 350
xdotool click 1
xdotool mousemove 140 100
sleep 1
xdotool click 1
xdotool mousemove 420 140
xdotool click 1
xdotool mousemove 420 250
xdotool click 1
if [ "$1" = "light" ]; then
xdotool mousemove 420 230
xdotool click 1
else
xdotool mousemove 420 280
xdotool click 1
fi
xdotool mousemove 840 720
xdotool click 1
Seleniumなどのツールを使用してLinuxでこれを行う方法があります(特定のボタンの座標を見つけるために画面ピクセルを解析するためにOpenCVを使用するUbuntuの説明を見ているようです)。ボタンボタンを使用してボタンテキストを選択しましたが、今はこれが機能します。誰もがこの残念な問題に直面する場合に備えて共有してください。