Pull to refresh

Comments 79

Пробовал когда-то. Не осилил. Сейчас еще попробую, спасибо что напомнили.
Я тоже думал не осилю, но собравшись идин вечерок, взял и осилил :) Пишите в лс, чем смогу — помогу.
Одно время тоже работал в нем. Но затем вернулся в гном.
Всетаки большую часть времени использую приложения развернутыми на весь экран, а при этом весь смысл тайловости пропадает.

Мне кажется в статье не хватает информации по виджетам.
Потому как с конфигом по умолчанию не будет работать даже смена раскладки клавиатуры.
Я писал скорее ознакомительную статью, тк «внутренняя» информации все же на вики лучше меня написана. А насчет раскладки — я даже не задумывался, тк у меня ее изменении организовано с помощью X.org
Смену раскладки можно и отдельно высталять примерно такой командой:
setxkbmap -layout 'us,ru' -option 'grp:alt_shift_toggle
Всетаки большую часть времени использую приложения развернутыми на весь экран, а при этом весь смысл тайловости пропадает.

Можно использовать, например, что-то вроде этого
awful.tag("www",1,awful.layout.suit.max)
тогда все окна будут растянуты на весь экран.
После того, как поработал в awesome, вернуться назад в gnome\kde не смог.
Точно так же люблю, когда приложение открыто на весь экран, смысл от тайловости как бы пропадает, но зато пропадает необходимость каждый раз разворачивать окна (они сами раскрываются) и + хоткеи. А если от гнома не нужно большего — то зачем он?
Народ, а кто работает с двумя мониторами, возможно сможете подсказать как бы это научиться в awesome переключаться между мониторами:)
Если такое возможно, конечно.
У меня 2 монитора в TwinView. Все заработало из коробки.
По умолчанию, если я правильно помню, то Mod4 + o переносит окно на другой монитор.
А Mod4 + Shift + j (k) переключает между окнами.
У меня два монитора, не TwinView. Ничего не заработало из коробки. Правильное разрешение не определилось, мониторы видит зеркально. Получилось выставить разрешение на одном из мониторов, второй вдруг стал просто неактивным. Помогите, оно меня побеждает!
Через xrandr можно. Например:

xrandr --output DVI-I-1 --mode 1920x1200 --left-of HDMI-1
Да, через него и выставлял, правда не с первого раза удачно. Мониторы настроены. До первого логина, потом все сбрасывается. Можно это дело как-то зафиксировать?
Разумеется, сбрасывается :) Например, можно в .xinitrc вписать.
Можно. Таже очень просто настраивается количество слоёв на каждом мониторе и положение окон при запуске (на каком мониторе и слое запускать приложение).
С двумя мониторами я думаю он просто не нужен. У меня 30" + 24" и я искренне не понимаю зачем мне тайлинговый режим )

а вот на лаптопе очень удобно, да.
После того как я начал работать в awesome я искренне не понимаю, как можно работать вне тайлинга ( независимо от количества мониторов ) (:
UFO just landed and posted this here
У меня это сделано, примерно, так (куски из конфига):
-- Table of layouts to cover with awful.layout.inc, order matters.
layouts =
{
  awful.layout.suit.tile,
  awful.layout.suit.tile.left,
  awful.layout.suit.tile.bottom,
  awful.layout.suit.tile.top,
  awful.layout.suit.fair,
  awful.layout.suit.fair.horizontal,
  awful.layout.suit.spiral,
  awful.layout.suit.spiral.dwindle,
  awful.layout.suit.max,
  awful.layout.suit.max.fullscreen,
  awful.layout.suit.magnifier,
  awful.layout.suit.floating
}
-- }}}

-- {{{ Tags
-- Define a tag table which hold all screen tags.
tags = {}
for s = 1, screen.count() do
  -- Each screen has its own tag table.
  tags[s] = awful.tag(
    {
      -- tag names
      1,  2,  3,  4,  5
    }, s, {
      -- tag layouts
      layouts[9], layouts[1], layouts[1], layouts[9], layouts[9]
    }
  )
end
-- }}}

-- {{{ Key bindings
-- ... тут идут другие биндинги ... --

for i = 1, keynumber do
    globalkeys = awful.util.table.join(globalkeys,
        awful.key({ modkey }, "F" .. i,
                  function ()
                        local screen = mouse.screen
                        if tags[screen][i] then
                            awful.tag.viewonly(tags[screen][i])
                        end
                  end),
        awful.key({ modkey, "Control" }, "F" .. i,
                  function ()
                      local screen = mouse.screen
                      if tags[screen][i] then
                          awful.tag.viewtoggle(tags[screen][i])
                      end
                  end),
        awful.key({ modkey, "Shift" }, "F" .. i,
                  function ()
                      if client.focus and tags[client.focus.screen][i] then
                          awful.client.movetotag(tags[client.focus.screen][i])
                      end
                  end),
        awful.key({ modkey, "Control", "Shift" }, "F" .. i,
                  function ()
                      if client.focus and tags[client.focus.screen][i] then
                          awful.client.toggletag(tags[client.focus.screen][i])
                      end
                  end))
end
-- }}}

Вроде ничего не забыл…

Немного пояснений: при запуске awesome, он смотрит сколько экранов есть и создает по 5 тегов на каждый экран. Экран (монитор) выбирается в зависимости от того, на каком из них находится указатель мыши.
modkey+F{1..5} — переключение между тегами
modkey+Shift+F{1..5} — переместить активное окно из текущего тега в выбранный тег
modkey+Control+F{1..5} — отображать вместе окна из текущего тега и из выбранного тега(тегов)
modkey+Control+Shift+F{1..5} — вкл/выкл отображения активного окна на указанном теге(тегах)
Хм, а язык Lua вроде и не такой страшный, как я представлял. Правда уверен, всё равно будет трудно изучать не_программисту. Из-за, вероятно, малой распространенности -> малого кол-ва информации+форумов на русском.
Но на заметочку взял.
Пока-что на Linux-машине использую openbox + тайловую штуку, PyTile.
Выглядит так: сразу после загрузки окон (у меня это 3 терминала) нажимаю alt+a и вуаля, окна разложены.
Доки на русском есть, например (первые 2 ссылки из гугла по запросу «lua» с фильтром «Только на русском»), чтобы получить первоначальное представление о синтаксисе и типах достаточно глянуть в википедию, а для более глубокого изучения языка и его особенностей есть "Справочное руководство по языку Lua 5.1" на русском. И, да, я тоже не_программист, особых сложностей при изучении не возникло.

У меня с awesome это выглядит так: сразу после загрузки компа и входа в систему у меня запускаются gmail (ff prism), ff, pidgin, skype, 5 терминалов, claws mail, remmina, red notebook и все на своих тегах (рабочих столах) =)
Он прекрасен для N мониторов! Очень удобно. Коллега за пятью развлекается, у меня 2. Полный контроль над тем где когда и как запускаются те или иные приложения. Ни какой гном такого не сможет.
Как стартовать разные демоны вместе с awesome? Есть ли в нем какой-то индикатор раскладок? Индикатор батареии? Какой network manager для wifi посоветуете под awesome?
Это WM, он не занимается стартом разных демонов, о чём вы?
У awesome замечательная wiki на сайте.

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

Индикаторы также добавляются в конфиг-файле:
Индикатор раскладок
Индикатор батареи awesome.naquadah.org/wiki/Acpitools-based_battery_widget (есть много разных, но я пользовался этим)

NetworkManager — например, wicd. Диалог добавления сетей называется wicd-gtk. Можно прописать его в автозапуск в конфиге, можно запускать по мере необходимости. Если будете прописывать в автозапуск, то через скрипт, иначе после каждого рестарта awesome (а рестарт нужен, чтобы подгрузить новый конфиг, если он был изменен) у вас будет появляться одна дополнительная иконка wicd в трее.
Не обязательно писать скрипт, можно просто добавить нужные программы в .xinitrc
Может кому поможет: в Ubuntu 12.04 с .xinitrc не заработало, заработало с .xsessionrc
На ЛОРе как-то в галерее вывешивали скрины + описание/конфиги весьма качественной настройки осома: раз, два.
Сколько вкусного. Благодарю. Мой десктоп станет интересней этой ночью.
Извиняюсь за оффтоп, но что за девушка на скрине?)
WMSF(а теперь WMFS2) мне как-то больше понравился.
а какие у них прицнипиальные отличия?
Awesome тяжеловесен. Хотя, если быть откровенным, то на мой взгляд, он чрезвычайно жирный и требовательный до вычислительных ресурсов для фреймового WM. WMFS в этом плане намного приятнее.
Для меня также был большим плюсом простой конфиг, вместо Lua
Вчера первый раз попробовал, пол вечера переписывал конфиг, но оно того стоило… полностью сменил Openbox на Awesome. Действительно потрясающий wm.
У него нет LuaAPI, да и каждый раз собирать его заново при каждом чихе напрягает.
Я для себя выбрал wmii:
не нужно учить ЛУА, баш ближе к телу. Не нужно перекомпилировать
Пользовался несколько месяцев, но ИМХО Lua — не лучший вариант, ещё и с очень ограниченным набором фич, использующихся в конфиге он становится сильным оверкиллом. wmii с bash в настройке проще и удобнее, зато намного менее фичаст.
А ещё там есть меню:


Не понял по конфигу как кнопка меню переносится.
В смысле, как переместить кнопку меню, например, вправо?

Находите в конфиге, как называется переменная кнопки меню:
-- Create a laucher widget and a main menu
mymainmenu = awful.menu.new({                  <-- это переменная меню

mylauncher = awful.widget.launcher({ ... menu = mymainmenu })       <-- а это искомая переменная кнопки меню


Теперь нужно по имени найденной переменной найти примерно такое:
    -- Add widgets to the wibox - order matters
    mywibox[s].widgets = {
        {
            mylauncher,
            mytaglist[s],
            mypromptbox[s],
            layout = awful.widget.layout.horizontal.leftright
        },
		mytextbox,
        s == 1 and mysystray or nil,
        mylayoutbox[s],
        mytasklist[s],
        layout = awful.widget.layout.horizontal.rightleft
    }

Если переместить mylauncher в конец верхнего списка (перед «layout = ...»), то кнопка меню будет справа от тегов. А если переместить mylauncher в начало нижнего списка (перед mytextbox), то кнопка меню будет первой справа.

Именно это и интересовало, спасибо.
Ни разу не пользовался, т.к. dmenu просто несравнимо быстрее.
Мне в dwm его иногда не хватает.
Например, знаю что есть программа в меню называется «Дисковая утилита»,
а вот исполняемый файл palimpsest.
А как вы добавляете новые пункты в меню? Классически, редактируя конфиги или есть что-то графическое, вроде obmenu?
Никак. Я не пользуюсь awesome.
Из любопытства установил.
Но судя по всему чего то вроде obmenu нет.
Как раз искал тайловый WM — спасибо за наводку.
Расширения для него, как я понял, пишутся только на Lua или есть ещё какие-то варианты?
P.S. Последнее видео ваше или с просторов?
Только на Lua, но язык очень простой.

С просторов...:)
Сначала хотел осилить awesome, но потом нашёл i3-wm. Он весьма похож на awesome, но настраивать легче (у меня он даже из коробки весьма неплохо работал, в общем-то).
Тоже остановил выбор на i3, очень удобный и легкий WM, особенно с учетом возможности выбора между тайлингом и вкладками для контейнеров.
Аналогично. Использую i3 уже около года и очень им доволен. Кто из новичков ещё не видел презентацию i3 на Google Tech Talk — добро пожаловать.
Он перестал ломаться при каждом обновлении года 1.5-2 назад. А тогда да, любили в каждом минорном релизе немножко менять формат конфига, чтобы обязательно пришлось после обновления его поковырять.
Тоже использую awesome уже как несколько лет. До этого пыталась юзать xmonad, у awesome оказалось несколько весомым плюсов:
+ корректно отображает заголовки окон с русским текстом
+ содержит встроенный плагин для отображения систрея
+ lua-конфиг более понятен, чем мозгодробительный haskell
+ ну и стандартные плюсы titling window мэнеджеров: экономит место на экране за счёт отсуствующих заголовков и бордюров окон, а также нетребователен к системным ресурсам.

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

Автозапуск сделан у меня через .xinitrc:
xbindkeys &
syndaemon -i 0.5 -d &
wmname LG3D
xset r rate 200 50
setxkbmap us,ru -option grp:caps_togglegrp_led:caps

$(sleep 1;rxvt) &
$(sleep 3; google-chrome) &
$(sleep 3; xsetroot -solid black) &
$(sleep 7; gajim) &
$(sleep 11; skype) &
$(sleep 15; /home/lorien/.dropbox-dist/dropboxd) &
$(sleep 20; wicd-client) &

awesome



В конфиге awesome почти не менял ничего. Основное изменение — настройка автоматического раскладывания программ по нужным столам:

-- {{{ Rules
awful.rules.rules = {
    -- All clients will match this rule.
    { rule = { },
      properties = { border_width = beautiful.border_width,
                     border_color = beautiful.border_normal,
                     focus = true,
                     keys = clientkeys,
                     buttons = clientbuttons } },
    { rule = { class = "MPlayer" },
      properties = { floating = true } },
    { rule = { class = "pinentry" },
      properties = { floating = true } },
    { rule = { class = "gimp" },
      properties = { floating = true } },
    { rule = { class = "Firefox" },
      properties = { tag = tags[1][7] } },
    { rule = { class = "Iceweasel" },
      properties = { tag = tags[1][7] } },
    { rule = { class = "Google-chrome" },
      properties = { tag = tags[1][2] } },
    --{ rule = { class = "Opera" },
      --properties = { tag = tags[1][2] } },
    --{ rule = { class = "Iceweasel" },
      --properties = { tag = tags[1][2] } },
    { rule = { class = "Pidgin" },
      properties = { tag = tags[1][3] } },
    { rule = { class = "Skype" },
      properties = { tag = tags[1][4] } },
    { rule = { class = "Gajim" },
      properties = { tag = tags[1][3] } },
    -- Set Firefox to always map on tags number 2 of screen 1.
    -- { rule = { class = "Firefox" },
    --   properties = { tag = tags[1][2] } },
}
-- }}}

Эхх… Почему никто не пишет про старый славный WindowMaker оконный менеджер.
странно, что еще никто не исправил. «Это тайлинговый windows manager для» windowS без s пишется.
А вообще отличная штука. Пересев на этот ВМ производительность рутинных операций возрастает в двое-трое. И мышь становится вообще не нужна.
Как же я хочу уже наконец выбить свободный вечерок и в тишине посидеть — поковырять что-нибудь наподобие awesome. Давно хотел попробовать. Спасибо за напоминание. Ещё бы побольше информации по плагинам. Если не трудно — напишите продолжение статьи, пожалуйста. (:
Особенно было бы интересно увидеть подборочку различных плагинов и пр., расширяющих функциональность этого замечательного WM, которые затруднительно отыскать или выбрать самому.
Для любителей Lua и Awesome отличный браузер Luakit, конфиги тоже пишутся на Lua.
Писать конфиги на lua мне не понравилось. До xmonad я так и не добрался.
В комментариях прочитал про wmfs2 — попробую на днях.
Если интересно то могу то могу показать поделиться «цветными» инидкаторами — можно настроить какое значение будет зелёным, какое красным, цвет плавно меняется между значениями. Кроме того индикатор загрузки памяти ( с вычетом всяких кешей и прочего). Индикатор загрузки Процессора от 0 до 100% (с учётом количества ядер, а то странно видеть 200-400%).
Ну и индикатор раскладки с помощью kbdd
Конечно делитесь! Только в местах специально для этого предназначенных — на wiki, к примеру. Хабр — это хорошо, но в первую очередь, если нужно что-то идут туда…
Всех, кто хочет поделится своей конфигурацией или посмотреть чужие, ждут на соответствующей странице вики: awesome.naquadah.org/wiki/User_Configuration_Files.

JagaJaga, неплохо было бы дать эту ссылку в статье. Может у кого-то есть какие-то интересные мысли…
Если вам нравится awesome, но надоела его костыльность и необходимость на каждый чих изобретать что-то на Lua (а так же отсутствие какой бы то ни было поддержки дисплеев с высоким DPI, глюки с русскими раскладками и тому подобное), велкам в i3. Он очень похож на awesome, в котором правильный конфиг уже написан.
Sign up to leave a comment.

Articles