Обещанное продолжение макозакоса.
Итак, после долгих блужданий в поисках того самого идеального оконного менеджера я, вдохновившись этим скриншотом, и отчаявшись в попытках завести хоть какое-нибудь globalmenu, решил реализовать свою давнюю идею, которую сперва отвёрг по причине отсутствия готовых нужных апплетов. Обо всём по порядку:
- DE - Xfce. Не то чтобы от неё много осталось, но большинство программулек, которые входят в понятие «DE», я использую от неё. А может, уже и не большинство, не считал.
- WM - Compiz. Включены вязкие окна с о-о-очень упоротыми настройками дрожания и припания (окно от границ оторвать почти нереально, я люблю трудности), няшный Alt+Tab, всё повешано на удобные хоткеи. Декоратор - отсутствует. То есть почти - для заглушки дефолтный прописал (без декоратора Compiz почему-то не хочет тени рисовать), но декорация отключена. Таскаю по Alt+Drag, ресайз повешал на Win+J. Вот так и живём.
- Содержание xfce-panel (слева направо): кнопка Apple Menu, закрытие/сворачивание/разворот по вертикали, иконка (а-ля Mac OS Classic, по клику показывается список окон, сначала была там, где и положено, справа, но потом перенёс сюда для красоты), заголовок окна, раскладка-трей-частота проца-загрузка-трафик-погода-меню сессии-часики, и вот она - новая кнопка максимизации окна. Кажется, это первый макозакос с нею.
- Окна обычно на весь экран, накидал, как всегда. для виду: тундерптица, Aurora с ЛОРом, ЛучшийФМВсехВремён и народов, запущенный под Wine, который я постепенно пытаюсь заменить Double Commander'ом, medit, в котором пилится новая версия одного небезызвестного в узких кругах расширения. Тема FF/TB - FT Deep Dark - использую давно и не хочу ни на что менять, несмотря на диссонанс с системным стилем.
- Тема GTK - Mac4Lin. Перепиливаю давно, уже даже не помню, что в нём менял, но менять ещё много - как минимум вид панели инструментов, сейчас там жопа. Дефолт не понравился в первую очередь излишней темнотой; в основном избавился, но кое-где ещё проскакивает. Когда я её качал, версии под GTK3 ещё не было, поэтому для неё стоит не совсем похожая GlossyP2. Если до сих пор нету подвижек, придётся портировать самому. Иконки и курсоры тоже из Mac4Lin.
- Док - Cairo-Dock. Слева - Grid-стэки, сгруппированые по категориям, справа - иконки запущенных приложений. Когда-то нашпиговал его доклетами, сейчас всё выкинул, для всякой иА теперь, собственно, о реализации. Перенести функционал заголовка на практике оказалось просто - кнопки - просто лаунчеры с иконками. wmctrl оказался слишком ограниченным по функционалу (по рабочим столам (которыми я вообще не пользуюсь) им можно таскать окна очень удобно и динамично, но вот из стандартных операций можно только закрывать окна). Я порылся в репозитории и нашёл нечто получше. С помощью xdotool можно посылать активному окну в принципе любой хоткей. Собственно, я прописал нужные хоткеи в настройках Compiz и повешал на кнопки команды вида нфы и на панели места достаточно.
- ШГ - ХЗ. Пилил, пилил, заметных изменений не ощутил (ибо мне реально на них пофиг) и оставил что-то около дефолта. ИМХО, мыльновато, правда.
А теперь, собственно, о реализации сабжа. Перенести функционал заголовка на практике оказалось просто - кнопки - просто лаунчеры с иконками. wmctrl оказался слишком ограниченным по функционалу (по рабочим столам (которыми я вообще не пользуюсь) им можно таскать окна очень удобно и динамично, но вот из стандартных операций можно только закрывать окна). Я порылся в репозитории и нашёл нечто получше. С помощью xdotool можно посылать активному окну в принципе любой хоткей. Собственно, я прописал нужные хоткеи в настройках Compiz и повешал на кнопки команды вида
xdotool key Alt+F4 --delay
А вот с заголовком и монитором трафика без скриптов не обошлось. К счастью, для Xfce-panel есть плагин «Общий монитор», через который с заданной периодичностью можно выводить выхлоп любого скрипта. Погуглил, нашёл примерно то, что нужно, и основательно подпилил.
Заголовок (обрезается до 75 символов, чтобы апплеты не уползали за экран):
#!/bin/bash
MAX_LENGTH=75
wnd_focus=$(xdotool getwindowfocus)
wnd_title=$(xprop -id $wnd_focus WM_NAME)
lookfor='"(.*)"'
if [[ "$wnd_title" =~ $lookfor ]]; then
wnd_title=${BASH_REMATCH[1]}
if (( ${#wnd_title}>$MAX_LENGTH )); then
wnd_title=${wnd_title:0:$MAX_LENGTH}...
fi
echo $wnd_title
fi
#!/bin/bash
RX=`cat /sys/class/net/ppp0/statistics/rx_bytes`
TX=`cat /sys/class/net/ppp0/statistics/tx_bytes`
RX=`echo "$RX / 1024576" | bc`
TX=`echo "$TX / 1024576" | bc`
echo ${RX}M/${TX}M
UPD:
Обоина (hi-res версии не делал, сорри).
>>> Просмотр (1366x768, 322 Kb)