Makes a .desktop startup item from a .desktop menu entry.
svn path=/nixpkgs/trunk/; revision=31958
This commit is contained in:
parent
4b45a0bfc3
commit
acda2c1967
34
pkgs/build-support/make-startupitem/default.nix
Normal file
34
pkgs/build-support/make-startupitem/default.nix
Normal file
@ -0,0 +1,34 @@
|
||||
# given a pakcage with a $name.desktop file, makes a copy
|
||||
# as autostart item.
|
||||
|
||||
{stdenv, lib}:
|
||||
{ name # name of the desktop file (without .desktop)
|
||||
, package # package where the desktop file resides in
|
||||
, after ? null
|
||||
, condition ? null
|
||||
, phase ? "2"
|
||||
}:
|
||||
|
||||
# the builder requires that
|
||||
# $package/share/applications/$name.desktop
|
||||
# exists as file.
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "autostart-${name}";
|
||||
priority = 5;
|
||||
|
||||
buildCommand = ''
|
||||
ensureDir $out/share/autostart
|
||||
target=${name}.desktop
|
||||
cp ${package}/share/applications/${name}.desktop $target
|
||||
chmod +rw $target
|
||||
echo "X-KDE-autostart-phase=${phase}" >> $target
|
||||
${lib.optionalString (after != null) ''echo "${after}" >> $target''}
|
||||
${lib.optionalString (condition != null) ''echo "${condition}" >> $target''}
|
||||
cp $target $out/share/autostart
|
||||
'';
|
||||
|
||||
# this will automatically put 'package' in the environment when you
|
||||
# put its startup item in there.
|
||||
propagatedBuildInputs = [ package ];
|
||||
}
|
Loading…
Reference in New Issue
Block a user