CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
19.09.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Блогометки :: Десктопы

PekWM

http://malcolm.ru

Много всяких WM существует.

Всегда сидел в KDE, но также всегда доставала скорость работы и загрузки как самого DE, так и программ (хоть Арч и самый быстрый, имхо). Начал выбирать WM для себя, т.к. DE слишком громоздко.

Итак, DE отпадает. WM - fluxbox - панель - привык переключать приложения и рабочие столы клавишами, поэтому надобность в панели отпадает. OpenBox - не нравятся конфиги xml. Как то всё запутанно. Опять же, не люблю чтобы окна перекрывались, решил глянуть на wmii, ion, dwm. dwm - конфиги на С, имхо, не то, что нужно, я не программист, а юзер. Да ещё говорят, что после каждого изменения конфига надо пересобирать, извините, но это ваащщее. ion - lua мне не знаком, и знакомиться не собираюсь, опять же не программер. Wmii, говорят, что уже устарел, и опять же запутанные конфиги. В общем, многие могут подумать, что я просто сильно придираюсь, и настроить можно всё, и выучить тоже не проблема. Так и говорю, в pekwm влюбился сразу. Странно, что на русском языке про него что-то найти проблематично. На официальной странице есть довольно подробное руководство, но на английском. С горем пополам, разобрался, но ещё не полностью. В общем, буду потихоньку рассказывать, что же я узнал, может кому-нибудь ещё приглянётся.

После скачивания, установки и первого запуска последней версии pekwm, в домашнем каталоге пользователя появляется папка с конфигами - .pekwm.
autoproperties - здесь прописываются “автосвойства” приложений (окон)
config - основной конфиг
keys - настройки “горячих” клавиш
menu - меню
mouse - действия на разные действия с мышей (товтология какая-то:) )
start - запуск приложения при старте WM
themes - папка с темами
vars - переменные, которые могут понадобиться как в menu, так и в keys, mouse.

  1. Итак, будем шагать от самого важного - config Files - описывается, где лежат конфиги.
    MoveResize - параметры изменения размеров и позиции окон.
    Screen - количество рабочих столов и что должно показываться
    при листании окон. положение окон по умолчанию в секции Placement.
    UniqueNames - не понял зачем нужно, меня и так всё устраивает:)
    Viewports - как я понял используется для расположения рабочих столов, т.е. как они будут располагаться, сколько колонок и строк.
  2. Menu - действия при нахождении в меню. Здесь я поменял только Enter = “ButtonPress” на Enter = “Motion”, т.е. в меню заход на уровень ниже при наведении как этот “подпункт”, а не клика на нём. Тут уже кому как удобнее.
    Harbour - так называемая “гавань”, сделана специально для wm-dockapp’ов. Где располагаются и какой размер. Я ей не пользуюсь, поэтому, что к чему с ней - сказать не могу. Config вроде немного описал,
  3. дальше vars:

    Тут мы просто задаём переменные, чтобы потом каждый раз не писать длинные переменные в других файлах, например:
    $VT = “urxvt -fade 30 +sb -fn -*-terminus-medium-*-*-*-16-*-*-*-*-*-iso10646-* -bg black -fg white”

    теперь вместо этой длинючей команды в конфигах можно просто прописать $VT, но убедиться что в начале конфига прописано INCLUDE=”vars”. Меню - чтобы вручную всё не вбивать, можно воспользоваться утилитой menumaker, которая есть в репозитариях арча, команда типа

    mmaker pekwm -t rxvt 
    Возможно, ещё потребуется опция -f, если потребуется перезаписать файл с меню. Синтаксис файла меню простой:
    INCLUDE=”vars” #чтобы не писать длинные команды, вводим переменные, об этом я говорил ранее
    Rootmenu = “Pekwm” { #название корневого раздела меню
    Entry = “Run…” { Actions = “ShowCmdDialog” } #показать диалог запуска типа “Выполнить…”
    Entry = “Terminal” { Actions = “Exec $VT &” } #запустить терминал
    SubMenu = “Wallpapers” { #открываем подменю
    Entry = “” { Actions = “Dynamic /home/malc/.pekwm/scripts/ws” } #что у нас находится в подменю
    }
    }
    Separator {} #разделение с помощью сепаратора
    WindowMenu = “” {} # меню, которое показывается при клике правой клавишей на заголовке окна
    Самое интересное здесь, это использование динамических меню, которые изменяются от содержания каталогов. Стандартные скрипты, для примера находятся в /usr/share/pekwm/scripts/. Я использую один скрипт для обзора каталога с wallpaper’ами и установки в качестве фона рабочего стола, выглядит от так:
    #!/bin/bash
    output=`ls /home/malc/fff/`
    echo “Dynamic {”;
    for name in $output;
    do
    echo ” Entry = \”$name\” { Actions = \”Exec fbsetbg /home/malc/fff/$name\” }”
    done
    echo “}”
    Здесь в папке /home/malc/fff/ находятся wallpaper’ы. Команда, при клике на пункте меню “Exec fbsetbg /home/malc/fff/$name\” - т.е. просто ставится фон рабочего стола. Скрипты можно писать на bash и perl, кому что ближе. Так же в меню таким же образом можно выводить разные данные из вывода команд каких-либо (ping, заряд батареи…). Наверное я допустил ошибку, но пробелы в названиях файлов меню (а может и скрипт) обрабатывает как новый файл.
  4. Синтаксис .pekwm/keys:
    INCLUDE = “vars” #включаем сюда переменные
    Global { #основные клавиши
    KeyPress = “Mod1 T” { Actions = “Exec $VT &” } #по Alt + T запустить терминал из переменной $VT
    KeyPress = “#233? { Actions = “GoToWorkspace Next” } #при нажатии на
    клавишу с keycode #233 Перейти на следующий рабочий стол. keycode можно
    получить из вывода программы xev
    KeyPress = “Mod1 R” { Actions = “MoveResize” } #при нажатии Alt+R активировать меню MoveResize
    }
    MoveResize {
    KeyPress = “Left” { Actions = “MoveHorizontal -10? }
    #после Alt+R при нажатии на “влево” окно подвинется на 10 пикселей
    влево.
    ….
    }
    CmdDialog { #реакция на клавиши в диалоге “Выполнить”
    KeyPress = “Left” { Actions = “CursPrev” } # “влево” - передвинуть курсор на предыдущую позицию
    …..
    }
    Menu { #реакция на нажатия клавиш в меню
    KeyPress = “Down” { Actions = “NextItem” } # “вниз” - передвинуть курсор на следующий пункт меню.
    …..
    }
  5. Mouse - ну здесь я так думаю тоже ничего страшного нет. Всё вполне понятно:
    DoubleClick - двойной щелчок,
    ButtonPress - нажатие на кнопку,
    ButtonRelease - “отжатие” кнопки,
    Motion - движение, ну и так далее,
    думаю по логике разобраться можно, тем более настройки по умолчанию мыши, имхо, самые подходящие.

    Я рекомендую часть про menu и cmddialog оставить в keys, а остальное переделать так, как вам хочется, потому что команд там дохрена, все не запомнишь, легче дописать своё, чтобы не путаться, как привык, так и работаешь. в .pekwm/start просто записываем команды, которые должны выполняться при старте wm,например

    opera &
    amarok & 
    Ну и так далее, ничего сложного. Единственное, он должен быть “исполняемым”, чтобы всё запустилось.
  6. Autoproperties: Здесь мы задаём параметры при старте определённых приложений, например: Действия происходят при различных событиях приложения. Реакция по WM_STRING из вывода команды xprop. Разработчики предлагают такой скрипт
    #!/bin/bash
    {
    echo -n ‘Property ‘
    xprop WM_CLASS | sed ’s/.*”\(.*\)”, “\(.*\)”.*/= “\1,\2? {/g’
    echo ‘}’
    } 
    сохраняем, делаем его исполняемым, и запускаем. Нажимаем на любое окно получаем примерно следующее: Property = “main,psi” { } Это вставляем в autoproperties, получаем примерно такое:
    Property = “main,psi” {
    ApplyOn = “Start New” #реагировать на старт проги.
    Sticky = “True” # закрепить ко всем рабочим столам
    Layer = “OnTop” # повесить выше всех
    FrameGeometry = “144?400+880+18? # местонахождение и размер при старте, 144х400 - размер, 800+18 - положение, можно только положение обозначать “+800+18? например.
    Border = “False”; Titlebar = “False” #стартовать без бордюров и заголовка.
    }
Поддерживает регулярные выражения, т.е. ^main будет обозначаться что строка должна начинаться с main, .* - обозначать будет любые символы. Честно говоря я плохо знаю регулярки, знаю только нужные:) Полный список всех опций лучше возьмите в документации, он слишком длинный, там есть старт на нужном раб. столе, в нужном месте, максимизация приложения, подмена заголовка, группировка окон, имхо, всё, что душе угодно. Я себе не ставил цель перевести документацию, так что тем, кто хочет попробывать, придётся самим разбираться с каждой опцией:) Ну и я, конечно же, обещаю помогать чем смогу. Итак, с этим WM я достиг того, что хотел от WM.

Conky выводит всю нужную информацию в полоске сверху, он “Always On Top”, все приложения стартуют без заголовка, т.к. имхо, только мешает, всё управление окнами - горячими клавишами. Стартуют как раз под conky, “за” conky ничего не залезает, psi стартует без заголовка и без оформления справа, остальные окна за него не залезают, т.к. вместо просто максимизации окна используется Maxfill, типа “занять всё свободное пространство”, горячие клавиши настроены так, как я хочу.

P.S. разобрался с Group, группировка приложений по типу. Очень удобно, например браузеры: Опера и Файрфокс, забубенить их в одну группу, оба расположены на одном рабочем столе и развёрнуты на весь экран. При помощи горячих клавиш приложения в группе пеерключаются. ИМХО, очень удобно.




Комментарии

аноним, Fri May 8 01:53:02 2009:
спасибо за статью)
но возник вопрос по поводу русификации.. вы это как-то решали, или просто пользуете буржуйскую локаль?

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds