LINUX.ORG.RU
ФорумTalks

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

 


2

1

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

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

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

***

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

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

***

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

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

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

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

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

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

★★

Последнее исправление: geekless (всего исправлений: 2)

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

А вот в классических вм, это уже будет сделать очень непросто.

Я более, чем уверен, что двухстраничным скриптом с wmctrl можно реализовать пентадактилевое hint-mode (aka f) для выбора любого окна. В любом умеющем EWMH WM.

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

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

Как тебе иконка, которая всегда болтается в конце, мешает переключаться по первым трём? Логику-то включи.

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

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

Не помню, как это работает в опенбоксе, но в квине, например, после сворачивания всех окон по Super-D, повторная активация любого их них возвращает всё как было.

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

И сразу же закройте обратно.

И кто-то тут ещё жаловался на аргументацию...

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

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

Всё равно с ним придётся контактировать. PDF откроешь встроенным просмотрщиком, компьютер выключить захочешь или ещё что-нибудь эдакое сделать.

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

Не помню, как это работает в опенбоксе, но в квине, например, после сворачивания всех окон по Super-D, повторная активация любого их них возвращает всё как было.

Со всеми частными случами?

  • Свернуть все окна.
  • Запустить новое приложение.
  • ???
geekless ★★
() автор топика
Ответ на: комментарий от geekless

Как тебе иконка, которая всегда болтается в конце, мешает переключаться по первым трём?

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

Ok
()

Я кстати для того, чтобы увидеть рабочий стол, пользуюсь alt+ctrl+→, а обратно ctrl+alt+←.

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

Отвлекает внимание хотя-бы.

Сочувствую. Проблемы с концентрацией внимания — это неприятно.

Ты так и не сказал, зачем тебе нужен этот десктоп?

Я говорю не о том, зачем он нужен, а как его правильно реализовать. Но НЕНУЖНО-эксперты, считающие свои привычки единственно верным способом работы, конечно тут же набигают...

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

Свернуть все окна. Запустить новое приложение. ???

IMHO, это должно настраиваться. Я бы, наверное, предпочёл, чтобы все окна возвращались в исходное положение, и поверх них открывалось новое.

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

Ну, у меня десктоп. C++ на нем — в минимуме. Все ОК.

И да, какой, на хрен, десктоп без ядра, libc и coreutils? Мастдайка? Или MacOS? Или бубунта/андроид?

Eddy_Em ☆☆☆☆☆
()
Последнее исправление: Eddy_Em (всего исправлений: 1)
Ответ на: комментарий от geekless

Я говорю не о том, зачем он нужен, а как его правильно реализовать.

Всё это очень ценно в свете того, что он, в общем-то, не нужен.

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

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

Плюсую, мешается очень, когда надо Alt+Tab'ать. А если вдруг надо за каким-то чертом увидеть раб. стол, то проще к кнопке справа внизу подвести мышь, а потмо убрать обратно её.

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

Я говорю не о том, зачем он нужен

Вот так и разрабатывается гном :3

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

+ Eddy_Em

Писать для десктопа означает для вас libc и ядро? У меня для вас плохие новости. Что там под капотом никого не волнует. Тема про десктоп или про поныть?

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

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

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

Писать для десктопа означает для вас libc и ядро?

Прежде всего. Без них ты — абсолютный ноль.

Что там под капотом никого не волнует

Это где-нибудь в мастдайке так. И то, сомневаюсь что-то.

Тема про десктоп или про поныть?

Про десктоп, конечно. А десктоп без C только в выключенном состоянии бывает.

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

В восьмёрке даже запуск программ (если кривые хаки не использовать) через этот полноэкранный свиток с горизонтальной прокруткой.

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

Мастдайка постабильней? Ой, не смеши мои тапочки! Даже арчик, несмотря на говнюка-поцтеринга, намного стабильней и надежней. А уж про удобство я и не говорю: в мастдайке работать — это примерно как ключом на 23 пытаться гайку на 12 закрутить.

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

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

На неё даже нажимать не надо, если все что нужно от стола — это посмотреть виджет погоды на нём.

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

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

Мог бы сказать «писать прикладные программы на сях — себя не уважать» и превратить тему в срач про ЯП. А так просто в лужу сел.

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

Не позорься. Ты — зашоренный старпер, такие люди вообще не должны обсуждать интерфейсы, выйдите вон из треда.

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

Ненужно-эксперты тоже не нужны.

Нет, ну правда, вот нафига?

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

Ты — зашоренный старпер

Да ладно тебе! Я — за прогресс! И всегда обеими руками и обоими ногами «за» голосую в плане апгрейда какой-нибудь унылой старой технологии...

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

>Прежде всего. Без них ты — абсолютный ноль.
AI в треде, все в биореактор!

>Это где-нибудь в мастдайке так. И то, сомневаюсь что-то.
Девелоперы десктопа в ядро не полезут.

>Про десктоп, конечно.
Т.е. чтобы

>рабочий стол
>Alt-Tab
>CSS
>GNOMEISHELL
надо лезть в ядро и libc? Прекращаем принимать упорин. Си-филия она такая, да.

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

Все часто-используемые программы помещаю на панель задач, если честно не помню когда последний раз запускал какую-то программу из метро.

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

Ты тоже свои альт-табы, цссы и тайлинг в libc пишешь? Если нет, то прекращай газифицировать.

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

Мог бы сказать «писать прикладные программы на сях — себя не уважать»

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

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

посмотреть виджет погоды на нём.

Погода должна быть в скратчпаде! Когда у меня был ион3, был скратчпад с конки, который показывал подробнейшую информацию о системе, погоду и прочее. Десктоп не нужен. Почему в современных ДЕ не реализуют скратчпады?

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

Мог бы сказать «писать прикладные программы на сях — себя не уважать» и превратить тему в срач про ЯП.

Да это уже не интересно. Все давно определились. Даже заранее известно, кто каким дерьмом и какого цвета в оппонентов кидаться будет. Пройденный этап. :)

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

Т.е. ты думаешь, что для разработки qt тебе не придется лезть в низкоуровневые иксовые библиотеки, а также — использовать кое-что более низкоуровневое?

А если ты про говноприложения на уровне «окошко с кнопочками», то для этого достаточно баша.

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

Если писать прикладные программы на си/крестах, получается гном или в крайнем случае кде.

Есть няшные JS, Python, C# и Java, нет, надо насиловать труп сегфолт-ориентированного программирования.

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

И всегда обеими руками и обоими ногами «за» голосую в плане апгрейда какой-нибудь унылой старой технологии

И поливаешь говном системд и пульсу. Вот уж действительно балабол.

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

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

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

Почему в современных ДЕ не реализуют скратчпады?

Самый оригинальный ответ на этот вопрос помнишь? Можно не цитировать? :)

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

Да, стареет ЛОР. Теряет элемент неожиданности.

Как в том анекдоте про анекдоты: «анекдот №654, всем ржать!»

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