mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-03-14 18:18:59 +00:00
programs/pop-launcher: revise home-manager module
Now, it assumes it uses a patched version of the pop-launcher where it includes the store path as one of the search paths for its plugins and scripts.
This commit is contained in:
parent
b80a0c50aa
commit
bdf2208ddf
@ -3,29 +3,11 @@
|
|||||||
let
|
let
|
||||||
cfg = config.programs.pop-launcher;
|
cfg = config.programs.pop-launcher;
|
||||||
|
|
||||||
# This assumes the package contains the built-in plugins being symlinked to
|
|
||||||
# the main binary with absolute paths. Most sensibly, the nixpkgs builder
|
|
||||||
# will rewrite symlinks relative to its output directory. Since we're putting
|
|
||||||
# them outside of its output directory, we'll have to stop it from doing
|
|
||||||
# that.
|
|
||||||
package = cfg.package.overrideAttrs (prev: {
|
|
||||||
dontRewriteSymlinks = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
# Some plugins may be packaged ala-busybox with multiple plugins coming from
|
|
||||||
# the same binary. Similar reasons as to why we don't want to rewrite
|
|
||||||
# symlinks with the main package.
|
|
||||||
plugins = lib.map
|
|
||||||
(p: p.overrideAttrs (prev: {
|
|
||||||
dontRewriteSymlinks = true;
|
|
||||||
}))
|
|
||||||
cfg.plugins;
|
|
||||||
|
|
||||||
# Plugins and scripts are assumed to be packaged at
|
# Plugins and scripts are assumed to be packaged at
|
||||||
# `$out/share/pop-launcher`.
|
# `$out/share/pop-launcher`.
|
||||||
pluginsDir = pkgs.symlinkJoin {
|
pluginsDir = pkgs.symlinkJoin {
|
||||||
name = "pop-launcher-plugins-system";
|
name = "pop-launcher-plugins-system";
|
||||||
paths = builtins.map (p: "${p}/share/pop-launcher") (plugins ++ [ package ]);
|
paths = builtins.map (p: "${p}/share/pop-launcher") cfg.plugins;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@ -49,6 +31,13 @@ in
|
|||||||
description = ''
|
description = ''
|
||||||
The package where {command}`pop-launcher` binary and
|
The package where {command}`pop-launcher` binary and
|
||||||
built-in plugins are expected.
|
built-in plugins are expected.
|
||||||
|
|
||||||
|
::: {.note}
|
||||||
|
The package is assumed to have been patched to search for the
|
||||||
|
derivation output path (at `$out/share/pop-launcher`) instead of the
|
||||||
|
distribution plugins path (at `/usr/lib/pop-launcher`). Otherwise, the
|
||||||
|
built-in plugins will not show up in the launcher frontend.
|
||||||
|
:::
|
||||||
'';
|
'';
|
||||||
default = pkgs.pop-launcher;
|
default = pkgs.pop-launcher;
|
||||||
};
|
};
|
||||||
@ -57,7 +46,9 @@ in
|
|||||||
type = lib.types.listOf lib.types.package;
|
type = lib.types.listOf lib.types.package;
|
||||||
description = ''
|
description = ''
|
||||||
List of packages containing Pop launcher plugins and scripts to be
|
List of packages containing Pop launcher plugins and scripts to be
|
||||||
installed as system-wide plugins.
|
installed as system-wide plugins. The launcher plugins and scripts of
|
||||||
|
each listed package are assumed to be installed at
|
||||||
|
`$out/share/pop-launcher`.
|
||||||
'';
|
'';
|
||||||
default = [ ];
|
default = [ ];
|
||||||
defaultText = "[]";
|
defaultText = "[]";
|
||||||
@ -75,6 +66,6 @@ in
|
|||||||
# properly setting in `xdg.dataFile`.
|
# properly setting in `xdg.dataFile`.
|
||||||
home.file.".local/share/pop-launcher".source = pluginsDir;
|
home.file.".local/share/pop-launcher".source = pluginsDir;
|
||||||
|
|
||||||
home.packages = [ package ];
|
home.packages = [ cfg.package ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user