lomiri.lomiri-gsettings-overrides: init
Override the default for the launcher icon this way. Wallpaper would be settable too, but at least the VM tests don't seem happy with changing the wallpaper in any way.
This commit is contained in:
parent
7d7f260892
commit
69d04f6780
@ -7,6 +7,9 @@
|
||||
|
||||
let
|
||||
cfg = config.services.desktopManager.lomiri;
|
||||
nixos-gsettings-overrides = pkgs.lomiri.lomiri-gsettings-overrides.override {
|
||||
inherit (cfg) extraGSettingsOverrides extraGSettingsOverridePackages;
|
||||
};
|
||||
in
|
||||
{
|
||||
options.services.desktopManager.lomiri = {
|
||||
@ -22,6 +25,18 @@ in
|
||||
type = lib.types.bool;
|
||||
default = config.services.xserver.displayManager.lightdm.greeters.lomiri.enable || cfg.enable;
|
||||
};
|
||||
|
||||
extraGSettingsOverrides = lib.mkOption {
|
||||
description = "Additional GSettings overrides.";
|
||||
type = lib.types.lines;
|
||||
default = "";
|
||||
};
|
||||
|
||||
extraGSettingsOverridePackages = lib.mkOption {
|
||||
description = "List of packages for which GSettings are overridden.";
|
||||
type = lib.types.listOf lib.types.path;
|
||||
default = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkMerge [
|
||||
@ -43,10 +58,17 @@ in
|
||||
"/share/wallpapers"
|
||||
];
|
||||
|
||||
systemPackages = with pkgs.lomiri; [
|
||||
lomiri-wallpapers # default + additional wallpaper
|
||||
suru-icon-theme # basic indicator icons
|
||||
];
|
||||
# Override GSettings defaults
|
||||
sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
|
||||
|
||||
systemPackages =
|
||||
[
|
||||
nixos-gsettings-overrides # GSettings default overrides
|
||||
]
|
||||
++ (with pkgs.lomiri; [
|
||||
lomiri-wallpapers # default + additional wallpaper
|
||||
suru-icon-theme # basic indicator icons
|
||||
]);
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
|
@ -0,0 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
runCommand,
|
||||
glib,
|
||||
lomiri-schemas,
|
||||
lomiri-wallpapers,
|
||||
nixos-icons,
|
||||
writeText,
|
||||
extraGSettingsOverrides ? "",
|
||||
extraGSettingsOverridePackages ? [ ],
|
||||
nixos-artwork,
|
||||
}:
|
||||
|
||||
let
|
||||
# Overriding the background picture should be possible, but breaks within the VM tests.
|
||||
# It results in either a grey background (prolly indicating an error somewhere)
|
||||
# or hangs the session (also happens when using LSS, which sets it via AccountsService).
|
||||
#
|
||||
# So we can only override the launcher button details.
|
||||
# Button colour: https://github.com/NixOS/nixos-artwork/blob/51a27e4a011e95cb559e37d32c44cf89b50f5154/logo/README.md#colours
|
||||
gsettingsOverrides = writeText "lomiri-gschema-overrides" ''
|
||||
[com.lomiri.Shell.Launcher]
|
||||
logo-picture-uri='file://${nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg'
|
||||
home-button-background-color='#5277C3'
|
||||
|
||||
${extraGSettingsOverrides}
|
||||
'';
|
||||
|
||||
gsettingsOverridePackages = [
|
||||
lomiri-schemas
|
||||
] ++ extraGSettingsOverridePackages;
|
||||
in
|
||||
runCommand "lomiri-gsettings-overrides" { preferLocalBuild = true; } ''
|
||||
dataDir="$out/share/gsettings-schemas/nixos-gsettings-overrides"
|
||||
schemaDir="$dataDir/glib-2.0/schemas"
|
||||
mkdir -p "$schemaDir"
|
||||
|
||||
${lib.strings.concatMapStringsSep "\n" (
|
||||
pkg:
|
||||
"cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"${glib.getSchemaPath pkg}\"/*.gschema.override \"$schemaDir\""
|
||||
) gsettingsOverridePackages}
|
||||
|
||||
chmod -R a+w "$dataDir"
|
||||
cp --no-preserve=mode "${gsettingsOverrides}" "$schemaDir/zz-nixos-defaults.gschema.override"
|
||||
|
||||
${lib.getExe' glib.dev "glib-compile-schemas"} --strict "$schemaDir" | tee gcs.log
|
||||
|
||||
if grep 'No schema files found' gcs.log >/dev/null; then
|
||||
exit 1
|
||||
fi
|
||||
''
|
@ -31,6 +31,7 @@ let
|
||||
teleports = callPackage ./applications/teleports { };
|
||||
|
||||
#### Data
|
||||
lomiri-gsettings-overrides = callPackage ./data/lomiri-gsettings-overrides { };
|
||||
lomiri-schemas = callPackage ./data/lomiri-schemas { };
|
||||
lomiri-session = callPackage ./data/lomiri-session { };
|
||||
lomiri-sounds = callPackage ./data/lomiri-sounds { };
|
||||
|
Loading…
x
Reference in New Issue
Block a user