#!/usr/bin/env bash
# shellcheck disable=SC1090,SC1091

# load system xinit scripts
if [ -d /etc/X11/xinit/xinitrc.d ]; then
	for f in "/etc/X11/xinit/xinitrc.d"/?*.sh; do
		source "$f"
	done
	unset f
fi

xrandr --setprivideroutputsource modesetting NVIDIA-0
xrandr --auto

nvidia-settings -l                   # apply nvidia-settings
export __GL_YIELD="USLEEP"           # fix for awful diagonal screen tear
export __GL_THREADED_OPTIMIZATIONS=0 # allows gamescope to execute
export __GL_SYNC_TO_VBLANK=0         # disable vsync in driver, to aid with some screen tearing
#export __GL_MaxFramesAllowed=1 # can reduce lag and maybe stabilise things
#export __GL_NextGenCompiler=0 # legacy option, can help with shader compilation

numlockx on # ensure numlock is on before setting keymap

setxkbmap us -variant altgr-intl -option ''            # load the correct keymap which actually has 3rd level shift
[[ -f "/etc/xprofile" ]] && source "/etc/xprofile"     # load the system-wide xprofile
[[ -f "$HOME/.xprofile" ]] && source "$HOME/.xprofile" # load the local xprofile configuration
[[ -f "$HOME/.Xmodmap" ]] && xmodmap "$HOME/.Xmodmap"  # load local keymap

[[ -x /usr/bin/picom ]] && /usr/bin/picom -b # start picom as a background service
exec i3 -c "$XDG_CONFIG_HOME/i3/config"      # start the graphical environment (replaces shell)
