Спасибо @derobert за рекомендацию мне приложения Dragbox.
Dragbox делает именно то, что мне нужно. Например, у меня есть папка с несколькими файлами .png, которые я хотел бы перетащить в Chromium. Внутри этой папки выполнение dragbox * .png
создает следующее окно:
Я могу использовать свою мышь, чтобы перетаскивать файлы оттуда в Chromium, и это работает безупречно. Однако добраться до этого момента было нелегко. Насколько мне известно, Dragbox официально поддерживает только системы Debian. Я не мог найти нигде, что изначально работало для Arch. Итак, я написал пошаговое руководство, как заставить 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
должен выполняться с правами root (например, sudo make install
). / usr / local / bin / dragbox
в текстовом редакторе. Измените shebang (первая строка, которая сообщает вашей оболочке, с каким исполняемым файлом запускать скрипт) с #! / Usr / bin / env python
на #! / Usr / bin / env python2
. Теперь скрипт работает, но не может найти модуль, содержащий актуальную программу. Есть несколько способов исправить это.
Включите в свой ~ / .bashrc
или аналогичный строку, читающую export PYTHONPATH = $ PYTHONPATH:
немедленно (например, без пробела между), следуя моему пути к каталог. Python теперь будет искать в этом каталоге при попытке импортировать модули. Внутри каталога, созданного на шаге 1, будет каталог с именем Dropbox /
(с большой буквы D). Скопируйте этот каталог в каталог, который вы добавили в свой $ PYTHONPATH
(например, если вы написали export PYTHONPATH = $ PYTHONPATH: ~ / python / modules
, скопируйте Dragbox /
] для создания каталога ~ / python / modules / Dragbox /
).
Вероятно, худшая практика, но вы можете скопировать тот же каталог в каталог, который уже находится в вашем $ PYTHONPATH
. Например, вы можете скопировать его, чтобы создать /usr/lib/python2.7/site-packages/
.
Если вы выполнили эти шаги, Dragbox должен работать! Теперь вы можете запустить man dragbox
, чтобы узнать больше о том, как его использовать, и запустить его, просто набрав dragbox
.
Wraph NC
вызовы с небуферизованным SED
вызовы:
sed -u "s/^/My name: /" | nc PARTNER_IP 2015
sed -u "s/^/Partner name: /" | nc -l 2015
Функция ReadPip ()
{
echo "Введите свой partener IP"
Прочитайте IP
Export PIP = $ IP
}
Пространство после того, как знак равенства - это синтаксис ошибка. Но, кроме того, все это может быть восстановлено только на
readPip () {
read -p "Enter your partner's IP: " PIP
}
Экспорт
не нужно, поскольку вам не нужны внешние дочерние процессы, чтобы иметь доступ к этой переменной.
Функция Readmip ()
{
MIP = IP Addr List eth0 | Greep "Inet" | Cut -D '' -F6 | Cut -D / -F1
Echo -n «Мой IP Это «$ MIP»
Export MiP = $ MIP
}
снова, это содержит ошибку; вы назначаете MIP
значение IP
, а затем (попробуйте to) Запустите команду List Addr ...
, где, по-видимому, намерение запустить List addr ...
и назначить результат этого на MIP
readMip () {
ip addr list eth0 |grep "inet " |cut -d' ' -f6|cut -d/ -f1`
}
Здесь я бы просто оставил присвоение абонента ( readpip
может быть повторно повторно отменить одинаково для согласованности).
в основном коде, вы получите
MIP=$(readMip)
снова, Экспорт
не является ни необходимым, ни полезным.
Функциональный чат ()
{
[[$ PIP! = ""]] && NC $ PIP 2015
[[$ PIP == »"]] && NC -L -P 2015
}
Это явно «если - тогда - else» и должно быть написано соответственно.
chat () {
if [[ "$PIP" == " " ]]; then
nc -l -p 2015
else
nc "$PIP" 2015
fi
}
Или даже
[[ "$PIP" == " " ]] && nc -l -p 2015 || nc "$PIP" 2015
обратите внимание также, что я бросил функцию только на Bash
. У вас все еще есть пару басизмов здесь, но они могут быть триветически повторными для портативного сценария POSIX.