summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nixos/lib/testing-python.nix1
-rw-r--r--nixos/lib/testing.nix1
-rw-r--r--nixos/modules/hardware/video/nvidia.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix1
-rw-r--r--nixos/modules/services/x11/display-managers/default.nix12
-rw-r--r--nixos/modules/services/x11/display-managers/slim.nix160
-rw-r--r--nixos/modules/services/x11/xserver.nix1
-rw-r--r--nixos/release-combined.nix1
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/slim.nix66
-rw-r--r--pkgs/applications/display-managers/slim/default.nix55
-rw-r--r--pkgs/applications/display-managers/slim/no-logfile.patch80
-rw-r--r--pkgs/applications/display-managers/slim/run-once.patch12
-rw-r--r--pkgs/applications/display-managers/slim/runtime-paths.patch70
-rw-r--r--pkgs/applications/display-managers/slim/sort-sessions.patch40
-rw-r--r--pkgs/applications/display-managers/slim/themes.nix183
-rw-r--r--pkgs/top-level/aliases.nix2
-rw-r--r--pkgs/top-level/all-packages.nix6
18 files changed, 18 insertions, 676 deletions
diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix
index 21f6172e9671..22a6e7a6cc03 100644
--- a/nixos/lib/testing-python.nix
+++ b/nixos/lib/testing-python.nix
@@ -258,7 +258,6 @@ in rec {
inherit require;
virtualisation.memorySize = 1024;
services.xserver.enable = true;
- services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.auto.enable = true;
services.xserver.windowManager.default = "icewm";
services.xserver.windowManager.icewm.enable = true;
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix
index 767068771036..a5f060a8d8e3 100644
--- a/nixos/lib/testing.nix
+++ b/nixos/lib/testing.nix
@@ -248,7 +248,6 @@ in rec {
inherit require;
virtualisation.memorySize = 1024;
services.xserver.enable = true;
- services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.auto.enable = true;
services.xserver.windowManager.default = "icewm";
services.xserver.windowManager.icewm.enable = true;
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index 3ab2afc97407..1e18e927ec6e 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -75,7 +75,7 @@ in
Note that this configuration will only be successful when a display manager
for which the <option>services.xserver.displayManager.setupCommands</option>
- option is supported is used; notably, SLiM is not supported.
+ option is supported is used.
'';
};
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index b6fb7218da6f..b48ca3fad939 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -232,7 +232,6 @@ in
security.pam.services.kdm.enableKwallet = true;
security.pam.services.lightdm.enableKwallet = true;
security.pam.services.sddm.enableKwallet = true;
- security.pam.services.slim.enableKwallet = true;
xdg.portal.enable = true;
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-kde ];
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index bf6b048654b3..b66856fd4d44 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -1,9 +1,9 @@
# This module declares the options to define a *display manager*, the
-# program responsible for handling X logins (such as xdm, gdb, or
-# SLiM). The display manager allows the user to select a *session
-# type*. When the user logs in, the display manager starts the
+# program responsible for handling X logins (such as LightDM, GDM, or SDDM).
+# The display manager allows the user to select a *session
+# type*. When the user logs in, the display manager starts the
# *session script* ("xsession" below) to launch the selected session
-# type. The session type defines two things: the *desktop manager*
+# type. The session type defines two things: the *desktop manager*
# (e.g., KDE, Gnome or a plain xterm), and optionally the *window
# manager* (e.g. kwin or twm).
@@ -196,7 +196,6 @@ let
fi
'') cfg.displayManager.extraSessionFilePackages}
-
${concatMapStrings (pkg: ''
if test -d ${pkg}/share/wayland-sessions; then
mkdir -p "$out/share/wayland-sessions"
@@ -322,7 +321,7 @@ in
execCmd = mkOption {
type = types.str;
example = literalExample ''
- "''${pkgs.slim}/bin/slim"
+ "''${pkgs.lightdm}/bin/lightdm"
'';
description = "Command to start the display manager.";
};
@@ -330,7 +329,6 @@ in
environment = mkOption {
type = types.attrsOf types.unspecified;
default = {};
- example = { SLIM_CFGFILE = "/etc/slim.conf"; };
description = "Additional environment variables needed by the display manager.";
};
diff --git a/nixos/modules/services/x11/display-managers/slim.nix b/nixos/modules/services/x11/display-managers/slim.nix
index 124660a43f07..4b0948a5b7a5 100644
--- a/nixos/modules/services/x11/display-managers/slim.nix
+++ b/nixos/modules/services/x11/display-managers/slim.nix
@@ -2,155 +2,15 @@
with lib;
-let
-
- dmcfg = config.services.xserver.displayManager;
-
- cfg = dmcfg.slim;
-
- slimConfig = pkgs.writeText "slim.cfg"
- ''
- xauth_path ${dmcfg.xauthBin}
- default_xserver ${dmcfg.xserverBin}
- xserver_arguments ${toString dmcfg.xserverArgs}
- sessiondir ${dmcfg.session.desktops}/share/xsessions
- login_cmd exec ${pkgs.runtimeShell} ${dmcfg.session.wrapper} "%session"
- halt_cmd ${config.systemd.package}/sbin/shutdown -h now
- reboot_cmd ${config.systemd.package}/sbin/shutdown -r now
- logfile /dev/stderr
- ${optionalString (cfg.defaultUser != null) ("default_user " + cfg.defaultUser)}
- ${optionalString (cfg.defaultUser != null) ("focus_password yes")}
- ${optionalString cfg.autoLogin "auto_login yes"}
- ${optionalString (cfg.consoleCmd != null) "console_cmd ${cfg.consoleCmd}"}
- ${cfg.extraConfig}
- '';
-
- # Unpack the SLiM theme, or use the default.
- slimThemesDir =
- let
- unpackedTheme = pkgs.runCommand "slim-theme" { preferLocalBuild = true; }
- ''
- mkdir -p $out
- cd $out
- unpackFile ${cfg.theme}
- ln -s * default
- '';
- in if cfg.theme == null then "${pkgs.slim}/share/slim/themes" else unpackedTheme;
-
-in
-
{
-
- ###### interface
-
- options = {
-
- services.xserver.displayManager.slim = {
-
- enable = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to enable SLiM as the display manager.
- '';
- };
-
- theme = mkOption {
- type = types.nullOr types.path;
- default = pkgs.fetchurl {
- url = "https://github.com/jagajaga/nixos-slim-theme/archive/2.0.tar.gz";
- sha256 = "0lldizhigx7bjhxkipii87y432hlf5wdvamnfxrryf9z7zkfypc8";
- };
- defaultText = ''pkgs.fetchurl {
- url = "https://github.com/jagajaga/nixos-slim-theme/archive/2.0.tar.gz";
- sha256 = "0lldizhigx7bjhxkipii87y432hlf5wdvamnfxrryf9z7zkfypc8";
- }'';
- example = literalExample ''
- pkgs.fetchurl {
- url = "mirror://sourceforge/slim.berlios/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. TODO: berlios shut down.
- '';
- };
-
- defaultUser = mkOption {
- type = types.nullOr types.str;
- default = null;
- 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.
- '';
- };
-
- autoLogin = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Automatically log in as the default user.
- '';
- };
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = ''
- Extra configuration options for SLiM login manager. Do not
- add options that can be configured directly.
- '';
- };
-
- consoleCmd = mkOption {
- type = types.nullOr types.str;
- default = ''
- ${pkgs.xterm}/bin/xterm -C -fg white -bg black +sb -T "Console login" -e ${pkgs.shadow}/bin/login
- '';
- defaultText = ''
- ''${pkgs.xterm}/bin/xterm -C -fg white -bg black +sb -T "Console login" -e ''${pkgs.shadow}/bin/login
- '';
- description = ''
- The command to run when "console" is given as the username.
- '';
- };
- };
-
- };
-
-
- ###### implementation
-
- config = mkIf cfg.enable {
-
- services.xserver.displayManager.job =
- { environment =
- { SLIM_CFGFILE = slimConfig;
- SLIM_THEMESDIR = slimThemesDir;
- };
- execCmd = "exec ${pkgs.slim}/bin/slim";
- };
-
- services.xserver.displayManager.sessionCommands =
- ''
- # Export the config/themes for slimlock.
- export SLIM_THEMESDIR=${slimThemesDir}
- '';
-
- # Allow null passwords so that the user can login as root on the
- # installation CD.
- security.pam.services.slim = { allowNullPassword = true; startSession = true; };
-
- # Allow slimlock to work.
- security.pam.services.slimlock = {};
-
- environment.systemPackages = [ pkgs.slim ];
-
- };
-
+ # added 2019-11-11
+ imports = [
+ (mkRemovedOptionModule [ "services" "xserver" "displayManager" "slim" ] ''
+ The SLIM project is abandoned and their last release was in 2013.
+ Because of this it poses a security risk to your system.
+ Other issues include it not fully supporting systemd and logind sessions.
+ Please use a different display manager such as LightDM, SDDM, or GDM.
+ You can also use the startx module which uses Xinitrc.
+ '')
+ ];
}
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index a8406544a72f..70f01dbdbf59 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -557,7 +557,6 @@ in
default = !( dmconf.auto.enable
|| dmconf.gdm.enable
|| dmconf.sddm.enable
- || dmconf.slim.enable
|| dmconf.xpra.enable );
in mkIf (default) true;
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index 9e2109d88b5f..1bcab5cab098 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -133,7 +133,6 @@ in rec {
(all nixos.tests.proxy)
(all nixos.tests.sddm.default)
(all nixos.tests.simple)
- (all nixos.tests.slim)
(all nixos.tests.switchTest)
(all nixos.tests.udisks2)
(all nixos.tests.xfce)
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 9db505a27d41..2f480f9ea3e5 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -247,7 +247,6 @@ in
shiori = handleTest ./shiori.nix {};
signal-desktop = handleTest ./signal-desktop.nix {};
simple = handleTest ./simple.nix {};
- slim = handleTest ./slim.nix {};
slurm = handleTest ./slurm.nix {};
smokeping = handleTest ./smokeping.nix {};
snapper = handleTest ./snapper.nix {};
diff --git a/nixos/tests/slim.nix b/nixos/tests/slim.nix
deleted file mode 100644
index 42c87dfa039d..000000000000
--- a/nixos/tests/slim.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-import ./make-test.nix ({ pkgs, ...} : {
- name = "slim";
-
- meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ aszlig ];
- };
-
- machine = { pkgs, ... }: {
- imports = [ ./common/user-account.nix ];
- services.xserver.enable = true;
- services.xserver.windowManager.default = "icewm";
- services.xserver.windowManager.icewm.enable = true;
- services.xserver.desktopManager.default = "none";
- services.xserver.displayManager.slim = {
- enable = true;
-
- # Use a custom theme in order to get best OCR results
- theme = pkgs.runCommand "slim-theme-ocr" {
- nativeBuildInputs = [ pkgs.imagemagick ];
- } ''
- mkdir "$out"
- convert -size 1x1 xc:white "$out/background.jpg"
- convert -size 200x100 xc:white "$out/panel.jpg"
- cat > "$out/slim.theme" <<EOF
- background_color #ffffff
- background_style tile
-
- input_fgcolor #000000
- msg_color #000000
-
- session_color #000000
- session_font Verdana:size=16:bold
-
- username_msg Username:
- username_font Verdana:size=16:bold
- username_color #000000
- username_x 50%
- username_y 40%
-
- password_msg Password:
- password_x 50%
- password_y 40%
- EOF
- '';
- };
- };
-
- enableOCR = true;
-
- testScript = { nodes, ... }: let
- user = nodes.machine.config.users.users.alice;
- in ''
- startAll;
- $machine->waitForText(qr/Username:/);
- $machine->sendChars("${user.name}\n");
- $machine->waitForText(qr/Password:/);
- $machine->sendChars("${user.password}\n");
-
- $machine->waitForFile('${user.home}/.Xauthority');
- $machine->succeed('xauth merge ${user.home}/.Xauthority');
- $machine->waitForWindow('^IceWM ');
-
- # Make sure SLiM doesn't create a log file
- $machine->fail('test -e /var/log/slim.log');
- '';
-})
diff --git a/pkgs/applications/display-managers/slim/default.nix b/pkgs/applications/display-managers/slim/default.nix
deleted file mode 100644
index e504c09e43e6..000000000000
--- a/pkgs/applications/display-managers/slim/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ stdenv, fetchurl, fetchpatch, cmake, pkgconfig, xorg, libjpeg, libpng
-, fontconfig, freetype, pam, dbus, makeWrapper }:
-
-stdenv.mkDerivation rec {
- name = "slim-1.3.6";
-
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/${name}.tar.gz";
- sha256 = "1pqhk22jb4aja4hkrm7rjgbgzjyh7i4zswdgf5nw862l2znzxpi1";
- };
-
- patches =
- [ # Allow the paths of the configuration file and theme directory to
- # be set at runtime.
- ./runtime-paths.patch
-
- # Exit after the user's session has finished. This works around
- # slim's broken PAM session handling (see
- # http://developer.berlios.de/bugs/?func=detailbug&bug_id=19102&group_id=2663).
- ./run-once.patch
-
- # Ensure that sessions appear in sort order, rather than in
- # directory order.
- ./sort-sessions.patch
-
- # Allow to set logfile to a special "/dev/stderr" in order to continue
- # logging to stderr and thus to the journal.
- ./no-logfile.patch
- ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
- url = "https://raw.githubusercontent.com/gentoo/musl/8eddda8072add075ebf56cf6d288bc1450d6b5f8/x11-misc/slim/files/slim-1.3.6-add-missing-libgen_h.patch";
- sha256 = "0f82672s2r2cmdqfn2mbg3di76mbla9n0ik20p2gv4igi6p866xm";
- });
-
- preConfigure = "substituteInPlace CMakeLists.txt --replace /lib $out/lib";
-
- cmakeFlags = [ "-DUSE_PAM=1" ];
-
- NIX_CFLAGS_COMPILE = "-I${freetype.dev}/include/freetype -std=c++11";
-
- enableParallelBuilding = true;
-
- buildInputs =
- [ cmake pkgconfig libjpeg libpng fontconfig freetype
- pam dbus
- xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft makeWrapper
- ];
-
- NIX_CFLAGS_LINK = "-lXmu";
-
- meta = {
- homepage = https://sourceforge.net/projects/slim.berlios/; # berlios shut down; I found no replacement yet
- platforms = stdenv.lib.platforms.linux;
- license = stdenv.lib.licenses.gpl2;
- };
-}
diff --git a/pkgs/applications/display-managers/slim/no-logfile.patch b/pkgs/applications/display-managers/slim/no-logfile.patch
deleted file mode 100644
index f2f5f1549930..000000000000
--- a/pkgs/applications/display-managers/slim/no-logfile.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-diff --git a/log.cpp b/log.cpp
-index b44677a..7c89dda 100644
---- a/log.cpp
-+++ b/log.cpp
-@@ -1,23 +1,31 @@
- #include "log.h"
- #include <iostream>
-+#include <cstring>
-
- bool
- LogUnit::openLog(const char * filename)
- {
-- if (logFile.is_open()) {
-+ if (isFile && logFile.is_open()) {
- cerr << APPNAME
- << ": opening a new Log file, while another is already open"
- << endl;
-- logFile.close();
-+ closeLog();
- }
-- logFile.open(filename, ios_base::app);
-
-- return !(logFile.fail());
-+ if (strcmp(filename, "/dev/stderr") == 0) {
-+ isFile = false;
-+ return true;
-+ } else {
-+ logFile.open(filename, ios_base::app);
-+ isFile = true;
-+ return !(logFile.fail());
-+ }
- }
-
- void
- LogUnit::closeLog()
- {
-+ if (!isFile) return;
- if (logFile.is_open())
- logFile.close();
- }
-diff --git a/log.h b/log.h
-index b7810be..ad548a2 100644
---- a/log.h
-+++ b/log.h
-@@ -9,11 +9,14 @@
- #endif
- #include "const.h"
- #include <fstream>
-+#include <iostream>
-
- using namespace std;
-
- static class LogUnit {
- ofstream logFile;
-+ bool isFile;
-+ inline ostream &getStream() { return isFile ? logFile : cerr; }
- public:
- bool openLog(const char * filename);
- void closeLog();
-@@ -22,17 +25,17 @@ public:
-
- template<typename Type>
- LogUnit & operator<<(const Type & text) {
-- logFile << text; logFile.flush();
-+ getStream() << text; getStream().flush();
- return *this;
- }
-
- LogUnit & operator<<(ostream & (*fp)(ostream&)) {
-- logFile << fp; logFile.flush();
-+ getStream() << fp; getStream().flush();
- return *this;
- }
-
- LogUnit & operator<<(ios_base & (*fp)(ios_base&)) {
-- logFile << fp; logFile.flush();
-+ getStream() << fp; getStream().flush();
- return *this;
- }
- } logStream;
diff --git a/pkgs/applications/display-managers/slim/run-once.patch b/pkgs/applications/display-managers/slim/run-once.patch
deleted file mode 100644
index 78f1454a883e..000000000000
--- a/pkgs/applications/display-managers/slim/run-once.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru -x '*~' slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
---- slim-1.3.6-orig/app.cpp 2013-10-15 11:02:55.629263422 +0200
-+++ slim-1.3.6/app.cpp 2013-10-15 13:00:10.141210784 +0200
-@@ -816,7 +822,7 @@
- StopServer();
- RemoveLock();
- while (waitpid(-1, NULL, WNOHANG) > 0); /* Collects all dead childrens */
-- Run();
-+ exit(OK_EXIT);
- }
-
- void App::KillAllClients(Bool top) {
diff --git a/pkgs/applications/display-managers/slim/runtime-paths.patch b/pkgs/applications/display-managers/slim/runtime-paths.patch
deleted file mode 100644
index 5a8e07bfbf07..000000000000
--- a/pkgs/applications/display-managers/slim/runtime-paths.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff -ru slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
---- slim-1.3.6-orig/app.cpp 2013-10-02 00:38:05.000000000 +0200
-+++ slim-1.3.6/app.cpp 2014-03-30 19:01:04.115414201 +0200
-@@ -200,7 +200,9 @@
-
- /* Read configuration and theme */
- cfg = new Cfg;
-- cfg->readConf(CFGFILE);
-+ char *cfgfile = getenv("SLIM_CFGFILE");
-+ if (!cfgfile) cfgfile = CFGFILE;
-+ cfg->readConf(cfgfile);
- string themebase = "";
- string themefile = "";
- string themedir = "";
-@@ -208,7 +210,9 @@
- if (testing) {
- themeName = testtheme;
- } else {
-- themebase = string(THEMESDIR) + "/";
-+ char *themesdir = getenv("SLIM_THEMESDIR");
-+ if (!themesdir) themesdir = THEMESDIR;
-+ themebase = string(themesdir) + "/";
- themeName = cfg->getOption("current_theme");
- string::size_type pos;
- if ((pos = themeName.find(",")) != string::npos) {
-diff -ru slim-1.3.6-orig/CMakeLists.txt slim-1.3.6/CMakeLists.txt
---- slim-1.3.6-orig/CMakeLists.txt 2013-10-02 00:38:05.000000000 +0200
-+++ slim-1.3.6/CMakeLists.txt 2014-03-30 19:16:48.445069729 +0200
-@@ -23,7 +23,7 @@
-
- set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
- set(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/slim")
--set(SYSCONFDIR "/etc")
-+set(SYSCONFDIR "$ENV{out}/etc")
- set(LIBDIR "/lib")
- set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man")
-
-@@ -40,7 +40,7 @@
- set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPACKAGE=\"slim\"")
- set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DVERSION=\"${SLIM_VERSION}\"")
- set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPKGDATADIR=\"${PKGDATADIR}\"")
--set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"${SYSCONFDIR}\"")
-+set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"/etc\"")
-
- # Flags
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g -O2")
-Only in slim-1.3.6: CMakeLists.txt~
-diff -ru slim-1.3.6-orig/slimlock.cpp slim-1.3.6/slimlock.cpp
---- slim-1.3.6-orig/slimlock.cpp 2013-10-02 00:38:05.000000000 +0200
-+++ slim-1.3.6/slimlock.cpp 2014-03-30 19:01:04.115414201 +0200
-@@ -106,13 +106,17 @@
- unsigned int cfg_passwd_timeout;
- // Read user's current theme
- cfg = new Cfg;
-- cfg->readConf(CFGFILE);
-+ char *cfgfile = getenv("SLIM_CFGFILE");
-+ if (!cfgfile) cfgfile = CFGFILE;
-+ cfg->readConf(cfgfile);
- cfg->readConf(SLIMLOCKCFG);
- string themebase = "";
- string themefile = "";
- string themedir = "";
- themeName = "";
-- themebase = string(THEMESDIR) + "/";
-+ char *themesdir = getenv("SLIM_THEMESDIR");
-+ if (!themesdir) themesdir = THEMESDIR;
-+ themebase = string(themesdir) + "/";
- themeName = cfg->getOption("current_theme");
- string::size_type pos;
- if ((pos = themeName.find(",")) != string::npos) {
diff --git a/pkgs/applications/display-managers/slim/sort-sessions.patch b/pkgs/applications/display-managers/slim/sort-sessions.patch
deleted file mode 100644
index cab5610f44fb..000000000000
--- a/pkgs/applications/display-managers/slim/sort-sessions.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -ru -x '*~' slim-1.3.6-orig/cfg.cpp slim-1.3.6/cfg.cpp
---- slim-1.3.6-orig/cfg.cpp 2013-10-02 00:38:05.000000000 +0200
-+++ slim-1.3.6/cfg.cpp 2016-01-30 10:35:51.108766802 +0100
-@@ -14,6 +14,7 @@
- #include <iostream>
- #include <unistd.h>
- #include <stdlib.h>
-+#include <algorithm>
-
- #include <sys/types.h>
- #include <sys/stat.h>
-@@ -293,6 +294,8 @@
-
- sessions.clear();
-
-+ typedef pair<string,string> session_t;
-+
- if( !strSessionDir.empty() ) {
- DIR *pDir = opendir(strSessionDir.c_str());
-
-@@ -325,7 +328,7 @@
- }
- }
- desktop_file.close();
-- pair<string,string> session(session_name,session_exec);
-+ session_t session(session_name,session_exec);
- sessions.push_back(session);
- cout << session_exec << " - " << session_name << endl;
- }
-@@ -341,6 +344,10 @@
- pair<string,string> session("","");
- sessions.push_back(session);
- }
-+
-+ std::sort(sessions.begin(), sessions.end(), [](session_t& a, session_t& b) -> bool{
-+ return a.first < b.first;
-+ });
- }
-
- pair<string,string> Cfg::nextSession() {
diff --git a/pkgs/applications/display-managers/slim/themes.nix b/pkgs/applications/display-managers/slim/themes.nix
deleted file mode 100644
index b1be24f3e1d6..000000000000
--- a/pkgs/applications/display-managers/slim/themes.nix
+++ /dev/null
@@ -1,183 +0,0 @@
-{ stdenv, fetchurl, slim }:
-
-# Inspired on aspell buildDict expression
-
-let
- buildTheme =
- {fullName, src, version ? "testing"}:
-
- stdenv. mkDerivation rec {
- name = "${fullName}-${version}";
-
- inherit src;
-
- buildInputs = [ slim ];
-
- dontBuild = true;
-
- installPhase = ''
- install -dm755 $out/share/slim/themes/${name}
- install -m644 * $out/share/slim/themes/${name}
- '';
-
- meta = {
- description = "Slim theme for ${fullName}";
- platforms = stdenv.lib.platforms.linux;
- };
- };
-
-in {
-
- archlinuxSimple = buildTheme {
- fullName = "archlinux-simple";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-archlinux-simple.tar.gz";
- sha256 = "7d60d6782fa86302646fe67253467c04692d247f89bdbe87178f690f32b270db";
- };
- };
-
- capernoited = buildTheme {
- fullName = "capernoited";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-capernoited.tar.gz";
- sha256 = "fb9163c6a2656d60f088dc4f2173aa7556a6794495122acfa7d3be7182f16b41";
- };
- };
-
- debianMoreblue = buildTheme {
- fullName = "debian-moreblue";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-debian-moreblue.tar.bz2";
- sha256 = "5b76929827d4a4d604ddca4f42668cca3309b6f7bd659901021c6f49d6d2c481";
- };
- };
-
- fingerprint = buildTheme {
- fullName = "fingerprint";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-fingerprint.tar.gz";
- sha256 = "48b703f84ce7b814cda0824f65cafebf695cd71a14166b481bb44616097d3144";
- };
- };
-
- flat = buildTheme {
- fullName = "flat";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-flat.tar.gz";
- sha256 = "0092d531540f9da8ef07ad173e527c4ef9c088d04962d142be3c11f0c5c0c5e9";
- };
- };
-
- flower2 = buildTheme {
- fullName = "flower2";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-flower2.tar.gz";
- sha256 = "840faf6459ffd6c2c363160c85cb98000717f9a425102976336f5d8f68ed95ee";
- };
- };
-
- gentooSimple = buildTheme {
- fullName = "gentoo-simple";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-gentoo-simple.tar.bz2";
- sha256 = "27c8614cc930ca200acf81f1192febc102501744939d5cbe997141e37c96d8c2";
- };
- };
-
- lake = buildTheme {
- fullName = "lake";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-lake.tar.gz";
- sha256 = "f7d662e37068a6c64cbf910adf3c192f1b50724baa427a8c9487cb9f7ed95851";
- };
- };
-
- lunar = buildTheme {
- fullName = "lunar-0.4";
- version = "";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-lunar-0.4.tar.bz2";
- sha256 = "1543eb45e4d664377e0dd4f7f954aba005823034ba9692624398b3d58be87d76";
- };
- };
-
- mindlock = buildTheme {
- fullName = "mindlock";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-mindlock.tar.gz";
- sha256 = "99a6e6acd55bf55ece18a3f644299517b71c1adc49efd87ce2d7e654fb67033c";
- };
- };
-
- parallelDimensions = buildTheme {
- fullName = "parallel-dimensions";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-parallel-dimensions.tar.gz";
- sha256 = "2b17c3e6d3967a6a0744e20e6e05c9d3938f4ef04c62d49ddbd416bc4743046f";
- };
- };
-
- previous = buildTheme {
- fullName = "previous";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-previous.tar.gz";
- sha256 = "1f2a69f8fc0dc8ed8eb86a4c1d1087ba7be486973fb81efab52a63c661d726f8";
- };
- };
-
- rainbow = buildTheme {
- fullName = "rainbow";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-rainbow.tar.gz";
- sha256 = "d83e3afdb05be50cff7da037bb31208b2c152539d1a009740b13857f5f910072";
- };
- };
-
- rear-window = buildTheme {
- fullName = "rear-window";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-rear-window.tar.gz";
- sha256 = "0b123706ccb67e94f626c183530ec5732b209bab155bc661d6a3f5cd5ee39511";
- };
- };
-
- scotlandRoad = buildTheme {
- fullName = "scotland-road";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-scotland-road.tar.gz";
- sha256 = "fd60a434496ed39b968ffa1e5457b36cd12f64a4e2ecedffc675f97ca3f3bba1";
- };
- };
-
- subway = buildTheme {
- fullName = "subway";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-subway.tar.gz";
- sha256 = "0205568e3e157973b113a83b26d8829ce9962a85ef7eb8a33d3ae2f3f9292253";
- };
- };
-
- wave = buildTheme {
- fullName = "wave";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-wave.tar.gz";
- sha256 = "be75676da5bf8670daa48379bb9cc1be0b9a5faa09adbea967dfd7125320b959";
- };
- };
-
- zenwalk = buildTheme {
- fullName = "zenwalk";
- src = fetchurl {
- url = "mirror://sourceforge/slim.berlios/slim-zenwalk.tar.gz";
- sha256 = "f0f41d17ea505b0aa96a036e978fabaf673a51d3f81a919cb0d43364d4bc7a57";
- };
- };
-
- nixosSlim = buildTheme {
- fullName = "nixos-slim";
- src = fetchurl {
- url = "https://github.com/jagajaga/nixos-slim-theme/archive/2.0.tar.gz";
- sha256 = "0lldizhigx7bjhxkipii87y432hlf5wdvamnfxrryf9z7zkfypc8";
- };
- };
-}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 262304cdbf0c..99d412da8c17 100644
--- a/