ash_switches.cc revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/ash_switches.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash {
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace switches {
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enables an animated transition from the boot splash screen (Chrome logo on a
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// white background) to the login screen.  Implies
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |kAshCopyHostBackgroundAtBoot| and doesn't make much sense if used in
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// conjunction with |kDisableBootAnimation| (since the transition begins at the
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// same time as the white/grayscale login screen animation).
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshAnimateFromBootSplashScreen[] =
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    "ash-animate-from-boot-splash-screen";
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Variation of boot animation that uses Tween::EASE_OUT_2.
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshBootAnimationFunction2[] = "ash-boot-animation-function2";
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Variation of boot animation that uses Tween::EASE_OUT_3.
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshBootAnimationFunction3[] = "ash-boot-animation-function3";
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Constrains the pointer movement within a root window on desktop.
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshConstrainPointerToRoot[] = "ash-constrain-pointer-to-root";
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copies the host window's content to the system background layer at startup.
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Can make boot slightly slower, but also hides an even-longer awkward period
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// where we display a white background if the login wallpaper takes a long time
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// to load.
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshCopyHostBackgroundAtBoot[] = "ash-copy-host-background-at-boot";
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enable keyboard shortcuts useful for debugging.
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshDebugShortcuts[] = "ash-debug-shortcuts";
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Disable auto window maximization logic.
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kAshDisableAutoMaximizing[] = "ash-disable-auto-maximizing";
38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Disable support for auto window placement.
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshDisableAutoWindowPlacement[] =
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    "ash-enable-auto-window-placement";
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Disables boot animation v2, go back to v1.
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshDisableBootAnimation2[] = "ash-disable-boot-animation2";
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Disables the limitter to throttle how quickly a user
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// can change display settings.
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshDisableDisplayChangeLimiter[] =
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    "ash-disable-display-change-limiter";
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Disables creating a launcher per display.
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshDisableLauncherPerDisplay[] = "ash-disable-launcher-per-display";
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Disable the new cras audio handler.
55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kAshDisableNewAudioHandler[] = "ash-disable-new-audio-handler";
56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// If present new lock animations are enabled.
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshDisableNewLockAnimations[] = "ash-disable-new-lock-animations";
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Disable new network handlers in the status area.
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshDisableNewNetworkStatusArea[] =
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    "ash-disable-new-network-status-area";
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Disable the per application grouping version of the launcher.
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshDisablePerAppLauncher[] = "ash-disable-per-app-launcher";
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Disables display rotation.
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshDisableDisplayRotation[] = "ash-disable-display-rotation";
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Disable immersive fullscreen mode, regardless of default setting.
71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kAshDisableImmersiveFullscreen[] =
72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    "ash-disable-immersive-fullscreen";
73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Disables ui scaling.
752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshDisableUIScaling[] = "ash-disable-ui-scaling";
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Extend the status tray volume item to allow the user to choose an audio
78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// input and output device.
79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kAshEnableAudioDeviceMenu[] =
80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    "ash-enable-audio-device-menu";
81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enable advanced gestures (e.g. for window management).
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshEnableAdvancedGestures[] = "ash-enable-advanced-gestures";
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Always enable brightness control. Used by machines that don't report their
862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// main monitor as internal.
872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshEnableBrightnessControl[] = "ash-enable-brightness-control";
882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
89c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Enable immersive fullscreen mode, regardless of default setting.
90c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kAshEnableImmersiveFullscreen[] = "ash-enable-immersive-fullscreen";
91c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_LINUX)
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enable memory monitoring.
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshEnableMemoryMonitor[] = "ash-enable-memory-monitor";
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enables the Oak tree viewer.
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshEnableOak[] = "ash-enable-oak";
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
100c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Enables "sticky" edges instead of "snap-to-edge"
101c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kAshEnableStickyEdges[] = "ash-enable-sticky-edges";
102c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enables showing the tray bubble by dragging on the shelf.
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshEnableTrayDragging[] = "ash-enable-tray-dragging";
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Enable workspace switching via a three finger vertical scroll.
1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshEnableWorkspaceScrubbing[] = "ash-enable-workspace-scrubbing";
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sets a window size, optional position, and optional scale factor.
1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// "1024x768" creates a window of size 1024x768.
1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// "100+200-1024x768" positions the window at 100,200.
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// "1024x768*2" sets the scale factor to 2 for a high DPI display.
1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshHostWindowBounds[] = "ash-host-window-bounds";
1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Hides the small tab indicators at the top of the screen during immersive
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// fullscreen mode.
1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshImmersiveHideTabIndicators[] =
1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    "ash-immersive-hide-tab-indicators";
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Specifies the layout mode and offsets for the secondary display for
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// testing. The format is "<t|r|b|l>,<offset>" where t=TOP, r=RIGHT,
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// b=BOTTOM and L=LEFT. For example, 'r,-100' means the secondary display
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// is positioned on the right with -100 offset. (above than primary)
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshSecondaryDisplayLayout[] = "ash-secondary-display-layout";
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enables the heads-up display for tracking touch points.
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshTouchHud[] = "ash-touch-hud";
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
129c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Uses the 1st display in --ash-host-window-bounds as internal display.
130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// This is for debugging on linux desktop.
131c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kAshUseFirstDisplayAsInternal[] =
132c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    "ash-use-first-display-as-internal";
133c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// (Most) Chrome OS hardware reports ACPI power button releases correctly.
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Standard hardware reports releases immediately after presses.  If set, we
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// lock the screen or shutdown the system immediately in response to a press
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// instead of displaying an interactive animation.
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAuraLegacyPowerButton[] = "aura-legacy-power-button";
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(OS_WIN)
1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Force Ash to open its root window on the desktop, even on Windows 8 where
1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// it would normally end up in metro.
1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kForceAshToDesktop[] = "ash-force-desktop";
1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Enables a mode which enforces all browser & application windows to be created
147c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// in maximized mode.
148c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kForcedMaximizeMode[] = "forced-maximize-mode";
149c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace switches
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ash
152