Unverified Commit 34ed0c9c authored by David McFarland's avatar David McFarland Committed by GitHub
Browse files

scarab: Apply scaling factor in Wayland (#348427)

parents ae725baf 59ed3fa2
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
{
  lib,
  bc,
  buildDotnetModule,
  fetchFromGitHub,
  glibc,
  zlib,
  gtk3,
  copyDesktopItems,
  icoutils,
  wrapGAppsHook3,
  makeDesktopItem,
}:

@@ -34,19 +31,12 @@ buildDotnetModule rec {
  '';

  runtimeDeps = [
    glibc
    zlib
    gtk3
  ];

  buildInputs = [
    gtk3
    bc
  ];

  nativeBuildInputs = [
    copyDesktopItems
    icoutils
    wrapGAppsHook3
  ];

  doCheck = true;
@@ -60,6 +50,8 @@ buildDotnetModule rec {
      size=''${sizes[$i]}x''${sizes[$i]}
      install -D omegamaggotprime_''$((i+1))_''${size}x32.png $out/share/icons/hicolor/$size/apps/scarab.png
    done

    wrapProgram "$out/bin/Scarab" --run '. ${./scaling-settings.bash}'
  '';

  desktopItems = [
+24 −0
Original line number Diff line number Diff line
# Keep existing value if it is already non-empty
if [[ -z "${AVALONIA_GLOBAL_SCALE_FACTOR-}" ]] && command -v gsettings >/dev/null; then
    echo 'Attempting to get GNOME desktop interface scaling factor' >&2
    AVALONIA_GLOBAL_SCALE_FACTOR="$(gsettings get org.gnome.desktop.interface scaling-factor)"
    AVALONIA_GLOBAL_SCALE_FACTOR="${AVALONIA_GLOBAL_SCALE_FACTOR##* }"
fi

if [[ "${AVALONIA_GLOBAL_SCALE_FACTOR-}" == "0" ]]; then
    echo 'Unset invalid scaling value' >&2
    unset AVALONIA_GLOBAL_SCALE_FACTOR
fi

if [[ -z "${AVALONIA_GLOBAL_SCALE_FACTOR-}" ]] && command -v xrdb >/dev/null; then
    echo 'Attempting to get scaling factor from X FreeType DPI setting' >&2
    dpi="$(xrdb -get Xft.dpi)"
    if [[ -n "${dpi}" ]]; then
        AVALONIA_GLOBAL_SCALE_FACTOR=$(echo "scale=2; ${dpi}/96" | bc)
    fi
fi

if [[ -n "${AVALONIA_GLOBAL_SCALE_FACTOR-}" ]]; then
    echo "Applying scale factor: ${AVALONIA_GLOBAL_SCALE_FACTOR}" >&2
    export AVALONIA_GLOBAL_SCALE_FACTOR
fi