diff --git a/assets/wallpapers/sovran-wallpaper-08-tagline-only.svg b/assets/wallpapers/sovran-wallpaper-08-tagline-only.svg new file mode 100644 index 0000000..6c580ca --- /dev/null +++ b/assets/wallpapers/sovran-wallpaper-08-tagline-only.svg @@ -0,0 +1,291 @@ + +PRIVACY. SOVEREIGNTY. BITCOIN. diff --git a/assets/wallpapers/sovran-wallpaper-12-ultrawide-3440x1440.svg b/assets/wallpapers/sovran-wallpaper-12-ultrawide-3440x1440.svg new file mode 100644 index 0000000..7fa5615 --- /dev/null +++ b/assets/wallpapers/sovran-wallpaper-12-ultrawide-3440x1440.svg @@ -0,0 +1,300 @@ + +PRIVACY. SOVEREIGNTY. BITCOIN. diff --git a/modules/core/sovran_systemsos-desktop.nix b/modules/core/sovran_systemsos-desktop.nix index 6748630..254debd 100644 --- a/modules/core/sovran_systemsos-desktop.nix +++ b/modules/core/sovran_systemsos-desktop.nix @@ -2,25 +2,77 @@ let + wallpaperSrc = ../../assets/wallpapers; + customWallpaper = pkgs.stdenvNoCC.mkDerivation { pname = "sovran-systemsos-wallpaper"; - version = "1.0"; - src = pkgs.fetchurl { - url = "https://git.sovransystems.com/Sovran_Systems/Sovran_SystemsOS_iso/raw/branch/main/post-install-scripts/Wallpaper_Dark_Wide.png"; - sha256 = "0609gy0vp92fywl7pcr4y3mg05ca6pwxsnlsax14jd371fj4y7fn"; - }; - dontUnpack = true; + version = "2.0"; + src = wallpaperSrc; + nativeBuildInputs = [ pkgs.librsvg ]; installPhase = '' mkdir -p $out/share/backgrounds/sovran - cp $src $out/share/backgrounds/sovran/Wallpaper_Dark_Wide.png - ''; + + rsvg-convert -w 1920 -h 1080 \ + $src/sovran-wallpaper-08-tagline-only.svg \ + -o $out/share/backgrounds/sovran/sovran-standard.png + + rsvg-convert -w 3440 -h 1440 \ + $src/sovran-wallpaper-12-ultrawide-3440x1440.svg \ + -o $out/share/backgrounds/sovran/sovran-ultrawide.png + ''; }; + wallpaperInit = pkgs.writeShellScriptBin "sovran-wallpaper-init" '' + STAMP="$HOME/.config/sovran-wallpaper-set" + if [ -f "$STAMP" ]; then + exit 0 + fi + + BG_DIR="/run/current-system/sw/share/backgrounds/sovran" + STANDARD="$BG_DIR/sovran-standard.png" + ULTRAWIDE="$BG_DIR/sovran-ultrawide.png" + + WIDTH=$(${pkgs.dbus}/bin/dbus-send \ + --session \ + --print-reply \ + --dest=org.gnome.Mutter.DisplayConfig \ + /org/gnome/Mutter/DisplayConfig \ + org.gnome.Mutter.DisplayConfig.GetCurrentState \ + 2>/dev/null \ + | grep -oP 'uint32 \K[0-9]+' \ + | head -1) + + CHOSEN="$STANDARD" + if [ -n "$WIDTH" ] && [ "$WIDTH" -ge 2560 ] && [ -f "$ULTRAWIDE" ]; then + CHOSEN="$ULTRAWIDE" + fi + + ${pkgs.dconf}/bin/dconf write /org/gnome/desktop/background/picture-uri \ + "'file://$CHOSEN'" + ${pkgs.dconf}/bin/dconf write /org/gnome/desktop/background/picture-uri-dark \ + "'file://$CHOSEN'" + ${pkgs.dconf}/bin/dconf write /org/gnome/desktop/background/picture-options \ + "'zoom'" + + mkdir -p "$HOME/.config" + touch "$STAMP" + ''; + in { - environment.systemPackages = [ customWallpaper ]; + environment.systemPackages = [ customWallpaper wallpaperInit ]; + + environment.etc."xdg/autostart/sovran-wallpaper-init.desktop".text = '' + [Desktop Entry] + Type=Application + Name=Sovran Wallpaper Init + Exec=${wallpaperInit}/bin/sovran-wallpaper-init + X-GNOME-Autostart-enabled=true + X-GNOME-Autostart-Phase=Application + NoDisplay=true + ''; programs.dconf.enable = true; @@ -29,8 +81,8 @@ in settings = { "org/gnome/desktop/background" = { - picture-uri = "file:///run/current-system/sw/share/backgrounds/sovran/Wallpaper_Dark_Wide.png"; - picture-uri-dark = "file:///run/current-system/sw/share/backgrounds/sovran/Wallpaper_Dark_Wide.png"; + picture-uri = "file:///run/current-system/sw/share/backgrounds/sovran/sovran-standard.png"; + picture-uri-dark = "file:///run/current-system/sw/share/backgrounds/sovran/sovran-standard.png"; picture-options = "zoom"; primary-color = "#000000"; secondary-color = "#000000";