https://wiki.archlinux.org/api.php?action=feedcontributions&user=Blackout&feedformat=atomArchWiki - User contributions [en]2024-03-28T11:05:44ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=PostgreSQL&diff=727127PostgreSQL2022-04-21T08:22:04Z<p>Blackout: /* Installation */ mentioning to set a password for the postgres user</p>
<hr />
<div>[[Category:Relational DBMSs]]<br />
[[it:PostgreSQL]]<br />
[[ja:PostgreSQL]]<br />
[[ru:PostgreSQL]]<br />
[[tr:PostgreSQL]]<br />
[[zh-hans:PostgreSQL]]<br />
{{Related articles start}}<br />
{{Related|PhpPgAdmin}}<br />
{{Related articles end}}<br />
[https://www.postgresql.org/ PostgreSQL] is an open source, community driven, standard compliant object-relational database system.<br />
<br />
== Installation ==<br />
<br />
{{Warning|See [[#Upgrading PostgreSQL]] for necessary steps before installing new versions of the PostgreSQL packages.}}<br />
<br />
[[Install]] the {{Pkg|postgresql}} package. It will also create a system user called ''postgres''.<br />
<br />
Keep in mind to set a password for the ''postgres'' user<br />
{{ic|# passwd postgres}}.<br />
<br />
You can now switch to the ''postgres'' user using a [[List of applications/Security#Privilege_elevation|privilege elevation program]]. <br />
<br />
{{Note|Commands that should be run as the ''postgres'' user are prefixed by {{ic|[postgres]$}} in this article.}}<br />
<br />
== Initial configuration ==<br />
<br />
Before PostgreSQL can function correctly, the database cluster must be initialized:<br />
<br />
[postgres]$ initdb -D /var/lib/postgres/data<br />
<br />
Where {{ic|-D}} is the default location where the database cluster must be stored (see [[#Change default data directory]] if you want to use a different one).<br />
<br />
Note that by default, the locale and the encoding for the database cluster are derived from your current environment (using [[Locale#LANG: default locale|$LANG]] value). [https://www.postgresql.org/docs/current/static/locale.html]<br />
However, depending on your settings and use cases this might not be what you want, and you can override the defaults using:<br />
<br />
* {{ic|1=--locale=''locale''}}, where ''locale'' is to be chosen amongst the system's [[Locale#Generating locales|available locales]];<br />
* {{ic|-E ''encoding''}} for the encoding (which must match the chosen locale);<br />
<br />
Example:<br />
<br />
[postgres]$ initdb --locale=en_US.UTF-8 -E UTF8 -D /var/lib/postgres/data<br />
<br />
Many lines should now appear on the screen with several ending by {{ic|... ok}}:<br />
<br />
{{bc|<br />
The files belonging to this database system will be owned by user "postgres".<br />
This user must also own the server process.<br />
<br />
The database cluster will be initialized with locale "en_US.UTF-8".<br />
The default database encoding has accordingly been set to "UTF8".<br />
The default text search configuration will be set to "english".<br />
<br />
Data page checksums are disabled.<br />
<br />
fixing permissions on existing directory /var/lib/postgres/data ... ok<br />
creating subdirectories ... ok<br />
selecting default max_connections ... 100<br />
selecting default shared_buffers ... 128MB<br />
selecting dynamic shared memory implementation ... posix<br />
creating configuration files ... ok<br />
running bootstrap script ... ok<br />
performing post-bootstrap initialization ... ok<br />
syncing data to disk ... ok<br />
<br />
WARNING: enabling "trust" authentication for local connections<br />
You can change this by editing pg_hba.conf or using the option -A, or<br />
--auth-local and --auth-host, the next time you run initdb.<br />
<br />
Success. You can now start the database server using:<br />
<br />
pg_ctl -D /var/lib/postgres/data -l logfile start<br />
}}<br />
<br />
If these are the kind of lines you see, then the process succeeded. Return to the regular user using {{ic|exit}}.<br />
<br />
{{Note|To read more about this {{ic|WARNING}}, see [[#Restricts access rights to the database superuser by default]].}}<br />
<br />
{{Tip|If you change the root to something other than {{ic|/var/lib/postgres}}, you will have to [[edit]] the service file. If the root is under {{ic|home}}, make sure to set {{ic|ProtectHome}} to false.}}<br />
<br />
{{Warning|<br />
* If the database resides on a [[Btrfs]] file system, you should consider disabling [[Btrfs#Copy-on-Write (CoW)|Copy-on-Write]] for the directory before creating any database.<br />
* If the database resides on a [[ZFS]] file system, you should consult [[ZFS#Databases]] before creating any database.<br />
}}<br />
<br />
Finally, [[start]] and [[enable]] the {{ic|postgresql.service}}.<br />
<br />
== Create your first database/user ==<br />
<br />
{{Tip|If you create a PostgreSQL role/user with the same name as your Linux username, it allows you to access the PostgreSQL database shell without having to specify a user to login (which makes it quite convenient).}}<br />
<br />
Become the postgres user. Add a new database role/user using the [https://www.postgresql.org/docs/current/static/app-createuser.html createuser] command:<br />
<br />
[postgres]$ createuser --interactive<br />
<br />
Create a new database over which the above user has read/write privileges using the [https://www.postgresql.org/docs/current/static/app-createdb.html createdb] command (execute this command from your login shell if the database user has the same name as your Linux user, otherwise add {{ic|-O ''database-username''}} to the following command):<br />
<br />
$ createdb myDatabaseName<br />
<br />
{{Tip|If you did not grant your new user database creation privileges, add {{ic|-U postgres}} to the previous command.}}<br />
<br />
== Familiarize with PostgreSQL ==<br />
<br />
=== Access the database shell ===<br />
<br />
Become the postgres user. Start the primary database shell, [https://www.postgresql.org/docs/current/static/app-psql.html psql], where you can do all your creation of databases/tables, deletion, set permissions, and run raw SQL commands. Use the {{ic|-d}} option to connect to the database you created (without specifying a database, {{ic|psql}} will try to access a database that matches your username).<br />
<br />
[postgres]$ psql -d myDatabaseName<br />
<br />
Some helpful commands:<br />
<br />
Get help:<br />
<br />
=> \help<br />
<br />
Connect to a particular database:<br />
<br />
=> \c <database><br />
<br />
List all users and their permission levels:<br />
<br />
=> \du<br />
<br />
Show summary information about all tables in the current database:<br />
<br />
=> \dt<br />
<br />
Exit/quit the {{ic|psql}} shell:<br />
<br />
=> \q or CTRL+d<br />
<br />
There are of course many more meta-commands, but these should help you get started. To see all meta-commands run: <br />
<br />
=> \?<br />
<br />
== Optional configuration ==<br />
<br />
The PostgreSQL database server configuration file is {{ic|postgresql.conf}}. This file is located in the data directory of the server, typically {{ic|/var/lib/postgres/data}}. This folder also houses the other main configuration files, including the {{ic|pg_hba.conf}} which defines authentication settings, for both [[#Restricts access rights to the database superuser by default|local users]] and [[#Configure PostgreSQL to be accessible from remote hosts|other hosts ones]].<br />
<br />
{{Note|By default, this folder will not be browsable or searchable by a regular user. This is why {{ic|find}} and {{ic|locate}} are not finding the configuration files.}}<br />
<br />
=== Restricts access rights to the database superuser by default ===<br />
<br />
The defaults {{ic|pg_hba.conf}} '''allow any local user to connect as any database user''', including the database superuser.<br />
This is likely not what you want, so in order to restrict global access to the ''postgres'' user, change the following line:<br />
<br />
{{hc|/var/lib/postgres/data/pg_hba.conf|2=<br />
# TYPE DATABASE USER ADDRESS METHOD<br />
<br />
# "local" is for Unix domain socket connections only<br />
local all all trust<br />
}}<br />
<br />
To:<br />
<br />
{{hc|/var/lib/postgres/data/pg_hba.conf|2=<br />
# TYPE DATABASE USER ADDRESS METHOD<br />
<br />
# "local" is for Unix domain socket connections only<br />
local all postgres peer<br />
}}<br />
<br />
You might later add additional lines depending on your needs or software ones.<br />
<br />
=== Require password for login ===<br />
<br />
Edit {{ic|/var/lib/postgres/data/pg_hba.conf}} and set the authentication method for each user (or "all" to affect all users) to {{ic|scram-sha-256}} (preferred), or {{ic|md5}} (less secure; should be avoided if possible):<br />
{{hc|/var/lib/postgres/data/pg_hba.conf|2=<br />
# TYPE DATABASE USER ADDRESS METHOD <br />
<br />
# "local" is for Unix domain socket connections only <br />
local all ''user'' scram-sha-256 <br />
}}<br />
<br />
If you choose {{ic|scram-sha-256}}, you must also edit {{ic|/var/lib/postgres/data/postgresql.conf}} and set:<br />
{{hc|/var/lib/postgres/data/postgresql.conf|2=<br />
password_encryption = scram-sha-256<br />
}}<br />
<br />
[[Restart]] {{ic|postgresql.service}}, and then re-add each user's password using {{ic|ALTER USER ''user'' WITH ENCRYPTED PASSWORD <nowiki>'</nowiki>''password''<nowiki>'</nowiki>;}}.<br />
<br />
=== Configure PostgreSQL to be accessible exclusively through UNIX Sockets ===<br />
<br />
In the connections and authentications section of your configuration, set:<br />
<br />
{{hc|/var/lib/postgres/data/postgresql.conf|2=<br />
listen_addresses = <nowiki>''</nowiki><br />
}}<br />
<br />
This will disable network listening completely.<br />
After this you should [[restart]] {{ic|postgresql.service}} for the changes to take effect.<br />
<br />
=== Configure PostgreSQL to be accessible from remote hosts ===<br />
<br />
In the connections and authentications section, set the {{ic|listen_addresses}} line to your needs:<br />
<br />
{{hc|/var/lib/postgres/data/postgresql.conf|2=<br />
listen_addresses = 'localhost,''my_local_ip_address'''<br />
}}<br />
<br />
You can use {{ic|'*'}} to listen on all available addresses.<br />
<br />
{{Note|PostgreSQL uses TCP port {{ic|5432}} by default for remote connections. Make sure this port is open in your [[firewall]] and able to receive incoming connections. You can also change it in the configuration file, right below {{ic|listen_addresses}}}}<br />
<br />
Then add a line like the following to the authentication config:<br />
<br />
{{hc|/var/lib/postgres/data/pg_hba.conf|2=<br />
# TYPE DATABASE USER ADDRESS METHOD<br />
# IPv4 local connections:<br />
host all all ''ip_address''/32 md5<br />
}}<br />
<br />
where {{ic|''ip_address''}} is the IP address of the remote client.<br />
<br />
See the documentation for [https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html pg_hba.conf].<br />
<br />
{{Note|Neither sending your plain password nor the md5 hash (used in the example above) over the Internet is secure if it is not done over an SSL-secured connection. See [https://www.postgresql.org/docs/current/static/ssl-tcp.html Secure TCP/IP Connections with SSL] for how to configure PostgreSQL with SSL.}}<br />
<br />
After this you should [[restart]] {{ic|postgresql.service}} for the changes to take effect.<br />
<br />
For troubleshooting take a look in the server log file:<br />
<br />
# journalctl -u postgresql.service<br />
<br />
=== Configure PostgreSQL authenticate against PAM ===<br />
<br />
PostgreSQL offers a number of authentication methods. If you would like to allow users to authenticate with their system password, additional steps are necessary. First you need to enable [[PAM]] for the connection.<br />
<br />
For example, the same configuration as above, but with PAM enabled:<br />
<br />
{{hc|/var/lib/postgres/data/pg_hba.conf|2=<br />
# IPv4 local connections:<br />
host all all ''my_remote_client_ip_address''/32 pam<br />
}}<br />
<br />
The PostgreSQL server is however running without root privileges and will not be able to access {{ic|/etc/shadow}}. We can work around that by allowing the postgres group to access this file:<br />
<br />
# setfacl -m g:postgres:r /etc/shadow<br />
<br />
=== Change default data directory ===<br />
<br />
The default directory where all your newly created databases will be stored is {{ic|/var/lib/postgres/data}}. To change this, follow these steps:<br />
<br />
Create the new directory and make the postgres user its owner:<br />
<br />
# mkdir -p /pathto/pgroot/data<br />
# chown -R postgres:postgres /pathto/pgroot<br />
<br />
Become the postgres user, and initialize the new cluster:<br />
<br />
[postgres]$ initdb -D /pathto/pgroot/data<br />
<br />
[[Edit]] {{ic|postgresql.service}} to create a [[drop-in file]] and override the {{ic|Environment}} and {{ic|PIDFile}} settings. For example:<br />
<br />
{{hc|/etc/systemd/system/postgresql.service.d/PGROOT.conf|2=<br />
[Service]<br />
Environment=PGROOT=''/pathto/pgroot''<br />
PIDFile=''/pathto/pgroot/''data/postmaster.pid<br />
}}<br />
<br />
If you want to use {{ic|/home}} directory for default directory or for tablespaces, add one more line in this file:<br />
<br />
ProtectHome=false<br />
<br />
=== Change default encoding of new databases to UTF-8 ===<br />
<br />
{{Note|If you ran {{ic|initdb}} with {{ic|-E UTF8}} or while using an UTF-8 locale, these steps are not required.}}<br />
<br />
When creating a new database (e.g. with {{ic|createdb blog}}) PostgreSQL actually copies a template database. There are two predefined templates: {{ic|template0}} is vanilla, while {{ic|template1}} is meant as an on-site template changeable by the administrator and is used by default. In order to change the encoding of a new database, one of the options is to change on-site {{ic|template1}}. To do this, log into PostgreSQL shell ({{ic|psql}}) and execute the following:<br />
<br />
First, we need to drop {{ic|template1}}. Templates cannot be dropped, so we first modify it so it is an ordinary database:<br />
<br />
UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';<br />
<br />
Now we can drop it:<br />
<br />
DROP DATABASE template1;<br />
<br />
The next step is to create a new database from {{ic|template0}}, with a new default encoding:<br />
<br />
CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE';<br />
<br />
Now modify {{ic|template1}} so it is actually a template:<br />
<br />
UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';<br />
<br />
Optionally, if you do not want anyone connecting to this template, set {{ic|datallowconn}} to {{ic|FALSE}}:<br />
<br />
UPDATE pg_database SET datallowconn = FALSE WHERE datname = 'template1';<br />
<br />
{{Note|This last step can create problems when upgrading via {{ic|pg_upgrade}}.}}<br />
<br />
Now you can create a new database:<br />
<br />
[postgres]$ createdb blog<br />
<br />
If you log back in to {{ic|psql}} and check the databases, you should see the proper encoding of your new database:<br />
<br />
{{hc|\l|<nowiki><br />
List of databases<br />
Name | Owner | Encoding | Collation | Ctype | Access privileges<br />
-----------+----------+-----------+-----------+-------+----------------------<br />
blog | postgres | UTF8 | C | C |<br />
postgres | postgres | SQL_ASCII | C | C |<br />
template0 | postgres | SQL_ASCII | C | C | =c/postgres<br />
: postgres=CTc/postgres<br />
template1 | postgres | UTF8 | C | C |<br />
</nowiki>}}<br />
<br />
== Graphical tools ==<br />
<br />
* {{App|[[phpPgAdmin]]|Web-based administration tool for PostgreSQL.|https://github.com/phppgadmin/phppgadmin|{{Pkg|phppgadmin}}}}<br />
* {{App|pgAdmin|Comprehensive design and management GUI for PostgreSQL.|https://www.pgadmin.org/|{{AUR|pgadmin3}} or {{Pkg|pgadmin4}}}}<br />
* {{App|pgModeler|Graphical schema designer for PostgreSQL.|https://pgmodeler.io/|{{AUR|pgmodeler}}}}<br />
<br />
For tools supporting multiple DBMSs, see [[List of applications/Documents#Database tools]].<br />
<br />
== Upgrading PostgreSQL ==<br />
<br />
{{Expansion|How to upgrade when using third party extensions?|section=pg_upgrade problem if extensions (like postgis) are used}}<br />
<br />
Upgrading major PostgreSQL versions requires some extra maintenance.<br />
<br />
{{Note|<br />
* Official PostgreSQL [https://www.postgresql.org/docs/current/static/upgrading.html upgrade documentation] should be followed.<br />
* From version {{ic|10.0}} onwards PostgreSQL [https://www.postgresql.org/about/news/1786/ changed its versioning scheme]. Earlier upgrade from version {{ic|9.''x''}} to {{ic|9.''y''}} was considered as major upgrade. Now upgrade from version {{ic|10.''x''}} to {{ic|10.''y''}} is considered as minor upgrade and upgrade from version {{ic|10.''x''}} to {{ic|11.''y''}} is considered as major upgrade.<br />
}}<br />
<br />
{{Warning|The following instructions could cause data loss. Do not run the commands below blindly, without understanding what they do. [https://www.postgresql.org/docs/current/static/backup.html Backup database] first.}}<br />
<br />
Get the currently used database version via<br />
<br />
# cat /var/lib/postgres/data/PG_VERSION<br />
<br />
To ensure you do not accidentally upgrade the database to an incompatible version, it is recommended to [[pacman#Skip package from being upgraded|skip updates]] to the PostgreSQL packages.<br />
<br />
Minor version upgrades are safe to perform. However, if you do an accidental upgrade to a different major version, you might not be able to access any of your data. Always check the [https://www.postgresql.org/ PostgreSQL home page] to be sure of what steps are required for each upgrade. For a bit about why this is the case, see the [https://www.postgresql.org/support/versioning versioning policy].<br />
<br />
There are two main ways to upgrade your PostgreSQL database. Read the official documentation for details.<br />
<br />
=== pg_upgrade ===<br />
<br />
For those wishing to use {{ic|pg_upgrade}}, a {{Pkg|postgresql-old-upgrade}} package is available that will always run one major version behind the real PostgreSQL package. This can be installed side-by-side with the new version of PostgreSQL. To upgrade from older versions of PostgreSQL there are AUR packages available: {{AUR|postgresql-96-upgrade}}, {{AUR|postgresql-95-upgrade}}, {{AUR|postgresql-94-upgrade}}, {{AUR|postgresql-93-upgrade}}, {{AUR|postgresql-92-upgrade}}. Read the {{man|1|pg_upgrade}} man page to understand what actions it performs.<br />
<br />
Note that the databases cluster directory does not change from version to version, so before running {{ic|pg_upgrade}}, it is necessary to rename your existing data directory and migrate into a new directory. The new databases cluster must be initialized, as described in the [[#Installation]] section.<br />
<br />
{{Style|The description of the ''initdb'' command is getting way too long and starts duplicating [[#Initial configuration]]. Why not just say that the same options which were used for the initial creation should be used here?}}<br />
<br />
While the database is still accessible, one may take the opportunity to check the locale and encoding used, and whether data checksums are used:<br />
<br />
{{hc|[postgres]$ psql -l|<nowiki><br />
List of databases<br />
Name | Owner | Encoding | Collate | Ctype | Access privileges <br />
-----------+----------+----------+-------------+-------------+-----------------------<br />
postgres | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | <br />
template0 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres +<br />
| | | | | postgres=CTc/postgres<br />
template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres +<br />
| | | | | postgres=CTc/postgres<br />
(3 rows)<br />
</nowiki>}}<br />
<br />
{{hc|[postgres]$ psql -c "SHOW data_checksums"|<nowiki><br />
data_checksums <br />
----------------<br />
off<br />
(1 row)<br />
</nowiki>}}<br />
<br />
When you are ready : <br />
<br />
# [[Stop]] {{ic|postgresql.service}}: <br />
## Check the [[unit status]] to be sure that PostgresSQL was stopped correctly. If it failed, {{ic|pg_upgrade}} will fail too.<br />
# [[Upgrade]] {{Pkg|postgresql}}, {{Pkg|postgresql-libs}}, and {{Pkg|postgresql-old-upgrade}}.<br />
# Finally upgrade the databases cluster: <br />
##Rename the databases cluster directory, and create an empty one: {{bc|<nowiki># mv /var/lib/postgres/data /var/lib/postgres/olddata<br />
# mkdir /var/lib/postgres/data /var/lib/postgres/tmp<br />
# chown postgres:postgres /var/lib/postgres/data /var/lib/postgres/tmp<br />
[postgres]$ cd /var/lib/postgres/tmp<br />
[postgres]$ initdb -D /var/lib/postgres/data</nowiki>}}<br />
##Should you have a conflicting system locale and encoding, add {{ic|1=--locale=''xy_XY.UTF-8''}} {{ic|1=--encoding=UTF8}} options (where ''xx_YY'' matches your need).<br />
##Should you have data-checksums enabled, add {{ic|--data-checksums}} option.<br />
##Upgrade the cluster, replacing {{ic|''PG_VERSION''}} below, with the old PostgreSQL version number (e.g. {{ic|12}}): {{bc|[postgres]$ pg_upgrade -b /opt/pgsql-''PG_VERSION''/bin -B /usr/bin -d /var/lib/postgres/olddata -D /var/lib/postgres/data}} {{Note|If necessary, adjust the configuration files of new cluster (e.g. {{ic|pg_hba.conf}} and {{ic|postgresql.conf}}) to match the old cluster.}}<br />
## [[Start]] {{ic|postgresql.service}} again. <br />
<br />
{{ic|pg_upgrade}} will have created the scripts {{ic|analyze_new_cluster.sh}} and {{ic|delete_old_cluster.sh}} in {{ic|/var/lib/postgres/tmp/}} and will have output some instructions about running these. <br />
<br />
* {{ic|analyze_new_cluster.sh}} generates optimizer statistics for the new cluster and should be run as user {{ic|postgres}}. It requires the {{ic|postgresql}} service to have been started. <br />
* {{ic|delete_old_cluster.sh}} simply deletes the directory {{ic|/var/lib/postgres/olddata}} and should be run as a user with write privileges for {{ic|/var/lib/postgres}} (e.g. as {{ic|root}}). <br />
<br />
You may delete the {{ic|/var/lib/postgres/tmp}} directory once the upgrade is completely over.<br />
<br />
=== Manual dump and reload ===<br />
<br />
You could also do something like this (after the upgrade and install of {{Pkg|postgresql-old-upgrade}}).<br />
<br />
{{Note|<br />
* Below are the commands for upgrading from PostgreSQL 12. You can find similar commands in {{ic|/opt/}} for your version of PostgreSQL cluster, provided you have matching version of {{Pkg|postgresql-old-upgrade}} package installed.<br />
* If you had customized your {{ic|pg_hba.conf}} file, you may have to temporarily modify it to allow full access to old database cluster from local system. After upgrade is complete set your customization to new database cluster as well and [[restart]] {{ic|postgresql.service}}.<br />
}}<br />
<br />
[[Stop]] {{ic|postgresql.service}}<br />
# mv /var/lib/postgres/data /var/lib/postgres/olddata<br />
# mkdir /var/lib/postgres/data<br />
# chown postgres:postgres /var/lib/postgres/data<br />
[postgres]$ initdb -D /var/lib/postgres/data<br />
[postgres]$ /opt/pgsql-12/bin/pg_ctl -D /var/lib/postgres/olddata/ start<br />
# cp /usr/lib/postgresql/postgis-3.so /opt/pgsql-12/lib/ # Only if postgis installed<br />
[postgres]$ pg_dumpall -h /tmp -f /tmp/old_backup.sql<br />
[postgres]$ /opt/pgsql-12/bin/pg_ctl -D /var/lib/postgres/olddata/ stop<br />
[[Start]] {{ic|postgresql.service}}<br />
[postgres]$ psql -f /tmp/old_backup.sql postgres<br />
<br />
== Troubleshooting ==<br />
<br />
=== Improve performance of small transactions ===<br />
<br />
If you are using PostgresSQL on a local machine for development and it seems slow, you could try turning [https://www.postgresql.org/docs/current/static/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT synchronous_commit off] in the configuration. Beware of the [https://www.postgresql.org/docs/current/static/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT caveats], however.<br />
<br />
{{hc|/var/lib/postgres/data/postgresql.conf|2=<br />
synchronous_commit = off<br />
}}<br />
<br />
=== Prevent disk writes when idle ===<br />
<br />
PostgreSQL periodically updates its internal "statistics" file. By default, this file is stored on disk, which prevents disks from spinning down on laptops and causes hard drive seek noise. It is simple and safe to relocate this file to a memory-only file system with the following configuration option:<br />
<br />
{{hc|/var/lib/postgres/data/postgresql.conf|2=<br />
stats_temp_directory = '/run/postgresql'<br />
}}<br />
<br />
=== pgAdmin 4 issues after upgrade to PostgreSQL 12 ===<br />
<br />
If you see errors about {{ic|string indices must be integers}} when navigating the tree on the left, or about {{ic|column rel.relhasoids does not exist}} when viewing the data, remove the server from the connection list in pgAdmin and add a fresh server instance. pgAdmin will otherwise continue to treat the server as a PostgreSQL 11 server resulting in these issues.</div>Blackouthttps://wiki.archlinux.org/index.php?title=Open_Broadcaster_Software&diff=708889Open Broadcaster Software2022-01-07T12:04:44Z<p>Blackout: added troubleshooting missing wayland plugin</p>
<hr />
<div>[[Category:Multimedia]]<br />
[[Category:Streaming]]<br />
[[Category:Video]]<br />
{{Related articles start}}<br />
{{Related|Streaming to twitch.tv}}<br />
{{Related articles end}}<br />
<br />
[https://obsproject.com/ Open Broadcaster Software] (OBS) is an open source cross-platform video recording and live-streaming application. It provides an easy to pick up and extensible workflow with customizable scenes, volume mixers, transitions, filters and more.<br />
<br />
== Installation ==<br />
<br />
OBS can be [[install]]ed with the {{Pkg|obs-studio}} package, or {{AUR|obs-studio-git}} for the development version.<br />
<br />
Other clients that provide other functionality are available:<br />
<br />
* {{AUR|obs-studio-tytan652}}<br />
* {{AUR|obs-studio-browser}}<br />
* {{AUR|obs-studio-minimal}}<br />
* {{AUR|obs-hevc-vaapi-git}}<br />
<br />
== Configuration ==<br />
<br />
For easy configuration, ''Tools > Auto-Configuration Wizard'' can quickly set up base settings for both recording and live-streaming. The wizard auto-selects bitrate, resolution and encoder based on your hardware (and network connection if streaming was set up).<br />
<br />
=== Hardware acceleration ===<br />
<br />
Hardware-accelerated encoding and decoding is best for performance, CPU/GPU usage and quality. The encoder can be changed in ''Settings > Output > Streaming > Encoder''. See [[Hardware video acceleration]] if a hardware encoder is not detected.<br />
<br />
=== Recording output ===<br />
<br />
By default, OBS will output recordings in the user's home path with spaces in the video filename and the same encoder selected for streaming. The output path, filesize, file format, filename style and more can be changed in ''Settings > Output > Streaming > Encoder''.<br />
<br />
=== Hotkeys ===<br />
<br />
By default, OBS assigns no hotkeys. All hotkey pairs highlighted in red upon selection can use the same keybind for toggling the pair's function.<br />
<br />
=== Virtual camera output ===<br />
<br />
Starting from version 26.1, OBS supports virtual camera output on Linux. To use it, [[install]] the {{Pkg|v4l2loopback-dkms}} package and add your user to the {{ic|video}} group, then the ''Start Virtual Camera'' button will appear in OBS. If the {{ic|v4l2loopback}} [[kernel module]] is not loaded yet, OBS will automatically try to load it and ask for administrative privileges to do so (using {{man|1|pkexec}}).<br />
<br />
== Tips and tricks ==<br />
<br />
=== Browser source ===<br />
<br />
The [https://github.com/obsproject/obs-browser obs-browser] plugin gives the ability to use a webpage within the canvas, typically for web-based overlays. The webpage can be interacted with and works like any other source type.<br />
<br />
The default {{Pkg|obs-studio}} package [https://bugs.archlinux.org/task/66008 does not provide this plugin]. It can be added via other clients or plugin packages:<br />
<br />
* {{AUR|obs-studio-git}} compiles with the browser plugin.<br />
* {{AUR|obs-linuxbrowser}} (or {{AUR|obs-linuxbrowser-bin}} for pre-compiled binary) provides the old [https://github.com/bazukas/obs-linuxbrowser linuxbrowser] plugin. Works with the default client, but is abandoned and slightly outdated. The quickest way to get the plugin as of December 2021.<br />
* {{AUR|obs-studio-tytan652}} is a custom client that provides the browser plugin as well as browser docks, along with other general improvements.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== OBS doesn't start in Wayland session ===<br />
If you have an active Wayland session and OBS doesn't start, it could be due to the missing {{Pkg|qt5-wayland}} package. <br />
The console output would look like: <br />
<br />
{{bc|'Warning: Ignoring XDG_SESSION_TYPE wayland on Gnome. Use QT_QPA_PLATFORM wayland to run on Wayland anyway.<br />
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""<br />
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.<br />
<br />
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.'<br />
}}<br />
<br />
<br />
== See also ==<br />
<br />
* [https://obsproject.com/wiki/Home OBS Wiki]</div>Blackouthttps://wiki.archlinux.org/index.php?title=PipeWire&diff=648844PipeWire2021-01-13T07:39:33Z<p>Blackout: fix style</p>
<hr />
<div>[[Category:Multimedia]]<br />
{{Related articles start}}<br />
{{Related|PipeWire/Examples}}<br />
{{Related articles end}}<br />
[[fi:PipeWire]]<br />
[[ja:PipeWire]]<br />
[http://pipewire.org PipeWire] is a new multimedia framework by GNOME. The main developer is Wim Taymans.<br />
<br />
PipeWire supports containers like [[Flatpak]] and does not rely on [[user group]]s ''audio'' and ''video'', but rather uses a PolKit-like security model asking Flatpak or Wayland for permission to record screen or audio.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{pkg|pipewire}} package from the official repositories.<br />
<br />
Pipewire uses [[Systemd/User]] for management of the server and automatic socket activation. See the respective [[Systemd/User]] for more details on the startup behavior and logging of the service.<br />
<br />
Optionally, install {{pkg|pipewire-docs}} for documents. Other packages, such as {{pkg|pipewire-alsa}}, {{pkg|pipewire-pulse}}, and {{pkg|pipewire-jack}} are normally not needed unless one wants to [[#Audio|use PipeWire as a PulseAudio/JACK replacement]]. Also available are {{aur|lib32-pipewire}}, {{aur|lib32-pipewire-pulse-git}}{{Broken package link|package not found}}, and {{aur|lib32-pipewire-jack}} for multilib support.<br />
<br />
== Usage ==<br />
<br />
=== WebRTC screen sharing ===<br />
<br />
Most browsers used to rely on X11 for capturing the desktop (or apps) when using WebRTC (e.g. on google Hangouts); but, if you use Wayland, desktop sharing is basically broken, but PipeWire is going to provide support for this use case under Wayland.<br />
<br />
This requires {{Pkg|xdg-desktop-portal}} and one of its backends [http://jgrulich.cz/2018/07/04/how-to-enable-and-use-screen-sharing-on-wayland to be installed]. The available backends are:<br />
<br />
* {{Pkg|xdg-desktop-portal-gtk}} for GNOME.<br />
* {{Pkg|xdg-desktop-portal-kde}} for KDE.<br />
* {{Pkg|xdg-desktop-portal-wlr}} for Wlroots-based compositor (e.g. Sway, dwl)<br />
<br />
Firefox (84+) supports this method, and on Chromium (73+) you need to enable [https://bugs.chromium.org/p/chromium/issues/detail?id=682122 WebRTC PipeWire support] by opening the following URL in a chromium tab:<br />
chrome://flags/#enable-webrtc-pipewire-capturer<br />
<br />
For {{ic|xdg-desktop-portal-wlr}} to work you need to set {{ic|XDG_CURRENT_DESKTOP}}[https://github.com/emersion/xdg-desktop-portal-wlr#running]:<br />
export XDG_CURRENT_DESKTOP=sway<br />
<br />
Note that since Chrome(ium) is currently using PipeWire 0.2 whereas Arch ships PipeWire 0.3, you also need to install {{Pkg|libpipewire02}} for screen sharing to work.<br />
<br />
{{Tip|To share an individual monitor with {{ic|xdg-desktop-portal-wlr}} if you have more than one, you can add the {{ic|1=--output=''Monitor''}} flag to it by [[Systemd#Editing_provided_units|editing]] the {{ic|1=ExecStart=}} option in the unit's service file. The complete line could look like {{ic|1=ExecStart=@libexecdir@/xdg-desktop-portal-wlr --output=eDP-1}}}}<br />
<br />
{{Accuracy|Since [https://github.com/flatpak/xdg-desktop-portal-gtk/pull/225 this pull request] was merged, the following note about specific app/window sharing may be not correct anymore for {{Pkg|xdg-desktop-portal-gtk}}.}}<br />
<br />
Note that the only supported feature is sharing the entire desktop and not a specific app/window [https://github.com/emersion/xdg-desktop-portal-wlr/wiki/FAQ#will-this-let-me-share-individual-windows][https://github.com/KDE/xdg-desktop-portal-kde/blob/master/TODO].<br />
<br />
=== Video ===<br />
<br />
Although the software is not yet production-ready, it is safe to play around with. Most applications that rely on [[GStreamer]] to handle e.g. video streams should work out-of-the-box thanks to the PipeWire GStreamer plugin. Applications like e.g. {{pkg|cheese}} are therefore already able to share video input using it.<br />
<br />
=== Audio ===<br />
<br />
PipeWire can be used as an audio server, similar to PulseAudio and JACK. It aims to replace both PulseAudio and JACK, by providing a PulseAudio-compatible server implementation and ABI-compatible libraries for JACK clients. See [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ this blog entry] for more information.<br />
<br />
==== ALSA/Legacy applications ====<br />
<br />
Install {{pkg|pipewire-alsa}} to route all application using the ALSA API through PipeWire.<br />
<br />
==== PulseAudio clients ====<br />
<br />
Install {{pkg|pipewire-pulse}}. Normally, no further action is needed, as {{ic|pipewire-pulse.socket}} should be enabled automatically by the package. If PipeWire does not work correctly on system startup, try to also enable the user services {{ic|pipewire-pulse.service}} and {{ic|pipewire.service}}. See [[Systemd/User]].<br />
<br />
Reboot or re-login to see the effect.<br />
<br />
To check if the replacement is working, run the following command and see the output:<br />
<br />
{{hc|1=$ pactl info|2=<br />
...<br />
Server Name: PulseAudio (on PipeWire 0.3.16)<br />
...<br />
}}<br />
<br />
==== JACK clients ====<br />
<br />
Install {{pkg|pipewire-jack}} and use {{ic|pw-jack}} to launch JACK clients with the compatible libraries instead of the original {{ic|libjack*}}:<br />
<br />
pw-jack ''application''<br />
<br />
Alternatively, install {{aur|pipewire-jack-dropin}} to let JACK clients load the compatible libraries automatically.<br />
<br />
Use {{ic|ldd}} to verify that the JACK application links to the correct library:<br />
<br />
{{hc|1=$ ldd /usr/bin/qjackctl {{!}} grep -i libjack|2=<br />
libjack.so.0 => /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000)<br />
}}<br />
<br />
==== Bluetooth devices ====<br />
<br />
PipeWire handles Bluetooth audio devices if the {{pkg|pipewire-pulse}} package is installed. More specifically, the media session daemon checks for {{ic|/etc/pipewire/media-session.d/with-pulseaudio}}, and enables its {{ic|bluez5}} module automatically if the file exists.<br />
<br />
==== Run PipeWire on top of native JACK ====<br />
<br />
PipeWire can also run as a JACK client on top of the native JACK daemon if desired. See [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/JACK JACK and PipeWire] for more information.<br />
<br />
== Troubleshooting ==<br />
==== Crackling sound in games built in the Source Engine ====<br />
<br />
The default length of the sound buffer (which is essentially the audio latency) is 0.025 seconds. For some hardware, this is too low, so crackling audio may happen. PulseAudio does not have this problem, because it increases the buffer size automatically when a buffer xrun is detected. PipeWire doesn't do this and probably won't do this. The discussion on how to fix it is ongoing.<br />
<br />
Currently, the workaround is to open the in-game console by pressing the {{ic|`}} key (the key to the left of 1), and enter {{ic|1=snd_mixahead 0.03}}. You can experiment with the value to find a suitable one.<br />
<br />
Related issue: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/401<br />
<br />
Reference: https://csgoguru.com/improve-your-csgo-sound-settings/<br />
<br />
'''At the end of December 2020 Valve released an Update which fixed the issue for CS:GO'''<br />
<br />
Other Source Engine Games HL2, Black Mesa, still have their default value at 0.1 which doesn't result in any issues.<br />
<br />
==== Microphone is not detected by pipewire ====<br />
<br />
{{ic|pipewire-media-session}} doesn't detect ALSA PCM devices by default. Append this feature to its launch options in pipewire config:<br />
<br />
{{hc|1=/etc/pipewire/pipewire.conf|2=<br />
...<br />
exec /usr/bin/pipewire-media-session -e alsa-pcm<br />
...<br />
}}<br />
Restart pipewire and check available devices:<br />
{{hc|1=<br />
$ pw-record --list-targets<br />
|2=<br />
Available targets ("*" denotes default): 62<br />
58: description="Built-in Audio" prio=1872<br />
60: description="Built-in Audio" prio=2000<br />
* 62: description="Built-in Audio (Loopback PCM)" prio=1984<br />
}}<br />
<br />
==== No sound after connecting to Bluetooth device ====<br />
<br />
As of 2020-12-07, if there is no sound after connecting a Bluetooth device, you might need to switch the default sink and/or move a sink input to the correct sink. Use {{ic|pactl set-default-sink}} to set the sink and {{ic|pactl list sinks}} to list the available ones. This can be automated via [[udev]] using a script similar to [https://gist.github.com/tinywrkb/04e7fd644afa9b92d33a3a99ab07ee9e this one].<br />
<br />
See this [https://www.reddit.com/r/archlinux/comments/jydd02/pipewirepulse_03164_in_testing_now_replaces/gd3m7fu/?context=3 Reddit thread] for a discussion of the issue. According to author of the script, the headset profile (HSP) might still have problems.<br />
<br />
==== Low volume ====<br />
<br />
After replacing PulseAudio with Pipewire, sound worked fine, but after a reboot, the volume was intolerably low.<br />
<br />
Open {{ic|alsamixer}}, use {{ic|F6}} to select the proper soundcard, and make sure the ALSA volumes are at 100%. {{ic|alsactl}} should maintain this setting after reboot.<br />
<br />
==== Increasing RLIMIT_MEMLOCK ====<br />
<br />
Dec 13 11:11:11 HOST pipewire-pulse[99999]: Failed to mlock memory 0x7f4f659d8000 32832: This is not a problem but for best performance, consider increasing RLIMIT_MEMLOCK<br />
<br />
Increasing memlock from 64kB to 128kB seems enough to fix this. If you are running {{ic|pipewire-pulse}} under [[systemd/User]], add:<br />
<br />
username soft memlock 64<br />
username hard memlock 128<br />
<br />
to {{ic|/etc/security/limits.d/username.conf}}, and:<br />
<br />
LimitMEMLOCK=131072<br />
<br />
to {{ic|pipewire-pulse.service}}.<br />
<br />
Alternatively, install {{pkg|realtime-privileges}} and add your own user to the {{ic|realtime}} group.<br />
<br />
==== No sound after update, pipewire-pulse daemon fails to start ====<br />
<br />
If you are using pipewire-pulse and your audio doesn't work after an update, it could be that you have edited the configuration file at {{ic|/etc/pipewire/pipewire.conf}}, which is now incompatible with the newer version. In this case, you should have another file called {{ic|/etc/pipewire/pipewire.conf.pacnew}}. Try replacing the old configuration file with the new one and reboot. This could potentially restore your audio.<br />
<br />
See [[Pacman/Pacnew and Pacsave]] for more information.<br />
<br />
== See also ==<br />
<br />
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home Wiki] — PipeWire Wiki on Freedesktop GitLab<br />
* [https://blogs.gnome.org/uraeus/2018/01/26/an-update-on-pipewire-the-multimedia-revolution-an-update/ Pipewire Update Blog Post] — Blog post from January 2018 outlining the state of PipeWire at the time<br />
* [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ PipeWire Late Summer Update 2020] — Blog post from September 2020</div>Blackouthttps://wiki.archlinux.org/index.php?title=PipeWire&diff=648843PipeWire2021-01-13T07:36:49Z<p>Blackout: updated due to an software update</p>
<hr />
<div>[[Category:Multimedia]]<br />
{{Related articles start}}<br />
{{Related|PipeWire/Examples}}<br />
{{Related articles end}}<br />
[[fi:PipeWire]]<br />
[[ja:PipeWire]]<br />
[http://pipewire.org PipeWire] is a new multimedia framework by GNOME. The main developer is Wim Taymans.<br />
<br />
PipeWire supports containers like [[Flatpak]] and does not rely on [[user group]]s ''audio'' and ''video'', but rather uses a PolKit-like security model asking Flatpak or Wayland for permission to record screen or audio.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{pkg|pipewire}} package from the official repositories.<br />
<br />
Pipewire uses [[Systemd/User]] for management of the server and automatic socket activation. See the respective [[Systemd/User]] for more details on the startup behavior and logging of the service.<br />
<br />
Optionally, install {{pkg|pipewire-docs}} for documents. Other packages, such as {{pkg|pipewire-alsa}}, {{pkg|pipewire-pulse}}, and {{pkg|pipewire-jack}} are normally not needed unless one wants to [[#Audio|use PipeWire as a PulseAudio/JACK replacement]]. Also available are {{aur|lib32-pipewire}}, {{aur|lib32-pipewire-pulse-git}}{{Broken package link|package not found}}, and {{aur|lib32-pipewire-jack}} for multilib support.<br />
<br />
== Usage ==<br />
<br />
=== WebRTC screen sharing ===<br />
<br />
Most browsers used to rely on X11 for capturing the desktop (or apps) when using WebRTC (e.g. on google Hangouts); but, if you use Wayland, desktop sharing is basically broken, but PipeWire is going to provide support for this use case under Wayland.<br />
<br />
This requires {{Pkg|xdg-desktop-portal}} and one of its backends [http://jgrulich.cz/2018/07/04/how-to-enable-and-use-screen-sharing-on-wayland to be installed]. The available backends are:<br />
<br />
* {{Pkg|xdg-desktop-portal-gtk}} for GNOME.<br />
* {{Pkg|xdg-desktop-portal-kde}} for KDE.<br />
* {{Pkg|xdg-desktop-portal-wlr}} for Wlroots-based compositor (e.g. Sway, dwl)<br />
<br />
Firefox (84+) supports this method, and on Chromium (73+) you need to enable [https://bugs.chromium.org/p/chromium/issues/detail?id=682122 WebRTC PipeWire support] by opening the following URL in a chromium tab:<br />
chrome://flags/#enable-webrtc-pipewire-capturer<br />
<br />
For {{ic|xdg-desktop-portal-wlr}} to work you need to set {{ic|XDG_CURRENT_DESKTOP}}[https://github.com/emersion/xdg-desktop-portal-wlr#running]:<br />
export XDG_CURRENT_DESKTOP=sway<br />
<br />
Note that since Chrome(ium) is currently using PipeWire 0.2 whereas Arch ships PipeWire 0.3, you also need to install {{Pkg|libpipewire02}} for screen sharing to work.<br />
<br />
{{Tip|To share an individual monitor with {{ic|xdg-desktop-portal-wlr}} if you have more than one, you can add the {{ic|1=--output=''Monitor''}} flag to it by [[Systemd#Editing_provided_units|editing]] the {{ic|1=ExecStart=}} option in the unit's service file. The complete line could look like {{ic|1=ExecStart=@libexecdir@/xdg-desktop-portal-wlr --output=eDP-1}}}}<br />
<br />
{{Accuracy|Since [https://github.com/flatpak/xdg-desktop-portal-gtk/pull/225 this pull request] was merged, the following note about specific app/window sharing may be not correct anymore for {{Pkg|xdg-desktop-portal-gtk}}.}}<br />
<br />
Note that the only supported feature is sharing the entire desktop and not a specific app/window [https://github.com/emersion/xdg-desktop-portal-wlr/wiki/FAQ#will-this-let-me-share-individual-windows][https://github.com/KDE/xdg-desktop-portal-kde/blob/master/TODO].<br />
<br />
=== Video ===<br />
<br />
Although the software is not yet production-ready, it is safe to play around with. Most applications that rely on [[GStreamer]] to handle e.g. video streams should work out-of-the-box thanks to the PipeWire GStreamer plugin. Applications like e.g. {{pkg|cheese}} are therefore already able to share video input using it.<br />
<br />
=== Audio ===<br />
<br />
PipeWire can be used as an audio server, similar to PulseAudio and JACK. It aims to replace both PulseAudio and JACK, by providing a PulseAudio-compatible server implementation and ABI-compatible libraries for JACK clients. See [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ this blog entry] for more information.<br />
<br />
==== ALSA/Legacy applications ====<br />
<br />
Install {{pkg|pipewire-alsa}} to route all application using the ALSA API through PipeWire.<br />
<br />
==== PulseAudio clients ====<br />
<br />
Install {{pkg|pipewire-pulse}}. Normally, no further action is needed, as {{ic|pipewire-pulse.socket}} should be enabled automatically by the package. If PipeWire does not work correctly on system startup, try to also enable the user services {{ic|pipewire-pulse.service}} and {{ic|pipewire.service}}. See [[Systemd/User]].<br />
<br />
Reboot or re-login to see the effect.<br />
<br />
To check if the replacement is working, run the following command and see the output:<br />
<br />
{{hc|1=$ pactl info|2=<br />
...<br />
Server Name: PulseAudio (on PipeWire 0.3.16)<br />
...<br />
}}<br />
<br />
==== JACK clients ====<br />
<br />
Install {{pkg|pipewire-jack}} and use {{ic|pw-jack}} to launch JACK clients with the compatible libraries instead of the original {{ic|libjack*}}:<br />
<br />
pw-jack ''application''<br />
<br />
Alternatively, install {{aur|pipewire-jack-dropin}} to let JACK clients load the compatible libraries automatically.<br />
<br />
Use {{ic|ldd}} to verify that the JACK application links to the correct library:<br />
<br />
{{hc|1=$ ldd /usr/bin/qjackctl {{!}} grep -i libjack|2=<br />
libjack.so.0 => /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000)<br />
}}<br />
<br />
==== Bluetooth devices ====<br />
<br />
PipeWire handles Bluetooth audio devices if the {{pkg|pipewire-pulse}} package is installed. More specifically, the media session daemon checks for {{ic|/etc/pipewire/media-session.d/with-pulseaudio}}, and enables its {{ic|bluez5}} module automatically if the file exists.<br />
<br />
==== Run PipeWire on top of native JACK ====<br />
<br />
PipeWire can also run as a JACK client on top of the native JACK daemon if desired. See [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/JACK JACK and PipeWire] for more information.<br />
<br />
== Troubleshooting ==<br />
==== Crackling sound in games built in the Source Engine ====<br />
<br />
The default length of the sound buffer (which is essentially the audio latency) is 0.025 seconds. For some hardware, this is too low, so crackling audio may happen. PulseAudio does not have this problem, because it increases the buffer size automatically when a buffer xrun is detected. PipeWire doesn't do this and probably won't do this. The discussion on how to fix it is ongoing.<br />
<br />
Currently, the workaround is to open the in-game console by pressing the {{ic|`}} key (the key to the left of 1), and enter {{ic|1=snd_mixahead 0.03}}. You can experiment with the value to find a suitable one.<br />
<br />
Related issue: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/401<br />
<br />
Reference: https://csgoguru.com/improve-your-csgo-sound-settings/<br />
<br />
**At the end of December 2020 Valve released an Update which fixed the issue for CS:GO**<br />
<br />
Other Source Engine Games HL2, Black Mesa, still have their default value at 0.1 which doesn't result in any issues.<br />
<br />
==== Microphone is not detected by pipewire ====<br />
<br />
{{ic|pipewire-media-session}} doesn't detect ALSA PCM devices by default. Append this feature to its launch options in pipewire config:<br />
<br />
{{hc|1=/etc/pipewire/pipewire.conf|2=<br />
...<br />
exec /usr/bin/pipewire-media-session -e alsa-pcm<br />
...<br />
}}<br />
Restart pipewire and check available devices:<br />
{{hc|1=<br />
$ pw-record --list-targets<br />
|2=<br />
Available targets ("*" denotes default): 62<br />
58: description="Built-in Audio" prio=1872<br />
60: description="Built-in Audio" prio=2000<br />
* 62: description="Built-in Audio (Loopback PCM)" prio=1984<br />
}}<br />
<br />
==== No sound after connecting to Bluetooth device ====<br />
<br />
As of 2020-12-07, if there is no sound after connecting a Bluetooth device, you might need to switch the default sink and/or move a sink input to the correct sink. Use {{ic|pactl set-default-sink}} to set the sink and {{ic|pactl list sinks}} to list the available ones. This can be automated via [[udev]] using a script similar to [https://gist.github.com/tinywrkb/04e7fd644afa9b92d33a3a99ab07ee9e this one].<br />
<br />
See this [https://www.reddit.com/r/archlinux/comments/jydd02/pipewirepulse_03164_in_testing_now_replaces/gd3m7fu/?context=3 Reddit thread] for a discussion of the issue. According to author of the script, the headset profile (HSP) might still have problems.<br />
<br />
==== Low volume ====<br />
<br />
After replacing PulseAudio with Pipewire, sound worked fine, but after a reboot, the volume was intolerably low.<br />
<br />
Open {{ic|alsamixer}}, use {{ic|F6}} to select the proper soundcard, and make sure the ALSA volumes are at 100%. {{ic|alsactl}} should maintain this setting after reboot.<br />
<br />
==== Increasing RLIMIT_MEMLOCK ====<br />
<br />
Dec 13 11:11:11 HOST pipewire-pulse[99999]: Failed to mlock memory 0x7f4f659d8000 32832: This is not a problem but for best performance, consider increasing RLIMIT_MEMLOCK<br />
<br />
Increasing memlock from 64kB to 128kB seems enough to fix this. If you are running {{ic|pipewire-pulse}} under [[systemd/User]], add:<br />
<br />
username soft memlock 64<br />
username hard memlock 128<br />
<br />
to {{ic|/etc/security/limits.d/username.conf}}, and:<br />
<br />
LimitMEMLOCK=131072<br />
<br />
to {{ic|pipewire-pulse.service}}.<br />
<br />
Alternatively, install {{pkg|realtime-privileges}} and add your own user to the {{ic|realtime}} group.<br />
<br />
==== No sound after update, pipewire-pulse daemon fails to start ====<br />
<br />
If you are using pipewire-pulse and your audio doesn't work after an update, it could be that you have edited the configuration file at {{ic|/etc/pipewire/pipewire.conf}}, which is now incompatible with the newer version. In this case, you should have another file called {{ic|/etc/pipewire/pipewire.conf.pacnew}}. Try replacing the old configuration file with the new one and reboot. This could potentially restore your audio.<br />
<br />
See [[Pacman/Pacnew and Pacsave]] for more information.<br />
<br />
== See also ==<br />
<br />
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home Wiki] — PipeWire Wiki on Freedesktop GitLab<br />
* [https://blogs.gnome.org/uraeus/2018/01/26/an-update-on-pipewire-the-multimedia-revolution-an-update/ Pipewire Update Blog Post] — Blog post from January 2018 outlining the state of PipeWire at the time<br />
* [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ PipeWire Late Summer Update 2020] — Blog post from September 2020</div>Blackouthttps://wiki.archlinux.org/index.php?title=PipeWire&diff=642347PipeWire2020-11-25T14:45:07Z<p>Blackout: /* update CS:GO crackling sound */</p>
<hr />
<div>[[Category:Multimedia]]<br />
[[ja:PipeWire]]<br />
[http://pipewire.org PipeWire] is a rather new multimedia framework by GNOME. The main developer is Wim Taymans.<br />
<br />
PipeWire supports containers like [[Flatpak]] and does not rely on [[user group]]s ''audio'' and ''video'', but rather uses a PolKit-like security model asking Flatpak or Wayland for permission to record screen or audio.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{pkg|pipewire}} package from the official repositories (or the {{aur|pipewire-git}} package from the [[AUR]]).<br />
<br />
The package installs systemd unit files for the service itself and automatic socket activation (which means it will autostart).<br />
<br />
systemctl --user status pipewire.socket<br />
systemctl --user status pipewire.service<br />
<br />
Optionally, install {{pkg|pipewire-docs}} for documents. Other packages, such as {{pkg|pipewire-alsa}}, {{pkg|pipewire-pulse}}, and {{pkg|pipewire-jack}} are normally not needed unless one wants to [[#Drop-in replacement for PulseAudio/Jack (Experimental)|use PipeWire as a PulseAudio/JACK replacement]]. Also available are {{aur|lib32-pipewire}}, {{aur|lib32-pipewire-pulse}}, and {{aur|lib32-pipewire-jack}} for multilib support.<br />
<br />
== Usage ==<br />
<br />
=== WebRTC screen sharing ===<br />
<br />
Most browsers used to rely on X11 for capturing the desktop (or apps) when using WebRTC (e.g. on google Hangouts); because Gnome shell uses Wayland by default on Arch when started by GDM, desktop sharing is basically broken, but pipewire is going to provide support for this usecase under Wayland.<br />
<br />
This requires [http://jgrulich.cz/2018/07/04/how-to-enable-and-use-screen-sharing-on-wayland Pipewire and xdg-desktop-portal to be installed]; Firefox 68 [https://bugzilla.mozilla.org/show_bug.cgi?id=1496359 will support PipeWire with a custom patch from fedora], and on Chromium (73+) you need to enable [https://bugs.chromium.org/p/chromium/issues/detail?id=682122 WebRTC PipeWire support] the following url in a chromium tab:<br />
chrome://flags/#enable-webrtc-pipewire-capturer<br />
<br />
Note that since Chrome(ium) is currently using pipewire 0.2 whereas Arch ships pipewire 0.3, you also need to install {{Pkg|libpipewire02}} for screen sharing to work.<br />
<br />
{{Warning|Since [https://github.com/flatpak/xdg-desktop-portal-gtk/pull/225 this pull request] was merged following note about specific app/window sharing may be not correct anymore}}<br />
<br />
Note that the only supported feature is sharing the entire desktop and not a specific app/window due to [https://github.com/flatpak/xdg-desktop-portal-gtk/issues/204 missing implementation in xdg-desktop-portal].<br />
<br />
=== Video ===<br />
<br />
Although the software is not yet production ready, it is safe to play around with. Most application that rely on [[GStreamer]] to handle e.g. video streams should work out-of-the-box due to the PipeWire GStreamer plugin. Applications like e.g. {{pkg|cheese}} are therefore already able to share video input using it.<br />
<br />
=== Audio (JACK) ===<br />
<br />
Support for the JACK API on top of PipeWire is implemented and first applications relying on said interface are working in a test environment. Through that work one is able to achieve the low latency needed for pro-audio with PipeWire.<br />
<br />
A detailed description of how to enable and use it can be found [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/JACK here].<br />
<br />
=== ALSA/Legacy applications ===<br />
<br />
Work on ALSA emulation is ongoing but first working code exists.<br />
<br />
=== Bluetooth ===<br />
<br />
PipeWire provides a bluetooth module that integrates directly into the Bluez Bluetooth framework. Pairing and management hence works the same since it is handled by higher level interfaces.<br />
<br />
=== Drop-in replacement for PulseAudio/Jack (Experimental) ===<br />
<br />
PipeWire provides a PulseAudio compatible server implementation and ABI-compatible libraries for JACK clients.<br />
<br />
See [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ this blog entry] for more information on testing PipeWire.<br />
<br />
==== Replacing PulseAudio ====<br />
<br />
Install {{pkg|pipewire-pulse}} and enable {{ic|pipewire-pulse.socket}} for the systemd user session.<br />
<br />
For Bluetooth devices to work, also edit {{ic|/etc/pipewire/pipewire.conf}} and append {{ic|-e bluez5}} to the {{ic|exec /usr/bin/pipewire-media-session}} line:<br />
<br />
{{hc|1=/etc/pipewire/pipewire.conf|2=<br />
...<br />
exec /usr/bin/pipewire-media-session -e bluez5<br />
...<br />
}}<br />
<br />
Reboot or re-login to see the effect.<br />
<br />
To check if the replacement is working, run the following command and see the output:<br />
<br />
{{hc|1=$ pactl info|2=<br />
...<br />
Server Name: PulseAudio (on PipeWire 0.3.16)<br />
...<br />
}}<br />
<br />
==== Replacing JACK ====<br />
<br />
Install {{aur|pipewire-jack-dropin}} to let JACK clients load the compatible libraries instead of the original {{ic|libjack*}}.<br />
<br />
Use {{ic|ldd}} to verify that the JACK application links to the correct library:<br />
<br />
{{hc|1=$ ldd /usr/bin/qjackctl {{!}} grep -i libjack|2=<br />
libjack.so.0 => /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000)<br />
}}<br />
<br />
Also, if you need multilib support, there is {{aur|lib32-pipewire-jack-dropin}}.<br />
<br />
== Troubeshooting ==<br />
==== CS:GO crackling sound ====<br />
Valve has set the default value of {{ic|1=snd_mixahead = 0.025}}. <br />
This caused the decreased audio buffer size. Pulseaudio fixed this with increasing the buffer size automatically when a buffer over-/under run is detected (xrun). <br />
<br />
Pipewire doesn't do this and probably won't do this. Discussion how to fix it is ongoing. <br />
Workaround for now is to open the console and set the value {{ic|1=snd_mixahead = 0.03}} or higher.<br />
<br />
== See also ==<br />
<br />
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home Wiki] — PipeWire Wiki on Freedesktop GitLab<br />
* [https://blogs.gnome.org/uraeus/2018/01/26/an-update-on-pipewire-the-multimedia-revolution-an-update/ Pipewire Update Blog Post] — Blog post from January 2018 outlining the state of PipeWire at the time<br />
* [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ PipeWire Late Summer Update 2020] — Blog post from September 2020</div>Blackouthttps://wiki.archlinux.org/index.php?title=PipeWire&diff=642327PipeWire2020-11-25T12:27:23Z<p>Blackout: fix pipewire workaround for cs:go</p>
<hr />
<div>[[Category:Multimedia]]<br />
[[ja:PipeWire]]<br />
[http://pipewire.org PipeWire] is a rather new multimedia framework by GNOME. The main developer is Wim Taymans.<br />
<br />
PipeWire supports containers like [[Flatpak]] and does not rely on [[user group]]s ''audio'' and ''video'', but rather uses a PolKit-like security model asking Flatpak or Wayland for permission to record screen or audio.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{pkg|pipewire}} package from the official repositories (or the {{aur|pipewire-git}} package from the [[AUR]]).<br />
<br />
The package installs systemd unit files for the service itself and automatic socket activation (which means it will autostart).<br />
<br />
systemctl --user status pipewire.socket<br />
systemctl --user status pipewire.service<br />
<br />
Optionally, install {{pkg|pipewire-docs}} for documents. Other packages, such as {{pkg|pipewire-alsa}}, {{pkg|pipewire-pulse}}, and {{pkg|pipewire-jack}} are normally not needed unless one wants to [[#Drop-in replacement for PulseAudio/Jack (Experimental)|use PipeWire as a PulseAudio/JACK replacement]]. Also available are {{aur|lib32-pipewire}}, {{aur|lib32-pipewire-pulse}}, and {{aur|lib32-pipewire-jack}} for multilib support.<br />
<br />
== Usage ==<br />
<br />
=== WebRTC screen sharing ===<br />
<br />
Most browsers used to rely on X11 for capturing the desktop (or apps) when using WebRTC (e.g. on google Hangouts); because Gnome shell uses Wayland by default on Arch when started by GDM, desktop sharing is basically broken, but pipewire is going to provide support for this usecase under Wayland.<br />
<br />
This requires [http://jgrulich.cz/2018/07/04/how-to-enable-and-use-screen-sharing-on-wayland Pipewire and xdg-desktop-portal to be installed]; Firefox 68 [https://bugzilla.mozilla.org/show_bug.cgi?id=1496359 will support PipeWire with a custom patch from fedora], and on Chromium (73+) you need to enable [https://bugs.chromium.org/p/chromium/issues/detail?id=682122 WebRTC PipeWire support] the following url in a chromium tab:<br />
chrome://flags/#enable-webrtc-pipewire-capturer<br />
<br />
Note that since Chrome(ium) is currently using pipewire 0.2 whereas Arch ships pipewire 0.3, you also need to install {{Pkg|libpipewire02}} for screen sharing to work.<br />
<br />
{{Warning|Since [https://github.com/flatpak/xdg-desktop-portal-gtk/pull/225 this pull request] was merged following note about specific app/window sharing may be not correct anymore}}<br />
<br />
Note that the only supported feature is sharing the entire desktop and not a specific app/window due to [https://github.com/flatpak/xdg-desktop-portal-gtk/issues/204 missing implementation in xdg-desktop-portal].<br />
<br />
=== Video ===<br />
<br />
Although the software is not yet production ready, it is safe to play around with. Most application that rely on [[GStreamer]] to handle e.g. video streams should work out-of-the-box due to the PipeWire GStreamer plugin. Applications like e.g. {{pkg|cheese}} are therefore already able to share video input using it.<br />
<br />
=== Audio (JACK) ===<br />
<br />
Support for the JACK API on top of PipeWire is implemented and first applications relying on said interface are working in a test environment. Through that work one is able to achieve the low latency needed for pro-audio with PipeWire.<br />
<br />
A detailed description of how to enable and use it can be found [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/JACK here].<br />
<br />
=== ALSA/Legacy applications ===<br />
<br />
Work on ALSA emulation is ongoing but first working code exists.<br />
<br />
=== Bluetooth ===<br />
<br />
PipeWire provides a bluetooth module that integrates directly into the Bluez Bluetooth framework. Pairing and management hence works the same since it is handled by higher level interfaces.<br />
<br />
=== Drop-in replacement for PulseAudio/Jack (Experimental) ===<br />
<br />
PipeWire provides a PulseAudio compatible server implementation and ABI-compatible libraries for JACK clients.<br />
<br />
See [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ this blog entry] for more information on testing PipeWire.<br />
<br />
==== Replacing PulseAudio ====<br />
<br />
Install {{pkg|pipewire-pulse}} and enable {{ic|pipewire-pulse.socket}} for the systemd user session.<br />
<br />
For Bluetooth devices to work, also edit {{ic|/etc/pipewire/pipewire.conf}} and append {{ic|-e bluez5}} to the {{ic|exec /usr/bin/pipewire-media-session}} line:<br />
<br />
{{hc|1=/etc/pipewire/pipewire.conf|2=<br />
...<br />
exec /usr/bin/pipewire-media-session -e bluez5<br />
...<br />
}}<br />
<br />
Reboot or re-login to see the effect.<br />
<br />
To check if the replacement is working, run the following command and see the output:<br />
<br />
{{hc|1=$ pactl info|2=<br />
...<br />
Server Name: PulseAudio (on PipeWire 0.3.16)<br />
...<br />
}}<br />
<br />
==== Replacing JACK ====<br />
<br />
Install {{aur|pipewire-jack-dropin}} to let JACK clients load the compatible libraries instead of the original {{ic|libjack*}}.<br />
<br />
Use {{ic|ldd}} to verify that the JACK application links to the correct library:<br />
<br />
{{hc|1=$ ldd /usr/bin/qjackctl {{!}} grep -i libjack|2=<br />
libjack.so.0 => /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000)<br />
}}<br />
<br />
Also, if you need multilib support, there is {{aur|lib32-pipewire-jack-dropin}}.<br />
<br />
== Troubeshooting ==<br />
==== CS:GO crackling sound ====<br />
Valve has set the default value of {{ic|1=snd_mixahead = 0.025}}. <br />
This caused the decreased audio buffer size. Pulseaudio fixed this with increasing the buffer size automatically when a buffer over-/under run is detected (xrun). <br />
<br />
Pipewire doesn't do this and probably won't do this. Discussion how to fix it is ongoing. <br />
Workaround for now is to open the console and set the value {{ic|1=snd_mixahead = 0.03}}<br />
<br />
== See also ==<br />
<br />
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home Wiki] — PipeWire Wiki on Freedesktop GitLab<br />
* [https://blogs.gnome.org/uraeus/2018/01/26/an-update-on-pipewire-the-multimedia-revolution-an-update/ Pipewire Update Blog Post] — Blog post from January 2018 outlining the state of PipeWire at the time<br />
* [https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ PipeWire Late Summer Update 2020] — Blog post from September 2020</div>Blackouthttps://wiki.archlinux.org/index.php?title=Self-encrypting_drives&diff=518377Self-encrypting drives2018-04-23T10:36:01Z<p>Blackout: updated links</p>
<hr />
<div>[[Category:Storage]]<br />
[[Category:Disk encryption]]<br />
[[ja:自己暗号化ドライブ]]<br />
Hardware-based full-disk encryption (FDE) is now available from many hard disk (HDD) vendors, becoming increasingly common especially for [[Solid_State_Drives|solid state drives]]. The term "Self-Encrypting Drive" (SED) is now common when referring to HDDs / SSDs with built-in full-disk encryption (FDE). [[Wikipedia:Opal_Storage_Specification|OPAL]] is a set of specifications for self-encrypting drives developed by the Trusted Computing Group. <br />
<br />
== Overview ==<br />
<br />
Many modern SED FDE are made by HDD/SSD vendors which adher to the [http://www.trustedcomputinggroup.org/files/resource_files/FF80CE7D-1A4B-B294-D060AD8807BF9453/TCG_Storage-Opal_SSC_v2.01_rev1.00.pdf OPAL 2.0] and [http://www.trustedcomputinggroup.org/files/resource_files/FFAE13C6-1A4B-B294-D0D8D885F9F4FB67/TCG_Storage-SSC_Enterprise-v1.01_r1.00.pdf Enterprise] standards developed by the Trusted Computing Group (TCG). Enterprise SAS versions of the TCG standard are called &quot;TCG Enterprise&quot; drives. The hardware manufactured according to the standards is [http://www.wavesys.com/self-encrypting-drive-compatibility-list labelled] accordingly. <br />
<br />
Unlocking (for runtime decryption) of the drive takes place via either a software, pre-boot authentication environment or with a [[#BIOS based ATA-password]] on power up.<br />
<br />
{{Tip|"Encryption" in the context of this page refers to hardware-based encryption. See [[Disk encryption#Block device encryption]] and [[Disk encryption#Stacked filesystem encryption]] for software-based encryption.}}<br />
<br />
Refer to the [[#Advantages]] and [[#Disadvantages]] sections to better understand and decide if hardware-based FDE is what you want.<br />
<br />
=== Key management technical implementation ===<br />
<br />
{{Tip|This section is important to understand the core concepts behind effective key management, and secure erasure of the disk.}}<br />
<br />
Key management takes place within the disk controller and encryption keys are usually 128 or 256 bit Advanced Encryption Standard (AES).<br />
<br />
{{Expansion|The Opal standards are full of acronyms. The sedutil refers to them in the [https://github.com/Drive-Trust-Alliance/sedutil/wiki/FAQ FAQ] and [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Command-Syntax command syntax]. It would be useful to name the important acronyms (e.g. SID, MSID, locking SP, admin SP) in this section, because they are intrinsic to the key-management defined per standard. (See also [[w:Key escrow]]).}}<br />
<br />
SEDs adhering to the TCG OPAL 2.0 standard specification (almost all modern SEDs) implement key management via an Authentication Key (AK), and a 2nd-level Data Encryption Key (DEK). The DEK is the key against which the data is actually encrypted/decrypeted. The AK is the user-facing 1st-level password/passphrase which decrypts the DEK (which in-turn decrypts the data). This approach has specific advantages:<br />
<br />
* Allows the user to change the passphrase ''without'' losing the existing encrypted data on the disk<br />
** This improves security, as it is fast and easy to respond to security threats and revoke a compromised passphrase<br />
* Facilitates near-instant and cryptographically secure full disk erasure.<br />
<br />
For those who are familiar; this concept is similar to the LUKS key management layer often used in a [[dm-crypt]] deployment. Using LUKS, the user can effectively have up to 8 different key-files / passphrases to decrypt the ''encryption key'', which in turn decrypts the underlying data. This approach allows the user to revoke / change these key-files / passphrases as required ''without'' needing to re-encrypt the data, as the 2nd-level encryption key ''is unchanged'' (itself being re-encrypted by the new passphrase).<br />
<br />
In fact, in drives featuring FDE, data is ''always'' encrypted with the DEK when stored to disk, even if there is no password set (e.g. a new drive). Manufacturers do this to make it easier for users who are not able to, or do not wish to enable the SEDs' security features. This can be thought of as all drives by default having a zero-length password that transparently encrypts/decrypts the data ''always'' (similar to how passwordless ssh keys provide (somewhat) secure access without user intervention).<br />
<br />
''The key point to note'' is that if at a later stage a user wishes to ''&quot;enable&quot;'' encryption, they can configure the passphrase (AK), which will then be used to encrypt the ''existing'' DEK (thus prompting for passphrase beforing decrypting the DEK in future). However, as the existing DEK ''will not'' be changed / regenerated; this in effect locks the drive, while preserving the existing encrypted data on the disk.<br />
<br />
=== Advantages ===<br />
<br />
{{Accuracy|The "increased security" advantage is debunked in the paper linked in the below section; undefined term: "data-at-rest"}}<br />
<br />
* Easier to setup (compared to software-based encryption)<br />
* Notably transparent to the user, except for initial bootup authentication<br />
* Data-at-Rest protection<br />
* Increased performance (cpu is freed up from encryption/decryption calculations)<br />
* Increased security due to reduced attack vectors (the main cpu &amp; memory are eliminated as possible attack targets)<br />
* Optimally fast and [[#Secure disk erasure]] (sanitation) (regardless of disk size)<br />
* Protection from alternative boot methods due to the possibility to encrypt the MBR, rendering the drive inaccessible before pre-boot authentication<br />
<br />
=== Disadvantages ===<br />
<br />
* Constant-power exploits<br />
:Typical self-encrypting drives, once unlocked, will remain unlocked as long as power is provided. This vulnerability can be exploited by means of altering the environment external to the drive, without cutting power, in effect keeping the drive in an unlocked state. For example, it has been shown (by researchers at Universiy of Erlangen-Nuremberg) that it is possible to reboot the computer into an attacker-controlled operating system without cutting power to the drive. The researchers have also demonstrated moving the drive to another computer without cutting power.[https://www1.cs.fau.de/sed]<br />
* Key-in-memory exploits<br />
:When the system is powered down into S3 ("sleep") mode, the drive is powered down, but the drive keeps access to the encryption key in its internal memory (NVRAM) to allow for a resume ("wake"). This is necessary because for system booted with an arbitrary operating system there is no standard mechanism to prompt the user to re-enter the pre-boot decryption passphrase again. An attacker (with physical access to the drive) can leverage this to access the drive. Taking together known exploits the researchers summarize "we were able to break hardware-based FDE on eleven [of twelve] of those systems provided they were running or in standby mode".[https://www1.cs.fau.de/sed] Note, however, S3 ("sleep") is '''not''' currently supported by sedutil (the current available toolset for managing a TCG OPAL 2.0 SED via Linux)<br />
* Compromised firmware<br />
:The firmware of the drive may be compromised (backdoor) and data sent to it thus potentially compromised (decryptable by the malicious third party in question, provided access to physical drive is achievable). However, if data is encrypted by the operating system (e.g. dm-crypt), the encryption key is unknown to the compromised drive, thus circumventing this attack vector entirely.<br />
<br />
== Linux support ==<br />
<br />
{{Expansion|1=Kernel 4.11 gained {{ic|BLK_SED_OPAL}} SED support.[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=455a7b238cd6bc68c4a550cbbd37c1e22b64f71c]}}<br />
<br />
''msed'' and ''OpalTool'', the two known Open Source code bases available for SED support on Linux, have both been retired, and their development efforts officially merged to form ''[https://github.com/Drive-Trust-Alliance/sedutil sedutil]'', under the umbrella of The [https://www.drivetrust.com Drive Trust Alliance (DTA)]. [https://github.com/Drive-Trust-Alliance/sedutil sedutil] is &quot;''an Open Source (GPLv3) effort to make Self Encrypting Drive technology freely available to everyone.''&quot;<br />
<br />
[[Install]] the {{AUR|sedutil}} package, which contains the ''sedutil-cli'' tool, and helper scripts to create a custom pre-boot authorization (PBA) image based off the ''current'' OS in use (e.g. for setting a custom console keymap). Alternatively, you can install ''sedutil'' solely for acquiring the ''sedutil-cli'' toolset, but download and use the [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Executable-Distributions precompiled PBA image (for BIOS or UEFI)] provided by the Drive Trust Alliance.<br />
<br />
{{Note|UEFI support currently requires that Secure Boot be turned off.}}<br />
<br />
{{ic|libata.allow_tpm}} '''must''' be set to {{ic|1}} (true) in order to use sedutil. Either add {{ic|1=libata.allow_tpm=1}} to the [[kernel parameters]], or by setting {{ic|/sys/module/libata/parameters/allow_tpm}} to {{ic|1}} on a running system.<br />
<br />
== Encrypting the root (boot) drive ==<br />
{{Out of date|Some of the information in this section has changed, and may not work correctly for sedutil v1.15}}<br />
<br />
These instructions assume you have the ''sedutil-cli'' tool installed (via the [https://aur.archlinux.org/packages/sedutil AUR], or by other means)<br />
<br />
=== Check if your disk supports OPAL ===<br />
<br />
# sedutil-cli --scan<br />
<br />
If you get something like<br />
<br />
Scanning for Opal compliant disks<br />
/dev/sda No LITEONIT LMT-256L9M-11 MSATA 256GB HM8110B<br />
<br />
then your disk doesn't support OPAL. On the contrary, the following output means OPAL is supported:<br />
<br />
/dev/sda 12 Samsung SSD 850 EVO 500GB EMT02B6Q<br />
<br />
Windows version of sedutils output:<br />
<br />
\\.\PhysicalDrive0 12 Samsung SSD 850 PRO 512GB EXM02B6Q<br />
<br />
=== Download (or create) the pre-boot authorization (PBA) image ===<br />
<br />
Download the pre-boot authorization (PBA) image for a [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Executable-Distributions BIOS or UEFI] machine provided by the Drive Trust Alliance.<br />
<br />
{{Note|UEFI support currently requires that Secure Boot be turned off.}}<br />
<br />
<br />
{{Accuracy|These commands do not currently exist in the AUR package. More up-to-date instructions can be found [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Encrypting-your-drive in the official documentation].}}<br />
<br />
Alternatively, you can create your own PBA image using the supplied helpers:<br />
<br />
# mklinuxpba-efi<br />
<br />
to create an EFI image (/boot/linuxpba-efi.diskimg) and<br />
<br />
# mklinuxpba-bios<br />
<br />
to create a BIOS image (/boot/linuxpba.diskimg).<br />
<br />
=== Test the PBA on your machine (optional) ===<br />
<br />
Refer to the [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Test-the-PBA official docs].<br />
<br />
Don't expect to get a list of your OPAL disks. If you try the PBA from a USB stick and your SSD disk is still not activated for OPAL locking (as it is recommended before the PBA has been successfully tested) you will get an error message including "INVALID PARAMETER" (see [https://github.com/Drive-Trust-Alliance/sedutil/issues/73 this issue]). But this shows that the PBA is actually working and finding your disk. The Wiki is outdated in this regard.<br />
<br />
=== Prepare and test the rescue image (optional) ===<br />
<br />
Refer to the [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Test-the-Rescue-system official docs].<br />
<br />
=== Set up the drive ===<br />
<br />
Decompress the PBA (if required):<br />
$ gunzip pba.img.gz<br />
<br />
Use the output of {{ic|lsblk --fs}} to help identify the correct drive.<br />
<br />
# sedutil-cli --initialsetup <password> <drive><br />
# sedutil-cli --loadPBAimage <password> <pba_file> <drive><br />
# sedutil-cli --setMBREnable on <password> <drive><br />
<br />
=== Enable locking ===<br />
<br />
# sedutil-cli --enableLockingRange 0 &lt;password&gt; &lt;drive&gt;<br />
<br />
Power off the computer to lock the drive.<br />
<br />
When the computer is next powered on, the PBA should ask for your password; then unlock the drive and chain-load the decrypted OS.<br />
<br />
=== Accessing the drive from a live distro ===<br />
<br />
The easiest way is to boot the encrypted SSD first, in order to run the shadow MBR. Then press the key that prompts the boot menu and boot whatever device you prefer. Such a way the SED will be completely transparent.<br />
<br />
Another way is to directly boot into the live distro and use sedutil to unlock the SSD:<br />
<br />
# sedutil-cli --setlockingrange 0 rw <password> <drive><br />
# sedutil-cli --setmbrdone on <password> <drive><br />
<br />
{{ic|libata.allow_tpm}} '''must''' be set to {{ic|1}} (true) in order to use sedutil. Either add {{ic|1=libata.allow_tpm=1}} to the [[kernel parameters]], or by setting {{ic|/sys/module/libata/parameters/allow_tpm}} to {{ic|1}} on a running system.<br />
<br />
=== Disable locking ===<br />
<br />
If you want to turn off Locking and the PBA:<br />
<br />
# sedutil-cli --disableLockingRange 0 &lt;password&gt; &lt;drive&gt;<br />
# sedutil-cli --setMBREnable off &lt;password&gt; &lt;drive&gt;<br />
<br />
=== Re-enable locking and the PBA ===<br />
<br />
You can later re-enable locking and the PBA using this command sequence<br />
<br />
# sedutil-cli --enableLockingRange 0 &lt;password&gt; &lt;drive&gt;<br />
# sedutil-cli --setMBRDone on &lt;password&gt; &lt;drive&gt;<br />
# sedutil-cli --setMBREnable on &lt;password&gt; &lt;drive&gt;<br />
<br />
== Encrypting a non-root drive ==<br />
<br />
{{Style|undefined term: non-root drive}}<br />
<br />
A non-root drive does not require loading a PBA. So, activating the encryption is as simple as running:<br />
<br />
# sedutil-cli --initialsetup &lt;password&gt; &lt;drive&gt;<br />
<br />
== Changing the passphrase ==<br />
<br />
Changing the passphrase does ''not'' lose existing data on the drive, and does not require re-encryption of data.<br />
<br />
# sedutil-cli --setSIDPwd &lt;password&gt; &lt;newpassword&gt; &lt;device&gt;<br />
# sedutil-cli --setAdmin1Pwd &lt;password&gt; &lt;newpassword&gt; &lt;device&gt;<br />
<br />
Read the [[#Key management technical implementation]] section above to learn about how this is implemented securely within the drive, and why it is possible to change the passphrase ''without'' losing the existing encrypted data on the drive.<br />
<br />
== Secure disk erasure ==<br />
<br />
Whole disk erasure is very fast, and remarkably simple for a SED. Simply passing a cryptographic disk erasure (or crypto erase) command (after providing the correct authentication credentials) will have the drive self-generate a new random encryption key (DEK) internally. This will permanently discard the old key, thus rendering the encrypted data irrevocably un-decryptable. The drive will now be in a 'new drive' state.<br />
<br />
Read the [[#Key management technical implementation]] section above to learn more about how this is implemented securely within the drive.<br />
<br />
== BIOS based ATA-password ==<br />
<br />
Previous to the industry's TCG OPAL 2.0 standard initiative, the relevant [[w:Parallel_ATA#ATA_standards_versions.2C_transfer_rates.2C_and_features|ATA]] standard defined an "ATA Security feature Set" for SED FDE. This relies on the PC (not SSD/HDD) BIOS to feature an unlocking mechanism utilizing the BIOS to setup the user's encryption password/passphrase. This legacy BIOS-based (ATA) method was considered more unreliable to setup and prone to error with regard to interoperability between PC vendors.[http://www.t13.org/documents/UploadedDocuments/docs2006/e05179r4-ACS-SecurityClarifications.pdf] Typical errors include, for example, inabilities to unlock a device once it is plugged into a system from a different hardware vendor. Hence, the availability of BIOS support for the legacy password mechanism decreases in availability, particularly for consumer hardware. <br />
<br />
See [[Solid State Drives#Tips for SSD security]]{{Broken section link}} for more information.<br />
<br />
== See also ==<br />
<br />
* [https://github.com/Drive-Trust-Alliance/sedutil sedutil (github)]<br />
* [https://github.com/Drive-Trust-Alliance/sedutil/wiki sedutil official docs]<br />
* [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Command-Syntax sedutil-cli commands usage]<br />
* [[wikipedia:Hardware-based_full_disk_encryption#Hard_disk_drive_FDE|Wikipedia article on hardware-based FDE]]</div>Blackouthttps://wiki.archlinux.org/index.php?title=Self-encrypting_drives&diff=518376Self-encrypting drives2018-04-23T10:34:04Z<p>Blackout: Updated link to PBA</p>
<hr />
<div>[[Category:Storage]]<br />
[[Category:Disk encryption]]<br />
[[ja:自己暗号化ドライブ]]<br />
Hardware-based full-disk encryption (FDE) is now available from many hard disk (HDD) vendors, becoming increasingly common especially for [[Solid_State_Drives|solid state drives]]. The term "Self-Encrypting Drive" (SED) is now common when referring to HDDs / SSDs with built-in full-disk encryption (FDE). [[Wikipedia:Opal_Storage_Specification|OPAL]] is a set of specifications for self-encrypting drives developed by the Trusted Computing Group. <br />
<br />
== Overview ==<br />
<br />
Many modern SED FDE are made by HDD/SSD vendors which adher to the [http://www.trustedcomputinggroup.org/files/resource_files/FF80CE7D-1A4B-B294-D060AD8807BF9453/TCG_Storage-Opal_SSC_v2.01_rev1.00.pdf OPAL 2.0] and [http://www.trustedcomputinggroup.org/files/resource_files/FFAE13C6-1A4B-B294-D0D8D885F9F4FB67/TCG_Storage-SSC_Enterprise-v1.01_r1.00.pdf Enterprise] standards developed by the Trusted Computing Group (TCG). Enterprise SAS versions of the TCG standard are called &quot;TCG Enterprise&quot; drives. The hardware manufactured according to the standards is [http://www.wavesys.com/self-encrypting-drive-compatibility-list labelled] accordingly. <br />
<br />
Unlocking (for runtime decryption) of the drive takes place via either a software, pre-boot authentication environment or with a [[#BIOS based ATA-password]] on power up.<br />
<br />
{{Tip|"Encryption" in the context of this page refers to hardware-based encryption. See [[Disk encryption#Block device encryption]] and [[Disk encryption#Stacked filesystem encryption]] for software-based encryption.}}<br />
<br />
Refer to the [[#Advantages]] and [[#Disadvantages]] sections to better understand and decide if hardware-based FDE is what you want.<br />
<br />
=== Key management technical implementation ===<br />
<br />
{{Tip|This section is important to understand the core concepts behind effective key management, and secure erasure of the disk.}}<br />
<br />
Key management takes place within the disk controller and encryption keys are usually 128 or 256 bit Advanced Encryption Standard (AES).<br />
<br />
{{Expansion|The Opal standards are full of acronyms. The sedutil refers to them in the [https://github.com/Drive-Trust-Alliance/sedutil/wiki/FAQ FAQ] and [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Command-Syntax command syntax]. It would be useful to name the important acronyms (e.g. SID, MSID, locking SP, admin SP) in this section, because they are intrinsic to the key-management defined per standard. (See also [[w:Key escrow]]).}}<br />
<br />
SEDs adhering to the TCG OPAL 2.0 standard specification (almost all modern SEDs) implement key management via an Authentication Key (AK), and a 2nd-level Data Encryption Key (DEK). The DEK is the key against which the data is actually encrypted/decrypeted. The AK is the user-facing 1st-level password/passphrase which decrypts the DEK (which in-turn decrypts the data). This approach has specific advantages:<br />
<br />
* Allows the user to change the passphrase ''without'' losing the existing encrypted data on the disk<br />
** This improves security, as it is fast and easy to respond to security threats and revoke a compromised passphrase<br />
* Facilitates near-instant and cryptographically secure full disk erasure.<br />
<br />
For those who are familiar; this concept is similar to the LUKS key management layer often used in a [[dm-crypt]] deployment. Using LUKS, the user can effectively have up to 8 different key-files / passphrases to decrypt the ''encryption key'', which in turn decrypts the underlying data. This approach allows the user to revoke / change these key-files / passphrases as required ''without'' needing to re-encrypt the data, as the 2nd-level encryption key ''is unchanged'' (itself being re-encrypted by the new passphrase).<br />
<br />
In fact, in drives featuring FDE, data is ''always'' encrypted with the DEK when stored to disk, even if there is no password set (e.g. a new drive). Manufacturers do this to make it easier for users who are not able to, or do not wish to enable the SEDs' security features. This can be thought of as all drives by default having a zero-length password that transparently encrypts/decrypts the data ''always'' (similar to how passwordless ssh keys provide (somewhat) secure access without user intervention).<br />
<br />
''The key point to note'' is that if at a later stage a user wishes to ''&quot;enable&quot;'' encryption, they can configure the passphrase (AK), which will then be used to encrypt the ''existing'' DEK (thus prompting for passphrase beforing decrypting the DEK in future). However, as the existing DEK ''will not'' be changed / regenerated; this in effect locks the drive, while preserving the existing encrypted data on the disk.<br />
<br />
=== Advantages ===<br />
<br />
{{Accuracy|The "increased security" advantage is debunked in the paper linked in the below section; undefined term: "data-at-rest"}}<br />
<br />
* Easier to setup (compared to software-based encryption)<br />
* Notably transparent to the user, except for initial bootup authentication<br />
* Data-at-Rest protection<br />
* Increased performance (cpu is freed up from encryption/decryption calculations)<br />
* Increased security due to reduced attack vectors (the main cpu &amp; memory are eliminated as possible attack targets)<br />
* Optimally fast and [[#Secure disk erasure]] (sanitation) (regardless of disk size)<br />
* Protection from alternative boot methods due to the possibility to encrypt the MBR, rendering the drive inaccessible before pre-boot authentication<br />
<br />
=== Disadvantages ===<br />
<br />
* Constant-power exploits<br />
:Typical self-encrypting drives, once unlocked, will remain unlocked as long as power is provided. This vulnerability can be exploited by means of altering the environment external to the drive, without cutting power, in effect keeping the drive in an unlocked state. For example, it has been shown (by researchers at Universiy of Erlangen-Nuremberg) that it is possible to reboot the computer into an attacker-controlled operating system without cutting power to the drive. The researchers have also demonstrated moving the drive to another computer without cutting power.[https://www1.cs.fau.de/sed]<br />
* Key-in-memory exploits<br />
:When the system is powered down into S3 ("sleep") mode, the drive is powered down, but the drive keeps access to the encryption key in its internal memory (NVRAM) to allow for a resume ("wake"). This is necessary because for system booted with an arbitrary operating system there is no standard mechanism to prompt the user to re-enter the pre-boot decryption passphrase again. An attacker (with physical access to the drive) can leverage this to access the drive. Taking together known exploits the researchers summarize "we were able to break hardware-based FDE on eleven [of twelve] of those systems provided they were running or in standby mode".[https://www1.cs.fau.de/sed] Note, however, S3 ("sleep") is '''not''' currently supported by sedutil (the current available toolset for managing a TCG OPAL 2.0 SED via Linux)<br />
* Compromised firmware<br />
:The firmware of the drive may be compromised (backdoor) and data sent to it thus potentially compromised (decryptable by the malicious third party in question, provided access to physical drive is achievable). However, if data is encrypted by the operating system (e.g. dm-crypt), the encryption key is unknown to the compromised drive, thus circumventing this attack vector entirely.<br />
<br />
== Linux support ==<br />
<br />
{{Expansion|1=Kernel 4.11 gained {{ic|BLK_SED_OPAL}} SED support.[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=455a7b238cd6bc68c4a550cbbd37c1e22b64f71c]}}<br />
<br />
''msed'' and ''OpalTool'', the two known Open Source code bases available for SED support on Linux, have both been retired, and their development efforts officially merged to form ''[https://github.com/Drive-Trust-Alliance/sedutil sedutil]'', under the umbrella of The [https://www.drivetrust.com Drive Trust Alliance (DTA)]. [https://github.com/Drive-Trust-Alliance/sedutil sedutil] is &quot;''an Open Source (GPLv3) effort to make Self Encrypting Drive technology freely available to everyone.''&quot;<br />
<br />
[[Install]] the {{AUR|sedutil}} package, which contains the ''sedutil-cli'' tool, and helper scripts to create a custom pre-boot authorization (PBA) image based off the ''current'' OS in use (e.g. for setting a custom console keymap). Alternatively, you can install ''sedutil'' solely for acquiring the ''sedutil-cli'' toolset, but download and use the [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Executable-Distributions precompiled PBA image (for BIOS or UEFI)] provided by the Drive Trust Alliance.<br />
<br />
{{Note|UEFI support currently requires that Secure Boot be turned off.}}<br />
<br />
{{ic|libata.allow_tpm}} '''must''' be set to {{ic|1}} (true) in order to use sedutil. Either add {{ic|1=libata.allow_tpm=1}} to the [[kernel parameters]], or by setting {{ic|/sys/module/libata/parameters/allow_tpm}} to {{ic|1}} on a running system.<br />
<br />
== Encrypting the root (boot) drive ==<br />
{{Out of date|Some of the information in this section has changed, and may not work correctly for sedutil v1.15}}<br />
<br />
These instructions assume you have the ''sedutil-cli'' tool installed (via the [https://aur.archlinux.org/packages/sedutil AUR], or by other means)<br />
<br />
=== Check if your disk supports OPAL ===<br />
<br />
# sedutil-cli --scan<br />
<br />
If you get something like<br />
<br />
Scanning for Opal compliant disks<br />
/dev/sda No LITEONIT LMT-256L9M-11 MSATA 256GB HM8110B<br />
<br />
then your disk doesn't support OPAL. On the contrary, the following output means OPAL is supported:<br />
<br />
/dev/sda 12 Samsung SSD 850 EVO 500GB EMT02B6Q<br />
<br />
Windows version of sedutils output:<br />
<br />
\\.\PhysicalDrive0 12 Samsung SSD 850 PRO 512GB EXM02B6Q<br />
<br />
=== Download (or create) the pre-boot authorization (PBA) image ===<br />
<br />
Download the pre-boot authorization (PBA) image for a [https://github.com/Drive-Trust-Alliance/exec/blob/master/LINUXPBARelease.img.gz?raw=true BIOS] or [https://github.com/Drive-Trust-Alliance/exec/blob/master/UEFI64_Release.img.gz?raw=true 64bit UEFI] machine.<br />
<br />
{{Note|UEFI support currently requires that Secure Boot be turned off.}}<br />
<br />
<br />
{{Accuracy|These commands do not currently exist in the AUR package. More up-to-date instructions can be found [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Encrypting-your-drive in the official documentation].}}<br />
<br />
Alternatively, you can create your own PBA image using the supplied helpers:<br />
<br />
# mklinuxpba-efi<br />
<br />
to create an EFI image (/boot/linuxpba-efi.diskimg) and<br />
<br />
# mklinuxpba-bios<br />
<br />
to create a BIOS image (/boot/linuxpba.diskimg).<br />
<br />
=== Test the PBA on your machine (optional) ===<br />
<br />
Refer to the [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Test-the-PBA official docs].<br />
<br />
Don't expect to get a list of your OPAL disks. If you try the PBA from a USB stick and your SSD disk is still not activated for OPAL locking (as it is recommended before the PBA has been successfully tested) you will get an error message including "INVALID PARAMETER" (see [https://github.com/Drive-Trust-Alliance/sedutil/issues/73 this issue]). But this shows that the PBA is actually working and finding your disk. The Wiki is outdated in this regard.<br />
<br />
=== Prepare and test the rescue image (optional) ===<br />
<br />
Refer to the [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Test-the-Rescue-system official docs].<br />
<br />
=== Set up the drive ===<br />
<br />
Decompress the PBA (if required):<br />
$ gunzip pba.img.gz<br />
<br />
Use the output of {{ic|lsblk --fs}} to help identify the correct drive.<br />
<br />
# sedutil-cli --initialsetup <password> <drive><br />
# sedutil-cli --loadPBAimage <password> <pba_file> <drive><br />
# sedutil-cli --setMBREnable on <password> <drive><br />
<br />
=== Enable locking ===<br />
<br />
# sedutil-cli --enableLockingRange 0 &lt;password&gt; &lt;drive&gt;<br />
<br />
Power off the computer to lock the drive.<br />
<br />
When the computer is next powered on, the PBA should ask for your password; then unlock the drive and chain-load the decrypted OS.<br />
<br />
=== Accessing the drive from a live distro ===<br />
<br />
The easiest way is to boot the encrypted SSD first, in order to run the shadow MBR. Then press the key that prompts the boot menu and boot whatever device you prefer. Such a way the SED will be completely transparent.<br />
<br />
Another way is to directly boot into the live distro and use sedutil to unlock the SSD:<br />
<br />
# sedutil-cli --setlockingrange 0 rw <password> <drive><br />
# sedutil-cli --setmbrdone on <password> <drive><br />
<br />
{{ic|libata.allow_tpm}} '''must''' be set to {{ic|1}} (true) in order to use sedutil. Either add {{ic|1=libata.allow_tpm=1}} to the [[kernel parameters]], or by setting {{ic|/sys/module/libata/parameters/allow_tpm}} to {{ic|1}} on a running system.<br />
<br />
=== Disable locking ===<br />
<br />
If you want to turn off Locking and the PBA:<br />
<br />
# sedutil-cli --disableLockingRange 0 &lt;password&gt; &lt;drive&gt;<br />
# sedutil-cli --setMBREnable off &lt;password&gt; &lt;drive&gt;<br />
<br />
=== Re-enable locking and the PBA ===<br />
<br />
You can later re-enable locking and the PBA using this command sequence<br />
<br />
# sedutil-cli --enableLockingRange 0 &lt;password&gt; &lt;drive&gt;<br />
# sedutil-cli --setMBRDone on &lt;password&gt; &lt;drive&gt;<br />
# sedutil-cli --setMBREnable on &lt;password&gt; &lt;drive&gt;<br />
<br />
== Encrypting a non-root drive ==<br />
<br />
{{Style|undefined term: non-root drive}}<br />
<br />
A non-root drive does not require loading a PBA. So, activating the encryption is as simple as running:<br />
<br />
# sedutil-cli --initialsetup &lt;password&gt; &lt;drive&gt;<br />
<br />
== Changing the passphrase ==<br />
<br />
Changing the passphrase does ''not'' lose existing data on the drive, and does not require re-encryption of data.<br />
<br />
# sedutil-cli --setSIDPwd &lt;password&gt; &lt;newpassword&gt; &lt;device&gt;<br />
# sedutil-cli --setAdmin1Pwd &lt;password&gt; &lt;newpassword&gt; &lt;device&gt;<br />
<br />
Read the [[#Key management technical implementation]] section above to learn about how this is implemented securely within the drive, and why it is possible to change the passphrase ''without'' losing the existing encrypted data on the drive.<br />
<br />
== Secure disk erasure ==<br />
<br />
Whole disk erasure is very fast, and remarkably simple for a SED. Simply passing a cryptographic disk erasure (or crypto erase) command (after providing the correct authentication credentials) will have the drive self-generate a new random encryption key (DEK) internally. This will permanently discard the old key, thus rendering the encrypted data irrevocably un-decryptable. The drive will now be in a 'new drive' state.<br />
<br />
Read the [[#Key management technical implementation]] section above to learn more about how this is implemented securely within the drive.<br />
<br />
== BIOS based ATA-password ==<br />
<br />
Previous to the industry's TCG OPAL 2.0 standard initiative, the relevant [[w:Parallel_ATA#ATA_standards_versions.2C_transfer_rates.2C_and_features|ATA]] standard defined an "ATA Security feature Set" for SED FDE. This relies on the PC (not SSD/HDD) BIOS to feature an unlocking mechanism utilizing the BIOS to setup the user's encryption password/passphrase. This legacy BIOS-based (ATA) method was considered more unreliable to setup and prone to error with regard to interoperability between PC vendors.[http://www.t13.org/documents/UploadedDocuments/docs2006/e05179r4-ACS-SecurityClarifications.pdf] Typical errors include, for example, inabilities to unlock a device once it is plugged into a system from a different hardware vendor. Hence, the availability of BIOS support for the legacy password mechanism decreases in availability, particularly for consumer hardware. <br />
<br />
See [[Solid State Drives#Tips for SSD security]]{{Broken section link}} for more information.<br />
<br />
== See also ==<br />
<br />
* [https://github.com/Drive-Trust-Alliance/sedutil sedutil (github)]<br />
* [https://github.com/Drive-Trust-Alliance/sedutil/wiki sedutil official docs]<br />
* [https://github.com/Drive-Trust-Alliance/sedutil/wiki/Command-Syntax sedutil-cli commands usage]<br />
* [[wikipedia:Hardware-based_full_disk_encryption#Hard_disk_drive_FDE|Wikipedia article on hardware-based FDE]]</div>Blackouthttps://wiki.archlinux.org/index.php?title=Firefox&diff=451344Firefox2016-09-21T07:10:04Z<p>Blackout: added link to Experimental features in Firefox Nightly</p>
<hr />
<div>[[Category:Web browser]]<br />
[[ar:Firefox]]<br />
[[cs:Firefox]]<br />
[[de:Firefox]]<br />
[[es:Firefox]]<br />
[[fr:Firefox]]<br />
[[it:Firefox]]<br />
[[ja:Firefox]]<br />
[[ko:Firefox]]<br />
[[ru:Firefox]]<br />
[[tr:Firefox]]<br />
[[zh-CN:Firefox]]<br />
{{Related articles start}}<br />
{{Related|Browser plugins}}<br />
{{Related|Firefox tweaks}}<br />
{{Related|Chromium}}<br />
{{Related|Opera}}<br />
{{Related articles end}}<br />
[https://www.mozilla.org/firefox Firefox] is a popular open-source graphical web browser from [https://www.mozilla.org Mozilla].<br />
<br />
== Installing ==<br />
<br />
Firefox can be [[installed]] with the {{Pkg|firefox}} package.<br />
<br />
Other alternatives include:<br />
<br />
* {{App|Firefox Extended Support Release|long-term supported version|https://www.mozilla.org/firefox/organizations/|{{AUR|firefox-esr}} or {{AUR|firefox-esr-bin}}}}<br />
* {{App|Firefox Beta|cutting-edge version|https://www.mozilla.org/firefox/channel/#beta|{{AUR|firefox-beta}} or {{AUR|firefox-beta-bin}}}}<br />
* {{App|Firefox Developer Edition/Aurora|for developers|https://www.mozilla.org/firefox/channel/#developer|{{AUR|firefox-aurora}}}}<br />
* {{App|Firefox Nightly|nightly builds for testing|https://nightly.mozilla.org/|{{AUR|firefox-nightly}}}} <br />
* {{App|Firefox KDE|Version of Firefox that incorporates an OpenSUSE patch for better KDE integration than is possible through simple Firefox plugins.|https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox|{{AUR|firefox-kde-opensuse}}}}<br />
* On top of the different Mozilla build channels, a number of forks exist with more or less special features; see [[List of applications#Gecko-based]].<br />
<br />
Here you can find an overview of Mozilla's [https://wiki.mozilla.org/Releases releases].<br />
<br />
[https://developer.mozilla.org/en-US/Firefox/Experimental_features?utm_source=firefox&utm_medium=whatsnew&utm_campaign=nightly Experimental features in Firefox Nightly]<br />
<br />
There are a number of language packs available for Firefox, other than the standard English. Language packs are usually named as {{ic|firefox-i18n-languagecode}} (where {{ic|languagecode}} can be any language code, such as '''de''', '''ja''', '''fr''', etc.). For a list of available language packs see [https://www.archlinux.org/packages/?sort=&q=firefox-i18n&maintainer=&last_update=&flagged=&limit=100 this].<br />
<br />
== Add-ons ==<br />
<br />
Firefox is well known for its large library of add-ons which can be used to add new features or modify the behavior of existing features of Firefox. You can find new add-ons or manage installed add-ons with Firefox's "Add-ons Manager."<br />
<br />
For a list of popular add-ons, see [https://addons.mozilla.org/firefox/extensions/?sort=popular Mozilla's add-on list sorted by popularity]. See also [[Wikipedia:List of Firefox extensions|List of Firefox extensions]] on Wikipedia.<br />
<br />
=== Adding search engines ===<br />
<br />
Search engines can be added to Firefox through normal add-ons, see [https://addons.mozilla.org/firefox/search-tools/ this page] for a list of available search engines.<br />
<br />
A very extensive list of search engines can be found [http://mycroft.mozdev.org/ here].<br />
<br />
Also, you can use the [https://firefox.maltekraus.de/extensions/add-to-search-bar add-to-searchbar] extension to add a search to your search bar from any web site, by simply right clicking on the site's search field and selecting ''Add to Search Bar...''<br />
<br />
==== arch-firefox-search ====<br />
<br />
Install the {{Pkg|arch-firefox-search}} package to add Arch-specific searches (AUR, wiki, forum, etc, as specified by user) to the Firefox search toolbar.<br />
<br />
=== GNOME Keyring integration ===<br />
<br />
Install {{AUR|mozilla-extension-gnome-keyring-git}} (all-JavaScript implementation) to integrate Firefox with [[GNOME Keyring]]. To make firefox-gnome-keyring use your login keychain, set extensions.gnome-keyring.keyringName to "login" (without the double quotes) in about:config. Note the lowercase 'l' despite the the keychain name having an uppercase 'L' in Seahorse.<br />
<br />
== Configuration ==<br />
<br />
Firefox exposes a number of configuration options. To examine them, enter:<br />
about:config<br />
in the Firefox address bar.<br />
<br />
Once set, these affect the user's current profile, and may be synchronized across all devices via [https://www.mozilla.org/firefox/sync/ Firefox Sync]. Please note that only a subset of the {{ic|about:config}} entries are synchronized by this method, and the exact subset may be found by searching for {{ic|services.sync.prefs}} in {{ic|about:config}}. Additional preferences and 3rd party preferences may be synchronized by creating new boolean entries prepending the config value with {{ic|services.sync.prefs.sync}} ([https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Firefox_Sync/Syncing_custom_preferences documentation] is still applicable.) To synchronize the whitelist for the extension [https://addons.mozilla.org/en-US/firefox/addon/noscript/ NoScript]:<br />
services.sync.prefs.sync.capability.policy.maonoscript.sites<br />
The boolean {{ic|noscript.sync.enabled}} must be set to true to synchronize the remainder of NoScript's preferences via Firefox Sync.<br />
<br />
Firefox also allows configuration for a profile via a {{ic|user.js}} file: [http://kb.mozillazine.org/User.js_file user.js] kept in the profile folder, usually {{ic|~/.mozilla/firefox/''some name''.default/}}. For a useful starting point, see e.g [https://github.com/pyllyukko/user.js custom user.js] which is targeted at privacy/security conscious users.<br />
<br />
One drawback of the above approach is that it is not applied system-wide. Furthermore, this is not useful as a "pre-configuration", since the profile directory is created after first launch of the browser. You can, however, let ''firefox'' create a new profile and, after closing it again, [https://support.mozilla.org/en-US/kb/back-and-restore-information-firefox-profiles#w_restoring-a-profile-backup copy the contents] of an already created profile folder into it. <br />
<br />
Sometimes it may be desired to lock certain settings, a feature useful in widespread deployments of customized Firefox. In order to create a system-wide configuration, follow the steps outlined in [http://kb.mozillazine.org/Locking_preferences Locking preferences]:<br />
<br />
1. Create {{ic|/usr/lib/firefox/defaults/pref/local-settings.js}}:<br />
pref("general.config.obscure_value", 0);<br />
pref("general.config.filename", "mozilla.cfg");<br />
2. Create {{ic|/usr/lib/firefox/mozilla.cfg}} (this stores the actual configuration):<br />
//<br />
//...your settings...<br />
// e.g to disable Pocket, uncomment the following line<br />
// lockPref("browser.pocket.enabled", false);<br />
<br />
Please note that the first line must contain exactly {{ic|//}}. The syntax of the file is similar to that of {{ic|user.js}}.<br />
<br />
=== Multimedia playback ===<br />
<br />
Firefox will try to use [[FFmpeg]] for playing multimedia inside HTML5 {{ic|<audio>}} and {{ic|<video>}} elements. For this to work, the {{Pkg|ffmpeg}} package needs to be installed.<br />
<br />
Restart Firefox, and go to [https://www.youtube.com/html5 YouTube's HTML5 page], [http://www.quirksmode.org/html5/tests/video.html video-test page] or [http://hpr.dogphilosophy.net/test/ audio-test page] to check which formats are actually supported.<br />
<br />
See also [[Firefox tweaks#Enable additional media codecs]] for advanced configuration.<br />
<br />
=== Dictionaries for spell checking ===<br />
<br />
To enable spell checking for a specific language right click on any text field and check the ''Check Spelling'' box. To select a language for spell checking to you have right click again and select your language from the ''Languages'' sub-menu.<br />
<br />
To get more languages just click ''Add Dictionaries...'' and select the dictionary you want to install from the list.<br />
<br />
Alternatively, you can install the {{Pkg|hunspell}} package. You also need to install dictionaries for your language, such as {{Pkg|hunspell-fr}} (for the French language) or {{Pkg|hunspell-he}} (for Hebrew).<br />
<br />
By default, Firefox will try to symlink all your hunspell dictionaries in {{ic|/usr/lib/firefox/dictionaries}}. If you want to have less dictionaries offered to you in Firefox, you can remove some of those links. Be aware that it may not stand an upgrade of Firefox.<br />
<br />
When your default language choice does not stick, see [[#Firefox does not remember default spell check language]].<br />
<br />
=== KDE integration ===<br />
<br />
{{Warning|1=Since GTK3 was updated to 3.20.x, there are several broken themes. Including '''Breeze''', the recommended theme for integration between KDE and GTK styles. Some of the issues are invisible scroll bars, no text highlight on selection, invisible checkboxes, among others. As a workaround while the themes are upgraded you can do the following after installing {{Pkg|kde-gtk-config}}, go to {{ic|System Settings}} -> {{ic|Application Style}} -> {{ic|GNOME Application Style (GTK)}} and choose in the '''Select a GTK3 Theme''' dropdown choose the '''Default''' theme, also make sure '''Show icons in GTK buttons''' and '''Show icons in GTK''' are checked. For further information on the compatibility issue above visit the [https://bbs.archlinux.org/viewtopic.php?pid=1619076 GTK3 3.20 upgrade thread] in the Arch Forums.}}<br />
<br />
* To bring the KDE look to GTK apps (including Firefox), install {{Pkg|breeze-gtk}} and {{Pkg|kde-gtk-config}}. Afterwards, go to {{ic|System Settings}} -> {{ic|Application Style}} -> {{ic|GTK}}. Be sure to choose 'Breeze' in 'Select a GTK2/GTK3 Theme' and check 'Show icons in GTK buttons' and 'Show icons in GTK'.<br />
<br />
* To use KDE's KPart technology with Firefox, by embedding different KDE file viewers into the browser, you can install {{Pkg|kpartsplugin}}{{Broken package link|{{aur-mirror|kpartsplugin}}}}.<br />
<br />
* For integration with KDE’s mime type system and file dialogs, one can use {{AUR|firefox-kde-opensuse}} variant from AUR with OpenSUSE’s patches applied.<br />
<br />
* Add-ons may provide some integration, such as [https://addons.mozilla.org/firefox/addon/kde-wallet-password-integratio/ KWallet integration], [https://addons.mozilla.org/firefox/addon/unityfox-revived/ Unityfox Revived], and [https://addons.mozilla.org/firefox/addon/plasmanotify/ Plasma notifications].<br />
<br />
== Plugins ==<br />
<br />
{{Note|Firefox will remove support for plugins (except for Flash) in Firefox 52 (March 2017).[https://blog.mozilla.org/futurereleases/2015/10/08/npapi-plugins-in-firefox/][https://blog.mozilla.org/futurereleases/2016/07/20/reducing-adobe-flash-usage-in-firefox/]}}<br />
<br />
See the main article: [[Browser plugins]]<br />
<br />
To find out what plugins are installed/enabled, enter:<br />
about:plugins<br />
in the Firefox address bar or go to the ''Add-ons'' entry in the Firefox Menu and select the ''Plugins'' tab.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Screenshot of webpage ===<br />
<br />
To use Firefox to take a screenshot of a webpage open the developer console using {{ic|Shift+F2}}. Then type in:<br />
<br />
screenshot ''filename''<br />
<br />
where ''filename'' is optional.<br />
<br />
To take a screenshot of the entire page, not just the section displayed on the screen, use the {{ic|--fullpage}} option:<br />
<br />
screenshot --fullpage ''filename''<br />
<br />
== Troubleshooting ==<br />
<br />
=== Firefox startup takes very long ===<br />
<br />
If Firefox takes much longer to start up than other browsers, it may be due to lacking configuration of the localhost in {{ic|/etc/hosts}}. See [[Network configuration#Local network hostname resolution]] on how to set it up. <br />
<br />
=== Font troubleshooting ===<br />
<br />
See [[Font configuration]].<br />
<br />
=== Setting an email client ===<br />
<br />
Inside the browser, {{ic|mailto}} links by default are opened by a web application such as Gmail or Yahoo Mail. To set an external email program, go to ''Preferences > Applications'' and modify the ''action'' corresponding to the {{ic|mailto}} content type; the file path will need to be designated (e.g. {{ic|/usr/bin/kmail}} for Kmail).<br />
<br />
Outside the browser, {{ic|mailto}} links are handled by the {{ic|x-scheme-handler/mailto}} mime type, which can be easily configured with [[xdg-mime]]. See [[Default applications]] for details and alternatives.<br />
<br />
=== File association ===<br />
<br />
See [[Default applications]].<br />
<br />
==== File association problems ====<br />
<br />
{{Expansion|Mention {{ic|xdg-open}} trick in {{ic|Preferences > Applications}}, and possible mistakes with {{ic|octet/binary-stream}} [https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/918019/comments/12]}}<br />
<br />
{{Deletion|1={{Pkg|firefox}} does not use {{Pkg|libgnome}} for version 50 and later. Waiting for Firefox 50 and then remove it. See [https://bugzilla.mozilla.org/show_bug.cgi?id=694570 this bug] for detail.}}<br />
<br />
For non-[[GNOME]] users, Firefox may not associate file types properly or at all (in the "Open With" part of the download dialog). Installing {{Pkg|libgnome}} amends the problem.<br />
<br />
See also [http://alien.slackbook.org/blog/make-firefox-understand-downloaded-files/].<br />
<br />
=== Firefox keeps creating ~/Desktop even when this is not desired ===<br />
<br />
Firefox uses {{ic|~/Desktop}} as the default place for download and upload files. To change it to another folder, set the {{ic|XDG_DESKTOP_DIR}} option as explained in [[XDG user directories]].<br />
<br />
=== Make plugins respect blocked pop-ups ===<br />
<br />
Some plugins can misbehave and bypass the default settings, such as the Flash plugin. You can prevent this by doing the following:<br />
<br />
# Type {{ic|about:config}} into the address bar.<br />
# Right-click on the page and select {{ic|New}} and then {{ic|Integer}}.<br />
# Name it {{ic|privacy.popups.disable_from_plugins}}.<br />
# Set the value to 2.<br />
<br />
The possible values are:<br />
* '''0''': Allow all popups from plugins.<br />
* '''1''': Allow popups, but limit them to dom.popup_maximum.<br />
* '''2''': Block popups from plugins.<br />
* '''3''': Block popups from plugins, even on whitelisted sites.<br />
<br />
=== Middle-click errors ===<br />
<br />
A common error message you can get while using the middle mouse button in Firefox is:<br />
The URL is not valid and cannot be loaded.<br />
<br />
Another symptom is that middle-clicking results in unexpected behavior, like accessing a random web page.<br />
<br />
The reason stems from the use of the middle mouse buttons in UNIX-like operating systems. The middle mouse button is used to paste whatever text has been highlighted/added to the clipboard. Then there is the possibly conflicting feature in Firefox, which defaults to loading the URL of the corresponding text when the button is depressed. This can be easily disabled by going to {{ic|about:config}} and setting the {{ic|middlemouse.contentLoadURL}} option to '''false'''.<br />
<br />
Alternatively, having the traditional scroll cursor on middle-click (default behavior on Windows browsers) can be achieved by searching for {{ic|general.autoScroll}} and setting it to '''true'''.<br />
<br />
=== Backspace does not work as the 'Back' button ===<br />
<br />
As per [http://ubuntu.wordpress.com/2006/12/21/fix-firefox-backspace-to-take-you-to-the-previous-page/ this article], the feature has been removed in order to fix a bug. To re-introduce the original behavior go to {{ic|about:config}} and set the {{ic|browser.backspace_action}} option to '''0''' (zero).<br />
<br />
=== Firefox does not remember login information ===<br />
<br />
It may be due to a corrupted {{ic|cookies.sqlite}} file in [http://support.mozilla.com/en-US/kb/Profiles#How_to_find_your_profile Firefox's profile] folder. In order to fix this, just rename or remove {{ic|cookie.sqlite}} while Firefox is not running.<br />
<br />
Open a terminal of choice and type the following:<br />
$ cd ~/.mozilla/firefox/xxxxxxxx.default/<br />
$ rm -f cookies.sqlite<br />
{{Note|xxxxxxxx represents a random string of 8 characters.}}<br />
<br />
Restart Firefox and see if it solved the problem.<br />
<br />
=== Unreadable input fields with dark GTK+ themes ===<br />
<br />
{{Merge|Firefox tweaks#Appearance|Anything on that page might be in troubleshooting section as well, so let us keep the info in one place.}}<br />
<br />
When using a dark [[GTK+]] theme, one might encounter Internet pages with unreadable input and text fields (e.g. Amazon can have white text on white background). This can happen because the site only sets either background or text color, and Firefox takes the other one from the theme.<br />
<br />
A work around is to explicitly setting standard colors for all web pages in {{ic|~/.mozilla/firefox/xxxxxxxx.default/chrome/userContent.css}} or using [https://addons.mozilla.org/firefox/addon/stylish/ stylish add-on].<br />
<br />
The 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:<br />
<br />
{{Note|If you want {{ic|urlbar}} and {{ic|searchbar}} to be {{ic|white}} remove the two first {{ic|:not}} css selectors.}}<br />
{{bc|<br />
1=input:not(.urlbar-input):not(.textbox-input):not(.form-control):not([type='checkbox']) {<br />
-moz-appearance: none !important;<br />
background-color: white;<br />
color: black;<br />
}<br />
<br />
#downloads-indicator-counter {<br />
color: white;<br />
}<br />
<br />
textarea {<br />
-moz-appearance: none !important;<br />
background-color: white;<br />
color: black;<br />
}<br />
<br />
select {<br />
-moz-appearance: none !important;<br />
background-color: white;<br />
color: black;<br />
}<br />
}}<br />
<br />
Another workaround is to force Firefox to use a light theme (e.g. "Adwaita:light"):<br />
<br />
# Copy {{ic|/usr/share/applications/firefox.desktop}} to {{ic|~/.local/share/applications/firefox.desktop}} and replace all occurrences of {{ic|1=Exec=firefox}} with {{ic|1=Exec=env GTK_THEME=Adwaita:light firefox}}.<br />
# Close all running instances of Firefox and restart your window manager/desktop environment.<br />
<br />
=== "Do you want Firefox to save your tabs for the next time it starts?" dialog does not appear ===<br />
<br />
From the [http://support.mozilla.com/en-US/questions/767751 Mozilla support] site:<br />
<br />
# Type {{ic|about:config}} in the address bar.<br />
# Set {{ic|browser.warnOnQuit}} to '''true'''.<br />
# Set {{ic|browser.showQuitWarning}} to '''true'''.<br />
<br />
=== Silently fails when installing desktop apps from marketplace ===<br />
<br />
Installation of apps from firefox os marketplace will silently fail if there is no {{ic|~/.local/share/applications}} folder.<br />
<br />
=== Firefox detects the wrong version of my plugin ===<br />
<br />
When you close Firefox, the latter saves the current timestamp and version of your plugins inside {{ic|pluginreg.dat}} located in your profile folder, typically in {{ic|~/.mozilla/firefox/''some name''.default/}}.<br />
<br />
If you upgraded your plugin when Firefox was still running, you will thus have the wrong information inside that file. The next time you will restart Firefox you will get that message {{ic|Firefox has prevented the outdated plugin "XXXX" from running on ...}} when you will be trying to open content dedicated to that plugin on the web. This problem often appears with the official [[Browser plugins#Flash Player|Adobe Flash Player plugin]] which has been upgraded while Firefox was still running.<br />
<br />
The solution is to remove the file {{ic|pluginreg.dat}} from your profile and that is it. Firefox will not complain about the missing file as it will be recreated the next time Firefox will be closed.<br />
[https://bugzilla.mozilla.org/show_bug.cgi?id=1109795#c16]<br />
<br />
=== Javascript context menu does not appear on some sites ===<br />
<br />
In {{ic|about:config}}, unset the {{ic|dom.w3c_touch_events.enabled}} setting.<br />
<br />
=== Firefox does not remember default spell check language ===<br />
<br />
The default spell checking language can be set as follows:<br />
<br />
# Type {{ic|about:config}} in the address bar.<br />
# Set {{ic|spellchecker.dictionary}} to your language of choice, for instance {{ic|en_GB}}.<br />
# Notice that the for dictionaries installed as a Firefox plugin the notation is {{ic|en-GB}}, and for {{Pkg|hunspell}} dictionaries the notation is {{ic|en_GB}}.<br />
<br />
When you only have system wide dictionaries installed with {{Pkg|hunspell}}, Firefox might not remember your default dictionary language settings. This can be fixed by having at least one [https://addons.mozilla.org/firefox/language-tools/ dictionary] installed as a Firefox plugin. Notice that now you will also have a tab '''Dictionaries''' in '''add-ons'''.<br />
<br />
Related questions on the '''StackExchange''' platform: [http://stackoverflow.com/questions/26936792/change-firefox-spell-check-default-language/29446115], [http://stackoverflow.com/questions/21542515/change-default-language-on-firefox/29446353], [http://askubuntu.com/questions/184300/how-can-i-change-firefoxs-default-dictionary/576877]<br />
<br />
Related bug reports: [https://bugzilla.mozilla.org/show_bug.cgi?id=776028 Bugzilla 776028], [https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1026869 Ubuntu bug 1026869]<br />
<br />
=== Some MathML symbols are missing ===<br />
<br />
You need some Math fonts, namely Latin Modern Math and STIX (see this MDN page: [https://developer.mozilla.org/en-US/docs/Mozilla/MathML_Project/Fonts#Linux]), to display MathML correctly.<br />
<br />
In Arch Linux, these fonts are provided by {{Pkg|texlive-core}} '''and''' {{Pkg|texlive-fontsextra}}, but they are not available to fontconfig by default. See [[TeX Live#Fonts]] for details. You can also try other [[Fonts#Math|Math fonts]].<br />
<br />
=== Picture flickers while scrolling ===<br />
{{Accuracy|Most likely a driver issue, useless without reference}}<br />
{{Note|Problem available in some MATE desktops}}<br />
Uncheck the "smooth scrolling" settings:<br />
Edit > Settings > Advanced > General > Use smooth scrolling<br />
<br />
=== Tearing video in fullscreen mode ===<br />
<br />
If you are using the Xorg Intel or Nouveau drivers and experience tearing video in fullscreen mode, try [[Firefox tweaks#Enable OpenGL Off-Main-Thread Compositing (OMTC)]].<br />
<br />
=== Firefox looks bad with GTK+ >=3.20 ===<br />
<br />
Firefox (as of version 47) [https://bugzilla.mozilla.org/show_bug.cgi?id=1264079 does not support] GTK+ >=3.20 and may look unsightly as a result. A possible resolution is compiling Firefox against GTK2 instead, see {{AUR|firefox-gtk2}}. Alternatively, you may use [[Unofficial_user_repositories#markzz|markzz's repository]] or [[Unofficial_user_repositories#archlinuxcn|archlinuxcn's]] (x86_64 only) for pre-built GTK2 Firefox packages.<br />
<br />
== See also ==<br />
<br />
* [http://www.mozilla.org/firefox/ Official website]<br />
* [http://www.mozilla.org/ Mozilla Foundation]<br />
* [https://wiki.mozilla.org/Firefox Firefox wiki]<br />
* [https://addons.mozilla.org/ Firefox Add-ons]<br />
* [https://addons.mozilla.org/firefox/themes/ Firefox themes]</div>Blackouthttps://wiki.archlinux.org/index.php?title=GNOME&diff=337091GNOME2014-09-24T10:19:02Z<p>Blackout: </p>
<hr />
<div>[[Category:GNOME]]<br />
[[cs:GNOME]]<br />
[[de:GNOME]]<br />
[[es:GNOME]]<br />
[[fr:GNOME]]<br />
[[it:GNOME]]<br />
[[ja:GNOME]]<br />
[[nl:GNOME]]<br />
[[pl:GNOME]]<br />
[[pt:GNOME]]<br />
[[ru:GNOME]]<br />
[[sr:GNOME]]<br />
[[th:GNOME]]<br />
[[tr:Gnome Masaüstü Ortamı]]<br />
[[uk:GNOME]]<br />
[[zh-CN:GNOME]]<br />
[[zh-TW:GNOME]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Window manager}}<br />
{{Related|GTK+}}<br />
{{Related|GDM}}<br />
{{Related|GNOME Files}}<br />
{{Related|Gedit}}<br />
{{Related|GNOME Web}}<br />
{{Related|GNOME Flashback}}<br />
{{Related|Cinnamon}}<br />
{{Related|MATE}}<br />
{{Related articles end}}<br />
[http://www.gnome.org/ GNOME] is a [[desktop environment]] developed by The GNOME Project.<br />
<br />
GNOME 3 has ''two'' sessions:<br />
<br />
*'''GNOME''' is the default, innovative layout.<br />
*'''GNOME Classic''' is a traditional desktop layout, similar to the GNOME 2 user interface whilst using GNOME 3 technologies. It does so through the use of pre-activated extensions and parameters (see [http://worldofgnome.org/welcome-to-gnome-3-8-flintstones-mode/ here] for a list). Hence it is more of a customized GNOME Shell than a truly distinct mode.<br />
<br />
Both of them use GNOME Shell, a desktop shell and plugin of the Mutter window manager. Mutter acts as a composite manager for the desktop, employing hardware graphics acceleration to provide effects aimed at reducing screen clutter. GNOME session manager automatically detects if your video driver is capable of running GNOME Shell and if not, falls back to software rendering using llvmpipe.<br />
<br />
== Installation ==<br />
<br />
GNOME 3 is available in the [[official repositories]] and can be [[pacman|installed]] with one of the following:<br />
*The {{Pkg|gnome-shell}} package provides a minimal desktop shell.<br />
*The {{Grp|gnome}} group contains the core desktop environment and applications required for the standard GNOME experience.<br />
*The {{Grp|gnome-extra}} group contains various optional tools such as an editor, an archive manager, a disk burner, a mail client, games, development tools and other non-critical applications that integrate well with the GNOME desktop. Installing just the {{Grp|gnome-extra}} group will not pull in the whole {{Grp|gnome}} group via dependencies. If you want to install all GNOME packages then you will need to explicitly install both groups.<br />
<br />
== Starting GNOME ==<br />
<br />
'''Graphical log-in'''<br />
<br />
For the best desktop integration, [[GDM]] (the GNOME [[Display manager]]) is recommended. GDM is installed as part of the {{grp|gnome}} group and can be used by enabling {{ic|gdm.service}} [[systemd#Using units|using systemd]].<br />
<br />
Other display managers can be used in place of GDM if desired.<br />
<br />
{{note|Native support for screenlocking in GNOME is provided by GDM. If you choose to not use GDM you will need to use a different screenlocking program such as [[XScreenSaver]].}} <br />
<br />
'''Starting GNOME manually'''<br />
<br />
If you prefer to start GNOME manually from the console, add the following line to your {{ic|~/.xinitrc}} file:<br />
{{hc|~/.xinitrc|<nowiki><br />
exec gnome-session<br />
</nowiki>}}<br />
<br />
Or {{ic|exec env GNOME_SHELL_SESSION_MODE&#61;classic gnome-session --session gnome-classic}} for GNOME Classic. After editing your {{ic|~/.xinitrc}}, GNOME can be launched by typing {{ic|startx}}.<br />
<br />
See [[xinitrc]] for details, such as preserving the logind session.<br />
<br />
After setting up your {{ic|~/.xinitrc}} file you can also arrange to [[Start X at Login]] so that you don't have to run {{ic|startx}} manually.<br />
<br />
== Using the shell ==<br />
<br />
=== GNOME Cheat Sheet ===<br />
<br />
The [https://wiki.gnome.org/Projects/GnomeShell/CheatSheet GNOME Shell Cheat Sheet] on the GNOME Wiki explains task switching, keyboard use, window control, the panel, overview mode, and more.<br />
<br />
=== Restarting the shell ===<br />
<br />
After appearance tweaks you are often asked to restart the GNOME shell. You could log out and log back in, but it is simpler and faster to issue the following keyboard command. Restart the shell by pressing {{ic|Alt}} + {{ic|F2}} then {{ic|r}} then {{ic|Enter}}<br />
<br />
=== Shell crashes ===<br />
<br />
Certain tweaks and/or repeated shell restarts may cause the shell to crash when a restart is attempted. In this case, you are informed about the crash and then forced to log out. Some shell changes cannot be accomplished via a keyboard restart; you must log out and log back in to effect them.<br />
<br />
{{note|Valuable documents should be saved (and perhaps closed) before attempting a shell restart. It is not strictly necessary; open windows and documents usually remain intact after a shell restart however there is a risk that data could be lost if documents are not saved.}}<br />
<br />
=== Shell freezes ===<br />
<br />
Sometimes shell extensions freeze the GNOME Shell. In this case a possible strategy is to switch to another terminal via {{ic|Ctrl+Alt+F2}} through {{ic|Ctrl+Alt+F6}}, log in, and restart gnome-shell with:<br />
<br />
# pkill -HUP gnome-shell<br />
<br />
All open applications will still be available after restarting the shell.<br />
<br />
Sometimes, however, merely restarting the shell might not be enough. Then you will have to restart X, losing all work in progress. You can restart X by:<br />
<br />
# pkill X<br />
<br />
The GNOME Shell then restarts automatically.<br />
<br />
If this does not work, you can try to restart your login manager. For instance, if you use GDM, try:<br />
<br />
# systemctl restart gdm.service<br />
<br />
{{Tip|You can also use '''htop''' in tty; press ''t'', select the ''gnome-shell'' tree, press ''k'' and send ''SIGKILL''.}}<br />
<br />
== Pacman integration: GNOME PackageKit ==<br />
{{Warning|1=As of Gnome 3.12 the pacman integration with packagekit is very outdated. It will be updated, fixed and working in GNOME 3.14.[http://www.phoronix.com/scan.php?page=news_item&px=MTc4NDQ]}}<br />
<br />
GNOME has its own Pacman GUI: {{Pkg|gnome-packagekit}}.<br />
<br />
Using the [https://www.archlinux.org/pacman/libalpm.3.html alpm] backend, it supports the following features:<br />
<br />
* Install and remove packages from the repos.<br />
* Periodically refresh package databases and prompt for updates.<br />
* Install packages from tarballs.<br />
* Search for packages by name, description, category or file.<br />
* Show package dependencies, files and reverse dependencies.<br />
* Ignore IgnorePkgs and hold HoldPkgs.<br />
* Report optional dependencies, .pacnew files, etc.<br />
<br />
You can change the {{ic|remove}} operation from -Rc to -Rsc by setting the DConf key {{ic|org.gnome.packagekit.enable-autoremove}}.<br />
<br />
=== Packages updates notifications ===<br />
<br />
If you want GNOME to check automatically for updates, you must install {{AUR|gnome-settings-daemon-updates}} from the official repository.<br />
<br />
== Customizing GNOME appearance ==<br />
<br />
The ''Systems Settings'' tool (provided by {{pkg|gnome-control-center}}) is a simple and streamlined panel which covers most basic settings. <br />
<br />
More elaborate graphical customization (such as modifying fonts, themes, titlebar buttons and such) can be done using the graphical ''GNOME tweak tool''. {{Pkg|gnome-tweak-tool}} is available from the [[official repositories]]. See [[#Theming]] below for more information about the subject.<br />
<br />
More extensive customisation may require more low-level configuration, using [[#gsettings and dconf]].<br />
<br />
==== Theming ====<br />
<br />
To install a new theme or icon set, put it in {{ic|~/.local/share/themes}} or {{ic|~/.local/share/icons}}. You can then activate it using ''GNOME tweak tool'', that is described above.<br />
<br />
Alternatively, you can set a GTK (icon) theme via {{ic|~/.config/gtk-3.0/settings.ini}}. In this file you can set the GTK theme ({{ic|gtk-theme-name}}), the icon theme ({{ic|gtk-icon-theme-name}}), the font ({{ic|gtk-font-name}}) and more.<br />
<br />
''Adwaita,'' the default GNOME 3 theme, is a part of {{pkg|gnome-themes-standard}}. Additional GTK3 themes can be found at [http://browse.deviantart.com/customization/skins/linuxutil/desktopenv/gnome/gtk3/ Deviantart web site]. For example:<br />
{{hc|~/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-theme-name = Adwaita<br />
# next option is applicable only if selected theme supports it<br />
gtk-application-prefer-dark-theme = true<br />
# set font name and dimension<br />
gtk-font-name = Sans 10<br />
</nowiki>}}<br />
<br />
It is necessary to restart the GNOME shell for settings to be applied. More GTK options are found at [http://developer.gnome.org/gtk3/3.0/GtkSettings.html#GtkSettings.properties GNOME developer documentation].<br />
<br />
==== gsettings and dconf ====<br />
<br />
dconf is a data store used by GNOME to store its settings. It can be edited with the graphical {{ic|dconf-editor}} or the command line {{ic|gsettings}} tool. See [http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html Customizing the GNOME Shell] for a tutorial on using gsettings.<br />
<br />
=== Customize top bar ===<br />
<br />
==== Show date in top bar ====<br />
<br />
By default GNOME displays only the weekday and time in the top bar. This can be changed with the following command. Changes take effect immediately. <br />
<br />
# gsettings set org.gnome.desktop.interface clock-show-date true<br />
<br />
==== Eliminate delay when logging out ====<br />
<br />
The following tweak removes the confirmation dialog and sixty second delay for logging out.<br />
<br />
This dialog normally appears when you log out with the status menu. This tweak affects the '''''Power Off''''' dialog as well. This is not a system-wide change; it affects only the user who enters this command. The change takes effect immediately after entering the command:<br />
<br />
$ gsettings set org.gnome.SessionManager logout-prompt 'false'<br />
<br />
==== Show system monitor ====<br />
<br />
The [https://extensions.gnome.org/extension/120/system-monitor/ system-monitor] extension is included in the {{pkg|gnome-shell-extensions}} package. The git version is available as {{AUR|gnome-shell-system-monitor-applet-git}} in the [[AUR]].<br />
<br />
==== Show weather information ====<br />
<br />
The [https://extensions.gnome.org/extension/613/weather/ Weather] extension can be installed from [https://extensions.gnome.org/extension/613/weather/ the official extension website]. The git version is available as {{AUR|gnome-shell-extension-weather-git}} in the [[AUR]].<br />
<br />
=== Activity view ===<br />
<br />
==== Remove entries from Applications view ====<br />
<br />
Like most desktop environments, GNOME uses .desktop files to populate its Applications view. These text files are located in the '''{{ic|/usr/share/applications}}''' folder. It is not possible to edit these files from a folder view ‒ Files does not treat their icons as text files. Use a terminal to display or edit .desktop file entries. You will need root privileges to edit the .desktop files.<br />
<br />
# ls /usr/share/applications<br />
# nano /usr/share/applications/foo.desktop<br />
<br />
For system wide changes, edit files in '''{{ic|/usr/share/applications}}'''. For local changes, make a copy of ''foo.desktop'' in your home folder.<br />
<br />
$ cp /usr/share/applications/foo.desktop ~/.local/share/applications/<br />
<br />
Edit .desktop files to fit your wishes. <br />
<br />
{{Note|Removing a .desktop file does not uninstall an application, but instead removes its desktop integration: MIME types, shortcuts, and so forth.}}<br />
<br />
To hide an application launcher open its .desktop file in a text editor and add the following line:<br />
<br />
NoDisplay=true<br />
<br />
==== Sort applications into folders ====<br />
<br />
Gnome 3.12 allows the user to sort applications into folders. A GUI for this is provided by Gnome Software, which Arch does not package (due to PackageKit incompatibilities). However, applications can still be sorted into folders manually via dconf. To add a folder, navigate via dconf to '''{{ic|org.gnome.desktop.app-folders}}''' and set the value of '''{{ic|folder-children}}''' to an array of comma separated folder names:<br />
<br />
['Utilities', 'Sundry']<br />
<br />
To add applications to these folders, use '''{{ic|gsettings}}''':<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ apps "['alacarte.desktop', 'dconf-editor.desktop']"<br />
<br />
This adds the applications corresponding to '''{{ic|alacarte.desktop}}''' and '''{{ic|dconf-editor.desktop}}'''' to the Sundry folder.<br />
<br />
This will also create the folder '''{{ic|org.gnome.desktop.app-folders.folders.Sundry}}'''. The constituents of the folder can be updated from dconf or from '''{{ic|gsettings}}''', by appending applications to the list.<br />
<br />
To name the folder (if it has no name it will simply appear at the top of the applications), set the name key via '''{{ic|gsettings}}''':<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ name "Sundry"<br />
<br />
Applications can also be sorted by their category (specified in their '''{{ic|.desktop}}''' file):<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ categories "['Office']"<br />
<br />
If certain applications matching a category are not wanted in a certain folder, exclusions can be set:<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ excluded-apps "['libreoffice-draw.desktop']"<br />
<br />
For further information, refer to the [https://git.gnome.org/browse/gsettings-desktop-schemas/tree/schemas/org.gnome.desktop.app-folders.gschema.xml.in.in app-folders schema].<br />
<br />
==== Change icon size ====<br />
<br />
{{Accuracy|1=The path {{ic|/usr/share/gnome-shell/js/ui/*}} and contained javascript configuration files mentioned in the section do not exist anymore.}} <br />
<br />
===== For applications in activity view =====<br />
<br />
To change the application icon size it is necessary to edit the GNOME-Shell theme.<br />
<br />
You can edit system files directly (make a backup first) or copy theme files to your local folder and edit these files.<br />
<br />
* For '''user themes''', edit '''{{ic|/usr/share/themes/<UserTheme>/gnome-shell/gnome-shell.css}}'''<br />
<br />
Edit ''gnome-shell.css'' and replace the following values. Afterward, [[#Restarting the shell|restart the GNOME shell]].<br />
<br />
{{hc|gnome-shell.css|<nowiki><br />
...<br />
/* Application Launchers and Grid */<br />
<br />
.icon-grid {<br />
spacing: 18px;<br />
-shell-grid-horizontal-item-size: 82px;<br />
-shell-grid-vertical-item-size: 82px;<br />
}<br />
<br />
.icon-grid .overview-icon {<br />
icon-size: 48px;<br />
}<br />
...<br />
</nowiki>}}<br />
<br />
===== In dash =====<br />
<br />
GNOME's Activities view has a dash on the left hand side, the size of the icons in this dash will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/dash.js}}.<br />
<br />
{{hc|dash.js|<nowiki><br />
...<br />
<br />
let iconSizes = [ 16, 22, 24, 32, 48, 64 ];<br />
<br />
...<br />
</nowiki>}}<br />
<br />
===== For switcher (alt-tab) =====<br />
<br />
GNOME comes with a built in task switcher, the size of the icons in this task switcher will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/altTab.js}}<br />
<br />
{{hc|altTab.js|<nowiki><br />
...<br />
<br />
const iconSizes = [96, 64, 48, 32, 22];<br />
<br />
...<br />
</nowiki>}}<br />
<br />
===== For system tray =====<br />
<br />
GNOME comes with a built in system tray, visible when the mouse is hovered over the bottom right corner of the screen. The size of the icons in this tray is set to a fixed value of 24. To change this value, edit {{ic|/usr/share/gnome-shell/js/ui/messageTray.js}}<br />
{{hc|messageTray.js|<nowiki><br />
...<br />
<br />
ICON_SIZE: 24,<br />
<br />
...<br />
</nowiki>}}<br />
<br />
==== Disable hot corner hovering ====<br />
<br />
{{Accuracy|1=The path {{ic|/usr/share/gnome-shell/js/ui/*}} and contained {{ic|layout.js}}, {{ic|messageTray.js}} do not exist anymore.}}<br />
<br />
===== Activity view =====<br />
<br />
To disable automatic activity view when the hot corner is hovered, edit {{ic|/usr/share/gnome-shell/js/ui/layout.js}} (that was ''panel.js'' in GNOME 3.0.x) :<br />
{{hc|layout.js|<nowiki><br />
this._corner = new Clutter.Rectangle({ name: 'hot-corner',<br />
width: 1,<br />
height: 1,<br />
opacity: 0,<br />
reactive: true });icon-size: 48px;<br />
}<br />
</nowiki>}}<br />
and set {{ic|reactive}} to {{ic|false}}. GNOME Shell needs to be restarted.<br />
<br />
{{tip|There are also [[GNOME#GNOME_shell_extensions|GNOME Shell extensions]] that can be installed which will modify this behaviour.}}<br />
<br />
===== Message Tray =====<br />
<br />
The message tray is shown when the mouse hovers at the bottom of the screen for one second. To disable this behavior, comment out the following line in {{ic|/usr/share/gnome-shell/js/ui/messageTray.js}}:<br />
{{hc|messageTray.js|<nowiki><br />
//pointerWatcher.addWatch(TRAY_DWELL_CHECK_INTERVAL, Lang.bind(this, this._checkTrayDwell));<br />
</nowiki>}}<br />
GNOME Shell needs to be restarted. The message tray is still visible in activity view.<br />
<br />
=== Titlebar ===<br />
<br />
==== Reduce title bar height ====<br />
<br />
* ''' global''' - edit {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and reduce its value to a minimum of {{ic|0}}.<br />
* '''user-only''' - copy {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}} to {{ic|/home/$USER/.local/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and reduce its value to a minimum of {{ic|0}}.<br />
<br />
Then restart the GNOME shell. <br />
<br />
To restore the original values, [[pacman|install]] the package {{Pkg|gnome-themes-standard}} from the [[official repositories]] or remove {{ic|/home/$USER/.local/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}.<br />
<br />
==== Reorder titlebar buttons ====<br />
<br />
At present this setting can be changed through '''dconf-editor.'''<br />
<br />
For example, to move the close and minimize buttons to the left side of the titlebar, open '''dconf-editor''' and locate the '''''org.gnome.shell.overrides.button_layout''''' key. Change its value to '''{{ic|close,minimize:}}''' (colon symbol designates the spacer between left side and right side of the titlebar). Place the buttons in your preferred order. You cannot use a button more than once. Also, keep in mind that certain buttons are deprecated.<br />
<br />
For a more complete experience, one might need to set more values:<br />
<br />
gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:'<br />
gsettings set org.gnome.shell.overrides button-layout 'close,minimize,maximize:'<br />
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/DecorationLayout' <'close,minimize,maximize:'>}"<br />
<br />
The first entry sets the order for the ''Gnome window manager''. The second entry sets the order for the Gnome window manager when used together with ''Gnome Shell'' (the latter uses this key, which defaults to ':close', to override the previous non-Shell setting). The last one sets the order for [[GTK%2B#Client-side decorations]].<br />
<br />
==== Hide titlebar when maximized ====<br />
<br />
To hide titlebar when windows are maximised, open file {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for the following tag and change its properties, children and the properties of its children tags as follows:<br />
<br />
<frame_geometry name="max" has_title="false"<br />
hide_buttons="true"<br />
parent="normal"<br />
rounded_top_left="false"<br />
rounded_top_right="false"><br />
<distance name="left_width" value="0" /><br />
<distance name="right_width" value="0" /><br />
<distance name="left_titlebar_edge" value="0"/><br />
<distance name="right_titlebar_edge" value="0"/><br />
<distance name="title_vertical_pad" value="0"/><br />
<border name="title_border" left="0" right="0" top="0" bottom="0"/><br />
<border name="button_border" left="0" right="0" top="0" bottom="0"/><br />
<distance name="bottom_height" value="0" /><br />
</frame_geometry><br />
<br />
Once the file has been saved, restart GNOME shell by pressing {{ic|Alt + F2}} and then typing {{ic|r}}. After this tweak, you may find it difficult to un-maximize a window when there is no titlebar to grab.<br />
<br />
With suitable keybindings, you should be able to use {{ic|Alt + F5}}, {{ic|Alt + F10}} or {{ic|Alt + Space}} to remedy the situation.<br />
<br />
To prevent {{ic|metacity-theme-3.xml}} from being overwritten each time package {{pkg|gnome-themes-standard}} is upgraded, add its name to {{ic|/etc/pacman.conf}} with {{ic|NoUpgrade}}:<br />
<br />
{{hc|/etc/pacman.conf|<nowiki>... previous lines ...<br />
<br />
# Pacman will not upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
# IgnorePkg =<br />
# IgnoreGroup =<br />
<br />
NoUpgrade = usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml # Do not add a leading slash to the path<br />
<br />
... more lines ...</nowiki>}}<br />
<br />
To restore original Adwaita theme values, install the {{pkg|gnome-themes-standard}} package.<br />
<br />
== Miscellaneous settings ==<br />
<br />
=== Power Management ===<br />
<br />
==== Turn off Suspend-To-RAM (S3) when closing the LID ====<br />
This setting is not available in GNOME, ''gnome-control-center'' and ''dconf'' make this available. The current approach is to manage this on the level of [[systemd]]. Edit {{ic|/etc/systemd/logind.conf}}, uncomment the {{ic|HandleLidSwitch}} line and set it to {{ic|ignore}}:<br />
<br />
{{hc|/etc/systemd/logind.conf|HandleLidSwitch&#61;ignore}}<br />
<br />
See the [[Power management#ACPI_events]] article for more information.<br />
<br />
==== No reaction on lid close ====<br />
<br />
When configuring the lid close events via [[Power management#ACPI_events]], the settings may seem to have no effect. If you have an external monitor connected to your laptop, this is default GNOME behaviour. Disconnect the monitor and the settings should work, otherwise your {{ic|/etc/systemd/logind.conf}} may be incorrect.<br />
To change default behaviour open the {{ic|dconf-editor}} and change {{ic|org.gnome.settings-daemon.plugins.xrandr.default-monitors-setup}} to {{ic|"do-nothing"}}.<br />
<br />
==== Change Critical Battery Level Action (for Laptops) ====<br />
<br />
The ''System Settings'' panel only allows the user to choose between ''Suspend'' or ''Hibernate''. To choose another option such as ''Do Nothing'' open the {{ic|dconf-editor}} and navigate to {{ic|org.gnome.settings-daemon.plugins.power}}. Edit the {{ic|"critical-battery-action"}} value to {{ic|"nothing"}}.<br />
<br />
=== Switch back scrolling behavior ===<br />
If you do not like the new scrollbar behavior just put {{ic|<nowiki>gtk-primary-button-warps-slider = false</nowiki>}} under the {{ic|<nowiki>[Settings]</nowiki>}} section in {{ic|~/.config/gtk-3.0/settings.ini}}:<br />
<br />
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-primary-button-warps-slider = false<br />
...<br />
</nowiki>}}<br />
<br />
=== Autostarting / Automatic program launch upon logging in ===<br />
<br />
As of Gnome 3.12 ''gnome-session-properties'' is deprecated. Specify which programs must start automatically after logging in using ''gnome-tweak-tool'' or via the manual method described [http://linuxandfriends.com/how-to-add-startup-programs-in-gnome-3/ here].<br />
<br />
{{Tip|Some users are unable to add autostart applications when {{ic|gnome-tweak-tool}} is launched from Gnome's overview. Launching it from a terminal sometimes fixes this. This issue can also be resolved by making changes described in this [https://bbs.archlinux.org/viewtopic.php?pid&#61;1414443#p1414443 post]. But users will still be unable to add any custom autostart programs such as scripts. <br> {{AUR|gnome-session-properties}} is still available in the [[AUR]].}}<br />
<br />
=== Editing applications menu ===<br />
<br />
{{pkg|alacarte}} provides a more complete menu editor for adding/editing menu entries.<br />
<br />
=== Gnome Terminal ===<br />
<br />
==== Inner padding ====<br />
<br />
To move the terminal output away from the window borders create the stylesheet {{ic|~/.config/gtk-3.0/gtk.css}} with the following setting:<br />
<br />
TerminalScreen {<br />
-VteTerminal-inner-border: 10px 10px 10px 10px;<br />
}<br />
<br />
==== Disable blinking cursor ====<br />
<br />
Since Gnome 3.8 and the migration to gsettings and dconf the key required to modify in order to disable the blinking cursor in the Terminal differs slightly in contrast to the old gconf key. To disable the blinking cursor in Gnome 3.8 use:<br />
<br />
gsettings set org.gnome.desktop.interface cursor-blink false<br />
<br />
If you prefer dconf to the gsettings CLI then open {{ic|dconf-editor}}, go to org -> gnome -> desktop -> interface and untick the option labelled '''cursor-blink'''.<br />
<br />
To disable the blinking cursor in Terminal only use (make sure profile uid is correct one):<br />
<br />
dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/cursor-blink-mode "'off'"<br />
<br />
==== Make new tabs inherit current directory (for Gnome Terminal 3.8+) ====<br />
<br />
In Gnome 3.8, the behaviour of how current directories are tracked has changed. To restore this behaviour, you need to source the {{ic|/etc/profile.d/vte.sh}} file, put this in your {{ic|~/.bashrc}} or {{ic|~/.zshrc}} for zsh users:<br />
<br />
source /etc/profile.d/vte.sh<br />
<br />
For more information refer to the [https://wiki.gnome.org/action/show/Apps/Terminal/FAQ?action=show&redirect=Terminal%252FFAQ#How_can_I_make_new_terminals_start_in_the_working_directory_of_the_current_terminal.3F Gnome wiki].<br />
<br />
=== Move dialog windows ===<br />
The default configuration for dialogs will not allow you to move them which causes problems in some cases. To change this you will need to use gconf-editor and change this setting:<br />
<br />
/desktop/gnome/shell/windows/attach_modal_dialogs<br />
<br />
After the change you will need to restart the shell for it to take affect.<br />
<br />
=== GNOME shell extensions ===<br />
<br />
GNOME Shell can be customized with extensions. These provide features such as a dock or a widget for changing the theme.<br />
<br />
Many extensions are collected and hosted by [https://extensions.gnome.org/ extensions.gnome.org]. They can be browsed and installed simply activating them in the browser. More information about gnome shell extensions can be found [https://extensions.gnome.org/about/ here].<br />
<br />
See [[#When an extension breaks GNOME|when an extension breaks GNOME]] for troubleshooting information.<br />
<br />
=== Default Applications ===<br />
<br />
While one can right click any file and set the default applications in 'Preferences', the settings are actually saved in {{ic | $HOME/.local/share/applications/mimeapps.list}} and {{ic| $HOME/.local/share/applications/mimeinfo.cache}}.<br />
<br />
{{tip|If you are making the change systemwide you may to create the {{ic|/usr/share/applications/mimeapps.list}} file yourself.}}<br />
<br />
==== File browser/replace Files ====<br />
<br />
You can specify a different file manager in the ''mimeapps.list'' file as shown below:<br />
<br />
'''User only''': add the line {{ic|<nowiki>inode/directory=myfilemanager.desktop</nowiki>}} to {{ic|~/.local/share/applications/mimeapps.list}}<br />
<br />
'''Systemwide''': add the line {{ic|<nowiki>inode/directory=myfilemanager.desktop</nowiki>}} to {{ic|/usr/share/applications/mimeapps.list}}<br />
<br />
Where my filemanager.desktop is the correct .desktop file for the file manager of your choice.<br />
<br />
Alternatively you can trick GNOME into using another file browser by editing the {{ic|Exec}} line in {{ic|/usr/share/applications/nautilus.desktop}}. See the correct parameters in the {{ic|.desktop}} file of the file manager of your choice, e.g.:<br />
<br />
{{hc|/usr/share/applications/nautilus.desktop|<br />
2=[...]<br />
Exec=thunar %F<br />
OR<br />
Exec=pcmanfm %U<br />
OR<br />
Exec=nemo %U<br />
[...]<br />
}}<br />
<br />
==== PDF viewer ====<br />
<br />
In some cases when you have installed Inkscape or other graphic programs Evince Document Viewer might no longer be selected as the default PDF application. If it is not available in the '''Open With''' entry which would be the GUI solution, you can use the following user command to make it the default application again:<br />
<br />
xdg-mime default evince.desktop application/pdf<br />
<br />
=== Middle mouse button ===<br />
<br />
By default, GNOME 3 disables middle mouse button emulation regardless of [[Xorg]] settings ('''Emulate3Buttons'''). To enable middle mouse button emulation use:<br />
<br />
$ gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true<br />
<br />
=== Display dimming ===<br />
<br />
By default GNOME 3 has a ten second idle timeout to dim the screen regardless of the battery and AC state:<br />
<br />
# gsettings get org.gnome.settings-daemon.plugins.power idle-dim-time<br />
<br />
To set a new value type the following<br />
<br />
# gsettings set org.gnome.settings-daemon.plugins.power idle-dim-time <int><br />
<br />
where <int> is the value in seconds.<br />
<br />
=== Changing hotkeys ===<br />
Certain hotkeys cannot be changed directly via the ''System Settings'' panel. In order to change these keys, use dconf-editor. An example of particular note is the hotkey Alt-Above_Tab. On US keyboards, this is Alt-`: is a hotkey often used in the [[Emacs]] editor. It can be changed by opening dconf-editor and modifying the ''switch-group'' key found in {{ic|org.gnome.desktop.wm.keybindings}}.<br />
<br />
It is possible to manually change the keys via an application's so-called accel map file. Where it is to be found is up to the application: For instance, Thunar's is at ~/.config/Thunar/accels.scm, whereas Files's is located at ~/.config/nautilus/accels and ~/.gnome2/accels/nautilus on old release.<br />
<br />
The file should contain a list of possible hotkeys, each unchanged line commented out with a leading ";" that has to be removed for a change to become active.<br />
For example to replace the hotkey used by Files to move files to the trash folder, change the line:<br />
<br />
; (gtk_accel_path "<Actions>/DirViewActions/Trash" "<Primary>Delete")<br />
to this:<br />
<br />
(gtk_accel_path "<Actions>/DirViewActions/Trash" "Delete")<br />
<br />
The file is regenerated regularly so do not comment the file. The uncommented line will stay but every comment you add will be lost.<br />
<br />
==== Hotkeys in Files 3.4 and older ====<br />
Firstly, use '''dconf-editor''' to place a checkmark next to {{ic|can-change-accels}} in the key named ''org.gnome.desktop.interface.''<br />
<br />
We will replace the hotkey — a.k.a. keyboard shortcut, keyboard accelerator — used by Files to move files to the trash folder.<br />
The default assignment is a somewhat-awkward {{ic|Ctrl+Delete}}.<br />
* Open Files, select any file, and click '''Edit''' on the menu bar.<br />
* Hover over the ''Move to Trash'' menu item.<br />
* While hovering, press {{ic|Delete}}. The current accelerator is now unset.<br />
* Press the key that you wish to become the new keyboard accelerator.<br />
* Press {{ic|Delete}} to make the new accelerator be the Delete key.<br />
Unless you select a file or folder, ''Move to Trash'' will be grayed-out. Finally, disable {{ic|can-change-accels}} to prevent accidental hotkey changes.<br />
<br />
=== Screencast recording ===<br />
<br />
Gnome features the built-in possbility to create screencasts easily. Thereby Control+Shift+Alt+R keybinding starts and stops the recording. A red circle is displayed in the bottom right corner of the screen when the recording is in progress. After the recording is finished, a file named 'Screencast from %d%u-%c.webm' is saved in the Videos directory. In order to use the screencast feature you need to have installed the gst plugins which are:<br />
<br />
$ pacman -Qs gst<br />
<br />
=== Modify Keyboard with XkbOptions ===<br />
<br />
Using the '''dconf-editor''', navigate to the key named {{ic|org.gnome.desktop.input-sources.xkb-options}} and add desired XkbOptions (e.g. ''caps:swapescape'') to the list.<br />
<br />
See {{ic|/usr/share/X11/xkb/rules/xorg}} for all XkbOptions and {{ic|/usr/share/X11/xkb/symbols/*}} for the respective descriptions.<br />
<br />
{{Note|To enable the {{ic|Ctrl+Alt+Backspace}} combination to terminate Xorg, use the {{Pkg|gnome-tweak-tool}} from [[official repositories]]. Within the '''Tweak Tool''', navigate to ''Typing > Terminate'' and select the option {{ic|Ctrl+Alt+Backspace}} from the dropdown menu.}}<br />
<br />
=== Toggle keyboard layouts ===<br />
Since Gnome does not consider any configuration in {{ic|/etc/X11/conf.d/*.conf}} you have to set the command for layout switching either via the control center with the options ''Switch to previous source'' and ''Switch to next source'' or if you want to use Alt - Shift combination you have to use the Gnome-Tweak-Tool and set ''Typing -> Modifiers-only input sources -> select Alt-shift''. For more information see also the forum [https://bbs.archlinux.org/viewtopic.php?id=152127 thread].<br />
<br />
=== HiDPI Support (Retina Screens) ===<br />
<br />
See [[HiDPI]].<br />
<br />
=== Other tips ===<br />
See [[GNOME tips]].<br />
<br />
== Tracker (search program) ==<br />
The {{Pkg|tracker}} provides the Tracker program, an indexing application. You can configure it with {{ic|tracker-preferences}}, and monitor status with {{ic|tracker-control}}. Once installed, indexing should start automatically when you log in. You can explicitly start indexing with {{ic|tracker-control -s}}. Search settings can also be configured in the ''System Settings'' panel.<br />
<br />
== Totem (movie player) ==<br />
<br />
Totem is a movie player based on [[GStreamer]]. For information about adding codecs or hardware acceleration, see [[GStreamer]].<br />
<br />
== Empathy (integrated messaging) and GNOME Online Accounts ==<br />
<br />
Empathy, the engine behind integrated messaging, GNOME Online Accounts, and all other system settings based on messaging accounts will not function correctly unless the {{grp|telepathy}} group of packages or at least one of the backends ({{pkg|telepathy-gabble}}, or {{pkg|telepathy-haze}}, for example) is installed.<br />
<br />
These packages are '''not''' included in either the {{grp|gnome}} or {{grp|gnome-extra}} groups . You can install the Telepathy and optionally any backends with:<br />
<br />
# pacman -S telepathy<br />
<br />
Without telepathy, Empathy will not open the account management dialog and can get stuck in this state. If this happens -- even after quitting Empathy cleanly -- the {{ic|/usr/bin/empathy-accounts}} application can remain running and will need to be killed before you can add any new accounts. Likewise, without telepathy installed, the 'Add an online account' button in GNOME Online Accounts will do nothing.<br />
<br />
View descriptions of telepathy components on the [http://telepathy.freedesktop.org/wiki/Components freedesktop.org telepathy wiki].<br />
<br />
[[Avahi]] daemon is required for connecting with the People Nearby account, and also in order for some desktop extensions to work correctly like [https://extensions.gnome.org/extension/746/chat-status/ Chat Status].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Cannot change settings in dconf-editor ===<br />
<br />
When one cannot set settings in {{pkg|dconf}}, it is possible their dconf user settings are corrupt. In this case it is best to delete the user dconf files in {{ic|~/.config/dconf/user*}} and set the settings in dconf-editor after.<br />
<br />
=== Extensions ===<br />
<br />
==== When an extension breaks GNOME ====<br />
<br />
When enabling shell extensions causes GNOME breakage, you should first remove the ''user-theme'' and ''auto-move-windows'' extensions from their installation directory.<br />
<br />
The installation directory could be one of {{ic|~/.local/share/gnome‑shell/extensions}}, {{ic|/usr/share/gnome‑shell/extensions}} or {{ic|/usr/local/share/gnome‑shell/extensions}}. Removing these two extension-containing folders may fix the breakage. Otherwise, isolate the problem extension with trial‑and‑error.<br />
<br />
Removing or adding an extension-containing folder to the aforementioned directories removes or adds the corresponding extension to your system. Details on GNOME Shell extensions are available at the [https://live.gnome.org/GnomeShell/Extensions GNOME web site.]<br />
<br />
==== Extensions do not work after GNOME 3 update ====<br />
<br />
Locate the folder where your extensions are installed. It might be {{ic|~/.local/share/gnome-shell/extensions}} or {{ic|/usr/share/gnome-shell/extensions}}.<br />
<br />
Edit each occurrence of {{ic|metadata.json}} which appears in each extension sub-folder.<br />
<br />
{| border="0"<br />
| Insert: || {{ic|"shell-version": ["3.6"]}}<br />
|-<br />
| Instead of (for example): || {{ic|"shell-version": ["3.4"]}}<br />
|}<br />
<br />
{{ic|"3.x"}} indicates the extension works with every shell version. If it breaks, you will know to change it back.<br />
<br />
==== Remove Gnome Shell Extensions ====<br />
<br />
If you have trouble with uninstalling Gnome Extensions via https://extensions.gnome.org/local/, then probably they have been installed as system-wide extensions with {{ic|pacman -S gnome-shell-extensions}} before. To remove them, you have to be careful, because the following instruction removes all extensions from other user's, too:<br />
<br />
# pacman -R gnome-shell-extensions<br />
<br />
Following that, you refresh Gnome Shell by pressing ALT+F2 and entering {{ic|restart}}.<br />
<br />
Then go to https://extensions.gnome.org/local/ again and have a look for your installed extensions list. It should have changed.<br />
<br />
All other extensions should be removable by pressing the red X icon to the right. If not, something may be broken. <br />
<br />
As a final step, you can remove them manually from {{ic|~/.local/share/gnome-shell/extensions/*}} and/or {{ic|/usr/share/gnome-shell/extensions}}. Restart Gnome Shell again and you should be fine.<br />
<br />
=== The "Windows" key ===<br />
<br />
By default, this key is mapped to the "overlay-key" to launch the Overview. You can remove this key mapping to free up your {{ic|Windows Key}} (also called {{ic|Mod4}}), which GNOME calls {{ic|Super_L}}, by utilizing {{ic|gsettings}}.<br />
<br />
Example:<br />
<br />
{{ic| gsettings set org.gnome.mutter overlay-key 'Foo';}}.<br />
You can leave out '''Foo''' to simply remove any binding to that function.<br />
<br />
{{Note| GNOME also uses {{ic|Alt+F1}} to launch the Overview.}}<br />
<br />
=== Keyboard Shortcut do not work with only conky running ===<br />
<br />
The gnome-shell keyboard shortcuts like {{ic|Alt+F2}}, {{ic|Alt+F1}}, and the media key shortcuts do not work if conky is the only program running. However if another application like gedit is running, then the keyboard shortcuts work.<br />
<br />
solution: edit .conkyrc <br />
<br />
own_window yes<br />
own_window_transparent yes<br />
own_window_argb_visual yes<br />
own_window_type dock<br />
own_window_class Conky<br />
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager<br />
<br />
=== Window opens behind other windows when using multiple monitors ===<br />
<br />
This is possibly a bug in GNOME Shell which causes new windows to open behind others. Unchecking {{ic|workspaces_only_on_primary}} in {{ic|org/gnome/shell/overrides}} using ''dconf-editor'' solves this problem.<br />
<br />
=== Multiple monitors and dock extension ===<br />
<br />
If you have multiple monitors configured using Nvidia Twinview, the dock extension may get sandwiched in-between the monitors. You can edit the source of this extension to reposition the dock to a position of your choosing.<br />
<br />
Edit {{ic|/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js}} and locate this line in the source:<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);<br />
<br />
The first parameter is the X position of the dock display, by subtracting 15 pixels as opposed to 2 pixels from this it correctly positioned on my primary monitor, you can play around with any X,Y coordinate pair to position it correctly.<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);<br />
<br />
=== "Show Desktop" keyboard shortcut does not work ===<br />
<br />
GNOME developers treated the corresponding binding as bug (see https://bugzilla.gnome.org/show_bug.cgi?id=643609) due to Minimization being deprecated. To show the desktop again assign ALT+STRG+D to the following setting:<br />
<br />
System Settings --> Keyboard --> Shortcuts --> Navigation --> Hide all normal windows<br />
<br />
=== Unable to apply stored configuration for monitors ===<br />
<br />
If you encounter this message try to disable the xrandr gnome-settings-daemon plugin :<br />
<br />
$ dconf write /org/gnome/settings-daemon/plugins/xrandr/active false<br />
<br />
=== Lock button fails to re-enable touchpad ===<br />
<br />
Some laptops have a touchpad lock button that disables the touchpad so that users can type without worrying about touching the touchpad. It appears currently that although GNOME can lock the touchpad by pressing this button, it cannot unlock it. If the touchpad gets locked you can do the following to unlock it:<br />
<br />
# Start a terminal. You can do this by pressing {{ic|Alt+F2}}, then typing {{ic|gnome-terminal}} followed by pressing {{ic|Enter}}.<br />
# Type in the following command:<br />
<br />
$ xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1<br />
<br />
=== Consistent cursor theme ===<br />
<br />
You may find that the cursor theme used in GNOME is not consistent. For example, it may change when moving the cursor across different application windows. To fix this problem, set the cursor theme by creating an {{ic|index.theme}} file which defines the cursor theme according to the XDG icon theme specification. See the following section of the [[Cursor Themes]] article: [[Cursor Themes#Using an index.theme file (recommended)]].<br />
<br />
=== Tracker & Documents do not list any local files ===<br />
<br />
In order for Tracker (and, therefore, Documents) to detect your local files, they must be stored in directories that it knows of. If your documents are contained in one of the usual XDG standard directories (i.e. "Documents" or "Music"), you should install {{Pkg|xdg-user-dirs}} and run:<br />
<br />
# xdg-user-dirs-update<br />
<br />
This will create all of the usual XDG home directories if they do not already exist and it will create the config file definining these directories that Tracker and Documents depend upon.<br />
<br />
=== Passwords are not remembered ===<br />
<br />
If you get a password prompt every time you login, and you find password are not saved, you might need to create/set a default keyring.<br />
<br />
Install {{pkg|seahorse}}. Open "Passwords and Keys" from the menu or run {{ic|seahorse}}. Select View > By Keyring. If there is no keyring in the left column (it will be marked with a lock icon), go to File > New > Password Keyring and give it a nice name. You will be asked to enter a password. If you do not give it a password it will be unlocked automatically even when using autologin, but passwords will not be stored securely. Finally, right-click on the keyring you just created and select "Set as default".<br />
<br />
=== Windows cannot be modified with Alt-Key + Mouse-Button ===<br />
<br />
Change the dconf-setting "org.gnome.desktop.wm.preferences.mouse-button-modifier" from <Super> back to <Alt>. It is not possible to change this with ''System Settings'' > "Keyboard" > "Shortcuts", you will find there only the regular keybindings. The developers of GNOME decided to change this from 3.4 to 3.6 because of this bug report https://bugzilla.gnome.org/show_bug.cgi?id=607797<br />
<br />
=== Gnome-shell 3.8.x fails to load with a black screen + cursor ===<br />
<br />
If you have a non-UTF8 language enabled, Gnome 3 can fail to load. Disable non-UTF-8 locales and perform a locale-gen until this is resolved.<br />
For more information see [https://bugzilla.gnome.org/show_bug.cgi?id=698952 this bug report].<br />
<br />
Additionally, if multiple locales of different languages are enabled, it may be necessary to disable all locales except for one (which is UTF-8).<br />
<br />
=== UI elements scale incorrectly ===<br />
<br />
Gnome introduced HDPI support in version 3.10. If your display does not provide the correct screen size through EDID, this can lead to incorrectly scaled UI elements. As a workaround you can open dconf-editor and find the key {{ic|scaling-factor}} in {{ic|org.gnome.desktop.interface}}. Set it to {{ic|1}} to get the standard scale.<br />
<br />
=== Tear-free video with Intel HD Graphics ===<br />
<br />
Enabling the [[Intel _Graphics#Tear-free_video|Xorg Intel TearFree option]] is a known workaround to tearing problems on Intel adapters, however the way this option acts makes it redundant with the use of a compositor (adds up memory consumption and lowers performance, see [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c123 the original bug report's final comment]).<br />
<br />
On the other hand, GNOME Shell uses Mutter as a compositor which has a tweak known to address tearing problems (see [https://bugzilla.gnome.org/show_bug.cgi?id=657071#c1 the original suggestion for this fix] and its mention in [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c59 the Freedesktop bug report]): the line {{ic|1=CLUTTER_PAINT=disable-clipped-redraws:disable-culling}} must be appended to {{ic|/etc/environment}} and Xorg server restarted. This tweak solved tearing problems.<br />
<br />
=== Logging in through GDM or lightdm quickly returns to the login screen without any feedback ===<br />
<br />
As discovered by the person in [http://forums.debian.net/viewtopic.php?f=6&t=84115 this] thread, some aspect of checking for the existence of and then sourcing a bash_completion script seems to cause this issue. In addition to the bash completion setup in package {{Pkg|bash-completion}}, the Ruby Version Manager (RVM) includes the invocation of a bash completion script as part of it's init. It's worth keeping in mind that whatever causes this issue likely exists outside the exclusive realm of bash completion scripts, and that /etc/profile* is still worth poking around in while debugging even if a completion script isn't found.<br />
<br />
=== Gnome System Icons are not loaded properly ===<br />
<br />
Problems with the loading of system icons, such the ones in the title bar of Files, might be solved by [[pacman#Installing specific packages|(re)installing]] the package {{Pkg|gdk-pixbuf2}}.<br />
<br />
This may also fix the "oh no" screen and/or very slow loading and login with GDM as described in [https://bbs.archlinux.org/viewtopic.php?pid=1414157 this] thread.<br />
<br />
=== Artifacts when maximizing windows ===<br />
<br />
Maximizing windows may cause artifacts as of GNOME 3.12.0 [https://bbs.archlinux.org/viewtopic.php?id=183617] [https://bugzilla.gnome.org/show_bug.cgi?id=728385]. See [[#Tear-free video with Intel HD Graphics]].<br />
<br />
=== Gnome 3.13+ "Show Applications" animation ===<br />
<br />
To disable the animation just use ''dconf-editor'' and uncheck {{ic|org.gnome.desktop.interface enable-animations}}. As a downside the wave animation in the top left activities hot corner will also be disabled.<br />
<br />
== See also ==<br />
<br />
* [http://www.gnome.org/ The Official Website of GNOME]<br />
* [http://extensions.gnome.org/ Extensions for GNOME-shell]<br />
* Themes, icons, and backgrounds:<br />
** [http://art.gnome.org/ GNOME Art]<br />
** [http://www.gnome-look.org/ GNOME Look]<br />
* GTK/GNOME programs:<br />
** [http://www.gnomefiles.org/ GNOME Files]<br />
** [http://www.gnome.org/projects/ GNOME Project Listing]</div>Blackouthttps://wiki.archlinux.org/index.php?title=GNOME&diff=336899GNOME2014-09-23T12:08:21Z<p>Blackout: </p>
<hr />
<div>[[Category:GNOME]]<br />
[[cs:GNOME]]<br />
[[de:GNOME]]<br />
[[es:GNOME]]<br />
[[fr:GNOME]]<br />
[[it:GNOME]]<br />
[[ja:GNOME]]<br />
[[nl:GNOME]]<br />
[[pl:GNOME]]<br />
[[pt:GNOME]]<br />
[[ru:GNOME]]<br />
[[sr:GNOME]]<br />
[[th:GNOME]]<br />
[[tr:Gnome Masaüstü Ortamı]]<br />
[[uk:GNOME]]<br />
[[zh-CN:GNOME]]<br />
[[zh-TW:GNOME]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Window manager}}<br />
{{Related|GTK+}}<br />
{{Related|GDM}}<br />
{{Related|GNOME Files}}<br />
{{Related|Gedit}}<br />
{{Related|GNOME Web}}<br />
{{Related|GNOME Flashback}}<br />
{{Related|Cinnamon}}<br />
{{Related|MATE}}<br />
{{Related articles end}}<br />
[http://www.gnome.org/ GNOME] is a [[desktop environment]] developed by The GNOME Project.<br />
<br />
GNOME 3 has ''two'' sessions:<br />
<br />
*'''GNOME''' is the default, innovative layout.<br />
*'''GNOME Classic''' is a traditional desktop layout, similar to the GNOME 2 user interface whilst using GNOME 3 technologies. It does so through the use of pre-activated extensions and parameters (see [http://worldofgnome.org/welcome-to-gnome-3-8-flintstones-mode/ here] for a list). Hence it is more of a customized GNOME Shell than a truly distinct mode.<br />
<br />
Both of them use GNOME Shell, a desktop shell and plugin of the Mutter window manager. Mutter acts as a composite manager for the desktop, employing hardware graphics acceleration to provide effects aimed at reducing screen clutter. GNOME session manager automatically detects if your video driver is capable of running GNOME Shell and if not, falls back to software rendering using llvmpipe.<br />
<br />
== Installation ==<br />
<br />
GNOME 3 is available in the [[official repositories]] and can be [[pacman|installed]] with one of the following:<br />
*The {{Pkg|gnome-shell}} package provides a minimal desktop shell.<br />
*The {{Grp|gnome}} group contains the core desktop environment and applications required for the standard GNOME experience.<br />
*The {{Grp|gnome-extra}} group contains various optional tools such as an editor, an archive manager, a disk burner, a mail client, games, development tools and other non-critical applications that integrate well with the GNOME desktop. Installing just the {{Grp|gnome-extra}} group will not pull in the whole {{Grp|gnome}} group via dependencies. If you want to install all GNOME packages then you will need to explicitly install both groups.<br />
<br />
== Starting GNOME ==<br />
<br />
'''Graphical log-in'''<br />
<br />
For the best desktop integration, [[GDM]] (the GNOME [[Display manager]]) is recommended. GDM is installed as part of the {{grp|gnome}} group and can be used by enabling {{ic|gdm.service}} [[systemd#Using units|using systemd]].<br />
<br />
Other display managers can be used in place of GDM if desired.<br />
<br />
{{note|Native support for screenlocking in GNOME is provided by GDM. If you choose to not use GDM you will need to use a different screenlocking program such as [[XScreenSaver]].}} <br />
<br />
'''Starting GNOME manually'''<br />
<br />
If you prefer to start GNOME manually from the console, add the following line to your {{ic|~/.xinitrc}} file:<br />
{{hc|~/.xinitrc|<nowiki><br />
exec gnome-session<br />
</nowiki>}}<br />
<br />
Or {{ic|exec env GNOME_SHELL_SESSION_MODE&#61;classic gnome-session --session gnome-classic}} for GNOME Classic. After editing your {{ic|~/.xinitrc}}, GNOME can be launched by typing {{ic|startx}}.<br />
<br />
See [[xinitrc]] for details, such as preserving the logind session.<br />
<br />
After setting up your {{ic|~/.xinitrc}} file you can also arrange to [[Start X at Login]] so that you don't have to run {{ic|startx}} manually.<br />
<br />
== Using the shell ==<br />
<br />
=== GNOME Cheat Sheet ===<br />
<br />
The [https://wiki.gnome.org/Projects/GnomeShell/CheatSheet GNOME Shell Cheat Sheet] on the GNOME Wiki explains task switching, keyboard use, window control, the panel, overview mode, and more.<br />
<br />
=== Restarting the shell ===<br />
<br />
After appearance tweaks you are often asked to restart the GNOME shell. You could log out and log back in, but it is simpler and faster to issue the following keyboard command. Restart the shell by pressing {{ic|Alt}} + {{ic|F2}} then {{ic|r}} then {{ic|Enter}}<br />
<br />
=== Shell crashes ===<br />
<br />
Certain tweaks and/or repeated shell restarts may cause the shell to crash when a restart is attempted. In this case, you are informed about the crash and then forced to log out. Some shell changes cannot be accomplished via a keyboard restart; you must log out and log back in to effect them.<br />
<br />
{{note|Valuable documents should be saved (and perhaps closed) before attempting a shell restart. It is not strictly necessary; open windows and documents usually remain intact after a shell restart however there is a risk that data could be lost if documents are not saved.}}<br />
<br />
=== Shell freezes ===<br />
<br />
Sometimes shell extensions freeze the GNOME Shell. In this case a possible strategy is to switch to another terminal via {{ic|Ctrl+Alt+F2}} through {{ic|Ctrl+Alt+F6}}, log in, and restart gnome-shell with:<br />
<br />
# pkill -HUP gnome-shell<br />
<br />
All open applications will still be available after restarting the shell.<br />
<br />
Sometimes, however, merely restarting the shell might not be enough. Then you will have to restart X, losing all work in progress. You can restart X by:<br />
<br />
# pkill X<br />
<br />
The GNOME Shell then restarts automatically.<br />
<br />
If this does not work, you can try to restart your login manager. For instance, if you use GDM, try:<br />
<br />
# systemctl restart gdm.service<br />
<br />
{{Tip|You can also use '''htop''' in tty; press ''t'', select the ''gnome-shell'' tree, press ''k'' and send ''SIGKILL''.}}<br />
<br />
== Pacman integration: GNOME PackageKit ==<br />
{{Warning|1=As of Gnome 3.12 the pacman integration with packagekit is very outdated. It will be updated, fixed and working in GNOME 3.14.[http://www.phoronix.com/scan.php?page=news_item&px=MTc4NDQ]}}<br />
<br />
GNOME has its own Pacman GUI: {{Pkg|gnome-packagekit}}.<br />
<br />
Using the [https://www.archlinux.org/pacman/libalpm.3.html alpm] backend, it supports the following features:<br />
<br />
* Install and remove packages from the repos.<br />
* Periodically refresh package databases and prompt for updates.<br />
* Install packages from tarballs.<br />
* Search for packages by name, description, category or file.<br />
* Show package dependencies, files and reverse dependencies.<br />
* Ignore IgnorePkgs and hold HoldPkgs.<br />
* Report optional dependencies, .pacnew files, etc.<br />
<br />
You can change the {{ic|remove}} operation from -Rc to -Rsc by setting the DConf key {{ic|org.gnome.packagekit.enable-autoremove}}.<br />
<br />
=== Packages updates notifications ===<br />
<br />
If you want GNOME to check automatically for updates, you must install {{AUR|gnome-settings-daemon-updates}} from the official repository.<br />
<br />
== Customizing GNOME appearance ==<br />
<br />
The ''Systems Settings'' tool (provided by {{pkg|gnome-control-center}}) is a simple and streamlined panel which covers most basic settings. <br />
<br />
More elaborate graphical customization (such as modifying fonts, themes, titlebar buttons and such) can be done using the graphical ''GNOME tweak tool''. {{Pkg|gnome-tweak-tool}} is available from the [[official repositories]]. See [[#Theming]] below for more information about the subject.<br />
<br />
More extensive customisation may require more low-level configuration, using [[#gsettings and dconf]].<br />
<br />
==== Theming ====<br />
<br />
To install a new theme or icon set, put it in {{ic|~/.local/share/themes}} or {{ic|~/.local/share/icons}}. You can then activate it using ''GNOME tweak tool'', that is described above.<br />
<br />
Alternatively, you can set a GTK (icon) theme via {{ic|~/.config/gtk-3.0/settings.ini}}. In this file you can set the GTK theme ({{ic|gtk-theme-name}}), the icon theme ({{ic|gtk-icon-theme-name}}), the font ({{ic|gtk-font-name}}) and more.<br />
<br />
''Adwaita,'' the default GNOME 3 theme, is a part of {{pkg|gnome-themes-standard}}. Additional GTK3 themes can be found at [http://browse.deviantart.com/customization/skins/linuxutil/desktopenv/gnome/gtk3/ Deviantart web site]. For example:<br />
{{hc|~/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-theme-name = Adwaita<br />
# next option is applicable only if selected theme supports it<br />
gtk-application-prefer-dark-theme = true<br />
# set font name and dimension<br />
gtk-font-name = Sans 10<br />
</nowiki>}}<br />
<br />
It is necessary to restart the GNOME shell for settings to be applied. More GTK options are found at [http://developer.gnome.org/gtk3/3.0/GtkSettings.html#GtkSettings.properties GNOME developer documentation].<br />
<br />
==== gsettings and dconf ====<br />
<br />
dconf is a data store used by GNOME to store its settings. It can be edited with the graphical {{ic|dconf-editor}} or the command line {{ic|gsettings}} tool. See [http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html Customizing the GNOME Shell] for a tutorial on using gsettings.<br />
<br />
=== Customize top bar ===<br />
<br />
==== Show date in top bar ====<br />
<br />
By default GNOME displays only the weekday and time in the top bar. This can be changed with the following command. Changes take effect immediately. <br />
<br />
# gsettings set org.gnome.desktop.interface clock-show-date true<br />
<br />
==== Eliminate delay when logging out ====<br />
<br />
The following tweak removes the confirmation dialog and sixty second delay for logging out.<br />
<br />
This dialog normally appears when you log out with the status menu. This tweak affects the '''''Power Off''''' dialog as well. This is not a system-wide change; it affects only the user who enters this command. The change takes effect immediately after entering the command:<br />
<br />
$ gsettings set org.gnome.SessionManager logout-prompt 'false'<br />
<br />
==== Show system monitor ====<br />
<br />
The [https://extensions.gnome.org/extension/120/system-monitor/ system-monitor] extension is included in the {{pkg|gnome-shell-extensions}} package. The git version is available as {{AUR|gnome-shell-system-monitor-applet-git}} in the [[AUR]].<br />
<br />
==== Show weather information ====<br />
<br />
The [https://extensions.gnome.org/extension/613/weather/ Weather] extension can be installed from [https://extensions.gnome.org/extension/613/weather/ the official extension website]. The git version is available as {{AUR|gnome-shell-extension-weather-git}} in the [[AUR]].<br />
<br />
=== Activity view ===<br />
<br />
==== Remove entries from Applications view ====<br />
<br />
Like most desktop environments, GNOME uses .desktop files to populate its Applications view. These text files are located in the '''{{ic|/usr/share/applications}}''' folder. It is not possible to edit these files from a folder view ‒ Files does not treat their icons as text files. Use a terminal to display or edit .desktop file entries. You will need root privileges to edit the .desktop files.<br />
<br />
# ls /usr/share/applications<br />
# nano /usr/share/applications/foo.desktop<br />
<br />
For system wide changes, edit files in '''{{ic|/usr/share/applications}}'''. For local changes, make a copy of ''foo.desktop'' in your home folder.<br />
<br />
$ cp /usr/share/applications/foo.desktop ~/.local/share/applications/<br />
<br />
Edit .desktop files to fit your wishes. <br />
<br />
{{Note|Removing a .desktop file does not uninstall an application, but instead removes its desktop integration: MIME types, shortcuts, and so forth.}}<br />
<br />
To hide an application launcher open its .desktop file in a text editor and add the following line:<br />
<br />
NoDisplay=true<br />
<br />
==== Sort applications into folders ====<br />
<br />
Gnome 3.12 allows the user to sort applications into folders. A GUI for this is provided by Gnome Software, which Arch does not package (due to PackageKit incompatibilities). However, applications can still be sorted into folders manually via dconf. To add a folder, navigate via dconf to '''{{ic|org.gnome.desktop.app-folders}}''' and set the value of '''{{ic|folder-children}}''' to an array of comma separated folder names:<br />
<br />
['Utilities', 'Sundry']<br />
<br />
To add applications to these folders, use '''{{ic|gsettings}}''':<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ apps "['alacarte.desktop', 'dconf-editor.desktop']"<br />
<br />
This adds the applications corresponding to '''{{ic|alacarte.desktop}}''' and '''{{ic|dconf-editor.desktop}}'''' to the Sundry folder.<br />
<br />
This will also create the folder '''{{ic|org.gnome.desktop.app-folders.folders.Sundry}}'''. The constituents of the folder can be updated from dconf or from '''{{ic|gsettings}}''', by appending applications to the list.<br />
<br />
To name the folder (if it has no name it will simply appear at the top of the applications), set the name key via '''{{ic|gsettings}}''':<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ name "Sundry"<br />
<br />
Applications can also be sorted by their category (specified in their '''{{ic|.desktop}}''' file):<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ categories "['Office']"<br />
<br />
If certain applications matching a category are not wanted in a certain folder, exclusions can be set:<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ excluded-apps "['libreoffice-draw.desktop']"<br />
<br />
For further information, refer to the [https://git.gnome.org/browse/gsettings-desktop-schemas/tree/schemas/org.gnome.desktop.app-folders.gschema.xml.in.in app-folders schema].<br />
<br />
==== Change icon size ====<br />
<br />
===== For applications in activity view =====<br />
<br />
To change the application icon size it is necessary to edit the GNOME-Shell theme.<br />
<br />
You can edit system files directly (make a backup first) or copy theme files to your local folder and edit these files.<br />
<br />
* For '''user themes''', edit '''{{ic|/usr/share/themes/<UserTheme>/gnome-shell/gnome-shell.css}}'''<br />
<br />
Edit ''gnome-shell.css'' and replace the following values. Afterward, [[#Restarting the shell|restart the GNOME shell]].<br />
<br />
{{hc|gnome-shell.css|<nowiki><br />
...<br />
/* Application Launchers and Grid */<br />
<br />
.icon-grid {<br />
spacing: 18px;<br />
-shell-grid-horizontal-item-size: 82px;<br />
-shell-grid-vertical-item-size: 82px;<br />
}<br />
<br />
.icon-grid .overview-icon {<br />
icon-size: 48px;<br />
}<br />
...<br />
</nowiki>}}<br />
<br />
===== In dash =====<br />
<br />
GNOME's Activities view has a dash on the left hand side, the size of the icons in this dash will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/dash.js}}.<br />
<br />
{{hc|dash.js|<nowiki><br />
...<br />
<br />
let iconSizes = [ 16, 22, 24, 32, 48, 64 ];<br />
<br />
...<br />
</nowiki>}}<br />
<br />
===== For switcher (alt-tab) =====<br />
<br />
GNOME comes with a built in task switcher, the size of the icons in this task switcher will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/altTab.js}}<br />
<br />
{{hc|altTab.js|<nowiki><br />
...<br />
<br />
const iconSizes = [96, 64, 48, 32, 22];<br />
<br />
...<br />
</nowiki>}}<br />
<br />
===== For system tray =====<br />
<br />
GNOME comes with a built in system tray, visible when the mouse is hovered over the bottom right corner of the screen. The size of the icons in this tray is set to a fixed value of 24. To change this value, edit {{ic|/usr/share/gnome-shell/js/ui/messageTray.js}}<br />
{{hc|messageTray.js|<nowiki><br />
...<br />
<br />
ICON_SIZE: 24,<br />
<br />
...<br />
</nowiki>}}<br />
<br />
==== Disable hot corner hovering ====<br />
<br />
===== Activity view =====<br />
<br />
To disable automatic activity view when the hot corner is hovered, edit {{ic|/usr/share/gnome-shell/js/ui/layout.js}} (that was ''panel.js'' in GNOME 3.0.x) :<br />
{{hc|layout.js|<nowiki><br />
this._corner = new Clutter.Rectangle({ name: 'hot-corner',<br />
width: 1,<br />
height: 1,<br />
opacity: 0,<br />
reactive: true });icon-size: 48px;<br />
}<br />
</nowiki>}}<br />
and set {{ic|reactive}} to {{ic|false}}. GNOME Shell needs to be restarted.<br />
<br />
{{tip|There are also [[GNOME#GNOME_shell_extensions|GNOME Shell extensions]] that can be installed which will modify this behaviour.}}<br />
<br />
===== Message Tray =====<br />
<br />
The message tray is shown when the mouse hovers at the bottom of the screen for one second. To disable this behavior, comment out the following line in {{ic|/usr/share/gnome-shell/js/ui/messageTray.js}}:<br />
{{hc|messageTray.js|<nowiki><br />
//pointerWatcher.addWatch(TRAY_DWELL_CHECK_INTERVAL, Lang.bind(this, this._checkTrayDwell));<br />
</nowiki>}}<br />
GNOME Shell needs to be restarted. The message tray is still visible in activity view.<br />
<br />
=== Titlebar ===<br />
<br />
==== Reduce title bar height ====<br />
<br />
* ''' global''' - edit {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and reduce its value to a minimum of {{ic|0}}.<br />
* '''user-only''' - copy {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}} to {{ic|/home/$USER/.local/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and reduce its value to a minimum of {{ic|0}}.<br />
<br />
Then restart the GNOME shell. <br />
<br />
To restore the original values, [[pacman|install]] the package {{Pkg|gnome-themes-standard}} from the [[official repositories]] or remove {{ic|/home/$USER/.local/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}.<br />
<br />
==== Reorder titlebar buttons ====<br />
<br />
At present this setting can be changed through '''dconf-editor.'''<br />
<br />
For example, to move the close and minimize buttons to the left side of the titlebar, open '''dconf-editor''' and locate the '''''org.gnome.shell.overrides.button_layout''''' key. Change its value to '''{{ic|close,minimize:}}''' (colon symbol designates the spacer between left side and right side of the titlebar). Place the buttons in your preferred order. You cannot use a button more than once. Also, keep in mind that certain buttons are deprecated.<br />
<br />
For a more complete experience, one might need to set more values:<br />
<br />
gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:'<br />
gsettings set org.gnome.shell.overrides button-layout 'close,minimize,maximize:'<br />
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/DecorationLayout' <'close,minimize,maximize:'>}"<br />
<br />
The first entry sets the order for the ''Gnome window manager''. The second entry sets the order for the Gnome window manager when used together with ''Gnome Shell'' (the latter uses this key, which defaults to ':close', to override the previous non-Shell setting). The last one sets the order for [[GTK%2B#Client-side decorations]].<br />
<br />
==== Hide titlebar when maximized ====<br />
<br />
To hide titlebar when windows are maximised, open file {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for the following tag and change its properties, children and the properties of its children tags as follows:<br />
<br />
<frame_geometry name="max" has_title="false"<br />
hide_buttons="true"<br />
parent="normal"<br />
rounded_top_left="false"<br />
rounded_top_right="false"><br />
<distance name="left_width" value="0" /><br />
<distance name="right_width" value="0" /><br />
<distance name="left_titlebar_edge" value="0"/><br />
<distance name="right_titlebar_edge" value="0"/><br />
<distance name="title_vertical_pad" value="0"/><br />
<border name="title_border" left="0" right="0" top="0" bottom="0"/><br />
<border name="button_border" left="0" right="0" top="0" bottom="0"/><br />
<distance name="bottom_height" value="0" /><br />
</frame_geometry><br />
<br />
Once the file has been saved, restart GNOME shell by pressing {{ic|Alt + F2}} and then typing {{ic|r}}. After this tweak, you may find it difficult to un-maximize a window when there is no titlebar to grab.<br />
<br />
With suitable keybindings, you should be able to use {{ic|Alt + F5}}, {{ic|Alt + F10}} or {{ic|Alt + Space}} to remedy the situation.<br />
<br />
To prevent {{ic|metacity-theme-3.xml}} from being overwritten each time package {{pkg|gnome-themes-standard}} is upgraded, add its name to {{ic|/etc/pacman.conf}} with {{ic|NoUpgrade}}:<br />
<br />
{{hc|/etc/pacman.conf|<nowiki>... previous lines ...<br />
<br />
# Pacman will not upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
# IgnorePkg =<br />
# IgnoreGroup =<br />
<br />
NoUpgrade = usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml # Do not add a leading slash to the path<br />
<br />
... more lines ...</nowiki>}}<br />
<br />
To restore original Adwaita theme values, install the {{pkg|gnome-themes-standard}} package.<br />
<br />
== Miscellaneous settings ==<br />
<br />
=== Power Management ===<br />
<br />
==== Turn off Suspend-To-RAM (S3) when closing the LID ====<br />
This setting is not available in GNOME, ''gnome-control-center'' and ''dconf'' make this available. The current approach is to manage this on the level of [[systemd]]. Edit {{ic|/etc/systemd/logind.conf}}, uncomment the {{ic|HandleLidSwitch}} line and set it to {{ic|ignore}}:<br />
<br />
{{hc|/etc/systemd/logind.conf|HandleLidSwitch&#61;ignore}}<br />
<br />
See the [[Power management#ACPI_events]] article for more information.<br />
<br />
==== No reaction on lid close ====<br />
<br />
When configuring the lid close events via [[Power management#ACPI_events]], the settings may seem to have no effect. If you have an external monitor connected to your laptop, this is default GNOME behaviour. Disconnect the monitor and the settings should work, otherwise your {{ic|/etc/systemd/logind.conf}} may be incorrect.<br />
To change default behaviour open the {{ic|dconf-editor}} and change {{ic|org.gnome.settings-daemon.plugins.xrandr.default-monitors-setup}} to {{ic|"do-nothing"}}.<br />
<br />
==== Change Critical Battery Level Action (for Laptops) ====<br />
<br />
The ''System Settings'' panel only allows the user to choose between ''Suspend'' or ''Hibernate''. To choose another option such as ''Do Nothing'' open the {{ic|dconf-editor}} and navigate to {{ic|org.gnome.settings-daemon.plugins.power}}. Edit the {{ic|"critical-battery-action"}} value to {{ic|"nothing"}}.<br />
<br />
=== Switch back scrolling behavior ===<br />
If you do not like the new scrollbar behavior just put {{ic|<nowiki>gtk-primary-button-warps-slider = false</nowiki>}} under the {{ic|<nowiki>[Settings]</nowiki>}} section in {{ic|~/.config/gtk-3.0/settings.ini}}:<br />
<br />
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-primary-button-warps-slider = false<br />
...<br />
</nowiki>}}<br />
<br />
=== Autostarting / Automatic program launch upon logging in ===<br />
<br />
As of Gnome 3.12 ''gnome-session-properties'' is deprecated. Specify which programs must start automatically after logging in using ''gnome-tweak-tool'' or via the manual method described [http://linuxandfriends.com/how-to-add-startup-programs-in-gnome-3/ here].<br />
<br />
{{Tip|Some users are unable to add autostart applications when {{ic|gnome-tweak-tool}} is launched from Gnome's overview. Launching it from a terminal sometimes fixes this. This issue can also be resolved by making changes described in this [https://bbs.archlinux.org/viewtopic.php?pid&#61;1414443#p1414443 post]. But users will still be unable to add any custom autostart programs such as scripts. <br> {{AUR|gnome-session-properties}} is still available in the [[AUR]].}}<br />
<br />
=== Editing applications menu ===<br />
<br />
{{pkg|alacarte}} provides a more complete menu editor for adding/editing menu entries.<br />
<br />
=== Gnome Terminal ===<br />
<br />
==== Inner padding ====<br />
<br />
To move the terminal output away from the window borders create the stylesheet {{ic|~/.config/gtk-3.0/gtk.css}} with the following setting:<br />
<br />
TerminalScreen {<br />
-VteTerminal-inner-border: 10px 10px 10px 10px;<br />
}<br />
<br />
==== Disable blinking cursor ====<br />
<br />
Since Gnome 3.8 and the migration to gsettings and dconf the key required to modify in order to disable the blinking cursor in the Terminal differs slightly in contrast to the old gconf key. To disable the blinking cursor in Gnome 3.8 use:<br />
<br />
gsettings set org.gnome.desktop.interface cursor-blink false<br />
<br />
If you prefer dconf to the gsettings CLI then open {{ic|dconf-editor}}, go to org -> gnome -> desktop -> interface and untick the option labelled '''cursor-blink'''.<br />
<br />
To disable the blinking cursor in Terminal only use (make sure profile uid is correct one):<br />
<br />
dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/cursor-blink-mode "'off'"<br />
<br />
==== Make new tabs inherit current directory (for Gnome Terminal 3.8+) ====<br />
<br />
In Gnome 3.8, the behaviour of how current directories are tracked has changed. To restore this behaviour, you need to source the {{ic|/etc/profile.d/vte.sh}} file, put this in your {{ic|~/.bashrc}} or {{ic|~/.zshrc}} for zsh users:<br />
<br />
source /etc/profile.d/vte.sh<br />
<br />
For more information refer to the [https://wiki.gnome.org/action/show/Apps/Terminal/FAQ?action=show&redirect=Terminal%252FFAQ#How_can_I_make_new_terminals_start_in_the_working_directory_of_the_current_terminal.3F Gnome wiki].<br />
<br />
=== Move dialog windows ===<br />
The default configuration for dialogs will not allow you to move them which causes problems in some cases. To change this you will need to use gconf-editor and change this setting:<br />
<br />
/desktop/gnome/shell/windows/attach_modal_dialogs<br />
<br />
After the change you will need to restart the shell for it to take affect.<br />
<br />
=== GNOME shell extensions ===<br />
<br />
GNOME Shell can be customized with extensions. These provide features such as a dock or a widget for changing the theme.<br />
<br />
Many extensions are collected and hosted by [https://extensions.gnome.org/ extensions.gnome.org]. They can be browsed and installed simply activating them in the browser. More information about gnome shell extensions can be found [https://extensions.gnome.org/about/ here].<br />
<br />
See [[#When an extension breaks GNOME|when an extension breaks GNOME]] for troubleshooting information.<br />
<br />
=== Default Applications ===<br />
<br />
While one can right click any file and set the default applications in 'Preferences', the settings are actually saved in {{ic | $HOME/.local/share/applications/mimeapps.list}} and {{ic| $HOME/.local/share/applications/mimeinfo.cache}}.<br />
<br />
{{tip|If you are making the change systemwide you may to create the {{ic|/usr/share/applications/mimeapps.list}} file yourself.}}<br />
<br />
==== File browser/replace Files ====<br />
<br />
You can specify a different file manager in the ''mimeapps.list'' file as shown below:<br />
<br />
'''User only''': add the line {{ic|<nowiki>inode/directory=myfilemanager.desktop</nowiki>}} to {{ic|~/.local/share/applications/mimeapps.list}}<br />
<br />
'''Systemwide''': add the line {{ic|<nowiki>inode/directory=myfilemanager.desktop</nowiki>}} to {{ic|/usr/share/applications/mimeapps.list}}<br />
<br />
Where my filemanager.desktop is the correct .desktop file for the file manager of your choice.<br />
<br />
Alternatively you can trick GNOME into using another file browser by editing the {{ic|Exec}} line in {{ic|/usr/share/applications/nautilus.desktop}}. See the correct parameters in the {{ic|.desktop}} file of the file manager of your choice, e.g.:<br />
<br />
{{hc|/usr/share/applications/nautilus.desktop|<br />
2=[...]<br />
Exec=thunar %F<br />
OR<br />
Exec=pcmanfm %U<br />
OR<br />
Exec=nemo %U<br />
[...]<br />
}}<br />
<br />
==== PDF viewer ====<br />
<br />
In some cases when you have installed Inkscape or other graphic programs Evince Document Viewer might no longer be selected as the default PDF application. If it is not available in the '''Open With''' entry which would be the GUI solution, you can use the following user command to make it the default application again:<br />
<br />
xdg-mime default evince.desktop application/pdf<br />
<br />
=== Middle mouse button ===<br />
<br />
By default, GNOME 3 disables middle mouse button emulation regardless of [[Xorg]] settings ('''Emulate3Buttons'''). To enable middle mouse button emulation use:<br />
<br />
$ gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true<br />
<br />
=== Display dimming ===<br />
<br />
By default GNOME 3 has a ten second idle timeout to dim the screen regardless of the battery and AC state:<br />
<br />
# gsettings get org.gnome.settings-daemon.plugins.power idle-dim-time<br />
<br />
To set a new value type the following<br />
<br />
# gsettings set org.gnome.settings-daemon.plugins.power idle-dim-time <int><br />
<br />
where <int> is the value in seconds.<br />
<br />
=== Changing hotkeys ===<br />
Certain hotkeys cannot be changed directly via the ''System Settings'' panel. In order to change these keys, use dconf-editor. An example of particular note is the hotkey Alt-Above_Tab. On US keyboards, this is Alt-`: is a hotkey often used in the [[Emacs]] editor. It can be changed by opening dconf-editor and modifying the ''switch-group'' key found in {{ic|org.gnome.desktop.wm.keybindings}}.<br />
<br />
It is possible to manually change the keys via an application's so-called accel map file. Where it is to be found is up to the application: For instance, Thunar's is at ~/.config/Thunar/accels.scm, whereas Files's is located at ~/.config/nautilus/accels and ~/.gnome2/accels/nautilus on old release.<br />
<br />
The file should contain a list of possible hotkeys, each unchanged line commented out with a leading ";" that has to be removed for a change to become active.<br />
For example to replace the hotkey used by Files to move files to the trash folder, change the line:<br />
<br />
; (gtk_accel_path "<Actions>/DirViewActions/Trash" "<Primary>Delete")<br />
to this:<br />
<br />
(gtk_accel_path "<Actions>/DirViewActions/Trash" "Delete")<br />
<br />
The file is regenerated regularly so do not comment the file. The uncommented line will stay but every comment you add will be lost.<br />
<br />
==== Hotkeys in Files 3.4 and older ====<br />
Firstly, use '''dconf-editor''' to place a checkmark next to {{ic|can-change-accels}} in the key named ''org.gnome.desktop.interface.''<br />
<br />
We will replace the hotkey — a.k.a. keyboard shortcut, keyboard accelerator — used by Files to move files to the trash folder.<br />
The default assignment is a somewhat-awkward {{ic|Ctrl+Delete}}.<br />
* Open Files, select any file, and click '''Edit''' on the menu bar.<br />
* Hover over the ''Move to Trash'' menu item.<br />
* While hovering, press {{ic|Delete}}. The current accelerator is now unset.<br />
* Press the key that you wish to become the new keyboard accelerator.<br />
* Press {{ic|Delete}} to make the new accelerator be the Delete key.<br />
Unless you select a file or folder, ''Move to Trash'' will be grayed-out. Finally, disable {{ic|can-change-accels}} to prevent accidental hotkey changes.<br />
<br />
=== Screencast recording ===<br />
<br />
Gnome features the built-in possbility to create screencasts easily. Thereby Control+Shift+Alt+R keybinding starts and stops the recording. A red circle is displayed in the bottom right corner of the screen when the recording is in progress. After the recording is finished, a file named 'Screencast from %d%u-%c.webm' is saved in the Videos directory. In order to use the screencast feature you need to have installed the gst plugins which are:<br />
<br />
$ pacman -Qs gst<br />
<br />
=== Modify Keyboard with XkbOptions ===<br />
<br />
Using the '''dconf-editor''', navigate to the key named {{ic|org.gnome.desktop.input-sources.xkb-options}} and add desired XkbOptions (e.g. ''caps:swapescape'') to the list.<br />
<br />
See {{ic|/usr/share/X11/xkb/rules/xorg}} for all XkbOptions and {{ic|/usr/share/X11/xkb/symbols/*}} for the respective descriptions.<br />
<br />
{{Note|To enable the {{ic|Ctrl+Alt+Backspace}} combination to terminate Xorg, use the {{Pkg|gnome-tweak-tool}} from [[official repositories]]. Within the '''Tweak Tool''', navigate to ''Typing > Terminate'' and select the option {{ic|Ctrl+Alt+Backspace}} from the dropdown menu.}}<br />
<br />
=== Toggle keyboard layouts ===<br />
Since Gnome does not consider any configuration in {{ic|/etc/X11/conf.d/*.conf}} you have to set the command for layout switching either via the control center with the options ''Switch to previous source'' and ''Switch to next source'' or if you want to use Alt - Shift combination you have to use the Gnome-Tweak-Tool and set ''Typing -> Modifiers-only input sources -> select Alt-shift''. For more information see also the forum [https://bbs.archlinux.org/viewtopic.php?id=152127 thread].<br />
<br />
=== HiDPI Support (Retina Screens) ===<br />
<br />
See [[HiDPI]].<br />
<br />
=== Other tips ===<br />
See [[GNOME tips]].<br />
<br />
== Tracker (search program) ==<br />
The {{Pkg|tracker}} provides the Tracker program, an indexing application. You can configure it with {{ic|tracker-preferences}}, and monitor status with {{ic|tracker-control}}. Once installed, indexing should start automatically when you log in. You can explicitly start indexing with {{ic|tracker-control -s}}. Search settings can also be configured in the ''System Settings'' panel.<br />
<br />
== Totem (movie player) ==<br />
<br />
Totem is a movie player based on [[GStreamer]]. For information about adding codecs or hardware acceleration, see [[GStreamer]].<br />
<br />
== Empathy (integrated messaging) and GNOME Online Accounts ==<br />
<br />
Empathy, the engine behind integrated messaging, GNOME Online Accounts, and all other system settings based on messaging accounts will not function correctly unless the {{grp|telepathy}} group of packages or at least one of the backends ({{pkg|telepathy-gabble}}, or {{pkg|telepathy-haze}}, for example) is installed.<br />
<br />
These packages are '''not''' included in either the {{grp|gnome}} or {{grp|gnome-extra}} groups . You can install the Telepathy and optionally any backends with:<br />
<br />
# pacman -S telepathy<br />
<br />
Without telepathy, Empathy will not open the account management dialog and can get stuck in this state. If this happens -- even after quitting Empathy cleanly -- the {{ic|/usr/bin/empathy-accounts}} application can remain running and will need to be killed before you can add any new accounts. Likewise, without telepathy installed, the 'Add an online account' button in GNOME Online Accounts will do nothing.<br />
<br />
View descriptions of telepathy components on the [http://telepathy.freedesktop.org/wiki/Components freedesktop.org telepathy wiki].<br />
<br />
[[Avahi]] daemon is required for connecting with the People Nearby account, and also in order for some desktop extensions to work correctly like [https://extensions.gnome.org/extension/746/chat-status/ Chat Status].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Cannot change settings in dconf-editor ===<br />
<br />
When one cannot set settings in {{pkg|dconf}}, it is possible their dconf user settings are corrupt. In this case it is best to delete the user dconf files in {{ic|~/.config/dconf/user*}} and set the settings in dconf-editor after.<br />
<br />
=== Extensions ===<br />
<br />
==== When an extension breaks GNOME ====<br />
<br />
When enabling shell extensions causes GNOME breakage, you should first remove the ''user-theme'' and ''auto-move-windows'' extensions from their installation directory.<br />
<br />
The installation directory could be one of {{ic|~/.local/share/gnome‑shell/extensions}}, {{ic|/usr/share/gnome‑shell/extensions}} or {{ic|/usr/local/share/gnome‑shell/extensions}}. Removing these two extension-containing folders may fix the breakage. Otherwise, isolate the problem extension with trial‑and‑error.<br />
<br />
Removing or adding an extension-containing folder to the aforementioned directories removes or adds the corresponding extension to your system. Details on GNOME Shell extensions are available at the [https://live.gnome.org/GnomeShell/Extensions GNOME web site.]<br />
<br />
==== Extensions do not work after GNOME 3 update ====<br />
<br />
Locate the folder where your extensions are installed. It might be {{ic|~/.local/share/gnome-shell/extensions}} or {{ic|/usr/share/gnome-shell/extensions}}.<br />
<br />
Edit each occurrence of {{ic|metadata.json}} which appears in each extension sub-folder.<br />
<br />
{| border="0"<br />
| Insert: || {{ic|"shell-version": ["3.6"]}}<br />
|-<br />
| Instead of (for example): || {{ic|"shell-version": ["3.4"]}}<br />
|}<br />
<br />
{{ic|"3.x"}} indicates the extension works with every shell version. If it breaks, you will know to change it back.<br />
<br />
==== Remove Gnome Shell Extensions ====<br />
<br />
If you have trouble with uninstalling Gnome Extensions via https://extensions.gnome.org/local/, then probably they have been installed as system-wide extensions with {{ic|pacman -S gnome-shell-extensions}} before. To remove them, you have to be careful, because the following instruction removes all extensions from other user's, too:<br />
<br />
# pacman -R gnome-shell-extensions<br />
<br />
Following that, you refresh Gnome Shell by pressing ALT+F2 and entering {{ic|restart}}.<br />
<br />
Then go to https://extensions.gnome.org/local/ again and have a look for your installed extensions list. It should have changed.<br />
<br />
All other extensions should be removable by pressing the red X icon to the right. If not, something may be broken. <br />
<br />
As a final step, you can remove them manually from {{ic|~/.local/share/gnome-shell/extensions/*}} and/or {{ic|/usr/share/gnome-shell/extensions}}. Restart Gnome Shell again and you should be fine.<br />
<br />
=== The "Windows" key ===<br />
<br />
By default, this key is mapped to the "overlay-key" to launch the Overview. You can remove this key mapping to free up your {{ic|Windows Key}} (also called {{ic|Mod4}}), which GNOME calls {{ic|Super_L}}, by utilizing {{ic|gsettings}}.<br />
<br />
Example:<br />
<br />
{{ic| gsettings set org.gnome.mutter overlay-key 'Foo';}}.<br />
You can leave out '''Foo''' to simply remove any binding to that function.<br />
<br />
{{Note| GNOME also uses {{ic|Alt+F1}} to launch the Overview.}}<br />
<br />
=== Keyboard Shortcut do not work with only conky running ===<br />
<br />
The gnome-shell keyboard shortcuts like {{ic|Alt+F2}}, {{ic|Alt+F1}}, and the media key shortcuts do not work if conky is the only program running. However if another application like gedit is running, then the keyboard shortcuts work.<br />
<br />
solution: edit .conkyrc <br />
<br />
own_window yes<br />
own_window_transparent yes<br />
own_window_argb_visual yes<br />
own_window_type dock<br />
own_window_class Conky<br />
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager<br />
<br />
=== Window opens behind other windows when using multiple monitors ===<br />
<br />
This is possibly a bug in GNOME Shell which causes new windows to open behind others. Unchecking {{ic|workspaces_only_on_primary}} in {{ic|org/gnome/shell/overrides}} using ''dconf-editor'' solves this problem.<br />
<br />
=== Multiple monitors and dock extension ===<br />
<br />
If you have multiple monitors configured using Nvidia Twinview, the dock extension may get sandwiched in-between the monitors. You can edit the source of this extension to reposition the dock to a position of your choosing.<br />
<br />
Edit {{ic|/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js}} and locate this line in the source:<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);<br />
<br />
The first parameter is the X position of the dock display, by subtracting 15 pixels as opposed to 2 pixels from this it correctly positioned on my primary monitor, you can play around with any X,Y coordinate pair to position it correctly.<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);<br />
<br />
=== "Show Desktop" keyboard shortcut does not work ===<br />
<br />
GNOME developers treated the corresponding binding as bug (see https://bugzilla.gnome.org/show_bug.cgi?id=643609) due to Minimization being deprecated. To show the desktop again assign ALT+STRG+D to the following setting:<br />
<br />
System Settings --> Keyboard --> Shortcuts --> Navigation --> Hide all normal windows<br />
<br />
=== Unable to apply stored configuration for monitors ===<br />
<br />
If you encounter this message try to disable the xrandr gnome-settings-daemon plugin :<br />
<br />
$ dconf write /org/gnome/settings-daemon/plugins/xrandr/active false<br />
<br />
=== Lock button fails to re-enable touchpad ===<br />
<br />
Some laptops have a touchpad lock button that disables the touchpad so that users can type without worrying about touching the touchpad. It appears currently that although GNOME can lock the touchpad by pressing this button, it cannot unlock it. If the touchpad gets locked you can do the following to unlock it:<br />
<br />
# Start a terminal. You can do this by pressing {{ic|Alt+F2}}, then typing {{ic|gnome-terminal}} followed by pressing {{ic|Enter}}.<br />
# Type in the following command:<br />
<br />
$ xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1<br />
<br />
=== Consistent cursor theme ===<br />
<br />
You may find that the cursor theme used in GNOME is not consistent. For example, it may change when moving the cursor across different application windows. To fix this problem, set the cursor theme by creating an {{ic|index.theme}} file which defines the cursor theme according to the XDG icon theme specification. See the following section of the [[Cursor Themes]] article: [[Cursor Themes#Using an index.theme file (recommended)]].<br />
<br />
=== Tracker & Documents do not list any local files ===<br />
<br />
In order for Tracker (and, therefore, Documents) to detect your local files, they must be stored in directories that it knows of. If your documents are contained in one of the usual XDG standard directories (i.e. "Documents" or "Music"), you should install {{Pkg|xdg-user-dirs}} and run:<br />
<br />
# xdg-user-dirs-update<br />
<br />
This will create all of the usual XDG home directories if they do not already exist and it will create the config file definining these directories that Tracker and Documents depend upon.<br />
<br />
=== Passwords are not remembered ===<br />
<br />
If you get a password prompt every time you login, and you find password are not saved, you might need to create/set a default keyring.<br />
<br />
Install {{pkg|seahorse}}. Open "Passwords and Keys" from the menu or run {{ic|seahorse}}. Select View > By Keyring. If there is no keyring in the left column (it will be marked with a lock icon), go to File > New > Password Keyring and give it a nice name. You will be asked to enter a password. If you do not give it a password it will be unlocked automatically even when using autologin, but passwords will not be stored securely. Finally, right-click on the keyring you just created and select "Set as default".<br />
<br />
=== Windows cannot be modified with Alt-Key + Mouse-Button ===<br />
<br />
Change the dconf-setting "org.gnome.desktop.wm.preferences.mouse-button-modifier" from <Super> back to <Alt>. It is not possible to change this with ''System Settings'' > "Keyboard" > "Shortcuts", you will find there only the regular keybindings. The developers of GNOME decided to change this from 3.4 to 3.6 because of this bug report https://bugzilla.gnome.org/show_bug.cgi?id=607797<br />
<br />
=== Gnome-shell 3.8.x fails to load with a black screen + cursor ===<br />
<br />
If you have a non-UTF8 language enabled, Gnome 3 can fail to load. Disable non-UTF-8 locales and perform a locale-gen until this is resolved.<br />
For more information see [https://bugzilla.gnome.org/show_bug.cgi?id=698952 this bug report].<br />
<br />
Additionally, if multiple locales of different languages are enabled, it may be necessary to disable all locales except for one (which is UTF-8).<br />
<br />
=== UI elements scale incorrectly ===<br />
<br />
Gnome introduced HDPI support in version 3.10. If your display does not provide the correct screen size through EDID, this can lead to incorrectly scaled UI elements. As a workaround you can open dconf-editor and find the key {{ic|scaling-factor}} in {{ic|org.gnome.desktop.interface}}. Set it to {{ic|1}} to get the standard scale.<br />
<br />
=== Tear-free video with Intel HD Graphics ===<br />
<br />
Enabling the [[Intel _Graphics#Tear-free_video|Xorg Intel TearFree option]] is a known workaround to tearing problems on Intel adapters, however the way this option acts makes it redundant with the use of a compositor (adds up memory consumption and lowers performance, see [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c123 the original bug report's final comment]).<br />
<br />
On the other hand, GNOME Shell uses Mutter as a compositor which has a tweak known to address tearing problems (see [https://bugzilla.gnome.org/show_bug.cgi?id=657071#c1 the original suggestion for this fix] and its mention in [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c59 the Freedesktop bug report]): the line {{ic|1=CLUTTER_PAINT=disable-clipped-redraws:disable-culling}} must be appended to {{ic|/etc/environment}} and Xorg server restarted. This tweak solved tearing problems.<br />
<br />
=== Logging in through GDM or lightdm quickly returns to the login screen without any feedback ===<br />
<br />
As discovered by the person in [http://forums.debian.net/viewtopic.php?f=6&t=84115 this] thread, some aspect of checking for the existence of and then sourcing a bash_completion script seems to cause this issue. In addition to the bash completion setup in package {{Pkg|bash-completion}}, the Ruby Version Manager (RVM) includes the invocation of a bash completion script as part of it's init. It's worth keeping in mind that whatever causes this issue likely exists outside the exclusive realm of bash completion scripts, and that /etc/profile* is still worth poking around in while debugging even if a completion script isn't found.<br />
<br />
=== Gnome System Icons are not loaded properly ===<br />
<br />
Problems with the loading of system icons, such the ones in the title bar of Files, might be solved by [[pacman#Installing specific packages|(re)installing]] the package {{Pkg|gdk-pixbuf2}}.<br />
<br />
This may also fix the "oh no" screen and/or very slow loading and login with GDM as described in [https://bbs.archlinux.org/viewtopic.php?pid=1414157 this] thread.<br />
<br />
=== Artifacts when maximizing windows ===<br />
<br />
Maximizing windows may cause artifacts as of GNOME 3.12.0 [https://bbs.archlinux.org/viewtopic.php?id=183617] [https://bugzilla.gnome.org/show_bug.cgi?id=728385]. See [[#Tear-free video with Intel HD Graphics]].<br />
<br />
=== Gnome 3.14 annoying "show settings" animation ===<br />
<br />
To disable the annoying animation just use dconf editor and uncheck<br />
<br />
org.gnome.desktop.interface enable-animations<br />
<br />
As a downside the wave animation in the top left corner in activities will be also disabled.<br />
<br />
== See also ==<br />
<br />
* [http://www.gnome.org/ The Official Website of GNOME]<br />
* [http://extensions.gnome.org/ Extensions for GNOME-shell]<br />
* Themes, icons, and backgrounds:<br />
** [http://art.gnome.org/ GNOME Art]<br />
** [http://www.gnome-look.org/ GNOME Look]<br />
* GTK/GNOME programs:<br />
** [http://www.gnomefiles.org/ GNOME Files]<br />
** [http://www.gnome.org/projects/ GNOME Project Listing]</div>Blackouthttps://wiki.archlinux.org/index.php?title=GNOME&diff=336897GNOME2014-09-23T11:32:46Z<p>Blackout: </p>
<hr />
<div>[[Category:GNOME]]<br />
[[cs:GNOME]]<br />
[[de:GNOME]]<br />
[[es:GNOME]]<br />
[[fr:GNOME]]<br />
[[it:GNOME]]<br />
[[ja:GNOME]]<br />
[[nl:GNOME]]<br />
[[pl:GNOME]]<br />
[[pt:GNOME]]<br />
[[ru:GNOME]]<br />
[[sr:GNOME]]<br />
[[th:GNOME]]<br />
[[tr:Gnome Masaüstü Ortamı]]<br />
[[uk:GNOME]]<br />
[[zh-CN:GNOME]]<br />
[[zh-TW:GNOME]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Window manager}}<br />
{{Related|GTK+}}<br />
{{Related|GDM}}<br />
{{Related|GNOME Files}}<br />
{{Related|Gedit}}<br />
{{Related|GNOME Web}}<br />
{{Related|GNOME Flashback}}<br />
{{Related|Cinnamon}}<br />
{{Related|MATE}}<br />
{{Related articles end}}<br />
[http://www.gnome.org/ GNOME] is a [[desktop environment]] developed by The GNOME Project.<br />
<br />
GNOME 3 has ''two'' sessions:<br />
<br />
*'''GNOME''' is the default, innovative layout.<br />
*'''GNOME Classic''' is a traditional desktop layout, similar to the GNOME 2 user interface whilst using GNOME 3 technologies. It does so through the use of pre-activated extensions and parameters (see [http://worldofgnome.org/welcome-to-gnome-3-8-flintstones-mode/ here] for a list). Hence it is more of a customized GNOME Shell than a truly distinct mode.<br />
<br />
Both of them use GNOME Shell, a desktop shell and plugin of the Mutter window manager. Mutter acts as a composite manager for the desktop, employing hardware graphics acceleration to provide effects aimed at reducing screen clutter. GNOME session manager automatically detects if your video driver is capable of running GNOME Shell and if not, falls back to software rendering using llvmpipe.<br />
<br />
== Installation ==<br />
<br />
GNOME 3 is available in the [[official repositories]] and can be [[pacman|installed]] with one of the following:<br />
*The {{Pkg|gnome-shell}} package provides a minimal desktop shell.<br />
*The {{Grp|gnome}} group contains the core desktop environment and applications required for the standard GNOME experience.<br />
*The {{Grp|gnome-extra}} group contains various optional tools such as an editor, an archive manager, a disk burner, a mail client, games, development tools and other non-critical applications that integrate well with the GNOME desktop. Installing just the {{Grp|gnome-extra}} group will not pull in the whole {{Grp|gnome}} group via dependencies. If you want to install all GNOME packages then you will need to explicitly install both groups.<br />
<br />
== Starting GNOME ==<br />
<br />
'''Graphical log-in'''<br />
<br />
For the best desktop integration, [[GDM]] (the GNOME [[Display manager]]) is recommended. GDM is installed as part of the {{grp|gnome}} group and can be used by enabling {{ic|gdm.service}} [[systemd#Using units|using systemd]].<br />
<br />
Other display managers can be used in place of GDM if desired.<br />
<br />
{{note|Native support for screenlocking in GNOME is provided by GDM. If you choose to not use GDM you will need to use a different screenlocking program such as [[XScreenSaver]].}} <br />
<br />
'''Starting GNOME manually'''<br />
<br />
If you prefer to start GNOME manually from the console, add the following line to your {{ic|~/.xinitrc}} file:<br />
{{hc|~/.xinitrc|<nowiki><br />
exec gnome-session<br />
</nowiki>}}<br />
<br />
Or {{ic|exec env GNOME_SHELL_SESSION_MODE&#61;classic gnome-session --session gnome-classic}} for GNOME Classic. After editing your {{ic|~/.xinitrc}}, GNOME can be launched by typing {{ic|startx}}.<br />
<br />
See [[xinitrc]] for details, such as preserving the logind session.<br />
<br />
After setting up your {{ic|~/.xinitrc}} file you can also arrange to [[Start X at Login]] so that you don't have to run {{ic|startx}} manually.<br />
<br />
== Using the shell ==<br />
<br />
=== GNOME Cheat Sheet ===<br />
<br />
The [https://wiki.gnome.org/Projects/GnomeShell/CheatSheet GNOME Shell Cheat Sheet] on the GNOME Wiki explains task switching, keyboard use, window control, the panel, overview mode, and more.<br />
<br />
=== Restarting the shell ===<br />
<br />
After appearance tweaks you are often asked to restart the GNOME shell. You could log out and log back in, but it is simpler and faster to issue the following keyboard command. Restart the shell by pressing {{ic|Alt}} + {{ic|F2}} then {{ic|r}} then {{ic|Enter}}<br />
<br />
=== Shell crashes ===<br />
<br />
Certain tweaks and/or repeated shell restarts may cause the shell to crash when a restart is attempted. In this case, you are informed about the crash and then forced to log out. Some shell changes cannot be accomplished via a keyboard restart; you must log out and log back in to effect them.<br />
<br />
{{note|Valuable documents should be saved (and perhaps closed) before attempting a shell restart. It is not strictly necessary; open windows and documents usually remain intact after a shell restart however there is a risk that data could be lost if documents are not saved.}}<br />
<br />
=== Shell freezes ===<br />
<br />
Sometimes shell extensions freeze the GNOME Shell. In this case a possible strategy is to switch to another terminal via {{ic|Ctrl+Alt+F2}} through {{ic|Ctrl+Alt+F6}}, log in, and restart gnome-shell with:<br />
<br />
# pkill -HUP gnome-shell<br />
<br />
All open applications will still be available after restarting the shell.<br />
<br />
Sometimes, however, merely restarting the shell might not be enough. Then you will have to restart X, losing all work in progress. You can restart X by:<br />
<br />
# pkill X<br />
<br />
The GNOME Shell then restarts automatically.<br />
<br />
If this does not work, you can try to restart your login manager. For instance, if you use GDM, try:<br />
<br />
# systemctl restart gdm.service<br />
<br />
{{Tip|You can also use '''htop''' in tty; press ''t'', select the ''gnome-shell'' tree, press ''k'' and send ''SIGKILL''.}}<br />
<br />
== Pacman integration: GNOME PackageKit ==<br />
{{Warning|1=As of Gnome 3.12 the pacman integration with packagekit is very outdated. It will be updated, fixed and working in GNOME 3.14.[http://www.phoronix.com/scan.php?page=news_item&px=MTc4NDQ]}}<br />
<br />
GNOME has its own Pacman GUI: {{Pkg|gnome-packagekit}}.<br />
<br />
Using the [https://www.archlinux.org/pacman/libalpm.3.html alpm] backend, it supports the following features:<br />
<br />
* Install and remove packages from the repos.<br />
* Periodically refresh package databases and prompt for updates.<br />
* Install packages from tarballs.<br />
* Search for packages by name, description, category or file.<br />
* Show package dependencies, files and reverse dependencies.<br />
* Ignore IgnorePkgs and hold HoldPkgs.<br />
* Report optional dependencies, .pacnew files, etc.<br />
<br />
You can change the {{ic|remove}} operation from -Rc to -Rsc by setting the DConf key {{ic|org.gnome.packagekit.enable-autoremove}}.<br />
<br />
=== Packages updates notifications ===<br />
<br />
If you want GNOME to check automatically for updates, you must install {{AUR|gnome-settings-daemon-updates}} from the official repository.<br />
<br />
== Customizing GNOME appearance ==<br />
<br />
The ''Systems Settings'' tool (provided by {{pkg|gnome-control-center}}) is a simple and streamlined panel which covers most basic settings. <br />
<br />
More elaborate graphical customization (such as modifying fonts, themes, titlebar buttons and such) can be done using the graphical ''GNOME tweak tool''. {{Pkg|gnome-tweak-tool}} is available from the [[official repositories]]. See [[#Theming]] below for more information about the subject.<br />
<br />
More extensive customisation may require more low-level configuration, using [[#gsettings and dconf]].<br />
<br />
==== Theming ====<br />
<br />
To install a new theme or icon set, put it in {{ic|~/.local/share/themes}} or {{ic|~/.local/share/icons}}. You can then activate it using ''GNOME tweak tool'', that is described above.<br />
<br />
Alternatively, you can set a GTK (icon) theme via {{ic|~/.config/gtk-3.0/settings.ini}}. In this file you can set the GTK theme ({{ic|gtk-theme-name}}), the icon theme ({{ic|gtk-icon-theme-name}}), the font ({{ic|gtk-font-name}}) and more.<br />
<br />
''Adwaita,'' the default GNOME 3 theme, is a part of {{pkg|gnome-themes-standard}}. Additional GTK3 themes can be found at [http://browse.deviantart.com/customization/skins/linuxutil/desktopenv/gnome/gtk3/ Deviantart web site]. For example:<br />
{{hc|~/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-theme-name = Adwaita<br />
# next option is applicable only if selected theme supports it<br />
gtk-application-prefer-dark-theme = true<br />
# set font name and dimension<br />
gtk-font-name = Sans 10<br />
</nowiki>}}<br />
<br />
It is necessary to restart the GNOME shell for settings to be applied. More GTK options are found at [http://developer.gnome.org/gtk3/3.0/GtkSettings.html#GtkSettings.properties GNOME developer documentation].<br />
<br />
==== gsettings and dconf ====<br />
<br />
dconf is a data store used by GNOME to store its settings. It can be edited with the graphical {{ic|dconf-editor}} or the command line {{ic|gsettings}} tool. See [http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html Customizing the GNOME Shell] for a tutorial on using gsettings.<br />
<br />
=== Customize top bar ===<br />
<br />
==== Show date in top bar ====<br />
<br />
By default GNOME displays only the weekday and time in the top bar. This can be changed with the following command. Changes take effect immediately. <br />
<br />
# gsettings set org.gnome.desktop.interface clock-show-date true<br />
<br />
==== Eliminate delay when logging out ====<br />
<br />
The following tweak removes the confirmation dialog and sixty second delay for logging out.<br />
<br />
This dialog normally appears when you log out with the status menu. This tweak affects the '''''Power Off''''' dialog as well. This is not a system-wide change; it affects only the user who enters this command. The change takes effect immediately after entering the command:<br />
<br />
$ gsettings set org.gnome.SessionManager logout-prompt 'false'<br />
<br />
==== Show system monitor ====<br />
<br />
The [https://extensions.gnome.org/extension/120/system-monitor/ system-monitor] extension is included in the {{pkg|gnome-shell-extensions}} package. The git version is available as {{AUR|gnome-shell-system-monitor-applet-git}} in the [[AUR]].<br />
<br />
==== Show weather information ====<br />
<br />
The [https://extensions.gnome.org/extension/613/weather/ Weather] extension can be installed from [https://extensions.gnome.org/extension/613/weather/ the official extension website]. The git version is available as {{AUR|gnome-shell-extension-weather-git}} in the [[AUR]].<br />
<br />
=== Activity view ===<br />
<br />
==== Remove entries from Applications view ====<br />
<br />
Like most desktop environments, GNOME uses .desktop files to populate its Applications view. These text files are located in the '''{{ic|/usr/share/applications}}''' folder. It is not possible to edit these files from a folder view ‒ Files does not treat their icons as text files. Use a terminal to display or edit .desktop file entries. You will need root privileges to edit the .desktop files.<br />
<br />
# ls /usr/share/applications<br />
# nano /usr/share/applications/foo.desktop<br />
<br />
For system wide changes, edit files in '''{{ic|/usr/share/applications}}'''. For local changes, make a copy of ''foo.desktop'' in your home folder.<br />
<br />
$ cp /usr/share/applications/foo.desktop ~/.local/share/applications/<br />
<br />
Edit .desktop files to fit your wishes. <br />
<br />
{{Note|Removing a .desktop file does not uninstall an application, but instead removes its desktop integration: MIME types, shortcuts, and so forth.}}<br />
<br />
To hide an application launcher open its .desktop file in a text editor and add the following line:<br />
<br />
NoDisplay=true<br />
<br />
==== Sort applications into folders ====<br />
<br />
Gnome 3.12 allows the user to sort applications into folders. A GUI for this is provided by Gnome Software, which Arch does not package (due to PackageKit incompatibilities). However, applications can still be sorted into folders manually via dconf. To add a folder, navigate via dconf to '''{{ic|org.gnome.desktop.app-folders}}''' and set the value of '''{{ic|folder-children}}''' to an array of comma separated folder names:<br />
<br />
['Utilities', 'Sundry']<br />
<br />
To add applications to these folders, use '''{{ic|gsettings}}''':<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ apps "['alacarte.desktop', 'dconf-editor.desktop']"<br />
<br />
This adds the applications corresponding to '''{{ic|alacarte.desktop}}''' and '''{{ic|dconf-editor.desktop}}'''' to the Sundry folder.<br />
<br />
This will also create the folder '''{{ic|org.gnome.desktop.app-folders.folders.Sundry}}'''. The constituents of the folder can be updated from dconf or from '''{{ic|gsettings}}''', by appending applications to the list.<br />
<br />
To name the folder (if it has no name it will simply appear at the top of the applications), set the name key via '''{{ic|gsettings}}''':<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ name "Sundry"<br />
<br />
Applications can also be sorted by their category (specified in their '''{{ic|.desktop}}''' file):<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ categories "['Office']"<br />
<br />
If certain applications matching a category are not wanted in a certain folder, exclusions can be set:<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ excluded-apps "['libreoffice-draw.desktop']"<br />
<br />
For further information, refer to the [https://git.gnome.org/browse/gsettings-desktop-schemas/tree/schemas/org.gnome.desktop.app-folders.gschema.xml.in.in app-folders schema].<br />
<br />
==== Change icon size ====<br />
<br />
===== For applications in activity view =====<br />
<br />
To change the application icon size it is necessary to edit the GNOME-Shell theme.<br />
<br />
You can edit system files directly (make a backup first) or copy theme files to your local folder and edit these files.<br />
<br />
* For '''user themes''', edit '''{{ic|/usr/share/themes/<UserTheme>/gnome-shell/gnome-shell.css}}'''<br />
<br />
Edit ''gnome-shell.css'' and replace the following values. Afterward, [[#Restarting the shell|restart the GNOME shell]].<br />
<br />
{{hc|gnome-shell.css|<nowiki><br />
...<br />
/* Application Launchers and Grid */<br />
<br />
.icon-grid {<br />
spacing: 18px;<br />
-shell-grid-horizontal-item-size: 82px;<br />
-shell-grid-vertical-item-size: 82px;<br />
}<br />
<br />
.icon-grid .overview-icon {<br />
icon-size: 48px;<br />
}<br />
...<br />
</nowiki>}}<br />
<br />
===== In dash =====<br />
<br />
GNOME's Activities view has a dash on the left hand side, the size of the icons in this dash will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/dash.js}}.<br />
<br />
{{hc|dash.js|<nowiki><br />
...<br />
<br />
let iconSizes = [ 16, 22, 24, 32, 48, 64 ];<br />
<br />
...<br />
</nowiki>}}<br />
<br />
===== For switcher (alt-tab) =====<br />
<br />
GNOME comes with a built in task switcher, the size of the icons in this task switcher will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/altTab.js}}<br />
<br />
{{hc|altTab.js|<nowiki><br />
...<br />
<br />
const iconSizes = [96, 64, 48, 32, 22];<br />
<br />
...<br />
</nowiki>}}<br />
<br />
===== For system tray =====<br />
<br />
GNOME comes with a built in system tray, visible when the mouse is hovered over the bottom right corner of the screen. The size of the icons in this tray is set to a fixed value of 24. To change this value, edit {{ic|/usr/share/gnome-shell/js/ui/messageTray.js}}<br />
{{hc|messageTray.js|<nowiki><br />
...<br />
<br />
ICON_SIZE: 24,<br />
<br />
...<br />
</nowiki>}}<br />
<br />
==== Disable hot corner hovering ====<br />
<br />
===== Activity view =====<br />
<br />
To disable automatic activity view when the hot corner is hovered, edit {{ic|/usr/share/gnome-shell/js/ui/layout.js}} (that was ''panel.js'' in GNOME 3.0.x) :<br />
{{hc|layout.js|<nowiki><br />
this._corner = new Clutter.Rectangle({ name: 'hot-corner',<br />
width: 1,<br />
height: 1,<br />
opacity: 0,<br />
reactive: true });icon-size: 48px;<br />
}<br />
</nowiki>}}<br />
and set {{ic|reactive}} to {{ic|false}}. GNOME Shell needs to be restarted.<br />
<br />
{{tip|There are also [[GNOME#GNOME_shell_extensions|GNOME Shell extensions]] that can be installed which will modify this behaviour.}}<br />
<br />
===== Message Tray =====<br />
<br />
The message tray is shown when the mouse hovers at the bottom of the screen for one second. To disable this behavior, comment out the following line in {{ic|/usr/share/gnome-shell/js/ui/messageTray.js}}:<br />
{{hc|messageTray.js|<nowiki><br />
//pointerWatcher.addWatch(TRAY_DWELL_CHECK_INTERVAL, Lang.bind(this, this._checkTrayDwell));<br />
</nowiki>}}<br />
GNOME Shell needs to be restarted. The message tray is still visible in activity view.<br />
<br />
=== Titlebar ===<br />
<br />
==== Reduce title bar height ====<br />
<br />
* ''' global''' - edit {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and reduce its value to a minimum of {{ic|0}}.<br />
* '''user-only''' - copy {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}} to {{ic|/home/$USER/.local/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and reduce its value to a minimum of {{ic|0}}.<br />
<br />
Then restart the GNOME shell. <br />
<br />
To restore the original values, [[pacman|install]] the package {{Pkg|gnome-themes-standard}} from the [[official repositories]] or remove {{ic|/home/$USER/.local/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}.<br />
<br />
==== Reorder titlebar buttons ====<br />
<br />
At present this setting can be changed through '''dconf-editor.'''<br />
<br />
For example, to move the close and minimize buttons to the left side of the titlebar, open '''dconf-editor''' and locate the '''''org.gnome.shell.overrides.button_layout''''' key. Change its value to '''{{ic|close,minimize:}}''' (colon symbol designates the spacer between left side and right side of the titlebar). Place the buttons in your preferred order. You cannot use a button more than once. Also, keep in mind that certain buttons are deprecated.<br />
<br />
For a more complete experience, one might need to set more values:<br />
<br />
gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:'<br />
gsettings set org.gnome.shell.overrides button-layout 'close,minimize,maximize:'<br />
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/DecorationLayout' <'close,minimize,maximize:'>}"<br />
<br />
The first entry sets the order for the ''Gnome window manager''. The second entry sets the order for the Gnome window manager when used together with ''Gnome Shell'' (the latter uses this key, which defaults to ':close', to override the previous non-Shell setting). The last one sets the order for [[GTK%2B#Client-side decorations]].<br />
<br />
==== Hide titlebar when maximized ====<br />
<br />
To hide titlebar when windows are maximised, open file {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for the following tag and change its properties, children and the properties of its children tags as follows:<br />
<br />
<frame_geometry name="max" has_title="false"<br />
hide_buttons="true"<br />
parent="normal"<br />
rounded_top_left="false"<br />
rounded_top_right="false"><br />
<distance name="left_width" value="0" /><br />
<distance name="right_width" value="0" /><br />
<distance name="left_titlebar_edge" value="0"/><br />
<distance name="right_titlebar_edge" value="0"/><br />
<distance name="title_vertical_pad" value="0"/><br />
<border name="title_border" left="0" right="0" top="0" bottom="0"/><br />
<border name="button_border" left="0" right="0" top="0" bottom="0"/><br />
<distance name="bottom_height" value="0" /><br />
</frame_geometry><br />
<br />
Once the file has been saved, restart GNOME shell by pressing {{ic|Alt + F2}} and then typing {{ic|r}}. After this tweak, you may find it difficult to un-maximize a window when there is no titlebar to grab.<br />
<br />
With suitable keybindings, you should be able to use {{ic|Alt + F5}}, {{ic|Alt + F10}} or {{ic|Alt + Space}} to remedy the situation.<br />
<br />
To prevent {{ic|metacity-theme-3.xml}} from being overwritten each time package {{pkg|gnome-themes-standard}} is upgraded, add its name to {{ic|/etc/pacman.conf}} with {{ic|NoUpgrade}}:<br />
<br />
{{hc|/etc/pacman.conf|<nowiki>... previous lines ...<br />
<br />
# Pacman will not upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
# IgnorePkg =<br />
# IgnoreGroup =<br />
<br />
NoUpgrade = usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml # Do not add a leading slash to the path<br />
<br />
... more lines ...</nowiki>}}<br />
<br />
To restore original Adwaita theme values, install the {{pkg|gnome-themes-standard}} package.<br />
<br />
== Miscellaneous settings ==<br />
<br />
=== Power Management ===<br />
<br />
==== Turn off Suspend-To-RAM (S3) when closing the LID ====<br />
This setting is not available in GNOME, ''gnome-control-center'' and ''dconf'' make this available. The current approach is to manage this on the level of [[systemd]]. Edit {{ic|/etc/systemd/logind.conf}}, uncomment the {{ic|HandleLidSwitch}} line and set it to {{ic|ignore}}:<br />
<br />
{{hc|/etc/systemd/logind.conf|HandleLidSwitch&#61;ignore}}<br />
<br />
See the [[Power management#ACPI_events]] article for more information.<br />
<br />
==== No reaction on lid close ====<br />
<br />
When configuring the lid close events via [[Power management#ACPI_events]], the settings may seem to have no effect. If you have an external monitor connected to your laptop, this is default GNOME behaviour. Disconnect the monitor and the settings should work, otherwise your {{ic|/etc/systemd/logind.conf}} may be incorrect.<br />
To change default behaviour open the {{ic|dconf-editor}} and change {{ic|org.gnome.settings-daemon.plugins.xrandr.default-monitors-setup}} to {{ic|"do-nothing"}}.<br />
<br />
==== Change Critical Battery Level Action (for Laptops) ====<br />
<br />
The ''System Settings'' panel only allows the user to choose between ''Suspend'' or ''Hibernate''. To choose another option such as ''Do Nothing'' open the {{ic|dconf-editor}} and navigate to {{ic|org.gnome.settings-daemon.plugins.power}}. Edit the {{ic|"critical-battery-action"}} value to {{ic|"nothing"}}.<br />
<br />
=== Switch back scrolling behavior ===<br />
If you do not like the new scrollbar behavior just put {{ic|<nowiki>gtk-primary-button-warps-slider = false</nowiki>}} under the {{ic|<nowiki>[Settings]</nowiki>}} section in {{ic|~/.config/gtk-3.0/settings.ini}}:<br />
<br />
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-primary-button-warps-slider = false<br />
...<br />
</nowiki>}}<br />
<br />
=== Autostarting / Automatic program launch upon logging in ===<br />
<br />
As of Gnome 3.12 ''gnome-session-properties'' is deprecated. Specify which programs must start automatically after logging in using ''gnome-tweak-tool'' or via the manual method described [http://linuxandfriends.com/how-to-add-startup-programs-in-gnome-3/ here].<br />
<br />
{{Tip|Some users are unable to add autostart applications when {{ic|gnome-tweak-tool}} is launched from Gnome's overview. Launching it from a terminal sometimes fixes this. This issue can also be resolved by making changes described in this [https://bbs.archlinux.org/viewtopic.php?pid&#61;1414443#p1414443 post]. But users will still be unable to add any custom autostart programs such as scripts. <br> {{AUR|gnome-session-properties}} is still available in the [[AUR]].}}<br />
<br />
=== Editing applications menu ===<br />
<br />
{{pkg|alacarte}} provides a more complete menu editor for adding/editing menu entries.<br />
<br />
=== Gnome Terminal ===<br />
<br />
==== Inner padding ====<br />
<br />
To move the terminal output away from the window borders create the stylesheet {{ic|~/.config/gtk-3.0/gtk.css}} with the following setting:<br />
<br />
TerminalScreen {<br />
-VteTerminal-inner-border: 10px 10px 10px 10px;<br />
}<br />
<br />
==== Disable blinking cursor ====<br />
<br />
Since Gnome 3.8 and the migration to gsettings and dconf the key required to modify in order to disable the blinking cursor in the Terminal differs slightly in contrast to the old gconf key. To disable the blinking cursor in Gnome 3.8 use:<br />
<br />
gsettings set org.gnome.desktop.interface cursor-blink false<br />
<br />
If you prefer dconf to the gsettings CLI then open {{ic|dconf-editor}}, go to org -> gnome -> desktop -> interface and untick the option labelled '''cursor-blink'''.<br />
<br />
To disable the blinking cursor in Terminal only use (make sure profile uid is correct one):<br />
<br />
dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/cursor-blink-mode "'off'"<br />
<br />
==== Make new tabs inherit current directory (for Gnome Terminal 3.8+) ====<br />
<br />
In Gnome 3.8, the behaviour of how current directories are tracked has changed. To restore this behaviour, you need to source the {{ic|/etc/profile.d/vte.sh}} file, put this in your {{ic|~/.bashrc}} or {{ic|~/.zshrc}} for zsh users:<br />
<br />
source /etc/profile.d/vte.sh<br />
<br />
For more information refer to the [https://wiki.gnome.org/action/show/Apps/Terminal/FAQ?action=show&redirect=Terminal%252FFAQ#How_can_I_make_new_terminals_start_in_the_working_directory_of_the_current_terminal.3F Gnome wiki].<br />
<br />
=== Move dialog windows ===<br />
The default configuration for dialogs will not allow you to move them which causes problems in some cases. To change this you will need to use gconf-editor and change this setting:<br />
<br />
/desktop/gnome/shell/windows/attach_modal_dialogs<br />
<br />
After the change you will need to restart the shell for it to take affect.<br />
<br />
=== GNOME shell extensions ===<br />
<br />
GNOME Shell can be customized with extensions. These provide features such as a dock or a widget for changing the theme.<br />
<br />
Many extensions are collected and hosted by [https://extensions.gnome.org/ extensions.gnome.org]. They can be browsed and installed simply activating them in the browser. More information about gnome shell extensions can be found [https://extensions.gnome.org/about/ here].<br />
<br />
See [[#When an extension breaks GNOME|when an extension breaks GNOME]] for troubleshooting information.<br />
<br />
=== Default Applications ===<br />
<br />
While one can right click any file and set the default applications in 'Preferences', the settings are actually saved in {{ic | $HOME/.local/share/applications/mimeapps.list}} and {{ic| $HOME/.local/share/applications/mimeinfo.cache}}.<br />
<br />
{{tip|If you are making the change systemwide you may to create the {{ic|/usr/share/applications/mimeapps.list}} file yourself.}}<br />
<br />
==== File browser/replace Files ====<br />
<br />
You can specify a different file manager in the ''mimeapps.list'' file as shown below:<br />
<br />
'''User only''': add the line {{ic|<nowiki>inode/directory=myfilemanager.desktop</nowiki>}} to {{ic|~/.local/share/applications/mimeapps.list}}<br />
<br />
'''Systemwide''': add the line {{ic|<nowiki>inode/directory=myfilemanager.desktop</nowiki>}} to {{ic|/usr/share/applications/mimeapps.list}}<br />
<br />
Where my filemanager.desktop is the correct .desktop file for the file manager of your choice.<br />
<br />
Alternatively you can trick GNOME into using another file browser by editing the {{ic|Exec}} line in {{ic|/usr/share/applications/nautilus.desktop}}. See the correct parameters in the {{ic|.desktop}} file of the file manager of your choice, e.g.:<br />
<br />
{{hc|/usr/share/applications/nautilus.desktop|<br />
2=[...]<br />
Exec=thunar %F<br />
OR<br />
Exec=pcmanfm %U<br />
OR<br />
Exec=nemo %U<br />
[...]<br />
}}<br />
<br />
==== PDF viewer ====<br />
<br />
In some cases when you have installed Inkscape or other graphic programs Evince Document Viewer might no longer be selected as the default PDF application. If it is not available in the '''Open With''' entry which would be the GUI solution, you can use the following user command to make it the default application again:<br />
<br />
xdg-mime default evince.desktop application/pdf<br />
<br />
=== Middle mouse button ===<br />
<br />
By default, GNOME 3 disables middle mouse button emulation regardless of [[Xorg]] settings ('''Emulate3Buttons'''). To enable middle mouse button emulation use:<br />
<br />
$ gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true<br />
<br />
=== Display dimming ===<br />
<br />
By default GNOME 3 has a ten second idle timeout to dim the screen regardless of the battery and AC state:<br />
<br />
# gsettings get org.gnome.settings-daemon.plugins.power idle-dim-time<br />
<br />
To set a new value type the following<br />
<br />
# gsettings set org.gnome.settings-daemon.plugins.power idle-dim-time <int><br />
<br />
where <int> is the value in seconds.<br />
<br />
=== Changing hotkeys ===<br />
Certain hotkeys cannot be changed directly via the ''System Settings'' panel. In order to change these keys, use dconf-editor. An example of particular note is the hotkey Alt-Above_Tab. On US keyboards, this is Alt-`: is a hotkey often used in the [[Emacs]] editor. It can be changed by opening dconf-editor and modifying the ''switch-group'' key found in {{ic|org.gnome.desktop.wm.keybindings}}.<br />
<br />
It is possible to manually change the keys via an application's so-called accel map file. Where it is to be found is up to the application: For instance, Thunar's is at ~/.config/Thunar/accels.scm, whereas Files's is located at ~/.config/nautilus/accels and ~/.gnome2/accels/nautilus on old release.<br />
<br />
The file should contain a list of possible hotkeys, each unchanged line commented out with a leading ";" that has to be removed for a change to become active.<br />
For example to replace the hotkey used by Files to move files to the trash folder, change the line:<br />
<br />
; (gtk_accel_path "<Actions>/DirViewActions/Trash" "<Primary>Delete")<br />
to this:<br />
<br />
(gtk_accel_path "<Actions>/DirViewActions/Trash" "Delete")<br />
<br />
The file is regenerated regularly so do not comment the file. The uncommented line will stay but every comment you add will be lost.<br />
<br />
==== Hotkeys in Files 3.4 and older ====<br />
Firstly, use '''dconf-editor''' to place a checkmark next to {{ic|can-change-accels}} in the key named ''org.gnome.desktop.interface.''<br />
<br />
We will replace the hotkey — a.k.a. keyboard shortcut, keyboard accelerator — used by Files to move files to the trash folder.<br />
The default assignment is a somewhat-awkward {{ic|Ctrl+Delete}}.<br />
* Open Files, select any file, and click '''Edit''' on the menu bar.<br />
* Hover over the ''Move to Trash'' menu item.<br />
* While hovering, press {{ic|Delete}}. The current accelerator is now unset.<br />
* Press the key that you wish to become the new keyboard accelerator.<br />
* Press {{ic|Delete}} to make the new accelerator be the Delete key.<br />
Unless you select a file or folder, ''Move to Trash'' will be grayed-out. Finally, disable {{ic|can-change-accels}} to prevent accidental hotkey changes.<br />
<br />
=== Screencast recording ===<br />
<br />
Gnome features the built-in possbility to create screencasts easily. Thereby Control+Shift+Alt+R keybinding starts and stops the recording. A red circle is displayed in the bottom right corner of the screen when the recording is in progress. After the recording is finished, a file named 'Screencast from %d%u-%c.webm' is saved in the Videos directory. In order to use the screencast feature you need to have installed the gst plugins which are:<br />
<br />
$ pacman -Qs gst<br />
<br />
=== Modify Keyboard with XkbOptions ===<br />
<br />
Using the '''dconf-editor''', navigate to the key named {{ic|org.gnome.desktop.input-sources.xkb-options}} and add desired XkbOptions (e.g. ''caps:swapescape'') to the list.<br />
<br />
See {{ic|/usr/share/X11/xkb/rules/xorg}} for all XkbOptions and {{ic|/usr/share/X11/xkb/symbols/*}} for the respective descriptions.<br />
<br />
{{Note|To enable the {{ic|Ctrl+Alt+Backspace}} combination to terminate Xorg, use the {{Pkg|gnome-tweak-tool}} from [[official repositories]]. Within the '''Tweak Tool''', navigate to ''Typing > Terminate'' and select the option {{ic|Ctrl+Alt+Backspace}} from the dropdown menu.}}<br />
<br />
=== Toggle keyboard layouts ===<br />
Since Gnome does not consider any configuration in {{ic|/etc/X11/conf.d/*.conf}} you have to set the command for layout switching either via the control center with the options ''Switch to previous source'' and ''Switch to next source'' or if you want to use Alt - Shift combination you have to use the Gnome-Tweak-Tool and set ''Typing -> Modifiers-only input sources -> select Alt-shift''. For more information see also the forum [https://bbs.archlinux.org/viewtopic.php?id=152127 thread].<br />
<br />
=== HiDPI Support (Retina Screens) ===<br />
<br />
See [[HiDPI]].<br />
<br />
=== Other tips ===<br />
See [[GNOME tips]].<br />
<br />
== Tracker (search program) ==<br />
The {{Pkg|tracker}} provides the Tracker program, an indexing application. You can configure it with {{ic|tracker-preferences}}, and monitor status with {{ic|tracker-control}}. Once installed, indexing should start automatically when you log in. You can explicitly start indexing with {{ic|tracker-control -s}}. Search settings can also be configured in the ''System Settings'' panel.<br />
<br />
== Totem (movie player) ==<br />
<br />
Totem is a movie player based on [[GStreamer]]. For information about adding codecs or hardware acceleration, see [[GStreamer]].<br />
<br />
== Empathy (integrated messaging) and GNOME Online Accounts ==<br />
<br />
Empathy, the engine behind integrated messaging, GNOME Online Accounts, and all other system settings based on messaging accounts will not function correctly unless the {{grp|telepathy}} group of packages or at least one of the backends ({{pkg|telepathy-gabble}}, or {{pkg|telepathy-haze}}, for example) is installed.<br />
<br />
These packages are '''not''' included in either the {{grp|gnome}} or {{grp|gnome-extra}} groups . You can install the Telepathy and optionally any backends with:<br />
<br />
# pacman -S telepathy<br />
<br />
Without telepathy, Empathy will not open the account management dialog and can get stuck in this state. If this happens -- even after quitting Empathy cleanly -- the {{ic|/usr/bin/empathy-accounts}} application can remain running and will need to be killed before you can add any new accounts. Likewise, without telepathy installed, the 'Add an online account' button in GNOME Online Accounts will do nothing.<br />
<br />
View descriptions of telepathy components on the [http://telepathy.freedesktop.org/wiki/Components freedesktop.org telepathy wiki].<br />
<br />
[[Avahi]] daemon is required for connecting with the People Nearby account, and also in order for some desktop extensions to work correctly like [https://extensions.gnome.org/extension/746/chat-status/ Chat Status].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Cannot change settings in dconf-editor ===<br />
<br />
When one cannot set settings in {{pkg|dconf}}, it is possible their dconf user settings are corrupt. In this case it is best to delete the user dconf files in {{ic|~/.config/dconf/user*}} and set the settings in dconf-editor after.<br />
<br />
=== Extensions ===<br />
<br />
==== When an extension breaks GNOME ====<br />
<br />
When enabling shell extensions causes GNOME breakage, you should first remove the ''user-theme'' and ''auto-move-windows'' extensions from their installation directory.<br />
<br />
The installation directory could be one of {{ic|~/.local/share/gnome‑shell/extensions}}, {{ic|/usr/share/gnome‑shell/extensions}} or {{ic|/usr/local/share/gnome‑shell/extensions}}. Removing these two extension-containing folders may fix the breakage. Otherwise, isolate the problem extension with trial‑and‑error.<br />
<br />
Removing or adding an extension-containing folder to the aforementioned directories removes or adds the corresponding extension to your system. Details on GNOME Shell extensions are available at the [https://live.gnome.org/GnomeShell/Extensions GNOME web site.]<br />
<br />
==== Extensions do not work after GNOME 3 update ====<br />
<br />
Locate the folder where your extensions are installed. It might be {{ic|~/.local/share/gnome-shell/extensions}} or {{ic|/usr/share/gnome-shell/extensions}}.<br />
<br />
Edit each occurrence of {{ic|metadata.json}} which appears in each extension sub-folder.<br />
<br />
{| border="0"<br />
| Insert: || {{ic|"shell-version": ["3.6"]}}<br />
|-<br />
| Instead of (for example): || {{ic|"shell-version": ["3.4"]}}<br />
|}<br />
<br />
{{ic|"3.x"}} indicates the extension works with every shell version. If it breaks, you will know to change it back.<br />
<br />
==== Remove Gnome Shell Extensions ====<br />
<br />
If you have trouble with uninstalling Gnome Extensions via https://extensions.gnome.org/local/, then probably they have been installed as system-wide extensions with {{ic|pacman -S gnome-shell-extensions}} before. To remove them, you have to be careful, because the following instruction removes all extensions from other user's, too:<br />
<br />
# pacman -R gnome-shell-extensions<br />
<br />
Following that, you refresh Gnome Shell by pressing ALT+F2 and entering {{ic|restart}}.<br />
<br />
Then go to https://extensions.gnome.org/local/ again and have a look for your installed extensions list. It should have changed.<br />
<br />
All other extensions should be removable by pressing the red X icon to the right. If not, something may be broken. <br />
<br />
As a final step, you can remove them manually from {{ic|~/.local/share/gnome-shell/extensions/*}} and/or {{ic|/usr/share/gnome-shell/extensions}}. Restart Gnome Shell again and you should be fine.<br />
<br />
=== The "Windows" key ===<br />
<br />
By default, this key is mapped to the "overlay-key" to launch the Overview. You can remove this key mapping to free up your {{ic|Windows Key}} (also called {{ic|Mod4}}), which GNOME calls {{ic|Super_L}}, by utilizing {{ic|gsettings}}.<br />
<br />
Example:<br />
<br />
{{ic| gsettings set org.gnome.mutter overlay-key 'Foo';}}.<br />
You can leave out '''Foo''' to simply remove any binding to that function.<br />
<br />
{{Note| GNOME also uses {{ic|Alt+F1}} to launch the Overview.}}<br />
<br />
=== Keyboard Shortcut do not work with only conky running ===<br />
<br />
The gnome-shell keyboard shortcuts like {{ic|Alt+F2}}, {{ic|Alt+F1}}, and the media key shortcuts do not work if conky is the only program running. However if another application like gedit is running, then the keyboard shortcuts work.<br />
<br />
solution: edit .conkyrc <br />
<br />
own_window yes<br />
own_window_transparent yes<br />
own_window_argb_visual yes<br />
own_window_type dock<br />
own_window_class Conky<br />
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager<br />
<br />
=== Window opens behind other windows when using multiple monitors ===<br />
<br />
This is possibly a bug in GNOME Shell which causes new windows to open behind others. Unchecking {{ic|workspaces_only_on_primary}} in {{ic|org/gnome/shell/overrides}} using ''dconf-editor'' solves this problem.<br />
<br />
=== Multiple monitors and dock extension ===<br />
<br />
If you have multiple monitors configured using Nvidia Twinview, the dock extension may get sandwiched in-between the monitors. You can edit the source of this extension to reposition the dock to a position of your choosing.<br />
<br />
Edit {{ic|/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js}} and locate this line in the source:<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);<br />
<br />
The first parameter is the X position of the dock display, by subtracting 15 pixels as opposed to 2 pixels from this it correctly positioned on my primary monitor, you can play around with any X,Y coordinate pair to position it correctly.<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);<br />
<br />
=== "Show Desktop" keyboard shortcut does not work ===<br />
<br />
GNOME developers treated the corresponding binding as bug (see https://bugzilla.gnome.org/show_bug.cgi?id=643609) due to Minimization being deprecated. To show the desktop again assign ALT+STRG+D to the following setting:<br />
<br />
System Settings --> Keyboard --> Shortcuts --> Navigation --> Hide all normal windows<br />
<br />
=== Unable to apply stored configuration for monitors ===<br />
<br />
If you encounter this message try to disable the xrandr gnome-settings-daemon plugin :<br />
<br />
$ dconf write /org/gnome/settings-daemon/plugins/xrandr/active false<br />
<br />
=== Lock button fails to re-enable touchpad ===<br />
<br />
Some laptops have a touchpad lock button that disables the touchpad so that users can type without worrying about touching the touchpad. It appears currently that although GNOME can lock the touchpad by pressing this button, it cannot unlock it. If the touchpad gets locked you can do the following to unlock it:<br />
<br />
# Start a terminal. You can do this by pressing {{ic|Alt+F2}}, then typing {{ic|gnome-terminal}} followed by pressing {{ic|Enter}}.<br />
# Type in the following command:<br />
<br />
$ xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1<br />
<br />
=== Consistent cursor theme ===<br />
<br />
You may find that the cursor theme used in GNOME is not consistent. For example, it may change when moving the cursor across different application windows. To fix this problem, set the cursor theme by creating an {{ic|index.theme}} file which defines the cursor theme according to the XDG icon theme specification. See the following section of the [[Cursor Themes]] article: [[Cursor Themes#Using an index.theme file (recommended)]].<br />
<br />
=== Tracker & Documents do not list any local files ===<br />
<br />
In order for Tracker (and, therefore, Documents) to detect your local files, they must be stored in directories that it knows of. If your documents are contained in one of the usual XDG standard directories (i.e. "Documents" or "Music"), you should install {{Pkg|xdg-user-dirs}} and run:<br />
<br />
# xdg-user-dirs-update<br />
<br />
This will create all of the usual XDG home directories if they do not already exist and it will create the config file definining these directories that Tracker and Documents depend upon.<br />
<br />
=== Passwords are not remembered ===<br />
<br />
If you get a password prompt every time you login, and you find password are not saved, you might need to create/set a default keyring.<br />
<br />
Install {{pkg|seahorse}}. Open "Passwords and Keys" from the menu or run {{ic|seahorse}}. Select View > By Keyring. If there is no keyring in the left column (it will be marked with a lock icon), go to File > New > Password Keyring and give it a nice name. You will be asked to enter a password. If you do not give it a password it will be unlocked automatically even when using autologin, but passwords will not be stored securely. Finally, right-click on the keyring you just created and select "Set as default".<br />
<br />
=== Windows cannot be modified with Alt-Key + Mouse-Button ===<br />
<br />
Change the dconf-setting "org.gnome.desktop.wm.preferences.mouse-button-modifier" from <Super> back to <Alt>. It is not possible to change this with ''System Settings'' > "Keyboard" > "Shortcuts", you will find there only the regular keybindings. The developers of GNOME decided to change this from 3.4 to 3.6 because of this bug report https://bugzilla.gnome.org/show_bug.cgi?id=607797<br />
<br />
=== Gnome-shell 3.8.x fails to load with a black screen + cursor ===<br />
<br />
If you have a non-UTF8 language enabled, Gnome 3 can fail to load. Disable non-UTF-8 locales and perform a locale-gen until this is resolved.<br />
For more information see [https://bugzilla.gnome.org/show_bug.cgi?id=698952 this bug report].<br />
<br />
Additionally, if multiple locales of different languages are enabled, it may be necessary to disable all locales except for one (which is UTF-8).<br />
<br />
=== UI elements scale incorrectly ===<br />
<br />
Gnome introduced HDPI support in version 3.10. If your display does not provide the correct screen size through EDID, this can lead to incorrectly scaled UI elements. As a workaround you can open dconf-editor and find the key {{ic|scaling-factor}} in {{ic|org.gnome.desktop.interface}}. Set it to {{ic|1}} to get the standard scale.<br />
<br />
=== Tear-free video with Intel HD Graphics ===<br />
<br />
Enabling the [[Intel _Graphics#Tear-free_video|Xorg Intel TearFree option]] is a known workaround to tearing problems on Intel adapters, however the way this option acts makes it redundant with the use of a compositor (adds up memory consumption and lowers performance, see [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c123 the original bug report's final comment]).<br />
<br />
On the other hand, GNOME Shell uses Mutter as a compositor which has a tweak known to address tearing problems (see [https://bugzilla.gnome.org/show_bug.cgi?id=657071#c1 the original suggestion for this fix] and its mention in [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c59 the Freedesktop bug report]): the line {{ic|1=CLUTTER_PAINT=disable-clipped-redraws:disable-culling}} must be appended to {{ic|/etc/environment}} and Xorg server restarted. This tweak solved tearing problems.<br />
<br />
=== Logging in through GDM or lightdm quickly returns to the login screen without any feedback ===<br />
<br />
As discovered by the person in [http://forums.debian.net/viewtopic.php?f=6&t=84115 this] thread, some aspect of checking for the existence of and then sourcing a bash_completion script seems to cause this issue. In addition to the bash completion setup in package {{Pkg|bash-completion}}, the Ruby Version Manager (RVM) includes the invocation of a bash completion script as part of it's init. It's worth keeping in mind that whatever causes this issue likely exists outside the exclusive realm of bash completion scripts, and that /etc/profile* is still worth poking around in while debugging even if a completion script isn't found.<br />
<br />
=== Gnome System Icons are not loaded properly ===<br />
<br />
Problems with the loading of system icons, such the ones in the title bar of Files, might be solved by [[pacman#Installing specific packages|(re)installing]] the package {{Pkg|gdk-pixbuf2}}.<br />
<br />
This may also fix the "oh no" screen and/or very slow loading and login with GDM as described in [https://bbs.archlinux.org/viewtopic.php?pid=1414157 this] thread.<br />
<br />
=== Artifacts when maximizing windows ===<br />
<br />
Maximizing windows may cause artifacts as of GNOME 3.12.0 [https://bbs.archlinux.org/viewtopic.php?id=183617] [https://bugzilla.gnome.org/show_bug.cgi?id=728385]. See [[#Tear-free video with Intel HD Graphics]].<br />
<br />
=== Gnome 3.14 annoying "show settings" animation ===<br />
<br />
To disable the annoying animation just use dconf editor and uncheck<br />
<br />
org.gnome.desktop.interface enable-animations<br />
<br />
== See also ==<br />
<br />
* [http://www.gnome.org/ The Official Website of GNOME]<br />
* [http://extensions.gnome.org/ Extensions for GNOME-shell]<br />
* Themes, icons, and backgrounds:<br />
** [http://art.gnome.org/ GNOME Art]<br />
** [http://www.gnome-look.org/ GNOME Look]<br />
* GTK/GNOME programs:<br />
** [http://www.gnomefiles.org/ GNOME Files]<br />
** [http://www.gnome.org/projects/ GNOME Project Listing]</div>Blackouthttps://wiki.archlinux.org/index.php?title=GNOME&diff=336896GNOME2014-09-23T11:31:20Z<p>Blackout: </p>
<hr />
<div>[[Category:GNOME]]<br />
[[cs:GNOME]]<br />
[[de:GNOME]]<br />
[[es:GNOME]]<br />
[[fr:GNOME]]<br />
[[it:GNOME]]<br />
[[ja:GNOME]]<br />
[[nl:GNOME]]<br />
[[pl:GNOME]]<br />
[[pt:GNOME]]<br />
[[ru:GNOME]]<br />
[[sr:GNOME]]<br />
[[th:GNOME]]<br />
[[tr:Gnome Masaüstü Ortamı]]<br />
[[uk:GNOME]]<br />
[[zh-CN:GNOME]]<br />
[[zh-TW:GNOME]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Window manager}}<br />
{{Related|GTK+}}<br />
{{Related|GDM}}<br />
{{Related|GNOME Files}}<br />
{{Related|Gedit}}<br />
{{Related|GNOME Web}}<br />
{{Related|GNOME Flashback}}<br />
{{Related|Cinnamon}}<br />
{{Related|MATE}}<br />
{{Related articles end}}<br />
[http://www.gnome.org/ GNOME] is a [[desktop environment]] developed by The GNOME Project.<br />
<br />
GNOME 3 has ''two'' sessions:<br />
<br />
*'''GNOME''' is the default, innovative layout.<br />
*'''GNOME Classic''' is a traditional desktop layout, similar to the GNOME 2 user interface whilst using GNOME 3 technologies. It does so through the use of pre-activated extensions and parameters (see [http://worldofgnome.org/welcome-to-gnome-3-8-flintstones-mode/ here] for a list). Hence it is more of a customized GNOME Shell than a truly distinct mode.<br />
<br />
Both of them use GNOME Shell, a desktop shell and plugin of the Mutter window manager. Mutter acts as a composite manager for the desktop, employing hardware graphics acceleration to provide effects aimed at reducing screen clutter. GNOME session manager automatically detects if your video driver is capable of running GNOME Shell and if not, falls back to software rendering using llvmpipe.<br />
<br />
== Installation ==<br />
<br />
GNOME 3 is available in the [[official repositories]] and can be [[pacman|installed]] with one of the following:<br />
*The {{Pkg|gnome-shell}} package provides a minimal desktop shell.<br />
*The {{Grp|gnome}} group contains the core desktop environment and applications required for the standard GNOME experience.<br />
*The {{Grp|gnome-extra}} group contains various optional tools such as an editor, an archive manager, a disk burner, a mail client, games, development tools and other non-critical applications that integrate well with the GNOME desktop. Installing just the {{Grp|gnome-extra}} group will not pull in the whole {{Grp|gnome}} group via dependencies. If you want to install all GNOME packages then you will need to explicitly install both groups.<br />
<br />
== Starting GNOME ==<br />
<br />
'''Graphical log-in'''<br />
<br />
For the best desktop integration, [[GDM]] (the GNOME [[Display manager]]) is recommended. GDM is installed as part of the {{grp|gnome}} group and can be used by enabling {{ic|gdm.service}} [[systemd#Using units|using systemd]].<br />
<br />
Other display managers can be used in place of GDM if desired.<br />
<br />
{{note|Native support for screenlocking in GNOME is provided by GDM. If you choose to not use GDM you will need to use a different screenlocking program such as [[XScreenSaver]].}} <br />
<br />
'''Starting GNOME manually'''<br />
<br />
If you prefer to start GNOME manually from the console, add the following line to your {{ic|~/.xinitrc}} file:<br />
{{hc|~/.xinitrc|<nowiki><br />
exec gnome-session<br />
</nowiki>}}<br />
<br />
Or {{ic|exec env GNOME_SHELL_SESSION_MODE&#61;classic gnome-session --session gnome-classic}} for GNOME Classic. After editing your {{ic|~/.xinitrc}}, GNOME can be launched by typing {{ic|startx}}.<br />
<br />
See [[xinitrc]] for details, such as preserving the logind session.<br />
<br />
After setting up your {{ic|~/.xinitrc}} file you can also arrange to [[Start X at Login]] so that you don't have to run {{ic|startx}} manually.<br />
<br />
== Using the shell ==<br />
<br />
=== GNOME Cheat Sheet ===<br />
<br />
The [https://wiki.gnome.org/Projects/GnomeShell/CheatSheet GNOME Shell Cheat Sheet] on the GNOME Wiki explains task switching, keyboard use, window control, the panel, overview mode, and more.<br />
<br />
=== Restarting the shell ===<br />
<br />
After appearance tweaks you are often asked to restart the GNOME shell. You could log out and log back in, but it is simpler and faster to issue the following keyboard command. Restart the shell by pressing {{ic|Alt}} + {{ic|F2}} then {{ic|r}} then {{ic|Enter}}<br />
<br />
=== Shell crashes ===<br />
<br />
Certain tweaks and/or repeated shell restarts may cause the shell to crash when a restart is attempted. In this case, you are informed about the crash and then forced to log out. Some shell changes cannot be accomplished via a keyboard restart; you must log out and log back in to effect them.<br />
<br />
{{note|Valuable documents should be saved (and perhaps closed) before attempting a shell restart. It is not strictly necessary; open windows and documents usually remain intact after a shell restart however there is a risk that data could be lost if documents are not saved.}}<br />
<br />
=== Shell freezes ===<br />
<br />
Sometimes shell extensions freeze the GNOME Shell. In this case a possible strategy is to switch to another terminal via {{ic|Ctrl+Alt+F2}} through {{ic|Ctrl+Alt+F6}}, log in, and restart gnome-shell with:<br />
<br />
# pkill -HUP gnome-shell<br />
<br />
All open applications will still be available after restarting the shell.<br />
<br />
Sometimes, however, merely restarting the shell might not be enough. Then you will have to restart X, losing all work in progress. You can restart X by:<br />
<br />
# pkill X<br />
<br />
The GNOME Shell then restarts automatically.<br />
<br />
If this does not work, you can try to restart your login manager. For instance, if you use GDM, try:<br />
<br />
# systemctl restart gdm.service<br />
<br />
{{Tip|You can also use '''htop''' in tty; press ''t'', select the ''gnome-shell'' tree, press ''k'' and send ''SIGKILL''.}}<br />
<br />
== Pacman integration: GNOME PackageKit ==<br />
{{Warning|1=As of Gnome 3.12 the pacman integration with packagekit is very outdated. It will be updated, fixed and working in GNOME 3.14.[http://www.phoronix.com/scan.php?page=news_item&px=MTc4NDQ]}}<br />
<br />
GNOME has its own Pacman GUI: {{Pkg|gnome-packagekit}}.<br />
<br />
Using the [https://www.archlinux.org/pacman/libalpm.3.html alpm] backend, it supports the following features:<br />
<br />
* Install and remove packages from the repos.<br />
* Periodically refresh package databases and prompt for updates.<br />
* Install packages from tarballs.<br />
* Search for packages by name, description, category or file.<br />
* Show package dependencies, files and reverse dependencies.<br />
* Ignore IgnorePkgs and hold HoldPkgs.<br />
* Report optional dependencies, .pacnew files, etc.<br />
<br />
You can change the {{ic|remove}} operation from -Rc to -Rsc by setting the DConf key {{ic|org.gnome.packagekit.enable-autoremove}}.<br />
<br />
=== Packages updates notifications ===<br />
<br />
If you want GNOME to check automatically for updates, you must install {{AUR|gnome-settings-daemon-updates}} from the official repository.<br />
<br />
== Customizing GNOME appearance ==<br />
<br />
The ''Systems Settings'' tool (provided by {{pkg|gnome-control-center}}) is a simple and streamlined panel which covers most basic settings. <br />
<br />
More elaborate graphical customization (such as modifying fonts, themes, titlebar buttons and such) can be done using the graphical ''GNOME tweak tool''. {{Pkg|gnome-tweak-tool}} is available from the [[official repositories]]. See [[#Theming]] below for more information about the subject.<br />
<br />
More extensive customisation may require more low-level configuration, using [[#gsettings and dconf]].<br />
<br />
==== Theming ====<br />
<br />
To install a new theme or icon set, put it in {{ic|~/.local/share/themes}} or {{ic|~/.local/share/icons}}. You can then activate it using ''GNOME tweak tool'', that is described above.<br />
<br />
Alternatively, you can set a GTK (icon) theme via {{ic|~/.config/gtk-3.0/settings.ini}}. In this file you can set the GTK theme ({{ic|gtk-theme-name}}), the icon theme ({{ic|gtk-icon-theme-name}}), the font ({{ic|gtk-font-name}}) and more.<br />
<br />
''Adwaita,'' the default GNOME 3 theme, is a part of {{pkg|gnome-themes-standard}}. Additional GTK3 themes can be found at [http://browse.deviantart.com/customization/skins/linuxutil/desktopenv/gnome/gtk3/ Deviantart web site]. For example:<br />
{{hc|~/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-theme-name = Adwaita<br />
# next option is applicable only if selected theme supports it<br />
gtk-application-prefer-dark-theme = true<br />
# set font name and dimension<br />
gtk-font-name = Sans 10<br />
</nowiki>}}<br />
<br />
It is necessary to restart the GNOME shell for settings to be applied. More GTK options are found at [http://developer.gnome.org/gtk3/3.0/GtkSettings.html#GtkSettings.properties GNOME developer documentation].<br />
<br />
==== gsettings and dconf ====<br />
<br />
dconf is a data store used by GNOME to store its settings. It can be edited with the graphical {{ic|dconf-editor}} or the command line {{ic|gsettings}} tool. See [http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html Customizing the GNOME Shell] for a tutorial on using gsettings.<br />
<br />
=== Customize top bar ===<br />
<br />
==== Show date in top bar ====<br />
<br />
By default GNOME displays only the weekday and time in the top bar. This can be changed with the following command. Changes take effect immediately. <br />
<br />
# gsettings set org.gnome.desktop.interface clock-show-date true<br />
<br />
==== Eliminate delay when logging out ====<br />
<br />
The following tweak removes the confirmation dialog and sixty second delay for logging out.<br />
<br />
This dialog normally appears when you log out with the status menu. This tweak affects the '''''Power Off''''' dialog as well. This is not a system-wide change; it affects only the user who enters this command. The change takes effect immediately after entering the command:<br />
<br />
$ gsettings set org.gnome.SessionManager logout-prompt 'false'<br />
<br />
==== Show system monitor ====<br />
<br />
The [https://extensions.gnome.org/extension/120/system-monitor/ system-monitor] extension is included in the {{pkg|gnome-shell-extensions}} package. The git version is available as {{AUR|gnome-shell-system-monitor-applet-git}} in the [[AUR]].<br />
<br />
==== Show weather information ====<br />
<br />
The [https://extensions.gnome.org/extension/613/weather/ Weather] extension can be installed from [https://extensions.gnome.org/extension/613/weather/ the official extension website]. The git version is available as {{AUR|gnome-shell-extension-weather-git}} in the [[AUR]].<br />
<br />
=== Activity view ===<br />
<br />
==== Remove entries from Applications view ====<br />
<br />
Like most desktop environments, GNOME uses .desktop files to populate its Applications view. These text files are located in the '''{{ic|/usr/share/applications}}''' folder. It is not possible to edit these files from a folder view ‒ Files does not treat their icons as text files. Use a terminal to display or edit .desktop file entries. You will need root privileges to edit the .desktop files.<br />
<br />
# ls /usr/share/applications<br />
# nano /usr/share/applications/foo.desktop<br />
<br />
For system wide changes, edit files in '''{{ic|/usr/share/applications}}'''. For local changes, make a copy of ''foo.desktop'' in your home folder.<br />
<br />
$ cp /usr/share/applications/foo.desktop ~/.local/share/applications/<br />
<br />
Edit .desktop files to fit your wishes. <br />
<br />
{{Note|Removing a .desktop file does not uninstall an application, but instead removes its desktop integration: MIME types, shortcuts, and so forth.}}<br />
<br />
To hide an application launcher open its .desktop file in a text editor and add the following line:<br />
<br />
NoDisplay=true<br />
<br />
==== Sort applications into folders ====<br />
<br />
Gnome 3.12 allows the user to sort applications into folders. A GUI for this is provided by Gnome Software, which Arch does not package (due to PackageKit incompatibilities). However, applications can still be sorted into folders manually via dconf. To add a folder, navigate via dconf to '''{{ic|org.gnome.desktop.app-folders}}''' and set the value of '''{{ic|folder-children}}''' to an array of comma separated folder names:<br />
<br />
['Utilities', 'Sundry']<br />
<br />
To add applications to these folders, use '''{{ic|gsettings}}''':<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ apps "['alacarte.desktop', 'dconf-editor.desktop']"<br />
<br />
This adds the applications corresponding to '''{{ic|alacarte.desktop}}''' and '''{{ic|dconf-editor.desktop}}'''' to the Sundry folder.<br />
<br />
This will also create the folder '''{{ic|org.gnome.desktop.app-folders.folders.Sundry}}'''. The constituents of the folder can be updated from dconf or from '''{{ic|gsettings}}''', by appending applications to the list.<br />
<br />
To name the folder (if it has no name it will simply appear at the top of the applications), set the name key via '''{{ic|gsettings}}''':<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ name "Sundry"<br />
<br />
Applications can also be sorted by their category (specified in their '''{{ic|.desktop}}''' file):<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ categories "['Office']"<br />
<br />
If certain applications matching a category are not wanted in a certain folder, exclusions can be set:<br />
<br />
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ excluded-apps "['libreoffice-draw.desktop']"<br />
<br />
For further information, refer to the [https://git.gnome.org/browse/gsettings-desktop-schemas/tree/schemas/org.gnome.desktop.app-folders.gschema.xml.in.in app-folders schema].<br />
<br />
==== Change icon size ====<br />
<br />
===== For applications in activity view =====<br />
<br />
To change the application icon size it is necessary to edit the GNOME-Shell theme.<br />
<br />
You can edit system files directly (make a backup first) or copy theme files to your local folder and edit these files.<br />
<br />
* For '''user themes''', edit '''{{ic|/usr/share/themes/<UserTheme>/gnome-shell/gnome-shell.css}}'''<br />
<br />
Edit ''gnome-shell.css'' and replace the following values. Afterward, [[#Restarting the shell|restart the GNOME shell]].<br />
<br />
{{hc|gnome-shell.css|<nowiki><br />
...<br />
/* Application Launchers and Grid */<br />
<br />
.icon-grid {<br />
spacing: 18px;<br />
-shell-grid-horizontal-item-size: 82px;<br />
-shell-grid-vertical-item-size: 82px;<br />
}<br />
<br />
.icon-grid .overview-icon {<br />
icon-size: 48px;<br />
}<br />
...<br />
</nowiki>}}<br />
<br />
===== In dash =====<br />
<br />
GNOME's Activities view has a dash on the left hand side, the size of the icons in this dash will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/dash.js}}.<br />
<br />
{{hc|dash.js|<nowiki><br />
...<br />
<br />
let iconSizes = [ 16, 22, 24, 32, 48, 64 ];<br />
<br />
...<br />
</nowiki>}}<br />
<br />
===== For switcher (alt-tab) =====<br />
<br />
GNOME comes with a built in task switcher, the size of the icons in this task switcher will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/altTab.js}}<br />
<br />
{{hc|altTab.js|<nowiki><br />
...<br />
<br />
const iconSizes = [96, 64, 48, 32, 22];<br />
<br />
...<br />
</nowiki>}}<br />
<br />
===== For system tray =====<br />
<br />
GNOME comes with a built in system tray, visible when the mouse is hovered over the bottom right corner of the screen. The size of the icons in this tray is set to a fixed value of 24. To change this value, edit {{ic|/usr/share/gnome-shell/js/ui/messageTray.js}}<br />
{{hc|messageTray.js|<nowiki><br />
...<br />
<br />
ICON_SIZE: 24,<br />
<br />
...<br />
</nowiki>}}<br />
<br />
==== Disable hot corner hovering ====<br />
<br />
===== Activity view =====<br />
<br />
To disable automatic activity view when the hot corner is hovered, edit {{ic|/usr/share/gnome-shell/js/ui/layout.js}} (that was ''panel.js'' in GNOME 3.0.x) :<br />
{{hc|layout.js|<nowiki><br />
this._corner = new Clutter.Rectangle({ name: 'hot-corner',<br />
width: 1,<br />
height: 1,<br />
opacity: 0,<br />
reactive: true });icon-size: 48px;<br />
}<br />
</nowiki>}}<br />
and set {{ic|reactive}} to {{ic|false}}. GNOME Shell needs to be restarted.<br />
<br />
{{tip|There are also [[GNOME#GNOME_shell_extensions|GNOME Shell extensions]] that can be installed which will modify this behaviour.}}<br />
<br />
===== Message Tray =====<br />
<br />
The message tray is shown when the mouse hovers at the bottom of the screen for one second. To disable this behavior, comment out the following line in {{ic|/usr/share/gnome-shell/js/ui/messageTray.js}}:<br />
{{hc|messageTray.js|<nowiki><br />
//pointerWatcher.addWatch(TRAY_DWELL_CHECK_INTERVAL, Lang.bind(this, this._checkTrayDwell));<br />
</nowiki>}}<br />
GNOME Shell needs to be restarted. The message tray is still visible in activity view.<br />
<br />
=== Titlebar ===<br />
<br />
==== Reduce title bar height ====<br />
<br />
* ''' global''' - edit {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and reduce its value to a minimum of {{ic|0}}.<br />
* '''user-only''' - copy {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}} to {{ic|/home/$USER/.local/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and reduce its value to a minimum of {{ic|0}}.<br />
<br />
Then restart the GNOME shell. <br />
<br />
To restore the original values, [[pacman|install]] the package {{Pkg|gnome-themes-standard}} from the [[official repositories]] or remove {{ic|/home/$USER/.local/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}.<br />
<br />
==== Reorder titlebar buttons ====<br />
<br />
At present this setting can be changed through '''dconf-editor.'''<br />
<br />
For example, to move the close and minimize buttons to the left side of the titlebar, open '''dconf-editor''' and locate the '''''org.gnome.shell.overrides.button_layout''''' key. Change its value to '''{{ic|close,minimize:}}''' (colon symbol designates the spacer between left side and right side of the titlebar). Place the buttons in your preferred order. You cannot use a button more than once. Also, keep in mind that certain buttons are deprecated.<br />
<br />
For a more complete experience, one might need to set more values:<br />
<br />
gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:'<br />
gsettings set org.gnome.shell.overrides button-layout 'close,minimize,maximize:'<br />
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/DecorationLayout' <'close,minimize,maximize:'>}"<br />
<br />
The first entry sets the order for the ''Gnome window manager''. The second entry sets the order for the Gnome window manager when used together with ''Gnome Shell'' (the latter uses this key, which defaults to ':close', to override the previous non-Shell setting). The last one sets the order for [[GTK%2B#Client-side decorations]].<br />
<br />
==== Hide titlebar when maximized ====<br />
<br />
To hide titlebar when windows are maximised, open file {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for the following tag and change its properties, children and the properties of its children tags as follows:<br />
<br />
<frame_geometry name="max" has_title="false"<br />
hide_buttons="true"<br />
parent="normal"<br />
rounded_top_left="false"<br />
rounded_top_right="false"><br />
<distance name="left_width" value="0" /><br />
<distance name="right_width" value="0" /><br />
<distance name="left_titlebar_edge" value="0"/><br />
<distance name="right_titlebar_edge" value="0"/><br />
<distance name="title_vertical_pad" value="0"/><br />
<border name="title_border" left="0" right="0" top="0" bottom="0"/><br />
<border name="button_border" left="0" right="0" top="0" bottom="0"/><br />
<distance name="bottom_height" value="0" /><br />
</frame_geometry><br />
<br />
Once the file has been saved, restart GNOME shell by pressing {{ic|Alt + F2}} and then typing {{ic|r}}. After this tweak, you may find it difficult to un-maximize a window when there is no titlebar to grab.<br />
<br />
With suitable keybindings, you should be able to use {{ic|Alt + F5}}, {{ic|Alt + F10}} or {{ic|Alt + Space}} to remedy the situation.<br />
<br />
To prevent {{ic|metacity-theme-3.xml}} from being overwritten each time package {{pkg|gnome-themes-standard}} is upgraded, add its name to {{ic|/etc/pacman.conf}} with {{ic|NoUpgrade}}:<br />
<br />
{{hc|/etc/pacman.conf|<nowiki>... previous lines ...<br />
<br />
# Pacman will not upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
# IgnorePkg =<br />
# IgnoreGroup =<br />
<br />
NoUpgrade = usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml # Do not add a leading slash to the path<br />
<br />
... more lines ...</nowiki>}}<br />
<br />
To restore original Adwaita theme values, install the {{pkg|gnome-themes-standard}} package.<br />
<br />
== Miscellaneous settings ==<br />
<br />
=== Power Management ===<br />
<br />
==== Turn off Suspend-To-RAM (S3) when closing the LID ====<br />
This setting is not available in GNOME, ''gnome-control-center'' and ''dconf'' make this available. The current approach is to manage this on the level of [[systemd]]. Edit {{ic|/etc/systemd/logind.conf}}, uncomment the {{ic|HandleLidSwitch}} line and set it to {{ic|ignore}}:<br />
<br />
{{hc|/etc/systemd/logind.conf|HandleLidSwitch&#61;ignore}}<br />
<br />
See the [[Power management#ACPI_events]] article for more information.<br />
<br />
==== No reaction on lid close ====<br />
<br />
When configuring the lid close events via [[Power management#ACPI_events]], the settings may seem to have no effect. If you have an external monitor connected to your laptop, this is default GNOME behaviour. Disconnect the monitor and the settings should work, otherwise your {{ic|/etc/systemd/logind.conf}} may be incorrect.<br />
To change default behaviour open the {{ic|dconf-editor}} and change {{ic|org.gnome.settings-daemon.plugins.xrandr.default-monitors-setup}} to {{ic|"do-nothing"}}.<br />
<br />
==== Change Critical Battery Level Action (for Laptops) ====<br />
<br />
The ''System Settings'' panel only allows the user to choose between ''Suspend'' or ''Hibernate''. To choose another option such as ''Do Nothing'' open the {{ic|dconf-editor}} and navigate to {{ic|org.gnome.settings-daemon.plugins.power}}. Edit the {{ic|"critical-battery-action"}} value to {{ic|"nothing"}}.<br />
<br />
=== Switch back scrolling behavior ===<br />
If you do not like the new scrollbar behavior just put {{ic|<nowiki>gtk-primary-button-warps-slider = false</nowiki>}} under the {{ic|<nowiki>[Settings]</nowiki>}} section in {{ic|~/.config/gtk-3.0/settings.ini}}:<br />
<br />
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-primary-button-warps-slider = false<br />
...<br />
</nowiki>}}<br />
<br />
=== Autostarting / Automatic program launch upon logging in ===<br />
<br />
As of Gnome 3.12 ''gnome-session-properties'' is deprecated. Specify which programs must start automatically after logging in using ''gnome-tweak-tool'' or via the manual method described [http://linuxandfriends.com/how-to-add-startup-programs-in-gnome-3/ here].<br />
<br />
{{Tip|Some users are unable to add autostart applications when {{ic|gnome-tweak-tool}} is launched from Gnome's overview. Launching it from a terminal sometimes fixes this. This issue can also be resolved by making changes described in this [https://bbs.archlinux.org/viewtopic.php?pid&#61;1414443#p1414443 post]. But users will still be unable to add any custom autostart programs such as scripts. <br> {{AUR|gnome-session-properties}} is still available in the [[AUR]].}}<br />
<br />
=== Editing applications menu ===<br />
<br />
{{pkg|alacarte}} provides a more complete menu editor for adding/editing menu entries.<br />
<br />
=== Gnome Terminal ===<br />
<br />
==== Inner padding ====<br />
<br />
To move the terminal output away from the window borders create the stylesheet {{ic|~/.config/gtk-3.0/gtk.css}} with the following setting:<br />
<br />
TerminalScreen {<br />
-VteTerminal-inner-border: 10px 10px 10px 10px;<br />
}<br />
<br />
==== Disable blinking cursor ====<br />
<br />
Since Gnome 3.8 and the migration to gsettings and dconf the key required to modify in order to disable the blinking cursor in the Terminal differs slightly in contrast to the old gconf key. To disable the blinking cursor in Gnome 3.8 use:<br />
<br />
gsettings set org.gnome.desktop.interface cursor-blink false<br />
<br />
If you prefer dconf to the gsettings CLI then open {{ic|dconf-editor}}, go to org -> gnome -> desktop -> interface and untick the option labelled '''cursor-blink'''.<br />
<br />
To disable the blinking cursor in Terminal only use (make sure profile uid is correct one):<br />
<br />
dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/cursor-blink-mode "'off'"<br />
<br />
==== Make new tabs inherit current directory (for Gnome Terminal 3.8+) ====<br />
<br />
In Gnome 3.8, the behaviour of how current directories are tracked has changed. To restore this behaviour, you need to source the {{ic|/etc/profile.d/vte.sh}} file, put this in your {{ic|~/.bashrc}} or {{ic|~/.zshrc}} for zsh users:<br />
<br />
source /etc/profile.d/vte.sh<br />
<br />
For more information refer to the [https://wiki.gnome.org/action/show/Apps/Terminal/FAQ?action=show&redirect=Terminal%252FFAQ#How_can_I_make_new_terminals_start_in_the_working_directory_of_the_current_terminal.3F Gnome wiki].<br />
<br />
=== Move dialog windows ===<br />
The default configuration for dialogs will not allow you to move them which causes problems in some cases. To change this you will need to use gconf-editor and change this setting:<br />
<br />
/desktop/gnome/shell/windows/attach_modal_dialogs<br />
<br />
After the change you will need to restart the shell for it to take affect.<br />
<br />
=== GNOME shell extensions ===<br />
<br />
GNOME Shell can be customized with extensions. These provide features such as a dock or a widget for changing the theme.<br />
<br />
Many extensions are collected and hosted by [https://extensions.gnome.org/ extensions.gnome.org]. They can be browsed and installed simply activating them in the browser. More information about gnome shell extensions can be found [https://extensions.gnome.org/about/ here].<br />
<br />
See [[#When an extension breaks GNOME|when an extension breaks GNOME]] for troubleshooting information.<br />
<br />
=== Default Applications ===<br />
<br />
While one can right click any file and set the default applications in 'Preferences', the settings are actually saved in {{ic | $HOME/.local/share/applications/mimeapps.list}} and {{ic| $HOME/.local/share/applications/mimeinfo.cache}}.<br />
<br />
{{tip|If you are making the change systemwide you may to create the {{ic|/usr/share/applications/mimeapps.list}} file yourself.}}<br />
<br />
==== File browser/replace Files ====<br />
<br />
You can specify a different file manager in the ''mimeapps.list'' file as shown below:<br />
<br />
'''User only''': add the line {{ic|<nowiki>inode/directory=myfilemanager.desktop</nowiki>}} to {{ic|~/.local/share/applications/mimeapps.list}}<br />
<br />
'''Systemwide''': add the line {{ic|<nowiki>inode/directory=myfilemanager.desktop</nowiki>}} to {{ic|/usr/share/applications/mimeapps.list}}<br />
<br />
Where my filemanager.desktop is the correct .desktop file for the file manager of your choice.<br />
<br />
Alternatively you can trick GNOME into using another file browser by editing the {{ic|Exec}} line in {{ic|/usr/share/applications/nautilus.desktop}}. See the correct parameters in the {{ic|.desktop}} file of the file manager of your choice, e.g.:<br />
<br />
{{hc|/usr/share/applications/nautilus.desktop|<br />
2=[...]<br />
Exec=thunar %F<br />
OR<br />
Exec=pcmanfm %U<br />
OR<br />
Exec=nemo %U<br />
[...]<br />
}}<br />
<br />
==== PDF viewer ====<br />
<br />
In some cases when you have installed Inkscape or other graphic programs Evince Document Viewer might no longer be selected as the default PDF application. If it is not available in the '''Open With''' entry which would be the GUI solution, you can use the following user command to make it the default application again:<br />
<br />
xdg-mime default evince.desktop application/pdf<br />
<br />
=== Middle mouse button ===<br />
<br />
By default, GNOME 3 disables middle mouse button emulation regardless of [[Xorg]] settings ('''Emulate3Buttons'''). To enable middle mouse button emulation use:<br />
<br />
$ gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true<br />
<br />
=== Display dimming ===<br />
<br />
By default GNOME 3 has a ten second idle timeout to dim the screen regardless of the battery and AC state:<br />
<br />
# gsettings get org.gnome.settings-daemon.plugins.power idle-dim-time<br />
<br />
To set a new value type the following<br />
<br />
# gsettings set org.gnome.settings-daemon.plugins.power idle-dim-time <int><br />
<br />
where <int> is the value in seconds.<br />
<br />
=== Changing hotkeys ===<br />
Certain hotkeys cannot be changed directly via the ''System Settings'' panel. In order to change these keys, use dconf-editor. An example of particular note is the hotkey Alt-Above_Tab. On US keyboards, this is Alt-`: is a hotkey often used in the [[Emacs]] editor. It can be changed by opening dconf-editor and modifying the ''switch-group'' key found in {{ic|org.gnome.desktop.wm.keybindings}}.<br />
<br />
It is possible to manually change the keys via an application's so-called accel map file. Where it is to be found is up to the application: For instance, Thunar's is at ~/.config/Thunar/accels.scm, whereas Files's is located at ~/.config/nautilus/accels and ~/.gnome2/accels/nautilus on old release.<br />
<br />
The file should contain a list of possible hotkeys, each unchanged line commented out with a leading ";" that has to be removed for a change to become active.<br />
For example to replace the hotkey used by Files to move files to the trash folder, change the line:<br />
<br />
; (gtk_accel_path "<Actions>/DirViewActions/Trash" "<Primary>Delete")<br />
to this:<br />
<br />
(gtk_accel_path "<Actions>/DirViewActions/Trash" "Delete")<br />
<br />
The file is regenerated regularly so do not comment the file. The uncommented line will stay but every comment you add will be lost.<br />
<br />
==== Hotkeys in Files 3.4 and older ====<br />
Firstly, use '''dconf-editor''' to place a checkmark next to {{ic|can-change-accels}} in the key named ''org.gnome.desktop.interface.''<br />
<br />
We will replace the hotkey — a.k.a. keyboard shortcut, keyboard accelerator — used by Files to move files to the trash folder.<br />
The default assignment is a somewhat-awkward {{ic|Ctrl+Delete}}.<br />
* Open Files, select any file, and click '''Edit''' on the menu bar.<br />
* Hover over the ''Move to Trash'' menu item.<br />
* While hovering, press {{ic|Delete}}. The current accelerator is now unset.<br />
* Press the key that you wish to become the new keyboard accelerator.<br />
* Press {{ic|Delete}} to make the new accelerator be the Delete key.<br />
Unless you select a file or folder, ''Move to Trash'' will be grayed-out. Finally, disable {{ic|can-change-accels}} to prevent accidental hotkey changes.<br />
<br />
=== Screencast recording ===<br />
<br />
Gnome features the built-in possbility to create screencasts easily. Thereby Control+Shift+Alt+R keybinding starts and stops the recording. A red circle is displayed in the bottom right corner of the screen when the recording is in progress. After the recording is finished, a file named 'Screencast from %d%u-%c.webm' is saved in the Videos directory. In order to use the screencast feature you need to have installed the gst plugins which are:<br />
<br />
$ pacman -Qs gst<br />
<br />
=== Modify Keyboard with XkbOptions ===<br />
<br />
Using the '''dconf-editor''', navigate to the key named {{ic|org.gnome.desktop.input-sources.xkb-options}} and add desired XkbOptions (e.g. ''caps:swapescape'') to the list.<br />
<br />
See {{ic|/usr/share/X11/xkb/rules/xorg}} for all XkbOptions and {{ic|/usr/share/X11/xkb/symbols/*}} for the respective descriptions.<br />
<br />
{{Note|To enable the {{ic|Ctrl+Alt+Backspace}} combination to terminate Xorg, use the {{Pkg|gnome-tweak-tool}} from [[official repositories]]. Within the '''Tweak Tool''', navigate to ''Typing > Terminate'' and select the option {{ic|Ctrl+Alt+Backspace}} from the dropdown menu.}}<br />
<br />
=== Toggle keyboard layouts ===<br />
Since Gnome does not consider any configuration in {{ic|/etc/X11/conf.d/*.conf}} you have to set the command for layout switching either via the control center with the options ''Switch to previous source'' and ''Switch to next source'' or if you want to use Alt - Shift combination you have to use the Gnome-Tweak-Tool and set ''Typing -> Modifiers-only input sources -> select Alt-shift''. For more information see also the forum [https://bbs.archlinux.org/viewtopic.php?id=152127 thread].<br />
<br />
=== HiDPI Support (Retina Screens) ===<br />
<br />
See [[HiDPI]].<br />
<br />
=== Other tips ===<br />
See [[GNOME tips]].<br />
<br />
== Tracker (search program) ==<br />
The {{Pkg|tracker}} provides the Tracker program, an indexing application. You can configure it with {{ic|tracker-preferences}}, and monitor status with {{ic|tracker-control}}. Once installed, indexing should start automatically when you log in. You can explicitly start indexing with {{ic|tracker-control -s}}. Search settings can also be configured in the ''System Settings'' panel.<br />
<br />
== Totem (movie player) ==<br />
<br />
Totem is a movie player based on [[GStreamer]]. For information about adding codecs or hardware acceleration, see [[GStreamer]].<br />
<br />
== Empathy (integrated messaging) and GNOME Online Accounts ==<br />
<br />
Empathy, the engine behind integrated messaging, GNOME Online Accounts, and all other system settings based on messaging accounts will not function correctly unless the {{grp|telepathy}} group of packages or at least one of the backends ({{pkg|telepathy-gabble}}, or {{pkg|telepathy-haze}}, for example) is installed.<br />
<br />
These packages are '''not''' included in either the {{grp|gnome}} or {{grp|gnome-extra}} groups . You can install the Telepathy and optionally any backends with:<br />
<br />
# pacman -S telepathy<br />
<br />
Without telepathy, Empathy will not open the account management dialog and can get stuck in this state. If this happens -- even after quitting Empathy cleanly -- the {{ic|/usr/bin/empathy-accounts}} application can remain running and will need to be killed before you can add any new accounts. Likewise, without telepathy installed, the 'Add an online account' button in GNOME Online Accounts will do nothing.<br />
<br />
View descriptions of telepathy components on the [http://telepathy.freedesktop.org/wiki/Components freedesktop.org telepathy wiki].<br />
<br />
[[Avahi]] daemon is required for connecting with the People Nearby account, and also in order for some desktop extensions to work correctly like [https://extensions.gnome.org/extension/746/chat-status/ Chat Status].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Cannot change settings in dconf-editor ===<br />
<br />
When one cannot set settings in {{pkg|dconf}}, it is possible their dconf user settings are corrupt. In this case it is best to delete the user dconf files in {{ic|~/.config/dconf/user*}} and set the settings in dconf-editor after.<br />
<br />
=== Extensions ===<br />
<br />
==== When an extension breaks GNOME ====<br />
<br />
When enabling shell extensions causes GNOME breakage, you should first remove the ''user-theme'' and ''auto-move-windows'' extensions from their installation directory.<br />
<br />
The installation directory could be one of {{ic|~/.local/share/gnome‑shell/extensions}}, {{ic|/usr/share/gnome‑shell/extensions}} or {{ic|/usr/local/share/gnome‑shell/extensions}}. Removing these two extension-containing folders may fix the breakage. Otherwise, isolate the problem extension with trial‑and‑error.<br />
<br />
Removing or adding an extension-containing folder to the aforementioned directories removes or adds the corresponding extension to your system. Details on GNOME Shell extensions are available at the [https://live.gnome.org/GnomeShell/Extensions GNOME web site.]<br />
<br />
==== Extensions do not work after GNOME 3 update ====<br />
<br />
Locate the folder where your extensions are installed. It might be {{ic|~/.local/share/gnome-shell/extensions}} or {{ic|/usr/share/gnome-shell/extensions}}.<br />
<br />
Edit each occurrence of {{ic|metadata.json}} which appears in each extension sub-folder.<br />
<br />
{| border="0"<br />
| Insert: || {{ic|"shell-version": ["3.6"]}}<br />
|-<br />
| Instead of (for example): || {{ic|"shell-version": ["3.4"]}}<br />
|}<br />
<br />
{{ic|"3.x"}} indicates the extension works with every shell version. If it breaks, you will know to change it back.<br />
<br />
==== Remove Gnome Shell Extensions ====<br />
<br />
If you have trouble with uninstalling Gnome Extensions via https://extensions.gnome.org/local/, then probably they have been installed as system-wide extensions with {{ic|pacman -S gnome-shell-extensions}} before. To remove them, you have to be careful, because the following instruction removes all extensions from other user's, too:<br />
<br />
# pacman -R gnome-shell-extensions<br />
<br />
Following that, you refresh Gnome Shell by pressing ALT+F2 and entering {{ic|restart}}.<br />
<br />
Then go to https://extensions.gnome.org/local/ again and have a look for your installed extensions list. It should have changed.<br />
<br />
All other extensions should be removable by pressing the red X icon to the right. If not, something may be broken. <br />
<br />
As a final step, you can remove them manually from {{ic|~/.local/share/gnome-shell/extensions/*}} and/or {{ic|/usr/share/gnome-shell/extensions}}. Restart Gnome Shell again and you should be fine.<br />
<br />
=== The "Windows" key ===<br />
<br />
By default, this key is mapped to the "overlay-key" to launch the Overview. You can remove this key mapping to free up your {{ic|Windows Key}} (also called {{ic|Mod4}}), which GNOME calls {{ic|Super_L}}, by utilizing {{ic|gsettings}}.<br />
<br />
Example:<br />
<br />
{{ic| gsettings set org.gnome.mutter overlay-key 'Foo';}}.<br />
You can leave out '''Foo''' to simply remove any binding to that function.<br />
<br />
{{Note| GNOME also uses {{ic|Alt+F1}} to launch the Overview.}}<br />
<br />
=== Keyboard Shortcut do not work with only conky running ===<br />
<br />
The gnome-shell keyboard shortcuts like {{ic|Alt+F2}}, {{ic|Alt+F1}}, and the media key shortcuts do not work if conky is the only program running. However if another application like gedit is running, then the keyboard shortcuts work.<br />
<br />
solution: edit .conkyrc <br />
<br />
own_window yes<br />
own_window_transparent yes<br />
own_window_argb_visual yes<br />
own_window_type dock<br />
own_window_class Conky<br />
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager<br />
<br />
=== Window opens behind other windows when using multiple monitors ===<br />
<br />
This is possibly a bug in GNOME Shell which causes new windows to open behind others. Unchecking {{ic|workspaces_only_on_primary}} in {{ic|org/gnome/shell/overrides}} using ''dconf-editor'' solves this problem.<br />
<br />
=== Multiple monitors and dock extension ===<br />
<br />
If you have multiple monitors configured using Nvidia Twinview, the dock extension may get sandwiched in-between the monitors. You can edit the source of this extension to reposition the dock to a position of your choosing.<br />
<br />
Edit {{ic|/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js}} and locate this line in the source:<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);<br />
<br />
The first parameter is the X position of the dock display, by subtracting 15 pixels as opposed to 2 pixels from this it correctly positioned on my primary monitor, you can play around with any X,Y coordinate pair to position it correctly.<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);<br />
<br />
=== "Show Desktop" keyboard shortcut does not work ===<br />
<br />
GNOME developers treated the corresponding binding as bug (see https://bugzilla.gnome.org/show_bug.cgi?id=643609) due to Minimization being deprecated. To show the desktop again assign ALT+STRG+D to the following setting:<br />
<br />
System Settings --> Keyboard --> Shortcuts --> Navigation --> Hide all normal windows<br />
<br />
=== Unable to apply stored configuration for monitors ===<br />
<br />
If you encounter this message try to disable the xrandr gnome-settings-daemon plugin :<br />
<br />
$ dconf write /org/gnome/settings-daemon/plugins/xrandr/active false<br />
<br />
=== Lock button fails to re-enable touchpad ===<br />
<br />
Some laptops have a touchpad lock button that disables the touchpad so that users can type without worrying about touching the touchpad. It appears currently that although GNOME can lock the touchpad by pressing this button, it cannot unlock it. If the touchpad gets locked you can do the following to unlock it:<br />
<br />
# Start a terminal. You can do this by pressing {{ic|Alt+F2}}, then typing {{ic|gnome-terminal}} followed by pressing {{ic|Enter}}.<br />
# Type in the following command:<br />
<br />
$ xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1<br />
<br />
=== Consistent cursor theme ===<br />
<br />
You may find that the cursor theme used in GNOME is not consistent. For example, it may change when moving the cursor across different application windows. To fix this problem, set the cursor theme by creating an {{ic|index.theme}} file which defines the cursor theme according to the XDG icon theme specification. See the following section of the [[Cursor Themes]] article: [[Cursor Themes#Using an index.theme file (recommended)]].<br />
<br />
=== Tracker & Documents do not list any local files ===<br />
<br />
In order for Tracker (and, therefore, Documents) to detect your local files, they must be stored in directories that it knows of. If your documents are contained in one of the usual XDG standard directories (i.e. "Documents" or "Music"), you should install {{Pkg|xdg-user-dirs}} and run:<br />
<br />
# xdg-user-dirs-update<br />
<br />
This will create all of the usual XDG home directories if they do not already exist and it will create the config file definining these directories that Tracker and Documents depend upon.<br />
<br />
=== Passwords are not remembered ===<br />
<br />
If you get a password prompt every time you login, and you find password are not saved, you might need to create/set a default keyring.<br />
<br />
Install {{pkg|seahorse}}. Open "Passwords and Keys" from the menu or run {{ic|seahorse}}. Select View > By Keyring. If there is no keyring in the left column (it will be marked with a lock icon), go to File > New > Password Keyring and give it a nice name. You will be asked to enter a password. If you do not give it a password it will be unlocked automatically even when using autologin, but passwords will not be stored securely. Finally, right-click on the keyring you just created and select "Set as default".<br />
<br />
=== Windows cannot be modified with Alt-Key + Mouse-Button ===<br />
<br />
Change the dconf-setting "org.gnome.desktop.wm.preferences.mouse-button-modifier" from <Super> back to <Alt>. It is not possible to change this with ''System Settings'' > "Keyboard" > "Shortcuts", you will find there only the regular keybindings. The developers of GNOME decided to change this from 3.4 to 3.6 because of this bug report https://bugzilla.gnome.org/show_bug.cgi?id=607797<br />
<br />
=== Gnome-shell 3.8.x fails to load with a black screen + cursor ===<br />
<br />
If you have a non-UTF8 language enabled, Gnome 3 can fail to load. Disable non-UTF-8 locales and perform a locale-gen until this is resolved.<br />
For more information see [https://bugzilla.gnome.org/show_bug.cgi?id=698952 this bug report].<br />
<br />
Additionally, if multiple locales of different languages are enabled, it may be necessary to disable all locales except for one (which is UTF-8).<br />
<br />
=== UI elements scale incorrectly ===<br />
<br />
Gnome introduced HDPI support in version 3.10. If your display does not provide the correct screen size through EDID, this can lead to incorrectly scaled UI elements. As a workaround you can open dconf-editor and find the key {{ic|scaling-factor}} in {{ic|org.gnome.desktop.interface}}. Set it to {{ic|1}} to get the standard scale.<br />
<br />
=== Tear-free video with Intel HD Graphics ===<br />
<br />
Enabling the [[Intel _Graphics#Tear-free_video|Xorg Intel TearFree option]] is a known workaround to tearing problems on Intel adapters, however the way this option acts makes it redundant with the use of a compositor (adds up memory consumption and lowers performance, see [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c123 the original bug report's final comment]).<br />
<br />
On the other hand, GNOME Shell uses Mutter as a compositor which has a tweak known to address tearing problems (see [https://bugzilla.gnome.org/show_bug.cgi?id=657071#c1 the original suggestion for this fix] and its mention in [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c59 the Freedesktop bug report]): the line {{ic|1=CLUTTER_PAINT=disable-clipped-redraws:disable-culling}} must be appended to {{ic|/etc/environment}} and Xorg server restarted. This tweak solved tearing problems.<br />
<br />
=== Logging in through GDM or lightdm quickly returns to the login screen without any feedback ===<br />
<br />
As discovered by the person in [http://forums.debian.net/viewtopic.php?f=6&t=84115 this] thread, some aspect of checking for the existence of and then sourcing a bash_completion script seems to cause this issue. In addition to the bash completion setup in package {{Pkg|bash-completion}}, the Ruby Version Manager (RVM) includes the invocation of a bash completion script as part of it's init. It's worth keeping in mind that whatever causes this issue likely exists outside the exclusive realm of bash completion scripts, and that /etc/profile* is still worth poking around in while debugging even if a completion script isn't found.<br />
<br />
=== Gnome System Icons are not loaded properly ===<br />
<br />
Problems with the loading of system icons, such the ones in the title bar of Files, might be solved by [[pacman#Installing specific packages|(re)installing]] the package {{Pkg|gdk-pixbuf2}}.<br />
<br />
This may also fix the "oh no" screen and/or very slow loading and login with GDM as described in [https://bbs.archlinux.org/viewtopic.php?pid=1414157 this] thread.<br />
<br />
=== Artifacts when maximizing windows ===<br />
<br />
Maximizing windows may cause artifacts as of GNOME 3.12.0 [https://bbs.archlinux.org/viewtopic.php?id=183617] [https://bugzilla.gnome.org/show_bug.cgi?id=728385]. See [[#Tear-free video with Intel HD Graphics]].<br />
<br />
<br />
=== Gnome 3.14 annoying "show settings" animation ===<br />
<br />
To disable the annoying animation just use dconf editor and uncheck<br />
<br />
org.gnome.desktop.interface enable-animations<br />
<br />
== See also ==<br />
<br />
* [http://www.gnome.org/ The Official Website of GNOME]<br />
* [http://extensions.gnome.org/ Extensions for GNOME-shell]<br />
* Themes, icons, and backgrounds:<br />
** [http://art.gnome.org/ GNOME Art]<br />
** [http://www.gnome-look.org/ GNOME Look]<br />
* GTK/GNOME programs:<br />
** [http://www.gnomefiles.org/ GNOME Files]<br />
** [http://www.gnome.org/projects/ GNOME Project Listing]</div>Blackouthttps://wiki.archlinux.org/index.php?title=Firefox&diff=318904Firefox2014-06-10T08:59:27Z<p>Blackout: /* Installing */</p>
<hr />
<div>[[Category:Web Browser]]<br />
[[ar:Firefox]]<br />
[[cs:Firefox]]<br />
[[es:Firefox]]<br />
[[fr:Firefox]]<br />
[[it:Firefox]]<br />
[[ja:Firefox]]<br />
[[ko:Firefox]]<br />
[[ru:Firefox]]<br />
[[tr:Firefox]]<br />
[[zh-CN:Firefox]]<br />
{{Related articles start}}<br />
{{Related|Browser plugins}}<br />
{{Related|Firefox tweaks}}<br />
{{Related|Chromium}}<br />
{{Related|Opera}}<br />
{{Related articles end}}<br />
[http://www.firefox.com Firefox] is a popular open-source graphical web browser from [http://www.mozilla.com Mozilla].<br />
<br />
== Installing ==<br />
<br />
Firefox can be [[pacman|installed]] with the {{Pkg|firefox}} package, available in the [[official repositories]].<br />
<br />
Other alternatives from the [[AUR]] include:<br />
<br />
*{{AUR|firefox-esr-bin}} (a [https://www.mozilla.org/en-US/firefox/organizations/ long-term] supported version)<br />
*{{AUR|firefox-beta-bin}} (the official [https://www.mozilla.org/en-US/firefox/channel/ cutting-edge] version by Mozilla)<br />
*{{AUR|firefox-aurora}} ([http://www.mozilla.org/en-US/firefox/aurora/ alpha version] equivalent of Thunderbird Earlybird)<br />
*{{AUR|firefox-nightly}} (a [https://nightly.mozilla.org/ nightly] version)<br />
<br />
Here you can find an overview of Mozilla's [https://wiki.mozilla.org/Releases releases].<br />
<br />
There are a number of language packs available for Firefox, other than the standard English. Language packs are usually named as {{ic|firefox-i18n-languagecode}} (where {{ic|languagecode}} can be any language code, such as '''de''', '''ja''', '''fr''', etc.). For a list of available language packs see [https://www.archlinux.org/packages/?sort=&q=firefox-i18n&maintainer=&last_update=&flagged=&limit=100 this].<br />
<br />
If Firefox does not anti-alias and/or hint your fonts, try to install {{AUR|ttf-win7-fonts}} (preferred) or {{AUR|ttf-ms-fonts}} and take a look at [[Font configuration]].<br />
<br />
=== Firefox variants ===<br />
<br />
* {{App|[[Wikipedia:Mozilla Corporation software rebranded by the Debian project#IceWeasel|Iceweasel]]|Fork of Firefox that is being developed by Debian. The main difference is that it does not include any trademarked Mozilla artwork.|http://wiki.debian.org/Iceweasel|{{AUR|iceweasel}}}}<br />
{{Note|For some more information about Iceweasel's existance see [http://web.glandium.org/blog/?p&#61;97 this blog post].}}<br />
* {{App|[[Wikipedia:GNU IceCat|GNU IceCat]]|Web browser distributed by the GNU Project. It is made entirely of free software and is compatible with the GNU/Linux operating system and almost all of Firefox's addons. |http://www.gnu.org/software/gnuzilla/|{{AUR|icecat}}}}<br />
* {{App|Firefox KDE|Version of Firefox that incorporates an OpenSUSE patch for better KDE integration than is possible through simple Firefox plugins.|http://gitorious.org/firefox-kde-opensuse|{{AUR|firefox-kde-opensuse}}}}<br />
* {{App|Firefox GTK3|Firefox with GTK3 integration.||{{AUR|firefox-gtk3-bin}}}}<br />
<br />
== Add-ons ==<br />
<br />
Firefox is well known for its large library of add-ons which can be used to add new features or modify the behavior of existing features of Firefox. You can find new add-ons or manage installed add-ons with Firefox's "Add-ons Manager."<br />
<br />
For a list of popular add-ons, see [https://addons.mozilla.org/en-US/firefox/extensions/?sort=popular Mozilla's add-on list sorted by popularity]. See also [[Wikipedia:List of Firefox extensions|List of Firefox extensions]] on Wikipedia.<br />
<br />
== Plugins ==<br />
<br />
See the main article: [[Browser plugins]]<br />
<br />
To find out what plugins are installed/enabled, enter:<br />
about:plugins<br />
in the Firefox address bar or go to the ''Add-ons'' entry in the Firefox Menu and select the ''Plugins'' tab.<br />
<br />
=== GNOME Keyring integration ===<br />
<br />
Install {{AUR|firefox-gnome-keyring}} from the [[AUR]] to integrate Firefox with [[GNOME Keyring]]. To make firefox-gnome-keyring use your login keychain, set extensions.gnome-keyring.keyringName to "login" (without the double quotes) in about:config. Note the lowercase 'l' despite the the keychain name having an uppercase 'L' in Seahorse.<br />
<br />
=== KDE integration ===<br />
<br />
* To bring the KDE look to GTK apps (including Firefox), install {{Pkg|oxygen-gtk2}} and {{Pkg|kde-gtk-config}}. After that, go to System Settings -> Application Appearance -> GTK. Be sure to choose 'oxygen-gtk' in 'Select a GTK2 Theme' and check 'Show icons in GTK buttons' and 'Show icons in GTK menus'.<br />
<br />
* To use KDE's KPart technology with Firefox, by embedding different KDE file viewers into the browser, you can install {{Pkg|kpartsplugin}}.<br />
<br />
* For integration with KDE’s mime type system and file dialogs, one can use {{AUR|firefox-kde-opensuse}} variant from AUR with OpenSUSE’s patches applied, or {{AUR|firefox-kde-global-menu}} for that ''and'' appmenu integration.<br />
<br />
* Add-ons may provide some integration, such as [https://addons.mozilla.org/en-US/firefox/addon/kde-wallet-password-integratio/ KWallet integration] and [https://addons.mozilla.org/en-US/firefox/addon/plasmanotify/ Plasma notifications].<br />
<br />
=== Dictionaries for spell checking ===<br />
<br />
To enable spell checking for a specific language right click on any text field and check the ''Check Spelling'' box. To select a language for spell checking to you have right click again and select your language from the ''Languages'' sub-menu.<br />
<br />
To get more languages just click ''Add Dictionaries...'' and select the dictionary you want to install from the list.<br />
<br />
Alternatively, you can install the {{Pkg|hunspell}} package, available in the [[official repositories]]. You also need to install dictionaries for your language, such as {{Pkg|hunspell-fr}} (for the French language) or {{Pkg|hunspell-he}} (for Hebrew).<br />
<br />
By default, Firefox will try to symlink all your hunspell dictionaries in {{ic|/usr/lib/firefox/dictionaries}}. If you want to have less dictionaries offered to you in Firefox, you can remove some of those links. Be aware that it may not stand an upgrade of Firefox.<br />
<br />
=== Adding search engines ===<br />
<br />
Search engines can be added to Firefox through normal add-ons, see [https://addons.mozilla.org/en-US/firefox/search-tools/ this page] for a list of available search engines.<br />
<br />
A very extensive list of search engines can be found [http://mycroft.mozdev.org/ here].<br />
<br />
Also, you can use the [https://firefox.maltekraus.de/extensions/add-to-search-bar add-to-searchbar] extension to add a search to your search bar from any web site, by simply right clicking on the site's search field and selecting ''Add to Search Bar...''<br />
<br />
If you want a manual solution, take a look at {{ic|~/.mozilla/firefox/''xxxxxxxx''.default/searchplugins/}} (where ''xxxxxxxx'' is your profile ID).<br />
<br />
==== arch-firefox-search ====<br />
<br />
Install the {{Pkg|arch-firefox-search}} package, available in the [[official repositories]], to add Arch-specific searches (AUR, wiki, forum, etc, as specified by user) to the Firefox search toolbar.<br />
<br />
=== Multimedia playback ===<br />
<br />
If {{ic|media.gstreamer.enabled}} is enabled in {{ic|about:config}}, Firefox will try to use [[GStreamer]] for playing multimedia inside HTML5 {{ic|<audio>}} and {{ic|<video>}} elements. For this to work, the optional dependencies of the {{Pkg|firefox}} package need to be installed:<br />
<br />
* {{Pkg|gstreamer0.10-base-plugins}}: vorbis decoding, ogg demuxing<br />
* {{Pkg|gstreamer0.10-good-plugins}}: webm and mp4 demuxing<br />
* {{Pkg|gstreamer0.10-bad-plugins}}: aac, vp8 and opus decoding<br />
* {{Pkg|gstreamer0.10-ugly-plugins}}: h.264 and mp3 decoding<br />
* {{Pkg|gstreamer0.10-ffmpeg}}: more decoders<br />
<br />
Restart Firefox, and go to [https://www.youtube.com/html5 YouTube's HTML5 page] or [http://www.quirksmode.org/html5/tests/video.html this page] to verify that it is correctly installed and is in use.<br />
<br />
Alternatively, to force Firefox to rely on the Adobe Flash Player to play HTML5 audio, set {{ic|media.gstreamer.enabled}} to {{ic|false}} in your {{ic|about:config}}.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Setting your e-mail client ===<br />
<br />
Firefox is usually set to open {{ic|mailto}} links with a web application such as Gmail or Yahoo Mail. To set your e-mail client in Firefox to use with {{ic|mailto}} links, go to ''Preferences > Applications'' and modify the ''action'' column corresponding to the {{ic|mailto}} content type. You have to set this to the exact location of your e-mail client (e.g. {{ic|/usr/bin/kmail}} for Kmail).<br />
<br />
=== File association ===<br />
<br />
{{Poor writing|Unless there is some very specific solution, there should be only a link to [[Default applications]].}}<br />
<br />
==== Open containing folder problems (GNOME 3) ====<br />
<br />
If you expect Firefox to launch [[Nautilus]] when using the "Open Containing Folder" option in the Downloads manager, but [[Thunar]] or [[Wine]] Explorer launches instead, check these two lines in your user's {{ic|~/.local/share/applications/defaults.list}}:<br />
<br />
inode/directory=''someprogram''.desktop<br />
x-directory/normal=''someprogram''.desktop<br />
<br />
If ''someprogram'' is not ''nautilus'', change them to be so.<br />
<br />
==== Open containing folder problems (KDE) ====<br />
<br />
If Firefox launches something other than your preferred file manager when using the "Open Containing Folder" option in the Downloads manager, make sure you select your file manager of choice (e.g. {{pkg|kdebase-dolphin}}) in KDE's System Settings under ''Workspace Appearance and Behavior > Default Applications > File Manager''.<br />
<br />
If Firefox is still not opening your file manager of choice, modify your user's {{ic|~/.local/share/applications/defaults.list}} to include these two lines:<br />
x-directory/normal=kde4-dolphin.desktop;kde4-kfmclient_dir.desktop;<br />
inode/directory=kde4-dolphin.desktop;kde4-kfmclient_dir.desktop;kde4-gwenview.desktop;kde4-filelight.desktop;kde4-cervisia.desktop;<br />
<br />
==== File association problems ====<br />
<br />
{{Accuracy|1={{Pkg|firefox}} does not seem to use {{Pkg|libgnome}} at all, though [https://bugzilla.mozilla.org/show_bug.cgi?id=694570 this bug] is still open.}}<br />
<br />
For non-[[GNOME]] users, Firefox may not associate file types properly or at all (in the "Open With" part of the download dialog). Installing {{Pkg|libgnome}} from the [[official repositories]] amends the problem.<br />
<br />
If you are using [[KDE]] you can also do the following:<br />
ln -s ~/.local/share/applications/mimeapps.list ~/.local/share/applications/mimeinfo.cache<br />
From now on Firefox should use the applications which are explicitly set in KDE.<br />
<br />
=== Firefox keeps creating ~/Desktop even when this is not desired ===<br />
<br />
Firefox uses {{ic|~/Desktop}} as the default place for download and upload files. To set it to another folder, create {{ic|~/.config/user-dirs.dirs}} and add:<br />
XDG_DESKTOP_DIR="/home/''user''/"<br />
XDG_DOWNLOAD_DIR="/home/''user''/''dir''"<br />
XDG_TEMPLATES_DIR="/home/''user''/''dir''"<br />
XDG_PUBLICSHARE_DIR="/home/''user''/''dir''"<br />
XDG_DOCUMENTS_DIR="/home/''user''/''dir''"<br />
XDG_MUSIC_DIR="/home/''user''/''dir''"<br />
XDG_PICTURES_DIR="/home/''user''/''dir''"<br />
XDG_VIDEOS_DIR="/home/''user''/''dir''"<br />
Change ''user'' and ''dir'' to the actual directory.<br />
<br />
=== Make plugins respect blocked pop-ups ===<br />
<br />
Some plugins can misbehave and bypass the default settings, such as the Flash plugin. You can prevent this by doing the following:<br />
<br />
# Type {{ic|about:config}} into the address bar.<br />
# Right-click on the page and select {{ic|New}} and then {{ic|Integer}}.<br />
# Name it {{ic|privacy.popups.disable_from_plugins}}.<br />
# Set the value to 2.<br />
<br />
The possible values are:<br />
* '''0''': Allow all popups from plugins.<br />
* '''1''': Allow popups, but limit them to dom.popup_maximum.<br />
* '''2''': Block popups from plugins.<br />
* '''3''': Block popups from plugins, even on whitelisted sites.<br />
<br />
=== Middle-click errors ===<br />
<br />
A common error message you can get while using the middle mouse button in Firefox is:<br />
The URL is not valid and cannot be loaded.<br />
<br />
Another symptom is that middle-clicking results in unexpected behavior, like accessing a random web page.<br />
<br />
The reason stems from the use of the middle mouse buttons in UNIX-like operating systems. The middle mouse button is used to paste whatever text has been highlighted/added to the clipboard. Then there is the possibly conflicting feature in Firefox, which defaults to loading the URL of the corresponding text when the button is depressed. This can be easily disabled by going to {{ic|about:config}} and setting the {{ic|middlemouse.contentLoadURL}} option to '''false'''.<br />
<br />
Alternatively, having the traditional scroll cursor on middle-click (default behavior on Windows browsers) can be achieved by searching for {{ic|general.autoScroll}} and setting it to '''true'''.<br />
<br />
=== Backspace does not work as the 'Back' button ===<br />
<br />
As per [http://ubuntu.wordpress.com/2006/12/21/fix-firefox-backspace-to-take-you-to-the-previous-page/ this article], the feature has been removed in order to fix a bug. To re-introduce the original behavior go to {{ic|about:config}} and set the {{ic|browser.backspace_action}} option to '''0''' (zero).<br />
<br />
=== Firefox does not remember login information ===<br />
<br />
It may be due to a corrupted {{ic|cookies.sqlite}} file in [http://support.mozilla.com/en-US/kb/Profiles#How_to_find_your_profile Firefox's profile] folder. In order to fix this, just rename or remove {{ic|cookie.sqlite}} while Firefox is not running.<br />
<br />
Open a terminal of choice and type the following:<br />
$ cd ~/.mozilla/firefox/xxxxxxxx.default/<br />
$ rm -f cookies.sqlite<br />
{{Note|xxxxxxxx represents a random string of 8 characters.}}<br />
<br />
Restart Firefox and see if it solved the problem.<br />
<br />
=== Unreadable input fields with dark GTK+ themes ===<br />
<br />
{{Merge|Firefox tweaks#Appearance|Anything on that page might be in troubleshooting section as well, so let's keep the info in one place.}}<br />
<br />
When using a dark [[GTK+]] theme, one might encounter Internet pages with unreadable input and text fields (e.g. Amazon can have white text on white background). This can happen because the site only sets either background or text color, and Firefox takes the other one from the theme.<br />
<br />
A work around is to explicitly setting standard colors for all web pages in {{ic|~/.mozilla/firefox/xxxxxxxx.default/chrome/userContent.css}} or using [https://addons.mozilla.org/en-US/firefox/addon/stylish/ stylish add-on].<br />
<br />
The 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:<br />
{{bc|<br />
input {<br />
-moz-appearance: none !important;<br />
background-color: white;<br />
color: black;<br />
}<br />
<br />
textarea {<br />
-moz-appearance: none !important;<br />
background-color: white;<br />
color: black;<br />
}<br />
<br />
select {<br />
-moz-appearance: none !important;<br />
background-color: white;<br />
color: black;<br />
}<br />
}}<br />
<br />
This will force the colors ("Allow pages to choose their own colors..." checkbox in the ''Preferences > Content > Color'' dialog):<br />
{{bc|<br />
input {<br />
-moz-appearance: none !important;<br />
background-color: pink !important;<br />
color: green !important;<br />
}<br />
<br />
textarea {<br />
-moz-appearance: none !important;<br />
background-color: pink !important;<br />
color: green !important;<br />
}<br />
<br />
select {<br />
-moz-appearance: none !important;<br />
background-color: pink !important;<br />
color: green !important;<br />
}<br />
}}<br />
<br />
For Firefox 30 (Currently in Nightly Channel) there's this.<br />
{{Note|If you want {{ic|urlbar}} and {{ic|searchbar}} to be {{ic|white}} remove both {{ic|:not}} css selectors.}}<br />
{{bc|<br />
input:not(.urlbar-input):not(.textbox-input) {<br />
-moz-appearance: none !important;<br />
background-color: white;<br />
color: black;<br />
}<br />
<br />
#downloads-indicator-counter {<br />
color: white;<br />
}<br />
<br />
textarea {<br />
-moz-appearance: none !important;<br />
background-color: white;<br />
color: black;<br />
}<br />
<br />
select {<br />
-moz-appearance: none !important;<br />
background-color: white;<br />
color: black;<br />
}<br />
}}<br />
<br />
Change color values to suit, or use an add-on like [https://addons.mozilla.org/en-US/firefox/addon/2108 Stylish].<br />
<br />
=== "Do you want Firefox to save your tabs for the next time it starts?" dialog does not appear ===<br />
<br />
From the [http://support.mozilla.com/en-US/questions/767751 Mozilla support] site:<br />
<br />
# Type {{ic|about:config}} in the address bar.<br />
# Set {{ic|browser.warnOnQuit}} to '''true'''.<br />
# Set {{ic|browser.showQuitWarning}} to '''true'''.<br />
<br />
=== The menu cannot pop-up after updating to Firefox 13 ===<br />
<br />
This problem is most probably related to this [https://bugzilla.mozilla.org/show_bug.cgi?id=787943 bug] and it may affect any user that sets<br />
GTK_IM_MODULE=xim<br />
<br />
while configuring their input method.<br />
<br />
It appears to happen especially to those who are using [[Fcitx]] 4.0.x (at that time Fcitx only supported XIM). With newer version of Fcitx, XIM is discouraged and you should set:<br />
GTK_IM_MODULE=fcitx<br />
<br />
For more information see the [[Fcitx]] page.<br />
<br />
=== Silently fails when installing desktop apps from marketplace ===<br />
<br />
Installation of apps from firefox os marketplace will silently fail if there's no {{ic|~/.local/share/applications}} folder.<br />
<br />
== See also ==<br />
<br />
* [http://www.mozilla.org/firefox/ Official website]<br />
* [http://www.mozilla.org/ Mozilla Foundation]<br />
* [https://wiki.mozilla.org/Firefox Firefox wiki]<br />
* [https://addons.mozilla.org/ Firefox Add-ons]<br />
* [https://addons.mozilla.org/en-US/firefox/themes/ Firefox themes]</div>Blackouthttps://wiki.archlinux.org/index.php?title=Thunderbird&diff=318902Thunderbird2014-06-10T08:49:05Z<p>Blackout: /* Installation */</p>
<hr />
<div>[[Category:Email clients]]<br />
[[fr:Thunderbird]]<br />
[[it:Thunderbird]]<br />
[[ja:Thunderbird]]<br />
{{Related articles start}}<br />
{{Related|Firefox}}<br />
{{Related articles end}}<br />
<br />
[https://www.mozilla.org/ Mozilla] [https://www.mozilla.org/thunderbird/ Thunderbird] is an [[Wikipedia:email client|email]], [[Wikipedia:news client|news]], and [[Wikipedia:chat client|chat]] client, advertised as ''"easy to set up and customize"'', while also being ''"loaded with great features!"''.<br />
<br />
Similarly to [[Firefox]], it has a wide variety of [https://addons.mozilla.org/thunderbird/ add-ons] available.<br />
<br />
== Installation ==<br />
<br />
[[pacman|Install]] {{Pkg|thunderbird}} from the [[official repositories]].<br />
<br />
Other alternatives from the [[AUR]] include:<br />
<br />
*{{AUR|thunderbird-esr-bin}} (a [http://www.mozilla.org/thunderbird/organizations/ long-term] supported version)<br />
*{{AUR|thunderbird-beta-bin}} (the official [http://www.mozilla.org/en-US/thunderbird/channel/ cutting-edge] version by Mozilla)<br />
*{{AUR|thunderbird-earlybird}} ([https://www.mozilla.org/en-US/thunderbird/channel/ alpha version] equivalent of Firefox Aurora)<br />
*{{AUR|thunderbird-nightly}} (a [https://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/latest-comm-central/ nightly] version)<br />
<br />
Here you can find an overview of Mozilla's [https://wiki.mozilla.org/Releases releases].<br />
<br />
There are also a number of [https://www.archlinux.org/packages/?q=thunderbird-i18n language packs] available:<br />
$ pacman -Ss thunderbird-i18n<br />
<br />
== Securing ==<br />
<br />
=== Dangerous defaults ===<br />
<br />
{{Poor writing|This section contains too many colloquial/subjective comments/expressions, a more neutral tone should be used.}}<br />
<br />
Thunderbird, by default, does a "bogus" private reverse DNS lookup of your {{ic|internal.private.hostname.and.private.domain}} every time you start the program, i.e. it does a completely unnecessary DNS lookup of the machine running Thunderbird on your private network (private if you intend to keep it private). To help Thunderbird find what it is looking for, and thus prevent any leakage of your internal network strategy/setup, set your hostname as explained in [[Network configuration#Set the hostname]].<br />
<br />
Thunderbird, by default, respects an RFC from over 1000 years ago that has a completely different context and consequence in our present time. That RFC dictates that, when sending email (via SMTP), a "EHLO" request is followed by - yet again - your {{ic|internal.private.hostname.and.private.domain}}, i.e. {{ic|EHLO myprivatehostname.myprivatedomain}}. With most setups, this is completely unnecessary and you can expect that the NSA and Google et al. have been mining this information for quite a while now. To prevent further leakage and to defend yourself against preemptive strikes:<br />
<br />
# Go to ''Preferences > Advanced > General tab > Config Editor''.<br />
# Search "smtp" and find the entry that matches your outgoing SMTP server (the third field will have something like "smtp1", "smtp2", etc.).<br />
# Right-click the entry and choose ''New > String'', then enter "mail.smtpserver.smtp#.hello_argument" as the argument, where "#" is the number of the mailserver (e.g. "mail.smtpserver.smtp1.hello_argument").<br />
# In the next box, enter anything ''but'' an empty field (an empty field would use you default internal hostname and internal domain). {{Note|Some mailservers may complain or not work if you put in something in the field that is not resolvable.}}<br />
<br />
Thunderbird, by default, includes your operating system information in mail headers. If you would like to get out of the 90's and into the 21st century:<br />
# Go to ''Preferences > Advanced > General tab > Config Editor''.<br />
# Search "general.useragent".<br />
# Right-click on the entry ant choose ''New > String'', then enter "general.useragent.override" and leave the second field empty.<br />
<br />
Fortunately, Thunderbird disables email images by default, but to disable HTML rendering which would thus otherwise expose your IP and location, choose ''View > Message Body As > Plain Text''.<br />
<br />
Fotunately, Thunderbird disables JavaScript for message content but ''not'' for RSS feeds. If you do not use RSS with thunderbird, we have no need for JavaScript:<br />
# Go to ''Preferences > Advanced > General tab > Config Editor''.<br />
# Search "javascript.enabled" and change the value to false.<br />
<br />
== Extensions ==<br />
<br />
=== EnigMail - Encryption ===<br />
<br />
[https://www.enigmail.net EnigMail] is an [https://addons.mozilla.org/thunderbird/addon/enigmail/ extension] that allows writing and receiving email signed and/or encrypted with the OpenPGP standard. It relies on the [[Wikipedia:GNU Privacy Guard|GNU Privacy Guard (GnuPG)]].<br />
<br />
Common [[AUR]] packages include: {{AUR|thunderbird-enigmail}} and {{AUR|thunderbird-enigmail-bin}}.<br />
<br />
==== Sharing the public key ====<br />
<br />
To distribute the public key one may upload it to a [[Wikipedia:Key server (cryptographic)|keyserver]].<br />
<br />
==== Encrypting emails ====<br />
<br />
Encryption does not always work properly with emails containing HTML. It is best to use plain text by choosing ''Options > Delivery Format > Plain Text Only'' in the new email window.<br />
<br />
Once the email is finished it can be signed through the ''OpenPGP'' menu.<br />
<br />
==== Decrypting emails ====<br />
<br />
Assuming that the email was encrypted properly, just trying to open it should result in a pop-up asking to type in the keyphrase.<br />
<br />
==== Enabling high privacy ====<br />
<br />
By default, Enigmail discloses [http://sourceforge.net/p/enigmail/bugs/216/ some information] in the email headers and the OpenPGP comment field. This includes the name Enigmail, along with the [[GnuPG]] name and version. Both can be disabled in the Config Editor (''Edit > Preferences > Advanced > General'').<br />
<br />
To hide the Enigmail name, set {{ic|extensions.enigmail.addHeaders}} to '''false'''. <br />
<br />
To hide the GnuPG information, set {{ic|extensions.enigmail.useDefaultComment}} to '''true'''. Alternatively, uncheck "''Add Enigmail comment in OpenPGP signature''" in: ''OpenPGP > Preferences > Advanced'' ("''Expert Settings''" needs to be enabled). <br />
<br />
Disabling Thunderbird's own user agent is currently [http://forums.mozillazine.org/viewtopic.php?t=2733323 not possible].<br />
<br />
=== FireTray - Tray icon ===<br />
<br />
FireTray is an [https://addons.mozilla.org/thunderbird/addon/firetray/ extension] that adds a customizable system tray icon for Thunderbird. It is available in the AUR as {{AUR|thunderbird-firetray}}.<br />
<br />
=== Lightning - Calendar ===<br />
<br />
[https://www.mozilla.org/projects/calendar/lightning/ Lightning] is a calendar [https://addons.mozilla.org/thunderbird/addon/lightning/ extension] that brings [[Wikipedia:Sunbird|Sunbird]]'s functionality to Thunderbird. It is available in the AUR as {{AUR|thunderbird-lightning-bin}}.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Setting the default browser ===<br />
<br />
{{Note|Since version 24 the {{ic|network.protocol-handler.app.*}} keys have no effect and will not be able to set the default browser.}}<br />
<br />
Recent versions of Thunderbird use the default browser as defined by the [[Default applications|system MIME settings]]. This is commonly modified by the Gnome Control Center (''Gnome Control Center > Details > Default Applications > Web'') (available in: {{Pkg|gnome-control-center}}).<br />
<br />
This can be overridden in Thunderbird through ''Edit > Preferences > Advanced > General > Config Editor'' by searching for {{ic|network.protocol-handler.warn-external}}.<br />
<br />
If the following three are all set to '''false''' (default), turn them to '''true''', and Thunderbird will ask you when clicking on links which application to use (remember to also check ''"Remember my choice for .. links"'').<br />
<br />
network.protocol-handler.warn-external.ftp<br />
network.protocol-handler.warn-external.http<br />
network.protocol-handler.warn-external.https<br />
<br />
=== Plain Text mode and font uniformity ===<br />
<br />
Plain 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}}).<br />
<br />
Remember to run {{ic|fc-cache -fv}} to update system font cache. See [[Font configuration]] for more information.<br />
<br />
{{hc|~/.config/fontconfig/fonts.conf|<nowiki><br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<match target="pattern"><br />
<test qual="any" name="family"><string>monospace</string></test><br />
<edit name="family" mode="assign" binding="same"><string>Ubuntu Mono</string></edit><br />
<!-- For Thunderbird, lowering default font size to 10 for uniformity --><br />
<edit name="pixelsize" mode="assign"><int>10</int></edit><br />
</match><br />
</fontconfig><br />
</nowiki>}}<br />
<br />
=== Webmail with Thunderbird ===<br />
<br />
:''See upstream Wiki: [http://kb.mozillazine.org/Using_webmail_with_your_email_client Using webmail with your email client].''<br />
<br />
=== Migration ===<br />
<br />
Before you start with Importing or Exporting tasks, backup your complete {{ic|~/.thunderbird}} profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
With migration you just copy your current Thunderbird profile to another PC or a new Thunderbird installation:<br />
<br />
1. Install Thunderbird on the target PC<br />
<br />
2. Start Thunderbird without doing anything and quit it.<br />
<br />
3. Go to your Backup folder of your old Thunderbird installation<br />
<br />
4. Enter the backup profile folder:<br />
<br />
$ cd /to/backup/folder/.thunderbird/<oldrandomnumber>.default/<br />
<br />
5. Copy its content into the target profile folder {{ic|~/.thunderbird/<newrandomnumber>.default/}}<br />
<br />
$ cp -R /to/backup/folder/.thunderbird/<oldrandomnumber>.default/* ~/.thunderbird/<newrandomnumber>.default/<br />
<br />
=== Export + Import ===<br />
<br />
Before you start with Importing or Exporting tasks, backup your complete {{ic|~/.thunderbird}} profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
If your accounts are broken or you want to join two different Thunderbird installations, you better install one Import and Export AddOn (eg. [https://addons.mozilla.org/en-US/thunderbird/addon/importexporttools ImportExportTools AddOn]) to both Thunderbird installations and following this just export and import all your data to the new installation.<br />
<br />
== Troubleshooting ==<br />
<br />
=== LDAP Segfault ===<br />
<br />
An [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.<br />
<br />
=== Error: Incoming server already exists ===<br />
<br />
It seams Thunderbird (v24) still has that bug which pops up with "Incoming server already exists" if you want to reinstall a previously deleted account with the same account data afterwards. Unfortunately, if you get this error you can now only clean reinstall Thunderbird: <br />
<br />
1. Make a backup of your current profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
2. Export all you Accounts, Calendar and Feeds via an AddOn like it's written in ''Export section'' of this Wiki.<br />
3. Uninstall your current Thunderbird installation<br />
<br />
$ pacman -R thunderbird<br />
<br />
4. Remove all your data by deleting your current Thunderbird folder {{ic|rm -R ~/.thunderbird/}}.<br />
<br />
5. Install Thunderbird again:<br />
<br />
$ pacman -S thunderbird<br />
<br />
6.Create your mail accounts, feeds and calenders (empty).<br />
<br />
7. Install the [https://addons.mozilla.org/en-US/thunderbird/addon/importexporttools/ ImportExportTools] AddOn<br />
<br />
8. Import all your data.</div>Blackouthttps://wiki.archlinux.org/index.php?title=Thunderbird&diff=318901Thunderbird2014-06-10T08:48:48Z<p>Blackout: /* Installation */</p>
<hr />
<div>[[Category:Email clients]]<br />
[[fr:Thunderbird]]<br />
[[it:Thunderbird]]<br />
[[ja:Thunderbird]]<br />
{{Related articles start}}<br />
{{Related|Firefox}}<br />
{{Related articles end}}<br />
<br />
[https://www.mozilla.org/ Mozilla] [https://www.mozilla.org/thunderbird/ Thunderbird] is an [[Wikipedia:email client|email]], [[Wikipedia:news client|news]], and [[Wikipedia:chat client|chat]] client, advertised as ''"easy to set up and customize"'', while also being ''"loaded with great features!"''.<br />
<br />
Similarly to [[Firefox]], it has a wide variety of [https://addons.mozilla.org/thunderbird/ add-ons] available.<br />
<br />
== Installation ==<br />
<br />
[[pacman|Install]] {{Pkg|thunderbird}} from the [[official repositories]].<br />
<br />
Other alternatives from the [[AUR]] include:<br />
<br />
*{{AUR|thunderbird-esr-bin}} (a [http://www.mozilla.org/thunderbird/organizations/ long-term] supported version)<br />
*{{AUR|thunderbird-beta-bin}} (the official [http://www.mozilla.org/en-US/thunderbird/channel/ cutting-edge] version by Mozilla)<br />
*{{AUR|thunderbird-earlybird}} ([https://www.mozilla.org/en-US/thunderbird/channel/ alpha version] equivalent of Firefox Aurora)<br />
*{{AUR|thunderbird-nightly}} (a [https://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/latest-comm-central/ nightly] version)<br />
<br />
Here you can find an overview of Mozilla's [https://wiki.mozilla.org/Releases releases].<br />
There are also a number of [https://www.archlinux.org/packages/?q=thunderbird-i18n language packs] available:<br />
$ pacman -Ss thunderbird-i18n<br />
<br />
== Securing ==<br />
<br />
=== Dangerous defaults ===<br />
<br />
{{Poor writing|This section contains too many colloquial/subjective comments/expressions, a more neutral tone should be used.}}<br />
<br />
Thunderbird, by default, does a "bogus" private reverse DNS lookup of your {{ic|internal.private.hostname.and.private.domain}} every time you start the program, i.e. it does a completely unnecessary DNS lookup of the machine running Thunderbird on your private network (private if you intend to keep it private). To help Thunderbird find what it is looking for, and thus prevent any leakage of your internal network strategy/setup, set your hostname as explained in [[Network configuration#Set the hostname]].<br />
<br />
Thunderbird, by default, respects an RFC from over 1000 years ago that has a completely different context and consequence in our present time. That RFC dictates that, when sending email (via SMTP), a "EHLO" request is followed by - yet again - your {{ic|internal.private.hostname.and.private.domain}}, i.e. {{ic|EHLO myprivatehostname.myprivatedomain}}. With most setups, this is completely unnecessary and you can expect that the NSA and Google et al. have been mining this information for quite a while now. To prevent further leakage and to defend yourself against preemptive strikes:<br />
<br />
# Go to ''Preferences > Advanced > General tab > Config Editor''.<br />
# Search "smtp" and find the entry that matches your outgoing SMTP server (the third field will have something like "smtp1", "smtp2", etc.).<br />
# Right-click the entry and choose ''New > String'', then enter "mail.smtpserver.smtp#.hello_argument" as the argument, where "#" is the number of the mailserver (e.g. "mail.smtpserver.smtp1.hello_argument").<br />
# In the next box, enter anything ''but'' an empty field (an empty field would use you default internal hostname and internal domain). {{Note|Some mailservers may complain or not work if you put in something in the field that is not resolvable.}}<br />
<br />
Thunderbird, by default, includes your operating system information in mail headers. If you would like to get out of the 90's and into the 21st century:<br />
# Go to ''Preferences > Advanced > General tab > Config Editor''.<br />
# Search "general.useragent".<br />
# Right-click on the entry ant choose ''New > String'', then enter "general.useragent.override" and leave the second field empty.<br />
<br />
Fortunately, Thunderbird disables email images by default, but to disable HTML rendering which would thus otherwise expose your IP and location, choose ''View > Message Body As > Plain Text''.<br />
<br />
Fotunately, Thunderbird disables JavaScript for message content but ''not'' for RSS feeds. If you do not use RSS with thunderbird, we have no need for JavaScript:<br />
# Go to ''Preferences > Advanced > General tab > Config Editor''.<br />
# Search "javascript.enabled" and change the value to false.<br />
<br />
== Extensions ==<br />
<br />
=== EnigMail - Encryption ===<br />
<br />
[https://www.enigmail.net EnigMail] is an [https://addons.mozilla.org/thunderbird/addon/enigmail/ extension] that allows writing and receiving email signed and/or encrypted with the OpenPGP standard. It relies on the [[Wikipedia:GNU Privacy Guard|GNU Privacy Guard (GnuPG)]].<br />
<br />
Common [[AUR]] packages include: {{AUR|thunderbird-enigmail}} and {{AUR|thunderbird-enigmail-bin}}.<br />
<br />
==== Sharing the public key ====<br />
<br />
To distribute the public key one may upload it to a [[Wikipedia:Key server (cryptographic)|keyserver]].<br />
<br />
==== Encrypting emails ====<br />
<br />
Encryption does not always work properly with emails containing HTML. It is best to use plain text by choosing ''Options > Delivery Format > Plain Text Only'' in the new email window.<br />
<br />
Once the email is finished it can be signed through the ''OpenPGP'' menu.<br />
<br />
==== Decrypting emails ====<br />
<br />
Assuming that the email was encrypted properly, just trying to open it should result in a pop-up asking to type in the keyphrase.<br />
<br />
==== Enabling high privacy ====<br />
<br />
By default, Enigmail discloses [http://sourceforge.net/p/enigmail/bugs/216/ some information] in the email headers and the OpenPGP comment field. This includes the name Enigmail, along with the [[GnuPG]] name and version. Both can be disabled in the Config Editor (''Edit > Preferences > Advanced > General'').<br />
<br />
To hide the Enigmail name, set {{ic|extensions.enigmail.addHeaders}} to '''false'''. <br />
<br />
To hide the GnuPG information, set {{ic|extensions.enigmail.useDefaultComment}} to '''true'''. Alternatively, uncheck "''Add Enigmail comment in OpenPGP signature''" in: ''OpenPGP > Preferences > Advanced'' ("''Expert Settings''" needs to be enabled). <br />
<br />
Disabling Thunderbird's own user agent is currently [http://forums.mozillazine.org/viewtopic.php?t=2733323 not possible].<br />
<br />
=== FireTray - Tray icon ===<br />
<br />
FireTray is an [https://addons.mozilla.org/thunderbird/addon/firetray/ extension] that adds a customizable system tray icon for Thunderbird. It is available in the AUR as {{AUR|thunderbird-firetray}}.<br />
<br />
=== Lightning - Calendar ===<br />
<br />
[https://www.mozilla.org/projects/calendar/lightning/ Lightning] is a calendar [https://addons.mozilla.org/thunderbird/addon/lightning/ extension] that brings [[Wikipedia:Sunbird|Sunbird]]'s functionality to Thunderbird. It is available in the AUR as {{AUR|thunderbird-lightning-bin}}.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Setting the default browser ===<br />
<br />
{{Note|Since version 24 the {{ic|network.protocol-handler.app.*}} keys have no effect and will not be able to set the default browser.}}<br />
<br />
Recent versions of Thunderbird use the default browser as defined by the [[Default applications|system MIME settings]]. This is commonly modified by the Gnome Control Center (''Gnome Control Center > Details > Default Applications > Web'') (available in: {{Pkg|gnome-control-center}}).<br />
<br />
This can be overridden in Thunderbird through ''Edit > Preferences > Advanced > General > Config Editor'' by searching for {{ic|network.protocol-handler.warn-external}}.<br />
<br />
If the following three are all set to '''false''' (default), turn them to '''true''', and Thunderbird will ask you when clicking on links which application to use (remember to also check ''"Remember my choice for .. links"'').<br />
<br />
network.protocol-handler.warn-external.ftp<br />
network.protocol-handler.warn-external.http<br />
network.protocol-handler.warn-external.https<br />
<br />
=== Plain Text mode and font uniformity ===<br />
<br />
Plain 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}}).<br />
<br />
Remember to run {{ic|fc-cache -fv}} to update system font cache. See [[Font configuration]] for more information.<br />
<br />
{{hc|~/.config/fontconfig/fonts.conf|<nowiki><br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<match target="pattern"><br />
<test qual="any" name="family"><string>monospace</string></test><br />
<edit name="family" mode="assign" binding="same"><string>Ubuntu Mono</string></edit><br />
<!-- For Thunderbird, lowering default font size to 10 for uniformity --><br />
<edit name="pixelsize" mode="assign"><int>10</int></edit><br />
</match><br />
</fontconfig><br />
</nowiki>}}<br />
<br />
=== Webmail with Thunderbird ===<br />
<br />
:''See upstream Wiki: [http://kb.mozillazine.org/Using_webmail_with_your_email_client Using webmail with your email client].''<br />
<br />
=== Migration ===<br />
<br />
Before you start with Importing or Exporting tasks, backup your complete {{ic|~/.thunderbird}} profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
With migration you just copy your current Thunderbird profile to another PC or a new Thunderbird installation:<br />
<br />
1. Install Thunderbird on the target PC<br />
<br />
2. Start Thunderbird without doing anything and quit it.<br />
<br />
3. Go to your Backup folder of your old Thunderbird installation<br />
<br />
4. Enter the backup profile folder:<br />
<br />
$ cd /to/backup/folder/.thunderbird/<oldrandomnumber>.default/<br />
<br />
5. Copy its content into the target profile folder {{ic|~/.thunderbird/<newrandomnumber>.default/}}<br />
<br />
$ cp -R /to/backup/folder/.thunderbird/<oldrandomnumber>.default/* ~/.thunderbird/<newrandomnumber>.default/<br />
<br />
=== Export + Import ===<br />
<br />
Before you start with Importing or Exporting tasks, backup your complete {{ic|~/.thunderbird}} profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
If your accounts are broken or you want to join two different Thunderbird installations, you better install one Import and Export AddOn (eg. [https://addons.mozilla.org/en-US/thunderbird/addon/importexporttools ImportExportTools AddOn]) to both Thunderbird installations and following this just export and import all your data to the new installation.<br />
<br />
== Troubleshooting ==<br />
<br />
=== LDAP Segfault ===<br />
<br />
An [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.<br />
<br />
=== Error: Incoming server already exists ===<br />
<br />
It seams Thunderbird (v24) still has that bug which pops up with "Incoming server already exists" if you want to reinstall a previously deleted account with the same account data afterwards. Unfortunately, if you get this error you can now only clean reinstall Thunderbird: <br />
<br />
1. Make a backup of your current profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
2. Export all you Accounts, Calendar and Feeds via an AddOn like it's written in ''Export section'' of this Wiki.<br />
3. Uninstall your current Thunderbird installation<br />
<br />
$ pacman -R thunderbird<br />
<br />
4. Remove all your data by deleting your current Thunderbird folder {{ic|rm -R ~/.thunderbird/}}.<br />
<br />
5. Install Thunderbird again:<br />
<br />
$ pacman -S thunderbird<br />
<br />
6.Create your mail accounts, feeds and calenders (empty).<br />
<br />
7. Install the [https://addons.mozilla.org/en-US/thunderbird/addon/importexporttools/ ImportExportTools] AddOn<br />
<br />
8. Import all your data.</div>Blackouthttps://wiki.archlinux.org/index.php?title=Thunderbird&diff=318900Thunderbird2014-06-10T08:43:49Z<p>Blackout: /* Installation */</p>
<hr />
<div>[[Category:Email clients]]<br />
[[fr:Thunderbird]]<br />
[[it:Thunderbird]]<br />
[[ja:Thunderbird]]<br />
{{Related articles start}}<br />
{{Related|Firefox}}<br />
{{Related articles end}}<br />
<br />
[https://www.mozilla.org/ Mozilla] [https://www.mozilla.org/thunderbird/ Thunderbird] is an [[Wikipedia:email client|email]], [[Wikipedia:news client|news]], and [[Wikipedia:chat client|chat]] client, advertised as ''"easy to set up and customize"'', while also being ''"loaded with great features!"''.<br />
<br />
Similarly to [[Firefox]], it has a wide variety of [https://addons.mozilla.org/thunderbird/ add-ons] available.<br />
<br />
== Installation ==<br />
<br />
[[pacman|Install]] {{Pkg|thunderbird}} from the [[official repositories]].<br />
<br />
Other alternatives from the [[AUR]] include:<br />
<br />
*{{AUR|thunderbird-esr-bin}} (a [http://www.mozilla.org/thunderbird/organizations/ long-term] supported version)<br />
*{{AUR|thunderbird-beta-bin}} (the official [http://www.mozilla.org/en-US/thunderbird/channel/ cutting-edge] version by Mozilla)<br />
*{{AUR|thunderbird-earlybird}} ([https://www.mozilla.org/en-US/thunderbird/channel/ alpha version] equivalent of Firefox Aurora)<br />
*{{AUR|thunderbird-nightly}} (a [https://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/latest-comm-central/ nightly] version)<br />
<br />
There are also a number of [https://www.archlinux.org/packages/?q=thunderbird-i18n language packs] available:<br />
$ pacman -Ss thunderbird-i18n<br />
<br />
== Securing ==<br />
<br />
=== Dangerous defaults ===<br />
<br />
{{Poor writing|This section contains too many colloquial/subjective comments/expressions, a more neutral tone should be used.}}<br />
<br />
Thunderbird, by default, does a "bogus" private reverse DNS lookup of your {{ic|internal.private.hostname.and.private.domain}} every time you start the program, i.e. it does a completely unnecessary DNS lookup of the machine running Thunderbird on your private network (private if you intend to keep it private). To help Thunderbird find what it is looking for, and thus prevent any leakage of your internal network strategy/setup, set your hostname as explained in [[Network configuration#Set the hostname]].<br />
<br />
Thunderbird, by default, respects an RFC from over 1000 years ago that has a completely different context and consequence in our present time. That RFC dictates that, when sending email (via SMTP), a "EHLO" request is followed by - yet again - your {{ic|internal.private.hostname.and.private.domain}}, i.e. {{ic|EHLO myprivatehostname.myprivatedomain}}. With most setups, this is completely unnecessary and you can expect that the NSA and Google et al. have been mining this information for quite a while now. To prevent further leakage and to defend yourself against preemptive strikes:<br />
<br />
# Go to ''Preferences > Advanced > General tab > Config Editor''.<br />
# Search "smtp" and find the entry that matches your outgoing SMTP server (the third field will have something like "smtp1", "smtp2", etc.).<br />
# Right-click the entry and choose ''New > String'', then enter "mail.smtpserver.smtp#.hello_argument" as the argument, where "#" is the number of the mailserver (e.g. "mail.smtpserver.smtp1.hello_argument").<br />
# In the next box, enter anything ''but'' an empty field (an empty field would use you default internal hostname and internal domain). {{Note|Some mailservers may complain or not work if you put in something in the field that is not resolvable.}}<br />
<br />
Thunderbird, by default, includes your operating system information in mail headers. If you would like to get out of the 90's and into the 21st century:<br />
# Go to ''Preferences > Advanced > General tab > Config Editor''.<br />
# Search "general.useragent".<br />
# Right-click on the entry ant choose ''New > String'', then enter "general.useragent.override" and leave the second field empty.<br />
<br />
Fortunately, Thunderbird disables email images by default, but to disable HTML rendering which would thus otherwise expose your IP and location, choose ''View > Message Body As > Plain Text''.<br />
<br />
Fotunately, Thunderbird disables JavaScript for message content but ''not'' for RSS feeds. If you do not use RSS with thunderbird, we have no need for JavaScript:<br />
# Go to ''Preferences > Advanced > General tab > Config Editor''.<br />
# Search "javascript.enabled" and change the value to false.<br />
<br />
== Extensions ==<br />
<br />
=== EnigMail - Encryption ===<br />
<br />
[https://www.enigmail.net EnigMail] is an [https://addons.mozilla.org/thunderbird/addon/enigmail/ extension] that allows writing and receiving email signed and/or encrypted with the OpenPGP standard. It relies on the [[Wikipedia:GNU Privacy Guard|GNU Privacy Guard (GnuPG)]].<br />
<br />
Common [[AUR]] packages include: {{AUR|thunderbird-enigmail}} and {{AUR|thunderbird-enigmail-bin}}.<br />
<br />
==== Sharing the public key ====<br />
<br />
To distribute the public key one may upload it to a [[Wikipedia:Key server (cryptographic)|keyserver]].<br />
<br />
==== Encrypting emails ====<br />
<br />
Encryption does not always work properly with emails containing HTML. It is best to use plain text by choosing ''Options > Delivery Format > Plain Text Only'' in the new email window.<br />
<br />
Once the email is finished it can be signed through the ''OpenPGP'' menu.<br />
<br />
==== Decrypting emails ====<br />
<br />
Assuming that the email was encrypted properly, just trying to open it should result in a pop-up asking to type in the keyphrase.<br />
<br />
==== Enabling high privacy ====<br />
<br />
By default, Enigmail discloses [http://sourceforge.net/p/enigmail/bugs/216/ some information] in the email headers and the OpenPGP comment field. This includes the name Enigmail, along with the [[GnuPG]] name and version. Both can be disabled in the Config Editor (''Edit > Preferences > Advanced > General'').<br />
<br />
To hide the Enigmail name, set {{ic|extensions.enigmail.addHeaders}} to '''false'''. <br />
<br />
To hide the GnuPG information, set {{ic|extensions.enigmail.useDefaultComment}} to '''true'''. Alternatively, uncheck "''Add Enigmail comment in OpenPGP signature''" in: ''OpenPGP > Preferences > Advanced'' ("''Expert Settings''" needs to be enabled). <br />
<br />
Disabling Thunderbird's own user agent is currently [http://forums.mozillazine.org/viewtopic.php?t=2733323 not possible].<br />
<br />
=== FireTray - Tray icon ===<br />
<br />
FireTray is an [https://addons.mozilla.org/thunderbird/addon/firetray/ extension] that adds a customizable system tray icon for Thunderbird. It is available in the AUR as {{AUR|thunderbird-firetray}}.<br />
<br />
=== Lightning - Calendar ===<br />
<br />
[https://www.mozilla.org/projects/calendar/lightning/ Lightning] is a calendar [https://addons.mozilla.org/thunderbird/addon/lightning/ extension] that brings [[Wikipedia:Sunbird|Sunbird]]'s functionality to Thunderbird. It is available in the AUR as {{AUR|thunderbird-lightning-bin}}.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Setting the default browser ===<br />
<br />
{{Note|Since version 24 the {{ic|network.protocol-handler.app.*}} keys have no effect and will not be able to set the default browser.}}<br />
<br />
Recent versions of Thunderbird use the default browser as defined by the [[Default applications|system MIME settings]]. This is commonly modified by the Gnome Control Center (''Gnome Control Center > Details > Default Applications > Web'') (available in: {{Pkg|gnome-control-center}}).<br />
<br />
This can be overridden in Thunderbird through ''Edit > Preferences > Advanced > General > Config Editor'' by searching for {{ic|network.protocol-handler.warn-external}}.<br />
<br />
If the following three are all set to '''false''' (default), turn them to '''true''', and Thunderbird will ask you when clicking on links which application to use (remember to also check ''"Remember my choice for .. links"'').<br />
<br />
network.protocol-handler.warn-external.ftp<br />
network.protocol-handler.warn-external.http<br />
network.protocol-handler.warn-external.https<br />
<br />
=== Plain Text mode and font uniformity ===<br />
<br />
Plain 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}}).<br />
<br />
Remember to run {{ic|fc-cache -fv}} to update system font cache. See [[Font configuration]] for more information.<br />
<br />
{{hc|~/.config/fontconfig/fonts.conf|<nowiki><br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<match target="pattern"><br />
<test qual="any" name="family"><string>monospace</string></test><br />
<edit name="family" mode="assign" binding="same"><string>Ubuntu Mono</string></edit><br />
<!-- For Thunderbird, lowering default font size to 10 for uniformity --><br />
<edit name="pixelsize" mode="assign"><int>10</int></edit><br />
</match><br />
</fontconfig><br />
</nowiki>}}<br />
<br />
=== Webmail with Thunderbird ===<br />
<br />
:''See upstream Wiki: [http://kb.mozillazine.org/Using_webmail_with_your_email_client Using webmail with your email client].''<br />
<br />
=== Migration ===<br />
<br />
Before you start with Importing or Exporting tasks, backup your complete {{ic|~/.thunderbird}} profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
With migration you just copy your current Thunderbird profile to another PC or a new Thunderbird installation:<br />
<br />
1. Install Thunderbird on the target PC<br />
<br />
2. Start Thunderbird without doing anything and quit it.<br />
<br />
3. Go to your Backup folder of your old Thunderbird installation<br />
<br />
4. Enter the backup profile folder:<br />
<br />
$ cd /to/backup/folder/.thunderbird/<oldrandomnumber>.default/<br />
<br />
5. Copy its content into the target profile folder {{ic|~/.thunderbird/<newrandomnumber>.default/}}<br />
<br />
$ cp -R /to/backup/folder/.thunderbird/<oldrandomnumber>.default/* ~/.thunderbird/<newrandomnumber>.default/<br />
<br />
=== Export + Import ===<br />
<br />
Before you start with Importing or Exporting tasks, backup your complete {{ic|~/.thunderbird}} profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
If your accounts are broken or you want to join two different Thunderbird installations, you better install one Import and Export AddOn (eg. [https://addons.mozilla.org/en-US/thunderbird/addon/importexporttools ImportExportTools AddOn]) to both Thunderbird installations and following this just export and import all your data to the new installation.<br />
<br />
== Troubleshooting ==<br />
<br />
=== LDAP Segfault ===<br />
<br />
An [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.<br />
<br />
=== Error: Incoming server already exists ===<br />
<br />
It seams Thunderbird (v24) still has that bug which pops up with "Incoming server already exists" if you want to reinstall a previously deleted account with the same account data afterwards. Unfortunately, if you get this error you can now only clean reinstall Thunderbird: <br />
<br />
1. Make a backup of your current profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
2. Export all you Accounts, Calendar and Feeds via an AddOn like it's written in ''Export section'' of this Wiki.<br />
3. Uninstall your current Thunderbird installation<br />
<br />
$ pacman -R thunderbird<br />
<br />
4. Remove all your data by deleting your current Thunderbird folder {{ic|rm -R ~/.thunderbird/}}.<br />
<br />
5. Install Thunderbird again:<br />
<br />
$ pacman -S thunderbird<br />
<br />
6.Create your mail accounts, feeds and calenders (empty).<br />
<br />
7. Install the [https://addons.mozilla.org/en-US/thunderbird/addon/importexporttools/ ImportExportTools] AddOn<br />
<br />
8. Import all your data.</div>Blackouthttps://wiki.archlinux.org/index.php?title=Talk:Bootchart&diff=140495Talk:Bootchart2011-05-08T17:05:23Z<p>Blackout: /* Troubleshooting /var/log/bootchart.tgz not found SSD solution */ new section</p>
<hr />
<div>== Troubleshooting /var/log/bootchart.tgz not found SSD solution ==<br />
<br />
if this error message is displayed:<br />
<br />
/var/log/bootchart.tgz not found<br />
<br />
and you have a '''SSD''' and optimized it in '''fstab''' like me <br />
<br />
<br />
tmpfs /tmp tmpfs nodev,nosuid 0 0<br />
<br />
tmpfs /dev/shm tmpfs nodev,nosuid 0 0<br />
<br />
tmpfs /var/tmp tmpfs defaults 0 0<br />
<br />
tmpfs /var/log tmpfs nodev,nosuid 0 0<br />
<br />
tmpfs /var/cache/apt/archives tmpfs defaults 0 0<br />
<br />
<br />
there is the problem that all in /var/log is deleted after reboot because it's in the RAM<br />
<br />
so all you have to do is just add this line <br />
<br />
'''tmpfs /var/log/bootchart tmpfs nodev,nosuid 0 0'''<br />
<br />
so the folder is being created and the files are copied after a few seconds.</div>Blackout