(Je suis sur Arch Linux, utilisant i3 comme wm et xterm comme émulateur de terminal, bien que je ne sache pas si cela est pertinent.)
De temps en temps, un site Web me demande de faire glisser un fichier avec la souris de mon bureau vers la fenêtre du navigateur Internet. Presque toujours, il existe une alternative, mais récemment, j'ai trouvé quelque chose que je veux faire qui nécessite le glisser-déposer. Malheureusement, je n'ai pas de gestionnaire de fichiers. Je navigue dans le système de fichiers de mon ordinateur uniquement via bash.
Existe-t-il un moyen de simuler l'action du glisser-déposer? Puis-je dire à mon navigateur "Je viens de déposer ce fichier sur vous" sans le faire réellement?
Dans le pire des cas, je peux télécharger un gestionnaire de fichiers graphique exclusivement pour déposer des fichiers dans mon navigateur Web, mais j'aimerais éviter cette solution.
la source
Réponses:
J'ai eu exactement le même problème il y a quelques mois et je viens juste d'écrire un outil pour le faire à ma place. Quand j'ai vu cela et que j'ai trouvé quelqu'un d'autre qui avait le même problème, je l'ai nettoyé de sorte que quelqu'un d'autre que moi puisse le faire fonctionner et j'ai terminé ma liste de choses à faire. Le code est maintenant disponible: https://github.com/mwh/dragon
Pour l'obtenir, lancez
Cela vous donnera un
dragon
exécutable autonome - vous pouvez le déplacer où vous voulez.make install
va le mettre dans$HOME/.local/bin
.De toute façon, vous pouvez alors:
pour obtenir une simple fenêtre avec des boutons glissables pour chacun de ces fichiers:
Vous pouvez faire glisser n'importe lequel de ces éléments dans un navigateur, un gestionnaire de fichiers, un éditeur ou n'importe quel autre lieu utilisant le protocole standard de glisser-déposer.
Si vous voulez aller dans l'autre sens, et les choses glisser dans lui, l' utilisation
--target
- ils seront imprimés sur la sortie standard ou disponible pour traîner à nouveau avec si vous utilisez--keep
aussi bien.Pour vous construire aurez besoin d' un compilateur C et les en- têtes de développement GTK + 3 - si vous êtes sur Arc vous obtiendrez ceux qui viennent en installant GTK +, mais sur d' autres distributions , vous devrez peut-être
apt-get install build-essentials libgtk3-dev
ouyum install gtk3-devel
ou similaire en premier. En dehors de cela, il est entièrement autonome, sans aucune bibliothèque constitutive, et vous pouvez simplement placer l'exécutable où vous voulez.Mon cas d'utilisation est principalement constitué de quelques fichiers uniques (généralement un seul), sans se soucier de la façon dont ils apparaissent, donc si cela ne correspond pas à ce que vous voulez, alors Dragbox (que je n'ai pas vu jusqu'à ce que récemment) pourrait encore être mieux pour vous. Hier encore, j’ai ajouté le support pour l’utiliser comme cible de glissement, de sorte que cette partie n’a pas eu beaucoup d’usage de ma part. Autre que cela, cependant, je l'utilise avec succès depuis un certain temps maintenant. Il existe d'autres modes et options décrits dans le fichier lisez-moi.
la source
dragon-drag-and-drop-git
.Merci à @derobert de m'avoir recommandé l'application Dragbox.
Dragbox fait exactement ce dont j'ai besoin. Par exemple, j'ai un dossier avec un certain nombre de fichiers .png que j'aimerais pouvoir faire glisser dans Chromium. Dans ce dossier, l'exécution
dragbox *.png
crée cette fenêtre:Je peux utiliser ma souris pour faire glisser des fichiers à partir de là dans Chromium, et cela fonctionne parfaitement. Cependant, arriver à ce point était une douleur. Autant que je sache, Dragbox ne supporte officiellement que les systèmes Debian. Je ne pouvais pas le trouver n'importe où qui a fonctionné nativement pour Arch. J'ai donc écrit un guide étape par étape pour que Dragbox fonctionne avec Arch Linux. C'est presque exactement ce que j'ai fait sur ma machine, avec quelques modifications pour suivre de meilleures pratiques. S'il y a une erreur quelque part, vous pouvez consulter l'historique des modifications de cette réponse pour voir exactement ce que j'ai fait sur ma machine.
git clone https://github.com/engla/dragbox.git
dragbox
créé dans votre répertoire de travail actuel. Aller à l'intérieur.export PYTHON=/bin/python2
. Jusqu'à ce que vous fermiez la fenêtre de votre terminal actuel, la variable d'environnement$PYTHON
aura la valeur/bin/python2
. Les scripts d'installation de Dragbox vérifient cela et l'utiliseront avec Python 3../autogen.sh
,./configure
,make
etmake install
.make install
doit être fait avec les privilèges root (par exemplesudo make install
)./usr/local/bin/dragbox
dans un éditeur de texte. Modifier le tralala (la première ligne, qui indique à votre shell exécutable que pour exécuter le script avec) de#!/usr/bin/env python
à#!/usr/bin/env python2
.Le script fonctionne maintenant, mais il ne trouve pas le module contenant le programme actuel. Vous pouvez résoudre ce problème de plusieurs manières.
Inclure dans votre
~/.bashrc
ou similaire une ligne lisantexport PYTHONPATH=$PYTHONPATH:
immédiatement (comme dans, même pas un espace entre) suivi mon chemin vers un répertoire. Python va maintenant regarder dans ce répertoire lorsque vous essayez d'importer des modules. Dans le répertoire créé à l'étape 1, il y aura un répertoire appeléDropbox/
(avec un D majuscule). Copiez ce répertoire dans le répertoire que vous avez ajouté à votre$PYTHONPATH
(par exemple, si vous avez écritexport PYTHONPATH=$PYTHONPATH:~/python/modules
, copiez leDragbox/
répertoire à créer~/python/modules/Dragbox/
).Probablement pire pratique, mais vous pouvez copier ce même répertoire dans un répertoire déjà présent dans votre répertoire
$PYTHONPATH
. Par exemple, vous pouvez le copier pour le créer/usr/lib/python2.7/site-packages/
.Si vous avez suivi ces étapes, Dragbox devrait fonctionner! Vous pouvez maintenant exécuter
man dragbox
pour en apprendre plus sur son utilisation et le lancer en tapant simplementdragbox
.la source
/usr/bin/env python2
est la méthode recommandée de nos jours, depuis l' adoption du PEP 394 .Dragbox
répertoire dansPYTHONPATH
quelque part (comme dans python2site-packages
, système ou utilisateur par utilisateur). Cette ligne est exécutée uniquement quand ildragbox
est impossible d'importer ce package.pacman
de gérer les fichiers pour que vous n'ayez jamais à vous perdre dans le système si vous souhaitez le mettre à jour ou le supprimer.Vous pouvez facilement naviguer dans le système de fichiers dans votre navigateur, en utilisant la syntaxe:
Ouvrez le chemin dans un onglet vide et à partir de là, vous pourrez glisser-déposer votre fichier. Au moins avec chrome / chrome, n’avez pas d’autres navigateurs à essayer.
la source
chrome://flags
le bon endroit pour chercher quelque chose comme ça? C'est là que je regarde le moment.Juste résolu le problème moi-même.
Le moyen le plus simple consiste probablement à utiliser le dialogue "Ouvrir le fichier ...". Vous pouvez simplement faire glisser et déposer à partir de la boîte de dialogue de fichier gtk, tout comme un gestionnaire de fichiers.
Vous devrez peut-être ouvrir une fenêtre distincte pour vous assurer que la boîte de dialogue ne dérobe pas l'écran.
C'est ça. C'est facile.
la source