From eccd68eeb746848009f95968ae58c2b98096af20 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Tue, 6 Oct 2015 10:21:38 +0200 Subject: gnome3: add bgSupport=true. Closes #10242 --- nixos/modules/services/x11/desktop-managers/gnome3.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index fdee5fbc6c5b..886a6c884013 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -104,6 +104,7 @@ in { services.xserver.desktopManager.session = singleton { name = "gnome3"; + bgSupport = true; start = '' # Set GTK_DATA_PREFIX so that GTK+ can find the themes export GTK_DATA_PREFIX=${config.system.path} -- cgit 1.4.1 From eb46e0fc7249e304dd6d4b3bdec2d7a07c7a9b84 Mon Sep 17 00:00:00 2001 From: Guillaume Maudoux Date: Mon, 26 Oct 2015 22:30:59 +0100 Subject: i3wm: Add debug & logging options --- nixos/modules/services/x11/window-managers/i3.nix | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/window-managers/i3.nix b/nixos/modules/services/x11/window-managers/i3.nix index e85c3bce591d..510997e76af8 100644 --- a/nixos/modules/services/x11/window-managers/i3.nix +++ b/nixos/modules/services/x11/window-managers/i3.nix @@ -23,6 +23,23 @@ in If left at the default value, $HOME/.i3/config will be used. ''; }; + + debug = mkOption { + default = false; + example = true; + type = types.bool; + description = "Enable debug/verbose logging (see -V option)"; + }; + + logFile = mkOption { + default = null; + example = "$HOME/.i3/i3log"; + type = types.string; + description = '' + Path to a logfile for i3. + If left at the default value, logs will appear in display-manager.service's logs. + ''; + }; }; }; @@ -32,7 +49,11 @@ in name = "i3"; start = '' ${pkgs.i3}/bin/i3 ${optionalString (cfg.configFile != null) - "-c \"${cfg.configFile}\"" + ''-c "${cfg.configFile}"'' + } ${optionalString cfg.debug + ''-V'' + } ${optionalString (cfg.logFile != null) + ''>> "${cfg.logFile}"'' } & waitPID=$! ''; -- cgit 1.4.1 From 42eabf1c4aed3dff04a4621a042fead823835858 Mon Sep 17 00:00:00 2001 From: Arseniy Seroka Date: Tue, 27 Oct 2015 13:40:04 +0300 Subject: Revert "i3wm: Add debug & logging options" --- nixos/modules/services/x11/window-managers/i3.nix | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/window-managers/i3.nix b/nixos/modules/services/x11/window-managers/i3.nix index 510997e76af8..e85c3bce591d 100644 --- a/nixos/modules/services/x11/window-managers/i3.nix +++ b/nixos/modules/services/x11/window-managers/i3.nix @@ -23,23 +23,6 @@ in If left at the default value, $HOME/.i3/config will be used. ''; }; - - debug = mkOption { - default = false; - example = true; - type = types.bool; - description = "Enable debug/verbose logging (see -V option)"; - }; - - logFile = mkOption { - default = null; - example = "$HOME/.i3/i3log"; - type = types.string; - description = '' - Path to a logfile for i3. - If left at the default value, logs will appear in display-manager.service's logs. - ''; - }; }; }; @@ -49,11 +32,7 @@ in name = "i3"; start = '' ${pkgs.i3}/bin/i3 ${optionalString (cfg.configFile != null) - ''-c "${cfg.configFile}"'' - } ${optionalString cfg.debug - ''-V'' - } ${optionalString (cfg.logFile != null) - ''>> "${cfg.logFile}"'' + "-c \"${cfg.configFile}\"" } & waitPID=$! ''; -- cgit 1.4.1 From a92c024c7f86248e1e5f27e87da6c433d217069c Mon Sep 17 00:00:00 2001 From: Benno Fünfstück Date: Sat, 17 Oct 2015 19:11:22 +0200 Subject: sddm: allow extra config options --- nixos/modules/services/x11/display-managers/sddm.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix index c44383cc6117..4594155ea134 100644 --- a/nixos/modules/services/x11/display-managers/sddm.nix +++ b/nixos/modules/services/x11/display-managers/sddm.nix @@ -35,6 +35,8 @@ let SessionCommand=${dmcfg.session.script} SessionDir=${dmcfg.session.desktops} XauthPath=${pkgs.xorg.xauth}/bin/xauth + + ${cfg.extraConfig} ''; in @@ -50,6 +52,19 @@ in ''; }; + extraConfig = mkOption { + type = types.str; + default = ""; + example = '' + [Autologin] + User=john + Session=plasma.desktop + ''; + description = '' + Extra lines appended to the configuration of SDDM. + ''; + }; + theme = mkOption { type = types.str; default = "maui"; -- cgit 1.4.1 From b102fa5a07f0121a0a51455ffd045fac6e505e92 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 7 Oct 2015 06:46:48 -0500 Subject: nixos/kde5: ready for plasma-5.4 --- nixos/modules/services/x11/desktop-managers/kde5.nix | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix index 5061d59b7c7f..b0528d185e2c 100644 --- a/nixos/modules/services/x11/desktop-managers/kde5.nix +++ b/nixos/modules/services/x11/desktop-managers/kde5.nix @@ -37,9 +37,9 @@ let kf5 = pkgs.kf5_stable; - plasma5 = pkgs.plasma5_stable.override { inherit kf5; }; + plasma5 = pkgs.plasma5_stable; - kdeApps = pkgs.kdeApps_stable.override { inherit kf5; }; + kdeApps = pkgs.kdeApps_stable; in @@ -93,13 +93,8 @@ in ++ [ pkgs.qt4 # qtconfig is the only way to set Qt 4 theme - kdeApps.kde-baseapps - kdeApps.kde-base-artwork - kdeApps.kmix + kdeApps.dolphin kdeApps.konsole - kdeApps.oxygen-icons - - kdeApps.kde-runtime pkgs.hicolor_icon_theme -- cgit 1.4.1 From 5d4950a02cbb97f670ea877d7d49964e71d49d8e Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 17 Oct 2015 10:40:33 -0500 Subject: nixos/kde5: only install required packages --- .../modules/services/x11/desktop-managers/kde5.nix | 39 ++++++++++++++++++---- 1 file changed, 33 insertions(+), 6 deletions(-) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix index b0528d185e2c..831c95cd850c 100644 --- a/nixos/modules/services/x11/desktop-managers/kde5.nix +++ b/nixos/modules/services/x11/desktop-managers/kde5.nix @@ -36,9 +36,7 @@ let (name: attrByPath [name] (throw "unknown phonon backend `${name}'") phononBackends); kf5 = pkgs.kf5_stable; - plasma5 = pkgs.plasma5_stable; - kdeApps = pkgs.kdeApps_stable; in @@ -88,18 +86,47 @@ in }; environment.systemPackages = - filter isDerivation (builtins.attrValues plasma5) - ++ filter isDerivation (builtins.attrValues kf5) - ++ [ + [ pkgs.qt4 # qtconfig is the only way to set Qt 4 theme + kf5.kinit + kf5.kglobalaccel + + plasma5.breeze + plasma5.kde-cli-tools + plasma5.kdeplasma-addons + plasma5.kgamma5 + plasma5.khelpcenter + plasma5.khotkeys + plasma5.kinfocenter + plasma5.kmenuedit + plasma5.kscreen + plasma5.ksysguard + plasma5.kwayland + plasma5.kwin + plasma5.kwrited + plasma5.milou + plasma5.oxygen + plasma5.polkit-kde-agent + plasma5.systemsettings + + plasma5.plasma-desktop + plasma5.plasma-workspace + plasma5.plasma-workspace-wallpapers + kdeApps.dolphin kdeApps.konsole pkgs.hicolor_icon_theme + plasma5.kde-gtk-config pkgs.orion # GTK theme, nearly identical to Breeze - ] ++ phononBackendPackages; + ] + ++ lib.optional config.hardware.bluetooth.enable plasma5.bluedevil + ++ lib.optional config.networking.networkmanager.enable plasma5.plasma-nm + ++ lib.optional config.hardware.pulseaudio.enable plasma5.plasma-pa + ++ lib.optional config.powerManagement.enable plasma5.powerdevil + ++ phononBackendPackages; environment.pathsToLink = [ "/share" ]; -- cgit 1.4.1 From 2386bd7c61e899667b8a388b588557c132eb64a3 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 17 Oct 2015 10:47:04 -0500 Subject: nixos/kde5: refine Phonon backend options --- .../modules/services/x11/desktop-managers/kde5.nix | 78 ++++++++++++---------- 1 file changed, 41 insertions(+), 37 deletions(-) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix index 831c95cd850c..62931d9b1dac 100644 --- a/nixos/modules/services/x11/desktop-managers/kde5.nix +++ b/nixos/modules/services/x11/desktop-managers/kde5.nix @@ -8,33 +8,6 @@ let cfg = xcfg.desktopManager.kde5; xorg = pkgs.xorg; - phononBackends = { - gstreamer = [ - pkgs.phonon_backend_gstreamer - pkgs.gst_all.gstreamer - pkgs.gst_all.gstPluginsBase - pkgs.gst_all.gstPluginsGood - pkgs.gst_all.gstPluginsUgly - pkgs.gst_all.gstPluginsBad - pkgs.gst_all.gstFfmpeg # for mp3 playback - pkgs.phonon_qt5_backend_gstreamer - pkgs.gst_all_1.gstreamer - pkgs.gst_all_1.gst-plugins-base - pkgs.gst_all_1.gst-plugins-good - pkgs.gst_all_1.gst-plugins-ugly - pkgs.gst_all_1.gst-plugins-bad - pkgs.gst_all_1.gst-libav # for mp3 playback - ]; - - vlc = [ - pkgs.phonon_qt5_backend_vlc - pkgs.phonon_backend_vlc - ]; - }; - - phononBackendPackages = flip concatMap cfg.phononBackends - (name: attrByPath [name] (throw "unknown phonon backend `${name}'") phononBackends); - kf5 = pkgs.kf5_stable; plasma5 = pkgs.plasma5_stable; kdeApps = pkgs.kdeApps_stable; @@ -51,14 +24,24 @@ in description = "Enable the Plasma 5 (KDE 5) desktop environment."; }; - phononBackends = mkOption { - type = types.listOf types.str; - default = ["gstreamer"]; - example = ["gstreamer" "vlc"]; - description = '' - Phonon backends to use in KDE. Only the VLC and GStreamer backends are - available. The GStreamer backend is preferred by upstream. - ''; + phonon = { + + gstreamer = { + enable = mkOption { + type = types.bool; + default = true; + description = "Enable the GStreamer Phonon backend (recommended)."; + }; + }; + + vlc = { + enable = mkOption { + type = types.bool; + default = false; + description = "Enable the VLC Phonon backend."; + }; + }; + }; }; @@ -126,7 +109,28 @@ in ++ lib.optional config.networking.networkmanager.enable plasma5.plasma-nm ++ lib.optional config.hardware.pulseaudio.enable plasma5.plasma-pa ++ lib.optional config.powerManagement.enable plasma5.powerdevil - ++ phononBackendPackages; + ++ lib.optionals cfg.phonon.gstreamer.enable + [ + pkgs.phonon_backend_gstreamer + pkgs.gst_all.gstreamer + pkgs.gst_all.gstPluginsBase + pkgs.gst_all.gstPluginsGood + pkgs.gst_all.gstPluginsUgly + pkgs.gst_all.gstPluginsBad + pkgs.gst_all.gstFfmpeg # for mp3 playback + pkgs.phonon_qt5_backend_gstreamer + pkgs.gst_all_1.gstreamer + pkgs.gst_all_1.gst-plugins-base + pkgs.gst_all_1.gst-plugins-good + pkgs.gst_all_1.gst-plugins-ugly + pkgs.gst_all_1.gst-plugins-bad + pkgs.gst_all_1.gst-libav # for mp3 playback + ] + ++ lib.optionals cfg.phonon.vlc.enable + [ + pkgs.phonon_qt5_backend_vlc + pkgs.phonon_backend_vlc + ]; environment.pathsToLink = [ "/share" ]; @@ -136,7 +140,7 @@ in }; environment.profileRelativeEnvVars = - mkIf (lib.elem "gstreamer" cfg.phononBackends) + mkIf cfg.phonon.gstreamer.enable { GST_PLUGIN_SYSTEM_PATH = [ "/lib/gstreamer-0.10" ]; GST_PLUGIN_SYSTEM_PATH_1_0 = [ "/lib/gstreamer-1.0" ]; -- cgit 1.4.1 From 5df5e1f1651066c4d9293f6cdeb83f9d18a07704 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 17 Oct 2015 16:52:46 -0500 Subject: plasma54: propagate packages to user profile --- nixos/modules/services/x11/desktop-managers/kde5.nix | 1 - pkgs/desktops/plasma-5.4/plasma-desktop/default.nix | 5 ++++- pkgs/desktops/plasma-5.4/plasma-mediacenter.nix | 5 ++++- pkgs/desktops/plasma-5.4/plasma-workspace/default.nix | 5 ++++- 4 files changed, 12 insertions(+), 4 deletions(-) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix index 62931d9b1dac..bde5aad07a05 100644 --- a/nixos/modules/services/x11/desktop-managers/kde5.nix +++ b/nixos/modules/services/x11/desktop-managers/kde5.nix @@ -73,7 +73,6 @@ in pkgs.qt4 # qtconfig is the only way to set Qt 4 theme kf5.kinit - kf5.kglobalaccel plasma5.breeze plasma5.kde-cli-tools diff --git a/pkgs/desktops/plasma-5.4/plasma-desktop/default.nix b/pkgs/desktops/plasma-5.4/plasma-desktop/default.nix index 77dfe3d91820..eb013292805a 100644 --- a/pkgs/desktops/plasma-5.4/plasma-desktop/default.nix +++ b/pkgs/desktops/plasma-5.4/plasma-desktop/default.nix @@ -9,7 +9,7 @@ , libcanberra_kde, libpulseaudio, makeKDEWrapper, utillinux }: -plasmaPackage { +plasmaPackage rec { name = "plasma-desktop"; nativeBuildInputs = [ extra-cmake-modules @@ -28,6 +28,9 @@ plasmaPackage { kglobalaccel ki18n kpeople krunner kwin plasma-framework plasma-workspace qtdeclarative qtx11extras ]; + # All propagatedBuildInputs should be present in the profile because + # wrappers cannot be used here. + propagatedUserEnvPkgs = propagatedBuildInputs; patches = [ (substituteAll { src = ./0001-hwclock.patch; diff --git a/pkgs/desktops/plasma-5.4/plasma-mediacenter.nix b/pkgs/desktops/plasma-5.4/plasma-mediacenter.nix index 40912087b8c8..afd8a18bbbd6 100644 --- a/pkgs/desktops/plasma-5.4/plasma-mediacenter.nix +++ b/pkgs/desktops/plasma-5.4/plasma-mediacenter.nix @@ -4,7 +4,7 @@ , taglib }: -plasmaPackage { +plasmaPackage rec { name = "plasma-mediacenter"; nativeBuildInputs = [ extra-cmake-modules @@ -17,4 +17,7 @@ plasmaPackage { baloo kactivities kdeclarative kfilemetadata ki18n kio plasma-framework ]; + # All propagatedBuildInputs should be present in the profile because + # wrappers cannot be used here. + propagatedUserEnvPkgs = propagatedBuildInputs; } diff --git a/pkgs/desktops/plasma-5.4/plasma-workspace/default.nix b/pkgs/desktops/plasma-5.4/plasma-workspace/default.nix index a2843a192907..37f55204ec1c 100644 --- a/pkgs/desktops/plasma-5.4/plasma-workspace/default.nix +++ b/pkgs/desktops/plasma-5.4/plasma-workspace/default.nix @@ -10,7 +10,7 @@ , xprop, xrdb, xset, xsetroot, solid, qtquickcontrols }: -plasmaPackage { +plasmaPackage rec { name = "plasma-workspace"; nativeBuildInputs = [ extra-cmake-modules @@ -28,6 +28,9 @@ plasmaPackage { kidletime krunner ktexteditor kwin libkscreen libksysguard plasma-framework qtquick1 qtquickcontrols qtx11extras solid ]; + # All propagatedBuildInputs should be present in the profile because + # impure wrappers are used below. + propagatedUserEnvPkgs = propagatedBuildInputs; patches = [ ./0001-startkde-NixOS-patches.patch ]; inherit bash coreutils gnused gnugrep socat; -- cgit 1.4.1 From 88b99f0054efdf1257551ba208555e041cc8c6e0 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 18 Oct 2015 08:50:57 -0500 Subject: nixos/kde5: install oxygen-icons --- nixos/modules/services/x11/desktop-managers/kde5.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix index bde5aad07a05..4f72d0f47cd9 100644 --- a/nixos/modules/services/x11/desktop-managers/kde5.nix +++ b/nixos/modules/services/x11/desktop-managers/kde5.nix @@ -99,6 +99,7 @@ in kdeApps.dolphin kdeApps.konsole + kdeApps.oxygen-icons pkgs.hicolor_icon_theme plasma5.kde-gtk-config -- cgit 1.4.1 From b36c2dd0a07610a51d26cbe1e7bb850d3058b0e5 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 18 Oct 2015 13:42:36 -0500 Subject: nixos/kde5: install frameworkintegration --- nixos/modules/services/x11/desktop-managers/kde5.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix index 4f72d0f47cd9..00859885e087 100644 --- a/nixos/modules/services/x11/desktop-managers/kde5.nix +++ b/nixos/modules/services/x11/desktop-managers/kde5.nix @@ -72,6 +72,7 @@ in [ pkgs.qt4 # qtconfig is the only way to set Qt 4 theme + kf5.frameworkintegration kf5.kinit plasma5.breeze -- cgit 1.4.1 From b4b2e7c23de3d3c1085c167144f32f4a314fcb80 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Tue, 27 Oct 2015 11:57:58 -0500 Subject: nixos/kde5: install dolphin-plugins --- nixos/modules/services/x11/desktop-managers/kde5.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix index 00859885e087..3b428cc612c1 100644 --- a/nixos/modules/services/x11/desktop-managers/kde5.nix +++ b/nixos/modules/services/x11/desktop-managers/kde5.nix @@ -98,6 +98,7 @@ in plasma5.plasma-workspace-wallpapers kdeApps.dolphin + kdeApps.dolphin-plugins kdeApps.konsole kdeApps.oxygen-icons -- cgit 1.4.1 From 5e65741e41e948ca9ddd5177f6e17000e2698431 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Tue, 27 Oct 2015 19:42:53 -0500 Subject: nixos/kde5: install a more complete desktop --- nixos/modules/services/x11/desktop-managers/kde5.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix index 3b428cc612c1..7d740bca1e4a 100644 --- a/nixos/modules/services/x11/desktop-managers/kde5.nix +++ b/nixos/modules/services/x11/desktop-managers/kde5.nix @@ -97,11 +97,17 @@ in plasma5.plasma-workspace plasma5.plasma-workspace-wallpapers + kdeApps.ark kdeApps.dolphin kdeApps.dolphin-plugins + kdeApps.ffmpegthumbs + kdeApps.gwenview + kdeApps.kate + kdeApps.kdegraphics-thumbnailers kdeApps.konsole + kdeApps.okular + kdeApps.print-manager - kdeApps.oxygen-icons pkgs.hicolor_icon_theme plasma5.kde-gtk-config -- cgit 1.4.1 From 95725b2581c9cbe322b0717c744c8c9141abd670 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 30 Oct 2015 16:05:34 -0500 Subject: nixos/kde5: install oxygen-icons --- nixos/modules/services/x11/desktop-managers/kde5.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix index 7d740bca1e4a..6fdd5b4fa36d 100644 --- a/nixos/modules/services/x11/desktop-managers/kde5.nix +++ b/nixos/modules/services/x11/desktop-managers/kde5.nix @@ -108,6 +108,7 @@ in kdeApps.okular kdeApps.print-manager + kdeApps.oxygen-icons pkgs.hicolor_icon_theme plasma5.kde-gtk-config -- cgit 1.4.1 From d767aae72179d0e323584d5c4811be1f408d45ee Mon Sep 17 00:00:00 2001 From: Benno Fünfstück Date: Sat, 31 Oct 2015 16:03:01 +0100 Subject: sddm module: support autologin configuration --- .../modules/services/x11/display-managers/sddm.nix | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix index 4594155ea134..5ca3a44324f6 100644 --- a/nixos/modules/services/x11/display-managers/sddm.nix +++ b/nixos/modules/services/x11/display-managers/sddm.nix @@ -36,9 +36,22 @@ let SessionDir=${dmcfg.session.desktops} XauthPath=${pkgs.xorg.xauth}/bin/xauth + ${optionalString cfg.autoLogin.enable '' + [Autologin] + User=${cfg.autoLogin.user} + Session=${defaultSessionName}.desktop + Relogin=${if cfg.autoLogin.relogin then "true" else "false"} + ''} + ${cfg.extraConfig} ''; + defaultSessionName = + let + dm = xcfg.desktopManager.default; + wm = xcfg.windowManager.default; + in dm + optionalString (wm != "none") (" + " + wm); + in { options = { @@ -72,12 +85,62 @@ in Greeter theme to use. ''; }; + + autoLogin = mkOption { + default = {}; + description = '' + Configuration for automatic login. + ''; + + type = types.submodule { + options = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Automatically log in as the sepecified . + ''; + }; + + user = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + User to be used for the autologin. + ''; + }; + + relogin = mkOption { + type = types.bool; + default = false; + description = '' + If true automatic login will kick in again on session exit, otherwise it + will work only the first time. + ''; + }; + }; + }; + }; + }; }; config = mkIf cfg.enable { + assertions = [ + { assertion = cfg.autoLogin.enable -> cfg.autoLogin.user != null; + message = "SDDM auto-login requires services.xserver.displayManager.sddm.autoLogin.user to be set"; + } + { assertion = cfg.autoLogin.enable -> elem defaultSessionName dmcfg.session.names; + message = '' + SDDM auto-login requires that services.xserver.desktopManager.default and + services.xserver.windowMananger.default are set to valid values. The current + default session: ${defaultSessionName} is not valid. + ''; + } + ]; + services.xserver.displayManager.slim.enable = false; services.xserver.displayManager.job = { @@ -108,6 +171,18 @@ in session optional pam_keyinit.so force revoke session optional pam_permit.so ''; + + sddm-autologin.text = '' + auth requisite pam_nologin.so + auth required pam_succeed_if.so uid >= 1000 quiet + auth required pam_permit.so + + account include sddm + + password include sddm + + session include sddm + ''; }; users.extraUsers.sddm = { -- cgit 1.4.1 From 5623e1b145a8c1b42c41c5dd163804cca0064b75 Mon Sep 17 00:00:00 2001 From: Robert Glossop Date: Wed, 4 Nov 2015 09:15:52 -0500 Subject: Add the CLFSWM window manager --- .../services/x11/window-managers/clfswm.nix | 31 ++++++++++++++++ .../services/x11/window-managers/default.nix | 1 + .../window-managers/clfswm/default.nix | 43 ++++++++++++++++++++++ .../window-managers/clfswm/require-clx.patch | 13 +++++++ pkgs/top-level/all-packages.nix | 2 + 5 files changed, 90 insertions(+) create mode 100644 nixos/modules/services/x11/window-managers/clfswm.nix create mode 100644 pkgs/applications/window-managers/clfswm/default.nix create mode 100644 pkgs/applications/window-managers/clfswm/require-clx.patch (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/window-managers/clfswm.nix b/nixos/modules/services/x11/window-managers/clfswm.nix new file mode 100644 index 000000000000..9d8eecb56c77 --- /dev/null +++ b/nixos/modules/services/x11/window-managers/clfswm.nix @@ -0,0 +1,31 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xserver.windowManager.clfswm; +in + +{ + options = { + services.xserver.windowManager.clfswm = { + enable = mkOption { + type = types.bool; + default = false; + example = true; + description = "Enable the clfswm tiling window manager."; + }; + }; + }; + + config = mkIf cfg.enable { + services.xserver.windowManager.session = singleton { + name = "clfswm"; + start = '' + ${pkgs.clfswm}/bin/clfswm & + waitPID=$! + ''; + }; + environment.systemPackages = [ pkgs.clfswm ]; + }; +} diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix index 4751de07a15d..31f42f5ffb9f 100644 --- a/nixos/modules/services/x11/window-managers/default.nix +++ b/nixos/modules/services/x11/window-managers/default.nix @@ -10,6 +10,7 @@ in imports = [ ./afterstep.nix ./bspwm.nix + ./clfswm.nix ./compiz.nix ./fluxbox.nix ./herbstluftwm.nix diff --git a/pkgs/applications/window-managers/clfswm/default.nix b/pkgs/applications/window-managers/clfswm/default.nix new file mode 100644 index 000000000000..6eb55348e600 --- /dev/null +++ b/pkgs/applications/window-managers/clfswm/default.nix @@ -0,0 +1,43 @@ +{ stdenv, pkgs, fetchgit, autoconf, sbcl, lispPackages, xdpyinfo, texinfo4 +, makeWrapper , rlwrap, gnused, gnugrep, coreutils, xprop +, extraModulePaths ? [] }: + +stdenv.mkDerivation rec { + name = "clfswm"; + + src = fetchgit { + url = "https://gitlab.common-lisp.net/clfswm/clfswm.git"; + rev = "refs/heads/master"; + sha256 = "1hkm6bn5xww932w34l13bg87m5hsnwnd0i1lka6sw0cq8whndya0"; + }; + + buildInputs = [ + texinfo4 makeWrapper autoconf + sbcl + lispPackages.clx + lispPackages.cl-ppcre + xdpyinfo + ]; + + patches = [ ./require-clx.patch ]; + + # Stripping destroys the generated SBCL image + dontStrip = true; + + installPhase = '' + mkdir -pv $out/bin + make DESTDIR=$out install + + # Paths in the compressed image $out/bin/clfswm are not + # recognized by Nix. Add explicit reference here. + mkdir $out/nix-support + echo ${xdpyinfo} ${lispPackages.clx} ${lispPackages.cl-ppcre} > $out/nix-support/depends + ''; + + meta = with stdenv.lib; { + description = "A(nother) Common Lisp FullScreen Window Manager"; + homepage = https://common-lisp.net/project/clfswm/; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/window-managers/clfswm/require-clx.patch b/pkgs/applications/window-managers/clfswm/require-clx.patch new file mode 100644 index 000000000000..ae2234461d25 --- /dev/null +++ b/pkgs/applications/window-managers/clfswm/require-clx.patch @@ -0,0 +1,13 @@ +diff --git a/load.lisp b/load.lisp +index c8c4cf0..8c9ca2e 100644 +--- a/load.lisp ++++ b/load.lisp +@@ -111,6 +111,8 @@ from $XDG_CONFIG_HOME/clfswm/clfswmrc") + ;;;------------------ + (load-info "Requiring CLX") + ++(require 'clx) ++ + ;;; Loading clisp dynamic module. This part needs clisp >= 2.50 + ;;#+(AND CLISP (not CLX)) + ;;(when (fboundp 'require) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3ad13b487483..5f0f385865e2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11095,6 +11095,8 @@ let enableNetworkManager = config.networking.networkmanager.enable or false; }; + clfswm = callPackage ../applications/window-managers/clfswm { }; + clipgrab = callPackage ../applications/video/clipgrab { }; clipit = callPackage ../applications/misc/clipit { }; -- cgit 1.4.1 From 00c42fdda133de815dcc3bfb6a6cc793d7da2287 Mon Sep 17 00:00:00 2001 From: Chris Martin Date: Tue, 10 Nov 2015 22:28:37 -0800 Subject: redshift: document lat/long and temp bounds --- nixos/modules/services/x11/redshift.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/redshift.nix b/nixos/modules/services/x11/redshift.nix index ffae22d2d670..d40373ec2e55 100644 --- a/nixos/modules/services/x11/redshift.nix +++ b/nixos/modules/services/x11/redshift.nix @@ -22,14 +22,16 @@ in { latitude = mkOption { type = types.str; description = '' - Your current latitude. + Your current latitude, between + -90.0 and 90.0. ''; }; longitude = mkOption { type = types.str; description = '' - Your current longitude. + Your current longitude, between + between -180.0 and 180.0. ''; }; @@ -38,14 +40,16 @@ in { type = types.int; default = 5500; description = '' - Colour temperature to use during the day. + Colour temperature to use during the day, between + 1000 and 25000 K. ''; }; night = mkOption { type = types.int; default = 3700; description = '' - Colour temperature to use at night. + Colour temperature to use at night, between + 1000 and 25000 K. ''; }; }; -- cgit 1.4.1 From 225642e25a89db9bc9a85d719fe2aab1d30f913f Mon Sep 17 00:00:00 2001 From: James Cook Date: Tue, 10 Nov 2015 21:52:47 -0800 Subject: Update comment for gdm service. Emphasize experimental nature slightly less, but say it's only really tested with Gnome. --- nixos/modules/services/x11/display-managers/gdm.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix index c9a563768323..58eb6f050131 100644 --- a/nixos/modules/services/x11/display-managers/gdm.nix +++ b/nixos/modules/services/x11/display-managers/gdm.nix @@ -20,7 +20,9 @@ in enable = mkEnableOption '' GDM as the display manager. - GDM is very experimental and may render system unusable. + GDM in NixOS is not well-tested with desktops other + than GNOME, so use with caution, as it could render the + system unusable. ''; debug = mkEnableOption '' -- cgit 1.4.1 From 162542bf8f20a3ec414c5df9a37a27bfb1106d77 Mon Sep 17 00:00:00 2001 From: Lengyel Balázs Date: Fri, 13 Nov 2015 19:11:46 +0100 Subject: fix: ihaskell's and xmonad's dependence on haskell-ng --- nixos/modules/services/misc/ihaskell.nix | 6 +++--- nixos/modules/services/x11/window-managers/xmonad.nix | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'nixos/modules/services/x11') diff --git a/nixos/modules/services/misc/ihaskell.nix b/nixos/modules/services/misc/ihaskell.nix index 7f7f981de498..13c41466eab2 100644 --- a/nixos/modules/services/misc/ihaskell.nix +++ b/nixos/modules/services/misc/ihaskell.nix @@ -22,9 +22,9 @@ in }; haskellPackages = mkOption { - default = pkgs.haskellngPackages; - defaultText = "pkgs.haskellngPackages"; - example = literalExample "pkgs.haskell-ng.packages.ghc784"; + default = pkgs.haskellPackages; + defaultText = "pkgs.haskellPackages"; + example = literalExample "pkgs.haskell.packages.ghc784"; description = '' haskellPackages used to build IHaskell and other packages. This can be used to change the GHC version used to build diff --git a/nixos/modules/services/x11/window-managers/xmonad.nix b/nixos/modules/services/x11/window-managers/xmonad.nix index c922ca7848d1..288800d514d3 100644 --- a/nixos/modules/services/x11/window-managers/xmonad.nix +++ b/nixos/modules/services/x11/window-managers/xmonad.nix @@ -20,9 +20,9 @@ in }; haskellPackages = mkOption { - default = pkgs.haskellngPackages; - defaultText = "pkgs.haskellngPackages"; - example = literalExample "pkgs.haskell-ng.packages.ghc784"; + default = pkgs.haskellPackages; + defaultText = "pkgs.haskellPackages"; + example = literalExample "pkgs.haskell.packages.ghc784"; description = '' haskellPackages used to build Xmonad and other packages. This can be used to change the GHC version used to build -- cgit 1.4.1