我可以在沒有文件管理器的情況下將文件“拖”到視窗中嗎?
(我在 Arch Linux 上,使用 i3 作為我的 wm 和 xterm 作為我的終端模擬器,雖然我不知道這是否相關。)
有時,網站要求我用滑鼠將文件從桌面拖到 Internet 瀏覽器的視窗中。幾乎總是有另一種選擇,但最近我發現我想做的事情需要拖放。不幸的是,我沒有文件管理器。我僅通過 bash 瀏覽電腦的文件系統。
有沒有辦法可以偽造拖放動作?我可以告訴我的瀏覽器“我剛剛把這個文件放到你身上”而不實際這樣做嗎?
最壞的情況是,我可以專門下載一個圖形文件管理器來將文件放到我的網路瀏覽器中,但我想避免這種解決方案。
幾個月前我遇到了完全相同的問題,最終只是寫了一個工具來為我做這件事。當我看到這個並發現其他人也有同樣的癢時,我將其清理乾淨,以便我以外的其他人可以真正讓它執行,並完成我的待辦事項清單。程式碼現已上線:https ://github.com/mwh/dragon
要得到它,執行
git clone https://github.com/mwh/dragon.git cd dragon make
這將為您提供一個獨立的
dragon
執行檔 - 您可以將其移動到任何您想要的地方。make install
會把它放進去$HOME/.local/bin
。無論哪種方式,您都可以:
dragon *.jpg
為每個文件獲取一個帶有可拖動按鈕的簡單視窗:
您可以將其中任何一個拖放到瀏覽器、文件管理器、編輯器或其他任何使用標準拖放協議的地方。
如果你想走另一條路,把東西拖進去,使用
--target
——它們將被列印到標準輸出,或者如果你也使用的話,也可以再次拖出--keep
。要進行建構,您需要一個 C 編譯器和 GTK+ 3 開發標頭檔——如果您在 Arch 上,您只需安裝 GTK+ 即可獲得這些內容,但在其他發行版上,您可能必須先安裝
apt-get install build-essentials libgtk3-dev
或yum install gtk3-devel
類似。除此之外,它是完全獨立的,沒有組成庫或任何東西,您可以將執行檔放在您想要的位置。我的案例主要是一次性拖動幾個文件(通常只有一個),而不特別關心它們是如何顯示的,所以如果這與你想要的不相符,那麼 Dragbox(我直到最近)可能仍然對你更好。就在昨天,我還添加了對將其用作拖動目標的支持,因此該部分對我來說沒有太多用處。不過,除此之外,我已經成功使用了一段時間了。自述文件中描述了其他模式和選項。
感謝 @derobert 向我推薦 Dragbox 應用程序。
Dragbox正是我所需要的。例如,我有一個包含許多 .png 文件的文件夾,我希望能夠將這些文件拖到 Chromium 中。在該文件夾中,執行
dragbox *.png
會創建此視窗:我可以用滑鼠將文件從那裡拖到 Chromium 中,而且它執行良好。然而,走到這一步是一件痛苦的事。據我所知,Dragbox 只正式支持 Debian 系統。我在任何地方都找不到它原生地為 Arch 工作的地方。因此,我編寫了一份讓 Dragbox 在 Arch Linux 中工作的分步指南。這幾乎正是我在我的機器上所做的,並進行了一些修改以遵循更好的做法。如果某處出現錯誤,您可以查看此答案的編輯歷史記錄,以確切了解我在我的機器上做了什麼。
通過執行將 Dragbox 的原始碼複製到您的電腦
git clone https://github.com/engla/dragbox.git
在您目前的工作目錄中將有一個名為
dragbox
created 的新目錄。進去。Dragbox 和 Dragbox 的安裝需要 Python 2,它是 Arch Linux 的標準配置。但是,它希望 Python 2 成為預設的 Python 安裝,這在 Arch 上並非如此。通過執行來解決這個問題
export PYTHON=/bin/python2
。在您關閉目前終端視窗之前,環境變數$PYTHON
的值將是/bin/python2
. Dragbox 的安裝腳本會檢查這一點,並將在 Python 3 上使用它。執行
./autogen.sh
、和。./configure
_ 必須以 root 權限完成(例如)。make``make install``make install``sudo make install
Dragbox 現在已安裝在您的電腦上,但將嘗試使用 Python 3 執行。使用 root 權限,
/usr/local/bin/dragbox
在文本編輯器中打開。將 shebang(第一行,告訴你的 shell 執行腳本的執行檔)#!/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
。