Skip to content

Keyboard navigation support (vim-style keybindings) #85

@RAprogramm

Description

@RAprogramm

Summary

Add keyboard navigation support for hydebar to enable mouse-free workflow with vim-style keybindings.

Motivation

Currently hydebar requires mouse interaction for all operations. Users familiar with vim/neovim workflows prefer keyboard-driven interfaces for efficiency and accessibility.

Proposed Features

Global Navigation

  • Open/close menus without mouse
  • Navigate between modules
  • Focus management

Menu Navigation

  • Arrow keys or hjkl for movement
  • Enter to select
  • Escape to close
  • Tab/Shift+Tab for cycling

Module-Specific Actions

  • Calendar: navigate months, select dates
  • Settings: toggle options, adjust values
  • Notifications: dismiss, clear
  • Media Player: play/pause, skip tracks
  • Volume: adjust levels

Configuration

Keybindings should be configurable in config.toml:

[keybindings]
enabled = true
mode = "vim"  # or "emacs", "custom"

[keybindings.global]
toggle_menu = "<Super>space"
next_module = "<Super>l"
prev_module = "<Super>h"

[keybindings.menu]
up = "k"
down = "j"
left = "h"
right = "l"
select = "<Enter>"
close = "<Escape>"

Implementation Considerations

  • Use iced keyboard event handling
  • Maintain focus state across menus
  • Ensure accessibility compliance
  • Preserve existing mouse functionality
  • Add visual focus indicators

Success Criteria

  • All menus navigable via keyboard
  • No mouse required for basic operations
  • Configurable keybindings
  • Visual feedback for focused elements
  • Documentation for keybinding configuration

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions