MixMusic Docs GitHub

Settings

MixMusic's settings page by page, finding a setting by typing, settings.json, the command palette, refreshing a page and the keyboard shortcuts.

Open Settings with the gear in the sidebar, Ctrl , (⌘ , on macOS), or Settings in the command palette. What you change applies at once: there's nothing to save.

The pages of Settings

Settings has seven sections, named across its top: Appearance, Playback, Accounts, Plugins, Desktop, Shortcuts and About. Each is a list of groups, and each group a list of rows.

Appearance

How MixMusic looks; Look and feel tells all of it.

GroupWhat's there
LayoutBlend, Expressive, Crate or Tiles.
ThemeFollow the computer, with In light mode and In dark mode; a card for each theme; get more themes, which opens the marketplace, and open themes folder. Themes that didn't load are listed with the reason.
Theme optionsThe options of a built-in theme that has some, as Aurora's drifting lights and glass blur.
Colour and typeColours from a file (pywal, matugen or a file of your own) and its Colour file, Follow the artwork, Accent colour, Zoom, Text size, Density and Icons only in the sidebar.

Playback

How MixMusic plays.

GroupWhat's there
Spotify tracksHow Spotify tracks play: In MixMusic, from Spotify (Premium, on Windows), On Spotify Connect, with the Device that plays them, or In MixMusic, from YouTube Music. See Spotify.
SoundQuality (best, or data saver), Crossfade (off, or 1 to 12 seconds), Even loudness, Volume levelling, Play 5.1 surround when a track has it, Autoplay, Skip songs made with AI and Skip songs you dislike.
SpeedSongs and Podcasts, each from 0.5× to 3×, at the tracks' own pitch, with normal to go back to 1×.
Music videosShow the video of music videos, on the now playing page.
EqualizerThe Equalizer switch, a Preset (Flat, Bass boost, Treble boost, Vocal, Electronic, Rock, Acoustic, Late night or Lo-fi), and the preamp and ten bands, from −12 to +12 dB.
LyricsTranslate lyrics to: the language the translate switch beside the lyrics shows them in.
Offline cacheTracks kept and Covers kept, each with clear, and the cache's Size: off, 512 MB, 1 GB, 4 GB or 16 GB.
DownloadsHow many tracks are downloaded and how much room they take, with show; their Folder, with open and change; Download on metered connections and Download songs added later.
Toolsyt-dlp, which MixMusic installs and keeps up to date, the JavaScript runtime it runs with (found by itself, or Deno, Node.js, Bun or QuickJS), and Own yt-dlp, the path to one of yours.

Accounts

Your YouTube Music, Spotify and Last.fm accounts: signing in and out, the YouTube Music channel you use, the switch that adds what you play to your YouTube Music history, and the switch that pauses scrobbling. Accounts tells each step.

Plugins

Installed plugins: each plugin you have, with what it is, who made it, a switch that enables it, and a button that removes it. get plugins opens the marketplace, open plugins folder opens the folder of your own, and reload finds them again. Plugins that didn't load are listed with the reason. Marketplace tells more.

Desktop

The On the desktop group:

RowWhat it does
Close to the trayClosing the window keeps the music playing; quit from the tray icon. Off at first.
Media keysThe keyboard's play, next and previous keys control MixMusic. On at first.
NotificationsTells what starts playing while MixMusic's window isn't in front. On at first.
Show what plays in the window titleThe window's title names the track that plays. On at first.
Show what plays on DiscordYour Discord profile shows what you listen to. On at first. Under it, Discord application ID, to show another application's name.
Player around the notchThe player around a MacBook's notch. On at first, and shown only on Macs with a notch.
Start at loginStarts MixMusic, hidden, when you sign in to your computer.
Settings fileopen opens settings.json, show in folder shows it in its folder.
Reset settingsPuts back the settings of a new install, after asking. Your accounts, library and add-ons stay.

On the desktop tells what each does.

Shortcuts

Every command, by group, with its keys: From any app first, the global shortcuts, then playback, go to, view, add-ons and settings, then the themes and the plugins' commands. See Keyboard shortcuts below.

About

GroupWhat's there
MixMusicThe Version, with the system and how this copy was installed; whether a newer version is out, with what's new and install (or its download, for a copy that can't replace itself); the folder your data lives in; and source code, contribute, report a problem and open logs folder.
UpdatesCheck for updates, at start and every few hours, and Install updates without asking, which downloads them in the background for the next launch.
LicensesThe licenses of the code and the typefaces MixMusic includes, each with show.

Without Install updates without asking, a new version asks in a pop-up: install it, later, which asks again at the next start, or skip this version. The .deb, the .rpm, the AppImage and the Flatpak can't replace their own files, so they offer the new version's download instead. report a problem opens a new issue on GitHub with your version, system, theme and plugins filled in.

Find a setting by typing

The search the settings box, under the sections' names, finds settings as you type: by their name, their description, their group or their section, regardless of case, accents or spelling, so "color" finds Accent colour. Each setting found keeps its control, so you change it right there.

  • Each group found has a link to its own section, which shows the group there.
  • The search is part of the page's location: Back returns to it.
  • It finds a shortcut by its keys too, as "ctrl+k", and a theme by its name.
  • Whenever you type in the command palette, its last item is Search the settings for what you typed. The command Search the settings opens the box; it has no key at first, which Settings › Shortcuts can give it.
  • The box doesn't take the keyboard's focus when Settings opens.

settings.json

MixMusic keeps your settings in settings.json, in its data folder:

Systemsettings.json
Windows%AppData%\MixMusic\settings.json
macOS~/Library/Application Support/MixMusic/settings.json
Linux~/.config/MixMusic/settings.json
Linux, the Flatpak~/.var/app/io.github.fzn0x.mixmusic/config/MixMusic/settings.json

Settings › Desktop › Settings file opens it, or shows it in its folder, and so does Open the settings file in the command palette. Settings › About names the data folder. You can keep the file with your dotfiles: a settings.json that is a link to another file stays a link.

Edit it while MixMusic runs

Save the file, and what you changed applies at once, as if you had changed it in Settings; a toast says "Applied settings.json". MixMusic reads the file again before it saves to it, so it doesn't write over an edit it hasn't read.

  • A key you take out goes back to its default, as at a new install. Taking out spotifyClientId signs you out of Spotify, and plugins you add to enabledPlugins start without asking.
  • A key MixMusic doesn't know stays until its next save, which drops it, and the toast says so. A value out of its range goes back into it, and the toast says that too.
  • Encodings. Save it as UTF-8. A file with a byte order mark, or in UTF-16, as Windows PowerShell 5.1 writes it, reads too.

Its keys are short names of the settings, as theme, layout, zoom, closeToTray, notchPlayer, shortcuts and globalShortcuts. Open the file to see them all, each with its value: MixMusic writes every one.

When it has a mistake

A file that isn't valid JSON, as one with a comma before a }, is told a moment after you save it: a toast says "settings.json has a mistake" with the line and the column, as "line 4, column 1: a comma before } has nothing after it", and a panel at the top of Settings says it too, with open settings.json. Meanwhile:

  • MixMusic goes on with the settings it had, and doesn't save to the file until it reads again. What you change in Settings is saved once it does.
  • If MixMusic quits first, it keeps your text as settings.json.broken beside it, and saves its settings in its place.
  • A file that doesn't read as MixMusic starts is kept the same way, as settings.json.broken, and MixMusic starts with the settings of a new install; a toast says so, with show.

The command palette

Ctrl K (⌘ K on macOS) opens the command palette, which lists every command: MixMusic's, a "Theme:" command for each theme, and those of your plugins, each with its group and its keys.

  • Type to keep the commands whose name or group holds what you typed.
  • ↑ and ↓ move through the list, and Enter runs the command chosen.
  • Once you type, the first item is Search for what you typed, which searches YouTube Music and Spotify, and the last is Search the settings for it.

Refresh a page

Refresh this page asks the services again for what the page shows, without restarting MixMusic: press F5 (⇧ ⌘ R on macOS), or the refresh button after the back and forward arrows. It's in the command palette and macOS's View menu too.

  • The page keeps showing what it has until the answers come, with a spinner in the button meanwhile. If the refresh fails, as offline, the page keeps what it showed, and a toast says why.
  • Home, searches, albums, artists, playlists, Explore, your Spotify and YouTube Music libraries, the lyrics, the marketplace and Settings' checks refresh. Plugins' pages and widgets render again.
  • A playlist, an album or a mix you downloaded downloads the songs added to it since, as you refresh it.
  • The button is dimmed on pages that always show what is current, as your liked songs and the stats.
  • Ctrl R (⌘ R) stays Repeat.

Pull to refresh

Pull a page down past its top to refresh it: with two fingers on a touchpad, a finger on a touchscreen, or the mouse wheel turned up three notches or more while the page is at its top. A strip above the page grows as you pull and says when letting go refreshes.

Scrolling that carries the page up to its top never pulls, a fling's momentum included, and neither does scrolling sideways, Shift and the wheel over a shelf, or scrolling the lyrics on the now playing page. Pages whose refresh button is dimmed don't pull. While your system asks for less motion, the strip opens and closes at once.

Keyboard shortcuts

These are the keys of a new install. Ctrl on Windows and Linux is ⌘ on macOS, and Alt is ⌥ there. Shortcuts of a single key, as Space, M and the arrows, work while you're not typing in a text field. The ID is the command's name in settings.json.

Playback

CommandWindows and LinuxmacOSID
Play or pauseSpaceSpaceplayer.toggle
Next trackCtrl →⌘ →player.next
Previous trackCtrl ←⌘ ←player.previous
Forward 10 seconds→→player.forward
Back 10 seconds←←player.back
Volume up↑↑player.volumeUp
Volume down↓↓player.volumeDown
MuteMMplayer.mute
ShuffleCtrl S⌘ Splayer.shuffle
RepeatCtrl R⌘ Rplayer.repeat
Like what playsCtrl L⌘ Lplayer.like
Dislike what playsCtrl D⌘ Dplayer.dislike
Speed upnonenoneplayer.faster
Slow downnonenoneplayer.slower
Normal speednonenoneplayer.normalSpeed
Start a radio of what playsnonenoneplayer.radio

Go to

CommandWindows and LinuxmacOSID
Go homeAlt 1⌥ 1go.home
LibraryAlt 2⌥ 2go.library
Liked songsAlt 3⌥ 3go.liked
Now playingAlt 4⌥ 4go.nowPlaying
ExploreAlt 5⌥ 5go.explore
SearchCtrl F⌘ Fgo.search
SettingsCtrl ,⌘ ,go.settings
Downloadsnonenonego.downloads
Statsnonenonego.stats
Marketplacenonenonego.marketplace
Search the settingsnonenonego.settingsSearch

View

CommandWindows and LinuxmacOSID
Command paletteCtrl K⌘ Kview.palette
Show or hide the queueCtrl J⌘ Jview.queue
Show or hide the lyricsCtrl Shift L⇧ ⌘ Lview.lyrics
Mini playerCtrl M⌘ Mview.mini
Collapse or expand the sidebarCtrl B⌘ Bview.sidebar
Refresh this pageF5⇧ ⌘ Rview.refresh
Zoom inCtrl =, also Ctrl Shift = and Ctrl with the keypad's +⌘ =, also ⇧ ⌘ = and ⌘ with the keypad's +view.zoomIn
Zoom outCtrl -⌘ -view.zoomOut
Reset zoomCtrl 0⌘ 0view.zoomReset
Show or hide the video of music videosnonenoneview.video

Add-ons and settings

CommandWindows and LinuxmacOSID
Reload add-onsnonenoneaddons.reload
Open the settings filenonenonesettings.openFile
Theme: name, one for each themenonenonetheme.<theme id>

Plugins' commands follow, with the keys their plugin gives them, if any.

Arrows, Space and the other keys

  • ← and → go back and forward 10 seconds, and ↑ and ↓ turn the volume up and down. The search box keeps the arrows for its cursor, and sliders, lists and the stats page's chart keep them while they have the keyboard's focus.
  • The arrows don't scroll a page: the mouse wheel, Page Up and Page Down, and Home and End do.
  • After you click a button, a tile or a switch, Space still plays or pauses. A control you reach with Tab takes Space and Enter itself.
  • The mini player takes no shortcuts but the zoom's.
  • Keys that work from any app are the global shortcuts: see Global shortcuts.

Change a shortcut

In Settings › Shortcuts, each command's row shows its keys, or "none".

  1. Choose change on the row (or set, when it has none).
  2. Press the keys. Escape cancels, and Backspace removes the shortcut.

A command that had those keys gives them up, and a toast says it has no shortcut now. reset, on a row you changed, gives the command its own keys back, from the command you gave them to; reset all, at the top of the page, puts back every shortcut and removes every global shortcut.

In settings.json, shortcuts holds the keys you changed, by the command's ID, written as "Mod+Shift+M": Mod is Ctrl, or ⌘ on macOS, the other modifiers are Ctrl, Alt, Shift and Meta, and keys have names such as K, 5, F5, Space, Enter, ArrowLeft and PageDown. An empty value, "", takes a command's shortcut away. globalShortcuts holds the global shortcuts the same way.

"shortcuts": { "player.mute": "Mod+Shift+M", "view.mini": "" },
"globalShortcuts": { "player.toggle": "Mod+Alt+P" }