scarab: Apply scaling factor in Wayland (#348427)

This commit is contained in:
David McFarland
2024-11-10 16:41:53 -04:00
committed by GitHub
2 changed files with 28 additions and 12 deletions

View File

@@ -1,13 +1,10 @@
{
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 = [

View File

@@ -0,0 +1,24 @@
# 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