Open-source project
mylinuxforwork/dotfiles avatar
mylinuxforwork/dotfiles

ML4W OS: a full Hyprland desktop built from mylinuxforwork/dotfiles

The ML4W OS - Dotfiles for Hyprland - An advanced and full-featured configuration for the dynamic tiling window manager Hyprland. Ready to install for Arch Linux, Fedora and openSuse.

5,043 stars377 forksQMLGPL-3.0

At a glance

What is it?
The ML4W OS is a curated Hyprland configuration for Arch, Fedora and openSUSE Tumbleweed, installed with a one-line script. It is a desktop opinion, not a bare dotfiles repo, and that distinction decides who should use it.
Who is it for?
Adopt ML4W OS if you want a Hyprland desktop that is opinionated, pre-populated with apps and themes, and installed in one command on Arch, Fedora or openSUSE Tumbleweed. Do not adopt it if you want a minimal, hand-picked set of config files to grow yourself, or if you run a distribution outside those three.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly QML, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What ML4W OS actually is, and who it is aimed at

The repository is named dotfiles, but the README describes something larger: "Full featured desktop environment based on the dynamic tiling window manager Hyprland with adaptive material color themes based on the selected wallpaper for all components." That is a desktop environment assembled around a compositor, not a folder of config files you copy by hand. The configuration is written primarily in QML, which is unusual for a Hyprland setup and points to a Qt-based settings and shell layer rather than pure shell scripts and Lua.

The target user is someone who has decided on Hyprland but does not want to spend a weekend wiring up a bar, a launcher, notifications and a theme system. The README lists Arch Linux based distributions, Fedora and openSUSE Tumbleweed as directly supported. If you are on one of those and you want a working desktop on the first boot, the project is aimed at you. If you are on Debian, Ubuntu or a distribution outside that list, the README gives no supported path, and the search traffic around "how to use dotfiles on ubuntu" does not map onto anything the project promises.

The secondary audience is people who want to see how a complete Hyprland desktop is structured before building their own. The repository layout exposes that: dotfiles/, setup/, dev/ and two .dotinst files at the top level.

How the installation and dotinst files fit together

Two installer descriptors sit at the repository root: hyprland-dotfiles.dotinst and hyprland-dotfiles-stable.dotinst. Their names line up with the two install commands in the README, one for the stable release and one for the rolling release. The .dotinst extension is the project's own packaging format, and it is the mechanism that turns a repository of files into an installed desktop rather than a manual copy job.

The README does not document what a .dotinst file contains, how the installer resolves conflicts with files already in your home directory, or whether it keeps backups. Those are the questions that matter most before running a script that touches ~/.config, and the README is silent on all three. The setup/ directory presumably holds the logic, but the README does not describe it. Treat the installer as the supported path and the repository as reference material.

The rolling command carries a constraint the stable one does not: the README labels it "Rolling Release (only Hyprland 0.55.x)". That is a hard version gate. If your Hyprland is not on 0.55.x, the rolling track is not for you, and the README does not say what happens if you run it anyway.

Installing ML4W OS and reaching a first desktop

The README gives the install as a single command that downloads and executes a script. For the stable track, run this in a terminal:

bash
bash <(curl -s https://ml4w.com/os/stable)

The script fetches from ml4w.com rather than from the repository directly, so the site is the distribution channel. Expect the installer to write into your home directory; the README does not state which paths it touches.

If you are deliberately tracking Hyprland 0.55.x, the rolling track uses the same pattern with a different endpoint:

bash
bash <(curl -s https://ml4w.com/os/rolling)

The README warns that the rolling release is only for Hyprland 0.55.x, so check your compositor version before choosing this one.

There is also a live ISO for testing without committing your machine. The README links a download at https://ml4w.com/iso/ml4w-os/ml4w-os-2.15-x86_64.iso, which corresponds to the 2.15 release line. After booting it, the README states you can install to the hard drive with:

bash
sudo install-ml4w-os

The README marks that command as BETA, which is a plain statement from the project and worth taking at face value. After any of these routes, the first thing you should see is the themed Hyprland session described in the README, with colors derived from the wallpaper you select.

The wallpaper-driven theming is the real differentiator

Most Hyprland configurations ship a fixed palette you edit by hand. The README claims the opposite approach: "adaptive material color themes based on the selected wallpaper for all components." The word all is doing the work. A bar, a launcher and notifications that each pull from a shared palette is a different engineering problem from a color variable in one config file, and writing the shell in QML is consistent with that goal.

This is also where the project becomes a commitment. A theme system that spans components has to know about every component, so swapping out the bar or the launcher for your own is not a neutral act. The README does not describe a plugin interface or a documented way to substitute a component while keeping the theming intact. If you replace a piece, you are on your own for keeping colors consistent.

The upside is real for the intended user. Choosing a wallpaper and getting a coherent desktop is the feature that separates this from a dotfiles collection you assemble from blog posts.

Where ML4W OS is the wrong tool

The clearest limitation is hardware and distribution scope. Three distributions are listed as directly supported. Nothing in the README describes a fallback for others, and nothing describes how much of the configuration is distribution-specific. On an unsupported base you are debugging someone else's assumptions about package names and paths.

The second limitation is the BETA label on sudo install-ml4w-os. The README attaches that label to the hard-drive install path from the live ISO. If you want the ISO as an evaluation environment, that is separate from trusting it as an installer.

The third is the absence of documented rollback. The README does not document uninstalling, restoring previous configuration, or what the installer does when a file already exists at a target path. For a tool that writes into a home directory, that silence is the thing to weigh before running the command, not after.

Finally, this is the wrong tool if you want to learn Hyprland by building it. The README's framing is a finished desktop. You can read the repository, but the project's value proposition is that you do not have to.

How it compares to JaKooLit/Hyprland-Dots and hyprdots

The README credits its inspirations explicitly, including JaKooLit/Hyprland-Dots, prasanthrangan/hyprdots and sudo-harun/dotfiles. That is useful because it tells you the author sees these as peers in the same category.

The difference to look for is scope. ML4W OS presents itself as a desktop environment with a settings layer written in QML and a theming system that covers all components; the inspiration list reads as configurations that grow from a compositor setup. A configuration that starts from Hyprland and adds a bar is easier to take apart piece by piece. A desktop environment that ships a settings application and a cross-component theme engine is easier to use whole and harder to partially adopt.

Neither approach is better in the abstract. If your plan is to keep the bar and swap the launcher, the dotfiles-style project will fight you less. If your plan is to keep everything and change the wallpaper, ML4W OS is built for exactly that. The README does not offer a component-by-component comparison, so the honest way to decide is to boot the live ISO and look at what you would want to replace.

Licence, releases and what maintenance looks like

The repository is licensed GPL-3.0. For a desktop configuration this mostly matters if you intend to redistribute a modified version, because the copyleft terms attach to derivative distributions rather than to running the software on your own machine. This is not legal advice; read the LICENSE file at the repository root if redistribution is your plan.

The release cadence visible in the repository is roughly monthly: 2.14.1 on 2026-07-09, 2.15 on 2026-08-05, and 2.15.1 on 2026-08-27. The last push to the default branch was on 2026-09-21, which is recent relative to the release history. The CHANGELOG.md at the root is where per-release changes are recorded, and it is the file to read before upgrading.

Upgrade cost is the open question. The README documents installation but not upgrading an existing install, and it does not describe how local edits to your configuration survive a reinstall. If you plan to customize heavily, that gap is the one to resolve first, either by reading the setup/ directory or by asking in the project's issue tracker. The rolling track adds its own cost: it is tied to Hyprland 0.55.x, so a compositor upgrade can move you off the supported version.

Editorial conclusion

Adopt ML4W OS if you want a Hyprland desktop that is opinionated, pre-populated with apps and themes, and installed in one command on Arch, Fedora or openSUSE Tumbleweed. Do not adopt it if you want a minimal, hand-picked set of config files to grow yourself, or if you run a distribution outside those three. Before installing, verify what the installer will overwrite in your existing ~/.config: the README points to https://ml4w.com/os/ for the installation options, and that page is where rollback and removal behaviour would have to be documented, because the README is silent on both.

Frequently asked questions

How do I install ML4W OS dotfiles for Hyprland?

The README gives a one-line install: bash <(curl -s https://ml4w.com/os/stable) for the stable release, or the /rolling endpoint if you are on Hyprland 0.55.x. Arch, Fedora and openSUSE Tumbleweed are listed as directly supported.

How do I apply ML4W OS dotfiles on Arch?

Arch-based distributions are directly supported, and the README's stable install command is the documented path. The README does not describe a manual copy procedure separate from the installer.

What is a dotfile, and is ML4W OS just a set of dotfiles?

A dotfile is a configuration file whose name begins with a dot. ML4W OS is distributed as a dotfiles repository but the README describes a full desktop environment around Hyprland, with adaptive color themes and a QML-based settings layer, installed through its own installer rather than by copying files.

How do I use the ML4W OS dotfiles installer?

The installer is the one-line script in the README: bash <(curl -s https://ml4w.com/os/stable) for the stable release, or the /rolling endpoint for Hyprland 0.55.x. The repository also ships hyprland-dotfiles.dotinst and hyprland-dotfiles-stable.dotinst at its root, which are the installer descriptors, though the README does not document their contents.

Can I use ML4W OS dotfiles on Linux distributions other than Arch, Fedora and openSUSE?

The README lists Arch Linux based distributions, Fedora and openSUSE Tumbleweed as directly supported and gives no instructions for other distributions. There is no documented fallback path for an unsupported base.

Official sources

  1. License: GPL-3.0
  2. mylinuxforwork/dotfiles on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/mylinuxforwork-dotfiles.svg)](https://hysenlabs.com/projects/mylinuxforwork-dotfiles)