англійськафранцузькийіспанська

Запуск серверів | 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" може починатися з косої риски, у цьому випадку це a
повний шлях, і файл прочитано. Якщо "name_of_script" не починається з a
косою рискою, FvwmScript буде виглядати в кількох різних місцях. Якщо файл .fvwm2rc містив файл
командний рядок `*FvwmScript: шлях path_of_the_script_directory', FvwmScript спробує це
каталог. Якщо це не спрацює, FvwmScript спробує каталог конфігурації системи та
каталог конфігурації користувача, як описано в команді «Читання» у man fvwm
стр.

Команда для запуску FvwmScript може бути розміщена в рядку окремо, якщо FvwmScript має бути
створений під час ініціалізації fvwm, або може бути прив’язаний до меню чи кнопки миші або
натискання клавіші, щоб викликати його пізніше.

КОНФІГУРАЦІЯ ВАРІАНТИ


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

*FvwmScript: шрифт за замовчуванням шрифт
Визначає шрифт за замовчуванням, який буде використовуватися. Якщо не вказано цією командою або в
сценарій з командою Font, передбачається фіксований шрифт.

*FvwmScript: DefaultFore color
Визначає колір переднього плану за замовчуванням, який буде використано. Якщо не зазначено з цим
або в скрипті з командою ForeColor використовується чорний колір.

*FvwmScript: DefaultBack color
Визначає колір фону за замовчуванням, який буде використовуватися. Якщо не зазначено з цим
або в сценарії з командою BackColor використовується grey85.

*FvwmScript: DefaultHilight color
Визначає колір підсвічування за замовчуванням, який буде використано. Якщо не вказано цією командою
або в скрипті з командою HilightColor використовується grey100.

*FvwmScript: Тінь за замовчуванням color
Визначає колір тіні за замовчуванням, який буде використано. Якщо не вказано цією командою
або в сценарії з командою ShadowColor використовується grey55.

*FvwmScript: DefaultColorset набір кольорів
Вказує модулю використовувати набір кольорів набір кольорів як набір кольорів за замовчуванням. Зверніться до
Довідкова сторінка FvwmTheme для детальної інформації про набори кольорів.

АНАТОМІЯ OF A SCRIPT


FvwmScript використовує певну мову програмування. Сценарій складається з п'яти частин.
Заголовок містить загальні характеристики вікна та властивості за замовчуванням для всіх
віджети. Друга частина містить інструкції, які виконуються при запуску
сценарій. Третя частина містить періодичні завдання, які виконуються щосекунди. The
четверта частина містить інструкції, які виконуються при виході. І остання частина містить
опис віджетів. Віджет складається з одинадцяти типів елементів: текстових міток,
однорядкове введення тексту, перемикач, прапорець, кнопки, горизонтальні та вертикальні
смуги прокрутки, прямокутники, спливаючі меню, swallowexecs та міні-смуги прокрутки.

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


Синтаксис виглядає наступним чином:

WindowTitle рядок
Цей параметр встановлює назву вікна.

Розмір вікна ширина висота
Цей параметр встановлює розмір вікна. ширина і висота мають числове значення.

WindowPosition x y
Цей параметр встановлює положення вікна. x і y мають числове значення.

ForeColor {color}
Цей параметр встановлює колір переднього плану за замовчуванням для всіх віджетів.

BackColor {color}
Цей параметр встановлює колір фону за замовчуванням для всіх віджетів.

HilightColor {color}
Цей параметр встановлює колір підсвічування за замовчуванням для всіх віджетів.

ShadowColor {color}
Цей параметр встановлює колір тіні за замовчуванням для всіх віджетів.

Набір кольорів {n}
Цей параметр встановлює набір кольорів за замовчуванням для всіх віджетів.

Шрифт {шрифт}
Цей параметр встановлює шрифт за замовчуванням для всіх віджетів.

Використовуйте Gettext [locale_path]
Увімкнути використання механізму gettext, який використовується WindowLocaleTitle,
Інструкції LocaleTitle, ChangeLocaleTitle та функція Gettext. Якщо ні
задається аргумент, використовується каталог мовних стандартів FvwmScript. Цей каталог є
у каталозі інсталяції fvwm, а текстовим доменом є FvwmScript
(install_prefix/share/locale/*/LC_MESSAGES/FvwmScript.mo). Ви можете скинути це
каталог або додати деякі каталоги точно так само, як і з LocalePath fvwm
команду (див. сторінку посібника з fvwm). Цю інструкцію слід розмістити перед
Інструкція WindowLocaleTitle.

WindowLocaleTitle рядок
Цей параметр встановлює назву вікна, але використовує каталог(и) мовних стандартів, визначений за допомогою
Використовуйте Gettext.

ІНІЦІАЛІЗАЦІЯ


Ця частина містить інструкції, які будуть виконуватися під час запуску. Наприклад:
В цьому
Починати
Виконайте "Exec cat tada.voc > /dev/dsp"
WarpPointer 1
Встановіть $ToDo=Перезапуск
кінець
Ці інструкції використовуються для відтворення звуку, переміщення вказівника на віджет 1 і на
ініціалізуйте $ToDo на "Restart" при кожному запуску.

ПЕРІОДИЧНИЙ ЗАВДАННЯ


Ця частина сценарію містить інструкції, які виконуються щосекунди. Для
приклад:
Періодичнізавдання
Починати
Якщо (RemainderOfDiv (GetTime) 10)==0 Тоді
Виконайте {Exec xcalc}
кінець
У цьому прикладі показано, як запускати xcalc кожні 10 секунд.

THE ВИХІД ФУНКЦІЯ


Ця частина сценарію містить інструкції, які виконуються після завершення роботи сценарію
(після вказівки Вийти або якщо ви закриєте вікно за допомогою кнопок Закрити, Видалити або Знищити
Команда fvwm). Наприклад
QuitFunc
Починати
{Echo bye, bye}
кінець
Майте на увазі, що якщо ви використали команду KillModule fvwm, щоб закрити сценарій, деякі
інструкції або функції, які покладаються на існування зв’язку між
скрипт і fvwm не виконуватимуться (наприклад, команда Do). Щоб плавно вбити а
сценарій з командою fvwm див КОМАНДИ .

ОСНОВНІ OF A SCRIPT


Друга частина сценарію містить опис кожного віджета в скрипті.
Кожен опис віджета складається з двох частин. У першій частині описуються початкові властивості
друга частина містить інструкції, які виконуються, коли віджет отримує повідомлення.
Усі віджети можуть надсилати та отримувати повідомлення. Усі повідомлення ідентифікуються номером. The
повідомлення «UserAction» надсилається віджету, коли користувач використовує віджет. Синтаксис
для першої частини це:
Ідентифікатор віджета № Число від 1 до 999 включно
властивість
Введіть рядок
Розмір ширина висота
Позиція xy
Назва { рядок }
Значення внутр
MaxValue int
MinValue Int
Шрифтовий рядок
ForeColor { колір }
BackColor { колір }
HilightColor { колір }
ShadowColor { колір }
Colorset int
Прапори прапориОпт
Параметр flagsOpt для прапорів — це список, розділений пробілом, що містить один або кілька з
ключові слова прихований, NoReliefString, NoFocus, Ліве / Центр / правий. прихований використовується
вкажіть, чи приховано віджет під час запуску. NoReliefString визначає, чи малюються рядки
з полегшенням чи ні. NoFocus визначає, чи може віджет отримати фокус клавіатури чи ні.
За замовчуванням усі віджети приймають фокус, крім Rectangle, HDipstick і VDipstick, які не можуть.
Більше того, віджети NoFocus пропускаються, коли ви циркулюєте навколо віджетів за допомогою
(Shift-) Скорочення вкладки. Ліве / Центр / правий визначає позицію тексту. Це стосується
тільки для ItemDraw, List, Menu, PopupMenu та PushButton. За замовчуванням є Центр для ItemDraw
і PushButton і Ліве для інших віджетів.

LocaleTitle можна використовувати замість Title для використання каталогу мовних стандартів, визначених за допомогою
Використовуйте Gettext.

Необхідно вказати позицію кожного віджета.

Синтаксис другої частини:
головний
Повідомлення справи про
SingleClic:
Починати
# список інструкцій, які будуть
# виконується, коли віджет отримує
# повідомлення "SingleClic". Це повідомлення
# створений користувачем.
кінець
1:
Починати
# список інструкцій, які будуть
# виконується, коли віджет отримує
# повідомлення 1
кінець
кінець

СПИСОК OF ВІДЖЕТИ


Існує п'ятнадцять типів віджетів.

CheckBox: Показати прапорець із рядком.

назва: назва прапорця.

значення: якщо значення дорівнює 1, прапорець ставиться, інакше ні.

повне г, повне г,, показали, від, номер, XNUMX Розмір властивість ігнорується.

HDlipstick: Відображення горизонтального щупа.
Цей віджет можна використовувати для відображення використання диска.

значення: вкажіть поточне значення щупа.

MinValue: вкажіть мінімальне значення щупа.

MaxValue: вкажіть максимальне значення щупа.

Накладається мінімальний розмір 30x11.

HScrollBar: відображення горизонтальної смуги прокрутки.

значення: положення великого пальця.

MaxValue: верхня межа значення.

MinValue: нижня межа значення.

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

ItemDraw: Відображення значка та/або рядка.

назва: рядок для відображення.

Іконка: значок для відображення.

MaxValue: x координата курсору.

MinValue: координата y курсору.

Розмір робиться достатньо великим, щоб містити назву та/або піктограму.

список: Відображення списку.
Список дозволяє користувачеві вибирати між різними варіантами.

значення: вкажіть, який параметр вибрано.

MinValue: перший видимий варіант.

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

Накладається мінімальна висота трьох елементів, а ширина – не менше
108.

меню: Відображення меню, яке дозволяє користувачеві вибрати параметр.
Пункти типу Меню розташовані зліва направо вздовж верхньої частини вікна.
Властивості розміру та положення ігноруються.

значення: вкажіть, який параметр вибрано.

назва: title містить параметри, які відображаються в меню. Синтаксис такий:
{Варіант 1|Варіант 2|...|Варіант N}.

MiniScroll: відображення дуже маленької вертикальної смуги прокрутки.

значення: положення великого пальця.

MaxValue: верхня межа значення.

MinValue: нижня межа значення.

Розмір встановлено 19х34.

PopupMenu: Відображення спливаючого меню.

значення: вкажіть, який параметр вибрано.

назва: заголовок має такий синтаксис: {Варіант 1|Варіант 2|...|Варіант N}."
1|Option 2|...|Option N" — це спливаюче меню, яке відображається при натисканні миші
кнопки.

Властивість size ігнорується.

Нажимна Кнопка: Відображення кнопки зі значком та/або рядком.

назва: цей рядок має такий синтаксис {Назва кнопки|Варіант 1|Варіант
2|Варіант3|...|Варіант N}. "Варіант 1|Варіант 2|...|Варіант N" - це спливаюче меню, яке
відображається при натисканні правої кнопки.

Іконка: значок для відображення.

Кнопка зроблена достатньо великою, щоб вмістити піктограму та/або етикетку.

RadioButton: Відображати перемикач із рядком.

назва: назва перемикача.

значення: якщо значення дорівнює 1, прапорець ставиться, інакше ні.

Властивість size ігнорується

Прямокутник: Відображення прямокутника.
Цей тип віджетів можна використовувати для прикраси вікна.

SwallowExec
Цей тип віджетів змушує FvwmScript породжувати процес і захоплювати перший
вікно, ім’я або ресурс якого дорівнює Title, і відобразити його в скрипті
вікна.

назва: вкажіть ім'я вікна, яке буде захоплено та відображено в скрипті
вікна.

SwallowExec: вкажіть командний рядок, який потрібно виконати для створення процесу. Модулі можуть
також проковтнути.

значення: вкажіть вигляд кордону. Можливе значення: -1, 0, 1.

Розмір виготовляється не менше 30х30

TextField: Відображення поля введення тексту.
Поле введення тексту можна використовувати для редагування однорядкового рядка.

назва: вміст текстового поля.

значення: положення точки вставки.

MinValue: положення кінця виділення.

MaxValue: перший видимий символ назви

Властивість висоти ігнорується, ширина має бути щонайменше на 40 пікселів ширшою
ніж початковий вміст.

VDipstick: Відображення вертикального щупа.

значення: вкажіть поточне значення щупа.

MinValue: вкажіть мінімальне значення щупа.

MaxValue: вкажіть максимальне значення щупа.

Розмір виготовляється не менше 11х30.

VScrollBar: відображення вертикальної смуги прокрутки.

значення: положення великого пальця.

MaxValue: верхня межа значення.

MinValue: нижня межа значення.

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

ІНСТРУКЦІЯ


Ось опис усіх інструкцій.

Приховати віджет id : приховати пронумерований віджет id.

ShowWidget id: показати пронумерований віджет id.

ChangeValue id1 id2
Встановіть значення віджета з номером id1 до id2.

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

ChangeMinValue id1 id2
Встановіть мінімальне значення нумерованого віджета id1 до id2.

Змінити заголовок id1 id2
Встановіть нумерацію заголовка віджета id1 до id2.

ChangeWindowTitle рядок
Встановіть назву вікна на рядок.

ChangeWindowTitleFromArg numarg
Установіть для заголовка вікна значення numarg-ий аргумент сценарію.

ChangeLocaleTitle id1 id2
Як ChangeTitle, але використовуйте каталог(и) мовних стандартів, визначений за допомогою UseGettext.

Змінити значок id1 id2
Встановіть нумерацію значка віджета id1 до id2.

ChangeForeColor id1 {color}
Встановіть колір переднього плану нумерованого віджета id1 до {color}.

ChangeBackColor id1 {color}
Встановіть колір фону нумерованого віджета id1 до {color}.

ChangeColorSet id1 id2
Встановіть пронумерований набір кольорів віджета id1 до id2. Вказавши віджет 0, встановлюється параметр
набір кольорів головного вікна.

Змінити позицію id1 x y
Перемістіть пронумерований віджет id1 позиціонувати (x,y).

Змінити розмір id1 ширина висота
Установіть розмір нумерованого віджета id1 до (ширина,висота).

Змінити шрифт id1 newfont
Встановіть нумерований шрифт віджета id1 до newfont.

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

WriteToFile ім'я файлу {str1} {str2} тощо
Запишіть у файл ім'я файлу рядок, який є конкатенацією всіх аргументів
str1, str2, І т.д.

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

Встановіть $було={вул1} {str2} тощо
Об’єднайте всі аргументи в рядок і встановіть змінну $було до цього рядка.

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

SendSignal id1 id2
Надішліть повідомлення з номером id2 до віджета id1.

SendToScript id_script {str11} {str2} тощо
Надішліть повідомлення сценарію, визначеному id_script. Повідомлення є
конкатенація str1, str2...

ключ Ключове ім'я Модифікатор id сиг str1 str2 і т.д.
Прив’язує клавішу клавіатури до інструкції

SendSignal id сиг

і встановлює "останній рядок" на конкатенацію str1, str2... (див
Функція LastString). The Ключове ім'я і Модифікатори поля визначаються як у fvwm
Ключова команда.

АРГУМЕНТИ


Більшість команд використовують аргументи. Є два види аргументів: числа та рядки. А
числовий аргумент – це значення між -32000 і +32000. Нитка завжди
оточений брекетами. Змінні завжди починаються з символу "$" і можуть містити обидва
числа та рядки.

ФУНКЦІЇ


Усі функції використовують аргументи. Функції можуть повертати як рядок, так і число. Синтаксис
це:
(функція аргумент1 аргумент2 тощо)
Ось повний список аргументів:

(GetTitle id)
Поверніть назву віджета з номером id.

(GetValue id)
Повернути поточне значення пронумерованого віджета id.

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

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

(GetFore id)
Повернути поточне значення переднього плану RGB нумерованого віджета id у шістнадцятковому форматі
RRGGBB.

(Повертатися id)
Повернути поточне значення фону RGB для нумерованого віджета id у шістнадцятковому форматі
RRGGBB.

(GetHilight id)
Повернути поточне значення підсвічування RGB нумерованого віджета id у шістнадцятковому форматі
RRGGBB.

(GetShadow id)
Повернути поточне значення тіні RGB нумерованого віджета id у шістнадцятковому форматі
RRGGBB.

(GetOutput {вул} int1 int2)
Виконує команду вул, отримує стандартний вихід і повертає слово, яке знаходиться в
лінії int1 і на посаді int2. Якщо int2 дорівнює -1, GetOutput повертає
повна лінія.

(NumToHex Int)
Повернути шістнадцяткове значення Int.

(HexToNum {вул})
Повернути десяткове значення вул, вул має бути шістнадцятковим значенням.

(Додати int1 int2)
Повернути результат (int1+int2).

(Мульт int1 int2)
Повернути результат (int1*int2).

(Розділ int1 int2)
Повернути результат (int1/int2).

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

(LaunchScript {вул})
Ця функція запускає сценарій з назвою str і повертає ідентифікаційний номер.
Цей номер необхідний для використання функцій SendToScript і ReceiveFromScript.
Рядок str містить назву сценарію та деякі аргументи.

(GetScriptArgument {Int})
Ця функція повертає сценарій аргументу, який використовується у функції LaunchScript. Якщо
int дорівнює нулю, GetScriptArgument повертає назву сценарію.

(GetScriptFather)
Ця функція повертає ідентифікаційний номер батька сценарію.

(ReceivFromScript {Int})
Ця функція повертає повідомлення, надіслане сценарієм з номером int.

(RemainderOfDiv {int1 int2}): т
Ця функція повертає залишок від ділення (int1/int2).

(GetTime)
Ця функція повертає час у секундах.

(GetPid)
Ця функція повертає ідентифікатор процесу сценарію.

(Отримати текст {вул})
Ця функція повертає переклад вул за допомогою визначеного(их) каталогу(ів) мовних стандартів
за допомогою UseGettext.

(SendMsgAndGet {comId} {CMD} бул)
Відправляє команду CMD з ідентифікатором comId до зовнішньої програми, готової до
спілкуватися зі сценарієм за допомогою протоколу, характерного для FvwmScript. Якщо бул є 0
FvwmScript не чекає відповіді від зовнішньої програми. У цьому випадку
повертається значення 1, якщо повідомлення можна надіслати до зовнішньої програми, і 0, якщо
це не так. Якщо бул дорівнює 1, то FvwmScript чекає відповіді від
зовнішню програму, а значення, що повертається, є цією відповіддю (рядок не більше 32000
символи). Якщо зв’язок не вдається, повертається значення 0. Дивіться розділ
A ЗВ'ЯЗОК ПРОТОКОЛ для опису використовуваного протоколу зв’язку.

(Розбір {вул} Int)
де вул має бути рядком такого вигляду:
X1S1X2S2X3S3...SnXn
де Xn — числа, що містять чотири десяткові цифри, а Sn — рядки
довжина точно Xn. Повертаним значенням є рядок SInt. Якщо Int знаходиться поза зоною дії
(наприклад, >n) повертається значення є порожнім рядком. Якщо вул не є зазначеним
форми, значення, що повертається, є непередбачуваним (але в середньому порожнім). Ця функція
корисно для обробки рядків, які повертає функція SendMsgAndGet.

(Останній рядок)
Ця функція повертає "поточний робочий рядок" для інструкції Key та
Команда SendString (див КОМАНДИ розділ). Під час запуску цей рядок порожній, але
коли виявлено прив'язку ключа (відповідно, отримано команду SendString),
тоді цей рядок встановлюється на рядок, пов’язаний з інструкцією (відповідно,
до команди).

УМОВНІ ПЕТЛІ


Існує три види умовних циклів. Інструкція «Якщо-то-Інше» має
наступний синтаксис:
Якщо $ToDo=={Відкрити xcalc} Тоді
Виконайте {Exec xcalc &} # Список інструкцій
Ще
Починати
Виконайте {Exec killall xcalc &} # Список інструкцій
Виконайте {Exec echo xcalc убито > /dev/console}
кінець
Друга частина «Інше-Початок-Кінець» необов'язкова. Якщо цикл містить лише одну інструкцію,
Початок і кінець можна опустити. Інструкція "While-Do" має такий синтаксис:
Тоді як $i<5 Робити
Починати
Встановити $i=(Додати i 1) # Список інструкцій
кінець
Два рядки можна порівняти з "==", а два числа можна порівняти з "<", "<=",
"==", ">=", ">". Цикл «For-Do-Begin-End» має такий синтаксис:
Для $i=1 до 20 робити
Починати
Виконайте {Exec xcalc &} # Список інструкцій
кінець

КОМАНДИ


Наступну команду fvwm можна виконати в будь-який час

SendToModule ScriptName SendString id сиг вул

він надсилає до будь-якого модуля з псевдонімом або ім'ям, яке відповідає ScriptName рядок

SendString id сиг вул

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

SingleClic:
Починати
Вихід
кінець

1:
Починати
Встановити $str = (Останній рядок)
Якщо $str == {Вийти} Тоді
Вихід
Ще
ChangeTitle 33 $str
кінець

кінець
Потім команда
SendToModule MyScript SendString 50 1 стр
змушує MyScript вийти, якщо str дорівнює "Вийти", а якщо ні, то змінює назву
Віджет 33 на вул.

Цю команду можна використовувати для зміни назви вікна

SendToModule ScriptName ChangeWindowTitle newTitle [oldTitle]

це призводить до того, що будь-який модуль з псевдонімом або ім'ям, який відповідає ScriptName змінює його
пов’язаний заголовок вікна newTitle. Необов'язковий аргумент oldTitle має сенс, коли є
є кілька екземплярів одного сценарію. Це дозволяє уникнути зміни назви
всі ці екземпляри, вказавши ім’я вікна, пов’язаного з цільовим сценарієм
(див. приклад нижче).

+ I модуль FvwmScript FvwmStorageSend "/dev/hda6"
+ Я чекаю FvwmStorageSend
+ I 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 (Якщо ви хочете використовувати інше ім'я файлу, вкажіть його як
перший аргумент сценарію). Якщо ви хочете завантажувати ці параметри під час кожного запуску,
ви повинні включити рядок ".xinit-fvwmrc" у файл .xinitrc (або .xsession) перед
починаючи fvwm.

FvwmScript-BaseConfig змінює політику миші для фокусування fvwm і сторінок, розміщення вікон,
непрозорість та інші функції команд переміщення та зміни розміру, притягнення та затінення
анімація. Цей сценарій зберігає налаштування у файлі з іменем .FvwmBaseConfig у файлі користувача
каталог даних (тобто $HOME/.fvwm або $FVWM_USERDIR, якщо встановлено). Якщо ви хочете завантажити ці
налаштування під час кожного запуску ви повинні додати рядок "Read .FvwmBaseConfig" у ваш fvwm
файл конфігурації. Якщо ви хочете використовувати інше ім’я файлу, введіть його як перший аргумент
сценарію. Коли ви натискаєте OK або Застосуєте функцію fvwm, яку ви можете визначити під назвою
Викликається BaseConfigOkFunc або BaseConfigApplyFunc. Це дозволяє виконувати певні перезавантаження
стилі програми, які сценарій знищив (наприклад, AddToFunc BaseConfigOkFunc I Read
MyAppStyle).

FvwmScript-Buttons — це панель кнопок, яка може замінити FvwmButtons (цей скрипт підтримує
спливаючі меню та вимагає xload, xclock, FvwmPager, TkDesk). FvwmScript-Colorset дозволяє
вам потрібно відредагувати свій колірний набір (див. FvwmTheme). FvwmScript-Date дозволяє встановити дату та
час. FvwmScript-FileBrowser — це файловий браузер, який використовується іншими сценаріями. FvwmScript-
Find — це елементарний інтерфейс для пошуку. FvwmScript-Quit дозволяє вийти з fvwm, перезапустити
fvwm або інший віконний менеджер, або вимкніть і перезавантажте комп'ютер. FvwmScript-
ScreenDump - це екранний дампер. FvwmScript-WidgetDemo — це чистий приклад сценарію. Див
наступний розділ для FvwmScript-ComExample.

A ЗВ'ЯЗОК ПРОТОКОЛ


FvwmScript — слабка (але проста) мова програмування. Якщо вам потрібно мати справу з великою кількістю
даних та/або вам потрібно використовувати складні алгоритми, вам слід використовувати зовнішню програму (в perl
наприклад) і «надішліть» потрібну інформацію до вашого сценарію FvwmScript. Перший
Підхід полягає у використанні функції GetOutput. Це просто, але вам слід повторно запустити
зовнішню програму щоразу, коли вам потрібна інформація з неї (і це може призвести до продуктивності
проблеми). Другий підхід полягає у використанні функції SendMsgAndGet, яка розширюється
FvwmScript за допомогою будь-якої мови програмування, яка може працювати з іменованими каналами (fifos). ми
опишіть це рішення в цьому розділі. (Третій підхід полягає у використанні fvwm-themes-com from
пакет fvwm-themes, але насправді метод SendMsgAndGet є реалізацією
fvwm-themes-com всередині FvwmScript, і це забезпечує кращу продуктивність).

По суті, ви запускаєте «зовнішню» програму (коротко програма) зі свого FvwmScript
script (коротко сценарій). Ця програма працює у фоновому режимі, і ви використовуєте
Функція SendMsgAndGet у вашому сценарії, щоб задавати запитання або давати інструкції
програма. Програма повинна суворо дотримуватися певного протоколу зв'язку. Перший з
все є ідентифікатором comId для зв’язку він повинен містити ідентифікатор процесу
сценарію для гарної реалізації протоколу (використовуйте функцію GetPid і передайте
la comId через опцію програми). Протокол використовує два fifos у користувача fvwm
каталог з назвою: .tmp-com-in-comId і .tmp-com-out-comId. Програма повинна створити і
слухати на .tmp-com-in-comId fifo. Потім, коли FvwmScript виконує функцію
форма:

Встановити $answer = (SendMsgAndGet {comId} {CMD} бул)

FvwmScript записує CMD на цьому фіфо. Таким чином програма може прочитати CMD а може
виконати відповідну дію (вона має видалити in fifo для підтримки кількох
комунікації). Якщо бул дорівнює 0, FvwmScript не чекає відповіді від програми і
повернути 1, якщо попередні дії були успішними, і 0, якщо вони були невдалими (тоді програма повинна «зайти
назад" до in fifo). Якщо бул дорівнює 1, то FvwmScript чекає (20 секунд) на відповідь від
програма і в свою чергу повертає відповідь сценарію (зверніть увагу, що бул не передається до
програма, оскільки вона повинна знати, які команди потребують відповіді). Щоб відповісти, програма створює
.tmp-com-out-comId fifo і записує на ньому відповідь. Програма повинна почекати до
FvwmScript читає відповідь, а потім має видалити вихідний fifo і повернутися до входу
fifo. Відповідь має складатися з одного рядка не більше 32000 символів (подивіться
у функції Parse для обробки кількох рядків як одного рядка).

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

Використовуйте FvwmScript онлайн за допомогою служб onworks.net


Ad


Ad