ML4W OS 2.16.1 pulls the power menu out of the dotfiles and gives it keyboard control
Stephan Raabe's Hyprland dotfiles package splits the shutdown menu into a standalone app.
On 4 October 2026, Raabe released version 2.16.1 of ML4W OS, the Hyprland dotfiles config that draws thousands of Linux users. It's a small patch on top of the larger 2.16 update, but it does one thing that restructures the project: the power menu is no longer part of the main dotfiles repo. It's now its own application, its own repo, and its own command.
ML4W OS sounds like an operating system, but it isn't one. It's a curated pile of configuration files, installers, and graphical apps that assemble a desktop on top of Hyprland, the fast-growing Wayland tiling window manager. You can run it on Arch, Fedora 44, Ubuntu, or openSUSE Tumbleweed, install it over an existing distro with a single script, or just boot the Live ISO to test it.
The project is fairly sizeable. The main mylinuxforwork/dotfiles repo carries about 5,100 stars, 378 forks, and a backlog of 206 open issues paired with 14 open pull requests. Raabe himself has roughly 1,200 GitHub followers. It's all released under GPL-3.0-only.
For the record, calling a dotfiles bundle an OS has always struck me as a stretch, though it reads well on a dropdown menu. The project has also churned through UI toolkits several times. It started with EWW, moved to AGS, and now lives on Quickshell, a QML-based approach that hot-reloads as you type. That's the lineage this update fits into.
The headline: a menu, now on its own
The shutdown menu has moved into its own repository, github.com/mylinuxforwork/ml4w-powermenu, and installs to ~/.local/share/ml4w-powermenu. It launches through ML4W's startup script, ml4w-autostart, and the installer adds a wrapper command simply called ml4w-powermenu. That one command can start, stop, and reload the menu. It's a thin shortcut around Quickshell's IPC layer, so ml4w-powermenu toggle does exactly what qs ipc call power toggle used to do.
Here's the catch. If you have a custom keybinding or script that called the old qs command, you'll need to swap it over. The migration note in the release is explicit about this, so it's worth checking before you rebuild your whole config around the old call.
The bigger win is keyboard control. Up and down arrows move between lock, suspend, logout, reboot, and power off. Return confirms your pick. No more clicking around for it.
You can now fully configure the menu through ~/.config/ml4w-powermenu/config.json. That gives you reordering buttons, hiding any you never use, remapping the command each one runs, and tweaking size, spacing, shape, animation, and colors. The menu slides in from the right edge and pulls its palette from your wallpaper via matugen, so it stays in step with the adaptive theme.
The smaller stuff
The rest of the release is housekeeping most people won't even notice. Autostart logging moved out of ~/.mydotfiles into ~/.local/state/ml4w-os-hyprland, where each boot writes a fresh timestamped file and keeps just the last ten, so your logs don't grow without limit. The sidebar gained a "Keybinds" button in the top-right corner, which is genuinely handy the first handful of times. There's also a launcher switch that toggles between Walker and Rofi, persisted to ~/.config/ml4w/settings/launcher so the choice survives a reboot without hand-editing anything.
The through-line is modularization. ML4W has been pulling widgets out of the main repo one by one: the dock went first in 2.16, and now the power menu follows the same pattern.
There's a real upside. Updating the power menu no longer risks disturbing your dock or status bar, and the standalone repo can run on its own, so a non-ML4W Hyprland user can grab just that piece. The trade-off is a more scattered project, several repositories to follow instead of one, plus that migration warning for anyone with hand-tuned keybindings. It's arguably overkill to spin a whole separate install script around a shutdown menu, but the isolation pays off for a project this popular.
Head here to the installation script and here to the release page on GitHub.
