<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Stepan Manookian</title>
    <description>The latest articles on DEV Community by Stepan Manookian (@smanookian).</description>
    <link>https://dev.to/smanookian</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1576218%2F595fafcc-7339-4655-bd92-53b62da723d9.png</url>
      <title>DEV Community: Stepan Manookian</title>
      <link>https://dev.to/smanookian</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/smanookian"/>
    <language>en</language>
    <item>
      <title>Musinator: A Music Player for the Terminal That Looks Good</title>
      <dc:creator>Stepan Manookian</dc:creator>
      <pubDate>Wed, 11 Nov 2026 11:31:35 +0000</pubDate>
      <link>https://dev.to/smanookian/musinator-a-music-player-for-the-terminal-that-looks-good-1i52</link>
      <guid>https://dev.to/smanookian/musinator-a-music-player-for-the-terminal-that-looks-good-1i52</guid>
      <description>&lt;p&gt;&lt;code&gt;A free terminal music player for Omarchy and Linux. Real album covers, lyrics in time with the song, 22 themes, internet radio, podcasts, and your Navidrome or Jellyfin servers.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;So here is the thing about music in the terminal. The players are fast, but most of them look like 1998.&lt;/p&gt;

&lt;p&gt;I live in the terminal on Omarchy, and I wanted my music there too. cmus is fast. ncmpcpp is powerful, but you set up MPD first. None of them show me the album cover, the lyrics, or colors that match my desktop. So I built the player I wanted.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk0cpku83ypr6ellc1hjb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk0cpku83ypr6ellc1hjb.gif" alt="Musinator in action: album covers, Now Playing with synced lyrics and a visualizer, live theme switching, and mini mode" width="599" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Two screens. &lt;strong&gt;Library&lt;/strong&gt; on the left, your music on the right. &lt;strong&gt;Now Playing&lt;/strong&gt; with a big cover, the lyrics and a visualizer. &lt;code&gt;z&lt;/code&gt; switches between them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real album covers.&lt;/strong&gt; In Ghostty, which Omarchy uses, the covers are real pictures. In other terminals they are block pictures. There is also an album grid, if you like to browse by cover.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lyrics in time.&lt;/strong&gt; From an &lt;code&gt;.lrc&lt;/code&gt; file next to the song, from the song itself, or from LRCLIB when you press &lt;code&gt;ctrl+l&lt;/code&gt;. &lt;code&gt;f&lt;/code&gt; opens full-screen lyrics with the current line in big letters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;22 themes.&lt;/strong&gt; Press &lt;code&gt;t&lt;/code&gt; and they change live while you move through the list. Or pick "Match Omarchy", and Musinator follows when you switch your Omarchy theme.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F132lh3eb1yslpa37k2k3.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F132lh3eb1yslpa37k2k3.webp" alt="Now Playing: the Highway To Hell cover, the lyrics with the current line marked, and the visualizer" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Not only your files
&lt;/h2&gt;

&lt;p&gt;This started as a player for my own music. Then it grew:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Internet radio&lt;/strong&gt; from radio-browser.info: popular stations, genres, countries, search, and favorites. It shows the song that is on air.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Podcasts.&lt;/strong&gt; Find a show, subscribe, stream or download. It remembers where you stopped in every episode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Music servers.&lt;/strong&gt; Navidrome, Jellyfin and other Subsonic servers. As many as you like, each in its own part of the sidebar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Last.fm.&lt;/strong&gt; Scrobbles, now playing, and your recent and top lists.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All in the same screens, and one search (&lt;code&gt;/&lt;/code&gt;) finds songs, albums, stations and server songs together.&lt;/p&gt;

&lt;h2&gt;
  
  
  The details I cared about
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gapless.&lt;/strong&gt; No gap between songs, in every format: FLAC, MP3, AAC, ALAC, Vorbis, Opus, WAV, AIFF.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Honest audio.&lt;/strong&gt; It plays at the file's own sample rate. If the sound system changes it, the info line says so in orange.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Volume leveling.&lt;/strong&gt; ReplayGain from the tags, or measured by Musinator for songs without it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tag editing.&lt;/strong&gt; One song or a whole album. Fill tags from the file name, add a cover, or look the album up on MusicBrainz.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Light.&lt;/strong&gt; Near 0% CPU when idle. The visualizer stays under 5% of one core.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private.&lt;/strong&gt; No account, no telemetry. It only goes online for the things you use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plus a 10-band equalizer, a sleep timer, mini mode with &lt;code&gt;m&lt;/code&gt;, mouse support, and the Omarchy media keys.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6xljp6s28knf8qtj8g93.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6xljp6s28knf8qtj8g93.webp" alt="The 10-band equalizer with its curve and the Pop preset" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What broke along the way
&lt;/h2&gt;

&lt;p&gt;To be honest, a lot of it only showed up with real use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The lyrics switched a little late. The sound needs a moment from the program to your ears, about 40 ms on my machine. Now the lyric clock counts that in, so the line changes when you hear it.&lt;/li&gt;
&lt;li&gt;Album covers piled up in the terminal's memory while scrolling. Every new picture got a new number. Now each place on the screen reuses its number.&lt;/li&gt;
&lt;li&gt;In tmux the first key press after starting got lost. Musinator asked the terminal a question at startup, and tmux never answered. Now it does not ask terminals that cannot answer.&lt;/li&gt;
&lt;li&gt;With a new Navidrome, the artist list stayed empty and the server said "Library not found". It was still reading the music for the first time. Now Musinator tells you that, and how far it is.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Seventy automatic tests run on every change now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;p&gt;One line, no sudo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl -fsSL https://raw.githubusercontent.com/smanookian/musinator/main/install.sh &lt;span class="o"&gt;|&lt;/span&gt; sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It needs PipeWire and libopus. On Omarchy you have both. Then run &lt;code&gt;musinator&lt;/code&gt; and press &lt;code&gt;?&lt;/code&gt; for all keys. An AUR package is coming.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to find it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;App page, keys, and FAQ: &lt;a href="https://stevinator.com/apps/musinator" rel="noopener noreferrer"&gt;stevinator.com/apps/musinator&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source: &lt;a href="https://github.com/smanookian/musinator" rel="noopener noreferrer"&gt;github.com/smanookian/musinator&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rust, MIT license. If something sounds wrong or looks wrong on your machine, open an issue. I would rather hear about it than not.&lt;/p&gt;

&lt;p&gt;Most of the code was written with an AI coding assistant; I designed it, reviewed it and tested it on my machine.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;First published on &lt;a href="https://stevinator.com/blog/programming/musinator-a-music-player-for-the-terminal" rel="noopener noreferrer"&gt;stevinator.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I hope to see you next time. Steve out. Tschau!&lt;/p&gt;

</description>
      <category>rust</category>
      <category>linux</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I Wrote a Free Omarchy Course, From Zero to Hero</title>
      <dc:creator>Stepan Manookian</dc:creator>
      <pubDate>Tue, 20 Oct 2026 02:16:39 +0000</pubDate>
      <link>https://dev.to/smanookian/i-wrote-a-free-omarchy-course-from-zero-to-hero-2nf0</link>
      <guid>https://dev.to/smanookian/i-wrote-a-free-omarchy-course-from-zero-to-hero-2nf0</guid>
      <description>&lt;p&gt;So here is why this course exists.&lt;/p&gt;

&lt;p&gt;I started using Omarchy recently. I wanted to learn how to use it properly, and what I actually get out of it.&lt;/p&gt;

&lt;p&gt;From there I kept thinking about other people. People who are thinking about starting with Omarchy and are not sure yet. People who installed it and are somehow lost. And people who have used it for years but want good step-by-step instructions to deepen what they know.&lt;/p&gt;

&lt;p&gt;So I wrote &lt;a href="https://stevinator.com/courses/omarchy" rel="noopener noreferrer"&gt;the course&lt;/a&gt; I would have wanted. It is free, and it stays free.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is in it
&lt;/h2&gt;

&lt;p&gt;25 modules and a capstone, in ten parts. Over 120,000 words in total, each module broken into short, numbered sections with one idea each.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Part&lt;/th&gt;
&lt;th&gt;Modules&lt;/th&gt;
&lt;th&gt;What you get&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;I · Build It&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;From bare metal to a working Omarchy install: drives, dual boot, UEFI, encryption, first boot.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;II · Understand It&lt;/td&gt;
&lt;td&gt;01–02&lt;/td&gt;
&lt;td&gt;What Omarchy actually is, and the Linux concepts a developer really needs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;III · Operate It&lt;/td&gt;
&lt;td&gt;03–05&lt;/td&gt;
&lt;td&gt;The desktop from the keyboard, the terminal, and tmux.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IV · Build Software&lt;/td&gt;
&lt;td&gt;06–08&lt;/td&gt;
&lt;td&gt;Runtimes with mise, Git and GitHub, and the editor.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V · AI-Native Development&lt;/td&gt;
&lt;td&gt;09–10&lt;/td&gt;
&lt;td&gt;Coding agents on Omarchy, and a workflow that keeps their changes reviewable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VI · Customize It&lt;/td&gt;
&lt;td&gt;11–14&lt;/td&gt;
&lt;td&gt;Hyprland config, keybindings, themes and fonts, hooks and automation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VII · Control the System&lt;/td&gt;
&lt;td&gt;15–17&lt;/td&gt;
&lt;td&gt;Audio, Bluetooth, network, displays, toggles, and default apps.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VIII · Keep It Healthy&lt;/td&gt;
&lt;td&gt;18–20&lt;/td&gt;
&lt;td&gt;Updates, recovery, and the boot chain.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IX · Own It&lt;/td&gt;
&lt;td&gt;21–22&lt;/td&gt;
&lt;td&gt;Security, and a workstation you can rebuild from your own config.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X · Master It&lt;/td&gt;
&lt;td&gt;23–24&lt;/td&gt;
&lt;td&gt;Troubleshooting by layer, and the full stack you built.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The capstone puts it all together: build and prove your own AI and software-development workstation.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it teaches
&lt;/h2&gt;

&lt;p&gt;The rule running through the whole course: &lt;strong&gt;verify, don't memorize.&lt;/strong&gt; Omarchy changes. So instead of asking you to trust a list, every module shows you how to check the current state on your own machine.&lt;/p&gt;

&lt;p&gt;Each lesson unlocks in parts. You read a short stage, answer a quick knowledge check in most lessons, and mark it done. Progress stays in your browser. There are real screenshots from an Omarchy desktop throughout and diagrams where a picture explains the idea better.&lt;/p&gt;

&lt;h2&gt;
  
  
  What comes with it
&lt;/h2&gt;

&lt;p&gt;All free, no account:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Handbook PDFs&lt;/strong&gt; — the whole course as two print-ready volumes: &lt;a href="https://stevinator.com/downloads/omarchy-course/stevinator-handbook-volume-1.pdf" rel="noopener noreferrer"&gt;Volume I&lt;/a&gt; (modules 00–12) and &lt;a href="https://stevinator.com/downloads/omarchy-course/stevinator-handbook-volume-2.pdf" rel="noopener noreferrer"&gt;Volume II&lt;/a&gt; (13–24).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://stevinator.com/downloads/omarchy-course/stevinator-keybindings-cheatsheet.pdf" rel="noopener noreferrer"&gt;Keybindings cheat sheet&lt;/a&gt;&lt;/strong&gt; — every shortcut the course teaches, on three pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://stevinator.com/courses/omarchy/shortcut-trainer" rel="noopener noreferrer"&gt;Shortcut Trainer&lt;/a&gt;&lt;/strong&gt; — the cheat sheet in your browser, with flashcards and a 60-second sprint.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/smanookian/omarchy-course-verify" rel="noopener noreferrer"&gt;Verify script&lt;/a&gt;&lt;/strong&gt; — checks your actual machine instead of a self-ticked checklist. Download it, read it, then run it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://stevinator.com/blog/programming/superkey-learn-omarchy-shortcuts-by-doing" rel="noopener noreferrer"&gt;Superkey&lt;/a&gt;&lt;/strong&gt; — a desktop plugin where a small robot asks you to press a real shortcut and confirms it worked. Its lessons line up with Modules 3, 5, 8, and 15.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you live in LazyVim, &lt;a href="https://stevinator.com/blog/programming/lazynator-learn-lazyvim-keys-in-your-real-neovim" rel="noopener noreferrer"&gt;Lazynator&lt;/a&gt; does the same thing inside Neovim.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who it is for
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Thinking about Omarchy?&lt;/strong&gt; Read Modules 00 and 01 first. You will know what you are getting into before you touch a drive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Installed it and a bit lost?&lt;/strong&gt; Start at Module 03. The desktop, terminal, and tmux modules are where Omarchy starts to make sense.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Using it for years?&lt;/strong&gt; Jump to Parts VI to X: config, recovery, the boot chain, security, and troubleshooting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Free means free
&lt;/h2&gt;

&lt;p&gt;No paywall, no email gate, no "premium tier" for this course. You can sign up for the newsletter if you want to hear when new modules or courses ship, but nothing in the course depends on it.&lt;/p&gt;

&lt;p&gt;Start here: &lt;strong&gt;&lt;a href="https://stevinator.com/courses/omarchy" rel="noopener noreferrer"&gt;stevinator.com/courses/omarchy&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I hope to see you next time. Steve out. Tschau!&lt;/p&gt;

</description>
      <category>omarchy</category>
      <category>linux</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
