Low-level key bindings, refactored startup

Fixed bug saving settings if file doesn't exist (workaround for
File.Create not releasing the file)