diff options
Diffstat (limited to 'nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix')
-rw-r--r-- | nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix new file mode 100644 index 000000000000..d14768bc1079 --- /dev/null +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix @@ -0,0 +1,110 @@ +# This module defines a NixOS installation CD that contains X11 and +# KDE 4. + +{ config, lib, pkgs, ... }: + +with lib; + +{ + imports = [ ./installation-cd-base.nix ../../profiles/graphical.nix ]; + + # Provide wicd for easy wireless configuration. + #networking.wicd.enable = true; + + environment.systemPackages = + [ # Include gparted for partitioning disks. + pkgs.gparted + + # Include some editors. + pkgs.vim + pkgs.bvi # binary editor + pkgs.joe + ]; + + # Provide networkmanager for easy wireless configuration. + networking.networkmanager.enable = true; + networking.wireless.enable = mkForce false; + + # KDE complains if power management is disabled (to be precise, if + # there is no power management backend such as upower). + powerManagement.enable = true; + + # Don't start the X server by default. + services.xserver.autorun = mkForce false; + + # Auto-login as root. + services.xserver.displayManager.kdm.extraConfig = + '' + [X-*-Core] + AllowRootLogin=true + AutoLoginEnable=true + AutoLoginUser=root + AutoLoginPass="" + ''; + + # Custom kde-workspace adding some icons on the desktop + + system.activationScripts.installerDesktop = let + openManual = pkgs.writeScript "nixos-manual.sh" '' + #!${pkgs.stdenv.shell} + cd ${config.system.build.manual.manual}/share/doc/nixos/ + konqueror ./index.html + ''; + + desktopFile = pkgs.writeText "nixos-manual.desktop" '' + [Desktop Entry] + Version=1.0 + Type=Application + Name=NixOS Manual + Exec=${openManual} + Icon=konqueror + ''; + + in '' + mkdir -p /root/Desktop + ln -sfT ${desktopFile} /root/Desktop/nixos-manual.desktop + ln -sfT ${pkgs.kde4.konsole}/share/applications/kde4/konsole.desktop /root/Desktop/konsole.desktop + ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop /root/Desktop/gparted.desktop + ''; + + services.xserver.desktopManager.kde4.kdeWorkspacePackage = let + pkg = pkgs.kde4.kde_workspace; + + plasmaInit = pkgs.writeText "00-defaultLayout.js" '' + loadTemplate("org.kde.plasma-desktop.defaultPanel") + + for (var i = 0; i < screenCount; ++i) { + var desktop = new Activity + desktop.name = i18n("Desktop") + desktop.screen = i + desktop.wallpaperPlugin = 'image' + desktop.wallpaperMode = 'SingleImage' + + var folderview = desktop.addWidget("folderview"); + folderview.writeConfig("url", "desktop:/"); + + //Create more panels for other screens + if (i > 0){ + var panel = new Panel + panel.screen = i + panel.location = 'bottom' + panel.height = screenGeometry(i).height > 1024 ? 35 : 27 + var tasks = panel.addWidget("tasks") + tasks.writeConfig("showOnlyCurrentScreen", true); + } + } + ''; + + in + pkgs.stdenv.mkDerivation { + inherit (pkg) name meta; + + buildCommand = '' + mkdir -p $out + cp -prf ${pkg}/* $out/ + chmod a+w $out/share/apps/plasma-desktop/init + cp -f ${plasmaInit} $out/share/apps/plasma-desktop/init/00-defaultLayout.js + ''; + }; + +} |