(Я нахожусь на Arch Linux, используя i3 в качестве моего wm и xterm в качестве моего эмулятора терминала, хотя я не знаю, имеет ли это отношение.)
Иногда веб-сайт просит меня перетащить файл с помощью мыши с рабочего стола в окно интернет-браузера. Почти всегда есть альтернатива, но недавно я нашел что-то, что я хочу сделать, что требует перетаскивания. К сожалению, у меня нет файлового менеджера. Я перемещаюсь по файловой системе моего компьютера исключительно через bash.
Есть ли способ, которым я могу подделать действие перетаскивания? Могу ли я сказать своему браузеру «Я только что бросил этот файл на тебя», фактически не делая этого?
В худшем случае я могу загрузить графический файловый менеджер исключительно для перетаскивания файлов в мой веб-браузер, но я бы хотел избежать этого решения.
источник
Ответы:
У меня была точно такая же проблема несколько месяцев назад, и в конце концов я просто написал инструмент, чтобы сделать это для меня. Когда я увидел это и обнаружил, что у кого-то еще был такой же зуд, я вычистил его, чтобы кто-то, кроме меня, мог фактически запустить его, и завершил свой список дел. Код сейчас: https://github.com/mwh/dragon
Чтобы получить это, беги
Это даст вам автономный
dragon
исполняемый файл - вы можете переместить его куда угодно.make install
вставит это$HOME/.local/bin
.В любом случае, вы можете:
чтобы получить простое окно с перетаскиваемыми кнопками для каждого из этих файлов:
Вы можете перетащить любой из них в браузер, файловый менеджер, редактор или в любое другое место, где используется стандартный протокол перетаскивания.
Если вы хотите пойти другим путем и перетащить что-то в него, используйте
--target
- они будут распечатаны на стандартный вывод или доступны для повторного перетаскивания, если вы--keep
тоже их используете.Для того, чтобы построить вам нужен C компилятор и заголовки разработки GTK + 3 - если вы на Arch вы получите те просто установив GTK +, но и в других дистрибутивах вам , возможно , придется
apt-get install build-essentials libgtk3-dev
илиyum install gtk3-devel
или аналогичный первому. Кроме этого, он полностью автономен, без составных библиотек или чего-либо еще, и вы можете просто поместить исполняемый файл туда, куда хотите.Мой вариант использования - это в основном одноразовые перетаскивания только нескольких файлов (обычно только одного), без особой заботы о том, как они отображаются, поэтому, если это не соответствует тому, что вы хотите, тогда Dragbox (которого я не видел до в последнее время) может быть еще лучше для вас. Буквально вчера я добавил поддержку для использования его в качестве цели перетаскивания, так что эта часть не имела большого смысла с моей стороны. Кроме этого, я уже некоторое время успешно использую это. В файле readme описаны другие режимы и опции.
источник
dragon-drag-and-drop-git
.Спасибо @derobert за то, что порекомендовали мне приложение Dragbox.
Dragbox делает именно то, что мне нужно. Например, у меня есть папка с несколькими файлами .png, которые я бы хотел перетащить в Chromium. Внутри этой папки выполнение
dragbox *.png
создает это окно:Я могу использовать свою мышь, чтобы перетащить файлы оттуда в Chromium, и это работает безупречно. Однако добраться до этого момента было больно. Насколько мне известно, Dragbox официально поддерживает только системы Debian. Я не мог найти это нигде, что изначально работало на Арка. Итак, я написал пошаговое руководство по работе с Dragbox в Arch Linux. Это почти то же самое, что я сделал на своей машине, с парой модификаций, чтобы следовать лучшим практикам. Если где-то произошла ошибка, вы можете посмотреть историю изменений этого ответа, чтобы точно узнать , что я сделал на своем компьютере.
git clone https://github.com/engla/dragbox.git
dragbox
вашем текущем рабочем каталоге будет создан новый каталог с именем . Войти в помещение.export PYTHON=/bin/python2
. Пока вы не закроете текущее окно терминала, переменная окружения$PYTHON
будет иметь значение/bin/python2
. Сценарии установки Dragbox проверяют это и будут использовать его поверх Python 3../autogen.sh
,./configure
,make
иmake install
.make install
должно быть сделано с правами суперпользователя (напримерsudo make install
)./usr/local/bin/dragbox
в текстовом редакторе. Измените shebang (первая строка, которая сообщает вашей оболочке, с каким исполняемым файлом запустить скрипт) с#!/usr/bin/env python
в#!/usr/bin/env python2
.Теперь скрипт работает, но не может найти модуль, содержащий реальную программу. Есть несколько способов это исправить.
Включите в вашу
~/.bashrc
или аналогичную строку чтениеexport PYTHONPATH=$PYTHONPATH:
сразу (например, даже через пробел), следуя моему пути к каталогу. Python теперь будет искать в этом каталоге при попытке импортировать модули. Внутри каталога, созданного еще на шаге 1, будет каталог с именемDropbox/
(с большой буквы). Скопируйте этот каталог в каталог, который вы добавили в свой$PYTHONPATH
(например, если вы написалиexport PYTHONPATH=$PYTHONPATH:~/python/modules
, скопируйтеDragbox/
каталог для создания~/python/modules/Dragbox/
).Возможно, это еще хуже, но вы можете скопировать этот же каталог в каталог, уже находящийся у вас
$PYTHONPATH
. Например, вы можете скопировать его для создания/usr/lib/python2.7/site-packages/
.Если вы выполнили эти шаги, Dragbox должен работать! Теперь вы можете выполнить,
man dragbox
чтобы узнать больше о том, как его использовать, и запустить его, просто набравdragbox
.источник
/usr/bin/env python2
является рекомендуемым способом в наши дни, так как PEP 394 был принят.Dragbox
каталогPYTHONPATH
куда-нибудь (как в python2site-packages
, как в системе, так и для пользователя). Эта строка выполняется только тогда, когдаdragbox
не удается импортировать этот пакет.pacman
управлять файлами, чтобы вам никогда не приходилось копаться в системе, если вы захотите обновить или удалить ее.Вы можете легко перемещаться по файловой системе в вашем браузере, используя синтаксис:
Откройте путь в пустой вкладке, и оттуда вы можете перетащить файл. По крайней мере, с хромом / хромом, здесь нет других браузеров, чтобы попробовать.
источник
chrome://flags
бы правильным местом, чтобы искать что-то подобное? Вот где я сейчас смотрю.Просто решил проблему сам.
Вполне возможно, самый простой способ - использовать диалог «Открыть файл ...». Вы можете просто перетащить файл из диалогового окна gtk, как файловый менеджер.
Возможно, вам придется открыть отдельное окно, чтобы убедиться, что диалоговое окно не крадет экран.
Вот и все. Это просто.
источник