бинд на консольные приложения [решено]

Впервые меня озадачил столь тривиальный вопрос. Как можно настроить горячие клавиши на консольные программы, коих развелось немерено? Чтобы не истязать умы уважаемых арчеводов различными абстракциями, практический пример: настройка горячих клавиш в dwm:
Запуск графических приложений:
{ MODKEY,                       XK_i,      spawn,          {.v = (const char*[]){"mirage"}}},
Запуск scrot:
static const char *scrot[] = {"scrot", NULL};
{ MODKEY,                       XK_Print,  spawn,          {.v = scrot} },
А вот cmus, rtorrent не запускаются:
static const char *music[] = {"cmus", NULL};
{ MODKEY,                       XK_x,      spawn,          {.v = music} },
Я правильно подозреваю, что их запуск должен производиться только командой из эмулятора терминала, который в данном случае не открывается?
HP Pavilion g6-1054er
DualCore Intel Core i5-2410M, 8GB DDR3 SDRAM, Mobile Intel HD Graphics, ATI Radeon HD 6470M
Да, я понимаю правильно. Так работает:
static const char *torrent[] = {"terminal", "-e", "rtorrent", NULL};
Только cmus, зараза, отображает чёрный экран. Даже при запуске с флагом –command из терминала. :(
В целом решено.
HP Pavilion g6-1054er
DualCore Intel Core i5-2410M, 8GB DDR3 SDRAM, Mobile Intel HD Graphics, ATI Radeon HD 6470M
Ctr+l (Shift-l). Попробовать обновить его, может он запустился но проблемы с отрисовкой.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
Есть консольные программы, которые не работают без консоли, точнее без устройства TTY.
Некоторые из них можно отучить от этого, например у mplayer есть ключ -noconsolecontrols, если я правильно помню.

Если же вам надо запустить какую-то консольную программу вместе с терминалом – нет проблем. Берём нужный вам терминал, курим его ман, и ищем параметры для запуска с определённой программой.
Для xterm это делается ключом -e , после которого пишется команда со всеми параметрами.

Что касается cmus, мне незнаком этот плеер, но обычно проблемы с запущенными из WM программами происходят либо от привязки к /dev/tty* , от которого запущен сами WM, либо из-за того, что домашний каталог при запуске не являлся текущим, если он не был текущим для самого WM.
От первого опять-таки, помогает запуск через терминал, от второго – переделка скрипта запуска самого WM, чтобы домашний стал текущим.
Natrio
Если же вам надо запустить какую-то консольную программу вместе с терминалом – нет проблем. Берём нужный вам терминал, курим его ман, и ищем параметры для запуска с определённой программой.
Что, собственно, и было сделано =) cmus не привязан к какому-то определённому /dev/tty, да и смена домашнего каталога нигде не могла производиться. Скорее всего дело именно в прорисовке, на что указал sleepycat . Плеер запускается, он есть в процессах, но прорисовка окна не пашет, Ctr+l (Shift-l) не помогли.
В принципе одно приложение не критично - запущу ручками, всё остальное нормально работает.
HP Pavilion g6-1054er
DualCore Intel Core i5-2410M, 8GB DDR3 SDRAM, Mobile Intel HD Graphics, ATI Radeon HD 6470M
Liberty
cmus не привязан к какому-то определённому /dev/tty
Я не говорил о привязке к какому-то определённому, я говорил о необходимости подключения к консоли вообще.
Если у вас он почему-то не работает, а консоль (терминал) уже есть, попробуйте сравнить переменные окружений – когда запускается, и когда нет.
а я вот начинаю склоняться к версии Natrio. Т.е. к вм.
sakura -x /usr/bin/cmus
в мейте запускается на ура, и из консоли и из местного запускателя. сmus-remote отрабатывает после такого неудачного старта cmus'а?
рискну предположить, что возможно будет полезно изучить screen(tmux). По крайней мере когда уйдете с тайлинга. В обоих автозапуск в сессиях(окнах) проходит без сучка. Я когда то перешел от разбросанных терминалов в единый их центр. Пока был тайлинг - особо не трогало, но как только перешел с него на “норму” окошки черненькие, стали мешаться… Выход нашелся сразу guake+screen.
Я просто как-то задавался вопросом очень близким к теме, и решил, что лучше сразу запускать все, что нужно, а потом отключать ,если надо, что не нужно, чем включать по очереди.
я еще я напутал с кнопками, это скрин все подлец))) Судя по ману cmus клавиша то С-S-l (^L) .
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
sleepycat
sakura -x /usr/bin/cmus
в мейте запускается на ура, и из консоли и из местного запускателя
При команде в терминале
$ cmus
запускается, работает
Следуя ману находим команды: -x, –execute; -e, –command=command;
$ terminal -x /usr/bin/cmus
открывается в новой вкладке, запускается, вкладка полностью чёрная, на нажатия клавиш реагирует адекватно, музыку проигрывает. Но я не настолько хорошо знаю свою музыкальную коллекцию, чтобы выбирать треки вслепую :) чёрти с ним, все прочие приложения запускаются и работают.
По поводу screen/tmux: может быть, всё может быть, но пока лень.
sleepycat
По крайней мере когда уйдете с тайлинга
а куда с него по большому счёту уходить? только на kde, а kde при установке как ни крути тянет много ненужного хлама. Ну, openbox ещё вариант, но уже не то.
HP Pavilion g6-1054er
DualCore Intel Core i5-2410M, 8GB DDR3 SDRAM, Mobile Intel HD Graphics, ATI Radeon HD 6470M
Ради интереса попробуйте такую конструкцию:
terminal -e /bin/sh -c cmus
vadik
terminal -e /bin/sh -c cmus
??????????? ???????? "-c"
да ладно, ребят, не критично
HP Pavilion g6-1054er
DualCore Intel Core i5-2410M, 8GB DDR3 SDRAM, Mobile Intel HD Graphics, ATI Radeon HD 6470M
 
Зарегистрироваться или войдите чтобы оставить сообщение.