site/content/_index.md (6565B)
1 +++
2 title = "ommp — Oh My Music Player"
3 description = "A terminal music player written in Rust. It plays the files already on your disk, in the terminal you already have open."
4 template = "landing.html"
5
6 [extra]
7 kicker = "Terminal music player"
8 headline = "Play your own music"
9 headline2 = "without leaving the terminal."
10 lede = "ommp plays the files already on your disk: the CDs you ripped, the albums you went looking for, the folder you have been adding to for years. One command, and it plays."
11
12 install_primary_label = "Arch Linux"
13 install_primary = "yay -S ommp"
14 install_secondary_label = "Anywhere else"
15 install_secondary = "cargo install ommp"
16
17 # ── 1. The artwork ───────────────────────────────────────────────────────
18 art_title = "That is your album art, in a terminal."
19 art_lede = "The cover comes out of the file itself: the same image your tags have been carrying since you ripped the disc or paid for the download."
20 art_body_1 = "In Ghostty, Kitty, WezTerm, Konsole, foot, xterm and Contour, ommp hands the artwork to the terminal's own graphics protocol and it arrives as a real image, grain and gradient intact, sitting in a shell next to your prompt. Terminals without one draw the same sleeve in block characters, coarser, and still recognisably the record you know."
21 art_body_2 = "Beside it, thirteen lines saying exactly what is playing, including the ones you went to some trouble over: <b>48.0 kHz</b>, <b>24-bit</b>, <b>Stereo</b>. Nothing there was fetched or guessed. All of it came off your disk, where it has been the whole time."
22
23 # ── 2. Nothing to start ──────────────────────────────────────────────────
24 start_title = "Nothing to start first."
25 start_lede = "No daemon in the background, no service to enable, no file to write before the first note. You type <code>ommp</code>, it reads <code>~/Music</code>, and it plays."
26 start_body = "Quit it and nothing of it keeps running. Everything it plays is already on your disk, so there is nothing to sign into, nothing to subscribe to, and nothing that stops working when a company changes its mind."
27 skipped = [
28 "Create an account",
29 "Import your library",
30 "systemctl --user enable mpd",
31 "~/.config/mpd/mpd.conf",
32 ]
33
34 # ── 3. Browse ────────────────────────────────────────────────────────────
35 browse_title = "Ask it seven ways, or just type."
36 browse_lede = "Press <kbd>1</kbd> to <kbd>7</kbd> to move along the tab strip: the queue everything lands in, the directory tree you built yourself, then artists, albums, genre, format and playlists. The same library, seven questions."
37 browse_body_1 = "Directories keeps the folders you organised, in the order you organised them. Genre is whatever you wrote in it. Format counts what you have of each: FLAC, MP3, M4A, OGG, WAV, Opus, AAC, WMA."
38 browse_body_2 = "When you already know the name, <kbd>Ctrl</kbd>+<kbd>S</kbd> and start typing. The list narrows on every keystroke. Put <code>artist:</code>, <code>album:</code> or <code>genre:</code> in front to say which you meant, or type <code>*.flac</code> for when you own something twice and want the good copy."
39
40 # ── 4. Nothing lost ──────────────────────────────────────────────────────
41 lost_title = "Nothing quietly disappears."
42 lost_lede = "The small decisions are the ones you notice on the second day."
43 lost_close = "Volume, shuffle, repeat, your playlists and the pane widths you dragged all come back the way you left them. The track does not. You choose that again."
44
45 # ── 5. Keys ──────────────────────────────────────────────────────────────
46 keys_title = "h j k l, Space, n."
47 keys_lede = "The keys already under your hands in every other window you have open."
48 keys_body_1 = "<kbd>j</kbd> and <kbd>k</kbd> move the list, <kbd>g</kbd> and <kbd>G</kbd> jump to the ends, <kbd>h</kbd> and <kbd>l</kbd> move between panes and <kbd>Tab</kbd> does the same. <kbd>Space</kbd> plays and pauses, <kbd>n</kbd> and <kbd>N</kbd> step through the queue, <kbd>+</kbd> and <kbd>-</kbd> take the volume, the arrows seek, <kbd>s</kbd> shuffles, <kbd>r</kbd> repeats, and <kbd>b</kbd> drops the playing track into a playlist. <kbd>Ctrl</kbd>+<kbd>H</kbd> lists every key there is."
49 keys_body_2 = "The mouse works too, when your hand is already there: click a tab, double-click a track, <kbd>Ctrl</kbd>-drag a border to resize a pane."
50
51 # ── 6. Install ───────────────────────────────────────────────────────────
52 install_title = "Install it."
53 install_close = "Then put some music in <code>~/Music</code> and run <code>ommp</code>."
54 splash_note = "The notes behind the top of this page are the ones ommp scatters across its splash screen, generated from the same hash the program uses."
55
56 # The seven tabs, each in the accent colour it actually uses in
57 # src/ui/widgets/tab_bar.rs, so the page and the app agree.
58 [[extra.tabs]]
59 name = "Queue"
60 color = "#64DCFF"
61 [[extra.tabs]]
62 name = "Directories"
63 color = "#78FFB4"
64 [[extra.tabs]]
65 name = "Artists"
66 color = "#FFB464"
67 [[extra.tabs]]
68 name = "Albums"
69 color = "#C882FF"
70 [[extra.tabs]]
71 name = "Genre"
72 color = "#FF7896"
73 [[extra.tabs]]
74 name = "Format"
75 color = "#78C8FF"
76 [[extra.tabs]]
77 name = "Playlists"
78 color = "#FFDC64"
79
80 [[extra.details]]
81 color = "#FFB464"
82 body = "A file with no tags at all lands under <b>Unknown Artist</b>, where you can still find it."
83 [[extra.details]]
84 color = "#C882FF"
85 body = "An album is paired with its album artist where one is tagged and the track artist where one is not, so two records called <i>Greatest Hits</i> stay two records."
86 [[extra.details]]
87 color = "#FFDC64"
88 body = "A playlist entry pointing at a drive that was not mounted when you started is left alone rather than pruned, and it works again when the drive comes back."
89 [[extra.details]]
90 color = "#78FFB4"
91 body = "Add files to the folder while ommp is running and they turn up. Take some away and they go."
92 +++