#!/bin/sh
set -e

# Based on https://github.com/vincentbernat/awesome-configuration/blob/master/bin/xsettingsd-setup

dpi=$1

if [ -z "$1" ]; then
    >&2 printf "Usage\n\t%s: <dpi>" "$(basename "$0")"
    exit 1
fi

CONF_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/xsettingsd"
mkdir -p "$CONF_DIR"

cursor=$(echo $dpi/6 | bc | cut -d. -f1)

# Build xsettingsd.local
{
    cat $CONF_DIR/xsettingsd.conf 2>/dev/null || true
    echo Xcursor/size $cursor
    echo Gtk/CursorThemeSize $cursor
    echo Xft/DPI $(( dpi*1024 ))
    echo Gdk/WindowScalingFactor $(( dpi/96 ))
    echo Gdk/UnscaledDPI $(( dpi*1024/(dpi/96) ))
} > $CONF_DIR/xsettingsd.local

{
    echo Xft.dpi: $dpi
    echo Xcursor.size: $cursor
} | xrdb -merge

xrandr --dpi $dpi

systemctl --user reload-or-restart xsettingsd
systemctl --user --no-block reload i3 polybar@i3bar