Оригинал
С самого момента своего появления в рабочем пространстве Plasma в KDE концепция комнат многих вводила в заблуждение. Ясности ради не так давно я в своем блоге написал пост с личными примерами использования комнат. Неожиданно для меня самого этот пост стал самым популярным среди всех остальных в моем блоге. Это навело меня на мысль, что многие до сих пор не знают, для чего нужны эти самые Комнаты.
Раньше я часто сравнивал Комнаты с "виртуальными рабочими столами, но не для окон, а для виджетов". Однако, с выходом KDE SC 4.6 они вышли на новый уровень - теперь и окна тоже ассоциируются с Комнатами. Поэтому я решил написать пост о текущем положении дел, однако кое-кто меня опередил. Несколько дней назад Джейсон Лим Ен Хо (Jason Lim Yuen Hoe) написал очень хорошую статью о Комнатах, в которой были затронуты почти все моменты, о которых я хотел сказать сам. Я решил, что его работа довольно точно отражает мои мысли по этому поводу, и если вы еще не читали его, то вам стоит это сделать.
В этой же статье я хочу рассказать о том, как, я надеюсь, Комнаты повлияют на мою организацию рабочего места. Она основана на моем собственном опыте использования Комнат и на том, что я прочел о них. Отдельно отмечу, что все написанное мною может не совпадать с видением команды разработчиков Plasma. В случае недопонимания, было бы неплохо увидеть точку зрения разработчиков в комментариях.
Я также надеюсь, что после прочтения этой статьи вы поймете, что такое Комнаты и задумаетесь о том, как их можно использовать в повседневной работе. Я также постараюсь ответить на такой часто задаваемый вопрос как "Почему я должен использовать Комнаты вместо Виртуальных рабочих столов?" и объяснить, когда и что уместнее использовать.
Чем же полезны Комнаты?
Давайте начнем с самого начала и зададимся вопросом "Зачем нам комнаты?". Многие из вас уже давно знакомы с понятием виртуальных рабочих столов и используют их так же, как и комнаты, что только запутывает нас. Поэтому я построю своё объяснение на предположении, что виртуальных рабочих столов никогда не существовало. Правда, во время моих размышлений вам часто будет казаться, что это и есть то, для чего были придуманы виртуальные рабочие столы, но постарайтесь отбросить такие мысли - мы еще вернемся к этому моменту позже.
В целях понимания - давайте пока просто забудем о виртуальных рабочих столах. Раз! И нету!
Проблема
Большинство из нас пользуются компьютерами в разных целях: для игр, для работы с документами, для графики и веб-разработки. Уверен, что вы и сами знаете много примеров.
Для некоторых задач Вам нужно только одно приложение. Все просто: если вы хотите поиграть, то запускаете игру и закрываете только тогда, когда решили заняться чем-нибудь другим.
Если одно приложение соответствует одной задаче, то всё просто. Для переключения требуется всего лишь выбрать нужное окно на панели задач или запустить новое приложение. Но большинство задач не ограничивается одним приложением. Тут-то и начинается путаница. Для переключения мы используем панель задач, но на ней также отображаются не нужные нам в данный момент задачи. Ниже есть скриншот с примером такой организации. Я начал писать отчет, потом решил передохнуть и заняться разработкой приложения с таблицами. Всего две задачи, но на панели уже беспорядок.
Перегруженное рабочее пространство (Я видел и хуже)
Так почему бы нам не закрыть все эти неиспользуемые окна? Ну, большинство так и поступает, но ведь вам приходится вручную открывать и закрывать приложения при каждом переключении на новую задачу. К тому же, приходится заново открывать файлы с которыми вы работали и иногда настраивать положения окон. В итоге переключение между задачами громоздко и требует времени.
Несколько слов об управлении сессиями
Некоторые приложения поддерживают сессии, и это отлично. Благодаря сессиями вы просто сохраняете определенное состояние программы и возвращаетесь к нему позднее. Например, я открываю код в Kate и сохраняю сессию. Когда появляется вдохновение, достаточно запустить Kate, открыть мою сессию с кодом и вуаля: приложение восстановило свое состояние с прошлого раза, все мои файлы открылись.
В Рабочем пространстве KDE сессии поддерживаются с незапамятных времен, но они всегда были довольно примитивными. По умолчанию, восстановливается предыдущая сессия (то есть состояние рабочего стола в момента выхода), но можно еще восстановить сессию, которую вы сохраняли вручную. Однако, восстановить можно только одну сессию (ошибка 62157) , то есть сессий для кодинга и сессий для обработки видео и т.д. отдельно сохранить не получиться.
Как комнаты влияют на рабочий процесс
Обычно мы запускаем приложения, переключаясь между ними с помощью панели задач. Я уже говорил, что это работает, если одно приложение предназначено для одной задачи.
Для задач, требующих несколько приложений, мы, скорее, нуждаемся в новой "сессии" нежели в запуске отдельных приложений. Один клик, и все готово -- приложения запущены с нужными файлами, окна расположены в нужном нам порядке, все отвлекающее убрано. Переключение между задачами должно стать переключением "сессий".
Хотите покодить? Запустить "сессию" Программирование
Так вот, то, что я описываю -- мои надежды на то, что Комнаты в Рабочем пространстве KDE будут такими. Но что, если приложения в пределах одной задачи отличаются разнообразием -- ну например, вы заранее не знаете, в какую игру захотите поиграть в Игровой комнате. Тогда вообще не надо восстанавливать окна.
Суть концепии комнат в том, что вы больше не ограничены окнами. У вас есть все рабочее пространство. Наверное, нет смысла восстанавливать запущенные приложения в Игровой комнате, однако целесообразнее добавить ярлыки любимых игр на рабочий стол. Апплет запуска приложений будет содержать игровые программы, контакт лист покажет сначала друзей и соперников по играм, затем всех остальных и т.д.
Как бы выглядела Игровая комната с ярлыками для 13 игр
Короче, комнаты созданы для концентрации на одной задаче. Это не способ организации окон - если вы переключаетесь между двумя окнами, значит, они принадлежат одной и той же задаче, либо вы делаете несколько дел одновременно. К тому же, с комнатами переключение между задачами становится еще легче. Нужно просто один раз настроить комнату. Вернувшись в нее, вы вернетесь в предыдущее состояние и тут же начнете работать.
Комнаты vs. виртуальные рабочие столы
Надеюсь, я убедил большинство из вас, зачем нам требуются комнаты. Возникает вопрос: "Уже есть виртуальные рабочие столы. Чем комнаты лучше?".
Раньше я говорил о том, как быстро рабочее пространство засоряется, если для нескольких задач запущено множество окон. Попыток решить эту проблему предпринималось много, например, группировкой вкладок на панели задач. Виртуальные рабочие столы позволяют вам скомпоновать окна удобным способом, показывая нужную группу окон. На первый взгляд, это схоже с функционалом комнат, но мне кажется, они принципиально отличаются.
Прежде всего, я понимаю виртуальные рабочие столы как способ группировки окон и ничего более. Это полезно, если вы работаете с множеством окон одновременно. С другой стороны, комнаты это скорее менеджер сессий. Вы не только можете сохранять и восстанавливать состояние рабочего стола (в некоторой степени это возможно и с виртуальными рабочими столами и нынешным менеджером сессий в Рабочем пространсве KDE), но и "останавливать" комнаты, если они требуют много вычислительных ресурсов.
Не используйте требовательные к ресурсам комнаты, если в данный момент они не требуются
У меня никогда толком не получалось использовать виртуальные рабочие столы для разделения задач, хотя я знаю, что многие так делают. Продолжу свой пример с составлением отчета и программированием. Конечно, можно переместить все окна, связанные с кодингом на другой рабочий стол. Но что насчет плейера? Я хочу слушать музыку работая над отчетом и занимаясь программированием. Так к какому рабочему столу отнести плейер? Обычно я размещал его на отдельном виртуальном рабочем столе.
Концепция комнат позволит вам связать определенное окно с несколькими из них (т.е.с несколькими комнатами - прим.перев.). Все, что вам нужно может быть сосредочено только в одной комнате. Значит, переключаться туда-сюда между комнатами не придется (пока не потребуется переключиться на другую задачу). В примере про плейер я соединил его и с комнатой для кодинга, и с комнатой для составления отчета.
У виртуальных рабочих столов есть некоторые ограничения. Становится понятно, что эти столы появились по совершенно другой причине, нежели комнаты. В ранних версиях Plasma было фиксированное количество столов, которое можно было менять, но в последних версиях их можно добавлять и убирать "на лету". Теперь количество виртуальных рабочих столов просто увеличиваться или уменьшаться на 1. Звучит неплохо, пока не выясняется, что эта функция всегда удаляет последний виртуальный рабочий стол. Наверное, можно этого избежать, но, насколько я знаю, это непросто.
Наконец (я уже это говорил) -- комнаты созданы не только ради управления окнами. В KDE 4.6 переход из комнаты в комнату затрагивает только рабочий стол и окна, но в следующих версиях все больше приложений будут учитывать свою принадлежность к комнатам. В таких приложениях могут быть настроены приоритеты информации для отображения в текущей комнате. Вот несколько вариантов такой настройки по комнатам:
Избранное в апплете запуска
Записи в Точках входа на боковой панели Dolphin и в меню открыть/сохранить
Отображение результатов поиска (сначала относящиеся к комнате файлы и папки)
Закладки в браузере
Контакт-лист в Kopete
Новости в AkregatorНасколько комнаты интуитивно понятны?
Некоторые утверждают, что комнаты трудно понять, их реализация неинтуитивна. В некоторой степени я разделяю это мнение, учитывая, что комнаты сейчас все еще в стадии разработки. И все же я верю, что концепция комнат (по крайней мере, описанная здесь) в целом намного понятнее, нежели концепция виртуальных рабочих столов.
Я встречал много новых пользователей Linux (я говорю "Linux" в самом широком смысле), спрашивающих "А что это за 2/4 квадратика на панели?" (имеется ввиду виджет Plasma "Переключение рабочих столов".- прим.перев.). Узнав, что это виртуальные рабочие столы, новые пользователи запутывались еще больше, пытаясь понять что это такое. По моему опыту, большинство даже после объяснений не смогли понять, зачем они нужны.
Очень помогают такие эффекты, как знаменитый куб и сетка рабочих столов, которые помогают наглядно показать чем являются рабочие столы и что происходит с окнами при переключении с одного стола на другой.
Если меня спросят, что такое комнаты, то мне бы хотелось, чтобы наш диалог был примерно таким:
Я: Чем занимаешься?
Товарищ: Анализирую данные для учебы
Я: Значит, это твоя комната будет называться "Анализ данных" (Следуют объяснения, как переименовать комнату).Когда ты закончишь, ничего не закрывай, просто переходи в новую комнату.
Товарищ: Я создал новую комнату и начал писать отчет.Это комната "Составление отчета"?
Я: Именно!
Товарищ: Эх! Для отчета у меня все еще маловато идей. Вернусь к анализу.Куда я положил этот файл...
Я: Да не ищи, просто переключись на комнату анализа данных.
Товарищ: :)
Виртуальные рабочие столы не нужны?
Я так не думаю. Все равно найдутся люди, которым потребуется сгруппировать окна в пределах одной комнаты, а для этого и предназначены виртуальные рабочие столы.
Здесь я согласен с Джейсоном (автором статьи, приведенной в самом начале) -- если вы используете виртуальные рабочие столы, чтобы отделить окна для разных задач, то в будущем потребуется просто переключать комнаты в пределах одного рабочего стола. Но, если требуется группировка окон в пределах одной комнаты, используйте виртуальные рабочие столы. И наконец, если вы выполняете одну задачу, то одной комнаты вам хватит, а виртуальные рабочие столы помогут с организацией окон.
Есть возможность связать комнаты с виртуальными рабочими столами (в KDE 4.6 это все еще называется "Отдельный набор виджетов для каждого рабочего стола"). Лично я думаю, что смешение двух концепций (т.е. комнат и виртуальных рабочих столов - прим.перев.) вносит путаницу. Единственное, на мой взгляд, преимущество это упрощение переключения комнат и перемещение окон между ними теми же средствами, которые применяются для переключения виртуальных рабочих столов (то есть горячими клавишами и специальным плазмоидом "Комнаты" - прим.перев.). Думаю, с развитием концепции комнат этот функционал станет ненужным.
Пара слов напоследок
В этой заметке я изложил свое представление о комнатах и пожелания по их использованию. Хочется напомнить, что все написанное здесь неоффициально, это просто мое мнение. Однако, это мнение сложилось о текущем состоянии комнат в KDE и прочитанного мною о них, так что, надеюсь, описание недалеко от истины.
Я все еще экспериментирую. Но, думаю, нужно время для полного перехода на тот способ работы, который я описал здесь. Мне нравятся комнаты в KDE 4.6, и я с нетерпением жду нового функционала комнат в KDE 4.7.
Иногда жалуются, что комнату сложно сменить. Ну что ж, следующую статью я посвящу методам переключения между комнатами.Наслаждайтесь использованием своих комнат. Надеюсь, что статья была полезной.