![как создать процесс/cmd в определенном теге в Awesome?](https://rvso.com/image/1304096/%D0%BA%D0%B0%D0%BA%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C%20%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%2Fcmd%20%D0%B2%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%20%D1%82%D0%B5%D0%B3%D0%B5%20%D0%B2%20Awesome%3F.png)
Я следовал стандартному rc.lua и создал собственный список тегов.
for s = 1, screen.count() do
-- Each screen has its own tag table.
tags[s] = awful.tag({ "main", "web", 3, 4, 5, 6, 7, 8, 9 }, s, layouts[2])
end
Теперь я хочу запустить некоторые приложения в тегах по умолчанию. Например, tags['main'] = терминал tags['web'] = веб-браузер
Я проверил документацию API, но не могу найти способ получить теги и создать процесс в теге.
решение1
Awesome происходит от dwm, верно? В dwm вы добавляете «правила» для определенных программ (по умолчанию в исходниках dwm есть правило для gimp и firefox).
Похоже, то же самое касается и awesome-wm.
Вы можете добавить правила соответствия в таблицу horror.rules.rules. В rc.lua по умолчанию уже есть несколько примеров, но вот еще несколько:
-- Set Firefox to always map on tag number 2 of screen 1
{ rule = { class = "Firefox" }, properties = {tag = tags[1][2]}},
-- Set Smplayer to tag 4 of screen 1
{ rule = { class = "Smplayer" }, properties = {tag = tags[1][4]}},
-- Set Emacs to tag 5 of screen 2
{ rule = { class = "Emacs", instance = "emacs" }, properties = {tag = tags[2][5]}},
-- Set Alpine to tag 6 of the last screen
{ rule = { name = "Alpine" }, properties = {tag = tags[screen.count()][6]}},
-- Set Akregator to tag 8 of the last screen and add a titlebar trough callback
{ rule = { class = "Akregator" },properties = {tag = tags[screen.count()][8]}, callback = awful.titlebar.add},
-- Set Xterm to multiple tags on screen 1
{ rule = { class = "XTerm" }, callback = function(c) c:tags({tags[1][5], tags[1][6]}) end},
-- Set ROX-Filer to tag 2 of the currently selected and active screen
{ rule = { class = "ROX-Filer" }, callback = function(c) awful.client.movetotag(tags[mouse.screen][2], c) end},
-- Set ROX-Filer to tag 8 on screen 1 and switch to that tag imidiatelly
{ rule = { class = "ROX-Filer" }, properties = { tag = tags[1][8], switchtotag = true } }
-- Set Geeqie to the currently focused tag, as floating
{ rule = { instance = "geeqie" }, properties = {floating = true}},
-- Set Xterm as floating with a fixed position
{ rule = { class = "XTerm" }, properties = {floating = true}, callback = function(c) c:geometry({x=0, y=0}) end},