(Jestem na Arch Linux, używam i3 jako mojego wm i xterm jako mojego emulatora terminala, chociaż nie wiem, czy którykolwiek z nich jest istotny.)
Czasami strona internetowa prosi mnie o przeciągnięcie pliku myszką z pulpitu do okna przeglądarki internetowej. Prawie zawsze istnieje alternatywa, ale ostatnio znalazłem coś, co chcę zrobić, co wymaga przeciągania i upuszczania. Niestety nie mam menedżera plików. System plików komputera poruszam się wyłącznie za pomocą bash.
Czy istnieje sposób na udawanie operacji przeciągania i upuszczania? Czy mogę powiedzieć mojej przeglądarce „Właśnie upuściłem ten plik na ciebie” bez robienia tego?
W najgorszym przypadku mogę pobrać graficzny menedżer plików wyłącznie w celu upuszczenia plików do przeglądarki internetowej, ale chciałbym uniknąć tego rozwiązania.
źródło
Odpowiedzi:
Miałem dokładnie ten sam problem kilka miesięcy temu i ostatecznie właśnie napisałem narzędzie, aby to dla mnie zrobić. Kiedy to zobaczyłem i odkryłem, że ktoś ma ten sam świąd, posprzątałem go, aby ktoś inny niż ja mógł go uruchomić i skończył moją listę rzeczy do zrobienia. Kod jest już dostępny: https://github.com/mwh/dragon
Aby go zdobyć, biegnij
To da ci autonomiczny
dragon
plik wykonywalny - możesz go przenieść gdziekolwiek chcesz.make install
włożę to$HOME/.local/bin
.Tak czy inaczej, możesz następnie:
aby uzyskać proste okno z przeciąganymi przyciskami dla każdego z tych plików:
Możesz przeciągnąć dowolną z nich do przeglądarki, menedżera plików, edytora lub dowolnego innego miejsca, które obsługuje standardowy protokół przeciągania i upuszczania.
Jeśli chcesz iść w drugą stronę, a rzeczy przeciągnij w niej, zastosowanie
--target
- zostaną one wydrukowane na standardowym wyjściu lub dostępne do przeciągania się ponownie, jeśli używasz--keep
, jak również.Aby zbudować trzeba kompilator C i nagłówki rozwojowe GTK + 3 - jeśli jesteś na Arch dostaniesz tych właśnie poprzez zainstalowanie GTK +, ale na innych dystrybucjach może być
apt-get install build-essentials libgtk3-dev
alboyum install gtk3-devel
lub podobny pierwszy. Poza tym jest całkowicie samowystarczalny, bez żadnych składowych bibliotek ani niczego, i możesz po prostu umieścić plik wykonywalny w dowolnym miejscu.Mój przypadek użycia to przeważnie jednorazowe przeciąganie tylko kilku plików (zwykle tylko jednego), bez szczególnego dbania o to, jak się pokazują, więc jeśli to nie zgadza się z tym, czego chcesz, to Dragbox (którego nie widziałem aż do ostatnio) może być dla Ciebie lepszy. Jeszcze wczoraj dodałem obsługę używania go jako celu przeciągania, więc ta część nie miała wiele pożytku z mojej strony. Poza tym od dłuższego czasu korzystam z tego z powodzeniem. Istnieją inne tryby i opcje opisane w pliku readme.
źródło
dragon-drag-and-drop-git
.Dzięki @derobert za polecenie mi aplikacji Dragbox.
Dragbox robi dokładnie to, czego potrzebuję. Na przykład mam folder z wieloma plikami .png, które chciałbym móc przeciągnąć do Chromium. Wykonanie w tym folderze
dragbox *.png
powoduje utworzenie tego okna:Za pomocą myszy mogę przeciągać stamtąd pliki do Chromium i działa bezbłędnie. Dotarcie do tego punktu było jednak uciążliwe. O ile mi wiadomo, Dragbox oficjalnie obsługuje tylko systemy Debian. Nie mogłem go znaleźć nigdzie, który natywnie pracował dla Arch. Napisałem więc przewodnik krok po kroku, jak uruchomić Dragbox w Arch Linux. To prawie dokładnie to, co zrobiłem na moim komputerze, z kilkoma modyfikacjami, aby zastosować się do lepszych praktyk. Jeśli gdzieś jest błąd, możesz zajrzeć do historii edycji tej odpowiedzi, aby zobaczyć dokładnie, co zrobiłem na moim komputerze.
git clone https://github.com/engla/dragbox.git
dragbox
bieżącym katalogu roboczym zostanie utworzony nowy katalog o nazwie . Wejdź do środka.export PYTHON=/bin/python2
. Dopóki nie zamkniesz bieżącego okna terminala, zmienna środowiskowa$PYTHON
będzie miała wartość/bin/python2
. Skrypty instalacyjne Dragbox sprawdzają to i używają jej w Pythonie 3../autogen.sh
,./configure
,make
imake install
.make install
należy to zrobić z uprawnieniami administratora (npsudo make install
.)./usr/local/bin/dragbox
w edytorze tekstu. Zmodyfikuj shebang (pierwszy wiersz, który mówi twojej powłoce, z jakiego pliku wykonywalnego uruchomić skrypt) od#!/usr/bin/env python
do#!/usr/bin/env python2
.Skrypt działa teraz, ale nie może znaleźć modułu zawierającego rzeczywisty program. Istnieje kilka sposobów rozwiązania tego problemu.
Umieść w swoim
~/.bashrc
lub podobnym czytniku liniiexport PYTHONPATH=$PYTHONPATH:
natychmiast (jak w, nawet spacji między) podążał moją ścieżką do katalogu. Python będzie teraz szukał w tym katalogu podczas próby importowania modułów. W katalogu utworzonym ponownie w kroku 1 będzie katalog o nazwieDropbox/
(z wielką literą D). Skopiuj ten katalog do katalogu, który dodałeś do swojego$PYTHONPATH
(np. Jeśli napisałeśexport PYTHONPATH=$PYTHONPATH:~/python/modules
, skopiujDragbox/
katalog, aby utworzyć~/python/modules/Dragbox/
).Prawdopodobnie gorsza praktyka, ale możesz skopiować ten sam katalog do katalogu już w swoim
$PYTHONPATH
. Na przykład możesz go skopiować, aby utworzyć/usr/lib/python2.7/site-packages/
.Jeśli wykonałeś te czynności, Dragbox powinien działać! Możesz teraz wykonać,
man dragbox
aby dowiedzieć się więcej o tym, jak go używać, i uruchomić go, po prostu piszącdragbox
.źródło
/usr/bin/env python2
jest obecnie zalecanym sposobem, ponieważ PEP 394 został adoptowany.Dragbox
katalogPYTHONPATH
gdzieś (jak w python2site-packages
, systemowy lub dla użytkownika). Ten wiersz jest wykonywany tylko wtedy, gdydragbox
nie można zaimportować tego pakietu.pacman
zarządzać plikami za ciebie, więc nie musisz nigdy grzebać w systemie, jeśli chcesz go zaktualizować lub usunąć.Możesz łatwo poruszać się po systemie plików w przeglądarce, używając składni:
Otwórz ścieżkę w pustej karcie, a stamtąd możesz przeciągnąć i upuścić plik. Przynajmniej z chromem / chromem, nie ma tu innych przeglądarek do wypróbowania.
źródło
chrome://flags
byłoby właściwe miejsce, aby poszukać czegoś takiego? Właśnie na to patrzę w tej chwili.Właśnie rozwiązałem ten problem.
Prawdopodobnie najłatwiejszym sposobem jest skorzystanie z okna dialogowego „Otwórz plik ...”. Możesz po prostu przeciągnąć i upuścić z okna dialogowego pliku gtk, podobnie jak menedżer plików.
Konieczne może być otwarcie osobnego okna, aby upewnić się, że okno dialogowe nie kradnie ekranu.
Otóż to. Tak proste.
źródło