(Ich bin auf Arch Linux und verwende i3 als mein wm und xterm als meinen Terminalemulator, obwohl ich nicht weiß, ob irgendetwas davon relevant ist.)
Gelegentlich fordert mich eine Website auf, eine Datei mit der Maus von meinem Desktop in das Fenster des Internetbrowsers zu ziehen. Fast immer gibt es eine Alternative, aber kürzlich habe ich etwas gefunden, das ich tun möchte und das Drag & Drop erfordert. Leider habe ich keinen Dateimanager. Ich navigiere im Dateisystem meines Computers ausschließlich durch Bash.
Gibt es eine Möglichkeit, die Drag & Drop-Aktion zu fälschen? Kann ich meinem Browser mitteilen, dass ich diese Datei gerade auf Sie abgelegt habe, ohne dies tatsächlich zu tun?
Im schlimmsten Fall kann ich einen grafischen Dateimanager exklusiv herunterladen, um Dateien in meinen Webbrowser zu laden, aber ich möchte diese Lösung vermeiden.
quelle
Antworten:
Vor ein paar Monaten hatte ich genau das gleiche Problem und schrieb letztendlich nur ein Tool, um es für mich zu tun. Als ich dies sah und feststellte, dass eine andere Person das gleiche Problem hatte, räumte ich es auf, damit eine andere Person als ich es tatsächlich zum Laufen bringen konnte, und schloss meine To-Do-Liste ab. Der Code ist jetzt verfügbar: https://github.com/mwh/dragon
Um es zu bekommen, renne
Dadurch erhalten Sie eine eigenständige
dragon
ausführbare Datei, die Sie beliebig verschieben können.make install
wird es in setzen$HOME/.local/bin
.In jedem Fall können Sie dann:
So erhalten Sie ein einfaches Fenster mit ziehbaren Schaltflächen für jede dieser Dateien:
Sie können diese in einen Browser, einen Dateimanager, einen Editor oder an eine andere Stelle ziehen, die das Standard-Drag-and-Drop-Protokoll unterstützt.
Wenn Sie in die andere Richtung gehen wollen, und ziehen Sie die Dinge in ihm, Gebrauch
--target
- sie werden auf die Standardausgabe gedruckt werden, oder zur Verfügung ziehen Sie wieder mit , wenn Sie verwenden--keep
auch.So erstellen Sie einen C - Compiler benötigen und die GTK + 3 Entwicklungs - Header - wenn Sie auf Arch sind , werden Sie die , die gerade durch die Installation von GTK +, aber auf anderen Distributionen können Sie haben
apt-get install build-essentials libgtk3-dev
oderyum install gtk3-devel
oder ähnliches erster Stelle . Davon abgesehen ist es vollständig in sich geschlossen, es gibt keine konstituierenden Bibliotheken oder ähnliches, und Sie können die ausführbare Datei einfach dort ablegen, wo Sie möchten.Mein Anwendungsfall sind meistens einmalige Verschiebungen von nur wenigen Dateien (normalerweise nur einer), ohne besonders darauf zu achten, wie sie angezeigt werden. Wenn dies nicht mit den gewünschten Ergebnissen übereinstimmt, wird Dragbox (die ich erst gesehen habe) verwendet vor kurzem) ist vielleicht noch besser für dich. Erst gestern habe ich die Unterstützung für die Verwendung als Ziehziel hinzugefügt, so dass dieses Teil für mich nicht viel brauchte. Davon abgesehen benutze ich das jetzt schon eine Weile erfolgreich. In der Readme-Datei sind weitere Modi und Optionen beschrieben.
quelle
dragon-drag-and-drop-git
.Vielen Dank an @derobert, der mir die Dragbox-Anwendung empfohlen hat.
Dragbox macht genau das, was ich brauche. Ich habe beispielsweise einen Ordner mit einer Reihe von PNG-Dateien, die ich in Chromium ziehen möchte. In diesem Ordner
dragbox *.png
erstellt das Ausführen dieses Fensters:Ich kann meine Maus benutzen, um Dateien von dort in Chromium zu ziehen, und es funktioniert einwandfrei. Es war jedoch ein Schmerz, an diesen Punkt zu gelangen. Soweit mir bekannt ist, unterstützt Dragbox Debian-Systeme nur offiziell. Ich konnte nirgendwo etwas finden, das ursprünglich für Arch gearbeitet hatte. Daher habe ich eine Schritt-für-Schritt-Anleitung geschrieben, um Dragbox in Arch Linux zum Laufen zu bringen. Dies ist fast genau das, was ich auf meiner Maschine gemacht habe, mit ein paar Modifikationen, um besseren Praktiken zu folgen. Wenn irgendwo ein Fehler auftritt, können Sie im Bearbeitungsverlauf dieser Antwort genau nachlesen , was ich auf meinem Computer getan habe.
git clone https://github.com/engla/dragbox.git
dragbox
Ihrem aktuellen Arbeitsverzeichnis wird ein neues Verzeichnis mit dem Namen erstellt. Gehen hinein.export PYTHON=/bin/python2
. Bis Sie Ihr aktuelles Terminalfenster schließen, hat die Umgebungsvariable$PYTHON
den Wert/bin/python2
. Die Installationsskripte von Dragbox prüfen dies und verwenden es über Python 3../autogen.sh
,./configure
,make
undmake install
.make install
muss mit root-Rechten erfolgen (zBsudo make install
)./usr/local/bin/dragbox
in einem Texteditor. Ändern Sie den shebang (die erste Zeile, die Ihrer Shell mitteilt, mit welcher ausführbaren Datei das Skript ausgeführt werden soll) von#!/usr/bin/env python
nach#!/usr/bin/env python2
.Das Skript funktioniert jetzt, kann jedoch das Modul mit dem eigentlichen Programm nicht finden. Es gibt verschiedene Möglichkeiten, dies zu beheben.
Fügen Sie in Ihre
~/.bashrc
oder eine ähnliche Zeile ein, in derexport PYTHONPATH=$PYTHONPATH:
unmittelbar (wie in, nicht einmal ein Leerzeichen dazwischen) der Pfad zu einem Verzeichnis angegeben ist. Python sucht jetzt in diesem Verzeichnis, wenn Sie versuchen, Module zu importieren. In dem in Schritt 1 erstellten Verzeichnis befindet sich ein Verzeichnis mit dem NamenDropbox/
(mit einem Großbuchstaben D). Kopieren Sie dieses Verzeichnis in das Verzeichnis, das Sie zu Ihrem hinzugefügt haben$PYTHONPATH
(z. B.export PYTHONPATH=$PYTHONPATH:~/python/modules
kopieren Sie dasDragbox/
zu erstellende Verzeichnis, wenn Sie geschrieben haben~/python/modules/Dragbox/
).Wahrscheinlich schlechtere Praxis, aber Sie können dasselbe Verzeichnis in ein Verzeichnis kopieren, das sich bereits in Ihrem befindet
$PYTHONPATH
. Sie können es beispielsweise kopieren, um es zu erstellen/usr/lib/python2.7/site-packages/
.Wenn Sie diese Schritte befolgt haben, sollte Dragbox funktionieren! Sie können jetzt ausführen
man dragbox
, um mehr über die Verwendung zu erfahren, und es durch einfaches Eingeben startendragbox
.quelle
/usr/bin/env python2
wird heutzutage die Verwendung von empfohlen, da PEP 394 übernommen wurde.Dragbox
Verzeichnis inPYTHONPATH
irgendwo (wie in python2site-packages
, entweder auf dem System oder pro Benutzer). Diese Zeile wird nur ausgeführt, wenndragbox
das Paket nicht importiert werden kann.pacman
dem Sie die Dateien für Sie verwalten können, damit Sie sich nie im System herumärgern müssen, wenn Sie es aktualisieren oder entfernen möchten.Mit der folgenden Syntax können Sie problemlos im Dateisystem Ihres Browsers navigieren:
Öffnen Sie den Pfad in einer leeren Registerkarte, und ziehen Sie die Datei von dort aus per Drag & Drop. Zumindest bei Chrom / Chrom haben Sie hier keine anderen Browser, die Sie ausprobieren könnten.
quelle
chrome://flags
das der richtige Ort, um so etwas zu suchen? Dort schaue ich gerade hin.Habe das Problem einfach selbst gelöst.
Möglicherweise ist es am einfachsten, den Dialog "Datei öffnen ..." zu verwenden. Sie können das Dialogfeld "gtk-Datei" wie einen Dateimanager einfach per Drag & Drop öffnen.
Möglicherweise müssen Sie ein separates Fenster öffnen, um sicherzustellen, dass das Dialogfeld den Bildschirm nicht stiehlt.
Das ist es. So einfach.
quelle