···3030Images [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)
31313232Images [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)
3333-3434-## Tests
3535-3636-- The `nixos` Python job module is has unit tests in [testing/](https://github.com/NixOS/calamares-nixos-extensions/tree/calamares/testing).
3737-3838-These tests can be executed with the command:
3939-```sh
4040-$ nix run .
4141-```
···11+import io.calamares.core
22+33+import QtQuick
44+import QtQuick.Controls
55+import QtQuick.Layouts
66+import org.kde.kirigami as Kirigami
77+88+Page {
99+ width: parent.width
1010+ height: parent.height
1111+1212+ ColumnLayout {
1313+ width: parent.width
1414+ spacing: Kirigami.Units.smallSpacing
1515+1616+ Column {
1717+ Layout.fillWidth: true
1818+1919+ Text {
2020+ 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/>")
2121+ width: parent.width
2222+ wrapMode: Text.WordWrap
2323+ }
2424+2525+ CheckBox {
2626+ text: qsTr("Allow unfree software")
2727+2828+ onCheckedChanged: {
2929+ Global.insert("nixos_allow_unfree", checked)
3030+ }
3131+ }
3232+ }
3333+ }
3434+}
···99# Relative paths are assumed to be relative to /etc/X11/xorg.conf.d
1010xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf"
11111212-# The path to search for keymaps converted from X11 to kbd format
1313-# Leave this empty if the setting does not make sense on your distribution.
1414-#convertedKeymapPath: "/lib/kbd/keymaps/xkb"
1515-1612# Write keymap configuration to /etc/default/keyboard, usually
1713# found on Debian-related systems.
1814# Defaults to true if nothing is set.
1915writeEtcDefaultKeyboard: false
1616+1717+configure:
1818+ # Configure keyboard when using Wayland with Gnome on Ubuntu 24.10+
1919+ gnome: true
···2727# Enable only when your Distribution is using an
2828# custom path for locale.gen
2929#
3030-#localeGenPath: "PATH_TO/locale.gen"
3030+localeGenPath: @glibcLocales@/share/i18n/SUPPORTED
31313232# GeoIP based Language settings: Leave commented out to disable GeoIP.
3333#
···154154 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/>
155155 <br/>
156156 Learn more at <a href=\"https://www.gnome.org/\">gnome.org</a></html>"
157157- screenshot: "/run/current-system/sw/share/calamares/images/gnome.png"
157157+ screenshot: "images/gnome.png"
158158159159 - id: plasma6
160160 packages: [ plasma6 ]
···162162 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/>
163163 <br/>
164164 Learn more at <a href=\"https://kde.org/plasma-desktop/\">kde.org/plasma-desktop</a></html>"
165165- screenshot: "/run/current-system/sw/share/calamares/images/plasma6.png"
165165+ screenshot: "images/plasma6.png"
166166167167 - id: xfce
168168 packages: [ xfce ]
···170170 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/>
171171 <br/>
172172 Learn more at <a href=\"https://www.xfce.org/\">xfce.org</a></html>"
173173- screenshot: "/run/current-system/sw/share/calamares/images/xfce.png"
173173+ screenshot: "images/xfce.png"
174174175175 - id: pantheon
176176 packages: [ pantheon ]
···178178 description: "<html>Pantheon is the default desktop of Elementary OS. It provides a productive and intuitive user experience while also being visually appealing.<br/>
179179 <br/>
180180 Learn more at <a href=\"https://elementary.io/docs/learning-the-basics\">elementary.io/docs/learning-the-basics</a></html>"
181181- screenshot: "/run/current-system/sw/share/calamares/images/pantheon.png"
181181+ screenshot: "images/pantheon.png"
182182183183 - id: cinnamon
184184 packages: [ cinnamon ]
···186186 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/>
187187 <br/>
188188 Learn more at <a href=\"https://projects.linuxmint.com/cinnamon/\">projects.linuxmint.com/cinnamon</a></html>"
189189- screenshot: "/run/current-system/sw/share/calamares/images/cinnamon.png"
189189+ screenshot: "images/cinnamon.png"
190190191191 - id: mate
192192 packages: [ mate ]
···194194 description: "<html>The MATE Desktop Environment is the continuation of GNOME 2. It provides an intuitive and attractive desktop environment.<br/>
195195 <br/>
196196 Learn more at <a href=\"https://mate-desktop.org/\">mate-desktop.org</a></html>"
197197- screenshot: "/run/current-system/sw/share/calamares/images/mate.png"
197197+ screenshot: "images/mate.png"
198198199199 - id: enlightenment
200200 packages: [ enlightenment ]
···202202 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/>
203203 <br/>
204204 Learn more at <a href=\"https://www.enlightenment.org/\">enlightenment.org</a></html>"
205205- screenshot: "/run/current-system/sw/share/calamares/images/enlightenment.png"
205205+ screenshot: "images/enlightenment.png"
206206207207 - id: lxqt
208208 packages: [ lxqt ]
···210210 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/>
211211 <br/>
212212 Learn more at <a href=\"https://lxqt-project.org/\">lxqt-project.org</a></html>"
213213- screenshot: "/run/current-system/sw/share/calamares/images/lxqt.png"
213213+ screenshot: "images/lxqt.png"
214214215215 # 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
216216 #- id: lumina
···218218 # name: Lumina
219219 # 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/>
220220 # - Learn more at <a href=\"https://lumina-desktop.org/\">lumina-desktop.org</a></html>"
221221- # screenshot: "/run/current-system/sw/share/calamares/images/lumina.png"
221221+ # screenshot: "images/lumina.png"
222222223223 - id: budgie
224224 packages: [ budgie ]
···226226 description: "<html>The Budgie Desktop is a feature-rich, modern desktop designed to keep out the way of the user.<br/>
227227 <br/>
228228 Learn more at <a href=\"https://docs.buddiesofbudgie.org/\">buddiesofbudgie.org</a></html>"
229229- screenshot: "/run/current-system/sw/share/calamares/images/budgie.png"
229229+ screenshot: "images/budgie.png"
230230231231 - id: deepin
232232 packages: [ deepin ]
···234234 description: "<html>The Deepin Desktop Environment is an elegant, easy to use and reliable desktop environment.<br/>
235235 <br/>
236236 Learn more at <a href=\"https://www.deepin.org/\">deepin.org</a></html>"
237237- screenshot: "/run/current-system/sw/share/calamares/images/deepin.png"
237237+ screenshot: "images/deepin.png"
238238239239 - id: ""
240240 packages: []
241241 name: "No desktop"
242242- screenshot: "/run/current-system/sw/share/calamares/images/nodesktop.png"
242242+ screenshot: "images/nodesktop.png"
243243 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."
···700700701701 # Check if unfree packages are allowed
702702 free = True
703703- if gs.value("packagechooser_unfree") is not None:
704704- if gs.value("packagechooser_unfree") == "unfree":
705705- free = False
706706- cfg += cfgunfree
703703+ if gs.value("nixos_allow_unfree"):
704704+ free = False
705705+ cfg += cfgunfree
707706708707 cfg += cfgpkgs
709708 # Use firefox as default as a graphical web browser, and add kate to plasma desktop
···11-# Do not modify this file! It was generated by ‘nixos-generate-config’
22-# and may be overwritten by future invocations. Please make changes
33-# to /etc/nixos/configuration.nix instead.
44-{ config, lib, pkgs, modulesPath, ... }:
55-66-{
77- imports =
88- [ (modulesPath + "/installer/scan/not-detected.nix")
99- ];
1010-1111- boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" ];
1212- boot.initrd.kernelModules = [ ];
1313- boot.kernelModules = [ "kvm-amd" ];
1414- boot.extraModulePackages = [ ];
1515-1616- swapDevices = [ ];
1717-1818- # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
1919- # (the default) this is the recommended approach. When using systemd-networkd it's
2020- # still possible to use this option, but it's recommended to use it in conjunction
2121- # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
2222- networking.useDHCP = lib.mkDefault true;
2323- # networking.interfaces.docker0.useDHCP = lib.mkDefault true;
2424- # networking.interfaces.veth1a64ca3.useDHCP = lib.mkDefault true;
2525- # networking.interfaces.vethb5290db.useDHCP = lib.mkDefault true;
2626- # networking.interfaces.vethf60304e.useDHCP = lib.mkDefault true;
2727- # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
2828-2929- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
3030- hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
3131-}