Skip to content

Commit ebd4312

Browse files
Allow building installers with custom configs
- Move previous config snippets into snippet files, used as default snippets (getCustomOrDefaultSnippet) - If a custom snippet is found in customConfigSnippets, it is used instead
1 parent 2d6e267 commit ebd4312

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+290
-343
lines changed

Diff for: .editorconfig

+4
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,7 @@ insert_final_newline = true
2727
indent_style = tab
2828
insert_final_newline = true
2929

30+
[*.snippet]
31+
indent_style = space
32+
indent_size = 2
33+
insert_final_newline = true

Diff for: modules/nixos/defaultConfigs/modules/.gitkeep

Whitespace-only changes.

Diff for: modules/nixos/defaultConfigs/snippets/audio.snippet

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Enable sound with pipewire.
2+
sound.enable = false;
3+
hardware.pulseaudio.enable = false;
4+
security.rtkit.enable = true;
5+
services.pipewire = {
6+
enable = true;
7+
alsa.enable = true;
8+
alsa.support32Bit = true;
9+
pulse.enable = true;
10+
# If you want to use JACK applications, uncomment this
11+
#jack.enable = true;
12+
13+
# use the example session manager (no others are packaged yet so this is enabled by default,
14+
# no need to redefine it in your config for now)
15+
#media-session.enable = true;
16+
};
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Enable automatic login for the user.
2+
services.xserver.displayManager.autoLogin.enable = true;
3+
services.xserver.displayManager.autoLogin.user = "@@username@@";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
2+
systemd.services."getty@tty1".enable = false;
3+
systemd.services."autovt@tty1".enable = false;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Enable automatic login for the user.
2+
services.getty.autologinUser = "@@username@@";
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Bootloader.
2+
boot.loader.grub.enable = true;
3+
boot.loader.grub.device = "@@bootdev@@";
4+
boot.loader.grub.useOSProber = true;
5+
boot.tmp.useTmpfs = true;
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Bootloader.
2+
boot.loader.systemd-boot.enable = true;
3+
boot.loader.systemd-boot.configurationLimit = 42;
4+
boot.loader.efi.canTouchEfiVariables = true;
5+
boot.tmp.useTmpfs = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Setup keyfile
2+
boot.initrd.secrets = {
3+
"/boot/crypto_keyfile.bin" = null;
4+
};
5+
6+
boot.loader.grub.enableCryptodisk = true;
+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Disable bootloader.
2+
boot.loader.grub.enable = false;
+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Enable networking
2+
services.connman.enable = true;
+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Configure console keymap
2+
console.keyMap = "@@vconsole@@";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Enable the X11 windowing system.
2+
services.xserver.enable = true;
3+
4+
# Enable the Budgie Desktop environment.
5+
services.xserver.displayManager.lightdm.enable = true;
6+
services.xserver.desktopManager.budgie.enable = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Enable the X11 windowing system.
2+
services.xserver.enable = true;
3+
4+
# Enable the Cinnamon Desktop Environment.
5+
services.xserver.displayManager.lightdm.enable = true;
6+
services.xserver.desktopManager.cinnamon.enable = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Enable the X11 windowing system.
2+
services.xserver.enable = true;
3+
4+
# Enable the Deepin Desktop Environment.
5+
services.xserver.displayManager.lightdm.enable = true;
6+
services.xserver.desktopManager.deepin.enable = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Enable the X11 windowing system.
2+
services.xserver.enable = true;
3+
4+
# Enable the Enlightenment Desktop Environment.
5+
services.xserver.displayManager.lightdm.enable = true;
6+
services.xserver.desktopManager.enlightenment.enable = true;
7+
8+
# Enable acpid
9+
services.acpid.enable = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Enable the X11 windowing system.
2+
services.xserver.enable = true;
3+
4+
# Enable the GNOME Desktop Environment.
5+
services.xserver.displayManager.gdm.enable = true;
6+
services.xserver.desktopManager.gnome.enable = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Enable the X11 windowing system.
2+
services.xserver.enable = true;
3+
4+
# Enable the Lumina Desktop Environment.
5+
services.xserver.displayManager.lightdm.enable = true;
6+
services.xserver.desktopManager.lumina.enable = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Enable the X11 windowing system.
2+
services.xserver.enable = true;
3+
4+
# Enable the LXQT Desktop Environment.
5+
services.xserver.displayManager.lightdm.enable = true;
6+
services.xserver.desktopManager.lxqt.enable = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Enable the X11 windowing system.
2+
services.xserver.enable = true;
3+
4+
# Enable the MATE Desktop Environment.
5+
services.xserver.displayManager.lightdm.enable = true;
6+
services.xserver.desktopManager.mate.enable = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Enable the X11 windowing system.
2+
services.xserver.enable = true;
3+
4+
# Enable the Pantheon Desktop Environment.
5+
services.xserver.displayManager.lightdm.enable = true;
6+
services.xserver.desktopManager.pantheon.enable = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Enable the X11 windowing system.
2+
services.xserver.enable = true;
3+
4+
# Enable the KDE Plasma Desktop Environment.
5+
services.xserver.displayManager.sddm.enable = true;
6+
services.xserver.desktopManager.plasma5.enable = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Enable the X11 windowing system.
2+
# You can disable this if you're only using the Wayland session.
3+
services.xserver.enable = true;
4+
5+
# Enable the KDE Plasma Desktop Environment.
6+
services.displayManager.sddm.enable = true;
7+
services.desktopManager.plasma6.enable = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Enable the X11 windowing system.
2+
services.xserver.enable = true;
3+
4+
# Enable the XFCE Desktop Environment.
5+
services.xserver.displayManager.lightdm.enable = true;
6+
services.xserver.desktopManager.xfce.enable = true;

Diff for: modules/nixos/defaultConfigs/snippets/extra.snippet

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Some programs need SUID wrappers, can be configured further or are
2+
# started in user sessions.
3+
# programs.mtr.enable = true;
4+
# programs.gnupg.agent = {
5+
# enable = true;
6+
# enableSSHSupport = true;
7+
# };
8+
9+
# List services that you want to enable:
10+
11+
# Enable the OpenSSH daemon.
12+
# services.openssh.enable = true;
13+
14+
# Open ports in the firewall.
15+
# networking.firewall.allowedTCPPorts = [ ... ];
16+
# networking.firewall.allowedUDPPorts = [ ... ];
17+
# Or disable the firewall altogether.
18+
# networking.firewall.enable = false;
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
programs.firefox.enable = true;

Diff for: modules/nixos/defaultConfigs/snippets/head.snippet

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Edit this configuration file to define what should be installed on
2+
# your system. Help is available in the configuration.nix(5) man page
3+
# and in the NixOS manual (accessible by running ‘nixos-help’).
4+
5+
{ config, pkgs, ... }:
6+
7+
{
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
imports =
2+
[
3+
# Include the results of the hardware scan.
4+
./hardware-configuration.nix
5+
];

Diff for: modules/nixos/defaultConfigs/snippets/keymap.snippet

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Configure keymap in X11
2+
services.xserver.xkb = {
3+
layout = "@@kblayout@@";
4+
variant = "@@kbvariant@@";
5+
};

Diff for: modules/nixos/defaultConfigs/snippets/locale.snippet

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Select internationalisation properties.
2+
i18n.defaultLocale = "@@LANG@@";
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
i18n.extraLocaleSettings = {
2+
LC_ADDRESS = "@@LC_ADDRESS@@";
3+
LC_IDENTIFICATION = "@@LC_IDENTIFICATION@@";
4+
LC_MEASUREMENT = "@@LC_MEASUREMENT@@";
5+
LC_MONETARY = "@@LC_MONETARY@@";
6+
LC_NAME = "@@LC_NAME@@";
7+
LC_NUMERIC = "@@LC_NUMERIC@@";
8+
LC_PAPER = "@@LC_PAPER@@";
9+
LC_TELEPHONE = "@@LC_TELEPHONE@@";
10+
LC_TIME = "@@LC_TIME@@";
11+
};

Diff for: modules/nixos/defaultConfigs/snippets/misc.snippet

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Enable CUPS to print documents.
2+
services.printing.enable = true;
3+
4+
# Enable touchpad support (enabled default in most desktopManager).
5+
# services.xserver.libinput.enable = true;
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
networking.hostName = "@@hostname@@"; # Define your hostname.
2+
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
3+
4+
# Configure network proxy if necessary
5+
# networking.proxy.default = "http://user:password@proxy:port/";
6+
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
networking.networkmanager.enable = true;
+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Enable network manager applet
2+
programs.nm-applet.enable = true;

Diff for: modules/nixos/defaultConfigs/snippets/pkgs.snippet

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# List packages installed in system profile. To search, run:
2+
# $ nix search wget
3+
environment.systemPackages = with pkgs; [
4+
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
5+
# wget
6+
];

Diff for: modules/nixos/defaultConfigs/snippets/tail.snippet

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# This value determines the NixOS release from which the default
2+
# settings for stateful data, like file locations and database versions
3+
# on your system were taken. It‘s perfectly fine and recommended to leave
4+
# this value at the release version of the first install of this system.
5+
# Before changing this value read the documentation for this option
6+
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
7+
system.stateVersion = "@@nixosversion@@"; # Did you read the comment?
8+
9+
}

Diff for: modules/nixos/defaultConfigs/snippets/time.snippet

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
time.timeZone = "@@timezone@@";

Diff for: modules/nixos/defaultConfigs/snippets/unfree.snippet

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Allow unfree packages
2+
nixpkgs.config.allowUnfree = true;

Diff for: modules/nixos/defaultConfigs/snippets/users.snippet

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Define a user account. Don't forget to set a password with ‘passwd’.
2+
users.users.@@username@@ = {
3+
isNormalUser = true;
4+
description = "@@fullname@@";
5+
extraGroups = [ @@groups@@ ];
6+
packages = with pkgs; [@@pkgs@@];
7+
};

0 commit comments

Comments
 (0)