LINUX.ORG.RU
ФорумTalks

Правильная реализация рабочего стола

 


2

1

Здраствуйте, мои дорогие любители тыкать мышью в иконки. Сегодня мы поговорим именно об этом изобретении корпорации зла — о рабочем столе.

Когда-то давно, когда в морях и океанах еще резвились плезиозавры, а Торвальдс был простым финским студентом, инженерам Microsoft вдруг взбрело в голову задаться вопросом: вот есть у нас такие замечательные окна, а то, что под окнами, — что же это? Не придумав ничего лучшего, они засунули туда отображение содержимого первого попавшегося каталога и назвали это рабочим столом. Но поскольку стол не был для WM-а полноценным приложением и всегда был снизу, вскоре выяснилось невероятное: оказывается, этим столом немного неудобно пользоваться! Кто бы мог подумать. («Он же закрыт окнами! Как мы сразу-то не догадались!») После этого в качестве костыля на свет божий вылупилась кнопка «Свернуть все окна». Так всё это и ушло в релиз. Нормальные люди посмотрели на это торжество дизайна над здравым смыслом, да и забыли.

Спустя некоторое время плезиозавры вымерли, Торвальдс уехал обживать Олимп, а наши братья меньшие обрели разум и начали строить Gnome. Как и полагается меньшим, начали они с копирования того, что было у старших. Скопировали ярлычки, скопировали реестр, скопировали рабочий стол, сокопировали и ту самую кнопочку. Шли месяцы, годы, медленно вращалась Галактика, рождались и умирали дистрибутивы, на ЛОРе производился метан. В мире царила стабильность.

***

После более чем десяти лет титанической, почти непосильной работы мысли, сумрачные гении из Microsoft вдруг осознали невероятное: рабочий стол — он ведь тоже окно! Это замечательное открытие конечно не могло не найти практического применения, и вот в Семерке мы смогли наконец увидеть нормальный способ переключения на рабочий стол и обратно — через Alt-Tab. В мире что-то пошатнулось.

В стане строителей каменных статуй Гномов шок от увиденного был столь велик, что оправиться от него они так и не смогли. Обессиливая и изнемогая в попытках осмыслить произошедшее, наши меньшие братья выпилили сначала заветную кнопочку, потом выпилили панель, на которой она лежала, выпили следом рабочий стол, выпилили и запилили в другое место иконки, выпилили половину файлового менеджера, измазались в CSS и случайно еще раз переизобрели реестр. Но всё было тщетно, гармонии с миром и природой больше не было. На руинах своего полуразрушенного обиталища сходящие с ума гномеры выбили в отчаянии надпись GNOMEISHELL, подводя итог своим злоключениям, после чего окончательно провалились в амфетаминовую дыру. Буква I в надписи, кстати, была выбита не чётко, многие не могут её правильно прочитать и видят там дефис.

***

Короче. Пока там разлагаются трупы последних из могикан, я запатчил в сорцах openbox возможность привязать отдельные окна в списке переключателя окон к фиксированным позициям. По типу «это окно всегда будет последним в списке, а вон то — предпоследним». Это даст возможность иметь окна, подобные рабочему столу в семерке — с одной строны, они всегда под рукой, а с другой, не мешаются в голове списка.

Для полного счастья само окно должно обладать следующим поведением: при получении фокуса выставлять себе стейт above и выплывать поверх всех окон, а при потере фокуса выставлять стейт below (или desktop) и уплывать вниз с глаз долой. Тут возможны три варианта, как это сделать:

  • Допатчить в openbox возможность динамически назначать окнам свойства в зависимости от значения других свойств и затем использовать фичу через его конфиг.
  • Использовать какой-нибудь наколеночный скрипт, который делает то же самое.
  • Запатчить фичу непосредственно в программу, окна которой мы будем юзать этим способом. (pcmanfm, spacefm, какие-нибудь тулзы для показа полноэкранных апплетов и т.п.)

Мне все три варианта нравятся, если честно. Первый — гибкостью, последний — искоробочностью результата, а средний — легкой ноткой безумия. Не знаю еще, какой из них буду делать.

Товарищи, скачущие с DE на DE, я вам хочу сказать: хватит жрать кактус. Изучите уже сишечку и займитесь каким-нибудь делом.

Пора уже осознать, что никто нам не поможет, кроме нас самих.

Когда я читаю твои околобеллетристические темы, у меня возникает стойкая ассоциация с произведениями Толстого.

Пожалуйста, не пиши так больше.

Kindly_Cat ()

Изучите уже сишечку

И станет пучком говнокодеров больше. Я лучше продолжу юзать и донейтить годные проекты.

Skeletal ★★★ ()

Зачем писать ДЕ, если его можно собрать из уже имеющихся кусков. Рабочий стол в любом виде не нужен, а если и нужен, то для размещения какой-нибудь обоины. Хоткеи+run утилиты решают.

daemonpnz ★★★★★ ()

Мне нравится концепция табов в тайлинговых вм. А еще, я со времен ion3 люто бешено теку от скратчпадов. Просто таки мечтаю о них. Это просто удивительно, трею миллиарды лет и за это время так никто и не додумался создать механизм, чтобы любое приложение можно в него было, во-первых, засунуть, а во-вторых — высунуть с помощью хоткеи. Изобретают какие-то доки, блин, гномощели.. Чем эти люди занимаются? Что хотят? У них вообще есть какой-то план идеального ДЕ? Или они делают все по накурке наитию — о, наверное это будет круто, всем понравится?

Ok ()

Слушай, а прикрути к открытой коробке тайлинг и панельку а-ля awesome. Мир в моем лице тебя не забудет.

З.Ы. Разработчики открытой коробки заявляли, что тайлинга в нем не будет, ибо не нужно.

З.З.Ы. Знаю про воркэраунды типа pytyle, но это костыли, имхо.

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

Мне нравится концепция табов в тайлинговых вм.

А что из себя представляет эта концепция?

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

Это просто удивительно, трею миллиарды лет и за это время так никто и не додумался создать механизм, чтобы любое приложение можно в него было, во-первых, засунуть, а во-вторых — высунуть с помощью хоткеи

icewm?

geekless ★★ ()

когда уже ктонибудь дойдёт до того, что к ДЕ можно привыкнуть. А вот то что нету панели управления одинаковой - это не Ъ.

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

когда уже ктонибудь дойдёт до того, что можно привыкнуть спать на гвоздях

fxd

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

чем тебе не нравиться идея единой панели управления как в оффтопике?

visual ★★★ ()
Последнее исправление: visual (всего исправлений: 2)
Ответ на: комментарий от visual

Заметь, что про панель управления я вообще ни слова не говорил.

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

А что из себя представляет эта концепция?

Вот здесь прочитай в секции «2.2. Changing the container layout». Если кратко, текущее окно в максимайзе, заголовки расположены в одну линию и удобный хоткей для переключения туда-сюда.

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

Это сто лет как реализуется при помощи панель задач + любой WM. В чем инновация?

geekless ★★ ()

А мне понравилось, написано интересно и захватывающе...

сумрачные гении из Microsoft вдруг осознали невероятное: рабочий стол — он ведь тоже окно! Это замечательное открытие конечно не могло не найти практического применения, и вот в Семерке мы смогли наконец увидеть нормальный способ переключения на рабочий стол и обратно — через Alt-Tab.

Помнится в кедах3 берил такие фокусы делал раньше шин7, хотя могу и запамятовать...

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

просто за неё отвечает в оффтопике тот же процесс что и за рабочий стол

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

icewm?

icewm я не видел, на самом деле. Что мне хочется от трея. Треепригодные приложения делятся для меня на несколько типов:

1. golnendict, foobar — их иконки в трее я видеть не хочу, но хочу запихнуть их в скратчпад и вызывать по хоткеям, никаких нотификаций от них мне не надо;

2. gajim, skype — их я видеть не хочу, хочу чтобы они были в скратчпадах, но при новых сообщениях были нотификации в трее;

2. network-manager, управлялка громкостью — их я хочу видеть всегда;

3. nvidia-settings, dropbox и прочая фигня, которую я видеть не хочу, хоткеями вызывать не хочу, но хочу, в случае чего, иметь к ним доступ;

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

Это сто лет как реализуется при помощи панель задач + любой WM. В чем инновация?

В изкоробочности. Я не говорил, что это инновация, просто удобно. А инновация, это скратчпады.

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

Так и WM + панель задач — уже лет надцать как изкоробочность. Если нужны все окна всегда в развернутом виде, это в openbox делается вписыванием одной строки в конфиг.

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

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

Наверное, правильно так?

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

Трей в icewm — это угол панели задач, куда можно свернуть и/или закрепить любое окно.

А вызвать с помощью хоткея?

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

Хз, я ж и сам ею не пользуюсь. Но если что, всегда можно прикрутить wmctrl. :-D

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

ion3

xmonad идиален, заисключением одного долгого бага:) http://code.google.com/p/xmonad/issues/detail?id=177

бешено теку от скратчпадов

Да пожалуста: http://pastebin.com/5nSmDYRe :), только оно там для консольных прог сделано, но если надо сможешь переделать.

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

Так и WM + панель задач — уже лет надцать как изкоробочность. Если нужны все окна всегда в развернутом виде, это в openbox делается вписыванием одной строки в конфиг.

Ойпенбокс это уже почти темная сторона Силы, я скорее имел ввиду всякие гномы, там. Как-то нужно разворачивать на весь экран. Сделать удобный хоткей переключения. Я просто имел ввиду, что там это концепция дефолтная, а в других средах надо дотачивать.

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

Хз, я ж и сам ею не пользуюсь.

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

Но если что, всегда можно прикрутить wmctrl

*sigh*

Ok ()

Почему ты все свои опусы на лоре не обёртываешь в идеалный код для ДЕ?

J ★★★★ ()

и вот в Семерке мы смогли наконец увидеть нормальный способ переключения на рабочий стол и обратно — через Alt-Tab. В мире что-то пошатнулось.

Ненавижу эту фичу, дико раздражает в винде. И, BTW, они её не изобрели, это уже сто лет как было в макоси и некоторых линуксовых окружениях.

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

Ненавижу эту фичу, дико раздражает в винде.

Я кстати, тоже. Даже искал как ее отключить в юнити, оказывается отключение запилили только в 12.10. Загромождает альт-таб, при том, что у меня на рабочем столе ничего нет, зачем оно мне постоянно нужно — непонятно. Может это для конкисексуалов? :3

Ok ()

Да ладно, гноморазрабы предвосхитили восьмёрку, где классические программы будут сосуществовать с полуторозадачным окружением с жабаскриптом во все щели.

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

Если концепция рабочего стола юзеру не нужна, его должно быть можно просто выключить галкой в настройках. А если нужна, то единственный разумный споосб доступа к нему — через штатные средства переключения окон.

geekless ★★ ()
Последнее исправление: geekless (всего исправлений: 2)
Ответ на: комментарий от J

Почему ты все свои опусы на лоре не обёртываешь в идеалный код для ДЕ?

Потому что не верю в ДЕ?

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

Нажать на кнопку в углу экрана проще, чем жмакать альттаб. А лишний пункт в альттабе — мерзость. Рабочий стол — не окно.

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

Потому что не верю в ДЕ?

Но рассуждаешь об их несовершенстве с удовольствием, так?

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

Нажать на кнопку в углу экрана проще, чем жмакать альттаб.

Да пох ваще. Суть в том, что рабочий стол поднимается, а не торчит всегда снизу.

А лишний пункт в альттабе — мерзость.

Очень аргументировано.

Рабочий стол — не окно.

Кислород не используется для дыхания. Земля не вращается вокруг Солнца. Рабочий стол — не окно.

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

А что за скратчпады?

Ну вот есть у тебя deadbeef. У него нет:

1. возможности запускаться свернутым, поэтому после каждого старта тебе его нужно вручную закрывать;

3. хоткея show/hide из трея.

Если ты убунтенок, то тебе остается только плакать ночью в подушку и писать тп-посты на ЛОР о несовершенстве мира и что кругом одно говно. НО! Если ты tiling-бог, ты прописываешь в конфиге одну строчку и дедбиф запускается в своем окне, которое показывается/скрывается по произвольному хоткею :3

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

Ты прописываешь в конфиге одну строчку

И этот человек что-то про искоробочность вздыхал...

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

Это сто лет как реализуется при помощи панель задач + любой WM. В чем инновация?

В i3-то? Оно же древовидное с древнего релиза, таболэйаут вкладывается во что угодно.

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

А что за скратчпады?

tilda для любого окна или группы окон (пример: чятики).

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

Кислород не используется для дыхания. Земля не вращается вокруг Солнца. Рабочий стол — не окно.

То что технически рабочий стол — окно, не значит, что таким образом он будет восприниматься пользователем. Его нельзя двигать по экрану, его нельзя закрыть, его нельзя «восстановить».

Очень аргументировано.

На панели задач три окна, в альт-табе 4 пункта, если с первого раза не попал, приходится делать лишнее нажатие.

Да пох ваще. Суть в том, что рабочий стол поднимается, а не торчит всегда снизу.

Кнопка в углу экрана точно также может использоваться для поднятия рабстола.

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

Древовидное не звучало как аргумент. Говори он про древовидность, было бы логичнее.

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

А лишний пункт в альттабе — мерзость.
Очень аргументировано.

Не, серьезно, это так. Эффективно работать с окнами на одном воркспейсе можно, только если их не больше трех. Если больше — то слишком много усилий тратится на переключение. А десктоп в альттабе убивает одно окно не давая ничего в замен. Нет, ну серьезно, зачем на него переключаться? И чем не устраивает Super-d?

Кстати, вот еще аргумент по поводу tabbed в tiling против него же в других wm — уверен, в тайлингвм для каждого окна можно назначить цифру, по которой переключаться с модификатором. А вот в классических вм, это уже будет сделать очень непросто.

Ok ()

Автор, пиши еще! Сюжет бредовый, но стиль написания мне понравился.

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

Может это для конкисексуалов? :3

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

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

единственный разумный споосб доступа к нему — через штатные средства переключения окон.

Откройте для себя Super-D.

Axon ★★★★★ ()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от PolarFox

Кнопка в углу экрана точно также может использоваться для поднятия рабстола.

Может. Используй. Но только если только эта фича именно так и реализуется — поднятием. Если же она реализуется так, как на обезьянничали в спеке на netwm — скрытием окон — это черевато потерей контекста.

То что технически рабочий стол — окно, не значит, что таким образом он будет восприниматься пользователем. Его нельзя двигать по экрану, его нельзя закрыть, его нельзя «восстановить».

Пользователем очень хорошо воспринимается идея «показать рабочий стол/убрать рабочий стол». И пользователь недоумевает, почему когда он тыкает обратно в какое-нибудь окно, происходит не «убрать рабочий стол», а какая-то херня.

На панели задач три окна, в альт-табе 4 пункта, если с первого раза не попал, приходится делать лишнее нажатие.

Куда ты с первого раза не попал?

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

В отличии от гнома, в 8ке можно просто не использовать это окружение и ее программы.

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