GTK4/Libadwaita приложение для отображения биндингов Hyprland.
- Всплывающее overlay окно - использует GTK4 Layer Shell для создания плавающего окна поверх всех остальных
- Не требует window rules - Layer Shell автоматически управляет позиционированием и поведением окна
-
Поиск и фильтрация
- Поиск по описанию, комбинации клавиш, команде
- Живой поиск с обновлением результатов
- Горячие клавиши:
Ctrl+Fили/для фокуса на поиск
-
Группировка по категориям
- Applications (exec команды)
- Window Control (управление окнами)
- Workspaces (воркспейсы)
- Focus & Movement (фокус и перемещение)
- Layout (лейаут)
- System (системные команды)
- Other (остальное)
- Счетчик биндингов в каждой категории
-
Визуальные улучшения
- Иконки Adwaita для разных типов действий:
- system-run - exec
- window-close - killactive
- preferences-system-windows - togglefloating
- view-fullscreen - fullscreen
- view-grid - workspace operations
- starred - togglespecialworkspace
- transform-move - movefocus/movewindow
- system-log-out - exit
- view-refresh - reload
- input-mouse - mouse bindings
- Badges для специальных флагов: Release, Repeat, Long Press, Submap
- Комбинация клавиш справа с accent цветом
- Иконки Adwaita для разных типов действий:
-
Дополнительные поля
- Mouse bindings support
- Release, Repeat, Long Press флаги
- Submap indicator
-
Интерактивность
- Клик по биндингу копирует комбинацию клавиш в буфер обмена
- Горячие клавиши:
Escape- закрыть окноCtrl+Fили/- фокус на поиск
-
Статистика
- Счетчик биндингов в header bar
- Обновляется при фильтрации
-
Empty state
- Красивое сообщение если биндингов не найдено
-
Прямое API общение
- Использует Hyprland IPC через Unix socket
- Нет оверхеда на создание процесса
-
Keycode преобразование (через CLI параметры)
- XKB для преобразования keycode в читаемые имена клавиш
- Явное указание раскладки через
--layoutпараметр - Поддержка всех XKB раскладок (us, ru, de, fr, jp, cn и др.)
- Поддержка вариантов (
--variant dvorak) - См.
hyprhelp --helpдля всех опций
cd ~/hyprhelp
cargo build --releaseБинарник будет в target/release/hyprhelp
Смотрите HYPRLAND_SETUP.md для настройки floating окна.
Hyprhelp автоматически определяет текущую раскладку клавиатуры из Hyprland. Подробнее см. KEYBOARD_LAYOUT.md.
~/hyprhelp/target/release/hyprhelpБиндинг в hyprland.conf:
bind = SUPER, H, exec, ~/hyprhelp/target/release/hyprhelpДля корректного преобразования keycode в имена клавиш укажите раскладку через CLI параметры:
# Для английской раскладки
~/hyprhelp/target/release/hyprhelp --layout us
# Для русской раскладки
~/hyprhelp/target/release/hyprhelp --layout ru
# Для немецкой раскладки
~/hyprhelp/target/release/hyprhelp --layout deВ hyprland.conf можно настроить несколько биндингов для разных раскладок:
# Показать для английской раскладки
bind = SUPER, H, exec, ~/hyprhelp/target/release/hyprhelp --layout us
# Показать для русской раскладки
bind = SUPER SHIFT, H, exec, ~/hyprhelp/target/release/hyprhelp --layout ruhyprhelp --helpОпции:
-l, --layout <LAYOUT>- XKB раскладка (us, ru, de, fr и др.)-v, --variant <VARIANT>- Вариант раскладки (dvorak, colemak)-m, --model <MODEL>- Модель клавиатуры (по умолчанию: pc105)-r, --rules <RULES>- XKB правила (по умолчанию: evdev)-o, --options <OPTIONS>- XKB опции--debug- Включить отладочный вывод XKB keymap
Примеры:
# US Dvorak
hyprhelp --layout us --variant dvorak
# Русская с переключением по Alt+Shift
hyprhelp --layout ru --options grp:alt_shift_toggle
# С отладкой
hyprhelp --layout ru --debugCtrl+Fили/- фокус на поискEscape- закрыть окно- Клик по строке - скопировать комбинацию клавиш
- Rust
- GTK4
- GTK4 Layer Shell - для всплывающего overlay окна
- Libadwaita
- xkbcommon - преобразование keycode в имена клавиш
- Hyprland IPC API - прямое общение через Unix socket
Смотрите DEPENDENCIES.md для полного списка зависимостей.
Кратко для Arch Linux:
sudo pacman -S rust gtk4 libadwaita gtk4-layer-shell libxkbcommonRuntime:
- Hyprland
- Переменная окружения
HYPRLAND_INSTANCE_SIGNATURE(автоматически устанавливается Hyprland)