* Added support for HiDPI devices * Only affects devices with a DPI >= 192 * Most screen objects are doubled in size * Updated .conkyrc * Vertical offset now set to 24 or 48 (to match URxvt) * Removed extra line after network adapters * Updated .xinitrc * Removed dunst logic since `cbatticon` no longer sends notifications * Update .Xresources for all programs before `xrdb -merge` * Update hostname after `connect-to-network` * URxvt windows are now based on a 16:9 ratio (instead of 4:3) * Removed * .update_wallpaper (integrated with .xinitrc) * .urxvt_default_res (integrated with .update_dpi_settings) * Fixes issue #45
68 lines
2.2 KiB
Bash
Executable file
68 lines
2.2 KiB
Bash
Executable file
#!/bin/env bash
|
|
#
|
|
## Calculate DPI and adjust display settings if necesary
|
|
|
|
REGEX_XRANDR='^.* ([0-9]+)x([0-9]+)\+[0-9]+\+[0-9]+.* ([0-9]+)mm x ([0-9]+)mm.*$'
|
|
REGEX_URXVT='(URxvt.geometry:\s+).*'
|
|
|
|
# Get screen data
|
|
xrandr_str="$(xrandr | grep mm | head -1)"
|
|
width_px="$(echo "${xrandr_str}" | sed -r "s/${REGEX_XRANDR}/\1/")"
|
|
height_px="$(echo "${xrandr_str}" | sed -r "s/${REGEX_XRANDR}/\2/")"
|
|
width_mm="$(echo "${xrandr_str}" | sed -r "s/${REGEX_XRANDR}/\3/")"
|
|
height_mm="$(echo "${xrandr_str}" | sed -r "s/${REGEX_XRANDR}/\4/")"
|
|
|
|
# Convert to in
|
|
width_in="$(echo "${width_mm} * 0.03937" | bc)"
|
|
height_in="$(echo "${height_mm} * 0.03937" | bc)"
|
|
|
|
# Calculate diagonals
|
|
diag_px="$(echo "sqrt(${width_px}^2 + ${height_px}^2)" | bc)"
|
|
diag_in="$(echo "sqrt(${width_in}^2 + ${height_in}^2)" | bc)"
|
|
|
|
# Calculate DPI
|
|
dpi="$(echo "${diag_px} / ${diag_in}" | bc 2>/dev/null || True)"
|
|
dpi="${dpi:-0}"
|
|
|
|
# Calculate URxvt default window size
|
|
width_urxvt="$(echo "${width_px} * 112/1280" | bc)"
|
|
height_urxvt="$(echo "${height_px} * 33/720" | bc)"
|
|
offset_urxvt="24"
|
|
|
|
# Update settings if necessary
|
|
if [[ "${dpi}" -ge 192 ]]; then
|
|
# Conky
|
|
sed -i 's/minimum_size 180 0/minimum_size 360 0/' "${HOME}/.conkyrc"
|
|
sed -i 's/maximum_width 180/maximum_width 360/' "${HOME}/.conkyrc"
|
|
sed -i 's/gap_x 20/gap_x 40/' "${HOME}/.conkyrc"
|
|
sed -i 's/gap_y 24/gap_y 48/' "${HOME}/.conkyrc"
|
|
|
|
# Fonts
|
|
sed -i 's/!Xft.dpi: 192/Xft.dpi: 192/' "${HOME}/.Xresources"
|
|
|
|
# GDK
|
|
export GDK_SCALE=2
|
|
export GDK_DPI_SCALE=0.5
|
|
|
|
# i3
|
|
sed -i -r 's/(height\s+) 26/\1 52/' "${HOME}/.config/i3/config"
|
|
|
|
# Tint2
|
|
sed -i 's/panel_size = 100% 30/panel_size = 100% 60/' \
|
|
"${HOME}/.config/tint2/tint2rc"
|
|
sed -i 's/Inconsolata 10/Inconsolata 20/g' \
|
|
"${HOME}/.config/tint2/tint2rc"
|
|
sed -i 's/Inconsolata 12/Inconsolata 24/g' \
|
|
"${HOME}/.config/tint2/tint2rc"
|
|
sed -i 's/systray_icon_size = 24/systray_icon_size = 48/' \
|
|
"${HOME}/.config/tint2/tint2rc"
|
|
|
|
# URxvt
|
|
width_urxvt="$(echo "${width_urxvt} / 2" | bc)"
|
|
height_urxvt="$(echo "${height_urxvt} / 2" | bc)"
|
|
offset_urxvt="$(echo "${offset_urxvt} * 2" | bc)"
|
|
fi
|
|
|
|
# Update URxvt (Always)
|
|
urxvt_geometry="${width_urxvt}x${height_urxvt}+${offset_urxvt}+${offset_urxvt}"
|
|
sed -i -r "s/${REGEX_URXVT}/\1${urxvt_geometry}/" "${HOME}/.Xresources"
|