2.9 KiB
id | aliases | tags | title | ||||
---|---|---|---|---|---|---|---|
liminalOS-docs |
|
Documentation for liminalOS system distribution |
This is documentation for the liminalOS system distribution, a Linux distribution built on NixOS.
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
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.
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
Home Manager configuration to define the entire liminalOS system.
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.
# 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;
};
};
};
}
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.