1# This module defines a NixOS installation CD that contains X11 and
2# GNOME 3.
3
4{ config, lib, pkgs, ... }:
5
6with lib;
7
8{
9 imports = [ ./installation-cd-base.nix ];
10
11 services.xserver = {
12 enable = true;
13 # GDM doesn't start in virtual machines with ISO
14 displayManager.slim = {
15 enable = true;
16 defaultUser = "root";
17 autoLogin = true;
18 };
19 desktopManager.gnome3 = {
20 enable = true;
21 extraGSettingsOverrides = ''
22 [org.gnome.desktop.background]
23 show-desktop-icons=true
24
25 [org.gnome.nautilus.desktop]
26 trash-icon-visible=false
27 volumes-visible=false
28 home-icon-visible=false
29 network-icon-visible=false
30 '';
31
32 extraGSettingsOverridePackages = [ pkgs.gnome3.nautilus ];
33 };
34 };
35
36 environment.systemPackages =
37 [ # Include gparted for partitioning disks.
38 pkgs.gparted
39
40 # Include some editors.
41 pkgs.vim
42 pkgs.bvi # binary editor
43 pkgs.joe
44
45 pkgs.glxinfo
46 ];
47
48 # Don't start the X server by default.
49 services.xserver.autorun = mkForce false;
50
51 # Auto-login as root.
52 services.xserver.displayManager.gdm.autoLogin = {
53 enable = true;
54 user = "root";
55 };
56
57 system.activationScripts.installerDesktop = let
58 # Must be executable
59 desktopFile = pkgs.writeScript "nixos-manual.desktop" ''
60 [Desktop Entry]
61 Version=1.0
62 Type=Link
63 Name=NixOS Manual
64 URL=${config.system.build.manual.manual}/share/doc/nixos/index.html
65 Icon=system-help
66 '';
67
68 # use cp and chmod +x, we must be sure the apps are in the nix store though
69 in ''
70 mkdir -p /root/Desktop
71 ln -sfT ${desktopFile} /root/Desktop/nixos-manual.desktop
72 cp ${pkgs.gnome3.gnome_terminal}/share/applications/gnome-terminal.desktop /root/Desktop/gnome-terminal.desktop
73 chmod a+rx /root/Desktop/gnome-terminal.desktop
74 cp ${pkgs.gparted}/share/applications/gparted.desktop /root/Desktop/gparted.desktop
75 chmod a+rx /root/Desktop/gparted.desktop
76 '';
77
78}