at 16.09-beta 3.1 kB view raw
1# This module defines a NixOS installation CD that contains X11 and 2# KDE 4. 3 4{ config, lib, pkgs, ... }: 5 6with lib; 7 8{ 9 imports = [ ./installation-cd-base.nix ../../profiles/graphical.nix ]; 10 11 # Provide wicd for easy wireless configuration. 12 #networking.wicd.enable = true; 13 14 environment.systemPackages = 15 [ # Include gparted for partitioning disks. 16 pkgs.gparted 17 18 # Include some editors. 19 pkgs.vim 20 pkgs.bvi # binary editor 21 pkgs.joe 22 ]; 23 24 # Provide networkmanager for easy wireless configuration. 25 networking.networkmanager.enable = true; 26 networking.wireless.enable = mkForce false; 27 28 # KDE complains if power management is disabled (to be precise, if 29 # there is no power management backend such as upower). 30 powerManagement.enable = true; 31 32 # Don't start the X server by default. 33 services.xserver.autorun = mkForce false; 34 35 # Auto-login as root. 36 services.xserver.displayManager.kdm.extraConfig = 37 '' 38 [X-*-Core] 39 AllowRootLogin=true 40 AutoLoginEnable=true 41 AutoLoginUser=root 42 AutoLoginPass="" 43 ''; 44 45 # Custom kde-workspace adding some icons on the desktop 46 47 system.activationScripts.installerDesktop = let 48 openManual = pkgs.writeScript "nixos-manual.sh" '' 49 #!${pkgs.stdenv.shell} 50 cd ${config.system.build.manual.manual}/share/doc/nixos/ 51 konqueror ./index.html 52 ''; 53 54 desktopFile = pkgs.writeText "nixos-manual.desktop" '' 55 [Desktop Entry] 56 Version=1.0 57 Type=Application 58 Name=NixOS Manual 59 Exec=${openManual} 60 Icon=konqueror 61 ''; 62 63 in '' 64 mkdir -p /root/Desktop 65 ln -sfT ${desktopFile} /root/Desktop/nixos-manual.desktop 66 ln -sfT ${pkgs.kde4.konsole}/share/applications/kde4/konsole.desktop /root/Desktop/konsole.desktop 67 ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop /root/Desktop/gparted.desktop 68 ''; 69 70 services.xserver.desktopManager.kde4.kdeWorkspacePackage = let 71 pkg = pkgs.kde4.kde_workspace; 72 73 plasmaInit = pkgs.writeText "00-defaultLayout.js" '' 74 loadTemplate("org.kde.plasma-desktop.defaultPanel") 75 76 for (var i = 0; i < screenCount; ++i) { 77 var desktop = new Activity 78 desktop.name = i18n("Desktop") 79 desktop.screen = i 80 desktop.wallpaperPlugin = 'image' 81 desktop.wallpaperMode = 'SingleImage' 82 83 var folderview = desktop.addWidget("folderview"); 84 folderview.writeConfig("url", "desktop:/"); 85 86 //Create more panels for other screens 87 if (i > 0){ 88 var panel = new Panel 89 panel.screen = i 90 panel.location = 'bottom' 91 panel.height = screenGeometry(i).height > 1024 ? 35 : 27 92 var tasks = panel.addWidget("tasks") 93 tasks.writeConfig("showOnlyCurrentScreen", true); 94 } 95 } 96 ''; 97 98 in 99 pkgs.stdenv.mkDerivation { 100 inherit (pkg) name meta; 101 102 buildCommand = '' 103 mkdir -p $out 104 cp -prf ${pkg}/* $out/ 105 chmod a+w $out/share/apps/plasma-desktop/init 106 cp -f ${plasmaInit} $out/share/apps/plasma-desktop/init/00-defaultLayout.js 107 ''; 108 }; 109 110}