Convert "upstart-jobs/xserver.nix" to a configuration file.
svn path=/nixos/branches/fix-style/; revision=13682
This commit is contained in:
parent
44f1d9f0bf
commit
1b32260084
@ -212,7 +212,6 @@ let
|
|||||||
)
|
)
|
||||||
[
|
[
|
||||||
"login"
|
"login"
|
||||||
"slim"
|
|
||||||
"su"
|
"su"
|
||||||
"other"
|
"other"
|
||||||
"passwd"
|
"passwd"
|
||||||
@ -223,7 +222,6 @@ let
|
|||||||
"useradd"
|
"useradd"
|
||||||
"chsh"
|
"chsh"
|
||||||
"xlock"
|
"xlock"
|
||||||
"kde"
|
|
||||||
"cups"
|
"cups"
|
||||||
"common"
|
"common"
|
||||||
"common-console" # shared stuff for interactive local sessions
|
"common-console" # shared stuff for interactive local sessions
|
||||||
|
@ -372,8 +372,6 @@ in
|
|||||||
in
|
in
|
||||||
[ kernel ]
|
[ kernel ]
|
||||||
++ pkgs.lib.optional ((config.networking.enableIntel3945ABGFirmware || config.networking.enableIntel4965AGNFirmware) && !kernel.features ? iwlwifi) kernelPackages.iwlwifi
|
++ pkgs.lib.optional ((config.networking.enableIntel3945ABGFirmware || config.networking.enableIntel4965AGNFirmware) && !kernel.features ? iwlwifi) kernelPackages.iwlwifi
|
||||||
# !!! this should be declared by the xserver Upstart job.
|
|
||||||
++ pkgs.lib.optional (config.services.xserver.enable && config.services.xserver.videoDriver == "nvidia") kernelPackages.nvidiaDrivers
|
|
||||||
++ pkgs.lib.optional config.hardware.enableGo7007 kernelPackages.wis_go7007
|
++ pkgs.lib.optional config.hardware.enableGo7007 kernelPackages.wis_go7007
|
||||||
++ config.boot.extraModulePackages
|
++ config.boot.extraModulePackages
|
||||||
# should only keep this one, other have to be set by the option owners.
|
# should only keep this one, other have to be set by the option owners.
|
||||||
@ -1184,314 +1182,6 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
xserver = {
|
|
||||||
|
|
||||||
enable = mkOption {
|
|
||||||
default = false;
|
|
||||||
description = "
|
|
||||||
Whether to enable the X server.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
autorun = mkOption {
|
|
||||||
default = true;
|
|
||||||
description = "
|
|
||||||
Switch to false to create upstart-job and configuration,
|
|
||||||
but not run it automatically
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
exportConfiguration = mkOption {
|
|
||||||
default = false;
|
|
||||||
description = "
|
|
||||||
Create /etc/X11/xorg.conf and a file with environment
|
|
||||||
variables
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
tcpEnable = mkOption {
|
|
||||||
default = false;
|
|
||||||
description = "
|
|
||||||
Whether to enable TCP socket for the X server.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
resolutions = mkOption {
|
|
||||||
default = [{x = 1024; y = 768;} {x = 800; y = 600;} {x = 640; y = 480;}];
|
|
||||||
description = "
|
|
||||||
The screen resolutions for the X server. The first element is the default resolution.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
videoDriver = mkOption {
|
|
||||||
default = "vesa";
|
|
||||||
example = "i810";
|
|
||||||
description = "
|
|
||||||
The name of the video driver for your graphics card.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
driSupport = mkOption {
|
|
||||||
default = false;
|
|
||||||
description = "
|
|
||||||
Whether to enable accelerated OpenGL rendering through the
|
|
||||||
Direct Rendering Interface (DRI).
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
sessionType = mkOption {
|
|
||||||
default = "gnome";
|
|
||||||
example = "xterm";
|
|
||||||
description = "
|
|
||||||
The kind of session to start after login. Current possibilies
|
|
||||||
are <literal>kde</literal> (which starts KDE),
|
|
||||||
<literal>gnome</literal> (which starts
|
|
||||||
<command>gnome-terminal</command>) and <literal>xterm</literal>
|
|
||||||
(which starts <command>xterm</command>).
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
windowManager = mkOption {
|
|
||||||
default = "";
|
|
||||||
description = "
|
|
||||||
This option selects the window manager. Available values are
|
|
||||||
<literal>twm</literal> (extremely primitive),
|
|
||||||
<literal>metacity</literal>, <literal>xmonad</literal>
|
|
||||||
and <literal>compiz</literal>. If
|
|
||||||
left empty, the <option>sessionType</option> determines the
|
|
||||||
window manager, e.g., Metacity for Gnome, and
|
|
||||||
<command>kwm</command> for KDE.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
renderingFlag = mkOption {
|
|
||||||
default = "";
|
|
||||||
example = "--indirect-rendering";
|
|
||||||
description = "
|
|
||||||
Possibly pass --indierct-rendering to Compiz.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
sessionStarter = mkOption {
|
|
||||||
example = "${pkgs.xterm}/bin/xterm -ls";
|
|
||||||
description = "
|
|
||||||
The command executed after login and after the window manager
|
|
||||||
has been started. Used if
|
|
||||||
<option>services.xserver.sessionType</option> is empty.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
startSSHAgent = mkOption {
|
|
||||||
default = true;
|
|
||||||
description = "
|
|
||||||
Whether to start the SSH agent when you log in. The SSH agent
|
|
||||||
remembers private keys for you so that you don't have to type in
|
|
||||||
passphrases every time you make an SSH connection. Use
|
|
||||||
<command>ssh-add</command> to add a key to the agent.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
slim = {
|
|
||||||
|
|
||||||
theme = mkOption {
|
|
||||||
default = null;
|
|
||||||
example = pkgs.fetchurl {
|
|
||||||
url = http://download.berlios.de/slim/slim-wave.tar.gz;
|
|
||||||
sha256 = "0ndr419i5myzcylvxb89m9grl2xyq6fbnyc3lkd711mzlmnnfxdy";
|
|
||||||
};
|
|
||||||
description = "
|
|
||||||
The theme for the SLiM login manager. If not specified, SLiM's
|
|
||||||
default theme is used. See <link
|
|
||||||
xlink:href='http://slim.berlios.de/themes01.php'/> for a
|
|
||||||
collection of themes.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
defaultUser = mkOption {
|
|
||||||
default = "";
|
|
||||||
example = "login";
|
|
||||||
description = "
|
|
||||||
The default user to load. If you put a username here you
|
|
||||||
get it automatically loaded into the username field, and
|
|
||||||
the focus is placed on the password.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
hideCursor = mkOption {
|
|
||||||
default = false;
|
|
||||||
example = true;
|
|
||||||
description = "
|
|
||||||
Hide the mouse cursor on the login screen.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
isClone = mkOption {
|
|
||||||
default = true;
|
|
||||||
example = false;
|
|
||||||
description = "
|
|
||||||
Whether to enable the X server clone mode for dual-head.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
synaptics = {
|
|
||||||
enable = mkOption {
|
|
||||||
default = false;
|
|
||||||
example = true;
|
|
||||||
description = "
|
|
||||||
Whether to replace mouse with touchpad.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
dev = mkOption {
|
|
||||||
default = "/dev/input/event0";
|
|
||||||
description = "
|
|
||||||
Event device for Synaptics touchpad.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
minSpeed = mkOption {
|
|
||||||
default = "0.06";
|
|
||||||
description = "Cursor speed factor for precision finger motion";
|
|
||||||
};
|
|
||||||
maxSpeed = mkOption {
|
|
||||||
default = "0.12";
|
|
||||||
description = "Cursor speed factor for highest-speed finger motion";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
layout = mkOption {
|
|
||||||
default = "us";
|
|
||||||
description = "
|
|
||||||
Keyboard layout.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
xkbModel = mkOption {
|
|
||||||
default = "pc104";
|
|
||||||
example = "presario";
|
|
||||||
description = "
|
|
||||||
Keyboard model.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
xkbOptions = mkOption {
|
|
||||||
default = "";
|
|
||||||
example = "grp:caps_toggle, grp_led:scroll";
|
|
||||||
description = "
|
|
||||||
X keyboard options; layout switching goes here.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
useInternalAGPGART = mkOption {
|
|
||||||
default = "";
|
|
||||||
example = "no";
|
|
||||||
description = "
|
|
||||||
Just the wrapper for an xorg.conf option.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraDeviceConfig = mkOption {
|
|
||||||
default = "";
|
|
||||||
example = "VideoRAM 131072";
|
|
||||||
description = "
|
|
||||||
Just anything to add into Device section.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraMonitorSettings = mkOption {
|
|
||||||
default = "";
|
|
||||||
example = "HorizSync 28-49";
|
|
||||||
description = "
|
|
||||||
Just anything to add into Monitor section.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraDisplaySettings = mkOption {
|
|
||||||
default = "";
|
|
||||||
example = "Virtual 2048 2048";
|
|
||||||
description = "
|
|
||||||
Just anything to add into Display subsection (located in Screen section).
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraModules = mkOption {
|
|
||||||
default = "";
|
|
||||||
example = "
|
|
||||||
SubSection \"extmod\"
|
|
||||||
EndSubsection
|
|
||||||
";
|
|
||||||
description = "
|
|
||||||
Just anything to add into Modules section.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
serverLayoutOptions = mkOption {
|
|
||||||
default = "";
|
|
||||||
example = "
|
|
||||||
Option \"AIGLX\" \"true\"
|
|
||||||
";
|
|
||||||
description = "
|
|
||||||
Just anything to add into Monitor section.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
defaultDepth = mkOption {
|
|
||||||
default = 24;
|
|
||||||
example = 8;
|
|
||||||
description = "
|
|
||||||
Default colour depth.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
useXFS = mkOption {
|
|
||||||
default = false;
|
|
||||||
example = "unix/:7100";
|
|
||||||
description = "
|
|
||||||
Way to access the X Font Server to use.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
tty = mkOption {
|
|
||||||
default = 7;
|
|
||||||
example = 9;
|
|
||||||
description = "
|
|
||||||
Virtual console for the X server.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
display = mkOption {
|
|
||||||
default = 0;
|
|
||||||
example = 1;
|
|
||||||
description = "
|
|
||||||
Display number for the X server.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
packageFun = mkOption {
|
|
||||||
default = pkgs.xorg;
|
|
||||||
merge = obsolete "option" backwardPkgsFunMerge;
|
|
||||||
description = "Obsolete: use 'package' instead.";
|
|
||||||
};
|
|
||||||
|
|
||||||
package = mkOption {
|
|
||||||
default = config.services.xserver.packageFun; # pkgs.xorg;
|
|
||||||
description = "
|
|
||||||
Alternative X.org package to use. For
|
|
||||||
example, you can replace individual drivers.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualScreen = mkOption {
|
|
||||||
default = null;
|
|
||||||
example = {
|
|
||||||
x=2048;
|
|
||||||
y=2048;
|
|
||||||
};
|
|
||||||
description = "
|
|
||||||
Virtual screen size for Xrandr
|
|
||||||
";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ejabberd = {
|
ejabberd = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
@ -2844,6 +2534,7 @@ in
|
|||||||
(import ../upstart-jobs/hal.nix)
|
(import ../upstart-jobs/hal.nix)
|
||||||
(import ../upstart-jobs/gpm.nix)
|
(import ../upstart-jobs/gpm.nix)
|
||||||
(import ../upstart-jobs/nagios/default.nix)
|
(import ../upstart-jobs/nagios/default.nix)
|
||||||
|
(import ../upstart-jobs/xserver.nix)
|
||||||
(import ../upstart-jobs/zabbix-agent.nix)
|
(import ../upstart-jobs/zabbix-agent.nix)
|
||||||
(import ../upstart-jobs/zabbix-server.nix)
|
(import ../upstart-jobs/zabbix-server.nix)
|
||||||
(import ../upstart-jobs/disnix.nix)
|
(import ../upstart-jobs/disnix.nix)
|
||||||
|
@ -198,7 +198,6 @@ rec {
|
|||||||
setuidPrograms =
|
setuidPrograms =
|
||||||
config.security.setuidPrograms ++
|
config.security.setuidPrograms ++
|
||||||
config.security.extraSetuidPrograms ++
|
config.security.extraSetuidPrograms ++
|
||||||
pkgs.lib.optional (config.services.xserver.sessionType == "kde") "kcheckpass" ++
|
|
||||||
map ( x : x.program ) config.security.setuidOwners;
|
map ( x : x.program ) config.security.setuidOwners;
|
||||||
|
|
||||||
bash = pkgs.bashInteractive;
|
bash = pkgs.bashInteractive;
|
||||||
|
@ -275,13 +275,6 @@ let
|
|||||||
inherit (pkgs) makePortmap;
|
inherit (pkgs) makePortmap;
|
||||||
})
|
})
|
||||||
|
|
||||||
# X server.
|
|
||||||
++ optional config.services.xserver.enable
|
|
||||||
(import ../upstart-jobs/xserver.nix {
|
|
||||||
inherit config pkgs kernelPackages;
|
|
||||||
fontDirectories = import ../system/fonts.nix {inherit pkgs config;};
|
|
||||||
})
|
|
||||||
|
|
||||||
# Apache httpd.
|
# Apache httpd.
|
||||||
++ optional (config.services.httpd.enable && !config.services.httpd.experimental)
|
++ optional (config.services.httpd.enable && !config.services.httpd.experimental)
|
||||||
(import ../upstart-jobs/httpd.nix {
|
(import ../upstart-jobs/httpd.nix {
|
||||||
|
@ -1,12 +1,325 @@
|
|||||||
{ config, pkgs, kernelPackages
|
{config, pkgs, ...}:
|
||||||
|
# TODO: this file need some make-up (Nicolas Pierron)
|
||||||
|
|
||||||
, # List of font directories.
|
let
|
||||||
fontDirectories
|
kernelPackages = config.boot.kernelPackages;
|
||||||
}:
|
# List of font directories.
|
||||||
|
fontDirectories = import ../system/fonts.nix {inherit pkgs config;};
|
||||||
|
|
||||||
|
inherit (pkgs.lib) mkOption;
|
||||||
|
|
||||||
|
options = {
|
||||||
|
services = {
|
||||||
|
|
||||||
|
xserver = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
description = "
|
||||||
|
Whether to enable the X server.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
autorun = mkOption {
|
||||||
|
default = true;
|
||||||
|
description = "
|
||||||
|
Switch to false to create upstart-job and configuration,
|
||||||
|
but not run it automatically
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
exportConfiguration = mkOption {
|
||||||
|
default = false;
|
||||||
|
description = "
|
||||||
|
Create /etc/X11/xorg.conf and a file with environment
|
||||||
|
variables
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
tcpEnable = mkOption {
|
||||||
|
default = false;
|
||||||
|
description = "
|
||||||
|
Whether to enable TCP socket for the X server.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
resolutions = mkOption {
|
||||||
|
default = [{x = 1024; y = 768;} {x = 800; y = 600;} {x = 640; y = 480;}];
|
||||||
|
description = "
|
||||||
|
The screen resolutions for the X server. The first element is the default resolution.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
videoDriver = mkOption {
|
||||||
|
default = "vesa";
|
||||||
|
example = "i810";
|
||||||
|
description = "
|
||||||
|
The name of the video driver for your graphics card.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
driSupport = mkOption {
|
||||||
|
default = false;
|
||||||
|
description = "
|
||||||
|
Whether to enable accelerated OpenGL rendering through the
|
||||||
|
Direct Rendering Interface (DRI).
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
sessionType = mkOption {
|
||||||
|
default = "gnome";
|
||||||
|
example = "xterm";
|
||||||
|
description = "
|
||||||
|
The kind of session to start after login. Current possibilies
|
||||||
|
are <literal>kde</literal> (which starts KDE),
|
||||||
|
<literal>gnome</literal> (which starts
|
||||||
|
<command>gnome-terminal</command>) and <literal>xterm</literal>
|
||||||
|
(which starts <command>xterm</command>).
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
windowManager = mkOption {
|
||||||
|
default = "";
|
||||||
|
description = "
|
||||||
|
This option selects the window manager. Available values are
|
||||||
|
<literal>twm</literal> (extremely primitive),
|
||||||
|
<literal>metacity</literal>, <literal>xmonad</literal>
|
||||||
|
and <literal>compiz</literal>. If
|
||||||
|
left empty, the <option>sessionType</option> determines the
|
||||||
|
window manager, e.g., Metacity for Gnome, and
|
||||||
|
<command>kwm</command> for KDE.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
renderingFlag = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = "--indirect-rendering";
|
||||||
|
description = "
|
||||||
|
Possibly pass --indierct-rendering to Compiz.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
sessionStarter = mkOption {
|
||||||
|
example = "${pkgs.xterm}/bin/xterm -ls";
|
||||||
|
description = "
|
||||||
|
The command executed after login and after the window manager
|
||||||
|
has been started. Used if
|
||||||
|
<option>services.xserver.sessionType</option> is empty.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
startSSHAgent = mkOption {
|
||||||
|
default = true;
|
||||||
|
description = "
|
||||||
|
Whether to start the SSH agent when you log in. The SSH agent
|
||||||
|
remembers private keys for you so that you don't have to type in
|
||||||
|
passphrases every time you make an SSH connection. Use
|
||||||
|
<command>ssh-add</command> to add a key to the agent.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
slim = {
|
||||||
|
|
||||||
|
theme = mkOption {
|
||||||
|
default = null;
|
||||||
|
example = pkgs.fetchurl {
|
||||||
|
url = http://download.berlios.de/slim/slim-wave.tar.gz;
|
||||||
|
sha256 = "0ndr419i5myzcylvxb89m9grl2xyq6fbnyc3lkd711mzlmnnfxdy";
|
||||||
|
};
|
||||||
|
description = "
|
||||||
|
The theme for the SLiM login manager. If not specified, SLiM's
|
||||||
|
default theme is used. See <link
|
||||||
|
xlink:href='http://slim.berlios.de/themes01.php'/> for a
|
||||||
|
collection of themes.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
defaultUser = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = "login";
|
||||||
|
description = "
|
||||||
|
The default user to load. If you put a username here you
|
||||||
|
get it automatically loaded into the username field, and
|
||||||
|
the focus is placed on the password.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
hideCursor = mkOption {
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = "
|
||||||
|
Hide the mouse cursor on the login screen.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
isClone = mkOption {
|
||||||
|
default = true;
|
||||||
|
example = false;
|
||||||
|
description = "
|
||||||
|
Whether to enable the X server clone mode for dual-head.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
synaptics = {
|
||||||
|
enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = "
|
||||||
|
Whether to replace mouse with touchpad.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
dev = mkOption {
|
||||||
|
default = "/dev/input/event0";
|
||||||
|
description = "
|
||||||
|
Event device for Synaptics touchpad.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
minSpeed = mkOption {
|
||||||
|
default = "0.06";
|
||||||
|
description = "Cursor speed factor for precision finger motion";
|
||||||
|
};
|
||||||
|
maxSpeed = mkOption {
|
||||||
|
default = "0.12";
|
||||||
|
description = "Cursor speed factor for highest-speed finger motion";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
layout = mkOption {
|
||||||
|
default = "us";
|
||||||
|
description = "
|
||||||
|
Keyboard layout.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
xkbModel = mkOption {
|
||||||
|
default = "pc104";
|
||||||
|
example = "presario";
|
||||||
|
description = "
|
||||||
|
Keyboard model.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
xkbOptions = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = "grp:caps_toggle, grp_led:scroll";
|
||||||
|
description = "
|
||||||
|
X keyboard options; layout switching goes here.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
useInternalAGPGART = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = "no";
|
||||||
|
description = "
|
||||||
|
Just the wrapper for an xorg.conf option.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraDeviceConfig = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = "VideoRAM 131072";
|
||||||
|
description = "
|
||||||
|
Just anything to add into Device section.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraMonitorSettings = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = "HorizSync 28-49";
|
||||||
|
description = "
|
||||||
|
Just anything to add into Monitor section.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraDisplaySettings = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = "Virtual 2048 2048";
|
||||||
|
description = "
|
||||||
|
Just anything to add into Display subsection (located in Screen section).
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraModules = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = "
|
||||||
|
SubSection \"extmod\"
|
||||||
|
EndSubsection
|
||||||
|
";
|
||||||
|
description = "
|
||||||
|
Just anything to add into Modules section.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
serverLayoutOptions = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = "
|
||||||
|
Option \"AIGLX\" \"true\"
|
||||||
|
";
|
||||||
|
description = "
|
||||||
|
Just anything to add into Monitor section.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
defaultDepth = mkOption {
|
||||||
|
default = 24;
|
||||||
|
example = 8;
|
||||||
|
description = "
|
||||||
|
Default colour depth.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
useXFS = mkOption {
|
||||||
|
default = false;
|
||||||
|
example = "unix/:7100";
|
||||||
|
description = "
|
||||||
|
Way to access the X Font Server to use.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
tty = mkOption {
|
||||||
|
default = 7;
|
||||||
|
example = 9;
|
||||||
|
description = "
|
||||||
|
Virtual console for the X server.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
display = mkOption {
|
||||||
|
default = 0;
|
||||||
|
example = 1;
|
||||||
|
description = "
|
||||||
|
Display number for the X server.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
default = pkgs.xorg;
|
||||||
|
description = "
|
||||||
|
Alternative X.org package to use. For
|
||||||
|
example, you can replace individual drivers.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualScreen = mkOption {
|
||||||
|
default = null;
|
||||||
|
example = {
|
||||||
|
x=2048;
|
||||||
|
y=2048;
|
||||||
|
};
|
||||||
|
description = "
|
||||||
|
Virtual screen size for Xrandr
|
||||||
|
";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
inherit (pkgs.lib) optional isInList getAttr;
|
inherit (pkgs.lib) optional isInList getAttr mkIf;
|
||||||
# Abbreviations.
|
# Abbreviations.
|
||||||
cfg = config.services.xserver;
|
cfg = config.services.xserver;
|
||||||
xorg = cfg.package;
|
xorg = cfg.package;
|
||||||
@ -234,7 +547,7 @@ let
|
|||||||
env LD_LIBRARY_PATH=${xorg.libX11}/lib:${xorg.libXext}/lib:/usr/lib/
|
env LD_LIBRARY_PATH=${xorg.libX11}/lib:${xorg.libXext}/lib:/usr/lib/
|
||||||
# !!! Hack: load the schemas for Metacity.
|
# !!! Hack: load the schemas for Metacity.
|
||||||
GCONF_CONFIG_SOURCE=xml::~/.gconf ${gnome.GConf}/bin/gconftool-2 \
|
GCONF_CONFIG_SOURCE=xml::~/.gconf ${gnome.GConf}/bin/gconftool-2 \
|
||||||
--makefile-install-rule ${gnome.metacity}/etc/gconf/schemas/*.schemas
|
--makefile-install-rule ${gnome.metacity}/etc/gconf/schemas/*.schemas # */
|
||||||
${gnome.metacity}/bin/metacity &
|
${gnome.metacity}/bin/metacity &
|
||||||
''
|
''
|
||||||
|
|
||||||
@ -245,7 +558,7 @@ let
|
|||||||
else if windowManager == "compiz" then ''
|
else if windowManager == "compiz" then ''
|
||||||
# !!! Hack: load the schemas for Compiz.
|
# !!! Hack: load the schemas for Compiz.
|
||||||
GCONF_CONFIG_SOURCE=xml::~/.gconf ${gnome.GConf}/bin/gconftool-2 \
|
GCONF_CONFIG_SOURCE=xml::~/.gconf ${gnome.GConf}/bin/gconftool-2 \
|
||||||
--makefile-install-rule ${pkgs.compiz}/etc/gconf/schemas/*.schemas
|
--makefile-install-rule ${pkgs.compiz}/etc/gconf/schemas/*.schemas # */
|
||||||
|
|
||||||
# !!! Hack: turn on most Compiz modules.
|
# !!! Hack: turn on most Compiz modules.
|
||||||
${gnome.GConf}/bin/gconftool-2 -t list --list-type=string \
|
${gnome.GConf}/bin/gconftool-2 -t list --list-type=string \
|
||||||
@ -300,7 +613,7 @@ let
|
|||||||
|
|
||||||
''}
|
''}
|
||||||
|
|
||||||
''; # */
|
'';
|
||||||
|
|
||||||
|
|
||||||
xserverArgs = [
|
xserverArgs = [
|
||||||
@ -343,10 +656,9 @@ let
|
|||||||
|
|
||||||
nvidiaDrivers = (config.boot.kernelPackages pkgs).nvidiaDrivers;
|
nvidiaDrivers = (config.boot.kernelPackages pkgs).nvidiaDrivers;
|
||||||
|
|
||||||
in
|
oldJob = rec {
|
||||||
|
# Warning the indentation is wrong since here in order to don't produce noise in diffs.
|
||||||
|
|
||||||
|
|
||||||
rec {
|
|
||||||
name = "xserver";
|
name = "xserver";
|
||||||
|
|
||||||
|
|
||||||
@ -433,4 +745,54 @@ rec {
|
|||||||
exec ${pkgs.slim}/bin/slim
|
exec ${pkgs.slim}/bin/slim
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
mkIf cfg.enable {
|
||||||
|
require = [
|
||||||
|
options
|
||||||
|
|
||||||
|
# services.extraJobs
|
||||||
|
(import ../upstart-jobs/default.nix)
|
||||||
|
|
||||||
|
# environment.etc
|
||||||
|
(import ../etc/default.nix)
|
||||||
|
|
||||||
|
# boot.extraModulePackages
|
||||||
|
# security.extraSetuidPrograms
|
||||||
|
# environment.extraPackages
|
||||||
|
];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
extraModulePackages = mkIf (cfg.videoDriver == "nvidia") [
|
||||||
|
kernelPackages.nvidiaDrivers
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
security = {
|
||||||
|
extraSetuidPrograms = mkIf (cfg.sessionType == "kde") [
|
||||||
|
"kcheckpass"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
etc = [
|
||||||
|
{ source = ../etc/pam.d/kde;
|
||||||
|
target = "pam.d/kde";
|
||||||
|
}
|
||||||
|
{ source = ../etc/pam.d/slim;
|
||||||
|
target = "pam.d/slim";
|
||||||
|
}
|
||||||
|
] ++ oldJob.extraEtc;
|
||||||
|
|
||||||
|
extraPackages =
|
||||||
|
oldJob.extraPath;
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
extraJobs = [{
|
||||||
|
inherit (oldJob) name job;
|
||||||
|
}];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user