2025-01-02 03:15:46 -08:00
|
|
|
---
|
|
|
|
id: liminalOS-docs
|
|
|
|
aliases: []
|
|
|
|
tags:
|
|
|
|
- nixos
|
|
|
|
- nixpkgs
|
|
|
|
- liminalos
|
|
|
|
- linux
|
|
|
|
title: Documentation for liminalOS system distribution
|
|
|
|
---
|
|
|
|
|
|
|
|
This is documentation for the [liminalOS system
|
|
|
|
distribution](https://github.com/youwen5/liminalOS), a Linux distribution built
|
|
|
|
on [NixOS](https://nixos.org).
|
|
|
|
|
|
|
|
The goal of liminalOS is to provide an opinionated desktop environment and
|
|
|
|
system for those too lazy to spend 100 hours ricing their NixOS system.
|
|
|
|
|
|
|
|
To that end, a NixOS module and home manager module are provided such that it
|
|
|
|
is possible to configure an entire operating system powered by a riced out
|
|
|
|
desktop environment built on Hyprland in a few lines. These modules come with
|
2025-01-02 03:22:04 -08:00
|
|
|
verified versions of all of the other flake input modules that compose
|
|
|
|
liminalOS, so that you don't have to manage and version Home Manager, `stylix`,
|
|
|
|
`agenix`, etc yourself.
|
2025-01-02 03:15:46 -08:00
|
|
|
|
|
|
|
Central to this system is the `liminalOS` option that is added to both home
|
|
|
|
manager and NixOS. It is designed to be used alongside a very minimal NixOS and
|
2025-01-02 03:22:04 -08:00
|
|
|
Home Manager configuration to define the entire liminalOS system.
|
2025-01-02 03:15:46 -08:00
|
|
|
|
|
|
|
You only need to set up basic things like a minimal `flake.nix`,
|
|
|
|
`configuration.nix`, and `home.nix`, where you need only set up a basic user
|
|
|
|
(in both NixOS and HM) and boot loader configuration. The rest of the higher
|
|
|
|
level system features will be handled by the `liminalOS` abstraction.
|
|
|
|
|
|
|
|
Something like this is sufficient to bootstrap a liminalOS system. It can be
|
|
|
|
dropped into any existing NixOS system and be used alongside an existing
|
|
|
|
configuration.
|
|
|
|
|
|
|
|
```nix
|
|
|
|
# file: configuration.nix
|
|
|
|
{
|
|
|
|
liminalOS = {
|
|
|
|
config.allowUnfree = true;
|
|
|
|
defaultEditor = pkgs.helix;
|
|
|
|
formFactor = "desktop";
|
|
|
|
theming = {
|
|
|
|
# place your desired wallpaper in your configuration repo and watch your
|
|
|
|
# system theme itself
|
|
|
|
wallpaper = ./wallpaper.jpg;
|
|
|
|
};
|
|
|
|
system.graphics.nvidia.enable = true;
|
|
|
|
extras.gaming.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
# Set up a user
|
|
|
|
users.users.default-user = {
|
|
|
|
isNormalUser = true;
|
|
|
|
description = "Default liminalOS user!";
|
|
|
|
extraGroups = [
|
|
|
|
"networkmanager"
|
|
|
|
"wheel"
|
|
|
|
];
|
|
|
|
shell = pkgs.fish;
|
|
|
|
};
|
|
|
|
|
|
|
|
home-manager.users.default-user = {
|
|
|
|
# in this simple example, the content of ./home.nix is an import of the
|
|
|
|
# liminalOS home manager module
|
|
|
|
imports = [ ./home.nix ];
|
|
|
|
};
|
|
|
|
home-manager.extraSpecialArgs = { inherit inputs; };
|
|
|
|
|
|
|
|
# Set your time zone
|
|
|
|
time.timeZone = "America/Los_Angeles";
|
|
|
|
|
|
|
|
# Bootloader and kernel.
|
|
|
|
boot = {
|
|
|
|
loader = {
|
|
|
|
efi.canTouchEfiVariables = true;
|
|
|
|
timeout = 15;
|
|
|
|
systemd-boot = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2025-01-02 03:24:54 -08:00
|
|
|
The recommended way to start using liminalOS is to first install NixOS and then
|
|
|
|
install liminalOS over it. It is trivially possible in theory to generate
|
|
|
|
liminalOS installer ISOs but this has not yet been developed. Hackers welcome
|
|
|
|
to try!
|
|
|
|
|
|
|
|
You can generate a basic set of NixOS configuration files that deploy liminalOS
|
|
|
|
using:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
nix flake init -t github:youwen5/liminalOS
|
|
|
|
```
|
|
|
|
|
|
|
|
Make sure you read the comments and edit the desired options before
|
2025-01-02 03:29:19 -08:00
|
|
|
`nixos-rebuild`!
|
|
|
|
|
|
|
|
> [!IMPORTANT]
|
|
|
|
> You should at the very least set the hostname, username of your account, and
|
|
|
|
> most importantly include the `hardware-configuration.nix` file generated at
|
|
|
|
> `/etc/nixos` in the same directory as `configuration.nix`! If you don't have
|
|
|
|
> this file anymore, run `nixos-generate-config` to recreate it at
|
|
|
|
> `/etc/nixos`.
|
2025-01-02 03:24:54 -08:00
|
|
|
|
2025-01-02 03:15:46 -08:00
|
|
|
## Full liminalOS module options
|
|
|
|
|
|
|
|
These are all of the available options set by `liminalOS`, automatically
|
|
|
|
generated from liminalOS' modules. Keep in mind that many of these are enabled
|
|
|
|
automatically when `liminalOS.enable` is set to true, but they are still
|
|
|
|
available for fine-grained customization.
|
2025-01-02 03:24:54 -08:00
|
|
|
|