воскресенье, 8 ноября 2009 г.

немного о рабочем окружении

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

Где-то около года я использовал свой Macbook и дома и на работе и за это время достаточно сильно к нему привязался. Хотя еще где-то весной лавочка закрылась, и пользоваться лэптопами на работе уже не разрешают, до сих пор смотрю на Mac главным образом как на рабочий инструмент, хотя это может показаться немного странным, есть какое-то количество линуксоидов воспринимающих продукцию Apple исключительно как набор свистелок и перделок, активно сдобренную маркетнингом. Как бы там ни было, я снова переехал на Debian на работе, и не так давно купил второй лэптоп, для того чтобы играться с Линуксом дома, потому как постоянная смена рабочего окружения раздражает.

Достаточно значительным отличием различных дистрибутивов Linux от OS X, является количество разнообразных выборов, которые может сделать, и которые обязан делать пользователь при настройке своего рабочего окружения. OS X дает вам, в терминах Linux, один DE: хороший, продуманный, качественный, но с очень урезанными возможностями для настройки ( да там есть Х-сервер, и на нем можно пускать все что угодно, включая любимые WM'ы, но это извращение). В Linux-системе вас скорее всего заставят выбрать как минимум DE, в котором, в свою очередь можно пилить очень очень много, более того, чтобы этим можно было пользоваться - пилить, так или иначе придется.

Когда стало понятно что придется опять переползать на Linux, первым желанием было сделать в Linux примерно тоже самое к чему я привык в OS X. Сходу, можно вспомнить: хоткеи(я уже писал об этом), эффекты: превью всех окон и превью всех рабочих столов, общее "меню" для всех приложений в верхней строчке, док, внешний вид. Если кратко: хоткеи можно, но не везде и не все, например как нормальный человек может поменять хоткеи в firefox для меня осталось загадкой, равно как осталось загадкой какой светлой голове пришло в голову для открытия нового таба в некоторых приложениях требовать от пользователя нажать Ctrl+Shift+t. Alt+Shift+t - нажимается с трудом, Ctrl+Shift+t - это акробатика смешанная с йогой. Эффекты - чисто теоретически, компиз это может, причем может почти как в OS X, к сожалению "почти", если "look" смущает своей топорностью, но с этим еще можно жить, то "feel" убивает насмерть, Control Center компиза явно нацелен на глубокую внутреннюю работу того кто будет им пользоваться, я к такой работе в отношении этого WM не готов. Наиболее вменяемым dock'ом из увиденных оказался cairo dock, хотя бы отдаленно напоминает Mac'овский, но его Панель Управления ничуть не легче, если не сложнее, компизовской, особенно, если учесть что искал я не как включать все возможные навороты, а как отключать те что были :) Общее меню: gnome-globalmenu2 - работает далеко не для всех приложений, даже тогда когда оно работает, на OS X это не очень похоже. Настройки внешнего вида: mac4lin - действительно неплохая штука, но к сожалению, есть вещи которые и ей неподвластны.

Короче говоря поигравшись вдоволь с тем что хорошо смотрится на скриншотах, пришел к неутешительному для себя выводу - сделать как в Mac'е, при наличии настоящего Mac'а с OS X рядом не получится, да и пытаться не стоит. Пусть лучше будет все еще до конца не настроенный, но по своему рабочий xmonad. Вот тут мы и подходим к главному вопросу передачи :)

Первым Window Manager'ом из разряда tiled WM которым я пользовался был ion3. Немного о "паттерне" своего использования tiled WM я уже писал и даже показывал скриншот. Не смотря на то что рабочих столов я таки держу обычно четыре, активно используется только первый, на котором скапливаются все нужные на данный момент приложения: обычно это браузер(ы), пиджин, и некоторое количество терминалов. Получается такой себе "рабочий стол", где все под рукой, хотя маленькое окошко браузера - это если честно не очень приятно, особенно если шрифты не очень маленькие. Похожую схему я повторил и в xmonad'е, правда повторив "look" не совсем повторил "feel"(в данном случае в силу ограниченных знаний haskell немного сложно повторить переключение между окнами в табах с помощью чего-то типа Alt+k n внутри кажого конкретного tabbed layout'а).

Вчера в очередной раз задумался вот над какой штукой: в OS X я пользуюсь четырьмя рабочими столами, у каждого из которых свое отдельное, устоявшееся назначение. В Linux же неизменно все стягивается на один рабочий стол, хотя это не сильно то и удобно когда все окна не очень большого размера, и на 15.4" и на 19" мониторах. Попасть на нужный рабочий стол в OS X можно несколькими способами: кликнув на нужный рабочий стол в превьюшках, или же так или иначе добраться туда с помощью хоткеев. Превьюшки имеют хорошее преимущество - ты физически видишь все рабочие столы, и выбираешь нужный, тыцая туда мышкой. Если помнишь в какой части экрана находится нужный квадрат - сделать это легко, быстро и приятно, вот он набор открытых приложений для нужной задачи, вот я его выбрал. В Linux для прямого попадания на рабочий стол часто используют хоткеи, причем хоткеи из серии Alt+F{1..9}. Связывать конкретную задачу, или даже конкретное приложение и безликую цифру - на совести пользователя, у меня это получается не очень хорошо.

В очередной попытке разделить рабочие столы по задачам/приложениям пришел к тому что:
- нужно дать рабочим столам вменяемое название, 1-2-3-4 - это фигня.
- нужен отдельный, запоминаемый, и нормально нажимаемый хоткей для попадания на каждый конкретный рабочий стол
- если есть штука которая показывает доступные рабочие столы - она должна показывать и хоткей тоже, так легче привыкнуть

В итоге получились:


myWorkspaces = [ "a:chat", "e:term", "l:mail", "w:webs", "m:mix" ]

первая буква соответственно обозначает комбинацию alt+<что> ведет на этот рабочий стол. Пока привыкаю, мне кажется есть шансы что таки привыкну.

Каждый рабочий стол имеет свой набор layout'ов: "a:chat" - вариация на тему IM-layout'а, просто показывает ростер справа, в маленькой колонке, и чат в большом центральном окне. "l:mail" - пользуюсь thunderbird'ом, простого tabbed достаточно. "e:term" - возможность переключения между Tabbed, Grid, TwoPain, и интересной штукой под названием CenteredMater, которая показывает "Master"-окно по центру, а остальные на бэкграунде в любом другом заданом layout'е, в сочетании с "мастер окном становится окно которое сейчас в фокусе" от MagicFocus - прикольно :). "webs" - основной layout все тот же tabbed, и еще несколько, на случай если захочется странного. "mix" - сохраненная старая схема, если все захочется заново собрать все до кучи. Еще один интересный Layout(из "mix"): MouseResizableTile - простенький tiled layout, с возможностью легко менять размеры "прямоугольников, в которых заточены окна" мышкой. MouseResizableTile и MagicFocus + Tabbed на скриншотах ниже:






Мой текущий конфиг, можно найти здесь, конфиг xmobar. Вот такая очередная странная история от меня получилась (:

6 комментариев:

Анонимный комментирует...

Ctrl + Shift + T нужно нажимать двумя руками. Тогда никакой сложности не будет (:

Прочитал с интересом. Спасибо.

Denis Evsyukov комментирует...

Шикарное описание, читал с удовольствием!
В конфиг еще не заглядывал, но есть вопрос. В xmonad если настраивать отключение бордюров в полноэкранных приложениях дико падает производительность оконного менеджера, при переключении между рабочими столами мелькает рабочий стол, чем очень сильно раздражает. А если данную возможность отключиться, то есть не использовать smartborders, то при просмотре фильмов в mplayer виден бордюр... Опять же не то...
Как у вас решается данный вопрос??

Philipp Smirnov комментирует...

ctrl+shift+t - мизинец + безымянный + указательный - легко:) правда очень зависит от клавиатуры и размера руки.

diesel комментирует...

да, видимо если Ctrl+Shift+T нажимать двумя руками - это будет сделать легче, не догадался.

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

sash-kan комментирует...

>В Linux-системе вас скорее всего заставят выбрать как минимум DE
гхм. aptitude install icewm. и никакого давления (улыбка).
>в котором, в свою очередь можно пилить очень очень много
scp -r ~/.icewm newhost:~/ — вот и вся пилорама.
>поменять хоткеи в firefox
пользуясь vimperator-ом, даже не задумываюсь о таких вещах.
>рабочих столов я таки держу обычно четыре
счастливый ты человек. у меня восемь столов (помноженные на два монитора) — и то временами не хватает (да, я очень редко держу какие-нибудь окна неразвёрнутыми на весь монитор).

diesel комментирует...

>>В Linux-системе вас скорее всего заставят выбрать как минимум DE
>гхм. aptitude install icewm. и никакого давления (улыбка).
>>в котором, в свою очередь можно пилить очень очень много
>scp -r ~/.icewm newhost:~/ — вот и вся пилорама.

выбор icewm это тоже выбор, а для того чтобы было для чего делать scp, все-равно надо настроить :)