https://wiki.archlinux.org/api.php?action=feedcontributions&user=Costalfy&feedformat=atomArchWiki - User contributions [en]2024-03-29T10:07:50ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=GPhoto&diff=138260GPhoto2011-04-25T09:31:13Z<p>Costalfy: /* Frontend(external) Applications for GPhoto2 */ add link to rawtherapee software</p>
<hr />
<div>[[Category:Imaging (English)]] <br />
[[Category:HOWTOs (English)]]<br />
{{i18n|Digital Cameras}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|Infos on digital cameras support.}}<br />
{{Article summary end}}<br />
<br />
==Summary==<br />
This document attempts to configure libgphoto2 so that the members of the ''camera'' [[group]] can access a digital camera over USB. The aim was to keep this document simple and thus special cases were not covered. I would like change this so that we can work out any bugs and have a more streamlined configuration for the community. So feel free to post problems and solutions into the talk page and they may be added under a troubleshooting section. With that in mind, not all cameras are detected with --auto-detect(in gphoto2). Some cameras may show up with a generic name, or others with the wrong model name. If it works, don't try and fix it.<br />
<br />
==Libgphoto2==<br />
'''About'''<br />
<br />
[http://www.gphoto.org/proj/libgphoto2/ Libgphoto2] is the core library designed to allow access to digital cameras by external(front end) programs, such as Digikam and gphoto2. The current 'officially' supported cameras are [http://www.gphoto.org/proj/libgphoto2/support.php here] though more may(probably) work.<br />
<br />
<br />
'''Installation and Configuration'''<br />
<br />
As root, type in:<br />
<br />
<pre># pacman -S libgphoto2</pre><br />
<br />
Now this:<br />
<pre># gpasswd -a $yourusername camera</pre><br />
{{Note | $yourusername is whatever NON-root account you want to add to the camera group.}}<br />
<br />
<br />
'''Permission issues'''<br />
<br />
If you receive permission issues type this in as well, still as root:<br />
<br />
<pre># /usr/lib/libgphoto2/print-camera-list udev-rules mode 0660 version 0.98 group camera > /etc/udev/rules.d/90-libgphoto2.rules</pre><br />
<br />
If after following all of these steps you still have access issues, try editing /etc/udev/rules.d/90-libgphoto2.rules and change the PROGRAM= line near the bottom to the following:<br />
<br />
<pre>PROGRAM="/lib/udev/check-ptp-camera", MODE="0660", GROUP="camera"</pre><br />
<br />
If your camera is not present in any udev rule, you can check vendor and product id and add it. To check it just run:<br />
<pre># lsusb<br />
...<br />
Bus 001 Device 005: ID 04a9:318e Canon, Inc.<br />
...<br />
</pre><br />
I prefer to put any local udev rules to /etc/udev/rules.d/90-local.rules to make sure it wouldn't be overwritten by new packages.<br />
<br />
{{File|name=90-local.rules|content=<br />
PROGRAM="/lib/udev/check-ptp-camera", MODE="0660", GROUP="camera"<br />
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="318e", MODE="0660", GROUP="camera"<br />
}}<br />
<br />
To changes take effect you need to restart udevd<br />
<pre><br />
# killall udevd && udevd -d<br />
</pre><br />
Now after plugin your camera you can check if permission looks okay by running:<br />
<pre><br />
# ls -lR /dev/bus/usb<br />
</pre><br />
<br />
{{Tip|It may be easier to reboot.}}<br />
<br />
==GPhoto2==<br />
'''About'''<br />
<br />
GPhoto2 is a command line client for libgphoto2. GPhoto2 allows access to the libgpohoto2 library from a terminal or from a script shell to perform any camera operation that can be done. This is the main user interface. <br />
<br />
GPhoto2 also provides convenient debugging features for camera driver developers.<br />
<br />
<br />
'''Installation and Configuration'''<br />
To get Gphoto2, type this in as root:<br />
<br />
# pacman -S gphoto2<br />
<br />
You can also install gvfs-gphoto2 as a gphoto2 backend for gvfs<br />
<br />
# pacman -S gvfs-gphoto2<br />
<br />
'''Quick Commands'''<br />
*gphoto2 --list-ports<br />
*gphoto2 --auto-detect<br />
*gphoto2 --summary<br />
*gphoto2 --list-files<br />
*gphoto2 --get-all-files<br />
<br />
For advanced file manipulation, use<br />
* gphoto2 --shell<br />
<br />
==Frontend(external) Applications for GPhoto2==<br />
<br />
*[http://www.gphoto.org/proj/gphotofs/ gphotofs] - allow using your camera with any tool able to read from a mounted filesystem.<br />
*[http://www.rawtherapee.com/ RawTherapee]<br />
*[http://darktable.sourceforge.net/ Darktable]<br />
*[http://www.digikam.org/ Digikam]<br />
*[http://f-spot.org/ F-Spot]<br />
*[http://live.gnome.org/gthumb Gthumb]<br />
*[http://www.gphoto.org/proj/gtkam/ GTKam]<br />
<br />
==Miscellaneous Troubleshooting==<br />
'''Groups'''<br />
<br />
You should make sure the user to which you'd like to grant access to the camera is part of the [[Users and Groups#Groups|storage group]].<br />
<br />
==Wiki Articles Relating to Photo/Cameras==<br />
*[[Jalbum]] - Freeware for creating professional albums/galleries.<br />
*[[HCL/Digital Cameras]] - Partial list of supported cameras for gphoto2</div>Costalfyhttps://wiki.archlinux.org/index.php?title=Package_Maintainers&diff=138001Package Maintainers2011-04-22T13:45:03Z<p>Costalfy: add french translation</p>
<hr />
<div>[[Category:Arch development (English)]]<br />
[[fr:TU]]<br />
The '''Trusted Users''' serve the following purposes:<br />
# Maintain {{Codeline|[community]}} as an intermediary between Arch Linux's [[Official Repositories]] and the unsupported package collection in the [[AUR]].<br />
# Maintain, manage, and watch over the operation of the [[AUR]].<br />
<br />
For more information, please see [http://aur.archlinux.org/trusted-user/TUbylaws.html Trusted User Bylaws].<br />
<br />
== Active Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|style="font-weight: bold;"|E-Mail<br />
|-<br />
|[http://aur.archlinux.org/packages.php?SeB=m&K=Atsutane Atsutane] ||Thorsten Töpper||atsutane {0x40} freethoughts {0x2E} de<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=bluewind&SeB=m Bluewind]||Florian Pritz || florian@server-speed.net<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=cmb&SeB=m cmb]||Chris Brannon||cmbrannon79 at gmail dot com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=cryptocrack&SeB=m cryptocrack]||Lukas Fleischer||archlinux at cryptocrack dot de<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=Daenyth&SeB=m Daenyth]||Daenyth Blank||Daenyth+Arch gmail com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=Dragonlord&SeB=m Dragonlord]||[[User:Dragonlord|Jaroslav Lichtblau]]||tu dragonlord cz<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=falconindy&SeB=m falconindy]||Dave Reisner||d[at]falconindy[dot]com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=foutrelis&SeB=m foutrelis]||Evangelos Foutras||foutrelis@gmail.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=heftig&SeB=m heftig]||Jan Steffens||jan.steffens@student.kit.edu<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=itsbrad212&SeB=m itsbrad212]||Brad Fanella||bradfanella@archlinux.us<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=jelly&SeB=m jelly]||Jelle van der Waa || jelle vdwaa nl<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=kaitocracy&SeB=m kaitocracy]||[[User:kaitocracy|Kaiting Chen]]||kaitocracy@gmail.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=lordheavy&SeB=m Lordheavy]||[[User:Lordheavy|Laurent Carlier]]||lordheavym at gmail com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=louipc&SeB=m louipc]||[[User:louipc|Loui Chang]]||louipc dot ist at gmail company<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=ornitorrincos&SeB=m ornitorrincos]||Imanol Celaya||ilcra1989@gmail.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=Partition&SeB=m Partition]||Mateusz Herych||heniekk at gmail dot com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=PirateJonno&SeB=m PirateJonno]||Jonathan Conder||jonno dot conder at gmail dot com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=pressh&SeB=m pressh]||Ronald van Haren||ronald.archlinux.org<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=schivmeister&SeB=m schivmeister]||[[User:Schivmeister|Ray Rashif]]||schiv archlinux org<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=schuay&SeB=m schuay]||Jakob Gruber||jakob.gruber@gmail.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=sergej&SeB=m sergej]||Sergej Pupykin||pupykins@gmail.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=stativ&SeB=m stativ]||Lukas Jirkovsky||l.jirkovsky strange_curved_character gmail.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=StefanHusmann&SeB=m StefanHusmann]||Stefan Husmann||Stefan-husmann@t-online.de<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=svenstaro&SeB=m svenstaro]||[[User:svenstaro|Sven-Hendrik Haase]]||sh@lutzhaase.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=td123&SeB=m td123]||Thomas Dziedzic||gostrc at gmail<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=vegai&SeB=m vegai]||Vesa Kaihlavirta||vpkaihla@gmail.com<br />
|-<br />
|[http://aur.archlinux.org/packages.php?SeB=m&K=Xyne Xyne]||<--||ca . archlinux @ xyne, in reverse order<br />
|}<br />
<br />
== Inactive Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|style="font-weight: bold;"|E-Mail<br />
|style="font-weight: bold;"|Comments/Reference<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=angvp&SeB=m angvp]||[[User:Angvp|Angel Velásquez]]||angvp archlinux dot com dot ve||No Internet access at home<br />
|-<br />
|[http://aur.archlinux.org/packages.php?K=petelewis&SeB=m petelewis]||Peter Lewis||pete at muddygoat dot org||Getting married, back 3rd May.<br />
|-<br />
|}<br />
<br />
== Some Past Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|-<br />
|abhidg||Abhishek Dasgupta<br />
|-<br />
|Allan||Allan McRae<br />
|-<br />
|anders||Anders Bergh<br />
|-<br />
|bardo||Corrado Primier<br />
|-<br />
|bash||Andrea Scarpino<br />
|-<br />
|bfinch||Bob Finch<br />
|-<br />
|brain0||Thomas Bächler<br />
|-<br />
|bjorn||Bjørn Lindeijer<br />
|-<br />
|codemac||Jeff Mickey<br />
|-<br />
|DaNiMoTh||JJ. DaNiMoTh<br />
|-<br />
|dejari||Leslie P. Polzer<br />
|-<br />
|dsa||Douglas Soares de Andrade<br />
|-<br />
|dtw||Phil Dillon-Thiselton<br />
|-<br />
|elasticdog||Aaron Bull Schaefer<br />
|-<br />
|encelo||Angelo Theodorou<br />
|-<br />
|even ||Kessia Pinheiro<br />
|-<br />
|filoktetes||Robert Emil Berge<br />
|-<br />
|firmicus||François Charette<br />
|-<br />
|ganja_guru||Varun Acharya<br />
|-<br />
|Ghost1227||Dan Griffiths<br />
|-<br />
|gcarrier||Geoffroy Carrier<br />
|-<br />
|gummibaerchen||Timm Preetz<br />
|-<br />
|hdoria||Hugo Doria<br />
|-<br />
|iphitus||James Rayner<br />
|-<br />
|mOLOk||Alessio Bolognino<br />
|-<br />
|nesl247||Alex Heck<br />
|-<br />
|Neverth||Mikko Seppälä<br />
|-<br />
|phrakture||Aaron Griffin<br />
|-<br />
|Pierre||Pierre Schmitz<br />
|-<br />
|pizzapunk||Alexander Fehr<br />
|-<br />
|pjmattal||Paul Mattal<br />
|-<br />
|Ranguvar||Devin Cofer<br />
|-<br />
|Romashka||Roman Kyrylych<br />
|-<br />
|shastry||Vinay S Shastry<br />
|-<br />
|Snowman||Eric Bélanger<br />
|-<br />
|shinlun||Shinlun Hsieh<br />
|-<br />
|STiAT||Georg Grabler<br />
|-<br />
|swiergot||Jaroslaw Swierczynski<br />
|-<br />
|tardo||Shehzad Qureshi<br />
|-<br />
|thotypous||Paulo Matias<br />
|-<br />
|voidnull||Giovanni Scafora<br />
|-<br />
|wizzomafizzo||Callan Barrett<br />
|-<br />
|wonder || Ionut Biru<br />
|-<br />
|Xilon||Sebastian Nowicki<br />
|-<br />
|xterminus||Charles Mauch<br />
|-<br />
|zeus||Zhukov Pavel<br />
|}</div>Costalfyhttps://wiki.archlinux.org/index.php?title=User:Costalfy&diff=137811User:Costalfy2011-04-20T13:14:01Z<p>Costalfy: Created page with "I'm a member of [http://wiki.archlinux.fr/Utilisateur:Costalfy Archlinux-fr]"</p>
<hr />
<div>I'm a member of [http://wiki.archlinux.fr/Utilisateur:Costalfy Archlinux-fr]</div>Costalfyhttps://wiki.archlinux.org/index.php?title=NVIDIA&diff=137795NVIDIA2011-04-20T11:35:18Z<p>Costalfy: </p>
<hr />
<div>[[Category: Graphics (English)]]<br />
[[Category: X Server (English)]]<br />
[[Category: HOWTOs (English)]]<br />
{{i18n|NVIDIA}}<br />
[[de:Nvidia]]<br />
[[fr:Nvidia]]<br />
{{Article summary start}}<br />
{{Article summary text|Information on installing, configuring and troubleshooting the proprietary NVIDIA Drivers.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|ATI}}<br />
{{Article summary wiki|Intel}}<br />
{{Article summary wiki|Nouveau}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
This article covers installing and configuring [http://www.nvidia.com NVIDIA]'s ''proprietary'' graphic card driver. For information about the open-source drivers, see [[Nouveau]].<br />
<br />
==Installing==<br />
These instructions are for those using the stock kernel26 package. For custom kernel setup, skip to the [[#Alternate install: custom kernel|next]] subsection.<br />
<br />
{{Tip|It is usually beneficial to install the NVIDIA driver through pacman rather than through the package provided by the NVIDIA site, this allows the driver to be updated when upgrading the system.}}<br />
<br />
1. Visit NVIDIA's [http://www.nvidia.com/Download/index.aspx?lang=en-us driver download site] to find out the appropiate driver for a given card.<br />
<br />
2. Install the driver for newer cards (newest GPUs after the GF FX):<br />
:<pre># pacman -S nvidia nvidia-utils</pre><br />
<br />
:Whereas users with older cards should install (Geforce FX series cards):<br />
:<pre># pacman -S nvidia-173xx nvidia-173xx-utils</pre><br />
<br />
:or (cards up to the GF 4):<br />
<br />
:<pre># pacman -S nvidia-96xx nvidia-96xx-utils</pre><br />
<br />
:The nvidia{,-173xx,-96xx}-utils packages conflict with the libgl package. This is normal. pacman will ask if it should remove libgl &mdash; answer "yes".<br />
<br />
:{{Note|For the latest card models, it may be required to install {{Package AUR|nvidia-beta}} and {{Package AUR|nvidia-utils-beta}} from the [[AUR]] since the stable drivers may not support the newly introduced features.}}<br />
:On 64 bit systems, for 32 bit programs to take advantage of nvidia-utils you must also install the equivalent lib32 package (for example lib32-nvidia-utils).<br />
<br />
3. '''Reboot'''. The nvidia{,-173xx,-96xx} packages contain a file which blacklists the nouveau module. A reboot is necessary for this blacklist to take effect.<br />
<br />
Once the driver has been installed, continue to: [[#Configuring]].<br />
<br />
===Alternate install: custom kernel===<br />
First of all, it is of advantage to know how the ABS system works by reading some of the other articles about it:<br />
* Main article for [[ABS]]<br />
* Article on [[makepkg]]<br />
* Article on [[Creating Packages]]<br />
<br />
{{Note|There is the {{Package AUR|nvidia-all}} package on [[AUR]] which turns out to make it easier to install the nvidia driver for custom kernels and multiple kernels}}<br />
<br />
The following is a short tutorial for making a custom nvidia driver package using ABS:<br />
<br />
Install ABS and generate the tree:<br />
# pacman -S abs<br />
# abs<br />
As a standard user, make a temporary directory for creating the new package:<br />
$ mkdir -p ~/devel/abs<br />
Make a copy of the nvidia package directory:<br />
$ cp -r /var/abs/extra/nvidia/ ~/devel/abs/<br />
Go into the temporary nvidia build directory:<br />
$ cd ~/devel/abs/nvidia<br />
It is required to edit the files {{Filename|nvidia.install}} and {{Filename|PKGBUILD}} file so that they contain the right kernel version variables.<br />
<br />
While running the custom kernel, get the appropiate kernel and local version names:<br />
$ uname -r<br />
# In nvidia.install, replace the <code>KERNEL_VERSION="2.6.xx-ARCH"</code> variable with the custom kernel version, such as <code>KERNEL_VERSION="2.6.22.6"</code> or <code>KERNEL_VERSION"2.6.22.6-custom"</code> depending on what the kernel's version is and the local version's text/numbers. Do this for all instances of the version number within this file.<br />
# In PKGBUILD, change the <code>_kernver='2.6.xx-ARCH'</code> variable to match the appropiate version, as above.<br />
# If there are more than one kernels in the system installed in parallel, (such as a custom kernel alongside the default -ARCH kernel) change the <code>"pkgname=nvidia"</code> variable in the PKGBUILD to a unique identifier, such as nvidia-2622 or nvidia-custom. This will allow both kernels to use the nvidia module, since the custom nvidia module has a different package name and will not overwrite the original.<br />
<br />
Then do:<br />
$ makepkg -ci<br />
The {{Codeline|-c}} operand tells makepkg to clean left over files after building the nvidia driver, whereas {{Codeline|-i}} specifies that makepkg should automatically run pacman to install the resulting package.<br />
<br />
==Configuring==<br />
It is possible that after installing the driver it may not be needed to create an Xorg server configuration file. You can run [[Xorg#Running Xorg| a test]] to see if the Xorg server will function correctly without a configuration file. However, it may be required to create a {{Filename|/etc/X11/xorg.conf}} configuration file in order to adjust various settings. This configuration can be generated by the NVIDIA Xorg configuration tool, or it can be created manually. If created manually, it can be a minimal configuration (in the sense that it will only pass the basic options to the [[Xorg]] server), or it can include a [[Xorg#Manual configuration|number of settings]] that can bypass Xorg's auto-discovered or pre-configured options.<br />
<br />
===Automatic configuration===<br />
The NVIDIA package includes an automatic configuration tool to create an Xorg server configuration file ({{Filename|xorg.conf}}) and can be run by:<br />
# nvidia-xconfig<br />
<br />
This command will auto-detect and create (or edit, if already present) the {{Filename|/etc/X11/xorg.conf}} configuration according to present hardware.<br />
<br />
If there are instances of DRI, ensure they are commented out:<br />
# Load "dri"<br />
Double check your {{filename | /etc/X11/xorg.conf}} to make sure your default depth, horizontal sync, vertical refresh, and resolutions are acceptable.<br />
<br />
{{Warning| That may still not work properly with Xorg-server 1.8 }}<br />
<br />
===Automatic configuration with multiple monitors===<br />
The NVIDIA package provides Twinview. This tool will help by automatically configuring all the monitors connected to your video card. This only works for multiple monitors on a single card.<br />
To configure Xorg Server with Twinview run:<br />
# nvidia-xconfig --twinview<br />
<br />
===Minimal configuration===<br />
To create a basic {{Filename|/etc/X11/xorg.conf}}, as root:<br />
# vi /etc/X11/xorg.conf<br />
<br />
And add the driver:<br />
<pre><br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
EndSection<br />
</pre><br />
<br />
{{Tip|Make sure, in order to have full multimedia functionality, to have '''xorg-input-drivers''' installed.}}<br />
{{Tip|If upgrading from the nouveau drivers make sure to remove "nouveau" from /etc/mkinitcpio.conf. You can use [https://wiki.archlinux.org/index.php/NVIDIA#Switching_between_nvidia_and_nouveau_drivers those scripts] if you are switching between open and closed drivers often.}}<br />
<br />
==Tweaking==<br />
<br />
===GUI: nvidia-settings===<br />
The NVIDIA package includes the {{Codeline|nvidia-settings}} program that allows adjustment of several additional settings.<br />
<br />
For the settings to be loaded on login, run this command from the terminal:<br />
$ nvidia-settings --load-config-only<br />
<br />
Or add it to the the desktop environment's auto-startup method.<br />
<br />
{{Tip | On rare occasions the {{Filename|~/.nvidia-settings-rc}} may become corrupt. If this happens, the Xorg server may crash and the file will have to be deleted to fix the issue.}}<br />
<br />
===Advanced: xorg.conf===<br />
Edit {{Filename|/etc/X11/xorg.conf}}, and add the option to the correct section. NVIDIA tests and ships the drivers with the recommended setting so note that some edits may cause instability, tearing, among other problems. Since not all options may work for a given system, consider backing up {{Filename|xorg.conf}} before making any edits. The Xorg server will need to be restarted before any changes are applied.<br />
<br />
* See [http://us.download.nvidia.com/XFree86/Linux-x86_64/256.53/README/index.html NVIDIA Accelerated Linux Graphics Driver README and Installation Guide] for additional details and options.]<br />
====Enabling desktop composition====<br />
As of NVIDIA driver version 180.44, support for GLX with the Damage and Composite X extensions is enabled by default. Refer to [[Composite]] for detailed instructions.<br />
<br />
====Disabling the logo on startup====<br />
Add the {{Codeline|"NoLogo"}} option under section {{Codeline|Device}}:<br />
Option "NoLogo" "1"<br />
<br />
====Enabling hardware acceleration====<br />
{{Note|RenderAccel is enabled by default since drivers version 97.46.xx}}<br />
Add the {{Codeline|"RenderAccel"}} option under section {{Codeline|Device}}:<br />
Option "RenderAccel" "1"<br />
<br />
====Overriding monitor detection====<br />
The {{Codeline|"ConnectedMonitor"}} option under section {{Codeline|Device}} allows to override monitor detection when X server starts, which may save a significant amount of time at start up. The available options are: {{Codeline|"CRT"}} for analog connections, {{Codeline|"DFP"}} for digital monitors and {{Codeline|"TV"}} for televisions.<br />
<br />
The following statement forces the NVIDIA driver to bypass startup checks and recognize the monitor as DFP:<br />
Option "ConnectedMonitor" "DFP"<br />
{{Note| Use "CRT" for all analog 15 pin VGA connections, even if the display is a flat panel. "DFP" is intended for DVI digital connections only.}}<br />
<br />
====Enabling triple buffering====<br />
Enable the use of triple buffering by adding the {{Codeline|"TripleBuffer"}} Option under section {{Codeline|Device}}:<br />
Option "TripleBuffer" "1"<br />
<br />
Use this option if the graphics card has plenty of ram (equal or greater than 128MB). The setting only takes effect when syncing to vblank is enabled, one of the options featured in nvidia-settings.<br />
<br />
{{Note|This option may introduce full-screen tearing and reduce performance.}}<br />
<br />
====Using OS-level events====<br />
Taken from the NVIDIA driver's [http://http.download.nvidia.com/XFree86/Linux-x86/1.0-7182/README/readme.txt README] file: ''"[...] Use OS-level events to efficiently notify X when a client has performed direct rendering to a window that needs to be composited."'' It may help improving performance, but it is currently incompatible with SLI and Multi-GPU modes.<br />
<br />
Add under section {{Codeline|Device}}:<br />
Option "DamageEvents" "1"<br />
{{Note|This option is enabled by default in newer driver versions.}}<br />
<br />
====Enabling power saving====<br />
Add under section <code>Monitor</code>:<br />
Option "DPMS" "1"<br />
<br />
====Enabling SLI====<br />
Taken from the NVIDIA driver's [http://http.download.nvidia.com/XFree86/Linux-x86/1.0-8774/README/appendix-d.html README] appendix: ''This option controls the configuration of SLI rendering in supported configurations.'' A ''supported configuration'' is a computer equipped with an SLI-Certified Motherboard and 2 or 3 SLI-Certified GeForce GPUs. See NVIDIA's [http://www.slizone.com/page/home.html SLI Zone] for more information.<br />
<br />
Find the first GPU's PCI Bus ID using {{Codeline|lspci}}:<br />
$ lspci | grep VGA<br />
<br />
This will return something similar to:<br />
03:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 8800 GTS 512] (rev a2)<br />
05:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 8800 GTS 512] (rev a2)<br />
<br />
Add the BusID (3 in the previous example) under section {{Codeline|Device}}:<br />
BusID "PCI:3:0:0"<br />
<br />
{{Note|The format is important. The BusID value must be specified as {{Codeline|"PCI:<BusID>:0:0"}}}}<br />
<br />
Add the desired SLI rendering mode value under section {{Codeline|Screen}}:<br />
Option "SLI" "SLIAA"<br />
<br />
The table that follows presents the available rendering modes.<br />
<br />
{| border="1"<br />
! Value !! Behavior<br />
|-<br />
| 0, no, off, false, Single || Use only a single GPU when rendering.<br />
|-<br />
| 1, yes, on, true, Auto || Enable SLI and allow the driver to automatically select the appropriate rendering mode.<br />
|-<br />
| AFR || Enable SLI and use the alternate frame rendering mode.<br />
|-<br />
| SFR || Enable SLI and use the split frame rendering mode.<br />
|-<br />
| SLIAA || Enable SLI and use SLI antialiasing. Use this in conjunction with full scene antialiasing to improve visual quality.<br />
|}<br />
<br />
<br />
To verify that SLI mode is enabled from a shell:<br />
$ nvidia-settings -q all | grep SLIMode<br />
Attribute 'SLIMode' (arch:0.0): AA <br />
'SLIMode' is a string attribute.<br />
'SLIMode' is a read-only attribute.<br />
'SLIMode' can use the following target types: X Screen.<br />
<br />
====Forcing Powermizer performance level (for laptops)====<br />
Add under section {{Codeline|Device}}:<br />
# Force Powermizer to a certain level at all times<br />
# level 0x1=highest<br />
# level 0x2=med<br />
# level 0x3=lowest<br />
<br />
# AC settings:<br />
Option "RegistryDwords" "PowerMizerLevelAC=0x3"<br />
# Battery settings:<br />
Option "RegistryDwords" "PowerMizerLevel=0x3"<br />
Settings are better explained in [http://tutanhamon.com.ua/technovodstvo/NVIDIA-UNIX-driver/ NVIDIA Driver for X.org:Performance and Power Saving Hints].<br />
<br />
=====Letting the GPU set its own performance level based on temperature=====<br />
Add under section {{Codeline|Device}}:<br />
Option "RegistryDwords" "PerfLevelSrc=0x3333"<br />
<br />
====Disable vblank interrupts (for laptops)====<br />
When running the interrupt detection utility {{Codeline|powertop}}, it can be observed that the Nvidia driver will generate an interrupt for every vblank. To disable, place in the {{Codeline|Device}} section:<br />
Option "OnDemandVBlankInterrupts" "1"<br />
This will reduce interrupts to about one or two per second.<br />
<br />
====Enabling overclocking====<br />
{{Warning|Please note that overclocking may damage hardware and that no responsibility may be placed on the authors of this page due to any damage to any information technology equipment from operating products out of specifications set by the manufacturer.}}<br />
To enable GPU and memory overclocking, place the following line in the {{Codeline|Device}} section:<br />
Option "Coolbits" "1"<br />
<br />
This will enable on-the-fly overclocking within an X session by running:<br />
$ nvidia-settings<br />
{{Note|GTX 4xx/5xx series Fermi cores cannot currently be overclocked using <br />
the Coolbits method. The alternative is to edit and reflash the GPU BIOS either under DOS (preferred), or within a Win32 environment by way of [http://www.mvktech.net/component/option,com_remository/Itemid,26/func,select/id,127/orderby,2/page,1/ nvflash] and [http://www.mvktech.net/component/option,com_remository/Itemid,26/func,select/id,135/orderby,2/page,1/ NiBiTor 6.0]. The advantage of BIOS flashing is that not only can voltage limits be raised, but stability is generally improved over software overclocking methods such as Coolbits.}}<br />
<br />
===== Setting static 2D/3D clocks =====<br />
Set the following string in the {{Codeline|Device}} section to enable PowerMizer at its maximum performance level:<br />
Option "RegistryDwords" "PerfLevelSrc=0x2222"<br />
Set one of the following two strings in the {{Codeline|Device}} section to enable manual GPU fan control within {{codeline|nvidia-settings}}:<br />
Option "Coolbits" "4"<br />
<br />
Option "Coolbits" "5"<br />
<br />
====Enable screen rotation through XRandR====<br />
Place the following line in the {{Codeline|Device}} section:<br />
Option "RandRRotation" "True"<br />
After restarting Xorg:<br />
$ xrandr -o left<br />
The Screen should be rotated. To restore:<br />
$ xrandr -o normal<br />
{{Note| Editing xorg.conf may be unnecessary since screen rotation should be enabled by default, ideally by using the respective DE tools, such as SystemSettings in KDE.}}<br />
<br />
==Tips and tricks==<br />
===Enabling Pure Video HD (VDPAU/VAAPI)===<br />
'''Hardware Required:''' <br />
<br />
At least a video card with second generation PureVideo HD [http://en.wikipedia.org/wiki/PureVideo_HD#Table_of_PureVideo_.28HD.29_GPUs]<br />
<br />
'''Software Required:'''<br />
<br />
Nvidia video cards with the proprietary driver installed will provide video decoding capabilities with the VDPAU interface at different levels according to PureVideo generation.<br />
<br />
You can also add support for the VA-API interface with:<br />
# pacman -S vdpau-video<br />
<br />
Check VA-API support with:<br />
$ vainfo<br />
<br />
To take full advantage of the hardware decoding capability of your video card you will need a media player that supports VDPAU or VA-API.<br />
<br />
To enable hardware acceleration in '''MPlayer''' edit ~/.mplayer/config<br />
<br />
vo=vdpau<br />
vc=ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau,<br />
<br />
<br />
To enable hardware acceleration in '''VLC''' go:<br />
<br />
Tools -> Preferences -> Input & Codecs -> check "Use GPU acceleration (experimental)"<br />
<br />
To enable hardware acceleration in '''smplayer''' go:<br />
<br />
Options -> Preferences -> General -> Video Tab -> select vdpau as output driver<br />
<br />
To enable hardware acceleration in '''gnome-mplayer''' go:<br />
<br />
Edit -> Preferences -> set video output to vdpau<br />
<br />
'''Playing HD movies on cards with low memory:'''<br />
<br />
If your graphic card doesn't have a lot of memory(>521MB?), you can experience glitches when watching 1080p or even 720p movies.<br />
To avoid that start simple window manager like TWM or MWM.<br />
<br />
Additionally increasing the MPlayer's cache size in ~/.mplayer/config can help, when your hard drive is spinning down when watching HD movies.<br />
<br />
===Using TV-out===<br />
A good article on the subject can be found [http://en.wikibooks.org/wiki/NVidia/TV-OUT here]<br />
<br />
===X with a TV (DFP) as the only display===<br />
The X server falls back to CRT-0 if no monitor is automatically detected. This can be a problem when using a DVI connected TV as the main display, and X is started while the TV is turned off or otherwise disconnected.<br />
<br />
To force nvidia to use DFP, store a copy of the EDID somewhere in the filesystem so that X can parse the file instead of reading EDID from the TV/DFP.<br />
<br />
To acquire the EDID, start nvidia-settings. It will show some information in tree format, ignore the rest of the settings for now and select the GPU (the corresponding entry should be titled "GPU-0" or similar), click the "DFP" section (again, "DFP-0" or similar), click on the "Acquire Edid" Button and store it somewhere, for example, {{Filename|/etc/X11/dfp0.edid}}.<br />
<br />
Edit xorg.conf by adding to the "Device" section:<br />
Option "ConnectedMonitor" "DFP"<br />
Option "CustomEDID" "DFP-0:/etc/X11/dfp0.edid"<br />
The "ConnectedMonitor" option forces the driver to recognize the DFP as if it were connected. The "CustomEDID" provides EDID data for the device, meaning that it will start up just as if the TV/DFP was connected during X the process.<br />
<br />
This way, one can automatically start a display manager at boot time and still have a working and properly configured X screen by the time the TV gets powered on.<br />
<br />
===Displaying GPU temperature in the shell===<br />
====Method 1 - nvidia-settings====<br />
{{Note|This method requires that you're using X. Use Method 2 or Method 3 if you are not. Also note that Method 3 currently does not not work with newer nvidia cards such as the G210/220 as well as embedded GPUs such as the Zotac IONITX's 8800GS.}}<br />
<br />
To display the GPU temp in the shell, use nvidia-settings as follows:<br />
$ nvidia-settings -q gpucoretemp<br />
<br />
This will output something similar to the following:<br />
Attribute 'GPUCoreTemp' (hostname:0.0): 41.<br />
'GPUCoreTemp' is an integer attribute.<br />
'GPUCoreTemp' is a read-only attribute.<br />
'GPUCoreTemp' can use the following target types: X Screen, GPU.<br />
<br />
The GPU temps of this board is 41 C.<br />
<br />
In order to get just the temperature for use in utils such as rrdtool or conky, among others:<br />
$ nvidia-settings -q gpucoretemp -t<br />
41<br />
<br />
====Method 2 - nvidia-smi====<br />
<br />
Use nvidia-smi which can read temps directly from the GPU without the need to use X at all. This is important for a small group of users who do not have X running on their boxes, perhaps because the box is headless running server apps. <br />
To display the GPU temp in the shell, use nvidia-smi as follows:<br />
<br />
$ nvidia-smi -a<br />
<br />
This should output something similar to the following:<br />
<pre><br />
$ nvidia-smi -a<br />
<br />
==============NVSMI LOG==============<br />
<br />
<br />
Timestamp : Mon Dec 13 20:11:28 2010<br />
<br />
Driver Version : 260.19.29<br />
<br />
<br />
GPU 0:<br />
Product Name : GeForce 8400 GS<br />
PCI Device/Vendor ID : 6e410de<br />
PCI Location ID : 0:1:0<br />
Board Serial : 2648101198649<br />
Display : Connected<br />
Temperature : 40 C<br />
Utilization<br />
GPU : 1%<br />
Memory : 8%<br />
<br />
</pre><br />
<br />
In order to get just the temperature for use in utils such as rrdtool or conky, among others:<br />
<br />
$ nvidia-smi -a | grep Temp | cut -c17-18<br />
40<br />
<br />
Reference: http://www.question-defense.com/2010/03/22/gpu-linux-shell-temp-get-nvidia-gpu-temperatures-via-linux-cli<br />
<br />
====Method 3 - nvclock====<br />
Use nvclock which is available from the [extra] repo. Note that nvclock cannot access thermal sensors on newer nvidia cards such as the G210/220.<br />
<br />
There can be significant differences between the temperatures reported by nvclock and nvidia-settings/nv-control. According to [http://sourceforge.net/projects/nvclock/forums/forum/67426/topic/1906899 this post] by the author (thunderbird) of nvclock, the nvclock values should be more accurate.<br />
<br />
===Set Fan Speed at Login===<br />
You can adjust the fan speed on your graphics card with {{Codeline|nvidia-settings}}'s console interface. First ensure that your Xorg configuration sets the Coolbits option to 4 or 5 in your {{Codeline|Device}} section to enable fan control.<br />
<br />
Option "Coolbits" "4"<br />
<br />
{{Note|GTX 4xx/5xx series cards cannot currently set fan speeds at login using this method. This method only allows for the setting of fan speeds within the current X session by way of nvidia-settings.}}<br />
<br />
Place the following line in your [[xinitrc|{{filename|~/.xinitrc}}]] file to adjust the fan when you launch Xorg. Replace <n> with the fan speed percentage you want to set.<br />
<br />
nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUCurrentFanSpeed=<n>"<br />
<br />
You can also configure a second GPU by incrementing the GPU and fan number.<br />
<br />
nvidia-settings -a "[gpu:0]/GPUFanControlState=1" \ <br />
-a "[gpu:1]/GPUFanControlState=1" \<br />
-a "[fan:0]/GPUCurrentFanSpeed=<n>" \<br />
-a [fan:1]/GPUCurrentFanSpeed=<n>" &<br />
<br />
If you use a login manager such as GDM or KDM, you can create a desktop entry file to process this setting. Create {{filename|~/.config/autostart/nvidia-fan-speed.desktop}} and place this text inside it. Again, change <n> to the speed percentage you want.<br />
<br />
[Desktop Entry]<br />
Type=Application<br />
Exec=nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUCurrentFanSpeed=<n>"<br />
X-GNOME-Autostart-enabled=true<br />
Name=nvidia-fan-speed<br />
<br />
===Order of install/deinstall for changing drivers===<br />
Where the old driver is nvidiaO and the new driver is nvidiaN.<br />
remove nvidiaO<br />
install nvidia-utilsN<br />
install nvidiaN<br />
install lib32-nvidia-utils-N (if required)<br />
<br />
===Switching between nvidia and nouveau drivers===<br />
If you are switching between the nvidia and nouveau driver often, you can use those two scripts to make it easier:<br />
<br />
#!/bin/bash<br />
# nvidia -> nouveau<br />
<br />
/usr/bin/sudo /bin/sed -i 's/#options nouveau modeset=1/options nouveau modeset=1/' /etc/modprobe.d/modprobe.conf<br />
/usr/bin/sudo /bin/sed -i 's/#MODULES="nouveau"/MODULES="nouveau"/' /etc/mkinitcpio.conf<br />
<br />
/usr/bin/sudo /usr/bin/pacman -Rdds --noconfirm nvidia-173xx{,-utils}<br />
/usr/bin/sudo /usr/bin/pacman -S --noconfirm nouveau-dri xf86-video-nouveau<br />
<br />
/usr/bin/sudo /bin/cp {10-monitor,20-nouveau}.conf /etc/X11/xorg.conf.d/<br />
<br />
/usr/bin/sudo /sbin/mkinitcpio -p kernel26<br />
<br />
#!/bin/bash<br />
# nouveau -> nvidia<br />
<br />
/usr/bin/sudo /bin/sed -i 's/options nouveau modeset=1/#options nouveau modeset=1/' /etc/modprobe.d/modprobe.conf<br />
/usr/bin/sudo /bin/sed -i 's/MODULES="nouveau"/#MODULES="nouveau"/' /etc/mkinitcpio.conf<br />
<br />
/usr/bin/sudo /usr/bin/pacman -Rdds --noconfirm nouveau-dri xf86-video-nouveau libgl<br />
/usr/bin/sudo /usr/bin/pacman -S --noconfirm nvidia-173xx{,-utils}<br />
<br />
/usr/bin/sudo /bin/rm /etc/X11/xorg.conf.d/{10-monitor,20-nouveau}.conf<br />
<br />
/usr/bin/sudo /sbin/mkinitcpio -p kernel26<br />
<br />
A reboot is needed to complete the switch.<br />
<br />
I keep 10-monitor.conf and [https://wiki.archlinux.org/index.php/Nouveau#Configuration 20-nouveau.conf] in the same directory as this script. Adjust accordingly if you use other version of nvidia drivers (I use nvidia-173xx).<br />
<br />
==Troubleshooting==<br />
<br />
===Gaming using Twinview===<br />
In case you want to play fullscreen games when using Twinview, you will notice that games recognize the two screens as being one big screen. While this is technically correct (the virtual X screen really is the size of your screens combined), you probably don't want to play on both screens at the same time. <br />
<br />
To correct this behavior for SDL, try:<br />
export SDL_VIDEO_FULLSCREEN_HEAD=1<br />
<br />
For OpenGL, add the appropiate Metamodes to your xorg.conf in section {{Codeline|Device}} and restart X:<br />
Option "Metamodes" "1680x1050,1680x1050; 1280x1024,1280x1024; 1680x1050,NULL; 1280x1024,NULL;"<br />
<br />
Another method that may either work alone or in conjunction with those mentioned above is [[Gaming#Starting_games_in_a_separate_X_server|starting games in a separate X server]].<br />
<br />
===Old Xorg Settings===<br />
If upgrading from an old installation, please remove old {{Filename|/usr/X11R6}} paths as it can cause trouble during installation.<br />
<br />
===Corrupted screen: "Six screens" issue===<br />
For some users using Geforce GT 100M's, the screen turns out corrupted after X starts; divided into 6 sections with a resolution limited to 640x480.<br />
<br />
To solve this problem, enable the Validation Mode {{Codeline|NoTotalSizeCheck}} in section {{Codeline|Device}}:<br />
Section "Device"<br />
...<br />
Option "ModeValidation" "NoTotalSizeCheck"<br />
...<br />
EndSection<br />
==='/dev/nvidia0' Input/Output error===<br />
This error can occur for several different reasons, and the most common solution given for this error is to check for group/file permissions, which in almost every case is ''not'' the issue. The Nvidia documentation does not talk in detail on what you should<br />
do to correct this problem but there are a few things that have worked for some people. The problem can be a IRQ conflict with another device or bad routing by either the kernel or your BIOS.<br />
<br />
First thing to try is to remove other video devices such as video capture cards and see if the problem goes away. If there are too many video processors on the same system it can lead into the kernel being unable to start them because of memory allocation problems with the video controller. In particular on systems with low video memory this can occur even if there's only one video processor. In such case you should find out the amount of your system's video memory (e.g. with ''lspci -v'') and pass allocation parameters to the kernel, e.g.:<br />
vmalloc=64M<br />
or<br />
vmalloc=256M<br />
<br />
Another thing to try is to change your BIOS IRQ routing from ''Operating system controlled'' to ''BIOS controlled'' or the other way around. The first one can be passed as a kernel parameter:<br />
PCI=biosirq<br />
<br />
The ''noacpi'' kernel parameter has also been suggested as a solution but since it disables ACPI completely it should be used with caution. Some hardware are easily damaged by overheating.<br />
<br />
{{Note|The kernel parameters can be passed either through the kernel command line or the bootloader configuration file. See your bootloader Wiki page for more information.}}<br />
<br />
==='/dev/nvidiactl' errors===<br />
Trying to start an opengl application might result in errors such as:<br />
Error: Could not open /dev/nvidiactl because the permissions are too<br />
restrictive. Please see the <code>FREQUENTLY ASKED QUESTIONS</code> <br />
section of <code>/usr/share/doc/NVIDIA_GLX-1.0/README</code> <br />
for steps to correct.<br />
<br />
Solve by adding the appropiate user to the "video" group and relogin:<br />
# gpasswd -a username video<br />
<br />
===32 bit applications do not start===<br />
Under 64 bit systems, installing {{Codeline|lib32-nvidia-utils}} that corresponds to the same version installed for the 64 bit driver fixes the issue.<br />
<br />
===Errors after updating the kernel===<br />
If a custom build of nvidia's module is used instead of the package from [extra], a recompile is required every time the kernel is updated. Rebooting is generally recommended after updating kernel and graphic drivers.<br />
<br />
===Crashing in general===<br />
* Try disabling {{Codeline|RenderAccel}} in xorg.conf.<br />
* If Xorg outputs an error about "conflicting memory type" or "failed to allocate primary buffer: out of memory", add {{Codeline|nopat}} at the end of the {{Codeline|kernel}} line in {{Codeline|/boot/grub/menu.lst}}.<br />
* If the NVIDIA compiler complains about different versions of GCC between the current one and the one used for compiling the kernel, add in {{Codeline|/etc/profile}}:<br />
export IGNORE_CC_MISMATCH=1<br />
* If Xorg is crashing with a "Signal 11" while using nvidia-96xx drivers, try disabling PAT. Pass the argument {{Codeline|nopat}} to the {{Codeline|kernel}} line in {{Codeline|menu.lst}}.<br />
More information about trouble-shooting the driver can be found in the [http://www.nvnews.net/vbulletin/forumdisplay.php?s=&forumid=14 NVIDIA forums.]<br />
<br />
===Bad performance after installing a new driver version===<br />
If FPS have dropped in comparison with older drivers, first check if direct rendering is turned on: <br />
$ glxinfo | grep direct<br />
If the command prints:<br />
direct rendering: No <br />
then that could be an indication for the sudden FPS drop.<br />
<br />
A possible solution could be to regress to the previously installed driver version and rebooting afterwards.<br />
<br />
===CPU spikes with 400 series cards===<br />
If you're experiencing intermittent CPU spikes with a 400 series card, it may be caused by PowerMizer constantly changing the GPU's clock frequency. Switching PowerMizer's setting from Adaptive to Performance, add the following to the Device section of your Xorg configuration:<br />
<br />
Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"<br />
<br />
===Laptops: X hangs on login/out, worked around with Ctrl+Alt+Backspace===<br />
If while using the legacy nvidia drivers Xorg hangs on login and logout (particularly with an odd screen split into two black and white/gray pieces), but logging in is still possible via Ctrl-Alt-Backspace (or whatever the new "kill X" keybind is), try adding this in {{Filename|/etc/modprobe.d/modprobe.conf}}:<br />
options nvidia NVreg_Mobile=1<br />
<br />
One user had luck with this instead, but it makes performance drop significantly for others:<br />
options nvidia NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=33 NVreg_DeviceFileMode=0660 NVreg_SoftEDIDs=0 NVreg_Mobile=1<br />
<br />
Note that {{Codeline|NVreg_Mobile}} needs to be changed according to the laptop:<br />
* 1 for Dell laptops.<br />
* 2 for non-Compal Toshiba laptops.<br />
* 3 for other laptops.<br />
* 4 for Compal Toshiba laptops.<br />
* 5 for Gateway laptops.<br />
<br />
See [http://http.download.nvidia.com/XFree86/Linux-x86/1.0-7182/README/readme.txt NVIDIA Driver's Readme:Appendix K] for more information.<br />
<br />
===Refresh rate not detected properly by XRandR dependant utilities===<br />
The XRandR X extension is not presently aware of multiple display devices on a single X screen; it only sees the {{Codeline|MetaMode}} bounding box, which may contain one or more actual modes. This means that if multiple MetaModes have the same bounding box, XRandR will not be able to distinguish between them.<br />
<br />
In order to support {{Codeline|DynamicTwinView}}, the NVIDIA driver must make each MetaMode appear to be unique to XRandR. Presently, the Nvidia driver accomplishes this by using the refresh rate as a unique identifier.<br />
<br />
Use {{Codeline|nvidia-settings -q RefreshRate}} to query the actual refresh rate on each display device.<br />
<br />
The XRandR extension is currently being redesigned by the X.Org community, so the refresh rate workaround may be removed at some point in the future.<br />
<br />
This workaround can also be disabled by setting the "DynamicTwinView" X configuration option to "false", which will disable NV-CONTROL support for manipulating MetaModes, but will cause the XRandR and XF86VidMode visible refresh rate to be accurate.<br />
<br />
==External links==<br />
* [http://www.nvnews.net/vbulletin/forumdisplay.php?s=&forumid=14 NVIDIA forums]<br />
* [http://http.download.nvidia.com/XFree86/Linux-x86/1.0-7182/README/readme.txt Official readme for NVIDIA drivers]</div>Costalfyhttps://wiki.archlinux.org/index.php?title=Codecs_and_containers&diff=137794Codecs and containers2011-04-20T11:30:06Z<p>Costalfy: /* GStreamer */ install the meta package gstreamer0.10-plugins</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
[[fr:Codecs]]<br />
{{i18n|Codecs}}<br />
{{Expansion}}<br />
{{Article summary start}}<br />
{{Article summary text|An overview of codec packages available for Arch Linux.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|DVD Playing}}<br />
{{Article summary wiki|GStreamer}}<br />
{{Article summary wiki|MPlayer}}<br />
{{Article summary end}}<br />
<br />
From [[Wikipedia:Codec]]:<br />
<br />
:''A codec is a device or computer program capable of encoding and/or decoding a digital data stream or signal.''<br />
<br />
In general, codecs are utilized by multimedia applications to encode or decode audio or video streams. In order to play encoded streams, users must ensure an appropriate codec is installed.<br />
<br />
This article deals only with codecs and application backends; see [[Common Applications#Multimedia]] for a list of media players ([[MPlayer]] and [http://www.videolan.org/vlc/ VLC] are popular choices).<br />
<br />
==Requirements==<br />
<br />
Playing multimedia content requires two components:<br />
<br />
* A capable media player<br />
* The appropriate codec<br />
<br />
==Common codecs==<br />
<br />
* {{Package Official|a52dec}}: liba52 is a free library for decoding ATSC A/52 streams<br />
* {{Package Official|faac}}: FAAC is an AAC audio encoder<br />
* {{Package Official|faad2}}: ISO AAC audio decoder<br />
* {{Package Official|flac}}: Free Lossless Audio Codec<br />
* {{Package Official|jasper}}: A software-based implementation of the codec specified in the emerging JPEG-2000 Part-1 standard<br />
* {{Package Official|lame}}: An MP3 encoder and graphical frame analyzer<br />
* {{Package Official|libdca}}: Free library for decoding DTS Coherent Acoustics streams<br />
* {{Package Official|libdv}}: The Quasar DV codec (libdv) is a software codec for DV video<br />
* {{Package Official|libmad}}: A high-quality MPEG audio decoder<br />
* {{Package Official|libmpeg2}}: libmpeg2 is a library for decoding MPEG-1 and MPEG-2 video streams<br />
* {{Package Official|libtheora}}: An open video codec developed by the Xiph.org<br />
* {{Package Official|libvorbis}}: Vorbis codec library<br />
* {{Package Official|libxv}}: X11 Video extension library<br />
* {{Package Official|wavpack}}: Audio compression format with lossless, lossy, and hybrid compression modes<br />
* {{Package Official|x264}}: Free library for encoding H264/AVC video streams<br />
* {{Package Official|xvidcore}}: XviD is an open source MPEG-4 video codec<br />
<br />
==Backends==<br />
<br />
===GStreamer===<br />
<br />
From http://www.gstreamer.net/:<br />
<br />
:''[[GStreamer]] is a library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing.''<br />
<br />
Simply, GStreamer is a ''backend'' or ''framework'' utilized by many media players. <br />
<br />
GStreamer uses a plugin architecture which makes the most of GStreamer's functionality implemented as shared libraries. Since version 0.10 the plugins come grouped into three sets (named after the film The Good, the Bad and the Ugly).[http://en.wikipedia.org/wiki/GStreamer]<br />
<br />
* {{Package Official|gstreamer0.10-base-plugins}}<br />
* {{Package Official|gstreamer0.10-good-plugins}}<br />
* {{Package Official|gstreamer0.10-bad-plugins}}<br />
* {{Package Official|gstreamer0.10-ugly-plugins}}<br />
* {{Package Official|gstreamer0.10-ffmpeg}}<br />
<br />
For the most complete solution:<br />
<br />
# pacman -S gstreamer0.10-plugins<br />
<br />
===xine===<br />
<br />
From http://www.xine-project.org/about:<br />
<br />
:''xine is a free (gpl-licensed) high-performance, portable and reusable multimedia playback engine. xine itself is a shared library with an easy to use, yet powerful API which is used by many applications for smooth video playback and video processing purposes.''<br />
<br />
As an alternative to GStreamer, many media players can be configured to utilize the xine backend:<br />
<br />
# pacman -S xine-lib<br />
<br />
Note that the xine project itself provides a capable video player, {{Package Official|xine-ui}}. <br />
<br />
==Tips and tricks==<br />
<br />
===Install MPlayer binary codecs===<br />
<br />
As an ultimate solution, you can try to install MPlayer binary codecs.<br />
<br />
If you are not able to play some files go to http://www.mplayerhq.hu/design7/dload.html, read the instructions and install the codec you need to play your files.<br />
<br />
They can also be found in AUR with the name [http://aur.archlinux.org/packages.php?ID=2697 codecs].</div>Costalfyhttps://wiki.archlinux.org/index.php?title=Talk:Lm_sensors&diff=137700Talk:Lm sensors2011-04-19T13:33:51Z<p>Costalfy: Created page with "is '''Notice for kernels >=2.6.31''' still valid with 2.6.38 kernel?"</p>
<hr />
<div>is '''Notice for kernels >=2.6.31''' still valid with 2.6.38 kernel?</div>Costalfyhttps://wiki.archlinux.org/index.php?title=Codecs_and_containers&diff=137692Codecs and containers2011-04-19T12:43:58Z<p>Costalfy: </p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
[[fr:Codecs]]<br />
{{i18n|Codecs}}<br />
{{Expansion}}<br />
{{Article summary start}}<br />
{{Article summary text|An overview of codec packages available for Arch Linux.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|DVD Playing}}<br />
{{Article summary wiki|GStreamer}}<br />
{{Article summary wiki|MPlayer}}<br />
{{Article summary end}}<br />
<br />
From [[Wikipedia:Codec]]:<br />
<br />
:''A codec is a device or computer program capable of encoding and/or decoding a digital data stream or signal.''<br />
<br />
In general, codecs are utilized by multimedia applications to encode or decode audio or video streams. In order to play encoded streams, users must ensure an appropriate codec is installed.<br />
<br />
This article deals only with codecs and application backends; see [[Common Applications#Multimedia]] for a list of media players ([[MPlayer]] and [http://www.videolan.org/vlc/ VLC] are popular choices).<br />
<br />
==Requirements==<br />
<br />
Playing multimedia content requires two components:<br />
<br />
* A capable media player<br />
* The appropriate codec<br />
<br />
==Common codecs==<br />
<br />
* {{Package Official|a52dec}}: liba52 is a free library for decoding ATSC A/52 streams<br />
* {{Package Official|faac}}: FAAC is an AAC audio encoder<br />
* {{Package Official|faad2}}: ISO AAC audio decoder<br />
* {{Package Official|flac}}: Free Lossless Audio Codec<br />
* {{Package Official|jasper}}: A software-based implementation of the codec specified in the emerging JPEG-2000 Part-1 standard<br />
* {{Package Official|lame}}: An MP3 encoder and graphical frame analyzer<br />
* {{Package Official|libdca}}: Free library for decoding DTS Coherent Acoustics streams<br />
* {{Package Official|libdv}}: The Quasar DV codec (libdv) is a software codec for DV video<br />
* {{Package Official|libmad}}: A high-quality MPEG audio decoder<br />
* {{Package Official|libmpeg2}}: libmpeg2 is a library for decoding MPEG-1 and MPEG-2 video streams<br />
* {{Package Official|libtheora}}: An open video codec developed by the Xiph.org<br />
* {{Package Official|libvorbis}}: Vorbis codec library<br />
* {{Package Official|libxv}}: X11 Video extension library<br />
* {{Package Official|wavpack}}: Audio compression format with lossless, lossy, and hybrid compression modes<br />
* {{Package Official|x264}}: Free library for encoding H264/AVC video streams<br />
* {{Package Official|xvidcore}}: XviD is an open source MPEG-4 video codec<br />
<br />
==Backends==<br />
<br />
===GStreamer===<br />
<br />
From http://www.gstreamer.net/:<br />
<br />
:''[[GStreamer]] is a library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing.''<br />
<br />
Simply, GStreamer is a ''backend'' or ''framework'' utilized by many media players. <br />
<br />
GStreamer uses a plugin architecture which makes the most of GStreamer's functionality implemented as shared libraries. Since version 0.10 the plugins come grouped into three sets (named after the film The Good, the Bad and the Ugly).[http://en.wikipedia.org/wiki/GStreamer]<br />
<br />
* {{Package Official|gstreamer0.10-base-plugins}}<br />
* {{Package Official|gstreamer0.10-good-plugins}}<br />
* {{Package Official|gstreamer0.10-bad-plugins}}<br />
* {{Package Official|gstreamer0.10-ugly-plugins}}<br />
* {{Package Official|gstreamer0.10-ffmpeg}}<br />
<br />
For the most complete solution:<br />
<br />
# pacman -S gstreamer0.10-{base,good,bad,ugly}-plugins gstreamer0.10-ffmpeg<br />
<br />
===xine===<br />
<br />
From http://www.xine-project.org/about:<br />
<br />
:''xine is a free (gpl-licensed) high-performance, portable and reusable multimedia playback engine. xine itself is a shared library with an easy to use, yet powerful API which is used by many applications for smooth video playback and video processing purposes.''<br />
<br />
As an alternative to GStreamer, many media players can be configured to utilize the xine backend:<br />
<br />
# pacman -S xine-lib<br />
<br />
Note that the xine project itself provides a capable video player, {{Package Official|xine-ui}}. <br />
<br />
==Tips and tricks==<br />
<br />
===Install MPlayer binary codecs===<br />
<br />
As an ultimate solution, you can try to install MPlayer binary codecs.<br />
<br />
If you are not able to play some files go to http://www.mplayerhq.hu/design7/dload.html, read the instructions and install the codec you need to play your files.<br />
<br />
They can also be found in AUR with the name [http://aur.archlinux.org/packages.php?ID=2697 codecs].</div>Costalfyhttps://wiki.archlinux.org/index.php?title=Android_tethering&diff=137656Android tethering2011-04-19T09:55:58Z<p>Costalfy: </p>
<hr />
<div>[[fr:Modem_attaché_Android]]<br />
[[Category:HOWTOs (English)]]<br />
[[Category:Networking (English)]]<br />
==What is Tethering==<br />
<br />
Tethering is a way to have Internet access on your PC through your smartphone using it's network connection.<br />
Usb and wifi access point tethering is natively supported from Android Froyo ( 2.2 ). Older versions of the Android OS, mostly unofficial roms<br />
have this option enabled.<br />
<br />
== Wifi access point ==<br />
Since Froyo ( Android 2.2 ), wifi access point ( use 3G ) is accessible by default, without the need to root the phone. Moreover, this method will not discharging battery too fast like USB.<br />
See : '''menu/wireless & networks/Internet tethering/Wifi access point'''<br />
<br />
== USB tethering ==<br />
<br />
===Tools Needed===<br />
* Root access to the PC ( for old Androids, Froyo ( Android 2.2 ) can do it natively )<br />
* Usb connection cable from your phone to pc<br />
<br />
=== Procedure ===<br />
*Disconnect your pc from for current wifi or ethernet network<br />
*Connect the phone to your pc using the usb cable<br />
*Enable the the tethering option from your phone. This is usually done from<br />
Settings --> Wireless & Networks --> Internet tethering<br />
<br />
'''(The following step may not be needed. usbnet module may not be necessary, do it only if you don't see a usb0 interface in the ifconfig step)'''<br />
*Load the usbnet module(if it's not already loaded). You will need root access to do that<br />
<pre><br />
modprobe usbnet<br />
</pre><br />
*Make sure that the usb interface is recognized by the system by using the following command<br />
<pre><br />
ifconfig -a<br />
</pre><br />
you should be able to see a usb0 device listed like this(notice the usb0 device):<br />
<pre><br />
root@arch:~# ifconfig -a<br />
eth0 Link encap:Ethernet HWaddr 00:16:36:FA:3E:31 <br />
UP BROADCAST MULTICAST MTU:1500 Metric:1<br />
RX packets:0 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)<br />
<br />
lo Link encap:Local Loopback <br />
inet addr:127.0.0.1 Mask:255.0.0.0<br />
inet6 addr: ::1/128 Scope:Host<br />
UP LOOPBACK RUNNING MTU:16436 Metric:1<br />
RX packets:316435 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:316435 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:22875193 (21.8 Mb) TX bytes:22875193 (21.8 Mb)<br />
<br />
usb0 Link encap:Ethernet HWaddr C2:5A:11:8D:43:F5 <br />
BROADCAST MULTICAST MTU:1500 Metric:1<br />
RX packets:0 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)<br />
<br />
<br />
</pre><br />
*Configure the new network device via dhcp using the following command<br />
<pre><br />
ifconfig usb0 up && dhcpcd usb0<br />
</pre><br />
To stop the network sharing, issue the command<br />
<pre><br />
dhcpcd -x usb0<br />
</pre><br />
<br />
==USB tethering with openvpn==<br />
<br />
This method works for any old Android version and does not requires root access nor modifications in the phone (it is also suitable for Android 2.2 and later, but no longer required).<br />
<br />
It does not requires changes to your browser; in fact transparently handles all network traffic for any PC application (except ICMP pings). It is somewhat CPU intensive in the phone at high usage rates (a 500 kbyte/sec data transfer rate may take more than 50% of phone CPU in a powerful Acer Liquid).<br />
<br />
===Tools Needed===<br />
In Arch you need to install the [https://www.archlinux.org/packages/?q=openvpn openvpn] package. Is is also required the Android SDK installed (which can be obtained [http://developer.android.com/sdk/index.html here]). In the phone, the [http://code.google.com/p/azilink/ azilink] application, a Java-based NAT that will communicate with OpenVPN in your computer.<br />
<br />
====Configuring the phone connection in Arch Linux====<br />
<br />
Once installed the Android SDK, in order to use the provided tools your phone must be properly setup in udev and your linux user need to be granted rights. Otherwise you may need root privileges to use the Android SDK, which is non recommended. To perform this configuration, turn on USB debugging on the phone (usually in Settings -> Applications -> Development -> USB debugging), connect it to the PC by the USB cable and run the '''lsusb''' command. The device should be listed. Example output for the Acer Liquid phone:<br />
<br />
Bus 001 Device 006: ID '''0502''':3202 Acer, Inc. <br />
<br />
Then, create the following file, replacing ''ciri'' by your own Linux user name, and '''0502''' by the vendor ID of your own phone:<br />
<br />
{{File|name=/etc/udev/rules.d/50-android.rules|content=<br />
<nowiki>SUBSYSTEM=="usb", SYSFS(idVendor)=="0502", MODE="0666" OWNER="ciri"</nowiki> <br />
}}<br />
<br />
As root run the '''udevadm control restart''' command (or reboot your computer) to make the change effective.<br />
Now run in your linux PC the '''adb shell''' command from the Android SDK as plain (non root) user: you should get a unix prompt ''in your phone''.<br />
<br />
===Procedure===<br />
Run the AziLink application in the phone and select "About" at the bottom to receive instruccions, which basically are:<br />
<br />
# You'll have to enable USB debugging on the phone if it was not already enabled (usually in Settings -> Applications -> Development -> USB debugging).<br />
# Connect the phone with the USB cable to the PC.<br />
# Run AziLink and make sure that the '''Service active''' option at the top is checked.<br />
# Run the following commands in your linux PC:<br />
##As plain user: '''adb forward tcp:41927 tcp:41927''' (requires Android SDK installed)<br />
##As root: '''openvpn AziLink.ovpn'''<br />
<br />
{{File|name=AziLink.ovpn|content=<br />
<nowiki>dev tun<br />
remote 127.0.0.1 41927 tcp-client<br />
ifconfig 192.168.56.2 192.168.56.1<br />
route 0.0.0.0 128.0.0.0<br />
route 128.0.0.0 128.0.0.0<br />
socket-flags TCP_NODELAY<br />
keepalive 10 30<br />
dhcp-option DNS 192.168.56.1</nowiki> <br />
}}<br />
<br />
==Tethering with proxy==<br />
<br />
With this method tethering is achieved by port forwarding from the phone to the pc. This is suitable<br />
only for browsing. For firefox, you should set '''network.proxy.socks_remote_dns''' to '''true''' in '''about:config''' ( adress bar )<br />
<br />
===Tools Needed===<br />
* Root access to the PC<br />
* Android SDK which can be obtained [http://developer.android.com/sdk/index.html here]<br />
* Usb connection cable from your phone to pc<br />
* Proxoid application(free download from the Android market)<br />
<br />
<br />
===Instructions===<br />
Follow the instructions demonstrated in the following [http://androidcommunity.com/forums/f23/android-usb-tethering-for-linux-using-proxoid-24875/ link]</div>Costalfyhttps://wiki.archlinux.org/index.php?title=Touchpad_Synaptics&diff=137355Touchpad Synaptics2011-04-15T11:41:51Z<p>Costalfy: </p>
<hr />
<div>{{i18n|Touchpad Synaptics}}<br />
[[de:Synaptics Touchpad Treiber]]<br />
[[fr:Touchpad Synaptics]]<br />
[[Category:Input devices (English)]][[Category:HOWTOs (English)]]<br />
This article details the installation and configuration process of the '''''Synaptics input driver''''' for Synaptics (and ALPS) touchpads found on most notebooks.<br />
<br />
==Installation==<br />
<br />
The Synaptics driver is now bundled as ''xf86-input-synaptics'', and is available in the [[Official_Repositories|[extra] repository]]:<br />
<br />
# pacman -S xf86-input-synaptics<br />
<br />
== Configuration ==<br />
<br />
The primary method of configuration for the touchpad is through an xorg server configuration file. After installation of ''xf86-input-synaptics'', a default configuration file is located at ''/etc/X11/xorg.conf.d/10-synaptics.conf''. <br />
<br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
EndSection<br />
<br />
Users can edit this file to configure the various driver options available, for a complete list of all available options users should refer to the synaptics manual page.<br />
<br />
=== Available options ===<br />
<br />
The Synaptics driver allows for a vast amount of options to be tweaked. Luckily, all of them are consistently named and well documented in Synaptic's manpage. Before you proceed to learn about the various configuration methods documented below: read the manpage so that you are aware of the available options.<br />
<br />
man synaptics<br />
<br />
==== Frequently used options ====<br />
<br />
The following lists options that many users may wish to configure. Note that all these options can simply be added to the main configuration file in ''/etc/X11/xorg.conf.d/10-synaptics.conf'', as shown in this example configuration file where we have enabled vertical, horizontal and circular scrolling:<br />
<br />
Section "InputClass"<br />
Identifier "touchpad"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
Option "VertEdgeScroll" "on"<br />
Option "VertTwoFingerScroll" "on"<br />
Option "HorizEdgeScroll" "on"<br />
Option "HorizTwoFingerScroll" "on"<br />
Option "CircularScrolling" "on"<br />
Option "CircScrollTrigger" "2"<br />
Option "EmulateTwoFingerMinZ" "0"<br />
...<br />
EndSection<br />
<br />
* '''TapButton1''': (integer) configures which mouse-button is reported on a non-corner, one finger tap.<br />
* '''TapButton2''': (integer) configures which mouse-button is reported on a non-corner, two finger tap<br />
* '''TapButton3''': (integer) configures which mouse-button is reported on a non-corner, three finger tap<br />
* '''RBCornerButton''': (integer) configures which mouse-button is reported on a right bottom corner, one finger tap (use '''Option "RBCornerButton" "3"''' to achieve Ubuntu- style tap behaviour for right mouse button in lower right corner)<br />
* '''VertEdgeScroll''': (boolean) enables vertical scrolling while dragging across the right edge of the touch pad.<br />
* '''HorizEdgeScroll''': (boolean) enables horizontal scrolling while dragging across the right edge of the touch pad.<br />
<br />
[[Touchpad_Synaptics/10-synaptics.conf_example|An example]] with a brief description of all options. As usual settings will vary between machines. It is recommended that you discover your own options using [[Touchpad_Synaptics#fine-tuning_with_synclient|synclient]].<br />
<br />
{{Note|If you find that your hand frequently brushes your touchpad, causing the TapButton2 option to be triggered (which will more than likely paste from your clipboard), and you don't mind losing two-finger-tap functionality, set {{Codeline|TapButton2}} to 0.}}<br />
<br />
==== GNOME ====<br />
<br />
Users of [[GNOME|GNOME]] may have to edit its configuration as well, because in default it is set to disable tapping to click, horizontal scrolling and not to allow touchpad disabling while typing.<br />
<br />
To change these settings in '''Gnome 2''':<br />
# Run <tt>gconf-editor</tt><br />
# Edit the keys in the '''/desktop/gnome/peripherals/touchpad/''' folder.<br />
<br />
To change these settings in '''Gnome 3''':<br />
# Open ''System Settings''.<br />
# Click ''Mouse and Touchpad''.<br />
# Change the settings on the ''Touchpad'' tab.<br />
<br />
=== Configuration on the fly ===<br />
<br />
Next to the traditional method of configuration, the Synaptics driver also supports on the fly configuration. This means that users can set certain options through a software application, these options are applied immediately without needing a restart of X. There are four ways to do on the fly configuration:<br />
*GPointingDeviceSettings (recommended)<br />
*GSynaptics<br />
*synclient<br />
*xinput (recommended) [TODO]<br />
<br />
==== xinput ====<br />
Use `xinput list` to find your device name.<br />
<br />
Use `xinput list-props "SynPS/2 Synaptics TouchPad"` to list props.<br />
<br />
Read the xinput and synaptics manuals and such.<br />
<br />
==== GPointingDeviceSettings ====<br />
GPointingDeviceSettings provides graphical on the fly configuration for several pointing devices connected to the system, including your synaptics touch pad. This application replaces GSynaptics as the preferred tool for graphical touchpad configuration through the synaptics driver. GPointingDeviceSettings is available through the [https://aur.archlinux.org/packages.php?ID=25663 AUR]. If this is your first time using the AUR, please refer [http://wiki.archlinux.org/index.php/AUR here].<br />
<br />
GPointingDeviceSettings requires '''xf86-input-synaptics''' and '''libsynaptics''' to be installed for use with synaptics touch pads. These are available in the [extra] and [community] repositories, respectively. Both are installable through pacman.<br />
$ sudo pacman -S xf86-input-synaptics libsynaptics<br />
<br />
==== GSynaptics (deprecated but functional) ====<br />
{{Note|Though the [http://gsynaptics.sourceforge.jp/ GSynaptics website] mentions that its development has stopped and it will eventually be outdated, the application functions perfectly with xorg 1.8. Users are suggested to use '''GPointingDeviceSettings''' instead, GSynaptics should only be used as a last resort.}}<br />
<br />
{{Note|The GPointingDeviceSettings info http://live.gnome.org/GPointingDeviceSettings and http://aur.archlinux.org/packages.php?ID=25663 should help.}}<br />
<br />
On the fly configuration can also be done graphically through GSynaptics, a GTK application available in the [community] repository. GSynaptics allows the user to configure options such as horizontal, vertical and circular scrolling as well as the option to enable or disable the touchpad. GSynaptics requires that the '''SHMConfig''' option is enabled.<br />
$ sudo pacman -S gsynaptics<br />
<br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
Option "SHMConfig" "true"<br />
EndSection<br />
<br />
==== fine-tuning with synclient ====<br />
Synclient is a command line utility to configure and query Synaptics driver settings.<br />
<br />
{{ Box Note|In recent versions of synaptics monitoring the touchpad via synclient -m is broken. You can still change options with synclient.}}<br />
<br />
The synclient monitor can display pressure and placement on the touchpad in real-time, allowing further refinement of the default Synaptics settings.<br />
<br />
You can start the Synaptics monitor with the following command:<br />
$ synclient -m 100<br />
Where -m activates the monitor and the following number specifies the update interval in milliseconds.<br />
<br />
This monitor provides information about the current state of your touchpad. For example, if you move the mouse with the touchpad, the x and y values in the monitor will change. Therewith you can easy figure out your touchpad's dimension which is defined in the LeftEdge-, RightEdge-, BottomEdge- and TopEdge-Options.<br />
<br />
The abbreviations for the parameters are as follow:<br />
<br />
{| class="wikitable"<br />
|- align="left"<br />
!width="200"|+Abbreviation+<br />
!width="400|+Description+<br />
|-<br />
|'''time'''<br />
|Time in seconds since the logging was started.<br />
|-<br />
|'''x, y'''<br />
|The x/y coordinates of the finger on the touchpad. The origin is in the upper left corner.<br />
|-<br />
|'''z'''<br />
|The pressure value. It represents the pressure you are using to navigate on your touchpad.<br />
|-<br />
|'''f'''<br />
|Number of fingers currently touching the touchpad.<br />
|-<br />
|'''w'''<br />
|Value that represents the finger width.<br />
|-<br />
|'''l,r,u,d,m,multi'''<br />
|Those values represent the state of the left, right, up, down, middle and multi buttons pressed where zero means not pressed and one means pressed.<br />
|-<br />
|'''gl,gm,gr'''<br />
|For touchpads which have a guest device, this are the associated button states for guest left, guest middle and guest right pressed (1) and not pressed (0).<br />
|-<br />
|'''gdx, gdy'''<br />
|x/y coordinates of the guest device.<br />
|}<br />
If a value constantly is zero, it implies that this option is not supported by your device.<br />
<br />
Now use {{Codeline|synclient}} to test new values. For example, to adjust minimum pointer speed:<br />
<br />
synclient MinSpeed=0.5<br />
<br />
The changes will not be permanent, they will need to be put in your conf file ('''/etc/X11/xorg.conf.d/10-synaptics.conf''') to make them so.<br />
<br />
==== ALPS Touchpads ====<br />
<br />
{{warning|TODO needs to be rewritten for udev}}<br />
<br />
For ALPS Touchpads, if the above configuration does not provide the desired results, try the following configuration instead:<br />
<br />
Section "ServerLayout"<br />
...<br />
InputDevice "USB Mouse" "CorePointer"<br />
InputDevice "Touchpad" "SendCoreEvents"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Touchpad"<br />
Driver "synaptics"<br />
Option "Device" "/dev/input/mouse0"<br />
Option "Protocol" "auto-dev"<br />
Option "LeftEdge" "130"<br />
Option "RightEdge" "840"<br />
Option "TopEdge" "130"<br />
Option "BottomEdge" "640"<br />
Option "FingerLow" "7"<br />
Option "FingerHigh" "8"<br />
Option "MaxTapTime" "180"<br />
Option "MaxTapMove" "110"<br />
Option "EmulateMidButtonTime" "75"<br />
Option "VertScrollDelta" "20"<br />
Option "HorizScrollDelta" "20"<br />
Option "MinSpeed" "0.25"<br />
Option "MaxSpeed" "0.50"<br />
Option "AccelFactor" "0.010"<br />
Option "EdgeMotionMinSpeed" "200"<br />
Option "EdgeMotionMaxSpeed" "200"<br />
Option "UpDownScrolling" "1"<br />
Option "CircularScrolling" "1"<br />
Option "CircScrollDelta" "0.1"<br />
Option "CircScrollTrigger" "2"<br />
Option "SHMConfig" "on"<br />
Option "Emulate3Buttons" "on"<br />
EndSection<br />
<br />
==Advanced Configuration==<br />
<br />
===Circular scrolling===<br />
<br />
Circular scrolling is a feature that Synaptics offers which closely resembles the behaviour of iPods. Instead of (or additional to) scrolling horizontally or vertically, you can scroll circularly. Some users find this faster and more precise.<br />
To enable circular scrolling, add the following options to the touchpad device section of '''/etc/X11/xorg.conf.d/10-synaptics.conf''':<br />
Section "InputClass"<br />
...<br />
Option "CircularScrolling" "on"<br />
Option "CircScrollTrigger" "0"<br />
...<br />
EndSection<br />
<br />
The option '''CircScrollTrigger''' may be one of the following values, determining which edge circular scrolling should start:<br />
0 All Edges<br />
1 Top Edge<br />
2 Top Right Corner<br />
3 Right Edge<br />
4 Bottom Right Corner<br />
5 Bottom Edge<br />
6 Bottom Left Corner<br />
7 Left Edge<br />
8 Top Left Corner<br />
<br />
Specifying something different from zero may be useful if you want to use circular scrolling in conjunction with horizontal and/or vertical scrolling. If you do so, the type of scrolling is determined by the edge you start from.<br />
<br />
To scroll fast, draw small circles in the center of your touchpad. To scroll slowly and more precise, draw large circles.<br />
<br />
===Software Toggle===<br />
<br />
You may find it useful to have a software toggle that will turn on or off your touchpad, esplicially if it's extremely sensitive and your doing a lot of typing. Please also see [[#Disable touchpad upon external mouse detection]] as that may be better solution, a matter of choice. The advantage here is you have the control, while the other solution has a daemon determine when to turn off the trackpad.<br />
<br />
You will want to grab [[xbindkeys]] if you don't already have key binding software.<br />
<br />
Then save this script to something such as /sbin/trackpad-toggle.sh:<br />
<br />
#!/bin/bash<br />
<br />
if [ $(synclient -l | grep TouchpadOff | gawk -F '= ' '{ print $2 }') -eq 0 ]; then<br />
synclient TouchpadOff=1<br />
else<br />
synclient TouchpadOff=0<br />
fi<br />
<br />
Then finally add a key binding to use the script. It is best to call with xbindkeys like so (file ''~/.xbindkeysrc''):<br />
<br />
"/sbin/trackpad-toggle.sh"<br />
m:0x5 + c:65<br />
Control+Shift + space<br />
<br />
Now just (re)start xbindkeys and ctrl+Shift+Space will now toggle your trackpad !<br />
<br />
Of course you could easily use any other keybinding software, such as the ones provided by Xfce4 and Gnome.<br />
<br />
==Troubleshooting==<br />
<br />
=== The touchpad isn't working, Xorg.0.log shows "Query no Synaptics: 6003C8" ===<br />
<br />
Due to the way synaptics is currently set-up, 2 instances of the synaptics module are loaded. We can recognize this situation by opening the xorg log file (/var/log/Xorg.0.log) and noticing this:<br />
<br />
[ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"<br />
[ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"<br />
<br />
Notice how 2 differently named instances of the module are being loaded. In some cases, this causes the touchpad to become nonfunctional.<br />
<br />
we can prevent this double loading by editing our ''/etc/X11/xorg.conf.d/10-synaptics.conf'' file. We should add '''MatchDevicePath "/dev/input/event*"'''<br />
<br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
EndSection <br />
<br />
Restart X and check xorg logs again, the error should be gone and the touchpad should be functional.<br />
<br />
related bugreport: <br />
*https://bugs.archlinux.org/task/20830<br />
<br />
related forum topics:<br />
* https://bbs.archlinux.org/viewtopic.php?id=104769<br />
* https://bbs.archlinux.org/viewtopic.php?pid=825690<br />
<br />
===Synaptics Special Ability===<br />
<br />
By default, Synaptics touchpads are able to detect the number of fingers on the touchpad; ALPS touchpads are not. If the touchpad is tapped with two fingers, it will emulate a middle click. If the touchpad is typed with three fingers, a right click will be emulated.<br />
<br />
===Non-functional Synaptics Special Abilities (multi-tap, scrolling, etc.)===<br />
<br />
In some cases Synaptics touchpads only work partially. Features like two-finger scrolling or two-finger middle-click do not work even if properly enabled. This is probably related to the [http://wiki.archlinux.org/index.php/Synaptics#The_touchpad_isn.27t_working.2C_Xorg.0.log_shows_.22Query_no_Synaptics:_6003C8.22 The touchpad isn't working] problem mentioned above. Fix is the same, prevent double module loading.<br />
<br />
===Disable touchpad upon external mouse detection===<br />
<br />
With the assistance of [[udev]], it is possible to automatically disable the touchpad if an external mouse has been plugged in. To achieve this, add the following udev rules to '''/etc/udev/rules.d/01-touchpad.rules''':<br />
<br />
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[1-9]", ENV{DISPLAY}=":0.0", <br />
ENV{XAUTHORITY}="/home/USERNAME/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=1"<br />
<br />
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[1-9]", ENV{DISPLAY}=":0.0", <br />
ENV{XAUTHORITY}="/home/USERNAME/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=0"<br />
<br />
GDM stores Xauthority files in /var/run/gdm in randomly-name directory. So udev rules will look like this<br />
<br />
ACTION=="add", KERNEL=="mouse[0-9]", SUBSYSTEM=="input", PROGRAM="/usr/bin/find /var/run/gdm -name *username*",<br />
ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=1"<br />
<br />
ACTION=="remove", KERNEL=="mouse[0-9]", SUBSYSTEM=="input", PROGRAM="/usr/bin/find /var/run/gdm -name *username*",<br />
ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=0"<br />
<br />
Note that udev rules must be a single line each, so format accordingly.<br />
<br />
SHMConfig must be enabled (see the '''Configuration''' section for details)<br />
<br />
===Cursor Jump===<br />
<br />
Some users have their cursor inexplicably ''jump'' around the screen. There currently no patch for this, but the developers are aware of the problem and are working on it.<br />
<br />
===Multitouch===<br />
<br />
Multitouch gesture like in Mac OS X will be in future version of the driver.<br />
<br />
===Touchpad device isn't located at /dev/input/mouse0===<br />
<br />
If that's the case, you can use this command to display information about your input devices:<br />
cat /proc/bus/input/devices<br />
Search for an input device which has the name "SynPS/2 Synaptics TouchPad". The "Handlers" section of the output specifies what device you need to specify.<br />
<br />
'''Example output:'''<br />
I: Bus=0011 Vendor=0002 Product=0007 Version=0000<br />
N: Name="SynPS/2 Synaptics TouchPad"<br />
P: Phys=isa0060/serio4/input0<br />
S: Sysfs=/class/input/input1<br />
H: Handlers=mouse0 event1<br />
B: EV=b<br />
B: KEY=6420 0 7000f 0<br />
<br />
In this case, the Handlers are mouse0 and event1, so /dev/input/mouse0 would be used.<br />
<br />
{{warning|TODO explain how to apply this in 10-synaptics.conf}}<br />
<br />
=== Disable Trackpad while Typing ===<br />
<br />
There are two approaches on how run this command depending on your setup. But first you will need to have SHMConfig enable in your {{Filename|/etc/X11/xorg.conf.d/10-synaptics.conf}}.<br />
<br />
==== Using {{Filename|.xinitrc}} ====<br />
<br />
To have the touchpad disabled automatically when you begin typing, add the following line to your .xinitrc before you run your window manager (if not using a login manager):<br />
<br />
syndaemon -t -k -i 2 -d &<br />
<br />
; '''-i 2''': sets the idle time to 2 seconds. The idle time specifies how many seconds to wait after the last key-press before enabling the touchpad again.<br />
; '''-t''': tells the daemon not to disable mouse movement when typing and only disable tapping and scrolling.<br />
; '''-k''': tells the daemon to ignore modifier keys when monitoring keyboard activity (ie: allows ctrl+left click).<br />
; '''-d''': starts as a daemon, in the background.<br />
<br />
More details are available in the man page:<br />
<br />
$ man syndaemon<br />
<br />
If you are using a login manager, you will need to specify the command where your DE allows you to do so.<br />
<br />
==== Using a Login Manager ====<br />
<br />
The "-d" option is necessary to start syndaemon as a background process for post Login instructions.<br />
<br />
'''For GNOME: (GDM)'''<br />
<br />
To start syndaemon you need to use Gnome's Startup Applications Preferences program. Login to Gnome and go to '''System > Preferences > Startup Applications'''. In the Startup Programs tab click the '''Add''' button. Name the Startup Program whatever you like and input any comments you like (or leave this field blank). In the command field add:<br />
<br />
syndaemon -t -k -i 2 -d &<br />
<br />
When you're done click the Add button in the Add Startup Program dialogue. Make sure the check box next to the startup program you've created is checked, in the list of additional startup programs. Close the Startup Applications Preferences window and you're done.<br />
<br />
'''For KDE: (KDM)'''<br />
<br />
Goto '''System Settings > Advanced Tab > Autostart''', then click '''Add Program''', enter:<br />
<br />
syndaemon -t -k -i 2 -d &<br />
<br />
Then check 'Run in terminal'.<br />
<br />
===Firefox and special touchpad events===<br />
<br />
By default, Firefox is set up to do special events upon tapping or scrolling certain parts of your touchpad.<br />
You can edit the settings of those actions by typing '''about:config''' in your Firefox address bar.<br />
To alter these options, double-click on the line in question, changing "true" to "false" and vise versa.<br />
<br />
To prevent Firefox from scrolling (backward/forward) through browser history and instead scroll through pages, edit these settings as shown:<br />
mousewheel.horizscroll.withnokey.action = 1<br />
mousewheel.horizscroll.withnokey.sysnumlines = true<br />
<br />
To prevent Firefox from redirecting you to URLs formed from your clipboard content upon tapping the upper-right corner of your touchpad (or middle mouse button), set the following option to "false":<br />
middlemouse.contentLoadURL = false<br />
<br />
===Opera: horizontal scrolling issues===<br />
<br />
Same as above.<br />
To fix it, go to Tools -> Preferences -> Advanced -> Shortcuts. Select "Opera Standard" mouse setup and click "Edit". In "Application" section:<br />
* assign key "Button 6" to command "Scroll left"<br />
* assign key "Button 7" to command "Scroll right"<br />
<br />
===Scrolling and multiple actions with Synaptics on LG Laptops===<br />
<br />
These problems seem to be occurring on several models of LG laptops.<br />
Symptoms include: when pressing Mouse Button 1, Synaptics interprets it as ScrollUP and a regular button 1 click; same goes for button 2.<br />
<br />
The scrolling issue can be resolved by entering in xorg.conf:<br />
Option "UpDownScrolling" "0"<br />
<br />
NOTE that this will make Synaptics interpret one button push as three. There is a patch written by Oskar Sandberg[http://www.math.chalmers.se/~ossa/linux/lg_tx_express.html] that removes these clicks.<br />
<br />
Apparently, when trying to compile this against the latest version of Synaptics it fails. The solution to this is using the GIT repository for Synaptics[http://web.telia.com/~u89404340/touchpad/synaptics/.git] .<br />
<br />
There is also a package build file in the AUR to automate this: [http://aur.archlinux.org/packages.php?ID=15983].<br />
<br />
To build the package after downloading the tarball and unpacking it, execute:<br />
cd synaptics-git<br />
makepkg<br />
<br />
If you want it to be automatically installed after being built, just add '-i' after makepkg.<br />
<br />
===Other external mouse issues===<br />
<br />
First, make sure your section describing the external mouse contains this line (or that the line looks like this):<br />
<br />
Option "Device" "/dev/input/mice"<br />
<br />
If the "Device" line is different, change it to the above and try to restart X. If this doesn't solve your problem, make your '''touchpad''' the CorePointer in the "Server Layout" section:<br />
<br />
InputDevice "Touchpad" "CorePointer"<br />
<br />
and make your external device "SendCoreEvents":<br />
<br />
InputDevice "USB Mouse" "SendCoreEvents"<br />
<br />
finally add this to your external device's section:<br />
<br />
Option "SendCoreEvents" "true"<br />
<br />
If all of the above doesn't work for you, please check relevant bug trackers for possible bugs, or go through the forums to see if anyone has found a better solution.<br />
<br />
===Touchpad synchronization issues===<br />
<br />
Sometimes the cursor may freeze for several seconds or start acting on its own for no apparent reason. This behavior is accompanied by records in /var/log/messages.log<br />
<br />
psmouse.c: TouchPad at isa0060/serio1/input0 lost synchronization, throwing 3 bytes away<br />
<br />
This problem has no general solution, but there are several possible workarounds.<br />
*If you use CPU frequency scaling, avoid using the "ondemand" governor and use the "performance" governor when possible, as the touchpad may lose sync when the CPU frequency changes.<br />
*Avoid using an ACPI battery monitor.<br />
*Attempt to load psmouse with "proto=imps" option. To do that, add this line to your /etc/modprobe.conf:<br />
<br />
options psmouse proto=imps<br />
<br />
*Try another desktop environment. Some users report that this problem only occurs when using XFCE or GNOME, for whatever reason<br />
<br />
===Delay between a button tap and the actual click===<br />
<br />
If you experience a delay between the tap on the touchpad and the actual click that is registered you need to enable FastTaps:<br />
<br />
To do so, you should add '''Option "FastTaps" "1"''' to '''/etc/X11/xorg.conf.d/10-synaptics.conf''' so that you have:<br />
<br />
Section "InputClass"<br />
Identifier "Synaptics Touchpad"<br />
Driver "synaptics"<br />
...<br />
Option "FastTaps" "1"<br />
...<br />
EndSection<br />
<br />
===SynPS/2 Synaptics TouchPad can't grab event device, errno=16===<br />
<br />
If you are using Xorg 7.4, you may get a warning like this from /var/log/Xorg.0.log, thais is because the driver will grab the event device for exclusive use when using the Linux 2.6 event protocol. When it fails, X will return this error message.<br />
<br />
Grabbing the event device means that no other user space or kernel space program sees the touchpad events. This is desirable if the X config file includes /dev/input/mice as an input device, but is undesirable if you want to monitor the device from user space.<br />
<br />
If you want to control it, add or modify the "GrabEventDevice" option in you touchpad section in /etc/X11/xorg.conf.d/10-synaptics.conf:<br />
<br />
...<br />
Option "GrabEventDevice" "''boolean''"<br />
...<br />
<br />
This will come into effect when X is restarted, though you can also change it by using synclient. When changing this parameter with the synclient program, the change will not take effect until the Synaptics driver is disabled and re-enabled. This can be achieved by switching to a text console and then switching back to X.<br />
<br />
===Synaptics Loses Multitouch Detection After Rebooting From Windows===<br />
<br />
Many drivers include a firmware that is loaded into flash memory when the computer boots. This firmware is not necessarily cleared upon shutdown, and is not always compatible with Linux drivers. The only way to clear the flash memory is to shutdown completely rather than using reboot. It's generally considered best practice to never use reboot when switching between operating systems.<br />
<br />
==External Resources==<br />
<br />
Synaptics TouchPad driver: [http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/]<br />
<!-- vim: set ft=Wikipedia: --></div>Costalfyhttps://wiki.archlinux.org/index.php?title=Touchpad_Synaptics&diff=137353Touchpad Synaptics2011-04-15T11:39:10Z<p>Costalfy: </p>
<hr />
<div>{{i18n|Touchpad Synaptics}}<br />
[[de:Synaptics Touchpad Treiber]]<br />
[[fr:Synaptics Touchpad]]<br />
[[Category:Input devices (English)]][[Category:HOWTOs (English)]]<br />
This article details the installation and configuration process of the '''''Synaptics input driver''''' for Synaptics (and ALPS) touchpads found on most notebooks.<br />
<br />
==Installation==<br />
<br />
The Synaptics driver is now bundled as ''xf86-input-synaptics'', and is available in the [[Official_Repositories|[extra] repository]]:<br />
<br />
# pacman -S xf86-input-synaptics<br />
<br />
== Configuration ==<br />
<br />
The primary method of configuration for the touchpad is through an xorg server configuration file. After installation of ''xf86-input-synaptics'', a default configuration file is located at ''/etc/X11/xorg.conf.d/10-synaptics.conf''. <br />
<br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
EndSection<br />
<br />
Users can edit this file to configure the various driver options available, for a complete list of all available options users should refer to the synaptics manual page.<br />
<br />
=== Available options ===<br />
<br />
The Synaptics driver allows for a vast amount of options to be tweaked. Luckily, all of them are consistently named and well documented in Synaptic's manpage. Before you proceed to learn about the various configuration methods documented below: read the manpage so that you are aware of the available options.<br />
<br />
man synaptics<br />
<br />
==== Frequently used options ====<br />
<br />
The following lists options that many users may wish to configure. Note that all these options can simply be added to the main configuration file in ''/etc/X11/xorg.conf.d/10-synaptics.conf'', as shown in this example configuration file where we have enabled vertical, horizontal and circular scrolling:<br />
<br />
Section "InputClass"<br />
Identifier "touchpad"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
Option "VertEdgeScroll" "on"<br />
Option "VertTwoFingerScroll" "on"<br />
Option "HorizEdgeScroll" "on"<br />
Option "HorizTwoFingerScroll" "on"<br />
Option "CircularScrolling" "on"<br />
Option "CircScrollTrigger" "2"<br />
Option "EmulateTwoFingerMinZ" "0"<br />
...<br />
EndSection<br />
<br />
* '''TapButton1''': (integer) configures which mouse-button is reported on a non-corner, one finger tap.<br />
* '''TapButton2''': (integer) configures which mouse-button is reported on a non-corner, two finger tap<br />
* '''TapButton3''': (integer) configures which mouse-button is reported on a non-corner, three finger tap<br />
* '''RBCornerButton''': (integer) configures which mouse-button is reported on a right bottom corner, one finger tap (use '''Option "RBCornerButton" "3"''' to achieve Ubuntu- style tap behaviour for right mouse button in lower right corner)<br />
* '''VertEdgeScroll''': (boolean) enables vertical scrolling while dragging across the right edge of the touch pad.<br />
* '''HorizEdgeScroll''': (boolean) enables horizontal scrolling while dragging across the right edge of the touch pad.<br />
<br />
[[Touchpad_Synaptics/10-synaptics.conf_example|An example]] with a brief description of all options. As usual settings will vary between machines. It is recommended that you discover your own options using [[Touchpad_Synaptics#fine-tuning_with_synclient|synclient]].<br />
<br />
{{Note|If you find that your hand frequently brushes your touchpad, causing the TapButton2 option to be triggered (which will more than likely paste from your clipboard), and you don't mind losing two-finger-tap functionality, set {{Codeline|TapButton2}} to 0.}}<br />
<br />
==== GNOME ====<br />
<br />
Users of [[GNOME|GNOME]] may have to edit its configuration as well, because in default it is set to disable tapping to click, horizontal scrolling and not to allow touchpad disabling while typing.<br />
<br />
To change these settings in '''Gnome 2''':<br />
# Run <tt>gconf-editor</tt><br />
# Edit the keys in the '''/desktop/gnome/peripherals/touchpad/''' folder.<br />
<br />
To change these settings in '''Gnome 3''':<br />
# Open ''System Settings''.<br />
# Click ''Mouse and Touchpad''.<br />
# Change the settings on the ''Touchpad'' tab.<br />
<br />
=== Configuration on the fly ===<br />
<br />
Next to the traditional method of configuration, the Synaptics driver also supports on the fly configuration. This means that users can set certain options through a software application, these options are applied immediately without needing a restart of X. There are four ways to do on the fly configuration:<br />
*GPointingDeviceSettings (recommended)<br />
*GSynaptics<br />
*synclient<br />
*xinput (recommended) [TODO]<br />
<br />
==== xinput ====<br />
Use `xinput list` to find your device name.<br />
<br />
Use `xinput list-props "SynPS/2 Synaptics TouchPad"` to list props.<br />
<br />
Read the xinput and synaptics manuals and such.<br />
<br />
==== GPointingDeviceSettings ====<br />
GPointingDeviceSettings provides graphical on the fly configuration for several pointing devices connected to the system, including your synaptics touch pad. This application replaces GSynaptics as the preferred tool for graphical touchpad configuration through the synaptics driver. GPointingDeviceSettings is available through the [https://aur.archlinux.org/packages.php?ID=25663 AUR]. If this is your first time using the AUR, please refer [http://wiki.archlinux.org/index.php/AUR here].<br />
<br />
GPointingDeviceSettings requires '''xf86-input-synaptics''' and '''libsynaptics''' to be installed for use with synaptics touch pads. These are available in the [extra] and [community] repositories, respectively. Both are installable through pacman.<br />
$ sudo pacman -S xf86-input-synaptics libsynaptics<br />
<br />
==== GSynaptics (deprecated but functional) ====<br />
{{Note|Though the [http://gsynaptics.sourceforge.jp/ GSynaptics website] mentions that its development has stopped and it will eventually be outdated, the application functions perfectly with xorg 1.8. Users are suggested to use '''GPointingDeviceSettings''' instead, GSynaptics should only be used as a last resort.}}<br />
<br />
{{Note|The GPointingDeviceSettings info http://live.gnome.org/GPointingDeviceSettings and http://aur.archlinux.org/packages.php?ID=25663 should help.}}<br />
<br />
On the fly configuration can also be done graphically through GSynaptics, a GTK application available in the [community] repository. GSynaptics allows the user to configure options such as horizontal, vertical and circular scrolling as well as the option to enable or disable the touchpad. GSynaptics requires that the '''SHMConfig''' option is enabled.<br />
$ sudo pacman -S gsynaptics<br />
<br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
Option "SHMConfig" "true"<br />
EndSection<br />
<br />
==== fine-tuning with synclient ====<br />
Synclient is a command line utility to configure and query Synaptics driver settings.<br />
<br />
{{ Box Note|In recent versions of synaptics monitoring the touchpad via synclient -m is broken. You can still change options with synclient.}}<br />
<br />
The synclient monitor can display pressure and placement on the touchpad in real-time, allowing further refinement of the default Synaptics settings.<br />
<br />
You can start the Synaptics monitor with the following command:<br />
$ synclient -m 100<br />
Where -m activates the monitor and the following number specifies the update interval in milliseconds.<br />
<br />
This monitor provides information about the current state of your touchpad. For example, if you move the mouse with the touchpad, the x and y values in the monitor will change. Therewith you can easy figure out your touchpad's dimension which is defined in the LeftEdge-, RightEdge-, BottomEdge- and TopEdge-Options.<br />
<br />
The abbreviations for the parameters are as follow:<br />
<br />
{| class="wikitable"<br />
|- align="left"<br />
!width="200"|+Abbreviation+<br />
!width="400|+Description+<br />
|-<br />
|'''time'''<br />
|Time in seconds since the logging was started.<br />
|-<br />
|'''x, y'''<br />
|The x/y coordinates of the finger on the touchpad. The origin is in the upper left corner.<br />
|-<br />
|'''z'''<br />
|The pressure value. It represents the pressure you are using to navigate on your touchpad.<br />
|-<br />
|'''f'''<br />
|Number of fingers currently touching the touchpad.<br />
|-<br />
|'''w'''<br />
|Value that represents the finger width.<br />
|-<br />
|'''l,r,u,d,m,multi'''<br />
|Those values represent the state of the left, right, up, down, middle and multi buttons pressed where zero means not pressed and one means pressed.<br />
|-<br />
|'''gl,gm,gr'''<br />
|For touchpads which have a guest device, this are the associated button states for guest left, guest middle and guest right pressed (1) and not pressed (0).<br />
|-<br />
|'''gdx, gdy'''<br />
|x/y coordinates of the guest device.<br />
|}<br />
If a value constantly is zero, it implies that this option is not supported by your device.<br />
<br />
Now use {{Codeline|synclient}} to test new values. For example, to adjust minimum pointer speed:<br />
<br />
synclient MinSpeed=0.5<br />
<br />
The changes will not be permanent, they will need to be put in your conf file ('''/etc/X11/xorg.conf.d/10-synaptics.conf''') to make them so.<br />
<br />
==== ALPS Touchpads ====<br />
<br />
{{warning|TODO needs to be rewritten for udev}}<br />
<br />
For ALPS Touchpads, if the above configuration does not provide the desired results, try the following configuration instead:<br />
<br />
Section "ServerLayout"<br />
...<br />
InputDevice "USB Mouse" "CorePointer"<br />
InputDevice "Touchpad" "SendCoreEvents"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Touchpad"<br />
Driver "synaptics"<br />
Option "Device" "/dev/input/mouse0"<br />
Option "Protocol" "auto-dev"<br />
Option "LeftEdge" "130"<br />
Option "RightEdge" "840"<br />
Option "TopEdge" "130"<br />
Option "BottomEdge" "640"<br />
Option "FingerLow" "7"<br />
Option "FingerHigh" "8"<br />
Option "MaxTapTime" "180"<br />
Option "MaxTapMove" "110"<br />
Option "EmulateMidButtonTime" "75"<br />
Option "VertScrollDelta" "20"<br />
Option "HorizScrollDelta" "20"<br />
Option "MinSpeed" "0.25"<br />
Option "MaxSpeed" "0.50"<br />
Option "AccelFactor" "0.010"<br />
Option "EdgeMotionMinSpeed" "200"<br />
Option "EdgeMotionMaxSpeed" "200"<br />
Option "UpDownScrolling" "1"<br />
Option "CircularScrolling" "1"<br />
Option "CircScrollDelta" "0.1"<br />
Option "CircScrollTrigger" "2"<br />
Option "SHMConfig" "on"<br />
Option "Emulate3Buttons" "on"<br />
EndSection<br />
<br />
==Advanced Configuration==<br />
<br />
===Circular scrolling===<br />
<br />
Circular scrolling is a feature that Synaptics offers which closely resembles the behaviour of iPods. Instead of (or additional to) scrolling horizontally or vertically, you can scroll circularly. Some users find this faster and more precise.<br />
To enable circular scrolling, add the following options to the touchpad device section of '''/etc/X11/xorg.conf.d/10-synaptics.conf''':<br />
Section "InputClass"<br />
...<br />
Option "CircularScrolling" "on"<br />
Option "CircScrollTrigger" "0"<br />
...<br />
EndSection<br />
<br />
The option '''CircScrollTrigger''' may be one of the following values, determining which edge circular scrolling should start:<br />
0 All Edges<br />
1 Top Edge<br />
2 Top Right Corner<br />
3 Right Edge<br />
4 Bottom Right Corner<br />
5 Bottom Edge<br />
6 Bottom Left Corner<br />
7 Left Edge<br />
8 Top Left Corner<br />
<br />
Specifying something different from zero may be useful if you want to use circular scrolling in conjunction with horizontal and/or vertical scrolling. If you do so, the type of scrolling is determined by the edge you start from.<br />
<br />
To scroll fast, draw small circles in the center of your touchpad. To scroll slowly and more precise, draw large circles.<br />
<br />
===Software Toggle===<br />
<br />
You may find it useful to have a software toggle that will turn on or off your touchpad, esplicially if it's extremely sensitive and your doing a lot of typing. Please also see [[#Disable touchpad upon external mouse detection]] as that may be better solution, a matter of choice. The advantage here is you have the control, while the other solution has a daemon determine when to turn off the trackpad.<br />
<br />
You will want to grab [[xbindkeys]] if you don't already have key binding software.<br />
<br />
Then save this script to something such as /sbin/trackpad-toggle.sh:<br />
<br />
#!/bin/bash<br />
<br />
if [ $(synclient -l | grep TouchpadOff | gawk -F '= ' '{ print $2 }') -eq 0 ]; then<br />
synclient TouchpadOff=1<br />
else<br />
synclient TouchpadOff=0<br />
fi<br />
<br />
Then finally add a key binding to use the script. It is best to call with xbindkeys like so (file ''~/.xbindkeysrc''):<br />
<br />
"/sbin/trackpad-toggle.sh"<br />
m:0x5 + c:65<br />
Control+Shift + space<br />
<br />
Now just (re)start xbindkeys and ctrl+Shift+Space will now toggle your trackpad !<br />
<br />
Of course you could easily use any other keybinding software, such as the ones provided by Xfce4 and Gnome.<br />
<br />
==Troubleshooting==<br />
<br />
=== The touchpad isn't working, Xorg.0.log shows "Query no Synaptics: 6003C8" ===<br />
<br />
Due to the way synaptics is currently set-up, 2 instances of the synaptics module are loaded. We can recognize this situation by opening the xorg log file (/var/log/Xorg.0.log) and noticing this:<br />
<br />
[ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"<br />
[ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"<br />
<br />
Notice how 2 differently named instances of the module are being loaded. In some cases, this causes the touchpad to become nonfunctional.<br />
<br />
we can prevent this double loading by editing our ''/etc/X11/xorg.conf.d/10-synaptics.conf'' file. We should add '''MatchDevicePath "/dev/input/event*"'''<br />
<br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
EndSection <br />
<br />
Restart X and check xorg logs again, the error should be gone and the touchpad should be functional.<br />
<br />
related bugreport: <br />
*https://bugs.archlinux.org/task/20830<br />
<br />
related forum topics:<br />
* https://bbs.archlinux.org/viewtopic.php?id=104769<br />
* https://bbs.archlinux.org/viewtopic.php?pid=825690<br />
<br />
===Synaptics Special Ability===<br />
<br />
By default, Synaptics touchpads are able to detect the number of fingers on the touchpad; ALPS touchpads are not. If the touchpad is tapped with two fingers, it will emulate a middle click. If the touchpad is typed with three fingers, a right click will be emulated.<br />
<br />
===Non-functional Synaptics Special Abilities (multi-tap, scrolling, etc.)===<br />
<br />
In some cases Synaptics touchpads only work partially. Features like two-finger scrolling or two-finger middle-click do not work even if properly enabled. This is probably related to the [http://wiki.archlinux.org/index.php/Synaptics#The_touchpad_isn.27t_working.2C_Xorg.0.log_shows_.22Query_no_Synaptics:_6003C8.22 The touchpad isn't working] problem mentioned above. Fix is the same, prevent double module loading.<br />
<br />
===Disable touchpad upon external mouse detection===<br />
<br />
With the assistance of [[udev]], it is possible to automatically disable the touchpad if an external mouse has been plugged in. To achieve this, add the following udev rules to '''/etc/udev/rules.d/01-touchpad.rules''':<br />
<br />
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[1-9]", ENV{DISPLAY}=":0.0", <br />
ENV{XAUTHORITY}="/home/USERNAME/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=1"<br />
<br />
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[1-9]", ENV{DISPLAY}=":0.0", <br />
ENV{XAUTHORITY}="/home/USERNAME/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=0"<br />
<br />
GDM stores Xauthority files in /var/run/gdm in randomly-name directory. So udev rules will look like this<br />
<br />
ACTION=="add", KERNEL=="mouse[0-9]", SUBSYSTEM=="input", PROGRAM="/usr/bin/find /var/run/gdm -name *username*",<br />
ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=1"<br />
<br />
ACTION=="remove", KERNEL=="mouse[0-9]", SUBSYSTEM=="input", PROGRAM="/usr/bin/find /var/run/gdm -name *username*",<br />
ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=0"<br />
<br />
Note that udev rules must be a single line each, so format accordingly.<br />
<br />
SHMConfig must be enabled (see the '''Configuration''' section for details)<br />
<br />
===Cursor Jump===<br />
<br />
Some users have their cursor inexplicably ''jump'' around the screen. There currently no patch for this, but the developers are aware of the problem and are working on it.<br />
<br />
===Multitouch===<br />
<br />
Multitouch gesture like in Mac OS X will be in future version of the driver.<br />
<br />
===Touchpad device isn't located at /dev/input/mouse0===<br />
<br />
If that's the case, you can use this command to display information about your input devices:<br />
cat /proc/bus/input/devices<br />
Search for an input device which has the name "SynPS/2 Synaptics TouchPad". The "Handlers" section of the output specifies what device you need to specify.<br />
<br />
'''Example output:'''<br />
I: Bus=0011 Vendor=0002 Product=0007 Version=0000<br />
N: Name="SynPS/2 Synaptics TouchPad"<br />
P: Phys=isa0060/serio4/input0<br />
S: Sysfs=/class/input/input1<br />
H: Handlers=mouse0 event1<br />
B: EV=b<br />
B: KEY=6420 0 7000f 0<br />
<br />
In this case, the Handlers are mouse0 and event1, so /dev/input/mouse0 would be used.<br />
<br />
{{warning|TODO explain how to apply this in 10-synaptics.conf}}<br />
<br />
=== Disable Trackpad while Typing ===<br />
<br />
There are two approaches on how run this command depending on your setup. But first you will need to have SHMConfig enable in your {{Filename|/etc/X11/xorg.conf.d/10-synaptics.conf}}.<br />
<br />
==== Using {{Filename|.xinitrc}} ====<br />
<br />
To have the touchpad disabled automatically when you begin typing, add the following line to your .xinitrc before you run your window manager (if not using a login manager):<br />
<br />
syndaemon -t -k -i 2 -d &<br />
<br />
; '''-i 2''': sets the idle time to 2 seconds. The idle time specifies how many seconds to wait after the last key-press before enabling the touchpad again.<br />
; '''-t''': tells the daemon not to disable mouse movement when typing and only disable tapping and scrolling.<br />
; '''-k''': tells the daemon to ignore modifier keys when monitoring keyboard activity (ie: allows ctrl+left click).<br />
; '''-d''': starts as a daemon, in the background.<br />
<br />
More details are available in the man page:<br />
<br />
$ man syndaemon<br />
<br />
If you are using a login manager, you will need to specify the command where your DE allows you to do so.<br />
<br />
==== Using a Login Manager ====<br />
<br />
The "-d" option is necessary to start syndaemon as a background process for post Login instructions.<br />
<br />
'''For GNOME: (GDM)'''<br />
<br />
To start syndaemon you need to use Gnome's Startup Applications Preferences program. Login to Gnome and go to '''System > Preferences > Startup Applications'''. In the Startup Programs tab click the '''Add''' button. Name the Startup Program whatever you like and input any comments you like (or leave this field blank). In the command field add:<br />
<br />
syndaemon -t -k -i 2 -d &<br />
<br />
When you're done click the Add button in the Add Startup Program dialogue. Make sure the check box next to the startup program you've created is checked, in the list of additional startup programs. Close the Startup Applications Preferences window and you're done.<br />
<br />
'''For KDE: (KDM)'''<br />
<br />
Goto '''System Settings > Advanced Tab > Autostart''', then click '''Add Program''', enter:<br />
<br />
syndaemon -t -k -i 2 -d &<br />
<br />
Then check 'Run in terminal'.<br />
<br />
===Firefox and special touchpad events===<br />
<br />
By default, Firefox is set up to do special events upon tapping or scrolling certain parts of your touchpad.<br />
You can edit the settings of those actions by typing '''about:config''' in your Firefox address bar.<br />
To alter these options, double-click on the line in question, changing "true" to "false" and vise versa.<br />
<br />
To prevent Firefox from scrolling (backward/forward) through browser history and instead scroll through pages, edit these settings as shown:<br />
mousewheel.horizscroll.withnokey.action = 1<br />
mousewheel.horizscroll.withnokey.sysnumlines = true<br />
<br />
To prevent Firefox from redirecting you to URLs formed from your clipboard content upon tapping the upper-right corner of your touchpad (or middle mouse button), set the following option to "false":<br />
middlemouse.contentLoadURL = false<br />
<br />
===Opera: horizontal scrolling issues===<br />
<br />
Same as above.<br />
To fix it, go to Tools -> Preferences -> Advanced -> Shortcuts. Select "Opera Standard" mouse setup and click "Edit". In "Application" section:<br />
* assign key "Button 6" to command "Scroll left"<br />
* assign key "Button 7" to command "Scroll right"<br />
<br />
===Scrolling and multiple actions with Synaptics on LG Laptops===<br />
<br />
These problems seem to be occurring on several models of LG laptops.<br />
Symptoms include: when pressing Mouse Button 1, Synaptics interprets it as ScrollUP and a regular button 1 click; same goes for button 2.<br />
<br />
The scrolling issue can be resolved by entering in xorg.conf:<br />
Option "UpDownScrolling" "0"<br />
<br />
NOTE that this will make Synaptics interpret one button push as three. There is a patch written by Oskar Sandberg[http://www.math.chalmers.se/~ossa/linux/lg_tx_express.html] that removes these clicks.<br />
<br />
Apparently, when trying to compile this against the latest version of Synaptics it fails. The solution to this is using the GIT repository for Synaptics[http://web.telia.com/~u89404340/touchpad/synaptics/.git] .<br />
<br />
There is also a package build file in the AUR to automate this: [http://aur.archlinux.org/packages.php?ID=15983].<br />
<br />
To build the package after downloading the tarball and unpacking it, execute:<br />
cd synaptics-git<br />
makepkg<br />
<br />
If you want it to be automatically installed after being built, just add '-i' after makepkg.<br />
<br />
===Other external mouse issues===<br />
<br />
First, make sure your section describing the external mouse contains this line (or that the line looks like this):<br />
<br />
Option "Device" "/dev/input/mice"<br />
<br />
If the "Device" line is different, change it to the above and try to restart X. If this doesn't solve your problem, make your '''touchpad''' the CorePointer in the "Server Layout" section:<br />
<br />
InputDevice "Touchpad" "CorePointer"<br />
<br />
and make your external device "SendCoreEvents":<br />
<br />
InputDevice "USB Mouse" "SendCoreEvents"<br />
<br />
finally add this to your external device's section:<br />
<br />
Option "SendCoreEvents" "true"<br />
<br />
If all of the above doesn't work for you, please check relevant bug trackers for possible bugs, or go through the forums to see if anyone has found a better solution.<br />
<br />
===Touchpad synchronization issues===<br />
<br />
Sometimes the cursor may freeze for several seconds or start acting on its own for no apparent reason. This behavior is accompanied by records in /var/log/messages.log<br />
<br />
psmouse.c: TouchPad at isa0060/serio1/input0 lost synchronization, throwing 3 bytes away<br />
<br />
This problem has no general solution, but there are several possible workarounds.<br />
*If you use CPU frequency scaling, avoid using the "ondemand" governor and use the "performance" governor when possible, as the touchpad may lose sync when the CPU frequency changes.<br />
*Avoid using an ACPI battery monitor.<br />
*Attempt to load psmouse with "proto=imps" option. To do that, add this line to your /etc/modprobe.conf:<br />
<br />
options psmouse proto=imps<br />
<br />
*Try another desktop environment. Some users report that this problem only occurs when using XFCE or GNOME, for whatever reason<br />
<br />
===Delay between a button tap and the actual click===<br />
<br />
If you experience a delay between the tap on the touchpad and the actual click that is registered you need to enable FastTaps:<br />
<br />
To do so, you should add '''Option "FastTaps" "1"''' to '''/etc/X11/xorg.conf.d/10-synaptics.conf''' so that you have:<br />
<br />
Section "InputClass"<br />
Identifier "Synaptics Touchpad"<br />
Driver "synaptics"<br />
...<br />
Option "FastTaps" "1"<br />
...<br />
EndSection<br />
<br />
===SynPS/2 Synaptics TouchPad can't grab event device, errno=16===<br />
<br />
If you are using Xorg 7.4, you may get a warning like this from /var/log/Xorg.0.log, thais is because the driver will grab the event device for exclusive use when using the Linux 2.6 event protocol. When it fails, X will return this error message.<br />
<br />
Grabbing the event device means that no other user space or kernel space program sees the touchpad events. This is desirable if the X config file includes /dev/input/mice as an input device, but is undesirable if you want to monitor the device from user space.<br />
<br />
If you want to control it, add or modify the "GrabEventDevice" option in you touchpad section in /etc/X11/xorg.conf.d/10-synaptics.conf:<br />
<br />
...<br />
Option "GrabEventDevice" "''boolean''"<br />
...<br />
<br />
This will come into effect when X is restarted, though you can also change it by using synclient. When changing this parameter with the synclient program, the change will not take effect until the Synaptics driver is disabled and re-enabled. This can be achieved by switching to a text console and then switching back to X.<br />
<br />
===Synaptics Loses Multitouch Detection After Rebooting From Windows===<br />
<br />
Many drivers include a firmware that is loaded into flash memory when the computer boots. This firmware is not necessarily cleared upon shutdown, and is not always compatible with Linux drivers. The only way to clear the flash memory is to shutdown completely rather than using reboot. It's generally considered best practice to never use reboot when switching between operating systems.<br />
<br />
==External Resources==<br />
<br />
Synaptics TouchPad driver: [http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/]<br />
<!-- vim: set ft=Wikipedia: --></div>Costalfy