Omarchy: система для разработчика
В разделах про Linux и Docker мы разбирали серверную сторону: systemd, сети, контейнеры. Но есть машина, на которой ты проводишь больше всего часов, — твоя рабочая. И вот тут у большинства разработчиков забавный разрыв: продакшен описан кодом, пайплайны воспроизводимы, а личный десктоп собран кликами мыши за пару вечеров и никак не восстанавливается, кроме как «ну, я вроде помню, что там ставил».
Omarchy закрывает именно эту дыру. Это не дистрибутив в классическом смысле, а слой поверх Arch Linux с тайловым оконным менеджером Hyprland: готовая, красивая, горячая конфигурация системы, где всё уже подобрано — терминал, лаунчер, панель, темы, шрифты, и при этом всё остаётся текстовыми конфигами, которые можно править и держать в Git. Философия проекта проста: разработчик не должен тратить неделю на сборку окружения, но должен иметь возможность докрутить любой винтик.
В краткой версии учебника мы просто перечисляли полезный софт для Arch (см. приложение «Инструментарий для Arch Linux»). Здесь идём глубже: как Omarchy устроен изнутри, почему его конфиги нельзя править в одном месте и нужно в другом, и что на самом деле происходит, когда ты меняешь тему одной командой — а цвета меняются в терминале, панели, редакторе и браузере одновременно.
Философия opinionated-десктопа
Заголовок раздела «Философия opinionated-десктопа»Слово opinionated — «имеющий мнение» — здесь ключевое. Vanilla Arch не имеет мнения ни о чём: он даёт тебе ядро, pacman и пустой экран, а дальше — собирай сам. Это свобода, но свобода ценой недели чтения вики и перебора вариантов. Omarchy имеет мнение обо всём: терминал будет Alacritty или Ghostty, лаунчер — встроенное меню Omarchy, панель — omarchy-shell, шелл — zsh с нормальным промптом, хоткеи — как у нормальных людей, а не как в сыром Hyprland.
Парадокс в том, что ограничение выбора ускоряет. Когда терминал, шрифт и лаунчер уже выбраны хорошо, ты не тратишь вечер на сравнение десяти терминалов — ты работаешь. А если выбор не нравится, никто не мешает его сменить: под всем этим лежит обычный Arch и обычные конфиги. Opinionated — это не «заперт», это «разумные дефолты».
Из практики: я видел немало сеньоров, чьё рабочее окружение — это «как-то само собралось за пять лет». Сломался диск — и неделя на восстановление, потому что никто не помнит, откуда брались все эти хоткеи и скрипты. С Omarchy окружение описано файлами в ~/.config, лежит в репозитории dotfiles, и новая машина поднимается за вечер: ставишь Omarchy, клонируешь dotfiles, готово.
Команды omarchy: единая точка входа
Заголовок раздела «Команды omarchy: единая точка входа»Сердце пользовательского опыта — команда omarchy с подкомандами. Это тонкие обёртки над типичными задачами: поменять тему, поставить пакет, обновить систему, перезапустить компонент. Запоминать десятки команд разных утилит не нужно — есть один глагол.
# Поставить тему во всех приложениях разомomarchy theme set tokyo-night
# Посмотреть доступные темыomarchy theme list
# Установить пакет (обёртка над pacman/AUR с учётом репозиториев Omarchy)omarchy pkg add lazydocker
# Обновить систему и применить миграции Omarchyomarchy update
# Перезапустить компонент после правки его конфигаomarchy restart shellРазберём, что тут важно. omarchy theme set — не «сменить обои», а каскадное применение темы: цвета терминала, панели, лаунчера, Neovim, уведомлений, границ окон Hyprland. omarchy update — осмысленная замена голому pacman -Syu: помимо пакетов применяются миграции конфигов Omarchy, чтобы новая версия слоя не конфликтовала с твоими правками. omarchy restart знает, как корректно перезапустить shell, terminal или tmux, не роняя сессию.
Где лежат конфиги и почему /usr/share/omarchy трогать нельзя
Заголовок раздела «Где лежат конфиги и почему /usr/share/omarchy трогать нельзя»Ключевой архитектурный момент, который ломает новичков: в Omarchy конфиги живут в двух слоях.
/usr/share/omarchy(и соседние системные пути) — дефолты, принадлежащие пакету. Они обновляются приomarchy updateвместе с новой версией. Любая твоя правка здесь будет либо перезаписана, либо станет источником молчаливых конфликтов при миграции.~/.config— твой слой. Здесь живутhypr/,alacritty/,omarchy/(конфиг и темы shell),nvim/,tmuxи остальные конфиги, которые читают приложения. Hyprland, как и большинство современных утилит, следует спецификации XDG Base Directory: сначала пользовательский конфиг, потом системный дефолт.
Правило простое: хочешь изменить поведение — сначала посмотри, как это сделано в дефолте (/usr/share/omarchy — отличный читаемый справочник), а правь в ~/.config. Конфиг Hyprland, например, это ~/.config/hypr/hyprland.lua, и дефолтный файл Omarchy обычно сам подключает пользовательские overrides — тебе нужно только дописать свои строки, а не переписывать всё.
# Посмотреть, как устроен дефолт, не меняя егоless /usr/share/omarchy/config/hypr/hyprland.lua
# Твои правки — только сюдаnvim ~/.config/hypr/hyprland.luaЭто тот же паттерн, что и в Docker: базовый образ не редактируют, поверх него добавляют слой. Пойми это один раз — и ты перестанешь бояться обновлений системы, потому что твои изменения физически отделены от чужих.
Hyprland и горячие клавиши: тайлинг за пять минут
Заголовок раздела «Hyprland и горячие клавиши: тайлинг за пять минут»Hyprland — динамический тайловый композитор для Wayland. «Тайловый» значит: окна не плавают друг над другом, а раскладываются по экрану без пересечений; «динамический» — раскладка перестраивается сама при открытии и закрытии окон. Ты больше не ищешь окно мышью среди двадцати перекрывающихся — окон столько, сколько помещается, а остальное живёт на воркспейсах.
Базовый набор хоткеев Omarchy (все с модификатором Super, он же «клавиша Windows»):
- Super + Enter — открыть терминал. Самая нажимаемая комбинация системы.
- Super + Space — лаунчер приложений (меню Omarchy): начни печатать имя — Enter — запущено.
- Super + 1..9 — переключение между воркспейсами. Воркспейс — отдельный рабочий стол: на первом редактор, на втором браузер, на третьем логи.
- Super + Shift + 1..9 — перенести текущее окно на воркспейс.
- Super + Q — закрыть окно, Super + F — fullscreen, Super + V — переключить окно в плавающий режим.
Мышечная память вырабатывается за пару дней, если заставить себя не тянуться к мыши. Приём из практики: распределяй воркспейсы по смыслу и держи распределение постоянным — «1 — код, 2 — браузер, 3 — терминалы с логами, 9 — мессенджер». Через неделю руки сами знают, куда прыгать, а переключение контекста перестаёт стоить внимания.
Терминал в Omarchy — Alacritty или Ghostty (оба GPU-ускоренные, оба конфигурируются текстом). Практической разницы для старта нет; важно другое: терминал здесь — первоклассный гражданин, а не «окошко для команд». Из него стартует весь следующий слой стека — Neovim и tmux, которым посвящены отдельные главы.
Nerd Fonts: зачем TUI-приложениям иконки
Заголовок раздела «Nerd Fonts: зачем TUI-приложениям иконки»Открой lazygit или nvim с файловым деревом без правильного шрифта — и увидишь квадратики вместо иконок. Причина: TUI-приложения рисуют интерфейс символами, и для иконок используют глифы из Private Use Area юникода — точки, которых нет в обычных шрифтах. Nerd Font — это обычный моноширинный шрифт (JetBrains Mono, Fira Code), в который вшиты тысячи дополнительных глифов: иконки файлов, git-статусы, стрелки, логотипы технологий.
# Проверить, какие Nerd Fonts установленыfc-list | grep -i nerd
# Пример записи в конфиге терминала (alacritty.toml)# [font]# normal = { family = "JetBrainsMono Nerd Font" }Тонкость: Nerd Font должен быть выбран в эмуляторе терминала, а не в системе вообще — терминал сам решает, каким шрифтом рисовать глифы. Если иконки «превратились в квадраты», в девяти случаях из десяти терминал смотрит не на тот шрифт. И ещё одна ловушка для SSH: шрифт рендерится на твоей машине, поэтому на сервере Nerd Font ставить не нужно — достаточно, чтобы он был на клиенте.
Под капотом: как тема доезжает до всех приложений
Заголовок раздела «Под капотом: как тема доезжает до всех приложений»Самая красивая механика Omarchy — omarchy theme set. Снаружи это «поменялись цвета везде». Внутри — конвейер из трёх стадий, который стоит понять, потому что ровно так устроены все системы управления конфигурацией, которые ты встретишь дальше.
Стадия 1: тема как данные. Каждая тема в Omarchy — это директория с файлами-фрагментами: палитра для терминала, цвета для панели, схема для Neovim, цвета границ для Hyprland. Тема — не картинка, а набор значений, разложенный по форматам конкретных приложений.
Стадия 2: генерация и линковка. Команда берёт выбранную тему и материализует её в те места, откуда приложения читают конфиги: либо перегенерирует файлы, либо (чаще) обновляет симлинки — ~/.config/<app>/theme указывает на фрагмент активной темы. Приложение при этом думает, что у него «просто конфиг», и ничего не знает про Omarchy. Это классическая инверсия зависимости: система тем не влезает в приложения, а подсовывает им файлы, которые они и так читали бы.
Стадия 3: hot-reload. Файлы на месте — осталось, чтобы приложения их перечитали. У каждого свой механизм: Hyprland перечитывает конфиг сам при изменении, панель (omarchy-shell) подхватывает новые цвета на лету, терминал получает сигнал. Самое элегантное — Neovim: конфиг LazyVim слушает изменение файла темы и применяет новую цветовую схему в живой сессии, без перезапуска редактора. Ты меняешь тему системы — и открытый редактор перекрашивается на глазах.
# Посмотреть, что реально поменялось после смены темыomarchy theme current # какая тема активна сейчасomarchy theme dir tokyo-night # где лежат файлы темыls -la ~/.config/alacritty/ # что поменялось в конфиге терминалаПочему это важно за пределами красоты: это живой пример паттерна «конфигурация как данные + генерация + реактивное применение», который дальше встречается везде — от Helm-шаблонов до feature flags. Omarchy просто показывает его на понятном, наглядном примере.
Типичные ошибки и грабли
Заголовок раздела «Типичные ошибки и грабли»- Правка
/usr/share/omarchyвместо~/.config. Уже разобрали, но повторю: это грабля номер один. Плохо: отредактировал дефолт, потерял при обновлении. Хорошо: скопировал фрагмент в~/.config, переопределил там. - «Omarchy сломался после
pacman -Syu» — почти всегда это «я обновил систему, но не запустилomarchy updateс миграциями». Сначала пакеты, потом миграции, потом перелогин. - Квадраты вместо иконок. Не установлен или не выбран Nerd Font в терминале. Проверка:
fc-list | grep -i nerdи семейство шрифта в конфиге терминала. - Ставить Nerd Font на сервер по SSH. Шрифт рендерит клиентский терминал; на сервере он бесполезен. Экономь время.
- Пересобирать хоткеи с нуля в первый день. Дефолты Omarchy подобраны так, чтобы их учить. Сначала две недели на дефолтах, потом точечные изменения — иначе получишь уникальный конфиг, к которому не приложена ни одна шпаргалка.
- Игнорировать воркспейсы и открывать всё на одном. Тайлинг раскрывается именно с воркспейсами; десять окон на одном экране — это возврат к хаосу, только квадратному.
Вопросы на собеседовании
Заголовок раздела «Вопросы на собеседовании»- Чем тайловый оконный менеджер отличается от stacking (плавающего)? В stacking окна перекрываются, и навигация — через alt-tab и мышь. В тайлинге окна раскладываются без перекрытий, навигация и управление — клавиатурные, а воркспейсы заменяют «поиск окна глазами». Профит — не скорость нажатий, а снятие переключений контекста.
- Что такое XDG Base Directory и зачем он нужен? Спецификация, определяющая, где лежат пользовательские конфиги (
~/.config), данные (~/.local/share) и кэш (~/.cache). Она позволяет держать home чистым, а конфиги — собирать в dotfiles-репозиторий одним путём. - Почему нельзя править файлы, принадлежащие пакету? Потому что пакетный менеджер считает их своими: при обновлении они перезаписываются или конфликтуют. Правильный путь — слой переопределений: пользовательский конфиг, drop-in директории, overrides. Тот же принцип, что у systemd unit override и Docker-слоёв.
- Что такое Nerd Font и где он должен быть установлен при работе по SSH? Моноширинный шрифт с вшитыми иконочными глифами (Private Use Area). Нужен только на машине, которая рендерит текст, — то есть на клиенте с эмулятором терминала.
- Как ты перенесёшь своё окружение на новый ноутбук? Dotfiles в Git (всё содержимое
~/.config), установка базовой системы, клонирование dotfiles, симлинки или копирование, установка пакетов по зафиксированному списку. Цель — воспроизводимость за десятки минут, а не неделю воспоминаний. - Чем Wayland-композитор (Hyprland) отличается от X11-сервера архитектурно? В X11 был отдельный сервер-процесс между приложениями и железом; в Wayland композитор сам является сервером — приложения отдают ему буферы напрямую. Меньше посредников, лучше производительность, но и вся ответственность (ввод, рендер, скриншоты) — на композиторе.
Практика
Заголовок раздела «Практика»- Поставь Omarchy (на отдельную машину, в VM или рядом с текущей системой). Критерий: система загружается,
omarchy theme listпоказывает темы, терминал открывается по Super+Enter. - Проживи день без мыши для окон. Все переключения — Super+цифры, все запуски — Super+Space. Веди список моментов, где рука потянулась к мыши, — это карта того, что надо доучить.
- Смени тему и проследи каскад.
omarchy theme set <другая>, затем найди, какие файлы в~/.configизменились или куда теперь указывают симлинки. Критерий: можешь объяснить вслух путь темы до терминала, панели и Neovim. - Сделай первое переопределение правильно. Поменяй один хоткей или один цвет, не трогая
/usr/share/omarchy: только~/.config. Затем выполниomarchy updateи убедись, что правка выжила. - Заведи dotfiles-репозиторий. Закоммить
~/.config/hypr, конфиг терминала и (по мере прохождения раздела)nvimиtmux. Критерий:git logрепозитория рассказывает историю твоего окружения.
Что почитать
Заголовок раздела «Что почитать»- Omarchy — официальный сайт и документация — философия проекта, установка, команды.
- Hyprland Wiki — первоисточник по конфигу композитора: хоткеи, воркспейсы, правила окон.
- Arch Wiki — лучший технический справочник по Linux вообще, не только по Arch.
- XDG Base Directory Specification — короткая спецификация, объясняющая, почему конфиги живут в
~/.config. - Nerd Fonts — каталог пропатченных шрифтов и объяснение, откуда берутся иконки в TUI.