No history yet

Lua конфигурация

Конфигурация как код

WezTerm превращает настройку терминала из редактирования статичного файла в написание небольшой программы. Вся магия происходит в файле .wezterm.lua, который находится в вашем домашнем каталоге в Windows (%USERPROFILE%). Это исполняемый скрипт на языке Lua, что открывает почти безграничные возможности для кастомизации.

В основе всего лежит функция wezterm.config_builder(). Она создает объект конфигурации, который мы будем наполнять нашими настройками. Это обеспечивает типобезопасность: если вы опечатаетесь в названии параметра, WezTerm сообщит об ошибке.

-- Импортируем модуль wezterm
local wezterm = require 'wezterm'

-- Создаем объект для нашей конфигурации
local config = wezterm.config_builder()

-- Здесь будут наши настройки

-- Возвращаем готовый объект
return config

Это минимальный рабочий конфиг. Он ничего не меняет, но является отправной точкой. Все параметры, которые мы будем добавлять, размещаются между созданием config и его возвратом.

Сохранив изменения в .wezterm.lua, просто нажмите CTRL+SHIFT+R для «горячей перезагрузки». WezTerm применит новую конфигурацию на лету, без перезапуска.

Настройка и отладка

Все настройки — это поля в Lua-таблице, которую представляет наш объект config. Вы просто присваиваете значения нужным ключам. Например, давайте изменим размер шрифта и цветовую схему.

local wezterm = require 'wezterm'
local config = wezterm.config_builder()

-- Устанавливаем размер шрифта
config.font_size = 12.0

-- Выбираем встроенную цветовую схему
config.color_scheme = 'Dracula'

-- Включаем размытие фона, если ОС это поддерживает
config.window_background_opacity = 0.85
config.win32_system_backdrop = 'Mica'

return config

Что-то пошло не так? Или вы хотите проверить значение переменной? На помощь приходят инструменты отладки. Самый простой способ — вывести информацию в лог с помощью wezterm.log_info().

Чтобы увидеть эти сообщения и другие ошибки, используйте — специальное окно, которое вызывается по CTRL+SHIFT+L. Это ваш главный инструмент для поиска проблем в конфигурации.

Lesson image

Умный конфиг с логикой

Сила Lua в том, что вы можете использовать условную логику. Например, можно применять разные настройки в зависимости от операционной системы или даже имени пользователя. Для определения ОС используется переменная wezterm.target_os.

local wezterm = require 'wezterm'
local config = wezterm.config_builder()

-- Проверяем, запущена ли программа в Windows
if wezterm.target_os == 'Windows' then
  config.font = wezterm.font 'JetBrains Mono'
  wezterm.log_info('Windows-конфигурация загружена, шрифт JetBrains Mono')
else
  -- Настройки для других ОС, например, Linux или macOS
  config.font = wezterm.font 'Fira Code'
  wezterm.log_info('Загружена конфигурация для ' .. wezterm.target_os)
end

config.font_size = 12.0

return config

В этом примере мы устанавливаем шрифт JetBrains Mono, если скрипт выполняется в Windows, и Fira Code — в других системах. Отладочное сообщение в Debug Overlay подтвердит, какая ветка кода была выполнена.

Это только начало. Используя Lua, вы можете создавать функции для генерации цветовых схем, динамически формировать списки вкладок или даже интегрироваться с внешними скриптами. Ваш терминал становится по-настоящему вашим.