LINUX.ORG.RU

Декораторы окон не нужны

 , ,


1

2

Обещанное продолжение макозакоса.

Итак, после долгих блужданий в поисках того самого идеального оконного менеджера я, вдохновившись этим скриншотом, и отчаявшись в попытках завести хоть какое-нибудь 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
Монитор трафика (вещь необходимая, т. к. трафик лимитный, а существующие апплеты pppd подхватывать не хотят):
#!/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
Ну вот вроде и всё. Извиняюсь за tl;dr, кратко изъясняться умею плохо. Критикуйте.

UPD:

Скриншот без окон.

Обоина (hi-res версии не делал, сорри).

>>> Просмотр (1366x768, 322 Kb)

★☆

Проверено: JB ()

Ответ на: комментарий от smilessss

Что ж неюзабельного? Ну да, ресайзить неудобно, но я этим занимаюсь достаточно редко. Пробую сейчас x-tile, кстати, вещь годная, но что-то она на обоях необновляемым контекстом срёт (Internet Explorer отдыхает :D), надо ещё разобраться, в чём проблема. Может, она с рабочим столом из Xfce конфликтует, поменяю на что-то, один хрен мне от него только отображалка обоев нужна.

MiniRoboDancer ★☆ ()
Ответ на: комментарий от MiniRoboDancer

Что ж неюзабельного?
1366x768

у тебя один док сьедает пол экрана

smilessss ★★★★★ ()
Ответ на: комментарий от smilessss

Это временный костыль. Я сделал его с отступом. потому что когда есть немаксимизированные касающиеся нижнего края окна, он не выползает (да и с максимизированными, по-моему, иногда бывает). Наверно, отступ в один пиксель чем-то левым сделать надо. В Xfce такое не настраивается, по крайней мере, хотя вообще где-то видел.

А вообще, мне экрана не жалко, я и на 176x220 сижу спокойно.

MiniRoboDancer ★☆ ()

Годный закос, но шрифты в файловом менеджере очень страшные. И что случилось с доком - почему по сторонам трапеции ступеньки??

blan4 ()
Ответ на: комментарий от blan4

Файловый менеджер под вайном же. Я тему в вайне никак поставить не могу, ну какие ещё шрифты^_^

Ступеньки не замечаю. Может, сглаживание ненароком отключил (если оно там есть вообще).

MiniRoboDancer ★☆ ()

Иконка фотошопа, чтобы gimp открывать?

GOTOSIN ()

Мои глаза. Закос получился отменным, такой же ужас.

a1batross ★★★★★ ()

Какой то хреновый закос получился.

bsdfun ★★★★★ ()

окно от границ оторвать почти нереально, я люблю трудности

тогда уж лучше в тренажерку/бассейн/етц

gray ★★★★★ ()

не нравится почти абсолютно всё.

actionless ★★★★★ ()

Ничего лучше чем FT Deep Dark не видел, одно это выравнивает все остальное вырвиглазие

arherion ()

Зачем такие промежутки между панелью и границами экрана? Это же ужасно смотрится, на мой взгляд!

alozovskoy ★★★★★ ()
Ответ на: комментарий от alozovskoy

Ты имеешь в виду, что иконки на заднем краю дока стоят? Так для пущего соответствия же. Вообще, можно было и дальше поставить.

MiniRoboDancer ★☆ ()
Ответ на: комментарий от MiniRoboDancer

Нет, я про расстояние которое изобразил "-":

|----------ДОК----------|

Не лучше ли когда он до краев экрана?

alozovskoy ★★★★★ ()
Ответ на: комментарий от MiniRoboDancer

А зачем тебе пустые участки экрана? Не спорю, может так нравится, но выглядит так, будто окна не могут «залезть» под док. На фоне всеобщих попыток использования каждого пикселя это выглядит странно.

alozovskoy ★★★★★ ()

Убрать декоратор, но оставить толстый док и панельку?

Скриншот без окон.

А что за Error?

Deleted ()

Меню окон тоже не нужны. Панели инструментов тоже не нужны. Рамки окон тем более. Чисто гаррячие кнопы! Почувствуй себя Ъ на Маке!

Pakostnik ★★★ ()
Ответ на: комментарий от Deleted

Декоратор я убрал, потому что панель нечем было занять, зачем повторять сущности?

А что за Error?

Скрипту не нравится тайтл десктопа. Надо пилить ещё. Впрочем, на фига, я окна никогда все не сворачиваю...

MiniRoboDancer ★☆ ()
Ответ на: комментарий от Pakostnik

Чисто гаррячие кнопы - это на телефоне. На десктопе не нужно, и так место девать некуда.

Снёс-таки криво поставленный Compiz, поставил нормально, со всеми плагинами, настроил Cover Flow, превьюшки окон, ещё какую-то лабуду - кррррясотяяяяя! Если ещё откопаю где-то мифический плагин со звуками (который вроде как и есть, но его нигде нет), радости вообще полные штаны будут.

MiniRoboDancer ★☆ ()
Ответ на: комментарий от MiniRoboDancer

зачем повторять сущности?

А зачем они вообще нужны? У меня нет панели, и никаких неудобств не испытываю.

Окна не сворачиваю (распределены по 9 рабочим столам), время (и все подобное) по хоткею (notify-send -t 1000 «`date`»), ибо зачем на него постоянно смотреть. Все приложения запускаются по хоткеям или gmrun. А если вдруг потерял окно (чего пока еще не случалось), то есть GridSelect.

Deleted ()
Ответ на: комментарий от Deleted

А трей куда дел без панели?

Самое ходовое и я через Run запускаю. В доке - редкосамозапускаемое, а самое ненужное и так в меню собирается. Вешать на каждую прогу хоткей не вижу смысла - во-первых, их ещё запомнить надо, после пары десятков более-менее логичные комбинации заканчиваются, кроме того, каждый глобальный хоткей - потенциальный конфликт с хоткеем какого-либо приложения, нечего ими систему загаживать попусту.

MiniRoboDancer ★☆ ()
Ответ на: комментарий от MiniRoboDancer

потенциальный конфликт с хоткеем какого-либо приложения

Win + whatever, пока конфликтов не было.

А трей куда дел без панели?

А я им не пользуюсь.

Deleted ()
Ответ на: комментарий от oneliner

Точно, пофиксил. Впрочем, лучше, когда трафика кажется больше. На всякий пожарный.

cast JB

MiniRoboDancer ★☆ ()
Ответ на: комментарий от Deleted

Win + whatever

Одного Win на всё не хватит. Можно его комбинировать с другими модификаторами, но это уже изврат.

А я им не пользуюсь.

А если некая прога туда без спросу свернётся, что ты будешь делать?

MiniRoboDancer ★☆ ()

таки нужны, когда несколько окон лежат друг на друге, то они сливаются в причудливый артефакт )

megabaks ★★★★ ()
Ответ на: комментарий от MiniRoboDancer

Одного Win на всё не хватит.

Если брать только те клавиши, которые можно нажимать одной рукой — это уже 15. Часто ли ты используешь что-то больше 15 приложений?

Можно его комбинировать с другими модификаторами, но это уже изврат.

Если с контролом на месте капса, то никакого изврата.

А если некая прога туда без спросу свернётся, что ты будешь делать?
некая

Так не бывает. Но если все-таки это произойдет, то я запущу stalonetray.

Deleted ()
Ответ на: комментарий от Deleted

Часто ли ты используешь что-то больше 15 приложений?

А для остальных есть док. И потом, хоткеи ведь не только для приложений.

Если с контролом на месте капса, то никакого изврата.

КАПС НУЖЕН, КАПСОХЕЙТЕРЫ, КОТОРЫЕ ДАЖЕ КОНСТАНТЫ ПИШУТ В НИЖНЕМ РЕГИСТРЕ, НЕ НУЖНЫ.

Так не бывает.

Под линуксом - редко, но таки бывает.

MiniRoboDancer ★☆ ()

Похоже на говно из-за схожести с яблоговном.

Декораторы окон не нужны

Да.

Debasher ★★★★★ ()

честно, блевать тянет от разного рода яблозакосы? зачем?

essir ()
Ответ на: комментарий от smilessss

неюзабельно

почему это неюзабельно!?
более чем, разве что ещё убрать все кнопки да меню...

megabaks ★★★★ ()
Ответ на: комментарий от smilessss

а, я думал ты про отсутствие декора...
а с размерами да, много места занимают

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

отсутствие декора.

там есть его задатки :3
в панели контролы
я вообще запилил себе две панели по 16 пикселей и норм :3

smilessss ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.