(Estoy en Arch Linux, usando i3 como mi wm y xterm como mi emulador de terminal, aunque no sé si algo de eso es relevante).
Ocasionalmente, un sitio web me pide que arrastre un archivo con el mouse desde mi escritorio a la ventana del navegador de Internet. Casi siempre, hay una alternativa, pero recientemente encontré algo que quiero hacer que requiere arrastrar y soltar. Lamentablemente, no tengo un administrador de archivos. Navego por el sistema de archivos de mi computadora únicamente a través de bash.
¿Hay alguna manera de que pueda fingir la acción de arrastrar y soltar? ¿Puedo decirle a mi navegador "Acabo de soltar este archivo en ti" sin hacerlo realmente?
En el peor de los casos, puedo descargar un administrador de archivos gráfico exclusivamente para colocar archivos en mi navegador web, pero me gustaría evitar esa solución.
fuente
Respuestas:
Tuve exactamente el mismo problema hace unos meses y finalmente escribí una herramienta para hacerlo por mí. Cuando vi esto y descubrí que alguien más tenía el mismo picor, lo limpié para que alguien más que yo pudiera hacerlo funcionar y terminé mi lista de tareas pendientes. El código ya está disponible: https://github.com/mwh/dragon
Para conseguirlo, corre
Eso le dará un
dragon
ejecutable independiente : puede moverlo a donde quiera.make install
lo pondré adentro$HOME/.local/bin
.De cualquier manera, entonces puedes:
para obtener una ventana simple con botones arrastrables para cada uno de esos archivos:
Puede arrastrar cualquiera de ellos a un navegador, un administrador de archivos, un editor o cualquier otro lugar que diga el protocolo estándar de arrastrar y soltar.
Si desea ir hacia el otro lado, y arrastrar las cosas hacia adentro , use
--target
: se imprimirán a la salida estándar, o estarán disponibles para arrastrar nuevamente si lo usa--keep
también.Para construir se necesita un compilador de C y las GTK + 3 cabeceras de desarrollo - si se encuentra en Arco obtendrá aquellos que sólo mediante la instalación de GTK +, pero en otras distribuciones puede que tenga que
apt-get install build-essentials libgtk3-dev
oyum install gtk3-devel
o similar, en primer lugar. Aparte de eso, es completamente autónomo, sin bibliotecas constituyentes ni nada, y puede colocar el ejecutable donde lo desee.Mi caso de uso es en su mayoría arrastrados únicos de solo unos pocos archivos (generalmente solo uno), sin importar particularmente cómo se muestran, así que si eso no se alinea con lo que quieres, entonces Dragbox (que no vi hasta recientemente) aún podría ser mejor para ti. Ayer mismo agregué el soporte para usarlo también como un objetivo de arrastre, por lo que esa parte no ha tenido mucho uso por mi parte. Sin embargo, aparte de eso, he estado usando esto con éxito durante un tiempo. Hay otros modos y opciones descritos en el archivo Léame.
fuente
dragon-drag-and-drop-git
.Gracias a @derobert por recomendarme la aplicación Dragbox.
Dragbox hace exactamente lo que necesito. Por ejemplo, tengo una carpeta con varios archivos .png que me gustaría poder arrastrar a Chromium. Dentro de esa carpeta, la ejecución
dragbox *.png
crea esta ventana:Puedo usar mi mouse para arrastrar archivos desde allí a Chromium, y funciona perfectamente. Sin embargo, llegar a este punto fue un dolor. Que yo sepa, Dragbox solo es oficialmente compatible con los sistemas Debian. No pude encontrarlo en ningún lugar que funcionara de forma nativa para Arch. Entonces, he escrito una guía paso a paso para hacer que Dragbox funcione en Arch Linux. Esto es casi exactamente lo que hice en mi máquina, con un par de modificaciones para seguir mejores prácticas. Si hay un error en alguna parte, puede consultar el historial de edición de esta respuesta para ver exactamente lo que hice en mi máquina.
git clone https://github.com/engla/dragbox.git
dragbox
creado dentro de su directorio de trabajo actual. Ve adentro.export PYTHON=/bin/python2
. Hasta que cierre su ventana de terminal actual, la variable de entorno$PYTHON
tendrá el valor/bin/python2
. Los scripts de instalación de Dragbox lo comprueban y lo usarán en Python 3../autogen.sh
,./configure
,make
ymake install
.make install
debe hacerse con privilegios de root (por ejemplosudo make install
)./usr/local/bin/dragbox
en un editor de texto. Modificar el tinglado (la primera línea, que le dice a su shell lo ejecutable para ejecutar el script con) a partir#!/usr/bin/env python
de#!/usr/bin/env python2
.El script ahora funciona, pero no puede encontrar el módulo que contiene el programa real. Hay un par de formas en que puede solucionar esto.
Incluir en su
~/.bashrc
línea de lectura o similarexport PYTHONPATH=$PYTHONPATH:
inmediatamente (como en, ni siquiera un espacio entre) siguió mi camino a un directorio. Python ahora buscará en ese directorio cuando intente importar módulos. Dentro del directorio creado en el paso 1, habrá un directorio llamadoDropbox/
(con una D mayúscula). Copie ese directorio en el directorio que agregó a su$PYTHONPATH
(por ejemplo, si escribióexport PYTHONPATH=$PYTHONPATH:~/python/modules
, copie elDragbox/
directorio para crear~/python/modules/Dragbox/
).Probablemente peor práctica, pero puede copiar ese mismo directorio en un directorio que ya está en su
$PYTHONPATH
. Por ejemplo, podría copiarlo para crear/usr/lib/python2.7/site-packages/
.Si ha seguido estos pasos, ¡Dragbox debería estar funcionando! Ahora puede ejecutar
man dragbox
para obtener más información sobre cómo usarlo y ejecutarlo simplemente escribiendodragbox
.fuente
/usr/bin/env python2
es la forma recomendada en estos días, ya que PEP 394 fue adoptado.Dragbox
directorio enPYTHONPATH
algún lugar (como en python2site-packages
, ya sea sistema o por usuario). Esa línea se ejecuta solo cuandodragbox
no se puede importar ese paquete.pacman
administrar los archivos por ti para que nunca tengas que buscar en el sistema si quieres actualizarlo o eliminarlo.Puede navegar fácilmente el sistema de archivos dentro de su navegador, utilizando la sintaxis:
Abra la ruta en una pestaña vacía y desde allí puede arrastrar y soltar su archivo. Al menos con cromo / cromo, no tienes otros navegadores aquí para probar.
fuente
chrome://flags
Sería el lugar adecuado para buscar algo como esto? Ahí es donde estoy mirando el momento.Solo resolví el problema yo mismo.
Posiblemente, la forma más fácil es utilizar el cuadro de diálogo "Abrir archivo ...". Simplemente puede arrastrar y soltar desde el cuadro de diálogo del archivo gtk, al igual que un administrador de archivos.
Es posible que deba abrir una ventana separada para asegurarse de que el cuadro de diálogo no robe la pantalla.
Eso es. Así de fácil.
fuente