From Fedora Project Wiki

Hardware Handling

This page is an attempt to write down expected behaviors of the desktop wrt. to common hardware. Having this specified at some level of detail will help with both QA and development.

Keyboard

  • Media keys: play/pause, stop, forward, back
    • These should trigger the corresponding action in the currently open media player (rhythmbox or totem). If more than one media player is open, control goes to the one that is currently focused. If no media player has the focus, control goes to the one that most recently had the focus.
    • expected X keysyms: XF86AudioPlay, XF86AudioStop, XF86AudioPrev, XF86AudioNext
  • Volume Keys: Volume Up, Volume Down, Mute
    • These should trigger the corresponding action in the currently open media player (rhythmbox or totem). If more than one media player is open, control goes to the one that is currently focused. If no media player has the focus, control goes to the one that most recently had the focus.
    • Expected X keysyms: [Unknown]
  • Power mgmt. keys: suspend, hibernate, power
    • The suspend button should suspend the laptop
    • The hibernate button should hibernate the laptop
    • The power button should bring up a shutdown dialog. When the laptop is suspended, pressing the power button should resume it.
    • These actions are controlled by GConf keys in /apps/gnome-power-manager/buttons
    • expected X keysyms: XF86Sleep, XF86Suspend, XF86Hibernate
  • Brightness up/down keys
    • should bring up an on-screen display and control the brightness
    • expected X keysyms XF86MonBrightnessUp, XF86MonBrightnessDown
  • Display key (commonly Fn-F7)
    • Should cycle through display configurations (only interesting with multiple displays)
    • expected X keysym: XF86Display
  • Lock screen key (Fn-F2)
    • should lock the screen (same as the default keybinding for Control-Alt-L)
    • expected X keysym: XF86ScreenSaver
  • forward/back keys
    • should do forward/back in web browsers
    • expected X keysym: XF86Forward, XF86Back
  • num lock key
    • the num lock setting should persist across logout/login, this is controlled by the gconf key /desktop/gnome/peripherals/keyboard/remember_numlock_state, and the state is stored in /desktop/gnome/peripherals/keyboard/host-<hostname>/<display>/numlock_on
  • Disable/Enable trackpoint (commonly Fn-F8)
    • There is no X keysym for this, as virtually all laptops handle this in hardware. It's not yet clear whether we can get an event to track state though, which might be nice.
  • regular keys
    • the keyboard capplet should provide a matching keyboard layout

[What is a caplet? A link or explaination would be nice. -shillman]

Mouse

  • Trackpoint ('nipple')
    • It should just work. Some laptops don't allow to use the trackpoint/touchpad and an external mouse at the same time, though.
  • Touchpad
    • Edge scrolling should be on by default on touchpads that support it
    • Optionally, the touchpad can be disabled while using the keyboard. This is not turned on by default
    • The touchpad can be configured in the mouse capplet
  • Left-handedness
    • Toggling handedness of the mouse should swap left/right buttons, but not affect touchpads
    • This can be configured in the mouse capplet
  • Acceleration
    • TBD

Display

  • Resolution
    • LCDs and other fixed-format displays should default to the native resolution
    • Variable-format displays (CRTs, projectors...) that define a preferred mode, should default to that preferred mode
    • Variable-format displays that do not define a preferred mode should do... well, something sensible. Currently being designed.
    • Can be configured in the display capplet
  • Backlight
    • Should get turned off after 10 minutes of idleness. This timeout can be configured in the power management preferences.
    • Should get turned on after resume
  • 3D
    • is expected to work on some hardware:
      • ATI: Rage 128; all Radeons up to and including R500 series (X + four digits); experimental support for R600
      • Intel: All except i740 and Poulsbo
      • NVIDIA: TODO fill me in
      • Other: TODO fill me in
    • DRI2 support is required for GLX and Xv to work correctly under a compositor, and is available on TODO fill me in.
    • If hw-accelerated 3D is not available, the desktop effects capplet will refuse to turn desktop effects on
    • If the required extensions for desktop effects are not available, the desktop effects capplet will refuse to turn desktop effects on.
  • External monitors
    • When an external monitor is plugging in, it should be detected and turned on
      • Currently only supported on Intel hardware
    • When booting with multiple monitors, the default configuration is to place the monitors in a horizontal configuration (not cloning) if possible.
      • "If possible": There is a maximum width limit on most hardware; if placing all the connected monitors horizontally adjacent would exceed this limit, fall back to cloning. TODO list the limits for common hardware.
    • The Fn-F7 key cycles between supported configurations (need details about the configurations)
    • Placement, rotation and resolution of monitors can be configured in the display capplet

Power Management

  • Closing the lid should trigger a suspend (always ?)
  • Critically low battery should trigger a shutdown (after a warning message)
  • Battery monitoring
    • Statusicon should display usefully accurate information about charge level and estimated battery life
    • When becoming critically low, a warning should be displayed
  • suspend/power button handling: see the keyboard section
  • brightness control
    • for brightness keys, see the keyboard section
    • when on battery, the system should lower the brightness on its own (more detail needed)
  • docking
    • TBD

Networking

  • wireless
    • when wireless networks are available, but none has been configured to be automatically connected, you should get an information that networks are available
  • wired
    • a wired connection should be brought up by default, when logging in
  • broadband modem
    • TBD

Sound

  • The volume level should be 'reasonable' out of the box
  • A 'system-ready' sound is played when reaching the login screen after boot
  • A login sound is played when logging in
  • Media applications like rythmbox and totem should play sound without problems
  • Multiple applications can play sound at the same time, and the sound capplet lets you control their relative volume
  • Headphones
    • TBD
  • Microphone
    • TBD

Removable media

  • Audio CDs
    • inserting an audio cd should bring up a dialog that offers (among other things) to run rhythmbox
  • Video DVDs
    • inserting a video cd should bring up a dialog that offers to run totem
  • Data CDs
    • inserting a data cd should bring up a dialog that offers to mount the medium
  • USB sticks
    • inserting a usb stick should bring up a dialog that offers to mount the medium
  • Empty CDs
    • inserting an empty cd should bring up a dialog that offers to run a cd burning application

Other Peripherals

  • Cameras
    • connecting a camera via usb should bring up a dialog that offers to run a photo management app
  • Media Players
    • connecting a media player should bring up a dialog that offers to run rhythmbox
  • Printers
    • TBD

Other Hardware

  • Bluetooth
    • TBD
  • Fingerprint reader
    • TBD