samiul@portfolio:~/projects/flow$ cat README.md

01 Flow

[desktop] [qt/c++] [updated 2026-09]

A native Linux music player and YouTube download manager. C++ and Qt 6/QML, no webview.

status: v0.1.0

samiul@portfolio:~/projects/flow$ cat problem.txt

Getting music off YouTube and playing a local library well were two separate apps, and most players either look like system widgets or run in a webview. The goal was one native app that does both and looks good doing it.

samiul@portfolio:~/projects/flow$ cat build.log

A C++ backend under a fully custom QML front end on Qt 6's GPU scene graph. Tauri was tried first and dropped: WebKitGTK is a webview, not native rendering. TagLib reads tags and cover art into a SQLite library index, a file watcher rescans on change, and QtMultimedia's ffmpeg backend handles playback. Downloads go through yt-dlp with a configurable number of parallel jobs and per-track progress, straight into the library. It draws the real waveform of the current track, shows .lrc lyrics, restores the queue and position on launch, reads and writes mixes as M3U, and exposes MPRIS2 over D-Bus so playerctl and Hyprland keybinds drive it. The layout collapses in tiers for narrow tiling windows.

samiul@portfolio:~/projects/flow$ cat highlights.txt

  • C++ + Qt 6 QML: GPU-rendered, fully custom UI, no webview
  • yt-dlp downloads with parallel jobs and per-track progress
  • TagLib + SQLite library index with live rescans
  • Real waveform, .lrc lyrics, M3U mixes, queue restore
  • MPRIS2 D-Bus: playerctl and Hyprland keybinds just work
  • Ten Qt Test suites; Arch PKGBUILD for install

samiul@portfolio:~/projects/flow$ cat stack.toml

# flow

lang = "c++ / qml"

ui = "qt 6 quick, custom-styled"

audio = "qtmultimedia (ffmpeg backend)"

library = "taglib + sqlite, file watcher"

downloads = "yt-dlp, parallel queue"

desktop = "mpris2 over d-bus, wayland"

ship = "arch pkgbuild"

stack = ["C++", "Qt 6", "QML", "SQLite", "yt-dlp"]

samiul@portfolio:~/projects/flow$ git remote -v

interactive shell: try help, ls, open 04, phosphor amber

SH‑TERM  ▚  MODEL 2026