LINUX.ORG.RU

FVWM


0

0

Изгуглился весь уже :)

Уважаемые ЛОРовцы, как в сабже сделать Move (две точки поочерёдно) одним хоткеем?

Я прячу FVWMButtons через AnimatedMove. Просто два разных не очень удобно и достаточно расточительно :)

Ответ на: комментарий от ananas

К. О. ? Не узнал.

Вопрос стоит в том как её писать? Ничего по теме найти не удалось.

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

Это точно, может быть fvwm не дружелюбный для первичных юзеров, но ман у него хороший и полный.
А функции на хоткеи это стандартная же пратика, даже чтобы сделать AnimatedMove иногда надо бы анимацию сменить. Плюс ещё что нибудь.
У меня все панельки и стартуются с того же хоткея, с которого выдвигаются. Оно удобно часто бывает.

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

> В принципе, можно, но как быть с панелями снизу или по бокам экрана?

RTFM:

WindowShade [bool] | [[ShadeAgain] direction]

the direction argument can be used. Any of the strings «North», «South», «West», «East», «NorthWest», «NorthEast», «SouthWest», «SouthEast» or «Last» can be given.

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

И получится что по хоткею будет сначала первый мув, потом второй. На одно нажатие :) А как сделать чтобы на одно нажатие первый, а на второе второй? Я про это спрашиваю.

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

Некоторое время назад тоже задавался этим вопросом, оказалось проще простого. Трюк тот же, что и для использования одного хоткея для показывания окна и его скрытия.
[code]
DestroyFunc ShowInfoPanel
AddToFunc ShowInfoPanel I Next («InfoPanel») Resize 150p 800p
+    I SetAnimation 30
+    I Next («InfoPanel») AnimatedMove 1130p 0   
+    I Key t SW M HideInfoPanel
+    I Key r SW M ResizeMove 1126p 800p 0 0

DestroyFunc HideInfoPanel
AddToFunc HideInfoPanel I SetAnimation 30
+    I Next («InfoPanel») AnimatedMove 1278p 0
+    I Next («InfoPanel») Resize 2p 800p
+    I Key t SW M ShowInfoPanel
+    I Key r SW M ResizeMove 1274p 800p 0 0

Key t SW M HideInfoPanel
[/code]

Надеюсь пример ясен. Функции могут подменяться бесконечно конечно, если есть желание поизвращаться:)

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

>А как сделать чтобы на одно нажатие первый, а на второе второй?

А. вот в чём дело =) Ну. Тут куча вариантов, например

1. Ввести переменную состояния через SetEnv, и в PipeRead основываясь на её значении решать, какое действие делать при каком нажатии (имхо самый прямой выход)

2. Написать две функции - первую и вторую. На хоткей повесить первую. Первая собственно делает первый мув, и переопределяет данный хоткей на вторую функцию. Ну а вторая делает второй мув, и - дальше что уж вам там надо

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

Юзать переменные окружения для данных дел - это тот ещё костыль. Реально оправдано их использования в двух случаях, в порядке убывания важности:
-когда нужно передать данные дочернему процессу
-когда нет других способов определить состояние, которое порадила функция.

Всё таки надо понимать, что SetEnv это не создание переменной, а создание переменной окружения. Если уж очень хочется поскриптовать по человечески - есть для этих дел модуль с перлом.

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

>Если уж очень хочется поскриптовать по человечески - есть для этих дел модуль с перлом

по человечески

с перлом

Одному мне видится противоречие? =)

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

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

>Одному мне видится противоречие? =)

Конечно одному тебе - модуль для написания на первле идёт в стандартной поставке. Перл там работает через стандартный для fvwm интерфейс для модулей - пайпы с протоколом. Работает это без накладных расходов и удобно. Для программирования самое то.
А пайприд обращается к шелу, потом ловит выхлоп шела. Для нормальных приложений обращаться к шелу по мелочам и без веских причин - вообще-то не принято.

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

>Конечно одному тебе - модуль для написания на первле идёт в стандартной поставке. Перл там работает через стандартный для fvwm интерфейс для модулей - пайпы с протоколом. Работает это без накладных расходов и удобно. Для программирования самое то.

Знаю, видел, спасибо Капитан!

Да, есть ещё аналогичный модуль для Python, только не знаю как он работает с последними версиями, ибо написан давно.

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

Вот спасибо. Решение простое и универсальное. Самое оно.

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

Ну с пёрлом лень ковыряться. Да и пайприд штука полезная, но тоже лень. :)

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