installation-cd-graphical-kde: use KDE 5

This commit is contained in:
Thomas Tuegel 2016-11-13 09:19:26 -06:00
parent 1958f07c63
commit 456414c519
No known key found for this signature in database
GPG key ID: 22CBF5249D4B4D59

View file

@ -1,20 +1,38 @@
# This module defines a NixOS installation CD that contains X11 and # This module defines a NixOS installation CD that contains X11 and
# KDE 4. # KDE 5.
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib; with lib;
{ {
imports = [ ./installation-cd-base.nix ../../profiles/graphical.nix ]; imports = [ ./installation-cd-base.nix ];
# Provide wicd for easy wireless configuration. services.xserver = {
#networking.wicd.enable = true; enable = true;
# Automatically login as root.
displayManager.slim = {
enable = true;
defaultUser = "root";
autoLogin = true;
};
desktopManager.kde5.enable = true;
# Enable touchpad support for many laptops.
synaptics.enable = true;
};
environment.systemPackages = environment.systemPackages =
[ # Include gparted for partitioning disks. [ pkgs.glxinfo
# Include gparted for partitioning disks.
pkgs.gparted pkgs.gparted
# Firefox for reading the manual.
pkgs.firefox
# Include some editors. # Include some editors.
pkgs.vim pkgs.vim
pkgs.bvi # binary editor pkgs.bvi # binary editor
@ -32,23 +50,12 @@ with lib;
# Don't start the X server by default. # Don't start the X server by default.
services.xserver.autorun = mkForce false; 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 # Custom kde-workspace adding some icons on the desktop
system.activationScripts.installerDesktop = let system.activationScripts.installerDesktop = let
openManual = pkgs.writeScript "nixos-manual.sh" '' openManual = pkgs.writeScript "nixos-manual.sh" ''
#!${pkgs.stdenv.shell} #!${pkgs.stdenv.shell}
cd ${config.system.build.manual.manual}/share/doc/nixos/ cd ${config.system.build.manual.manual}/share/doc/nixos/
konqueror ./index.html firefox ./index.html
''; '';
desktopFile = pkgs.writeText "nixos-manual.desktop" '' desktopFile = pkgs.writeText "nixos-manual.desktop" ''
@ -57,55 +64,14 @@ with lib;
Type=Application Type=Application
Name=NixOS Manual Name=NixOS Manual
Exec=${openManual} Exec=${openManual}
Icon=konqueror Icon=firefox
''; '';
in '' in ''
mkdir -p /root/Desktop mkdir -p /root/Desktop
ln -sfT ${desktopFile} /root/Desktop/nixos-manual.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.kde5.konsole}/share/applications/org.kde.konsole.desktop /root/Desktop/org.kde.konsole.desktop
ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop /root/Desktop/gparted.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.runCommand pkg.name
{ inherit (pkg) meta; }
''
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
'';
# Disable large stuff that's not very useful on the installation CD.
services.xserver.desktopManager.kde4.enablePIM = false;
} }