stogerc 09.05.2010 22:46
Tips & tricks — Запуск системных команд из google chrome
Не так давно я рассказывал про то, как подружить google chrome и magnet-ссылки. Сегодня хочу поведать, как тем же способом немного поизвращаться с хромом и позволить создавать закладки на исполнение системных команд.Итак, сначала "регистрируем" в xdg-open новый "протокол". Для этого добавляем в конец файла /usr/bin/xdg-open условие обрабатывающие ссылки вида "sys: command", где в последующем command будет любая системная команда.
Для краткости использовал сокращение sys:, но вы конечно же можете выбрать любое сокращение на свой вкус.
Теперь добавим в закладки например "sys: mpc play", в первый раз хром спросит разрешить-ли запуск утилиты xdg-open, естественно, дадим ему положительный ответ.
Теперь можно добавить закладку на любую системную программу или скрипт.
Немного побаловавшись, можно например сделать закладку на такой скрипт:
1 |
google-chrome "`mpc current --format 'http://lyrics.wikia.com/api.php?artist=<%artist%>';echo '&'; mpc current --format 'song=<%title%>'`"
|
Теперь эта закладка будет открывать нам страницу с текстом песни, играющей сейчас в MPD.
Я не силён в написании скриптов, поэтому, если кто может, поправьте пожалуйста мой скриптик =)
Я например добавил себе кнопки управления MPD, и кнопки запуска некоторых программ. Удачных вам экспериментов.
P.S. Используя это, можно сделать интересные расширения для хрома, благо ничего сложного в этом нет.
yuretsz 09.05.2010 23:32 #
+ 4 -
Насколько это безопасно? Что будет, если злоумышелнник подсунет вам ссылку вида sys://rm%20-rf20%/
А откуда он знает какое у вас сокращение используется? Почему это у вас должно быть "sys:"
Ну если это вся безопасность, то для расширений такое не подходит.
Ну подумаешь, не всю систему снесёт, а только хомяка... кому какое дело, там одна фигня ведь всё-равно...
что-то не очень оно работает - перекидывает на страницу поиска в гугле.
Если писать в строке адреса, то сложные команды с кавычками или другими знаками не сработают, а если добавлять в закладки, должно работать всё.
просто пишу sys:cat (что то же оно выводит) )
конструкцию добавил второй и далее строчками в файл.
конструкцию добавил второй и далее строчками в файл.
Просто после передачи в xdg-open, url ещё надо обработать:
Скорее всего я просто ещё чего-то не учёл. Покажите пожалуйста конкретно команду, которая не работает.
sed 's/sys://;s/%20/ /g;s/%22/"/g;s/%60/`/g;s/%5B//g;s/%23/#/g;s/%5E/^/g;s/%2B/+/g;s/%3C/;s/%3E/>/g;s/%7B/{/g;s/%7D/}/g;s/%7C/|/g'
Скорее всего я просто ещё чего-то не учёл. Покажите пожалуйста конкретно команду, которая не работает.
А хром спрашивал про xdg-open? Может, если случайно нажали отмена, то уже прийдётся только менять сокращение с sys на какое-нибудь другое, потому что мог навсегда запретить "новый протокол" А какая версия браузера?
Я ещё этой штукой толком не занимался, поэтому тут ещё нужно чуток доработать ;)
Да, думаю этот способ будет как нельзя кстати для сборок ХромиумОС =) Надо будет попробовать реализовать - там этого так нехватает :P
Ну, ждем релиза официальной гугловой сборки ХромиумОС, а пока пользуемся неофициальными сборками ;-)
На самом деле очень шикарная находка. Если учесть что Хромиум ОС не имеет никаких адекватных средств запуска приложений и т.п. (хотя, консоль там есть), все же запуск прямо из единственного окна (оно же "рабочий стол") было бы очень кстати :D