# Дії користувача

За допомогою Керівника ви зможете встановити, налаштувати і здійснити керування діями користувача. Деякі з загальних параметрів можна налаштувати за допомогою Конфігуратора. За допомогою дій користувача ви зможете виконувати дії з файлами або отримувати доступ до внутрішніх функцій &krusader; з використанням заповнювачів. Ці дії тісно інтегруються з системою дій &kde;. Це означає, що за допомогою дій користувача можна відкривати стандартні діалогові вікна, зокрема «Редагування панелі інструментів» та «Редагування клавіатурних скорочень». Параметри дій користувача зберігаються у файлі `~/.kde/share/apps/krusader/useraction.xml` (структуру цього файла документовано у заголовках doxygen UserActionXML). Декілька прикладів наведено у документації. За допомогою Керівника ви можете змінювати, додавати, імпортувати та експортувати дії користувача. Параметри типових дій користувача зберігаються у файлі `~/.kde/share/apps/krusader/useraction-examples.xml`. Діями користувача можна скористатися майже всюди, де можна скористатися «звичайними» KAction. Дії користувача можна навіть вбудувати до смужки меню, але для цього доведеться змінити файл `krusaderui.rc`. Декілька прикладів:

- Меню «Дії користувача»

- Меню користувача

- Панель дій

- контекстні меню

- тощо

Інструмент дій користувача &krusader; є дуже потужним і гнучким, якщо ви звичні з загальними принципами створення дій користувача.

Типово, разом з програмою постачається декілька дій користувача. Будь ласка, оприлюдніть ваші улюблені дії користувача так, щоб доступ до них могли отримати учасники спільноти &krusader;. Дякуємо! Крім того, ми створили спеціальний форум щодо дій користувача.

## Керування діями

Керівник

Загалом кажучи, дії користувача є способом виклику зовнішніх програм з різноманітними параметрами. Наприклад, ви можете створити дію користувача з командою `xmms `--enqueue %aList("Selected")%`` для додавання всіх позначених елементів активної панелі до списку відтворення запущеної програми xmms. Крім того, передбачено обмежений доступ до внутрішніх функцій &krusader; з параметрами. Наприклад, команда `%aPanelSize("80")%` встановить ширину активної панелі у значення 80% ширини головного вікна &krusader;. Оскільки параметр заповнювача може містити інші заповнювачі, можливе написання скриптів. Працювати зі скриптами можна і за допомогою консолі JavaScript.

Керування діями користувача

Відкрийте вікно Конфігуратора і запустіть «Керівник», за допомогою якого ви зможете додати, змінити, вилучити, імпортувати і експортувати дії користувача.

- Додати дію: якщо ви спробуєте додати нову дію, програма створить порожню форму введення, у яку ви зможете ввести всі бажані властивості. Дію буде додано одразу після натискання кнопки Гаразд. Назву дії буде показано у списку, розташованому ліворуч.

- Щоб змінити параметри дії користувача, позначте її пункт у списку, розташованому ліворуч. Зміни буде застосовано після натискання кнопки Гаразд.

- Щоб вилучити Дію користувача: позначте пункт дії користувача ліворуч і натисніть кнопку «Вилучити».

- Після Імпортування дій користувача їх буде автоматично додано до вашого списку. Якщо виникне конфлікт назв (назви мають бути унікальними, оскільки їм відповідають ідентифікатори дій системи &kde;), програма попросить вас їх розв’язати. Для цього у списку, розташованому ліворуч, буде показано лише дії з конфліктами. Ви зможете надати їм нові назви або вилучити їх.

- Експортувати дію: якщо ви експортуєте дію користувача, вам слід надати файлу назву, під якою його слід зберегти. Якщо такого файла не існує, його буде створено. Якщо у файлі вже містяться дії користувача, дію, яку ви експортуєте, буде додано до цього файла.

Після цього всі визначені вами дії буде показано у меню користувача і діалогових вікнах &kde;, призначених для зміни клавіатурних скорочено та керування панеллю інструментів. Крім того, доступ до всіх дій, які можна виконувати для поточного елемента, можна буде отримати за допомогою контекстного меню.

Основні властивості

«Ідентифікатор», «Заголовок» і «Команда» завжди слід вказувати, всі інші властивості є необов’язковими.

- Ідентифікатор: унікальна назва дії користувача, яка використовується для ідентифікації дії у системі дій &kde;.

- Кнопка піктограми: піктограма для вашої дії користувача.

- Категорія: додає дію до категорії для кращого впорядкування. ЗАУВАЖЕННЯ: ця властивість ще не використовується. Її використання заплановано, але ще не реалізовано.

- Заголовок: назва, яку буде показано у меню та діалогових вікнах.

- Підказка: підказка для вашої дії користувача, яку, наприклад, буде показано на панелі інструментів після наведення вказівника миші.

- Опис: опис призначення дії користувача. Цей опис буде показано у підказці Що це?, доступ до якої можна отримати натисканням комбінації клавіш &Shift; F1 з наступним наведенням вказівника миші на кнопку вашої дії користувача і клацанням лівою кнопкою миші.

- Пункт «Використовувати підказку»: використовувати підказку як опис.

- Рядок «Команда»: команда, яку буде виконано. Ви можете додати заповнювач натисканням кнопки Додати.

- Робоча тека: робочий каталог для команди, яку буде виконано.

- Режим виконання

  - Звичайний: звичайний режим виконання.

  - Виконувати в терміналі: виконати команду у терміналі.

  - Виконати команду у вбудованому емуляторі термінала: виконувати команду у вбудованому емуляторі термінала.

  - Збирати виведення: збирати дані, виведені виконаною програмою у вікні графічного інтерфейсу.

  - Виділяти стандартні помилки: якщо буде позначено пункт «Збирати виведення», дані, виведені у stdout і stderr, збиратимуться окремо.

- Команда приймає

  - Локальні файли (не URL): вказати заповнювачу, що слід повертати лише локальні адреси.

  - Адреси URL (віддалені і локальні): вказати заповнювачу, що слід повертати адреси &URL;.

- Типове скорочення: надає змогу налаштувати типове клавіатурне скорочення для дії користувача.

- Увімкнено: якщо буде позначено цей пункт, дію користувача буде показано у меню Дії користувача. Якщо пункт не буде позначено, дію буде приховано.

Синтаксис командного рядка

Загалом кажучи, все, що ви введете до командного рядка, буде виконано (якщо ви введете "ls -l", буде виконано "ls -l"). У вас є можливість отримати рядок символів від &krusader;, який відповідатиме поточному стану панелі. Виконати це завдання можна за допомогою заповнювачів. Запис заповнювача починається з символу відсотків («%»), за яким слід вказати ідентифікатор панелі («a» — активна, «o» — інша, «l» — ліва, «r» — права. Якщо для роботи заповнювача не потрібна панель, ви можете вказати це за допомогою символу підкреслення («_»)). Далі слід вказати назву заповнювача (див. наведений нижче список), якій, можливо, слід передати певні параметри, взяті у лапки. Завершувати запис заповнювача має також символ відсотків.

Зрозуміти це зі слів важко, отже, давайте розглянемо приклад: «%aList("Selected")%» буде замінено на список всіх позначених елементів на активній панелі. Отже, команда на зразок «xmms --enqueue %aList("All", " ", "", "*.mp3")%» виконає xmms зі списком всіх файлів .mp3 на поточній панелі, окремі записи у списку буде розділено пробілом.

У поточній версії програми реалізовано такі заповнювачі:

- `Path` — буде замінено шляхом до каталогу панелі

  1. Параметр (необов’язковий): автоматично екранувати пробіли. Типово увімкнено.

- `Count` — буде замінено на число з <першого параметра>

  1. Параметр: елементи; варіанти: "All", "Selected", "Files" або "Dirs"

- `Filter` — буде замінено маскою фільтрування панелі

- `Current` — буде замінено назвою поточного елемента

  1. Параметр (необов’язковий): пропустити поточний шлях. Типово вимкнено.

  2. Параметр (необов’язковий): автоматично екранувати пробіли. Типово увімкнено.

- `List` — буде замінено на список <першого параметра>

  1. Параметр: елементи; варіанти: "All", "Selected", "Files" або "Dirs"

  2. Параметр (необов’язковий): розділювач між елементами. Типово " "

  3. Параметр (необов’язковий): пропустити поточний шлях. Типово вимкнено.

  4. Параметр (необов’язковий): маска фільтрування (для всіх окрім "Selected") Типове значення: *

  5. Параметр (необов’язковий): автоматично екранувати пробіли. Типово увімкнено.

- `Select` — керує вибором на панелі

  1. Параметр: маска фільтрування

  2. Параметр (необов’язковий): керує способом виконання; варіанти: "Set", "Add" або "Remove". Типове значення: "Set"

- `Goto` — змінює шлях панелі на <перший параметр>

  1. Параметр: відносний або абсолютний шлях або адреса URL

  2. Параметр (необов’язковий): відкрити адресу у новій вкладці. Типово вимкнено.

- `Ask` — надсилає користувачеві запит щодо введення тексту, буде замінено відповіддю користувача.

  1. Параметр: питання

  2. Параметр (необов’язковий): типова відповідь

  3. Параметр (необов’язковий): підпис панелі запитання

- `Clipboard` — керує буфером обміну даними

  1. Параметр: текст, який слід надіслати до буфера (тут можна скористатися "%aCurrent%")

  2. Параметр (необов’язковий): додати текст до поточного вмісту буфера обміну даними з вказаним роздільником

- `Copy` — копіює файл, корисний для швидких створень локальних резервних копій

  1. Параметр: текст для копіювання

  2. Параметр: місце, куди слід скопіювати

- `Sync` — відкриває Синхронізатор з вказаним профілем

  1. Параметр: профіль Синхронізатора

- `NewSearch` — відкриває вікна пошуку з вказаним профілем

  1. Параметр: профіль модуля пошуку

- `Profile` — завантажує вказаний профіль панелей

  1. Параметр: профіль панелей

- `Each` — поділяє командний рядок на список. Команди списку виконуються одна за одною.

  1. Параметр: елемент списку (all, all files, all dirs, all selected).

- `Move` — пересуває джерело у призначення.

  1. Параметр: джерело

  2. Параметр: призначення

- `PanelSize` — змінює співвідношення розмірів панелей.

  1. Параметр (необов’язковий): використання цілого значення, наприклад, 80 призведе до того, що активна панель використовуватиме 80% ширини вікна &krusader; (висоти у вертикальному режимі), якщо параметр не буде вказано, програма використовуватиме значення 50%.

- `Ask` — скасовує виконання.

  1. Параметр (необов’язковий): рядок з питанням щодо скасування.

- `Script` — виконує зовнішній файл Javascript.

  Зауваження: ця функція є експериментальною, інтерфейс може змінитися. Будемо вдячні за відгуки.

  1. Параметр: шлях до зовнішнього файла foo.js, абсолютний або відносно `<kde-app-data>/krusader/js/`. <kde-app-data> відповідає `$(kde-config --localprefix)/share/apps/` або `$(kde-config --prefix)/share/apps/`, якщо ви не знаєте, куди копіювати скрипти/розширення. Якщо всі потрібні файли (зазвичай, `.js` і можливо `.ui`) зберігаються у одному з цих каталогів, достатньо вказати назву файла як <перший параметр>.

  2. Параметр (необов’язковий): список змінних, які слід встановити, наприклад, «return=cmd; a=lalala; b='%_Ask(..)'», отже заповнювач буде замінено вмістом змінної cmd, а інші дві змінних вже міститимуть значення, на час запуску скрипту.

- `ListFile` — буде замінено назвою файла або шляхом до тимчасового файла, де міститиметься список елементів.

  1. Параметр: шлях/назва файла

- `ColSort` — визначає впорядкування у стовпчику окремої панелі.

  1. Параметр: стовпчик. Варіанти: "Name", "Ext", "Type", "Size", "Modified", "Perms", "rwx", "Owner" і "Group"

  2. Параметр: послідовність впорядкування. Варіанти: "Toggle", "Asc", "Desc"

- `View` — визначає режим перегляду.

  1. Параметр: режим перегляду. Варіанти: "generic", "text", "hex"

  2. Параметр: режим вікна. Варіанти: "tab", "window"

Передбачено заснований на графічному інтерфейсі допоміжний інструмент додавання заповнювачів. Пробіли у Path, Current і List, типово, екрануються. Існує ще одна важлива річ, яку вам слід знати: всі заповнювачі, які взаємодіють з внутрішніми функціями &krusader;, викликаються під час розгортання (тобто безпосередньо під час заміни заповнювачів). Зовнішні програми викликаються під час виконання (тобто після заміни заповнювачів).

Додаткові властивості

Тут ви можете налаштувати місце, де буде показано вашу команду (для контекстного меню). Крім того, ви можете змінити команду, яку буде виконано, і підтвердити її окремо. Крім того, ви можете вказати користувача, від імені якого буде виконано команду.

- Надає змогу налаштувати чинність дії для протоколу, шляху, типу MIME і назви файла.

- Налаштування командного рядка перед виконанням.

- Вказати іншого користувача для виконання дії (не впливає на внутрішні функції &krusader;)