Merge pull request #73251 from worldofpeace/remove-slim
nixos/slim: remove
This commit is contained in:
commit
4583e293fd
@ -39,7 +39,7 @@
|
||||
can select an alternative one by picking one of the following lines:
|
||||
<programlisting>
|
||||
<xref linkend="opt-services.xserver.displayManager.sddm.enable"/> = true;
|
||||
<xref linkend="opt-services.xserver.displayManager.slim.enable"/> = true;
|
||||
<xref linkend="opt-services.xserver.displayManager.gdm.enable"/> = true;
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>
|
||||
|
@ -99,7 +99,7 @@ xlink:href="https://nixos.org/nixpkgs/manual/#sec-package-naming">
|
||||
<para>
|
||||
As an example, we will take the case of display managers. There is a central
|
||||
display manager module for generic display manager options and a module file
|
||||
per display manager backend (slim, sddm, gdm ...).
|
||||
per display manager backend (sddm, gdm ...).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -146,7 +146,7 @@ xlink:href="https://nixos.org/nixpkgs/manual/#sec-package-naming">
|
||||
/>), and to extend
|
||||
it in each backend module
|
||||
(<xref
|
||||
linkend='ex-option-declaration-eot-backend-slim' />,
|
||||
linkend='ex-option-declaration-eot-backend-gdm' />,
|
||||
<xref
|
||||
linkend='ex-option-declaration-eot-backend-sddm' />).
|
||||
</para>
|
||||
@ -167,11 +167,11 @@ services.xserver.displayManager.enable = mkOption {
|
||||
};</screen>
|
||||
</example>
|
||||
|
||||
<example xml:id='ex-option-declaration-eot-backend-slim'>
|
||||
<title>Extending <literal>services.xserver.displayManager.enable</literal> in the <literal>slim</literal> module</title>
|
||||
<example xml:id='ex-option-declaration-eot-backend-gdm'>
|
||||
<title>Extending <literal>services.xserver.displayManager.enable</literal> in the <literal>gdm</literal> module</title>
|
||||
<screen>
|
||||
services.xserver.displayManager.enable = mkOption {
|
||||
type = with types; nullOr (enum [ "slim" ]);
|
||||
type = with types; nullOr (enum [ "gdm" ]);
|
||||
};</screen>
|
||||
</example>
|
||||
|
||||
|
@ -135,6 +135,13 @@
|
||||
<link linkend="opt-networking.interfaces">networking.interfaces.<name>.…</link> options.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The SLIM Display Manager has been removed, as it has been unmaintained since 2013.
|
||||
Consider migrating to a different display manager such as LightDM (current default in NixOS),
|
||||
SDDM, GDM, or using the startx module which uses Xinitrc.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
|
@ -261,7 +261,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;
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -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 ];
|
||||
|
@ -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.";
|
||||
};
|
||||
|
||||
|
@ -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.
|
||||
'')
|
||||
];
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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)
|
||||
|
@ -248,7 +248,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 {};
|
||||
|
@ -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');
|
||||
'';
|
||||
})
|
@ -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;
|
||||
};
|
||||
}
|
@ -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;
|
@ -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) {
|
@ -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) {
|
@ -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() {
|
@ -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";
|
||||
};
|
||||
};
|
||||
}
|
@ -351,6 +351,8 @@ mapAliases ({
|
||||
slurm-llnl-full = slurm-full; # renamed July 2017
|
||||
slurm-full = slurm; # added 2018-05-1
|
||||
smbclient = samba; # added 2018-04-25
|
||||
slim = throw "slim has been removed. Please use a different display-manager"; # added 2019-11-11
|
||||
slimThemes = throw "slimThemes has been removed because slim has been also"; # added 2019-11-11
|
||||
spaceOrbit = space-orbit; # addewd 2016-05-23
|
||||
speech_tools = speech-tools; # added 2018-04-25
|
||||
speedtest_cli = speedtest-cli; # added 2015-02-17
|
||||
|
@ -21120,16 +21120,10 @@ in
|
||||
|
||||
skrooge = libsForQt5.callPackage ../applications/office/skrooge {};
|
||||
|
||||
slim = callPackage ../applications/display-managers/slim {
|
||||
libpng = libpng12;
|
||||
};
|
||||
|
||||
smartgithg = callPackage ../applications/version-management/smartgithg {
|
||||
jre = openjdk11;
|
||||
};
|
||||
|
||||
slimThemes = recurseIntoAttrs (callPackage ../applications/display-managers/slim/themes.nix {});
|
||||
|
||||
smartdeblur = callPackage ../applications/graphics/smartdeblur { };
|
||||
|
||||
snapper = callPackage ../tools/misc/snapper { };
|
||||
|
Loading…
Reference in New Issue
Block a user