···30Images [gfx-landing-declarative.png](branding/nixos/gfx-landing-declarative.png), [gfx-landing-reliable.png](branding/nixos/gfx-landing-reliable.png), and [gfx-landing-reproducible.png](branding/nixos/gfx-landing-reproducible.png) are licensed under [CC-BY-SA-4.0](LICENSES/CC-BY-SA-4.0.txt)
3132Images [nix-snowflake.svg](branding/nixos/nix-snowflake.svg) and [white.png](branding/nixos/white.png) are licensed under [CC-BY-4.0](LICENSES/CC-BY-4.0.txt)
33-34-## Tests
35-36-- The `nixos` Python job module is has unit tests in [testing/](https://github.com/NixOS/calamares-nixos-extensions/tree/calamares/testing).
37-38-These tests can be executed with the command:
39-```sh
40-$ nix run .
41-```
···30Images [gfx-landing-declarative.png](branding/nixos/gfx-landing-declarative.png), [gfx-landing-reliable.png](branding/nixos/gfx-landing-reliable.png), and [gfx-landing-reproducible.png](branding/nixos/gfx-landing-reproducible.png) are licensed under [CC-BY-SA-4.0](LICENSES/CC-BY-SA-4.0.txt)
3132Images [nix-snowflake.svg](branding/nixos/nix-snowflake.svg) and [white.png](branding/nixos/white.png) are licensed under [CC-BY-4.0](LICENSES/CC-BY-4.0.txt)
000000000
···1+import io.calamares.core
2+3+import QtQuick
4+import QtQuick.Controls
5+import QtQuick.Layouts
6+import org.kde.kirigami as Kirigami
7+8+Page {
9+ width: parent.width
10+ height: parent.height
11+12+ ColumnLayout {
13+ width: parent.width
14+ spacing: Kirigami.Units.smallSpacing
15+16+ Column {
17+ Layout.fillWidth: true
18+19+ Text {
20+ text: qsTr("NixOS is fully open source, but it also provides optional software packages that do not respect users' freedom to run, copy, distribute, study, change and improve the software, and are commonly not open source. By default such \"unfree\" packages are not allowed, but you can enable it here. If you check this box, you agree that unfree software may be installed which might have additional End User License Agreements (EULAs) that you need to agree to. If not enabled, some hardware (notably Nvidia GPUs and some WiFi chips) might not work or not work optimally.<br/>")
21+ width: parent.width
22+ wrapMode: Text.WordWrap
23+ }
24+25+ CheckBox {
26+ text: qsTr("Allow unfree software")
27+28+ onCheckedChanged: {
29+ Global.insert("nixos_allow_unfree", checked)
30+ }
31+ }
32+ }
33+ }
34+}
···9# Relative paths are assumed to be relative to /etc/X11/xorg.conf.d
10xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf"
1112-# The path to search for keymaps converted from X11 to kbd format
13-# Leave this empty if the setting does not make sense on your distribution.
14-#convertedKeymapPath: "/lib/kbd/keymaps/xkb"
15-16# Write keymap configuration to /etc/default/keyboard, usually
17# found on Debian-related systems.
18# Defaults to true if nothing is set.
19writeEtcDefaultKeyboard: false
0000
···9# Relative paths are assumed to be relative to /etc/X11/xorg.conf.d
10xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf"
11000012# Write keymap configuration to /etc/default/keyboard, usually
13# found on Debian-related systems.
14# Defaults to true if nothing is set.
15writeEtcDefaultKeyboard: false
16+17+configure:
18+ # Configure keyboard when using Wayland with Gnome on Ubuntu 24.10+
19+ gnome: true
···27# Enable only when your Distribution is using an
28# custom path for locale.gen
29#
30-#localeGenPath: "PATH_TO/locale.gen"
3132# GeoIP based Language settings: Leave commented out to disable GeoIP.
33#
···27# Enable only when your Distribution is using an
28# custom path for locale.gen
29#
30+localeGenPath: @glibcLocales@/share/i18n/SUPPORTED
3132# GeoIP based Language settings: Leave commented out to disable GeoIP.
33#
···154 description: "<html>Every part of GNOME has been designed to make it simple and easy to use. It provides a focused working environment that helps you get things done. GNOME is a popular choice and well tested on NixOS.<br/>
155 <br/>
156 Learn more at <a href=\"https://www.gnome.org/\">gnome.org</a></html>"
157- screenshot: "/run/current-system/sw/share/calamares/images/gnome.png"
158159 - id: plasma6
160 packages: [ plasma6 ]
···162 description: "<html>Plasma is made to stay out of the way as it helps you get things done. But under its light and intuitive surface, it's a highly customizable. So you're free to choose ways of usage right as you need them and when you need them. Plasma is a popular choice and well tested on NixOS.<br/>
163 <br/>
164 Learn more at <a href=\"https://kde.org/plasma-desktop/\">kde.org/plasma-desktop</a></html>"
165- screenshot: "/run/current-system/sw/share/calamares/images/plasma6.png"
166167 - id: xfce
168 packages: [ xfce ]
···170 description: "<html>Xfce is a lightweight desktop environment. It aims to be fast and low on system resources, while still being visually appealing and user friendly.<br/>
171 <br/>
172 Learn more at <a href=\"https://www.xfce.org/\">xfce.org</a></html>"
173- screenshot: "/run/current-system/sw/share/calamares/images/xfce.png"
174175 - id: pantheon
176 packages: [ pantheon ]
···178 description: "<html>Pantheon is the default desktop of Elementary OS. It provides a productive and intuitive user experience while also being visually appealing.<br/>
179 <br/>
180 Learn more at <a href=\"https://elementary.io/docs/learning-the-basics\">elementary.io/docs/learning-the-basics</a></html>"
181- screenshot: "/run/current-system/sw/share/calamares/images/pantheon.png"
182183 - id: cinnamon
184 packages: [ cinnamon ]
···186 description: "<html>Cinnamon is a desktop which provides advanced innovative features and a traditional user experience. The emphasis is put on making users feel at home and providing them with an easy to use and comfortable desktop experience.<br/>
187 <br/>
188 Learn more at <a href=\"https://projects.linuxmint.com/cinnamon/\">projects.linuxmint.com/cinnamon</a></html>"
189- screenshot: "/run/current-system/sw/share/calamares/images/cinnamon.png"
190191 - id: mate
192 packages: [ mate ]
···194 description: "<html>The MATE Desktop Environment is the continuation of GNOME 2. It provides an intuitive and attractive desktop environment.<br/>
195 <br/>
196 Learn more at <a href=\"https://mate-desktop.org/\">mate-desktop.org</a></html>"
197- screenshot: "/run/current-system/sw/share/calamares/images/mate.png"
198199 - id: enlightenment
200 packages: [ enlightenment ]
···202 description: "<html>Enlightenment is a Window Manager, Compositor and Minimal Desktop. Enlightenment is classed as a desktop shell as it provides everything you need to operate your desktop or laptop, but it is not a full application suite.<br/>
203 <br/>
204 Learn more at <a href=\"https://www.enlightenment.org/\">enlightenment.org</a></html>"
205- screenshot: "/run/current-system/sw/share/calamares/images/enlightenment.png"
206207 - id: lxqt
208 packages: [ lxqt ]
···210 description: "<html>LXQt is a lightweight Qt desktop environment. It will not get in your way. It will not hang or slow down your system. It is focused on being a classic desktop with a modern look and feel.<br/>
211 <br/>
212 Learn more at <a href=\"https://lxqt-project.org/\">lxqt-project.org</a></html>"
213- screenshot: "/run/current-system/sw/share/calamares/images/lxqt.png"
214215 # Lumina is not yet stable enough, once it is, simply uncommenting the lines below is all that's needed to enable it as an option
216 #- id: lumina
···218 # name: Lumina
219 # description: "<html>Lumina is designed to have a small footprint, giving your system the best performance possible. It is built to flow seamlessly between computer tasks and offers several integrated utilities in one convenient package.<br/>
220 # - Learn more at <a href=\"https://lumina-desktop.org/\">lumina-desktop.org</a></html>"
221- # screenshot: "/run/current-system/sw/share/calamares/images/lumina.png"
222223 - id: budgie
224 packages: [ budgie ]
···226 description: "<html>The Budgie Desktop is a feature-rich, modern desktop designed to keep out the way of the user.<br/>
227 <br/>
228 Learn more at <a href=\"https://docs.buddiesofbudgie.org/\">buddiesofbudgie.org</a></html>"
229- screenshot: "/run/current-system/sw/share/calamares/images/budgie.png"
230231 - id: deepin
232 packages: [ deepin ]
···234 description: "<html>The Deepin Desktop Environment is an elegant, easy to use and reliable desktop environment.<br/>
235 <br/>
236 Learn more at <a href=\"https://www.deepin.org/\">deepin.org</a></html>"
237- screenshot: "/run/current-system/sw/share/calamares/images/deepin.png"
238239 - id: ""
240 packages: []
241 name: "No desktop"
242- screenshot: "/run/current-system/sw/share/calamares/images/nodesktop.png"
243 description: "A minimal system without a graphical user interface will be installed. This is great for servers or custom setups with window managers. The configuration can be changed after installation."
···154 description: "<html>Every part of GNOME has been designed to make it simple and easy to use. It provides a focused working environment that helps you get things done. GNOME is a popular choice and well tested on NixOS.<br/>
155 <br/>
156 Learn more at <a href=\"https://www.gnome.org/\">gnome.org</a></html>"
157+ screenshot: "images/gnome.png"
158159 - id: plasma6
160 packages: [ plasma6 ]
···162 description: "<html>Plasma is made to stay out of the way as it helps you get things done. But under its light and intuitive surface, it's a highly customizable. So you're free to choose ways of usage right as you need them and when you need them. Plasma is a popular choice and well tested on NixOS.<br/>
163 <br/>
164 Learn more at <a href=\"https://kde.org/plasma-desktop/\">kde.org/plasma-desktop</a></html>"
165+ screenshot: "images/plasma6.png"
166167 - id: xfce
168 packages: [ xfce ]
···170 description: "<html>Xfce is a lightweight desktop environment. It aims to be fast and low on system resources, while still being visually appealing and user friendly.<br/>
171 <br/>
172 Learn more at <a href=\"https://www.xfce.org/\">xfce.org</a></html>"
173+ screenshot: "images/xfce.png"
174175 - id: pantheon
176 packages: [ pantheon ]
···178 description: "<html>Pantheon is the default desktop of Elementary OS. It provides a productive and intuitive user experience while also being visually appealing.<br/>
179 <br/>
180 Learn more at <a href=\"https://elementary.io/docs/learning-the-basics\">elementary.io/docs/learning-the-basics</a></html>"
181+ screenshot: "images/pantheon.png"
182183 - id: cinnamon
184 packages: [ cinnamon ]
···186 description: "<html>Cinnamon is a desktop which provides advanced innovative features and a traditional user experience. The emphasis is put on making users feel at home and providing them with an easy to use and comfortable desktop experience.<br/>
187 <br/>
188 Learn more at <a href=\"https://projects.linuxmint.com/cinnamon/\">projects.linuxmint.com/cinnamon</a></html>"
189+ screenshot: "images/cinnamon.png"
190191 - id: mate
192 packages: [ mate ]
···194 description: "<html>The MATE Desktop Environment is the continuation of GNOME 2. It provides an intuitive and attractive desktop environment.<br/>
195 <br/>
196 Learn more at <a href=\"https://mate-desktop.org/\">mate-desktop.org</a></html>"
197+ screenshot: "images/mate.png"
198199 - id: enlightenment
200 packages: [ enlightenment ]
···202 description: "<html>Enlightenment is a Window Manager, Compositor and Minimal Desktop. Enlightenment is classed as a desktop shell as it provides everything you need to operate your desktop or laptop, but it is not a full application suite.<br/>
203 <br/>
204 Learn more at <a href=\"https://www.enlightenment.org/\">enlightenment.org</a></html>"
205+ screenshot: "images/enlightenment.png"
206207 - id: lxqt
208 packages: [ lxqt ]
···210 description: "<html>LXQt is a lightweight Qt desktop environment. It will not get in your way. It will not hang or slow down your system. It is focused on being a classic desktop with a modern look and feel.<br/>
211 <br/>
212 Learn more at <a href=\"https://lxqt-project.org/\">lxqt-project.org</a></html>"
213+ screenshot: "images/lxqt.png"
214215 # Lumina is not yet stable enough, once it is, simply uncommenting the lines below is all that's needed to enable it as an option
216 #- id: lumina
···218 # name: Lumina
219 # description: "<html>Lumina is designed to have a small footprint, giving your system the best performance possible. It is built to flow seamlessly between computer tasks and offers several integrated utilities in one convenient package.<br/>
220 # - Learn more at <a href=\"https://lumina-desktop.org/\">lumina-desktop.org</a></html>"
221+ # screenshot: "images/lumina.png"
222223 - id: budgie
224 packages: [ budgie ]
···226 description: "<html>The Budgie Desktop is a feature-rich, modern desktop designed to keep out the way of the user.<br/>
227 <br/>
228 Learn more at <a href=\"https://docs.buddiesofbudgie.org/\">buddiesofbudgie.org</a></html>"
229+ screenshot: "images/budgie.png"
230231 - id: deepin
232 packages: [ deepin ]
···234 description: "<html>The Deepin Desktop Environment is an elegant, easy to use and reliable desktop environment.<br/>
235 <br/>
236 Learn more at <a href=\"https://www.deepin.org/\">deepin.org</a></html>"
237+ screenshot: "images/deepin.png"
238239 - id: ""
240 packages: []
241 name: "No desktop"
242+ screenshot: "images/nodesktop.png"
243 description: "A minimal system without a graphical user interface will be installed. This is great for servers or custom setups with window managers. The configuration can be changed after installation."
···32#
33#
34# YAML: list of strings.
35-modules-search: [ local, /run/current-system/sw/lib/calamares/modules ]
3637# Instances section. This section is optional, and it defines custom instances
38# for modules of any kind. An instance entry has these keys:
···87# YAML: list of maps of string:string key-value pairs.
88instances:
89- id: unfree
90- module: packagechooserq
91 config: unfree.conf
9293# Sequence section. This section describes the sequence of modules, both
···119 - keyboard
120 - users
121 - packagechooser
122- - packagechooserq@unfree
123 - partition
124 - summary
125- exec:
···32#
33#
34# YAML: list of strings.
35+modules-search: [ local, @out@/lib/calamares/modules ]
3637# Instances section. This section is optional, and it defines custom instances
38# for modules of any kind. An instance entry has these keys:
···87# YAML: list of maps of string:string key-value pairs.
88instances:
89- id: unfree
90+ module: notesqml
91 config: unfree.conf
9293# Sequence section. This section describes the sequence of modules, both
···119 - keyboard
120 - users
121 - packagechooser
122+ - notesqml@unfree
123 - partition
124 - summary
125- exec:
···700701 # Check if unfree packages are allowed
702 free = True
703- if gs.value("packagechooser_unfree") is not None:
704- if gs.value("packagechooser_unfree") == "unfree":
705- free = False
706- cfg += cfgunfree
707708 cfg += cfgpkgs
709 # Use firefox as default as a graphical web browser, and add kate to plasma desktop
···700701 # Check if unfree packages are allowed
702 free = True
703+ if gs.value("nixos_allow_unfree"):
704+ free = False
705+ cfg += cfgunfree
0706707 cfg += cfgpkgs
708 # Use firefox as default as a graphical web browser, and add kate to plasma desktop
···1-# Do not modify this file! It was generated by ‘nixos-generate-config’
2-# and may be overwritten by future invocations. Please make changes
3-# to /etc/nixos/configuration.nix instead.
4-{ config, lib, pkgs, modulesPath, ... }:
5-6-{
7- imports =
8- [ (modulesPath + "/installer/scan/not-detected.nix")
9- ];
10-11- boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" ];
12- boot.initrd.kernelModules = [ ];
13- boot.kernelModules = [ "kvm-amd" ];
14- boot.extraModulePackages = [ ];
15-16- swapDevices = [ ];
17-18- # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
19- # (the default) this is the recommended approach. When using systemd-networkd it's
20- # still possible to use this option, but it's recommended to use it in conjunction
21- # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
22- networking.useDHCP = lib.mkDefault true;
23- # networking.interfaces.docker0.useDHCP = lib.mkDefault true;
24- # networking.interfaces.veth1a64ca3.useDHCP = lib.mkDefault true;
25- # networking.interfaces.vethb5290db.useDHCP = lib.mkDefault true;
26- # networking.interfaces.vethf60304e.useDHCP = lib.mkDefault true;
27- # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
28-29- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
30- hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
31-}