FoxFlake is a comprehensive configuration of the NixOS Linux distribution (Flake) that automates NixOS management tasks to keep the user experience simple.
🖥️ Environment flexibility
- Desktop versatility: Seamlessly switch between GNOME, KDE Plasma, and COSMIC desktop environments.
- Simple package management: Manage your set of NixOS applications via the "FoxFlake Environment Selection" tool and use the desktop environment’s store to install Flatpaks.
- Extended compatibility with AppImages / scripts: Run most standalone linux programs natively.
- Complete binary cache: Ensures with its own binary cache that prebuilt packages are available for all included desktop environments and packages configurations (it avoids NixOS from building packages from source when a binary package is not available).
🛡️ Automation & Reliability
- Automated lifecycle: The system automatically transitions between NixOS versions, providing a "rolling release" experience without manual configuration changes.
- Zero-intervention maintenance: FoxFlake automates daily updates for both system packages and system / user Flatpaks (System updates are staged in the background and applied safely on the next boot).
- Atomic rollbacks: Leveraging the Nix "Generations" mechanism, FoxFlake allows you to instantly revert to previous working states directly from the boot menu.
🚀 Declarative Foundation
- Base layer management: Focus on your specific configurations while FoxFlake maintains the core configurations.
- Unrestricted options: All NixOS options remain available and supersede FoxFlake defaults.
- Unified declarative stack: Includes home-manager, plasma-manager, and nix-flatpak for complete system-to-users configuration.
- Download the latest ISO from the Releases page.
- Use balenaEtcher, GNOME Disks or KDE ISO Image Writer to create a bootable USB drive (do not use Rufus, it is not compatible at the moment).
- Ensure that Secure Boot is disabled in your BIOS, boot from the USB and follow the graphical installer (during installation, you will be prompted to select your preferred Desktop Environment and to choose your NixOS native applications).
FoxFlake is designed to accommodate two distinct types of users:
- Zero-Maintenance Mode: Manage your NixOS apps via the "FoxFlake Environment Selection" application, install flatpaks from the desktop environment's store and let FoxFlake handle the maintenance.
- Custom Declarative Configurations: Define your custom configurations in the file /etc/nixos/configuration.nix, the core OS maintenance is taken care of and you are only in charge of maintaining your specific configurations.
The "FoxFlake Environment Selection" application allows you to review at any point in time the desktop environment and applications choices you made:
FoxFlake allows you to add any NixOS / Home Manager / Plasma Manager configurations.
Add your configurations to the file /etc/nixos/configuration.nix and update FoxFlake by running foxflake-update. Once done, reboot your system for changes to take effect.
Examples of configurations include:
- Install specified system packages (use "pkgs.unstable" instead of "pkgs" for nix unstable channel packages):
foxflake.system.packages = with pkgs; [ vim ]; - Installs specified system Flatpaks:
foxflake.system.flatpaks = [ "org.mozilla.firefox" ]; - Install specified packages for a specific user (use "pkgs.unstable" instead of "pkgs" for nix unstable channel packages):
foxflake.users.<username>.packages = with pkgs; [ vim ]; - Install specified Flatpaks for a specific user:
foxflake.users.<username>.flatpaks = [ "org.mozilla.firefox" ]; - Add the user to the group wheel:
foxflake.users.<username>.extraGroups = [ "wheel" ]; - Modify your hostname:
foxflake.networking.hostname = "foxflake"; - Change the default Display Manager / Desktop Environment wallpaper:
foxflake.customization.environment.wallpaper = "/home/common/wallpaper.png"; - Disable automatic updates (then update your system manually by running
foxflake-update):
foxflake.autoUpgrade = false; - If you installed the Sunshine application, you can add this line for Sunshine to start automatically:
services.sunshine.autoStart = true; - If you installed the OpenRGB application, you can add this line to load the profile "myprofile" on startup:
services.hardware.openrgb.startupProfile = "myprofile"; - Enable an scx scheduler:
services.scx = {
enable = true;
scheduler = "scx_lavd";
};
For Nvidia GPUs compatible with the latest open source kernel modules, recommended drivers are automatically enabled during install.
For older nvidia cards, you will need to follow the NixOS nvidia instructions.
Home manager is installed by default, to initialize home manager for your user you need to run the command: nix run home-manager -- init --switch.
You can then apply your user home manager configuration updates with the command: nix run home-manager switch.
-
Install the nix package manager on your system according to the instructions at: https://nixos.org/download.
-
Clone this repository:
git clone -b stable https://github.com/sebanc/foxflake.git -
Enter the "installer" subfolder:
cd ./foxflake/installer -
Update the installer flake lock:
nix --extra-experimental-features "nix-command flakes" flake update --flake . -
Launch the build:
nix --extra-experimental-features "nix-command flakes" build .#installer
The generated installer iso image will be located in the "result/iso" folder.
- NixOS and community modules (home-manager, plasma-manager and nix-flatpak) maintainers.
- Cachix for their open source projects free binary cache plan.
- The Gaming Linux France community for the inspiration coming from their gaming oriented GLF OS.



