Skip to content

vi style navigation keys

casey langen edited this page Sep 20, 2017 · 1 revision

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",
  ...
Clone this wiki locally