Puis-je "glisser" un file dans une window sans gestionnaire de files?

(Je suis sur Arch Linux, en utilisant i3 comme wm et xterm comme émulateur de terminal, bien que je ne sache pas si cela est pertinent).

Parfois, un site Web me request de faire glisser un file avec ma souris depuis mon bureau dans la window du browser 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 files. Je navigue le système de files de mon ordinateur uniquement par bash.

Y a-t-il un moyen de simuler l'action glisser-déposer? Puis-je dire à mon browser "Je viens de déposer ce file sur vous" sans le faire réellement?

Dans le pire des cas, je peux download un gestionnaire de files graphique exclusivement pour déposer des files dans mon browser Web, mais j'aimerais éviter cette solution.

    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 files .png que je voudrais pouvoir glisser dans Chromium. Dans ce dossier, l'exécution de dragbox *.png crée cette window:

    Une fenêtre d'interface graphique avec les noms de plusieurs fichiers répertoriés

    Je peux utiliser ma souris pour faire glisser des files à partir de Chrome, et cela fonctionne parfaitement. Cependant, arriver à ce point était une douleur. Pour autant que je sache, Dragbox ne supporte officiellement que les systèmes Debian. Je ne pouvais pas le find nulle part qui travaillait nativement pour Arch. Donc, j'ai écrit un guide étape par étape pour faire fonctionner Dragbox dans 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 regarder dans l'historique d'édition de cette réponse pour voir exactement ce que j'ai fait sur ma machine.

    1. Clone la source de Dragbox sur votre ordinateur en exécutant le git clone https://github.com/engla/dragbox.git
    2. Il y aura un nouveau directory appelé dragbox créé dans votre directory de travail actuel. Aller à l'intérieur.
    3. L'installation de Dragbox et Dragbox nécessite Python 2, qui est fourni en standard sur Arch Linux. Cependant, il s'attend à ce que Python 2 soit l'installation par défaut de Python, ce qui n'est pas vrai sur Arch. Pour contourner ce export PYTHON=/bin/python2 exécutez l' export PYTHON=/bin/python2 . Jusqu'à ce que vous fermiez votre window de terminal actuelle, la variable d'environnement $PYTHON aura la valeur /bin/python2 . Les scripts d'installation de Dragbox vérifient cela et l'utiliseront sur Python 3.
    4. Exécutez ./autogen.sh , ./configure , make et make install . make install doit être fait avec les privilèges root (par exemple sudo make install ).
    5. Dragbox est maintenant installé sur votre ordinateur, mais va essayer d'utiliser Python 3 pour fonctionner. Avec les privilèges root, ouvrez /usr/local/bin/dragbox dans un éditeur de text. Modifiez le shebang (la première ligne qui indique à votre shell quel exécutable pour exécuter le script) de #!/usr/bin/env python à #!/usr/bin/env python2 .
    6. Le script fonctionne maintenant, mais il ne trouve pas le module contenant le programme actuel. Il y a plusieurs façons de résoudre ce problème.

      1. Inclure dans votre ~/.bashrc ou similaire une ligne de lecture d' export PYTHONPATH=$PYTHONPATH: immédiatement (comme dans, même pas un espace entre) suivi mon path vers un directory. Python va maintenant regarder dans ce directory lorsque vous essayez d'importer des modules. Dans le directory créé à l'étape 1, il y aura un directory appelé Dropbox/ (avec un D majuscule). Copiez ce directory dans le directory que vous avez ajouté à votre $PYTHONPATH (par exemple, si vous avez écrit export PYTHONPATH=$PYTHONPATH:~/python/modules , copyz le Dragbox/ pour créer ~/python/modules/Dragbox/ ).

      2. Pratique probablement pire, mais vous pouvez copyr ce même directory dans un directory déjà dans votre $PYTHONPATH . Par exemple, vous pouvez le copyr pour 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 savoir plus sur l'utilisation et le lancer en tapant simplement dragbox .

    J'ai eu exactement le même problème il y a quelques mois et finalement j'ai juste écrit un outil pour le faire pour moi. Quand j'ai vu cela et que j'ai trouvé quelqu'un d'autre avait la même démangeaison, j'ai nettoyé le dossier pour que quelqu'un d'autre que moi puisse le faire fonctionner et terminer ma list de choses à faire. Le code est maintenant disponible: https://github.com/mwh/dragon

    Pour l'get, courir

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

    Cela vous donnera un exécutable de dragon autonome – vous pouvez le déplacer où vous voulez. make install le mettra dans $HOME/.local/bin .

    De toute façon, vous pouvez alors:

     dragon *.jpg 

    pour get une window simple avec des buttons draggable pour chacun de ces files:

    Capture d'écran du dragon montrant quelques fichiers

    Vous pouvez faire glisser n'importe lequel d'entre eux dans un browser, un gestionnaire de files, un éditeur ou n'importe où ailleurs qui parle le protocole standard de glisser-déplacer.

    Si vous voulez aller dans l'autre sens et y faire glisser des choses, utilisez --target – elles seront imprimées sur la sortie standard, ou disponibles pour les faire glisser si vous utilisez --keep aussi.


    Pour build, vous aurez besoin d'un compilateur C et des en-têtes de développement GTK + 3 – si vous êtes sur Arch, vous obtiendrez ceux-ci simplement en installant GTK +, mais sur d'autres dissortingbutions, vous devrez peut apt-get install build-essentials libgtk3-dev ou yum install gtk3-devel ou similaire en premier. À part cela, il est entièrement autonome, sans aucune bibliothèque constituante ou quoi que ce soit, et vous pouvez simplement mettre l'exécutable où vous voulez.

    Mon cas d'utilisation est le plus souvent des files uniques (généralement un seul), sans trop se soucier de leur apparence, donc si cela ne correspond pas à ce que vous voulez, alors Dragbox (que je n'ai pas vu jusqu'à récemment) pourrait encore être mieux pour vous. Juste hier, j'ai ajouté le support pour l'utiliser comme cible de traînée, de sorte que cette partie n'a pas eu beaucoup d'utilité à ma fin. A part ça, cependant, je l'utilise depuis un bon moment maintenant. Il existe d'autres modes et options décrits dans le file readme.

    Vous pouvez facilement naviguer dans le système de files de votre browser en utilisant la syntaxe suivante:

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

    Ouvrez le path dans un onglet vide et à partir de là, vous pouvez faire glisser votre file. Au less avec chrome / chrome, ne pas avoir d'autres browsers ici pour essayer.

    Juste résolu le problème moi-même.

    La méthode la plus simple consiste à utiliser la boîte de dialog "Ouvrir le file …". Vous pouvez simplement faire glisser et déposer dans la boîte de dialog du file gtk, tout comme un gestionnaire de files.

    Vous devrez peut-être ouvrir une window séparée pour vous assurer que la boîte de dialog ne vole pas l'écran.

    C'est tout. C'est facile.