https://wiki.archlinux.org/api.php?action=feedcontributions&user=Kuba-orlik&feedformat=atomArchWiki - User contributions [en]2024-03-28T21:57:47ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=SANE&diff=788136SANE2023-09-21T14:23:04Z<p>Kuba-orlik: I was stuck trying to make a scanner work and this helped</p>
<hr />
<div>[[Category:Digital imaging]]<br />
[[ja:SANE]]<br />
[[zh-hans:SANE]]<br />
{{Related articles start}}<br />
{{Related|SANE/Scanner-specific problems}}<br />
{{Related|Scanner Button Daemon}}<br />
{{Related articles end}}<br />
<br />
[http://www.sane-project.org/ SANE] ([[wikipedia:Scanner Access Now Easy|Scanner Access Now Easy]]) provides a library and a command-line tool to use scanners under GNU/Linux.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|sane}} package. Most front-ends and drivers pull this as a dependency anyway, so it is often unnecessary to explicitly install it.<br />
<br />
=== Scanner drivers ===<br />
<br />
Many modern scanners support "driverless" scanning.[https://help.ubuntu.com/community/sane#Installing_Network_Scanners] You can look for your device's compatibility on [https://github.com/alexpevzner/sane-airscan#compatibility sane-airscan GitHub] or [https://support.apple.com/en-us/HT201311#printers Apple AirPrint devices].<br />
<br />
[[Install]] the {{Pkg|sane-airscan}} package if the scanner is known to work in "driverless" mode. If your scanner is using USB, also [[install]] the {{Pkg|ipp-usb}} package and [[start/enable]] {{ic|ipp-usb.service}} to allow using IPP protocol over USB connection.<br />
<br />
Otherwise, check [http://www.sane-project.org/sane-supported-devices.html SANE - Supported Devices] and [[SANE/Scanner-specific problems]] to see if your scanner will work with a different driver.<br />
<br />
Most scanners should work out of the box. If yours does not, see [[SANE/Scanner-specific problems]] for installation instructions.<br />
<br />
{{note|Some drivers, including {{Pkg|sane-airscan}}, use multicast to search for network scanners. See [[iptables#Allowing multicast traffic]] to correctly configure your firewall.}}<br />
<br />
=== Frontends ===<br />
<br />
Many frontends exist for SANE, a non-exhaustive list of which can be found on the [http://www.sane-project.org/sane-frontends.html SANE project website].<br />
<br />
* {{App|[[Wikipedia:Simple Scan|Simple Scan]]|Simplified GUI that is intended to be easier to use and better integrated into the [[GNOME]] desktop than XSane. Part of {{Grp|gnome}}.|https://gitlab.gnome.org/GNOME/simple-scan|{{Pkg|simple-scan}}}}<br />
* {{App|[[Wikipedia:Skanlite|Skanlite]]|Simple image scanning application that does nothing more than scan and save images, based on the KSane backend.|https://apps.kde.org/skanlite/|{{Pkg|skanlite}}}}<br />
* {{App|Skanpage|A simple scanning application designed for multi-page scanning and saving of documents and images.|https://apps.kde.org/skanpage/|{{Pkg|skanpage}}}}<br />
* {{App|[[Wikipedia:Scanner Access Now Easy#XSane|XSane]]|Full-featured GTK-based frontend, looking a bit old but providing extended functionalities.|http://www.xsane.org/|{{Pkg|xsane}}}}<br />
* {{App|Scantailor|A scanning application that works with projects and allow live editing during the scanning process.|https://github.com/4lex4/scantailor-advanced|{{Pkg|scantailor-advanced}}}}<br />
<br />
Some [[List of applications/Documents#OCR software|OCR software]] can scan images using SANE: gImageReader, [[Wikipedia:Scanner Access Now Easy#gscan2pdf|gscan2pdf]], Linux-Intelligent-Ocr-Solution, [[Wikipedia:OCRFeeder|OCRFeeder]], [https://openpaper.work Paperwork].<br />
<br />
{{Note|<br />
* Scanning directly to PDF using XSane in 16bit color depth mode is known to produces [https://bugs.launchpad.net/ubuntu/+source/xsane/+bug/539162 corrupted files] and a note in {{ic|pacman}} output warns so. 8bit mode is known to work.<br />
<br />
{{Accuracy|skanlite does not need to ''handle'' mDNS. As long as [[Avahi#Hostname resolution|mDNS hostname resolution]] is set up correctly and the scanner 's address is specified as {{ic|''hostname''.local}}, it should just work. This looks like a hplip limitation/bug.}}<br />
<br />
* Using a frontend does not mean you do not have to apply some tricks. This is especially true with devices configured via [[mDNS]]. For example, {{ic|skanlite}} needs to have additional info specified on the command line in order to detect a network scanner properly as it cannot handle mDNS. Here is an example with an HP Officejet Pro L7590: {{ic|1=skanlite --device "hpaio:/net/Officejet_Pro_L7500?ip=192.168.0.17"}}.<br />
}}<br />
<br />
== Verification ==<br />
<br />
Now you can try to see if sane recognizes your scanner.<br />
<br />
$ scanimage -L<br />
<br />
If that fails, run the command again as root to check for permission problems. If that fails as well, check that your scanner is plugged into the computer. You also might have to unplug/plug your scanner for {{ic|/usr/lib/udev/rules.d/65-sane.rules}} to recognize your scanner.<br />
<br />
Now you can see if it actually works<br />
<br />
$ scanimage --format=png --output-file test.png --progress<br />
<br />
If the scanning fails with the message {{ic|scanimage: sane_start: Invalid argument}} you may need to specify the device.<br />
<br />
{{hc|$ scanimage -L|<br />
device `v4l:/dev/video0' is a Noname Video WebCam virtual device<br />
device `pixma:04A91749_247936' is a CANON Canon PIXMA MG5200 multi-function peripheral<br />
}}<br />
<br />
Then you would need to run<br />
<br />
$ scanimage --device "pixma:04A91749_247936" --format=tiff --output-file test.tiff --progress<br />
<br />
Sane provides many special backend options for numerous scanner types. To see what these are for your device:<br />
<br />
$ scanimage -A<br />
<br />
== Firmware ==<br />
<br />
{{Note|This section is only needed if you need to upload firmware to your scanner.}}<br />
<br />
Firmwares usually have the ''.bin'' extension. <br />
<br />
Firstly you need to put the firmware someplace safe, it is recommended to put it in a subdirectory of {{ic|/usr/share/sane/}}.<br />
<br />
Then you need to tell sane where the firmware is:<br />
<br />
* Find the name of the backend for your scanner from the [http://www.sane-project.org/sane-supported-devices.html sane supported devices list].<br />
* Open the file {{ic|/etc/sane.d/''backend-name''.conf}}.<br />
* Make sure the firmware entry is uncommented and let the file-path point to where you put the firmware file for your scanner. Be sure that members of the group {{ic|scanner}} can access the {{ic|/etc/sane.d/''backend-name''.conf}} file.<br />
<br />
If the backend of your scanner is not part of the sane package (such as {{ic|hpaio.conf}} which is part of {{Pkg|hplip}}), you need to uncomment the relevant entry in {{ic|/etc/sane.d/dll.d}} or in {{ic|/etc/sane.d/dll.conf}}.<br />
<br />
== Sharing your scanner over a network ==<br />
<br />
You can share your scanner with other hosts on your network who use ''sane'', ''xsane'' or xsane-enabled ''GIMP''. To set up the server, first indicate which hosts on your network are allowed access.<br />
<br />
Change the {{ic|/etc/sane.d/saned.conf}} file to your liking, for example:<br />
<br />
# required<br />
localhost<br />
# allow local subnet<br />
192.168.0.0/24<br />
<br />
Second, install, start and enable [[avahi]]-daemon on your server (if it is not already active) so your scanner can be found by multicast. Or, if your scanner is supported by Airscan installing the {{Pkg|sane-airscan}} package is an alternative.<br />
<br />
If you use [[iptables]], [[Kernel modules|insert]] the {{ic|nf_conntrack_sane}} module to let the firewall track {{ic|saned}} connections.<br />
<br />
Conntrack helper seems to be disabled by default.[https://home.regit.org/wp-content/uploads/2011/11/secure-conntrack-helpers.html] You can activate it with <br />
<br />
# echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper <br />
<br />
To configure this permanently, set the {{ic|1=nf_conntrack_helper=1}} option for the {{ic|nf_conntrack}} module, see [[Kernel module#Using files in /etc/modprobe.d/]].<br />
<br />
Now [[start/enable]] {{ic|saned.socket}}. Your scanner is now available over the network. For more information, see {{man|8|saned}}.<br />
<br />
{{Note|saned intentionally refuses to share scanners that use the net: backend (which includes some USB scanners). There is a crude patch to allow this in {{Bug|54786}}, but note it may cause problems on some networks. Check output of {{ic|scanimage -L}} on the server to see the scanner url.}}<br />
<br />
=== Accessing your scanner from a remote workstation ===<br />
<br />
{{Remove|Once a local scanner is shared (above), remote workstations should follow the normal instructions (i.e. Installation's [[#Scanner_drivers]]). Static IPs & avahi-daemon should move to that section.}}<br />
<br />
{{Note|Some network scanners require a different approach. See [[SANE/Scanner-specific problems]].}}<br />
<br />
You can access your network-enabled scanner from a remote Arch Linux workstation.<br />
<br />
First, specify the server's host name or IP address in the {{ic|/etc/sane.d/net.conf}} file:<br />
<br />
# static IP address<br />
192.168.0.1<br />
# or host name<br />
stratus<br />
<br />
Second, depending on what you configured at the server side, install, start and enable avahi-daemon or install sane-airscan at the remote workstation.<br />
<br />
Now test your workstation's connection:<br />
<br />
$ scanimage -L<br />
<br />
The network scanner should now also show up in some [[#Frontends|front-end]]s.<br />
<br />
=== Windows clients ===<br />
<br />
Since the Windows port of SANE seems to be [https://web.archive.org/web/20151207111023/http://www.xsane.org/xsane-download.html unsupported, outdated and difficult to get], you can try [https://sourceforge.net/projects/sanewinds/ SANEWinDS] or [https://sanetwain.ozuzo.net/ SaneTwain] (old).<br />
<br />
== Troubleshooting ==<br />
<br />
:See also: [[SANE/Scanner-specific problems]]<br />
<br />
=== Invalid argument ===<br />
<br />
If you get an "Invalid argument" error with xsane or another sane front-end, this could be caused by one of the following reasons:<br />
<br />
==== Missing firmware file ====<br />
<br />
No firmware file was provided for the used scanner (see [[#Firmware]] for details).<br />
<br />
==== Wrong firmware file permissions ====<br />
<br />
The permissions for the used firmware file are wrong. Correct them using<br />
<br />
# chown root:scanner /usr/share/sane/''SCANNER_MODEL''/''FIRMWARE_FILE''<br />
# chmod ug+r /usr/share/sane/''SCANNER_MODEL''/''FIRMWARE_FILE''<br />
<br />
==== Multiple backends claim scanner ====<br />
<br />
It may happen, that multiple backends support (or pretend to support) your scanner, and sane chooses one that does not do after all (the scanner will not be displayed by {{ic|scanimage -L}} then). This has happened with older Epson scanners and the {{ic|epson2}} resp. {{ic|epson}} backends. In this case, the solution is to comment out the unwanted backend in {{ic|/etc/sane.d/dll.conf}}. In the Epson case, that would be to comment out epson2:<br />
<br />
{{hc|/etc/sane.d/dll.conf|<br />
#epson2<br />
epson<br />
}}<br />
<br />
It may also be possible that the independent {{AUR|iscan}} {{ic|epkowa}} backend interferes with your {{ic|snapscan}} backend (epson scanners). You may get this error right after using the {{ic|scanimage -L}} command. Starting the scanner app (like {{Pkg|xsane}}) twice can also solve the problem. Otherwise check your {{ic|/etc/sane.d/epkowa.conf}} for wrong configurations or remove the {{AUR|iscan}} package.<br />
<br />
==== Communication via xHCI not working (older scanner models) ====<br />
<br />
Some older scanner models do not work when connected via an USB3 port. If you experience this issue, try setting the {{ic|1=SANE_USB_WORKAROUND=1}} [[environment variable]] before starting your frontend.[https://lists.alioth.debian.org/pipermail/sane-announce/2017/000036.html][https://salsa.debian.org/debian/sane-backends/-/blob/master/ChangeLog#L2251-2262]<br />
<br />
If that does not work, try one of the following workarounds:<br />
<br />
* Use an USB2 port instead of an USB3 port, if available.<br />
* Disable xHCI via BIOS/EFI. eHCI will consequently be used and communication with the scanner will work. On the downside, USB3 speed can not be reached on any port.<br />
* On (some) intel chipsets the {{ic|setpci}} command can be used to route specific usb ports to either the xHCI or the eHCI controller. See [https://forums.opensuse.org/showthread.php/507627-Suse-13-2-scanner-no-longer-working-on-64-bit-version?p=2714695#post2714695 here]{{Dead link|2023|05|06|status=404}} and [https://superuser.com/questions/812022/force-a-single-usb-3-0-port-to-work-as-usb-2-0 here] (scroll down to where it says "setpci") for further information. With this it is possible to toggle single USB ports with a simple shell script.<br />
* Connect the scanner over the network instead if it is supported.<br />
<br />
==== Firewall ====<br />
<br />
When network scanning scanner hangs, then invalid argument error occured.<br />
<br />
saned uses data port range, so you must enable connections to 6566/tcp and data_portrange from /etc/sane.d/saned.conf or use conntrack firewall module for sane to enable data ports as described above.<br />
<br />
=== Slow startup ===<br />
<br />
If you encounter slow startup issue (e.g. {{ic|xsane}} or {{ic|scanimage -L}} does not return results nearly instantly), one of the drivers you do not use may be the culprit.<br />
<br />
You can resolve this by editing {{ic|/etc/sane.d/dll.conf}} and commenting out the scanner drivers you do not use. You can use {{ic|scanimage -L}} to determine which drivers you need:<br />
<br />
{{hc|$ scanimage -L|<br />
device `brother4:net1;dev0' is a Brother DCP-L2550DW<br />
device `v4l:/dev/video0' is a Noname Logitech Webcam C925e virtual device<br />
device `<nowiki>escl:http://192.168.1.2:80'</nowiki> is a Brother DCP-L2550DW series adf,platen scanner<br />
}}<br />
<br />
The parts between the {{ic|`}} and the {{ic|:}} in the output indicate the driver for the device. For example, if only want to use the Brother scanner and not the [[webcam]] or the generic scanner driver, you can comment out everything but the {{ic|brother4}} driver in {{ic|/etc/sane.d/dll.conf}}.<br />
<br />
=== Device busy ===<br />
<br />
{{Accuracy|The user should not need to be in the scanner group (see [[Users and groups#Pre-systemd groups]])}}<br />
<br />
If your USB device is listed with {{ic|scanimage -L}} but launching the test {{ic|1=scanimage pixma:04A9173E_11DAD1 --format=tiff --output-file test.tiff}} always return the 'Device busy' error, you might try to add your username to the scanner group {{ic|usermod -a -G scanner yourusername}} then blacklist the {{ic|usblp}} kernel module by writing {{ic|blacklist usblp}} in {{ic|/etc/modprobe.d/no-usblp.conf}} (it prevents {{ic|usblp}} from loading to support scanning, not needed by xsane and related tools, might also [[CUPS/Troubleshooting#Conflict with usblp|conflict with CUPS]]). Reboot to finish. [https://cromwell-intl.com/linux/canon-pixma-printer-scanner.html]<br />
<br />
In addition to this, some Cannon printers return "device busy" if the scan mode is set to "Computer". Setting this to the "Remote Scanner" mode should fix the issue.[https://alioth-lists.debian.net/pipermail/sane-devel/2014-March/032169.html]<br />
<br />
=== Permission problem ===<br />
<br />
With systemd, the {{ic|scanner}} and {{ic|lp}} groups are deprecated. No need to add your user to those groups. See [[Users and groups#Pre-systemd groups]] for detail.<br />
<br />
You can also try to change permissions of usb device but this is not recommended, a better solution is to fix the [[Udev rules]] so that your scanner is recognized.<br />
<br />
First check connected usb devices with {{ic|lsusb}}:<br />
<br />
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />
Bus 003 Device 003: ID 04d9:1603 Holtek Semiconductor, Inc.<br />
Bus 003 Device 002: ID 04fc:0538 Sunplus Technology Co., Ltd<br />
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />
Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard<br />
Bus 001 Device 002: ID 046d:0802 Logitech, Inc. Webcam C200<br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
In our example we see the scanner: {{ic|Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard}}. Here {{ic|03f0}} is the ''vendorID'' and {{ic|2504}} is the ''productID''.<br />
<br />
Alternatively, running {{ic|sane-find-scanner}} with root permission will also give you the same ''vendorID'' and ''productID''.<br />
<br />
Now open {{ic|/usr/lib/udev/rules.d/65-sane.rules}} and see if there is there is a line with the ''vendorID'' and ''productID'' of your scanner. If there is not any, create the new file {{ic|/etc/udev/rules.d/65-sane-missing-scanner.rules}}, with the following contents:<br />
<br />
ATTRS{idVendor}=="'''vendorID'''", ATTRS{idProduct}=="'''productID'''", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"<br />
<br />
Save the file, plug out and back in your scanner and the file permissions should be now correct.<br />
<br />
{{Accuracy|The scanner needs to be added to the right backend file, {{ic|hp4200.conf}} will not work for any scanner.}}<br />
<br />
Another tip, is that you can add your device (scanner) in backend file:<br />
<br />
Add {{ic|usb 0x03f0 0x2504}} to {{ic|/etc/sane.d/hp4200.conf}} so it looks like this:<br />
<br />
#<br />
# Configuration file for the hp4200 backend<br />
#<br />
#<br />
# HP4200<br />
#usb 0x03f0 0x0105<br />
usb 0x03f0 0x2504<br />
<br />
==== Parallel port scanners ====<br />
<br />
All devices attached to a parallel port are assumed to be printers, and are given a {{ic|lp}} group. Either create a [[udev]] rule to mark the relevant parallel port as {{ic|libsane_matched}}, or add your user to the {{ic|lp}} [[user group]]. CUPS also uses the {{ic|lp}} group for read-only access to configuration files, so there are potential security implications to adding users to the {{ic|lp}} group - see [[CUPS#Connection interfaces]] for more information.<br />
<br />
=== avahi-daemon is not mandatory ===<br />
<br />
{{Style|This is configuration, not troubleshooting.}}<br />
<br />
Some scanner applications may require you to start the ''avahi-daemon'' upon startup. This is actually the cause of SANE. If for some reason you do not want to enable the ''avahi-daemon'' service because you use a wired scanner or do not need it because your scanner's driver supports networking already on setup, then comment out the {{ic|net}} backend in the SANE configuration:<br />
<br />
{{hc|/etc/sane.d/dll.conf|<br />
# The next line enables the network backend; comment it out if you do not<br />
# need to use a remote SANE scanner over the network -- see sane-net(5)<br />
# and saned(8) for details.<br />
#net<br />
}}<br />
<br />
Then restart the {{ic|saned}} daemon.<br />
<br />
=== Error during device I/O ===<br />
<br />
If you're getting {{ic|SANE: Error during device I/O (code{{=}}9)}} while trying to scan using an HP scanner, make sure you have {{AUR|hplip-plugin}} installed (see https://wiki.archlinux.org/title/CUPS/Printer-specific_problems#HP).<br />
<br />
== See also ==<br />
<br />
* [[Wikipedia:WS-Discovery]], Microsoft's "driverless" protocol</div>Kuba-orlikhttps://wiki.archlinux.org/index.php?title=List_of_applications/Other&diff=769911List of applications/Other2023-03-03T12:31:42Z<p>Kuba-orlik: update broken link</p>
<hr />
<div><noinclude><br />
[[Category:Applications]]<br />
[[Category:Lists of software]]<br />
[[es:List of applications (Español)/Other]]<br />
[[ja:アプリケーション一覧/その他]]<br />
[[zh-hans:List of applications/Other]]<br />
{{List of applications navigation}}<br />
</noinclude><br />
== Others ==<br />
<br />
=== Organization ===<br />
<br />
==== Personal information managers ====<br />
<br />
These applications support time, task and contacts management.<br />
<br />
* {{App|[[Evolution]]|Personal information management application that provides integrated mail, calendaring and address book functionality. Part of {{Grp|gnome-extra}}.|https://wiki.gnome.org/Apps/Evolution|{{Pkg|evolution}}}}<br />
* {{App|[[Wikipedia:Kontact|Kontact]]|Integrated solution to your personal information management.|https://kontact.kde.org/|{{Pkg|kontact}}}}<br />
* {{App|Osmo|GTK personal organizer, which includes calendar, tasks manager and address book modules.|http://osmo-pim.sourceforge.net|{{Pkg|osmo}}}}<br />
* {{App|[[Wikipedia:SeaMonkey#Mail|SeaMonkey Mail & Newsgroups]] with [[Wikipedia:Lightning (software)|Lightning]]|Extension to SeaMonkey that provides calendar and task support.|https://www.seamonkey-project.org/|{{Pkg|seamonkey}}}}<br />
* {{App|[[Thunderbird]] with [[Wikipedia:Lightning (software)|Lightning]]|Extension to Mozilla Thunderbird that provides calendar and task support.|https://www.thunderbird.net/calendar/|{{Pkg|thunderbird}}}}<br />
<br />
==== Time management ====<br />
<br />
===== Console =====<br />
<br />
* {{App|Calcurse|Text-based ncurses calendar and scheduling system (supports CalDAV)|https://calcurse.org|{{Pkg|calcurse}}}}<br />
* {{App|ccal|A console program which writes a calendar together with Chinese calendar to standard output.|http://ccal.chinesebay.com/ccal/ccal.htm|{{AUR|ccal}}}}<br />
* {{App|khal|Command-line (non-interactive) and ncurses (interactive) calendar system (supports CalDAV)|https://github.com/pimutils/khal|{{Pkg|khal}}}}<br />
* {{App|mail2rem|Small script for importing ''.ics'' calendars from Maildir to Remind calendar.|https://github.com/esovetkin/mail2rem|{{AUR|mail2rem-git}}}}<br />
* {{App|Pal|Very lightweight calendar with both interactive and non-interactive interfaces.|http://palcal.sourceforge.net/|{{AUR|pal}}}}<br />
* {{App|pcal|A tool to create pdf calendars from pcal input which can be exported by some calendar programs.|https://sourceforge.net/projects/pcal/|{{AUR|pcal}}}}<br />
* {{App|[[Remind]]|Highly sophisticated text-based calendaring and notification system.|https://dianne.skoll.ca/projects/remind/|{{Pkg|remind}}}}<br />
* {{App|When|Simple personal calendar program.|http://lightandmatter.com/when/when.html|{{Pkg|when}}}}<br />
* {{App|Wyrd|Text-based front-end to Remind, a calendar and alarm program used on UNIX and Linux computers.|https://gitlab.com/wyrd-calendar/wyrd|{{AUR|wyrd}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|chinese-calendar|Chinese traditional calendar for Ubuntu Kylin.|https://launchpad.net/chinese-calendar/|{{Pkg|chinese-calendar}}}}<br />
* {{App|CoreTime|Very simple Clock/Calendar application which shows a clock, supports alarms, reminders, a stop watch and a timer. Part of C-Suite.|https://cubocore.org/|{{AUR|coretime}}}}<br />
* {{App|Day Planner|Program designed to help you easily plan and manage your time. It can manage appointments, birthdays and more.|https://www.day-planner.org/|{{AUR|dayplanner}}}}<br />
* {{App|Deepin Calendar|Calendar application for Deepin.|https://www.deepin.org/en/original/dde-calendar/|{{Pkg|deepin-calendar}}}}<br />
* {{App|etmtk (Event and Task Manager)|Simple application with a "Getting Things Done!" approach to handling events, tasks, activities, reminders and projects.|https://people.duke.edu/~dgraham/ETMtk/|{{AUR|etmtk}}}}<br />
* {{App|Gahshomar|Persian (Jalali/Farsi) calendar.|https://www.gahshomar.org/gahshomar/|{{AUR|gahshomar}}}}<br />
* {{App|GNOME Calendar|Calendar application for GNOME.|https://wiki.gnome.org/Apps/Calendar|{{Pkg|gnome-calendar}}}}<br />
* {{App|[[Wikipedia:KAlarm|KAlarm]]|Personal alarm message, command and email scheduler, part of {{Grp|kde-pim}}.|https://apps.kde.org/kalarm/|{{Pkg|kalarm}}}}<br />
* {{App|[[Wikipedia:Kontact#Organizer|KOrganizer]]|Calendar and scheduling program, part of {{Grp|kde-pim}}.|https://kontact.kde.org/components/korganizer|{{Pkg|korganizer}}}}<br />
* {{App|Kalendar|A calendar application using Akonadi to sync with external services (NextCloud, GMail, ...).|https://invent.kde.org/pim/kalendar|{{Pkg|kalendar}}}}<br />
* {{App|[[Nextcloud]] Calendar|Calendar app for Nextcloud.|https://github.com/nextcloud/calendar|{{Pkg|nextcloud-app-calendar}}}}<br />
* {{App|Outspline|Extensible outliner with advanced time management features, supporting events with complex recurrence schemes.|https://kynikos.github.io/outspline/|{{AUR|outspline}}}}<br />
* {{App|TkRemind|Sophisticated calendar and alarm program.|https://dianne.skoll.ca/projects/remind/|{{Pkg|remind}}}}<br />
<br />
==== Timers ====<br />
<br />
===== Countdown timers and stopwatch =====<br />
<br />
* {{App|GNOME Clocks|Clocks application for GNOME, including alarm, stopwatch and timer functionality.|https://wiki.gnome.org/Apps/Clocks|{{Pkg|gnome-clocks}}}}<br />
* {{App|Hourglass|Simple time keeping application designed for elementary OS.|https://github.com/sgpthomas/hourglass|{{AUR|hourglass-git}}}}<br />
* {{App|Kronometer|Stopwatch application for KDE.|https://apps.kde.org/kronometer/|{{Pkg|kronometer}}}}<br />
* {{App|KTeaTime|Handy timer for steeping tea.|https://apps.kde.org/kteatime/|{{Pkg|kteatime}}}}<br />
* {{App|pystopwatch|Stopwatch written in Python with a clock and two countdown functions that can minimize to the tray.|https://xyne.dev/projects/pystopwatch/|{{AUR|pystopwatch}}}}<br />
* {{App|snore|A program like sleep, but with feedback.|https://github.com/clamiax/snore|{{AUR|snore-git}}}}<br />
* {{App|termdown|Countdown timer and stopwatch in your terminal.|https://github.com/trehn/termdown|{{Pkg|termdown}}}}<br />
<br />
===== Break timers =====<br />
<br />
* {{App|GNOME Break Timer|Keeps track of how much you are using the computer, and it reminds you to take regular breaks.|https://wiki.gnome.org/Apps/BreakTimer|{{Pkg|gnome-break-timer}}}}<br />
* {{App|RSI Break|Takes care of your health and regularly breaks your work to avoid repetitive strain injury (RSI).|https://apps.kde.org/rsibreak/|{{Pkg|rsibreak}}}}<br />
* {{App|Safe Eyes|Tool to reduce and prevent repetitive strain injury (RSI).|https://slgobinath.github.io/SafeEyes/|{{AUR|safeeyes}}}}<br />
* {{App|[[Wikipedia:Workrave|Workrave]]|Program that assists in the recovery and prevention of RSI.|https://workrave.org/|{{Pkg|workrave}}}}<br />
<br />
===== Pomodoro timers =====<br />
<br />
See [[Wikipedia:Pomodoro Technique]] for an introduction.<br />
<br />
* {{App|flow|Pomodoro app that blocks distractions while you work.|https://github.com/iamsergio/flow-pomodoro|{{AUR|flow-pomodoro}}}}<br />
* {{App|Gnomato|Timer for the Pomodoro Technique.|https://github.com/diegorubin/gnomato|{{AUR|gnomato}}}}<br />
* {{App|GNOME Pomodoro|Time management utility for GNOME based on the Pomodoro Technique.|https://gnomepomodoro.org/|{{AUR|gnome-shell-pomodoro}}}}<br />
* {{App|Pilorama|Eye-candy timeboxing tool written in QML|https://github.com/eplatonoff/pilorama|{{AUR|pilorama-git}}}}<br />
* {{App|Pomodoro-Logger|Pomodoro timer and logger with [[Wikipedia:Kanban board|Kanban board]] for task management and tracking.|https://github.com/zxch3n/PomodoroLogger|{{AUR|pomodoro-logger}}}}<br />
* {{App|Solanum|A pomodoro timer for the GNOME desktop|https://gitlab.gnome.org/World/solanum|{{AUR|solanum}}}}<br />
* {{App|Tomate|Timer for the Pomodoro Technique.|https://github.com/eliostvs/tomate-gtk|{{AUR|tomate-gtk}}}}<br />
* {{App|Tomato|Simple, usable and efficient pomodoro app designed for elementaryOS.|https://github.com/luizaugustomm/tomato|{{AUR|tomato-git}}}}<br />
* {{App|Tomighty|Desktop timer for the Pomodoro Technique.|https://tomighty.github.io|{{AUR|tomighty}}}}<br />
<br />
==== Time trackers ====<br />
<br />
* {{App|ActivityWatch|A self/local-hosted, cross-platform, client-server, privacy-focused active window tracker.|https://github.com/ActivityWatch/activitywatch|{{AUR|activitywatch-bin}}}}<br />
* {{App|Hamster|Time tracking application that helps you to keep track on how much time you have spent during the day on activities you choose to track.|http://projecthamster.org/|{{Pkg|hamster-time-tracker}}}}<br />
* {{App|Kapow|Punch clock to track time spent on projects.|https://gottcode.org/kapow/|{{AUR|kapow}}}}<br />
* {{App|KTimeTracker|Todo management and time tracking application.|https://apps.kde.org/ktimetracker/|{{Pkg|ktimetracker}}}}<br />
* {{App|Tider|Lightweight time tracking application (GTK)|https://github.com/naspeh/tider|{{AUR|tider-git}}}}<br />
* {{App|Timenaut|Time tracker that tracks active windows and lets you sort them into categories. Based on the [https://electronjs.org/ Electron] platform.|https://timenaut.app/|{{AUR|timenaut-appimage}}}}<br />
* {{App|Timewarrior|A command-line time-tracking application.|https://timewarrior.net/|{{Pkg|timew}}}}<br />
* {{App|Timetrack|Simple time-tracking app for GNOME.|https://gitlab.gnome.org/danigm/timetrack|{{AUR|timetrack}}}}<br />
* {{App|Wakatime|Open source plugins for metrics about your programming with intuitive web-interface.|https://wakatime.com/|{{Pkg|wakatime}}}}<br />
<br />
==== Task management ====<br />
<br />
===== Console =====<br />
<br />
* {{App|DevTodo|Small command line application for maintaining lists of tasks.|https://swapoff.org/devtodo1.html|{{AUR|devtodo}}}}<br />
* {{App|Taskbook|Tasks, boards & notes for the command-line habitat.|https://github.com/klauscfhq/taskbook|{{AUR|taskbook}}}}<br />
* {{App|[[Wikipedia:Taskwarrior|Taskwarrior]]|Command-line To-do list application with support for lua customization and more.|https://taskwarrior.org/|{{Pkg|task}}}}<br />
* {{App|todoman|Command-line To-do list manager (supports CalDAV)|https://github.com/pimutils/todoman|{{Pkg|todoman}}}}<br />
* {{App|Todo.txt|Small command-line To-do manager.|https://github.com/todotxt/todo.txt-cli/|{{AUR|todotxt}}}}<br />
* {{App|TuDu|Ncurses-based hierarchical To-do list manager with vim-like keybindings.|https://code.meskio.net/tudu/|{{AUR|tudu}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|Agenda|Simple, fast, no-nonsense to-do (task) list for elementary OS.|https://github.com/dahenson/agenda|{{AUR|agenda-git}}}}<br />
* {{App|Effitask|Graphical task manager, based on the [http://todotxt.com/ Todo.txt] format.|https://github.com/sanpii/effitask|{{AUR|effitask}}}}<br />
* {{App|Getting Things GNOME!|Personal tasks and TODO list items organizer for GNOME inspired by the [[Wikipedia:Getting Things Done|Getting Things Done (GTD)]] methodology.|https://github.com/getting-things-gnome/gtg|{{AUR|gtg}}}}<br />
* {{App|Go For It!|Simple and stylish productivity app, featuring a to-do list, merged with a timer that keeps your focus on the current task. To-do lists are stored in the [http://todotxt.com/ Todo.txt] format.|http://manuel-kehl.de/projects/go-for-it/|{{AUR|go-for-it-git}}}}<br />
* {{App|Endeavour|Personal task manager for GNOME.|https://wiki.gnome.org/Apps/Todo|{{Pkg|endeavour}}}}<br />
* {{App|[[Nextcloud]] Tasks|Tasks app for Nextcloud.|https://github.com/nextcloud/tasks|{{Pkg|nextcloud-app-tasks}}}}<br />
* {{App|Planner|Task manager with Todoist support.|https://planner-todo.web.app/|{{AUR|elementary-planner}}}}<br />
* {{App|ptask|GTK task manager based on [[Wikipedia:Taskwarrior|Taskwarrior]].|https://wpitchoune.net/ptask/|{{AUR|ptask}}}}<br />
* {{App|QTodoTxt|UI client for [http://todotxt.com/ todo.txt] files.|https://github.com/mNantern/QTodoTxt|{{AUR|qtodotxt}}}}<br />
* {{App|sleek|todo.txt app with modern GUI. Based on the [https://electronjs.org/ Electron] platform.|https://github.com/ransome1/sleek/|{{AUR|sleek}}}}<br />
* {{App|Task Coach|Simple todo manager to manage personal tasks and todo lists.|https://www.taskcoach.org|{{AUR|taskcoach}}}}<br />
* {{App|[[Wikipedia:Tasque (software)|Tasque]]|Easy quick task management app written in C#.|https://wiki.gnome.org/Attic/Tasque|{{AUR|tasque}}}}<br />
* {{App|Zanshin|To-do management application for KDE.|https://zanshin.kde.org/|{{Pkg|zanshin}}}}<br />
<br />
==== Contacts management ====<br />
<br />
===== Console =====<br />
<br />
* {{App|Abook|Text-based contacts manager designed for use with mutt.|http://abook.sourceforge.net/|{{AUR|abook}}}}<br />
* {{App|Khard|Command-line addressbook that is able to sync with CardDAV-servers.|https://github.com/scheibler/khard|{{Pkg|khard}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|Communicator|Integrated address book and dialer application features the search for and view of contacts, edit contact details, and make new contacts, favorites, and dialer pad.|https://mauikit.org/|{{Pkg|communicator}}}}<br />
* {{App|GNOME Contacts|Contacts manager for GNOME.|https://wiki.gnome.org/Apps/Contacts|{{Pkg|gnome-contacts}}}}<br />
* {{App|KAddressBook|Address book manager for KDE.|https://kontact.kde.org/components/kaddressbook|{{Pkg|kaddressbook}}}}<br />
* {{App|LDAP Administration Tool|Browse LDAP-based directories and add/edit/delete entries contained within.|https://sourceforge.net/projects/ldap-at/|{{AUR|lat}}}}<br />
* {{App|[[Nextcloud]] Contacts|Contacts app for Nextcloud.|https://github.com/nextcloud/contacts|{{Pkg|nextcloud-app-contacts}}}}<br />
* {{App|[[phpLDAPadmin]]|LDAP client webapp. Its hierarchical tree-viewer and advanced search functionality make it intuitive to browse and administer your LDAP directory.|https://phpldapadmin.sourceforge.net/|{{Pkg|phpldapadmin}}}}<br />
* {{App|[[Thunderbird]] with [https://gitlab.com/CardBook/CardBook CardBook] extension|address book based on the CardDAV and vCard standards.|https://gitlab.com/CardBook/CardBook|{{Pkg|thunderbird}}}}<br />
<br />
==== Financial management ====<br />
<br />
See also [[Wikipedia:Comparison of accounting software]].<br />
<br />
===== Console =====<br />
* {{App|Beancount|A double-entry bookkeeping computer language that lets you define financial transaction records in a text file, read them in memory, generate a variety of reports from them, and provides a web interface.|https://beancount.github.io/|{{AUR|beancount}}}}<br />
* {{App|esniper|Simple, lightweight tool for [[Wikipedia:Auction_sniping|sniping]] eBay auctions.|http://esniper.sourceforge.net/|{{AUR|esniper}}}}<br />
* {{App|hledger|An accounting program for tracking money, time, or any other commodity, using double-entry accounting and a simple, editable file format. hledger is inspired by and largely compatible with ledger.|https://hledger.org/|{{Pkg|hledger}}}}<br />
* {{App|[[Ledger]]|Ledger is a powerful, double-entry accounting system that is accessed from the UNIX command-line.|https://www.ledger-cli.org/|{{Pkg|ledger}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|Eqonomize!|Cross-platform personal accounting software, with focus on efficiency and ease of use for the small household economy.|https://eqonomize.github.io/|{{AUR|eqonomize}}}}<br />
* {{App|[[Wikipedia:GnuCash|GnuCash]]|Financial application that implements a double-entry book-keeping system with features for small business accounting.|https://www.gnucash.org/|{{Pkg|gnucash}}}}<br />
* {{App|Grisbi|Personal finance system which manages third party, expenditure and receipt categories, as well as budgetary lines, financial years, and other information that makes it suitable for associations.|https://www.grisbi.org/|{{AUR|grisbi}}}}<br />
* {{App|[[Wikipedia:HomeBank|HomeBank]]|Easy to use finance manager that can analyse your personal finance in detail using powerful filtering tools and graphs.|http://homebank.free.fr/|{{Pkg|homebank}}}}<br />
* {{App|[[Wikipedia:KMyMoney|KMyMoney]]|Personal finance manager that operates in a similar way to [[Wikipedia:Microsoft Money|Microsoft Money]]. It supports different account types, categorisation of expenses and incomes, reconciliation of bank accounts and import/export to the “QIF” file format.|https://kmymoney.org/|{{Pkg|kmymoney}}}}<br />
* {{App|Kresus|Self-hosted personal finance management software. It automatically retrieves every day all your new bank transactions and lets you categorize them, study them through charts and establish a budget.|https://kresus.org/en/|{{Pkg|kresus}}}}<br />
* {{App|Manager|Proprietary accounting software for small business.|https://www.manager.io/|{{AUR|manager-accounting}}}}<br />
* {{App|Money Manager EX|An easy-to-use personal finance suite|https://www.moneymanagerex.org/|{{AUR|moneymanagerex}}}}<br />
* {{App|[[Odoo]]|Open source ERP system purely in Python. Previously known as OpenERP.|https://www.odoo.com/|{{AUR|odoo}}}}<br />
* {{App|Skrooge|Personal finances manager for the KDE desktop.|https://skrooge.org/|{{Pkg|skrooge}}}}<br />
<br />
==== Cryptocurrency ====<br />
<br />
* {{App|ARK Desktop Wallet|Wallet for ARK.|https://github.com/ArkEcosystem/desktop-wallet|{{AUR|ark-desktop}}}}<br />
* {{App|Atomic Wallet|Manage your Bitcoin, Ethereum, XRP, Litecoin, XLM, and over 300 other coins and tokens. |https://atomicwallet.io/|{{AUR|atomicwallet}}}}<br />
* {{App|Bitcoin Core|Connect to the Bitcoin P2P Network.|https://bitcoincore.org/|{{Pkg|bitcoin-qt}}}}<br />
* {{App|Coinomi|Securely store, manage and exchange Bitcoin, Ethereum, and more than 1,770 other blockchain assets.|https://www.coinomi.com/|{{AUR|coinomi-wallet-bin}}}}<br />
* {{App|Cointop|Terminal based application for tracking cryptocurrencies.|https://cointop.sh/|{{AUR|cointop}}}}<br />
* {{App|Electrum|Lightweight Bitcoin client.|https://electrum.org/|{{Pkg|electrum}}}}<br />
* {{App|Etherwall|[[Ethereum]] wallet.|https://www.etherwall.com/|{{Pkg|etherwall}}}}<br />
* {{App|Exodus|All-in-one proprietary application to secure, manage, and exchange blockchain assets. Based on the [https://electronjs.org/ Electron] platform.|https://www.exodus.io/|{{AUR|exodus}}}}<br />
* {{App|Mist|[[Ethereum]] Dapp browser.|https://github.com/ethereum/mist|{{AUR|mist}}}}<br />
* {{App|Monero|Monero wallet.|https://getmonero.org/|{{Pkg|monero-gui}}, {{Pkg|monero}}}}<br />
* {{App|Dogecoin Core|Dogecoin Core wallet, Allows you to connect to the Dogecoin P2P Network.|https://dogecoin.com/|{{AUR|dogecoin-qt}}, {{AUR|multidoge}}}}<br />
<br />
==== Project management ====<br />
<br />
See also [[Wikipedia:Comparison of project management software]].<br />
<br />
* {{App|[[Wikipedia:Calligra Plan|Calligra Plan]]|Project management application, which is intended for managing moderately large projects with multiple resources.|https://www.calligra.org/plan/|{{Pkg|calligra-plan}}}}<br />
* {{App|[[Wikipedia:GanttProject|GanttProject]]|Project scheduling application featuring gantt chart, resource management, calendaring.|https://www.ganttproject.biz/|{{AUR|ganttproject}}}}<br />
* {{App|[[Notion-app]]|A note-taking software and project management software that is used for note-taking, task management, project management, knowledge management, and personal knowledge management. |https://www.notion.so/|{{AUR|notion-app}}}}<br />
* {{App|Planner|Project management application for GNOME.|https://wiki.gnome.org/Apps/Planner|{{AUR|planner}}}}<br />
* {{App|[[Wikipedia:ProjectLibre|ProjectLibre]]|Project management software alternative to [[Wikipedia:Microsoft Project|Microsoft Project]].|https://www.projectlibre.com/product/projectlibre-open-source|{{AUR|projectlibre}}}}<br />
* {{App|[[Wikipedia:TaskJuggler|TaskJuggler]]|Modern and powerful project management tool. Its new approach to project planning and tracking is more flexible and superior to the commonly used Gantt chart editing tools.|https://taskjuggler.org/|{{AUR|taskjuggler}}}}<br />
<br />
==== Recipe management ====<br />
<br />
* {{App|GNOME Recipes|Recipe management application for GNOME.|https://wiki.gnome.org/Apps/Recipes|{{Pkg|gnome-recipes}}}}<br />
* {{App|Gourmand|Simple but powerful recipe-managing application.|https://github.com/GourmandRecipeManager/gourmand|{{AUR|gourmand}}}}<br />
* {{App|KRecipes|KDE application designed to make organizing your personal recipes collection fast and easy.|https://apps.kde.org/krecipes/|{{AUR|krecipes}}}}<br />
<br />
=== Education ===<br />
<br />
See also [[List of games#Education]].<br />
<br />
* {{App|[[Moodle]]|Open-source software learning management system.|https://moodle.org/|{{AUR|moodle}}}}<br />
* {{App|[[Wikipedia:OpenBoard|OpenBoard]]|Interactive whiteboard software for schools and universities.|https://openboard.ch/index.en.html|{{AUR|openboard}}}}<br />
<br />
==== Flashcards ====<br />
<br />
See also [[Wikipedia:List of flashcard software]].<br />
<br />
* {{App|[[Anki]]|Intelligent spaced-repetition memory training program.|https://apps.ankiweb.net/|{{AUR|anki}}}}<br />
* {{App|jVLT|Vocabulary learning tool.|https://www.linuxlinks.com/jVLT/|{{AUR|jvlt}}}}<br />
* {{App|KWordQuiz|Tool that gives you a powerful way to master new vocabularies. Part of {{Grp|kde-education}}.|https://apps.kde.org/kwordquiz/|{{Pkg|kwordquiz}}}}<br />
* {{App|[[Mnemosyne]]|Flash-card tool which optimizes your learning process.|https://mnemosyne-proj.org/|{{AUR|mnemosyne}}}}<br />
* {{App|Parley|Program to help you memorize things. It uses the spaced repetition learning method, also known as flash cards. Part of {{Grp|kde-education}}.|https://apps.kde.org/parley/|{{Pkg|parley}}}}<br />
* {{App|Pauker|Flash card based learning tool using shortterm and longterm memory training.|http://pauker.sourceforge.net/|{{AUR|pauker}}}}<br />
* {{App|OpenTeacher|Open source application that helps you learn a variety of subjects|http://openteacher.org/en/|{{AUR|openteacher}}}}<br />
* {{App|StudyFlash|Learn flashcards inside your terminal|https://github.com/Alone2/studyFlash|{{AUR|studyflash}}}}<br />
<br />
==== Touch typing ====<br />
<br />
===== Console =====<br />
<br />
* {{App|Dvorak 7min|Simple ncurses-based typing tutor for those trying to become fluent with the Dvorak keyboard layout.|https://github.com/yaychris/dvorak7min|{{AUR|dvorak7min}}}}<br />
* {{App|GNU Typist|Universal typing tutor.|https://www.gnu.org/software/gtypist/|{{AUR|gtypist}}}}<br />
* {{App|psani-profi|Program that will teach you touchtyping (Czech).|https://www.sallyx.org/sally/psani-vsemi-deseti/|{{AUR|psani-profi}}}}<br />
* {{App|Typing Trainer|ncurses-based typing trainer program that knows the English and Hungarian languages.|http://tpgt.sourceforge.net/|{{AUR|tpgt}}}}<br />
* {{App|Typespeed|Test your typing speed, and get your fingers' CPS.|http://typespeed.sourceforge.net/|{{Pkg|typespeed}}}}<br />
* {{App|typiskt|touchtype training in the terminal (Bash).|https://github.com/budlabs/typiskt|{{AUR|typiskt}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|Amphetype|Layout-agnostic typing program aimed at people who do not need an on-screen keyboard, but would still like to improve their speed and accuracy.|https://code.google.com/p/amphetype/|{{AUR|amphetype-svn}}}}<br />
* {{App|Klavaro|Teaching touch typing that intends to be keyboard and language independent.|https://klavaro.sourceforge.io/|{{Pkg|klavaro}}}}<br />
* {{App|[[Wikipedia:KTouch|KTouch]]|Program to learn and practice touch typing. Part of {{Grp|kde-education}}.|https://apps.kde.org/ktouch/|{{Pkg|ktouch}}}}<br />
* {{App|TIPP10|Intelligent touch typing tutor.|https://www.tipp10.com/|{{Pkg|tipp10}}}}<br />
* {{App|TypingTest|Typing test desktop program with a large amount of customization.|https://github.com/laelath/typingtest|{{AUR|typingtest-git}}}}<br />
<br />
=== Accessibility ===<br />
<br />
See [[Accessibility]] for tips on operating the desktop and [[:Category:Accessibility]] for all available articles. See also [[List of applications/Utilities#On-screen keyboards|On-screen keyboards]].<br />
<br />
==== Speech synthesizers ====<br />
<br />
See also [[Wikipedia:Comparison of speech synthesizers]] and [https://tools.wmflabs.org/tts-comparison/ listening comparison of the different engines].<br />
<br />
* {{App|Ekho|Chinese text-to-speech (TTS) software for Cantonese, Mandarin, Zhaoan Hakka, Tibetan, Ngangien and Korean.|https://eguidedog.net/ekho.php|{{AUR|ekho}}}}<br />
* {{App|eSpeak|Compact speech synthesizer for more than 50 languages.|https://espeak.sourceforge.net/|{{AUR|espeak}}}}<br />
* {{App|[[Wikipedia:eSpeakNG|eSpeak NG]]|Fork of eSpeak (due to inactivity of original maintainer).|https://github.com/espeak-ng/espeak-ng|{{Pkg|espeak-ng}}}}<br />
* {{App|[[Festival]]|General framework for building speech synthesis systems as well as including examples of various modules. As a whole it offers full text to speech.|https://www.cstr.ed.ac.uk/projects/festival/|{{Pkg|festival}}}}<br />
* {{App|Flite|Lightweight speech synthesis engine.|http://festvox.org/flite/|{{Pkg|flite}}}}<br />
* {{App|Gespeaker|GTK frontend for espeak. It allows you to play a text in many languages with settings for voice, pitch, volume and speed.|https://muflone.com/gespeaker/english/|{{AUR|gespeaker}}}}<br />
* {{App|KMouth|Speech synthesizer frontend which enables persons that cannot speak to let their computer speak.|https://apps.kde.org/kmouth/|{{Pkg|kmouth}}}}<br />
* {{App|MaryTTS|Multilingual text-to-speech synthesis platform written in Java.|http://mary.dfki.de/|{{AUR|marytts}}}}<br />
* {{App|[[Mbrola|MBROLA]]|Proprietary phonemes-to-audio program which supports more than 70 languages. Mbrola-voices can also be used with eSpeak.|http://tcts.fpms.ac.be/synthesis/mbrola.html|{{AUR|mbrola}}}}<br />
* {{App|Mimic|Text-to-speech voice synthesis from the Mycroft project (based on Flite).|https://mimic.mycroft.ai/|{{AUR|mimic}}}}<br />
* {{App|Open JTalk|Japanese text-to-speech synthesis system.|https://sourceforge.net/projects/open-jtalk/|{{AUR|open-jtalk}}}}<br />
* {{App|Orca|Screen reader for individuals who are blind or visually impaired, using eSpeak (via Speech Dispatcher).|https://wiki.gnome.org/Projects/Orca|{{Pkg|orca}}}}<br />
* {{App|[[RHVoice]]|Cross-platform (including Android) text-to-speech from a blind Russian-speaking developer, based on [http://hts.sp.nitech.ac.jp HTS] (ru, ka, uk, ky, tt, en, pt, eo)|https://github.com/RHVoice/RHVoice|{{Pkg|rhvoice}}}}<br />
* {{App|[[Simple Orca Plugin System|SOPS]]|Provides a simple way to write custom plugins for screen reader Orca.|https://github.com/chrys87/simple-orca-plugin-system|{{AUR|simpleorcapluginsystem}}}}<br />
* {{App|Speech Dispatcher|Common interface to speech synthesis. It has backends for eSpeak, Festival, and a few other speech synthesizers.|https://freebsoft.org/speechd|{{Pkg|speech-dispatcher}}}}<br />
* {{App|SVOX Pico|The text-to-speech engine used on Android phones. (en-US, en-GB, de-DE, es-ES, fr-FR, it-IT)|https://android.googlesource.com/platform/external/svox/+/master|{{AUR|svox-pico-bin}}}}<br />
<br />
==== Speech recognition ====<br />
<br />
See also [[Wikipedia:Speech recognition software for Linux]].<br />
<br />
* {{App|[[Wikipedia:Julius (software)|Julius]]|Large vocabulary continuous speech recognition engine.|https://github.com/julius-speech/julius|{{AUR|julius}}}}<br />
* {{App|[[Wikipedia:Kaldi (software)|Kaldi]]|Speech recognition toolkit.|https://github.com/kaldi-asr/kaldi|{{AUR|kaldi}}}}<br />
* {{App|Kalliope|Modular always-on voice controlled personal assistant designed for home automation.|https://kalliope-project.github.io/|{{AUR|kalliope}}}}<br />
* {{App|Kaylee|Somewhat fancy voice command recognition program that performs actions when a user speaks loosely preset sentences.|https://github.com/Ratfink/kaylee|{{AUR|kayleevc}}}}<br />
* {{App|[[Wikipedia:Mycroft (software)|Mycroft]]|Hackable voice assistant.|https://github.com/MycroftAI/mycroft-core|{{AUR|mycroft-core}}}}<br />
* {{App|Numen|Voice control for handsfree computing|https://sr.ht/~geb/numen/|{{AUR|numen}}}}<br />
* {{App|Simon|Speech recognition program that can replace your mouse and keyboard.|https://simon.kde.org/|{{AUR|simon}}}}<br />
* {{App|nerd-dictation|Light weight manually activated dictation using the VOSK-API|https://github.com/ideasman42/nerd-dictation|{{AUR|nerd-dictation-git}}}}<br />
<br />
==== Screen magnifiers ====<br />
<br />
* {{App|KMag|Small KDE utility to magnify a part of the screen.|https://apps.kde.org/kmag/|{{Pkg|kmag}}}}<br />
* {{App|Magnus|Very simple desktop magnifier, showing the area around the mouse pointer in a separate window magnified two, three, four, or five times.|https://kryogenix.org/code/magnus/|{{AUR|magnus}}}}<br />
* {{App|Virtual Magnifying Glass|Simple, customizable and easy-to-use screen magnification tool.|https://magnifier.sourceforge.net/|{{AUR|vmg}}}}<br />
* {{App|xzoom|Zoom, rotate and mirror area of X display.|https://www.ibiblio.org/pub/Linux/X11/libs/!INDEX.short.html|{{AUR|xzoom}}}}<br />
<br />
==== On-screen annotation ====<br />
<br />
* {{App|Gromit-MPX|Tool to make annotations on the screen.|https://github.com/bk138/gromit-mpx|{{AUR|gromit-mpx}}}}<br />
* {{App|Pylote|Tool to draw on the screen.|http://pascal.peter.free.fr/pylote-en.html|{{AUR|pylote-git}}}}<br />
* {{App|Screenkey|Tool to display pressed keys.|https://www.thregr.org/~wavexx/software/screenkey/|{{Pkg|screenkey}}}}<br />
* {{App|Show Me The Key|A screenkey alternative that works under Wayland via libinput|https://showmethekey.alynx.one|{{AUR|showmethekey}}}}<br />
<br />
==== Mouse ====<br />
<br />
* {{App|Easystroke|Use mouse gestures to initiate commands and hotkeys.|https://github.com/thjaeger/easystroke/wiki|{{AUR|easystroke}}}}<br />
* {{App|KMouseTool|Clicks the mouse whenever the mouse cursor pauses briefly. It was designed to help those with repetitive strain injuries, for whom pressing buttons hurts.|https://apps.kde.org/kmousetool/|{{Pkg|kmousetool}}}}<br />
* {{App|Mousetweaks|Accessibility enhancements for pointing devices.|https://wiki.gnome.org/Projects/Mousetweaks|{{Pkg|mousetweaks}}}}<br />
<br />
=== Display managers ===<br />
<br />
See the main article: [[Display manager#List of display managers]].<br />
<br />
=== Desktop environments ===<br />
<br />
See the main article: [[Desktop environment#List of desktop environments]].<br />
<br />
==== Window managers ====<br />
<br />
===== Console =====<br />
<br />
See also [[List of applications/Utilities#Terminal multiplexers]], which offer some of the functions of window managers for the console.<br />
<br />
* {{App|twin|Text-mode window manager.|https://sourceforge.net/projects/twin/|{{Pkg|twin}}}}<br />
* {{App|Wmutils|A set of tools for X windows manipulation.|https://github.com/wmutils/core|{{AUR|wmutils-git}}}}<br />
<br />
===== Graphical =====<br />
<br />
See the main article: [[Window manager#List of window managers]].<br />
<br />
===== Composite managers =====<br />
<br />
See the main article: [[Xorg#List of composite managers]].<br />
<br />
==== Wayland Compositors ====<br />
<br />
See the main article: [[Wayland#Compositors]].<br />
<br />
==== Window tilers ====<br />
<br />
* {{App|QuickTile|Lightweight standalone alternative to Compiz Grid plugin.|http://ssokolow.com/quicktile/|{{AUR|quicktile-git}}}}<br />
* {{App|wumwum|The Window Manager manager. It can turn emwh compliant window managers into a tiling window manager while retaining all initial functionalities.|http://wumwum.sourceforge.net/|{{AUR|wumwum}}}}<br />
<br />
==== Taskbars ====<br />
<br />
See also [[Wikipedia:Taskbar]].<br />
<br />
* {{App|[[Bmpanel]]|Lightweight, NETWM compliant panel.|https://github.com/nsf/bmpanel2|{{AUR|bmpanel2}}}}<br />
* {{App|[[Cairo-Dock]]|Highly customizable dock and launcher application.|https://www.glx-dock.org/|{{Pkg|cairo-dock}}}}<br />
* {{App|CoreAction|Side bar with some handy gadgets like system loads, calendar, calculator, notes etc. Part of C-Suite.|https://cubocore.org/|{{AUR|coreaction}}}}<br />
* {{App|Dash to Panel|A fully customizable icon taskbar for {{Pkg|gnome-shell}}. Moves the dash into the GNOME main panel, similar to KDE Plasma and Windows 10.|https://github.com/home-sweet-gnome/dash-to-panel|{{AUR|gnome-shell-extension-dash-to-panel}}}}<br />
* {{App|eww|Elkowars Wacky Widgets is a standalone widget system made in Rust that allows you to implement your own, custom widgets in any window manager.|https://github.com/elkowar/eww|{{AUR|eww}}}}<br />
* {{App|[[fbpanel]]|Lightweight, NETWM compliant desktop panel.|https://aanatoly.github.io/fbpanel/|{{AUR|fbpanel}}}}<br />
* {{App|[[Wikipedia:GNOME Panel|GNOME Panel]]|Panel included in the [[GNOME Flashback]] desktop.|https://wiki.gnome.org/Projects/GnomePanel|{{Pkg|gnome-panel}}}}<br />
* {{App|Latte|Dock based on Plasma frameworks that provides an elegant and intuitive experience for your tasks and plasmoids.|https://invent.kde.org/plasma/latte-dock|{{Pkg|latte-dock}}}}<br />
* {{App|[[Lemonbar]]|A featherweight bar based on XCB. Provides UTF-8 support, background and foreground colors, text alignment, and not much more.|https://github.com/LemonBoy/bar|{{AUR|lemonbar-git}}}}<br />
* {{App|LXPanel|Lightweight X11 desktop panel and part of the LXDE desktop.|https://lxde.org/|{{Pkg|lxpanel}}}}<br />
* {{App|MATE Panel|Panel included in the [[MATE]] desktop.|https://github.com/mate-desktop/mate-panel/|{{Pkg|mate-panel}}}}<br />
* {{App|nwg-dock|GTK-based dock designed for the Sway window manager.|https://github.com/nwg-piotr/nwg-dock|{{AUR|nwg-dock}}}}<br />
* {{App|nwg-panel|GTK-based panel designed for the Sway window manager.|https://github.com/nwg-piotr/nwg-panel|{{AUR|nwg-panel}}}}<br />
* {{App|PerlPanel|The ideal accompaniment to a light-weight Window Manager such as OpenBox, or a desktop-drawing program like iDesk.|https://savannah.nongnu.org/projects/perlpanel|{{AUR|perlpanel-git}}}}<br />
* {{App|[[Plank]]|Elegant, simple, clean dock from [[pantheon]] desktop environment.|https://launchpad.net/plank|{{pkg|plank}}}}<br />
* {{App|[[Polybar]]|a fast and easy-to-use tool for creating status bars.|https://github.com/jaagr/polybar|{{Pkg|polybar}}}}<br />
* {{App|[[Tint2]]|Simple panel/taskbar developed specifically for Openbox.|https://gitlab.com/o9000/tint2|{{Pkg|tint2}}}}<br />
* {{App|Vala Panel|Gtk3 panel for compositing window managers|https://gitlab.com/vala-panel-project/vala-panel|{{AUR|vala-panel-git}}}}<br />
* {{App|Xfce Panel|Panel included in the [[Xfce]] desktop.|https://docs.xfce.org/xfce/xfce4-panel/start|{{Pkg|xfce4-panel}}}}<br />
* {{App|[[xmobar]]|A lightweight, text-based, status bar written in Haskell.|https://archives.haskell.org/projects.haskell.org/xmobar/|{{Pkg|xmobar}}}}<br />
* {{App|Waybar|A customizable taskbar for Wlroots-based Wayland compositors.|https://github.com/Alexays/Waybar/|{{Pkg|waybar}}}}<br />
* {{App|yambar|A modular and lightweight status panel for X11 and Wayland that goes to great lengths to be both CPU and battery efficient.|https://codeberg.org/dnkl/yambar|{{AUR|yambar}}}}<br />
<br />
==== System tray ====<br />
<br />
* {{App|AllTray|Dock other applications into the system tray (notification area).|https://github.com/mbt/alltray|{{Pkg|alltray}}}}<br />
* {{App|Docker|Docking application which acts as a system tray.|https://icculus.org/openbox/2/docker/|{{AUR|docker-tray}}}}<br />
* {{App|KDocker|Dock any application in the system tray (notification area).|https://github.com/user-none/KDocker|{{AUR|kdocker}}}}<br />
* {{App|[[Stalonetray]]|Stand-alone freedesktop.org and KDE system tray (notification area) for [[Xorg]]. It has full XEMBED support and minimal dependencies: an X11 lib only. Stalonetray works with virtually any EWMH-compliant window manager.|http://stalonetray.sourceforge.net/|{{Pkg|stalonetray}}}}<br />
* {{App|Trayer|Lightweight GTK-based system tray (notification area).|https://github.com/sargon/trayer-srg/|{{Pkg|trayer}}}}<br />
<br />
==== Application launchers ====<br />
<br />
See also [[Wikipedia:Comparison of desktop application launchers]].<br />
<br />
* {{App|Albert|Sophisticated, plugin based standalone keyboard launcher.|https://github.com/manuelschneid3r/albert|{{aur|albert}}}}<br />
* {{App|Application Finder|Easy-to-use application launcher from Xfce.|https://docs.xfce.org/xfce/xfce4-appfinder/start|{{pkg|xfce4-appfinder}}}}<br />
* {{App|Bashrun2|Provides a different, barebones approach to a run dialog, using a specialized Bash session within a small xterm window.|http://henning-bekel.de/bashrun2/|{{AUR|bashrun2}}}}<br />
* {{App|bemenu|Lightweight dynamic menu inspired by dmenu. Works natively on Wayland.|https://github.com/Cloudef/bemenu|{{Pkg|bemenu}}}}<br />
* {{App|[[dmenu]]|Fast and lightweight dynamic menu for X which is also useful as an application launcher.|https://tools.suckless.org/dmenu/|{{Pkg|dmenu}}}}<br />
* {{App|dmenu-extended|Extension to ''dmenu'' for quickly opening files and folders.|https://github.com/markjones112358/dmenu-extended|{{AUR|dmenu-extended-git}}}}<br />
* {{App|dmenu2|Unmaintained fork of dmenu with many useful patches applied and additional options like screen select, dim or opacity change.|https://github.com/spcmd/dmenu2|{{AUR|dmenu2}}}}<br />
* {{App|dswitcher|''dmenu''-based window switcher that works regardless of workspace or minimization.|https://github.com/Antithesisx/dswitcher|{{AUR|dswitcher-git}}}}<br />
* {{App|Fehlstart|Small GTK-based application launcher.|https://gitlab.com/fehlstart/fehlstart|{{AUR|fehlstart-git}}}}<br />
* {{App|[[Gmrun]]|Lightweight GTK-based application launcher, with the ability to run programs inside a terminal and other handy features.|https://sourceforge.net/projects/gmrun/|{{Pkg|gmrun}}}}<br />
* {{App|[[Wikipedia:GNOME Do|GNOME Do]]|Application launcher inspired by [[Wikipedia:Quicksilver_(software)|Quicksilver]] with many plugins, originally developed for the GNOME desktop.|https://do.cooperteam.net/|{{AUR|gnome-do}}}}<br />
* {{App|Gnome-Pie|Circular application launcher (pie menu) for Linux. It is made of several pies, each consisting of multiple slices.|https://simmesimme.github.io/gnome-pie.html|{{Pkg|gnome-pie}}}}<br />
* {{App|higgins|Desktop agnostic application launcher, file finder, calculator and more. Plugin based and freely and easily extendable via user-written plugins|https://github.com/kokoko3k/higgins|{{AUR|higgins-git}}}}<br />
* {{App|j4-dmenu-desktop|Very fast dmenu application launcher.|https://github.com/enkore/j4-dmenu-desktop|{{Pkg|j4-dmenu-desktop}}}}<br />
* {{App|jgmenu|Simple, independent, contemporary-looking X11 menu, designed for scripting, ricing and tweaking.|https://github.com/johanmalm/jgmenu|{{Pkg|jgmenu}}}}<br />
* {{App|Kupfer|Convenient command and access tool for the GNOME desktop that can launch applications, open documents and access different types of objects and act on them.|https://kupferlauncher.github.io/|{{Pkg|kupfer}}}}<br />
* {{App|launch|Simple command for launching applications from a terminal emulator.|https://github.com/silverhammermba/launch|{{AUR|launch-cmd}}}}<br />
* {{App|[[Wikipedia:Launchy|Launchy]]|Very popular cross-platform application launcher with a plugin-based system used to provide extra functionality.|https://www.launchy.net/|{{Pkg|launchy}}}}<br />
* {{App|Lighthouse|Simple scriptable popup dialog to run on X.|https://github.com/emgram769/lighthouse|{{AUR|lighthouse-git}}}}<br />
* {{App|nwg-drawer|GTK-based application drawer designed for the Sway compositor.|https://github.com/nwg-piotr/nwg-drawer|{{AUR|nwg-drawer}}}}<br />
* {{App|nwg-menu|GTK-based application menu designed for the Sway compositor.|https://github.com/nwg-piotr/nwg-menu|{{AUR|nwg-menu}}}}<br />
* {{App|[[rofi]]|Popup window switcher roughly based on superswitcher, requiring only xlib and pango.|https://github.com/davatorium/rofi/|{{Pkg|rofi}}}}<br />
* {{App|rlaunch|An extremely fast and light-weight dmenu-like application launcher written in Rust|https://github.com/PonasKovas/rlaunch|{{AUR|rlaunch}}}}<br />
* {{App|Synapse|Semantic launcher written in Vala that you can use to start applications as well as find and access relevant documents and files by making use of the Zeitgeist engine.|https://launchpad.net/synapse-project|{{Pkg|synapse}}}}<br />
* {{App|Ulauncher|Modern and shiny launcher that provides fuzzy search, extensions, and themes|https://ulauncher.io/|{{AUR|ulauncher}}}}<br />
* {{App|wofi|GTK-based popup window switcher for Wayland compositors such as {{Pkg|sway}}. Inspired by {{Pkg|rofi}}.|https://hg.sr.ht/~scoopta/wofi|{{Pkg|wofi}}}}<br />
* {{App|yofi|Minimalistic menu for Wayland-based compositors.|https://github.com/l4l/yofi|{{AUR|yofi-bin}}}}<br />
<br />
==== Application menu editors ====<br />
<br />
* {{App|[[Wikipedia:Alacarte|Alacarte]]|Add or remove applications from the main menu.|https://gitlab.gnome.org/GNOME/alacarte|{{Pkg|alacarte}}}}<br />
* {{App|AppEditor|Edit application entries in the application menu.|https://github.com/donadigo/appeditor|{{AUR|appeditor-git}}}}<br />
* {{App|Ezame|Desktop and menu file editor.|https://github.com/linux-man/ezame|{{AUR|ezame}}}}<br />
* {{App|KMenuEdit|Edit one of the KDE application launchers.|https://kde.org/|{{Pkg|kmenuedit}}}}<br />
* {{App|lxmed|Application menu editor written in Java.|https://sourceforge.net/projects/lxmed/|{{AUR|lxmed}}}}<br />
* {{App|MenuLibre|Advanced menu editor that provides modern features in a clean, easy-to-use interface.|https://launchpad.net/menulibre|{{AUR|menulibre}}}}<br />
* {{App|Meow|Application menu editor written in Java.|https://pnmougel.github.io/meow/|{{AUR|meow-bin}}}}<br />
* {{App|Mozo|Change which applications are shown on the main menu.|https://github.com/mate-desktop/mozo|{{Pkg|mozo}}}}<br />
<br />
==== Wallpaper setters ====<br />
<br />
See also [[Wikipedia:Wallpaper (computing)]].<br />
<br />
* {{App|bgs|An extremely fast and small background setter for X based on imlib2.|https://github.com/Gottox/bgs/|{{AUR|bgs-git}}}}<br />
* {{App|esetroot|Eterm's root background setter, packaged separately.|http://www.eterm.org/|{{AUR|esetroot}}}}<br />
* {{App|[[feh]]|A lightweight and powerful image viewer that can also be used to manage the desktop wallpaper.|https://feh.finalrewind.org/|{{Pkg|feh}}}}<br />
* {{App|Fondo|Find a variety of the most beautiful wallpapers from Unsplash.com.|https://github.com/calo001/fondo|{{AUR|fondo}}}}<br />
* {{App|habak|A background changing app.|https://fvwm-crystal.sourceforge.io/|{{AUR|habak}}}}<br />
* {{App|Hanabi|Live Wallpaper for GNOME.|https://github.com/jeffshee/gnome-ext-hanabi|{{AUR|gnome-shell-extension-hanabi-git}}}}<br />
* {{App|Hidamari|Video wallpaper for Linux. Written in Python.|https://github.com/jeffshee/hidamari|{{AUR|hidamari}}}}<br />
* {{App|hsetroot|A tool to create compose wallpapers.|https://packages.debian.org/sid/hsetroot|{{Pkg|hsetroot}}}}<br />
* {{App|HydraPaper|GTK utility to set two different backgrounds for each monitor on GNOME.|https://gabmus.gitlab.io/HydraPaper/|{{AUR|hydrapaper-git}}}}<br />
* {{App|Hyprpaper|Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls.|https://github.com/hyprwm/hyprpaper|{{AUR|hyprpaper-git}}}}<br />
* {{App|LiveWallpaper|Animated 3D wallpapers.|https://launchpad.net/livewallpaper|{{Pkg|livewallpaper}}}}<br />
* {{App|mpvpaper|A video wallpaper program for wlroots based wayland compositors.|https://github.com/GhostNaN/mpvpaper|{{AUR|mpvpaper}}}}<br />
* {{App|[[Nitrogen]]|A fast and lightweight desktop background browser and setter for X windows.|https://github.com/l3ib/nitrogen|{{Pkg|nitrogen}}}}<br />
* {{App|oguri|An animated wallpaper daemon for Wayland compositors.|https://github.com/vilhalmer/oguri|{{AUR|oguri-git}}}}<br />
* {{App|pacwall|A live wallpaper that shows the dependency graph and status of installed packages.|https://github.com/Kharacternyk/pacwall|{{AUR|pacwall-git}}}}<br />
* {{App|pybgsetter|Multi-backend (hsetroot, Esetroot, habak, feh) to set desktop wallpaper.|3=https://bbs.archlinux.org/viewtopic.php?id=88997|4={{AUR|pybgsetter}}}}<br />
* {{App|pywal|Changes the wallpaper and creates matching colorschemes for various applications (rofi, i3, terminals)|https://github.com/dylanaraps/pywal|{{Pkg|python-pywal}}}}<br />
* {{App|swaybg|Wallpaper tool for Wayland compositors.|https://github.com/swaywm/swaybg|{{Pkg|swaybg}}}}<br />
* {{App|Variety|Changes the wallpaper on a regular interval using user-specified or automatically downloaded images.|https://peterlevi.com/variety/|{{Pkg|variety}}}}<br />
* {{App|xli|An image display program for X.|https://packages.debian.org/sid/xli|{{AUR|xli}}}}<br />
* {{App|[[Xlivebg]]|A live wallpaper framework and collection of live wallpapers for the X window system.|http://nuclear.mutantstargoat.com/sw/xlivebg/|{{AUR|xlivebg}}}}<br />
* {{App|xwallpaper|Minimalistic wallpaper setting utility for X.|https://github.com/stoeckmann/xwallpaper|{{Pkg|xwallpaper}}}}<br />
<br />
{{Tip|In order to avoid installing one more package, you may find convenient to use the {{ic|display}} utility from {{Pkg|imagemagick}} or {{ic|gm display}} from {{Pkg|graphicsmagick}}. E.g.: {{ic|display -backdrop -background '#3f3f3f' -flatten -window root ''image''}}.}}<br />
<br />
==== Virtual desktop pagers ====<br />
<br />
See also [[Wikipedia:Pager (GUI)]].<br />
<br />
* {{App|bbpager|Dockable pager for [[blackbox]] and other window managers.|3=http://bbtools.sourceforge.net/download.php?file=6{{Dead link|2022|09|20|status=404}}|4={{Pkg|bbpager}}}}<br />
* {{App|fbpager|Virtual desktop pager for fluxbox.|http://www.fluxbox.org/fbpager|{{AUR|fbpager-git}}}}<br />
* {{App|IPager|A configurable pager with transparency, originally developed for Fluxbox.|http://useperl.ru/ipager/index.en.html|{{AUR|ipager}}}}<br />
* {{App|Netwmpager|A NetWM/EWMH compatible pager.|https://sourceforge.net/projects/sf-xpaint/files/netwmpager/|{{AUR|netwmpager}}}}<br />
<br />
==== Desktop widgets ====<br />
<br />
* {{App|[[Wikipedia:gDesklets|gDesklets]]|System for bringing mini programs (desklets) onto your desktop.|https://launchpad.net/gdesklets|{{AUR|gdesklets}}}}<br />
* {{App|KRuler|Displays on screen a ruler measuring pixels. Part of {{Grp|kde-graphics}}.|https://apps.kde.org/kruler/|{{Pkg|kruler}}}}<br />
<br />
==== Desktop notifications ====<br />
<br />
See: [[Desktop notifications#Notification servers|Notification servers]].<br />
<br />
==== Clipboard managers ====<br />
<br />
See [[Clipboard#Managers]].<br />
<br />
==== Logout UI ====<br />
<br />
* {{App|clearine|Beautiful Logout UI for X11 window manager|https://github.com/okitavera/clearine|{{AUR|clearine-git}}}}<br />
* {{App|nwg-bar|Configurable button bar for wlroots-based compositors.|https://github.com/nwg-piotr/nwg-bar|{{AUR|nwg-bar}}}}<br />
* {{App|[[oblogout]]|Openbox logout script|https://launchpad.net/oblogout|{{AUR|oblogout}}}}<br />
* {{App|wlogout|Logout menu for wayland|https://github.com/ArtsyMacaw/wlogout|{{AUR|wlogout}}}}<br />
<br />
=== Text art ===<br />
<br />
See [[ASCII art#Software]].</div>Kuba-orlikhttps://wiki.archlinux.org/index.php?title=Audacity&diff=765871Audacity2023-01-31T09:05:42Z<p>Kuba-orlik: Create the page and add information about the memory leak issue</p>
<hr />
<div>[[Category:Audio]]<br />
<br />
Audacity is a program that lets you manipulate digital audio waveforms.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|audacity}} package.<br />
<br />
== Troubleshooting ==<br />
<br />
=== High memory usage on Wayland ===<br />
<br />
When recording or playing audio in Audacity under Wayland, memory usage is drastically growing while the Audacity window is in focus. This can cause the entire system to freeze and fail the recording. Until it's fixed, it's recommended to start Audacity with <br />
<br />
$ GDK_BACKEND=x11 audacity<br />
<br />
See [https://bugs.archlinux.org/task/77335 this flyswatter task] for more context</div>Kuba-orlikhttps://wiki.archlinux.org/index.php?title=Debuginfod&diff=717688Debuginfod2022-02-11T10:36:26Z<p>Kuba-orlik: small typo</p>
<hr />
<div>[[Category:Package development]]<br />
{{Related articles start}}<br />
{{Related|Debugging/Getting traces}}<br />
{{Related articles end}}<br />
<br />
[https://sourceware.org/elfutils/Debuginfod.html Debuginfod] is a service providing debug information over an HTTP API.<br />
<br />
== Installation ==<br />
<br />
{{Pkg|gdb}} automatically tries to download debug files if the {{ic|DEBUGINFOD_URLS}} [[environment variable]] is present, so there is no need to install additional packages.<br />
<br />
You can optionally [[install]] the {{Pkg|debuginfod}} package which automatically adds {{ic|DEBUGINFOD_URLS}} to the environment on login and provides the {{man|1|debuginfod-find}} utility. This package is required for debuginfod support in {{Pkg|delve}}.<br />
<br />
== Usage ==<br />
<br />
If the {{Pkg|debuginfod}} package is not installed or you want to set a custom URL, set the [[environment variable]] which tells the tooling where to look for debug symbols:<br />
<br />
DEBUGINFOD_URLS="<nowiki>https://debuginfod.archlinux.org/</nowiki>"<br />
<br />
One can also use {{ic|<nowiki>https://debuginfod.elfutils.org/</nowiki>}} which works as a federated server and queries all available debuginfod servers.<br />
<br />
{{Expansion|What data is actually fetched? Does it download a [[Debugging/Getting traces#Install debug packages|debug package]] and extract it to the user's home directory?}}<br />
<br />
Now a debugger can fetch debug symbols without having to install the appropriate debug package. <br />
<br />
{{hc|$ gdb /usr/bin/i3|<br />
[...]<br />
Reading symbols from /usr/bin/i3...<br />
Downloading 1.56 MB separate debug info for /usr/bin/i3<br />
Reading symbols from /home/user/.cache/debuginfod_client/29129d26dbe557d2b56daf90327f64f527304dc1/debuginfo...<br />
(gdb)<br />
}}<br />
<br />
See {{man|1|debuginfod-find}} for usage.<br />
<br />
== Debugger support ==<br />
<br />
Several debuggers support utilizing debuginfod to find debug symbol and source code listing.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Package !! Status !! Notes<br />
|-<br />
| {{Pkg|gdb}} || {{G|Supported}} || <br />
|-<br />
| {{Pkg|delve}} || {{Y|Partial Support}} || Supports debug symbols, missing [https://github.com/go-delve/delve/pull/2885 source listing]<br />
|-<br />
|KDE Crash Report || {{G|Supported}} ||<br />
|}<br />
<br />
== See also ==<br />
<br />
* [https://sourceware.org/elfutils/Debuginfod.html Homepage]<br />
* [https://www.youtube.com/watch?v=_iaK9L7akJU The elfutils debuginfod server, FOSDEM 2020]</div>Kuba-orlikhttps://wiki.archlinux.org/index.php?title=CUPS/Troubleshooting&diff=709316CUPS/Troubleshooting2022-01-10T12:15:52Z<p>Kuba-orlik: add a hint to look at the error output if all jobs are "stopped"</p>
<hr />
<div>[[Category:Printers]]<br />
[[ja:CUPS/トラブルシューティング]]<br />
[[ru:CUPS (Русский)/Troubleshooting]]<br />
{{Related articles start}}<br />
{{Related|CUPS}}<br />
{{Related|CUPS/Printer-specific problems}}<br />
{{Related articles end}}<br />
<br />
This article covers all non-specific (ie, not related to any one printer) troubleshooting of CUPS and printing drivers (but not problems related to printer sharing), including methods of determining the exact nature of the problem, and of solving the identified problem.<br />
<br />
== Debug log ==<br />
<br />
The best way to get printing working is to set 'LogLevel' in {{ic|/etc/cups/cupsd.conf}} to:<br />
LogLevel debug<br />
<br />
And then viewing the output from {{ic|/var/log/cups/error_log}} like this:<br />
# tail -n 100 -f /var/log/cups/error_log<br />
<br />
The characters at the left of the output stand for:<br />
*D=Debug<br />
*E=Error<br />
*I=Information<br />
*And so on<br />
<br />
These files may also prove useful:<br />
*{{ic|/var/log/cups/page_log}} - Echoes a new entry each time a print is successful<br />
*{{ic|/var/log/cups/access_log}} - Lists all cupsd http1.1 server activity<br />
<br />
Print a document and watch {{ic|error_log}} to get a more detailed and correct image of the printing process.<br />
<br />
== Problems resulting from upgrades ==<br />
<br />
''Issues that appeared after CUPS and related program packages underwent a version increment''<br />
<br />
=== CUPS stops working ===<br />
<br />
The chances are that a new configuration file is needed for the new version to work properly. Messages such as "404 - page not found" may result from trying to manage CUPS via localhost:631, for example.<br />
<br />
To use the new configuration, copy {{ic|/etc/cups/cupsd.conf.default}} to {{ic|/etc/cups/cupsd.conf}} (backup the old configuration if needed) and restart CUPS to employ the new settings.<br />
<br />
=== All jobs are "stopped" ===<br />
<br />
{{Accuracy|This seems a rather brute-force way of fixing this; maybe the printer is simply disabled?}}<br />
<br />
If all jobs sent to the printer become "stopped", first check the error log at {{ic|/var/log/cups/error_log}}. If it doesn't yield any useful hints to what is the source of the issue, delete the printer and add it again.<br />
Using the [http://localhost:631 CUPS web interface], go to Printers > Delete Printer.<br />
<br />
To check the printer's settings go to ''Printers'', then ''Modify Printer''. Copy down the information displayed, click 'Modify Printer' to proceed to the next page(s), and so on.<br />
<br />
=== All jobs are "The printer is not responding" ===<br />
<br />
On networked printers, you should check that the hostname in the printer's URI resolves to the printer's IP address via DNS, e.g. if your printer's connection looks like this:<br />
<br />
lpd://BRN_020554/BINARY_P1<br />
<br />
then the hostname 'BRN_020554' needs to resolve to the printer's IP from the server running CUPS. If [[Avahi]] is being used, ensure that [[Avahi#Hostname_resolution|Avahi's hostname resolution]] is working.<br />
<br />
Alternatively, replace the hostname used in the URI with the printer's IP address.<br />
<br />
=== The PPD version is not compatible with gutenprint ===<br />
<br />
Run:<br />
# /usr/bin/cups-genppdupdate<br />
<br />
And restart CUPS (as pointed out in gutenprint's post-install message).<br />
<br />
=== Issues Relating to Upgrade 2.3.3 -> 2.4.0 ===<br />
<br />
CUPS now officially supports AirPrint and Mopria clients (including Windows 10) by reporting required attributes and DNS-SD TXT record keys. It includes also limited support for huffy iOS clients. This obsoletes the need for [[Avahi#AirPrint_from_Mobile_Devices|Avahi service files]] for propagation of CUPS shared printers to mobile devices. The following list of new functions has been taken from CUPS release note:<br />
* New {{ic|ReadyPaperSizes}} directive that specifies the "loaded" (ready) media for each printer; the actual list is based on the supported media sizes for the printer, and allows the user to pick a size from a short list. Default list is based on locale (A4, etc. everywhere but North America which uses Letter, etc.)<br />
* Proper URF/urf-supported values for image/urf.<br />
* Other attributes/keys as needed.<br />
As a side-effect of the new ready media propagation IOS clients may show wrong media types (e. g. US letter instead of DIN/ISO A4). The best way to get ISO media types is to set 'DefaultPaperSize' in {{ic|/etc/cups/cupsd.conf}} to:<br />
DefaultPaperSize A4<br />
for ISO. In addition, the [[CUPS#Default_paper_size|system-default paper size]] should be configured correctly.<br />
<br />
{{Note|CUPS provides IOS clients only with a set of main media sizes. This set is matched from a default set of media sizes {see {{ic|ReadyPaperSizes}}) and sizes from the PPD or the {{ic|DefaultPaperSize}} if none of the sizes match.}}<br />
<br />
=== Issues Relating to Upgrade 2.3.3-3 -> 2.3.3+106+ga72b0140e-1 ===<br />
<br />
As a side-effect of switching Arch's CUPS upstream from Apple's senescent original to the actively-developed OpenPrinting fork in November 2020, the names of the CUPS systemd services were changed. The changes map as follows:<br />
<br />
*org.cups.cups-lpd.socket→cups-lpd.socket<br />
*org.cups.cups-lpd@.service→cups-lpd@.service<br />
*org.cups.cupsd.socket→cups.socket<br />
*org.cups.cupsd.service→cups.service<br />
*org.cups.cupsd.path→cups.path<br />
<br />
The CUPS install file for that upgrade recommends:<br />
<br />
Cups systemd socket and service files have been<br />
renamed by upstream decision. Please make sure<br />
to disable/reenable the services to your need.<br />
hint: "pacman -Ql cups | grep systemd" and<br />
"ls -lR /etc/systemd/ | grep cups"<br />
<br />
So, if one had org.cups.cupsd.service enabled, one would disable it with immediate effect ({{ic|#systemctl --now disable org.cups.cupsd.service}}) and enable its successor, also with immediate effect ({{ic|#systemctl --now enable cups.service}}).<br />
<br />
In addition to disabling the services under their own name and re-enabling them under the new, if you have made any non-standard modifications such as dropin files (e.g., {{ic|/etc/systemd/system/org.cups.cupsd.service.d}}) or adding the services as "Wants=" to target or other custom services, those will need to be moved over as well.<br />
<br />
== Networking issues ==<br />
<br />
=== Unable to add printer or message "print in progress" but nothing happens ===<br />
<br />
In GNOME Printer settings for example, you could find troubles adding your printer, even though you have installed the drivers. You can try installing {{Pkg|system-config-printer}} and executing it via terminal, and adding the printer from there (for instance using LPD/LPR queue 'PASSTHRU').<br />
<br />
=== Unable to locate printer ===<br />
<br />
Even if CUPS can detect networked printers, you may still end up with an "Unable to locate printer" error when trying to print something. The solution to this problem is to enable Avahi's [[Avahi#Hostname_resolution|.local hostname resolution]]. See [[CUPS#Network]] for details.<br />
<br />
This problem may also arise when you have a firewall. You may need to disable your firewall or set the right rules. Using ''system-config-printer'' to detect network printers will do that automatically.<br />
<br />
Similarly, being connected to a VPN may also cause CUPS to be unable to locate the printer. Disabling any VPN connections temporarily for printing can help fixing it.<br />
<br />
=== Old CUPS server ===<br />
<br />
As of CUPS version 1.6, the client defaults to IPP 2.0. If the server uses CUPS <= 1.5 / IPP <= 1.1, the client does not downgrade the protocol automatically and thus cannot communicate with the server. A workaround is to append the {{ic|1=version=1.1}} option documented at [https://www.cups.org/doc/network.html#TABLE2] to the URI.<br />
<br />
=== Unable to locate PPD file ===<br />
<br />
{{hc|/var/log/cups/error_log|Cannot connect to remote printer ipp://HP079676.local<br />
copy_model: empty PPD file}}<br />
<br />
Make sure [[Avahi]] is set up correctly. In particular, make sure {{Pkg|nss-mdns}} is installed and set up in {{ic|/etc/nsswitch.conf}}.<br />
<br />
=== Finding URIs for Windows print servers ===<br />
<br />
Sometimes Windows is a little less than forthcoming about exact device URIs (device locations). If having trouble specifying the correct device location in CUPS, run the following command to list all shares available to a certain windows username:<br />
<br />
$ smbtree -U ''windowsusername''<br />
<br />
This will list every share available to a certain Windows username on the local area network subnet, as long as Samba is set up and running properly. It should return something like this:<br />
<br />
{{bc| WORKGROUP<br />
\\REGULATOR-PC <br />
\\REGULATOR-PC\Z <br />
\\REGULATOR-PC\Public <br />
\\REGULATOR-PC\print$ Printer Drivers<br />
\\REGULATOR-PC\G <br />
\\REGULATOR-PC\EPSON Stylus CX8400 Series EPSON Stylus CX8400 Series<br />
}}<br />
<br />
What is needed here is first part of the last line, the resource matching the printer description. So to print to the EPSON Stylus printer, one would enter:<br />
<br />
smb://username:password@REGULATOR-PC/EPSON%20Stylus%20CX8400%20Series<br />
<br />
as the URI into CUPS.<br />
<br />
== USB printers ==<br />
<br />
=== Conflict with SANE ===<br />
<br />
If you are also running [[SANE]], it's possible that it is conflicting with CUPS. To fix this create a [[Udev]] rule marking the device as matched by libsane:<br />
{{hc|/etc/udev/rules.d/99-printer.rules|output=<br />
ATTRS{idVendor}=="''vendor id''", ATTRS{idProduct}=="''product id''", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"}}<br />
<br />
=== Conflict with usblp ===<br />
<br />
USB printers can be accessed using two methods: The usblp kernel module and libusb. The former is the classic way. It is simple: data is sent to the printer by writing it to a device file as a simple serial data stream. Reading the same device file allows bi-di access, at least for things like reading out ink levels, status, or printer capability information (PJL). It works very well for simple printers, but for multi-function devices (printer/scanner) it is not suitable and manufacturers like HP supply their own backends. Source: [https://lists.linuxfoundation.org/pipermail/printing-architecture/2012/002412.html here].<br />
<br />
{{Warning|As of {{Pkg|cups}} version 1.6.0, it should no longer be necessary to blacklist the {{ic|usblp}} kernel module.<br />
<br />
If you find out this is the only way to fix a remaining issue please report this upstream to the CUPS bug tracker and maybe also get in contact with Till Kamppeter (Debian CUPS maintainer). See [https://github.com/apple/cups/issues/4128 upstream bug] for more info.}}<br />
<br />
If you have problems getting your USB printer to work, you can try [[blacklisting]] the {{ic|usblp}} [[kernel module]]:<br />
<br />
{{hc|/etc/modprobe.d/blacklistusblp.conf|<br />
blacklist usblp<br />
}}<br />
<br />
Custom kernel users may need to manually load the {{ic|usbcore}} [[kernel module]] before proceeding.<br />
<br />
Once the modules are installed, run:<br />
<br />
# journalctl -f<br />
<br />
Then plug in the printer and inspect the output to see if it was detected.<br />
<br />
If you are using {{ic|usblp}}, the output should indicate that the printer has been detected like so:<br />
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional<br />
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E<br />
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920<br />
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver<br />
<br />
If you blacklisted {{ic|usblp}}, you will see something like:<br />
usb 3-2: new full speed USB device using uhci_hcd and address 3<br />
usb 3-2: configuration #1 chosen from 1 choice<br />
<br />
=== USB autosuspend ===<br />
<br />
The Linux kernel automatically suspends USB devices when there is driver support and the devices are not in use. This can save power, but some USB printers think that they are disconnected when the kernel suspends the USB port, preventing printing. This can be fixed by deactivating autosuspend for the specific device, see [[Power management#USB autosuspend]].<br />
<br />
=== Bad permissions ===<br />
<br />
Check the permissions of the printer USB device. Get the bus and device number from {{ic|lsusb}}:<br />
<br />
{{hc| lsusb |<br />
Bus <BUSID> Device <DEVID>: ID <VENDOR>:<PRINTERID> Hewlett-Packard DeskJet D1360}}<br />
<br />
Check the ownership by looking in devfs:<br />
<br />
# ls -l /dev/bus/usb/<BUSID>/<DEVID><br />
<br />
The cups daemon runs as user "cups" and belongs to group "lp", so either this user or group needs read & write access to the USB device. If you think the permissions look wrong, you can change the group and permission temporarily:<br />
<br />
# chgrp lp /dev/bus/usb/<BUSID>/<DEVID><br />
# chmod 664 /dev/bus/usb/<BUSID>/<DEVID><br />
<br />
Then check if cups can now see the USB device correctly.<br />
<br />
To make a persistent permission change that will be triggered automatically each time the USB device is attached, add the following line:<br />
<br />
{{hc|/etc/udev/rules.d/10-local.rules|2=<br />
SUBSYSTEM=="usb", ATTRS{idVendor}=="<VENDOR>", ATTRS{idProduct}=="<PRINTERID>", GROUP:="lp", MODE:="0664"<br />
}}<br />
<br />
After editing, reload the udev rules with this command:<br />
<br />
# udevadm control --reload-rules<br />
<br />
Each system may vary, so consult [[udev#List the attributes of a device]] wiki page.<br />
<br />
== HP issues ==<br />
<br />
See also [[CUPS/Printer-specific problems#HP]].<br />
<br />
=== CUPS: "/usr/lib/cups/backend/hp failed" ===<br />
<br />
Try adding the printer as a Network Printer using the http:// protocol.<br />
<br />
{{Note|There might need to set permissions issues right.}}<br />
<br />
=== CUPS: Job is shown as complete but the printer does nothing ===<br />
<br />
This happens on HP printers when you select the (old) hpijs driver (e.g. the Deskjet D1600 series). Use the hpcups driver instead.<br />
<br />
Some HP printers require their firmware to be downloaded from the computer every time the printer is switched on. If there is an issue with udev (or equivalent) and the firmware download rule is never fired, you may experience this issue.<br />
As a workaround, you can manually download the firmware to the printer. Ensure the printer is plugged in and switched on, then run<br />
hp-firmware -n<br />
<br />
=== CUPS: '"foomatic-rip" not available/stopped with status 3' ===<br />
<br />
If receiving any of the following error messages in {{ic|/var/log/cups/error_log}} while using a HP printer, with jobs appearing to be processed while they all end up not being completed with their status set to 'stopped':<br />
Filter "foomatic-rip" for printer ''printer_name'' not available: No such file or director<br />
or:<br />
PID ''pid'' (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!<br />
make sure {{pkg|hplip}} has been [[install]]ed.<br />
<br />
=== CUPS: "Filter failed" ===<br />
<br />
A "filter failed" error can be caused by any number of issues. The CUPS error log (by default {{ic|/var/log/cups/error_log}}) should record which filter failed and why.<br />
<br />
==== Missing ghostscript ====<br />
<br />
Install {{pkg|ghostscript}} ({{ic|/usr/lib/cups/filter/gstoraster}} needs it to run).<br />
<br />
==== Missing foomatic-db ====<br />
<br />
Install {{pkg|foomatic-db}} and {{pkg|foomatic-db-ppds}}. This fixes it in some cases.<br />
<br />
==== Avahi not enabled ====<br />
<br />
[[Start]], and [[enable]] the {{ic|avahi-daemon}} service.<br />
<br />
==== Out-of-date plugin ====<br />
<br />
This error can also indicate that the plugin is out of date (version is mismatched) and may occur after a system upgrade, possibly showing up as a {{ic|Plugin error}} message in the logs.<br />
If you have installed {{AUR|hplip-plugin}} you will need to update the package, otherwise re-run {{ic|hp-setup -i}} to install the latest version of the plugin.<br />
<br />
==== Outdated printer configuration ====<br />
<br />
As of {{AUR|hplip-plugin}} v3.17.11 hpijs is not longer available. If you have printers using hpijs they will fail to print. You must modify them and select the new hpcups driver instead.<br />
<br />
You can check if this is your case looking at cups error_log:<br />
<br />
{{hc| $ grep hpijs /var/log/cups/error_log |<br />
...<br />
D [09/Jan/2018:14:32:58 +0000] [Job 97] '''sh: hpijs: command not found'''<br />
...}}<br />
<br />
==== Client and host both run CUPS with hpcups ====<br />
<br />
{{Note|The following issue has been described on FreeBSD forum. [https://forums.freebsd.org/threads/filter-failed-cups-hp-psc-2350-series.60222/ Read more here].}}<br />
<br />
A bug seems to affect CUPS when a host shares a physically connected HP printer using hpcups drivers from {{Pkg|hplip}}, and a client adds the shared printer in is own CUPS server through [[Wikipedia:Internet_Printing_Protocol|IPP]], using hpcups driver too. On every attempt to print a page from the client, the jobs page from the client returns indefinitly ''"Sending data to printer"'' while the same page from the host returns ''"Filter failed"''. It appears that the job runs through the CUPS filter twice: a first time on client-side, and a second time on host-side, which makes it fails on host-side. The same bug should not be observed when printing from a Windows client, or when printing directly on the host. There are some workarounds here (use only one method):<br />
* Use '''Generic IPP Everywhere Printer''' driver on the client. When selecting the driver in the CUPS Web Interface, you should find it in the ''Generic'' manufacturer.<br />
* Modify the '''PPD used on the client side''' so the job does not goes through the filter client-side. Find the right PPD in {{ic|/usr/share/ppd/HP}} and copy it in your home directory. Edit the copy : replace the line {{ic|*cupsFilter: "application/vnd.cups-raster 0 hpcups"}} with {{ic|*cupsFilter: "*/* 0 -"}}. Now, add your printer on the client CUPS, selecting your custom PPD located in your home directory.<br />
* Create a '''raw queue''' on the host: when you add the printer in the CUPS interface of the host, do not select the specific PPD of your printer, but choose ''Raw queue'' from ''Raw'' manufacturer. You should be able to add this shared printer on the client, using this time the specific PPD of the printer. With this method, the host is not able to print directly a document because it does not run the filter. However, if the host is a small headless embedded device such as a Raspberry Pi, you might notice an important decrease of the response time with this method compared to the two previous ones, especially with large documents, because it saves a lot a CPU usage.<br />
<br />
=== CUPS: prints only an empty and an error-message page on HP LaserJet ===<br />
<br />
{{Out of date|The bug was reported in 2012; is this still an issue?}}<br />
<br />
There is a bug that causes CUPS to fail when printing images on HP LaserJet (in my case 3380). The bug has been reported and fixed by [https://bugs.launchpad.net/ubuntu/+source/cups-filters/+bug/998087 Ubuntu].<br />
The first page is empty, the second page contains the following error message:<br />
ERROR:<br />
invalidaccess<br />
OFFENDING COMMAND:<br />
filter<br />
STACK:<br />
/SubFileDecode<br />
endstream<br />
...<br />
<br />
In order to fix the issue, run the following command as root:<br />
# lpadmin -p ''printer'' -o pdftops-renderer-default=pdftops<br />
<br />
=== CUPS: "File "/usr/lib/cups/filter/rastertospl" not available ===<br />
<br />
After the printer is connected by other means to the network, setting up the HP 107w Laser printer is possible through the CUPS web interface; but this error prevents printing.<br />
<br />
It seems that support for this printer is not provided by hplip. However, drivers can be installed using HP's install scripts and PPD file found at the HP [https://support.hp.com/us-en/drivers/selfservice/hp-laser-100-printer-series/24494339/model/24494342 downloads] page.<br />
<br />
Extract the .zip and read this [https://gist.github.com/taniwallach/f1f6c81ce19b7d68f74d4b71d1db57a2 gist] for further details and instructions.<br />
<br />
In case this problem appeared after a PPD package (like foomatic-*) update check if there are new PPDs for the printer, and try to use the new ones. For Samsung M283x the new driver has PXL in the name and the PPD does not reference rastertospl, and the printer works again. Fetching the rastertospl via the above method didn't work because the arguments are passed in the wrong order.<br />
<br />
=== HPLIP 3.13: Plugin is installed, but HP Device Manager complains it is not ===<br />
<br />
The issue might have to do with the file permission change that had been made to {{ic|/var/lib/hp/hplip.state}}. To correct the issue, a simple {{ic|chmod 644 /var/lib/hp/hplip.state}} and {{ic|chmod 755 /var/lib/hp}} should be sufficient. For further information, please read this [https://bugs.launchpad.net/hplip/+bug/1131596 link].<br />
<br />
=== hp-toolbox: "Unable to communicate with device" ===<br />
<br />
# hp-toolbox<br />
# error: Unable to communicate with device (code=12): hp:/usb/''printer id''<br />
<br />
==== Virtual CDROM printers ====<br />
<br />
This can also be caused by printers such as the P1102 that provide a virtual CD-ROM drive for MS Windows drivers. The lp dev appears and then disappears. In that case, try the '''usb-modeswitch''' and '''usb-modeswitch-data''' packages, that lets one switch off the "Smart Drive" (udev rules included in said packages).<br />
<br />
==== Networked printers ====<br />
<br />
This can also occur with network attached printers using dynamic hostnames if the [[Avahi|avahi-daemon]] is not running. Another possibility is that ''hp-setup'' failed to locate the printer because the IP address of the the printer changed due to DHCP. If this is the case, consider adding a DHCP reservation for the printer in the DHCP server's configuration.<br />
<br />
=== hp-setup asks to specify the PPD file for the discovered printer ===<br />
<br />
Furthermore, when selecting a PPD file in hp-setup's graphical mode, the field does not update and no error message is shown.<br />
<br />
Or, if in interactive (console) mode, you may encounter something similar to this even when providing a correct path to a valid ppd file:<br />
<br />
Please enter the full filesystem path to the PPD file to use (q=quit) :/usr/share/ppd/HP/hp-deskjet_2050_j510_series.ppd.gz<br />
Traceback (most recent call last):<br />
File "/usr/bin/hp-setup", line 536, in <module><br />
desc = nickname_pat.search(nickname).group(1)<br />
TypeError: cannot use a string pattern on a bytes-like object<br />
<br />
The solution is to install and start {{pkg|cups}} before running {{ic|hp-setup}}.<br />
<br />
=== hp-setup: "Qt/PyQt 4 initialization failed" ===<br />
<br />
[[Install]] {{AUR|python-pyqt4}}, which is an optdepend of {{Pkg|hplip}}. Alternatively, to run hp-setup with the command line interface, use the {{ic|-i}} flag.<br />
<br />
=== hp-setup: finds the printer automatically but reports "Unable to communicate with device" when printing test page immediately afterwards ===<br />
<br />
This at least happens to hplip 3.13.5-2 for HP Officejet 6500A through local network connection. To solve the problem, specify the IP address of the HP printer for hp-setup to locate the printer.<br />
<br />
=== hp-setup: "KeyError: 'family-class'" ===<br />
<br />
If adding a printer fails silently in the UI or you receive a {{ic|KeyError: 'family-class'}} traceback from {{ic|hp-setup}}, the {{ic|/usr/share/hplip/data/models/models.dat}} may need to be manually updated.<br />
Check if {{ic|1=family-class=Undefined}} is defined the section for your printer, if not add it:<br />
{{hc|head=/usr/share/hplip/data/models/models.dat|output=<br />
[hp_laserjet_pro_mfp_m225dw]<br />
...<br />
family-class=Undefined<br />
}}<br />
<br />
== Other ==<br />
<br />
=== Printer "Paused" or "Stopped" with Status "Rendering completed" ===<br />
<br />
==== Low ink ====<br />
<br />
When low on ink, some printers will get stuck in "Rendering completed" status and, if it is a network printer, the printer may even become unreachable from CUPS' perspective despite being properly connected to the network. Replacing the low/depleted ink cartridge(s) in this setting will return the printer to "Ready" status and, if it is a network printer, will make the printer available to CUPS again.<br />
<br />
{{Note|If you use third-party ink cartridges, the ink levels reported by the printer may be inaccurate. If you use third-party ink and your printer used to work fine but is now getting stuck on "Rendering completed" status, replace the ink cartridges regardless of the reported ink levels before trying other fixes.}}<br />
<br />
=== Printing fails with unauthorised error ===<br />
<br />
If a remote printer requests authentication CUPS will automatically add an {{ic|AuthInfoRequired}} directive to the printer in {{ic|/etc/cups/printers.conf}}. However, some graphical applications (for instance, some versions of [[LibreOffice]] [https://bugs.documentfoundation.org/show_bug.cgi?id=53029]) have no way to prompt for credentials, so printing fails.<br />
To fix this include the required username and password in the URI.<br />
See [https://bugs.launchpad.net/ubuntu/+source/cups/+bug/283811], [https://bbs.archlinux.org/viewtopic.php?id=61826].<br />
<br />
=== Unknown supported format: application/postscript ===<br />
<br />
Comment the lines:<br />
application/octet-stream application/vnd.cups-raw 0 -<br />
from {{ic|/etc/cups/mime.convs}}, and:<br />
application/octet-stream<br />
in {{ic|/etc/cups/mime.types}}.<br />
<br />
=== Print-Job client-error-document-format-not-supported ===<br />
<br />
Try installing the foomatic packages and use a foomatic driver.<br />
<br />
=== Unable to get list of printer drivers ===<br />
<br />
(Also applicable to error "-1 not supported!")<br />
<br />
Try to remove Foomatic drivers or refer to [[CUPS/Printer-specific problems#HPLIP]] for a workaround.<br />
<br />
=== lp: Error - Scheduler Not Responding ===<br />
<br />
If you get this error, ensure [[CUPS]] is running, the environmental variable {{ic|CUPS_SERVER}} is unset, and that {{ic|/etc/cups/client.conf}} is correct.<br />
<br />
=== "Using invalid Host" error message ===<br />
<br />
Try adding {{ic|ServerAlias *}} into {{ic|/etc/cups/cupsd.conf}}.<br />
<br />
=== Cannot print from LibreOffice ===<br />
<br />
If you can print a test page from the [[CUPS]] web interface, but not from [[LibreOffice]], try to [[install]] the {{Pkg|a2ps}} package.<br />
<br />
=== Printer output shifted ===<br />
<br />
This seems to be caused by the wrong page size being set in [[CUPS]].<br />
<br />
=== Printer becomes stuck after a problem ===<br />
<br />
When an issue arises during printing, the printer in CUPS may become unresponsive. {{ic|lpq}} reports that the printer {{ic|is not ready}}, and it can be reactivated using {{ic|cupsenable}}. In the CUPS web interface, the printer is shown as ''Paused'', and can be reactivated by ''resuming'' the printer.<br />
<br />
To automatically have CUPS reactivate the printer, change [https://www.cups.org/doc/man-cupsd.conf.html?TOPIC=Man+Pages#ErrorPolicy ErrorPolicy] from the default {{ic|stop-printer}} to {{ic|retry-current-job}}.<br />
<br />
=== Samsung: URF ERROR - Incomplete Session by time out ===<br />
<br />
This error is usually encountered when printing files over the network through IPP to a Samsung printer, and is solved by using the {{aur|samsung-unified-driver}} package.<br />
<br />
{{Note|The corresponding error code 11-1112 corresponds to an internal wiring problem with the printer, so contacting Samsung's tech support is futile.}}<br />
<br />
=== Brother: Printer prints multiple copies ===<br />
<br />
Sometimes the printer will print multiple copies of a document (for instance a MFC-9330CDW printed 10 copies). The solution is to [[CUPS/Printer-specific problems#Updating the firmware|update the printer firmware]].<br />
<br />
=== Regular user cannot change properties of the printer or remove certain jobs ===<br />
<br />
If a regular user needs to be able to change the printers properties or manage the printer queue, the user may need to be added to the {{ic|sys}} group.<br />
<br />
=== Cannot login into web interface ===<br />
<br />
Check if there is more than one {{ic|cupsd}} process running. If this is the case then stop {{ic|cups}} service, kill all processes named {{ic|cupsd}} and start {{ic|cups}} service again.</div>Kuba-orlikhttps://wiki.archlinux.org/index.php?title=NVIDIA/Troubleshooting&diff=690697NVIDIA/Troubleshooting2021-08-04T09:13:05Z<p>Kuba-orlik: /* X fails with "no screens found" when using Multiple GPUs */ - missing -E flag causes grep not to match anything</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:NVIDIA/トラブルシューティング]]<br />
== Corrupted screen: "Six screens" Problem ==<br />
<br />
For some users, using GeForce GT 100M's, the screen gets corrupted after X starts, divided into 6 sections with a resolution limited to 640x480.<br />
The same problem has been recently reported with Quadro 2000 and hi-res displays.<br />
<br />
To solve this problem, enable the Validation Mode {{ic|NoTotalSizeCheck}} in section {{ic|Device}}:<br />
Section "Device"<br />
...<br />
Option "ModeValidation" "NoTotalSizeCheck"<br />
...<br />
EndSection<br />
<br />
== '/dev/nvidia0' input/output error ==<br />
<br />
{{Accuracy|Verify that the BIOS related suggestions work and are not coincidentally set while troubleshooting.|section='/dev/nvidia0' Input/Output error... suggested fixes}}<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 problem. 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 is only one video processor. In such case you should find out the amount of your system's video memory (e.g. with {{ic|lspci -v}}) and pass allocation parameters to the kernel, e.g. for a 32-bit kernel:<br />
vmalloc=384M<br />
<br />
If running a 64bit kernel, a driver defect can cause the NVIDIA module to fail initializing when IOMMU is on. Turning it off in the BIOS has been confirmed to work for some users. [http://www.nvnews.net/vbulletin/showthread.php?s=68bb2fabadcb53b10b286aa42d13c5bc&t=159335][[User:Clickthem#nvidia module]]<br />
<br />
Another thing to try is to change your BIOS IRQ routing from {{ic|Operating system controlled}} to {{ic|BIOS controlled}} or the other way around. The first one can be passed as a kernel parameter:<br />
PCI=biosirq<br />
<br />
The {{ic|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 />
== Crashing in general ==<br />
<br />
* Try disabling {{ic|RenderAccel}} in xorg.conf.<br />
* If Xorg outputs an error about {{ic|"conflicting memory type"}} or {{ic|"failed to allocate primary buffer: out of memory"}}, or crashes with a "Signal 11" while using nvidia-96xx drivers, add {{ic|nopat}} to your [[kernel parameters]].<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 {{ic|/etc/profile}}:<br />
export IGNORE_CC_MISMATCH=1<br />
* If Xorg is crashing , try disabling PAT. Pass the argument {{ic|nopat}} to [[kernel parameters]].<br />
More information about troubleshooting the driver can be found in the [https://forums.geforce.com/ NVIDIA forums.]<br />
<br />
== Bad performance after installing a new driver version ==<br />
<br />
If FPS have dropped in comparison with older drivers, check if direct rendering is enabled ({{ic|glxinfo}} is included in {{Pkg|mesa-demos}}):<br />
$ glxinfo | grep direct<br />
<br />
If the command prints:<br />
direct rendering: No<br />
<br />
A possible solution could be to regress to the previously installed driver version and rebooting afterwards.<br />
<br />
== Avoid screen tearing ==<br />
{{Note|This has been reported to reduce the performance of some OpenGL applications and may produce issues in WebGL. It also drastically increases the time the driver needs to clock down after load ([https://devtalk.nvidia.com/default/topic/1048768/linux/if-you-have-gpu-clock-boost-problems-please-try-__gl_experimentalperfstrategy-1/ Nvidia-Support-Thread]).}}<br />
<br />
Tearing can be avoided by forcing a full composition pipeline, regardless of the compositor you are using. To test whether this option will work, run:<br />
$ nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"<br />
<br />
Or click on the ''Advanced'' button that is available on the ''X Server Display Configuration'' menu option. Select either ''Force Composition Pipeline'' or ''Force Full Composition Pipeline'' and click on ''Apply''.<br />
<br />
In order to make the change permanent, it must be added to the {{ic|"Screen"}} section of the [[Xorg]] configuration file. When making this change, {{ic|TripleBuffering}} should be enabled and {{ic|AllowIndirectGLXProtocol}} should be disabled in the driver configuration as well. See example configuration below:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-nvidia.conf|2=<br />
Section "Device"<br />
Identifier "Nvidia Card"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
BoardName "GeForce GTX 1050 Ti"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Device0"<br />
Monitor "Monitor0"<br />
Option "MetaModes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}"<br />
Option "AllowIndirectGLXProtocol" "off"<br />
Option "TripleBuffer" "on"<br />
EndSection<br />
}}<br />
<br />
If you do not have an Xorg configuration file, you can create one for your present hardware using {{ic|nvidia-xconfig}} (see [[NVIDIA#Automatic configuration]]) and move it from {{ic|/etc/X11/xorg.conf}} to the preferred location {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}}.<br />
<br />
{{Note|Many of the configuration options produced in {{ic|20-nvidia.conf}} by using {{ic|nvidia-xconfig}} are set automatically by the driver and are not needed. To only use this file for enabling composition pipeline, only the section {{ic|"Screen"}} containing lines with values for {{ic|Identifier}} and {{ic|Option}} are necessary. Other sections may be removed from this file.}}<br />
<br />
=== Multi-monitor ===<br />
<br />
For multi-monitor setup you will need to specify {{ic|1=ForceCompositionPipeline=On}} for each display. For example:<br />
<br />
$ nvidia-settings --assign CurrentMetaMode="DP-2: nvidia-auto-select +0+0 {ForceCompositionPipeline=On}, DP-4: nvidia-auto-select +3840+0 {ForceCompositionPipeline=On}"<br />
<br />
Without doing this, the {{ic|nvidia-settings}} command will disable your secondary display.<br />
<br />
You can get the current screen names and offsets using {{ic|--query}}:<br />
<br />
$ nvidia-settings --query CurrentMetaMode<br />
<br />
The above line is for two 3840x2160 monitors connected to DP-2 and DP-4. You will need to read the correct {{ic|CurrentMetaMode}} by exporting {{ic|xorg.conf}} and append {{ic|ForceCompositionPipeline}} to each of your displays. Setting {{ic|ForceCompositionPipeline}} only affects the targeted display. <br />
<br />
{{Tip|Multi monitor setups using different model monitors may have slightly different refresh rates. If vsync is enabled by the driver it will sync to only one of these refresh rates which can cause the appearance of screen tearing on incorrectly synced monitors. Select to sync the display device which is the primarily used monitor as others will not sync properly. This is configurable in {{ic|~/.nvidia-settings-rc}} as {{ic|1=0/XVideoSyncToDisplayID=}} or by installing {{pkg|nvidia-settings}} and using the graphical configuration options.}}<br />
<br />
=== Avoid screen tearing in KDE (KWin) ===<br />
The problem is caused by incorrect assumption by the KDE devs about the behaviour of {{ic|1=glXSwapBuffers}} and should be fixed in '''Plasma 5.12''', '''Plasma 5.15''', '''Plasma 5.16''' [https://phabricator.kde.org/D19867]. Additionally, [[NVIDIA#DRM kernel mode setting]] may be required. <br />
<br />
==== Legacy solutions ====<br />
For posterity, these are the legacy workarounds. Do '''not''' apply both workarounds because this may lead to high CPU load [https://bugs.kde.org/show_bug.cgi?id=322060].<br />
<br />
===== 1. GL threads =====<br />
Set GL threads to sleep by exporting {{ic|1=__GL_YIELD="USLEEP"}} to just {{ic|kwin_x11}}. Unlike setting up a global environment variable, this affects only KWin. It should also have the advantage over other workarounds, like forcing triple buffering or forcing composition pipeline in the driver, that it does not introduce additional stuttering when scrolling in Firefox or moving windows.<br />
<br />
The script can be executed automatically at login with an autostart script:<br />
<br />
{{hc|~/.config/autostart-scripts/kwin.sh|2=<br />
#!/bin/bash<br />
<br />
(sleep 2s && __GL_YIELD="USLEEP" kwin_x11 --replace)<br />
}}<br />
Flag the script as executable.<br />
<br />
The {{ic|sleep}} argument helps to prevent issues when KWin is restarted/hanging after logging in, you might need to increase this time.<br />
<br />
===== 2. Use TripleBuffering =====<br />
<br />
Make sure {{ic|TripleBuffering}} has been enabled for the driver, see [[#Avoid screen tearing]].<br />
<br />
Create the {{ic|/etc/profile.d/kwin.sh}} file:<br />
<br />
{{hc|/etc/profile.d/kwin.sh|2=<br />
export KWIN_TRIPLE_BUFFER=1<br />
}}<br />
<br />
Use '''OpenGL 2.0 or later''' as rendering backend under ''System Settings > Display and Monitor > Compositor''.<br />
<br />
== Modprobe Error: "Could not insert 'nvidia': No such device" on linux >=4.8 ==<br />
<br />
With linux 4.8, one can get the following errors when trying to use the discrete card:<br />
{{hc|$ modprobe nvidia -vv|<br />
modprobe: INFO: custom logging function 0x409c10 registered<br />
modprobe: INFO: Failed to insert module '/lib/modules/4.8.6-1-ARCH/extramodules/nvidia.ko.gz': No such device<br />
modprobe: ERROR: could not insert 'nvidia': No such device<br />
modprobe: INFO: context 0x24481e0 released<br />
insmod /lib/modules/4.8.6-1-ARCH/extramodules/nvidia.ko.gz <br />
}}<br />
{{hc|# dmesg|<br />
...<br />
NVRM: The NVIDIA GPU 0000:01:00.0 (PCI ID: 10de:139b)<br />
NVRM: installed in this system is not supported by the 370.28<br />
NVRM: NVIDIA Linux driver release. Please see 'Appendix<br />
NVRM: A - Supported NVIDIA GPU Products' in this release's<br />
NVRM: README, available on the Linux driver download page<br />
NVRM: at www.nvidia.com.<br />
...<br />
}}<br />
<br />
This problem is caused by bad commits pertaining to PCIe power management in the Linux Kernel (as documented in [https://devtalk.nvidia.com/default/topic/971733/-370-28-with-kernel-4-8-on-gt-2015-machines-driver-claims-card-not-supported-if-nvidia-is-not-primary-card/ this NVIDIA DevTalk thread]). <br />
<br />
The workaround is to add {{ic|1=pcie_port_pm=off}} to your [[kernel parameters]]. Note that this disables PCIe power management for all devices.<br />
<br />
== Poor performance after resuming from suspend ==<br />
<br />
If you are getting poor performance after resuming from suspend, you need to register the nvidia kernel module with the ACPI subsystem. This can be done by [[Kernel modules#Setting module options|loading]] the {{ic|nvidia}} module with the {{ic|1=NVreg_RegisterForACPIEvents=1 NVreg_EnableMSI=1}} options.<br />
<br />
This also seems to fix issues with corruption to the desktop background on resume with GNOME.<br />
<br />
== CPU spikes with 400 series cards ==<br />
<br />
If you are 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 {{ic|Device}} section of your Xorg configuration:<br />
<br />
Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"<br />
<br />
== Full system freeze or crashes when using Flash ==<br />
<br />
If you experience occasional full system freezes using [[Flash]], a possible workaround is to disable Hardware Acceleration:<br />
<br />
{{hc|/etc/adobe/mms.cfg|2=<br />
EnableLinuxHWVideoDecode=0<br />
}}<br />
<br />
Or, if you want to keep Hardware acceleration enabled but allowing a higher chance of screen tearing, you may try to before starting a browser:<br />
export VDPAU_NVIDIA_NO_OVERLAY=1<br />
<br />
== Laptops: X hangs on login/out, worked around with Ctrl+Alt+Backspace ==<br />
<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 {{ic|Ctrl+Alt+Backspace}} (or whatever the new "kill X" key binding is), try adding this in {{ic|/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 {{ic|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 [ftp://download.nvidia.com/XFree86/Linux-x86/355.11/README/README.txt NVIDIA Driver's README: Appendix K] for more information.<br />
<br />
== Screen(s) found, but none have a usable configuration ==<br />
<br />
Sometimes NVIDIA and X have trouble finding the active screen. If your graphics card has multiple outputs try plugging your monitor into the other ones. On a laptop it may be because your graphics card has VGA/TV out. Xorg.0.log will provide more info.<br />
<br />
Another thing to try is adding invalid {{ic|"ConnectedMonitor" Option}} to {{ic|Section "Device"}}<br />
to force Xorg throws error and shows you how correct it.<br />
[ftp://download.nvidia.com/XFree86/Linux-x86/355.11/README/xconfigoptions.html Here]<br />
more about ConnectedMonitor setting.<br />
<br />
After re-run X see Xorg.0.log to get valid CRT-x,DFP-x,TV-x values.<br />
<br />
{{ic|nvidia-xconfig --query-gpu-info}} could be helpful.<br />
<br />
== Blackscreen at X startup / Machine poweroff at X shutdown ==<br />
<br />
If you have installed an update of Nvidia and your screen stays black after launching Xorg, or if shutting down Xorg causes a machine poweroff, try the below workarounds:<br />
<br />
* Prepend "xrandr --auto" to your xinitrc<br />
<br />
* Use the {{ic|1=rcutree.rcu_idle_gp_delay=1}} [[kernel parameter]].<br />
<br />
* You can also try to add the {{ic|nvidia}} module directly to your [[mkinitcpio]] config file.<br />
<br />
* If the screen still stays black with '''both''' the {{ic|1=rcutree.rcu_idle_gp_delay=1}} [[kernel parameter]] and the {{ic|nvidia}} module directly in the [[mkinitcpio]] config file, try re-installing {{Pkg|nvidia}} and {{Pkg|nvidia-utils}} in that order, and finally reload the driver:<br />
<br />
# modprobe nvidia<br />
<br />
== Backlight is not turning off in some occasions ==<br />
<br />
By default, DPMS should turn off backlight with the timeouts set or by running xset. However, probably due to a bug in the proprietary Nvidia drivers the result is a blank screen with no powersaving whatsoever. To workaround it, until the bug has been fixed you can use the {{ic|vbetool}} as root.<br />
<br />
Install the {{Pkg|vbetool}} package.<br />
<br />
Turn off your screen on demand and then by pressing a random key backlight turns on again:<br />
<br />
vbetool dpms off && read -n1; vbetool dpms on<br />
<br />
Alternatively, xrandr is able to disable and re-enable monitor outputs without requiring root.<br />
<br />
xrandr --output DP-1 --off; read -n1; xrandr --output DP-1 --auto<br />
<br />
=== Driver 415: HardDPMS ===<br />
<br />
{{Expansion|Add references for the "user reports".}}<br />
<br />
Proprietary driver 415 includes a new feature called HardDPMS. This is reported by some users to solve the issues with suspending monitors connected over DisplayPort.<br />
It is reported to become the default in a future driver version, but for now, the {{ic|HardDPMS}} option can be set in the {{ic|Device}} or {{ic|Screen}} sections. For example:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-nvidia.conf|<br />
Section "Device"<br />
...<br />
Option "HardDPMS" "true" <br />
...<br />
EndSection<br />
<br />
Section "Screen"<br />
...<br />
Option "HardDPMS" "true"<br />
...<br />
EndSection<br />
}}<br />
<br />
{{ic|HardDPMS}} will trigger on screensaver settings like {{ic|BlankTime}}. The following {{ic|ServerFlags}} will set your monitor(s) to suspend after 10 minutes of inactivity:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-nvidia.conf|<br />
Section "ServerFlags"<br />
Option "BlankTime" "10"<br />
EndSection<br />
}}<br />
<br />
== Xorg fails to load or Red Screen of Death ==<br />
<br />
If you get a red screen and use GRUB, disable the GRUB framebuffer by editing {{ic|/etc/default/grub}} and uncomment {{ic|1=GRUB_TERMINAL_OUTPUT=console}}. For more information see [[GRUB/Tips and tricks#Disable framebuffer]].<br />
<br />
== Black screen on systems with Intel integrated GPU ==<br />
<br />
If you have an Intel CPU with an integrated GPU (e.g. Intel HD 4000) and have installed the {{Pkg|nvidia}} package, you may experience a black screen on boot, when changing virtual terminal, or when exiting an X session. This may be caused by a conflict between the graphics modules. This is solved by blacklisting the Intel GPU modules. Create the file {{ic|/etc/modprobe.d/blacklist.conf}} and prevent the ''i915'' and ''intel_agp'' modules from loading on boot:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|<br />
install i915 /usr/bin/false<br />
install intel_agp /usr/bin/false<br />
}}<br />
<br />
== No audio over HDMI ==<br />
<br />
Sometimes nvidia HDMI audio devices are not shown when you do<br />
<br />
aplay -l<br />
<br />
For whatever reason on some new machines, the audio chip on the nvidia GPU is disabled at boot. Read more [https://devtalk.nvidia.com/default/topic/1024022/linux/gtx-1060-no-audio-over-hdmi-only-hda-intel-detected-azalia/?offset=4 here] and [https://bbs.archlinux.org/viewtopic.php?id=230125 here]<br />
<br />
You need to reload the nvidia device with audio enabled. In order to do that make sure that your GPU is on (in case of laptops/Bumblebee) and that you are not running X on it, because it's going to reset:<br />
<br />
# setpci -s 01:00.0 0x488.l=0x2000000:0x2000000<br />
# rmmod nvidia-drm nvidia-modeset nvidia<br />
# echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove<br />
# echo 1 > /sys/bus/pci/devices/0000:00:01.0/rescan<br />
# modprobe nvidia-drm<br />
# xinit -- -retro<br />
<br />
If you are running your TTY on nvidia, put the lines in a script so you do not end up with no screen.<br />
<br />
== Black screen on systems with VIA integrated GPU ==<br />
<br />
As above, blacklisting the ''viafb'' module may resolve conflicts with NVIDIA drivers:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|<br />
install viafb /usr/bin/false<br />
}}<br />
<br />
== X fails with "no screens found" when using Multiple GPUs ==<br />
<br />
In situations where you might have multiple GPUs on a system and X fails to start with:<br />
<br />
[ 76.633] (EE) No devices detected.<br />
[ 76.633] Fatal server error:<br />
[ 76.633] no screens found<br />
<br />
then you need to add your discrete card's BusID to your X configuration. This can happen on systems with an Intel CPU and an integrated GPU or if you have more than one Nvidia card connected. Find your BusID:<br />
<br />
{{hc|# lspci {{!}} grep -E "VGA{{!}}3D controller"|<br />
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09)<br />
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)<br />
08:00.0 3D controller: NVIDIA Corporation GM108GLM [Quadro K620M / Quadro M500M] (rev a2)<br />
}}<br />
<br />
Then you fix it by adding it to the card's Device section in your X configuration. In my case:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/10-nvidia.conf|<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
BusID "PCI:1:0:0"<br />
EndSection<br />
}}<br />
<br />
{{Note|BusID formatting is important!}}<br />
<br />
In the example above {{ic|01:00.0}} is stripped to be written as {{ic|1:0:0}}, however some conversions can be more complicated. {{ic|lspci}} output is in hex format, but in config files the BusID's are in decimal format! This means that in cases where the BusID is greater than 9 you will need to convert it to decimal! <br />
<br />
ie: {{ic|5e:00.0}} from lspci becomes {{ic|PCI:94:0:0}}.<br />
<br />
== Xorg fails during boot, but otherwise starts fine ==<br />
<br />
On very fast booting systems, systemd may attempt to start the display manager before the NVIDIA driver has fully initialized. You will see a message like the following in your logs only when Xorg runs during boot.<br />
{{hc|/var/log/Xorg.0.log|output=<br />
[ 1.807] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the<br />
[ 1.807] (EE) NVIDIA(0): system's kernel log for additional error messages and<br />
[ 1.808] (EE) NVIDIA(0): consult the NVIDIA README for details.<br />
[ 1.808] (EE) NVIDIA(0): *** Aborting ***<br />
}}<br />
In this case you will need to establish an ordering dependency from the display manager to the DRI device. First create device units for DRI devices by creating a new udev rules file.<br />
{{hc|/etc/udev/rules.d/99-systemd-dri-devices.rules|output=<br />
ACTION=="add", KERNEL=="card*", SUBSYSTEM=="drm", TAG+="systemd"<br />
}}<br />
Then create dependencies from the display manager to the device(s).<br />
{{hc|/etc/systemd/system/display-manager.service.d/10-wait-for-dri-devices.conf|output=<br />
[Unit]<br />
Wants=dev-dri-card0.device<br />
After=dev-dri-card0.device<br />
}}<br />
If you have additional cards needed for the desktop then list them in Wants and After seperated by spaces.<br />
<br />
== xrandr BadMatch ==<br />
<br />
If you are trying to configure a WQHD monitor such as DELL U2515H using [[xrandr]] and {{ic|xrandr --addmode}} gives you the error {{ic|X Error of failed request: BadMatch}}, it might be because the proprietary NVIDIA driver clips the pixel clock maximum frequency of HDMI output to 225 MHz or lower. To set the monitor to maximum resolution you have to install [[nouveau]] drivers. You can force nouveau to use a specific pixel clock frequency by setting {{ic|1=nouveau.hdmimhz=297}} (or {{ic|330}}) in your [[Kernel parameters]].<br />
<br />
Alternatively, it may be that your monitor's EDID is incorrect. See [[#Override EDID]].<br />
<br />
Another reason could be that per default current NVidia drivers will only allow modes explicitly reported by EDID; but sometimes refresh rates and/or resolutions are desired which are not reported by the monitor (although the EDID information is correct; it's just that current NVidia drivers are too restrictive).<br />
<br />
If this happens, you may want to add an option to {{ic|xorg.conf}} to allow non-EDID modes:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
...<br />
Option "ModeValidation" "AllowNonEdidModes"<br />
...<br />
EndSection<br />
}}<br />
<br />
This can be set per-output. See NVidia driver readme (Appendix B. X Config Options) for more information.<br />
<br />
== Override EDID ==<br />
<br />
See [[Kernel mode setting#Forcing modes and EDID]], [[Xrandr#Troubleshooting]] and [[Qnix QX2710#Fixing X11 with Nvidia]].<br />
<br />
== Overclocking with nvidia-settings GUI not working ==<br />
<br />
{{Style|Duplication, vague "not working"}}<br />
<br />
Workaround is to use nvidia-settings CLI to query and set certain variables after enabling overclocking (as explained in [[NVIDIA/Tips and tricks#Enabling overclocking]], see {{man|1|nvidia-settings}} for more information).<br />
<br />
Example to query all variables:<br />
<br />
nvidia-settings -q all<br />
<br />
Example to set PowerMizerMode to prefer performance mode:<br />
<br />
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1<br />
<br />
Example to set fan speed to fixed 21%:<br />
<br />
nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=21<br />
<br />
Example to set multiple variables at once (overclock GPU by 50MHz, overclock video memory by 50MHz, increase GPU voltage by 100mV):<br />
<br />
nvidia-settings -a GPUGraphicsClockOffsetAllPerformanceLevels=50 -a GPUMemoryTransferRateOffsetGPUGraphicsClockOffsetAllPerformanceLevels=50 -a GPUOverVoltageOffset=100<br />
<br />
== Overclocking not working with Unknown Error ==<br />
<br />
If you are running Xorg as a non-root user and trying to overclock your NVIDIA GPU, you will get an error similar to this one:<br />
<br />
{{hc|1=$ nvidia-settings -a "[gpu:0]/GPUGraphicsClockOffset[3]=10"|2=<br />
ERROR: Error assigning value 10 to attribute 'GPUGraphicsClockOffset' (trinity-zero:1[gpu:0]) as specified in assignment<br />
'[gpu:0]/GPUGraphicsClockOffset[3]=10' (Unknown Error).<br />
}}<br />
<br />
To avoid this issue, Xorg has to be run as the root user. See [[Xorg#Rootless Xorg]] for details.<br />
<br />
== System will not boot after driver was installed ==<br />
<br />
If after installing the [[NVIDIA]] driver your system becomes stuck before reaching the display manager, try to [[Kernel mode setting#Disabling modesetting|disable kernel mode setting]].<br />
<br />
== X fails with "Failing initialization of X screen" ==<br />
<br />
If {{ic|/var/log/Xorg.0.log}} says X server fails to initialize screen<br />
<br />
(EE) NVIDIA(G0): GPU screens are not yet supported by the NVIDIA driver<br />
(EE) NVIDIA(G0): Failing initialization of X screen<br />
<br />
and nvidia-smi says {{ic|No running processes found}}<br />
<br />
The solution is at first reinstall latest {{Pkg|nvidia-utils}}, and then copy {{ic|/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf}} to {{ic|/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf}}, and then edit {{ic|/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf}} and add the line {{ic|Option "PrimaryGPU" "yes"}}. Restart the computer. The problem will be fixed.<br />
<br />
== System does not return from suspend ==<br />
<br />
What you see in the log:<br />
kernel: nvidia-modeset: ERROR: GPU:0: Failed detecting connected display devices<br />
kernel: nvidia-modeset: ERROR: GPU:0: Failed detecting connected display devices<br />
kernel: nvidia-modeset: WARNING: GPU:0: Failure processing EDID for display device DELL U2412M (DP-0).<br />
kernel: nvidia-modeset: WARNING: GPU:0: Unable to read EDID for display device DELL U2412M (DP-0)<br />
kernel: nvidia-modeset: ERROR: GPU:0: Failure reading maximum pixel clock value for display device DELL U2412M (DP-0).<br />
<br />
A possible solution based on [https://forums.developer.nvidia.com/t/solution-for-nvidia-sleep-wake-issue-in-linux/110911]:<br />
<br />
Run this command to get the {{ic|''version''}} string:<br />
<br />
# strings /sys/firmware/acpi/tables/DSDT | grep -i 'windows ' | sort | tail -1<br />
<br />
Add the {{ic|1=acpi_osi=! "acpi_osi=''version''"}} [[kernel parameter]] to your [[boot loader]] configuration.<br />
<br />
== Vulkan error on applications start ==<br />
<br />
{{Accuracy|Need confirmation by other users}}<br />
<br />
On executing an application that require Vulkan acceleration, if you get this error<br />
Vulkan call failed: -4<br />
try to delete the {{ic|~/.nv}} or {{ic|~/.cache/nvidia}} directory.</div>Kuba-orlikhttps://wiki.archlinux.org/index.php?title=NVIDIA/Troubleshooting&diff=690696NVIDIA/Troubleshooting2021-08-04T09:04:20Z<p>Kuba-orlik: typo</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:NVIDIA/トラブルシューティング]]<br />
== Corrupted screen: "Six screens" Problem ==<br />
<br />
For some users, using GeForce GT 100M's, the screen gets corrupted after X starts, divided into 6 sections with a resolution limited to 640x480.<br />
The same problem has been recently reported with Quadro 2000 and hi-res displays.<br />
<br />
To solve this problem, enable the Validation Mode {{ic|NoTotalSizeCheck}} in section {{ic|Device}}:<br />
Section "Device"<br />
...<br />
Option "ModeValidation" "NoTotalSizeCheck"<br />
...<br />
EndSection<br />
<br />
== '/dev/nvidia0' input/output error ==<br />
<br />
{{Accuracy|Verify that the BIOS related suggestions work and are not coincidentally set while troubleshooting.|section='/dev/nvidia0' Input/Output error... suggested fixes}}<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 problem. 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 is only one video processor. In such case you should find out the amount of your system's video memory (e.g. with {{ic|lspci -v}}) and pass allocation parameters to the kernel, e.g. for a 32-bit kernel:<br />
vmalloc=384M<br />
<br />
If running a 64bit kernel, a driver defect can cause the NVIDIA module to fail initializing when IOMMU is on. Turning it off in the BIOS has been confirmed to work for some users. [http://www.nvnews.net/vbulletin/showthread.php?s=68bb2fabadcb53b10b286aa42d13c5bc&t=159335][[User:Clickthem#nvidia module]]<br />
<br />
Another thing to try is to change your BIOS IRQ routing from {{ic|Operating system controlled}} to {{ic|BIOS controlled}} or the other way around. The first one can be passed as a kernel parameter:<br />
PCI=biosirq<br />
<br />
The {{ic|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 />
== Crashing in general ==<br />
<br />
* Try disabling {{ic|RenderAccel}} in xorg.conf.<br />
* If Xorg outputs an error about {{ic|"conflicting memory type"}} or {{ic|"failed to allocate primary buffer: out of memory"}}, or crashes with a "Signal 11" while using nvidia-96xx drivers, add {{ic|nopat}} to your [[kernel parameters]].<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 {{ic|/etc/profile}}:<br />
export IGNORE_CC_MISMATCH=1<br />
* If Xorg is crashing , try disabling PAT. Pass the argument {{ic|nopat}} to [[kernel parameters]].<br />
More information about troubleshooting the driver can be found in the [https://forums.geforce.com/ NVIDIA forums.]<br />
<br />
== Bad performance after installing a new driver version ==<br />
<br />
If FPS have dropped in comparison with older drivers, check if direct rendering is enabled ({{ic|glxinfo}} is included in {{Pkg|mesa-demos}}):<br />
$ glxinfo | grep direct<br />
<br />
If the command prints:<br />
direct rendering: No<br />
<br />
A possible solution could be to regress to the previously installed driver version and rebooting afterwards.<br />
<br />
== Avoid screen tearing ==<br />
{{Note|This has been reported to reduce the performance of some OpenGL applications and may produce issues in WebGL. It also drastically increases the time the driver needs to clock down after load ([https://devtalk.nvidia.com/default/topic/1048768/linux/if-you-have-gpu-clock-boost-problems-please-try-__gl_experimentalperfstrategy-1/ Nvidia-Support-Thread]).}}<br />
<br />
Tearing can be avoided by forcing a full composition pipeline, regardless of the compositor you are using. To test whether this option will work, run:<br />
$ nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"<br />
<br />
Or click on the ''Advanced'' button that is available on the ''X Server Display Configuration'' menu option. Select either ''Force Composition Pipeline'' or ''Force Full Composition Pipeline'' and click on ''Apply''.<br />
<br />
In order to make the change permanent, it must be added to the {{ic|"Screen"}} section of the [[Xorg]] configuration file. When making this change, {{ic|TripleBuffering}} should be enabled and {{ic|AllowIndirectGLXProtocol}} should be disabled in the driver configuration as well. See example configuration below:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-nvidia.conf|2=<br />
Section "Device"<br />
Identifier "Nvidia Card"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
BoardName "GeForce GTX 1050 Ti"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Device0"<br />
Monitor "Monitor0"<br />
Option "MetaModes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}"<br />
Option "AllowIndirectGLXProtocol" "off"<br />
Option "TripleBuffer" "on"<br />
EndSection<br />
}}<br />
<br />
If you do not have an Xorg configuration file, you can create one for your present hardware using {{ic|nvidia-xconfig}} (see [[NVIDIA#Automatic configuration]]) and move it from {{ic|/etc/X11/xorg.conf}} to the preferred location {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}}.<br />
<br />
{{Note|Many of the configuration options produced in {{ic|20-nvidia.conf}} by using {{ic|nvidia-xconfig}} are set automatically by the driver and are not needed. To only use this file for enabling composition pipeline, only the section {{ic|"Screen"}} containing lines with values for {{ic|Identifier}} and {{ic|Option}} are necessary. Other sections may be removed from this file.}}<br />
<br />
=== Multi-monitor ===<br />
<br />
For multi-monitor setup you will need to specify {{ic|1=ForceCompositionPipeline=On}} for each display. For example:<br />
<br />
$ nvidia-settings --assign CurrentMetaMode="DP-2: nvidia-auto-select +0+0 {ForceCompositionPipeline=On}, DP-4: nvidia-auto-select +3840+0 {ForceCompositionPipeline=On}"<br />
<br />
Without doing this, the {{ic|nvidia-settings}} command will disable your secondary display.<br />
<br />
You can get the current screen names and offsets using {{ic|--query}}:<br />
<br />
$ nvidia-settings --query CurrentMetaMode<br />
<br />
The above line is for two 3840x2160 monitors connected to DP-2 and DP-4. You will need to read the correct {{ic|CurrentMetaMode}} by exporting {{ic|xorg.conf}} and append {{ic|ForceCompositionPipeline}} to each of your displays. Setting {{ic|ForceCompositionPipeline}} only affects the targeted display. <br />
<br />
{{Tip|Multi monitor setups using different model monitors may have slightly different refresh rates. If vsync is enabled by the driver it will sync to only one of these refresh rates which can cause the appearance of screen tearing on incorrectly synced monitors. Select to sync the display device which is the primarily used monitor as others will not sync properly. This is configurable in {{ic|~/.nvidia-settings-rc}} as {{ic|1=0/XVideoSyncToDisplayID=}} or by installing {{pkg|nvidia-settings}} and using the graphical configuration options.}}<br />
<br />
=== Avoid screen tearing in KDE (KWin) ===<br />
The problem is caused by incorrect assumption by the KDE devs about the behaviour of {{ic|1=glXSwapBuffers}} and should be fixed in '''Plasma 5.12''', '''Plasma 5.15''', '''Plasma 5.16''' [https://phabricator.kde.org/D19867]. Additionally, [[NVIDIA#DRM kernel mode setting]] may be required. <br />
<br />
==== Legacy solutions ====<br />
For posterity, these are the legacy workarounds. Do '''not''' apply both workarounds because this may lead to high CPU load [https://bugs.kde.org/show_bug.cgi?id=322060].<br />
<br />
===== 1. GL threads =====<br />
Set GL threads to sleep by exporting {{ic|1=__GL_YIELD="USLEEP"}} to just {{ic|kwin_x11}}. Unlike setting up a global environment variable, this affects only KWin. It should also have the advantage over other workarounds, like forcing triple buffering or forcing composition pipeline in the driver, that it does not introduce additional stuttering when scrolling in Firefox or moving windows.<br />
<br />
The script can be executed automatically at login with an autostart script:<br />
<br />
{{hc|~/.config/autostart-scripts/kwin.sh|2=<br />
#!/bin/bash<br />
<br />
(sleep 2s && __GL_YIELD="USLEEP" kwin_x11 --replace)<br />
}}<br />
Flag the script as executable.<br />
<br />
The {{ic|sleep}} argument helps to prevent issues when KWin is restarted/hanging after logging in, you might need to increase this time.<br />
<br />
===== 2. Use TripleBuffering =====<br />
<br />
Make sure {{ic|TripleBuffering}} has been enabled for the driver, see [[#Avoid screen tearing]].<br />
<br />
Create the {{ic|/etc/profile.d/kwin.sh}} file:<br />
<br />
{{hc|/etc/profile.d/kwin.sh|2=<br />
export KWIN_TRIPLE_BUFFER=1<br />
}}<br />
<br />
Use '''OpenGL 2.0 or later''' as rendering backend under ''System Settings > Display and Monitor > Compositor''.<br />
<br />
== Modprobe Error: "Could not insert 'nvidia': No such device" on linux >=4.8 ==<br />
<br />
With linux 4.8, one can get the following errors when trying to use the discrete card:<br />
{{hc|$ modprobe nvidia -vv|<br />
modprobe: INFO: custom logging function 0x409c10 registered<br />
modprobe: INFO: Failed to insert module '/lib/modules/4.8.6-1-ARCH/extramodules/nvidia.ko.gz': No such device<br />
modprobe: ERROR: could not insert 'nvidia': No such device<br />
modprobe: INFO: context 0x24481e0 released<br />
insmod /lib/modules/4.8.6-1-ARCH/extramodules/nvidia.ko.gz <br />
}}<br />
{{hc|# dmesg|<br />
...<br />
NVRM: The NVIDIA GPU 0000:01:00.0 (PCI ID: 10de:139b)<br />
NVRM: installed in this system is not supported by the 370.28<br />
NVRM: NVIDIA Linux driver release. Please see 'Appendix<br />
NVRM: A - Supported NVIDIA GPU Products' in this release's<br />
NVRM: README, available on the Linux driver download page<br />
NVRM: at www.nvidia.com.<br />
...<br />
}}<br />
<br />
This problem is caused by bad commits pertaining to PCIe power management in the Linux Kernel (as documented in [https://devtalk.nvidia.com/default/topic/971733/-370-28-with-kernel-4-8-on-gt-2015-machines-driver-claims-card-not-supported-if-nvidia-is-not-primary-card/ this NVIDIA DevTalk thread]). <br />
<br />
The workaround is to add {{ic|1=pcie_port_pm=off}} to your [[kernel parameters]]. Note that this disables PCIe power management for all devices.<br />
<br />
== Poor performance after resuming from suspend ==<br />
<br />
If you are getting poor performance after resuming from suspend, you need to register the nvidia kernel module with the ACPI subsystem. This can be done by [[Kernel modules#Setting module options|loading]] the {{ic|nvidia}} module with the {{ic|1=NVreg_RegisterForACPIEvents=1 NVreg_EnableMSI=1}} options.<br />
<br />
This also seems to fix issues with corruption to the desktop background on resume with GNOME.<br />
<br />
== CPU spikes with 400 series cards ==<br />
<br />
If you are 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 {{ic|Device}} section of your Xorg configuration:<br />
<br />
Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"<br />
<br />
== Full system freeze or crashes when using Flash ==<br />
<br />
If you experience occasional full system freezes using [[Flash]], a possible workaround is to disable Hardware Acceleration:<br />
<br />
{{hc|/etc/adobe/mms.cfg|2=<br />
EnableLinuxHWVideoDecode=0<br />
}}<br />
<br />
Or, if you want to keep Hardware acceleration enabled but allowing a higher chance of screen tearing, you may try to before starting a browser:<br />
export VDPAU_NVIDIA_NO_OVERLAY=1<br />
<br />
== Laptops: X hangs on login/out, worked around with Ctrl+Alt+Backspace ==<br />
<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 {{ic|Ctrl+Alt+Backspace}} (or whatever the new "kill X" key binding is), try adding this in {{ic|/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 {{ic|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 [ftp://download.nvidia.com/XFree86/Linux-x86/355.11/README/README.txt NVIDIA Driver's README: Appendix K] for more information.<br />
<br />
== Screen(s) found, but none have a usable configuration ==<br />
<br />
Sometimes NVIDIA and X have trouble finding the active screen. If your graphics card has multiple outputs try plugging your monitor into the other ones. On a laptop it may be because your graphics card has VGA/TV out. Xorg.0.log will provide more info.<br />
<br />
Another thing to try is adding invalid {{ic|"ConnectedMonitor" Option}} to {{ic|Section "Device"}}<br />
to force Xorg throws error and shows you how correct it.<br />
[ftp://download.nvidia.com/XFree86/Linux-x86/355.11/README/xconfigoptions.html Here]<br />
more about ConnectedMonitor setting.<br />
<br />
After re-run X see Xorg.0.log to get valid CRT-x,DFP-x,TV-x values.<br />
<br />
{{ic|nvidia-xconfig --query-gpu-info}} could be helpful.<br />
<br />
== Blackscreen at X startup / Machine poweroff at X shutdown ==<br />
<br />
If you have installed an update of Nvidia and your screen stays black after launching Xorg, or if shutting down Xorg causes a machine poweroff, try the below workarounds:<br />
<br />
* Prepend "xrandr --auto" to your xinitrc<br />
<br />
* Use the {{ic|1=rcutree.rcu_idle_gp_delay=1}} [[kernel parameter]].<br />
<br />
* You can also try to add the {{ic|nvidia}} module directly to your [[mkinitcpio]] config file.<br />
<br />
* If the screen still stays black with '''both''' the {{ic|1=rcutree.rcu_idle_gp_delay=1}} [[kernel parameter]] and the {{ic|nvidia}} module directly in the [[mkinitcpio]] config file, try re-installing {{Pkg|nvidia}} and {{Pkg|nvidia-utils}} in that order, and finally reload the driver:<br />
<br />
# modprobe nvidia<br />
<br />
== Backlight is not turning off in some occasions ==<br />
<br />
By default, DPMS should turn off backlight with the timeouts set or by running xset. However, probably due to a bug in the proprietary Nvidia drivers the result is a blank screen with no powersaving whatsoever. To workaround it, until the bug has been fixed you can use the {{ic|vbetool}} as root.<br />
<br />
Install the {{Pkg|vbetool}} package.<br />
<br />
Turn off your screen on demand and then by pressing a random key backlight turns on again:<br />
<br />
vbetool dpms off && read -n1; vbetool dpms on<br />
<br />
Alternatively, xrandr is able to disable and re-enable monitor outputs without requiring root.<br />
<br />
xrandr --output DP-1 --off; read -n1; xrandr --output DP-1 --auto<br />
<br />
=== Driver 415: HardDPMS ===<br />
<br />
{{Expansion|Add references for the "user reports".}}<br />
<br />
Proprietary driver 415 includes a new feature called HardDPMS. This is reported by some users to solve the issues with suspending monitors connected over DisplayPort.<br />
It is reported to become the default in a future driver version, but for now, the {{ic|HardDPMS}} option can be set in the {{ic|Device}} or {{ic|Screen}} sections. For example:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-nvidia.conf|<br />
Section "Device"<br />
...<br />
Option "HardDPMS" "true" <br />
...<br />
EndSection<br />
<br />
Section "Screen"<br />
...<br />
Option "HardDPMS" "true"<br />
...<br />
EndSection<br />
}}<br />
<br />
{{ic|HardDPMS}} will trigger on screensaver settings like {{ic|BlankTime}}. The following {{ic|ServerFlags}} will set your monitor(s) to suspend after 10 minutes of inactivity:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-nvidia.conf|<br />
Section "ServerFlags"<br />
Option "BlankTime" "10"<br />
EndSection<br />
}}<br />
<br />
== Xorg fails to load or Red Screen of Death ==<br />
<br />
If you get a red screen and use GRUB, disable the GRUB framebuffer by editing {{ic|/etc/default/grub}} and uncomment {{ic|1=GRUB_TERMINAL_OUTPUT=console}}. For more information see [[GRUB/Tips and tricks#Disable framebuffer]].<br />
<br />
== Black screen on systems with Intel integrated GPU ==<br />
<br />
If you have an Intel CPU with an integrated GPU (e.g. Intel HD 4000) and have installed the {{Pkg|nvidia}} package, you may experience a black screen on boot, when changing virtual terminal, or when exiting an X session. This may be caused by a conflict between the graphics modules. This is solved by blacklisting the Intel GPU modules. Create the file {{ic|/etc/modprobe.d/blacklist.conf}} and prevent the ''i915'' and ''intel_agp'' modules from loading on boot:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|<br />
install i915 /usr/bin/false<br />
install intel_agp /usr/bin/false<br />
}}<br />
<br />
== No audio over HDMI ==<br />
<br />
Sometimes nvidia HDMI audio devices are not shown when you do<br />
<br />
aplay -l<br />
<br />
For whatever reason on some new machines, the audio chip on the nvidia GPU is disabled at boot. Read more [https://devtalk.nvidia.com/default/topic/1024022/linux/gtx-1060-no-audio-over-hdmi-only-hda-intel-detected-azalia/?offset=4 here] and [https://bbs.archlinux.org/viewtopic.php?id=230125 here]<br />
<br />
You need to reload the nvidia device with audio enabled. In order to do that make sure that your GPU is on (in case of laptops/Bumblebee) and that you are not running X on it, because it's going to reset:<br />
<br />
# setpci -s 01:00.0 0x488.l=0x2000000:0x2000000<br />
# rmmod nvidia-drm nvidia-modeset nvidia<br />
# echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove<br />
# echo 1 > /sys/bus/pci/devices/0000:00:01.0/rescan<br />
# modprobe nvidia-drm<br />
# xinit -- -retro<br />
<br />
If you are running your TTY on nvidia, put the lines in a script so you do not end up with no screen.<br />
<br />
== Black screen on systems with VIA integrated GPU ==<br />
<br />
As above, blacklisting the ''viafb'' module may resolve conflicts with NVIDIA drivers:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|<br />
install viafb /usr/bin/false<br />
}}<br />
<br />
== X fails with "no screens found" when using Multiple GPUs ==<br />
<br />
In situations where you might have multiple GPUs on a system and X fails to start with:<br />
<br />
[ 76.633] (EE) No devices detected.<br />
[ 76.633] Fatal server error:<br />
[ 76.633] no screens found<br />
<br />
then you need to add your discrete card's BusID to your X configuration. This can happen on systems with an Intel CPU and an integrated GPU or if you have more than one Nvidia card connected. Find your BusID:<br />
<br />
{{hc|# lspci {{!}} grep "VGA{{!}}3D controller"|<br />
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09)<br />
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)<br />
08:00.0 3D controller: NVIDIA Corporation GM108GLM [Quadro K620M / Quadro M500M] (rev a2)<br />
}}<br />
<br />
Then you fix it by adding it to the card's Device section in your X configuration. In my case:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/10-nvidia.conf|<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
BusID "PCI:1:0:0"<br />
EndSection<br />
}}<br />
<br />
{{Note|BusID formatting is important!}}<br />
<br />
In the example above {{ic|01:00.0}} is stripped to be written as {{ic|1:0:0}}, however some conversions can be more complicated. {{ic|lspci}} output is in hex format, but in config files the BusID's are in decimal format! This means that in cases where the BusID is greater than 9 you will need to convert it to decimal! <br />
<br />
ie: {{ic|5e:00.0}} from lspci becomes {{ic|PCI:94:0:0}}.<br />
<br />
== Xorg fails during boot, but otherwise starts fine ==<br />
<br />
On very fast booting systems, systemd may attempt to start the display manager before the NVIDIA driver has fully initialized. You will see a message like the following in your logs only when Xorg runs during boot.<br />
{{hc|/var/log/Xorg.0.log|output=<br />
[ 1.807] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the<br />
[ 1.807] (EE) NVIDIA(0): system's kernel log for additional error messages and<br />
[ 1.808] (EE) NVIDIA(0): consult the NVIDIA README for details.<br />
[ 1.808] (EE) NVIDIA(0): *** Aborting ***<br />
}}<br />
In this case you will need to establish an ordering dependency from the display manager to the DRI device. First create device units for DRI devices by creating a new udev rules file.<br />
{{hc|/etc/udev/rules.d/99-systemd-dri-devices.rules|output=<br />
ACTION=="add", KERNEL=="card*", SUBSYSTEM=="drm", TAG+="systemd"<br />
}}<br />
Then create dependencies from the display manager to the device(s).<br />
{{hc|/etc/systemd/system/display-manager.service.d/10-wait-for-dri-devices.conf|output=<br />
[Unit]<br />
Wants=dev-dri-card0.device<br />
After=dev-dri-card0.device<br />
}}<br />
If you have additional cards needed for the desktop then list them in Wants and After seperated by spaces.<br />
<br />
== xrandr BadMatch ==<br />
<br />
If you are trying to configure a WQHD monitor such as DELL U2515H using [[xrandr]] and {{ic|xrandr --addmode}} gives you the error {{ic|X Error of failed request: BadMatch}}, it might be because the proprietary NVIDIA driver clips the pixel clock maximum frequency of HDMI output to 225 MHz or lower. To set the monitor to maximum resolution you have to install [[nouveau]] drivers. You can force nouveau to use a specific pixel clock frequency by setting {{ic|1=nouveau.hdmimhz=297}} (or {{ic|330}}) in your [[Kernel parameters]].<br />
<br />
Alternatively, it may be that your monitor's EDID is incorrect. See [[#Override EDID]].<br />
<br />
Another reason could be that per default current NVidia drivers will only allow modes explicitly reported by EDID; but sometimes refresh rates and/or resolutions are desired which are not reported by the monitor (although the EDID information is correct; it's just that current NVidia drivers are too restrictive).<br />
<br />
If this happens, you may want to add an option to {{ic|xorg.conf}} to allow non-EDID modes:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
...<br />
Option "ModeValidation" "AllowNonEdidModes"<br />
...<br />
EndSection<br />
}}<br />
<br />
This can be set per-output. See NVidia driver readme (Appendix B. X Config Options) for more information.<br />
<br />
== Override EDID ==<br />
<br />
See [[Kernel mode setting#Forcing modes and EDID]], [[Xrandr#Troubleshooting]] and [[Qnix QX2710#Fixing X11 with Nvidia]].<br />
<br />
== Overclocking with nvidia-settings GUI not working ==<br />
<br />
{{Style|Duplication, vague "not working"}}<br />
<br />
Workaround is to use nvidia-settings CLI to query and set certain variables after enabling overclocking (as explained in [[NVIDIA/Tips and tricks#Enabling overclocking]], see {{man|1|nvidia-settings}} for more information).<br />
<br />
Example to query all variables:<br />
<br />
nvidia-settings -q all<br />
<br />
Example to set PowerMizerMode to prefer performance mode:<br />
<br />
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1<br />
<br />
Example to set fan speed to fixed 21%:<br />
<br />
nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=21<br />
<br />
Example to set multiple variables at once (overclock GPU by 50MHz, overclock video memory by 50MHz, increase GPU voltage by 100mV):<br />
<br />
nvidia-settings -a GPUGraphicsClockOffsetAllPerformanceLevels=50 -a GPUMemoryTransferRateOffsetGPUGraphicsClockOffsetAllPerformanceLevels=50 -a GPUOverVoltageOffset=100<br />
<br />
== Overclocking not working with Unknown Error ==<br />
<br />
If you are running Xorg as a non-root user and trying to overclock your NVIDIA GPU, you will get an error similar to this one:<br />
<br />
{{hc|1=$ nvidia-settings -a "[gpu:0]/GPUGraphicsClockOffset[3]=10"|2=<br />
ERROR: Error assigning value 10 to attribute 'GPUGraphicsClockOffset' (trinity-zero:1[gpu:0]) as specified in assignment<br />
'[gpu:0]/GPUGraphicsClockOffset[3]=10' (Unknown Error).<br />
}}<br />
<br />
To avoid this issue, Xorg has to be run as the root user. See [[Xorg#Rootless Xorg]] for details.<br />
<br />
== System will not boot after driver was installed ==<br />
<br />
If after installing the [[NVIDIA]] driver your system becomes stuck before reaching the display manager, try to [[Kernel mode setting#Disabling modesetting|disable kernel mode setting]].<br />
<br />
== X fails with "Failing initialization of X screen" ==<br />
<br />
If {{ic|/var/log/Xorg.0.log}} says X server fails to initialize screen<br />
<br />
(EE) NVIDIA(G0): GPU screens are not yet supported by the NVIDIA driver<br />
(EE) NVIDIA(G0): Failing initialization of X screen<br />
<br />
and nvidia-smi says {{ic|No running processes found}}<br />
<br />
The solution is at first reinstall latest {{Pkg|nvidia-utils}}, and then copy {{ic|/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf}} to {{ic|/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf}}, and then edit {{ic|/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf}} and add the line {{ic|Option "PrimaryGPU" "yes"}}. Restart the computer. The problem will be fixed.<br />
<br />
== System does not return from suspend ==<br />
<br />
What you see in the log:<br />
kernel: nvidia-modeset: ERROR: GPU:0: Failed detecting connected display devices<br />
kernel: nvidia-modeset: ERROR: GPU:0: Failed detecting connected display devices<br />
kernel: nvidia-modeset: WARNING: GPU:0: Failure processing EDID for display device DELL U2412M (DP-0).<br />
kernel: nvidia-modeset: WARNING: GPU:0: Unable to read EDID for display device DELL U2412M (DP-0)<br />
kernel: nvidia-modeset: ERROR: GPU:0: Failure reading maximum pixel clock value for display device DELL U2412M (DP-0).<br />
<br />
A possible solution based on [https://forums.developer.nvidia.com/t/solution-for-nvidia-sleep-wake-issue-in-linux/110911]:<br />
<br />
Run this command to get the {{ic|''version''}} string:<br />
<br />
# strings /sys/firmware/acpi/tables/DSDT | grep -i 'windows ' | sort | tail -1<br />
<br />
Add the {{ic|1=acpi_osi=! "acpi_osi=''version''"}} [[kernel parameter]] to your [[boot loader]] configuration.<br />
<br />
== Vulkan error on applications start ==<br />
<br />
{{Accuracy|Need confirmation by other users}}<br />
<br />
On executing an application that require Vulkan acceleration, if you get this error<br />
Vulkan call failed: -4<br />
try to delete the {{ic|~/.nv}} or {{ic|~/.cache/nvidia}} directory.</div>Kuba-orlikhttps://wiki.archlinux.org/index.php?title=Talk:TigerVNC&diff=636801Talk:TigerVNC2020-09-30T15:35:51Z<p>Kuba-orlik: response</p>
<hr />
<div>== The config file is missing? ==<br />
<br />
The "Initial setup" section contains this phrase:<br />
<br />
> Edit /etc/tigervnc/vncserver.users to define user mappings. <br />
<br />
But after installing the tigervnc package the file does not exist in the FS. Should I create it first?<br />
<br />
[[User:Kuba-orlik|Kuba-orlik]] ([[User talk:Kuba-orlik|talk]]) 15:33, 30 September 2020 (UTC)<br />
<br />
: Kuba-orlik, please sign you edits with four tildes. Update your system, suspect you have an old version of tigervnc since that file is provided by the package [[User:Graysky|Graysky]] ([[User talk:Graysky|talk]]) 08:41, 29 September 2020 (UTC)<br />
<br />
: I have the version `1.10.1-2` installed, although I can't find the file with `pacman -F vncserver.users`. I think that it might be caused by the fact that I use Manjaro and it's packaged differently there. [[User:Kuba-orlik|Kuba-orlik]] ([[User talk:Kuba-orlik|talk]]) 15:35, 30 September 2020 (UTC)</div>Kuba-orlikhttps://wiki.archlinux.org/index.php?title=Talk:TigerVNC&diff=636800Talk:TigerVNC2020-09-30T15:33:25Z<p>Kuba-orlik: sign</p>
<hr />
<div>== The config file is missing? ==<br />
<br />
The "Initial setup" section contains this phrase:<br />
<br />
> Edit /etc/tigervnc/vncserver.users to define user mappings. <br />
<br />
But after installing the tigervnc package the file does not exist in the FS. Should I create it first?<br />
<br />
[[User:Kuba-orlik|Kuba-orlik]] ([[User talk:Kuba-orlik|talk]]) 15:33, 30 September 2020 (UTC)<br />
<br />
: Kuba-orlik, please sign you edits with four tildes. Update your system, suspect you have an old version of tigervnc since that file is provided by the package [[User:Graysky|Graysky]] ([[User talk:Graysky|talk]]) 08:41, 29 September 2020 (UTC)</div>Kuba-orlikhttps://wiki.archlinux.org/index.php?title=Talk:TigerVNC&diff=636722Talk:TigerVNC2020-09-28T10:05:53Z<p>Kuba-orlik: /* The config file is missing? */ new section</p>
<hr />
<div>== Edit https://wiki.archlinux.org/index.php?title=TigerVNC&oldid=435113 ==<br />
<br />
In my experience, prefixing x11vnc with sudo is required. Without it, I get an error similar to:<br />
<br />
x11vnc -display :0 -auth /var/run/lxdm/lxdm-\:0.auth<br />
*** XOpenDisplay failed (:0)<br />
<br />
Can you suggest the syntax one needs to use to make your edit true? Thank you. [[User:Graysky|Graysky]] ([[User talk:Graysky|talk]]) 20:42, 15 May 2016 (UTC)<br />
<br />
This way:<br />
<br />
x11vnc -display :0<br />
<br />
However, the [[X11vnc|wiki]] says that using an X authority file requires root generally.<br />
<br />
You may secure the server without using an X authority file, by creating a password file:<br />
<br />
x11vnc -storepasswd<br />
<br />
Then running x11vnc this way:<br />
<br />
x11vnc -display :0 -rfbauth ~/.x11vnc/passwd<br />
<br />
[[User:Yassine|Yassine]] ([[User talk:Yassine|talk]]) 23:41, 15 May 2016 (UTC)<br />
<br />
== The config file is missing? ==<br />
<br />
The "Initial setup" section contains this phrase:<br />
<br />
> Edit /etc/tigervnc/vncserver.users to define user mappings. <br />
<br />
But after installing the tigervnc package the file does not exist in the FS. Should I create it first?</div>Kuba-orlikhttps://wiki.archlinux.org/index.php?title=Wiimote&diff=546492Wiimote2018-10-07T09:42:10Z<p>Kuba-orlik: repair a broken link</p>
<hr />
<div>[[Category:Other hardware]]<br />
[[ja:Wii リモコン]]<br />
This article will go through the basic steps required to have a working [[Wikipedia:Wii Remote|Wiimote]] in Linux for general use. It will not go into much detail for some steps as there are many guides already written for some parts already.<br />
<br />
{{Note|The approach shown on this page is based on software which is no longer developed upstream. There is a new effort on creating a Wii Remote driver based on the new Linux kernel Wii Remote driver. See [[XWiimote]] if you want to test the new Wii Remote software stack.}}<br />
<br />
== Prerequisites ==<br />
* Bluetooth<br />
* {{AUR|cwiid}}<br />
* Wiimote<br />
<br />
The most important piece required is [[Bluetooth]], this must already be configured and running without the help of this guide. This should be simple enough with any guide found on the internet. The 'cwiid' package is in [[community repository|community]]. This package contains all libraries and programs required for basic use of the Wiimote. Lastly you will need a Wiimote, this can include (although are not required) the Nunchuk and Classic Control attachments.<br />
<br />
== Connect the Wiimote ==<br />
<br />
First you need to make sure to load the {{Ic|uinput}} module:<br />
<br />
# modprobe uinput<br />
<br />
You should have a device in {{ic|/dev/uinput}} now. For permanent use you can add it to the modules section in your [[mkinitcpio.conf]].<br />
<br />
Thanks to cwiid you can scan for your Wiimote now:<br />
<br />
(press the 1 and 2 buttons on your Wiimote)<br />
$ bluetoothctl scan on<br />
Scanning ...<br />
<MAC address> Nintendo RVL-CNT-01<br />
<br />
Once your Wiimote has been detected you can test if it is working by running the command {{Ic|wmgui}} and testing out various buttons and sensors through that interface.<br />
<br />
== Input device ==<br />
<br />
The Wiimote can act as a regular input device like a mouse using {{Ic|wminput}}. If you have ''no infrared source'' simply run:<br />
<br />
$ wminput -w<br />
<br />
You can control your pointer now by tilting your Wiimote forward, backward or to the sides.<br />
<br />
If you ''have an infrared source'' run:<br />
<br />
$ wminput -c ir_ptr -w<br />
<br />
=== Infrared sources ===<br />
<br />
Possible infrared sources are<br />
bulbs<br />
* Nintendo Wii Sensor Bar<br />
* Wireless sensor bar - check eBay!<br />
* Normal light bulbs<br />
* Small candles (should have about 30cm distance)<br />
* Home made sensor bar ([http://doctabu.livejournal.com/64758.html])<br />
<br />
=== Configuration ===<br />
<br />
The default configuration files are in {{ic|/etc/cwiid/wminput/}}. They are a good starting point for your customized settings in {{ic|~/.cwiid/wminput}} or {{ic|/usr/local/etc/cwiid/wminput}}. The general syntax is:<br />
<br />
Wiimote.Button = KEY_ON_KEYBOARD<br />
<br />
All possible values for Wiimote.Buttons can be found here: [https://web.archive.org/web/20160305101815/http://abstrakraft.org/cwiid/browser/doc/wminput.list], the possible values for KEY_ON_KEYBOARD in {{ic|/usr/include/linux/input-event-codes.h}}.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Unable to open uinput ===<br />
<br />
If wminput gives this error, leaving you unable to use the wiimote, try the following:<br />
<br />
# Create a new file in {{ic|/etc/udev/rules.d/}} (It does not matter what the name of the file is, so long as the extension is .rules)<br />
# Add the following to the file: {{bc|1=KERNEL=="uinput", GROUP="wheel", MODE="0660"}}<br />
# Reboot.<br />
<br />
This should solve the problem. Solution was found in the forums [https://bbs.archlinux.org/viewtopic.php?id=104348 here].<br />
<br />
Solution 2:<br />
<br />
# Edit the {{ic|/etc/mkinitcpio.conf}} add "uinput" in MODULES: {{bc|1=MODULES="uinput ...."}} as needed.<br />
# Re-generate the initramfs image with: {{bc|# mkinitcpio -p linux}}<br />
# Reboot.<br />
<br />
== See also ==<br />
<br />
* [[XWiimote]]</div>Kuba-orlikhttps://wiki.archlinux.org/index.php?title=Microsoft_fonts&diff=534870Microsoft fonts2018-08-14T12:37:42Z<p>Kuba-orlik: Wingdings is not included in ttf-ms-fonts</p>
<hr />
<div>[[Category:Fonts]]<br />
[[ar:Microsoft fonts]]<br />
[[ja:MS フォント]]<br />
[[ru:Microsoft fonts]]<br />
[[sr:Microsoft fonts]]<br />
[[zh-hans:Microsoft fonts]]<br />
{{Related articles start}}<br />
{{Related|Metric-compatible fonts}}<br />
{{Related|Fonts}}<br />
{{Related|Font configuration}}<br />
{{Related|Java Runtime Environment Fonts}}<br />
{{Related articles end}}<br />
This article explains how to install TrueType Microsoft fonts and emulate Windows' font rendering.<br />
<br />
{{Tip|See [[Metric-compatible fonts]] for alternatives.}}<br />
<br />
== Installation ==<br />
<br />
=== Using fonts from a Windows partition ===<br />
<br />
If there is a Windows partition mounted, its fonts can be used by linking to them.<br />
<br />
{{Note|Users of {{AUR|google-chrome}} should opt to copy as symlinked fonts cause Chrome to crash.}}<br />
<br />
For example, if the Windows C:\ partition is mounted at {{ic|/windows}}:<br />
<br />
# ln -s /windows/Windows/Fonts /usr/share/fonts/WindowsFonts<br />
<br />
Then regenerate the fontconfig cache:<br />
<br />
# fc-cache -f<br />
<br />
Alternatively, copy the Windows fonts to {{ic|/usr/share/fonts}}:<br />
<br />
# mkdir /usr/share/fonts/WindowsFonts<br />
# cp -r /windows/Windows/Fonts/ /usr/share/fonts/WindowsFonts<br />
# chmod 755 /usr/share/fonts/WindowsFonts/*<br />
<br />
Then regenerate the fontconfig cache:<br />
<br />
# fc-cache -f<br />
<br />
=== Extracting fonts from a Windows ISO ===<br />
<br />
The fonts can also be found in a Windows ISO file. The format of the image file containing the fonts in the ISO is either WIM (''Windows Imaging Format'') if the ISO is downloaded online or ESD (''Windows Electronic Software Download'') if it is built with Windows' ''Media Creation Tool''. Extract the {{ic|sources/install.esd}} or the {{ic|sources/install.wim}} file from the ''.iso'' and look for a {{ic|Windows/Fonts}} directory within this file. It can be extracted using ''7z'' (in [[p7zip]]) or ''wimextract'' (in {{pkg|wimlib}}). See an example below using ''7z'':<br />
<br />
$ 7z e ''Win10_1709_English_x64.iso'' sources/install.wim<br />
$ 7z e install.wim 1/Windows/{Fonts/"*".{ttf,ttc},System32/Licenses/neutral/"*"/"*"/license.rtf} -ofonts/<br />
<br />
The fonts and the license will be located in the {{ic|fonts}} directory.<br />
<br />
=== Current packages ===<br />
<br />
{{Note|These packages do '''require access to a Windows 7/8/10 and/or a Office 2007''' setup or installation media, consult corresponding [[PKGBUILD]] for details.}}<br />
* {{AUR|ttf-office-2007-fonts}} — Office 2007 fonts<br />
* {{AUR|ttf-win7-fonts}} — Windows 7 fonts<br />
* {{AUR|ttf-ms-win8}} — Windows 8.1 fonts<br />
* {{AUR|ttf-ms-win10}} — Windows 10 fonts<br />
<br />
=== Legacy packages ===<br />
<br />
{{Note|The fonts provided by these packages are out-of-date and are missing modern hinting instructions and the full character sets. It is recommended to use the above packages.}}<br />
<br />
{{AUR|ttf-ms-fonts}} includes:<br />
<br />
* [[Wikipedia:Andalé Mono|Andalé Mono]]<br />
* [[Wikipedia:Arial|Arial]]<br />
* [[Wikipedia:Arial Black|Arial Black]]<br />
* [[Wikipedia:Comic Sans|Comic Sans]]<br />
* [[Wikipedia:Courier New|Courier New]]<br />
* [[Wikipedia:Georgia (typeface)|Georgia]]<br />
* [[Wikipedia:Impact (typeface)|Impact]]<br />
* [[Wikipedia:Lucida Sans|Lucida Sans]]<br />
* [[Wikipedia:Lucida Console|Lucida Console]]<br />
* [[Wikipedia:Microsoft Sans Serif|Microsoft Sans Serif]]<br />
* <s>[[Wikipedia:Symbol (typeface)|Symbol]]</s><br />
* [[Wikipedia:Times New Roman|Times New Roman]]<br />
* [[Wikipedia:Trebuchet MS|Trebuchet]]<br />
* [[Wikipedia:Verdana|Verdana]]<br />
* [[Wikipedia:Webdings|Webdings]]<br />
* <s>[[Wikipedia:Wingdings|Wingdings]]</s><br />
<br />
{{Warning|According to [http://web.archive.org/web/20020227054122/www.microsoft.com/typography/fontpack/eula.htm original Microsoft's End User License Agreement], there are ''some'' legal limitations when using the above fonts.}}<br />
<br />
You can also obtain {{AUR|ttf-tahoma}} which, as you might expect, contains [[Wikipedia:Tahoma (typeface)|Tahoma]].<br />
<br />
{{AUR|ttf-vista-fonts}} includes: <br />
<br />
* [[Wikipedia:Calibri|Calibri]]<br />
* [[Wikipedia:Cambria (typeface)|Cambria]]<br />
* [[Wikipedia:Candara|Candara]]<br />
* [[Wikipedia:Consolas|Consolas]]<br />
* [[Wikipedia:Constantia (typeface)|Constantia]]<br />
* [[Wikipedia:Corbel (typeface)|Corbel]]<br />
<br />
== Fontconfig rules useful for MS Fonts ==<br />
<br />
Often websites specify the fonts using generic names (helvetica, courier, times or times new roman) a rule in fontconfig replaces this fonts with (ugly) free fonts: <br />
/etc/fonts/conf.d/30-metric-aliases-free.conf<br />
to make full use of the MS fonts it is necessary to create a rule mapping those generic names to MS specific fonts contained in the various packages above:<br />
<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<!-- Map generics to MS specifics --><br />
<!-- PostScript --><br />
<alias binding="same"><br />
<family>Helvetica</family><br />
<accept><br />
<family>Arial</family><br />
</accept><br />
</alias><br />
<alias binding="same"><br />
<family>Times</family><br />
<accept><br />
<family>Times New Roman</family><br />
</accept><br />
</alias><br />
<alias binding="same"><br />
<family>Courier</family><br />
<accept><br />
<family>Courier New</family><br />
</accept><br />
</alias><br />
</fontconfig><br />
<br />
It is also useful to associate serif,sans-serif,monospace fonts in your favourite browser to MS fonts.<br />
<br />
== Windows 8 ==<br />
<br />
The {{AUR|ttf-ms-win8}} split package is intended as a more up-to-date replacement for<br />
{{AUR|ttf-ms-fonts}}, {{AUR|ttf-vista-fonts}} and {{AUR|ttf-win7-fonts}}.<br />
<br />
Although it provides newer versions of the fonts, it '''cannot automatically download the fonts''' due<br />
to license issues .<br />
<br />
{{Note|usage of Microsoft fonts outside running Windows system is prohibited by EULA (although in certain countries EULA is invalid). Please consult Microsoft license before using fonts.}}<br />
<br />
You can acquire fonts from an installed and fully updated Windows 8.1 system. Any edition of ''Windows 8.1 build '''Windows 8.1 6.3.9600.17238''''' will work.<br />
<br />
On the installed Windows 8.1 system fonts are usually located in {{ic|[http://technet.microsoft.com/en-us/library/hh825266.aspx %WINDIR%]\Fonts}} and license file is {{ic|[http://technet.microsoft.com/en-us/library/hh825266.aspx %SYSTEM32%]\license.rtf}}.<br />
<br />
You need the files listed in the {{ic|1=source=()}} array. Place them in the same directory as this [[PKGBUILD]] file, then run [[makepkg]].<br />
<br />
{{ic|makepkg --pkg ttf-ms-win8}} will make just the Windows 8.1 core fonts package which should cover even more than {{AUR|ttf-ms-fonts}}.</div>Kuba-orlik