tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
Ensure that slim's theme applies to slimlock
Eelco Dolstra
12 years ago
0fdd641b
d084be99
+38
-46
3 changed files
expand all
collapse all
unified
split
nixos
modules
services
x11
display-managers
slim.nix
pkgs
applications
display-managers
slim
default.nix
runtime-paths.patch
+9
-21
nixos/modules/services/x11/display-managers/slim.nix
···
7
7
dmcfg = config.services.xserver.displayManager;
8
8
9
9
cfg = dmcfg.slim;
10
10
-
11
11
-
slimPackage = cfg.package;
12
10
13
11
slimConfig = pkgs.writeText "slim.cfg"
14
12
''
···
35
33
ln -s * default
36
34
'';
37
35
};
38
38
-
in if cfg.theme == null then "${slimPackage}/share/slim/themes" else unpackedTheme;
36
36
+
in if cfg.theme == null then "${pkgs.slim}/share/slim/themes" else unpackedTheme;
39
37
40
38
in
41
39
···
82
80
the focus is placed on the password.
83
81
'';
84
82
};
85
85
-
86
86
-
package = mkOption {
87
87
-
type = types.package;
88
88
-
default = pkgs.slim;
89
89
-
description = ''
90
90
-
Configure slim package.
91
91
-
'';
92
92
-
example = ''
93
93
-
pkgs.slim.override {
94
94
-
theme = pkgs.fetchurl {
95
95
-
url = http://download.berlios.de/slim/slim-wave.tar.gz;
96
96
-
sha256 = "0ndr419i5myzcylvxb89m9grl2xyq6fbnyc3lkd711mzlmnnfxdy";
97
97
-
};
98
98
-
};
99
99
-
'';
100
100
-
};
101
83
102
84
autoLogin = mkOption {
103
85
type = types.bool;
···
125
107
{ SLIM_CFGFILE = slimConfig;
126
108
SLIM_THEMESDIR = slimThemesDir;
127
109
};
128
128
-
execCmd = "exec ${slimPackage}/bin/slim";
110
110
+
execCmd = "exec ${pkgs.slim}/bin/slim";
129
111
};
130
112
113
113
+
services.xserver.displayManager.sessionCommands =
114
114
+
''
115
115
+
# Export the config/themes for slimlock.
116
116
+
export SLIM_THEMESDIR=${slimThemesDir}
117
117
+
'';
118
118
+
131
119
# Allow null passwords so that the user can login as root on the
132
120
# installation CD.
133
121
security.pam.services.slim = { allowNullPassword = true; startSession = true; };
···
135
123
# Allow slimlock to work.
136
124
security.pam.services.slimlock = {};
137
125
138
138
-
environment.systemPackages = [ slimPackage ];
126
126
+
environment.systemPackages = [ pkgs.slim ];
139
127
140
128
};
141
129
+2
-21
pkgs/applications/display-managers/slim/default.nix
···
1
1
{ stdenv, fetchurl, cmake, pkgconfig, xorg, libjpeg, libpng
2
2
-
, fontconfig, freetype, pam, dbus_libs, makeWrapper, pkgs, theme ? null }:
3
3
-
4
4
-
let
5
5
-
slimThemesDir =
6
6
-
let
7
7
-
unpackedTheme = pkgs.stdenv.mkDerivation {
8
8
-
name = "slim-theme";
9
9
-
buildCommand = ''
10
10
-
ensureDir $out
11
11
-
cd $out
12
12
-
unpackFile ${theme}
13
13
-
ln -s * default
14
14
-
'';
15
15
-
};
16
16
-
in if theme == null then "$out/share/slim/themes" else unpackedTheme;
17
17
-
in
2
2
+
, fontconfig, freetype, pam, dbus_libs, makeWrapper, pkgs }:
18
3
19
4
stdenv.mkDerivation rec {
20
5
name = "slim-1.3.6";
···
35
20
./run-once.patch
36
21
];
37
22
38
38
-
preConfigure = "substituteInPlace CMakeLists.txt --replace /etc $out/etc --replace /lib $out/lib";
23
23
+
preConfigure = "substituteInPlace CMakeLists.txt --replace /lib $out/lib";
39
24
40
25
cmakeFlags = [ "-DUSE_PAM=1" ];
41
26
···
46
31
pam dbus_libs
47
32
xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft makeWrapper
48
33
];
49
49
-
50
50
-
postInstall = ''
51
51
-
wrapProgram $out/bin/slimlock --set SLIM_THEMESDIR "${slimThemesDir}" --set SLIM_CFGFILE "$out/etc/slim.cfg"
52
52
-
'';
53
34
54
35
NIX_CFLAGS_LINK = "-lXmu";
55
36
+27
-4
pkgs/applications/display-managers/slim/runtime-paths.patch
···
1
1
-
diff -ru -x '*~' slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
1
1
+
diff -ru slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
2
2
--- slim-1.3.6-orig/app.cpp 2013-10-02 00:38:05.000000000 +0200
3
3
-
+++ slim-1.3.6/app.cpp 2013-10-15 11:02:55.629263422 +0200
3
3
+
+++ slim-1.3.6/app.cpp 2014-03-30 19:01:04.115414201 +0200
4
4
@@ -200,7 +200,9 @@
5
5
6
6
/* Read configuration and theme */
···
23
23
themeName = cfg->getOption("current_theme");
24
24
string::size_type pos;
25
25
if ((pos = themeName.find(",")) != string::npos) {
26
26
-
--- slim-1.3.6-orig/slimlock.cpp 2014-02-05 01:58:01.576560731 +0400
27
27
-
+++ slim-1.3.6/slimlock.cpp 2014-02-05 02:11:16.587634246 +0400
26
26
+
diff -ru slim-1.3.6-orig/CMakeLists.txt slim-1.3.6/CMakeLists.txt
27
27
+
--- slim-1.3.6-orig/CMakeLists.txt 2013-10-02 00:38:05.000000000 +0200
28
28
+
+++ slim-1.3.6/CMakeLists.txt 2014-03-30 19:16:48.445069729 +0200
29
29
+
@@ -23,7 +23,7 @@
30
30
+
31
31
+
set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
32
32
+
set(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/slim")
33
33
+
-set(SYSCONFDIR "/etc")
34
34
+
+set(SYSCONFDIR "$ENV{out}/etc")
35
35
+
set(LIBDIR "/lib")
36
36
+
set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man")
37
37
+
38
38
+
@@ -40,7 +40,7 @@
39
39
+
set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPACKAGE=\"slim\"")
40
40
+
set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DVERSION=\"${SLIM_VERSION}\"")
41
41
+
set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPKGDATADIR=\"${PKGDATADIR}\"")
42
42
+
-set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"${SYSCONFDIR}\"")
43
43
+
+set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"/etc\"")
44
44
+
45
45
+
# Flags
46
46
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g -O2")
47
47
+
Only in slim-1.3.6: CMakeLists.txt~
48
48
+
diff -ru slim-1.3.6-orig/slimlock.cpp slim-1.3.6/slimlock.cpp
49
49
+
--- slim-1.3.6-orig/slimlock.cpp 2013-10-02 00:38:05.000000000 +0200
50
50
+
+++ slim-1.3.6/slimlock.cpp 2014-03-30 19:01:04.115414201 +0200
28
51
@@ -106,13 +106,17 @@
29
52
unsigned int cfg_passwd_timeout;
30
53
// Read user's current theme