The top-level "wayfire" attribute is a Wayfire with wf-shell installed and nothing else. But wayfireApplications.withPlugins can be used to create a Wayfire with arbitrary plugins, or no plugins at all.wip/yesman
parent
e2243140f9
commit
c898defdbf
@ -0,0 +1,23 @@ |
||||
{ newScope, wayfirePlugins }: |
||||
|
||||
let |
||||
self = with self; { |
||||
inherit wayfirePlugins; |
||||
|
||||
callPackage = newScope self; |
||||
|
||||
wayfire = callPackage ./. { }; |
||||
|
||||
wcm = callPackage ./wcm.nix { |
||||
inherit (wayfirePlugins) wf-shell; |
||||
}; |
||||
|
||||
wrapWayfireApplication = callPackage ./wrapper.nix { }; |
||||
|
||||
withPlugins = selector: self // { |
||||
wayfire = wrapWayfireApplication wayfire selector; |
||||
wcm = wrapWayfireApplication wcm selector; |
||||
}; |
||||
}; |
||||
in |
||||
self |
@ -0,0 +1,12 @@ |
||||
{ newScope, wayfire }: |
||||
|
||||
let |
||||
self = with self; { |
||||
inherit wayfire; |
||||
|
||||
callPackage = newScope self; |
||||
|
||||
wf-shell = callPackage ./wf-shell.nix { }; |
||||
}; |
||||
in |
||||
self |
@ -0,0 +1,39 @@ |
||||
{ runCommandNoCC, lib, makeWrapper, wayfirePlugins }: |
||||
|
||||
let |
||||
inherit (lib) escapeShellArg makeBinPath; |
||||
|
||||
xmlPath = plugin: "${plugin}/share/wayfire/metadata/wf-shell"; |
||||
|
||||
makePluginPath = lib.makeLibraryPath; |
||||
makePluginXMLPath = lib.concatMapStringsSep ":" xmlPath; |
||||
in |
||||
|
||||
application: |
||||
|
||||
choosePlugins: |
||||
|
||||
let |
||||
plugins = choosePlugins wayfirePlugins; |
||||
in |
||||
|
||||
runCommandNoCC "${application.name}-wrapped" { |
||||
nativeBuildInputs = [ makeWrapper ]; |
||||
|
||||
passthru = application.passthru // { |
||||
unwrapped = application; |
||||
}; |
||||
|
||||
inherit (application) meta; |
||||
} '' |
||||
mkdir -p $out/bin |
||||
for bin in ${application}/bin/* |
||||
do |
||||
makeWrapper "$bin" $out/bin/''${bin##*/} \ |
||||
--suffix PATH : ${escapeShellArg (makeBinPath plugins)} \ |
||||
--suffix WAYFIRE_PLUGIN_PATH : ${escapeShellArg (makePluginPath plugins)} \ |
||||
--suffix WAYFIRE_PLUGIN_XML_PATH : ${escapeShellArg (makePluginXMLPath plugins)} |
||||
done |
||||
find ${application} -mindepth 1 -maxdepth 1 -not -name bin \ |
||||
-exec ln -s '{}' $out ';' |
||||
'' |
Loading…
Reference in new issue