Oh My Fish надає базову інфраструктуру, щоб забезпечити встановлення пакетів які розширюють та модифікують зовнішній вигляд вашої оболонки. Він швидкий, розширюваний та легкий у використанні.
Oh My Fish містить невелику утиліту `omf` для завантаження та встановлення нових пакетів та тем.
#### `omf update`
Оновлює фреймворк та встановлені пакети.
#### `omf install` _`[<name>|<url>]`_
Встановлює один _абобільше_ пакетів.
- Ви можете встановити пакети по URL за допомогою команди `omf install URL`
- Коли викликається без аргументів, встановлює відсутні пакети із [bundle](#Файли-конфигурації).
#### `omf list`
Список встановлених пакетів.
#### `omf theme` _`<theme>`_
Задіює тему. Для того щоб отримати список доступних тем, виконайте `omf theme`. Також ви можете попередньо проглянути усі [доступні теми](../Themes.md) перед встановленням.
#### `omf remove` _`<name>`_
Видаляє тему або пакет.
> Пакети, підписані на події `uninstall_<pkg>`, повідомлюються перед тим, як пакет буде видалено, завдяки цьому може бути реалізоване кастомне очищення ресурсів. Читайте детальніше про [видалення](Packages.md#Видалення) пакетів в Oh My Fish.
#### `omf new pkg | theme` _`<name>`_
Генерує новий пакет чи тему.
> Створює нову директорію у `$OMF_CONFIG/{pkg | themes}/` із шаблоном.
#### `omf submit` _`pkg/<name>`_ _`[<url>]`_
Додає новий пакет. Щоб додати тему, використовуйте `omf submit`_`themes/<name>`__`<url>`_.
Переконайтесь що [надіслали нам PR][omf-pulls-link], щоб оновити реєстр.
#### `omf doctor`
Використовуйте для усунення проблем перед [створенням нового issue][omf-issues-new].
#### `omf destroy`
Видаляє Oh My Fish.
# Для досвідчених
Встановлювач Oh My Fish поміщає код для стартау у вашому файлі конфігурації (`~/.config/fish/config.fish`).
## Стартап
Кожного разу, кколи ви відкриваєте новий shell, стартап код ініціалізує Oh My Fish шлях встановлення і_конфіг_ шлях (`~/.config/omf` за замовчуванням), потім запускає [`init.fish`](../../init.fish) скрипт, який автоматично завантажує пакети, теми та ваші кастомні init файли. Із деталями можна ознайомитися у [FAQ](FAQ.md#Що саме робить Oh My Fish?).
## Файли конфігурації
Каталог `$OMF_CONFIG` надає стан користувача Oh My Fish, і це чудовий кандидат для додаваняня у ваші dotfiles і/або в систему контролю версій. Тут міститься чотири важливих файли:
- __`theme`__ - Поточна тема
- __`bundle`__ - Список встановлених пакетів/тем
- __`init.fish`__ - Кастомний скрипт, що запускається після запуску shell
- __`before.init.fish`__ - Кастомний скрипт, що запускається перед запуском shell
Наполеглево рекомендується додавати свої стартап команди у файл `init.fish` замість `~/.config/fish/config.fish`, так как як це дозволяє вам тримати весь каталог `$OMF_CONFIG` в системі контролю версій.
Якщо вам потрібно запускати стартап команди *перед* тим, як Oh My Fish почне завантажувати плагіни, помістіть їх в `before.init.fish`. Якщо ви не впевнені, як правило, краще помістити їх в `init.fish`.
### Про `bundle`
Кожного разу, коли пакет/тема встановлюється чи видаляється, `bundle` файл оновлюється. Також ви можете відредагувати його і поітм запустити `omf install` щоб зафіксувати зміни. Будь ласка, зверніть увагу: якщо пакети/теми додані в `bundle`, вони автоматично встановлюються, в той час як пакети/теми, видалені із `bundle` файлу, не видаляються із користувацької папки.
## Створення пакетів
Oh My Fish використовує сучасну та добре виділену архітектуру плагінів для спрощення їх розробки, включаючи події ініціалізації/видалення та функції автозавантаження.
[Дивіться документацію](Packages.md), щоб дізнатися детальніше.