# Copyright 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

description     "Disable ECHO on tty1"
author          "chromium-os-dev@chromium.org"

start on startup
stop on x-started

# Disable echo on /dev/tty1 so we don't get artifacts over the splash screen.
script
  # We sleep for 20 seconds to ensure that /dev/tty1 stays open and the values
  # are not reset by another program.
  (stty -F /dev/tty1 -echo -echonl -icanon -iexten -isig; sleep 20) > /dev/tty1
end script
