Главная страница
Что это и зачем?
Это моя маленькая база знаний. Здесь я сохраняю небольшие заметки, инструкции или гайды, к которым периодически нужен доступ.
Перед началом
- НЕ относитесь к этой вики как к универсальному источнику знаний. Материалы может содержать ошибки или неточности.
- Местоимения “я” и его формы, которые встречаются на страницах, подразумевают непосредственно меня, если не указано иное.
- В целом, материалы подходят для разных систем, но по большей части не
проверялись на других дистрибутивах. Команды, которые содержатся на
страницах вики, предназначены для Arch Linux.
Замените пакетный менеджер
pacman, систему инициализацииsystemdи другие специфичные для этого дистрибутива компоненты на те, что используются в вашей системе. Это также означает, что используются последние версии программ, если не указано иное.
Разделы
| Раздел | Описание |
|---|---|
| 🐧 Linux | Гайды и инструкции про Linux |
| ⚙️ Приложения и утилиты | Некоторые сценарии использования разных программ |
| ✨ Разное | Всё остальное. Полезные (или не очень) гайды |
Структура вики почти наверное поменяется в будущем.
Использование материалов вики
Материалы вики являются общественным достоянием, если не указано иное. Вы можете свободно использовать, копировать и распространять их без каких‑либо ограничений.
Ссылки на внешние ресурсы и цитаты из других источников могут охраняться авторским правом. Перед их использованием проверьте условия лицензии соответствующего ресурса.
Не является юридической консультацией.
Кастомизация системы
Одно из самых больших преимуществ Linux — возможность полностью настроить систему под себя. В этом гайде описана кастомизация системы. Часто этот процесс называется “ricing”. Конфигурационные файлы часто называют “dotfiles” (дотфайлы, или просто доты).
Экосистема рабочих столов Linux постоянно расширяется, появляются новые интересные проекты. Здесь перечислены не все программы, а наиболее популярные или те, которые я сам использую или использовал ранее — на деле их гораздо больше. При желании можно разработать что-то свое.
Графическое окружение
Настроить под себя можно практически любое окружение рабочего стола, оконный менеджер или Wayland-композитор.
Xorg — реализация X Window System (часто называют “X”, “иксы”). Является централизованным и работает вместе с оконным менеджером и (опционально) композитором.
Wayland — более современная реализация графического сервера. Более безопасен, чем Xorg, часто более эффективен, предоставляет более широкие настройки. В отличие от X, каждый Wayland-композитор реализует протоколы самостоятельно, т.е. нет центрального компонента.
Окружения рабочего стола
- GNOME (X11, Wayland) — простое в использовании окружение, основанное на GTK.
- KDE Plasma (X11, Wayland) — окружение рабочего стола, основанное на Qt.
- Cinnamon (X11, Wayland) — окружение, разработанное командой Linux Mint.
- Xfce (X11) — минималистичное и производительное оконное окружение.
Оконные менеджеры (X11)
- bspwm — тайловый оконный менеджер на основе двоичного разбиения пространства.
- awesomewm — широко кастомизируемый оконный менеджер, настраиваемый на Lua.
- i3 — ручной тайловый оконный менеджер.
- Qtile — тайловый оконный менеджер, написанный и настраиваемый на Python.
Композиторы (Wayland)
- niri — скроллинговый тайлинг.
- Hyprland — современный, широко настраиваемый, тайловый Wayland-композитор.
- Sway — ручной тайловый композитор, полностью совместимый с i3.
Оболочка рабочего стола
Если вы используете полноценные окружения рабочего стола, то, скорее всего, не нуждаетесь в установке дополнительный компонентов, таких как панели или лаунчеры, так как окружение уже поставляет их. Эти компоненты называют оболочкой (не стоит путать с оболочкой командной строки). Оконные менеджеры и отдельные Wayland-композиторы зачастую не реализуют этих компонентов, поэтому их нужно устанавливать и настраивать отдельно.
Полноценные системы виджетов
Полноценные системы виджетов позволяют создавать и настраивать различные компоненты рабочего стола, используя один инструмент. Как правило, подразумевается, что пользователь сам напишет (запрограммирует) эти компоненты, используя встроенный язык и/или библиотеки. Сложность этих языков и библиотек варьируется.
- Astal (X11, Wayland) — фреймворк для создания GTK-виджетов рабочего стола, поддерживающий разные языки программирования.
- eww (X11, Wayland) — автономная система виджетов на языке Rust, позволяющая реализовать собственные виджеты в любом оконном менеджере.
- Fabric (X11, Wayland) — система виджетов на Python.
- QuickShell (X11, Wayland) — тулкит для создания своих виджетов, панелей, блокировщиков экрана и проч. на основе QtQuick и QML.
Панели
- Polybar (X11) — быстрая и простая в использовании панель.
- Waybar (Wayland) — широко настраиваемая панель для различных Wayland-композиторов.
- Yambar (X11, Wayland) — модульная панель, вдохновлённая Polybar.
- Ironbar (Wayland) – кастомизируемая полнофункциональная панель для Wayland-композиторов, написанная на GTK4 и Rust.
- Ashell (Wayland) — готовая к использованию и простая в настройке панель для Hyprland и Niri.
Уведомления
- dunst (X11, Wayland) — легковесный и настраиваемый демон сервер.
- mako (X11, Wayland) — простой демон уведомлений.
- Sway Notification Center (Wayland) — демон уведомлений с центром управления.
Экраны блокировки
- i3lock (X11) — простой экран блокировки.
- i3lock-color — форк i3lock, добавляющий множество новых функций.
- swaylock (Wayland) — простой экран
блокировки для Wayland-композиторов.
- swaylock-effects — форк swaylock, добавляющий причудливые эффекты.
- gtklock — экран блокировки для Wayland, основанный на GTK.
- Hyprlock — экран блокировки Hyprland (также работает с другими композиторами) с графическим ускорением.
Лаунчеры
- dmenu (X11) — простой вертикальный лаунчер приложений.
- rofi (X11, Wayland) — лаунчер, динамическое меню и переключатель окон.
- wofi (Wayland) — лаунчер для Wayland-композиторов.
- tofi (Wayland) — минималистичный лаунчер с упором на скорость.
Обои
- feh (X11) — просмотрщик изображений с возможностью устанавливать обои.
- swaybg (Wayland) — простая утилита для установки обоев.
- Hyprpaper (Wayland) — быстрая утилита для отображения обоев с поддержкой IPC.
- awww (ранее swww) (Wayland) — эффективный демон обоев для Wayland со множеством функций, контролируемый при помощи IPC.
- mpvpaper (Wayland) — позволяет при помощи плеера mpv установить на обои любое видео.
Скриншоты
- scrot (X11) – утилита командной строки для снимков экрана.
- xsnip (X11) — минималистичный и удобный инструмент для скриншотов.
- grim и
slurp (Wayland) — утилиты для выделения
области экрана и снимков экрана.
- slurp позволяет выделить область экрана и печатает в стандартный вывод координаты.
- grim принимает на вход координаты и делает снимок экрана.
Темы графических приложений
GTK
Один из плюсов GTK — широкие возможности для настройки внешнего вида. Существует большое разнообразие тем, хорошим ресурсом для поиска которых является Pling, а именно — раздел GNOME-Look.
Ниже приведены некоторые темы для GTK-приложений:
Чтобы использовать тему, выполните команды
gsettings set org.gnome.desktop.interface gtk-theme <название-темы>
gsettings set org.gnome.desktop.wm.preferences theme <название-темы>
Также можно выбрать светлую или тёмную тему. Это зачастую не повлияет на тему непосредственно, но сообщит приложениям (например, браузеру), что пользователь выбрал ту или иную тему.
# Для тёмной темы.
gsettings set org.gnome.desktop.interface color-scheme prefer-dark
# Для светлой темы
gsettings set org.gnome.desktop.interface color-scheme prefer-light
Наконец, существует утилита gnome-tweaks, которая позволяет настраивать тему GTK-приложений. Изначально она предназначена для GNOME, но работает и вне этого оконного окружения.
Qt
С кастомизацией Qt-приложений дела обстоят сложнее. Тем гораздо меньше, а изменить их достаточно сложно. Тем не менее, в этом разделе приведены советы по настройке внешнего вида приложений, использующих Qt.
Начиная с 5-ой версии Qt, существует возможность стилизовать приложения на Qt в соответствии с темой GTK. Это работает не всегда, но помогает. Для этого установите переменную окружения глобально (например, в конфигурационном файле вашего оконного менеджера):
QT_QPA_PLATFORMTHEME=gtk3
Ещё один способ обеспечить схожий внешний вид для приложений на GTK и Qt — использование тем, доступных для обоих систем, например, Breeze и Adwaita.
При использовании Wayland-композиторов Qt-приложения, как правило, выглядят лучше, чем на Xorg при использовании оконных менеджеров. Полноценные окружения рабочего стола, как правило, лишены данной проблемы — они поставляют приложения с соответствующими виджетами (например, GTK-приложения у GNOME, Qt-приложения у KDE Plasma), а для прочих приложений используют свои темы.
Иконки
Вы можете поменять иконки по умолчанию, установив желаемый набор. Найти и скачать наборы можно как вручную (например, отсюда), так и из репозиториев вашего дистрибутива.
Чтобы использовать набор, выполните команду ниже. Это работает только с GTK-приложениями.
gsettings set org.gnome.desktop.interface icon-theme <название-набора>
Курсоры
Как и в случае с иконками, вы можете поменять курсоры по умолчанию.
Установка из репозиториев:
Ручная установка:
При ручной установке, я рекомендую устанавливать темы для курсоров, заменяя тему
по умолчанию. Это позволяет достичь одинакового отображения в GTK и Qt, кроме
того, использование этого метода также установит курсоры для таких компонентов,
как менеджеры дисплеев (экран входа в систему). Для этого распакуйте архив с
курсорами в директорию /usr/share/icons/default. Должна получиться подобная
структура:
/usr/share/icons/default/
cursors/
...
cursor.theme
index.theme
Ресурсы
Список ресурсов для вдохновления:
Разные конфигурации, которые можно взять за основу:
- Misterio77/nix-config
- Niwau/dotfiles
- NotMugil/dotfiles
- SsubezZ/hyprland-dots
- ericmurphyxyz/dotfiles
- shelepuginivan/dotfiles
- shub39/dotfiles
Настройка Linux для разработки
Если вы используете другой дистрибутив (который не базируется на Arch Linux), используйте соответствующий пакетный менеджер. Для каждого пакета приведён статус пакетизации, где можно узнать название необходимого пакета в репозиториях вашего дистрибутива.
Go
go (компилятор, тулчейн, …)
Проще всего установить Go из репозиториев. Это позволит легко обновлять его с выходом новых версий.
Установите пакет go:
sudo pacman -S go
Также можно скачать архив с go.dev и распаковать его в
/usr/local.
# Замените X.X.X.OS-arch на нужную версию, ОС и архитектуру
# (например 1.23.4.linux-amd64).
curl -o go.tar.gz "https://go.dev/dl/goX.X.X.OS-arch.tar.gz"
# Полностью удалить предыдущую установку Go.
sudo rm -rf /usr/local/go
# Установить скачанную версию из архива.
sudo tar -C /usr/local -xzf go.tar.gz
При установке из архива рекомендуется создать символьную ссылку в
/usr/local/bin, чтобы можно было запускать компилятор командой go:
sudo ln -s /usr/local/go/bin/go /usr/local/bin/go
Также можно добавить /usr/local/go/bin в $PATH.
gopls (LSP сервер)
Установите пакет gopls:
sudo pacman -S gopls
Или установите при помощи go install:
# Замените `X.X.X` на нужную версию (например 0.17.1).
go install golang.org/x/tools/gopls@vX.X.X
Пример конфигурации для Neovim:
vim.lsp.config("gopls", {
cmd = { "gopls", "serve" },
filetypes = { "go", "gomod", "gowork", "gotmpl" },
settings = {
gopls = {
analyses = {
unusedparams = true,
},
staticcheck = true,
},
},
})
staticcheck (линтер)
Установите пакет staticcheck:
sudo pacman -S staticcheck
Или с помощью go install:
go install honnef.co/go/tools/cmd/staticcheck@2026.1
Note
Начиная с версии Go 1.24, можно добавлять пакеты в качестве утилит.
go get -tool honnef.co/go/tools/cmd/staticcheck@2026.1 # Использование go tool staticcheck --help
golangci-lint (линтер)
Установите пакет golangci-lint:
sudo pacman -S golangci-lint
Или установите при помощи go install:
# Замените `X.X.X` на нужную версию (например 1.63.4).
go install github.com/golangci/golangci-lint/cmd/golangci-lint@vX.X.X
Note
Начиная с версии Go 1.24, можно добавлять пакеты в качестве утилит.
go get -tool github.com/golangci/golangci-lint/cmd/golangci-lint@vX.X.X # Использование go tool golangci-lint --help
Python
python3 (интерпретатор)
Установите пакет python. Скорее всего он уже установлен.
sudo pacman -S python
uv (пакетный менеджер, менеджер проектов)
Установите пакет uv:
sudo pacman -S uv
Также можно воспользоваться установочным скриптом, если нужный пакет отсутствует в репозиториях вашего дистрибутива:
curl -LsSf https://astral.sh/uv/install.sh | sh
ruff (форматтер, линтер)
Установите пакет ruff:
sudo pacman -S ruff
Или с помощью установочного скрипта:
curl -LsSf https://astral.sh/ruff/install.sh | sh
Note
Системная установка
ruffне обязательна при использовании виртуальных окружений. В частности, при использованииuvможно добавитьruffкак утилиту в проект:uv add --dev ruff # Использование uv run ruff format
pyright (LSP сервер)
Установите пакет pyright:
sudo pacman -S pyright
pipx (пакетный менеджер)
pipx — обертка над pip, позволяющая устанавливать пакеты Python из
Python Package Index в изолированных окружениях. Это
полезно для установки исполняемых программ на Python, которых нет в
репозиториях дистрибутива. В отличие от pip, пакеты устанавливаются в
домашнюю директорию.
Установите пакет python-pipx:
sudo pacman -S python-pipx
Note
Установка непосредственно пакетного менеджера
pipне является обязательной при использовании виртуальных окружений:python -m venv venv source venv/bin/activate which pip # /путь/до/проекта/venv/bin/pipБолее того, система не даст установить пакет с помощью системного
pip.
Rust
rustup (установщик)
Рекомендованный способ установки Rust — при помощи rustup.
Установите пакет rustup:
sudo pacman -S rustup
Или установите при помощи скрипта:
curl -fsSL https://sh.rustup.rs | sh
После установки необходимо задать инструменты (toolchain) по умолчанию:
rustup default stable
rust-analyzer (LSP сервер)
Если после установки тулчейнов rust-analyzer не работает, можно установить
его вручную:
# Способ из документации
rustup component add rust-src
# Ещё один способ
rustup component add rust-analyzer
Также можно установить пакет rust-analyzer:
sudo pacman -S rust-analyzer
clippy (линтер)
rustup component add clippy
Игры на Linux
Гайд по настройке Linux для игр.
Особенности:
- Для запуска исполняемых файлов Windows (
.exe) используется wine - В качестве лаунчера используется Lutris
- Для систем с Wayland используются xwayland-satellite, Cage и gamescope
1. Включение репозитория multilib
Репозиторий multilib содержит 32-битное программное обеспечение и библиотеки,
которые можно использовать для запуска и сборки 32-битных приложений на
64-битных установках.
В /etc/pacman.conf добавить или раскомментировать строки:
[multilib]
Include = /etc/pacman.d/mirrorlist
Далее необходимо синхронизировать репозиторий:
sudo pacman -Syu
2. Установка пакетов
Набор пакетов может показаться избыточным, но он обеспечивает корректную работу на разных системах. Кроме того, некоторые пакеты могут быть уже установлены.
sudo pacman -S --needed lutris wine wine-gecko wine-mono winetricks giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls openal lib32-openal v4l-utils lib32-v4l-utils libx11 lib32-libx11 ncurses lib32-ncurses libgcrypt lib32-libgcrypt libxcomposite lib32-libxcomposite dqlite lib32-sqlite libxinerama lib32-libxinerama gdk-pixbuf2 lib32-gdk-pixbuf2 gcc-libs lib32-gcc-libs ocl-icd lib32-ocl-icd libxslt lib32-libxslt libva lib32-libva gst-plugins-base libgpg-error lib32-libgpg-error libjpeg-turbo lib32-libjpeg-turbo libglvnd lib32-libglvnd libva-mesa-driver lib32-libva-mesa-driver vkd3d lib32-vkd3d lib32-vulkan-icd-loader vulkan-icd-loader glad psmisc fluidsynth libunwind vulkan-tools vulkan-headers
Для систем с PipeWire понадобятся пакеты lib32-libpipewire и lib32-pipewire
— для воспроизведения аудио 32-битных приложений:
sudo pacman -S lib32-libpipewire lib32-pipewire
Warning
Звук в некоторых играх может не работать даже с этими библиотеками. Проблему может решить установка пакета
lib32-libpulse:sudo pacman -S lib32-libpulse
Если используется видеокарта от AMD:
sudo pacman -S amdvlk vulkan-radeon lib32-amdvlk lib32-vulkan-radeon
Если в игре некорректное отображение, можно попробовать установить плагины для GStreamer:
sudo pacman -S gst-plugins-bad gst-plugins-good gst-plugins-ugly
В некоторых играх могут некорректно отображаться шрифты. Исправить проблему
помогает установка шрифтов в winetricks:
winetricks corefonts
3. Для систем с Wayland
При запуске игр с помощью wine используется XWayland, поэтому в некоторых Wayland-композиторах потребуется использовать дополнительное ПО:
В этом гайде рассмотрены xwayland-satellite, Cage и gamescope. В целом, можно выбрать любой из вариантов. Лучше всего попробовать несколько вариантов для нужных игр и выбрать наиболее подходящий.
По моему опыту, xwayland-satellite хватает для многих игр, но он требует настройки на уровне хостового композитора. Cage очень прост в использовании, но работает не идеально (например, если у игры нестандартное разрешение). gamescope позволяет гибко настроить множество параметров.
xwayland-satellite
-
Установите пакет
: sudo pacman -S xwayland-satellite -
Включите сервис
xwayland-satellite:systemctl --user enable --now xwayland-satelliteЕсли вы используете niri, пропустите этот шаг. Начиная с версии
25.08в niri есть встроенная интеграция xwayland-satellite. -
В настройках Lutris (Preferences > Global Options > Game execution > Environment variables) переменную окружения
DISPLAYи установите значение:0— таким образом wine будет всегда использовать Xwayland для отображения.
После настройки любая игра, запускаемая с помощью wine, будет открываться с помощью xwayland-satellite в отдельном окне.
Cage
-
Установите пакет
cage:sudo pacman -S cage -
Если игра ещё не добавлена, нажмите “+” в верхнем левом углу, выберите “Add locally installed game”:
При настройке уже установленной игры этот шаг можно пропустить. -
В настройках игры, разделе Game Info установить поле Runner в значение “Linux (Runs native games)”

-
В разделе Game Options прописать параметры аналогичным образом, заменив путь до каталога с игрой и название исполняемого файла
В этом примере используется директория /home/ivan/Games/HoloCure:Games/ HoloCure/ ... HoloCure.exe -
В качестве альтернативы можно создать вспомогательный скрипт и указать его как исполняемый файл:
Games/ HoloCure/ ... HoloCure.exe launch.shПример скрипта:
#!/bin/sh cage -- wine HoloCure.exe
Important
Важно, чтобы у файла были права на исполнение:
chmod +x /путь/до/скрипта/launch.sh
gamescope
gamescope позволяет указать больше опций для композитора. Например, можно указать разрешение. Это может быть полезно для игр с нестандартным размером окна.
-
Установите пакет
: sudo pacman -S gamescope -
Если игра ещё не добавлена, нажмите “+” в верхнем левом углу, выберите “Add locally installed game”:
При настройке уже установленной игры этот шаг можно пропустить. -
В настройках игры, разделе Game Info установить поле Runner в значение “Linux (Runs native games)”.

-
В разделе Game Options прописать параметры аналогичным образом, заменив путь до каталога с игрой и название исполняемого файла

В этом примере используется директория
/home/ivan/Games/Touhou 10 - Mountain of Faith:Games/ Touhou 10 - Mountain of Faith/ ... th10.exe -
В качестве альтернативы можно создать вспомогательный скрипт и указать его как исполняемый файл:
Games/ Touhou 10 - Mountain of Faith/ ... launch.sh th10.exeПример скрипта:
#!/bin/sh WINEPREFIX="$XDG_DATA_HOME/wineprefixes/default" LC_ALL="ja_JP.UTF-8" gamescope -W 640 -H 480 -r 60 -f -- wine th10.exe
Important
Важно, чтобы у файла были права на исполнение:
chmod +x /путь/до/скрипта/launch.sh
Перенос библиотеки игр из другой системы
Чтобы перенести библиотеку Lutris на новую систему, достаточно скопировать следующие директории:
~/.cache/lutris~/.config/lutris~/.local/share/lutris
Если использовалась системная версия wine, также потребуется скопировать
директорию $WINEPREFIX (по умолчанию ~/.wine). Это нужно, чтобы перенести
сохранения игр, так как в этот каталог сохраняются данные приложений,
запускаемых через wine.
Caution
Абсолютные пути файлов из библиотеки игр должны совпадать.
Если игры хранились на отдельном разделе, в новой системе раздел с играми должен быть примонтирован по тому же пути, что и в предыдущей системе.
Если игры хранились в
home/(как правило,~/Games), то путь к директории должен быть таким же, как и в предыдущей системе.
PipeWire
PipeWire — современный мультимедийный фреймворк.
Установка
Для работы PipeWire необходимо установить пакеты:
pipewire— Маршрутизатор и процессор аудио/видео с низкой задержкойpipewire-alsa— Замена ALSA для работы с PipeWirepipewire-pulse— Замена PulseAudio для работы с PipeWirewireplumber— Реализация менеджера сеансов/политик для PipeWire
Я рекомендую дополнительно установить:
wiremix— TUI-клиент для управления звукомsof-firmware— Микрокод “Sound Open Firmware” (например, для поддержки встроенных динамиков)
В качестве графической альтернативы wiremix можно использовать pavucontrol
— GUI-клиент для управления звуком (изначально создавался для PulseAudio, но
работает с PipeWire).
# Минимальная установка
sudo pacman -S pipewire pipewire-alsa pipewire-pulse wireplumber
# Дополнительно
sudo pacman -S sof-firmware wiremix # pavucontrol
Управление звуком
Команды, приведённые ниже, могут быть полезны для управления звуком из скриптов, в сочетаниях клавиш и проч.
# Увеличить громкость (замените 0.05 на нужное значение).
wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+
# Уменьшить громкость.
wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-
# Переключить звук (mute/unmute).
wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
Пример комбинаций клавиш для niri:
binds {
XF86AudioRaiseVolume allow-when-locked=true {
spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+"
}
XF86AudioLowerVolume allow-when-locked=true {
spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-"
}
XF86AudioMute allow-when-locked=true {
spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"
}
}
Устранение неполадок
Устройство, подключённое по Bluetooth, не отображается среди устройств вывода PulseAudio
Если устройство подключено по Bluetooth, но не отображается как выходное
устройство (например, в pavucontrol), следующие шаги могут решить проблему.
-
Убедиться в том, что устройство подключено (замените
XX:XX:XX:XX:XX:XXна фактический MAC-адрес):bluetoothctl connect XX:XX:XX:XX:XX:XXВывод должен заканчиваться строкой наподобие
Connection successful. -
Проверить, что устройство не отображается среди устройств вывода:
pactl list short sinks | grep bluez -
Добавьте следующую политику в файл
/etc/bluetooth/main.conf:[General] Enable=Control,Gateway,Headset,Media,Sink,Socket,Source
Принтеры и сканеры
Настройка Linux для работы с принтерами и сканерами.
Принтеры (CUPS)
CUPS (Common Unix Printing System) — это открытая система для печати в Linux.
Установка
Пакет cups доступен в большинстве репозиториев.
sudo pacman -S cups
sudo systemctl enable cups
sudo systemctl start cups
Для работы CUPS требуется установить GhostScript:
sudo pacman -S ghostscript
Для добавления принтера, в зависимости от модели, необходимо установить соответствующий драйвер. Более подробную информацию см. в
Добавление принтеров
- Открыть http://localhost:631
- Перейти на вкладку “Administration”. Потребуется ввести пароль
- Выбрать нужную опцию (“Local Printers”, “Discovered Network Printers”, “Other Network Printers”)
- Следовать инструкции
Проверка принтера
Чтобы проверить, что принтер подключён корректно, проделайте следующие шаги:
- Перейти на вкладку “Printers”
- Выбрать принтер, который необходимо проверить
- В выпадающем меню “Maintenance” выбрать опцию “Print test page”

Если принтер подключён корректно, на нём будет напечатана тестовая страница.
Сканеры (SANE)
SANE (Scanner Access Now Easy) — API, обеспечивающий стандартизированный доступ к любому оборудованию для сканирования растровых изображений.
Установка
Пакет sane доступен в большинстве репозиториев. При этом графические
приложения (фронтенды), как правило, требуют пакет в качестве
зависимости, так что его явная установка часто не является обязательной.
sudo pacman -S sane
Фронтенды
Для SANE существует множество фронтендов. Наиболее популярные приведены ниже:
-
Simple Scan — Упрощенный графический интерфейс, который должен быть проще в использовании и лучше интегрирован в рабочий стол GNOME, чем XSane. Является частью GNOME.
sudo pacman -S simple-scan -
Skanlite — Простое приложение для сканирования изображений, которое не делает ничего, кроме сканирования и сохранения изображений, основанное на бэкенде KSane. Часть KDE.
sudo pacman -S scanlite -
Skanpage — Приложение для сканирования и сохранения документов и изображений, состоящих из одной или нескольких страниц.
sudo pacman -S scanpage -
Scantailor — Приложение для сканирования, которое работает с проектами и позволяет редактировать их в процессе сканирования.
sudo pacman -S scantailor-advanced
Восстановление GRUB
Если при использовании GRUB не получилось загрузить систему, возможны несколько сценариев. Определить эти сценарии можно по виду командной строки (промпта):
-
grub>Этот промпт указывает на то, что GRUB определил всё, кроме файла конфигурации (
/boot/grub/grub.cfg). См.grub>. -
grub rescue>Этот промпт указывает на то, что GRUB не смог определить свою директорию или файлы в ней повреждены/отсутствуют (например, отсутствует ядро Linux). См.
grub rescue>.
grub>
-
Выведите список разделов
lsБудет отображён список всех блочных устройств, которые GRUB смог определить.
-
Определите корневой раздел
Для этого необходимо выполнить команду ниже для каждого раздела из шага 1 (замените
_на номер в вашем случае):ls (hd_)/ # "/" в конце является обязательным!Если вывод будет содержать директории
boot,usrи т.д. — это корневой раздел.Наконец, нужно отметить этот раздел как корневой для GRUB (замените
_на номер в вашем случае):set root=(hd_) -
Задайте ядро Linux, которое будет использоваться для загрузки
linux /boot/vmlinuz-linux root=/dev/sda1Ядро и корневой раздел нужно выбрать в зависимости от системы. В качестве
rootнужно установить корневой раздел.Пример для NVME:
linux /boot/vmlinuz-linux root=/dev/nvme0n1p3 -
Загрузите initramfs
initrd /boot/initramfs-linux.imgОбратите внимаение, что название файла, как правило, имеет вид
initramfs-<linux>.img, где<linux>зависит от того, какое ядро используется в шаге 3.Например, если используется
/boot/vmlinuz-linux-zen, нужно выполнить команду:initrd /boot/initramfs-linux-zen.img -
Загрузить систему
bootДля этого также можно нажать сочетание клавиш CtrlX или F10.
-
Переустановить GRUB
Для систем с BIOS (как правило, более старые устройства). Замените
Xна букву, которая используется в вашем случае:grub-mkconfig -o /boot/grub/grub.cfg grub-install --target=i386-pc /dev/sdXНапример:
grub-mkconfig -o /boot/grub/grub.cfg grub-install --target=i386-pc /dev/sdaДля систем с UEFI (как правила, более новые устройства):
grub-mkconfig -o /boot/grub/grub.cfg grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUBПосле названия блочного устройства не должно идти номера раздела (
/dev/sda, но не/dev/sda1)!grub-installприменяется не к разделу, а ко всему блочному устройству. -
Перезагрузите систему
reboot
grub rescue>
В этом случае будем использовать загрузочную флешку (livecd) (хотя в редких
случаях можно восстановить систему и без неё). В инструкции будет
использоваться загрузочный образ Arch Linux
(archiso), можно также использовать загрузочные образы других дистрибутивов.
-
Загрузитесь с USB
Для этого нужно переопределить приоритет загрузки (Boot Priority) в BIOS/UEFI. Этот шаг сильно зависит от устройства, так что дать конкретные инструкции невозможно. Обычно клавиши F* (F2, F10) прерывают обычную загрузку и позволяют зайти в BIOS/UEFI.
-
Примонтируйте необходимые разделы
Зависит от схемы разметки диска. Например:
mount /dev/sda1 /boot/efi mount /dev/sda2 /NVME:
mount /dev/nvme0n1p1 /mnt/boot/efi mount /dev/nvme0n1p3 /mnt -
chroot
arch-chroot /mnt -
Переустановите GRUB
Для систем с BIOS (как правило, более старые устройства). Замените
Xна букву, которая используется в вашем случае:grub-mkconfig -o /boot/grub/grub.cfg grub-install --target=i386-pc /dev/sdXНапример:
grub-mkconfig -o /boot/grub/grub.cfg grub-install --target=i386-pc /dev/sdaДля систем с UEFI (как правила, более новые устройства):
grub-mkconfig -o /boot/grub/grub.cfg grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUBПосле названия блочного устройства не должно идти номера раздела (
/dev/sda, но не/dev/sda1)!grub-installприменяется не к разделу, а ко всему блочному устройству. -
Перезагрузите систему
exit # Или Ctrl+D, выход из arch-chroot reboot
Виртуальные машины на базе libvirt и QEMU
Установка
Требуется установить пакет libvirt и один из гипервизоров. Я
выбрал QEMU (пакет qemu-full). Для
установки виртуальных машин требуется пакет virt-install.
sudo pacman -S libvirt virt-install qemu-full
Если виртуальные машины будут запускаться с графической сессией, можно
использовать virt-viewer:
sudo pacman -S virt-viewer
Включите и запустите службу libvirtd
sudo systemctl enable libvirtd
sudo systemctl start libvirtd
Чтобы предоставить пользователю доступ к демону libvirt, проще всего добавить
его в группу libvirt:
sudo usermod -aG libvirt $(whoami)
Создание ВМ
Скачайте ISO-образ операционной системы, которая будет использоваться в ВМ. Ниже перечислены ссылки для некоторых ОС:
Для установки ВМ выполните команду ниже, указав необходимые параметры:
virt-install \
--name <имя-ВМ> \
--memory <размер оперативной памяти в МБ> \
--vcpus <количество виртуальных ядер> \
--cpu host \
--cdrom <путь до ISO-образа> \
--disk size=<размер диска в ГБ>,format=qcow2 \
--network user \
--virt-type kvm \
--graphics vnc
Далее необходимо установить операционную систему виртуальной машины в
открывшемся окне. Если окно не открылось, можно использовать virt-viewer
напрямую (здесь и далее <имя-ВМ> совпадает с именем, указанным при
установке):
virt-viewer <имя-ВМ>
Использование ВМ
Запуск
virsh start <имя-ВМ>
virt-viewer <имя-ВМ>
Снапшоты
Создать снапшот:
virsh snapshot-create-as <имя-ВМ> <название-снапшота> --description <описание>
Посмотреть список снапшотов:
virsh snapshot-list <имя-ВМ>
Откатить ВМ до снапшота:
# Откатиться до снапшота по названию
virsh snapshot-revert <имя-ВМ> <название-снапшота>
# Откатиться до текущего снапшота
virsh snapshot-revert <имя-ВМ> --current
Удалить снапшот:
# Удалить снапшот по названию
virsh snapshot-delete <название-снапшота>
# Удалить текущий снапшот
virsh snapshot-delete --current
Проигрывание аудио
Добавьте (или раскомментируйте) следующую опцию в файле
/etc/libvirt/qemu.conf:
vnc_allow_host_audio = 1
В качестве альтернативы можно использовать SPICE.
virtiofs
Необходимо отредактировать конфигурацию ВМ. Чтобы открыть конфигурацию для редактирования, выполните команду:
virsh edit <имя-ВМ>
Добавить параметры в соответствующих секциях конфигурации:
<domain type='kvm'>
[...]
+ <memoryBacking>
+ <source type='memfd'/>
+ <access mode='shared'/>
+ </memoryBacking>
[...]
<devices>
[...]
+ <filesystem type='mount' accessmode='passthrough'>
+ <driver type='virtiofs'/>
+ <source dir='<путь на хосте>'/>
+ <target dir='host'/>
+ </filesystem>
[...]
</devices>
[...]
</devices>
Замените <путь на хосте> на путь до директории, которая будет доступна из
виртуальной машины.
Внутри ВМ примонтируйте директорию командой:
mount -t virtiofs host /mnt
См. также: Sharing files between the host and its virtual machines by using virtiofs.
Подключение по SSH. Port forwarding.
Самый простой способ настройки port forwarding — выполнить команду ниже, когда ВМ запущена:
virsh qemu-monitor-command --hmp <имя-ВМ> 'hostfwd_add ::<порт на хосте>-:<порт на ВМ>'
Замените выделенные параметры на необходимые значения, например:
virsh qemu-monitor-command --hmp my-vm 'hostfwd_add ::2222-:22'
В примере выше 22 порт виртуальной машины “my-vm” будет доступен как 2222 порт на хосте.
Эту команду необходимо выполнять после каждой остановки/запуска ВМ. Можно автоматизировать этот процесс при помощи хуков libvirt.
Убедитесь, что на виртуальной машине настроен и запущен sshd. Подключитесь к ВМ командой:
ssh <пользователь на ВМ>@127.0.0.1 -p <порт на хосте>
Для передачи файлов между ВМ и хостом можно использовать scp или настроить
SSHFS.
Удаление
virsh destroy <имя-ВМ>
virsh undefine <имя-ВМ> --remove-all-storage
Если для указанной ВМ создавались снапшоты, перед удалением ВМ их также необходимо удалить.
Настройка ВМ с Windows 10
SSH
Включите возможность “OpenSSH Server”.
В настройках перейдите в Settings > Apps > Apps & features > Optional features, нажмите “Add a feature” и установите “OpenSSH Server”.

В качестве альтернативы, выполните команду:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Возможно, после включения возможности потребуется перезагрузка.
Включите и запустите службу sshd:
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Обычно, система автоматически создаст правило для фаерволла, позволяющее подключаться по ssh, используя порт 22. Если правило не было создано (т.е. подключение не удаётся) или требуется использовать другой порт, добавьте его командой:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program "C:\Windows\System32\OpenSSH\sshd.exe"
По умолчанию, подключение по ssh будет запускать cmd.exe. Чтобы поменять
оболочку на PowerShell, выполните команду от имени администратора:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
Скопируйте свой публичный SSH ключ в
C:\Users\<имя пользователя>\.ssh\authorized_keys.
Настройте port forwarding для ВМ и подключитесь к ней командой:
ssh <пользователь на ВМ>@127.0.0.1 -p 2222
См. также: Key-based authentication in OpenSSH for Windows.
Конвертация OVA в qcow2
OVA — формат для хранения и распространения ВМ, используемый VirtualBox, VMWare и другими системами виртуализации. Представляет собой tar-архив, содержащий образ диска и другие файлы.
Распакуйте архив:
tar -xvf vm.ova
В рабочей директории должен появиться образ диска, как правило, в формате VMDK. Конвертируйте образ в qcow2:
qemu-img convert -pf vmdk vm-disk001.vmdk -O qcow2 vm.qcow2
После конвертации импортируйте ВМ с помощью virt-install:
virt-install \
--import \
--name <имя-ВМ> \
--memory <размер оперативной памяти в МБ> \
--vcpus <количество виртуальных ядер> \
--cpu host \
--disk path=<путь до файла qcow2>,format=qcow2 \
--network user \
--virt-type kvm \
--graphics vnc
FFmpeg
FFmpeg — кроссплатформенное решение для записи, обработки и стриминга видео- и аудиофайлов.
На этой странице представлены примеры использования FFmpeg для пременения тех или иных эффектов. Как и в случае с другими страницами в этом разделе, это лишь базовые, распространенные сценарии использования. На самом деле FFmpeg является настолько мощным инструментарием, что его используют примерно все стриминговые сервисы.
Установка
Установите пакет ffmpeg:
sudo pacman -S ffmpeg
Затухание/проявление (fade)
Для всех команд ниже:
- Начало — время начала затухания (в секундах от начала)
- Продолжительность — продолжительность эффекта (в секундах)
Аудио / затухание:
ffmpeg -i in.mp3 -af afade=t=out:st=<начало>:d=<продолжительность> out.mp3
Аудио / проявление:
ffmpeg -i in.mp3 -af afade=t=in:st=0:d=<продолжительность> out.mp3
Видео / затухание:
ffmpeg -i in.mp4 -vf fade=t=out:st=<начало>:d=<продолжительность> out.mp4
Видео / проявление:
ffmpeg -i in.mp4 -vf fade=t=in:st=0:d=<продолжительность> out.mp4
Фильтры можно комбинировать. В этом случае опции разделяются запятыми:
ffmpeg -i in.mp4 -vf "fade=t=in:st=0:d=10,fade=t=out:st=10:d=5" -c:a copy out.mp4
Сжатие
Уменьшить размер видео можно командой:
ffmpeg -i in.mp4 -vcodec libx265 -crf 28 out.mp4
Если необходима совместимость с macOS (QuickTime), нужно использовать кодек H.265/HEVC:
ffmpeg -i in.mp4 -c:v libx265 -preset fast -crf 28 -tag:v hvc1 -c:a eac3 -b:a 224k out.mp4
Создание видео-стикеров (Telegram)
Telegram позволяет создавать видео-стикеры. Файл видео-стикера должен удовлетворять следующим условиям:
- Формат
.webm - До 30 кадров в секунду
- Кодек VP9
- Отсутствие аудиопотока
- Одна сторона должна быть размером 512 пикселей, другая сторона меньше или равна 512 пикселей
- Продолжительность не должна превышать 3 секунд
- Размер видео после кодирования не должен превышать 256 КБ
Создать файл видео-стикера можно командой:
ffmpeg -y -i in.mov -r 30 -t 2.99 -an -c:v libvpx-vp9 \
-pix_fmt yuva420p \
-vf 'scale=512:512:force_original_aspect_ratio=decrease' \
-b:v 400K \
out.webm
При этом формат входного файла (in.mov в примере) может быть практически
любым — ffmpeg поддерживает огромное
количество форматов видео и изображений. В частности, можно сделать статический
видео-стикер из изображения.
Если размер выходного файла больше 256 КБ, попробуйте уменьшить значение
параметра -b:v 400K, например, до -b:v 300K.
Удалить метаданные
С помощью флага -map_metadata -1:
ffmpeg -i in.mp3 -c:v copy -c:a copy -map_metadata -1 out.mp3
ImageMagick
ImageMagick — кроссплатформенная утилита для обработки изображений.
ImageMagick предоставляет очень большое количество инструментов для работы с изображениями. Здесь показаны лишь часто используемые примеры.
Установка
Установите пакет imagemagick:
sudo pacman -S imagemagick
В зависимости от версий может вызываться либо как magick (начиная с 7), либо
convert (в более старых), что является deprecated формой запуска. Далее в
примерах команд используется magick.
Также во всех командах ниже in.png — входной файл, out.png — выходной
файл. В общем случае ImageMagick поддерживает довольно много форматов.
Размытие
-blur <радиус>x<сигма>:
magick in.png -blur 0x8 out.png
| До | После |
|---|---|
![]() | ![]() |
Радиус в большинстве случаев равен 0. Сигма может зависить от размера изображения (для бóльших изображений имеет смысл брать бóльшие значения).
Затемнение
-fill black -colorize <процент>%:
magick in.png -fill black -colorize 60% out.png
| До | После |
|---|---|
![]() | ![]() |
black можно заменить на другие цвета. Чаще всего возникает задача сделать
изображение более светлым (-fill white) или более темным (-fill black).
Удаление метаданных
-strip:
magick in.png -strip out.png
Также удалить метаданные можно с помощью exiftool,
который поддерживает большее число форматов файлов. Флаг -strip удобно
добавлять “заодно” к другим флагам (обработка + удаление метаданных).
Генерация UML диаграмм (C++)
Генерация UML диаграмм при помощи
clang-uml и
PlantUML. Осуществляется в 3 этапа:
- Генерации базы данных компиляции
compile_commands.json - Генерация UML-диаграммы в формате разметки PlantUML
- Конвертация разметки PlantUML в выбранный формат
compile_commands.json
Генерация compile_commands.json зависит от системы сборки. Ниже перечислены
способы для некоторых распространённых систем сборки:
CMake
Начиная с версии 2.8.5, CMake поддерживает опцию CMAKE_EXPORT_COMPILE_COMMANDS:
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .
Команда выше создаст файл compile_commands.json в директории сборки.
Meson
Файл автоматически создаётся в директории сборки.
Ninja
Начиная с версии 1.2, можно передать аргументы командной строки -t compdb:
ninja -t compdb > compile_commands.json
Прочие системы сборки
Некоторые системы сборки (напр. GNU Autotools) не поддерживают генерацию compile_commands.json.
В этом случае базу данных компиляции можно сгенерировать при помощи внешних инструментов.
Установите пакет bear:
sudo pacman -S bear
Предположим, проект использует make, команда для сборки:
make -j4
Тогда для генерации compile_commands.json при помощи bear нужно вызвать
утилиту следующим образом:
bear -- make -j4
Генерация диаграммы в формате PlantUML
Для генерации PlantUML-диаграммы используется утилита
clang-uml.
Установите пакет clang-uml (AUR):
paru -S clang-uml
# или
yay -S clang-uml
Необходимо создать конфигурационный файл .clang-uml в той директории, из
которой утилита будет запускаться. Базовая конфигурация может выглядеть
следующим образом:
compilation_database_dir: <build-dir>
output_directory: diagrams
diagrams:
config_class:
type: class
<build-dir> необходимо заменить на путь до директории, в которой находится
файл compile_commands.json.
Например, при использовании Meson:
project/
builddir/ # Директория сборки Meson
...
compile_commands.json
.clang-uml
main.cpp
meson.build
в .clang-uml следует указать:
compilation_database_dir: builddir
Более подробную информацию о конфигурации см. в
документации clang-uml.
Запустите clang-uml:
clang-uml
В соответствии с конфигурацией, в директории <output_directory> будет
сгенерирован .pump-файл. Для типовой конфигурации выше будет сгенерирован
файл diagrams/config_class.puml.
Конвертация PlantUML в изображение
Для конвертации .puml-файла можно использовать CLI-интерфейс PlantUML.
Установите пакеты graphviz и plantuml:
sudo pacman -S graphviz plantuml
Запустите plantuml, указав путь до .puml-файла:
plantuml ./diagrams/config_class.puml
Диаграмма будет конвертирована в diagrams/config_class.png.
Выходной формат можно изменить при помощи флагов (-tpng, -tsvg, -tpdf).
См. полный список форматов в документации
PlantUML.
Пример
Ниже представлен простой пример проекта и генерации UML-диаграмм для него.
project/
bar.cpp
bar.hpp
foo.cpp
foo.hpp
main.cpp
Makefile
bar.cpp
#include "bar.hpp"
Bar::Bar(Foo *foo) {
m_Foo = foo;
}
void Bar::printUnderlyingFooValue() {
if (m_Foo != nullptr) {
m_Foo->printValue();
}
}
bar.hpp
#ifndef BAR_HPP
#define BAR_HPP
#include "foo.hpp"
class Bar {
public:
Bar(Foo *foo);
void printUnderlyingFooValue();
private:
Foo *m_Foo;
};
#endif /* BAR_HPP */
foo.cpp
#include <iostream>
#include "foo.hpp"
Foo::Foo(int v) {
m_Value = v;
}
void Foo::printValue() {
std::cout << "Value is " << m_Value << std::endl;
}
foo.hpp
#ifndef FOO_HPP
#define FOO_HPP
class Foo {
public:
Foo(int v);
void printValue();
private:
int m_Value;
};
#endif /* FOO_HPP */
main.cpp
#include "bar.hpp"
#include "foo.hpp"
int main() {
Foo *foo = new Foo(42);
Bar *bar = new Bar(foo);
bar->printUnderlyingFooValue();
return 0;
}
Makefile
При копировании файла замените пробелы перед командами на табуляцию.
build: bar.o foo.o main.o
g++ -o my-binary bar.o foo.o main.o
bar.o: bar.cpp bar.hpp
g++ -c bar.cpp
foo.o: foo.cpp foo.hpp
g++ -c foo.cpp
main.o: main.cpp
g++ -c main.cpp
clean:
rm -rf my-binary *.o
Шаги для генерации UML-диаграммы:
-
Сгенерировать
compile_commands.json:bear -- make -
Создать конфигурационный файл
.clang-uml:diagrams: config_class: type: class -
Сгенерировать диаграмму в формате PlantUML:
clang-uml -
Конвертировать
.puml-файл в изображение:plantuml -tsvg ./config_class.puml
На выходе получается подобная диаграмма:
Руководство по разметке в Pango
Краткое руководство по формату разметки, который используется в Pango. В частности, он используется в GTK.
Этот документ — перевод статьи из документации к одному из моих проектов. Здесь представлены практически все возможности разметки Pango, но не все. В частности, я опустил те, которые при работе над проектом воспроизвести не удалось (они в любом случае почти никогда не используются).
См. также Pango: Text Attributes and Markup.
В целом, разметка в чем-то похожа на HTML, но поддерживает лишь несколько тегов. Очевидно, Pango нацелен на рендеринг текста, поэтому нерелевантные теги в нем не поддерживаются.
<span> и его атрибуты
<span> — самый распространенный и общий тег, который можно кастомизировать
с помощью ряда атрибутов. Атрибуты задают свойства для текста внутри тега.
Некоторые шрифты могут не поддерживать некоторые атрибуты. Эффект зависит непосредственно от шрифта.
Атрибуты, перечисленные через запятую в заголовках — это псевдонимы для одного и того же атрибута, можно использовать любой.
font, font_desc
Строка-описание шрифта, например Sans Italic 12. Прочие атрибуты тега
<span> имеют приоритет над данным описанием. Например, если также указать
style="normal", шрифт не будет курсивным (как можно было ожидать из описания
шрифта).
<span font="Sans Italic 12">Lorem ipsum dolor sit amet</span>
font_family, face
Название семейства шрифта.
<span font_family="Roboto">The quick brown fox jumps over the lazy dog</span>
font_size, size
Размер шрифта в одном из следующих форматов:
- 1024-ые доли пункта (например
20480для 20 пунктов) - Пункты (
12.5pt) - Проценты (
200%) - Относительный размер:
smallerlarger
- Абсолютный размер:
xx-smallxx-smallx-smallsmallmediumlargex-largexx-large
Для абсолютного размера, если также нужно указать шрифт, проще использовать
font.
<span size="large">Какой-то текст и <span size="larger">текст побольше</span></span>
font_style, style
Стиль шрифта: bold, italic или oblique.
<span style="bold">Будьте собой</span>
font_weight, weight
Вес (толщина) шрифта, в одном из следующих форматов:
- Число от
1до1000 - Именованное абсолютное значение:
ultralightlightnormalboldultraboldheavy
<span weight="ultrabold">
pls rember that wen u feel scare or frigten never forget ttimes wen u
feeled happy wen day is dark alway rember happy day
</span>
font_variant, variant
Вариант шрифта.
Один из:
normalsmall-capsall-small-capspetite-capsall-petite-capsunicasetitle-caps
<span variant="small-caps">это выглядит странно</span>
font_stretch, stretch
Ширина символов.
Одно из:
ultracondensedextracondensedcondensedsemicondensednormalsemiexpandedexpandedextraexpandedultraexpanded
<span stretch="ultracondensed">время писать документацию!</span>
font_features
Список типографических особенностей OpenType, элементы разделены запятыми.
<span font_features="dlig=1, -kern, afrc on">текст</span>
См. MDN: особенности шрифтов OpenType.
color, fgcolor, foreground
Цвет текста в одном из следующих форматов:
- Цвет RGB в hex-нотации (
#ff2400) - Цвет RGBA в hex-нотации (
#7900ff7f) - Название цвета (
green)
Указание цвета в формате RGBA эквивалентно заданию атрибутов color и
alpha.
<span color="red">Красный текст</span>
alpha, fgalpha
Доля прозрачности цвета текста, в одном из следующих форматов:
- Целое число от 1 до 65536 (
12345) - Процент (
40%)
<span alpha="30%">вау прозрачный текст</span>
bgcolor, background
Цвет фона в одном из следующих форматов:
- Цвет RGB в hex-нотации (
#ff2400) - Цвет RGBA в hex-нотации (
#7900ff7f) - Название цвета (
green)
Указание цвета в формате RGBA эквивалентно заданию атрибутов bgcolor и
bgalpha.
<span bgcolor="green">...</span>
bgalpha, background_alpha
Доля прозрачности фона, в одном из следующих форматов:
- Целое число от 1 до 65536 (
54321) - Процент (
55%)
<span alpha="30%">ого прозрачный фон</span>
underline
Подчеркивание текста.
Один из:
nonesingledoublelowerror
<span underline="error">Runtime Error: "libhappiness.so" not found</span>
underline_color
Цвет подчеркивания текста (underline), в одном из следующих форматов:
- Цвет RGB в hex-нотации (
#ff2400) - Название цвета (
green)
<span underline="error" underline_color="red">ашибка</span>
overline
Надстрочная черта. Значение none или single.
<span overline="single">текст с надстрочной чертой</span>
overline_color
Цвет надстрочной черты (overline), в одном из следующих форматов:
- Цвет RGB в hex-нотации (
#ff2400) - Название цвета (
green)
<span overline="single" overline_color="green">Эта разметка довольно гибкая</span>
rise
Изменение позиции текста по высоте, в одном из следующих форматов:
- 1024-ая доля пункта (например,
4092) - Пункты (
5pt)
Положительные значения используются для надстрочного индекса и отрицательные для подстрочного.
<span rise="4pt">вверх</span>
baseline_shift
Как rise, но с накоплением значений.
- 1024-ая доля пункта (например,
4092) - Пункты (
5pt) - Одно из именованных значений:
subscriptsuperscript
x<span baseline_shift="5pt">x<span baseline_shift="5pt" rise="5pt">x</span></span>
font_scale
Масштабирование шрифта.
Один из:
subscriptsuperscriptsmall-caps
Этот атрибут похож на font_size, но для вычисления размера
используются метрики самого шрифта.
<span font_scale="small-caps">текст</span>
strikethrough
Перечеркивание текста. true или false.
<span strikethrough="true">удалите это</span>
strikethrough_color
Цвет перечеркивания текста (strikethrough), в одном из следующих форматов:
- Цвет RGB в hex-нотации (
#ff2400) - Название цвета (
green)
<span strikethrough="true" strikethrough_color="red">
удалите это прямо сейчас
</span>
fallback
Включить ли резервный шрифт для символов. true или false.
Когда это значение выключено, для отображения символов используется только шрифты, совпадающие с описанием используемого шрифта. Pango не будет пробовать использовать другие шрифты, которые могли бы содержать информацию о незнакомых символах. Поэтому по умолчанию данная опция включена, и большинству приложений выключать её не нужно.
<span fallback="false">ы</span>
lang
Код языка, обозначающий язык текста.
<span lang="en">well</span>
letter_spacing
Межсимвольный интервал, в 1024-ых долях пункта.
<span letter_spacing="2048">что это такое?</span>
gravity
Ориентация символов в сегменте текста.
Один из:
southeastnorthwestauto
<span gravity="north">Reverse Ideology</span>
show
Указывает, какие скрытые символы отображать.
Значение либо none, либо комбинация spaces, line-breaks и ignorables,
разделенных |.
<span show="spaces|line-breaks">
пробелы и
переносы строк
</span>
insert_hyphens
Использовать ли дефисы для переноса строки (если перенос в середине слова). true или false.
<span insert_hyphens="true">scarlet police on ghetto patrol</span>
allow_breaks
Разрешить ли переносы строк, true или false.
<span allow_breaks="true">
Надеюсь
это
было
полезно
</span>
text_transform
Трансформация текста.
Один из:
nonelowercaseuppercasecapitalize
<span text_transform="capitalize">вам это не пригодится, почти наверняка</span>
Вспомогательные теги
Остальные теги являются псевдонимами для <span> и некоторого набора его
атрибутов. Во многих сценариев использования они удобнее.
| Тег | Описание |
|---|---|
<b> | Жирный |
<i> | Курсив |
<s> | Перечеркнутый |
<u> | Подчеркнутый |
<tt> | Моноширинный шрифт |
<big> | Делает текст относительно больше, эквивалентно <span size="larger"> |
<small> | Делает текст относительно меньше, эквивалентно <span size="smaller"> |
<sub> | Надстрочный индекс |
<sup> | Подстрочный индекс |
Эти теги не поддерживают атрибуты, поэтому если нужно использовать сразу
несколько модификаций (например, сделать текст курсивным, большим и задать
цвет), то нужно использовать span.


