fix: HiDPI-Scaling im Nix-Launcher — liest Xft.dpi, erzwingt Xwayland
All checks were successful
Build AppImage / build (push) Has been skipped
All checks were successful
Build AppImage / build (push) Has been skipped
GTK3 kann unter Wayland kein natives fractional Scaling. Der Launcher liest jetzt Xft.dpi aus xrdb, setzt GDK_DPI_SCALE entsprechend (fuer scharfe Fonts) und erzwingt unter Wayland GDK_BACKEND=x11, damit der Compositor die Fenstergroesse skaliert. Override per CLAUDE_DESKTOP_SCALE oder abschaltbar mit CLAUDE_DESKTOP_SCALE=off. Funktioniert transparent auf X11-VM und KDE-Wayland-Desktop. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
be38b6e700
commit
3913e1cce8
1 changed files with 23 additions and 0 deletions
|
|
@ -80,6 +80,29 @@ pkgs.stdenv.mkDerivation {
|
||||||
export CLAUDE_DESKTOP_NIX_WRAPPER=1
|
export CLAUDE_DESKTOP_NIX_WRAPPER=1
|
||||||
export CLAUDE_DESKTOP_BIN="$BIN"
|
export CLAUDE_DESKTOP_BIN="$BIN"
|
||||||
|
|
||||||
|
# HiDPI/Fractional-Scaling — GTK3 unter Wayland kann kein natives fractional
|
||||||
|
# scaling. Workaround: Xwayland erzwingen (der Compositor skaliert das Fenster)
|
||||||
|
# und GDK_DPI_SCALE aus Xft.dpi ableiten, damit Fonts scharf bleiben.
|
||||||
|
# Override-bar ueber CLAUDE_DESKTOP_SCALE (z.B. "1.5") oder komplett
|
||||||
|
# deaktivierbar mit CLAUDE_DESKTOP_SCALE=off.
|
||||||
|
if [ "''${CLAUDE_DESKTOP_SCALE:-}" != "off" ]; then
|
||||||
|
SCALE="''${CLAUDE_DESKTOP_SCALE:-}"
|
||||||
|
if [ -z "$SCALE" ] && command -v xrdb >/dev/null 2>&1 && [ -n "''${DISPLAY:-}" ]; then
|
||||||
|
DPI="$(xrdb -query 2>/dev/null | awk -F':\\s*' '/^Xft.dpi:/ {print $2; exit}')"
|
||||||
|
if [ -n "$DPI" ] && [ "$DPI" -gt 96 ] 2>/dev/null; then
|
||||||
|
# bash-only float-Division: auf 2 Stellen runden
|
||||||
|
SCALE="$(awk -v d="$DPI" 'BEGIN { printf "%.2f", d/96 }')"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -n "$SCALE" ] && [ "$SCALE" != "1.00" ] && [ "$SCALE" != "1.0" ]; then
|
||||||
|
export GDK_DPI_SCALE="$SCALE"
|
||||||
|
# Unter Wayland: Xwayland nutzen, damit der Compositor-Scale greift
|
||||||
|
if [ "''${XDG_SESSION_TYPE:-}" = "wayland" ]; then
|
||||||
|
export GDK_BACKEND="''${GDK_BACKEND:-x11}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
exec "$BIN" "$@"
|
exec "$BIN" "$@"
|
||||||
LAUNCHER
|
LAUNCHER
|
||||||
chmod +x $out/bin/claude-desktop
|
chmod +x $out/bin/claude-desktop
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue