Ing Leif NICKLAS Rudolfsson
← Blogg

4 oktober 2026 · 08:21 · Text · Utveckling

Söndagsutveckling från sängen

Tidig söndag morgon. Fortfarande kvar i sängen, katterna i närheten, inget direkt behov av att gå upp ännu. Ett ganska bra tillfälle att fortsätta utveckla nplay med andra ord.

nplay började egentligen som en ganska enkel idé. Jag ville ha en musikspelare i terminalen som fungerade precis som jag själv ville. Inte ännu en generell spelare som försöker passa alla, utan något skräddarsytt för mina egna datorer, min musik och hur jag faktiskt lyssnar.

Det har gått ganska fort från den idén.

Nu har nplay blivit min huvudsakliga spelare för musik, radio och poddar. Jag har använt cmus i många, många år och på senare tid även kew, och båda är riktigt bra terminalspelare. Men det är samtidigt svårt att konkurrera med en spelare där jag själv kan bestämma exakt hur den ska fungera. Saknar jag något kan jag bygga det. Stör jag mig på något kan jag ändra det.

Det är väl egentligen där mycket av nöjet med egen utveckling ligger.

Jag har redan NIRUPLAY, min grafiska desktopspelare, som löser ungefär samma grundläggande behov på ett annat sätt. Den finns kvar och är fortfarande alternativet när jag vill ha en traditionell desktopapp. Men jag märker att jag nästan alltid startar nplay i stället. Terminalgränssnittet passar helt enkelt mitt sätt att arbeta bättre.

nplay är en TUI, alltså ett riktigt textbaserat användargränssnitt i terminalen, men ambitionen har varit att den inte ska kännas begränsad bara för att den körs där. Den spelar mitt lokala musikbibliotek och musik från min Navidrome-server, men även Sveriges Radio, poddar, egna radioströmmar och ljud från YouTube. All uppspelning går genom mpv.

Det lokala musikbiblioteket indexeras rekursivt och Navidrome kan både bläddras och sökas. Jag har global Quick Play för att snabbt hitta det jag vill spela oavsett källa, playlists, favoriter, kö och historik. Spelaren kommer ihåg sitt tillstånd mellan starterna och kan återuppta där jag var. Det finns ReplayGain, gapless playback, repeat, shuffle och en Smart Shuffle som försöker göra slumpningen lite vettigare.

Kön har fått ganska mycket kärlek. Jag kan se vad som kommer härnäst, flytta runt saker och styra uppspelningen utan att behöva lämna tangentbordet. Det är en liten detalj på pappret, men en sådan sak som avgör om en spelare faktiskt blir bra att använda varje dag.

Jag ville också att nplay skulle kännas hemma i min terminalmiljö. I Kitty kan den visa omslagsbilder direkt i terminalen. CAVA ger en visualizer och jag kan växla mellan mer traditionell spelarvy, artwork och visualizer beroende på vad jag känner för. Teman finns också, inklusive integration med min Omarchy-miljö.

En annan del som vuxit fram är kommandoläget. Med : kan jag skriva kommandon direkt i spelaren, ungefär enligt samma princip som i verktyg jag redan är van vid. Det har completion och historik och gör att funktioner inte behöver tryckas in som knappar och menyer överallt i gränssnittet.

Det är också en viktig del av hela designen. Jag vill att nplay ska vara snabb, tangentbordsdriven och ganska kompromisslös. Det ska inte finnas saker i gränssnittet bara för att musikspelare brukar ha dem.

Just nu är versionen 1.0.1, så det här är fortfarande ett projekt under aktiv utveckling. Det finns saker kvar att förbättra och idéer som säkert kommer förändras eller försvinna. Men någonstans på vägen passerade nplay gränsen från experiment till ett verktyg jag faktiskt använder hela tiden.

Det är kanske det bästa betyget jag kan ge ett eget projekt.

När jag spontant öppnar en terminal och skriver nplay i stället för att starta spelaren jag använt i åratal, då har någonting blivit rätt.

Och det är fortfarande tidig söndag morgon.

Så jag ligger nog kvar en stund till och lyssnar på musik...

Uppdaterad 4 oktober 2026 · 20:48