regreet: use mkTarget (#1598)
Link: https://github.com/nix-community/stylix/pull/1598 Reviewed-by: awwpotato <awwpotato@voidq.com> Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
This commit is contained in:
parent
ca8aa99545
commit
c538d1a357
1 changed files with 74 additions and 54 deletions
|
|
@ -1,63 +1,83 @@
|
|||
{
|
||||
mkTarget,
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.stylix.targets.regreet;
|
||||
in
|
||||
{
|
||||
options.stylix.targets.regreet = {
|
||||
enable = config.lib.stylix.mkEnableTarget "ReGreet" true;
|
||||
useWallpaper = config.lib.stylix.mkEnableWallpaper "ReGreet" true;
|
||||
};
|
||||
mkTarget {
|
||||
name = "regreet";
|
||||
humanName = "ReGreet";
|
||||
|
||||
config =
|
||||
lib.mkIf
|
||||
(config.stylix.enable && cfg.enable && pkgs.stdenv.hostPlatform.isLinux)
|
||||
{
|
||||
warnings =
|
||||
let
|
||||
cfg = config.programs.regreet;
|
||||
in
|
||||
lib.optional
|
||||
(
|
||||
cfg.enable
|
||||
&&
|
||||
# defined in https://github.com/NixOS/nixpkgs/blob/8f3e1f807051e32d8c95cd12b9b421623850a34d/nixos/modules/programs/regreet.nix#L153
|
||||
config.services.greetd.settings.default_session.command
|
||||
!= "${lib.getExe' pkgs.dbus "dbus-run-session"} ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${lib.getExe cfg.package}"
|
||||
)
|
||||
"stylix: regreet: custom services.greetd.settings.default_session.command value may not work: ${config.services.greetd.settings.default_session.command}";
|
||||
programs.regreet = {
|
||||
settings.GTK.application_prefer_dark_theme = config.stylix.polarity == "dark";
|
||||
settings.background = lib.mkIf cfg.useWallpaper {
|
||||
path = config.stylix.image;
|
||||
fit =
|
||||
let
|
||||
inherit (config.stylix) imageScalingMode;
|
||||
in
|
||||
if imageScalingMode == "fill" then
|
||||
"Cover"
|
||||
else if imageScalingMode == "fit" then
|
||||
"Contain"
|
||||
else if imageScalingMode == "stretch" then
|
||||
"Fill"
|
||||
# No other available options
|
||||
else
|
||||
null;
|
||||
};
|
||||
font = {
|
||||
inherit (config.stylix.fonts.sansSerif) name package;
|
||||
};
|
||||
cursorTheme = lib.mkIf (config.stylix.cursor != null) {
|
||||
inherit (config.stylix.cursor) name package;
|
||||
};
|
||||
theme = {
|
||||
package = pkgs.adw-gtk3;
|
||||
name = "adw-gtk3";
|
||||
};
|
||||
};
|
||||
autoEnable = pkgs.stdenv.hostPlatform.isLinux;
|
||||
autoEnableExpr = "pkgs.stdenv.hostPlatform.isLinux";
|
||||
|
||||
extraOptions.useWallpaper = config.lib.stylix.mkEnableWallpaper "ReGreet" true;
|
||||
|
||||
configElements = [
|
||||
{
|
||||
warnings =
|
||||
let
|
||||
cfg = config.programs.regreet;
|
||||
in
|
||||
lib.optional
|
||||
(
|
||||
cfg.enable
|
||||
&&
|
||||
# defined in https://github.com/NixOS/nixpkgs/blob/8f3e1f807051e32d8c95cd12b9b421623850a34d/nixos/modules/programs/regreet.nix#L153
|
||||
config.services.greetd.settings.default_session.command
|
||||
!= "${lib.getExe' pkgs.dbus "dbus-run-session"} ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${lib.getExe cfg.package}"
|
||||
)
|
||||
"stylix: regreet: custom services.greetd.settings.default_session.command value may not work: ${config.services.greetd.settings.default_session.command}";
|
||||
programs.regreet.theme = {
|
||||
package = pkgs.adw-gtk3;
|
||||
name = "adw-gtk3";
|
||||
};
|
||||
}
|
||||
(
|
||||
{ polarity }:
|
||||
{
|
||||
programs.regreet.settings.GTK.application_prefer_dark_theme =
|
||||
polarity == "dark";
|
||||
}
|
||||
)
|
||||
(
|
||||
{ cfg, image }:
|
||||
{
|
||||
programs.regreet.settings.background.path = lib.mkIf cfg.useWallpaper image;
|
||||
}
|
||||
)
|
||||
(
|
||||
{ cfg, imageScalingMode }:
|
||||
{
|
||||
programs.regreet.settings.background.fit = lib.mkIf cfg.useWallpaper (
|
||||
if imageScalingMode == "fill" then
|
||||
"Cover"
|
||||
else if imageScalingMode == "fit" then
|
||||
"Contain"
|
||||
else if imageScalingMode == "stretch" then
|
||||
"Fill"
|
||||
# No other available options
|
||||
else
|
||||
null
|
||||
);
|
||||
}
|
||||
)
|
||||
(
|
||||
{ fonts }:
|
||||
{
|
||||
programs.regreet.font = {
|
||||
inherit (fonts.sansSerif) name package;
|
||||
};
|
||||
}
|
||||
)
|
||||
(
|
||||
{ cursor }:
|
||||
{
|
||||
programs.regreet.cursorTheme = {
|
||||
inherit (cursor) name package;
|
||||
};
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue