- Treat "timeout" and "interrupted system call" from ReadWithTimeout as
non-fatal — hidraw on Linux returns errors instead of (0, nil) for
both, causing false device-dead detection and reconnect loops
- Resolve icons_dir relative to the config file when the path is not
absolute, so the service finds icons regardless of working directory
- Installer now copies bundled icons to the config dir on first install
- install.sh: detects pacman/apt/dnf/zypper, installs Go and hidapi if
absent, prompts for dotfiles dir and creates ~/.config symlink
- Makefile: wire `make install` to install.sh
- README: document interactive install flow and dotfiles tree structure