Bir dosyayı dosya yöneticisi olmadan pencereye “sürükleyebilir miyim”?


41

(Arch Linux'tayım, i3'ü wm'im ve xterm'i terminal emülatörüm olarak kullanıyorum, ancak bunlardan herhangi birinin alakalı olup olmadığını bilmiyorum.)

Bazen, bir web sitesi benden fareyle bir dosyayı masaüstümden internet tarayıcısının penceresine sürüklememi ister. Neredeyse her zaman bir alternatif var, ancak son zamanlarda sürükle ve bırak gerektiren bir şey buldum. Ne yazık ki, bir dosya yöneticim yok. Bilgisayarımın dosya sisteminde sadece bash ile dolaşıyorum.

Sürükle ve bırak eylemini taklit etmemin bir yolu var mı? Tarayıcımı, gerçekten yapmadan "Bu dosyayı size henüz bıraktım" diyebilir miyim?

En kötü senaryoda, dosyaları web tarayıcımda bırakmak için özel olarak bir grafik dosya yöneticisi indirebilirim, ancak bu çözümden kaçınmak istiyorum.


3
> Aslında bunu yapmadan benim tarayıcı "Ben sadece sizin üzerine bu dosyayı düştü" söyleyebilir: "Sesler Stack Exchange üzerinde javascript toplum için büyük bir soru gibi?.
jayhendren

Ayrıca bakınız www: mekanize veya türev. Görünüşe göre perl ve python var. Ne kadar çok çözüm o kadar iyi!


1
dragbox artık yok. lütfen kabul ettiğin cevabı değiştir.
yukashima huksay

1
@yukashimahuksay bitmiş, kafaları için teşekkürler
undergroundmonorail

Yanıtlar:


19

Birkaç ay önce aynı problemi yaşadım ve sonuçta benim için yapacak bir araç yazdım. Bunu gördüğümde ve aynı kaşıntıyı bulduğumda, onu temizledim, böylece benden başka birinin çalışmasını sağladı ve yapılacaklar listemi tamamladım. Kod şu an açık: https://github.com/mwh/dragon

Onu almak için koş

git clone https://github.com/mwh/dragon.git
cd dragon
make

Bu size bağımsız bir dragonçalıştırılabilir özellik verecektir - istediğiniz yere taşıyabilirsiniz. make installiçine koyacağım $HOME/.local/bin.

Her iki durumda da, o zaman:

dragon *.jpg

Bu dosyaların her biri için sürüklenebilir düğmeli basit bir pencere açmak için:

Birkaç dosya gösteren ejderha ekran görüntüsü

Bunlardan herhangi birini bir tarayıcıya, bir dosya yöneticisine, bir düzenleyiciye veya standart sürükle ve bırak protokolünü konuşan başka bir yere sürükleyebilirsiniz.

Eğer başka bir yol, ve sürükle şeyler gitmek istiyorsanız de buna, kullanım --target- onlar kullanırsanız ile tekrar dışarı sürüklemek standart çıkışa veya kullanılabilir için basılmış olacak --keepda.


İnşa etmek için bir C derleyicisine ve GTK + 3 geliştirme başlıklarına ihtiyacınız olacak - Arch kullanıyorsanız, sadece GTK + 'yı yükleyerek bunları elde edeceksiniz, ancak diğer dağıtımlarda ilk önce yapmanız gereken apt-get install build-essentials libgtk3-devya yum install gtk3-develda benzerleri olabilir . Bunun dışında, tamamen kurucu kütüphaneler ya da hiçbir şey olmadan, tamamen kendi kendine yeten ve çalıştırılabilir istediğiniz yere koyabilirsiniz.

Kullanım durumum çoğunlukla, özellikle de nasıl göründüğünü önemsemeden, yalnızca birkaç dosyanın (genellikle sadece bir tane) tek seferlik sürüklemeleridir, bu yüzden eğer istediklerinize uymuyorsa, o zamana kadar Sürükleme Kutusu'nu görmedim. Son zamanlarda) hala senin için daha iyi olabilir. Daha dün, onu sürükleyici bir hedef olarak kullanma desteğini de ekledim, böylece o kısım benim açımdan pek fazla faydalanmadı. Bunun dışında, bunu bir süredir başarıyla kullanıyorum. Benioku dosyasında açıklanan başka modlar ve seçenekler var.


Teşekkür ederim! Oluşturmak / yüklemek için saniyeler sürdü! Onu kullanacağım! --Target seçeneği bir patlama!

Güzel, küçük, bağımsız ikili. Güzel küçük Makefile ile. Mükemmel. Teşekkür ederim!
ctn

1
Sen bir kahramansın. Bu araç aynı zamanda AUR'da adı altında da mevcuttur dragon-drag-and-drop-git.
FichteFoll

Seni seviyorum! kemer topluluğu U seviyor! teşekkür ederim! Bunu uzun zamandır araştırıyordum.
yukashima huksay

28

Bana Dragbox uygulamasını önerdiği için @derobert'e teşekkürler.

Dragbox tam olarak ihtiyacım olanı yapıyor. Örneğin, Chromium'a sürüklemek istediğim .png dosyalarının bulunduğu bir klasörüm var. Bu klasörün içinde yürütme dragbox *.pngşu pencereyi oluşturur:

Listelenen birkaç dosyanın adını içeren bir GUI penceresi

Dosyaları oradan Chromium'a sürüklemek için faremi kullanabilirim ve kusursuz çalışıyor. Ancak bu noktaya gelmek bir acıydı. Bildiğim kadarıyla, Dragbox yalnızca resmi olarak Debian sistemlerini destekliyor. Arch için yerel olarak çalışan hiçbir yerde bulamadım. Böylece, Dragbox'ın Arch Linux'ta çalışmasını sağlamak için adım adım bir kılavuz yazdım. Neredeyse tam olarak makinemde yaptığım şeydi, daha iyi uygulamaları takip etmek için birkaç değişiklik yaptım. Bir yerde bir hata varsa, tam olarak ne yaptığımı makinemde görmek için bu cevaplamanın düzenleme geçmişine bakabilirsiniz .

  1. Dragbox'ın kaynağını bilgisayarınıza çalıştırarak klonlayın git clone https://github.com/engla/dragbox.git
  2. dragboxMevcut çalışma dizininizde yaratılan yeni bir dizin olacak . İçeri gir.
  3. Dragbox ve Dragbox kurulumları, Arch Linux'ta standart olarak gelen Python 2'yi gerektirir. Ancak, Python 2'nin, Arch'ta geçerli olmayan varsayılan Python kurulumu olmasını bekler. İdam ederek bu sorunu çöz export PYTHON=/bin/python2. Mevcut terminal pencerenizi kapatana kadar, ortam değişkeni $PYTHONdeğeri olacaktır /bin/python2. Dragbox'ın kurulum komut dosyaları bunu kontrol eder ve Python 3 üzerinden kullanır.
  4. Yürütme ./autogen.sh, ./configure, makeve make install. make installKök ayrıcalıklarıyla yapılmalıdır (örn. sudo make install).
  5. Dragbox şimdi bilgisayarınıza yüklenmiştir, ancak çalıştırmak için Python 3'ü kullanmaya çalışacaktır. Kök ayrıcalıklarıyla /usr/local/bin/dragboxbir metin düzenleyicide açın. Shebang'ı (ilk satırda, kabuğunuza komut dosyasını hangi çalıştırılabilir dosyayı çalıştırabileceğini söyler) olarak #!/usr/bin/env pythondeğiştirir #!/usr/bin/env python2.
  6. Komut dosyası şimdi çalışıyor, ancak asıl programı içeren modülü bulamıyor. Bunu düzeltmenin birkaç yolu var.

    1. Bir dizine giden yolumu takip edip, derhal ~/.bashrcokuyarak export PYTHONPATH=$PYTHONPATH:(aralarında olduğu gibi, hatta bir boşluk bile olmayan) bir satır ekleyin . Python şimdi modülleri almaya çalışırken bu dizine bakacak. 1. adımda oluşturulan dizinin içinde, Dropbox/(büyük D harfli) adı verilen bir dizin olacaktır . Bu dizini kendi eklediğiniz dizine kopyalayın $PYTHONPATH(örneğin export PYTHONPATH=$PYTHONPATH:~/python/modules, yazdıysanız , Dragbox/oluşturmak için dizini kopyalayın ~/python/modules/Dragbox/).

    2. Muhtemelen daha kötü bir uygulama, ancak aynı dizini zaten bulunan bir dizine kopyalayabilirsiniz $PYTHONPATH. Örneğin, oluşturmak için kopyalayabilirsiniz /usr/lib/python2.7/site-packages/.

Bu adımları takip ettiyseniz, Dragbox çalışıyor olmalı! Şimdi man dragboxnasıl kullanılacağı hakkında daha fazla bilgi edinmek için yürütebilir ve sadece yazarak başlatabilirsiniz dragbox.


2
Aslında, PEP 394'ün kabul edilmesinden /usr/bin/env python2bu yana bu günlerde kullanılması tavsiye edilen yöntemdir .
Gilles 'SO- kötülük yapmayı bırak'

1
İkinci düzeltmeye ihtiyacınız yok. DragboxDizini bir PYTHONPATHyere kopyalamanız yeterli ( python2'deki gibi site-packages, sistem veya kullanıcı başına). Bu satır yalnızca dragboxbu paketi alamadığında yürütülür .
Bakuriu

@Seth Eh, teşekkürler sanırım. Bir python betiğini tasarladığımdan biraz farklı bir sistemde çalıştırdım, üzerinde hala python vardı: P, python olduğu için memnunum, yine de, bunu yapmak için yeterince akıcı olduğum tek dil olmak.
undergroundmonorail

2
Archlinux ile bu tür bir şeyin asıl çözümü bir PKGBUILD ile yazmaktır . Yaptığınız şeyi büyük ölçüde yapıyorsunuz, ancak pacmandosyaları sizin için yönetmenize izin veren özel bir komut dosyasına koyuyorsunuz, böylece güncellemek veya kaldırmak istiyorsanız sistemde dolaşmak zorunda kalmayacaksınız.
HalosGhost

1
Dragbox ölü gibi görünüyor. Git-repo gitti.
kaleissin

6

Sözdizimini kullanarak, tarayıcınızdaki dosya sisteminde kolayca gezinebilirsiniz:

file:///home/username/blah/blah

Yolu boş bir sekmede açın ve oradan dosyanızı sürükleyip bırakabilirsiniz. En azından chrome / chromium ile, denemek için burada başka tarayıcılar yok.


Bu benim için çalışmıyor, ancak tarif ettiğiniz yöntemle ilgili bir sorun mu yoksa bir şeyler bırakmamı isteyen kullanıcı kimliğiyle ilgili bir sorun mu var ...
undergroundmonorail

Sanırım krom içinde buna izin vermeniz gereken bir komut satırı anahtarı veya bir özellik var.
slm

Misiniz chrome://flagsböyle bir şey aramak için doğru yer? Şu an baktığım yer burası.
undergroundmonorail

@ undergroundmonorail mmm haklısın, ben sadece dropzonejs.com de demo ile denedim ve işe yaramadı. Olsa da, kesinlikle bir izin sorunu olabilir
Bay Shunz


4

Sadece sorunu kendim çözdüm.

Büyük olasılıkla en kolay yol "Dosya Aç ..." iletişim kutusunu kullanmaktır. Bir dosya yöneticisi gibi, gtk dosyası iletişim kutusundan kolayca sürükleyip bırakabilirsiniz.

İletişim kutusunun ekranı çalmadığından emin olmak için ayrı bir pencere açmanız gerekebilir.

Bu kadar. Bu kolay.


Müthiş! Hiçbir şey yüklemenize gerek yok. Firefox kullanıyorum, böylece menüyü tıklayamıyorum, ancak Ctrl + o gayet iyi çalışıyor.
Milan Babuškov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.