Dmenu: различия между версиями
Lazyklimm (обсуждение | вклад) м (→Также...) |
Lazyklimm (обсуждение | вклад) м (→windmenu.sh: обновил) |
||
Строка 27: | Строка 27: | ||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/sh | #!/bin/sh | ||
#FONT="-*-terminus-*-*-*-*-*- | #FONT='-*-*-*-*-*-*-*-*-*-*-*-*-iso10646-*' | ||
FONT="-fn -*-terminus-*-*-*-*-*-220-*-*-*-*-iso10646-*" | |||
COLORS="-nb #000000 -nf #FFFFFF -sb #0066ff" | COLORS="-nb #000000 -nf #FFFFFF -sb #0066ff" | ||
MISC="-i - | MISC="-i -l 20" | ||
PARAMS="${FONT} ${COLORS} ${MISC}" | PARAMS="${FONT} ${COLORS} ${MISC}" | ||
wnds=`wmctrl -l | | |||
wrks=`wmctrl -d | | wnds=`wmctrl -l | awk '{print substr($0, index($0,$4))}'` | ||
sel=`echo "$wnds\n$wrks" | dmenu $PARAMS` | wrks=`wmctrl -d | awk '{print substr($0, index($0,$9))}'` | ||
wrkid=`wmctrl -d | | |||
test $wrkid && wmctrl -s $wrkid || wmctrl -a $sel | sel=`echo "$wnds\n$wrks" | sort -u | dmenu $PARAMS` | ||
test -z "$sel" && exit 0 | |||
wrkid=`wmctrl -d | awk "/$sel/"'{print $1}'` | |||
test $wrkid && wmctrl -s $wrkid || wmctrl -a "$sel" || exit 1 | |||
exit 0 | |||
</source> | </source> | ||
Версия 06:56, 5 августа 2011
Dmenu - горизонтальная менюшка, выползающая сверху (или снизу) экрана.
Обладает простым, но очень полезным функционалом - принимает на stdin текстовые строки, показывает их как пункты меню, и если выбран какой-либо пункт, выдает его на stdout.
Сама по себе может показаться практически бесполезной, но будучи соединенной в конвеер с другими командами, становится очень ценной вещью.
самый простейший пример, идет "в коробке", запуск программ из $PATH
#!/bin/sh
#FONT="-*-terminus-*-*-*-*-*-*-*-*-*-*-iso10646-*"
COLORS="-nb #000000 -nf #FFFFFF -sb #0066ff"
MISC="-i -b"
PARAMS="${FONT} ${COLORS} ${MISC}"
`dmenu_path | dmenu $PARAMS` && eval "exec $exe"
Активизирует выбранное в меню окно или воркспейс (из всех). Полезно для тех, у кого куча рабочих столов с кучей открытых окон. По моему опыту достаточно нажатия пары-тройки клавиш для поиска нужного окна (+хоткей на вызов + Enter)
Возможна некорректная работа в случае совпадения названия воркспейса и заголовка окна.
требуется установленная утилита wmctrl
#!/bin/sh
#FONT='-*-*-*-*-*-*-*-*-*-*-*-*-iso10646-*'
FONT="-fn -*-terminus-*-*-*-*-*-220-*-*-*-*-iso10646-*"
COLORS="-nb #000000 -nf #FFFFFF -sb #0066ff"
MISC="-i -l 20"
PARAMS="${FONT} ${COLORS} ${MISC}"
wnds=`wmctrl -l | awk '{print substr($0, index($0,$4))}'`
wrks=`wmctrl -d | awk '{print substr($0, index($0,$9))}'`
sel=`echo "$wnds\n$wrks" | sort -u | dmenu $PARAMS`
test -z "$sel" && exit 0
wrkid=`wmctrl -d | awk "/$sel/"'{print $1}'`
test $wrkid && wmctrl -s $wrkid || wmctrl -a "$sel" || exit 1
exit 0
Также...
Рекомендую посмотреть на dmenfm - файловый менеджер на основе dmenu. Описание
Скрипт отмонтирования сменных устройств