概要:Run in Terminal
をデフォルトのNautilusダブルクリックアクションとして設定する方法
ダブルクリックして対話型スクリプトを実行したい。それと対話するには、実行されているのを見る必要があります。
gsettings
をorg.gnome.nautilus.preferences executable-text-activation
にask
に設定すると、選択肢が与えられます。 Run in Terminal
は私が望むことをします。 Run
は、スクリプトが何かを尋ねる必要があるとき、ハングするだけなので、そうではありません。ただし、毎回Run in Terminal
をクリックする必要はありません。デフォルトでそれをしたいです。なんとか前にやったことがあります。
gsettings
をorg.gnome.nautilus.preferences executable-text-activation
にlaunch
に設定しようとしました;ただし、それは単にデフォルトとしてRun
を実行します。デフォルトでRun in Terminal
にする方法がわかりません。
また、gnome-terminal
コマンドを挿入しようとしました。これにより、ターミナルウィンドウが正常にポップアップされます(単にRun
であっても)。ただし、その後、何らかの方法でコマンドをそのターミナルウィンドウに送信する必要がありますall。
あるいは、スクリプトのインタラクティブな部分をその端末に(ちょうど)送信する方法を知っています。ただし、その場合、スクリプトの対話部分が終了するまでスクリプトを停止してから、実行を再開する必要があります。通常、これはwait
コマンドを使用して実現できます。そのまま、gnome-terminal
コマンドは、代わりにgnome-terminal&
として機能するようです。これは、bashスクリプトが起動されるとすぐにbashスクリプトに制御を放棄するためです。
スレッドのほぼ10の重複を読みました Nautilusで実行可能スクリプトを実行するにはどうすればよいですか? (他のサイトを含む)、まだ答えが見つかりません。その他の回避策は歓迎されます。
文字通りあなたが求めたものではなく、私はまだエレガントなオプションだと信じています:
小さなスクリプトを作成します。
#!/bin/bash
gnome-terminal -e $1
run_interminal.sh
に~/.local/share/nautilus/scripts
として保存します。ディレクトリが存在しない場合は作成します。
それでおしまい。スクリプトを選択して選択します Scripts -> runinterminal.sh:
(実行可能)スクリプトをランチャーにドラッグして、ターミナルで実行します。
以下のコードを空のファイルにコピーして、run_script.desktop
としてデスクトップに保存します
[Desktop Entry]
Name=Run Script
Type=Application
Exec=gnome-terminal -e %u
Terminal=true
実行可能にする
それでおしまい。実行可能なスクリプトをアイコンにドラッグすると、(gnome-)ターミナルで実行されます。
前述のように、メニューに表示されるスクリプトrun_interminal.sh
は実行可能である必要があります。
そのまま、実行するスクリプトも実行可能である必要があります。 run_interminal.sh
は、ターゲットスクリプトを自動的に実行可能にするか、インタープリターを呼び出すように簡単に設定できます。それが必要な場合は、言及してください。
このソリューションは次のすべてに対して機能するはずです。
「構成可能な個人アクション」をサポートするファイルマネージャー。
ダブルクリックでファイルを開くように構成されたファイルマネージャー。
「-e」または「--execute」を実行するオプションがあるx端末エミュレータ。
実行可能にする権限を持つスクリプト。
編集
Thunarファイルマネージャーでテストした後、nautilusをインストールし、両方のスクリプトをダブルクリックします。
1-スクリプトを右クリック
2-「開く」を選択
3- [他のアプリケーションで開く]をクリックします
4-「コマンドで開く」をクリックします
5- [この種類のファイルにこのアクションを使用する]をオンにします
6-テキスト領域に次のコマンドを入力します:x-terminal-emulator -e "/bin/bash %f"
7- [開く]をクリックすると、ターミナルウィンドウでスクリプトが実行されます。
8-ファイルマネージャーを再起動します
スクリプトをダブルクリックするたびに、スクリプトが実行されます。
質問の簡単な解決策を見つけました。 --disable-factory
をgnome-terminalオプションに追加すると、残りのスクリプトを続行する前に、ターミナルが終了するのを待ちます。