Online video hd

Смотреть в хорошем качестве hd видео

Официальный сайт detisavve 24/7/365

Смотреть видео бесплатно

Anrock 22.12.2010 08:39

Есть проблема![SOLVED] Автозапуск приложений в awesome с раскидыванием по тегам.

Нужно чтобы при запуске awesome стартовало несколько приложений на разных экранах. То есть браузер на экране www, pcmanfm на экране files и несколько терминалов на экране terms.
В awesome-wiki предложено добавить в конец rc.lua
 1
2
3
4
5
6
7
8
9
10
11
12
function run_once(prg,arg_string,screen)
if not prg then
do return nil end
end
if not arg_string then
awful.util.spawn_with_shell("pgrep -f -u $USER -x " .. prg .. " || (" .. prg .. ")",screen)
else
awful.util.spawn_with_shell("pgrep -f -u $USER -x " .. prg .. " || (" .. prg .. " " .. arg_string .. ")",screen)
end
end

run_once("команда","аргументы","экран")


Первый раз в параметре screen оставил числа, рассудив что указать там надо было номер экрана по счету. В итоге awesome создал еще 9 дефолтных экранов, запустив на них соответственно указанные приложения. "Ага" - подумал я и поменял порядковые номера на названия экранов - awesome теперь не создал левых экранов, но запустил все приложения прямо на первом. Подумал я еще немного и заключил названия экранов в кавычки - awesome опять создал пачку дефолтных экранов и вообще ничего не запустил.
На этом думалка заглохла, гуглилка тоже ничего особо не дала, бо у всех видимо все так работает.
Кто чего посоветует или, может быть, поделиться своим способом?

UPD. Решено с помощью rules, спасибо philosoft.


Тэги:
+ 0 -
Похожие Поделиться

saver 22.12.2010 09:12 #
+ 4 -
"Нужно чтобы при запуске awesome стартовало несколько приложений на разных экранах. То есть браузер на экране www, pcmanfm на экране files и несколько терминалов на экране terms."
Зачем вы путаете всех? Это не экраны, а тэги и на них отображаются окна помеченные этими тэгами.

Экран (screen) - это грубо говоря монитор, если у вас их несколько, то они чаще всего нумеруются цифрами, а не именами...

Для вашей задачи читайте документацию по awesome, гугление (если не умеете) вам не поможет. В конфиге есть целый раздел с описанием того, какие приложения на каком тэге запускать (в дефолтном конфиге вроде даже есть пример с mplayer).
Shtsh 22.12.2010 10:33 #
+ 3 -
с Awesome без доков не разберёшься. Сначала почитай в офф. вики, что такое теги, как сделать так, чтобы программам присваивались теги, как сдалеать так, чтобы теги были с названиями, а не цифрами (стоит обратить внимание на shifty) и прочая, и прочая, и прочая. А потом просто запускай программы :)
philosoft 22.12.2010 13:30 #
+ 3 -
Правила тебя спасут. Пример
-- {{{ Rules
awful.rules.rules = {
{size_hints_honor = true },
-- All clients will match this rule.
{ rule = { },
properties = { border_width = beautiful.border_width,
border_color = beautiful.border_normal,
focus = true,
keys = clientkeys,
buttons = clientbuttons },
callback = awful.client.setslave },
{ rule = { class = "MPlayer" },
properties = { floating = true } },

-- Start windows as slave
-- Set Firefox to always map on tags number 3 of screen 1.
{ rule = { class = "Firefox" },
properties = { tag = tags<1><3> } },
{ rule = { class = "Icedove" },
properties = { tag = tags<1><5> } },
{ rule = { class = "Gvim" },
properties = { tag = tags<1><1> } },
{ rule = { class = "Gajim" },
properties = { tag = tags<1><2> } },
}
-- }}}

Итого: огнелис всегда стартует на третьем теге, айсдав на 5м, гаджим на 2м, гвим на 1м и всё это на первом экранчике, mplayer стартует на текущем активном но он сразу становится floating window. Ну а после того, как правила написаны можно запускать приложения через вашу функцию или через awful.util.spawn_with_shell('mycoolprog')
derfenix 22.12.2010 16:11 #
+ -1 -
ох ё... gvim в awesome! мусье знает толк в извращениях
Anrock 22.12.2010 17:14 #
+ 3 -
А что не так?
philosoft дикое спасибо за конфиг, saver и Shtsh спасибо за то, что открыли глаза на изначально неправильный вопрос.
derfenix 22.12.2010 17:43 #
+ 0 -
да всё не так. какой смысл использовать в тайлинговом вм графическую обёртку для консольного приложения? это всё-равно, что поставить линукс для того, чтобы в нём на виртуалку поставить винду.
Shtsh 22.12.2010 19:15 #
+ 3 -
Ты не совсем прав. У gvim, как минимум, можно более няшные цветовые схемы подключать :) Ну, и ещё есть мелкие преимущества.
Хотя, если нужно просто конфиги подправить, то терминал + vim удобней
derfenix 22.12.2010 20:04 #
+ -2 -
ну тоже ведь ерунда.. няшности-хреняшности и зачем-то awesome. Если уж так хочется всяких прибамабасов да красотулек - то юзать бы гном какой-нибудь или xfce..
да и цветовых схем в vim'е и без того предостаточно, куда уж больше-то?
saver 25.12.2010 20:29 #
+ 1 -
Ты сейчас в links2 эти посты писал? Нафиг в awesome использовать chrome/ff/opera если есть links2?
derfenix 25.12.2010 21:10 #
+ -1 -
Между chrome/ff/opera и links2 есть огромная функциональная разница. Между vim и gvim - разница в менюшечках и каких-то плюшечках.
И да, если бы links2 умел нормально показывать кириллицу, показывать всю графику и иметь удобные плагины, я бы пользовался им.
saver 25.12.2010 21:11 #
+ 1 -
Понятно с тобой
Anrock 30.12.2010 17:20 #
+ 1 -
Таки спасли.
kstep 22.12.2010 21:54 #
+ 2 -
Афтор во всём вопросе путает экраны и теги.
Экран (screen) — это, упрощённо, физический монитор, а тег (tag) — это уже именованный «ярлык» с символьным именем. Экраны у вас на столе (физическом, в реале), а теги — слева в верху (по-умолчанию).

Во фразе
То есть браузер на экране www, pcmanfm на экране files и несколько терминалов на экране terms.

следует заменить все слова «экран» на «тег». А вот пример запуска, который описан ниже, имеет в виду именно экраны которые screen, то есть правильно, туда номера писать надо.

Вообще афтор запутался. Надеюсь я ему хоть немного что-то прояснил. Теперь надо идти и читать awesome-вики до полного просветления, потому что я не могу сразу научить всему, что наработано долгими годами за awesome-ом.

Выше рекомендовали поюзать правила (rules), которые есть стандартный модуль awesome с некоторых пор. Покурите по ним доку, там всё достаточно просто (для начала). Ещё от себя могу порекомендовать shifty — стороннюю либу, которую надо будет доставить, но зато она даёт динамически создаваемые теги, автозапуск приложений при создании теги или переключении на него и прочие интересные плюшки.
kstep 22.12.2010 21:59 #
+ 1 -
Ох, про теги-экраны уже сказали выше. Просмотрел, виноват =) Щас перечитал свой коммент, вышло как-то грубовато. Сорри, я не имел это в виду таким образом, день суматошный выдался. Пойду посплю, что-ли...
Anrock 29.12.2010 00:22 #
+ 0 -
Печаль какая - в вики нету статьи про эти самые rules. И про теги тоже нет статьи. Или теги поддерживаются только в shifty?
Shtsh 30.12.2010 17:30 #
+ 0 -
например, так
-- {{{ Rules
awful.rules.rules = {
{ rule = { }, properties = {
focus = true, size_hints_honor = false,
keys = clientkeys, buttons = clientbuttons,
border_width = beautiful.border_width,
border_color = beautiful.border_normal }
},
{ rule = { class = "Firefox", instance = "Navigator" },
properties = { tag = tags<1><3> } },
{ rule = { class = "Emacs", instance = "emacs" },
properties = { tag = tags<1><2> } },
{ rule = { class = "Emacs", instance = "_Remember_" },
properties = { floating = true }, callback = awful.titlebar.add },
{ rule = { class = "Xmessage", instance = "xmessage" },
properties = { floating = true }, callback = awful.titlebar.add },
{ rule = { instance = "firefox-bin" },
properties = { floating = true }, callback = awful.titlebar.add },
{ rule = { name = "Alpine" }, properties = { tag = tags<1><4>} },
{ rule = { class = "Gajim.py" }, properties = { tag = tags<1><5>} },
{ rule = { class = "Akregator" }, properties = { tag = tags<1><8>} },
{ rule = { class = "Ark" }, properties = { floating = true } },
{ rule = { class = "Geeqie" }, properties = { floating = true } },
{ rule = { class = "ROX-Filer" }, properties = { floating = true } },
{ rule = { class = "Pinentry.*" }, properties = { floating = true } },
}
-- }}}
Shtsh 30.12.2010 17:31 #
+ 0 -
Да, это два разных примера.
Anrock 30.12.2010 17:37 #
+ 0 -
Я уж наковырял их в дефолтном конфиге. Найти бы список возможных опций в properties.
philosoft 30.12.2010 17:55 #
+ 2 -
Вот в самом низу.
philosoft 30.12.2010 18:46 #
+ 1 -
Хотя похоже я не прав, и в properties может лежать только что-то из этого списка
  • floating
  • tag
  • switchtotag
  • width
  • height
  • focus
  • function
По результатам исследования rules.lua.in. Под спойлером нужный кусок:
-- Кусок функции apply
for property, value in pairs(props) do
if property == "floating" then
aclient.floating.set(c, value)
elseif property == "tag" then
c:tags({ value })
c.screen = value.screen
elseif property == "switchtotag" and value and props.tag then
atag.viewonly(props.tag)
elseif property == "height" or property == "width" or
property == "x" or property == "y" then
local geo = c:geometry();
geo = value
c:geometry(geo);
elseif property == "focus" then
-- This will be handled below
elseif type(c) == "function" then
c(c, value)
else
c = value
end
end
Anrock 30.12.2010 20:11 #
+ 0 -
только что-то из этого списка

Неа, maximized_horizontal там точно может лежать. Или разные версии?
philosoft 30.12.2010 20:25 #
+ 1 -
Я в версии из гита смотрел. На канале мне что-то никто не спешит ответить. В рассылке спрашивать влом.
philosoft 01.01.2011 14:43 #
+ 2 -
Я опять поспешил с выводами. Там может быть по сути всё что угодно. Если там находится что-то из перечисленнонго в предыдущем комментарии, то это обрабатывается особо (соответствующими функциями), иначе соответствующему свойству клиента присваевается соответствующее значение.

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн