Ъ прозрачность в yeahconsoleyeahconsole, прозрачность, shell, xorg, linux

Ъ прозрачность yeahconsoleЗахотелось свистелок и перделок
Сначала пара слов про тему и иконки gtk о которых писал с неделю назад.
Я идиот! вот лепишь свои темы да иконки лепишь, а потом находишь то что лежит под носом, а именно те самые Any Color You Like.
Правда они под носом не лежали, а вот после их обнаружения под носом лежала такая же тема gtk (ага, а я свои темы ковырял допиливал), тоже Any Color You Like (но уже GTK 2.x Theme/Style) — простая тема, правим в её gtkrc пару верхних строчек (цвета, размер иконок, etc) и радуемся. Есть ещё такая же тема для metacity, возможно есть и для чего другого. так что рекомендую!
Вобщем я нашел свой идеал, которы и глаза не мозолит, но душу греет...

То что мне захотелось поменять немного своё окружение мои читатели уже догадались (то обои, то иконки и темы), вот дошла очередь и до консоли, т.е. до иксового эмулятора терминала...

Вступление
Расцветка консоли меня всегда устраивала, сам эмулятор терминала тоже устраивает более чем (yeahconsole + GNU Screen, но описанный ниже метод должен работать и с другими эмуляторами терминалов). Оконный менеджер я тоже менять не собираюсь, однако всяких компизов вешать не хочется, xcompmgr вполне хватает для моих нужд - да и работает он с любым wm (даже с ratpoison). Так что решил (как догадливый читатель уже понял по заголовку) сделать прозрачность для выскакивающего по хоткею терминала, а сам он так не умеет — но это же unix-way, и то что не умеет yeahconsole умеет xcompmgr.

Решение
Что удивительно даже в гугл лезть не пришлось, ибо решая проблему о том что бы эта выпадающая консоль была не по верх всех окон был однострочник для получения id окна, которое можно было потом передавать кому угодно(ну почти) для обработки.
id=$(xwininfo -root -tree | grep имя -B 2 | head -1 | perl -p -e 's/^ *(0x.*?) .*$/$1/g')
запомните сей однострочник, пригодится, мне вот уже неоднократно пригодился.

В качестве обработчика был выбран transset — простая утилита которая тупо делает указанное окно прозрачным, естественно уровень прозрачности можно задать, да и окно можно выбрать как кликом мышки так и параметрами командной строки (вот тут id нам и нужен).
В общем yaourt -S transset-df и устанавливаем прозрачность уже полученному id
transset-df  -i $id 0.85 
Не забываем что xcompmgr или что-то его заменяющее должно быть запущено иначе прозрачности не будет). 0.85 это уровень прозрачности(0 - прозрачно целиком, 1 - непрозрачно, с моей расцветкой делать прозрачность больше 0.85 это сделать текст в консоли нечитаемым в большинстве случаев).
Ъ прозрачность yeahconsole
Применение на автомате
Дело в том что скрит просто так в автозагрузку не впихнешь, ибо может не успеть, так что нужен небольшой sleep перед зупуском. Ну а так как всё что в автозагрузке с иксами грузится у меня в одном файле поэтому итоговый скрипт получил вид
(sleep 3 && transset-df  -i $(xwininfo -root -tree | grep yeahconsole -B 2 | head -1 | perl -p -e 's/^ *(0x.*?) .*$/$1/g') 0.9)&
и попал в файл autostart.sh. Циферка 3 это секунды — на моем текущем десктопе сего времени хватает, возможно кому-то и не хватит, так что поиграйтесь с это циферкой...
Хотя можно и без sleep'a повесить на хоткей и когда надо убирать, когда надо включать прозрачность ибо transset-df при первом вызове устанавливает заданную прозрачность, при втором убирает её.

Дополнение
Во время написания поста решил посмотреть а не сбояню ли я, оказалось что бояню, но только частично — нашел способ установки прозрачности с тем же методом получения id но без использования transset(-df) (на ubuntuforums.org, как ни странно — я думал приверженцы ubuntu не любят таких сложных путей), стандартными исковыми методами
# value is between 0 (invisible) and 2^32 (fully opaque)
xprop -id "$id" -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY 3221225472
Опробуя сей метод, я так и не осилил почеловечески менять уровень прозрачности.

Итог
В общем огламурил я свой десктоп, для тех кто спросит нафига мне эта прозрачность отвечу вразу — yeahconsole чаще всего открыт у меня на весь экран, затмевая собой не только трей с небольшой инфой(не так уж давно появившийся у меня — а то всё в hardstatus screen'а выносить не комильфо), но и всё происходящее в окнах, к прмеру в браузере или ещё где. Так что это носит не столько эстетический характер сколь практический
06-08-2010, 13:21    Комментарии: 16

yeahurxvt: quake-style терминал с помощью wmctrl на замену yeahconsole yeahconsole, wmctrl, shell, urxvt, linux

Навеяно темой на русском арчефоруме в которой человек вопрошает способ сделать так что бы yeahconsole не была поверх всех окон?

Набросал скриптик для создания простого аналога yeahconsole из urxvt. Думаю, для других терминалов мало что будет отличаться (для xterm то это точно)
#! /bin/bash

WINTITLE="yeahurxvt"
PROGNAME="urxvt"
# ищем окно по имени и скрываем/показываем или запускаем окно в зависимости от ситуации
if [ `wmctrl -xl | grep -c "$WINTITLE"` != 0 ]; then
	# скрываем или показываем нужное окно в зависимости от того что сейчас
    wmctrl -x -r "$WINTITLE" -b toggle,hidden
else
	# запускаем если нет окна с нужным именем
    $PROGNAME -name "$WINTITLE" &
    # ну и размер сразу выставить можно, параметры добавить и прочее по желанию - главное что бы имя у окна было нужное
fi
exit 0

Не забываем что если bash/zsh/etc меняет имя окна то всё вдруг перестает работать. Так что лучше что бы не меняло
Сохраняем скрипт, делаем исполняемым, вешаем на любой хоткей и радуемся. Правда в данном случае в панели задач это окно будет отображаться, но никто не запрещает в настройках используемой панели запретить отображение...

Все хором выбрасываем yeahconsole, tilda, и прочее =)

PS работает в EWMH совместимых wm — проверил на openbox(работает даже с запущенным pytyle) и fluxbox
16-06-2010, 14:04    Комментарии: 14

Легкая льтернатива Yakuake и Tilda: yeahconsoleyeahconsole, linux, shell, dotfiles

Наверное многие пользуются выпадающими консолями аля консоль из игры quake выезжающая с верху.
Самые популярные из них это Yakuake и Tilda, но у всех у них есть небольшие недостатки (хотя кто-то, возможно, онесёт их к достоинствам). Первая тянет за собой в зависимостях KDE (и если память не изменяет, в гноме или xfce вы её не запустите, по меньшей мере так было раньше), вторая же не очень быстро работает, особенно при "анимации" выпадения, а если ещё включить какой-нибудь компиз, то вываливаться эта консоль будет ужасно некрасиво.

Но всему есть достойная замена - yeahconsole. Эта маленькая и быстрая консоль конечно не так функциональна как её большие братья, но свои зачачи выполняет на отлично.
После запуска программы мы ничего не видим, зато по ControlAlt+y можно её вызвать. Конечно дефолтные чёрные пол экрана косоли не слишком красиво выгледят, да и клавиши вызова многим не привычны, к счастью всё это можно настроить. Чем собственно мы и займемся
Читать дальше
16-10-2008, 15:34    Комментарии: 5