Как использовать экранное вращение в Потрясающей конфигурации WM?

Используя bash замена процесса, можно сделать следующее:

make_some_output | tee >(tail -n 2) >(head -n 2; cat >/dev/null) >/dev/null

Обратите внимание, что строки, как гарантируют, не будут в порядке, хотя для файлов дольше, чем приблизительно 8 КБ, они очень вероятно будут. Это сокращение 8 КБ является типичным размером буфера чтения и связано с причиной | {head; tail;} не работает на маленькие файлы.

cat >/dev/null необходимо для хранения head живой конвейер. Иначе tee выйдет рано, и в то время как Вы будете произведены от tail, это будет от где-нибудь посреди входа, а не конца.

Наконец, почему >/dev/null вместо, скажем, перемещения tail другому |? В следующем случае:

make_some_output | tee >(head -n 2; cat >/dev/null) | tail -n 2  # doesn't work

headstdout питается в канал к tail вместо консоли, которая не является тем, что мы хотим вообще.

9
08.03.2015, 22:12
1 ответ

Сегодня это довольно легко. Предполагая, что у вас есть следующие макеты, определенные в вашемrc.lua:

awful.layout.layouts = {
    awful.layout.suit.tile,
    awful.layout.suit.tile.bottom,
}

С помощью awful.screen.connect_for_each_screen(func)вы можете вызвать функцию для каждого существующего и созданного -в -будущем экране -. Очень вероятно, что у вас в rc.luaуже есть такой вызов (например для установки обоев или создания тегов ). В зависимости от вашей конфигурации вам нужно что-то вроде этого:

awful.screen.connect_for_each_screen(function(s)
    if s.geometry.width >= s.geometry.height then
      awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" }, s, awful.layout.layouts[1])
    else
      awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" }, s, awful.layout.layouts[2])
    end
  end)
5
27.01.2020, 20:07

Теги

Похожие вопросы