milk - minimal interface layout kit. a super lightweight, self-contained X11 desktop.
On Arch, Debian/Ubuntu, Fedora, openSUSE, Void and the distributions based on them:
git clone https://github.com/mirvoxtm/milk.git
cd milk
./install.shthe installer recognises your distribution (if it can't, it asks you to pick one; --distro forces it), asks what you want, installs every dependency with your package manager and downloads the Odin compiler when your distribution has no recent one.
it also sets up Spoil, the file manager and lactase, the compositor (shadows, animations, transparency, blur and smooth corners).
other goodies are optional but highly recommended to install and are automatically downloaded upon using the install script, my recommendation is defaulting to "yes" on the installer for the best experience.
after that, log out and pick milk on the login screen. After every installation the setup walks you through
the language, theme, keyboard, wallpapers, bar and windows (right away when you run the installer inside milk).
change anything later with milk settings. it's as simple as that.
your settings live in ~/.config/milk/milk.json.
as a minimal interface layout kit, as of version 1.1.0 milk supports floating windows!
milk supports changing settings out of the box without having to restart the wm all the time! check out how easy it is to instantly change to your preferred window management system and configure milk instantly based on your current mood. pretty nice innit?
as of version 1.1.0, milk now also supports desktop icons with future support planned for icons-per-area.
with matugen, the color scheme can even be picked up by your wallpaper!
every area keeps its own wallpaper, colours and icons, and can have a name and an icon of its own (settings → areas): the icon shows on the bar in place of the area's dot and in the toast when you switch. right-click a desktop icon → show on to keep it to some areas (steam on area 4 only), or just drag it - or any window - onto an area's dot in the bar to send it there. switching areas is instant, even with 4K wallpapers: milk draws them ahead of time.
- a system tray in the bar, for both kinds of tray icons (add "system tray" in settings → bar → widgets if your bar is older than it).
- a lock screen: super+shift+l, after a while without use (the screen dims first) and before the computer sleeps. video players and browsers keep it away while they play. settings → lock & idle.
- night light: warmer colours at night, from sunset or at the hours you choose. settings → display, or the quick settings.
- a pop-up for the volume and brightness keys.
- audio devices: click the volume in the bar to pick the output (speakers, headphones, hdmi) and the microphone - what's playing follows.
- a password dialog for programs that need administrator rights (gparted,
pkexec, update tools): milk is the session's polkit agent. - shortcuts your way: settings → shortcuts adds your own and changes milk's - give any of them other keys, turn it off or restore it. a shortcut can be a single key too: print screen, pause, menu, the f keys, the media keys or super on its own (it acts when you let go of it).
- gtk and qt apps take milk's colours too, and follow them live (with adw-gtk3 and qt5ct/qt6ct, which the installer adds).
milk update pulls milk, spoil and lactase, rebuilds them and restarts milk in place - your windows stay open. the same lives in settings → about → update milk. milk update check only tells you whether there's something new.
milk doctor checks your installation and tells you how to fix whatever is missing.
updating from a version that kept milk.json inside the clone: if git pull refuses because of it, run git checkout -- milk.json && git pull.
milk then starts from fresh settings and shows the setup again.
in my vision, the window manager, the bar and the desktop should live in one program and share one configuration file. All within one self-containing application that handles everything for the simplicity of the user. The user should also have the ability to style each workspace according to their needs - and he should have instant feedback when customizing his own instance.
milk is a long vision for the perfect Window Manager i've had since i started using dwm in 2019. This endeavour was inspired mainly by EmbargoTM's "Temenos".
user simplicity is the absolute priority for milk - I mean, have you ever seen a TWM that lets you change and test your keyboard without having to do a bunch of stuff in a config file? Yeah.
- dwm, by the suckless.org community: milk's window manager is mainly based upon a port of dwm 6.5 to Odin, released under the MIT/X Consortium License.
- Noctalia, whose bar inspired the layout and look of milk's bar.
- MangoWC, an inspiration for the animation in the window manager.
- picom, the model for lactase, milk's compositor.
- matugen, which makes the wallpaper theme's colours.
- openbox, the model for the floating mode: its title bar letters, window menu, desktop menu, per-application rules and bindable actions.
- Temenos, by EmbargoTM, for the original idea of giving each workspace its own identity.
- Tabler Icons (MIT), the icon font used across the bar and panels.

