Loading nixos/modules/services/desktop-managers/lomiri.nix +18 −24 Original line number Diff line number Diff line Loading @@ -7,9 +7,6 @@ let cfg = config.services.desktopManager.lomiri; nixos-gsettings-overrides = pkgs.lomiri.lomiri-gsettings-overrides.override { inherit (cfg) extraGSettingsOverrides extraGSettingsOverridePackages; }; in { options.services.desktopManager.lomiri = { Loading @@ -25,18 +22,6 @@ 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 [ Loading @@ -58,16 +43,26 @@ in "/share/wallpapers" ]; # 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; [ systemPackages = with pkgs.lomiri; [ lomiri-wallpapers # default + additional wallpaper suru-icon-theme # basic indicator icons ]); ]; }; # Override GSettings defaults programs.dconf = { enable = true; profiles.user.databases = [ { settings = { "com/lomiri/shell/launcher" = { logo-picture-uri = "file://${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg"; home-button-background-color = "#5277C3"; }; }; lockAll = true; } ]; }; fonts.packages = with pkgs; [ Loading Loading @@ -156,7 +151,6 @@ in # Copy-pasted basic stuff hardware.graphics.enable = lib.mkDefault true; fonts.enableDefaultPackages = lib.mkDefault true; programs.dconf.enable = lib.mkDefault true; services.accounts-daemon.enable = true; Loading nixos/tests/lomiri.nix +22 −50 Original line number Diff line number Diff line Loading @@ -64,50 +64,14 @@ let ]; } '' magick -size 640x480 canvas:white -pointsize 30 -fill black -annotate +100+100 '${wallpaperText}' $out ''; # gsettings tool with access to wallpaper schema lomiri-gsettings = pkgs: pkgs.stdenv.mkDerivation { name = "lomiri-gsettings"; dontUnpack = true; nativeBuildInputs = with pkgs; [ glib wrapGAppsHook3 ]; buildInputs = with pkgs; [ # Not using the Lomiri-namespaced setting yet # lomiri.lomiri-schemas gsettings-desktop-schemas ]; installPhase = '' runHook preInstall mkdir -p $out/bin ln -s ${pkgs.lib.getExe' pkgs.glib "gsettings"} $out/bin/lomiri-gsettings runHook postInstall magick -size 640x480 canvas:black -pointsize 30 -fill white -annotate +100+100 '${wallpaperText}' $out ''; lomiriWallpaperDconfSettings = pkgs: { settings = { "org/gnome/desktop/background" = { picture-uri = "file://${wallpaperFile pkgs}"; }; setLomiriWallpaperService = pkgs: let lomiriServices = [ "lomiri.service" "lomiri-full-greeter.service" "lomiri-full-shell.service" "lomiri-greeter.service" "lomiri-shell.service" ]; in rec { description = "Set Lomiri wallpaper to something OCR-able"; wantedBy = lomiriServices; before = lomiriServices; serviceConfig = { Type = "oneshot"; # Not using the Lomiri-namespaed settings yet # ExecStart = "${lomiri-gsettings pkgs}/bin/lomiri-gsettings set com.lomiri.Shell background-picture-uri file://${wallpaperFile pkgs}"; ExecStart = "${lomiri-gsettings pkgs}/bin/lomiri-gsettings set org.gnome.desktop.background picture-uri file://${wallpaperFile pkgs}"; }; }; Loading Loading @@ -413,12 +377,14 @@ in ]; }; programs.dconf.profiles.user.databases = [ (lomiriWallpaperDconfSettings pkgs) ]; # Help with OCR systemd.tmpfiles.settings = { "10-lomiri-test-setup" = terminalOcrTmpfilesSetup { inherit pkgs lib config; }; }; systemd.user.services.set-lomiri-wallpaper = setLomiriWallpaperService pkgs; }; enableOCR = true; Loading Loading @@ -562,12 +528,14 @@ in ]; }; programs.dconf.profiles.user.databases = [ (lomiriWallpaperDconfSettings pkgs) ]; # Help with OCR systemd.tmpfiles.settings = { "10-lomiri-test-setup" = terminalOcrTmpfilesSetup { inherit pkgs lib config; }; }; systemd.user.services.set-lomiri-wallpaper = setLomiriWallpaperService pkgs; }; enableOCR = true; Loading Loading @@ -710,7 +678,9 @@ in environment.etc."${wallpaperName}".source = wallpaperFile pkgs; systemd.user.services.set-lomiri-wallpaper = setLomiriWallpaperService pkgs; programs.dconf.profiles.user.databases = [ (lomiriWallpaperDconfSettings pkgs) ]; # Help with OCR systemd.tmpfiles.settings = { Loading @@ -733,7 +703,8 @@ in machine.wait_until_succeeds("pgrep -u lightdm -f 'lomiri --mode=greeter'") # Start page shows current time wait_for_text(r"(AM|PM)") # And the greeter *actually* renders our wallpaper! wait_for_text(r"(AM|PM|Lorem|ipsum)") machine.screenshot("lomiri_greeter_launched") # Advance to login part Loading @@ -747,6 +718,7 @@ in # Output rendering from Lomiri has started when it starts printing performance diagnostics machine.wait_for_console_text("Last frame took") # And the desktop doesn't render the wallpaper anymore. Grumble grumble... # Look for datetime's clock, one of the last elements to load wait_for_text(r"(AM|PM)") machine.screenshot("lomiri_launched") Loading Loading @@ -849,7 +821,7 @@ in ocr = [ "Log Out" ]; extraCheck = '' # We should be able to log out and return to the greeter mouse_click(600, 280) # "Log Out" mouse_click(600, 250) # "Log Out" mouse_click(340, 220) # confirm logout machine.wait_until_fails("pgrep -u ${user} -f 'lomiri --mode=full-shell'") ''; Loading pkgs/desktops/lomiri/data/lomiri-gsettings-overrides/default.nixdeleted 100644 → 0 +0 −52 Original line number Diff line number Diff line { 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 '' pkgs/desktops/lomiri/default.nix +0 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ 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 Loading
nixos/modules/services/desktop-managers/lomiri.nix +18 −24 Original line number Diff line number Diff line Loading @@ -7,9 +7,6 @@ let cfg = config.services.desktopManager.lomiri; nixos-gsettings-overrides = pkgs.lomiri.lomiri-gsettings-overrides.override { inherit (cfg) extraGSettingsOverrides extraGSettingsOverridePackages; }; in { options.services.desktopManager.lomiri = { Loading @@ -25,18 +22,6 @@ 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 [ Loading @@ -58,16 +43,26 @@ in "/share/wallpapers" ]; # 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; [ systemPackages = with pkgs.lomiri; [ lomiri-wallpapers # default + additional wallpaper suru-icon-theme # basic indicator icons ]); ]; }; # Override GSettings defaults programs.dconf = { enable = true; profiles.user.databases = [ { settings = { "com/lomiri/shell/launcher" = { logo-picture-uri = "file://${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg"; home-button-background-color = "#5277C3"; }; }; lockAll = true; } ]; }; fonts.packages = with pkgs; [ Loading Loading @@ -156,7 +151,6 @@ in # Copy-pasted basic stuff hardware.graphics.enable = lib.mkDefault true; fonts.enableDefaultPackages = lib.mkDefault true; programs.dconf.enable = lib.mkDefault true; services.accounts-daemon.enable = true; Loading
nixos/tests/lomiri.nix +22 −50 Original line number Diff line number Diff line Loading @@ -64,50 +64,14 @@ let ]; } '' magick -size 640x480 canvas:white -pointsize 30 -fill black -annotate +100+100 '${wallpaperText}' $out ''; # gsettings tool with access to wallpaper schema lomiri-gsettings = pkgs: pkgs.stdenv.mkDerivation { name = "lomiri-gsettings"; dontUnpack = true; nativeBuildInputs = with pkgs; [ glib wrapGAppsHook3 ]; buildInputs = with pkgs; [ # Not using the Lomiri-namespaced setting yet # lomiri.lomiri-schemas gsettings-desktop-schemas ]; installPhase = '' runHook preInstall mkdir -p $out/bin ln -s ${pkgs.lib.getExe' pkgs.glib "gsettings"} $out/bin/lomiri-gsettings runHook postInstall magick -size 640x480 canvas:black -pointsize 30 -fill white -annotate +100+100 '${wallpaperText}' $out ''; lomiriWallpaperDconfSettings = pkgs: { settings = { "org/gnome/desktop/background" = { picture-uri = "file://${wallpaperFile pkgs}"; }; setLomiriWallpaperService = pkgs: let lomiriServices = [ "lomiri.service" "lomiri-full-greeter.service" "lomiri-full-shell.service" "lomiri-greeter.service" "lomiri-shell.service" ]; in rec { description = "Set Lomiri wallpaper to something OCR-able"; wantedBy = lomiriServices; before = lomiriServices; serviceConfig = { Type = "oneshot"; # Not using the Lomiri-namespaed settings yet # ExecStart = "${lomiri-gsettings pkgs}/bin/lomiri-gsettings set com.lomiri.Shell background-picture-uri file://${wallpaperFile pkgs}"; ExecStart = "${lomiri-gsettings pkgs}/bin/lomiri-gsettings set org.gnome.desktop.background picture-uri file://${wallpaperFile pkgs}"; }; }; Loading Loading @@ -413,12 +377,14 @@ in ]; }; programs.dconf.profiles.user.databases = [ (lomiriWallpaperDconfSettings pkgs) ]; # Help with OCR systemd.tmpfiles.settings = { "10-lomiri-test-setup" = terminalOcrTmpfilesSetup { inherit pkgs lib config; }; }; systemd.user.services.set-lomiri-wallpaper = setLomiriWallpaperService pkgs; }; enableOCR = true; Loading Loading @@ -562,12 +528,14 @@ in ]; }; programs.dconf.profiles.user.databases = [ (lomiriWallpaperDconfSettings pkgs) ]; # Help with OCR systemd.tmpfiles.settings = { "10-lomiri-test-setup" = terminalOcrTmpfilesSetup { inherit pkgs lib config; }; }; systemd.user.services.set-lomiri-wallpaper = setLomiriWallpaperService pkgs; }; enableOCR = true; Loading Loading @@ -710,7 +678,9 @@ in environment.etc."${wallpaperName}".source = wallpaperFile pkgs; systemd.user.services.set-lomiri-wallpaper = setLomiriWallpaperService pkgs; programs.dconf.profiles.user.databases = [ (lomiriWallpaperDconfSettings pkgs) ]; # Help with OCR systemd.tmpfiles.settings = { Loading @@ -733,7 +703,8 @@ in machine.wait_until_succeeds("pgrep -u lightdm -f 'lomiri --mode=greeter'") # Start page shows current time wait_for_text(r"(AM|PM)") # And the greeter *actually* renders our wallpaper! wait_for_text(r"(AM|PM|Lorem|ipsum)") machine.screenshot("lomiri_greeter_launched") # Advance to login part Loading @@ -747,6 +718,7 @@ in # Output rendering from Lomiri has started when it starts printing performance diagnostics machine.wait_for_console_text("Last frame took") # And the desktop doesn't render the wallpaper anymore. Grumble grumble... # Look for datetime's clock, one of the last elements to load wait_for_text(r"(AM|PM)") machine.screenshot("lomiri_launched") Loading Loading @@ -849,7 +821,7 @@ in ocr = [ "Log Out" ]; extraCheck = '' # We should be able to log out and return to the greeter mouse_click(600, 280) # "Log Out" mouse_click(600, 250) # "Log Out" mouse_click(340, 220) # confirm logout machine.wait_until_fails("pgrep -u ${user} -f 'lomiri --mode=full-shell'") ''; Loading
pkgs/desktops/lomiri/data/lomiri-gsettings-overrides/default.nixdeleted 100644 → 0 +0 −52 Original line number Diff line number Diff line { 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 ''
pkgs/desktops/lomiri/default.nix +0 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ 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