Здраствуйте, мои дорогие любители тыкать мышью в иконки. Сегодня мы поговорим именно об этом изобретении корпорации зла — о рабочем столе.
Когда-то давно, когда в морях и океанах еще резвились плезиозавры, а Торвальдс был простым финским студентом, инженерам Microsoft вдруг взбрело в голову задаться вопросом: вот есть у нас такие замечательные окна, а то, что под окнами, — что же это? Не придумав ничего лучшего, они засунули туда отображение содержимого первого попавшегося каталога и назвали это рабочим столом. Но поскольку стол не был для WM-а полноценным приложением и всегда был снизу, вскоре выяснилось невероятное: оказывается, этим столом немного неудобно пользоваться! Кто бы мог подумать. («Он же закрыт окнами! Как мы сразу-то не догадались!») После этого в качестве костыля на свет божий вылупилась кнопка «Свернуть все окна». Так всё это и ушло в релиз. Нормальные люди посмотрели на это торжество дизайна над здравым смыслом, да и забыли.
Спустя некоторое время плезиозавры вымерли, Торвальдс уехал обживать Олимп, а наши братья меньшие обрели разум и начали строить Gnome. Как и полагается меньшим, начали они с копирования того, что было у старших. Скопировали ярлычки, скопировали реестр, скопировали рабочий стол, сокопировали и ту самую кнопочку. Шли месяцы, годы, медленно вращалась Галактика, рождались и умирали дистрибутивы, на ЛОРе производился метан. В мире царила стабильность.
***
После более чем десяти лет титанической, почти непосильной работы мысли, сумрачные гении из Microsoft вдруг осознали невероятное: рабочий стол — он ведь тоже окно! Это замечательное открытие конечно не могло не найти практического применения, и вот в Семерке мы смогли наконец увидеть нормальный способ переключения на рабочий стол и обратно — через Alt-Tab. В мире что-то пошатнулось.
В стане строителей каменных статуй Гномов шок от увиденного был столь велик, что оправиться от него они так и не смогли. Обессиливая и изнемогая в попытках осмыслить произошедшее, наши меньшие братья выпилили сначала заветную кнопочку, потом выпилили панель, на которой она лежала, выпили следом рабочий стол, выпилили и запилили в другое место иконки, выпилили половину файлового менеджера, измазались в CSS и случайно еще раз переизобрели реестр. Но всё было тщетно, гармонии с миром и природой больше не было. На руинах своего полуразрушенного обиталища сходящие с ума гномеры выбили в отчаянии надпись GNOMEISHELL, подводя итог своим злоключениям, после чего окончательно провалились в амфетаминовую дыру. Буква I в надписи, кстати, была выбита не чётко, многие не могут её правильно прочитать и видят там дефис.
***
Короче. Пока там разлагаются трупы последних из могикан, я запатчил в сорцах openbox возможность привязать отдельные окна в списке переключателя окон к фиксированным позициям. По типу «это окно всегда будет последним в списке, а вон то — предпоследним». Это даст возможность иметь окна, подобные рабочему столу в семерке — с одной строны, они всегда под рукой, а с другой, не мешаются в голове списка.
Для полного счастья само окно должно обладать следующим поведением: при получении фокуса выставлять себе стейт above и выплывать поверх всех окон, а при потере фокуса выставлять стейт below (или desktop) и уплывать вниз с глаз долой. Тут возможны три варианта, как это сделать:
- Допатчить в openbox возможность динамически назначать окнам свойства в зависимости от значения других свойств и затем использовать фичу через его конфиг.
- Использовать какой-нибудь наколеночный скрипт, который делает то же самое.
- Запатчить фичу непосредственно в программу, окна которой мы будем юзать этим способом. (pcmanfm, spacefm, какие-нибудь тулзы для показа полноэкранных апплетов и т.п.)
Мне все три варианта нравятся, если честно. Первый — гибкостью, последний — искоробочностью результата, а средний — легкой ноткой безумия. Не знаю еще, какой из них буду делать.
Товарищи, скачущие с DE на DE, я вам хочу сказать: хватит жрать кактус. Изучите уже сишечку и займитесь каким-нибудь делом.
Пора уже осознать, что никто нам не поможет, кроме нас самих.