(Saya menggunakan Arch Linux, menggunakan i3 sebagai wm dan xterm sebagai emulator terminal, meskipun saya tidak tahu apakah ada yang relevan.)
Kadang-kadang, sebuah situs web meminta saya untuk menyeret file dengan mouse saya dari desktop saya ke jendela browser internet. Hampir selalu, ada alternatif, tetapi baru-baru ini saya menemukan sesuatu yang ingin saya lakukan yang memerlukan drag and drop. Sayangnya, saya tidak memiliki manajer file. Saya menavigasi sistem file komputer saya hanya melalui bash.
Apakah ada cara saya bisa memalsukan aksi seret dan lepas? Dapatkah saya memberi tahu browser saya "Saya baru saja menjatuhkan file ini ke Anda" tanpa benar-benar melakukannya?
Skenario terburuk, saya dapat mengunduh file manager grafis secara eksklusif untuk meletakkan file ke browser web saya, tetapi saya ingin menghindari solusi itu.
sumber
Jawaban:
Saya memiliki masalah yang sama persis beberapa bulan yang lalu dan akhirnya hanya menulis alat untuk melakukannya untuk saya. Ketika saya melihat ini dan menemukan orang lain memiliki gatal yang sama saya membersihkannya sehingga orang lain selain saya benar-benar bisa menjalankannya, dan menyelesaikan daftar pekerjaan saya. Kode sudah habis sekarang: https://github.com/mwh/dragon
Untuk mendapatkannya, jalankan
Itu akan memberi Anda
dragon
eksekusi mandiri - Anda dapat memindahkannya ke mana pun Anda inginkan.make install
akan memasukkannya ke dalam$HOME/.local/bin
.Bagaimanapun, Anda dapat:
untuk mendapatkan jendela sederhana dengan tombol yang dapat diseret untuk masing-masing file tersebut:
Anda dapat menyeret semua itu ke dalam browser, pengelola file, editor, atau di mana pun yang menggunakan protokol seret-dan-jatuhkan standar.
Jika Anda ingin pergi ke arah lain, dan tarik hal di untuk itu, penggunaan
--target
- mereka akan dicetak ke output standar, atau tersedia untuk menyeret keluar lagi dengan jika Anda menggunakan--keep
juga.Untuk membangun Anda akan memerlukan C compiler dan header pengembangan GTK + 3 - jika Anda berada di Arch Anda akan mendapatkan orang-orang hanya dengan menginstal GTK +, tapi pada distro lain Anda mungkin harus
apt-get install build-essentials libgtk3-dev
atauyum install gtk3-devel
atau serupa pertama. Selain itu sepenuhnya mandiri, tanpa perpustakaan konstituen atau apa pun, dan Anda bisa meletakkan executable di mana Anda inginkan.Kasus penggunaan saya sebagian besar hanya satu kali seret dari beberapa file (biasanya hanya satu), tanpa terlalu peduli bagaimana mereka muncul, jadi jika itu tidak sesuai dengan apa yang Anda inginkan maka Dragbox (yang saya tidak melihat sampai baru-baru ini) mungkin masih lebih baik untuk Anda. Baru kemarin saya menambahkan dukungan untuk menggunakannya sebagai target drag juga, sehingga bagian itu tidak banyak digunakan pada akhir saya. Selain itu, saya telah menggunakan ini dengan sukses untuk sementara waktu sekarang. Ada mode dan opsi lain yang dijelaskan dalam file readme.
sumber
dragon-drag-and-drop-git
.Terima kasih kepada @derobert karena merekomendasikan aplikasi Dragbox kepada saya.
Dragbox melakukan apa yang saya butuhkan. Misalnya, saya memiliki folder dengan sejumlah file .png yang ingin saya seret ke Chromium. Di dalam folder itu, mengeksekusi
dragbox *.png
membuat jendela ini:Saya dapat menggunakan mouse untuk menyeret file dari sana ke Chromium, dan itu berfungsi dengan sempurna. Namun, mencapai titik ini adalah rasa sakit. Sejauh yang saya ketahui, Dragbox hanya secara resmi mendukung sistem Debian. Saya tidak dapat menemukannya di mana pun yang asli bekerja untuk Arch. Jadi, saya telah menulis panduan langkah demi langkah untuk membuat Dragbox berfungsi di Arch Linux. Ini hampir persis seperti yang saya lakukan pada mesin saya, dengan beberapa modifikasi untuk mengikuti praktik yang lebih baik. Jika ada suatu tempat kesalahan, Anda dapat melihat dalam sejarah mengedit jawaban ini untuk melihat persis apa yang saya lakukan di mesin saya.
git clone https://github.com/engla/dragbox.git
dragbox
dibuat di dalam direktori kerja Anda saat ini. Masuk ke dalam.export PYTHON=/bin/python2
. Sampai Anda menutup jendela terminal Anda saat ini, variabel lingkungan$PYTHON
akan memiliki nilai/bin/python2
. Skrip instalasi Dragbox memeriksa hal itu, dan akan menggunakannya di atas Python 3../autogen.sh
,./configure
,make
danmake install
.make install
harus dilakukan dengan root privilege (missudo make install
)./usr/local/bin/dragbox
di editor teks. Memodifikasi peristiwa (baris pertama, yang memberitahu shell Anda apa yang dieksekusi untuk menjalankan script dengan) dari#!/usr/bin/env python
ke#!/usr/bin/env python2
.Skrip sekarang berfungsi, tetapi tidak dapat menemukan modul yang berisi program yang sebenarnya. Ada beberapa cara untuk memperbaikinya.
Sertakan dalam
~/.bashrc
baris Anda atau yang sejenis denganexport PYTHONPATH=$PYTHONPATH:
segera membaca (seperti dalam, bahkan tidak ada spasi di antara) mengikuti jalur saya ke direktori. Python sekarang akan mencari di direktori itu ketika mencoba mengimpor modul. Di dalam direktori yang dibuat kembali pada langkah 1, akan ada direktori yang disebutDropbox/
(dengan huruf kapital D). Salin direktori itu ke direktori yang Anda tambahkan ke$PYTHONPATH
(misalnya jika Anda menulisexport PYTHONPATH=$PYTHONPATH:~/python/modules
, salinDragbox/
direktori yang akan dibuat~/python/modules/Dragbox/
).Mungkin praktik yang lebih buruk, tetapi Anda dapat menyalin direktori yang sama ke direktori yang sudah ada di Anda
$PYTHONPATH
. Misalnya, Anda dapat menyalinnya untuk membuat/usr/lib/python2.7/site-packages/
.Jika Anda telah mengikuti langkah-langkah ini, Dragbox seharusnya berfungsi! Anda sekarang dapat menjalankan
man dragbox
untuk mempelajari lebih lanjut tentang cara menggunakannya, dan meluncurkannya hanya dengan mengetikdragbox
.sumber
/usr/bin/env python2
adalah cara yang disarankan hari ini, karena PEP 394 diadopsi.Dragbox
direktori kePYTHONPATH
suatu tempat (seperti di python2site-packages
, baik sistem atau per-pengguna). Baris itu dijalankan hanya ketikadragbox
tidak dapat mengimpor paket itu.pacman
untuk mengelola file untuk Anda sehingga Anda tidak perlu pergi mucking di dalam sistem jika Anda ingin memperbarui atau menghapusnya.Anda dapat dengan mudah menavigasi sistem file dalam browser Anda, menggunakan sintaks:
Buka jalur di tab kosong dan dari sana Anda dapat menarik dan melepas file Anda. Paling tidak dengan chrome / chromium, tidak ada browser lain di sini untuk mencoba.
sumber
chrome://flags
tempat yang tepat untuk mencari sesuatu seperti ini? Di situlah saya melihat saat ini.Baru saja menyelesaikan masalah sendiri.
Sangat mungkin cara termudah adalah menggunakan dialog "Buka file ...". Anda cukup menarik dan melepas dari dialog file gtk, seperti halnya manajer file.
Anda mungkin perlu membuka jendela terpisah untuk memastikan dialog tidak mencuri layar.
Itu dia. Itu mudah.
sumber