resize is the command which solves the problem. That is not Vim's,
but X11's resize.
So I just added this to ~/.vimrc
to get the command automatically issued on Vim start.
If you do not want to see the command's output after quitting Vim,
silent !resize > /dev/null
The output you're getting in your terminal that is messing up the text in Vim is likely from the running sxhkd binary that you're spawning in background.
As a possible way to fix this, you can redirect its output to /dev/null when you launch it from the autocmd.
Instead of ending the external command with:
sxhkd >/dev/null 2&...