1 vi style navigation keys
casey langen edited this page 2017-09-19 22:37:06 -07:00

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",
  ...