Keybindings

September 8, 2026 · View on GitHub

Keyboard

KeyAction
spacePlay/Pause
nNext track
pPrevious track
lToggle like on currently playing track
+ / -Volume up/down
j / kMove down/up
enterSelect / play
g lGo to Library
g sGo to Search
g bGo to Browse
g yGo to Liked Songs
g rGo to Recently Played
zGo to Queue
g LToggle lyrics sidebar
Ctrl+eToggle playlist sidebar
Ctrl+aToggle album art in playback bar
Ctrl+pChange theme
?Help (full keybinding reference inside the app)
Ctrl+w hFocus the Playlists sidebar (auto-shows it if hidden)
Ctrl+w lFocus the main content, then the lyrics sidebar if it's open
Ctrl+w wCycle focus through the visible panes
tab / Shift+tabFocus next / previous section — track table, result panel, Browse tab label, or any visible sidebar (then j/k move within it, enter activates). On Browse, tab highlights a tab label and enter opens it.
J / KQueue: move the selected track down / up in queue order (count-aware, e.g. 15 J moves down 15). Clears an active sort so the move is visible; a filter stays, and hidden rows still count as positions
aTrack actions menu
vMark / unmark the highlighted track (marks survive sorting and filtering; a marked track the filter hides still counts)
VStart a range of marks that follows the cursor; V again ends it, keeping the marks
escapeClear all marks
AAdd the marked tracks to a playlist, in the order shown (with no marks: the playing track)
/Filter current list
Ctrl+rCycle repeat mode (off → all → one)
Ctrl+sToggle shuffle
TToggle lyrics transliteration (ASCII)
s t / s a / s A / s dSort by Title / Artist / Album / Duration
s rReverse current sort
backspaceGo back
Shift+backspaceGo forward (after a back)
cPick chart region (Browse → Charts only)
qQuit

Mouse

ActionWhereEffect
ClickProgress barSeek to position
Scroll up/downProgress barScrub forward/backward (commits after 0.6s pause)
Scroll up/downVolume displayAdjust volume by 5%
ClickRepeat buttonCycle repeat mode (off → all → one)
ClickShuffle buttonToggle shuffle on/off
ClickHeart buttonToggle like on currently playing track
ClickFooter buttonsNavigate pages, play/pause, prev/next
ClickHeader ← Back / Forward →Navigate history (auto-show/hide based on stack state)
ClickPlaylist header Shuffle lock: ON/offToggle per-playlist forced-shuffle
ClickCharts shelf pillsSwitch between chart shelves. Two rows: Featured globally: (events like Coachella, hidden on terminals < 80 cols) and the country charts (Top 100 Songs → Weekly Top Songs on Shorts → Trending 20 → rest).
ClickLiked Songs / Recently Played [▶ Start Radio]Seed a radio from 5 random tracks in the collection
Right-clickTrack rowOpen context menu (play, queue, add to playlist, etc.). Works on every track-listing page including Queue / Liked Songs / Recently Played.
ClickMark column (leftmost cell of a track row)Mark / unmark that track. Never starts playback.
Ctrl+clickTrack rowMark / unmark that track and move the highlight there. Never starts playback.
Shift+clickTrack rowMark every row from the range's starting row to this one, keeping other marks. A normal click, Ctrl+click, or v sets the starting row.

Whether Ctrl+click and Shift+click reach the app with their modifier depends on the terminal — some keep them for their own text selection or link handling. The keyboard alternative is v to mark the highlighted track and V to mark a range that follows the cursor.

Custom keybindings

To rebind keys, edit ~/.config/ytm-player/keymap.toml. The file maps action names to lists of keys. Example — change like-toggle from l to Ctrl+l:

[keys]
like_toggle = ["ctrl+l"]

Multi-key sequences use space separation (e.g. ["g s"] for "press g then s").

A complete list of action names is shown in the in-app help (?).