diff options
author | Arseniy Seroka <ars.seroka@gmail.com> | 2014-02-05 16:44:59 +0400 |
---|---|---|
committer | Arseniy Seroka <ars.seroka@gmail.com> | 2014-02-05 16:46:42 +0400 |
commit | d573ea576fce2c86f8d706b9048c2d72ad12b703 (patch) | |
tree | 8b4586d756ade3374be3f4f46466047a570c1f9a /pkgs/applications/display-managers/slim | |
parent | b9fe0b8fb10bdc25d62fc766f04f2235205e1ef9 (diff) | |
download | nixlib-d573ea576fce2c86f8d706b9048c2d72ad12b703.tar nixlib-d573ea576fce2c86f8d706b9048c2d72ad12b703.tar.gz nixlib-d573ea576fce2c86f8d706b9048c2d72ad12b703.tar.bz2 nixlib-d573ea576fce2c86f8d706b9048c2d72ad12b703.tar.lz nixlib-d573ea576fce2c86f8d706b9048c2d72ad12b703.tar.xz nixlib-d573ea576fce2c86f8d706b9048c2d72ad12b703.tar.zst nixlib-d573ea576fce2c86f8d706b9048c2d72ad12b703.zip |
add normal theme support for slim and slimlock
Diffstat (limited to 'pkgs/applications/display-managers/slim')
-rw-r--r-- | pkgs/applications/display-managers/slim/default.nix | 23 | ||||
-rw-r--r-- | pkgs/applications/display-managers/slim/runtime-paths.patch | 22 |
2 files changed, 43 insertions, 2 deletions
diff --git a/pkgs/applications/display-managers/slim/default.nix b/pkgs/applications/display-managers/slim/default.nix index 0b5bcccfb21a..caf8a7c4222e 100644 --- a/pkgs/applications/display-managers/slim/default.nix +++ b/pkgs/applications/display-managers/slim/default.nix @@ -1,5 +1,20 @@ { stdenv, fetchurl, cmake, pkgconfig, xorg, libjpeg, libpng -, fontconfig, freetype, pam, dbus_libs }: +, fontconfig, freetype, pam, dbus_libs, makeWrapper, pkgs, theme ? null }: + +let + slimThemesDir = + let + unpackedTheme = pkgs.stdenv.mkDerivation { + name = "slim-theme"; + buildCommand = '' + ensureDir $out + cd $out + unpackFile ${theme} + ln -s * default + ''; + }; + in if theme == null then "$out/share/slim/themes" else unpackedTheme; +in stdenv.mkDerivation rec { name = "slim-1.3.6"; @@ -29,9 +44,13 @@ stdenv.mkDerivation rec { buildInputs = [ cmake pkgconfig libjpeg libpng fontconfig freetype pam dbus_libs - xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft + xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft makeWrapper ]; + postInstall = '' + wrapProgram $out/bin/slimlock --set SLIM_THEMESDIR "${slimThemesDir}" --set SLIM_CFGFILE "$out/etc/slim.cfg" + ''; + NIX_CFLAGS_LINK = "-lXmu"; meta = { diff --git a/pkgs/applications/display-managers/slim/runtime-paths.patch b/pkgs/applications/display-managers/slim/runtime-paths.patch index f6811dbe6682..2e4868092e56 100644 --- a/pkgs/applications/display-managers/slim/runtime-paths.patch +++ b/pkgs/applications/display-managers/slim/runtime-paths.patch @@ -23,3 +23,25 @@ diff -ru -x '*~' slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp themeName = cfg->getOption("current_theme"); string::size_type pos; if ((pos = themeName.find(",")) != string::npos) { +--- slim-1.3.6-orig/slimlock.cpp 2014-02-05 01:58:01.576560731 +0400 ++++ slim-1.3.6/slimlock.cpp 2014-02-05 02:11:16.587634246 +0400 +@@ -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) { |