АнглийскийФранцузскийИспанский

Запустить серверы | Ubuntu > | Fedora > |


Значок OnWorks

FvwmScript - Интернет в облаке

Запустите FvwmScript в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда FvwmScript, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


FvwmScript - модуль для построения графического пользовательского интерфейса

СИНТАКСИС


FvwmScript должен быть порожден Fvwm. Это не будет работать из командной строки.

ОПИСАНИЕ


FvwmScript - это модуль, который позволяет создавать множество графических приложений, таких как
аксессуары для рабочего стола, панель кнопок со всплывающими меню, модальные диалоги ... При запуске,
FvwmScript читает файл, указанный в командной строке. Этот файл содержит
сценарий. Этот сценарий не включен в файл конфигурации Fvwm.

Сценарий FvwmScript полностью управляется с помощью клавиатуры. (Shift) -Tab циркулирует
вокруг виджетов, Return имитирует щелчок мыши, стрелки перемещают курсор или изменяют
значения виджета и Escape «отменяют» для Menu и PopupMenu.

ПРИЗЫВ


FvwmScript можно вызвать, вставив строку `Module FvwmScript name_of_script 'в
.fvwm2rc файл. Файл name_of_script может начинаться с косой черты. В этом случае это
полный путь, и файл будет прочитан. Если "name_of_script" не начинается с
слэш, FvwmScript будет выглядеть в нескольких разных местах. Если .fvwm2rc содержал
командная строка `* FvwmScript: Path path_of_the_script_directory ', FvwmScript попробует это
каталог. Если это не сработает, FvwmScript пробует каталог конфигурации системы и
каталог конфигурации пользователя, как описано в команде "Читать" в fvwm man
стр.

Команду для запуска FvwmScript можно поместить в отдельную строку, если FvwmScript должен быть
создается во время инициализации fvwm, может быть привязан к меню, кнопке мыши или
нажатие клавиши, чтобы вызвать его позже.

КОНФИГУРАЦИЯ ОПЦИИ


В файле конфигурации можно использовать следующие команды (см. фввм(1), раздел МОДУЛЬ
КОМАНДЫ подробнее). Они используются только в том случае, если соответствующие команды скрипта не
используется в сценарии.

* FvwmScript: DefaultFont шрифт
Задает используемый по умолчанию шрифт. Если не указано в этой команде или в
скрипт с командой Font, предполагается фиксированный шрифт.

* FvwmScript: DefaultFore цвет
Задает используемый по умолчанию цвет переднего плана. Если не указано в этом
или в скрипте с командой ForeColor используется черный цвет.

* FvwmScript: DefaultBack цвет
Задает используемый по умолчанию цвет фона. Если не указано в этом
или в сценарии с командой BackColor используется grey85.

* FvwmScript: DefaultHilight цвет
Задает используемый по умолчанию цвет подсветки. Если не указано в этой команде
или в скрипте с командой HilightColor используется grey100.

* FvwmScript: DefaultShadow цвет
Задает используемый по умолчанию цвет тени. Если не указано в этой команде
или в скрипте с командой ShadowColor используется grey55.

* FvwmScript: DefaultColorset набор цветов
Сообщает модулю использовать набор цветов набор цветов как набор цветов по умолчанию. Обратитесь к
Справочная страница FvwmTheme для получения подробной информации о наборах цветов.

АНАТОМИЯ OF A SCRIPT


FvwmScript использует определенный язык программирования. Сценарий состоит из пяти частей.
Заголовок содержит общие характеристики окна и свойства по умолчанию для всех
виджеты. Вторая часть содержит инструкции, которые выполняются при запуске
сценарий. Третья часть содержит периодические задания, которые выполняются каждую секунду. В
четвертая часть содержит инструкции, которые выполняются при выходе. И последняя часть содержит
описание виджетов. Виджет состоит из одиннадцати типов элементов: текстовых меток,
однострочный текстовый ввод, переключатели, флажок, кнопки, горизонтальные и вертикальные
полосы прокрутки, прямоугольники, всплывающие меню, swallowexecs и мини-полосы прокрутки.

ЗАГОЛОВОК OF A SCRIPT


Синтаксис следующий:

WindowTitle строка
Эта опция устанавливает заголовок окна.

размер окна ширина высота
Эта опция устанавливает размер окна. ширина и высота числовое значение.

WindowPosition x y
Эта опция устанавливает положение окна. x и y числовое значение.

Передний цвет {цвет}
Эта опция устанавливает цвет переднего плана по умолчанию для всех виджетов.

Цвет фона {цвет}
Эта опция устанавливает цвет фона по умолчанию для всех виджетов.

Цвет подсветки {цвет}
Этот параметр устанавливает цвет подсветки по умолчанию для всех виджетов.

Цвет тени {цвет}
Эта опция устанавливает цвет тени по умолчанию для всех виджетов.

Набор цветов {n}
Этот параметр устанавливает набор цветов по умолчанию для всех виджетов.

Шрифт {шрифт}
Эта опция устанавливает шрифт по умолчанию для всех виджетов.

ИспользоватьПолучитьтекст [locale_path]
Включите использование механизма gettext, который используется WindowLocaleTitle,
LocaleTitle, инструкции ChangeLocaleTitle и функция Gettext. Если нет
задан аргумент, используется каталог локалей FvwmScript по умолчанию. Этот каталог
в каталоге установки локали fvwm, а текстовый домен - FvwmScript
(префикс_установки / share / locale / * / LC_MESSAGES / FvwmScript.mo). Вы можете сбросить это
каталог или добавить несколько каталогов точно так же, как с LocalePath фввм
(см. страницу руководства fvwm). Эта инструкция должна быть помещена перед
Инструкция WindowLocaleTitle.

WindowLocaleTitle строка
Эта опция устанавливает заголовок окна, но использует каталог (ы) локали, определенный с помощью
ИспользоватьПолучитьтекст.

ИНИЦИАЛИЗАЦИЯ


Эта часть содержит инструкции, которые будут выполняться при запуске. Например:
В этом
Начинать
Сделайте "Exec cat tada.voc> / dev / dsp"
Указатель деформации 1
Установить $ ToDo = Перезагрузить
Конец
Эти инструкции используются для воспроизведения звука, перемещения указателя на виджет 1 и на
инициализировать $ ToDo на «Перезапуск» при каждом запуске.

ПЕРИОДИЧЕСКИЕ ЗАДАЧИ


Эта часть скрипта содержит инструкции, которые выполняются каждую секунду. Для
пример:
Периодические задачи
Начинать
Если (RemainderOfDiv (GetTime) 10) == 0 Тогда
Сделайте {Exec xcalc}
Конец
В этом примере показано, как запускать xcalc каждые 10 секунд.

УВОЛИТЬСЯ FUNCTION


Эта часть скрипта содержит инструкции, которые выполняются при выходе из скрипта.
(после инструкции Quit или если вы закроете окно с помощью Close, Delete или Destroy
команда fvwm). Например
QuitFunc
Начинать
До свидания {Эхо, пока}
Конец
Имейте в виду, что если вы использовали команду KillModule fvwm для закрытия скрипта, некоторые
инструкции или функции, которые полагаются на наличие канала связи между
скрипт и fvwm не будут выполняться (например, команда Do). Чтобы плавно убить
скрипт с командой fvwm см. КОМАНДЫ .

ГЛАВНАЯ OF A SCRIPT


Вторая часть скрипта содержит описание каждого виджета в скрипте.
Описание каждого виджета состоит из двух частей. Первая часть описывает исходные свойства,
Вторая часть содержит инструкции, которые выполняются, когда виджет получает сообщения.
Все виджеты могут отправлять и получать сообщения. Все сообщения обозначаются номером. В
сообщение «UserAction» отправляется виджету, когда пользователь работает с виджетом. Синтаксис
для первой части:
Идентификатор виджета № Число от 1 до 999 включительно.
Недвижимость
Строка типа
Размер ширина высота
Положение xy
Заголовок {строка}
Значение int
Максимальное значение целое
Минимальное значение, целое
Строка шрифта
ForeColor {color}
BackColor {цвет}
HilightColor {color}
ShadowColor {цвет}
Цветовой набор
Флаги flagsOpt
Параметр flagsOpt для Flags представляет собой список, разделенный пробелами, содержащий один или несколько
ключевые слова Скрытый, NoReliefString, без фокуса, левый / Центр / Правильно. Скрытый используется, чтобы
укажите, скрывается ли виджет при запуске. NoReliefString указывает, нарисованы ли строки
с облегчением или нет. без фокуса указывает, может ли виджет получить фокус клавиатуры или нет.
По умолчанию все виджеты получают фокус, кроме Rectangle, HDipstick и VDipstick, которые не могут.
Более того, виджеты NoFocus пропускаются, когда вы перемещаетесь по виджетам с
(Shift-) ярлык для ярлыка. левый / Центр / Правильно определяет позицию текста. Они применяются
только для ItemDraw, List, Menu, PopupMenu и PushButton. По умолчанию Центр для ItemDraw
и PushButton и левый для других виджетов.

LocaleTitle можно использовать вместо Title для использования каталога (ов) локали, определенного с помощью
ИспользоватьПолучитьтекст.

Должна быть указана позиция каждого виджета.

Синтаксис второй части:
Главная
Сообщение дела
Один клик:
Начинать
# список инструкций, которые будут
# выполняется, когда виджет получает
# сообщение "SingleClic". Это сообщение
# генерируется пользователем.
Конец
1:
Начинать
# список инструкций, которые будут
# выполняется, когда виджет получает
# сообщение 1
Конец
Конец

СПИСОК OF МИНИ


Есть пятнадцать видов виджетов.

CheckBox: Показать флажок со строкой.

Название: заголовок флажка.

Значение: если значение равно 1, флажок установлен, иначе нет.

Size свойство игнорируется.

HDipstick: Показать горизонтальный щуп.
Этот виджет можно использовать для отображения использования диска.

Значение: укажите текущее значение щупа.

Минимальное значение: укажите минимальное значение щупа.

Максимальное значение: укажите максимальное значение щупа.

Установлен минимальный размер 30x11.

HScrollBar: Отображение горизонтальной полосы прокрутки.

Значение: положение большого пальца.

Максимальное значение: верхний предел значения.

Минимальное значение: нижний предел значения.

Свойство высоты игнорируется, и устанавливается минимальная ширина. Ширина должна быть
по крайней мере, диапазон плюс 37, если все значения должны быть выбраны, например, минимум 0 и
max 10 имеет диапазон 11 и, следовательно, должна иметь минимальную ширину 48.

ItemDraw: Отображение значка и / или строки.

Название: строка для отображения.

Значок: значок для отображения.

Максимальное значение: x координата курсора.

Минимальное значение: y координата курсора.

Размер должен быть достаточно большим, чтобы содержать заголовок и / или значок.

Список: Отобразить список.
Список позволяет пользователю выбирать между различными вариантами.

Значение: укажите, какой вариант выбран.

Минимальное значение: Первый видимый вариант.

Название: title содержит параметры, отображаемые в списке. Синтаксис следующий:
{Вариант 1 | Вариант 2 | ... | Вариант N}. Все меню отображаются в верхней части окна.

Установлена ​​минимальная высота трех элементов, а ширина должна быть не менее
108

Меню: Отображение меню, в котором пользователь может выбрать вариант.
Элементы типа Menu располагаются слева направо в верхней части окна.
Свойства размера и положения игнорируются.

Значение: укажите, какой вариант выбран.

Название: title содержит параметры, отображаемые в меню. Синтаксис следующий:
{Вариант 1 | Вариант 2 | ... | Вариант N}.

Минипрокрутка: Отображение очень маленькой вертикальной полосы прокрутки.

Значение: положение большого пальца.

Максимальное значение: верхний предел значения.

Минимальное значение: нижний предел значения.

Установлен размер 19x34.

Всплывающее меню: Отображение всплывающего меню.

Значение: укажите, какой вариант выбран.

Название: заголовок имеет следующий синтаксис: {Вариант 1 | Вариант 2 | ... | Вариант N}. "Вариант
1 | Вариант 2 | ... | Вариант N "- всплывающее меню, которое отображается при нажатии кнопки мыши.
кнопку.

Свойство size игнорируется.

Нажать кнопку: Отображение кнопки со значком и / или строкой.

Название: эта строка имеет следующий синтаксис {Заголовок кнопки | Вариант 1 | Вариант
2 | Вариант 3 | ... | Вариант N}. «Вариант 1 | Вариант 2 | ... | Вариант N» - это всплывающее меню, которое
отображается при нажатии правой кнопки.

Значок: значок для отображения.

Кнопка сделана достаточно большой, чтобы соответствовать значку и / или метке.

RadioButton: Отображение радиокнопки со строкой.

Название: название радиокнопки.

Значение: если значение равно 1, флажок установлен, иначе нет.

Свойство размера игнорируется

Прямоугольные: Отобразить прямоугольник.
Этот тип виджета можно использовать для украшения окна.

Ласточка
Этот тип виджета заставляет FvwmScript порождать процесс и захватывать первый
окно, имя или ресурс которого равно Заголовку, и отобразить его в скрипте
окно.

Название: укажите имя окна, которое будет захвачено и отображено в скрипте
окно.

Ласточка: укажите командную строку для запуска процесса. Модули могут
также можно проглотить.

Значение: укажите вид границы. Возможное значение: -1, 0, 1.

Размер должен быть не менее 30х30.

Текстовое поле: Отображение поля ввода текста.
Поле ввода текста можно использовать для редактирования однострочной строки.

Название: содержимое текстового поля.

Значение: позиция точки вставки.

Минимальное значение: позиция конца выделения.

Максимальное значение: первый видимый символ заголовка

Свойство высоты игнорируется, ширина делается как минимум на 40 пикселей шире.
чем исходное содержимое.

V: Показать вертикальный щуп.

Значение: укажите текущее значение щупа.

Минимальное значение: укажите минимальное значение щупа.

Максимальное значение: укажите максимальное значение щупа.

Размер должен быть не менее 11х30.

VScrollBar: Отображение вертикальной полосы прокрутки.

Значение: положение большого пальца.

Максимальное значение: верхний предел значения.

Минимальное значение: нижний предел значения.

Свойство ширины игнорируется, и устанавливается минимальная высота. Высота должна
быть как минимум в диапазоне плюс 37, если все значения должны быть выбраны, например, минимум 0
а максимальное значение 10 имеет диапазон 11 и, следовательно, должно иметь минимальную высоту 48.

ИНСТРУКЦИЯ


Вот описание всех инструкций.

Скрыть виджет id : скрыть виджет с номером id.

Показатьвиджет id: показать пронумерованный виджет id.

ИзменениеЗначения id1 id2
Установите значение пронумерованного виджета id1 в id2.

чанжемаксвалуе id1 id2
Установите максимальное значение пронумерованного виджета id1 в id2.

ИзменитьМинимальноеЗначение id1 id2
Установите минимальное значение пронумерованного виджета id1 в id2.

ИзменитьЗаголовок id1 id2
Задайте заголовок пронумерованного виджета id1 в id2.

ChangeWindowTitle строка
Установите заголовок окна на строка.

Чанжевиндовитлефромарг нумарг
Установите заголовок окна равным значению нумарг-й аргумент скрипта.

ChangeLocaleTitle id1 id2
Как ChangeTitle, но использовать каталог (ы) языковых стандартов, определенных с помощью UseGettext.

ИзменитьИконка id1 id2
Установите значок виджета под номером id1 в id2.

ИзменитьForeColor id1 {цвет}
Установите цвет переднего плана пронумерованного виджета id1 к {цвет}.

ИзменитьНазадЦвет id1 {цвет}
Установите цвет фона пронумерованного виджета id1 к {цвет}.

ИзменитьЦветНабор id1 id2
Установите набор цветов для пронумерованного виджета id1 в id2. Указание виджета 0 устанавливает
набор цветов главного окна.

ИзменитьПоложение id1 x y
Переместите виджет с номером id1 позиционировать (x,y).

Изменить размер id1 ширина высота
Установите размер пронумерованного виджета id1 к (ширина,высота).

Изменить шрифт id1 ньюфонт
Установите шрифт пронумерованного виджета id1 в ньюфонт.

WarpPointer id
Переместите указатель мыши на виджет с номером id.

Записать в файл имя файла {str1} {str2} так далее
Записать в файл имя файла строка, которая является объединением всех аргументов
str1, str2, И т.д.

Делать {команду арг}
Выполните команду fvwm внутри блока Do. Любая команда fvwm, описанная в
Можно использовать справочную страницу fvwm2. Команды отправляются из этого модуля в главный fvwm.
программа для обработки. Длина команды и аргументов не может превышать 988
символы.

Установить $вар={ул1} {str2} так далее
Объедините все аргументы в строку и установите переменную $вар к этой строке.

Выйти: выйти из программы.

ОтправитьСигнал id1 id2
Отправить сообщение с номером id2 виджет id1.

SendToScript id_script {str11} {str2} так далее
Отправить сообщение сценарию, идентифицированному id_script. Сообщение - это
конкатенация str1, str2 ...

Основные Кейнаме Модификатор id SIG str1 str2 и т.д
Привязывает клавишу клавиатуры к инструкции

ОтправитьСигнал id SIG

и устанавливает "последнюю строку" для конкатенации str1, str2 ... (см.
LastString). В Кейнаме и Модификаторы поля определены как в fvwm
Ключевая команда.

АРГУМЕНТЫ


Большинство команд используют аргументы. Есть два типа аргументов: числа и строки. А
числовой аргумент - это значение от -32000 до +32000. Строка всегда
в окружении подтяжек. Переменные всегда начинаются с символа «$» и могут содержать оба
числа и строки.

ФУНКЦИИ


Все функции используют аргументы. Функции могут возвращать как строку, так и число. Синтаксис
это:
(функция аргумент1 аргумент2 и т. д.)
Вот полный список аргументов:

(Получить заголовок id)
Вернуть заголовок пронумерованного виджета id.

(получить значение id)
Вернуть текущее значение пронумерованного виджета id.

(Получить минимальное значение id)
Возвращает текущее минимальное значение пронумерованного виджета. id.

(Получить максимальное значение id)
Возвращает текущее максимальное значение пронумерованного виджета. id.

(Получить Форе id)
Вернуть текущее значение переднего плана RGB виджета с номером id в шестнадцатеричном формате
РРГГББ.

(Вернуться id)
Вернуть текущее значение фона RGB для пронумерованного виджета id в шестнадцатеричном формате
РРГГББ.

(ПолучитьHilight id)
Возвращает текущее значение подсветки RGB для пронумерованного виджета. id в шестнадцатеричном формате
РРГГББ.

(Получить Тень id)
Вернуть текущее значение тени RGB виджета с номером id в шестнадцатеричном формате
РРГГББ.

(ПолучитьВыход {ул} int1 int2)
Выполняет команду ул, получает стандартный вывод и возвращает слово, которое находится в
линия int1 и в положении int2. Если int2 равно -1, GetOutput возвращает
полная линия.

(NumToHex Int)
Вернуть шестнадцатеричное значение Int.

(HexToNum {ул})
Вернуть десятичное значение ул, ул должно быть шестнадцатеричным значением.

(Добавлять int1 int2)
Вернуть результат (int1+int2).

(Мульт int1 int2)
Вернуть результат (int1*int2).

(Раздел int1 int2)
Вернуть результат (int1/int2).

(стркопи {ул} int1 int2)
Вернуть строку, которая находится между позициями int1 и int2. Например, (StrCopy
{Hello} 1 2) возвращает {He}

(Сценарий запуска {ул})
Эта функция запускает скрипт с именем str и возвращает идентификационный номер.
Этот номер необходим для использования функций SendToScript и ReceiveFromScript.
Строка str содержит имя скрипта и некоторые аргументы.

(ПолучитьАргументСкрипта {Int})
Эта функция возвращает сценарий аргумента, используемый в функции LaunchScript. Если
int равно нулю, GetScriptArgument возвращает имя скрипта.

(Отец GetScript)
Эта функция возвращает идентификационный номер отца сценария.

(ReceivFromScript {Int})
Эта функция возвращает сообщение, отправленное скриптом с номером int.

(ОстатокDiv {int1 int2}): т
Эта функция возвращает остаток от деления (int1/int2).

(Получить время)
Эта функция возвращает время в секундах.

(ПолучитьPid)
Эта функция возвращает идентификатор процесса скрипта.

(Получить текст {ул})
Эта функция возвращает перевод ул используя каталог (ы) локали, определенный
с UseGettext.

(ОтправитьMsgAndGet {comId} {CMD} BOOL)
Отправляет команду CMD с идентификатором comId к внешней программе, готовой к
взаимодействовать со сценарием, используя протокол, специфичный для FvwmScript. Если BOOL является 0
FvwmScript не ждет ответа от внешней программы. В этом случае
возвращаемое значение - 1, если сообщение может быть отправлено во внешнюю программу, и 0, если
это не тот случай. Если BOOL равно 1, то FvwmScript ждет ответа от
внешняя программа и возвращаемое значение - это ответ (строка не более 32000
символы). В случае сбоя связи возвращается 0. См. Раздел
A СВЯЗЬ ПРОТОКОЛ для описания используемого протокола связи.

(Разобрать {ул} Int)
в котором ул должен быть строкой в ​​форме:
X1S1X2S2X3S3...SnXn
где Xn - числа, содержащие четыре десятичных знака, а Sn - строки
длина точно Xn. Возвращаемое значение - строка SInt. Если Int вне диапазона
(например,> n) возвращаемое значение - пустая строка. Если ул не из указанных
форме, возвращаемое значение непредсказуемо (но в среднем пусто). Эта функция
полезен для обработки строк, возвращаемых функцией SendMsgAndGet.

(Последняя строка)
Эта функция возвращает «текущую рабочую строку» для инструкции Key и
Команда SendString (см. КОМАНДЫ раздел). При запуске эта строка пуста, но
при обнаружении привязки ключа (соответственно, получена команда SendString),
тогда эта строка устанавливается в строку, связанную с инструкцией (соответственно,
к команде).

Условный ПЕТЛИ


Есть три вида условных циклов. Инструкция «Если-то-еще» имеет
следующий синтаксис:
Если $ ToDo == {Open xcalc} Тогда
Do {Exec xcalc &} # Список инструкций
Еще
Начинать
Do {Exec killall xcalc &} # Список инструкций
Сделайте {Exec echo xcalc kill> / dev / console}
Конец
Вторая часть «Else-Begin-End» необязательна. Если цикл содержит только одну инструкцию,
Начало и конец можно не указывать. Инструкция «While-Do» имеет следующий синтаксис:
Пока $ i <5 Do
Начинать
Set $ ​​i = (Add i 1) # Список инструкций
Конец
Две строки можно сравнить с помощью «==», а два числа можно сравнить с помощью «<», «<=»,
"==", "> =", ">". Цикл «For-Do-Begin-End» имеет следующий синтаксис:
Для $ i = от 1 до 20 Do
Начинать
Do {Exec xcalc &} # Список инструкций
Конец

КОМАНДЫ


Следующая команда fvwm может быть выполнена в любое время

сендтомодуле ИмяСкрипта ОтправитьСтрока id SIG ул

он отправляет любому модулю с псевдонимом или именем, которое соответствует ИмяСкрипта строка

ОтправитьСтрока id SIG ул

Когда FvwmScript получает такое сообщение, он отправляет его виджету. id сигнал пронумерован
SIG и строка ул можно получить с помощью функции LastString. Давайте дадим
пример. Скажем, у вас есть скрипт MyScript с виджетом:
Виджет 50
Недвижимость
Тип PushButton
Название {Quit}
...
Главная
Сообщение дела

Один клик:
Начинать
Выход
Конец

1:
Начинать
Установить $ str = (LastString)
Если $ str == {Quit} Тогда
Выход
Еще
ChangeTitle 33 $ str
Конец

Конец
Тогда команда
SendToModule MyScript SendString 50 1 стр.
заставляет MyScript завершиться, если str равно "Quit", и если нет, он изменяет заголовок
Виджет 33 на ул.

Эту команду можно использовать для изменения заголовка окна.

сендтомодуле ИмяСкрипта ChangeWindowTitle новое название [старое название]

это приводит к тому, что любой модуль с псевдонимом или именем, которое соответствует ИмяСкрипта меняет его
связанный заголовок окна с новое название. Необязательный аргумент старое название имеет смысл, когда есть
- это несколько экземпляров одного и того же скрипта. Это позволяет избежать изменения названия
все эти экземпляры, указав имя окна, связанного с целевым скриптом
(см. пример ниже).

+ I Модуль FvwmScript FvwmStorageSend "/ dev / hda6"
+ Жду FvwmStorageSend
+ Я SendToModule FvwmStorageSend ChangeWindowTitle HDA6
+ I Модуль FvwmScript FvwmStorageSend "/ dev / hda1"
+ Жду FvwmStorageSend
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA1 FvwmStorageSend

Без аргумента FvwmStorageSend в последнем случае команда SendToModule имела бы
изменил на HDA1 имя обоих экземпляров FvwmStorageSend.

ПРИМЕРЫ


Вы найдете примеры скриптов в каталоге конфигурации fvwm.

FvwmScript-BellSetup, FvwmScript-KeyboardSetup, FvwmScript-PointerSetup и FvwmScript-
ScreenSetup - это набор скриптов, которые изменяют настройки X. Эти скрипты сохраняют настройки
в файл с именем ~ / .xinit-fvwmrc (Если вы хотите использовать другое имя файла, укажите его как
первый аргумент скрипта). Если вы хотите загружать эти настройки при каждом запуске,
перед
запуск fvwm.

FvwmScript-BaseConfig изменяет фокус fvwm и политику мыши разбиения по страницам, размещение окон,
непрозрачность и другие функции команд перемещения и изменения размера, привязки и затенения
анимация. Этот сценарий сохраняет настройки в файл с именем .FvwmBaseConfig в пользовательской
каталог данных (например, $ HOME / .fvwm или $ FVWM_USERDIR, если он установлен). Если вы хотите загрузить эти
предпочтения при каждом запуске вы должны добавить строку "Read .FvwmBaseConfig" в свой fvwm
конфигурационный файл. Если вы хотите использовать другое имя файла, укажите его в качестве первого аргумента
сценария. Когда вы нажимаете ОК или Применить функцию fvwm, которую вы можете определить с именем
Вызывается BaseConfigOkFunc или BaseConfigApplyFunc. Это позволяет перезагружать определенные
стили приложений, которые были уничтожены сценарием (например, AddToFunc BaseConfigOkFunc I Read
MyAppStyle).

FvwmScript-Buttons - это панель кнопок, которая может заменить FvwmButtons (этот скрипт поддерживает
всплывающих меню и требует xload, xclock, FvwmPager, TkDesk). FvwmScript-Colorset позволяет
вы можете редактировать свой набор цветов (см. FvwmTheme). FvwmScript-Date позволяет установить дату и
время. FvwmScript-FileBrowser - это файловый браузер, используемый другими скриптами. FvwmScript-
Найти - это элементарный интерфейс для поиска. FvwmScript-Quit позволяет выйти из fvwm, перезапустить
fvwm или другой оконный менеджер, либо выключите и перезагрузите компьютер. FvwmScript-
ScreenDump - это дампер экрана. FvwmScript-WidgetDemo - чистый пример сценария. Увидеть
следующий раздел для FvwmScript-ComExample.

A СВЯЗЬ ПРОТОКОЛ


FvwmScript - слабый (но простой) язык программирования. Если вам нужно иметь дело с большим количеством
данных и / или вам нужно использовать сложные алгоритмы, вы должны использовать внешнюю программу (в perl
например) и «отправьте» желаемую информацию в ваш сценарий FvwmScript. Первое
подход заключается в использовании функции GetOutput. Это просто, но вам следует перезапустить
внешней программе каждый раз, когда вам нужна информация от нее (и это может вызвать
проблемы). Второй подход - использовать функцию SendMsgAndGet, которая расширяет
FvwmScript с использованием любого языка программирования, который может работать с именованными каналами (fifos). Мы
опишите это решение в этом разделе. (Третий подход - использовать fvwm-themes-com из
пакет fvwm-themes, но на самом деле метод SendMsgAndGet является реализацией
fvwm-themes-com внутри FvwmScript, и это дает лучшую производительность).

По сути, вы запускаете "внешнюю" программу (сокращенно программу) из вашего FvwmScript.
сценарий (сценарий для краткости). Эта программа работает в фоновом режиме, и вы используете
Функция SendMsgAndGet в вашем скрипте, чтобы задавать вопросы или давать инструкции
программа. Программа должна строго соблюдать определенный протокол связи. Первый из
все есть идентификатор comId для связи он должен содержать идентификатор процесса
скрипта для хорошей реализации протокола (используйте функцию GetPid и передайте
что собой представляет comId через опцию к программе). Протокол использует два фифо, в пользовательском fvwm
каталог с именем: .tmp-com-in-comId и .tmp-com-out-comId. Программа должна создавать и
слушать на .tmp-com-in-comId фифо. Затем, когда FvwmScript выполнит функцию
форма:

Установить $ answer = (SendMsgAndGet {comId} {CMD} BOOL)

FvwmScript пишет CMD на этом фифо. Таким образом программа сможет прочитать CMD а может
выполнить соответствующее действие (он должен удалить in FIFO для поддержки нескольких
коммуникации). Если BOOL равно 0, FvwmScript не ждет ответа от программы и
вернуть 1, если предыдущие действия завершились успешно, и 0, если они не удались (тогда программа должна
назад "в FIFO). Если BOOL равно 1, то FvwmScript ждет (20 секунд) ответа от
программа и, в свою очередь, возвращает ответ скрипту (обратите внимание, что BOOL не передается
программа, поскольку она должна знать, на какие команды нужен ответ). Для ответа программа создает
.tmp-com-out-comId fifo и пишет на нем ответ. Программа должна подождать, пока
FvwmScript читает ответ, а затем он должен удалить выходной файл и вернуться к входящему.
фифо. Ответ должен состоять из одной строки не более 32000 знаков (см.
в функции Parse для обработки нескольких строк как одной строки).

Простой способ понять этот протокол и написать сценарии и программы, которые его используют, - это
чтобы взглянуть на (бесполезный) пример FvwmScript-ComExample и fvwm-script-
ComExample.pl (находится в каталоге данных fvwm). Более того, эта реализация
протокола решает следующие вопросы: что делать, если скрипт завершился по плохой причине?
Что делать, если программа закрылась по плохой причине? ...так далее.

Используйте FvwmScript онлайн с помощью сервисов onworks.net


Ad


Ad