MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "continue": {
        "rvcontinue": "19430|757908",
        "continue": "||"
    },
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "limits": {
        "backlinks": 500
    },
    "query": {
        "pages": {
            "982": {
                "pageid": 982,
                "ns": 0,
                "title": "CUPS",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Printers]]\n[[Category:Servers]]\n[[de:CUPS]]\n[[fr:CUPS]]\n[[ja:CUPS]]\n[[ru:CUPS]]\n[[zh-hans:CUPS]]\n{{Related articles start}}\n{{Related|CUPS/Printer sharing}}\n{{Related|CUPS/Printer-specific problems}}\n{{Related|CUPS/Troubleshooting}}\n{{Related|Samba}}\n{{Related|LPRng}}\n{{Related articles end}}\n\n[https://openprinting.github.io/cups/ CUPS] is the standards-based, open source printing system developed by OpenPrinting for Linux\u00ae and other Unix\u00ae-like operating systems.\n\nArch Linux packages the [https://openprinting.github.io/cups/ OpenPrinting CUPS fork], ''not'' the [https://www.cups.org/ Apple CUPS fork].\n\n== Installation ==\n\n[[Install]] the {{Pkg|cups}} package.\n\n{{Note| As drivers are deprecated in CUPS in favor of IPP Everywhere you may need to install {{Pkg|cups-pdf}} to get printing to work. Without this package you may see an error like: ''client-error-document-format-not-supported''. The package is needed because IPP Everywhere sends a PDF directly to the printer, therefor cups-pdf is needed to convert everything you want to print to an PDF first.}} \n\nOptionally, [[install]] the {{Pkg|cups-pdf}} package if you intend to \"print\" into a PDF document. By default, PDF files are stored in {{ic|/var/spool/cups-pdf/''username''/}}. The location can be changed in {{ic|/etc/cups/cups-pdf.conf}}.\n\nThen [[enable]] and [[start]] {{ic|cups.service}} or alternatively use [[#Socket activation|socket activation]] to only start CUPS when a program wants to use the service.\n\n=== Socket activation ===\n\n{{Pkg|cups}} provides a {{ic|cups.socket}} unit. If {{ic|cups.socket}} is [[enable]]d (and {{ic|cups.service}} is [[disable]]d), ''systemd'' will not start CUPS immediately; it will just listen to the appropriate sockets. Then, whenever a program attempts to connect to one of these CUPS sockets, ''systemd'' will start {{ic|cups.service}} and transparently hand over control of these ports to the CUPS process.\n\n=== Print steps ===\n\nIt is important to know how CUPS works if wanting to solve related issues:\n\n# An application sends a [[Wikipedia:PDF|PDF]] file to CUPS when 'print' has been selected (in case the application sends another format, it is converted to PDF first).\n# CUPS then looks at the printer's PPD file (printer description file) and figures out what filters it needs to use to convert the PDF file to a language that the printer understands (like PJL, PCL, bitmap or native PDF).\n# The filter converts the PDF file to a format understood by the printer.\n# Then it is sent to the back-end. For example, if the printer is connected to a USB port, it uses the USB back-end.\n\n== Connection interfaces ==\n\nAdditional steps for printer detection are listed below for various connection interfaces.\n\n=== USB ===\n\nTo see if your USB printer is detected, make sure you have the {{Pkg|usbutils}} package installed, then:\n\n{{hc|$ lsusb|\n(...)\nBus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse\n}}\n\n=== Parallel port ===\n\nTo use a parallel port printer, the {{ic|lp}}, {{ic|parport}} and {{ic|parport_pc}} [[kernel modules]] are required.\n\n{{hc|# dmesg {{!}} grep -i parport|\nparport0: Printer, Hewlett-Packard HP LaserJet 2100 Series\nlp0: using parport0 (polling)\n}}\n\n=== Network ===\n\nTo discover, make use of discovered or share printers using DNS-SD/mDNS, setup [[Avahi#Hostname resolution|.local hostname resolution]] with [[Avahi]] and [[restart]] {{ic|cups.service}}.\n\n{{Note|DNS-SD is only supported when using [[Avahi]]. CUPS does not support using [[systemd-resolved]] for DNS-SD, see [https://github.com/apple/cups/issues/5452 CUPS issue 5452].}}\n\nTo share printers with [[Samba]], e.g. if the system is to be a print server for Windows clients, the {{Pkg|samba}} package will be required.\n\n== Printer drivers ==\n\n{{Expansion|CUPS is planning to drop PPD and driver support ([https://github.com/OpenPrinting/cups/issues/103 CUPS issue 103]), instead relying entirely on IPP Everywhere. Explain what is/will be handled by {{Pkg|cups}} and what by {{Pkg|cups-filters}} and/or other software.|section=CUPS printer drivers and backends are deprecated}}\n\nThe drivers for a printer may come from any of the sources shown below. See [[CUPS/Printer-specific problems]] for an incomplete list of drivers that others have managed to get working.\n\nTo drive a printer, CUPS needs a PPD file and, for most printers, some [https://www.cups.org/doc/man-filter.html filters]. For details on how CUPS uses PPDs and filters, see [https://www.cups.org/doc/postscript-driver.html].\n\nThe [https://www.openprinting.org/printers OpenPrinting Printer List] provides driver recommendations for many printers. It also supplies PPD files for each printer, but most are available through [[#Foomatic|foomatic]] or the recommended driver package.\n\nWhen a PPD file is provided to CUPS, the CUPS server will regenerate the PPD files and save them in {{ic|/etc/cups/ppd/}}.\n\nTo test if they are working before creating a [[PKGBUILD]], PPD files can be manually added to {{ic|/usr/share/cups/''model''}}, the driver should be available after the next restart of the cups service.\n\n=== CUPS ===\n\nCUPS includes support for [[Wikipedia:AirPrint|AirPrint]] and [https://www.pwg.org/ipp/everywhere.html IPP Everywhere] printers.\n\n=== OpenPrinting CUPS filters ===\n\nThe Linux Foundation's OpenPrinting workgroup provides [https://wiki.linuxfoundation.org/openprinting/cups-filters cups-filters]. Those are backends, filters, and other binaries that were once part of CUPS but have been dropped from the project. They are available in the {{Pkg|cups-filters}} package that is a dependency of {{Pkg|cups}}.\n\nNon-PDF printers require {{Pkg|ghostscript}} to be installed. For PostScript printers, {{Pkg|gsfonts}} may also be required.\n\n=== Foomatic ===\n\nThe Linux Foundation's OpenPrinting workgroup's [https://wiki.linuxfoundation.org/openprinting/database/foomatic foomatic] provides PPDs for many printer drivers, both free and non-free. For more information about what foomatic does, see [https://www.openprinting.org/download/kpfeifle/LinuxKongress2002/Tutorial/IV.Foomatic-Developer/IV.tutorial-handout-foomatic-development.html Foomatic from the Developer's View].\n\nTo use foomatic, install {{Pkg|foomatic-db-engine}} and at least one of:\n\n* {{Pkg|foomatic-db}} \u2014 a collection of XML files used by foomatic-db-engine to generate PPD files.\n* {{Pkg|foomatic-db-ppds}} \u2014 prebuilt PPD files.\n* {{Pkg|foomatic-db-nonfree}} \u2014 a collection of XML files from printer manufacturers under non-free licenses used by foomatic-db-engine to generate PPD files.\n* {{Pkg|foomatic-db-nonfree-ppds}} \u2014 prebuilt PPD files under non-free licenses.\n\nThe foomatic PPDs may require additional filters, such as {{AUR|min12xxw}}.\n\n=== Gutenprint ===\n\nThe [https://gimp-print.sourceforge.net/ Gutenprint project] provides drivers for Canon, Epson, Lexmark, Sony, Olympus, and PCL printers for use with CUPS and [[GIMP]].\n\nInstall {{Pkg|gutenprint}} and {{Pkg|foomatic-db-gutenprint-ppds}}.\n\n{{Note|When the Gutenprint packages get updated, the printers using Gutenprint drivers will stop working until you run {{ic|cups-genppdupdate}} as root and restart CUPS. ''cups-genppdupdate'' will update the PPD files of the configured printers, see {{man|8|cups-genppdupdate}} for more details.}}\n\n=== Manufacturer-specific drivers ===\n\nMany printer manufacturers supply their own Linux drivers. These are often available in the official Arch repositories or in the [[AUR]].\n\nSome of those drivers are described in more detail in [[CUPS/Printer-specific problems]].\n\n== Printer URI ==\n\nListed below are additional steps to manually generate the URI if required. Some printers or drivers may need a special URI as described in [[CUPS/Printer-specific problems]].\n\n=== USB ===\n\nCUPS should be able to automatically generate a URI for USB printers, for example {{ic|1=usb://HP/DESKJET%20940C?serial=CN16E6C364BH}}.\n\nIf it does not, see [[CUPS/Troubleshooting#USB printers]] for troubleshooting steps.\n\n=== Parallel port ===\n\nThe URI should be of the form {{ic|parallel:''device''}}. For instance, if the printer is connected on {{ic|/dev/lp0}}, use {{ic|parallel:/dev/lp0}}. If you are using a USB to parallel port adapter, use {{ic|parallel:/dev/usb/lp0}} as the printer URI.\n\n=== Network ===\n\nIf you have set up [[Avahi]] as in [[#Network]], CUPS should detect the printer URI. You can also use {{ic|avahi-discover}} to find the name of your printer and its address (for instance, {{ic|BRN30055C6B4C7A.local/10.10.0.155:631}}).\n\nThe URI can also be generated manually, without using [[Avahi]]. A list of the available URI schemes for networked printers is available in the [https://www.cups.org/doc/network.html#PROTOCOLS CUPS documentation]. As exact details of the URIs differ between printers, check either the manual of the printer or [[CUPS/Printer-specific problems]].\n\nThe URI for printers on [[SMB]] shares is described in the {{man|8|smbspool}} man page.\n\n{{Note|Any special characters in the printer URIs need to be appropriately quoted, or, if your Windows printer name or user passwords have spaces, CUPS will throw a {{ic|lpadmin: Bad device-uri}} error.\nFor example, {{ic|smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6}} becomes {{ic|smb://BEN-DESKTOP/HP%20Color%20LaserJet%20CP1510%20series%20PCL6}}.\n  \nThis result string can be obtained by running the following command:\n\n $ python -c 'from urllib.parse import quote; print(\"smb://\" + quote(\"BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6\"))'\n\n}}\n\nRemote CUPS print servers can be accessed through a URI of the form {{ic|ipp://''hostname'':631/printers/''queue_name''}}. See [[CUPS/Printer sharing#Printer sharing]] for details on setting up the remote print server.\n\nSee [[CUPS/Troubleshooting#Networking issues]] for additional issues and solutions.\n\n{{Warning|1=Avoid configuring both the server and the client with a printer filter\u2014either the print queue on the client or the server should be 'raw'. This avoids sending a print job through the filters for a printer twice (which can cause problems such as a shared printer working locally but a remote machine fails to print [https://bbs.archlinux.org/viewtopic.php?pid=1589908#p1589908]). See [[#lp*]] for an example of setting a print queue to 'raw'.}}\n\n== Usage ==\n\nCUPS can be fully controlled using the ''lp*'' and ''cups*'' CLI tools. Alternatively, the [[#Web interface]] or one of several [[#GUI applications]] can be used.\n\n* The ''queue'' name is a short but descriptive name used on the system to identify the queue. This name should not contain spaces or any special characters. For instance, a print queue corresponding to a HP LaserJet 5P could be named \"hpljet5p\". More than one queue can be associated with each physical printer.\n* The ''location'' is a description of the printer's physical location (for instance \"bedroom\", or \"kitchen\"). This is to aid in maintaining several printers.\n* The ''description'' is a full description of the print queue. A common use is a full printer name (like \"HP LaserJet 5P\").\n\n=== CLI tools ===\n\nSee [http://localhost:631/help/options.html CUPS local documentation] for more tips on the command-line tools.\n\n{{Note|Command-line switches cannot be grouped.}}\n\nUse SNMP to find a URI: \n\n $ /usr/lib/cups/backend/snmp ''ip_address''\n\n==== lp* ====\n\nThe command {{ic|lpinfo -v}} lists the URI of the printers connected to your system, while {{ic|lpinfo -m}} list all of the available drivers (or \"models\", in CUPS parlance) installed on your system.\n\nThe ''lpadmin'' utility creates a new queue with {{ic|-p ''queue_name''}}. The {{ic|-E}} flag added to {{ic|-p}} enables and accepts jobs on the printer. The {{ic|-v}} flag specifies the device URI. The {{ic|-m}} flag specifies the driver (or \"model\", in CUPS parlance) or PPD file to use.\n\nYou can also use the {{ic|-x}} flag to remove a printer (read [[#cups*|the section below]] beforehand). \n\nExamples : \n\n # lpadmin -p HP_DESKJET_940C -E -v \"usb://HP/DESKJET%20940C?serial=CN16E6C364BH\" -m drv:///HP/hp-deskjet_940c.ppd.gz\n\nFor a driver-less queue (Apple AirPrint or IPP Everywhere): \n\n # lpadmin -p AirPrint -E -v \"ipp://10.0.1.25/ipp/print\" -m everywhere\n\nFor a raw queue; no PPD or filter: \n\n # lpadmin -p SHARED_PRINTER -m raw\n\nWhen specifying a PPD instead of a model: \n\n # lpadmin -p Test_Printer -E -v \"ipp://10.0.1.3/ipp/print\" -m pxlmono.ppd\n\n{{Note|\n* When specifying the PPD, use just the file name and not the full path (for instance, {{ic|pxlmono.ppd}} instead of {{ic|/usr/share/ppd/cupsfilters/pxlmono.ppd}}). Alternatively, the full path can be used with the {{ic|-P}} command line switch.\n* As of 2021, many recent printers support driverless printing setup and when specifying {{ic|-m everywhere}}, as in the second example above, the printer will be defined and a ''.ppd'' file will be created in {{ic|/etc/cups/ppd/}} by querying the printer on the network.\n}}\n\nThe ''lpq'' utility checks the queue. Add the {{ic|-a}} flag to check on all queue. \n\nThe ''lprm'' utility clears the queue. Add a {{ic|-}} to remove all entries instead of only the last one by default. \n\nThe ''lpr'' utility prints. Use {{ic|-# ''N''}} to print the file ''N'' times, use the {{ic|-p}} flag to add a header. \n\nExamples of test prints using ''lpr'': \n\n $ lpr /usr/share/cups/data/testprint\n $ echo 'Hello, world!' | lpr -p \n\nThe ''lpstat'' utility, used with the {{ic|-s}} flag, checks the status. The {{ic|-p}} flag allows to specify which queue to check. \n\nThe ''lpoptions'' utility uses the same {{ic|-p ''queue_name''}} flag as ''lpadmin'' shown above. With the {{ic|-l}} flag, it lists the options. The {{ic|-d}} flag sets the default printer with the argument {{ic|''queue_name''}}. The {{ic|-o}} flag sets options to a value: \n\n $ lpoptions -p HP_DESKJET_940C -o PageSize=A4\n $ lpoptions -p HP_DESKJET_940C -o cupsIPPSupplies=true -o Duplex=DuplexNoTumble\n\n==== cups* ====\n\nThe ''cupsaccept'', ''cupsdisable'', ''cupsenable'' and ''cupsreject'' utilities do as they are called. Respectively: setting the printer to accept jobs, disabling a printer, activating a printer, setting the printer to reject all incoming tasks. \n\nAs an example of their usage, we will cleanly remove a printer: \n\n # cupsreject ''queue_name''\n # cupsdisable ''queue_name''\n # lpadmin -x ''queue_name''\n\n==== ink ====\n\n[[Install]] {{AUR|ink}} to view the ink levels. \n\n{{Note|See [http://libinklevel.sourceforge.net/index.html#supported list of supported printers].}}\n\nAdd your user to the additional {{ic|lp}} [[user group]], log out and log in again.\n\nFor usage information, run {{ic|ink}} without options.\n\n=== Web interface ===\n\nThe CUPS server can be fully administered through the web interface, available on http://localhost:631/.\n\n{{Note|If an HTTPS connection to CUPS is used, it ''may'' take a very long time before the interface appears the first time it is accessed. This is because the first request triggers the generation of SSL certificates which can be a time-consuming job.}}\n\nTo perform administrative tasks from the web interface, authentication is required; see [[#Permissions]].\n\n;Add a queue\nGo to the '''Administration''' page. \n\n;Modify existing queues\nGo to the '''Printers''' page, and select a queue to modify.\n\n;Test a queue\nGo to the '''Printers''' page, and select a queue.\n\n=== GUI applications ===\n\nIf your user does not have sufficient privileges to administer CUPS, the applications will request the root password when they start. To give users administrative privileges without needing root access, see [[#Configuration]].\n\n* {{App|Deepin Print Manager|Printer configuration interface for Deepin desktop.|https://github.com/linuxdeepin/dde-printer|{{Pkg|deepin-printer}}}}\n* {{App|GtkLP|GTK interface for CUPS.|https://gtklp.sirtobi.com/index.shtml|{{AUR|gtklp}}}}\n* {{App|print-manager|Tool for managing print jobs and printers ([[KDE]]).|https://invent.kde.org/utilities/print-manager|{{Pkg|print-manager}}}}\n* {{App|system-config-printer|GTK printer configuration tool and status applet.|https://github.com/OpenPrinting/system-config-printer|{{Pkg|system-config-printer}}}}\n\n== Configuration ==\n\nThe CUPS server configuration is located in {{ic|/etc/cups/cupsd.conf}} and {{ic|/etc/cups/cups-files.conf}} (see {{man|5|cupsd.conf}} and {{man|5|cups-files.conf}}). After editing either file, [[restart]] {{ic|cups.service}} to apply any changes. The default configuration is sufficient for most users.\n\n=== Permissions ===\n\n==== Groups ====\n\n[[User group]]s with printer administration privileges are defined in {{ic|SystemGroup}} in the {{ic|/etc/cups/cups-files.conf}}. The {{ic|sys}} and {{ic|root}} and {{ic|wheel}} groups are used by default.\n\nCUPS helper programs are run as the {{ic|cups}} user and group. This allows the helper programs to access printer devices and read configuration files in {{ic|/etc/cups/}}, which are owned by the {{ic|cups}} group.\n\n{{Note|Prior to {{Pkg|cups}} 2.2.6-2, the {{ic|lp}} group [https://github.com/archlinux/svntogit-packages/commit/a209bf21797a239c7ddb4614f0266ba1e5238622 was used instead]. After the upgrade, the files in {{ic|/etc/cups}} should be owned by the {{ic|cups}} group and {{ic|User 209}} and {{ic|Group 209}} set in {{ic|/etc/cups/cups-files.conf}}.}}\n\n==== Allowing admin authentication through PolicyKit ====\n\n[[PolicyKit]] can be configured to allow users to configure printers using a GUI without the admin password.\n\n{{Note|You may need to install {{Pkg|cups-pk-helper}} for working this rules.}}\n\nHere is an example that allows members of the wheel [[user group]] to administer printers without a password:\n\n{{hc|/etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules|2=\npolkit.addRule(function(action, subject) { \n    if (action.id == \"org.opensuse.cupspkhelper.mechanism.all-edit\" && \n        subject.isInGroup(\"wheel\")){ \n        return polkit.Result.YES; \n    } \n});\n}}\n\n=== Default paper size ===\n\n{{Pkg|cups}} is built with {{Pkg|libpaper}} support and libpaper defaults to the [[Wikipedia:Letter (paper size)|Letter]] paper size (called {{ic|PageSize}} in {{ic|lpoptions}}). To avoid having to change the paper size for each print queue you add, [[textedit|edit]] {{ic|/etc/papersize}} and set your system default paper size. See {{man|5|papersize}}.\n\n=== Log files ===\n\nBy default, all logs are sent to files in {{ic|/var/log/cups/}}. By changing the values of the {{ic|AccessLog}}, {{ic|ErrorLog}}, and {{ic|PageLog}} directives in {{ic|/etc/cups/cups-files.conf}} to {{ic|syslog}}, CUPS can be made to log to the [[systemd journal]] instead. See [[Fedora:Changes/CupsJournalLogging]] for information on the original proposed change.\n\n=== cups-browsed ===\n\n{{Out of date|{{ic|cups-browsed.service}} is not required to discover printers advertised over DNS-SD, that is done by {{ic|cups.service}}. The service is only required to discover printers on an LDAP server and those using the legacy CUPS protocol (CUPS servers \u2264 1.5).}}\n\nCUPS can use [[Avahi]] browsing to discover unknown shared printers in your network. This can be useful in large setups where the server is unknown. To use this feature, set up [[Avahi#Hostname resolution|.local hostname resolution]], and start both {{ic|avahi-daemon.service}} and {{ic|cups-browsed.service}}. Jobs are sent directly to the printer without any processing so the created queues may not work, however driverless printers such as those supporting [https://www.pwg.org/ipp/everywhere.html IPP Everywhere] or [[Wikipedia:AirPrint|AirPrint]] should work out of the box.\n\n{{Note|1=<nowiki/>\n* Searching for network printers [https://bbs.archlinux.org/viewtopic.php?pid=1720219#p1720219 may significantly increase the time it takes for your computer to boot].\n* {{ic|cups-browsed.service}} is only needed to dynamically add and remove printers as they appear and disappear from a network. It is not required if you simply want to add a an DNS-SD/mDNS supporting network printer to CUPS.\n}}\n\n=== Print servers and remote administration ===\n\nSee [[CUPS/Printer sharing]] and [[CUPS/Printer sharing#Remote administration]].\n\n=== Without a local CUPS server ===\n\nCUPS can be configured to directly connect to remote printer servers instead of running a local print server. This requires [[install]]ation of the {{Pkg|libcups}} package. Some applications will still require the {{Pkg|cups}} package for printing.\n\n{{Note|Accessing remote printers without a local CUPS server is not recommended by the developers. [https://lists.cups.org/pipermail/cups/2015-October/027229.html]}}\n\nTo use a remote CUPS server, set the {{ic|CUPS_SERVER}} [[environment variable]] to {{ic|printerserver.mydomain:port}}. For instance, if you want to use a different print server for a single [[Firefox]] instance (substitute {{ic|printserver.mydomain:port}} with your print server name/port):\n\n $ CUPS_SERVER=printserver.mydomain:port firefox\n\nTo make this configuration permanent create configuration file {{ic|/etc/cups/client.conf}} and add a hostname of the remote CUPS server to it:\n\n ServerName server\n\nYou can also specify a custom port:\n\n ServerName server:port\n\nSee [https://www.cups.org/doc/sharing.html#AUTO_IPP] for details.\n\n== Troubleshooting ==\n\nSee [[CUPS/Troubleshooting]].\n\n== See also ==\n\n* [http://localhost:631/help Official CUPS documentation], ''locally installed''\n* [[Wikipedia:CUPS]]\n* [https://wiki.linuxfoundation.org/openprinting/start OpenPrinting homepage]\n* [https://en.opensuse.org/Concepts_printing OpenSuSE Concepts printing guide - explains the full printing workflow]\n* [https://en.opensuse.org/SDB:CUPS_in_a_Nutshell OpenSuSE CUPS in a Nutshell - a quick CUPS overview]\n* [[Gentoo:Printing]]\n* [[debian:Printing|Debian's Printing portal - detailed technical guides]]\n* [[debian:SystemPrinting|Debian's printing overview - a basic view of the CUPS printing system]]\n* [https://lists.linuxfoundation.org/pipermail/printing-architecture/ CUPS mailing list]\n* [https://lists.cups.org/mailman/listinfo/cups CUPS mailing list (Apple fork)]\n* [https://github.com/OpenPrinting/cups/issues CUPS issues tracker]\n* [https://github.com/apple/cups/issues CUPS issues tracker (Apple fork)]"
                    }
                ]
            },
            "1068": {
                "pageid": 1068,
                "ns": 0,
                "title": "Adding Firefox Search Engines As User",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "#REDIRECT [[Firefox#Adding search engines]]"
                    }
                ]
            },
            "1167": {
                "pageid": 1167,
                "ns": 0,
                "title": "Browser plugins",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Web browser]]\n[[de:Browser Plugins]]\n[[ja:\u30d6\u30e9\u30a6\u30b6\u30d7\u30e9\u30b0\u30a4\u30f3]]\n[[zh-hans:Browser Plugins]]\n{{Related articles start}}\n{{Related|Browser extensions}}\n{{Related articles end}}\n\nThere are two types of browser plugins, based on the plugin API they use:\n\n* Netscape plugin API ([[Wikipedia:NPAPI|NPAPI]]): these plugins work in some smaller browsers ([[Firefox]] and [[Chromium]] '''no longer''' support these plugins).\n* Pepper plugin API ([[Wikipedia:PPAPI|PPAPI]]): these plugins work in some smaller browsers ([[Chromium]] '''no longer''' supports these plugins).\n\n== Flash players ==\n\n=== Adobe Flash Player ===\n\n{{Warning|Adobe Flash Player support ended on 31 December 2020. As a result, the plugins are no longer supported in recent browser. Additionally, the project will no longer receive any bug fixes or security updates. [https://www.adobe.com/products/flashplayer/end-of-life.html]}}\n\nAn older standalone version can be [[install]]ed with the {{AUR|flashplayer-standalone}} package. This package predates the hard coded end-of-life clock being inserted in Flash Player and therefore continues to work.\n\n=== Lightspark ===\n\n[https://lightspark.github.io/ Lightspark] is another attempt to provide a free alternative to Adobe Flash aimed at supporting newer Flash formats. Lightspark has the ability to fall back on Gnash for old content, which enables users to install both and enjoy wider coverage. Although it is still very much in development, it supports some [https://github.com/lightspark/lightspark/wiki/Status-of-Lightspark-support#support-for-various-websites-using-flash popular sites].\n\nLightspark can be [[install]]ed with the {{AUR|lightspark}} or {{AUR|lightspark-git}} package.\n\n=== Ruffle ===\n\n[https://ruffle.rs/ Ruffle] is a Flash Player emulator written in [[Rust]]. It runs natively as a standalone application, and on all modern browsers through the use of [[Wikipedia:WebAssembly|WebAssembly]]. While still being under active development, decent ActionScript 1.0/2.0 support is in place and improving; ActionScript 3.0 support is in early stages.\n\nRuffle can be [[install]]ed with one of the {{AUR|ruffle-git}} or {{AUR|ruffle-nightly-bin}} packages.\n\n=== Clean Flash ===\n\n{{Warning|Adobe Flash Player support ended on 31 December 2020. As a result, the project no longer receives any bug fixes or security updates. [https://www.adobe.com/products/flashplayer/end-of-life.html]}}\n\n[https://github.com/darktohka/clean-flash-builds Clean Flash] is built using the [https://github.com/darktohka/FlashPatch FlashPatch] utility. It bypasses the January 12th, 2021 killswitch that prevents you from playing any Flash content.\n\nClean Flash is supposed to be used with browsers that support Flash. Currently, [https://classic.waterfox.net Waterfox Classic], [https://www.palemoon.org Pale Moon] and [http://kmeleonbrowser.org K-Meleon] are known to still support Flash.\n\n== Java (IcedTea) ==\n\n{{Note|Both Java plugins are NPAPI-only.}}\n\nTo enable [[Java]] support in your browser, you have two options: the open-source [[Wikipedia:OpenJDK|OpenJDK]] (recommended) or Oracle's proprietary version. For details about why OpenJDK is recommended see [https://lists.archlinux.org/archives/list/arch-general@lists.archlinux.org/thread/HDP44IALPZYBOSJERSXIAHAORDVRNLWB/].\n\nTo use OpenJDK, you have to install the [[Wikipedia:IcedTea|IcedTea]] browser plugin, {{Pkg|icedtea-web}}.\n\nIf you want to use Oracle's JRE, install the {{AUR|jre}} package.\n\n== Multimedia playback ==\n\nMany browsers support the [[GStreamer]] framework to play multimedia inside HTML5 {{ic|<audio>}} and {{ic|<video>}} elements. Check the optional dependencies of the browser package (or of the web engine, e.g. {{Pkg|webkit2gtk}} or {{AUR|qt5-webkit}}) to see if GStreamer is supported. See [[GStreamer#Installation]] for the description of each plugin.\n\nFor media formats that are not natively supported by your browser (e.g. most browsers do not play ''.mkv'' files), the following plugins are available:\n\n* {{App|VLC Plugin|NPAPI plugin that uses VLC as backend.|https://code.videolan.org/videolan/npapi-vlc|{{AUR|npapi-vlc}}}}\n\n== MozPlugger ==\n\n{{warning|MozPlugger is not maintained. The final release was in 2014.}}\n\n[https://web.archive.org/web/20190405220309/http://mozplugger.mozdev.org/ MozPlugger] is a NPAPI plugin which can show many types of multimedia inside your browser. To accomplish this, it uses external programs such as MPlayer, xine, Evince, OpenOffice, TiMidity, etc.\n\nMozPlugger can be installed with the {{AUR|mozplugger}} package.\n\nTo modify or add applications to be used by MozPlugger just modify the {{ic|/etc/mozpluggerrc}} file. For a more complete list of MozPlugger options see {{man|7|mozplugger|url=https://www.freebsd.org/cgi/man.cgi?query=mozplugger}}.\n\n=== PDF viewers ===\n\nFind the lines containing {{ic|pdf}} in the {{ic|/etc/mozpluggerrc}} file and modify the corresponding line after {{ic|GV()}} as below:\n\n repeat noisy swallow(''pdf_reader'') fill: ''pdf_reader'' \"$file\"\n\nWhen using Firefox, you may need to change 2 values in {{ic|about:config}}:\n\n* Change {{ic|pdfjs.disabled}}'s value to ''true'';\n* Change {{ic|plugin.disable_full_page_plugin_for_types}}'s value to an empty value.\n\nThen restart Firefox to use the plugin.\n\n=== Use LibreOffice instead of OpenOffice ===\n\nFor example, MozPlugger uses OpenOffice by default to open {{ic|doc}} files. To change it to use LibreOffice instead, look for the OpenOffice section:\n{{hc|/etc/mozpluggerrc|\n...\n### OpenOffice\ndefine([OO],[swallow(VCLSalFrame) fill: ooffice2.0 -nologo -norestore -view $1 \"$file\"\n    swallow(VCLSalFrame) fill: ooffice -nologo -norestore -view $1 \"$file\"\n    swallow(VCLSalFrame) fill: soffice -nologo $1 \"$file\"])\n...\n}}\nand add LibreOffice at the beginning of the list:\n{{hc|/etc/mozpluggerrc|\n...\n### LibreOffice/OpenOffice\ndefine([OO],[swallow(VCLSalFrame) fill: libreoffice --nologo --norestore --view $1 \"$file\"\n    swallow(VCLSalFrame) fill: ooffice2.0 -nologo -norestore -view $1 \"$file\"\n    swallow(VCLSalFrame) fill: ooffice -nologo -norestore -view $1 \"$file\"\n    swallow(VCLSalFrame) fill: soffice -nologo $1 \"$file\"])\n...\n}}\n{{Note|Be sure to also choose LibreOffice as your preferred application to open {{ic|doc}} files.}}\n\n=== Open cpp files in Kate ===\n\nAs another simple example, if you want to open {{ic|cpp}} files with your favorite text editor (we will use Kate) to get syntax highlighting, just add a new section to your {{ic|mozpluggerrc}} file:\n{{hc|/etc/mozpluggerrc|\ntext/x-c++:cpp:C++ Source File\ntext/x-c++:hpp:C++ Header File\n    repeat noisy swallow(kate) fill: kate -b \"$file\"\n}}\n\n=== Use mpv instead of MPlayer ===\n\nTo change the default of MPlayer so that [[mpv]] is used instead, change the appropriate lines such that:\n{{hc|1=/etc/mozpluggerrc|2=\n...\n### MPlayer\n\n#define(MP_CMD,[mplayer -really-quiet -nojoystick -nofs -zoom -vo xv,x11 -ao esd,alsa,oss,arts,null -osdlevel 0 $1 </dev/null])\ndefine(MP_CMD,[mpv -really-quiet $1 </dev/null])\n\n#define(MP_EMBED,[embed noisy ignore_errors: MP_CMD(-xy $width -wid $window $1)])\ndefine(MP_EMBED,[embed noisy ignore_errors: MP_CMD(--autofit=$width -wid $window $1)])\n\n#define(MP_NOEMBED,[noembed noisy ignore_errors maxaspect swallow(MPlayer): MP_CMD($1)])\ndefine(MP_NOEMBED,[noembed noisy ignore_errors maxaspect swallow(mpv): MP_CMD($1)])\n\n...\n\n#define(MP_AUDIO,[mplayer -quiet -nojoystick $1 </dev/null])\ndefine(MP_AUDIO,[mpv -really-quiet $1 </dev/null])\n\n#define(MP_AUDIO_STREAM,[controls stream noisy ignore_errors: mplayer -quiet -nojoystick $1 \"$file\" </dev/null])\ndefine(MP_AUDIO_STREAM,[controls stream noisy ignore_errors: mpv -really-quiet $1 \"$file\" </dev/null])\n...\n}}"
                    }
                ]
            },
            "1168": {
                "pageid": 1168,
                "ns": 0,
                "title": "Firefox/Tweaks",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Web browser]]\n[[ja:Firefox \u8a2d\u5b9a]]\n{{Related articles start}}\n{{Related|Firefox}}\n{{Related|Browser plugins}}\n{{Related|Firefox/Profile on RAM}}\n{{Related|Firefox/Privacy}}\n{{Related articles end}}\n\n{{Merge|Firefox#Tips and tricks|Also overlaps with [[Firefox#Configuration]]; deciding if some particular topic should be here or on the main page is arbitrary. The \"tweaks\" are the backbone of the content related to Firefox, so they should be directly on the main page. The troubleshooting section can be split into a subpage if the result is deemed too long.}}\n\nThis page contains advanced Firefox configuration options and performance tweaks.\n\n== Performance ==\n\nImproving Firefox's performance is divided into parameters that can be inputted while running Firefox or otherwise modifying its configuration as intended by the developers, and advanced procedures that involve foreign programs or scripts.\n\n{{Note|Listed options may only be available for the latest version of Firefox.}}\n\nThis section contains advanced Firefox options for performance tweaking. For additional information see [http://kb.mozillazine.org/Category:Tweaking_preferences these MozillaZine articles].\n\n=== Change Performance settings ===\n\nFirefox automatically uses settings based on the computer's hardware specifications [https://support.mozilla.org/en-US/kb/performance-settings].\n\nAdjusting these settings can be done in Preferences or by changing the {{ic|dom.ipc.processCount}} value to {{ic|1-8}} and {{ic|browser.preferences.defaultPerformanceSettings.enabled}} to {{ic|false}} manually in {{ic|about:config}}.\n\nHowever you may want to manually adjust this setting to increase performance even further or decrease memory usage on low-end devices.\n\nIn this case the '''Content process limit''' for the current [[user]] has been increased to ''4'':\n\n{{hc|$ ps -e {{!}} grep 'Web Content'|\n13991 tty1     00:00:04 Web Content\n14027 tty1     00:00:09 Web Content\n14031 tty1     00:00:20 Web Content\n14040 tty1     00:00:26 Web Content\n}}\n\n=== WebRender ===\n\nWebRender is a high-performance, GPU-accelerated 2D rendering engine written in Rust. It is the compositor that powers Firefox and the [[Wikipedia:Servo (software)|Servo]] browser engine project. As of Firefox 93, it is enabled by default for all users and uses hardware rendering by default if the hardware it is running on [https://searchfox.org/mozilla-central/rev/2b3f6e5bf3ed0f13a08d0efbafeca57df6616ffa/gfx/webrender_bindings/WebRenderAPI.cpp#141 supports at least OpenGL 3.0 or OpenGL ES 3.0 (as of 2021-04)] and [https://searchfox.org/mozilla-central/source/widget/gtk/GfxInfo.cpp#680 meets minimum driver requirements]. If your system does not meet these requirements it will fallback to software rendering using [https://bugzilla.mozilla.org/show_bug.cgi?id=1601053 Software Webrender]. \n\nIf you are experiencing rendering issues with up-to-date drivers on your machine, you can force-enable Software Webrender by setting the {{ic|gfx.webrender.software}} preference to {{ic|true}} in {{ic|about:config}}.\n\n{{Warning|WebRender hardware rendering is disabled on many GPUs and drivers due to [https://github.com/servo/webrender/wiki/Driver-issues critical issues with stability, rendering output and performance]. If it is disabled on your hardware, forcing hardware rendering is not recommended.}}\n\n=== Stop urlclassifier3.sqlite from being created again ===\n\n{{Out of date|This advice seems not need anymore. ({{ic|urlclassifier*}} files do not exist as of Firefox 64+.)}}\n\nRemoving all {{ic|urlclassifier*}} files can prevent the use of megabytes of storage in your firefox profile. If you remove all the {{ic|urlclassifier*}} files, you may find out that {{ic|urlclassifier3.sqlite}} keeps growing again after a certain time. Here is a simple solution to avoid it for now and ever.\n\n $ cd ~/.mozilla/firefox/<profile_dir>\n $ echo \"\" > urlclassifier3.sqlite\n $ chmod 400 urlclassifier3.sqlite\n\nThis effectively makes the file empty and then read-only so Firefox cannot write to it anymore.\n\n=== Turn off the disk cache ===\n\nEvery object loaded (html page, jpeg image, css stylesheet, gif banner) is saved in the Firefox cache for future use without the need to download it again. It is estimated that only a fraction of these objects will be reused, usually about 30%. This is because of very short object expiration time, updates or simply user behavior (loading new pages instead of returning to the ones already visited). The Firefox cache is divided into memory and disk cache and the latter results in frequent disk writes: newly loaded objects are written to memory and older objects are removed.\n\nAn alternative approach is to use {{Ic|about:config}} settings:\n\n* Set {{Ic|browser.cache.disk.enable}} to {{ic|false}}\n* Verify that {{Ic|browser.cache.memory.enable}} is set to {{ic|true}}, more information about this option can be found in the [http://kb.mozillazine.org/Browser.cache.memory.enable browser.cache.memory Mozilla article]\n* Add the entry (''right click > new > integer'') {{Ic|browser.cache.memory.capacity}} and set it to the amount of KB you want to spare, or to {{ic|-1}} for [http://kb.mozillazine.org/Browser.cache.memory.capacity#-1 automatic] cache size selection (skipping this step has the same effect as setting the value to {{ic|-1}})\n** The \"automatic\" size selection is based on a decade-old table that only contains settings for systems at or below 8GB of system memory.  The following formula very closely approximates this table, and can be used to set the Firefox cache more dynamically:  {{ic|41297 - (41606 / (1 + ((RAM / 1.16) ^ 0.75)))}}, where {{ic|RAM}} is in GB and the result is in KB.\n\nThis method has some drawbacks:\n\n* The content of currently browsed webpages is lost if the browser crashes or after a reboot, this can be avoided using [[anything-sync-daemon]] or any similar periodically-syncing script so that cache gets copied over to the drive on a regular basis\n* The settings need to be configured for each user individually\n\n=== Move disk cache to RAM ===\n\nAn alternative is to move the \"disk\" cache to a RAM disk, giving you a solution in between the two above. The cache will now be preserved between Firefox runs (including Firefox crash recovery), but will be discarded upon reboot (including OS crash).\n\nTo do this, go to {{Ic|about:config}} and set {{Ic|browser.cache.disk.parent_directory}} to {{ic|/run/user/''UID''/firefox}}, where {{ic|''UID''}} is your user's ID which can be obtained by running {{ic|id -u}}.\n\nOpen {{Ic|about:cache}} to verify the new disk cache location.\n\n=== Longer interval between session information record ===\n\nFirefox stores the current session status (opened urls, cookies, history and form data) to the disk on a regular basis. It is used to recover a previous session in case of crash.\nThe default setting is to save the session every 15 seconds, resulting in frequent disk access. \n\nTo increase the save interval to 10 minutes (600000 milliseconds) for example, change in {{ic|about:config}} the setting of {{ic|browser.sessionstore.interval}} to {{ic|600000}}\n\nTo disable completely this feature, change {{ic|browser.sessionstore.resume_from_crash}} to {{ic|false}}.\n\n=== Defragment the profile's SQLite databases ===\n\n{{Warning|This procedure may damage the databases in such a way that sessions are not saved properly.}}\n\nFirefox keeps bookmarks, history, passwords in SQLite databases. SQLite databases become fragmented over time and empty spaces appear all around. But, since there are no managing processes checking and optimizing the database, these factors eventually result in a performance hit. A good way to improve start-up and some other bookmarks and history related tasks is to defragment and trim unused space from these databases.\n\nYou can use {{Pkg|profile-cleaner}} to do this, while Firefox is '''not''' running:\n\n{| class=\"wikitable\"\n|+ profile-cleaner usage example:\n! SQLite database || Size Before || Size After || % change\n|- \n|urlclassifier3.sqlite|| 37 M || 30 M || 19 %\n|-\n|places.sqlite || 16 M || 2.4 M || 85 %\n|-\n|}\n\nFirefox provides a tool to defragment and optimize the places database, which is the source of most slowdowns and profile corruptions. To access this tool, open the {{ic|about:support}} page, search for {{ic|Places Database}} and click the {{ic|Verify Integrity}} button.\n\n=== Cache the entire profile into RAM via tmpfs ===\n\nIf the system has memory to spare, {{ic|tmpfs}} can be used to [[Firefox/Profile on RAM|cache the entire profile directory]], which might result in increased Firefox responsiveness.\n\n=== Disable Pocket ===\n\nIf you do not use the Pocket-service, you may want to disable it by setting {{ic|extensions.pocket.enabled}} to ''false'' in {{ic|about:config}}.\n\n== Appearance ==\n\n=== Fonts ===\n\nSee the main article: [[Font configuration]]\n\n==== Configure the DPI value ====\n\nModifying the following value can help improve the way fonts looks in Firefox if the system's DPI is below 96.  Firefox, by default, uses 96 and only uses the system's DPI if it is a higher value. To force the system's DPI regardless of its value, type {{ic|about:config}} into the address bar and set {{ic|layout.css.dpi}} to '''0'''.\n\nNote that the above method only affects the Firefox user interface's DPI settings. Web page contents still use a DPI value of 96, which may look ugly or, in the case of high-resolution displays, may be rendered too small to read. A solution is to change {{ic|layout.css.devPixelsPerPx}} to system's DPI divided by 96. For example, if your system's DPI is 144, then the value to add is 144/96 = 1.5. Changing {{ic|layout.css.devPixelsPerPx}} to '''1.5''' makes web page contents use a DPI of 144, which looks much better.\n\nIf this results in fonts that are undesirably large in releases after Firefox 103, change {{ic|browser.display.os-zoom-behavior}} to zero. Then, type {{ic|ui.textScaleFactor}} into the {{ic|about:config}} search bar, select the circle next to 'number,' click the plus button to add the setting key, and edit its value to 100 times your {{ic|layout.css.devPixelsPerPx}} value. For example, if that was set to 1.25, {{ic|ui.textScaleFactor}} should be set to 125.\n\nSee also [[HiDPI#Firefox]] for information about HiDPI displays and  [https://www.sven.de/dpi/] for calculating the DPI.\n\n==== Default font settings from Microsoft Windows ====\n\nBelow are the default font preferences when Firefox is installed in Microsoft Windows. Many web sites use the Microsoft fonts.\n\n{{bc|\nProportional: Serif Size (pixels): 16\nSerif: Times New Roman\nSans-serif: Arial\nMonospace: Courier New Size (pixels): 13\n}}\n\n=== General user interface CSS settings ===\n\nFirefox's user interface can be modified by editing the {{ic|userChrome.css}} and {{ic|userContent.css}} files in {{ic|~/.mozilla/firefox/<profile_dir>/chrome/}} (''profile_dir'' is of the form ''hash.name'', where the ''hash'' is an 8 character, seemingly random string and the profile ''name'' is usually ''default''). You can find out the exact name by typing {{ic|about:support}} in the URL bar, and searching for the {{ic|Profile Directory}} field under the {{ic|Application Basics}} section as described in the [https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data#w_how-do-i-find-my-profile Firefox documentation].\n\n{{Note|\n* The {{ic|chrome/}} folder and {{ic|userChrome.css}}/{{ic|userContent.css}} files may not necessarily exist, so they may need to be created.\n* {{ic|toolkit.legacyUserProfileCustomizations.stylesheets}} must be enabled in {{ic|about:config}}.\n}}\n\nThis section only deals with the {{ic|userChrome.css}} file which modifies Firefox's user interface, and not web pages.\n\n==== Change the interface font ====\n\nThe setting effectively overrides the global GTK font preferences, and does not affect webpages, only the user interface itself:\n\n{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|\n* {\n    font-family: \"FONT_NAME\";\n}\n}}\n\n==== Hide button icons ====\n\nEnables text-only buttons:\n{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|\n.button-box .button-icon {\n    display: none;\n}\n}}\n\n==== Hiding various tab buttons ====\n\nThese settings hide the arrows that appear to the horizontal edges of the tab bar, the button that toggles the \"all tabs\" drop-down list, and the plus sign button that creates a new tab.\n\n{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|<nowiki>\n/* Tab bar */\n\n.tabbrowser-strip *[class^=\"scrollbutton\"] {\n    /* Hide tab scroll buttons */\n    display: none;\n}\n\n.tabbrowser-strip *[class^=\"tabs-alltabs\"] {\n    /* Hide tab drop-down list */\n    display: none;\n}\n\n.tabbrowser-strip *[class^=\"tabs-newtab-button\"] {\n    /* Hide new-tab button */\n    display: none;\n}</nowiki>\n}}\n\n==== Horizontal tabs ====\n\nTo place the tab bar horizontally stacked along the sides of the browser window:\n\n{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|\n/* Display the tabbar on the left */\n#content > tabbox {\n    -moz-box-orient: horizontal;\n}\n\n.tabbrowser-strip {\n    -moz-box-orient: vertical;\n    /*\n     * You can set this to -moz-scrollbars-vertical instead,\n     * but then the scrollbar will *always* be visible.  this way\n     * there is never a scrollbar, so it behaves like the tab bar\n     * normally does\n     */\n     overflow: -moz-scrollbars-none;\n}\n\n.tabbrowser-tabs {\n    -moz-box-orient: horizontal;\n    min-width: 20ex;   /* You may want to increase this value */\n    -mox-box-pack: start;\n    -moz-box-align: start;\n}\n\n.tabbrowser-tabs > hbox {\n    -moz-box-orient: vertical;\n    -moz-box-align: stretch;\n    -moz-box-pack: start;\n}\n\n.tabbrowser-tabs > hbox > tab {\n    -moz-box-align: start;\n    -moz-box-orient: horizontal;\n}\n}}\n\n==== Hide title bar and window border ====\n\nTo replace the title bar with the tab bar, enable {{ic|browser.tabs.drawInTitlebar}} in {{ic|about:config}}.\n\nOr go to \"Menu\", then \"Customize\" and then at the bottom-left corner find checkbox named \"Title Bar\". Uncheck it. If the checkbox is missing, make sure the {{ic|XDG_CURRENT_DESKTOP}} environment variable is correctly set and/or the {{ic|MOZ_GTK_TITLEBAR_DECORATION}} environment variable is set to \"client\".\n\n===== Hide only title bar in KDE =====\n\nWith the setting above, Firefox adds in KDE the minimize/macimize/close buttons to the tab bar, but the title bar will still be there.\n\nIt can be removed by right-clicking on it, then ''More Actions > Configure Special Application Settings''. Add a new property there for \"No titlebar and frame\" and be sure to not forget activating it, \"Yes\" must be chosen. (As you have now no titlebar anymore there, to later change the rule, you can go to ''System Settings > Window Management > Window Rules''.)\n\nHowever, that will also remove the frame, it is basically impossible to change the window size. An alternative is go to ''System settings > Application Style > Window Decorations'', choose \"Breeze\" and change its settings. In the last tab, ''Window-Specific Overrides'', add a new one. Use the button ''Detect Window Properties'' to get the name. There is a button ''Detect Window Properties''. Alternatively, if you want to set this override for all windows, not just Firefox, you can enter a dot (.) in the regex field. Afterwards, set the ''Decoration Options'' to hide the title bar only.\n\n==== Auto-hide Bookmarks Toolbar ====\n\n{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|\n#PersonalToolbar {\n    visibility: collapse !important;\n}\n\n#navigator-toolbox:hover > #PersonalToolbar {\n    visibility: visible !important;\n}\n}}\n\n==== Remove sidebar width restrictions ====\n\n{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|\n/* remove maximum/minimum  width restriction of sidebar */\n#sidebar {\n    max-width: none !important;\n    min-width: 0px !important;\n}\n}}\n\n==== Unreadable input fields with dark GTK themes ====\n\nWhen using a dark [[GTK]] theme, one might encounter Internet pages with unreadable input and text fields (e.g. text input field with white text on white background, or black text on dark background). This can happen because the site only sets either background or text color, and Firefox takes the other one from the theme. To prevent Firefox from using theme's colors and dark themes in web pages respectively confirm {{ic|browser.display.use_system_colors}} and {{ic|widget.content.allow-gtk-dark-theme}} are set to {{ic|false}} in {{ic|about:config}}.\n\nOtherwise, if the previous modification did not solve the issue, it is possible to launch Firefox with a light GTK theme by adding a new string in {{ic|about:config}} named {{ic|widget.content.gtk-theme-override}} and setting it to a light theme like {{ic|Breeze:light}} or {{ic|Adwaita:light}}.\n\n===== Override input field color with CSS =====\n\n{{Note|1=Related bug has been resolved starting with 68. [https://bugzilla.mozilla.org/show_bug.cgi?id=1527048#c44]}}\n\nThe extension [https://addons.mozilla.org/firefox/addon/text-contrast-for-dark-themes/ Text Contrast for Dark Themes] sets the other color as needed to maintain contrast.\n\nAlternatively set the standard colors explicitly for all web pages in {{ic|userContent.css}} or using the [https://addons.mozilla.org/firefox/addon/styl-us/ stylus add-on].\nThe style sheet is usually located in your profile folder (visit {{ic|about:profiles}} for the path) in {{ic|chrome/userContent.css}}, if not you can create it there.\n\nThe following sets input fields to standard black text / white background; both can be overridden by the displayed site, so that colors are seen as intended:\n\n{{Note|If you want {{ic|urlbar}} and {{ic|searchbar}} to be {{ic|white}} remove the two first {{ic|:not}} css selectors.}}\n\n{{bc|1=\ninput:not(.urlbar-input):not(.textbox-input):not(.form-control):not([type='checkbox']):not([type='radio']), textarea, select {\n    -moz-appearance: none !important;\n    background-color: white;\n    color: black;\n}\n\n#downloads-indicator-counter {\n    color: white;\n}\n}}\n\n===== Change the GTK theme =====\n\nTo force Firefox to use a light theme (e.g. Adwaita) for both web content and UI, see [[GTK#Themes]].\n\n===== Change the GTK theme for content process only =====\n\nTo force Firefox to use a light theme (e.g. Adwaita) for web content only:\n\n# Open {{ic|about:config}} in the address bar.\n# Create a new {{ic|widget.content.gtk-theme-override}} string type entry ({{ic|right mouse button}} ''> New > String'').\n# Set the value to the light theme to use for rendering purposes (e.g. {{ic|Adwaita:light}}).\n# Restart Firefox.\n\n=== Web content CSS settings ===\n\nThis section deals with the {{ic|userContent.css}} file in which you can add custom CSS rules for web content. Changes to this file will take effect once the browser is restarted.\n\nThis file can be used for making small fixes or to apply personal styles to frequently visited websites. Custom stylesheets for popular websites are available from sources such as [https://userstyles.org/ userstyles.org]. You can install an add-on such as [https://addons.mozilla.org/firefox/addon/superusercontent/ superUserContent]{{Dead link|2020|03|29|status=404}} to manage themes. This add-on creates the directory {{ic|chrome/userContent.css.d}} and applies changes to the CSS files therein when the page is refreshed.\n\n==== Import other CSS files ====\n\n{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userContent.css|\n@import url(\"./imports/some_file.css\");\n}}\n\n==== Block certain parts of a domain ====\n\n{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userContent.css|\n@-moz-document domain(example.com) {\n    div#header {\n        background-image: none !important;\n    } \n}\n}}\n\n==== Add [pdf] after links to PDF files ====\n\n{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userContent.css|<nowiki>\n/* add '[pdf]' next to links to PDF files */\na[href$=\".pdf\"]:after {\n    font-size: smaller;\n    content: \" [pdf]\";\n}</nowiki>\n}}\n\n==== Block ads ====\n\nSee [http://www.floppymoose.com floppymoose.com] for an example of how to use {{ic|userContent.css}} as a basic ad-blocker.\n\n== Mouse and keyboard ==\n\n=== Mouse wheel scroll speed ===\n\nTo modify the default values (i.e. speed-up) of the mouse wheel scroll speed, go to {{ic|about:config}} and search for {{ic|mousewheel.acceleration}}. This will show the available options, modifying the following:\n\n* Set {{ic|mousewheel.acceleration.start}} to {{ic|1}}.\n* Set {{ic|mousewheel.acceleration.factor}} to the desired number ({{ic|10}} to {{ic|20}} are common values).\n\nAlternatively, to use system values (as how scrolling works in Chromium), set {{ic|mousewheel.system_scroll_override.enabled}} to {{ic|false}}.\n\nMozilla's recommendation for increasing the mousewheel scroll speed is to:\n\n* Set {{ic|mousewheel.default.delta_multiplier_y}} between {{ic|200}} and {{ic|500}} (default: {{ic|100}})\n\n=== Pixel-perfect trackpad scrolling ===\n\nTo enable one-to-one trackpad scrolling (as can be witnessed with GTK3 applications like Nautilus), set the {{ic|1=MOZ_USE_XINPUT2=1}} [[environment variable]] before starting Firefox.\n\nIf scrolling is undesirably jerky, try enabling Firefox's ''Use smooth scrolling'' option under ''Preferences > General > Browsing''.\n\n=== Enable touchscreen gestures ===\n\nMake sure {{ic|dom.w3c_touch_events.enabled}} is either set to 1 (''enabled'') or 2 (''default, auto-detect'').\n\nAdd {{ic|1=MOZ_USE_XINPUT2 DEFAULT=1}} to {{ic|/etc/security/pam_env.conf}} and then logout or reboot your system for the changes to take effect.\n\nOn some devices, it may be necessary to disable xinput's touchscreen gestures by running the following:\n $ xsetwacom --set ''device'' Gesture off\n\n=== Mouse click on URL bar's behavior ===\n\nIn older versions of Firefox it was possible to tweak the behavior of the address bar in {{ic|about:config}}, but this has been [https://bugzilla.mozilla.org/show_bug.cgi?id=333714 removed in March 2020].\n\nIn order to for example disable the behavior that selects the contents of the address bar on first click, or to allow to double click the URL to select it in full, see user contributed scripts such as https://github.com/SebastianSimon/firefox-omni-tweaks\n\n=== Smooth scrolling ===\n\nIn order to get smooth physics-based scrolling in Firefox, the {{ic|general.smoothScroll.msdPhysics}} configurations can be changed to emulate a snappier behaviour like in other web browsers. For a quicker configuration, append the following to {{ic|~/.mozilla/firefox/''your-profile''/user.js}} (requires restart):\n\n user_pref(\"general.smoothScroll.lines.durationMaxMS\", 125);\n user_pref(\"general.smoothScroll.lines.durationMinMS\", 125);\n user_pref(\"general.smoothScroll.mouseWheel.durationMaxMS\", 200);\n user_pref(\"general.smoothScroll.mouseWheel.durationMinMS\", 100);\n user_pref(\"general.smoothScroll.msdPhysics.enabled\", true);\n user_pref(\"general.smoothScroll.other.durationMaxMS\", 125);\n user_pref(\"general.smoothScroll.other.durationMinMS\", 125);\n user_pref(\"general.smoothScroll.pages.durationMaxMS\", 125);\n user_pref(\"general.smoothScroll.pages.durationMinMS\", 125);\n\nAdditionally the mouse wheel scroll settings have to be changed to react in a smooth way as well:\n\n user_pref(\"mousewheel.min_line_scroll_amount\", 30);\n user_pref(\"mousewheel.system_scroll_override_on_root_content.enabled\", true);\n user_pref(\"mousewheel.system_scroll_override_on_root_content.horizontal.factor\", 175);\n user_pref(\"mousewheel.system_scroll_override_on_root_content.vertical.factor\", 175);\n user_pref(\"toolkit.scrollbox.horizontalScrollDistance\", 6);\n user_pref(\"toolkit.scrollbox.verticalScrollDistance\", 2);\n\nIf you have troubles on machines with varying performance, try modifying the {{ic|mousewheel.min_line_scroll_amount}} until it feels snappy enough.\n\nFor a more advanced configuration which modifies the mass-spring-damper parameters, see [https://github.com/AveYo/fox/blob/main/Natural%20Smooth%20Scrolling%20for%20user.js AveYo's natural smooth scrolling configuration].\n\n{{Note|On [[Wayland]], any of these settings may be rendered completely ineffective by {{ic|apz.gtk.kinetic_scroll.enabled}}, which defaults to {{ic|true}}. If you find that these tweaks do not work, try setting this value to {{ic|false}}.}}\n\n=== Set backspace's behavior ===\n\nSee [[Firefox#Backspace does not work as the 'Back' button]].\n\n=== Disable middle mouse button clipboard paste ===\n\nSee [[Firefox#Middle-click behavior]].\n\n=== Emacs key bindings ===\n\nTo have Emacs/Readline-like key bindings active in text fields, see [[GTK#Emacs key bindings]].\n\n== Miscellaneous ==\n\n=== Force-enable hardware video decoding ===\n\nAlthough {{ic|media.hardware-video-decoding.enabled}} is enabled by default, one may need to force-enable hardware video decoding by setting {{ic|media.hardware-video-decoding.force-enabled}} to {{ic|true}}.\n\n=== Remove full screen warning ===\n\nWarning about video displayed in full screen mode (\"\u2026 is now fullscreen\") can be disabled by setting {{ic|full-screen-api.warning.timeout}} to {{ic|0}} in {{ic|about:config}}.\n\n=== Change the order of search engines in the Firefox Search Bar ===\n\nTo change the order search engines are displayed in:\n\n* Open the drop-down list of search engines and click ''Manage Search Engines...'' entry.\n* Highlight the engine you want to move and use ''Move Up'' or ''Move Down'' to move it. Alternatively, you can use drag-and-drop.\n\n=== \"I'm Feeling Lucky\" mode ===\n\nSome search engines have a \"feeling lucky\" feature. For example, Google has \"I'm Feeling Lucky\", and DuckDuckGo has \"I'm Feeling Ducky\".\n\nTo activate them, search for {{ic|keyword.url}} in {{ic|about:config}} and modify its value (if any) to the URL of the search engine. \n\nFor Google, set it to:\n\n{{bc|<nowiki>https://www.google.com/search?btnI=I%27m+Feeling+Lucky&q=</nowiki>}}\n\nFor DuckDuckGo, set it to:\n\n{{bc|<nowiki>https://duckduckgo.com/?q=\\</nowiki>}}\n\n=== Secure DNS with DNSSEC validator ===\n\nYou can enable [[DNSSEC]] support for safer browsing.\n\n=== Secure DNS with DNS over HTTPS ===\n\nSee [[Domain name resolution#Application-level DNS]].\n\n=== Adding magnet protocol association ===\n\nIn {{ic|about:config}} set {{ic|network.protocol-handler.expose.magnet}} to {{ic|false}}. In case it does not exist, it needs to be created, right click on a free area and select ''New > Boolean'', input {{ic|network.protocol-handler.expose.magnet}} and set it to {{ic|false}}.\n\nThe next time you open a magnet link, you will be prompted with a ''Launch Application'' dialogue. From there simply select your chosen [[List of applications/Internet#BitTorrent clients|BitTorrent client]]. This technique can also be used with other protocols: {{ic|network.protocol-handler.expose.<protocol>}}.\n\n=== Prevent accidental closing ===\n\nThere are different approaches to handle this:\n\nThis behavior can be disabled with {{ic|browser.quitShortcut.disabled}} property set to {{ic|true}} in {{ic|about:config}}\n\nAn alternative is to add a rule in your window manager configuration file. For example in [[Openbox]] add:\n  <keybind key=\"C-q\">\n    <action name=\"Execute\">\n      <execute>false</execute>\n    </action>\n  </keybind>\nin the ''<keyboard>'' section of your {{ic|~/.config/openbox/rc.xml}} file.\n\n{{Note|This will be effective for every application used under a graphic server.}}\n\nThe [https://addons.mozilla.org/firefox/addon/disable-ctrl-q-and-cmd-q/ Disable Ctrl-Q and Cmd-Q] extension can be installed to prevent unwanted closing of the browser.\n\n{{Note|1=This extension no longer works on Linux due to a [https://bugzilla.mozilla.org/show_bug.cgi?id=1325692 bug].}}\n\n=== Jerky or choppy scrolling ===\n\nScrolling in Firefox can feel \"jerky\" or \"choppy\". A post on [http://forums.mozillazine.org/viewtopic.php?f=8&t=2749475/ MozillaZine] gives settings that work on Gentoo, but reportedly work on Arch Linux as well: \n\n# Set  {{ic|mousewheel.min_line_scroll_amount}} to 40\n# Set  {{ic|general.smoothScroll}} and {{ic|general.smoothScroll.pages}} to '''false'''\n# Set  {{ic|image.mem.min_discard_timeout_ms}} to something really large such as 2100000000 but no more than 2140000000.  Above that number Firefox will not accept your entry and complain with the error code:  \"The text you entered is not a number.\" \n# Set  {{ic|image.mem.max_decoded_image_kb}} to at least 512K\n\nNow scrolling should flow smoothly.\n\n=== Run Firefox inside an nspawn container ===\n\nSee [[systemd-nspawn#Run Firefox]].\n\n=== Disable WebRTC audio post processing ===\n\nIf you are using the PulseAudio [[PulseAudio#Microphone echo/noise cancellation]], you probably do not want Firefox to do additional audio post processing.\n\nTo disable audio post processing, change the value of the following preferences to {{ic|false}}:\n\n* {{ic|media.getusermedia.aec_enabled}} (Acoustic Echo Cancellation)\n* {{ic|media.getusermedia.agc_enabled}} (Automatic Gain Control)\n* {{ic|media.getusermedia.noise_enabled}} (Noise suppression)\n* {{ic|media.getusermedia.hpf_enabled}} (High-pass filter)\n\n=== Fido U2F authentication ===\n\nFirefox supports the Fido [[U2F]] authentication protocol. Install {{pkg|libfido2}} for the required udev rules.\n\n=== Get ALSA working back ===\n\nAs long as Arch keeps building Firefox with ''ac_add_options --enable-alsa'', then Firefox works fine without pulse on the system, without needing any special configurations, and without apulse (unless using pulse on the system and wanting Firefox to avoid using it).  It used to be one had to allow ioctl syscalls, blocked by default by Firefox sandboxing, and required by ALSA setting {{ic|security.sandbox.content.syscall_whitelist}} in {{ic|about:config}}, to the right ioctl syscall number, which is ''16'' for x86-64 and ''54'' for x86-32, but not anymore.  For reference, see:\n\n[https://www.linuxquestions.org/questions/slackware-14/firefox-in-current-alsa-sound-4175622116]\n[https://codelab.wordpress.com/2017/12/11/firefox-drops-alsa-apulse-to-the-rescue]\n\n=== Force-enable WebGL ===\n\nOn some platforms WebGL may be [[MozillaWiki:Blocklisting/Blocked Graphics Drivers|disabled]] even when the user desires to use it. To force-enable WebGL set {{ic|webgl.force-enabled}} to {{ic|true}}, to also force-enable WebGL anti-aliasing, set {{ic|webgl.msaa-force}} to {{ic|true}}.\n\nIf you get an error similar to this:\n{{bc|libGL error: MESA-LOADER: failed to retrieve device information\nlibGL error: image driver extension not found\nlibGL error: failed to load driver: i915\nlibGL error: MESA-LOADER: failed to retrieve device information\n...}}\nthen you can try the solution explained in Firefox bug 1480755 [https://bugzilla.mozilla.org/show_bug.cgi?id=1480755]:\n\nSet {{ic|security.sandbox.content.read_path_whitelist}} to {{ic|/sys/}}\n\n=== Enable Recommended by Pocket ===\n\nIf you do not see \"Recommended by Pocket\" (''Preferences > Home > Firefox Home Content'' - between \"Top Sites\" and \"Highlights\"), you can enable it by setting {{ic|browser.newtabpage.activity-stream.feeds.'''section'''.topstories}} and {{ic|browser.newtabpage.activity-stream.feeds.'''system'''.topstories}} to {{ic|true}} in {{ic|about:config}}. Although the option will still not show in Preferences, newly opened tabs/windows (if set to {{ic|Firefox Home}}) should now display Pocket recommendations.\n\n=== Prevent the download panel from opening automatically ===\n\nAs of Firefox 98, the download panel (with ongoing/recent downloads) always opens whenever a download starts.\n\nYou can disable this behavior by setting the {{ic|browser.download.alwaysOpenPanel}} preference to {{ic|false}} in {{ic|about:config}}.\n\n== See also ==\n\n* [http://kb.mozillazine.org/Knowledge_Base MozillaZine Wiki]\n* [http://kb.mozillazine.org/About:config_entries about:config entries MozillaZine article]\n* [https://linuxtidbits.wordpress.com/2009/08/01/better-fox-cat-and-weasel/ Firefox touch-ups that might be desired]"
                    }
                ]
            },
            "1196": {
                "pageid": 1196,
                "ns": 0,
                "title": "KDE",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:KDE]]\n[[de:KDE]]\n[[es:KDE]]\n[[fa:KDE]]\n[[it:KDE]]\n[[ja:KDE]]\n[[pt:KDE]]\n[[ru:KDE]]\n[[zh-hans:KDE]]\n{{Related articles start}}\n{{Related|Desktop environment}}\n{{Related|Display manager}}\n{{Related|Window manager}}\n{{Related|Qt}}\n{{Related|SDDM}}\n{{Related|Dolphin}}\n{{Related|KDE Wallet}}\n{{Related|KDevelop}}\n{{Related|Trinity}}\n{{Related|Uniform look for Qt and GTK applications}}\n{{Related|Official repositories#kde-unstable}}\n{{Related articles end}}\n\nKDE is a software project currently comprising a [[desktop environment]] known as Plasma, a collection of libraries and frameworks (KDE Frameworks) and several applications (KDE Applications) as well. KDE upstream has a well maintained [https://userbase.kde.org/ UserBase wiki]. Detailed information about most KDE applications can be found there.\n\n== Installation ==\n\n=== Plasma ===\n\nBefore installing Plasma, make sure you have a working [[Xorg]] installation on your system.\n\n[[Install]] the {{Pkg|plasma-meta}} meta-package or the {{Grp|plasma}} group. For differences between {{Pkg|plasma-meta}} and {{Grp|plasma}} reference [[Package group]]. Alternatively, for a more minimal Plasma installation, install the {{Pkg|plasma-desktop}} package.\n\nTo enable support for [[Wayland]] in Plasma, also [[install]] the {{Pkg|plasma-wayland-session}} package. If you are an [[NVIDIA]] user, also install {{Pkg|egl-wayland}} if it is not already installed, and if the session does not start with the proprietary {{Pkg|nvidia}} driver, also enable the [[NVIDIA#DRM kernel mode setting|DRM kernel mode setting]]. If that does not work, too, check the instructions on the [https://community.kde.org/Plasma/Wayland/Nvidia KDE wiki].\n\n=== KDE applications ===\n\nTo install the full set of KDE Applications, install the {{Grp|kde-applications}} group or the {{Pkg|kde-applications-meta}} meta-package. If you only want KDE applications for a certain category such as games or education, install the relevant dependency of {{Pkg|kde-applications-meta}}. Note that this will only install applications, it will not install any version of Plasma.\n\n=== Unstable releases ===\n\nSee [[Official repositories#kde-unstable]] for beta releases.\n\n== Starting Plasma ==\n\n{{Note|Although it is possible to launch Plasma under [[Wayland]], there are some missing features and known problems. See [https://community.kde.org/Plasma/Wayland_Showstoppers Wayland Showstoppers] for a list of issues and the [https://phabricator.kde.org/project/board/99/ Plasma on Wayland workboard] for the current state of development. Use [[Xorg]] for the most complete and stable experience.}}\n\nPlasma can be started either using a [[display manager]], or from the console.\n\n=== Using a display manager ===\n\n{{Tip|The preferred [[display manager]] is [[SDDM]].}}\n\n* Select ''Plasma (X11)'' to launch a new session in [[Xorg]].\n* Select ''Plasma (Wayland)'' to launch a new session in [[Wayland]].\n\n=== From the console ===\n\n* To start Plasma with [[xinit|xinit/startx]], append {{ic|1=export DESKTOP_SESSION=plasma}} and {{ic|exec startplasma-x11}} to your {{ic|.xinitrc}} file. If you want to start Xorg at login, please see [[Start X at login]].\n* To start a Plasma on Wayland session from a console, run {{ic|1=startplasma-wayland}}[https://community.kde.org/KWin/Wayland#Start_a_Plasma_session_on_Wayland]. Manually starting a dbus-session through {{ic|1=dbus-run-session}} should not be needed [https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/128].\n\n== Configuration ==\n\nMost settings for KDE applications are stored in {{ic|~/.config/}}. However, configuring KDE is primarily done through the '''System Settings''' application. It can be started from a terminal by executing {{ic|systemsettings}}.\n\n=== Personalization ===\n\n==== Plasma desktop ====\n\n===== Themes =====\n\nThere are different types of KDE themes, varying by scope of what they modify:\n\n* [https://store.kde.org/browse?cat=121 Global themes], comprehensive packages that can include Plasma themes, application styles, colors, fonts, icons, cursors, splash screens, SDDM themes, and Konsole color schemes.\n* [https://store.kde.org/browse?cat=104 Plasma themes], modifying the look of Plasma panels and widgets. These often have a recommended accompanying Kvantum or Aurorae theme to complete the look.\n* [https://store.kde.org/browse?cat=421 Application styles], modifying the look of programs.\n* Application styles that use [[Uniform look for Qt and GTK applications#Theme engines|theme engines]] such as [[Uniform look for Qt and GTK applications#Kvantum|Kvantum]], [[Qt#Styles in Qt 5|QtCurve]] [https://store.kde.org/browse?cat=119], [https://github.com/DexterMagnific/QSvgStyle QSvgStyle] [https://store.kde.org/browse?cat=622], and [https://store.kde.org/p/1167275/ Aurorae].\n* [[#Icon themes]], providing icons for applications, files, and actions.\n\nFor easy system-wide installation and updating, some themes are available in both the [https://archlinux.org/packages/?sort=&q=kde+theme&maintainer=&flagged= official repositories] and the [https://aur.archlinux.org/packages?O=0&K=kde+theme AUR].\n\nGlobal themes can also be installed through ''System Settings > Appearance > Global Theme > Get New Global Themes...''.\n\n====== GTK application appearance ======\n\n{{Tip|For Qt and GTK theme consistency, see [[Uniform look for Qt and GTK applications]].}}\n\nThe recommended theme for a pleasant appearance in GTK applications is {{Pkg|breeze-gtk}}, a GTK theme designed to mimic the appearance of Plasma's Breeze theme.\nInstall {{Pkg|kde-gtk-config}} (part of the {{grp|plasma}} group) and select {{ic|Breeze}} as the GTK theme in ''System Settings > Appearance > Application Style > Configure GNOME/GTK Application Style...''.\n\n{{Out of date|The Plasma GTKd background service overwrites GTK settings on Plasma startup.}}\n\nIn some themes, tooltips in GTK applications have white text on white backgrounds making it difficult to read. To change the colors in GTK2 applications, find the section for tooltips in the {{ic|.gtkrc-2.0}} file and change it. For GTK3 application two files need to be changed, {{ic|gtk.css}} and {{ic|settings.ini}}.\n\nSome GTK2 programs like {{AUR|vuescan-bin}} still look hardly usable due to invisible checkboxes with the Breeze or Adwaita skin in a Plasma session. To workaround this, install and select e.g. the Numix-Frost-Light skin of the {{AUR|numix-frost-themes}} under ''System Settings > Appearance > Application Style > Configure GNOME/GTK Application Style... > GTK theme''. Numix-Frost-Light looks similar to Breeze.\n\n===== Faces =====\n\nPlasma and [[SDDM]] will both use images found at {{ic|/var/lib/AccountsService/icons/}} as users' avatars. To configure with a graphical interface, you can use ''System Settings > Users'', which may first need to be [[install]]ed (see the {{Pkg|plasma-desktop}} package). The file corresponding to your username can be removed to restore the default avatar.\n\n===== Widgets =====\n\n[https://store.kde.org/browse?cat=418 Plasmoids] are widgets for plasma desktop shell designed to enhance the functionality of desktop, they can be found on the [https://aur.archlinux.org/packages?K=plasma5-applet AUR].\n\nPlasmoid scripts can also be installed by right-clicking onto a panel or the desktop and choosing ''Add Widgets > Get New Widgets... > Download New Plasma Widgets''. This will present a front-end for https://store.kde.org/ that allows you to install, uninstall, or update third-party Plasmoid scripts with just one click.\n\n===== Sound applet in the system tray =====\n\n[[Install]] {{Pkg|plasma-pa}} or {{Pkg|kmix}} (start Kmix from the Application Launcher). {{Pkg|plasma-pa}} is now installed by default with {{Grp|plasma}}, no further configuration needed.\n\n{{Note|1=To adjust the [https://bugs.kde.org/show_bug.cgi?id=313579#c28 step size of volume increments/decrements], add e.g. {{ic|1=VolumePercentageStep=1}} in the {{ic|[Global]}} section of {{ic|~/.config/kmixrc}}.}}\n\n===== Disable panel shadow =====\n\nAs the Plasma panel is on top of other windows, its shadow is drawn over them. [https://bbs.archlinux.org/viewtopic.php?pid=1228394#p1228394] To disable this behaviour without impacting other shadows, [[install]] {{Pkg|xorg-xprop}} and run:\n\n $ xprop -remove _KDE_NET_WM_SHADOW\n\nthen select the panel with the plus-sized cursor. [https://forum.kde.org/viewtopic.php?f=285&t=121592] For automation, install {{Pkg|xorg-xwininfo}} and create the following script:\n\n{{hc|/usr/local/bin/kde-no-shadow|<nowiki>\n#!/bin/bash\nfor WID in $(xwininfo -root -tree | sed '/\"Plasma\": (\"plasmashell\" \"plasmashell\")/!d; s/^  *\\([^ ]*\\) .*/\\1/g'); do\n   xprop -id $WID -remove _KDE_NET_WM_SHADOW\ndone\n</nowiki>}}\n\nMake the script [[executable]].\n\nThe script can be run on login with ''Add Script'' in ''Autostart'':\n\n $ kcmshell5 autostart\n\n===== Display scaling / High DPI displays =====\n\nSee [[HiDPI#KDE Plasma]].\n\n==== Window decorations ====\n\n[https://store.kde.org/browse/cat/114/ Window decorations] can be found in the [https://aur.archlinux.org/packages?K=kde+window+decoration AUR].\n\nThey can be changed in ''System Settings > Appearance > Window Decorations'', there you can also directly download and install more themes with one click.\n\n==== Icon themes ====\n\nIcon themes can be installed and changed on ''System Settings > Appearance > Icons''.\n\n{{Note|Although all modern Linux desktops share the same icon theme format, desktops like [[GNOME]] use fewer icons (esp. in menus and toolbars). Themes developed for such desktops usually lack icons required by Plasma and KDE applications. It is recommended to install Plasma compatible icon themes instead.}}\n\n{{Tip|Since some icon themes do not inherit from the default icon theme, some icons may be missing. \nTo inherit from the Breeze, add {{ic|breeze}} to the {{ic|1=Inherits=}} array in {{ic|/usr/share/icon/''theme-name''/index.theme}}, for example: {{ic|1=Inherits=breeze,hicolor}}. You need to reapply this patch after every update to the icon theme, consider using [[Pacman hooks]] to automate the process.}}\n\n==== Space efficiency ====\n\nThe Plasma Netbook shell has been dropped from Plasma 5, see the following [https://forum.kde.org/viewtopic.php?f=289&t=126631&p=335947&hilit=plasma+netbook#p335899 KDE forum post]. However, you can achieve something similar by editing the file {{ic|~/.config/kwinrc}} adding {{ic|1=BorderlessMaximizedWindows=true}} in the {{ic|[Windows]}} section.\n\n==== Thumbnail generation ====\n\nTo allow thumbnail generation for media or document files on the desktop and in Dolphin, install {{Pkg|kdegraphics-thumbnailers}} and {{Pkg|ffmpegthumbs}}.\n\nThen enable the thumbnail categories for the desktop via ''right click'' on the ''desktop background'' > ''Configure Desktop and Wallpaper...'' > ''Icons'' > ''Configure Preview Plugins...''.\n\nIn ''Dolphin'', navigate to ''Configure > Configure Dolphin... > General > Previews''.\n\n=== Night Color ===\n\nPlasma provides a [[Redshift]]-like feature (working on both [[Xorg]] and [[Wayland]]) called Night Color. It makes the colors on the screen warmer to reduce eye strain at the time of your choosing. It can be enabled in ''System Settings > Display and Monitor > Night Color''.\n\n{{Tip|To have a handy System Tray on/off button for night color you need the {{Pkg|kdeplasma-addons}} and then you can add it.}}\n\n=== Printing ===\n\n{{Tip|Use the [[CUPS]] web interface for faster configuration. Printers configured in this way can be used in KDE applications. }}\n\nYou can also configure printers in ''System Settings > Printers''. To use this method, you must first install the following packages {{Pkg|print-manager}}, {{Pkg|cups}}, {{Pkg|system-config-printer}}. See [[CUPS#Configuration]].\n\n=== Samba/Windows support ===\n\nIf you want to have access to Windows services, install [[Samba]] (package {{Pkg|samba}}).\n\nThe Dolphin share functionality requires the package {{Pkg|kdenetwork-filesharing}} and usershares, which the stock {{ic|smb.conf}} does not have enabled. Instructions to add them are in [[Samba#Enable Usershares]], after which sharing in Dolphin should work out of the box after restarting Samba.\n\n{{Tip|Use {{ic|*}} (asterisk) for both username and password when accessing a Windows share without authentication in Dolphin's prompt.}}\n\nUnlike GTK file browsers which utilize GVfs also for the launched program, opening files from Samba shares in Dolphin via KIO makes Plasma copy the whole file to the local system first with most programs (VLC is an exception).\nTo workaround this, you can use a GTK based file browser like {{Pkg|thunar}} with {{Pkg|gvfs}} and {{Pkg|gvfs-smb}} (and {{Pkg|gnome-keyring}} for saving login credentials) to access SMB shares in a more able way.\n\nAnother possibility is to [[mount]] a Samba share via {{Pkg|cifs-utils}} to make it look to Plasma like if the SMB share was just a normal local folder and thus can be accessed normally.\nSee [[Samba#Manual mounting]] and [[Samba#Automatic mounting]].\n\nAn GUI solution is available with {{AUR|samba-mounter-git}}, which offers basically the same functionality via an easy to use option located at ''System Settings'' > ''Network Drivers''. However, it might break with new KDE Plasma versions.\n\n=== KDE Desktop activities ===\n\n[https://userbase.kde.org/Plasma#Activities KDE Desktop Activities] are special workspaces where you can select specific settings for each activity that apply only when you are using said activity.\n\n=== Power management ===\n\n[[Install]] {{Pkg|powerdevil}} for an integrated Plasma power managing service. This service offers additional power saving features, monitor brightness control (if supported) and battery reporting including peripheral devices.\n\n{{Tip|\n* An alternative package without [[NetworkManager]] and [[Bluez]] dependencies is provided by {{AUR|powerdevil-light}}.\n* An alternative package with [[Wikipedia:DDC/CI|DDC/CI]]-enabled [[backlight]] control for external monitors is provided by {{AUR|powerdevil-ddcutil}}.\n* Integration with [https://pointieststick.com/2021/07/23/this-week-in-kde-power-profiles-and-a-more-polished-kickoff/ power profiles] requires the [[power-profiles-daemon]] optional dependency.\n}}\n\n{{Accuracy|1=Regarding the note below, it might be that the problem is the logind setting ''LidSwitchIgnoreInhibited'' which defaults to ''yes''. [https://bbs.archlinux.org/viewtopic.php?pid=1649022#p1649022]}}\n\n{{Note|Power Devil may not [[Power management#Power managers|inhibit]] all logind settings (such as the lid close action for laptops). In these cases, the logind setting itself will need to be changed - see [[Power management#Power management with systemd]].}}\n\n=== Autostart ===\n\nPlasma can autostart applications and run scripts on startup and shutdown. To autostart an application, navigate to ''System Settings > Startup and Shutdown > Autostart'' and add the program or shell script of your choice. For applications, a ''.desktop'' file will be created, for login scripts, a ''.desktop'' file launching the script will be created.\n\n{{Note|\n* Programs can be autostarted on login only, whilst shell scripts can also be run on shutdown or even before Plasma itself starts.\n* Shell scripts will only be run if they are marked [[executable]].\n* Shell scripts previously placed in {{ic|~/.config/autostart-scripts/}} will get [https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/736 automatically migrated to .desktop files].\n}}\n\n* Place [[Desktop entries]] (i.e. ''.desktop'' files) in the appropriate [[XDG Autostart]] directory.\n* Place or symlink shell scripts in one of the following directories:\n** {{ic|~/.config/plasma-workspace/env/}}: for executing scripts at login before launching Plasma.\n** {{ic|~/.config/plasma-workspace/shutdown/}}: for executing scripts when Plasma exits.\n\nSee [https://docs.kde.org/trunk5/en/plasma-workspace/kcontrol/autostart/index.html official documentation].\n\n=== Phonon ===\n\nFrom [[Wikipedia:Phonon (software)|Wikipedia]]:\n\n:Phonon is the multimedia API provided by KDE and is the standard abstraction for handling multimedia streams within KDE software and also used by several Qt applications.\n\n:Phonon was originally created to allow KDE and Qt software to be independent of any single multimedia framework such as GStreamer or xine and to provide a stable API for a major version's lifetime.\n\nPhonon is being widely used within KDE, for both audio (e.g., the System notifications or KDE audio applications) and video (e.g., the [[Dolphin]] video thumbnails).\n\n==== Which backend should I choose? ====\n\nYou can choose between backends based on [[GStreamer]], [[VLC]], [[mpv]] and [[MPlayer]] \u2013 some available in versions for Qt4 applications and Qt5 applications ({{AUR|phonon-qt4-gstreamer}}, {{Pkg|phonon-qt5-gstreamer}} \u2013 {{AUR|phonon-qt4-vlc}}, {{Pkg|phonon-qt5-vlc}}, {{AUR|phonon-qt4-mplayer-git}}, {{AUR|phonon-qt5-mpv}}).\n\n[https://www.phoronix.com/scan.php?page=news_item&px=MTUwNDM Upstream prefers VLC] but prominent Linux distributions (Kubuntu and Fedora-KDE for example) prefer GStreamer because that allows them to easily leave out patented MPEG codecs from the default installation. Both backends have a slightly different [https://community.kde.org/Phonon/FeatureMatrix features set]. The Gstreamer backend has some optional codec dependency, install them as needed:\n\n* {{Pkg|gst-libav}} \u2014 Libav codecs.\n* {{Pkg|gst-plugins-good}} \u2014 PulseAudio support and additional codecs.\n* {{Pkg|gst-plugins-ugly}} \u2014 additional codecs.\n* {{Pkg|gst-plugins-bad}} \u2014 additional codecs.\n\n{{Note|1=<br>\n* Multiple backends can be installed at once and prioritized via the ''phononsettings'' application.\n* According to the [https://forum.kde.org/viewtopic.php?f=250&t=126476&p=335080 KDE forums], the VLC backend lacks support for [[wikipedia:ReplayGain|ReplayGain]].\n* If using the VLC backend, you may experience crashes every time Plasma wants to send you an audible warning and in quite a number of other cases as well [https://forum.kde.org/viewtopic.php?f=289&t=135956]. A possible fix is to rebuild the VLC plugins cache:\n{{bc|# /usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins}}\n}}\n\n=== Backup and restore ===\n\nKDE Plasma 5 stores personalized desktop settings as configuration files in the [[XDG Base Directory#Specification|XDG_CONFIG_HOME]] folder. Use the [https://github.com/shalva97/kde-configuration-files detail of configuration files] to select and choose a [https://www.addictivetips.com/ubuntu-linux-tips/backup-kde-plasma-5-desktop-linux/ method of backup and restore].\n\n=== systemd startup ===\n\nPlasma uses a [[systemd/User|systemd user]] instance to launch and manage all the Plasma services. This is the default startup method since Plasma 5.25, but can be [https://invent.kde.org/plasma/plasma-workspace/-/wikis/Plasma-and-the-systemd-boot disabled to use boot scripts instead] with the following command (however this may stop working in a future release):\n\n $ kwriteconfig5 --file startkderc --group General --key systemdBoot false\n\nMore details about the implementation can be read in [https://blog.davidedmundson.co.uk/blog/plasma-and-the-systemd-startup/ Edmundson's blog: plasma and the systemd startup].\n\n=== Spell checking ===\n\nKDE applications use {{Pkg|sonnet}} for spell checking. See its optional dependencies for the supported [[spell checker]]s.\n\nConfigure it in ''System Settings > Regional Settings > Spell Check''.\n\n=== Running kwin wayland on NVIDIA ===\n\nSee https://community.kde.org/Plasma/Wayland/Nvidia.\n\n== Applications ==\n\nThe KDE project provides a suite of applications that integrate with the Plasma desktop. See the {{Grp|kde-applications}} group for a full listing of the available applications. Also see [[:Category:KDE]] for related KDE application pages.\n\nAside from the programs provided in KDE Applications, there are many other applications available that can complement the Plasma desktop. Some of these are discussed below.\n\n=== System administration ===\n\n==== Terminate Xorg server through KDE System Settings ====\n\nNavigate to the submenu ''System Settings > Input Devices > Keyboard > Advanced (tab) > \"Key Sequence to kill the X server\"'' and ensure that the checkbox is ticked.\n\n==== KCM ====\n\nKCM stands for ''KC''onfig ''M''odule. KCMs can help you configure your system by providing interfaces in System Settings, or through the command line with ''kcmshell5''.\n\n* {{App|sddm-kcm|KDE Configuration Module for [[SDDM]].|https://invent.kde.org/plasma/sddm-kcm|{{Pkg|sddm-kcm}}}}\n* {{App|kde-gtk-config|GTK2 and GTK3 Configurator for KDE.|https://invent.kde.org/plasma/kde-gtk-config|{{Pkg|kde-gtk-config}}}}\n* {{App|System policies|Set of configuration modules which allows administrator to change [[PolicyKit]] settings.|https://invent.kde.org/system/polkit-kde-kcmodules-1|{{AUR|kcm-polkit-kde-git}}}}\n* {{App|wacom tablet|KDE GUI for the Wacom Linux Drivers.|https://www.linux-apps.com/p/1127862/|{{Pkg|kcm-wacomtablet}}}}\n* {{App|Kcmsystemd|systemd control module for KDE.|https://github.com/rthomsen/kcmsystemd|{{AUR|systemd-kcm}}}}\n\nMore KCMs can be found at [https://www.linux-apps.com/search/projectSearchText/kcm linux-apps.com].\n\n=== Desktop search ===\n\nKDE implements desktop search with a software called [[Baloo]], a file indexing and searching solution.\n\n=== Web browsers ===\n\nThe following web browsers can integrate with Plasma:\n\n* {{App|[[Wikipedia:Konqueror|Konqueror]]|Part of the KDE project, supports two rendering engines \u2013 KHTML and the [[Chromium]]-based Qt WebEngine.|https://konqueror.org/|{{Pkg|konqueror}}}}\n* {{App|[[Wikipedia:Falkon|Falkon]]|A Qt web browser with Plasma integration features, previously known as Qupzilla. It uses Qt WebEngine.|https://userbase.kde.org/Falkon/|{{Pkg|falkon}}}}\n* {{App|[[Chromium]]|Chromium and its proprietary variant Google Chrome have limited Plasma integration. [[KDE Wallet#KDE Wallet for Chrome and Chromium|They can use KWallet]] and KDE Open/Save windows.|https://www.chromium.org/|{{Pkg|chromium}}}}\n* {{App|[[Firefox]]|Firefox can be configured to better integrate with Plasma. See [[Firefox#KDE integration]] for details.|https://mozilla.org/firefox|{{Pkg|firefox}}}}\n\n{{Tip|Starting from Plasma 5.13, one can integrate [[Firefox]] or [[Chrome]] with Plasma: providing media playback control from the Plasma tray, download notifications and find open tabs in KRunner. [[Install]] {{pkg|plasma-browser-integration}} and the corresponding browser add-on. Chrome/Chromium support should already be included, for Firefox add-on see [[Firefox#KDE integration]].}}\n\n=== PIM ===\n\nKDE offers its own stack for [[Wikipedia:Personal information management|personal information management]] (PIM). This includes emails, contacts, calendar, etc. To install all the PIM packages, you could use the {{Grp|kde-pim}} package group or the {{Pkg|kde-pim-meta}} meta package.\n\n==== Akonadi ====\n\nAkonadi is a system meant to act as a local cache for PIM data, regardless of its origin, which can be then used by other applications. This includes the user's emails, contacts, calendars, events, journals, alarms, notes, and so on. Akonadi does not store any data by itself: the storage format depends on the nature of the data (for example, contacts may be stored in vCard format).\n\nInstall {{Pkg|akonadi}}. For additional addons, install {{Pkg|kdepim-addons}}.\n\n{{Note|If you wish to use a database engine other than [[MariaDB]], then when installing the {{Pkg|akonadi}} package, use the following command to skip installing the {{Pkg|mariadb}} dependencies:\n\n # pacman -S akonadi --assume-installed mariadb\n\nSee also {{Bug|32878}}.\n}}\n\n===== MySQL =====\n\nBy default Akonadi will use {{ic|/usr/bin/mysqld}} ([[MariaDB]] by default, see [[MySQL]] for alternative providers) to run a managed MySQL instance with the database stored in {{ic|~/.local/share/akonadi/db_data/}}.\n\n====== System-wide MySQL instance ======\n\nAkonadi supports using the system-wide [[MySQL]] for its database.[https://techbase.kde.org/KDE_PIM/Akonadi#Can_Akonadi_use_a_normal_MySQL_server_running_on_my_system.3F]\n\n{{Expansion|Add instructions.}}\n\n{{hc|~/.config/akonadi/akonadiserverrc|2=\n[%General]\nDriver=QMYSQL\n\n[QMYSQL]\nHost=\nName=akonadi_''username''\nOptions=\"UNIX_SOCKET=/run/mysqld/mysqld.sock\"\nStartServer=false\n}}\n\n===== PostgreSQL =====\n\nAkonadi supports either using the existing system-wide [[PostgreSQL]] instance, i.e. {{ic|postgresql.service}}, or running a PostgreSQL instance with user privileges and the database in {{ic|~/.local/share/akonadi/db_data/}}.\n\n====== Per-user PostgreSQL instance ======\n\n[[Install]] {{Pkg|postgresql}} and {{Pkg|postgresql-old-upgrade}}.\n\nEdit Akonadi configuration file so that it has the following contents:\n\n{{hc|~/.config/akonadi/akonadiserverrc|2=\n[%General]\nDriver=QPSQL\n}}\n\n{{Note|\n* When Akonadi starts, it will create the {{ic|[QPSQL]}} section and set the appropriate variables in it.\n* The database will be stored in {{ic|~/.local/share/akonadi/db_data/}}.\n}}\n\nStart Akonadi with {{ic|akonadictl start}}, and check its status: {{ic|akonadictl status}}.\n\n{{Note|\n* Starting with {{Pkg|akonadi}} 19.08.0-1 the PostgreSQL database cluster in {{ic|~/.local/share/akonadi/db_data/}} will get automatically upgraded when a major PostgreSQL version upgrade is detected.\n* For previous {{Pkg|akonadi}} versions major PostgreSQL version upgrades will require a manual database upgrade. Follow the [https://userbase.kde.org/Akonadi/Postgres_update update instructions on KDE UserBase Wiki]. Make sure to adjust the paths to PostgreSQL binaries to those used by {{Pkg|postgresql}} and {{Pkg|postgresql-old-upgrade}}, see [[PostgreSQL#Upgrading PostgreSQL]].\n}}\n\n====== System-wide PostgreSQL instance ======\n\nThis requires an already configured and running [[PostgreSQL]].\n\nCreate a PostgreSQL user account for your user:\n\n [postgres]$ createuser ''username''\n\nCreate a database for Akonadi:\n\n [postgres]$ createdb -O ''username'' -E UTF8 --locale=C -T template0 akonadi-''username''\n\nConfigure Akonadi to use the system-wide PostgreSQL:\n\n{{hc|~/.config/akonadi/akonadiserverrc|2=\n[%General]\nDriver=QPSQL\n\n[QPSQL]\nHost=/run/postgresql\nName=akonadi-''username''\nStartServer=false\n}}\n\n{{Note|Custom port, username and password can be specified with options {{ic|1=Port=}}, {{ic|1=User=}}, {{ic|1=Password=}} in the {{ic|[QPSQL]}} section.}}\n\nStart Akonadi with {{ic|akonadictl start}}, and check its status: {{ic|akonadictl status}}.\n\n===== SQLite =====\n\n{{Warning|Using the SQLite backend is not recommended and should be avoided.[https://invent.kde.org/pim/akonadi/-/blob/master/INSTALL#L37]}}\n\nTo use [[SQLite]], edit the Akonadi configuration file to match the configuration below:\n\n{{hc|~/.config/akonadi/akonadiserverrc|2=\n[%General]\nDriver=QSQLITE3\n}}\n\n{{Note|\n* When Akonadi starts, it will create the {{ic|[QSQLITE3]}} section and set the appropriate variables in it.\n* The database will be stored as {{ic|~/.local/share/akonadi/akonadi.db}}.\n}}\n\n===== Disabling Akonadi =====\n\nUsers who want to disable Akonadi would need to not start any KDE applications that rely on it. See this [https://userbase.kde.org/Akonadi#Disabling_the_Akonadi_subsystem section in the KDE userbase] for more information.\n\n=== KDE Telepathy ===\n\n[https://community.kde.org/KTp KDE Telepathy] is a project with the goal to closely integrate Instant Messaging with the KDE desktop. It utilizes the Telepathy framework as a backend and is intended to replace Kopete.\n\nTo install all Telepathy protocols, install the {{Grp|telepathy}} group.\nTo use the KDE Telepathy client, install the {{Pkg|telepathy-kde-meta}} package that includes all the packages contained in the {{Grp|telepathy-kde}} group.\n\n==== Use Telegram with KDE Telepathy ====\n\n{{Out of date|The ''telegram-purple'' project is [https://github.com/majn/telegram-purple#this-project-is-abandoned-see-instead-tdlib-purple abandoned]. See also [[Special:Diff/704779|Diff/704779]]. As mentioned in the previous links, {{AUR|telegram-tdlib-purple-git}} is its successor package.}}\n\n[[Telegram]] protocol is available using {{pkg|telepathy-haze}}, installing {{aur|telegram-purple}} or {{aur|telegram-purple-git}} and {{aur|telepathy-morse-git}}. The username is the Telegram account telephone number (complete with the national prefix {{ic|+''xx''}}, e.g. {{ic|+49}} for Germany).\n\nThe configuration through the GUI may be tricky: if the phone number is not accepted when configuring a new account in the KDE Telepathy client (with an error message complaining about an invalid parameter which prevents the account creation), insert it between single quotes and then remove the quotes manually from the configuration file ({{ic|~/.local/share/telepathy/mission-control/accounts.cfg}}) after the account creation (if the quotes are not removed after, an authentication error should rise).\n\n{{Note|The configuration file should be edited manually when KDE Telepathy is not running, e.g. when there is no KDE desktop session active, otherwise manual changes may be overwritten by the software.}}\n\n=== KDE Connect ===\n\n[https://community.kde.org/KDEConnect KDE Connect] provides several features to connect your [[Android]] or [[iOS]] phone with your Linux desktop:\n\n* Share files and URLs to/from KDE from/to any app, without wires.\n* Touchpad emulation: Use your phone screen as your computer's touchpad.\n* Notifications sync (4.3+): Read your Android notifications from the desktop.\n* Shared clipboard: copy and paste between your phone and your computer.\n* Multimedia remote control: Use your phone as a remote for Linux media players.\n* WiFi connection: no usb wire or bluetooth needed.\n* RSA Encryption: your information is safe.\n\nYou will need to install KDE Connect both on your computer and on your Android. For PC side, [[install]] {{Pkg|kdeconnect}} package. For Android side, install KDE Connect from [https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp Google Play] or from [https://f-droid.org/packages/org.kde.kdeconnect_tp/ F-Droid]. If you want to browse your phone's filesystem, you need to [[install]] {{Pkg|sshfs}} as well and configure filesystem exposes in your Android app. For iOS, install KDE Connect from the [https://apps.apple.com/app/kde-connect/id1580245991 App Store]. Not all features from the Android version are available on the iOS version.\n\nIt is possible to use KDE Connect even if you do not use the Plasma desktop. For desktop environments that use AppIndicators, such as Unity, install {{AUR|indicator-kdeconnect}} package as well. For GNOME users, better integration can be achieved by installing {{AUR|gnome-shell-extension-gsconnect}} instead of {{Pkg|kdeconnect}}. To start the KDE Connect daemon manually, execute {{ic|/usr/lib/kdeconnectd}}.\n\nIf you use a [[firewall]], you need to open UDP and TCP ports {{ic|1714}} through {{ic|1764}}.\n\nSometimes, KDE Connect will not detect a phone. You can restart the services by running {{ic|killall kdeconnectd}} and then opening kdeconnect in system settings or running {{ic|kdeconnect-cli --refresh}} followed by {{ic|kdeconnect-cli -l}}.\n\n== Tips and tricks ==\n\n=== Use a different window manager ===\n\nIt is possible to use a window manager other than KWin with Plasma. This allows you to combine the functionality of the KDE desktop with the utility of a [[tiling window manager]], which may be more fleshed out than KWin tiling scripts.\n\nThe component chooser settings in Plasma [https://github.com/KDE/plasma-desktop/commit/2f83a4434a888cd17b03af1f9925cbb054256ade no longer allows changing the window manager], but you are still able to swap KWin via other methods.\n\n==== Replacing KWin service ====\n\nSince KDE 5.25, [https://blog.davidedmundson.co.uk/blog/plasma-and-the-systemd-startup/ Plasma's systemd based startup] is enabled by default.\n\nTo replace KWin in this startup, you must first [[mask]] the {{ic|plasma-kwin_x11.service}} for the current user to prevent it from starting.\n\nThen, [[create]] a new systemd [[user unit]] to start your preferred WM [https://bugs.kde.org/show_bug.cgi?id=439481#c2]:\n\n{{hc|1=~/.config/systemd/user/plasma-custom-wm.service|2=\n[Install]\nWantedBy=plasma-workspace.target\n\n[Unit]\nDescription=Plasma Custom Window Manager\nBefore=plasma-workspace.target\n\n[Service]\nExecStart=''/path/to/other/wm''\nSlice=session.slice\nRestart=on-failure\n}}\n\nTo use it, do (as [[user unit]]s) a [[daemon-reload]], make sure you have [[mask]]ed {{ic|plasma-kwin_x11.service}} then [[enable]] the newly created {{ic|plasma-custom-wm.service}}.\n\n{{Note|When using i3 window manager with Plasma, it may be necessary to manually set dialogs to open in floating mode in order for them to correctly appear. For more information, see [[i3#Correct handling of floating dialogs]].}}\n\n==== Using script-based boot and KDEWM ====\n\nPlasma's script-based boot is used by disabling [[#systemd startup]]. If you have done so, you can change the window manager by setting the {{ic|KDEWM}} [[environment variable]] before Plasma is invoked. The instructions are available on the KDE UserBase Wiki\u2014[https://userbase.kde.org/Tutorials/Using_Other_Window_Managers_with_Plasma Tutorials/Using Other Window Managers with Plasma].\n\n==== KDE/Openbox session ====\n\nThe {{Pkg|openbox}} package provides a session for using KDE with [[Openbox]]. To make use of this session, select ''KDE/Openbox'' from the [[display manager]] menu.\n\nFor those starting the session manually, add the following line to your [[xinit]] configuration:\n\n{{hc|~/.xinitrc|\nexec openbox-kde-session\n}}\n\n==== Re-enabling compositing effects ====\n\nWhen replacing Kwin with a window manager which does not provide a Compositor (such as Openbox), any desktop compositing effects e.g. transparency will be lost. In this case, install and run a separate Composite manager to provide the effects such as [[Xcompmgr]] or [[picom]].\n\n=== KWin tiling window scripts ===\n\n[https://github.com/Bismuth-Forge/bismuth Bismuth] and [https://github.com/esjeon/krohnkite Kr\u00f6hnkite] are Kwin scripts that tiles windows automatically and lets you manage them via keyboard. Bismuth is more actively developed.\n\n=== Configuring monitor resolution / multiple monitors ===\n\nTo enable display resolution management and multiple monitors in Plasma, install {{Pkg|kscreen}}. This provides additional options to ''System Settings > Display and Monitor''.\n\n=== KWin-lowlatency ===\n\n{{Out of date|[https://github.com/tildearrow/kwin-lowlatency KWin-lowlatency] is currently (February 2022) unmaintained/abandoned and will not work with Plasma 5.24.}}\n\n[https://github.com/tildearrow/kwin-lowlatency KWin-lowlatency] is a attempt to reduce latency and stuttering in the popular KWin compositor, and is available as {{AUR|kwin-lowlatency}}.\n\n=== Configuring ICC profiles ===\n\nTo enable [[ICC profiles]] in Plasma, [[install]] {{Pkg|colord-kde}}. This provides additional options to ''System Settings > Color Corrections''.\n\nICC profiles can be imported using ''Add Profile''.\n\n=== Disable opening application launcher with Super key (Windows key) ===\n\nTo disable this feature you currently can run the following command:\n\n $ kwriteconfig5 --file kwinrc --group ModifierOnlyShortcuts --key Meta \"\"\n\n=== Disable bookmarks showing in application menu ===\n\nWith the Plasma Browser integration installed, KDE will show bookmarks in the application launcher.\n\nTo disable this feature, you can run the following commands:\n\n $ mkdir ~/.local/share/kservices5\n $ sed 's/EnabledByDefault=true$/EnabledByDefault=false/' /usr/share/kservices5/plasma-runner-bookmarks.desktop > ~/.local/share/kservices5/plasma-runner-bookmarks.desktop\n\n=== IBus Integration ===\n\n[[IBus]] is an [[Input method#Input method framework|input method framework]] and can be integrated into KDE. See [[IBus#Integration]] for details.\n\nUsing [[IBus]] may be required when using KDE on [[Wayland]] to offer accented characters and dead keys support [https://bugs.kde.org/show_bug.cgi?id=411729].\n\n=== Enable hotspot in plasma-nm ===\n\nSee [[NetworkManager#Sharing internet connection over Wi-Fi]].\n\n=== Restore previous saved session ===\n\nIf you have ''System Settings > Startup and Shutdown > Desktop Session > When logging in: Restore previous saved session'' (default) selected, ksmserver (KDE's session manager) will automatically save/load all open applications to/from {{ic|~/.config/ksmserverrc}} on logout/login.\n\n{{Note|Currently, native Wayland windows cannot be restored. See [https://community.kde.org/Plasma/Wayland_Showstoppers Wayland Showstoppers] for the current state of development.}}\n\n=== Receive local mail in KMail ===\n\nIf you have set up local mail delivery with a [[mail server]] that uses the [[Wikipedia:Maildir|Maildir]] format, you may want to receive this mail in KMail. To do so, you can re-use KMail's default receiving account \"Local Folders\" that stores mail in {{ic|~/.local/share/local-mail/}}.\n\nSymlink the {{ic|~/Maildir}} directory (where Maildir format mail is commonly delivered) to the Local Folders' inbox:\n\n $ ln -s .local/share/local-mail/inbox ~/Maildir\n\nAlternatively, add a new receiving account with the type ''Maildir'' and set {{ic|~/Maildir}} as its directory.\n\n=== Configure Plasma for all users ===\n\nEdit {{ic|config/main.xml}} files in the {{ic|/usr/share/plasma}}. For example, to configure the Application Launcher for all users, edit {{ic|/usr/share/plasma/plasmoids/org.kde.plasma.kickoff/contents/config/main.xml}}. To prevent the files from being overwritten with package updates, add the files to [[Pacman#Skip file from being upgraded|Pacman's NoUpgrade]]\n\n=== Disable hibernate ===\n\n{{Merge|Power management|This is not specific to KDE. Merge and then either leave this section as a stub linking to that one.}}\n\nProperly disable the hibernate feature and hide it from the menu with a Polkit policy rule.\n\n{{hc|/etc/polkit-1/rules.d/99-disable-hibernate.rules|<nowiki>\n// Disable hibernate for all users\npolkit.addRule(function(action, subject) {\n   if ((action.id == \"org.freedesktop.login1.hibernate\")) {\n      return polkit.Result.NO;\n   }\n});\npolkit.addRule(function(action, subject) {\n   if ((action.id == \"org.freedesktop.login1.hibernate-multiple-sessions\")) {\n      return polkit.Result.NO;\n   }\n});\n</nowiki>}}\n\nAlternatively, add the following lines to a file in {{ic|/etc/systemd/sleep.conf.d/}}:\n\n{{hc|/etc/systemd/sleep.conf.d/00-disable-hibernation.conf|2=\n[Sleep]\nAllowHibernation=no\nAllowSuspendThenHibernate=no\nAllowHybridSleep=no\n}}\n\n=== Using window rules ===\n\nKwin has the ability to specify rules for specific windows/applications. For example, you can force enable the window titlebar even if the application developer decided that there should not be one. You can set such rules as specific starting position, size, minimize state, keeping above/below others and so on.\n\nTo create a rule you can press {{ic|Alt+F3}} when the window of interest is in focus. Then, in ''More Actions > Configure special application/window settings'', you can set the desired property. A list of created rules is available from ''System Settings > Window Management > Window Rules''.\n\n=== Virtual Keyboard ===\n\nThere are no virtual keyboards installed by default. Install the appropriate keyboard from the [[List of applications/Utilities#On-screen_keyboards|list]], for example Maliit keyboard. Then enable it in System Settings.\n\n== Troubleshooting ==\n\n=== qt5ct and kvantum bugs after upgrade ===\n\n{{Out of date|This was added 2021-02-15 : the \"latest update\" is one year old, is this fixed ?}}\n\nLatest update might cause incompatible HiDPI scaling that made some interfaces becomes too big for your screen, some icons are missing or can not be displayed, and missing panels or widgets.\n\nTry to remove {{Pkg|qt5ct}} and {{Pkg|kvantum}} related package, then apply default global Plasma theme. If the problem persists, try clearing all your KDE configuration and reinstalling {{Grp|plasma}} to overwrite the configuration. Be sure to check HiDPI scaling in KDE system settings as well.\n\n=== Fonts ===\n\n==== Fonts in a Plasma session look poor ====\n\nTry installing the {{Pkg|ttf-dejavu}} and {{Pkg|ttf-liberation}} packages.\n\nAfter the installation, be sure to log out and back in. You should not have to modify anything in ''System Settings > Appearance > Fonts''. If you are using {{Pkg|qt5ct}}, the settings in Qt5 Configuration Tool may override the font settings in System Settings.\n\nIf you have personally set up how your [[Fonts]] render, be aware that System Settings may alter their appearance. When you go ''System Settings > Appearance > Fonts'' System Settings will likely alter your font configuration file ({{ic|fonts.conf}}).\n\nThere is no way to prevent this, but, if you set the values to match your {{ic|fonts.conf}} file, the expected font rendering will return (it will require you to restart your application or in a few cases restart your desktop). Note that Gnome's Font Preferences also does this.\n\n==== Fonts are huge or seem disproportional ====\n\nTry to force font DPI to {{ic|'''96'''}} in ''System Settings > Appearance > Fonts''.\n\nIf that does not work, try setting the DPI directly in your Xorg configuration as documented in [[Xorg#Setting DPI manually]].\n\n=== Configuration related ===\n\nMany problems in KDE are related to its configuration.\n\n==== Plasma desktop behaves strangely ====\n\nPlasma problems are usually caused by unstable ''Plasma widgets'' (colloquially called ''plasmoids'') or ''Plasma themes''. First, find which was the last widget or theme you had installed and disable or uninstall it.\n\nSo, if your desktop suddenly exhibits \"locking up\", this is likely caused by a faulty installed widget. If you cannot remember which widget you installed before the problem began (sometimes it can be an irregular problem), try to track it down by removing each widget until the problem ceases. Then you can uninstall the widget, and file a bug report on the [https://bugs.kde.org/ KDE bug tracker] '''only if it is an official widget'''. If it is not, it is recommended to find the entry on the [https://store.kde.org/ KDE Store] and inform the developer of that widget about the problem (detailing steps to reproduce, etc.).\n\nIf you cannot find the problem, but you do not want ''all'' the settings to be lost, navigate to {{ic|~/.config/}} and run the following command:\n\n $ for j in plasma*; do mv -- \"$j\" \"${j%}.bak\"; done\n\nThis command will rename '''all''' Plasma related configuration files to ''*.bak'' (e.g. {{ic|plasmarc.bak}}) of your user and when you will relogin into Plasma, you will have the default settings back. To undo that action, remove the ''.bak'' file extension. If you already have ''*.bak'' files, rename, move, or delete them first. It is highly recommended that you create regular backups anyway. See [[Synchronization and backup programs]] for a list of possible solutions.\n\n==== Clean cache to resolve upgrade problems ====\n\nThe [https://bbs.archlinux.org/viewtopic.php?id=135301 problem] may be caused by old cache. Sometimes, after an upgrade, the old cache might introduce strange, hard to debug behaviour such as unkillable shells, hangs when changing various settings, Ark being unable to extract archives or Amarok not recognizing any of your music. This solution can also resolve problems with KDE and Qt applications looking bad after an update.\n\nRebuild the cache using the following commands:\n\n $ rm ~/.config/Trolltech.conf\n $ kbuildsycoca5 --noincremental\n\nOptionally, empty the {{ic|~/.cache/}} folder contents, however, this will also clear the cache of other applications:\n \n $ rm -rf ~/.cache/*\n\n==== Plasma desktop does not respect locale/language settings ====\n\nPlasma desktop may use different settings than you set at KDE System Settings panel, or in {{ic|locale.conf}} (per [[Locale#Variables]]). First thing to do is log out and log in after removing {{ic|~/.config/plasma-localerc}}, if this does not fix the issue, try to edit the file manually. For example, to set {{ic|LANG}} variable to {{ic|es_ES.UTF-8}} and the {{ic|LC_MESSAGES}} variable to {{ic|en_US.UTF-8}}:\n\n{{hc|~/.config/plasma-localerc|2=\n[Formats]\nLANG=es_ES.UTF-8\n\n[Translations]\nLANGUAGE=en_US\n}}\n\n==== Cannot change theme, icons, fonts, colors in systemsettings; most icons are not displayed ====\n\nMake sure that {{ic|QT_QPA_PLATFORMTHEME}} [[environment variable]] is unset, the command {{ic|printenv QT_QPA_PLATFORMTHEME}} should show empty output. Otherwise if you had an environment set (most likely qt5ct) the variable will force qt5ct settings upon Qt applications, the command {{ic|1=export QT_QPA_PLATFORMTHEME=}} should unset the environment.\n\nAn easier (and more reliable) solution can be to uninstall completely qt5ct.\n\n==== Volume control, notifications or multimedia keys do not work ====\n\nHiding certain items in the System Tray settings (e.g. Audio Volume, Media Player or Notifications) also disables related features. Hiding the ''Audio Volume'' disables volume control keys, ''Media Player'' disables multimedia keys (rewind, stop, pause) and hiding ''Notifications'' disables showing notifications.\n\n==== Login Screen KCM does not sync cursor settings to SDDM ====\n\nThe Login Screen KCM reads your cursor settings from {{ic|~/.config/kcminputrc}}, without this file no settings are synced. The easiest way to generate this file is to change your cursor theme in ''System Settings > Cursors'', then change it back to your preferred cursor theme.\n\n==== Missing panels/widgets ====\n\nA crash or hardware change can modify the screen numbers, even on a single monitor setup. The panels/widgets can be missing after such an event, this can be fixed in the {{ic|~/.config/plasma-org.kde.plasma.desktop-appletsrc}} file by changing the {{ic|lastScreen}} values.\n\n=== Graphical problems ===\n\nMake sure you have the proper driver for your GPU installed. See [[Xorg#Driver installation]] for more information. If you have an older card, it might help to [[#Disable desktop effects manually or automatically for defined applications]] or [[#Disable compositing]].\n\n==== Getting current state of KWin for support and debug purposes ====\n\nThis command prints out a summary of the current state of KWin including used options, used compositing backend and relevant OpenGL driver capabilities. See more on [https://blog.martin-graesslin.com/blog/2012/03/on-getting-help-for-kwin-and-helping-kwin/ Martin's blog].\n\n $ qdbus org.kde.KWin /KWin org.kde.KWin.supportInformation\n\n==== Disable desktop effects manually or automatically for defined applications ====\n\nPlasma has desktop effects enabled by default and e.g. not every game will disable them automatically. You can disable desktop effects in ''System Settings > Workspace Behavior > Desktop Effects'' and you can toggle desktop effects with {{ic|Alt+Shift+F12}}. \n\nAdditionally, you can create custom KWin rules to automatically disable/enable compositing when a certain application/window starts under ''System Settings > Window Management > Window Rules''.\n\n==== Enable transparency ====\n\nIf you use a transparent background without enabling the compositor, you will get the message:\n\n This color scheme uses a transparent background which does not appear to be supported on your desktop\n\nIn ''System Settings > Display and Monitor > Compositor'', check ''Compositing: Enable on startup'' and restart Plasma.\n\n==== Disable compositing ====\n\nIn ''System Settings > Display and Monitor > Compositor'', uncheck ''Compositing: Enable on startup'' and restart Plasma.\n\n==== Flickering in fullscreen when compositing is enabled ====\n\nIn ''System Settings > Display and Monitor > Compositor'', uncheck ''Compositing: Allow applications to block compositing''. This may harm performance.\n\n==== Plasma cursor sometimes shown incorrectly ====\n\nCreate the directory {{ic|~/.icons/default}} and inside a file named {{ic|index.theme}} with the following contents:\n\n{{hc|~/.icons/default/index.theme|2=\n[Icon Theme]\nInherits=breeze_cursors\n}}\n\nExecute the following command:\n\n $ ln -s /usr/share/icons/breeze_cursors/cursors ~/.icons/default/cursors\n\n==== Cursor jerking/flicking when changing roles (e.g., when mousing over hyperlinks) ====\n\nTry installing the appropriate 2D acceleration driver for your system and window manager.\n\n==== Unusable screen resolution set ====\n\nYour local configuration settings for kscreen can override those set in {{ic|xorg.conf}}. Look for kscreen configuration files in {{ic|~/.local/share/kscreen/}} and check if mode is being set to a resolution that is not supported by your monitor.\n\n==== Blurry icons in system tray ====\n\nIn order to add icons to tray, applications often make use of the library appindicator. If your icons are blurry, check which version of libappindicator you have installed. If you only have {{Pkg|libappindicator-gtk2}} installed, you can install {{Pkg|libappindicator-gtk3}} as an attempt to get clear icons.\n\n==== Cannot change screen resolution when running in a virtual machine ====\n\nWhen running Plasma in a [[VMware]], [[VirtualBox]] or [[QEMU]] virtual machine, kscreen may not allow changing the guest's screen resolution to a resolution higher than 800\u00d7600.\n\nThe workaround is to set the {{ic|PreferredMode}} option in {{man|5|xorg.conf.d}}. Alternatively try using a different graphics adapter in the VM, e.g. VBoxSVGA instead of VMSVGA for VirtualBox and Virtio instead of QXL for QEMU. See [https://bugs.kde.org/show_bug.cgi?id=407058 KDE Bug 407058] for details.\n\n==== Dolphin, Kate, etc. stuck long time when opening ====\n\nCheck whether your user directories ({{ic|Documents}}, {{ic|Downloads}}, etc.) are read-only.\n\n==== Spectacle screenshot uses old screen state ====\n\nIn ''System Settings > Display and Monitor > Compositor'', change ''Keep window thumbnails'' from ''Only from Shown windows'' to ''Never''.\n\n=== Sound problems ===\n\n{{Note|First make sure you have {{Pkg|alsa-utils}} installed.}}\n\n==== No sound after suspend ====\n\nIf there is no sound after suspending and if KMix does not show audio devices which should be there, restarting plasmashell and pulseaudio may help:\n\n $ killall plasmashell\n $ systemctl --user restart pulseaudio.service\n $ plasmashell\n\nSome applications may also need to be restarted in order for sound to play from them again.\n\n==== MP3 files cannot be played when using the GStreamer Phonon backend ====\n\nThis can be solved by installing the GStreamer libav plugin (package {{Pkg|gst-libav}}). If you still encounter problems, you can try changing the Phonon backend used by installing another such as {{AUR|phonon-qt4-vlc}} or {{Pkg|phonon-qt5-vlc}}.\n\nThen, make sure the backend is preferred via ''System Settings > Multimedia > Audio and Video > Backend''.\n\nIf the settings does not show any, try {{ic|phononsettings}} in your terminal.\n\n==== No volume control icon in tray and cannot adjust sound by function key ====\n\nCheck if you have {{Pkg|plasma-pa}} installed.\n\n=== Power management ===\n\n==== No Suspend/Hibernate options ====\n\nIf your system is able to suspend or hibernate using [[systemd]] but do not have these options shown in KDE, make sure {{Pkg|powerdevil}} is installed.\n\n=== KMail ===\n\n==== Clean Akonadi configuration to fix KMail ====\n\nSee [https://userbase.kde.org/KMail/FAQs_Hints_and_Tips#Clean_start_after_a_failed_migration] for details.\n\nIf you want a backup, copy the following configuration directories:\n\n $ cp -a ~/.local/share/akonadi ~/.local/share/akonadi-old\n $ cp -a ~/.config/akonadi ~/.config/akonadi-old\n\n==== Empty IMAP inbox in KMail ====\n\nFor some IMAP accounts KMail will show the inbox as a top-level container (so it will not be possible to read messages there) with all other folders of this account inside.[https://bugs.kde.org/show_bug.cgi?id=284172]. To solve this problem simply disable the server-side subscriptions in the KMail account settings.\n\n==== Authorization error for EWS account in KMail ====\n\nWhile setting up EWS account in KMail, you may keep getting errors about failed authorization even for valid and fully working credentials. This is likely caused by broken communication between [[KWallet]] and KMail. To workaround the issue set a passsword via qdbus:\n\n $ qdbus org.freedesktop.Akonadi.Resource.akonadi_ews_resource_0 /Settings org.kde.Akonadi.Ews.Wallet.setPassword \"XXX\"\n\n=== Aggressive QXcbConnection journal logging ===\n\nSee [[Qt#Disable/Change Qt journal logging behaviour]].\n\n=== KF5/Qt 5 applications do not display icons in i3/FVWM/awesome ===\n\nSee [[Qt#Configuration of Qt 5 applications under environments other than KDE Plasma]].\n\n=== Problems with saving credentials and persistently occurring KWallet dialogs ===\n\nIt is not recommended to turn off the [[KWallet]] password saving system in the user settings as it is required to save encrypted credentials like WiFi passphrases for each user. Persistently occuring KWallet dialogs can be the consequence of turning it off.\n\nIn case you find the dialogs to unlock the wallet annoying when applications want to access it, you can let the [[Display manager|display managers]] [[SDDM]] and [[LightDM]] unlock the wallet at login automatically, see [[KDE Wallet#Unlock KDE Wallet automatically on login]]. The first wallet needs to be generated by KWallet (and not user-generated) in order to be usable for system program credentials.\n\nIn case you want the wallet credentials not to be opened in memory for every application, you can restrict applications from accessing it with {{Pkg|kwalletmanager}} in the KWallet settings.\n\nIf you do not care for credential encryption at all, you can simply leave the password forms blank when KWallet asks for the password while creating a wallet. In this case, applications can access passwords without having to unlock the wallet first.\n\n=== Discover does not show any applications ===\n\nThis can be solved by installing {{Pkg|packagekit-qt5}}.\n\n=== Discover stops showing updates from Arch repositories ===\n\nDiscover sometimes will not remove its PackageKit alpm lock. To release it, remove {{ic|/var/lib/PackageKit/alpm/db.lck}}. Use \"Refresh\" in Discover and updates should appear (if there are any updates pending).\n\n=== High CPU usage of kscreenlocker_greet with NVIDIA drivers ===\n\nAs described in [https://bugs.kde.org/show_bug.cgi?id=347772 KDE Bug 347772] NVIDIA OpenGL drivers and QML may not play well together with Qt 5. This may lead {{ic|kscreenlocker_greet}} to high CPU usage after unlocking the session. To work around this issue, set the {{ic|QSG_RENDERER_LOOP}} [[environment variable]] to {{ic|basic}}.\n\nThen kill previous instances of the greeter with {{ic|killall kscreenlocker_greet}}.\n\n=== OS error 22 when running Akonadi on ZFS ===\n\nIf your home directory is on a [[ZFS]] pool, create a {{ic|~/.config/akonadi/mysql-local.conf}} file with the following contents:\n\n [mysqld]\n innodb_use_native_aio = 0\n\nSee [[MariaDB#OS error 22 when running on ZFS]].\n\n=== Some programs are unable to scroll when their windows are inactive ===\n\nThis is caused by the problematic way of GTK3 handling mouse scroll events. A workaround for this is to set [[environment variable]] {{ic|1=GDK_CORE_DEVICE_EVENTS=1}}. However, this workaround also breaks touchpad smooth scrolling and touchscreen scrolling.\n\n=== TeamViewer behaves slowly ===\n\nWhen using TeamViewer, it may behave slowly if you use smooth animations (such as windows minimizing). See [[#Disable compositing]] as a workaround.\n\n=== Kmail, Kontact and Wayland ===\n\nKmail may become unresponsive, show a black messageviewer or similar, often after having been minimized and restored. A workaround may be to set [[environment variable]] {{ic|1=QT_QPA_PLATFORM=\"xcb;wayland\"}}. See [https://bugs.kde.org/show_bug.cgi?id=397825 KDE Bug 397825].\n\n=== Unlock widgets (Plasma \u2265 5.18) ===\n\nIf you previously locked your widgets, you will probably find yourself unable to unlock them again.\nYou just have to run this command to do so:\n\n $ qdbus org.kde.plasmashell /PlasmaShell evaluateScript \"lockCorona(false)\"\n\nThe new {{ic|Customize Layout}} does not require to lock them back up but if want to do that:\n\n $ qdbus org.kde.plasmashell /PlasmaShell evaluateScript \"lockCorona(true)\"\n\n=== KIO opens URLs with the wrong program ===\n\nCheck file associations regarding HTML, PHP, etc... and change it to a browser. KIO's cache files are located in {{ic|$HOME/.cache/kioexec}}. See also [[xdg-utils#URL scheme handlers]].\n\n=== Custom Shortcuts tab is missing under Shortcuts in System Settings ===\n\nThis is due to the {{Pkg|khotkeys}} package being missing. After installation, a restart of the System Settings application may be necessary to apply the changes.\n\n=== Lock the screen before suspending and hibernating ===\n\nIn the System Settings application, KDE offers a setting to automatically lock the screen after waking up from sleep. Upon resuming, [https://www.reddit.com/r/kde/comments/obnpeb/how_to_lock_system_before_suspend/ some users] report that the screen is briefly showed before locking. To prevent this behavior and have KDE lock the screen before suspending, create a hook in {{man|1|systemd}} by creating the following file as the root user:\n\n{{hc|/usr/lib/systemd/system-sleep/lock_before_suspend.sh|2=\n#!/bin/bash\n\ncase $1/$2 in\n    pre/*)\n        case $2 in\n            suspend{{!}}hibernate)\n                loginctl lock-session\n                sleep 1\n                ;;\n            esac\n        ;;\nesac\n}}\n\nThe use of ''sleep'' is necessary in order for the lock-session to complete before the device is suspended. Lower value do not allow for completion. \n\nAfter creating the file, make it [[executable]]. \n\nFinally, make sure that the KDE setting is enabled by going to ''System Settings > Workspace Behavior > Screen Locking'' and checking the ''After waking from sleep'' checkbox.\n\n== See also ==\n\n* [https://www.kde.org/ KDE homepage]\n* [https://dot.kde.org/ KDE news]\n* [https://planet.kde.org/ KDE Blogs]\n* [https://forum.kde.org/ KDE Forums]\n* [https://wiki.kde.org/ KDE Wikis]\n* [https://bugs.kde.org/ KDE bug tracker and reporter]\n* [https://blog.martin-graesslin.com/blog/kategorien/kde/ Martin Graesslin's blog]\n* [https://community.kde.org/Matrix KDE Matrix Rooms]"
                    }
                ]
            },
            "1253": {
                "pageid": 1253,
                "ns": 0,
                "title": "Fonts",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Fonts]]\n[[de:Schriftarten]]\n[[es:Fonts]]\n[[ja:\u30d5\u30a9\u30f3\u30c8]]\n[[uk:Fonts]]\n[[zh-hans:Fonts]]\n{{Related articles start}}\n{{Related|Font configuration}}\n{{Related|Linux console#Fonts}}\n{{Related|Java Runtime Environment fonts}}\n{{Related|Metric-compatible fonts}}\n{{Related|Microsoft fonts}}\n{{Related articles end}}\n\nFrom [[Wikipedia:Computer font]]: \"A computer font is implemented as a digital data file containing a set of graphically related glyphs. A computer font is designed and created using a font editor. A computer font specifically designed for the computer screen, and not for printing, is a screen font.\"\n\nNote that certain font licenses may impose some legal limitations.\n\n== Font formats ==\n\nMost computer fonts used today are in either ''bitmap'' or ''outline'' data formats.\n;Bitmap fonts: Consist of a matrix of dots or pixels representing the image of each glyph in each face and size.\n;Outline or ''vector'' fonts: Use B\u00e9zier curves, drawing instructions and mathematical formulae to describe each glyph, which make the character outlines scalable to any size.\n\n=== Bitmap formats ===\n\n* [[Wikipedia:Glyph Bitmap Distribution Format|Bitmap Distribution Format]] (BDF) by Adobe\n* [[Wikipedia:Portable Compiled Format|Portable Compiled Format]] (PCF) by Xorg\n* [[Wikipedia:PC Screen Font|PC Screen Font]] (PSF) used by the Kernel for console fonts, not supported by Xorg (for Unicode PSF files the extension is {{ic|psfu}})\n\nThese formats can also be gzipped. See [[#Bitmap]] for the available bitmap fonts.\n\n=== Outline formats ===\n\n* [[Wikipedia:PostScript fonts|PostScript fonts]] by Adobe \u2013 has various formats, e.g: Printer Font ASCII (PFA) and Printer Font Binary (PFB)\n* [[Wikipedia:TrueType|TrueType]] by Apple and Microsoft (file extension: {{ic|ttf}})\n* [[Wikipedia:OpenType|OpenType]] by Microsoft, built on TrueType (file extensions: {{ic|otf}}, {{ic|ttf}})\n\nFor most purposes, the technical differences between TrueType and OpenType can be ignored.\n\n=== Other formats ===\n\nThe typesetting application [[TeX]] and its companion font software, ''Metafont'', traditionally renders characters using its own methods. Some file extensions used for fonts from these two programs are {{ic|*pk}}, {{ic|*gf}}, {{ic|mf}} and {{ic|vf}}. Modern versions can also use TrueType and OpenType fonts.\n\n[https://fontforge.github.io/en-US/ FontForge] ({{Pkg|fontforge}}), a font editing application, can store fonts in its native text-based format, {{ic|sfd}}, ''s''pline ''f''ont ''d''atabase.\n\nThe [https://www.w3.org/TR/SVG/fonts.html SVG] format also has its own font description method.\n\n== Installation ==\n\nThere are various methods for installing fonts.\n\n=== Pacman ===\n\nFonts and font collections in the enabled repositories can be installed using [[pacman]].\n\nAvailable fonts may be found by [[pacman#Querying package databases|querying packages]] (e.g. for {{ic|font}} or {{ic|ttf}}).\n\n=== Creating a package ===\n\nYou should give pacman the ability to manage your fonts, which is done by [[Creating packages|creating an Arch package]]. These can also be shared with the community in the [[AUR]]. The packages to install fonts are particularly similar; see [[Font packaging guidelines]].\n\nThe family name of a font file can be aquired with the use of {{ic|fc-query}} for example: {{ic|fc-query -f '%{family[0]}\\n' /path/to/file}}. The formatting is described in {{man|3|FcPatternFormat}}.\n\n=== Manual installation ===\n\nThe recommended way of adding fonts that are not in the repositories of your system is described in [[#Creating a package]]. This gives pacman the ability to remove or update them at a later time.\n\nAlternatively, fonts can be installed manually:\n\n* For a single user, install fonts to {{ic|~/.local/share/fonts/}}.\n** In many cases this suffices, unless you run graphical applications as other users.\n** In the past {{ic|~/.fonts/}} was used, but is now deprecated.\n* For system-wide (all users) installation, place your fonts under {{ic|/usr/local/share/fonts/}}.\n** You may need to create the directory first: {{ic|mkdir -p /usr/local/share/fonts}}.\n** {{ic|/usr/share/fonts/}} is under the purview of the package manager, and should not be modified manually.\n\nThe creation of a subdirectory structure is up to the user, and varies among Linux distributions. For clarity, it is good to keep each font in its own directory. Fontconfig will search its default paths recursively, ensuring nested files get picked up.\n\nAn example structure might be:\n\n{{bc|\n/usr/local/share/fonts/\n\u251c\u2500\u2500 otf\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 SourceCodeVariable\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 SourceCodeVariable-Italic.otf\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 SourceCodeVariable-Roman.otf\n\u2514\u2500\u2500 ttf\n    \u251c\u2500\u2500 AnonymousPro\n    \u2502\u00a0\u00a0 \u251c\u2500\u2500 Anonymous-Pro-B.ttf\n    \u2502   \u251c\u2500\u2500 Anonymous-Pro-I.ttf\n    \u2502\u00a0\u00a0 \u2514\u2500\u2500 Anonymous-Pro.ttf\n    \u2514\u2500\u2500 CascadiaCode\n     \u00a0\u00a0 \u251c\u2500\u2500 CascadiaCode-Bold.ttf\n     \u00a0\u00a0 \u251c\u2500\u2500 CascadiaCode-Light.ttf\n        \u2514\u2500\u2500 CascadiaCode-Regular.ttf\n}}\n\nThe font files need to have sufficient read permissions for all users, i.e. at least [[chmod]] {{ic|444}} for files, and {{ic|555}} for directories.\n\nFor the Xserver to load fonts directly (as opposed to the use of a ''font server''), the directory for your newly added font must be added with a FontPath entry. This entry is located in the ''Files'' section of your [[Xorg#Configuration|Xorg configuration file]] (e.g. {{ic|/etc/X11/xorg.conf}} or {{ic|/etc/xorg.conf}}). See [[#Older applications]] for more detail.\n\nFinally, update the fontconfig cache (usually unnecessary as software using the fontconfig library does this):\n\n $ fc-cache\n\n=== Older applications ===\n\nWith older applications that do not support fontconfig (e.g. GTK 1.x applications, and {{ic|xfontsel}}) the index will need to be created in the font directory:\n\n $ mkfontscale\n $ mkfontdir\n\nOr to include more than one folder with one command:\n\n $ for dir in /font/dir1/ /font/dir2/; do xset +fp $dir; done && xset fp rehash\n\nOr if fonts were installed in a different sub-folders under the e.g. {{ic|/usr/share/fonts}}:\n\n $ for dir in * ; do if [  -d  \"$dir\"  ]; then cd \"$dir\";xset +fp \"$PWD\" ;mkfontscale; mkfontdir;cd .. ;fi; done && xset fp rehash\n\nAt times the X server may fail to load the fonts directory and you will need to rescan all the {{ic|fonts.dir}} files:\n\n # xset +fp /usr/share/fonts/misc # Inform the X server of new directories\n # xset fp rehash                # Forces a new rescan\n\nTo check that the font(s) is included:\n\n $ xlsfonts | grep fontname\n\n{{Note|Many packages will automatically configure Xorg to use the font upon installation. If that is the case with your font, this step is not necessary.}}\n\nThis can also be set globally in {{ic|/etc/X11/xorg.conf}} or {{ic|/etc/X11/xorg.conf.d}}.\n\nHere is an example of the section that must be added to {{ic|/etc/X11/xorg.conf}}. Add or remove paths based on your particular font requirements.\n\n{{bc|\n# Let X.Org know about the custom font directories\nSection \"Files\"\n    FontPath    \"/usr/share/fonts/100dpi\"\n    FontPath    \"/usr/share/fonts/75dpi\"\n    FontPath    \"/usr/share/fonts/cantarell\"\n    FontPath    \"/usr/share/fonts/cyrillic\"\n    FontPath    \"/usr/share/fonts/encodings\"\n    FontPath    \"/usr/share/fonts/misc\"\n    FontPath    \"/usr/share/fonts/truetype\"\n    FontPath    \"/usr/share/fonts/TTF\"\n    FontPath    \"/usr/share/fonts/util\"\nEndSection\n}}\n\n=== Pango Warnings ===\n\nWhen [https://www.pango.org/ Pango] is in use on your system it will read from [https://www.freedesktop.org/wiki/Software/fontconfig fontconfig] to sort out where to source fonts.\n\n (process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'\n (process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'\n\nIf you are seeing errors similar to this and/or seeing blocks instead of characters in your application then you need to add fonts and update the font cache. This example uses the {{Pkg|ttf-liberation}} fonts to illustrate the solution (after successful installation of the package) and runs as root to enable them system-wide.\n\n{{hc|# fc-cache|\n/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs\n/usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs\n/usr/share/fonts/encodings: caching, new cache contents: 0 fonts, 1 dirs\n/usr/share/fonts/encodings/large: caching, new cache contents: 0 fonts, 0 dirs\n/usr/share/fonts/util: caching, new cache contents: 0 fonts, 0 dirs\n/var/cache/fontconfig: cleaning cache directory\nfc-cache: succeeded\n}}\n\nYou can test for a default font being set like so:\n\n{{hc|$ fc-match|\nLiberationMono-Regular.ttf: \"Liberation Mono\" \"Regular\"\n}}\n\n== Font packages ==\n\nThis is a selective list that includes many font packages from the [[AUR]] along with those in the official repositories. Fonts are tagged \"Unicode\" if they have wide [[wikipedia:unicode|Unicode]] support.\n\n{{Tip|[https://github.com/ternstor/distrofonts Archfonts] is a Python script that can be used to generate an overview of all the TTF fonts found in the official repositories and in the AUR.}}\n\n=== Bitmap ===\n\n{{Note|{{Pkg|pango}} 1.44 [https://blogs.gnome.org/mclasen/2019/05/25/pango-future-directions/ dropped support for FreeType in favor of HarfBuzz] thus [https://blogs.gnome.org/mclasen/2019/08/07/pango-1-44-wrap-up/ losing support for traditional BDF/PCF bitmap fonts], so some applications (e.g. {{Pkg|gnome-terminal}}) will not work with such fonts anymore, showing rectangles instead of glyphs. See {{Bug|63297}}, [https://gitlab.gnome.org/GNOME/pango/issues/386 Pango issue #386] and [https://github.com/harfbuzz/harfbuzz/issues/1897 HarfBuzz issue #1897].}}\n\n* Default 8x16\n* [https://github.com/seraxis/pcf-spectrum-berry Berry] ({{AUR|pcf-spectrum-berry}}) \u2013 8px\n* [https://www.dcmembers.com/jibsen/download/61/ Dina] ({{Pkg|dina-font}}) \u2013 6pt, 8pt, 9pt, 10pt, monospaced, based on Proggy\n* [http://openlab.jp/efont/unicode/ Efont] ({{AUR|efont-unicode-bdf}}) \u2013 10px, 12px, 14px, 16px, 24px, normal, bold and italic\n* [https://font.gohu.org/ Gohu] ({{AUR|gohufont}}) \u2013 11px, 14px, normal and bold\n* [http://artwizaleczapka.sourceforge.net/ Lime] ({{AUR|artwiz-fonts}})\n* [https://tobiasjung.name/profont/ ProFont] ({{AUR|ttf-profont-iix}}) \u2013 10px, 11px, 12px, 15px, 17px, 22px, 29px, normal\n* [[Wikipedia:Proggy programming fonts|Proggy]] ({{AUR|proggyfonts}}) \u2013 Has different variants\n* [http://www.fial.com/~scott/tamsyn-font/ Tamsyn] ({{Pkg|tamsyn-font}})\n* [https://terminus-font.sourceforge.net/ Terminus] ({{Pkg|terminus-font}})\n* [https://github.com/lucy/tewi-font Tewi] ({{AUR|bdf-tewi-git}})\n* [https://unifoundry.com/unifont.html Unifont] ([[Wikipedia:Unicode font#Comparison of fonts|most extensive]] Unicode coverage of any font) ({{AUR|bdf-unifont}})\n\nWorks with Pango 1.44:\n\n* [https://tobiasjung.name/profont/ ProFont] ({{AUR|profont-otb}}) \u2013 OpenType Bitmap (OTB) variant of ProFont\n* [https://xorg.freedesktop.org/releases/individual/font/ Misc Fixed] {{AUR|xorg-fonts-misc-otb}}\n* [https://font.gohu.org/ Gohufont] ({{AUR|gohufont-otb}})\n* [https://github.com/slavfox/Cozette/ Cozette] ({{AUR|cozette-otb}})\n* [https://terminus-font.sourceforge.net/ Terminus] ({{Pkg|terminus-font}})\n* More [https://aur.archlinux.org/packages/?O=0&SeB=n&K=-otb&outdated=&SB=n&SO=a&PP=50&do_Search=Go OTB] fonts on the AUR\n\n=== Latin script ===\n\n==== Families ====\n\nPackages [[Font package guidelines#Provides|providing a base font set]]:\n\n* [[Wikipedia:Bitstream Vera|Bitstream Vera]] ({{Pkg|ttf-bitstream-vera}}) \u2013 Includes sans-serif, serif, and monospaced fonts. Bitstream Vera Sans is metrically compatible with [[Wikipedia:Verdana|Verdana]].\n* [[Wikipedia:Croscore fonts|Croscore fonts]] ({{Pkg|ttf-croscore}}) \u2013 [[Metric-compatible fonts]] for Helvetica, Times, and Courier, shipped with Chrome OS\n* [[Wikipedia:DejaVu fonts|DejaVu fonts]] ({{Pkg|ttf-dejavu}}) \u2013 Bitstream Vera modified for greater Unicode coverage\n* [[Wikipedia:Droid (font)|Droid]] ({{Pkg|ttf-droid}}) \u2013 Default font for older Android versions with wide Unicode coverage including CJK but not symbols and emojis\n* [[Wikipedia:GNU FreeFont|GNU FreeFont]] ({{Pkg|gnu-free-fonts}}) \u2013 Includes three fonts that are clones of Helvetica, Times, and Courier. Most Latin characters are from [[Wikipedia:URW Type Foundry|URW]] [[Wikipedia:Ghostscript#Free_fonts|Ghostscript]] fonts (e.g., [[Wikipedia:Nimbus Roman No. 9 L|Nimbus Roman]], [[Wikipedia:Nimbus Sans|Nimbus Sans]]), non-Latin characters come from many sources with good Unicode coverage, but do not include CJK\n* [[Wikipedia:IBM Plex|IBM Plex]] ({{Pkg|ttf-ibm-plex}}) \u2013 Serif, sans-serif, condensed sans-serif and monospace with true italics\n* [[Wikipedia:Liberation fonts|Liberation fonts]] ({{Pkg|ttf-liberation}}) \u2013 [[Metric-compatible fonts]] for Helvetica, Times, and Courier, but are visually different\n* [[Wikipedia:Linux Libertine|Linux Libertine]] ({{Pkg|ttf-linux-libertine}}) \u2013 Serif (Libertine) and sans serif (Biolinum) fonts with large Unicode coverage\n* [[Microsoft fonts]] ({{AUR|ttf-ms-win11}}) \u2013 Windows 11 fonts (Windows 11 installation or installation medium needed)\n* [[Wikipedia:Noto fonts|Noto fonts]] ({{Pkg|noto-fonts}}) \u2013 Google font family with full Unicode coverage if installed with its emoji and CJK optional dependencies\n\nPackages not providing a base font set:\n\n* [https://b612-font.com/ B612] ({{AUR|ttf-b612}}) \u2013 Open source font family (sans and mono) sponsored by Airbus, designed for comfort of reading on aircraft cockpit screens\n* [[Wikipedia:Ghostscript#Free_fonts|Ghostscript]] ({{Pkg|gsfonts}}) \u2013 The Ghostscript fonts donated by [[Wikipedia:URW Type Foundry|URW]], includes clones of Helvetica, Times, Courier, and others. GNU FreeFont ({{Pkg|gnu-free-fonts}}) and TeX Gyre fonts ({{Pkg|tex-gyre-fonts}}) are both partially based on the Ghostscript fonts\n* [[Wikipedia:Luxi fonts|Luxi fonts]] ({{AUR|font-bh-ttf}}) \u2013 X.Org font family similar to Lucida\n* [[Wikipedia:Roboto|Roboto]] ({{Pkg|ttf-roboto}}) \u2013 Default font for newer Android versions where it is complemented by Noto fonts for languages not supported like CJK\n* [http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html TeX Gyre fonts] ({{Pkg|tex-gyre-fonts}}) \u2013 Created by the Polish GUST association of TeX users, mostly based on [[Wikipedia:URW Type Foundry|URW]] [[Wikipedia:Ghostscript#Free_fonts|Ghostscript]] fonts, includes clones of Helvetica, Times, Courier, and others. Some have their own math companion fonts, see [[#Math]].\n* [[Wikipedia:Ubuntu Font Family|Ubuntu font family]] ({{Pkg|ttf-ubuntu-font-family}})\n\nLegacy Microsoft font packages:\n\n* [http://corefonts.sourceforge.net/ Microsoft fonts] ({{AUR|ttf-ms-fonts}}) \u2013 Andal\u00e9 Mono, Courier New, Arial, Arial Black, Comic Sans, Impact, Lucida Sans, Microsoft Sans Serif, Trebuchet, Verdana, Georgia, Times New Roman\n* Vista fonts ({{AUR|ttf-vista-fonts}}) \u2013 Consolas, Calibri, Candara, Corbel, Cambria, Constantia\n\n==== Monospaced ====\n\nFonts supporting [[Wikipedia:Orthographic_ligature#Programming_languages|programming ligatures]] are identified below with a \u27f6 sign. For more monospaced fonts, also see [[#Bitmap]] and [[#Families]].\n\n* [https://www.marksimonson.com/fonts/view/anonymous-pro Anonymous Pro] ({{Pkg|ttf-anonymous-pro}}, included in {{AUR|ttf-google-fonts-git}})\n* [https://github.com/microsoft/cascadia-code Cascadia Code] ({{Pkg|ttf-cascadia-code}}) \u27f6 \u2013 Designed to enhance the look of the Windows Terminal, with programming ligatures, released by Microsoft under the Open Font License.\n* [https://quoteunquoteapps.com/courierprime/ Courier Prime] ({{AUR|ttf-courier-prime}}) \u2013 Courier alternative which has been supplemented by a sans serif font and a version optimized for programming, released under the Open Font License.\n* [https://damieng.com/envy-code-r Envy Code R] ({{AUR|ttf-envy-code-r}}) \u2013 Font designed for programmers\n* Fantasque Sans Mono ({{Pkg|ttf-fantasque-sans-mono}}, {{Pkg|otf-fantasque-sans-mono}})\n* [[Wikipedia:Fira_(typeface)|Fira Mono]] ({{Pkg|ttf-fira-mono}}, {{Pkg|otf-fira-mono}}) \u2013 Font optimized for small screens and adopted by Mozilla for the Firefox OS\n* [[Wikipedia:Fira_(typeface)#Fira_Code|Fira Code]] ({{Pkg|ttf-fira-code}}) \u27f6 \u2013 Extension of Fira Mono with programming ligatures for common programming multi-character combinations\n* [https://sourcefoundry.org/hack/ Hack] ({{Pkg|ttf-hack}}) - Open source monospaced font, used as the default in KDE Plasma\n* [https://github.com/i-tu/Hasklig Hasklig] ({{AUR|otf-hasklig}}) - A code font with monospaced ligatures\n* [https://pcaro.es/p/hermit/ Hermit] ({{Pkg|otf-hermit}}) - A font for programmers, by a programmer\n* [[Wikipedia:Inconsolata|Inconsolata]] ({{Pkg|ttf-inconsolata}}, included in {{AUR|ttf-google-fonts-git}}) \u2013 Designed for source code listing, inspired by Consolas and Letter Gothic\n* [https://leonardo-m.livejournal.com/77079.html Inconsolata-g] ({{AUR|ttf-inconsolata-g}}) \u2013 Adds some programmer-friendly modifications\n* [https://be5invis.github.io/Iosevka/ Iosevka] ({{Pkg|ttc-iosevka}}) \u27f6 \u2013 Slender sans-serif and slab-serif typeface inspired by Pragmata Pro, M+ and PF DIN Mono, designed to be the ideal font for programming; it supports programming ligatures and over 2000 latin, greek, cyrillic, phonetic and PowerLine glyphs\n* [https://www.jetbrains.com/lp/mono/ JetBrains Mono] ({{Pkg|ttf-jetbrains-mono}}) \u27f6 \u2013 Free and open-source font developed by JetBrains\n* [[Wikipedia:Lucida Typewriter|Lucida Typewriter]] (included in package {{AUR|jre}})\n* [[Wikipedia:Menlo (typeface)|Menlo]] ({{AUR|ttf-meslo}}) \u2013 Customized version of Apple's Menlo Regular font for OS X with larger vertical gap spacing\n* [[Wikipedia:Monaco (typeface)|Monaco]] ({{AUR|ttf-monaco}}) \u2013 Proprietary font designed by Apple for OS X\n* Monofur ({{Pkg|ttf-monofur}})\n* [https://madmalik.github.io/mononoki Mononoki] ({{AUR|ttf-mononoki}}) \u2013 A font for programming and code review\n* [[Wikipedia:Source Code Pro|Source Code Pro]] ({{Pkg|adobe-source-code-pro-fonts}}, included in {{AUR|ttf-google-fonts-git}})\n* [https://dtinth.github.io/comic-mono-font/ Comic Mono] ({{AUR|ttf-comic-mono-git}}) A legible monospace font\u2026 the very typeface you\u2019ve been trained to recognize since childhood, ergo Comic Sans\n\nRelevant websites:\n\n* [http://www.lowing.org/fonts/ Trevor Lowing's font list]\n* [https://www.slant.co/topics/67/~what-are-the-best-programming-fonts Slant: What are the best programming fonts?]\n* [https://stackoverflow.com/questions/4689/recommended-fonts-for-programming Stack Overflow: Recommended fonts for programming]\n* [https://www.programmingfonts.org Programming Fonts - Test Drive]\n* [http://s9w.io/font_compare Programming Fonts Compare]\n* [https://www.codingfont.com/ Coding Font by Typogram]\n\n==== Sans-serif ====\n\n* [http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=andika Andika] ({{AUR|ttf-andika}})\n* [[Wikipedia:Cantarell (typeface)|Cantarell]] ({{Pkg|cantarell-fonts}}) \u2013 Default font supplied with GNOME, it is required by the GNOME and GTK 3 related packages\n* [https://typedesigndead.coosucks.repl.co/ DMCA Sans Serif] ({{AUR|ttf-dmcasansserif}}) \u2013 General purpose sans serif font metric-compatible with Microsoft Consolas\n* [[Wikipedia:Fira (typeface)|Fira Sans]] ({{Pkg|ttf-fira-sans}}, {{Pkg|otf-fira-sans}}) \u2013 Sans serif font designed by Erik Spiekermann for Mozilla and the Firefox OS. Fira Mono and Fira Code are monospaced companions of Fira Sans (see [[#Monospaced]])\n* [[Wikipedia:FreeSans|FreeSans]] ({{Pkg|gnu-free-fonts}}) \u2013 [[Commons:File:FreeSansDemonstration.png|Visually similar]] to Helvetica but metrically different, see [[#Families]]\n* [https://github.com/rsms/inter Inter] ({{Pkg|inter-font}}) \u2013 A geometric neo-grotesque font designed for user interfaces\n* [https://indestructibletype.com/Jost.html Jost*] ({{AUR|otf-jost}}) \u2013 An open-source typeface based on [[Wikipedia:Futura (typeface)|Futura]]\n* [[Wikipedia:Liberation Sans|Liberation Sans]] ({{Pkg|ttf-liberation}}) \u2013 Metric-compatible with Helvetica but [[Commons:File:Font_Sample_-_Liberation_Sans.svg|visually distinct]], see [[#Families]]\n* [https://fonts.google.com/specimen/Montserrat Montserrat] ({{AUR|montserrat-otf}}) \u2013 An open source font that shares similarities with [[Wikipedia:Gotham (typeface)|Gotham]] and [[Wikipedia:Proxima Nova|Proxima Nova]]\n* [https://fonts.google.com/specimen/Nunito Nunito] ({{AUR|ttf-nunito}}) \u2013 An open source font with rounded terminal, hence shares similarities with [[Wikipedia:Gotham_(typeface)#Variations|Gotham Rounded]] and [https://fonts.adobe.com/fonts/proxima-soft Proxima Soft]\n* [[Wikipedia:Open Sans|Open Sans]] ({{Pkg|ttf-opensans}}) \u2013 Sans serif font commissioned by Google, based on Droid sans but slightly wider.\n* [[Wikipedia:PT Sans|PT Sans]] ({{AUR|ttf-google-fonts-git}}) \u2013 3 major variations: normal, narrow, and caption - Unicode: Latin, Cyrillic\n* [[Wikipedia:Source Sans|Source Sans]] ({{Pkg|adobe-source-sans-fonts}}) \u2013 Open source sans serif font from Adobe with a design based on News Gothic and Franklin Gothic\n* [https://www.winehq.org/announce/0.9.47 Tahoma (Wine Replacement)] ({{AUR|ttf-tahoma}}) \u2013 Open source substitute for [[Wikipedia:Tahoma (typeface)|Tahoma]] developed by the [[Wine]] project. It was created because many Windows applications expected Tahoma to be available\n\n==== Serif ====\n\n* [[Wikipedia:Bitstream Charter|Bitstream Charter]] ({{AUR|ttf-bitstream-charter}}, {{AUR|otf-bitstream-charter}}) \u2013 Originally a commercial font designed by [[Wikipedia:Matthew Carter|Matthew Carter]]. A version was released under a free license and later [https://practicaltypography.com/charter.html converted] to modern formats (provided as the aforementioned packages). \n* [https://indestructibletype.com/Bodoni.html Bodoni*] ({{AUR|otf-bodoni}}) \u2013 An open-source [[Wikipedia:Bodoni|Bodoni]] revival\n* [https://github.com/skosch/Crimson Crimson] ({{Pkg|otf-crimson}}) \u2013 An open-source font that shares similarities with [[Wikipedia:Minion_(typeface)|Minion]]\n* [[Wikipedia:EB_Garamond|EB Garamond]] ({{AUR|ebgaramond-otf}}) \u2013 An open-source [[Wikipedia:Garamond|Garamond]] revival, the aforementioned package is the version developed by [https://github.com/octaviopardo/EBGaramond12 Octavio Pardo]\n* [[Wikipedia:FreeSerif|FreeSerif]] ({{Pkg|gnu-free-fonts}}) \u2013 [[Commons:File:FreeSerifDemonstration.png|Visually similar]] to Times New Roman but [https://askubuntu.com/questions/346552/closest-alternative-to-times-new-roman/1148247#1148247 metrically different], see [[#Families]]\n* [[Wikipedia:Gentium|Gentium]] ({{Pkg|gentium-plus-font}}) \u2013 Unicode, comprehensive support for Latin, Greek, Cyrillic, International Phonetic Alphabet (IPA) characters\n* [[Wikipedia:Utopia_(typeface)#Derived_typefaces|Heuristica]] ({{AUR|ttf-heuristica}}) \u2013 Based on a version of [[Wikipedia:Utopia_(typeface)|Utopia]] that was released under a free license\n* [[Wikipedia:Liberation Serif|Liberation Serif]] ({{Pkg|ttf-liberation}}) \u2013 Metric-compatible with Times New Roman but [[Wikipedia:File:Times New Roman Liberation Serif comparison.png|visually distinct]], see [[#Families]]\n* [https://fonts.google.com/specimen/Libre+Baskerville Libre Baskerville] ({{AUR|ttf-librebaskerville}}) \u2013 An open-source [[Wikipedia:Baskerville|Baskerville]] revival designed by Impallari Type\n* [https://fonts.google.com/specimen/Libre+Caslon+Text Libre Caslon] ({{AUR|otf-libre-caslon}}) \u2013 An open-source [[Wikipedia:Caslon|Caslon]] revival designed by Impallari Type\n* [[Wikipedia:Linux Libertine|Linux Libertine]] ({{Pkg|ttf-linux-libertine}}) \u2013 Developed as a substitute of Times New Roman, but different both visually and metrically (the metric differences are more notable for italic and bold fonts)\n* [http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html TeX Gyre Termes] ({{Pkg|tex-gyre-fonts}}) \u2013 Visually similar to Times New Roman (but there are some minor metric differences), see [[#Families]]\n* [[Wikipedia:Croscore_fonts|Tinos]] ({{Pkg|ttf-croscore}}) \u2013 Metric-compatible with Times New Roman but visually distinct (and looks similar to Liberation Serif), see [[#Families]]\n\n==== Unsorted ====\n\n{{Style|This section should be absorbed into the Monospace/Serif/Sans-Serif structure}}\n\n* {{AUR|ttf-cheapskate}} \u2013 Font collection from ''dustismo.com''\n* {{Pkg|ttf-junicode}} \u2013 Junius font containing almost complete medieval latin script glyphs\n* {{AUR|ttf-mph-2b-damase}} \u2013 Covers full plane 1 and several scripts\n* {{Pkg|xorg-fonts-type1}} \u2013 IBM Courier and Adobe Utopia sets of [[Wikipedia:PostScript fonts|PostScript fonts]]\n* {{AUR|all-repository-fonts}} \u2013 Meta package for all fonts in the official repositories.\n* {{AUR|ttf-google-fonts-git}} \u2013 A huge collection of free fonts (including Ubuntu, Inconsolata, Roboto, etc.) - Note: Your font dialog might get very long as >100 fonts will be added.\n\n=== Non-latin scripts ===\n\n==== Ancient Scripts ====\n\n* {{AUR|ttf-ancient-fonts}} \u2013 Font containing Unicode symbols for Aegean, Egyptian, Cuneiform, Anatolian, Maya, and Analecta scripts\n\n==== Arabic ====\nSee [[Localization/Arabic#Fonts]].\n\n==== Bengali ====\n\nRead [[Localization/Bengali#Fonts]] for details.\n\n==== Braille ====\n\n* {{AUR|ttf-ubraille}} \u2013 Font containing Unicode symbols for ''braille''\n\n==== Chinese, Japanese, Korean, Vietnamese ====\n\n===== Pan-CJK =====\n\nAdobe Source Han fonts and Noto CJK fonts have [https://github.com/adobe-fonts/source-han-sans/issues/122 identical glyphs and metrics], but with different branding since the project was commissioned by both Adobe and Google.\n\nBoth collections comprehensively support Simplified Chinese, Traditional Chinese, Japanese, and Korean, with a consistent design and look. \n\n* Adobe Source Han fonts\n** [[Wikipedia:Source_Han_Sans|Source Han Sans]] ({{Pkg|adobe-source-han-sans-otc-fonts}})\n** [[Wikipedia:Source_Han_Serif|Source Han Serif]] ({{Pkg|adobe-source-han-serif-otc-fonts}})\n* [[Wikipedia:Noto_fonts#CJK|Noto CJK fonts]] ({{Pkg|noto-fonts-cjk}}) \u2013 Includes both Noto Sans CJK and Noto Serif CJK\n\n===== Chinese =====\n\nSee [[Localization/Chinese#Fonts]].\n\n===== Japanese =====\n\nSee [[Localization/Japanese#Fonts]].\n\n===== Korean =====\n\nSee [[Localization/Korean#Fonts]].\n\n===== Vietnamese =====\n\n* {{Pkg|ttf-hannom}} \u2013 Vietnamese TrueType font for ch\u1eef N\u00f4m characters\n\n==== Cyrillic ====\n\nSee also [[#Latin script]].\n\n* {{AUR|ttf-paratype}} \u2013 Font family by ParaType: sans, serif, mono, extended cyrillic and latin, OFL license\n* {{AUR|otf-russkopis}} \u2013 A free OpenType cursive font for Cyrillic script\n\n==== Greek ====\n\nAlmost all Unicode fonts contain the Greek character set (polytonic included). Some additional font packages, which might not contain the complete Unicode set but utilize high quality Greek (and Latin, of course) typefaces are:\n\n* {{AUR|otf-gfs}} \u2013 Selection of OpenType fonts from the Greek Font Society\n* {{AUR|ttf-mgopen}} \u2013 Professional TrueType fonts from Magenta\n* {{AUR|ttf-sbl-greek}} \u2013 SBL Greek, created by the Society of Biblical Literature (SBL)\n* {{AUR|ttf-sbl-biblit}} \u2013 SBL BibLit, includes characters from both SBL Greek and SBL Hebrew\n\n==== Hebrew ====\n\n* {{AUR|opensiddur-hebrew-fonts}} \u2013 Large collection of Open-source licensed Hebrew fonts. There are also few Latin, Greek, Cyrillic, Arabic, and Amharic.\n* {{AUR|culmus}} \u2013 Nice collection of free Hebrew fonts.\n* {{AUR|alefbet}} \u2013 2 Hebrew fonts (at the moment): the commonly used \"David Libre\", and the handwriting font \"Gveret Levin\".\n* {{AUR|ttf-ms-fonts}} \u2013 contains Arial and other fonts.\n* {{AUR|ttf-sbl-hebrew}} \u2013 SBL Hebrew, created by the Society of Biblical Literature (SBL)\n* {{AUR|ttf-sbl-biblit}} \u2013 SBL BibLit, includes characters from both SBL Hebrew and SBL Greek\n\n==== Indic ====\n\nSee [[Localization/Indic#Fonts]].\n\n==== Khmer ====\n\n* {{Pkg|ttf-khmer}} \u2013 Font covering glyphs for Khmer language\n* [https://www.google.com/fonts/specimen/Hanuman Hanuman] ({{AUR|ttf-google-fonts-git}})\n\n==== Mongolic and Tungusic ====\n\n* {{AUR|ttf-abkai}} \u2013 Fonts for Sibe, Manchu and Daur scripts (incomplete, currently in development)\n\n==== Persian ====\n\n* {{AUR|persian-fonts}} \u2013 Meta package for installing all Persian fonts in AUR.\n* {{AUR|borna-fonts}} \u2013 Borna Rayaneh Co. Persian B font series.\n* {{AUR|iran-nastaliq-fonts}} \u2013 A free Unicode calligraphic Persian font.\n* {{AUR|iranian-fonts}} \u2013 Iranian-Sans and Iranian-Serif Persian font family.\n* {{AUR|ir-standard-fonts}} \u2013 Iran Supreme Council of Information and Communication Technology (SCICT) standard Persian fonts.\n* {{AUR|persian-hm-ftx-fonts}} \u2013 A Persian font series derived from X Series 2, Metafont and FarsiTeX fonts with Kashida feature.\n* {{AUR|persian-hm-xs2-fonts}} \u2013 A Persian font series derived from X Series 2 fonts with Kashida feature.\n* {{AUR|gandom-fonts}}, {{AUR|parastoo-fonts}}, {{AUR|sahel-fonts}}, {{AUR|samim-fonts}}, {{AUR|shabnam-fonts}}, {{AUR|tanha-fonts}}, {{AUR|vazirmatn-fonts}}, {{AUR|vazir-code-fonts}} \u2013 Beautiful Persian fonts made by Saber RastiKerdar.\n* {{AUR|ttf-yas}} \u2013 The Yas Persian font series (with '''hollow zero''').\n* {{AUR|ttf-x2}} \u2013 Free fonts with support for Persian, Arabic, Urdu, Pashto, Dari, Uzbek, Kurdish, Uighur, old Turkish (Ottoman) and modern Turkish (Roman).\n\n==== Tai\u2013Kadai ====\n\n* {{AUR|fonts-tlwg}} \u2013 Collection of scalable Thai fonts\n* {{AUR|ttf-google-thai}} \u2013 High-quality Thai fonts from Google and new [https://cadsondemak.github.io/ improvement] for Thai National Fonts\n* {{AUR|ttf-lao}} \u2013 Lao TTF font (Phetsarath_OT)\n\n==== Tibeto-Burman ====\n\n* {{Pkg|ttf-tibetan-machine}} \u2013 Tibetan Machine TTFont\n* {{AUR|ttf-sil-padauk}} \u2013 Unicode font that supports the many diverse languages that use the Myanmar script\n\n=== Emoji and symbols ===\n\nA section of the Unicode standard is designated for pictographic characters called \"emoji\".\n\n[[Wikipedia:Emoji|Emoji]] fonts come in different formats: CBDT/CBLC (Google), SBIX (Apple), COLR/CPAL (Microsoft), SVG (Mozilla/Adobe).\n\nEmojis should work without any configuration once you have at least one emoji font installed of supported format. Emoji font fallback according to [[Wikipedia:Emoji#Emoji versus text presentation|the standard]] requires [https://github.com/google/emoji-segmenter extra code to handle emoji].\n\nFor the discovery and input of Emoji see [[List of applications/Utilities#Text input]].\n\n{| class=\"wikitable\"\n|-\n! Software !! CBDT/CBLC !! SBIX !! COLR/CPAL !! SVG !! Emoji font fallback\n|-\n! [[Wikipedia:Freetype|Freetype]]\n| {{Yes}} || {{Yes}} || {{Yes}} || {{No|https://savannah.nongnu.org/bugs/?46141}} || {{-}}\n|-\n! [[Wikipedia:Pango|Pango]]\n| colspan=4 {{C|Freetype}} || {{Yes|https://gitlab.gnome.org/GNOME/pango/-/issues/298}}\n|-\n! [[List of applications/Internet#WebKit-based|WebKitGTK]]\n| colspan=4 {{C|Freetype}} || {{Yes|https://trac.webkit.org/changeset/239822/webkit}}\n|-\n! [[Qt]]\n| colspan=4 {{C|Freetype}} || {{No}} [https://bugreports.qt.io/browse/QTBUG-71568] [https://bugreports.qt.io/browse/QTBUG-85014] [https://bugreports.qt.io/browse/QTBUG-85744] \n|-\n! [[Chromium]]\n| colspan=4 {{C|Freetype}} || {{Yes|https://chromium.googlesource.com/chromium/src.git/+/671511b00e2d6c374a3079c1c379d2d0dfad32fe}}\n|-\n! [[Firefox]]\n| colspan=3 {{C|Freetype}} || {{Yes}} || {{No|1=https://bugzilla.mozilla.org/show_bug.cgi?id=1509988}}, see [[Firefox#Font troubleshooting]] for workaround.\n|}\n\n{{Note|Qt can only use first 255 fonts at a time [https://bugreports.qt.io/browse/QTBUG-80434]. Make sure you have an emoji font in your list of [[Font configuration#Set default or fallback fonts|preferred fallback fonts]].}}\n\nCBDT/CBLC:\n\n* {{Pkg|noto-fonts-emoji}} \u2013 Google's open-source Emoji 14.0.\n* {{Pkg|ttf-joypixels}} \u2013 EmojiOne creator's proprietary Emoji 13.1.\n* {{AUR|ttf-twemoji}} \u2013 Twitter's open-source Emoji 13.0.\n\nSVG:\n\n* {{AUR|otf-openmoji}} \u2013 German University of Design in Schw\u00e4bisch Gm\u00fcnd open-source Emoji 13.0.\n* {{AUR|ttf-twemoji-color}} \u2013 Twitter's open-source Emoji 13.0.\n\nOutline only:\n\n* {{AUR|ttf-symbola}} \u2013 provides many Unicode symbols, including emoji.\n\n[[wikipedia:Emoticon#Japanese_style|Kaomoji]] are sometimes referred to as \"Japanese emoticons\" and are composed of characters from various character sets, including CJK and Indic fonts. For example, the following set of packages covers most of existing kaomoji: {{Pkg|gnu-free-fonts}}, {{Pkg|ttf-arphic-uming}}, and {{Pkg|ttf-indic-otf}}.\n\n=== Math ===\n\n* [[wikipedia:Computer Modern|Computer Modern]] ({{AUR|ttf-cm-unicode}}, {{AUR|otf-cm-unicode}})\n* Computer Modern ({{Pkg|otf-latin-modern}}, {{Pkg|otf-latinmodern-math}}) \u2013 Improved version used in LaTeX\n* [[Wikipedia:STIX Fonts project|STIX fonts]] ({{AUR|otf-stix}}) \u2013 STIX is designed to be a royalty-free alternative that resembles Times New Roman. The current version is called STIX Two and includes a math companion named STIX Two Math. \n* [http://www.gust.org.pl/projects/e-foundry/tg-math TeX Gyre math fonts] ({{AUR|tex-gyre-math-fonts}}) \u2013 Math companions of TeX Gyre fonts (see [[#Families]]). Notably, TeX Gyre Termes Math is a math companion of Times New Roman.\n* [[Wikipedia:XITS_font_project|XITS fonts]] ({{AUR|otf-xits}}) \u2013 A fork of STIX and therefore resembles Times New Roman. XITS includes a math companion called XITS Math, which has similar levels of completeness for mathematical symbols and alphabets when compared to STIX Two Math [http://www.gust.org.pl/bachotex/2019-pl/presentations/uvieth-1-2019.pdf], although there are some visual differences.\n\nAdditionally, {{Pkg|texlive-core}} and {{Pkg|texlive-fontsextra}} contain many math fonts such as Latin Modern Math and STIX fonts. See [[TeX Live#Making fonts available to Fontconfig]] for configuration.\n\n=== Other operating system fonts ===\n\n* {{AUR|ttf-mac-fonts}} - Apple MacOS TrueType fonts\n\n== Fallback font order ==\n\nFontconfig automatically chooses a font that matches the current requirement. That is to say, if one is looking at a window containing English and Chinese for example, it will switch to another font for the Chinese text if the default one does not support it.\n\nFontconfig lets every user configure the order they want via {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}}.\nIf you want a particular Chinese font to be selected after your favorite Serif font, your file would look like this:\n\n <?xml version=\"1.0\"?>\n <!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">\n <fontconfig>\n <alias>\n    <family>serif</family>\n    <prefer>\n      <family>Your favorite Latin Serif font name</family>\n      <family>Your Chinese font name</family>\n    </prefer>\n  </alias>\n </fontconfig>\n\n{{Tip|\n* If you use a Chinese locale, set {{ic|LC_LANG}} to {{ic|und}} to make this work. Otherwise both English and Chinese text will be rendered in the Chinese font.\n* After changing the configuration run {{ic|fc-match -a monospace {{!}} head}} to verify your fallback font is set correctly.\n}}\n\nYou can add a section for sans-serif and monospace as well. For more information, have a look at the fontconfig manual.\n\nSee also [[Font configuration#Set default or fallback fonts]].\n\n== Font alias ==\n\nThere are several font aliases which represent other fonts in order that applications may use similar fonts. The most common aliases are: {{ic|serif}} for a font of the serif type (e.g. DejaVu Serif); {{ic|sans-serif}} for a font of the sans-serif type (e.g. DejaVu Sans); and {{ic|monospace}} for a monospaced font (e.g. DejaVu Sans Mono). However, the fonts which these aliases represent may vary and the relationship is often not shown in font management tools, such as those found in [[KDE]] and other [[desktop environments]].\n\nTo reverse an alias and find which font it is representing, run:\n\n{{hc|$ fc-match monospace|\nDejaVuSansMono.ttf: \"DejaVu Sans Mono\" \"Book\"\n}}\n\nIn this case, {{ic|DejaVuSansMono.ttf}} is the font represented by the monospace alias.\n\n== Tips and tricks ==\n\n=== List all installed fonts ===\n\nYou can use the following command to list all installed Fontconfig fonts that are available on your system.\n\n $ fc-list\n\n=== List installed fonts for a particular language ===\n\nApplications and browsers select and display fonts depending upon fontconfig preferences and available font glyph for Unicode text. To list installed fonts for a particular language, issue a command {{ic|1=fc-list :lang=\"''two letter language code''\"}}. For instance, to list installed Arabic fonts or fonts supporting Arabic glyph:\n\n{{hc|1=$ fc-list -f '%{file}\\n' :lang=ar|2=\n/usr/share/fonts/TTF/FreeMono.ttf\n/usr/share/fonts/TTF/DejaVuSansCondensed.ttf\n/usr/share/fonts/truetype/custom/DroidKufi-Bold.ttf\n/usr/share/fonts/TTF/DejaVuSansMono.ttf\n/usr/share/fonts/TTF/FreeSerif.ttf\n}}\n\n=== List installed fonts for a particular Unicode character ===\n\nTo search for monospace fonts supporting a particular Unicode codepoint:\n\n $ fc-match -s monospace:charset=1F4A9\n\n=== Set terminal font on-the-fly ===\n\n{{Expansion|Where is the documentation for the escape codes?}}\n\nFor terminal emulators that use [[X resources]], e.g. [[xterm]] or [[rxvt-unicode]], fonts can be set by using [[Bash/Prompt customization#Bash escape sequences|escape sequences]]. Specifically, {{ic|echo -e \"\\033]710;$font\\007\"}} to change the normal font ({{ic|*font}} in {{ic|~/.Xresources}}), and replace {{ic|710}} with {{ic|711}}, {{ic|712}}, and {{ic|713}} to change the {{ic|*boldFont}}, {{ic|*italicFont}}, and {{ic|*boldItalicFont}}, respectively.\n\n{{ic|$font}} uses the same syntax as in {{ic|~/.Xresources}} and can be anything the terminal emulator will support. (Example: {{ic|1=xft:dejavu sans mono:size=9}})\n\n=== Application-specific font cache ===\n\nMatplotlib ({{Pkg|python-matplotlib}}) uses its own font cache, so after updating fonts, be sure to remove {{ic|~/.matplotlib/fontList.cache}}, {{ic|~/.cache/matplotlib/fontList.cache}}, {{ic|~/.sage/matplotlib-1.2.1/fontList.cache}}, etc. so it will regenerate its cache and find the new fonts [https://discourse.matplotlib.org/t/getting-matplotlib-to-recognize-a-new-font/17754].\n\n=== Bidirectional text support ===\n\nSee [[Bidirectional text]] for troubleshooting problems related to RTL languages.\n\n== See also ==\n\n* [http://behdad.org/text/ State of Text Rendering]\n* [https://fontlibrary.org/en Font Library] - Fonts under Free licenses\n* [https://screenshots.debian.net/packages?search=fonts&show=with Fonts on screenshots.debian.net]"
                    }
                ]
            },
            "2335": {
                "pageid": 2335,
                "ns": 0,
                "title": "Enlightenment",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Desktop environments]]\n[[de:Enlightenment]]\n[[es:Enlightenment]]\n[[ja:Enlightenment]]\n[[zh-hans:Enlightenment]]\n{{Related articles start}}\n{{Related|Desktop environment}}\n{{Related|Display manager}}\n{{Related|Window manager}}\n{{Related articles end}}\n\n== Enlightenment ==\n\nThis comprises both the [https://www.enlightenment.org/ Enlightenment] [[window manager]] and Enlightenment Foundation Libraries (EFL), which provide additional desktop environment features such as a toolkit, object canvas, and abstracted objects. It has been under development since 2005, but in February 2011 the core EFLs saw their first stable 1.0 release.\n\n=== Installation ===\n\n[[Install]] the {{Pkg|enlightenment}} package.\n\nYou might also want to install {{Pkg|terminology}}, which is an EFL-based terminal emulator that integrates well with Enlightenment.\n\n{{Warning|Some of the following PKGBUILDs use unstable development code. Use them at your own risk.}}\n\nDevelopment PKGBUILDs which download and install the very latest development code are available as {{AUR|enlightenment-git}} and its dependencies.\n\nThe following are EFL-based applications, most in an early stage of development and not yet released:\n* {{AUR|ecrire-git}} \u2013 Ecrire text editor\n* {{AUR|edi}} \u2013 An EFL based IDE\n* {{AUR|eluminance-git}} \u2013 Eluminance photo browser\n* {{AUR|enjoy-git}} \u2013 Enjoy music player\n* {{AUR|eperiodique}} \u2013 [http://eperiodique.sourceforge.net/ Eperiodique] periodic table viewer\n* {{Pkg|ephoto}} and {{AUR|ephoto-git}} \u2013 [https://smhouston.us/ephoto/ Ephoto] picture viewer\n* {{AUR|epour}} \u2013 Torrent client based on EFL\n* {{AUR|epymc-git}} \u2013 E Python Media Center\n* {{AUR|equate-git}} \u2013 Equate calculator\n* {{AUR|eruler-git}} \u2013 Eruler on-screen ruler and measurement tools\n* {{AUR|efbb-git}} \u2013 Escape from Booty Bay angry birds style game\n* {{AUR|elemines-git}} \u2013 [http://elemines.sourceforge.net/ Elemines] minesweeper style game\n* {{Pkg|rage}} and {{AUR|rage-git}} \u2013 Rage video player\n* {{AUR|terminology-git}} \u2013 Current git master for {{Pkg|terminology}}\n\n=== Starting Enlightenment ===\n\nSimply choose ''Enlightenment'' session from your favourite [[display manager]] or configure [[xinitrc]] to start it from the console.\n\n==== Entrance ====\n\n{{Warning|Entrance is highly experimental, and does not have proper systemd support. Use it at your own risk.}}\n\nEnlightenment has a new display manager called Entrance, which is provided by the {{AUR|entrance-git}} package. Entrance is quite sophisticated and its configuration is controlled by {{ic|/etc/entrance/entrance.conf}}. It can be used by enabling {{ic|entrance.service}} [[systemd#Using units|using systemd]].\n\n==== Manually ====\n\nIf you prefer to start Enlightenment manually, enter {{ic|startx /usr/bin/enlightenment_start}} in the console. See [[xinitrc]] for details.\n\nTo try the [[Wayland]] compositor, enter {{ic|enlightenment_start}} instead. You may want to install {{AUR|efl-git}} and {{AUR|enlightenment-git}} for this as it is still experimental, yet relatively complete.\n\n=== Configuration ===\n\nEnlightenment has a sophisticated configuration system that can be accessed from the Main menu's Settings submenu.\n\n==== Network ====\n\n'''ConnMan'''\n\nEnlightenment's preferred network manager is [[ConnMan]] which can be installed from the {{Pkg|connman}} package. Follow the instructions on [[ConnMan]] to do the configuration.\n\nFor extended configuration, you may also install Econnman (available in AUR as {{AUR|econnman}} or {{AUR|econnman-git}}) and its associated dependencies. This is not required for general functionality though.\n\n'''Adding the ConnMan Gadget to the Shelf'''\n\n# Settings -> Extensions -> Modules\n# under System\n# Connection Manager\n# Load that (select then hit ''Load'').\n# Right-click on the shelf at the bottom of the screen.\n# Go to Shelf -> Contents\n# Then, just scroll around and find ''ConnMan''.\n# and hit ''Add''.\n\n'''NetworkManager'''\n\nYou can also use {{Pkg|networkmanager}} to manage your network connections - see [[NetworkManager]] for more information.\n\nNote however that the applet will need Appindicator support to show in Enlightenment's [[#System tray|system tray]]. See [[NetworkManager#Appindicator]]. As an alternative to using the applet, NetworkManager includes both CLI and TUI interfaces for network configuration - see [[NetworkManager#Usage]].\n\n==== Polkit agent ====\n\nEnlightenment version DR 0.24.0 ships with a built-in polkit agent, and no extra polkit package is required to authenticate for privileged actions. Earlier versions of Enlightenment do not ship with a [[Polkit#Authentication agents|graphical polkit authentication agent]]. If you want to access privileged actions (e.g. mount a filesystem on a system device), you have to install one and autostart it. For that you should go to ''Settings Panel > Apps > Startup Applications > System'' and activate it. There is an EFL based authentication agent available: {{AUR|polkit-efl-git}}.\n\n==== GNOME Keyring integration ====\n\nIt is possible to use gnome-keyring in Enlightenment. However, at the time of writing, you need a small hack to make it work in full.\nFirst, you must tell Enlightenment to autostart gnome-keyring. For that you should go to ''Settings Panel > Apps > Startup Applications > System'' and activate ''Certificate and Key Storage'', ''GPG Password Agent'', ''SSH Key Agent'' and \"Secret Storage Service\".\nAfter this, you should [[Environment variables#Per user|set]] the following:\n\n{{bc|1=\nSSH_AUTH_SOCK=/run/user/${UID}/keyring/ssh\n}}\n\nThis \"hack\" is used to override the automatic setting of the variable by \"enlightenment-start\" from \"ssh-agent\" to gnome-keyring. \n\nMore information on this topic in the [[GNOME Keyring]] article.\n\n==== System tray ====\n\n{{Note|Since Enlightenment 20, Xembed support has been removed [https://twitter.com/_enlightenment_/status/538000507315314688] meaning that many 'legacy' applets can no longer be displayed in the Systray. To use these applets, you will need to use a standalone system tray application such as {{Pkg|stalonetray}} instead.}}\n\nEnlightenment has support for a system tray but it is disabled by default. To enable the system tray, open the Enlightenment main menu, navigate to the ''Settings'' submenu and click on the ''Modules'' option. Scroll down until you see the ''Systray'' option. Highlight that option and click the ''Load'' button. Now that the module has been loaded, it can be added to the shelf. Right click on the shelf you wish to add the Systray to, hightlight the ''Shelf'' submenu and click on the ''Contents'' option. Scroll down until you see ''Systray''. Highlight that option and click the ''Add'' button.\n\n==== Notifications ====\n\nEnlightenment provides a notification server through its Notification extension.\n* Notifications may be displayed in any corner of the \"screen\" as defined below\n* Available screen policies are Primary Screen, Current Screen, All Screens, and Xinerama\n* Notifications may be filtered based on urgency (Low, Normal, or Critical in any combination)\n* A default notification timeout may be set and optionally enforced for all notifications\n* The notification server may also optionally ignore replace ID requests\n\n=== Themes ===\n\nMore themes to customize the look of Enlightenment are available from:\n* [https://www.enlightenment-themes.org/ enlightenment-themes.org]\n* [https://relighted.c0n.de/#100 relighted.c0n.de] for the default theme in 200 different colors\n* [https://git.enlightenment.org git.enlightenment.org] (git clone the theme you like, run 'make' and you end up with a .edj theme file)\n* [http://packages.bodhilinux.com/bodhi/pool/b6main/b/ packages.bodhilinux.com] has a good collection (you will need to extract the .edj file from the .deb; bsdtar will do this and is part of the base Arch Linux install). A nice catalog can be seen at [https://web.archive.org/web/20140120083020/http://art.bodhilinux.com/doku.php?id=bodhi_e17_themes_v3 their wiki].\n* [https://web.archive.org/web/20161025233126/https://exchange.enlightenment.org/theme exchange.enlightenment.org] (archived)\n\nYou can install the themes (coming in .edj format) using the theme configuration dialog or by moving them to {{ic|~/.e/e/themes}}. \n\n{{Note|Enlightenment does not provide a stable theme API, and there have been numerous theme API changes over the years, even after E17 was released. Themes that have not been updated regularly are unlikely to work.}}\n\n{{Tip|1=To make GTK and Qt applications match the default theme of Enlightenment you can download a theme like the [https://www.gnome-look.org/p/1013662 E17 GTK theme]. Place it in {{ic|~/.themes/}} or install the {{AUR|gtk-theme-e17gtk-git}} package and select application themes from Enlightenments settings, and set it to that, this will make all GTK2 and GTK3 applications match the default Enlightenment theme, you can then configure Qt applications (or configure Qt's default settings) to use the GTK theme so it will mimic the theme your GTK applications are using, this way you can make sure most applications will blend in perfectly with your default enlightenment theme. See also [[Uniform look for Qt and GTK applications]].}}\n\n==== GTK ====\n\nTo alter the GTK theme, go to ''Settings > All > Look > Application Theme''.\n\n=== Modules and Gadgets ===\n\n;Module:Name used in enlightenment to refer to the \"backing\" code for a gadget.  \n;Gadget:Front-end or user interface that should help the end users of Enlightenment do something.\n\nMany Modules provide Gadgets that can be added to your desktop or on a shelf. Some Modules (such as CPUFreq) only provide a single Gadget while others (such as Composite) provide additional features without any gadgets.  Note that certain gadgets such as Systray can only be added to a shelf while others such as Moon can only be loaded on the desktop. \n\n==== \"Extra\" modules ====\n\n{{Warning|These are 3rd party modules and not officially supported by the Enlightenment developers. They are also pulled directly from git, so they are development code that may or may not work at any time. Use at your own risk.}}\nBeyond the modules described here, more \"extra\" modules are available from {{AUR|e-modules-extra-git}}.\n\n'''Scale Windows'''\n\nThe ''Scale Windows'' module, which requires compositing to be enabled, adds several features. The scale windows effect shrinks all open windows and brings them all into view. This is known in \"Mission Control\" in macOS. The scale pager effect zooms out and shows all desktops as a wall, like the compiz expo plugin. Both can be added to the desktop as a gadget or bound to a key binding, mouse binding or screen edge binding.  \n\nSome people like to change the standard window selection key binding {{ic|ALT + Tab}} to use Scale Windows to select windows.  To change this setting, you navigate to ''Menu > Settings > Settings Panel > Input > Keys''.  From here, you can set any key binding you would like.  \n\nTo replace the window selection key binding functionality with Scale Windows, scroll through the left panel until you find the ''ALT'' section and then find and select {{ic|ALT + Tab}}.  Then, scroll through the right panel looking for the \"Scale Windows\" section and choose either ''Select Next'' or ''Select Next (All)'' depending on whether you would like to see windows from only the current desktop or from all desktops and click ''Apply'' to save the binding.\n\nAvailable from [https://git.enlightenment.org/enlightenment/enlightenment-module-comp-scale upstream git].\n\n=== Default Keybindings ===\n\n{| class=\"wikitable\"\n! Key !! Effect\n|-\n| {{ic|Shift+F10}}\n| Maximize vertically\n|-\n| {{ic|Ctrl+Menu}}\n| Show \"Clients\" (windows) Menu\n|-\n| {{ic|Alt+Esc}}\n| Show \"Everything Launcher\" (apps, windows, etc) \n|-\n| {{ic|Super+Left}}\n| Maximize left\n|-\n| {{ic|Super+Right}}\n| Maximize right\n|-\n| {{ic|Alt+Shift+F10}}\n| Maximize horizontally\n|-\n| {{ic|Alt+Shift+Left}}\n| Flip to the desktop on the left\n|-\n| {{ic|Alt+Shift+Right}}\n| Flip to the desktop on the right\n|-\n| {{ic|Ctrl+Alt+d}}\n| Show the desktop\n|-\n| {{ic|Ctrl+Alt+f}}\n| Toggle fullscreen\n|-\n| {{ic|Ctrl+Alt+i}}\n| Toggle iconic mode\n|-\n| {{ic|Ctrl+Alt+k}}\n| Kill window\n|-\n| {{ic|Ctrl+Alt+l}}\n| Invoke the screensaver\n|-\n| {{ic|Ctrl+Alt+n}}\n| Maximize Window                                 \n|-\n| {{ic|Ctrl+Alt+r}}\n| Toggle shade up\n|-\n| {{ic|Ctrl+Alt+w}}\n| Window menu\n|-\n| {{ic|Ctrl+Alt+x}}\n| Close a window\n|-\n| {{ic|Ctrl+Alt+Down}}\n| Lower\n|-\n| {{ic|Ctrl+Alt+Up}}\n| Raise\n|-\n| {{ic|Ctrl+Alt+Left}}\n| Flip to desktop on left\n|-\n| {{ic|Ctrl+Alt+Right}}\n| Flip to desktop on right\n|-\n| {{ic|Ctrl+Alt+Del}}\n| Show \"End session\" dialog\n|-\n| {{ic|Ctrl+Alt+Ins}}\n| Launch the default terminal\n|}\n\n=== Troubleshooting ===\n\nIf you find some unexpected behavior, there are a few things you can do:\n# try to see if the same behavior exists with the default theme\n# disable any 3rd party modules you may have installed\n# backup {{ic|~/.e}} and remove it (e.g. {{ic|mv ~/.e ~/.e.back}})\n\nIf you are sure you found a bug please report it [https://phab.enlightenment.org/maniphest/task/create/ directly upstream]. \n\n==== Compositing ====\n\nWhen the configuration needs to be reset and the settings windows can no longer be approached, configuration for the compositor can be reset using the hardcoded keybinding {{ic|Ctrl + Alt + Shift + Home}}.\n\n==== Unreadable fonts ====\n\nIf fonts are too small and your screen is unreadable, be sure the right font packages are installed. {{Pkg|ttf-dejavu}} and {{Pkg|ttf-bitstream-vera}} are valid candidates.\n\nYou also should consider just increasing the scaling size under the Scaling. You can set scaling under ''Settings > Settings Panel > Look > Scaling''.\n\n==== Backlight always dimmed ====\n\nYou may find that Enlightenment routinely dims the backlight to 0% on logout and will only restore it to 100% when you log into another Enlightenment session. Enlightenment assumes that whatever comes after it will set the backlight to whatever it prefers, if anything as this is what Enlightenment does at start. This is especially problematic when using another desktop environment alongside Enlightenment that cannot control backlight as the backlight will not automatically be restored to its normal level when using that desktop environment. To fix this issue, open the Enlightenment ''Settings Panel'' and, under the ''Look'' tab, click on the ''Composite'' option. Tick the ''Don't fade backlight'' box and click ''OK''.\n\n==== Inconsistent cursor theme ====\n\nYou may find that the cursor theme for the desktop is different to the one used in applications such as [[Firefox]]. This is because desktop applications are using X cursor themes whilst Enlightenment has its own set of cursor themes. For consistency, you can set Enlightenment to always use the X cursor theme. To do this, open the Enlightenment ''Settings Panel'' and click on the ''Input'' tab. Click on the ''Mouse'' option. Change the theme from ''Enlightenment'' to ''X'' and click ''OK''. You should now find that the same cursor theme is used everywhere. If the X cursor theme itself is not always consistent, see [[Cursor themes#XDG specification]].\n\n==== Background images ====\n\nYou can just select wallpapers in the wallpaper settings dialog and import any image with the provided settings dialog, or you can put desired wallpapers into {{ic|~/.e/e/backgrounds/}}\n\nLMB anywhere on the desktop will give access to the settings, select {{ic|/Desktop/Backgrounds/}}\n\nAny new image copied in the {{ic|~/.e/e/backgrounds/}} folder will get the list of available backgrounds auto-updated. You can drop animated gifs and even mp4 and other video files in here and use them as wallpapers if you want. Select desired wallpaper from drop-down menu. Inside the appropriate tabs in the global settings, you can adjust things like tiling of the background image, filling screen and such.\n\n== Enlightenment DR16 ==\n\nEnlightenment, Development Release 16 was first released in 2000, and reached version 1.0 in 2009. Originally, the DR16 stood for the 0.16 version of the Enlightenment project. You will find it as \"Enlightenment16\" now in the Arch repositories, it is still under development today, regularly updated by its maintainer Kim 'kwo' Woelders. With compositing, shadows and transparencies, E16 kept all of the speed that presided over its foundation by original author Carsten \"Rasterman\" Haitzler but with up to date refinement.\n\n=== To install E16 ===\n\nInstall {{AUR|enlightenment16}}.\n\nSee {{ic|/usr/share/doc/e16/e16.html}} for in depth documentation.\n\n=== Basic Configuration ===\n\nMost configuration files for E16 reside in {{ic|~/.e16}} and are text-based, editable at will. That includes the Menus too.\n\nShortcut keys can be either modified by hand, or with the e16keyedit software provided as source on the [https://sourceforge.net/projects/enlightenment/ sourceforge] page of the e16 project. Note that the keyboard shortcuts file is not created in {{ic|~/.e16}} by default. You can copy the packaged version to your home directory if you wish to make changes:\n $ cp /usr/share/e16/config/bindings.cfg ~/.e16\n\n==== Start/Restart/Stop Scripts ====\n\nCreate an Init, a Start and a Stop folder in your {{ic|~/.e16}} folder: any .sh script found there will either be executed at Startup (from Init folder), at each Restart (from Start folder), or at Shutdown (from Stop folder); provided you allowed it through the MMB / settings / session / <enable scripts> button and made them [[executable]]. Typical examples involves starting pulseaudio or your favorite network manager applet.\n\n==== Compositor ====\n\nShadows, Transparent effects ''et al'' can be found in MMB or RMB /Settings, under Composite .\n\n== See also ==\n\n* [https://www.enlightenment.org/ Enlightenment Homepage]\n* [https://docs.enlightenment.org/ Enlightenment Developer Documentation]\n* [http://www.e17-stuff.org/ E17-Stuff]\n* [https://sourceforge.net/projects/enlightenment/ DR16 download resource]\n* [https://lists.sourceforge.net/lists/listinfo/enlightenment-users Enlightenment users mail list]\n* [https://lists.sourceforge.net/lists/listinfo/enlightenment-devel Enlightenment developer mail list]\n* ircs://irc.libera.chat/e"
                    }
                ]
            },
            "2408": {
                "pageid": 2408,
                "ns": 0,
                "title": "Fonts (\u7b80\u4f53\u4e2d\u6587)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Fonts (\u7b80\u4f53\u4e2d\u6587)]]\n[[de:Schriftarten]]\n[[en:Fonts]]\n[[es:Fonts]]\n[[ja:\u30d5\u30a9\u30f3\u30c8]]\n[[uk:Fonts]]\n{{Related articles start (\u7b80\u4f53\u4e2d\u6587)}}\n{{Related|\u5b57\u4f53\u914d\u7f6e}}\n{{Related|Linux \u63a7\u5236\u53f0#\u5b57\u4f53}}\n{{Related2|Java Runtime Environment fonts|Java \u73af\u5883\u5b57\u4f53}}\n{{Related|Metric-compatible fonts}}\n{{Related2|Microsoft fonts (\u7b80\u4f53\u4e2d\u6587)|\u5fae\u8f6f\u5b57\u4f53}}\n{{Related articles end}}\n{{Translateme (\u7b80\u4f53\u4e2d\u6587)|Not fully translated.}}\n{{TranslationStatus (\u7b80\u4f53\u4e2d\u6587)|Fonts|2022-07-18|738271}}\n\n\u5f15\u81ea[[Wikipedia:zh-cn:\u8ba1\u7b97\u673a\u5b57\u4f53|\u7ef4\u57fa\u767e\u79d1]]\uff1a\u201c\u8ba1\u7b97\u673a\u5b57\u4f53\u88ab\u5b9e\u73b0\u4e3a\u5305\u542b\u4e00\u7ec4\u56fe\u5f62\u76f8\u5173\u5b57\u5f62\u7684\u6570\u5b57\u6570\u636e\u6587\u4ef6\u3002\u4f7f\u7528\u5b57\u4f53\u7f16\u8f91\u5668\u8bbe\u8ba1\u548c\u521b\u5efa\u8ba1\u7b97\u673a\u5b57\u4f53\u3002\u4e13\u4e3a\u8ba1\u7b97\u673a\u5c4f\u5e55\u800c\u975e\u6253\u5370\u800c\u8bbe\u8ba1\u7684\u8ba1\u7b97\u673a\u5b57\u4f53\u662f\u5c4f\u5e55\u5b57\u4f53\u3002\u201d\n\n\u6ce8\u610f\u90e8\u5206\u5b57\u4f53\u8bb8\u53ef\u534f\u8bae\u53ef\u80fd\u4f1a\u89c4\u5b9a\u4e00\u4e9b\u6cd5\u5f8b\u9650\u5236\u3002\n\n== \u5b57\u4f53\u683c\u5f0f ==\n\n\u73b0\u5728\u4f7f\u7528\u7684\u8ba1\u7b97\u673a\u5b57\u4f53\u7edd\u5927\u591a\u6570\u90fd\u5c5e\u4e8e'''\u70b9\u9635'''\u6216'''\u8f6e\u5ed3'''\u6570\u636e\u683c\u5f0f\u3002\n\n;\u70b9\u9635\u5b57\u4f53: \u7528\u70b9\u6216\u8005\u50cf\u7d20\u7ec4\u6210\u7684\u77e9\u9635\u4ee3\u8868\u6bcf\u79cd\u5b57\u5f62\u7684\u6bcf\u79cd\u5f62\u5f0f\u548c\u5c3a\u5bf8\u7684\u56fe\u50cf\u3002\n;\u8f6e\u5ed3\u5b57\u4f53\uff0c\u6216\u79f0''\u77e2\u91cf''\u5b57\u4f53: \u4f7f\u7528\u8d1d\u585e\u5c14\u66f2\u7ebf\u3001\u7ed8\u56fe\u6307\u4ee4\u548c\u6570\u5b66\u516c\u5f0f\u63cf\u8ff0\u6bcf\u79cd\u5b57\u5f62\uff0c\u4f7f\u5f97\u5b57\u4f53\u8f6e\u5ed3\u53ef\u4ee5\u9002\u5e94\u5404\u79cd\u5c3a\u5bf8\u3002\n\n=== \u70b9\u9635\u683c\u5f0f ===\n\n* [[Wikipedia:Glyph Bitmap Distribution Format|Bitmap Distribution Format]]\uff08BDF\uff09- \u6765\u81ea Adobe\n* [[Wikipedia:Portable Compiled Format|Portable Compiled Format]]\uff08PCF\uff09- \u6765\u81ea Xorg\n* [[Wikipedia:PC Screen Font|PC Screen Font]]\uff08PSF\uff09\u5185\u6838\u63a7\u5236\u53f0\u5b57\u4f53\uff0c\u4e0d\u53d7 Xorg \u652f\u6301\uff08Unicode PSF \u6587\u4ef6\u7684\u6269\u5c55\u540d\u662f {{ic|psfu}}\uff09\n\n\u8fd9\u4e9b\u683c\u5f0f\u4e5f\u53ef\u4ee5\u88ab gzip \u538b\u7f29\u3002\u53ef\u7528\u7684\u70b9\u9635\u5b57\u4f53\u8bf7\u53c2\u89c1[[#\u70b9\u9635]]\u3002\n\n=== \u8f6e\u5ed3\u683c\u5f0f ===\n\n* [[Wikipedia:PostScript fonts|PostScript \u5b57\u4f53]] \u7531 Adobe \u5b9a\u4e49\u2014\u2014\u5305\u542b\u591a\u79cd\u683c\u5f0f\uff0c\u5982\u6253\u5370\u673a ASCII \u5b57\u4f53\uff08Printer Font ASCII\uff0cPFA\uff09\u548c\u6253\u5370\u673a\u4e8c\u8fdb\u5236\u5b57\u4f53\uff08Printer Font Binary\uff0cPFB\uff09\n* [[Wikipedia:TrueType|TrueType]] \u2014\u2014 \u7531 Apple \u548c Microsoft \u5b9a\u4e49\uff08\u6269\u5c55\u540d\u4e3a {{ic|ttf}}\uff09\n* [[Wikipedia:OpenType|OpenType]] \u2014\u2014 \u7531 Microsoft \u5b9a\u4e49\uff0c\u57fa\u4e8e TrueType\uff08\u6269\u5c55\u540d\u4e3a {{ic|otf}} \u6216 {{ic|ttf}}\uff09\n\n\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\u90fd\u53ef\u4ee5\u5ffd\u7565 TrueType \u548c OpenType \u4e4b\u95f4\u7684\u6280\u672f\u5dee\u5f02\u3002\n\n=== \u5176\u5b83\u683c\u5f0f ===\n\n\u6392\u7248\u7a0b\u5e8f [[TeX Live (\u7b80\u4f53\u4e2d\u6587)|TeX]] \u548c\u914d\u5957\u7684\u5b57\u4f53\u8f6f\u4ef6 ''Metafont'' \u4f20\u7edf\u4e0a\u7528\u5b83\u4eec\u81ea\u5df1\u7684\u65b9\u6cd5\u6e32\u67d3\u5b57\u4f53\u3002\u90e8\u5206\u7528\u4e8e\u8fd9\u4e24\u4e2a\u7a0b\u5e8f\u7684\u5b57\u4f53\u7684\u6587\u4ef6\u540e\u7f00\u6709 {{ic|*pk}}\u3001{{ic|*gf}}\u3001{{ic|mf}} \u4e0e {{ic|vf}}\u3002\u73b0\u5728\u7684\u7248\u672c\u4e5f\u652f\u6301 TrueType \u548c OpenType \u5b57\u4f53\u3002\n\n[https://fontforge.github.io/en-US/ FontForge]\uff08{{Pkg|fontforge}}\uff09\u662f\u4e00\u4e2a\u5b57\u4f53\u7f16\u8f91\u7a0b\u5e8f\uff0c\u53ef\u4ee5\u4ee5\u81ea\u5df1\u7684\u6587\u672c\u683c\u5f0f {{ic|sfd}}\uff08''s''pline ''f''ont ''d''atabase\uff09\u50a8\u5b58\u5b57\u4f53\u3002\n\n[https://www.w3.org/TR/SVG/fonts.html SVG] \u683c\u5f0f\u4e5f\u6709\u81ea\u5df1\u7684\u5b57\u4f53\u63cf\u8ff0\u65b9\u6cd5\u3002\n\n== \u5b89\u88c5 ==\n\n\u53ef\u4ee5\u4f7f\u7528\u591a\u79cd\u65b9\u6cd5\u5b89\u88c5\u5b57\u4f53\u3002\n\n=== Pacman ===\n\n\u53ef\u4ee5\u4f7f\u7528 [[pacman (\u7b80\u4f53\u4e2d\u6587)|pacman]] \u5b89\u88c5\u542f\u7528\u7684\u8f6f\u4ef6\u6e90\u4e2d\u7684\u5b57\u4f53\u548c\u5b57\u4f53\u96c6\u3002\n\n\u53ef\u4ee5\u901a\u8fc7[[pacman (\u7b80\u4f53\u4e2d\u6587)#\u67e5\u8be2\u5305\u6570\u636e\u5e93|\u67e5\u8be2\u5305]]\u67e5\u627e\u53ef\u7528\u7684\u5b57\u4f53\uff08\u6bd4\u5982\u4ee5 {{ic|font}} \u6216 {{ic|ttf}} \u4f5c\u4e3a\u5173\u952e\u5b57\u67e5\u627e\uff09\u3002\n\n=== \u521b\u5efa\u8f6f\u4ef6\u5305 ===\n\n\u5e94\u8be5\u8ba9 pacman \u7ba1\u7406\u5b57\u4f53\uff0c\u8fd9\u53ef\u4ee5\u901a\u8fc7[[\u521b\u5efa\u8f6f\u4ef6\u5305|\u521b\u5efa Arch \u8f6f\u4ef6\u5305]]\u5b8c\u6210\u3002\u4e5f\u53ef\u4ee5\u5728 [[Arch User Repository (\u7b80\u4f53\u4e2d\u6587)|AUR]] \u4e2d\u4e0e\u793e\u533a\u5206\u4eab\u3002\u5b89\u88c5\u5b57\u4f53\u7684\u5305\u975e\u5e38\u76f8\u4f3c\uff1b\u8bf7\u53c2\u89c1[[\u5b57\u4f53\u6253\u5305\u6307\u5f15]]\u3002\n\n\u53ef\u4ee5\u7528 {{ic|fc-query}} \u67e5\u770b\u5b57\u4f53\u7684\u5b57\u4f53\u7cfb\u5217\uff0c\u4f8b\u5982\uff1a{{ic|fc-query -f '%{family[0]}\\n' \u6587\u4ef6\u8def\u5f84}}\u3002{{man|3|FcPatternFormat}} \u4e2d\u63cf\u8ff0\u4e86\u8f93\u51fa\u7684\u683c\u5f0f\u3002\n\n=== \u624b\u52a8\u5b89\u88c5 ===\n\n\u8981\u5b89\u88c5\u4e0d\u5728\u6e90\u4e2d\u7684\u5b57\u4f53\uff0c\u63a8\u8350\u7684\u65b9\u6cd5\u662f[[#\u521b\u5efa\u8f6f\u4ef6\u5305]]\u3002\u8fd9\u4f7f\u5f97 pacman \u5728\u4ee5\u540e\u80fd\u591f\u66f4\u65b0\u6216\u8005\u79fb\u9664\u5b83\u4eec\u3002\n\n\u5b57\u4f53\u4e5f\u53ef\u4ee5\u624b\u52a8\u5b89\u88c5\uff1a\n\n* \u8981\u4e3a\u5355\u4e2a\u7528\u6237\u5b89\u88c5\uff0c\u5b89\u88c5\u5230 {{ic|~/.local/share/fonts/}}\u3002\n** \u591a\u6570\u65f6\u5019\u8fd9\u5c31\u8db3\u591f\u4e86\uff0c\u9664\u975e\u4ee5\u5176\u4ed6\u7528\u6237\u7684\u8eab\u4efd\u8fd0\u884c\u56fe\u5f62\u7a0b\u5e8f\u3002\n** \u4e4b\u524d\u66fe\u4f7f\u7528\u8fc7 {{ic|~/.fonts/}}\uff0c\u4f46\u73b0\u5728\u5df2\u88ab\u5f03\u7528\u3002\n* \u8981\u4e3a\u7cfb\u7edf\uff08\u6240\u6709\u7528\u6237\uff09\u5b89\u88c5\uff0c\u5b89\u88c5\u5230 {{ic|/usr/local/share/fonts/}}\u3002\n** \u53ef\u80fd\u9700\u8981\u5148\u521b\u5efa\u8be5\u76ee\u5f55\uff1a{{ic|mkdir -p /usr/local/share/fonts}}\u3002\n** {{ic|/usr/share/fonts/}} \u7531\u5305\u7ba1\u7406\u5668\u7ba1\u7406\uff0c\u8bf7\u52ff\u624b\u52a8\u4fee\u6539\u3002\n\n\u662f\u5426\u8981\u521b\u5efa\u5b50\u76ee\u5f55\u7531\u7528\u6237\u51b3\u5b9a\uff0c\u5404\u53d1\u884c\u7248\u4e5f\u6709\u4e0d\u540c\u3002\u4e3a\u660e\u6670\u8d77\u89c1\uff0c\u53ef\u5c06\u6bcf\u4e2a\u5b57\u4f53\u65cf\u653e\u5728\u5355\u72ec\u7684\u76ee\u5f55\u91cc\u3002fontconfig \u5c06\u9012\u5f52\u641c\u7d22\u9ed8\u8ba4\u8def\u5f84\uff0c\u53ef\u67e5\u627e\u5230\u5b50\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u3002\n\n\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\uff1a\n\n /usr/local/share/fonts/\n \u251c\u2500\u2500 otf\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 SourceCodeVariable\n \u2502\u00a0\u00a0     \u251c\u2500\u2500 SourceCodeVariable-Italic.otf\n \u2502\u00a0\u00a0     \u2514\u2500\u2500 SourceCodeVariable-Roman.otf\n \u2514\u2500\u2500 ttf\n     \u251c\u2500\u2500 AnonymousPro\n     \u2502\u00a0\u00a0 \u251c\u2500\u2500 Anonymous-Pro-B.ttf\n     \u2502   \u251c\u2500\u2500 Anonymous-Pro-I.ttf\n     \u2502\u00a0\u00a0 \u2514\u2500\u2500 Anonymous-Pro.ttf\n     \u2514\u2500\u2500 CascadiaCode\n      \u00a0\u00a0 \u251c\u2500\u2500 CascadiaCode-Bold.ttf\n      \u00a0\u00a0 \u251c\u2500\u2500 CascadiaCode-Light.ttf\n         \u2514\u2500\u2500 CascadiaCode-Regular.ttf\n\n\u8bf7\u786e\u4fdd\u6240\u6709\u7528\u6237\u90fd\u6709\u8bfb\u53d6\u5b57\u4f53\u6587\u4ef6\u7684\u6743\u9650\uff0c\u5373\u81f3\u5c11 [[chmod]] \u6587\u4ef6\u4e3a {{ic|444}}\uff0c\u76ee\u5f55\u4e3a {{ic|555}}\u3002\n\n\u8981\u8ba9 Xserver \u76f4\u63a5\u8f7d\u5165\u5b57\u4f53\uff08\u800c\u4e0d\u662f\u4f7f\u7528\u67d0\u4e9b''\u5b57\u4f53\u670d\u52a1''\uff09\uff0c\u5c31\u9700\u8981\u5c06\u65b0\u589e\u5b57\u4f53\u7684\u76ee\u5f55\u52a0\u5165\u5230 FontPath \u4e2d\u3002\u5b83\u4f4d\u4e8e[[Xorg (\u7b80\u4f53\u4e2d\u6587)#\u914d\u7f6e|Xorg \u8bbe\u7f6e\u6587\u4ef6]]\uff08\u4f8b\u5982 {{ic|/etc/X11/xorg.conf}} \u6216 {{ic|/etc/xorg.conf}}) \u4e2d\u3002\u66f4\u591a\u8be6\u7ec6\u5185\u5bb9\u8bf7\u53c2\u89c1[[#\u8f83\u65e7\u7684\u5e94\u7528\u7a0b\u5e8f]]\u3002\n\n\u6700\u540e\uff0c\u66f4\u65b0 fontconfig \u7684\u7f13\u5b58\uff08\u901a\u5e38\u4e0d\u9700\u8981\uff0c\u56e0\u4e3a\u4f7f\u7528 fontconfig \u5e93\u7684\u8f6f\u4ef6\u4f1a\u8fd9\u6837\u505a\uff09\uff1a\n\n $ fc-cache\n\n=== \u8f83\u65e7\u7684\u5e94\u7528\u7a0b\u5e8f ===\n\n\u5bf9\u4e8e\u4e0d\u652f\u6301 fontconfig \u7684\u65e7\u5e94\u7528\u7a0b\u5e8f\uff08\u4f8b\u5982 GTK 1.x \u5e94\u7528\u7a0b\u5e8f\u548c {{ic|xfontsel}}\uff09\uff0c\u9700\u8981\u5728\u5b57\u4f53\u76ee\u5f55\u4e2d\u521b\u5efa\u7d22\u5f15\uff1a\n\n $ mkfontscale\n $ mkfontdir\n\n\u6216\u5728\u4e00\u6761\u547d\u4ee4\u4e2d\u5305\u542b\u591a\u4e2a\u76ee\u5f55\uff1a\n\n $ for dir in /font/dir1/ /font/dir2/; do xset +fp $dir; done && xset fp rehash\n\n\u6216\u8005\uff0c\u5982\u679c\u5b57\u4f53\u88ab\u5b89\u88c5\u5728\u4e0d\u540c\u7684\u5b50\u6587\u4ef6\u5939\u4e2d\uff0c\u6bd4\u5982\u5728 {{ic|/usr/share/fonts}} \u4e0b\uff1a\n\n $ for dir in * ; do if [  -d  \"$dir\"  ]; then cd \"$dir\";xset +fp \"$PWD\" ;mkfontscale; mkfontdir;cd .. ;fi; done && xset fp rehash\n\n\u6709\u65f6 X \u670d\u52a1\u5668\u53ef\u80fd\u65e0\u6cd5\u52a0\u8f7d\u5b57\u4f53\u76ee\u5f55\uff0c\u8fd9\u65f6\u9700\u8981\u91cd\u65b0\u626b\u63cf\u6240\u6709 {{ic|fonts.dir}} \u6587\u4ef6\uff1a\n\n # xset +fp /usr/share/fonts/misc # \u5c06\u65b0\u76ee\u5f55\u544a\u8bc9 X \u670d\u52a1\u5668\n # xset fp rehash                # \u5f3a\u5236\u91cd\u65b0\u626b\u63cf\n\n\u67e5\u8be2\u5b57\u4f53\u662f\u5426\u5df2\u7ecf\u751f\u6548\uff1a\n\n $ xlsfonts | grep fontname\n\n{{\u6ce8\u610f|\u8bb8\u591a\u8f6f\u4ef6\u5305\u5728\u5b89\u88c5\u65f6\u4f1a\u81ea\u52a8\u914d\u7f6e Xorg\u3002\u8fd9\u79cd\u60c5\u51b5\u4e0b\u65e0\u9700\u6267\u884c\u6b64\u6b65\u9aa4\u3002}}\n\n\u8fd9\u4e5f\u53ef\u4ee5\u5728 {{ic|/etc/X11/xorg.conf}} \u6216 {{ic|/etc/X11/xorg.conf.d}} \u4e2d\u5168\u5c40\u8bbe\u7f6e\u3002\n\n\u8fd9\u4e2a\u4f8b\u5b50\u6f14\u793a\u4e86\u5fc5\u987b\u52a0\u5165\u5230 {{ic|/etc/X11/xorg.conf}} \u4e2d\u7684\u4e00\u8282\u5185\u5bb9\u3002\u8bf7\u6839\u636e\u5b9e\u9645\u9700\u8981\u6dfb\u52a0\u6216\u5220\u9664\u8def\u5f84\u3002\n\n # \u8ba9 X.Org \u77e5\u9053\u81ea\u5b9a\u4e49\u5b57\u4f53\u76ee\u5f55\n Section \"Files\"\n     FontPath    \"/usr/share/fonts/100dpi\"\n     FontPath    \"/usr/share/fonts/75dpi\"\n     FontPath    \"/usr/share/fonts/cantarell\"\n     FontPath    \"/usr/share/fonts/cyrillic\"\n     FontPath    \"/usr/share/fonts/encodings\"\n     FontPath    \"/usr/share/fonts/misc\"\n     FontPath    \"/usr/share/fonts/truetype\"\n     FontPath    \"/usr/share/fonts/TTF\"\n     FontPath    \"/usr/share/fonts/util\"\n EndSection\n\n=== Pango \u8b66\u544a ===\n\n\u5982\u679c\u7cfb\u7edf\u4f7f\u7528 [https://www.pango.org/ Pango]\uff0c\u90a3\u5b83\u5c31\u4f1a\u8bfb\u53d6 [https://www.freedesktop.org/wiki/Software/fontconfig fontconfig] \u6765\u67e5\u627e\u5b57\u4f53\u6765\u6e90\u3002\n\n (process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'\n (process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'\n\n\u5982\u679c\u770b\u5230\u7c7b\u4f3c\u4e0a\u9762\u7684\u9519\u8bef\uff0c\u6216\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u770b\u5230\u65b9\u5757\u800c\u4e0d\u662f\u6587\u5b57\uff0c\u5c31\u9700\u8981\u6dfb\u52a0\u5b57\u4f53\u5e76\u66f4\u65b0\u5b57\u4f53\u7f13\u5b58\u3002\u4ee5\u4e0b\u793a\u4f8b\u4ee5 {{Pkg|ttf-liberation}} \u5b57\u4f53\u4e3a\u4f8b\u8bb2\u89e3\uff08\u6210\u529f\u5b89\u88c5\u8f6f\u4ef6\u5305\u540e\uff09\u5982\u4f55\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u5e76\u4f7f\u7528 root \u6743\u9650\u8fd0\u884c\u5982\u6765\u4f7f\u5b57\u4f53\u5728\u7cfb\u7edf\u8303\u56f4\u5185\u751f\u6548\u3002\n\n{{hc|# fc-cache|\n/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs\n/usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs\n/usr/share/fonts/encodings: caching, new cache contents: 0 fonts, 1 dirs\n/usr/share/fonts/encodings/large: caching, new cache contents: 0 fonts, 0 dirs\n/usr/share/fonts/util: caching, new cache contents: 0 fonts, 0 dirs\n/var/cache/fontconfig: cleaning cache directory\nfc-cache: succeeded\n}}\n\n\u53ef\u4ee5\u8fd9\u6837\u6d4b\u8bd5\u8bbe\u7f6e\u7684\u9ed8\u8ba4\u5b57\u4f53\uff1a\n\n{{hc|$ fc-match|\nLiberationMono-Regular.ttf: \"Liberation Mono\" \"Regular\"\n}}\n\n== \u5b57\u4f53\u5305 ==\n\n\u4ee5\u4e0b\u662f\u4e00\u4e2a\u6709\u9009\u62e9\u7684\u5217\u8868\uff0c\u5176\u4e2d\u5305\u62ec [[Arch User Repository (\u7b80\u4f53\u4e2d\u6587)|AUR]] \u4ee5\u53ca\u5b98\u65b9\u5b58\u50a8\u5e93\u4e2d\u7684\u8bb8\u591a\u5b57\u4f53\u5305\u3002\u6807\u8bb0\u4e3a\u201cUnicode\u201d\u7684\u5b57\u4f53\u5177\u6709\u5e7f\u6cdb\u7684 [[wikipedia:unicode|Unicode]] \u652f\u6301\u3002\n\n{{\u63d0\u793a|[https://github.com/ternstor/distrofonts Archfonts] \u662f\u4e00\u4e2a Python \u811a\u672c\uff0c\u53ef\u7528\u4e8e\u751f\u6210\u5b98\u65b9\u5b58\u50a8\u5e93\u548c AUR \u4e2d\u6240\u6709 TTF \u5b57\u4f53\u7684\u6982\u8ff0\u3002}}\n\n=== \u70b9\u9635 ===\n\n{{\u6ce8\u610f|{{Pkg|pango}} 1.44 [https://blogs.gnome.org/mclasen/2019/05/25/pango-future-directions/ \u653e\u5f03\u652f\u6301 FreeType\uff0c\u8f6c\u800c\u652f\u6301 HarfBuzz]\uff0c\u56e0\u6b64[https://blogs.gnome.org/mclasen/2019/08/07/pango-1-44-wrap-up/ \u4e0d\u518d\u652f\u6301\u4f20\u7edf BDF/PCF \u70b9\u9635\u5b57\u4f53]\uff0c\u56e0\u6b64\u4e00\u4e9b\u5e94\u7528\u7a0b\u5e8f\uff08\u4f8b\u5982 {{Pkg|gnome-terminal}}\uff09\u5c06\u4e0d\u518d\u80fd\u591f\u4f7f\u7528\u6b64\u7c7b\u5b57\u4f53\uff0c\u4ece\u800c\u663e\u793a\u77e9\u5f62\u800c\u4e0d\u662f\u5b57\u5f62\u3002\u53c2\u89c1 {{Bug|63297}}\u3001[https://gitlab.gnome.org/GNOME/pango/issues/386 Pango issue #386] \u548c [https://github.com/harfbuzz/harfbuzz/issues/1897 HarfBuzz issue #1897]\u3002}}\n\n* Default 8x16\n* [https://github.com/seraxis/pcf-spectrum-berry Berry] ({{AUR|pcf-spectrum-berry}}) \u2013 8px\n* [https://www.dcmembers.com/jibsen/download/61/ Dina] ({{Pkg|dina-font}}) \u2013 6pt, 8pt, 9pt, 10pt, monospaced, based on Proggy\n* [http://openlab.jp/efont/unicode/ Efont] ({{AUR|efont-unicode-bdf}}) \u2013 10px, 12px, 14px, 16px, 24px, normal, bold and italic\n* [https://font.gohu.org/ Gohu] ({{AUR|gohufont}}) \u2013 11px, 14px, normal and bold\n* [http://artwizaleczapka.sourceforge.net/ Lime] ({{AUR|artwiz-fonts}})\n* [https://tobiasjung.name/profont/ ProFont] ({{AUR|ttf-profont-iix}}) \u2013 10px, 11px, 12px, 15px, 17px, 22px, 29px, normal\n* [[Wikipedia:Proggy programming fonts|Proggy]] ({{AUR|proggyfonts}}) \u2014\u2014 \u6709\u4e0d\u540c\u7684\u53d8\u4f53\n* [http://www.fial.com/~scott/tamsyn-font/ Tamsyn] ({{Pkg|tamsyn-font}})\n* [https://terminus-font.sourceforge.net/ Terminus] ({{Pkg|terminus-font}})\n* [https://github.com/lucy/tewi-font Tewi] ({{AUR|bdf-tewi-git}})\n* [https://unifoundry.com/unifont.html Unifont] ([[Wikipedia:Unicode font#Comparison of fonts|most extensive]] Unicode coverage of any font) ({{AUR|bdf-unifont}})\n\n\u9002\u7528\u4e8e Pango 1.44\uff1a\n\n* [https://tobiasjung.name/profont/ ProFont] ({{AUR|profont-otb}}) \u2013 OpenType Bitmap (OTB) variant of ProFont\n* [https://xorg.freedesktop.org/releases/individual/font/ Misc Fixed] {{AUR|xorg-fonts-misc-otb}}\n* [https://font.gohu.org/ Gohufont] ({{AUR|gohufont-otb}})\n* [https://github.com/slavfox/Cozette/ Cozette] ({{AUR|cozette-otb}})\n* [https://terminus-font.sourceforge.net/ Terminus] ({{Pkg|terminus-font}})\n* AUR \u4e2d\u7684\u5176\u4ed6 [https://aur.archlinux.org/packages/?O=0&SeB=n&K=-otb&outdated=&SB=n&SO=a&PP=50&do_Search=Go OTB] \u5b57\u4f53\n\n=== \u62c9\u4e01\u6587\u5b57 ===\n\n==== \u5b57\u4f53\u65cf ====\n\nPackages [[Font package guidelines#Provides|providing a base font set]]:\n* [[Wikipedia:Bitstream Vera|Bitstream Vera]] ({{Pkg|ttf-bitstream-vera}}) \u2013 \u5305\u542b\u65e0\u886c\u7ebf\u3001\u886c\u7ebf\u548c\u7b49\u5bbd\u5b57\u4f53\u3002Bitstream Vera Sans is metrically compatible with [[Wikipedia:Verdana|Verdana]].\n* [[Wikipedia:Croscore fonts|Croscore fonts]] ({{Pkg|ttf-croscore}}) \u2013 [[Metric-compatible fonts]] for Helvetica, Times, and Courier, shipped with Chrome OS\n* [[Wikipedia:DejaVu fonts|DejaVu fonts]] ({{Pkg|ttf-dejavu}}) \u2013 Bitstream Vera modified for greater Unicode coverage\n* [[Wikipedia:Droid (font)|Droid]] ({{Pkg|ttf-droid}}) \u2013 Default font for older Android versions with wide Unicode coverage including CJK but not symbols and emojis\n* [[Wikipedia:GNU FreeFont|GNU FreeFont]] ({{Pkg|gnu-free-fonts}}) \u2013 Includes three fonts that are open-source clones of Helvetica, Times, and Courier, but are [https://askubuntu.com/questions/346552/closest-alternative-to-times-new-roman/1148247#1148247metrically metrically slightly different]. Most Latin characters are from [[Wikipedia:URW Type Foundry|URW]] fonts (e.g., [[Wikipedia:Nimbus Roman No. 9 L|Nimbus Roman]], [[Wikipedia:Nimbus Sans|Nimbus Sans]]), good Unicode coverage but does not include CJK\n* [[Wikipedia:IBM Plex|IBM Plex]] ({{Pkg|ttf-ibm-plex}}) \u2013 Serif, sans-serif, condensed sans-serif and monospace with true italics\n* [[Wikipedia:Liberation fonts|Liberation fonts]] ({{Pkg|ttf-liberation}}) \u2013 [[Metric-compatible fonts]] for Helvetica, Times, and Courier, but are visually different\n* [[Wikipedia:Linux Libertine|Linux Libertine]] ({{Pkg|ttf-linux-libertine}}) \u2013 Serif (Libertine) and sans serif (Biolinum) fonts with large Unicode coverage\n* [[Microsoft fonts]]\uff08{{AUR|ttf-ms-win11}}\uff09\u2014\u2014 Windows 11 \u5b57\u4f53\uff08\u9700\u8981 Windows 11 \u5b89\u88c5\u6216\u5b89\u88c5\u4ecb\u8d28\uff09\n* [[Wikipedia:Noto fonts|Noto fonts]] ({{Pkg|noto-fonts}}) \u2013 Google font family with full Unicode coverage if installed with its emoji and CJK optional dependencies\n\nPackages not providing a base font set:\n* [https://b612-font.com/ B612] ({{AUR|ttf-b612}}) \u2014\u2014\u7531 Airbus \u8d5e\u52a9\u7684\u5f00\u6e90\u5b57\u4f53\u7cfb\u5217\uff08\u65e0\u886c\u7ebf\u548c\u7b49\u5bbd\uff09\uff0c\u4e13\u4e3a\u5728\u98de\u673a\u9a7e\u9a76\u8231\u5c4f\u5e55\u4e0a\u9605\u8bfb\u800c\u8bbe\u8ba1\n* [[Wikipedia:Luxi fonts|Luxi fonts]] ({{AUR|font-bh-ttf}}) \u2014\u2014\u7c7b\u4f3c Lucida \u7684 X.Org \u5b57\u4f53\u65cf\n* [[Wikipedia:Roboto|Roboto]] ({{Pkg|ttf-roboto}}) \u2013 Default font for newer Android versions where it is complemented by Noto fonts for languages not supported like CJK\n* [http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html TeX Gyre fonts] ({{Pkg|tex-gyre-fonts}}) \u2013 [[Metric-compatible fonts]] for Helvetica, Times, and Courier by the Polish GUST association of TeX users. They have their own math companion fonts, see [[#\u6570\u5b66]].\n* [[Wikipedia:Ubuntu Font Family|Ubuntu \u5b57\u4f53\u65cf]] ({{Pkg|ttf-ubuntu-font-family}})\n\n\u65e7\u7248 Microsoft \u5b57\u4f53\u5305\uff1a\n* [http://corefonts.sourceforge.net/ Microsoft \u5b57\u4f53] ({{AUR|ttf-ms-fonts}}) \u2013 Andal\u00e9 Mono, Courier New, Arial, Arial Black, Comic Sans, Impact, Lucida Sans, Microsoft Sans Serif, Trebuchet, Verdana, Georgia, Times New Roman\n* Vista \u5b57\u4f53 ({{AUR|ttf-vista-fonts}}) \u2013 Consolas, Calibri, Candara, Corbel, Cambria, Constantia\n\n==== \u7b49\u5bbd ====\n\n\u652f\u6301 [[Wikipedia:Orthographic_ligature#Programming_languages|\u7f16\u7a0b\u8fde\u5b57]]\u7684\u5b57\u4f53\u6807\u6709 \u27f6 \u7b26\u53f7\u3002\u66f4\u591a\u7b49\u5bbd\u5b57\u4f53\u53c2\u89c1[[#\u70b9\u9635]]\u548c[[#\u5b57\u4f53\u65cf]]\u3002\n\n* [https://www.marksimonson.com/fonts/view/anonymous-pro Anonymous Pro] ({{Pkg|ttf-anonymous-pro}}, included in {{AUR|ttf-google-fonts-git}})\n* [https://github.com/microsoft/cascadia-code Cascadia Code] ({{Pkg|ttf-cascadia-code}}) \u27f6 \u2013 Designed to enhance the look of the Windows Terminal, with programming ligatures, released by Microsoft under the Open Font License.\n* [https://quoteunquoteapps.com/courierprime/ Courier Prime] ({{AUR|ttf-courier-prime}}) \u2013 Courier alternative which has been supplemented by a sans serif font and a version optimized for programming, released under the Open Font License.\n* [https://damieng.com/envy-code-r Envy Code R] ({{AUR|ttf-envy-code-r}}) \u2013 Font designed for programmers\n* Fantasque Sans Mono ({{Pkg|ttf-fantasque-sans-mono}}, {{Pkg|otf-fantasque-sans-mono}})\n* [[Wikipedia:Fira_(typeface)|Fira Mono]] ({{Pkg|ttf-fira-mono}}, {{Pkg|otf-fira-mono}}) \u2013 Font optimized for small screens and adopted by Mozilla for the Firefox OS\n* [[Wikipedia:Fira_(typeface)#Fira_Code|Fira Code]] ({{Pkg|ttf-fira-code}}) \u27f6 \u2013 Extension of Fira Mono with programming ligatures for common programming multi-character combinations\n* [https://sourcefoundry.org/hack/ Hack] ({{Pkg|ttf-hack}}) - Open source monospaced font, used as the default in KDE Plasma\n* [https://github.com/i-tu/Hasklig Hasklig] ({{AUR|otf-hasklig}}) - \u5177\u6709\u7b49\u5bbd\u8fde\u5b57\u7684\u4ee3\u7801\u5b57\u4f53\n* [https://pcaro.es/p/hermit/ Hermit] ({{Pkg|otf-hermit}}) - \u7531\u7a0b\u5e8f\u5458\u4e3a\u7a0b\u5e8f\u5458\u8bbe\u8ba1\u7684\u5b57\u4f53\n* [[Wikipedia:Inconsolata|Inconsolata]]\uff08{{Pkg|ttf-inconsolata}}\uff0c\u5305\u542b\u5728 {{AUR|ttf-google-fonts-git}} \u4e2d\uff09\u2014\u2014\u4e3a\u663e\u793a\u6e90\u4ee3\u7801\u8bbe\u8ba1\uff0c\u7075\u611f\u6765\u81ea Consolas \u548c Letter Gothic\n* [https://leonardo-m.livejournal.com/77079.html Inconsolata-g]\uff08{{AUR|ttf-inconsolata-g}}\uff09\u2014\u2014\u6dfb\u52a0\u4e00\u4e9b\u5bf9\u7a0b\u5e8f\u5458\u53cb\u597d\u7684\u4fee\u6539\n* [https://be5invis.github.io/Iosevka/ Iosevka] ({{Pkg|ttc-iosevka}}) \u27f6 \u2013 Slender sans-serif and slab-serif typeface inspired by Pragmata Pro, M+ and PF DIN Mono, designed to be the ideal font for programming; it supports programming ligatures and over 2000 latin, greek, cyrillic, phonetic and PowerLine glyphs\n* [https://www.jetbrains.com/lp/mono/ JetBrains Mono] ({{Pkg|ttf-jetbrains-mono}}) \u27f6 \u2013 JetBrains \u5f00\u53d1\u7684\u514d\u8d39\u5f00\u6e90\u5b57\u4f53\n* [[Wikipedia:Lucida Typewriter|Lucida Typewriter]]\uff08\u5305\u542b\u5728 {{AUR|jre}} \u8f6f\u4ef6\u5305\u4e2d\uff09\n* [[Wikipedia:Menlo (typeface)|Menlo]] ({{AUR|ttf-meslo}}) \u2013 Customized version of Apple's Menlo Regular font for OS X with larger vertical gap spacing\n* [[Wikipedia:Monaco (typeface)|Monaco]] ({{AUR|ttf-monaco}}) \u2013 Apple \u4e3a OS X \u8bbe\u8ba1\u7684\u4e13\u6709\u5b57\u4f53\n* Monofur ({{Pkg|ttf-monofur}})\n* [https://madmalik.github.io/mononoki Mononoki]\uff08{{AUR|ttf-mononoki}}\uff09\u2014\u2014\u7528\u4e8e\u7f16\u7a0b\u548c code review \u7684\u5b57\u4f53\n* [[Wikipedia:Source Code Pro|Source Code Pro]]\uff08{{Pkg|adobe-source-code-pro-fonts}}\uff0c\u5305\u542b\u5728 {{AUR|ttf-google-fonts-git}} \u4e2d\uff09\n\n\u76f8\u5173\u7f51\u7ad9\uff1a\n\n* [http://www.lowing.org/fonts/ Trevor Lowing \u7684\u5b57\u4f53\u6e05\u5355]\n* [https://www.slant.co/topics/67/~what-are-the-best-programming-fonts Slant\uff1a\u6700\u597d\u7684\u7f16\u7a0b\u5b57\u4f53\u662f\u4ec0\u4e48\uff1f]\n* [https://stackoverflow.com/questions/4689/recommended-fonts-for-programming Stack Overflow\uff1a\u63a8\u8350\u7f16\u7a0b\u5b57\u4f53]\n* [https://www.programmingfonts.org \u7f16\u7a0b\u5b57\u4f53 - \u8bd5\u9a7e]\n* [http://s9w.io/font_compare \u7f16\u7a0b\u5b57\u4f53\u6bd4\u8f83]\n* [https://www.codingfont.com/ Coding Font by Typogram]\n\n==== \u65e0\u886c\u7ebf ====\n\n* [http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=andika Andika] ({{AUR|ttf-andika}})\n* [[Wikipedia:Cantarell (typeface)|Cantarell]] ({{Pkg|cantarell-fonts}}) \u2013 Default font supplied with GNOME, it is required by the GNOME and GTK 3 related packages\n* [https://typedesigndead.coosucks.repl.co/ DMCA Sans Serif] ({{AUR|ttf-dmcasansserif}}) \u2013 General purpose sans serif font metric-compatible with Microsoft Consolas\n* [[Wikipedia:Fira (typeface)|Fira Sans]] ({{Pkg|ttf-fira-sans}}, {{Pkg|otf-fira-sans}}) \u2013 Sans serif font designed by Erik Spiekermann for Mozilla and the Firefox OS. Fira Mono and Fira Code are monospaced companions of Fira Sans (see [[#\u7b49\u5bbd]])\n* [[Wikipedia:FreeSans|FreeSans]] ({{Pkg|gnu-free-fonts}}) \u2013 [[Commons:File:FreeSansDemonstration.png|Visually similar]] to Helvetica but metrically different, see [[#\u5b57\u4f53\u65cf]]\n* [https://github.com/rsms/inter Inter] ({{Pkg|inter-font}}) \u2013 A geometric neo-grotesque font designed for user interfaces\n* [https://indestructibletype.com/Jost.html Jost*] ({{AUR|otf-jost}}) \u2013 An open-source typeface based on [[Wikipedia:Futura (typeface)|Futura]]\n* [[Wikipedia:Liberation Sans|Liberation Sans]] ({{Pkg|ttf-liberation}}) \u2013 Metric-compatible with Helvetica but [[Commons:File:Font_Sample_-_Liberation_Sans.svg|visually distinct]], see [[#\u5b57\u4f53\u65cf]]\n* [https://fonts.google.com/specimen/Montserrat Montserrat] ({{AUR|montserrat-otf}}) \u2013 An open source font that shares similarities with [[Wikipedia:Gotham (typeface)|Gotham]] and [[Wikipedia:Proxima Nova|Proxima Nova]]\n* [https://fonts.google.com/specimen/Nunito Nunito] ({{AUR|ttf-nunito}}) \u2013 An open source font with rounded terminal, hence shares similarities with [[Wikipedia:Gotham_(typeface)#Variations|Gotham Rounded]] and [https://fonts.adobe.com/fonts/proxima-soft Proxima Soft]\n* [[Wikipedia:Open Sans|Open Sans]] ({{Pkg|ttf-opensans}}) \u2013 Sans serif font commissioned by Google, based on Droid sans but slightly wider.\n* [[Wikipedia:PT Sans|PT Sans]] ({{AUR|ttf-google-fonts-git}}) \u2013 3 major variations: normal, narrow, and caption - Unicode: Latin, Cyrillic\n* [[Wikipedia:Source Sans|Source Sans]] ({{Pkg|adobe-source-sans-fonts}}) \u2013 Open source sans serif font from Adobe with a design based on News Gothic and Franklin Gothic\n* [https://www.winehq.org/announce/0.9.47 Tahoma (Wine Replacement)] ({{AUR|ttf-tahoma}}) \u2013 Open source substitute for [[Wikipedia:Tahoma (typeface)|Tahoma]] developed by the [[Wine]] project. It was created because many Windows applications expected Tahoma to be available\n\n==== \u886c\u7ebf ====\n\n* [[Wikipedia:Bitstream Charter|Bitstream Charter]] ({{AUR|ttf-bitstream-charter}}, {{AUR|otf-bitstream-charter}}) \u2013 Originally a commercial font designed by [[Wikipedia:Matthew Carter|Matthew Carter]]. A version was released under a free license and later [https://practicaltypography.com/charter.html converted] to modern formats (provided as the aforementioned packages). \n* [https://indestructibletype.com/Bodoni.html Bodoni*] ({{AUR|otf-bodoni}}) \u2013 An open-source [[Wikipedia:Bodoni|Bodoni]] revival\n* [https://github.com/skosch/Crimson Crimson] ({{Pkg|otf-crimson}}) \u2013 An open-source font that shares similarities with [[Wikipedia:Minion_(typeface)|Minion]]\n* [[Wikipedia:EB_Garamond|EB Garamond]] ({{AUR|ebgaramond-otf}}) \u2013 An open-source [[Wikipedia:Garamond|Garamond]] revival, the aforementioned package is the version developed by [https://github.com/octaviopardo/EBGaramond12 Octavio Pardo]\n* [[Wikipedia:FreeSerif|FreeSerif]] ({{Pkg|gnu-free-fonts}}) \u2013 [[Commons:File:FreeSerifDemonstration.png|Visually similar]] to Times New Roman but [https://askubuntu.com/questions/346552/closest-alternative-to-times-new-roman/1148247#1148247 metrically different], see [[#\u5b57\u4f53\u65cf]]\n* [[Wikipedia:Gentium|Gentium]] ({{Pkg|gentium-plus-font}}) \u2013 Unicode: Latin, Greek, Cyrillic, Phonetic Alphabet\n* [[Wikipedia:Utopia_(typeface)#Derived_typefaces|Heuristica]] ({{AUR|ttf-heuristica}}) \u2013 Based on a version of [[Wikipedia:Utopia_(typeface)|Utopia]] that was released under a free license\n* [[Wikipedia:Liberation Serif|Liberation Serif]] ({{Pkg|ttf-liberation}}) \u2013 Metric-compatible with Times New Roman but [[Wikipedia:File:Times New Roman Liberation Serif comparison.png|visually distinct]], see [[#\u5b57\u4f53\u65cf]]\n* [https://fonts.google.com/specimen/Libre+Baskerville Libre Baskerville] ({{AUR|ttf-librebaskerville}}) \u2013 An open-source [[Wikipedia:Baskerville|Baskerville]] revival designed by Impallari Type\n* [https://fonts.google.com/specimen/Libre+Caslon+Text Libre Caslon] ({{AUR|otf-libre-caslon}}) \u2013 An open-source [[Wikipedia:Caslon|Caslon]] revival designed by Impallari Type\n* [[Wikipedia:Linux Libertine|Linux Libertine]] ({{Pkg|ttf-linux-libertine}}) \u2013 Developed as a substitute of Times New Roman, but different both visually and metrically (the metric differences are more notable for italic and bold fonts)\n* [http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html TeX Gyre Termes] ({{Pkg|tex-gyre-fonts}}) \u2013 Visually similar to Times New Roman (but there are some minor metric differences), see [[#\u5b57\u4f53\u65cf]]\n* [[Wikipedia:Croscore_fonts|Tinos]] ({{Pkg|ttf-croscore}}) \u2013 Metric-compatible with Times New Roman but visually distinct (and looks similar to Liberation Serif), see [[#\u5b57\u4f53\u65cf]]\n\n=== \u975e\u62c9\u4e01\u6587\u5b57 ===\n\n==== \u53e4\u4ee3\u6587\u5b57 ====\n\n* {{AUR|ttf-ancient-fonts}} \u2014\u2014 \u5305\u542b Aegean\u3001Egyptian\u3001Cuneiform\u3001Anatolian\u3001Maya \u548c Analecta \u6587\u5b57\u7684 Unicode \u7b26\u53f7\u7684\u5b57\u4f53\n\n==== \u963f\u62c9\u4f2f\u6587 ====\n\n* {{AUR|ttf-amiri}} \u2014\u2014 \u4e00\u4e2a\u5178\u578b\u7684\u963f\u62c9\u4f2f\u6587\u8a8a\u6284\u4f53 (Naskh) \u5b57\u4f53\uff0c\u4e00\u5f00\u59cb\u7531 Amiria Press \u91c7\u7528\u3002\u5176\u62c9\u4e01\u5b57\u7b26\u57fa\u4e8e Crimson ({{Pkg|otf-crimson}}) [https://fontsinuse.com/typefaces/82634/amiri] [https://github.com/skosch/Crimson]\n* {{AUR|ttf-arabeyes-fonts}} \u2014\u2014 \u81ea\u7531\u7684\u963f\u62c9\u4f2f\u6587\u5b57\u4f53\u96c6\u5408\n* {{AUR|ttf-qurancomplex-fonts}} \u2014\u2014 \u4f4d\u4e8e\u9ea6\u5730\u90a3\u7684 King Fahd Glorious Quran Printing Complex \u5236\u4f5c\u7684\u5b57\u4f53\n* {{AUR|ttf-sil-lateef}} \u2014\u2014 \u6765\u81ea [[wikipedia:SIL_International|SIL]] \u7684 Unicode \u963f\u62c9\u4f2f\u6587\u5b57\u4f53\n* {{AUR|ttf-sil-scheherazade}} \u2014\u2014 \u6765\u81ea SIL \u7684 Unicode \u963f\u62c9\u4f2f\u6587\u5b57\u4f53\uff08\u4f20\u7edf\u963f\u62c9\u4f2f\u6587\u5b57\u4f53\u7684\u66ff\u4ee3\u54c1\uff09\n\n==== \u5b5f\u52a0\u62c9\u6587 ====\n\n\u8be6\u89c1 [[Localization/Bengali#Fonts]]\u3002\n\n==== \u76f2\u6587 ====\n\n* {{AUR|ttf-ubraille}} \u2014\u2014 \u5305\u542b Unicode ''\u76f2\u6587''\u7b26\u53f7\u7684\u5b57\u4f53\u3002\n\n==== \u4e2d\u65e5\u97e9\u8d8a\u6587\u5b57 ====\n\n===== \u6cdb CJK =====\n\n* \u601d\u6e90\u5b57\u4f53 \u2014\u2014 \u5927\u91cf\u5b57\u4f53\u96c6\u5408\uff0c\u5168\u9762\u652f\u6301\u7b80\u4f53\u4e2d\u6587\u3001\u7e41\u4f53\u4e2d\u6587\u3001\u65e5\u6587\u548c\u97e9\u6587\uff0c\u5177\u6709\u4e00\u81f4\u7684\u8bbe\u8ba1\u548c\u5916\u89c2\u3002\n** {{Pkg|adobe-source-han-sans-otc-fonts}} \u2014\u2014 \u601d\u6e90\u9ed1\u4f53\uff0c\u65e0\u886c\u7ebf\u5b57\u4f53\n** {{Pkg|adobe-source-han-serif-otc-fonts}} \u2014\u2014 \u601d\u6e90\u5b8b\u4f53\uff0c\u886c\u7ebf\u5b57\u4f53\n* {{Pkg|noto-fonts-cjk}} \u2014\u2014 \u5927\u91cf\u5b57\u4f53\u96c6\u5408\uff0c\u5168\u9762\u652f\u6301\u7b80\u4f53\u4e2d\u6587\u3001\u7e41\u4f53\u4e2d\u6587\u3001\u65e5\u6587\u548c\u97e9\u6587\uff0c\u5177\u6709\u4e00\u81f4\u7684\u8bbe\u8ba1\u548c\u5916\u89c2\u3002\u5b83\u76ee\u524d\u662f {{Pkg|adobe-source-han-sans-otc-fonts}} \u91cd\u65b0\u8d34\u6807\u7684\u7248\u672c\u3002\n\n{{\u63d0\u793a|\u4e2d\u6587\u7528\u6237\u5728\u5b89\u88c5\u601d\u6e90cjk\u5168\u96c6\u6216\u8005noto-cjk\u5168\u96c6\u540e\uff0c\u90e8\u5206\u6587\u5b57\u663e\u793a\u4e3a\u65e5\u6587\u5f02\u5f62\u5b57\u4f53\uff0c\u53ef\u53c2\u770b[[Arch Linux Localization (\u7b80\u4f53\u4e2d\u6587)#\u4fee\u6b63\u7b80\u4f53\u4e2d\u6587\u663e\u793a\u4e3a\u5f02\u4f53\uff08\u65e5\u6587\uff09\u5b57\u5f62]] \u8fdb\u884c\u89e3\u51b3\u3002}}\n\n===== \u4e2d\u6587 =====\n\n\u53c2\u89c1 [[Localization/Chinese#Fonts]]\u3002\n\n===== \u65e5\u6587 =====\n\n\u53c2\u89c1 [[Localization/Japanese#Fonts]]\u3002\n\n===== \u97e9\u6587 =====\n\n\u53c2\u89c1 [[Localization/Korean#Fonts]]\u3002\n\n===== \u8d8a\u5357\u8bed =====\n\n* {{Pkg|ttf-hannom}} \u2013 \u7528\u4e8e\u5583\u5b57\u7684\u8d8a\u5357\u8bed TrueType \u5b57\u4f53\n\n==== \u897f\u91cc\u5c14\u6587\u5b57 ====\n\n\u53e6\u8bf7\u53c2\u9605[[#\u62c9\u4e01\u6587\u5b57]]\u3002\n\n* {{AUR|ttf-paratype}} \u2013 Font family by ParaType: sans, serif, mono, extended cyrillic and latin, OFL \u8bb8\u53ef\u8bc1\n* {{AUR|otf-russkopis}} \u2013 A free OpenType cursive font for Cyrillic script\n\n==== \u5e0c\u814a\u6587\u5b57 ====\n\n\u51e0\u4e4e\u6240\u6709 Unicode \u5b57\u4f53\u90fd\u5305\u542b\u5e0c\u814a\u4ee3\u7801\u96c6 (\u4e5f\u5305\u542b\u591a\u8c03\u53d8\u97f3\u7b26\u53f7)\u3002\u67d0\u4e9b\u989d\u5916\u5b57\u4f53\u5305\u867d\u7136\u4e0d\u5305\u542b\u5b8c\u6574\u7684 Unicode \u96c6\uff0c\u4f46\u62e5\u6709\u9ad8\u8d28\u91cf\u7684\u5e0c\u814a\u5b57\u5b57\u5f62 (\u4e5f\u5305\u542b\u62c9\u4e01\u5b57)\uff1a\n\n* {{AUR|otf-gfs}} - \u7531 Greek Font Society \u9009\u7528\u7684 OpenType \u5b57\u4f53\n* {{AUR|ttf-mgopen}} - \u6765\u81ea Magenta \u7684\u4e13\u4e1a TrueType \u5b57\u4f53\n\n==== \u5e0c\u4f2f\u6765\u6587\u5b57 ====\n\n* {{AUR|opensiddur-hebrew-fonts}} \u2013 Large collection of Open-source licensed Hebrew fonts. There are also few Latin, Greek, Cyrillic, Arabic, and Amharic.\n* {{AUR|culmus}} \u2014\u2014 \u4e0d\u9519\u7684\u81ea\u7531\u7684\u5e0c\u4f2f\u6765\u6587\u5b57\u4f53\u96c6\u5408\u3002\n* {{AUR|alefbet}} \u2013 2 Hebrew fonts (at the moment): the commonly used \"David Libre\", and the handwriting font \"Gveret Levin\".\n* {{AUR|ttf-ms-fonts}} \u2014\u2014 \u5305\u542b Arial \u548c\u5176\u4ed6\u5b57\u4f53\u3002\n\n==== \u5370\u5730\u6587\u5b57 ====\n\n\u53e6\u8bf7\u53c2\u9605 [[Localization/Indic#Fonts]]\u3002\n\n==== \u9ad8\u68c9\u6587\u5b57 ====\n\n* {{Pkg|ttf-khmer}} - \u6db5\u76d6\u9ad8\u68c9\u8bed (Khmer) \u6587\u5b57\u7684\u5b57\u4f53\n* [https://www.google.com/fonts/specimen/Hanuman Hanuman] ({{AUR|ttf-google-fonts-git}})\n\n==== \u8499\u53e4\u8bed\u548c\u901a\u53e4\u65af\u8bed ====\n\n* {{AUR|ttf-abkai}} \u2013 Fonts for Sibe, Manchu and Daur scripts (incomplete, currently in development)\n\n==== \u6ce2\u65af\u6587\u5b57 ====\n\n* {{AUR|persian-fonts}} \u2013 \u7528\u4e8e\u5b89\u88c5 AUR \u4e2d\u6240\u6709\u6ce2\u65af\u5b57\u4f53\u7684\u5143\u5305\u3002\n* {{AUR|borna-fonts}} \u2013 Borna Rayaneh Co. Persian B font series.\n* {{AUR|iran-nastaliq-fonts}} \u2013 \u81ea\u7531\u7684 Unicode \u4e66\u6cd5\u6ce2\u65af\u5b57\u4f53\u3002\n* {{AUR|iranian-fonts}} \u2013 Iranian-Sans and Iranian-Serif Persian font family.\n* {{AUR|ir-standard-fonts}} \u2013 \u4f0a\u6717\u4fe1\u606f\u4e0e\u901a\u4fe1\u6280\u672f\u9ad8\u7ea7\u7406\u4e8b\u4f1a\uff08SCICT\uff09\u7684\u6807\u51c6\u6ce2\u65af\u5b57\u4f53\u3002\n* {{AUR|persian-hm-ftx-fonts}} \u2013 A Persian font series derived from X Series 2, Metafont and FarsiTeX fonts with Kashida feature.\n* {{AUR|persian-hm-xs2-fonts}} \u2013 A Persian font series derived from X Series 2 fonts with Kashida feature.\n* {{AUR|gandom-fonts}}, {{AUR|parastoo-fonts}}, {{AUR|sahel-fonts}}, {{AUR|samim-fonts}}, {{AUR|shabnam-fonts}}, {{AUR|tanha-fonts}}, {{AUR|vazirmatn-fonts}}, {{AUR|vazir-code-fonts}} \u2013 Beautiful Persian fonts made by Saber RastiKerdar.\n* {{AUR|ttf-yas}} \u2013 The Yas Persian font series (with '''hollow zero''').\n* {{AUR|ttf-x2}} \u2013 Free fonts with support for Persian, Arabic, Urdu, Pashto, Dari, Uzbek, Kurdish, Uighur, old Turkish (Ottoman) and modern Turkish (Roman).\n\n==== \u58ee\u4f97\u8bed\u7cfb ====\n\n* {{AUR|fonts-tlwg}} \u2013 Collection of scalable Thai fonts\n* {{AUR|ttf-lao}} \u2013 Lao TTF font (Phetsarath_OT)\n\n==== \u85cf\u7f05\u8bed\u65cf ====\n\n*{{Pkg|ttf-tibetan-machine}} \u2014\u2014 \u85cf\u6587 (Tibetan) Machine TTFont\n* {{AUR|ttf-sil-padauk}} \u2014\u2014 \u652f\u6301\u591a\u79cd\u4f7f\u7528\u7f05\u6587\u7684\u8bed\u8a00\u7684 Unicode \u5b57\u4f53\n\n=== Emoji \u548c\u7b26\u53f7 ===\n\nUnicode \u6807\u51c6\u7684\u4e00\u90e8\u5206\u7528\u4e8e\u79f0\u4e3a\u201cemoji\u201d\u7684\u8c61\u5f62\u5b57\u7b26\u3002\n\n[[Wikipedia:Emoji|Emoji]] \u5b57\u4f53\u6709\u4e0d\u540c\u7684\u683c\u5f0f\uff1aCBDT/CBLC (Google)\u3001SBIX (Apple)\u3001COLR/CPAL (Microsoft) \u548c SVG (Mozilla/Adobe)\u3002\n\nEmojis should work without any configuration once you have at least one emoji font installed of supported format. Emoji font fallback according  to [[Wikipedia:Emoji#Emoji versus text presentation|the standard]] requires [https://github.com/google/emoji-segmenter extra code to handle emoji].\n\n\u6709\u5173 Emoji \u7684\u53d1\u73b0\u548c\u8f93\u5165\uff0c\u53c2\u89c1 [[List of applications/Utilities#Text input]]\u3002\n\n{| class=\"wikitable\"\n|-\n! \u8f6f\u4ef6 !! CBDT/CBLC !! SBIX !! COLR/CPAL !! SVG !! Emoji font fallback\n|-\n! [[Wikipedia:Freetype|Freetype]]\n| {{Yes}} || {{Yes}} || {{Yes}} || {{No|https://savannah.nongnu.org/bugs/?46141}} || {{-}}\n|-\n! [[Wikipedia:Pango|Pango]]\n| colspan=4 {{C|Freetype}} || {{Yes|https://gitlab.gnome.org/GNOME/pango/-/issues/298}}\n|-\n! [[List of applications/Internet#WebKit-based|WebKitGTK]]\n| colspan=4 {{C|Freetype}} || {{Yes|https://trac.webkit.org/changeset/239822/webkit}}\n|-\n! [[Qt]]\n| colspan=4 {{C|Freetype}} || {{No}} [https://bugreports.qt.io/browse/QTBUG-71568] [https://bugreports.qt.io/browse/QTBUG-85014] [https://bugreports.qt.io/browse/QTBUG-85744] \n|-\n! [[Chromium]]\n| colspan=4 {{C|Freetype}} || {{Yes|https://chromium.googlesource.com/chromium/src.git/+/671511b00e2d6c374a3079c1c379d2d0dfad32fe}}\n|-\n! [[Firefox]]\n| colspan=3 {{C|Freetype}} || {{Yes}} || {{No|1=https://bugzilla.mozilla.org/show_bug.cgi?id=1509988}}, see [[Firefox#Font troubleshooting]] for workaround.\n|}\n\n{{\u6ce8\u610f|Qt can only use first 255 fonts at a time [https://bugreports.qt.io/browse/QTBUG-80434]. Make sure you have an emoji font in your list of [[Font configuration#Set default or fallback fonts|preferred fallback fonts]].}}\n\nCBDT/CBLC\uff1a\n\n* {{Pkg|noto-fonts-emoji}} \u2014\u2014 Google \u7684\u5f00\u6e90 Emoji 14.0\u3002\n* {{Pkg|ttf-joypixels}} \u2014\u2014 EmojiOne \u521b\u4f5c\u8005\u7684\u4e13\u6709 Emoji 13.1\u3002\n* {{AUR|ttf-twemoji}} \u2014\u2014 Twitter \u7684\u5f00\u6e90 Emoji 13.0\u3002\n\nSVG\uff1a\n\n* {{AUR|otf-openmoji}} \u2013 German University of Design in Schw\u00e4bisch Gm\u00fcnd open-source Emoji 13.0.\n* {{AUR|ttf-twemoji-color}} \u2014\u2014 Twitter \u7684\u5f00\u6e90 Emoji 13.0\u3002\n\nOutline only:\n\n* {{AUR|ttf-symbola}} \u2014\u2014 \u63d0\u4f9b\u8bb8\u591a Unicode \u7b26\u53f7\uff0c\u5305\u62ec emoji\u3002\n\n[[wikipedia:Emoticon#Japanese_style|Kaomoji]] are sometimes referred to as \"Japanese emoticons\" and are composed of characters from various character sets, including CJK and Indic fonts. For example, the following set of packages covers most of existing kaomoji: {{Pkg|gnu-free-fonts}}, {{Pkg|ttf-arphic-uming}}, and {{Pkg|ttf-indic-otf}}.\n\n=== \u6570\u5b66 ===\n\n* [[wikipedia:Computer Modern|Computer Modern]] ({{AUR|ttf-cm-unicode}}, {{AUR|otf-cm-unicode}})\n* Computer Modern ({{Pkg|otf-latin-modern}}, {{Pkg|otf-latinmodern-math}}) \u2013 LaTeX \u4e2d\u4f7f\u7528\u7684\u6539\u8fdb\u7248\u672c\n* [[Wikipedia:STIX Fonts project|STIX fonts]] ({{AUR|otf-stix}}) \u2013 Released under a royalty-free license and designed to be a math compansion of Times New Roman. The current version is called STIX Two Math. \n* [http://www.gust.org.pl/projects/e-foundry/tg-math TeX Gyre math fonts] ({{AUR|tex-gyre-math-fonts}}) \u2013 Math compansions of TeX Gyre fonts (see [[#\u5b57\u4f53\u65cf]]). Notably, TeX Gyre Termes Math is a math compansion of Times New Roman.\n* [[Wikipedia:XITS_font_project|XITS fonts]] ({{AUR|otf-xits}}) \u2013 A fork of STIX and is therefore a math compansion of Times New Roman. XITS and STIX Two Math have similar levels of completeness for mathematical symbols and alphabets [http://www.gust.org.pl/bachotex/2019-pl/presentations/uvieth-1-2019.pdf], but do have some visual differences.\n\n\u6b64\u5916\uff0c{{Pkg|texlive-core}} \u548c {{Pkg|texlive-fontsextra}} \u4e2d\u5305\u542b\u8bb8\u591a\u6570\u5b66\u5b57\u4f53\uff0c\u4f8b\u5982 Latin Modern Math \u548c STIX \u5b57\u4f53\u3002\u6709\u5173\u914d\u7f6e\u53c2\u89c1 [[TeX Live#Making fonts available to Fontconfig]]\u3002\n\n=== \u5176\u4ed6\u64cd\u4f5c\u7cfb\u7edf\u5b57\u4f53 ===\n\n* {{AUR|ttf-mac-fonts}} - Apple MacOS TrueType \u5b57\u4f53\n\n== \u540e\u5907\u5b57\u4f53\u987a\u5e8f ==\n\nFontconfig \u4f1a\u81ea\u52a8\u9009\u62e9\u4e00\u4e2a\u6ee1\u8db3\u5f53\u524d\u663e\u793a\u9700\u6c42\u7684\u5b57\u4f53\u3002\u4f8b\u5982\uff0c\u5982\u679c\u6d4f\u89c8\u4e00\u4e2a\u65e2\u6709\u82f1\u6587\u53c8\u6709\u4e2d\u6587\u7684\u7a97\u53e3\uff0c\u800c\u9ed8\u8ba4\u7684\u5b57\u4f53\u4e0d\u652f\u6301\u4e2d\u6587\uff0c\u5b83\u4f1a\u81ea\u52a8\u7528\u53e6\u5916\u7684\u5b57\u4f53\u663e\u793a\u4e2d\u6587\u3002\n\nFontconfig \u5141\u8bb8\u6bcf\u4e2a\u7528\u6237\u901a\u8fc7 {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}} \u8c03\u6574\u5b57\u4f53\u7684\u9009\u62e9\u987a\u5e8f\u3002\n\u5982\u679c\u8981\u4f18\u5148\u4f7f\u7528\u886c\u7ebf\u5b57\u4f53\uff0c\u9047\u5230\u4e2d\u6587\u518d\u4f7f\u7528\u67d0\u4e2a\u7279\u5b9a\u7684\u4e2d\u6587\u5b57\u4f53\uff0c\u914d\u7f6e\u6587\u4ef6\u4f1a\u662f\u8fd9\u6837\uff1a\n\n <?xml version=\"1.0\"?>\n <!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">\n <fontconfig>\n <alias>\n    <family>serif</family>\n    <prefer>\n      <family>\u559c\u6b22\u7684\u62c9\u4e01\u886c\u7ebf\u5b57\u4f53\u540d\u79f0</family>\n      <family>\u4e2d\u6587\u5b57\u4f53\u540d\u79f0</family>\n    </prefer>\n  </alias>\n </fontconfig>\n\n{{\u63d0\u793a|\n* \u5982\u679c\u7cfb\u7edf\u7684 locale \u662f\u4e2d\u6587\uff0c\u8bf7\u5c06 {{ic|LC_LANG}} \u8bbe\u7f6e\u4e3a {{ic|und}}\uff0c\u5426\u5219\u4e2d\u82f1\u6587\u90fd\u4f1a\u4f7f\u7528\u4e2d\u6587\u5b57\u4f53\u6e32\u67d3\u3002\n* \u4fee\u6539\u914d\u7f6e\u540e\u53ef\u4ee5\u7528 {{ic|fc-match -a monospace {{!}} head}} \u68c0\u67e5\u540e\u5907\u5b57\u4f53\u8bbe\u7f6e\u662f\u5426\u6b63\u786e\u3002\n}}\n\n\u65e0\u886c\u7ebf\u548c\u7b49\u5bbd\u5b57\u4f53\u4e5f\u53ef\u4ee5\u589e\u52a0\u4e00\u6837\u7684\u8bbe\u7f6e\uff0c\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u8003 fontconfig \u624b\u518c\u3002\n\n\u53e6\u8bf7\u53c2\u9605 [[Font configuration#Set default or fallback fonts]]\u3002\n\n== \u5b57\u4f53\u522b\u540d ==\n\n\u6709\u51e0\u79cd\u5b57\u4f53\u522b\u540d\u5b9e\u9645\u4e0a\u4ee3\u8868\u7740\u522b\u7684\u5b57\u4f53\uff0c\u4ee5\u8ba9\u5e94\u7528\u7a0b\u5e8f\u53ef\u4ee5\u4f7f\u7528\u7c7b\u4f3c\u7684\u5b57\u4f53\u3002\u6700\u5e38\u89c1\u7684\u522b\u540d\u662f\uff1a{{ic|serif}} \u4ee3\u8868\u886c\u7ebf\u5b57\u4f53\uff08\u5982 DejaVu Serif\uff09\uff1b{{ic|sans-serif}} \u4ee3\u8868\u65e0\u886c\u7ebf\u5b57\u4f53\uff08\u5982 DejaVu Sans\uff09\uff1b\u4ee5\u53ca {{ic|monospace}} \u4ee3\u8868\u7b49\u5bbd\u5b57\u4f53\uff08\u5982 DejaVu Sans Mono\uff09\u3002\u7136\u800c\uff0c\u8fd9\u4e9b\u522b\u540d\u6240\u4ee3\u8868\u7684\u5b57\u4f53\u6709\u53ef\u80fd\u4f1a\u53d8\u5316\uff0c\u4f46 [[KDE (\u7b80\u4f53\u4e2d\u6587)|KDE]] \u548c\u5176\u4ed6[[\u684c\u9762\u73af\u5883]]\u7684\u5b57\u4f53\u7ba1\u7406\u5de5\u5177\u901a\u5e38\u4e0d\u4f1a\u663e\u793a\u5bf9\u5e94\u5173\u7cfb\u3002\n\n\u5982\u679c\u60f3\u901a\u8fc7\u522b\u540d\u53cd\u5411\u67e5\u627e\u662f\u5c55\u73b0\u4e86\u54ea\u79cd\u5b57\u4f53\uff0c\u8bf7\u8fd0\u884c\uff1a\n\n{{hc|$ fc-match monospace|\nDejaVuSansMono.ttf: \"DejaVu Sans Mono\" \"Book\"\n}}\n\n\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b monospace \u522b\u540d\u5c55\u73b0\u7684\u662f {{ic|DejaVuSansMono.ttf}} \u5b57\u4f53\u3002\n\n== \u63d0\u793a\u4e0e\u6280\u5de7 ==\n\n=== \u5217\u51fa\u6240\u6709\u5df2\u5b89\u88c5\u7684\u5b57\u4f53 ===\n\n\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5217\u51fa\u7cfb\u7edf\u4e0a\u6240\u6709\u5df2\u5b89\u88c5\u4e14\u53ef\u7528\u7684 Fontconfig \u5b57\u4f53\u3002\n\n $ fc-list\n\n=== \u5217\u51fa\u7279\u5b9a\u8bed\u8a00\u7684\u5df2\u5b89\u88c5\u5b57\u4f53 ===\n\n\u5e94\u7528\u7a0b\u5e8f\u548c\u6d4f\u89c8\u5668\u6839\u636e fontconfig \u9996\u9009\u9879\u548c Unicode \u6587\u672c\u7684\u53ef\u7528\u5b57\u4f53\u5b57\u5f62\u9009\u62e9\u548c\u663e\u793a\u5b57\u4f53\u3002\u8981\u5217\u51fa\u7279\u5b9a\u8bed\u8a00\u7684\u5df2\u5b89\u88c5\u5b57\u4f53\uff0c\u8bf7\u4f7f\u7528\u547d\u4ee4 {{ic|1=fc-list :lang=\"''\u53cc\u5b57\u6bcd\u8bed\u8a00\u4ee3\u7801''\"}}\u3002\u4f8b\u5982\uff0c\u8981\u5217\u51fa\u5df2\u5b89\u88c5\u7684\u963f\u62c9\u4f2f\u5b57\u4f53\u6216\u652f\u6301\u963f\u62c9\u4f2f\u5b57\u5f62\u7684\u5b57\u4f53\uff1a\n\n{{hc|1=$ fc-list -f '%{file}\\n' :lang=ar|2=\n/usr/share/fonts/TTF/FreeMono.ttf\n/usr/share/fonts/TTF/DejaVuSansCondensed.ttf\n/usr/share/fonts/truetype/custom/DroidKufi-Bold.ttf\n/usr/share/fonts/TTF/DejaVuSansMono.ttf\n/usr/share/fonts/TTF/FreeSerif.ttf\n}}\n\n=== \u5217\u51fa\u7279\u5b9a Unicode \u5b57\u7b26\u7684\u5df2\u5b89\u88c5\u5b57\u4f53 ===\n\n\u8981\u641c\u7d22\u652f\u6301\u7279\u5b9a Unicode \u7801\u70b9\u7684\u7b49\u5bbd\u5b57\u4f53\uff1a\n\n $ fc-match -s monospace:charset=1F4A9\n\n=== Set terminal font on-the-fly ===\n\nFor terminal emulators that use [[X resources]], e.g. [[xterm]] or [[rxvt-unicode]], fonts can be set by using [[Bash/Prompt customization#Bash escape sequences|escape sequences]]. Specifically, {{ic|echo -e \"\\033]710;$font\\007\"}} to change the normal font ({{ic|*font}} in {{ic|~/.Xresources}}), and replace {{ic|710}} with {{ic|711}}, {{ic|712}}, and {{ic|713}} to change the {{ic|*boldFont}}, {{ic|*italicFont}}, and {{ic|*boldItalicFont}}, respectively.\n\n{{ic|$font}} uses the same syntax as in {{ic|~/.Xresources}} and can be anything the terminal emulator will support. (Example: {{ic|1=xft:dejavu sans mono:size=9}})\n\n=== \u5e94\u7528\u7a0b\u5e8f\u4e13\u7528\u7684\u5b57\u4f53\u7f13\u5b58 ===\n\nMatplotlib ({{pkg|python-matplotlib}}) \u4f7f\u7528\u81ea\u5df1\u7684\u5b57\u4f53\u7f13\u5b58\uff0c\u56e0\u6b64\u66f4\u65b0\u5b57\u4f53\u540e\u8bb0\u5f97\u5220\u9664 {{ic|$HOME/.matplotlib/fontList.cache}}\uff0c{{ic|$HOME/.cache/matplotlib/fontList.cache}}, {{ic|$HOME/.sage/matplotlib-1.2.1/fontList.cache}} \u7b49\u6587\u4ef6\uff0c\u8fd9\u6837\u5b83\u624d\u4f1a\u91cd\u65b0\u751f\u6210\u7f13\u5b58\u5e76\u627e\u5230\u65b0\u5b57\u4f53 [https://discourse.matplotlib.org/t/getting-matplotlib-to-recognize-a-new-font/17754]\u3002\n\n=== \u7ec8\u7aef\u4e2d\u7684\u53cc\u5411\u6587\u672c ===\n\n\u8981\u5728\u7ec8\u7aef\u4e2d\u6b63\u786e\u7684\u663e\u793a\u963f\u62c9\u4f2f\u8bed\u548c\u5e0c\u4f2f\u6765\u8bed\uff0c\u8bf7\u8fd0\u884c BiCon\uff08{{AUR|bicon-git}}\uff09\u3002\n\n== \u53c2\u89c1 ==\n\n* [http://behdad.org/text/ State of Text Rendering]\n* [https://fontlibrary.org/en Font Library] - Fonts under Free licenses\n* [https://screenshots.debian.net/packages?search=fonts&show=with Fonts on screenshots.debian.net]"
                    }
                ]
            },
            "2431": {
                "pageid": 2431,
                "ns": 0,
                "title": "Locale",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Localization]]\n[[de:Locale]]\n[[fr:Locale]]\n[[ja:\u30ed\u30b1\u30fc\u30eb]]\n[[pt:Locale]]\n[[ru:Locale]]\n[[zh-hans:Locale]]\n{{Related articles start}}\n{{Related|Environment variables}}\n{{Related|Localization}}\n{{Related articles end}}\n[[w:Locale (computer software)|Locales]] are used by {{Pkg|glibc}} and other locale-aware programs or libraries for rendering text, correctly displaying regional monetary values, time and date formats, alphabetic idiosyncrasies, and other locale-specific standards.\n\n== Generating locales ==\n\nLocale names are typically of the form {{ic|language[_territory][.codeset][@modifier]}}, where ''language'' is an [[w:List_of_ISO_639-1_codes|ISO 639 language code]], ''territory'' is an [[w:ISO_3166-1#Current_codes|ISO 3166 country code]], and ''codeset'' is a [[w:Character_encoding|character set]] or encoding identifier like [[w:ISO/IEC_8859-1|ISO-8859-1]] or [[w:UTF-8|UTF-8]]. See {{man|3|setlocale}}.\n\nFor a list of enabled locales, run:\n\n $ locale -a\n\nBefore a locale can be enabled on the system, it must be generated. This can be achieved by uncommenting applicable entries in {{ic|/etc/locale.gen}}, and running ''locale-gen''. Equivalently, commenting entries disables their respective locales. While making changes, consider any localisations required by other users on the system, as well as specific [[#Variables]].\n\nFor example, uncomment {{ic|en_US.UTF-8 UTF-8}} for American-English:\n\n{{hc|/etc/locale.gen|\n...\n#en_SG ISO-8859-1\nen_US.UTF-8 UTF-8\n#en_US ISO-8859-1\n...\n}}\n\nSave the file, and generate the locale:\n\n # locale-gen\n\n{{Note|1=<nowiki></nowiki>\n* {{ic|locale-gen}} also runs with every update of {{Pkg|glibc}}. [https://github.com/archlinux/svntogit-packages/blob/packages/glibc/trunk/glibc.install#L2]\n* {{ic|UTF-8}} is recommended over other character sets. [https://utf8everywhere.org/]}}\n\n== Setting the locale ==\n\nTo display the currently set locale and its related environmental settings, type:\n\n $ locale\n\nThe locale to be used, chosen among the previously generated ones, is set in {{ic|locale.conf}} files. Each of these files must contain a new-line separated list of [[environment variable]] assignments, having the same format as output by ''locale''.\n\nTo list available locales which have been previously generated, run:\n\n $ localedef --list-archive\n\nAlternatively, using {{man|1|localectl}}:\n\n $ localectl list-locales\n\n=== Setting the system locale ===\n\nTo set the system locale, write the {{ic|LANG}} variable to {{ic|/etc/locale.conf}}, where {{ic|''en_US.UTF-8''}} belongs to the '''first column''' of an uncommented entry in {{ic|/etc/locale.gen}}:\n\n{{hc|1=/etc/locale.conf|2=\nLANG=''en_US.UTF-8''\n}}\n\nAlternatively, run:\n\n # localectl set-locale LANG=''en_US.UTF-8''\n\nSee [[#Variables]] and {{man|5|locale.conf}} for details.\n\n=== Overriding system locale per user session ===\n\nThe system-wide locale can be overridden in each user session by creating or editing {{ic|$XDG_CONFIG_HOME/locale.conf}} (usually {{ic|~/.config/locale.conf}}).\n\nThe precedence of these {{ic|locale.conf}} files is defined in {{ic|/etc/profile.d/locale.sh}}.\n\n{{Tip|\n* This can also allow keeping the logs in {{ic|/var/log/}} in English while using the local language in the user environment.\n* You can create a {{ic|/etc/skel/.config/locale.conf}} file so that any new users added using ''useradd'' and the {{ic|-m}} option will have {{ic|~/.config/locale.conf}} automatically generated.}}\n\n=== Make locale changes immediate ===\n\nOnce system and user {{ic|locale.conf}} files have been created or edited, their new values will take effect for new sessions at login. To have the current environment use the new settings unset {{ic|LANG}} and source {{ic|/etc/profile.d/locale.sh}}:\n\n $ unset LANG\n $ source /etc/profile.d/locale.sh\n\n{{Note|The {{ic|LANG}} variable has to be unset first, otherwise {{ic|locale.sh}} will not update the values from {{ic|locale.conf}}. Only new and changed variables will be updated; variables removed from {{ic|locale.conf}} will still be set in the session.}}\n\n=== Other uses ===\n\nLocale variables can also be defined with the standard methods as explained in [[Environment variables]].\n\nFor example, in order to test or debug a particular application during development, it could be launched with something like:\n\n $ LANG=C ./my_application.sh\n\nSimilarly, to set the locale for all processes run from the current shell (for example, during system installation):\n\n $ export LANG=C\n\n== Variables ==\n\n{{ic|locale.conf}} files support the following environment variables. \n\n* [[#LANG: default locale|LANG]]\n* [[#LANGUAGE: fallback locales|LANGUAGE]]\n* {{ic|LC_ADDRESS}}\n* [[#LC_COLLATE: collation|LC_COLLATE]]\n* {{ic|LC_CTYPE}}\n* {{ic|LC_IDENTIFICATION}}\n* {{ic|LC_MEASUREMENT}}\n* {{ic|LC_MESSAGES}}\n* {{ic|LC_MONETARY}}\n* {{ic|LC_NAME}}\n* {{ic|LC_NUMERIC}}\n* {{ic|LC_PAPER}}\n* {{ic|LC_TELEPHONE}}\n* [[#LC_TIME: date and time format|LC_TIME]]\n\nFull meaning of the above {{ic|LC_*}} variables can be found on manpage {{man|7|locale}}, whereas details of their definition are described on {{man|5|locale}}.\n\n{{Note|Programs follow the [https://www.gnu.org/software/gettext/manual/gettext.html#Locale-Environment-Variables priority order] when looking up locale dependent values.}}\n\n=== LANG: default locale ===\n\nThe locale set for this variable will be used for all the {{ic|LC_*}} variables that are not explicitly set.\n\n{{Tip|Assume that you are an English user in Spain, and you want your programs to handle numbers and dates according to Spanish conventions, and only the messages should be in English. Then you could set the {{ic|LANG}} variable to {{ic|es_ES.UTF-8}} and the {{ic|LC_MESSAGES}} (user interface for message translation) variable to {{ic|en_US.UTF-8}}.}}\n\n=== LANGUAGE: fallback locales ===\n\nPrograms which use {{Pkg|gettext}} for translations respect the {{Ic|LANGUAGE}} option in addition to the usual variables. This allows users to specify a [https://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable list] of locales that will be used in that order. If a translation for the preferred locale is unavailable, another from a similar locale will be used instead of the default. For example, an Australian user might want to fall back to British rather than US spelling:\n\n{{hc|locale.conf|2=\nLANG=en_AU.UTF-8\nLANGUAGE=en_AU:en_GB:en\n}}\n\n{{Note|1=Many applications do not name or alias their English locale as {{ic|en}} or {{ic|en_US}}, but instead make it the default locale, which is {{ic|C}}. If in {{ic|LANGUAGE}} a non-English locale is placed after English, e.g. {{ic|1=LANGUAGE=en_US:en:es_ES}}, then applications may choose the secondary locale despite English strings being available.[https://bugs.kde.org/show_bug.cgi?id=192019] The solution is to always explicitly place the {{ic|C}} locale after English. E.g. {{ic|1=LANGUAGE=en_US:en:C:es_ES}}.}}\n\n=== LC_TIME: date and time format ===\n\nIf {{ic|LC_TIME}} is set to {{ic|en_US.UTF-8}}, for example, the date format will be \"MM/DD/YYYY\".  If wanting to use the the ISO 8601 date format of \"YYYY-MM-DD\" use:\n\n{{hc|locale.conf|2=\nLC_TIME=en_DK.UTF-8\n}}\n\n{{pkg|glibc}} 2.29 fixed a bug, {{ic|en_US.UTF-8}} started showing in 12-hour format, as was intended.  If wanting to use 24-hour format, use {{ic|1=LC_TIME=C.UTF-8}}.\n\n{{Note|1=Programs do not necessarily respect this variable to format the date. For example, {{man|1|date}} uses its own parameters to do so, and [[Firefox]] stopped honouring {{ic|LC_TIME}} with versions 57 to 84 ([https://bugzilla.mozilla.org/show_bug.cgi?id=1429578 Bug 1429578]).}}\n\n=== LC_COLLATE: collation ===\n\nThis variable governs the collation rules used for sorting and regular expressions.\n\nSetting the value to {{ic|C}} can for example make the ''ls'' command sort dotfiles first, followed by uppercase and lowercase filenames:\n\n{{hc|locale.conf|2=\nLC_COLLATE=C\n}}\n\nSee also [https://superuser.com/a/448294].\n\nTo get around potential issues, Arch used to set {{ic|1=LC_COLLATE=C}} in {{ic|/etc/profile}}, but this method is now deprecated.\n\n=== LC_ALL: troubleshooting ===\n\nThe locale set for this variable will always override {{ic|LANG}} and all the other {{ic|LC_*}} variables, whether they are set or not. If {{ic|LC_ALL}} is set to {{ic|C}}, it will also override {{ic|LANGUAGE}}.\n\n{{ic|LC_ALL}} is the only {{ic|LC_*}} variable which '''cannot''' be set in {{ic|locale.conf}} files: it is meant to be used only for testing or troubleshooting purposes, for example in {{ic|/etc/profile}}.\n\n{{Note|1={{ic|1=LC_ALL=C.UTF-8}}, unlike {{ic|1=LC_ALL=C}}, does not override {{ic|LANGUAGE}}. See [https://sourceware.org/bugzilla/show_bug.cgi?id=16621 glibc bug 16621] and [https://savannah.gnu.org/bugs/?62815 gettext bug 62815].}}\n\n== Troubleshooting ==\n\n=== My terminal does not support UTF-8 ===\n\nThe following lists some (not all) terminals that support UTF-8:\n\n* gnustep-terminal\n* konsole\n* [[mlterm]]\n* [[rxvt-unicode]]\n* [[st]]\n* [[List of applications/Utilities#VTE-based|VTE-based terminals]]\n* [[xterm]] - Run with the argument {{ic|-u8}} or configure resource {{ic|xterm*utf8: 2}}.\n\n==== Gnome-terminal or rxvt-unicode ====\n\nYou need to launch these applications from a UTF-8 locale or they will drop UTF-8 support.  Enable the {{ic|en_US.UTF-8}} locale (or your local UTF-8 alternative) per the instructions above and set it as the default locale, then reboot.\n\n=== My system is still using wrong language ===\n\nIt is possible that the environment variables are redefined in other files than {{ic|locale.conf}}. See [[Environment variables#Defining variables]] for details.\n\nIf you are using a desktop environment, such as [[GNOME]], its language settings may be overriding the settings in {{ic|locale.conf}}.\n\n[[KDE]] Plasma also allows to change the UI's language through the system settings. If the desktop environment is still using the default language after the modification, [https://bbs.archlinux.org/viewtopic.php?pid=1435219#p1435219 deleting the file at] {{ic|~/.config/plasma-localerc}} (previously: {{ic|~/.config/plasma-locale-settings.sh}}) should resolve the issue.\n\nIf you are using a display manager in combination with {{pkg|accountsservice}}, follow the instructions in [[Display manager#Set language for user session]].\n\n[[LightDM]] will automatically use {{pkg|accountsservice}} to set a user's locale if it is installed. Otherwise, LightDM stores the user session configuration in {{ic|~/.dmrc}}. It is possible that an unwanted locale setting is retrieved from there as well.\n\n=== Incorrect encoding for extracted files ===\n\nOld versions of Windows (XP, Vista, and 7) use different encoding for the content of compressed files. To unzip use the command:\n\n $ unzip -O CP936 ''file.zip''\n\n== See also ==\n\n* [[Gentoo:Localization/Guide]]\n* [http://wikigentoo.ksiezyc.pl/Locales.htm Supposedly 2008, or earlier, Gentoo wiki article]\n* [https://icu4c-demos.unicode.org/icu-bin/collation.html ICU's interactive collation testing]\n* [http://www.openi18n.org/ Free Standards Group Open Internationalisation Initiative]\n* [https://pubs.opengroup.org/onlinepubs/007908799/xbd/locale.html ''The Single UNIX Specification'' definition of Locale] by The Open Group\n* [https://help.ubuntu.com/community/EnvironmentVariables#Locale_setting_variables Locale environment variables]"
                    }
                ]
            },
            "2847": {
                "pageid": 2847,
                "ns": 0,
                "title": "Vi",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "{{Lowercase title}}\n[[Category:Text editors]]\n[[de:Vi]]\n[[es:Vi]]\n[[fr:Vi]]\n[[pt:Vi]]\n[[zh-hans:Vi]]\nAccording to [[Wikipedia:Vi|Wikipedia]]:\n\n:vi is a screen-oriented text editor originally created for the Unix operating system. The portable subset of the behavior of vi and programs based on it, and the ex editor language supported within these programs, is described by (and thus standardized by) the Single Unix Specification and POSIX.\n\n== Installation ==\n\n[[Install]] the {{Pkg|vi}} package.\n\n== Vi-style software ==\n\nThe key bindings and modes of vi have been recreated in various other software:\n\n* [[List of applications/Documents#Vi-style text editors|text editors]], the most popular of which being [[Vim]]\n* [[List of applications/Utilities#File managers|file managers]] like [[ranger]] and [[Vifm]]\n* the [[Readline#Editing mode|Readline]] input library (used by [[Bash]])\n* [[shell]]s like [[Zsh#Key bindings|Zsh]]\n* [[web browser]]s like [[Luakit]], [[qutebrowser]] or {{Pkg|vimb}}; for [[Firefox]] and [[Chromium]] there are [[Browser extensions#Keyboard shortcuts|browser extensions]] available.\n* most [[tiling window manager]]s can be configured for vi-style control\n\n== See also ==\n\n* {{man|1|vi}}"
                    }
                ]
            },
            "3051": {
                "pageid": 3051,
                "ns": 0,
                "title": "XScreenSaver",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:X server]]\n[[ja:XScreenSaver]]\n[[ru:XScreenSaver]]\n[[zh-hans:XScreenSaver]]\n{{Related articles start}}\n{{Related|DPMS}}\n{{Related|Xresources}}\n{{Related|Session lock}}\n{{Related|List of applications#Screen lockers}}\n{{Related articles end}}\n\n[https://www.jwz.org/xscreensaver/ XScreenSaver] is a screen saver and locker for the X Window System.\n\n== Installation ==\n\n[[Install]] the {{Pkg|xscreensaver}} package.\n\nFor an Arch Linux branded experience, install the {{AUR|xscreensaver-arch-logo}} package.\n\n== Configuration ==\n\nMost options are configured on a user-by-user basis by running ''xscreensaver-settings''. ''xscreensaver-settings'' writes the chosen configuration to {{ic|~/.xscreensaver}}, discarding any manual modifications to the file. Global options are defined in {{ic|/usr/share/X11/app-defaults/XScreenSaver}}.\n\nSince at least XScreenSaver 5.22, there is another way to edit XScreenSaver's user configuration, using [[X resources]].\n\n=== Theming ===\n\nStarting from version 6.0, XScreenSaver comes with several pre-installed themes. You can select a theme using ''xscreensaver-settings'' or by changing the {{ic|dialogTheme}} option ({{ic|dialogTheme: ''themename''}} in {{ic|~/.xscreensaver}} or using X resources: {{ic|xscreensaver-auth.dialogTheme: ''themename''}}).\n\nYou can customize themes using X resources. The example below demonstrates changing some colors and fonts. If you are using a non-default theme, replace {{ic|default}} with the name of your chosen theme in lower case, or use question mark ({{ic|?}}) to affect all themes:\n\n{{hc|~/.Xresources|\n! Font for regular texts.\n! Font names are case-insensitive.\n! You can use a comma-separated list of fonts to set a fallback font.\nxscreensaver-auth.default.Dialog.bodyFont: times new roman 12, dejavu serif 12\n\n! Window background color. You can use color names.\nxscreensaver-auth.default.Dialog.background: black\n\n! Main text color. You can also use HEX color codes.\nxscreensaver-auth.default.Dialog.foreground: #ffffff\n}}\n\nYou can view a list of the available X resources in {{ic|/usr/share/X11/app-defaults/XScreenSaver}}.\n\nDo not forget to [[X resources#Load resource file|reload the resource file]] after changes.\n\n=== DPMS and blanking settings ===\n\n{{Style|\"overrides DPMS\" is vague\u2014''xscreensaver'' does the equivalent of {{ic|xset s 0 0}}, uses its own timer for the various animations, but sets the DPMS timeout to the values in ''Display Power Management''.}}\n\nXScreenSaver manages screen blanking and display energy saving ([[DPMS]]) independently of X itself and overrides it. To configure the timings for blanking, standby, display poweroff and such, use ''xscreensaver-demo'' or edit the configuration file manually, e.g. {{ic|~/.xscreensaver}}:\n\n{{bc|\ntimeout:\t1:00:00\ncycle:\t\t0:05:00\nlock:\t\tFalse\nlockTimeout:\t0:00:00\npasswdTimeout:\t0:00:30\nfade:\t\tTrue\nunfade:\t\tFalse\nfadeSeconds:\t0:00:03\nfadeTicks:\t20\ndpmsEnabled:\tTrue\ndpmsStandby:\t2:00:00\ndpmsSuspend:\t2:00:00\ndpmsOff:\t4:00:00\n}}\n\nDPMS and screen blanking can be disabled by starting ''xscreensaver-demo'' and, for the ''Mode'' setting, choosing ''Disable Screen Saver''.\n\n{{Note|If ''Lock Screen After'' in ''xscreensaver-demo'' is ticked and set to 0 minutes, the screen will be locked immediately upon blanking. If ''Power Manager Enabled'' is unticked, DPMS is disabled; it does not mean that XScreenSaver will relinquish control of DPMS settings.}}\n\n== Usage ==\n\n{{Tip|To start XScreenSaver without the splash screen, use the {{ic|--no-splash}} switch. See {{man|1|xscreensaver}} for a full list of options.}}\n\nIn the [[Xfce]], [[LXDE]] and [[LXQt]] environments, XScreenSaver is autostarted automatically if it is available - no further action is required.\n\nIn [[KDE Plasma]], screen saver and locker features are handled by ''ksmserver'', which conflicts with XScreenSaver. To disable it, you need to [[KDE#systemd startup|enable systemd startup for KDE]] and then edit the {{ic|plasma-ksmserver.service}} [[user unit]]:\n\n{{hc|1=~/.config/systemd/user/plasma-ksmserver.service.d/override.conf|2=\n[Service]\nExecStart=\nExecStart=/usr/bin/ksmserver --no-lockscreen\n}}\n\nThen logout and login again, and XScreenSaver should work properly now. See {{man|1|xscreensaver|INSTALLING XSCREENSAVER ON KDE}} for more information.\n\nFor other environments, see [[Autostarting]].\n\nTo immediately trigger ''xscreensaver'', if it is running, and lock the screen, execute the following command:\n\n $ xscreensaver-command -lock\n\n=== Lock on suspend ===\n\nXScreenSaver ships with a small utility named ''xscreensaver-systemd'', which handles the {{ic|PrepareForSleep}} signal from [[systemd]] using [[D-Bus]] and automatically locks the screen on suspend and hibernate. It is started automatically with ''xscreensaver'', no further action required. See {{Man|6|xscreensaver-systemd}} for more information.\n\nHowever, it does not handle other systemd signals such as {{ic|loginctl lock-session}}. To handle it, you can use [[Power management#xss-lock|xss-lock]]. Use the {{ic|--ignore-sleep}} option because the suspend/hibernate events are already handled by ''xscreensaver-systemd''.\n\n $ xss-lock --ignore-sleep -- xscreensaver-command -lock\n\nYou may want to set XScreenSaver's fade out time to 0.\n\n=== User switching from the lock screen ===\n\n{{Warning|When switching users using a display manager such as GDM or LightDM, XScreenSaver will not lock the original session\u2014it can be accessed without a password simply by switching TTYs to the session in question. If you are using LightDM, as a workaround, install {{Pkg|light-locker}} and run it alongside XScreenSaver. Alternatively, use a different screen locking program altogether\u2014see [[List of applications/Security#Screen lockers]].}}\n\nBy default, XScreenSaver's ''New Login'' button in the lock screen will call {{ic|gdmflexiserver -ls}} to switch users. [[Display manager]]s other than [[GDM]] that support user switching require a different command.\n\n{{Tip|Adding {{ic|xscreensaver-auth.default.*.newLoginCommand:}} to {{ic|~/.Xresources}} whilst leaving the argument blank will make the ''New Login'' button disappear.}}\n\nAs modifications in {{ic|~/.xscreensaver}} are [[#Configuration|discarded]] by ''xscreensaver-settings'', {{ic|~/.Xresources}} is used in this section.\n\n==== LXDM ====\n\nTo use LXDM's switching mode:\n\n xscreensaver-auth.default.*.newLoginCommand: lxdm -c USER_SWITCH\n\n==== LightDM ====\n\nTo use [[LightDM]]'s switching mode:\n\n xscreensaver-auth.default.*.newLoginCommand: dm-tool switch-to-greeter\n\n{{Note|If you use this to switch to an already-logged-in user, you might have to enter the password twice (once for LightDM, and once for the XScreenSaver dialog of the user you logged in to).}}\n\n==== SDDM ====\n\n[[SDDM]] does not support user switching. [https://github.com/sddm/sddm/issues/579] You can try to call the {{ic|SwitchToGreeter}} method [https://github.com/sddm/sddm/issues/824 using dbus-send], but it may not work properly.\n\n== Tips and tricks ==\n\n=== Disable during media playback ===\n\nStarting from version 5.45, the ''xscreensaver-systemd'' utility implements the [[D-Bus]] ScreenSaver interface. It is started automatically with ''xscreensaver'', so most applications should properly disable the screensaver without additional configuration. However, some applications do not support D-Bus or use another interfaces.\n\n==== mpv ====\n\nBy default [[mpv]] uses the X11 Screen Saver extension (XSS). It turns off the screensaver at startup and turns it on again on exit. The screensaver is always re-enabled when the player is paused. The option can be controlled in ''mpv''<nowiki/>'s configuration file located in {{ic|~/.config/mpv/mpv.conf}}:\n\n stop-screensaver = \"yes\"\n\nThis is not supported on all video outputs or platforms. If you face some issues you might use a Lua script to manually disable the screensaver. Create a file at {{ic|~/.config/mpv/scripts/xscreensaver.lua}} with the following contents:\n\n local utils = require 'mp.utils'\n mp.add_periodic_timer(30, function()\n     utils.subprocess({args={\"xscreensaver-command\", \"-deactivate\"}})\n end)\n\nThe above script will call {{ic|xscreensaver-command -deactivate}} every 30 seconds.\n\n==== mplayer ====\n\nAdd the following to {{ic|~/.mplayer/config}}:\n\n heartbeat-cmd=\"xscreensaver-command -deactivate >&- 2>&- &\"\n\n==== Kodi ====\n\n[[Kodi]] has no native support to disable XScreenSaver (it uses its own screensaver). [[Install]] the {{AUR|kodi-prevent-xscreensaver}} package as a workaround or try Kodi extension from https://sourceforge.net/projects/osscreensavermanager/.\n\n==== Browser HTML5 video ====\n\nMost browsers ([[Chromium]] and Chromium-based spin-offs, [[Firefox]], [[GNOME Web]], [[Otter Browser]] etc.) support the D-Bus ScreenSaver interface and should disable the screensaver during HTML5 video playback.\n\n==== Other applications ====\n\nIf you are using applications that do not disable the screensaver, you can try a script named [https://github.com/devkral/lightsonplus lightsonplus], which disables the screensaver when a fullscreen video is detected. Some applications (such as {{Pkg|totem}}, [[Steam]] and others) are supported out of the box, you just need to enable their detection in the {{ic|lightson+}} script. If your application is unsupported but has a permanent window name, you can set it in the {{ic|window_name}} variable.\n\n=== Animated wallpaper ===\n\nOne can run {{ic|xscreensaver}} in the background, just like a wallpaper. First, kill any process that is controlling the background (the root window).\n\nThen, locate the desired XScreenSaver executable (typically in {{ic|/usr/lib/xscreensaver/}}) and run it with the {{ic|-root}} flag, for example:\n\n $ /usr/lib/xscreensaver/glslideshow -root &\n\n{{Note|If [[xcompmgr]] or [[picom]] causes problems, [[install]] the {{AUR|shantz-xwinwrap-bzr}} package, and run:\n\n $ xwinwrap -b -fs -sp -nf -ov -- /usr/lib/xscreensaver/glslideshow -root -window-id WID &\n}}\n\n== Troubleshooting ==\n\nTo log verbose debugging information, start ''xscreensaver'' with the {{ic|--verbose}} command line option. You can also add {{ic|verbose: True}} to the {{ic|~/.xscreensaver}} file to make it persistent.\n\nTo save the log to a file, you can set the path using the {{ic|--log}} option. Using this option also implies verbose output. (There is no equivalent option in {{ic|~/.xscreensaver}} or X resources).\n\n== See also ==\n\n* [https://www.jwz.org/xscreensaver/ Homepage for XScreenSaver]"
                    }
                ]
            },
            "3130": {
                "pageid": 3130,
                "ns": 0,
                "title": "Tor",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Anonymity networks]]\n[[de:Tor]]\n[[ja:Tor]]\n[[ru:Tor]]\n{{Related articles start}}\n{{Related|GNUnet}}\n{{Related|I2P}}\n{{Related|Freenet}}\n{{Related articles end}}\nThe [https://www.torproject.org Tor Project] (''T''he ''o''nion ''r''outing) is an open source implementation of [[Wikipedia:Onion routing|onion routing]] that provides free access to an anonymous proxy network. Its primary goal is to enable [[Wikipedia:Internet anonymity|online anonymity]] by protecting against [[Wikipedia:Traffic analysis|traffic analysis]] attacks.\n\nUsers of the Tor network run an onion proxy software on their machines, which presents a SOCKS interface to its clients. This software connects out to Tor, periodically negotiating a virtual circuit through the Tor network. Tor employs cryptography in a layered manner (hence the 'onion' analogy), ensuring forward secrecy between routers.\n\nThrough this process the onion proxy manages networking traffic for end-user anonymity. It keeps a user anonymous by encrypting traffic, sending it through other nodes of the Tor network, and decrypting it at the last node to receive your traffic before forwarding it to the server you specified. One trade off that has to be made for the anonymity Tor provides is that it can be considerably slower than a regular direct connection, due to the large amount of traffic re-routing. Additionally, although Tor provides protection against traffic analysis it cannot prevent traffic confirmation at the boundaries of the Tor network (i.e. the traffic entering and exiting the network). See [[Wikipedia:Tor (anonymity network)]] for more information.\n\n{{Note|Tor by itself is '''not''' all you need to maintain anonymity. There are several major pitfalls to watch out for (see [https://support.torproject.org/#staying-anonymous Am I totally anonymous if I use Tor?]).}}\n\n== Installation ==\n\n[[Install]] the {{Pkg|tor}} package.\n\nUsually, it will be used for [[#Web browsing]].\n\n''Nyx'' is a command line monitor for Tor, it provides bandwidth usage, connection details and on-the-fly configuration editing. To use it, [[install]] the {{Pkg|nyx}} package.\n\n== Usage ==\n\n[[Start/enable]] {{ic|tor.service}}. Alternatively, launch it with {{ic|sudo -u tor /usr/bin/tor}}.\n\nTo use a program over Tor, configure it to use {{ic|127.0.0.1}} or {{ic|localhost}} as a SOCKS5 proxy, with port {{ic|9050}} for plain Tor with standard settings.\n\nThe proxy supports remote DNS resolution: use {{ic|socks5'''h'''://localhost:9050}} for DNS resolution from the exit node (instead of {{ic|socks5}} for a local DNS resolution).\n\nTo check if Tor is functioning properly, visit https://check.torproject.org/ or https://torcheck.xenobite.eu/ websites.\n\n== Configuration ==\n\nTor reads its configurations from the file {{ic|/etc/tor/torrc}} by default, or if the latter is not found, from {{ic|$HOME/.torrc}}. The configuration options are explained in {{man|1|tor}} and the [https://torproject.org/docs/tor-manual.html.en Tor website]. The default configuration should work fine for most Tor users.\n\nTo reload the configuration after a change, [[reload]] {{ic|tor.service}}.\n\n=== Relay Configuration ===\n\nThe maximum file descriptor number that can be opened by Tor can be set with {{ic|LimitNOFILE}} in {{ic|tor.service}}. Fast relays may want to increase this value.\n\nIf your computer is not running a web server, and you have not set {{ic|AccountingMax}}, consider changing your {{ic|ORPort}} to {{ic|443}} and/or your {{ic|DirPort}} to {{ic|80}}. Many Tor users are stuck behind firewalls that only let them browse the web, and this change will let them reach your Tor relay. If you are already using ports {{ic|80}} and {{ic|443}}, other useful ports are {{ic|22}}, {{ic|110}}, {{ic|143}} and {{ic|9001}}.[https://trac.torproject.org/projects/tor/wiki/TorRelayGuide#TorRelaySetup:InstallationandConfiguration]\nPorts below 1024 are privileged ports, so to use those, Tor must be run as root by setting {{ic|1=User=root}} in {{ic|tor.service}} and {{ic|User tor}} in {{ic|torrc}}.\n\nYou may wish to review the [https://blog.torproject.org/lifecycle-new-relay/ Tor documentation].\n\n=== Open Tor ControlPort ===\n\nMost users will not need this. \nBut some programs will ask you to ''open your Tor ControlPort'' \nso they get low-level access to your Tor node.\n\nVia the ControlPort, \nother applications can change and monitor your Tor node, \nto modify your Tor configuration while Tor is running, \nor to get details about Tor network status and Tor circuits.\n\nappend to your {{ic|torrc}} file\n\n ControlPort 9051\n\nFrom Tor's [https://gitweb.torproject.org/torspec.git/tree/control-spec.txt control-spec.txt]: \n: For security, the [Tor control] stream should not be accessible by untrusted parties.\n\nSo, for more security, we will restrict access to the ControlPort, \neither with a ''cookie file'', or a ''control password'', or both.\n\n==== Set a Tor Control cookie file ====\n\nTo your {{ic|torrc}} add\n\n{{bc|\nCookieAuthentication 1\nCookieAuthFile /var/lib/tor/control_auth_cookie\nCookieAuthFileGroupReadable 1\nDataDirectoryGroupReadable 1\n}}\n\nWith ''cookie auth'', access to your ControlPort is restricted by file permissions \nto your Tor cookie file, and to your Tor data directory.\n\nWith the configuration above, \nall users in the {{ic|tor}} group have access to your Tor cookie file.\n\nAdd them to the {{ic|tor}} [[user group]].\n\n[[Restart]] {{ic|tor.service}}\n\nNow ''user'' should have access to your Tor cookie file.\n\n $ stat -c%a /var/lib/tor /var/lib/tor/control_auth_cookie\n\nshould print {{ic|750}} and {{ic|640}}.\n\n==== Set a Tor Control password ====\n\nConvert your password from plain-text to hash\n\n{{bc|\n# set +o history # unset bash history\n# tor --hash-password ''your_password''\n# set -o history # set bash history\n}}\n\nand add that hash to your {{ic|torrc}}\n\n HashedControlPassword ''your_hash''\n\nthe bash history commands prevent your clear-text password \nfrom being written to your bash {{ic|$HISTFILE}}\n\n==== Open Tor ControlSocket ====\n\nIf some program needs access to your Tor ControlSocket, \nas in Unix Domain Socket,\nadd the following to your {{ic|torrc}}:\n\n{{bc|\nControlSocket /var/lib/tor/control_socket\nControlSocketsGroupWritable 1\nDataDirectoryGroupReadable 1\nCacheDirectoryGroupReadable 1 # workaround for tor bug #26913\n}}\n\nAdd the user who will run the program to the {{ic|tor}} [[user group]]\n\n[[Restart]] {{ic|tor.service}} and relaunch the program.\n\nTo verify the status of the control sockets:\n\n # stat -c%a /var/lib/tor /var/lib/tor/control_socket\n\nshould print {{ic|750}} and {{ic|660}}\n\n==== Test your Tor Control ====\n\nTo test your ControlPort, run {{Pkg|gnu-netcat}} with\n\n $ echo -e 'PROTOCOLINFO\\r\\n' | nc 127.0.0.1 9051\n\nTo test your ControlSocket, run {{Pkg|socat}} with\n\n $ echo -e 'PROTOCOLINFO\\r\\n' | sudo -u ''user'' socat - UNIX-CLIENT:/var/lib/tor/control_socket\n\nboth commands should print\n\n{{bc|1=\n250-PROTOCOLINFO 1\n250-AUTH METHODS=COOKIE,SAFECOOKIE,HASHEDPASSWORD COOKIEFILE=\"/var/lib/tor/control_auth_cookie\"\n250-VERSION Tor=\"0.3.4.8\"\n250 OK\n514 Authentication required.\n}}\n\nSee Tor's [https://gitweb.torproject.org/torspec.git/tree/control-spec.txt control-spec.txt] for more commands.\n\n== Running Tor in a chroot ==\n\n{{Note| Connecting with telnet to the local ControlPort seems to be broken while running Tor in a chroot}}\n\nFor security purposes, it may be desirable to run Tor in a [[chroot]]. The following script will create an appropriate chroot in {{ic|/opt/torchroot}}:\n\n{{hc|~/torchroot-setup.sh|2=<nowiki>\n#!/bin/sh\nexport TORCHROOT=/opt/torchroot\n\nmkdir -p $TORCHROOT\nmkdir -p $TORCHROOT/etc/tor\nmkdir -p $TORCHROOT/dev\nmkdir -p $TORCHROOT/usr/bin\nmkdir -p $TORCHROOT/usr/lib\nmkdir -p $TORCHROOT/usr/share/tor\nmkdir -p $TORCHROOT/var/lib\nmkdir -p $TORCHROOT/var/log/tor/\n\nln -s /usr/lib  $TORCHROOT/lib\ncp /etc/hosts           $TORCHROOT/etc/\ncp /etc/host.conf       $TORCHROOT/etc/\ncp /etc/localtime       $TORCHROOT/etc/\ncp /etc/nsswitch.conf   $TORCHROOT/etc/\ncp /etc/resolv.conf     $TORCHROOT/etc/\n\ncp /usr/bin/tor         $TORCHROOT/usr/bin/\ncp /usr/share/tor/geoip* $TORCHROOT/usr/share/tor/\ncp /lib/libnss* /lib/libnsl* /lib/ld-linux-*.so* /lib/libresolv* /lib/libgcc_s.so* $TORCHROOT/usr/lib/\ncp $(ldd /usr/bin/tor | awk '{print $3}'|grep --color=never \"^/\") $TORCHROOT/usr/lib/\n\n### /var/log/tor/notices.log is only needed if you run hidden services\n# cp /var/log/tor/notices.log $TORCHROOT/var/log/tor/\n\ncp -r /var/lib/tor      $TORCHROOT/var/lib/\ncp /etc/tor/torrc       $TORCHROOT/etc/tor/\n\nchown tor:tor $TORCHROOT\nchmod 700 $TORCHROOT\nchown -R tor:tor $TORCHROOT/var/lib/tor\nchown -R tor:tor $TORCHROOT/var/log/tor\n\nsh -c \"grep --color=never ^tor /etc/passwd > $TORCHROOT/etc/passwd\"\nsh -c \"grep --color=never ^tor /etc/group > $TORCHROOT/etc/group\"\n\nmknod -m 644 $TORCHROOT/dev/random c 1 8\nmknod -m 644 $TORCHROOT/dev/urandom c 1 9\nmknod -m 666 $TORCHROOT/dev/null c 1 3\n\nif [ \"$(uname -m)\" = \"x86_64\" ]; then\n  cp /usr/lib/ld-linux-x86-64.so* $TORCHROOT/usr/lib/.\n  ln -sr /usr/lib64 $TORCHROOT/lib64\n  ln -s $TORCHROOT/usr/lib ${TORCHROOT}/usr/lib64\nfi\n\n</nowiki>}}\n\nAfter running the script as root, Tor can be launched in the [[chroot]] with the command:\n\n # chroot --userspec=tor:tor /opt/torchroot /usr/bin/tor\n\nor, if you use systemd, [[Systemd#Editing provided units|overload]] the service:\n\n{{hc|/etc/systemd/system/tor.service.d/chroot.conf|2=\n[Service]\nUser=root\nExecStart=\nExecStart=/usr/bin/sh -c \"chroot --userspec=tor:tor /opt/torchroot /usr/bin/tor -f /etc/tor/torrc\"\nKillSignal=SIGINT\n}}\n\n== Running Tor in a systemd-nspawn container with a virtual network interface ==\n\nIn this example we will create a [[systemd-nspawn]] container named {{ic|tor-exit}} with a virtual macvlan network interface.\n\nSee [[systemd-nspawn]] and [[systemd-networkd]] for full documentation.\n\n=== Host installation and configuration ===\n\nIn this example the container will reside in {{ic|/srv/container}}:\n\n # mkdir /srv/container/tor-exit\n\n[[Install]] the {{Pkg|arch-install-scripts}}.\n\nInstall {{Pkg|base}}, {{Pkg|tor}} and {{Pkg|nyx}} as per [[systemd-nspawn#Create and boot a minimal Arch Linux container]]:\n\n # pacstrap -K -ci /srv/container/tor-exit base tor nyx\n\nCreate directory if it does not exist:\n\n # mkdir /var/lib/container\n\nSymlink to register the container on the host, as per [[systemd-nspawn#Management]]:\n\n # ln -s /srv/container/tor-exit /var/lib/container/tor-exit\n\n==== Virtual network interface ====\n\nCreate a drop-in configuration file for the container:\n\n{{hc|/etc/systemd/nspawn/tor-exit.nspawn|2=\n[Network]\nMACVLAN=''interface''\n\n[Exec]\nLimitNOFILE=32768\n}}\n\n{{ic|1=MACVLAN=''interface''}} creates a \"macvlan\" interface named {{ic|mv-''interface''}} and assigns it to the container, see [[systemd-nspawn#Use a \"macvlan\" or \"ipvlan\" interface]] for details. This is advisable for security as it will allow you to give a private IP to the container, and it will not know what your machine's IP is. This can help obscure DNS requests.\n\n{{ic|1=LimitNOFILE=32768}} per [[#Raise maximum number of open file descriptors]].\n\nSet up [[systemd-networkd]] according to your network in {{ic|/srv/container/tor-exit/etc/systemd/network/mv-''interface''.network}}.\n\n==== Start and enable systemd-nspawn ====\n\n[[Start/enable]] {{ic|systemd-nspawn@tor-exit.service}}.\n\n=== Container configuration ===\n\nLogin to the container (see [[systemd-nspawn#machinectl]]):\n\n # machinectl login tor-exit \n\nSee [[systemd-nspawn#Root login fails]] if you cannot log in.\n\n==== Start and enable systemd-networkd ====\n\n[[Start]] and enable {{ic|systemd-networkd.service}}. {{ic|networkctl}} displays if {{ic|systemd-networkd}} is correctly configured.\n\n=== Configure Tor ===\n\nSee [[#Running a Tor server]].\n\n{{Tip|It is easier to edit files in the container from the host with your normal editor.}}\n\n== Web browsing ==\n\nThe only way to browse anonymously is with the supported ''Tor Browser Bundle'', which uses a patched version of [[Firefox]]. It can be installed with the {{Pkg|torbrowser-launcher}} package or the {{AUR|tor-browser}} package.\n\nTor can also be used with regular browsers: see [[#Firefox]] or [[#Chromium]] to run these browsers through the Tor network. Note this is not an anonymous way to browse even in \"private browsing\" mode: fingerprinting, plugins, DNS leak and other shortcomings may reveal your IP address or identity. [https://www.torproject.org/docs/faq.html.en#TBBOtherBrowser]\n\n{{Tip|For makepkg to verify the signature on the AUR source tarball download for ''Tor Browser'', import the [https://www.torproject.org/docs/signing-keys.html.en signing keys from the Tor Project] as explained in [[GnuPG#Use a keyserver]].}}\n\n=== Firefox ===\n\nIn ''Preferences > General > Network Settings > Settings...'' , select ''Manual proxy configuration'' and enter SOCKS host {{ic|localhost}} with port {{ic|9050}} (SOCKS v5). To channel all DNS requests through TOR's socks proxy, also select ''Proxy DNS when using SOCKS v5''.\n\n=== Chromium ===\n\nYou can simply run:\n\n $ chromium --proxy-server=\"socks5://myproxy:8080\" --host-resolver-rules=\"MAP * ~NOTFOUND , EXCLUDE myproxy\"\n\nThe {{ic|1=--proxy-server=\"socks5://myproxy:8080\"}} flag tells Chrome to send all {{ic|http://}} and {{ic|https://}} URL requests through the SOCKS proxy server {{ic|\"myproxy:8080\"}}, using version 5 of the SOCKS protocol. The hostname for these URLs will be resolved by the proxy server, and not locally by Chrome.\n\n{{Note|Proxying of {{ic|ftp://}} URLs through a SOCKS proxy is not yet implemented[https://www.chromium.org/developers/design-documents/network-stack/socks-proxy].}}\n\nThe {{ic|--proxy-server}} flag applies to URL loads only. There are other components of Chrome which may issue DNS resolves directly and hence bypass this proxy server. The most notable such component is the \"DNS prefetcher\". Hence if DNS prefetching is not disabled in Chrome then you will still see local DNS requests being issued by Chrome despite having specified a SOCKS v5 proxy server. Disabling DNS prefetching would solve this problem, however it is a fragile solution since one needs to be aware of all the areas in Chrome which issue raw DNS requests. To address this, the next flag, {{ic|1=--host-resolver-rules=\"MAP * ~NOTFOUND , EXCLUDE myproxy\"}}, is a catch-all to prevent Chrome from sending any DNS requests over the network. It says that all DNS resolves are to be simply mapped to the (invalid) address {{ic|~NOTFOUND}} (think of it as {{ic|0.0.0.0}}). The {{ic|\"EXCLUDE\"}} clause make an exception for {{ic|\"myproxy\"}}, because otherwise Chrome would be unable to resolve the address of the SOCKS proxy server itself, and all requests would necessarily fail with {{ic|PROXY_CONNECTION_FAILED}}.\n\nTo prevent the [https://ipleak.net/#webrtcleak WebRTC leak] you can install the extension [https://chrome.google.com/webstore/detail/webrtc-network-limiter/npeicpdbkakmehahjeeohfdhnlpdklia WebRTC Network Limiter].\n\n{{Note|For [[Wikipedia:Electron_(software_framework)|Electron]] apps you do not need {{ic|--host-resolver-rules}}}}\n\n==== Debug ====\n\nThe first thing to check when debugging is look at the Proxy tab on about:net-internals, and verify what the effective proxy settings are: {{ic|chrome://net-internals/#proxy}}\n\nNext, take a look at the DNS tab of {{ic|about:net-internals}} to make sure Chrome is not issuing local DNS resolves: {{ic|chrome://net-internals/#dns}}\n\n==== Extension ====\n\nJust as with Firefox, you can setup a fast switch for example through [https://chrome.google.com/webstore/detail/dpplabbmogkhghncfbfdeeokoefdjegm Proxy SwitchySharp].\n\nOnce installed enter in its configuration page. Under the tab ''Proxy Profiles'' add a new profile ''Tor'', if ticked untick the option ''Use the same proxy server for all protocols'', then add ''localhost'' as SOCKS Host, ''9050'' to the respective port and select ''SOCKS v5''.\n\nOptionally you can enable the quick switch under the ''General'' tab to be able to switch between normal navigation and Tor network just by left-clicking on the Proxy SwitchySharp's icon.\n\n==== Electron ====\n\nSee [[#Chromium]]\n\n=== Luakit ===\n\n{{Note|It will not be hard for an observer to identify you by the rare user-agent string, and there may be further issues with Flash, JavaScript or similar.}}\n\nYou can simply run:\n\n $ torsocks luakit\n\n== HTTP proxy ==\n\nTor offers a builtin tunneled HTTP proxy and can also be used with an HTTP proxy like [[Privoxy]], however the Tor development team recommends using the SOCKS5 library since browsers directly support it.\n\n=== Tor ===\n\nAdd following line to your {{ic|torrc}} file to set port {{ic|8118}} on your {{ic|localhost}} as HTTP proxy:\n\n HTTPTunnelPort 127.0.0.1:8118\n\nRefer to [https://2019.www.torproject.org/docs/tor-manual.html.en#HTTPTunnelPort Tor manual] for further information.\n\n=== Firefox ===\n\nThe [https://addons.mozilla.org/firefox/addon/foxyproxy-standard/ FoxyProxy] add-on  allows you to specify multiple proxies for different URLs or for all your browsing. After restarting Firefox manually set Firefox to port {{ic|8118}} on {{ic|localhost}}, which is where [[Privoxy]] are running. These settings can be access under ''Add > Standard proxy type''. Select a proxy label (e.g Tor) and enter the port and host into the ''HTTP Proxy'' and ''SSL Proxy'' fields. To check if Tor is functioning properly visit the [https://check.torproject.org/ Tor Check] website and toggle Tor.\n\n=== Privoxy ===\n\nYou can also use this setup in other applications like messaging (e.g. [[Jabber]], [[IRC]]). Applications that support HTTP proxies you can connect to Privoxy (i.e. {{ic|127.0.0.1:8118}}). To use SOCKS proxy directly, you can point your application at Tor (i.e. {{ic|127.0.0.1:9050}}). A problem with this method though is that applications doing DNS resolves by themselves may leak information. Consider using Socks4A (e.g. with Privoxy) instead.\n\n== Instant messaging ==\n\nIn order to use an instant messaging client with tor, we do not need an HTTP proxy like [[privoxy]]. We will be using tor's daemon directly which listens to port 9050 by default.\n\n=== Pidgin ===\n\nYou can set up [[Pidgin]] to use Tor globally, or per account. To use Tor globally, go to ''Tools -> Preferences -> Proxy''. To use Tor for specific accounts, go to ''Accounts > Manage Accounts'', select the desired account, click Modify, then go to the Proxy tab. The proxy settings are as follows:\n\n Proxy type SOCKS5\n Host 127.0.0.1\n Port 9150\n\nNote that [https://trac.torproject.org/projects/tor/ticket/8135 some time in 2013] the Port has changed from 9050 to 9150 if you use the Tor Browser Bundle. Try the other value if you receive a \"Connection refused\" message.\n\n=== Irssi ===\n\n{{Out of date|{{ic|cap_sasl.pl}} is broken with ''perl'' 5.20; SSL does also not work with {{ic|torsocks}}}}\n\nLibera Chat recommends connecting to {{ic|.onion}} directly. It also requires SASL to identify to NickServ during connection; see [[Irssi#Authenticating with SASL]]. Start irssi:\n\n $ torsocks irssi\n\nSet your identification to nickserv, which will be read when connecting. Supported mechanisms are ECDSA-NIST256P-CHALLENGE (see [https://github.com/kaniini/ecdsatool/blob/master/example-for-cap_sasl.pl ecdsatool]) and PLAIN. DH-BLOWFISH [https://libera.chat/guides/sasl is not supported].\n\n /sasl set ''network'' ''username'' ''password'' ''mechanism''\n\nDisable CTCP and DCC and set a different hostname to prevent information disclosure: [https://encrypteverything.ca/IRC_Anonymity_Guide]{{Dead link|2021|05|17|status=SSL error}}\n\n /ignore * CTCPS\n /ignore * DCC\n /set hostname ''fake_host''\n\nConnect to Libera Chat:\n\n /connect -network ''network'' libera75jm6of4wxpxt4aynol3xjmbtxgfyjpu34ss4d7r7q2v5zrpyd.onion\n\nFor more information check [https://libera.chat/guides/connect#accessing-liberachat-via-tor Accessing Libera.Chat Via Tor], [https://libera.chat/guides/sasl Using SASL] or [https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/IrcSilc IRC/SILC Wiki article].\n\n== Pacman ==\n\n[[Pacman]] download operations (repository databases, packages, and public keys) can be done using the Tor network.\n\nAdvantages:\n* Attackers that can monitor your Internet connection and that specifically targets your machine cannot watch the updates anymore and, because of that, they cannot deduce the packages you have installed, how up to date they are, when or how frequently you update them. An attacker can still learn what software and the versions you use by other means, for instance watching the packets from your HTTP server or probing the machine will show that you have an HTTP server installed and its version.\n* If the mirror is not an onion, a malicious exit nodes you are going through can watch the updates, and may decide to attack you, however they probably cannot know who they are attacking.\n* Attackers trying to make your machine believe that there are no new updates to prevent it from getting security fixes will have a harder time doing it since they cannot target your machine specifically.\n\nDisadvantages:\n* Longer update times due to longer latency and lower throughput. This can be a big security risk if/when the updates needs to be done as fast as possible, especially on machines directly connected to the Internet. That is the case when there is a huge security flaw, and that the flaws are fast to probe, easy to exploit, and that attackers have already started targeting as many systems as they can before the systems are updated.\n\nReliability with Tor:\n* You do not need a working DNS anymore.\n* You depend on the Tor network and the exit nodes not blocking the updates.\n* You depend on the Tor daemon to work properly. The Tor daemon may not work if there is no more disk space available to it. \"Reserved blocks gid:\" in ext4, quotas, or other means can fix that.\n* If you are in a country where Tor is blocked, or that there are almost or no Tor users at all, you should use bridges.\n\nNote on GPG:\nOn stock Arch, pacman only trust keys which are either signed by you (that can be done with {{ic|pacman-key --lsign-key}}) or signed by 3 of 5 Arch master keys. If a malicious exit node replaces packages with ones signed by its key, pacman will not let the user install the package.\n\n{{Note| This might not be true for other distributions derived from ARCH, for non-official repositories and for AUR}}\n\n{{hc|/etc/pacman.conf|2=\n...\nXferCommand = /usr/bin/curl --socks5-hostname localhost:9050 --location --continue-at - --fail --output %o %u\n...\n}}\n\n{{note|Due to work in progress for database signatures, you might get 404 for the signatures. Depending on your [[Pacman/Package signing#Configuring pacman]], it should be harmless.}}\n\n== Java ==\n\nOne can ensure a [https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html java application proxies] run its connections through Tor by appending the following command line options:\n\n export JAVA_OPTIONS=\"$JAVA_OPTIONS -DsocksProxyHost=localhost -DsocksProxyPort=9050\"\n\n== Running a Tor server ==\n\nThe Tor network is reliant on people contributing bandwidth and setting up services. There are several ways to contribute to the network.\n\n=== Running a Tor bridge ===\n\nA Tor bridge is a Tor relay that is not listed in the public Tor directory, thus making it possible for people to connect to the Tor network when governments or ISPs block all public Tor relays. Visit https://bridges.torproject.org/ for more information and instructions on how to get bridge addresses.\n\nTo run a Tor bridge, make your {{ic|torrc}} configuration file be just these four lines (also see [https://2019.www.torproject.org/docs/bridges#RunningABridge Tor Project running a bridge]):\n\n SOCKSPort 0\n ORPort 443\n BridgeRelay 1\n ExitRelay 0\n\n=== Running a Tor relay ===\n\nThis means that your machine will act as an entry node or forwarding relay and, unlike a bridge, it will be listed in the public Tor directory. Your IP address will be publicly visible in the Tor directory but the relay will only forward to other relays or Tor exit nodes, not directly to the internet.\n\nTo run a Tor relay, add the following options to the {{ic|torrc}} configuration file, you should at least share 20KiB/s:\n\n Nickname ''tornickname''\n ORPort 9001                  # This TCP-Port has to be opened/forwarded in your Firewall\n BandwidthRate 20 KB          # Throttle traffic to 20KB/s\n BandwidthBurst 50 KB         # But allow bursts up to 50KB/s\n ExitRelay 0                  # Disallow exits from your relay\n\n=== Running a Tor exit node ===\n\nAny requests from a Tor user to the regular internet obviously need to exit the network somewhere, and exit nodes provide this vital service. To the accessed host, the request will appear as having originated from your machine. This means that running an exit node is generally considered more legally onerous than running other forms of Tor relays. Before becoming an exit relay, you may want to read [https://blog.torproject.org/tips-running-exit-node/ Tor Project - tips for running an exit node].\n\n==== Configuration ====\n\nUsing the {{ic|torrc}}, you can configure which services you wish to allow through your exit node.\n\nMake the relay an exit relay:\n\n ExitRelay 1\n\nAllow all traffic:\n\n ExitPolicy accept *:*\n\nAllow only IRC ports 6660-6667 but nothing else to exit from node:\n\n ExitPolicy accept *:6660-6667,reject *:*\n\nBy default, Tor will block certain ports. You can use the {{ic|torrc}} to override this, for example accepting NNTP: \n\n ExitPolicy accept *:119\n\n==== +100Mbps Exit Relay configuration example ====\n\nIf you run a fast exit relay (+100Mbps) with {{ic|ORPort 443}} and {{ic|DirPort 80}}, the following configuration changes might serve as inspiration to setup Tor alongside [[iptables]] firewall, [[Haveged]] to increase system entropy and [[pdnsd]] as DNS cache. It is important to ''first'' read [https://www.torproject.org/docs/tor-relay-debian.html.en#after Configuring a Tor relay on Debian/Ubuntu]. \n\n{{Note|See [[#Running Tor in a systemd-nspawn container with a virtual network interface]] for instructions to install Tor in a {{ic|systemd-nspawn}} container. [[Haveged]] should be installed on the container host.}}\n\n===== Tor =====\n\n====== Raise maximum number of open file descriptors ======\n\nTo handle more than 8192 connections {{ic|LimitNOFILE}} can be raised to 32768 as per [https://support.torproject.org/#packaged-tor Tor FAQ (Should I install Tor from my package manager, or build from source?)].\n\n{{hc|/etc/systemd/system/tor.service.d/increase-file-limits.conf|2=\n[Service]\nLimitNOFILE=32768\n}}\n\nTo successfully raise {{ic|nofile}} limit, you may also have to append the following:\n\n{{hc|/etc/security/limits.conf|\n...\ntor     soft    nofile    32768\ntor     hard    nofile    32768\n@tor    soft    nofile    32768\n@tor    hard    nofile    32768\n}}\n\nCheck if the {{ic|nofile}} (filedescriptor) limit is successfully raised with {{ic|sudo -u tor 'ulimit -Hn'}} as the root user or {{ic|sudo -u tor bash}} and {{ic|ulimit -Hn}} as the root user.\n\n====== Start tor.service as root to bind Tor to privileged ports ======\n\nTo bind Tor to privileged ports the service must be started as root. Please specify {{ic|User tor}} option in {{ic|/etc/tor/torrc}}.\n\n{{hc|/etc/systemd/system/tor.service.d/start-as-root.conf|2=\n[Service]\nUser=root\n}}\n\n====== Tor configuration ======\n\nTo listen on Port 80 and 443 the service need to be started as {{ic|root}} as described in [[#Start tor.service as root to bind Tor to privileged ports]].\nUse the {{ic|User tor}} option in {{ic|/etc/tor/torrc}} to properly reduce Tor\u2019s privileges.\n\n{{hc|/etc/tor/torrc|2=\nSOCKSPort 0                                       ## Pure relay configuration without local socks proxy\n\nLog notice stdout                                 ## Default Tor behavior\n\nControlPort 9051                                  ## For nyx connection\nCookieAuthentication 1                            ## For nyx connection\n\nORPort 443                                        ## Service must be started as root\n\nAddress $IP                                       ## IP or FQDN\nNickname $NICKNAME                                ## Nickname displayed in [https://metrics.torproject.org/rs.html Tor Relay Search]\n\nRelayBandwidthRate 500 Mbits                      ## bytes/KBytes/MBytes/GBytes/KBits/MBits/GBits\nRelayBandwidthBurst 1000 MBits                    ## bytes/KBytes/MBytes/GBytes/KBits/MBits/GBits\n\nContactInfo $E-MAIL                               ## [https://gitlab.torproject.org/tpo/community/relays/-/issues/18 Tor Relay good practices] suggests an email\n\nDirPort 80                                        ## Service must be started as root\nDirPortFrontPage /etc/tor/tor-exit-notice.html    ## Original: [https://gitweb.torproject.org/tor.git/plain/contrib/operator-tools/tor-exit-notice.html https://gitweb.torproject.org/tor.git/plain/contrib/operator-tools/tor-exit-notice.html]\n\nMyFamily $($KEYID),$($KEYID)...                   ## Remember $ in front of keyid(s) ;)\n\nExitPolicy reject XXX.XXX.XXX.XXX/XX:*            ## Block domain of public IP in addition to std. exit policy\n\nUser tor                                          ## Return to tor user after service started as root to listen on privileged ports\n\nDisableDebuggerAttachment 0                       ## For nyx connection\n\n### Performance related options ###\nAvoidDiskWrites 1                                 ## Reduce wear on SSD\nDisableAllSwap 1                                  ## Service must be started as root\nHardwareAccel 1                                   ## Look for OpenSSL hardware cryptographic support\nNumCPUs 2                                         ## Only start two threads\n}}\n\nThis configuration is based on the [https://2019.www.torproject.org/docs/tor-manual.html.en Tor Manual]. \n\nTor opens a socks proxy on port 9050 by default -- even if you do not configure one. Set {{ic|SOCKSPort 0}} if you plan to run Tor only as a relay, and not make any local application connections yourself.\n\n{{ic|Log notice stdout}} changes logging to stdout, which is also the Tor default.\n{{ic|ControlPort 9051}}, {{ic|CookieAuthentication 1}} and {{ic|DisableDebuggerAttachment 0}} enables {{Pkg|nyx}} to connect to Tor and display connections.\n\n{{ic|ORPort 443}} and {{ic|DirPort 80}} lets Tor listen on port 443 and 80 and {{ic|DirPortFrontPage}} displays the [https://gitweb.torproject.org/tor.git/plain/contrib/operator-tools/tor-exit-notice.html tor-exit-notice.html] on port 80.\n\n{{ic|ExitPolicy reject XXX.XXX.XXX.XXX/XX:*}} should reflect your public IP and netmask, which can be obtained with the command {{ic|ip addr}}, so exit connections cannot connect to the host or neighboring machines public IP and circumvent firewalls.\n\n{{ic|AvoidDiskWrites 1}} reduces disk writes and wear on SSD.\n{{ic|DisableAllSwap 1}} \"will attempt to lock all current and future memory pages, so that memory cannot be paged out\". \n\nIf {{ic|grep aes /proc/cpuinfo}} returns that your CPU supports AES instructions and {{ic|lsmod {{!}} grep aes}} returns that the module is loaded, you can specify {{ic|HardwareAccel 1}} which tries \"to use built-in (static) crypto hardware acceleration when available\", see [https://www.torservers.net/wiki/setup/server#aes-ni_crypto_acceleration https://www.torservers.net/wiki/setup/server#aes-ni_crypto_acceleration].\n\n{{ic|ORPort 443}}, {{ic|DirPort 80}} and {{ic|DisableAllSwap 1}} require that you start the Tor service as {{ic|root}} as described in [[#Start tor.service as root to bind Tor to privileged ports]].\nUse the {{ic|User tor}} option to properly reduce Tor\u2019s privileges.\n\n===== nyx =====\n\nIf {{ic|ControlPort 9051}} and {{ic|CookieAuthentication 1}} is specified in {{ic|/etc/tor/torrc}}, {{Pkg|nyx}} can be started with {{ic|sudo -u tor nyx}}.\nIf you want to watch Tor connections in {{Pkg|nyx}} {{ic|DisableDebuggerAttachment 0}} must also be specified.\n\nIf you want to run {{ic|nyx}} as a different user than {{ic|tor}}, read section [[#Set a Tor Control cookie file]]\n\n===== iptables =====\n\nSetup and learn to use [[iptables]]. Instead of being a [[Simple stateful firewall]] where connection tracking would have to track thousands of connections on a tor exit relay this firewall configuration is stateless.\n\n{{hc|/etc/iptables/iptables.rules|2=\n*raw\n-A PREROUTING -j NOTRACK\n-A OUTPUT -j NOTRACK\nCOMMIT\n\n*filter\n:INPUT DROP [0:0]\n:FORWARD DROP [0:0]\n:OUTPUT ACCEPT [0:0]\n-A INPUT -p tcp ! --syn -j ACCEPT\n-A INPUT -p udp -j ACCEPT\n-A INPUT -p icmp -j ACCEPT\n-A INPUT -p tcp --dport 443 -j ACCEPT\n-A INPUT -p tcp --dport 80 -j ACCEPT\n-A INPUT -i lo -j ACCEPT\nCOMMIT\n}}\n\n{{ic|-A PREROUTING -j NOTRACK}} and {{ic|-A OUTPUT -j NOTRACK}} disables connection tracking in the {{ic|raw}} table.\n\n{{ic|:INPUT DROP [0:0]}} is the default {{ic|INPUT}} target and drops input traffic we do not specifically {{ic|ACCEPT}}.\n\n{{ic|:FORWARD DROP [0:0]}} is the default {{ic|FORWARD}} target and only relevant if the host is a normal router, not  when the host is an onion router.\n\n{{ic|:OUTPUT ACCEPT [0:0]}} is the default {{ic|OUTPUT}} target and allows all outgoing connections.\n\n{{ic|-A INPUT -p tcp ! --syn -j ACCEPT}} allow already established incoming TCP connections per the rules below and TCP connections established from the exit node.\n\n{{ic|-A INPUT -p udp -j ACCEPT}} allow all incoming UDP connections because we do not use connection tracking.\n\n{{ic|-A INPUT -p icmp -j ACCEPT}} allow [[wikipedia:Internet_Control_Message_Protocol|ICMP]].\n\n{{ic|-A INPUT -p tcp --dport 443 -j ACCEPT}} allow incoming connections to the {{ic|ORPort}}.\n\n{{ic|-A INPUT -p tcp --dport 80 -j ACCEPT}} allow incoming connections to the {{ic|DirPort}}.\n\n{{ic|-A INPUT -i lo -j ACCEPT}} allows all connections on the loopback interface.\n\n===== Haveged =====\n\nSee [[Haveged]] to decide if your system generates enough entropy to handle a lot of OpenSSL connections, see [https://www.issihosts.com/haveged/ haveged - A simple entropy daemon] and [https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged how-to-setup-additional-entropy-for-cloud-servers-using-haveged] for documentation.\n\n===== pdnsd =====\n\n{{Warning|This configuration assumes your network DNS resolver is trusted (uncensored).}}\n\nYou can use [[pdnsd]] to cache DNS queries locally, so the exit relay can resolve DNS faster and the exit relay does not forward all DNS queries to an external DNS recursor.\n\n{{hc|/etc/pdnsd.conf|2=\n...\nperm_cache=102400                       ## (Default value)*100 = 1MB * 100 = 100MB\n...\nserver {\n    label= \"resolvconf\";\n    file = \"/etc/pdnsd-resolv.conf\";    ## Preferably do not use /etc/resolv.conf\n    timeout=4;                          ## Server timeout, this may be much shorter than the global timeout option.\n    uptest=query;                       ## Test availability using empty DNS queries. \n    query_test_name=\".\";                ## To be used if remote servers ignore empty queries.\n    interval=10m;                       ## Test every 10 minutes.\n    purge_cache=off;                    ## Ignore TTL.\n    edns_query=yes;                     ## Use EDNS for outgoing queries to allow UDP messages larger than 512 bytes. May cause trouble with some legacy systems.\n    preset=off;                         ## Assume server is down before uptest.\n }\n...\n}}\n\nThis configuration stub shows how to cache queries to your normal DNS recursor locally and increase pdnsd cache size to 100MB.\n\n====== Uncensored DNS ======\n\nIf your local DNS recursor is in some way censored or interferes with DNS queries, see [[Alternative DNS services]] for alternatives and add them in a seperate server-section in {{ic|/etc/pdnsd.conf}} as per [[Pdnsd#DNS servers]].\n\n==== Ensuring relay is working ====\n\nFirst check that {{ic|tor.service}} started correctly either with the [[journal]] or by checking the [[unit status]]. \n\nIf there are no errors, one can run {{ic|nyx}} to ensure your relay is making connections. Do not be concerned if your [https://blog.torproject.org/lifecycle-new-relay new relay] is slow at first; this is normal. After approximately 3 hours, your relay should be published and searchable on [https://metrics.torproject.org/rs.html#search Relay Search].\n\n== TorDNS ==\n\nDNS queries can be performed through a command line interface by using {{Ic|1=tor-resolve}} For example:\n\n{{hc|$ tor-resolve archlinux.org|\n66.211.214.131\n}}\n\nThe Tor 0.2.x series also provides a built-in DNS forwarder. To enable it add the following lines to the Tor configuration file and restart the daemon:\n\n{{hc|/etc/tor/torrc|\nDNSPort 9053\nAutomapHostsOnResolve 1\nAutomapHostsSuffixes .exit,.onion\n}}\n\nThis will allow Tor to accept DNS requests (listening on port 9053 in this example) like a regular DNS server, and resolve the domain via the Tor network.\n\nA downside of both methods is that they are only able to resolve DNS queries for A, AAAA and PTR records; MX and NS queries are never answered. For more information see this [https://techstdout.boum.org/TorDns/ Debian-based introduction].\n\n=== Using TorDNS systemwide ===\n\nIt is possible to configure your system, if so desired, to use TorDNS for any A, AAAA and PTR  queries your system makes, regardless of whether or not you eventually use Tor to connect to your final destination. To do this, configure your system to use 127.0.0.1 as its DNS server and edit the {{ic|DNSPort}} line in {{ic|/etc/tor/torrc}} to show:\n\n DNSPort 53\n\nAlternatively, you can use a local caching DNS server, such as [[dnsmasq]] or [[pdnsd]], which will also compensate for TorDNS being a little slower than traditional DNS servers. The following instructions will show how to set up ''dnsmasq'' for this purpose. Note, if you are using ''NetworkManager'' you will need to add your configuration file to to the location outlined in [[NetworkManager#dnsmasq]].\n\nChange the tor setting to listen for the DNS request in port 9053 and install {{Pkg|dnsmasq}}.\n\nModify its configuration file so that it contains:\n\n{{hc|/etc/dnsmasq.conf|2=\nno-resolv\nport=53\nserver=127.0.0.1#9053\nlisten-address=127.0.0.1\n}}\n\nThese configurations set dnsmasq to listen only for requests from the local computer, and to use TorDNS at its sole upstream provider. It is now necessary to edit {{ic|/etc/resolv.conf}} so that your system will query only the dnsmasq server.\n\n{{hc|/etc/resolv.conf|\nnameserver 127.0.0.1\n}}\n\nStart the '''dnsmasq''' daemon.\n\nFinally if you use [[dhcpcd]] you would need to change its settings to that it does not alter the resolv configuration file. Just add this line in the configuration file:\n\n{{hc|/etc/dhcpcd.conf|\nnohook resolv.conf\n}}\n\nIf you already have an {{ic|nohook}} line, just add {{ic|resolv.conf}} separated with a comma.\n\n== Torsocks ==\n\n{{pkg|torsocks}} will allow you use an application via the Tor network without the need to make configuration changes to the application involved. From {{man|1|torsocks}}:\n\n''torsocks is a wrapper between the torsocks library and the application in order to make every Internet communication go through the Tor network.''\n\nUsage example:\n\n $ torsocks elinks checkip.dyndns.org\n $ torsocks wget -qO- https://check.torproject.org/ | grep -i congratulations\n\n== Transparent Torification ==\n\nIn some cases it is more secure and often easier to transparently torify an entire system instead of configuring individual applications to use Tor's socks port, not to mention preventing DNS leaks. Transparent torification can be done with [[iptables]] in such a way that all outbound packets are redirected through Tor's ''TransPort'', except the Tor traffic itself. Once in place, applications do not need to be configured to use Tor, though Tor's ''SOCKSPort'' will still work. This also works for DNS via Tor's ''DNSPort'', but realize that Tor only supports TCP, thus UDP packets other than DNS cannot be sent through Tor and therefore must be blocked entirely to prevent leaks. Using iptables to transparently torify a system affords comparatively strong leak protection, but it is not a substitute for virtualized torification applications such as Whonix, or TorVM [https://www.whonix.org/wiki/Comparison_with_Others]. Transparent torification also will not protect against fingerprinting attacks on its own, so it is recommended to use an amnesic solution like [https://tails.boum.org/ Tails] instead. Applications can still learn your computer's hostname, MAC address, serial number, timezone, etc. and those with root privileges can disable the firewall entirely. In other words, transparent torification with iptables protects against accidental connections and DNS leaks by misconfigured software, it is not sufficient to protect against malware or software with serious security vulnerabilities.\n\nWhen a transparent proxy is used, it is possible to start a Tor session from the client as well as from the transparent proxy, creating a \"Tor over Tor\" scenario.\nDoing so produces undefined and potentially unsafe behavior. In theory, the user could get six hops instead of three in the Tor network. However, it is not guaranteed that the three additional hops received are different; the user could end up with the same hops, possibly in reverse or mixed order. \nThe Tor Project opinion is that this is unsafe [https://2019.www.torproject.org/docs/faq.html.en#ChoosePathLength]\n[https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO#ToroverTor]\n\nTo enable transparent torification, use the following file for {{ic|iptables-restore}} and {{ic|ip6tables-restore}} (internally used by [[systemd]]'s {{ic|iptables.service}} and {{ic|ip6tables.service}}).\n\n{{Note|This file uses the NAT table to force outgoing connections through the TransPort or DNSPort, and blocks anything it cannot torrify.\n\n* Now using {{ic|--ipv6}} and {{ic|--ipv4}} for protocol specific changes. {{ic|iptables-restore}} and {{ic|ip6tables-restore}} can now use the same file.\n* Where --ipv6 or --ipv4 is explicitly defined, {{ic|ip*tables-restore}} will ignore the rule if it is not for the correct protocol.\n* {{ic|ip6tables}} does not support {{ic|--reject-with}}. Make sure your torrc contains the following lines:\n\n SOCKSPort 9050\n DNSPort 5353\n TransPort 9040\n\nSee {{man|8|iptables}}.\n}}\n\n{{Note|If you get this error: {{ic|iptables-restore: unable to initialize table 'nat'}}, you have to load the appropriate kernel modules:\n\n # modprobe ip_tables iptable_nat ip_conntrack iptable-filter ipt_state\n\n}}\n\n{{hc|/etc/iptables/iptables.rules|\n*nat\n:PREROUTING ACCEPT [6:2126]\n:INPUT ACCEPT [0:0]\n:OUTPUT ACCEPT [17:6239]\n:POSTROUTING ACCEPT [6:408]\n\n-A PREROUTING ! -i lo -p udp -m udp --dport 53 -j REDIRECT --to-ports 5353\n-A PREROUTING ! -i lo -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 9040\n-A OUTPUT -o lo -j RETURN\n--ipv4 -A OUTPUT -d 192.168.0.0/16 -j RETURN\n-A OUTPUT -m owner --uid-owner \"tor\" -j RETURN\n-A OUTPUT -p udp -m udp --dport 53 -j REDIRECT --to-ports 5353\n-A OUTPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 9040\nCOMMIT\n\n*filter\n:INPUT DROP [0:0]\n:FORWARD DROP [0:0]\n:OUTPUT DROP [0:0]\n\n-A INPUT -i lo -j ACCEPT\n-A INPUT -p icmp -j ACCEPT\n-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT\n--ipv4 -A INPUT -p tcp -j REJECT --reject-with tcp-reset\n--ipv4 -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable\n--ipv4 -A INPUT -j REJECT --reject-with icmp-proto-unreachable\n--ipv6 -A INPUT -j REJECT\n--ipv4 -A OUTPUT -d 127.0.0.0/8 -j ACCEPT\n--ipv4 -A OUTPUT -d 192.168.0.0/16 -j ACCEPT\n--ipv6 -A OUTPUT -d ::1/8 -j ACCEPT\n-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT\n-A OUTPUT -m owner --uid-owner \"tor\" -j ACCEPT\n--ipv4 -A OUTPUT -j REJECT --reject-with icmp-port-unreachable\n--ipv6 -A OUTPUT -j REJECT\nCOMMIT\n}}\n\nThis file also works for ip6tables-restore, so you may symlink it:\n\n # ln -s /etc/iptables/iptables.rules /etc/iptables/ip6tables.rules\n\nThen make sure Tor is running, and [[start/enable]] the {{ic|iptables}} and {{ic|ip6tables}} systemd units.\n\nYou may want to add {{ic|1=Requires=iptables.service}} and {{ic|1=Requires=ip6tables.service}} to whatever systemd unit logs your user in (most likely a [[display manager]]), to prevent any user processes from being started before the firewall up. See [[systemd]].\n\n== Tips and tricks ==\n\n=== Kernel capabilities ===\n\nIf you want to run tor as a non-root user, and use a port lower than 1024 you can use kernel capabilities to allow {{ic|/usr/bin/tor}} to bind to ports lower than 1024:\n\n # setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/tor\n\n{{Note|Any upgrade to the tor package will reset the permissions, consider using [[pacman#Hooks]], to automatically set the permissions after upgrades.}}\n\nIf you use the systemd service, it is also possible to use systemd to give the tor process the appropriate permissions. This has the benefit that permissions do not need to be reapplied after every tor upgrade:\n\n{{hc|/etc/systemd/system/tor.service.d/netcap.conf|2=\n[Service]\nCapabilityBoundingSet=\nCapabilityBoundingSet=CAP_NET_BIND_SERVICE\nAmbientCapabilities=\nAmbientCapabilities=CAP_NET_BIND_SERVICE\n}}\n\nRefer to [https://superuser.com/questions/710253/allow-non-root-process-to-bind-to-port-80-and-443 superuser.com] for further explanations.\n\n== Troubleshooting ==\n\n=== Problem with user value ===\n\nIf the '''tor''' daemon failed to start, then run the following command as root (or use [[sudo]])\n\n # tor\n\nIf you get the following error\n\n May 23 00:27:24.624 [warn] Error setting groups to gid 43: \"Operation not permitted\".\n May 23 00:27:24.624 [warn] If you set the \"User\" option, you must start Tor as root.\n May 23 00:27:24.624 [warn] Failed to parse/validate config: Problem with User value. See logs for details.\n May 23 00:27:24.624 [err] Reading config failed--see warnings above.\n\nThen it means that the problem is with the User value, which likely means that one or more files or directories in your {{ic|/var/lib/tor}} directory is not owned by tor. This can be determined by using the following find command:\n\n # find /var/lib/tor/ ! -user tor\n\nAny files or directories listed in the output from this command needs to have its ownership changed. This can be done individually for each file like so:\n\n # chown tor:tor /var/lib/tor/''filename''\n\nOr to change everything listed by the above find example, modify the command to this:\n\n # chown -R -v tor:tor /var/lib/tor\n\nTor should now start up correctly.\n\nStill if you cannot start the tor service, run the service using root (this will switch back to the tor user). To do this, change the user name in the {{ic|/etc/tor/torrc}} file:\n\n User tor\n\nNow [[edit]] {{ic|tor.service}} as follows\n\n [Service]\n User=root\n Group=root\n Type=simple\n\nThe process will be run as tor user. For this purpose change user and group ID to tor and also make it writable:\n\n # chown -R tor:tor /var/lib/tor/\n # chmod -R 700 /var/lib/tor\n\nNow do a [[daemon-reload]] then [[start]] {{ic|tor.service}}.\n\n=== tor-browser proxy problems ===\n\n{{AUR|tor-browser}} should generally work without significant customization. If previously installed/configured and bundled proxy fails with {{ic|proxy server is refusing connections}} for any website, consider resetting settings by moving or deleting {{ic|~/.tor-browser}} directory.\n\n=== tor-browser blank black screen ===\n\nIf using [[AppArmor]], update the torbrowser profile to allow access to required resources [https://unix.stackexchange.com/questions/550074/debian-tor-browser-showing-a-black-screen/550246#550246], [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942901]:\n\n{{hc|head= /etc/apparmor.d/local/torbrowser.Browser.firefox|output=\nowner /{dev,run}/shm/org.mozilla.*.* rw,\n}}\n\n== See also ==\n\n* [https://www.torproject.org/docs/tor-doc-unix.html.en Running the Tor client on Linux/BSD/Unix]\n* [https://trac.torproject.org/projects/tor/wiki#Unixish Unix-based Tor Articles]\n* [https://trac.torproject.org/projects/tor/wiki/doc/SupportPrograms Software commonly integrated with Tor]\n* [https://www.torproject.org/docs/tor-hidden-service.html.en How to set up a Tor ''Hidden Service'']\n* [https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports List of tor pluggable transports for obfuscating tor's traffic]\n* [https://gitlab.torproject.org/tpo/community/relays/-/issues/18 Tor Relay Operator best practices]"
                    }
                ]
            },
            "3158": {
                "pageid": 3158,
                "ns": 0,
                "title": "Bon Echo",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "#REDIRECT [[Firefox]]"
                    }
                ]
            },
            "3402": {
                "pageid": 3402,
                "ns": 0,
                "title": "Professional audio",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Sound]]\n[[fr:Professional audio]]\n[[ja:\u30d7\u30ed\u30aa\u30fc\u30c7\u30a3\u30aa]]\n[[ru:Professional audio]]\n{{Related articles start}}\n{{Related|/Examples}}\n{{Related|/Development}}\n{{Related|Sound system}}\n{{Related|JACK}}\n{{Related|Realtime kernel}}\n{{Related|envy24control}}\n{{Related articles end}}\n\nThis article describes how to configure your system for [[Wikipedia:Multitrack recording#With computers|recording]], mixing and playing back audio as well a using it to synthesize and generate sounds. Those activities are subsumed under the term [[Wikipedia:Professional audio|professional audio]] (pro audio) and typically require low [[Wikipedia:Latency (audio)|latency]] performance.\n\nMost applications do not need as much high-end hardware, compared to video production or gaming. Almost any computer produced since late 2012 can be optimized for pro audio. Please refer to Ardour manual's page on [https://manual.ardour.org/setting-up-your-system/the-right-computer-system-for-digital-audio/ The Right Computer System for Digital Audio] for more information.\n\n{{Note|If you are looking for a guide on how to actually make music on GNU/Linux, refer to the [https://www.sonoj.org/wiki/ Sonoj wiki] or search the [https://linuxmusicians.com LinuxMusicians] forums.}}\n\n== Getting started ==\n\nAfter reading the [[Sound system]] article, you might be aware that [[Advanced Linux Sound Architecture]] or ALSA is part of the Linux kernel and used for [[Sound system#Drivers and interface|drivers and interface]] on Arch Linux as the default Sound system. ALSA should work out of the box with a default Arch installation. If this is not the case, you must solve the problem before going any further.\n\nHowever, \"no sound\" is likely a simple [[Advanced Linux Sound Architecture#Unmuting the channels|unmuting the channels]] problem in ALSA's mixer configuration. If you are using multiple audio devices (e.g. an USB audio interface and keep in mind integrated soundcards), you would want to [[Advanced Linux Sound Architecture#Set the default sound card|set the default sound card]].\n\n'''Have I set up sound properly?'''\n\n $ speaker-test\n\n: ''See [[ALSA]] for troubleshooting.\n\nA vanilla Arch Linux kernel is sufficient for low latency operation in most use cases. Applying further [[#System configuration]] will be necessary only if you are experiencing audio drop-outs (also known as glitches) or if you need (or want) to reach ultra-low latency operations.\n\nTo finish with optimizations, these ultra low latency operations may require you to set up a [[#Realtime kernel]].\n\nAlthough some pro audio software can work with ALSA directly, most of the [[#Applications]] mentioned later are JACK Audio Connection Kit or [[JACK]] clients. Therefore, you will need to install and setup one of the available [[sound server]]s which are outlined soon.\n\n{{Tip|However, if you are new to Arch Linux, just finished the [[Installation guide]] and can't wait to actually start making music, install the {{Grp|pro-audio}} package group as well as {{AUR|realtime-generic-setup}} from the [[AUR]] and reboot. Refer to the [[#PipeWire-only]] section for a quick setup and find your [[#Applications]] for music and sound production.}}\n\n== System configuration ==\n\n{{Note| The quality of information on best practices and system configuration vary a great deal (and are outdated or sometimes even contradictory in many locations). While for some systems and setups a higher level of optimization is necessary, for most users this will not be the case. Try a standard setup with the vanilla Arch Linux kernel first. Only if you require a setup with lower latency and greater stability, start considering optimizations!}}\n\nYou may want to consider the following often seen system optimizations:\n\n* Setting the [[CPU frequency scaling]] governor to ''performance''.\n* [[Realtime process management#Configuring PAM|Configuring pam_limits]] (e.g. by installing {{pkg|realtime-privileges}} and adding your user to the {{ic|realtime}} group).\n* Using the {{ic|threadirqs}} [[kernel parameter]] (consult [https://docs.kernel.org/admin-guide/kernel-parameters.html] for reference) - enforced by default by the [[realtime kernel patchset]].\n* Using the [[realtime kernel patchset]].\n* Add {{ic|noatime}} to [[fstab]] (see [[Improving performance#Mount options]]).\n* Increasing the highest requested RTC interrupt frequency (default is 64 Hz) by [[systemd FAQ#How can I make a script start during the boot process?|running the following at boot]]:\n\n # echo 2048 > /sys/class/rtc/rtc0/max_user_freq\n # echo 2048 > /proc/sys/dev/hpet/max-user-freq\n\n* Reducing ''swappiness'' (aka swap frequency, set to {{ic|60}} by default) to e.g. {{ic|10}} will make the system wait much longer before trying to swap to disk (see [[wikipedia:Paging#Swappiness]]). This can be done on the fly with {{ic|1=sysctl vm.swappiness=10}} (see {{man|8|sysctl}}) or setup permanently, using a configuration file (see {{man|5|sysctl.d}}) such as:\n\n{{hc|/etc/sysctl.d/90-swappiness.conf|2=\nvm.swappiness = 10\n}}\n\n* Increasing the maximum watches on files (defaults to {{ic|524288}}) to e.g. {{ic|600000}}, that ''inotify'' keeps track of for your user, can help with applications, that require many file handles (such as [[List of applications#Digital audio workstations|DAWs]]). This again can be done on the fly with {{ic|1=sysctl fs.inotify.max_user_watches=600000}} or in a dedicated configuration file:\n\n{{hc|/etc/sysctl.d/90-max_user_watches.conf|2=\nfs.inotify.max_user_watches = 600000\n}}\n\nYou may also want to maximize the PCI latency timer of the PCI sound card and raise the latency timer of all other PCI peripherals (default is 64).\n\n $ setpci -v -d *:* latency_timer='''b0'''\n # setpci -v -s ''$SOUND_CARD_PCI_ID'' latency_timer='''ff'''\n\nE.g. {{ic|1=SOUND_CARD_PCI_ID=03:00.0}}.\n\nThe SOUND_CARD_PCI_ID can be obtained like so:\n\n{{hc|$ lspci {{!}} grep -i audio|\n'''03:00.0''' Multimedia audio controller: Creative Labs SB Audigy (rev 03)\n'''03:01.0''' Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01)\n}}\n\n== Choosing a sound server ==\n\nSound hardware cannot play back sound from more than one application simultaneously. While ALSA can theoretically be configured to mix applications in software this is typically left to a [[sound server]]. As ALSA alone cannot achieve low latencies easily and cannot synchronise multiple audio applications to play on time, starting all at the same time, at the same tempo, etc, and as it can not share audio flux between applications simply by connecting all it's clients together, you not only need any sound server, but pro audio class one. \n\nThere are three of them, two meant for pro-audio:\n\n* [[PulseAudio]] is the de-facto standard for playback and multimedia, such as videos, browser, music and games. It was not conceived for pro-audio and lacks the capability to achieve low latencies and sync applications.\n* [[JACK]] has been developed with all the needs of pro audio and has been in use all over the world for many years and is therefore very stable and mature. Pro-Audio applications are written for the JACK API.\n* [[PipeWire]] is under heavy development and is presented as a replacement of JACK and PulseAudio at the same time for the audio part. It also handles video routing, which is not described in this article. At the moment version numbers indicate a beta development state. \n\nThe sound server setup strongly depends on the use case as well as on the workflow and capabilities of some application interaction. The [[JACK Audio Connection Kit]] was designed to share audio between applications and access an audio device simultaneously by providing the synchronous execution of clients while maintaining constant low latency.\n\nThis layout illustrates a layer model of the sound server setups to be discussed:\n\n{{Text art|<nowiki>\n  </nowiki>[[#PipeWire-only]]<nowiki>       </nowiki>[[#JACK-only]]<nowiki>\n\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 Applications \u2502   \u2502 Applications \u2502\n \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524   \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n \u2502   PipeWire   \u2502   \u2502     JACK     \u2502\n \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524   \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n \u2502     ALSA     \u2502   \u2502     ALSA     \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n</nowiki>}}\n\n=== PipeWire-only ===\n\nThe newer [[PipeWire]] framework aims to replace JACK as well as other sound servers for the sake of simplicity. Thus, it's recommended to first go for a ''PipeWire-only'' setup implementing support for [[PipeWire#JACK clients|JACK clients]] by installing {{Pkg|pipewire-jack}} and using the vanilla Arch Linux kernel.\n\n=== JACK-only ===\n\nThe principle of [[Arch Linux#Versatility|versatility]] allows you to employ JACK and the [[#Realtime kernel]] with further [[#System configuration]] to achieve low latencies for advanced use cases known as ''JACK-only'' setup. Using JACK as the only sound server requires any software, that is intended for interaction and audio device access, to run as a JACK client.\n\nUnfortunately, popular desktop applications such as [[Firefox]] or most games either dropped JACK support or never implemented it. For that reason this setup should be used for a dedicated pro audio system where non-JACK software can be neglected. If you still need to use software that can't connect to JACK, refer to [[Professional_audio/Examples#Advanced_sound_server_setups]] after following the setup described here. Before installing and running JACK you should ensure it can access your audio device.\n\n'''Is PulseAudio or something else grabbing my device?'''\n\n $ lsof +c 0 /dev/snd/pcm* /dev/dsp*\n\nor\n\n $ fuser -fv /dev/snd/pcm* /dev/dsp*}}\n\nIf your audio device isn't listed, it may be used by PulseAudio (which was probably installed as dependency of another application). Remove those alongside PulseAudio, if you're not intending to use [[Professional_audio/Examples#PulseAudio+JACK]] in order to make PulseAudio release your audio device. \n\nAs JACK version 1 is planned to be \"slowly phased out\" [https://github.com/jackaudio/jackaudio.github.com/wiki/Differences-between-jack1-and-jack2#which-one-should-i-choose], doesn't support [[Wikipedia:Symmetric_multiprocessing|Symmetric Multiprocessing (SMP)]], lacks [[D-Bus]] and [[Systemd]] integration you'd want to use version 2 which is available as {{Pkg|jack2}} package in the official repositories. If you're going to use a [[JACK_Audio_Connection_Kit#Comparison_of_JACK_control_GUIs|JACK control GUI]] or a [[Systemd/User|Systemd user service]] for [[JACK_Audio_Connection_Kit#Starting_the_audio_graph|Starting the audio graph]], also install {{Pkg|jack2-dbus}}.\n\n: ''More details in [[JACK_Audio_Connection_Kit#Comparison_of_JACK_implementations]]''\n\nThe article on JACK describes a [[JACK Audio Connection Kit#A GUI-based example setup|GUI-based]] and a [[JACK Audio Connection Kit#A shell-based example setup|shell-based]] example setup as a point of reference for your own scenario. Parameter values of JACK are discussed in detail in the [[#JACK parameters]] section and may depend on other system factors covered by the [[#System configuration]] section above.\n\n== JACK parameters ==\n\n{{Note|The following guidelines should support finding best possible parameter values for running JACK without audio drop-outs ([https://alsa.opensrc.org/Xruns xruns]) when using the [[#JACK-only]] or [[#PulseAudio+JACK]] sound server setup type. Due to differences depending on the hardware, whether a [[#Realtime kernel]] is used or not, and if further [[#System configuration]] is applied, there is no general preset.}}\n\nThe aim here is to find the best possible combination of buffer size and periods, given the hardware you have. '''Frames/Period = 256''' is a sane starter. For onboard and USB devices, try '''Periods/Buffer = 3''' before lowering both values. Commonly used values are: 256/3, 256/2, 128/3, 128/2.\n\nAlso, the sample rate must match the hardware sample rate. To check what sample and bit rates your device supports:\n\n $ cat /proc/asound/card0/codec#0\n\nReplace ''card0'' and ''codec#0'' depending on what you have. You will be looking for '''rates''' or ''VRA'' in '''Extended ID'''. A common sample rate across many of today's devices is '''48000 Hz'''. Others common rates include 44100 Hz, 96000 Hz and 192000 Hz.\n\nAlmost always, when recording or sequencing with external gear is concerned, '''realtime''' is a must. Also, you may like to set maximum priority (at least 10 lower than system limits defined in {{ic|/etc/security/limits.d/99-realtime-privileges.conf}}; the highest is for the device itself).\n\nStart jack with the options you just found out:\n\n $ /usr/bin/jackd -R -P89 -dalsa -dhw:0 -r48000 -p128 -n2\n\n{{Pkg|qjackctl}}, {{Pkg|cadence}}, {{Pkg|patchage}} and {{AUR|studio-controls-git}} can all be used to as GUIs to monitor JACK's status and simplify its configuration. \n\n{{Note|Once you set up JACK, try different audio applications to test your configuration results. For example, do not spend days trying to troubleshoot JACK xrun issues with [[LMMS]] if the problem is with the latter.}}\n\n: ''Further reading: [https://www.linux-magazine.com/content/download/63041/486886/version/1/file/JACK_Audio_Server.pdf Linux Magazine article (2006)] for basic understanding on JACK parameter finding''\n\n== Latency verification ==\n\nJACK parameters are most significant for controlling the [[Wikipedia:Round-trip_delay|round-trip delay]] (RTD). In the context of this article that is the overall time it takes for an audio signal to be recorded, processed and played back. The next subsection deals with theoretical background on the sources of latency adding up to the RTD. If you are already familiar with that, you can go to [[#Measuring_latency]] to verify your RTD or skip this section completely.\n\n=== Latency sources ===\n\nConsider a typical recording situation of a singer performance. The voice is being captured with a microphone as it propagates trough the air with the [[Wikipedia:Speed_of_sound|speed of sound]]. An [[Wikipedia:Analog-to-digital_conversion|analog-to-digital-conversion]] enables the electrical signal to be recorded by a computer for [[Wikipedia:Digital_signal_processing|digital signal processing]]. Finally, a [[Wikipedia:Digital-to-analog_conversion|digital-to-analog conversion]] returns the signal to be played back at the singer's headphones for monitoring similar to [[Wikipedia:Stage_monitor_system|stage monitor system]] usage.\n\nIn that voice recording situation there are five significant [https://wiki.linuxaudio.org/wiki/jack_latency_tests#latency_sources latency sources] constructing the RTD and occuring in the following order:\n# Sound propagation through the air from the mouth of the singer\n# Analog-to-digital conversion\n# Digital signal processing\n# Digital-to-analog conversion\n# Sound propagation through the air to the ear of the singer\n\nThe first and last latency source is hard to change as a particular distance is technically necessary to create an intended sound during recording or playback, respectively. Additionally, when using closer miking for capturing and headphones for monitoring both sound propagation latencies are typically within the range of a few microseconds which is not noticeable by humans. Thus, an objective for RTD minimization is to reduce the other sources of latency.\n\n=== Conversion latency ===\n\nIn theory JACK maintains a constant low latency by using fixed values (frames, periods, sample rate) for [[Wikipedia:Sampling_(signal_processing)|sampling]] and [[Wikipedia:Buffer_(telecommunication)|buffering]] of audio to be converted analog-to-digital and vice versa. The latency occurring in the capturing process is described by the following equation:\n\n: '''Lc = n / f'''\n\n'''Lc''': Capture latency in milliseconds (ms), '''n''': Frames or buffer (multiples of 2, starting at 16), '''f''': Sample rate in Hertz (Hz).\n\nThe playback latency is also employing the periods value:\n\n: '''Lp = n * p / f'''\n\n'''Lp''': Playback latency in milliseconds (ms), '''n''': Frames or buffer (multiples of 2, starting at 16), '''p''': Periods, '''f''': Sample rate in Hertz (Hz).\n\nAs already stated before the capabilities of the audio interface define working combinations. You have to trial and error to find a setup. Sure, it's a trade-off between xrun prevention and achieving low latency, but recent audio interfaces can be used at high sample rates (up to 192 kHz) to deal with that requirement. The audio flux of JACK clients in the digital domain is about zero and thus, negligible for latency measurements [https://man.archlinux.org/man/jackd.1].\n\n: ''See [https://www.alsa-project.org/main/index.php/FramesPeriods FramesPeriods] in the ALSA wiki for more information.''\n\n=== Measuring latency ===\n\nOnce you have set up [[#JACK parameters]] you might want to verify the RTD described above. For example, using a frames or buffer size of '''n = 128''', a periods value of '''p = 2''', and a sample rate of '''f = 48000''' results in a capture latency of about '''Lc = 2,666... ms''' and a playback latency of about '''Lp = 5,333... ms''' summing up to a total round-trip delay of '''RTD = 8 ms'''.\n\n{{Note|This latency value is comparable to a typical monitoring situation on stage using speakers with a distance to the performer's ear ranging between 2 m and 3 m according to the equation for the [[Wikipedia:Speed_of_sound#Speed_of_sound_in_ideal_gases_and_air|speed of sound in air]]. Performers experienced with on stage monitoring are typically used to such latencies.}}\n\nThe {{Pkg|jack_delay}} utility by Fons Adriaensen measures RTD by emitting test tones out a playback channel and capturing them again at a capture channel for measuring the phase differences to estimate the round-trip time the signal has taken through the whole chain. Use an appropriate cable to connect an input and output channel of your audio device or put a speaker close to a microphone as described by [https://wiki.linuxaudio.org/wiki/jack_latency_tests#measuring_roundtrip_latency_with_jack_delay JACK Latency tests].\n\nFor example, running {{ic|jack_delay}} for a JACK-only setup using a cable connection between the ports '''playback_1''' and '''capture_1''' (the description may differ depending on your hardware) to close the loop, as well as the values discussed before yields the following insights:\n\n{{hc|$ jack_delay -O system:playback_1 -I system:capture_1|2=\ncapture latency  = 128\nplayback_latency = 256\nSignal below threshold...\nSignal below threshold...\nSignal below threshold...\n  422.507 frames      8.802 ms total roundtrip latency\n       extra loopback latency: 38 frames\n       use 19 for the backend arguments -I and -O\n  422.507 frames      8.802 ms total roundtrip latency\n       extra loopback latency: 38 frames\n       use 19 for the backend arguments -I and -O\n  422.506 frames      8.802 ms total roundtrip latency\n       extra loopback latency: 38 frames\n       use 19 for the backend arguments -I and -O\n  422.507 frames      8.802 ms total roundtrip latency\n       extra loopback latency: 38 frames\n       use 19 for the backend arguments -I and -O\n<output omitted>}}\n\nAs the output indicates further optimization of JACK can be done by using the parameters {{ic|-I 19}} and {{ic|-O 19}} to compensate for the reported extra loopback latency in the chain:\n\n $ /usr/bin/jackd -R -P89 -dalsa -dhw:0 -r48000 -p128 -n2 -I19 -O19\n\n: ''More details can be found in the Ardour Manual page about [https://manual.ardour.org/synchronization/latency-and-latency-compensation/ latency and latency compensation].''\n\n== Realtime kernel ==\n\n\"[[Wikipedia:Real-time|Realtime]]\" in the context of an operating system is [https://www.iso.org/obp/ui/#iso:std:iso-iec:2382:ed-1:v1:en defined] that the results of a computation are available within a fixed period of time. Only in a broader sense does it mean \"time running simultaneously with reality\", for example, that a sound is produced immediately in response to musical user input. The latter is called \"low latency\" and it's setup is one of the main goals of this articles.\n\nSince a while ago, the stock Linux kernel (with {{ic|1=CONFIG_PREEMPT=y}}, [https://github.com/archlinux/svntogit-packages/blob/packages/linux/trunk/config default] in Arch Linux vanilla kernel) has proven to be adequate for low latency operation. Latency in an operating system context is the time between the moment an interrupt occurs in hardware, and the moment the corresponding interrupt-thread gets running. Unfortunately, some device drivers can introduce higher latencies. So depending on your hardware, drivers, and requirements, you might want a kernel with [[Wikipedia:Real-time_computing#Criteria_for_real-time_computing|hard realtime]] capabilities.\n\n=== Pros and cons ===\n\nThe [https://wiki.linuxfoundation.org/realtime/documentation/technical_details/start RT_PREEMPT] patch by Ingo Molnar and Thomas Gleixner is an interesting option for hard and firm realtime applications, reaching from professional audio to industrial control. Most audio-specific Linux distributions ships with this patch applied. A realtime-preemptible kernel will also make it possible to tweak priorities of IRQ handling threads and help ensure smooth audio almost regardless of the load.\n\n{{Note|Currently, there are [https://wiki.linuxfoundation.org/realtime/documentation/known_limitations known limitations] for using a realtime kernel with other specific applications typically related to [[Virtualization]] (such as [[Xen]] and [[KVM]]). If you also need those capabilities, consider installing the realtime kernel in addition to the vanilla Arch Linux kernel and creating a second [[boot loader]] entry for booting the appropriate kernel on demand.}}\n\n=== Installation ===\n\n[[Install]] either the {{Pkg|linux-rt}} or {{Pkg|linux-rt-lts}} package.\n\n=== Compilation ===\n\nIf you are going to [[Kernel#Compilation|compile your own kernel]] using the [[Realtime kernel patchset]], remember that removing modules/options does not equate to a \"leaner and meaner\" kernel. It is true that the size of the kernel image is reduced, but in today's systems it is not as much of an issue as it was back in '''1995'''.\n\n: See [https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/preemptrt_setup HOWTO setup Linux with PREEMPT_RT properly] for further general instructions.\n\nIn any way, you should also ensure that:\n\n* '''Timer Frequency''' is set to '''1000Hz''' ({{ic|1=<nowiki/>CONFIG_HZ_1000=y}}; if you do not do ''MIDI'' you can ignore this)\n* '''APM''' is '''DISABLED''' ({{ic|1=<nowiki/>CONFIG_APM=n}}; Troublesome with some hardware - default in x86_64)\n\nIf you truly want a slim system, we suggest you go your own way and deploy one with ''static /devs''. You should, however, set your CPU architecture. Selecting \"Core 2 Duo\" for appropriate hardware will allow for a good deal of optimisation, but not so much as you go down the scale.\n\nGeneral issue(s) with (realtime) kernels:\n\n* Hyperthreading (if you suspect, disable in [[UEFI]] settings)\n\n== Tips and tricks ==\n\n* Disable WiFi and close any programs that do not need to be open when recording such as browsers. Many have reported disabling WiFi has led to more reliable JACK performance.\n\n* Some USB audio hardware is known not to work properly when plugged into USB 3 ports so try USB 2/1 ports instead.   \n\n* IRQ issues can occur and cause problems. An example is video hardware reserving the bus, causing needless interrupts in the system I/O path. See discussion at [http://subversion.ffado.org/wiki/IrqPriorities FFADO IRQ Priorities How-To]. If you have a realtime or a recent kernel, you can use {{Pkg|rtirq}} to adjust priorities of IRQ handling threads.\n\n* Do not use the '''irqbalance''' daemon, or do so carefully [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/7/html/tuning_guide/interrupt_and_process_binding].\n\n* If you need to use multiple audio devices with JACK2, the '''alsa_in''' and '''alsa_out''' utilities can be used to have extra devices wrapped and show up as outputs in the JACK patchbay.\n\n* Some daemons/processes can unexpectedly cause '''xruns'''. If you do not need it - kill it. No questions asked.\n\n $ ls /var/run/daemons\n $ top # or htop, ps aux, whatever you are comfortable with\n $ killall -9 $processname\n # systemctl stop $daemonname\n\n* If you are facing a lot of ''xruns'' especially with {{Pkg|nvidia}}, disable your GPU throttling. This can be done via the card's control applet and for NVIDIA it is \"prefer maximum performance\" (thanks to a post in LAU by Frank Kober[http://lalists.stanford.edu/lau/2009/10/0467.html]).\n\n* You may like to read more on ALSA: https://www.volkerschatz.com/noise/alsa.html\n\n== Applications ==\n\nArch Linux provides the package group {{Grp|pro-audio}} holding all relevant (semi-) professional applications. All applications in the pro-audio package group are JACK clients. Also {{Grp|lv2-plugins}}, {{Grp|ladspa-plugins}}, {{Grp|dssi-plugins}} and {{Grp|vst-plugins}} are subgroups of the pro-audio group.\n\n{{Tip| See [[Pacman/Tips and tricks#Listing packages]] for listing members of and [[Pacman#Installing package groups]] for installing package groups.}}\n\nAn overview and brief information on some applications is found in [[List of applications/Multimedia#Audio]]. Especially the categories [[List of applications/Multimedia#Digital audio workstations|Digital audio workstations]], [[List of applications/Multimedia#Audio effects|Audio effects]] and [[List of applications/Multimedia#Music trackers|Music trackers]], as well as [[List of applications/Multimedia#Audio synthesis environments|Audio synthesis environments]] and [[List of applications/Multimedia#Sound generators|Sound generators]], provide examples of pro audio software for e.g. recording, mixing, mastering, and sound design. Other categories include [[List of applications/Multimedia#Scorewriters|Scorewriters]], [[List of applications/Multimedia#Audio editors|Audio editors]], [[List of applications/Multimedia#Audio converters|Audio converters]], and [[List of applications/Multimedia#DJ|DJ]] software.\n\nPackages not (yet) in the official repositories can be found in [[Unofficial user repositories#proaudio|proaudio]]. Browse the [https://arch.osamc.de/#packages list of packages] to find the application you need or request packaging of your desired applications via [https://github.com/osam-cologne/archlinux-proaudio GitHub].\n\n== Hardware ==\n\nThe majority of sound cards and audio devices will work with no extra configuration or packages, simply set JACK to use the desired one.\n\nThis is not true for all devices, have a look at the [[:Category:Sound]] as well as [[Envy24control#Supported_cards]] for those special cases.\n\n== Get help ==\n\n=== Mailing lists ===\n\n* [https://lists.archlinux.org/mailman3/lists/arch-proaudio.lists.archlinux.org/ Arch Linux Pro-audio] Discussion about real-time multimedia, including (semi-)pro audio and video.\n* [https://lists.linuxaudio.org/listinfo/linux-audio-user Linux Audio User] The Linux pro-audio related mailing list with much traffic and a huge subscriber community of users and developers.\n\n=== IRC ===\n\n* [ircs://irc.libera.chat/archlinux-proaudio #archlinux-proaudio] - Arch Linux pro-audio channel\n* [ircs://irc.libera.chat/lau #lau] - General Linux Audio channel for users\n* [ircs://irc.libera.chat/jack #jack] - Development and support related to JACK audio system\n* [ircs://irc.libera.chat/lv2 #lv2] - Development and support related to the LV2 plugin format\n* [ircs://irc.libera.chat/ardour #ardour] - Discussion and support relating to the Ardour DAW\n* [ircs://irc.libera.chat/opensourcemusicians #opensourcemusicians] - Large general OSS musician discussion channel\n\n== See also ==\n\n* [https://lar.ven.uber.space/floss_media_studio/audio_setup Audio setup] Comprehensive guide for a pro-audio setup based on Arch Linux\n* User repositories: [[Unofficial user repositories#proaudio|proaudio]], [[Unofficial user repositories#realtime|realtime]]\n* AUR meta packages: {{AUR|proaudio-meta}}, {{AUR|soundfonts-aur-meta}}, {{AUR|lv2-plugins-aur-meta}}\n* [https://github.com/nodiscc/awesome-linuxaudio awesome-linuxaudio] A list of software and resources for professional audio/video/live events production on the Linux platform\n* [https://bbs.archlinux.org/viewforum.php?id=32 Multimedia and Games / Arch Linux Forums]\n* [https://wiki.linuxfoundation.org/realtime/start Realtime] The Linux Foundation wiki on the PREEMPT_RT patches"
                    }
                ]
            },
            "3666": {
                "pageid": 3666,
                "ns": 0,
                "title": "Opera",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Web browser]]\n[[de:Opera]]\n[[ja:Opera]]\n{{Related articles start}}\n{{Related|Browser plugins}}\n{{Related|Chromium}}\n{{Related|Otter Browser}}\n{{Related|Vivaldi}}\n{{Related articles end}}\n\n{{Out of date|This information may not be representative of the state of Opera. Some options presented in this article cannot be accessed in the ways described.}}\n\n[https://www.opera.com Opera] is a free of charge web browser developed since 1994 by the Norwegian company [[Wikipedia:Opera Software|Opera Software]]. It is known for being the first to bring new browsing features to the world that have become common on all web browsers, such as tabbed browsing and built-in search.\n\n== Installation ==\n\n[[Install]] the {{Pkg|opera}} package.\n\n== Plugins ==\n\nFor details about different plugins and installation instructions see [[Browser plugins]]. Note that Opera no longer supports the Netscape plugin API (NPAPI), but only the newer Pepper plugin API (PPAPI).\n\n=== Adblock ===\n\n{{Tip|Opera also has a built-in ad blocker which can be enabled in Settings.}}\n\nInstall Adblock support using the {{AUR|opera-adblock-complete}} package.\n\n== Performance tweaks ==\n\nAlthough Opera is fast on modern hardware, it can be made even faster.\n\n=== Disabling features and services ===\n\nOne of the keys to maximizing application performance is to disable undesired features and services through the native [https://www.opera.com/browser/tutorials/personalize/behavior/ opera:config Preferences Editor.]\n\nSome commonly disabled features are:\n* '''Systray Icon''': uncheck ''Show Tray Icon'' under opera:config#UserPrefs.\n* '''BitTorrent''': uncheck ''Enable'' under opera:config#BitTorrent.\n* '''Geolocation''': uncheck ''Enable geolocation'' under opera:config#Geolocation.\n* '''Multimedia''': unckeck desired options under opera:config#Multimedia.\n* '''Web Server''': uncheck ''Enable'' under opera:config#Web Server.\n\nTo more easily find these options just write the respective path (without spaces) in the address bar, for example {{ic|<nowiki>opera:config#UserPrefs|ShowTrayIcon</nowiki>}} or use the built-in search.\n\n=== Profile in tmpfs ===\n\nRelocate the browser profile to a [[tmpfs]] filesystem, including {{ic|/tmp}} for improvements in application response as the entire profile is now stored in RAM. Another benefit is a reduction in disk read and write operations, of which SSDs benefit the most.\n\nThere are currently two ways of doing this:\n* using [[Profile-sync-daemon]], that automatically detects and relocates the Opera profile to tmpfs.\n* using the {{ic|-pd}} command-line flag to tell Opera where to store its profile data:\n $ opera -pd /tmp/opera\n\n== Appearance ==\n\n=== Themes ===\n\nAlthough Opera is cross-platform, it can be made to integrate very well into various Linux desktop environments.\n; Qt: To make the menus look integrated with Qt, install your preferred Qt theme and apply it by using {{ic|qtconfig}}.\n; KDE: To make Opera use [[KDE]] icons, you can install a theme such as [https://web.archive.org/web/20121002080005/http://my.opera.com/community/customize/skins/info/?id=8141 this one].\n; GTK: A nice GTK skin that uses the Tango icon theme can be found [https://web.archive.org/web/20111223151832/http://my.opera.com/community/customize/skins/info/?id=3465 here].\n\n=== Title bar ===\n\nThe title bar can be hidden by right-clicking on the tab bar, then unchecking \"Show Border\".\n\n=== Tab modes ===\n\nOpera has native support for tab cascading and tiling mode. Appropriate buttons can be found by activating the \"Main\" toolbar or by dragging and dropping the buttons anywhere desired, found in ''Menu > Appearance > Buttons > Browser''.\n\n=== Fonts ===\n\nFonts can be configured under ''Settings > Preferences... > Advanced > Fonts''. \n\nIf the {{AUR|ttf-ms-fonts}} package has been installed before running Opera for the first time, Opera will use those fonts by default, regardless of what is specified by local GTK options, [[GNOME]] or KDE font management. To force existing installations of Opera to use the options set by your system:\n* Close all running instances of Opera.\n* Un-install the {{AUR|ttf-ms-fonts}} package.\n* Move the existing profile folder: {{ic|mv -i ~/.opera ~/.opera.bak}}\n* Run an instance of Opera and verify that your font manager settings have been applied.\n* Restore bookmarks and desired filter files from {{ic|~/.opera.bak}} to {{ic|~/.opera}} except for the {{ic|operaprefs.ini}} file.\n* Re-install the {{AUR|ttf-ms-fonts}} package, if desired.\n\n{{Note|If no text except numbers is showing on some of the webpages that might be a problem with the fonts. A known issue that causes this problem is the ''helvetica'' pfb postscript fonts.}}\n\n== Private tabs ==\n\nTo browse without leaving obvious traces of the Web sites you visit, you can use a private tab. When you close a private tab, the following data related to the tab is deleted:\n* Cache\n* Cookies\n* History\n* Logins\n\nThis is similar to the [https://www.google.com/support/chrome/bin/answer.py?hl=en&answer=95464 --incognito option] in Chrome/[[Chromium]] and [[MozillaWiki:Private Browsing|Private Browsing]] in [[Firefox]]. \n\nTo open a private tab from the command-line use:\n $ opera --private\n\nTo ensure only private tabs are used throughout the duration of the browsing session:\n* Set ''Settings > Preferences... > General > Startup > Start without open tabs''.\n* Clear any entries in ''Settings > Preferences... > General > Home page option''.\n* Enable ''Settings > Preferences... > Advanced > Tabs > Additional tab options... > Allow windows with no tabs''.\n\nTo open a new window for private browsing when already running Opera you can just press {{ic|Ctrl+Shift+N}} or look under ''Menu > New Tabs and Windows > New Private Window''. All subsequent opened tabs with be private as well.\n\n== Accessibility Tips ==\n\n=== Disable text selection ===\n\nIt is possible to disable text selection in Opera. However, text selection through JavaScript will still work (for example in forms, etc.). To get to the setting follow the link bellow:\n opera:config#System|DisableTextSelect\n\n=== Grab and scroll mode ===\n\nBesides setting text selection off, grab and scroll mode makes page scrolling possible with mouse dragging. It is very useful, especially when you have a touchscreen. Copy and paste the link bellow to get to the mentioned setting.\n opera:config#UserPrefs|ScrollIsPan\n\nIt is also possible to change this setting on the fly by dragging and dropping the appropriate Opera button into a toolbar. The button can be found in ''Menu > Appearance > Buttons > Browser View''.\n\n=== Long pressing a link opens it in a background tab (extension) ===\n\nIt is possible to open up any long-clicked link in a new background tab by installing [https://archive.today/2013.04.23-024803/https://addons.opera.com/en/extensions/details/open-in-background-with-long-press/ this] extension.\n\n=== Virtual On-Screen keyboard (extension) ===\n\nThere is an extension which allows the use of an on-screen virtual keyboard. Further details and installation link can be found [https://archive.today/2013.04.23-041023/https://addons.opera.com/en/extensions/details/virtual-keyboard/ here].\n\n== Security ==\n\n=== Force a password store ===\n\nSince current Opera uses the same engine as Chromium does, you can force Opera to use a specific password store by launching it with the {{ic|--password-store}} flag. For more details see [[Chromium/Tips and tricks#Force a password store]].\n\n== Troubleshooting ==\n\n=== Slow scrolling on NVIDIA cards ===\n\nTry running the following command:\n $ nvidia-settings -a InitialPixmapPlacement=2\nOn some computers, https://helion.pl works extremely slow without this hack, making it a perfect site for testing.\n\n=== Horizontal mouse wheel scrolling ===\n\nCheck ''Settings > Preferences... > Advanced > Shortcuts > Mouse > Middle-Click Options... > Enable horizontal panning''.\n\nor\n\n* Highlight ''Settings > Preferences... > Advanced > Shortcuts > Mouse > Opera Standard''.\n* Duplicate ''Settings > Preferences... > Advanced > Shortcuts > Mouse > Opera Standard''.\n* Edit... ''Settings > Preferences... > Advanced > Shortcuts > Mouse > Copy of Opera Standard''.\n* Search the {{ic|Forward}} and {{ic|Back}} input contexts and edit the appropriate button shortcuts to {{ic|scroll left}} and {{ic|scroll right}}.\n* Rename ''Settings > Preferences... > Advanced > Shortcuts > Mouse > Copy of Opera Standard'' as desired.\n\n=== Launching an external browser ===\n\nIf Opera does not display a site well, a workaround is to launch the currently displayed page in an external browser.\n\n{{Note|The following method appears to be deprecated in favor of the built-in {{ic|Open With}} menu accessed via the right mouse button.}}\n\n* Set the following line under {{ic|[Site Navigation Toolbar.content]}} in {{ic|$HOME/.opera/toolbar/standard_toolbar.ini}}:\n Button0, \"Chromium\"=\"Execute program, \"chromium, \"%u\", , \"Chromium\"\"\n\n* If Firefox is desired, or preferred:\n Button0, \"Firefox\"=\"Execute program, \"firefox\", \"%u\", , \"Firefox\"\"\n\n* Any number of command-line options may be included in the string:\n Button0, \"Chromium\"=\"Execute program, \"chromium --block-nonsandboxed-plugins --disable-java --incognito --safe-plugins --start-maximized --user-data-dir=/tmp/.chromium\", \"%u\", , \"Chromium\"\"\n\n=== Opera crashes when starting or closing with GTK 2.24.7+ ===\n\nIf this crash occurs, you can work around it by changing the ''DialogToolkit'' option to 4:\n opera:config#FileSelector|DialogToolkit\n\nThis will disable GTK styling support and hence avoid the issue.\n\n=== Unreadable input fields and address bar with dark GTK themes ===\n\nWhen using a dark GTK  theme, one might encounter Opera address bar and Internet pages with unreadable input and text fields (e.g. Amazon can have black text on black text field background). This can happen because the site only sets either background or text color, and Opera takes the other one from the theme.\n\nUsing an installed clear theme and a command help to work around the problem:\n{{ic|1=env GTK_THEME=<light-theme-name> opera}}\n\nto turn it as default, [[textedit|edit]] the file {{ic|/usr/bin/opera}} and replace the line with {{ic|exec /usr/lib/opera/opera \"$@\"}}.\ne.g. using Opera 12.14:\n\n{{hc|/usr/bin/opera|2=\n...\n#!/bin/sh\nexport OPERA_DIR=${OPERA_DIR:-/usr/share/opera}\nexport OPERA_PERSONALDIR=${OPERA_PERSONALDIR:-$HOME/.opera}\n'''env GTK_THEME=Clearlooks''' /usr/lib/opera/opera \"$@\"\n}}\n\nthis will make the browser use a clear theme that you set in the file {{ic|/usr/bin/opera}} that was used in the above example the theme \"Clearlooks\" and the problems will be solved.\n\n== See also ==\n\n* [https://www.opera.com/ Official site]\n* [[wikipedia:Opera_(web_browser)|Opera on Wikipedia]]\n* [https://help.opera.com/ Opera help pages]\n* [https://forums.opera.com/ Opera forums]\n* [https://help.opera.com/en/computer-bug-wizard/ Opera bug report]"
                    }
                ]
            },
            "3928": {
                "pageid": 3928,
                "ns": 0,
                "title": "Firefox (\u010ce\u0161tina)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "#redirect [[Firefox]]"
                    }
                ]
            },
            "4115": {
                "pageid": 4115,
                "ns": 0,
                "title": "OpenSSH",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Secure Shell]]\n[[Category:Servers]]\n[[Category:OpenBSD]]\n[[de:SSH]]\n[[es:OpenSSH]]\n[[fa:SSH]]\n[[fr:OpenSSH]]\n[[ja:OpenSSH]]\n[[pt:Secure Shell]]\n[[ru:OpenSSH]]\n[[zh-hans:OpenSSH]]\n{{Related articles start}}\n{{Related|SSH keys}}\n{{Related|Pam abl}}\n{{Related|fail2ban}}\n{{Related|sshguard}}\n{{Related|Sshfs}}\n{{Related|Syslog-ng}}\n{{Related|SFTP chroot}}\n{{Related|SCP and SFTP}}\n{{Related|VPN over SSH}}\n{{Related articles end}}\n\n[[Wikipedia:OpenSSH|OpenSSH]] (OpenBSD Secure Shell) is a set of computer programs providing encrypted communication sessions over a computer network using the [[Secure Shell]] (SSH) protocol. It was created as an open source alternative to the proprietary Secure Shell software suite offered by SSH Communications Security. OpenSSH is developed as part of the OpenBSD project, which is led by Theo de Raadt.\n\nOpenSSH is occasionally confused with the similarly-named OpenSSL; however, the projects have different purposes and are developed by different teams, the similar name is drawn only from similar goals.\n\n== Installation ==\n\n[[Install]] the {{Pkg|openssh}} package.\n\n== Client usage ==\n\nTo connect to a server, run:\n\n $ ssh -p ''port'' ''user''@''server-address''\n\nIf the server only allows public-key authentication, follow [[SSH keys]].\n\n=== Configuration ===\n\nThe client can be configured to store common options and hosts. All options can be declared globally or restricted to specific hosts. For example:\n\n{{hc|~/.ssh/config|# global options\nUser ''user''\n\n# host-specific options\nHost ''myserver''\n    Hostname ''server-address''\n    Port     ''port''\n}}\n\nWith such a configuration, the following commands are equivalent\n\n $ ssh -p ''port'' ''user''@''server-address''\n $ ssh ''myserver''\n\nSee {{man|5|ssh_config}} for more information.\n\nSome options do not have command line switch equivalents, but you can specify configuration options on the command line with {{ic|-o}}. For example {{ic|1=-oKexAlgorithms=+diffie-hellman-group1-sha1}}.\n\n== Server usage ==\n\n{{ic|sshd}} is the OpenSSH server daemon, configured with {{ic|/etc/ssh/sshd_config}} and managed by {{ic|sshd.service}}. Whenever changing the configuration, use {{ic|sshd}} in test mode before restarting the service to ensure it will be able to start cleanly. Valid configurations produce no output.\n\n # sshd -t\n\n=== Configuration ===\n\nTo allow access only for some users, add this line:\n\n AllowUsers    ''user1 user2''\n\nTo allow access only for some groups:\n\n AllowGroups   ''group1 group2''\n\nTo add a nice welcome message (e.g. from the {{ic|/etc/issue}} file), configure the {{ic|Banner}} option:\n\n Banner /etc/issue\n\nPublic and private host keys are automatically generated in {{ic|/etc/ssh}} by the ''sshdgenkeys'' [[#Daemon management|service]] and regenerated if missing even if {{ic|HostKeyAlgorithms}} option in {{ic|sshd_config}} allows only some. Four key pairs are provided based on the algorithms [[SSH keys#Choosing the authentication key type|dsa, rsa, ecdsa and ed25519]]. To have sshd use a particular key, specify the following option:\n\n HostKey /etc/ssh/ssh_host_rsa_key\n\nIf the server is to be exposed to the WAN, it is recommended to change the default port from 22 to a random higher one like this:\n Port 39901\n\n{{Tip|\n* To help select an alternative port that is not already assigned to a common service, review the [[Wikipedia:List of TCP and UDP port numbers|list of TCP and UDP port numbers]]. You can also find port information locally in {{ic|/etc/services}}. A port change from default port 22 will reduce the number of log entries caused by automated authentication attempts but will not eliminate them. See [[Port knocking]] for related information.\n* It is recommended to disable password logins entirely. This will greatly increase security, see [[#Force public key authentication]] for more information. See [[#Protection]] for more recommend security methods.\n* OpenSSH can listen to multiple ports simply by having multiple {{ic|Port ''port_number''}} lines in the configuration file.\n* New (or missing) host key pairs can be generated by removing the pair(s) that you want to replace from {{ic|/etc/ssh}} and running {{ic|ssh-keygen -A}} as root.\n}}\n\n=== Daemon management ===\n\n[[Start/enable]] {{ic|sshd.service}}. It will keep the SSH daemon permanently active and fork for each incoming connection.[https://github.com/archlinux/svntogit-packages/blob/packages/openssh/trunk/sshd.service]\n\n{{Note|{{Pkg|openssh}} 8.0p1-3 removed {{ic|sshd.socket}} that used systemd's socket activation due to it being susceptible to denial of service. See {{Bug|62248}} for details. If {{ic|sshd.socket}} is enabled when updating to {{Pkg|openssh}} 8.0p1-3, the {{ic|sshd.socket}} and {{ic|sshd@.service}} units will be copied to {{ic|/etc/systemd/system/}} and [[reenable]]d. This is only done to not break existing setups; users are still advised to migrate to {{ic|sshd.service}}.}}\n\n{{Warning|If you continue using {{ic|sshd.socket}}, be aware of its issues:\n* {{ic|sshd.socket}} unit may fail (e.g. due to out-of-memory situation) and {{ic|1=Restart=always}} cannot be specified on socket units. See [https://github.com/systemd/systemd/issues/11553 systemd issue  11553].\n* Using socket activation can result in denial of service, as too many connections can cause refusal to further activate the service. See {{Bug|62248}}.\n}}\n\n{{Note|Using {{ic|sshd.socket}} negates the {{ic|ListenAddress}} setting, so it will allow connections over any address. To achieve the effect of setting {{ic|ListenAddress}}, you must specify the port ''and'' IP for {{ic|ListenStream}} (e.g. {{ic|1=ListenStream=192.168.1.100:22}}) by [[edit]]ing {{ic|sshd.socket}}. You must also add {{ic|1=FreeBind=true}} under {{ic|[Socket]}} or else setting the IP address will have the same drawback as setting {{ic|ListenAddress}}: the socket will fail to start if the network is not up in time.}}\n\n{{Tip|When using socket activation, a transient instance of {{ic|sshd@.service}} will be started for each connection (with different instance names). Therefore, neither {{ic|sshd.socket}} nor the daemon's regular {{ic|sshd.service}} allow to monitor connection attempts in the log. The logs of socket-activated instances of SSH can be seen by running {{ic|journalctl -u \"sshd@*\"}} as root or by running {{ic|journalctl /usr/bin/sshd}} as root.}}\n\n=== Protection ===\n\nAllowing remote log-on through SSH is good for administrative purposes, but can pose a threat to your server's security. Often the target of brute force attacks, SSH access needs to be limited properly to prevent third parties gaining access to your server.\n\n{{Pkg|ssh-audit}} offers an automated analysis of server and client configuration.  Several other good guides and tools are available on the topic, for example:\n\n* [[MozillaWiki:Security/Guidelines/OpenSSH|Article by Mozilla Infosec Team]]\n* [https://www.ssh-audit.com/hardening_guides.html SSH Hardening Guides]\n\n==== Force public key authentication ====\n\nIf a client cannot authenticate through a public key, by default, the SSH server falls back to password authentication, thus allowing a malicious user to attempt to gain access by [[#Protecting against brute force attacks|brute-forcing]] the password. One of the most effective ways to protect against this attack is to disable password logins entirely, and force the use of [[SSH keys]]. This can be accomplished by setting the following options in the daemon configuration file:\n\n{{hc|/etc/ssh/sshd_config|\nPasswordAuthentication no\nAuthenticationMethods publickey\n}}\n\n{{Warning|Before adding this to your configuration, make sure that all accounts which require SSH access have public-key authentication set up in the corresponding {{ic|authorized_keys}} files. See [[SSH keys#Copying the public key to the remote server]] for more information.}}\n\n==== Two-factor authentication and public keys ====\n\nSSH can be set up to require multiple ways of authentication; you can tell which authentication methods are required using the {{ic|AuthenticationMethods}} option. This enables you to use public keys as well as a two-factor authorization.\n\n===== Authentication providers =====\n\nSee [[Google Authenticator]] to set up Google Authenticator.\n\nFor [https://duo.com/ Duo], [[install]] {{AUR|duo_unix}} which will supply the {{ic|pam_duo.so}} module. Read the [https://duo.com/docs/duounix Duo Unix documentation] for instructions on how to setup the necessary Duo credentials (Integration Key, Secret Key, API Hostname).\n\n===== PAM setup =====\n\nTo use [[PAM]] with OpenSSH, edit the following files:\n\n{{hc|/etc/ssh/sshd_config|\nKbdInteractiveAuthentication yes\nAuthenticationMethods publickey keyboard-interactive:pam\n}}\n\nThen you can log in with either a publickey '''or''' the user authentication as required by your PAM setup.\n\nIf, on the other hand, you want to authenticate the user on both a publickey '''and''' the user authentication as required by your PAM setup, use a comma instead of a space to separate the AuthenticationMethods:\n\n{{hc|/etc/ssh/sshd_config|\nKbdInteractiveAuthentication yes\nAuthenticationMethods publickey''','''keyboard-interactive:pam\n}}\n\nWith required pubkey '''and''' pam authentication, you may wish to disable the password requirement:\n\n{{hc|/etc/pam.d/sshd|\nauth      required  pam_securetty.so     #disable remote root\n#Require google authenticator\nauth      required  pam_google_authenticator.so\n#But not password\n#auth      include   system-remote-login\naccount   include   system-remote-login\npassword  include   system-remote-login\nsession   include   system-remote-login\n}}\n\n==== Protecting against brute force attacks ====\n\nBrute forcing is a simple concept: one continuously tries to log in to a webpage or server log-in prompt like SSH with a high number of random username and password combinations.\n\nSee [[ufw#Rate limiting with ufw]] or [[Simple stateful firewall#Bruteforce attacks]] for [[iptables]].\n\nAlternatively, you can protect yourself from brute force attacks by using an automated script that blocks anybody trying to brute force their way in, for example [[fail2ban]] or [[sshguard]].\n\n* Only allow incoming SSH connections from trusted locations\n* Use [[fail2ban]] or [[sshguard]] to automatically block IP addresses that fail password authentication too many times.\n* Use [https://github.com/jtniehof/pam_shield pam_shield] to block IP addresses that perform too many login attempts within a certain period of time. In contrast to [[fail2ban]] or [[sshguard]], this program does not take login success or failure into account.\n\n==== Limit root login ====\n\n{{Out of date|Root login has been disabled by default upstream in the current version.  Unclear to me what parts of this section and subsections are redundant.}}\n\nIt is generally considered bad practice to allow the root user to log in without restraint over SSH. There are two methods by which SSH root access can be restricted for increased security.\n\n===== Deny =====\n\nSudo selectively provides root rights for actions requiring these without requiring authenticating against the root account. This allows locking the root account against access via SSH and potentially functions as a security measure against brute force attacks, since now an attacker must guess the account name in addition to the password.\n\nSSH can be configured to deny remote logins with the root user by editing the \"Authentication\" section in the daemon configuration file. Simply set {{ic|PermitRootLogin}} to {{ic|no}}:\n\n{{hc|/etc/ssh/sshd_config|PermitRootLogin no}}\n\nNext, [[restart]] the SSH daemon.\n\nYou will now be unable to log in through SSH under root, but will still be able to log in with your normal user and use [[su]] or [[sudo]] to do system administration.\n\n===== Restrict =====\n\nSome automated tasks such as remote, full-system backup require full root access. To allow these in a secure way, instead of disabling root login via SSH, it is possible to only allow root logins for selected commands. This can be achieved by editing {{ic|~root/.ssh/authorized_keys}}, by prefixing the desired key, e.g. as follows:\n\n command=\"/usr/lib/rsync/rrsync -ro /\" ssh-rsa \u2026\n\nThis will allow any login with this specific key only to execute the command specified between the quotes.\n\nThe increased attack surface created by exposing the root user name at login can be compensated by adding the following to {{ic|sshd_config}}:\n\n PermitRootLogin forced-commands-only\n\nThis setting will not only restrict the commands which root may execute via SSH, but it will also disable the use of passwords, forcing use of public key authentication for the root account.\n\nA slightly less restrictive alternative will allow any command for root, but makes brute force attacks infeasible by enforcing public key authentication. For this option, set:\n\n PermitRootLogin prohibit-password\n\n==== Locking the authorized_keys file ====\n\n{{Warning|Locking this file only protects against user mistakes and a particular naive in-person attack. It '''does not''' provide any protection against malicious programs or breaches. Use multi-factor authentication, firewalling and practice defence in depth to prevent breaches in the first place.}}\n\nIf, for whatever reason, you think that the user in question should not be able to add or change existing keys, you can prevent them from manipulating the file.\n\nOn the server, make the {{ic|authorized_keys}} file read-only for the user and deny all other permissions:\n\n $ chmod 400 ~/.ssh/authorized_keys\n\nTo prevent the user from simply changing the permissions back, [[File permissions and attributes#File attributes|set the immutable bit]] on the {{ic|authorized_keys}} file. To prevent the user from renaming the {{ic|~/.ssh}} directory and creating a new {{ic|~/.ssh}} directory and {{ic|authorized_keys}} file, set the immutable bit on the {{ic|~/.ssh}} directory too. To add or remove keys, you will have to remove the immutable bit from {{ic|authorized_keys}} and make it writable temporarily.\n\n{{Tip|It is recommended to log changes to any {{ic|authorized_keys}} file via e.g [[Audit framework#Audit files and directories access|auditd]].}}\n\n== Tips and tricks ==\n\n=== Encrypted SOCKS tunnel ===\n\n{{Style|Written like a blog post.}}\n\nThis is highly useful for laptop users connected to various unsafe wireless connections. The only thing you need is an SSH server running at a somewhat secure location, like your home or at work. It might be useful to use a dynamic DNS service like [https://dyn.com/dns/ DynDNS] so you do not have to remember your IP-address.\n\n==== Step 1: start the connection ====\n\nYou only have to execute this single command to start the connection:\n\n $ ssh -TND 4711 ''user''@''host''\n\nwhere {{Ic|''user''}} is your username at the SSH server running at the {{Ic|''host''}}. It will ask for your password, and then you are connected. The {{Ic|N}} flag disables the interactive prompt, and the {{Ic|D}} flag specifies the local port on which to listen on (you can choose any port number if you want).  The {{Ic|T}} flag disables pseudo-tty allocation.\n\nIt is nice to add the verbose ({{Ic|-v}}) flag, because then you can verify that it is actually connected from that output.\n\n==== Step 2 (Variant A): configure your browser (or other programs) ====\n\nThe above step is useful only in combination with a web browser or another program that uses this newly created SOCKS tunnel. Since SSH currently supports both SOCKS v4 and SOCKS v5, you can use either of them.\n\n* For Firefox: At ''Preferences > General'' navigates to the bottom of the page and click ''Settings...'', which is to the right of the Network Settings title. Next, within the new semi window, check the ''Manual proxy configuration'' option and enter {{ic|localhost}} in the ''SOCKS host'' text field, and the port number in the ''Port'' text field ({{ic|4711}} in the example above) next to it.\n:Firefox does not automatically make DNS requests through the socks tunnel. This potential privacy concern can be mitigated by scrolling further down, checking in the ''Proxy DNS when using SOCKS v5''. Obviously, this will only work if you chooses SOCKS v5 rather than v4.\n: Restart Firefox to activate these settings.\n\n* For Chromium: You can set the SOCKS settings as environment variables or as command line options. I recommend to add one of the following functions to your {{ic|.bashrc}}:\n\n function secure_chromium {\n     port=4711\n     export SOCKS_SERVER=localhost:$port\n     export SOCKS_VERSION=5\n     chromium &\n     exit\n }\n\nOR\n\n function secure_chromium {\n     port=4711\n     chromium --proxy-server=\"socks://localhost:$port\" &\n     exit\n }\n\nNow open a terminal and just do:\n\n $ secure_chromium\n\nEnjoy your secure tunnel!\n\n==== Step 2 (Variant B): set up a local TUN interface ====\n\nThis variant is slightly more involved upfront but results in you not having to manually configure every single application one by one to use the SOCKS proxy. It involves setting up a local TUN interface and routing traffic through it.\n\nSee [[VPN over SSH#Set up badvpn and tunnel interface]].\n\n=== X11 forwarding ===\n\nX11 forwarding is a mechanism that allows graphical interfaces of X11 programs running on a remote system to be displayed on a local client machine. For X11 forwarding the remote host does not need to have a full X11 system installed; however, it needs at least to have ''xauth'' installed. ''xauth'' is a utility that maintains {{ic|Xauthority}} configurations used by server and client for authentication of X11 session ([http://xmodulo.com/2012/11/how-to-enable-x11-forwarding-using-ssh.html source]).\n\n{{Warning|X11 forwarding has important security implications which should be at least acknowledged by reading relevant sections of {{man|1|ssh}}, {{man|5|sshd_config}}, and {{man|5|ssh_config}} manual pages. See also [https://security.stackexchange.com/questions/14815/security-concerns-with-x11-forwarding this StackExchange question.]}}\n\n==== Setup ====\n\n===== Remote =====\n\n* [[install]] the {{Pkg|xorg-xauth}} packages\n* in {{ic|/etc/ssh/ssh'''d'''_config}}:\n** set {{ic|X11Forwarding}} to ''yes''\n** verify that {{ic|AllowTcpForwarding}} and {{ic|X11UseLocalhost}} options are set to ''yes'', and that {{ic|X11DisplayOffset}} is set to ''10'' (those are the default values if nothing has been changed, see {{man|5|sshd_config}})\n* then [[restart]] the [[#Daemon management|''sshd'' daemon]].\n\n===== Client =====\n\n* [[install]] the {{Pkg|xorg-xauth}} package\n* enable the {{ic|ForwardX11}} option by either specifying the {{ic|-X}} switch on the command line for opportunistic connections, or by setting {{ic|ForwardX11}} to ''yes'' in the [[#Configuration|client's configuration]].\n\n{{Tip|You can enable the {{ic|ForwardX11Trusted}} option ({{ic|-Y}} switch on the command line) if GUI is drawing badly or you receive errors; this will prevent X11 forwardings from being subjected to the [https://www.x.org/wiki/Development/Documentation/Security/ X11 SECURITY extension] controls. Be sure you have read [[#X11 forwarding|the warning]] at the beginning of this section if you do so.}}\n\n==== Usage ====\n\nLog on to the remote machine normally, specifying the {{ic|-X}} switch if ''ForwardX11'' was not enabled in the client's configuration file:\n\n $ ssh -X ''user@host''\n\nIf you receive errors trying to run graphical applications, try ''ForwardX11Trusted'' instead:\n\n $ ssh -Y ''user@host''\n\nGiven the output {{ic|X11 forwarding request failed}}, redo the setup for your remote machine. Once the X11 forwarding request succeeds, you can start any X program on the remote server, and it will be forwarded to your local session:\n\n $ xclock\n\nError output containing {{ic|Can't open display}} indicates that {{ic|DISPLAY}} is improperly set.\n\nBe careful with some applications as they check for a running instance on the local machine. [[Firefox]] is an example: either close the running Firefox instance or use the following start parameter to start a remote instance on the local machine:\n\n $ firefox --no-remote\n\nIf you get \"X11 forwarding request failed on channel 0\" when you connect (and the server {{ic|/var/log/errors.log}} shows \"Failed to allocate internet-domain X11 display socket\"), make sure package {{Pkg|xorg-xauth}} is installed. If its installation is not working, try to either:\n\n* enable the {{ic|AddressFamily any}} option in {{ic|ssh'''d'''_config}} on the ''server'', or\n* set the {{ic|AddressFamily}} option in {{ic|ssh'''d'''_config}} on the ''server'' to inet.\nSetting it to inet may fix problems with Ubuntu clients on IPv4.\n\nFor running X applications as another user on the SSH server, you need to {{Ic|xauth add}} the authentication line taken from {{Ic|xauth list}} of the SSH logged in user.\n\n{{Tip|[https://unix.stackexchange.com/a/12772 Here] are [https://unix.stackexchange.com/a/46748 some] useful [https://superuser.com/a/805060 links] for troubleshooting {{ic|X11 Forwarding}} issues.}}\n\n=== Forwarding other ports ===\n\nIn addition to SSH's built-in support for X11, it can also be used to securely tunnel any TCP connection, by use of local forwarding or remote forwarding.\n\nLocal forwarding opens a port on the local machine, connections to which will be forwarded to the remote host and from there on to a given destination. Very often, the forwarding destination will be the same as the remote host, thus providing a secure shell and, e.g. a secure [[VNC]] connection, to the same machine. Local forwarding is accomplished by means of the {{Ic|-L}} switch and it is accompanying forwarding specification in the form of {{Ic|<tunnel port>:<destination address>:<destination port>}}.\n\nThus:\n\n $ ssh -L 1000:mail.google.com:25 192.168.0.100\n\nwill use SSH to login to and open a shell on {{ic|192.168.0.100}}, and will also create a tunnel from the local machine's TCP port 1000 to mail.google.com on port 25. Once established, connections to {{ic|localhost:1000}} will connect to the Gmail SMTP port. To Google, it will appear that any such connection (though not necessarily the data conveyed over the connection) originated from {{ic|192.168.0.100}}, and such data will be secure between the local machine and 192.168.0.100, but not between {{ic|192.168.0.100}} and Google, unless other measures are taken.\n\nSimilarly:\n\n $ ssh -L 2000:192.168.0.100:6001 192.168.0.100\n\nwill allow connections to {{ic|localhost:2000}} which will be transparently sent to the remote host on port 6001. The preceding example is useful for VNC connections using the vncserver utility--part of the [[tightvnc]] package--which, though very useful, is explicit about its lack of security.\n\nRemote forwarding allows the remote host to connect to an arbitrary host via the SSH tunnel and the local machine, providing a functional reversal of local forwarding, and is useful for situations where, e.g., the remote host has limited connectivity due to firewalling. It is enabled with the {{Ic|-R}} switch and a forwarding specification in the form of {{Ic|<tunnel port>:<destination address>:<destination port>}}.\n\nThus:\n\n $ ssh -R 3000:irc.libera.chat:6667 192.168.0.200\n\nwill bring up a shell on {{ic|192.168.0.200}}, and connections from {{ic|192.168.0.200}} to itself on port 3000 (the remote host's {{ic|localhost:3000}}) will be sent over the tunnel to the local machine and then on to irc.libera.chat on port 6667, thus, in this example, allowing the use of IRC programs on the remote host to be used, even if port 6667 would normally be blocked to it.\n\nBoth local and remote forwarding can be used to provide a secure \"gateway\", allowing other computers to take advantage of an SSH tunnel, without actually running SSH or the SSH daemon by providing a bind-address for the start of the tunnel as part of the forwarding specification, e.g. {{Ic|<tunnel address>:<tunnel port>:<destination address>:<destination port>}}. The {{Ic|<tunnel address>}} can be any address on the machine at the start of the tunnel. The address {{Ic|localhost}} allows connections via the {{ic|localhost}} or loopback interface, and an empty address or {{Ic|*}} allow connections via any interface. By default, forwarding is limited to connections from the machine at the \"beginning\" of the tunnel, i.e. the {{Ic|<tunnel address>}} is set to {{Ic|localhost}}. Local forwarding requires no additional configuration; however, remote forwarding is limited by the remote server's SSH daemon configuration. See the {{Ic|GatewayPorts}} option in {{man|5|sshd_config}} and {{ic|-L address}} option in {{man|1|ssh}} for more information about remote forwarding and local forwarding, respectively.\n\n=== Jump hosts ===\n\nIn certain scenarios, there might not be a direct connection to your target SSH daemon, and the use of a jump server (or bastion server) is required. Thus, we attempt to connect together two or more SSH tunnels, and assuming your local keys are authorized against each server in the chain. This is possible using SSH agent forwarding ({{ic|-A}}) and pseudo-terminal allocation ({{ic|-t}}) which forwards your local key with the following syntax:\n\n $ ssh -A -t -l user1 bastion1 \\\n   ssh -A -t -l user2 intermediate2 \\\n   ssh -A -t -l user3 target\n\nAn easier way to do this is using the {{ic|-J}} flag:\n\n $ ssh -J user1@bastion1,user2@intermediate2 user3@target\n\nMultiple hosts in the {{ic|-J}} directive can be separated with a comma; they will be connected to in the order listed. The {{ic|user...@}} part is not required, but can be used. The host specifications for {{ic|-J}} use the ssh configuration file, so specific per-host options can be set there, if needed.\n\nAn equivalent of the {{ic|-J}} flag in the configuration file is the {{ic|ProxyJump}} option; see {{man|5|ssh_config}} for details.\n\n=== Reverse SSH through a relay ===\n\n{{Style|The idea of SSH tunneling is classic, so some references for detailed explanation would be nice. E.g. [https://unix.stackexchange.com/questions/46235/how-does-reverse-ssh-tunneling-work/118650#118650] which includes other scenarios.}}\n\nThe idea is that the client connects to the server via another relay while the server is connected to the same relay using a reverse SSH tunnel. This is useful when the server is behind a NAT, and the relay is a publicly accessible SSH server used as a proxy to which the user has access. Therefore, the prerequisite is that the client's keys are authorized against both the relay and the server, and the server needs to be authorized against the relay as well for the reverse SSH connection.\n\nThe following configuration example assumes that user1 is the user account used on client, user2 on relay and user3 on server. First, the server needs to establish the reverse tunnel with:\n\n ssh -R 2222:localhost:22 -N user2@relay\n\nWhich can also be automated with a startup script, systemd service or [[#Autossh - automatically restarts SSH sessions and tunnels|autossh]].\n\n{{Expansion|Explain why {{ic|ssh user3@relay -p 2222}} is not sufficient.}}\n\nAt the client side, the connection is established with:\n\n ssh -t user2@relay ssh user3@localhost -p 2222\n\nThe remote command to establish the connection to reverse tunnel can also be defined in relay's {{ic|~/.ssh/authorized_keys}} by including the {{ic|command}} field as follows:\n\n command=\"ssh user3@localhost -p 2222\" ssh-rsa KEY2 user1@client\n\nIn this case the connection is established with:\n\n ssh user2@relay\n\nNote that SCP's autocomplete function in client's terminal is not working and even the SCP transfers themselves are not working under some configurations.\n\n=== Multiplexing ===\n\nThe SSH daemon usually listens on port 22. However, it is common practice for many public internet hotspots to block all traffic that is not on the regular HTTP/S ports (80 and 443, respectively), thus effectively blocking SSH connections. The immediate solution for this is to have {{ic|sshd}} listen additionally on one of the whitelisted ports:\n\n{{hc|/etc/ssh/sshd_config|\nPort 22\nPort 443\n}}\n\nHowever, it is likely that port 443 is already in use by a web server serving HTTPS content, in which case it is possible to use a multiplexer, such as {{Pkg|sslh}}, which listens on the multiplexed port and can intelligently forward packets to many services.\n\n=== Speeding up SSH ===\n\nThere are several [[#Configuration|client configuration]] options which can speed up connections either globally or for specific hosts. See {{man|5|ssh_config}} for full descriptions of these options.\n\n* ''Use a faster cipher'': on modern CPUs with AESNI instructions, {{ic|aes128-gcm@openssh.com}} and {{ic|aes256-gcm@openssh.com}} should offer significantly better performance over openssh's default preferred cipher, usually {{ic|chacha20-poly1305@openssh.com}}. Cipher can be selected with the {{ic|-c}} flag. For a permanent effect, put {{ic|Ciphers}} option in your {{ic|~/.ssh/config}} with ciphers in new preferred order, e.g.:{{bc|Ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr}}\n\n* ''Enable or disable compression'': compression can increase speed on slow connections; it is enabled with the {{ic|Compression yes}} option or the {{ic|-C}} flag. However, the compression algorithm used is the relatively slow {{man|1|gzip}} which becomes the bottleneck on fast networks. In order to speed up the connection, one should use the {{ic|Compression no}} option on local or fast networks.\n\n* ''Connection sharing'': you can make all sessions to the same host share a single connection using these options:{{bc|<nowiki>\nControlMaster auto\nControlPersist yes\nControlPath ~/.ssh/sockets/socket-%r@%h:%p\n</nowiki>}}\n: where {{ic|~/.ssh/sockets}} can be any directory not writable by other users.\n\n* {{ic|ControlPersist}} specifies how long the master should wait in the background for new clients after the initial client connection has been closed. Possible values are either:  \n** {{ic|no}} to close the connection immediately after the last client disconnects, \n** a time in seconds,\n** {{ic|yes}} to wait forever, the connection will never be closed automatically.\n\n* Login time can be shortened by bypassing IPv6 lookup using the {{ic|AddressFamily inet}} option or {{ic|-4}} flag.\n\n* Last, if you intend to use SSH for SFTP or SCP, [https://www.psc.edu/index.php/hpn-ssh High Performance SSH/SCP] can significantly increase throughput by dynamically raising the SSH buffer sizes. Install the package {{AUR|openssh-hpn-git}} to use a patched version of OpenSSH with this enhancement.\n\n=== Mounting a remote filesystem with SSHFS ===\n\nPlease refer to the [[SSHFS]] article to mount a SSH-accessible remote system to a local directory, so you will be able to do any operation on the mounted files with any tool (copy, rename, edit with vim, etc.). ''sshfs'' is generally preferred over ''shfs'', the latter has not been updated since 2004.\n\n=== Keep alive ===\n\nBy default, the SSH session automatically logs out if it has been idle for a certain time. To keep the session up, the client can send a keep-alive signal to the server if no data has been received for some time, or symmetrically the server can send messages at regular intervals if it has not heard from the client.\n\n* On the '''server''' side, {{ic|ClientAliveInterval}} sets the timeout in seconds after which if no data has been received from the client, ''sshd'' will send a request for response. The default is 0, no message is sent. For example to request a response every 60 seconds from the client, set the {{ic|ClientAliveInterval 60}} option in your [[#Configuration_2|server configuration]]. See also the {{ic|ClientAliveCountMax}} and {{ic|TCPKeepAlive}} options.\n* On the '''client''' side, {{ic|ServerAliveInterval}} controls the interval between the requests for response sent from the client to the server. For example to request a response every 120 seconds from the server, add the {{ic|ServerAliveInterval 120}} option to your [[#Configuration|client configuration]]. See also the {{ic|ServerAliveCountMax}} and {{ic|TCPKeepAlive}} options.\n\n{{Note| To ensure a session is kept alive, only one of either the client or the server needs to send keep alive requests. If ones control both the servers and the clients, a reasonable choice is to only configure the clients that require a persistent session with a positive {{ic|ServerAliveInterval}} and leave other clients and servers in their default configuration.}}\n\n=== Automatically restart SSH tunnels with systemd ===\n\n[[systemd]] can automatically start SSH connections on boot/login ''and'' restart them when they fail. This makes it a useful tool for maintaining SSH tunnels.\n\nThe following service can start an SSH tunnel on login using the connection settings in your [[#Configuration|ssh configuration]]. If the connection closes for any reason, it waits 10 seconds before restarting it:\n\n{{hc|~/.config/systemd/user/tunnel.service|<nowiki>\n[Unit]\nDescription=SSH tunnel to myserver\n\n[Service]\nType=simple\nRestart=always\nRestartSec=10\nExecStart=/usr/bin/ssh -F %h/.ssh/config -N myserver\n</nowiki>}}\n\nThen [[enable]] and [[start]] the [[Systemd/User]] service. See [[#Keep alive]] for how to prevent the tunnel from timing out. If you wish to start the tunnel on boot, you might want to [[Systemd#Writing unit files|rewrite the unit]] as a system service.\n\n=== Autossh - automatically restarts SSH sessions and tunnels ===\n\nWhen a session or tunnel cannot be kept alive, for example due to bad network conditions causing client disconnections, you can use {{Pkg|autossh}} to automatically restart them.\n\nUsage examples:\n\n $ autossh -M 0 -o \"ServerAliveInterval 45\" -o \"ServerAliveCountMax 2\" username@example.com\n\nCombined with [[SSHFS]]:\n\n $ sshfs -o reconnect,compression=yes,transform_symlinks,ServerAliveInterval=45,ServerAliveCountMax=2,ssh_command='autossh -M 0' username@example.com: /mnt/example \n\nConnecting through a SOCKS-proxy set by [[Proxy settings]]:\n\n $ autossh -M 0 -o \"ServerAliveInterval 45\" -o \"ServerAliveCountMax 2\" -NCD 8080 username@example.com \n\nWith the {{ic|-f}} option autossh can be made to run as a background process. Running it this way however means the passphrase cannot be entered interactively.\n\nThe session will end once you type {{ic|exit}} in the session, or the autossh process receives a SIGTERM, SIGINT of SIGKILL signal.\n\n==== Run autossh automatically at boot via systemd ====\n\nIf you want to automatically start autossh, you can create a systemd unit file:\n\n{{hc|/etc/systemd/system/autossh.service|2=\n[Unit]\nDescription=AutoSSH service for port 2222\nAfter=network.target\n\n[Service]\nEnvironment=\"AUTOSSH_GATETIME=0\"\nExecStart=/usr/bin/autossh -M 0 -NL 2222:localhost:2222 -o TCPKeepAlive=yes foo@bar.com\n\n[Install]\nWantedBy=multi-user.target\n}}\n\nHere {{ic|1=AUTOSSH_GATETIME=0}} is an environment variable specifying how long ssh must be up before autossh considers it a successful connection, setting it to 0 autossh also ignores the first run failure of ssh. This may be useful when running autossh at boot. Other environment variables are available at {{man|1|autossh}}. Of course, you can make this unit more complex if necessary (see the systemd documentation for details), and obviously you can use your own options for autossh, but note that the {{ic|-f}} implying {{ic|1=AUTOSSH_GATETIME=0}} does not work with systemd. \n\nRemember to [[start]] and/or [[enable]] the service afterwards.\n\nYou may also need to disable ControlMaster e.g.\n\n ExecStart=/usr/bin/autossh -M 0 -o ControlMaster=no -NL 2222:localhost:2222 -o TCPKeepAlive=yes foo@bar.com\n\n{{Tip|It is also easy to maintain several autossh processes, to keep several tunnels alive. Just create multiple service files with different names.}}\n\n=== Alternative service should SSH daemon fail ===\n\nFor remote or headless servers which rely exclusively on SSH, a failure to start the SSH daemon (e.g., after a system upgrade) may prevent administration access. [[systemd]] offers a simple solution via {{ic|OnFailure}} option.\n\nLet us suppose the server runs {{ic|sshd}} and [[telnet]] is the fail-safe alternative of choice. Create a file as follows. Do '''not''' [[enable]] {{ic|telnet.socket}}!\n\n{{hc|/etc/systemd/system/sshd.service.d/override.conf|2=\n[Unit]\nOnFailure=telnet.socket\n}}\n\nThat's it. Telnet is not available when {{ic|sshd}} is running. Should {{ic|sshd}} fail to start, a telnet session can be opened for recovery.\n\n=== Terminal background color based on host ===\n\nTo better distinguish when you are on different hosts, you can set a [https://bryangilbert.com/post/etc/term/dynamic-ssh-terminal-background-colors/ different background color based on the kind of host].\n\nThis solution works, but is not universal (ZSH only).\n\n=== Network specific configuration ===\n\nYou can use host configuration specific to the network you are connected to using a {{ic|Match exec}}.\n\nFor example, when using nmcli, and the connection is configured (manually or through DHCP) to use a search-domain:\n\n{{bc|1=\nMatch exec \"nmcli {{!}} grep domains: {{!}} grep example.com\"\n  CanonicalDomains example.com\n  # Should you use a different username on this network\n  #User username\n  # Use a different known_hosts file (for private network or synchronisation)\n  #UserKnownHostsFile <network>_known_hosts\n}}\n\n=== Private networks hostkeys verification ===\n\nBecause different servers on different networks are likely to share a common private IP address, you might want to handle them differently.\n\n{{Accuracy|The best solution would not need a warning to use something else in practice.}}\n\nThe best solution is to use the [[#Network specific configuration]] to use a different {{ic|UserKnownHostsFile}} depending on the network you are on. The second solution, best used as default when you are working on new/prototype networks, would be to simply ignore hostkeys for private networks:\n\n{{bc|1=\nHost 10.* 192.168.*.* 172.31.* 172.30.* 172.2?.* 172.1?.*\n    # Disable HostKey verification\n    # Trust HostKey automatically\n    StrictHostKeyChecking no\n    # Do not save the HostKey\n    UserKnownHostsFile=/dev/null\n    # Do not display: \"Warning: Permanently Added ...\"\n    LogLevel Error\n}}\n\n{{Accuracy|The {{ic|known_hosts}} file records an IP address even when you use hostname to access the server.}}\n\n{{Warning|In a production environment, make sure to either use the hostname to access the host and/or to use network specific known_hosts files.}}\n\n=== Run command at login ===\n\nIf you are using an interactive session, there are multiple ways to execute a command on login:\n\n* use the {{ic|authorized_keys}} file on the remote host (see {{ic|AUTHORIZED_KEYS FILE FORMAT}} in {{man|8|sshd}})\n* use {{ic|~/.ssh/rc}} on the remote host if the server has enabled the {{ic|PermitUserRC}} option\n* use your shell configuration file on the remote host, e.g. {{ic|.bashrc}}\n\n=== Agent forwarding ===\n\nSSH agent forwarding allows you to use your local keys when connected to a server. It is recommended to only enable agent forwarding for selected hosts.\n\n{{hc|~/.ssh/config|\nHost ''myserver.com''\n    ForwardAgent yes\n}}\n\nNext, configure an [[SSH agent]] and add your local key with ''ssh-add''.\n\nIf you now connect to a remote server you will be able to connect to other services using your local keys.\n\n=== Generating new keys ===\n\nNew server private keys can be generated by:\n\n# Deleting all the keys, e.g.: {{bc|# rm /etc/ssh/ssh_host_*_key*}}\n# [[Restart]]ing {{ic|sshdgenkeys.service}} or running {{ic|ssh-keygen -A}} as root.\n\n== Troubleshooting ==\n\n=== Checklist ===\n\nCheck these simple issues before you look any further.\n\n# The configuration directory {{ic|~/.ssh}}, its contents should be accessible only by the user (check this on both the client and the server), and the user's home directory should only be writable by the user: {{bc|<nowiki>\n$ chmod go-w ~\n$ chmod 700 ~/.ssh\n$ chmod 600 ~/.ssh/*\n$ chown -R $USER ~/.ssh\n</nowiki>}}\n# Check that the client's public key (e.g. {{ic|id_rsa.pub}}) is in {{ic|~/.ssh/authorized_keys}} on the server.\n# Check that you did not limit SSH access with {{ic|AllowUsers}} or {{ic|AllowGroups}} in the [[#Configuration_2|server config]].\n# Check if the user has set a password. Sometimes new users who have not yet logged in to the server do not have a password.\n# [[Append]] {{ic|LogLevel DEBUG}} to {{ic|/etc/ssh/sshd_config}}.\n# Run {{ic|journalctl -xe}} as root for possible (error) messages.\n# [[Restart]] {{ic|sshd}} and logout/login on both client and server.\n\n=== Connection refused or timeout problem ===\n\n==== Port forwarding ====\n\nIf you are behind a NAT mode/router (which is likely unless you are on a VPS or publicly addressed host), make sure that your router is forwarding incoming ssh connections to your machine. Find the server's internal IP address with {{ic|$ ip addr}} and set up your router to forward TCP on your SSH port to that IP. [https://portforward.com portforward.com] can help with that.\n\n==== Is SSH running and listening? ====\n\nThe [[ss]] utility shows all the processes listening to a TCP port with the following command line:\n\n $ ss --tcp --listening\n\nIf the above command do not show the system is listening to the port {{ic|ssh}}, then SSH is not running: check the [[journal]] for errors etc.\n\n==== Are there firewall rules blocking the connection? ====\n\n[[Iptables]] may be blocking connections on port {{ic|22}}. Check this with:\n{{bc|# iptables -nvL}}\nand look for rules that might be dropping packets on the {{ic|INPUT}} chain. Then, if necessary, unblock the port with a command like: \n{{bc|\n# iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT\n}}\nFor more help configuring firewalls, see [[firewalls]].\n\n==== Is the traffic even getting to your computer? ====\n\nStart a traffic dump on the computer you are having problems with:\n\n # tcpdump -lnn -i any port ssh and tcp-syn\n\nThis should show some basic information, then wait for any matching traffic to happen before displaying it. Try your connection now. If you do not see any output when you attempt to connect, then something outside of your computer is blocking the traffic (e. g., hardware firewall, NAT router etc.).\n\n==== Your ISP or a third party blocking default port? ====\n\n{{Note|Try this step if you '''know''' you are not running any firewalls and you know you have configured the router for DMZ or have forwarded the port to your computer and it still does not work. Here you will find diagnostic steps and a possible solution.}}\n\nIn some cases, your ISP might block the default port (SSH port 22) so whatever you try (opening ports, hardening the stack, defending against flood attacks, et al) ends up useless. To confirm this, create a server on all interfaces (0.0.0.0) and connect remotely. \n\nIf you get an error message comparable to this:\n\n ssh: connect to host www.inet.hr port 22: Connection refused\n\nThat means the port is '''not''' being blocked by the ISP, but the server does not run SSH on that port (See [[wikipedia:Security through obscurity|security through obscurity]]).\n\nHowever, if you get an error message comparable to this:\n\n ssh: connect to host 111.222.333.444 port 22: Operation timed out \n\nThat means that something is rejecting your TCP traffic on port 22. Basically that port is stealth, either by your firewall or 3rd party intervention (like an ISP blocking and/or rejecting incoming traffic on port 22). If you know you are not running any firewall on your computer, and you know that Gremlins are not growing in your routers and switches, then your ISP is blocking the traffic.\n\nTo double check, you can run Wireshark on your server and listen to traffic on port 22. Since Wireshark is a Layer 2 Packet Sniffing utility, and TCP/UDP are Layer 3 and above (see [[wikipedia:Internet protocol suite|IP Network stack]]), if you do not receive anything while connecting remotely, a third party is most likely to be blocking the traffic on that port to your server.\n\n===== Diagnosis =====\n\n[[Install]] either {{Pkg|tcpdump}} or Wireshark with the {{Pkg|wireshark-cli}} package.\n\nFor tcpdump:\n\n # tcpdump -ni ''interface'' \"port 22\"\n\nFor Wireshark:\n\n $ tshark -f \"tcp port 22\" -i ''interface''\n\nwhere {{ic|''interface''}} is the network interface for a WAN connection (see {{ic|ip a}} to check). If you are not receiving any packets while trying to connect remotely, you can be very sure that your ISP is blocking the incoming traffic on port 22.\n\n===== Possible solution =====\n\nThe solution is just to use some other port that the ISP is not blocking. Open the {{ic|/etc/ssh/sshd_config}} and configure the file to use different ports. For example, add:\n\n Port 22\n Port 1234\n\nAlso make sure that other \"Port\" configuration lines in the file are commented out. Just commenting \"Port 22\" and putting \"Port 1234\" will not solve the issue because then sshd will only listen on port 1234. Use both lines to run the SSH server on both ports. \n\n[[Restart]] the server {{ic|sshd.service}} and you are almost done. You still have to configure your client(s) to use the other port instead of the default port. There are numerous solutions to that problem, but let us cover two of them here.\n\n==== Read from socket failed: connection reset by peer ====\n\nRecent versions of openssh sometimes fail with the above error message when connecting to older ssh servers. This can be worked around by setting various [[#Configuration|client options]] for that host. See {{man|5|ssh_config}} for more information about the following options.\n\nThe problem could be the {{ic|ecdsa-sha2-nistp*-cert-v01@openssh}} elliptical host key algorithms. These can be disabled by setting {{ic|HostKeyAlgorithms}} to a list excluding those algorithms.\n\nIf that does not work, it could be that the list of ciphers is too long. Set the {{ic|Ciphers}} option to a shorter list (fewer than 80 characters should be enough). Similarly, you can also try shortening the list of {{ic|MACs}}.\n\nSee also the [https://www.gossamer-threads.com/lists/openssh/dev/51339 discussion] on the openssh bug forum.\n\n=== \"[your shell]: No such file or directory\" / ssh_exchange_identification problem ===\n\nOne possible cause for this is the need of certain SSH clients to find an absolute path (one returned by {{Ic|whereis -b [your shell]}}, for instance) in {{Ic|$SHELL}}, even if the shell's binary is located in one of the {{Ic|$PATH}} entries.\n\n=== \"Terminal unknown\" or  \"Error opening terminal\" error message ===\n\nIf you receive the above errors upon logging in, this means the server does not recognize your terminal. Ncurses applications like nano may fail with the message \"Error opening terminal\".\n\nThe correct solution is to install the client terminal's terminfo file on the server. This tells console programs on the server how to correctly interact with your terminal. You can get info about current terminfo using {{ic|$ infocmp}} and then find out [[pacman#Querying package databases|which package owns it]].\n\nIf you cannot [[install]] it normally, you can copy your terminfo to your home directory on the server:\n\n $ ssh myserver mkdir -p  ~/.terminfo/${TERM:0:1}\n $ scp /usr/share/terminfo/${TERM:0:1}/$TERM myserver:~/.terminfo/${TERM:0:1}/\n\nAfter logging in and out from the server the problem should be fixed.\n\n==== TERM hack ====\n\n{{Note|This should only be used as a last resort.}}\n\nAlternatively, you can simply set {{ic|1=TERM=xterm}} in your environment on the server (e.g. in {{ic|.bash_profile}}). This will silence the error and allow ncurses applications to run again, but you may experience strange behavior and graphical glitches unless your terminal's control sequences exactly match xterm's.\n\n=== Connection closed by x.x.x.x [preauth] ===\n\nIf you are seeing this error in your sshd logs, make sure you have set a valid HostKey\n\n HostKey /etc/ssh/ssh_host_rsa_key\n\n=== subsystem request failed ===\n\nSince ''OpenSSH'' 8.8, ''scp'' uses ''SFTP'' as the default protocol for data transfers by requesting the subsystem named {{ic|sftp}}. If you run ''scp'' in verbose mode, {{ic|scp -v}}, you can determine which subsystem your client is using (e.g. {{ic|Sending subsystem: <subsystem-name>}}). Errors such as {{ic|subsystem request failed on channel 0}} may be fixed by configuring the server's Subsystem settings: {{man|5|sshd_config|Subsystem}}. The server configuration should resemble the example below.\n\n{{hc|/etc/ssh/sshd_config|\n...\nSubsystem subsystem-name /path/to/subsystem-executable\n...\n}}\n\n=== id_dsa refused by OpenSSH 7.0 ===\n\nOpenSSH 7.0 deprecated DSA public keys for security reasons. If you absolutely must enable them, set the [[#Configuration|configuration]] option {{ic|PubkeyAcceptedKeyTypes +ssh-dss}} (https://www.openssh.com/legacy.html does not mention this).\n\n=== No matching key exchange method found by OpenSSH 7.0 ===\n\nOpenSSH 7.0 deprecated the diffie-hellman-group1-sha1 key algorithm because it is weak and within theoretical range of the so-called Logjam attack (see https://www.openssh.com/legacy.html). If the key algorithm is needed for a particular host, ssh will produce an error message like this:\n\n Unable to negotiate with 127.0.0.1: no matching key exchange method found.\n Their offer: diffie-hellman-group1-sha1\n\nThe best resolution for these failures is to upgrade/configure the server to not use deprecated algorithms. If that is not possible, you can force the client to reenable the algorithm with the [[#Configuration|client option]] {{ic|KexAlgorithms +diffie-hellman-group1-sha1}}.\n\n=== tmux/screen session killed when disconnecting from SSH ===\n\nIf your processes get killed at the end of the session, it is possible that you are using socket activation and it gets killed by {{Pkg|systemd}} when it notices that the SSH session process exited. In that case there are two solutions. One is to avoid using socket activation by using {{ic|ssh.service}} instead of {{ic|ssh.socket}}. The other is to set {{ic|1=KillMode=process}} in the Service section of {{ic|ssh@.service}}.\n\nThe {{ic|1=KillMode=process}} setting may also be useful with the classic {{ic|ssh.service}}, as it avoids killing the SSH session process or the {{Pkg|screen}} or {{Pkg|tmux}} processes when the server gets stopped or restarted.\n\n=== SSH session stops responding ===\n\nSSH responds to [[Wikipedia:Software flow control|flow control commands]] {{ic|XON}} and {{ic|XOFF}}. It will freeze/hang/stop responding when you hit {{ic|Ctrl+s}}. Use {{ic|Ctrl+q}} to resume your session.\n\n=== Broken pipe ===\n\nIf you attempt to create a connection which results in a {{ic|Broken pipe}} response for {{ic|packet_write_wait}}, you should reattempt the connection in debug mode and see if the output ends in error:\n{{bc|debug3: send packet: type 1\npacket_write_wait: Connection to A.B.C.D port 22: Broken pipe}}\nThe {{ic|send packet}} line above indicates that the reply packet was never received. So, it follows that this is a ''QoS'' issue. To decrease the likely-hood of a packet being dropped, set {{ic|IPQoS}}:\n{{hc|/etc/ssh/ssh_config|Host *\n    IPQoS reliability}}\nThe {{ic|reliability}} ({{ic|0x04}}) type-of-service should resolve the issue, as well as {{ic|0x00}} and {{ic|throughput}} ({{ic|0x08}}).\n\n=== Slow daemon startup after reboot ===\n\nIf you are experiencing excessively long daemon startup times after reboots (e.g. several minutes before the daemon starts accepting connections), especially on headless or virtualized servers, it may be due to a lack of entropy.[https://bbs.archlinux.org/viewtopic.php?id=241954] This can be remedied by installing either [[Rng-tools]] or [[Haveged]], as appropriate for your system. However, take note of the associated security implications discussed in each package's respective wiki page.\n\n=== Terminate unresponsive SSH connection ===\n\nIf a client session is no longer responding and cannot be terminated by instructing the running program (e.g. [[shell]]), you can still terminate the session by pressing {{ic|Enter}}, {{ic|~}} and {{ic|.}} one after another in that order.\n\nThe {{ic|~}} is a pseudo-terminal escape character (see {{man|1|ssh|ESCAPE CHARACTERS}}), which can be added multiple times depending on the client session to terminate. For example, if you connected from A to B and then from B to C and the session from B to C freezes, you can terminate it by pressing {{ic|Enter}} and typing {{ic|~~.}}, which will leave you in a working session on B.\n\n=== WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ===\n\nIf the client warns that the key of an ssh server has changed, you should verify that the newly offered key really belongs to the server operator. Then remove the old key from the {{ic|known_hosts}} file with {{ic|ssh-keygen -R $SSH_HOST}} and accept the new key as if it was a new server.\n\n=== Connecting to a remote without the appropriate terminfo entry ===\n\nWhen connecting to hosts that do not have a terminfo entry for your terminal, for example, when using a terminal emulator whose terminfo entry is not shipped with {{Pkg|ncurses}} (e.g. [[kitty]] and [[rxvt-unicode]]), or when connecting to hosts with a limited terminfo database (e.g. systems running [[Wikipedia:OpenWrt|OpenWrt]]), various issues will occur with software that relies on {{man|5|terminfo}}.\n\nA proper solution is to place the appropriate terminfo entry on the host. If that is not feasible, an alternative is to set {{ic|TERM}} to a value that is both supported by the remote host and compatible with the terminal.\n\nSince OpenSSH 8.7, a custom {{ic|TERM}} environment variable can be passed to remote hosts with a simple configuration snippet:\n\n{{hc|~/.ssh/config|2=\nHost example.com\n  SetEnv TERM=xterm-256color\n}}\n\n=== Connection through jump host fails with \"bash: No such file or directory\" ===\n\nIf you do not have the {{ic|SHELL}} environment variable set to a full valid path (on the jump server), connection will fail with an error message simmilar to this one:\n\n bash: No such file or directory\n kex_exchange_identification: Connection closed by remote host\n Connection closed by UNKNOWN port 65535\n\nYou can simply solve this by setting your {{ic|SHELL}} to a full path name of a shell that will also be valid on the jump server or by setting a specific {{ic|SHELL}} variable for each server in your {{ic|~/.ssh/config}} file.\n\n== See also ==\n\n* [https://www.la-samhna.de/library/brutessh.html Defending against brute force ssh attacks]\n* OpenSSH key management: [https://www.ibm.com/developerworks/library/l-keyc/index.html Part 1] on IBM developerWorks, [[Funtoo:OpenSSH Key Management, Part 2|Part 2]], [[Funtoo:OpenSSH Key Management, Part 3|Part 3]] on funtoo.org\n* [https://stribika.github.io/2015/01/04/secure-secure-shell.html Secure Secure Shell]"
                    }
                ]
            },
            "4282": {
                "pageid": 4282,
                "ns": 0,
                "title": "Domain name resolution",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Domain Name System]]\n[[Category:Network configuration]]\n[[de:Resolv.conf]]\n[[fr:Domain name resolution]]\n[[ja:\u30c9\u30e1\u30a4\u30f3\u540d\u524d\u89e3\u6c7a]]\n[[pt:Domain name resolution]]\n[[ru:Domain name resolution]]\n[[zh-hans:Domain name resolution]]\n{{Related articles start}}\n{{Related|Network configuration}}\n{{Related|DNS over HTTPS servers}}\n{{Related articles end}}\nIn general, a [[Wikipedia:Domain name|domain name]] represents an IP address and is associated to it in the [[Wikipedia:Domain Name System|Domain Name System]] (DNS).\nThis article explains how to configure domain name resolution and resolve domain names.\n\n== Name Service Switch ==\n\n{{Expansion|Mention {{Pkg|nss-mdns}}, {{AUR|nss-tls-git}} and others.}}\n\nThe [[Wikipedia:Name Service Switch|Name Service Switch]] (NSS) facility is part of the GNU C Library ({{Pkg|glibc}}) and backs the {{man|3|getaddrinfo}} API, used to resolve domain names. NSS allows system databases to be provided by separate services, whose search order can be configured by the administrator in {{man|5|nsswitch.conf}}. The database responsible for domain name resolution is the ''hosts'' database, for which glibc offers the following services:\n\n* ''files'': reads the {{ic|/etc/hosts}} file, see {{man|5|hosts}}\n* ''dns'': the [[#Glibc resolver|glibc resolver]] which reads {{ic|/etc/resolv.conf}}, see {{man|5|resolv.conf}}\n\n[[systemd]] provides three NSS services for hostname resolution:\n\n* {{man|8|nss-resolve}} \u2014 a caching DNS stub resolver, described in [[systemd-resolved]]\n* {{man|8|nss-myhostname}} \u2014 provides local hostname resolution without having to edit {{ic|/etc/hosts}}\n* {{man|8|nss-mymachines}} \u2014 provides hostname resolution for the names of local {{man|8|systemd-machined}} containers\n\n=== Resolve a domain name using NSS ===\n\nNSS databases can be queried with {{man|1|getent}}. A domain name can be resolved through NSS using:\n\n $ getent hosts ''domain_name''\n\n{{Note|While most programs resolve domain names using NSS, some may read {{ic|/etc/resolv.conf}} and/or {{ic|/etc/hosts}} directly. See [[Network configuration#localhost is resolved over the network]].}}\n\n== Glibc resolver ==\n\nThe glibc resolver reads {{ic|/etc/resolv.conf}} for every resolution to determine the nameservers and options to use. \n\n{{man|5|resolv.conf}} lists nameservers together with some configuration options.\nNameservers listed first are tried first, up to three nameservers may be listed. Lines starting with a number sign ({{ic|#}}) are ignored.\n\n{{Note|The glibc resolver does not cache queries. To improve query lookup time you can set up a caching resolver. Glibc resolver also can not validate DNSSEC. A DNSSEC capable validator resolver is required for that one. See [[#DNS servers]] for more information.}}\n\n=== Overwriting of /etc/resolv.conf ===\n\n[[Network manager]]s tend to overwrite {{ic|/etc/resolv.conf}}, for specifics see the corresponding section:\n\n* [[dhcpcd#/etc/resolv.conf]]\n* [[Netctl#/etc/resolv.conf]]\n* [[NetworkManager#/etc/resolv.conf]]\n* [[ConnMan#/etc/resolv.conf]]\n\nTo prevent programs from overwriting {{ic|/etc/resolv.conf}}, it is also possible to write-protect it by setting the immutable [[file attribute]]:\n\n # chattr +i /etc/resolv.conf\n\n{{Tip|If you want multiple processes to write to {{ic|/etc/resolv.conf}}, you can use [[resolvconf]].}}\n\n=== Limit lookup time ===\n\nIf you are confronted with a very long hostname lookup (may it be in [[pacman]] or while browsing), it often helps to define a small timeout after which an alternative nameserver is used. To do so, put the following in {{ic|/etc/resolv.conf}}.\n\n{{hc|/etc/resolv.conf|options timeout:1}}\n\n=== Hostname lookup delayed with IPv6 ===\n\nIf you experience a 5 second delay when resolving hostnames it might be due to a DNS-server/Firewall misbehaving and only giving one reply to a parallel A and AAAA request.[https://udrepper.livejournal.com/20948.html] You can fix that by setting the following option in {{ic|/etc/resolv.conf}}:\n\n{{hc|/etc/resolv.conf|options single-request}}\n\n=== Local domain names ===\n\nTo be able to use the hostname of local machine names without the fully qualified domain name, add a line to {{ic|/etc/resolv.conf}} with the local domain such as:\n\n{{hc|/etc/resolv.conf|domain ''example.org''}}\n\nThat way you can refer to local hosts such as {{ic|mainmachine1.example.org}} as simply {{ic|mainmachine1}} when using the ''ssh'' command, but the [[#Lookup utilities|drill]] command still requires the fully qualified domain names in order to perform lookups.\n\n== Lookup utilities ==\n\nTo query specific DNS servers and DNS/[[DNSSEC]] records you can use dedicated DNS lookup utilities. These tools implement DNS themselves and do not use [[#Name Service Switch|NSS]].\n\n{{Pkg|ldns}} provides {{man|1|drill}}, which is a tool designed to retrieve information out of the DNS.\n\nFor example, to query a specific nameserver with ''drill'' for the TXT records of a domain:\n\n $ drill @''nameserver'' TXT ''domain''\n\nUnless a DNS server is specified, ''drill'' will use the nameservers defined in {{ic|/etc/resolv.conf}}.\n\n{{Tip|Some DNS servers ship with their own DNS lookup utilities. E.g.\n\n* {{Pkg|knot}} provides {{man|1|khost}} and {{man|1|kdig}}.\n* [[Unbound]] has {{man|1|unbound-host}}.\n* [[BIND]] has {{man|1|dig}}, {{man|1|host}}, {{man|1|nslookup}} and a bunch of {{ic|dnssec-}} tools.\n\n}}\n\n== Resolver performance ==\n\nThe Glibc resolver does not cache queries. To implement local caching, use [[systemd-resolved]] or set up a local caching [[#DNS servers|DNS server]] and use it as the name server by setting {{ic|127.0.0.1}} and {{ic|::1}} as the name servers in {{ic|/etc/resolv.conf}} or in {{ic|/etc/resolvconf.conf}} if using [[openresolv]].\n\n{{Tip|\n* The ''drill'' or ''dig'' [[#Lookup utilities|lookup utilities]] report the query time.\n* A router usually sets its own caching resolver as the network's DNS server thus providing DNS cache for the whole network. \n* If it takes too long to switch to the next DNS server you can try [[#Limit lookup time|decreasing the timeout]].}}\n\n== Privacy and security ==\n\nThe DNS protocol is unencrypted and does not account for confidentiality, integrity or authentication, so if you use an untrusted network or a malicious ISP, your DNS queries can be eavesdropped and the responses [[Wikipedia:Man-in-the-middle attack|manipulated]]. Furthermore, DNS servers can conduct [[Wikipedia:DNS hijacking|DNS hijacking]].\n\nYou need to trust your DNS server to treat your queries confidentially. DNS servers are provided by ISPs and [[#Third-party DNS services|third-parties]]. Alternatively you can run your own [[#DNS servers|recursive name server]], which however takes more effort. If you use a [[DHCP]] client in untrusted networks, be sure to set static name servers to avoid using and being subject to arbitrary DNS servers. To secure your communication with a remote DNS server you can use an encrypted protocol, like [[Wikipedia:DNS over TLS|DNS over TLS]] ([[RFC:7858|RFC 7858]]), [[Wikipedia:DNS over HTTPS|DNS over HTTPS]] ([[RFC:8484|RFC 8484]]), or [[Wikipedia:DNSCrypt|DNSCrypt]], provided that both the upstream server and your [[#DNS servers|resolver]] support the protocol. An alternative can be a dedicated software to encrypt and decrypt the communication, such as [[stunnel]]. To verify that responses are actually from [[Wikipedia:Authoritative name server|authoritative name servers]], you can validate [[DNSSEC]], provided that both the upstream server(s) and your [[#DNS servers|resolver]] support it.\n\n=== Application-level DNS ===\n\nBe aware that some client software, such as major web browsers[https://support.mozilla.org/en-US/kb/firefox-dns-over-https][https://www.chromium.org/developers/dns-over-https], are starting to implement DNS over HTTPS. While the encryption of queries may often be seen as a bonus, it also means the software sidetracks queries around the system resolver configuration.[https://blog.powerdns.com/2019/09/25/centralised-doh-is-bad-for-privacy-in-2019-and-beyond/]\n\n[[Firefox]] provides [https://support.mozilla.org/en-US/kb/firefox-dns-over-https#w_manually-enabling-and-disabling-dns-over-https configuration options] to enable or disable DNS over HTTPS and select a DNS server.\n\n[[Chromium]] will examine the user's system resolver and enable DNS over HTTPS if the system resolver addresses are known to also provide DNS over HTTPS. See [https://blog.chromium.org/2020/05/a-safer-and-more-private-browsing-DoH.html this blog post] for more information and how DNS over HTTPS can be disabled.\n\nMozilla [https://support.mozilla.org/en-US/kb/configuring-networks-disable-dns-over-https has proposed] universally disabling application-level DNS if the system resolver cannot resolve the domain {{ic|use-application-dns.net}}. Currently, this is only implemented in Firefox.\n\n=== Oblivious DNS ===\n\n[https://odns.cs.princeton.edu/ Oblivious DNS] is a system which addresses a number of DNS privacy concerns. See [https://blog.cloudflare.com/oblivious-dns/ Cloudflare's article] for more information.\n\n== Third-party DNS services ==\n\n{{Note|Before using a third-party DNS service, check its privacy policy for information on how user data is handled. User data has value and can be sold to other parties.}}\n\nThere are various [[Wikipedia:Public recursive name server#List of public DNS service operators|third-party DNS services]] available, some of which also have dedicated software:\n\n* {{App|[[cloudflared]]|A DNS client for Cloudflare DNS over HTTPS|https://developers.cloudflare.com/1.1.1.1/dns-over-https/cloudflared-proxy|{{Pkg|cloudflared}}}}\n* {{App|dingo|A DNS client for Google DNS over HTTPS|https://github.com/pforemski/dingo|{{AUR|dingo-git}}}}\n* {{App|opennic-up|Automates the renewal of the DNS servers with the most responsive OpenNIC servers|https://github.com/kewlfft/opennic-up|{{AUR|opennic-up}}}}\n* {{App|nextdns|A DNS-over-HTTPS CLI client for NextDNS|https://github.com/nextdns/nextdns|{{AUR|nextdns}}}}\n\nYou can use [https://github.com/cleanbrowsing/dnsperftest dnsperftest] to test the performance of the most popular DNS resolvers from your location. [https://www.dnsperf.com/#!dns-resolvers dnsperf.com] provides global benchmarks between providers.\n\n== DNS servers ==\n\nDNS servers can be [[Wikipedia:Authoritative name server|authoritative]] and [[Wikipedia:Name server#Recursive query|recursive]]. If they are neither, they are called '''stub resolvers''' and simply forward all queries to another recursive name server. Stub resolvers are typically used to introduce DNS caching on the local host or network. Note that the same can also be achieved with a fully-fledged name server. This section compares the available DNS servers, for a more detailed comparison, refer to [[Wikipedia:Comparison of DNS server software]].\n\n{{Expansion|Fill in the unknowns.}}\n\n{| class=\"wikitable sortable\" style=\"text-align:center\"\n! rowspan=2 | Name !! rowspan=2 | Package !! colspan=4 | Capabilities !! rowspan=2 | [[resolvconf]] !! colspan=4 | Supported protocols\n|-\n! [[Wikipedia:Authoritative name server|Authoritative]] !! [[Wikipedia:Name server#Recursive query|Recursive]] !! [[Wikipedia:Name server#Caching name server|Cache]] !!  [[Wikipedia:Domain Name System Security Extensions#The lookup procedure|Validates]]<br>[[DNSSEC]]  !! [[Wikipedia:Domain Name System|DNS]] !! [[Wikipedia:DNSCrypt|DNSCrypt]] !! [[Wikipedia:DNS over TLS|DNS<br>over TLS]] !! [[Wikipedia:DNS over HTTPS|DNS<br>over HTTPS]]\n|-\n! [[BIND]]\n| {{Pkg|bind}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{G|[[openresolv#Subscribers|Yes]]}} || {{Yes}} || {{No}} || {{Y|Server<sup>1</sup>}} || {{Y|Server}}\n|-\n! [[CoreDNS]]\n| {{AUR|coredns}} or {{AUR|coredns-bin}} || ? || ? || ? || ? || ? || ? || ? || {{Yes}} || ?\n|-\n! [https://maradns.samiam.org/deadwood/doc/Deadwood.html Deadwood] ([[Wikipedia:MaraDNS|MaraDNS]] recursor)\n| {{AUR|maradns}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}}\n|-\n! [[dnscrypt-proxy]]\n| {{Pkg|dnscrypt-proxy}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{Y|Server}} || {{Y|Resolver}} || {{No}} || {{Yes}}\n|-\n! [[dnsmasq]]\n| {{Pkg|dnsmasq}} || {{Y|Partial}}<sup>2</sup> || {{No}} || {{Yes}} || {{Yes}} || {{G|[[openresolv#Subscribers|Yes]]}} || {{Yes}} || {{No}} || {{No|https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2018q2/012131.html}} || {{No}}\n|-\n! [[Knot Resolver]]\n| {{Pkg|knot-resolver}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{No}} || {{Yes}} || {{Y|[https://knot-resolver.readthedocs.io/en/stable/daemon-bindings-net_tlssrv.html#dns-over-https-doh Server]}}\n|-\n! [[pdnsd]]\n| {{Pkg|pdnsd}} || {{Yes}} || {{Yes}} || {{G|Permanent}} || {{No}} || {{G|[[openresolv#Subscribers|Yes]]}} || {{Yes}} || {{No}} || {{No}} || {{No}}\n|-\n! [[Wikipedia:PowerDNS#Recursor|PowerDNS Recursor]]\n| {{Pkg|powerdns-recursor}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{G|[[openresolv#Subscribers|Yes]]}} || {{Yes}} || {{No}} || {{Y|[https://github.com/PowerDNS/pdns/pull/10338 Partial]}} || {{No}}\n|-\n! [[Rescached]]\n| {{AUR|rescached-git}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{Yes|https://github.com/shuLhan/rescached-go#integration-with-openresolv}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}}\n|-\n! [https://github.com/pymumu/smartdns SmartDNS]\n| {{Pkg|smartdns}} || {{No}} || {{No}} || {{Yes}} || {{No|https://github.com/pymumu/smartdns/issues/19}} || ? || {{Yes}} || {{No}} || {{Y|Resolver}} || {{Y|Resolver}}\n|-\n! [[Stubby]]\n| {{Pkg|stubby}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{Y|Server}} || {{No}} || {{Y|Resolver}} || {{No|https://github.com/getdnsapi/stubby/issues/278}}\n|-\n!style=\"white-space: nowrap;\"| [[systemd-resolved]]\n| {{Pkg|systemd}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{G|[[systemd-resolvconf|Yes]]}} || {{Y|Resolver and [https://github.com/systemd/systemd/issues/4621#issuecomment-260050033 limited server]}} || {{No}} || {{Y|Resolver}} || {{No|https://github.com/systemd/systemd/issues/8639}}\n|-\n! [[Unbound]]\n| {{Pkg|unbound}} || {{Y|Partial}} || {{Yes}} || {{Yes}}<sup>3</sup> || {{Yes}} || {{G|[[openresolv#Subscribers|Yes]]}} || {{Yes}} || {{Y|Server}} || {{Yes}} || {{Y|[https://github.com/NLnetLabs/unbound/issues/308 Server]}}\n|}\n\n# BIND can serve both DNS over TLS and DNS over HTTPS (see [https://downloads.isc.org/isc/bind9/9.18.0/doc/arm/html/reference.html#tls tls{}] and [https://downloads.isc.org/isc/bind9/9.18.0/doc/arm/html/reference.html#interfaces listen-on]), but cannot yet forward queries to a DNS over TLS/DNS over HTTPS upstream. The ''dig'' tool can make queries over DNS over TLS and DNS over HTTPS (using {{ic|+tls}} and {{ic|+https}} options), though [https://gitlab.isc.org/isc-projects/bind9/-/issues/3163 without any certificate checks].\n# From [[Wikipedia:Comparison of DNS server software#cite_note-masqauth-32|Wikipedia]]: dnsmasq has limited authoritative support, intended for internal network use rather than public Internet use.\n# The [[Redis]] backend can be used to provide a persistent cache for Unbound.\n\n=== Authoritative-only servers ===\n\n{| class=\"wikitable sortable\" style=\"text-align:center\"\n! Name !! Package !!  [[DNSSEC]] !! Geographic<br>balancing\n|-\n! gdnsd\n| {{Pkg|gdnsd}} || {{No}} || {{Yes}}\n|-\n! [[Wikipedia:Knot DNS|Knot DNS]]\n| {{Pkg|knot}} || {{Yes}} || {{Yes|https://www.knot-dns.cz/docs/2.7/singlehtml/#geoip-geography-based-responses}}\n|-\n! [[Wikipedia:MaraDNS|MaraDNS]]\n| {{AUR|maradns}} || {{No}} || ?\n|-\n! [[NSD]]\n| {{Pkg|nsd}} || {{No}} || {{No}}\n|-\n! [[PowerDNS]]\n| {{Pkg|powerdns}} || {{Yes}} || {{Yes}}\n|}\n\n=== Conditional forwarding ===\n\nIt is possible to use specific DNS resolvers when querying specific domain names. This is particularly useful when connecting to a VPN, so that queries to the VPN network are resolved by the VPN's DNS, while queries to the internet will still be resolved by your standard DNS resolver. It can also be used on local networks.\n\nTo implement it, you need to use a [[#DNS servers|local resolver]] because glibc does not support it.\n\nIn a dynamic environment (laptops and to some extents desktops), you need to configure your resolver based on the network(s) you are connected to. The best way to do that is to use [[openresolv]] because it supports [[openresolv#Subscribers|multiple subscribers]]. Some [[network manager]]s support it, either through openresolv, or by configuring the resolver directly. NetworkManager [[NetworkManager#DNS caching and conditional forwarding|supports conditional forwarding without openresolv]].\n\n{{Note|Although you could use other conditions for forwarding (for example, source IP address), \"conditional forwarding\" appears to be the name used for the \"domain queried\" condition.}}\n\n== See also ==\n\n* [https://www.tldp.org/LDP/nag2/x-087-2-resolv.html Linux Network Administrators Guide]\n* [https://www.debian.org/doc/manuals/debian-handbook/sect.hostname-name-service.en.html#sect.name-resolution Debian Handbook]\n* [[RFC:7706]] - Decreasing Access Time to Root Servers by Running One on Loopback\n* [http://linux-ip.net/pages/diagrams.html#domain-name-system-overview Domain name system overview] - Diagram about DNS\n* [[Alternative DNS services]]"
                    }
                ]
            },
            "4623": {
                "pageid": 4623,
                "ns": 0,
                "title": "Locale (\u7b80\u4f53\u4e2d\u6587)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Localization (\u7b80\u4f53\u4e2d\u6587)]]\n[[de:Locale]]\n[[en:Locale]]\n[[fr:Locale]]\n[[ja:\u30ed\u30b1\u30fc\u30eb]]\n[[pt:Locale]]\n[[ru:Locale]]\n{{TranslationStatus (\u7b80\u4f53\u4e2d\u6587)|Locale|2022-11-15|756132}}\n{{Related articles start (\u7b80\u4f53\u4e2d\u6587)}}\n{{Related|Environment variables}}\n{{Related|Localization}}\n{{Related articles end}}\n\n{{Pkg|glibc}} \u548c\u5e94\u7528\u7a0b\u5e8f\u3001\u51fd\u6570\u5e93\u5e93\u4f7f\u7528 [[w:zh:\u533a\u57df\u8bbe\u7f6e|\u533a\u57df\u8bbe\u7f6e]] \u663e\u793a\u672c\u5730\u5316\u7684\u6587\u5b57\u3001\u8d27\u5e01\u3001\u65f6\u95f4\u3001\u65e5\u671f\u3001\u7279\u6b8a\u5b57\u7b26\u7b49\u5305\u542b\u5730\u57df\u5c5e\u6027\u7684\u5185\u5bb9\u3002\n\n== \u751f\u6210\u533a\u57df\u8bbe\u7f6e ==\n\u533a\u57df\u8bbe\u7f6e\u7684\u540d\u79f0\u901a\u5e38\u7528 {{ic|[language][_TERRITORY][.CODESET][@modifier]}} \u7684\u683c\u5f0f\u8868\u793a\uff0c''language'' \u662f [[w:List_of_ISO_639-1_codes|ISO 639 \u8bed\u8a00\u4ee3\u7801]], ''territory'' \u662f [[w:ISO_3166-1#Current_codes|ISO 3166 \u56fd\u5bb6\u4ee3\u7801]], ''codeset'' \u662f [[w:Character_encoding|\u5b57\u7b26\u96c6]] \u6216 [[w:ISO/IEC_8859-1|ISO-8859-1]]\u3001[[w:UTF-8|UTF-8]] \u8fd9\u6837\u7684\u7f16\u7801\u65b9\u5f0f\u3002\u8bf7\u53c2\u8003 {{man|3|setlocale}}\u3002\n\n\u8981\u5217\u51fa\u6240\u6709\u542f\u7528\u7684\u533a\u57df\u8bbe\u7f6e\uff0c\u4f7f\u7528\uff1a\n\n $ locale -a\n\n\u542f\u7528\u4e00\u4e2a\u533a\u57df\u8bbe\u7f6e\u524d\uff0c\u9700\u8981\u5148\u751f\u6210\u5b83\u3002\u5728 {{ic|/etc/locale.gen}} \u4e2d\u53d6\u6d88\u5bf9\u5e94\u7684\u6ce8\u91ca\uff0c\u7136\u540e\u6267\u884c ''locale-gen''\u3002\u6ce8\u91ca\u6389\u67d0\u884c\uff0c\u5219\u4f1a\u79fb\u9664\u5bf9\u5e94\u7684\u533a\u57df\u8bbe\u7f6e\u3002\u8bf7\u542f\u7528\u6240\u6709\u7528\u6237\u90fd\u53ef\u80fd\u4f7f\u7528\u7684\u533a\u57df\u8bbe\u7f6e\u53ca\u76f8\u5173[[#\u53d8\u91cf]]\u3002\n\n\u4f8b\u5982\u5bf9\u4e8e\u4f7f\u7528\u7f8e\u5f0f\u82f1\u8bed\u548c\u4e2d\u56fd\u7b80\u4f53\u7684\u7528\u6237\uff1a\n\n{{hc|/etc/locale.gen|\n...\n#en_SG ISO-8859-1  \nen_US.UTF-8 UTF-8  \n#en_US ISO-8859-1  \n...\n#zh_CN.GBK GBK  \nzh_CN.UTF-8 UTF-8  \n#zh_CN GB2312  \n...\n}}\n\n\u7f16\u8f91\u5b8c\u6210\u4ee5\u540e,\u901a\u8fc7\u4e0b\u9762\u7684\u547d\u4ee4\u751f\u6210 Locale\uff1a\n\n # locale-gen\n\n{{\u6ce8\u610f|\n* \u6bcf\u6b21\u66f4\u65b0 {{Pkg|glibc}} \u65f6 {{ic|locale-gen}} \u4f1a\u81ea\u52a8\u8fd0\u884c\u3002[https://github.com/archlinux/svntogit-packages/blob/packages/glibc/trunk/glibc.install#L2]\n* \u5efa\u8bae\u4f18\u5148\u4f7f\u7528 {{ic|UTF-8}}\u3002[https://utf8everywhere.org/]}}\n\n== \u8bbe\u7f6e\u5f53\u524d\u533a\u57df ==\n\n\u60f3\u8981\u663e\u793a\u6b63\u5728\u4f7f\u7528\u7684 Locale \u548c\u76f8\u5173\u7684\u73af\u5883\u53d8\u91cf\uff0c\u8fd0\u884c\uff1a\n\n $ locale\n\n\u8981\u4f7f\u7528\u7684\u533a\u57df\u8bbe\u7f6e\uff08\u4ece\u524d\u9762\u751f\u6210\u7684\u533a\u57df\u8bbe\u7f6e\u4e2d\u9009\u62e9\uff09\u8bbe\u7f6e\u5728 {{ic|locale.conf}} \u6587\u4ef6\u4e2d\u3002\u6bcf\u4e00\u4e2a {{ic|locale.conf}} \u6587\u4ef6\u90fd\u5fc5\u987b\u5305\u542b\u4e00\u4e9b[[Environment variables (\u7b80\u4f53\u4e2d\u6587)|\u73af\u5883\u53d8\u91cf]]\u8d4b\u503c\u8bed\u53e5\uff0c\u5176\u683c\u5f0f\u4e0e ''locale'' \u547d\u4ee4\u8f93\u51fa\u7684\u683c\u5f0f\u76f8\u540c\u3002\n\n\u8981\u67e5\u770b\u5df2\u7ecf\u751f\u6210\u7684\u533a\u57df\u8bbe\u7f6e\uff1a\n\n $ localedef --list-archive\n\n\u6216\u8005\u4f7f\u7528 {{man|1|localectl}}\uff1a\n\n $ localectl list-locales\n\n=== \u7cfb\u7edf\u533a\u57df\u8bbe\u7f6e ===\n\n\u8981\u8bbe\u7f6e\u6574\u4e2a\u7cfb\u7edf\u4f7f\u7528\u7684\u533a\u57df\u8bbe\u7f6e\uff0c\u9700\u8981\u5728 {{ic|/etc/locale.conf}} \u4e2d\u5199\u5165 {{ic|LANG}} \u53d8\u91cf\uff0c\u4ee5\u4e0b\u7684 ''zh_CN.UTF-8'' \u5e94\u4e3a {{ic|/etc/locale.gen}} \u4e2d\u67d0\u4e2a\u672a\u6ce8\u91ca\u6761\u76ee\u7684'''\u7b2c\u4e00\u5217'''\uff1a\n\n{{hc|locale.conf|2=\nLANG=zh_CN.UTF-8\n}}\n\n\u6216\u8005\u4f7f\u7528\uff1a\n # localectl set-locale LANG=zh_CN.UTF-8\n\n\u53c2\u9605[[#\u53d8\u91cf]]\u548c {{man|1|localectl}} \u83b7\u5f97\u66f4\u591a\u7ec6\u8282\u3002\n\t\n=== \u5728\u7528\u6237\u4f1a\u8bdd\u4e2d\u8986\u76d6\u7cfb\u7edf\u533a\u57df\u8bbe\u7f6e ===\n\n\u7cfb\u7edf\u4f7f\u7528\u7684\u533a\u57df\u8bbe\u7f6e\u53ef\u4ee5\u901a\u8fc7\u7528\u6237\u7f16\u8f91\u81ea\u5df1\u7684 {{ic|~/$XDG_CONFIG_HOME/locale.conf}} (\u901a\u5e38\u4e3a {{ic|~/.config/locale.conf}}) \u6765\u8986\u76d6\u3002\n\n\u8fd9\u4e9b {{ic|locale.conf}} \u6587\u4ef6\u7684\u4f18\u5148\u7ea7\u5b9a\u4e49\u5728 {{ic|/etc/profile.d/locale.sh}} \u4e2d\u3002\n\n{{\u63d0\u793a|\n* \u8bbe\u7f6e\u7528\u6237\u7ea7\u533a\u57df\u8bbe\u7f6e \uff0c\u80fd\u8ba9 {{ic|/var/log/}} \u4e2d\u7684\u65e5\u5fd7\u4ee5\u82f1\u8bed\u8f93\u51fa\u800c\u5728\u7528\u6237\u73af\u5883\u4e2d\u4f7f\u7528\u6240\u9009\u8bed\u8a00\u3002\n* \u5efa\u7acb {{ic|/etc/skel/.config/locale.conf}} \u6587\u4ef6\uff0c\u53ef\u4ee5\u8ba9\u6240\u6709\u901a\u8fc7 ''useradd'' \u547d\u4ee4\u548c {{ic|-m}} \u9009\u9879\u521b\u5efa\u7684\u65b0\u7528\u6237\u81ea\u52a8\u62e5\u6709\u4e00\u4efd\u76f8\u5e94\u7684 {{ic|~/.config/locale.conf}}\u3002}}\n\n=== \u7acb\u5373\u542f\u7528\u65b0\u8bbe\u7f6e ===\n\n{{ic|locale.conf}} \u7684\u53d8\u66f4\u4f1a\u5728\u4e0b\u6b21\u767b\u5f55\u65f6\u751f\u6548\uff0c\u8981\u7acb\u523b\u5e94\u7528\u65b0\u7684\u8bbe\u7f6e\u7684\u8bdd\uff0c\u53ef\u4ee5\u8fd0\u884c\uff1a\n\n $ unset LANG\n $ source /etc/profile.d/locale.sh\n\n{{\u6ce8\u610f|{{ic|LANG}} \u53d8\u91cf\u5fc5\u987b\u5148\u88ab {{ic|unset}}\uff0c\u5426\u5219 {{ic|locale.sh}} \u4e0d\u4f1a\u4ece {{ic|locale.conf}} \u4e2d\u66f4\u65b0\u53d8\u91cf\u3002\u53ea\u6709\u65b0\u589e\u7684\u6216\u88ab\u4fee\u6539\u7684\u547d\u4ee4\u4f1a\u88ab\u81ea\u52a8\u66f4\u65b0\uff0c\u4ece {{ic|locale.conf}} \u88ab\u79fb\u9664\u7684\u53d8\u91cf\u5728\u6ce8\u9500\u524d\u4f9d\u7136\u5b58\u5728\u3002}}\n\n=== \u5176\u5b83\u7528\u4f8b ===\n\n\u548c\u533a\u57df\u8bbe\u7f6e\u76f8\u5173\u7684\u53d8\u91cf\u4e5f\u80fd\u50cf\u5176\u4ed6\u7684[[Environment variables (\u7b80\u4f53\u4e2d\u6587)|\u73af\u5883\u53d8\u91cf]]\u4e00\u6837\u4f20\u9012\u7ed9\u5176\u5b83\u7a0b\u5e8f\u3002\n\n\u4f8b\u5982\u5728\u5f00\u53d1\u548c\u6d4b\u8bd5\u67d0\u4e2a\u7a0b\u5e8f\u65f6,\u53ef\u4ee5\u8fd9\u6837\u8fd0\u884c\uff1a\n\n $ LANG=C ./my_application.sh\n\n\u7c7b\u4f3c\u7684\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\u8ba9\u5f53\u524d shell \u4e2d\u8fd0\u884c\u7684\u7a0b\u5e8f\u4f7f\u7528\u7279\u5b9a\u7684\u533a\u57df\u8bbe\u7f6e(\u4f8b\u5982\u5b89\u88c5\u7cfb\u7edf\u65f6)\uff1a\n\n $ export LANG=C\n\n== \u53d8\u91cf ==\n\n{{ic|locale.conf}} \u6587\u4ef6\u652f\u6301\u4ee5\u4e0b\u73af\u5883\u53d8\u91cf\u3002\n\n* [[#LANG\uff1a\u9ed8\u8ba4\u7684\u533a\u57df\u8bbe\u7f6e|LANG]]\n* [[#LANGUAGE\uff1a\u540e\u5907\u533a\u57df\u8bbe\u7f6e|LANGUAGE]]\n* {{ic|LC_ADDRESS}}\n* [[#LC_COLLATE\uff1a\u6392\u5e8f\u683c\u5f0f|LC_COLLATE]]\n* {{ic|LC_CTYPE}}\n* {{ic|LC_IDENTIFICATION}}\n* {{ic|LC_MEASUREMENT}}\n* {{ic|LC_MESSAGES}}\n* {{ic|LC_MONETARY}}\n* {{ic|LC_NAME}}\n* {{ic|LC_NUMERIC}}\n* {{ic|LC_PAPER}}\n* {{ic|LC_TELEPHONE}}\n* [[#LC_TIME\uff1a\u65f6\u95f4\u548c\u65e5\u671f\u683c\u5f0f|LC_TIME]]\n\n{{man|7|locale}} \u5305\u542b\u4e86\u5b8c\u6574 {{ic|LC_*}} \u5217\u8868\uff0c{{man|5|locale}} \u5305\u542b\u4e86\u8be6\u7ec6\u5b9a\u4e49\u3002\n\n{{Note|\u7a0b\u5e8f\u5728\u67e5\u627e\u672c\u5730\u5316\u76f8\u5173\u7684\u53d8\u91cf\u65f6\u9075\u5b88[https://www.gnu.org/software/gettext/manual/gettext.html#Locale-Environment-Variables \u6b64\u4f18\u5148\u7ea7\u987a\u5e8f]}}\u3002\n\n=== LANG\uff1a\u9ed8\u8ba4\u7684\u533a\u57df\u8bbe\u7f6e ===\n\n\u8fd9\u4e2a\u53d8\u91cf\u7684\u503c\u4f1a\u8986\u76d6\u6389\u6240\u6709\u672a\u8bbe\u7f6e\u7684 {{ic|LC_*}} \u53d8\u91cf\u7684\u503c\u3002\n\n{{\u63d0\u793a|\u5047\u8bbe\u60a8\u662f\u897f\u73ed\u7259\u7684\u82f1\u8bed\u4f7f\u7528\u8005\uff0c\u5e76\u4e14\u60a8\u5e0c\u671b\u7a0b\u5e8f\u6839\u636e\u897f\u73ed\u7259\u7684\u60ef\u4f8b\u5904\u7406\u6570\u5b57\u548c\u65e5\u671f\uff0c\u4ec5\u6d88\u606f\u4e3a\u82f1\u8bed\u3002\u60a8\u53ef\u4ee5\u5c06 {{ic|LANG}} \u8bbe\u7f6e\u4e3a {{ic|es_ES.UTF-8}}\uff0c\u5e76\u5c06 {{ic|LC_MESSAGES}}\uff08\u7528\u4e8e\u6d88\u606f\u7ffb\u8bd1\u7684\u7528\u6237\u754c\u9762\uff09\u8bbe\u7f6e\u4e3a {{ic|en_US.UTF -8}}\u3002}}\n\n=== LANGUAGE\uff1a\u540e\u5907\u533a\u57df\u8bbe\u7f6e ===\n\n\u4f7f\u7528 gettext \u7ffb\u8bd1\u7684\u8f6f\u4ef6\u4f1a\u6309\u7167 {{Ic|LANGUAGE}} \u9009\u62e9\u4f7f\u7528\u7684\u8bed\u8a00\u3002\u7528\u6237\u901a\u8fc7\u8fd9\u4e2a\u53d8\u91cf\u6307\u5b9a\u4e00\u4e2a\u533a\u57df\u8bbe\u7f6e[https://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable \u5217\u8868]\uff0c\u5982\u679c\u524d\u9762\u7684\u533a\u57df\u8bbe\u7f6e\u7f3a\u5c11\u7ffb\u8bd1\uff0c\u4f1a\u81ea\u52a8\u4f7f\u7528\u540e\u9762\u7684\u533a\u57df\u8bbe\u7f6e\u663e\u793a\u754c\u9762\u3002\u4f8b\u5982\u4e00\u4e2a\u6fb3\u5927\u5229\u4e9a\u7528\u6237\u53ef\u80fd\u66f4\u5e0c\u671b\u5728\u6ca1\u6709\u5408\u9002\u7684\u6fb3\u5927\u5229\u4e9a\u82f1\u8bed\u7ffb\u8bd1\u65f6\u56de\u9000\u5230\u82f1\u5f0f\u82f1\u8bed\u800c\u4e0d\u662f\u7f8e\u5f0f\u82f1\u8bed\uff1a\n\n{{hc|locale.conf|2=\nLANG=en_AU.UTF-8\nLANGUAGE=en_AU:en_GB:en\n}}\n\n{{Note|1=\u5f88\u591a\u8f6f\u4ef6\u5e76\u672a\u5c06\u5176\u82f1\u6587 locale \u8bbe\u7f6e\u4e3a {{ic|en}} \u6216 {{ic|en_US}}\uff0c\u800c\u662f\u4f7f\u7528\u9ed8\u8ba4 locale {{ic|C}}\u3002\u5982\u679c\u5728 {{ic|LANGUAGE}} \u4e2d\u5c06\u975e\u82f1\u6587  locale \u8bbe\u7f6e\u5230 English \u4e4b\u540e\uff0c\u4f8b\u5982 {{ic|1=LANGUAGE=en_US:en:es_ES}}\uff0c\u90a3\u4e48\u5373\u4f7f\u82f1\u8bed\u5b57\u7b26\u5b58\u5728\uff0c\u5e94\u7528\u7a0b\u5e8f\u53ef\u80fd\u4f1a\u9009\u62e9\u4f7f\u7528\u540e\u5907 locale. [https://bugs.kde.org/show_bug.cgi?id=192019] \u89e3\u51b3\u65b9\u6cd5\u662f\u5f3a\u5236\u5728\u82f1\u8bed locale \u540e\u9762\u8bbe\u7f6e {{ic|C}}\uff0c\u4f8b\u5982  {{ic|1=LANGUAGE=en_US:en:C:es_ES}}.}}\n\n=== LC_TIME\uff1a\u65f6\u95f4\u548c\u65e5\u671f\u683c\u5f0f ===\n\n\u5982\u679c {{ic|LC_TIME}} \u8bbe\u7f6e\u6210 {{ic|en_US.UTF-8}}\uff0c\u65e5\u671f\u7684\u683c\u5f0f\u4e3a \"MM/DD/YYYY\"\u3002\u8981\u4f7f\u7528 ISO 8601 \u6807\u51c6\u7684\u65e5\u671f\u683c\u5f0f( \"YYYY-MM-DD\" ) ,\u4f7f\u7528\uff1a\n\n{{hc|locale.conf|2=\nLC_TIME=en_DK.UTF-8\n}}\n\n{{pkg|glibc}} 2.29 \u4fee\u590d\u4e86\u4e00\u4e2a\u9519\u8bef\uff0c{{ic|en_US.UTF-8}} \u5f00\u59cb\u5982\u9884\u671f\u822c\u663e\u793a 12 \u5c0f\u65f6\u683c\u5f0f\u7684\u65f6\u95f4\u3002\u5982\u679c\u8981\u4f7f\u7528 24 \u5c0f\u65f6\u5236\uff0c\u8bf7\u4f7f\u7528 {{ic|1=LC_TIME=C.UTF-8}}\u3002\n\n{{\u6ce8\u610f|1=\u4f7f\u7528\u6b64\u53d8\u91cf\u6765\u683c\u5f0f\u5316\u65e5\u671f\u4e0d\u662f\u5bf9\u7a0b\u5e8f\u7684\u5f3a\u5236\u8981\u6c42\u3002\u4f8b\u5982\uff0c{{man|1|date}} \u4f7f\u7528\u5176\u81ea\u5df1\u7684\u53c2\u6570\u6765\u683c\u5f0f\u5316\u65f6\u95f4\uff0c[[Firefox]] \u5728\u7248\u672c 57 \u5230 84 \u4e4b\u95f4\u4e0d\u652f\u6301 {{ic|LC_TIME}}\uff08[https://bugzilla.mozilla.org/show_bug.cgi?id=1429578 Bug 1429578]\uff09\u3002}}\n\n=== LC_COLLATE\uff1a\u6392\u5e8f\u683c\u5f0f ===\n\n\u8fd9\u4e2a\u53d8\u91cf\u7684\u503c\u51b3\u5b9a\u6392\u5e8f\u548c\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u683c\u5f0f\u987a\u5e8f\u3002\n\n\u4f8b\u5982\u5c06\u5b83\u8bbe\u7f6e\u4e3a {{ic|C}} \u53ef\u4ee5\u8ba9 ''ls'' \u547d\u4ee4\u9996\u5148\u5217\u51fa\u70b9\u5f00\u5934\u7684\u6587\u4ef6\uff0c\u7136\u540e\u662f\u5927\u5199\u5b57\u6bcd\u5f00\u5934\u7684\u6587\u4ef6\u548c\u5c0f\u5199\u5b57\u6bcd\u5f00\u5934\u7684\u6587\u4ef6\uff1a\n\n{{hc|locale.conf|2=\nLC_COLLATE=C\n}}\n\n\u53e6\u89c1 [https://superuser.com/a/448294]\u3002\n\n\u4e3a\u4e86\u907f\u514d\u6f5c\u5728\u7684\u95ee\u9898\uff0cArch Linux \u66fe\u7ecf\u5728 {{ic|/etc/profile}} \u4e2d\u8bbe\u7f6e {{ic|1=LC_COLLATE=C}}\uff0c\u8fd9\u4e2a\u65b9\u6cd5\u5df2\u7ecf\u8fc7\u65f6\u4e86\u3002\n\n=== LC_ALL\uff1a\u6d4b\u8bd5\u548c\u6392\u9664\u95ee\u9898 ===\n\n\u8fd9\u4e2a\u53d8\u91cf\u7684\u503c\u4f1a\u8986\u76d6\u6389 {{ic|LANG}} \u548c\u6240\u6709 {{ic|LC_*}} \u53d8\u91cf\u7684\u503c\uff0c\u65e0\u8bba\u5b83\u4eec\u662f\u5426\u8bbe\u7f6e\u3002 \u5982\u679c {{ic|LC_ALL}} \u8bbe\u7f6e\u4e3a{{ic|C}}, \u6b64\u53d8\u91cf\u5c06\u8986\u76d6  {{ic|LANGUAGE}}.\n\n\u53ea\u6709 {{ic|LC_ALL}} '''\u4e0d\u80fd'''\u51fa\u73b0\u5728 {{ic|locale.conf}} \u6587\u4ef6\u4e2d\uff1a\u5b83\u53ea\u80fd\u4e3a\u4e86\u6d4b\u8bd5\u548c\u6392\u9664\u95ee\u9898\u800c\u8bbe\u7f6e\uff0c\u4f8b\u5982\u5728 {{ic|/etc/profile}} \u4e2d\u3002\n\n{{Note|1={{ic|1=LC_ALL=C.UTF-8}} \u4e0e {{ic|1=LC_ALL=C}} \u4e0d\u540c\uff0c\u4e0d\u4f1a\u8986\u76d6 {{ic|LANGUAGE}}. \u8bf7\u53c2\u8003 [https://sourceware.org/bugzilla/show_bug.cgi?id=16621 glibc bug 16621] \u548c [https://savannah.gnu.org/bugs/?62815 gettext bug 62815].}}\n\n== \u7591\u96be\u89e3\u7b54 ==\n\n=== \u6211\u7684\u7ec8\u7aef\u4e0d\u652f\u6301 UTF-8 ===\n\n\u8fd9\u91cc\u5217\u51fa\u4e86\u4e00\u4e9b\uff08\u4e0d\u662f\u5168\u90e8\uff09\u652f\u6301 UTF-8 \u7684\u7ec8\u7aef\uff1a\n\n* gnustep-terminal\n* konsole\n* [[mlterm]]\n* [[rxvt-unicode]]\n* [[st]]\n* [[List of applications/Utilities#VTE-based|\u57fa\u4e8e VTE \u7684\u7ec8\u7aef]]\n* [[xterm]] - \u542f\u52a8\u65f6\u4f7f\u7528\u53c2\u6570 {{ic|-u8}}\uff0c\u6216\u8005\u914d\u7f6e\u8d44\u6e90 {{ic|xterm*utf8: 2}}\u3002\n\n==== Gnome-terminal / rxvt-unicode \u4e0d\u652f\u6301 UTF-8 ====\n\n\u4f60\u5fc5\u987b\u5728 UTF-8 \u7684\u533a\u57df\u8bbe\u7f6e\u4e0b\u8fd0\u884c\u5b83\u4eec\u624d\u4f1a\u6709\u4f5c\u7528\u3002\u6309\u7167\u4e0a\u9762\u7684\u65b9\u6cd5\u542f\u7528 {{ic|en_US.UTF-8}}\uff08\u6216\u8005\u5176\u5b83\u4f7f\u7528 UTF-8 \u7684\u533a\u57df\u8bbe\u7f6e\uff09\u5e76\u5c06\u5b83\u8bbe\u7f6e\u6210\u9ed8\u8ba4\u533a\u57df\u8bbe\u7f6e\u540e\u91cd\u542f\u7cfb\u7edf\u3002\n\n=== \u6211\u7684\u7cfb\u7edf\u7684\u8bed\u8a00\u8fd8\u662f\u4e0d\u5bf9 ===\n\n\u53ef\u80fd\u5176\u5b83\u6587\u4ef6\u8bbe\u7f6e\u4e86\u672c\u8be5\u7531 {{ic|locale.conf}}\uff0c\u8be6\u89c1 [[Environment variables (\u7b80\u4f53\u4e2d\u6587)#\u5b9a\u4e49\u53d8\u91cf|\u5b9a\u4e49\u73af\u5883\u53d8\u91cf]]\u3002\n\n\u5982\u679c\u4f7f\u7528\u4e86\u684c\u9762\u73af\u5883\uff0c\u53ef\u80fd\u662f\u88ab\u684c\u9762\u73af\u5883\u4fee\u6539\u3002\u4f8b\u5982 [[GNOME]] \u7684\u8bed\u8a00\u8bbe\u7f6e\u4f1a\u8986\u76d6 {{ic|locale.conf}} \u4e2d\u7684\u8bbe\u7f6e\u3002\n\n[[KDE]] Plasma \u4e5f\u901a\u8fc7\u7cfb\u7edf\u8bbe\u7f6e\u4fee\u6539\u754c\u9762\u7684\u8bed\u8a00\uff0c\u5982\u679c\u6309\u672c\u6587\u4fee\u6539\u540e\u8fd8\u662f\u539f\u6765\u7684\u533a\u57df\u8bbe\u7f6e\uff0c\u8bf7[https://bbs.archlinux.org/viewtopic.php?pid=1435219#p1435219 \u5220\u9664] {{ic|~/.config/plasma-localerc}} (\u4e4b\u524d\u662f\uff1a{{ic|~/.config/plasma-locale-settings.sh}})\u3002\n\n\u5982\u679c\u60a8\u6b63\u5728\u7ed3\u5408 {{pkg|accountsservice}} \u4f7f\u7528\u663e\u793a\u7ba1\u7406\u5668\uff0c\u8bf7\u9075\u5faa [[Display manager (\u7b80\u4f53\u4e2d\u6587)#\u4e3a\u7528\u6237\u4f1a\u8bdd\u8bbe\u7f6e\u8bed\u8a00]] \u4e2d\u7684\u8bf4\u660e\u3002\n\n[[LightDM]] \u5c06\u81ea\u52a8\u4f7f\u7528 {{pkg|accountsservice}} \u6765\u8bbe\u914d\u7f6e\u7528\u6237\u7684\u533a\u57df\u8bbe\u7f6e\uff08\u5982\u679c\u5df2\u5b89\u88c5\uff09\u3002\u5426\u5219\uff0cLightDM \u5c06\u7528\u6237\u4f1a\u8bdd\u914d\u7f6e\u5b58\u50a8\u5728 {{ic |~/.dmrc}} \u4e2d\u3002\u4e5f\u53ef\u80fd\u4ece\u90a3\u91cc\u68c0\u7d22\u5230\u610f\u6599\u5916\u7684\u7684\u533a\u57df\u8bbe\u7f6e\u3002\n\n=== \u89e3\u538b\u6587\u4ef6\u7684\u7f16\u7801\u4e0d\u6b63\u786e ===\n\t\n\u8001\u7684 Windows \u7248\u672c (XP, Vista \u548c 7) \u4f7f\u7528\u4e0d\u540c\u7684\u7f16\u7801\u65b9\u5f0f\u538b\u7f29\u6587\u4ef6\u3002\u8981\u89e3\u538b\u8fd9\u4e9b\u6587\u4ef6\uff0c\u8bf7\u4f7f\u7528\uff1a\n\n $ unzip -O CP936 ''file.zip''\n \n== \u53e6\u89c1 ==\n\n* [[Gentoo:Localization/Guide]]\n* [http://wikigentoo.ksiezyc.pl/Locales.htm Supposedly 2008, or earlier, Gentoo wiki article]\n* [https://icu4c-demos.unicode.org/icu-bin/collation.html ICU's interactive collation testing]\n* [http://www.openi18n.org/ Free Standards Group Open Internationalisation Initiative]\n* [https://pubs.opengroup.org/onlinepubs/007908799/xbd/locale.html ''The Single UNIX Specification'' definition of Locale] by The Open Group\n* [https://help.ubuntu.com/community/EnvironmentVariables#Locale_setting_variables Locale environment variables]"
                    }
                ]
            },
            "4972": {
                "pageid": 4972,
                "ns": 0,
                "title": "KDE (Italiano)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:KDE (Italiano)]]\n[[de:KDE]]\n[[en:KDE]]\n[[es:KDE]]\n[[fa:KDE]]\n[[ja:KDE]]\n[[pt:KDE]]\n[[ru:KDE]]\n[[zh-hans:KDE]]\n{{TranslationStatus|KDE|2022-09-16|731817}}\n{{Related articles start (Italiano)}}\n{{Related|Desktop environment (Italiano)}}\n{{Related|Display manager}}\n{{Related|Window manager}}\n{{Related|Qt}}\n{{Related|SDDM}}\n{{Related|Dolphin}}\n{{Related|KDE Wallet}}\n{{Related|KDevelop}}\n{{Related|Trinity}}\n{{Related|Uniform look for Qt and GTK applications}}\n{{Related|Official repositories#kde-unstable}}\n{{Related articles end}}\n\nKDE \u00e8 un progetto software attualmente composto da un [[desktop environment (Italiano)|ambiente desktop]], meglio conosciuto con il nome di Plasma, una collezione di librerie e framework (KDE Frameworks) e svariate applicazioni (KDE Applications). A livello upstream, KDE possiede una [https://userbase.kde.org/ UserBase wiki] ottimamente curata, dove \u00e8 possibile trovare informazioni dettagliate sulla maggior parte delle applicazioni KDE.\n\n== Installazione ==\n\n=== Plasma ===\n\nPrima di installare Plasma, assicurarsi che sul proprio sistema sia presente un'installazione funzionante di [[Xorg]].\n\n[[Installare]] il meta-pacchetto {{Pkg|plasma-meta}} o il gruppo {{Grp|plasma}}. Per comprendere le differenze tra {{Pkg|plasma-meta}} e {{Grp|plasma}} fare riferimento alla pagina [[Package group]]. In alternativa, per un'installazione di Plasma pi\u00f9 minimale, installare il pacchetto {{Pkg|plasma-desktop}}.\n\nPer abilitare il supporto a [[Wayland]] all'interno di Plasma, [[installare]] anche il pacchetto {{Pkg|plasma-wayland-session}}. Gli utenti [[NVIDIA]] dovranno altres\u00ec installare il pacchetto {{Pkg|egl-wayland}} e, se la sessione non si avvia con il driver proprietario {{Pkg|nvidia}}, abilitare il [[NVIDIA#DRM kernel mode setting|DRM kernel mode setting]]. Qualora questa soluzione non dovesse funzionare, leggere le istruzioni riportate nella pagina [https://community.kde.org/Plasma/Wayland/wiki Nvidia KDE]{{Dead link (Italiano)|2022|09|19|status=404}}.\n\n=== Applicazioni KDE ===\n\nPer l'intero set di applicazioni KDE, installare il gruppo {{Grp|kde-applications}} o il meta-pacchetto {{Pkg|kde-applications-meta}}. Se si desidera solo una determinata categoria di applicazioni KDE, come giochi o didattica, installare la rispettiva dipendenza del pacchetto {{Pkg|kde-applications-meta}}. \u00c8 importante notare che questa operazione non installer\u00e0 alcuna versione di Plasma, ma esclusivamente le applicazioni.\n\n=== Rilasci instabili ===\n\nVedere [[Official repositories#kde-unstable]] per i rilasci beta.\n\n== Avvio di Plasma ==\n\n{{Nota|pur essendo possibile lanciare Plasma in [[Wayland]], in questo caso alcune funzioni risulteranno mancanti e potranno verificarsi determinate problematiche note. Vedere [https://community.kde.org/Plasma/Wayland_Showstoppers Wayland Showstoppers] per un elenco dei problemi e [https://phabricator.kde.org/project/board/99/ Plasma on Wayland workboard] per informazioni sullo stato di sviluppo attuale. Utilizzare [[Xorg]] per un'esperienza il pi\u00f9 possibile completa e stabile.}}\n\n\u00c8 possibile avviare Plasma sia utilizzando un [[display manager]] che dalla console.\n\n=== Utilizzando un display manager ===\n\n{{Suggerimento|il [[display manager]] di preferenza \u00e8 [[SDDM]].}}\n\n* Selezionare ''Plasma (X11)'' per lanciare una nuova sessione in [[Xorg]].\n* Selezionare ''Plasma (Wayland)'' per lanciare una nuova sessione in [[Wayland]].\n\n=== Dalla console ===\n\n* Per avviare Plasma con [[xinit|xinit/startx]], aggiungere {{ic|1=export DESKTOP_SESSION=plasma}} e {{ic|exec startplasma-x11}} al proprio file {{ic|.xinitrc}}. Qualora si desideri avviare Xorg al login, vedere [[Start X at login]].\n* Per avviare una sessione di Plasma in Wayland da una console, eseguire {{ic|1=startplasma-wayland}}[https://community.kde.org/KWin/Wayland#Start_a_Plasma_session_on_Wayland]. Non dovrebbe essere necessario avviare manualmente una sessione di dbus mediante il comando {{ic|1=dbus-run-session}}[https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/128].\n\n== Configurazione ==\n\nLa maggior parte delle impostazioni relative alle applicazioni KDE sono contenute nella cartella {{ic|~/.config/}}. Tuttavia la configurazione di KDE avviene principalmente attraverso l'applicazione '''Impostazioni di sistema'''. Questa applicazione pu\u00f2 essere avviata da un terminale eseguendo {{ic|systemsettings}}.\n\n=== Personalizzazione ===\n\n==== Desktop Plasma ====\n\n===== Temi =====\n\nI [https://store.kde.org/browse?cat=104/ temi di Plasma] definiscono l'aspetto dei pannelli e dei widget di Plasma. Per facilitare l'installazione a livello di sistema, alcuni temi sono disponibili sia nei repository ufficiali che nell'[https://aur.archlinux.org/packages?K=plasma+theme AUR].\n\nI temi di plasma possono inoltre essere installati tramite la funzione ''Impostazioni di sistema > Aspetto > Tema globale > Scarica nuovi temi globali...''.\n\nIl [https://store.kde.org/ KDE Store] offre altri elementi per la personalizzazione di Plasma, quali temi [[SDDM]] e schermate iniziali.\n\n====== Aspetto delle applicazioni GTK ======\n\n{{Suggerimento|Per armonizzare i temi Qt e GTK, vedere [[Uniform look for Qt and GTK applications]].}}\n\nPer ottimizzare l'aspetto delle applicazioni GTK, il tema raccomandato \u00e8 {{Pkg|breeze-gtk}}, un tema GTK concepito per simulare il look del tema Brezza di Plasma.\nInstallare {{Pkg|kde-gtk-config}} (parte di {{grp|plasma}} group) e selezionare {{ic|Brezza}} come tema GTK in ''Impostazioni di sistema > Aspetto > Stile delle applicazioni > Configura lo stile delle applicazioni GNOME/GTK...''.\n\n{{Out of date|il servizio Plasma GTKd in esecuzione in background sovrascrive le impostazioni GTK all'avvio di Plasma.}}\n\nIn alcuni temi, il testo dei tooltip nelle applicazioni GTK \u00e8 di colore bianco su sfondo bianco, e risulta quindi di difficile lettura. Per impostare i colori nelle applicazioni GTK2, modificare la rispettiva sezione all'interno del file {{ic|.gtkrc-2.0}}. Per le applicazioni GTK3 \u00e8 necessario modificare due file: {{ic|gtk.css}} e {{ic|settings.ini}}.\n\nAlcuni programmi GTK2 quali {{AUR|vuescan-bin}} continueranno ad avere un'usabilit\u00e0 limitata a causa delle caselle di spunta invisibili all'interno di una sessione di Plasma con la skin Breeze o Adwaita. Per ovviare a questo problema, installare ad es. la skin Numix-Frost-Light mediante il pacchetto {{AUR|numix-frost-themes}} e selezionarla in ''Impostazioni di sistema > Aspetto > Stile delle applicazioni > Configura lo stile delle applicazioni GNOME/GTK... > Tema GTK''. Il look del tema Numix-Frost-Light \u00e8 simile a quello di Brezza.\n\n===== Avatar =====\n\nSia Plasma che [[SDDM]] utilizzeranno le immagini presenti nella cartella {{ic|/var/lib/AccountsService/icons/}} come avatar per gli utenti. Per la configurazione mediante interfaccia grafica, accedere all'applicazione ''Impostazioni di sistema > Utenti'', che potrebbe essere necessario prima [[installare]] (vedere il pacchetto {{Pkg|plasma-desktop}}). Per ripristinare l'avatar di default, rimuovere il file corrispondente al nome del proprio utente.\n\n===== Widget =====\n\nI plasmoidi sono widget per la shell del desktop Plasma concepiti per estendere la funzionalit\u00e0 del desktop.\n\nLa soluzione pi\u00f9 facile per installare gli script dei plasmoidi \u00e8 facendo clic con il tasto destro su un pannello o sul desktop e selezionando ''Aggiungi oggetti > Ottieni nuovi oggetti... > Scarica nuovi oggetti di Plasma''. Verr\u00e0 visualizzata una pratica interfaccia per https://store.kde.org/ che permette di installare, disinstallare o aggiornare script di plasmoidi di terze parti letteralmente con un unico clic.\n\nNell'[https://aur.archlinux.org/packages?K=plasmoid AUR] sono disponibili i file binari di molti plasmoidi.\n\n===== Applet audio nel vassoio di sistema =====\n\n[[Installare]] {{Pkg|plasma-pa}} o {{Pkg|kmix}} (avviare Kmix dal lanciatore di applicazioni). {{Pkg|plasma-pa}} viene ora installato di default con {{Grp|plasma}}, e non \u00e8 richiesta alcuna ulteriore configurazione.\n\n{{Nota|1=per regolare [https://bugs.kde.org/show_bug.cgi?id=313579#c28 l'ampiezza degli intervalli per l'aumento/la diminuzione del volume], aggiungere ad es. {{ic|1=VolumePercentageStep=1}} nella sezione {{ic|[Global]}} del file {{ic|~/.config/kmixrc}}.}}\n\n===== Disabilitare l'ombra del pannello =====\n\nQuando il pannello di Plasma risulta sovrapposto ad altre finestre, la sua ombra viene proiettata su queste ultime. [https://bbs.archlinux.org/viewtopic.php?pid=1228394#p1228394] Per disabilitare questo comportamento senza intervenire sulle altre ombre, [[installare]] {{Pkg|xorg-xprop}} ed eseguire:\n\n $ xprop -remove _KDE_NET_WM_SHADOW\n\ndopodich\u00e9 selezionare il pannello con il cursore a forma di segno '+'. [https://forum.kde.org/viewtopic.php?f=285&t=121592] Per automatizzare questa operazione, installare {{Pkg|xorg-xwininfo}} e creare il seguente script:\n\n{{hc|/usr/local/bin/kde-no-shadow|<nowiki>\n#!/bin/bash\nfor WID in $(xwininfo -root -tree | sed '/\"Plasma\": (\"plasmashell\" \"plasmashell\")/!d; s/^  *\\([^ ]*\\) .*/\\1/g'); do\n   xprop -id $WID -remove _KDE_NET_WM_SHADOW\ndone\n</nowiki>}}\n\nRendere [[Help:Reading (Italiano)#Rendere eseguibile|eseguibile]] lo script.\n\n\u00c8 possibile eseguire lo script al login con la funzione ''Aggiungi script di accesso'' in ''Avvio automatico'':\n\n $ kcmshell5 autostart\n\n===== Scalatura del display / display High DPI =====\n\nVedere [[HiDPI#KDE Plasma]].\n\n==== Decorazioni delle finestre ====\n\n\u00c8 possibile modificare le [https://store.kde.org/browse/cat/114/ decorazioni delle finestre] in ''Impostazioni di sistema > Aspetto > Decorazioni delle finestre''.\n\nQui \u00e8 inoltre possibile scaricare e installare direttamente altri temi con un solo clic. Alcuni temi sono disponibili anche nell'[https://aur.archlinux.org/packages?K=kde+window+decoration AUR].\n\n==== Temi delle icone ====\n\nI temi delle icone possono essere installati e modificati in ''Impostazioni di sistema > Aspetto > Icone''.\n\n{{Nota|bench\u00e9 tutti i moderni desktop Linux condividano il medesimo formato per i temi delle icone, altri ambienti desktop come [[GNOME]] utilizzano un numero minore di icone (in particolar modo nei menu e nelle barre degli strumenti). Nei temi sviluppati per questi ambienti desktop mancano di norma le icone necessarie per Plasma e per le applicazioni KDE. Si raccomanda quindi di installare temi delle icone compatibili con Plasma.}}\n\n{{Suggerimento|dal momento che alcuni temi delle icone non ereditano le impostazioni del tema di icone standard, alcune icone potrebbero risultare mancanti. \nPer ereditare le impostazioni dal tema Brezza, aggiungere {{ic|breeze}} alla voce {{ic|1=Inherits=}} nel file {{ic|/usr/share/icon/''theme-name''/index.theme}}, ad esempio: {{ic|1=Inherits=breeze,hicolor}}. \u00c8 necessario applicare questa patch dopo ogni aggiornamento del tema delle icone. Prendere in considerazione l'utilizzo degli [[Pacman hooks|hook di pacman]] per automatizzare il processo.}}\n\n==== Efficienza in termini di spazio ====\n\nLa shell Plasma Netbook \u00e8 stata abbandonata a partire da Plasma 5, vedere il seguente [https://forum.kde.org/viewtopic.php?f=289&t=126631&p=335947&hilit=plasma+netbook#p335899 post sul forum KDE]. Tuttavia \u00e8 possibile ottenere un risultato simile modificando il file {{ic|~/.config/kwinrc}} e aggiungendo {{ic|1=BorderlessMaximizedWindows=true}} nella sezione {{ic|[Windows]}}.\n\n==== Generazione di thumbnail ====\n\nPer consentire la generazione di thumbnail per i file multimediali o per i documenti sul desktop e in Dolphin, installare {{Pkg|kdegraphics-thumbnailers}} e {{Pkg|ffmpegthumbs}}.\n\nDopodich\u00e9 abilitare le categorie di thumbnail per il desktop facendo ''clic con il tasto destro'' sullo ''sfondo del desktop'' > ''Configura desktop e sfondo...'' > ''Icone'' > ''Configura le estensioni di anteprima...''.\n\nIn ''Dolphin'', accedere al menu ''Configura > Configura Dolphin... > Generale > Anteprime''.\n\n=== Colore notturno ===\n\nPlasma offre una funzione simile a quella offerta da [[redshift]] (che funziona sia in [[Xorg]] che in [[Wayland]]) chiamata Colore notturno. Questa funzione rende i colori sullo schermo pi\u00f9 caldi per ridurre l'affaticamento degli occhi all'ora impostabile liberamente. \u00c8 possibile abilitarla in ''Impostazioni di sistema > Schermo e video > Colore notturno''.\n\n{{Suggerimento|per avere a disposizione un pratico pulsante on/off per la funzione colore notturno nel vassoio di sistema, \u00e8 necessario installare il pacchetto {{Pkg|kdeplasma-addons}} e poi aggiungerlo.}}\n\n=== Stampa ===\n\n{{Suggerimento|utilizzare l'interfaccia web [[CUPS]] per una pi\u00f9 rapida configurazione. Le stampanti cos\u00ec configurate possono essere utilizzate nelle applicazioni KDE. }}\n\n\u00c8 possibile configurare le stampanti anche in ''Impostazioni di sistema > Stampanti''. Per utilizzare questo metodo, \u00e8 necessari prima installare i seguenti pacchetti {{Pkg|print-manager}}, {{Pkg|cups}}, {{Pkg|system-config-printer}}. Vedere [[CUPS#Configuration]].\n\n=== Samba/supporto Windows ===\n\nSe si desidera avere accesso ai servizi Windows, installare [[Samba]] (pacchetto {{Pkg|samba}}).\n\nLa funzionalit\u00e0 di condivisione di Dolphin necessita del pacchetto {{Pkg|kdenetwork-filesharing}} e di condivisioni utente, non abilitate nel file {{ic|smb.conf}} predefinito. Le istruzioni per aggiungerle sono disponibili nella pagina [[Samba#Enable Usershares]]. Una volta completata questa operazione la funzione di condivisione in Dolphin dovrebbe essere immediatamente funzionante, senza la necessit\u00e0 di riavviare Samba.\n\n{{Suggerimento|utilizzare {{ic|*}} (asterisco) sia come username che come password quando si accede a una condivisione Windows senza autenticazione nella finestra di dialogo di Dolphin.}}\n\nDiversamente dai gestori di file GTK, che utilizzano GVfs anche per il programma lanciato, aprendo i file da condivisioni Samba in Dolphin mediante KIO, con la maggior parte dei programmi Plasma copia prima l'intero file nel file system locale (VLC rappresenta un'eccezione).\nPer aggirare questa limitazione, \u00e8 possibile utilizzare un gestore di file basato su GTK come {{Pkg|thunar}} con {{Pkg|gvfs}} e {{Pkg|gvfs-smb}} (e {{Pkg|gnome-keyring}} per salvare le credenziali di login) per accedere alle condivisioni SMB in modo pi\u00f9 efficiente.\n\nUn'altra possibilit\u00e0 \u00e8 [[mount|montare]] una condivisione Samba tramite {{Pkg|cifs-utils}} per far s\u00ec che Plasma la consideri come una comune cartella locale a cui accedere normalmente.\nVedere [[Samba#Manual mounting]] e [[Samba#Automatic mounting]].\n\nIl pacchetto {{AUR|samba-mounter-git}} fornisce una soluzione GUI che offre in linea di principio le medesime funzionalit\u00e0 tramite un'opzione di facile utilizzo disponibile in ''Impostazioni di sistema'' > ''Driver di rete''. Tuttavia questa soluzione potrebbe non funzionare con le nuove versioni di KDE Plasma.\n\n=== Attivit\u00e0 del desktop KDE ===\n\nLe [https://userbase.kde.org/Plasma/it#Attivit.C3.A0 attivit\u00e0] sono spazi di lavoro speciali dove \u00e8 possibile selezionare specifiche impostazioni che si applicano solo per la singola attivit\u00e0 e solo quando queste viene utilizzata.\n\n=== Gestione energetica ===\n\n[[Installare]] {{Pkg|powerdevil}} per un servizio di gestione energetica integrato in Plasma. Questo servizio offre funzionalit\u00e0 di risparmio energetico aggiuntive, controllo della luminosit\u00e0 dello schermo (se supportato) e indicazione dello stato della batteria, incluse le periferiche.\n\n{{Suggerimento|\n* Un pacchetto alternativo senza [[NetworkManager]] e [[Bluez]] come dipendenze \u00e8 fornito da {{AUR|powerdevil-light}}.\n* Un pacchetto alternativo con controllo della [[backlight|retroilluminazione]] con funzionalit\u00e0 [[Wikipedia:DDC/CI|DDC/CI]] abilitata per i monitor esterni \u00e8 fornito da {{AUR|powerdevil-ddcutil}}.\n* L'integrazione con i [https://pointieststick.com/2021/07/23/this-week-in-kde-power-profiles-and-a-more-polished-kickoff/ profili energetici] richiede la dipendenza opzionale [[power-profiles-daemon]]. \n}}\n\n{{Accuracy|1=in riferimento alla nota di seguito, la causa del problema potrebbe essere l'impostazione di logind ''LidSwitchIgnoreInhibited'' che ha come valore di default ''yes''. [https://bbs.archlinux.org/viewtopic.php?pid=1649022#p1649022]}}\n\n{{Nota|Power Devil potrebbe non [[Power management#Power managers|inibire]] tutte le impostazioni logind (come ad esempio l'azione associata alla chiusura del coperchio nei laptop). In questi casi, sar\u00e0 necessario modificare l'impostazione di logind - vedere [[Power management#Power management with systemd]].}}\n\n=== Avvio automatico ===\n\nPlasma pu\u00f2 avviare automaticamente le applicazioni ed eseguire script all'avvio e all'arresto. Per avviare automaticamente un'applicazione, accedere a ''Impostazioni di sistema > Avvio e spegnimento > Avvio automatico'' e aggiungere il programma o lo script shell desiderato. Per le applicazioni verr\u00e0 creato un file ''.desktop'', mentre per gli script di login verr\u00e0 creato un file ''.desktop'' che lancer\u00e0 lo script.\n\n{{Nota|\n* L'avvio automatico dei programmi pu\u00f2 essere eseguito soltanto al login, mentre gli script shell possono essere eseguiti anche allo spegnimento o prima dell'avvio dello stesso ambiente Plasma.\n* Gli script shell verranno eseguiti solo se [[Help:Reading (Italiano)#Rendere eseguibile|eseguibili]].\n* Gli script shell precedentemente inseriti nella cartella {{ic|~/.config/autostart-scripts/}} verranno [https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/736 convertiti automaticamente in file .desktop].\n}}\n\n* Inserire gli [[Desktop entries|elementi desktop]] (ad es. i file ''.desktop'') nella cartella [[XDG Autostart]] desiderata.\n* Inserire gli script o creare un link simbolico che rimandi ad essi in una delle seguenti cartelle:\n\n:; {{ic|~/.config/plasma-workspace/env/}}: per eseguire gli script al login prima del lancio di plasma.\n:; {{ic|~/.config/plasma-workspace/shutdown/}}: per eseguire gli script al momento della chiusura di Plasma.\n\nVedere la [https://docs.kde.org/trunk5/en/plasma-workspace/kcontrol/autostart/index.html documentazione ufficiale].\n\n=== Phonon ===\n\nDa [[Wikipedia:it:Phonon|Wikipedia]]:\n\n:Phonon \u00e8 l'API multimediale fornita da KDE ed \u00e8 il sistema di astrazione standard per la gestione dei flussi multimediali all'interno del software KDE che viene utilizzato anche da diverse applicazioni Qt.\n\n:Phonon \u00e8 stato creato in origine per rendere il software KDE e Qt indipendente da qualunque singolo sistema multimediale quale GStreamer o xine, e per fornire un'API stabile per l'intera durata di vita di una versione maggiore.\n\nPhonon trova un ampio utilizzo all'interno di KDE, sia per le risorse audio (ad es., le notifiche di sistema o le applicazioni audio KDE) che video (ad es. i thumbnail video di [[Dolphin]]).\n\n==== Quale backend dovrei scegliere? ====\n\n\u00c8 possibile scegliere tra backend basati su [[GStreamer]], [[VLC]], [[mpv]] ed [[MPlayer]] \u2013 alcuni dei quali disponibili in versioni per applicazioni Qt4 e Qt5 ({{AUR|phonon-qt4-gstreamer}}, {{Pkg|phonon-qt5-gstreamer}} \u2013 {{AUR|phonon-qt4-vlc}}, {{Pkg|phonon-qt5-vlc}}, {{AUR|phonon-qt4-mplayer-git}}, {{AUR|phonon-qt5-mpv}}).\n\n[https://www.phoronix.com/scan.php?page=news_item&px=MTUwNDM A livello upstream viene preferito VLC], ma alcune delle principali distribuzioni Linux (ad esempio Kubuntu e Fedora-KDE) prediligono GStreamer, in quanto questa soluzione permette di escludere facilmente dall'installazione di default i codec MPEG brevettati. Entrambi i backend possiedono [https://community.kde.org/Phonon/FeatureMatrix set di funzionalit\u00e0] leggermente diversi. Il backend Gstreamer possiede alcune dipendenze opzionali per i codec, installabili in base alle esigenze personali:\n\n* {{Pkg|gst-libav}} \u2014 codec Libav.\n* {{Pkg|gst-plugins-good}} \u2014 supporto per PulseAudio e codec aggiuntivi.\n* {{Pkg|gst-plugins-ugly}} \u2014 codec aggiuntivi.\n* {{Pkg|gst-plugins-bad}} \u2014 codec aggiuntivi.\n\n{{Nota|1=<br>\n* \u00c8 possibile installare contemporaneamente pi\u00f9 backend e definirne la priorit\u00e0 tramite l'applicazione ''phononsettings''.\n* Secondo quanto riportato nel [https://forum.kde.org/viewtopic.php?f=250&t=126476&p=335080 forum KDE], il backend VLC non supporta lo standard [[wikipedia:ReplayGain|ReplayGain]].\n* Nel caso si utilizzi il backend VLC, si potrebbero verificare dei crash ogni qual volta Plasma tenti di inviare un avviso audio e in un numero significativo di altri casi [https://forum.kde.org/viewtopic.php?f=289&t=135956]. Una delle possibili soluzioni a questo problema \u00e8 ricostruire la cache dei plugin VLC:\n{{bc|# /usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins}}\n}}\n\n=== Backup e ripristino ===\n\nKDE Plasma 5 conserva le impostazioni personalizzate del desktop come file di configurazione nella cartella [[XDG Base Directory#Specification|XDG_CONFIG_HOME]]. Utilizzare le [https://github.com/shalva97/kde-configuration-files informazioni dettagliate sui file di configurazione] per scegliere un [https://www.addictivetips.com/ubuntu-linux-tips/backup-kde-plasma-5-desktop-linux/ metodo di backup e ripristino].\n\n=== Avvio tramite systemd ===\n\nPlasma utilizza un'istanza [[systemd/User|utente systemd]] per lanciare e gestire tutti i propri servizi. Questo metodo di avvio \u00e8 quello utilizzato di default a partire da Plasma 5.25, me \u00e8 possibile [https://invent.kde.org/plasma/plasma-workspace/-/wikis/Plasma-and-the-systemd-boot disabilitarlo per utilizzare al suo posto degli script di boot] eseguendo il seguente comando (sebbene questa soluzione potrebbe non risultare pi\u00f9 funzionante nei rilasci futuri):\n\n $ kwriteconfig5 --file startkderc --group General --key systemdBoot false\n\nMaggiori dettagli sull'implementazione sono disponibili nel [https://blog.davidedmundson.co.uk/blog/plasma-and-the-systemd-startup/ blog di Edmundson: plasma e l'avvio tramite systemd].\n\n=== Controllo ortografico ===\n\nLe applicazioni KDE utilizzano {{Pkg|sonnet}} per il controllo ortografico. Vedere le sue dipendenze opzionali per i le soluzioni di [[controllo ortografico]] supportate.\n\n\u00c8 possibile configurare questo strumento in ''Impostazioni di sistema > Impostazioni regionali > Correttore ortografico''.\n\n=== Esecuzione di kwin wayland con NVIDIA ===\n\nVedere https://community.kde.org/Plasma/Wayland/Nvidia.\n\n== Applicazioni ==\n\nIl progetto KDE fornisce una suite di applicazioni che si integrano nel desktop Plasma. Vedere il gruppo {{Grp|kde-applications}} per un elenco completo di tutte le applicazioni disponibili. Vedere anche [[:Category:KDE]] per le pagine correlate delle applicazioni KDE.\n\nOltre ai programmi forniti dalla suite di applicazioni KDE, sono disponibili molte altre applicazioni in grado di estendere le funzionalit\u00e0 del desktop Plasma. Alcune di queste sono trattate di seguito.\n\n=== Amministrazione del sistema ===\n\n==== Terminare il server Xorg mediante le impostazioni di sistema KDE ====\n\nAccedere al sottomenu ''Impostazioni di sistema > Dispositivi di immissione > Tastiera > Avanzate (tab) > \"Sequenza di tasti per terminare il server X\"'' e assicurarsi che il checkbox sia selezionato.\n\n==== KCM ====\n\nKCM \u00e8 un acronimo che indica i moduli di configurazione di KDE. I KCM sono strumenti utili per la configurazione del proprio sistema e sono accessibili nelle impostazioni di sistema o da terminale tramite il comando ''kcmshell5''.\n\n* {{App|sddm-kcm|modulo di configurazione di KDE per [[SDDM]].|https://invent.kde.org/plasma/sddm-kcm|{{Pkg|sddm-kcm}}}}\n* {{App|kde-gtk-config|configuratore GTK2 e GTK3 per KDE.|https://invent.kde.org/plasma/kde-gtk-config|{{Pkg|kde-gtk-config}}}}\n* {{App|System policies|set di moduli di configurazione che permette all'amministratore di modificare le impostazioni di [[PolicyKit]].|https://invent.kde.org/system/polkit-kde-kcmodules-1|{{AUR|kcm-polkit-kde-git}}}}\n* {{App|wacom tablet|GUI di KDE per i driver Wacom per Linux.|https://www.linux-apps.com/p/1127862/|{{Pkg|kcm-wacomtablet}}}}\n* {{App|Kcmsystemd|modulo di controllo di systemd per KDE.|https://github.com/rthomsen/kcmsystemd|{{AUR|systemd-kcm}}}}\n\nAltri KCM sono disponibili alla pagina [https://www.linux-apps.com/search/projectSearchText/kcm linux-apps.com].\n\n=== Ricerca desktop ===\n\nKDE implementa la ricerca desktop tramite [[Baloo]], una soluzione software per la ricerca e l'indicizzazione dei file.\n\n=== Browser web ===\n\nI seguenti browser web possono integrarsi nell'ambiente Plasma:\n\n* {{App|[[Wikipedia:Konqueror|Konqueror]]|parte del progetto KDE, supporta due motori di rendering \u2013 KHTML e Qt WebEngine, basato su [[Chromium]].|https://konqueror.org/|{{Pkg|konqueror}}}}\n* {{App|[[Wikipedia:Falkon|Falkon]]|un browser web Qt con funzioni di integrazione con Plasma, conosciuto in precedenza con il nome di Qupzilla. Utilizza Qt WebEngine.|https://userbase.kde.org/Falkon/|{{Pkg|falkon}}}}\n* {{App|[[Chromium]]|Chromium e la sua variante proprietaria Google Chrome presentano delle limitazioni nell'integrazione con Plasma. [[KDE Wallet#KDE Wallet for Chrome and Chromium|Possono utilizzare KWallet]] e le finestre Apri/Salva KDE.|https://www.chromium.org/|{{Pkg|chromium}}}}\n* {{App|[[Firefox]]|Firefox pu\u00f2 essere configurato per una migliore integrazione in Plasma. Vedere [[Firefox#KDE integration]] per i dettagli.|https://mozilla.org/firefox|{{Pkg|firefox}}}}\n\n{{Suggerimento|A partire da Plasma 5.13, \u00e8 possibile integrare [[Firefox]] o [[Chrome]] in Plasma: vengono resi disponibili il controllo di riproduzione multimediale nel vassoio di sistema di Plasma, le notifiche dei download e la ricerca delle tab aperte in KRunner. [[Installare]] {{pkg|plasma-browser-integration}} e il rispettivo add-on del browser. Chrome/Chromium dovrebbe essere gi\u00e0 incluso, per l'add-on di Firefox vedere [[Firefox#KDE integration]].}}\n\n=== PIM ===\n\nKDE mette a disposizione un proprio stack per la [[Wikipedia:Personal information management|gestione delle informazioni personali]] (PIM). Tali informazioni includono e-mail, contatti, calendario, ecc. Per installare tutti i pacchetti PIM, \u00e8 possibile utilizzare il gruppo di pacchetti {{Grp|kde-pim}} o il meta-pacchetto {{Pkg|kde-pim-meta}}.\n\n==== Akonadi ====\n\nAkonadi \u00e8 un sistema concepito per agire come cache locale per i dati PIM, indipendentemente dalla loro origine. Questa cache pu\u00f2 a sua volta essere utilizzata da altre applicazioni. Sono inclusi i dati relativi alle e-mail dell'utente oltre che ai sui contatti, calendari, eventi, file di journal, allarmi, note ecc. Non conserva di per s\u00e9 alcun dato: il formato di archiviazione dipende dalla natura dei dati (ad esempio, i contatti possono essere salvati nel formato vCard).\n\nInstallare {{Pkg|akonadi}}. Per ulteriori add add-on, installare {{Pkg|kdepim-addons}}.\n\n{{Nota|Se si desidera utilizzare un motore del database diverso da [[MariaDB]], quando si installa il pacchetto {{Pkg|akonadi}} utilizzare il seguente comando per evitare l'installazione delle dipendenze {{Pkg|mariadb}}:\n\n # pacman -S akonadi --assume-installed mariadb\n\nVedere anche {{Bug|32878}}.\n}}\n\n===== MySQL =====\n\nCome impostazione predefinita Akonadi utilizzer\u00e0 {{ic|/usr/bin/mysqld}} ([[MariaDB]] di default, vedere [[MySQL]] per soluzioni alternative) per eseguire un'istanza MySQL gestita con il database salvato in {{ic|~/.local/share/akonadi/db_data/}}.\n\n====== Istanza MySQL a livello di sistema ======\n\nAkonadi supporta l'utilizzo di [[MySQL]] a livello di sistema per il proprio database.[https://techbase.kde.org/KDE_PIM/Akonadi#Can_Akonadi_use_a_normal_MySQL_server_running_on_my_system.3F]\n\n{{Expansion|Aggiungere istruzioni.}}\n\n{{hc|~/.config/akonadi/akonadiserverrc|2=\n[%General]\nDriver=QMYSQL\n\n[QMYSQL]\nHost=\nName=akonadi_''username''\nOptions=\"UNIX_SOCKET=/run/mysqld/mysqld.sock\"\nStartServer=false\n}}\n\n===== PostgreSQL =====\n\nAkonadi supporta alternativamente l'utilizzo dell'istanza [[PostgreSQL]] gi\u00e0 esistente a livello di sistema, vale a dire {{ic|postgresql.service}}, o l'esecuzione di un'istanza PostgreSQL con privilegi utente a livello del database salvato in {{ic|~/.local/share/akonadi/db_data/}}.\n\n====== Istanza PostgreSQL per utente ======\n\n[[Installare]] {{Pkg|postgresql}} e {{Pkg|postgresql-old-upgrade}}.\n\nModificare il file di configurazione di Akonadi in modo che rifletta quando segue:\n\n{{hc|~/.config/akonadi/akonadiserverrc|2=\n[%General]\nDriver=QPSQL\n}}\n\n{{Nota|\n* Al momento dell'avvio, Akonadi creer\u00e0 la sezione {{ic|[QPSQL]}} e imposter\u00e0 le relative variabili appropriate.\n* Il database verr\u00e0 salvato in {{ic|~/.local/share/akonadi/db_data/}}.\n}}\n\nAvviare Akonadi con {{ic|akonadictl start}} e verificarne lo stato: {{ic|akonadictl status}}.\n\n{{Nota|\n* A partire da {{Pkg|akonadi}} 19.08.0-1, il cluster del database PostgreSQL in {{ic|~/.local/share/akonadi/db_data/}} verr\u00e0 aggiornato automaticamente ogni qual volta venga rilevato un major upgrade della versione di PostgreSQL.\n* Per le versioni precedenti di {{Pkg|akonadi}}, i major upgrade della versione di PostgreSQL richiederanno un intervento manuale per aggiornare il database. Seguire le [https://userbase.kde.org/Akonadi/Postgres_update istruzioni di aggiornamento presenti nella KDE UserBase Wiki]. Assicurarsi di adattare i percorsi dei file binari PostgreSQL in modo che riflettano quelli utilizzati dai pacchetti {{Pkg|postgresql}} e {{Pkg|postgresql-old-upgrade}}, vedere [[PostgreSQL#Upgrading PostgreSQL]].\n}}\n\n====== Istanza PostgreSQL a livello di sistema ======\n\nQuesta soluzione necessita di un'istanza [[PostgreSQL]] gi\u00e0 configurata e in esecuzione.\n\nCreare un account utente PostgreSQL per il proprio utente:\n\n [postgres]$ createuser ''nome utente''\n\nCreare un database per Akonadi:\n\n [postgres]$ createdb -O ''nome utente'' -E UTF8 --locale=C -T template0 akonadi-''nome utente''\n\nConfigurare Akonadi affinch\u00e9 utilizzi l'istanza PostgreSQL a livello di sistema:\n\n{{hc|~/.config/akonadi/akonadiserverrc|2=\n[%General]\nDriver=QPSQL\n\n[QPSQL]\nHost=/run/postgresql\nName=akonadi-''username''\nStartServer=false\n}}\n\n{{Nota|\u00c8 possibile specificare porta personalizzata, nome utente e password con le opzioni {{ic|1=Port=}}, {{ic|1=User=}}, {{ic|1=Password=}} nella sezione {{ic|[QPSQL]}}.}}\n\nAvviare Akonadi con {{ic|akonadictl start}} e verificarne lo stato: {{ic|akonadictl status}}.\n\n===== SQLite =====\n\n{{Warning|L'utilizzo del backend SQLite \u00e8 sconsigliato e andrebbe evitato.[https://invent.kde.org/pim/akonadi/-/blob/master/INSTALL#L37]}}\n\nPer utilizzare [[SQLite]], modificare il file di configurazione di Akonadi come indicato di seguito:\n\n{{hc|~/.config/akonadi/akonadiserverrc|2=\n[%General]\nDriver=QSQLITE3\n}}\n\n{{Nota|\n* Al momento dell'avvio, Akonadi creer\u00e0 la sezione {{ic|[QSQLITE3]}} e imposter\u00e0 le relative variabili appropriate.\n* Il database verr\u00e0 salvato come {{ic|~/.local/share/akonadi/akonadi.db}}.\n}}\n\n===== Disabilitazione di Akonadi =====\n\nVedere questa [https://userbase.kde.org/Akonadi#Disabling_the_Akonadi_subsystem sezione in KDE userbase].\n\n=== KDE Telepathy ===\n\n[https://community.kde.org/KTp KDE Telepathy] \u00e8 un progetto il cui obiettivo \u00e8 ottenere un'integrazione ottimale dei servizi di messaggistica istantanea all'interno del desktop KDE. Utilizza il framework Telepathy come backend ed \u00e8 stato creato per sostituire Kopete.\n\nPer installare tutti i protocolli Telepathy, installare il gruppo {{Grp|telepathy}}.\nPer utilizzare il client KDE Telepathy, installare il pacchetto {{Pkg|telepathy-kde-meta}} che include tutti i pacchetti contenuti nel gruppo {{Grp|telepathy-kde}}.\n\n==== Utilizzo di Telegram con KDE Telepathy ====\n\n{{Out of date|Il progetto ''telegram-purple'' \u00e8 [https://github.com/majn/telegram-purple#this-project-is-abandoned-see-instead-tdlib-purple abbandonato]. Vedere anche [[Special:Diff/704779|Diff/704779]]. Come indicato nei link precedenti, {{AUR|telegram-tdlib-purple-git}} \u00e8 il pacchetto successore.}}\n\nIl protocollo [[Telegram]] \u00e8 disponibile utilizzando {{pkg|telepathy-haze}}, installando {{aur|telegram-purple}} o {{aur|telegram-purple-git}} e {{aur|telepathy-morse-git}}. Il nome utente \u00e8 il numero di telefono associato all'account Telegram (completo del prefisso nazionale {{ic|+''xx''}}, ad es. {{ic|+39}} per l'Italia).\n\nLa configurazione mediante l'interfaccia GUI pu\u00f2 risultare complicata: qualora il numero di telefono non venisse accettato al momento della configurazione di un nuovo account nel client KDE Telepathy (con un messaggio di errore indicante un parametro non valido che impedisce la creazione dell'account), inserirlo tra virgolette singole che dovranno poi essere rimosse manualmente dal file di configurazione ({{ic|~/.local/share/telepathy/mission-control/accounts.cfg}}), una volta creato l'account (in caso di mancata eliminazione delle virgolette si verificher\u00e0 un errore di autenticazione).\n\n{{Nota|\u00c8 consigliabile procedere alla modifica manuale del file quando KDE Telepathy non \u00e8 in esecuzione, ad es. quando non \u00e8 presente alcuna sessione desktop KDE attiva, in quanto, in caso contrario, le modifiche manuali potrebbero essere sovrascritte dal software.}}\n\n=== KDE Connect ===\n\n[https://community.kde.org/KDEConnect KDE Connect] offre diverse funzioni che permettono di connettere il proprio telefono [[Android]] con il proprio desktop Linux:\n\n* Condivisione di file e URL verso/da KDE da/verso qualunque app, senza fili.\n* Emulazione del touchpad: possibilit\u00e0 di utilizzare lo schermo del proprio telefono come un touchpad.\n* Sincronizzazione delle notifiche (4.3+): possibilit\u00e0 di leggere le notifiche del proprio telefono Android dal desktop.\n* Appunti condivisi: possibilit\u00e0 di eseguire operazioni di copia e incolla tra il proprio telefono e il proprio computer.\n* Controllo multimediale remoto: possibilit\u00e0 di utilizzare il proprio telefono come telecomando per controllare i riproduttori multimediali Linux.\n* Connessione WiFi: non sono necessari cavi USB o connessioni Bluetooth.\n* Cifratura RSA: sicurezza per le proprie informazioni.\n\n\u00c8 necessario utilizzare KDE Connect sia sul proprio computer che sul proprio dispositivo Android. Per il lato PC, [[installare]] il pacchetto {{Pkg|kdeconnect}}. Per il lato Android, installare KDE Connect da [https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp Google Play] o da [https://f-droid.org/packages/org.kde.kdeconnect_tp/ F-Droid]. Nel caso si desideri avere la possibilit\u00e0 di navigare all'interno del file system del proprio cellulare, sar\u00e0 necessario [[installare]] {{Pkg|sshfs}} e configurare la visibilit\u00e0 del file system nell'app Android.\n\n\u00c8 possibile utilizzare KDE Connect anche se non si utilizza il desktop Plasma. Per gli ambienti desktop che utilizzano AppIndicators, come ad esempio Unity, installare anche il pacchetto {{AUR|indicator-kdeconnect}}. Gli utenti GNOME possono ottenere un migliore livello di integrazione installando {{AUR|gnome-shell-extension-gsconnect}} anzich\u00e9 {{Pkg|kdeconnect}}. Per avviare manualmente il demone di KDE Connect, eseguire {{ic|/usr/lib/kdeconnectd}}.\n\nSe si utilizza un [[firewall]], sar\u00e0 necessario aprire le porte UDP e TCP da {{ic|1714}} a {{ic|1764}}.\n\nTalvolta pu\u00f2 accadere che KDE Connect non rilevi un telefono. \u00c8 possibile riavviare i servizi eseguendo {{ic|killall kdeconnectd}} e aprendo poi kdeconnect nelle impostazioni di sistema o eseguendo {{ic|kdeconnect-cli --refresh}}, seguito da {{ic|kdeconnect-cli -l}}.\n\n== Trucchi e suggerimenti ==\n\n=== Utilizzo di un altro window manager ===\n\nCon Plasma \u00e8 possibile utilizzare un window manager diverso da KWin. In questo modo \u00e8 possibile combinare la funzionalit\u00e0 del desktop KDE e la praticit\u00e0 di un [[tiling window manager]], con una soluzione migliore rispetto all'utilizzo degli script di KWin che aggiungono la funzione di tiling.\n\nLa funzione di selezione dei componenti di Plasma [https://github.com/KDE/plasma-desktop/commit/2f83a4434a888cd17b03af1f9925cbb054256ade non permette pi\u00f9 di cambiare il window manager], tuttavia \u00e8 ancora possibile sostituire KWin utilizzando altri metodi.\n\n==== Sostituzione del servizio KWin ====\n\nA partire da KDE 5.25, \u00e8 abilitato di default l'[https://blog.davidedmundson.co.uk/blog/plasma-and-the-systemd-startup/ avvio di Plasma basato su systemd].\n\nPer sostituire KWin in questo processo di avvio \u00e8 necessario, per prima cosa, [[mask|mascherare]] il servizio {{ic|plasma-kwin_x11.service}} per l'utente attuale, al fine di prevenirne l'avvio.\n\nDopodich\u00e9, [[create|creare]] una nuova [[user unit|unit\u00e0 utente]] systemd per avviare il proprio WM di preferenza [https://bugs.kde.org/show_bug.cgi?id=439481#c2]:\n\n{{hc|1=~/.config/systemd/user/plasma-custom-wm.service|2=\n[Install]\nWantedBy=plasma-workspace.target\n\n[Unit]\nDescription=Plasma Custom Window Manager\nBefore=plasma-workspace.target\n\n[Service]\nExecStart=''/path/to/other/wm''\nSlice=session.slice\nRestart=on-failure\n}}\n\nPer utilizzarla, [[daemon-reload|ricaricare il demone]] (come [[user unit|unit\u00e0 utente]]), assicurarsi di aver [[mask|mascherato]] il servizio {{ic|plasma-kwin_x11.service}} e [[enable|abilitare]] il servizio {{ic|plasma-custom-wm.service}} appena creato.\n\n{{Nota|In caso di utilizzo di i3 window manager con Plasma, potrebbe essere necessario impostare manualmente la modalit\u00e0 floating per le finestre di dialogo affinch\u00e9 queste si aprano correttamente. Per maggiori informazioni, vedere [[i3#Correct handling of floating dialogs]].}}\n\n==== Utilizzo del sistema di boot basato su script e KDEWM ====\n\nPer utilizzare il sistema di boot basato su script di Plasma, occorre disabilitare l'[[#Avvio tramite systemd|avvio tramite systemd]]. Una volta eseguita questa operazione, \u00e8 possibile cambiare il window manager impostando la [[environment variable|variabile d'ambiente]] {{ic|KDEWM}} prima dell'invocazione di Plasma. Le relative istruzioni sono disponibili nella KDE UserBase Wiki \u2014 [https://userbase.kde.org/Tutorials/Using_Other_Window_Managers_with_Plasma Tutorials/Using Other Window Managers with Plasma].\n\n==== Sessione KDE/Openbox ====\n\nIl pacchetto {{Pkg|openbox}} fornisce una sessione per utilizzare KDE con [[Openbox]]. Per utilizzare questa sessione, selezionare ''KDE/Openbox'' dal menu del [[display manager]].\n\nChi avvia la sessione manualmente, dovr\u00e0 aggiungere la seguente linea alla propria configurazione [[xinit]]:\n\n{{hc|~/.xinitrc|\nexec openbox-kde-session\n}}\n\n==== Riabilitazione degli effetti di compositing ====\n\nSostituendo Kwin con un window manager che non sia dotato un compositor (come Openbox), tutti gli effetti di compositing del desktop, quale ad es. la trasparenza, andranno persi. In questo caso, installare ed eseguire uno strumento separato per la gestione del compositing come [[Xcompmgr]] o [[picom]] per avere a disposizione questi effetti.\n\n=== Configurazione della risoluzione del monitor / monitor multipli ===\n\nPer abilitare la gestione della risoluzione del display e i monitor multipli in Plasma, installare {{Pkg|kscreen}}. Questo pacchetto fornisce le relative opzioni aggiuntive in ''Impostazioni di sistema > Schermo e video''.\n\n=== KWin-lowlatency ===\n\n{{Out of date|Il progetto [https://github.com/tildearrow/kwin-lowlatency KWin-lowlatency] attualmente (febbraio 2022) \u00e8 inattivo/abbandonato e non funzioner\u00e0 con Plasma 5.24.}}\n\n[https://github.com/tildearrow/kwin-lowlatency KWin-lowlatency] rappresenta un tentativo di ridurre la latenza e i difetti di fluidit\u00e0 di visualizzazione del popolare compositor KWin ed \u00e8 disponibile nell'AUR come {{AUR|kwin-lowlatency}}.\n\n=== Configurazione dei profili ICC ===\n\nPer abilitare i [[ICC profiles|profili ICC]] in Plasma, [[installare]] {{Pkg|colord-kde}}. Questo pacchetto fornisce le relative opzioni aggiuntive in ''Impostazioni di sistema > Color Corrections''.\n\n\u00c8 possibile importare i profili ICC utilizzando ''Aggiungi profilo''.\n\n=== Disabilitazione dell'apertura del lanciatore di applicazioni con il tasto Super (tasto Windows) ===\n\nPer disabilitare questa funzione \u00e8 attualmente disponibile il seguente comando:\n\n $ kwriteconfig5 --file kwinrc --group ModifierOnlyShortcuts --key Meta \"\"\n\n=== Disabilitazione dei preferiti nel menu delle applicazioni ===\n\nCon l'integrazione del browser Plasma installata, KDE mostrer\u00e0 i preferiti all'interno del lanciatore di applicazioni.\n\nPer disabilitare questa funzione sono attualmente disponibili i seguenti comandi:\n\n $ mkdir ~/.local/share/kservices5\n $ sed 's/EnabledByDefault=true$/EnabledByDefault=false/' /usr/share/kservices5/plasma-runner-bookmarks.desktop > ~/.local/share/kservices5/plasma-runner-bookmarks.desktop\n\n=== Integrazione IBus ===\n\n[[IBus]] \u00e8 un [[Input method#Input method framework|framework per il metodo di input]] integrabile all'interno di KDE. Vedere [[IBus#Integration]] per i relativi dettagli.\n\nL'impiego di [[IBus]] pu\u00f2 rendersi necessario in caso di utilizzo di KDE su [[Wayland]] per poter usufruire del supporto per caratteri accentati e dead key [https://bugs.kde.org/show_bug.cgi?id=411729].\n\n=== Abilitazione dell'hotspot in plasma-nm ===\n\nVedere [[NetworkManager#Sharing internet connection over Wi-Fi]].\n\n=== Ripristino della sessione precedente salvata ===\n\nSe risulta selezionato ''Impostazioni di sistema > Avvio e spegnimento > Sessioni del desktop > All'accesso: Ripristina la sessione precedentemente salvata'' (default), ksmserver (il gestore di sessioni di KDE) salver\u00e0/caricher\u00e0 automaticamente tutte le applicazioni aperte in/da {{ic|~/.config/ksmserverrc}} al logout/login.\n\n{{Nota|Attualmente non \u00e8 possibile ripristinare le finestre native Wayland. Vedere [https://community.kde.org/Plasma/Wayland_Showstoppers Wayland Showstoppers] per informazioni sullo stato attuale di sviluppo.}}\n\n=== Ricezione della posta locale in KMail ===\n\nNel caso si sia provveduto a impostare la consegna della posta locale con un [[mail server|server di posta]] che utilizzi il formato [[Wikipedia:Maildir|Maildir]], si potrebbe voler ricevere tale posta in KMail. In questo caso, \u00e8 possibile riutilizzare l'account di ricezione di default di KMail \"Local Folders\" che salva la posta in {{ic|~/.local/share/local-mail/}}.\n\nCreare per la cartella {{ic|~/Maildir}} (in cui viene di norma salvata la posta in formato Maildir) un link simbolico verso la cartella della posta in entrata dell'account \"Local Folders\":\n\n $ ln -s .local/share/local-mail/inbox ~/Maildir\n\nIn alternativa, aggiungere un nuovo account per la ricezione di tipo ''Maildir'' e impostare {{ic|~/Maildir}} come cartella per questo account.\n\n=== Configurare Plasma per tutti gli utenti ===\n\nModificare i file {{ic|config/main.xml}} nella cartella {{ic|/usr/share/plasma}}. Ad esempio, per configurare il lanciatore di applicazioni per tutti gli utenti, modificare il file {{ic|/usr/share/plasma/plasmoids/org.kde.plasma.kickoff/contents/config/main.xml}}. Per prevenire la sovrascrittura dei file con l'aggiornamento dei pacchetti, aggiungere i file all'array [[Pacman#Skip file from being upgraded|NoUpgrade di Pacman]]\n\n=== Disabilitazione dell'ibernazione ===\n\nPer disabilitare in modo corretto la funzione di ibernazione nascondendola dal menu, creare una regola di policy Polkit.\n\n{{hc|/etc/polkit-1/rules.d/99-disable-hibernate.rules|<nowiki>\n// Disable hibernate for all users\npolkit.addRule(function(action, subject) {\n   if ((action.id == \"org.freedesktop.login1.hibernate\")) {\n      return polkit.Result.NO;\n   }\n});\npolkit.addRule(function(action, subject) {\n   if ((action.id == \"org.freedesktop.login1.hibernate-multiple-sessions\")) {\n      return polkit.Result.NO;\n   }\n});\n</nowiki>}}\n\n== Risoluzione di problemi ==\n\n=== Bug di qt5ct e kvantum dopo l'aggiornamento ===\n\n{{Out of date|Questa voce \u00e8 stata aggiunta in data 2021-02-15 : l'\"ultimo aggiornamento\" risale a oltre un anno fa. Questo problema \u00e8 risolto?}}\n\nL'ultimo aggiornamento potrebbe causare uno scaling HiDPI incompatibile ed essere causa di alcune interfacce eccessivamente grandi per il proprio schermo, di alcune icone mancanti o non visualizzate, e di pannelli o widget mancanti.\n\nProvare a rimuovere {{Pkg|qt5ct}} e {{Pkg|kvantum}} e i relativi pacchetti associati, dopodich\u00e9 applicare il tema globale di default di Plasma. Se il problema persiste, provare a cancellare tutte le proprie configurazioni di KDE e a reinstallare {{Grp|plasma}} per sovrascrivere la configurazione. Assicurarsi di verificare lo scaling HiDPI anche nelle impostazioni di sistema KDE.\n\n=== Font ===\n\n==== I font vengono non vengono visualizzati correttamente in una sessione Plasma ====\n\nProvare a installare i pacchetti {{Pkg|ttf-dejavu}} e {{Pkg|ttf-liberation}}.\n\nDopo l'installazione assicurarsi di eseguire il logout e di effettuare nuovamente il login. Non dovrebbe essere necessario modificare nulla in ''Impostazioni di sistema > Aspetto > Caratteri''. Se si sta utilizzando {{Pkg|qt5ct}}, le impostazioni nello strumento di configurazione Qt5 potrebbero sovrascrivere le impostazioni dei caratteri definite nelle impostazioni di sistema.\n\nNel caso si sia definito personalmente il rendering dei propri [[Fonts|font]], le impostazioni del sistema potrebbero alterarne l'aspetto. Accedendo a ''Impostazioni di sistema > Aspetto > Caratteri'' l'applicazione Impostazioni di sistema con ogni probabilit\u00e0 modificher\u00e0 il file di configurazione dei font ({{ic|fonts.conf}}).\n\nNon esiste alcun modo di evitare questo comportamento tuttavia, impostando i valori in modo che corrispondano al proprio file {{ic|fonts.conf}}, si avr\u00e0 nuovamente il rendering atteso dei font (sar\u00e0 necessario il riavvio della propria applicazione o, in alcuni casi, del desktop). Notare che questo comportamento \u00e8 comune anche alle preferenze per i font di Gnome.\n\n==== I font sono enormi o hanno un aspetto sproporzionato ====\n\nProvare a forzare i DPI dei font a {{ic|'''96'''}} in ''Impostazioni di sistema > Aspetto > Caratteri''.\n\nSe questa soluzione non funziona, provare a impostare il valore DPI direttamente nella propria configurazione Xorg come documentato in [[Xorg#Setting DPI manually]].\n\n=== Problemi legati alla configurazione ===\n\nMolti dei problemi in KDE sono correlati alla sua configurazione.\n\n==== Il desktop Plasma si comporta in modo strano ====\n\nI problemi di Plasma sono di norma causati da ''widget di Plasma'' instabili (detti anche ''plasmoidi'' in termini colloquiali) o da ''temi di Plasma''. Per prima cosa, individuare l'ultimo widget o tema installato e disabilitarlo o disinstallarlo.\n\nPertanto se il proprio desktop si \"blocca\" all'improvviso, la causa \u00e8 con ogni probabilit\u00e0 da attribuirsi a un widget difettoso installato. Se non si ricorda quale sia l'ultimo widget installato prima della comparsa del problema (talvolta potrebbe trattarsi di un problema che si presenta a intervalli irregolari), provare a individuarlo eliminando ogni widget fino alla scomparsa del problema. Dopodich\u00e9 \u00e8 possibile disinstallare il widget e segnalare il bug nel [https://bugs.kde.org/ bug tracker di KDE] '''esclusivamente se si tratta di un widget ufficiale'''. In caso contrario si raccomanda di individuare la relativa pagina sul [https://store.kde.org/ KDE Store] e di informare lo sviluppatore del widget in merito al problema occorso (indicando in dettagli i passaggi da riprodurre, ecc.).\n\nQualora non si riesca a individuare il problema, ma si vuole evitare di perdere \"tutte\" le impostazioni, portarsi nella cartella {{ic|~/.config/}} ed eseguire il seguente comando:\n\n $ for j in plasma*; do mv -- \"$j\" \"${j%}.bak\"; done\n\nQuesto comando rinominer\u00e0 '''tutti''' i file di configurazione di Plasma del proprio utente aggiungendovi l'estensione ''*.bak'' (ad es. {{ic|plasmarc.bak}}). In tal modo al nuovo login in Plasma verranno ripristinate le impostazioni di default. Per annullare quest'azione, rimuovere l'estensione ''.bak'' dai file. Qualora siano gi\u00e0 presenti dei file con estensione ''*.bak'', rinominarli, spostarli o cancellarli prima. La creazione di backup a intervalli regolari \u00e8 comunque una pratica consigliata. Vedere [[Synchronization and backup programs]] per un elenco di possibili soluzioni.\n\n==== Pulizia della cache per risolvere i problemi legati agli aggiornamenti ====\n\nIl [https://bbs.archlinux.org/viewtopic.php?id=135301 problema] pu\u00f2 essere causato da una cache datata. Talvolta, dopo un aggiornamento, la vecchia cache pu\u00f2 introdurre comportamenti strani, di cui pu\u00f2 risultare difficile eseguire il debug, quali shell non terminabili con il comando di kill, blocco della schermata alla modifica di impostazioni varie, impossibilit\u00e0 per Ark di estrarre archivi o incapacit\u00e0 di Amarok di riconoscere qualunque elemento della libreria musicale. Questa soluzione pu\u00f2 risolvere i problemi di visualizzazione delle applicazioni KDE e Qt in seguito a un aggiornamento.\n\nRicostruire la cache utilizzando i seguenti comandi:\n\n $ rm ~/.config/Trolltech.conf\n $ kbuildsycoca5 --noincremental\n\nOpzionalmente, svuotare il contenuto della cartella {{ic|~/.cache/}}, tuttavia questa operazione pulir\u00e0 la cache anche delle altre applicazioni:\n \n $ rm -rf ~/.cache/*\n\n==== Il desktop Plasma non rispetta le impostazioni di localizzazione/lingua ====\n\nIl desktop Plasma potrebbe utilizzare impostazioni diverse da quelle definite nel pannello delle impostazioni di sistema KDE o nel file {{ic|locale.conf}} (via [[Locale#Variables]]). La prima cosa da fare \u00e8 effettuare il logout e poi nuovamente il login dopo aver rimosso {{ic|~/.config/plasma-localerc}}, se questa operazione non risolve il problema, provare a modificare manualmente il file. Ad esempio, per impostare la variabile {{ic|LANG}} con il valore {{ic|it_IT.UTF-8}} e la variabile {{ic|LC_MESSAGES}} con il valore {{ic|en_US.UTF-8}}:\n\n{{hc|~/.config/plasma-localerc|2=\n[Formats]\nLANG=it_IT.UTF-8\n\n[Translations]\nLANGUAGE=en_US\n}}\n\n==== Impossibile cambiare tema, icone, font, colori nelle impostazioni di sistema; la maggior parte delle icone non viene visualizzata ====\n\nAssicurarsi che la [[environment variable|variabile d'ambiente]] {{ic|QT_QPA_PLATFORMTHEME}} non sia impostata, il comando {{ic|printenv QT_QPA_PLATFORMTHEME}} dovrebbe restituire un output vuoto. Nel caso contrario in cui sia definito un ambiente da parte di un'applicazione (con ogni probabilit\u00e0 qt5ct), questa variabile forzer\u00e0 le impostazioni di qt5ct sulle applicazioni Qt. Il comando {{ic|1=export QT_QPA_PLATFORMTHEME=}} dovrebbe annullare la variabile.\n\nUna soluzione pi\u00f9 semplice (e pi\u00f9 affidabile) pu\u00f2 essere quella di disinstallare completamente qt5ct.\n\n==== Il controllo del volume, le notifiche o i tasti multimediali non funzionano ====\n\nNascondendo determinati elementi nelle impostazioni del vassoio di sistema (ad es. Volume audio, Lettore multimediale o Notifiche) si disabilitano anche le rispettive funzioni. Se si nasconde ''Volume audio'' si disabilitano i tasti di controllo del volume, ''Lettore multimediale'' disabilita i tasti di riproduzione multimediali (rewind, stop, pausa) e nascondendo ''Notifiche'' si disabilita la visualizzazione delle notifiche.\n\n==== Il modulo KCM Schermata di accesso non sincronizza le impostazioni del cursore con SDDM ====\n\nIl modulo KCM Schermata di accesso legge le impostazioni del cursore dell'utente dal file {{ic|~/.config/kcminputrc}}, in assenza di questo file le impostazioni non vengono sincronizzate. Il modo pi\u00f9 semplice per generare questo file \u00e8 modificare il proprio tema del cursore in ''Impostazioni di sistema > Puntatori'', e reimpostare in seguito il proprio tema cursore preferito.\n\n==== Pannelli/widget mancanti ====\n\nUn eventuale crash o la sostituzione di componenti hardware possono modificare i numeri degli schermi, anche in un setup con monitor singolo. Di conseguenza i pannelli/widget possono risultare mancanti. Questo problema pu\u00f2 essere risolto modificando i valori {{ic|lastScreen}} nel file {{ic|~/.config/plasma-org.kde.plasma.desktop-appletsrc}}.\n\n=== Problemi grafici ===\n\nAssicurarsi di avere installato il driver appropriato per la propria GPU. Vedere [[Xorg#Driver installation]] per maggiori informazioni. Se si possiede una scheda datata, potrebbe essere utile [[#Disabilitazione manuale o automatica degli effetti desktop per specifiche applicazioni|disabilitare manualmente o automaticamente gli effetti desktop per specifiche applicazioni]] o [[#Disabilitazione del compositing|disabilitare il compositing]].\n\n==== Ottenere lo stato attuale di KWin per finalit\u00e0 di supporto e debug ====\n\nIl seguente comando restituisce un sommario dello stato attuale di KWin incluse le opzioni utilizzate, il backend di compositing utilizzato e le rispettive funzionalit\u00e0 del driver OpenGL. Maggiori informazioni alla pagina [https://blog.martin-graesslin.com/blog/2012/03/on-getting-help-for-kwin-and-helping-kwin/ Martin's blog].\n\n $ qdbus org.kde.KWin /KWin org.kde.KWin.supportInformation\n\n==== Disabilitazione manuale o automatica degli effetti desktop per specifiche applicazioni ====\n\nIn Plasma determinati effetti desktop sono abilitati di default e, ad esempio, non tutti i giochi li disabilitano automaticamente. \u00c8 possibile disabilitare gli effetti desktop in ''Impostazioni di sistema > Comportamento dello spazio di lavoro > Effetti del desktop''. Inoltre \u00e8 possibile attivarli e disattivarli con la combinazione di tasti {{ic|Alt+Shift+F12}}. \n\nSi possono altres\u00ec creare regole di KWin personalizzate per abilitare/disabilitare automaticamente il compositing quando una determinata applicazione/finestra si avvia in ''Impostazioni di sistema > Gestione delle finestre > Regole delle finestre''.\n\n==== Abilitazione della trasparenza ====\n\nSe si utilizza uno sfondo trasparente senza abilitare il compositor, viene visualizzato questo messaggio:\n\n Questo schema di colori utilizza uno sfondo trasparente che sembra non essere supportato dal proprio desktop\n\nIn ''Impostazioni di sistema > Schermo e video > Compositore'', selezionare ''Composizione: Abilita all'avvio'' e riavviare Plasma.\n\n==== Disabilitazione del compositing ====\n\nIn ''Impostazioni di sistema > Schermo e video > Compositore'', selezionare ''Composizione: Abilita all'avvio'' e riavviare Plasma.\n\n==== Sfarfallio in modalit\u00e0 schermo intero con il compositing abilitato ====\n\nIn ''Impostazioni di sistema > Schermo e video > Compositore'', selezionare ''Composizione: Consenti alle applicazioni di bloccare la composizione''. Questa operazione pu\u00f2 incidere negativamente sulle prestazioni.\n\n==== Il puntatore di Plasma talvolta non viene visualizzato correttamente ====\n\nCreare la cartella {{ic|~/.icons/default}} e inserire al suo interno un file con nome {{ic|index.theme}} con il seguente contenuto:\n\n{{hc|~/.icons/default/index.theme|2=\n[Icon Theme]\nInherits=breeze_cursors\n}}\n\nEseguire il seguente comando:\n\n $ ln -s /usr/share/icons/breeze_cursors/cursors ~/.icons/default/cursors\n\n==== Sfarfallio/movimento a scatti del puntatore al cambio ruoli (ad es., quando il mouse passa sopra link ipertestuali) ====\n\nProvare a installare il driver appropriato di accelerazione 2D per il proprio sistema e window manager.\n\n==== \u00c8 impostata una risoluzione schermo inutilizzabile ====\n\nLe proprie impostazioni locali per kscreen possono sovrascrivere quelle definite in {{ic|xorg.conf}}. Esaminare i file di configurazione di kscreen in {{ic|~/.local/share/kscreen/}} e verificare che la modalit\u00e0 non sia impostata su un valore di risoluzione non supportato dal proprio monitor.\n\n==== Icone sfocate nel vassoio di sistema ====\n\nPer aggiungere le icone al vassoio di sistema, spesso le applicazioni utilizzano la libreria appindicator. Nel caso le icone risultino sfocate, verificare la versione di libappindicator installata nel proprio sistema. Se risulta installata soltanto la libreria {{Pkg|libappindicator-gtk2}}, \u00e8 possibile installare {{Pkg|libappindicator-gtk3}} per tentare di correggere la visualizzazione delle icone.\n\n==== Impossibile modificare la risoluzione dello schermo all'interno di una macchina virtuale ====\n\nQuando Plasma viene eseguito all'interno di una macchina virtuale [[VMware]], [[VirtualBox]] o [[QEMU]], kscreen potrebbe non consentire di modificare la risoluzione dello schermo guest su una risoluzione superiore a 800\u00d7600.\n\nPer aggirare questa limitazione \u00e8 possibile impostare l'opzione {{ic|PreferredMode}} in {{man|5|xorg.conf.d}}. In alternativa, provare a utilizzare un adattatore grafico diverso nella macchina virtuale, ad es. VBoxSVGA anzich\u00e9 VMSVGA per VirtualBox e Virtio anzich\u00e9 QXL per QEMU. Vedere [https://bugs.kde.org/show_bug.cgi?id=407058 KDE Bug 407058] per maggiori dettagli.\n\n==== Dolphin, Kate, ecc. rimangono bloccati a lungo all'apertura ====\n\nVerificare che le cartelle ({{ic|Documenti}}, {{ic|Scaricati}}, ecc.) del proprio utente non siano in sola lettura.\n\n=== Problemi audio ===\n\n{{Nota|Assicurarsi per prima cosa che il pacchetto {{Pkg|alsa-utils}} sia installato.}}\n\n==== Niente audio dopo la sospensione ====\n\nSe in seguito a una sospensione non si riscontra alcun segnale audio e se in KMix non vengono visualizzati dispositivi audio che dovrebbero invece essere presenti, potrebbe essere utile riavviare plasmashell e pulseaudio:\n\n $ killall plasmashell\n $ systemctl --user restart pulseaudio.service\n $ plasmashell\n\nPotrebbe essere necessario riavviare alcune applicazioni per ripristinare l'audio al loro interno.\n\n==== Impossibile riprodurre file MP3 utilizzando il backend Phonon GStreamer ====\n\nQuesto problema pu\u00f2 essere risolto installando il plugin libav GStreamer (pacchetto {{Pkg|gst-libav}}). Nel caso si continuino a riscontrare problemi, \u00e8 possibile provare a cambiare il backend Phonon utilizzato installandone un altro quale {{AUR|phonon-qt4-vlc}} o {{Pkg|phonon-qt5-vlc}}.\n\nDopodich\u00e9 assicurarsi di selezionare il backend come preferito in ''Impostazioni di sistema > Multimedia > Audio e Video > Backend''.\n\nSe questa voce non viene visualizzata nelle impostazioni di sistema, provare a eseguire {{ic|phononsettings}} nel proprio terminale.\n\n==== Nessuna icona di controllo del volume nel vassoio di sistema e impossibile regolare il volume con il tasto funzione ====\n\nVerificare che {{Pkg|plasma-pa}} sia installato nel proprio sistema.\n\n=== Gestione energetica ===\n\n==== Nessuna opzione di sospensione/ibernazione ====\n\nSe il proprio sistema \u00e8 dotato delle funzionalit\u00e0 per la sospensione o l'ibernazione mediante [[systemd]], ma queste opzioni non vengono visualizzate in KDE, assicurarsi che il pacchetto {{Pkg|powerdevil}} sia installato nel proprio sistema.\n\n=== KMail ===\n\n==== Pulizia della configurazione di Akonadi per risolvere i problemi in KMail ====\n\nVedere [https://userbase.kde.org/KMail/FAQs_Hints_and_Tips#Clean_start_after_a_failed_migration] per maggiori dettagli.\n\nSe si desidera effettuare un backup, copiare le seguenti cartelle di configurazione:\n\n $ cp -a ~/.local/share/akonadi ~/.local/share/akonadi-old\n $ cp -a ~/.config/akonadi ~/.config/akonadi-old\n\n==== Casella inbox IMAP vuota in KMail ====\n\nPer alcuni account IMAP, KMail mostrer\u00e0 la casella inbox come contenitore di livello top (risulta pertanto impossibile leggere i messaggi al suo interno) contenente tutte le altre cartelle di tali account.[https://bugs.kde.org/show_bug.cgi?id=284172]. Per risolvere questo problema \u00e8 sufficiente disabilitare le sottoscrizioni lato server nelle impostazioni account di KMail.\n\n==== Errore di autorizzazione per account EWS in KMail ====\n\nDurante l'impostazione di un account EWS in KMail, \u00e8 possibile che si verifichino errori di autorizzazione anche inserendo credenziali valide e perfettamente funzionanti. Questo problema \u00e8 con ogni probabilit\u00e0 causato da un malfunzionamento nella comunicazione tra [[KWallet]] e KMail. Per aggirare questo inconveniente, impostare una password tramite qdbus:\n\n $ qdbus org.freedesktop.Akonadi.Resource.akonadi_ews_resource_0 /Settings org.kde.Akonadi.Ews.Wallet.setPassword \"XXX\"\n\n=== Attivit\u00e0 di logging aggressiva da parte di QXcbConnection nel journal ===\n\nVedere [[Qt#Disable/Change Qt journal logging behaviour]].\n\n=== Le applicazioni KF5/Qt 5 non visualizzano le icone in i3/FVWM/awesome ===\n\nVedere [[Qt#Configuration of Qt 5 applications under environments other than KDE Plasma]].\n\n=== Problemi con il salvataggio delle credenziali e visualizzazione continua di finestre di dialogo di KWallet ===\n\nSi sconsiglia di disabilitare il sistema di salvataggio delle password di [[KWallet]] nelle impostazioni dell'utente, in quanto questo sistema \u00e8 necessario per il salvataggio delle credenziali cifrate quali le password delle reti WiFi per ogni utente. La disabilitazione di questo sistema pu\u00f2 essere la causa della continua comparsa di finestre di dialogo di KWallet.\n\nNel caso risultino fastidiose le finestre di dialogo per lo sbloccaggio del wallet quando le applicazioni vi richiedono l'accesso, \u00e8 possibile impostare i [[display manager]] [[SDDM]] e [[LightDM]] affinch\u00e9 sblocchino il wallet automaticamente al login. Vedere a tal proposito [[KDE Wallet#Unlock KDE Wallet automatically on login]]. Il primo wallet deve essere generato da KWallet (e non dall'utente) per poter essere utilizzato per le credenziali dei programmi di sistema.\n\nQualora si desideri impedire che le credenziali del wallet vengano aperte nella memoria per ogni applicazione, \u00e8 possibile limitare l'accesso delle applicazioni al wallet stesso utilizzando le funzionalit\u00e0 offerte da {{Pkg|kwalletmanager}} nelle impostazioni di KWallet.\n\nNel caso non si desideri alcun tipo di cifratura delle credenziali, \u00e8 possibile semplicemente lasciare vuoti i campi associati alla password quando KWallet ne richiede la definizione al momento della creazione di un wallet. In questo caso, le applicazioni possono accedere alle password senza che sia necessario prima sbloccare il wallet.\n\n=== Discover non mostra alcuna applicazione ===\n\nQuesto problema pu\u00f2 essere risolto installando il pacchetto {{Pkg|packagekit-qt5}}.\n\n=== Discover non mostra pi\u00f9 gli aggiornamenti dai repository di Arch ===\n\nTalvolta Discover potrebbe non rimuovere il lock alpm PackageKit. Per sbloccarlo, rimuovere {{ic|/var/lib/PackageKit/alpm/db.lck}}. Utilizzare \"Aggiorna\" in Discover e gli aggiornamenti dovrebbero essere visualizzati (se disponibili).\n\n=== Elevato utilizzo della CPU da parte di kscreenlocker_greet con i driver NVIDIA ===\n\nCome descritto in [https://bugs.kde.org/show_bug.cgi?id=347772 KDE Bug 347772] i driver OpenGL NVIDIA e QML potrebbero non funzionare in modo ottimale con Qt 5. La conseguenza potrebbe essere un elevato utilizzo della CPU da parte di {{ic|kscreenlocker_greet}} dopo lo sblocco della sessione. Per aggirare questo problema, impostare la [[environment variable|variabile d'ambiente]] {{ic|QSG_RENDERER_LOOP}} in {{ic|basic}}.\n\nDopodich\u00e9 terminare tutte le istanze precedenti del greeter con il comando {{ic|killall kscreenlocker_greet}}.\n\n=== OS error 22 eseguendo Akonadi su file system ZFS ===\n\nSe la propria cartella home si trova all'interno di un pool [[ZFS]], creare un file {{ic|~/.config/akonadi/mysql-local.conf}} con il seguente contenuto:\n\n [mysqld]\n innodb_use_native_aio = 0\n\nVedere [[MariaDB#OS error 22 when running on ZFS]].\n\n=== Impossibile scorrere all'interno di alcuni programmi quando le relative finestre sono inattive ===\n\nLa causa \u00e8 da attribuirsi alla modalit\u00e0 problematica di gestione degli eventi di scorrimento con il mouse da parte di GTK3. Un modo per aggirare questo problema \u00e8 impostare la [[environment variable|variabile d'ambiente]] {{ic|1=GDK_CORE_DEVICE_EVENTS=1}}. Tuttavia, cos\u00ec facendo si disabilitano anche lo smooth scrolling del touchpad e lo scorrimento su touchscreen.\n\n=== TeamViewer \u00e8 lento ===\n\nTeamViewer potrebbe funzionare lentamente se si utilizzano animazioni (come la minimizzazione della finestre). Il problema pu\u00f2 essere aggirato [[#Disabilitazione del compositing|disabilitando il compositing]] .\n\n=== Kmail, Kontact e Wayland ===\n\nKmail potrebbe smettere di rispondere, mostrare uno sfondo nero nella visualizzazione dei messaggi o comportamenti simili, spesso dopo essere stata minimizzata e poi ripristinata. Un modo per aggirare questo problema potrebbe essere impostare la [[environment variable|variabile d'ambiente]] {{ic|1=QT_QPA_PLATFORM=\"xcb;wayland\"}}. Vedere [https://bugs.kde.org/show_bug.cgi?id=397825 KDE Bug 397825].\n\n=== Sbloccare i widget (Plasma \u2265 5.18) ===\n\nSe si erano precedentemente bloccati i widget, con ogni probabilit\u00e0 ci si trover\u00e0 nell'impossibilit\u00e0 di sbloccarli nuovamente.\nPer farlo \u00e8 sufficiente eseguire questo comando:\n\n $ qdbus org.kde.plasmashell /PlasmaShell evaluateScript \"lockCorona(false)\"\n\nBench\u00e9 ci\u00f2 non sia necessario nella nuova funzione {{ic|Customize Layout}}, se si desidera bloccarli nuovamente eseguire:\n\n $ qdbus org.kde.plasmashell /PlasmaShell evaluateScript \"lockCorona(true)\"\n\n=== KIO apre gli URL con il programma sbagliato ===\n\nVerificare le associazioni dei file per HTML, PHP, ecc... e modificare le impostazioni assegnando un browser. I file di cache di KIO si trovano in {{ic|$HOME/.cache/kioexec}}. Vedere anche [[xdg-utils#URL scheme handlers]].\n\n=== Tab Scorciatoie personalizzate mancante nelle impostazioni di sistema ===\n\nCi\u00f2 si verifica quando il pacchetto {{Pkg|khotkeys}} non \u00e8 installato. Dopo averlo installato, potrebbe essere necessario riavviare l'applicazione Impostazioni di sistema per applicare i cambiamenti.\n\n=== Blocco dello schermo prima della sospensione e dell'ibernazione ===\n\nNell'applicazione Impostazioni di sistema, KDE mette a disposizione un'impostazione che consente di bloccare automaticamente lo schermo dopo il risveglio dalla sospensione. Al momento della riattivazione, [https://www.reddit.com/r/kde/comments/obnpeb/how_to_lock_system_before_suspend/ alcuni utenti] segnalano che lo schermo viene visualizzato brevemente prima di essere bloccato. Per prevenire questo comportamento e far s\u00ec che KDE blocchi lo schermo prima della sospensione, creare il seguente hook in {{man|1|systemd}} come utente root:\n\n{{hc|/usr/lib/systemd/system-sleep/lock_before_suspend.sh|2=\n#!/bin/bash\n\ncase $1/$2 in\n    pre/*)\n        case $2 in\n            suspend{{!}}hibernate)\n                loginctl lock-session\n                sleep 1\n                ;;\n            esac\n        ;;\nesac\n}}\n\nL'utilizzo di ''sleep'' \u00e8 necessario per permettere il completamento del blocco della sessione prima della sospensione del dispositivo. Un valore inferiore non permette il completamento. \n\nDopo aver creato il file, renderlo [[Help:Reading (Italiano)#Rendere eseguibile|eseguibile]]. \n\nInfine, assicurarsi che l'impostazione KDE sia abilitata in selezionando la casella di spunta \"Dopo il risveglio dalla sospensione\" in Impostazioni di sistema > Comportamento dello spazio di lavoro > Blocco dello schermo.\n\n== Vedere anche ==\n\n* [https://www.kde.org/ KDE homepage]\n* [https://dot.kde.org/ KDE news]\n* [https://planet.kde.org/ KDE Blogs]\n* [https://forum.kde.org/ KDE Forums]\n* [https://wiki.kde.org/ KDE Wikis]\n* [https://bugs.kde.org/ KDE bug tracker and reporter]\n* [https://blog.martin-graesslin.com/blog/kategorien/kde/ Martin Graesslin's blog]\n* [https://community.kde.org/Matrix KDE Matrix Rooms]"
                    }
                ]
            },
            "5012": {
                "pageid": 5012,
                "ns": 0,
                "title": "Fonts (Espa\u00f1ol)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Fonts (Espa\u00f1ol)]]\n[[de:Schriftarten]]\n[[en:Fonts]]\n[[ja:\u30d5\u30a9\u30f3\u30c8]]\n[[uk:Fonts]]\n[[zh-hans:Fonts]]\n{{TranslationStatus (Espa\u00f1ol)|Fonts|2020-05-31|617219}}\n{{Related articles start (Espa\u00f1ol)}}\n{{Related2|Font configuration (Espa\u00f1ol)|Configuraci\u00f3n de fuentes}}\n{{Related|Linux console#Fonts}}\n{{Related|Java Runtime Environment fonts}}\n{{Related|Metric-compatible fonts}}\n{{Related|Microsoft fonts}}\n{{Related articles end}}\n\nDe [[Wikipedia:Computer font|Fuentes del ordenador (En ingles)]]: \"Una tipograf\u00eda del ordenador (o fuente) es un archivo de datos electr\u00f3nicos que contiene un conjunto de glifos, caracteres, o s\u00edmbolos como dingbats.\"\n\nNote que ciertas licencias de fuentes pueden imponer ciertas limitaciones legales.\n\n== Formatos de fuente ==\n\nMuchos ordenadores que usan fuentes hoy en d\u00eda est\u00e1n en un formato ''mapa de bits'' (bitmap) o en formato ''contorno'' (outline).\n;Fuentes mapa de bits: Consisten en una matriz de puntos o p\u00edxeles que representa la imagen de cada glifo en cada cara y tama\u00f1o.\n;Fuentes de contorno o ''vectoriales'': Usa curvas de B\u00e9zier, instrucciones de dibujo y formulas matem\u00e1ticas para describir cada glifo, que marcan el contorno del car\u00e1cter en cualquier tama\u00f1o.\n\n=== Formato bitmap ===\n\n* [[Wikipedia:Glyph Bitmap Distribution Format|Distribuci\u00f3n del formato mapa de bits (ingl\u00e9s)]] (BDF) por Adobe.\n* [[Wikipedia:Portable Compiled Format|Formato compilado portable (ingl\u00e9s)]] (PCF) por Xorg.\n* [[Wikipedia:PC Screen Font|Fuentes de pantalla PC]] (PSF) usado por el Kernel para las fuentes de la consola, no soportada por Xorg (la extension de los archivos Unicode PSF es {{ic|psfu}})\n\nEstos formatos tambi\u00e9n pueden estar comprimidos. Vea [[#Bitmap]] para ver las fuentes bitmap disponibles.\n\n=== Formato de contorno ===\n\n* [[Wikipedia:es:Tipo de letra PostScript|Fuentes PostScript]] por Adobe \u2013 con varios formatos, por ejemplo: Fuente ASCII de impresora (PFA) y fuente binaria de impresora (PFB)\n* [[Wikipedia:es:TrueType|TrueType]] por Apple y Microsoft (extensi\u00f3n: {{ic|ttf}})\n* [[Wikipedia:es:OpenType|OpenType]] por Microsoft, construido sobre TrueType (extensiones: {{ic|otf}}, {{ic|ttf}})\n\nPara la mayor\u00eda de casos, la diferencia t\u00e9cnica entre TrueType y OpenType puede ignorarse.\n\n=== Otros Formatos ===\n\nLa aplicaci\u00f3n de composici\u00f3n [[TeX Live (Espa\u00f1ol)|TeX]] y su software complementario, ''Metafuente'', tradicionalmente renderiza caracteres utilizando sus propios m\u00e9todos. Algunas de estas extensiones utilizadas desde estos dos programas que son {{ic|*pk}}, {{ic|*gf}}, {{ic|mf}} y {{ic|vf}}. Las versiones modernas tambi\u00e9n pueden utilizar fuentes TrueType y OpenType.\n\n[https://fontforge.github.io/en-US/ FontForge] ({{Pkg|fontforge}}), un editor de fuentes, puede guardar fuentes en su propio formato basado en texto, {{ic|sfd}}, base de datos de fuentes spline (''s''pline ''f''ont ''d''atabase).\n\nEl formato [https://www.w3.org/TR/SVG/text.html#FontsGlyphs SGV] tiene tambi\u00e9n su propio m\u00e9todo para describir fuentes.\n\n== Instalaci\u00f3n ==\n\nHay varios m\u00e9todos para instalar fuentes.\n\n=== Pacman ===\n\nFuentes y colecciones de fuentes se pueden instalar con [[pacman (Espa\u00f1ol)|pacman]] en repositorios habilitados.\n\nLas fuentes disponibles se pueden encontrar [[pacman (Espa\u00f1ol)#Consultar la base de datos de los paquetes|buscando paquetes]] (Por ej. {{ic|font}} o {{ic|ttf}}).\n\n=== Crear un paquete ===\n\nDeber\u00eda dejar a pacman la habilidad de manejar sus fuentes, que se hace [[Creating packages (Espa\u00f1ol)|creando un paquete]] de Arch. Este se puede compartir con la comunidad a trav\u00e9s del [[AUR (Espa\u00f1ol)|AUR]]. Los paquetes para instalar fuentes son particularmente similares. Vea [[Font packaging guidelines|guia de empaquetaci\u00f3n de fuentes (en ingl\u00e9s)]].\n\nEl nombre de familia de un archivo de fuente se puede adquirir utilizando {{ic|fc-query}} por ejemplo: {{ic|fc-query -f '%{family[0]}\\n' /path/to/file}}. El formato se describe en {{man|3|FcPatternFormat}}.\n\n=== Instalaci\u00f3n manual ===\n\nLa forma recomendada para a\u00f1adir fuentes al sistema que no est\u00e1n en los repositorios est\u00e1 descrito en [[#Crear un paquete]]. Esto le da a pacman la habilidad de quitar o actualizar despu\u00e9s de un tiempo. De todas formas las fuentes tambi\u00e9n se pueden instalar manualmente.\n\nPara instalar fuentes en todo el sistema (disponible para todos los usuarios), mueve la carpeta al directorio {{ic|/usr/share/fonts}}. Todos los usuarios tienen que poder leer el archivo, utilice [[chmod (Espa\u00f1ol)|chmod]] para establecer los permisos correctos (es decir al menos {{ic|0444}} para archivos y {{ic|0555}} para carpetas). Para instalar las fuentes solo para un \u00fanico usuario, utilice {{ic|~/.local/share/fonts/}} ({{ic|~/.fonts/}} est\u00e1 obsoleto).\n\nPara cargar las fuentes directamente en Xserver (lo contrario a utilizar un ''servidor de fuentes'') el directorio recientemente a\u00f1adido tiene que incluirse en la entrada FontPath. Esta entrada se localiza en la secci\u00f3n ''Archivos'' [[Xorg#Configuration|de su archivo de configuraci\u00f3n Xorg]] (por ej. {{ic|/etc/X11/xorg.conf}} o {{ic|/etc/xorg.conf}}). vea [[#Aplicaciones antiguas]] para m\u00e1s detalles.\n\nDespu\u00e9s actualice la cache de fuente de fontconfig: (normalmente no es necesario ya que la librer\u00eda de fontconfig lo hace)\n\n $ fc-cache\n\n=== Aplicaciones antiguas ===\n\nCon aplicaciones antiguas que no soportan fontconfig (por ej. Aplicaciones GTK 1.x, y {{ic|xfontsel}}) se necesita crear el \u00edndice en el directorio de la fuente: \n\n $ mkfontscale\n $ mkfontdir\n\nO incluir m\u00e1s de una carpeta con un comando:\n\n $ for dir in /font/dir1/ /font/dir2/; do xset +fp $dir; done && xset fp rehash\n\nO si la fuente est\u00e1 instalado en una sub-carpeta diferente dentro de por ej. {{ic|/usr/share/fonts}}:\n\n $ for dir in * ; do if [  -d  \"$dir\"  ]; then cd \"$dir\";xset +fp \"$PWD\" ;mkfontscale; mkfontdir;cd .. ;fi; done && xset fp rehash\n\nPuede que a veces el servidor X puede fallar al cargar el directorio de las fuentes y necesites volver a escanear todos los archivos de {{ic|fonts.dir}}:\n\n # xset +fp /usr/share/fonts/misc # Informa al servidor X de los nuevos directorios\n # xset fp rehash                # Fuerza un escaneo nuevo\n\nPara comprobar que la o las fuentes est\u00e1n incluidas:\n\n $ xlsfonts | grep fontname\n\n{{Note (Espa\u00f1ol)|Muchos paquetes configurar\u00e1n autom\u00e1ticamente Xorg para utilizar la fuente sobre la instalaci\u00f3n. Si este es el caso de su fuente este paso no es necesario.}}\n\nTambi\u00e9n puede establecerse globalmente en {{ic|/etc/X11/xorg.conf}} o {{ic|/etc/X11/xorg.conf.d}}.\n\nAqu\u00ed hay un ejemplo de la secci\u00f3n que ha de ser a\u00f1adida a {{ic|/etc/X11/xorg.conf}}. A\u00f1ada o quite paths basado en los particulares requisitos de su fuente.\n\n # Deje que X.Org conozca los directorios personalizados de fuente\n Section \"Files\"\n     FontPath    \"/usr/share/fonts/100dpi\"\n     FontPath    \"/usr/share/fonts/75dpi\"\n     FontPath    \"/usr/share/fonts/cantarell\"\n     FontPath    \"/usr/share/fonts/cyrillic\"\n     FontPath    \"/usr/share/fonts/encodings\"\n     FontPath    \"/usr/share/fonts/misc\"\n     FontPath    \"/usr/share/fonts/truetype\"\n     FontPath    \"/usr/share/fonts/TTF\"\n     FontPath    \"/usr/share/fonts/util\"\n EndSection\n\n=== Advertencias sobre Pango ===\n\nCuando [https://www.pango.org/ Pango] se est\u00e1 utilizando en su sistema \u00e9l leer\u00e1 desde [https://www.freedesktop.org/wiki/Software/fontconfig fontconfig] para saber de donde obtener las fuentes.\n\n (process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'\n (process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'\n\nSi usted ha visto errores similares y/o vee bloques en vez de caracteres en su aplicaci\u00f3n necesita a\u00f1adir las fuentes y actualizar font cache. En este ejemplo se utiliza la fuente {{Pkg|ttf-liberation}} para mostrar la soluci\u00f3n (despu\u00e9s de una instalaci\u00f3n exitosa del paquete) y ejecute como root para habilitarlo para todos los usuarios.\n\n{{hc|# fc-cache|\n/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs\n/usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs\n/usr/share/fonts/encodings: caching, new cache contents: 0 fonts, 1 dirs\n/usr/share/fonts/encodings/large: caching, new cache contents: 0 fonts, 0 dirs\n/usr/share/fonts/util: caching, new cache contents: 0 fonts, 0 dirs\n/var/cache/fontconfig: cleaning cache directory\nfc-cache: succeeded\n}}\n\nPuedes comprobar si una fuente por defecto est\u00e1 configurada como tal:\n\n{{hc|$ fc-match|\nLiberationMono-Regular.ttf: \"Liberation Mono\" \"Regular\"\n}}\n\n== Paquetes de fuente ==\n\nEsta es una lista selectiva que incluye muchos paquetes de fuentes del [[AUR (Espa\u00f1ol)|AUR]] junto con los repositorios oficiales. Las fuentes que tiene soporte [[Wikipedia:es:unicode|Unicode]] est\u00e1n estiquetadas con \"Unicode\", vea el proyecto o la Wikipedia para m\u00e1s detalles.\n\nEl [https://github.com/ternstor/distrofonts script Archfonts Python] se puede utilizar para generar una visi\u00f3n general de todas las fuentes TTF encontradas en los repositorios oficiales / AUR (la generaci\u00f3n de la imagen est\u00e1 hecha utilizando {{AUR|ttf2png}}).\n\n=== Bitmap ===\n\n{{Note (Espa\u00f1ol)|{{Pkg|pango}} 1.44 [https://blogs.gnome.org/mclasen/2019/05/25/pango-future-directions/ termin\u00f3 su soporte para FreeType en favor de HarfBuzz] y por tanto [https://blogs.gnome.org/mclasen/2019/08/07/pango-1-44-wrap-up/ pierde soporte para las fuentes bitmap BDF/PCF tradicionales]. Tambi\u00e9n aplicaciones como por ejemplo {{Pkg|gnome-terminal}} ya no funcionar\u00e1n con esas fuentes mostrando rect\u00e1ngulos en vez de los glifos. Vea {{Bug|63297}}, [https://gitlab.gnome.org/GNOME/pango/issues/386 problema de Pango #386] y [https://github.com/harfbuzz/harfbuzz/issues/1897 problema de HarfBuzz #1897].}}\n\n* Por defecto 8x16.\n* [https://github.com/seraxis/pcf-spectrum-berry Berry] ({{AUR|pcf-spectrum-berry}}) - 8px.\n* [https://www.dcmembers.com/jibsen/download/61/ Dina] ({{Pkg|dina-font}}) \u2013 6pt, 8pt, 9pt, 10pt, mono espaciado , basada en Proggy.\n* [http://openlab.jp/efont/unicode/ Efont] ({{AUR|efont-unicode-bdf}}) \u2013 10px, 12px, 14px, 16px, 24px, normal, negrita y it\u00e1lica.\n* [https://font.gohu.org/ Gohu] ({{AUR|gohufont}}) \u2013 11px, 14px, normal y negrita.\n* [http://artwizaleczapka.sourceforge.net/ Lime] ({{AUR|artwiz-fonts}}).\n* [https://tobiasjung.name/profont/ ProFont] ({{AUR|ttf-profont-iix}}) \u2013 10px, 11px, 12px, 15px, 17px, 22px, 29px, normal.\n* [[Wikipedia:Proggy programming fonts|Proggy]] ({{AUR|proggyfonts}}) \u2013 tiene diferentes variantes.\n* [http://www.fial.com/~scott/tamsyn-font/ Tamsyn] ({{Pkg|tamsyn-font}}).\n* [https://terminus-font.sourceforge.net/ Terminus] ({{Pkg|terminus-font}}).\n* [https://github.com/lucy/tewi-font Tewi] ({{AUR|bdf-tewi-git}}).\n* [https://unifoundry.com/unifont.html Unifont] (Covetura Unicode [[Wikipedia:Unicode font#Comparison of fonts|m\u00e1s extensa]] que cualquier fuente) ({{AUR|bdf-unifont}}).\n\nFuncionan con pango 1.44:\n* [https://terminus-font.sourceforge.net/ Terminus] ({{Pkg|terminus-font}})\n* [https://tobiasjung.name/profont/ ProFont] ({{AUR|profont-otb}}) - OpenType Bitmap (OTB) variante de ProFont.\n* [https://xorg.freedesktop.org/releases/individual/font/ Misc Fijo] {{AUR|xorg-fonts-misc-otb}}.\n* M\u00e1s [https://aur.archlinux.org/packages/?O=0&SeB=n&K=-otb&outdated=&SB=n&SO=a&PP=50&do_Search=Go otb] fuentes en el AUR.\n\n=== Escritura latina ===\n\n==== Familias ====\n\n* [[Wikipedia:Luxi fonts|Luxi fonts]] ({{AUR|font-bh-ttf}}) \u2013 Fuentes Luxi X.Org.\n* [[Wikipedia:es:Bitstream Vera|Bitstream Vera]] ({{Pkg|ttf-bitstream-vera}}) \u2013 serif, sans-serif, y mono espaciada.\n* [https://quoteunquoteapps.com/courierprime/ Courier Prime] ({{AUR|ttf-courier-prime}}) \u2013 Fuente alternativa Courier optimizada para las pantallas.\n* [[Wikipedia:es:Croscore fonts|Croscore fonts]] ({{Pkg|ttf-croscore}}) \u2013 Sustituto de Google para Arial de Window, Times New Roman, y Courier New.\n* [[Wikipedia:es:DejaVu|DejaVu]] ({{Pkg|ttf-dejavu}}) \u2013 Bitstream Vera modificado para una mayor cobertura de Unicode.\n* [[Wikipedia:es:Droid|Droid]] ({{Pkg|ttf-droid}}) \u2013 Fuente por defecto de las versiones antiguas de Android.\n* [[Wikipedia:es:Roboto|Roboto]] ({{Pkg|ttf-roboto}}) \u2013 Fuente por defecto de las versiones nuevas de Android.\n* [[Wikipedia:es:Google Noto|Google Noto]] ({{Pkg|noto-fonts}}) \u2013 Unicode\n* [[Wikipedia:es:Liberation fonts|Liberation fonts]] ({{Pkg|ttf-liberation}}) \u2013 Fuente libre compatible con la m\u00e9trica que sustituye las fuentes Arial, Arial Narrow, Times New Roman y Courier New encontradas en Windows y productos de Microsoft Office.\n* [[Wikipedia:IBM Plex|IBM Plex]] ({{Pkg|ttf-ibm-plex}}) \u2013 serif, sans-serif, sans-serif condensada y monoespaciada con cursiva real.\n* [[Wikipedia:es:Ubuntu (tipo de letra)|Ubuntu]] ({{Pkg|ttf-ubuntu-font-family}})\n* [[Microsoft fonts]] ({{AUR|ttf-ms-win10}}) \u2013 Fuentes de Windows 10.\nPaquetes de fuentes licenciadas por Microsoft:\n* [http://corefonts.sourceforge.net/ Microsoft fonts] ({{AUR|ttf-ms-fonts}}) \u2013 Andal\u00e9 Mono, Courier New, Arial, Arial Black, Comic Sans, Impact, Lucida Sans, Microsoft Sans Serif, Trebuchet, Verdana, Georgia, Times New Roman\n* Vista fonts ({{AUR|ttf-vista-fonts}}) \u2013 Consolas, Calibri, Candara, Corbel, Cambria, Constantia\n\n==== Mono espacio ====\n\nPara m\u00e1s fuentes mono espaciada vea [[#Bitmap]] y [[#Familias]].\n\n* [https://www.marksimonson.com/fonts/view/anonymous-pro Anonymous Pro] ({{Pkg|ttf-anonymous-pro}}, incluido en {{AUR|ttf-google-fonts-git}}).\n* [https://github.com/microsoft/cascadia-code Cascadia Code] ({{Pkg|ttf-cascadia-code}}) \u2013 con ligaduras de programaci\u00f3n.\n* [https://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released Envy Code R] ({{AUR|ttf-envy-code-r}}).\n* Fantasque Sans Mono ({{Pkg|ttf-fantasque-sans-mono}}, {{Pkg|otf-fantasque-sans-mono}}).\n* [[Wikipedia:Fira Sans|Fira Mono]] ({{Pkg|ttf-fira-mono}}, {{Pkg|otf-fira-mono}}) \u2013 dise\u00f1ado para Firefox OS.\n* [https://github.com/tonsky/FiraCode Fira Code] ({{Pkg|ttf-fira-code}}) \u2013 con ligaduras de programaci\u00f3n.\n* [[Wikipedia:es:GNU FreeFont|FreeMono]] ({{Pkg|gnu-free-fonts}}) - Unicode.\n* [https://sourcefoundry.org/hack/ Hack] ({{Pkg|ttf-hack}}) - fuente mono espaciada de c\u00f3digo abierto, utilizada por defecto en KDE Plasma.\n* [[Wikipedia:Inconsolata|Inconsolata]] ({{Pkg|ttf-inconsolata}}, incluida en {{AUR|ttf-google-fonts-git}}) - inspirado por Consolas.\n* [https://leonardo-m.livejournal.com/77079.html Inconsolata-g] ({{AUR|ttf-inconsolata-g}}) - a\u00f1ade algunas modificaciones familiares para el programador.\n* [https://be5invis.github.io/Iosevka/ Iosevka] ({{AUR|ttf-iosevka}}) \u2013 Un esbelto tipo de letra sans-serif y slab-serif inspirado por Pragmata Pro, M+ y PF DIN Mono, dise\u00f1ado para ser la fuente ideal para programar. Soporta ligaduras de programaci\u00f3n y alrededor de 2000 glifos latinos, griegos, cir\u00edlicos, fon\u00e9ticos y PowerLine.\n* [[Wikipedia:Lucida Typewriter|Lucida Typewriter]] (incluida en el paquete {{AUR|jre}}).\n* [[Wikipedia:Menlo (typeface)|Menlo]] (derivado: {{AUR|ttf-meslo}}) - fuente mono espaciada por defecto de OS X.\n* [[Wikipedia:es:Monaco (tipograf\u00eda)|Monaco]] ({{AUR|ttf-monaco}}) - fuente propietaria dise\u00f1ada por Apple para OS X.\n* Monofur ({{Pkg|ttf-monofur}})\n* [https://madmalik.github.io/mononoki Mononoki] ({{AUR|ttf-mononoki}})\n* [[Wikipedia:Source_Code_Pro|Source Code Pro]] ({{Pkg|adobe-source-code-pro-fonts}} incluido en {{AUR|ttf-google-fonts-git}})\n\nWebs relevantes:\n\n* [http://hivelogic.com/articles/top-10-programming-fonts Dan Benjamin's Top 10 fuentes de programaci\u00f3n].\n* [http://www.lowing.org/fonts/ Lista de fuentes de Trevor Lowing ].\n* [https://www.slant.co/topics/67/~what-are-the-best-programming-fonts Slant: \u00bfCuales son las mejores fuentes de programaci\u00f3n?].\n* [https://stackoverflow.com/questions/4689/recommended-fonts-for-programming Stack Overflow: Fuentes recomendadas para programar].\n* [https://app.programmingfonts.org Fuentes de programaci\u00f3n - Pruebe Drive].\n* [http://s9w.io/font_compare Fuentes de programaci\u00f3n Compare].\n\n==== Sans-serif ====\n\n* [http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=andika Andika] ({{AUR|ttf-andika}}).\n* [[Wikipedia:es:GNU FreeFont|FreeSans]] ({{pkg|gnu-free-fonts}}) - Unicode.\n* [https://github.com/rsms/inter Inter UI] ({{Pkg|inter-font}}) \u2013 dise\u00f1ada para las interfaces de usuario.\n* [https://indestructibletype.com/Jost.html Jost*] ({{AUR|otf-jost}}) - Tipo de letra de c\u00f3digo abierto basado en [[Wikipedia:Futura (typeface)|Futura]].\n* [[Wikipedia:es:Linux Libertine|Linux Biolinum]] ({{Pkg|ttf-linux-libertine}}) \u2013 sustituto libre para Times New Roman.\n* [[Wikipedia:PT Sans|PT Sans]] ({{AUR|ttf-google-fonts-git}}) - tres pricipales variantes: normal, estrecho, y subt\u00edtulo - Unicode: lat\u00edn, cir\u00edlico.\n* [[Wikipedia:Source Sans|Source Sans]] ({{Pkg|adobe-source-sans-fonts}})\n* [[Wikipedia:es:Tahoma|Tahoma]] ({{AUR|ttf-tahoma}})\n\n==== Serif ====\n\n* [https://indestructibletype.com/Bodoni.html Bodoni*] ({{AUR|otf-bodoni}}) - Regreso de la fuente [[Wikipedia:Bodoni|Bodoni]] de c\u00f3digo abierto.\n* [https://github.com/octaviopardo/EBGaramond12 EB Garamond] ({{AUR|ebgaramond-otf}}) - Regreso de la fuente [[Wikipedia:Garamond|Garamond]] de c\u00f3digo abierto.\n* [[Wikipedia:es:GNU FreeFont|FreeSerif]] ({{pkg|gnu-free-fonts}}) - Unicode.\n* [[Wikipedia:es:Gentium|Gentium]] ({{Pkg|gentium-plus-font}}) - Unicode: lat\u00edn, griego cir\u00edlico, hebreo.\n* [[Wikipedia:es:Linux Libertine|Linux Libertine]] ({{Pkg|ttf-linux-libertine}}) - Unicode: lat\u00edn, griego cir\u00edlico, hebreo.\n\n==== Sin clasificaci\u00f3n ====\n\n* {{AUR|ttf-cheapskate}} - Coleccion de fuentes de ''dustismo.com''.\n* {{Pkg|ttf-junicode}} - Fuente Junius que contiene casi todos los script y glifos medivales.\n* {{AUR|ttf-mph-2b-damase}} - Cubre el primer plano completo y muchos  scripts.\n* {{Pkg|xorg-fonts-type1}} - Conjuntos IBM Courier y Adobe Utopia del [[Wikipedia:es:Tipo de letra PostScript|tipo de letra PostScript]].\n* {{AUR|all-repository-fonts}} - Meta paquete para todas las fuentes de los repositorios oficiales.\n* {{AUR|ttf-google-fonts-git}} - una enorme colecci\u00f3n de fuentes libres (incluye Ubuntu, Inconsolata, Roboto, etc.) - Nota: Su di\u00e1logo de fuentes puede ser muy grande ya que se a\u00f1adir\u00e1n m\u00e1s de cien fuentes.\n\n=== Escritura no latina ===\n\n==== Escritura antigua ====\n\n* {{AUR|ttf-ancient-fonts}} - Fuentes que contienen simbolos Unicode para las escrituras egeo, egipcio, cuneiforme, anatolian, maya y analecta.\n\n==== \u00c1rabe ====\n\n* {{AUR|ttf-amiri}} - Un tipo de letra cl\u00e1sico en Naskh, estilo pionero de Amiria Press.\n* {{AUR|ttf-arabeyes-fonts}} - Colecci\u00f3n de fuentes \u00e1rabes libres.\n* {{AUR|ttf-qurancomplex-fonts}} - Fuentes de El complejo de impresi\u00f3n del gran Cor\u00e1n Rey Fahd en al-Madinah al-Munawwarah.\n* {{AUR|ttf-sil-lateef}} - Fuente \u00e1rabe Unicode desde SIL [[wikipedia:es:SIL International|SIL]].\n* {{AUR|ttf-sil-scheherazade}} - Fuente \u00e1rabe Unicode desde SIL. (Alternativa de la fuente \u00e1rabe tradicional).\n\n==== Braille ====\n\n*{{AUR|ttf-ubraille}} - Fuente que contiene s\u00edmbolos Unicode para el ''braille''.\n\n==== Chino, japon\u00e9s, coreano, vietnamita ====\n\n===== Pan-CJK =====\n\n*Fuentes Adobe Source Han - Una gran colecci\u00f3n de fuentes con un soporte comprensible de chino simplificado, chino tradicional, japones, y coreano, con un dise\u00f1o y aspecto consistente.\n**{{Pkg|adobe-source-han-sans-otc-fonts}} - Sans fonts.\n**{{Pkg|adobe-source-han-serif-otc-fonts}} - Serif fonts.\n\n*{{Pkg|noto-fonts-cjk}} - Otra gran colecci\u00f3n de fuentes con un soporte comprensible de chino simplificado, chino tradicional, japones, y coreano, con un dise\u00f1o y aspecto consistente. Actualmente es una versi\u00f3n renombrada de {{Pkg|adobe-source-han-sans-otc-fonts}}.\n\n===== Chino =====\n\nVea [[Localization (Espa\u00f1ol)/Chinese (Espa\u00f1ol)#Fuentes]].\n\n===== Japon\u00e9s =====\n\nVea [[Localization (Espa\u00f1ol)/Japanese (Espa\u00f1ol)#Fuentes]].\n\n===== Coreano =====\n\nVea [[Localization (Espa\u00f1ol)/Korean (Espa\u00f1ol)#Fuentes]].\n\n===== Vietnamita =====\n\n* {{Pkg|ttf-hannom}} - Fuente vietnamita TrueType font para los caracteres ch\u1eef N\u00f4m.\n\n==== Cir\u00edlico ====\n\nVea tambi\u00e9n [[#Escritura latina]]\n\n* {{AUR|ttf-paratype}} - Familia de fuente por ParaType: sans, serif, mono, cir\u00edlico extendido y lat\u00edn, licencia OFL.\n* {{AUR|otf-russkopis}} - Una fuente libre cursiva OpenType para la escritura cir\u00edlica.\n\n==== Griego ====\n\nCasi todas las fuentes Unicode contienen el conjunto de caracteres griegos (polit\u00f3nico incluido). Estas fuentes adicionales puede que no tengan el conjunto completo de caracteres Unicode pero utiliza una gran calidad en los caracteres griegos (y en el lat\u00edn, por supuesto).\n\n* {{AUR|otf-gfs}} - Selecci\u00f3n de fuentes de OpenType de la sociedad griega de fuentes.\n* {{AUR|ttf-mgopen}} - Fuentes profesionales TrueType por Magenta.\n\n==== Hebreo ====\n\n* {{AUR|opensiddur-hebrew-fonts}} - Gran colecci\u00f3n de fuentes hebreas con licencia de c\u00f3digo abierto.\n* {{AUR|culmus}} - Una buena colecci\u00f3n de fuentes hebreas de c\u00f3digo abierto. Tambi\u00e9n hay algunas fuentes latinas, griegas, cir\u00edlicas, ar\u00e1bicas y am\u00e1ricos.\n\n==== \u00cdndico ====\n\nVea [[Localization (Espa\u00f1ol)/Indic (Espa\u00f1ol)#Fuentes]].\n\n==== Camboyano ====\n\n* {{Pkg|ttf-khmer}} - Fuente que cubre los glifos del lenguaje camboyano.\n* [https://www.google.com/fonts/specimen/Hanuman Hanuman] ({{AUR|ttf-google-fonts-git}})\n\n==== Mongol y tunguses ====\n\n* {{AUR|ttf-abkai}} - Fuentes para las escrituras sibe, smnchu y daur (incompleto, a\u00fan en desarrollo).\n\n==== Persa ====\n\n* {{AUR|persian-fonts}} - Meta-paquete para instalar todas las fuentes persas del AUR.\n* {{AUR|borna-fonts}} - Serie de fuentes persa B Borna Rayaneh Co..\n* {{AUR|iran-nastaliq-fonts}} - Fuente caligr\u00e1fica libre Unicode persa.\n* {{AUR|iranian-fonts}} - Familia Iranian-Sans e Iranian-Serif de fuentes persa.\n* {{AUR|ir-standard-fonts}} - Fuentes persas est\u00e1ndar del Consejo Supremo de Tecnolog\u00edas de la Informaci\u00f3n y la Comunicaci\u00f3n de Ir\u00e1n (SCICT).\n* {{AUR|persian-hm-ftx-fonts}} - Series de fuentes persa derivado de X Series 2, Metafont y Fuentes FarsiTeX con la caracter\u00edstica kashida.\n* {{AUR|persian-hm-xs2-fonts}} - Series de fuentes persa derivado de X Series 2 con la caracter\u00edstica kashida.\n* {{AUR|gandom-fonts}}, {{AUR|parastoo-fonts}}, {{AUR|sahel-fonts}}, {{AUR|samim-fonts}}, {{AUR|shabnam-fonts}}, {{AUR|tanha-fonts}}, {{AUR|vazirmatn-fonts}}, {{AUR|vazir-code-fonts}} - Bonitas fuentes persa hecho por Saber RastiKerdar.\n* {{AUR|ttf-yas}} - Serie de fuente persa Yas (con '''hueco cero''').\n* {{AUR|ttf-x2}} - Fuentes libres con soporte para persa, \u00e1rabe, urdu, pashto, dari, uzbeko, kurdo, uigur, turco antiguo (otomano) y turco moderno (romano).\n\n==== Tai\u2013Kadai ====\n\n* {{AUR|fonts-tlwg}} - Colecci\u00f3n de fuentes escalables tailandesas.\n* {{AUR|ttf-lao}} - Fuente TTF Lao (Phetsarath_OT)\n\n==== Tibeto-Burman ====\n\n* {{Pkg|ttf-tibetan-machine}} - Fuente TTF Tibetan Machine.\n* {{AUR|ttf-sil-padauk}} - Fuente Unicode que admite las numerosas y diversas lenguas que utilizan la escritura de Myanmar.\n\n=== Emoji y s\u00edmbolos ===\n\nLas fuentes [[Wikipedia:es:Emoji|Emoji]] vienen en diferentes formatos: CBDT/CBLC (Google), SBIX (Apple), COLR/CPAL (Microsoft), SVG (Mozilla/Adobe).\n\nLos emojis deben funcionar sin ninguna configuraci\u00f3n adicional si tiene al menos una fuente emoji, de los formatos soportados, instalada. Sin embargo la [[Wikipedia:Emoji#Emoji versus text presentation|representaci\u00f3n de emojis (en ingl\u00e9s)]], de acuerdo con los requisitos estandar, requiere de [https://github.com/google/emoji-segmenter un c\u00f3digo adicional para manejarlos]. Para obligar el uso de la fuente emoji vea [[Font configuration (Espa\u00f1ol)#Obligar fuente de emoticonos]].\n\n{| class=\"wikitable\"\n|-\n! Software !! CBDT/CBLC !! SBIX !! COLR/CPAL !! SVG !! Representaci\u00f3n !! Vea tambi\u00e9n\n|-\n! [[Wikipedia:es:Freetype|Freetype]]\n| {{S\u00ed}} || {{S\u00ed}} || {{S\u00ed}} || {{No|https://savannah.nongnu.org/bugs/?46141}} || {{-}} || {{-}}\n|-\n! [[Wikipedia:es:Pango|Pango]]\n| colspan=4 {{C|Freetype}} || {{S\u00ed}} || [https://gitlab.gnome.org/GNOME/pango/-/issues/298]\n|-\n! [[List of applications (Espa\u00f1ol)/Internet (Espa\u00f1ol)#Basado en WebKit|WebKitGTK]]\n| colspan=4 {{C|Freetype}} || {{S\u00ed|https://trac.webkit.org/changeset/239822/webkit}} || {{-}}\n|-\n! [[Qt]]\n| colspan=4 {{C|Freetype}} || {{No|https://bugreports.qt.io/browse/QTBUG-71568}} || {{-}}\n|-\n! [[Chromium (Espa\u00f1ol)|Chromium]]\n| colspan=4 {{C|Freetype}} || {{Y|[https://chromium.googlesource.com/chromium/src.git/+/671511b00e2d6c374a3079c1c379d2d0dfad32fe Siguiente versi\u00f3n]}} || {{-}}\n|-\n! [[Firefox (Espa\u00f1ol)|Firefox]]\n| colspan=3 {{C|Freetype}} || {{S\u00ed}} || {{No|1=https://bugzilla.mozilla.org/show_bug.cgi?id=1509988}} || [[Firefox#Font troubleshooting]]\n|}\n\nCBDT/CBLC:\n\n* {{Pkg|noto-fonts-emoji}} \u2014 Emoji 12.1 de c\u00f3digo abierto de Google.\n* {{Pkg|ttf-joypixels}} \u2014 Emoji 12.1 propietario del creador EmojiOne.\n* {{AUR|ttf-twemoji}} \u2014 Emoji 13.0 de c\u00f3digo abierto de Twitter.\n\nSVG:\n\n* {{AUR|otf-openmoji}} \u2014 Emoji 12.1. de c\u00f3digo abierto de la universidad de dise\u00f1o de Alemania Schw\u00e4bisch Gm\u00fcnd. \n* {{AUR|ttf-twemoji-color}} \u2014 Emoji 12.0 de c\u00f3digo abierto de Twitter.\n\nContorno solo:\n\n* {{AUR|ttf-symbola}} \u2014 proporciona muchos s\u00edmbolos Unicode, incluido emoji.\n\n[[wikipedia:es:Emoticono#Estilo_de_Asia_Oriental|Kaomoji]] a veces como \"emoticonos japoneses\" est\u00e1n compuestos por caracteres de varios conjuntos, incluido CJK y fuentes \u00edndicas. Por ejemplo, estos paquetes proporcionan muchos kaomoji existentes: {{Pkg|gnu-free-fonts}}, {{Pkg|ttf-arphic-uming}}, y {{Pkg|ttf-indic-otf}}.\n\n=== Matem\u00e1ticas ===\n\n* {{AUR|ttf-cm-unicode}}, {{AUR|otf-cm-unicode}} - [[wikipedia:Computer Modern|Computaci\u00f3n moderna (ingl\u00e9s)]] (de la fama de TeX).\n* {{Pkg|otf-latin-modern}}, {{Pkg|otf-latinmodern-math}} - Versi\u00f3n mejorada de fuentes computacionales modernas usadas en LaTeX.\n* {{AUR|otf-stix}} - Versi\u00f3n independiente, una de las m\u00e1s recientes de STIX.\n\n{{Pkg|texlive-core}} y {{Pkg|texlive-fontsextra}} contiene muchas fuentes matem\u00e1ticas como la matem\u00e1tica moderna latina y [[Wikipedia:STIX Fonts project|STIX Fonts]]. Vea [[TeX Live#Making fonts available to Fontconfig|Hacer que las fuentes est\u00e9n disponibles en Fontconfig (en ingl\u00e9s)]] para la configuraci\u00f3n.\n\n=== Fuentes de otros sistemas operativos ===\n\n* {{AUR|ttf-mac-fonts}} - Fuentes de TrueType Apple MacOS.\n\nVea [[Metric-compatible fonts|Fuentes m\u00e9tricamente compatibles (ingl\u00e9s)]], que muestra las alternativas para las  [[Microsoft fonts|Fuentes de Microsoft (ingl\u00e9s)]].\n\n== Orden de fuentes alternativas ==\n\nAutom\u00e1ticamente fontconfig selecciona una fuente que cumpla con los requisitos de ese momento. Es decir, que si una ventana contiene ingl\u00e9s y chino, fontconfig cambiar\u00e1 de fuente para el chino si la que est\u00e1 por defecto no lo soporta.\n\nFontconfig permite que cada usuario configure el orden a trav\u00e9s de {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}}.\nSi prefiere que una fuente particular se seleccione antes que su fuente Serif favorita, el archivo queda as\u00ed:\n\n <?xml version=\"1.0\"?>\n <!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">\n <fontconfig>\n <alias>\n    <family>serif</family>\n    <prefer>\n      <family>El nombre de su fuente serif favorita</family>\n      <family>El nombre de su fuente china</family>\n    </prefer>\n  </alias>\n </fontconfig>\n\n{{Tip (Espa\u00f1ol)|Si usa localmente chino, establezca {{ic|LC_LANG}} a {{ic|und}} para que funcione. Si no los textos chinos e ingleses ser\u00e1n renderizados por la fuente china.}}\n\nTambi\u00e9n se puede a\u00f1adir una secci\u00f3n para sans-serif y monospace. Para m\u00e1s informaci\u00f3n. eche un vistazo al manual de fontconfig.\n\nVea tambi\u00e9n [[Font configuration (Espa\u00f1ol)#Reemplazar o establecer las fuentes por defecto|Establecer o reemplazar las fuentes por defecto]].\n\n== Alias de fuente ==\n\nHay varios alias de fuentes que representa a otras fuentes con la intenci\u00f3n de que las aplicaciones utilicen fuentes similares. Los alias m\u00e1s comunes son: {{ic|serif}} para las fuentes de tipo serif (p.ej. DejaVu Serif); {{ic|sans-serif}} para las fuentes del tipo sans-serif (p.ej. DejaVu Sans); y {{ic|monospace}} para las fuentes mono-espaciadas (p.ej. DejaVu Sans Mono). Sin embargo, el aspecto de las fuentes que representan puede variar y la relaci\u00f3n no se observa en las herramientas de gesti\u00f3n de fuentes, como las que se encuentran en [[KDE (Espa\u00f1ol)|KDE]] y otros [[desktop environments (Espa\u00f1ol)|entornos de escritorio]].\n\nPara invertir un alias y encontrar qu\u00e9 fuente es la que representa, ejecute:\n\n{{hc|$ fc-match monospace|\nDejaVuSansMono.ttf: \"DejaVu Sans Mono\" \"Book\"\n}}\n\nEn este caso, {{ic|DejaVuSansMono.ttf}} es la fuente representada por el alias de monospace.\n\n== Consejos y trucos ==\n\n=== Listar todas las fuentes instaladas ===\n\nPuede utilizar el siguiente comando para listar todas las fuentes instaladas fontconfig que est\u00e1n disponibles en su sistema.\n\n $ fc-list\n\n=== Listar las fuentes instaladas de un lenguaje particular ===\n\nLas aplicaciones y navegadores selecciona y muestra fuentes dependiendo de la configuraci\u00f3n de fontconfig y de los glifos disponibles para el texto Unicode. Para listar las fuentes instaladas de un lenguaje particular, ejecute {{ic|1=fc-list :lang=\"\"two letter language code\"\"}}. Por ejemplo, para listar las fuentes \u00e1rabes o las que soportan glifos \u00e1rabes instaladas:\n{{hc|1=$ fc-list -f '%{file}\\n' :lang=ar|2=\n/usr/share/fonts/TTF/FreeMono.ttf\n/usr/share/fonts/TTF/DejaVuSansCondensed.ttf\n/usr/share/fonts/truetype/custom/DroidKufi-Bold.ttf\n/usr/share/fonts/TTF/DejaVuSansMono.ttf\n/usr/share/fonts/TTF/FreeSerif.ttf\n}}\n\n=== Listar las fuentes instaladas de un caracter Unicode particular ===\n\nPara buscar fuentes monoespaciadas que soporten un punto de c\u00f3digo en particular:\n\n $ fc-match -s monospace:charset=1F4A9\n\n=== Establecer la fuente del terminal sobre la marcha ===\n\nPara los emuladores de terminal que usan [[X resources]], p.ej. [[xterm]] o [[rxvt-unicode (Espa\u00f1ol)|rxvt-unicode]], las fuentes se pueden establecer utilizando [[Bash (Espa\u00f1ol)/Prompt customization (Espa\u00f1ol)#Secuencias de escape Bash|secuencias de escape]]. Especificamente, {{ic|echo -e \"\\033]710;$font\\007\"}} para cambier la fuente normal ({{ic|*font}} en {{ic|~/.Xresources}}), y reemplazarla {{ic|710}} con {{ic|711}}, {{ic|712}}, y {{ic|713}} para cambiar las fuentes {{ic|*boldFont}}, {{ic|*italicFont}}, y {{ic|*boldItalicFont}}, respectivamente.\n\n=== Cach\u00e9 espec\u00edfico de fuente de una aplicaci\u00f3n ===\n\nMatplotlib ({{Pkg|python-matplotlib}} o {{AUR|python2-matplotlib}}) usa su propia cache de fuente, as\u00ed que despu\u00e9s de actualizar las fuentes, aseg\u00farese de eliminar {{ic|~/.matplotlib/fontList.cache}}, \n{{ic|~/.cache/matplotlib/fontList.cache}}, {{ic|~/.sage/matplotlib-1.2.1/fontList.cache}}, etc. As\u00ed regenerar\u00e1 su cach\u00e9 de fuente y encontrar\u00e1 las nuevas fuentes [https://discourse.matplotlib.org/t/getting-matplotlib-to-recognize-a-new-font/17754].\n\n=== Texto bidireccional en el terminal ===\n\nEjecute BiCon ({{AUR|bicon-git}}) para conseguir mostrar correctamente el texto ar\u00e1bico y hebreo dentro del terminal.\n\n== Vea tambi\u00e9n ==\n\n* [http://behdad.org/text/ Estado de la representaci\u00f3n de texto]\n* [https://fontlibrary.org/es Biblioteca de fuentes] - Fuentes con licencia libre.\n* [https://screenshots.debian.net/packages?search=fonts&show=with Fuentes en screenshots.debian.net]"
                    }
                ]
            },
            "5470": {
                "pageid": 5470,
                "ns": 0,
                "title": "Pidgin",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Instant messaging]]\n[[Category:Internet Relay Chat]]\n[[Category:XMPP]]\n[[de:Pidgin]]\n[[ja:Pidgin]]\n[https://www.pidgin.im/ Pidgin] is a chat program which lets you log into accounts on multiple chat networks simultaneously. It is compatible with Jabber/XMPP, Bonjour, Gadu-Gadu, IRC, Novell GroupWise Messenger, Lotus Sametime, SILC, SIMPLE, and Zephyr, and many more chat networks with plugins.\n\n== Installation ==\n\n[[Install]] the {{Pkg|pidgin}} package.\nNotable variants are:\n* {{App|Pidgin Light|Light Pidgin version without GStreamer, Tcl/Tk, XScreenSaver, video/voice support.|https://pidgin.im/|{{AUR|pidgin-light}}}}\n\nYou may also want to install additional plugins from the {{Pkg|purple-plugin-pack}}.\n\n== Spellcheck ==\n\nThe {{pkg|aspell}} package will be installed as a dependency, but to prevent all of your text from showing up as incorrect you will need to install an aspell dictionary. See the [[aspell]] article.\n\n{{Note|The '''switch spell''' plugin is included in the {{Pkg|purple-plugin-pack}}. It allows you to switch between multiple languages.}}\n\n== Services ==\n\n=== AIM ===\n\nPidgin has out-of-the-box support for AOL Instant Messenger (AIM). Although AIM has officially ceased, unofficial AIM-based servers like [https://phoenixim.ddns.net/ AIM Phoenix] operate and can be used on Pidgin by changing the server address in the AIM protocol account settings.\n\n=== Discord plugin ===\n\n{{Warning|There is currently an open [https://github.com/EionRobb/purple-discord/issues/410 GitHub issue] regarding temporary IP bans after using {{ic|purple-discord}}.}} \n\nInstall the {{AUR|purple-discord-git}} package.\n\nThen add a new account, select Discord as the protocol, enter your Discord login e-mail address and its password.\n\n=== Facebook ===\n\n[[Install]] the {{Pkg|purple-facebook}} package. (or {{AUR|purple-facebook-git}})\n\nThen add a new account, select Facebook as the protocol, enter your [https://www.facebook.com/help/211813265517027 Facebook username] and password and login.\n\n=== Google (Hangouts) ===\n\n[[Install]] the {{AUR|purple-hangouts-git}} package.\n\n=== ICQ ===\n\nPidgin only comes with the original OSCAR ICQ protocol. Since December 2018, the old OSCAR protocol is no longer officially supported as it has been replaced by the newer WIM protocol. To make use of the new WIM protocol on ICQ, you should install the {{AUR|purple-icyque-git}} plug-in.\n\n=== IRC ===\n\nThis is a small tutorial for connecting to the [https://libera.chat/ Libera Chat] network. It should work for other IRC networks as long as you substitute the port numbers and other specific settings.\n\nGo to ''Accounts > Manage Accounts > Add''. Fill/select the following options:\n Protocol: IRC\n Username: ''your username''\n\nNow go to ''Buddies > New instant message'' (or hit {{ic|Ctrl+m}}), fill 'libera.chat' in the textbox and ''username''@irc.libera.chat, then click 'Ok'. Type:\n /join #archlinux\nThe channel is irrelevant.\n\nIn order to register your nick, type:\n /msg nickserv register ''password'' ''email-addres''\n\nFollow the instructions from the registration mail. For further help type:\n /msg nickserv help\n /msg nickserv help ''command''\n\nThis final step will add your channel to 'Buddies': go to ''Buddies > Add chat'', fill the correct channel in the textbox named channel (#archlinux).\n\n=== Sametime protocol ===\n\n[[Install]] the {{AUR|libpurple-meanwhile}} package. The 'Sametime' protocol will be available when creating an account.\n\n=== SIP/Simple protocol for Skype for Business/Office 365/Lync ===\n\n[[Install]] the {{AUR|pidgin-sipe}} package. If you are unable to connect, try editing the User Agent value in the Advanced preferences tab. Further details can be found in the faq page of the [https://sourceforge.net/p/sipe/wiki SIPE wiki].\n\n=== Skype plugin ===\n\nInstall the {{Pkg|purple-skypeweb}} or {{AUR|purple-skypeweb-git}} package.\n\n=== Slack plugin ===\n\nInstall the {{AUR|slack-libpurple-git}} package.\n\n=== Rocket.Chat plugin ===\n\nInstall the {{AUR|purple-rocketchat-git}} package.\n\n=== Telegram plugin ===\n\n{{Out of date|The ''telegram-purple'' project is [https://github.com/majn/telegram-purple#this-project-is-abandoned-see-instead-tdlib-purple abandoned]. See also [[Special:Diff/704779|Diff/704779]]. As mentioned in the previous links, {{AUR|telegram-tdlib-purple-git}} is its successor package.}}\n\nInstall the {{AUR|telegram-purple}} or {{AUR|telegram-purple-git}} package. \n\nEnter your Telegram phone number when creating the account, after which you will receive an SMS text message with a confirmation code, which you will have to enter to authorize your Telegram protocol account on Pidgin.\n\n=== XMPP ===\n\nPidgin has out-of-the-box support for the XMPP/Jabber chat protocol. Some additional plugins exist for support of XMPP extensions such as OMEMO ({{Pkg|libpurple-lurch}}) or Message Carbons ({{AUR|libpurple-carbons}}).\n\n== Security ==\n\nPidgin uses Libpurple 2 which stores passwords unencrypted (in plaintext) in $HOME/.purple/account.xml, see [https://developer.pidgin.im/wiki/PlainTextPasswords]. You can store them in a keyring by using a plugin like:\n\n* {{AUR|purple-gnome-keyring}}\n* {{Pkg|pidgin-kwallet}}\n\n== Privacy ==\n\nPidgin has some privacy rules set by default. Namely, the whole world cannot send you messages;\nonly your contacts or people selected from a list. Adjust this, and other settings in ''Tools > Privacy''.\n\n=== Pidgin-OTR ===\n\nThis is a plugin that brings Off-The-Record (OTR) messaging to Pidgin. OTR is a cryptographic protocol that will encrypt your instant messages.\n\nFirst you need to install {{Pkg|pidgin-otr}} from the official repositories. Once this has been done, OTR has been added to Pidgin.\n\n# To enable OTR, start Pidgin and go to ''Tools > Plugins'' or press {{ic|Ctrl+u}}. Scroll down to the entry entitled \"Off-The-Record Messaging\". If the checkbox beside it is not checked, check it.\n# Next, click on the plugin entry and select \"Configure plugin\" at the bottom. Select which account you wish to generate a key for, then click \"Generate\". You will have now generated a private key. If you are not sure what the other options do, leave them, the default options will work fine.\n# The next step is to contact a buddy who also has OTR installed. In the chat window, a new icon should appear to the top right of your text input box. Click on it, and select \"Start private conversation\". This will start an 'Unverified' session. Unverified sessions are encrypted, but not verified - that is, you have started a private conversation with someone using your buddy's account who has OTR, but who might not be your buddy. The steps for verification of a buddy are beyond the scope of this section; however, they might be added in the future.\n\n=== Pidgin-Encryption ===\n\n{{AUR|pidgin-encryption}} transparently encrypts your instant messages with RSA encryption. Easy-to-use, but very secure.\n\nYou can enable it the same way as Pidgin-OTR.\n\nNow you can open conversation window and new icon should appear beside menu. Press it to enable or disable encryption.\nAlso if you want to make encryption enabled by default right-click on a buddy's name (in your buddy list), and select Turn Auto-Encrypt On. Now, whenever a new conversation window for that buddy is opened, encryption will start out as enabled.\n\n=== Pidgin-GPG ===\n\nPidgin-GPG transparently encrypt conversations using GPG, and taking advantage of all the features of a pre-existing WoT.\n\nThe plugin is available on AUR as {{aur|pidgin-gpg-git}}. It can be enabled the same way as the previously mentioned ones.\n\n== Other packages ==\n\nArch has other Pidgin-related packages. Here are the most popular (for a thorough list, search the AUR):\n*{{Pkg|pidgin-libnotify}} - Libnotify support, for theme-consistent notifications\n*{{AUR|pidgin-latex}} - A small latex plugin for pidgin. Put math between $$ and have it rendered (recepient also needs to have this installed)\n\n== Auto logout on suspend ==\n\nIf you suspend your computer pidgin seems to stay connected for about 15 minutes. To prevent message loss, it is needed to set your status offline before suspending or hibernating. The status message will not be changed.\n\nTherefore create a new systemd unit {{ic|pidgin-suspend}} in {{ic|/etc/systemd/system}}\nTake the following snippet and replace ''myuser'' with your user.\n\n [Unit]\n Description=Suspend Pidgin\n Before=sleep.target\n StopWhenUnneeded=yes\n \n [Service]\n Type=oneshot\n User=''myuser''\n RemainAfterExit=yes\n Environment=DISPLAY=:0\n ExecStart=-/usr/bin/purple-remote setstatus?status=offline\n ExecStop=-/usr/bin/purple-remote setstatus?status=available\n \n [Install]\n WantedBy=sleep.target\n\n== Minimize to tray ==\n\nTo make use of the [[Xfce]] system tray go to preferences and enable the system tray in the section \"Interface\".\nYou can now close the main window and run pidgin minimized. You will also be able to see message notifications in the tray.\n\n== History import Kopete to Pidgin ==\n\n* Install {{Pkg|xalan-c}} and create {{ic|~/bin/history_import_kopete2pidgin.sh}} with this code:\n{{bc|<nowiki>\n#!/bin/sh\n\nKOPETE_DIR=~/.kde4/share/apps/kopete/logs\nPIDGIN_DIR=~/.purple/logs\nCURRENT_DIR=~/bin\n\ncd\n\nif [ ! -d $KOPETE_DIR ];then\n    echo \"Kopete log directory not found\"\n    exit 1;\nfi\n\nif [ ! -d $PIDGIN_DIR ];then\n    echo \"Pidgin log directory not found\"\n    exit 2;\nfi\n\nfor KOPETE_PROTODIR in $(ls $KOPETE_DIR); do\n    PIDGIN_PROTODIR=$(echo $KOPETE_PROTODIR | sed 's/Protocol//' | tr [:upper:] [:lower:])\n    for accnum in $(ls $KOPETE_DIR/$KOPETE_PROTODIR); do\n        echo \"Account number: $accnum\"\n        for num in $(ls $KOPETE_DIR/$KOPETE_PROTODIR/$accnum); do\n            FILENAME=$(Xalan $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin_filename.xslt)\n            if [ $? = 0 ]; then\n                echo \"$KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num\"\n                echo \" -> $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME\"\n                mkdir -p $(dirname $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME)\n                Xalan -o $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin.xslt\n            fi\n        done\n    done\ndone\n</nowiki>}}\n* Make {{ic|~/bin/history_import_kopete2pidgin.sh}} [[executable]]\n* Create {{ic|~/bin/history_import_kopete2pidgin.xslt}} with this code:\n{{bc|1=\n<?xml version=\"1.0\"?>\n<nowiki><xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"></nowiki>\n    <xsl:output method=\"text\" indent=\"no\" />\n\n    <xsl:template match=\"kopete-history\">\n        <xsl:apply-templates select=\"msg\"/>\n    </xsl:template>\n\n    <xsl:template match=\"msg\">\n        <xsl:text>(</xsl:text>\n        <xsl:value-of select=\"translate(substring-after(@time,' '),':',',')\"/>\n        <xsl:text>) </xsl:text>\n        <xsl:value-of select=\"@nick\"/>\n        <xsl:if test=\"not(@nick) or @nick = ''\">\n            <xsl:value-of select=\"@from\"/>\n        </xsl:if>\n        <xsl:text>: </xsl:text>\n        <xsl:value-of select=\".\"/>\n\t\t<xsl:text>\n</xsl:text>\n    </xsl:template>\n</xsl:stylesheet>\n</nowiki>}}\n* Create {{ic|~/bin/history_import_kopete2pidgin_filename.xslt}} with this code:\n{{bc|1=\n<?xml version=\"1.0\"?>\n<nowiki><xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"></nowiki>\n    <xsl:output method=\"text\" indent=\"no\" />\n\n    <xsl:template match=\"kopete-history\">\n        <xsl:value-of select=\"head/contact[@type = 'myself']/@contactId\"/>\n        <xsl:text>/</xsl:text>\n        <xsl:value-of select=\"head/contact[not(@type)]/@contactId\"/>\n        <xsl:text>/</xsl:text>\n        <xsl:value-of select=\"head/date/@year\"/>\n        <xsl:text>-</xsl:text>\n        <xsl:if test=\"head/date/@month &amp;lt; 10\">0</xsl:if>\n        <xsl:value-of select=\"head/date/@month\"/>\n        <xsl:text>-</xsl:text>\n        <xsl:if test=\"string-length(substring-before(msg[1]/@time,' ')) &amp;lt; 2\">0</xsl:if>\n        <xsl:value-of select=\"translate(msg[1]/@time,' :','.')\"/>\n        <xsl:text>+0200EET.txt</xsl:text>\n    </xsl:template>\n</xsl:stylesheet>\n}}\n* Execute the command in the shell:\n\n ~/bin/history_import_kopete2pidgin.sh\n\n== Backup ==\n\nSave {{ic|~/.purple}} to backup all message logs, accounts and other application data.\n\n== Troubleshooting ==\n\n=== Version Match for Sametime ===\n\nThere was an issue if you would connect to the Sametime via Pidgin, it prompt \"Version Match\". A potential solution on the client side is to fake the version in accounts.xml. Insert/change the lines:\n\n <setting name='fake_client_id' type='bool'>1</setting>\n <setting name='client_minor' type='int'>8511</setting>\n\nin the <settings> section of Sametime account in accounts.xml which is located in $HOME/.purple/ folder.\n\n=== Browser error ===\n\nIf clicking a link within Pidgin creates an error message about trying to use 'sensible-browser' to open a link, try editing {{ic|~/.purple/prefs.xml}}. Find the line referencing 'sensible-browser' and change it to this:\n <pref name='command' type='path' value='firefox'/>\n\nThis example assumes you use [[Firefox]].\n\nAs an alternative if the method above does not work you can set the desired browser in the pidgin preferences in the section \"Browser\".\n\n=== ICQ Buddy Information encoding fix ===\n\nYou can change encoding for ICQ account if encoding in Buddy Information is not correct:\n Account > ''your ICQ account'' > Edit account > Advanced tab\nSelect {{ic|Encoding: CP1251}} (for Cyrillic).\n\n== See also ==\n\n* [https://developer.pidgin.im/wiki/Using%20Pidgin Using Pidgin]\n* [[Wikipedia:Pidgin_(software)]]\n* [http://lukav.com/wordpress/2008/03/30/history-import-kopete-to-pidgin History import Kopete to Pidgin]\n* [https://confluence.atlassian.com/hipchatkb/connecting-to-hipchat-using-pidgin-751436267.html Connecting to HipChat using Pidgin]\n*{{pkg|finch}}, a console based libpurple client, essentially Pidgin in a terminal"
                    }
                ]
            },
            "5601": {
                "pageid": 5601,
                "ns": 0,
                "title": "Firefox (Italiano)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "#redirect [[Firefox]]"
                    }
                ]
            },
            "5909": {
                "pageid": 5909,
                "ns": 0,
                "title": "List of applications",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Applications]]\n[[Category:Lists of software]]\n[[bs:List of applications]]\n[[de:Liste von Anwendungen]]\n[[es:List of applications]]\n[[fa:\u0644\u06cc\u0633\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc]]\n[[ja:\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u4e00\u89a7]]\n[[lt:List of applications]]\n[[pt:List of applications]]\n[[tr:List of applications]]\n[[zh-hans:List of applications]]\n{{List of applications navigation}}\n\n{{Related articles start}}\n{{Related|Core utilities}}\n{{Related|List of games}}\n{{Related articles end}}\n\nThis article is a general list of applications sorted by category, as a reference for those looking for packages. Many sections are split between console and graphical applications.\n\n{{Tip|1=<nowiki/>\n* This page exists primarily to make it easier to search for alternatives to an application that you do not know under which section has been added. Use the links in the template at the top to view the main sections as separate pages.\n* Please consider [[install]]ing the [[pkgstats]] package, which provides a [[systemd/Timers|timer]] that sends a list of the packages installed on your system, along with the architecture and the mirrors you use, to the Arch Linux developers in order to help them prioritize their efforts and make the distribution even better. The information is sent anonymously and cannot be used to identify you. You can view the collected data at the [https://pkgstats.archlinux.de/packages Statistics page]. More information is available in [https://bbs.archlinux.org/viewtopic.php?id=105431 this forum thread].\n* Daemon packages usually include the relevant systemd unit file to [[start]]; some packages even include different ones. After installation {{ic|pacman -Qql ''package'' {{!}} grep -Fe .service -e .socket}} can be used to check and find the relevant one.\n}}\n\n{{Note|Applications listed in \"Console\" sections can have graphical front-ends. Official ones are currently omitted.}}\n<!-- Subcategories -->\n{{:List of applications/Internet}}\n{{:List of applications/Multimedia}}\n{{:List of applications/Utilities}}\n{{:List of applications/Documents}}\n{{:List of applications/Security}}\n{{:List of applications/Science}}\n{{:List of applications/Other}}\n\n== See also ==\n\n'''Generic software lists'''\n\n* [[Wikipedia:Portal:Free and open-source software]]\n* [[Wikipedia:List of free and open-source software packages]]\n* [[Wikipedia:List of GNU packages]]\n* [https://alternativeto.net/platform/linux/ AlternativeTo] - Linux alternatives to popular applications\n* [https://github.com/luong-komorebi/Awesome-Linux-Software Awesome Linux Software] - Collection of Linux applications and tools\n* [https://www.linuxalt.com/ Linux Alternative Project] - Linux equivalents to Windows software\n* [https://linuxappfinder.com/all Linux App Finder] - Linux applications directory\n* [https://www.linuxlinks.com/links/Software/ Linux Links Directory] - Linux applications directory\n* [https://www.osalt.com/ Open Source Alternative] - Alternatives to commercial software\n\n'''Software lists of other distributions'''\n\n* [https://appimage.github.io/ AppImageHub]\n* [https://flathub.org/ Flathub]\n* [https://snapcraft.io/ Snapcraft]\n* [https://packages.debian.org Debian packages] and [https://screenshots.debian.net screenshots]\n* [https://apps.fedoraproject.org/packages/ Fedora packages]\n* [https://packages.gentoo.org/ Gentoo packages]\n* [https://software.opensuse.org/ openSUSE Software]\n* [https://packages.ubuntu.com/ Ubuntu packages]\n\n'''Software [[Wikipedia:Forge (software)|forges]]'''\n\n* [https://github.com/explore GitHub]\n* [https://gitlab.com/explore GitLab]\n* [https://launchpad.net/ Launchpad]\n* [https://sourceforge.net/ SourceForge]\n* [https://sourcehut.org/ SourceHut]\n\n'''Specialized software lists'''\n\n* [https://wiki.gnome.org/Apps GNOME applications]\n* [https://kde.org/applications/ KDE's Applications]\n* [https://github.com/nodiscc/awesome-linuxaudio awesome-linuxaudio] - Software for audio/video/live production\n* [https://github.com/Kickball/awesome-selfhosted awesome-selfhosted] - Network services and web applications\n* [https://github.com/alebcay/awesome-shell awesome-shell] - Command-line frameworks, toolkits and guides\n* [https://github.com/n1trux/awesome-sysadmin awesome-sysadmin] - Software for system administrators\n* [https://inconsolation.wordpress.com/index/ Inconsolation] - Lightweight and minimalist applications reviews\n* [https://kmandla.wordpress.com/software/ K.Mandla's blog] - Console applications screenshots and reviews\n* [https://libreprojects.net/ Libre Projects] - Open source hosted web services\n* [https://web.archive.org/web/20200530213904/http://lin-app.com/ LinApp] - Commercial applications and games for Linux\n* [https://prism-break.org/en/all/ PRISM Break] - Software against mass surveillance\n* [https://www.privacytools.io/ Privacy Tools] - Knowledge and tools to protect your privacy against global mass surveillance\n\n'''Arch Linux forum threads'''\n\n* [https://bbs.archlinux.org/viewtopic.php?id=111878 Arch Linux Forums / LnF Awards 2011] - The best Light & Fast apps of 2011\n* [https://bbs.archlinux.org/viewtopic.php?id=138281 Arch Linux Forums / LnF Awards 2012] - The best Light & Fast apps of 2012\n* [https://bbs.archlinux.org/viewtopic.php?id=174764 Arch Linux Forums / most popular apps of 2013-2014]\n* [https://bbs.archlinux.org/viewtopic.php?pid=1702332 Arch Linux Forums / most popular apps of 2017+] (requires login)"
                    }
                ]
            },
            "6111": {
                "pageid": 6111,
                "ns": 0,
                "title": "KDE (Espa\u00f1ol)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:KDE (Espa\u00f1ol)]]\n[[de:KDE]]\n[[en:KDE]]\n[[fa:KDE]]\n[[it:KDE]]\n[[ja:KDE]]\n[[pt:KDE]]\n[[ru:KDE]]\n[[zh-hans:KDE]]\n{{TranslationStatus (Espa\u00f1ol)|KDE|2019-01-28|564820}}\n{{Related articles start (Espa\u00f1ol)}}\n{{Related2|Desktop environment (Espa\u00f1ol)|Entornos de escritorio}}\n{{Related2|Display manager (Espa\u00f1ol)|Gestor de pantallas}}\n{{Related2|Window manager (Espa\u00f1ol)|Gestor de ventanas}}\n{{Related|Qt}}\n{{Related|SDDM}}\n{{Related|Dolphin}}\n{{Related2|KDE Wallet (Espa\u00f1ol)|KDE Wallet}}\n{{Related|KDevelop}}\n{{Related|Trinity}}\n{{Related2|Uniform Look for Qt and GTK Applications (Espa\u00f1ol)|Apariencia uniforme para aplicaciones Qt y GTK}}\n{{Related articles end}}\nKDE es un proyecto de software que actualmente comprende un [[desktop environment (Espa\u00f1ol)|entorno de escritorio]] conocido como Plasma, una colecci\u00f3n de librer\u00edas y frameworks (KDE Frameworks) y tambi\u00e9n varias aplicaciones (KDE Applications). El anterior KDE tiene un [https://userbase.kde.org/ UserBase wiki] bien mantenido. All\u00ed se puede encontrar informaci\u00f3n detallada sobre la mayor\u00eda de las aplicaciones KDE.\n\n== Instalaci\u00f3n ==\n\n=== Plasma ===\n\nAntes de instalar Plasma, aseg\u00farese de tener una instalaci\u00f3n [[Xorg (Espa\u00f1ol)|Xorg]] en funcionamiento en su sistema.\n\n[[Install (Espa\u00f1ol)|Instale]] el metapaquete {{Pkg|plasma-meta}} o el grupo {{Grp|plasma}}. Para conocer las diferencias entre {{Pkg|plasma-meta}} y {{Grp|plasma}} v\u00e9ase [[Package group (Espa\u00f1ol)|grupo de paquetes]]. Alternativamente, para una instalaci\u00f3n de Plasma m\u00e1s minimalista, instale el paquete {{Pkg|plasma-desktop}}.\n\nPara habilitar el soporte para [[Wayland (Espa\u00f1ol)|Wayland]] en Plasma, instale tambi\u00e9n el paquete {{Pkg|plasma-wayland-session}}.\n\n=== Aplicaciones KDE ===\n\nPara instalar el conjunto completo de aplicaciones KDE, instale el grupo {{Grp|kde-applications}} o el metapaquete {{Pkg|kde-applications-meta}}. Tenga en cuenta que esto solo instalar\u00e1 aplicaciones, no instalar\u00e1 ninguna versi\u00f3n de Plasma.\n\n=== Lanzamientos inestables ===\n\nV\u00e9ase [[Official repositories#kde-unstable|Repositorios oficiales#kde-inestable]]\n\n== Iniciar Plasma ==\n\n{{Note (Espa\u00f1ol)|Aunque es posible iniciar Plasma en [[Wayland]], todav\u00eda existen problemas y faltan algunas caracter\u00edsticas. Revisa [https://community.kde.org/Plasma/Wayland_Showstoppers Wayland Showstoppers], all\u00ed encontrar\u00e1s una lista de problemas sobre [https://phabricator.kde.org/project/board/99/ Plasma en Wayland workboard]. Usa [[Xorg]] para tener una experiencia m\u00e1s completa y estable.}}\n\nPlasma puede iniciarse usando o bien un [[Display manager (Espa\u00f1ol)|gestor de pantallas]], o bien desde la consola.\n\n=== Usar un gestor de pantallas ===\n\n* Seleccione ''Plasma'' para iniciar una nueva sesi\u00f3n en [[Xorg (Espa\u00f1ol)|Xorg]].\n* [[Install (Espa\u00f1ol)|Instale]] {{Pkg|plasma-wayland-session}} y seleccione ''Plasma (Wayland)'' para iniciar una nueva sesi\u00f3n en [[Wayland (Espa\u00f1ol)|Wayland]].\n\n=== Desde la consola ===\n\n* Para iniciar plasma con [[xinit (Espa\u00f1ol)|xinit/startx]], agrega {{ic|exec startplasma-x11}} en tu archivo {{ic|.xinitrc}}. Si quieres iniciar Xorg al iniciar sesi\u00f3n, revisa [[Start X at login (Espa\u00f1ol)|Inicio autom\u00e1tico de X al inicio de sesi\u00f3n]].\n\t\n* Para iniciar plasma en una sesi\u00f3n Wayland desde la consola, ejecuta {{ic|1=XDG_SESSION_TYPE=wayland dbus-run-session startplasma-wayland}}.[https://community.kde.org/KWin/Wayland#Start_a_Plasma_session_on_Wayland]\n\n== Configuraci\u00f3n ==\n\nLa mayor\u00eda de las configuraciones para las aplicaciones KDE se almacenan en {{ic|~/.config/}}. Sin embargo, la configuraci\u00f3n de KDE se realiza principalmente a trav\u00e9s de la aplicaci\u00f3n '''Preferencias del sistema'''. Se puede iniciar desde un terminal ejecutando {{ic|systemsettings}}.\n\n=== Personalizaci\u00f3n ===\n\n==== Escritorio Plasma ====\n\n===== Temas =====\n\nLos [https://store.kde.org/browse/cat/104/ temas de Plasma] definen el aspecto de los paneles y los plasmoides. Para facilitar la instalaci\u00f3n en todo el sistema, algunos temas est\u00e1n disponibles tanto en los repositorios oficiales como en [https://aur.archlinux.org/packages?K=plasma+theme AUR].\n\nLos temas de Plasma tambi\u00e9n se pueden instalar a trav\u00e9s de ''Preferencias del sistema > Tema del espacio de trabajo > Tema de escritorio > Obtener nuevos temas''.\n\nLa [https://store.kde.org/ KDE-Store] ofrece m\u00e1s personalizaciones de Plasma, como temas [[SDDM]] y pantallas de bienvenida.\n\n====== Apariencia de las aplicaciones Qt y GTK+ ======\n\n{{Tip (Espa\u00f1ol)|Para la coherencia de los temas Qt y GTK, v\u00e9ase [[Uniform look for Qt and GTK applications (Espa\u00f1ol)|aspecto uniforme para aplicaciones Qt y GTK]]}}\n\n; Qt4\nBreeze no est\u00e1 disponible directamente para Qt4 ya que no se puede compilar sin los paquetes de KDE 4, que se han eliminado del repositorio adicional en agosto de 2018 ({{Bug|59784}}). Sin embargo, puede instalar {{Pkg|breeze-gtk}} y elegir GTK+ como estilo de interfaz gr\u00e1fica ejecutando {{ic|qtconfig-qt4}}.\n\n; GTK+\n\nEl tema recomendado para una apariencia agradable en aplicaciones GTK+ es {{Pkg|breeze-gtk}} o {{AUR|gnome-breeze-git}}{{Broken package link (Espa\u00f1ol)|package not found}}, un tema GTK+ dise\u00f1ado para imitar la apariencia del tema de Plasma Breeze.\nInstale {{Pkg|kde-gtk-config}} (parte del grupo {{Grp|plasma}}) y seleccione el tema GTK instalado para GTK2/GTK3-Theme en ''Preferencias del sistema > Estilo de las aplicaciones > Estilo de aplicaciones de GNOME''.\n\nEn algunos temas, la descripci\u00f3n emergente en aplicaciones GTK+ tiene texto blanco sobre fondos blancos, lo que dificulta su lectura. Para cambiar los colores en las aplicaciones GTK2, busque la secci\u00f3n de descripciones emergentes en el archivo {{ic|.gtkrc-2.0}} y c\u00e1mbiela. Para la aplicaci\u00f3n GTK3 se deben cambiar dos archivos, {{ic|gtk.css}} y {{ic|settings.ini}}.\nTambi\u00e9n puede ayudar el desmarcar la opci\u00f3n ''Aplicar colores a aplicaciones no Qt'' en ''Preferencias del sistema > Colores''.\n\nAlgunos programas de GTK2 como {{AUR|vuescan-bin}} todav\u00eda parecen dif\u00edciles de usar debido a casillas de verificaci\u00f3n invisibles con el aspecto Breeze o Adwaita en una sesi\u00f3n Plasma. Para solucionar esto, instale y seleccione, por ejemplo, el aspecto Numix-Frost-Light de {{AUR|numix-frost-themes}} en ''Preferencias del sistema > Estilo de las aplicaciones > Estilo de aplicaciones de GNOME (GTK) > Seleccione un tema de GTK2:''. Numix-Frost-Light se parece a Breeze.\n\n===== Caras =====\n\nLa cara del usuario se puede configurar a trav\u00e9s de ''Preferencias del sistema > Detalles de cuentas > Gestor de usuarios''.\n\n===== Widgets =====\n\nLos plasmoides son peque\u00f1as aplicaciones KDE scripteadas (scripts plasmoides) o codificadas (binarios plasmoides) dise\u00f1adas para mejorar la funcionalidad de su escritorio.\n\nLa forma m\u00e1s f\u00e1cil de instalar scripts plasmoides es haciendo clic derecho en un panel o en el escritorio y seleccionando ''A\u00f1adir elementos gr\u00e1ficos > Obtener nuevos elementos gr\u00e1ficos > Descargar nuevos elementos gr\u00e1ficos de plasma''. Esto le mostrat\u00e1 una bonita interfaz para https://store.kde.org/ que le permite instalar, desinstalar o actualizar scripts plasmoides de terceros con un solo clic.\n\nMuchos binarios de Plasmoid est\u00e1n disponibles en [https://aur.archlinux.org/packages?K=plasmoid AUR].\n\n===== Applet de sonido en la bandeja del sistema =====\n\n[[Install (Espa\u00f1ol)|Instale]] {{Pkg|plasma-pa}} o {{Pkg|kmix}} (inicie Kmix desde el lanzador de aplicaciones). {{Pkg|plasma-pa}} ahora se instala de manera predeterminada con {{Grp|plasma}}, no se necesita ninguna configuraci\u00f3n.\n\n{{Note (Espa\u00f1ol)|1=Para ajustar el [https://bugs.kde.org/show_bug.cgi?id=313579#c28 tama\u00f1o del cambio de los incrementos/decrementos de volumen], agregue, por ejemplo. {{ic|1=VolumePercentageStep=1}} en la secci\u00f3n {{ic|[Global]}} de {{ic|~/.config/kmixrc}}}}\n\n===== Deshabilitar la sombra del panel =====\n\nCuando el panel de plasma est\u00e9 encima de otras ventanas, su sombra se mostrar\u00e1 encima de ellas. [https://bbs.archlinux.org/viewtopic.php?pid=1228394#p1228394] Para deshabilitar este comportamiento sin afectar a otras sombras, [[Install (Espa\u00f1ol)|instale]] {{Pkg|xorg-xprop}} y ejecute:\n\n $ xprop -remove _KDE_NET_WM_SHADOW\n\na continuaci\u00f3n, seleccione el panel con el cursor de tama\u00f1o ampliado. [https://forum.kde.org/viewtopic.php?f=285&t=121592] Para su automatizaci\u00f3n, instale {{Pkg|xorg-xwininfo}} y cree el siguiente script:\n\n{{hc|/usr/local/bin/kde-no-shadow|<nowiki>\n#!/bin/bash\nfor WID in $(xwininfo -root -tree | sed '/\"Plasma\": (\"plasmashell\" \"plasmashell\")/!d; s/^  *\\([^ ]*\\) .*/\\1/g'); do\n   xprop -id $WID -remove _KDE_NET_WM_SHADOW\ndone\n</nowiki>}}\n\nEstablezca permisos de ejecuci\u00f3n para el script:\n\n # chmod 755 /usr/local/bin/kde-no-shadow\n\nEl script se puede ejecutar al iniciar sesi\u00f3n con ''Agregar script'' en ''Inicio autom\u00e1tico'':\n\n $ kcmshell5 autostart\n\n==== Decoraciones de las ventanas ====\n\nLas [https://store.kde.org/browse/cat/114/ decoraciones de las ventanas] se pueden cambiar en ''Preferencias del sistema > Estilo de las aplicaciones > Decoraci\u00f3n de ventanas''.\n\nAll\u00ed tambi\u00e9n puede descargar e instalar directamente m\u00e1s temas con un solo clic, y algunos est\u00e1n disponibles en [https://aur.archlinux.org/packages?K=kde+window+decoration AUR].\n\n==== Temas de iconos ====\n\nLos temas de iconos se pueden instalar y cambiar en ''Preferencias del sistema > Iconos''.\n\n{{Note (Espa\u00f1ol)|Aunque todos los escritorios de Linux modernos comparten el mismo formato de tema de iconos, los escritorios como [[GNOME (Espa\u00f1ol)|GNOME]] usan menos iconos (especialmente en men\u00fas y barras de herramientas). Los temas desarrollados para tales escritorios generalmente carecen de los iconos requeridos por las aplicaciones Plasma y KDE. Se recomienda en su lugar instalar temas de iconos compatibles con Plasma.}}\n\n{{Tip (Espa\u00f1ol)|Dado que algunos temas de iconos no se heredan del tema de iconos predeterminado, es posible que falten algunos iconos.\nPara heredarlo de Breeze, agregue {{ic|breeze}} al vector {{ic|1=Inherits=}} en {{ic|/usr/share/icon/''nombre-del-tema''/index.theme}}, por ejemplo: {{ic|1=Inherits=breeze,hicolor}}. Debe volver a aplicar este parche despu\u00e9s de cada actualizaci\u00f3n del tema de iconos; considere usar [[pacman (Espa\u00f1ol)#Hooks|Pacman hooks]] para automatizar el proceso.}}\n\n==== Eficiencia de espacio ====\n\nEl shell del Plasma Netbook se ha eliminado de Plasma 5, v\u00e9ase la siguiente [https://forum.kde.org/viewtopic.php?f=289&t=126631&p=335947&hilit=plasma+netbook#p335899 publicaci\u00f3n en el foro de KDE]. Sin embargo, puede lograr algo similar editando el archivo {{ic|~/.config/kwinrc}} agregando {{ic|1=BorderlessMaximizedWindows=true}} en la secci\u00f3n {{ic|[Windows]}}.\n\n==== Generaci\u00f3n de miniaturas ====\n\nPara permitir la generaci\u00f3n de miniaturas para archivos de media o de documentos en el escritorio y en Dolphin, instale {{Pkg|kdegraphics-thumbnailers}} y {{Pkg|ffmpegthumbs}}.\n\nLuego, habilite las categor\u00edas de las miniaturas para el escritorio haciendo clic con el bot\u00f3n derecho en el ''fondo de escritorio > Configurar escritorio > Iconos > M\u00e1s opciones de vista previa...''\n\nEn ''Dolphin'', vaya a ''Control > Configurar Dolphin... > General > Vistas previas''.\n\n=== Imprimir ===\n\n{{Tip (Espa\u00f1ol)|Use la interfaz web [[CUPS (Espa\u00f1ol)|CUPS]] para una configuraci\u00f3n m\u00e1s r\u00e1pida. Las impresoras configuradas de esta manera se pueden utilizar en aplicaciones KDE.}}\n\nTambi\u00e9n puede configurar impresoras en ''Preferencias del sistema > Impresoras''. Para usar este m\u00e9todo, primero debe instalar {{Pkg|print-manager}} y {{Pkg|cups}}. V\u00e9ase [[CUPS#Configuration]].\n\n=== Soporte Samba/Windows ===\n\nSi desea tener acceso a los servicios de Windows, instale [[Samba (Espa\u00f1ol)|Samba]] (paquete {{Pkg|samba}}).\n\nLa funcionalidad de compartir con Dolphin requiere el paquete {{Pkg|kdenetwork-filesharing}} y los recursos compartidos, que el stock {{ic|smb.conf}} no los tiene habilitados. Las instrucciones para agregarlos se encuentran en [[Samba#Enable Usershares|Samba#Habilitar los recursos compartidos]], despu\u00e9s de lo cual la compartici\u00f3n en Dolphin deber\u00eda funcionar sin necesidad de configuraci\u00f3n despu\u00e9s de reiniciar Samba.\n\n{{Tip (Espa\u00f1ol)|Utilice {{ic|*}} (asterisco) tanto para el nombre de usuario como para la contrase\u00f1a cuando acceda a un recurso compartido de Windows sin autenticaci\u00f3n en la pantalla de solicitud de Dolphin.}}\n\nA diferencia de los exploradores de archivos GTK que tambi\u00e9n utilizan GVfs para el programa lanzado, abrir archivos desde recursos compartidos de Samba en Dolphin a trav\u00e9s de KIO hace que Plasma copie primero todo el archivo al sistema local con la mayor\u00eda de los programas (VLC es una excepci\u00f3n).\nPara solucionar esto, puede usar un navegador de archivos basado en GTK como {{Pkg|thunar}} con {{Pkg|gvfs}} y {{Pkg|gvfs-smb}} (y {{Pkg|gnome-keyring}} para guardar las credenciales de inicio de sesi\u00f3n) para acceder a los recursos compartidos SMB de una manera m\u00e1s capaz.\n\nOtra posibilidad es [[mount|montar]] un recurso compartido Samba a trav\u00e9s de {{Pkg|cifs-utils}} para hacer creer a Plasma que el recurso compartido SMB es solo una carpeta local normal y, por lo tanto, se pueda acceder a \u00e9l normalmente.\nV\u00e9ase [[Samba#Manual mounting|Samba#Montaje manual]] y [[Samba#Automatic mounting|Samba#Montaje autom\u00e1tico]].\n\nUna soluci\u00f3n con interfaz gr\u00e1fica est\u00e1 disponible en {{AUR|samba-mounter-git}}, que ofrece b\u00e1sicamente la misma funcionalidad a trav\u00e9s de una opci\u00f3n f\u00e1cil de utilizar ubicada en ''Preferencias del sistema > Controladores de red''. Sin embargo, podr\u00eda romperse con las nuevas versiones de KDE Plasma.\n\n=== Actividades de KDE Desktop ===\n\n[https://userbase.kde.org/Plasma#Activities KDE Desktop Activities] son espacios de trabajo especiales en los que puede seleccionar configuraciones espec\u00edficas para cada actividad que se aplican solamente cuando se est\u00e1 utilizando dicha actividad.\n\n=== Administraci\u00f3n de energ\u00eda ===\n\n[[Install (Espa\u00f1ol)|Instale]] {{Pkg|powerdevil}} para obtener un servicio integrado de administraci\u00f3n de energ\u00eda en Plasma. Este servicio ofrece funciones adicionales de ahorro de energ\u00eda, control de brillo del monitor (si es compatible) e informes de bater\u00eda, incluidos dispositivos perif\u00e9ricos.\n\n{{AUR|powerdevil-light}} proporciona un paquete alternativo sin las dependencias de [[NetworkManager (Espa\u00f1ol)|NetworkManager]] y [[Bluetooth (Espa\u00f1ol)|Bluez]].\n\n{{Note (Espa\u00f1ol)|Powerdevil podr\u00eda no [[Power management#Power managers|inhibir]] todas las configuraciones de logind (como la acci\u00f3n de cierre de la tapa para ordenadores port\u00e1tiles). En estos casos, ser\u00e1 necesario cambiar la configuraci\u00f3n de logind - v\u00e9ase [[Power management (Espa\u00f1ol)#Administraci\u00f3n de energ\u00eda con systemd|Administraci\u00f3n de energ\u00eda#Administraci\u00f3n de energ\u00eda con systemd]].}}\n\n=== Inicio autom\u00e1tico ===\n\nPlasma puede iniciar aplicaciones autom\u00e1ticamente y ejecutar scripts en el arranque y el apagado. Para iniciar autom\u00e1ticamente una aplicaci\u00f3n, vaya a ''Preferencias del sistema > Arranque y apagado > Autoarranque'' y agregue el programa o el script de shell que desee. Para las aplicaciones, se crear\u00e1 un archivo ''.desktop'', para los scripts de shell, se crear\u00e1 un enlace simb\u00f3lico.\n\n{{Note (Espa\u00f1ol)|\n* Los programas pueden iniciarse autom\u00e1ticamente solo con el inicio de sesi\u00f3n, mientras que los scripts de shell tambi\u00e9n se pueden ejecutar en el apagado o incluso antes de que se inicie Plasma.\n* Los scripts de shell solo se ejecutar\u00e1n si est\u00e1n marcados como [[Help:Reading (Espa\u00f1ol)#Hacer ejecutable|ejecutables]].\n}}\n\n* Coloque [[Desktop entries|entradas del escritorio]] (es decir, archivos ''.desktop'') en el directorio [[XDG Autostart (Espa\u00f1ol)|XDG Autostart]] apropiado.\n\n* Coloque o guarde los scripts de shell en uno de los siguientes directorios:\n\n:; {{ic|~/.config/plasma-workspace/env/}}: para ejecutar scripts al iniciar sesi\u00f3n antes de iniciar Plasma.\n:; {{ic|~/.config/autostart-scripts/}}: para ejecutar scripts al iniciar sesi\u00f3n.\n:; {{ic|~/.config/plasma-workspace/shutdown/}}: para ejecutar scripts en el apagado.\n\n=== Phonon ===\n\nDe [[Wikipedia:es:Phonon_(KDE)|Wikipedia]]:\n\n:Phonon es el framework multimedia est\u00e1ndar de KDE 4, tambi\u00e9n parte de Qt desde la versi\u00f3n 4.4.\n\n:El objetivo de Phonon es facilitar a los programadores el uso de tecnolog\u00edas multimedia en sus programas, as\u00ed como asegurar que las aplicaciones que usen Phonon funcionen en diversas plataformas y arquitecturas de sonido.\n\nPhonon est\u00e1 siendo ampliamente utilizando en KDE, tanto para audio (por ejemplo, las notificaciones del sistema o aplicaciones de audio de KDE) como para v\u00eddeo (por ejemplo, las miniaturas de video de [[Dolphin]]).\n\n==== \u00bfQu\u00e9 backend debo elegir? ====\n\nPuede elegir entre backends basados en [[GStreamer (Espa\u00f1ol)|GStreamer]] y [[VLC media player (Espa\u00f1ol)|VLC]] - cada uno disponible en versiones para aplicaciones Qt4 y aplicaciones Qt5 ({{AUR|phonon-qt4-gstreamer}}, {{Pkg|phonon-qt5-gstreamer}} - {{AUR|phonon-qt4-vlc}}, {{Pkg|phonon-qt5-vlc}}).\n\n[https://www.phoronix.com/scan.php?page=news_item&px=MTUwNDM El anterior (Phonon) prefiere VLC], pero algunas distribuciones de Linux m\u00e1s prominentes (Kubuntu y Fedora-KDE por ejemplo) prefieren GStreamer porque les permite dejar f\u00e1cilmente de lado los c\u00f3decs patentados MPEG de la instalaci\u00f3n por defecto. Ambos backends tienen un [https://community.kde.org/Phonon/FeatureMatrix conjunto de caracter\u00edsticas] ligeramente diferentes. El backend de Gstreamer tiene alguna dependencias de c\u00f3decs opcionales, inst\u00e1lelos seg\u00fan sea necesario:\n\n* {{Pkg|gst-libav}} - c\u00f3decs de Libav.\n* {{Pkg|gst-plugins-good}} - Soporte de PulseAudio y c\u00f3decs adicionales.\n* {{Pkg|gst-plugins-ugly}} - c\u00f3decs adicionales.\n* {{Pkg|gst-plugins-bad}} - c\u00f3decs adicionales.\n\nEn el pasado, tambi\u00e9n se desarrollaron otros backends, pero ya no se mantienen y sus paquetes AUR se han eliminado.\n\n{{Note (Espa\u00f1ol)|1=<br>\n* Se pueden instalar varios backends a la vez y priorizarlos en ''Preferencias del sistema > Multimedia > Audio y v\u00eddeo > Motor''.\n* Seg\u00fan los [https://forum.kde.org/viewtopic.php?f=250&t=126476&p=335080 foros de KDE], el backend de VLC carece de soporte para [[wikipedia:ReplayGain|ReplayGain]].\n* Si usa el backend VLC, puede experimentar cuelgues cada vez que Plasma quiera enviarle una advertencia sonora y en muchos otros casos tambi\u00e9n [https://forum.kde.org/viewtopic.php?f=289&t=135956]. Una posible soluci\u00f3n es reconstruir la cach\u00e9 de los plugins de VLC:\n{{bc|# /usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins}}\n}}\n\n== Aplicaciones ==\n\nEl proyecto KDE proporciona un conjunto de aplicaciones que se integran con el escritorio Plasma. V\u00e9ase el grupo {{Grp|kde-applications}} para obtener una lista completa de las aplicaciones disponibles. V\u00e9ase tambi\u00e9n [[:Category:KDE (Espa\u00f1ol)]] para los art\u00edculos relacionados con las aplicaciones KDE .\n\nAparte de los programas provistos en KDE Applications, hay muchas otras aplicaciones disponibles que pueden complementar el escritorio Plasma. Algunas de \u00e9stas se tratan a continuaci\u00f3n.\n\n=== Administraci\u00f3n del sistema ===\n\n==== Detener Xorg server a trav\u00e9s de las preferencias del sistema KDE ====\n\nNavegue al submen\u00fa ''Preferencias del sistema > Dispositivos de entrada > Teclado > Avanzado (pesta\u00f1a) > \"Key Sequence to kill the X server\"'' y aseg\u00farese de que la casilla est\u00e9 marcada.\n\n==== KCM ====\n\nKCM significa '''KC'''onfig '''M'''odule. Los KCM pueden ayudarle a configurar su sistema al proporcionar interfaces en preferencias del sistema, o a trav\u00e9s de la l\u00ednea de comandos con ''kcmshell5''.\n\n* {{App|kde-gtk-config|Configurador GTK2 y GTK3 para KDE.|https://invent.kde.org/plasma/kde-gtk-config|{{Pkg|kde-gtk-config}}}}\n* {{App|Pol\u00edticas del sistema|Conjunto de m\u00f3dulos de configuraci\u00f3n que permite al administrador cambiar la configuraci\u00f3n de [[PolicyKit]].|https://invent.kde.org/system/polkit-kde-kcmodules-1|{{AUR|kcm-polkit-kde-git}}}}\n* {{App|wacom tablet|Interfaz gr\u00e1fica de KDE para los controladores Linux Wacom.|https://www.linux-apps.com/p/1127862/|{{Pkg|kcm-wacomtablet}}}}\n* {{App|Kcmsystemd|m\u00f3dulo de control systemd para KDE.|https://github.com/rthomsen/kcmsystemd|{{AUR|systemd-kcm}}}}\n\nPuede encontrar m\u00e1s KCMs en [https://www.linux-apps.com/search?projectSearchText=KCM linux-apps.com].\n\n=== B\u00fasqueda de escritorio ===\n\nKDE implementa la b\u00fasqueda de escritorio con un software llamado [[Baloo]], una soluci\u00f3n de indexaci\u00f3n y de b\u00fasqueda de archivos.\n\n=== Navegadores web ===\n\nLos siguientes navegadores web pueden integrarse con Plasma:\n\n* {{App|[[Wikipedia: Konqueror|Konqueror]]|Parte del proyecto KDE, es compatible con dos motores de renderizaci\u00f3n - KHTML y Qt WebEngine basado en [[Chromium (Espa\u00f1ol)|Chromium]].|https://konqueror.org/|{{Pkg|konqueror}}}}\n* {{App|[[Wikipedia:Falkon|Falkon]]|Un navegador web Qt con funciones de integraci\u00f3n Plasma, anteriormente conocido como Qupzilla. Utiliza Qt WebEngine.|https://userbase.kde.org/Falkon/|{{Pkg|falkon}}}}\n* {{App|[[Chromium]]|Chromium y su variante patentada Google Chrome tienen una integraci\u00f3n de Plasma limitada. [[KDE Wallet (Espa\u00f1ol)#KDE Wallet para Chromium|Pueden usar KWallet]] y las ventanas de KDE Abrir/Guardar.|https://www.chromium.org/|{{Pkg|chromium}}}}\n* {{App|[[Firefox]]|Firefox puede configurarse para integrarse mejor con Plasma. V\u00e9ase [[Firefox (Espa\u00f1ol)#Mejorar la integraci\u00f3n de Firefox con KDE|Integraci\u00f3n de Firefox KDE]] para obtener m\u00e1s informaci\u00f3n.|https://mozilla.org/firefox|{{Pkg|firefox}}}}\n\n{{Tip (Espa\u00f1ol)|A partir de Plasma 5.13, uno puede integrar [[Firefox (Espa\u00f1ol)|Firefox]] o [[Chromium (Espa\u00f1ol)|Chrome]] con Plasma: proporcione el control de reproducci\u00f3n de medios desde la bandeja de Plasma, descargue notificaciones y encuentre pesta\u00f1as abiertas en KRunner. [[Install (Espa\u00f1ol)|Instale]] {{pkg|plasma-browser-integration}} y el complemento del navegador correspondiente. El soporte de Chrome/Chromium ya deber\u00eda estar incluido, para el complemento de Firefox v\u00e9ase [[Firefox (Espa\u00f1ol)#Mejorar la integraci\u00f3n de Firefox con KDE|Integraci\u00f3n de Firefox KDE]].}}\n\n=== PIM ===\n\nKDE ofrece su propia pila para la gesti\u00f3n de informaci\u00f3n personal. Esto incluye emails, contactos, calendario, etc. Para instalar todos los paquetes PIM, puede usar el metapaquete {{Pkg|kde-pim-meta}}.\n\n==== Akonadi ====\n\nAkonadi es un sistema destinado a actuar como cach\u00e9 local para datos PIM, independientemente de su origen, para que luego pueda ser utilizado por otras aplicaciones. Esto incluye los emails, contactos, calendarios, eventos, diarios, alarmas, notas, etc. del usuario. Akonadi no almacena ning\u00fan dato por s\u00ed mismo: el formato de almacenamiento depende de la naturaleza de los datos (por ejemplo, los contactos pueden almacenarse en formato vCard).\n\nInstale {{Pkg|akonadi}}. Para obtener complementos adicionales, instale {{Pkg|kdepim-addons}}.\n\n{{Note (Espa\u00f1ol)|Si desea usar un motor de base de datos que no sea [[MariaDB]], al instalar el paquete {{Pkg|akonadi}}, use el siguiente comando para omitir la instalaci\u00f3n de las dependencias {{Pkg|mariadb}}:\n\n # pacman -S akonadi --assume-installed mariadb\n\nV\u00e9ase tambi\u00e9n {{Bug|32878}}.\n}}\n\n===== PostgreSQL =====\n\n[[Install (Espa\u00f1ol)|Instale]] {{Pkg|postgresql}}.\n\nPara usar [[PostgreSQL]] edite el archivo de configuraci\u00f3n de Akonadi para que tenga el siguiente contenido:\n\n{{hc|~/.config/akonadi/akonadiserverrc|<nowiki>\n[%General]\nDriver=QPSQL\n\n[QPSQL]\nHost=\nInitDbPath=/usr/bin/initdb\nName=akonadi\nServerPath=/usr/bin/pg_ctl\nStartServer=true\n</nowiki>}}\n\n{{Note (Espa\u00f1ol)|El valor {{ic|1=Host=}} ser\u00e1 establecido por Akonadi cuando se inicie por primera vez.}}\n\nInicie Akonadi con {{ic|akonadictl start}}, y verifique su estado: {{ic|akonadictl status}}.\n\n===== SQLite =====\n\nPara usar [[SQLite]] edite el archivo de configuraci\u00f3n de Akonadi para que coincida con la configuraci\u00f3n que se muestra a continuaci\u00f3n:\n\n{{hc|~/.config/akonadi/akonadiserverrc|2=\n[%General]\nDriver=QSQLITE3\n\n[QSQLITE3]\nName=/home/''username''/.local/share/akonadi/akonadi.db\n}}\n\n===== Deshabilitar Akonadi =====\n\nV\u00e9ase esta [https://userbase.kde.org/Akonadi#Disabling_the_Akonadi_subsystem secci\u00f3n en la base de usuarios de KDE].\n\n=== KDE Telepathy ===\n\n[https://community.kde.org/KTp KDE Telepathy] es un proyecto con el objetivo de integrar estrechamente la mensajer\u00eda instant\u00e1nea con el escritorio KDE. Utiliza el framework Telepathy como backend y est\u00e1 destinado a reemplazar a Kopete.\n\nPara instalar todos los protocolos de Telepathy, instale el grupo {{Grp|telepathy}}.\nPara utilizar el cliente KDE Telepathy, instale el paquete {{Pkg|telepathy-kde-meta}} que incluye todos los paquetes contenidos en el grupo {{Grp|telepathy-kde}}.\n\n==== Utilizar Telegram con KDE Telepathy ====\n\nEl protocolo [[Telegram]] est\u00e1 disponible usando {{pkg|telepathy-haze}}, instalando {{aur|telegram-purple}} o {{aur|telegram-purple-git}} y {{aur|telepathy-morse-git}}. El nombre de usuario es el n\u00famero de tel\u00e9fono de la cuenta de Telegram (compl\u00e9telo con el prefijo nacional {{ic|+''xx''}}, por ejemplo, {{ic|+34}} para Espa\u00f1a).\n\nLa configuraci\u00f3n a trav\u00e9s de la interfaz gr\u00e1fica puede ser complicada: si el n\u00famero de tel\u00e9fono no se acepta al configurar una nueva cuenta en el cliente KDE Telepathy (con un mensaje de error quej\u00e1ndose de un par\u00e1metro inv\u00e1lido que impide la creaci\u00f3n de la cuenta), ins\u00e9rtelo entre comillas simples y luego elimine las comillas manualmente del archivo de configuraci\u00f3n ({{ic|~/.local/share/telepathy/mission-control/accounts.cfg}}) despu\u00e9s de la creaci\u00f3n de la cuenta (si las comillas no se eliminan posteriormente, deber\u00eda salir un error de autenticaci\u00f3n).\n\n{{Note (Espa\u00f1ol)|El archivo de configuraci\u00f3n deber\u00eda editarse manualmente cuando KDE Telepathy no se est\u00e9 ejecutando, por ejemplo, cuando no hay una sesi\u00f3n de escritorio KDE activa, de lo contrario, el software puede sobrescribir los cambios realizados manualmente.}}\n\n=== KDE Connect ===\n\n[https://community.kde.org/KDEConnect KDE Connect] proporciona varias caracter\u00edsticas para conectar su tel\u00e9fono [[Android (Espa\u00f1ol)|Android]] con su escritorio Linux:\n\n* Comparta archivos y URLs a/desde KDE desde/a cualquier aplicaci\u00f3n, sin cables.\n* Emulaci\u00f3n de panel t\u00e1ctil: use la pantalla de su tel\u00e9fono como si fuera el panel t\u00e1ctil de su ordenador.\n* Sincronizaci\u00f3n de notificaciones (4.3+): lea sus notificaciones Android desde el escritorio.\n* Portapapeles compartido: copie y pegue entre su tel\u00e9fono y su ordenador.\n* Control remoto multimedia: utilize su tel\u00e9fono como un control remoto para reproductores multimedia en Linux.\n* Conexi\u00f3n WiFi: no necesita cable usb ni bluetooth.\n* Cifrado RSA: su informaci\u00f3n est\u00e1 segura.\n\nDeber\u00e1 instalar KDE Connect tanto en su ordenador como en Android. Para el PC, [[Install (Espa\u00f1ol)|instale]] el paquete {{Pkg|kdeconnect}}. Para Android, instale KDE Connect desde [https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp Google Play] o desde [https://f-droid.org/packages/org.kde.kdeconnect_tp/ F-Droid].\n\nEs posible usar KDE Connect incluso si no usa el escritorio Plasma. Para los entornos de escritorio que utilizan AppIndicators, como Unity, instale tambi\u00e9n el paquete {{AUR|indicator-kdeconnect}}. Para los usuarios de GNOME, se puede lograr una mejor integraci\u00f3n instalando {{AUR|gnome-shell-extension-gsconnect}} en vez de {{Pkg|kdeconnect}}.\n\nSi usa un [[Firewalls (Espa\u00f1ol)|cortafuegos]], necesita abrir los puertos UDP y TCP {{ic|1714}} a trav\u00e9s de {{ic|1764}}. V\u00e9ase https://community.kde.org/KDEConnect#Troubleshooting.\n\n== Consejos y trucos ==\n\n=== Usar un gestor de ventanas diferente ===\n\nLa configuraci\u00f3n del selector de componentes en Plasma ya no permite cambiar el gestor de ventanas. [https://github.com/KDE/plasma-desktop/commit/2f83a4434a888cd17b03af1f9925cbb054256ade]\nPara cambiar el gestor de ventanas utilizado, debe establecer la [[Environment variables (Espa\u00f1ol)|variable de entorno]] {{ic|KDEWM}} antes del inicio de KDE. [https://wiki.haskell.org/Xmonad/Using_xmonad_in_KDE] Para ello, puede crear un script llamado {{ic|set_window_manager.sh}} en {{ic|~/.config/plasma-workspace/env/}} y exportar la variable {{ic|KDEWM}} all\u00ed. Por ejemplo, para utilizar el gestor de ventanas i3:\n\n{{hc|~/.config/plasma-workspace/env/set_window_manager.sh|2=\nexport KDEWM=/usr/bin/i3\n}}\n\nY luego hacerlo ejecutable:\n\n{{bc|$ chmod +x ~/.config/plasma-workspace/env/set_window_manager.sh}}\n\n==== Sesi\u00f3n KDE/Openbox ====\n\nEl paquete {{Pkg|openbox}} proporciona una sesi\u00f3n para usar KDE con [[Openbox (Espa\u00f1ol)|Openbox]]. Para hacer uso de esta sesi\u00f3n, seleccione ''KDE/Openbox'' en el men\u00fa [[Display manager (Espa\u00f1ol)|gestor de pantallas]].\n\nPara aquellos que inician sesi\u00f3n manualmente, agregue la siguiente l\u00ednea a su configuraci\u00f3n [[Xinit (Espa\u00f1ol)|xinit]]:\n\n{{hc|~/.xinitrc|\nexec openbox-kde-session\n}}\n\n==== Rehabilitar efectos de composici\u00f3n ====\n\nAl reemplazar Kwin con un gestor de ventanas que no proporciona un Compositor (como Openbox), se perder\u00e1 cualquier efecto de composici\u00f3n del escritorio, por ejemplo, la transparencia. En este caso, instale y ejecute un gestor de Composite separado para proporcionar los efectos como [[Xcompmgr (Espa\u00f1ol)|Xcompmgr]] o [[Compton]].\n\n=== Configurar la resoluci\u00f3n del monitor / m\u00faltiples monitores ===\n\nPara habilitar la gesti\u00f3n de resoluci\u00f3n de pantalla y m\u00faltiples monitores en Plasma, instale {{Pkg|kscreen}}. Esto agrega las opciones adicionales a ''Preferencias del sistema > Pantalla y monitor''.\n\n=== Deshabilitar la apertura del lanzador de aplicaciones con la tecla Super (tecla Windows) ===\n\nPara deshabilitar esta caracter\u00edstica, actualmente puede ejecutar el siguiente comando:\n\n $ kwriteconfig5 --file kwinrc --group ModifierOnlyShortcuts --key Meta \"\"\n\n=== Deshabilitar que los marcadores se muestren en el men\u00fa de aplicaciones ===\n\nSi tiene instalada la integraci\u00f3n del navegador de Plasma, KDE mostrar\u00e1 marcadores en el lanzador de aplicaciones.\n\nPara deshabilitar esta caracter\u00edstica, ejecute las siguientes \u00f3rdenes:\n\n $ mkdir ~/.local/share/kservices5\n $ sed 's/EnabledByDefault=true$/EnabledByDefault=false/' /usr/share/kservices5/plasma-runner-bookmarks.desktop > ~/.local/share/kservices5/plasma-runner-bookmarks.desktop\n\n== Soluci\u00f3n de problemas ==\n\n=== Fuentes tipogr\u00e1ficas ===\n\n==== Las fuentes en una sesi\u00f3n Plasma se ven mal ====\n\nPruebe a instalar los paquetes {{Pkg|ttf-dejavu}} y {{Pkg|ttf-liberation}}.\n\nDespu\u00e9s de la instalaci\u00f3n, aseg\u00farese de cerrar sesi\u00f3n y volver a iniciarla. No deber\u00eda tener que modificar nada en ''Preferencias del sistema > Tipos de letra''. Si est\u00e1 utilizando {{Pkg|qt5ct}}, la preferencias de la Herramienta de Configuraci\u00f3n Qt5 pueden anular los ajustes de los tipos de letra en las preferencias del sistema.\n\nSi ha configurado personalmente el renderizado de sus [[Fonts (Espa\u00f1ol)|Fuentes]], tenga en cuenta que las preferencias del sistema pueden alterar su apariencia. Cuando vaya a ''Preferencias del sistema > Tipos de letra'', las preferencias del sistema probablemente alterar\u00e1n el archivo de configuraci\u00f3n de las fuentes ({{ic|fonts.conf}}).\n\nNo hay forma de evitar esto, pero, si configura los valores para que coincidan con su archivo {{ic|fonts.conf}}, el renderizado esperado de las fuentes volver\u00e1 (se requerir\u00e1 que reinicie su aplicaci\u00f3n o, en algunos casos, que reinicie su escritorio). Tenga en cuenta que las preferencias de las fuentes de Gnome tambi\u00e9n hacen esto.\n\n==== Las fuentes son enormes o parecen desproporcionadas ====\n\nIntente forzar la fuente DPI a {{ic|'''96'''}} en ''Preferencias del sistema > Tipos de letra''.\n\nSi eso no funciona, intente establecer el DPI directamente en su configuraci\u00f3n de Xorg como se documenta en [[Xorg#Setting DPI manually]].\n\n=== Configuraci\u00f3n relacionada ===\n\nMuchos problemas en KDE est\u00e1n relacionados con su configuraci\u00f3n.\n\n==== El escritorio Plasma se comporta de manera extra\u00f1a ====\n\nLos problemas en Plasma son generalmente causados por ''widgets de Plasma'' inestables (llamados coloquialmente ''plasmoides'') o ''temas de Plasma''. Primero, encuentre cu\u00e1l fue el \u00faltimo widget o tema que instal\u00f3 y deshabil\u00edtelo o desinst\u00e1lelo.\n\nPor lo tanto, si su escritorio muestra repentinamente un \u00abbloqueo\u00bb, es probable que esto se deba a un widget instalado defectuoso. Si no puede recordar qu\u00e9 widget instal\u00f3 antes de que comenzara el problema (a veces puede ser un problema irregular), intente localizarlo eliminando cada widget hasta que el problema cese. Luego, puede desinstalar el widget y presentar un informe de error en el [https://bugs.kde.org/ seguimiento de errores de KDE] '''solo si es un widget oficial'''. Si no lo es, se recomienda buscar la entrada en la [https://store.kde.org/ KDE Store] e informar al desarrollador de ese widget sobre el problema (detallando los pasos para reproducirlo, etc.).\n\nSi no puede encontrar el problema, pero no quiere que se pierdan ''todos'' los ajustes, vaya a {{ic|~/.config/}} y ejecute el siguiente comando:\n\n $ for j in plasma*; do mv -- \"$j\" \"${j%}.bak\"; done\n\nEste comando renombrar\u00e1 '''todos''' los archivos de configuraci\u00f3n relacionados con Plasma de su usuario a ''*.bak'' (por ejemplo, {{ic|plasmarc.bak}}) y cuando vuelva a iniciar sesi\u00f3n en Plasma, tendr\u00e1 la configuraci\u00f3n predeterminada de nuevo. Para deshacer esa acci\u00f3n, elimine la extensi\u00f3n de archivo ''.bak''. Si ya tiene archivos ''*.bak'', ren\u00f3mbrelos, mu\u00e9valos o elim\u00ednelos primero. Se recomienda encarecidamente que se creen regularmente copias de seguridad de todos modos. V\u00e9ase [[Synchronization and backup programs|sincronizaci\u00f3n y programas de copia de seguridad]] para obtener una lista de posibles soluciones.\n\n==== Limpiar la cach\u00e9 para resolver problemas de actualizaci\u00f3n ====\n\nEl [https://bbs.archlinux.org/viewtopic.php?id=135301 problema] puede ser causado por un cach\u00e9 antiguo. A veces, despu\u00e9s de una actualizaci\u00f3n, la memoria cach\u00e9 antigua podr\u00eda presentar un comportamiento extra\u00f1o y dif\u00edcil de depurar, como shells no detenibles, cuelgues al cambiar varias configuraciones, que Ark no pueda extraer archivos o que Amarok no reconozca ninguna de sus canciones. Esta soluci\u00f3n tambi\u00e9n puede resolver problemas con aplicaciones KDE y Qt que se ven mal despu\u00e9s de una actualizaci\u00f3n.\n\nReconstruya la cach\u00e9 usando los siguientes comandos:\n\n $ rm ~/.config/Trolltech.conf\n $ kbuildsycoca5 --noincremental\n\nOpcionalmente, vac\u00ede los contenidos de la carpeta {{ic|~/.cache/}}, sin embargo, esto tambi\u00e9n borrar\u00e1 la cach\u00e9 de otras aplicaciones:\n \n $ rm -rf ~/.cache/*\n\n=== Problemas gr\u00e1ficos ===\n\nAseg\u00farese de tener instalado el controlador adecuado para su GPU. V\u00e9ase [[Xorg#Driver installation]] para obtener m\u00e1s informaci\u00f3n. Si tiene una tarjeta m\u00e1s antigua, podr\u00eda ayudar el [[#Deshabilitar los efectos del escritorio manualmente o autom\u00e1ticamente para aplicaciones definidas]] o [[#Deshabilitar la composici\u00f3n]].\n\n==== Obtener el estado actual de KWin para fines de soporte y depuraci\u00f3n ====\n\nEste comando muestra un resumen del estado actual de KWin, incluidas las opciones utilizadas, el backend de composici\u00f3n utilizado y las capacidades relevantes del controlador OpenGL. V\u00e9ase m\u00e1s en [https://blog.martin-graesslin.com/blog/2012/03/on-getting-help-for-kwin-and-helping-kwin/ el blog de Martin].\n\n $ qdbus org.kde.KWin /KWin supportInformation\n\n==== Deshabilitar los efectos del escritorio manualmente o autom\u00e1ticamente para aplicaciones definidas ====\n\nPlasma tiene habilitados los efectos del escritorio de manera predeterminada y no todas las aplicaciones los deshabilitar\u00e1n autom\u00e1ticamente, por ejemplo, los juegos. Puede deshabilitar los efectos del escritorio en ''Preferencias del sistema > Comportamiento del escritorio > Efectos del escritorio'' y alternar los efectos del escritorio con {{ic|Alt+Shift+F12}}.\n\nAdicionalmente, puede crear reglas KWin personalizadas para deshabilitar/habilitar autom\u00e1ticamente la composici\u00f3n cuando cierta aplicaci\u00f3n/ventana se inicie en ''Preferencias del sistema > Gesti\u00f3n de ventanas > Reglas de la ventana''.\n\n==== Deshabilitar la composici\u00f3n ====\n\nEn ''Preferencias del sistema > Pantalla y monitor > Compositor'', desmarque ''Activar el compositor durante el inicio'' y reinicie Plasma.\n\n==== Parpadeo en pantalla completa cuando la composici\u00f3n est\u00e1 habilitada ====\n\nEn ''Preferencias del sistema > Pantalla y monitor > Compositor'', desmarque ''Permitir que las aplicaciones bloqueen la composici\u00f3n''. Esto puede afectar al rendimiento.\n\n==== El cursor de Plasma a veces se muestra incorrectamente ====\n\nCree el directorio {{ic|~/.icons/default}}, y dentro de \u00e9l un archivo llamado {{ic|index.theme}} con el siguiente contenido:\n\n{{hc|~/.icons/default/index.theme|2=\n[Icon Theme]\nInherits=breeze_cursors\n}}\n\nEjecute el siguiente comando:\n\n $ ln -s /usr/share/icons/breeze_cursors/cursors ~/.icons/default/cursors\n\n==== Se ha establecido una resoluci\u00f3n de pantalla inutilizable ====\n\nSus ajustes de configuraci\u00f3n locales para kscreen pueden anular aquellos establecidos en {{ic|xorg.conf}}. Busque los archivos de configuraci\u00f3n de kscreen en {{ic|~/.local/share/kscreen/}} y revise si el modo est\u00e1 establecido en una resoluci\u00f3n que no es compatible con su monitor.\n\n=== Problemas de sonido ===\n\n{{Note (Espa\u00f1ol)|Primero aseg\u00farese de tener {{Pkg|alsa-utils}} instalado.}}\n\n==== No hay sonido despu\u00e9s de suspender ====\n\nSi no hay sonido despu\u00e9s de la suspensi\u00f3n y si KMix no muestra dispositivos de audio los cuales deber\u00edan estar ah\u00ed, reiniciar plasmashell y pulseaudio podr\u00eda ayudar:\n\n $ killall plasmashell\n $ systemctl --user restart pulseaudio.service\n $ plasmashell\n\nEs posible que algunas aplicaciones tambi\u00e9n deban reiniciarse para que el sonido se reproduzca de nuevo.\n\n==== Los archivos MP3 no se pueden reproducir cuando se utiliza el backend GStreamer Phonon ====\n\nEsto se puede resolver instalando el complemento libav de GStreamer (paquete {{Pkg|gst-libav}}). Si a\u00fan tiene problemas, puede intentar cambiar el backend de Phonon utilizado instalando otro como {{AUR|phonon-qt4-vlc}} o {{Pkg|phonon-qt5-vlc}}.\n\nLuego, aseg\u00farese de que se prefiera el backend v\u00eda ''Preferencias del sistema > Multimedia > Audio y v\u00eddeo > Motor''.\n\n=== Administraci\u00f3n de energ\u00eda ===\n\n==== No hay opciones de Suspender/Hibernar ====\n\nSi su sistema puede suspender o hibernar usando [[systemd (Espa\u00f1ol)|systemd]] pero estas opciones no se muestran en KDE, aseg\u00farese de que {{Pkg|powerdevil}} est\u00e9 instalado.\n\n=== KMail ===\n\n==== Limpie la configuraci\u00f3n de akonadi para arreglar KMail ====\n\nEn primer lugar, aseg\u00farese de que KMail no se est\u00e1 ejecutando. Despu\u00e9s, haga una copia de seguridad de la configuraci\u00f3n:\n\n $ cp -a ~/.local/share/akonadi ~/.local/share/akonadi-old\n $ cp -a ~/.config/akonadi ~/.config/akonadi-old\n\nInicie ''Preferencias del sistema > Personal'' y elimine todos los medios. Vuelva a Dolphin y elimine el {{ic|~/.local/share/akonadi/}} original y\n{{ic|~/.config/akonadi/}} - las copias que hizo aseguran que pueda revertir los cambios en caso de ser necesario.\n\nAhora vuelva a la p\u00e1gina de preferencias del sistema y agregue cuidadosamente los medios necesarios. Deber\u00eda ver la lectura de medios en sus carpetas de correo. A continuaci\u00f3n, inicie Kontact/KMail para ver si funciona correctamente.\n\n==== Vaciar la bandeja de entrada IMAP en KMail ====\n\nPara algunas cuentas IMAP, KMail mostrar\u00e1 la bandeja de entrada como un contenedor de nivel superior (por lo que no ser\u00e1 posible leer los mensajes all\u00ed) con todas las dem\u00e1s carpetas de esta cuenta dentro. [https://bugs.kde.org/show_bug.cgi?id=284172]. Para resolver este problema, simplemente deshabilite las suscripciones del lado del servidor en la configuraci\u00f3n de la cuenta KMail.\n\n=== Conexi\u00f3n ===\n\n==== Se congela cuando se usa montaje autom\u00e1tico en un volumen NFS ====\n\nEl uso de [[fstab (Espa\u00f1ol)#Montaje autom\u00e1tico con systemd|Fstab#Montaje autom\u00e1tico con systemd]] en un volumen [[NFS (Espa\u00f1ol)|NFS]] puede provocar bloqueos, v\u00e9ase [https://bugs.kde.org/show_bug.cgi?id=354137 informe de errores previos].\n\n=== Registro agresivo del diario QXcbConnection ===\n\nV\u00e9ase [[Qt#Disable/Change Qt journal logging behaviour|Qt#Deshabilitar/Cambiar el comportamiento de registro del diario Qt]].\n\n=== Las aplicaciones KF5/Qt 5 no muestran iconos en i3/FVWM/awesome ===\n\nV\u00e9ase [[Qt#Configuration of Qt 5 applications under environments other than KDE Plasma|Qt#Configuraci\u00f3n de aplicaciones Qt5 en entornos que no sean KDE Plasma]].\n\n=== Problemas al guardar las credenciales y los di\u00e1logos de KWallet se muestran de manera persistente ===\n\nNo se recomienda desactivar el sistema de guardado de contrase\u00f1as de [[KDE Wallet (Espa\u00f1ol)|KWallet]] en las preferencias del usuario, ya que es necesario para guardar credenciales cifradas como las frases de contrase\u00f1as WiFi de cada usuario. La persistencia de los di\u00e1logos de KWallet puede ser consecuencia de desactivarlo.\n\nEn caso de que encuentre molestos los di\u00e1logos para desbloquear la cartera cuando las aplicaciones deseen acceder a ella, puede permitir que los [[Display manager (Espa\u00f1ol)|gestores de pantallas]] [[SDDM]] y [[LightDM (Espa\u00f1ol)|LightDM]] desbloqueen la cartera al iniciar sesi\u00f3n autom\u00e1ticamente, v\u00e9ase [[KDE Wallet (Espa\u00f1ol)#Desbloquear KDE Wallet autom\u00e1ticamente al iniciar la sesi\u00f3n|KDE Wallet#Desbloquear KDE Wallet autom\u00e1ticamente al iniciar sesi\u00f3n]]. La primera cartera debe ser generada por KWallet (y no por el usuario) para poder ser utilizada por las credenciales del programa del sistema.\n\nEn caso de que desee que las credenciales de la cartera no se abran en la memoria para cada aplicaci\u00f3n, puede restringir su acceso a las aplicaciones con {{Pkg|kwalletmanager}} en la configuraci\u00f3n de KWallet.\n\nSi no le interesa para nada el cifrado de credenciales, simplemente puede dejar los formularios de contrase\u00f1as en blanco cuando KWallet le pida la contrase\u00f1a mientras crea una cartera. En este caso, las aplicaciones pueden acceder a las contrase\u00f1as sin tener que desbloquear primero la cartera.\n\n=== Discover no muestra ninguna aplicaci\u00f3n ===\n\nEsto se puede resolver instalando {{Pkg|packagekit-qt5}}.\n\n=== kscreenlocker_greet usa mucha CPU con controladores de NVIDIA ===\n\nTal y como se describe en [https://bugs.kde.org/show_bug.cgi?id=347772 KDE Bug 347772] los controladores OpenGL de NVIDIA y QML pueden no funcionar bien con Qt 5. Esto puede llevar a {{ic|kscreenlocker_greet}} a utilizar mucha CPU despu\u00e9s de desbloquear la sesi\u00f3n. Para resolver este problema, establezca la [[Environment variables (Espa\u00f1ol)|variable de entorno]] {{ic|QSG_RENDERER_LOOP}} a {{ic|basic}}.\n\nA continuaci\u00f3n, elimine las instancias anteriores del greeter con {{ic|killall kscreenlocker_greet}}.\n\n=== Error 22 del SO cuando se ejecuta Akonadi en ZFS ===\n\nSi su directorio de inicio est\u00e1 en un grupo [[ZFS]], cree un archivo {{ic|~/.config/akonadi/mysql-local.conf}} con el siguiente contenido:\n\n [mysqld]\n innodb_use_native_aio = 0\n\nV\u00e9ase [[MariaDB#OS error 22 when running on ZFS]].\n\n=== Algunos programas no pueden desplazarse cuando sus ventanas est\u00e1n inactivas ===\n\nEsto se debe a la problem\u00e1tica manera en que GTK3 maneja los eventos de desplazamiento del rat\u00f3n. Una soluci\u00f3n para esto es establecer la [[Environment variables (Espa\u00f1ol)|variable de entorno]] {{ic|1=GDK_CORE_DEVICE_EVENTS=1}}. Sin embargo, esta soluci\u00f3n tambi\u00e9n rompe el desplazamiento suave del panel t\u00e1ctil y el desplazamiento de la pantalla t\u00e1ctil.\n\n== V\u00e9ase tambi\u00e9n ==\n\n* [https://www.kde.org/ P\u00e1gina web de KDE]\n* [https://bugs.kde.org/ Seguimiento de errores de KDE]\n* [https://blog.martin-graesslin.com/blog/kategorien/kde/ Blog de Martin Graesslin]"
                    }
                ]
            },
            "6394": {
                "pageid": 6394,
                "ns": 0,
                "title": "List of applications (\u7b80\u4f53\u4e2d\u6587)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Applications (\u7b80\u4f53\u4e2d\u6587)]]\n[[Category:Lists of software (\u7b80\u4f53\u4e2d\u6587)]]\n[[bs:List of applications]]\n[[de:Liste von Anwendungen]]\n[[en:List of applications]]\n[[es:List of applications]]\n[[fa:\u0644\u06cc\u0633\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc]]\n[[ja:\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u4e00\u89a7]]\n[[lt:List of applications]]\n[[pt:List of applications]]\n[[tr:List of applications]]\n{{TranslationStatus (\u7b80\u4f53\u4e2d\u6587)|List of applications|2021-02-09|629636}}\n\n{{List of applications navigation (\u7b80\u4f53\u4e2d\u6587)}}\n\n{{Related articles start (\u7b80\u4f53\u4e2d\u6587)}}\n{{Related|Core utilities (\u7b80\u4f53\u4e2d\u6587)}}\n{{Related|List of Games (\u7b80\u4f53\u4e2d\u6587)}}\n{{Related articles end}}\n\n\u672c\u6587\u6309\u7167\u4e0d\u540c\u5206\u7c7b\u5217\u51fa\u5e38\u7528\u7684\u5e94\u7528\uff0c\u662f\u5bfb\u627e\u8f6f\u4ef6\u5305\u7684\u7d22\u5f15\u3002\u8bb8\u591a\u6bb5\u843d\u5206\u6210\u7ec8\u7aef\u548c\u56fe\u5f62\u5e94\u7528\u7a0b\u5e8f\u3002\n{{\u63d0\u793a|1=<br>\n* \u6b64\u9875\u9762\u7684\u5b58\u5728\u4e3b\u8981\u662f\u4e3a\u4e86\u4f7f\u60a8\u66f4\u5bb9\u6613\u641c\u7d22\u4e0d\u77e5\u9053\u88ab\u6dfb\u52a0\u5230\u54ea\u4e2a\u90e8\u5206\u7684\u5e94\u7528\u7a0b\u5e8f\u7684\u66ff\u4ee3\u65b9\u6848\u3002\u4f7f\u7528\u9876\u90e8\u6a21\u677f\u4e2d\u7684\u94fe\u63a5\uff0c\u4ee5\u72ec\u7acb\u9875\u9762\u7684\u5f62\u5f0f\u67e5\u770b\u4e3b\u90e8\u5206\u3002\n* \u8bf7\u8003\u8651[[\u5b89\u88c5]] [[pkgstats]] \u8f6f\u4ef6\u5305\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a[[systemd (\u7b80\u4f53\u4e2d\u6587)/Timers (\u7b80\u4f53\u4e2d\u6587)|\u5b9a\u65f6\u5668]]\uff0c\u4ee5\u4fbf\u5c06\u5b89\u88c5\u5728\u7cfb\u7edf\u4e0a\u7684\u8f6f\u4ef6\u5305\u7684\u5217\u8868\uff0c\u4e0e\u4f53\u7cfb\u67b6\u6784\u548c\u4f7f\u7528\u7684\u955c\u50cf\u4e00\u8d77\uff0c\u53d1\u9001\u7ed9 Arch Linux \u7684\u5f00\u53d1\u4eba\u5458\uff0c\u5e2e\u52a9\u4ed6\u4eec\u81ea\u5df1\u7684\u5de5\u4f5c\u7684\u4f18\u5148\u7ea7\u5e76\u8fdb\u884c\u66f4\u597d\u7684\u5206\u914d\u3002\u8be5\u4fe1\u606f\u662f\u533f\u540d\u53d1\u9001\u7684\uff0c\u4e0d\u80fd\u7528\u6765\u8bc6\u522b\u60a8\u7684\u8eab\u4efd\u3002\u60a8\u53ef\u4ee5\u5728[https://www.archlinux.de/?page=Statistics \u7edf\u8ba1\u4fe1\u606f\u9875\u9762]\u67e5\u770b\u6536\u96c6\u7684\u6570\u636e\u3002\u53ef\u5728[https://bbs.archlinux.org/viewtopic.php?id=105431 \u6b64\u8bba\u575b\u4e3b\u9898]\u4e2d\u83b7\u5f97\u66f4\u591a\u4fe1\u606f\u3002\n* \u5b88\u62a4\u7a0b\u5e8f\u5305\u901a\u5e38\u5305\u62ec\u8981[[\u542f\u52a8]]\u7684\u76f8\u5173 systemd \u5355\u5143\u6587\u4ef6\u3002\u6709\u4e9b\u8f6f\u4ef6\u5305\u751a\u81f3\u5305\u542b\u4e0d\u540c\u7684 systemd \u5355\u5143\u6587\u4ef6\u3002\u5b89\u88c5\u540e\u4f7f\u7528 {{ic|pacman -Qql ''package'' <nowiki>|</nowiki> grep -Fe .service -e .socket}} \u53ef\u7528\u4e8e\u68c0\u67e5\u5e76\u627e\u5230\u76f8\u5e94\u6587\u4ef6\u3002\n}}\n\n{{\u6ce8\u610f|\u201c\u547d\u4ee4\u884c\u201d\u90e8\u5206\u4e2d\u7684\u5e94\u7528\u7a0b\u5e8f\u53ef\u80fd\u4f1a\u6709\u56fe\u5f62\u524d\u7aef\uff0c\u4f46\u5176\u5b98\u65b9\u7248\u672c\u5e76\u4e0d\u81ea\u5e26\u56fe\u5f62\u524d\u7aef\u3002}}\n<!-- Subcategories -->\n{{:List of applications (\u7b80\u4f53\u4e2d\u6587)/Internet (\u7b80\u4f53\u4e2d\u6587)}}\n{{:List of applications (\u7b80\u4f53\u4e2d\u6587)/Multimedia (\u7b80\u4f53\u4e2d\u6587)}}\n{{:List of applications (\u7b80\u4f53\u4e2d\u6587)/Utilities (\u7b80\u4f53\u4e2d\u6587)}}\n{{:List of applications (\u7b80\u4f53\u4e2d\u6587)/Documents (\u7b80\u4f53\u4e2d\u6587)}}\n{{:List of applications (\u7b80\u4f53\u4e2d\u6587)/Security (\u7b80\u4f53\u4e2d\u6587)}}\n{{:List of applications (\u7b80\u4f53\u4e2d\u6587)/Science (\u7b80\u4f53\u4e2d\u6587)}}\n{{:List of applications (\u7b80\u4f53\u4e2d\u6587)/Other (\u7b80\u4f53\u4e2d\u6587)}}\n\n== \u53e6\u8bf7\u53c2\u89c1 ==\n\n'''\u901a\u7528\u7684\u8f6f\u4ef6\u5217\u8868'''\n\n* [[Wikipedia:Portal:Free and open-source software]]\n* [[Wikipedia:List of free and open-source software packages]]\n* [[Wikipedia:List of GNU packages]]\n* [https://alternativeto.net/platform/linux/ AlternativeTo] - \u6d41\u884c\u5e94\u7528\u7684 Linux \u66ff\u4ee3\u54c1\n* [https://github.com/luong-komorebi/Awesome-Linux-Software Awesome Linux Software] - Linux \u5e94\u7528\u7a0b\u5e8f\u548c\u5de5\u5177\u7684\u96c6\u5408\n* [https://www.linuxalt.com/ Linux Alternative Project] - \u7b49\u6548\u4e8e Windows \u8f6f\u4ef6\u7684 Linux \u8f6f\u4ef6\n* [https://linuxappfinder.com/all Linux App Finder] - Linux \u5e94\u7528\u76ee\u5f55\n* [https://www.linuxlinks.com/links/Software/ Linux Links Directory] - Linux \u5e94\u7528\u76ee\u5f55\n* [https://www.osalt.com/ Open Source Alternative] - \u5546\u4e1a\u8f6f\u4ef6\u7684\u5f00\u6e90\u66ff\u4ee3\u54c1\n\n'''\u5176\u4ed6\u53d1\u884c\u7248\u7684\u8f6f\u4ef6\u5217\u8868'''\n\n* [https://appimage.github.io/ AppImageHub]\n* [https://flathub.org/ Flathub]\n* [https://snapcraft.io/ Snapcraft]\n* [https://packages.debian.org Debian \u8f6f\u4ef6\u5305] \u548c [https://screenshots.debian.net \u5c4f\u5e55\u622a\u56fe]\n* [https://apps.fedoraproject.org/packages/ Fedora \u8f6f\u4ef6\u5305]\n* [https://packages.gentoo.org/ Gentoo \u8f6f\u4ef6\u5305]\n* [https://packages.ubuntu.com/ Ubuntu \u8f6f\u4ef6\u5305]\n\n'''\u8f6f\u4ef6 [[Wikipedia:Forge (software)|forge]]'''\n\n* [https://github.com/explore GitHub]\n* [https://gitlab.com/explore GitLab]\n* [https://launchpad.net/ Launchpad]\n* [https://sourceforge.net/ SourceForge]\n\n'''\u7279\u522b\u8f6f\u4ef6\u5217\u8868'''\n\n* [https://wiki.gnome.org/Apps GNOME \u5e94\u7528]\n* [https://kde.org/applications/ KDE \u5e94\u7528]\n* [https://github.com/nodiscc/awesome-linuxaudio awesome-linuxaudio] - \u97f3\u9891/\u89c6\u9891/\u76f4\u64ad\u8f6f\u4ef6\n* [https://github.com/Kickball/awesome-selfhosted awesome-selfhosted] - \u7f51\u7edc\u670d\u52a1\u548c Web \u5e94\u7528\u7a0b\u5e8f\n* [https://github.com/alebcay/awesome-shell awesome-shell] - \u547d\u4ee4\u884c\u6846\u67b6\uff0c\u5de5\u5177\u7bb1\u548c\u6307\u5357\n* [https://github.com/n1trux/awesome-sysadmin awesome-sysadmin] - \u7cfb\u7edf\u7ba1\u7406\u5458\u4e13\u7528\u8f6f\u4ef6\n* [https://inconsolation.wordpress.com/index/ Inconsolation] - \u8f7b\u5de7\u548c\u7b80\u7ea6\u7684\u5e94\u7528\u7a0b\u5e8f\u8bc4\u8bba\n* [https://kmandla.wordpress.com/software/ K.Mandla's blog] - \u63a7\u5236\u53f0\u5e94\u7528\u7a0b\u5e8f\u7684\u5c4f\u5e55\u622a\u56fe\u548c\u8bc4\u8bba\n* [https://libreprojects.net/ Libre Projects] - \u5f00\u6e90\u6258\u7ba1\u7684 Web \u670d\u52a1\n* [https://web.archive.org/web/20200530213904/http://lin-app.com/ LinApp]  - \u9002\u7528\u4e8e Linux \u7684\u5546\u4e1a\u5e94\u7528\u548c\u6e38\u620f\n* [https://prism-break.org/en/all/ PRISM Break] - \u9632\u6b62\u5927\u89c4\u6a21\u76d1\u89c6\u7684\u8f6f\u4ef6\n* [https://www.privacytools.io/ Privacy Tools] - \u4fdd\u62a4\u60a8\u7684\u9690\u79c1\u514d\u53d7\u5168\u7403\u5927\u89c4\u6a21\u76d1\u89c6\u7684\u77e5\u8bc6\u548c\u5de5\u5177\n\n'''Arch Linux \u8bba\u575b\u4e3b\u9898'''\n\n* [https://bbs.archlinux.org/viewtopic.php?id=111878 Arch Linux Forums / LnF Awards 2011] - 2011 \u5e74\u5ea6\u6700\u4f73\u8f7b\u91cf\u7a0b\u5e8f\u3002\n* [https://bbs.archlinux.org/viewtopic.php?id=138281 Arch Linux Forums / LnF Awards 2012] - 2012 \u5e74\u5ea6\u6700\u4f73\u8f7b\u91cf\u7a0b\u5e8f\u3002\n* [https://bbs.archlinux.org/viewtopic.php?id=174764 Arch Linux Forums / 2013-2014 \u6700\u53d7\u6b22\u8fce\u7684\u5e94\u7528]\n* [https://bbs.archlinux.org/viewtopic.php?pid=1702332 Arch Linux Forums / 2017+ \u6700\u53d7\u6b22\u8fce\u7684\u5e94\u7528]\uff08\u8981\u6c42\u767b\u5f55\uff09"
                    }
                ]
            },
            "6721": {
                "pageid": 6721,
                "ns": 0,
                "title": "Proxy server",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Proxy servers]]\n[[Category:Network configuration]]\n[[ja:\u30d7\u30ed\u30ad\u30b7\u8a2d\u5b9a]]\n[[zh-hans:Proxy server]]\n{{Related articles start}}\n{{Related|HTTP tunneling}}\n{{Related articles end}}\n\nAccording to [[Wikipedia:Proxy server|Wikipedia]]:\n:In computer networks, a proxy server is a server (a computer system or an application) that acts as an intermediary for requests from clients seeking resources from other servers.\n\n== HTTPS MITM proxies ==\n\nWhen debugging HTTPS connections it is sometimes useful to intercept them outside of the browser. In order for the TLS MITM to work you need to trust a [[certificate authority]] of the proxy either in your browser or system-wide.\n\n* {{App|Charles|Graphical trialware written in Java.|https://www.charlesproxy.com/|{{AUR|charles}}}}\n* {{App|Fiddler|Proprietary and graphical, running on Mono.|https://www.telerik.com/fiddler|{{AUR|fiddler}}}}\n* {{App|microsocks|Plain simple SOCKS5 proxy server, written in C.|https://github.com/rofl0r/microsocks|{{Pkg|microsocks}}}}\n* {{App|mitmproxy|Command-line and web interface, written in Python, also has API.|https://mitmproxy.org/|{{Pkg|mitmproxy}}}}\n* {{App|sslsplit|Works with any TLS connections but cannot act as a HTTP proxy in a browser, written in C.|https://www.roe.ch/SSLsplit|{{Pkg|sslsplit}}}}\n\n== Environment variables ==\n\n{{Expansion|To export the environment everywhere (more or less), they could be set in {{ic|/etc/environment}}, {{ic|/etc/environment.d/*.conf}} and {{ic|~/.config/environment.d/*.conf}}.}}\n\nSome programs, such as [[wget]] and (used by [[pacman]]) [[CURL]], use environment variables of the form {{ic|''protocol''_proxy}} to determine the proxy for a given protocol (e.g. HTTP, FTP, ...).\n\nBelow is an example on how to set these variables in a shell:\n\n{{bc|1=\nexport http_proxy=http://10.203.0.1:5187/\nexport https_proxy=$http_proxy\nexport ftp_proxy=$http_proxy\nexport rsync_proxy=$http_proxy\nexport no_proxy=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n}}\n\nSome programs look for the all caps version of the environment variables.\n\nIf the proxy environment variables are to be made available to all users and all applications, the above mentioned export commands may be added to a script, say {{ic|proxy.sh}} inside {{ic|/etc/profile.d/}}. The script has to be then made [[executable]]. This method is helpful while using a desktop environment like [[Xfce]] which does not provide an option for proxy configuration. For example, [[Chromium]] browser will make use of the variables set using this method while running XFCE. \n\nAlternatively, there is a tool named {{AUR|proxyman-git}} which claims to configure system-wide proxy settings easily. It also handles proxy configurations of other software like [[git]], [[npm]], [[Dropbox]], etc. The project is inspired from Alan Pope's idea of making a script.\n \nAlternatively you can automate the toggling of the variables by adding a function to your {{ic|.bashrc}} (thanks to Alan Pope for original script idea)\n\n{{bc|<nowiki>\nfunction proxy_on() {\n    export no_proxy=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n\n    if (( $# > 0 )); then\n        valid=$(echo $@ | sed -n 's/\\([0-9]\\{1,3\\}.\\?\\)\\{4\\}:\\([0-9]\\+\\)/&/p')\n        if [[ $valid != $@ ]]; then\n            >&2 echo \"Invalid address\"\n            return 1\n        fi\n        local proxy=$1\n        export http_proxy=\"$proxy\" \\\n               https_proxy=$proxy \\\n               ftp_proxy=$proxy \\\n               rsync_proxy=$proxy\n        echo \"Proxy environment variable set.\"\n        return 0\n    fi\n\n    echo -n \"username: \"; read username\n    if [[ $username != \"\" ]]; then\n        echo -n \"password: \"\n        read -es password\n        local pre=\"$username:$password@\"\n    fi\n\n    echo -n \"server: \"; read server\n    echo -n \"port: \"; read port\n    local proxy=$pre$server:$port\n    export http_proxy=\"$proxy\" \\\n           https_proxy=$proxy \\\n           ftp_proxy=$proxy \\\n           rsync_proxy=$proxy \\\n           HTTP_PROXY=$proxy \\\n           HTTPS_PROXY=$proxy \\\n           FTP_PROXY=$proxy \\\n           RSYNC_PROXY=$proxy\n}\n\nfunction proxy_off(){\n    unset http_proxy https_proxy ftp_proxy rsync_proxy \\\n          HTTP_PROXY HTTPS_PROXY FTP_PROXY RSYNC_PROXY\n    echo -e \"Proxy environment variable removed.\"\n}\n</nowiki>}}\n\nOmit username or password if they are not needed.\n\nAs an alternative, you may want to use the following script.\nChange the strings {{ic|YourUserName}}, {{ic|ProxyServerAddress:Port}}, {{ic|LocalAddress}} and {{ic|LocalDomain}} to match your own data, then edit your {{ic|~/.bashrc}} to include the edited functions. Any new bash window will have the new functions. In existing bash windows, type {{ic|source ~/.bashrc}}.\nYou may prefer to put function definitions in a separate file like {{ic|functions}} then add {{ic|source functions}} to {{ic|.bashrc}} instead of putting everything in {{ic|.bashrc}}. You may also want to change the name \"myProxy\" into something short and easy to write.\n\n{{bc|<nowiki>\n#!/bin/bash\n\nassignProxy(){\n   PROXY_ENV=\"http_proxy ftp_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY FTP_PROXY ALL_PROXY\"\n   for envar in $PROXY_ENV\n   do\n      export $envar=$1\n   done\n   for envar in \"no_proxy NO_PROXY\"\n   do\n      export $envar=$2\n   done\n}\n\nclrProxy(){\n    PROXY_ENV=\"http_proxy ftp_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY FTP_PROXY ALL_PROXY\"\n    for envar in $PROXY_ENV\n    do\n       unset $envar\n    done\n}\n\nmyProxy(){\n   user=YourUserName\n   read -p \"Password: \" -s pass &&  echo -e \" \"\n   proxy_value=\"http://$user:$pass@ProxyServerAddress:Port\"\n   no_proxy_value=\"localhost,127.0.0.1,LocalAddress,LocalDomain.com\"\n   assignProxy $proxy_value $no_proxy_value\n}\n</nowiki>}}\n\n=== Keep proxy through sudo ===\n\nIf the proxy [[environment variables]] are set for the user only they will get lost when running commands with [[sudo]] (or when programs use sudo internally).\n\nA way to prevent that is to add the following line to a [[sudo]] configuration file:\n\n{{hc|/etc/sudoers.d/05_proxy|2=\nDefaults env_keep += \"*_proxy *_PROXY\"\n}}\n\n=== Automation with network managers ===\n\n* [[NetworkManager]] cannot change the environment variables.\n* [[netctl]] could set-up these environment variables but they would not be seen by other applications as they are not child of netctl.\n\n== About libproxy ==\n\n[https://libproxy.github.io/libproxy/ libproxy], {{pkg|libproxy}}, is an abstraction library which should be used by all applications that want to access a network resource. It still is in development but could lead to a unified and automated handling of proxies in GNU/Linux if widely adopted.\n\nThe role of libproxy is to read the proxy settings from different sources and make them available to applications which use the library. The interesting part with libproxy is that it offers an implementation of the [[wikipedia:Web_Proxy_Autodiscovery_Protocol|Web Proxy Autodiscovery Protocol]] and an implementation of [[wikipedia:Proxy_auto-config|Proxy Auto-Config]] that goes with it.\n\nThe {{Ic|/usr/bin/proxy}} binary takes URL(s) as argument(s) and returns the proxy/proxies that could be used to fetch this/these network resource(s).\n\n{{Note|1=the version 0.4.11 does not support {{ic|1=http_proxy='wpad:'}} because {{ic|1={ pkg-config 'mozjs185 >= 1.8.5'; } }} fails .}}\n\nAs of 06/04/2009 libproxy is required by {{pkg|libsoup}}. It is then indirectly used by the [[midori]] browser.\n\n== Web proxy options ==\n\n* [[Squid]] is a very popular caching/optimizing proxy.\n* [[Privoxy]] is an anonymizing and ad-blocking proxy.\n* {{Pkg|tinyproxy}} is a small, efficient HTTP/SSL proxy daemon.\n* For a simple proxy, [[ssh]] with port forwarding can be used.\n\n=== Simple Proxy with SSH ===\n\nConnect to a server (HOST) on which you have an account (USER) as follows\n\n $ ssh -D ''PORT'' ''USER''@''HOST''\n\nFor PORT, choose some number which is not an IANA registered port. This specifies that traffic on the local ''PORT'' will be forwarded to the remote ''HOST''. ssh will act as a [[Wikipedia:SOCKS|SOCKS]] server. Software supporting SOCKS proxy servers can simply be configured to connect to ''PORT'' on localhost. See  [[OpenSSH#Forwarding other ports]].\n\n== Using a SOCKS proxy ==\n\nThere are two cases:\n\n* the application you want to use handles [[Wikipedia:SOCKS#SOCKS5|SOCKS5]] proxies (for example [[Firefox]]), then you just have to configure it to use the proxy.\n* the application you want to use does not handle SOCKS proxies, then you can try to use {{Pkg|tsocks}} or {{Pkg|proxychains-ng}}.\n\nIn Firefox, you can use the SOCKS proxy in the menu ''Preferences > Network > Settings''. Choose ''Manual Proxy Configuration'', and set the SOCKS Host (and only this one, make sure the other fields, such as HTTP Proxy or SSL Proxy are left empty). For example, if a SOCKS5 proxy is running on localhost port 8080, put {{ic|127.0.0.1}} in the SOCKS Host field, {{ic|8080}} in the Port field, and validate.\n\nIf using ''proxychains-ng'', the configuration takes place in {{ic|/etc/proxychains.conf}}. You may have to uncomment the last line (set by default to use [[Tor]]), and replace it with the parameters of the SOCKS proxy. For example, if you are using the same SOCKS5 proxy as above, you will have to replace the last line by:\n\n socks5 127.0.0.1 8080\n\nThen, ''proxychains-ng'' can be launched with \n\n $ proxychains ''program''\n\nWhere {{ic|''program''}} can be any program already installed on your system (e.g. xterm, gnome-terminal, etc).\n\nIf using ''tsocks'', the configuration takes place in {{ic|/etc/tsocks.conf}}. See {{man|5|tsocks.conf}} for the options. An example minimum configuration looks like this:\n\n{{hc|/etc/tsocks.conf|2=\nserver = 127.0.0.1\nserver_port = 8080\nserver_type = 5\ndefault_user = \"\"\ndefault_pass = \"\"}}\n\n=== curl and pacman ===\n\nYou may set the {{ic|all_proxy}} environment variable to let curl and pacman (which uses curl) use your socks5 proxy:\n\n $ export all_proxy=\"socks5://your.proxy:1080\"\n\n== Proxy settings on GNOME3 ==\n\nSome programs like [[Chromium]] and [[Firefox]] can use the settings stored by GNOME. These settings can be modified through the gnome-control-center front end and also through ''gsettings''.\n\n gsettings set org.gnome.system.proxy mode 'manual' \n gsettings set org.gnome.system.proxy.http host 'proxy.localdomain.com'\n gsettings set org.gnome.system.proxy.http port 8080\n gsettings set org.gnome.system.proxy.ftp host 'proxy.localdomain.com'\n gsettings set org.gnome.system.proxy.ftp port 8080\n gsettings set org.gnome.system.proxy.https host 'proxy.localdomain.com'\n gsettings set org.gnome.system.proxy.https port 8080\n gsettings set org.gnome.system.proxy.socks host 'proxy.localdomain.com'\n gsettings set org.gnome.system.proxy.socks port 8080\n gsettings set org.gnome.system.proxy ignore-hosts \"['localhost', '127.0.0.0/8', '10.0.0.0/8', '192.168.0.0/16', '172.16.0.0/12' , '*.localdomain.com' ]\"\n\nThis configuration can also be set to automatically execute when [[NetworkManager#Proxy settings|NetworkManager]] connects to specific networks, by using the {{AUR|proxydriver}} package.\n\n== Microsoft NTLM proxy ==\n\nIn a Windows network, NT LAN Manager (NTLM) is a suite of Microsoft security protocols which provides authentication, integrity, and confidentiality to users.  \n\n{{AUR|cntlm}} from the [[AUR]] stands between your applications and the NTLM proxy, adding NTLM authentication on-the-fly. You can specify several \"parent\" proxies and Cntlm will try one after another until one works. All authenticated connections are cached and reused to achieve high efficiency.\n \n (NTLM PROXY IP:PORT + CREDENTIALS + OTHER INFO) -----> '''(127.0.0.1:PORT)'''\n\n=== Configuration ===\n\nChange settings in {{ic|/etc/cntlm.conf}} as needed, except for the password. Then run:\n\n $ cntlm -H\n\nThis will generate encrypted password hashes according to your proxy hostname, username and password.\n\n{{Warning|{{Pkg|ettercap}} can easily sniff your password over LAN when using plain-text passwords instead of encrypted hashes.}}\n\nEdit {{ic|/etc/cntlm.conf}} again and include all three generated hashes, then [[enable]] {{ic|cntlm.service}}.\n\nTo test settings, run:\n\n $ cntlm -v\n\n=== Usage ===\n\nUse {{ic|127.0.0.1:''port''}} or {{ic|localhost:''port''}} as a proxy adress. {{ic|''port''}} matches the {{ic|Listen}} parameter in {{ic|/etc/cntlm.conf}}, which by default is {{ic|3128}}."
                    }
                ]
            },
            "6728": {
                "pageid": 6728,
                "ns": 0,
                "title": "Clipboard",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:X server]]\n[[Category:Lists of software]]\n[[es:Clipboard]]\n[[ja:\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9]]\n[[ru:Clipboard]]\n{{Related articles start}}\n{{Related|Copying text from a terminal}}\n{{Related|Firefox#Middle-click behavior}}\n{{Related|GTK#Disable mouse paste}}\n{{Related|Vim#Clipboard}}\n{{Related articles end}}\n\n{{Expansion|Describe clipboards for [[Wayland]] and XWayland. Some references: [https://wiki.gnome.org/Initiatives/Wayland/PrimarySelection], [https://github.com/swaywm/sway/issues/1012], [https://bugreports.qt.io/browse/QTBUG-66008].}}\n\nAccording to [[Wikipedia:Clipboard (computing)|Wikipedia]]:\n:The clipboard is a facility used for short-term data storage and/or data transfer between documents or applications, via [[Wikipedia:copy and paste|copy and paste]] operations.\n\n== History ==\n\nIn X10, ''cut buffers'' were introduced. These were limited buffers that stored arbitrary text and were used by most applications. However, they were inefficient and implementation of them varied, so selections were introduced. Cut buffers are long deprecated, and although some applications (such as [[xterm]]) may have legacy support for them, it is both not likely and not recommended that they be used.\n\n== Selections ==\n\n[[Freedesktop.org]] describes the two main ''selections'' as follows:[https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt]\n\n;PRIMARY: Used for the currently selected text, even if it is not explicitly copied, and for middle-mouse-click pasting. In some cases, pasting is also possible with a keyboard shortcut.\n;CLIPBOARD: Used for explicit copy/paste commands involving keyboard shortcuts or menu items. Hence, it behaves like the single-clipboard system on Windows. Unlike PRIMARY, it can also handle [https://stackoverflow.com/questions/3571179/how-does-x11-clipboard-handle-multiple-data-formats multiple data formats].\n\nThe majority of programs for [[Xorg]], including [[Qt]] and [[GTK]] applications, follow this behavior. While [https://tronche.com/gui/x/icccm/ ICCCM] also defines a SECONDARY selection, it does not have a consensually agreed upon purpose. Despite the naming, all three selections are basically \"clipboards\". Rather than the old \"cut buffers\" system where arbitrary applications could modify data stored in the cut buffers, only one application may control or \"own\" a selection at one time. This prevents inconsistencies in the operation of the selections.\n\nSee the [[Keyboard shortcuts]] page which lists the default shortcuts in many programs.\n\nIt is also important to realize that according to the selection protocols, nothing is copied [https://unix.stackexchange.com/questions/213840/how-to-toggle-or-turn-off-text-selection-being-sent-to-the-clipboard/213843#213843 until it is pasted]. For example, if you select some word in a terminal window, close the terminal and then want to paste it somewhere else, it will not work because the terminal is gone and the text has not been copied anywhere. If you want the word to be preserved after closing terminal window, consider installing a [[clipboard manager]].\n\n{{Note|[[#Managers|Clipboard managers]] can significantly change the user experience, for example they might synchronize the PRIMARY and CLIPBOARD selections to emulate a single-clipboard system.}}\n\n== Middle-click behavior ==\n\nThe following changes middle-click copy-pasting behavior from PRIMARY, without disabling middle click or altering its other functionalities, like opening in a new tab or scrolling, etc.\n\n=== Globally ===\n\n==== Clearing PRIMARY ====\n\nRun the script\n\n #!/bin/sh\n while true; do\n     xsel -fin </dev/null\n done\n\n==== Using sxhkd ====\n\nUsing [[sxhkd]], add the following to the configuration file: \n\n button2\n     echo -n | xclip -in\n\n=== Application-specific ===\n\n* [[GTK]] \u2014 See [[GTK#Disable mouse paste]]\n* [[Firefox]] \u2014 See [[Firefox#Middle-click behavior]]\n* [[Libreoffice]] \u2014 Can be disabled from Tools > Options > LibreOffice > View > Mouse\n\n== Tools ==\n\nThis section lists command-line tools to manipulate the clipboards.\n\n* {{App|sselp|Simple X selection printer. Prints the X selection to stdout.|https://tools.suckless.org/x/sselp|{{AUR|sselp}}}}\n* {{App|xclip|A lightweight, command-line based interface to the clipboard.|https://github.com/astrand/xclip|{{Pkg|xclip}}}}\n* {{App|xsel|Command-line program for getting and setting the contents of the X selection.|http://www.vergenet.net/~conrad/software/xsel/|{{Pkg|xsel}}}}\n* {{App|wl-clipboard|A simple copy/paste tool for [[Wayland]] compositors.|https://github.com/bugaevc/wl-clipboard|{{Pkg|wl-clipboard}}}}\n\n{{Tip|Clipboards on Wayland can be synchronized with {{Pkg|wl-clipboard}} using {{ic|wl-paste -pw wl-copy}}.}}\n\n== Managers ==\n\nThis section lists clipboard managers which provide additional features such as clipboard history or synchronization.\n\n* {{App|Anamnesis|Clipboard manager that stores all the clipboard history and offers an interface to do a full-text search. It has both a command line and GUI mode available.|http://anamnesis.sourceforge.net/|{{AUR|anamnesis}}}}\n* {{App|Autocutsel|Command line and daemon interfaces to synchronize PRIMARY, {{Ic|CLIPBOARD}} and cut buffer selections.|https://www.nongnu.org/autocutsel/|{{Pkg|autocutsel}}}}\n* {{App|Clipboard Indicator|Clipboard manager extension for GNOME Shell. Adds a clipboard indicator to the top panel, and caches clipboard history.|https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator|{{AUR|gnome-shell-extension-clipboard-indicator-git}}}}\n* {{App|Clipcat|Clipboard manager written in Rust.|https://github.com/xrelkd/clipcat|{{AUR|clipcat}}}}\n* {{App|ClipIt|Fork of Parcellite. It has both a command line and GUI mode available.|https://github.com/CristianHenzel/ClipIt|{{AUR|clipit}}}}\n* {{App|Clipman|Clipboard manager plugin for the Xfce4 panel. It keeps the clipboard contents around while it is usually lost when you close an application. It is able to handle text and images, and has a feature to execute actions on specific text selections by matching them against regular expressions.|https://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin|{{Pkg|xfce4-clipman-plugin}}}}\n* {{App|ClipManager|Cross-platform clipboard manager written in Python and Qt.|https://github.com/scottwernervt/clipmanager|{{AUR|clipmanager}}}}\n* {{App|Clipmenu|Dmenu based clipboard manager|https://github.com/cdown/clipmenu/|{{Pkg|clipmenu}}}}\n* {{App|Clipster|A lightweight, command-line-driven clipboard manager, written in Python.|https://github.com/mrichar1/clipster|{{AUR|clipster}}}}\n* {{App|CopyQ|Clever Qt clipboard manager with searchable and editable history, custom actions on items and command line support.|https://github.com/hluk/CopyQ|{{Pkg|copyq}}}}\n* {{App|GPaste|Clipboard management system that aims at being a new generation Parcellite, with a modular structure split in a couple of libraries and a daemon for adaptability. Offers a GNOME Shell extension and a CLI interface.|https://github.com/Keruspe/GPaste|{{Pkg|gpaste}}}}\n* {{App|[[Greenclip]]|Simple clipboard manager to be integrated with rofi|https://github.com/erebe/greenclip|{{AUR|rofi-greenclip}}}}\n* {{App|[[Wikipedia:Klipper|Klipper]]|Full featured clipboard manager for the KDE desktop.|https://userbase.kde.org/Klipper|{{Pkg|plasma-workspace}}}}\n* {{App|Parcellite|Lightweight yet feature-rich clipboard manager. It has both a command line and GUI mode available.|http://parcellite.sourceforge.net/|{{Pkg|parcellite}}}}\n* {{App|Qlipper|Lightweight and cross-platform clipboard history applet based on Qt.|https://github.com/pvanek/qlipper/|{{AUR|qlipper}}}}\n* {{App|xclipboard|Official X clipboard command-line client.|https://www.x.org/releases/X11R7.5/doc/man/man1/xclipboard.1.html|{{Pkg|xorg-xclipboard}}}}\n* {{App|xcmenu|Clipboard synchronizer developed for window manager users.|https://github.com/dindon-sournois/xcmenu|{{AUR|xcmenu-git}}}}\n\n== See also ==\n\n* [https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt Cut-and-paste in X]\n* [https://www.jwz.org/doc/x-cut-and-paste.html X Selections, Cut Buffers, and Kill Rings.]\n* [https://www.uninformativ.de/blog/postings/2017-04-02/0/POSTING-en.html X11: How does \u201cthe\u201d clipboard work?]"
                    }
                ]
            },
            "6789": {
                "pageid": 6789,
                "ns": 0,
                "title": "ECryptfs",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "{{Lowercase title}}\n[[Category:Data-at-rest encryption]]\n[[Category:Stackable file systems]]\n[[ja:ECryptfs]]\n[[ru:ECryptfs]]\nThis article describes basic usage of [https://launchpad.net/ecryptfs eCryptfs]. It guides you through the process of creating a private and secure encrypted directory within your home directory to store sensitive files and private data.\n\nIn implementation eCryptfs differs from [[dm-crypt]], which provides a ''block device encryption layer'', while eCryptfs is an actual file-system &ndash; a [[wikipedia:Cryptographic_filesystems|stacked cryptographic file system]]. For comparison of the two you can refer to [[Data-at-rest encryption#Block device vs stacked filesystem encryption]]. One distinguished feature is that the encryption is stacked on an existing filesystem; eCryptfs can be mounted onto any single existing directory and does not require a separate partition (or size pre-allocation).\n\n== Basics ==\n\nAs mentioned in the summary eCryptfs does not require special on-disk storage allocation effort, such as a separate partition or pre-allocated space. Instead, you can mount eCryptfs on top of any single directory to protect it. That includes, for example, a user's entire home directory or single dedicated directories within it. All cryptographic metadata is stored in the headers of files, so encrypted data can be easily moved, stored for backup and recovered. There are other advantages, but there are also drawbacks, for instance eCryptfs is not suitable for encrypting complete partitions which also means you cannot protect swap space with it (but you can, of course, combine it with [[Dm-crypt/Swap encryption]]). If you are just starting to set up disk encryption, swap encryption and other points to consider are covered in [[Data-at-rest encryption#Preparation]].\n\nTo familiarize with eCryptfs a few points:\n\n* As a stacked filesystem, a mounting of an eCryptfs directory refers to mounting a (stacked) encrypted directory to another '''un'''encrypted mount point (directory) at Linux kernel runtime.\n* It is possible to share an encrypted directory between users. However, the encryption is linked to one passphrase so this must be shared as well. It is also possible to share a directory with differently encrypted files (different passphrases).\n* Several eCryptfs terms are used throughout the documentation:\n** The encrypted directory is referred to as the '''lower''' and the unencrypted as the '''upper''' directory throughout the eCryptfs documentation and this article. While not relevant for this article, the [[Overlay filesystem]] introduced with Linux 3.18 uses [https://docs.kernel.org/filesystems/overlayfs.html#upper-and-lower the same upper/lower nomenclature] for the stacking of filesystems.\n** The '''mount''' passphrase (or key) is what gives access to the encrypted files, i.e. unlocks the encryption. eCryptfs uses the term '''wrapped''' passphrase to refer to the cryptographically secured mount passphrase.\n** {{ic|FEKEK}} refers to a '''F'''ile's '''E'''ncryption '''K'''ey '''E'''ncryption '''K'''ey (see [https://docs.kernel.org/security/keys/ecryptfs.html kernel documentation]).\n** {{ic|FNEK}} refers to a '''F'''ile '''N'''ame '''E'''ncryption '''K'''ey, a key to (optionally) encrypt the filenames stored in the encrypted directory.\n\nBefore using eCryptfs, the following disadvantages should be checked for applicability.\n\n=== Deficiencies ===\n\n* Ease of use\n:The {{Pkg|ecryptfs-utils}} package provides several different ways of setting up eCryptfs. The high-level [[#Ubuntu tools]] are the easiest to use, but they hard-code the lower directory path and other settings, limiting their usefulness. The package also includes low-level tools which are fully configurable, but they are somewhat more difficult to use compared to alternatives like [[EncFS]].\n\n* File name length\n:File names longer than 143 bytes cannot be encrypted (with the {{ic|FNEK}} option) when stacked on a filesystem with a maximum file name length of 255 bytes.[https://bugs.launchpad.net/ecryptfs/+bug/344878] This can break some programs in your home directory (for example [[wikipedia:Symfony|Symfony]] caching).\n\n* Network storage mounts\n:eCryptfs has long-standing [https://bugs.launchpad.net/ecryptfs/+bug/277578 bugs] when used on top of NFS and possibly other networked filesystems, for example, [[#Mounting may fail on a remote host when connecting via Mosh]]. It is always possible to use eCryptfs on a local directory and then copy the encrypted files from the local directory to a network host. However, if you want to set up eCryptfs directly on top of an NFS mount, with no local copy of the files, eCryptfs may crash or behave incorrectly. If in doubt, [[EncFS]] may be a better choice in this case.\n\n* Sparse files\n:[[wikipedia:Sparse_file|Sparse files]] written to eCryptfs will produce larger, non-sparse encrypted files in the lower directory. For example, in an eCryptfs directory running {{ic|truncate -s 1G file.img}} creates a 1GB encrypted file on the underlying filesystem, with the corresponding resource (disk space, data throughput) requirements. If the same file were created on an unencrypted filesystem or a filesystem using [[Data-at-rest encryption#Block device encryption|block device encryption]], it would only take a few kilobytes.\n\n:This should be considered before encrypting large portions of the directory structure, though in most cases the disadvantages will be minor. If you need to use large sparse files, you can work around this issue by putting the sparse files in an unencrypted directory or using block device encryption for them.\n\n== Setup & mounting ==\n\nBefore starting, check the eCryptfs documentation. It is distributed with a very good and complete set of [https://www.ecryptfs.org/documentation manual pages].\n\neCryptfs has been included in Linux since version 2.6.19. Start by loading the {{ic|ecryptfs}} module:\n\n # modprobe ecryptfs\n\nTo actually mount an eCryptfs filesystem, you need to use userspace tools provided by the {{Pkg|ecryptfs-utils}} package. Unfortunately, due to the poor design of these tools, you must choose between three ways of setting up eCryptfs with different tradeoffs:\n\n# Use the high-level [[#Ubuntu tools]], which set things up automatically but require the lower directory to be {{ic|~/.Private/}}, and allow only one encrypted filesystem per user.\n# Use [[#ecryptfs-simple|ecryptfs-simple]], available from AUR, which is an easy way to mount eCryptfs filesystems using any lower directory and upper directory.\n# [[#Manual setup]], which involves separate steps for loading the passphrase and mounting eCryptfs, but allows complete control over the directories and encryption settings.\n\n=== Ubuntu tools ===\n\nMost of the user-friendly convenience tools installed by the {{Pkg|ecryptfs-utils}} package assume a very specific eCryptfs setup, namely the one that is officially used by Ubuntu (where it can be selected as an option during installation). Unfortunately, these choices are not just default options but are actually hard-coded in the tools. If this set-up does not suit your needs, then you can not use the convenience tools and will have to follow the steps at [[#Manual setup]] instead.\n\nThe set-up used by these tools is as follows:\n\n* each user can have '''only one encrypted directory''' that is managed by these tools:\n** either full {{ic|$HOME}} directory encryption, or\n** a single encrypted data directory (by default {{ic|~/Private/}}, but this can be customized).\n* the '''lower directory''' for each user is always {{ic|~/.Private/}}<br><small>(in the case of full home dir encryption, this will be a symlink to the actual location at {{ic|/home/.ecryptfs/''username''/.Private/}})</small>\n* the '''encryption options''' used are:\n** ''cipher:'' AES\n** ''key length:'' 16 bytes (128 bits)\n** ''key management scheme:'' passphrase\n** ''plaintext passthrough:'' enabled\n* the '''configuration / control info''' for the encrypted directory is stored in a bunch of files at {{ic|~/.ecryptfs/}}:<br><small>(in the case of full home dir encryption, this will be a symlink to the actual location at {{ic|/home/.ecryptfs/''username''/.ecryptfs/}})</small>\n** {{ic|Private.mnt}} ''[plain text file]'' - contains the path where the upper directory should be mounted (e.g. {{ic|/home/lucy}} or {{ic|/home/lucy/Private}})\n** {{ic|Private.sig}} ''[plain text file]'' - contains the signature used to identify the mount passphrase in the kernel keyring\n** {{ic|wrapped-passphrase}} ''[binary file]'' - the mount passphrase, encrypted with the login passphrase\n** {{ic|auto-mount}}, {{ic|auto-umount}} ''[empty files]'' - if they exist, the {{ic|pam_ecryptfs.so}} module will (assuming it is loaded) automatically mount/unmount this encrypted directory when the user logs in/out\n\n==== Encrypting a data directory ====\n\nFor a full {{ic|$HOME}} directory encryption see [[#Encrypting a home directory]]\n\nBefore the data directory encryption is setup, decide whether it should later be mounted manually or automatically with the user log-in.\n\nTo encrypt a single data directory as a user and mount it manually later, run:\n $ ecryptfs-setup-private --nopwcheck --noautomount\n\nand follow the instructions. The option {{ic|--nopwcheck}} enables you to choose a passphrase different to the user login passphrase and the option {{ic|--noautomount}} is self-explanatory. So, if you want to setup the encrypted directory automatically on log-in later, just ''leave out'' both options right away.\n\nThe script will automatically create the {{ic|~/.Private/}} and {{ic|~/.ecryptfs/}} directory structures as described in the box above. It will also ask for two passphrases:\n\n;login passphrase: This is the password you will have to enter each time you want to mount the encrypted directory. If you want auto-mounting on login to work, it has to be the same password you use to login to your user account.\n\n;mount passphrase: This is used to derive the actual file encryption master key. Thus, you should not enter a custom one unless you know what you are doing - instead press Enter to let it auto-generate a secure random one. It will be encrypted using the login passphrase and stored in this encrypted form in {{ic|~/.ecryptfs/wrapped-passphrase}}. Later it will automatically be decrypted (\"unwrapped\") again in RAM when needed, so you never have to enter it manually. Make sure this file does not get lost, otherwise you can never access your encrypted folder again! You may want to run {{ic|ecryptfs-unwrap-passphrase}} to see the mount passphrase in unencrypted form, write it down on a piece of paper, and keep it in a safe (or similar), so you can use it to recover your encrypted data in case the {{ic|wrapped-passphrase}} file is accidentally lost/corrupted or in case you forget the login passphrase.\n\nThe mount point (\"upper directory\") for the encrypted folder will be at {{ic|~/Private/}} by default, however you can manually change this right after the setup command has finished running, by doing:\n\n $ mv ~/Private ''/path/to/new/folder''\n $ echo ''/path/to/new/folder'' > ~/.ecryptfs/Private.mnt\n\nTo actually use your encrypted folder, you will have to mount it - see [[#Mounting]] below.\n\n==== Encrypting a home directory ====\n\nThe wrapper script {{ic|ecryptfs-migrate-home}} will set up an encrypted home directory for a user and take care of migrating any existing files they have in their not yet encrypted home directory.\n\nTo run it, the user in question must be logged out and own no processes. The best way to achieve this is to log the user out, log into a console as the root user, and check that {{ic|ps -U ''username''}} returns no output.  You also need to ensure that you have {{pkg|rsync}}, {{pkg|lsof}}, and {{pkg|which}} installed. Once the prerequisites have been met, run:\n\n # modprobe ecryptfs\n # ecryptfs-migrate-home -u ''username''\n\nand follow the instructions. After the wrapper script is complete, follow the instructions for auto-mounting - see [[#Auto-mounting]] below. It is imperative that the user logs in ''before'' the next reboot, to complete the process.\n\nOnce everything is working, the unencrypted backup of the users home directory, which is saved to {{ic|/home/''username''.''random_characters''}}, can and should be deleted.\n\n==== Mounting ====\n\n===== Manually =====\n\nExecuting the wrapper\n\n $ ecryptfs-mount-private\n\nand entering the passphrase is all needed to mount the encrypted directory to the ''upper directory'' {{ic|~/Private/}}, described in [[#Ubuntu tools]].\n\nLikewise, executing\n\n $ ecryptfs-umount-private\n\nwill unmount it again.\n\n{{Tip|If it is not required to access the private data permanently during a user session, maybe define an [[alias]] to speed the manual step up.}}\n\nThe tools include another script that can be very handy to access an encrypted {{ic|.Private}} data or home directory. Executing  {{ic|ecryptfs-recover-private}} as root will search the system (or an optional specific path) for the directory, interactively query the passphrase for it and mount the directory. It can, for example, be used from a live-CD or different system to access the encrypted data in case of a recovery. Note that if booting from an Arch Linux ISO you must first install the {{pkg|ecryptfs-utils}} to it. Further, it will only be able to mount {{ic|.Private}} directories created with the Ubuntu tools.\n\n===== Auto-mounting =====\n\nThe default way to auto-mount an encrypted directory is via [[Pam_mount|PAM]]. See {{man|8|pam_ecryptfs}} and - for more details - 'PAM MODULE' in:\n\n /usr/share/doc/ecryptfs-utils/README\n\nFor auto-mounting it is required that the passphrase to access the encrypted directory is synchronised with the user log-in.\n\nThe following steps set it up:\n\n1. Check if {{ic|~/.ecryptfs/auto-mount}}, {{ic|~/.ecryptfs/auto-umount}} and {{ic|~/.ecryptfs/wrapped-passphrase}} exist (these are automatically created by ''ecryptfs-setup-private'').\n\n2. Add ''ecryptfs'' to the pam-stack exactly as following to allow transparent unwrapping of the passphrase on login:\n\nOpen {{ic|/etc/pam.d/system-auth}} and ''after'' the line containing {{ic|auth required pam_unix.so}} (or {{ic|1=auth [default=die] pam_faillock.so authfail}} if present) add:\n\n auth [success=1 default=ignore] pam_succeed_if.so service = systemd-user quiet\n auth    required    pam_ecryptfs.so unwrap\nNext, ''above'' the line containing {{ic|password required pam_unix.so}} (or {{ic|1=-password [success=1 default=ignore] pam_systemd_home.so}} if present) insert:\n password    optional    pam_ecryptfs.so\nAnd finally, ''after'' the line {{ic|session required pam_unix.so}} add:\n session [success=1 default=ignore] pam_succeed_if.so service = systemd-user quiet\n session    optional    pam_ecryptfs.so unwrap\n\n{{Note|1=The {{ic|pam_succeed_if.so}} instructions tells the process to ''skip the next line'' if the service requesting authentication is {{ic|systemd-user}}, that runs parallel to your user session and also authenticates through PAM. Should the home directory be mounted a second time, PAM would be unable to unmount it. This is referenced as a [https://bbs.archlinux.org/viewtopic.php?id=194509 break] with systemd and bugs are filed against it : [https://bugs.freedesktop.org/show_bug.cgi?id=72759] [https://nwrickert2.wordpress.com/2013/12/16/systemd-user-manager-ecryptfs-and-opensuse-13-1/] [https://bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/313812/comments/43] [https://lists.alioth.debian.org/pipermail/pkg-systemd-maintainers/2014-October/004088.html]. The method exposed here is a workaround. }}\n\n3. Re-login and check output of ''mount'' which should now contain a mountpoint, e.g.:\n\n /home/''username''/.Private on /home/''username''/Private type ecryptfs (...)\n\nfor the user's encrypted directory. It should be perfectly readable at {{ic|~/Private/}}.\n\n{{Note|The above changes to {{ic|system-auth}} enable auto-mounting for normal login. If you switch users instead using {{ic|su -l}}, you need to apply similar changes also to {{ic|/etc/pam.d/su-l}}.}}\n\nThe latter should be automatically unmounted and made unavailable when the user logs off.\n\n{{Note|If you use systemd-user [[systemd/User#Automatic start-up of systemd user instances|lingering]] services, or other separate processes that survive after you logout, your home directory will not get unmounted until they exit. This is intended, because the user processes should always be able to save their state.}}\n\n=== ecryptfs-simple ===\n\nUse [https://xyne.dev/projects/ecryptfs-simple/ ecryptfs-simple] if you just want to use eCryptfs to mount arbitrary directories the way you can with [[EncFS]]. ecryptfs-simple does not require root privileges or entries in {{ic|/etc/fstab}}, nor is it limited to hard-coded directories such as {{ic|~/.Private/}}. The package is available to be [[install]]ed as {{AUR|ecryptfs-simple}} and from [https://xyne.dev/repos/ Xyne's repos].\n\nAs the name implies, usage is simple:\n\nSimple mounting:\n\n $ ecryptfs-simple /path/to/foo /path/to/bar\n\nAutomatic mounting: prompts for options on the first mount of a directory then reloads them next time:\n\n $ ecryptfs-simple -a /path/to/foo /path/to/bar\n\nUnmounting by source directory:\n\n $ ecryptfs-simple -u /path/to/foo\n\nUnmounting by mountpoint:\n\n $ ecryptfs-simple -u /path/to/bar\n\n=== Manual setup ===\n\nThe following details instructions to set up eCryptfs encrypted directories manually. This involves two steps. First, the passphrase is processed and loaded into the kernel keyring. Second, the filesystem is actually mounted using the key from the keyring.\n\nThere are two ways to add the passphrase to the kernel keyring in the first step. The simpler option is {{ic|ecryptfs-add-passphrase}}, which uses a single passphrase to encrypt the files. The disadvantage is that you cannot change the passphrase later. It works like this:\n\n $ ecryptfs-add-passphrase\n Passphrase:\n Inserted auth tok with sig [78c6f0645fe62da0] into the user session keyring\n\nYou can also pipe a passphrase into {{ic|ecryptfs-add-passphrase -}}. Keep in mind that if you leave your passphrase in a file, it will usually defeat the purpose of using encryption.\n\nAs an alternative to a plain passphrase, you can use a \"wrapped passphrase\", where the files are encrypted using a randomly generated key, which is itself encrypted with your passphrase and stored in a file. In this case, you can change your passphrase by unwrapping the key file with your old passphrase and rewrapping it using your new passphrase.\n\nIn the following we [https://stackoverflow.com/a/3980713 prompt] for the wrapping passphrase and do a generation similar to the [https://bazaar.launchpad.net/~ecryptfs/ecryptfs/trunk/view/head:/src/utils/ecryptfs-setup-private#L96 source] and then use ''ecryptfs-wrap-passphrase'' to wrap it with the given password to {{ic|~/.ecryptfs/wrapped-passphrase}}:\n\n $ mkdir ~/.ecryptfs\n $ ( stty -echo; printf \"Passphrase: \" 1>&2; read PASSWORD; stty echo; echo 1>&2; head -c 48 /dev/random | base64; echo \"$PASSWORD\"; ) \\\n   | ecryptfs-wrap-passphrase ~/.ecryptfs/wrapped-passphrase >/dev/null\n\nDo not use a passphrase with more than 64 characters as this will result in an error later when using {{ic|ecryptfs-insert-wrapped-passphrase-into-keyring}}.\n\nNext, we can enter our passphrase to load the key into the keyring:\n\n $ ( stty -echo; printf \"Passphrase: \" 1>&2; read PASSWORD; stty echo; echo $PASSWORD; ) | ecryptfs-insert-wrapped-passphrase-into-keyring ~/.ecryptfs/wrapped-passphrase -\n Inserted auth tok with sig [7c5d3dd8a1b49db0] into the user session keyring\n\nIn either case, when you successfully add the passphrase to the kernel keyring, you will get a \"key signature\" like {{ic|78c6f0645fe62da0}} which you will need in the next step.\n\nThere are two different ways of manually mounting eCryptfs, described in the following sections. The first way, using {{ic|mount.ecryptfs_private}}, can be run as a regular user and involves setting up some configuration files. This method does not allow you to change the encryption settings, such as key size. The second way is to use a raw {{ic|mount}} command, which gives you complete control over all settings, but requires you to either run it as root, or add an entry to {{ic|/etc/fstab}} which lets a user mount eCryptfs.\n\n{{Tip|The following examples use an encrypted directory ({{ic|.secret}}) different to the default, hard-coded {{ic|.Private}} in the Ubuntu tools. This is on purpose to avoid problems of erroneous [[#Auto-mounting]] when the system has PAM setup for it, as well as problems with other tools using the hard-coded defaults.}}\n\n==== With configuration files ====\n\nThis method involves running {{ic|mount.ecryptfs_private}} from the {{Pkg|ecryptfs-utils}} package, after first loading your passphrase. This binary requires no root privileges to work by default.\n\nFirst choose a name for your configuration files in {{ic|~/.ecryptfs/}} and decide on the lower and upper directories. In this example we use {{ic|secret}} for the configuration files, put in encrypted data in {{ic|~/.secret/}}, and mount the decrypted files at {{ic|~/secret/}}. Create the required directories:\n\n $ mkdir ~/.secret ~/secret ~/.ecryptfs\n\nNow specify the directories in {{ic|~/.ecryptfs/secret.conf}}, using full paths. Its format looks like the one in {{ic|/etc/fstab}} without the mount options:\n\n $ echo \"$HOME/.secret $HOME/secret ecryptfs\" > ~/.ecryptfs/secret.conf\n\nWrite the key signature you got from {{ic|ecryptfs-add-passphrase}} or {{ic|ecryptfs-insert-wrapped-passphrase-into-keyring}} (see above) into {{ic|~/.ecryptfs/secret.sig}}:\n\n $ echo 78c6f0645fe62da0 > ~/.ecryptfs/secret.sig\n\nIf you also want to enable filename encryption, add a second passphrase to the keyring (or reuse the first passphrase) and '''append''' its key signature to {{ic|~/.ecryptfs/secret.sig}}:\n\n  $ echo 326a6d3e2a5d444a >> ~/.ecryptfs/secret.sig\n\nFinally, mount {{ic|~/.secret/}} on {{ic|~/secret/}}:\n\n $ mount.ecryptfs_private secret\n\nWhen you are done, unmount it:\n\n $ umount.ecryptfs_private secret\n\n==== Raw mount command ====\n\nBy running the actual {{ic|mount}} command manually, you get complete control over the encryption options. The disadvantage is that you need to either run {{ic|mount}} as root, or add an entry to {{ic|/etc/fstab}} for each eCryptfs directory so users can mount them.\n\nFirst create your private directories. In this example, we use the same ones as the previous section:\n\n $ mkdir -m 700 ~/.secret\n $ mkdir -m 500 ~/secret\n\nTo summarize:\n\n* Actual encrypted data will be stored in the lower {{ic|~/.secret/}} directory\n* While mounted, decrypted data will be available in {{ic|~/secret/}} directory\n** While not mounted nothing can be written to this directory\n** While mounted it has the same permissions as the lower directory\n\nNow, supposed you have created the [[#Manual setup|wrapped keyphrase]] above, you need to insert the encryption key once to the root user's keyring:\n\n # ( stty -echo; printf \"Passphrase: \" 1>&2; read PASSWORD; stty echo; echo $PASSWORD; ) | ecryptfs-insert-wrapped-passphrase-into-keyring /home/''username''/.ecryptfs/wrapped-passphrase -\n Inserted auth tok with sig [7c5d3dd8a1b49db0] into the user session keyring\n\nso that the following mount command succeeds:\n\n # mount '''-i''' -t ecryptfs /home/''username''/.secret /home/''username''/secret -o ecryptfs_sig=7c5d3dd8a1b49db0,ecryptfs_fnek_sig=7c5d3dd8a1b49db0,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_unlink_sigs\n\n{{Note|1=As of 2022, this command does not work because of a bug in systemd (see {{Bug|55943}}). A [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=870126#10 workaround] is to run {{ic|keyctl link @u @s}} before mounting.}}\n\n* {{ic|ecryptfs_sig}} sets the data passphrase key signature.\n* {{ic|ecryptfs_fnek_sig}} sets the filename passphrase key signature; you can omit this option if you do not want to encrypt filenames.\n* {{ic|ecryptfs_key_bytes}} can be 16, 24, or 32 to change the encryption key size.\n* {{ic|ecryptfs_unlink_sigs}} will remove the passphrase(s) from the keyring when you unmount, so you have to add the passphrase(s) back again in order to re-mount the filesystem.\n* There are a few other options listed in the {{ic|ecryptfs}} man page.\n\n{{Tip|There is a {{ic|mount.ecryptfs}} tool, which you can run as root to enter the mount settings interactively. Once you have used it to mount eCryptfs, you can check {{ic|/etc/mtab}} to find out what options it used.}}\n\nOnce you have chosen the right mount options, you can add an entry to {{ic|/etc/fstab}} so regular users can mount eCryptfs on these directories. Copy the mount options to a new {{ic|/etc/fstab}} entry and add the options {{ic|user}} and {{ic|noauto}}. The full entry will look similar to (bold entries added):\n\n{{hc|/etc/fstab|2=\n/home/''username''/.secret /home/''username''/secret ecryptfs '''noauto''','''user''',ecryptfs_sig=7c5d3dd8a1b49db0,ecryptfs_fnek_sig=7c5d3dd8a1b49db0,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_unlink_sigs '''0 0'''\n}}\n\n* The {{ic|noauto}} option is important, because otherwise systemd will error trying to mount the entry directly on boot.\n* The {{ic|user}} option enables to mount the directory as a user.\n** The user mount will default to option {{ic|noexec}}. If you want to have at least executable files in your private directory, you can add {{ic|exec}} to the fstab options.\n\nThe setup is now complete and the directory should be mountable by the user.\n\n===== Mounting =====\n\nTo mount the encrypted directory as the user, the passphrase must be unwrapped and made available in the user's keyring. Following above section example:\n\n $ ecryptfs-insert-wrapped-passphrase-into-keyring ~/.ecryptfs/wrapped-passphrase\n Passphrase:\n Inserted auth tok with sig [7c5d3dd8a1b49db0] into the user session keyring\n\nNow the directory can be mounted without the mount helper questions:\n\n $ mount '''-i''' ~/secret\n\nand files be placed into the {{ic|secret}} directory. The above two steps are necessary every time to mount the directory manually.\n\nTo unmount it again:\n\n $ umount ~/secret\n\nTo finalize, the preliminary passphrase to wrap the encryption passphrase may be changed:\n\n $ ecryptfs-rewrap-passphrase ~/.ecryptfs/wrapped-passphrase\n Old wrapping passphrase:\n New wrapping passphrase:\n New wrapping passphrase (again):\n\nThe un-mounting should also clear the keyring, to check the user's keyring or clear it manually:\n\n $ keyctl list @u\n $ keyctl clear @u\n\n{{Note|One should remember that {{ic|/etc/fstab}} is for system-wide partitions only and should not generally be used for user-specific mounts}}\n\n===== Auto-mounting =====\n\nDifferent methods can be employed to automount the previously defined user-mount in {{ic|/etc/fstab}} on login. As a first general step, follow point (1) and (2) of [[#Auto-mounting]].\n\nThen, if you login via console, a simple way is to specify the [[#Mounting_2|user-interactive]] ''mount'' and ''umount'' in the user's shell configuration files, for example [[Bash#Configuration files]].\n\n{{Accuracy|<br>- the section should be more generic than it is now<br>\n- the described method does not work for users, for encountered problems:|section=#Automounting}}\n\nAnother method is to automount the eCryptfs directory on user login using [[pam_mount]]. To configure this method, add the following lines to {{ic|/etc/security/pam_mount.conf.xml}}:\n\n <luserconf name=\".pam_mount.conf.xml\" />\n <mntoptions require=\"\" /> <!-- Default required mount options are ; this clears them -->\n <lclmount>mount -i %(VOLUME) \"%(before=\\\"-o\\\" OPTIONS)\"</lclmount> <!--  -->\n\nPlease prefer writing manually these lines instead of simply copy/pasting them (especially the lclmount line), otherwise you might get some corrupted characters.\nExplanation:\n\n* the first line indicates where the user-based configuration file is located (here {{ic|~/.pam_mount.conf.xml}})\n* the second line overwrites the default required mount options which are unnecessary (\"nosuid,nodev\")\n* the last line indicates which mount command to run (eCryptfs needs the {{Ic|-i}} switch).\n\nThen set the volume definition, preferably to {{ic|~/.pam_mount.conf.xml}}:\n\n <pam_mount>\n     <volume noroot=\"1\" fstype=\"ecryptfs\" path=\"/home/''username''/.secret/\" mountpoint=\"/home/''username''/secret/\" />\n </pam_mount>\n\n\"noroot\" is needed because the encryption key will be added to the user's keyring.\n\nFinally, edit {{ic|/etc/pam.d/system-login}} as described in the [[pam_mount]] article.\n\n====== Optional step ======\n\nTo avoid wasting time needlessly unwrapping the passphrase you can create a script that will check ''pmvarrun'' to see the number of open sessions:\n\n{{hc|/usr/local/bin/doecryptfs|2=\n#!/bin/sh\nexit $(/usr/sbin/pmvarrun -u$PAM_USER -o0)\n}}\n\nWith the following line added before the eCryptfs unwrap module in your PAM stack:\n\n auth    [success=ignore default=1]    pam_exec.so     quiet /usr/local/bin/doecryptfs\n auth    required                      pam_ecryptfs.so unwrap\n\nThe article suggests adding these to {{ic|/etc/pam.d/login}}, but the changes will need to be added to all other places you login, such as {{ic|/etc/pam.d/kde}}.\n\n== Usage ==\n\n{{Expansion|Content that still may to be covered:\n- point to the above \"Setup & Mounting\" section for how to mount and unmount [this section here will cover all other (i.e. setup-independent) usage info]<br>\n- reference ecryptfs tools not used/mentioned in the prior sections (e.g. with a short link to the online manpages and mention of the other tools usage, as it seems useful (not covered yet are, e.g. ecryptfs-stat, ecryptfs-find, ecryptfs-rewrite-file.) <br>\n- mention the options to share an encrypted folder between users and to place non-encrypted files or folders in the encrypted container (\"pass-through\")\n(references for the points: [https://wiki.archlinux.org/index.php?title&61;Talk:ECryptfs&oldid&61;347981] and (maybe) [https://wiki.archlinux.org/index.php?title&61;ECryptfs&oldid&61;291214])\n|section=Major_restructuring/rewrite}}\n\n=== Symlinking into the encrypted directory ===\n\nBesides using your private directory as storage for sensitive files, and private data, you can also use it to protect application data. [[Firefox]] for example has an internal password manager, but the browsing history and cache can also be sensitive. Protecting it is easy:\n\n $ mv ~/.mozilla ~/Private/mozilla\n $ ln -s ~/Private/mozilla ~/.mozilla\n\n=== Removal of encryption ===\n\nThere are no special steps involved, if you want to remove your private directory. Make sure it is un-mounted and delete the respective lower directory (e.g. {{ic|~/.Private/}}), along with all the encrypted files. After also removing the related encryption signatures and configuration in {{ic|~/.ecryptfs/}}, all is gone.\n\nIf you were using the [[#Ubuntu tools]] to setup a single directory encryption, you can directly follow the steps detailed by:\n\n $ ecryptfs-setup-private --undo\n\nand follow the instructions.\n\n=== Backup ===\n\nIf you want to move a file out of the private directory just move it to the new destination while {{ic|~/Private/}} is mounted.\n\nWith eCryptfs the cryptographic metadata is stored in the header of the files. Setup variants explained in this article separate the directory with encrypted data from the mount point. The unencrypted mount point is fully transparent and available for a backup. Obviously this has to be considered for automated backups, if one has to avoid leaking sensitive unencrypted data into a backup.\n\nYou can do backups, or incremental backups, of the encrypted (e.g. {{ic|~/.Private/}}) directory, treating it like any other directory.\n\nFurther points to note:\n\n* If you used the Ubuntu tools for [[#Encrypting a home directory]], be aware the location of the lower directory with the encrypted files is ''outside'' the regular user's {{ic|$HOME}} at {{ic|/home/.ecryptfs/''username''/.Private/}}.\n* It should be ensured to include the eCryptfs setup files (located in {{ic|~/.ecryptfs/}} usually) into the regular or a separate backup.\n* If you use special filesystem mount options, for example {{ic|ecryptfs_xattr}}, do extra checks on restore integrity.\n\n== Known issues ==\n\n=== Mounting may fail on a remote host when connecting via Mosh ===\n\nThis is a [https://github.com/mobile-shell/mosh/issues/529 known issue] of [https://mosh.org/ Mosh] server, which does not keep the eCryptfs {{ic|/home}} directory mounted.\n\n== See also ==\n\n* [https://ecryptfs.org/documentation.html eCryptfs] - Manpages and project home\n* [https://defuse.ca/audits/ecryptfs.htm Security audit] of eCryptfs by Taylor Hornby (January 22, 2014).\n* [https://sysphere.org/~anrxc/j/articles/ecryptfs/index.html eCryptfs and $HOME] by Adrian C. (anrxc) - Article with installation instructions and discussion of eCryptfs usage\n* [https://www.chromium.org/chromium-os/chromiumos-design-docs/protecting-cached-user-data Chromium data protection] (November 2009) - Design document detailing encryption options for Chromium OS, including explanation on its eCryptfs usage\n* [http://ecryptfs.sourceforge.net/ecryptfs.pdf eCryptfs design] by Michael Halcrow (May 2005) - Original design document detailing and discussing eCryptfs"
                    }
                ]
            },
            "7187": {
                "pageid": 7187,
                "ns": 0,
                "title": "Firefox/Profile on RAM",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Web browser]]\n[[de:Firefox-Profile in Ramdisk auslagern]]\n[[ja:Firefox Ramdisk]]\n[[ru:Firefox (\u0420\u0443\u0441\u0441\u043a\u0438\u0439)/Profile on RAM]]\nAssuming that there is memory to spare, placing [[Firefox]]'s cache or complete profile to RAM offers significant advantages. Even though opting for the partial route is an improvement by itself, the latter can make Firefox even more responsive compared to its stock configuration. Benefits include, among others:\n\n* reduced drive read/writes;\n* heightened responsive feel;\n* many operations within Firefox, such as quick search and history queries, are nearly instantaneous.\n\nTo do so we can make use of a [[tmpfs]].\n\nBecause data placed therein cannot survive a shutdown, a script responsible for syncing back to drive prior to system shutdown is necessary if persistence is desired (which is likely in the case of profile relocation). On the other hand, only relocating the cache is a quick, less inclusive solution that will slightly speed up user experience while emptying Firefox cache on every reboot.\n\n{{Note|Cache is stored '''separately''' from Firefox default profiles' folder ({{ic|/home/$USER/.mozilla/firefox/}}): it is found by default in {{ic|/home/$USER/.cache/mozilla/firefox/<profile>}}. This is similar to what Chromium and other browsers do. Therefore, sections [[#Place profile in RAM using tools]] and [[#Place profile in RAM manually]] '''do not deal''' with cache relocating and syncing but only with profile adjustments. See the first note of [[Profile-sync-daemon]] for more details. [[Anything-sync-daemon]] may be used to achieve the same thing as Option 2 for cache folders.}}\n\n== Relocate cache to RAM only ==\n\nSee [[Firefox/Tweaks#Turn off the disk cache]].\n\n== Place profile in RAM using tools ==\n\nRelocate the browser profile to [[tmpfs]] so as to globally improve browser's responsiveness. Another benefit is a reduction in drive I/O operations, of which [[Improving performance#Show disk writes|SSDs benefit the most]].\n\nUse an active management script for maximal reliability and ease of use. Several are available from the AUR.\n\n* {{Pkg|profile-sync-daemon}} - refer to the [[Profile-sync-daemon]] wiki article for additional info on it;\n* {{AUR|firefox-sync}} - sufficient for a user with a single profile; uses a script and systemd service similar to those below.\n\n== Place profile in RAM manually ==\n\n=== Before you start ===\n\nBefore potentially compromising Firefox's profile, be sure to make a backup for quick restoration. First, find out the active profile name by visiting {{ic|about:profiles}} and checking which profile is in use. Replace '''{{ic|xyz.default}}''' as appropriate and use {{ic|tar}} to make a backup:\n\n $ tar zcvfp ~/firefox_profile_backup.tar.gz ~/.mozilla/firefox/'''xyz.default'''\n\n=== The script ===\n\n<small>''Adapted from [https://www.verot.net/firefox_tmpfs.htm verot.net's Speed up Firefox with tmpfs]''</small>\n\nThe script will first move Firefox's profile to a new static location, make a sub-directory in {{ic|/dev/shm}}, softlink to it and later populate it with the contents of the profile. As before, and until the end of this article, replace the bold '''{{ic|xyz.default}}''' strings with the name of your your Firefox profile folder. The only value that absolutely needs to be altered is, again, '''{{ic|xyz.default}}'''.\n\nBe sure that [[rsync]] is installed, [[create]]:\n\n{{hc|~/.local/bin/firefox-sync.sh|2=\n#!/bin/sh\n\nstatic=''static-$1''\nlink=''$1''\nvolatile=''/dev/shm/firefox-$1-$USER''\n\nIFS=\nset -efu\n\ncd ~/.mozilla/firefox\n\nif [ ! -r $volatile ]; then\n\tmkdir -m0700 $volatile\nfi\n\nif [ \"$(readlink $link)\" != \"$volatile\" ]; then\n\tmv $link $static\n\tln -s $volatile $link\nfi\n\nif [ -e $link/.unpacked ]; then\n\trsync -av --delete --exclude .unpacked ./$link/ ./$static/\nelse\n\trsync -av ./$static/ ./$link/\n\ttouch $link/.unpacked\nfi\n}}\n\nMake the script [[executable]], then run the following to close Firefox and test it:\n\n $ killall firefox firefox-bin\n $ ls ~/.mozilla/firefox/\n $ ~/.local/bin/firefox-sync.sh '''xyz.default'''\n\nRun Firefox again to gauge the results. The second time the script runs, it will then preserve the RAM profile by copying it back to disk.\n\n=== Automation ===\n\nSeeing that forgetting to sync the profile can lead to disastrous results, automating the process seems like a logical course of action.\n\n==== systemd ====\n\n[[Create]] the following script:\n\n{{hc|~/.config/systemd/user/firefox-profile@.service|2=\n[Unit]\nDescription=Firefox profile memory cache\n\n[Install]\nWantedBy=default.target\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=%h/.local/bin/firefox-sync.sh %i\nExecStop=%h/.local/bin/firefox-sync.sh %i\n}}\n\nthen, do a [[daemon-reload]] and [[enable/start]] the {{ic|firefox-profile@'''xyz.default'''.service}} [[user unit]].\n\n==== cron job ====\n\nManipulate the user's [[cron]] table using {{ic|crontab}}:\n\n $ crontab -e\n\nAdd a line to start the script every 30 minutes,\n\n */30 * * * * ~/.local/bin/firefox-sync.sh '''xyz.default'''\n\nor add the following to do so every 2 hours:\n\n 0 */2 * * * ~/.local/bin/firefox-sync.sh '''xyz.default'''\n\n==== Sync at login/logout ====\n\nAssuming [[bash]] is being used, add the script to the login/logout files:\n\n $ echo 'bash -c \"~/.local/bin/firefox-sync.sh '''xyz.default''' > /dev/null &\"' | tee -a ~/.bash_logout ~/.bash_login\n\n{{Note|You may wish to use {{ic|~/.bash_profile}} instead of {{ic|~/.bash_login}} as bash will only read the first of these if both exist and are readable.}}\n\nFor [[zsh]], use {{ic|~/.zlogin}} and {{ic|~/.zlogout}} instead:\n\n $ echo 'bash -c \"~/.local/bin/firefox-sync.sh '''xyz.default''' > /dev/null &\"' | tee -a ~/.zlog{in,out}\n\n== See also ==\n\n* [[tmpfs]]"
                    }
                ]
            },
            "7966": {
                "pageid": 7966,
                "ns": 0,
                "title": "Man page",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "{{Lowercase title}}\n[[Category:Command-line]]\n[[de:Manpages]]\n[[es:Man page]]\n[[id:Man page]]\n[[ja:Man \u30da\u30fc\u30b8]]\n[[pt:Man page]]\n[[ru:Man page]]\n[[zh-hans:Man page]]\n{{Related articles start}}\n{{Related|Color output in console#man}}\n{{Related articles end}}\n[[Wikipedia:Man_page|man pages]]\u2014abbreviation for \"manual pages\"\u2014are the form of documentation that is available on almost all UNIX-like operating systems, including Arch Linux. The command used to display them is {{Ic|man}}.\n\nIn spite of their scope, man pages are designed to be self-contained documents, consequentially limiting themselves to referring to other man pages when discussing related subjects. This is in sharp contrast with the hyperlink-aware [[info manual|Info documents]], GNU's attempt at replacing the traditional man page format.\n\n== Installation ==\n\n{{Pkg|man-db}} implements ''man'' on Arch Linux, and [[less]] is the default pager used with ''man''. {{Pkg|mandoc}} can also be used.\n\n{{Pkg|man-pages}} provides both the Linux and the POSIX.1 man pages (see [https://www.kernel.org/doc/man-pages/download.html]).\n\nSome localized man pages are also available:\n\n* {{Pkg|man-pages-cs}} for Czech\n* {{Pkg|man-pages-da}} for Danish\n* {{Pkg|man-pages-de}} for German\n* {{Pkg|man-pages-el}} for Greek\n* {{Pkg|man-pages-es}} for Spanish\n* {{Pkg|man-pages-fi}} for Finnish\n* {{Pkg|man-pages-fr}} for French\n* {{Pkg|man-pages-hu}} for Hungarian\n* {{Pkg|man-pages-id}} for Indonesian\n* {{Pkg|man-pages-it}} for Italian\n* {{AUR|man-pages-ja}} for Japanese\n* {{Pkg|man-pages-mk}} for Macedonian\n* {{Pkg|man-pages-nl}} for Dutch\n* {{Pkg|man-pages-pl}} for Polish\n* {{Pkg|man-pages-pt_br}} for Brazilian Portuguese\n* {{Pkg|man-pages-ro}} for Romanian\n* {{AUR|man-pages-ru}} for Russian\n* {{Pkg|man-pages-sr}} for Serbian\n* {{Pkg|man-pages-sv}} for Swedish\n* {{AUR|man-pages-tr}} for Turkish\n* {{Pkg|man-pages-uk}} for Ukranian\n* {{Pkg|man-pages-vi}} for Vietnamese\n* {{Pkg|man-pages-zh_cn}} for Simplified Chinese\n* {{Pkg|man-pages-zh_tw}} for Traditional Chinese\n\nYou can also search for all of the available localized man pages [https://archlinux.org/packages/?sort=&q=man-pages- on the official repositories] and [https://aur.archlinux.org/packages?K=man-pages- on the AUR].\n\nYou can use some applications to view man pages:\n\n* {{App|GNOME Help|Help viewer for [[GNOME]]. It can show man pages via {{ic|yelp man:<name>}} or the undocumented {{ic|Ctrl+L}} keybinding from an existing window.|https://wiki.gnome.org/Apps/Yelp|{{Pkg|yelp}}}}\n* {{App|KHelpCenter|Application to show [[KDE]] Applications' documentation. Man pages are in ''UNIX manual pages'' or by running {{ic|khelpcenter man:<name>}}.|https://userbase.kde.org/KHelpCenter|{{Pkg|khelpcenter}}}}\n* {{App|[[Wikipedia:Konqueror|Konqueror]]|KDE file manager and web browser. It can show man pages via {{ic|man:<name>}}.|https://konqueror.org/|{{Pkg|konqueror}}}}\n* {{App|xman|Provides a categorized look at man pages.|https://xorg.freedesktop.org/|{{pkg|xorg-xman}}}}\n\n== Accessing man pages ==\n\nTo read a man page, simply enter:\n\n $ man ''page_name''\n\nManuals are sorted into several [[Wikipedia:Man page#Manual sections|sections]]. Each section has an intro, such as {{man|1|intro}}, {{man|2|intro}} and so on. For a full listing see {{man|7|man-pages|Sections of the manual pages}}.\n\nMan pages are usually referred to by their name, followed by their section number in parentheses. Often there are multiple man pages of the same name, such as {{man|1|man}} and {{man|7|man}}. In this case, give man the section number followed by the name of the man page, for example:\n\n $ man 5 passwd\n\nto read the man page on {{Ic|/etc/passwd}}, rather than the {{Ic|passwd}} utility.\n\nOr equivalently, the man page followed by the section number, separated by a period:\n\n $ man passwd.5\n\n== Searching manuals ==\n\nMan pages can be searched when the exact name of a page is not known using any of the following equivalent commands:\n\n $ man -k ''expression''\n $ man --apropos ''expression''\n $ apropos ''expression''\n\n{{ic|''expression''}} is interpreted as a regular expression by default.\n\nTo search for keywords in whole page texts, use the {{ic|-K}} option instead.\n\n{{Note|The search feature is provided by a dedicated cache. By default, maintenance of that cache is handled by {{ic|man-db.service}} which gets periodically triggered by {{ic|man-db.timer}}. If you are getting a \"nothing appropriate\" message for every search, try manually regenerating the cache by running {{ic|mandb}} as root.}}\n\nOne-line descriptions of man pages can be displayed using the {{ic|whatis}} command. For example, for a brief description of the man page sections about {{ic|ls}}, type:\n\n{{hc|$ whatis ls|\nls (1p)              - list directory contents\nls (1)               - list directory contents\n}}\n\n== Page width ==\n\nThe man page width is controlled by the {{Ic|MANWIDTH}} environment variable.\n\nIf the number of columns in the terminal is too small (e.g. the window width is narrow), the line breaks will be wrong. This can be very disturbing for reading. You can fix this by setting the MANWIDTH on {{Ic|man}} invocation. With {{Ic|Bash}}, that would be:\n\n{{Hc|~/.bashrc|<nowiki>\nman() {\n    local width=$(tput cols)\n    [ $width -gt $MANWIDTH ] && width=$MANWIDTH\n    env MANWIDTH=$width \\\n    man \"$@\"\n}\n</nowiki>}}\n\n== Reading local man pages ==\n\nInstead of the standard interface, using browsers such as {{Pkg|lynx}} and [[Firefox]] to view man pages allows users to reap info pages' main benefit of hyperlinked text. Alternatives include the following:\n\n=== Conversion to HTML ===\n\n==== mandoc ====\n\nInstall the {{Pkg|mandoc}} package. To convert a page, for example {{ic|free(1)}}:\n\n $ mandoc -Thtml -Ostyle=style.css /usr/share/man/man1/free.1.gz > free.html\n\nNow open the file called {{ic|free.html}} in your favourite browser.\n\n==== man2html ====\n\nFirst, install {{Pkg|man2html}} from the official repositories.\n\nNow, convert a man page:\n\n $ man free | man2html -compress -cgiurl man$section/$title.$section$subsection.html > ~/man/free.html\n\nAnother use for {{Ic|man2html}} is exporting to raw, printer-friendly text:\n\n $ man free | man2html -bare > ~/free.txt\n\n==== man -H ====\n\nThe {{Pkg|man-db}} implementation also has the ability to do this on its own:\n\n $ man -H free\n\nThis will read your {{ic|BROWSER}} [[environment variable]] to determine the browser. You can override this by passing the binary to the {{ic|-H}} option.\n\n==== roffit ====\n\nFirst install {{AUR|roffit}} from [[AUR]].\n\nTo convert a man page:\n\n $ gunzip -c /usr/share/man/man1/free.1.gz | roffit > free.html\n\n=== Conversion to PDF ===\n\nman pages have always been printable: they are written in {{man|1|troff}}, which is fundamentally a typesetting language. Therefore, you can easily convert man pages to any of the formats supported as output devices by ''groff'', which is used by {{Pkg|man-db}}. For a list of output devices, see the {{ic|-T}} option in {{man|1|groff}} (or {{man|1|mandoc}} if you use the {{Pkg|mandoc}} package).\n\nThis will produce a PDF file:\n\n $ man -Tpdf ''manpage'' > ''filename''\n\nCaveats: Fonts are generally limited to Times at hardcoded sizes. Some man pages were specifically designed for terminal viewing, and will not look right in PS or PDF form.\n\n== Online man pages ==\n\nThere are several online databases of man pages, including:\n\n* [https://man.archlinux.org Arch manual pages]\u2014contains man pages from Arch Linux packages. Used for [[Template:man|man page links]] from the wiki. You can also use the {{ic|!archman}} DuckDuckGo [https://duckduckgo.com/bang bang] to search through the Arch manual pages directly.\n* [https://man7.org/linux/man-pages/index.html man7.org]\u2014The Linux man-pages project. Upstream of the {{pkg|man-pages}} package.\n* [https://manned.org/ manned.org]\u2014collection from various Linux distributions, BSD, etc., with multiple package versions\n* [https://linux.die.net/man/ linux.die.net]\n* [https://man.cx/ man.cx]\n* [https://manpages.debian.org/ Debian man pages]\n* [https://manpages.ubuntu.com/ Ubuntu man pages]\n* [https://leaf.dragonflybsd.org/cgi/web-man DragonFlyBSD man pages]\n* [https://www.freebsd.org/cgi/man.cgi FreeBSD man pages]\n* [https://man.netbsd.org/ NetBSD man pages]\n* [https://man.openbsd.org OpenBSD man pages]\n* [http://man.cat-v.org/plan_9/ Plan 9 Manual \u2014 Volume 1]\n* [http://man.cat-v.org/inferno/ Inferno Manual \u2014 Volume 1]\n* [https://www.unix.com/man-page-repository.php The UNIX and Linux forums man page repository]\n\nNote that while {{pkg|man-pages}} provides man pages for POSIX.1 (see [https://www.kernel.org/doc/man-pages/download.html]), an official online reference also exists:\n\n* [https://pubs.opengroup.org/onlinepubs/9699919799/ POSIX.1-2017]\n\nThere is also a [https://gist.github.com/rixx/6cb5fa38f694009ad0bd50c275bb61f2 comparison table] of the online databases.\n\n{{Warning|Some distributions provide patched or outdated man pages that differ from those provided by Arch. Exercise caution when using online man pages.}}\n\n{{Tip|The online Arch manual pages can be rendered in the terminal using this command:\n{{ic|curl -sL <nowiki>'https://man.archlinux.org/man/clang.raw' | man -l -</nowiki>}}}}\n\n== Noteworthy man pages ==\n\nHere follows a non-exhaustive list of noteworthy pages that might help you understand a lot of things more in-depth. Some of them might serve as a good reference (like the ASCII table).\n\n* {{man|7|ascii}}\n* {{man|7|boot}}\n* {{man|7|charsets}}\n* {{man|1|chmod}}\n* {{man|7|credentials}}\n* {{man|5|fstab}}\n* {{man|7|file-hierarchy}}\n* {{man|1|systemd}}\n* {{man|1p|locale}}, {{man|5|locale}}, {{man|7|locale}}\n* {{man|3|printf}}\n* {{man|5|proc}}\n* {{man|7|regex}}\n* {{man|7|signal}}\n* {{man|5|term}}, {{man|7|term}}\n* {{man|5|termcap}}\n* {{man|5|terminfo}}\n* {{man|7|utf-8}}\n\nMore generally, have a look at [https://man7.org/linux/man-pages/dir_section_7.html category 7 (miscellaneous) pages]:\n\n $ man -s 7 -k \".*\" \n\nArch Linux specific pages:\n\n* {{man|5|alpm-hooks}}\n* {{man|3|libalpm}}\n* {{man|8|makepkg}}\n* {{man|5|makepkg.conf}}\n* {{man|1|makepkg-template}}\n* {{man|8|mkinitcpio}}\n* {{man|8|pacman}}\n* {{man|5|pacman.conf}}\n* {{man|8|pacman-conf}}\n* {{man|8|pacman-key}}\n\n{{Expansion|Add a section on writing man pages, including conversion tools like {{pkg|pandoc}}, {{pkg|ruby-ronn-ng}}, {{pkg|asciidoc}}, {{pkg|help2man}}, {{pkg|go-md2man}}, {{pkg|txt2man}}, {{pkg|scdoc}}, {{aur|info2man}}, {{aur|pod2man}}, {{aur|ruby-md2man}}, etc.}}\n\n== See also ==\n\n* [[Gentoo:man page]]\n* [https://linuxtidbits.wordpress.com/2013/08/21/wtfm-write-the-fine-manual-with-pod2man-text-converter/ Write The Fine Manual with pod2man]\n* [https://manpages.bsd.lv/history.html History of UNIX Manpages]"
                    }
                ]
            },
            "9002": {
                "pageid": 9002,
                "ns": 0,
                "title": "Chromium",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Web browser]]\n[[Category:Google]]\n[[de:Chromium]]\n[[ja:Chromium]]\n[[zh-hans:Chromium]]\n{{Related articles start}}\n{{Related|Browser extensions}}\n{{Related|Firefox}}\n{{Related|Opera}}\n{{Related|Vivaldi}}\n{{Related articles end}}\n\n[[Wikipedia:Chromium (web browser)|Chromium]] is an open-source graphical web browser based on the [[Wikipedia:Blink (web engine)|Blink]] rendering engine. It is the basis for the proprietary Google Chrome browser.\n\nSee [https://chromium.googlesource.com/chromium/src/+/master/docs/chromium_browser_vs_google_chrome.md this page] for an explanation of the differences between Chromium and Google Chrome. Additionally:\n\n* Sync is unavailable in Chromium 89+ (2021-03-02) [https://archlinux.org/news/chromium-losing-sync-support-in-early-march/]\n\n{{Note|Sync can be temporarily restored by [https://gist.github.com/foutrelis/14e339596b89813aa9c37fd1b4e5d9d5 using Chrome's OAuth2 credentials] or [https://www.chromium.org/developers/how-tos/api-keys getting your own], but pay attention to the disclaimers and do not consider this to be a long-term solution.\nConsider switching to [https://www.xbrowsersync.org xbrowsersync] for bookmarks syncing as long term solution.\n}}\n\nSee [[List of applications/Internet#Blink-based]] for other browsers based on Chromium.\n\n== Installation ==\n\nThere are several packages available to [[install]] Chromium with:\n\n* {{Pkg|chromium}} \u2014 stable release;\n* {{AUR|chromium-dev}} \u2014 development release;\n* {{AUR|chromium-snapshot-bin}} \u2014 nightly build.\n\nGoogle Chrome packages:\n\n* {{AUR|google-chrome}} \u2014 stable release;\n* {{AUR|google-chrome-beta}} \u2014 beta release;\n* {{AUR|google-chrome-dev}} \u2014 development release.\n\n{{Note|From the [https://www.chromium.org/Home/chromium-privacy Chromium privacy page]: \"Features that communicate with Google made available through the compilation of code in Chromium are subject to the [https://www.google.com/policies/privacy/ Google Privacy Policy].\" For those who want to avoid all integration with Google services, there are some [[List of applications/Internet#Privacy-focused chromium spin-offs|privacy-focused spin-offs]].}}\n\n== Configuration ==\n\n{{Merge|Chromium#Tips and tricks 2|Most of the content in this section should be split between [[Chromium#Tips and tricks 2]] and maybe [[Chromium#Troubleshooting]] for the applicable sections.}}\n\n=== Default applications ===\n\nTo set Chromium as the default browser and to change which applications Chromium launches when opening downloaded files, see [[default applications]].\n\n=== Certificates ===\n\nChromium uses [[Network Security Services]] for certificate management. Certificates can be managed in {{ic|chrome://settings/certificates}}.\n\n=== Making flags persistent ===\n\n{{Note|The {{ic|chromium-flags.conf}} file and the accompanying custom launcher script are specific to the Arch Linux {{Pkg|chromium}} package. For {{AUR|google-chrome}} and {{AUR|google-chrome-dev}}, use {{ic|chrome-flags.conf}} and {{ic|chrome-dev-flags.conf}} instead.}}\n\nYou can put your flags in a {{ic|chromium-flags.conf}} file under {{ic|$HOME/.config/}} (or under {{ic|$XDG_CONFIG_HOME}} if you have configured that environment variable) or {{ic|/etc/}} for global.\n\nNo special syntax is used; flags are defined as if they were written in a terminal.\n\n* The arguments are split on whitespace and shell quoting rules apply, but no further parsing is performed.\n* In case of improper quoting anywhere in the file, a fatal error is raised.\n* Flags can be placed in separate lines for readability, but this is not required.\n* Lines starting with a hash symbol (#) are skipped. (This is only supported by the {{Pkg|chromium}} launcher script and will not work when using {{ic|chrome-flags.conf}} with the {{AUR|google-chrome}} package.)\n\nBelow is an example {{ic|chromium-flags.conf}} file that defines the flags {{ic|--start-maximized --incognito}}:\n\n{{hc|~/.config/chromium-flags.conf|\n# This line will be ignored.\n--start-maximized\n--incognito\n}}\n\n=== Force GPU acceleration ===\n\n{{Warning|Disabling the rendering blacklist may cause unstable behavior, including crashes of the host. See the bug reports in {{ic|chrome://gpu}} for details.}}\n\nBy default Chromium on Linux does not use any GPU acceleration. To force GPU acceleration, [[append]] the following flags to [[/Tips and tricks#Making flags persistent|persistent configuration]]:\n\n{{hc|~/.config/chromium-flags.conf|\n--ignore-gpu-blocklist\n--enable-gpu-rasterization\n--enable-zero-copy\n}}\n\nAdditionally the flag {{ic|--disable-gpu-driver-bug-workarounds}} may need to be passed to prevent GPU workaround from being used. Flags in {{ic|chrome://gpu}} should state \"Hardware accelerated\" when configured and available.\n\n{{Out of date|A fix has been merged into mesa as of May 2021. [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10850]}}\n\n{{ic|--enable-native-gpu-memory-buffers}} is broken since mesa 20.1.1 [https://gitlab.freedesktop.org/mesa/mesa/-/issues/3119#note_533902]\n\n=== Hardware video acceleration ===\n\n{{Note|1=<nowiki/>\n* There is no official support from Chromium or Arch Linux for this feature [https://chromium.googlesource.com/chromium/src/+/master/docs/gpu/vaapi.md#vaapi-on-linux]. However, {{Pkg|chromium}} from official repositories is compiled with VA-API support and you may ask for help in [https://bbs.archlinux.org/viewtopic.php?id=244031 the dedicated forum thread].\n* VA-API does not work with the {{Pkg|chromium}} package when using the native Wayland backend, but it does work in {{AUR|chromium-wayland-vaapi}}.\n}}\n\nTo enable VA-API support in Chromium:\n\n* Install the correct VA-API driver for your video card and verify VA-API has been enabled and working correctly, see [[Hardware video acceleration]]. For proprietary NVIDIA support, installing {{AUR|libva-vdpau-driver-chromium}} or {{AUR|libva-vdpau-driver-vp9-git}} is required.\n* Set the option {{ic|1=--enable-features=VaapiVideoDecoder}}. This is enough when using ANGLE GL renderer and {{Pkg|libva-intel-driver}}.\n* When using ANGLE, Chromium forces the older i965 driver and fails when {{Pkg|intel-media-driver}} is used. As a workaround, [[Hardware video acceleration#Configuring VA-API|configure VA-API manually]]. See [https://github.com/intel/media-driver/issues/818] for details.\n* To use the system GL renderer on Xorg, use either {{ic|1=--use-gl=egl}} or {{ic|1=--use-gl=desktop}}. On XWayland, use the {{ic|1=--use-gl=egl}} flag (Currently exhibits choppiness {{Bug|67035}} on some systems).\n* If VA-API still does not work, try the {{ic|1=--enable-features=VaapiIgnoreDriverChecks}} flag\n\n==== Tips and tricks ====\n\nTo check if it is working play a video which is using a codec supported by your VA-API driver (''vainfo'' tells you which codecs are supported, but Chromium will only support VP9 and h264):\n\n* Open the DevTools by pressing {{ic|Ctrl+Shift+I}} or on the ''Inspect'' button of the context (right-click) menu\n* Add the Media inspection tab: ''Hamburger menu > More tools > Media''\n* In the newly opened Media tab, look at the hardware decoder state of the video decoder\n\nTest on a large enough video. Starting with version 86, Chromium on desktop [https://bugs.chromium.org/p/chromium/issues/detail?id=684792 will only accelerate videos larger than 720p].\n\nTo reduce CPU usage while watching YouTube where VP8/VP9 hardware decoding is not available use the [https://chrome.google.com/webstore/detail/h264ify/aleakchihdccplidncghkekgioiakgal h264ify], [https://chrome.google.com/webstore/detail/enhanced-h264ify/omkfmpieigblcllmkgbflkikinpkodlk enhanced-h264ify] or [https://chrome.google.com/webstore/detail/not-yet-av1/dcmllfkiihingappljlkffafnlhdpbai Not yet, AV1][https://bbs.archlinux.org/viewtopic.php?pid=2039884#p2039884] extension.\n\nOn some systems (especially on XWayland) you might need to [[#Force GPU acceleration]]. Only {{ic|--ignore-gpu-blocklist}} is enough for our purposes.\n\n{{Expansion|Provide a link to some bug report.}}\n\nYou might need to disable the Skia renderer, as it is currently not compatible with video decode acceleration: {{ic|1=--disable-features=UseSkiaRenderer}}\n\n=== KDE integration ===\n\nFor integration into [[Plasma]] install {{aur|chromium-extension-plasma-integration}} and the [https://chrome.google.com/webstore/detail/plasma-integration/cimiefiiaegbelhefglklhhakcgmhkai plasma-integration] addon. See [https://community.kde.org/Plasma/Browser_Integration KDE Plasma Browser Integration] for more details.\n\n=== PDF viewer plugin ===\n\nChromium and Google Chrome are bundled with the ''Chromium PDF Viewer'' plugin. If you do not want to use this plugin, check ''Download PDFs'' in {{ic|chrome://settings/content/pdfDocuments}}.\n\n=== Running on XWayland ===\n\nIf you are using NVIDIA's proprietary driver, running Chromium on XWayland may cause the GPU process to occasionally crash. To prevent the GPU process from crashing, add the following flags:\n\n --use-angle=vulkan --use-cmd-decoder=passthrough\n\n{{Note|This does not prevent all XWayland-related crashes.}}\n\n=== Native Wayland support ===\n\nSince version 97, native [[Wayland]] support in Chromium can be enabled with the following flags [https://chromium.googlesource.com/chromium/src/+/43cfb2f92a5cdc1a787d7326e74676884abf5052]:\n\n --ozone-platform-hint=auto\n\nIf this doesn't work, e.g. on version 106 under [[Weston]], then use:\n\n --ozone-platform=wayland\n\nSee [[#Making flags persistent]] for a permanent configuration. The flag is also available via [[#chrome:// URLs|browser flags menu]].\n\nThis will select wayland Ozone backend when in wayland session, so you can use a single desktop entry if you switch between X11 and Wayland often.\n\n{{Note|When changing the \"ozone-platform-hint\" in browser flags menu, the browser will provide you a relaunch button. Do not use it, because the browser will still be relaunched in a platform it was before changing the flag. You need to close the browser, then open it.}}\n\n== Tips and tricks ==\n\nThe following tips and tricks should work for both Chromium and Chrome unless explicitly stated.\n\n=== Browsing experience ===\n\n==== chrome:// URLs ====\n\nA number of tweaks can be accessed via Chrome URLs. See '''chrome://chrome-urls''' for a complete list.\n\n* '''chrome://flags''' - access experimental features such as WebGL and rendering webpages with GPU, etc.\n* '''chrome://extensions''' - view, enable and disable the currently used Chromium extensions.\n* '''chrome://gpu''' - status of different GPU options.\n* '''chrome://sandbox''' - indicate sandbox status.\n* '''chrome://version''' - display version and switches used to invoke the active {{ic|/usr/bin/chromium}}.\n\nAn automatically updated, complete listing of Chromium switches (command line parameters) is available [https://peter.sh/experiments/chromium-command-line-switches/ here].\n\n==== Chromium task manager ====\n\nShift+ESC can be used to bring up the browser task manager wherein memory, CPU, and network usage can be viewed.\n\n==== Chromium overrides/overwrites Preferences file ====\n\nIf you enabled syncing with a Google Account, then Chromium will override any direct edits to the Preferences file found under {{ic|~/.config/chromium/Default/Preferences}}. To work around this, start Chromium with the {{ic|--disable-sync-preferences}} switch:\n $ chromium --disable-sync-preferences\n\nIf Chromium is started in the background when you login in to your desktop environment, make sure the command your desktop environment uses is:\n $ chromium --disable-sync-preferences --no-startup-window\n\n==== Search engines ====\n\nMake sites like [https://wiki.archlinux.org wiki.archlinux.org] and [https://en.wikipedia.org wikipedia.org] easily searchable by first executing a search on those pages, then going to ''Settings > Search'' and click the ''Manage search engines..'' button. From there, \"Edit\" the Wikipedia entry and change its keyword to '''w''' (or some other shortcut you prefer). Now searching Wikipedia for \"Arch Linux\" from the address bar is done simply by entering \"'''w arch linux'''\".\n\n{{Note| Google search is used automatically when typing something into the URL bar. A hard-coded keyword trigger is also available using the '''?''' prefix.}}\n\n==== Tmpfs ====\n\n===== Cache in tmpfs =====\n\n{{Note|Chromium stores its cache separate from its browser profile directory.}}\n\nTo limit Chromium from writing its cache to a physical disk, one can define an alternative location via the {{ic|--disk-cache-dir}} flag:\n $ chromium --disk-cache-dir=\"$XDG_RUNTIME_DIR/chromium-cache\"\n\nCache should be considered temporary and will '''not''' be saved after a reboot or hard lock. Another option is to setup the space in {{ic|/etc/fstab}}:\n\n{{hc|/etc/fstab|2=\ntmpfs\t/home/''username''/.cache\ttmpfs\tnoatime,nodev,nosuid,size=400M\t0\t0\n}}\n\n===== Profile in tmpfs =====\n\nRelocate the browser profile to a [[Wikipedia:Tmpfs|tmpfs]] filesystem, including {{ic|/tmp}}, or {{ic|/dev/shm}} for improvements in application response as the entire profile is now stored in RAM.\n\nUse an active profile management tool such as {{Pkg|profile-sync-daemon}} for maximal reliability and ease of use. It symlinks or bind mounts and syncs the browser profile directories to RAM. For more, see [[Profile-sync-daemon]].\n\n==== Launch a new browser instance ====\n\nWhen you launch the browser, it first checks if another instance using the same data directory is already running. If there is one, the new window is associated with the old instance. If you want to launch an independent instance of the browser, you must specify separate directory using the {{ic|--user-data-dir}} parameter:\n\n $ chromium --user-data-dir=''/path/to/some/directory''\n\n{{Note|The default location of the user data is {{ic|~/.config/chromium/}}.}}\n\n==== Directly open *.torrent files and magnet links with a torrent client ====\n\nBy default, Chromium downloads {{ic|*.torrent}} files directly and you need to click the notification from the bottom-left corner of the screen in order for the file to be opened with your default torrent client. This can be avoided with the following method:\n\n* Download a {{ic|*.torrent}} file.\n* Right-click the notification displayed at the bottom-left corner of the screen.\n* Check the \"''Always Open Files of This Type''\" checkbox.\n\nSee [[xdg-open]] to change the default assocation.\n\n==== Touch Scrolling on touchscreen devices ====\n\nYou may need to specify which touch device to use. Find your touchscreen device with {{ic| xinput list}} then launch Chromium with the {{ic|1=--touch-devices='''x'''}} parameter, where \"'''x'''\" is the id of your device. {{Note|If the device is designated as a slave pointer, using this may not work, use the master pointer's ID instead.}}\n\n==== Reduce memory usage ====\n\nBy default, Chromium uses a separate OS process for each ''instance'' of a visited web site. [https://www.chromium.org/developers/design-documents/process-models#Supported_Models] However, you can specify command-line switches when starting Chromium to modify this behaviour.\n\nFor example, to share one process for all instances of a website:\n\n $ chromium --process-per-site\n\nTo use a single process model:\n\n $ chromium --single-process\n\n{{Warning|The single-process model is discouraged because it is unsafe and may contain bugs not present in other models.[https://www.chromium.org/developers/design-documents/process-models#TOC-Single-process]}}\n\nIn addition, you can suspend or store inactive Tabs with extensions such as [https://chrome.google.com/webstore/detail/tab-suspender/fiabciakcmgepblmdkmemdbbkilneeeh?hl=en Tab Suspender] and [https://chrome.google.com/webstore/detail/onetab/chphlpgkkbolifaimnlloiipkdnihall?hl=en OneTab].\n\n==== User Agent ====\n\nThe User Agent can be arbitrarily modified at the start of Chromium's base instance via its {{Ic|<nowiki>--user-agent=\"[string]\"</nowiki>}} parameter.\n\n==== DOM Distiller ====\n\nChromium has a similar reader mode to Firefox. In this case it is called DOM Distiller, which is an [https://github.com/chromium/dom-distiller open source project].\nIt is disabled by default, but can be enabled using the {{Ic|chrome://flags/#enable-reader-mode}} flag, which you can also make [[#Making flags persistent|persistent]].\nNot only does DOM Distiller provide a better reading experience by distilling the content of the page, it also simplifies pages for print. Even though the latter checkbox option has been removed from the print dialog, you can still print the distilled page, which basically has the same effect.\n\nAfter enabling the flag, you will find a new \"Enter reader mode\" menu item and corresponding icon in the address bar when Chromium thinks the website you are visiting could do with some distilling.\n\n==== Forcing specific GPU ====\n\nIn multi-GPU systems, Chromium automatically detects which GPU should be used for rendering (discrete or integrated). This works 99% of the time, except when it does not - if a unavailable GPU is picked (for example, discrete graphics on VFIO GPU passthrough-enabled systems), {{ic|chrome://gpu}} will complain about not being able to initialize the GPU process. On the same page below '''Driver Information''' there will be multiple GPUs shown (GPU0, GPU1, ...). There is no way to switch between them in a user-friendly way, but you can read the device/vendor IDs present there and configure Chromium to use a specific GPU with flags:\n\n $ chromium --gpu-testing-vendor-id=0x8086 --gpu-testing-device-id=0x1912\n\n...where {{ic|0x8086}} and {{ic|0x1912}} is replaced by the IDs of the GPU you want to use (as shown on the {{ic|chrome://gpu}} page).\n\n==== Import bookmarks from Firefox ====\n\nTo ease the transition, you can import bookmarks from [[Firefox]] into Chromium.\n\nNavigate Chromium to {{ic|chrome://settings/importData}}\n\nIf Firefox is already installed on your computer, you can directly import bookmarks as well as many other things from Firefox.\n\nMake sure '''Mozilla Firefox''' is selected. Optionally, you can uncheck some unwanted items here. Click the '''Import''' and then '''Done'''. You are done with it.\n\n{{note|If you have not created any bookmarks in Chromium yet, the bookmarks will show up in your bookmarks bar. If you already have bookmarks, the bookmarks will be in a new folder labeled \"Imported From Firefox\"}}\n\nIf you import bookmarks from another PC, you have to export bookmarks from Firefox first.\n\n{{ic|''Ctrl + Shift + O > Import and Backup > Export Bookmarks To HTML}} in Firefox''\n\nThe procedure is pretty much the same. You need to go to {{ic|chrome://settings/importData}}. However, this time, in the '''From''' drop-down menu, select '''Bookmarks HTML File''' and click the '''Choose File''' button and upload the desired bookmark file.\n\n==== Enabling native notifications ====\n\nGo to {{ic|chrome://flags#enable-system-notifications}} and select ''Enabled''.\n\n==== U2F authentication ====\n\nInstall {{Pkg|libfido2}} library. This provides the udev rules required to enable access to the [[U2F]] key as a user.\nU2F keys are by default only accessible by root, and without these rules Chromium will give an error.\n\n==== Dark mode ====\n\nTo enable dark mode (used in ''prefers-color-scheme'' in CSS, JavaScript, Settings and Dev-Tools) and enable the dark theme (normally used for incognito mode) [[append]] the following flag to [[#Making flags persistent|persistent configuration]]:\n\n{{hc|1=~/.config/chromium-flags.conf|2=\n--force-dark-mode\n--enable-features=WebUIDarkMode\n}}\n\n===== Dark mode by system preference =====\n\n[https://bugs.chromium.org/p/chromium/issues/detail?id=998903 This Chromium issue] aims to bring dark mode based on GTK theme selection into Chromium.\n\nIn the future, all that will be required to properly use system preference, is setting ''Designs'' to GTK in {{ic|chrome://settings/appearance}}.\n\n==== Enable Side Panel ====\n\nThe Side Panel can be enabled through {{ic|chrome://flags}}. You can enable or disable '''Side panel''', and change options such as '''Side panel border''' and '''Side panel drag and drop'''.\n\n=== Profile maintenance ===\n\nChromium uses [[SQLite]] databases to manage history and the like.  Sqlite databases become fragmented over time and empty spaces appear all around. But, since there are no managing processes checking and optimizing the database, these factors eventually result in a performance hit. A good way to improve startup and some other bookmarks- and history-related tasks is to defragment and trim unused space from these databases.\n\n{{Pkg|profile-cleaner}} and {{AUR|browser-vacuum}} in the [[AUR]] do just this.\n\n=== Security ===\n\n==== Disable JIT ====\n\nAt the cost of reduced performance, you can disable just-in-time compilation of JavaScript to native code, which is responsible for [https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/ roughly half of the security vulnerabilities in the JS engine], using the flag {{ic|1=--js-flags=--jitless}}.\n\n==== WebRTC ====\n\nWebRTC is a communication protocol that relies on JavaScript that can leak one's actual IP address and hardware hash from behind a VPN. While some software may prevent the leaking scripts from running, it is probably a good idea to block this protocol directly as well, just to be safe. As of October 2016, there is no way to disable WebRTC on Chromium on desktop, there are extensions available to disable local IP address leak, one is this [https://chrome.google.com/webstore/detail/webrtc-network-limiter/npeicpdbkakmehahjeeohfdhnlpdklia extension].\n\nOne can test WebRTC via https://browserleaks.com/webrtc.\n\n{{Warning|Even though IP leak can be prevented, Chromium still sends your unique hash, and there is no way to prevent this. Read more on https://www.browserleaks.com/webrtc#webrtc-disable}}\n\n==== SSL certificates ====\n\nChromium does not have an SSL certificate manager.  It relies on the NSS Shared DB {{ic|~/.pki/nssdb}}.  In order to add SSL certificates to the database, users will have to use the shell.\n\n===== Adding CAcert certificates for self-signed certificates =====\n\nGrab the CAcerts and create an {{ic|nssdb}}, if one does not already exist.  To do this, first install the {{Pkg|nss}} package, then complete these steps:\n\n $ mkdir -p $HOME/.pki/nssdb\n $ cd $HOME/.pki/nssdb\n $ certutil -N -d sql:.\n\n $ curl -k -o \"cacert-root.crt\" \"http://www.cacert.org/certs/root.crt\"\n $ curl -k -o \"cacert-class3.crt\" \"http://www.cacert.org/certs/class3.crt\"\n $ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n \"CAcert.org\" -i cacert-root.crt \n $ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n \"CAcert.org Class 3\" -i cacert-class3.crt\n\n{{Note|Users will need to create a password for the database, if it does not exist.}}\n\nNow users may manually import a self-signed certificate.\n\n===== Example 1: Using a shell script to isolate the certificate from TomatoUSB =====\n\nBelow is a simple script that will extract and add a certificate to the user's {{ic|nssdb}}:\n\n #!/bin/sh\n #\n # usage:  import-cert.sh remote.host.name [port]\n #\n REMHOST=$1\n REMPORT=${2:-443}\n exec 6>&1\n exec > $REMHOST\n echo | openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'\n certutil -d sql:$HOME/.pki/nssdb -A -t \"P,,\" -n \"$REMHOST\" -i $REMHOST \n exec 1>&6 6>&-\n\nSyntax is advertised in the commented lines.\n\nReferences:\n*https://web.archive.org/web/20180718193807/https://blog.avirtualhome.com/adding-ssl-certificates-to-google-chrome-linux-ubuntu\n*https://chromium.googlesource.com/chromium/src/+/master/docs/linux/cert_management.md\n\n===== Example 2: Using Firefox to isolate the certificate from TomatoUSB =====\n\nThe {{Pkg|firefox}} browser can be used to save the certificate to a file for manual import into the database.\n\nUsing firefox:\n#Browse to the target URL.\n#Upon seeing the \"This Connection is Untrusted\" warning screen, click: ''I understand the Risks > Add Exception...''\n#Click: ''View > Details > Export'' and save the certificate to a temporary location ({{ic|/tmp/easy.pem}} in this example).\n\nNow import the certificate for use in Chromium:\n $ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n \"easy\" -i /tmp/easy.pem\n\n{{Note|Adjust the name to match that of the certificate. In the example above, \"easy\" is the name of the certificate.}}\n\nReference:\n*https://sahissam.blogspot.com/2012/06/new-ssl-certificates-for-tomatousb-and.html\n\n==== Canvas Fingerprinting ====\n\nCanvas fingerprinting is a technique that allows websites to identify users by detecting differences when rendering to an HTML5 canvas. This information can be made inaccessible by using the {{ic|--disable-reading-from-canvas}} flag.\n\nTo confirm this is working run [https://panopticlick.eff.org this test] and make sure \"hash of canvas fingerprint\" is reported as undetermined in the full results.\n\n{{Note|1=<nowiki></nowiki>\n* Some extensions require reading from canvas and may be broken by setting {{ic|--disable-reading-from-canvas}}.\n* YouTube player does not work properly without canvas reading. [https://github.com/qutebrowser/qutebrowser/issues/5345][https://bbs.archlinux.org/viewtopic.php?pid=1907406]\n}}\n\n==== Privacy extensions ====\n\nSee [[Browser extensions#Privacy]].\n\n{{Tip|Installing too many extensions might take up much space in the toolbar. Those extensions which you would not interact with anyway (e.g. [https://chrome.google.com/webstore/detail/gcbommkclmclpchllfjekcdonpmejbdp HTTPS Everywhere]) can be hidden by right-clicking on the extension and choosing ''Hide in Chromium menu''.}}\n\n==== Do Not Track ====\n\nTo enable [[wikipedia:Do Not Track|Do Not Track]], visit {{ic|chrome://settings}}, scroll down to ''Advanced'' and under ''Privacy and security'', check ''Send a \"Do Not Track\" request with your browsing traffic''.\n\n==== Force a password store ====\n\nChromium uses a password store to store your passwords and the ''Chromium Safe Storage'' key, which is used to encrypt cookie values. [https://codereview.chromium.org/24734007]\n\nBy default Chromium auto-detects which password store to use, which can lead to you apparently losing your passwords and cookies when switching to another desktop environment or window manager.\n\nYou can force Chromium to use a specific password store by launching it with the {{ic|--password-store}} flag with one of following the values [https://chromium.googlesource.com/chromium/src/+/master/docs/linux/password_storage.md]:\n\n* {{ic|gnome}}, uses [[Gnome Keyring]]\n* {{ic|kwallet5}}, uses [[KDE Wallet]]\n* {{ic|basic}}, saves the passwords and the cookies' encryption key as plain text in the file {{ic|Login Data}}\n* {{ic|detect}}, the default auto-detect behavior\n\nFor example, to force Chromium to use Gnome Keyring in another desktop or WM use {{ic|1=--password-store=gnome}}, see [[#Making flags persistent]] for making it permanent.\n\nWhen using a password store of another desktop environment you probably also want to unlock it automatically. See [[GNOME/Keyring#Using the keyring]] and [[KDE Wallet#Unlock KDE Wallet automatically on login]].\n\n== Troubleshooting ==\n\n=== Fonts ===\n\n{{Note|Chromium does not fully integrate with fontconfig/GTK/Pango/X/etc. due to its sandbox. For more information, see the [https://dev.chromium.org/developers/linux-technical-faq Linux Technical FAQ].}}\n\n==== Tab font size is too large ====\n\nChromium will use the GTK settings as described in [[GTK#Configuration]]. When configured, Chromium will use the {{ic|gtk-font-name}} setting for tabs (which may mismatch window font size). To override these settings, use {{ic|1=--force-device-scale-factor=1.0}}.\n\n=== WebGL ===\n\nThere is the possibility that your graphics card has been blacklisted by Chromium. See [[#Force GPU acceleration]].\n\nIf you are using Chromium with [[Bumblebee]], WebGL might crash due to GPU sandboxing. In this case, you can disable GPU sandboxing with {{ic|optirun chromium --disable-gpu-sandbox}}.\n\nVisit {{ic|chrome://gpu/}} for debugging information about WebGL support.\n\nChromium can save incorrect data about your GPU in your user profile (e.g. if you use switch between an Nvidia card using Optimus and Intel, it will show the Nvidia card in {{ic|chrome://gpu}} even when you are not using it or primusrun/optirun). Running using a different user directory, e.g, {{ic|1=chromium --user-data-dir=$(mktemp -d)}} may solve this issue. For a persistent solution you can reset the GPU information by deleting {{ic|~/.config/chromium/Local\\ State}}.\n\n=== Incorrect HiDPI rendering ===\n\nChromium will automatically scale for a [[HiDPI]] display, however, this may cause an incorrect rendered GUI.\n\nThe flag {{ic|1=--force-device-scale-factor=1}} may be used to overrule the automatic scaling factor.\n\nWhen [[#Native Wayland support|native Wayland support]] is enabled, Chromium will automatically scale based on the configured scale of each monitor.\n\n=== Password prompt on every start with GNOME Keyring ===\n\nSee [[GNOME/Keyring#Passwords are not remembered]].\n\n=== Chromecasts in the network are not discovered ===\n\nYou will need to enable the Media Router Component Extension in {{ic|chrome://flags/#load-media-router-component-extension}}.\n\n=== Everything is syncing except for password ===\n\nIf synchronization is not working for password only (you can check it on {{ic|chrome://sync-internals/}}) delete profile login data:\n\n $ rm ~/.config/chromium/Default/Login\\ Data*\n\nSee [https://support.google.com/chrome/thread/9947763?hl=en&msgid=23687608 Google Chrome Help forum] for details.\n\n=== Losing cookies and passwords when switching between desktop environments ===\n\nIf you see the message {{ic|Failed to decrypt token for service AccountId-*}} in the terminal when you start Chromium, it might try to use the wrong password storage backend. This might happen when you switch between Desktop Environments.\n\nSee [[#Force a password store]].\n\n=== Hang on startup when Google Sync enabled ===\n\nTry launching Chrome with {{ic|1=--password-store=basic}} or another appropriate password store.\n\nSee [[#Force a password store]].\n\n=== Chromium asks to be set as the default browser every time it starts ===\n\nIf you are using KDE and have once set Firefox as the default browser (by clicking the button inside Firefox), you might find Chromium asks to be set as the default browser every time it starts, even if you click the \"set as default\" button.\n\nChromium checks for this status by running {{ic|xdg-settings check default-web-browser chromium.desktop}}. If the output is \"no\", it is not considering itself to be the default browser. The script {{ic|xdg-settings}} checks for the following MIME associations and expect all of them to be {{ic|chromium.desktop}}:\n\n{{bc|\nx-scheme-handler/http\nx-scheme-handler/https\ntext/html}}\n\nTo fix it, go to ''System settings > Applications > Default applications > Web browser'' and choose Chromium. Then, set the MIME association for {{ic|text/html}}:\n\n $ xdg-mime default chromium.desktop text/html\n\nFinally, [[XDG MIME Applications#New MIME types|update the MIME database]]:\n\n $ update-mime-database ~/.local/share/mime\n\n=== \"This browser or app may not be secure\" error logging in to Google ===\n\nAs of 2020.04.20 if you run chromium with {{ic|1=--remote-debugging-port=9222}} flag for web development, you cannot log in to your Google account. Temporarily disable this flag to login and then you can enable it back.\n\n=== Chromium stuck at 60fps when using a 144Hz + 60Hz monitor ===\n\nThere is a suitable workaround for this issue, [[append]] the following flags to [[#Making flags persistent|persistent configuration]]:\n\n{{hc|1=~/.config/chromium-flags.conf|2=\n--use-gl=egl\n--ignore-gpu-blocklist\n--enable-gpu-rasterization\n}}\n\nThis should make Chromium run at 144fps when used on your 144hz display, assuming your compositor is refreshing at 144fps. \nKeep in mind it might be a little choppy {{Bug|67035}}, but this is way better than it being stuck at 60fps.\n\n=== Chromium slow scroll speed ===\n\nMouse whell scrolling in chromium and electron based applications may be too slow for daily usage. Here are some solutions.\n\n[[Libinput#Mouse wheel scrolling speed scaling]] injects {{ic|libinput_event_pointer_get_axis_value}} function in libinput and provides an interface to change scale factor. This is not a application level injection, so an addition script for application specific scale factor tuning is needed. Note that scroll on chromium's small height developer tools may be too fast when scale factor is big enough.\n\n[[IMWheel]] increases scroll distance by replaying X wheel button event for multiple times. However, chromium assumes the real scroll and the replayed ones as two events. There is a small but noticeable delay between them, so one mouse wheel scroll leads to twice page jumps. Also, touchpad scroll needs additional care.\n\n[https://chrome.google.com/webstore/detail/linux-scroll-speed-fix/mlboohjioameadaedfjcpemcaangkkbp Linux Scroll Speed Fix] and [https://chrome.google.com/webstore/detail/smoothscroll/nbokbjkabcmbfdlbddjidfmibcpneigj SmoothScroll] are two chromium extensions with suppport for scroll distance modification. Upon wheel scroll in a web page, the closest scrollable ancestor of current focused node will be found, then a scroll method with given pixel distance will be called on it, even if it has been scrolled to bottom. So once you scroll into a text editor or any scrollable element, you can never scroll out of it, except moving mouse. Also, extension based methods can not be used outside chromium.\n\n=== Videos load but do not play ===\n\nThis may be a PulseAudio issue. See the suggested fix in [[PulseAudio/Troubleshooting#Browsers load videos but do no play]].\n\n== See also ==\n\n* [https://www.chromium.org/ Chromium homepage]\n* [https://chromereleases.googleblog.com/ Google Chrome release notes]\n* [https://chrome.google.com/webstore/ Chrome web store]\n* [[Wikipedia:Chromium (web browser)#Differences from Google Chrome|Differences between Chromium and Google Chrome]]\n* [https://peter.sh/experiments/chromium-command-line-switches/ List of Chromium command-line switches]\n* [[Profile-sync-daemon]] - Systemd service that saves Chromium profile in tmpfs and syncs to disk\n* [[Tmpfs]] - Tmpfs Filesystem in {{ic|/etc/fstab}}\n* [https://docs.kernel.org/filesystems/tmpfs.html Official tmpfs kernel Documentation]"
                    }
                ]
            },
            "9287": {
                "pageid": 9287,
                "ns": 0,
                "title": "Thunderbird",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Email clients]]\n[[Category:Mozilla]]\n[[de:Thunderbird]]\n[[ja:Thunderbird]]\n[[ru:Thunderbird]]\n{{Related articles start}}\n{{Related|Firefox}}\n{{Related articles end}}\n\n[https://www.thunderbird.net/en-US/ Thunderbird] is an open source email, news, and chat client previously developed by the Mozilla Foundation.\n\n== Installation ==\n\n[[Install]] the {{Pkg|thunderbird}} package, with a [https://archlinux.org/packages/?q=thunderbird-i18n language pack] if required.\n\nOther versions include:\n\n* {{App | Thunderbird Beta | Cutting edge features with relatively-good stability. | https://www.thunderbird.net/channel/ | {{AUR|thunderbird-beta-bin}}}}\n* {{App | Thunderbird Nightly | Experience the newest innovations with nightly releases (for those that want to work with breakages). | https://ftp.mozilla.org/pub/thunderbird/nightly/latest-comm-central/ | {{AUR|thunderbird-nightly-bin}}}}\n* {{App | Betterbird | Betterbird is a fine-tuned version of Mozilla Thunderbird, Thunderbird on steroids. | https://www.betterbird.eu | {{AUR|betterbird-bin}}}}\n\nA version overview, both past and future, can be read on [[MozillaWiki:Releases]].\n\n== Securing ==\n\n* Thunderbird sends your system's internal IP address to the configured SMTP server as an argument to the HELO/ELHO SMTP command. This value can be overridden by setting {{ic|mail.smtpserver.default.hello_argument}} to, for example, {{ic|localhost}}. Setting this value may increase the spam score of messages you send. See [http://kb.mozillazine.org/Replace_IP_address_with_name_in_headers] and [http://kb.mozillazine.org/Mail_and_news_settings].\n\n* To hide Thunderbird's [https://developer.mozilla.org/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference#Linux User Agent], create a new empty {{ic|general.useragent.override}} string entry in the [[#Config editor]].\n\n* Thunderbird disables email images by default but enables HTML rendering which may expose IP address and location. To disable this click ''View > Message Body As > Plain Text''.\n\n* JavaScript is disabled for message content but not for RSS news feeds. To disable set {{ic|javascript.enabled}} to {{ic|false}} in the [[#Config editor]].\n\n== Extensions ==\n\n* {{App|Birdtray|System tray new mail notification which does not require extensions. Run Thunderbird with a system tray icon.|https://github.com/gyunaev/birdtray|{{AUR|birdtray}}}}\n* {{App|SysTray-X|system tray extension. Similar to FireTray but works with Thunderbird 68+.|https://github.com/Ximi1970/systray-x|{{AUR|systray-x-git}}}}\n* {{App|SOGo Connector| Lets you sync address books via CardDAV|https://sogo.nu/download.html#/frontends|{{AUR|thunderbird-sogo-connector-bin}}}}\n* {{App|Cardbook|A new addressbook for Thunderbird based on the CARDDav and VCARD standards.|[https://addons.thunderbird.net/thunderbird/addon/cardbook/ Cardbook AMO]|}}\n\n=== OpenPGP: signing and encryption ===\n\nFrom Thunderbird 78.2.1 onwards, this functionality is integrated into Thunderbird. This was previously provided by the Enigmail add-on, which is not compatible with Thunderbird 78+. To migrate keys from Enigmail to Thunderbird, as well as learn what is currently supported, see [https://support.mozilla.org/en-US/kb/openpgp-thunderbird-howto-and-faq Thunderbird OpenPGP FAQ]. Before migration, make sure that a strong passphrase is used for the master password. Otherwise the private key will not be properly protected.\n\n== Tips and tricks ==\n\n=== Config editor ===\n\nThunderbird can be extensively configured by clicking the ''Thunderbird Menu > Preferences > General'' and looking for the ''Config Editor'' button at the bottom of the page. \nAlternatively, if the menu bar is toggled the Config Editor button can be found by clicking ''Edit > Preferences > General''\n\n=== Set the default browser ===\n\nThunderbird uses the default browser as defined by the [[XDG MIME Applications]]. This is commonly modified by [[desktop environment]]s (for example [[GNOME]]'s Control Center: ''Details > Default Applications > Web'').\n\nThis can be overridden with {{ic|network.protocol-handler.warn-external}} in the [[#Config editor]]\n\nIf the following is all set to {{ic|false}} (default), set them to {{ic|true}} and Thunderbird will ask you which application to use when you click on a link (remember to also check ''\"Remember my choice for .. links\"'').\n\n network.protocol-handler.warn-external.http\n network.protocol-handler.warn-external.https\n\n=== Plain text mode and font uniformity ===\n\nPlain Text mode lets you view all your emails without HTML rendering and is available in ''View > Message Body As''. This defaults to the [[Wikipedia:Monospace_(Unicode)|Monospace]] font but the size is still inherited from original system fontconfig settings. The following example will overwrite this with Ubuntu Mono of 10 pixels (available in: {{Pkg|ttf-ubuntu-font-family}}).\n\nRemember to run {{ic|fc-cache -fv}} to update system font cache. See [[Font configuration]] for more information.\n\n{{hc|~/.config/fontconfig/fonts.conf|<nowiki>\n<?xml version=\"1.0\"?>\n<!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">\n<fontconfig>\n  <match target=\"pattern\">\n    <test qual=\"any\" name=\"family\"><string>monospace</string></test>\n    <edit name=\"family\" mode=\"assign\" binding=\"same\"><string>Ubuntu Mono</string></edit>\n    <!-- For Thunderbird, lowering default font size to 10 for uniformity -->\n    <edit name=\"pixelsize\" mode=\"assign\"><int>10</int></edit>\n  </match>\n</fontconfig>\n</nowiki>}}\n\n=== Migrate profile to another system ===\n\n{{Tip|The [https://addons.thunderbird.net/thunderbird/addon/importexporttools-ng/ ImportExportTools NG] add-on offers an option to export and import a profile folder.}}\n\nBefore you start with Importing or Exporting tasks, backup your complete {{ic|~/.thunderbird}} profile:\n\n $ cp -R ~/.thunderbird ''/to/backup/folder/''\n\nWith migration you just copy your current Thunderbird profile to another PC or a new Thunderbird installation:\n\n# Install Thunderbird on the target PC.\n# Start Thunderbird without doing anything and quit it.\n# Copy the profile content from your backup folder into the target profile folder: {{bc|$ cp -R ''/to/backup/folder/''.thunderbird/<''oldrandomnumber''>.default/* ~/.thunderbird/<''newrandomnumber''>.default/}}\n\n=== Export and import ===\n\nBefore you start with Importing or Exporting tasks, backup your complete {{ic|~/.thunderbird}} profile:\n\n $ cp -R ~/.thunderbird /to/backup/folder/\n\nIf your accounts are broken or you want to join two different Thunderbird installations, you can install [https://addons.thunderbird.net/thunderbird/addon/importexporttools-ng/ ImportExportTools NG] add-on for both Thunderbird installations and following this just export and import all your data to the new installation.\n\n=== Change the default sorting order ===\n\nThunderbird (up to at least 31.4.0-1) sorts mail by date with the oldest on top without any threading. While this can be changed per folder, it is easier to set a sane default instead as described [https://superuser.com/questions/13518/change-the-default-sorting-order-in-thunderbird here].\n\nSet these preferences in the [[#Config editor]]:\n\n mailnews.default_sort_order = 2 (descending)\n mailnews.default_view_flags = 1 (Threaded view)\n\n=== Maildir support ===\n\nThe default message store format is mbox. To enable the use of Maildir, see [[MozillaWiki:Thunderbird/Maildir]]. You basically have to set the following preference in the [[#Config editor]]:\n\n mail.serverDefaultStoreContractID = @mozilla.org/msgstore/maildirstore;1\n\nSome limitations up to at least 31.4.0-1: only the \"tmp\" and \"cur\" directories are supported. The \"new\" directory is completely ignored. The read state of mails are stored in a separate \".msf\" file, so initially all local mail using Maildir will be marked as unread even when located in the \"cur\" directory. It is also possible to change this setting in the regular user interface now: Go to ''Menu > Preferences > General > Indexing > Message Store Type for new accounts'' and choose ''File per message (maildir)''.\n\n=== Spell checking ===\n\nInstall [[hunspell]] and a hunspell language dictionary and restart Thunderbird.\n\nSee the Firefox article for [[Firefox#Firefox does not remember default spell check language|how to set the default spell checking language]].\n\n=== Native notifications ===\n\nMake sure that {{ic|mail.biff.use_system_alert}} in the [[#Config editor]] is set to \"true\" (default). This option means that extensions (such as Gnome Integration) are not needed for these newer versions of Thunderbird.\n\nYou might also need to install {{Pkg|libnotify}}\n\n=== Theming tweaks ===\n\nThunderbird should conform to [[GTK#Themes]] as defined on your system.  However, two tweaks are desirable for full consistency.  These are most beneficial for dark themes.\n\n# To view the body of emails with colors following your theme:\n## Go to ''Menu > Preferences > Preferences''\n## Select the ''Display'' tab\n## Click the ''Colors'' button\n## Check ''Use system colors''\n## Set the option for ''Override the colors specified by the content with my selection above'' to ''Always'' or ''Only with High Contrast themes''\n# To view Lightning calendar with colors following your theme:\n## Go to ''Menu > Preferences > Preferences''\n## Select the ''Calendar'' tab\n## Check ''Optimize colors for accessibility''\n\nFurther customization can be attained by creating and editing a {{ic|userchrome.css}}.  See [[Firefox/Tweaks#General user interface CSS settings]] and [http://kb.mozillazine.org/UserChrome.css Mozillazine's userchrome page].\n\n=== Keyboard bindings ===\n\nThunderbird [https://bugzilla.mozilla.org/show_bug.cgi?id=615957 unfortunately lacks] an easy way to disable single-key bindings, such that pressing e.g. \"a\" on the keyboard will not archive a message. The [https://addons.thunderbird.net/thunderbird/addon/tbkeys-lite/ tbkeys-lite] extension provides a means of editing and deleting such bindings and is available for Thunderbird 68.0 onwards.\n\n=== Use OpenPGP with external GnuPG ===\n\nStarting with v78.1, Thunderbird now ships with integrated OpenPGP support previously provided by Add-Ons like Enigmail. It will offer you to migrate your existing Enigmail keys into Thunderbird upon the first start after the update. If you do not want to store your private keys inside Thunderbird, it is possible to use Thunderbird with an external GnuPG installation in order to keep your keys safe or use a Smartcard.\n# To view any OpenPGP keys stored inside Thunderbird:\n## Go to ''Menu > Tools > OpenPGP Key Manager''\n## Disable ''View > Display Keys from other people'' for better visibility of your own keys. Private keys are displayed in bold.\n## Review present keys and possibly delete them.\n## Import public keys of any external private keys you want to use using ''File > Import public key(s) from file''. See [[GnuPG#Export your public key]].\n# To enable external GnuPG support in Thunderbird:\n## Make sure you have {{Pkg|gnupg}} and the {{Pkg|gpgme}} C library installed and [[GnuPG#List keys|relevant keys available]] or [[GnuPG#Create a key pair|created]].\n## Open the [[#Config editor]]\n## Search for {{ic|mail.openpgp.allow_external_gnupg}} and set its value to {{ic|true}}\n## Go to ''Menu > Account Settings'' and select the account you want to use. Then click ''Manage Identities'' and select the Identity you want to edit. Click ''Edit > End-To-End Encryption > Add Key''. Select ''Use your external key through GnuPG'' and paste your key ID from GnuPG. Note that Key ID is the last 16 characters of your primary key fingerprint.\nRefer to [[MozillaWiki:Thunderbird:OpenPGP:Smartcards]] for further instructions and specialized configurations.\n\n=== Wayland ===\n\nYou can use the following way to start Thunderbird natively on wayland:\n $ MOZ_ENABLE_WAYLAND=1 thunderbird\n\n=== Tor ===\n\nTo route the connection to the server through the Tor network the proxy settings must be set accordingly. \n# Make sure you have {{Pkg|tor}} installed and that the process is running.\n# In Thunderbird go to ''Menu > Preferences > General''. In the ''Network & Disk Space > Connection'' section, click on the ''Settings...'' button. \n# Select ''Manual proxy configuration'', enter ''localhost'' as SOCKS Host and 9050 as Port (9050 is the default; it may be configured differently in /etc/tor/torrc). Select ''Proxy DNS when using SOCKS v5''.\n\n== Troubleshooting ==\n\n=== LDAP Segfault ===\n\nAn [https://bugzilla.mozilla.org/show_bug.cgi?id=292127 LDAP clash (Bugzilla#292127)] arises on systems configured to use it to fetch user information. A possible [https://bugzilla.mozilla.org/show_bug.cgi?id=292127#c7 workaround] consists of renaming the conflicting bundled LDAP library.\n\n=== Error: Incoming server already exists ===\n\nIf you want to reinstall a previously deleted account with the same account data, you might get a popup with \"Incoming server already exists\". See bug [https://bugzilla.mozilla.org/show_bug.cgi?id=1121151 Bugzilla#1121151] for details. Unfortunately, if you get this error you can now only clean reinstall Thunderbird: \n\n1. Make a backup of your current profile:\n\n $ cp -R ~/.thunderbird /to/backup/folder/\n\n2. Export all your Accounts, Calendar and Feeds via an add-on like it is written in ''Export section'' of this Wiki.\n\n3. Close Thunderbird\n\n4. Remove all your data by deleting your current Thunderbird folder {{ic|rm -R ~/.thunderbird/}}.\n\n5. Start Thunderbird\n\n6. Create your mail accounts, feeds and calendars (empty).\n\n7. Install the [https://addons.thunderbird.net/thunderbird/addon/importexporttools-ng/ ImportExportTools NG] add-on\n\n8. Import all your data.\n\n=== Thunderbird UI freezes when receiving a new message ===\n\nIf Thunderbird is configured to show an alert when a new message arrives, or at launch, the lack of a notification daemon may freeze the interface (white screen) for many seconds. You can solve this issue by disabling alerts or installing a [[Desktop notifications#Notification servers|notification server]].\n\n=== LC_TIME environment variable not respected ===\n\nThunderbird should use the {{ic|LC_TIME}} environment variable for localization, but it might not do so in all contexts. Some problems can be mitigated by setting ''Menu'' > ''Preferences'' > ''Preferences'' > ''Advanced'' > ''Date and Time Formatting'' to ''Regional settings locale'', a setting which was introduced in Thunderbird 56.\n\nWith version 60, Gecko started using the [https://cldr.unicode.org/ CLDR project] for localization, including datetime formatting, which uses different settings than most other software based purely on {{ic|LC_TIME}}. There is a [https://bugzilla.mozilla.org/show_bug.cgi?id=1426907 bug report] for this issue that includes workarounds with varying effects. To achieve ISO-8601-formatted dates in Thunderbird and a week beginning on Monday, use {{ic|1=LC_TIME=lt_LT thunderbird}}.\n\nStarting in Thunderbird version 91, one can set a number of preferences to make Thunderbird compliant with ISO-8601. Most programs can be set to ISO-8601 by setting your region locale to {{ic|en_DK}}, but by default Thunderbird ignores regional locale preferences. See [https://support.mozilla.org/en-US/kb/customize-date-time-formats-thunderbird] for details.\n\n=== ''Authentication failure while connecting to server imap.gmail.com'' error when using OAuth2 with G Suite account ===\n\nSometimes Thunderbird fails to log in to G Suite with ''Authentication failure while connecting to server imap.gmail.com'' error. It can be fixed with setting {{ic|general.useragent.compatMode.firefox}} setting to {{ic|true}} in [[#Config editor]] and then passing authentication stage again.\n\n=== Outlook 365 SMTP fails to authenticate with OAuth2 authentication ===\n\nApparently by default, SMTP authentication is disabled for Outlook 365 accounts. Use the Microsoft 365 admin center to enable it. Refer to: [https://docs.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission Enable SMTP AUTH for specific mailboxes]."
                    }
                ]
            },
            "9436": {
                "pageid": 9436,
                "ns": 0,
                "title": "GNOME (Italiano)/Tips and tricks (Italiano)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Desktop environments (Italiano)]]\n[[en:GNOME/Tips and tricks]]\n[[es:GNOME]]\n[[ja:GNOME/\u30d2\u30f3\u30c8\u3068\u30c6\u30af\u30cb\u30c3\u30af]]\n[[pt:GNOME]]\n{{TranslationStatus|GNOME/Tips and tricks|2020-08-08|627430}}\nVedi [[GNOME (Italiano)]] per l'articolo principale.\n\n== Tastiera ==\n\n=== Attiva NumLock all'accesso ===\n\nVedere [[Activating numlock on bootup#GNOME]]\n\n=== Alternative di tasti di scelta rapida ===\n\nMolti tasti di scelta rapida possono essere modificati tramite il menu delle impostazioni di sistema. Ad esempio, per riattivare l'associazione dei tasti show desktop:\n\n'' Impostazioni di sistema ''> '' Tastiera ''> '' Scorciatoie ''> '' Navigazione ''> '' Nascondi tutte le finestre normali ''\n\nTuttavia, alcuni tasti di scelta rapida non possono essere modificati direttamente tramite le impostazioni di sistema. Per cambiare queste chiavi, usa \"dconf-editor\". Un esempio di nota particolare \u00e8 il tasto di scelta rapida {{ic|Alt-}} + {{ic|`}} (il tasto sopra {{ic|Tab}} sui layout di tastiera USA). In GNOME Shell \u00e8 preconfigurato per scorrere le finestre di un'applicazione, tuttavia \u00e8 anche un tasto di scelta rapida usato spesso nell'editor [[Emacs]]. Pu\u00f2 essere cambiato aprendo \"dconf-editor\" e modificando la chiave \"switch-group\" che si trova in {{ic|org.gnome.desktop.wm.keybindings}}.\n\n=== Interruttore da tastiera con comando ===\n\nPer cambiare la scorciatoia da tastiera predefinita '' 'Win' '' + '' 'Spazio' '' in un altro tasto di scelta rapida:\n\nAd esempio, per passare a '' Alt '' + '' Maiusc '': apri Gnome-Tweak-Tool (o Impostazioni tastiera, in GNOME 3.16) e imposta '' Digitazione ''> '' Sorgenti di input solo modificatori ''> '' seleziona Alt-Maiusc ''. Per maggiori informazioni vedere anche il forum [https://bbs.archlinux.org/viewtopic.php?id=152127 thread].\n\n=== Opzioni della tastiera XkbOptions ===\n\nUtilizzando '' 'dconf-editor' '', vai alla chiave denominata {{ic|org.gnome.desktop.input-sources.xkb-options}} e aggiungi le XkbOptions desiderate (es. '' Caps: swapescape '') alla lista.\n\nVedere {{ic|/usr/share/X11/xkb/rules/xorg}} per tutte le XkbOptions e {{ic|/usr/share/X11/xkb/symbols/*}} per le rispettive descrizioni.\n\n{{Nota|Per abilitare la combinazione {{ic|Ctrl+Alt+Backspace}} per terminare Xorg, usa {{Pkg|gnome-tweaks}}. All'interno dello '' 'Strumento Modifica' '', vai a '' Digitazione> Sequenza di tasti per uccidere il server X '' e seleziona l'opzione {{ic|Ctrl+Alt+Backspace}} dal menu a discesa.}}\n\n=== Annulla il binding della chiave Windows ===\n\nPer impostazione predefinita, il \"tasto Windows\" aprir\u00e0 la modalit\u00e0 panoramica della shell GNOME. Puoi svincolare questa chiave eseguendo il comando seguente\n\n $ gsettings set org.gnome.mutter overlay-key 'Foo'\n\n=== Modifica i tasti di scelta rapida Nautilus ===\n\nDalla 3.15 non \u00e8 pi\u00f9 possibile usare il file '' 'accel' '', ma \u00e8 possibile riassociare le chiavi utilizzando {{Pkg|python-nautilus}}. Installa il pacchetto e aggiungi il seguente file:\n\n{{hc|~/.local/share/nautilus-python/extensions/modify_keybindings.py|<nowiki>\nimport os, gi\ngi.require_version('Nautilus', '3.0')\nfrom gi.repository import GObject, Nautilus, Gtk, Gio, GLib\n\ndef rebind():\n    app = Gtk.Application.get_default()\n    # Search for open_accels and nautilus_application_set_accelerators in:\n    #   https://github.com/GNOME/nautilus/blob/master/src/nautilus-files-view.c\n    app.set_accels_for_action( \"win.back\", [\"<alt>Left\", \"BackSpace\"] )\n\n    # if you want to figure out which hotkey belongs to which action try this:\n    # print(f'Alt+Left is: {app.get_actions_for_accel(\"<alt>Left\")}')\n\nclass BackspaceBack(GObject.GObject, Nautilus.LocationWidgetProvider):\n    def __init__(self):\n        pass\n\n    def get_widget(self, uri, window):\n        rebind()\n        return None\n\n}</nowiki>}}\n\nRiavvia nautilus:\n\n $ nautilus -q ; nautilus\n\n== Dischi ==\n\nGNOME fornisce un'utilit\u00e0 del disco per manipolare le impostazioni dell'unit\u00e0 di archiviazione. Queste sono alcune delle sue caratteristiche:\n\n* '' 'Abilita cache di scrittura' '' \u00e8 una funzionalit\u00e0 fornita dalla maggior parte dei dischi rigidi. I dati vengono memorizzati nella cache e allocati in orari prestabiliti per migliorare le prestazioni del sistema. Non consigliato a meno che il computer non abbia una batteria di backup o sia un laptop poich\u00e9 i dati andrebbero persi in caso di interruzione di corrente.\n: '' Impostazioni ''> '' Impostazioni unit\u00e0 ''> '' Scrittura cache ''> '' 'On' ''\n* '' 'Opzioni di montaggio automatico' '' pu\u00f2 montare unit\u00e0 e partizioni basate su GPT - utilizzer\u00e0 le opzioni predefinite consigliate.\n: {{Warning (Italiano)|This setting erases related [[fstab]] entries}}\n: '' Impostazioni partizione ''> '' Modifica opzioni di montaggio ''> '' Opzioni di montaggio automatico ''> '' 'On' ''\n\n== Nascondere le applicazioni dal menu ==\n\n{{Tip (Italiano)|\n* Le voci del desktop possono essere nascoste modificando i file {{ic|.desktop}} stessi. Vedere [[Desktop entries#Hide desktop entries]].\n* {{AUR|Menulibre}} fornisce un editor di menu senza dipendenze GNOME.}}\nUsa l'applicazione '' Menu principale '' (fornita dal pacchetto {{Pkg|alacarte}}) per nascondere tutte le applicazioni che non desideri mostrare nel menu.\n\n== Registrazione screencast ==\n\nGNOME presenta la registrazione screencast incorporata con la combinazione di tasti {{ic|Ctrl+Shift+Alt+r}}. Quando la registrazione \u00e8 in corso, viene visualizzato un cerchio rosso nell'angolo inferiore destro dello schermo. Al termine della registrazione, un file denominato {{ic|Screencast from% d% u-% c.webm}} viene salvato nella directory {{ic|Videos}}. Per poter utilizzare la funzione screencast \u00e8 necessario installare i plugin gst.\n\n{{Nota|Il nome del file di registrazione potrebbe essere tradotto a seconda della lingua del sistema.}}\n\n== Screenshot ==\n\n{{pkg|gnome-screenshot}} per impostazione predefinita salva l'immagine nella directory dell'ultimo salvataggio, che puoi interrogare:\n\n $ gsettings get org.gnome.gnome-screenshot last-save-directory\n\nInvece di usare la directory sopra, puoi impostare una directory di salvataggio automatico. per esempio. per salvare automaticamente gli screenshot nella directory del desktop di {{ic|''user''}}:\n\n $ gsettings set org.gnome.gnome-screenshot auto-save-directory file:///home/''user''/Desktop\n\nControlla la pagina man digitando sul terminale questo comando: {{man|1|gnome-screenshot}} per ulteriori opzioni.\n\n== Ritardo di disconnessione ==\n\nPer eliminare il ritardo predefinito di 60 secondi durante la disconnessione:\n\n $ gsettings set org.gnome.SessionManager logout-prompt false\n\n== Disabilita animazioni ==\n\nPer disabilitare le animazioni della shell (come \"Mostra applicazioni\" e l'animazione wave nell'angolo attivo in alto a sinistra delle attivit\u00e0), esegui:\n\n $ gsettings set org.gnome.desktop.interface enable-animations false\n\noppure tramite {{pkg|gnome-tweaks}}, nella scheda \"Generale\", disattiva \"Animazioni\".\n\n== Supporto display Retina (HiDPI) ==\n\nGNOME ha introdotto il supporto HiDPI nella versione 3.10. Se il display non fornisce le dimensioni corrette dello schermo tramite EDID, ci\u00f2 pu\u00f2 portare a elementi dell'interfaccia utente ridimensionati in modo errato. Come soluzione alternativa \u00e8 possibile aprire \"dconf-editor\" e trovare la chiave {{ic|scaling-factor}} in {{ic|org.gnome.desktop.interface}}. Impostalo su {{ic|1}} per ottenere la scala standard.\n\nVedi anche [[HiDPI]].\n\n== Password e chiavi (chiavi PGP) ==\n\n\u00c8 possibile utilizzare il programma Password e chiavi {{pkg|seahorse}} per creare una chiave PGP in quanto \u00e8 un front-end per [[GnuPG]] e la installa come dipendenza. Questo potrebbe essere utile in futuro (ad esempio se crittografare un file). Crea una chiave come mostrato di seguito (il processo potrebbe richiedere circa 10 minuti):\n\n'' File ''> '' Nuovo ''> '' Chiave PGP ''> '' Nome ''> '' Email ''> '' Impostazioni predefinite ''> '' Passphrase ''.\n\n== Terminale ==\n\n=== Modifica la dimensione del terminale predefinita ===\n\nLa dimensione predefinita di un nuovo terminale pu\u00f2 essere regolata nel menu '' Modifica> Preferenze profilo ''.\n\n=== I nuovi terminali adottano la directory corrente ===\n\nPer impostazione predefinita, i nuovi terminali si aprono nella directory {{ic|$HOME}}. Per avere nuovi terminali, adottare la directory di lavoro corrente: {{ic|source /etc/profile.d/vte.sh}}. Aggiungi il comando alla configurazione della shell per mantenere il comportamento. [https://unix.stackexchange.com/questions/93476/gnome-terminal-keep-track-of-directory-in-new-tab]\n\n=== Riempi il terminale ===\n\nPer riempire il terminale (creare un piccolo bordo invisibile tra i bordi della finestra e il contenuto del terminale) creare il file seguente:\n\n{{hc|~/.config/gtk-3.0/gtk.css|<nowiki>\nvte-terminal,\nterminal-window {\n    padding: 10px 10px 10px 10px;\n    -vte-terminal-inner-border: 10px 10px 10px 10px;\n}</nowiki>}}\n\n=== Disabilita il cursore lampeggiante ===\n\nPer disabilitare il cursore lampeggiante in GNOME 3.8 e versioni successive, utilizzare:\n\n $ gsettings set org.gnome.desktop.interface cursor-blink false\n\nPer disabilitare il cursore lampeggiante sul terminale utilizzare solo:\n\n $ gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$(gsettings get org.gnome.Terminal.ProfilesList default|tr -d \\')/ cursor-blink-mode off\n\nNotare che {{ic|gnome-settings-daemon}}, dal pacchetto con lo stesso nome, deve essere in esecuzione affinch\u00e9 questa e altre modifiche alle impostazioni abbiano effetto nelle applicazioni GNOME - vedere [[GNOME#Configuration]].\n\n=== Disabilita la finestra di conferma alla chiusura del terminale ===\n\nIl Terminale mostrer\u00e0 sempre una finestra di conferma quando si tenta di chiudere la finestra mentre si \u00e8 loggati come root. Per evitare ci\u00f2, eseguire quanto segue:\n \n $ gsettings set org.gnome.Terminal.Legacy.Settings confirm-close false\n\n== Pulsante centrale del mouse ==\n\nPer impostazione predefinita, GNOME 3 disabilita l'emulazione del pulsante centrale del mouse indipendentemente dalle impostazioni [[Xorg]] ('' 'Emulate3Buttons' ''). Per abilitare l'emulazione del pulsante centrale del mouse, utilizzare:\n\n $ gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true\n\n== Abilita pulsanti e icone di menu ==\n\nA partire da GTK 3.10, la chiave GSettings \"menu-have-icons\" \u00e8 stata deprecata. Le icone nei pulsanti e nei menu possono ancora essere abilitate impostando le seguenti sostituzioni:\n \n $ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides \"{'Gtk/ButtonImages': <1>, 'Gtk/MenuImages': <1>}\"\n\n== Usa colori e gradienti personalizzati per lo sfondo del desktop ==\n\nPer utilizzare colori e sfumature personalizzati per lo sfondo del desktop, devi prima impostare un'immagine trasparente oppure un'immagine inesistente come sfondo del desktop. Ad esempio, il comando seguente imposter\u00e0 un'immagine inesistente come sfondo.\n\n $ gsettings set org.gnome.desktop.background picture-uri none\n\nA questo punto, lo sfondo del desktop dovrebbe essere di un colore piatto - l'impostazione predefinita del colore \u00e8 per un blu intenso.\n\nPer un colore piatto diverso \u00e8 necessario modificare solo l'impostazione del colore primario:\n  $ gsettings set org.gnome.desktop.background primary-color <my color>\ndove <my color> \u00e8 un valore esadecimale (come \"ffffff\" per il bianco).\n\nPer un gradiente di colore, dovrai anche cambiare l'impostazione del colore secondario {{ic|org.gnome.desktop.background secondary-color}} e selezionare un tipo di ombreggiatura. Ad esempio, se desideri un gradiente orizzontale, esegui quanto segue:\n\n $ gsettings set org.gnome.desktop.background color-shading-type horizontal\n\nSe stai usando un'immagine trasparente come sfondo, puoi impostare l'opacit\u00e0 eseguendo quanto segue: Se stai usando un'immagine trasparente come sfondo, puoi impostare l'opacit\u00e0 eseguendo quanto segue:\n \n $ gsettings set org.gnome.desktop.background picture-opacity <value>\n\ndove valore \u00e8 un numero compreso tra 1 e 100 (100 per la massima opacit\u00e0).\n\n== Sfondi in transizione ==\n\nGNOME pu\u00f2 passare da sfondi diversi a intervalli di tempo specifici. Questo viene fatto creando un file XML che specifica le immagini da utilizzare e l'intervallo di tempo. Per ulteriori informazioni sulla creazione di tali file, vedere il seguente [https://www.linuxjournal.com/content/create-custom-transitioning-background-your-gnome-228-desktop articolo].\n\nIn alternativa, sono disponibili numerosi strumenti per automatizzare il processo:\n\n* {{App|mkwlppr|Questo script crea file XML che possono agire come sfondi dinamici per GNOME facendo riferimento a pi\u00f9 sfondi.|https://pastebin.com/019G2rCy|vedi [https://pastebin.com/019G2rCy mkwlppr] }}\n\nPer impostare il file XML come sfondo predefinito, vedere [[GNOME (Italiano)#Blocca schermo e sfondo]].\n\n== Sessioni GNOME personalizzate ==\n\n\u00c8 possibile creare sessioni GNOME personalizzate che utilizzano il gestore di sessioni GNOME ma che avviano diversi set di componenti ([[Openbox]] con [[tint2]] invece di GNOME Shell per esempio).\n\nSono necessari due file per una sessione GNOME personalizzata: un file di sessione in {{ic|/usr/share/gnome-session/sessions/}} che definisce i componenti da avviare e un [[desktop entry]] in {{ic|/usr/share/xsessions}} che viene letto dal [[display manager]]. Di seguito viene fornito un file di sessione di esempio:\n{{hc|/usr/share/gnome-session/sessions/gnome-openbox.session|<nowiki>\n[GNOME Session]\nName=GNOME Openbox\nRequiredComponents=openbox;tint2;gnome-settings-daemon;\n</nowiki>}}\n\nE un file desktop di esempio:\n\n{{hc|/usr/share/xsessions/gnome-openbox.desktop|<nowiki>\n[Desktop Entry]\nName=GNOME Openbox\nExec=gnome-session --session=gnome-openbox\n</nowiki>}}\n\n{{Note (Italiano)|GNOME Session richiama i file {{ic|.desktop}} di ciascuno dei componenti da avviare. Se un componente che desideri avviare non fornisce un file {{ic|.desktop}}, devi creare una voce [[desktop entry]] adatta in una directory come {{ic|/usr/local/share/applications }}.}}\n\n== Reindirizza determinati URL a browser web specifici ==\n\nQuesto mostra come utilizzare [[Chromium]] per alcuni tipi di URL mantenendo [[Firefox]] come browser predefinito per tutte le altre attivit\u00e0.\n\nAssicurati che {{pkg|pcre}} sia [[install]], per usare ''pcregrep''.\n\nConfigurazione personalizzata ''xdg-open'':\n\n{{hc|/usr/local/bin/xdg-open|<nowiki>\n#!/bin/bash\nDOMAIN_LIST_FILE=~/'domains.txt'\nOTHER_BROWSER='/usr/bin/chromium-browser'\nBROWSER_OPTIONS='' # Opzionale, per le opzioni della riga di comando passate al browser\nXDG_OPEN='/usr/bin/xdg-open'\nDEFAULT_BROWSER='/usr/bin/firefox'\n\nif echo \"$1\"|pcregrep -q '^https?://'; then\n    matching=0\n    while read domain; do\n\tif echo \"$1\"|pcregrep -q \"^https?://${domain}\"; then\n\t    matching=1\n\t    break\n\tfi\n    done < \"$DOMAIN_LIST_FILE\"\n\n    if [[ $matching -eq 1 ]]; then\n\t\"$OTHER_BROWSER\" $BROWSER_OPTIONS ${*}\n\texit 0\n    fi\n    \n    \"$DEFAULT_BROWSER\" ${*}\n    exit 0\nelse\n    \"$XDG_OPEN\" ${*}\nfi\n</nowiki>}}\n\nConfigura i domini per il reindirizzamento a \"Chromium\":\n\n{{hc|$HOME/domains.txt|<nowiki>\nstackexchange.com\nstackoverflow.com\nsuperuser.com\nwww.youtube.com\ngithub.com\n</nowiki>}}\n\nImposta '' xdg-open web '' come applicazione desktop:\n\n{{hc|$HOME/.local/share/applications/xdg-open-web.desktop|<nowiki>\n[Desktop Entry]\nVersion=1.0\nName=xdg-open web\nGenericName=Web Browser\nExec=xdg-open %u\nTerminal=false\nType=Application\nMimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;\nStartupNotify=true\nCategories=Network;WebBrowser;\nKeywords=web;browser;internet;\nActions=new-window;new-private-window;\n</nowiki>}}\n\n $ update-desktop-database $HOME/.local/share/applications/\n\nImposta '' xdg-open web '' come applicazione Web predefinita nelle impostazioni di GNOME:\nVai su \"Impostazioni GNOME> Dettagli> Applicazioni predefinite\" e imposta \"Web\" su \"xdg-open web\".\n\n== Rimozione pellicola delle miniature dei video in Nautilus ==\n\nNautilus (File) sovrappone i fori della pellicola / l'effetto striscia di pellicola sulle miniature dei video a partire da Gnome 3.12. Per rimuovere o sovrascrivere questo effetto, la variabile d'ambiente {{ic|G_RESOURCE_OVERLAYS}} pu\u00f2 essere utilizzata per fare riferimento al percorso di una risorsa compilata (in questo caso {{ic|filmholes.png}}) e specificare il percorso per l'overlay pertinente . Questa variabile d'ambiente \u00e8 disponibile solo da GLib 2.50 e non avr\u00e0 effetto sulle versioni precedenti.\n\nEstrai {{ic|filmholes.png}} da Nautilus.\n\n gresource extract /usr/bin/nautilus /org/gnome/nautilus/icons/filmholes.png > filmholes.png\n\nModifica {{ic|filmholes.png}} utilizzando il tuo editor preferito e rimuovi l'effetto pellicola dall'immagine, lasciando intatte la trasparenza e le dimensioni, quindi sovrascrivendo l'immagine estratta.\n\nCopia o sposta l'immagine estratta dove desiderato, ad esempio {{ic|/ usr / share / icons /}} e modifica {{ic|~ / .profile}}, aggiungendo la seguente esportazione, cambiando {{ic|/ usr / condividi / icons /}} come necessario per la posizione in cui hai inserito il file.\n\n export G_RESOURCE_OVERLAYS=/org/gnome/nautilus/icons/filmholes.png=/usr/share/icons/filmholes.png\n\nSe {{Pkg|ffmpegthumbnailer}} \u00e8 stato installato come dipendenza per un altro file manager che potrebbe generare miniature, la riga {{ic|Exec}} in {{ic|/usr/share/thumbnailers/ffmpegthumbnailer.thumbnailer}} dovrebbe essere modificato rimuovendo il flag {{ic|-f}}.\n\nPer assicurarti che non rimangano miniature che potrebbero gi\u00e0 avere l'effetto pellicola incorporato, rimuovi la cache delle miniature.\n\n rm -r ~/.cache/thumbnails\n\nEsci e torna alla tua sessione e non dovresti pi\u00f9 avere l'effetto fori della pellicola / striscia di pellicola sulle tue miniature in Nautilus.\n\n== Impedisci al software GNOME di scaricare gli aggiornamenti ==\n\nPer impostazione predefinita {{pkg|gnome-software}} scaricher\u00e0 i pacchetti aggiornati dai repository di Arch Linux. Questo forza il software GNOME ad aggiornare automaticamente gli elenchi dei pacchetti per \"pacman\". Questo \u00e8 l'equivalente di {{ic|pacman -Sy}}. Se l'utente ignora il prompt di aggiornamento del software GNOME, ma installa un nuovo pacchetto, ci\u00f2 risulter\u00e0 in [[partial upgrade]]s, che sono '' 'non supportati' ''. Per impedire al software GNOME di aggiornare gli elenchi dei pacchetti, impostare la seguente impostazione dconf:\n\n $ gsettings set org.gnome.software download-updates false\n\n== Aumenta il volume oltre il 100% ==\n\nInstalla l'estensione [https://extensions.gnome.org/extension/858/volume-mixer/ volume mixer]. Quindi utilizzare il mouse per scorrere sopra l'icona del volume nel pannello superiore per aumentare il volume oltre il 100%.\n\n== Regola il volume a passi pi\u00f9 piccoli ==\n\nPer impostazione predefinita, premendo i tasti del volume della tastiera si regola il volume del 6%. Se si desiderano passi pi\u00f9 piccoli, la scorciatoia '' Maiusc + Tasto volume su / gi\u00f9 '' regola il volume in passi del 2%.\n\nInoltre, a partire da GNOME 3.36, \u00e8 ora possibile regolare direttamente il passo del volume tramite un'impostazione di dconf. Ad esempio, per impostare l'incremento del volume al 2%, eseguire quanto segue:\n\n $ gsettings set org.gnome.settings-daemon.plugins.media-keys volume-step 2\n\n== Mostra la percentuale del volume del suono accanto all'icona del pannello superiore ==\n\nInstalla l'estensione [https://github.com/maoschanz/sound-percentage-gs-extension sound percentage] per visualizzare il livello del volume di output corrente accanto all'icona del suono nel pannello superiore.\n\n== Sospensione ibrida sull'azione di chiusura del coperchio del laptop ==\n\nSeguire i comandi seguenti per attivare [[Power management/Suspend and hibernate|Hybrid Sleep]] quando si chiude il coperchio del laptop. Leggi [https://www.reddit.com/r/gnome/comments/97688y/can_gnome_trigger_hybrid_sleep_on_laptop_lid/ qui] per ulteriori informazioni.\n\n    mkdir --parents /etc/systemd/logind.conf.d\n    printf '%s\\n' '[Login]' 'HandleLidSwitch=hybrid-sleep' >/etc/systemd/logind.conf.d/50-local.conf\n    systemctl restart systemd-logind.conf\n\n== Avvia su GPU discreta ==\n\nInstalla {{AUR|switcheroo-control}} o {{AUR|switcheroo-control-git}}.\n[[start]] e [[enable]] {{ic|switcheroo-control.service}}\n\n== Elenco finestre ==\n\nSe ti piace avere un elenco di attivit\u00e0 in basso ma non ti piace il colore nero predefinito di questa estensione, copia la sua directory:\n\n cp -r /usr/share/gnome-shell/extensions/window-list@gnome-shell-extensions.gcampax.github.com/ ~/.local/share/gnome-shell/extensions/\n\ne modifica il CSS a tuo piacimento. Ad esempio, per renderlo trasparente modifica {{ic|stylesheet.css}} in questo modo:\n\n .bottom-panel {\n   background: transparent;\n\n .window-button > StWidget,\n .window-picker-toggle > StWidget {\n   background-color: transparent;\n\n== Consultare inoltre ==\n\n* [[GNOME (Italiano)|Gnome]]"
                    }
                ]
            },
            "9629": {
                "pageid": 9629,
                "ns": 0,
                "title": "Firefox (\u7b80\u4f53\u4e2d\u6587)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Web browser (\u7b80\u4f53\u4e2d\u6587)]]\n[[Category:Mozilla (\u7b80\u4f53\u4e2d\u6587)]]\n[[de:Firefox]]\n[[en:Firefox]]\n[[es:Firefox]]\n[[ja:Firefox]]\n[[ru:Firefox]]\n[[zh-hant:Firefox]]\n{{Translateme (\u7b80\u4f53\u4e2d\u6587)|English page has seen updates since last translation.}}\n{{TranslationStatus (\u7b80\u4f53\u4e2d\u6587)|Firefox|2020-11-07|640905}}\n{{Related articles start (\u7b80\u4f53\u4e2d\u6587)}}\n{{Related|Firefox/Tweaks}}\n{{Related|Firefox/Profile on RAM}}\n{{Related|Firefox/Privacy}}\n{{Related2|Browser Plugins (\u7b80\u4f53\u4e2d\u6587)|\u6d4f\u89c8\u5668\u63d2\u4ef6}}\n{{Related2|Chromium (\u7b80\u4f53\u4e2d\u6587)|Chromium}}\n{{Related|Opera}}\n{{Related articles end}}\n[https://www.mozilla.org/firefox Firefox]\uff08\u706b\u72d0\uff09\u662f[https://www.mozilla.org Mozilla]\uff08\u8c0b\u667a\u7f51\u7edc\uff09\u51fa\u54c1\u7684\u4e00\u6b3e\u56fe\u5f62\u754c\u9762\u7f51\u7edc\u6d4f\u89c8\u5668\u3002\n\n== \u5b89\u88c5 ==\n\n[[\u5b89\u88c5]] \u8f6f\u4ef6\u5305 {{Pkg|firefox}}.\u4e2d\u6587\u754c\u9762\u8bf7\u5b89\u88c5\u7b80\u4f53\u4e2d\u6587\u8bed\u8a00\u5305 {{pkg|firefox-i18n-zh-cn}}\u3002\n\n\u5176\u5b83\u53d8\u79cd\uff1a\n\n* {{App|Firefox Developer Edition|\u5f00\u53d1\u8005\u7248\u672c|https://www.mozilla.org/firefox/developer/|{{Pkg|firefox-developer-edition}}}}\n* {{App|Firefox Extended Support Release|\u957f\u671f\u652f\u6301\u7248\u672c|https://www.mozilla.org/firefox/organizations/|{{AUR|firefox-esr}} or {{AUR|firefox-esr-bin}}}}\n* {{App|Firefox Beta|\u524d\u6cbf\u7248\u672c|https://www.mozilla.org/firefox/channel/desktop/#beta|{{AUR|firefox-beta-bin}}}}\n* {{App|Firefox Nightly|\u6bcf\u65e5\u6784\u5efa\u7684\u6d4b\u8bd5\u7248\u672c([https://developer.mozilla.org/Firefox/Experimental_features experimental features])|https://www.mozilla.org/firefox/channel/desktop/#nightly|{{AUR|firefox-nightly}}}}  \n* {{App|Firefox KDE|OpenSUSE \u6253\u8fc7\u8865\u4e01\u7684\u3001\u5177\u6709\u66f4\u597d\u7684 KDE \u96c6\u6210\u7684 Firefox \u7248\u672c\u3002|https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox|{{AUR|firefox-kde-opensuse}}}}\n\n* \u9664\u4e86\u4e0d\u540c\u7684\u7f16\u8bd1\u6e20\u9053\uff0c\u6709\u4e9b\u7279\u6b8a\u7684\u5206\u652f\u7248\u672c\u63d0\u4f9b\u4e86\u4e00\u4e9b\u7279\u6b8a\u529f\u80fd\uff0c\u53c2\u8003 [[List of applications#Gecko-based]].\n\n\u9664\u4e86\u82f1\u6587\u4ee5\u5916\uff0cFirefox\u8fd8\u6709\u5176\u4ed6\u8bed\u8a00\uff0c\u8bed\u8a00\u5957\u4ef6\u540d\u79f0\u901a\u5e38\u53eb\u505a {{ic|firefox-i18n-''languagecode''}} (\u5176\u4e2d\uff0c {{ic|''languagecode''}} \u8868\u793a\u8bed\u8a00\u4ee3\u53f7\uff0c\u50cf\u662f '''de'''\u3001'''ja'''\u3001'''fr'''\u7b49)\u3002 {{Pkg|firefox}} \u7684\u53ef\u7528\u8bed\u8a00\u5217\u8868\u53ef\u4ee5\u67e5\u770b [https://archlinux.org/packages/extra/any/firefox-i18n/ firefox-i18n]\uff1b{{Pkg|firefox-developer-edition}} \u7684\u53ef\u7528\u8bed\u8a00\u5217\u8868\u53ef\u4ee5\u67e5\u770b[https://archlinux.org/packages/community/any/firefox-developer-edition-i18n/ firefox-developer-edition-i18n]\uff1b{{AUR|firefox-nightly}} \u7684\u53ef\u7528\u8bed\u8a00\u5217\u8868\u53ef\u4ee5\u67e5\u770b[https://aur.archlinux.org/packages/?K=firefox-nightly- firefox-nightly-]\u3002\n\n{{\u6ce8\u610f|1=''-nightly'' \u548c ''-developer-edition'' \u56e0\u4e3a\u4f1a\u9891\u7e41\u66f4\u65b0\u7ffb\u8bd1\uff0c\u53ef\u80fd\u5bfc\u81f4\u5d29\u6e83\uff0c\u6240\u4ee5\u505c\u7528\u8bed\u8a00\u5957\u4ef6\u3002 \u4f60\u53ef\u80fd\u9700\u8981\u5728 {{ic|about:config}} \u4e2d\u8bbe\u7f6e {{ic|intl.locale.requested}} \u6765\u5f3a\u5236\u53d8\u66f4\u7528\u6237\u754c\u9762\u8bed\u8a00 [https://www.reddit.com/r/firefox/comments/lx3dp9/how_to_change_interface_language/gpovlsp/?context=8&depth=9]\u3002}}\n\n== \u9644\u52a0\u7ec4\u4ef6 ==\n\n''\u53c2\u89c1\uff1a [[Browser plugins (\u7b80\u4f53\u4e2d\u6587)|\u6d4f\u89c8\u5668\u63d2\u4ef6]]''\n\nFirefox \u5e7f\u4e3a\u4eba\u77e5\u7684\u4e00\u70b9\u662f\u5b83\u7684\u5927\u91cf\u7684\u9644\u52a0\u7ec4\u4ef6\uff0c\u53ef\u4ee5\u7528\u6765\u6dfb\u52a0\u65b0\u529f\u80fd\u6216\u66f4\u6539 Firefox \u4e2d\u5df2\u6709\u529f\u80fd\u3002\u4f60\u53ef\u4ee5\u5728 Firefox \u4e2d\u7684\u201c\u9644\u52a0\u7ec4\u4ef6\u7ba1\u7406\u5668\u201d\u4e2d\u67e5\u627e\u65b0\u9644\u52a0\u7ec4\u4ef6\u6216\u7ba1\u7406\u5df2\u5b89\u88c5\u7684\u9644\u52a0\u7ec4\u4ef6\u3002\n\n\u60f3\u77e5\u9053\u5982\u4f55\u6dfb\u52a0\u65b0\u7684\u9644\u52a0\u7ec4\u4ef6\u6216\u67e5\u770b\u9644\u52a0\u7ec4\u4ef6\u5217\u8868\uff0c\u8bf7\u67e5\u770b [[Browser extensions]]\u3002\n\n=== \u589e\u52a0\u641c\u7d22\u5f15\u64ce ===\n\n\u5c06\u641c\u7d22\u9875\u5efa\u7acb\u4e00\u4e2a\u4e66\u7b7e\uff0c\u641c\u7d22\u7684\u5173\u952e\u8bcd\u7528{{ic|%s}}\u66ff\u4ee3\uff0c\u5c31\u50cf\u8fd9\u6837\uff1a\n\n Location:\n https://duckduckgo.com/html/?q=%s\n Keyword:\n d\n \n\u4e5f\u53ef\u4ee5\u901a\u8fc7\u6269\u5c55\u7a0b\u5e8f\u6dfb\u52a0\u641c\u7d22\u5f15\u64ce\u5230Firefox\uff0c\u6709\u5173\u53ef\u7528\u641c\u7d22\u5de5\u5177\u548c\u5f15\u64ce\u7684\u5217\u8868\uff0c\u8bf7\u53c2\u89c1 [https://addons.mozilla.org/firefox/search-tools/ \u8fd9\u4e2a\u9875\u9762]\u3002\n\n\u53ef\u4ee5\u5728\u4ee5\u4e0b\u7f51\u5740\u627e\u5230\u5927\u91cf\u641c\u7d22\u5f15\u64ce\u5217\u8868\uff1a[https://mycroftproject.com/ Mycroft Project].\n\n\u4f60\u4e5f\u53ef\u4ee5\u7528 [https://firefox.maltekraus.de/extensions/add-to-search-bar add-to-searchbar] \u6269\u5c55\u6765\u628a\u641c\u7d22\u5f15\u64ce\u6dfb\u52a0\u5230\u6d4f\u89c8\u5668\u641c\u7d22\u6846\u4e2d\uff0c\u53ea\u9700\u53f3\u952e\u5355\u51fb\u8be5\u7f51\u7ad9\u7684\u641c\u7d22\u5b57\u6bb5\uff0c\u7136\u540e\u9009\u62e9 ''Add to Search Bar...''\n\n==== firefox-extension-arch-search ====\n\n{{AUR|firefox-extension-arch-search}}\u4e3aFirefox\u641c\u7d22\u6846\u6dfb\u52a0Arch\u76f8\u5173\u5185\u5bb9\u7684\u641c\u7d22\u5f15\u64ce\uff08AUR\u3001wiki\u3001\u8bba\u575b\u2026\u2026)\uff1a\n\n== \u63d2\u4ef6 ==\n\nFirefox 85 \u4e2d\u79fb\u9664\u4e86\u5bf9\u6240\u6709\u63d2\u4ef6\u7684\u652f\u6301\uff0c\u5305\u62ec Flash Player\u3002[https://support.mozilla.org/kb/npapi-plugins][https://support.mozilla.org/kb/end-support-adobe-flash]\n\n== \u914d\u7f6e ==\n\nFirefox\u63d0\u4f9b\u4e0d\u5c11\u914d\u7f6e\u9879\u3002\u8981\u67e5\u770b\u6216\u8005\u914d\u7f6e\u5b83\u4eec\uff0c\u5728Firefox\u5730\u5740\u680f\u4e2d\u8f93\u5165\uff1a\n\n  about:config\n\n\u6ce8\u610f\uff1a\u4e00\u65e6\u5728{{ic|about:config}}\u91cc\u6539\u53d8\u4e86\u4e00\u4e9b\u914d\u7f6e\u9879\u7684\u503c\uff0c\u5b83\u4eec\u5c31\u4f1a\u7acb\u523b\u5f71\u54cd\u7528\u6237\u5f53\u524d\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u5176\u4e2d\u4e00\u4e9b\u914d\u7f6e\u9879\u53ef\u80fd\u901a\u8fc7 Firefox Sync \u8de8\u8bbe\u5907\u540c\u6b65\u3002\n\n\u4f46\u4e0d\u662f\u6240\u6709\u5728{{ic|about:config}}\u4e2d\u4fee\u6539\u7684\u914d\u7f6e\u9879\u90fd\u53ef\u4ee5\u901a\u8fc7 Firefox Sync \u540c\u6b65\uff0c\u8981\u77e5\u9053\u5230\u5e95\u54ea\u4e00\u4e9b\u914d\u7f6e\u9879\u4f1a\u88ab\u540c\u6b65\uff0c\u53ea\u9700\u5728{{ic|about:config}}\u4e2d\u68c0\u7d22{{ic|services.sync.prefs}}\u5373\u53ef\u4e86\u89e3\u3002\n\u540c\u65f6\uff0c\u4f60\u4e5f\u53ef\u4ee5\u521b\u5efa\u65b0\u7684\u5e03\u5c14\u503c\u9879\u6765\u540c\u6b65\u5176\u4ed6\u914d\u7f6e\u9879\u548c\u7b2c\u4e09\u65b9\u914d\u7f6e\u9879(\u8be6\u89c1[https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Firefox_Sync/Syncing_custom_preferences Mozilla\u5b98\u65b9\u6587\u6863]{{Dead link (\u7b80\u4f53\u4e2d\u6587)|2021|11|10|status=404}})\u3002\n\u5173\u4e8e\u5bf9\u6269\u5c55\u7a0b\u5e8f NoScript \u7684\u767d\u540d\u5355\u8fdb\u884c\u540c\u6b65\u7684\u65b9\u6cd5\uff0c\u8bf7\u4f7f\u7528\u8fd9\u4e2a\u914d\u7f6e\u9879\uff1a\n\n services.sync.prefs.sync.capability.policy.maonoscript.sites\n\nNoScript \u7684\u5176\u4ed6\u504f\u597d\u8bbe\u7f6e\u4e5f\u53ef\u4ee5\u7528 Firefox Sync \u540c\u6b65\uff0c\u53ea\u9700\u5c06\u914d\u7f6e\u9879{{ic|noscript.sync.enabled}}\u8bbe\u7f6e\u4e3a{{ic|true}}\u3002\n\n=== \u8bbe\u7f6e\u7684\u5b58\u50a8\u4f4d\u7f6e ===\n\nFirefox \u5728\u7528\u6237\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55\u4e2d\u7684 {{ic|prefs.js}} \u6587\u4ef6\u5b58\u50a8\u7528\u6237\u914d\u7f6e\uff0c\u7528\u6237\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55\u901a\u5e38\u4f4d\u4e8e {{ic|~/.mozilla/firefox/xxxxxxxx.default/}}\u3002\n\nFirefox\u8fd8\u5141\u8bb8\u4f60\u7528{{ic|user.js}}\u8fdb\u884c\u4e00\u4e9b\u914d\u7f6e: [http://kb.mozillazine.org/User.js_file user.js] \u540c\u6837\u5b58\u653e\u5728\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55\u3002 {{ic|user.js}} \u7684\u914d\u7f6e\u4f1a\u8986\u76d6 {{ic|prefs.js}} \u7684\u914d\u7f6e\u3002 {{ic|user.js}} \u6587\u4ef6\u53ea\u4f1a\u5728\u542f\u52a8\u7684\u65f6\u5019\u52a0\u8f7d\uff0c\u6240\u4ee5\u4f60\u53ef\u4ee5\u5728\u8fd0\u884c\u65f6\u4f7f\u7528 {{ic|about:config}} \u8fdb\u884c\u6d4b\u8bd5\uff0c\u7136\u540e\u518d\u4fee\u6539 {{ic|user.js}}\u3002 {{ic|user.js}}\u6587\u4ef6\u4fdd\u5b58\u5728\u914d\u7f6e\u6587\u4ef6\u6587\u4ef6\u5939\u4e2d\uff08\u901a\u5e38\u662f{{ic|~/.mozilla/firefox/xxxxxxx.default/}}\uff09\u3002\u63a8\u8350\u60f3\u8981\u4fee\u6539\u8fd9\u4e2a\u6587\u4ef6\u7684\u4eba\u770b\u4e00\u770b[https://github.com/pyllyukko/user.js custom user.js]\uff0c\u5b83\u5bf9\u8ffd\u6c42\u9690\u79c1\u548c\u5b89\u5168\u610f\u8bc6\u9ad8\u7684\u7528\u6237\u5f88\u662f\u6709\u7528\u3002\n\n{{ic|user.js}}\u6709\u4e00\u4e2a\u7f3a\u70b9\u5c31\u662f\u5b83\u4e0d\u80fd\u5728\u7cfb\u7edf\u8303\u56f4\u5185\u751f\u6548\uff0c\u800c\u4e14{{ic|user.js}}\u4e5f\u4e0d\u80fd\u7528\u4e8e\u9884\u914d\u7f6e\uff0c\u56e0\u4e3a{{ic|user.js}}\u6240\u5728\u7684\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55\u662f\u5728\u9996\u6b21\u542f\u52a8\u6d4f\u89c8\u5668\u4e4b\u540e\u624d\u521b\u5efa\u7684\u3002\u89e3\u51b3\u6b64\u95ee\u9898\u7684\u4e00\u4e2a\u65b9\u6cd5\u662f\u5148\u8ba9 Firefox\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u7136\u540e\u5728\u5173\u95ed\u5b83\u4e4b\u540e\uff0c\u628a\u5df2\u7ecf\u521b\u5efa\u597d\u7684\u914d\u7f6e\u6587\u4ef6\u6587\u4ef6\u5939\u7684\u5185\u5bb9\u590d\u5236\u8fdb\u53bb\u3002\uff08\u8be6\u89c1[https://support.mozilla.org/en-US/kb/back-and-restore-information-firefox-profiles#w_restoring-a-profile-backup Mozilla\u5b98\u65b9\u6587\u6863]\uff09\n\n\u6709\u65f6\u53ef\u80fd\u9700\u8981\u9501\u5b9a\u67d0\u4e9b\u914d\u7f6e\u9879\uff0c\u5bf9\u4e00\u4e9b\u7528\u6237\u6765\u8bb2\u5b9e\u4e43\u4e00\u4e2a\u975e\u5e38\u6709\u7528\u7684\u529f\u80fd\uff08\u7279\u522b\u662f\u8fdb\u884c\u5b9a\u5236\u90e8\u7f72\u4e4b\u65f6\uff09\u3002\u8981\u521b\u5efa\u7cfb\u7edf\u8303\u56f4\u7684\u914d\u7f6e\uff0c\u6309\u7167 [http://kb.mozillazine.org/Locking_preferences Locking preferences]\u7684\u6b65\u9aa4\u64cd\u4f5c\u5427\uff01\n\n1.\u521b\u5efa{{ic|/usr/lib/firefox/defaults/pref/local-settings.js}}\u6587\u4ef6\uff1a\n\n  pref\uff08\u201cgeneral.config.obscure_value\u201d\uff0c0\uff09;\n  pref\uff08\u201cgeneral.config.filename\u201d\uff0c\u201cmozilla.cfg\u201d\uff09;\n\n2.\u521b\u5efa/usr/lib/firefox/mozilla.cfg\uff08\u5728\u8fd9\u91cc\u5199\u5165\u914d\u7f6e\u9879\uff09\uff1a\n\n //\n //...your settings...\n // e.g to disable Pocket, uncomment the following line\n // lockPref(\"browser.pocket.enabled\", false);\n\n\u8bf7\u6ce8\u610f\uff0c\u6587\u4ef6\u7b2c\u4e00\u884c\u5fc5\u987b\u5305\u542b{{ic|//}}\uff1b\u6b64\u5916\uff0c\u5176\u8bed\u6cd5\u4e0euser.js\u7684\u8bed\u6cd5\u5f88\u76f8\u4f3c\u3002\n\n=== \u591a\u5a92\u4f53\u64ad\u653e ===\n\nFirefox\u7528[[FFmpeg]]\u6765\u64ad\u653eHTML5\u4e2d{{ic|<audio>}}\u548c{{ic|<video>}}\u6807\u7b7e\u5185\u7684\u591a\u5a92\u4f53\u5185\u5bb9\uff0c\u6240\u4ee5\u8981\u653e\u591a\u5a92\u4f53\u7684\u8bdd\u3002\u4f60\u8981\u5148\u5b89\u88c5{{Pkg|ffmpeg}}\u3002\n\n\u4f60\u53ef\u4ee5\u5230[http://demo.nimius.net/video_test/ \u8fd9\u4e2a\u7528\u6765\u6d4b\u8bd5\u89c6\u9891\u64ad\u653e\u7684\u7f51\u9875]{{Dead link (\u7b80\u4f53\u4e2d\u6587)|2022|09|17|status=domain name not resolved}} \u548c [https://hpr.dogphilosophy.net/test/ \u8fd9\u4e2a\u7528\u6765\u6d4b\u8bd5\u97f3\u9891\u64ad\u653e\u7684\u7f51\u9875] \u6765\u770b\u770b\u4f60\u7684Firefox\u662f\u5426\u652f\u6301\u591a\u5a92\u4f53\u64ad\u653e\uff0c\u4ee5\u53ca\u5982\u679c\u652f\u6301\uff0c\u652f\u6301\u4e86\u54ea\u4e00\u4e9b\u683c\u5f0f\u3002\n\nFirefox\u7528[[PulseAudio]] \u6765\u64ad\u653e\u97f3\u9891. \u6240\u4ee5\u5982\u679c\u8981\u8ba9Firefox\u53d1\u51fa\u58f0\u97f3\uff0c\u4f60\u8981\u5b89\u88c5 {{Pkg|pulseaudio}} \u8fd9\u4e2a\u8f6f\u4ef6\u5305.\n\n\u5982\u679c\u4f60\u4e0d\u7528 [[PulseAudio]]\uff0c \u4e5f\u53ef\u4ee5\u6362\u7528 [[Advanced Linux Sound Architecture#PulseAudio compatibility|apulse]]. \u4e3a\u6b64\u4f60\u5fc5\u987b\u8981\u628a {{ic|/dev/snd/}} \u4eceFirefox\u6c99\u7bb1\u4e2d\u6392\u9664\uff0c\u5177\u4f53\u65b9\u6cd5\u662f\u628a{{ic|/dev/snd/}}\u6dfb\u52a0\u5230{{ic|about:config}}\u4e2d\u7684{{ic|security.sandbox.content.write_path_whitelist}}\u914d\u7f6e\u9879\u91cc\u53bb\uff08\u6ce8\uff1a\u82e5\u6b64\u914d\u7f6e\u9879\u7684\u503c\u5305\u542b\u591a\u4e2a\u5185\u5bb9\uff0c\u8bf7\u628a\u5b83\u4eec\u7528\u9017\u53f7\u5206\u9694\u3002\uff09\n\n{{\u6ce8\u610f|{{ic|/dev/snd/}}\u91cc\u6700\u540e\u90a3\u4e2a\u659c\u6760{{ic|/}}\u4e00\u5b9a\u8981\u52a0\uff0c\u5426\u5219\u4f1a\u62a5\u201c\u6743\u9650\u4e0d\u8db3\u201d\u7684\u9519\u8bef}}\n\n\u5047\u5982\u4f60\u5728\u7528apulse\u65f6\u53d1\u73b0\u6ca1\u6709\u58f0\u97f3, \u8bd5\u7740\u628a {{ic|16}} \u52a0\u8fdb {{ic|about:config}}\u9875\u4e2d\u7684{{ic|security.sandbox.content.syscall_whitelist}} \u91cc\u5934\u3002\n\n{{\u6ce8\u610f|\u5982\u679c\u6ca1\u6709\u6b63\u786e\u914d\u7f6e\u97f3\u9891\uff0cFirefox \u53ef\u80fd\u65e0\u6cd5\u64ad\u653e\u89c6\u9891\u3002\u5982\u679c\u4f60\u6253\u7b97\u4f7f\u7528 [[PipeWire]] and [[WirePlumber]], \u8bf7\u786e\u4fdd\u5b83\u4eec\u90fd\u80fd\u6b63\u5e38\u5de5\u4f5c\u3002}}\n\n==== HTML5 DRM/Widevine ====\n\nWidevine\u662fNetflix\uff0cAmazon Prime Video\u548c\u5176\u4ed6\u516c\u53f8\u7528\u6765\u4fdd\u62a4\u5176\u89c6\u9891\u5185\u5bb9\u7684\u6570\u5b57\u7248\u6743\u7ba1\u7406\u5de5\u5177\u3002\u4f60\u53ef\u4ee5\u5728\u201c\u9996\u9009\u9879>\u5e38\u89c4>\u6570\u5b57\u7248\u6743\u7ba1\u7406\uff08DRM\uff09\u5185\u5bb9\u201d\u4e2d\u628a\u5b83\u542f\u7528\u3002 \u5982\u679c\u5728\u7981\u7528\u6b64\u8bbe\u7f6e\u7684\u60c5\u51b5\u4e0b\u8bbf\u95ee\u542f\u7528\u4e86Widevine\u7684\u9875\u9762\uff0c\u5219Firefox\u5c06\u5728\u5730\u5740\u680f\u4e0b\u65b9\u663e\u793a\u63d0\u793a\uff0c\u8be2\u95ee\u662f\u5426\u5141\u8bb8\u5b89\u88c5DRM\u3002\u9009\u62e9\u5141\u8bb8\u5e76\u7b49\u5f85\u5b89\u88c5\u8fc7\u7a0b\u5b8c\u6210\u4e4b\u540e\uff0c\u5c31\u53ef\u4ee5\u5728\u88abWidevine\u4fdd\u62a4\u7684\u7ad9\u70b9\u89c2\u770b\u89c6\u9891\u4e86\u3002\n\nFirefox\u53ea\u80fd\u4f7f\u7528 Widevine \u64ad\u653e720p\u5206\u8fa8\u7387\uff08\u6216\u8005\u66f4\u4f4e\uff09\u7684\u89c6\u9891\uff0c\u56e0\u4e3a\u6ca1\u6709\u4f7f\u7528 [https://bugzilla.mozilla.org/show_bug.cgi?id=1700815 \u786c\u4ef6 DRM \u64ad\u653e]\u3002Widevine\u8981\u6c42\u4f60\u5728\u89c2\u770b\u4fdd\u62a4\u7684\u89c6\u9891\u5185\u5bb9\u65f6\uff0c\u4e0d\u8981\u5f00\u542f\u9690\u79c1\u6d4f\u89c8\u6a21\u5f0f\uff0c\u5426\u5219\u89c6\u9891\u53ef\u80fd\u4e0d\u4f1a\u6b63\u5e38\u64ad\u653e\u3002\n\n==== \u201c\u6253\u5f00\u65b9\u5f0f\u201d\uff08Open With ...\uff09\u6269\u5c55\u7a0b\u5e8f ====\n\n# \u5b89\u88c5 [https://addons.mozilla.org/firefox/addon/open-with/ Open With] \u6269\u5c55\u7a0b\u5e8f.\n# \u8fdb\u5165 ''\u9644\u52a0\u7ec4\u4ef6 > Open With > \u9996\u9009\u9879''.\n# \u6309\u7167\u8bf4\u660e\u5728\u7cfb\u7edf\u4e2d\u5b89\u88c5\u6587\u4ef6\u5e76\u6d4b\u8bd5\u5b89\u88c5\u3002 \n# \u5355\u51fb ''Add browser''.\n# \u5728\u5bf9\u8bdd\u6846\u4e2d\uff0c\u8f93\u5165\u6b64\u83dc\u5355\u9879\u7684\u540d\u79f0\u548c\u7528\u4e8e\u542f\u52a8\u64ad\u653e\u5668\u7684\u547d\u4ee4 (e.g. [[mpv|/usr/bin/mpv]]).\n## (\u9009\u505a) \u5411\u64ad\u653e\u5668\u6dfb\u52a0\u6240\u9700\u7684\u53c2\u6570 (\u6bd4\u65b9\u8bf4\uff0c\u5728[[mpv]]\u4e2d\uff0c\u4f60\u53ef\u80fd\u9700\u8981 {{ic|--force-window --ytdl}} )\n# \u53f3\u952e\u6216\u8bbf\u95ee\u5305\u542b\u89c6\u9891\u7684\u94fe\u63a5. \u4ece\u201c\u6253\u5f00\u65b9\u5f0f\u201d\u83dc\u5355\u4e2d\u9009\u62e9\u65b0\u521b\u5efa\u7684\u6761\u76ee\uff0c\u5982\u679c\u652f\u6301\u8be5\u7ad9\u70b9\uff0c\u5219\u64ad\u653e\u5668\u5c06\u6309\u9884\u671f\u65b9\u5f0f\u6253\u5f00\u3002\n\n\u53ef\u4ee5\u4f7f\u7528\u7c7b\u4f3c\u65b9\u6cd5\u6765\u5173\u8054\u89c6\u9891\u4e0b\u8f7d\u5668\uff0c\u4f8b\u5982 ''youtube-dl''.\n\n==== \u89c6\u9891\u786c\u89e3 ====\n\n\u4f7f\u7528VA-API\u8fdb\u884c\u89c6\u9891\u786c\u89e3\u5df2\u7ecf\u5728 [[Wayland]] (\u8be6\u89c1 [https://mastransky.wordpress.com/2020/06/03/firefox-on-fedora-finally-gets-va-api-on-wayland/ Firefox gets VA-API on Wayland]) \u548c X.org \u4e0a\u53ef\u7528\u4e86 (\u8be6\u89c1 [https://bugzilla.mozilla.org/show_bug.cgi?id=1619523 bugzilla X11 implement VAAPI] \u548c[https://www.phoronix.com/scan.php?page=news_item&px=Firefox-80-VA-API-X11 Phoronix news VA API X11]).\n\n{{\u6ce8\u610f|\u65e2\u4f7f\u7528[[AMDGPU]]\u4e5f\u4f7f\u7528 {{pkg|linux-hardened}} \u5185\u6838\u7684\u7528\u6237\u53ef\u80fd\u9700\u8981\u7528 {{ic|1=CONFIG_CHECKPOINT_RESTORE=y}}\u9009\u9879rebuild\u4e00\u4e0b ''linux-hardened''\uff0c\u56e0\u4e3a {{pkg|mesa}} [https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/mesa/mesa-9999.ebuild \u9700\u8981 kcmp syscall].}}\n\n\u4e3aFirefox\u542f\u7528 VA-API :\n\n# \u786e\u4fdd\u4f60\u7684\u663e\u5361\u6b63\u786e\u914d\u7f6e\u4e86 VA-API:\n#* \u5982\u679c\u9700\u8981\uff0c\u4ece [[Hardware video acceleration]] \u67e5\u770b\u9a8c\u8bc1\u548c\u5b89\u88c5 VA-API \u9a71\u52a8\u7684\u6b65\u9aa4.\n# \u4f7f\u7528\u652f\u6301\u786c\u89e3\u7684\u5408\u6210\u5668, \u4f8b\u5982:\n#* WebRender \u6765\u81ea\u65b0\u7684 Servo \u6d4f\u89c8\u5668\u5f15\u64ce [[Firefox/Tweaks#Enable WebRender compositor]]{{Broken section link (\u7b80\u4f53\u4e2d\u6587)}}. \u8fd9\u5728GNOME\u6216\u8005\u5176\u4ed6\u4e00\u4e9b\u684c\u9762\u73af\u5883\u9ed8\u8ba4\u542f\u7528 [https://mastransky.wordpress.com/2021/01/10/firefox-were-finally-getting-hw-acceleration-on-linux/]. \u786e\u4fdd\u4f60\u6ca1\u6709\u8fd0\u884cSoftware WebRender\uff0c\u56e0\u4e3a\u4ece2021\u5e748\u6708\u8d77\uff0c\u5b83\u5c06\u65e0\u6cd5\u5de5\u4f5c\u3002 [https://bugzilla.mozilla.org/show_bug.cgi?id=1723540#c1].\n#* Gecko's \u4f20\u7edf OpenGL \u540e\u7aef,  [[Firefox/Tweaks#Enable Legacy OpenGL compositor]]{{Broken section link (\u7b80\u4f53\u4e2d\u6587)}}.\n# \u5728 {{ic|about:config}}\u91cc\u8bbe\u7f6e\u4e0b\u9762\u7684flags:\n#* \u8bbe\u7f6e{{ic|media.ffmpeg.vaapi.enabled}} \u4e3a {{ic|true}} \u542f\u7528 VA-API with FFmpeg.\n#* \u8bbe\u7f6e{{ic|media.ffvpx.enabled}} \u4e3a {{ic|false}} \u7981\u7528 VP8/VP9 \u7684\u5185\u90e8\u89e3\u7801\u5668. \u8fd9\u662f\u5fc5\u8981\u7684\uff0c\u867d\u7136[https://bugzilla.mozilla.org/show_bug.cgi?id=1660336 this bug] being fixed [https://bugzilla.mozilla.org/show_bug.cgi?id=1720363#c6][https://bugzilla.mozilla.org/show_bug.cgi?id=1683808].\n#* \u8bbe\u7f6e{{ic|media.navigator.mediadatadecoder_vpx_enabled}} \u4e3a {{ic|true}} \u542f\u7528WebRTC\u7684 VA-API \u786c\u4ef6\u89e3\u7801 [https://bugzilla.mozilla.org/show_bug.cgi?id=1709009].\n#* \u8bbe\u7f6e{{ic|media.rdd-vpx.enabled}} \u4e3a {{ic|false}} \u7981\u7528VP8/VP9\u7684remote data decoder \u5904\u7406 . Firefox \u4f1a\u5c1d\u8bd5\u4e3aVP8/VP9\u4f7f\u7528 RDD \u5904\u7406\u4f46\u662f RDD \u6c99\u76d2\u4f1a\u7981\u7528 VA-API \u8bbf\u95ee [https://bugzilla.mozilla.org/show_bug.cgi?id=1673184]. \u7981\u7528VP8/VP9\u8fdb\u7a0b\u7684\u8fdc\u7a0b\u6570\u636e\u89e3\u7801\u5668\u610f\u5473\u7740VA-API\u5c06\u6539\u5728content process\u4e2d\u8fd0\u884c\u3002\u6700\u597d\u7684\u89e3\u51b3\u529e\u6cd5\u662f\u5c06VA-API\u79fb\u5230GPU\u8fdb\u7a0b\u4e2d\u3002 [https://bugzilla.mozilla.org/show_bug.cgi?id=1683808].\n#** \u53e6\u4e00\u4e2a\u89e3\u51b3\u529e\u6cd5\u662f\u901a\u8fc7\u8bbe\u7f6e {{ic|media.rdd-process.enabled}} \u4e3a {{ic|false}}\u5b8c\u5168\u7981\u7528 RDD \u5904\u7406 , \u800c\u4e0d\u662f\u50cf\u4e0a\u9762\u90a3\u6837\u53ea\u7981\u7528 VP8/VP9.\n#* \u5728Intel\u4e0a, \u6709\u4e9b\u65f6\u5019VA-API \u53ef\u80fd\u5728Intel iHD \u9a71\u52a8 {{Pkg|intel-media-driver}}\u4e0a\u4e0d\u5de5\u4f5c. \u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 Intel i965 \u9a71\u52a8 {{Pkg|libva-intel-driver}}\u89e3\u51b3. \u8fd9\u4e2a\u65b9\u6cd5\u4e0d\u5bf9\u53ea\u652f\u6301{{Pkg|intel-media-driver}}\u9a71\u52a8\u7684Intel Iris Xe \u663e\u5361\u9002\u7528, \u552f\u4e00\u7684\u65b9\u6cd5\u5c31\u662f\u7b49\u5f85 Firefox\u5b9e\u73b0X11/Wayland\u7684GPU\u5904\u7406  (planned FF94) [https://bugzilla.mozilla.org/show_bug.cgi?id=1619585#c42] [https://bugzilla.mozilla.org/show_bug.cgi?id=1619585#c62] [https://bugzilla.mozilla.org/show_bug.cgi?id=1619585#c63].\n#** \u4f5c\u4e3a\u6700\u540e\u7684\u624b\u6bb5, content process sandbox \u53ef\u4ee5\u88ab\u7981\u7528. \u7136\u800c, \u8fd9\u4f1a\u9020\u6210\u4e00\u4e2a\u4e25\u91cd\u7684\u5b89\u5168\u9690\u60a3\uff0c\u5bfc\u81f4\u5bf9\u653b\u51fb\u8005\u7684\u4fdd\u62a4\u5931\u6548\u3002. \u5efa\u8bae\u5c06\u6c99\u7bb1\u8bbe\u7f6e\u4fdd\u6301\u4e3a\u9ed8\u8ba4\u72b6\u6001 [https://bugzilla.mozilla.org/show_bug.cgi?id=1683808#c26]. \u8981\u7981\u7528\u5185\u5bb9\u6c99\u7bb1\uff0c\u8bf7\u8bbe\u7f6e {{ic|security.sandbox.content.level}} \u4e3a {{ic|0}} [https://bugzilla.mozilla.org/show_bug.cgi?id=1720363#c9].\n# \u4ee5\u4e0b\u5217[[\u73af\u5883\u53d8\u91cf]] \u542f\u52a8Firefox:\n#* \u5bf9\u4e8eWayland, \u4f7f\u7528 {{ic|1=MOZ_ENABLE_WAYLAND=1}}, \u53c2\u7167 [[#Wayland \u652f\u6301]].\n#* \u5bf9\u4e8eX.org, \u4f7f\u7528 {{ic|1=MOZ_X11_EGL=1}} \u6216\u8005 \u5728{{ic|about:config}}\u91cc\u8bbe\u7f6e {{ic|gfx.x11-egl.force-enabled}} \u4e3a {{ic|true}} \u548c {{ic|gfx.x11-egl.force-disabled}} \u4e3a {{ic|false}} .\n\n{{Warning (\u7b80\u4f53\u4e2d\u6587)|\u7981\u7528content process sandbox\u4f1a\u5bfc\u81f4\u5b89\u5168\u98ce\u9669. \u5728\u672a\u6765\uff0cVA-API\u5c06\u88ab\u8f6c\u79fb\u5230GPU\u8fdb\u7a0b\u4e2d\uff0c\u56e0\u6b64\u5b83\u88ab\u9002\u5f53\u5730\u6c99\u76d2\u5316.}}\n\n{{Note|1=<nowiki/>\n* \u5c3d\u7ba1 NVIDIA \u7684\u4e13\u6709\u9a71\u52a8\u7a0b\u5e8f\u4e0d\u652f\u6301 VA-API\uff0c\u4f46\u8f83\u65b0\u7684\u7248\u672c\u652f\u6301 DMA-BUF\u3002\u4f7f\u7528 {{AUR|libva-nvidia-driver}} \u53ef\u4ee5\u5728 NVIDIA \u4e0a\u4f7f\u7528 [[CUDA]] \u8fdb\u884c\u786c\u4ef6\u89c6\u9891\u89e3\u7801\u3002\u6709\u5173\u5fc5\u8981\u7684\u73af\u5883\u53d8\u91cf\u548c {{ic|about:config}} \u66f4\u6539\u7684\u6587\u6863\uff0c\u8bf7\u53c2\u9605 [https://github.com/elFarto/nvidia-vaapi-driver/#firefox GitHub \u9879\u76ee]\u3002\n* \u7531\u4e8e\u76ee\u524d VDPAU \u548c {{Pkg|libva-vdpau-driver}} \u5747\u4e0d\u652f\u6301 DMA-BUF\uff0c\u56e0\u6b64\u8be5\u8f6f\u4ef6\u5305\u5c06\u65e0\u6cd5\u5728 Firefox \u4e2d\u542f\u7528\u786c\u4ef6\u89c6\u9891\u52a0\u901f\u3002 \u4e8b\u5b9e\u4e0a\uff0c\u4ece Firefox 102 \u5f00\u59cb\uff0c\u5b89\u88c5\u5e76\u8bbe\u7f6e {{ic|media.ffmpeg.vaapi.enabled}} \u5c06\u4f7f Firefox \u5728\u542f\u52a8\u65f6\u5d29\u6e83\u3002\n* \u76ee\u524d\uff0cFirefox \u7684 VA-API \u5b9e\u73b0\u53ef\u4ee5\u89e3\u7801 H.264/AVC\u3001VP8 & VP9\u3001AV1 \u7f16\u7801\u7684\u89c6\u9891\u3002 AV1 \u652f\u6301\u9700\u8981 FireFox 98+ [https://bugzilla.mozilla.org/show_bug.cgi?id=1745225]\u3002\u7531\u4e8e Firefox \u9ed8\u8ba4\u5173\u95ed AV1 \u652f\u6301\uff0c\u56e0\u6b64\u4f7f\u7528\u652f\u6301 AV1 \u786c\u4ef6\u89e3\u7801\u663e\u5361\u7684\u7528\u6237\u9700\u8981\u5728 {{ic|about:config}} \u4e2d\u8bbe\u7f6e {{ic|media.av1.enabled}} \u4e3a {{ic|true}} \u4ee5\u5f00\u542f AV1 \u652f\u6301\u3002\n* \u591a GPU \u7cfb\u7edf\u5e94\u8be5\u53ef\u4ee5\u6839\u636e[https://bugzilla.mozilla.org/show_bug.cgi?id=1588904#c36 \u8fd9\u4e2a\u5df2\u89e3\u51b3\u7684\u95ee\u9898]\u81ea\u52a8\u4e3a VA-API \u9009\u62e9\u5408\u9002\u7684 GPU\u3002\n* {{Pkg|linux-hardened}} \u4e0b\u7684 [[AMDGPU]] \u7528\u6237\u53ef\u80fd\u9700\u8981\u624b\u52a8\u7f16\u8bd1\u5f00\u542f {{ic|1=CONFIG_CHECKPOINT_RESTORE=y}} \u9009\u9879\u7684 ''linux-hardened''\uff0c\u56e0\u4e3a {{Pkg|mesa}} [https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/mesa/mesa-9999.ebuild \u9700\u8981 kcmp \u7cfb\u7edf\u8c03\u7528]\u3002 \u5728 [https://bugzilla.mozilla.org/show_bug.cgi?id=1624743 \u8fd9\u4e2abug] \u88ab\u4fee\u590d\u540e\uff0c\u5c31\u4e0d\u518d\u9700\u8981\u624b\u52a8\u64cd\u4f5c\u4e86\u3002\n}}\n\n\u60a8\u53ef\u4ee5\u901a\u8fc7\u68c0\u67e5 Firefox \u7684 VA-API \u65e5\u5fd7\u6765\u9a8c\u8bc1 VA-API \u7684\u4f7f\u7528\u60c5\u51b5\uff1a\u4f7f\u7528[[\u73af\u5883\u53d8\u91cf]] {{ic|1=MOZ_LOG=\"PlatformDecoderModule:5\"}} \u542f\u52a8 Firefox\uff0c\u7528\u6d4f\u89c8\u5668\u64ad\u653e\u4e00\u6bb5\u89c6\u9891\uff0c\u5e76\u68c0\u67e5\u65e5\u5fd7\u8f93\u51fa(\u641c\u7d22\u5b57\u7b26\u4e32\"VA-API\")\u3002\u8bf7\u6ce8\u610f\u8fd9\u4e9b\u65e5\u5fd7\uff0c\u56e0\u4e3a\u5b83\u4eec\u53ef\u4ee5\u8868\u660e\u524d\u9762\u63cf\u8ff0\u7684\u4e24\u4e2a\u53ef\u80fd\u7684\u5408\u6210\u5668\uff08OpenGL\u6216WebRender\uff09\u4e2d\u7a76\u7adf\u54ea\u4e00\u4e2a\u88ab\u4f7f\u7528\u4e86\u3002\n\n{{\u63d0\u793a|\n* Intel GPU\u7528\u6237,  {{pkg|intel-gpu-tools}} \u4e2d\u7684{{ic|intel_gpu_top}}\u53ef\u4ee5\u88ab\u7528\u6765\u5728\u64ad\u653e\u89c6\u9891\u65f6\u76d1\u63a7GPU\u6d3b\u52a8\u3002\n* \u8981\u5728YouTube\u4e2d\u4f7f\u7528\u786c\u4ef6\u89e3\u7801\uff0c\u786c\u4ef6\u5fc5\u987b\u652f\u6301\u6240\u4f7f\u7528\u7684\u89c6\u9891\u7f16\u89e3\u7801\u5668\u3002 \u60a8\u7684GPU\u652f\u6301\u7684\u914d\u7f6e\u6587\u4ef6\u53ef\u4ee5\u901a\u8fc7 [[Hardware video acceleration#Verifying VA-API]]\u627e\u5230\uff1bYouTube \u4f7f\u7528\u7684\u89e3\u7801\u5668\u7531[https://addons.mozilla.org/firefox/addon/h264ify/ h264ify] \u6216 [https://addons.mozilla.org/firefox/addon/enhanced-h264ify/ enhanced-h264ify] \u6269\u5c55\u6240\u63a7\u5236. \u6216\u8005\uff0c\u4f60\u4e5f\u53ef\u4ee5\u5b89\u88c5{{AUR|firefox-h264ify}}\u3002\n}}\n\n=== \u62fc\u5199\u68c0\u67e5\u5b57\u5178 ===\n\nFirefox \u53ef\u4ee5\u4f7f\u7528\u7cfb\u7edf\u7ea7\u522b\u5b89\u88c5\u7684 [[Hunspell]]  \u5b57\u5178\u4ee5\u53ca\u901a\u8fc7\u5176\u81ea\u5df1\u7684\u6269\u5c55\u7cfb\u7edf\u5b89\u88c5\u7684\u5b57\u5178\u3002\n\n\u9009\u4e2d\u4efb\u610f\u6587\u672c\uff0c\u53f3\u952e\u4e3a\u8be5\u8bed\u8a00\u6dfb\u52a0\u5b57\u5178\uff0c\u91cd\u542f\u6d4f\u89c8\u5668\u5373\u53ef\u3002\n\n\u8981\u542f\u7528\u7279\u5b9a\u8bed\u8a00\u7684\u62fc\u5199\u68c0\u67e5\uff0c\u8bf7\u53f3\u952e\u5355\u51fb\u4efb\u4f55\u6587\u672c\u5b57\u6bb5\u5e76\u9009\u4e2d\u68c0\u67e5\u62fc\u5199\u6846\u3002\u8981\u9009\u62e9\u4e00\u79cd\u8bed\u8a00\u8fdb\u884c\u62fc\u5199\u68c0\u67e5\uff0c\u60a8\u5fc5\u987b\u518d\u6b21\u53f3\u952e\u5355\u51fb\u5e76\u4ece\u8bed\u8a00\u5b50\u83dc\u5355\u4e2d\u9009\u62e9\u60a8\u7684\u8bed\u8a00\u3002\n\n\u5982\u679c\u60a8\u7684\u9ed8\u8ba4\u8bed\u8a00\u9009\u62e9\u4e0d\u9002\u7528, \u53c2\u89c1 [[#Firefox does not remember default spell check language]].\n\n==== \u4f7f\u7528\u7cfb\u7edf\u7ea7\u522b\u7684 Hunspell \u5b57\u5178 ====\n\n\u4ece [[official repositories|\u5b98\u65b9\u8f6f\u4ef6\u4ed3\u5e93]]\u5b89\u88c5\u8f6f\u4ef6\u5305{{Pkg|hunspell}}\u548c\u5176\u5b83\u8bed\u8a00\u4f8b\u5982 {{Pkg|hunspell-fr}} (\u6cd5\u8bed) or {{Pkg|hunspell-he}} (\u5e0c\u4f2f\u6765\u8bed)\u3002\n\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cFirefox \u4f1a\u5728 {{ic|/usr/lib/firefox/dictionaries}} \u751f\u6210\u6307\u5411\u5230 hunspell \u5b57\u5178\u7684\u8f6f\u94fe\u63a5\u3002\u5982\u679c\u4f60\u4e0d\u60f3\u4f7f\u7528\u6240\u6709\u8bed\u8a00\u7684\u5b57\u5178\uff0c\u53ef\u4ee5\u5220\u6389\u4e00\u90e8\u5206\u3002\u6ce8\u610f\uff0cFirefox \u5347\u7ea7\u53ef\u80fd\u4f1a\u8fd8\u539f\u8fd9\u4e9b\u8f6f\u94fe\u63a5\u3002\n\n==== \u4f7f\u7528\u6d4f\u89c8\u5668\u62d3\u5c55 ====\n\n\u8981\u83b7\u53d6\u66f4\u591a\u8bed\u8a00\u7684\u652f\u6301, \u53ef\u4ee5\u53f3\u952e\u5355\u51fb\u4efb\u4f55\u6587\u672c\u5b57\u6bb5, \u70b9\u51fb ''\u8bed\u8a00->\u6dfb\u52a0\u5b57\u5178...'' \u5e76\u4e14\u9009\u62e9\u4f60\u60f3\u8981\u4ece [https://addons.mozilla.org/firefox/language-tools/ \u8bcd\u5178\u548c\u8bed\u8a00\u5305\u5217\u8868] \u4e2d\u5b89\u88c5\u7684\u5b57\u5178\u3002\n\n=== Gnome Keyring \u6574\u5408 ===\n\n\u8981\u6574\u5408 Firefox \u4e0e [[GNOME Keyring]]\uff0c\u5b89\u88c5 Javascript \u5b9e\u73b0\u7684 {{AUR|mozilla-extension-gnome-keyring-git}}{{Broken package link (\u7b80\u4f53\u4e2d\u6587)|package not found}}\u3002\u8981\u8ba9 firefox-gnome-keyring \u4f7f\u7528\u4f60\u7684\u767b\u5f55 keychain\uff0c\u5728 {{ic|about:config}} \u4e2d\u8bbe\u7f6e extensions.gnome-keyring.keyringName \u4e3a \"login\" (\u4e0d\u542b\u5f15\u53f7)\u3002\u6ce8\u610f \"login\" \u7684\u9996\u5b57\u6bcd\u5e94\u4e3a\u5c0f\u5199\u3002\n\n=== KDE \u6574\u5408 ===\n\n{{\u8b66\u544a|1=\u7531\u4e8eGTK3\u66f4\u65b0\u52303.20.x\uff0c\u6709\u4e00\u4e9b\u4e3b\u9898\u4e0d\u80fd\u6b63\u5e38\u4f7f\u7528\uff08\u5305\u62ecBreeze\uff0c\u63a8\u8350\u7684\u4e00\u4e2aKDE\u548cGTK\u95f4\u7684\u6574\u5408\u4e3b\u9898\uff09\u3002 \u5176\u4e2d\u7684\u4e00\u4e9b\u95ee\u9898\u662f\u6eda\u52a8\u6761\u4e0d\u53ef\u89c1\uff0c\u4e0d\u9009\u4e2d\u7684\u6587\u672c\u9ad8\u4eae\u663e\u793a\uff0c\u9690\u85cf\u7684\u590d\u9009\u6846\u7b49\u7b49\u3002 \u82e5\u8981\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u5b89\u88c5kde-gtk-config\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf\u8bbe\u7f6e - >\u5e94\u7528\u7a0b\u5e8f\u6837\u5f0f - > GNOME\u5e94\u7528\u7a0b\u5e8f\u6837\u5f0f\uff08GTK\uff09\uff0c\u7136\u540e\u5728\u9009\u62e9GTK3\u4e3b\u9898\u4e0b\u62c9\u83dc\u5355\u4e2d\u9009\u62e9\u9ed8\u8ba4\u4e3b\u9898\u3002 \u6709\u5173\u4e0a\u8ff0\u517c\u5bb9\u6027\u95ee\u9898\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u8bbf\u95eeArch Forums\u4e2d\u7684\u6709\u5173GTK3 3.20 \u66f4\u65b0\u7684\u5e16\u5b50\u3002}}\n\n* \u5728 Firefox \u4e2d\u4f7f\u7528 GTK \u5916\u89c2\u3002\u5b89\u88c5 {{Pkg|breeze-gtk}} \u548c {{Pkg|kde-gtk-config}}\u3002\u7136\u540e\u8fdb\u5165\u7cfb\u7edf\u8bbe\u7f6e -> \u7a0b\u5e8f\u5916\u89c2 -> GTK\uff0cGTK2/GTK3 \u4e3b\u9898\u9009\u62e9\u4e3a Breeze\uff0c\u52fe\u9009\u663e\u793a GTK \u6309\u94ae\u7684\u56fe\u6807\u3002\n\n* \u53ef\u4ee5\u4f7f\u7528 AUR \u4e2d\u7684 {{AUR|firefox-kde-opensuse}} Firefox \u53d8\u79cd\u6765\u96c6\u6210 KDE \u7684\u6587\u4ef6\u5173\u8054\u7cfb\u7edf\u548c\u6587\u4ef6\u5bf9\u8bdd\u6846\u3002\n\n* \u8981\u5728 Firefox 64 \u6216\u66f4\u9ad8\u7248\u672c\u4e2d\u4f7f\u7528 KDE \u6587\u4ef6\u9009\u62e9\u548c\u6253\u5370\u5bf9\u8bdd\u6846\uff0c\u8bf7\u5b89\u88c5 {{Pkg|xdg-desktop-portal}} \u548c {{Pkg|xdg-desktop-portal-kde}}\uff0c\u7136\u540e\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\u4e4b\u4e00\uff1a\n** \u5728 {{ic|about:config}} \u4e2d\u628a {{ic|widget.use-xdg-desktop-portal.mime-handler}} \u8bbe\u7f6e\u4e3a {{ic|1}}\u3002\u4f60\u4e5f\u53ef\u4ee5\u628a {{ic|widget.use-xdg-desktop-portal.file-picker}} \u4ece {{ic|2}} \u6539\u4e3a {{ic|1}}\u3002\n** \u4f7f\u7528[[\u73af\u5883\u53d8\u91cf]] {{ic|1=GTK_USE_PORTAL=1}} \u542f\u52a8 Firefox\u3002\n* \u4e3a\u4e86\u4e0e KDE MIME \u7c7b\u578b\u7cfb\u7edf\u3001\u4ee3\u7406\u548c\u6587\u4ef6\u5bf9\u8bdd\u6846\u96c6\u6210\uff0c\u53ef\u4ee5\u4f7f\u7528 AUR \u4e2d\u6253\u4e86 OpenSUSE \u8865\u4e01\u7684 {{AUR|firefox-kde-opensuse}} \u53d8\u4f53\u3002 \u521b\u5efa\u7b26\u53f7\u94fe\u63a5 {{ic|~/.local/share/applications/mimeapps.list}} \uff08Firefox \u5df2\u653e\u5f03\u4f7f\u7528\uff09\u6307\u5411 MIME \u6570\u636e\u5e93 {{ic|~/.config/mimeapps.list}} \u6765\u5b9e\u73b0\u4e0e MIME \u7c7b\u578b\u7684\u96c6\u6210\u3002 \u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u770b [[XDG MIME Applications#mimeapps.list]]\u3002\n* \u6269\u5c55/\u9644\u52a0\u7ec4\u4ef6\u53ef\u4ee5\u63d0\u4f9b\u989d\u5916\u7684\u96c6\u6210\uff0c\u4f8b\u5982\uff1a\n** [[Plasma]] \u4e2d\u7684\u6d4f\u89c8\u5668\u96c6\u6210\uff1a\u9700\u8981 {{Pkg|plasma-browser-integration}} \u548c [https://addons.mozilla.org/firefox/addon/plasma-integration/ Plasma Integration \u63d2\u4ef6]\u3002\n\n::{{\u63d0\u793a|\u8981\u9632\u6b62 Media Player \u5c0f\u90e8\u4ef6\u6216\u6258\u76d8\u56fe\u6807\u4e2d\u51fa\u73b0\u91cd\u590d\u6761\u76ee\uff0c\u8bf7\u5c06 {{ic|media.hardwaremediakeys.enabled}} \u8bbe\u7f6e\u4e3a {{ic|false}}\u3002 \u8fd9\u4f1a\u7981\u7528\u6765\u81ea Firefox \u7684\u5a92\u4f53\u6761\u76ee\uff0c\u5e76\u4e14\u53ea\u4f7f\u7528\u6765\u81ea Plasma \u96c6\u6210\u9644\u52a0\u7ec4\u4ef6\u7684\u5a92\u4f53\u6761\u76ee\u3002\n\n== \u5c0f\u6280\u5de7 ==\n\n\u5982\u679c\u53ea\u662f\u4e00\u822c\u7684\u6539\u8fdb\u53ef\u4ee5\u53c2\u770b[[Firefox/Tweaks]], \u9690\u79c1\u4e0a\u7684\u6539\u8fdb\u5219\u53ef\u4ee5\u53c2\u770b [[Firefox/Privacy]].\n\n=== \u6697\u9ed1\u4e3b\u9898 ===\n\nFirefox \u5e94\u8be5\u4f1a\u9075\u5faa\u60a8\u7684 GTK \u4e3b\u9898\u8bbe\u7f6e\u548c\u64cd\u4f5c\u7cfb\u7edf\u7ea7\u522b\u7684\u6df1\u8272\u5916\u89c2\u8bbe\u7f6e\uff08\u5982GNOME/KDE\u8bbe\u7f6e\u7684\u5916\u89c2\u90e8\u5206\uff09\u3002\u5982\u679c\u540e\u8005\u4e0d\u8d77\u4f5c\u7528\uff0c\u8bf7\u786e\u4fdd\u5b89\u88c5\u4e86\u5408\u9002\u7684 {{Pkg|xdg-desktop-portal}} \u5305\u3002\n\n\u4ece Firefox 68 \u5f00\u59cb\uff0c\u4f60\u53ef\u4ee5\u8ba9\u6240\u6709\u7684 Firefox \u754c\u9762\u751a\u81f3\u5176\u4ed6\u7f51\u7ad9\u90fd\u9075\u5faa\u6697\u9ed1\u4e3b\u9898\uff0c\u800c\u4e0d\u7ba1\u7cfb\u7edf GTK \u4e3b\u9898\u548c Firefox \u4e3b\u9898\u3002\u65b9\u6cd5\u662f\u5728{{ic|about:config}}\u4e2d\u8bbe\u5b9a {{ic|browser.in-content.dark-mode}} \u4e3a{{ic|true}} \u5e76\u628a{{ic|ui.systemUsesDarkTheme}} \u8bbe\u5b9a\u4e3a {{ic|1}}  [https://bugzilla.mozilla.org/show_bug.cgi?id=1488384#c23].\n\n\u5982\u679c\u4f60\u4f7f\u7528\u4e86\u6697\u9ed1 [[GTK]]\u4e3b\u9898 (\u6bd4\u65b9\u8bf4\uff1aArc Dark), \u5efa\u8bae\u4f60\u7528\u4eae\u8272\u4e3b\u9898\u6253\u5f00 Firefox (\u6bd4\u65b9\u8bf4\uff1aAdwaita)\u3002 \u53c2\u770b [[GTK#Themes]] \u548c [[Firefox/Tweaks#Unreadable input fields with dark GTK themes]] \u6765\u4e86\u89e3\u66f4\u591a\u3002\n\n\u4ece Firefox 100 \u5f00\u59cb\uff0c\u53ef\u4ee5\u4f7f\u7528 {{ic|layout.css.prefers-color-scheme.content-override}} \u8fdb\u4e00\u6b65\u63a7\u5236\u9009\u62e9\u52a0\u5165\u7684\u7f51\u9875\u7684\u6df1\u8272\u4e3b\u9898\uff08\u4f7f\u7528 CSS \u5a92\u4f53\u67e5\u8be2 [https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme prefers-color-scheme]\uff09\u548c Firefox \u81ea\u5df1\u7684\u5185\u5bb9\u9875\u9762\u3002\u5c06\u5176\u8bbe\u7f6e\u4e3a {{ic|3}} \u5c06\u9075\u5faa\u6d4f\u89c8\u5668\u4e3b\u9898\uff0c\u5c06\u5176\u8bbe\u7f6e\u4e3a {{ic|2}} \u5c06\u9075\u5faa\u7cfb\u7edf\u8303\u56f4\u7684\u6697\u6a21\u5f0f\u9996\u9009\u9879\uff08\u5982\u4e0a {{ic|ui.systemUsesDarkTheme}}\uff0c\u5982\u679c\u7528\u6237\u672a\u66f4\u6539\u6697\u6a21\u5f0f\u9996\u9009\u9879\u6216\u7cfb\u7edf\u66f4\u6539\u6697\u6a21\u5f0f\u9996\u9009\u9879\u5219\u9ed8\u8ba4\u4e3a {{ic|0}} \u4e0d\u652f\u6301\u7cfb\u7edf\u8303\u56f4\u7684\u6697\u6a21\u5f0f\u9996\u9009\u9879\uff09\uff0c\u800c {{ic|1}} \u548c {{ic|0}} \u5c06\u59cb\u7ec8\u5206\u522b\u5f3a\u5236\u4f7f\u7528\u4eae\u6a21\u5f0f\u548c\u6697\u6a21\u5f0f\u3002\u6b64\u8bbe\u7f6e\u4e5f\u53ef\u4ee5\u901a\u8fc7 Firefox \u7684\u7528\u6237\u8bbe\u7f6e\u5728 ''\u5e38\u89c4'' > ''\u8bed\u8a00\u548c\u5916\u89c2'' > ''\u7f51\u7ad9\u5916\u89c2'' \u4e0b\u8bbf\u95ee\u3002\n\n=== \u5e27\u7387 ===\n\n\u5982\u679cFirefox\u65e0\u6cd5\u81ea\u52a8\u68c0\u6d4b\u5230\u6b63\u786e\u7684\u5e27\u7387\uff0c\u5219\u9ed8\u8ba4\u4e3a60 fps\u3002 \u8981\u624b\u52a8\u66f4\u6b63\uff0c\u8bf7\u5c06{{ic|layout.frame_rate}}\u8bbe\u7f6e\u4e3a\u663e\u793a\u5668\u7684\u5237\u65b0\u7387\uff08\u4f8b\u5982144 Hz\uff09\u3002\n\n=== \u9650\u5236\u5185\u5b58\u4f7f\u7528 ===\n\n\u9632\u6b62\u9875\u9762\u6ee5\u7528\u5185\u5b58 (\u6216\u8005 [[Wikipedia:Out_of_memory|OOM]]), \u6211\u4eec\u53ef\u4ee5\u7528 [[Firejail]] \u7684 {{ic|rlimit-as}} \u9009\u9879.\n\n=== \u65b0\u6807\u7b7e\u9875\u7684\u4f4d\u7f6e ===\n\n\u8981\u63a7\u5236\u65b0\u6807\u7b7e\u7684\u663e\u793a\u4f4d\u7f6e\uff08\u76f8\u5bf9\u6216\u7edd\u5bf9\uff09\uff0c\u8bf7\u4f7f\u7528 {{ic|browser.tabs.insertAfterCurrent}} \u548c {{ic|browser.tabs.insertRelatedAfterCurrent}}\u3002\u8be6\u89c1 [https://support.mozilla.org/en/questions/1229062] \u6765\u4e86\u89e3\u66f4\u591a\u4fe1\u606f.\n\n=== \u7f51\u9875\u622a\u56fe ===\n\n\u60a8\u53ef\u4ee5\u4f7f\u7528''\u622a\u5c4f\u6309\u94ae''\u8fdb\u884c\u622a\u5c4f\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u7ec4\u5408\u6309\u952e {{ic|Ctrl+Shift+s}}\uff0c\u6216\u8005\u4e5f\u53ef\u4ee5\u76f4\u63a5\u5728\u7f51\u9875\u4e2d\u53f3\u952e->''\u622a\u56fe(T)''\u3002\n''\u622a\u5c4f\u6309\u94ae''\u53ef\u4ece\u81ea\u5b9a\u4e49\u83dc\u5355\u4e2d\uff08\u5c31\u662f\u70b9\u5730\u5740\u680f\u53f3\u8fb9\u90a3\u4e09\u4e2a\u6a2a\u6746\u6309\u94ae\u5f39\u51fa\u6765\u7684\u83dc\u5355\uff09\u7684 ''\u66f4\u591a\u5de5\u5177'' > ''\u5b9a\u5236\u5de5\u5177\u680f...''\u4e2d\u6dfb\u52a0\u5230\u6d4f\u89c8\u5668\u5de5\u5177\u680f\u4e2d\u3002\u6709\u5173\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1[https://support.mozilla.org/en-US/kb/firefox-screenshots]\n\n\u6b64\u5916\uff0c[https://developer.mozilla.org/en-US/docs/Tools/Taking_screenshots \u5f00\u53d1\u4eba\u5458\u5de5\u5177]\u4e2d\u7684\u5c4f\u5e55\u622a\u56fe\u6309\u94ae\uff08\u622a\u53d6\u6574\u4e2a\u9875\u9762\uff09\u4e5f\u4e0d\u5931\u4e3a\u4e00\u79cd\u53ef\u884c\u7684\u529e\u6cd5\uff0c\u8be5\u6309\u94ae\u53ef\u4ee5\u901a\u8fc7\u5f00\u53d1\u4eba\u5458\u5de5\u5177\u7684\u201c\u8bbe\u7f6e\u201d\u83dc\u5355\u5728\u201c\u53ef\u7528\u7684\u5de5\u5177\u7bb1\u6309\u94ae\u201d\u90e8\u5206\u4e0b\u6dfb\u52a0\u3002\u5f00\u53d1\u4eba\u5458\u5de5\u5177\u7684\u201c\u8bbe\u7f6e\u201d\u53ef\u901a\u8fc7\u4f4d\u4e8e\u5f00\u53d1\u4eba\u5458\u5de5\u5177\u7a97\u683c\u53f3\u4e0a\u89d2\u7684\u4e09\u4e2a\u6c34\u5e73\u70b9\u8fdb\u884c\u8bbf\u95ee\u3002\n\n=== Wayland \u652f\u6301 ===\n\n\u8f83\u65b0\u7248\u672c\u7684Firefox\u652f\u6301\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u542f\u7528Wayland\u652f\u6301\u3002\n\n $ MOZ_ENABLE_WAYLAND=1 firefox\n\n\u8981\u4f7f\u8be5\u9009\u9879\u6c38\u4e45\u542f\u7528\uff0c\u8bf7\u53c2\u89c1 [[Environment variables#Graphical environment]] \u7136\u540e\u50cf\u901a\u5e38\u4e00\u6837\u901a\u8fc7\u684c\u9762\u542f\u52a8\u5668\u542f\u52a8Firefox\u3002 \u4e3a\u4e86\u9a8c\u8bc1\u5b83\u662f\u5426\u6709\u6548\uff0c\u518d\u6b21\u68c0\u67e5\u201c\u7a97\u53e3\u534f\u8bae\u201d\u3002\n\n\u65b9\u6cd5\u662f\uff0c\u5728 {{ic|about:support}} \u4e2d\u68c0\u67e5 ''\u7a97\u53e3\u534f\u8bae''. \u503c\u5e94\u8be5\u662f''wayland'' \u800c\u975e''X11''\u3002\u5982\u679c\u663e\u793a\u4e3a X11 \u5219\u610f\u5473\u7740\u60a8\u5728 Xorg \u663e\u793a\u670d\u52a1\u5668\u4e0b\u8fd0\u884c Firefox\uff0c\u800c xwayland \u610f\u5473\u7740\u60a8\u7684\u7cfb\u7edf\u6b63\u5728\u8fd0\u884c Wayland \u4f46\u5c06 Firefox \u4f5c\u4e3a X11 \u5e94\u7528\u7a0b\u5e8f\u6267\u884c\u3002\n\n\u5982\u679c\u6709\u5fc5\u8981\u5b9a\u671f\u5728 Wayland \u548c X.org \u4e4b\u95f4\u5207\u6362\uff0c\u5728 shell \u7684\u767b\u5f55[[Command-line shell#Configuration files|\u542f\u52a8\u811a\u672c]]\u4e2d\u6dfb\u52a0\u6761\u4ef6\u53ef\u80fd\u4f1a\u5f88\u6709\u7528\uff0c\u4f8b\u5982 {{ic|~/.bash_profile}} \u7528\u4e8e [[Bash]]\uff1a\n\n{{bc|1=\nif [ \"$XDG_SESSION_TYPE\" == \"wayland\" ]; then\n    export MOZ_ENABLE_WAYLAND=1\nfi\n}}\n\n=== \u7a97\u53e3\u7ba1\u7406\u5668\u89c4\u5219 ===\n\n\u8981\u5c06\u4e0d\u540c\u7684\u914d\u7f6e\u5e94\u7528\u4e8eFirefox\u7a97\u53e3\uff0c\u8bf7\u4f7f\u7528Firefox\u7684{{ic|--class}}\u9009\u9879\u5c06WM_CLASS\u5b57\u7b26\u4e32\u66f4\u6539\u4e3a\u81ea\u5b9a\u4e49\u9009\u9879\u3002\n\n==== \u914d\u7f6e\u6587\u4ef6 ====\n\n\u8981\u542f\u52a8\u65b0\u7684Firefox\u5b9e\u4f8b\uff0c\u9700\u8981\u201c\u591a\u4e2a\u914d\u7f6e\u6587\u4ef6\u201d\u3002\u81f3\u4e8e\u5982\u4f55\u521b\u5efa\u65b0\u7684\u914d\u7f6e\u6587\u4ef6\uff1a\n\n $ firefox [--new-instance] -P\n\n\u4f7f\u7528\u672a\u5728\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u542f\u52a8Firefox\u65f6\u53ef\u6307\u5b9aclass\uff1a\n\n $ firefox [--new-instance] -P ''profile_name'' --class=''class_name''\n\n=== \u89e6\u6478\u5c4f\u624b\u52bf\u548c\u89e6\u63a7\u677f\u6eda\u52a8 ===\n\n{{Merge|Firefox/Tweaks#Enable touchscreen gestures|Same solution.}}\n\n\u8981\u542f\u7528\u89e6\u6478\u624b\u52bf\uff08\u5982\u6eda\u52a8\u548c\u53cc\u6307\u7f29\u653e\uff09\u4ee5\u53ca\u826f\u597d\u7684\u89e6\u63a7\u677f\u6eda\u52a8\uff08\u5982 Nautilus \u7b49 GTK3 \u5e94\u7528\u7a0b\u5e8f\u6240\u793a\uff09\uff0c\u8bf7\u5728\u542f\u52a8Firefox\u4e4b\u524d\u8bbe\u7f6e\u6b64\u73af\u5883\u53d8\u91cf \n\n    MOZ_USE_XINPUT2=1\n\n\u5728 Wayland \u4e0a\uff0c\u53ea\u9700\u8981\u8bbe\u7f6e \n\n    MOZ_ENABLE_WAYLAND=1\n\n\u7531\u4e8e [https://bugzilla.mozilla.org/show_bug.cgi?id=1568722]\uff0c\u52a8\u6001\u6eda\u52a8\u5728 Wayland \u4e0a\u4f1a\u4e0d\u8fde\u8d2f\uff0c\u53ef\u4ee5\u901a\u8fc7\u5728 {{ic|about:config}} \u5e76\u5173\u95ed {{ic|apz.gtk.kinetic_scroll.enabled}} \u6765\u7ed5\u5f00\u8fd9\u4e2a\u95ee\u9898\u3002\u4f46\u662f\uff0c\u8fd9\u4f1a\u4f7f\u6eda\u52a8\u5230\u957f\u9875\u9762\u7684\u5f00\u5934\u548c\u7ed3\u5c3e\u53d8\u5f97\u66f4\u52a0\u56f0\u96be\u3002\n\n=== \u8bbe\u5b9a\u591a\u4e2a\u4e3b\u9875 ===\n\n\u8981\u5728\u542f\u52a8Firefox\u65f6\u6253\u5f00\u591a\u4e2a\u9009\u9879\u5361\uff0c\u8bf7\u6253\u5f00\u4e00\u4e2a\u65b0\u7a97\u53e3\uff0c\u7136\u540e\u6253\u5f00\u90a3\u4e9b\u60f3\u8981\u8bbe\u4e3a\u4e3b\u9875\u7684\u7f51\u7ad9\u3002\n\n\u7136\u540e\u8f6c\u5230\u201c\u9996\u9009\u9879>\u4e3b\u9875\u201d\uff0c\u7136\u540e\u5728\u201c\u4e3b\u9875\u548c\u65b0\u7a97\u53e3\u201d\u4e0b\uff0c\u5355\u51fb\u201c\u4f7f\u7528\u5f53\u524d\u9875\u9762\u201d\u6309\u94ae\u3002\n\n\u6216\u8005\uff0c\u76f4\u63a5\u8f6c\u5230\u201c\u9996\u9009\u9879>\u4e3b\u9875\u201d\uff0c\u7136\u540e\u5728\u201c\u4e3b\u9875\u548c\u65b0\u7a97\u53e3\u201d\u4e0b\uff0c\u5c06\u7b2c\u4e00\u4e2a\u5b57\u6bb5\u8bbe\u7f6e\u4e3a\u201c\u81ea\u5b9a\u4e49URL\u3002\u201d\uff0c\u7136\u540e\u4ee5\u4ee5\u4e0b\u683c\u5f0f\u8f93\u5165\u8981\u4f5c\u4e3a\u4e3b\u9875\u7684\u9875\u9762\uff1a\n\n <nowiki>https://url1.com|https://url2.com|https://url3.com</nowiki>\n\n=== \u5728 PDF \u67e5\u770b\u5668\u4e2d\u5e76\u6392\u67e5\u770b\u4e24\u4e2a\u9875\u9762 ===\n\n\u8981\u4f7f\u7528\u96c6\u6210\u7684 PDF \u67e5\u770b\u5668\u4e00\u6b21\u5e76\u6392\u663e\u793a\u4e24\u4e2a\u9875\u9762\uff0c\u53ef\u4ee5\u5728 {{ic|about:config}} \u4e2d\u5c06 {{ic|pdfjs.spreadModeOnLoad}} \u8bbe\u7f6e\u4e3a {{ic|1}}\u3002\n\n=== Kiosk\u6a21\u5f0f ===\n\nFirefox \u652f\u6301 kiosk \u6a21\u5f0f\uff0c\u8be5\u6a21\u5f0f\u53ef\u4ee5\u5728\u6ca1\u6709chrome\u6d4f\u89c8\u5668\u3001\u4e0a\u4e0b\u6587\u83dc\u5355\u548c\u5176\u4ed6\u5bf9\u5178\u578b\u684c\u9762\u6d4f\u89c8\u6709\u7528\u7684\u529f\u80fd\u7684\u60c5\u51b5\u4e0b\u4f7f\u7528\u5168\u5c4f\u663e\u793a\u9875\u9762\u3002\u8fd9\u4e9b\u53ef\u4ee5\u5728 ATM \u6216\u4fe1\u606f\u9762\u677f\u4e0a\u770b\u5230\uff0c\u7528\u6237\u4e0d\u5e94\u5728\u8fd9\u4e9b\u5730\u65b9\u4e0e\u7cfb\u7edf\u7684\u5176\u4f59\u90e8\u5206\u8fdb\u884c\u4ea4\u4e92\u3002\n\n\u8981\u4f7f\u7528 kiosk \u6a21\u5f0f\uff0c\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u542f\u52a8 Firefox\uff1a\n\n $ firefox --kiosk ''url''\n \n\u542f\u52a8\u9875\u9762\u53ef\u4ee5\u914d\u7f6e\u8bbe\u7f6e\u6216\u4f5c\u4e3a\u547d\u4ee4\u884c\u53c2\u6570\u63d0\u4f9b\u3002\n\n\u5982\u679c\u60a8\u9700\u8981\u6253\u5370\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u963b\u6b62 Firefox \u663e\u793a\u7eb8\u5f20\u5c3a\u5bf8\u914d\u7f6e\u5bf9\u8bdd\u6846\uff1a\n\n $ firefox --kiosk --kiosk-printing ''url''\n\n== \u7591\u96be\u89e3\u7b54 ==\n\n=== \u6392\u969c\u6a21\u5f0f ===\n\n\u547d\u4ee4\u884c\u5f00\u5173 {{ic|-safe-mode}} \u5728[https://support.mozilla.org/en-US/kb/diagnose-firefox-issues-using-troubleshoot-mode Troubleshoot Mode]\u4e0b\u542f\u52a8 Firefox\uff0c\u8fd9\u4f1a\u7981\u7528\u6269\u5c55\u3001\u4e3b\u9898\u3001\u786c\u4ef6\u52a0\u901f\u3001JIT \u548c\u6b64\u4f1a\u8bdd\u7684\u4e00\u4e9b\u5176\u4ed6\u529f\u80fd\u3002\n\n\u4e5f\u53ef\u4ee5\u901a\u8fc7\u5728 Firefox \u6253\u5f00\u65f6\u6309\u81ea\u5b9a\u4e49\u83dc\u5355\u3001\u5355\u51fb''\u5e2e\u52a9''\u3001\u9009\u62e9''\u6392\u969c\u6a21\u5f0f...''\u5e76\u5728\u51fa\u73b0\u7684\u6a21\u5f0f\u5bf9\u8bdd\u6846\u4e2d\u786e\u8ba4\u6765\u542f\u7528\u6b64\u6a21\u5f0f\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\u8fd9\u9700\u8981\u91cd\u65b0\u542f\u52a8\u6d4f\u89c8\u5668\u3002\n\n\u5728 Firefox 88 \u4e4b\u524d\uff0c\u6b64\u6a21\u5f0f\u4e5f\u88ab\u547d\u540d\u4e3a\u5b89\u5168\u6a21\u5f0f\u3002\n\n=== Firefox \u7ffb\u65b0 ===\n\n\u7528\u6237\u5728 Firefox \u4e2d\u9047\u5230\u7684\u4e00\u4e9b\u95ee\u9898\u53ef\u80fd\u662f\u7531\u914d\u7f6e\u6587\u4ef6\u95ee\u9898\u5f15\u8d77\u7684\uff0c\u4f8b\u5982\u635f\u574f\u3002\n\n\u5982\u679c\u60a8\u6392\u9664\u4e86\u5176\u4ed6\u539f\u56e0\uff0c\u53ef\u80fd\u503c\u5f97\u5c1d\u8bd5\u4f7f\u7528\u65b0\u7684 Firefox \u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u6d4b\u8bd5\uff0c\u770b\u770b\u8fd9\u662f\u5426\u80fd\u89e3\u51b3\u60a8\u7684\u95ee\u9898\u3002\u6709\u5173\u5982\u4f55\u521b\u5efa\u65b0\u914d\u7f6e\u6587\u4ef6\u548c\u5728\u914d\u7f6e\u6587\u4ef6\u4e4b\u95f4\u5207\u6362\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u8bbf\u95ee [https://support.mozilla.org/en-US/kb/profile-manager-create-remove-switch-firefox-profiles Firefox \u652f\u6301\u9875\u9762]\u3002\n\n\u5982\u679c\u8fd9\u89e3\u51b3\u4e86\u60a8\u7684\u95ee\u9898\uff0c\u60a8\u5e94\u8be5\u5207\u6362\u56de\u60a8\u7684\u539f\u59cb\u914d\u7f6e\u6587\u4ef6\u5e76\u8003\u8651\u7ffb\u65b0\u60a8\u7684 Firefox\u3002\n\n\u7ffb\u65b0\u60a8\u7684\u4e2a\u4eba\u8d44\u6599\u5c06\u4fdd\u7559\u6240\u6709\u6d4f\u89c8\u548c\u4e0b\u8f7d\u5386\u53f2\u8bb0\u5f55\u3001\u4e66\u7b7e\u3001\u7f51\u7edc\u8868\u5355\u81ea\u52a8\u586b\u5145\u6570\u636e\u3001cookie\u3001\u4e2a\u4eba\u8bcd\u5178\u548c\u5bc6\u7801\uff0c\u5e76\u5c06\u5b83\u4eec\u8f6c\u79fb\u5230\u4e00\u4e2a\u6ca1\u6709\u6269\u5c55\u3001\u4e3b\u9898\u3001\u6269\u5c55\u6570\u636e\u548c\u504f\u597d\u7b49\u6570\u636e\u7684\u5168\u65b0\u4e2a\u4eba\u8d44\u6599\u4e2d\u3002 \u60a8\u7684\u65e7\u914d\u7f6e\u6587\u4ef6\u7684\u5907\u4efd\u4e5f\u5c06\u88ab\u4fdd\u7559\u3002\n\n\u8981\u7ffb\u65b0\u60a8\u7684\u4e2a\u4eba\u8d44\u6599\uff0c\u8bf7\u6253\u5f00 {{ic|about:support}}\uff0c\u6309''\u7ffb\u65b0 Firefox...''\u5e76\u5728\u51fa\u73b0\u7684\u6a21\u5f0f\u5bf9\u8bdd\u6846\u4e2d\u786e\u8ba4\u3002 {{ic|about:support}} \u4e5f\u53ef\u4ee5\u901a\u8fc7\u6309\u81ea\u5b9a\u4e49\u83dc\u5355\uff0c\u9009\u62e9''\u5e2e\u52a9''\u7136\u540e\u5355\u51fb''\u66f4\u591a\u6392\u969c\u4fe1\u606f''\u6765\u8bbf\u95ee\u3002\n\n\u6709\u5173\u5237\u65b0 Firefox \u7684\u66f4\u591a\u4fe1\u606f\uff0c\u5305\u62ec\u6709\u5173\u4f20\u8f93\u5230\u65b0\u914d\u7f6e\u6587\u4ef6\u7684\u5185\u5bb9\u7684\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u8bbf\u95ee [https://support.mozilla.org/en-US/kb/refresh-firefox-reset-add-ons-and-settings Firefox \u652f\u6301\u9875\u9762]\u3002\n\n=== \u786c\u4ef6\u52a0\u901f\u95ee\u9898 ===\n\n\u5982\u679c\u60a8\u5728 Firefox \u4e2d\u9047\u5230\u786c\u4ef6\u89c6\u9891\u52a0\u901f\u5bfc\u81f4\u7684\u95ee\u9898\uff0c\u4f8b\u5982\uff0c\u5982\u679c\u51fa\u73b0\u51bb\u7ed3\u6216\u56fe\u5f62\u635f\u574f\uff0c\u8bf7\u5728[[#Troubleshoot Mode|\u6392\u969c\u6a21\u5f0f]]\u4e0b\u542f\u52a8 Firefox \u4ee5\u8fdb\u884c\u6d4b\u8bd5\u4ee5\u786e\u8ba4\u8fd9\u662f\u95ee\u9898\u6240\u5728\u3002 \u5982\u679c\u8fd9\u4e00\u6b65\u89e3\u51b3\u4e86\u95ee\u9898\uff0c\u53ea\u9700\u5728{{ic|about:config}}\u4e2d\u5c06{{ic|media.ffmpeg.vaapi.enabled}}\u8bbe\u7f6e\u4e3a{{ic|false}}\u4ee5\u5173\u95ed\u786c\u4ef6\u89c6\u9891\u52a0\u901f\uff0c\u7136\u540e\u91cd\u542fFirefox\u5373\u53ef\u3002\n\n=== \u67d0\u4e9b\u6269\u5c55\u4e0d\u80fd\u5728 Mozilla \u62e5\u6709\u7684\u57df\u540d\u4e2d\u5de5\u4f5c ===\n\n\u4e00\u822c\u6765\u8bf4\uff0c\u6269\u5c55\u4e0d\u4f1a\u5bf9 {{ic|extensions.webextensions.restrictedDomains}} \u4e2d\u7684\u57df\u540d\u8d77\u6548\u3002 \u5982\u679c\u60f3\u66f4\u6539\u8fd9\u4e2a\u8bbe\u7f6e\uff0c\u53ef\u4ee5\u6e05\u9664\u8be5\u5b57\u6bb5\u3002 (\u6ce8\u610f\u8fd9\u5bf9\u50cf{{ic|about:*}}\u8fd9\u6837\u7684\u7279\u6b8a\u9875\u9762\u6ca1\u6709\u5f71\u54cd)\u3002\u7136\u540e\u521b\u5efa\u5e76\u5c06 {{ic|privacy.resistFingerprinting.block_mozAddonManager}} \u8bbe\u7f6e\u4e3a {{ic|true}}\u3002\n\n=== Firefox \u542f\u52a8\u65f6\u95f4\u592a\u957f ===\n\n\u5982\u679c Firefox \u542f\u52a8\u65f6\u95f4\u6bd4\u5176\u5b83\u6d4f\u89c8\u5668\u66f4\u957f\uff0c\u8fd9\u53ef\u80fd\u662f\u56e0\u4e3a {{ic|/etc/hosts}} \u91cc\u6ca1\u6709\u8bbe\u7f6e localhost\u3002\u67e5\u770b [[Network configuration#Local network hostname resolution]] \u4e86\u89e3\u600e\u4e48\u8bbe\u7f6e\u3002\n\nFirefox \u6269\u5c55\u884c\u4e3a\u4e0d\u5f53\uff0c\u6216\u6269\u5c55\u592a\u591a\uff0c\u53ef\u80fd\u662f\u542f\u52a8\u7f13\u6162\u7684\u53e6\u4e00\u4e2a\u539f\u56e0\u3002\u53ef\u4ee5\u901a\u8fc7\u5f00\u542f[[#\u6392\u969c\u6a21\u5f0f]]\u6765\u786e\u8ba4\uff0c\u8be5\u6a21\u5f0f\u4e0b\u5c06\u5728\u91cd\u65b0\u542f\u52a8\u65f6\u7981\u7528\u6269\u5c55\u3002\n\n\u542f\u52a8\u7f13\u6162\u7684\u53e6\u4e00\u4e2a\u539f\u56e0\u53ef\u80fd\u662f\u914d\u7f6e\u6587\u4ef6\u95ee\u9898\uff0c\u4f8b\u5982\u635f\u574f\u3002\u6709\u5173 Firefox \u914d\u7f6e\u6587\u4ef6\u7684\u66f4\u591a\u6545\u969c\u6392\u9664\u6b65\u9aa4\uff0c\u8bf7\u53c2\u9605[[#Firefox \u7ffb\u65b0]]\u3002\n\n=== \u5b57\u4f53\u95ee\u9898 ===\n\n\u53c2\u89c1 [[Font configuration]].\n\nFirefox \u6709\u4e00\u4e2a\u8bbe\u7f6e\u7528\u4e8e\u51b3\u5b9a\u5141\u8bb8\u4ece fontconfig \u66ff\u6362\u591a\u5c11\u6b21\u3002\u8981\u5141\u8bb8\u5b83\u4f7f\u7528\u4f60\u6240\u6709\u7684\u66ff\u6362\u89c4\u5219\uff0c\u8bf7\u66f4\u6539{{ic|gfx.font_rendering.fontconfig.max_generic_substitutions}} \u4e3a {{ic|127}} (\u6ce8\uff1a127\u662f\u8be5\u5b57\u6bb5\u53ef\u586b\u5199\u7684\u6700\u5927\u503c)\u3002\n\nFirefox \u9644\u5e26\u4e86 ''Twemoji Mozilla'' \u5b57\u4f53. \u5982\u679c\u4f60\u60f3\u4f7f\u7528\u7cfb\u7edf\u7684 emoji \u5b57\u4f53\u8bf7\u5728{{ic|about:config}}\u5c06{{ic|font.name-list.emoji}} \u8bbe\u7f6e\u4e3a {{ic|emoji}}\u3002\n\nFirefox \u5728 [[Emoji]] \u663e\u793a\u4e0a\u6709\u95ee\u9898\u3002 [https://bugzilla.mozilla.org/show_bug.cgi?id=1509988]. \u8981\u89e3\u51b3\u6b64\u95ee\u9898\uff0c\u53ef\u4ee5\u5c06{{ic|gfx.font_rendering.fontconfig.max_generic_substitutions}} \u8bbe\u5b9a\u4e3a {{ic|0}}\u3002\n\n=== \u8bbe\u7f6e email \u5ba2\u6237\u7aef ===\n\n\u4e00\u822c\u5730\uff0cFirefox \u4f1a\u4f7f\u7528\u50cf Gmail \u6216 Yahoo Mail \u8fd9\u6837\u7684 Web \u7a0b\u5e8f\u6253\u5f00 {{ic|mailto}} \u94fe\u63a5\u3002\u8981\u4f7f Firefox \u7528\u4f60\u7684email \u5ba2\u6237\u7aef\u6253\u5f00 {{ic|mailto}} \u94fe\u63a5\uff0c\u627e\u5230 ''\u9009\u9879 > \u5e94\u7528\u7a0b\u5e8f'' \u5e76\u5c06 {{ ic|mailto }} \u5bf9\u5e94\u7684''\u52a8\u4f5c''\u4fee\u6539\u4e3a\u4f60\u7684 email \u5ba2\u6237\u7aef\u7684\u51c6\u786e\u8def\u5f84\uff0c\u5982 {{ic|/usr/bin/kmail}}\u3002\n\n{{ic|mailto}}\u94fe\u63a5\u7531{{ic|x-scheme-handler/mailto}} mime\u7c7b\u578b\u5904\u7406\uff0c\u53ef\u4ee5\u4f7f\u7528{{ic|xdg-mime}}\u8f7b\u677e\u914d\u7f6e\u3002 \u6709\u5173\u8be6\u7ec6\u4fe1\u606f\u548c\u5907\u9009\u65b9\u6cd5\uff0c\u8bf7\u53c2\u9605\u300e\u9ed8\u8ba4\u5e94\u7528\u7a0b\u5e8f\u300f\n\n=== \u6587\u4ef6\u5173\u8054 ===\n\n\u53c2\u89c1 [[Default applications]].\n\n=== Firefox \u81ea\u52a8\u521b\u5efa ~/Desktop\uff0c\u4f46\u6211\u4e0d\u9700\u8981 ===\n\nFirefox \u9ed8\u8ba4\u4f7f\u7528 {{ic|~/Desktop}} \u4f5c\u4e3a\u4e0a\u4f20\u548c\u4e0b\u8f7d\u76ee\u5f55\u3002\u6309 [[XDG user directories]] \u4e2d\u7684\u8bf4\u660e\u4fee\u6539 {{ic|XDG_DESKTOP_DIR}}.\n\n=== \u7981\u6b62\u63d2\u4ef6\u5f39\u7a97 ===\n\n\u6709\u4e9b\u63d2\u4ef6\uff0c\u5982Flash\uff0c\u4f1a\u5ffd\u7565\u6d4f\u89c8\u5668\u8bbe\u7f6e\uff0c\u5f39\u51fa\u7a97\u53e3\u3002\u8981\u963b\u6b62\u8fd9\u79cd\u5f39\u7a97\uff1a\n# \u6253\u5f00 about:config\u3002\n# \u53f3\u952e\u6dfb\u52a0\u65b0\u7684\u6574\u6570\u9879\u76ee\u3002\n# \u547d\u540d\u4e3a privacy.popups.disable_from_plugins\u3002\n# \u8bbe\u7f6e\u4e3a2\u3002\n\n\u53ef\u7528\u503c\u5982\u4e0b\uff1a\n* 0: \u5141\u8bb8\u6240\u6709\u63d2\u4ef6\u5f39\u7a97\u3002\n* 1: \u5141\u8bb8\u5f39\u7a97\uff0c\u4f46\u9650\u5236\u5728dom.popup_maximum\u6570\u503c\u5185\u3002\n* 2: \u7981\u6b62\u63d2\u4ef6\u5f39\u7a97\u3002\n* 3: \u7981\u6b62\u63d2\u4ef6\u5f39\u7a97\uff0c\u5373\u4f7f\u662f\u53ef\u4fe1\u7ad9\u70b9\u3002\n\n=== \u5bf9userChrome.css\u548cuserContent.css\u7684\u4fee\u6539\u4e0d\u8d77\u6548 ===\n\n\u5728 {{ic|about:config}}\u4e2d\u5c06 {{ic|toolkit.legacyUserProfileCustomizations.stylesheets}} \u8bbe\u5b9a\u4e3a {{ic|true}}\n\n=== \u4e2d\u952e\u70b9\u51fb\u95ee\u9898 ===\n\n ! \u6b64 URL \u65e0\u6548\uff0c\u65e0\u6cd5\u8f7d\u5165\uff0c\n\u8bb8\u591a\u4eba\u4f7f\u7528\u4e2d\u952e\u70b9\u51fb\u65f6\u4f1a\u83ab\u540d\u8df3\u8f6c\u5230\u67d0\u9875\u9762\uff0c\u6216\u8005\u51fa\u73b0\u4e0a\u8ff0\u9519\u8bef\u3002\n\n\u95ee\u9898\u7684\u539f\u56e0\u662f\uff0c\u8bb8\u591a\u7c7bUNIX\u64cd\u4f5c\u7cfb\u7edf\u8bbe\u7f6e\u9f20\u6807\u4e2d\u952e\u6267\u884c\u7c98\u8d34\u64cd\u4f5c\u3002\u8fd9\u4e0eFirefox\u7684\u529f\u80fd\u51b2\u7a81\u4e86\uff08\u5728\u65b0\u7a97\u53e3\u6253\u5f00\u94fe\u63a5\uff09\u3002\u53ef\u4ee5\u5173\u95edFirefox\u7684\u8fd9\u9879\u529f\u80fd\uff1a\n\n\u5728\u6d4f\u89c8\u5668\u5730\u5740\u680f\u8f93\u5165\uff1a\n about:config\n\u6253\u5f00\u5e76\u627e\u5230'''middlemouse.contentLoadURL'''\u9879\uff0c\u8bbe\u7f6e\u4e3afalse\u3002\n\n\u6b64\u5916\uff0c\u5982\u679c\u8981\u6253\u5f00\u4e2d\u952e\u70b9\u51fb\u51fa\u73b0\u6eda\u8f6e\u7684\u529f\u80fd\uff08Windows\u9ed8\u8ba4\u542f\u7528\uff09\uff0c\u8bbe\u7f6e'''general.autoScroll'''\u4e3atrue\u3002\n\n=== Backspace \u952e\u65e0\u6cd5\u5b9e\u73b0\u201c\u540e\u9000\u201d\u529f\u80fd ===\n\n\u6839\u636e [http://kb.mozillazine.org/Browser.backspace_action MozillaZine\u4e0a\u7684\u94fe\u63a5], {{ic|Backspace}} \u952e\u6267\u884c\u7684\u64cd\u4f5c\u662f\u57fa\u4e8e\u8fd0\u884c\u6d4f\u89c8\u5668\u7684\u5e73\u53f0\u800c\u51b3\u5b9a\u7684\u3002\u4e0d\u8fc7\uff0c\u6709\u4e00\u4e2a\u9996\u9009\u9879\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e{{ic|Backspace}}\u952e\u8fd4\u56de/\u524d\u8fdb\u3001\u4e0a/\u4e0b\u6eda\u52a8\u9875\u9762\u6216\u4e0d\u6267\u884c\u4efb\u4f55\u64cd\u4f5c\u3002\n\n\u8981\u60f3\u4f7f{{ic|Backspace}}\u7528\u4e8e\u8fd4\u56de\u4e0a\u4e00\u9875\uff0c {{ic|Shift+Backspace}} \u7528\u4e8e\u524d\u8fdb\u4e00\u9875, \u53ef\u4ee5\u5728{{ic|about:config}}\u4e2d\u5c06{{ic|browser.backspace_action}} \u8bbe\u5b9a\u4e3a {{ic|0}}.\n\n\u8981\u60f3\u4f7f{{ic|Backspace}} \u7528\u4e8e\u5411\u4e0a\u6eda\u52a8\u9875\u9762\uff0c{{ic|Shift+Backspace}}\u7528\u4e8e\u5411\u4e0b\u6eda\u52a8\u9875\u9762,\u5c06 {{ic|browser.backspace_action}} \u8bbe\u5b9a\u4e3a {{ic|1}}. \n\n\u82e5\u5c06\u6b64\u5c5e\u6027\u8bbe\u7f6e\u4e3a\u4e0a\u6587\u6240\u8ff0\u4e4b\u5916\u7684\u5176\u4ed6\u503c\uff0c{{ic|Backspace}}\u5c06\u4e0d\u6267\u884c\u4efb\u4f55\u64cd\u4f5c\u3002(Arch Linux\u9ed8\u8ba4\u4e3a{{ic|2}}, \u6362\u53e5\u8bdd\u8bf4\uff0cArch Linux \u4e2d\u7684 Firefox \u9ed8\u8ba4\u4e0d\u5bf9{{ic|Backspace}}\u505a\u51fa\u4efb\u4f55\u53cd\u5e94).\n\n=== \u65e0\u6cd5\u8bb0\u5f55\u767b\u5f55\u4fe1\u606f ===\n\n\u6709\u53ef\u80fd\u662f[https://support.mozilla.com/en-US/kb/Profiles#How_to_find_your_profile Firefox profile]\u6587\u4ef6\u5939\u4e2d\u7684{{Ic|cookies.sqlite}}\u635f\u574f\u4e86\u3002\u5173\u95ed\u6d4f\u89c8\u5668\u540e\u5220\u9664cookie.sqlite\u5373\u53ef\uff1a\n\n\u6253\u5f00\u7ec8\u7aef\u8f93\u5165\uff1a\n $ cd ~/.mozilla/firefox/xxxxxxxx.default/\n $ rm -f cookies.sqlite\n{{\u6ce8\u610f|xxxxxxxx \u8868\u793a\u7531Firefox\u968f\u673a\u751f\u6210\u76848\u4e2a\u5b57\u7b26}}\n\n\u91cd\u542fFirefox\u68c0\u67e5\u95ee\u9898\u662f\u5426\u89e3\u51b3\u3002\n\u5982\u679c\u6ca1\u89e3\u51b3\uff0c\u53ef\u4ee5\u68c0\u67e5\u4e00\u4e0b\u662f\u5426\u5b58\u5728{{ic|cookies.sqlite.bak}}\u6587\u4ef6\u3002\u5982\u679c\u5b58\u5728\uff0c\u4f60\u53ef\u4ee5\u7528\u5b83\u624b\u52a8\u6062\u590d Cookies \u4fe1\u606f\u3002\n\n=== \u4e0d\u80fd\u8fdb\u5165/\u9000\u51fa\u5168\u5c4f\u6a21\u5f0f ===\n\n\u5982\u679c Firefox \u68c0\u6d4b\u5230\u4e86[https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html EWMH/ICCCM] \u517c\u5bb9\u7684\u7a97\u53e3\u7ba1\u7406\u5668, \u5b83\u5c31\u4f1a\u5c1d\u8bd5\u53d1\u9001\u4e00\u4e2a WM_STATE \u6d88\u606f\u5230\u6839\u7a97\u53e3\u6765\u8bf7\u6c42\u8fdb\u5165\uff08\u6216\u9000\u51fa\uff09\u5168\u5c4f\u6a21\u5f0f(\u7531\u7a97\u53e3\u7ba1\u7406\u5668\u6240\u5b9a\u4e49). \u7a97\u53e3\u7ba1\u7406\u5668\u53ef\u4ee5\u5ffd\u7565\u5b83\u4eec, \u4f46\u662f\u4e00\u65e6\u5b83\u4eec\u5ffd\u7565, Firefox\u4f1a\u5047\u8bbe\u8bf7\u6c42\u88ab\u62d2\u7edd\uff0c\u5e76\u5c06\u5176\u544a\u77e5\u7ed9\u6700\u7ec8\u7528\u6237\uff0c\u7ed3\u679c\u4ec0\u4e48\u90fd\u6ca1\u6709\u53d1\u751f\u3002 \u8fd9\u53ef\u80fd\u5bfc\u81f4\u7684\u73b0\u8c61\u4e4b\u4e00\u5c31\u662f\u6ca1\u6cd5\u5168\u5c4f\u67e5\u770b\u89c6\u9891\u3002\u4e00\u79cd\u89e3\u51b3\u65b9\u6848\u662f\u5728{{ic|about:config}}\u4e2d\u5c06{{ic|full-screen-api.ignore-widgets}}\u8bbe\u5b9a\u4e3a{{ic|true}}.\n\n=== Firefox \u9519\u8bef\u5730\u8ba4\u4e3a\u63d2\u4ef6\u8fc7\u65f6 ===\n\n\u5173\u95edFirefox\u65f6\uff0c\u540e\u8005\u4f1a\u5c06\u5f53\u524d\u7684\u65f6\u95f4\u6233\u548c\u63d2\u4ef6\u7248\u672c\u4fdd\u5b58\u5728\u914d\u7f6e\u6587\u4ef6\u6587\u4ef6\u5939\u4e2d\u7684pluginreg.dat\u4e2d\uff0c\u901a\u5e38\u5728 {{ic|~/.mozilla/firefox/some name.default/}} \u4e2d\u3002\n\n\u5982\u679cFirefox\u5728\u8fd0\u884c\u65f6\u5347\u7ea7\u4e86\u63d2\u4ef6\uff0c\u5219\u4f1a\u5728\u8be5\u6587\u4ef6\u4e2d\u5305\u542b\u9519\u8bef\u7684\u4fe1\u606f\u3002 \u5f53\u4f60\u4e0b\u4e00\u6b21\u91cd\u542f Firefox \u65f6\uff0c\u4f1a\u62a5\u544a\u4e00\u4e2a\u9519\u8bef\u300eFirefox\u5df2\u7ecf\u963b\u6b62\u4e86\u8fc7\u65f6\u7684\u63d2\u4ef6\u201c\u63d2\u4ef6\u540d\u79f0\u201d\u5728\u8fd0\u884c\u300f\u3002\u8fd9\u4e2a\u95ee\u9898\u901a\u5e38\u51fa\u73b0\u5728\u5b98\u65b9\u7684Adobe Flash Player\u63d2\u4ef6\u4e0a\uff0c\u800cFirefox\u5728\u8fd0\u884c\u65f6\u5df2\u7ecf\u5347\u7ea7\u3002\n\n\u89e3\u51b3\u65b9\u6848\u662f\u4ece\u60a8\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u5220\u9664\u6587\u4ef6pluginreg.dat\u3002\u4e8b\u5b9e\u4e0a\uff0cFirefox\u4e0d\u4f1a\u7531\u4e8e\u4e22\u5931\u7684\u6587\u4ef6\u800c\u505c\u6b62\u8fd0\u884c\uff0c\u56e0\u4e3a\u4e0b\u6b21Firefox\u5173\u95ed\u65f6\uff0c\u5b83\u5c06\u88ab\u91cd\u65b0\u521b\u5efa\u3002\n[https://bugzilla.mozilla.org/show_bug.cgi?id=1109795#c16]\n\n=== \u5728\u4e00\u4e9b\u7f51\u9875\u4e2d\uff0cJavascript \u4e0a\u4e0b\u6587\u83dc\u5355\u4e0d\u663e\u793a ===\n\n\u5728 {{ic|about:config}} \u5c06 {{ic|dom.w3c_touch_events.enabled}} \u8bbe\u7f6e\u4e3a 0.\n\n=== Firefox \u4e0d\u4fdd\u5b58\u9ed8\u8ba4\u7684\u62fc\u5199\u68c0\u67e5\u8bed\u8a00 ===\n\n\u9ed8\u8ba4\u7684\u62fc\u5199\u68c0\u67e5\u8bed\u8a00\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u65b9\u5f0f\u8bbe\u7f6e\uff1a\n\n# \u5728\u5730\u5740\u680f\u4e2d\u6253\u5f00 {{ic|about:config}}.\n# \u628a {{ic|spellchecker.dictionary}} \u8bbe\u7f6e\u4e3a\u4f60\u7684\u8bed\u8a00\uff0c\u4f8b\u5982 {{ic|en_GB}}.\n# \u6ce8\u610f\u5bf9\u4e8e Firefox \u5b89\u88c5\u7684\u8bcd\u5178\u63d2\u4ef6\u6765\u8bf4\uff0c\u7b26\u53f7\u662f {{ic|en-GB}}\uff0c\u800c\u5bf9\u4e8e {{Pkg|hunspell}} \u8bcd\u5178\u6765\u8bf4\uff0c\u7b26\u53f7\u662f {{ic|en_GB}}.\n\n\u5f53\u4f60\u53ea\u6709 {{Pkg|hunspell}} \u8bcd\u5178\u65f6, Firefox \u53ef\u80fd\u4e0d\u4f1a\u4fdd\u5b58\u4f60\u9ed8\u8ba4\u7684\u8bcd\u5178\u8bed\u8a00\u8bbe\u7f6e\u3002\u8981\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u4f60\u53ef\u4ee5\u6dfb\u52a0\u81f3\u5c11\u4e00\u4e2a [https://addons.mozilla.org/firefox/language-tools/ \u8bcd\u5178] \u63d2\u4ef6. \u6ce8\u610f\u73b0\u5728\u9644\u52a0\u7ec4\u4ef6\u4e2d\u4e5f\u4f1a\u6709\u8bcd\u5178\u680f.\n\n'''StackExchange''' \u4e0a\u7684\u76f8\u5173\u95ee\u9898: [https://stackoverflow.com/questions/26936792/change-firefox-spell-check-default-language/29446115], [https://stackoverflow.com/questions/21542515/change-default-language-on-firefox/29446353], [https://askubuntu.com/questions/184300/how-can-i-change-firefoxs-default-dictionary/576877]\n\n\u76f8\u5173\u7684\u6f0f\u6d1e\u62a5\u544a: [https://bugzilla.mozilla.org/show_bug.cgi?id=776028 Bugzilla 776028], [https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1026869 Ubuntu bug 1026869]\n\n=== \u4e00\u4e9b MathML \u7b26\u53f7\u6d88\u5931\u4e86 ===\n\n\u4f60\u9700\u8981\u4e00\u4e9b\u6570\u5b66\u5b57\u4f53\uff0c\u6bd4\u5982 Latin Modern Math \u548c STIX (\u67e5\u770b\u8fd9\u4e2a MDN \u9875\u9762: [https://developer.mozilla.org/en-US/docs/Mozilla/MathML_Project/Fonts#Linux]) \u4ee5\u6b63\u786e\u7684\u663e\u793a MathML\u3002\n\n\u5728 Arch Linux \u4e2d\uff0c{{Pkg|texlive-core}} \u548c {{Pkg|texlive-fontsextra}} \u63d0\u4f9b\u4e86\u8fd9\u4e9b\u5b57\u4f53\uff0c\u4f46\u662f\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u8bbe\u7f6e\u5b57\u4f53\u5374\u65e0\u6cd5\u4f7f\u7528\u5b83\u4eec\u3002\u8be6\u60c5\u53c2\u89c1 [[TeX Live#Making fonts available to Fontconfig]]\u3002\u4f60\u4e5f\u53ef\u4ee5\u5c1d\u8bd5 [[Fonts#Math|Math fonts]]\u3002\n\n=== \u5168\u5c4f\u6a21\u5f0f\u4e0b\u89c6\u9891\u65ad\u88c2 ===\n\n\u5982\u679c\u4f60\u4f7f\u7528 Xorg Intel \u6216\u8005 Nouveau \u9a71\u52a8\u5e76\u4e14\u611f\u89c9\u5168\u5c4f\u6a21\u5f0f\u4e0b\u89c6\u9891\u6709\u6495\u88c2\u611f\uff0c\u8bd5\u8bd5 [[Firefox/Tweaks#Enable Legacy OpenGL compositor]]{{Broken section link (\u7b80\u4f53\u4e2d\u6587)}}\u3002\n\n=== \u6eda\u52a8\u65f6\u5c4f\u5e55\u6495\u88c2 ===\n\n\u5728''\u9996\u9009\u9879 > \u6d4f\u89c8''\u4e2d\u5173\u95ed\u5e73\u6ed1\u6eda\u52a8.\n\n=== Firefox WebRTC \u6a21\u5757\u4e0d\u80fd\u4fa6\u6d4b\u5230\u9ea6\u514b\u98ce ===\n\n[https://mozilla.github.io/webrtc-landing/gum_test.html Firefox WebRTC getUserMedia \u6d4b\u8bd5\u9875\u9762]\u58f0\u79f0\u627e\u4e0d\u5230\u9ea6\u514b\u98ce\uff0cALSA\u6216PulseAudio\u90fd\u4f1a\u51fa\u73b0\u95ee\u9898\u3002Firefox\u8c03\u8bd5\u65e5\u5fd7\u663e\u793a\u4ee5\u4e0b\u9519\u8bef\uff1a\n\n{{hc|1=$ NSPR_LOG_MODULES=MediaManager:5,GetUserMedia:5 firefox|2=\n...\n[Unnamed thread 0x7fd7c0654340]: D/GetUserMedia  VoEHardware:GetRecordingDeviceName: Failed 1\n}}\n\n\u4f60\u53ef\u4ee5\u5c1d\u8bd5\u5728{{ic|about:config}}\u4e2d\u5c06{{ic|media.navigator.audio.full_duplex}}\u8bbe\u5b9a\u4e3a{{ic|false}} \u7136\u540e\u91cd\u542fFirefox.\n\n\u5982\u679c\u4f60\u5728\u7528PulseAudio [[PulseAudio#Microphone echo/noise cancellation|module-echo-cancel]]\u4e14\u4e0d\u80fd\u8bc6\u522bVirtual Echo Canceling Source\u65f6\u8fd9\u4e5f\u5f88\u6709\u7528\n\n=== \u4f7f\u7528\u4e2d\u56fd\u7248\u706b\u72d0\u901a\u884c\u8bc1\u8d26\u53f7\u540c\u6b65 ===\n\n\u706b\u72d0\u9664\u4e86\u5168\u7403\u540c\u6b65\u670d\u52a1\u5916\uff0c\u5728\u4e2d\u56fd\u5927\u9646\u5730\u533a\uff0c\u8c0b\u667a\u516c\u53f8\u4e5f\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5355\u72ec\u7684\u4e2d\u56fd\u7248\u706b\u72d0\u901a\u884c\u8bc1\u540c\u6b65\u670d\u52a1\uff0c\u4e3a\u4e2d\u56fd\u5927\u9646\u5730\u533a\u7684\u7528\u6237\u63d0\u4f9b\u4e86\u66f4\u52a0\u7a33\u5b9a\u7684\u540c\u6b65\u670d\u52a1\u5668\u3002\n\n\u8f6f\u4ef6\u6e90\u4e2d\u7684 firefox \u8f6f\u4ef6\u5305\u9ed8\u8ba4\u4ec5\u652f\u6301\u5168\u7403\u540c\u6b65\u670d\u52a1\u3002\u5b89\u88c5[http://mozilla.com.cn/thread-343905-1-1.html \u8fd9\u4e2a\u6765\u81ea\u706b\u72d0\u4e2d\u6587\u793e\u533a\u7684\u6269\u5c55] \u4fbf\u53ef\u4ee5\u542f\u7528\u4e2d\u56fd\u7248\u706b\u72d0\u901a\u884c\u8bc1\u7684\u540c\u6b65\u670d\u52a1\u3002\n\n=== JACK\u548cPulseAudio\u7528\u6237\u64ad\u653e\u89c6\u9891\u6ca1\u6709\u58f0\u97f3 ===\n\n\u53ef\u80fd\u662f\u56e0\u4e3a\u8fd9\u4e9b\u89c6\u9891\u6709\u5355\u58f0\u9053\u97f3\u9891\u3002\n\n\u5982\u679cJACK\u914d\u7f6e\u4e0d\u4ec5\u4ec5\u4f7f\u7528\u7acb\u4f53\u58f0, \u4f46\u4f60\u7528\u7684\u662f\u666e\u901a\u8033\u673a\uff0c\u4fbf\u6709\u53ef\u80fd\u51fa\u73b0\u6b64\u95ee\u9898\u3002 \u53ef\u4ee5\u901a\u8fc7\u4ecePulseAudio JACK Sink\u8fde\u63a5 {{ic|front-center}} \u7aef\u53e3\u5230\u7cfb\u7edf\u8f93\u51fa\u7684{{ic|playback_1}} \u548c{{ic|playback_2}}\u7aef\u53e3\u6765\u7b80\u5355\u5730\u4fee\u590d\u6b64\u95ee\u9898.\n\n\u8fd9\u91cc\u6709\u4e00\u4e2a\u7528\u4e8e\u81ea\u52a8\u5316\u5904\u7406\u8be5\u95ee\u9898\u7684\u811a\u672c\uff0c\u4f46\u8981\u6ce8\u610f\u8fd9\u811a\u672c\u4e2d\u7684\u7aef\u53e3\u7b49\u4fe1\u606f\u53ef\u80fd\u56e0\u4eba\u800c\u5f02\uff1a\n\n{{hc|jack-mono.sh\n|2=#!/bin/sh\njack_connect \"PulseAudio JACK Sink:front-center\" \"system:playback_1\"\njack_connect \"PulseAudio JACK Sink:front-center\" \"system:playback_2\"\n}}\n\n=== \u5730\u7406\u5b9a\u4f4d\u529f\u80fd\u4e0d\u80fd\u7528 ===\n\n\u6700\u8fd1\uff0cGoogle\u9650\u5236\u4e86Arch Linux\u7684\u5b9a\u4f4d\u670d\u52a1\u7684\u4f7f\u7528\uff0c\u5f53\u5728\u7f51\u7ad9\u4e0a\u542f\u7528\u5730\u7406\u5b9a\u4f4d\u65f6\uff0c\u4f1a\u5bfc\u81f4\u4ee5\u4e0b\u9519\u8bef\uff1a  {{ic|Geolocation error: Unknown error acquiring position}}. \u5730\u533a\u9650\u5236\u7684\u670d\u52a1\u5982 [https://www.hulu.com/ Hulu] \u53ef\u80fd\u4f1a\u663e\u793a\u4e00\u4e2a\u7c7b\u4f3c\u7684\u9519\u8bef\uff0c\u63d0\u793a\u4f60\u5373\u4f7f\u5df2\u5141\u8bb8\u7ad9\u70b9\u7684\u4f4d\u7f6e\u670d\u52a1\uff0c\u4e5f\u65e0\u6cd5\u786e\u5b9a\u60a8\u7684\u4f4d\u7f6e\u3002\n\n\u8981\u89e3\u51b3\u6b64\u95ee\u9898\uff0c\u53ef\u4ee5\u6362\u7528 [https://location.services.mozilla.com/ Mozilla Location Service]. \u65b9\u6cd5\u662f\u5728 {{ic|about:config}} \u5c06{{ic|geo.provider.network.url}}\u4fee\u6539\u4e3a\n\n <nowiki>https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%</nowiki>\n\n\u53c2\u8003{{Bug|65241}}\u83b7\u5f97\u7ec6\u8282\u4fe1\u606f.\n\n=== \u9f20\u6807\u53f3\u952e\u5355\u51fb\u4e86\u7a97\u53e3\u7ba1\u7406\u5668\u4e2d\u7684\u7b2c\u4e00\u4e2a\u9009\u9879 ===\n\n\u53ef\u80fd\u4f1a\u53d1\u751f\u5728 [[i3]], [[bspwm]] and [[xmonad]].\n\n\u8981\u89e3\u51b3\u6b64\u95ee\u9898\uff0c\u5728{{ic|about:config}}\u4fee\u6539{{ic|ui.context_menus.after_mouseup}} \u4e3a {{ic|true}}.\n\n\u53e6\u89c1 [https://www.reddit.com/r/i3wm/comments/88k0yt/right_mouse_btn_instantly_clicks_first_option_in/]\n\n== \u53c2\u89c1 ==\n\n* [https://www.mozilla.org/firefox/ \u5b98\u65b9\u7f51\u7ad9]\n* [https://www.mozilla.org/ Mozilla \u57fa\u91d1\u4f1a]\n* [https://wiki.mozilla.org/Firefox Firefox Wiki]\n* [https://addons.mozilla.org/ Firefox \u6269\u5c55\u7ec4\u4ef6]\n* [https://addons.mozilla.org/firefox/themes/ Firefox \u4e3b\u9898]"
                    }
                ]
            },
            "9802": {
                "pageid": 9802,
                "ns": 0,
                "title": "OpenSSH (Espa\u00f1ol)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Secure Shell (Espa\u00f1ol)]]\n[[Category:Servers (Espa\u00f1ol)]]\n[[Category:OpenBSD (Espa\u00f1ol)]]\n[[de:SSH]]\n[[en:OpenSSH]]\n[[fa:SSH]]\n[[fr:OpenSSH]]\n[[ja:OpenSSH]]\n[[pt:Secure Shell]]\n[[ru:OpenSSH]]\n[[zh-hans:OpenSSH]]\n{{TranslationStatus (Espa\u00f1ol)|OpenSSH|2018-01-05|352767}}\n{{Related articles start (Espa\u00f1ol)}}\n{{Related|SSH keys (Espa\u00f1ol)}}\n{{Related|Pam abl}}\n{{Related|fail2ban}}\n{{Related|sshguard (Espa\u00f1ol)}}\n{{Related|SSHFS (Espa\u00f1ol)}}\n{{Related|Syslog-ng}}\n{{Related|SFTP chroot}}\n{{Related articles end}}\n\n'''S'''ecure '''Sh'''ell o '''SSH''' es un protocolo de red que permite el intercambio de datos sobre un canal seguro entre dos computadoras. SSH usa t\u00e9cnicas de cifrado que hacen que la informaci\u00f3n que viaja por el medio de comunicaci\u00f3n vaya de manera no legible y ninguna tercera persona pueda descubrir el usuario y contrase\u00f1a de la conexi\u00f3n ni lo que se escribe durante toda la sesi\u00f3n. SSH usa criptograf\u00eda de clave p\u00fablica para autenticar el equipo remoto y permitir al mismo autenticar al usuario si es necesario.\n\nSSH se suele utilizar para iniciar una sesi\u00f3n en una m\u00e1quina remota, donde poder ejecutar \u00f3rdenes, pero tambi\u00e9n permite la tunelizaci\u00f3n, el reenv\u00edo de puertos TCP de forma arbitraria y de conexiones X11; tambi\u00e9n se pueden realizar transferencias de archivos usando protocolos SFTP o SCP asociados.\n\nUn servidor SSH, por defecto, escucha el puerto TCP 22. Un programa cliente de SSH es utilizado, generalmente, para establecer conexiones a un demonio ''sshd'' que acepta conexiones remotas. Ambos se encuentran com\u00fanmente en los sistemas operativos m\u00e1s modernos, incluyendo Mac OS X, Linux, Solaris y OpenVMS. Existen versiones propietarias, freeware y open-source de varios niveles de complejidad y exhaustividad.\n\n(Source: [[Wikipedia:es:Secure Shell]])\n\n== OpenSSH ==\n\nOpenSSH (OpenBSD Secure Shell) es un conjunto de programas de computadora que proveen una sesi\u00f3n de comunicaci\u00f3n encriptada en una red inform\u00e1tica que utiliza el protocolo SSH. Fue creado como una alternativa de c\u00f3digo abierto al software propietario ofrecido por SSH Communications Security. OpenSSH es desarrollado como parte del proyecto OpenBSD, que est\u00e1 a cargo de Theo de Raadt.\n\nOpenSSH es confundido a veces con OpenSSL por la similitud de nombre, sin embargo, los proyectos tienen objetivos distintos y est\u00e1n desarrollados por equipos diferentes.\n\n=== Instalaci\u00f3n ===\n\n[[Help:Reading (Espa\u00f1ol)#Instalaci\u00f3n de paquetes|Instale]] {{Pkg|openssh}} desde los [[official repositories (Espa\u00f1ol)|repositorios oficiales]].\n\n=== Cliente ===\n\nPara conectarse a un servidor, ejecuta:\n\n $ ssh -p ''puerto'' ''usuario''@''direcci\u00f3n-servidor''\n\nSi el servidor solo acepta verificaci\u00f3n con claves p\u00fablicas, siga las instrucciones en [[SSH keys (Espa\u00f1ol)|claves SSH]].\n\n==== Configuraci\u00f3n ====\n\nEl archivo de configuraci\u00f3n del cliente SSH se puede encontrar y editar en {{ic|~/.ssh/config}}.\n\nEl cliente se puede configurar para guardar servidores y opciones comunes. Todas las opciones se pueden declarar globalmente o se pueden restringir a un servidor especifico. Por ejemplo:\n\n{{hc|~/.ssh/config|# opciones globales\nUser ''usuario''\n\n# opciones especificas por servidor\nHost miServidor\n    HostName ''direci\u00f3n-servidor''\n    Port     ''puerto''}}\n\nCon dicha configuraci\u00f3n, los siguientes comando son equivalentes:\n\n $ ssh -p ''puerto'' ''usuario''@''direcci\u00f3n-servidor''\n $ ssh miServidor\n\nVea {{man|5|ssh_config}} para m\u00e1s informaci\u00f3n.\n\nAlgunas opciones no tienen parametros equivalentes en al ejecutar un comando directamente, pero se puede especificar opciones en en comando con el parametro {{ic|-o}}. Por ejemplo {{ic|1=-oKexAlgorithms=+diffie-hellman-group1-sha1}}.\n\n=== Servidor ===\n\n==== Configuraci\u00f3n ====\n\nEl archivo de configuraci\u00f3n del demonio SSH se puede encontrar y editar en {{ic|/etc/ssh/ssh'''d'''_config}}.\n\nPara permitir el acceso s\u00f3lo a algunos usuarios a\u00f1adir esta l\u00ednea:\n AllowUsers    user1 user2\n\nPara permitir el acceso s\u00f3lo a algunos grupos:\n AllowGroups group1 group2\n\nPara agregar un agradable mensaje de bienvenida edite el archivo {{ic|/etc/issue}} y cambie la l\u00ednea Banner para que luzca as\u00ed:\n Banner /etc/issue\n\nClaves de acceso del servidor ser\u00e1n generadas autom\u00e1ticamente por los [[#Gesti\u00f3n del Demonio|archivos de servicio]] de ''sshd''. Si se desea usar una clave especifica, previamente creada, se puede configurar manualmente:\n\n HostKey /etc/ssh/ssh_host_rsa_key\n\nSi el servidor va a estar expuesto a la WAN, es recomendado cambiar el puerto por defecto 22 a algo aleatorio y superior:\n\n Port 39901\n\n{{Tip (Espa\u00f1ol)|\n*Es posible que desee cambiar el puerto por defecto de 22 a cualquier puerto superior (ver [[Wikipedia:es:Seguridad_por_oscuridad|seguridad por oscuridad]]). A pesar de que el puerto ssh que est\u00e1 siendo ejecutado puede ser detectado utilizando un port-scanner o esc\u00e1ner de puertos como {{Pkg|nmap}}, cambiarlo reducir\u00e1 el n\u00famero de entradas en el log causados por intentos de autentificaci\u00f3n autom\u00e1ticos. Para ayudar a seleccionar un puerto, revise la [[Wikipedia:es:Anexo:N\u00fameros_de_puerto|lista de n\u00fameros de puerto TCP y UDP]]. Tambi\u00e9n puede encontrar informaci\u00f3n de los puertos a nivel local en {{ic|/etc/services}}. Seleccione un puerto alternativo que '''no''' est\u00e9 ya asignado a un servicio com\u00fan para evitar conflictos.\n* Desactivar completamente los inicios de sesi\u00f3n con contrase\u00f1a aumentar\u00e1 en gran medida el nivel seguridad, consulte [[#Forzamiento de autenticaci\u00f3n con claves p\u00fablicas]] para m\u00e1s informaci\u00f3n.\n}}\n\n==== Gesti\u00f3n del Demonio ====\n\n{{Pkg|openssh}} viene con un archivo de unidad de [[systemd (Espa\u00f1ol)|systemd]]:\n\n#{{ic|sshd.service}}, el cual mantendra el demonio de SSH permanentemente activo y bifurcara para cada conexi\u00f3n entrante. [https://github.com/archlinux/svntogit-packages/blob/packages/openssh/trunk/sshd.service#L16] Es especialmente interesante para sistemas con bastante trafico de SSH. [https://github.com/archlinux/svntogit-packages/blob/4cadf5dff444e4b7265f8918652f4e6dff733812/trunk/sshd.service#L15] \n\nSe puede [[systemd (Espa\u00f1ol)#Utilizar las unidades|activar]] y [[systemd (Espa\u00f1ol)#Utilizar las unidades|activar inicio autom\u00e1tico]] de {{ic|sshd.service}} para empezar a usar el demonio.\n\nSi se desea utilizar un puerto diferente al puerto por defecto 22, tendremos que modificar el fichero de configuraci\u00f3n del demonio ubicado en /etc/ssh/sshd_config, buscar la l\u00ednea Port=* y cambiar por el puerto deseado.\n\n{{Warning (Espa\u00f1ol)|\n* Systemd inicia los procesos de manera as\u00edncrona. Si se amarra el demonio SSH a una direcci\u00f3n IP espec\u00edfica {{ic|ListenAddress 192.168.1.100}} puede ser que no cargue al arranque porque por defecto el archivo sshd.service no depende de que se hayan habilitado las interfaces de red. Cuando se amarre a una direcci\u00f3n IP, es necesario agregar {{ic|After&#61;network.target}} a un archivo personalizado de sshd.service. Ver [[Systemd (Espa\u00f1ol)#Modificar los archivos de unidad suministrados]].\n}}\n\n{{Tip (Espa\u00f1ol)|Cuando se utiliza la activaci\u00f3n del socket, ni {{ic|sshd.socket}} ni {{ic|sshd.service}} permiten supervisar los intentos de conexi\u00f3n en el registro, pero si lo puede ver al ejecutar {{ic|# journalctl /usr/bin/sshd}}.}}\n\n==== Protecci\u00f3n ====\n\nPermitir el acceso remoto al sistema a trav\u00e9s de SSH es bueno para fines administrativos, pero puede representar una amenaza para la seguridad de su servidor. A menudo es el blanco de ataques de fuerza bruta, por lo que el acceso SSH necesita ser limitado adecuadamente para evitar que terceros accedan a su servidor.\n* Utilice nombres de cuenta y contrase\u00f1as no est\u00e1ndar .\n* Permita solo conexiones SSH entrantes desde ubicaciones de confianza.\n* Utilice [[fail2ban]] o [[sshguard]] para controlar los ataques de fuerza bruta, y banear las IP que se correspondan con las de los ataques de fuerza bruta.\n\n===== Forzamiento de autenticaci\u00f3n con claves p\u00fablicas =====\n\nSi un cliente no se puede autenticar mediante clave p\u00fablica, por defecto el servidor de SSH intentar\u00e1 autenticar con contrase\u00f1a, permitiendo as\u00ed que un usuario malicioso intente ganar acceso con [[#Protecci\u00f3n contra ataques de fuerza bruta|ataques de fuerza bruta]] en la contrase\u00f1a. Uno de los m\u00e9todos m\u00e1s efectivos para proteger el sistema contra esta clase de ataques es desactivando el inicio de sesi\u00f3n con contrase\u00f1a completamente, forzando as\u00ed el uso de [[SSH keys (Espa\u00f1ol)|claves SSH]]. Esto se puede lograr modificando la siguiente opci\u00f3n en el archivo {{ic|sshd_config}}:\n\n PasswordAuthentication no\n\n{{Warning (Espa\u00f1ol)|Antes de efectuar este ajuste, aseg\u00farese de que todas las cuentas que requieren acceso SSH, tienen configurada la autenticaci\u00f3n de la clave p\u00fablica en los correspondientes archivos {{ic|authorized_keys}}. Vea [[SSH keys#Copying the public key to the remote server]] para m\u00e1s informaci\u00f3n.\n}}\n\n===== Autenticaci\u00f3n de dos factores y claves p\u00fablicas =====\n\nDesde la versi\u00f3n 6.2 de OpenSSH, se puede agregar su propia utilidad para autenticar usando la opci\u00f3n {{ic|AuthenticationMethods}}. Esta opci\u00f3n da la posibilidad de usar sus claves p\u00fablicas o autenticaci\u00f3n de dos factores.\n\nVea [[Google Authenticator (Espa\u00f1ol)|Autenticador de Google]] para configurar el autenticador de Google.\n\nPara usar [[PAM (Espa\u00f1ol)|PAM]] son OpenSSH, edite las siguientes lineas:\n\n{{hc|/etc/ssh/sshd_config|\nChallengeResponseAuthentication yes\nAuthenticationMethods publickey keyboard-interactive:pam\n}}\n\nDespu\u00e9s puede iniciar sesi\u00f3n ya sea con clave p\u00fablica '''o''' con la autenticaci\u00f3n del usuario, tal como es requerido en la configuraci\u00f3n de PAM.\n\nSi, por otra parte se quiere autenticar el usuario con la clave p\u00fablica y la autenticaci\u00f3n especificada en la configuraci\u00f3n de PAM, use una coma en lugar de un espacio para separar los {{ic|AuthenticationMethods}}.\n\n{{hc|/etc/ssh/sshd_config|\nChallengeResponseAuthentication yes\nAuthenticationMethods publickey''','''keyboard-interactive:pam\n}}\n\nCuando se requiere autenticaci\u00f3n de clave p\u00fablica '''y''' PAM, es deseable desactivar el requisito de contrase\u00f1a:\n\n{{hc|/etc/pam.d/sshd|\n# Desactive inicio de sesi\u00f3n root remoto\nauth      required  pam_securetty.so\n# Requerido por el authenticator de google\nauth      required  pam_google_authenticator.so\n# Desactive inicio de sesi\u00f3n con contrase\u00f1a\n#auth      include   system-remote-login\naccount   include   system-remote-login\npassword  include   system-remote-login\nsession   include   system-remote-login\n}}\n\n===== Protecci\u00f3n contra ataques de fuerza bruta =====\n\nEl concepto de [[Wikipedia:es:Ataque_de_fuerza_bruta|ataques de fuerza bruta]] es simple: es un mecanismo por el que alguien trata continuamente de iniciar sesi\u00f3n en una p\u00e1gina web o un servidor para acceder a un prompt como SSH utilizando un elevado n\u00famero de combinaciones de nombre de usuario y contrase\u00f1a aleatorios.\n\n====== Usango ufw ======\n\nVea [[ufw#Rate limiting with ufw]].\n\n====== Usando iptables ======\n\nSi su sistema ya esta usando iptables, se puede proteger f\u00e1cilmente contra los ataques de fuerza bruta usando la siguientes reglas\n\n{{Note (Espa\u00f1ol)|En este ejemplo el puerto de SSH fue cambiado al puerto TCP 42660.\n}}\n\nAntes de usar las siguientes reglas es necesario crear una nueva regla que registra y descarta demasiados intentos de conexi\u00f3n:\n\n # iptables -N LOG_AND_DROP\n\nLa primera regla va a ser aplicada a paquetes que se\u00f1aalan el comienzo de nuevas conexiones con destino el puert TCP 42660.\n\n # iptables -A INPUT -p tcp -m tcp --dport 42660 -m state --state NEW -m recent --set --name DEFAULT --rsource\n\nEsta regla le permite a iptables buscar por paquetes que coinciden con los par\u00e1metros de la regla anterior, y que provienen de servidores que ya est\u00e1n en la lista de vigilancia.\n\n # iptables -A INPUT -p tcp -m tcp --dport 42660 -m state --state NEW -m recent --update --seconds 90 --hitcount 4 --name DEFAULT --rsource -j LOG_AND_DROP\n\nAhora iptables decide que hacer con trafico con destino al puerto TCP 42660 que no coincide con la regla anterior.\n\n # iptables -A INPUT -p tcp -m tcp --dport 42660 -j ACCEPT\n\nSe adjunta esta regla a la tabla de registro y descarte, y se usa el operador {{ic|-j}} (jump), para pasar la informaci\u00f3n del paquete al registro.\n\n # iptables -A LOG_AND_DROP -j LOG --log-prefix \"iptables deny: \" --log-level 7\n\nDespu\u00e9s que el paquete es registrado por la primera regla, el resto de paquetes sera descartado.\n\n # iptables -A LOG_AND_DROP -j DROP\n\n====== Utilidades para prevenir ataques de fuerza bruta ======\n\nSe pueden prevenir los ataques de fuerza bruta usando un script automatizado que bloquea a cualquiera que intenta usar fuerza bruta, por ejemplo [[fail2ban]] o [[Sshguard (Espa\u00f1ol)|sshguard]].\n\n* Solo permite conexiones SSH entrantes de ubicaciones de confianza.\n* Use [[fail2ban]] o [[Sshguard (Espa\u00f1ol)|sshguard]] para bloquear direcciones IP que fallan en la autenticaci\u00f3n con contrase\u00f1a demasiadas veces.\n* Use [https://github.com/jtniehof/pam_shield pam_shield] para bloquear direcciones IP que intentan iniciar sesi\u00f3n demasiadas veces en un periodo de tiempo determinado. En comparaci\u00f3n con [[fail2ban]] o [[Sshguard (Espa\u00f1ol)|sshguard]], este programa no toma en cuenta si el intento de inicio de sesi\u00f3n fue exitoso o no.\n\n===== Limitar el inicio de sesi\u00f3n como root =====\n\nEn general, se considera una mala pr\u00e1ctica permitir que el usuario root inicie sesi\u00f3n sin restricciones a trav\u00e9s de SSH. Hay dos m\u00e9todos por los cuales el acceso de root a SSH puede ser restringido para mayor seguridad.\n\n====== Denegar ======\n\nSudo proporciona los derechos de root de forma selectiva para las acciones que requieran de estos derechos, sin necesidad de autenticarse con la cuenta de root. Esto permite el bloqueo de la cuenta root para acceder a trav\u00e9s de SSH y funciona como una medida de seguridad frente a los potenciales ataques de fuerza bruta, ya que ahora un atacante debe adivinar, adem\u00e1s del nombre de la cuenta, la contrase\u00f1a.\n\nSSH se puede configurar para negar las conexiones remotas con el usuario root, editando la secci\u00f3n \u00abAuthentication\u00bb en {{ic|/etc/ssh/sshd_config}}. Basta con cambiar {{ic|#PermitRootLogin yes}} a {{ic|no}} y descomentar la l\u00ednea:\n\n{{hc|/etc/ssh/sshd_config|\nPermitRootLogin no\n...\n}}\n\nA continuaci\u00f3n, reiniciar el demonio de SSH:\n  # systemctl restart sshd\n\nAhora va a ser incapaz de conectarse por SSH como root, pero todav\u00eda ser\u00e1 capaz de iniciar sesi\u00f3n con su usuario normal y utilizar [[su (Espa\u00f1ol)]] o [[sudo (Espa\u00f1ol)]] para hacer la administraci\u00f3n del sistema.\n\n====== Restringir ======\n\nAlgunas tareas automatizadas realizadas a distancia, como copia de seguridad de todo el sistema, requieren el acceso de root completo. Para permitir que esto se haga de una manera segura, en lugar de desactivar el inicio de sesi\u00f3n de root a trav\u00e9s de SSH, es posible permitir las conexiones de root solo para ciertas \u00f3rdenes seleccionadas. Esto se puede lograr editando {{ic|~root/.ssh/authorized_keys}}, y anteponiendo la clave deseada, por ejemplo, como sigue:\n\n command=\"/usr/lib/rsync/rrsync -ro /\" ssh-rsa \u2026\n\nEsto permitir\u00e1 cualquier inicio de sesi\u00f3n con esta clave espec\u00edfica, solo para ejecutar la orden especificada entre las comillas.\n\nEl aumento de la superficie de ataque creado por exponer el nombre de usuario root al iniciar la sesi\u00f3n, se puede compensar a\u00f1adiendo lo siguiente a {{ic|sshd_config}}:\n\n PermitRootLogin forced-commands-only\n\nEste ajuste no solo restringir\u00e1 las \u00f3rdenes que puede ejecutar root a trav\u00e9s de SSH, sino que tambi\u00e9n desactiva el uso de contrase\u00f1as, forzando el uso de la autenticaci\u00f3n de la clave p\u00fablica para la cuenta root.\n\nHay una alternativa un poco menos restrictiva, que permitir\u00e1 ejecutar cualquier orden por root, pero hace los ataques de fuerza bruta no factibles mediante la exigencia de la autenticaci\u00f3n de la clave p\u00fablica. Para esta opci\u00f3n, establezca:\n\n PermitRootLogin without-password\n\n==== VirtualBox ====\n\nPara comunicarse entre hu\u00e9sped y anfitri\u00f3n de VirtualBox, el puerto del servidor debe ser reenviado en Settings > Network. Al conectarse desde el cliente/anfitri\u00f3n, conecte a la direcci\u00f3n IP de la m\u00e1quina del cliente/anfitri\u00f3n, en oposici\u00f3n a la conexi\u00f3n de la otra m\u00e1quina. Esto es porque la conexi\u00f3n se realizar\u00e1 a trav\u00e9s de un adaptador virtual.\n\n== Otros servidores y clientes SSH ==\n\nAparte de OpenSSH, hay otros muchos [[Wikipedia:Comparison of SSH clients|clientes]] y [[Wikipedia:Comparison of SSH servers|servidores]] SSH disponibles.\n\n=== Dropbear ===\n\n[[Wikipedia:Dropbear (software)|Dropbear]] es un cliente SSH-2  y un servidor. El paquete {{Pkg|dropbear}} est\u00e1 disponible en [[Arch User Repository (Espa\u00f1ol)|AUR]].\n\nEl cliente ssh en l\u00ednea de \u00f3rdenes se llama dbclient.\n\n=== SSH alternativa: Mobile Shell - responsive, survives disconnects ===\n\nDel [https://mosh.mit.edu/ sitio web] de Mosh:\n\nAplicaci\u00f3n de terminal remoto que permite la itinerancia, soporta conectividad intermitente y proporciona echo local inteligente y la edici\u00f3n de l\u00ednea de keystrokes del usuario. Mosh es un reemplazo para SSH. Es m\u00e1s robusto y sensible, sobre todo a trav\u00e9s de Wi-Fi, m\u00f3vil y enlaces de larga distancia.\n\n[[Help:Reading (Espa\u00f1ol)#Instalaci\u00f3n de paquetes|Instale]] {{Pkg|mosh}} desde los [[official repositories (Espa\u00f1ol)|repositorios oficiales]] o la \u00faltima revisi\u00f3n {{AUR|mosh-git}} desde [[AUR (Espa\u00f1ol)|AUR]].\n\n== Trucos y sugerencias ==\n\n=== T\u00faneles SOCKS cifrados ===\n\nEste tipo de conexi\u00f3n es muy \u00fatil para usuarios de equipos port\u00e1tiles conectados a varias conexiones inal\u00e1mbricas no seguras. Lo \u00fanico que necesitas es un servidor SSH corriendo en alg\u00fan lugar seguro, como tu casa o tu trabajo. Puede ser \u00fatil usar un servicio de DNS din\u00e1mico como [http://www.dyndns.org/ DynDNS] para no tener que recordar la direcci\u00f3n IP a la que desea conectarse.\n\n==== Paso 1: Iniciar la conexi\u00f3n ====\n\nLo \u00fanico que tienes que hacer es ejecutar este comando en tu terminal favorita para iniciar la conexi\u00f3n:\n\n $ ssh -ND 4711 ''user''@''host''\n\ndonde {{Ic|''user''}} es tu nombre de usuario en el servidor SSH que se est\u00e1 ejecutando en el {{Ic|''host''}}. Preguntar\u00e1 por tu contrase\u00f1a, y luego \u00a1estar\u00e1s conectado! El par\u00e1metro {{Ic|N}} desactiva el prompt interactivo, y el {{Ic|D}} especifica el puerto local en el cual escuchar (puedes elegir el numero de puerto que quieras). El par\u00e1metro {{Ic|T}} desactiva la asignaci\u00f3n pseudo-tty.\n\nLe puede interesar a\u00f1adir el par\u00e1metro ''verbose'' ({{Ic|-v}}), ya que la salida le permite comprobar que est\u00e1 realmente conectado.\n\n==== Paso 2: Configurar tu navegador (u otros programas) ====\n\nEl paso anterior es in\u00fatil si no configura el navegador web (u otros programas) para su uso con el t\u00fanel que acaba de crear. Debido a que la versi\u00f3n actual de SSH soporta SOCKS4 y SOCKS5, se puede usar cualquiera de ellos.\n\n* Para Firefox: ''Editar &rarr; Preferencias &rarr; Avanzadas &rarr; Red &rarr; Conexi\u00f3n &rarr; Configuraci\u00f3n'':\n: Marca la casilla ''\"Configuraci\u00f3n manual de proxy\"'' , y escribe {{ic|localhost}} en el campo ''\"servidor SOCKS\"'' , y luego escribe tu n\u00famero de puerto en el siguiente campo de texto ({{ic|4711}} en el siguiente ejemplo).\n\nFirefox no hace autom\u00e1ticamente las peticiones DNS a trav\u00e9s del t\u00fanel socks. Este potencial problema de privacidad puede ser mitigado por los siguientes pasos:\n\n# Escriba \u00ababout:config\u00bb en la barra de navegaci\u00f3n de Firefox.\n# Busque por \u00abnetwork.proxy.socks_remote_dns\u00bb\n# Ajuste el valor a \u00abtrue\u00bb.\n# Reinicie el navegador.\n\n* Para Chromium: Se pueden setear las configuraciones de SOCKS como variables de entorno o como opciones en l\u00ednea de comandos. Es recomendable agregar una de las siguientes funciones a {{ic|.bashrc}}:\n function secure_chromium() {\n     port=4711\n     export SOCKS_SERVER=localhost:$port\n     export SOCKS_VERSION=5\n     chromium &\n     exit\n }\no\n function secure_chromium {\n     port=4343\n     chromium --proxy-server=\"socks://localhost:$port\" &\n     exit\n }\n\nAhora solo queda abrir una terminal y escribir:\n $ secure_chromium\n\nListo. \u00a1Disfruta tu t\u00fanel seguro!\n\n=== Redireccionar X11 ===\n\n''X11 forwarding'' es un mecanismo que permite a las interfaces gr\u00e1ficas de los programas de X11, que se ejecutan en un sistema remoto, mostrarse en una m\u00e1quina cliente local. Para reenviar X11 al equipo remoto, este no necesita tener un sistema completo X11 instalado, sin embargo, necesita, al menos, tener ''xauth'' instalado. ''xauth'' es una utilidad que mantiene las configuraciones de {{ic|Xauthority}} utilizadas por el servidor y el cliente para la autenticaci\u00f3n de la sesi\u00f3n de X11 ([https://www.xmodulo.com/how-to-enable-x11-forwarding-using-ssh.html fuente]).\n\n{{Warning (Espa\u00f1ol)|Redirigir X11 tiene importantes implicaciones de seguridad que aconsejan la lectura de, al menos, las secciones pertinentes de {{ic|ssh}}, {{ic|sshd_config}} y {{ic|ssh_config}} de las p\u00e1ginas del manual. Vea tambi\u00e9n [https://security.stackexchange.com/questions/14815/security-concerns-with-x11-forwarding esta breve nota].}}\n\n==== Configuraci\u00f3n ====\n\nEn el sistema remoto:\n\n*[[Help:Reading (Espa\u00f1ol)#Instalaci\u00f3n de paquetes|Instale]] {{Pkg|xorg-xauth}} y {{Pkg|xorg-xhost}} desde los [[official repositories (Espa\u00f1ol)|repositorios oficiales]]\n*en {{ic|/etc/ssh/ssh'''d'''_config}}:\n**verifique que las opciones {{ic|AllowTcpForwarding}} y {{ic|X11UseLocalhost}} est\u00e1n ajustadas a ''yes'', y que {{ic|X11DisplayOffset}} est\u00e1 ajustado a ''10'' (esos son los valores por defecto si no se han cambiado, ver {{man|5|sshd_config}})\n**ajuste {{ic|X11Forwarding}} a ''yes''\n* a continuaci\u00f3n, [[systemd (Espa\u00f1ol)#Utilizar las unidades|reinicie]] el [[#Gesti\u00f3n del Demonio|demonio ''sshd'']]. \n\nEn el sistema cliente, active la opci\u00f3n {{ic|ForwardX11}},  bien especificando el par\u00e1metro {{ic|-X}} en la l\u00ednea de \u00f3rdenes para las conexiones ocasionales, bien ajustando {{ic|ForwardX11}} a ''yes'' en el [[#Cliente|archivo de configuraci\u00f3n del cliente de openSSH]].\n\n{{Tip (Espa\u00f1ol)|Puede activar la opci\u00f3n {{ic|ForwardX11Trusted}} ({{ic|-Y}} en la l\u00ednea de \u00f3rdenes) si la interfaz gr\u00e1fica est\u00e1 llegando mal o recibe errores; esto evitar\u00e1 que las redirecciones de X11 vengan sujetas a los controles de la [https://www.x.org/wiki/Development/Documentation/Security/ extensi\u00f3n de SEGURIDAD de X11]. Aseg\u00farese de haber entendido [[#Redireccionar X11|la advertencia]] del comienzo de esta secci\u00f3n, si lo hace.}}\n\n==== Utilizaci\u00f3n ====\n\nInicie sesi\u00f3n en el equipo remoto como de costumbre, especificando el par\u00e1metro {{ic|-X}} si ''ForwardX11'' no se ha activado en el archivo de configuraci\u00f3n del cliente:\n $ ssh -X ''user@host''\n\nSi recibe errores tratando de ejecutar aplicaciones gr\u00e1ficas, pruebe ''ForwardX11Trusted'' en su lugar:\n $ ssh -Y ''user@host''\n\nAhora puede iniciar cualquier programa X en el servidor remoto, la salida ser\u00e1 enviada a su sesi\u00f3n local:\n $ xclock\n\nSi recibe errores como \u00abCannot open display\u00bb, pruebe la siguiente orden como usuario no root:\n $ xhost +\n\nLa orden anterior permitir\u00e1 a cualquiera transmitir aplicaciones X11. Para limitar el reenv\u00edo a un tipo de equipo particular:\n $ xhost +hostname\n\ndonde hostname es el nombre del equipo en particular al que desea remitirse. Ver {{man|1|xhost}} para m\u00e1s detalles.\n\nTenga cuidado con algunas aplicaciones, ya que hacen un chequeo para ejecutar una instancia en la m\u00e1quina local. [[Firefox]] es un ejemplo: o bien cierre la instancia de Firefox en ejecuci\u00f3n o utilice el siguiente par\u00e1metro de inicio para poner en marcha una instancia remota en el equipo local:\n $ firefox -no-remote\n\nSi recibe \u00abX11 forwarding request failed on channel 0\u00bb cuando se conecta (y el archivo {{ic|/var/log/errors.log}} del servidor  muestra \u00abFailed to allocate internet-domain X11 display socket\u00bb), aseg\u00farese de que el paquete {{Pkg|xorg-xauth}} est\u00e1 instalado. Si su instalaci\u00f3n no funciona, pruebe cualquiera de los dos opciones siguientes:\n\n* active la opci\u00f3n {{ic|AddressFamily any}} en {{ic|ssh'''d'''_config}} en el ''server'', o\n* ajuste la opci\u00f3n {{ic|AddressFamily}} en {{ic|ssh'''d'''_config}} en el ''server'' a inet.\nSi establece \u00abinet\u00bb puede arreglar los problemas con los clientes de Ubuntu en IPv4.\n\nPara ejecutar aplicaciones X como otro usuario en el servidor SSH, necesita la l\u00ednea de autenticaci\u00f3n {{ic|xauth add}} tomada desde {{ic|xauth list}} de la sesi\u00f3n SSH del usuario conectado.\n\n=== Redireccionar otros puertos ===\n\nAdem\u00e1s del soporte integrado de SSH para redirigir X11, dicho soporte se puede usar tambi\u00e9n para asegurar el canal de cualquier conexi\u00f3n TCP, mediante su re direcci\u00f3n local o remota.\n\nEl reenv\u00edo local abre un puerto en la m\u00e1quina local, a la que se redirigir\u00e1n las conexiones para el equipo remoto y de ah\u00ed a un destino determinado. Muy a menudo, el destino de reenv\u00edo ser\u00e1 el mismo que el del equipo remoto, proporcionando as\u00ed un shell seguro y, por ejemplo, una conexi\u00f3n VNC segura, a la misma m\u00e1quina. El reenv\u00edo local se lleva a cabo por medio del par\u00e1metro {{Ic|-L}} y la especificaci\u00f3n de reenv\u00edo se acompa\u00f1a en forma de {{Ic|<tunnel port>:<destination address>:<destination port>}}.\n\nAs\u00ed:\n\n $ ssh -L 1000:mail.google.com:25 192.168.0.100\n\nutilizar\u00e1 SSH para iniciar sesi\u00f3n y abrir un shell en 192.168.0.100, y tambi\u00e9n crear\u00e1 un t\u00fanel desde el puerto TCP 1000 de la m\u00e1quina local a mail.google.com en el puerto 25. Una vez establecidas, las conexiones a localhost:1000 conectar\u00e1n al puerto SMTP de Gmail. Para Google, parecer\u00e1 que dichas conexiones (aunque no necesariamente los datos transmitidos por la conexi\u00f3n) se originaron en 192.168.0.100, y tales datos estar\u00e1n seguros entre el equipo local y 192.168.0.100, pero no una vez en 192.168.0.100, a menos que se tomen otras medidas.\n\nDel mismo modo:\n\n $ ssh -L 2000:192.168.0.100:6001 192.168.0.100\n\npermitir\u00e1 conexiones a localhost:2000 que se enviar\u00e1n de forma transparente al equipo remoto en el puerto 6001. El ejemplo anterior es \u00fatil para conexiones VNC mediante la utilidad de vncserver \u2014parte del paquete tightvnc\u2014 que, aunque muy \u00fatil, es expl\u00edcita acerca de su falta de seguridad.\n\nEl reenv\u00edo remoto permite al equipo remoto conectarse a un equipo de forma arbitraria a trav\u00e9s del t\u00fanel SSH y la m\u00e1quina local, proporcionando un cambio funcional de redirecciones locales, y es \u00fatil para situaciones en las que, por ejemplo, el equipo remoto ha limitado conectividad debido a los cortafuegos. Se activa con el par\u00e1metro {{Ic|-R}} y utiliza la especificaci\u00f3n de reenv\u00edo en forma de {{Ic|<tunnel port>:<destination address>:<destination port>}}.\n\nAs\u00ed:\n\n $ ssh -R 3000:irc.libera.chat:6667 192.168.0.200\n\nabrir\u00e1 una shell en 192.168.0.200, y las conexiones desde 192.168.0.200 a s\u00ed mismo en el puerto 3000 (hablando en terminolog\u00eda remota, localhost:3000) ser\u00e1n enviadas a trav\u00e9s del t\u00fanel de la m\u00e1quina local y luego a irc.libera.chat en el puerto 6667, por lo tanto, en este ejemplo, lo que permite es el uso de programas de IRC en el equipo remoto, incluso si el puerto 6667 est\u00e9 bloqueado por \u00e9l, como es lo normal.\n\nTanto el reenv\u00edo local como el remoto se pueden utilizar para ofrecer una \u00abpuerta de enlace\u00bb segura, lo que permite que otros equipos se aprovechen de un t\u00fanel SSH, sin ejecutar SSH o el demonio SSH, proporcionando una direcci\u00f3n de enlace para el inicio del t\u00fanel como parte de la especificaci\u00f3n de reenv\u00edo, por ejemplo {{Ic|<tunnel address>:<tunnel port>:<destination address>:<destination port>}}. La especificaci\u00f3n {{Ic|<tunnel address>}} puede ser cualquier direcci\u00f3n de la m\u00e1quina en el inicio del t\u00fanel, {{Ic|localhost}}, (o en blanco) {{Ic|*}}, que, respectivamente, permiten conexiones a trav\u00e9s de la direcci\u00f3n indicada, a trav\u00e9s de la interfaz loopback, o a trav\u00e9s de cualquier interfaz. De forma predeterminada, el reenv\u00edo se limita a las conexiones desde la m\u00e1quina en el \u00abprincipio\u00bb del t\u00fanel, es decir, la especificaci\u00f3n {{Ic|<tunnel address>}} viene asignada a {{Ic|localhost}}. El reenv\u00edo local no requiere ninguna configuraci\u00f3n adicional, sin embargo, el reenv\u00edo remoto est\u00e1 limitado por la configuraci\u00f3n del demonio SSH del servidor remoto. Vea la opci\u00f3n {{Ic|GatewayPorts}} en {{Ic|sshd_config(5)}} para m\u00e1s informaci\u00f3n.\n\n=== Multiplexaci\u00f3n ===\n\nEl demonio SSH normalmente escucha en el puerto 22. Sin embargo, es una pr\u00e1ctica com\u00fan para muchos puntos de acceso p\u00fablico a Internet bloquear todo el tr\u00e1fico que no pase por los puertos HTTP/S normales (80 y 443, respectivamente), por lo que, efectivamente, bloquean las conexiones SSH. La soluci\u00f3n inmediata para esto es tener listado adicionalmente{{ic|sshd}} en uno de los puertos de la lista blanca:\n\n{{hc|/etc/ssh/sshd_config|\nPort 22\nPort 443\n}}\n\nSin embargo, es probable que el puerto 443 ya est\u00e9 en uso por un servidor web que sirve contenidos HTTPS, en cuyo caso es posible utilizar un multiplexor, como {{Pkg|sslh}}, que escucha en el puerto multiplexado y puede inteligentemente reenviar paquetes a muchos servicios.\n\n=== Acelerando SSH ===\n\nSe puede hacer que todas las sesiones al mismo equipo utilicen una conexi\u00f3n \u00fanica, lo que acelerar\u00e1 enormemente los inicios de sesi\u00f3n posteriores, a\u00f1adiendo estas l\u00edneas bajo el equipo (host) adecuado en {{ic|/etc/ssh/ssh_config}}:\n Host examplehost.com\n   ControlMaster auto\n   ControlPersist yes\n   ControlPath ~/.ssh/socket-%r@%h:%p\n\nVea la p\u00e1gina del manual {{ic|ssh_config(5)}} para obtener una descripci\u00f3n completa de estas opciones.\n\nOtra opci\u00f3n para mejorar la velocidad es habilitar la compresi\u00f3n con el sufijo  {{ic|-C}}. Una soluci\u00f3n permanente es agregar esta l\u00ednea debajo del host correcto en {{ic|/etc/ssh/ssh_config}}:\n Compression yes\n{{Warning (Espa\u00f1ol)|{{man|1|ssh}} establece que \u00ab''La compresi\u00f3n es deseable en las l\u00edneas de m\u00f3dem y otras conexiones lentas, pero ralentizar\u00e1 las cosas en redes r\u00e1pidas''\u00bb. Este consejo podr\u00eda ser contraproducente en funci\u00f3n de su configuraci\u00f3n de red.}}\n\nEl tiempo de inicio de sesi\u00f3n puede ser acortado usando el sufijo {{ic|-4}},que saltea la b\u00fasqueda IPv6. Esto puede hacerse permanente a\u00f1adiendo esta l\u00ednea bajo el host correcto en {{ic|/etc/ssh/ssh_config}}:\n AddressFamily inet\n\nCambiar los algoritmos de cifrado usados por SSH para demandar menos cpu puede mejorar la velocidad. En este sentido, las mejores opciones son arcfour y blowfish-cbc.\n\n{{Warning (Espa\u00f1ol)|Por favor, no haga esto a menos que sepa lo que est\u00e1 haciendo; arcfour tiene una serie de debilidades conocidas.}}\n\nPara utilizar sistemas de cifrado alternativos, ejecute SSH con el par\u00e1metro {{ic|-c}}:\n $ ssh -c arcfour,blowfish-cbc user@server-address\n\nPara usar el cifrado permanentemente, a\u00f1ada esta l\u00ednea bajo el equipo adecuado en {{ic|/etc/ssh/ssh_config}}:\n Ciphers arcfour,blowfish-cbc\n\n=== Montando un Sistema de archivos Remoto con SSHFS ===\n\nPor favor, consulte el art\u00edculo [[SSHFS (Espa\u00f1ol)|Sshfs]] para utilizar sshfs a fin de montar un sistema remoto \u2014accesible a trav\u00e9s de SSH\u2014 en una carpeta local, de modo que sea capaz de hacer cualquier operaci\u00f3n en los archivos montados con cualquier herramienta (copiar, renombrar, editar con vim, etc.). Utilizar sshfs en lugar de shfs es, en general, preferible, como una nueva versi\u00f3n de shfs, ya que esta \u00faltima no ha sido liberada desde 2004.\n\n=== Mantener la sesi\u00f3n activa ===\n\nTu sesion ssh sera autom\u00e1ticamente desconectada si \u00e9sta se encuentra inactiva. Para mantener activa la conexi\u00f3n agrega esto a {{ic|~/.ssh/config}} o a {{ic|/etc/ssh/ssh_config}} en el cliente.\n\n ServerAliveInterval 120\n\nEsto enviar\u00e1 la se\u00f1al \u00abkeep alive\u00bb al servidor cada 120 segundos.\n\nPor el contrario, para mantener activas las conexiones entrantes, puede establecer:\n \n ClientAliveInterval 120\n\n(o alg\u00fan otro n\u00famero mayor que 0) en el archivo {{ic|/etc/ssh/sshd_config}} del servidor.\n\n=== Guardar los datos de conexi\u00f3n en la configuraci\u00f3n de SSH ===\n\nCada vez que desee conectarse a un servidor ssh, por lo general, tiene que escribir, al menos, su direcci\u00f3n y el nombre de usuario. Para ahorrarse tener que reescribirlo, puede guardar los datos de los servidores a los que se conecta regularmente, utilizando el archivo personal {{ic|~/.ssh/config}} o el global del sistema {{ic|/etc/ssh/ssh_config}}, como se muestra en el siguiente ejemplo:\n\n{{hc|~/.ssh/config|\nHost myserver\n    HostName 123.123.123.123\n    Port 12345\n    User bob\nHost other_server\n    HostName test.something.org\n    User alice\n    CheckHostIP no\n    Cipher blowfish\n}}\n\nAhora solo queda conectarse al servidor utilizando el nombre especificado:\n\n $ ssh myserver\n\nPara ver una lista completa de las opciones posibles, eche un vistazo a la p\u00e1gina del manual de ssh_config en el sistema o a la [https://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config ssh_config documentaci\u00f3n] en el sitio web oficial.\n\n=== Autossh - reiniciar autom\u00e1ticamente las sesiones y t\u00fanes de SSH ===\n\nCuando una sesi\u00f3n o t\u00fanel no pueden mantenerse activos, por ejemplo debido a las malas condiciones de la red que provoca desconexiones del cliente, puede utilizar [https://www.harding.motd.ca/autossh/ Autossh] para reiniciar autom\u00e1ticamente. Autossh se puede instalar desde los [[official repositories (Espa\u00f1ol)|repositorios oficiales]]. \n\nEjemplos de uso:\n $ autossh -M 0 -o \"ServerAliveInterval 45\" -o \"ServerAliveCountMax 2\" username@example.com\nCombinado con [[SSHFS (Espa\u00f1ol)|sshfs]]:\n $ sshfs -o reconnect,compression=yes,transform_symlinks,ServerAliveInterval=45,ServerAliveCountMax=2,ssh_command='autossh -M 0' username@example.com: /mnt/example \nConexi\u00f3n a trav\u00e9s de un conjunto SOCKS-proxy por [[Proxy settings (Espa\u00f1ol)|Proxy_settings]]:\n $ autossh -M 0 -o \"ServerAliveInterval 45\" -o \"ServerAliveCountMax 2\" -NCD 8080 username@example.com \nCon el opci\u00f3n {{ic|-f}}, autossh puede hacer que se ejecute como un proceso en segundo plano. Ejecutarlo de esta manera, sin embargo, significa que la frase de contrase\u00f1a no se podr\u00e1 introducir de forma interactiva.\n\nLa sesi\u00f3n finalizar\u00e1 una vez que se escribe {{ic|exit}} en la sesi\u00f3n, o el proceso autossh recibe una se\u00f1al SIGTERM, SIGINT of SIGKILL.\n\n==== Ejecutar Autossh autom\u00e1ticamente en el arranque mediante systemd ====\n\nSi desea iniciar autom\u00e1ticamente autossh, ahora es f\u00e1cil conseguirlo haciendo que systemd maneje esto. Por ejemplo, puede crear un archivo de unidad systemd como este:\n\n [Unit]\n Description=AutoSSH service for port 2222\n After=network.target\n \n [Service]\n Environment=\"AUTOSSH_GATETIME=0\"\n ExecStart=/usr/bin/autossh -M 0 -NL 2222:localhost:2222 -o TCPKeepAlive=yes foo@bar.com\n \n [Install]\n WantedBy=multi-user.target\n\nAqu\u00ed {{ic|1=AUTOSSH_GATETIME=0}} es una variable de entorno que especifica cu\u00e1nto tiempo ssh debe estar activo antes de que autossh considere la conexi\u00f3n exitosa, ponerlo a 0 hace que autossh ignore el primer fallo de ejecuci\u00f3n de ssh. Esto puede ser \u00fatil cuando se ejecuta autossh en el arranque. Otras variables de entorno est\u00e1n disponibles en la p\u00e1gina del manual. Por supuesto, se puede hacer esta unidad m\u00e1s compleja si es necesario (consulte la documentaci\u00f3n de systemd para m\u00e1s detalles), y, obviamente, puede utilizar sus propias opciones para autossh, pero tenga en cuenta que el par\u00e1metro {{ic|-f}} implica {{ic|1=AUTOSSH_GATETIME=0}} quen no funciona con systemd.\n\nLuego coloque esto en, por ejemplo, /etc/systemd/system/autossh.service. Posteriormente, puede activar sus t\u00faneles autossh con, por ejemplo:\n\n $ systemctl start autossh\n(o como llame al archivo de servicios)\n\nSi esto funciona bien para su caso, puede hacer esto permanente ejecutando:\n\n $ systemctl enable autossh\n\nEso hace que autossh se inicie autom\u00e1ticamente en el arranque.\n\nTambi\u00e9n es f\u00e1cil mantener varios procesos autossh, para mantener activos varios t\u00faneles. Solo tiene que crear varios archivos .service con diferentes nombres.\n\n== Cambiar el n\u00famero de puerto de SSH con la activaci\u00f3n del socket (sshd.socket) ==\n\nCree el archivo {{ic|/etc/systemd/system/sshd.socket.d/port.conf}} con:\n\n [Socket]\n # Desactivar puerto por defecto\n ListenStream=\n # Establecer nuevo puerto\n ListenStream=12345\n\nsystemd escuchar\u00e1 autom\u00e1ticamente en el nuevo puerto despu\u00e9s de su recarga:\n\n systemctl daemon-reload\n\n== Soluci\u00f3n de problemas ==\n\n=== Lista de comprobaci\u00f3n ===\n\nEsta es una primera aproximaci\u00f3n a la soluci\u00f3n de problemas con una lista de comprobaci\u00f3n. Se recomienda revisar estos puntos antes de mirar m\u00e1s lejos:\n\n1. La carpeta {{ic|~/.ssh}} del cliente y del servidor y su contenido deben ser accesibles por sus usuarios:\n\n   $ chmod 700 /home/USER/.ssh\n   $ chmod 600 /home/USER/.ssh/*\n\n2. Compruebe que todos los archivos de la carpeta {{ic|~/.ssh}} del cliente y del servidor son propiedad de sus usuario:\n\n   $ chown -R USER: ~/.ssh\n\n3. Compruebe que, por ejemplo, la clave p\u00fablica {{ic |id_rsa.pub}} del cliente est\u00e1 en el archivo {{ic|authorized_keys}} del servidor .\n\n4. Compruebe que no se limit\u00f3 el acceso a SSH a trav\u00e9s de {{ic|AllowUsers}} en {{ic|/etc/ssh/sshd_config}} (separadas por espacios).\n\n==== Limpiar claves desactualizadas (opcional) ====\n\n5. Elimine claves antiguas/no v\u00e1lidas del archivo {{ic|/.ssh/authorized_keys}} del servidor.\n\n6. Elimine claves antiguas/no v\u00e1lidas privadas y p\u00fablicas dentro de la carpeta {{ic|~/.ssh}} de los clientes.\n\n==== Recomendaciones ====\n\n7. Mantenga el menor n\u00famero de claves posibles del archivo {{ic |~/.ssh/authorized_keys}} del cliente en el servidor.\n\n=== La conexi\u00f3n SSH queda colgada despu\u00e9s de apagar/reiniciar ===\n\nLa conexi\u00f3n SSH se bloquea despu\u00e9s de apagar o reiniciar si systemd detiene la conexi\u00f3n de red antes que sshd. Para solucionar este problema, comente y cambie la declaraci\u00f3n {{ic|After}}:\n{{hc|/usr/lib/systemd/system/systemd-user-sessions.service|2=\n#After=remote-fs.target\nAfter=network.target}}\n\n=== Conexi\u00f3n denegada o problemas con timeout ===\n\n==== \u00bfEst\u00e1 su router haciendo reenv\u00edo de puertos? ====\n\nSALTAR ESTE PASO SI NO EST\u00c1 DETR\u00c1S DE UNA NAT DE M\u00d3DEM/ROUTER (por ejemplo, un VPS o en otro caso un equipo con direcciones p\u00fablicas). La mayor\u00eda de los hogares y peque\u00f1as empresas tendr\u00e1n un m\u00f3dem/router con NAT.\n\nLo primero es asegurarse de que el router sabe que reenv\u00eda cualquier conexi\u00f3n ssh entrante a su m\u00e1quina. Su IP externa es dada a usted por su proveedor de Internet, y se asocia con cualquier petici\u00f3n que sale de su router. Por lo tanto, el router tiene que saber que cualquier conexi\u00f3n ssh entrante a su IP externa necesita ser reenviada a su m\u00e1quina donde se ejecuta sshd.\n\nEncuentre su direcci\u00f3n de red interna.\n\n ip a\n\nEncuentre la interfaz de su dispositivo y busque el campo inet. Luego acceda a la interfaz web de configuraci\u00f3n del router, utilizando la IP del router (encontrar\u00e1 esto en la web). Informe a su router para re-dirigirlo a su IP inet. Vaya a [https://portforward.com/] para m\u00e1s instrucciones sobre c\u00f3mo hacerlo para su router en particular.\n\n==== \u00bfEst\u00e1 SSH corriendo y escuchando? ====\n\n $ ss -tnlp\n\nSi la orden anterior no muestra que el puerto SSH est\u00e1 abierto, SSH no se est\u00e1 ejecutando. Compruebe {{ic|/var/log/messages}} para conocer errores, etc.\n\n==== \u00bfExisten reglas de firewall que bloqueen la conexi\u00f3n? ====\n\n[[Iptables (Espa\u00f1ol)|Iptables]] puede bloquear conexiones en el puerto {{ic|22}}. Compruebe esto con:\n{{bc|# iptables -nvL}}\ny busque las posibles reglas que bloqueen paquetes en la cadena {{ic|INPUT}}. Entonces, si es necesario, desbloquee el puerto con una orden como:\n{{bc|\n# iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT\n}}\nPara obtener m\u00e1s ayuda sobre c\u00f3mo para configurar cortafuegos, consulte [[Firewalls (Espa\u00f1ol)]].\n\n==== \u00bfEst\u00e1 el tr\u00e1fico llegando a su ordenador? ====\n\nRealice un vuelco de la informaci\u00f3n del tr\u00e1fico sobre el equipo que est\u00e1 teniendo problemas con:\n\n # tcpdump -lnn -i any port ssh and tcp-syn\n\nEsto deber\u00eda mostrar alguna informaci\u00f3n b\u00e1sica, y luego espere a que todo el tr\u00e1fico que deber\u00eda producirse se muestre. Pruebe su conexi\u00f3n ahora. Si no ve ninguna salida cuando se intenta conectar, entonces algo fuera de su ordenador est\u00e1 bloqueando el tr\u00e1fico (por ejemplo, cortafuegos f\u00edsicos, NAT del router, etc.).\n\n==== \u00bfSu ISP o un tercero est\u00e1 bloqueando el puerto por defecto? ====\n\n{{Note (Espa\u00f1ol)|Pruebe este paso si '''sabe''' que no est\u00e1 ejecutando ning\u00fan cortafuegos y sabe que ha configurado el router para DMZ o ha redirigido el puerto a su equipo y a\u00fan no funciona. Aqu\u00ed encontrar\u00e1 los pasos de diagn\u00f3stico y una posible soluci\u00f3n.}}\n\nEn algunos casos, su proveedor de Internet podr\u00eda bloquear el puerto predeterminado (puerto 22 SSH), as\u00ed que lo que est\u00e1 intentando (apertura de puertos, endurecimiento del apilamiento, defensa contra ataques de saturaci\u00f3n, etc.) es est\u00e9ril. Para confirmar esto, cree un servidor en todas las interfaces (0.0.0.0) y con\u00e9ctelo de forma remota.\n\nSi recibe un mensaje de error similar a este:\n ssh: connect to host www.inet.hr port 22: Connection refused\n\nEso significa que el puerto '''no''' est\u00e1 bloqueado por el ISP, pero el servidor no ejecuta SSH en ese puerto (vea [[wikipedia:es:Seguridad_por_oscuridad|seguridad por oscuridad]]).\n\nSin embargo, si se recibe un mensaje de error similar a este:\n ssh: connect to host 111.222.333.444 port 22: Operation timed out \n\nEso significa que algo est\u00e1 rechazando el tr\u00e1fico TCP en el puerto 22. B\u00e1sicamente ese puerto est\u00e1 siendo vigilado, ya sea por el cortafuegos o por la intervenci\u00f3n de terceras partes (como un ISP que bloquea y/o rechaza el tr\u00e1fico entrante en el puerto 22). Si se sabe que no est\u00e1 ejecutando ning\u00fan cortafuegos en su ordenador, y est\u00e1 seguro que ning\u00fan Gremlins est\u00e1n creciendo en su router y switches, entonces, el ISP est\u00e1 bloqueando el tr\u00e1fico.\n\nPara hacer doble verificaci\u00f3n, puede ejecutar Wireshark en el servidor y escuchar el tr\u00e1fico en el puerto 22. Dado que Wireshark es una utilidad que esnifa paquetes de dos niveles, y TCP/UDP tiene 3 niveles y as\u00ed sucesivamente (ver [[wikipedia:es:Familia_de_protocolos_de_Internet|pila de red de IP]]), si no recibe nada mientras se conecta de forma remota, lo m\u00e1s probable es que un tercero est\u00e9 bloqueando el tr\u00e1fico en ese puerto para su servidor.\n\n===== Diagn\u00f3stico con Wireshark =====\n\n[[Help:Reading (Espa\u00f1ol)#Instalaci\u00f3n de paquetes|Instale]] Wireshark con el paquete {{Pkg|wireshark-cli}} disponible en los [[official repositories (Espa\u00f1ol)|repositorios oficiales]].\n\nY luego ejec\u00fatelo utilizando,\n tshark -f \"tcp port 22\" -i NET_IF\n\ndonde NET_IF es la interfaz de red para una conexi\u00f3n WAN (ver {{ic|ip a}} para comprobar). Si no se est\u00e1 recibiendo ning\u00fan paquete al intentar conectarse de forma remota, puede estar muy seguro de que su ISP est\u00e1 bloqueando el tr\u00e1fico entrante en el puerto 22.\n\n===== Posible soluci\u00f3n =====\n\nLa soluci\u00f3n es utilizar alg\u00fan otro puerto que el ISP no est\u00e9 bloqueando. Abra el archivo {{ic|/etc/ssh/sshd_config}} y config\u00farelo para utilizar diferentes puertos. Por ejemplo, a\u00f1ada:\n\n Port 22\n Port 1234\n\nAseg\u00farese tambi\u00e9n de que otras l\u00edneas de configuraci\u00f3n del \u00abpuerto\u00bb  en el archivo est\u00e1n comentadas. Solo comentar \u00abPort 22\u00bb y poner \u00abPort 1234\u00bb no va a resolver el problema, porque entonces sshd solo escuchar\u00e1 el puerto 1234. Utilice ambas l\u00edneas para ejecutar el servidor SSH en ambos puertos.\n\nReinicie el servidor {{ic|systemctl restart sshd.service}} y todo estar\u00e1 listo. Todav\u00eda tiene que configurar su cliente(s) para poder usar el otro puerto, en lugar del puerto predeterminado. Existen numerosas soluciones a ese problema, pero nosotros cubrimos dos de ellas aqu\u00ed.\n\n==== Leer del socket fallido: connection reset by peer ====\n\nLas versiones recientes de openssh a veces fallan con el mensaje de error anterior, debido a un error que implica la criptograf\u00eda de curva el\u00edptica. En este caso, a\u00f1ada la siguiente l\u00ednea a {{ic|~/.ssh/config}}:\n\n HostKeyAlgorithms ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,ssh-dss\n\nCon openssh 5.9, la soluci\u00f3n anterior no funciona. En su lugar, ponga las siguientes l\u00edneas en {{ic|~/.ssh/config}}:\n\n Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc \n MACs hmac-md5,hmac-sha1,hmac-ripemd160\n\nVer tambi\u00e9n [https://www.gossamer-threads.com/lists/openssh/dev/51339 discussion] en el foro openssh bug.\n\n=== \u00ab[your shell]: No such file or directory\u00bb / ssh_exchange_identification problem ===\n\nUna posible causa de esto es la necesidad de ciertos clientes SSH de encontrar una ruta absoluta (una devuelta por {{Ic|whereis -b [your shell]}}, por instancia) en {{Ic|$SHELL}}, incluso si el binario de la shell se encuentra en una de las entradas {{Ic|$PATH}}.\n\n=== Mensaje de error \u00abTerminal unknown\u00bb o  \u00abError opening terminal\u00bb ===\n\nCon ssh es posible recibir errores como \u00abTerminal unknown\u00bb despu\u00e9s de iniciar sesi\u00f3n. Iniciar aplicaciones ncurses como nano fallan con el mensaje \u00abError opening terminal\u00bb. Hay dos m\u00e9todos para solucionar este problema, uno r\u00e1pido, mediante la variable $TERM, y otro m\u00e1s detallado usando el archivo terminfo.\n\n==== Soluci\u00f3n estableciendo la variable $TERM ====\n\nDespu\u00e9s de conectar con el servidor remoto establezca la variable $TERM para \u00abxterm\u00bb con la siguiente orden:\n\n{{ic|TERM&#61;xterm}}\n\nEste m\u00e9todo es una soluci\u00f3n provisional y debe ser utilizado en servidores ssh al que se conecta raramente, ya que puede tener efectos secundarios no deseados. Tambi\u00e9n tiene que repetir la orden despu\u00e9s de cada conexi\u00f3n, o bien configurando ~.bashrc .\n\n==== Soluci\u00f3n usando el archivo terminfo ====\n\nUna soluci\u00f3n con m\u00e1s dedicaci\u00f3n consiste en transferir el archivo terminfo del terminal en el equipo cliente al servidor ssh. En este ejemplo explicamos c\u00f3mo configurar el archivo terminfo para el terminal \u00abrxvt-unicode-256color\u00bb.\nCree el directorio que contendr\u00e1 los archivos terminfo en el servidor ssh, mientras se est\u00e1 conectado al servidor, con la orden:\n\n{{ic| mkdir -p ~/.terminfo/r/}}\n\nAhora copie el archivo terminfo de su terminal en el nuevo directorio. Reemplace {{ic|rxvt-unicode-256color}} con el terminal de su cliente en la siguiente orden y {{ic|ssh-server}} con el usuario y direcci\u00f3n del servidor correspondiente.\n\n{{ic|$ scp  /usr/share/terminfo/r/''rxvt-unicode-256color'' ssh-server:~/.terminfo/r/}}\n\nDespu\u00e9s de salir y entrar en el servidor ssh el problema debe haber sido corregido.\n\n== V\u00e9ase tambi\u00e9n ==\n\n*[http://www.soloport.com/iptables.html A Cure for the Common SSH Login Attack]\n*[https://www.la-samhna.de/library/brutessh.html Defending against brute force ssh attacks]\n*[https://www.ibm.com/developerworks/library/l-keyc/index.html OpenSSH key management, Part 1] and [https://www.ibm.com/developerworks/library/l-keyc2 Part 2] on IBM developerWorks"
                    }
                ]
            },
            "9971": {
                "pageid": 9971,
                "ns": 0,
                "title": "Network Security Services",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Transport Layer Security]]\n[[Category:Mozilla]]\n[[ja:Network Security Services]]\n[[ru:Network Security Services]]\n[[zh-hans:Network Security Services]]\n[[Wikipedia:Network Security Services|Network Security Services]] ('''NSS''') is a set of libraries designed to support cross-platform development of security-enabled client and server applications.\n\nApplications built with NSS can support [[Wikipedia:SSL|SSL]] v2 and v3, [[TLS]], [[Wikipedia:PKCS 5|PKCS #5]], [[Wikipedia:PKCS 7|PKCS #7]], [[Wikipedia:PKCS 11|PKCS #11]], [[Wikipedia:PKCS 12|PKCS #12]], [[Wikipedia:S/MIME|S/MIME]], [[Wikipedia:X.509|X.509]] v3 certificates, and other security standards.\n\nNSS is required by many packages, including, for example, [[Chromium]] and [[Firefox]].\n\n== Installation ==\n\n[[Install]] the {{Pkg|nss}} package.\n\n== Usage ==\n\nUse ''certutil'' utility provided with NSS to manage your certificates.\n\n=== List certificate DB ===\n\nTo get list of all certificates:\n\n $ certutil -d sql:$HOME/.pki/nssdb -L\n\nTo get details about certificate:\n\n $ certutil -d sql:$HOME/.pki/nssdb -L -n ''certificate_nickname''\n\n=== Generate an RSA private key ===\n\n $ certutil -G -d ''database_directory'' -g ''keysize'' -n ''nickname''\n\n=== Generate a certificate signing request ===\n\n $ certutil -S -s ''subject'' -n ''nickname'' -x -t C,C,C -o ''file''\n\n=== Generate a self-signed certificate ===\n\n $ certutil -S -s ''subject'' -n ''nickname'' -x -t C,C,C -o ''file''\n\n=== Import certificate ===\n\nTo add a certificate specify the {{ic|-A}} option:\n\n $ certutil -d sql:$HOME/.pki/nssdb -A -t \"''TRUSTARGS''\" -n ''certificate_nickname'' -i ''/path/to/cert/filename''\n\nThe {{ic|TRUSTARGS}} are three strings of zero or more alphabetic characters, separated by commas, for example: {{ic|\"TCu,Cu,Tuw\"}}. They define how the certificate should be trusted for SSL, email, and object signing, and are explained in the [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Tools/certutil certutil documentation] or [https://meenavyas.medium.com/about-trust-flags-of-certificates-in-nss-database-that-can-be-modified-by-certutil-67e4f33a6d0f Meena's blog post] on trust flags.\n\nTo add a personal certificate and private key for SSL client authentication use the command:\n\n $ pk12util -d sql:$HOME/.pki/nssdb -i ''/path/to/PKCS12/cert/filename.p12''\n\nThis will import a personal certificate and private key stored in a PKCS #12 file. The {{ic|TRUSTARGS}} of the personal certificate will be set to {{ic|\"u,u,u\"}}.\n\n=== Edit certificate ===\n\nCall ''certutil'' with {{ic|-M}} option to edit the certificate. For example, to edit the {{ic|TRUSTARGS}}:\n\n $ certutil -d sql:$HOME/.pki/nssdb -M -t \"''TRUSTARGS''\" -n ''certificate_nickname''\n\n=== Delete certificate ===\n\nUse {{ic|-D}} option to remove the certificate:\n\n $ certutil -d sql:$HOME/.pki/nssdb -D -n ''certificate_nickname''\n\n=== Adding a trusted CA certificate ===\n\n{{Pkg|chromium}}, {{Pkg|firefox}}, {{Pkg|thunderbird}}, {{Pkg|evolution}}, and {{Pkg|seamonkey}} use NSS to retrieve trusted CA certificates.\n\nThe {{Pkg|nss}} has integrated {{Pkg|p11-kit}}, which will automatically install all certificates using system-wide. However, if you prefer to distribute \"pure\" NSS, you can install the certificates into your own browser profile.\n\n certutil -d ''database'' -A -i ''myCA.cert'' -n \"Honest Achmed's CA\" -t C,,\n\n{{Pkg|chromium}} and {{Pkg|evolution}} use a \"shared\" database located in {{ic|-d \"sql:$HOME/.pki/nssdb\"}}.\n\nFor {{Pkg|firefox}}, {{Pkg|thunderbird}}, and {{Pkg|seamonkey}}, make a browser-specific configuration file directory (e.g. {{ic|-d ~/.mozilla/firefox/ov6jazas.default}}).\n\n== See also ==\n\n* [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS Network Security Services - Mozilla]\n* [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil#Using_the_Certificate_Database_Tool Using the Certificate Database Tool - Mozilla]\n* [https://blogs.oracle.com/meena/about-trust-flags-of-certificates-in-nss-database-that-can-be-modified-by-certutil Managing Certificate Trust flags in NSS Database - Meena Vyas, Oracle]"
                    }
                ]
            },
            "10020": {
                "pageid": 10020,
                "ns": 0,
                "title": "ICC profiles",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Multimedia]]\n[[ja:ICC \u30d7\u30ed\u30d5\u30a1\u30a4\u30eb]]\n[[ru:ICC profiles]]\nAs it pertains to general desktop use, an [[Wikipedia:ICC profile|ICC profile]] is a binary file which contains precise data regarding the color attributes of an input, or output device. Single, or multiple profiles can be applied across a system and its devices to produce consistent and repeatable results for graphic and document editing and publishing. ICC profiles are typically calibrated with a [[Wikipedia:Tristimulus colorimeter|(tristimulus) colorimeter]], or a spectrophotometer when absolute color accuracy is required.\n\n== Utilities ==\n\n* {{App|ArgyllCMS|ICC compatible color management system. It supports accurate ICC profile creation for scanners, cameras and film recorders, and calibration and profiling of displays and RGB & CMYK printers.|https://argyllcms.com/|{{Pkg|argyllcms}}}}\n* {{App|ColorHug|The Hughski ColorHug Colorimeter is a low cost open-source hardware sensor used to calibrate screens. This package includes the client tools which allows the user to upgrade the firmware on the sensor or to query the sensor from command line scripts.|https://github.com/hughski/colorhug-client|{{Pkg|colorhug-client}}}}\n* {{App|DisplayCAL|Display calibration and profiling solution with a focus on accuracy and versatility. At its core it relies on ArgyllCMS color management system, to take measurements, create calibrations and profiles, and for a variety of other advanced color related tasks.|https://displaycal.net/|{{Pkg|displaycal}}}}\n* {{App|GNOME Color Manager|Set of graphical utilities for color management to be used in the GNOME desktop.|https://gitlab.gnome.org/GNOME/gnome-color-manager|{{Pkg|gnome-color-manager}}}}\n* {{App|xcalib|Lightweight monitor calibration loader which can load an ICC monitor profile to be shared across desktop applications.|https://github.com/OpenICC/xcalib|{{Pkg|xcalib}}}}\n\n== Profile generation ==\n\nColor management is a workflow of hardware calibration, software profiling and embedding the profile into the picture or video. It is all based on using an [[Wikipedia:ICC profile|ICC profile]].\n\n=== Colorimeter or spectrometer ===\n\nIt is highly recommended to use a colorimeter or spectrometer device for hardware-assisted display, printer and scanner calibration. For home use there are several affordable colorimeters available. Some are well- or even better-supported under Linux than on other operating systems. Frequently recommended devices are [https://www.xrite.com/colormunki-display X-Rite ColorMunki Display], [http://spyder.datacolor.com/portfolio-view/spyder5express/ DataColor Spyder5 Express] and the open source hardware [http://www.hughski.com/ ColorHug]. You can find more Linux-supported devices listed in the [https://www.argyllcms.com/doc/instruments.html AgyllCMS documentation].\n\n=== Argyll CMS ===\n\nThe [https://www.argyllcms.com/ Argyll Color Management System] is a complete suite of command-line profile creation and loading tools listed under {{Pkg|argyllcms}}. \n\nReview the official [https://www.argyllcms.com/doc/ArgyllDoc.html Argyll CMS documentation] for details on how to profile selected devices.\n\n=== Monitor calibration and profiling with additional calibration hardware ===\n\nThere is a GUI frontend for ArgyllCMS called [https://displaycal.net DisplayCal], available as {{Pkg|displaycal}}. In most common cases you will want to use its default settings. It is a common way to calibrate to a daylight color of 6500K and gamma 2,2. Read the DispalGui documentation for more. Many tutorials are available on the net.\n\n=== Scanner calibration ===\n\nFollow the scanner part of the [https://blog.simon-dreher.de/color-management.html scanner calibration] tutorial.\n\n=== Printer calibration ===\n\nSee {{man|8|cups-calibrate}}.\n\n=== File transfer ===\n\nProfile generation on a Windows or macOS system is one of the easiest and most widely recommended methods to obtain a ICC monitor profile. Since ICC color profiles are written to an open specification, they are compatible across operating systems. Transferring profiles from one OS to another can be used as a workaround for the lack of support for certain spectrophotometers or colorimeters under Linux: one can simply produce a profile on a different OS and then use it in a Linux workflow. Note that the system on which the profile is generated must host the exact same video card and monitor for which the profile is to be used. Once generation of an ICC profile, or a series of profiles is complete on a Windows system, copy the file(s) from the default path:\n\n C:\\WINDOWS\\System32\\spool\\drivers\\color\n\nmacOS generally stores saved ICC profiles in one of two locations:\n\n /Library/ColorSync/Profiles\n /Users/USER_NAME/Library/ColorSync/Profile\n\nOnce the appropriate {{Ic|.icc/.icm}} files have been copied, install the device profiles to your desired system. Common installation device profiles directories on Linux include:\n\n /usr/share/color/icc\n /usr/local/share/color/icc\n /home/USER_NAME/.color/icc\n\n{{Note|Ensure that the calibrated contrast, brightness and RGB settings of the monitor do not change between the time of calibration and the loading of the ICC profile. Use this method only if you are absolutely certain that neither Linux nor the other OS does anything behind your back (in video drivers or vendor utilities) that alters the signal actually sent to the display, or the way the display interprets the signal. Watch out for \"Broadcast RGB\" or similar settings. One concrete example where profiling in Windows and Linux yields [https://bugzilla.kernel.org/show_bug.cgi?id&#61;70721 significantly different results] is the Lenovo Ideapad Yoga 2 Pro laptop, because these OSes program the flat panel controller in very different ways.|}}\n\n=== Gnome Color Manager ===\n\nOn Gnome, an ICC profile can easily be created by using {{Pkg|gnome-color-manager}}. Under Gnome, this is accessible via the Control Center and is pretty straightforward to use. You will need a colorimeter device to use this feature.\n\n=== LPROF ICC Profiler ===\n\n{{Out of date|The lprof package was dropped from AUR since it no longer built. According to Wikipedia, it's obsolete anyway and had not seen a release since 2006. [[Wikipedia:Linux color management#List of software for input and output profiling|Some alternatives]] exists.}}\n\n[http://lprof.sourceforge.net/ LPROF] is an ICC profiler with a graphical user interface listed under {{AUR|lprof}}{{Broken package link|package not found}} in the [[AUR]]. \n\n{{Note|The following walkthrough has been modified from the ArchWiki article [[Using LPROF to profile monitors]].}}\n\n==== Monitor calibration ====\n\n===== Contrast/Brightness =====\n\nAdjust the lighting in the room to what you will be using when working. Even if your screen is coated with an anti-reflective coating, you should avoid light falling directly on it. Let your monitor warm up for at least an hour for the image to get stabilized. If your calibration device has an ambient diffuser, adjust your room brightness to reach the recommended target lux point.\n\n# Set the monitor contrast to maximum, or 100%. \n# Next, display a pure black over entire screen by creating a small, black PNG image (all pixels have RGB = 0, 0, 0) and opening it up in a picture viewer that is capable of displaying an image in fullscreen mode without any controls.\n# Reduce the vertical size of the monitor screen (not the PNG image displayed by a picture viewer but the whole of what is displayed on the screen) to 60% to 70% of the full height. What is revealed above and below the picture is called a ''non-scanned area'', and since that area is not receiving any voltage, it is the blackest of black your monitor is capable of displaying. \n# Locate the brightness control (usually a sun, circle with rays projecting from its edges) and lower the value until the black ''image'' matches the non-scanned area.\n\n===== Color temperature =====\n\nAs we said in the introduction, setting color temperature must occur at noon. If you only have fixed factory default color temperature, you do not really need to wait for the sunny day to come. Just set it to 6500K.\n\nPlace your monitor so that you can see outside the window ''and'' your screen at the same time. For this step, you also need to create a white square image (RGB = 255, 255, 255), roughly 10 by 10 centimeters (4 by 3 inches). Using the same Gwenview technique as with brightness/contrast, display the white square on a pure black background.\n\n# First, prepare your eyes by staring at the outside world for a while. Let them adjust to the daylight viewing condition for a few minutes.\n# Glance at the monitor, and the white square for a few second (it has to be short, because eyes will readjust quickly).\n# If the square seems yellowish, you need higher color temperature, or if it has a blueish cast, the temperature needs to be lowered.\n# Keep glancing, looking out the window, and adjusting the white temperature, until the square looks pure white\n\nTake your time with the steps described above. It is essential to get it right.\n\n==== Monitor profiling without additional calibration hardware ====\n\nStart lprof. You will be presented by a fairly large window with multiple tabs on the right. \n\n# Click on the ''Monitor Profiler'' tab. Then click on the large ''Enter monitor values >>'' button.\n# White point should be set to ''6500K (daylight)''.\n# Primaries should be set to either ''SMPTE RP145-1994'', or ''EBU Tech.3213-E'' or ''P22'', or whatever appropriate values for your monitor. If you come across correct values for your monitor, enter those by selecting ''User Defined'' from the drop-down. If in doubt, you may use ''P22'' for all monitors with Trinitron CRTs (in this case, ''Trinitron'' is not related to Sony Trinitron mointors and TVs), and ''SMPTE RP145-1994'' for other CRTs.\n# Click the ''Set Gamma and Black Point'' button.\n# You will now see a full-screen view of two charts with some controls at the bottom.\n# Uncheck the ''Link channels'' check-box and adjust individual Red, Green, and Blue gamma by either moving the slider left or right, or by entering and changing values in the three boxes to the left. The goal is to make the chart on the left (the smaller square one) flat. When you are satisfied with how it looks, check the ''Link channels'' check-box and adjust the gamma again.\n# When you are done, click ''OK''. Click ''OK'' again.\n\nWhen you are finished entering monitor values, you might want to enter some information about the monitor. This is not mandatory, but it is always nice to know what profile is for what.\n\n# Click ''Profile identification'' button.\n# Fill in the data.\n# Click ''OK'' to finish.\n\nAfter you are all done, click on the '...' button next to ''Output Profile File'' box. Enter the name of your profile: ''somemonitor.icc''. Click ''Create Profile'' button, and you are done.\n\n=== ThinkPads ===\n\nSee [https://www.thinkwiki.org/wiki/Colour_profile color profiles] for IBM/Lenovo [[Wikipedia:ThinkPad|ThinkPad]] notebook [https://web.archive.org/web/20090130120007/http://www-307.ibm.com/pc/support/site.wss/migr-62923.html monitor profile] ([https://web.archive.org/web/20081219095340/http://www-307.ibm.com/pc/support/site.wss/migr-44320.html generic] support.\n\n== Loading ICC profiles ==\n\n{{Note|NVIDIA's proprietary driver is not compatible with {{Pkg|colord}} profile management. You will get inconsistent results when working with color managed applications. Either use [[Nouveau]] or [[mask]] {{ic|colord.service}} and load ICC profiles manually with {{ic|dispwin}}.}}\n\nICC profiles are loaded either by the session daemon or by a dedicated ICC loader. Both Gnome and KDE have daemons capable of loading ICC profiles from {{Pkg|colord}}. If you use colord in combination with either {{Pkg|gnome-settings-daemon}} or {{Pkg|colord-kde}}, the profile will be loaded automatically. If you are not using either Gnome or KDE, you may install an independent daemon, [https://github.com/agalakhov/xiccd xiccd], which does the same but does not depend on your desktop environment. Do not start two ICC-capable daemons (e.g. gnome-settings-daemon and {{AUR|xiccd}}) at the same time.\n\nIf you are not using any ICC-capable session daemon, make sure you use only one ICC loader - either xcalib, dispwin, dispcalGUI-apply-profiles or others. Otherwise, you can easily end up with an uncontrolled environment. (The most recently run loader sets the calibration, and the earlier loaded calibration is overwritten.)\n\nBefore using a particular ICC loader, you should understand that some tools set only the calibration curves (e.g. xcalib), some tools set only the display profile to X.org _ICC_PROFILE atom (e.g. xicc), and other tools do both tasks at once (e.g. dispwin, dispcalGUI-apply-profiles).\n\n{{Note|Running nvidia-settings or using the -load-config-only argument will override the ICC file when using the .xinitrc examples.}}\n\n=== xiccd ===\n\n* {{AUR|xiccd}} is a simple bridge between colord and X. It allows non-GNOME and non-KDE desktop environment to load and apply icc profiles. \n\nMake sure {{Pkg|colord}} is installed, then install {{AUR|xiccd}}. \n\nCopy your icc profiles to the profile directory.\n\n # cp icc_profile /usr/share/color/icc/colord/\n\n[[Start/enable]] {{ic|colord.service}}. \n\nIf {{ic|colord}} was already running, you need to [[restart]] {{ic|colord.service}}, otherwise new profiles will not show up. \n\nExecute {{ic|xiccd}} in a terminal as a backend and ignore any verbose messages. Keep {{ic|xiccd}} running during the next steps.\n\n $ xiccd\n\nThis will enumerate displays and register them for colormgr(colord).\n\nOpen another terminal and execute {{ic|colormgr}}. Note the {{ic|Device ID}} of your screen.\n\n $ colormgr get-devices\n\nNote the {{ic|Profile ID}} which you added earlier and want to use.\n\n $ colormgr get-profiles\n\nAdd your profile to the display device.\n\n # colormgr device-add-profile device_id profile_id\n\nMake the profile as the default to the display device.\n\n # colormgr device-make-profile-default device_id profile_id\n\nDouble-check that {{AUR|xiccd}} installed {{ic|/etc/xdg/autostart/xiccd.desktop}} so that it [[Autostarting|autostarts]] at system startup.\n\n # cat /etc/xdg/autostart/xiccd.desktop\n\nClose all terminals, and reboot the system to check whether the icc profile is being applied.\nIf {{ic|colord}} was already running, you need to [[restart]] via {{ic|colord.service}}.\n\n=== xcalib ===\n\n* [http://xcalib.sourceforge.net/ xcalib] is a lightweight monitor calibration loader which can load an ICC monitor profile to be shared across desktop applications. Installation: install the package {{Pkg|xcalib}}.\n\n==== Xinitrc example ====\n\nLoad profile {{ic|P221W-sRGB.icc}} in {{Ic|/usr/share/color/icc}} on display host:0 when X server starts\n{{bc|#!/bin/bash\n\n/usr/bin/xcalib -d :0 /usr/share/color/icc/P221W-sRGB.icc}}\n\n==== JWM <StartupCommand> example ====\n\nLoad profile {{ic|P221W-Native.icc}} in {{Ic|/usr/local/share/color/icc}} on display host:0 when JWM starts\n  {{ic|<StartupCommand>}}xcalib -d :0 /usr/local/share/color/icc/P221W-Native.icc{{ic|</StartupCommand>}}\n\n=== dispwin ===\n\n* [https://www.argyllcms.com/doc/dispwin.html dispwin] is a part of {{Pkg|argyllcms}}.\n\n==== Xinitrc example ====\n\nLoad profile {{ic|906w-6500K.icc}} in {{Ic|/home/arch/.color/icc}} on display 0 when X server starts\n{{bc|#!/bin/bash\n\n/usr/bin/dispwin -d0 /home/arch/.color/icc/906w-6500K.icc}}\n\n==== JWM <StartupCommand> example ====\n\nLoad Argyll calibration file {{ic|906w-7000K.cal}} in {{Ic|/usr/local/share/color/icc}} on display 1 when JWM starts\n  {{ic|<StartupCommand>}}dispwin -d1 /usr/local/share/color/icc/906w-7000K.cal{{ic|</StartupCommand>}}\n\nYou can easily use one of these loaders to apply the color profile in early boot stage when starting a display manager, e.g. using [https://wiki.ubuntu.com/LightDM#Adding_System_Hooks LightDM startup script]. This allows to load a single icc profile file. This will not work with loading several profile files when using a multi monitopr setup.\n\n== Applications that support ICC profiles ==\n\n* [https://fossies.org/linux/xsane/doc/sane-xsane-color-management-doc.html Xsane] can use ICC profiles for color-corrected scanning.\n* [[CUPS]] can use ICC profiles for color-corrected printing using [https://www.freedesktop.org/software/colord/faq.html#cups Colord], but the actual implementation and usability is [https://lists.cups.org/pipermail/cups/2016-December/056399.html unclear].\n* [[GIMP]] can use ICC profiles for display of the image being edited. The use of the installed ICC profile has to be explicitly enabled in the settings dialog, though.\n* [[mpv]] can take an ICC profile into account when playing a video. The command line argument is: {{ic|1=--icc-profile=/path/to/profile.icc}} or {{ic|--icc-profile-auto}}. Only {{ic|1=--vo=gpu}} and {{ic|1=--vo=gpu-next}} do color management; compatibility/fallback VO drivers will silently ignore the ICC profile options.\n* [[Firefox]], by default, uses the system-wide ICC profile only when displaying images that are already tagged with an ICC profile. To assume that untagged images use sRGB and apply color correction also to them, set the {{ic|gfx.color_management.mode}} preference to 1. Firefox can also use an ICC profile using the configuration option {{ic|gfx.color_management.display_profile}}.\n* Both Eye of Gnome ({{Pkg|eog}}) and Eye of MATE ({{Pkg|eom}}) automatically use the system-installed ICC profile.\n\n== See also ==\n\n* [[Using LPROF to profile monitors]] - Additional details on how to profile monitors\n* [[Wikipedia:Linux color management]]\n* [https://www.argyllcms.com/ Argyll Color Management System] - Official Site\n* [http://lprof.sourceforge.net/help/lprof-help.html LPROF Main Help Window] - Details on profiling printers and scanners\n* [https://displaycal.net/#concept DisplayCal: Basic concept of display calibration and profiling]\n* [https://encrypted.pcode.nl/blog/2013/11/24/display-color-profiling-on-linux/ Display color profiling on Linux (XFCE)]\n* [https://linuxtidbits.wordpress.com/2013/04/20/handling-display-calibration/ Monitor Hardware Calibration]"
                    }
                ]
            },
            "10633": {
                "pageid": 10633,
                "ns": 0,
                "title": "LibreOffice",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Office]]\n[[de:LibreOffice]]\n[[es:LibreOffice]]\n[[ja:LibreOffice]]\n[[ru:LibreOffice]]\n{{Related articles start}}\n{{Related|Apache OpenOffice}}\n{{Related articles end}}\n\nFrom [https://www.libreoffice.org/ Home - LibreOffice]:\n\n:LibreOffice is the free power-packed Open Source personal productivity suite for Windows, Macintosh and Linux, that gives you six feature-rich applications for all your document production and data processing needs: Writer, Calc, Impress, Draw, Math and Base.\n\n== Installation ==\n\n[[Install]] one of the following packages: \n\n* {{Pkg|libreoffice-still}} is the stable maintenance branch with relatively rare updates, for conservative users.\n* {{Pkg|libreoffice-fresh}} is the feature branch, with new program enhancements for early adopters or power users.\n\n{{Note|\n* In the past, the installation of at least 1 language pack was required. Currently, LibreOffice detects your system defaults and sets as locale setting; manual installation of a language pack is no longer mandatory, required only for localized user interface. See [https://help.libreoffice.org/Scalc/cui/ui/optlanguagespage/ignorelanguagechange#User_interface help.libreoffice.org] for additional information.\n* If you want the UK-English language pack, install {{Pkg|libreoffice-fresh-en-gb}}, not {{Pkg|libreoffice-fresh-uk}} (Ukrainian) or {{Pkg|libreoffice-fresh-br}} (Breton)!\n* For SDK install {{Pkg|libreoffice-fresh-sdk}}.\n}}\n\nCheck the optional dependencies pacman displays. If you use [[wikipedia:HSQLDB|HSQLDB]] Embedded in LibreOffice Base, you must install a [[Java|Java Runtime Environment]]. You may need {{AUR|hsqldb2-java}} to use [https://wiki.documentfoundation.org/Base#Java_and_HSQLDB some modules] in LibreOffice Base.\n\n== Theme ==\n\nLibreOffice includes support for [[GTK]] and [[Qt]] theme integration. See also [[Uniform look for Qt and GTK applications]].\n\nLibreOffice will try to auto detect the most suitable [https://github.com/LibreOffice/core/blob/master/vcl/README.md VCL] UI interface based on your desktop environment. To force the use of a certain VCL UI interface, use one of the {{ic|1=SAL_USE_VCLPLUGIN=gen}}, {{ic|1=SAL_USE_VCLPLUGIN=gtk3}}, or {{ic|1=SAL_USE_VCLPLUGIN=kf5}} [[environment variables]]. These variables can be uncommented in {{ic|1=/etc/profile.d/libreoffice-fresh.sh}} or {{ic|1=/etc/profile.d/libreoffice-still.sh}}.\n\n=== Disable startup logo ===\n\nIf you prefer to disable the startup logo screen with loading progress, open {{ic|/etc/libreoffice/sofficerc}}, find the {{ic|1=Logo=}} line and set it to {{ic|1=Logo=0}}. Alternatively, use the {{ic|--nologo}} [[Command-line shell|CLI]] option.\n\n== Extension management ==\n\nThe following additional extensions are available:\n\n* {{Pkg|libreoffice-extension-texmaths}}, which can create LaTeX mathematical equations (as PNG or SVG images) inside Writer, Impress, and Draw [http://roland65.free.fr/texmaths/]\n* {{Pkg|libreoffice-extension-writer2latex}}, which can convert Writer documents to LaTeX files [http://writer2latex.sourceforge.net/]\n\nFor more extensions, check the [[AUR]], the built-in LibreOffice Extension manager, or [https://libreplanet.org/wiki/Group:OpenOfficeExtensions/List libreplanet].\n\n== Fonts ==\n\nThe Document Foundation [https://wiki.documentfoundation.org/Fonts wiki] mentions various fonts that are packaged by default with LibreOffice on Windows and macOS. On Arch, the following packages may be installed for the fonts:\n\n* {{Pkg|ttf-caladea}}\n* {{Pkg|ttf-carlito}}\n* {{Pkg|ttf-dejavu}}\n* {{AUR|ttf-gentium-basic}}\n* {{Pkg|ttf-liberation}}\n* {{Pkg|ttf-linux-libertine-g}}\n* {{Pkg|noto-fonts}}\n* {{Pkg|adobe-source-code-pro-fonts}}\n* {{Pkg|adobe-source-sans-fonts}}\n* {{Pkg|adobe-source-serif-fonts}}\n\nAlso see [[Fonts#Font packages]].\n\n== Language aids ==\n\n=== Spell checking ===\n\nFor spell checking, please make sure {{Pkg|hunspell}} is properly installed; this should be the case for both ''still'' and ''fresh'' LibreOffice versions. Then install a language dictionary for hunspell like {{Pkg|hunspell-en_us}} for American English or {{Pkg|hunspell-de}} for German (check the [[AUR]] if your language is not in the official repositories). Then enable the Writing aids by selecting the check-box in ''Tools > Options > Language Settings > Writing Aids > Hunspell SpellChecker'' after restarting LibreOffice.\n\n;Finnish\nUnlike other languages, Finnish spellchecking and grammar checking are based on [https://voikko.puimula.org/ Voikko]. For LibreOffice {{AUR|voikko-libreoffice}} should be installed.\n\n;Greek\nProject [https://sourceforge.net/projects/orthos-spell/?source=directory Orthos] provides more complete Greek spell checkers as Libreoffice extensions. Package {{AUR|libreoffice-extension-orthos-greek-dictionary}} provides a Greek-only spelling dictionary, while {{AUR|libreoffice-extension-orthos-greek-english-dictionary}} provides one that bundles Greek and US English.\n\n=== Hyphenation rules ===\n\nFor hyphenation rules, you will need {{Pkg|hyphen}} and a language hyphen rule set ({{Pkg|hyphen-en}} for English, {{Pkg|hyphen-de}} for German, etc).\n\n=== Thesaurus ===\n\nFor the thesaurus option, you will need {{Pkg|libmythes}} and a mythes language thesaurus (like {{Pkg|mythes-en}} for English, {{Pkg|mythes-de}} for German, etc).\n\n;Greek\nFor Greek, instead of {{AUR|mythes-el}} you may want to try out {{AUR|libreoffice-extension-orthos-greek-thesaurus}}, which includes more words.\n\n=== Grammar checking ===\n\nFor grammar checking, several tools are available. The most common is [https://www.languagetool.org/ LanguageTool]. You can either:\n\n* install the {{AUR|libreoffice-extension-languagetool}} package, or\n* download it from the [https://extensions.libreoffice.org/extensions/languagetool LibreOffice Extensions page] and manually install it in LibreOffice through ''Tools > Extension''\n\nAfter this extension has been installed, please make sure you have a [[Java]] 8 runtime installed ({{Pkg|jre8-openjdk}}). Indeed, Languagetool uses Java and may slow down or briefly hang LibreOffice, particularly while opening documents. Fortunately this is usually only when initially opening a document and is usually not apparent otherwise. Once installed, you want to enable it as the default environment for LibreOffice. To do that go to ''Tools > Options > Advanced'' and select the appropriate JRE (it will be shown as 1.8.0) then press ''Ok''. You will be prompted to restart the LibreOffice suite. Once restarted you will be able to install Languagetools without trouble.\n\nOther grammar tools can also be found on the [https://libreplanet.org/wiki/Group:OpenOfficeExtensions/List LibrePlanet extension page], on the [https://extensions.libreoffice.org/ official LibreOffice Extensions website] or [https://www.openoffice.org/lingucomponent/grammar.html OpenOffice's Website]. Please note all OpenOffice extensions are guaranteed to work with LibreOffice.\n\n;French\nFrench-speaking users are advantaged here: they do not need to install LanguageTool nor Java. Grammalecte provides a nice Python extension. You can install it [https://grammalecte.net/index.html#download from the website] or via {{AUR|libreoffice-extension-grammalecte-fr}}. In any case, this extension also comes with the French dictionaries otherwise provided by {{Pkg|hunspell-fr}}.\n\n=== Offline help ===\n\n{{Pkg|libreoffice-still}} and {{Pkg|libreoffice-fresh}} provide the offline help files for en-US. Help files for different locales is provided by the appropriate libreoffice language package, (i.e., {{Pkg|libreoffice-fresh-en-za}} provides the help files for en-ZA locales).\n\n== Installing macros ==\n\nIf you intend to use macros, you must have a Java Runtime Environment enabled.\n\nThe default path for macros in Arch Linux is different from most Linux distributions. Its location is: {{ic|~/.config/libreoffice/4/user/Scripts/}}.\n\n== Tips and Tricks ==\n\n=== Base as a database frontend ===\n\nBase can be used as a frontend to a database like PostgreSQL. It cannot edit the tables but It gives a very nice overview of the columns and rows of a table with the possibility of hiding columns for better overview of the relevant data. It can also filter the data and enables deletion of multiple rows by selecting them and easy editing of single cells.\n\nIt can also help construct SQL queries with the help of a query GUI.\n\n=== Automated document conversion based on LibreOffice or OpenOffice ===\n\nThe command line tool {{pkg|unoconv}} is an automated conversion and styling tool that uses LibreOffice. Even tough it requires more work [https://github.com/unoconv/unoconv/issues/511], it is still very useful as it is. It either connects to a running LibreOffice, starts one for its own usage, or connects to a running instance that was started explicitly for its usage. A running X server is not required.\n\n== Troubleshooting ==\n\nA general way to track down problems is the safe mode in LibreOffice:\n\n $ libreoffice --safe-mode\n\n=== Font substitution ===\n\nThese settings can be changed in the LibreOffice options. From the drop-down menu, select ''Tools > Options > LibreOffice > Fonts''. Check the box that says ''Apply Replacement Table''. Type {{ic|Andale Sans UI}} in the font box and choose your desired font for the ''Replace with'' option. When done, click the ''checkmark''. Then choose the ''Always'' and ''Screen only'' options in the box below. Click OK.\nYou will then need to go to ''Tools > Options > LibreOffice > View'', and uncheck \"Use system font for user interface\". If you use a non-antialised font, such as Arial, you will also need to uncheck \"Screen font antialiasing\" before menu fonts render correctly.\n\n=== Anti-aliasing ===\n\n{{Merge|Font configuration}}\n\nExecute:\n\n $ echo \"Xft.lcdfilter: lcddefault\" | xrdb -merge\n\nTo make the change persistent, add {{ic|Xft.lcdfilter: lcddefault}} to your {{ic|~/.Xresources}} file, and make sure to run {{ic|$ xrdb -merge ~/.Xresources}} ([https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/271283/comments/23 source]). See [[X resources]] for more details.\n\nIf this does not work, you can also try adding {{ic|Xft.lcdfilter: lcddefault}} to your {{ic|~/.Xdefaults}}. If you do not have this file, you will have to create it.\n\n=== Hanging when using NFSv3 shares ===\n\nIf LibreOffice hangs when trying to open or save a document located on a NFSv3 share, try prepending the following lines with a {{ic|#}} in {{ic|/usr/lib/libreoffice/program/soffice}}:\n\n # file locking now enabled by default\n SAL_ENABLE_FILE_LOCKING=1\n export SAL_ENABLE_FILE_LOCKING\n\nTo avoid overwriting on update you can copy {{ic|/usr/lib/libreoffice/program/soffice}} in {{ic|/usr/local/bin}}. Original post [http://195.110.9.173/computing/debian/bugs/openoffice-over-nfs.jspx here].\n\n=== LibreOffice does not detect certificates ===\n\nIf you cannot see the certificates when trying to sign a document, you will need to have the certificates configured in [[Firefox]] (or [[Thunderbird]]). If after that LibreOffice still does not show them, set the {{ic|MOZILLA_CERTIFICATE_FOLDER}} [[environment variable]] to point to your Firefox (or Thunderbird) directory:\n\n MOZILLA_CERTIFICATE_FOLDER=$HOME/.mozilla/firefox/''XXXXXX''.default/\n\nSee https://wiki.openoffice.org/wiki/Certificate_Detection.\n\n=== Run .pps files in edit mode (without slideshow) ===\n\nThe only solution is to rename the {{ic|.pps}} file to {{ic|.ppt}}.\n\nAdd the following script to your home directory and use it to open every {{ic|.pps}} file. Very useful to open {{ic|.pps}} files received by email without the need to save them.\n\n #!/bin/sh\n f=$(mktemp --suffix .ppt)\n cp \"$1\" \"${f}\" && libreoffice \"${f}\" && rm -f \"${f}\"\n\n=== Media support ===\n\nIf embedded videos are just gray boxes, make sure to have installed the [[GStreamer#Installation|GStreamer plugins]] required.\n\n=== Default paper size in Writer and Draw ===\n\nIf the default paper size in blank Writer and Draw documents is persistently incorrect for your locale, try installing the {{Pkg|libpaper}} optional dependency and either updating {{ic|/etc/papersize}} (for a system-wide change) or exporting the {{ic|PAPERSIZE}} environment variable (for a user change) with your preferred paper size. See {{man|5|papersize}}.\n\n{{Note|{{Pkg|libpaper}} defaults to '''Letter''' paper size if nothing else has been set.}}\n\n=== LibreOffice toolbars unreadable with dark Breeze/Plasma 5 theme ===\n\nChange the icon style in ''Tools > Options > LibreOffice > View > Icon Style'' to \"Breeze Dark\" or another readable icon style. You may need to install the {{Pkg|breeze-gtk}} package.\n\nIf that is not enough, ensure that LibreOffice starts using the {{ic|gtk3}} or {{ic|gen}} interface (see [[#Theme]]).[https://bbs.archlinux.org/viewtopic.php?id=206813]\n\n=== AutoText expected default behaviour not functional in system locales other than en_US ===\n\nIf expected default AutoText behaviour is not present (for example, typing {{ic|fn}} in a document in Writer and then pressing the {{ic|F3}} key does not result in the automatic insertion of a numbered function) when the system locale is not {{ic|en_US}} you need to add the default {{ic|en_US}} AutoText templates to your AutoText path. To do this, go to ''Tools > AutoText...'', then click on ''Path...'' and add the following path to the list: {{ic|/usr/lib/libreoffice/share/autotext/en-US}}. AutoText should now work as expected by default.\n\n=== LibreOffice freezes or crashes ===\n\nDisable OpenCL and/or OpenGL by setting the [[environment variable]] {{ic|1=SAL_DISABLE_OPENCL=1}} and/or {{ic|1=SAL_DISABLEGL=1}}. The LibreOffice safe mode also offers the option to disable both.\n\nIf LibreOffice is freezing or failing to start with the message \"Application Error\" but works fine when OpenCL is disabled, try installing an [[GPGPU#Runtime|OpenCL runtime]].\n\n=== LibreOffice fails to start ===\n\nNot sure with the reason why this happened. When you encounter LibreOffice fails to start and in terminal it says the following:\n\n /usr/lib/libreoffice/program/soffice.bin: symbol lookup error: /usr/lib/libreoffice/program/libskialo.so: undefined symbol: FT_Palette_Select\n /usr/lib/libreoffice/program/soffice.bin: symbol lookup error: /usr/lib/libreoffice/program/libskialo.so: undefined symbol: FT_Get_Color_Glyph_Layer\n /usr/lib/libreoffice/program/soffice.bin: symbol lookup error: /usr/lib/libreoffice/program/libskialo.so: undefined symbol: FT_Get_Paint\n\nTry to start it with:\n\n LD_PRELOAD=/usr/lib/libfreetype.so libreoffice\n\nIt has something to do with FreeType. Check that you are using the official {{Pkg|freetype2}} package. Older versions from the AUR may have linking errors.\n\n $ ldd /usr/lib/libreoffice/program/libskialo.so\n       linux-vdso.so.1 (0x00007fff861d4000)\n       libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007ff740060000)\n       libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007ff740015000)\n       libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007ff73ffde000)\n       libdl.so.2 => /usr/lib/libdl.so.2 (0x00007ff73ffd8000)\n       libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0x00007ff73ffd3000)\n       libX11.so.6 => /usr/lib/libX11.so.6 (0x00007ff73fe92000)\n       libuno_sal.so.3 => /usr/lib/libreoffice/program/libuno_sal.so.3 (0x00007ff73fe28000)\n       libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007ff73fc4b000)\n       libm.so.6 => /usr/lib/libm.so.6 (0x00007ff73fb05000)\n       libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007ff73faeb000)\n       libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007ff73fac9000)\n       libc.so.6 => /usr/lib/libc.so.6 (0x00007ff73f900000)\n       /usr/lib64/ld-linux-x86-64.so.2 (0x00007ff7408aa000)\n       libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007ff73f8eb000)\n       libz.so.1 => /usr/lib/libz.so.1 (0x00007ff73f8d1000)\n       libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007ff73f7fd000)\n       libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007ff73f7ce000)\n       libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007ff73f7a4000)\n       libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007ff73f77d000)\n       libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007ff73f649000)\n       libXau.so.6 => /usr/lib/libXau.so.6 (0x00007ff73f644000)\n       libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007ff73f63c000)\n       libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007ff73f5ca000)\n\n=== Notification sounds ===\n\nSome user actions like closing LibreOffice with an unsaved document will bring up the \"Save Document?\" popup window together with a notification sound.\nEnabling/disabling notification sounds can be tried by changing the GTK configurations option \"gtk-enable-event-sounds\", see [[GTK#Examples]]\n\n=== Wayland and HiDPI ===\n\nTo work around issues with scaling UI elements in Wayland on HiDPI screens, use the {{ic|1=gtk3}} VCL UI interface. See [[#Theme]].\n\n== See also ==\n\n* [https://extensions.libreoffice.org/ Libreoffice Extensions and Templates]\n* [[Wikipedia:LibreOffice]]"
                    }
                ]
            },
            "12955": {
                "pageid": 12955,
                "ns": 0,
                "title": "Profile-sync-daemon",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Web browser]]\n[[ja:Profile-sync-daemon]]\n[[ru:Profile-sync-daemon]]\n{{Related articles start}}\n{{Related|Anything-sync-daemon}}\n{{Related|Firefox}}\n{{Related|Chromium}}\n{{Related|Opera}}\n{{Related|Pdnsd}}\n{{Related|SSD}}\n{{Related articles end}}\n\n{{pkg|profile-sync-daemon}} (psd) is a tiny pseudo-daemon designed to manage browser profile(s) in tmpfs and to periodically sync back to the physical disc (HDD/SSD). This is accomplished by an innovative use of [[rsync]] to maintain synchronization between a tmpfs copy and media-bound backup of the browser profile(s). Additionally, psd features several crash recovery features.\n\nThe design goals and benefits of psd are:\n\n# Transparent user experience\n# Reduced wear to physical drives\n# Speed\n\nSince the profile(s), browser cache, etc. are relocated into [[tmpfs]] (RAM disk), the corresponding I/O associated with using the browser is also redirected from the physical drive to RAM, thus reducing wear to the physical drive and also greatly improving browser speed and responsiveness.\n\n{{Note|\n* Some browsers such as Chrome/Chromium, Firefox (since v21) and Midori actually keep their cache directories '''separately''' from their profile directory. It is not within the scope of profile-sync-daemon to modify this behavior; users are encouraged to refer to the [[Chromium tweaks#Cache in tmpfs]] section for Chromium and to the [[Firefox on RAM]] article for several workarounds.\n* Occasionally, updates/changes are made to the default configuration file {{ic|/usr/share/psd/psd.conf}} upstream. The user copy {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} will need to be diffed against it. On Arch Linux, pacman should notify the user to do this.\n* psd can slow down [https://www.reddit.com/r/archlinux/comments/4l7gvm/very_slow_when_login/d3lrx9y/ login], as that is when it copies your browser cache to RAM.}}\n\n== Installation ==\n\n[[Install]] the {{pkg|profile-sync-daemon}} package.\n\n== Configuration ==\n\nWhen you run psd for the first time, it will create {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} (referred to hereafter as the configuration file) which contains all settings. You can run the {{ic|psd}} command before using {{ic|psd.service}} to create this file without starting synchronization.\n\n{{Note|Any edits made to this file while psd is active will be applied only after {{ic|psd.service}} has been [[restart]]ed.}}\n\n* Optionally enable the use of overlayfs to improve sync speed and to use a smaller memory footprint. Do this in the {{ic|USE_OVERLAYFS}} variable. The user will require sudo rights to {{ic|/usr/bin/psd-overlay-helper}} to use this option and the kernel must support overlayfs version 22 or higher. See [[#Overlayfs mode]] for additional details.\n* Optionally define which browsers are to be managed in the {{ic|BROWSERS}} array. If none are defined, the default is all detected browsers.\n* Optionally disable the use of crash-recovery snapshots (not recommended). Do this in the {{ic|USE_BACKUPS}} variable.\n* Optionally define the number of crash-recovery snapshots to keep. Do this in the {{ic|BACKUP_LIMIT}} variable.\n\nExample: Let us say that Chromium, Opera and Midori are installed but only Chromium and Opera are to be sync'ed to tmpfs since the user keeps Midori as a backup browser and it is seldom used:\n\n BROWSERS=(chromium opera)\n\nBeginning with version 5.54 of psd, native support for [[#Overlayfs mode|overlayfs]] is included. This feature requires at least a Linux kernel version of 3.18.0 or greater.\n\n=== Supported browsers ===\n\nCurrently, the following browsers are auto-detected and managed:\n\n* [[Chromium]]\n* {{AUR|chromium-dev}}\n* {{AUR|conkeror-git}}\n* [[Epiphany]]\n* {{Pkg|falkon}}\n* [[Firefox]] (all flavors including stable, beta, and nightly)\n* {{AUR|google-chrome}}\n* {{AUR|google-chrome-beta}}\n* {{AUR|google-chrome-dev}}\n* [https://bbs.archlinux.org/viewtopic.php?id=117157 heftig's version of Aurora]: An Arch Linux-only browser\n* {{AUR|icecat}}\n* [[Luakit]]\n* [[Midori]]\n* [[Opera]]\n* [[Otter Browser]]\n* {{AUR|palemoon}}\n* [[Qutebrowser]]\n* {{Pkg|seamonkey}}\n* {{AUR|surf}}\n* {{Pkg|vivaldi}}\n\n== Usage ==\n\n[[Start/enable]] the {{ic|psd.service}} [[user unit]]. Additionally, a provided resync-timer will run an hourly resync from tmpfs back to the disk. The resync-timer is started automatically with {{ic|psd.service}} so there is no need to manually start the timer.\n\n=== Preview (parse) mode ===\n\nRun {{ic|psd parse}} to view what psd will do/is doing based on {{ic|$XDG_CONFIG_HOME/psd/psd.conf}}. It will also provide useful information such as profile size, paths, and if any recovery snapshots have been created.\n\n== Tips and tricks ==\n\n=== Sync at more frequent intervals ===\n\nThe package provided re-sync timer triggers once per hour. Users may optionally redefine this behavior simply by [[Systemd#Editing provided units|extending the systemd unit]]. The example below changes the timer to sync once every ten minutes (note that {{ic|OnUnitActiveSec}} needs to be cleared before being re-assigned [https://bugzilla.redhat.com/show_bug.cgi?id=756787#c9]):\n\n{{hc|~/.config/systemd/user/psd-resync.timer.d/frequency.conf|2=\n[Unit]\nDescription=Timer for Profile-sync-daemon - 10min\n\n[Timer]\nOnUnitActiveSec=\nOnUnitActiveSec=10min\n}}\n\nSee {{man|5|systemd.timer}} for additional options.\n\n=== Overlayfs mode ===\n\n{{Note|There are several versions of overlayfs available to the Linux kernel in production in various distributions. Versions 22 and lower have a module called 'overlayfs' while newer versions (23 and higher) have a module called 'overlay' -- note the lack of the 'fs' in the newer version. Psd will automatically detect the overlayfs available to your kernel if it is configured to use one of them.}}\n\nOverlayfs is a simple union file-system mainlined in the Linux kernel version 3.18.0. Starting with psd version 5.54, overlayfs can be used to reduce the memory footprint of psd's tmpfs space and to speed up sync and unsync operations. The magic is in how the overlay mount only writes out data that has changed rather than the entire profile. The same recovery features psd uses in its default mode are also active when running in overlayfs mode. Overlayfs mode is enabled by uncommenting the {{ic|1=USE_OVERLAYFS=\"yes\"}} line in {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} followed by a [[restart]] of the daemon.\n\nSince version 6.05 of psd, users wanting to take advantage of this mode MUST have [[sudo]] rights (without password prompt) to {{ic|/usr/bin/psd-overlay-helper}} or global sudo rights. The following line in {{ic|/etc/sudoers}} will supply a [[user]] with these rights. Add it using [[Sudo#Using visudo|visudo]]:\n\n ''username'' ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper\n\nSee the example in the PREVIEW MODE section above which shows a system using overlayfs to illustrate the memory savings that can be achieved. Note the \"overlayfs size\" report compared to the total \"profile size\" report for each profile. Be aware that these numbers will change depending on how much data is written to the profile, but in common use cases the overlayfs size will always be less than the profile size.\n\n{{Warning|Usage of psd in overlayfs mode (in particular, ''psd-overlay-helper'') may lead to privilege escalation. [https://github.com/graysky2/profile-sync-daemon/issues/235]}}\n\nThe way overlayfs works is to mount a read-only base copy (browser-back-ovfs) of the profile, and manage the new data on top of that. In order to avoid resyncing to the read-only file system, a copy is used instead. So using overlayfs is a trade off: faster initial sync times and less memory usage vs. disk space in the home dir.\n\n=== Allocate more memory to accommodate profiles in /run/user/xxxx ===\n\nThe standard way of controlling the size of {{ic|/run/user}} is the RuntimeDirectorySize directive in {{ic|/etc/systemd/logind.conf}} (see {{man|5|logind.conf}} for more). By default, 10% of physical memory is used but one can increase it safely. Remember that tmpfs only consumes what is actually used; the number specified here is just a maximum allowed.\n\n=== Snapshots ===\n\nOdds are the \"last good\" backup of your browser profiles is just fine still sitting happily on your filesystem. Upon restarting psd (on a reboot for example), a check is performed to see if the symlink to the tmpfs copy of your profile is valid. If it is invalid, psd will snapshot the \"last good\" backup before it rotates it back into place. This is more for a sanity check that psd did no harm and that any data loss was a function of something else.\n\n{{Note|Users can disable the snapshot/backup feature entirely by uncommenting and setting the {{ic|USE_BACKUPS}} variable to {{ic|\"no\"}} in {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} if desired.}}\n\nYou will find the snapshot in the same directory as the browser profile and it will contain a date-time-stamp that corresponds to the time at which the recovery took place. For example, chromium will be {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} -- of course, the date_time suffix will be different for you.\n\nTo restore your snapshots:\n\n* [[Stop]] the {{ic|psd.service}} [[user unit]].\n* Confirm that there is no symlink to the tmpfs browser profile directory. If there is, psd did not stop correctly for other reasons.\n* Move the \"bad\" copy of the profile to a backup (do not blindly delete anything).\n* Copy the snapshot directory to the name that browser expects.\n\nExample using Chromium:\n\n $ mv ~/.config/chromium ~/.config/chromium-bad\n $ cp -a ~/.config/chromium-backup-crashrecovery-20130912_153310 ~/.config/chromium\n\nAt this point you can launch chromium which will use the backup snapshot you just copied into place. If all is well, close the browser and restart psd. You may safely delete {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} at this point.\n\n==== Clean all the snapshot with the clean mode ====\n\nRunning {{ic|psd clean}} will delete ALL recovery snapshots that have accumulated. Run this only if you are sure that you want to delete them.\n\n== Support ==\n\nPost in the [https://bbs.archlinux.org/viewtopic.php?pid=1026974 discussion thread] with comments or concerns.\n\n== See also ==\n\n* [http://www.webupd8.org/2013/02/keep-your-browser-profiles-in-tmpfs-ram.html Web Upd8 - Keep Your Browser Profiles In tmpfs (RAM) For Reduced Disk Writes And Increased Performance With Profile Sync Daemon]\n* [https://web.archive.org/web/20220516124034/http://www.bernaerts-nicolas.fr/linux/74-ubuntu/250-ubuntu-tweaks-ssd Nicolas Bernaerts - Tweaks for SSD drive]"
                    }
                ]
            },
            "13218": {
                "pageid": 13218,
                "ns": 0,
                "title": "List of applications/Internet",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "<noinclude>\n[[Category:Internet applications]]\n[[Category:Lists of software]]\n[[es:List of applications (Espa\u00f1ol)/Internet]]\n[[ja:\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u4e00\u89a7/\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8]]\n{{List of applications navigation}}\n</noinclude>\n== Internet ==\n\n=== Network connection ===\n\n==== Network managers ====\n\nSee [[Network configuration#Network managers]].\n\n==== VPN clients ====\n\n* {{App|chrootVPN|A script for creating a chrooted Linux client CheckPoint VPN middleware+agent setup for connecting via their Web Mobile Access Portal.|https://github.com/ruyrybeyro/chrootvpn}}\n* {{App|GlobalProtect-openconnect|A GlobalProtect VPN client (GUI) for Linux, based on OpenConnect and built with Qt5, supports SAML auth mode.|https://github.com/yuezk/GlobalProtect-openconnect/|{{AUR|globalprotect-openconnect-git}}}}\n* {{App|Libreswan|A free software implementation of the most widely supported and standarized VPN protocol based on (\"IPsec\") and the Internet Key Exchange (\"IKE\").|https://libreswan.org/|{{AUR|libreswan}}}}\n* {{App|[[Mullvad]]|A GUI client for the Mullvad VPN service |https://mullvad.net/|{{AUR|mullvad-vpn}}}}\n* {{App|[[Nebula]]|A mesh VPN network|https://www.defined.net/nebula/|{{pkg|nebula}}}}\n* {{App|[[NetworkManager]]|Supports a variety of protocols (e.g. MS, Cisco, Fortinet) via a plugin system.|https://wiki.gnome.org/Projects/NetworkManager/VPN|{{pkg|networkmanager}}}}\n* {{App|[[OpenConnect]]|Supports Cisco and Juniper VPNs.|https://www.infradead.org/openconnect/|{{pkg|openconnect}}}}\n* {{App|[[Openswan]]|IPsec-based VPN Solution.|https://www.openswan.org/|{{AUR|openswan}}}}\n* {{App|[[OpenVPN]]|To connect to OpenVPN VPNs.|https://openvpn.net/|{{pkg|openvpn}}}}\n* {{App|[[PPTP Client]]|To connect to PPTP VPNs, like Microsoft VPNs (MPPE). (insecure)|https://pptpclient.sourceforge.net/|{{pkg|pptpclient}}}}\n* {{App|RiseupVPN|A GUI client for the Riseup VPN service from riseup.net.|https://riseup.net/|{{AUR|riseup-vpn}}}}\n* {{App|[[strongSwan]]|IPsec-based VPN Solution.|https://www.strongswan.org/|{{pkg|strongswan}}}}\n* {{App|[[tinc]]|tinc is a free VPN daemon.|https://www.tinc-vpn.org/|{{pkg|tinc}}}}\n* {{App|[[vopono]]|OpenVPN and Wireguard wrapper to launch applications with VPN tunnels in network namespaces.|https://github.com/jamesmcm/vopono|{{AUR|vopono}}}}\n* {{App|vpnc|To connect to Cisco 3000 VPN Concentrators.|https://www.unix-ag.uni-kl.de/~massar/vpnc/|{{pkg|vpnc}}}}\n* {{App|[[WireGuard]]|Next generation secure network tunnel.|https://www.wireguard.com/|{{Pkg|wireguard-tools}}}}\n\n==== Proxy servers ====\n\n* {{App|Brook|Proxy focusing on strong encryption and being undetectable.|https://txthinking.github.io/brook/|{{Pkg|brook}}}}\n* {{App|[[Clash]]|A rule-based tunnel in Go.|https://github.com/Dreamacro/clash|{{Pkg|clash}}}}\n* {{App|Dante|SOCKS server and SOCKS client, implementing [[RFC:1928]] and related standards.|https://www.inet.no/dante/|{{Pkg|dante}}}}\n* {{App|Geph|A modular Internet censorship circumvention system designed specifically to deal with national filtering.|https://geph.io/en/|{{AUR|geph4-client}}}}\n* {{App|Na\u00efveProxy|A Proxy using Chrome's network stack to camouflage traffic with strong censorship resistence and low detectablility.|https://github.com/klzgrad/naiveproxy|{{Aur|naiveproxy}}}}\n* {{App|[[Privoxy]]|Non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk.|https://www.privoxy.org/|{{Pkg|privoxy}}}}\n* {{App|Project V|Project V is a set of tools to help you build your own privacy network over internet.|https://www.v2fly.org/en_US/|{{Pkg|v2ray}}}}\n* {{App|[[Shadowsocks]]|Secure socks5 proxy, designed to protect your Internet traffic.|https://www.shadowsocks.org/en/index.html{{Dead link|2022|09|20|status=404}}|Python: {{Pkg|shadowsocks}}, C: {{Pkg|shadowsocks-libev}}, Qt: {{Pkg|shadowsocks-qt5}}}}\n* {{App|[[Squid]]|Caching proxy for the Web supporting HTTP, HTTPS, FTP, and more.|http://www.squid-cache.org/|{{Pkg|squid}}}}\n* {{App|[[Stunnel]]|A server and client to add and remove TLS encryption to TCP data flow.|https://www.stunnel.org/|{{Pkg|stunnel}}}}\n* {{App|Tinyproxy|Lightweight HTTP/HTTPS proxy daemon.|https://tinyproxy.github.io/|{{Pkg|tinyproxy}}}}\n* {{App|[[Trojan]]|An unidentifiable mechanism that helps you bypass GFW.|https://trojan-gfw.github.io/trojan/|{{Pkg|trojan}}}}\n* {{App|[[Varnish]]|High-performance HTTP accelerator.|https://varnish-cache.org/|{{Pkg|varnish}}}}\n* {{App|XX-Net|Easy to use web proxy tool.|https://github.com/XX-net/XX-Net/|{{Aur|xx-net}}}}\n* {{App|Ziproxy|Forwarding (non-caching) compressing HTTP proxy server.|http://ziproxy.sourceforge.net/|{{Pkg|ziproxy}}}}\n\n==== Anonymizing networks ====\n\n* {{App|Arti|Rust implementation of the Tor anonymizing overlay network.|https://gitlab.torproject.org/tpo/core/arti|{{AUR|arti-git}}}}\n* {{App|Freenet|An encrypted network without censorship.|https://freenetproject.org/|{{AUR|freenet}}}}\n* {{App|[[GNUnet]]|Framework for secure peer-to-peer networking.|https://gnunet.org/|CLI: {{AUR|gnunet}}, GUI: {{AUR|gnunet-gtk}}}}\n* {{App|[[I2P]]|Distributed anonymous network.|https://geti2p.net/|{{Pkg|i2pd}}, {{AUR|i2p}}}}\n* {{App|Lantern|Peer-to-peer internet censorship circumvention software.|https://getlantern.org/|{{AUR|lantern-bin}}}}\n* {{App|Lokinet|Anonymous, decentralized and IP based overlay network for the internet.|https://lokinet.org/|{{AUR|lokinet}}}}\n* {{App|[[Tor]]|Anonymizing overlay network.|https://www.torproject.org/|{{Pkg|tor}}}}\n\n==== Network tunnels ====\n\n* {{App|6tunnel|Tunnels IPv6 connections for IPv4-only applications.|https://github.com/wojtekka/6tunnel/|{{Pkg|6tunnel}}}}\n* {{App|iodine|Tunnel IPv4 data through a DNS server.|https://code.kryo.se/iodine/|{{Pkg|iodine}}}}\n* {{App|isatapd|Creates and maintains an ISATAP tunnel ([[RFC:5214]]).|http://www.saschahlusiak.de/linux/isatap.htm|{{Pkg|isatapd}}}}\n* {{App|Ping Tunnel|A tool for reliably tunneling TCP connections over ICMP echo request and reply packets.|https://www.cs.uit.no/~daniels/PingTunnel/|{{Pkg|ptunnel}}}}\n* {{App|Tuntox|Tunnel TCP connections over the Tox protocol.|https://github.com/gjedeer/tuntox/|{{Pkg|tuntox}}}}\n\n=== Web browsers ===\n\nSee also [[Wikipedia:Comparison of web browsers]].\n\n==== Console ====\n\n* {{App|[[Wikipedia:Browsh|browsh]]|A fully-modern text-based browser. Runs as a frontend to headless Firefox.|https://www.brow.sh/|{{AUR|browsh}}}}\n* {{App|[[ELinks]]|Advanced and well-established feature-rich text mode web browser with mouse wheel scroll support, frames and tables, extensible with Lua & Guile (links fork).|http://elinks.or.cz/|{{Pkg|elinks}}}}\n* {{App|[[Wikipedia:Links (web browser)|Links]]|Graphics and text mode web browser. Includes a console version similar to Lynx.|http://links.twibright.com/|{{Pkg|links}}}}\n* {{App|[[Wikipedia:Lynx (web browser)|Lynx]]|Text browser for the World Wide Web.|https://lynx.invisible-island.net/|{{Pkg|lynx}}}}\n* {{App|[[Wikipedia:W3m|w3m]]|Pager/text-based web browser. It has vim-like keybindings, and is able to display images.|https://salsa.debian.org/debian/w3m|{{Pkg|w3m}}}}\n\n==== Graphical ====\n\n===== Gecko-based =====\n\nSee also [[Wikipedia:Gecko (software)]].\n\n* {{App|[[Firefox]]|Extensible browser from Mozilla based on Gecko with fast rendering.|https://mozilla.com/firefox|{{Pkg|firefox}}}}\n* {{App|[[Wikipedia:SeaMonkey|SeaMonkey]]|Continuation of the Mozilla Internet Suite.|https://www.seamonkey-project.org/|{{Pkg|seamonkey}}}}\n\n====== Firefox spin-offs ======\n\n* {{App|Dot|A fork of firefox focused on privacy and a sleeker UI.|https://www.dothq.co/|{{AUR|dot-bin}}}}\n* {{App|FireDragon|A fork of LibreWolf that includes KDE integration patches and custom branding.|https://gitlab.com/dr460nf1r3/settings/|{{AUR|firedragon}}}}\n* {{App|[[Wikipedia:GNU IceCat|GNU IceCat]]|A customized build of Firefox ESR distributed by the GNU Project, stripped of non-free components and with additional privacy extensions. Release cycle may be delayed compared to Mozilla Firefox.|https://www.gnu.org/software/gnuzilla/|{{AUR|icecat}}}}\n* {{App|LibreWolf|A fork of Firefox, focused on privacy, security and freedom.|https://librewolf.net/|{{AUR|librewolf}}}}\n* {{App|[[Tor]] Browser Launcher|Securely and easily download, verify, install, and launch Tor Browser, a fork of Firefox ESR.|https://github.com/micahflee/torbrowser-launcher|{{Pkg|torbrowser-launcher}}}}\n* {{App|Waterfox Classic|Optimized fork of Firefox 56, without data collection and allowing unsigned extensions and NPAPI plugins.|https://www.waterfox.net/|{{AUR|waterfox-classic-bin}}}}\n* {{App|Waterfox G5|Updated feature-rich branch of Waterfox, a customizable privacy-conscious web browser based on Firefox 102 ESR.|https://www.waterfox.net/|{{AUR|waterfox-g-bin}}}}\n\n===== Blink-based =====\n\nSee also [[Wikipedia:Blink (web engine)]].\n\n* {{App|[[Chromium]]|Web browser developed by Google, the open source project behind Google Chrome.|https://www.chromium.org/|{{Pkg|chromium}}}}\n\n====== Privacy-focused chromium spin-offs ======\n\n* {{App|[[Wikipedia:Brave (web browser)|Brave]]|Web browser with builtin ad- and tracker blocking.|https://www.brave.com/|{{AUR|brave-bin}}}}\n* {{App|Iridium|A privacy-focused [https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/tree/?h&#61;patchview patchset] for Chromium. See [https://github.com/iridium-browser/tracker/wiki/Differences-between-Iridium-and-Chromium differences from Chromium].|https://iridiumbrowser.de/|{{AUR|iridium-rpm}}}}\n* {{App|Ungoogled Chromium|Modifications to Google Chromium for removing Google integration and enhancing privacy, control, and transparency|https://github.com/ungoogled-software/ungoogled-chromium|{{AUR|ungoogled-chromium}}}}\n\n====== Proprietary chromium spin-offs ======\n\n* {{App|[[Google Chrome]]|Proprietary web browser developed by Google.|https://www.google.com/chrome/|{{AUR|google-chrome}}}}\n* {{App|[[Wikipedia:Microsoft Edge|Microsoft Edge]]|Proprietary web browser developed by Microsoft.|https://www.microsoft.com/edge/|{{AUR|microsoft-edge-stable-bin}}}}\n* {{App|[[Opera]]|Proprietary browser developed by Opera Software.|https://opera.com|{{Pkg|opera}}}}\n* {{App|[[Wikipedia:SlimBrowser|Slimjet]]|Fast, smart and powerful proprietary browser based on Chromium.|https://www.slimjet.com/|{{AUR|slimjet}}}}\n* {{App|[[Vivaldi]]|An advanced proprietary browser made with the power user in mind.|https://vivaldi.com/|{{Pkg|vivaldi}}}}\n* {{App|[[Wikipedia:Yandex Browser|Yandex Browser]]|Proprietary browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier.|https://browser.yandex.com/|{{AUR|yandex-browser-beta}}}}\n\n====== Browsers based on qt5-webengine ======\n\n* {{App|[[Wikipedia:Dooble|Dooble]]|Colorful Web browser.|https://textbrowser.github.io/dooble/|{{AUR|dooble}}}}\n* {{App|[[Wikipedia:Eric Python IDE|Eric]]|QtWebEngine-based HTML browser, part of the eric6 development toolset, can be launched with the {{ic|eric6_browser}} command.|https://eric-ide.python-projects.org/|{{AUR|eric}}}}\n* {{App|[[Wikipedia:Falkon|Falkon]]|Web browser based on QtWebEngine, written in Qt framework.|https://falkon.org/|{{pkg|falkon}}}}\n* {{App|[[Wikipedia:Konqueror|Konqueror]]|Web browser based on Qt toolkit and Qt WebEngine (or KHTML layout engine), part of {{Grp|kde-network}}. |https://apps.kde.org/konqueror/|{{Pkg|konqueror}}}}\n* {{App|Liri Browser|A minimalistic material design web browser written for Liri.|https://github.com/lirios/browser|{{AUR|liri-browser-git}}}}\n* {{App|[[Otter Browser]]|Browser aiming to recreate classic Opera (12.x) UI using Qt5.|https://otter-browser.org/|{{Pkg|otter-browser}}}}\n* {{App|Qt WebBrowser|Browser for embedded devices developed using the capabilities of Qt and Qt WebEngine.|https://doc.qt.io/QtWebBrowser/|{{AUR|qtwebbrowser}}}}\n* {{App|[[qutebrowser]]|A keyboard-driven, [[vim]]-like browser based on PyQt5 and QtWebEngine.|https://qutebrowser.org/|{{Pkg|qutebrowser}}}}\n\n====== Browsers based on electron ======\n\n* {{App|Beaker|Peer-to-peer web browser with tools to create and host websites.|https://github.com/beakerbrowser/beaker|{{AUR|beaker-browser}}}}\n* {{App|Franz|Messaging browser for WhatsApp, Facebook Messenger, Slack, Telegram and many other web services.|https://meetfranz.com/|{{AUR|franz}}}}\n* {{App|Hamsket|A GPL-licensed alternative to Franz, forked from the last open sources of Rambox.|https://github.com/TheGoddessInari/hamsket|{{AUR|hamsket}}}}\n* {{App|Min|A fast, minimal browser that protects your privacy. It includes an interface designed to minimize distractions.|https://minbrowser.org/|{{Pkg|min}}}}\n\n===== WebKit-based =====\n\nSee also [[Wikipedia:WebKit]].\n\n{{Note|webkitgtk, webkitgtk2, qt5-webkit and qtwebkit-based browsers were removed from the list, because these are today considered insecure and outdated. More info [https://blogs.gnome.org/mcatanzaro/2016/02/01/on-webkit-security-updates/ here] and [https://blogs.gnome.org/mcatanzaro/2022/11/04/stop-using-qtwebkit/ here].}}\n\n====== Browsers based on webkit2gtk ======\n\nMost of these support ad-blocking via [https://github.com/jun7/wyebadblock wyebadblock].\n* {{App|[[Badwolf]]|A minimalist privacy-focused browser.|https://hacktivis.me/projects/badwolf|{{AUR|badwolf}}}}\n* {{App|Ephemeral|A private-by-default, always-incognito browser for elementary OS.|https://github.com/cassidyjames/ephemeral|{{AUR|ephemeral}}}}\n* {{App|Eolie|Simple web browser for GNOME.|https://wiki.gnome.org/Apps/Eolie|{{Pkg|eolie}}}}\n* {{App|[[GNOME Web]]|Browser which uses the WebKitGTK rendering engine, part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Web/|{{Pkg|epiphany}}}}\n* {{App|[[Lariza]]|A simple, experimental web browser using GTK 3, GLib and WebKit2GTK.|https://www.uninformativ.de/git/lariza/|{{AUR|lariza}}}}\n* {{App|[[Luakit]]|Fast, small, webkit based browser framework extensible by Lua.|https://luakit.github.io/|{{Pkg|luakit}}}}\n* {{App|[[Midori]]|Lightweight web browser based on GTK and WebKit.|https://www.midori-browser.org/|{{Pkg|midori}}}}\n* {{App|Nyxt|Keyboard-oriented, infinitely extensible browser designed for power users. It has familiar key-bindings (Emacs, VI, CUA) and features fuzzy searching between tabs, multiple selections, history as a tree and more.|https://nyxt.atlas.engineer/|{{Pkg|nyxt}}}}\n* {{App|[[surf]]|Lightweight WebKit-based browser, which follows the [https://suckless.org/philosophy suckless philosophy] (basically, the browser itself is a single C source file).|https://surf.suckless.org/|{{AUR|surf}}}}\n* {{App|Surfer|Simple keyboard based web browser, written in C. It supports custom JS-scripts.|https://github.com/nihilowy/surfer|{{AUR|surfer-git}}}}\n* {{App|Tangram|Integration of web applications into the desktop, specifically GNOME.|https://github.com/sonnyp/Tangram|{{AUR|tangram}}}}\n* {{App|Vimb|A Vim-like web browser written in C that is inspired by Pentadactyl and Vimprobable. It includes a manpage and a howto for common configurations. It supports custom JS-scripts, dark mode and handles geolocation requests.|https://fanglingsu.github.io/vimb/|{{Pkg|vimb}}}}\n* {{App|wyeb|A vim-like web browser inspired by dwb and luakit with Adblock.|https://github.com/jun7/wyeb|{{aur|wyeb-git}}}}\n\n===== Other =====\n\n* {{App|[[Wikipedia:Dillo|Dillo]]|Small, fast graphical web browser built on [[Wikipedia:Fltk|FLTK]]. Uses its own layout engine.|https://www.dillo.org/|{{Pkg|dillo}}}}\n* {{App|[[Wikipedia:Links (web browser)|Links]]|Graphics and text mode web browser. Includes a graphical X-window/framebuffer version with CSS, image rendering, pull-down menus. It can be launched with the {{ic|xlinks -g}} command.|http://links.twibright.com/|{{Pkg|links}}}}\n* {{App|[[Wikipedia:NetSurf|NetSurf]]|Featherweight browser written in C, notable for its slowly developing JavaScript support and fast rendering through its own layout engine.|https://www.netsurf-browser.org/|{{Pkg|netsurf}}}}\n* {{App|[[Wikipedia:Pale Moon (web browser)|Pale Moon]]|A Firefox fork focussing on speed, with a pre-Firefox 29 interface. Uses [[Wikipedia:Goanna (software)|Goanna]] layout engine, a fork of Gecko. Firefox add-ons may not be compatible. Without support for newer Firefox features such as WebExtensions, cache2, e10s, and OTMC. Many of the old [https://github.com/JustOff/ca-archive 93,598 versions of 19,450 Firefox add-ons created by 14,274 developers over the past 15 years using XUL/XPCOM technology in the Classic Add-ons Archive] still work.|https://www.palemoon.org/|{{AUR|palemoon}}}}\n\n==== Gemini browsers ====\n\nSee also [[Wikipedia:Gemini (protocol)#Software]].\n\n* {{App|Amfora|Terminal browser for the Gemini protocol.|https://github.com/makeworld-the-better-one/amfora|{{Pkg|amfora}}}}\n* {{App|Bombabillo|Non-web client for the terminal, supporting Gopher, Gemini and much more.|https://bombadillo.colorfield.space/|{{AUR|bombadillo-git}}}}\n* {{App|Castor|Graphical client for the Gemini, Gopher, and Finger protocols, written in Rust with GTK.|https://git.sr.ht/~julienxx/castor|{{AUR|castor}}}}\n* {{App|Kristall|Qt-based Gemini browser.|https://github.com/MasterQ32/kristall|{{AUR|kristall}}}}\n* {{App|Lagrange|Desktop GUI client for browsing Gemini space, offering modern conveniences familiar from web browsers.|https://gmi.skyjake.fi/lagrange|{{AUR|lagrange}}}}\n* {{App|Telescope|w3m-like browser for Gemini.|https://telescope.omarpolo.com|{{AUR|telescope}}}}\n\n=== Web servers ===\n\nA [[Wikipedia:Web server|web server]] serves HTML web pages and other files via HTTP to clients like [[:Category:Web browser|web browsers]].\nThe major web servers can be interfaced with programs to serve dynamic content ([[web applications]]).\n\nSee also [[:Category:Web server]] and [[Wikipedia:Comparison of web server software]].\n\n* {{App|[[Apache HTTP Server]]|A high performance Unix-based HTTP server.|https://httpd.apache.org/|{{Pkg|apache}}}}\n* {{App|[[Caddy]]|HTTP/2 web server with automatic HTTPS.|https://caddyserver.com/|{{Pkg|caddy}}}}\n* {{App|[[Hiawatha]]|Secure and advanced web server.|https://www.hiawatha-webserver.org/|{{Pkg|hiawatha}}}}\n* {{App|[[Lighttpd]]|A secure, fast, compliant and very flexible web-server.|https://www.lighttpd.net/|{{Pkg|lighttpd}}}}\n* {{App|[[nginx]]|Lightweight HTTP server and IMAP/POP3 proxy server.|https://nginx.org/|{{Pkg|nginx}}}}\n* {{App|sthttpd|Supported fork of the thttpd web server.|https://github.com/blueness/sthttpd|{{Pkg|sthttpd}}}}\n* {{App|yaws|Web server/framework written in Erlang.|http://yaws.hyber.org/|{{AUR|yaws}}}}\n\n==== Static web servers ====\n\n* {{App|darkhttpd|A small and secure static web server, written in C, does not support HTTPS or Auth.|https://unix4lyfe.org/darkhttpd/|{{Pkg|darkhttpd}}}}\n* {{app|miniserve|Rust alternative to darkhttpd with UTF-8, optional HTTP authentication, file uploading, and more.|https://github.com/svenstaro/miniserve|{{pkg|miniserve}}}}\n* {{App|quark|An extremly small and simple http get-only web server. It only serves static pages on a single host.|https://tools.suckless.org/quark/|{{AUR|quark-git}}}}\n* {{App|serve|Static file serving and directory listing.|https://github.com/zeit/serve|{{AUR|nodejs-serve}}}}\n* {{App|servy|A tiny little web server, single binary, written in Rust.|https://github.com/zethra/servy|{{AUR|servy}}}}\n* {{App|Webfs|Simple and instant web server for mostly static content.|https://linux.bytesex.org/misc/webfs.html|{{Pkg|webfs}}}}\n\nThe [[Python]] standard library module [https://docs.python.org/library/http.server.html http.server] can also be used from the command-line.\n\n==== Specialized web servers ====\n\n* {{App|chezdav|WebDAV server that allows to share a particular directory.|https://wiki.gnome.org/phodav|{{Pkg|phodav}}}}\n* {{App|Mongoose|Embedded web server library, supports WebSocket and MQTT.|https://github.com/cesanta/mongoose|{{AUR|mongoose}}}}\n* {{App|OnionShare|Lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you.|https://onionshare.org/|{{Pkg|onionshare}}}}\n* {{App|VServer|GTK application, which opens an http server in the selected folder and shares your files.|https://github.com/bcedu/ValaSimpleHTTPServer|{{AUR|vserver-git}}}}\n* {{App|webhook|Small server for creating HTTP endpoints (hooks)|https://github.com/adnanh/webhook|{{Pkg|webhook}}}}\n* {{App|Woof|An ad-hoc single file webserver; Web Offer One File.|http://www.home.unix-ag.org/simon/woof.html|{{AUR|woof}}}}\n\n==== WSGI servers ====\n\n* {{App|Gunicorn|A Python WSGI HTTP Server for UNIX.|https://gunicorn.org/|{{Pkg|gunicorn}}}}\n* {{App|[[uWSGI]]|A fast, self-healing and developer/sysadmin-friendly application container server written in C.|https://uwsgi-docs.readthedocs.io/|{{Pkg|uwsgi}}}}\n* {{App|Waitress|A WSGI server for Python 3.|https://github.com/Pylons/waitress|{{Pkg|python-waitress}}}}\n\nApache also supports WSGI with [[mod_wsgi]].\n\n==== Performance testing ====\n\n* {{App|http_load|A webserver performance testing tool, runs in a single process.|https://www.acme.com/software/http_load/|{{AUR|http_load}}}}\n* {{App|httperf|Can generate various HTTP workloads, written in C.|https://github.com/httperf/httperf|{{AUR|httperf}}}}\n* {{app|httping|A \"ping\"-like tool for HTTP requests|https://www.vanheusden.com/httping/|{{pkg|httping}}}}\n* {{App|siege|An HTTP regression testing and benchmarking utility.|https://www.joedog.org/siege-home/|{{Pkg|siege}}}}\n* {{App|vegeta|HTTP load testing tool, written in Go.|https://github.com/tsenart/vegeta|{{Pkg|vegeta}}}}\n* {{App|Web Bench|Benchmarking tool, uses fork() for simulating multiple clients.|http://home.tiscali.cz/~cz210552/webbench.html|{{AUR|webbench}}}}\n\n=== File sharing ===\n\n==== Download managers ====\n\nSee also [[Wikipedia:Comparison of download managers]].\n\n===== Console =====\n\n* {{App|[[aria2]]|Lightweight download utility that supports HTTP/S, FTP, SFTP, BitTorrent and Metalink. It can run as a daemon controlled via a built-in JSON-RPC or XML-RPC interface.|https://aria2.github.io/|{{Pkg|aria2}}}}\n* {{App|Axel|Featherweight command line download accelerator sitting at under 250kB on disk. Supports HTTP/S and FTP.|https://github.com/eribertomota/axel|{{Pkg|axel}}}}\n* {{App|[[Wikipedia:cURL|cURL]]|An URL retrieval utility and library. Supports HTTP, FTP and SFTP.|https://curl.haxx.se/|{{Pkg|curl}}}}\n* {{App|HTTPie|Human-friendly command-line HTTP client for the API era.|https://github.com/httpie/httpie|{{Pkg|httpie}}}}\n* {{App|[[Wikipedia:HTTrack|HTTrack]]|An easy-to-use offline browser utility. It allows you to download a World Wide Web site from the Internet to a local directory, building recursively all directories, getting HTML, images, and other files from the server to your computer.|https://www.httrack.com/|{{Pkg|httrack}}}}\n* {{App|[[Wikipedia:Lftp|LFTP]]|Sophisticated file transfer program. Supports HTTP, FTP, SFTP, FISH, and BitTorrent.|https://lftp.yar.ru/|{{Pkg|lftp}}}}\n* {{App|mps-youtube|Terminal based YouTube jukebox with playlist management. Plays audio/video through mplayer/mpv.|https://github.com/mps-youtube/mps-youtube|{{AUR|mps-youtube-git}}}}\n* {{App|Plowshare|A set of command-line tools designed for managing file-sharing websites (aka Hosters).|https://github.com/mcrapet/plowshare|{{Pkg|plowshare}}}}\n* {{App|quvi|A command-line-tool suite to access the flash media stream properties.|http://quvi.sourceforge.net/|{{AUR|quvi}}}}\n* {{App|[[Wikipedia:RTMPDump|RTMPDump]]|Download FLV videos through RTMP (Adobe's proprietary protocol for Flash video players)|http://rtmpdump.mplayerhq.hu/|{{Pkg|rtmpdump}}}}\n* {{App|snarf|Command-line URL retrieval tool. Supports HTTP and FTP.|https://www.xach.com/snarf/|{{Pkg|snarf}}}}\n* {{App|[[Streamlink]]|Launch streams from various streaming services in a custom video player or save them to a file.|https://streamlink.github.io/|{{Pkg|streamlink}}}}\n* {{App|[[Wikipedia:Streamripper|Streamripper]]|Records and splits streaming mp3 into tracks.|https://streamripper.sourceforge.net/|{{AUR|streamripper}}}}\n* {{App|You-Get|Download media contents (videos, audios, images) from the Web.|https://you-get.org/|{{Pkg|you-get}}}}\n* {{App|[[youtube-dl]]|Download videos from YouTube and many other web sites.|https://rg3.github.io/youtube-dl/|{{Pkg|youtube-dl}}}}\n* {{App|youtube-viewer|Command line utility for viewing YouTube videos.|https://github.com/trizen/youtube-viewer|{{AUR|youtube-viewer}}}}\n* {{App|ytfzf|A POSIX script to find and watch youtube videos from the terminal.|https://github.com/pystardust/ytfzf|{{Pkg|ytfzf}}}}\n* {{App|yt-dlp|A youtube-dl fork with additional features and fixes.|https://github.com/yt-dlp/yt-dlp|{{Pkg|yt-dlp}}}}\n* {{App|[[Wikipedia:Wget|Wget]]|A network utility to retrieve files from the Web. Supports HTTP and FTP.|https://www.gnu.org/software/wget/|{{Pkg|wget}}}}\n\n===== Graphical =====\n\n* {{App|ClipGrab|Downloader and converter for YouTube, Vimeo and many other online video sites.|https://clipgrab.org/|{{Pkg|clipgrab}}}}\n* {{App|FatRat|Qt based download manager with support for HTTP, FTP, SFTP, BitTorrent and Metalink.|https://github.com/LubosD/fatrat|{{AUR|fatrat-git}}}}\n* {{App|Forklift|Simple GUI for youtube-dl using PyGObject.|https://github.com/Johnn3y/Forklift|{{AUR|forklift-git}}}}\n* {{App|FreeRapid|Java-based downloader that supports downloading from file-sharing services.|https://wordrider.net/freerapid/|{{AUR|freerapid}}}}\n* {{App|gtk-youtube-viewer|GTK utility for viewing YouTube videos. See optional dependencies for the GUI.|https://github.com/trizen/youtube-viewer|{{AUR|youtube-viewer}}}}\n* {{App|[[Wikipedia:Wget#GWget|Gwget]]|Download manager for GNOME. Supports HTTP and FTP.|https://gitlab.gnome.org/Archive/gwget|{{Pkg|gwget}}}}\n* {{App|Gydl|GUI wrapper around the already existing youtube-dl program to download content from sites like YouTube.|https://github.com/JannikHv/gydl|{{AUR|gydl-git}}}}\n* {{App|Gyre|GTK3 downloader for videos from Coub.|https://github.com/HelpSeeker/Gyre|{{AUR|gyre}}}}\n* {{App|[[JDownloader]]|Java-based downloader for one-click hosting sites.|https://jdownloader.org/|{{AUR|jdownloader2}}}}\n* {{App|[[Wikipedia:KGet|KGet]]|Download manager for KDE. Supports HTTP, FTP, BitTorrent and Metalink. Part of {{Grp|kde-network}}.|https://apps.kde.org/kget/|{{Pkg|kget}}}}\n* {{App|MegaBasterd|Yet another unofficial MEGA downloader/uploader/streaming suite.|https://github.com/tonikelope/megabasterd|{{AUR|megabasterd-bin}}}}\n* {{App|Motrix|Full-featured download manager that supports downloading HTTP, FTP, BitTorrent, Magnet, etc. Based on the [https://electronjs.org/ Electron] platform.|https://motrix.app/|{{AUR|motrix}}}}\n* {{App|Persepolis|Graphical front-end for aria2 download manager with lots of features. Supports HTTP and FTP.|https://persepolisdm.github.io/|{{Pkg|persepolis}}}}\n* {{App|[[pyLoad]]|Downloader written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web.|https://pyload.net/|{{AUR|pyload-ng}}}}\n* {{App|Steadyflow|Simple download manager for GNOME. Supports HTTP and FTP.|https://launchpad.net/steadyflow|{{Pkg|steadyflow}}}}\n* {{App|Streamtuner2|Internet radio station and video browser. It simply lists stations in categories from different directories and launches your preferred media apps for playback.|https://sourceforge.net/projects/streamtuner2/|{{AUR|streamtuner2}}}}\n* {{App|uGet|GTK download manager featuring download classification and HTML import. Supports HTTP, FTP, BitTorrent, Metalink, YouTube and Mega.|https://ugetdm.com/|{{Pkg|uget}}}}\n* {{App|Video Downloader|GTK application to download videos from websites like YouTube and many others (based on youtube-dl).|https://github.com/Unrud/video-downloader|{{AUR|video-downloader}}}}\n* {{App|Xtreme Download Manager|Powerful tool to increase download speed up-to 500%. Supports HTTP and FTP. Video grabber works in a general way and is not limited to certain websites.|https://subhra74.github.io/xdm/|{{AUR|xdman}}}}\n* {{App|youtubedl-gui|Simple-to-use graphical interface for youtube-dl.|https://github.com/JaGoLi/ytdl-gui|{{AUR|youtubedl-gui}}}}\n\n==== LAN file transfer ====\n\nSee also [[#LAN messengers]].\n\n* {{App|LAN Share|Cross platform local area network file transfer application, built using Qt GUI framework. It can be used to transfer a whole folder, one or more files, large or small immediately without any additional configuration.|https://github.com/abdularis/LAN-Share|{{AUR|lanshare}}}}\n* {{App|NitroShare|Cross-platform network file transfer application, built using Qt GUI framework. It is designed to make transferring files from one device to another on the local network extremely simple.|https://nitroshare.net/|{{Pkg|nitroshare}}}}\n* {{App|Teleport|Native GTK3 application to effortlessly share files on the local network.|https://gitlab.gnome.org/jsparber/teleport|{{AUR|teleport-share-git}}}}\n* {{App|Warpinator|GTK application to share files across the LAN.|https://github.com/linuxmint/warpinator|{{Pkg|warpinator}}}}\n\n==== Cloud storage servers ====\n\n* {{App|[[Cozy]]|A personal cloud you can hack, host and delete.|https://cozy.io/|{{Pkg|cozy-stack}}}}\n* {{App|[[Nextcloud]]|A cloud server to store your files centrally on a hardware controlled by you.|https://nextcloud.com|{{Pkg|nextcloud}}}}\n* {{App|[[Pydio]]|Mature open source web application for file sharing and synchronization.|https://pydio.com/{{Dead link|2022|09|20|status=SSL error}}|{{AUR|pydio}}}}\n* {{App|[[Seafile]]|An online file storage and collaboration tool with advanced support for file syncing, privacy protection and teamwork.|https://www.seafile.com/|{{AUR|seafile-server}}}}\n\n==== Cloud synchronization clients ====\n\n{{Tip|<nowiki></nowiki>\n* Some [[synchronization and backup programs]] provide direct support for some cloud-storage services.\n* Some [[FUSE#List of FUSE filesystems|FUSE filesystems]] provide a way to mount cloud-storage as a filesystem. Google Drive can be accessed also by {{Pkg|gvfs-google}} for GVFS-based applications (like [[Nautilus]]), and by {{Pkg|kio-gdrive}} for KIO-based applications (like [[Dolphin]]).\n* See [[Data-at-rest encryption#Cloud-storage optimized]] to achieve zero-knowledge (client-side transparent encryption) storage on any third-party cloud service.\n}}\n\n===== Multi-protocol clients =====\n\n* {{App|CloudCross|Synchronize local files and folders with many cloud providers. Mail.ru Cloud, Yandex Disk, Google Drive, OneDrive and Dropbox support is available.|https://cloudcross.mastersoft24.ru/{{Dead link|2022|09|20|status=SSL error}}|{{AUR|cloudcross}}}}\n* {{App|Rclone|Multi-provider sync, copy, and mount client.|https://rclone.org/|{{Pkg|rclone}}}}\n* {{App|Rclone Browser|GUI client for Rclone.|https://github.com/kapitainsky/RcloneBrowser|{{AUR|rclone-browser}}}}\n\n===== Google Drive clients =====\n\n* {{App|drive|Tiny program to pull or push Google Drive files.|https://github.com/odeke-em/drive|{{AUR|drive}}}}\n* {{App|DriveSync|Command line utility that synchronizes your Google Drive files with a local folder on your machine.|https://github.com/MStadlmeier/drivesync|{{AUR|drivesync}}}}\n* {{App|gdrive|Command line utility for interacting with Google Drive.|https://github.com/prasmussen/gdrive|{{AUR|gdrive}}}}\n* {{App|Grive|Google Drive client with support for new Drive REST API and partial sync.|https://github.com/vitalif/grive2|{{AUR|grive}}}}\n* {{App|[[Insync]]|Unofficial proprietary Google Drive desktop client.|https://www.insynchq.com/|{{AUR|insync}}}}\n* {{App|ODrive|Google Drive GUI based on the [https://electronjs.org/ Electron] platform.|https://github.com/liberodark/ODrive|{{AUR|odrive-bin}}}}\n* {{App|VGrive|GTK-based GUI client (back-end and front-end) for Google Drive made in Vala.|https://github.com/bcedu/VGrive|{{AUR|vgrive}}}}\n\n===== Other synchronization clients =====\n\n* {{App|aws-cli|CLI for Amazon Web Services, including efficient file transfers to and from Amazon S3.|https://aws.amazon.com/cli/|{{Pkg|aws-cli}}}}\n* {{App|Backblaze B2|Backblaze B2 open-source command-line client.|https://www.backblaze.com/b2/cloud-storage.html|{{AUR|backblaze-b2}}}}\n* {{App|Baidu Netdisk|Proprietary client for cloud storage service launched by Baidu (formerly Baidu Cloud).|https://pan.baidu.com|{{AUR|baidunetdisk-bin}}}}\n* {{App|[[Cozy]] Drive|Desktop client for Cozy.|https://cozy-labs.github.io/cozy-desktop/|{{Pkg|cozy-desktop}}}}\n* {{App|[[Dropbox]]|Proprietary desktop client for Dropbox.|https://www.dropbox.com/|{{AUR|dropbox}}}}\n* {{App|hubiC|Proprietary synchronization client service and command line tools for hubiC.|https://hubic.com/en/downloads|{{AUR|hubic}}}}\n* {{App|[[Wikipedia:Mega (service)|Mega]] Sync Client|Proprietary desktop client to sync files with Mega.|https://mega.nz/|{{AUR|megasync}}}}\n* {{App|Megatools|Unofficial CLI for Mega.|https://megatools.megous.com/|{{AUR|megatools}}}}\n* {{App|[[Nextcloud]] Client|Desktop client for Nextcloud.|https://nextcloud.com/|{{Pkg|nextcloud-client}}}}\n* {{App|Nutstore|Proprietary desktop client for Nutstore.|https://www.jianguoyun.com/|{{AUR|nutstore}}}}\n* {{App|OneDrive|Unofficial CLI for [https://onedrive.live.com/about/ OneDrive].|https://github.com/skilion/onedrive|{{AUR|onedrive}}}}\n* {{App|OneDrive|Fork of the unofficial CLI for [https://onedrive.live.com/about/ OneDrive].|https://github.com/abraunegg/onedrive|{{AUR|onedrive-abraunegg}}}}\n* {{App|[[Wikipedia:ownCloud|ownCloud]] Desktop Client|Desktop syncing client for ownCloud.|https://owncloud.com/client/|{{Pkg|owncloud-client}}}}\n* {{App|pCloud Drive|Proprietary desktop syncing client for pCloud. Based on the [https://electronjs.org/ Electron] platform.|https://www.pcloud.com/download-free-online-cloud-file-storage.html|{{AUR|pcloud-drive}}}}\n* {{App|[[Pydio]]Sync|Desktop client for Pydio.|https://pydio.com/{{Dead link|2022|09|20|status=SSL error}}|{{AUR|pydio-sync}}}}\n* {{App|S3cmd|Unofficial CLI for Amazon S3.|https://s3tools.org/s3cmd|{{Pkg|s3cmd}}}}\n* {{App|[[Seafile]] Client|GUI client for Seafile.|https://www.seafile.com/|{{AUR|seafile-client}}}}\n* {{App|[[Wikipedia:SpiderOak|SpiderOak]] One|Proprietary client for SpiderOak One.|https://spideroak.com/|{{AUR|spideroak-one}}}}\n* {{App|[[Wikipedia:Synology|Synology]] Drive|Proprietary GUI client to sync and share files between a centralized Synology NAS and multiple client computers.|https://www.synology.com/|{{AUR|synology-drive}}}}\n* {{App|[[Wikipedia:Tresorit|Tresorit]]|Proprietary desktop syncing client for Tresorit.|https://tresorit.com/download|{{AUR|tresorit}}}}\n* {{App|[[Yandex Disk]]|Proprietary CLI for Yandex Disk.|https://disk.yandex.ru/|{{AUR|yandex-disk}}}}\n\n==== FTP ====\n\n===== FTP clients =====\n\nSee also [[Wikipedia:Comparison of FTP client software]].\n* {{App|[[Wikipedia:FileZilla|FileZilla]]|Fast and reliable FTP, FTPS and SFTP client.|https://filezilla-project.org/|{{Pkg|filezilla}}}}\n* {{App|[[Wikipedia:gFTP|gFTP]]|Multithreaded FTP client for Linux.|https://www.gftp.org/|{{Pkg|gftp}}}}\n* {{App|ftp|Simple ftp client provided by GNU Inetutils|https://www.gnu.org/software/inetutils/manual/inetutils.html#ftp-invocation|{{Pkg|inetutils}}}}\n* {{App|ncftp|A set of free application programs implementing FTP.|https://www.ncftp.com/|{{Pkg|ncftp}}}}\n* {{App|[[Wikipedia:tnftp|tnftp]]|FTP client with several advanced features for [[Wikipedia:NetBSD|NetBSD]].|https://freshmeat.sourceforge.net/projects/tnftp|{{Pkg|tnftp}}}}\n\nSome file managers like [[Dolphin]], [[GNOME Files]] and [[Thunar]] also provide FTP functionality.\n\n===== FTP servers =====\n\nSee also [[Wikipedia:List of FTP server software]].\n\n* {{App|bftpd|Small, easy-to-configure FTP server|https://bftpd.sourceforge.net/|{{Pkg|bftpd}}}}\n* {{App|ftpd|Simple ftp server provided by GNU Inetutils|https://www.gnu.org/software/inetutils/manual/inetutils.html#ftpd-invocation|{{Pkg|inetutils}}}}\n* {{App|[[ProFTPD|proFTPd]]|A secure and configurable FTP server|http://www.proftpd.org/|{{AUR|proftpd}}}}\n* {{App|[[Pure-FTPd]]|Free (BSD-licensed), secure, production-quality and standard-compliant FTP server.|https://www.pureftpd.org/project/pure-ftpd/|{{AUR|pure-ftpd}}}}\n* {{App|[[SSH]]|SFTP is a network protocol that provides file access, file transfer, and file management over any reliable data stream.|https://www.openssh.com|{{Pkg|openssh}}}}\n* {{App|[[vsftpd]]|Lightweight, stable and secure FTP server for UNIX-like systems.|https://security.appspot.com/vsftpd.html|{{Pkg|vsftpd}}}}\n\n==== BitTorrent clients ====\n\nSome [[#Download managers|download managers]] are also able to connect to the BitTorrent network: [[Aria2]], [[Wikipedia:Lftp|LFTP]], FatRat, [[Wikipedia:KGet|KGet]], [[Wikipedia:MLDonkey|MLDonkey]], uGet.\n\nSee also [[Wikipedia:Comparison of BitTorrent clients]].\n\n===== Console =====\n\n* {{App|Ctorrent|CTorrent is a BitTorrent client implemented in C++ to be lightweight and quick.|https://www.rahul.net/dholmes/ctorrent/|{{AUR|enhanced-ctorrent}}}}\n* {{App|[[Deluge]]|BitTorrent client with multiple user interfaces in a client/server model. This package includes a console client.|https://deluge-torrent.org/|{{Pkg|deluge}}}}\n* {{App|peerflix|Streaming torrent client for node.js.|https://github.com/mafintosh/peerflix|{{AUR|peerflix}}}}\n* {{App|[[rTorrent]]|Simple and lightweight ncurses BitTorrent client.|https://rakshasa.github.io/rtorrent/|{{Pkg|rtorrent}}}}\n* {{App|[[Transmission]] CLI|Simple and easy-to-use BitTorrent client with a daemon version and multiple front-ends. This package includes backend, daemon, command-line interface, and a Web UI interface.|https://transmissionbt.com/|{{Pkg|transmission-cli}}}}\n\n===== Graphical =====\n\n* {{App|[[Deluge]] (GTK interface)|User-friendly BitTorrent client written in Python using GTK.|https://deluge-torrent.org/|{{Pkg|deluge-gtk}}}}\n* {{App|Fragments|Easy to use BitTorrent client for the GNOME desktop environment.|https://gitlab.gnome.org/World/Fragments|{{Pkg|fragments}}}}\n* {{App|[[Wikipedia:FrostWire|FrostWire]]|Easy to use cloud downloader, BitTorrent client and media player.|https://www.frostwire.com/|{{AUR|frostwire}}}}\n* {{App|[[Ktorrent]]|Feature-rich BitTorrent client for KDE.|https://apps.kde.org/ktorrent/|{{Pkg|ktorrent}}}}\n* {{App|Powder Player|Hybrid between a streaming BitTorrent client and a player. Based on the [https://electronjs.org/ Electron] platform.|https://powder.media/|{{AUR|powder-player-bin}}}}\n* {{App|[[qBittorrent]]|Open source (GPLv2) BitTorrent client with an integrated torrent search engine that strongly resembles \u00b5Torrent.|https://www.qbittorrent.org/|{{Pkg|qbittorrent}}}}\n* {{App|[[Wikipedia:Tixati|Tixati]]|Proprietary peer-to-peer file sharing program that uses the popular BitTorrent protocol.|https://tixati.com/|{{AUR|tixati}}}}\n* {{App|Torrential|Simple torrent client for elementary OS.|https://github.com/davidmhewitt/torrential|{{Pkg|torrential}}}}\n* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version and multiple front-ends.|https://transmissionbt.com/|GTK: {{Pkg|transmission-gtk}}, Qt: {{Pkg|transmission-qt}}}}\n* {{App|[[Transmission]] Remote|GTK client for remote management of the Transmission BitTorrent client, using its HTTP RPC protocol.|https://github.com/transmission-remote-gtk/transmission-remote-gtk|{{Pkg|transmission-remote-gtk}}}}\n* {{App|Tremotesf|Qt client for remote management of the Transmission BitTorrent client, using its HTTP RPC protocol.|https://github.com/equeim/tremotesf2|{{AUR|tremotesf}}}}\n* {{App|[[Wikipedia:Tribler|Tribler]]|4th generation file sharing system BitTorrent client.|https://www.tribler.org|{{AUR|tribler}}}}\n* {{App|[[Wikipedia:Vuze|Vuze]]|Feature-rich BitTorrent client written in Java (formerly Azureus).|https://www.vuze.com/|{{AUR|vuze}}}}\n* {{App|WebTorrent Desktop|Streaming BitTorrent application. Based on the [https://electronjs.org/ Electron] platform.|https://webtorrent.io/desktop/|{{AUR|webtorrent-desktop}}}}\n\n==== Other P2P networks ====\n\nSee also [[Wikipedia:Comparison of file-sharing applications]].\n\n* {{App|[[aMule]]|Well-known eDonkey/Kad client with a daemon version and GTK, web, and CLI front-ends.|https://www.amule.org/|{{Pkg|amule}}}}\n* {{App|EiskaltDC++|Direct Connect and ADC client.|https://github.com/eiskaltdcpp/eiskaltdcpp|GTK: {{AUR|eiskaltdcpp-gtk}}, Qt: {{AUR|eiskaltdcpp-qt}}}}\n* {{App|[[Wikipedia:gtk-gnutella|gtk-gnutella]]|GTK server/client for the Gnutella peer-to-peer network.|http://gtk-gnutella.sourceforge.net/|{{AUR|gtk-gnutella}}}}\n* {{App|1=KaMule|2=KDE graphical front-end for aMule.|3=https://www.linux-apps.com/content/show.php?content=150270|4={{AUR|kamule}}}}\n* {{App|LBRY|Browser and wallet for LBRY, the decentralized, user-controlled content marketplace. Based on the [https://electronjs.org/ Electron] platform.|https://lbry.io/|{{AUR|lbry-desktop-bin}}}}\n* {{App|lbt|Small set of command-line tools for LBRY.|https://gitlab.com/gardenappl/lbt|{{AUR|lbt}}}}\n* {{App|[[Wikipedia:MLDonkey|MLDonkey]]|Multi-protocol P2P client that supports HTTP, FTP, BitTorrent, Direct Connect, eDonkey and FastTrack.|https://mldonkey.sourceforge.net/|{{AUR|mldonkey}}}}\n* {{App|ncdc|Modern and lightweight Direct Connect and ADC client with a friendly ncurses interface.|https://dev.yorhel.nl/ncdc|{{AUR|ncdc}}}}\n* {{App|Nicotine+|A graphical client for the Soulseek P2P network.|https://github.com/Nicotine-Plus/nicotine-plus|{{Pkg|nicotine+}}}}\n* {{App|Send Anywhere|Proprietary file sharing service where users can directly share digital content in real time. Based on the [https://electronjs.org/ Electron] platform.|https://send-anywhere.com/|{{AUR|sendanywhere}}}}\n* {{App|[[IPFS]]|IPFS is a P2P Network powered by Blockchain capable to share and receive file.|https://ipfs.io/|{{Pkg|kubo}}}}\n\n==== Pastebin services ====\n\nSee also [[Wikipedia:Pastebin]].\n\nPastebin services are often used to quote text or images while collaborating and troubleshooting. Pastebin clients provide a convenient way to post from the command line.\n{{Note|An acceptable pastebin service does not require enabling JavaScript for viewing, does not display adverts, manipulate the pasted content or require a login.\n\n[https://pastebin.com/ pastebin.com] is blocked for some people because of malware found on the site and has a history of annoying issues (requires JavaScript, displays adverts, inserts CRLF line-endings and displaying CAPTCHAs at random). Do '''not''' use it.}}\n\n===== Without a dedicated client =====\n\nSome services can be used with more general command line tool, such as [[CURL]]. For extensions, such as line numbers, one can use more command line tools. Such as {{ic|cat -n}}.\n\n* [https://0x0.st/ 0x0.st] is a file hosting and URL shortening service. Usage examples are:\n:{{bc|''command'' <nowiki>| curl -F 'file=@-' 0x0.st </nowiki>}} or upload a file: {{bc|<nowiki>curl -F 'file=@-' 0x0.st < </nowiki>''file''}}\n* [http://ix.io/ ix.io] Usage examples are:\n:{{bc|''command'' <nowiki>| curl -F 'f:1=<-' ix.io </nowiki>}} or upload a file: {{bc|<nowiki>curl -F 'f:1=<-' ix.io < </nowiki>''file''}}\n*[https://termbin.com termbin.com] works with [[nc]].\n\n===== Dedicated clients =====\n\n* {{App|Elmer|Pastebin client similar to wgetpaste and curlpaste, except written in Perl and usable with wget or curl. Servers: [http://codepad.org/ codepad.org], [http://rafb.me/ rafb.me], [http://sprunge.us/ sprunge.us].|https://github.com/sudokode/elmer|{{AUR|elmer}}}}\n* {{App|Fb-client|Client for the [https://paste.xinu.at/ paste.xinu.at] pastebin.|https://paste.xinu.at|{{Pkg|fb-client}}}}\n* {{App|Gist|Command-line interface for the [https://gist.github.com/ gist.github.com] pastebin service.|https://github.com/defunkt/gist|{{Pkg|gist}}}}\n* {{App|imgur|A CLI client which can upload image to [https://imgur.com imgur.com] image sharing service.|https://github.com/tremby/imgur.sh|{{AUR|imgur.sh}}}}\n* {{App|Ix|Client for the ix.io pastebin.|http://ix.io{{Dead link|2022|09|20|status=domain name not resolved}}|{{AUR|ix}}}}\n* {{App|Pastebinit|Really small Python script that acts as a Pastebin client. Servers: [http://pastie.org/ pastie.org], [https://paste.kde.org/ paste.kde.org], [https://paste.debian.net/ paste.debian.net], [https://paste.ubuntu.com/ paste.ubuntu.com] and others (for a full list see {{ic|pastebinit -l}}).|https://launchpad.net/pastebinit|{{Pkg|pastebinit}}}}\n* {{App|ruby-haste|Client for [https://hastebin.com/ hastebin.com].|https://github.com/seejohnrun/haste-client|{{AUR|ruby-haste}}}}\n* {{App|Uppity|The pastebin client with an attitude.|https://github.com/Kiwi/Uppity|{{AUR|uppity-git}}}}\n* {{App|Wgetpaste|Bash script that automates pasting to a number of pastebin services. Servers: [http://pastebin.ca/ pastebin.ca], [http://codepad.org/ codepad.org], [https://dpaste.com/ dpaste.com] and [https://pastebin.osuosl.org/ pastebin.osuosl.org].|http://wgetpaste.zlin.dk/|{{Pkg|wgetpaste}}}}\n\n=== Communication ===\n\n==== Email clients ====\n\nSee also [[Wikipedia:Comparison of email clients]]\n\n===== Console =====\n\n* {{App|[[aerc]]|Work in progress asynchronous email client.|https://sr.ht/~rjarry/aerc|{{Pkg|aerc}}}}\n* {{App|alot|An experimental terminal MUA based on [https://notmuchmail.org/ notmuch mail]. It is written in python using the [https://urwid.org/ urwid] toolkit.|https://github.com/pazz/alot|{{Pkg|alot}}}}\n* {{App|[[Alpine]]|Fast, easy-to-use and Apache-licensed email client based on [[Wikipedia:Pine (email client)|Pine]].|https://alpine.x10host.com/{{Dead link|2022|09|20|status=domain name not resolved}}|{{AUR|alpine-git}}}}\n* {{App|[[S-nail]]|a mail processing system with a command syntax reminiscent of ''ed'' with lines replaced by messages. Provides the functionality of [[Wikipedia:mailx|mailx]].|https://www.sdaoden.eu/code.html#s-mailx|{{Pkg|s-nail}}}}\n* {{App|mu/mu4e|Email indexer (mu) and client for emacs (mu4e). Xapian based for fast searches.|https://www.djcbsoftware.nl/code/mu/mu4e.html|{{AUR|mu}}}}\n* {{App|[[Mutt]]|Small but very powerful text-based mail client.|http://www.mutt.org/|{{Pkg|mutt}}}}\n* {{App|[[Mutt#NeoMutt|NeoMutt]]|Command line mail reader (or MUA). It is a fork of Mutt with added features.|https://neomutt.org/|{{Pkg|neomutt}}}}\n* {{App|[[nmh]]|A modular mail handling system.|https://www.nongnu.org/nmh/|{{AUR|nmh}}}}\n* {{App|[[notmuch]]|A fast mail indexer built on top of ''xapian''.|https://notmuchmail.org/|{{Pkg|notmuch}}}}\n* {{App|sendemail|A lightweight command line SMTP email client written in Perl.|http://caspian.dotconf.net/menu/Software/SendEmail/|{{AUR|sendemail}}}}\n* {{App|[[Sup]]|CLI mail client with very fast searching, tagging, threading and GMail like operation.|https://sup-heliotrope.github.io/|{{AUR|sup}}}}\n* {{App|swaks|Swiss Army Knife SMTP; Command line SMTP testing, including TLS and AUTH, can be used to send emails.|https://jetmore.org/john/code/swaks/|{{Pkg|swaks}}}}\n* {{App|Wanderlust|Email client and news reader for Emacs.|http://www.gohome.org/wl/|{{Pkg|wanderlust}}}}\n\n===== Graphical =====\n\n* {{App|Balsa|Simple and light email client for GNOME.|https://pawsa.fedorapeople.org/balsa/|{{Pkg|balsa}}}}\n* {{App|Betterbird|Fork of thunderbird.|https://www.betterbird.eu/|{{AUR|betterbird-bin}}}}\n* {{App|[[Wikipedia:Claws Mail|Claws Mail]]|Lightweight GTK-based email client and news reader.|https://www.claws-mail.org/|{{Pkg|claws-mail}}}}\n* {{App|ElectronMail|Unofficial desktop application for several end-to-end encrypted email providers (like ProtonMail, Tutanota). Based on the [https://electronjs.org/ Electron] platform.|https://github.com/vladimiry/ElectronMail|{{AUR|electronmail-bin}}}}\n* {{App|[[Evolution]]|Mature and feature-rich e-mail client that is part of the GNOME project. Part of {{Grp|gnome-extra}}.|https://wiki.gnome.org/Apps/Evolution|{{Pkg|evolution}}}}\n* {{App|Geary|Simple desktop mail client built in [[Wikipedia:Vala (programming language)|Vala]].|https://wiki.gnome.org/Apps/Geary|{{Pkg|geary}}}}\n* {{App|[[Wikipedia:Kmail|Kmail]]|Mature and feature-rich email client. Part of {{Grp|kde-pim}}.|https://kontact.kde.org/components/kmail/|{{Pkg|kmail}}}}\n* {{App|Kube|Modern communication and collaboration client built with QtQuick.|https://kube-project.com/|{{Pkg|kube}}}}\n* {{App|Mailspring|Fork of [[Wikipedia:Nylas Mail|Nylas Mail]] by one of the original authors. The paid \"Pro\" version requires a Mailspring ID and has extra features like snooze, send later. Based on the [https://electronjs.org/ Electron] platform.|https://getmailspring.com/|{{AUR|mailspring}}}}\n* {{App|openWMail|The missing desktop client for Gmail & Google Inbox. Based on the [https://electronjs.org/ Electron] platform.|https://openwmail.github.io/|{{AUR|openwmail}}}}\n* {{App|[[Wikipedia:SeaMonkey#Mail|SeaMonkey Mail & Newsgroups]]|Email client included in the SeaMonkey suite.|https://www.seamonkey-project.org/|{{Pkg|seamonkey}}}}\n* {{App|[[Wikipedia:Sylpheed|Sylpheed]]|Lightweight and user-friendly GTK email client.|https://sylpheed.sraoss.jp/en/|{{AUR|sylpheed}}}}\n* {{App|[[Thunderbird]]|Feature-rich email client from Mozilla written in GTK.|https://www.thunderbird.net/|{{Pkg|thunderbird}}}}\n* {{App|Trojit\u00e1|2=Qt IMAP email client. Only supports [https://bugs.kde.org/show_bug.cgi?id=321374 one IMAP account].|3=http://trojita.flaska.net/|4={{AUR|trojita}}}}\n* {{App|Tutanota|Email client for Tutanota mail service. Based on the [https://electronjs.org/ Electron] platform.|https://tutanota.com/|{{AUR|tutanota-desktop}}}}\n* {{App|Viagee|It allows desktop mail actions, such as 'Send File as Email' or web 'mailto' links, to be handled by the Gmail web client.|https://davesteele.github.io/viagee/|{{AUR|viagee}}}}\n\n===== Web-based =====\n\n* {{App|[[Nextcloud]] Mail|An email webapp for NextCloud.|https://github.com/nextcloud/mail|{{Pkg|nextcloud-app-mail}}}}\n* {{App|Roundcubemail|Browser-based multilingual IMAP client webapp with a native application-like user interface.|https://roundcube.net/|{{Pkg|roundcubemail}}}}\n* {{App|SquirrelMail|Webmail for Nuts!|https://squirrelmail.org/|{{AUR|squirrelmail}}}}\n\n==== Mail notifiers ====\n\n* {{App|Ayatana Webmail|Webmail notifications and actions for any desktop.|https://tari.in/www/software/ayatana-webmail/|{{AUR|ayatana-webmail}}}}\n* {{App|Bubblemail|New and Unread mail notification service for local mailboxes, pop, imap, and gnome online accounts. A fork of Mailnag.|http://bubblemail.free.fr/|{{AUR|bubblemail}}}}\n* {{App|CheckMails|System tray unread mail checker using IMAP protocol.|https://github.com/j4321/CheckMails|{{AUR|checkmails}}}}\n* {{App|Gnubiff|Mail notification program that checks for mail and displays headers when new mail has arrived.|http://gnubiff.sourceforge.net/|{{Pkg|gnubiff}}}}\n* {{App|Mailnag|Extensible mail notification daemon.|https://github.com/pulb/mailnag|{{Pkg|mailnag}}}}\n* {{App|QGmailNotifier|Portable Qt5 based GMail notifier.|https://github.com/eteran/qgmailnotifier|{{AUR|qgmailnotifier}}}}\n\n==== Mail servers ====\n\nSee [[Mail server]].\n\n* {{App|DavMail|POP/IMAP/SMTP/Caldav/Carddav/LDAP exchange gateway allowing users to use any mail/calendar client with an Exchange server.|https://davmail.sourceforge.net/|{{AUR|davmail}}}}\n* {{App|Modoboa|A modular mail hosting and management platform, written in Python.|https://modoboa.org/|{{AUR|modoboa}}}}\n\n==== Mail retrieval agents ====\n\nSee also [[Wikipedia:Mail retrieval agent]].\n\n* {{App|[[fdm]]|Program to fetch and deliver mail.|https://github.com/nicm/fdm|{{Pkg|fdm}}}}\n* {{App|[[Wikipedia:Fetchmail|Fetchmail]]|A remote-mail retrieval utility.|https://www.fetchmail.info/|{{Pkg|fetchmail}}}}\n* {{App|[[getmail]]|A POP3/IMAP4 mail retriever with reliable Maildir and command delivery.|http://pyropus.ca/software/getmail/{{Dead link|2022|09|20|status=too many redirects}}|{{AUR|getmail}}}}\n* {{App|hydroxide|A third-party, open-source ProtonMail CardDAV, IMAP and SMTP bridge|https://github.com/emersion/hydroxide|{{AUR|hydroxide}}}}\n* {{App|imapsync|IMAP synchronisation, sync, copy or migration tool|https://imapsync.lamiral.info/|{{Pkg|imapsync}}}}\n* {{App|[[isync]]|IMAP and MailDir mailbox synchronizer|http://isync.sourceforge.net/|{{Pkg|isync}}}}\n* {{App|mpop|A small, fast POP3 client suitable as a fetchmail replacement|https://marlam.de/mpop/|{{Pkg|mpop}}}}\n* {{app|vomit|Rust utility to sync between Maildir mailbox and IMAP mailbox|https://git.sr.ht/~bitfehler/vomit-sync/tree/master/item/cli/README.md|{{aur|vsync}} (sync-only part of {{aur|vomit}} mail tookit)}}\n* {{App|[[OfflineIMAP]]|Synchronizes emails between two repositories.|https://www.offlineimap.org/{{Dead link|2022|09|20|status=SSL error}}|{{Pkg|offlineimap}}}}\n\n==== Instant messaging clients ====\n\nSee also [[Wikipedia:Comparison of instant messaging clients]] and [[Wikipedia:Comparison of VoIP software]].\n\nThis section lists all client software with [[Wikipedia:Instant messaging|instant messaging]] support.\n\n===== Multi-protocol clients =====\n\n{{Note|All messengers that support several networks by means of direct connections to them belong to this section.}}\n\nThe number of networks supported by these clients is very large but they (like any multi-protocol clients) usually have very limited or no support for network-specific features.\n\n====== Console ======\n\n* {{App|BarnOwl|Ncurses-based chat client with support for the Zephyr, XMPP, IRC and Twitter protocols.|https://barnowl.mit.edu/|{{AUR|barnowl}}}}\n* {{App|[[Bitlbee|BitlBee]]|IRC gateway to popular chat networks (XMPP, ICQ and Twitter).|https://bitlbee.org/{{Dead link|2022|09|20|status=SSL error}}|{{AUR|bitlbee}}}}\n* {{App|EKG2|Ncurses based XMPP, Gadu-Gadu, ICQ and IRC client.|https://github.com/ekg2/ekg2|{{AUR|ekg2}}}}\n* {{App|Finch|Ncurses-based chat client that uses libpurple and supports all its protocols (Bonjour, Gadu-Gadu, Groupwise, ICQ, IRC, SIMPLE, XMPP, Zephyr).|https://developer.pidgin.im/wiki/Using%20Finch|{{Pkg|finch}}}}\n* {{App|[[WeeChat]]|Modular, lightweight ncurses-based IRC client. A variety of other protocols are supported through plugins.|https://weechat.org/|{{Pkg|weechat}}}}\n\n====== Graphical ======\n\n* {{App|[[Wikipedia:Jitsi|Jitsi]]|Audio/video VoIP phone and instant messenger written in Java that supports protocols such as SIP, XMPP, ICQ, IRC and many other useful features.|https://jitsi.org/|{{AUR|jitsi}}}}\n* {{App|[[Wikipedia:Kopete|Kopete]]|User-friendly IM supporting Bonjour, Gadu-Gadu, GroupWise, ICQ, XMPP.|https://apps.kde.org/kopete/|{{Pkg|kopete}}}}\n* {{App|[[KDE#KDE Telepathy|KDE Telepathy]]|KDE instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework. Meant as a replacement for Kopete.|https://userbase.kde.org/Telepathy|{{Pkg|telepathy-kde-meta}}}}\n* {{App|Lith|WeeChat Relay client, allowing to connect to a running WeeChat instance from anywhere.|https://lith.app/|{{AUR|lith-git}}}}\n* {{App|[[Pidgin]]|Multi-protocol instant messaging client with audio support that uses libpurple and supports all its protocols (Bonjour, Gadu-Gadu, Groupwise, ICQ, IRC, SIMPLE, XMPP, Zephyr).|https://pidgin.im/|{{Pkg|pidgin}}}}\n* {{App|qutIM|Simple and user-friendly IM supporting ICQ, XMPP, Mail.Ru, IRC and VKontakte messaging.|https://qutim.org/|{{AUR|qutim}}}}\n* {{App|[[Wikipedia:Smuxi|Smuxi]]|Cross-platform IRC client that also supports Twitter and XMPP. |https://smuxi.im/|{{AUR|smuxi}}}}\n* {{App|[[Thunderbird]]|Feature-rich email client supports instant messaging and chat using IRC and XMPP.|https://www.thunderbird.net/|{{Pkg|thunderbird}}}}\n* {{App|Volt|Proprietary native desktop client for Skype, Telegram, Slack, XMPP, Discord, IRC and more. |https://volt-app.com/|{{AUR|volt}}}}\n\n===== IRC clients =====\n\nSee also [[Wikipedia:Comparison of Internet Relay Chat clients]].\n\n====== Console ======\n\n* {{App|[[Wikipedia:BitchX|BitchX]]|Console-based IRC client developed from the popular [[Wikipedia:ircII|ircII]].|http://www.bitchx.org/|{{AUR|bitchx-git}}}}\n* {{App|ERC|Powerful, modular and extensible IRC client for [[Emacs]].|https://savannah.gnu.org/projects/erc/|included with {{Pkg|emacs}}}}\n* {{App|[[Wikipedia:Ii (IRC client)|ii]]|Featherweight IRC client, literally {{ic|tail -f}} the conversation and {{ic|echo}} back your replies to a file.|https://tools.suckless.org/ii/|{{AUR|ii}}}}\n* {{App|ircii|Oldest maintained IRC client which lays claim to being small and fast owing to its reduced feature set.|http://www.eterna.com.au/ircii/|{{AUR|ircii}}}}\n* {{App|[[Irssi]]|Highly-configurable ncurses-based IRC client.|https://irssi.org/|{{Pkg|irssi}}}}\n* {{App|pork|Programmable, ncurses-based IRC client that mostly looks and feels like ircII.|http://dev.ojnk.net/|{{Pkg|pork}}}}\n* {{App|ScrollZ|Advanced IRC client based on [[Wikipedia:ircII|ircII]].|https://www.scrollz.info/|{{AUR|scrollz}}}}\n* {{App|senpai|An IRC client that works best with bouncers (e.g. {{AUR|soju-git}}): no logs are kept, history is fetched from the server via [https://ircv3.net/specs/extensions/chathistory CHATHISTORY], networks are fetched from the server via [https://git.sr.ht/~emersion/soju/tree/master/item/doc/ext/bouncer-networks.md bouncer-networks].\n|https://sr.ht/~taiite/senpai/|{{AUR|senpai-irc-git}}}}\n* {{App|sic|Extremely simple IRC client, similar to [[Wikipedia:Ii (IRC client)|ii]].|https://tools.suckless.org/sic/|{{AUR|sic}}}}\n* {{App|tiny|an IRC client written in Rust with a clutter-free interface|https://github.com/osa1/tiny|{{AUR|tiny-irc-client-git}}}}\n\n====== Graphical ======\n\n* {{App|[[Wikipedia:ChatZilla|ChatZilla]]|Clean, easy to use and highly extensible Internet Relay Chat (IRC) client, built on the Mozilla platform using [[Wikipedia:XULRunner|XULRunner]]. Included in the [[Wikipedia:SeaMonkey|SeaMonkey]] suite.|http://chatzilla.hacksrus.com/|{{Pkg|seamonkey}}}}\n* {{App|[[HexChat]]|Fork of XChat for Linux and Windows.|https://hexchat.github.io/|{{Pkg|hexchat}}}}\n* {{App|[[Wikipedia:Konversation|Konversation]]|Qt-based IRC client for the KDE desktop.|https://konversation.kde.org/|{{Pkg|konversation}}}}\n* {{App|[[Wikipedia:KVIrc|KVIrc]]|Qt-based IRC client featuring extensive themes support.|http://kvirc.net/|{{Pkg|kvirc}}}}\n* {{App|Loqui|GTK IRC client.|https://loqui.sunnyone.org/|{{AUR|loqui}}}}\n* {{App|LostIRC|Simple GTK IRC client with tab-autocompletion, multiple server support, logging and others.|http://lostirc.sourceforge.net|{{AUR|lostirc}}}}\n* {{App|Polari|Simple IRC client by the GNOME project.|https://wiki.gnome.org/Apps/Polari|{{Pkg|polari}}}}\n* {{App|[[Quassel]]|Modern, cross-platform, distributed IRC client.|https://quassel-irc.org/|KDE: {{Pkg|quassel-monolithic}}, Qt: {{Pkg|quassel-monolithic-qt}}}}\n* {{App|Srain|Modern, beautiful IRC client written in GTK 3.|https://srain.silverrainz.me|{{AUR|srain}}}}\n\n===== XMPP clients =====\n\nSee also [[Wikipedia:XMPP]] and [[Wikipedia:Comparison of XMPP clients]].\n\n====== Console ======\n\n* {{App|Freetalk|Console-based XMPP client.|https://www.gnu.org/software/freetalk/|{{AUR|freetalk}}}}\n* {{App|jabber.el|Minimal XMPP client for [[Emacs]].|http://emacs-jabber.sourceforge.net/|{{AUR|emacs-jabber}}}}\n* {{App|[[Wikipedia:MCabber|MCabber]]|Small XMPP console client, includes features: SSL, PGP, MUC, OTR and UTF8.|https://mcabber.com/|{{Pkg|mcabber}}}}\n* {{App|Poezio|XMPP client with IRC feeling|https://poez.io/|{{AUR|poezio}}}}\n* {{App|Profanity|A console based XMPP client inspired by Irssi.|https://profanity-im.github.io/|{{Pkg|profanity}}}}\n\n====== Graphical ======\n\n* {{App|Converse.js|Web-based XMPP chat client written in JavaScript.|https://conversejs.org/|{{AUR|conversejs-git}}}}\n* {{App|Dino|A modern, easy to use XMPP client, with PGP and OMEMO support.|https://dino.im/|{{Pkg|dino}}}}\n* {{App|[[Gajim]]|XMPP client with audio support written in Python using GTK.|https://gajim.org/|{{Pkg|gajim}}}}\n* {{App|Kaidan|A simple, user-friendly Jabber/XMPP client providing a modern user interface using Kirigami and QtQuick.|https://www.kaidan.im/|{{AUR|kaidan}}}}\n* {{App|[[Wikipedia:Kadu (software)|Kadu]]|Qt-based XMPP and Gadu-Gadu client.|http://www.kadu.im/|{{AUR|kadu}}}}\n* {{App|Libervia (Salut \u00e0 Toi)|Web frontend for Salut \u00e0 Toi, multi-purpose XMPP client|https://salut-a-toi.org/|{{AUR|libervia-web-hg}}}}\n* {{App|Nextcloud JavaScript XMPP Client|Chat app for Nextcloud with XMPP, end-to-end encryption, video calls, file transfer & group chat.|https://github.com/nextcloud/jsxc.nextcloud|{{AUR|nextcloud-app-jsxc}}}}\n* {{App|[[Wikipedia:Psi (instant messaging client)|Psi]]|Qt-based XMPP client.|https://psi-im.org/|{{Pkg|psi}} or {{Pkg|psi-nowebengine}}}}\n* {{App|[[Wikipedia:Spark (XMPP client)|Spark]]|Cross-platform real-time XMPP collaboration client optimized for business and organizations.|https://www.igniterealtime.org/projects/spark/|{{AUR|spark}}}}\n* {{App|Swift|XMPP client written in C++ with Qt and Swiften.|https://swift.im/|{{AUR|swift-im}}}}\n* {{App|[[Wikipedia:Tkabber|Tkabber]]|Easy to hack feature-rich XMPP client by the author of the ejabberd XMPP server.|http://tkabber.jabber.ru/|{{AUR|tkabber}}}}\n* {{App|Vacuum IM|Full-featured crossplatform XMPP client.|https://github.com/Vacuum-IM/vacuum-im|{{AUR|vacuum-im}}}}\n\n===== SIP clients =====\n\nSee also [[Wikipedia:List of SIP software#Clients]].\n\n* {{App|[[Wikipedia:Blink (SIP client)|Blink]]|State of the art, easy to use SIP client.|https://icanblink.com/|{{AUR|blink}}}}\n* {{App|baresip|portable and modular SIP User-Agent with audio and video support|https://github.com/baresip/baresip|{{Pkg|baresip}}}}\n* {{App|Jami|SIP-compatible softphone and instant messenger for the decentralized Jami network. Formerly known as Ring and SFLphone.|https://jami.net/|{{Pkg|jami-qt}}}}\n* {{App|[[Wikipedia:Linphone|Linphone]]|VoIP phone application (SIP client) for communicating freely with people over the internet, with voice, video, and text instant messaging.|https://www.linphone.org/|{{AUR|linphone-desktop}}}}\n* {{App|[[Wikipedia:Twinkle (software)|Twinkle]]|Qt softphone for VoIP and IM communication using SIP.|http://twinkle.dolezel.info/|{{AUR|twinkle}}}}\n* {{App|Zoiper|Proprietary SIP and IAX2 VoIP softphone|https://zoiper.com|{{AUR|zoiper}}}}\n\n===== Matrix clients =====\n\nSee also [[Matrix]] and [https://matrix.org/clients/ Matrix Clients].\n\n* {{App|Element|Glossy Matrix client with an emphasis on performance and usability. Web application and desktop application based on the [https://electronjs.org/ Electron] platform.|https://element.io/|{{Pkg|element-web}}, {{Pkg|element-desktop}}}}\n* {{App|QuickMedia|A rofi inspired native client for web services. Supports Matrix and several other sites.|https://git.dec05eba.com/QuickMedia/about/|{{AUR|quickmedia-git}}}}\n* {{App|FluffyChat|Multi-platform Matrix client with a simple and clean UI written in Dart/Flutter.|https://fluffychat.im/|{{AUR|fluffychat}}}}\n* {{App|Fractal|Matrix client for GNOME written in Rust.|https://wiki.gnome.org/Apps/Fractal|{{Pkg|fractal}}}}\n* {{App|Gomuks|Terminal Matrix client written in Go using [https://github.com/tulir/mautrix-go mautrix] and [https://github.com/tulir/mauview mauview].|https://maunium.net/go/gomuks|{{AUR|gomuks}}}}\n* {{App|Mirage|A fancy, customizable, keyboard-operable Matrix chat client for encrypted and decentralized communication. Written in Qt/QML + Python with nio, currently in alpha.|https://github.com/mirukana/mirage|{{AUR|matrix-mirage}}}}\n* {{App|Neochat|KDE client for the Matrix protocol.|https://apps.kde.org/neochat/|{{Pkg|neochat}}}}\n* {{App|nheko|Desktop client for the Matrix protocol.|https://github.com/Nheko-Reborn/nheko|{{AUR|nheko}}}}\n* {{App|Quaternion|Qt5-based IM client for the Matrix protocol.|https://github.com/QMatrixClient/Quaternion|{{AUR|quaternion}}}}\n* {{App|SchildiChat|Matrix client based on Element with a more traditional instant messaging experience. Based on the [https://electronjs.org/ Electron] platform.|https://schildi.chat/|{{AUR|schildichat-desktop}}}}\n* {{App|Spectral|Qt5-based Glossy cross-platform client for Matrix.|https://gitlab.com/spectral-im/spectral|{{AUR|spectral-matrix}}}}\n* {{App|Syphon|Privacy-centric cross-platform Matrix client with E2EE support, currently in alpha.|https://github.com/syphon-org/syphon|{{AUR|syphon-bin}}}}\n\n===== Tox clients =====\n\nSee also [[Tox]] and [https://wiki.tox.chat/clients comparison clients]\n\n* {{App|qTox|Powerful Tox client written in C++/Qt that follows the Tox design guidelines.|https://qtox.github.io/|{{Pkg|qtox}}}}\n* {{App|ratox|FIFO based tox client.|https://git.z3bra.org/ratox/file/README.html|{{AUR|ratox-git}}}}\n* {{App|Toxic|ncurses-based Tox client|https://github.com/Jfreegman/toxic|{{Pkg|toxic}}}}\n* {{App|Toxygen|Tox client written in pure Python3.|https://github.com/toxygen-project/toxygen|{{AUR|toxygen-git}}}}\n* {{App|Venom|a modern Tox client for the GNU/Linux desktop|https://github.com/naxuroqa/Venom|{{AUR|venom}}}}\n* {{App|\u00b5Tox|Lightweight Tox client.|https://github.com/uTox/uTox|{{Pkg|utox}}}}\n\n===== LAN messengers =====\n\nSee also [[Avahi#Link-Local (Bonjour/Zeroconf) chat]] and [[Wikipedia:Comparison of LAN messengers]].\n\n* {{App|BeeBEEP|Secure LAN Messenger.|https://www.beebeep.net/|{{Pkg|beebeep}}}}\n* {{App|iptux|LAN communication software, compatible with IP Messenger.|https://github.com/iptux-src/iptux|{{Pkg|iptux}}}}\n* {{App|LAN Messenger|P2P chat application for intranet communication and does not require a server. A variety of handy features are supported including notifications, personal and group messaging with encryption, file transfer and message logging.|https://lanmessenger.github.io/|{{AUR|lmc}}}}\n\n===== P2P messaging clients =====\n\nSee also [[Ring]] and [[Tox]].\n\n* {{App|[[Bitmessage]]|Decentralized and trustless P2P communications protocol for sending encrypted messages to another person or to many subscribers.|https://bitmessage.org/|{{AUR|pybitmessage}}}}\n* {{App|[[Wikipedia:Briar (software)|Briar]]|Briar is a messaging application designed for activists, journalists, and anyone else who needs a safe, easy and robust way to communicate.|https://briarproject.org/|{{AUR|briar-desktop}}, {{AUR|briar-headless}}}}\n* {{App|Patchwork|Decentralized messaging and sharing application built on top of Secure Scuttlebutt (SSB). Based on the [https://electronjs.org/ Electron] platform.|https://github.com/ssbc/patchwork|{{AUR|ssb-patchwork}}}}\n* {{App|RetroShare|Serverless encrypted instant messenger with filesharing, chatgroups, mail.|https://retroshare.cc/|{{AUR|retroshare}}}}\n* {{App|[[Wikipedia:Ricochet (software)|Ricochet]]|Anonymous peer-to-peer instant messaging system built on [[Tor]] hidden services.|https://ricochet.im/{{Dead link|2022|09|20|status=SSL error}}|{{AUR|ricochet}}}}\n\n===== Other IM clients =====\n\n* {{App|BlueJeans|Proprietary desktop application for BlueJeans video calls. Based on the [https://electronjs.org/ Electron] platform.|https://www.bluejeans.com/|{{AUR|bluejeans}}}}\n* {{App|Caprine|Unofficial Facebook Messenger app. Based on the [https://electronjs.org/ Electron] platform.|https://github.com/sindresorhus/caprine|{{Pkg|caprine}}}}\n* {{App|Chatterino|Chat client for Twitch chat.|https://chatterino.com/|{{AUR|chatterino2-git}}}}\n* {{App|Delta Chat|A privacy oriented chat application built on e-mail. Based on the [https://electronjs.org/ Electron] platform.|https://delta.chat/|{{AUR|deltachat-desktop-git}}}}\n* {{App|[[Discord]]|Proprietary all-in-one voice and text chat application for gamers that\u2019s free and works on both your desktop and phone. Based on the [https://electronjs.org/ Electron] platform.|https://discordapp.com/|{{Pkg|discord}}}}\n* {{App|[[Wikipedia:Gitter|Gitter]]|Communication product for communities and teams on GitLab and GitHub.|https://gitter.im/|{{AUR|gitter-bin}}}}\n* {{App|Hangups|Third-party instant messaging client for Google Hangouts with console interface.|https://github.com/tdryer/hangups|{{AUR|hangups}}}}\n* {{App|[[ICQ]]|Official ICQ client for Linux.|https://icq.com/linux/|{{AUR|icq-bin}}}}\n* {{App|IRCCloud|Desktop client for a modern, always-connected IRC client service. Based on the [https://electronjs.org/ Electron] platform.|https://www.irccloud.com/|{{AUR|irccloud}}}}\n* {{App|[[Wikipedia:Jitsi|Jitsi]] Meet|Desktop application for Jitsi Meet. Based on the [https://electronjs.org/ Electron] platform.|https://github.com/jitsi/jitsi-meet-electron|{{AUR|jitsi-meet-desktop}}}}\n* {{App|Kotatogram Desktop|Experimental fork of Telegram Desktop.|https://kotatogram.github.io/|{{AUR|kotatogram-desktop}}}}\n* {{App|Matterhorn|Console client for the Mattermost chat system.|https://github.com/matterhorn-chat/matterhorn|{{AUR|matterhorn}}}}\n* {{App|[[Mattermost]] Desktop|Desktop application for Mattermost. Based on the [https://electronjs.org/ Electron] platform.|https://github.com/mattermost/desktop|{{Pkg|mattermost-desktop}}}}\n* {{App|[[Wikipedia:Microsoft Teams|Microsoft Teams]]|Official proprietary client for Microsoft Teams. Based on the [https://electronjs.org/ Electron] platform.|https://teams.microsoft.com/downloads|{{AUR|teams}}}}\n* {{App|[[Mumble]]|Voice chat application similar to TeamSpeak.|https://www.mumble.info/|{{Pkg|mumble}}}}\n* {{App|[[QQ]]|Proprietary instant messaging software developed by Tencent (imitating ICQ).|https://im.qq.com/|{{AUR|linuxqq}}}}\n* {{App|Rocket.Chat Desktop|Desktop application for Rocket.Chat. Based on the [https://electronjs.org/ Electron] platform.|https://github.com/RocketChat/Rocket.Chat.Electron|{{AUR|rocketchat-desktop}}}}\n* {{App|Session Desktop|Onion routing based messenger. Based on the [https://electronjs.org/ Electron] platform.|https://getsession.org/|{{AUR|session-desktop}}}}\n* {{App|[[Wikipedia:Signal (software)|Signal]] Desktop|Desktop application for Signal private messenger. Based on the [https://electronjs.org/ Electron] platform.|https://github.com/signalapp/Signal-Desktop|{{Pkg|signal-desktop}}}}\n* {{App|[[Wikipedia:Skype|Skype]]|Popular but proprietary application for voice and video communication. Based on the [https://electronjs.org/ Electron] platform.|https://www.skype.com/|{{AUR|skypeforlinux-stable-bin}}}}\n* {{App|[[Wikipedia:Slack (software)|Slack]]|Proprietary Slack client for desktop. Based on the [https://electronjs.org/ Electron] platform.|https://slack.com/downloads/linux|{{AUR|slack-desktop}}}}\n* {{App|teams-for-linux|Unofficial Microsoft Teams for Linux client. Based on the [https://electronjs.org/ Electron] platform.|https://github.com/IsmaelMartinez/teams-for-linux|{{AUR|teams-for-linux}}}}\n* {{App|[[TeamSpeak]]|Proprietary VoIP application with gamers as its target audience.|https://www.teamspeak.com/|{{Pkg|teamspeak3}}}}\n* {{App|[[TeamTalk]]|Proprietary VoIP application with video chat, file and desktop sharing.  Desktop sharing does not appear to be working in Linux though.  AUR package is server only, but client is built in the make process.|https://bearware.dk|{{AUR|teamtalk}}}}\n* {{App|[[Telegram]] Desktop|Official Telegram desktop client.|https://desktop.telegram.org/|{{Pkg|telegram-desktop}}}}\n* {{App|Telegrand|GTK4 telegram client for GNOME.|https://github.com/melix99/telegrand|{{AUR|telegrand-git}}}}\n* {{App|ThreemaQT|Unofficial Threema Web desktop client.|https://gitlab.com/bit3/threemaqt|{{AUR|threemaqt}}}}\n* {{App|[[Wikipedia:Viber|Viber]]|Proprietary cross-platform IM and VoIP software.|https://www.viber.com/products/linux/|{{AUR|viber}}}}\n* {{App|[[Wikipedia:Wire (software)|Wire]]|Modern, private messenger. Based on the [https://electronjs.org/ Electron] platform.|https://wire.com/|{{Pkg|wire-desktop}}}}\n* {{App|YakYak|Unofficial desktop client for Google Hangouts. Based on the [https://electronjs.org/ Electron] platform.|https://github.com/yakyak/yakyak|{{AUR|yakyak-git}}}}\n* {{App|[[Zoom Meetings|Zoom]]|Proprietary video conferencing, online meetings and group messaging application.|https://zoom.us/|{{AUR|zoom}}}}\n* {{App|[[Wikipedia:Zulip|Zulip]]|Desktop client for Zulip group chat. Based on the [https://electronjs.org/ Electron] platform.|https://zulipchat.com/apps/linux|{{AUR|zulip-desktop}}}}\n\n==== Instant messaging servers ====\n\nSee also [[Wikipedia:Comparison of instant messaging protocols]].\n\n===== IRC servers =====\n\n* {{App|[[InspIRCd]]|A stable, modern and lightweight IRC daemon.|https://www.inspircd.org/|{{AUR|inspircd}}}}\n* {{App|IRCD-Hybrid|A lightweight, high-performance internet relay chat daemon.|https://www.ircd-hybrid.org/|{{AUR|ircd-hybrid}}}}\n* {{App|miniircd|A small and configuration free IRC server, suitable for private use.|https://github.com/jrosdahl/miniircd|{{AUR|miniircd-git}}}}\n* {{App|ngIRCd|A free, portable and lightweight Internet Relay Chat server for small or private networks.|https://ngircd.barton.de/|{{Pkg|ngircd}}}}\n* {{App|Ergo|A modern and simple to set up IRC server written in Go. Combines the features of an IRCd, a services framework, and a bouncer.|https://ergo.chat/|{{AUR|ergochat}}}}\n* {{App|[[UnrealIRCd]]|Open Source IRC Server.|https://www.unrealircd.org/|{{Pkg|unrealircd}}}}\n\n===== XMPP servers =====\n\nSee also [[Wikipedia:Comparison of XMPP server software]].\n\n* {{App|[[Prosody]]|An XMPP server written in the [https://www.lua.org/ Lua] programming language. Prosody is designed to be lightweight and highly extensible. It is licensed under a permissive [https://prosody.im/source/mit MIT license].|https://prosody.im/|{{Pkg|prosody}}}}\n* {{App|Ejabberd|Robust, scalable and extensible XMPP Server written in Erlang|https://www.ejabberd.im/|{{Pkg|ejabberd}}}}\n* {{App|[[Jabberd2]]|An XMPP server written in the C language and licensed under the GNU General Public License. It was inspired by jabberd14.|https://jabberd2.org/|{{AUR|jabberd2}}}}\n* {{App|[[Openfire]]|An XMPP IM multiplatform server written in Java|https://www.igniterealtime.org/projects/openfire/|{{Pkg|openfire}}}}\n\n===== SIP servers =====\n\nSee also [[Wikipedia:List of SIP software#Servers]].\n\n* {{App|[[Asterisk]]|A complete PBX solution.|https://www.asterisk.org/|{{AUR|asterisk}}}}\n* {{App|Kamailio|Rock solid SIP server.|https://www.kamailio.org/|{{AUR|kamailio}}}}\n* {{App|openSIPS|SIP proxy/server for voice, video, IM, presence and any other SIP extensions.|https://opensips.org/|{{Pkg|opensips}}}}\n* {{App|Repro|An open-source, free SIP server.|https://www.resiprocate.org/About_Repro|{{AUR|repro}}}}\n* {{App|[[Wikipedia:Yate (telephony engine)|Yate]]|Advanced, mature, flexible telephony server that is used for VoIP and fixed networks, and for traditional mobile operators and MVNOs.|http://yate.ro/|{{Pkg|yate}}}}\n\n===== Other IM servers =====\n\n* {{App|[[Mattermost]]|Open source private cloud server, Slack-alternative.|https://github.com/mattermost/mattermost-server|{{Pkg|mattermost}}}}\n* {{App|[[Murmur]]|The voice chat application server for Mumble.|https://www.mumble.info/|{{Pkg|murmur}}}}\n* {{App|Nextcloud Talk|Video- and audio-conferencing app for Nextcloud.|https://github.com/nextcloud/spreed|{{Pkg|nextcloud-app-spreed}}}}\n* {{App|Rocket.Chat|Web chat server, developed in JavaScript, using the Meteor fullstack framework.|https://github.com/RocketChat/Rocket.Chat|{{AUR|rocketchat-server}}}}\n* {{App|Spreed WebRTC|WebRTC audio/video call and conferencing server.|https://github.com/strukturag/spreed-webrtc|{{AUR|spreed-webrtc-server}}}}\n* {{App|[[Matrix|Synapse]]|Reference homeserver for the Matrix protocol.|https://github.com/matrix-org/synapse|{{Pkg|matrix-synapse}}}}\n* {{App|[[TeamSpeak]] Server|Proprietary VoIP conference server.|https://teamspeak.com/|{{Pkg|teamspeak3-server}}}}\n* {{App|uMurmur|Minimalistic Mumble server.|https://umurmur.net/|{{Pkg|umurmur}}}}\n\n==== Collaborative software ====\n\nSee also [[Wikipedia:Collaborative software]].\n\n* {{App|[[Wikipedia:Citadel/UX|Citadel/UX]]|Includes an email & mailing list server, instant messaging, address books, calendar/scheduling, bulletin boards, and wiki and blog engines.|https://www.citadel.org/|{{AUR|webcit}}}}\n* {{App|[[SOGo]]|Groupware server built around OpenGroupware.org (OGo) and the SOPE application server.|https://sogo.nu/|{{AUR|sogo}}}}\n\n==== Link shortening servers ====\n\n* {{App|microbin|A tiny, self-contained, configurable paste bin and URL shortener written in Rust.|https://github.com/szabodanika/microbin|{{AUR|microbin}}}}\n* {{App|pb|A lightweight pastebin and url shortener built using flask.|https://github.com/ptpb/pb|{{AUR|pb}}}}\n* {{App|shlink|Self-proclaimed definitive self-hosted URL shortener.|https://shlink.io/|{{AUR|shlink}}}}\n* {{App|YOURLS|A self-hosted link shortening service written in PHP.|https://yourls.org/|{{AUR|yourls}}}}\n\n=== News, RSS, and blogs ===\n\n==== News aggregators ====\n\n[[Wikipedia:RSS|RSS]]/[[Wikipedia:Atom (standard)|Atom]] aggregators. Some [[#Email clients|email clients]] are also able to act as news aggregator: [[Wikipedia:Claws Mail|Claws Mail]] RSSyl plugin, [[Evolution]], [[Wikipedia:SeaMonkey#Mail|SeaMonkey Mail & Newsgroups]], [[Thunderbird]].\n\nSee also [[Wikipedia:Comparison of feed aggregators]].\n\n===== Console =====\n\n* {{App|[[Wikipedia:Canto (news aggregator)|Canto]]|Ncurses RSS aggregator.|https://github.com/themoken/canto-curses|{{Pkg|canto-curses}}}}\n* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|https://www.gnus.org/|{{Pkg|emacs}}}}\n* {{app|feed2imap-go|[https://github.com/feed2imap/feed2imap feed2imap] reimplemented in Go that aggregating RSS/Atom/jsonfeed into folders of your IMAP mailbox.|https://github.com/Necoro/feed2imap-go|{{aur|feed2imap-go}}}}\n* {{App|[[Newsboat]]|Ncurses RSS aggregator with layout and keybinding similar to the [[Mutt]] email client.|https://newsboat.org/|{{Pkg|newsboat}}}}\n* {{App|Rawdog|\"RSS Aggregator Without Delusions Of Grandeur\" that parses RSS/CDF/Atom feeds into a static HTML page of articles in chronological order.|https://offog.org/code/rawdog/|{{AUR|rawdog}}}}\n* {{app|rss2email|Aggregating your RSS/Atom feed into your IMAP/Maildir mailbox as a cronjob.|https://github.com/rss2email/rss2email|{{pkg|rss2email}}}}\n* {{App|sfeed|Crontab oriented shell-scriptable feed aggregator setup with a RSS/Atom parser utility plus a simple ncurses reader.|https://codemadness.org/sfeed-simple-feed-parser.html|{{AUR|sfeed}}}}\n* {{App|Snownews|Text mode RSS news reader.|https://github.com/kouya/snownews|{{AUR|snownews}}}}\n\n===== Graphical =====\n\n* {{App|[[Wikipedia:Kontact#News feed aggregator|Akregator]]|News aggregator for KDE, part of {{Grp|kde-pim}}.|https://apps.kde.org/akregator/|{{Pkg|akregator}}}}\n* {{App|Alligator|Kirigami-based RSS/Atom feed reader for mobile devices.|https://apps.kde.org/alligator/|{{AUR|alligator}}}}\n* {{App|FeedReader|Modern desktop application designed to complement existing web-based RSS accounts. Discontinued.|https://jangernert.github.io/FeedReader/|{{AUR|feedreader}}}}\n* {{App|Feeds|An RSS/Atom feed reader for GNOME.|https://gabmus.gitlab.io/gnome-feeds/|{{Pkg|gfeeds}}}}\n* {{App|Fluent Reader|Modern desktop RSS reader built with React and Fluent UI. Based on the [https://electronjs.org/ Electron] platform.|https://hyliu.me/fluent-reader/|{{AUR|fluent-reader}}}}\n* {{App|HackUp|Read Hacker News from the desktop.|https://github.com/mdh34/hackup|{{AUR|hackup-git}}}}\n* {{App|[[Wikipedia:Liferea|Liferea]]|GTK news aggregator for online news feeds and weblogs.|https://lzone.de/liferea/|{{Pkg|liferea}}}}\n* {{App|NewsFlash|Modern feed reader designed for the GNOME desktop. The spiritual successor to FeedReader.|https://gitlab.com/news-flash/news_flash_gtk|{{Pkg|newsflash}}}}\n* {{App|[[Nextcloud]] News|RSS/Atom feed reader for Nextcloud.|https://github.com/nextcloud/news|{{Pkg|nextcloud-app-news}}}}\n* {{App|QuiteRSS|RSS/Atom feed reader written on Qt/\u0421++.|https://quiterss.org/|{{AUR|quiterss}}}}\n* {{App|Raven|Simple desktop RSS reader made using VueJS. Based on the [https://electronjs.org/ Electron] platform.|https://ravenreader.app/|{{AUR|raven-reader}}}}\n* {{App|RSS Guard|Very tiny RSS and ATOM news reader developed using Qt framework.|https://github.com/martinrotter/rssguard|{{Pkg|rssguard}} or {{Pkg|rssguard-nowebengine}}}}\n* {{App|selfoss|The new multipurpose RSS reader, live stream, mashup, aggregation web application.|https://selfoss.aditu.de/|{{AUR|selfoss}}}}\n* {{App|Tickr|GTK-based RSS Reader that displays feeds as a smooth scrolling line on your desktop, as known from TV stations.|https://www.open-tickr.net/|{{AUR|tickr}}}}\n* {{App|[[Tiny Tiny RSS]]|Web-based news feed (RSS/Atom) aggregator.|https://tt-rss.org/|{{Pkg|tt-rss}}}}\n\n==== Podcast clients ====\n\nSome media players are also able to act as podcast client: [[Amarok]], Cantata, [[Wikipedia:Clementine_(software)|Clementine]], Goggles Music Manager, [[Wikipedia:Rhythmbox|Rhythmbox]], [[VLC media player]]. [[Wikipedia:git-annex|git-annex]] can also [https://git-annex.branchable.com/tips/downloading_podcasts/ function as podcatcher].\n\nSee also [[Wikipedia:List of podcatchers]].\n\n===== Console =====\n\n* {{App|castero|A TUI podcast client for the terminal.|https://github.com/xgi/castero|{{AUR|castero-git}}}}\n* {{App|castget|Simple, command-line RSS enclosure downloader, primarily intended for automatic, unattended downloading of podcasts.|https://castget.johndal.com/|{{Pkg|castget}}}}\n* {{App|gpo|Text mode interface of gPodder.|https://gpodder.github.io/|{{Pkg|gpodder}}}}\n* {{App|Greg|A command-line podcast aggregator.|https://github.com/manolomartinez/greg|{{AUR|greg-git}}}}\n* {{App|Marrie|A simple podcast client that runs on the Command Line Interface.|https://github.com/rafaelmartins/marrie/|{{AUR|marrie-git}}}}\n* {{App|pcd|A minimal podcast client written in go|https://github.com/kvannotten/pcd|{{AUR|pcd}}}}\n\n===== Graphical =====\n\n* {{App|CPod|Simple, beautiful podcast app. Based on the [https://electronjs.org/ Electron] platform.|https://github.com/z-------------/CPod|{{AUR|cpod}}}}\n* {{App|GNOME Podcasts|Podcast client for the GNOME Desktop written in Rust.|https://gitlab.gnome.org/World/podcasts|{{Pkg|gnome-podcasts}}}}\n* {{App|gPodder|Podcast client and media aggregator (GTK interface).|https://gpodder.github.io/|{{Pkg|gpodder}}}}\n* {{App|Vocal|Simple podcast client for the Modern Desktop (GTK).|https://vocalproject.net/|{{Pkg|vocal}}}}\n\n==== Usenet newsreaders ====\n\nSome [[#Email clients|email clients]] are also able to act as Usenet newsreader: [[Wikipedia:Claws Mail|Claws Mail]], [[Evolution]], [[Mutt#NeoMutt|NeoMutt]], [[Wikipedia:SeaMonkey#Mail|SeaMonkey Mail & Newsgroups]], [[Wikipedia:Sylpheed|Sylpheed]], [[Thunderbird]].\n\nSee also: [[Wikipedia:List of Usenet newsreaders]], [[Wikipedia:Comparison of Usenet newsreaders]].\n\n===== Console =====\n\n* {{app|nn|Alternative more user-friendly (curses-based) Usenet newsreader for UNIX.|http://www.nndev.org/|{{AUR|nn}}}}\n* {{app|[[Wikipedia:slrn|slrn]]|Text-based news client.|https://www.slrn.org/|{{AUR|slrn}}}}\n* {{app|[[Wikipedia:Tin_(newsreader)|tin]]|A cross-platform threaded NNTP and spool based UseNet newsreader.|http://tin.org/|{{AUR|tin}}}}\n* {{app|trn|A text-based Threaded Usenet newsreader.|http://trn.sourceforge.net/|{{AUR|trn}}}}\n\n===== Graphical =====\n\n* {{app|[[NZBGet]]|Usenet binary downloader for .nzb files with web and CLI interface.|https://nzbget.net/|{{Pkg|nzbget}}}}\n* {{app|[[Wikipedia:Pan (newsreader)|Pan]]|GTK Usenet newsreader that's good at both text and binaries.|http://pan.rebelbase.com/|{{Pkg|pan}}}}\n* {{app|[[SABnzbd]]|An open-source binary newsreader webapp written in Python.|https://sabnzbd.org/|{{AUR|sabnzbd}}}}\n* {{app|XRN|Usenet newsreader for X Window System.|http://www.mit.edu/people/jik/software/xrn.html|{{AUR|xrn}}}}\n\n==== Microblogging clients ====\n\nSee also [[Wikipedia:List of Twitter services and applications]].\n\n===== Console =====\n\n* {{App|bti|Simple command line client for twitter/identi.ca|https://gregkh.github.io/bti/|{{pkg|bti}}}}\n* {{App|oysttyer|(official fork of ttytter) An interactive console text-based command-line Twitter client written in Perl.|https://github.com/oysttyer/oysttyer|{{AUR|oysttyer-git}}}}\n* {{App|toot|CLI and TUI tool for interacting with Mastodon instances|https://github.com/ihabunek/toot|{{AUR|toot}}}}\n* {{App|turses|Twitter client for the console based off ''tyrs'' with major improvements.|https://github.com/louipc/turses|{{AUR|turses-git}}}}\n\n===== Graphical =====\n\n* {{App|Cawbird|Native GTK Twitter client for the Linux desktop.|https://ibboard.co.uk/cawbird/|{{Pkg|cawbird}}}}\n* {{App|Choqok|Microblogging client for KDE that supports Twitter.com, Pump.io, GNU social and opendesktop.org services.|https://choqok.kde.org/|{{Pkg|choqok}}}}\n* {{App|Giara|Reddit app, built with Python, GTK and Handy.|https://gitlab.gnome.org/World/giara|{{AUR|giara}}}}\n* {{App|Mikutter|Simple, powerful Twitter client using [[GTK]] and Ruby.|https://mikutter.hachune.net/|{{AUR|mikutter}}}}\n* {{App|Pumpa|Pump.io client written in C++ and Qt.|https://pumpa.branchable.com/|{{AUR|pumpa-git}}}}\n* {{App|Tootle|GTK3 client for Mastodon.|https://github.com/bleakgrey/tootle|{{AUR|tootle}}}}\n* {{App|Whalebird|Mastodon client application. Based on the [https://electronjs.org/ Electron] platform.|https://whalebird.social/|{{AUR|whalebird}}}}\n\n==== Blog engines ====\n\nSee also [[Wikipedia:Blog software]] and [[Wikipedia:List of content management systems]].\n{{note|Content managers, social networks, and blog publishers overlap in many functions.}}\n* {{App|[[Diaspora]]|A distributed privacy aware social network.|https://diasporafoundation.org|{{AUR|diaspora-mysql}} or {{AUR|diaspora-postgresql}}}}\n* {{App|[[Drupal]]|A PHP-based content management platform.|https://www.drupal.org/|{{Pkg|drupal}}}}\n* {{App|[[Joomla]]|A php Content Management System (CMS) which enables you to build websites and powerful online applications.|https://www.joomla.org/|{{AUR|joomla}}}}\n* {{App|[[Wordpress]]|Blog tool and publishing platform.|https://wordpress.org/|{{Pkg|wordpress}}}}\n\n==== Static site generators ====\n\n* {{App|Hexo|Fast, simple and powerful blog framework.|https://hexo.io/|{{AUR|hexo-cli}}}}\n* {{App|Hugo|Hugo is a static HTML and CSS website generator written in Go. It is optimized for speed, ease of use, and configurability.|https://gohugo.io/|{{Pkg|hugo}}}}\n* {{App|[[Jekyll]]|Static blog engine, written in Ruby, which supports Markdown, textile and other formats.|https://jekyllrb.com/|{{AUR|jekyll}}}}\n* {{App|Nanoblogger|A small weblog engine written in Bash for the command line. It uses common UNIX tools such as cat, grep, and sed to create static HTML content. It is not maintained anymore.|http://nanoblogger.sourceforge.net/|{{AUR|nanoblogger}}}}\n* {{App|Nikola|Static site generator written in Python, with incremental rebuilds and multiple markup formats.|https://getnikola.com/|{{Pkg|nikola}}}}\n* {{app|Pelican|Static site generator, powered by Python.|https://docs.getpelican.com/|{{Pkg|pelican}}}}\n\n=== Remote desktop ===\n\nSee also [[Wikipedia:Remote desktop software]] and [[Wikipedia:Comparison of remote desktop software]].\n\nSee also [https://remotedesktop.google.com Chrome Remote Desktop] for a web browser based solution.\n\n==== Remote desktop clients ====\n\n* {{App|[[Wikipedia:AnyDesk|AnyDesk]]|Proprietary remote desktop software.|https://anydesk.com/|{{AUR|anydesk-bin}}}}\n* {{App|GNOME Connections|Remote desktop client for GNOME. Supports RDP and VNC.|https://gitlab.gnome.org/GNOME/connections|{{Pkg|gnome-connections}}}}\n* {{App|GVncViewer|Simple VNC Client on Gtk-VNC. Run with {{ic|gvncviewer}}.|https://wiki.gnome.org/Projects/gtk-vnc|{{Pkg|gtk-vnc}}}}\n* {{App|[[Wikipedia:KRDC|KRDC]]|Remote Desktop Client for KDE. Supports RDP and VNC. Part of {{Grp|kde-network}}.|https://apps.kde.org/krdc/|{{Pkg|krdc}}}}\n* {{App|[[Remmina]]|Remote desktop client written in GTK. Supports RDP, VNC, NX, XDMCP and SSH.|https://remmina.org/|{{Pkg|remmina}}}}\n* {{App|Remote Viewer|Simple remote display client. Supports SPICE and VNC.|https://virt-manager.org/|{{Pkg|virt-viewer}}}}\n* {{App|Remotely|Simple VNC viewer for GNOME. Discontinued.|https://gitlab.gnome.org/World/Remotely|{{AUR|remotely}}}}\n* {{App|RustDesk|A remote desktop software, open source, written in Rust.|https://rustdesk.com|{{AUR|rustdesk}}}}\n* {{App|Sunlogin Remote Control|Proprietary software that supports remote control of mobile devices, Windows, Mac, Linux and other systems. It uses its own proprietary protocol.|https://sunlogin.oray.com/en/about/about|{{AUR|sunloginclient}}}}\n* {{App|ToDesk|Proprietary remote desktop client that suits for remote teamwork. It uses its own proprietary protocol.|https://www.todesk.com/|{{AUR|todesk-bin}}}}\n* {{App|[[Wikipedia:TeamViewer|TeamViewer]]|Proprietary remote desktop client. It uses its own proprietary protocol.|https://www.teamviewer.com/|{{AUR|teamviewer}}}}\n* {{App|[[TigerVNC|vncviewer (TigerVNC)]]|VNC viewer for X.|https://tigervnc.org/|{{Pkg|tigervnc}}}}\n* {{App|[[Wikipedia:Vinagre|Vinagre]]|Remote desktop viewer for GNOME. Supports RDP, VNC, SPICE and SSH. Part of {{Grp|gnome-extra}}.|https://wiki.gnome.org/Apps/Vinagre|{{Pkg|vinagre}}}}\n* {{App|xfreerdp|FreeRDP X11 client. Run with {{ic|xfreerdp}}.|https://www.freerdp.com/|{{Pkg|freerdp}}}}\n* {{App|[[X2Go]] Client|A graphical client (Qt5) for the X2Go system that uses the [[w:NX technology|NX technology]] protocol.|https://wiki.x2go.org/doku.php|{{AUR|x2goclient}}}}\n\n==== Remote desktop servers ====\n\n* {{App|Krfb|VNC server for KDE. Part of {{Grp|kde-network}}.|https://apps.kde.org/krfb/|{{Pkg|krfb}}}}\n* {{App|[[NoMachine]]|Proprietary remote desktop server and client based on [[w:NX technology|NX technology]].|https://nomachine.com/|{{AUR|nomachine}}}}\n* {{App|wayvnc|VNC server for wlroots based wayland compositors (such as {{Pkg|sway}}).|https://github.com/any1/wayvnc|{{Pkg|wayvnc}}}}\n* {{App|[[TigerVNC|x0vncserver (TigerVNC)]]|VNC Server for X displays.|https://tigervnc.org/|{{Pkg|tigervnc}}}}\n* {{App|[[x11vnc]]|VNC server for real X displays.|http://www.karlrunge.com/x11vnc/|{{Pkg|x11vnc}}}}\n* {{App|[[X2Go]] Server|An open source remote desktop software that uses the [[w:NX technology|NX technology]] protocol.|https://wiki.x2go.org/doku.php|{{AUR|x2goserver}}}}\n* {{App|[[Xpra]]|A multi-platform screen and application forwarding system.|https://xpra.org/|{{Pkg|xpra}}}}\n* {{App|[[Xrdp]]|A daemon that supports RDP. It uses Xvnc, X11rdp or xorgxrdp as a backend.|http://xrdp.org/|{{AUR|xrdp}}}}"
                    }
                ]
            },
            "13512": {
                "pageid": 13512,
                "ns": 0,
                "title": "Firefox (\u0420\u0443\u0441\u0441\u043a\u0438\u0439)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Web browser (\u0420\u0443\u0441\u0441\u043a\u0438\u0439)]]\n[[Category:Mozilla (\u0420\u0443\u0441\u0441\u043a\u0438\u0439)]]\n[[de:Firefox]]\n[[en:Firefox]]\n[[es:Firefox]]\n[[ja:Firefox]]\n[[zh-hans:Firefox]]\n[[zh-hant:Firefox]]\n{{TranslationStatus (\u0420\u0443\u0441\u0441\u043a\u0438\u0439)|Firefox|29 \u043d\u043e\u044f\u0431\u0440\u044f 2022|758068}}\n{{Related articles start (\u0420\u0443\u0441\u0441\u043a\u0438\u0439)}}\n{{Related|\u041f\u043b\u0430\u0433\u0438\u043d\u044b \u0434\u043b\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432}}\n{{Related|Firefox/Tweaks}}\n{{Related2|Firefox (\u0420\u0443\u0441\u0441\u043a\u0438\u0439)/Profile on RAM (\u0420\u0443\u0441\u0441\u043a\u0438\u0439)|\u041f\u0440\u043e\u0444\u0438\u043b\u044c Firefox \u0432 \u041e\u0417\u0423}}\n{{Related|Firefox/Privacy}}\n{{Related|Chromium (\u0420\u0443\u0441\u0441\u043a\u0438\u0439)}}\n{{Related|Opera}}\n{{Related articles end}}\n\n[https://www.mozilla.org/ru/firefox/ Firefox] \u2014 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u0435\u0431-\u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u044b\u0439 [https://www.mozilla.org/ru/ Mozilla].\n\n== \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 ==\n\n[[\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435]] \u043f\u0430\u043a\u0435\u0442 {{Pkg|firefox}}.\n\n\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b:\n\n* {{App|Firefox Developer Edition|\u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432|https://www.mozilla.org/ru/firefox/developer/|{{Pkg|firefox-developer-edition}}}}\n* {{App|Firefox Extended Support Release|\u0432\u0435\u0440\u0441\u0438\u044f \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438|https://www.mozilla.org/ru/firefox/enterprise/|{{AUR|firefox-esr}} \u0438\u043b\u0438 {{AUR|firefox-esr-bin}}}}\n* {{App|Firefox Beta|\u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044f|https://www.mozilla.org/ru/firefox/channel/desktop/#beta|{{AUR|firefox-beta-bin}}}}\n* {{App|Firefox Nightly|\u043d\u043e\u0447\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f [https://developer.mozilla.org/Firefox/Experimental_features \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439]|https://www.mozilla.org/ru/firefox/channel/desktop/#nightly|{{AUR|firefox-nightly}}}}\n* {{App|Firefox KDE|\u0432\u0435\u0440\u0441\u0438\u044f \u0441 \u043f\u0430\u0442\u0447\u0435\u043c \u043e\u0442 OpenSUSE \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0439 [[#\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 KDE|\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 KDE]], \u0447\u0435\u043c \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439 \u0434\u043b\u044f Firefox.|https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox|{{AUR|firefox-kde-opensuse}}, {{AUR|firefox-kde}} \u0438\u043b\u0438 {{AUR|firefox-developer-edition-kde}}}}\n* \u041a\u0440\u043e\u043c\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f Mozilla, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0430\u043a\u0436\u0435 \u0444\u043e\u0440\u043a\u0438 \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438. \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 [[List of applications#Gecko-based]].\n\n\u041a\u0440\u043e\u043c\u0435 \u044f\u0437\u044b\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0433\u043e, \u0434\u043b\u044f Firefox \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0440\u044f\u0434 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f {{ic|firefox-i18n-''languagecode''}} (\u0433\u0434\u0435 {{ic|''languagecode''}} \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u044f\u0437\u044b\u043a\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, '''ru''', '''de''', '''ja''', '''fr''' \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435). \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 [https://archlinux.org/packages/extra/any/firefox-i18n/ firefox-i18n] \u0434\u043b\u044f {{Pkg|firefox}}, [https://archlinux.org/packages/community/any/firefox-developer-edition-i18n/ firefox-developer-edition-i18n] \u0434\u043b\u044f {{Pkg|firefox-developer-edition}} \u0438 [https://aur.archlinux.org/packages/?K=firefox-nightly- firefox-nightly-] \u0434\u043b\u044f {{AUR|firefox-nightly}}.\n\n{{Note (\u0420\u0443\u0441\u0441\u043a\u0438\u0439)|1=\u042f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043d\u0430 ''-nightly'' \u0438 ''-developer-edition'' \u0438\u0437-\u0437\u0430 \u0447\u0430\u0441\u0442\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0441\u0442\u0440\u043e\u043a, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0441\u0431\u043e\u044f\u043c. \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044f\u0437\u044b\u043a \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c {{ic|intl.locale.requested}} \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 {{ic|about:config}} [https://www.reddit.com/r/firefox/comments/lx3dp9/how_to_change_interface_language/gpovlsp/?context=8&depth=9].}}\n\n== \u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f ==\n\nFirefox \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445. \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435, \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \"\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\" \u0432 Firefox.\n\n\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439 \u0435\u0441\u0442\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 [[\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432]].\n\n=== \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432 ===\n\n\u041f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0434\u0432\u0438\u0436\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438:\n\n* \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u0437\u043d\u0430\u0447\u043e\u043a \u0437\u0432\u0451\u0437\u0434\u043e\u0447\u043a\u0438 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438\u043b\u0438 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448 {{ic|Ctrl+d}}, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0443.\n* \u041d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0432\u0430\u043c\u0438 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0435 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0443\u044e \u043a\u043d\u043e\u043f\u043a\u0443 \u043c\u044b\u0448\u0438 \u0438 \u0432 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 ''\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0443...''\n* \u0412 \u043f\u043e\u043b\u0435 ''\u0410\u0434\u0440\u0435\u0441'' \u0432\u043f\u0438\u0448\u0438\u0442\u0435 {{ic|%s}} \u0432 \u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u043a\u0443\u0434\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441. \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 ''\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e'', \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435 \u043f\u0440\u044f\u043c\u043e \u0438\u0437 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\n\n \u0410\u0434\u0440\u0435\u0441:\n https://duckduckgo.com/html/?q=%s\n \u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e:\n d\n\n\u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 \u0430\u0434\u0440\u0435\u0441\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043d\u0435\u0451 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0438 \u0437\u0430\u0442\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441.\n\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 {{ic|d archwiki}} \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043f\u043e\u0438\u0441\u043a\u0443 \u0441\u043b\u043e\u0432\u0430 {{ic|archwiki}} \u0432 DuckDuckGo.\n\n\u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0434\u0432\u0438\u0436\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439. \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 [https://addons.mozilla.org/firefox/search-tools/ \u044d\u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443] \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0438 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432.\n\n\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 [https://mycroftproject.com/ Mycroft Project] (\u0430\u043d\u0433\u043b.).\n\n==== firefox-extension-arch-search ====\n\n[[\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435]] \u043f\u0430\u043a\u0435\u0442 {{AUR|firefox-extension-arch-search}}, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f Arch \u0434\u0432\u0438\u0436\u043a\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 (AUR, wiki, \u0444\u043e\u0440\u0443\u043c \u0438 \u0442.\u0434.).\n\n== \u041f\u043b\u0430\u0433\u0438\u043d\u044b ==\n\n\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u0441\u0435\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 Flash Player, \u0431\u044b\u043b\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0430 \u0432 Firefox 85.[https://support.mozilla.org/kb/npapi-plugins][https://support.mozilla.org/kb/end-support-adobe-flash]\n\n== \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 ==\n\n\u0412 Firefox \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430. \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0445, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443:\n\n about:config\n\n\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0432 \u0441\u0438\u043b\u0443 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e [https://www.mozilla.org/ru/firefox/sync/ Firefox S