LINUX.ORG.RU

Ещё несколько вопросов по awesome wm

 


0

4

Продолжаю пилить awesome и задавать тупые вопросы.
1. Можно ли сделать, чтобы меню убиралось не только по нажатию на esc или иконке на панели, но и по любому месту на экране вне этого меню?
2. Можно ли так сделать для wibox'а?
3. Во многих wm есть возможность при подносе окна к краям экрана делать вот так . Как такое можно реализовать во floating layout'e . По-моему такое уже есть по хоткеям (мне будет достаточно и хоткеев, но если можно по краям экрана тоже, то вообще шик). Прошу не заводить дискуссии на тему того, что это «не нужно»,а мне , раз я так люблю такие фичи, стоит переходить на композитные wm или куда-нибудь ещё. Тайлингом я тоже часто пользуюсь, но иногда нужно в плавающее окно расположить удобно без смены layout'a.
4. Как нестроить появление новых окон под курсором мыши ?

★★★★★

1. скорее всего можно, посмотри как устроено меню внутри( всегда так делай, открываешь код, разбираешься, довольно быстро понимаешь что всё очень просто) смотри keygrabber, mousegrabber, как минимум точно можно просто сделать пропадание меню после того как мышь покинет его.
2. тут тоже самое, посмотри в модулях как реализовано.
3. опять же, я такого не встречал, но технически тебе никто не мешает это сделать, геометрия экрана и клиентов тебе доступна, делай что хочешь.
4. что то вроде такого client.connect_signal(«manage», move_to_cursor)

LiBer ★★★
()
Последнее исправление: LiBer (всего исправлений: 2)

Можно ли сделать, чтобы меню убиралось не только по нажатию на esc или иконке на панели, но и по любому месту на экране вне этого меню?

Для 3.4.x где-то валялся патч, на 3.5.x его не портировали. Я пытался запилить, но не хватило терпения.

Можно ли так сделать для wibox'а?

Читай выше. Функции скрытия можно портировать на всё, было бы желание.

Во многих wm есть возможность при подносе окна к краям экрана делать вот так . Как такое можно реализовать во floating layout'e

Можно запилить хитрые правила для краёв кучей способов. Просто читай это до полного просвещения.

Как нестроить появление новых окон под курсором мыши ?

Читай выше.

r3lgar ★★★★★
()

1. Для этого «любое место» должно уметь обрабатывать мышеклики. Например в дефолтном конфиге реакция на мышь прописана для пустого стола root.buttons, для окон программ clientbuttons и т. д. Модифицируй эти обработчики.

2. Внезапно, меню осома и есть стандартный wibox с расположенными на нем элементами.

3. Позиция и размеры окна задаются командой client:geometry(arg1), просто повесь на хоткеи. Для того что сделать реакцию на перетаскивание к краю придется править awful.mouse.client.move. Можешь также посмотреть как сделаны активные грани с помощью прозрачных wibox'ов в моем конфиге, но они реагируют на клики мыши, а не на перетаскивание.

4. В конфиге функция

client.connect_signal("manage", function (c, startup)
там заданы все манипуляции над новым окном, добавь туда установку геометрии.

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

Worron ★★★
()
Ответ на: комментарий от Worron

Я пытался читать api, но в lua не очень силён. Всё сложно и непонятно. Если чего-то нет в мануале (именно мануале, а не апи), то я уже не могу этим воспользоваться.

sudopacman ★★★★★
() автор топика
Ответ на: комментарий от sudopacman

Это плохо. Старайся врубаться, я кое-как худо-бедно в lua из-за этого учусь, чтобы свой Awesome кастить.

DeadEye ★★★★★
()
Ответ на: комментарий от DeadEye

Пытаюсь сдерживать себя и не писать на форум пока сам не подумаю над решением, но полностью шпилить код на lua я всё-таки не способен.

sudopacman ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.