Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hyprhelp

GTK4/Libadwaita приложение для отображения биндингов Hyprland.

Особенности

  • Всплывающее overlay окно - использует GTK4 Layer Shell для создания плавающего окна поверх всех остальных
  • Не требует window rules - Layer Shell автоматически управляет позиционированием и поведением окна

Возможности

✅ Реализовано

  1. Поиск и фильтрация

    • Поиск по описанию, комбинации клавиш, команде
    • Живой поиск с обновлением результатов
    • Горячие клавиши: Ctrl+F или / для фокуса на поиск
  2. Группировка по категориям

    • Applications (exec команды)
    • Window Control (управление окнами)
    • Workspaces (воркспейсы)
    • Focus & Movement (фокус и перемещение)
    • Layout (лейаут)
    • System (системные команды)
    • Other (остальное)
    • Счетчик биндингов в каждой категории
  3. Визуальные улучшения

    • Иконки 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 цветом
  4. Дополнительные поля

    • Mouse bindings support
    • Release, Repeat, Long Press флаги
    • Submap indicator
  5. Интерактивность

    • Клик по биндингу копирует комбинацию клавиш в буфер обмена
    • Горячие клавиши:
      • Escape - закрыть окно
      • Ctrl+F или / - фокус на поиск
  6. Статистика

    • Счетчик биндингов в header bar
    • Обновляется при фильтрации
  7. Empty state

    • Красивое сообщение если биндингов не найдено
  8. Прямое API общение

    • Использует Hyprland IPC через Unix socket
    • Нет оверхеда на создание процесса
  9. 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

Смотрите HYPRLAND_SETUP.md для настройки floating окна.

Раскладка клавиатуры

Hyprhelp автоматически определяет текущую раскладку клавиатуры из Hyprland. Подробнее см. KEYBOARD_LAYOUT.md.

Использование

Базовый запуск (системные дефолты)

~/hyprhelp/target/release/hyprhelp

Биндинг в hyprland.conf:

bind = SUPER, H, exec, ~/hyprhelp/target/release/hyprhelp

С указанием раскладки (для правильного отображения keycode)

Для корректного преобразования 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 ru

Все CLI параметры

hyprhelp --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 --debug

Горячие клавиши

  • Ctrl+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 libxkbcommon

Runtime:

  • Hyprland
  • Переменная окружения HYPRLAND_INSTANCE_SIGNATURE (автоматически устанавливается Hyprland)

About

Simple bindings window for Hyprland on GTK4

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages