summary refs log tree commit diff
path: root/nixos/modules/installer/cd-dvd/installation-cd-graphical.nix
diff options
context:
space:
mode:
authorLuca Bruno <luca.bruno@immobiliare.it>2014-10-23 18:14:41 +0200
committerLuca Bruno <luca.bruno@immobiliare.it>2014-10-23 18:59:25 +0200
commite553e27f48246eb02f4fac9ef7bafc504f1d3b47 (patch)
treef7731e8e44741a29a796a1501859fb00ea80529a /nixos/modules/installer/cd-dvd/installation-cd-graphical.nix
parent773e804274ef20a63c1d365b8da586c8fc3a59fe (diff)
downloadnixpkgs-e553e27f48246eb02f4fac9ef7bafc504f1d3b47.tar
nixpkgs-e553e27f48246eb02f4fac9ef7bafc504f1d3b47.tar.gz
nixpkgs-e553e27f48246eb02f4fac9ef7bafc504f1d3b47.tar.bz2
nixpkgs-e553e27f48246eb02f4fac9ef7bafc504f1d3b47.tar.lz
nixpkgs-e553e27f48246eb02f4fac9ef7bafc504f1d3b47.tar.xz
nixpkgs-e553e27f48246eb02f4fac9ef7bafc504f1d3b47.tar.zst
nixpkgs-e553e27f48246eb02f4fac9ef7bafc504f1d3b47.zip
kde installer: Add gparted, nixos manual and konsole in the desktop
Diffstat (limited to 'nixos/modules/installer/cd-dvd/installation-cd-graphical.nix')
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-graphical.nix69
1 files changed, 69 insertions, 0 deletions
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical.nix
index 65aa1167089..b1e1d16c610 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical.nix
@@ -11,6 +11,9 @@ with lib;
   # Provide wicd for easy wireless configuration.
   #networking.wicd.enable = true;
 
+  # Include gparted for partitioning disks
+  environment.systemPackages = [ pkgs.gparted ];
+  
   # KDE complains if power management is disabled (to be precise, if
   # there is no power management backend such as upower).
   powerManagement.enable = true;
@@ -27,4 +30,70 @@ with lib;
       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
+      '';
+    };
+
 }