В линуксе уже есть tilda и yakuake, но они gnome и kde зависимы. Есть yeahconsole, которая является оболочкой для xterm или urxvt, но она глючная. Поэтому мы в нашей рубрике "оч.умелые ручки" сделаем quake-like консоль сами.
1. Так как нам нужны табы, ставим urxvt, это такой эмулятор теминала для "иксов", замена xterm.
Ubuntu: sudo apt-get install rxvt-unicode
archlinux: sudo pacman -S rxvt-unicode
2. Так как нам нужно, чтобы терминал не выглядел как окно, находился вверху и по центру, чтобы его не было на панели задач, прописываем в файле ~/.config/openbox/rc.xml следующее:
<application class="URxvt">
<position>
<x>center</x>
<y>top</y>
</position>
<skip_taskbar>yes</skip_taskbar>
<desktop>all</desktop>
<focus>yes</focus>
<decor>no</decor>
<layer>above</layer>
</application>
3. Теперь включим табы, отключим скроллер, зададим размер и сдеаем так, чтобы кнопки HOME и END работали как положено. Пропишем в ~/.Xdefaults
URxvt.perl-ext-common: default,tabbed
URxvt*internalBorder: 4
URxvt*keysym.0xFF50: \033[1~
URxvt*keysym.0xFF57: \033[4~
URxvt*scrollBar_right: false
URxvt*scrollBar: false
URxvt*borderLess: false
URxvt*geometry:150x30
4. Терминал уже нас устраивает, можно его запустить и порадоваться. Осталось сделать так, чтобы он появлялся и прятался при нажатии хоткея. Наверное, есть разные способы сделать это. Один из них с помощью консольной утилиты wmctrl, которая может управлять окнами.
Ubuntu: sudo apt-get install wmctrl
archlinux: sudo pacman -S wmctrl
5. Теперь создаем скрипт, который будет проверять, запущена ли наша квейк-консоль и заускать ее или прятать/показывать. Скрипт такой (1):
#! /bin/bash
WINTITLE="quake-urxvt"
PROGNAME="urxvt"
if [ `wmctrl -xl | grep -c "$WINTITLE"` != 0 ]
then
wmctrl -x -r "$WINTITLE" -b toggle,hidden
else
$PROGNAME -name "$WINTITLE" &
fi
exit 0
Или такой (2) (установите xdotool):
#!/bin/bash
wmname="quake-urxvt"
function map {
xdotool windowmap "$wid"
xdotool windowfocus "$wid"
}
function unmap {
xdotool windowunmap "$wid"
}
function toggle {
is_mapped=$(xdotool search --onlyvisible --name $wmname 2> /dev/null)
if [[ -z $is_mapped ]]; then
map
else
unmap
fi
}
wid=$(xdotool search -name $wmname 2> /dev/null)
if [[ -z $wid ]]; then
urxvt -name "$wmname" &
else
toggle
fi
Теперь делаем его executable:
chmod +x /путь/ко/скрипту
6. И вешаем на хоткей, для чего вставлям в соответствующее место в файле ~/.config/openbox/rc.xml кусок:
<keybind key="F12">
<action name="Execute">
<command>/путь/ко/скрипту</command>
</action>
</keybind>
Вроде всё. Новая вкладка: Shift-Down. Перемещатся по вкладкам: Shift-Right, Shift-Left. Перемещать вкладки: Ctrl-Right, Ctrl-Left. Закрыть вклалку: Ctrl-D.
Есть один баг: Мы манипулируем окном по его имени, которое мы сами ему задали. В данном случае "quake-urxvt". Если, например, вы набрали в гугле quake-urxvt, ваш браузер тоже получит такой тайтл. И тогда уже он будет прятаться по хоткею, а не консоль =)