(私はArch Linuxを使用しており、i3をwmとして、xtermをターミナルエミュレータとして使用していますが、関連するものがあるかどうかはわかりません。)
時折、ウェブサイトから、マウスでファイルをデスクトップからインターネットブラウザーのウィンドウにドラッグするように求められます。ほとんどの場合、代替手段がありますが、最近、ドラッグアンドドロップを必要とする何かを見つけました。残念ながら、私にはファイルマネージャがありません。私は自分のコンピューターのファイルシステムをbashだけでナビゲートしています。
ドラッグアンドドロップアクションを偽造できる方法はありますか?実際にそれをせずに、ブラウザに「このファイルをあなたにドロップしました」と伝えることはできますか?
最悪のシナリオは、グラフィカルファイルマネージャーをダウンロードしてファイルをWebブラウザーにドロップすることだけですが、その解決策は避けたいです。
私は数か月前にまったく同じ問題を抱えていて、最終的にそれを行うためのツールを書いただけです。私がこれを見て、他の誰かが同じかゆみを持っているのを見つけたとき、私以外の誰かが実際にそれを実行できるように私はそれを片付け、私のやることリストを終えました。コードが完成しました: https://github.com/mwh/dragon
それを取得するには、実行します
git clone https://github.com/mwh/dragon.git
cd dragon
make
これにより、スタンドアロンのdragon
実行可能ファイルが作成されます-好きな場所に移動できます。 make install
はそれを$HOME/.local/bin
に入れます。
どちらにしても、次のことができます。
dragon *.jpg
これらの各ファイルのドラッグ可能なボタンを備えたシンプルなウィンドウを取得するには:
それらのいずれかを、ブラウザー、ファイルマネージャー、エディター、または標準のドラッグアンドドロッププロトコルを使用する他の場所にドラッグできます。
反対方向に移動し、inにドラッグする場合は、--target
を使用します—標準出力に出力されるか、ドラッグして利用できます--keep
を使用している場合も同様です。
ビルドするには、CコンパイラとGTK + 3開発ヘッダーが必要です。Archを使用している場合は、GTK +をインストールするだけでそれらを取得できますが、他のディストリビューションでは、最初にapt-get install build-essentials libgtk3-dev
またはyum install gtk3-devel
または同様のものが必要になる場合があります。それ以外は、完全に自己完結型であり、構成ライブラリなどは何もありません。実行可能ファイルを好きな場所に置くだけです。
私のユースケースは、ほとんどがいくつかのファイル(通常は1つ)の1回限りのドラッグですが、それらがどのように表示されるかを特に気にする必要はありません。最近)まだあなたのために良いかもしれません。ちょうど昨日、それをドラッグターゲットとして使用するためのサポートも追加したので、その部分は私の側ではあまり役に立ちませんでした。それ以外は、しばらく使ってきました。 readmeファイルに記載されている他のモードとオプションがあります。
Dragboxアプリケーションを推奨してくれた@derobertに感謝します。
Dragbox は、まさに私が必要としていることを行います。たとえば、Chromiumにドラッグしたい多数の.pngファイルを含むフォルダがあります。そのフォルダー内でdragbox *.png
を実行すると、次のウィンドウが作成されます。
マウスを使用してファイルをそこからChromiumにドラッグでき、問題なく動作します。しかし、ここまでたどり着くのは大変でした。私の知る限り、Dragboxは公式にDebianシステムのみをサポートしています。 Archでネイティブに機能する場所はどこにもありませんでした。そこで、DragboxをArch Linuxで動作させるためのステップバイステップガイドを作成しました。これはほぼ正確に私のマシンで実行したことであり、より良いプラクティスに従うためにいくつかの変更が加えられています。どこかにエラーがある場合は、この回答の編集履歴を見て、マシンで正確に何をしたかを確認できます。
git clone https://github.com/engla/dragbox.git
を実行して、Dragboxのソースをコンピュータにクローンしますdragbox
という新しいディレクトリが作成されます。中に入る。export PYTHON=/bin/python2
を実行してこれを回避してください。現在のターミナルウィンドウを閉じるまで、環境変数$PYTHON
の値は/bin/python2
になります。 Dragboxのインストールスクリプトはそれをチェックし、Python 3。./autogen.sh
、./configure
、make
およびmake install
を実行します。 make install
はroot権限で実行する必要があります(例:Sudo make install
)。/usr/local/bin/dragbox
を開きます。Shebang(最初のこの行は、スクリプトを実行する実行可能ファイルをシェルに指示します)#!/usr/bin/env python
から#!/usr/bin/env python2
。スクリプトは動作していますが、実際のプログラムを含むモジュールを見つけることができません。これを修正する方法はいくつかあります。
~/.bashrc
または同様の行に、すぐにexport PYTHONPATH=$PYTHONPATH:
を読み取る行を含めます(例:間にスペースはありません)。 Pythonはモジュールをインポートしようとしたときにそのディレクトリを参照します。ステップ1で作成したディレクトリ内に、Dropbox/
という名前のディレクトリがあります(大文字のD)。コピーそのディレクトリを$PYTHONPATH
に追加したディレクトリに追加します(たとえば、export PYTHONPATH=$PYTHONPATH:~/python/modules
を作成した場合は、Dragbox/
ディレクトリをコピーして~/python/modules/Dragbox/
を作成します)。
おそらくもっと悪い習慣ですが、同じディレクトリをすでに$PYTHONPATH
にあるディレクトリにコピーできます。たとえば、コピーして/usr/lib/python2.7/site-packages/
を作成できます。
これらの手順を実行した場合は、Dragboxが機能しているはずです。これでman dragbox
を実行して、その使用方法の詳細を確認し、dragbox
と入力するだけで起動できます。
次の構文を使用して、ブラウザ内でファイルシステムを簡単にナビゲートできます。
file:///home/username/blah/blah
空のタブでパスを開き、そこからファイルをドラッグアンドドロップできます。少なくともchrome/chromiumでは、ここで他のブラウザを試してはいけません。
自分で問題を解決しました。
おそらく最も簡単な方法は、[ファイルを開く...]ダイアログを使用することです。ファイルマネージャのように、gtkファイルダイアログからドラッグアンドドロップするだけです。
ダイアログが画面を盗まないようにするために、別のウィンドウを開く必要がある場合があります。
それでおしまい。簡単です。