File vi-style-navigation-keys.md of Package musikcube

# overview

out of the box musikcube uses arrow keys for general navigation. people who use vi or vim regularly may find this inconvenient. fortunately, navigation keys can be changed by the user. included in this document is a sample `hotkeys.json` for vi-style navigation.

note that all hotkeys are the same as default, except:

* `UP` -> `k`
* `DOWN` -> `j`
* `LEFT` -> `h`
* `RIGHT` -> `l`
* `volume up` -> `M-i`
* `volume down` -> `M-k`
* `prev track` -> `M-j`
* `next track` -> `M-l`

# hotkeys.json

to use this config, you'll need to update your `hotkeys.json` with the configuration that follows. `hotkeys.json` can be found in `~/.musikcube` on macOS and Linux, and `C:\Users\username\AppData\Roaming\musikcube` on Windows.

**note**: make sure to close musikcube before editing this file!

for Windows and Linux:

```
{
  "browse_playlists_delete": "KEY_DC",
  "browse_playlists_new": "M-n",
  "browse_playlists_rename": "M-r",
  "browse_playlists_save": "M-s",
  "context_menu": "M-enter",
  "key_down": "j",
  "key_end": "KEY_END",
  "key_home": "KEY_HOME",
  "key_left": "h",
  "key_page_down": "KEY_NPAGE",
  "key_page_up": "KEY_PPAGE",
  "key_right": "l",
  "key_up": "k",
  "metadata_rescan": "^R",
  "navigate_console": "`",
  "navigate_jump_to_playing": "x",
  "navigate_library": "a",
  "navigate_library_album_artists": "4",
  "navigate_library_browse": "b",
  "navigate_library_browse_albums": "2",
  "navigate_library_browse_artists": "1",
  "navigate_library_browse_genres": "3",
  "navigate_library_filter": "f",
  "navigate_library_play_queue": "n",
  "navigate_library_playlists": "5",
  "navigate_library_tracks": "t",
  "navigate_settings": "s",
  "play_queue_delete": "KEY_DC",
  "play_queue_hot_swap": "M-a",
  "play_queue_move_down": "M-down",
  "play_queue_move_up": "M-up",
  "play_queue_playlist_delete": "M-x",
  "play_queue_playlist_load": "M-l",
  "play_queue_playlist_rename": "M-r",
  "play_queue_playlist_save": "M-s",
  "playback_next": "M-l",
  "playback_previous": "M-j",
  "playback_seek_back": "u",
  "playback_seek_forward": "o",
  "playback_stop": "^X",
  "playback_toggle_mute": "m",
  "playback_toggle_pause": "^P",
  "playback_toggle_repeat": ".",
  "playback_toggle_shuffle": ",",
  "playback_volume_down": "M-k",
  "playback_volume_up": "M-i",
  "toggle_visualizer": "v",
  "view_refresh": "KEY_F(5)"
}
```

for macOS:

```
{
  "browse_playlists_delete": "KEY_BACKSPACE",
  "browse_playlists_new": "M-n",
  "browse_playlists_rename": "M-r",
  "browse_playlists_save": "M-s",
  "context_menu": "M-enter",
  "key_down": "j",
  "key_end": "KEY_END",
  "key_home": "KEY_HOME",
  "key_left": "h",
  "key_page_down": "KEY_NPAGE",
  "key_page_up": "KEY_PPAGE",
  "key_right": "l",
  "key_up": "k",
  "metadata_rescan": "^R",
  "navigate_console": "`",
  "navigate_jump_to_playing": "x",
  "navigate_library": "a",
  "navigate_library_album_artists": "4",
  "navigate_library_browse": "b",
  "navigate_library_browse_albums": "2",
  "navigate_library_browse_artists": "1",
  "navigate_library_browse_genres": "3",
  "navigate_library_filter": "f",
  "navigate_library_play_queue": "n",
  "navigate_library_playlists": "5",
  "navigate_library_tracks": "t",
  "navigate_settings": "s",
  "play_queue_delete": "KEY_BACKSPACE",
  "play_queue_hot_swap": "M-a",
  "play_queue_move_down": "CTL_DOWN",
  "play_queue_move_up": "CTL_UP",
  "play_queue_playlist_delete": "M-x",
  "play_queue_playlist_load": "M-l",
  "play_queue_playlist_rename": "M-r",
  "play_queue_playlist_save": "M-s",
  "playback_next": "M-l",
  "playback_previous": "M-j",
  "playback_seek_back": "u",
  "playback_seek_forward": "o",
  "playback_stop": "^X",
  "playback_toggle_mute": "m",
  "playback_toggle_pause": "^P",
  "playback_toggle_repeat": ".",
  "playback_toggle_shuffle": ",",
  "playback_volume_down": "M-k",
  "playback_volume_up": "M-i",
  "toggle_visualizer": "v",
  "view_refresh": "KEY_F(5)"
}
```

the important bits are:

```
  ...
  "key_down": "j",
  "key_left": "h",
  "key_right": "l",
  "key_up": "k",
  ...
  "playback_next": "M-l",
  "playback_previous": "M-j",
  "playback_volume_down": "M-k",
  "playback_volume_up": "M-i",
  ...
```
openSUSE Build Service is sponsored by